3、人像检测技术概览:目标检测基础、人像检测常用模型(如MobileNet SSD、YOLO Tiny)及适用场景
在TinyML工程实践中,人像检测并非简单地在嵌入式设备上运行一个“识别人的神经网络”,而是涉及目标检测任务定义、模型结构选型、算力与精度权衡、部署约束匹配等一系列系统工程问题。本章从目标检测的基本范式出发,梳理人像检测在边缘设备上的技术脉络,重点剖析MobileNet SSD与YOLO Tiny两类轻量化模型的原理差异、性能边界与适用场景,并结合实际工程案例给出选型与改造建议。
3.1 目标检测基础:从分类到定位的范式演进
图像分类解决的是“这张图里有什么”的问题,而目标检测需要回答“图中哪里有目标、目标是什么、目标有多大”。人像检测作为目标检测的一个垂直子类,其核心任务是在图像中定位所有人形目标,并输出包含类别标签、边界框坐标和置信度分数的结构化结果。在TinyML场景下,目标检测通常被压缩为单阶段(One-Stage)检测器,以牺牲少量精度换取推理速度和内存占用的显著下降。
目标检测的技术演进经历了从传统手工特征到深度学习的跨越。传统方法如HOG(方向梯度直方图)+ SVM在早期嵌入式视觉中占据主导,但其对遮挡、姿态变化和光照变化的鲁棒性较差。深度学习时代,两阶段检测器(如Faster R-CNN)通过区域提议网络(RPN)生成候选区域,再逐区域进行分类和回归,精度高但计算量巨大,不适合微控制器。单阶段检测器(如SSD、YOLO)直接在特征图上进行密集采样和预测,将检测问题转化为端到端的回归任务,成为TinyML人像检测的主流选择。
在嵌入式部署中,目标检测的数学本质可以简化为:给定输入图像 \( I \in \mathbb{R}^{H \times W \times C} \),通过特征提取网络 \( F \) 得到特征图 \( F(I) \),再通过检测头 \( D \) 输出一组预测 \( \{ (c_i, b_i, s_i) \} \),其中 \( c_i \) 为类别、\( b_i \) 为边界框坐标、\( s_i \) 为置信度。整个推理过程必须满足微控制器的内存和算力约束,因此模型压缩、量化感知训练和算子优化成为工程落地的关键环节。
| 检测范式 | 代表模型 | 精度 | 速度 | 内存占用 | TinyML适用性 |
|---|---|---|---|---|---|
| 两阶段检测 | Faster R-CNN | 高(mAP 70+) | 慢(>500ms) | 极高(>100MB) | 不适用 |
| 单阶段检测 | SSD / YOLO | 中高(mAP 50-65) | 快(50-200ms) | 中等(1-10MB) | 可裁剪后适用 |
| 轻量单阶段 | MobileNet SSD / YOLO Tiny | 中(mAP 40-55) | 极快(30-150ms) | 低(100-500KB) | 适合MCU级部署 |
3.2 MobileNet SSD:多尺度特征融合的轻量检测方案
MobileNet SSD将MobileNetV2或MobileNetV3作为骨干网络,配合SSD(Single Shot MultiBox Detector)检测头,形成一套完整的轻量级目标检测框架。其核心设计思想是:利用MobileNet的深度可分离卷积大幅降低计算量,同时通过SSD的多尺度特征图预测机制,在不同分辨率的特征图上设置不同尺寸和长宽比的默认框(Default Boxes),从而兼顾小目标和大目标的检测能力。
在TinyML部署中,MobileNet SSD通常需要经过以下改造步骤:首先,将输入分辨率从原始的300×300或320×320压缩至192×192或160×160,以减少计算量;其次,对模型进行8位或16位量化,将权重和激活值从浮点数转换为定点数;最后,裁剪冗余的检测头层,仅保留适合目标尺寸范围的特征图预测层。经过这些优化后,MobileNet SSD在Cortex-M7或Cortex-M33内核的MCU上可实现80-200ms的推理延迟,内存占用控制在200-400KB之间。
MobileNet SSD的适用场景偏向于需要检测多个目标、目标尺寸变化较大的应用,例如智能门禁中同时检测多人、安防摄像头中的人流统计、以及机器人视觉中的人体跟随。其优势在于多尺度特征融合带来的检测鲁棒性,但代价是模型结构相对复杂,部署时需要更多的调参工作。
3.3 YOLO Tiny:极致轻量的单阶段检测器
YOLO Tiny是YOLO系列针对边缘设备推出的轻量版本,其设计哲学是“以最少的计算量完成最基本的检测任务”。YOLO Tiny将输入图像划分为S×S的网格,每个网格负责预测固定数量的边界框和类别概率。这种设计避免了SSD中复杂的锚框匹配和多层特征图融合,使得模型结构更加简洁,推理路径更短。
在TinyML场景下,YOLO Tiny通常采用YOLOv3-Tiny或YOLOv5-Tiny的变体。以YOLOv5-Tiny为例,其骨干网络仅包含3个CSP模块和2个SPP模块,检测头只有两个尺度(16×16和32×32),参数量约为1.1M。经过4-bit或8-bit量化后,模型大小可压缩至100-200KB,在低功耗MCU上推理延迟可低至50-120ms。YOLO Tiny特别适合目标稀疏、实时性要求极高的场景,例如智能门锁中的人脸触发检测、可穿戴设备中的人体活动识别、以及无人机视觉中的单目标跟踪。
然而,YOLO Tiny的精度上限受限于其简化的网络结构。在密集人群或小目标场景下,其检测性能明显下降,容易出现漏检和误检。因此,在实际工程中需要根据目标密度和精度要求进行权衡。如果场景中同时出现的人像数量不超过3-5个,且目标尺寸相对较大,YOLO Tiny是更优的选择;反之,则应考虑MobileNet SSD或更复杂的模型。
3.4 模型对比与选型决策框架
在TinyML人像检测项目中,模型选型不是简单的“哪个精度高选哪个”,而是需要综合考虑硬件算力、内存预算、实时性要求、目标密度、部署工具链成熟度等多维因素。以下对比表从工程实践角度给出了关键维度的量化参考。
| 对比维度 | MobileNet SSD | YOLO Tiny | 选型建议 |
|---|---|---|---|
| 模型大小(8-bit量化) | 200-400KB | 100-200KB | Flash < 256KB选YOLO Tiny |
| 峰值RAM占用 | 250-400KB | 150-250KB | RAM < 200KB选YOLO Tiny |
| 推理延迟(@200MHz MCU) | 150-300ms | 80-180ms | 实时性要求高选YOLO Tiny |
| 多目标检测能力 | 优秀(支持10+目标) | 一般(支持3-5目标) | 密集场景选MobileNet SSD |
| 小目标检测能力 | 良好(多尺度特征) | 较弱(网格粒度限制) | 远距离人像选MobileNet SSD |
| 部署工具链成熟度 | 高(TFLite Micro原生支持) | 中(需手动转换) | 快速原型选MobileNet SSD |
选型决策应遵循以下流程:第一步,明确硬件资源边界,包括Flash容量、RAM大小、CPU主频和是否有硬件加速器(如CMSIS-NN、Ethos-U55);第二步,评估场景需求,包括目标密度、目标尺寸范围、帧率要求和精度底线;第三步,在目标硬件上进行基准测试,使用真实场景数据验证模型性能;第四步,根据测试结果进行模型裁剪、量化或结构微调,迭代优化。
3.5 案例拆解:智能门禁中的人像检测模型选型
某智能门禁项目需要在低功耗MCU(STM32L4系列,Cortex-M4 @ 80MHz,Flash 512KB,RAM 128KB)上实现人像检测功能,用于触发后续的人脸识别流程。初始需求为:检测距离3-5米内的人体,目标尺寸在图像中占比约15%-30%,帧率不低于5FPS,检测精度要求漏检率低于5%。
项目初期团队直接选用了MobileNet SSD模型,输入尺寸192×192,8-bit量化后模型大小约350KB,RAM占用约320KB。在目标硬件上测试发现,推理延迟高达680ms,远超5FPS的帧率要求,且RAM占用接近MCU上限,导致系统无法稳定运行。进一步分析发现,MobileNet SSD的多尺度特征图计算在Cortex-M4上缺乏硬件加速,深度可分离卷积的算子效率仅为理论峰值的30%。
针对上述问题,团队进行了以下优化:首先,将输入尺寸从192×192降至160×160,推理延迟降至520ms;其次,裁剪SSD检测头中针对小目标的特征层(对应原图8×8网格),仅保留16×16和32×32两个尺度,模型大小降至280KB,延迟降至430ms;最后,引入YOLO Tiny作为备选方案,其模型大小仅150KB,RAM占用180KB,推理延迟为280ms,满足5FPS要求。但YOLO Tiny在实测中漏检率达到7.2%,略高于5%的底线。
最终方案采用了混合策略:以YOLO Tiny作为主检测器,在检测到人像后,将图像裁剪并放大至人脸区域,再调用一个极轻量的人脸验证模型进行二次确认。这种“粗检测+精验证”的级联架构将整体漏检率降至3.8%,同时保持了4.8FPS的帧率。项目复盘表明,单一模型难以同时满足精度和速度要求时,级联架构是TinyML场景下的有效工程手段。
3.6 常见误区与工程复盘
在TinyML人像检测的工程实践中,以下误区值得特别注意。第一个误区是“精度至上”,忽视硬件约束。很多团队在PC上训练出高精度模型,但部署到MCU后精度骤降,原因在于量化损失和输入分辨率降低。解决方法是采用量化感知训练,并在训练阶段就模拟部署时的输入尺寸和数据分布。
第二个误区是“模型越小越好”。虽然YOLO Tiny在资源占用上有优势,但其检测能力有限,在复杂场景下可能频繁漏检,导致系统整体可靠性下降。正确的做法是根据场景复杂度选择“够用”的模型,而不是一味追求最小化。第三个误区是忽视数据分布差异。在公开数据集上训练的模型,直接部署到实际场景中往往效果不佳,因为光照、视角、背景等环境因素差异巨大。建议在部署前采集目标场景的少量数据,进行迁移学习或微调。
第四个误区是忽略推理延迟的波动性。MCU上的推理延迟并非恒定值,受温度、电压、内存碎片等因素影响,实际延迟可能比基准测试高20%-30%。在系统设计时,应预留足够的性能余量,避免在极端情况下出现帧率骤降。最后,建议建立完整的性能监控机制,在设备端记录推理延迟、内存峰值和检测置信度分布,为后续优化提供数据支撑。
总结而言,人像检测在TinyML领域的落地需要从算法、硬件、数据和系统架构四个维度协同推进。MobileNet SSD与YOLO Tiny各有优劣,没有的“最好”模型,只有最适合特定场景的工程方案。理解目标检测的基本原理,掌握轻量化模型的特性边界,并通过系统化的测试与调优,才能在资源受限的嵌入式设备上实现可靠的人像检测功能。