安大海++蔣硯軍



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