翟社平,李 煬,馬蒙雨,高 山
(西安郵電大學 計算機學院,陜西 西安 710121)
基于LBP和SVM的人臉檢測
翟社平,李 煬,馬蒙雨,高 山
(西安郵電大學 計算機學院,陜西 西安 710121)
人臉檢測作為機器視覺研究的重要內(nèi)容,在視頻監(jiān)控、安防等領(lǐng)域具有廣泛的用途,是人臉識別技術(shù)的必備條件。針對復雜背景、光照不均勻等外部條件對人臉檢測的影響,提出了基于局部二元模式(LBP)和支持向量機(SVM)的人臉檢測算法。其中LBP是一種用來描述圖像局部紋理特征的算子,具有旋轉(zhuǎn)不變性和灰度不變性等顯著的優(yōu)點,其最主要的屬性是對光照變化造成的灰度變化具有很好的魯棒性。該算法使用LBP提取圖像的特征值,并對提取到的LBP特征值使用SVM算法構(gòu)建的分類器進行分類。實驗結(jié)果表明,基于LBP和SVM的人臉檢測算法具有很好的檢測效果,不僅較好地解決了光照和復雜背景等外部條件對人臉檢測的影響,而且明顯提高了人臉檢測的準確率,準確率可達到94%以上。
人臉檢測;局部二元模式;支持向量機;特征提取;人臉識別
人臉檢測是指對任意的圖像,通過一定的算法處理后,判斷圖像中是否包含人臉,假如人臉存在,則對其位置、大小和姿態(tài)進行標注。人臉檢測作為視覺領(lǐng)域的一項重要技術(shù),在身份驗證、人機交互、智能檢測等領(lǐng)域有著廣泛的應用。
如何讓機器能夠檢測和識別目標一直是機器視覺領(lǐng)域研究的熱點[1]。人臉作為人類身份信息的重要組成部分,具有唯一性、不易復制性等優(yōu)勢,成為身份識別的重要組成部分[2]?,F(xiàn)在常用的生物識別技術(shù)包括指紋、虹膜、語音及人臉[3]。相對于其他生物識別技術(shù)而言,人臉識別的優(yōu)勢為:不會對人產(chǎn)生接觸;成本低廉,易于安裝;無人工參與;便于事后追蹤。
經(jīng)過國內(nèi)外科研工作者多年的研究,人臉檢測取得了不錯的研究成果,但是之前的研究僅僅是在背景簡單且光照變化不是特別大的條件下進行的,因此人臉檢測算法是人臉識別技術(shù)中的熱門話題之一。待檢測的人臉圖像中包含大量的特征信息,針對這些信息,可以將人臉檢測方法大致分為四種:
(1)基于模板匹配的方法[4]。該方法通過對人臉信息的提取,得到所有人臉具有的共同點(人臉都包含眼睛、鼻子、耳朵),隨后利用這些共同點建立一個人臉模板。在對人臉進行檢測時,只需與模板進行相似度比較,根據(jù)計算得到的相互關(guān)系判定該區(qū)域是否有人臉。
(2)基于外觀形狀的方法。在對人臉和非人臉進行判斷時,可以使用機器學習的方法進行分析,并使用分類器對人臉和非人臉的特征進行分類處理[5]。其中比較典型的方法有人工神經(jīng)元網(wǎng)絡(luò)[6-7]、SVM和Adaboost算法[8]。
(3)基于特征的方法。由于人臉具有一些不容易改變的特征,這些特征是與生俱來的,比如:眼睛、鼻子及嘴巴的大小和形狀,皮膚的顏色等。
(4)基于知識的方法。通過先驗知識查找人臉所具有的某些特定的點,并使用這些特定的點去描述人臉具有的特征之間的關(guān)系[9]。
基于上述方法,提出將LBP特征算法與SVM算法相結(jié)合的方式來進行人臉檢測。為了得到人臉的細節(jié)信息,將人臉圖像進行分塊處理,再分別提取每一區(qū)域的LBP特征值,并得到直方圖特征。對所有圖像的直方圖特征進行歸一化處理,并將這些數(shù)據(jù)進行分類訓練,生成一個具有二分類功能的分類器。將待檢測的圖像輸入分類器,也就是與分類器中的模板進行相似度計算,從而判斷該圖像中是否存在人臉。因此使用LBP算子提取圖像的特征值,對光照具有很強的魯棒性并且降低了復雜背景對人臉檢測的影響。實驗結(jié)果表明,該方法能夠很好地檢測人臉,并且提升了檢測率。
人臉圖像特征的提取可以分成全局特征提取和局部特征提取。最為典型的全局特征提取方法有主成分分析法(PCA)[10]、線性判別分析(LDA)[11]和獨立分量分析(ICA)[12]等。全局特征提取對圖像進行描述,能較好地保存人臉圖像的紋理特征,但是在光照發(fā)生變化以及人臉姿態(tài)有所改變的情況下,檢測效率將大打折扣。對于局部特征的提取方法主要有LBP(Local Binary Pattern)[13]、局部特征分析法(LFA)[14]、Gabor小波[15]等。局部特征提取能夠很好地適應光照、表情等外在因素變化對人臉檢測的影響,因此人臉識別技術(shù)中應用得越來越多。在提取人臉圖像的特征值時采用LBP算子,起初為一種紋理描述算子,但由于該算法對于灰度和旋轉(zhuǎn)具有很好的魯棒性,因此在人臉特征提取方面具有很大的優(yōu)勢[16]。
1.1基本的LBP算子
最初的LBP算子是對整幅圖像中的所有像素點,將其本身像素值設(shè)置為閾值,進而與其3*3鄰域內(nèi)的所有像素值進行比較。其計算公式如下所示:
i=1,2,…,8
(1)
LBP算子的計算方式如圖1所示。
圖1 LBP算子原理圖
對人臉圖像任意取3*3大小的像素區(qū)域,將中心像素點作為與周圍像素點比較的依據(jù),分別與周圍的8個像素值進行比較,大于中心像素值的像素令其為1,反之為0。通過對周圍8個像素值的0或1值進行加權(quán)求和,得到的值便為中心像素點的像素值。圖像中的LBP特征包含了邊緣、圖像點和局部特征的分布信息。
1.2改進的LBP算子
最初的LBP算子僅僅是固定在特定的鄰域范圍內(nèi),無法滿足不同尺寸和頻率紋理的需要。而改進的LBP算子[17],將原來的3*3鄰域擴展到了任意鄰域,也就是像素的鄰域大小是可變的,并且將原來的正方形鄰域變成了圓形。改進的LBP算子用LBP(P,R)表示,LBP(P,R)解釋為在半徑為R的圓形區(qū)域中的P個像素點與中心像素點進行比較,進而計算中心像素值,如圖2所示。
圖2 幾種LBP算子
在20世紀90年代,提出了基于機器學習的分類算法-SVM(支持向量機),也是近年來非常流行的分類器。其理論基礎(chǔ)是結(jié)構(gòu)最小化,利用非線性映射將原始數(shù)據(jù)投影到高維數(shù)據(jù)空間,使得非線性數(shù)據(jù)轉(zhuǎn)換成線性數(shù)據(jù),從而能很好地進行分類處理。
最原始的SVM算子用來解決兩類樣本的線性分類問題。隨著對SVM算法的不斷改進,SVM算法已經(jīng)能對非線性樣本進行分類。對于非線性分類問題,利用非線性函數(shù)φ(x)輸入原始數(shù)據(jù)到空間Rn,進而映射到另外的高維數(shù)據(jù)空間中,這樣將會使得數(shù)據(jù)具有較高的可分性。
?K(x,x')φ(x)φ(x')dxdx'>0
(2)
使用合適的核函數(shù)K將低維空間映射到高維空間,可以實現(xiàn)非線性分割到線性分割的轉(zhuǎn)化,并且不會增加計算復雜度。此時,變化后的優(yōu)化目標函數(shù)為:
(3)
最終得到的分類函數(shù)為:
(4)
二分類SVM算法的流程為:準備待分類數(shù)據(jù);選擇合適的構(gòu)造函數(shù);求解二次優(yōu)化方程;得到支持向量和相應的Lagrange算子;得到最優(yōu)分類面方程;求解樣本所屬類別。
核函數(shù)為:
(1)線性核函數(shù)。
k(x,xi)=x·xi
(5)
(2)多項式核函數(shù)。
k(x,xi)=[(x,xi)+1]q
(6)
(3)高斯徑向基核函數(shù)。
(7)
(4)Sigmod核函數(shù)。
k(x,xi)=tanh(v(x·xi)+c)
(8)
采用LBP算子提取圖像特征,使用SVM算法訓練分類器實現(xiàn)人臉與非人臉的分類,進而實現(xiàn)人臉檢測。具體實現(xiàn)步驟如下:
(1)特征值提取。為了更好地保留人臉特征的細節(jié)信息,在進行LBP特征值提取之前,要對圖像進行分塊處理,進而分別提取每一塊圖像的LBP特征值,然后將所有分塊區(qū)域的直方圖特征連成一個復合型的直方圖特征,這樣便組成了完整的LBP特征直方圖。
(2)數(shù)據(jù)歸一化處理。將LBP特征值進行數(shù)據(jù)歸一化處理,也就是在對訓練樣本進行訓練之前,需要將所有的樣本投影到一個特定的范圍內(nèi),從而消除由于數(shù)值類型大小不一所帶來的分類不公正性。對訓練數(shù)據(jù)和測試數(shù)據(jù)進行處理的公式為:
(9)
(3)訓練SVM分類器。對于經(jīng)過歸一化處理的LBP特征值,使用SVM算子構(gòu)建的二分類分類器進行分類訓練,生成分類模型。
(4)人臉檢測。將待檢測的圖像輸入到分類器進行分類處理。
算法流程如圖3所示。
圖3 算法流程
4.1人臉數(shù)據(jù)庫
在人臉數(shù)據(jù)庫方面,采用ORL庫作為訓練數(shù)據(jù)集,每個人10張照片共400張圖片作為訓練的正樣本,如圖4所示。人臉檢測中的負樣本應該是不存在的人臉的任意其他圖像,也就是人臉圖像中的背景圖像。相對于正樣本,負樣本所包含的對象應該是除人臉以外的各種各樣的圖像信息,其數(shù)量也應該要比正樣本多。為此,在網(wǎng)絡(luò)下載600張完全不包含人臉的圖像作為負樣本。
圖4 人臉正樣本
4.2實驗結(jié)果分析
使用LBP算子分塊提取圖像的特征向量,并使用SVM算子訓練分類模型。為了驗證新算法的正確性,將文中算法與基于OpenCV的Adaboost進行對比,如表1所示。
表1 不同算子檢測率
實驗結(jié)果表明,文中算法在人臉檢測正確率方面取得了很好的效果,滿足預期目標。圖5為在復雜背景和多個人的條件下,人臉檢測的實驗結(jié)果。
圖5 復雜背景和多個人條件下的檢測結(jié)果
采用LBP提取圖像的特征向量,使用SVM分類算法進行分類處理,從而實現(xiàn)人臉檢測。實驗結(jié)果表明,該方法對于人臉檢測效果十分理想,避免了光照不均勻和復雜背景等外界條件的影響。但該算法還有很多需要改進的地方,由于采用LBP算子提取圖像特征,在提取之前要對圖像進行分塊處理,隨著分塊數(shù)的不斷增加,提取到的特征向量的維數(shù)隨之增加,出現(xiàn)了“維數(shù)災難”,導致算法訓練階段的時間變長,對于此類問題還有待研究。
[1] 左登宇.基于Adaboost算法的人臉檢測研究[D].合肥:中國科學技術(shù)大學,2009.
[2] 黃 宇.嵌入式多模態(tài)生物特征識別系統(tǒng)設(shè)計[D].哈爾濱:哈爾濱工程大學,2010.
[3] 陳洪京.幾種生物識別方法的比較研究[J].河北省科學院學報,2007,24(4):33-37.
[4] 劉 磊.視頻監(jiān)控系統(tǒng)中的人臉檢測技術(shù)研究[D].武漢:湖北工業(yè)大學,2008.
[5] 沈 謙.基于支持向量機的正面人臉檢測研究[D].長沙:湖南大學,2005.
[6] 劉韻婷.基于小波變換與人工神經(jīng)網(wǎng)絡(luò)的表面肌電信號分析[D].沈陽:東北大學,2010.
[7] 曹云忠.基于RBF神經(jīng)網(wǎng)絡(luò)的人形目標識別[D].成都:西華大學,2005.
[8] 哈林頓.機器學習實戰(zhàn)[M].北京:人民郵電出版社,2013:155-165.
[9] 閆 娟.人臉識別技術(shù)的分析與展望[J].機電設(shè)備,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">網(wǎng)絡(luò)出版時間
時間:2017-07-11
陜西省自然基金面上項目(2012JM8044);陜西省教育廳項目(12JK0733);陜西省社科基(2016N008)
翟社平(1971-),男,副教授,博士,研究方向為嵌入式系統(tǒng)、語義Web;李 煬(1990-),男,碩士,研究方向為嵌入式系統(tǒng)設(shè)計。
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