
都AI时代了,咱MCU不上AI有点说不过去了,这就来学习一下stm32的边沿计算AI。 一.配置软件工程&训练这里就不讲诉软件的下载安装及license的申请了。打开软件后主界面如上所示,可生成四种类型的库:异常检测、异常值检测、分类和回归库。 这里就演示创建一个异常检测的工程。创建之后可以看到需要设置硬件条件,目标板及传感器配置。 可选的目标板也是非常多的,基本涵盖可用的arm mcu了。 我们手上的目标板是STEVAL-STWINKT1B,那就直接选择STEVAL-STWINKT1B,会自动更新硬件资源,配置好传感器之后就可以点击下一步。 二.数据采集工程搭建上一节讲到第三种方法这里就不再重复了,可以查看教程如何将dat文件转成csv文件导入到。这里我们来尝试第二种方法,直接通过串口来采集数据。 参考[https://github.com/stm32-hotspot/stm32ai-nanoedge-datalogger]() 下载nanoedge-datalogger源码 选择对应的工程Projects\STEVAL-STWINKT1B\STEVAL-STWINKT1B_ISM330DHCX,使用stm32cubemx打开后生成工程,切记需要生成对应STM32CubeIDE工程,发现使用keil会出现编译报错的问题。 生成工程后,编译ok后即可下载到STEVAL-STWINKT1B。 然后就可以使用串口直接导入实时采集的数据了。 点击“START/STOP”按钮即可开始采集数据,再次点击“START/STOP”按钮停止采集数据。 点击“CONTINUE”按钮之后进入数据分隔,这里默认用空格即可,确认无误后导入。 导入信号之后,可以看得到数据的基本信息并会对每个轴数据做FFT分析,这里只是导入正常的信息,按照同样方式采集异常信号。 导入正常信号数据及异常信号数据后,就可以开始训练模型了。 选择训练信号样本及线程数,这里只选了两个样本做训练,可以选择多组样本的。 可以训练后,就可以静待训练结果了。可以查看训练的分数,分数越高说明训练的库性能越好,准确性越高。 训练结束之后会给出一些模型信息,数值10代表最少的学习次数。 二.检验模型检验方法有很多,可以导入信号数据文件。 也可以通过串口采集数据的方式来仿真,AI检测的操作逻辑是先学习再检测。这里先学习至少10组正常信号,相当于机器的知识库。然后再检测。 然后就可以测试一下正常信息的情况,这里可以看到,AI检测是用相似值来体现的。 异常信号的相似值就很低了。 三.输出模型库这里的Embedded konwlegde加上的话,那就可以把知识库输出了,就不需要每次上电都要重新学习了。 点击编译模型库之后,就会弹出这个对话框,可以去获取库文件了。 点击保存库之后,即可将库保存到本地电脑里。 |
很详细
9 N* u; D% t& W, G; |
问题:用NanoEdge AI训练好的模型,部署到steval-stwinkt1b,板子需要学习个20次,才能监测异常,我可以写死这个这个学习结果吗。因为板子重新上电之后又要重新学习20次才能正常使用了。
解答:/ t6 v' n9 {/ u+ Q1 `) y
NanoEdge AI的异常检测库是在电脑上进行训练的,最后deployment那一步的时候,用户可以选择保留还是放弃在电脑上训练得到的参数,如果保留的话,在MCU上就不需要再进行学习了,当然如果用户想让模型对设备产生适应性,变得更加准确,也可以学习做一些学习。生成的.a库是批量烧写到MCU上的。
* w( o. e# L# d* {" g) b
这个配合AI的很好,搭配个优秀的大模型就无敌了