楊鳴鳴
(杭州電子科技大學 計算機學院,浙江 杭州 310000)
摘要:該文主要實現(xiàn)了在嵌入式系統(tǒng)上的人臉識別,。采用PCA對圖像數(shù)據(jù)進行降維,,然后利用最短歐氏距離、支持向量機(Support Vector Machine,SVM)和BP神經(jīng)網(wǎng)絡實現(xiàn)了分類,。在嵌入式系統(tǒng)上,,沒有使用QT、OpenCV等占用空間大的工具,,而使用自己編寫的C語言,,以及Linux內(nèi)核,節(jié)省了空間,,并且處理過程中使用了BMP圖片,,稍微增加了存儲空間,但是運算簡單,,處理速度較快,。
關鍵詞:PCA;SVM,;神經(jīng)網(wǎng)絡,;嵌入式系統(tǒng);人臉識別
0引言
假如汽車上安裝了嵌入式人臉識別系統(tǒng),,通過人臉識別才能啟動汽車,,那么安全系數(shù)就提高了很多。過去,,大多數(shù)人借助于OpenCV等方式在嵌入式設備上進行人臉識別,,大大增加了嵌入式系統(tǒng)的負擔,,本文通過使用主成分分析(Principal Component Analysis,PCA)、支持向量機(Support Vector Machine,SVM),、神經(jīng)網(wǎng)絡等算法,,拋開QT圖形界面、OpenCV等工具,,僅借助LibSVM庫,,以及C語言實現(xiàn)了一個完整的嵌入式人臉識別系統(tǒng)。盡管PCA以及SVM都可以實現(xiàn)人臉識別,,但是本文實現(xiàn)了一種將PCA,、SVM與神經(jīng)網(wǎng)絡相結(jié)合的方法,在滿足準確率要求的情況下,,將運行時間降到最低,。
1概述
人臉是人的主要身份信息。隨著人臉識別技術(shù)的發(fā)展,,用機器來識別人臉已經(jīng)實現(xiàn),,目前的人臉識別方法主要分為以下幾類:
(1)基于幾何特征的方法,,最早是由BLEDSOE于1966年提出,,后來KANDE做出了一些改進,然而識別率也僅有45%~75%,;
?。?)基于模型的方法,使用的模型主要為HMM隱馬爾可夫模型[1],,它的識別效果較好,;
(3)基于統(tǒng)計的方法,,特征臉[2]的方法是由TURK M和PENTLAND A最早提出,,一種新的人臉識別思路由此開始。后來在此基礎上有一系列的改進方法[34],,基于頻域的方法GABOR[5]小波變換也引入到人臉識別領域,;基于支持向量機[67]的人臉識別,識別率很好,。
本文主要研究使用PCA,、SVM、神經(jīng)網(wǎng)絡方法在嵌入式系統(tǒng)上實現(xiàn)人臉識別,。
2PCA及降維
在ORL人臉數(shù)據(jù)庫中,,有40個人的400張像素為92×112的圖片,把每一張照片放到一個行向量上,,那么將得到10 304維的數(shù)據(jù),,這對于識別來說實在是太大了,,因此需要對它進行降維處理。
KIRBY M[8]等人使用KL變換對人臉圖像進行了降維處理,,把一張人臉圖像當做一個高維的向量,,人臉圖像的每個像素都是這個高維向量的一個元素,接著使用KL變換把圖像向量映射到一個特征空間,。直到1991年PENTLAND A[9]首先將PCA用在了人臉識別上,,進而引出了“特征臉”。
大部分研究都是使用OpenCV[10],、MATLAB[11]等工具在嵌入式設備上進行人臉識別,然而這些工具對于嵌入式系統(tǒng)來說是非常消耗存儲資源的,。因此筆者寫了一個精簡PCA的程序代碼,。
編寫代碼的步驟如下:
(1)讀取一張圖片的數(shù)據(jù);
(2)先跳過bmp的前54 B的頭文件部分,,接下來的是顏色數(shù)據(jù),;
(3)轉(zhuǎn)換為灰度圖,連續(xù)的3 B構(gòu)成了一個像素,,那么該像素的灰度值為GRAY=(R×30+G×59+B×11)/100,;
(4)把測試圖片(50張)的灰度值存為一個10 304×50的矩陣中;
(5)利用Householder方法對矩陣進行變換,,進而求出特征值和特征向量,;
(6)把測試圖像投影到特征空間,將歐式距離最小的作為識別結(jié)果,。
3SVM
在20世紀70年代,,BOSER B E等人[12]開始研究統(tǒng)計學習理論,SVM[13]是基于統(tǒng)計學習理論的一種機器學習方法,,它通過尋求結(jié)構(gòu)化風險最小來達到提高學習機泛
化能力,,實現(xiàn)經(jīng)驗風險和置信范圍的最小化。
本文中使用臺灣大學林智仁[14]教授開發(fā)的LibSVM庫,,在Linux上使用非常方便,。步驟如下:
(1)利用PCA降維獲得的數(shù)據(jù),然后將它修改為LibSVM所要求的格式,;
(2)分別對訓練數(shù)據(jù)和測試數(shù)據(jù)進行SCALE,;
(3)對于SCALE后的測試數(shù)據(jù)進行分類。
4神經(jīng)網(wǎng)絡
1943年,,首先由McCulloch和Pitts提出MP模型后,,一直到今天,神經(jīng)網(wǎng)絡經(jīng)過幾十年的發(fā)展,,取得了很大的發(fā)展,,本次試驗中使用BP神經(jīng)網(wǎng)絡對人臉數(shù)據(jù)進行處理,,經(jīng)過實驗發(fā)現(xiàn)在一定量人臉的情況下,訓練耗時較少,,識別時間也較短,,如表1所示。
5嵌入式相關移植
本文基于S3C2400的嵌入式設備,,使用Linux操作系統(tǒng)在JZ2440上實現(xiàn)了一套完整的嵌入式人臉識別系統(tǒng),, 由于嵌入式攝像頭的安裝位置相對固定,因此把主要精力放在了人臉識別的部分,。主要分為以下兩個步驟:
?。?)圖片采集。使用攝像頭獲取動態(tài)的圖片,,當需要識別時,,只需要觸摸顯示屏,就可以把圖片保存下來,。
?。?)人臉識別。此時對圖片進行預處理,,然后使用PCA+歐式距離或者PCA+SVM等方法進行識別,。
6實驗結(jié)果分析
本文分別使用PCA和SVM等方法,在ORL人臉圖像庫(如圖1所示),,與本實驗室人員的人臉圖像庫(如圖2所示)進行實驗,,實驗證明識別效果很好。ORL人臉庫有40個人,,每人有10張照片,,本文使用一個人的前5張照片作為實驗樣本,后5張作為測試樣本,。如圖1所示,1~5為一個人的訓練樣本照片,,對應的測試樣本是10 001~10 005。同樣的訓練樣本6~10對應的測試樣本是10 006~10 010,。
為了驗證此方法的通用性,,還使用了一些本實驗室人員的人臉圖像,識別率仍然可以達到很好的識別效果(如表2所示),。
7結(jié)論
經(jīng)過試驗發(fā)現(xiàn),,在ORL人臉圖像庫使用PCA+最近鄰識別率最高可達94%,而使用PCA+SVM的識別率可以達到98%,,而使用BP神經(jīng)網(wǎng)絡時,,本文前期訓練耗時較多,且實驗過程中發(fā)現(xiàn)為了達到更高的準確率不得不增加神經(jīng)網(wǎng)絡輸入的維度,這樣就更增大了神經(jīng)網(wǎng)絡的耗時,,并且實驗結(jié)果發(fā)現(xiàn)實現(xiàn)的準確率并沒有SVM高,,因此本文最終選擇PCA+SVM作為嵌入式人臉識別的實驗方法。
參考文獻
?。?] SAMARIA F, YOUNG S. HMM based architecture for face identification[J]. Image & Vision Computing, 1994, 12(8):537-543.
?。?] TURK M, PENTLAND A. Eigenfaces for recognition[J]. Journal of Cognitive Neuroscience, 1991, 3(1):71-86.
[3] HONG Z Q. Algebraic feature extraction of image for recognition[J]. Pattern Recognition, 1991, 24(3):211-219.
?。?] NAKAMURA O, MATHUR S, MINAMI T. Identification of human faces based on isodensity maps[J]. Pattern Recognition, 1991, 24(3):263-272.
?。?] LIU D H, LAM K M, SHEN L S. Optimal sampling of Gabor features for face recognition[J]. Pattern Recognition Letters, 2004, 25(2):267-276.
[6] PHILLIPS P J. Support vector machines applied to face recognition[J]. Advances in Neural Information Processing Systems, 2001, 11(7):803-809.
?。?] JONSSON B K, MATAS J K J, LI Y. Learning support vector vectors for face verification and recognition[C]. IEEE International Conference on Automatic Face and Gesture Recognition, 2000.
?。?] KIRBY M, SIROVICH L. Application of the karhunenloeve procedure for the characterization of human faces[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1990, 12(1):103-108.
[9] TURK M, PENTLAND A. Eigenfaces for recognition[J]. Journal of Cognitive Neuroscience, 1991, 3(1):71-86.
?。?0] 王威. 基于ARM9硬件平臺的人臉識別系統(tǒng)設計與研究[D]. 成都:電子科技大學, 2013.
?。?1] 趙文琦. 基于ARM的嵌入式人臉識別系統(tǒng)研究實現(xiàn)[D]. 哈爾濱:哈爾濱工程大學, 2011.
[12] BOSER B E, GUYON I M, VAPNIK V N. A training algorithm for optimal margin classifiers[C]. Proceedings of the 5th Annual Workshop on Computational Learning Theory, 1992(7):144-152.
?。?3] BURGES C J C. A tutorial on support vector machines for pattern recognition[J]. Data Mining & Knowledge Discovery, 1998, 2(2):121-167.
[14] CHANG C C, LIN C J. LIBSVM: a library for support vector machines[J]. Acm Transactions on Intelligent Systems & Technology, 2011, 2(3):389-396.