王欣宇 趙明濤 桂 揚
(安徽財經大學統計與應用數學學院,安徽 蚌埠 233030)
人臉識別主要應用于身份的識別鑒定。隨著計算機運行速度的提高,圖形識別技術的發展,以及各種統計軟件的興起,面部識別可以更好地實現自動監控與智能預警,在遠距離、用戶非配合狀態下也可以快速確認人員身份。應用快速人臉檢測技術可以從監控視頻圖象中實時查找人臉,并與人臉數據庫進行比對,從而實現快速身份識別。現如今人臉識別產品已廣泛應用于政府、金融、邊檢、司法、軍隊、公安、航天、電力、工廠、教育、醫療等領域,隨著技術的進一步成熟和社會認同度的提高,人臉識別技術將應用在更多領域。
國內外在上世紀80年代掀起了對面部識別技術的研究,研究主要集中在面部表情模式、五官線索及文化差異等因素對識別精度的影響。但人臉識別精確度依然存在一些缺點,很多阻礙因素也隨之暴露,如不同的年齡、光照水平、背景、姿態等。因此,發展面部識別技術的道路還很漫長。
分類算法是指通過已有數據集 (訓練集)的學習,得到目標函數f(模型),把每個屬性集映射到目標屬性y(類),且y為離散變量。對于同一個人來說,在無特殊情況下不同時期的照片總存在很大的相似性,然而面容的相似度會隨著年齡的變化而逐漸減小,時間越長,面部的差異性就越大,這會對身份的識別造成一系列的困擾。對此,需要建立合理的數學模型。當給出一個人不同時期的面部照片時,通過分類算法來自動識別是否為同一個人,并根據人臉數據庫中的數據判斷人的身份。在面部識別中,常用的分類算法為Fisher判別分析、神經網絡及支持向量機。
為了提高運算效率,更好地比對不同面部照片的相似性,首先對圖片進行分塊處理,采用主成分分析對圖像進行特征提取,找到人臉分布的主成分即臉部圖像協方差的特征向量,然后將特征向量轉化成“特征臉”,最后利用判別分析識別面部圖像,計算新臉的權重集與k個已知人臉權重集的Euclidian距離(即歐式距離),距離最小的即為未知人臉的身份,并通過分類結果得到分類矩陣,計算得到識別正確率。
2.2.1 Fisher判別分類原理
Fisher判別分析是將多維數據投影到某個方向上,投影的原則是將總體與總體之間盡可能地分開,再選擇合適的判別規則,將新的樣品進行分類判別。子空間分析中,給定N個訓練數據,樣本集合表達為:



將數據標準化處理,首先將Sw和Sb變形為:

然后運用局部保持思想,分別將Sw和Sb擴展成局部類內散度矩陣和類間散度矩陣,調整和 為:

其中,Aij表示樣本 Xi和Xj間的相似度:

2.2.2 特征選取
本文利用Yale人臉數據庫進行研究,探究不同的人在不同時期、不同面部表情的情況下面部識別的準確性,以下圖所示的六個人的不同照片為例。

圖1 部分Yale人臉數據庫
為了簡化計算過程,減少模擬計算的時間,上述照片均進行過灰度處理,并處理為100*100像素的圖片,每個像素點以0-255的灰度值進行表示,0為黑,255為白,值越大越明亮。
由于每張照片有100*100個像素點,也就是10000個變量。由于變量數過大,當采用主成分分析法對變量進行降維處理時,照片數量遠遠小于變量數,因此需要對變量進行分塊處理:對圖像形成的灰度矩陣進行列分塊,即將每一列作為一個小塊,對小塊進行降維,再對所有小塊中提取的主成分進行二次降維,最終得到少數幾個新變量,這些新變量本質上為原始10000個變量的線性組合,具體步驟如表1。

?
由表1可知,當累計貢獻率到達90%時,則主成分能夠解釋的信息量較大,即信息損失量較小,所以初步判定提取累計貢獻率達到90%時的主成分,即第一主成分至第四主成分。下面我們繪制碎石圖進行直觀地分析。

圖2 碎石圖
在圖2中,橫坐標為各個主成分,縱坐標為特征值。可以清楚地看到,在第四主成分之前特征值快速減少,第四主成分以后,特征值下降緩慢,故提取前四個主成分進行分析。
得到主成分后我們利用特征值提取圖像中的“特征臉”,每一張圖像都可以由“特征臉”的線性組合構成。現在我們以一張照片為例,列舉出他的原始圖像和四張“特征臉”。

圖3 原始圖像

圖4 特征臉
由圖4可知,特征臉一(a)與左半臉關系較為緊密,可以表示為左半臉提取出的特征;特征臉二(b)與右半臉關系較為緊密,可以表示為右半臉提取出的特征;特征臉三(c)與臉部中間關系相對緊密,可以表示為臉部中間提取出的特征;特征臉四(d)是整張臉的面部特征,但由于特征值較小,故面部特征圖片顯示不清楚。
2.2.3 Fisher判別分析
利用上文提取出的主成分,進行Fisher判別分析,首先繪制觀測點經過標準化變換后的散點圖。

圖5 變換后觀測點的散點圖矩陣
由圖5可以看出,k類別和a類別的觀測點在各個散點圖中,都和其他類別有明顯的區別。但是其他13類從直觀上來看,難以將其進行區分,所以需要利用量化指標對各個類別進行區分,利用距離因素,得到分類矩陣。

?
表2和表3中,橫軸為觀測點的預測類別,縱軸為觀測點的真實類別。通過表2和表3直觀地進行判斷,訓練樣本和測試樣本的錯判率沒有顯著差別。計算可知測試樣本分類的正確率為53.33%,訓練樣本分類的正確率為52.67%。
最終通過特征值和特征向量得到判別函數為:

利用判別函數系數,我們得到擬合的圖片(圖 6)。

圖6 擬合圖片
可以觀察到,擬合圖片顯示出了原圖較多的特征及相似點,擬合效果較好。
首先提取面部的多個主元,用自相關神經網絡將它映射到空間中,再構建一個普通的多層感知器進行判別。然后將像素點輸入構建好的BP神經網絡進行識別,在隱藏層提取數據的顯著特征,并對輸入輸出層進行非線性轉換。最終得到人臉分類結果,并通過結果求得分類矩陣,計算識別正確率。
3.2.1 BP神經網絡原理
BP神經網絡是目前運用最廣泛的神經網絡之一,它能學習和儲存大量輸入及輸出模式的映射關系,BP網絡結構有 3層:輸入層、隱含層、輸出層,如圖7所示。

圖7 神經網絡示意圖
下面為BP神經網絡的具體計算過程。
(1)計算隱含層各神經元的激活值Sj。

wj為輸出層至隱含層的連接權;θj為隱含層的閾值。
(2)計算隱含層j單元的輸出值。

閾值θj不斷被修改,閾值的作用反應在函數的輸出曲線上,如圖8所示。

圖8 函數輸出曲線
可見閾值的作用相當于輸出值移動了θ個單位,同理可求出輸出端的激活值和輸出值。
(3)計算輸出層第k個單元的激活值SK。

Vij為隱含層至輸出層的全值;θk為輸出層單元閾值。
(4)計算實際輸出值。

f(Sk)為S型激活函數
(5)糾正各單元誤差。
(6)循環記憶訓練,得出判別結果。
3.2.2 重要參數說明
輸入層神經元數目:在這里輸入層中的神經元數目為10000,即為變量數。
隱藏層神經元數目:在這里,根據前面幾種方法,并結合隱藏層的特點,我們設置隱藏層神經元數目為5。
輸出層神經元數目:在這里輸出層神經元數目為15,即為分類數目。
最大迭代數目:基于人臉識別中變量數目較多的特點,我們設置最大迭代數目為150。
3.2.3 BP神經網絡模型求解
將上述參數代入模型,構建BP神經網絡框架,再將訓練樣本代入輸入層進行迭代,最終可以得到訓練好的神經網絡模型。將訓練樣本和測試樣本代入模型進行檢驗和正確率計算,圖9為模型的檢驗。

圖9 神經網絡檢驗圖
圖 9中,由迭代誤差圖(a)可知,隨著迭代次數的增加,迭代擬合誤差線和迭代測試誤差線不斷下降,說明算法不斷收斂,誤差逐漸減小。在回歸誤差圖(b)中,x軸為目標值,y軸為預測值,最佳擬合線為經過原點,斜率為1的直線,即為圖中黑線。圖(b)中紅線為實際擬合線,紅線越接近黑線,則預測結果越好。分析可知,紅線和黑線之間偏移量較小,則預測結果較好。由圖(c)、(d)ROC曲線圖可以看出,訓練樣本的ROC曲線明顯在測試樣本ROC曲線上方,說明訓練樣本預測的準確度高于測試樣本,不能只關注訓練樣本預測的準確率,更重要的是關注測試樣本的準確度。
通過編程,可以得到訓練樣本和測試樣本的分類矩陣(神經網絡分類矩陣形式與上文中判別分析的分類矩陣形式類似。通過分類矩陣的計算可以看出,測試樣本的誤判率較高,訓練樣本的誤判率較低。計算可知測試樣本分類的正確率為78.26%,訓練樣本分類的正確率為96.85%。由正確率可知,測試樣本分類正確率與訓練樣本分類正確率有很大差別,訓練樣本分類正確率遠高于測試樣本分類正確率,故關注焦點需放在測試樣本上。
基于支持向量機空間變換的特點,提取圖像的奇異值,將數據分布在二維平面內,并通過內積函數,在高維空間內確立最優分類超平面,以最大間隔將數據分開,最后得到人臉分類結果,并獲取分類矩陣,計算識別正確率。
4.2.1 多分類支持向量機原理
多分類支持向量機的基本思想是將多分類思想轉化為多個二分類問題,即將K類轉化為K個二分類問題。如有5類,將1類作為正類,其余4類作為負類,然后再取1類作為正類,其余4類為負類,共做5次二分類問題。判斷類別方法是將最后若干個分類器完成后,將新的樣本輸入每一個建好的分類器中去,最后以投票的方式,把樣本得到的票數最多的類別作為他的預測值。
4.2.2 求解過程
支持向量機訓練的步驟如下:
(2)選擇適當的核函數類型。
(3)利用二次規劃方法求解如下公式最優解,得到支持向量及最優Lagrange乘子a*。

(4)利用樣本庫中的一個支持向量X,帶入以下公式:

可得到偏差值b*。
支持向量機的分類步驟如下:
(1)輸入待測樣品X。
(2)利用訓練好的 Lagrange乘子 a*、偏差值b*和核函數,求解判別函數f(X)。
(3)根據 sgn(f(X))的值,輸出類別。如果 sgn(f(X))為-1,則該樣品屬于類 w1;如果 sgn(f(X))為1,則該樣品屬于類w2。
通過編程求解,得到支持向量機的分類矩陣。通過分類矩陣的計算可以看出測試樣本與訓練樣本都有較低的誤錯判率。計算可知測試樣本分類的正確率為93.33%,訓練樣本分類的正確率為100%。由正確率可知,測試樣本分類的正確率與訓練樣本分類的正確率均極高。
計算Fisher判別、BP神經網絡和支持向量機這三種模型的正確率,并進行比較分析,最終得出最優模型。
表4為各個分類算法的正確率。

?
由表4可知,支持向量機和BP神經網絡在訓練樣本和測試樣本的準確率上遠遠大于Fisher判別分析;在測試樣本正確率上支持向量機仍保持較高的正確率,而BP神經網絡的正確率則大幅衰減,說明支持向量機在人臉識別上有較為優越的表現,有進一步研究及推廣的價值,而Fisher判別分析和BP神經網絡在人臉識別上則有較大的改進空間。
本文通過Fisher判別分析、BP神經網絡及支持向量機三種分類算法構建不同人臉識別模型,并給出三種模型識別人臉的正確率,便于直接比較三種算法應用在人臉識別中的優缺點,找出最佳人臉識別模型。在利用Fisher判別分析進行人臉識別模型的構建時,首先對圖片進行分塊處理,并利用主成分分析對影響人像差異的向量空間進行降維處理;最后運用Fisher判別分析求解判別函數,判別未知人臉的身份,并檢驗模型的識別準確率。在依托神經網絡進行人臉識別模型的構建時,首先提取面部的多個主元,用自相關神經網絡將面部主元映射到空間中,并將像素點輸入到構建好的神經網絡中,提取數據的顯著特征;然后對輸入輸出層進行非線性轉化,得到最終人臉識別結果,并檢驗識別準確率。在構建支持向量機進行人臉識別模型時,首先提取人像圖片的奇異值;然后通過核函數,利用最大間隔將數據分類,得到分類結果,并檢驗識別準確率;最后,比較不同模型預測的正確率大小,選擇最優的面部識別模型。但是由于水平和時間有限,本文沒有對支持向量機進行過多的描述。針對這個問題,我們將進行后續研究,深入探討支持向量機在模式識別特別是人臉識別上的作用。