安大海++蔣硯軍
摘要:隨著移動設(shè)備的發(fā)展,人臉識別技術(shù)在移動端得到極為廣泛的應(yīng)用。移動設(shè)備采集的圖像其背景和光照條件等特征更容易發(fā)生變化,進而影響人臉識別的準(zhǔn)確率。本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng),并通過對人臉圖像的預(yù)處理來消除背景及光照條件等特征對人臉識別準(zhǔn)確率的影響,系統(tǒng)對人臉圖像進行直方圖平衡,濾波,橢圓遮罩等方式進行處理,提高了人臉識別的準(zhǔn)確率。本文搭建了真實的人臉識別系統(tǒng),并對圖像預(yù)處理工作能提高人臉識別準(zhǔn)確率的有效性進行了驗證。
關(guān)鍵詞:人工智能;人臉識別;圖像預(yù)處理;BP神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391.41
文獻標(biāo)識碼:A
DOI:10.3969/j.issn.1003-6970.2015.12.018
本文著錄格式:安大海,蔣硯軍.基于BP神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng)[J]軟件,2015,36(12):76-79
0 引言
隨著現(xiàn)代計算機技術(shù)的發(fā)展,人臉識別技術(shù)在安全驗證、人機交流、公安系統(tǒng)等方面得到了』‘泛的使用,并且在視頻會議、檔案管理、醫(yī)學(xué)醫(yī)療等方面也發(fā)揮著很大的作用。所以,人臉識別技術(shù)已經(jīng)逐漸成為人們在人工智能領(lǐng)域所研究的重點課題。人臉識別主要是分為兩個方面:一是人臉檢測,指的是在圖像中檢測是否存在人臉,如果存在人臉,定位出人臉的位置;二是人臉識別,指的是從數(shù)據(jù)庫中已經(jīng)存在的人臉樣本中確定出當(dāng)前人臉圖像的身份。
人臉識別系統(tǒng)的原理是首先在捕捉到的圖像中進行人臉識別,之后將該圖像進行人臉的具體身份匹配,通過BP神經(jīng)網(wǎng)絡(luò)建模,完成人臉識別。當(dāng)前移動設(shè)備越來越多,移動互聯(lián)網(wǎng)時代下的人臉識別技術(shù)場景也越來越多。在移動設(shè)備上捕獲的人臉圖像會出現(xiàn)背景的變換以及光照的變化。背景及光照的變化會影響人臉識別的準(zhǔn)確率。
針對上述問題,本文提出了一種人臉圖像預(yù)處理的方法,用來解決背景及光照對于人臉識別準(zhǔn)確率的影響。同時基于BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)了人臉識別系統(tǒng),驗證了方法的有效性。
1 人臉圖像的預(yù)處理
1.1 人臉及人眼檢測
人臉檢測能在一幅圖像中定位到一個至多個的人臉區(qū)域,主要運用的算法是viola-jones人臉檢測算法。viola-jones人臉檢測算法主要有三個要點:Haar-like特征,AdaBoost算法和Cascade結(jié)構(gòu)。Haar-like特征利用積分圖像快速的計算矩形區(qū)域的差分信號;AdaBoost算法選擇區(qū)分能力強的特征結(jié)合Stump函數(shù)做弱分類器,然后把若干這些弱分類器線性組合在一起增強分類性能;Cascade結(jié)構(gòu)做早期決策,來快速拋棄明顯不是人臉的掃描窗口。
通過viola-jones人臉檢測算法快速定位圖像中的人臉圖像,同時基于人眼做興趣區(qū)域處理,排除掉背景對于人臉識別過程中的處理.具體處理流程如下:首先在圖片中定位人臉,如圖1所示,然后基于人眼的識別,截取人臉面部特征圖像,如圖2所示。
1.2 人臉及人眼檢測
人臉圖像經(jīng)過基于人眼識別的興趣區(qū)域處理之后,可以獲得人眼部分的人臉特征截圖,對于這些特征圖像進行預(yù)處理,可以減少光照和背景對于人臉識別準(zhǔn)確率的影響。
首先對圖像進行直方圖平衡化處理(HistogramEqualization),處理后的圖像有更高的對比度,擴展了圖像灰度值的動態(tài)范圍,使得圖像更加清晰,如圖3所示;然后對圖像進行濾波(smoothing)處理,減少圖像的噪點,如圖4所示;最后對圖像做橢圓遮罩(elliptical mask)處理,在原有圖像中屏蔽掉背景,如圖5所示。
2 BP神經(jīng)網(wǎng)絡(luò)
2.1 BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),可以分為三層,分別為輸入層、隱藏層、輸出層。層與層之間采用全連接映射,同層之間的神經(jīng)單元之間沒有連接,這樣經(jīng)過層層處理,可以實現(xiàn)將輸入的向量X=(xl,x2...xn)非線性映射到向量Y=(yl,y2...yn)。將BP神經(jīng)網(wǎng)絡(luò)用語人臉識別時,通常采用三層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即一層輸入層,一層隱藏層和一層輸入層。如下圖6所示:
神經(jīng)網(wǎng)絡(luò)中的每個神經(jīng)單元是一個單獨的感知器,感知器可以將一個實數(shù)值向量作為輸入,計算這些輸入的線性組合,然后如果結(jié)果大于某個閥值,就輸出1,否則輸出-1。本論文中的感知器采用sigmoid壓縮函數(shù),輸入向量經(jīng)過sigmoid函數(shù)計算之后進行輸出,可以壓縮輸出值,使得整個神經(jīng)網(wǎng)絡(luò)可以較快的進行收斂。Sigmoid函數(shù)計算公式如下:
2.2 沖量項的引入
BP神經(jīng)網(wǎng)絡(luò)在采用反向傳播算法進行收斂訓(xùn)練時,因為采用的梯度下降算法,可能出現(xiàn)收斂較緩慢或者落入局部最優(yōu)解的情況。將梯度下降算法理解為球沿誤差曲面滾下,那么增加的沖量項的作用,就是使得這個小球從一次迭代到下一次迭代時以同樣的方向滾動。沖量有時會使這個球滾過誤差曲面的局部最小值。同時因為它也有增大搜索步長的效果,從而可以加快收斂。沖量項引入后將2.1章節(jié)中的反向傳播算法的d步驟公式替換如下:
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1 人臉識別系統(tǒng)設(shè)計
人臉識別系統(tǒng)主要分為三個模塊,第一個模塊是圖像采集預(yù)處理模塊,采用opencv,可以直接利用攝像頭進行圖像的采集,同時該模塊應(yīng)用ROI算法,對圖像進行預(yù)處理,削弱背景以及光照條件對識別率的影響。第二個模塊是神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊,該模塊通過對訓(xùn)練數(shù)據(jù)的處理,構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型,完成權(quán)值的確定。第三個模塊是人臉識別模塊,該模塊將圖像采集模塊采集得到的圖像輸入到已經(jīng)訓(xùn)練完成的BP神經(jīng)網(wǎng)絡(luò)模型中進行計算,將結(jié)果用歐氏距離進行判定,得到識別結(jié)果。整個系統(tǒng)的結(jié)構(gòu)圖如圖8所示:
3.2系統(tǒng)實驗
本系統(tǒng)實驗的實驗數(shù)據(jù)來源為opencv控制筆記本攝像頭采集的全班同學(xué)人臉照片,人數(shù)共計45人,每人人臉圖像采集數(shù)為10張,其中8張為訓(xùn)練數(shù)據(jù)集,2張為識別結(jié)果測試數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集共計360張,結(jié)果測試數(shù)據(jù)集共計90張。每張人臉圖像的像素為28*23,共計644個像素點。采集的人臉圖像均通過圖像預(yù)處理模塊進行了基于興趣區(qū)域的處理,處理后的人臉數(shù)據(jù)集作為測試數(shù)據(jù)。
該實驗采用的硬件平臺為OS:WIN7x64版本;CPU:Intel(R)Core(TM)i3-2350M CPU@2.30GHz;RAM:8GB。
該系統(tǒng)實驗的神經(jīng)網(wǎng)絡(luò)模型分為三層,第一層輸入層由644個神經(jīng)單元組成,每個神經(jīng)單元對應(yīng)一個像素點輸入;第二層隱藏層采用了20個神經(jīng)單元,第三層輸出層共計6個神經(jīng)單元。神經(jīng)網(wǎng)絡(luò)構(gòu)建完成后采用圖6所示的反向傳播算法對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,得到用于人臉識別的神經(jīng)網(wǎng)絡(luò)模型。
在對人臉圖像進行時識別時對于輸出層輸出的結(jié)果,采用歐式距離做判定。例如6個輸出層神經(jīng)單元輸出的結(jié)果是0.1,0.2,0.1,0.2,0.9,將該結(jié)果與所有45位同學(xué)的標(biāo)準(zhǔn)輸出依次計算歐式距離,取距離最小的目標(biāo)為對應(yīng)的判定結(jié)果。經(jīng)計算與1號同學(xué)距離最小,故判定該人臉圖像是1號同學(xué)人臉。
3.3 實驗結(jié)果分析
本文首先對于未經(jīng)圖像預(yù)處理模塊的數(shù)據(jù)集進行了測試,得到如圖9所示的結(jié)果。然后對經(jīng)過了圖像預(yù)處理模塊的數(shù)據(jù)集進行了測試,得到如圖10所示的結(jié)果??梢钥吹浇?jīng)過圖像預(yù)處理模塊的結(jié)果好于未處理的結(jié)果,識別準(zhǔn)確率約提升了6%。
4 結(jié)論
本文給出了一種基于BP神經(jīng)網(wǎng)絡(luò)設(shè)計的人臉識別系統(tǒng)。本文首先介紹了圖像興趣區(qū)域處理和BP神經(jīng)網(wǎng)絡(luò)的基本概念,然后基于python語言實現(xiàn)了BP神經(jīng)網(wǎng)絡(luò),并在實驗室環(huán)境中真實的搭建了整個人臉識別系統(tǒng)。最后通過實驗驗證了圖像興趣區(qū)域處理對于人臉識別正確率的影響。本系統(tǒng)是BP神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于人臉識別領(lǐng)域的典型范例。后續(xù)的工作將針對神經(jīng)網(wǎng)絡(luò)的增量學(xué)習(xí)進行研究,使得該系統(tǒng)可以實時的對于新增的人臉身份進行識別。