边缘计算和Edge AI 的一个主要的问题就是:如何在资源有限的 Edge设备端上Deploy并Run各类智能算法/模型,Nxp作为MCU大厂,也提供了一套eIQ(edge Intelligence)Took kit来support ML在设备端的开发部署。
之前正好接触了eIQ, 最近才有时间整理一下下。。
老规矩,上个动图先来个初步印象:
Toolkit包含:
目前支持的Inference Engines (IE, 推理引擎) 有:
各推理引擎对应支持 的芯片硬件系列如下:
可以看到基于Cortex-M 的MCU因为资源受限是只支持TFlite for MCU/DeepViewRT和Glow模型,而ArmNN和ONNX的模型就只有iMx8 等Cortex-A以上的芯片才支持了。。
如上图,整体开发流程上,和其他Edge AI开发过程是差不多的,只不过最终deploy的设备换成了NXP的各类芯片、Firmware端的 Inference Engine换成了 eIQ的 而已,
分别针对Data 和Model:
利用上面两个开发流,导出的模型就可以Deploy在支持 eIQ IE的设备上Run Model (Prediction)了
第一步,下载eIQ软件包:
Windows版安装后的软件在 C:\nxp\eIQ_Toolkit_v1.x.x
第二步,配置工程和数据集
在eIQ installer安装后,如果想使用自带的一些功能,需要下载一些Model和dataset,这里NXP也在软件里有相关的python脚本,运行后即可自动下载:
其中workspace目录是主要的开发目录,
可以进到 workspace/models查看eIQ自带支持的model
例如这里我进入到安装目录的workspace目录,
运行
python -m pip install tqdm
python -m CIFAR_uploader
其中 Tqdm是进度条库
CIFAR_uploader 运行后会安装CIFAR-10数据集以及相关配置, 并在workspace\user_models\classification\image\cifar10 目录 自动创建cifar10.deepview eIQ工程。
eIQ 同时支持两种文件扩展名,.eiqp和.deepview,但两者没有任何区别
至此 eIQ基本的开发环境搭建完成~
还没完,通过eIQ portal上打开cards.deepview 该工程:
打开后可以看到CIFAR-10 相关的Dataset、Label等信息
CIFAR-10 (Canadian Institute for Advanced Research, 10 classes): 是知名的小图像数据集, 由10类32x32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片作为训练集,10000张图片作为测试集。
CIFAR地址:https://www.cs.toronto.edu/~kriz/cifar.html
针对图片数据,支持手动导入和拍照:
和其他工具一样,eIQ也提供了图像手动标注工具:
单击图片 可以手动标记配置 bounding box区域 和label:
(CIFAR-10是图像分类数据集,所以都是full image label)
还提供了 图像 Data Augmentation 工具:
eIQ 支持各种图像常见的数据增强,比如Rotate、Flip、GaussianNoise等图像处理:
传统的图像数据增强方法,通常使用图像处理技术 来完成数据集的扩充和图像质量优化,大致分 为几何变换、色彩变换、像素变换三大类。
好的,准备工作到这里就完成了,接下来进入Model流程,详见:
[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇
一篇读懂系列:
LoRa Mesh系列:
网络安全系列:
嵌入式开发系列:
AI / 机器学习系列: