手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

06-01 1070阅读

        在嵌入式设备上部署深度学习模型已成为边缘计算的热门方向。本文将以STM32F429开发板(使用的是野火的STM32F429挑战者开发板)为例,结合STM32CubeMX和X-Cube-AI工具包,详细讲解如何将训练好的神经网络模型部署到嵌入式MCU上,并实现实时推理。本文内容涵盖环境搭建、模型转换、工程配置、代码优化及验证全流程,适合嵌入式开发者与AI爱好者参考。


目  录

一、环境准备

1.硬件准备

2.软件准备

3.STM32CUBE_AI安装教程

二、创建工程

三、编译下载工程

四、验证模型

五、总结


一、环境准备

1.硬件准备

    • STM32F429开发板(如野火挑战者系列)。
    • USB转串口模块或数据线(用于调试输出)。
    • 传感器或输入设备(如摄像头、麦克风,根据模型需求选择)。

      2.软件准备

        • STM32CubeMX(建议版本≥6.8.1)。
        • X-Cube-AI扩展包(下载方式后面有教程)。
        • IDE:Keil MDK、STM32CubeIDE(本文以Keil为例)。
        • 模型训练框架:PyTorch、TensorFlow或Keras(以ONNX或TFLite格式导出模型)。

          3.STM32CUBE_AI安装教程

          1.安装好STM32_CUBEMX,这里不再赘述,可以参考其他博客。

          2.点击INSTALL

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          3.按照下图所示选择对应的版本下载,我使用的是9.0.0版本

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          4.等待下载完成即可


          二、创建工程

          5.点击ACCESS TO MCCU SELECTOR

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          6.选择芯片,根据自己所使用的芯片选择。

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          7.按照下图所示选择

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          8.按照下图所示的方式上传自己的模型

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          9.选择文件后的结果如下图所示

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          里面所使用的模型文件:

          10.点击Start Project

          11.配置RCC、SYS、USART1

           手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI       手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI        手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          12.选择中间件

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          13.如图根据自己的要求选择,这里我按照下图选择

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          14.上一步选好后点击 OK 再次点击X_CUBE-AI会弹出弹窗,选择 NO

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          15.点击NO之后进入下图所示界面,按照下图进行选择

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          16.按照下图选择串口1

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          17.按照下图操作

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          18.

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          19 .开始加载

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          20.加载完成

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          21.

            -1  注!!!!!!! 如果你的电脑账户是中文,或者你上传的模型的路径是中文,那么大概率会报以下错误。

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          22.  解决方式我最后的解决方式是使用电脑上的另外一个英文名字的账户,重新安装了前面讲述的步骤,并且将模型文件都放在了英文路径下,就可以了。

           - 2 如果显示字节的问题,直接搜索,会有对应的博客解答。

          23.如果没问题,继续以下步骤。

          24.点击OK,配置时钟树,根据自己使用的开发板进行配置

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          25.输入工程名称,选择相关设置

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          26.勾选下图所示的选项后点击生成工程

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI


          三、编译下载工程

          1.使用KEIL打开建立好的工程

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          2.点击编译,成功如下所示 0错误 0警告

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          3.如果报以下的错误

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          4.点击上方的魔术棒,进入Linker后点击Edit

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          5.这是正确的内容手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI6.这是错误的内容,内存区域冲突了

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          7.修改为以下的内容即可,直接使用全部的RAM(256KB - F429挑战者)

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          8.修改后再次编译即可通过,然后将HEX文件下载到开发板中,根据自己的开发版选择对应的下载方式,我这里是使用的是配套的DAP下载

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI


          四、验证模型

          9.下载完成后,使用USB转串口或者数据线连接开发板的串口1到到电脑上,使用STM32CUBEMX打开刚才的CUBEMX配置文件,回到下图的界面。

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          10.按照下图操作

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          11.如果如下图所示即为验证成功

          手把手教你在单片机上部署深度学习模型——基于STM32CubeMX与X-Cube-AI

          12.如果显示无法连接串口的话,将开发板和电脑的接口都断开,开发板复位,然后再将串口和电脑连接,重新进行上述操作即可。


          五、总结

          1.该方式适合模型较小的情况,第一次尝试的话直接使用我上传的模型比较好,我下载的是官方的模型。

          2.如果要部署超过开发板本身FLASH 和 RAM的模型:

           - 压缩模型到适合的大小

           - 开发板外接FLASH和RAM

           - 动态使用空间(推理速度会变慢)

          3.该博客只是带着走一遍完整的过程,其中有些配置及设置需要自行查看官方文档介绍或者b站视频学习。


          ---------------------------------- -----------该博客为原创,不允许抄袭 ----------------------------------------------

          该篇博客当中如有问题,请在评论区留言。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码