張吉富,劉書剛
(華北電力大學,河北 保定 071003)
在新興的信息安全應用領域,人臉識別技術提供了一種更為安全可靠易用的身份鑒別手段,提升了整個網絡信息系統(tǒng)的安全性能。同時,人臉識別技術在傳統(tǒng)的安防領域可以便捷地與原有技術實現緊密的結合,大大提升了原有系統(tǒng)的智能化程度、安全性及易用性,拓展了原有系統(tǒng)的應用領域。隨著科學技術的發(fā)展及各種技術手段的綜合應用,人臉識別技術會在越來越多的領域發(fā)揮更重要的作用。
人臉識別技術是基于人的臉部特征,對輸入的人臉圖像或者視頻流(截取視頻),先判斷其是否存在人臉,若存在人臉,則進一步地給出每個臉的位置、大小和各個主要面部器官的位置信息。并依據這些信息,進一步提取每個人臉中所蘊涵的身份特征,并將其與已知的人臉進行對比,從而識別每個人臉的身份。
人臉識別技術是將原始數據經過降維后,投影到不同的空間中,然后根據特征向量在空間中的距離比較結果來識別不同的樣本。系統(tǒng)采用Fisherface方法,它是PCA方法和FLD方法的結合,具有很高的識別率和效率[3]。
基于Fisher 準則的線性判別分析[5]是特征抽取的最有效的方法,其目標是從高維特征空間中提取出最具有判斷力的低維特征,這些特征能使同一類別的樣本聚集在一起,不同類別的樣本盡量分開,即選擇使得樣本類間離散度和樣本類內離散度比值最大的特征。設有c個模式類,樣本的類內散布矩陣為Sw,類間散布矩陣為Sb,可分別表示為公式(1)和公式(2)。
Fisher 準則函數定義為式(3)。
Fisher 準則函數將類間離散度和類內離散度巧妙地結合在一起,取極大化目標函數J(W)的矩陣Wfld作為投影方向。
雖然Fisher 線性判別能夠很好地對樣本進行分類,但是Sw常常是個奇異矩陣,或者接近奇異,這會造成很大的計算誤差,因此又提出了Fisherface方法[1,2]。
Fisherface是結合PCA和FLD(Fisher 線性判別)的一種方法。在Fisher 線性判別方法中,利用式(1)和式(2)分別得到Sw和Sb。
對于純粹的FLD用式(4)計算Wopt。
設Wpca為PCA 得到的Φt,通過式(5)計算得到Wfld。
進而通過式(6)得Wopt。
將Wopt作為新的投影矩陣,并利用Wopt對原始數據進行變換,原始數據為一列向量R,通過Wopt乘以R 即可得到特征向量,即為對應于每個人的特征數據,同該人的其他信息(如名字等)一起存儲在人臉數據庫中備用。
構建的系統(tǒng)從功能上劃分主要由五部分組成,如圖1所示。包括:人臉數據庫、嵌入式ARM 處理器、圖像采集、出錯報警處理、識別信息顯示等。
圖1 人臉識別系統(tǒng)結構示意圖
攝像頭負責對人臉圖像進行抓拍,抓拍采用視頻流的形式,將每一幀圖像數據發(fā)送到嵌入式ARM 處理器。
系統(tǒng)使用的是采用30 萬像素的普通攝像頭,拍攝后的頭像是640×480的彩色圖像,因和識別算法需要的48×48(訓練得到的人臉數據庫中的人臉數據格式)的灰度圖像還有一定的差別,因此須將圖像數據進行壓縮和灰度處理后,再傳給識別算法。
系統(tǒng)在運行時,需預先在數據庫中存儲人臉的特征向量和人的ID 偶對[4],如(ID,feature)。系統(tǒng)在試運行階段在數據庫中存儲了一個班級30 名學生的人臉圖像信息。
建立數據庫是在識別算法的訓練階段,在訓練得到變換和降維矩陣后,利用矩陣將人臉庫中的人臉提取特征信息,再將特征信息和ID 共同存入數據庫。由于人臉數并不是很多,所以并未采用大型的數據庫來實現,而是采用MATLAB的mat 文件進行存儲,利用MATLAB的庫函數save和load來管理數據庫。當人臉數據過多時,就應該采用大型數據庫來提高效率和安全性,例如SQLServer 或者Oracle 等。
采用嵌入式ARM9 處理器實現Fisherface 識別算法,將攝像頭采集到的圖像進行信息預處理,通過OpenCV 庫檢測圖像中是否有人臉,如果有就將人臉圖像截取,并處理成48×48的灰度圖像,作為Fisherface算法的樣本。
處理器主要完成人臉圖像的樣本訓練和圖像識別兩個任務。樣本訓練是在人臉庫上運用算法求得變換和降維所需要的矩陣。實驗選取的人臉庫由一個班級中的30 人組成,每人10張不同形態(tài)的48×48(也可以是其他分辨率,但是要在識別時和訓練時采用同樣的分辨率)的灰度圖像,通過Fisherface方法訓練即可得到所需的降維和變換矩陣Wopt,Wpca,Wfld。
識別過程則是對攝像頭采集到的圖像,利用OpenCV 庫提取出人臉的48×48 灰度圖像,作為樣本,利用訓練階段求得的降維矩陣對圖像進行降維后得到特征向量,與數據庫中的特征向量比對,求的空間最小距離低于閾值,即認為識別成功,如果距離都超過上限則視為識別失敗,提示出錯信息并產生報警信號。
這部分由ARM 嵌入式處理器控制,識別成功則顯示圖像對應人臉數據庫中的信息,而出錯報警則用語音提示錯誤。系統(tǒng)中顯示設備使用的是彩色液晶顯示器LM057QC1T01,報警電路則采用語音芯片ISD4004 來實現。
系統(tǒng)在成功識別人臉后,則可連接記費系統(tǒng),若有費用的改動,則記錄費用信息傳送給記費系統(tǒng)及時修改。
通過在一個班級的30個人進行測試,每個人10張圖像,共300張圖像,包括不同面部表情、不同光照、不同時間、不同頭部角度的人臉圖像,圖像尺寸為48×48,共300張灰度圖的人臉庫作為標準人臉庫,進行訓練得到人臉數據庫和變換矩陣Wopt,Wpca,Wfld。
利用已訓練好的數據庫和變換矩陣,在30個人的實驗樣本上進行模擬刷卡測試,在不同光照、不同時間、不同地點,共進行了10 次刷卡過程,統(tǒng)計識別率為87.502%,基本達到實用要求。
建立的人臉識別系統(tǒng)逐步取代目前學生使用的刷卡系統(tǒng),系統(tǒng)在對識別率、效率等因素綜合考慮后,采用了Fisherface 識別算法,并利用嵌入式ARM9 實現系統(tǒng),通過對一個班級的30 名學生進行測試,識別效果好,進一步完善安全性等功能后,可推廣應用。
[1]石躍祥,蔡自興,王學武,等.基于改進的PCA算法和Fisher 線性判別的人臉識別技術[J].小型微型計算機系統(tǒng),2006,27(9):1731-1736.
[2]李杰,阮秋琦.一種基于加權小波和改進的Fisher 臉的人臉識別方法[A].第十四屆全國圖象圖形學學術會議論文集[C].2008.
[3]Dario Maio,Davide Maltoni.Real-time Face Location on Gray-scale Static Images[J].Pattern Recognition,2000,33(9):1525-1539.
[4]Kah-Kay Sung,Tomaso Pogg io.Example-based Learning for View-based Human Face Detection[J].IEEE Trans.on PAMI,1998,20(1):39-50.
[5]張宇萍.基于Fisher 準則的二次線性特征提?。跩].西安工業(yè)大學學報,2007,27(5):460-463.