
李光辉,博士,教授,主要研究方向为物联网、边缘计算、无损检测、集成电路设计验证.E-mail:ghli@jiangnan.edu.cn.
作者简介:
刘家龙,硕士研究生,主要研究方向为人脸检测、模型压缩.E-mail:6223114017@stu.jiangnan.edu.cn.
代成龙,博士,副教授,主要研究方向为脑机接口、脑电信号处理、数据挖掘.E-mail:chenglongdai@jiangnan.edu.cn.
第二十七届中国科协年会学术论文
非约束环境下人脸图像具有背景复杂、尺度分布广泛等特点,当前检测器在标签分配和特征提取方面分别存在人脸匹配锚点数量不均衡和卷积核增长视野受限的问题,导致网络难以进行细粒度优化.针对上述问题,文中提出基于锚点损失优化的细粒度人脸检测方法(Fine-Grained Face Detection Method Based on Anchor Loss Optimization, FALO).首先,分析人脸匹配锚点数量与损失的关系,提出锚点损失优化算法,细粒度地调整训练中分类与定位损失.然后,设计上下文特征融合模块,在背景中有效提取多尺度特征.最后,综合考虑卷积神经网络和自注意力机制,构造自注意力辅助分支,补充检测器感受野的同时提高对不同纵横比人脸的注意力.在多个数据集上的实验表明,FALO可兼顾实时计算效率和高精度检测,在困难样本挖掘中具有一定优势.
LI Guanghui, Ph.D., professor. His research interests include internet of things, edge computing, non-destructive testing, and integrated circuit design verification.
About Author:
LIU Jialong, Master student. His research interests include face detection and model compression.
DAI Chenglong, Ph.D., associate profe⁃ssor. His research interests include brain⁃computer interface, EEG signal processing, and data mining.
Academic Papers of the 27th Annual Meeting of the China Association for Science and Technology
In unconstrained environments, face images exhibit the characteristics of complex backgrounds and varying scales. Current face detectors suffer from an imbalanced number of anchors matched to the faces in label assignment and the receptive field growth limited by convolutional kernels in feature extraction. These issues lead to the difficulty of fine-grained optimization of the network. To address these issues, a fine-grained face detection method based on anchor loss optimization(FALO) is proposed. First, the relationship between the number of anchors matched to the faces and the loss is analyzed, and an anchor loss optimization algorithm is introduced to fine-tune the classification and localization loss during training. Second, a context feature fusion module is designed to effectively extract multi-scale features from the background. Finally, convolutional neural networks and self-attention mechanisms are considered comprehensively, and a self-attention auxiliary branch is constructed to supplement the receptive field of the detector and improve the attention to faces with different aspect ratios. Experiments on multiple datasets demonstrate that FALO achieves both real-time computational efficiency and high-precision detection, and it exhibits certain advantages in hard sample mining.
数字化时代, 多模态信息处理和生物信息识别技术[1, 2]快速发展, 人脸检测技术的重要性愈发显著, 如在智能交通、智慧课堂和安防监控等非约束环境下的应用中起着关键性作用.然而, 在各种非约束场景下, 人脸检测面临诸多挑战, 如人脸尺度变化、旋转、模糊及遮挡等复杂情况[3].现有的人脸检测器通常基于MobileNets[4]或ResNet[5]等深度学习模型, 从多任务学习、网络结构和损失函数等方面进行深入探索与改进[6].虽然取得不少进展, 但在目标检测中深入分析标签分配与损失、图像定位与语义及卷积神经网络(Convolutional Neural Network, CNN)受限感受野和目标纵横比的关系, 现有技术仍存在局限性.因此, 研究非约束环境下的人脸检测技术具有重要的理论和实际意义.
在目标检测任务中, 锚点(Anchor)是一种常用的定位先验机制, 通常被预定义为一组固定大小和比例的候选框, 在特征图上与真实目标进行匹配, 引导模型检测不同尺度和形状的目标.人脸检测任务通常包括区域提取和分类定位细化两个步骤[7], 这两者都涉及正负样本的划分.大多数检测器借助锚点作为参考点以实现目标的分类和回归, 即为人脸分配一定数量的锚点作为正样本, 而未分配的锚点作为负样本.
在深度学习模型的训练过程中, 通过反向传播算法调整参数, 在分类任务中拉大正负锚点特征向量的间距, 在定位任务中预测正锚点的偏移, 实现其与目标人脸的精准对齐[8].上述优化过程忽略非约束环境下目标人脸的尺度、遮挡和纵横比等因素, 可能导致目标匹配的锚点数量不均衡, 而给目标分配固定数量的锚点常忽略不同锚点的质量分数.上述问题会导致模型倾向于优化一部分简单的人脸, 忽略困难样本的挖掘.因此, 如何细粒度地鉴别不同人脸的难易程度, 有针对性地区分锚点质量是当前目标检测的研究热点之一[9].
在非约束环境下, 拍摄者距离目标位置的远近、图像处理等因素会导致人脸的尺度分布范围从几像素到上千像素不等[10].在CNN中, 特征图不断下采样, 可能导致小目标在低分辨率特征中丢失; 对于尺寸较大的目标, 如果感受野偏小, 会导致预测结果的误差[11].非约束环境具有不可预知性, 背景复杂是非约束环境的明显特征.人脸特征和图像可能是模糊的, 前景和背景的区分阈值可能是动态变化的, 因此, 如何从背景中有效区分目标需要有效的正则化手段.
目前, 用于非约束环境的人脸检测器主要包括单阶段检测器、双阶段检测器和级联检测器[12].上述检测器主要基于CNN, 但普通卷积在一次计算过程中获得的感受野是固定的(如3× 3卷积), 并通过逐层计算递进.与卷积获得的局部感受野不同, 基于自注意力机制的ViT(Vision Transformer)[13]在一次查询(Query)和键(Key)的计算过程中能全局考虑特征图中其它位置的影响, 即建模长距离依赖关系.自注意力可跨越空间维度, 使模型关注整张人脸的结构, 提升对人脸整体形状的理解, 尤其是在非典型形状(如瘦长侧脸)上.而CNN面临固定感受野和卷积核结构的问题, 难以适应这些形变[14].
针对上述挑战, 本文提出基于锚点损失优化的细粒度人脸检测方法(Fine-Grained Face Detection Method Based on Anchor Loss Optimization, FALO).首先, 提出锚点损失优化算法(Anchor Loss Optimi-zation, ALO), 旨在解决人脸匹配锚点数量不均衡的问题, 通过重新为不同人脸分配权重占比, 动态调整锚点和人脸的损失, 使网络能有效进行困难样本挖掘.然后, 设计上下文特征融合模块(Context Fea- ture Fusion, CFF), 在进行多尺度特征融合的同时, 扩充融合后特征图的上下文信息.最后, 引入自注意力辅助分支(Self-Attention Auxiliary Branch, SAB), 该分支的每个特征点都包含全局信息, 能进行复杂环境下的额外监督, 不会带来额外的推理开销.在非约束环境下的WIDER FACE数据集[10]上进行的对比实验表明, FALO性能较优.
由于人脸尺度和分布的多样性, 现有研究主要采用基于数据的方法和基于锚点补偿的方法, 应对人脸匹配锚点数量不均衡问题[15].
基于数据的方法应用多尺度特征图、数据增强及调整锚点的宽高比等应对锚点数量不均衡问题.Zhu等[16]提出TinaFace, 使用4至128倍下采样的6层特征图, 并在每层上部署3种尺寸的锚点.Li等[17]提出DSFD(Dual Shot Face Detector), 随机裁剪人脸尺寸并调整至锚点大小, 以增加匹配锚点的数量并稳定训练过程.Tang等[18]提出PyramidBox, 引入数据锚点采样技术, 增加小尺度人脸样本.
然而, 基于数据的方法受限于数据和锚点配置, 难以从根本上解决锚点数量不均衡的问题.因此, 研究者进一步采用基于锚点补偿的方法, 弥补基于数据的方法的不足.Zhang等[19]提出S3FD(Single Shot Scale-Invariant Face Detector), 为未匹配锚点的人脸选择IoU(Intersection over Union)大于0.1的K个锚点.Yashunin等[20]提出MaskFace, 采用低质量锚点匹配策略, 将IoU最高的锚点分配给未匹配的人脸.Liu等[21]提出MogFace, 设计自适应在线增量锚点挖掘策略, 动态挖掘并分配高质量锚点.上述方法虽然为未充分匹配锚点的人脸增加更多锚点, 但忽视那些已有足够正样本的目标.
CNN在目标检测领域已展现卓越性能, 当前检测器通常通过融合不同尺度特征图以完善特征提取.尽管特征增强技术层出不穷, 但深度挖掘多尺度特征以检测不同尺寸的目标仍是该领域的关键挑战之一.Lin等[22]提出FPN(Feature Pyramid Network), 通过横向连接构建跨尺度的高级语义特征.Liu等[23]提出PANet(Path Aggregation Network), 进一步利用低层特征信息, 增强整个特征层次结构.Zhao等[24]提出RT-DETR(Real-Time Detection Transfor-mer), 结合FPN自上而下的路径与PANet自下而上的路径, 并设计一个融合模块, 整合相邻的特征图.上述研究虽然探讨跨尺度特征融合的策略, 但尚未充分考虑融合后特征的上下文.
CNN和多头自注意力都是注意力机制的表现, 其区别在于:假设卷积核的尺寸为K, 单次卷积运算后特征点的注意力尺寸为K× K, 而自注意力机制的感受野是全局.除了感受野的范围外, 以大小为K的卷积核为例, CNN获得的注意力是对称的, 而自注意力机制可灵活调整[25, 26].
在WIDER FACE人脸数据集[10]上, 除了人脸尺度分布广泛, 人脸的宽高比存在极端比例, 如宽高比为1∶ 3或3∶ 1的人脸, 如何有效检测各种纵横比的人脸是当前学者积极探索解决的一个重要问题.Luo等[27]指出, 单一的感受野结构不足以应对极端纵横比人脸的定位问题, 并据此提出WARM(Wide Aspect Ratio Matching).Wang等[28]提出EfficientFace, 设计感受野增强模块, 采用非对称卷积, 提升对极端纵横比人脸的检测效能.Zhu等[29]提出特征模仿方案, 评估不同分支输出特征的余弦相似性, 增强网络的建模能力.Li等[17]提出DSFD, 设计双分支网络结构, 在辅助分支中集成特征增强模块, 扩展感受野, 实现多样化特征学习.Zong等[30]提出Co-DETR, 继承FCOS(Fully Convolutional One-Stage Object Detector)[31]和ATSS(Adaptive Training Sample Selection)[32]等锚点分配方案, 旨在增加正样本的数量.但上述方法往往在CNN和自注意力机制这两种注意力机制间权衡, 难以达到最优效果.
本文提出基于锚点损失优化的细粒度人脸检测方法(FALO), 选取MobileNet[4]和ResNet50[5]为主干网络, 对人脸检测模型进行训练和推理.FALO结构的主分支包括主干网络、颈部网络和预测头, 以及与主分支共享底层特征的辅助训练分支, 具体结构如图1所示.
以ResNet50为例, 主干网络由连续的Stage0、Stage1、Stage2、Stage3和Stage4构成.Stage0包括7× 7卷积和3× 3最大池化, 7× 7卷积能有效保留原始图像信息, 3× 3最大池化为降采样操作.Stage0下采样率为4, 用于提取底层特征.网络输出随后依次输入Stage1、Stage2、Stage3和Stage4, 在每个阶段, 下采样率翻倍, 同时通道数目增加.这4个阶段由不同数量的瓶颈(Bottleneck)模块构成, 每个阶段的输入首先进入具有下采样功能的Bottleneck模块, 在网络深度增加的同时减少特征维度并增加通道数目, 从而在网络的更深层次捕获丰富的人脸特征.颈部网络由上下文特征融合模块构成, 可解耦成融合模块和上下文模块.颈部网络接收Stage2、Stage3、Stage4的输出, 并输出相同分辨率的特征图, 构建不同尺度的丰富语义信息和定位信息.预测头包括主分支和辅助分支, 两者结构相同, 都是解耦(用于不同任务)的检测头, 并使用全连接层实现, 但两者参数不一样.解耦检测头除了执行常规的人脸检测外, 输出分类和定位结果, 额外采用关键点和交并比感知[33]两个监督任务以提升精度.自注意力辅助分支由自注意力模块和辅助分支构成, 仅用于监督训练, 不参与推理预测.
在复杂场景中进行人脸检测时, 目标的尺度多样性是一个关键挑战, 因此引入多尺度特征图进行人脸检测至关重要.低分辨率的特征图富含高层语义信息, 而高分辨率的特征图包含精细的空间位置细节.因此, 颈部网络的设计必须能有效融合不同分辨率的特征图, 增强低级特征的语义信息, 丰富高级特征的细节信息.
本文提出上下文特征融合模块(CFF), 旨在处理多尺度的人脸检测任务.CFF由融合模块和上下文模块组成, 结构如图2所示, 其中C表示通道数量.
颈部网络接收来自Stage2、Stage3、Stage4的输出, 分别记为F2、F3和F4.对于CFF, 输出
Fl=C(F(Fl)), l=2, 3, 4,
其中, F(· )表示特征融合操作, C(· )表示上下文增强操作.FPN的上采样过程中, 有
Fl=U(Fl+1)+Fl,
其中U(· )表示上采样操作.
然后, 拼接两个相邻层的特征, 分别经过1× 1卷积和3× 3卷积后融合.经过FPN处理后, 特征进入PANet, 进行下采样融合:
Fl=D(Fl-1)+Fl,
其中D(· )表示步长为2的下采样卷积.F(· )的输出并通过多个不同感受野的卷积层提取上下文信息, 即
Fout=C(
其中C(· )旨在整合相对感受野为3× 3、5× 5和7× 7的特征信息.
通过使用不同数量的卷积, CFF能有效挖掘融合后的多尺度特征信息, 最终拼接具有不同感受野信息的特征图, 从而扩展多尺度特征融合模块输出的感受野, 增强方法对不同尺度特征的捕捉能力.
CNN每层的注意力提升与卷积核的大小及特征图的下采样率密切相关, 不同层的特征图捕获特征的长度有限, 难以获得广泛全面的信息.为了有效挖掘前后背景之间的关系并深入学习不同纵横比人脸的特征, 本文设计自注意力辅助分支(SAB), 仅在训练阶段引入轻微的计算负担, 而在推理阶段可被移除, 确保推理效率不受影响.SAB结构如图3所示.
注意力机制采用文献[26]中的自注意力机制, 有助于建模全局信息, 捕获长距离依赖关系.输入特征转化为
X=[x1, x2, …, xi, …, xn],
其中, xi∈ Rc, c=256, n表示向量数量, 在数量上等于输入特征图的面积.首先, 初始化查询Q、键K和值V, 再对Q、K施加位置编码, 本文使用绝对位置编码中的正弦位置编码和余弦位置编码.Q、K经过位置编码后进行多头注意力的计算.对于输入的Q、K、V, 分别与8个不同的全连接层进行计算, 对应权重为
W
输出
Qi=QW
本文共使用8个头进行自注意力的计算, 故注意力
head i=fSelfAttention (Qi,Ki,Vi)=fsoftmax (QiKTi√dkVi),
其中, dk表示向量维度, 使用√dk进行注意力的归一化.拼接每个多头注意力机制的输出, 即
MultiHead (Q,K,V)=fconcat ( head 1, head 2,⋯, head 8)Wo,
其中Wo∈ R256× 256, 表示输出权重.
多头注意力机制的输出进入残差连接和层归一化, 再进入前馈神经网络(Feedforward Neural Net-work, FNN), 进行残差连接和层归一化, 最后将输出重塑为3种不同尺度的特征图.通过SAB, 不同特征图对全局信息拥有建模能力, 可辅助主分支更好地处理复杂场景下的特征.
本文首先从损失分布的角度出发, 定性分析锚点损失优化算法(ALO)的可行性, 并在MobileNet、ResNet上进行验证.
为了深入理解人脸匹配锚点数量与检测器在分类和定位能力的关系, 探讨匹配锚点数量与定位损失之间的相关性, 结果如图4所示.图中, W ALO表示对应模型使用ALO后的损失分布, W/O ALO表示对应模型不使用ALO后的损失分布, 即原始损失分布, 匹配锚点数表示与单张人脸匹配的锚点数, 锚点的定位损失表示与相应人脸匹配锚点的平均定位损失, 人脸的定位损失表示与一定数量锚点匹配人脸的平均定位损失.
![]() | 图4 定位损失与人脸匹配锚点数的关系Fig.4 Relationship between localization loss and number of anchors matched per face |
图4(a)表明, 锚点的定位损失与人脸匹配锚点数量之间存在负相关性, 表明检测器准确定位单张人脸的能力与该人脸匹配的锚点数量呈正相关.(b)中进一步展示人脸的定位损失与人脸匹配锚点数量之间的正相关性, 这种不平衡的关系可能导致网络性能的下降.此外, 从(a)中右图可观察到, 增加与人脸匹配的锚点数量并不总能改善检测结果, 与人脸匹配的锚点数量线性增加, 锚点的定位损失也不会按比例减少.即使ALO更偏向于匹配锚点数量较少的人脸, 但最终结果表明那些降低权重的人脸检测结果也有所改善, 由此表明ALO的鲁棒性.
基于上述分析, 本文从损失分布的角度出发, 设计锚点损失优化算法(ALO), 伪代码如算法1所示.与基于数据的方法或基于补偿锚点的方法不同, ALO不会增加额外的锚点, 而是专注于提升现有锚点在分类和回归任务中的表现, 从而增强检测性能.
算法1 ALO
输入 Dg, Da, Dlm, Lcls, Lloc, LIoUAware, Llm,
输出 调整后的损失Lcls, Lloc, LIoUAware, Llm
初始化
(1)Dg的数据结构为字典, 键为人脸索引, 值为该人脸匹配的锚点数量;
(2)Da的数据结构为字典, 键为锚点索引, 值为该锚点匹配的人脸索引, 如果该锚点为负样本, 值为-1;
(3)Dlm的数据结构为字典, 键为锚点索引, 如果该锚点为负样本或该锚点匹配的人脸没有关键点, 值为-1, 否则为1;
(4)Lcls、Lloc、LIoUAware、Llm的数据结构为字典, 键为人脸索引, 值为该人脸对应的分类损失、定位损失、交并比感知损失和关键点损失;
(5)
for index, gi in Da do
if gi=-1 then
continue /* 负样本* /
else
fALO(gi)=pow(ˉmDg(gi),1α) /* 使用式(1)计算调整系数* /
Lcls(gi)=fALO(gi)Lcls(gi) /* 调整分类损失* /
Lloc(gi)=fALO(gi)Lloc(gi) /* 调整定位损失* /
LIoUAware(gi)=fALO(gi)LIoUAware(gi) /* 调整交并比感知损失* /
if Dlm(index)=-1 then
continue/* 该人脸无关键点* /
else
fALO(gi)=pow(ˉmkDg(gi),1α) /* 使用式(2)计算调整系数* /
Llm(gi)=fALO(gi)Llm(gi) /* 调整关键点损失* /
end if
end if
end for
ALO首先在每个训练批次中统计与每个人脸匹配的锚点数量mi, 其中, i∈ {1, 2, …, N}, N表示当前批次中的人脸数量.再计算该批次内所有人脸的平均匹配锚点数量:
由于并非所有训练样本都带有关键点标注, 需要进一步计算带关键点标注的人脸匹配锚点的平均数量, 记为
fALO(gi)={1,gi 为负样本 (ˉmmi)1α,gi 为正样本 (1)
其中, α 表示超参数, 为一个正实数.
如图5所示, α 与损失调整程度呈负相关, 当α 趋于无穷大时, fALO输出恒等于1, 所有损失函数保持不变.在实验中α 默认设为2.
在多任务损失函数中, 为所有正样本引入一个额外的权重项, 负样本损失保持不变.对于关键点损失函数, 采用类似的调整策略:
fALO(gi)=(ˉmkmi)1α, (2)
其中gi表示正样本.
在训练阶段, 先执行常规损失计算, 并保留每个人脸的损失值.再统计每个人脸匹配的锚点数量及平均数, 使用fALO计算最终损失, 确保模型在训练过程中能有效挖掘正样本的特征.
本文将人脸检测任务定义为一个基于CNN的优化过程, 涉及到人脸检测任务中对锚点和真实框(Ground Truth)的匹配, 并计算损失.整个过程拆解成如下步骤.
首先定义人脸目标集合和锚点集合, 设A={a1, a2, …, aN}, 表示一个批次中所有锚点集合, 其中, ai表示第i个锚点, N表示锚点数量.G={g1, g2, …, gM}, 表示一个批次中所有人脸目标集合, 其中, gj表示第j个目标人脸, M表示人脸目标的数量.
随后, 通过Assigner(匹配策略)将锚点ai匹配到目标人脸gj, 并记录匹配情况.通常, 匹配是基于目标人脸与锚点的IoU进行的, 可得到匹配关系A∶ A→ G.本文使用一个匹配矩阵C∈ RM× K表示锚点与人脸目标的匹配关系, Cij∈ {0, 1}, 表示锚点ai是否与目标gj匹配.匹配后的已分配锚点集合Aassigned⊆A, 匹配后的已分配人脸目标集合Gassigned⊆G.由此容易得到未匹配的锚点集合:
Aunassigned=A-Aassigned,
未匹配的人脸集合:
Gunassigned=G-Gassigned.
对于未匹配到锚点的目标人脸Gunassigned, 本文通过一个补充匹配过程(第二次分配)匹配这些人脸目标与锚点.假设第二次匹配时, 每个未分配的锚点与未匹配的人脸目标进行重新匹配.本文定义新的匹配关系A'∶ Aunassigned→ Gunassigned, 补充匹配后的结果会将Aunassigned中的锚点与Gunassigned中的人脸目标进行匹配, 形成新的匹配关系.匹配后的锚点集合:
Afinal=Aassigned∪ Aunassigned,
匹配后的目标人脸集合:
Gfinal=Gassigned∪ Gunassigned.
第二次锚点匹配使用低质量匹配, 即将未匹配的人脸与其具有最大IoU的未匹配的锚点进行匹配.
对于所有人脸目标, 无论是第一次匹配还是第二次匹配, 都需要计算损失.在实验中, 分类损失函数使用焦点损失(Focal Loss, FL)[34], 定位损失函数使用EIoU(Efficient Intersection over Union)[35], 关键点损失函数使用Smooth-L1, 交并比感知损失函数使用二元交叉熵损失函数(Binary Cross En-tropy, BCE).每个人脸目标gj的损失:
L(gj)=Lcls(gj)+Lloc(gj)+Llm(gj)+LIoUAware(gj),
其中, Lcls(gj)、Lloc(gj)、Llm(gj)、LIoUAware(gj)表示该人脸目标的分类损失、定位损失、关键点损失、交并比感知损失.对于每个人脸目标gj, 通过ALO细粒度调整每个人脸的损失:
所有人脸目标的加权损失相加, 得到总损失Ltotal, 每个损失项都有一个损失平衡系数β cls、 β loc、 β lm、β IoUAware.因此, 针对每个人脸目标的总损失:
Ltotal=
本文使用随机梯度下降(Stochastic Gradient Descent, SGD)最小化总损失Ltotal并更新网络参数θ , 即
θ * =arg
本文实验环境软硬件配置如下:操作系统为Ubuntu 20.04.1, 配备单卡24 GB RTX 4090D GPU和Intel i9-13900K CPU.实验中深度学习框架为PyTorch 1.10.0, CUDA版本为11.8.实验使用SGD优化器, 共训练100个周期, 设置批量大小为32, 动量为0.9, 权重衰减为5× 10-4.前3个周期采用预热策略, 学习率从10-5线性增至10-2, 并在第70个周期和第90个周期将学习率除以10.为了确保网络的稳定训练, 采用L2梯度裁剪, 阈值设为10.
在数据增强策略方面, 首先将随机剪裁的图像缩放至640× 640, 并以50%的概率应用随机翻转和颜色抖动.此外, 未采用其它数据增强技术.
本文所有实验均在MobileNet-0.25和ResNet50上进行.基线方法设置输出下采样率为8、16、32的特征图, 特征融合使用FPN.对于FALO, 主分支中输出特征图像对应锚点为[16, 32], [64, 128], [256, 512].辅助分支对应锚点为[8, 12, 16], [32, 48, 64], [128, 256, 512].主分支和辅助分支的监督标签均为真实框.最终的损失函数结合分类损失Lcls(β cls=1.0)、定位损失Lloc(β loc=10.0)、关键点损失Llm(β lm=0.01)和交并比感知损失LIoUAware(β IoUAware=0.1).
实验使用WIDER FACE数据集[10]作为训练集, 该数据集包含32 203幅图像和393 703张标注的人脸.关于面部特征, 数据集涵盖模糊、表情、光照、遮挡和姿势等多种属性.包括61种不同场景, 如游泳、握手、会议等.同时, 为了全面评估检测器的检测精度, 根据检测难度将WIDER FACE数据集上数据划分为Easy、Medium和Hard三个子集.此外, 数据集按照40%、10%、50%的比例分别划分为训练集、验证集和测试集.
在FDDB(Face Detection Data Set and Bench-mark)数据集[36]上进行离散得分和连续得分测试, 数据集包含2 845幅图像, 共标注5 171张人脸, 专门用于研究无约束人脸检测问题.
本文在WIDER FACE数据集上对比Easy、Me-dium、Hard子集和整个数据集(ALL)上的AP@50和召回率, 在FDDB数据集上对比误报数量为2 000时的离散得分精度和连续得分精度.
3.3.1 WIDER FACE数据集上实验结果
本文选择如下方法进行对比实验:Multi-scale Cascaded CNN[10]、Two-Stage CNN[10]、TinaFace[16]、DSFD[17]、PyramidBox[18]、MaskFace[20]、MogFace[21]、WARM[27]、EfficientFace[28]、 SSH(Single Stage Headless)[37]、HAMBox(High-Quality Anchor Mining Stra-tegy)[38]、 RetinaFace[39]、YOLO5Face(包括YOLO-v5l、YOLOv5x6、YOLOv5n0.5)[40]、融合多尺度特征的轻量级人脸检测算法(Lightweight Face Detection Algorithm with Multiscale Feature Fusion, LFDMF)[41]、SCRFD(Sample and Computation Redistribution for Efficient Face Detection)[42]、FaceBoxes[43]、Scale-Face[44]、Multitask Cascaded CNN[45]、文献[46]方法.
各方法在WIDER FACE验证集上的AP@50、参数量和计算复杂度对比如表1所示.表中黑体数字表示最优值, 斜体数字表示次优值, FALO-R表示使用ResNet50作为主干网络的方法, FALO-M表示使用MobileNet-0.25作为主干网络的方法.参照文献[40], 将参数量小于2 M、计算量小于3 G的小型模型记作轻量化模型, 参数量大于3 M、计算量大于5 G的大型模型记作高精度模型.
![]() | 表1 各方法综合性能对比 Table 1 Comprehensive performance comparison of different methods |
由表1可见, ResNet50作为主干网络时, 相比复杂度相近的YOLOv5l, FALO-R在Easy、Medium、Hard子集上AP@50值分别提升0.38%, 1.21%和7.32%.相比更大容量的YOLOv5x6, 尽管YOLOv5x6在Easy子集上的AP@50值略提升0.39%, 但FALO-R在Medium、Hard子集上的AP@50值分别提升0.53%和5.27%, 且YOLOv5x6的参数量和计算量是FALO-R的数倍.相比准确率和复杂度较综合的以EfficientNet-B5为主干网络的EfficientFace, FALO-R的AP@50值仍能在Easy、Medium、Hard子集上提升1.12%、1.61%和1.72%.
在轻量级模型性能的对比中, 相比YOLOv5n0.5, FALO-M在Easy、Medium、Hard子集上的AP@50值提升1.53%、2.38%和11.31%.相比LFDMF-M, FALO-M的AP@50值在Easy、Medium子集上降低1.42%和1.85%, 但在Hard子集上却提升6.52%.FALO-M在Hard子集的表现甚至可与一些相对较大的模型媲美, 由此展现其在困难样本挖掘中的潜力.在相同参数量或计算复杂度时, FALO-M的表现接近最佳.
总之, FALO在准确率与计算开销之间达到良好平衡.
选取开销近似的FALO-M、YOLOv5(ShuffleNet-v2-0.5)、RetinaFace(MobileNet-0.25), 在WIDER FACE验证集上的检测可视化对比如图6所示.由图可见, 虽然RetinaFace在部分场景上可检测到全部人脸, 但其在遮挡情况下的检测效果有误差, 而FALO-M在上述场景中具有更好的检测效果.
为了验证FALO-M在各种非约束复杂场景下的鲁棒性, 在广泛使用的WIDER FACE数据集[10]上进行测试, 各方法在Easy、Medium、Hard子集上准确率-召回率曲线如图7所示.由图可见, FALO-R优于大部分对比方法, 特别是在Hard子集上的表现, 进一步证明其处理复杂样本的有效性.虽然FALO-R在Easy、Medium子集上的准确率略低于YOLO5-Face和MaskFace, 这是因为YOLO5Face和Mask-Face使用YOLOv5-CSPNet[40]和DenseNet121[50]等更强大的主干网络.然而, 这些模型带来的精度提升有限, 而代价是更大的计算开销.
![]() | 图7 各方法在WIDER FACE数据集上准确率-召回率曲线Fig.7 Precision-Recall curves of different methods on WIDER FACE dataset |
3.3.2 FDDB数据集上实验结果
FDDB数据集虽然检测规模不及WIDER FACE数据集, 但检测结果AP@50-100能更细粒度地评价检测器效果.该数据集注重误报数量, 在一些高精度场景应用广泛.
在FDDB数据集上, 选择如下对比方法:Multi-task Cascaded CNN[45]、Face R-FCN[51]、UnitBox[52]、LDCF(Locally Decorrelated Channel Features)[53]、FD-CNN[54]、DP2MFD(Deep Pyramid Deformable Parts Model for Face Detection)[55]、HyperFace[56]、BB-FCN(Backbone-Branches Fully-Convolutional Neural Network)[57].各方法结果对比如图8所示.
由图8可见, 当误报数量为2 000时, FALO-M实现99.3%的AP@50和76.6%的AP@50-100, 比大部分二阶段检测方法和级联检测方法性能更优.虽然FALO-M在AP@50上略低于Face R-FCN, 但在AP@50-100上更优, 证明FALO在细粒度指标上的优势.
3.3.3 锚点损失优化算法对比结果
本文的锚点损失优化算法(ALO)选择与如下标签分配改进方法进行对比分析:DSFD[17]中IAM(Improved Anchor Matching)、S3FD[19]中Scale Compensation Anchor Matching Strategy、HAMBox[38]中Online High-Quality Anchors Compensation Strategy、MogFace[21]中Adaptive Online Incremental Anchor Mining、文献[58]中ADAS(Adaptive Dynamic An-chor Mining Strategy).其中, MogFace与文献[58]方法均采用在线信息和离线信息的联合优化策略.
基于MobileNet-0.5, 在相同的实验条件下, 各方法的AP@50值对比如表2所示.由表可见, ALO在ALL上取得最高的AP@50值.DSFD以40%的概率进行数据增强, 提高Hard子集和ALL的AP@50值.由于存在大量低质量的锚, S3FD采用Max-out策略[19]抑制分类中负样本的干扰, 实现约1%的整体AP@50值提升.HAMBox在3个子集上均表现较优, 但整体提升幅度有限.
![]() | 表2 ALO与标签分配改进方法的AP@50值对比 Table 2 AP@50 comparison of ALO and label assignment improvement methods % |
实验观察到, 同时依赖在线信息和离线信息可能会降低最终AP@50值, 原因可能如下.首先, 这类方法通常涉及一组复杂的超参数, 这些超参数需要微调, 难以推广至其它任务中.其次, 基于离线标准和在线标准建立双重标准, 增加网络训练的协调难度.ALO均衡分配损失权重, 优先考虑匹配锚点较少的目标, 这部分目标集中在Hard子集上, 在该子集上实现约3%的性能提升.值得注意的是, 由于Easy、Medium子集包含匹配更多锚点的目标, AP@50值出现轻微下降, 这一现象验证传统标签分配中锚点匹配不均衡导致的优化偏差问题.实验表明, ALO通过动态且细粒度地调整每个目标的训练损失, 有效提升整体检测精度.
3.4.1 锚点损失优化算法
在分类损失函数、定位损失函数、关键点损失函数和交并比感知损失函数中选择性地移除ALO, 评估这些调整对FALO性能的影响, 结果如图9所示.由图可见, 在所有调整中, 定位损失的调整对整体准确率的影响最显著, 而关键点损失的调整对整体准确率的影响相对较小.定位损失和交并比感知损失的调整均有助于提升3个子集的准确率.关键点损失和分类损失的调整虽然导致Easy、Medium子集的准确率轻微下降, 但提升Hard子集的准确率, 从而提高整体准确率.总之, ALO在各类检测任务中都有效提升准确率, 展现出良好的鲁棒性.
3.4.2 上下文特征融合模块
为了进一步探究融合模块和上下文模块相对位置对FALO性能的影响, 设计两种类型的上下文特征融合模块(CFF):上下文模块位于融合模块之前的记为A0, 反之记为A1.
两个模块位置改变后的消融实验结果如表3所示.由表可见, A1模块的AP@50总体高于A0模块.在A0模块中, 上下文模块紧邻主干网络, 本质上相当于在主干网络上增加一个类似残差连接的上下文模块, 对多尺度的特征挖掘作用较小.在A1模块中, 主干网络输出的特征经过跨尺度融合之后, 使用上下文模块能进一步扩大融合后特征图的感受野, 从而提高检测准确率.
![]() | 表3 融合模块与上下文模块相对位置改变后的消融实验结果 Table 3 Ablation experiment results after changing relative positions of fusion module and context module % |
3.4.3 超参数α
ALO仅有一个超参数α , 对α 进行消融实验, 评估其对FALO性能的影响, 具体AP@50值如表4所示.由表可见, α 值从+∞ 逐渐减少为2时, AP@50值逐渐上升, 但之后由于损失调整剧烈, AP@50值开始下降, 由此可见, 调整应当适度.由式(1)和式(2)可知, 当α 取值+∞ 时, ALO输出为1, 即与原损失保持一致.当α =2时, 尽管部分子集上AP@50值略有降低, 但是整体AP@50值最高, 这在ALO应用时提供一个较好的选择.
![]() | 表4 α 不同对FALO性能的影响 Table 4 Effect of α on FALO performance % |
3.4.4 多模块效果分析
在MobileNet-0.25、ResNet50主干网络上评估ALO、CFF、SAB模块的性能, 并从不同主干网络的角度分析FALO的有效性, 结果如表5所示.表中, 第1行和第6行数据为未使用各模块的基线方法(见3.1节), MST(Multi Scale Test)表示将图像的最长边缩放至(500、800、1 100、1 400、1 700)进行多尺度测试.
![]() | 表5 各模块消融实验结果 Table 5 Ablation experiment results of different modules |
由表5可见, FALO-M在Easy、Medium、Hard子集和ALL上的AP@50值分别提升0.63%、1.10%、10.49%和6.77%.FALO-R的AP@50值则分别提升0.45%、0.88%、6.21%、4.45%.ALO尽管其在Easy、Medium子集上的AP@50值略有下降, 但仍有效提高ALL和Hard子集的AP@50值, 表示其对整体检测性能具有积极作用.CFF能充分融合不同尺度的特征, 提高3个子集上的AP@50值.SAB在训练过程中引入更多的监督样本, 并通过自注意力机制学习不同纵横比的特征, 在不增加推理开销的前提下, 使检测器能更有效地学习特征, 提升AP@50值.
在WIDER FACE数据集上, Hard子集包含最丰富的人脸样本, 涵盖Easy、Medium子集的样本类型, 因此能更全面反映检测器的整体性能.
如图10所示, FALO在世界上最大的自拍照片上进行可视化.以ResNet50为主干网络, 检测的置信度阈值为0.2, 图中共有1 151张人脸, FALO检测出993张人脸, 包括许多肉眼难以分辨的低分辨率人脸目标.
基于MobileNet-0.25检测器对同幅图像生成不同特征的类激活图如图11所示.由图可见, FALO-M不仅能有效感知不同尺度的人脸, 还能显著区分背景类和目标类.
本文提出基于锚点损失优化的细粒度人脸检测方法(FALO).FALO充分利用特征融合和自注意力机制, 通过优化标签分配实现非约束环境下的困难样本挖掘.本文重点研究标签分配数量不均衡时的损失分布, 通过实验验证人脸匹配锚点数量和损失之间存在负相关性, 并提出锚点损失优化算法(ALO).此外, 利用上下文特征融合模块和自注意力辅助分支, 进一步提取背景信息和人脸特征.最后, 通过一系列对比实验和消融实验, 证明FALO的鲁棒性及在细粒度人脸优化方面的效果.今后将进一步探索标签分配方法和损失分布的关系, 并将自注意力机制应用到推理中, 从而实现更高效的人脸检测.
本文责任编委 封举富
Recommended by Associate Editor FENG Jufu
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|
[22] |
|
[23] |
|
[24] |
|
[25] |
|
[26] |
|
[27] |
|
[28] |
|
[29] |
|
[30] |
|
[31] |
|
[32] |
|
[33] |
|
[34] |
|
[35] |
|
[36] |
|
[37] |
|
[38] |
|
[39] |
|
[40] |
|
[41] |
|
[42] |
|
[43] |
|
[44] |
|
[45] |
|
[46] |
|
[47] |
|
[48] |
|
[49] |
|
[50] |
|
[51] |
|
[52] |
|
[53] |
|
[54] |
|
[55] |
|
[56] |
|
[57] |
|
[58] |
|