前置知识: 物联网

边缘AI

4 minAdvanced2026/6/14

边缘AI:TinyML、模型压缩、边缘推理框架与端侧智能应用详解。

1. 边缘 AI 概述

1.1 什么是边缘 AI

边缘 AI 是将 AI 推理部署在边缘设备上,实现本地数据处理和决策,减少对云端的依赖。

1.2 边缘 vs 云端

对比项云端 AI边缘 AI
延迟高(网络延迟)低(本地推理)
带宽需上传数据无需上传
隐私数据离开设备数据本地处理
可用性依赖网络离线可用
算力有限
模型大小无限制严格限制

1.3 应用场景

场景描述
智能家居语音唤醒、人脸识别
工业检测缺陷检测、预测维护
自动驾驶实时感知、决策
医疗设备生命体征监测
安防监控异常行为检测

2. TinyML

2.1 概述

TinyML 是在微控制器(MCU)上运行机器学习的技术,目标是在功耗 < 1mW 的设备上实现 AI 推理。

2.2 资源约束

约束典型值
RAM16-512 KB
Flash64 KB - 2 MB
功耗< 1 mW
算力10-100 DMIPS

2.3 典型任务

任务模型RAMFlash
唤醒词检测DSCNN~20KB~50KB
像分MobileNet~200KB~500KB
异常检测AutoEncoder~10KB~30KB
手势识别LSTM~50KB~100KB

3. 模型压缩技术

3.1 量化

描述压缩比
训练后量化(PTQ)训练后直接量化2-4x
量化感知训练(QAT)训练时模拟量化2-4x
INT8 量化FP32 → INT84x
二值量化权重 ±132x

INT8 量化原理

q=round(rS+Z)q = \text{round}\left(\frac{r}{S} + Z\right)

其中 rr 为浮点值,SS 为缩放因子,ZZ 为零点。

3.2 剪枝

描述压缩比
非结构化剪枝删除单个权重5-10x
结构化剪枝删除整个通道2-4x
自动剪枝自动搜索剪枝率可变

3.3 知识蒸馏

教师模型(大)→ 软标签 → 学生模型(小)

学生模型同时学习硬标签(真实标签)和软标签(教师输出),获得更好的性能。

3.4 架构搜索(NAS)

自动搜索适合边缘设备的网络架构,如 MobileNet、EfficientNet-Lite。

4. 边缘推理框架

4.1 TensorFlow Lite Micro

#include "tensorflow/lite/micro/micro_interpreter.h"
#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"

// 模型
const tflite::Model* model = tflite::GetModel(g_model_data);

// 操作解析器
tflite::MicroMutableOpResolver<10> resolver;
resolver.AddConv2D();
resolver.AddDepthwiseConv2D();
resolver.AddFullyConnected();
resolver.AddSoftmax();

// 解释器
constexpr int kTensorArenaSize = 60 * 1024;
uint8_t tensor_arena[kTensorArenaSize];

tflite::MicroInterpreter interpreter(model, resolver, tensor_arena, kTensorArenaSize);
interpreter.AllocateTensors();

// 推理
float* input = interpreter.input(0)->data.f;
// 填充输入数据
interpreter.Invoke();
float* output = interpreter.output(0)->data.f;

4.2 框架对比

框架平台特点
TFLite MicroMCUGoogle 官方
ONNX Runtime边缘设备微软,跨平台
NCNNARM/边缘腾讯,高性能
MNNARM/边缘阿里,全功能
PaddleLiteARM/边缘百度
MicroTVMMCUApache,编译优化

4.3 硬件加速

硬件特点
NPU神经网络专用高效、低功耗
GPU形处理并行计算
DSP数字信号定点运算
FPGA可编程逻辑灵活、低延迟

5. 端侧智能应用

5.1 语音唤醒

麦克风 → 预处理 → MFCC 特征 → DSCNN → 唤醒词判断

5.2 视觉检测

摄像头 → 图像预处理 → MobileNet → 分类/检测

5.3 异常检测

传感器 → 特征提取 → AutoEncoder → 重构误差 → 异常判断

6. 开发流程

1. 数据采集与标注
2. 模型训练(云端)
3. 模型压缩(量化+剪枝)
4. 模型转换(TFLite/ONNX)
5. 边缘部署与优化
6. 持续学习(可选)

6.1 模型转换

# TensorFlow → TFLite
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model('model')
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

# 生成 C 数组
xxd -i model.tflite > model_data.cc

6.2 性能优化

优化描述
算子融合减少内存访问
内存复用减少峰值内存
定点运算替代浮点运算
模型分区按硬件能力分配