陶 也
(西北工业大学 计算机学院,陕西 西安 710129)
近几年来,随着卷积神经网络的迅速发展,通用目标检测任务之一人脸检测,取得了重大的进步,其在实施监控、目标跟踪、安全验证等诸多场景中被广泛应用[1-4]。人脸检测可通过物体检测算法对画面中存在的人脸位置进行检测。以往人脸检测主要在R-CNN[5]、Fast R-CNN[6]、Faster R-CNN[7]、YOLO[8-11]和 SSD[12]等目标检测算法的基础上稍作改进便可应用在人脸检测中,也有一些针对人脸检测的算法被陆续提出。但在低光照条件下,摄像头能见度低和信号细节损失严重对视觉增强和后续感知任务造成阻碍[13]。因此,在低光照条件下对人脸实现准确定位具有重要的实践意义。
人脸检测研究可以追溯到60年代。经过几十年的曲折发展,它已变得越来越成熟[14-15]。针对正脸检测的传统算法已经逐步得到广泛应用,例如 ViolaJones[16]在有约束的正脸检测场景中有着良好的速度与精度表现。但是,在自然场景下,传统方法采用的人工特征不足以表示复杂的人脸特征,大多数传统算法迅速退化。因此卷积网络作为当今流行的计算机视觉处理方式,能够自动选取最优的特征提取[17],被广泛运用于复杂条件下的人脸检测中。目标检测算法目前主要分为两类:一类是基于两阶段的R-CNN系列网络;另一类是缩减到一阶段的YOLO和SSD等网络。文献[18]指出,这两类算法在面对部分较为复杂情况如面部遮挡等问题有较理想的鲁棒性,但对于低光照等条件表现仍旧不佳[13]。在 2019年北京大学发布的低光照图像和对应人脸标签的 DARK FACE数据集上的检测结果普遍较差[19]。
因此,为提高对低光照条件下对人脸的检测性能,本文尝试在目前目标检测效果优秀的Cascade R-CNN网络[20]的基础上进行改进,并基于改进算法对低光照下的人脸检测进行研究。首先,将Cascade R-CNN的锚框尺寸根据对数据中人脸标注框的尺寸聚类结果进行调整;其次,对网络结构进行修改,增加反卷积层以提升网络对小目标的检测效果;之后,在修改后的 Cascade R-CNN网络的基础上尝试各种训练技巧的组合,帮助提升低光照人脸检测性能。最后,通过实验验证改进后的Cascade R-CNN算法的检测效果。
本文剩余部分的组织结构如下安排。首先,第1节回顾了现有算法在低光照条件下的尝试。第2节给出了一些预备知识。在第3节中,介绍了本文改进的Cascade R-CNN模型,并在第4节中给出了相应的分析。最后,第5节对本文工作进行总结。
Cascade R-CNN属于目标检测两阶段算法。它由Cai和Nuno等人在Faster R-CNN的基础上增加三级级联检测器,如图1所示,使其在图像质量较差的环境中,依旧保持较高的检测精度。Faster R-CNN对图像中的所有候选框进行打分,需要主动挑选IoU阈值,会造成正样本数量不足、训练结果过拟合。设置较低的IoU阈值,虽然可以获得较多的正样本,但会在检测时造成较多的伪检。而在改进后的Cascade R-CNN中,它采用级联的方式,前一个检测模型的输出作为后一个检测模型的输入,而且越往后检测模型的IoU阈值越大。通过设定不同大小的IoU阈值,多个专用回归量针对不同阶段重采样进行优化,从而提高检测精度[21]。
图1 Cascade R-CNN级联检测器Fig.1 Cascade R-CNN cascade detector
Cascade R-CNN中,每个RPN网络所使用的锚框的大小和尺寸一般都是预设的[8, 16, 32]和[1.5, 1.0, 2.0]。如文献[20]中所言,原作者之所以使用这3种大小和3种尺寸是由经验所得,而原算法是应用于通用目标检测的,对于人脸而言,它的范围显然大得多。为了解决上述问题,本文用K-Means算法对DARK FACE训练集中6 000张图象的真实标注框进行聚类[22]以确定锚框最佳尺寸。算法的运行结果如图2所示。
图2 聚类结果可视化Fig.2 visualization of clustering results
聚类中心为[13.42, 15.03],说明图片中的目标人脸较小,并且本文根据聚类结果可以看出标注框都趋近于正方形,因此本文适当减小了锚框的大小并将比例从原来的[0.5, 1.0, 2.0]调整为[0.8,1.0, 1.2],用更加合适的锚框来对人脸进行检测。
近年来,研究人员发现反卷积神经网络(Deconvolution Neural Network),又称转置神经网络,在图像恢复等处理中相比卷积神经网络具有很大的优势。与卷积神经网络不同,反卷积网络的反卷积操作可以逐层实现数据扩张,反卷积网络可以通过少数几层反卷积层在逐步实现同尺寸放大的同时实现图像恢复,在较少的网络参数下达到更好的重构性能。那么,受此启发,在目标检测中,经过几层卷积网络后,一些小目标的特征也受到损坏,我们此时可以借用反卷积层,将小目标特征进行及时放大,从而帮助其传播到后续的网络中。
本次实验使用的主干网为ResNet 50,在最后一层卷积层后和每个池化层后添加反卷积层,并将每层的反卷积结果进行融合,主干网结构如图3所示。
图3 添加反卷积层后的ResNet 50Fig.3 ResNet 50 after adding the deconvolution layer
多尺度训练作为一种提升性能的有效技巧被应用在各种目标检测比赛中。在基础网络部分,通常会生成比原图小数十倍的特征图,这使得检测网络很难捕获小物体的特征描述。通过输入更大、更多尺寸的图片进行训练,能够在一定程度上提高检测模型对物体大小的鲁棒性。数据增强是在不实质性的增加数据的情况下,从原始数据加工出更多的表示,提高原数据的数量和质量,以接近于更多数据量产生的价值。在这个过程中还可以加强本体特征的学习,避免模型训练出现过拟合,提升模型的泛化能力。
在本文中,我们将训练尺度修改为原图大小的3倍,同时对图像数据进行随机裁剪、水平翻转、随即色相饱和度、随机亮度饱和度和随机模糊等变换方法。
我们首先以Cascade R-CNN + FPN为基准框架,其中 Cascade R-CNN所使用的主干网为ResNet 50。在此基础上,我们对DARK FACE数据集中的人脸进行聚类统计,根据聚类结果对Cascade R-CNN模型中的锚框尺寸进行调整。接着根据前文所述方案在Cascade R-CNN网络中加入反卷积层。最后在使用COCO数据集对模型进行预训练的基础上,使用多尺度训练和图像数据增强两个训练技巧在改进后的Cascade R-CNN网络上进行微调。将得到的模型在DARK FACE数据集中进行测试,评测改进后模型的效果。
实验基于ResNet 50神经网络框架实现。实验平台配置为:操作系统为 Windows 10;CPU为Intel Cascade 6266 @ 3.0G Hz十六核处理器;64 G内存;GPU为NVIDIA T4 16 G显存;深度学习框架为 MMDetection,Pytorch;编程语言为Python。
实验使用DARK FACE低光照条件下的人脸检测数据集对Cascade R-CNN改进算法的精度进行评估。DARK FACE低光照条件下的人脸检测数据集提供了6 000幅真实世界的低光图像,在夜间捕获,在教学楼、街道、桥梁、立交桥、公园等,所有标记的边界框的人脸,作为主要的训练和/或验证集。数据集还提供了9 000张同样环境下采集的未标记弱光图像。此外,数据集提供了一组独特的789对在可控的真实光照条件下捕获的弱光/正常光图像(但不必要地包含人脸),可以作为参与者离散化时训练数据的一部分。届时将会有一组4 000张弱光图像的测试,带有人脸边框标注。
图4 DARK FACE数据集图Fig.4 DARK FACE data set diagram
3.3.1 评价指标
在目标检测中,算法不可能百分百和人工标注的数据完全匹配,因此我们通常使用IoU的值衡量目标真实边界框和预测边界框的重合程度,以此来评估定位精度。IoU的计算公式如式(1)所示。一般情况下,当IoU的值大于0.5时,认为成功预测到目标。
在目标检测中,正确预测分类的候选框我们称之为真(True, T),错误预测分类的候选框我们称之为假(False, F)。将与真实边界框的IoU大于预设阈值的候选框称之为正(Positive, P),将与真实边界框的 IoU小于预设阈值的候选框称为负(Negative, N),由此我们可以得到图5。
图5 样本中的分类Fig.5 classification in the sample
根据图5可知,精确率和召回率的计算公式如下:
通常我们希望精确率和召回率越高越好,然而精确率和召回率在某些情况下是矛盾的,二者此消彼长,因此最终平均精度(Average Precision,AP)通过精确度和召回率计算,并以平均精度AP(mAP)值作为反映算法检测精度的综合评价指标。通常情况下,mAP值越高说明模型检测精度越高,检测效果越好。
mAP的计算公式如下:
3.3.2 实验结果与分析
为验证Cascade R-CNN改进算法的性能,首先将 Cascade R-CNN改进算法同原始 Cascade R-CNN算法在DARK FACE数据集上进行了实验对比。其次将不同的改进组合分别在 DARK FACE数据集上进行对比。实验结果如表1所示。
表1 模型改进前后对比Tab.1 comparison before and after model improvement
实验结果表明,相比于Cascade R-CNN算法,Cascade R-CNN改进算法在低光照条件下的人脸检测精度上有明显提升,其在所选数据集上,相较于直接使用 Cascade R-CNN,mAP提升了36.8%。
表2展示了实验中不同改进对模型性能的提升效果。调整锚框尺寸使得RPN网络通过锚框所取得的候选区域与人脸区域更加吻合,从而提升RPN网络选取的候选区域质量;加入反卷积层可以将其之前的卷积网络提取出的特征进行放大,从而使小目标特征得以传播到后续网络中,从而提升网络对小目标的检测效果;多尺度训练和图像数据增强通过对训练的数据进行各种变换,增加模型训练的数据量,从而使模型具有更强的泛化能力。
表2 不同改进性能对比Tab.2 different improved performance comparison
最终该模型在测试集上的mAP达到60.09%,取得了相当大程度的改善,相较DARK FACE数据集发布的检测精度本文的模型也明显更佳。
表3 DARK FACE数据集发布的检测精度Tab.3 DARK FACE data set release detection accuracy
本文结合各种神经网络训练技巧对 Cascade R-CNN算法进行改进,在一定程度上能改善低光照下人脸识别精确度低、定位差的问题。通过对Cascade R-CNN中锚框大小和尺寸的调整,提升对人脸小目标的捕获;其次,加入反卷积层,将前几层卷积网络捕获到的小目标特征放大使之可以传播到之后的网络中。改进后的 Cascade R-CNN算法与多尺度训练的技巧相结合,使低光照条件下人脸检测精度依旧有不同程度提升。但是,本文算法仍存在一定缺陷,仍有很大的提升空间。在之后工作中,会针对发现的问题研究改进本算法,进一步提高人脸检测性能。