一种改进的多任务级联卷积神经网络人脸检测算法
2021-02-16刘彩云李雅雯刘倩
刘彩云,李雅雯,刘倩
1.长江大学信息与数学学院,湖北 荆州434023 2.长江大学电子信息学院,湖北 荆州434023
随着智能时代的来临,人脸识别在安防、金融、交通、教育、医疗等领域运用越来越广泛。一个完整的人脸识别系统应包含人脸检测、特征提取和人脸识别3个方面。人脸检测是人脸识别需要解决的首要问题。而由于姿势变化、外物遮挡以及光源方向等多方面因素的影响,人脸检测的准确率不高,并且对于多人图片,往往很难准确地识别出所有人脸。常见的人脸检测分为非深度学习和深度学习2种模式[1,2],非深度学习又包含简单特征级联系列、人脸检测的可变模型系列(DPM)[3]等。深度学习包含级联卷积神经网络(CNN)系列、快速区域卷积神经网络(Faster R-CNN)系列[4-6]等。
早期的人脸检测方法准确率较低,多任务级联卷积神经网络的人脸检测算法[7](MTCNN)兼顾人脸检测与人脸对齐双重任务,并且网络结构精简、检测速度快且召回率高。但另一方面,MTCNN算法对多人图片中的小人脸检测率较低,在多人合照场景下,对合照中的小人脸检测鲁棒性不高。针对MTCNN人脸检测算法在多人合照场景下的小人脸检测率较低的问题,笔者提出了一种改进的多任务级联卷积神经网络的人脸检测算法(IMTCNN):该算法首先对MTCNN网络模型的R-Net层集成图片信息卷积残差模块,扩大特征图感受野获取更多人脸信息;然后引入反卷积层和最大池化层,使得特征融合数据维度保持一致;最后将O-Net层集成图片信息卷积残差模块,进一步提取人脸信息。极大地提高了人脸检测的准确性,并且具有多任务实时处理的性能。
1 MTCNN模型
人脸检测通常分3步进行[8]:①在图像上选择一个矩形区域作为观察窗口;②在选定的窗口中提取一定特征进行描述;③根据描述的特征判断这个窗口是否正好框选住了一张人脸。
MTCNN模型如图1所示。MTCNN首先使用“image pyramid”(图像金字塔)方法[9]解决不同尺度的人脸的检测——将原始图像按一定比例进行几何缩放,获得多尺度图像;然后使用P-Net(proposal network,提议网络)、R-Net(refine network,优化网络)以及O-Net(output network,输出网络) 3个级联的多任务卷积神经网络来对人脸进行快速高效的检测[10]:P-Net用于快速生成人脸候选窗口,R-Net对候选窗口进行高精度过滤选择,O-Net则是生成最终边界框与定位人脸关键点。该模型也用到了边界框回归(bounding-box regression)、非极大值抑制(NMS)等技术。
图1 MTCNN模型Fig.1 MTCNN model
2 IMTCNN算法原理
IMTCNN算法原理如图2所示。IMTCNN人脸检测算法主要工作包括:
图2 IMTCNN算法原理Fig.2 Principle of IMTCNN algorithm
1)对R-Net层网络集成图片信息卷积残差模块[11],通过扩大特征图的感受野来获取更多人脸信息,以提升R-Net层网络对人脸目标的检测鲁棒性,并且通过加入反卷积层和最大池化层解决特征融合时维度不一致问题;
2)对O-Net层网络集成图片信息卷积残差模块,进一步提升对多人图片的人脸检测性能,降低人脸检测过程中受外部条件影响产生的误差,同时添加2个卷积池化层使特征融合时维度一致。
2.1 图片信息卷积残差模块
图2中图片信息卷积残差模块是笔者提出的一种卷积残差结构。由于人脸框可以利用卷积分类和回归得出,因此可以采用扩大卷积核的方式来增加感受野,使网络能够准确捕捉多人图片的人脸信息,降低外部环境因素的影响,通过残差模块的堆叠,达到较深的网络层数,增强网络训练的稳定性,提高网络性能。
图片信息卷积残差模块结构如图3所示,采用1个3×3卷积核和2个残差模块串联构成。
图3 图片信息卷积残差模块结构Fig.3 Image information convolution residual module structure
2.2 P-Net层
P-Net层[7]是一个全连接网络,用于快速生成人脸候选窗口,结构如图4所示。将输入的图片经过3次卷积、1次池化之后,再通过人脸分类器,以此来判断该区域是否是人脸,同时使用边界框回归和一个面部关键点的定位器来进行人脸区域的初步定位。边界框回归用来对人脸候选窗口进行校准,通过非极大值抑制来合并高度重叠的候选窗口,并且去除大部分非人脸窗口。最终将输出很多张包含人脸候选区域的图片,并将这些预测结果输入R-Net进行下一步处理。
图4 P-Net层结构Fig.4 P-Net layer structure
2.3 改进的R-Net层
R-Net层是一个卷积神经网络,相对P-Net层来说,R-Net层增加了1个池化层和1个全连接层,因此会更加严格筛选输入数据,会进一步去除大量效果比较差的人脸候选框,然后再次通过边界框回归和非极大值抑制来进一步优化结果。改进的R-Net层采用集成图片信息卷积残差模块的方式,通过增加更多的图片信息,扩大特征图的感受野,提升网络捕捉人脸信息的能力,改进后的R-Net层结构如图5所示。
图5 改进的R-Net层网络结构Fig.5 Improved R-Net layer network structure
针对在R-Net层网络集成图片信息卷积残差模块时产生的数据维度不一致问题,采用增加反卷积层和最大池化层的方式来解决。由于在原始R-Net层网络中集成图片信息卷积残差模块导致输出的数据维度(22×22)大于原始卷积网络输出的数据维度(4×4),使得特征信息无法融合,因此,在原始卷积分支上增加反卷积核为4×4、步长为2的反卷积层,并且在图片信息卷积残差模块分支上增加1个卷积核为5×5、步长为1的卷积层和1个池化核为3×3、步长为2的最大池化层,使输出数据维度统一为8×8,解决了特征信息融合时数据维度不一致的问题。
2.4 改进的O-Net层
O-Net层是一个较为复杂的卷积神经网络,对比R-Net层,O-Net层增加1个卷积层、1个池化层,所以输入特征更多。同时,O-Net层全连接层变大,保留了更多的图像特征。使用O-Net层进行人脸判别、人脸区域边界框回归以及人脸关键点定位,最终输出带有人脸框和5个人脸关键点的人脸检测图像。改进的O-Net层采用集成图片信息卷积残差模块的方式,通过扩大O-Net层网络特征图的感受野,增加提取的人脸特征信息,并与原网络分支进行特征融合,提升网络捕捉人脸信息的能力。
改进的O-Net层结构如图6所示。为解决特征信息融合数据维度不一致问题,引入卷积层和最大池化层。由于经过图片信息卷积残差模块处理后,数据维度为46×46,而原始网络分支数据维度为8×8,导致特征信息无法融合。因此,采用5×5卷积层、2个3×3卷积最大池化层串联的方式,将图片信息卷积残差模块分支网络输出的数据维度降低至8×8,从而解决了O-Net层网络特征融合时的数据维度不一致问题。
图6 改进的O-Net层结构Fig.6 Improved O-Net layer structure
3 数据集及试验
为取得更好的结果,试验部分主要使用FDDB[12]、WIDER FACE[13]、AFLW[14]3种数据集进行训练。这3种数据集的测试集都包含标注人脸的图片,同时考虑到姿势、遮挡、光照等因素的影响,测试集汇集了包括这些因素的各式各样的人脸,也包括灰度图和彩色图。
将训练数据分为非人脸、人脸、部分人脸以及标记好特征点的地标人脸4种,通过重叠度(IOU)对这四者进行区分。对于已经标定的图像,IOU[15]是最终标定的人脸预测框与真实图像的标注框之间交叉面积与合并面积之和。IOU值在0~0.3之间为非人脸,在0.3~0.4之间则为地标人脸,在0.4~0.65之间为部分人脸,在0.65~1之间为人脸。这4种数据分别用于训练3种不同的任务,人脸和非人脸用于实现人脸分类任务训练,人脸和部分人脸用于训练边界框回归,地标人脸则用于训练人脸特征点定位。总体训练时间为4.2h。
为评估人脸检测方法的性能,将IMTCNN算法与其他方法进行对比。图7~图9是IMTCNN在FDDB、WIDER FACE、AFLW数据集上和其他算法的对比。其中,图7表示DP2MFD、CCF、Faceness等8种算法在FDDB数据集上的准确率对比,可以看出IMTCNN所得出的结果准确率远远高于其他方法;图8表示Faceness、Multiscale CascadeCNN、ACF、Two-stage CNN和IMTCNN这5种算法[7]在WIDER FACE数据集上对比,发现IMTCNN对于WIDER FACE数据集中任何难度数据的测试结果远优于其他方法;图9表示TSPM、ESR、CDM、SDM、TCDCN、Luxand、RCPR和IMTCNN这8种算法在AFLW数据集上的平均误差,柱状图显示IMTCNN在左眼、右眼、鼻子、左嘴角、右嘴角这5点的平均误差和总的平均误差均低于其他6种方法。以上对比试验表明,IMTCNN人脸检测的准确性高。
图7 FDDB数据集评估Fig.7 FDDB data set evaluation
图8 WIDER FACE 3个子集评估Fig.8 WIDER FACE 3 subset evaluation
图9 AFLW评估Fig.9 AFLW evaluation
4 结果分析
选取侧脸、戴帽子和有眼镜遮挡的单人图片测试IMTCNN人脸检测效果,图10(a)、(b)、(c)、(d)分别显示了该图片通过P-Net层、改进的R-Net层、改进的O-Net层以及最终输出框定人脸的结果。
选取包含24张人脸的多人图片检测IMTCNN人脸检测效果,图11(a)、(b)、(c)、(d)分别显示了该图片通过P-Net层、改进的R-Net层、改进的O-Net层以及最终输出框定人脸的结果。通过图10单人图片的人脸检测结果可以看出,P-Net层、改进的R-Net层、改进的O-Net层这3层级联卷积神经网络在对于有遮挡的单人图片的人脸检测上起到了很好的作用,每一个人脸候选框都对应一个IOU值,IOU值在0.65~1定义为人脸,值越高表示人脸的可能性越高。从结果可以看出,图片经过3层网络最终框定的人脸候选框对应IOU值如表1所示,经过不断筛选,逐渐向最优化靠拢,也即意味着最终所框定的正好是一张真实的人脸。表明IMTCNN网络能够很好地排除由于姿势变化、外物遮挡以及光源等多方面因素的影响,准确地框选出真实人脸。
图11 多人图片经网络输出结果Fig.11 Multi-person image network output results
表1 多人图片人脸候选框IOU值
通过图11多人图片人脸检测结果可以看出,IMTCNN准确检测出图片中全部24张小人脸,准确率达到100%。表明IMTCNN可以同时准确地框选出多人合照图片中每一个小人真实的人脸。
由图10和图11说明,IMTCNN不仅极大提高了单独人物人脸检测的准确性,降低了人脸检测过程中受外部条件影响而产生的误差,还能够很准确地识别出多人图片中的人脸,为后续的人脸识别踏出完美的第一步。
5 结语
笔者使用一种级联结构将人脸检测与人脸关键点定位结合在一起,通过改进的3层级联卷积神经网络相互配合对图片进行人脸框定,层层筛选,并且通过标记人脸关键点的方式进行确认,提高精度,最终正好框定一张真实的人脸,实现人脸检测。试验结果表明,该算法速度快,准确度高,并且可以一次性检测多张人脸,效率高,为进一步进行人脸识别研究打下了良好的基础。