徐東勛,李 超,袁昌斌
(中國海洋大學 信息科學與工程學院,山東 青島 266100)
人臉識別是生物特征識別的重要組成部分,相對于其他的生物特征識別技術,人臉識別具有操作簡單、結果直觀、隱蔽性好等優點。從100年多前被提出來后,人臉識別的研究熱度一直沒有降低。隨著互聯網等信息技術的發展,安全識別變得更加重要,人臉識別的應用面也逐漸擴大,在商業、安全以及司法等行業內都有非常廣泛的應用。人臉識別就是通過計算機完成人臉智能判別任務。圖像識別是人臉識別的主要方法。
由于自然條件下不同光照條件、拍攝角度、人臉表情等因素的影響,人臉圖像有較強的不穩定性。找到對這些不利因素不敏感而又能有效鑒別特征的算法是提高識別性能的關鍵。主成分分析(PCA)是目前應用最多的人臉識別方法。但是PCA方法只考慮了圖像的二階統計信息,沒有考慮更高階的信息。基于稀疏編碼的人臉識別則可以得到更高階的信息,但目前的稀疏編碼的識別算法中基函數的學習大多依賴于人臉數據庫,基函數會隨著識別任務不同而需要重新學習得到[1]。
Shan[2]探索了一種模擬人類視覺過程的循環ICA(獨立成分分析)算法。提出通過對自然圖像的應用循環ICA學習,得到一種通用的視覺特征,這種視覺特征能應用在視覺的所有識別任務中。
本文基于稀疏編碼學習到的通用視覺特征,把學習到的通用視覺特征應用到基于稀疏編碼的人臉識別任務中,通過對兩種通用人臉數據庫的實驗,均得到了較高的識別正確率。
稀疏編碼理論由OLSHAUSEN B A和FIELD D J[3]于1996年提出,這種概率模型可以用于捕獲自然圖像的高階相關結構。標準的算式表示為:

X為訓練樣本,X={x1,x2,…,xn},xn代表圖像的第 n個圖像子塊,D為圖像基函數,a為圖像的稀疏表示。
經拉格朗日乘法后的通用算式為:

其中,一階范數‖a‖1來保證稀疏性,有關D的二階范數是為了標準化。研究表明:對式中D,a都不是凸優化函數。但是當其中一個已知時,另一個則是凸優化函數,可解。
求解算法過程如下:
(1)初始化D:用高斯隨機矩陣初始化D,保證D的每一列都標準化。
(2)D為已知,更新a

通過線性編碼可有效解決。
(3)a已知,更新 D

這是個有限制的凸優化問題,可通過優化函數包解決。
(4)在步驟(2)和步驟(3)間循環直到收斂。即可得到圖像的基D和稀疏系數a。
本文中用到的稀疏編碼算法為參考文獻[3]的主頁提供的程序包[4]。
依照參考文獻[2]的模擬人類視覺系統理論,人類在小時候學習到通用的視覺特征,并用到隨后的所有的視覺任務中,識別算法分為兩部分:學習通用的視覺特征和應用到具體的識別任務。
學習通用視覺特征用的自然圖像來自參考文獻[3]的主頁,是10副512×512大小的自然圖像。
首先將10副圖像進行白化處理,然后標準化每副圖像成零平均值和單位方差。白化后,靠近邊界的6個像素被切除以避免邊界影響。每個圖像的大小是500×500。然后提取所有的 2 430 490個 8×8的圖像子塊,每個子塊再減去它的局部均值。
經過上面的處理得到圖像子塊集合為{x1,x2,…}。
首先用高斯隨機變量初始化基函數,接著在每次循環中隨機挑選100副圖像子塊{x1,x2,…x100}。混合矩陣D用下式進行迭代更新:
其中,R=0.01代表學習的速率,ai是在給定輸入xi和現有的混合矩陣D得到的最可能的基本信號源。每次更新后,D的列被標準化成單位長度來加速學習過程。重復這個過程100 000次,如此可得到圖像基函數D。圖1為當a的維數是64時學習到的圖像基函數。
使用參考文獻[2]提到的累積分布函數方法,可以將圖像稀疏表示ai的密集區域拉開距離以便于識別,而非密集的區域則改變不大。得到累積分布函數的方法是使用擬合的方式:首先計算得到所有2 430 490提取圖像子塊的基本信號表示ai,接著在 0~15之間以每格0.001的長度來計算|ai|的柱狀圖。實際|ai|的累積分布函數(cdf)從這個柱狀圖中產生(如圖2所示),接著通過下面的函數調整:

圖1 64維圖像基函數

其中,Γ表示不完整的伽馬函數。

圖2 其中一個|ai|的實際cdf函數和調整后的cdf的函數(a的維數是64)
從10副自然圖像中學習到線性混合矩陣D和非線性激勵函數Gi=g(Fi),g表示標準正態分布的逆函數。這就是所需要的通用的視覺特征,可以不作任何調整直接應用到人臉識別中。
Yale數據庫包含了15個人,每人11副臉部圖像,總共165副灰度圖像,其中一個人的11副圖像如圖3所示。每個人人臉圖像都有很大的光線差異,人的臉部表情和位置也有一定程度的變化。本文選擇直接從參考文獻[5]的主頁下載已經手動剪切和處理過的64×64大小的圖像。

圖3 Yale人臉數據庫其中一人的11副圖像
(1)用Matlab中的imresize函數把所有人臉圖像縮小為32×32。使用2.1節中的白化濾波器白化每個圖像,接著標準化每副圖像成零平均值和單位方差。對每副圖像提取所有的625個8×8大小的圖像子塊。
(2)利用從自然圖像已學習到的基函數D,應用稀疏編碼的求解過程的式(1)得到每個圖像子塊的最可能的稀疏表示 ai。
(3)對ai的每一維應用非線性激勵函數Gi。當a的維數是64時,現在每個人臉圖像被一個625×64=40 000維向量表示。
延續參考文獻[5]中的方法,隨機地將圖像分成訓練和測試樣本集,每次試驗時從每個人的圖像中隨機選取M=2,3,…8個圖像作為訓練圖像,剩余的作為測試圖像。對應每個M,選擇測試50個隨機隊列,最后的識別率是所有隊列的平均識別率。
當訓練樣本和測試樣本選定后,每副圖像由40 000維的向量表示,維數太高對識別的計算時間和準確度都有很大影響,接著選擇使用PCA來降低它的維數。主成分數目的選擇要使95%的方差被捕獲。例如,當M從2~8時,主成分的數目為27~105。接著使用映射的PCA矩陣來得到訓練樣本和測試樣本。
(4)在分類器的選擇上,選用支持向量機 SVM,考慮到非線性SVM的隨維數增加計算時間指數級地增長,而選用線性SVM。采用的參考文獻[4]中用到的多類識別的線性SVM,其中的λ設置為0.01。
表1列出了在測試圖像上識別效果,隨著訓練圖像數目的增加,圖像的識別率逐漸增高,使用參考文獻[5]在其主頁最新更新的結果作為對比,得到的識別效果要明顯地優于參考文獻[5]的結果。即使是其最近更新的結果依舊不如本文的識別率高。

表1 Yale數據庫上的識別率對比
ORL數據庫總共包含400個臉部圖像,分屬40個人,每人10副。這些圖像拍攝在不同的時間、光照條件、臉部表情下,如圖4所示。如Yale人臉識別的實驗一樣,從參考文獻[5]作者的主頁下載已手動對齊和切割的64×64大小的圖像,接著用imresize函數縮小成32×32圖像。具體的實驗步驟與測試Yale數據庫時一樣。從每個人的圖像中隨機挑選M=2,3…….8個圖像作為訓練圖像,剩余作為測試。平均識別正確率如表2所示,本文依然選擇參考文獻[5]和其主頁最近更新的識別率作為比較。

表2 ORL數據庫上識別率的對比

圖4 ORL人臉數據庫的一人的10副圖像
本文算法在ORL人臉數據庫的表現也是隨著訓練樣本數目的增加而增加,并且維數越大越接近參考文獻[5]的結果,如維數為7或8時,得到的結果幾乎沒有差距。
根據參考文獻[2]中的通用視覺特征理論,利用稀疏編碼從自然圖像中學習到基函數和稀疏系數的累積分布函數參數,并利用稀疏編碼應用到人臉識別中。通過選用兩種通用的人臉數據庫進行測試,均得到了比較高的識別率。并與別人的結果進行了對比。算法還有很多可以改進的地方:如分類器的其他選擇、預處理方法的改進等。
[1]楊榮根,任明武,楊靜宇.基于稀疏表示的人臉識別方法[J].計算機科學,2010,37(9):267-269.
[2]SHAN H H,ZHANG L Y,COTTRELL G W.Recursive ICA[C].In Advances in Neural Information Processing Systems,2007:1273-1280.
[3]OLSHAUSEN B A,FIELD D J.Emergence of simple-cell receptive field properties by earning a sparse code for natural images[J].Nature,1996(381):607-609.
[4]YANG J,YU K,GONG Y,et al.Linear spatial pyramid matching using sparse coding for image classification[C].IEEE Confenece on CVPR,2009:1794-1801.
[5]CAI D,HE X F,HE Y X,et al.Learning a spatially smooth subspace for face recognition[C].IEEE Confenece on CVPR,2007:1-7.