李昌湘 白創(chuàng)
文章編號: 2095-2163(2018)03-0115-04中圖分類號: 文獻標志碼: A
摘要: 關(guān)鍵詞: (School of Physical & Electronic Science, Changsha University of Science & Technology, Changsha 410114, China)
Abstract: A face recognition system based on the S5PV210 embedded platform is designed and implemented in this paper. Designing a face recognition system on an embedded device requires not only considering the recognition accuracy, but also estimating the influence of environmental changes around the device on the face recognition. In the system, the Adaboost algorithm is used to detect the human face based on the haar feature of the human eye, and human face is identified by a method of LBP texture feature extraction combined with SVM recognition classification. After system testing, the recognition rate of the system and the robustness to changes in lighting could effectively satisfy the needs of general face recognition authentication.
Key words:
基金項目: 作者簡介:
通訊作者: 收稿日期: 引言
人臉識別技術(shù)是生物識別技術(shù)中的一種,生物識別技術(shù)具有普遍性、唯一性、穩(wěn)定性、易采集的特點[1]。與其他生物識別技術(shù)相比,人臉識別比指紋識別設(shè)備使用壽命更長、比虹膜識別設(shè)備成本更低[2]。嵌入式設(shè)備具有體積小、功耗低、便攜的優(yōu)點,被廣泛的應(yīng)用于人們的日常生活中[3]。近幾年來計算機硬件的飛速發(fā)展,嵌入式設(shè)備的運算速度和存儲空間都得到了提升,這為在嵌入式設(shè)備上搭建人臉識別系統(tǒng)提供了良好的條件。
嵌入式設(shè)備在實際應(yīng)用中經(jīng)常會被攜帶到各個不同的場景,不同場景間的光照變化會嚴重地影響人臉識別的效果[4]。LBP特征是一種紋理特征,對光照具有不變性,使用LBP紋理特征進行人臉識別可以減少光照對人臉識別結(jié)果的影響[5-6]。SVM是一種擅于解決小樣本機器學(xué)習(xí)問題的分類器,非常適用于嵌入式設(shè)備上的人臉識別[7-8]。
1系統(tǒng)硬件設(shè)計
系統(tǒng)的開發(fā)平臺是S5PV210開發(fā)板。該開發(fā)板的處理器型號是ARM CortexTM-A8,主頻達1GHZ,開發(fā)板上有512M的SDRAM,1G的NandFlash。開發(fā)板的運算速度、運行內(nèi)存和存儲空間都能滿足圖形運算的需求。開發(fā)板上外接USB攝像頭來采集圖像,自帶LED顯示屏和觸摸屏來實現(xiàn)人機交互。系統(tǒng)通過串口從PC機接收指令和下載程序,通過串口轉(zhuǎn)USB芯片CH340與PC機上的USB口相連。系統(tǒng)硬件設(shè)計框圖如圖1所示。
2系統(tǒng)軟件設(shè)計
2.1嵌入式系統(tǒng)軟件環(huán)境搭建
系統(tǒng)環(huán)境搭建主要由引導(dǎo)加載程序U-boot、Linux內(nèi)核、根文件系統(tǒng)、設(shè)備驅(qū)動程序、應(yīng)用程序5個部分組成。先將從官方下載的U-boot源碼交叉編譯后燒寫到開發(fā)板中,U-boot負責(zé)啟動內(nèi)核前的一系列初始化操作并且最終啟動內(nèi)核。然后交叉編譯linux內(nèi)核,通過uboot將交叉編譯內(nèi)核生成的zImage文件燒寫到開發(fā)板的指定位置后啟動內(nèi)核。根文件系統(tǒng)是內(nèi)核啟動時所掛載的第一個文件系統(tǒng),在S5PV210平臺上一般使用ext3格式的文件系統(tǒng),根文件系統(tǒng)同樣需要交叉編譯后再燒寫到開發(fā)板中。將攝像頭、觸摸屏等設(shè)備的驅(qū)動程序以及Qt和opencv移植到開發(fā)板中。Qt為嵌入式設(shè)備圖形化的應(yīng)用程序編程提供支持,opencv則為應(yīng)用程序編程提供圖像處理函數(shù)庫。
2.2系統(tǒng)應(yīng)用程序設(shè)計
人臉識別系統(tǒng)再應(yīng)用程序部分主要實現(xiàn)圖像的采集、人臉識別、用戶信息管理、人機交互界面4個功能。圖像采集部分通過UVC協(xié)議和V4L2接口控制USB攝像頭采集圖形的分辨率、幀率、圖像的格式;人臉識別部分用Adaboost人臉檢測算法檢測定位人臉,通過LBP特征提取結(jié)合SVM分類器來識別人臉;用戶信息管理是根據(jù)人臉識別的應(yīng)用場景設(shè)計的,實際應(yīng)用中不僅需要錄入用戶的人臉圖像,還需要將用戶對應(yīng)的編號、姓名、性別等信息錄入系統(tǒng)中,需要對這些信息進行管理;人機交互界面可以指導(dǎo)用戶輕松地使用系統(tǒng),并在識別過程中將反饋信息提供給用戶。其中人臉識別部分的具體實現(xiàn)如圖2所示,分為訓(xùn)練和識別2個步驟。
訓(xùn)練過程先依次采集每個用戶的人臉圖像,通過adaboost人臉檢測算法檢測圖像中的人臉并將檢測到的人臉部的位置的圖像截取下來縮放到指定的大小。然后給每個用戶的人臉樣本添加用戶標簽,并作為訓(xùn)練樣本庫存放到指定的目錄下。最后提取這些訓(xùn)練樣本的LBP紋理特征,將這些紋理特征數(shù)據(jù)傳給SVM分類器,SVM通過這些訓(xùn)練數(shù)據(jù)構(gòu)造最優(yōu)分類面。
識別過程中采集的是當(dāng)前攝像頭面前的用戶的人臉,同樣經(jīng)過adaboost人臉檢測后截取并縮放到指定大小。提取當(dāng)前人臉的LBP紋理特征,傳給SVM分類器,SVM用構(gòu)造好的最優(yōu)分類面對當(dāng)前人臉進行分類,最后得到當(dāng)前人臉所分到類別的用戶標簽,得到的用戶標簽即為分類結(jié)果。
3系統(tǒng)算法原理
3.1Adaboost人臉檢測與定位
人臉檢測其實是一個將輸入圖像分出人臉與非人臉2類的分類問題。Adaboost的核心思想是通過一系列弱分類器獲得強分類器。Adaboost算法通過訓(xùn)練集訓(xùn)練多個不同的弱分類器,然后將這些弱分類器集合起來構(gòu)成一個更強的分類器。haar特征將黑白兩種矩形組成特征模板,用黑色矩形內(nèi)像素數(shù)量減去白色矩形內(nèi)像素數(shù)量的方式來表示模板內(nèi)的Haar特征,對邊緣、線段較敏感。通過提取人眼部的haar特征,大量人臉樣本訓(xùn)練得到強分類器,用得到的強分類器區(qū)分人臉與非人臉。
3.2人臉LBP特征提取
局部二值模式(LBP)是一種圖像的紋理特征。將圖像領(lǐng)域內(nèi)的像素值與中心像素值相比較,大于中心點像素值則記作1,反之則記作0,這樣就構(gòu)成了一組0,1組成的二進制編碼,這就是局部二值模式。當(dāng)鄰域為3×3時,8個像素點構(gòu)成的8位的二進制編碼剛好可以轉(zhuǎn)化為十進制。
圓形LBP算子將局部二值模式3×3 鄰域擴展到任意尺度,并用圓形鄰域代替了正方形鄰域,圓形LBP 算子允許在半徑為R 的圓形鄰域取N個像素點,用尺度(N,R)表示。尺度(N,R)內(nèi)的圓形LBP算子的編碼公式為:LBPN,R=∑N-1if(gi-gc)2i, f(x)={1,x≥00, x≤0(1)其中:gi-gc表示第i個領(lǐng)域像素值減去中心像素值的差。該算子會得到2N個不同的LBP編碼。圓形LBP算子具有灰度不變性的同時還具有旋轉(zhuǎn)不變性。
3.3SVM人臉分類識別
SVM通過構(gòu)造一個或多個最優(yōu)超平面來對樣本分類,該最優(yōu)超平面在對樣本正確劃分的同時最大化樣本到超平面的距離。用來分隔樣本的超平面可以用如下線性方程來表示:g(x)=WTx+b(2)為了使分隔開的類別具有最大的間隔,從而獲得更高的可信度,要讓離分隔面最近的樣本離超平面的距離最大。假設(shè)分別經(jīng)過2個離超平面最近的點的2個與超平面平行的平面H1與H2。H1:y=wTx+b=+1
H2:y=wTx+b=-1(3)那么只要最大化這2個超平面之間的間隔2‖w‖即可。
通過拉格朗日乘子法求這個最優(yōu)化問題,約束條件為:min 12‖w‖2(4)
subject to yiwxi+b-1≥0(i=1,2,...,n)經(jīng)過一系列推導(dǎo),最終得到分類函數(shù):f(x)=∑niαiyik(x1,x2)+b(5)其中:αi是拉格朗日乘子,k是核函數(shù)。核函數(shù)使低維空間的運算結(jié)果和映射到高維空間的內(nèi)積運算結(jié)果相同,避免將線性不可分的點投放到高維空間中處理。RBF核函數(shù):k(x1,x2)=exp-(x1-x2)22σ2(6)4系統(tǒng)測試
為了準確測試系統(tǒng)的人臉識別算法性能,并將系統(tǒng)中所用算法與其他幾種常用的人臉識別算法做比較,人們在與系統(tǒng)環(huán)境相近的PC端的Ubuntu操作系統(tǒng)上進行測試,算法實現(xiàn)同樣用C++在Qt下編程。選取ORL人臉庫和Yale人臉庫中每人隨機選取5張圖片做訓(xùn)練樣本、剩余圖片做測試樣本。Yale人臉庫相比ORL人臉庫,每個人相同數(shù)量的樣本中包含更明顯的光照、姿態(tài)變化。測試比較文中算法與PCA、FIsherface、LBP等其他幾種算法的多次實驗的平均識別率。測試結(jié)果見表1。
文中算法95.7094.13從圖中可以看出,由于Yale人臉庫中的光照、姿態(tài)變化更明顯,幾種算法在Yale人臉庫中的識別率都較ORL人臉庫低。比較同一種算法在2個人臉庫中的識別率變化,LBP算法的識別率變化較前2種算法低,本文所用算法在2個人臉庫中的識別率變化最低,而在2個人臉庫中的測試結(jié)果識別率都是最高的。測試結(jié)果驗證了LBP紋理特征對光照的魯棒性。文中算法通過圓形LBP算子提取人臉圖像的紋理特征,用 SVM分類器來識別人臉,因此在2個人臉庫中都取得了較高的識別率。嵌入式人臉識別系統(tǒng)在準確識別人臉圖像的同時,對于實際生活中的光照變化有一定的魯棒性。
5結(jié)束語
嵌入式設(shè)備上的設(shè)計往往要多考慮一些相關(guān)因素,既包括設(shè)備性能因素也包括周圍環(huán)境的因素。在S5PV210平臺上移植Qt和opencv來搭建人臉識別的軟件環(huán)境,雖然占用了一部分存儲空間但對程序的運行速度影響不大。LBP結(jié)合SVM的人臉識別算法對周圍環(huán)境的光照變化具有魯棒性,在S5PV210平臺上也能快速運行。隨著時代的發(fā)展,未來的嵌入式設(shè)備性能將繼續(xù)提高,進而可以考慮在嵌入式設(shè)備上使用算法復(fù)雜度更高、識別效果更好的人臉識別算法。
參考文獻
[1] 汪國強. 基于嵌入式系統(tǒng)的人臉識別系統(tǒng)設(shè)計[J]. 電腦迷,2017(11):165.(下轉(zhuǎn)第121頁)[2] 趙越,喬玉燈. 基于嵌入式的人臉識別考勤系統(tǒng)的研究[J]. 電子技術(shù)與軟件工程,2015(17):211.
[3] 王威. 基于ARM9硬件平臺的人臉識別系統(tǒng)設(shè)計與研究[D]. 成都:電子科技大學(xué),2013.
[4] 儲清翠. 復(fù)雜光照條件下人臉跟蹤算法研究[D]. 合肥:安徽大學(xué),2014.
[5] 王茜,肖國強,吳松,等. 基于LBP直方圖的復(fù)雜光照下的人臉識別[J]. 計算機工程與應(yīng)用,2012,48(15):181-186.
[6] 易焱,蔣加伏. 基于LBP和棧式自動編碼器的人臉識別算法研究[J]. 計算機工程與應(yīng)用,2018,54(12):163-167,245.
[7] 胡沐晗. 基于PCA和SVM的人臉識別系統(tǒng)[J]. 計算機時代,2017(12):60-63,67.
[8] 楊梅芳,石義龍. 基于2DPCA+PCA與SVM的人臉識別[J]. 信息技術(shù),2018(2):32-36.