在mcu上实现AIoT

文章作者:Kavita Char

在新应用中,随着微处理器不断推进性能边界,模糊了微处理器和微处理器之间的界限,AIoT在微处理器上的实现将呈指数级增长。

在我前一篇文章,我强调了越来越多的人工智能(AI)在物联网设备中创造智能的“AIoT”设备,以及各种应用受益于这些智能设备的增长趋势。它们可以从数据中学习,在没有人为干预的情况下自主做出决策,从而使产品与环境之间具有更合乎逻辑的、类似人类的交互。

人工智能和物联网的结合为微控制器开辟了新的市场。它使越来越多的新应用和用例能够使用简单的mcu与人工智能加速配对,以促进智能控制。这些支持人工智能的微处理器提供了独特的DSP能力,用于计算和机器学习(ML)推理,现在被用于关键字识别、传感器融合、振动分析和语音识别等各种应用。更高性能的微处理器可以在视觉和成像领域实现更复杂的应用,如人脸识别、指纹分析和自主机器人。

人工智能技术

以下是一些能够在物联网设备中实现人工智能的技术:

机器学习(毫升):机器学习算法基于代表性数据构建模型,使设备无需人工干预即可自动识别模式。ML供应商提供训练模型所需的算法、api和工具,然后将这些模型构建到嵌入式系统中。然后,这些嵌入式系统使用预先训练好的模型,根据新的输入数据进行推断或预测。应用的例子有传感器集线器、关键字识别、预测性维护和分类。

深度学习深度学习是一类机器学习,它通过使用多层神经网络来训练系统,从复杂的输入数据中逐步提取更高层次的特征和见解。深度学习可以处理大量、多样化和复杂的输入数据,并使系统能够迭代地学习,每一步都能改善结果。使用深度学习的应用程序包括图像处理、客户服务聊天机器人和人脸识别。

自然语言处理: NLP是人工智能的一个分支,它使用自然语言处理系统与人之间的交互。NLP帮助系统理解和解释人类语言(文本或语音),并基于此做出决策。应用的例子有语音识别系统、机器翻译和预测打字。

计算机视觉机器/计算机视觉是人工智能的一个领域,它训练机器收集、解释和理解图像数据,并根据这些数据采取行动。机器从相机中收集数字图像/视频,使用深度学习模型和图像分析工具来准确识别和分类物体,并根据它们“看到的”采取行动。例如,生产流水线上的故障检测、医疗诊断、零售店中的人脸识别和无人驾驶汽车测试。

AIoT单片机上

在过去,人工智能是具有强大CPU核、大内存资源和云分析连接的mpu和gpu的职权范围。近年来,随着智能水平的不断提高,我们开始看到mcu被用于嵌入式智能ot应用。移动到边缘是由延迟和成本考虑驱动的,涉及到将计算移到更接近数据的位置。基于MCU的物联网设备上的人工智能可以实现实时决策和更快的事件响应,具有带宽要求低、功耗低、延迟低、成本低、安全性高的优点。AIoT的实现得益于近期mcu更高的计算能力,以及更适合这些终端设备中资源受限的mcu的瘦神经网络(NN)框架的可用性。

神经网络是节点的集合,按层排列,接收来自前一层的输入,并根据输入的加权和偏置和生成输出。这个输出沿着它的所有输出连接传递到下一层。训练时,将训练数据输入到网络的第一层或输入层,每一层的输出传递到下一层。最后一层或输出层产生模型的预测,将其与已知的期望值进行比较,以评估模型误差。训练过程包括在每次迭代中使用一种称为反向传播的过程来细化或调整网络的每一层的权重和偏差,直到网络的输出与期望值密切相关。换句话说,网络迭代地从输入数据集“学习”,并逐步提高输出预测的准确性。

神经网络的训练需要很高的计算性能和内存,通常在云中进行。训练完成后,将预先训练好的神经网络模型嵌入到单片机中,并根据训练结果作为新输入数据的推理引擎。

图1 - Renesas第二部分-神经网络训练和推理
图1:神经网络训练和推理

这种推理生成比模型训练所需的计算性能要低得多,适用于单片机。预先训练的神经网络模型的权值是固定的,可以放置在flash中,从而减少了所需的SRAM数量,使其适合于资源更受限的mcu。

实现对单片机

在mcu上实现AIoT涉及几个步骤。最常见的方法是使用可用的神经网络(NN)框架模型,如Caffe或Tensorflow Lite,适用于基于MCU的终端设备解决方案。人工智能专家使用人工智能供应商提供的工具,在云中对用于机器学习的神经网络模型进行训练。利用人工智能厂商和单片机厂商提供的工具对神经网络模型进行优化和集成。利用预先训练好的神经网络模型对单片机进行推理。

该过程的第一步完全离线完成,涉及从终端设备或应用程序捕获大量数据,然后使用这些数据来训练神经网络模型。模型的拓扑由AI开发人员定义,以最大限度地利用可用数据并提供该应用程序所需的输出。神经网络模型的训练是通过将数据集迭代地通过模型来实现的,目标是不断地最小化模型输出时的误差。在这个过程中,有一些与NN框架相关的工具可以提供帮助。

在第二步中,这些预先训练过的模型被转换成适合mcu的格式,这些模型针对关键字识别或语音识别等特定功能进行了优化。这个过程的第一步是使用AI转换工具将它转换成一个平面缓冲文件。这可以选择性地运行通过量化器,以减少大小和优化它的MCU。然后,这个平面缓冲区文件被转换为C代码,并作为运行时可执行文件传输到目标MCU。

该MCU配备了预先训练的嵌入式AI模型,现在可以部署在终端设备上。当新的数据输入时,它将通过模型运行,并根据训练生成一个推断。当新的数据类出现时,可以将NN模型发送回云进行重新训练,并在MCU上对新的重新训练的模型进行编程,可能通过OTA(通过空中)固件升级。

基于mcu的AI解决方案有两种不同的架构方式。为了便于讨论,我们假设在目标mcu中使用Arm Cortex-M核。

图2 - Renesas第2部分- AI在mcu上的实现
图2:使用离线预训练模型在mcu上实现人工智能。

在第一种方法中,转换后的神经网络模型在Cortex-M CPU核上执行,并使用cmis -NN库进行加速。这是一个简单的配置,无需任何额外的硬件加速就可以处理,适用于更简单的AI应用,如关键字识别、振动分析和传感器集电极。

一个更复杂和更高性能的选项包括在MCU上包含一个NN加速器或微神经处理单元(u-NPU)硬件。这些u- npu加速了资源受限的物联网终端设备中的机器学习,并可能支持压缩,从而降低模型的功耗和尺寸。它们支持能够完全执行音频处理、语音识别、图像分类和目标检测的大多数常见神经网络的操作人员。u-NPU不支持的网络可以退回到主CPU核心,并由cmis - nn库加速。在该方法中,神经网络模型在uNPU上执行。

这些方法仅仅展示了几种将人工智能整合到基于MCU的设备中的方法。随着mcu将性能边界推向更高水平,更接近于mcu的预期,我们希望开始看到完整的人工智能能力,包括轻量级学习算法和推理,直接构建在mcu上。

处于边缘的人工智能才是未来

在资源受限的单片机实现人工智能将增加指数在未来,我们将继续看到新的应用程序和用例成为单片机推动边界对性能和模糊单片机和微处理机之间的线,和越来越多的“瘦”NN模型,适用于资源受限的设备可用。

在未来,随着MCU性能的提高,我们可能会看到轻量级学习算法的实现,除了推理,直接在MCU上运行。这将为MCU制造商打开新的市场和应用,并将成为一个重要的投资领域。

这篇文章最初发表于嵌入式

Char的故事是瑞萨美国电子公司的高级产品营销经理。她在软件/应用工程和产品管理方面有超过20年的经验。她在物联网应用、mcu和无线连接方面拥有丰富的经验,目前负责瑞萨基于arm的下一代高性能mcu和解决方案的定义和概念发布管理。

留下你的评论