朱天星 黃世震



摘 要:目前,高智能化的人臉識別系統(tǒng)一般都是基于PC平臺,系統(tǒng)復(fù)雜集成度高,需要優(yōu)異的軟硬件支持。嵌入式技術(shù)的應(yīng)用,有利于提高人臉識別系統(tǒng)的靈活性與有效性。本文針對傳統(tǒng)的人臉識別算法提出一種改進(jìn)的LBP算法用于人臉識別。實驗結(jié)果表明:該算法在ORL、Yale及自建的人臉庫上也能進(jìn)行人臉識別。
關(guān)鍵詞:人臉識別;基于分塊加權(quán)的LBP算法;Adaboost檢測算法
中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2018)08-0010-03
Application of LBP Algorithm Based on Block Weighting in Face Recognition
ZHU Tianxing HUANG Shizhen
(College of physics and Information Engineering, Fuzhou University,F(xiàn)uzhou Fujian 350108)
Abstract: At present, the highly intelligent face recognition system is generally based on the PC platform. The system is highly complex and requires excellent hardware and software support. The application of embedded technology is conducive to improving the flexibility and effectiveness of face recognition system. In this paper, we proposed an improved LBP algorithm for face recognition based on the traditional face recognition algorithm. Experimental results showed that the algorithm could recognize faces in ORL, Yale and self built face database.
Keywords: face recognition;LBP algorithm based on block weighting;Adaboost detection algorithm
目前,人臉識別在智能化領(lǐng)域使用范圍較廣,被廣泛應(yīng)用于安全防范領(lǐng)域、身份確認(rèn)領(lǐng)域、家政服務(wù)領(lǐng)域、圖像檢索領(lǐng)域和人機(jī)交互領(lǐng)域等。現(xiàn)如今,一般高智能化的識別系統(tǒng)都是在PC機(jī)上實現(xiàn)的,需要選取的設(shè)備成本比較高,不利于大范圍應(yīng)用,制約了市場推廣[1]。針對該問題,本文提出基于分塊加權(quán)融合的LBP算法。本文以Adaboost算法為基礎(chǔ)研究人臉檢測算法,然后研究OpenCV中使用局部加權(quán)融合的LBPH算法,最后以Ubuntu為PC的開發(fā)環(huán)境,ARM為運行平臺,OpenCV中的算法為主體處理算法進(jìn)行嵌入式人臉識別系統(tǒng)的開發(fā),最終設(shè)計出能在嵌入式平臺中運行的人臉識別系統(tǒng)。
1 人臉識別原理
總的來說,人臉識別系統(tǒng)可以分為兩大部分(如圖1所示):左側(cè)的訓(xùn)練部分和右側(cè)的識別部分。訓(xùn)練部分主要包括人臉庫選取或者自建,采集圖像并進(jìn)行預(yù)處理,人臉檢測定位,對檢測出的人臉進(jìn)行進(jìn)一步預(yù)處理,處理完后提取圖像特征,將提取后的人臉放入特征庫。而識別階段就是重新采集需要的人臉進(jìn)行定位檢測,預(yù)處理后提取相關(guān)特征,并與之前特征庫的人臉信息進(jìn)行匹配,從而檢測識別采集的人的信息。
2 算法研究
2.1 Adaboost檢測算法
Adaboost算法是一種迭代算法,其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強(qiáng)的最終分類器(強(qiáng)分類器)。弱分類器的公式定義為:
[hjx=1 pjfj式(1)中的[hjx]表示弱分類器的結(jié)果,1表示結(jié)果為人臉,0表示結(jié)果不是人臉;[θj]表示弱分類器的閾值;[fj]表示特征值;[pj]表示不等號的方向。
①假設(shè)有n張人臉圖像,其中訓(xùn)練的數(shù)據(jù)集表示為[x1,y1,x2,y2,…,xn,yn],數(shù)據(jù)集中的[xii=1,2,…,n]表示為樣本組的一張人臉圖片,[yii=1,2,…,n]表示[w1,i=12m]對應(yīng)的樣本輸出結(jié)果。由于該過程是在進(jìn)行人臉檢測,所以對應(yīng)的[yi]只有兩個結(jié)果,是人臉或者不是人臉,即1或者0。
②首先需要將對應(yīng)的權(quán)值進(jìn)行初始化,即[w1,i=12m]和[12l],其中[m]和[l]分別表示樣本中正確識別人臉的個數(shù)和錯誤識別的個數(shù)。
③多次迭代,for t=1,[…],T。
第一,根據(jù)步驟②的方法,歸一化權(quán)值[wt,i]:
[wt,i=wt,ij=1nwt,j i=0,1,…,n] (2)
式(2)中t表示樣本需要迭代的次數(shù),i表示樣本迭代到達(dá)的位置。
第二,選取單個特征j來訓(xùn)練對應(yīng)的弱分類器hj,計算使用該弱分類器對應(yīng)的權(quán)值wt的錯誤率。
[εj=imwihjxi-yi] (3)
第三,計算[εj]使其最小,得到對應(yīng)的分類器[hj]。
第四,然后迭代,更新新的權(quán)值,計算公式如式(4)所示:
[wi+1,i=wt,iβt x正確分類wt,i x未正確分類] (4)
式(4)中,
④通過上述的推導(dǎo),最終得到的強(qiáng)分類器:
[hx=1 t=1Tlog1β1htx≥12t=1Tlog1βt0 其他] (5)
2.2 LBP算法
LBP算法[4]的基本原理是:首先需要將LBP算子放在需要處理的人臉灰度圖中。其中,算子中心點的像素可以作為其閾值,并與其他像素點進(jìn)行對比,大于等于閾值的像素點標(biāo)記為1,小于閾值的像素點標(biāo)記為0。如圖2所示。
原始的LBP算子提出后,人們進(jìn)行了各種優(yōu)化及改進(jìn),其中圓形的LBP算子使用(P,R)表示鄰域的參數(shù)情況,其中P表示鄰域中像素的個數(shù),而R通常是鄰域中的圓形半徑。
圖3是不同P、R值的領(lǐng)域像素分布圖。突破原始LBP描述子的一些紋理特征和區(qū)域結(jié)果的限制,對其進(jìn)行一定改進(jìn),將原始的3×3擴(kuò)展到任意鄰域,并把以前的正方形鄰域換成圓形鄰域。
如圖3所示,假設(shè)其中中點有N個,那么其像素對應(yīng)的LBP值的范圍為0~2n-1。假設(shè)PC為圓形鄰域中心點的像素值,對應(yīng)鄰域中其他點的像素值為P1,…,Pn,則PC的LBP值如公式(6)所示。
[LBPpc=i=1nsP1-Pi*2i-1] (6)
LBP描述子對光照具有一定的魯棒性,但并不是旋轉(zhuǎn)不變的。圖像旋轉(zhuǎn)時,PC的鄰域是會發(fā)生變化的,而這個變化則會直接改變PC的LBP的值,進(jìn)而影響LBP描述子對人臉識別的貢獻(xiàn)。
為了克服圖像旋轉(zhuǎn)對LBP描述子的影響,筆者提出了旋轉(zhuǎn)不變的LBP算子。其基本思想是:如果不斷地旋轉(zhuǎn)圖像,就會得到一組初始的LBP值,然后選取其中的最小值作為這個鄰域的LBP值。計算公式如式(7)所示:
[LBPriP,R=minRORLBPriP,R,ii=0,…,P-1] (7)
式(7)中,[LBPriP,R]表示的是半徑為[R]時,鄰域含有[P]個點旋轉(zhuǎn)不變的LBP的值,ROR(x,i)為旋轉(zhuǎn)函數(shù),其表示對P位二進(jìn)制數(shù)x向右循環(huán)移位i次。
在旋轉(zhuǎn)不變的LBP計算過程中,首先需要對原先的鄰域旋轉(zhuǎn)P-1次,加上原先的鄰域模型,可以得出P個LBP值,從這其中選取最小的作為該鄰域的LBP值。
3 識別過程
3.1 人臉檢測與圖像預(yù)處理
視頻采集是基于V4L,對采集的圖像進(jìn)行預(yù)處理、人臉檢測、特征提取,其流程如圖4所示。
圖4中,檢測人臉過程中,需要對人臉進(jìn)行校準(zhǔn)旋轉(zhuǎn),含有眼鏡和不含有眼鏡檢測的結(jié)果如圖5所示。
人臉預(yù)處理涉及灰度化、均衡化、雙邊濾波,根據(jù)人眼位置對人臉進(jìn)行裁剪后再次預(yù)處理,提取特征值,其處理圖如圖6所示。
3.2 人臉識別
本嵌入式系統(tǒng)設(shè)計將圖像分成88=64小方塊進(jìn)行單獨處理,即單張圖片包含64塊,而對應(yīng)的每塊中含有28個數(shù)據(jù),即最后的整張圖總的直方圖向量含28 64=16 384個值。LBP分塊加權(quán)直方圖如圖7至圖9所示。
3.3 測試結(jié)果
系統(tǒng)先進(jìn)行信息采集,當(dāng)對采集后的圖像進(jìn)行預(yù)處理并完成訓(xùn)練后,就會存入特征庫進(jìn)行下一步識別。采集界面如圖10所示,識別結(jié)果如圖11所示。
4 結(jié)論
本文提出局部加權(quán)與整體集合的LBP算法進(jìn)行人臉識別并移植到ARM平臺。經(jīng)過測試,時間延遲良好。系統(tǒng)穩(wěn)定后,最低延遲達(dá)到28.53ms左右,且在ORL、Yale及自建的庫上能進(jìn)行人臉識別。
參考文獻(xiàn):
[1]駱超.低功耗嵌入式實時人臉識別系統(tǒng)[D].上海:上海交通大學(xué),2013.