基于Native接口的MindSpore Lite应用开发
介绍
本文基于MindSpore Lite提供的Native API,实现“图像分类”示例程序,来演示端侧部署的流程。
- 选择图像分类模型。
- 将模型转换成MindSpore Lite模型格式。
- 使用MindSpore Lite推理模型,显示出可能的分类结果。
效果预览
| 主页 |
|---|
![]() |
使用说明
- 在主界面,可以点击photo按钮,进入相册选择图片界面;
- 在相册界面,选择图片,点击确定按钮;
- 自动进行选择图片的图像分类模型推理,部分推理结果显示在主界面。
工程目录
entry
├── src/main
│ ├── etc
| | └── pages
| | └── Index.ets // 首页,获取图片及预处理
│ ├── cpp
| | └── mslite_napi.cpp // 推理函数
| | └── CMakeLists.txt // 编译脚本
| | └── types
| | └── libentry
| | └── Index.t.ts // 将C++动态库封装成JS模块
│ ├── resources // 资源文件
| | └── rawfile
| | └── mobilenetv2.ms // 存放的模型文件
具体实现
-
本示例程序中使用的终端图像分类模型文件为mobilenetv2.ms,放置在entry\src\main\resources\rawfile工程目录下。
注:开发者可按需手工下载MindSpore Model Zoo中图像分类模型。
-
调用@ohos.file.picker (图片文件选择)、@ohos.multimedia.image (图片处理效果)、@ohos.file.fs (基础文件操作) 等API实现相册图片获取及图片处理。完整代码请参见Index.ets。
-
调用MindSpore Lite Native API实现推理。完整代码请参见mslite_napi.cpp。
-
编写CMake脚本。链接MindSpore Lite动态库,完整代码请参见CMakeLists.txt。
-
使用N-API将C++动态库封装成JS模块。在 entry/src/main/cpp/types/libentry/index.d.ts,定义JS接口
runDemo()。 -
调用推理函数并处理结果。完整代码请参见Index.ets
相关权限
ohos.permission.READ_IMAGEVIDEO
依赖
无。
约束与限制
1.本示例仅支持标准系统上运行,测试设备:RK3568;
2.本示例为Stage模型,已适配API version 11版本SDK;
3.本示例已支持使用DevEco Studio 6.0.0.848(构建版本:6.0.0.848,构建2025年10月17日)编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/MindSporeLiteKit/MindSporeLiteCDemo/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master
