当前位置: 首页 > news >正文

RT-DTER创新改进系列:SlideLoss的加权函数来关注难易样本之间的不平衡问题,解决样本不平衡,提升模型鲁棒性!

RT-DTER创新改进系列:SlideLoss的加权函数来关注难易样本之间的不平衡问题,解决样本不平衡,提升模型鲁棒性!

购买相关资料后畅享一对一答疑

畅享超多免费持续更新且可大幅度提升文章档次的纯干货工具!

这个融合策略的核心思想是:将一个专注于实时性的检测模型(RT-DTER)与一个专门为时序一致性设计的损失函数(SlideLoss)相结合,以期在视频目标检测任务中,同时实现高速度、高精度和高时序稳定性。

前言

为什么要融合?—— 解决的问题

融合的动机源于视频目标检测中固有的挑战以及单个技术的局限性。

1. 核心问题:视频检测 vs. 图像检测

  • 图像检测:将视频的每一帧视为独立的图片进行检测。优点是可以直接利用强大的图像检测模型,缺点是完全忽略了帧与帧之间的时序关联信息。
  • 视频检测的现实挑战
    • 运动模糊:目标快速移动导致图像模糊。
    • 遮挡:目标被其他物体或场景部分遮挡。
    • 外观突变:光照变化、视角变化导致目标外观剧烈改变。
    • 视频抖动:摄像头不稳定带来的噪声。

在以上情况下,单纯依赖单帧外观信息的图像检测器很容易出现漏检、误检、ID跳变等问题。

2. RT-DTER 的贡献与局限

  • 它是什么?RT-DTER 是一个典型的实时视频目标检测器。它的设计重点在于推理速度,通过一些轻量级的结构(如时序特征聚合模块)来利用邻近帧的信息,以保证在视频流上能达到实时处理。
  • 它的优势。它解决了“能不能实时跑起来”的问题。
  • 它的局限:为了追求速度,其时序建模能力可能不够强大或精细。它可能只是简单地聚合几帧特征,但对于如何保证检测结果在时间轴上的平滑性和一致性,可能缺乏显式的、强有力的约束。它的损失函数可能更侧重于单帧的定位和分类精度。

3. SlideLoss 的贡献与局限

  • 它是什么?SlideLoss 是一种专门为时序一致性设计的损失函数。它的核心思想不是在空间维度上,而是在时间维度上“滑动”一个窗口,计算这个窗口内预测结果的稳定性。
  • 它的工作原理
    • 对于一个视频片段,它计算连续几帧(如t-1, t, t+1)对同一个目标的预测结果(如边界框坐标)。
    • 然后,它设计一种损失项来惩罚这些预测在时间上的剧烈波动。例如,鼓励相邻帧的边界框中心点和尺寸变化平缓。
    • 这种损失直接作用于模型训练过程,“教会”模型不仅要预测得准,还要预测得稳
  • 它的优势。它显式地解决了时序一致性问题,能有效减少抖动、闪烁和ID切换。
  • 它的局限:它只是一个损失函数,不是一个完整的检测模型。它需要与一个主干检测模型(如RT-DTER)结合使用才能发挥作用。

融合的写作切入点总结:

RT-DTER 提供了一个快速的检测骨架,但可能在“稳”上有所欠缺;SlideLoss 提供了一个让检测结果变“稳”的指导原则,但自身不能检测。将它们融合,是典型的“强强联合”、“取长补短”,目标是打造一个既的视频检测系统。


全文翻译如下:

YOLO-FaceV2:一种尺度与遮挡感知的人脸检测器

摘要

近年来,基于深度学习的人脸检测算法取得了巨大进展。这些算法通常可分为两类,即像Faster R-CNN这样的两阶段检测器和像YOLO这样的单阶段检测器。由于在准确性和速度之间取得了更好的平衡,单阶段检测器已在许多应用中得到广泛使用。本文中,我们提出了一种基于单阶段检测器YOLOv5的实时人脸检测器,名为YOLO-FaceV2。我们设计了一个名为RFE的感受野增强模块来增强小人脸感受野,并使用NWD损失来弥补IoU对小目标位置偏差的敏感性。针对人脸遮挡,我们提出了一个名为SEAM的注意力模块,并引入排斥损失(Repulsion Loss)来解决它。此外,我们使用一个名为Slide的加权函数来解决难易样本之间的不平衡问题,并利用有效感受野的信息来设计锚框。在WiderFace数据集上的实验结果表明,我们的人脸检测器在简单(Easy)、中等(Medium)和困难(Hard)子集上的性能均优于YOLO及其变体。源代码位于 https://github.com/Krasjet-Yu/YOLO-FaceV2

关键词–人脸检测,YOLO,尺度感知,损失函数,不平衡问题

1 引言

人脸检测是许多人脸相关应用(如人脸识别、人脸验证和人脸属性分析等)中的关键步骤。近年来,随着深度卷积神经网络的蓬勃发展,人脸检测器的性能得到了极大提升。许多基于深度学习的高性能人脸检测算法被提出。通常,这些算法可以分为两个分支。一个分支是典型的基于深度学习的人脸检测算法[1, 2, 3],它们使用神经网络的级联方式作为

特征提取器和分类器,以从粗到细的方式检测人脸。尽管取得了巨大成功,但需要注意的是,级联检测器存在一些缺点,例如训练困难且检测速度慢。另一个分支是从通用目标检测算法[4, 5, 6]改进而来。通用目标检测器考虑了更常见的物体特征和更广泛的物体特性。因此,特定任务的检测器可以共享这些信息,然后通过特殊设计来增强其显著特性。一些流行的人脸检测器,包括YOLO [7, 8, 9, 10]、Faster R-CNN [5]和RetinaNet [6]都属于此类。本文中,受YOLOv5 [11]、TridentNet [12]和FAN [13]中的注意力网络启发,我们提出了一种新颖的人脸检测器,在单阶段人脸检测中达到了最先进水平。

尽管深度卷积网络显著改善了人脸检测,但在现实场景中检测尺度、姿态、遮挡、表情、外观和光照变化大的面部仍然是一个巨大的挑战。在我们之前的工作中,我们提出了YOLO-Face [14],这是一种基于YOLOv3 [9]的改进人脸检测器,主要关注尺度变化问题,设计了适合人脸的锚框比例,并使用了更精确的回归损失函数。在WiderFace [15]验证集上的Easy、Medium和Hard子集的mAP分别达到了 (0.899)、 (0.872) 和 (0.693)。自那时起,各种新检测器被提出,人脸检测性能得到了显著提高。然而,对于小目标,单阶段检测器必须以更细的粒度划分搜索空间,因此容易导致正负样本不平衡的问题[16]。此外,复杂场景中的人脸遮挡[13]显著影响人脸检测器的准确性。旨在解决变化的人脸尺度、难易样本不平衡和人脸遮挡问题,我们提出了一种基于YOLOv5的人脸检测方法,称为YOLO-FaceV2。

通过仔细分析人脸检测器遇到的困难以及YOLOv5检测器的不足,我们实施了以下解决方案。

多尺度融合:在许多场景中,图像中通常存在不同尺度的人脸,这对人脸检测器全部检测它们来说非常困难。因此,解决不同尺度的人脸是人脸算法的一项非常重要的任务。目前,解决尺度变化问题的主要方法是构建金字塔来融合人脸的多尺度特征[17, 18, 19, 20]。例如,在YOLOv5中,FPN [20]融合了P3、P4和P5层的特征。然而,对于小尺度目标,信息在经过多层卷积后很容易丢失,即使是在较浅的P3层,保留的像素信息也非常少。因此,增加特征图的分辨率无疑有利于小目标的检测。

注意力机制:在许多复杂场景中,经常发生人脸遮挡,这是人脸检测器精度下降的主要原因之一。为了解决这个问题,一些研究人员尝试使用注意力机制进行人脸特征提取。FAN [13]提出了一种锚点级注意力。他们建议解决方案是保持未遮挡区域的响应值,并通过注意力机制补偿被遮挡区域减少的响应值。然而,它没有充分利用通道间的信息。

难样本:在单阶段检测器中,许多边界框没有被迭代地过滤掉。因此,单阶段检测器中简单样本的数量非常大。在训练期间,它们的累积贡献主导了模型的更新,导致模型过拟合[16]。这被称为样本不平衡问题。为了解决这个问题,Lin等人提出了Focal Loss,动态地为困难样本分配更多权重[6]。类似于Focal Loss,梯度调和机制(GHM)[21]抑制来自正负简单样本的梯度,以更关注困难样本。Cao等人提出的Prime Sample Attention (PISA) [22] 根据不同的标准对正负

样本分配权重。然而,当前的难样本挖掘方法需要设置过多的超参数,这在实践中非常不便。

锚框设计:如[23]所指出的,CNN特征图中的一个区域有两种类型的感受野:理论感受野(theoretical receptive field)和实际感受野(actual receptive field)。实验表明,并非感受野中的所有像素都同等响应,而是服从高斯分布。这使得基于理论感受野的锚框尺寸大于其实际尺寸,这使得边界框的回归更加困难。Zhang等人在 (S^{3}FD)[24]中基于有效感受野(effective receptive field)设计了锚框尺寸。而FaceBoxes [25]设计了多尺度锚框以丰富感受野,并将锚框在不同层离散化以处理各种尺度的人脸。因此,锚框的尺度和比例设计非常重要,可能极大地有益于模型的准确性和收敛过程。

回归损失:回归损失用于衡量预测边界框与真实边界框之间的差异。目标检测器中常用的回归损失函数有L1/L2损失、smooth L1损失、IoU损失及其变体[26; 27; 28; 29]。YOLOv5采用IoU损失作为其目标回归函数。然而,IoU的敏感性对于不同尺度的目标差异很大。容易理解的是,对于小目标,轻微的位置偏差会导致IoU显著下降。Wang等人[30]提出了一种基于Wasserstein距离的小目标评估方法,以有效减轻小目标的影响。然而,他们的方法对于大目标效果不那么显著。

在本文中,为了解决上述问题,我们基于YOLOv5设计了一种新的人脸检测器。我们的目标是找到一个最优的组合检测器,有效解决小人脸、大尺度变化、遮挡场景以及难易样本不平衡的问题。首先,我们融合FPN的P2层信息以获得更多像素级信息,并补偿小人脸的信息。然而,这样做的同时,由于输出特征图的感受野变小,大中目标的检测精度会略有下降。为了改善这种情况,我们为P5层设计了感受野增强(RFE)模块,该模块通过使用扩张卷积(dilated convolution)来增加感受野。其次,受FAN和ConvMixer [31]的启发,我们重新设计了一个多头注意力网络,以补偿被遮挡人脸响应值的损失。此外,我们还引入了排斥损失(Repulsion Loss)[32]来提高类内遮挡的召回率。第三,为了挖掘难样本,受ATSS [33]启发,我们设计了具有自适应阈值的Slide加权函数,使模型在训练过程中更关注难样本。第四,为了使锚框更适合回归,我们根据有效感受野和人脸比例重新设计了锚框尺寸和比例。第五,我们借鉴了归一化Wasserstein距离度量(Normalized Wasserstein Distance)[30],并将其引入回归损失函数,以平衡IoU在预测小人脸方面的不足。

总而言之,我们提出了一种新的人脸检测器YOLO-FaceV2,其突出贡献如下:

  1. 对于检测多尺度人脸,感受野和分辨率是关键因素。因此,我们设计了一个感受野增强模块(称为RFE)来学习特征图的不同感受野,并增强特征金字塔表示。
  2. 我们将人脸遮挡分为两类,即不同人脸之间的遮挡,以及人脸被其他物体遮挡。前者使得检测精度对NMS阈值非常敏感,导致漏检。我们将排斥损失应用于人脸检测,惩罚预测框向其他真实目标偏移,并要求每个预测框远离具有不同指定目标的其他预测框,从而使检测结果对NMS不那么敏感。后者导致特征消失,从而导致定位不准确,我们设计了注意力模块SEAM来增强人脸特征的学习。
  3. 为了解决难易样本之间的不平衡问题,我们根据IoU对简单样本和困难样本进行加权。为了减少超参数调整,我们将所有候选正样本与真实框(ground-truth)的IoU平均值设置为正负样本的分界线。我们设计了一个名为Slide的加权函数,给困难样本更高的权重,这有助于模型学习更困难的特征。该函数的细节将在第3-5节中介绍。

本文的其余部分安排如下:第2节回顾了该领域的相关文献;第3节详细描述了模型结构,以及主要的改进点,包括感受野增强模块、注意力模块、自适应样本加权函数、锚框设计、排斥损失和归一化高斯Wasserstein距离(NWD)损失;第4节描述了实验及相应的结果分析,包括消融实验和与其他模型的比较;第5节总结了我们的工作并对未来研究提出了一些建议。

2 相关工作

人脸检测。人脸检测是计算机视觉领域几十年的研究热点。在深度学习早期,人脸检测算法通常使用神经网络自动提取图像特征进行分类。CascadeCNN [1]提出了一种级联结构,包含三个阶段精心设计的深度卷积网络,以从粗到细的方式预测人脸和关键点位置。MTCNN [2]开发了类似的级联架构,以联合对齐人脸关键点和检测人脸位置。PCN [3]使用角度预测网络来校正人脸并提高人脸检测精度。但早期的基于深度学习的人脸检测算法存在一些缺点,如训练繁琐、容易陷入局部最优、检测速度慢、检测精度低等。

当前的人脸检测算法主要通过继承通用目标检测算法(如SSD [4]、Faster R-CNN [5]、RetinaNet [6]等)的优点进行改进。CMS-RCNN [34]使用Faster R-CNN作为主干网络,并引入上下文信息(contextual information)和多尺度特征来检测人脸。Zhang等人[25]基于SSD结构设计了一个轻量级网络,名为FaceBoxes,通过32倍下采样快速缩小特征尺寸,并使用多尺度网络模块在网络的宽度和深度维度上增强特征。SRN [35]在通用目标检测算法RefineDet [36]和RetinaNet [6]上改进而来,通过引入两阶段分类和回归实现了高性能,并设计了一个多分支模块来增强感受野的效果。

尺度不变性(Scale-invariance)。作为人脸检测中最具挑战性的问题之一,复杂场景中人脸尺度的大变化对检测器的准确性有重要影响。多尺度检测能力主要依赖于尺度不变性特征,许多工作致力于更准确有效地提取特征来解决这个问题[13, 24, 37, 38]。对于小目标检测,使用更少的下采样层和扩张卷积可以显著提高检测性能[39, 40]。解决这个问题的另一种方法是使用更多的锚框。锚框可以提供良好的先验信息,因此使用更密集的锚框和相应的匹配策略可以有效提高候选区域(object proposals)的质量[24, 25, 37, 40]。多尺度训练有助于构建图像金字塔并增加样本多样性,这是提高多尺度目标检测性能的一种简单而有效的方法。另一方面,感受野会增加,语义信息也会相应变得更丰富,然而,空间信息可能会相应丢失。一个自然的想法是将深层语义信息与浅层特征融合,例如[20, 41, 42]。此外,SNIP [43]和TridentNet [12]也为解决多尺度问题提供了新思路,这将在后续章节详细讨论。

遮挡问题(Occlusion problem)。拥挤的人脸以及随之而来的遮挡问题导致部分数据缺失以及关于被遮挡人脸的信息缺乏,因为一些区域不可见或边界模糊,这很容易导致漏检和低召回率。一些工作已经证明上下文信息有助于人脸检测以缓解遮挡问题。SSH [37]使用简单的卷积层方法,通过扩大候选区域周围的窗口来整合上下文信息。FAN [13]提出了一种锚点级注意力,通过突出显示人脸区域的特征来检测被遮挡的人脸。PyramidBox [44]设计了一个上下文敏感的预测模块,其中他们将SSH中上下文模块的卷积层替换为DSSD的残差预测模块。RetinaFace [45]在五个特征金字塔层级上应用独立的上下文模块,以增加感受野并增强刚性上下文建模能力。上述方法在遮挡问题上取得了良好的效果。因此,利用上下文信息来提高遮挡区域的有效性是一个值得进一步探索的可行方向。

难易样本不平衡(Imbalance of easy and hard samples)。对于单阶段人脸检测,简单样本的数量非常大,它们在损失变化中占主导地位,导致模型只能学习简单样本的特征而忽略困难样本的学习。为了解决这个问题,OHEM [46]算法根据样本损失选择困难样本,并将困难样本的损失应用于随机梯度下降训练中。针对OHEM算法忽略简单样本的问题,Focal Loss [6]通过对所有样本加权来更好地利用所有样本,并获得更高的准确性。SRN [35]也遵循了这一思想。Faceboxes [25]根据样本的IoU损失对样本进行排序,并将正负样本的比例控制在小于1:3。虽然上述方法可以有效解决样本不平衡问题,但它们也人为地引入了一些超参数,增加了调整的难度。因此,我们设计了一个具有自适应参数的样本平衡函数。

3 YOLO-FaceV2

3.1 网络架构

YOLOv5是一个优秀的通用目标检测器。我们将YOLOv5引入人脸检测领域,并尝试解决小人脸和人脸遮挡等问题。

我们的YOLO-FaceV2检测器的架构如图1所示。它由三部分组成:骨干结构(backbone)、颈部(neck)和头部(heads)。我们采用CSPDarknet53作为骨干网络,并在P5层用RFE模块替换Bottleneck以融合多尺度特征。在颈部部分,我们保留了SPP [47]和PAN [48]的结构。此外,为了提高目标位置感知能力,我们还将P2层集成到PAN中。头部用于对目标进行分类和位置回归。我们还在头部添加了一个特殊分支,以增强模型的遮挡检测能力。

在图1(a)中,左侧的红色部分是检测器的骨干网络,由CSP块和CBS块组成。它主要用于提取输入图像的特征。在P5层添加了RFE模块以扩大有效感受野并增强多尺度融合能力。在图1(b)中,右侧的蓝色和黄色部分称为颈部层,由SPP和PAN组成。我们额外融合了P2层的特征,以提高更精确目标定位的能力。在图1©中,我们在颈部层的输出部分之后引入了分离增强注意力模块(SEAM),以增强被遮挡人脸的响应能力。

图 1: YOLO-FaceV2 的网络架构。(a) 骨干网络:一个前馈的 CSP-Darknet53 架构提取多尺度特征图。为了扩大感受野,P5 中的 CSP 块被感受野增强模块 (RFE) 替换,如蓝色虚线框所示。(b) 颈部:空间金字塔池化 (SPP) 分离出最重要的上下文特征并增加感受野;路径聚合网络 (PAN) 为不同的检测器层级聚合来自不同骨干层级的参数。为了补偿分辨率增加带来的感受野损失,P2 层被融合进 PAN,如 (a) 和 (b) 之间所示。© 分离增强注意力模块 (SEAM) 利用特征图之间的关系来召回被遮挡的特征,如红色虚线框所示。

3.2 尺度感知的 RFE 模块

由于不同大小的感受野意味着捕获长距离依赖关系的能力不同,我们设计了RFE模块,通过使用扩张卷积来充分利用特征图中感受野的优势。受TridentNet启发,我们使用四个不同扩张率(dilated rate)的分支来捕获多尺度信息和不同范围的依赖关系。所有分支共享权重,唯一的区别是它们不同的感受野。一方面,这减少了参数量,从而降低了潜在过拟合的风险。另一方面,它可以充分利用每个样本。所提出的RFE模块可分为两部分:基于扩张卷积的多分支以及聚集和加权层,如图2所示。多分支部分分别采用 (1)、(2) 和 (3) 作为不同扩张卷积的扩张率,均使用固定的卷积核大小 (3)x(3)。此外,我们添加了一个残差连接,以防止训练过程中出现梯度爆炸和消失问题。聚集和加权层用于聚集来自不同分支的信息并对每个分支的特征进行加权。加权操作用于平衡不同分支的表示。

为了更清晰,我们将YOLOv5中C3模块的瓶颈(bottleneck)替换为RFE模块,以增加特征图的感受野,从而提高多尺度目标检测和识别的准确性,如图2所示。

图 2: 修改后的 CSP 块和 RFE 模块。对于 P5 中的 CSP 块,我们用 RFE 替换瓶颈(bottleneck)。右图显示了 RFE 的详细架构。它由 1x1 卷积、具有不同扩张率的 3x3 卷积和平均池化层组成。

3.3 遮挡感知的排斥损失(Occlusion-Aware Repulsion Loss)

类内遮挡可能导致人脸A包含人脸B的特征,从而导致更高的误检率。引入排斥损失可以通过排斥效应有效缓解这个问题。排斥损失分为两部分:RepGT 和 RepBox。RepGT损失的作用是使当前边界框尽可能远离周围的真实框(ground truth box)。这里的周围真实框指的是除边界框本身要回归的目标人脸外,与该人脸IoU最大的人脸标签。RepGT损失函数的公式如下:

公式中的P是人脸预测框,(G^{P}{\text{Rep}}) 是周围IoU最大的真实框。P与 (G^{P}{\text{Rep}}) 之间的重叠定义为与真实框的交集(Intersection over Ground truth, IoG):(\text{IoG}(P,G)=\frac{\text{area}(P\cap G)}{\text{area}(G)}) 且 (\text{IoG}(B,G)\in[0,1])。(\text{Smooth}_{ln}) 在 ((0, 1)) 区间内连续可微。函数中,(\sigma\in[0,1)) 是一个平滑参数,用于调整排斥损失对离群值的敏感性。

RepBox损失的目的是使预测框尽可能远离周围的预测框,并减少它们之间的IOU,从而避免属于两个人脸的其中一个预测框被NMS抑制。我们将预测框分成多个组。假设有g个人脸,划分形式如公式3所示。同一组内的预测框回归到同一个人脸标签,不同组之间的预测框对应不同的人脸标签。

然后,对于不同组之间的预测框 (p_{i}) 和 (p_{j}),我们希望 (p_{i}) 和 (p_{j}) 之间的重叠区域越小越好。RepBox也使用 (Smooth_{ln}) 作为优化函数。整体损失函数如下:

3.4 遮挡感知的注意力网络(Occlusion-Aware Attention Network)

类间遮挡会导致对齐误差、局部混叠和特征缺失。我们添加了多头注意力网络,即SEAM模块(见图3),其中我们有三个目的:实现多尺度人脸检测,强调图像中的人脸区域,相对地弱化背景区域。SEAM的第一部分是带有残差连接的深度可分离卷积(depth separable convolution)。深度可分离卷积是按深度操作的,即逐通道分离卷积。虽然深度可分离卷积可以学习不同通道的重要性并减少参数量,但它忽略了通道间的信息关系。为了弥补这一损失,不同深度卷积的输出随后通过逐点(1x1)卷积进行组合。然后使用一个两层的全连接网络来融合每个通道的信息,使网络能够加强所有通道之间的联系。希望该模型能够通过在前一步学习到的被遮挡人脸与未遮挡人脸之间的关系,来弥补前述遮挡场景下的损失。然后,通过指数函数处理全连接层学习到的输出逻辑值(logits),将其值范围从[0, 1]扩展到[1, e]。这种指数归一化提供了一种单调的映射关系,使结果对位置误差更具容忍性。最后,SEAM模块的输出被用作注意力权重,乘以原始特征,使模型能够更有效地处理人脸遮挡。

图 3: SEAM 示意图。左边是 SEAM 的架构,右边部分是 CSMM(通道和空间混合模块)的结构。CSMM 利用不同的图像块(patch)处理多尺度特征,并使用深度可分离卷积来学习空间维度和通道的相关性。

3.5 样本加权函数(Sample weighting function)

样本不平衡问题,即在大多数情况下简单样本数量相当大而困难样本相对稀疏,已经引起了广泛关注。在我们的工作中,我们设计了一个Slide损失函数,它看起来像一个“滑梯”(slide)来解决这个问题。简单样本和困难样本的区分基于预测框与真实框(groundtruth box)的IoU大小。为了减少超参数,我们将所有边界框的IoU值的平均值作为阈值 (\mu),小于 (\mu) 的视为负样本,大于 (\mu) 的视为正样本。然而,边界附近的样本常常因为分类不明确而遭受较大的损失。我们希望模型能够学习优化这些样本,并更充分地利用这些样本来训练网络。尽管如此,此类样本的数量相对较少。因此,我们尝试给困难样本分配更高的权重。我们首先通过参数 (\mu) 将样本分为正样本和负样本。然后,我们通过一个名为Slide的加权函数来强调边界处的样本,如图4所示。Slide加权函数可表示为公式5。

图 4: 我们提出了一种新颖的损失函数,我们称之为 Slide Loss,它自适应地学习正负样本阈值参数 (\mu)。在 (\mu) 附近设置高权重增加了难以分类样本的相对损失,将更多注意力集中在困难、被错误分类的样本上。

3.6 锚框设计策略(Anchor Design Strategy)

锚框设计策略在人脸检测中至关重要。在我们的模型中,三个检测头(detection head)中的每一个都与特定的锚框尺度相关联。锚框的设计包括宽高比和尺寸,它们是根据P2、P3和P4的步长(stride)设计的(见表1)。对于宽高比,我们基于WiderFace训练集的真实人脸比例计算统计值。在人脸检测中,根据统计数据,我们将宽高比设置为1:1.2。对于锚框尺寸,我们根据每层的感受野进行设计,这可以通过卷积层和池化层的数量来计算。然而,并非理论感受野中的每个像素对最终输出的贡献都相同。通常,中心像素比外围像素具有更大的影响力,如图5(a)所示。换句话说,只有一小部分区域对输出值有有效影响。实际效果可以等效为一个有效感受野。根据这一假设,为了匹配有效感受野,锚框应显著小于理论感受野(参见

表 1: 三个检测层和九个锚框尺度。

层 (Layer)步长 (Stride)比例 (Ratio)锚框尺寸 (Anchor)
P241.2[16, 20.16, 25.40]
P381.2[32, 40.32, 50.80]
P4161.2[64, 80.63, 101.59]

图 5: (a) 有效感受野:整个黑框是理论感受野 (TRF),具有高斯分布的白圈是有效感受野 (ERF)。该图来自[23]。(b) 一个具体例子:整个框是由 TRF 设置的原始锚框,蓝框是由红圈(即 ERF)估计的新锚框。

图5(b)中的具体例子)。因此,我们重新设计了初始锚框尺寸,如表1所示。

3.7 归一化高斯 Wasserstein 距离 (Normalized Gaussian Wasserstein Distance)

归一化 Wasserstein 距离(Normalized Wasserstein Distance, NWD)是一种新的小目标检测评估方法。首先,将边界框建模为一个二维高斯分布,并通过它们对应的高斯分布计算预测目标与真实目标之间的相似度,即根据公式6计算它们之间的归一化Wasserstein距离。对于检测到的目标,无论它们是否重叠,都可以通过分布相似性来衡量。NWD对目标的尺度不敏感,因此更适合衡量小目标之间的相似度。在我们的回归损失函数中,我们添加了NWD损失,以弥补IoU损失在小目标检测方面的不足。但我们仍然保留IoU损失,因为它适用于大

目标检测。

其中C是与数据集密切相关的常数,(W_{2}^{2}\left(\mathcal{N}{a},\mathcal{N}{b}\right)) 是距离度量,(N_{a}) 和 (N_{b}) 是由 (A=\left(cx_{a},cy_{a},w_{a},h_{a}\right)) 和 (B=\left(cx_{b},cy_{b},w_{b},h_{b}\right)) 建模的高斯分布。

4 实验

在这一部分,我们对我们提出的方法进行了全面的消融实验(ablation study),包括我们的注意力模块、多尺度融合金字塔结构和损失函数设计的有效性。然后,我们将我们提出的检测器与其他最先进(SOTA)的人脸检测器的性能进行了比较。

4.1 数据集

我们在WiderFace数据集上评估了我们的模型,该数据集包含32203张图像,涵盖超过40万张人脸。它由三部分组成:40%用于训练集,10%用于验证集,50%用于测试集。训练集和验证集的结果可以从WiderFace官方网站获得。根据难度,数据集可分为三部分:简单(Easy)、中等(Medium)和困难(Hard)。其中,困难子集最具挑战性,其性能能更好地反映人脸检测器的有效性。我们在WiderFace训练集上训练我们的模型,并在验证集和测试集上对其进行评估。

4.2 训练

我们使用YOLOv5作为基线,方法通过PyTorch实现。我们使用的优化器是带动量(momentum)的SGD。初始学习率设置为1e-2,最终学习率为1e-3,权重衰减(weight decay)设置为5e-3。在前3个预热(warming-up)周期中使用动量0.8。之后,动量为0.937。NMS的IoU阈值设置为0.5。我们在具有4个CPU工作进程(workers)的1080ti GPU上训练模型。微调(fine-tuning)使用100次迭代(iterations),批大小(batch size)为16张图像。

4.3 消融实验(Ablation Study)

在本节中,我们在WiderFace数据集上对每个模块进行了全面的实验,以评估它们对模型性能的影响。然后逐个组合这些模块并进行分析。此外,还评估了所有的损失函数。

4.3.1 SEAM 模块

我们提出的SEAM模块是注意力网络。通过使用该模块,我们通过增强未遮挡人脸的响应来补偿被遮挡人脸的响应损失。结果如表2第二行所示。我们可以看到,在Easy、Medium和Hard子集验证集上,精度分别提高了0.88、0.82和1.06。

4.3.2 多尺度特征融合

首先,我们在PAN的基础上融合P2层特征,使融合后的特征图包含更多小目标的信息。根据表2第三行,可以观察到Hard子集增加了 (0.57)。为了弥补颈部层输出特征图感受野有限导致大中目标检测精度下降的不足,我们应用了设计的感受野增强模块,并分别使用了扩张率为1、2和3的扩张卷积来提高长距离依赖的效果。效果如表2第四行所示。精度分别提高了0.5、0.6和2.17。

4.3.3 Slide 损失

Slide损失函数的主要目的是使模型更关注困难样本。根据表中第五行的结果,Slide函数在Medium和Hard子集上略微提升了模型的性能。

4.3.4 锚框设计

锚框的比例和尺寸与有效感受野密切相关。不同的模型具有不同的有效感受野。根据有效感受野和人脸形状特征,设计锚框的性能影响如表2第六行所示。在Easy、Medium和Hard数据集上分别提升了0.24、0.75、0.9。正如我们所预期的,适当设计的锚框可以召回更多的小人脸目标。

4.3.5 NWD 损失

我们首先尝试用NWD代替IOU作为回归损失。然而,结果并未改善。因此,我们选择保留IoU损失,并通过调整它们之间的比例关系来提高我们模型对小目标检测的鲁棒性。因为实验结果表明,对于大中目标,IoU衡量的效果优于NWD,而NWD可以有效提高小目标的检测精度。结果见表3:

表 3: IoU损失与NWD损失不同组合比例在WiderFace验证集上的比较(训练20个周期)。

IoU损失权重NWD损失权重Easy (%)Medium (%)Hard (%)
1094.492.7482.91
0181.1384.475.77
0.50.594.6292.8783.31
0.40.691.1390.3880.11
0.60.492.8791.3980.91
4.3.6 RepGT 和 RepBox 的平衡

受行人检测中遮挡解决方案的启发,我们将排斥损失(Repulsion Loss)添加到人脸检测中,并分析了不同的人脸遮挡阈值以使该损失函数适用于人脸检测。根据表中第八行的结果,排斥损失函数在Easy、Medium和Hard子集上分别将模型精度提高了0.71、0.63和0.5。

**表 2: WiderFace 验证数据集上的消融研究结果 (mAP, %)。

组合 (Combination)Easy (%)Medium (%)Hard (%)参数量 (Params (M))计算量 (Flops (G))
Baseline (YOLOv5 adapted)94.6593.0083.307.06316.4
+SEAM95.5393.8284.367.46417.1
+PAN+P2&Slide93.6792.1483.876.10117.1
+RFE95.0693.6085.475.09717.1
+Anchor Redesign95.1393.4183.67-17.1
+Repulsion Loss (RPLoss)94.8993.7584.20--
+NWD Loss(alone, see Table 3 row 3)94.6292.8783.31--
+SEAM&RFE&Slide&NWD Loss95.2793.6383.80--
+SEAM&RFE&Slide95.0693.6485.575.20117.9
+SEAM&PAN+P2&RFE&Slide95.3493.8585.66--
+SEAM&PAN+P2&RFE&Slide&Repulsion Loss96.2294.7985.82--
+SEAM&PAN+P2&RFE&Slide&Repulsion Loss&NWD Loss(Final YOLO-FaceV2)96.3094.9985.94--
Reported Final Performance (Table 4)98.7897.3987.75-18.2

4.4 与现有人脸检测器的比较

**表 4: 我们的 YOLO-FaceV2 与现有人脸检测器在 WiderFace 验证数据集上的比较 (mAP, %)。

主干检测器 (Method)具体检测器 (Detector)Easy (%)Medium (%)Hard (%)
Faster R-CNNCMS-RCNN [34]0.8990.8740.624
HR (未明确引用)0.9250.9100.806
Face R-CNN (未明确引用)0.9370.9210.831
FDNet (未明确引用)0.9590.9450.879
SSDSFD [40]0.9370.9250.859
SSH [37]0.9310.9210.845
PyramidBox [44]0.9610.9500.889
DSFD [40]0.9660.9570.904
SFDet (未明确引用)0.9540.9450.888
RetinaNetFAN [13]0.9520.9400.900
SRN [35]0.9640.9520.901
DFS (未明确引用)0.9690.9590.912
RetinaFace [45]0.9690.9610.918
RefineFace (未明确引用)0.9710.9620.920
YOLOYOLO-FaceV1 [14]0.8990.8720.693
YOLO5Face (未明确引用)0.9630.9560.913
YOLO-FaceV2 (Ours)0.9870.9720.877

我们主要与近期提出的各种优秀人脸检测器进行比较。表4根据基于不同通用检测器(如fast RCNN、SSD、Yolo等)的人脸检测器进行分类。表中的数据来自WiderFace官方网站。

我们YOLO-FaceV2人脸检测器以及竞争对手的精确率-召回率(PR)曲线如图6所示。

图 6: WiderFace 验证数据集上的检测结果。(a): ‘Easy’ 数据集的结果 (b): ‘Medium’ 数据集的结果 ©: ‘Hard’ 数据集的结果

5 结论

本文旨在解决变化的人脸尺度、难易样本不平衡和人脸遮挡问题,提出了一种基于YOLOv5的人脸检测方法YOLO-FaceV2。针对变化的人脸尺度问题,我们将P2层融合到特征金字塔中以提高小目标的分辨率,设计RFE模块以增强感受野,并使用NWD损失来提高模型对小目标检测的鲁棒性。我们引入Slide函数来缓解难易样本不平衡问题。对于人脸遮挡,我们使用SEAM模块和排斥损失来解决它。此外,我们利用有效感受野的信息来设计锚框。最终,我们在WiderFace验证集的Easy和Medium子集上取得了接近或超过SOTA的性能。

写在最后

学术因方向、个人实验和写作能力以及具体创新内容的不同而无法做到一通百通,关注UP:Ai学术叫叫兽
在所有B站资料中留下联系方式以便在科研之余为家人们答疑解惑,本up主获得过国奖,发表多篇SCI,擅长目标检测领域,拥有多项竞赛经历,拥有软件著作权,核心期刊等经历。
因为经历过所以更懂小白的痛苦!
因为经历过所以更具有指向性的指导!

祝所有科研工作者都能够在自己的领域上更上一层楼!

以下为给大家庭小伙伴们免费更新过的绘图代码,均配有详细教程,超小白也可一键操作! 后续更多提升文章档次的资料的更新请大家庭的小伙伴关注UP:Ai学术叫叫兽!



http://www.jsqmd.com/news/731030/

相关文章:

  • 地面站专用计算器软件V1.0.4正式上线|集成式航空训练计算工具发布
  • 别再乱用volatile了!C语言嵌入式开发中,这3个场景才是它的正确打开方式
  • 彻底解决显卡驱动问题的完整方案:Display Driver Uninstaller使用指南
  • 3分钟解锁QQ音乐加密文件:终极音频解密工具完整指南
  • rbxfpsunlocker高级用法:内存写入与标志文件模式对比
  • 3步快速修复损坏MP4视频:开源工具Unstrunc终极指南
  • 避开这些坑!MTK平台Android 12上集成Trustonic TEE与Widevine L1的完整配置清单
  • 3分钟搞定Kodi字幕难题:字幕库插件终极体验指南
  • 3分钟快速掌握:Degrees of Lewdity中文汉化终极指南
  • 保姆级教程:用Wireshark和CANalyzer动手分析汽车CAN总线数据(实战案例)
  • 使用cookie操作的形式绕过验证码,进行免登录
  • 用STM32CubeMX和HAL库快速搞定步进电机:基于TB6600的编码器闭环控制教程
  • STM32G4蓝桥杯嵌入式RTC实战:从CubeMX配置到LCD显示时钟的保姆级教程
  • 别再手动写FIFO了!Vivado IP核配置避坑指南(含异步FIFO实战代码)
  • 别再只会SE38写报表了!ABAP程序结构化的5种实战用法(含SE37函数/Include/子例程/宏)
  • 从手机摄像头到卫星传感器:聊聊我们身边的电磁波遥感技术
  • 孤舟笔记 并发篇十三 阻塞队列被异步消费顺序乱了怎么办?这道题藏着并发编程的核心思维
  • OCEAN-PE-Pro 系统架构设计文档
  • 率零10万字降AI套餐+宿舍6人拼单:平摊每人30元搞定毕业季降AI!
  • 别再手动配IP了!用华为DHCPv6 PD功能,5分钟搞定大规模IPv6地址自动下发
  • PhotoRec核心技术揭秘:基于文件签名的智能恢复机制
  • 别再乱下模型了!这5个Stable Diffusion checkpoint,新手入门直接闭眼入
  • FlowCue提词器深度解析:AI语音识别与智能脚本润色实战
  • AutoDock Vina新手避坑指南:从PYMOL处理蛋白到盒子设置,一次讲清
  • 利用GPT撰写游戏剧情:从灵感到成品的详细指南
  • 任天堂Switch大气层系统终极指南:从新手到高手的完整教程
  • 3.2元/千字论文降AI率工具——率零做到了承诺型工具的最低单价!
  • 基于DRF的MCP服务器:实现API文档实时同步与AI智能开发
  • Python 爬虫数据处理:爬取日志结构化分析与错误统计
  • Arm ETE架构TRCCIDCVR寄存器原理与应用解析