7.11. NPU

H7 和 RT1062 通过 TFLMCMSIS-NN 在 Cortex-M CPU 上运行推理。AE3 和 N6 则在同一芯片上额外加入了专用 NPU——一条固化在硅片中的张量流水线,无需占用 CPU 即可运行重量级算子。OpenMV 产品线中的这两款 NPU 来自不同的供应商,工具链也不同,但摄像头通过同一套 ml.Model API 暴露它们。不同之处在于磁盘上的文件以及遍历它的运行时。

7.11.1. AE3——Arm Ethos-U55

AE3 在与 Cortex-M55 应用核相同的芯片上搭载了一颗 Arm Ethos-U55 NPU。Vela 是为它准备模型的离线编译器:Vela 接收一个标准的 .tflite 输入,输出一个 .tflite,其中可由 NPU 执行的子图已被折叠进一个自定义的 Ethos-U 算子,该算子携带 NPU 运行所需的字节命令。在推理时,TFLM 照常遍历该文件;Ethos-U 算子通过 Ethos-U 驱动分派其字节命令,而任何 Vela 未折叠的算子则回退到 M55 上的 CMSIS-NN

7.11.2. N6——ST Neural-ART

N6 搭载 ST 的 Neural-ART NPU,并运行 STAI——ST 为其提供的运行时——以替代 TFLM。STEdgeAI 是离线编译器:它接收一个模型输入,并输出一个为 Neural-ART 硬件布局的可重定位网络 blob。STAI 从 ROMFS 加载该 blob,并直接在 NPU 上遍历它。算子覆盖范围取决于 STEdgeAI 对该芯片的支持情况。

7.11.3. 同一脚本,不同摄像头

两款 NPU 暴露的输入和输出张量,与 CPU 运行的模型具有相同的量化参数。针对一台摄像头编写的脚本,只需加载为该摄像头 NPU 准备的模型文件,即可在另一台上运行。检测阈值、ROI 处理以及后处理器接线——这些脚本层面的决策——都无需改变。