2. Edge AI评估基础
Edge AI模型的评估与传统云端AI评估有着本质差异:不仅需要衡量模型预测的准确性,还必须将推理延迟、内存占用、功耗、模型体积等部署约束纳入考量。本章作为评估体系的基础,首先厘清核心评估指标的定义与适用场景,再梳理一套从数据集准备到板端复测的标准评估流程,最后引入自动化评估的概念框架,为后续离线测试、板端测试与报告生成章节奠定方法论基础。
上图展示了Edge AI评估的三层架构:指标层解决“测什么”,流程层解决“怎么测”,自动化层解决“如何高效且可重复地测”。三者相互依存,缺一不可。下面逐一展开。
2.1 核心评估指标:从分类到回归的完整体系
2.1.1 分类任务指标
分类任务是Edge AI中最常见的任务类型,如图像分类、缺陷检测、语音命令识别等。评估分类模型时,我们通常基于混淆矩阵(Confusion Matrix)计算以下指标:
- 准确率(Accuracy):所有样本中预测正确的比例。公式为 (TP+TN)/(TP+TN+FP+FN)。在类别均衡时有效,但类别不平衡时会产生误导。例如,99%的负样本场景下,模型全部预测为负也能获得99%的准确率。
- 精确率(Precision):预测为正类的样本中真正为正类的比例,即 TP/(TP+FP)。精确率关注“预测为正的可信度”,在垃圾邮件过滤、医疗诊断等误报代价高的场景中尤为重要。
- 召回率(Recall):实际为正类的样本中被正确预测的比例,即 TP/(TP+FN)。召回率关注“漏报率”,在安全监控、故障检测等漏报代价高的场景中更为关键。
- F1分数:精确率与召回率的调和平均数,即 2×Precision×Recall/(Precision+Recall)。F1在两者之间取得平衡,适合需要同时控制误报和漏报的场景。
2.1.2 目标检测与分割指标
对于目标检测任务,IoU(Intersection over Union,交并比)是衡量预测框与真实框重叠程度的核心指标。IoU = 预测框与真实框的交集面积 / 并集面积。通常设定IoU阈值(如0.5或0.75),超过阈值视为检测成功。在此基础上,mAP(mean Average Precision)综合了不同置信度阈值下的精确率-召回率曲线面积,是检测任务的标准评估指标。
对于语义分割任务,mIoU(mean Intersection over Union)计算每个类别的IoU后取平均,Dice系数(2×交集/(预测面积+真实面积))则对小目标更敏感。Edge AI中,分割模型常部署于自动驾驶、医疗影像等场景,mIoU与推理速度的权衡是选型关键。
2.1.3 回归任务与Edge特有指标
回归任务(如姿态估计、深度估计)常用MAE(平均误差)和RMSE(均方根误差)。RMSE对大误差更敏感,适合对异常值有严格要求的场景。
Edge AI还必须关注以下部署指标:
| 指标 | 定义 | 典型阈值/目标 | 测量工具 |
|---|---|---|---|
| 推理延迟(Latency) | 单次推理从输入到输出的耗时 | 实时场景<30ms,交互场景<100ms | 板端计时函数、perf工具 |
| 内存占用(Memory) | 模型权重+激活值+中间缓冲的峰值内存 | 根据板端RAM限制,通常预留30%余量 | /proc/meminfo、valgrind massif |
| 功耗(Power) | 推理时的平均功耗与峰值功耗 | 电池供电设备平均功耗<1W | 功率计、INA219模块 |
| 模型体积(Size) | 量化后模型文件大小 | Flash限制内,通常<10MB | ls -lh、model_summary |
2.2 评估流程:从数据集到板端复测的标准路径
2.2.1 数据集准备与划分
评估流程的第一步是构建高质量的数据集。要求训练集、验证集、测试集严格分离,测试集必须来自与训练集不同的分布(如不同光照、不同设备采集),以检验泛化能力。Edge AI场景还需特别关注数据与目标硬件的匹配度——例如,若板端摄像头分辨率较低,训练数据应包含相应分辨率的图像。
# 数据集划分示例(Python伪代码)
from sklearn.model_selection import train_test_split
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)
# 注意:Edge场景建议额外保留一份“板端实拍数据集”用于最终验证
2.2.2 离线指标计算
在PC或服务器上,使用测试集对模型进行推理,计算分类指标、检测指标或分割指标。此阶段的目标是快速迭代模型结构或超参数。离线评估的优势在于速度快、可复现,但无法反映板端真实性能。
2.2.3 板端部署与复测
将模型转换为目标硬件支持的格式(如TensorRT、ONNX Runtime、TFLite),部署到板端后,使用相同的测试集(或板端实拍数据)重新计算指标。此阶段需记录:
- 量化后的精度损失(FP32→INT8通常损失1-3% mAP)
- 实际推理延迟(需多次运行取P50/P95值)
- 内存峰值与功耗曲线
2.2.4 对比分析与调优
将离线指标与板端指标对比,定位精度损失来源。常见原因包括:量化误差、算子不支持导致的部分算子回退到CPU、输入尺寸调整等。调优手段包括:混合精度量化、校准数据集优化、算子融合等。
2.2.5 报告生成与归档
最终输出包含指标汇总、硬件环境、软件版本、测试数据、结论与建议的完整报告,并归档模型版本与测试日志,确保可追溯性。
2.3 自动化评估概念:从手动到CI/CD集成
手动评估存在效率低、易出错、不可复现等痛点。自动化评估通过脚本化、流水线化将评估流程固化,实现“一键评估”。其核心概念包括:
- 脚本化执行:将数据加载、模型推理、指标计算封装为Python脚本,支持命令行参数配置。
- 阈值告警:设定指标阈值(如mAP≥0.85、延迟≤30ms),自动判断是否通过。
- 回归测试:每次模型更新后自动运行全量评估,防止精度回退。
- 报告自动生成:将结果渲染为HTML/PDF报告,包含图表与对比。
- CI/CD集成:在Git提交或模型发布时触发评估流水线,实现质量门禁。
2.4 案例拆解:工业缺陷检测模型的评估体系搭建
背景与约束:某电子元器件工厂需要部署Edge AI模型检测PCB板上的焊点缺陷。硬件为NVIDIA Jetson Orin Nano,要求检测延迟≤40ms,内存占用≤1.5GB,模型体积≤50MB。缺陷类别包括:虚焊、桥连、缺件、偏移,共4类。
初始现象与目标:团队最初仅使用准确率评估模型,模型在测试集上准确率达98.5%,但部署到产线后漏检率极高。经分析,原因是测试集类别不平衡(正常样本占95%),准确率被“正常”类别主导,而缺陷类别的召回率极低。
关键输入数据与参数:重新构建测试集,确保每类缺陷样本≥500张,并额外采集500张产线实拍图像作为板端验证集。采用mAP@0.5作为主要检测指标,同时监控每类缺陷的召回率。
分析判断过程:离线评估显示mAP@0.5为0.87,但虚焊类召回率仅0.62。部署到板端后,INT8量化使mAP降至0.82,延迟为35ms,满足要求。进一步分析发现,虚焊类召回率低是因为该类缺陷在低光照下对比度低,且量化后特征丢失严重。
实际操作步骤:
- 使用FP16精度替代INT8,mAP回升至0.85,延迟增至42ms,超出限制。
- 采用混合量化:对检测头保留FP16,对骨干网络使用INT8,mAP为0.84,延迟38ms。
- 优化虚焊类的数据增强(增加亮度扰动、对比度调整),重新训练后虚焊召回率提升至0.78。
- 在板端验证集上最终确认:mAP@0.5=0.85,延迟38ms,内存1.2GB,满足所有约束。
结果对比与复盘:最终方案相比初始方案,缺陷召回率从0.62提升至0.78,漏检率降低26%。复盘经验:①准确率在类别不平衡时具有欺骗性,必须结合mAP和每类召回率;②量化策略需要针对瓶颈类别精细调优;③板端验证集不可省略,离线指标只能作为初筛。
2.5 常见误区与总结复盘
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 只关注准确率 | 类别不平衡时评估失真 | 结合精确率、召回率、F1、mAP等多维指标 |
| 忽略板端与离线差异 | 部署后性能不达标 | 必须进行板端复测,记录量化与硬件影响 |
| 测试集与训练集同分布 | 泛化能力差 | 使用独立分布测试集,增加实拍数据 |
| 手动评估无版本记录 | 问题难以追溯 | 建立自动化流水线,归档日志与报告 |
| 只测精度不测资源 | 模型无法实际部署 | 同时测量延迟、内存、功耗、体积 |
总结:Edge AI评估是一个系统性工程,指标选择需结合任务类型与业务约束,流程执行需覆盖从离线到板端的完整链路,自动化则是保障效率与可复现性的关键。本章建立的指标-流程-自动化三层框架,将贯穿后续离线测试、板端测试与报告生成的全部内容。在实际项目中,建议从最小可行评估集开始,逐步完善,最终形成一套可复用的自动化评估体系。