第一章:嵌入式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的案例了。

如何选择芯片

选芯片这事儿,没有标准答案。我一般按这个思路来:

  1. 先看算力需求:你的模型需要多少算力?如果只是做简单的二分类,STM32就够了。如果要跑YOLO,至少得上Jetson。
  2. 再看功耗限制:电池供电还是插电?电池供电的话,功耗得控制在1W以内,那就只能选STM32或K210。
  3. 最后看成本预算:量产的话,芯片成本很关键。STM32几块钱一片,K210十几块,Jetson Nano要几百块。

嗯,说到这里,你应该对嵌入式AI有个大概的了解了。下一章咱们聊聊模型部署的具体流程,包括模型训练、量化、转换这些实操内容。到时候我会拿一个实际项目来演示,保证你能跟着做出来。

对了,如果你在选芯片上拿不准,可以加我微信聊聊。我的联系方式在页脚,随时欢迎交流。