王志磊,顧梅花,陳文浩
(西安工程大學 電子信息學院,陜西 西安 710048)
隨著互聯網技術的高速發展,信息擴散速度爆炸式增長,個人信息的安全性和私密性逐漸受到重視[1]。與傳統的身份驗證方法[2]相比,人臉識別技術具有自然性、非接觸性、非強制性和識別精度高的優點,得到專家學者的研究和關注[3]。傳統的人臉識別系統大多都是基于PC機的,無法滿足日常生活中各個場景的需要。汽車兵培訓管理系統就是其中的一個應用場景。較于PC機人臉識別系統,嵌入式人臉識別系統具有價格低廉、占用空間小、擴展能力強、響應速度快和操作簡便等優點[4-5],大幅提高汽車兵管理系統的效率。但是由于傳統的Adaboost人臉檢測算法存在過訓練的問題,導致算法性能的下降。本文提出了一種基于改進的Adaboost算法的人臉識別系統,改進的Adaboost算法新的權重更新規則可以有效避免算法性能下降,同時提高檢測正確率,滿足汽車兵培訓管理系統實際需求。
系統采用JZ2440開發板,是以S3C2440作為微處理器芯片,ARM920T為內核的操作平臺[6],由存儲器、I/O單元電路、通信模塊、人機交互模塊、采集模塊和外圍接口組成,系統總體結構由圖1所示。攝像頭采集模塊:通過預留的20pin插座連接數字攝像頭,將采集到的圖像畫面傳輸給微處理器進行數據交互;微處理器模塊:整個系統的處理中樞;存儲模塊:閃存256 M NAND 閃存,內存64 M SDRAM;人機交互模塊:用戶通過LCD觸摸屏實現與系統的人機交互,使操作簡便。

圖 1 系統硬件總體框圖Fig.1 General block diagram of system hardware
系統進行嵌入式開發步驟:①主機選用Ubuntu12.04操作系統,配置交叉編譯環境及移植BootLoader[7],系統中選取U-Boot作為BootLoader的程序,可支持多種操作系統和燒寫 YAFFS2、JFFS2根文件系統,同時提供了大量的指令集;②在官網下載 Linux 內核源碼[8],進行裁剪和移植;③選擇YAFFS2作為根文件系統,并配置編譯Busybox[9];④移植系統硬件設備所需的驅動程序,如:USB攝像頭驅動、LCD觸摸屏驅動、串口驅動和Nand 閃存驅動。
人機交互界面采用Qt Creator進行開發,QT支持跨平臺運行,開發嵌入式產品時更加方便高效。從官網下載Qt Creator的Linux版本安裝,搭建ARM版本的編譯環境[10]。
系統設計的人機交互界面有注冊、訓練和識別等3個按鈕。注冊的信息包括汽車駕駛員的姓名、編號和身份圖像,并保存在本地數據庫中[11]。訓練是調取系統數據庫中的所有汽車駕駛員圖像信息進行人臉特征提取。識別是將訓練過程中提取到的汽車駕駛員的人臉特征與系統數據庫中的人臉特征進行比對,同時根據設定的閾值輸出比對結果[12]。
在汽車駕駛員駕駛培訓中,首先通過固定在儀表盤上的攝像頭拍攝學員照片。接著采用Adaboost人臉檢測算法提取輸入圖像中的人臉,然后再將人臉信息傳入VIPLFaceNet做人臉特征提取,最后與本地數據庫進行比對,顯示對應學員身份;若本地數據庫中沒有匹配的,重新進行圖像采集進行比對[13]。在重復3次身份驗證后,若在本地數據庫還是沒有匹配的學員,退出驗證系統并彈出警告窗口通知管理員進行處理。系統算法總流程如圖2所示。

圖 2 系統算法總流程Fig.2 System algorithm process
人臉檢測[14]是系統中算法的起始步驟,在輸入圖像中找出人臉并進行標記。系統中的人臉檢測算法是基于Adaboost算法訓練出的級聯分類器實現的,Adaboost算法是一種自適應的分類方法[15],自適應性在于前一分類器分錯的樣本會被用來訓練下一個分類器[16]。算法的特點是使用“積分圖像”快速計算Haar-like特征[17],再由Haar特征組成的弱分類器組合成強分類器,最后將多個強分類器級聯形成更強的分類器用于人臉檢測。
但是Adaboost算法容易產生過訓練的問題,使得算法性能下降。針對這個問題,提出以下的改進辦法,對權值的更新設定限制條件,在算法每一輪的更新中都設定一個閾值Wm。

(1)
em=P(Gm(xi)≠yi)=
(2)
式中:Wm,i是算法在進行第m輪迭代運算時的權重值;Wm是設定第m輪的閾值,它的大小為本輪訓練全部樣本權重的均值(N為樣本數)。由式(2)可得,Gm(x)在訓練集上的誤差em就是被Gm(x)誤分類樣本總和。

(3)

(4)
式中:β為基本分類器在最終分類器中所占的權重。由式(3)可得,em<1/2時,β>0,β隨著em的減小而增大,分類誤差越小的基本分類器在最終分類的作用越大。從式(4)可知,當迭代運算得到的權重系數小于本輪設定的閾值時,下一輪迭代的權重才會增加,否則就保持不變。這樣就可以在一定程度上避免因樣本權重不斷增加而造成算法性能退化的現象。
人臉檢測算法標記出輸入圖像的人臉,人臉識別過程就是進行特征提取,與本地數據庫中的保存的人臉特征進行比對。通過計算輸入圖片和數據庫中的人臉特征的“距離”比較兩者之間的相似度:當兩者間的相似度小于設定的閾值時,則是一個人;否則,不是一個人。
系統中選取的人臉識別算法是卷積神經網絡VIPLFaceNet[18],包含了7個卷積層和2個全連接層的DCNN。直接修改于Hinton教授的學生Alex Krizhevsky在2012年設計的AlexNet[19]。與 AlexNet 相比,VIPLFaceNet有6個主要特點:
1) 第一層卷積層的卷積核大小由11×11轉化為9×9,降低計算量;
2) 由于對初始化參數的幫助有限,移除了局部響應歸一化(LRN)層;
3) 將AlxNet第2層 5×5 的卷積核分解成兩層3×3的卷積核,增加網絡深度的同時沒有增加計算量;
4) 移除AlxNet的所有分組結構,利用異步隨機梯度下降進行并行訓練;
5) 減少了每層的特征圖的數量并且增加一個卷積層,增加網絡深度[20];
6) 網絡結構的末端,全連接層第2層從4 096維降低到2 048維。
系統應用于汽車駕駛培訓管理,而采集圖像的攝像頭裝置固定在汽車儀表盤上,與駕駛員形成一定的夾角,采集的人臉圖像不會全是正臉,難免存在側臉。為了驗證系統中算法的正確率和識別率,需要大量的各種形態的人臉進行測試,但是實際汽車駕駛員訓練中難以找到大量的人臉圖像保證實驗效果,所以人臉檢測算法實驗和系統性能測試實驗采用人臉數據庫進行測試[16]。
實驗中選用CMU_PIE人臉數據庫進行檢測實驗。該數據庫是由卡耐基梅隆大學在2000年11月所建立,包括來自68個人的41 368張照片,其中包括了每個人的13種姿態條件,43種光照條件和4種表情下的照片。選取其中的500張照片,實驗結果對比如圖3~4所示。

圖 3 Adaboost算法檢測效果圖Fig.3 Detection result graph of Adaboost algorithm

圖 4 改進的Adaboost算法檢測效果圖Fig.4 Detection effect of improved Adaboost algorithm
圖3中,Adaboost人臉檢測算法的正確率為68.4%,漏檢率為31.6%;圖4中,改進后的Adaboost算法檢測正確率為75.2%,漏檢率為24.8%。并且2種算法在各個數目實驗測試集的正確率保持平穩,說明新提出的權重更新規則可以有效地抑制 Adaboost算法的過訓練現象,提高了算法的檢測正確率。而出現漏檢的圖像有共同的特征,即在逆光條件下拍攝,圖像存在嚴重曝光。
為了進一步驗證改進的Adaboost算法的性能,實驗采用FDDB人臉數據庫,此數據庫包含了2 845張圖像(包含5 171張人臉),選擇其中的150張照片,對人臉檢測算法進行測試。改進前的Adaboost算法檢測效果如圖5所示,改進后的Adaboost算法檢測效果如圖6所示。Adaboost算法和改進的Adaboost算法的檢測正確率分別為80.5%和87.1%,漏檢率分別為19.5%和12.9%。

圖 5 AdaBoost算法檢測效果圖Fig.5 Detection result graph of Adaboost algorithm

圖 6 改進后AdaBoost算法的檢測效果圖Fig.6 Detection result graph of the improved Adaboost algorithm
改進后的Adaboost算法的檢測正確率高于原Adaboost算法,達到87.1%,漏檢率低于原Adaboost算法,達到12.9%。說明系統可以從大部分照片中檢測到人臉,對于面部表情、人體姿態和是否佩戴眼鏡沒有嚴格的要求,并且對于一些偏轉角度大的人臉和較小臉也有良好的檢測效果,即改進后權重更新規則可以有效抑制算法的過訓練現象。實驗表明,改進后的Adaboost人臉檢測算法可以應用于汽車兵培訓管理系統。
系統實現后,接下來在ARM平臺上測試系統的正確率和實時率。實驗中采用IMM人臉數據庫,選出左右偏轉共計80張圖像進行測試。測試結果中,有78張圖像比對成功,識別率為97.5%。同時有2張照片比對錯誤,則是因為人臉的偏轉角度過大、表情過于夸張。
分別采用訓練8,30,60張圖像進行識別響應時間的測試,平均識別響應時間分別為3.26,5.73,11.5 s。可以看出,系統的識別響應時間和訓練圖像的數目有關,訓練的圖像數目越多,需要的識別時間就會越長。
采集汽車駕駛員圖像的攝像頭位于儀表盤,采集到的人臉圖像不會存在過大的偏轉角度,駕駛訓練中,學員需要集中精神完成課程,也不宜做出過于夸張的表情。同時,在同期參加培訓的學員數目不會很大,并且在訓練過程中,不要求識別的實時性。所以,該系統可以應用于汽車駕駛培訓管理系統。
基于ARM9的嵌入式人臉識別系統,經大量實驗測試可以保持較高的識別率,可以應用于汽車駕駛培訓管理中,有效避免了駕駛訓練時虛假身份和虛假學時的問題,保證訓練效果。同時因為系統的模塊化思想以及系統擴展性,可以根據不同場景的需求在系統上增加更多的模塊,豐富系統的功能,滿足更多更復雜場景的需求。