一种改进的基于R-FCN模型的人脸检测算法

2018-09-06 01:28戴海能茅耀斌
计算机与现代化 2018年8期
关键词:置信度人脸分数

戴海能,茅耀斌

(南京理工大学自动化学院,江苏 南京 210094)

0 引 言

人脸检测作为人脸识别、人机交互和人脸追踪等问题的前置算法,必然对检测系统有着一定实时性要求[1]。此外由于拍摄角度的不同,人脸存在遮挡或角度旋转问题,同时光照变化和噪声等因素也会导致人脸存在一定程度的低失真。这些问题对人脸检测算法的稳健性和准确性是一个巨大的考验。

近年来,基于深度学习的卷积神经网络在目标检测领域的应用得到了广泛的重视。深度学习起源于神经网络,是一种深层次的网络结构,主要是借鉴人脑的多层抽象机制,通过神经网络对现实的对象或者数据进行抽象的表达,将特征抽取与分类器整合到一个框架下,尽量减少人为特征抽取,通过多层次的建模来获得关于数据特征的层次结构以及数据的分布式表示[2]。Gupta等人[3]在2013年提出了基于区域的卷积神经网络(Region-based Convolutional Neural Networks, R-CNN)模型,其主要思想是将候选区域算法和卷积神经网络结合起来,由此基于深度学习的目标检测进入了一个全新的时期。

近年来,将基于区域的卷积神经网络的目标检测算法应用于人脸检测领域是一个新的研究热点[4]。其中,候选区域算法将人脸可能存在的位置提取出来,加快了检测速度[5]。与人工提取特征相比,卷积神经网络提取出人脸的特征更加多样化。吴素雯等人[6]提出一种Gabor[7]优化的卷积神经网络与选择性搜索结合的算法进行人脸检测,该算法相比于传统算法,有着更好的泛化能力;董兰芳等人[8]将Faster-RCNN模型应用于人脸检测中,结果表明该方法对非限制条件下具有良好的性能; Chen等人[9]将候选区域网络作为弱分类器,通过boosting级联组成强分类器,然后使用卷积神经网络进行分类,该算法可以在CPU下达到实时检测效果。

本文借鉴文献[8]中基于Faster-RCNN人脸检测算法思想,提出一种基于R-FCN的人脸检测模型,将残差网络(ResNet)代替VGG-16模型,从而加深了网络结构;使用在线难例样本挖掘法放宽训练样本的范围,将难以识别的样本加入网络训练,从而使模型训练更加充分;应用线性非极大值抑制法,解决了多个人脸目标重叠这一难题,最终得到一个端到端的人脸检测模型。

1 R-FCN网络结构

基于R-FCN[10]模型的人脸检测主要分为2个步骤:1)通过候选区域网络[11](Region Proposal Networks, RPN)在共享的特征图上提取感兴趣区域(Regions of Interest, RoI); 2)将RoI子网作为分类网络,对感兴趣区域进行分类识别。R-FCN模型结构如图1所示。

图1 R-FCN模型框架

1.1 候选区域网络

R-FCN使用残差网络生成特征图,RPN网络在特征图上生成候选区域。RPN在生成的特征图上使用9种固定尺寸的搜索窗口,通过滑动窗口产生搜索框。使用的搜索窗口默认尺寸为128×128、256×256、512×512,长宽比为1:1、1:2、2:1。对于大小为1000×600的图像,利用上述搜索窗口在特征图中能提取出20000个左右的搜索框,将超出图像边界的区域剔除之后将剩下6000个搜索框,通过RPN之后得到候选区域,然后利用非极大值抑制法去除高度重叠区域,最终将剩下的候选区域用于网络训练。

1.2 RoI分类网络

R-FCN在生成特征图后为每一个类别目标生成k2个位置敏感分数图,分类的种类有C个类,物体种类加上背景有C+1个类别,最后共有k2(C+1)个通道的输出层,如图2所示。k2个分数图用于描述对应位置的空间网格。例如,当k为3时,则共有9个分数图,代表某一单类物体的敏感分数,其代表的编码为单类物体的{上-左,上-中,上-右,中-左,…,下-左}区域的空间位置信息。

图2 分类网络框架

RoI池化层为位置敏感池化,只有编码相应位置的位置敏感图才会产生相应的池化反应。对于任意一个子区域bin(i,j),其池化操作如公式(1)所示。

(1)

其中,rc(i,j|Θ)是子区域bin(i,j)对类别C的相应池化,zi,j,c是子区域对应类别C的位置敏感分数图,(x0,y0)代表候选区域左上角坐标,n是子区域中的像素个数,Θ代表网络学习得到的参数。

然后将得到的k2个相应rc(i,j|Θ)进行平均池化输出均值,最后利用softmax回归得到该区域为类别C的置信度。

2 改进R-FCN模型

在R-FCN模型基础上,结合人脸检测这一具体任务,本文提出了一种改进的模型。在对训练样本的约束和人脸重叠问题上对网络作出了优化和改进。

2.1 在线难例样本挖掘

在R-FCN模型中,将候选框和标注框重叠率在[0.1,0.5]的区域设置为负样本,并加入网络训练。当检测目标是人脸时,存在某些遮挡严重、尺寸太小、角度偏转大等因素的难例样本。在网络训练时,这些难例与标注框的重叠率为0,故无法将其加入网络进行训练。同时为了保证训练样本平衡,设置正负样本比例为1:3。这种人为设置参数条件约束了训练集的范围,导致模型训练不充分。

为了使网络学习到这些难以区分的样本,本文在R-FCN模型中使用在线难例样本挖掘法[12](Online Hard Example Mining, OHEM)。在线难例样本挖掘法取消了人为设置的参数,放宽了正负样本的约束,将负样本的阈值下界调整为0,同时取消正负样本的比例。OHEM通过计算RPN提供的候选区域的损失函数,将这些候选区域按照损失值排序,挑选出损失值最大的k个目标区域作为难例加入网络进行训练。OHEM放宽了正负样本约束和避免了人工设置参数,将损失值作为训练集的样本选择标准,进一步扩充了训练集的范围,提高了检测效果。

2.2 软非极大值抑制

当R-FCN模型得到检测框后,使用非极大值抑制算法[13](Non Maximum Suppression, NMS)能够精确地获取目标的最佳坐标,并移除重复的边界框。对于同一个物体,由于存在检测窗口的重叠,从而产生多个检测分数。对于这种情况,NMS将最正确的检测框(置信度最高)保留,其余检测框均为非最佳位置,将它们移除(置信度变为0),最终得到最精确的边界框。NMS可以通过公式(2)的分数重置函数来表达。

(2)

其中,si是检测框的置信度,M是置信度最高的检测框位置,bi是检测框的位置,Nt是设置的重叠阈值,iou(M,bi)是M与bi的重叠率。

但是非极大值抑制存在着一个重要的问题,就是它将相邻检测框的分数均强制归0。在这种情况下,如果不同的人脸在重叠区域出现,则将导致对人脸的检测失败,从而降低了算法的检出率,如图3所示。

图3 漏检重叠区域人脸图

在图3中,实线检测框的人脸置信度为0.99,虚线人脸检测框的置信度为0.85,2个检测框的重叠率为0.33。通常情况下,设置人脸重叠率阈值上限为0.3,虚线检测框的置信度将变为0,这导致无法检测出虚线框中的人脸。

Soft-NMS[14]将NMS算法中分数重置由公式(3)来代替:

si←sif(iou(M,bi)

(3)

本文根据人脸目标在图像中为矩形目标这一特性,使用了一种线性加权的分数重置函数,如公式(4):

(4)

在图3中,虚线检测框置信度s的结果变为0.56,说明Soft-NMS可以有效避免漏检重叠区域人脸,从而提高了模型的检出率。

3 实验结果与分析

3.1 实验环境

本文实验所使用的机器GPU型号为NVIDIA Titan X,该显卡拥有12 GB显存。模型的训练和检测都是在Caffe[15]深度学习框架下实现。

为验证模型的有效性,实验所使用的训练集为WIDER Face人脸数据库。WIDER Face[16]人脸数据库是由香港中文大学多媒体实验室发布的人脸检测基准数据集,该数据集共有32203张图片,总共标注了393703张有着高度差异性的人脸。其中所有的人脸标注位置都是使用手工标注,因此标注效果良好。

测试集为FDDB人脸数据库,FDDB[17]人脸数据库共有2845幅图片,包含5171幅人脸样本,其中包括不同姿势、不同分辨率以及存在旋转和遮挡问题的图片。

3.2 网络训练

R-FCN模型的基础网络为ResNet-101,采用迁移学习[18]的方法训练网络,具体使用ImageNet[19]上预训练的模型来初始化网络参数。将残差网络最后一层Fc层分类参数设置为2,将图像尺寸规范化为1000×600输入网络,设置基础学习率为0.01,权重衰减率为0.005,每经过40000次迭代学习率降为原来的10%,总共迭代240000次。

3.3 实验结果及分析

图4 R-FCN和改进模型在FDDB上测试结果

本文使用FDDB人脸数据库评估模型。FDDB提供了2种评估指标:离散分数和连续分数。离散分数指的是当检测到的人脸区域与对应的人脸标注区域重叠部分超过50%时,得分为1,否则为0。连续分数则是上述重叠的比率。本文采用离散分数作为评估指标,实验结果如图4所示。基础R-FCN模型和改进模型的每幅图片检测时间均为0.19s/图,基础模型的检出率为94.6%,而改进模型的检出率为96.8%。相比于基础的R-FCN模型,改进的R-FCN模型在检测速度并未发生改变的情况下,检出率提高了2%以上,说明了本文提出的改进模型的有效性。

将本文检测结果与一些经典人脸检测方法进行比较,记录各种人脸检测方法在FDDB数据库的ROC曲线,如图5所示。除了Viola-Jones[20]人脸检测方法是基于人工提取特征方法之外,Joint Cascade[21]和Faster-RCNN[22]都是使用卷积神经网络提取特征。从图5可看出,本文提出的基于R-FCN模型的改进方法比其他方法有着更好的检测结果。

图5 与其他人脸检测方法比较

从FDDB人脸数据库中随机抽取图片,使用本文改进的R-FCN模型进行人脸检测,得到结果如图6所示。

图6 改进R-FCN模型人脸检测结果

4 结束语

本文在R-FCN模型基础上,结合人脸检测这一具体问题,提出了一种改进的R-FCN模型。主要通过在线难例样本挖掘和线性非极大值抑制法提高了模型的精度。在线难例样本挖掘将难例样本加入网络训练,扩充了训练集的范围,提高了模型的精度。在检测阶段,线性非极大值抑制将重叠的不同人脸样本区分出来,解决了人脸检测中的目标重叠的问题。改进的R-FCN模型比基础的R-FCN模型有着更高的精度。在FDDB人脸数据库上检出率为96.8%,检准率为92.6%,检测速度为平均每图0.19 s。

猜你喜欢
置信度人脸分数
一种基于定位置信度预测的二阶段目标检测方法
硼铝复合材料硼含量置信度临界安全分析研究
有特点的人脸
一起学画人脸
分数的脚步
分数的由来
无限循环小数化为分数的反思
系统可靠性评估与更新方法
可怕的分数
三国漫——人脸解锁