13.1.16. 模型库与 NPU 转换

IDE 附带了一个预训练机器学习模型库——人脸检测、人体检测、物体检测、姿态估计等等——并通过 IDE 的资源更新保持最新。工具 → 机器视觉 → 打开模型库可浏览它:选中一个模型即可在文件树旁查看其说明页面,并勾选过滤器以将列表缩小到适合你开发板的模型。

模型库浏览器:左侧的模型树中选中了一个模型,右侧是其说明页面,底部是按开发板类型过滤的复选框

选中了一个模型并打开其说明页面的模型库浏览器。

选择一个模型,IDE 就会将其复制出来以备运行:当目标开发板配有 NPU 加速器时,它会为该开发板转换模型,将匹配的标签文件一同复制出来,并将目标默认设为所连接摄像头的盘符。从那里开始,脚本侧只需一次 ml.Model 构造函数调用即可。同一个浏览器也可以从 ROMFS 编辑器 内部访问,对于配有 ROMFS 的开发板而言,那是更合适的模型存放位置——ROMFS 中的模型可直接从闪存执行,无需 RAM 拷贝。

13.1.16.1. 转换其他模型

工具 → 机器视觉 → 为 NPU 转换模型会对来自其他任何地方的模型运行同样的转换——用 Edge Impulse 或 Roboflow 训练的、从训练框架导出的,或下载得到的模型。配备 NPU 的开发板各自都有一个由 IDE 捆绑并驱动的厂商编译器:Ethos-U NPU 使用 Vela,ST Neural-ART NPU 使用 ST Edge AI。该工具从所连接的摄像头获取目标开发板(未连接时则询问),并由你提供模型文件。已经转换过的模型会被识别出来并直接复制,当所选开发板没有 NPU 时,工具会说明这一点并跳过转换——未转换的模型仍可在那些开发板上以 CPU 运行。

在配备 NPU 的开发板上,转换并非可选项:未转换的模型最好的情况是回退到 CPU 上运行,速度会慢上许多倍,而在某些开发板上它根本无法运行。ROMFS 编辑器和模型库会自动应用转换;此菜单条目是为通过其他途径获得的模型而存在的。

参见

机器学习章节 介绍了如何使用 ml 模块运行模型以及训练自定义模型。