AI学习者 · 2022年08月05日 · 广东

超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满

image.png

近年来,基于深度学习的人脸检测算法取得了长足的进步。这些算法通常可以分为两类,即像 Faster R-CNN 这样的两阶段检测器和像 YOLO 这样的单阶段检测器。由于精度和速度之间更好的平衡,单阶检测器已广泛用于许多应用中。

在本文中提出了一种基于单阶检测器 YOLOv5 的实时人脸检测器,命名为 YOLO-FaceV2

作者设计了一个名为RFE的感受野增强模块来增强小人脸的感受野,并使用NWD Loss来弥补IoU对微小物体位置偏差的敏感性。对于人脸遮挡提出了一个名为 SEAM 的注意力模块并引入了排斥损失来解决它。

此外,使用权重函数 Slide 来解决简单样本和困难样本之间的不平衡问题,并使用有效感受野的信息来设计Anchor

WiderFace 数据集上的实验结果表明,YOLO-FaceV2优于 YOLO

1、简介

人脸检测是很多人脸相关应用中必不可少的步骤,例如人脸识别、人脸验证和人脸属性分析等。随着近年来深度卷积神经网络的蓬勃发展,人脸检测器的性能得到了极大的提升。已经提出了许多基于深度学习的高性能人脸检测算法。一般来说,这些算法可以分为两个分支。

典型的基于深度学习的人脸检测算法的一个分支使用神经网络的级联方式作为特征提取器和分类器来检测从粗到细的人脸。尽管它们取得了巨大的成功,但值得注意的是,级联检测器存在一些缺点,例如训练困难和检测速度慢。

另一个分支是从通用目标检测算法改进而来的。通用目标检测器考虑了目标更常见的特征和更广泛的特征。因此,特定于任务的检测器可以共享这些信息,然后通过特殊设计强制执行这些壮观的属性。一些流行的人脸检测器,包括 YOLOFaster R-CNNRetinaNet 都属于这一类。

在本文中,受 YOLOv5TridentNetFAN 中的注意力网络的启发,提出了一种新颖的人脸检测器,它实现了单阶段人脸检测的最新技术。

尽管深度卷积网络显著改善了人脸检测,但在现实场景中检测具有高度变化的人脸、姿势、遮挡、表情、外观和照明仍然是一个巨大的挑战。在之前的工作中提出了 YOLO-Face,这是一种基于 YOLOv3 的改进人脸检测器,主要关注尺度方差问题,设计适合人脸的Anchor比率,并利用更准确的回归损失函数。WiderFace 验证集上 EasyMediumHardmAP 分别达到了 0.899、0.872 和 0.693。从那时起,出现了各种新的检测器,人脸检测性能得到了显著提高。

然而,对于小目标,单阶段检测器必须以更细的粒度划分搜索空间,因此容易造成正负样本不平衡的问题。此外,复杂场景中的人脸遮挡会显著影响人脸检测器的准确性。针对人脸尺度变化、样本不平衡、人脸遮挡等问题,本文提出了一种基于 YOLOv5 的人脸检测方法,称为 YOLO-FaceV2

通过仔细分析人脸检测器遇到的困难和YOLOv5检测器的不足,提出了以下解决方案:

多尺度融合:

在很多场景下,图像中通常存在不同尺度的人脸,人脸检测器很难将它们全部检测出来。因此,解决不同尺度的人脸是人脸算法非常重要的任务。

目前,解决多尺度问题的主要方法是构建金字塔来融合人脸的多尺度特征。例如,在 YOLOv5 中,FPN 融合了 P3P4P5 层的特征。但是对于小尺度的目标,经过多层卷积后信息很容易丢失,保留的像素信息很少,即使在较浅的P3层也是如此。因此,提高特征图的分辨率无疑有利于小目标的检测。

注意力机制:

在很多复杂的场景中,经常会出现人脸遮挡,这是导致人脸检测器准确率下降的主要原因之一。

为了解决这个问题,一些研究人员尝试使用注意力机制来提取面部特征。FAN 提出了Anchor-Level Attention。他们提出解决方案是保持无遮挡区域的响应值,并通过注意力机制来补偿遮挡区域降低的响应值。但是,它并没有充分利用通道之间的信息。

困难样本:

在单阶段检测器中,许多边界框没有被迭代过滤掉。所以单阶段检测器中的简单样本数量非常大。在训练过程中,它们的累积贡献支配了模型的更新,导致模型的过拟合。这被称为不平衡样本问题。

为了解决这个问题,Lin 等人提出 Focal Loss 为困难的样本示例动态分配更多权重。与focal loss类似,Gradient Harmonizing Mechanism (GHM) 抑制正负简单样本的梯度,以更多地关注困难样本。Cao等人提出的Prime Sample Attention (PISA)。根据不同的标准为正负样本分配权重。然而,目前的硬样本挖掘方法需要设置的超参数过多,在实践中非常不方便。

Anchor design:

CNN特征图中的一个区域有两种感受野,理论感受野和实际感受野。实验表明,并非感受野中的所有像素都响应相同,而是服从高斯分布。这使得基于理论感受野的anchor尺寸大于其实际尺寸,使得bounding box的回归更加困难。Zhang等人根据S3FD中的有效感受野设计了anchors的大小。FaceBoxes设计了多尺度anchor来丰富感受野,并在不同层上离散anchors来处理各种尺度的人脸。因此,anchor box的尺度和比例的设计非常重要,这对模型的准确性和收敛过程有很大的好处。

回归损失:

回归损失用于衡量预测边界框和地面实况边界框之间的差异。目标检测器中常用的回归损失函数有 L1/L2 损失平滑 L1 损失IoU 损失及其变体。YOLOv5IoU 损失作为其目标回归函数。然而,对于不同尺度的物体,IoU 的敏感性差异很大。不难理解,对于小目标,轻微的位置偏差会导致 IoU 显著下降。Wang等人提出了一种基于Wasserstein距离的小目标评价方法,有效减轻小目标的影响。然而,他们的方法对大型目标的执行并不那么重要。

在本文中,针对上述问题设计了一种基于 YOLOv5 的新人脸检测器。目标是找到一个最优的组合检测器,有效地解决小人脸、大尺度变化、遮挡场景和不平衡的难易样本问题。

  • 首先,融合 FPNP2 层信息,以获得更多的像素级信息并补偿小人脸的信息。但是这样一来,大中型目标的检测精度会因为输出的特征图感知场变小而略微降低。为了改善这种情况,为 P5 层设计了感受野增强 (RFE),它通过使用扩张卷积来增加感受野;
  • 其次,在 FANConvMixer 的启发下重新设计了一个多头注意力网络来补偿被遮挡的面部响应值的损失。此外,还引入了 Repulsion Loss 来提高类内遮挡的召回率。
  • 第三,为了挖掘硬样本,受 ATSS 启发,设计了具有自适应阈值的 Slide 权重函数,使模型在训练期间更加关注硬样本。
  • 第四,为了让anchor更适合回归,根据有效感受野和人脸比例重新设计anchor尺寸和比例。
  • 最后,借用了 Normalized Wasserstein Distance 度量并将其引入回归损失函数中,以平衡 IoU 在预测小人脸方面的不足。

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

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

2、YOLO-FaceV2

2.1、网络架构

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

image.png

YOLO-FaceV2 检测器的架构如图 1 所示。它由3部分组成:BackboneNeckHead

YOLO-FaceV2CSPDarknet53Backbone,并在 P5 层用 RFE 模块替换Neck,以融合多尺度特征。在Neck,保持了 SPPPAN 的结构。此外,为了提高目标位置感知能力,还将P2层集成到PAN中。Head用于对类别进行分类并回归目标的位置。作者还在Head添加了一个特殊的分支,以增强模型的遮挡检测能力。

  • 在图1(a)中,左边的红色部分是检测器的Backbone,由CSP块和CBS块组成。主要用于提取输入图像的特征。并且在P5层增加RFE模块,扩大有效感受野,增强多尺度融合能力。
  • 在图 1(b)中,右边的蓝色和黄色部分称为Neck层,由 SPPPAN 组成。还融合了 P2 层的特征,以提高更准确的目标定位能力。
  • 在图 1(c)中,引入了分离和增强注意力模块(SEAM)来增强Neck层输出部分后被遮挡人脸的响应能力。

2.2、Scale-Aware RFE Model

由于不同大小的感受野意味着不同的捕获远程依赖的能力,作者设计RFE模块以充分利用特征图中感受野的优势,通过使用扩张卷积。受 TridentNet 的启发使用4个不同速率的扩张卷积分支来捕获多尺度信息和不同范围的依赖关系。所有的分支都有共享权重,唯一的区别是它们独特的感受野。

一方面,它减少了参数的数量,从而降低了潜在过拟合的风险。另一方面,它可以充分利用每个样本。

image.png

提出的RFE模块可以分为2部分:基于扩张卷积的多分支和聚集加权层,如图2所示。多分支部分分别以1,2和3作为不同扩张速率,它们都使用固定的卷积核大小 3×3。此外,作者添加了一个残差连接来防止训练过程中梯度爆炸和消失的问题。 gathering and weighting层用于收集来自不同分支的信息并对特征的每个分支进行加权。加权操作用于平衡不同分支的表示。

为了说清楚,将YOLOv5C3模块的瓶颈替换为RFE模块,以增加特征图的感受野,从而提高多尺度目标检测识别的准确率,如图2所示。

2.3、遮挡感知排斥损失

类内遮挡可能导致A面包含B面的特征,从而导致较高的误检率。排斥损失的引入可以通过排斥有效缓解这一问题。排斥损失分为两部分:RepGTRepBox

RepGT Loss 的作用是使当前边界框尽可能远离周围的ground truth box。这里的周围ground truth box是指除了bounding box本身要返回的对象之外,与人脸IoU最大的人脸标签。RepGT损失函数的公式如下:

image.png

RepBox loss的目的是让预测框尽可能远离周围的预测框,减少它们之间的IOU,从而避免属于两个人脸的预测框之一被NMS抑制。这里将预测帧分成多个组。假设有g个个体人脸,划分形式如下式所示。相同组之间的预测帧返回相同的人脸标签,不同组之间的预测帧对应不同的人脸标签。

image.png

2.4、遮挡感知注意力网络

类间遮挡会导致对齐错误、局部混叠和特征缺失。作者添加了多头注意力网络,即SEAM模块(见图3),其中我们有三个目的:实现多尺度人脸检测,强调图像中的人脸区域,反之弱化背景区域。

image.png
SEAM的第一部分是带有残差连接的深度可分离卷积。深度可分离卷积是逐个深度操作的,即逐个通道分离卷积。深度可分离卷积虽然可以学习不同通道的重要性并减少参数量,但它忽略了通道之间的信息关系。

为了弥补这种损失,不同深度卷积的输出随后通过逐点卷积进行组合。然后用一个两层的全连接网络来融合每个通道的信息,这样网络就可以加强所有通道之间的连接。

希望该模型能够通过上一步学习到的被遮挡人脸与无遮挡人脸的关系来弥补前面提到的遮挡场景下的损失。全连接层学习到的输出logits再经过指数函数处理,将取值范围从[0, 1]扩大到[1, e]。这种指数归一化提供了一种单调映射关系,使结果更能容忍位置误差。

最后将SEAM模块的输出作为attention乘以原始特征,使模型能够更有效地处理人脸遮挡。

2.5、样本加权函数

样本不平衡问题,即在大多数情况下,容易样本的数量很大,而困难样本相对稀疏,引起了很多关注。在本文的工作中,设计了一个看起来像“slide”的 Slide Loss 函数来解决这个问题。

image.png
然而,由于分类不明确,边界附近的样本往往会遭受较大的损失。希望模型能够学习优化这些样本,并更充分地使用这些样本来训练网络。然而,此类样本的数量相对较少。因此,尝试为困难样本分配更高的权重。首先通过参数μ将样本分为正样本和负样本。然后,通过加权函数 Slide 对边界处的样本进行强调,如图 4 所示。Slide 加权函数可以表示为 Eqn 5。

image.png

2.6、Anchor设计策略

Anchor设计策略在人脸检测中至关重要。在模型中,3个检测头中的每一个都与特定的Anchor尺度相关联。Anchor的设计包括宽高比和Anchor的尺寸,根据P2、P3和P4的步幅设计(见表1)。对于宽高比,根据真实人脸比从 WiderFace 训练集计算统计数据。
image.png

在人脸检测中,根据统计数据将纵横比设置为 1:1.2。对于Anchor的大小,根据每一层的感受野来设计,可以通过卷积层和池化层的数量来计算。然而,并非理论感受野中的每个像素对最终输出的贡献都相同。一般来说,中心像素比外围像素的影响更大,如图5(a)所示。也就是说,只有一小部分区域是有效的影响。实际效果可以相当于一个有效的感受野。根据这个假设,为了匹配有效感受野,Anchor应该明显小于理论感受野(具体例子见图5(b))。因此,重新设计了初始Anchor大小,如表 1 所示。

2.7、归一化高斯 Wasserstein 距离

归一化 Wasserstein 距离称为 NWD 是一种新的小目标检测评估方法。首先将bounding box建模为二维高斯分布,通过其对应的高斯分布计算预测目标与真实目标的相似度,即根据Eqn 6计算它们之间的归一化wasserstein距离。对于检测到的目标,无论它们是否重叠,都可以通过分布相似度来衡量。

NWD对目标的尺度不敏感,更适合测量小目标之间的相似度。在回归损失函数中,添加了一个 NWD 损失来弥补 IoU 损失对于小目标检测的缺点。但仍然保留 IoU 损失,因为它适用于大物体检测。

image.png
其中C是一个与数据集密切相关的常数,是一个距离度量,和是由和建模的高斯分布。

3、实验结果

3.1、消融实验

image.png

3.2、SOTA对比

image.png

ChaucerG
集智书童

推荐阅读
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致
432.4 FPS | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型
YOLOU开源 | 汇集YOLO系列所有算法,集算法学习、科研改进、落地于一身!
MobileDenseNet | 一步步打造全新的轻量化目标检测模型,让SSD继续发光发热

更多嵌入式AI相关技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18803
内容数
1349
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息