人脸检测技术综述
游清清+谌海云+骆俊+王小怡
摘 要:人脸检测是人脸识别的组成部分。近年来,人脸检测逐渐发展成为独立的课题,同时也越来越受到学者们的重视。文章对人脸检测的发展历史和研究现状等进行了阐述,通过整理分析人脸检测相关文献,并对人脸检测进行了分类,对比了各个方法的优缺点,最后讨论了人脸检测今后的研究方向。
关键词:人脸检测;人脸识别;模式识别;机器学习
1 人脸检测概述
随着计算机网络技术的发展,模式识别与计算机视觉受到专家学者们的广泛关注。其中人脸识别也逐渐成了近年来各领域的研究热点,人脸检测作为人脸识别的基础,在人脸识别中占非常重要的地位。
人脸检测问题起源于人脸识别。与人脸识别有着密不可分的联系,是人脸识别中非常重要且具有挑战性的环节,其主要内容是检测人脸图像中是否存在人脸。人脸检测对于人来说非常简单,但是对于机器来说却相当复杂。对于机器检测人脸时,其主要目标就是在低计算量的前提下保证高的准确率。
目前影响人脸检测效果的主要因素有:(1)人脸姿态。相机成像时的位置会影响人脸图像的面部姿态,可能会导致双眼不在水平的一条直线上。(2)遮盖物。对于单个人脸图像来说,可能被遮盖物遮挡;而对于多人脸图像来说,人脸图像可能相互遮挡或者被其他背景所遮挡。(3)光照强度。拍摄人脸图像时的光照强度不同将使得人脸图像的灰度分布不均匀,造成局部对比度大,从而影响人脸检测的效果。(4)面部表情。人的面部表情将直接影响人脸检测效果。因此如何克服这些因素,成为目前研究的重点。
2 常见的人脸检测方法
人脸检测是人脸识别的第一步,是指在输入图像中确定所有人脸(如果存在)的位置、大小和姿态的过程。根据特征的色彩性质可以将其分为基于肤色特征方法和基于灰度特征的方法[1]。文章将人脸检测算法分为基于知识的方法、基于特征的方法和基于表象的方法。
2.1 基于知识的方法
基于知识的方法主要是利用各个人脸器官之间的几何关系等先验知识对人脸特征进行描述,提取人脸特征,然后将其转化为人脸规则,采用此规则对待检测的人脸图像进行人脸检测[2]。该方法的主要难点在于:(1)如何将人类语言转化为明确清晰的人脸检测规则;(2)对于不同姿态的人脸,该方法检测效果将会大大下降。
1994年Yang等[3]利用先验知识提出了一种由粗到精的检测方法,即基于马赛克图(Mosaic Image)的人脸检测方法。该方法利用4×4马赛克图将人脸分块, 并根据每块的灰度值制定3层规则。
Zhan等[4]提出了一种基于知识的人眼检测方法。使用直方图阈值技术粗略估计面部候选区域,然后利用眼睛在面部的结构位置提取眼部候选区域,最后在眼部候选区域利用先验知识的方法对眼部进行检测。
姜军等[5]为了提高人脸检测的速度,提出了一种基于知识的快速人脸检测方法。该方法利用人脸的灰度和梯度信息检测人脸,由粗检测、多尺度空间遍历搜索和候选区域归并等3个模块构成。适合于复杂背景下多人、不同尺度、表情变化不大的人脸检测情况,大大提高地人脸检测的速度。
Kouzani等[6]将神经网络与基于知识的方法结合起来,该方法使用5个前向反馈神经网络检测并提取嘴、眼、鼻、脸部的候选区域,然后根据脸部的先验知识,分析所提取的候选区域,确定是否为人脸区域。
2.2 基于特征的方法
基于特征的方法利用面部的肤色特征、几何特征及纹理特征等对人脸进行检测。其中肤色特征是一个非常显著的特征,同时经研究发现,(1)不同人种的人脸肤色在颜色空间中都分布在一个相对比较稳定的区域中。(2)亮度是影响肤色值变换的最主要因素。经常使用的颜色空间有RGB(三色基)、rgb(亮度归一化三色基)、HSI(色调、饱和度、亮度)、YCrCb。人脸的几何特征主要是指人面部器官之间的几何关系,根据面部的几何特征和形状来分割人脸区域和非人脸区域。基于特征的方法对光照和姿态比较敏感,从而影响检测效果。
Mollah等[7]经过研究发现在RGB色彩空间中,不同肤色的人脸区域中的R值>G值>B值,而在Haar-like特征中的非人脸区域的R,G,B值是不满足这个条件的。因此他们将肤色特征与Haar-like特征结合起来,提出一种改进的基于特征的人脸检测方法。
Rahman等[8]将RGB图像转换到YCrCb颜色空间中,然后构建眼睛和嘴巴之间的三角关系,以此来检测人脸。Kalbkhani等[9]将肤色特征用于人眼检测当中。他们提出了使用具有预定长度和宽度的矩形在搜索区域中进行移动,计算每个移动矩形内的白色像素,人的面部区域为白色像素数量最大的矩形区域。
Hu等[10]经过研究发现,对于肤色区域和非肤色区域来说,它们的Cb值分布在一定的范围之内,而Cr的值是不同的。于是提出单独采用YCrCb颜色空间中的Cr值来对人脸进行检测。
Cai等[11]采用模糊匹配方法的方法建立肤色和发色模型。根据人脸位姿的不同构建了“肤色—发色”模型,并且定义了相应的隶属度函数及规则,对待检测区域进行搜索。
Mohanty等[12]将人脸的灰度特征和肤色特征结合起来,在复杂背景下,结合Adaboost算法对人脸进行检测。该方法提高了在复杂背景下图像的检测速度,同时还降低了計算复杂度,并且不受姿态与照明发生变化的影响。Mohamed等人[13]在肤色特征的基础上采用DCT-神经网络对人脸进行检测。
Augusteijn等[14]通过识别面部纹理来推测人脸的存在,提取皮肤、头发等特征,建立SGLD(二阶统计特征)模型,使用神经网络对纹理特征进行监督分类,并且使用Kohonen自组织特征图对不同纹理类别进行聚类。Dai等[15]将肤色特征与面部纹理特征结合,使用SGLD模型进行面部检测。
2.3 基于表象的方法
基于表象的方法也可以称为基于统计的方法,主要依靠统计分析和机器学习技术找到人脸和非人脸图像的相关特征。
该方法将人脸图像视为随机向量,分为训练集和测试集两部分。通过训练集得到人脸和非人脸的相关特征集,得到人脸特征库,利用所得到的人脸特征库对测试集进行检测,判别出人脸区域和非人脸区域。基于表象的方法包括基于子空间(Eigenface)的方法、基于神经网络(NN)的方法、基于支持向量机(SVM)的方法、基于Adaboost的方法等。
(1)基于子空间的方法。
基于子空间的方法主要有主成分分析法(PCA)、独立成分分析法(ICA)和线性判别法(LDA)等。
PCA法实际就是K-L变换,其目的是去除人脸图像之前的相关性,减少数据冗余,降低图像维度,使得数据在低维空间中处理。Matthew和Alex[16]对人脸训练集进行K-L变换,得到人脸特征集,称为特征向量(又称为特征脸)。
Moghaddam等[17]将人脸投影在特征空间的处理中发现,人脸在特征脸空间的投影都聚集在同一个区域,因此将人脸投影到主元子空间F和与其正交的补空间中,然后使用相应的距离度量DIFS(Distance In Feature Space)和DFFS(Distance From Feature Space)来进行检测。
Gottumukkal和Asari[18]为了能从视频中实时检测出人脸,提出将肤色特征与PCA方法结合的人脸检测方法。由于PCA方法在图像矩阵降维时会使得增大向量的维数,导致计算量过大。Yang等人[19]提出了2D-PCA方法。2D-PCA方法在PCA方法的基礎上分别在行和列上进行PCA变换,求得在行和列的总体散度矩阵ωr和ωc,然后得到图像的特征矩阵Y。
PCA法只考虑了图像数据中的低阶统计信息,并未考虑高阶统计信息,这会使得在特征提取的时候丢掉很多有用的信息。针对这点,佩律等[20]提出了基于独立成分分量的方法(ICA)来检测人脸。认为人脸图像是由一组互相独立的图像线性叠加而成,用ICA求得这组基图像,构造了一个子空间,根据待识别图像在这个空间里的投影系数进行识别。
线性判别法(LDA)是一种较为普遍的线性分类方法。但是会出现小样本问题和维数问题。为了解决小样本问题,学者提出了很多方法。Alakkari等[21]发现最小非零特征值对应的特征脸在检测人脸图像时是非常有效的,同时还发现将该特征脸与LDA方法结合在一起检测效果比单独使用LDA方法更好。
Yang[22]将自组织映射(SOM)与线性判别方法(LDA)结合在一起。首先使用自组织映射(SOM)将人脸和非脸样本各分为25类,然后计算各类的类间离散度与类内离散度,利用两者的比值求出投影矩阵。
(2)基于神经网络的方法。
神经网络属于机器学习方法中的一种,具有自学习能力,在进行人脸检测时,只需要先把许多不同的图像样本输入人工神经网络,网络就会通过自学习能力,慢慢学会检测人脸图像。
在神经网络检测人脸的发展过程中,Rowley等人[23]提出的采用局部连接的神经网络检测方法具有里程碑的意义。他们将待检测区域划分为多个矩形的子区域,以便更好地描述不同尺度的人脸特征,每个区域都对应一个神经网络隐含单元。
周敬利等[24]针对彩色图像中的人脸,提出了一种基于BP神经网络的人脸检测算法,该方法分为网络训练和人脸定位两部分,可以很好地运用在多人脸不同尺寸、不同姿态、不同表情、不同肤色及不同光照条件等情况。
陈泽宇和戚飞虎[25]将肤色信息的不同颜色分量通过多级神经网络级联起来,采用亮度分量和色度分量作为级联神经网络的分类特征,有效地提高了人脸检测的正确率和检测速度。
(3)基于支持向量机(SVM)的方法。
支持向量机(SVM)方法是一种基于统计学习理论的模式识别算法[26]。SVM方法最早由Boser、Guyon等人提出,Osuna将该方法用于人脸检测当中,其检测速度跟之前相比,提高了近30倍。该方法对每一个具有一定像素的检测窗口使用SVM方法进行分类,用以区分人脸区域和非人脸区域。但是SVM方法的训练需要对复杂度极高的二次规划问题求解,会导致计算量过大,训练困难等。
Heiseley等[27]在SVM法基础上进行改进,提出使用两级SVM方法检测人脸。根据一些预定义的特征点,从训练集中提取人脸和非人脸最有区别的多个局部区域。检测时,根据多个简单的线性SVM分别检测各个人脸特征区域。
(4)基于Adaboost的方法。
为了同时保证检测率和检测速度,Viola和Jones[28]提出了一种将Haar-like特征、Adaboost算法和Cascade级联结构结合在一起的算法,称作Viola-Jones检测算法,也称作基于Adaboost的方法。该方法先使用Haar-like特征对人脸进行描述,计算特征数值,然后使用Adaboost算法通过大量的正、负样本集训获得人脸检测的强分类器,最后将所有的强分类器分段级联起来。
传统的Adaboost方法在进行人脸检测时常常容易出现漏检情况,同时在检测人脸时需要计算所有样本的特征数值,这样导致了检测时间过长的问题。针对这个问题Zhang等人[29]对人脸区域和非人脸区域设置不同的权重,使得可以单独处理人脸区域和非人脸区域,以此缩减了检测时间。
Ma等[30]在传统的Adaboost的基础上,利用面部器官之间的几何关系形成4种Haar-like特征,对人脸进行检测。该方法较之传统的Adaboost方法,大大缩减了检测时间。
3 结语
文章对人脸检测的发展历史及研究现状进行了阐述,总结了近年来人脸检测技术。基于知识的方法适合在单一背景下使用。基于特征的人脸检测方法应用广泛,在简单背景下检测率极高,但是基于肤色特征的人脸检测方法对光照和复杂背景特别敏感,对色度的要求也特别高;基于几何特征的方法利用面部器官之间的几何关系和形状对人脸进行检测,该方法适用于简单背景下的正面人脸检测,但是在有遮盖物或复杂背景情况下,其检测效果将大大下降。因此常常将肤色特征与几何特征结合起来对人脸进行检测。
基于表象的方法主要包含了子空間法、基于神经网络的方法、基于支持向量机的方法和基于Adaboost的方法等。子空间法主要是将待检测人脸投影在一个指定的空间,根据指定空间中的分布划分规律来对人脸区域和非人脸区域进行划分。基于支持向量机的方法比基于神经网络的方法更具有优良的泛化性能,但是神经网络可以获得其他方法难以实现的人脸图像的规则,同时避免了提取复杂特征。基于Adaboost的方法是目前人脸检测使用最普遍、效果最好的方法,但是由于该方法需要大量的时间进行训练,其检测速度还有待解决。
随着计算机视觉与人工智能的发展,人脸检测的研究还在继续,如何准确快速地检测复杂背景下的动态多姿态人脸,是目前研究的热点和重点,当然现在也不断有新方法涌现,总之人脸检测技术将会随着人脸识别技术一起蓬勃发展。
[参考文献]
[1]梁路宏,艾海舟.人脸检测研究综述[J].计算机学报,2002(5):449-458.
[2]孙宁,邹采荣,赵力.人脸检测综述[C].北京:中国通信学会通信理论与信号处理专业委员会通信理论与信号处理年会,2006:101-108.
[3]YANG M H,KRIEGMAN D J,AHUJA N. Detecting faces in images:a survey[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2002(1):34-58.
[4]ZHANG L,LENDER P. Knowledge based eye detection for human face detection[J]. International Conference Knowledge-based Intelligent Engineering Systems & Allied Technologies,2000(1):117-120.
[5]姜军,张桂林.一种基于知识的快速人脸检测方法[J].中国图象图形学报,2002(1):6-10.
[6]KOUZANI A Z,HE F,SAMMUT K. Commonsense knowledge-based face detection[J].1997:215-220.
[7]MOLLAH M A S,AKASH M A A,AHMED M,et al. Improvement of haar feature based face detection incorporating human skin color analysis[J].Paris:International Conference on Medical Engineering,2017.
[8]RAHMAN M H,AFRIN J. Human face detection in color images with complex background using triangular approach[J].Global Journal of Computer Science and Technology,2013(4):44-50.
[9]KALBKHANI H,SHAYESTEH M G,MOHSEN M S. Efficient algorithms for face detection of face, eye and eye state[J].LET Computer Vision,2013(3):184-200.
[10]HU X,PENG S,YAN J,et al. Fast face detection based on skin color segmentation using single Chrominance Cr[C].QU?BEC:International Congress on Image & Signal Processing,2015:687-692.
[11]CAI J,GOSHTASBY A,YU C. Detecting human faces in color images[C]. Chicago:Image and Vision Computing,1999(1):63-75.
[12]MOHANTY R,RAGHUNADH MV. A new approach to face detection based on YCgCr color model and improved adaBoost algorithm[C].Noida, Uttar Pradesh:International Conference on Communication & Signal Processing,2016(4):1392-1396.
[13]MOHAMED A S S,WENG Y,IPSON S S,et al. Face detection based on skin color in image by neural networks[C]. Delft:International Conference on Intelligent & Advanced Systems,2007:779-783.
[14]AUGUSTEIJN M F,SKUFCA T L. Identification of human faces through texture—based feature recognition and neural network technology[C]. San Francisco:IEEE International Conference on Neural Networks,1993.
[15]DAI Y,NAKANO Y. Face-texture model based on SGLD and its application in face detection in a color scene[J]. Pattern Recognition,1996(6):1007-1017.
[16]MATTHEW T,ALEX P. Eigenfaces for recognition[J].Journal of Cognitive Neuroscience,1991(13):71-86.
[17]MOGHADDAM B,PENTLAND A. Probabilistic visual learning for object representation[J].IEEE Computer Society,1997(7):696-710.
[18]GOTTUMUKKAL R,ASARI V K. Real time face detection from color video stream based on PCA method[J]. Applied Imagery Pattern Recognition Workshop,2003:146-150.
[19]YANG J,ZHANG D,FRANGI A F,et al. Two-dimensional PCA:a new approach to appearance-based face representation and recognition[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2004(1):131-137.
[20]佩律,梅剑锋.基于独立分量分析的人脸自动识别方法的研究[J].红外与毫米波学报,2001(20):361-364.
[21]ALAKKARI S,GATH E,COLLINS J J. An investigation into the use of subspace methods for face detection[C].Montreal:International Joint Coference on Neural Networks,2005(5):1-7.
[22]YANG M H. Mixtures of linear subspaces for face detection[J].Proc Fourth Automatic Face and Gesture Recognition,2000:70-76.
[23]ROWLEY H,BALUJA S,KANADE T. Neural Network-based face detection[C].Ann Arbor:Conference on Computer Vision & Pattern Recognition,1998(1):203-208.
[24]周敬利,吳桂林.基于BP神经网络的人脸检测算法[J].计算机工程,2004(30):34-36.
[25]陈泽宇,戚飞虎.基于级联神经网络的人脸检测方法的研究[J].红外与毫米波学报,2000(19):57-61.
[26]杨珣.基于神经网络的人脸检测研究[D].青岛:青岛大学,2006.
[27]HEISELEY B,SERRE T,PONTIL M,et al. Component-based Face Detection[C]. Kauai, Hawaii:IEEE Computer Society Conference on Computer Vision & Pattern Recognition,2001(1):1657-1662.
[28]VIOLA P,JONES M. Rapid object detection using a boosted cascade of simple features[C]. Kauai, Hawaii:IEEE Computer Society Conference on Computer Vision & Pattern Recognition,2001(1):1511-1518.
[29]ZHANG X Q,DING J. An improved adaboost face detection algorithm based on different sample weights[C]. Wellington:IEEE International Conference on Computer Supported Cooperative Work in Design,2016:436-439.
[30]MA S,BAI L. A face detection algorithm based on adaboost and new Haar-Like feature[C].Beijing:IEEE International Coference on Software Engineeering & Service Science,2017:651-653.