内容简介
本文章主要介绍如何将 AI 模型部署到单片机上,并实现一些基础的逻辑功能,本次文章主要从模型获取,模型部署以及模型使用三个层次进行介绍
模型获取
在模型部署的前期阶段我们并没有独立制造模型的能力,但本阶段我们的目标是去使用模型而非创造模型,只要能够成功部署并调用模型本阶段的任务就圆满完成了,因此本阶段我们的模型只能自己想办法去获取,主要途径如下
意法半导体官方获取
在 STM32CubeMX AI 的官方下载页面中下拉就可以找到对应的官方模型库
网址如下
下拉后可以看到对应的 STM32 Model Zoo 的相关信息,点击了解更多信息
![图片:STM32 Model Zoo 入口]
在新弹出的页面中选择前往 Model Zoo
![图片:Model Zoo 跳转页]
随后我们便跳转到了意法半导体官方在 GitHub 上提供的模型仓库,
![图片:GitHub 模型仓库]
下拉即可找到不同类型的开源模型
![图片:开源模型列表]
通过观察不难发现官方提供的 AI 模型大多用于进行图像处理相关操作,这对开发板的板载芯片性能要求较高,且需要使用到对应的摄像头模块,最重要的部署难度也很高,因此对本阶段的学习并不友好,如果后面大家熟练掌握了如何进行模型部署后,或需要使用单片机进行图像处理的相关工作时可以回来再看看有没有满足自己使用需求的 AI 模型
关于模型下载的网络环境提示
意法半导体提供的 AI 模型主要分别存放在 GitHub 和 Hugging Face 网站中。由于这两个都是国际开源社区,国内用户在直接访问时可能会遇到页面加载缓慢、响应超时或资源无法下载等网络不稳定的情况。
建议大家在获取这些官方模型时,尽量保持良好的网络环境。如果你在下载过程中反复遇到超时问题,可以尝试在 Gitee(码云)等国内代码托管平台上搜索 STM32 Model Zoo 相关的镜像搬运仓库,这能极大提高你的模型获取效率。
浏览器搜索获取
现在在各大浏览器中搜索 TinyML,Edge AI 等关键词都能获得相应的教程,一般情况下对应教程中也会提供相应的模型供我们去复现相关操作。
模型部署
环境搭建
将 AI 模型部署到 MCU 上有手动和自动两种方式,绝大多数情况下我们选择自动化部署方式,自动化部署就需要使用到 STM32CubeMX 软件进行相关的自动化操作,但 STM32CubeMX 并不能做到开箱即用,需要在原有基础上进行一些改动,这里默认大家都已经成功安装好了 CubeMX,并且能够正常使用 CubeMX 进行单片机程序的初始化操作
- 至此基本的 AI 模型环境搭建操作就完成了
在新弹出的界面中选择 STMicroelectronics 选项,并在下面的选项框中下拉找到 X-CUBE-AI 选项,点开折叠区并在下方选择需要安装的版本,随后选择 install 选项即可
![图片:X-CUBE-AI 安装界面]
打开软件在初始界面中选择 Help 选项,并在随后的弹窗中选择 Manager embedded software packages 选项,或者直接按下键盘快捷键 Alt+U
![图片:软件包管理器入口]
模型部署流程
单片机型号选择
我们打开 CubeMX 像往常一样尝试创建一个新的 MCU 工程,随后来到了芯片选型界面,在左侧的选项栏中一直下拉,就可以在最后一栏看到对应 AI 模型使能选项,勾选对应选项即可实现 AI 功能的使能
![图片:芯片选型界面]
但是如果此时我们选取的是 F1 系列的芯片我们就会发现,此时对应的选项框为无法选择状态
![图片:F1 系列不支持提示]
由此可以看出 CubeMX 并不支持对 F1 系列芯片进行 AI 模型的自动化部署功能,主要原因是 F1 系列芯片性能较差,因此 CubeMX 就默认不支持对 F1 系列芯片的自动化操作,但是这并不意味着我们不能在 F1 系列芯片上运行 AI 模型,我们可以手动将较小型的 AI 模型移植到 F1 系列芯片中,但是操作流程也会非常复杂
模型选择与部署
- 本次我使用的是 F7 系列开发板,在工程创建后通过图形化界面对工程项目进行一系列的初始化操作


