1. ONNX与嵌入式AI概述:ONNX是什么、为什么在MCU上做推理、课程目标与前置知识

1.1 ONNX到底是什么?

先说说ONNX。全称是Open Neural Network Exchange,开放神经网络交换格式。说白了,它就是一个AI模型的“通用语言”。

我刚开始做嵌入式AI那会儿,各家框架各玩各的。PyTorch训练好的模型,想部署到MCU上?得先转成TensorFlow,再量化,再转C文件。折腾一圈,中间还容易出bug。后来微软和Facebook联手搞了ONNX,这事儿就简单多了。

ONNX的核心作用就两个:

  • 模型互转:PyTorch、TensorFlow、Keras、MXNet……不管哪个框架训练的模型,都能导出成ONNX格式
  • 推理优化:ONNX Runtime专门针对ONNX模型做了推理加速,内存占用也小

嗯,这里要注意:ONNX不是训练框架,它只管推理。你训练还是用PyTorch或TensorFlow,训练完了导出成.onnx文件,再交给ONNX Runtime去跑。

重要概念:ONNX模型文件(.onnx)本质上是一个protobuf序列化的文件,里面存了计算图结构、权重参数、算子定义。你可以把它理解成AI模型的“二进制蓝图”。

1.2 为什么要在MCU上做推理?

你可能会问:云端的服务器算力那么强,干嘛非要在MCU上跑?

我举个例子。我在一个智能门锁项目里,需要做人脸识别。如果每次识别都把图片传到云端,等服务器算完再传回来——延迟高不说,万一断网了,门都打不开。这用户体验,你想想看,多糟糕。

在MCU上做推理,有几个实实在在的好处:

  • 低延迟:数据不用上传,本地处理,毫秒级响应
  • 隐私安全:敏感数据不出设备,比如语音、图像、生物特征
  • 离线可用:没网也能正常工作
  • 低成本:MCU芯片几块钱到几十块钱,比带GPU的板子便宜太多
  • 低功耗:很多MCU跑推理时功耗才几十毫瓦,电池能撑很久

当然,MCU上做推理也有挑战。算力有限,内存小(通常几十KB到几MB),浮点运算慢。所以模型必须做量化、剪枝、压缩。这也是咱们这门课要重点讲的内容。

我的经验:选MCU做推理,先看RAM和Flash够不够。我建议至少256KB Flash、64KB RAM起步,不然模型稍微大点就塞不进去。

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

这门课的目标很明确:让你能亲手把一个ONNX模型部署到MCU上,跑起来,并且跑得稳。

具体来说,学完这门课,你应该能:

  1. 理解ONNX模型的结构:知道计算图、节点、张量、算子这些概念
  2. 掌握模型转换与优化:从PyTorch/TensorFlow导出ONNX,做量化、剪枝、算子融合
  3. 熟悉ONNX Runtime:在PC上验证推理结果,生成适合MCU的运行时库
  4. 完成MCU端部署:把模型烧录到STM32、ESP32等常见MCU上,实现实时推理
  5. 学会性能调优:内存管理、算子替换、多级流水线……让推理跑得更快

我记得有个学员跟我说,他之前用TensorFlow Lite Micro做部署,遇到算子不支持就卡住了。学了ONNX Runtime后,发现可以自定义算子,问题迎刃而解。这就是咱们课程要教你的——不是死记硬背,而是真正能解决问题的思路。

1.4 前置知识:你需要会什么?

这门课不是零基础入门。我假设你已经具备以下基础:

知识领域 具体要求
C语言 能写结构体、指针、回调函数,理解内存管理
嵌入式基础 用过STM32或ESP32,会GPIO、UART、定时器
Python基础 能写脚本处理数据,会用NumPy、Matplotlib
机器学习基础 知道神经网络是什么,理解卷积、池化、全连接
工具链 会装Python包,会用Git,会用命令行

如果你还不太熟,也别慌。我建议你先花一周补补C语言指针和Python基础。我在课程里也会尽量把每个步骤讲清楚,但不会从零教编程基础。

避坑指南:我曾经见过有人连指针都没搞明白,就直接上手部署模型。结果内存越界、野指针满天飞,查了两天bug。嗯,基础不牢,地动山摇。先把C语言和嵌入式基础打扎实了再开始。

1.5 课程路线图

咱们这门课一共30章,我按“从理论到实践”的思路来安排:

  • 第1-5章:ONNX基础与模型转换(理论+实操)
  • 第6-12章:模型优化(量化、剪枝、算子融合)
  • 第13-20章:ONNX Runtime在MCU上的移植与适配
  • 第21-26章:实战项目(图像分类、语音识别、传感器融合)
  • 第27-30章:性能调优与高级技巧

每一章我都会给代码示例,你跟着敲一遍,基本就能掌握。遇到问题可以在课程群里问,我会尽量回复。

好了,第一章就到这里。下一章咱们开始动手——从PyTorch导出一个ONNX模型,看看它长什么样。

一句话总结:ONNX是AI模型的通用格式,MCU推理能实现低延迟、高隐私、低成本。这门课教你从模型转换到MCU部署的全流程。准备好了吗?咱们开始吧。