1. 嵌入式AI概述:端侧推理是什么?为什么需要它?
大家好,欢迎来到《嵌入式端侧推理引擎应用指南》的第一章。
说实话,每次跟刚入行的朋友聊嵌入式AI,大家第一反应都是:“把模型塞进手机里跑?” 嗯,差不多是这个意思,但远不止这么简单。
今天我们就来聊聊,到底什么是端侧推理,为什么这几年它这么火,以及市面上那些主流的推理引擎,到底该怎么选。
1.1 什么是端侧推理?
端侧推理,说白了,就是在设备本地运行AI模型,而不是把数据发到云端去算。
你想想看,传统的AI应用,比如你手机上的语音助手,很多时候是录音→上传云端→云端算完→返回结果。这个过程叫“云端推理”。
而端侧推理呢?模型直接烧在手机、摄像头、智能手表、甚至一个MCU上。数据不出设备,推理结果当场出。
我最早接触这个概念是在2017年,当时在做一个智能门锁项目。客户要求人脸识别必须在100毫秒内完成,而且不能联网。嗯,那时候我就知道,云端这条路走不通了。
1.2 为什么需要端侧推理?
你可能会问:“云端算力那么强,为什么非要跑在端上?” 这个问题我当年也问过我的导师。
原因其实很现实,主要有这么几点:
- 延迟敏感: 自动驾驶、工业质检这类场景,延迟超过10毫秒就可能出事故。云端来回一趟,少说几十毫秒,扛不住。
- 隐私安全: 医疗影像、人脸数据、银行交易,这些你敢随便上传?我在项目中遇到过客户明确要求“数据不出厂区”,那只能端侧推理。
- 离线可用: 矿井、深海、偏远山区,网络信号时有时无。端侧推理是唯一选择。
- 带宽成本: 一个高清摄像头每秒产生几十兆数据,全传云端?流量费都付不起。
- 功耗控制: 云端推理需要持续联网通信,功耗反而比本地推理高。我做过测试,某些场景下端侧推理功耗只有云端的1/5。
1.3 主流推理引擎介绍
好,接下来我们看看市面上那些主流的推理引擎。我按自己的使用经验,给大家排个序。
1.3.1 TensorFlow Lite
Google出品,生态最完善。如果你用TensorFlow训练模型,TFLite几乎是首选。
它的优势在于:
- 支持Android、iOS、Linux、MCU
- 硬件加速(GPU、NPU、DSP)支持较好
- 模型转换工具链成熟
但有个坑:对自定义算子支持不够友好。我曾经想塞一个自己写的算子进去,折腾了两天才搞定。
1.3.2 ONNX Runtime
微软主导的开源项目。它的核心卖点是“中间格式”——你不管用什么框架训练,转成ONNX,它都能跑。
我个人习惯用PyTorch训练,然后转ONNX,再用ONNX Runtime部署。这套流程非常丝滑。
不过要注意:ONNX Runtime在ARM平台上的性能优化,不如NCNN和MNN那么极致。
1.3.3 NCNN
腾讯开源,专为手机端优化。说实话,在ARM CPU上的推理速度,NCNN是我用过最快的之一。
它的特点:
- 纯C++实现,无第三方依赖
- 针对ARM v7/v8做了深度优化
- 支持Vulkan GPU加速
我记得有一次在骁龙865上跑MobileNetV2,NCNN比TFLite快了将近30%。
1.3.4 MNN
阿里巴巴开源。它的设计理念是“通用、高效、轻量”。
MNN的优势在于:
- 支持Windows、Linux、Android、iOS
- 内存占用极低(适合MCU)
- 算子丰富,覆盖主流模型
我曾经在STM32上跑过MNN,效果出乎意料地好。不过要注意,MNN的文档更新有点慢,有些新特性需要看源码。
1.3.5 TNN
字节跳动开源,算是后起之秀。它的亮点是跨平台做得很好,一套代码可以编译到不同后端。
TNN的特点:
- 支持CPU、GPU、NPU、DSP
- 模型转换工具支持PyTorch、TensorFlow、Caffe
- 量化工具链完善
嗯,这里要注意:TNN的社区活跃度不如前几个,遇到问题可能需要自己啃源码。
1.4 如何选择推理引擎?
我给大家一个简单的选择思路:
| 场景 | 推荐引擎 | 理由 |
|---|---|---|
| Android手机 | TFLite / NCNN | 生态好,优化到位 |
| iOS设备 | CoreML / TFLite | 苹果自家优化 |
| ARM Linux | ONNX Runtime / MNN | 通用性强 |
| MCU(STM32等) | TFLite Micro / MNN | 内存占用极低 |
| 跨平台项目 | TNN / ONNX Runtime | 一套代码多平台 |
1.5 小结
这一章我们聊了:
- 端侧推理是什么——在设备本地跑模型
- 为什么需要它——延迟、隐私、离线、带宽、功耗
- 主流引擎有哪些——TFLite、ONNX Runtime、NCNN、MNN、TNN
- 怎么选——看场景、看算子、看生态
下一章,我们会深入讲解模型量化——这是嵌入式AI里最核心的技术之一。到时候我会分享一些实战中的量化踩坑经历,保证让你少走弯路。
好,今天就到这里。有问题欢迎留言讨论。