Ameba AI 简介
概述
Ameba AI 是为 Realtek AmebaAIoT SoC 设计的全面人工智能(AI)解决方案。它为开发者提供了强大的工具和库,用于在应用中实现 AI 功能。 借助 NN 硬件引擎加速推理过程,SoC 支持广泛的 AI 应用,包括音频分类、物体检测等。它在性能和效率方面进行了优化,使开发者能够在资源受限的设备上运行 NN 模型,而不会影响功能。 Ameba AI 的设计友好且易于使用,提供全面的文档和示例,帮助开发者快速上手。无论您是初学者还是经验丰富的 AI 开发者,Ameba AI 都能提供将 AI 项目变为现实所需的工具和资源。
Ameba NN
RTL8735B 配备了 NN 硬件引擎,可加速神经网络
推理过程。从不同 AI 框架(如
Keras、TensorFlow、TensorFlow Lite、PyTorch、Caffe、ONNX、Darknet 等)
获得的 NN 模型,可以通过 Verisilicon 的
Acuity Toolkit 转换为网络二进制图( .nb)文件。转换后的模型可以部署在 RTL8735B
上,并使用提供的 SDK 示例进行执行。
下图展示了整体 NN 模型部署工作流程:
NN 模型工作流程
使用自定义 NN 模型
本节提供在 Ameba 上部署预训练模型的高层概述。 详细的分步说明将在本指南的后续章节中介绍。
YOLOv4-tiny 部署工作流程
通用部署工作流程包括以下阶段:
模型训练:根据目标 AI 应用选择合适的 NN 模型, 并使用兼容的框架进行训练。
模型转换:使用 Acuity Toolkit 将训练好的模型转换并量化为
.nb网络二进制文件。模型部署:将
.nb文件集成到 SDK 中,实现预处理 和后处理,并编译固件。推理执行:在设备上运行部署的模型,执行 AI 推理。
支持的 NN 模型
FreeRTOS 和 Arduino SDK 支持以下 NN 模型类型。自定义模型可按照部署指南进行添加。
类别 |
模型 |
仓库 |
|---|---|---|
目标检测 |
Yolov3-tiny, Yolov4-tiny, Yolov7-tiny |
|
目标检测 |
YOLOv7-tiny-pt |
|
人脸检测 |
SCRFD |
https://github.com/deepinsight/insightface/tree/master/detection/scrfd |
人脸识别 |
MobileFaceNet |
https://github.com/deepinsight/insightface/tree/master/recognition |
声音分类 |
YAMNet |
https://github.com/tensorflow/models/tree/master/research/audioset/yamnet |
参考:NN 模型库
支持的 AI 框架
Acuity Toolkit 支持从以下 AI 框架进行模型转换:
AI 框架 |
导入文件格式 |
|---|---|
Caffe |
.caffemodel |
TensorFlow |
.pb |
TensorFlow Lite |
.tflite |
Darknet |
.cfg |
ONNX |
.onnx |
PyTorch |
.pt |
Keras |
.h5 |
备注
从已量化的 ONNX、TensorFlow 和 TensorFlow Lite 模型转换而来的 Acuity Networks 无需再次量化。请注意,NPU 不支持 per-channel 量化的模型—— 请确保您的模型使用 per-tensor 量化。
小技巧
对于 PyTorch 框架,强烈建议先将模型导出为 .onnx 格式,
以确保转换成功。
支持的模型量化类型
要充分发挥硬件加速器的能力运行 NN 模型,必须使用支持的量化类型对模型进行量化。
支持的量化类型如下:
量化器 |
量化类型 |
按通道或按张量 |
|---|---|---|
asymmetric_affine |
uint8 |
仅按张量 |
dynamic_fixed_point |
int8/int16 |
仅按张量 |
NPU 包含三个主要单元: NN、 TP 和 PPU (SHADER)。 NN 和 TP 是硬件加速器; PPU(SHADER) 是通用可编程单元。 NN/TP 仅支持上述列出的量化类型。 其他量化类型将在 PPU 上运行,速度会明显变慢。
使用 NBinfo 工具(包含在 Acuity Toolkit 中)检查导出模型中每个操作将在哪个单元上运行。
备注
供应商建议将原始 float32 模型导入 Acuity Toolkit,并使用 Acuity 的量化脚本进行量化。 由其他训练框架(例如 TensorFlow)量化的模型仍应使用上述支持的量化类型。
下一步
要安装 离线 Acuity Toolkit 并转换模型,请参见 离线 AI 模型转换工具包简介。
有关 线上模型转换,请参见 线上 AI 模型转换简介。
要使用 Arduino SDK 部署模型,请参见 Arduino SDK 定制模型部署指南。
要使用 FreeRTOS SDK 部署模型,请参见 FreeRTOS SDK 定制模型部署指南。
有关 進階主题 (模型安全、预处理/后处理定制、后处理 PC 工具),请参见 進階新模型部署指南。
有关 模型训练工具包,请参见 AI 训练服务器简介。