[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

NXP eIQ 机器学习Toolkit (一):准备篇

  • 1. 背景
  • 2. eIQ简介
  • 3. 开发应用流程
  • 4. 开发环境搭建
  • 5. 数据集准备
  • 博主热门文章推荐:


[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第1张图片


1. 背景

边缘计算和Edge AI 的一个主要的问题就是:如何在资源有限的 Edge设备端上Deploy并Run各类智能算法/模型,Nxp作为MCU大厂,也提供了一套eIQ(edge Intelligence)Took kit来support ML在设备端的开发部署。

之前正好接触了eIQ, 最近才有时间整理一下下。。

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第2张图片

老规矩,上个动图先来个初步印象:


2. eIQ简介

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第3张图片

Toolkit包含:

  • eIQ Portal :GUI建模工具,可视化进行ML模型 创建/优化/调试、转换和导出
  • eIQ Model Tool :模型分析工具,高级版Netro,用于查看分析模型具体结构、运行时间等
  • eIQ Command-line Tools :命令行工具

目前支持的Inference Engines (IE, 推理引擎) 有:
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第4张图片

各推理引擎对应支持 的芯片硬件系列如下:

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第5张图片

可以看到基于Cortex-M 的MCU因为资源受限是只支持TFlite for MCU/DeepViewRT和Glow模型,而ArmNN和ONNX的模型就只有iMx8 等Cortex-A以上的芯片才支持了。。


3. 开发应用流程

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第6张图片

如上图,整体开发流程上,和其他Edge AI开发过程是差不多的,只不过最终deploy的设备换成了NXP的各类芯片、Firmware端的 Inference Engine换成了 eIQ的 而已,

从上图可以清晰看出来, eIQ这里分出来的两个主要流程:
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第7张图片

分别针对Data 和Model:

  • Bring Your Own Data (BYOD) :自己只准备数据(如图片),全程用eIQ工具建模/训练/优化,导出部署到设备 (只能使用eIQ目前支持的几种Model)
  • Bring Your Own Model (BYOM) : 利用已有模型(如已训练好的Model),只用eIQ进行量化/优化或模型分析,导出部署到设备

利用上面两个开发流,导出的模型就可以Deploy在支持 eIQ IE的设备上Run Model (Prediction)了


4. 开发环境搭建

第一步,下载eIQ软件包:

  • 官网下载地址:https://www.nxp.com/design/software/development-software/eiq-ml-development-environment/eiq-toolkit-for-end-to-end-model-development-and-deployment:EIQ-TOOLKIT

打开选择相应Installer下载 安装即可:
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第8张图片

Windows版安装后的软件在 C:\nxp\eIQ_Toolkit_v1.x.x

启动运行eIQ portal.exe即可
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第9张图片

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第10张图片

第二步,配置工程和数据集

在eIQ installer安装后,如果想使用自带的一些功能,需要下载一些Model和dataset,这里NXP也在软件里有相关的python脚本,运行后即可自动下载:

其中workspace目录是主要的开发目录,
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第11张图片
可以进到 workspace/models查看eIQ自带支持的model

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第12张图片

例如这里我进入到安装目录的workspace目录,

运行

python -m pip install tqdm
python -m CIFAR_uploader

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第13张图片

其中 Tqdm是进度条库

CIFAR_uploader 运行后会安装CIFAR-10数据集以及相关配置, 并在workspace\user_models\classification\image\cifar10 目录 自动创建cifar10.deepview eIQ工程。

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第14张图片

eIQ 同时支持两种文件扩展名,.eiqp和.deepview,但两者没有任何区别

至此 eIQ基本的开发环境搭建完成~


5. 数据集准备

还没完,通过eIQ portal上打开cards.deepview 该工程:

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第15张图片

打开后可以看到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

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第16张图片

针对图片数据,支持手动导入和拍照:

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第17张图片

和其他工具一样,eIQ也提供了图像手动标注工具

单击图片 可以手动标记配置 bounding box区域 和label:

(CIFAR-10是图像分类数据集,所以都是full image label)
[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第18张图片

Train/Test 比例 划分和随机Shuffle:
在这里插入图片描述

还提供了 图像 Data Augmentation 工具:

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第19张图片

eIQ 支持各种图像常见的数据增强,比如Rotate、Flip、GaussianNoise等图像处理:

传统的图像数据增强方法,通常使用图像处理技术 来完成数据集的扩充和图像质量优化,大致分 为几何变换、色彩变换、像素变换三大类。

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇_第20张图片

好的,准备工作到这里就完成了,接下来进入Model流程,详见:
[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇


博主热门文章推荐:

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

你可能感兴趣的:(Machine,Learning,机器学习,人工智能)