什么是 TinyML?
TinyML 是指在资源极度受限的设备(如微控制器)上运行机器学习模型的技术。它让边缘设备能够在本地进行 AI 推理,无需联网。
TinyML 的优势
- 低功耗:毫瓦级功耗,电池供电可行
- 低延迟:本地推理,无需云端往返
- 隐私保护:数据不出设备
- 离线工作:无需网络连接
- 成本低:无需昂贵的云端服务
应用场景
| 应用 | 说明 |
|---|---|
| 语音识别 | 关键词检测、语音命令 |
| 传感器分析 | 异常检测、预测性维护 |
| 图像识别 | 人脸检测、物体分类 |
| 健康监测 | 心率分析、活动识别 |
| 工业 IoT | 振动分析、故障预测 |
开发平台选择
硬件平台
| 平台 | 特点 | 价格 |
|---|---|---|
| Arduino Nano 33 BLE | ARM Cortex-M4F,384KB RAM | $25 |
| ESP32-S3 | 双核 Xtensa,WiFi+BT | $8 |
| STM32 Nucleo | 多种型号,生态完善 | $10-30 |
| Raspberry Pi Pico | RP2040,双核 ARM | $5 |
软件框架
- TensorFlow Lite for Microcontrollers:最流行
- Edge Impulse:在线平台,易用
- PyTorch Mobile:适合 Python 开发者
- CMSIS-NN:Arm 优化的神经网络库
实战:语音关键词检测
步骤 1:数据收集
使用 Edge Impulse 收集语音数据:
- 连接麦克风到开发板
- 录制关键词(如"open"、“close”)
- 录制背景噪音作为负样本
步骤 2:模型训练
在 Edge Impulse 平台:
- 上传音频数据
- 设计音频处理管道(MFCC 特征提取)
- 选择神经网络架构(DNN 或 CNN)
- 训练并优化模型
步骤 3:模型部署
#include <edge-impulse-sdk/classifier/ei_classifier.h>
// 模型推理
void classify_audio(float* audio_buffer) {
ei_impulse_result_t result = {0};
// 运行分类
EI_IMPULSE_ERROR err = run_classifier(audio_buffer, &result);
if (err == EI_IMPULSE_OK) {
// 输出结果
for (int i = 0; i < result.count; i++) {
printf("%s: %.2f\n",
result.classification[i].label,
result.classification[i].value);
}
}
}
模型优化技巧
量化
将浮点模型转换为 int8:
- 训练后量化:无需重新训练
- 量化感知训练:精度更高
- 效果:模型大小减少 4 倍,速度提升 2-3 倍
剪枝
移除不重要的神经元:
- 减少模型大小
- 降低计算量
- 对精度影响小
知识蒸馏
用大模型训练小模型:
- 保持精度
- 减小模型体积
- 适合资源受限场景
性能优化
内存管理
// 使用静态内存分配
static float feature_buffer[FEATURE_SIZE];
static int8_t model_buffer[MODEL_SIZE];
// 避免动态分配
// ❌ 不要这样做
float* buffer = malloc(size);
// ✅ 推荐做法
static float buffer[MAX_SIZE];
功耗优化
- 睡眠模式:空闲时进入低功耗
- 事件驱动:中断唤醒处理
- DVFS:动态调压调频
- 传感器门控:按需开启传感器
实际项目案例
智能门禁系统
功能:语音控制门锁
- 关键词检测:“开门”、“关门”
- 本地推理,无需联网
- 电池供电,续航 1 年+
工业振动监测
功能:电机故障预测
- 加速度计数据采集
- 异常振动检测
- 提前预警故障
可穿戴健康设备
功能:活动识别
- 加速度计 + 陀螺仪
- 识别走路、跑步、睡眠
- 隐私保护,数据本地处理
学习资源
- Edge Impulse 教程:https://edgeimpulse.com/
- TensorFlow Lite Micro:https://www.tensorflow.org/lite/microcontrollers
- Coursera 课程:Introduction to Embedded Machine Learning
结语
TinyML 让机器学习无处不在。通过本教程,你已经掌握了基础知识。下一步,动手做一个实际项目吧!
本文参考 Edge Impulse、TensorFlow Lite Micro 官方文档,结合 2026 年最新实践整理。