第一章:嵌入式AI概述
各位同学好,我是这门课的主讲工程师。今天咱们聊聊嵌入式AI到底是什么,以及它为什么值得你花时间来学。
说实话,我第一次接触嵌入式AI是在2018年。那时候我刚做完一个工业视觉项目,客户要求在STM32上跑人脸检测。我当时的第一反应是——这玩意儿能跑得动?结果折腾了两个月,还真让我给跑起来了。从那以后,我就彻底入了这个坑。
什么是嵌入式AI
嵌入式AI,说白了就是把人工智能算法塞进资源受限的嵌入式设备里。你想想看,传统的AI模型都是在云端跑的,数据要上传、要处理、再返回结果。但嵌入式AI不一样,它直接在设备本地做推理。
为什么要这么做?原因很简单:
- 实时性:本地处理,没有网络延迟。我在做工业质检项目时,要求检测延迟低于50ms,云端根本做不到。
- 隐私性:数据不出设备。比如智能摄像头,人脸数据就在本地处理,不用上传到云端。
- 低功耗:嵌入式设备功耗低,电池供电也能跑。我见过一个智能门锁项目,一颗纽扣电池撑了半年。
- 低成本:相比云端服务器,嵌入式芯片便宜得多。
核心要点:嵌入式AI不是把大模型硬塞进小芯片,而是要做模型压缩、量化、剪枝等一系列优化。说白了,就是让模型学会「在螺蛳壳里做道场」。
嵌入式AI的应用领域
这几年嵌入式AI的应用场景越来越多。我挑几个典型的说说:
智能家居
智能音箱、智能灯、智能门锁...这些设备里都有AI芯片在做语音识别、人脸识别。我记得有个项目是做智能猫眼,用K210芯片做人脸检测,成本压到了50块钱以内。
工业视觉
这是我最熟悉的领域。产线上的缺陷检测、条码识别、尺寸测量,现在都用嵌入式AI来做。以前这些活儿得靠工控机,一台好几万。现在用Jetson Nano,两千块搞定。
自动驾驶辅助
虽然全自动驾驶还早,但车道保持、碰撞预警这些功能已经普及了。这些功能都是在嵌入式芯片上实时跑的,对算力和功耗要求极高。
医疗可穿戴
智能手环、心电监测仪、血糖仪...这些设备里也有AI在做数据分析。我有个朋友在做便携式心电图设备,用STM32跑轻量级神经网络,准确率能做到95%以上。
农业物联网
智能灌溉、病虫害识别、农产品分拣...这些场景也开始用嵌入式AI了。说实话,我第一次看到用树莓派做草莓分拣时,还挺惊讶的——效果居然不错。
主流嵌入式AI芯片介绍
市面上的嵌入式AI芯片很多,但真正主流的就那几款。我按从入门到进阶的顺序给你介绍:
| 芯片型号 | 算力 | 功耗 | 价格 | 适合场景 |
|---|---|---|---|---|
| STM32系列 | 极低(~0.01 TOPS) | 极低(~0.1W) | 极低(~$5) | 传感器数据处理、简单分类 |
| K210 | 低(~0.5 TOPS) | 低(~0.3W) | 低(~$10) | 人脸检测、物体识别 |
| 树莓派 | 中(~0.1 TFLOPS) | 中(~5W) | 中(~$35) | 原型验证、教学实验 |
| Jetson Nano | 高(~0.5 TFLOPS) | 高(~10W) | 高(~$99) | 实时视觉、机器人 |
STM32系列
这是最入门的嵌入式AI芯片。说实话,它的算力很低,但胜在功耗极低、价格便宜、生态成熟。我建议初学者从STM32开始,因为你能学到最底层的优化技巧。
STM32跑AI主要靠CMSIS-NN库,这是一个ARM官方出的神经网络加速库。我在项目里试过,在STM32F4上跑一个简单的二分类模型,推理时间大概在50ms左右。嗯,够用,但别指望跑复杂的模型。
我的建议:如果你刚入门,先买块STM32F407开发板,跑跑手写数字识别。别一上来就搞复杂的,容易劝退。
K210
K210是嘉楠科技出的AI芯片,专门为边缘计算设计的。它内置了神经网络加速器(KPU),可以跑一些轻量级的CNN模型。
我去年用K210做过一个智能门锁项目,跑MobileNet V1做活体检测,帧率能到30fps。功耗才0.3W,用电池供电完全没问题。
不过K210有个坑——它的开发工具链不太成熟。我刚开始用的时候,光是配置环境就折腾了两天。后来发现官方有个MaixPy固件,用MicroPython写代码,方便多了。
避坑指南:K210的KPU只支持特定格式的模型,不是所有模型都能直接跑。我曾经试过把PyTorch模型转成K210格式,折腾了一周才成功。建议直接用官方提供的模型转换工具。
树莓派
树莓派严格来说不算嵌入式芯片,它是一台完整的微型电脑。但因为它便宜、生态好、社区活跃,很多人拿它来做嵌入式AI的原型验证。
树莓派跑AI主要靠CPU或者外接Intel神经计算棒。我建议用树莓派4B,4GB内存版本,跑一些轻量级的模型没问题。比如用OpenCV做人脸检测,帧率能到10fps左右。
但说实话,树莓派不适合做产品量产。它的功耗高、稳定性一般,而且没有专门的AI加速硬件。我一般只在原型阶段用树莓派,产品阶段会换成Jetson或者K210。
Jetson Nano
Jetson Nano是英伟达出的AI边缘计算平台。它内置了128个CUDA核心,算力达到0.5 TFLOPS,可以跑一些中等规模的深度学习模型。
我去年做了一个工业视觉项目,用Jetson Nano跑YOLOv4-tiny做缺陷检测,帧率能到30fps。这个性能已经可以满足大部分实时检测需求了。
不过Jetson Nano的功耗比较高,满负荷运行大概10W左右。如果做电池供电的产品,得好好考虑散热和续航问题。
我的经验:如果你要做产品,建议直接上Jetson Nano。虽然贵一点,但开发效率高、生态好、性能也够用。我见过太多团队在K210上折腾半年,最后发现性能不够,又换回Jetson的案例了。
如何选择芯片
选芯片这事儿,没有标准答案。我一般按这个思路来:
- 先看算力需求:你的模型需要多少算力?如果只是做简单的二分类,STM32就够了。如果要跑YOLO,至少得上Jetson。
- 再看功耗限制:电池供电还是插电?电池供电的话,功耗得控制在1W以内,那就只能选STM32或K210。
- 最后看成本预算:量产的话,芯片成本很关键。STM32几块钱一片,K210十几块,Jetson Nano要几百块。
嗯,说到这里,你应该对嵌入式AI有个大概的了解了。下一章咱们聊聊模型部署的具体流程,包括模型训练、量化、转换这些实操内容。到时候我会拿一个实际项目来演示,保证你能跟着做出来。
对了,如果你在选芯片上拿不准,可以加我微信聊聊。我的联系方式在页脚,随时欢迎交流。