一、 研究背景与项目动机

本项目旨在探索端侧 AI 部署的可行性。通过将轻量级的 YOLO 模型(yolo26n.ms)部署至 HarmonyOS 移动端,验证在端侧设备上直接进行目标检测与相似商品提取的推理性能。

二、 开发环境与项目结构

本项目基于华为 DevEco Studio 开发,语言采用 ArkTS。核心模型采用 MindSpore 框架转换后的 .ms 格式模型。

核心项目目录结构说明如下:

  • entry/src/main/ets/entryability/EntryAbility.ets:应用生命周期管理与入口配置。

  • entry/src/main/ets/pages/Index.ets:主 UI 界面与核心交互逻辑存放位置。

  • entry/src/main/resources/rawfile/yolo26n.ms:编译并转换完成的 YOLO 端侧模型文件。

三、 核心架构与代码实现

由于鸿蒙底层的 MindSpore 推理框架不支持直接运行 PyTorch 模型,本工程探索了从官方预训练模型到端侧 格式的完整转换链路。若要自行准备模型,请参考以下流程:

1. 下载预训练模型 (.pt)
2. 导出为中间件格式 (.onnx)

利用 Ultralytics 自带的导出功能,将 PyTorch 模型转化为通用的 ONNX 结构。在 Python 环境中执行以下命令(建议开启消除冗余算子):

yolo export model=yolov26n.pt format=onnx imgsz=640 simplify=True

3. 转换为鸿蒙端侧格式 (.ms)

此步骤需使用华为官方提供的 MindSpore Lite Converter(离线模型转换工具),将 ONNX 算子映射为端侧底层的高性能算子。

工具下载地址:下载MindSpore Lite | MindSpore Lite master 文档 | MindSpore (本文下载的是mindspore-lite-2.9.0-linux-x64,在Windows系统下转换时没有成功,在Ubantu22.04系统上进行转换的,本项目提供了预训练的 yolo26n.ms)

转换指南参考:端侧模型转换 | MindSpore Lite master 文档 | MindSpore

基本转换命令示例:

将解压后的 converter 工具加入环境变量后再执行转换命令:

export LD_LIBRARY_PATH=/home/rebot/1/mindspore-lite-2.9.0-linux-x64/tools/converter/lib:$LD_LIBRARY_PATH

converter_lite --modelFile=yolov26n.onnx --fmk=ONNX --outputFile=yolo26n --targetDevice=CPU

注:转换完成后,只需将生成的 yolo26n.ms 放入本工程的 entry/src/main/resources/rawfile/ 目录下即可被代码自动读取。

4.开发与测试环境设置
  1. IDE 与 SDK 环境 开发工具: HUAWEI DevEco Studio(本文下载的版本是devecostudio-windows-6.1.0.850)

工具下载地址:下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态

SDK 环境:HarmonyOS NEXT (API 11 / API 12)

硬件测试设备运行载体: 华为鸿蒙真机(因涉及底层 NPU/CPU 算力调度与 MindSpore 底层依赖,暂不支持通过电脑本地模拟器进行推理验证)。 注意:手机需要更新到鸿蒙6系统!!!

四、 端侧部署避坑记录

在实际开发与测试中,记录以下关键技术问题的解决方案:

  • UI 线程阻塞问题: 图像预处理与模型推理均属于 CPU 密集型任务。若直接在主线程运行,会导致应用严重掉帧。必须通过 TaskPool 或 Worker 开启独立线程执行预处理和 model.predict() 操作。

  • 内存管理规范: Float32Array 的创建与 PixelMap 的读取会占用较大内存。每次推理结束后,需严格调用 release() 接口释放图像资源,避免连续识别导致 OOM(内存溢出)。

五、 总结

本实践完成了基于“HarmonyOS + MindSpore Lite + YOLO”的端侧目标检测初步验证,跑通了模型加载、数据处理到 UI 渲染的完整基础链路。

项目源码及转换后的 yolo26n.ms 模型文件已开源,欢迎各位开发者 Star、指正与交流:Aiyc-02/YOLO-HarmonyOS-Vision: 基于 ArkTS 与 MindSpore Lite 的鸿蒙端侧 YOLO 目标检测引擎

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐