3、人像检测技术概览:目标检测基础、人像检测常用模型(如MobileNet SSD、YOLO Tiny)及适用场景

在TinyML工程实践中,人像检测并非简单地在嵌入式设备上运行一个“识别人的神经网络”,而是涉及目标检测任务定义、模型结构选型、算力与精度权衡、部署约束匹配等一系列系统工程问题。本章从目标检测的基本范式出发,梳理人像检测在边缘设备上的技术脉络,重点剖析MobileNet SSD与YOLO Tiny两类轻量化模型的原理差异、性能边界与适用场景,并结合实际工程案例给出选型与改造建议。

人像检测技术选型与部署链路 输入图像 RGB / 灰度 / 下采样 特征提取骨干 MobileNetV2 / V3 深度可分离卷积 检测头 SSD / YOLO Head 锚框 + 分类 + 回归 检测结果 框 + 置信度 MobileNet SSD 多尺度特征图 + 默认框 适合密集/多目标场景 mAP较高,模型较大 RAM: 150-300KB 推理: 80-200ms YOLO Tiny 单阶段 + 网格回归 适合稀疏/单人场景 速度更快,精度略低 RAM: 100-200KB 推理: 50-120ms 选型决策:算力约束 → 目标密度 → 精度需求 → 实时性要求

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的适用场景偏向于需要检测多个目标、目标尺寸变化较大的应用,例如智能门禁中同时检测多人、安防摄像头中的人流统计、以及机器人视觉中的人体跟随。其优势在于多尺度特征融合带来的检测鲁棒性,但代价是模型结构相对复杂,部署时需要更多的调参工作。

工程要点:MobileNet SSD在MCU上部署时,建议优先使用TensorFlow Lite for Microcontrollers框架。该框架提供了完整的算子支持和内存管理机制,能够自动处理量化推理中的张量分配。实际测试表明,在STM32H743(Cortex-M7 @ 480MHz)上,输入尺寸为192×192的MobileNetV2 SSD模型,推理时间约为145ms,峰值RAM占用约280KB。

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或更复杂的模型。

风险提示:YOLO Tiny在量化过程中容易出现精度骤降问题,尤其是当训练数据与部署场景差异较大时。建议在量化感知训练阶段使用与目标场景相近的数据增强策略,并在部署前进行充分的端到端验证。此外,YOLO Tiny的网格设计对目标中心点位置敏感,如果人像经常出现在图像边缘,需要额外增加边缘区域的训练样本。

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场景下的有效工程手段。

经验总结:在MCU级人像检测项目中,不要盲目追求高精度模型。建议先以YOLO Tiny或更小的模型跑通端到端流程,再根据实际性能瓶颈逐步增加模型复杂度。同时,充分利用MCU的硬件特性(如DSP指令、SIMD扩展)进行算子优化,往往比更换模型带来更显著的性能提升。

3.6 常见误区与工程复盘

在TinyML人像检测的工程实践中,以下误区值得特别注意。第一个误区是“精度至上”,忽视硬件约束。很多团队在PC上训练出高精度模型,但部署到MCU后精度骤降,原因在于量化损失和输入分辨率降低。解决方法是采用量化感知训练,并在训练阶段就模拟部署时的输入尺寸和数据分布。

第二个误区是“模型越小越好”。虽然YOLO Tiny在资源占用上有优势,但其检测能力有限,在复杂场景下可能频繁漏检,导致系统整体可靠性下降。正确的做法是根据场景复杂度选择“够用”的模型,而不是一味追求最小化。第三个误区是忽视数据分布差异。在公开数据集上训练的模型,直接部署到实际场景中往往效果不佳,因为光照、视角、背景等环境因素差异巨大。建议在部署前采集目标场景的少量数据,进行迁移学习或微调。

第四个误区是忽略推理延迟的波动性。MCU上的推理延迟并非恒定值,受温度、电压、内存碎片等因素影响,实际延迟可能比基准测试高20%-30%。在系统设计时,应预留足够的性能余量,避免在极端情况下出现帧率骤降。最后,建议建立完整的性能监控机制,在设备端记录推理延迟、内存峰值和检测置信度分布,为后续优化提供数据支撑。

总结而言,人像检测在TinyML领域的落地需要从算法、硬件、数据和系统架构四个维度协同推进。MobileNet SSD与YOLO Tiny各有优劣,没有的“最好”模型,只有最适合特定场景的工程方案。理解目标检测的基本原理,掌握轻量化模型的特性边界,并通过系统化的测试与调优,才能在资源受限的嵌入式设备上实现可靠的人像检测功能。