用STM32Cube.AI部署ONNX模型实操示例:风扇堵塞检测

发布者:快乐旅行最新更新时间:2024-09-20 来源: elecfans关键字:STM32Cube  AI 手机看文章 扫描二维码
随时随地手机看文章

在之前的文章中,我们介绍了没有AI基础知识的工程师如何使用NanoEdge AI快速训练一个用于风扇异常检测的模型


该模型根据来自电机控制板的电流信号,检测风扇过滤单元的堵塞百分比。我们知道,当风扇发生堵塞时,电机的电流信号形状会与正常时不同,而传统算法很难有效地处理这种差异。因此,机器学习算法成为解决该问题的明智选择。对于机器学习算法,我们通常使用scikit-learn库来训练模型。今天我们将展示如何自行训练机器学习模型,然后使用STM32Cube.AI 将其部署到同一设备上,以便让大家充分了解两种工具的不同之处。

wKgaomUD4QiARbDKAA1hq2RwhTw955.png

NanoEdgeAI是一款端到端工具,允许对数据进行一些预处理,并进行训练和算法选择,而STM32Cube.AI 则需要工程师具备一定的AI建模经验,因为STM32Cube.AI 暂不支持模型训练。

硬件和软件准备

wKgZomUD4QmAF96rAAWBdn3ZAeE960.png

用于驱动风扇的P-NUCLEO-IHM03电机控制套件包括一块NUCLEO-G431RB主板、一块电机控制扩展板,以及一台无刷电机。

在软件准备方面,您需要配置anaconda环境,并安装sklearn、pandas、ONNX等必要的库。

让我们回顾一下创建AI项目的一些关键步骤,然后据此逐步演示如何基于STM32Cube.AI 从零开始创建AI项目。

wKgaomUD4QqAL9M3AAFnQx_GzUs626.png

在步骤1中,用户需要收集用于机器学习模型创建的数据。该数据集的一部分(训练数据集)将用于训练模型,另一部分(测试数据集)稍后将用于评估所构建模型的性能。机器学习的数据集中的典型比率为:训练数据集占80%,测试数据集占20%。我们此次试验用的数据集与之前NanoedgeAI训练模型使用的数据是一样的。

在步骤2中,用户需要对数据进行标记;基本上,我们需要告诉机器收集的数据属于哪一类(例如“跑步”、“散步”、“静止”……) 分类指的是根据您认为重要的属性对数据进行分组:这种属性在机器学习领域被称为“类”。

接下来,在步骤3中,用户使用预先准备的数据集训练机器学习模型。该任务也称为“拟合”。训练结果的准确性在很大程度上取决于用于训练的数据的内容和数量。

在步骤4中,用户将训练过的机器学习模型嵌入到系统中。对于在计算机上执行的机器学习,用户可以利用Python库直接执行模型。对于在MCU等器件上运行的机器学习,用户可以在执行之前将该库转换为C代码。

最后在步骤5中,用户验证机器学习模型。如果验证结果与预期的结果不匹配,则用户必须确定上述步骤中需要改进的部分,以及如何改进。比如增加数据,更改模型,调整模型超参数等。

至此,我们已经帮大家重新梳理了一次AI项目的建模过程。接下来我们将按照这样的过程完成我们今天的实验。

首先,导入一些必要的库

wKgZomUD4QyAfPRyAAAnRseUUxk476.png

为了便于对比,我们使用了之前NanoEdgeAI训练模型中使用的数据集。我们使用pandas从csv文件读取数据,然后用于模型训练。

在训练之前,让我们先来了解一下该数据集。让我们打印出数据集的维度。

wKgaomUD4Q2AGdzEAAAQyMeVJTI030.png

可以看到,该数据集一共有119条数据和128个特征,最后一列实际上是我们的数据标签。

接下来,我们将数据集分为训练集和测试集,训练集用于训练模型,测试集用于检验模型的泛化能力。我们将80%的数据用于训练,20%的数据用于测试

wKgZomUD4Q6ABKjvAAAR-ZcH9P0359.png

一旦数据集准备就绪,我们就可以开始训练模型。

wKgaomUD4Q-ALBHPAAARKZ0n_Wc971.png

训练完成后,我们可以在测试集上验证模型的性能。我们发现,该模型在测试集上可以达到约83%的准确率。

wKgZomUD4RGAXC1cAAAMzxFr-Kk233.png

最后,我们保存经过训练的模型,将得到一个ONNX格式的文件random_forest.onnx

wKgaomUD4ROARq8xAAAYSkkxvYs429.png

我们使用netron查看模型的结构如下

wKgZomUD4RSAF0qBAAA0vTTdQrw667.png

STM32Cube集成使得STM32Cube.AI 用户能够有效地在广泛的STM32微控制器系列产品之间移植模型,并且(在相似型号适用于不同产品的情况下)在STM32产品之间轻松迁移。

该插件扩展了STM32CubeMX功能,可自动转换训练好的AI模型,生成的优化库集成到用户项目中,而不是人工构建代码,并支持将深度学习解决方案嵌入到广泛的STM32微控制器产品组合中,从而为每个产品添加新的智能化功能。

STM32Cube.AI 原生支持各种深度学习框架,如Keras、TensorFlow™ Lite、ConvNetJs,并支持可导出为ONNX标准格式的所有框架,如PyTorch™、Microsoft® Cognitive Toolkit、MATLAB®等。

此外,STM32Cube.AI 支持来自广泛ML开源库Scikit-Learn的标准机器学习算法,如随机森林、支持向量机(SVM)、K-Means。

wKgZomUD4RWAUTbyAAKDyt4R8E4214.png

现在,我们准备将模型部署到MCU。我们使用STM32Cube.AI 的命令行模式将模型转换为经过优化的C代码。我们运用以下命令执行模型转换。


stm32ai generate -m random_forest.onnx


如果转换成功,我们将看到以下消息。

wKgaomUD4RaAR-RBAABNx5WTB4Q483.png

在stm32ai_output文件夹中,我们将看到有以下文件生成。其中,network.c/.h包含关于模型拓扑的一些信息,而network_data.c/.h则记录了关于模型权重的一些信息。

wKgZomUD4RiAdg8-AAAPUJULdFM116.png

此时,我们准备好将生成的模型集成到stm32项目中。在CLI模式下,我们需要手动添加STM32Cube.AI 的运行环境到项目,所以我们可以调用network.h中的函数来运行模型。

当然,STM32Cube.AI 提供一种更简便的方式来集成AI模型。假设您的项目从一个ioc文件开始,我们可以将AI模型添加到cubeMX的代码生成阶段,然后一起生成代码。

wKgaomUD4RmACYQVAAIMBxx7CzY878.png

启用cubeMX中的AI功能如下,选择对应的STM32Cube.AI 的版本。

wKgaomUD4RqAScIUAAJA_ooDWGA081.png

我们可借此将AI模型集成到项目中。

就这样,在我们生成代码后,AI模型转化为优化的C代码,然后与STM32Cube.AI 运行环境的对应版本一起集成到项目中。

wKgZomUD4R2AIBh1AAIc_GoEEtk597.png

这样,我们就可以调用network.h中的函数将模型运行起来。

最终,我们通过这种方式顺利地将模型集成到了项目中。通过比较这两种不同的方法,我们可以发现STM32Cube.AI 和NanoEdgeAI之间的差异。NanoEdgeAI更简单、高效,而STM32Cube.AI 则更加灵活且可定制。

关键字:STM32Cube  AI 引用地址:用STM32Cube.AI部署ONNX模型实操示例:风扇堵塞检测

上一篇:STM32L4R9的QuadSPI Flash通讯速率不理想
下一篇:基于STM32F407库函数开发按键控制LED灯

推荐阅读最新更新时间:2024-11-19 08:36

智能机器人市场 谁会第一个尝到“IP+AI”甜头
至今,全球智能机器人领域已经有 3 个“ Big Name ”正式消失:全球智能家庭社交机器人鼻祖 Jibo 、Kuri ,以及 Anki 都倒闭了。有观点认为,这几家智能机器人公司的倒闭,表明家庭社交机器人的模式有些问题,而且,在面向家庭、陪伴的场景,十分“没有灵魂”。这个问题不止是家庭智能机器人的问题,这样硬件产品也被如此挑剔过。 美国康乃尔大学机械与航天工程学院助理教授、人机交互实验室负责人 Guy Hoffman 就表示,问题的症结在于孤立化。它是所有社交机器人初创公司所面临的重大问题之一。 家庭智能机器人大多数时候被想象成孤岛,从事自己的任务,承载所有焦点。把家庭智能机器人设计成一个生态系统产品的组成部分,或许
[机器人]
HomePod人工智能水准不给力?未来却不可限量
国外的风险投资及研究机构Loup Ventures在 HomePod 上市后对它进行了一系列测试,尽管在音质和易用性等方面都处于领先地位,但HomePod的人工智能水准不高,在700多个问题中,只答对了52.3%。   Loup Ventures拿了三个HomePod进行了独立测试,共询问了782个问题,HomePod(或者说Siri)理解了99.4%,但它只答对了52.3%的问题,在整个测试中排名倒数第一。   与市面上的竞争对手相比,HomePod在 AI 这方面的表现垫底,这些问题Google Home答对了81%, 亚马逊 的Alexa答对了64%,微软的Cortana答对了57%。   Siri对“本地”和“商务”方面的
[嵌入式]
助力汽车产业智能化转型,生成式AI大有可为
随着生成式AI技术的飞速发展,汽车产业也迎来了前所未有的智能化转型机遇。 近日,在亚马逊云科技汽车暨制造与消费电子行业峰会上,亚马逊云科技中国区行业集群总经理沈涛详细阐述了亚马逊云科技是如何在自动和智能驾驶、智能座舱、数字化用户体验、软件定义汽车等领域,与合作伙伴一起探索和构建行业解决方案,助力汽车企业充分释放生成式AI的潜力,全面拥抱AI智能化时代。 全价值链解决方案助力产业创新 如今全球前十大整车厂商、一级供应商、科技厂商,都不约而同地选择了亚马逊云科技作为数字化转型和创新的合作伙伴。那么亚马逊云科技究竟提供了怎样的产品与服务,才让这些车企做出了同样的选择? 沈涛指出,亚马逊云科技覆盖全价值链的汽车行业解决方案
[汽车电子]
智能音箱大盘点:天猫精灵/小米AI/小度/小豹智能音箱哪个好
一、前言:2018最火4款 智能音箱 全员到齐! 科技圈每年都有新潮流,10年前是智能手机、8年前是平板电脑,4年前是可穿戴设备,2年前是人工智能,今年则毫无疑问就是火遍全球——特别是中国——的智能音箱了。     据市场研究机构Canalys数据显示,2018Q1全球智能音箱同比增长200%,而其中中国智能音箱市场增速达到了罕见的5370%,智能音箱出货量达180万台,中国成为仅次于美国的全球第二大智能音箱市场。   智能音箱在中国的发展可以用迅速发展来形容,在2017年以前国内还没有智能音箱这个概念,随后在1年时间内,国内智能音箱市场突然加速,BAT紧急入场,智能音箱产品百花齐放,最终诞生了国内第一款出货量超百万的智能音箱产
[嵌入式]
研究发现工作场所使用过量AI、机器人和追踪器并非好事
工作场所的技术革新,特别是人工智能、 机器人 和追踪器等新技术的普及应用,引发了对于生活质量的深刻思考。随着越来越多的工作岗位被自动化取代,以及监控设备的普及,人们开始担忧这些技术是否真的有助于提升生活质量,亦或是给社会带来了负面的影响。 据高盛经济学家的预测,到2030年,全球将有3亿个工作岗位被自动化取代。这一数据令人深思,因为自动化的推进将不可避免地导致大量的失业问题。工作岗位的消失将会加剧社会的不平等现象,使得更多的人陷入贫困和失业的境地,从而降低整体生活质量。 同时,工作场所中的追踪器、机器人和基于人工智能的软件等新技术也给员工的生活质量带来了负面影响。根据工作研究所智囊团的研究,与信息通信技术相比,这些新技术往往会导致
[机器人]
机器人足球的人工智能算法方案分析
前段时间做了个人机对战的五子棋游戏,觉得人工智能非常有意思。所以最近没事,又思考了一下机器人足球的人工智能算法。 机器人足球和五子棋游戏的主要联系是:都需要随时分析整个棋盘/球场的状态,并作出最合适的反应;主要区别是:五子棋游戏是回合制的,而机器人足球是“即时”游戏,另外五子棋只要基于某一步棋子考虑,但机器人足球必须考虑23个人/球(棋子)。 表面看区别蛮大的,现在具体来分析一下: 1)关于机器人足球的“即时”特点 22个人,再加上一个足球,场上一共有23个物体在同时运动。我们不可能说机器人足球和五子棋一样,先一个人动,其他人站着,第一个动完再第二个人动。。.。这样不是在踢球,而是在表演节目。如果当年《星际
[机器人]
ChatGPT来了,中国人工智能该如何应对
在几年前召开的全国两会上,来自谷歌的围棋人工智能“阿尔法狗”曾引发高度关注。今年两会,人工智能研究机构OpenAI发布的ChatGPT聊天机器人站在镁光灯下,又成为代表委员们的热议对象。 在持续刷屏的热闹背后,ChatGPT到底将带来什么样的产业变革?中国人工智能行业又该如何应对? 不仅仅是聊天机器人 “ChatGPT不仅仅是搜索引擎的加强版,也不仅仅是一个聊天机器人。”全国政协委员、360集团创始人周鸿祎认为,ChatGPT通过软件运营服务(SaaS)方式所提供的人工智能服务,将重塑数字化应用和行业,为我们带来一场新的革命。 “ChatGPT标志着人工智能成为当前科技革命的核心技术,将极大提高生产力。”全国政协委
[物联网]
ExecuTorch 测试版上线,加速 Arm 平台边缘侧生成式 AI 发展
通过 Arm 计算平台与 ExecuTorch 框架的结合,使得更小、更优化的模型能够在边缘侧运行,加速边缘侧生成式 AI 的实现 新的 Llama 量化模型适用于基于 Arm 平台的端侧和边缘侧 AI 应用,可减少内存占用,提高精度、性能和可移植性 全球 2,000 万名 Arm 开发者能够更迅速地在数十亿台边缘侧设备上大规模开发和部署更多的智能 AI 应用 Arm 正在与 Meta 公司的 PyTorch 团队携手合作,共同推进新的 ExecuTorch 测试版 (Beta) 上线 ,旨在为全球数十亿边缘侧设备和数百万开发者提供人工智能 (AI) 和机器学习 (ML) 功能,进而确保 AI 真正的潜力能被最广泛的
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved