王洋 鄭佳春
摘 要:為了在視頻流中準(zhǔn)確檢測到人臉,文中基于OpenCV設(shè)計(jì)了一個(gè)人臉檢測系統(tǒng)。使用Haar和LBP兩種算子提取特征,通過AdaBoost算法構(gòu)造級(jí)聯(lián)分類器,檢測出人臉區(qū)域。通過計(jì)算機(jī)仿真驗(yàn)證,發(fā)現(xiàn)采用LBP算子提取特征的正面檢測率更高,達(dá)90%以上,且檢測時(shí)間更短,平均檢測時(shí)間降低1個(gè)數(shù)量級(jí),取得了較好的效果。該模塊可移植性強(qiáng),可擴(kuò)展,為后續(xù)研究打下了良好的基礎(chǔ)。
關(guān)鍵詞:視頻流;特征提?。痪植慷的J?;人臉檢測
中圖分類號(hào):TP39;U644.8 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)03-00-03
0 引 言
隨著計(jì)算機(jī)技術(shù)和數(shù)字成像技術(shù)的進(jìn)步,機(jī)器視覺技術(shù)蓬勃發(fā)展。人臉識(shí)別一直是計(jì)算機(jī)視覺和人工智能中的重要問題。人臉識(shí)別技術(shù)因無需與用戶進(jìn)行肢體接觸,使用簡單、安全,經(jīng)過幾十年的研究和發(fā)展,已成為一項(xiàng)熱門的研究課題,受到越來越多研究者的重視。該技術(shù)可廣泛應(yīng)用于公共場所人口統(tǒng)計(jì)及視頻監(jiān)控,安全駕駛提醒,門禁管理系統(tǒng)等相關(guān)領(lǐng)域。因此找到一個(gè)高效明了的算子提取特征描述人臉和分類器至關(guān)重要。研究者為此提出了主成分分析法 (PCA)[1]、線性判別式分析(LDA)[2]等全局描述方法和Haar[3]特征與LBP[4]特征等局部描述的特征等。局部特征在不同的光照及姿態(tài)和復(fù)雜環(huán)境下,具有較強(qiáng)的魯棒性,得到了廣泛應(yīng)用。本文利用Visual Studio 2013和開源計(jì)算機(jī)視覺平臺(tái)OpenCV搭建了一個(gè)人臉識(shí)別模塊,利用Haar和LBP兩種算子提取特征,進(jìn)行視頻流的人臉識(shí)別。該模塊搭建方便,可移植性強(qiáng),在Windows,Android和iOS系統(tǒng)上均可實(shí)現(xiàn)。
1 人臉識(shí)別模塊
1.1 Haar特征
Haar特征是以圖像灰度分布為基礎(chǔ)并反映圖像灰度值變化的一種特征,主要是由黑白矩陣像素組合而成的不同模板,包含邊緣特征、線性特征、中心環(huán)繞特征。人的面部有很多特征,比如眼睛顏色比周圍皮膚顏色深,嘴唇顏色比周圍皮膚顏色深等。對于一個(gè)24×24的圖片來說,面部特征多達(dá)9萬余個(gè),也正是因?yàn)檫@一特點(diǎn)導(dǎo)致訓(xùn)練時(shí)間過長。面部特征可由Haar特征表示,定義左上角為白色區(qū)域,以此交錯(cuò)。該模板的特征值是白色填充區(qū)域的像素值之和與黑色填充區(qū)域的像素值之和的差值[5]?;谌四樚卣鞯腍aar特征如圖1所示。
1.2 積分圖
使用積分圖可以實(shí)現(xiàn)上述黑色和白色特征數(shù)值的計(jì)算,大大提高了圖像特征值的計(jì)算效率。積分圖[6]是一種能夠描述全局信息的矩陣表示方法,示意圖如圖2所示。用公式表示為:
1.3 LBP特征
LBP[7,8]是一種描述圖像紋理特征的算子,具有灰度不變性、旋轉(zhuǎn)不變性和統(tǒng)一模式等優(yōu)點(diǎn)。Ojala最早提出了LBP算子,將其用于局部紋理特征描述。
假設(shè)局部鄰域的紋理圖像T是圖像像素灰度值P(P>1)的聯(lián)合分布,T=t(gc,g0,…,gp-1),gc表示中心點(diǎn)像素的灰度值,gp (p=0,…,p1)是半徑為R的圓上對稱點(diǎn)的灰度值。gc是坐標(biāo)原點(diǎn), gp坐標(biāo)分布在(-Rsin(2πp/P), Rcos(2πp/P))的圓上,通過雙線性插值得到坐標(biāo)不是整數(shù)點(diǎn)的坐標(biāo)。
LBP特征值表示為,2p代表對應(yīng)位置上的權(quán)重。如圖4所示,在3×3窗口中通過二值化閾值分割,得到該點(diǎn)的二進(jìn)制模式為00111010,對應(yīng)的十進(jìn)制為58,中心對比度為4。對于中心對比度,如果數(shù)值小于某一個(gè)值c,可認(rèn)為該區(qū)域是平坦區(qū),沒有需要的特征,不提取該點(diǎn)的特征;反之,如果該點(diǎn)的對比度很高,則說明該點(diǎn)可能是邊緣或者角點(diǎn)特征。得益于其二進(jìn)制模式,計(jì)算機(jī)接受較快。
聯(lián)合分布T=t(gc,g0-gc,g1-gc,…,gp-1-gc)。假設(shè)gp-gc和gc是相互獨(dú)立的,T≈t(gc)t(g0-gc,g1-gc,…,gp-1-gc)。所有像素點(diǎn)加上或者減去同一個(gè)常量,紋理特性不會(huì)發(fā)生改變。紋理特征在灰度(光照)范圍內(nèi)具有平移不變性。對于一個(gè)平坦區(qū)域,區(qū)域內(nèi)所有方向上的差異為0。對于變化較小的邊緣,算子計(jì)算出各方向上的最大差異和邊緣上的零值。對于一個(gè)點(diǎn),各方向上的差異都很大。簡而言之,LBP算子反映出了點(diǎn)、線、邊緣上的特征。通過二值化處理得到T≈t(s(g0-gc),s(g1-gc),…,s(gp-1-gc)),其中。
以3×3窗口8個(gè)采樣點(diǎn)為例,采用LBP等價(jià)模式(即0和1轉(zhuǎn)換的次數(shù))后,u=0或u=2,一共有7×8+2+1=59種,極大地減少了計(jì)算量,且不受圖像旋轉(zhuǎn)的影響,對圖像的點(diǎn)、線、邊緣及角點(diǎn)特征也能較好地表達(dá)出來,并起到了降維的作用。3×3鄰域LBP統(tǒng)一模式示意圖如圖5所示,LBP特征示意如圖6所示。
1.4 級(jí)聯(lián)分類器
AdaBoost算法是一種自適應(yīng)算法,是機(jī)器視覺和數(shù)據(jù)挖掘領(lǐng)域的十大算法之一[9,10]。采用AdaBoost算法訓(xùn)練的目的在于挑選出最優(yōu)分類器。
不同的面部特征代表不同的分類器,即弱分類器,分類效果稍好(大于0.5)。將M個(gè)正樣本(人臉)和N個(gè)負(fù)樣本(非人臉)區(qū)分標(biāo)記,初始化正樣本的權(quán)重w1和負(fù)樣本的權(quán)重w2。訓(xùn)練時(shí),歸一化所有樣本權(quán)重wi,通過迭代,根據(jù)每個(gè)特征的表現(xiàn),選出計(jì)算錯(cuò)誤率εi最小的分類器。訓(xùn)練過程中分類結(jié)果錯(cuò)誤的分類器被賦予更高的權(quán)值。在多次迭代中,多個(gè)弱分類器組合為強(qiáng)分類器。通過多次迭代,錯(cuò)誤率呈指數(shù)下降的趨勢。多個(gè)強(qiáng)分類器級(jí)聯(lián)成為新的分類器,即級(jí)聯(lián)分類器。級(jí)聯(lián)分類器逐級(jí)復(fù)雜。前幾層的分類器能夠區(qū)分出大部分的人臉和非人臉,越往后強(qiáng)分類器越復(fù)雜,包含更多的弱分類器,檢測精度也更高,訓(xùn)練時(shí)間更長。全部通過每一個(gè)分類器檢測的區(qū)域就是我們尋找的人臉區(qū)域。
利用OpenCV提供的工具opencv_createsamples.exe和opencv_traincascade.exe生成XML文件,就是我們需要的級(jí)聯(lián)分類器。遍歷圖像將人臉和背景區(qū)分開來。
2 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)采用的正樣本:FERET數(shù)據(jù)庫800張圖片、AR_database數(shù)據(jù)庫700張人臉圖片、ORL數(shù)據(jù)庫400張圖片、CelebA的部分?jǐn)?shù)據(jù)庫855張人臉圖片,對樣本剪裁,保留人臉部分。同時(shí)選取非人臉的圖片作為負(fù)樣本,長度和寬度保持1∶1。選擇Haar和LBP兩種特征分別訓(xùn)練,為了減少訓(xùn)練時(shí)間,提高精確度,將圖片歸一化為24×24。
具體過程:首先加載XML,如果分類器不能讀取,則顯示錯(cuò)誤。如果讀取到分類器,則打開攝像頭,讀取一幀圖像,并將讀取的圖像變?yōu)榛叶葓D像,之后通過對灰度圖像進(jìn)行歸一化計(jì)算,將光照對圖像的影響減少到最小,然后做均衡化處理,增強(qiáng)圖像的對比度,如果檢測到面部區(qū)域,則將其標(biāo)注顯示出來。
為保證程序的可移植性,采用C++。本實(shí)驗(yàn)在Intel(R) Core(TM)i7-4790 CPU @3.60GHz,RAM 8G的PC上進(jìn)行,普通攝像頭每秒30幀,每幀分辨率為640×480。選取6個(gè)實(shí)驗(yàn)人員,每人檢測5次,得到表1所列實(shí)驗(yàn)結(jié)果。
同時(shí)采用CelebA人臉數(shù)據(jù)庫進(jìn)行檢測。CelebA數(shù)據(jù)集是一個(gè)大型面部屬性數(shù)據(jù)集,擁有超過20萬張的名人圖像,每張圖片具有40個(gè)屬性注釋。它具有豐富的面部表情和背景。從中選擇100張正面圖片,分別用兩種特征進(jìn)行檢測,檢測效果見表2所列。
實(shí)驗(yàn)結(jié)果分析:Haar特征算子的浮點(diǎn)運(yùn)算導(dǎo)致計(jì)算復(fù)雜,而LBP特征算子的二值化容易實(shí)現(xiàn),運(yùn)算簡單。對于同一個(gè)目標(biāo),LBP算子檢測速度比Haar特征快很多。因?yàn)楸尘昂凸饩€等因素干擾,利用攝像頭識(shí)別會(huì)對檢測效果造成較大干擾。Haar特征訓(xùn)練出來的分類器要區(qū)分被檢測物體和背景,在檢測塊狀目標(biāo)時(shí)效果更好,用于邊緣檢測則稍遜一籌。同時(shí)該系統(tǒng)還可以進(jìn)行視頻監(jiān)控,對mp4和AVI格式視頻中的人臉進(jìn)行檢測。對于超過30°的側(cè)臉,會(huì)有誤檢和漏檢的情況出現(xiàn)。實(shí)驗(yàn)結(jié)果如圖7所示。
3 結(jié) 語
本文基于開源的計(jì)算機(jī)視覺庫OpenCV,利用LBP和Haar兩種算子提取特征,對測試人員、照片及視頻流人臉進(jìn)行檢測。統(tǒng)計(jì)結(jié)果表明,相較于傳統(tǒng)的Haar特征,LBP特征算子正面識(shí)別率達(dá)90%以上,檢測時(shí)間更短,平均檢測時(shí)間不到1 s。該系統(tǒng)搭建簡單,成本低,可移植性強(qiáng),在PC機(jī)和移動(dòng)終端都可運(yùn)行,也可擴(kuò)展到很多領(lǐng)域,為后續(xù)研究打下了堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn)
[1]李康順,李凱,張文生.一種基于改進(jìn) BP 神經(jīng)網(wǎng)絡(luò)的 PCA人臉識(shí)別算法[J].計(jì)算機(jī)應(yīng)用與軟件,2014, 31(1):158-159.
[2]鐘偉,黃元亮,郝真真,等.基于粒子群算法的LDA實(shí)現(xiàn)方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(1):39-43.
[3]陳葉飛,蘇劍波.非學(xué)習(xí)模式下的類Haar特征快速人眼定位[J].控制理論與應(yīng)用,2016,33(4):479-485.
[4]任艷.基于關(guān)鍵點(diǎn)LBP特征提取的面部AU組合識(shí)別[J].信息化研究,2012,38(2):44-46.
[5]陳志恒,姜明新.基于OpenCV 的人臉檢測系統(tǒng)的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(10):182-185.
[6]黃文杰,陳斌.一種快速圖像處理的積分方法[J].計(jì)算機(jī)應(yīng)用,2005,25(S1):266-268.
[7]周書仁,殷建平.基于Haar特性的LBP紋理特征[J].軟件學(xué)報(bào),2013(8):1909-1926.
[8]寧星.基于LBP的人臉識(shí)別研究[D].撫州:東華理工大學(xué),2012.
[9] TANG Yi, LIU Weiming, WEI Wujian. An improved pedestrian detection algorithm based on adaBoost cascading stucture [C]. IEEE proceeding of the 8th world congress on intelligent control and automation. China Jinan 2010:6322-6323.
[10] ZHOU Z H, YANG Y, KUMAR V,et al. The top ten algorithms in data mining [M].New York,USA:CRC Press, 2009:127-149.