隆重介绍恩智浦MCU机器学习教育套件——OpenART
Posted TsinghuaJoking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隆重介绍恩智浦MCU机器学习教育套件——OpenART相关的知识,希望对你有一定的参考价值。
各位看官新年好,小编在这里祝各位童鞋在2021年里
经常关注恩智浦MCU加油站的童鞋应该熟悉,在过去的一年里,加油站陆陆续续发布了很多篇关于AI机器学习的文章。里面有介绍神经网络基础知识的,模型设计原理的,还有一些人脸识别,图像分类的示例。
很多童鞋看了心痒痒,想要验证一番。奈何没有配套软硬件,无法施展。是不是有种空有屠龙技,没有风火轮,混天绫的遗憾啊!
在这里小编向大家隆重推出,基于MCU平台的AI机器学习开发套件:OpenART。
智能车参赛的童鞋可能已经听说过了。没错,OpenART的首发亮相就是今年智能车竞赛,AI视觉组里的图像识别模块。
OpenART的软件是由NXP研发。原型开发使用的硬件平台是i.MX RT1060 EVK,最近又乔迁到了逐飞(SeekFree)公司的SeekFree ART开发板上。野火公司也很快会推出一款Fire ART开发板。这三款开发板使用的都是i.MX RT1060系列高性能跨界处理器。但OpenART项目不止限于高性能的AI应用,后面,我们还打算移植到与逐飞合作的一款基于LPC55xx的IoT开发板。
OpenART的硬件采取模块化设计,有两排扩展口,其中一排兼容树莓派的通信接口,支持多种数据采集运算。高度集成设计,尺寸与名片大小相仿,可以方便集成到各种使用场景。
输入端口:
-
OMV4 Camera -
板载支持2个I2S麦克风,可扩展8个I2S麦克风阵列 -
板载支持加速传感器,陀螺仪,压力,温湿度,光线传感器 -
支持8路ADC数据采集 -
支持SPI高速WIFI模块
输出控制端口:
-
一只贴片喇叭或者3.5毫米耳机接口,由MQS.LEFT通过D类功放来驱动 -
RGB LED和一个独立LED -
USB device口,模拟出虚拟串口 -
TF卡接口,存储脚本和数据 -
SPI LCD显示 -
IO扩展8080 -
云台载具(PTV)扩展口
看到这些这些明星阵容,各位童鞋有没有怦然心动啊?没错,就是这么大方。 OpenART的BSP主要实现如下功能:
⊙ 基于神经网络的机器学习和深度学习比如:
-
图像处理,图像分类,人脸识别 -
语音触发,音源定位 -
多媒体数据的机器学习(异常检测,姿态识别,智能控制策略) -
智能可运动物体(模仿+强化学习)-机电联动:云台载具 -
模型验证,人工智能教育
⊙ OpenART里包含了3个各有千秋的神经网络推理引擎 分别是NN, NNCU, 和TF。
-
NN 这是OpenMV在3年前最早实现的简易引擎,是开山之石般的存在,也启迪了我们的工作。 虽然现在看上去比较单薄了,但可以运行OpenMV早期提供的一些例子(.network文件),包括识别手写数字的lenet.network。它需要Caffe来训练模型,并且使用OpenMV提供的2个脚本来量化,只支持线性拓扑。不建议为它训练新模型。
-
NNCU,去年了解过电磁AI的同学可能对它已经有印象了。 NNCU是我们基于CMSIS-NN和自己的扩展制作的一套完整的工具,使用CMSIS-NN传统API,可以达到最高的性能。尤其是在搭配了我们特色的权重缓存功能,在大型模型上的性能提升可达2-5倍!不过,由于量化机制比较简单,只支持2的方幂的放大倍数,在 8位量化精度在大型模型上稍有下降。
NNCU使用Keras来训练模型,它的工具可以从https://pan.baidu.com/s/1eQADEHg8UVhTsZWT_lRRgw来下载。
-
TF,这是OpenMV最新基于TensorFlow lite micro制作的引擎,使用CMSIS-NN的新一代”_s8” API,量化系数不再有2的方幂的限制,并且每个通道有自己的量化系数,可以达到最高的8位量化精度,但牺牲了少量性能。它甚至可以支持浮点模型,当然这也是以牺牲性能为代价的。
TF可以导入.tflite文件,一般使用TensorFlow来训练模型。
下面的小表总结了这3个引擎各自的特色。
由于NNCU和TF都可以使用Keras API,我们建议使用Keras或tf.keras训练模型。如果模型不大(小于10层主运算)先使用NNCU上量化,否则先用TF量化,在精度与性能间权衡。
★ 机器视觉处理:OpenART项目包含了OpenMV软件在i.MX RT1060上的移植,可以使用OpenMV的功能和示例。
★ MCU教育。基于MicroPython,实现了python对基础外设的控制。并且独创了管脚动态管理模块CMM,通过CMM动态配置管脚,不用更改烧录固件既可以切换管脚不同的功能。 从图中可以看出,OpenART集成了现在最火爆的RTOS:RT-Thread。基于RTOS,各位童鞋可以愉快地添加自己的应用而不影响其它模块。而且通过RT-Thread的开发环境,可以集成RT-Thread Online packages。
试想一下机器学习+Cloud,是不是很炫酷呢!
小编在这里透露一下,OpenART预计第一季度,也就是三月份与大家见面。代码计划在GitHub开源。未来可能会允许有想法,有能力的童鞋提交一些比较好的应用代码,软件模块。是不是特别的期待呢??
以上是关于隆重介绍恩智浦MCU机器学习教育套件——OpenART的主要内容,如果未能解决你的问题,请参考以下文章
痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事- 从Serial(1-bit SPI) NOR恢复启动
痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)...