使用Edge Impulse为STM32开发人员提供机器学习

描述

使用 Edge Impulse,可以创建嵌入微型机器学习和 DNN 模型的智能设备解决方案。基于云的解决方案抽象了现实世界传感器数据收集和存储、数据特征提取、ML 和 DNN 模型训练和转换为嵌入式代码以及在 STM32 MCU 设备上部署模型的复杂性。无需安装本地 AI 框架,工程师只需一次函数调用即可生成模型并将其导出到他们的 STM32 项目中。所有生成的神经网络现在都充分利用 STM32Cube.AI以确保它们尽可能快速和节能地运行,并且可以使用STM32CubeMX完全定制固件。

在微控制器上部署机器学习 (ML) 模型是过去几年最激动人心的发展之一,它允许小型电池供电设备检测复杂运动、识别声音、分类图像或发现传感器数据中的异常。为了让每个嵌入式开发人员都可以构建和部署这些模型,STMicroelectronics 和 Edge Impulse 一直在合作,将对 STM32CubeMX 和 STM32Cube.AI 的支持集成到 Edge Impulse。Edge Impulse Cloud 现在能够通过本地 STM32Cube.AI 引擎导出神经网络,以确保将最佳效率导入与 STM32CubeMX 项目兼容的 CMSIS PACK。这为开发人员提供了一种简单的方法来收集数据、构建模型并部署到任何 STM32 MCU。

小型设备的机器学习

嵌入式系统上的机器学习(通常称为 TinyML)有可能允许创建无需将数据发送到云端就可以做出明智决策的小型设备——从效率和隐私的角度来看非常棒。为了在微控制器上运行深度学习模型(基于人工神经网络),ST 推出了STM32Cube.AI。STM32Cube.AI 是一个软件包,可以采用预先训练的深度学习模型,并将它们转换为可以在 STM32 MCU 上运行的高度优化的数学 C 代码。提取正确的特征、构建质量数据集以及训练模型以便将其部署到 STM32 上,这些都是构建基于 ML 的解决方案的关键步骤。

机器学习让一切变得简单

嵌入式开发人员可能天生对机器学习持怀疑态度。在嵌入式设备上分析传感器数据并不是什么新鲜事。几十年来,开发人员一直在使用信号处理从原始数据中提取有趣的特征。然后通过简单的基于规则的系统解释信号处理的结果,例如,当信号中的总能量超过阈值时发送消息。尽管这些系统运行良好,但很难检测到复杂的事件,因为您需要针对系统的每个潜在状态进行规划。

Edge Impulse 有助于可视化特征以理解复杂的数据集

我们可以用机器学习做的是在更细粒度的问题中找到这些边界和阈值。例如,在异常检测中,您可以训练一个机器学习模型(经典或神经网络)来查看数据集中的所有数据,根据信号处理管道的输出对它们进行聚类(仍然与您使用的 DSP 指令相同)总是),然后将新数据与集群进行比较。监督模型学习数据中的所有潜在变化,并创建比手动构建更精确和细粒度的阈值。

机器学习

学习集群的小型机器学习模型。蓝点代表训练数据,蓝色圆圈是机器学习模型学习的集群。橙色点是传入的新数据。由于数据在任何已知集群之外,这是一个异常现象。

而且由于这些阈值可以在如此细粒度的问题中自动计算,因此可以检测到更复杂的事件。编写检测麦克风何时拾取高于 100dB 的声音的代码相对容易,但检测一个人是否说“是”或“否”则非常复杂。机器学习确实在那里大放异彩。

不是黑匣子

但是将控制权交给机器学习模型可能会很可怕。如果您在数百万台设备中部署模型,您希望确保该模型确实有效,并且您没有错过任何边缘情况。为了解决这个问题,Edge Impulse 倾向于传统的信号处理管道与小型 ML 模型搭配,而不是深度 ML“黑盒类型”模型;它有许多可视化工具来帮助确定数据集的质量,根据当前模型分析新数据,并在真实设备上快速测试模型。特征浏览器根据 3D 图形中所有生成的窗口绘制提取的特征,允许开发人员探索数据集并了解这些特征是否可以轻松地被模型分离。

机器学习

在 Edge Impulse 中可视化口语关键字。每个点代表 1 秒的音频。可以快速查看异常值,您可以单击一个点来收听关键字。

使用 STM32Cube.AI 在顶部添加神经网络模型

例如,在为分类或回归任务构建神经网络时,优化目标微控制器的模型占用空间和执行时间至关重要。Developers automatically benefit from all STM32Cube.AI optimizations as the tool is automatically called in the Cloud when the STM32Cube.AI CMSIS-PACK export option is selected.

STM32Cube.AI 执行模型量化和其他优化,允许以最小的性能下降进行压缩,并为所有 STM32 微控制器生成优化的 C 代码。

STM32Cube.AI CMSIS-PACK 部署将整个模型打包,包括所有信号处理代码和机器学习模型,并创建一个与 STM32CubeIDE 集成的 CMSIS-PACK。此包可在任何 Cortex-M4F、Cortex-M7 或 Cortex-M33 STM32 MCU 上运行。

要将 CMSIS-PACK 添加到您的 STM32 项目中,请按照分步指南进行操作。然后,您可以为在 STM32Cube 环境中嵌入机器学习模型的任何基于 STM32 的产品开发自定义固件。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分