3、人体检测模型基础:常见模型(如MobileNet SSD、YOLO轻量版)、输入尺寸、精度与速度权衡
在Ethos-U系列NPU(神经网络处理单元)上部署人体检测应用时,模型选型是整个摄像头输入管线优化的起点。模型不仅决定了检测的准确率上限,更直接约束了输入分辨率、帧率、内存带宽和功耗预算。本章将围绕常见轻量级人体检测模型的结构特点、输入尺寸选择方法以及精度与速度的权衡策略展开,帮助你在实际嵌入式项目中建立科学的模型评估与选型框架。
3.1 常见轻量级人体检测模型核心原理
人体检测本质上是在图像中定位所有人的边界框。在嵌入式场景中,模型设计需要同时考虑骨干网络的特征提取能力、检测头的解码效率以及NPU的算子支持程度。目前主流方案集中在两类:以MobileNet SSD为代表的单阶段检测器,以及以YOLO轻量版(如YOLOv5n、YOLOv8n)为代表的回归式检测器。
MobileNet SSD 采用深度可分离卷积(Depthwise Separable Convolution)作为骨干,将标准卷积分解为逐通道卷积和逐点卷积,计算量降低至原来的1/8~1/9。SSD(Single Shot MultiBox Detector)检测头在多个特征层上预设不同尺度的锚框,直接回归类别和边界框偏移。这种结构在Ethos-U上非常友好,因为深度可分离卷积的算子映射效率高,且不需要复杂的后处理。
YOLO轻量版 则将检测视为端到端的回归问题,通过将图像划分为网格,每个网格预测多个边界框和置信度。YOLOv5n/YOLOv8n通过控制网络宽度和深度因子,将参数量压缩到3~4M左右。其CSPDarknet骨干结构在特征复用方面表现优异,但需要额外的NMS(非极大值抑制)后处理,这在NPU上需要CPU配合完成。
3.2 输入尺寸选择:分辨率与感受野的平衡
输入尺寸直接决定了模型的计算量(MACs)和内存带宽需求。以Ethos-U55为例,其MACs吞吐量通常在0.5~4 TOPS之间,而实际有效算力受限于内存带宽。输入分辨率每增加一倍,计算量约增加4倍,但检测精度并非线性提升。
| 输入尺寸 | MACs(MobileNetV2-SSD) | 内存带宽(估) | 适用场景 |
|---|---|---|---|
| 192×192 | ~0.8G | ~1.2GB/s | 低功耗门禁、电池设备 |
| 256×256 | ~1.4G | ~2.1GB/s | 室内监控、智能家居 |
| 320×320 | ~2.2G | ~3.3GB/s | 机器人导航、中距离检测 |
| 416×416 | ~3.8G | ~5.6GB/s | 高精度需求、近距离场景 |
选择输入尺寸时,需要结合摄像头的视场角(FOV)和安装高度。例如,安装在2.5米高度的摄像头,若需要检测3~6米范围内的人体,256×256输入即可满足;若检测距离扩展到10米,则需要320×320以上。同时,输入尺寸必须与模型预训练时的尺寸一致或接近,否则需要重新训练或微调,否则精度会显著下降。
3.3 精度与速度权衡:量化与剪枝策略
在Ethos-U上部署时,INT8量化是标配。量化过程将FP32权重映射到INT8范围,模型体积缩小4倍,推理速度提升2~3倍。但量化会引入精度损失,尤其对检测框回归任务敏感。建议采用量化感知训练(QAT)而非训练后量化(PTQ),前者在训练过程中模拟量化误差,通常能将mAP损失控制在1%以内。
# 伪代码示例:QAT配置要点
model = load_model('mobilenet_ssd_v2')
model.qat_config = QATConfig(
quant_dtype='int8',
per_channel=True, # 逐通道量化,精度更高
symmetric=True, # 对称量化,硬件友好
calibration_method='entropy' # 熵校准,适合检测任务
)
model.freeze_bn() # 冻结BN层,避免量化抖动
剪枝策略方面,结构化剪枝(如通道剪枝)比非结构化剪枝更适合NPU。通过移除贡献度低的通道,可以减少MACs而不改变模型结构。对于MobileNet SSD,通常可以剪掉30%~40%的通道而不明显掉点;YOLO轻量版由于本身已经较紧凑,剪枝空间有限,建议优先考虑输入尺寸优化。
3.4 案例拆解:智能门禁人体检测模型选型
背景与约束:某智能门禁项目采用瑞萨RA8系列MCU搭配Ethos-U55 NPU,内存仅2MB,Flash 8MB,要求检测距离1~3米内的人体,帧率≥15FPS,整机功耗≤1.5W。
初始现象:工程师最初选用YOLOv5n(输入320×320),实测帧率仅8FPS,内存占用超标,且NPU利用率不足60%。
分析过程:通过Profiler工具发现,瓶颈不在NPU算力,而在内存带宽——320×320输入导致激活数据量过大,DMA搬运耗时占比达45%。同时,YOLO的NMS后处理在CPU上消耗了3ms/帧。
优化步骤:
- 将模型切换为MobileNetV2-SSD,输入降至256×256,MACs从2.2G降至1.4G。
- 使用QAT量化,mAP从0.82降至0.79,但帧率提升至18FPS。
- 将NMS替换为Soft-NMS(CPU实现),减少误检。
- 调整摄像头ISP输出为256×256,避免额外缩放开销。
结果对比:最终帧率稳定在16FPS,内存占用1.6MB,功耗1.2W,满足需求。但代价是检测距离缩短至2.5米,通过调整摄像头焦距弥补。
复盘经验:模型选型不能只看算力,必须结合内存带宽和CPU后处理能力。对于近距离固定场景,MobileNet SSD的性价比远高于YOLO轻量版。
3.5 常见误区与总结
- 误区一:认为输入尺寸越大精度越高。实际上,超过模型设计尺寸后,精度提升趋缓,而延迟急剧增加。
- 误区二:忽略预处理开销。BGR转RGB、归一化、Resize在CPU上可能消耗2~3ms,需与NPU推理并行化。
- 误区三:直接使用FP32模型跑仿真,未考虑INT8量化后的精度变化。
- 误区四:只关注模型本身,忽略摄像头ISP的自动曝光/白平衡对检测效果的影响。
总结而言,人体检测模型选型应遵循"场景定需求、需求定指标、指标定模型"的流程。在Ethos-U平台上,优先考虑MobileNet SSD系列作为基线方案,只有当检测距离或复杂背景要求超过其能力时,才升级到YOLO轻量版,并配合输入尺寸裁剪和量化优化。下一阶段,我们将深入探讨摄像头输入管线的整体架构,包括色彩空间转换、缩放策略和DMA传输优化,这些环节与模型输入尺寸的配合将直接影响端到端延迟。