摘 要:本項目從基于PCA算法的人臉識別出發,采用了FPGA和Android智能終端結合構建了人臉識別的測試平臺。選用Android終端來采集人臉圖像數據,FPGA作為后臺算法處理平臺測試和驗證算法。測試結果識別率準確,效果良好。
關鍵詞:FPGA;PCA;人臉識別;特征臉
一、引言
傳統類似身份證或磁卡的人員識別方法,易遺失,易于偽造,無獨特性。所以現演化成虹膜、人臉、指紋以及聲紋等識別方式,這些生物特征不易遺失,安全性更高。其中人臉識別的過程速度快[1],而且有非接觸性,屬于非侵犯性的識別方法。透過以上比較各種識別方式,本項目將選用人臉識別來進行研究。
二、基于PCA的人臉識別方法
PCA(Principal Component Analysis)):主要用于數據處理過程中降低資料的維度,并使得原始數據所表達的信息得以保留。這被有效的運用于人臉識別中的特征提取[2]。基于PCA的人臉識別算法的工作過程包含多個步驟,各步驟的作用如下:
(一)創建數據庫
創建數據庫過程包括圖像灰度化和降維。
1、讀入人臉數據
進行人臉的灰度化,如圖1所示。
2、人臉圖像降維處理
人臉圖像通常以二維方式進行存儲,為提升識別效率,需進行降維處理,將其由二維轉換成一維,過程如下:先獲得人臉圖像的大小,然后進行行轉置處理,在此以列為對象獲得灰度值,從而可得到對應的一維向量[3]。
(二)計算特征臉
獲得特征臉時,對降維之后的人臉矩陣規范化,如圖2所示。其次進行協方差計算,從而得到特征向量形成特征臉。
(三)人臉識別過程
人臉識別需要對待測圖像進行分析、識別,以此獲得特征向量,然后將其與特征庫中特征進行投影,目的在于計算各特征之間的距離值,該值是選擇識別結果的基礎,一般選擇值最小的人臉圖像作為識別結果。
三、基于FPGA的人臉識別過程
本項目采用Android智能終端和FPGA相結合的方式實現基于FPGA的人臉識別,如圖3所示。
由圖4可知人臉識別流程,說明如下:
(1)由Android終端進行人臉數據采集,FPGA作為PCA算法處理平臺測試和驗證算法。
(2)在FPGA平臺上將對人臉圖像進行預處理,包括二值化、腐蝕和膨脹處理。
(3)從預處理后的人臉圖像中提取人臉特征,形成特征臉向量。
(4)通過AXI總線協議將特征向量傳輸到ARM,由ARM進行人臉對比。
(5)在RAM中通過與人臉庫的對比獲得匹配結果,結果由Android終端顯示。
四、人臉識別系統應用
為了實現人臉圖像采集的方便性和識別結果顯示的直觀性,本項目采用了Android終端作為了圖像抓取終端和顯示終端。
現將該應用的功能介紹如下:
(一)人臉數據注冊
利用Android終端的攝像頭進行人臉圖像抓取并注冊,目的是將待測人臉加入人臉庫中,同時錄入人臉的對應姓名,用于識別成功后的顯示,也是啟動人臉識別的基礎。若沒有注冊人臉,將無法進行識別。
(二)人臉識別
通過人臉識別界面的start按鈕,啟動人臉識別。將Android讀取的待測人臉轉換為FPGA可讀取的信息,傳輸到FPGA板以啟動人臉識別。
(三)識別結果的顯示
在識別完成后,FPGA把結果傳輸到Android進行顯示。若識別成功,將顯示人臉注冊時的姓名,如圖4(a)所示顯示待測人臉的姓名為“程遙”;若識別失敗,則顯示“查無此人”。
為驗證人臉識別算法的有效性,以及基于FPGA系統的能否正常運行,本項目設置了多個測試策略,以下對各測試策略進行詳細說明。
將待測人臉進行注冊之后,現將進行非正常情況下的測試,例如側面角度和遮擋人臉部分特征情況下測試能否識別成功,其測試結果如圖4(b)(c)所示,與預期結果一致。
(a) Android終端界面 (b)有遮擋時識別結果顯示 (c)側臉時識別結果顯示
五、總結
(1)當人臉圖像未注冊而直接進行識別時,界面顯示查無此人,結果正確。
(2)當待測人臉注冊后進行識別,識別成功后會再界面顯示人臉對應的姓名,同時在對人臉特征有部分遮蓋的情況下,識別結果也正確。
(3)在進行了人臉識別速度進行了測試,人臉識別速度與人臉圖像庫中人臉數量成正比關系。本項目測試了200張人臉圖像,其識別平均速度為0.932秒。
參考文獻:
[1]章毓晉.圖像處理[M].北京:清華大學出版社,2007:87-89
[2]程自龍,雷秀玉.基于K-L變換(PCA)的特征臉人臉識別方法綜述[J].中國圖像圖形學報,2010,20(22):15-18.
[3]倪世貴,白寶剛.基于PCA的人臉識別研究[J].現代計算機,2011,23(42):20-22
作者簡介:
程遙(1983-),女,漢,四川成都人,講師,研究生,主要研究方向為電子信息技術。