楊鳴鳴
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310000)
?
基于嵌入式系統(tǒng)的人臉識別算法研究及其優(yōu)化
楊鳴鳴
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310000)
該文主要實(shí)現(xiàn)了在嵌入式系統(tǒng)上的人臉識別。采用PCA對圖像數(shù)據(jù)進(jìn)行降維,然后利用最短歐氏距離、支持向量機(jī)(Support Vector Machine,SVM)和BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了分類。在嵌入式系統(tǒng)上,沒有使用QT、OpenCV等占用空間大的工具,而使用自己編寫的C語言,以及Linux內(nèi)核,節(jié)省了空間,并且處理過程中使用了BMP圖片,稍微增加了存儲空間,但是運(yùn)算簡單,處理速度較快。
PCA;SVM;神經(jīng)網(wǎng)絡(luò);嵌入式系統(tǒng);人臉識別
假如汽車上安裝了嵌入式人臉識別系統(tǒng),通過人臉識別才能啟動(dòng)汽車,那么安全系數(shù)就提高了很多。過去,大多數(shù)人借助于OpenCV等方式在嵌入式設(shè)備上進(jìn)行人臉識別,大大增加了嵌入式系統(tǒng)的負(fù)擔(dān),本文通過使用主成分分析(Principal Component Analysis,PCA)、支持向量機(jī)(Support Vector Machine,SVM)、神經(jīng)網(wǎng)絡(luò)等算法,拋開QT圖形界面、OpenCV等工具,僅借助LibSVM庫,以及C語言實(shí)現(xiàn)了一個(gè)完整的嵌入式人臉識別系統(tǒng)。盡管PCA以及SVM都可以實(shí)現(xiàn)人臉識別,但是本文實(shí)現(xiàn)了一種將PCA、SVM與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,在滿足準(zhǔn)確率要求的情況下,將運(yùn)行時(shí)間降到最低。
人臉是人的主要身份信息。隨著人臉識別技術(shù)的發(fā)展,用機(jī)器來識別人臉已經(jīng)實(shí)現(xiàn),目前的人臉識別方法主要分為以下幾類:
(1)基于幾何特征的方法,最早是由BLEDSOE于1966年提出,后來KANDE做出了一些改進(jìn),然而識別率也僅有45%~75%;
(2)基于模型的方法,使用的模型主要為HMM隱馬爾可夫模型[1],它的識別效果較好;
(3)基于統(tǒng)計(jì)的方法,特征臉[2]的方法是由TURK M和PENTLAND A最早提出,一種新的人臉識別思路由此開始。后來在此基礎(chǔ)上有一系列的改進(jìn)方法[3-4],基于頻域的方法GABOR[5]小波變換也引入到人臉識別領(lǐng)域;基于支持向量機(jī)[6-7]的人臉識別,識別率很好。
本文主要研究使用PCA、SVM、神經(jīng)網(wǎng)絡(luò)方法在嵌入式系統(tǒng)上實(shí)現(xiàn)人臉識別。
在ORL人臉數(shù)據(jù)庫中,有40個(gè)人的400張像素為92×112的圖片,把每一張照片放到一個(gè)行向量上,那么將得到10 304維的數(shù)據(jù),這對于識別來說實(shí)在是太大了,因此需要對它進(jìn)行降維處理。
KIRBY M[8]等人使用K-L變換對人臉圖像進(jìn)行了降維處理,把一張人臉圖像當(dāng)做一個(gè)高維的向量,人臉圖像的每個(gè)像素都是這個(gè)高維向量的一個(gè)元素,接著使用K-L變換把圖像向量映射到一個(gè)特征空間。直到1991年P(guān)ENTLAND A[9]首先將PCA用在了人臉識別上,進(jìn)而引出了“特征臉”。
大部分研究都是使用OpenCV[10]、MATLAB[11]等工具在嵌入式設(shè)備上進(jìn)行人臉識別,然而這些工具對于嵌入式系統(tǒng)來說是非常消耗存儲資源的。因此筆者寫了一個(gè)精簡PCA的程序代碼。
編寫代碼的步驟如下:
(1)讀取一張圖片的數(shù)據(jù);
(2)先跳過bmp的前54 B的頭文件部分,接下來的是顏色數(shù)據(jù);
(3)轉(zhuǎn)換為灰度圖,連續(xù)的3 B構(gòu)成了一個(gè)像素,那么該像素的灰度值為GRAY=(R×30+G×59+B×11)/100;
(4)把測試圖片(50張)的灰度值存為一個(gè)10 304×50的矩陣中;
(5)利用Householder方法對矩陣進(jìn)行變換,進(jìn)而求出特征值和特征向量;
(6)把測試圖像投影到特征空間,將歐式距離最小的作為識別結(jié)果。
在20世紀(jì)70年代,BOSER B E等人[12]開始研究統(tǒng)計(jì)學(xué)習(xí)理論,SVM[13]是基于統(tǒng)計(jì)學(xué)習(xí)理論的一種機(jī)器學(xué)習(xí)方法,它通過尋求結(jié)構(gòu)化風(fēng)險(xiǎn)最小來達(dá)到提高學(xué)習(xí)機(jī)泛化能力,實(shí)現(xiàn)經(jīng)驗(yàn)風(fēng)險(xiǎn)和置信范圍的最小化。
圖1 ORL人臉庫
圖2 實(shí)驗(yàn)室人臉庫
本文中使用臺灣大學(xué)林智仁[14]教授開發(fā)的LibSVM庫,在Linux上使用非常方便。步驟如下:
(1)利用PCA降維獲得的數(shù)據(jù),然后將它修改為LibSVM所要求的格式;
(2)分別對訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)進(jìn)行SCALE;
(3)對于SCALE后的測試數(shù)據(jù)進(jìn)行分類。
1943年,首先由McCulloch和Pitts提出M-P模型后,一直到今天,神經(jīng)網(wǎng)絡(luò)經(jīng)過幾十年的發(fā)展,取得了很大的發(fā)展,本次試驗(yàn)中使用BP神經(jīng)網(wǎng)絡(luò)對人臉數(shù)據(jù)進(jìn)行處理,經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)在一定量人臉的情況下,訓(xùn)練耗時(shí)較少,識別時(shí)間也較短,如表1所示。
表1 ORL庫識別結(jié)果
本文基于S3C2400的嵌入式設(shè)備,使用Linux操作系統(tǒng)在JZ2440上實(shí)現(xiàn)了一套完整的嵌入式人臉識別系統(tǒng), 由于嵌入式攝像頭的安裝位置相對固定,因此把主要精力放在了人臉識別的部分。主要分為以下兩個(gè)步驟:
(1)圖片采集。使用攝像頭獲取動(dòng)態(tài)的圖片,當(dāng)需要識別時(shí),只需要觸摸顯示屏,就可以把圖片保存下來。
(2)人臉識別。此時(shí)對圖片進(jìn)行預(yù)處理,然后使用PCA+歐式距離或者PCA+SVM等方法進(jìn)行識別。
本文分別使用PCA和SVM等方法,在ORL人臉圖像庫(如圖1所示),與本實(shí)驗(yàn)室人員的人臉圖像庫(如圖2所示)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)證明識別效果很好。ORL人臉庫有40個(gè)人,每人有10張照片,本文使用一個(gè)人的前5張照片作為實(shí)驗(yàn)樣本,后5張作為測試樣本。如圖1所示,1~5為一個(gè)人的訓(xùn)練樣本照片,對應(yīng)的測試樣本是10 001~10 005。同樣的訓(xùn)練樣本6~10對應(yīng)的測試樣本是10 006~10 010。
為了驗(yàn)證此方法的通用性,還使用了一些本實(shí)驗(yàn)室人員的人臉圖像,識別率仍然可以達(dá)到很好的識別效果(如表2所示)。
表2 實(shí)驗(yàn)室人員識別結(jié)果
經(jīng)過試驗(yàn)發(fā)現(xiàn),在ORL人臉圖像庫使用PCA+最近鄰識別率最高可達(dá)94%,而使用PCA+SVM的識別率可以達(dá)到98%,而使用BP神經(jīng)網(wǎng)絡(luò)時(shí),本文前期訓(xùn)練耗時(shí)較多,且實(shí)驗(yàn)過程中發(fā)現(xiàn)為了達(dá)到更高的準(zhǔn)確率不得不增加神經(jīng)網(wǎng)絡(luò)輸入的維度,這樣就更增大了神經(jīng)網(wǎng)絡(luò)的耗時(shí),并且實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)實(shí)現(xiàn)的準(zhǔn)確率并沒有SVM高,因此本文最終選擇PCA+SVM作為嵌入式人臉識別的實(shí)驗(yàn)方法。
[1] SAMARIA F,YOUNG S.HMM-based architecture for face identification[J].Image & Vision Computing,1994,12(8):537-543.
[2] 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.
[4] NAKAMURA O,MATHUR S,MINAMI T.Identification of human faces based on isodensity maps[J].Pattern Recognition,1991,24(3):263-272.
[5] 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.
[7] 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.
[8] KIRBY M,SIROVICH L.Application of the karhunen-loeve 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.
[10] 王威.基于ARM9硬件平臺的人臉識別系統(tǒng)設(shè)計(jì)與研究[D].成都:電子科技大學(xué),2013.
[11] 趙文琦.基于ARM的嵌入式人臉識別系統(tǒng)研究實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),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.
[13] 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.
Face recognition and its optimization based on embedded system
Yang Mingming
(School of Computer Science and Technology,Hangzhou Dianzi University,Hangzhou 310000,China)
The main achievement of this paper is realizing face recognition in embedded systems.The image data use Principal Component Analysis(PCA) for dimensionality reduction.Then utilizing the shortest Euclidean distance,Support Vector Machine(SVM) and BP neural network to achieve classification.In embedded systems,we save space by using C language,and the Linux kernel instead of QT,Opencv and other tools which require huge space.Furthermore we use BMP image during the process,which slightly increases storage space,but the operation is simple and the processing speed is fast.
Principal Component Analysis (PCA); Support Vector Machine (SVM); neural networks; embedded systems; face recognition
TP391.41
A DOI:10.19358/j.issn.1674-7720.2016.19.015
楊鳴鳴.基于嵌入式系統(tǒng)的人臉識別算法研究及其優(yōu)化[J].微型機(jī)與應(yīng)用,2016,35(19):50-52.
2016-07-01)
楊鳴鳴(1991-),通信作者,男,碩士,主要研究方向:人工智能,嵌入式系統(tǒng),人臉識別。E-mail:861168690@qq.com。