3、人体检测模型基础:常见模型(如MobileNet SSD、YOLO轻量版)、输入尺寸、精度与速度权衡

在Ethos-U系列NPU(神经网络处理单元)上部署人体检测应用时,模型选型是整个摄像头输入管线优化的起点。模型不仅决定了检测的准确率上限,更直接约束了输入分辨率、帧率、内存带宽和功耗预算。本章将围绕常见轻量级人体检测模型的结构特点、输入尺寸选择方法以及精度与速度的权衡策略展开,帮助你在实际嵌入式项目中建立科学的模型评估与选型框架。

人体检测模型选型与输入管线权衡框架 模型结构 MobileNet SSD YOLO轻量版 EfficientDet-Lite 输入尺寸 192×192 / 256×256 320×320 / 416×416 分辨率↔感受野 Ethos-U约束 MACs / 内存带宽 激活内存 / 权重存储 NPU周期预算 权衡指标 mAP / FPS 延迟 / 功耗 内存占用 决策流程:应用场景 → 精度目标 → 帧率预算 → 硬件资源 → 模型/输入尺寸选择 每步需量化评估,避免凭经验拍板 MobileNet SSD 高帧率、低功耗 小目标检测较弱 适合室内固定场景 输入≤256×256 YOLO轻量版 平衡精度与速度 多尺度特征融合 适合动态复杂背景 输入320~416 EfficientDet-Lite 结构搜索优化 计算效率高 适合资源受限设备 输入可灵活调整

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配合完成。

核心原理对比:MobileNet SSD的锚框机制在密集小目标场景下更稳定,但锚框参数需要人工设计;YOLO轻量版的anchor-free(如YOLOv8)简化了设计,但对小尺寸人体(低于32×32像素)的召回率可能下降。在Ethos-U上,还需关注模型是否支持INT8量化,以及量化后精度损失是否在可接受范围内。

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轻量版由于本身已经较紧凑,剪枝空间有限,建议优先考虑输入尺寸优化。

经验提醒:在Ethos-U上,不要盲目追求高mAP。实际部署中,人体检测的误检率(False Positive)比漏检更影响用户体验。建议在验证集上同时关注F1分数和误检率,而非仅看mAP。

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/帧。

优化步骤:

  1. 将模型切换为MobileNetV2-SSD,输入降至256×256,MACs从2.2G降至1.4G。
  2. 使用QAT量化,mAP从0.82降至0.79,但帧率提升至18FPS。
  3. 将NMS替换为Soft-NMS(CPU实现),减少误检。
  4. 调整摄像头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上部署YOLO系列时,需确认NPU驱动是否支持Transpose和Reshape算子。部分轻量版YOLO的Focus层在NPU上映射效率低,建议在训练时将其替换为普通卷积层。

总结而言,人体检测模型选型应遵循"场景定需求、需求定指标、指标定模型"的流程。在Ethos-U平台上,优先考虑MobileNet SSD系列作为基线方案,只有当检测距离或复杂背景要求超过其能力时,才升级到YOLO轻量版,并配合输入尺寸裁剪和量化优化。下一阶段,我们将深入探讨摄像头输入管线的整体架构,包括色彩空间转换、缩放策略和DMA传输优化,这些环节与模型输入尺寸的配合将直接影响端到端延迟。