OpenHarmony-AI调研
文章目录
前言
基于OpenHarmony-5.0.0版本以及laval社区等网络资料调研当前OH上的AI发展情况。
一、当前版本部署组件
common/inherit/rich.json
{
"subsystem": "ai",
"components": [
{
"component": "neural_network_runtime",
"features": []
},
{
"component": "mindspore",
"features": []
},
{
"component": "intelligent_voice_framework",
"features": []
}
]
}
二、AI架构
除了三方库下的mindspore-lite和驱动目录里的声音识别驱动框架,其他内容都存在于foundation/ai子目录里。
架构图找到了挺多种,不过都差不多。
1.mindspore-lite
- 华为推出的全场景AI推理引擎
- 更版本到v2.3.0
- 编译出的so文件位于out/产品名/thirdparty/mindspore/目录
libmindir.z.so、libmindspore-lite.so、libmindspore_lite_ndk.so
./build.sh --product-name 产品名 --target-cpu arm -T mindspore_lib --ccache
- 提供跨多个后端构建选项
| 硬件平台 | 操作系统 | 状态 |
| :------------ | :-------------- | :--- |
| Ascend 910 | Ubuntu-x86 | ✔️ |
| | Ubuntu-aarch64 | ✔️ |
| | EulerOS-aarch64 | ✔️ |
| | CentOS-x86 | ✔️ |
| | CentOS-aarch64 | ✔️ |
| GPU CUDA 10.1 | Ubuntu-x86 | ✔️ |
| CPU | Ubuntu-x86 | ✔️ |
| | Ubuntu-aarch64 | ✔️ |
| | Windows-x86 | ✔️ |
- 目前master分支应该没有适配Risc-V
- 接口介绍:https://gitee.com/openharmony/docs/blob/OpenHarmony-4.0-Release/zh-cn/application-dev/reference/native-apis/_mind_spore.md?login=from_csdn
2.ai_engine
AI业务子系统:统一的AI引擎框架,实现算法能力快速插件化集成。框架中主要包含插件管理、模块管理和通信管理等模块,对AI算法能力进行生命周期管理和按需部署。后续,会逐步定义统一的AI能力接口,便于AI能力的分布式调用。同时,提供适配不同推理框架层级的统一推理接口。
3.neural_network_runtime
- NNRT-神经网络运行时,连通上层AI推理框架和底层AI芯片
- NNRt开放了标准统一的南向HDI接口,使第三方芯片设备可以通过NNRt HDI接口接入Openharmony
4.intelligent_voice_framework
智能语音组件包括智能语音服务框架和智能语音驱动,主要实现了语音注册及语音唤醒相关功能. 智能语音服务框架支持如下功能:
系统事件监测:开机解锁、亮灭屏等系统事件监测 并发策略:智能语音业务并发管理 智能语音业务:语音注册、语音唤醒等智能语音业务处理
声音触发器:DSP模型加载、DSP算法启停、DSP事件处理
/foundation/ai/intelligent_voice_framework # 智能音频组件业务代码
├── frameworks # 框架代码
│ ├── native # 内部接口实现
│ └── js # 外部接口实现
├── interfaces # 接口代码
│ ├── inner_api # 内部接口
│ └── kits # 外部接口
├── sa_profile # 服务配置文件
├── services # 服务代码
├── LICENSE # 证书文件
├── tests # 开发者测试
└── utils # 公共函数
5.HDI驱动
当前HDI驱动下只找到了声音识别驱动框架,暂时没有发现对接AI芯片的内容。
- drivers/interface/intelligent_voice
- 配合foundation下的intelligent_voice_framework
三、应用
1.命令行以及web运行deepseek-r1
- llama.cpp:基于 C/C++ 开发的高性能大语言模型(LLM)推理框架,核心目标是为消费级设备(如个人 PC、边缘设备)提供轻量化、低成本的 LLM 部署方案
- https://laval.csdn.net/67c551852e30c863900a16ba.html
- Risc-V架构适配参考:https://blog.csdn.net/qqq1112345/article/details/147046155
- 模型:魔塔社区 https://modelscope.cn/
- 桌面应用:applications/standard/hap/aidemos.hap
2.与deepseek通过语音进行交互
文本到语音(TTS)https://laval.csdn.net/67d13bb93b685529b709aa81.html
语音到文本(ASR)https://laval.csdn.net/67d14354b8d50678a249e1f4.html
3.物品识别
- https://segmentfault.com/a/1190000044791519
- 使用了opencv(没发现OH三方库中适配了opencv)、MindSpore Lite
(1)JS实现UI界面的功能;
(2)Native接口及实现主要为JS提供接口进行AI推理。通过Native方式完成推理的前处理、推理以及后处理,这里通过调用opencv、MindSpore-Lite的API接口实现主要功能;
(3)Mindspore Lite为Openharmony AI推理框架,为上层应用提供统一的AI推理接口,可以完成在手机等端侧设备中的模型推理过程;
(4) Neural Network Runtime神经网络运行时,作为中间桥梁连通上层AI推理框架和底层加速芯片,实现AI模型的跨芯片推理计算。提供统一AI芯片驱动接口,使AI芯片驱动能够接入OpenHarmony系统;
(5)NNRt host 实现了NNRt HDI接口功能,通过对接底层AI芯片接口为上层应用提供NPU硬件推理的能力。
4.人脸识别
(1)基于opencv
(2)SeetaFace2
- 支持x86架构(Windows、Linux)和ARM架构,Risc-V可能需要适配或者OH-SDK能直接编译
- https://blog.csdn.net/maniuT/article/details/139177713
四、AI适配需要实现的内容
1.实现目标识别的AI应用
2.构建目标识别的模型
- 模型量化剪除
- 模型转换为MindSpore封装的模型文件
3.南向NPU芯片的适配
- 增加NNRt host进程,实现NNRt设备服务进程