针对二分支神经网络匹配的人脸检测算法研究*
2020-10-15贺兴时杨新社
王 茹,贺兴时+,杨新社
1.西安工程大学理学院,西安 710600
2.密德萨斯大学科学与技术学院,英国剑桥CB2 1TN
1 引言
人脸检测作为目标检测的一个分支,逐渐成为科技发展过程中不可或缺的环节。在安全支付、社会安保、图像搜索等方面已经取得了显著的成果,如机场、高铁等实现了人脸检测进出闸机;支付方式从货币转换为通过人脸检测实现支付等。而光照、遮挡、扭曲、年龄等不可控因素时刻影响着检测的效果。
在人脸检测方法发展历程中,基于传统模板的方法[1]主要通过人工提取特征、训练分类器、再进行人脸检测等步骤实现整个检测过程,鲁棒性虽好但受限因素较多。传统方法在检测理想状态人脸图像时效果明显,但在实践过程中取得的效果可能一般甚至很差[2-6]。早期Viola和Jones提出的Haar-Like与AdaBoost级联的方法[7]在检测速度方面取得了很大的提升,但在多尺度、姿态多样等情形下的检测效果非常不理想。
随着深度学习不断的发展和完善,卷积神经网络(convolutional neural network,CNN)提取特征逐渐成为主流。CNN在提取图像特征的过程中利用感受野(receptive field)表示卷积神经网络每一层输出的特征图上的像素点在原始图像上映射区域的大小,依据其多样化、鲁棒性更好等特性在图像识别及目标检测等领域已经得到了广泛应用。
随着特征提取网络层层数的不断加深,特征图会越来越小。因此,越高层的特征图对应原始图像的范围越大,含有人脸信息更高的特征;越低层的特征图对应原始图像的范围越小,包含的特征更趋向于局部信息的细节。根据提取特征方式的差异,人脸检测器主要分为基于区域的人脸检测器(regionbased face detector)和基于锚的人脸检测器(anchorbased face detector)[8-10]。而基于区域的人脸检测器[11]存在两个主要问题:候选区域中背景相对人脸区域占比非常大,使得分类器训练正负样本的比例不均匀,过度判断样本中的每个候选区域,导致检测速度较慢[12];每个区域特征提取的过程比较粗糙,增加了对小尺度人脸的检测难度[13]。
文献[14]将人脸检测与人脸关键点检测结合,网络层数浅、检测速度快但精度较低;HyperFace[15]的研究展示了从不同层进行特征融合可以提高分类和定位的准确率;通过置信度[16]和损失函数[17]进行二次抑制的检测器则缓解了类别失衡问题,但速度与精度不同步;另一些研究则通过引入3D人脸建模[18]或预处理[19]来提高检测精度,但同时也提升了模型的复杂度,而且模型训练需要分阶段进行。
DSFD(dual shot face detector)模型[10]可以在精度和速度之间进行权衡:当强调速度时,该模型可以使用单层的特征映射进行快速检测,从而保持相对高的性能;如果重视精度,该模型可以使用多层次的复杂特征映射,以适中的速度获得更高精度的检测器。
针对以上分析,本文提出了二分支神经检测器匹配的人脸检测算法。首先,根据五官位置关系构建人脸模板框架;其次,依据构建的模板在DSFD人脸检测器的特征增强模块层实现对样本人脸区域的提取及标记;最后,对提取、标记的人脸区域进行相关匹配。在人脸数据集FDDB、Face Detection Data Set and Benchmark、WIDER FACE上均取得了较好的效果,有效地兼顾了检测过程中的速度和精度。
2 基于模板检测的方法
2.1 模板匹配
2.1.1 模板架构
由于人脸五官的多样性,为了使构造的人脸模板具备较好的泛化能力,采用传统的构建模式即利用随机、多个人脸样本取平均构成模板。具体步骤详见文献[2]。
2.1.2 人脸匹配
传统模板检测算法的基本思路是:使用各个模板通过滑动窗口(sliding window)等方式对所有可能尺度和形状(宽高比,aspect ratio)的图像区域进行匹配,将满足一定条件并达到匹配阈值的图像区域作为候选人脸区域。图1给出了模板匹配的示意图。
Fig.1 Template matching图1 模板匹配
设T(m,n)为模板,Sij是待检测图像中被模板覆盖的区域,i、j为该区域的坐标;搜索范围1 ≤i≤W-w,1 ≤j≤H-h。
采用误差法即衡量T和Sij的误差作为评判匹配效果的准则函数,形式如下:
当E(i,j)取最优解时即为匹配目标。
在匹配阶段模板越大,匹配速度越慢;模板越小,匹配速度越快。因此,取误差阈值E0,当E(i,j)>E0时终止该区域并继续计算下一区域,以此提升计算速度。
基于传统模块的人脸在构建人脸时一般会受到检测样本中存在的角度差、光照等因素的影响,致使构建的模板在进行匹配时存在很难对样本中的人脸位置进行定位等困难。提出的采用DSFD检测网络在依据模板进行特征提取时,通过模板与锚在特征提取阶段存在的关系,解决模板匹配阶段受模板构造波动性影响限制匹配阶段速度及因外界干扰导致检测效果差等问题。
具体解决方案详见第3章。
2.2 基于DSFD检测框架
DSFD是Li等人[10]提出的解决尺度、模糊、遮挡等姿态各异的人脸样本的双分支人脸检测器。从三方面改进了检测器的性能:
(1)特征增强模块(feature enhance module,FEM),改进了原始特征映射将单一神经网络检测器扩展到双分支检测器。
(2)渐进式锚损失(progressive anchor loss,PAL)则通过两个不同的锚集合有效地简化了特征。
(3)改进锚匹配(improved anchor matching,IAM),使锚分配策略与数据增强一体化,给回归器提供了更好的初始化。
DSFD的网络框架如图2所示。图2中的(1)Original Feature Shot(原始特征分支)在前馈VGG/ResNet体系结构的顶层上使用(2)Feature Enhance Module(特征增强模块)生成(3)Enhanced Feature Shot(增强特征分支),同时伴随两个损失层分别命名为原始特征阶段的第一分支PAL(first shot PAL)以及增强特征的第二分支PAL(second shot PAL)。
在渐进式锚损失中上述两个分支的损失分别为:
Fig.2 Network architecture of DSFD图2 DSFD网络结构
其中,Nconf和Nloc分别表示正负锚数量;Lconf是两类上(人脸vs.背景)的softmax loss;Lloc是介于使用锚ai的预测框ti和真实框gi参数的smoothL1 loss;β是平衡两项影响的权重因子;sa表示在第一分支层的最小锚;λ是权衡两个分支的权重因子;
3 改进的模板匹配算法
对于DSFD网络而言,主要通过两部分网络结构进行特征提取。在原始特征分支后增加了特征增强模块,改进网络的特征提取性能,因此在对传统方法和DSFD网络的融合中,主要将构建的模板应用在原始特征分支即第一分支PAL上,保留第二分支PAL的网络结构。
3.1 改进的第一分支PAL
为了将传统方法的优势放大,本文在检测网络的特征提取阶段进行了改进,步骤如下:
改进算法:特征提取阶段
在第一分支中通过锚与构建模板之间对于提取特征过程中存在的相关关系进行一定的改进,即预先设置锚保证了每一个特征映射能够实现对不同样本图像中存在的不同尺度及宽高比的人脸框提取进行规律、适时的调整;构建的模板则通过设置特定阈值根据人脸位置差异等波动自适应地改变模板的大小。因此,在第一分支锚与模板的结合能够实现改进算法对不同尺度人脸位置的定位及特征的提取。
从人脸数据集上的实验结果可以看出,传统方法对于小尺度人脸检测性能较差,但对大尺度具备很好的鲁棒性。在第一分支中加入模板的目的在于细化特征提取网络对候选区域的选择,锚匹配则使一系列锚和人脸在回归器中更好地初始化;构造的模板具备一定的自适应性即阈值介于大尺度和小尺度人脸的较大范围区间内。
3.2 特征增强分支
DSFD在特征增强模块与其他特征提取网络的不同在于当前特征映射单元层和向上特征映射层的邻域是交互的。如图3所示。
Fig.3 Feature enhance module图3 特征增强模块
改进特征增强模块利用包括当前层的非定位神经单元nc(i-ɛ,j-ɛ,l),nc(i-ɛ+1,j-ɛ+1,l),…,nc(i+ɛ,j+ɛ,l)和上层的原始神经单元oc(i,j,l)等不同维度的信息进行特征增强,使原始特征具备更好的鲁棒性和判别能力。增强的神经单元ec(i,j,l)表示形式为:
其中,c(i,j,l)表示位于l层(i,j)坐标的特征映射单元;f定义为一组基本的扩展卷积、元素内积、上采样或级联操作。
特征增强模块的提出来源于特征金字塔(feature pyramid network,FPN)[20]及感受野块(receptive field block,RFB)[21]的实际应用效果。首先,利用1×1的卷积核对特征映射进行正则化;其次,对上层特征映射执行与当前层点对点内积的上采样;最后,将特征映射通过包含不同级联卷积层的3个子网进行分割操作。实验验证了此阶段增强原始特征使特征的判别特性和鲁棒性得到提升。
3.3 网络参数设置
表1给出了DSFD网络中2分支中含有的6个原始/增强特征步长、特征映射大小、锚尺度、比率和数量等参数的大小及范围。
Table 1 Size and range of 6 parameters in 2 shots表1 2分支6个参数的大小及范围
表1中,ef_i、of_i(i=1,2,…,6)表示增强特征和原始特征的对应层数。
相比传统神经网络的网络层数及参数分配的差异,从表1可以看出,基于人脸尺度的统计基础DSFD设置锚比率为1.5∶1,并且原始特征的锚尺度是增强特征的一半;在参数设置上原始特征和增强特征具有相同的大小尺度,第二分支检测层依据SSD-style(single shot detector-style)框架构造。特殊之处在于输入训练图像的大小是640,意味着最低层到最高层的特征映射的大小从160递减到5。利用基于锚的采样可以随机在图像中选择人脸区域,抓取包含人脸的子图像,设置尺度比例640/rand(16,32,64,128,256,512)使其介于子图像和选定人脸之间。为了改善人脸图像的召回率同时确保锚分类的能力,设置IOU(intersection-over-union)阈值为0.4实现锚到背景人脸的分配比例。
4 实验
4.1 实验数据集
在FDDB[22]数据集和AFW[23]数据集上验证模型的精度,AFW包含205张图片,468张人脸。FDDB和WIDER FACE数据集拥有多样的背景,丰富的人脸尺度、角度、遮挡、表情、光照等情况,满足训练的需求。
4.2 实验参数设置
算法的主体DSFD框架通过Pytorch实现。DSFD网络设置使用权重衰减为0.000 5,动量为0.9的随机梯度下降调整模型。批大小设置为16,与SSD网络参数相似,在前4×104迭代中使用的学习率为10-3,之后分别使用10-4和10-5再各训练4×104次。
4.3 WIDER FACE数据集测试结果及分析
训练集为WIDER FACE[24]数据集,包含3个类别子集Easy、Medium、Hard。该数据集包含32 203张图像,393 703个人脸。数据集包含尺度大小各异的样本集,适合训练本文构建的检测模型。
4.3.1 融合模型合理性验证
在特征增强阶段,通过原始特征映射的分类和回归的性能验证模型的合理性。以基于FSSD(face single shot detector)VGG16作为基线的特征增强模块与基于VGG16的感受野块在相同数据集及实验环境下进行比较,即均采用VGG16作为基线,利用特征增强模块(FEM)和感受野块(RFB)两者的差异,验证融合算法的合理性。
从表2可以看出,FEM优于RFB,因此基于改进特征增加模块的融合模型具备一定的实用性。
Table 2 FEM vs.RFB on WIDER FACE表2 FEM和RFB在WIDER FACE上的比较 %
4.3.2 与其他算法的比较
由于本文算法是基于DSFD检测器算法的改进方法,为了验证提出算法的有效性,本文在相同实验环境和相同数据集上与几类较为流行的检测算法进行了比较。对比结果显示:在检测的精度和速度方面,本文算法相比其他方法有了一定的提高。
表3提供了基于VGG16网络的几种算法在实验环境近似一致的情况下,在数据集3种类别下的实验效果。对比实验Easy类别下的Recall-Precision曲线如图4所示。
Table 3 MAP experimental results of various methods表3 各类方法的MAP实验结果 %
Fig.4 Recall-Precision curve in WIDER FACE of Val Easy图4 WIDER FACE of Val Easy召回率-精度曲线
从表3和图4可以看出,改进算法相比其他几类算法具备一定的优势。即在相近实验环境下和相同数据集测试下,改进算法优于其他几类算法在3种类别下的均值平均精度(mean average precise,MAP)。
4.4 FDDB数据集测试结果及分析
FDDB数据集包含2 845张图像,5 171个不同分辨率、角度、模糊度的人脸。本文算法在FDDB数据集上的离散情况下的测试结果如图5所示,连续情况下的测试结果如表4所示。在离散和连续两者下的ROC曲线,DSFD检测器实现了stats-of-the-art性能,即当FP=1 000(false positives,FP)时分别达到的精度为99.1%和86.2%。
综上,在WIDER FACE和FDDB数据集中,改进算法在相同时间内达到了相比其他几种算法较好的精度;在精度相差不大的情况下,改进算法在速度上有了较好的提升。
4.5 实验效果
Fig.5 Discontinuous ROC curve in FDDB图5 FDDB离散ROC曲线
Table 4 Continuous ROC curve in FDDB表4 FDDB连续ROC曲线
尺度、角度等因素下的检测效果如图6所示。对存在尺度、角度、遮挡、表情、光照等非理想情况下人脸样本,改进算法得到了较好的检测效果。
针对改进算法对不同尺度等因素影响下的检测鲁棒性可以通过图6的检测结果看出:算法不再局限于对大尺度、无角度偏差等检测效果的高效鲁棒性;算法对小尺度、遮挡等因外界因素影响较强的人脸区域仍得到了较好的鲁棒性。即改进算法在DSFD网络的基础上,通过与模板匹配理论知识的结合,对尺度、角度、遮挡等非理想情况下人脸检测实现了较好的鲁棒性。
Fig.6 Detection results under scale,pose and other factors图6 尺度、角度等因素下的检测效果
5 结束语
针对传统匹配方法和基于神经网络检测器算法在检测的速度和精度存在的不足,本文提出融入模板匹配的二分支神经网络检测器。与基于神经网络检测器的算法相比,在特征提取阶段,改进的算法以构建的模板为基线实现了提升速度的同时保证了检测的精度。
因此,本文算法能够有效地解决传统方法对小尺度人脸缺乏鲁棒性的不足及利用神经网络算法不能快速定位人脸区域的缺陷。从实验阶段可以看出,传统方法在解决某些特定问题时仍然具备很好的理论基础,接下来的研究目的是在实际应用中增强传统方法改进检测算法的贡献率。