翟社平,李 炀,马蒙雨,高 山
(西安邮电大学 计算机学院,陕西 西安 710121)
基于LBP和SVM的人脸检测
翟社平,李 炀,马蒙雨,高 山
(西安邮电大学 计算机学院,陕西 西安 710121)
人脸检测作为机器视觉研究的重要内容,在视频监控、安防等领域具有广泛的用途,是人脸识别技术的必备条件。针对复杂背景、光照不均匀等外部条件对人脸检测的影响,提出了基于局部二元模式(LBP)和支持向量机(SVM)的人脸检测算法。其中LBP是一种用来描述图像局部纹理特征的算子,具有旋转不变性和灰度不变性等显著的优点,其最主要的属性是对光照变化造成的灰度变化具有很好的鲁棒性。该算法使用LBP提取图像的特征值,并对提取到的LBP特征值使用SVM算法构建的分类器进行分类。实验结果表明,基于LBP和SVM的人脸检测算法具有很好的检测效果,不仅较好地解决了光照和复杂背景等外部条件对人脸检测的影响,而且明显提高了人脸检测的准确率,准确率可达到94%以上。
人脸检测;局部二元模式;支持向量机;特征提取;人脸识别
人脸检测是指对任意的图像,通过一定的算法处理后,判断图像中是否包含人脸,假如人脸存在,则对其位置、大小和姿态进行标注。人脸检测作为视觉领域的一项重要技术,在身份验证、人机交互、智能检测等领域有着广泛的应用。
如何让机器能够检测和识别目标一直是机器视觉领域研究的热点[1]。人脸作为人类身份信息的重要组成部分,具有唯一性、不易复制性等优势,成为身份识别的重要组成部分[2]。现在常用的生物识别技术包括指纹、虹膜、语音及人脸[3]。相对于其他生物识别技术而言,人脸识别的优势为:不会对人产生接触;成本低廉,易于安装;无人工参与;便于事后追踪。
经过国内外科研工作者多年的研究,人脸检测取得了不错的研究成果,但是之前的研究仅仅是在背景简单且光照变化不是特别大的条件下进行的,因此人脸检测算法是人脸识别技术中的热门话题之一。待检测的人脸图像中包含大量的特征信息,针对这些信息,可以将人脸检测方法大致分为四种:
(1)基于模板匹配的方法[4]。该方法通过对人脸信息的提取,得到所有人脸具有的共同点(人脸都包含眼睛、鼻子、耳朵),随后利用这些共同点建立一个人脸模板。在对人脸进行检测时,只需与模板进行相似度比较,根据计算得到的相互关系判定该区域是否有人脸。
(2)基于外观形状的方法。在对人脸和非人脸进行判断时,可以使用机器学习的方法进行分析,并使用分类器对人脸和非人脸的特征进行分类处理[5]。其中比较典型的方法有人工神经元网络[6-7]、SVM和Adaboost算法[8]。
(3)基于特征的方法。由于人脸具有一些不容易改变的特征,这些特征是与生俱来的,比如:眼睛、鼻子及嘴巴的大小和形状,皮肤的颜色等。
(4)基于知识的方法。通过先验知识查找人脸所具有的某些特定的点,并使用这些特定的点去描述人脸具有的特征之间的关系[9]。
基于上述方法,提出将LBP特征算法与SVM算法相结合的方式来进行人脸检测。为了得到人脸的细节信息,将人脸图像进行分块处理,再分别提取每一区域的LBP特征值,并得到直方图特征。对所有图像的直方图特征进行归一化处理,并将这些数据进行分类训练,生成一个具有二分类功能的分类器。将待检测的图像输入分类器,也就是与分类器中的模板进行相似度计算,从而判断该图像中是否存在人脸。因此使用LBP算子提取图像的特征值,对光照具有很强的鲁棒性并且降低了复杂背景对人脸检测的影响。实验结果表明,该方法能够很好地检测人脸,并且提升了检测率。
人脸图像特征的提取可以分成全局特征提取和局部特征提取。最为典型的全局特征提取方法有主成分分析法(PCA)[10]、线性判别分析(LDA)[11]和独立分量分析(ICA)[12]等。全局特征提取对图像进行描述,能较好地保存人脸图像的纹理特征,但是在光照发生变化以及人脸姿态有所改变的情况下,检测效率将大打折扣。对于局部特征的提取方法主要有LBP(Local Binary Pattern)[13]、局部特征分析法(LFA)[14]、Gabor小波[15]等。局部特征提取能够很好地适应光照、表情等外在因素变化对人脸检测的影响,因此人脸识别技术中应用得越来越多。在提取人脸图像的特征值时采用LBP算子,起初为一种纹理描述算子,但由于该算法对于灰度和旋转具有很好的鲁棒性,因此在人脸特征提取方面具有很大的优势[16]。
1.1基本的LBP算子
最初的LBP算子是对整幅图像中的所有像素点,将其本身像素值设置为阈值,进而与其3*3邻域内的所有像素值进行比较。其计算公式如下所示:
i=1,2,…,8
(1)
LBP算子的计算方式如图1所示。
图1 LBP算子原理图
对人脸图像任意取3*3大小的像素区域,将中心像素点作为与周围像素点比较的依据,分别与周围的8个像素值进行比较,大于中心像素值的像素令其为1,反之为0。通过对周围8个像素值的0或1值进行加权求和,得到的值便为中心像素点的像素值。图像中的LBP特征包含了边缘、图像点和局部特征的分布信息。
1.2改进的LBP算子
最初的LBP算子仅仅是固定在特定的邻域范围内,无法满足不同尺寸和频率纹理的需要。而改进的LBP算子[17],将原来的3*3邻域扩展到了任意邻域,也就是像素的邻域大小是可变的,并且将原来的正方形邻域变成了圆形。改进的LBP算子用LBP(P,R)表示,LBP(P,R)解释为在半径为R的圆形区域中的P个像素点与中心像素点进行比较,进而计算中心像素值,如图2所示。
图2 几种LBP算子
在20世纪90年代,提出了基于机器学习的分类算法-SVM(支持向量机),也是近年来非常流行的分类器。其理论基础是结构最小化,利用非线性映射将原始数据投影到高维数据空间,使得非线性数据转换成线性数据,从而能很好地进行分类处理。
最原始的SVM算子用来解决两类样本的线性分类问题。随着对SVM算法的不断改进,SVM算法已经能对非线性样本进行分类。对于非线性分类问题,利用非线性函数φ(x)输入原始数据到空间Rn,进而映射到另外的高维数据空间中,这样将会使得数据具有较高的可分性。
∬K(x,x')φ(x)φ(x')dxdx'>0
(2)
使用合适的核函数K将低维空间映射到高维空间,可以实现非线性分割到线性分割的转化,并且不会增加计算复杂度。此时,变化后的优化目标函数为:
(3)
最终得到的分类函数为:
(4)
二分类SVM算法的流程为:准备待分类数据;选择合适的构造函数;求解二次优化方程;得到支持向量和相应的Lagrange算子;得到最优分类面方程;求解样本所属类别。
核函数为:
(1)线性核函数。
k(x,xi)=x·xi
(5)
(2)多项式核函数。
k(x,xi)=[(x,xi)+1]q
(6)
(3)高斯径向基核函数。
(7)
(4)Sigmod核函数。
k(x,xi)=tanh(v(x·xi)+c)
(8)
采用LBP算子提取图像特征,使用SVM算法训练分类器实现人脸与非人脸的分类,进而实现人脸检测。具体实现步骤如下:
(1)特征值提取。为了更好地保留人脸特征的细节信息,在进行LBP特征值提取之前,要对图像进行分块处理,进而分别提取每一块图像的LBP特征值,然后将所有分块区域的直方图特征连成一个复合型的直方图特征,这样便组成了完整的LBP特征直方图。
(2)数据归一化处理。将LBP特征值进行数据归一化处理,也就是在对训练样本进行训练之前,需要将所有的样本投影到一个特定的范围内,从而消除由于数值类型大小不一所带来的分类不公正性。对训练数据和测试数据进行处理的公式为:
(9)
(3)训练SVM分类器。对于经过归一化处理的LBP特征值,使用SVM算子构建的二分类分类器进行分类训练,生成分类模型。
(4)人脸检测。将待检测的图像输入到分类器进行分类处理。
算法流程如图3所示。
图3 算法流程
4.1人脸数据库
在人脸数据库方面,采用ORL库作为训练数据集,每个人10张照片共400张图片作为训练的正样本,如图4所示。人脸检测中的负样本应该是不存在的人脸的任意其他图像,也就是人脸图像中的背景图像。相对于正样本,负样本所包含的对象应该是除人脸以外的各种各样的图像信息,其数量也应该要比正样本多。为此,在网络下载600张完全不包含人脸的图像作为负样本。
图4 人脸正样本
4.2实验结果分析
使用LBP算子分块提取图像的特征向量,并使用SVM算子训练分类模型。为了验证新算法的正确性,将文中算法与基于OpenCV的Adaboost进行对比,如表1所示。
表1 不同算子检测率
实验结果表明,文中算法在人脸检测正确率方面取得了很好的效果,满足预期目标。图5为在复杂背景和多个人的条件下,人脸检测的实验结果。
图5 复杂背景和多个人条件下的检测结果
采用LBP提取图像的特征向量,使用SVM分类算法进行分类处理,从而实现人脸检测。实验结果表明,该方法对于人脸检测效果十分理想,避免了光照不均匀和复杂背景等外界条件的影响。但该算法还有很多需要改进的地方,由于采用LBP算子提取图像特征,在提取之前要对图像进行分块处理,随着分块数的不断增加,提取到的特征向量的维数随之增加,出现了“维数灾难”,导致算法训练阶段的时间变长,对于此类问题还有待研究。
[1] 左登宇.基于Adaboost算法的人脸检测研究[D].合肥:中国科学技术大学,2009.
[2] 黄 宇.嵌入式多模态生物特征识别系统设计[D].哈尔滨:哈尔滨工程大学,2010.
[3] 陈洪京.几种生物识别方法的比较研究[J].河北省科学院学报,2007,24(4):33-37.
[4] 刘 磊.视频监控系统中的人脸检测技术研究[D].武汉:湖北工业大学,2008.
[5] 沈 谦.基于支持向量机的正面人脸检测研究[D].长沙:湖南大学,2005.
[6] 刘韵婷.基于小波变换与人工神经网络的表面肌电信号分析[D].沈阳:东北大学,2010.
[7] 曹云忠.基于RBF神经网络的人形目标识别[D].成都:西华大学,2005.
[8] 哈林顿.机器学习实战[M].北京:人民邮电出版社,2013:155-165.
[9] 闫 娟.人脸识别技术的分析与展望[J].机电设备,2007(12):1-4.
[10] Turk M,Pentland A.Eigenfaces for recognition[J].Journal of Cognitive Neuroscience,1991,3(1):71-86.
[11] Etenmad K,Chellappa R.Discriminant analysis for recognition of human face image[J].Journal of the Optical Society of America A,1997,14(8):1724-1733.
[12] Barlett M S,Movellan J R,Sejnowski T J.Face recognition by independent component analysis[J].IEEE Transactions on Neural Networks,2002,13(6):1450-1464.
[13] Ojala T,Pietikainen M,Harwood D.A comparative study of texture measures with classification based on feature distributions[J].Pattern Recognition,1996,29(1):51-59.
[14] Penev P S,Atick J J.Local feature analysis:a general statistical theory for object representation[J].Network Computation in Neural Systems,1996,7(3):477-500.
[15] Daugman J G.Uncertainty relation for resolution in space,spatial frequency,and orientation optimized by two-dimensional visual cortical filters[J].Journal of the Optical Society of America A,1985,2(7):1160-1169.
[16] 黄非非.基于LBP的人脸识别研究[D].重庆:重庆大学,2009.
[17] Shawe-Taylor J,Cristianini N.Kernel methods for pattern analysis[M].Cambridge:Cambridge University Press,2004.
Face Detection Based on LBP and SVM
ZHAI She-ping,LI Yang,MA Meng-yu,GAO Shan
(School of Computer Science and Technology,Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
As an important content of machine vision research,face detection is widely used in video surveillance,security and other fields,which is a prerequisite for face recognition technology.A face detection algorithm based on Local Binary Pattern (LBP) and Support Vector Machine (SVM) is proposed to deal with the effects of complex background and illumination heterogeneity on face detection.LBP is a kind of operator which is used to describe the local texture features of images with the advantages of rotation invariance and gray-scale invariance and its main property is that it is robust to the change of gray-scale.The algorithm uses LBP to extract the eigenvalues of the image which is classified by the classifier built by SVM algorithm.Experimental results show that it has a good detection effect,not only solving the impact of illumination and complex background and other external conditions on the face detection,and significantly improving the accuracy of face detection.The accuracy rate can reach more than 94%.
face detection;LBP;SVM;feature extraction;face recognition
2016-07-28
:2016-11-10 < class="emphasis_bold">网络出版时间
时间:2017-07-11
陕西省自然基金面上项目(2012JM8044);陕西省教育厅项目(12JK0733);陕西省社科基(2016N008)
翟社平(1971-),男,副教授,博士,研究方向为嵌入式系统、语义Web;李 炀(1990-),男,硕士,研究方向为嵌入式系统设计。
http://kns.cnki.net/kcms/detail/61.1450.tp.20170711.1454.026.html
TP391.41
:A
:1673-629X(2017)09-0044-04
10.3969/j.issn.1673-629X.2017.09.010