1. 课程导论:边缘AI的崛起与STM32的机遇

各位同学好,我是你们这门课的主讲工程师。在嵌入式这行摸爬滚打了十几年,从最早的8位单片机做到现在的双核Cortex-M7,我亲眼看着AI从云端一点点「下沉」到了我们手边的MCU上。

说实话,五年前如果有人跟我说,要在STM32上跑图像识别,我肯定觉得他疯了。那时候我们连跑个JPEG解码都得精打细算,更别提卷积神经网络了。但现在不一样了——STM32Cube AI工具链成熟了,NPU加速器也集成进来了,边缘AI不再是噱头,而是实打实的工程需求。

边缘AI的核心价值: 低延迟、隐私保护、离线运行、低功耗。这些恰恰是云端方案做不到的。

1.1 为什么是STM32?

你可能会问:市面上那么多MCU,为什么偏偏选STM32做边缘AI?我个人的看法是,STM32的优势不在于算力最强,而在于生态最完整。

  • 硬件覆盖广: 从低功耗Cortex-M0+到带NPU的Cortex-M55,一条产品线覆盖所有场景
  • 工具链成熟: STM32CubeMX + CubeIDE + CubeAI,三件套打通从配置到部署的全流程
  • 社区资源多: 遇到坑了,基本都能找到前人踩过的痕迹

我记得2019年第一次用CubeAI做手势识别时,模型量化后精度掉了8个点,折腾了两天才找到原因——是输入图像的归一化参数没对齐。这种经验,说白了就是靠时间和项目堆出来的。

1.2 课程目标:你能学到什么?

这门课不是讲理论,而是讲实战。我假设你已经会用STM32做基本的GPIO、UART、I2C操作,也大概知道什么是卷积神经网络。如果你还不会,也没关系,我会在关键地方补上必要的背景知识。

模块 核心内容 实战产出
图像预处理优化 色彩空间转换、缩放、归一化的加速方法 优化后的图像预处理流水线
模型部署 STM32CubeAI工具链使用、量化、剪枝 在STM32上运行的TFLite模型
性能调优 DMA、双缓冲、Cache策略、NPU加速 推理速度提升2-5倍的优化方案
实战项目 人脸检测、物体分类、手势识别 完整的边缘AI应用原型
我的建议: 每章结束后,别急着往下看。先把你手边的开发板跑一遍示例代码,哪怕只是点个灯,也比光看强。嵌入式这东西,不动手永远学不会。

1.3 学习路径:怎么学最有效?

这门课一共30章,我把它分成了四个阶段。你不需要一次性啃完,但建议按顺序来——因为后面的章节会用到前面的知识。

  1. 基础篇(第1-5章): 环境搭建、图像预处理基础、CubeAI工具链入门
  2. 优化篇(第6-15章): 预处理加速、模型量化、内存优化、推理加速
  3. 进阶篇(第16-25章): 多模型协同、NPU编程、功耗优化、调试技巧
  4. 实战篇(第26-30章): 三个完整项目从零到一,外加一个综合挑战

我个人习惯是每学完一个阶段,停下来做个复盘。把踩过的坑、用过的技巧、跑过的数据都记下来。这些东西在面试或者做下一个项目时,比任何理论都管用。

1.4 开发环境总览

工欲善其事,必先利其器。咱们先把环境搭好,后面才能专心搞优化。

硬件准备

我推荐以下三块开发板,覆盖了从入门到进阶的需求:

开发板 主控芯片 适用场景 参考价格
STM32F746G-DISCO STM32F746NG (Cortex-M7, 216MHz) 入门级图像处理、LCD显示 约¥400
STM32H747I-DISCO STM32H747XI (双核M7+M4, 480MHz) 高性能推理、双核协同 约¥600
B-U585I-IOT02A STM32U585 (Cortex-M33, 160MHz) 低功耗AI、物联网场景 约¥350
避坑提醒: 我曾经买过一块二手F746开发板,结果摄像头接口是坏的,排查了三天才发现是硬件问题。建议从正规渠道购买,或者至少确认所有外设都能正常工作再开始项目。

软件工具链

软件方面,我们主要用以下工具。我会在第二章详细讲安装配置,这里先列个清单:

  • STM32CubeMX: 图形化配置工具,生成初始化代码
  • STM32CubeIDE: 集成开发环境,基于Eclipse,免费
  • STM32CubeAI: 模型转换与优化工具,支持Keras/TFLite/ONNX
  • X-CUBE-AI: 运行时库,提供推理API
  • OpenCV(PC端): 用于预处理算法的原型验证

嗯,这里要注意一点:CubeAI的版本更新很快,不同版本对算子支持不一样。我建议统一用课程配套的版本,避免出现「我的代码明明跟你一样,为什么跑不通」的情况。

1.5 知识体系总览

下面这张图,是我自己整理的课程知识体系。你可以把它当作地图,随时回来看看自己走到哪了。

课程知识体系结构图 STM32Cube AI 图像识别预处理优化与性能调优 · 知识体系 图像输入源 图像预处理优化 色彩空间转换 · 缩放 · 归一化 · ROI提取 模型部署与量化 STM32CubeAI · 量化感知训练 · 算子映射 推理性能调优 DMA · 双缓冲 · Cache策略 · NPU加速 应用输出 工具链支撑 CubeMX CubeIDE CubeAI / X-CUBE-AI 硬件平台 STM32F7 / H7 / U5 OV2640 / OV5640 摄像头 LCD显示屏

这张图把整个课程的核心流程串起来了。你注意看,从图像输入到最终输出,中间经过了预处理、模型部署、推理加速三个关键环节。每个环节都有对应的优化手段,这也是咱们这门课要重点攻克的内容。

核心思路: 边缘AI的性能瓶颈往往不在模型本身,而在数据搬运和预处理上。我见过太多人花大量时间优化模型,却忽略了图像从摄像头到神经网络输入层之间的那几步——恰恰是这几步,占了整个推理时间的30%-50%。

1.6 写在开始之前

最后说几句心里话。做边缘AI,说白了就是在资源受限的环境下「戴着镣铐跳舞」。你不可能像在服务器上那样随意堆算力,每一KB内存、每一个CPU周期都得精打细算。

但正是这种限制,让这个领域变得有趣。当你看到自己优化的模型在STM32上以30fps跑起来的时候,那种成就感,是调参调出来的高精度给不了的。

好,咱们开始吧。