王鴻雁, 孟祥印, 趙 陽, 陶 濤
(西南交通大學 機械工程學院,四川 成都 610031)
基于Adaboost和PCA的嵌入式人臉識別方法*
王鴻雁, 孟祥印, 趙 陽, 陶 濤
(西南交通大學 機械工程學院,四川 成都 610031)
針對傳統(tǒng)的Adaboost算法和主成分分析(PCA)算法用于人臉識別時在環(huán)境與姿態(tài)等非約束性條件下識別率大大降低以及要求訓練樣本符合高斯分布的缺陷,提出了一種融合Adaboost和PCA的與或關聯(lián)決策方法。一方面,在需要安防模式時開啟或決策,拒絕近似全部負樣本的請求,最大限度保證識別的正確率;另一方面,在需要訪客模式時開啟與決策,以減少正樣本的丟失。在Samsung 2440嵌入式Linux平臺上采用該方法進行人臉檢測時,基于2種決策方法,分別滿足各自閾值。實驗結果表明:該方法在嵌入式平臺運行穩(wěn)定,適合推廣于智能家居控制與樓宇自動化控制。
Adaboost; 主成分分析;人臉檢測
人臉識別一直是人工智能領域研究的熱點,在計算機應用、數(shù)學、自動化、圖像識別與處理等方向都有廣泛研究,同時在航空航天、刑事偵查、機場檢查、小區(qū)物業(yè)、消費電子等領域也有重要的價值。人臉識別算法經(jīng)過多年的研究與實踐,在簡單環(huán)境上已經(jīng)能夠取得較好的效果。但由于人臉識別過程中采集的數(shù)據(jù)量大,需要較大的存儲空間和較強的處理能力,因此,目前大多數(shù)人臉識別系統(tǒng)均基于PC構架[1]。已廣泛應用的人臉識別門禁系統(tǒng)、考勤系統(tǒng)等也是使用可便攜移動的前端視覺圖像采集系統(tǒng),傳輸圖像到后端,由PC端服務器完成人臉識別過程,但這種方法依賴于后端,受限于網(wǎng)絡,不屬于完全嵌入式人臉識別系統(tǒng)。
板級嵌入式人臉識別系統(tǒng)雖然能夠實現(xiàn)簡單的人臉識別,但受限于處理器能力和視頻采集環(huán)境,依然不能與PC級系統(tǒng)相提并論,并且在單獨采用Adaboost算法和主成分分析(principal component analysis,PCA)算法時的識別率并不理想。基于此,本文提出了融合Adaboost和PCA的與或關聯(lián)決策的方法,方法能夠在2種不同模式下分別處理2種算法結果,在不同環(huán)境模式時加以決策。環(huán)境模式分2種:訪客模式與安防模式。訪客模式能最大限度限制對正確樣本(即存在人臉)的過濾,安防模式能最大限度限制對錯誤樣本(即不存在人臉)的通過。
人臉識別過程分為2個階段:訓練階段和識別階段。
如圖1所示,訓練過程的識別階段是基于人的臉部特征,對系統(tǒng)輸入的圖像 ,首先判斷該圖像中是否存在人臉 , 如果存在人臉,則進一步給出臉的位置、大小和各主要面部器官位置等信息[2]。并依據(jù)這些信息,進一步提取每個人臉中所蘊涵的身份特征,將其特征提取為特征臉,并存放于庫中。當需要進行人臉識別時,將獲取圖像進行定位、預處理、特征提取等過程,與庫中的已存特征人臉進行對比,從而識別每個人臉的身份。其識別原理如圖1所示。
圖1 人臉識別原理
2.1 Adaboost算法
2.1.1 類Haar特征
AdaBoost算法的實現(xiàn),采用的是輸入圖像的矩形特征,即類Haar特征。類Haar特征反映了圖像的局部灰度化。如圖2所示,每個特征由2個或3個矩形區(qū)域組成,用以檢測邊界特征、細線特征、中心特征等[3]。Haar特征值由白色矩形像素和乘以白色矩形權值,加上黑色矩形像素之和乘以黑色矩形權值,如下式所示
(1)
式中 n為矩形的個數(shù);wi為矩形的權值;rect(si)為矩形ri所圍成區(qū)域的灰度積分。白色區(qū)域權值為正,黑色區(qū)域權值為負。
圖2 Haar特征分類圖
2.1.2 Adaboost訓練強分類器
對于每一個弱的分類器,實際上就是在數(shù)量龐大的特征中選取一個特征,然后利用這個特征區(qū)分人臉與非人臉,以達到錯誤率最低[4]
(2)
式中 f為訓練特征;θ為訓練閾值;p為指示不等號的方向;x為一個檢測子窗口。
經(jīng)過T次迭代后,獲得T個最佳弱分類器h1x,…,hTx,將這些最優(yōu)弱分類器進行疊加,形成一個強分類器
(3)
式中 T為強分類器中的最優(yōu)弱分類器的數(shù)目
(4)
式中 εt為第T個弱分類器的錯誤率。
2.1.3 篩選式級聯(lián)
類Haar特征的特點為其在檢測時與檢測窗口大小無關。在檢測的最初,檢測窗口和樣本大小一致,按照一定的尺度參數(shù)進行移動,對檢測窗口放大以實現(xiàn)對檢測圖像的遍歷,當檢測窗口超過原圖像的50 %以后,即停止遍歷。然后處理檢測到的重疊人臉區(qū)域,進行合并操作。
2.2PCA算法
PCA算法是一種常用的基于變量協(xié)方差矩陣對信息進行處理的方法,它的基礎是Karhunen-Loeve(KL)[5]。該方法主要抽取人臉的主成分特征以構成特征臉空間,識別過程時將測試圖像投影到此空間得到一組投影系數(shù),然后通過對各人臉圖像的比較進行人臉識別。PCA算法識別過程:
1)假設訓練集有m類樣本,每類樣本有n個圖像,這樣,每個樣本大小為m×n維。將樣本集矩陣化
X=[x11,x12,…,xij]T
(5)
式中i∈{1,2,…,m},j∈{1,2,…,n}。
2)訓練樣本圖片的平均臉
(6)
3)計算每一張臉與平均臉的差值
dij=xij-μ
(7)
式中i∈{1,2,…,m},j∈{1,2,…,n}。
4)構建協(xié)方差矩陣
(8)
式中A=[d11,d12,…,dij]。
5)采用奇異值分解定理(SVD)獲取AAT的特征值和特征向量以構造特征空間,然后根據(jù)特征值的貢獻率選取前P個最大特征值和最大特征向量。貢獻率為選取特征值的和與所有特征值和的比
(9)
式中 a一般選取0.99。
求出之前協(xié)方差矩陣的特征向量
(10)
特征臉空間為
W=[μ1,μ2,…,μp]
(11)
通過
y=WTx
(12)
將原始的m×n維數(shù)據(jù)轉為p維的數(shù)據(jù)。
6)通過式(12)的步驟,將每個訓練樣本對應一個特征向量,即
yij=WTxij
(13)
再利用余弦分類器
(14)
如果滿足
d(yij,y)=max{d(yij,y)}
(15)
式中i∈{1,2,…,m},j∈{1,2,…,n},則X與Xij同類。
2.3 與或關聯(lián)決策方法
傳統(tǒng)Adaboost算法和PCA算法在低樣本率時識別率保持在0.4~0.8之間,且需要大量的運算與樣本訓練。將算法融合到嵌入式系統(tǒng)中時識別率更低且不便于操作。在嵌入式人臉識別開發(fā)過程中,提出了一種基于2種算法的與或關聯(lián)決策方法,并提出了2種工作模式以對應2種決策方法:會客模式和安防模式。
會客模式: 在滿足與關聯(lián)決策時,最大限度減少正樣本丟失。舉例來說,當房間內(nèi)有人時,系統(tǒng)需要識別訪客,此時盡量讓更多可能重要的人進入房間,以免錯過重要訪客。安防模式:在滿足或關聯(lián)決策時,最大限度減少負樣本丟失。舉例來說:當房間內(nèi)無人時,盡量保證進入房間內(nèi)的人準確無誤的存在于樣本中。與或關聯(lián)決策理論在實際生活中存在眾多應用,算法的融合也最大限度地保證系統(tǒng)準確運行。其實現(xiàn)過程軟件流程圖如圖3所示。
圖3 系統(tǒng)軟件流程
經(jīng)過Matlab和OpenCV的聯(lián)合仿真,在單獨使用Adaboost算法時,隨著樣本數(shù)量的增加,識別準確率保持在0.4~0.8之間,使用PCA算法時,其準確率與Adaboost算法相當。融合2種算法后,準確率明顯提高。即使在低樣本率的情況下,也能達到0.7以上??紤]到嵌入式設備的性能和使用環(huán)境,使用混合算法對結果的影響明顯。
圖4 不同算法對比
3.1 總體構架
選擇使用Samsung2440芯片的嵌入式平臺,具有低功耗,高性能的優(yōu)點。以嵌入式Linux作為操作系統(tǒng),具有多任務并行處理的能力。在選擇Samsung2440作嵌入式平臺開發(fā)人臉識別系統(tǒng)時,視頻采集部分采用Linux下的V412接口,攝像頭設備文件在根文件系統(tǒng)/dev目錄下的Video0中。視頻處理部分采用OpenCV視覺庫實現(xiàn)算法[6]。系統(tǒng)硬件結構圖如圖5所示。
圖5 系統(tǒng)硬件結構
3.2 識別過程
人臉檢測階段:搜索視頻接口采集的一副圖像,尋找人臉區(qū)域,對人臉圖像進行灰度化處理、邊緣捕捉、直方圖均衡化等處理,以增加圖像對比度。然后將圖像加入訓練集,使用不同算法對圖像進行處理,生成數(shù)據(jù)庫文件。圖6所示為人臉圖像處理階段部分截圖。
人臉識別階段:系統(tǒng)上電后,打開攝像頭,系統(tǒng)進入識別狀態(tài)。攝像頭獲取1幀數(shù)據(jù)后將采集到的圖片顯示在嵌入式設備屏幕上,同時采用2種算法分別對圖像進行處理,將處理后得到的人臉圖像與數(shù)據(jù)庫中訓練好的人臉進行對比,從而判定是否對應此人。根據(jù)設定模式的不同,權衡不同算法結果,給出與或邏輯結果。若識別成功且滿足設定條件后,打開對應的繼電器;若識別未成功,圖片閃爍3s,退出系統(tǒng)[7]。
圖6 圖像處理過程
3.3 系統(tǒng)測試
系統(tǒng)對2種模式均進行了10次測試,當設定為安防模式時,系統(tǒng)識別成功5次,當設置為訪客模式時,系統(tǒng)識別成功9次。故該系統(tǒng)及決策方法滿足設定要求。圖7左圖為嵌入式人臉識別總體系統(tǒng),右圖為嵌入式設備上屏幕顯示圖像。
圖7 訓練與識別系統(tǒng)
采用2種算法的與或關聯(lián)決策方法,在實際使用中有重要的應用。提出基于Samsung2440嵌入式平臺的人臉識別方法,充分利用了Adaboost和PCA算法的優(yōu)勢,訓練成本低、識別速度快、識別率高。
在Samsung2440嵌入式平臺上開發(fā)人臉識別系統(tǒng),充分利用了硬件系統(tǒng)的性能,搭建小型化的人臉識別系統(tǒng)為未來智能家居、物聯(lián)網(wǎng)、安防系統(tǒng)提供了模塊化的解決方案,可廣泛應用于需要身份認證的物聯(lián)網(wǎng)等系統(tǒng)中[8]。
[1] 趙 宏,梁喜軍,楊玉東,等.嵌入式人臉識別系統(tǒng)的開發(fā)[J].長安大學學報:自然科學版,2015(S1):293-297.
[2]LiuS.AnovelfacedetectionalgorithmbasedonPCAandadaboost[C]∥SixthInternationalConferenceonMeasuringTechno-logyandMechatronicsAutomation,2014:641-649.
[3] 孔令釗,唐文靜.基于PCA的人臉識別系統(tǒng)的研究與實現(xiàn)[J].計算機仿真,2012(6):27-29.
[4] 楊本娟,黎小平.基于核主成分分析的圖像模糊篡改檢測算法[J].傳感器與微系統(tǒng),2015,34(11):137-139.
[5]XiaoJ,GaoG,HuC,etal.Anovelframeworkforfastembeddedfacedetectionsystem[C]∥InternationalConferenceonASIC,IEEE,2007:32-35.
[6]YangM,CrenshawJ,AugustineB,etal.Adaboost-basedfacedetectionforembeddedsystems[J].ComputerVision&ImageUnderstanding,2010,114(11):1116-1125.
[7] 劉耀庭.基于ARM9的人臉識別門禁系統(tǒng)設計[D].南京:南京航空航天大學,2011.
[8] 沈千里,陳 曉,支亞京,等.一種新的人臉圖像去噪算法[J].傳感器與微系統(tǒng),2015,34(11):133-136.
孟祥印,男,博士,副教授,主要從事嵌入式系統(tǒng)開發(fā),網(wǎng)絡控制系統(tǒng)工作。
Research and implementation of embedded face recognition based on Adaboost and PCA*
WANG Hong-yan, MENG Xiang-yin, ZHAO Yang, TAO Tao
(School of Mechanical Engineering,Southwest Jiaotong University,Chengdu 610031,China)
Aiming at defects of traditional Adaboost algorithm and principal component analysis(PCA) algorithm for face recognition in environment and pose and other nonbinding condition recognition rate is greatly reduced and the requirements of training samples in accordance with the Gauss distribution,a fusion of Adaboost and PCA and or related decision-making method is proposed.On the one hand,when the security mode is needed,the request of the whole negative sample is rejected,and the correct rate of recognition is guaranteed.On the other hand,face recognition in the need to open the visitor mode and decision-making,to reduce the loss of positive samples.On Sumsung 2440 embedded Linux platform,using the method of face detection,based on two decision-making methods,respectively meet the respective threshold.Experimental results show that the method works on embedded platform stably,suitable for promotion in intelligent home control and building automation and control.
Adaboost; principal component analysis(PCA);face detection
2016—06—12
四川省科技支撐計劃資助項目(2016GZ0194)
10.13873/J.1000—9787(2017)06—0059—04
TP 274
A
1000—9787(2017)06—0059—04
王鴻雁(1991-),男,碩士,研究方向為嵌入式與智能控制,E—mail:946227679@qq.com。