赞
踩
摘要: 人脸识别中,发型遮挡是一种十分常见的遮挡类型,并且对人脸的正确识别具有极大的干扰。提出一种将头发的颜色模型和发型特征相结合的遮挡检测方法。首先,采用机器学习的方法,对头发的颜色进行学习建模。然后,利用发际线的特征,将人脸划分为若干扇形并分块,采用逐步精细的方法对人脸的发型遮挡区域进行检测。实验结果表明,该方法对人脸区域发型遮挡检测的准确率和召回率都达到88%以上,相比PCA检测方法提高了约20%,验证了该方法的有效性。
关键词:人脸识别;发型遮挡;遮挡检测
0引言
人脸识别作为模式识别领域的热点研究问题受到了广泛的关注,人脸识别技术在众多领域的身份验证中有着广阔的应用前景[1]。在实际人脸图像处理过程中,人脸图像的遮挡会经常出现,如头发、口罩、围巾等,而遮挡对人脸识别有很大的影响。因此,如何准确、自动地检测人脸遮挡区域成为遮挡人脸识别处理的关键问题之一。
主流的人脸遮挡区域检测方法是基于PCA分析检测方法[23]。该方法包括两个关键步骤:在分析阶段,将遮挡人脸图像投影到人脸特征空间,并利用投影系数重建人脸;在检测阶段,将遮挡人脸图像与重建人脸图像进行比较,差异越大,判定为遮挡的可能性越大。遮挡区域根据重建人脸与原始遮挡人脸的差异来估计。基于平均人脸的人脸遮挡区域检测方法[4]与基于PCA分析检测方法类似,只是参考图片选取的是平均脸图像。
在遮挡人脸识别中,头发是极为常见的遮挡物体,给识别带来较大的不利影响。目前,基于PCA或平均脸的分析检测方法在很大程度上依赖于参考样本,对于人脸的位置、姿势等十分敏感,而发型遮挡往往伴随着不同的人脸姿势。本文在分析了各类遮挡检测算法后,通过建立发色模型并结合发型特征,提出了一种针对发型遮挡的人脸遮挡区域检测方法。
1方法概述
本文方法主要分为两个部分:发色模型的线下学习和发型遮挡区域的在线检测。线下学习是利用人工神经网络进行发色和肤色的学习,建立头发的颜色模型,以便于在线检测使用;在线检测是实时检测遮挡图片的发型遮挡区域,给出检测结果。
(1)图1给出了发色模型学习的详细步骤:对发色和肤色RGB样本数据,利用人工神经网络进行发色和肤色训练学习,得到一个发色模型。给定一个像素点的RGB值,可以通过该模型粗略评估其是头发的概率。
(2)图2给出了发型遮挡区域的检测步骤:给定一幅图像,首先根据人脸进行归一化;之后,以嘴部中心为圆心,将给定的人脸区域按照角度划分为若干扇形;对于每个扇形,按照半径长度平均划分为相等数量的区块;然后,对于每个扇形区块,按照距离圆心的距离,由远及近进行粗略检测。对于一个扇区,取发色区块的下一个(离圆心更近的)区块进行精细分割。
2结合发色模型和发型特征的遮挡检测
发型特征包括:长度、体积、发色等。 对于解决发型遮挡的检测问题,可以利用发色、发际线等特征。本文将发色模型和发型特征进行有机结合,对人脸的面部发型遮挡区域进行检测。
2.1基于人工神经网络的发色模型
2.1.1BP人工神经网络简介
BP神经网络[5]是人工神经网络的一种,它是采用误差反向传播的多层前馈神经网络。其中,3层的BP 网络包括一个输入层、一个隐含层、一个输出层,如图3所示。
图3三层BP神经网路BP神经网络的基本思想是采用信号的正向传播和误差的反向传播。在正向传播中,从输入层传入的数据,依次在各隐含层进行处理,最终到达输出层。如果输出值与期望输出不同,则将输出层的误差作为调整信号进行反向传播,根据误差不断调整权值和阈值,最终得到网络可以接受的精度并输出。
2.1.2发色模型
头发的颜色与皮肤的颜色往往有比较明显的区别,利用发色能够有效提高面部发型遮挡区域检测的正确率。
2.2基于发型特征的扇形分割
给定输入图像和发型区域,以嘴部位置的中心区域为圆心,将嘴部以上的区域以每10°划分为一个扇形,共18个径长不等的扇形(以下简称为扇区),按照逆时针方向记为S1~S18。对任意的扇形区域Si,按照径长平均分为10个区块(以下简称为区块),按照离圆心的距离由远及近依次标记为Si,1~Si,10。
2.2.1粗略检测
形式地,将X={xij:xij∈S}定义为区块S的像素点,用Ix表示一个像素点的颜色向量,Ix=(Rx,Gx,Bx)T;LX=(l1,l2,…,lm)T表示标号向量,其中m表示区块S中的像素点数,并且lx=1表示x属于头发,lx=0表示x属于皮肤。将一个像素是头发的概率表示为P(lx=1),简单地,P(lx=1)=ax,其中,ax是ANN发色模型的输出值。
对于人脸区域的每个扇形,首先对最外层区块(S1,1,S2,1,…,S18,1)进行检测。区块Si,1中的像素点x,将其RGB值作为ANN发色模型的输入,得到输出值ax。当该点的预测为头发概率大于给定阈值时,则认为该像素点属于头发区域。如果区块Si,1中的像素大部分都判定为头发区域时,则认为该区块Si,1属于头发区域,记为预测遮挡块。对所有的扇区,由远及近地进行区块的检测,直到区块不再是预测遮挡块为止。每个扇区中第一个不是预测遮挡块的区块称为精细分割块(以下简称精割块),放到下一步进行图割[6]处理。
2.2.2精细分割
经过2.2.1节中粗略检测得到了若干个精割块,下一步是在此范围内进行精细的分割。采用221中相同的定义,将X={xij:xij∈S}定义为精割块S的像素点,用Ix表示像素点的颜色向量,Ix=(Rx,Gx,Bx)T;LX=(l1,l2,…,lm)T表示标号向量,其中m表示精割块S中的像素点数,并且lx=1表示x属于头发,lx=0表示x属于皮肤。将一个像素是头发的概率表示为P(lx=1)。定义如下能量函数:
E(L)=C(L)+αB(L)(1)
其中,α用以权衡两项的重要性;C(L)表示像素点的预测概率;B(L)是平滑项,用以描述相邻像素标号互异时的惩罚代价。任意精割块S中像素的最终的标号向量L*X,通过使式(1)达到最小值来获得。式(1)中的第一项C(L)定义为:
C(L)=1nx∑x∈Xc(lx)(2)
其中,nx表示精割块S中像素点的数量, c(lx)表示发色模型对像素点x的预测概率。
式(1)中第二项中的B(L)定义为:
其中,np表示像素点p的相邻点的个数,σ表示图像的平均平滑度。式(4)采用8邻域系统,选择像素点的相邻点。由于精割块的形状大小不同,进行了均值化处理。
2.2.3优化
直接对式(1)进行最小化计算,复杂度较高,计算量非常大。本文提出了一种求近似解的计算方法。首先,将精割块S中的像素按照ANN预测的发色程度按照从小到大排列;然后,将区块内所有像素的区块起始标号都置为1,按照发色的概率从小到大排序依次将像素标号置为0;最后,分别计算能量函数的值。选取使能量函数达到最小值时的标号向量作为最优解。
3实验和结果分析
实验数据采集28个人的人脸图像,分为正面、左侧面和右侧面三个姿势,偏转角度在10°~30°之间,发型遮挡包括正面单侧遮挡、正面两侧遮挡、左侧面遮挡、右侧面遮挡、发帘遮挡等类型。人脸图像库包括28人269张发型遮挡图像,每张图像归一化为50×75像素。
将样本数据划分为遮挡与未遮挡两类,并且人工标注所有遮挡样本的发型遮挡区域。测试PCA遮挡检测及本文所提出遮挡检测方法的准确率P、召回率R及Fvalue。Fvalue的定义为2PRP+R。其中,P表示面部遮挡检测的头发区域和人工标注的头发区域一致的像素所占的比例,R表示面部人工标注的头发区域和遮挡检测的头发区域一致的像素所占的比例。对所有实验分别调整参数以达到最优的Fvalue值。下面通过两个试验对比本文方法与PCA检测方法的优劣。
实验1该实验采用数据集中的正面人脸,数据包含109张遮挡人脸图像,实验结果如表1所示。
由表1可以看出,在正面人脸的条件下,PCA检测方法的Fvalue为69%,相应的准确率和召回率分别为63%和76%。本文方法比PCA检测方法的Fvalue提高了20%,准确率和召回率分别提高了27%和12%。实验2该实验采用全部的数据,包含269张不同姿势的遮挡人脸图像,实验结果如表2所示。
由表2可以看出,在不同姿势的人脸条件下,PCA检测方法的Fvalue为57%,相比正面人脸条件下降低了12%,相应的准确率和召回率降低10%左右。而本文方法与正面人脸条件下的Fvalue相比变化不大,说明比PCA检测方法具有更强的鲁棒性。
4结论
发型遮挡对人脸识别具有极大的干扰,如何准确获取遮挡区域是处理遮挡中需要解决的问题。由于各种形状和不同纹理,使得发型遮挡区域检测非常困难 。实验表明,本文提出的方法比PCA遮挡检测方法具有更高的准确率和召回率,验证了该方法的有效性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。