在微控制器上执行人工智能应用

在微控制器上执行人工智能应用

 

人工智能(AI)算法是一项相当消耗计算资源的应用,想要在使用微控制器(MCU)的嵌入式系统中执行人工智能计算,以往被视为不可能的任务。如今随着技术的进步,已经不再是痴人说梦的事。本文将为您介绍在微控制器上执行人工智能应用的发展现况与解决方案,以了解最新的科技发展趋势。

运用MCU执行人工智能计算已是大势所趋

谈到人工智能,其相关技术还包括机器学习和深度学习,这些技术都需要耗费大量的计算资源,通常也跟功能强大的CPU、GPU和FPGA等处理技术有关,但随着AI技术朝向云到边缘运算发展,人工智能计算引擎将可允许MCU推动嵌入式应用到更宽广的世界。至少,它将使得嵌入式设计能够提高对网络攻击的实时响应能力,并提升设备的安全性。

目前市面上很多电子产品都是运用MCU进行设计,MCU已经普遍地融入在人们的生活当中。如今,随着人工智能的快速发展,有越来越多的智能产品具备人工智能功能,像是物联网(IoT)装置、智能家电、智能音箱等,这使得越来越多的公司开始重视在采用MCU的嵌入式设备上运用AI的特点,更注重MCU结合AI的开发。

 

在MCU上面运用AI有相当多的好处,它可以降低产品的功耗与成本,加快产品上市的速度,且直接在前端处理,而不需要再进行云计算,可加快AI计算的效能,不过,由于MCU的算力较弱,计算的频率也较低,跟CPU的算力相比有着明显的差距。

此外,MCU缺少建模和训练工具,因此要在MCU上实现AI计算,通常还是需要PC端的工具来协助,且其建立完成后的模型通常较大,并不适合MCU使用,且在集成的流程与开发工具的应用上,都还有些难度。

新技术解决MCU运行人工智能计算的难题

面对着强劲的市场需求,已经有许多厂商投入心力,解决想要在MCU上执行人工智能计算的难题,目前已经出现许多解决方案,像是在对象识别、启用语音的服务和自然语言处理等应用,已经可以使MCU具备AI算法的能力,还可为物联网、可穿戴设备和医疗应用中的电池供电设备,提供了更高的准确性和数据隐私性。

 

 

其中想要让MCU执行AI算法最常见的第一种方法,涉及到用于一系列神经网络(Neural Network, NN)框架(例如Caffe 2、TensorFlow Lite和Arm NN)的模型转换,用于在MCU上部署云训练的模型和推理引擎,目前已经有一些软件工具,可以从云中获取经过预训练的神经网络,并通过将其转换为C代码来针对MCU进行优化。

在MCU上运行的优化代码可以在语音、视觉和异常检测应用中执行AI功能,工程师可以将这些工具下载到MCU配置中,并运行优化神经网络的推论,这些AI工具集还提供了基于神经网络AI应用的代码示例。

第二种方法则是绕过了从云借用的预训练神经网络模型的需求,设计人员可以将AI库集成到微控制器中,并将本地AI训练和分析功能纳入其代码中,随后,开发人员可以基于从边缘的传感器、麦克风和其他嵌入式设备获取的信号来创建数据模型,并运行诸如预测性维护和模式识别之类的应用。

第三种方法,则是提供AI专用协处理器,使MCU供应商能够加快机器学习功能的部署,像是Arm Cortex-M33之类的协处理器,可以利用诸如CMSIS-DSP之类的流行API来简化代码的可移植性,从而允许MCU与协处理器紧密耦合,以加速AI功能(如协同相关和矩阵运算)。

 

 

针对计算机视觉的人工智能功能包

为了协助采用STM32 MCU能够支持AI功能,意法半导体推出了用于高性能的STM32Cube的FP-AI-VISION1功能包,可用于计算机视觉的人工智能应用。FP-AI-VISION1具有基于卷积神经网络(CNN)的计算机视觉应用示例,FP-AI-VISION1由X-CUBE-AI扩展包生成的软件组合所组成,并补充了专用于基于AI的计算机视觉应用的应用软件组合。

功能包中提供的应用示例包括食物识别(可识别18类的常见食物),以及人身检测(可识别图像中是否存在人)。FP-AI-VISION1使用STM32_AI_Runtime神经网络库实现了高级计算机视觉应用,库是基于预训练的模型,并通过STM32CubeMX工具的X-CUBE-AI扩展包所生成。

 

 

提供完整功能与示例加快产品的开发速度

FP-AI-VISION1功能包演示了两种类型的神经网络模型的集成:32位浮点模型和8位量化模型。它还演示了在不同存储器配置中的模型集成(仅依赖于MCU内部存储器或额外使用外部存储器)。

FP-AI-VISION1功能包具有一个图像预处理库STM32_Image,可与特定的硬件板组合在一起,用于开发特定的计算机视觉应用,它包括各种处理功能来处理帧缓冲区的内容。FP-AI-VISION1功能包还包括USB网络摄像机的驱动程序,可用于创建图像和视频数据集收集,以及用于将图像捕获到帧缓冲区、预处理帧缓冲区的内容,以及运行神经网络推理的框架,可在主机上执行实时测试。

FP-AI-VISION1还可以连接到B-CAMS-OMV摄像机模块捆绑包(建议)或STM32F4DIS-CAM摄像机子板(仅限旧版)的STM32H747I-DISCO Discovery板上运行,在连接到主机时可以充当USB摄像机(UVC)设备。

FP-AI-VISION1具备完整的固件,可在STM32微控制器上开发计算机视觉应用,具有基于浮点模型和量化模型的集成示例,以及可以对嵌入式应用进行测试、调试和验证的库,并具有免费且用户友好的许可条款,方便厂商进行产品的开发。

结语

人工智能应用已经成为当前最热门的科技发展方向,人工智能结合物联网应用(AIoT),将翻转各种产品的应用方式,真正实现更为智能的万物互联,彻底改变人类的生活方式。目前在MCU上执行人工智能运算已经成为现实,为更多嵌入式系统的人工智能应用开启了更广阔的大门,未来的科技发展将更令人期待。