王欣宇 趙明濤 桂 揚
(安徽財經(jīng)大學(xué)統(tǒng)計與應(yīng)用數(shù)學(xué)學(xué)院,安徽 蚌埠 233030)
人臉識別主要應(yīng)用于身份的識別鑒定。隨著計算機(jī)運行速度的提高,圖形識別技術(shù)的發(fā)展,以及各種統(tǒng)計軟件的興起,面部識別可以更好地實現(xiàn)自動監(jiān)控與智能預(yù)警,在遠(yuǎn)距離、用戶非配合狀態(tài)下也可以快速確認(rèn)人員身份。應(yīng)用快速人臉檢測技術(shù)可以從監(jiān)控視頻圖象中實時查找人臉,并與人臉數(shù)據(jù)庫進(jìn)行比對,從而實現(xiàn)快速身份識別?,F(xiàn)如今人臉識別產(chǎn)品已廣泛應(yīng)用于政府、金融、邊檢、司法、軍隊、公安、航天、電力、工廠、教育、醫(yī)療等領(lǐng)域,隨著技術(shù)的進(jìn)一步成熟和社會認(rèn)同度的提高,人臉識別技術(shù)將應(yīng)用在更多領(lǐng)域。
國內(nèi)外在上世紀(jì)80年代掀起了對面部識別技術(shù)的研究,研究主要集中在面部表情模式、五官線索及文化差異等因素對識別精度的影響。但人臉識別精確度依然存在一些缺點,很多阻礙因素也隨之暴露,如不同的年齡、光照水平、背景、姿態(tài)等。因此,發(fā)展面部識別技術(shù)的道路還很漫長。
分類算法是指通過已有數(shù)據(jù)集 (訓(xùn)練集)的學(xué)習(xí),得到目標(biāo)函數(shù)f(模型),把每個屬性集映射到目標(biāo)屬性y(類),且y為離散變量。對于同一個人來說,在無特殊情況下不同時期的照片總存在很大的相似性,然而面容的相似度會隨著年齡的變化而逐漸減小,時間越長,面部的差異性就越大,這會對身份的識別造成一系列的困擾。對此,需要建立合理的數(shù)學(xué)模型。當(dāng)給出一個人不同時期的面部照片時,通過分類算法來自動識別是否為同一個人,并根據(jù)人臉數(shù)據(jù)庫中的數(shù)據(jù)判斷人的身份。在面部識別中,常用的分類算法為Fisher判別分析、神經(jīng)網(wǎng)絡(luò)及支持向量機(jī)。
為了提高運算效率,更好地比對不同面部照片的相似性,首先對圖片進(jìn)行分塊處理,采用主成分分析對圖像進(jìn)行特征提取,找到人臉分布的主成分即臉部圖像協(xié)方差的特征向量,然后將特征向量轉(zhuǎn)化成“特征臉”,最后利用判別分析識別面部圖像,計算新臉的權(quán)重集與k個已知人臉權(quán)重集的Euclidian距離(即歐式距離),距離最小的即為未知人臉的身份,并通過分類結(jié)果得到分類矩陣,計算得到識別正確率。
2.2.1 Fisher判別分類原理
Fisher判別分析是將多維數(shù)據(jù)投影到某個方向上,投影的原則是將總體與總體之間盡可能地分開,再選擇合適的判別規(guī)則,將新的樣品進(jìn)行分類判別。子空間分析中,給定N個訓(xùn)練數(shù)據(jù),樣本集合表達(dá)為:
將數(shù)據(jù)標(biāo)準(zhǔn)化處理,首先將Sw和Sb變形為:
然后運用局部保持思想,分別將Sw和Sb擴(kuò)展成局部類內(nèi)散度矩陣和類間散度矩陣,調(diào)整和 為:
其中,Aij表示樣本 Xi和Xj間的相似度:
2.2.2 特征選取
本文利用Yale人臉數(shù)據(jù)庫進(jìn)行研究,探究不同的人在不同時期、不同面部表情的情況下面部識別的準(zhǔn)確性,以下圖所示的六個人的不同照片為例。
圖1 部分Yale人臉數(shù)據(jù)庫
為了簡化計算過程,減少模擬計算的時間,上述照片均進(jìn)行過灰度處理,并處理為100*100像素的圖片,每個像素點以0-255的灰度值進(jìn)行表示,0為黑,255為白,值越大越明亮。
由于每張照片有100*100個像素點,也就是10000個變量。由于變量數(shù)過大,當(dāng)采用主成分分析法對變量進(jìn)行降維處理時,照片數(shù)量遠(yuǎn)遠(yuǎn)小于變量數(shù),因此需要對變量進(jìn)行分塊處理:對圖像形成的灰度矩陣進(jìn)行列分塊,即將每一列作為一個小塊,對小塊進(jìn)行降維,再對所有小塊中提取的主成分進(jìn)行二次降維,最終得到少數(shù)幾個新變量,這些新變量本質(zhì)上為原始10000個變量的線性組合,具體步驟如表1。
?
由表1可知,當(dāng)累計貢獻(xiàn)率到達(dá)90%時,則主成分能夠解釋的信息量較大,即信息損失量較小,所以初步判定提取累計貢獻(xiàn)率達(dá)到90%時的主成分,即第一主成分至第四主成分。下面我們繪制碎石圖進(jìn)行直觀地分析。
圖2 碎石圖
在圖2中,橫坐標(biāo)為各個主成分,縱坐標(biāo)為特征值??梢郧宄乜吹?,在第四主成分之前特征值快速減少,第四主成分以后,特征值下降緩慢,故提取前四個主成分進(jìn)行分析。
得到主成分后我們利用特征值提取圖像中的“特征臉”,每一張圖像都可以由“特征臉”的線性組合構(gòu)成?,F(xiàn)在我們以一張照片為例,列舉出他的原始圖像和四張“特征臉”。
圖3 原始圖像
圖4 特征臉
由圖4可知,特征臉一(a)與左半臉關(guān)系較為緊密,可以表示為左半臉提取出的特征;特征臉二(b)與右半臉關(guān)系較為緊密,可以表示為右半臉提取出的特征;特征臉三(c)與臉部中間關(guān)系相對緊密,可以表示為臉部中間提取出的特征;特征臉?biāo)模╠)是整張臉的面部特征,但由于特征值較小,故面部特征圖片顯示不清楚。
2.2.3 Fisher判別分析
利用上文提取出的主成分,進(jìn)行Fisher判別分析,首先繪制觀測點經(jīng)過標(biāo)準(zhǔn)化變換后的散點圖。
圖5 變換后觀測點的散點圖矩陣
由圖5可以看出,k類別和a類別的觀測點在各個散點圖中,都和其他類別有明顯的區(qū)別。但是其他13類從直觀上來看,難以將其進(jìn)行區(qū)分,所以需要利用量化指標(biāo)對各個類別進(jìn)行區(qū)分,利用距離因素,得到分類矩陣。
?
表2和表3中,橫軸為觀測點的預(yù)測類別,縱軸為觀測點的真實類別。通過表2和表3直觀地進(jìn)行判斷,訓(xùn)練樣本和測試樣本的錯判率沒有顯著差別。計算可知測試樣本分類的正確率為53.33%,訓(xùn)練樣本分類的正確率為52.67%。
最終通過特征值和特征向量得到判別函數(shù)為:
利用判別函數(shù)系數(shù),我們得到擬合的圖片(圖 6)。
圖6 擬合圖片
可以觀察到,擬合圖片顯示出了原圖較多的特征及相似點,擬合效果較好。
首先提取面部的多個主元,用自相關(guān)神經(jīng)網(wǎng)絡(luò)將它映射到空間中,再構(gòu)建一個普通的多層感知器進(jìn)行判別。然后將像素點輸入構(gòu)建好的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行識別,在隱藏層提取數(shù)據(jù)的顯著特征,并對輸入輸出層進(jìn)行非線性轉(zhuǎn)換。最終得到人臉分類結(jié)果,并通過結(jié)果求得分類矩陣,計算識別正確率。
3.2.1 BP神經(jīng)網(wǎng)絡(luò)原理
BP神經(jīng)網(wǎng)絡(luò)是目前運用最廣泛的神經(jīng)網(wǎng)絡(luò)之一,它能學(xué)習(xí)和儲存大量輸入及輸出模式的映射關(guān)系,BP網(wǎng)絡(luò)結(jié)構(gòu)有 3層:輸入層、隱含層、輸出層,如圖7所示。
圖7 神經(jīng)網(wǎng)絡(luò)示意圖
下面為BP神經(jīng)網(wǎng)絡(luò)的具體計算過程。
(1)計算隱含層各神經(jīng)元的激活值Sj。
wj為輸出層至隱含層的連接權(quán);θj為隱含層的閾值。
(2)計算隱含層j單元的輸出值。
閾值θj不斷被修改,閾值的作用反應(yīng)在函數(shù)的輸出曲線上,如圖8所示。
圖8 函數(shù)輸出曲線
可見閾值的作用相當(dāng)于輸出值移動了θ個單位,同理可求出輸出端的激活值和輸出值。
(3)計算輸出層第k個單元的激活值SK。
Vij為隱含層至輸出層的全值;θk為輸出層單元閾值。
(4)計算實際輸出值。
f(Sk)為S型激活函數(shù)
(5)糾正各單元誤差。
(6)循環(huán)記憶訓(xùn)練,得出判別結(jié)果。
3.2.2 重要參數(shù)說明
輸入層神經(jīng)元數(shù)目:在這里輸入層中的神經(jīng)元數(shù)目為10000,即為變量數(shù)。
隱藏層神經(jīng)元數(shù)目:在這里,根據(jù)前面幾種方法,并結(jié)合隱藏層的特點,我們設(shè)置隱藏層神經(jīng)元數(shù)目為5。
輸出層神經(jīng)元數(shù)目:在這里輸出層神經(jīng)元數(shù)目為15,即為分類數(shù)目。
最大迭代數(shù)目:基于人臉識別中變量數(shù)目較多的特點,我們設(shè)置最大迭代數(shù)目為150。
3.2.3 BP神經(jīng)網(wǎng)絡(luò)模型求解
將上述參數(shù)代入模型,構(gòu)建BP神經(jīng)網(wǎng)絡(luò)框架,再將訓(xùn)練樣本代入輸入層進(jìn)行迭代,最終可以得到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型。將訓(xùn)練樣本和測試樣本代入模型進(jìn)行檢驗和正確率計算,圖9為模型的檢驗。
圖9 神經(jīng)網(wǎng)絡(luò)檢驗圖
圖 9中,由迭代誤差圖(a)可知,隨著迭代次數(shù)的增加,迭代擬合誤差線和迭代測試誤差線不斷下降,說明算法不斷收斂,誤差逐漸減小。在回歸誤差圖(b)中,x軸為目標(biāo)值,y軸為預(yù)測值,最佳擬合線為經(jīng)過原點,斜率為1的直線,即為圖中黑線。圖(b)中紅線為實際擬合線,紅線越接近黑線,則預(yù)測結(jié)果越好。分析可知,紅線和黑線之間偏移量較小,則預(yù)測結(jié)果較好。由圖(c)、(d)ROC曲線圖可以看出,訓(xùn)練樣本的ROC曲線明顯在測試樣本ROC曲線上方,說明訓(xùn)練樣本預(yù)測的準(zhǔn)確度高于測試樣本,不能只關(guān)注訓(xùn)練樣本預(yù)測的準(zhǔn)確率,更重要的是關(guān)注測試樣本的準(zhǔn)確度。
通過編程,可以得到訓(xùn)練樣本和測試樣本的分類矩陣(神經(jīng)網(wǎng)絡(luò)分類矩陣形式與上文中判別分析的分類矩陣形式類似。通過分類矩陣的計算可以看出,測試樣本的誤判率較高,訓(xùn)練樣本的誤判率較低。計算可知測試樣本分類的正確率為78.26%,訓(xùn)練樣本分類的正確率為96.85%。由正確率可知,測試樣本分類正確率與訓(xùn)練樣本分類正確率有很大差別,訓(xùn)練樣本分類正確率遠(yuǎn)高于測試樣本分類正確率,故關(guān)注焦點需放在測試樣本上。
基于支持向量機(jī)空間變換的特點,提取圖像的奇異值,將數(shù)據(jù)分布在二維平面內(nèi),并通過內(nèi)積函數(shù),在高維空間內(nèi)確立最優(yōu)分類超平面,以最大間隔將數(shù)據(jù)分開,最后得到人臉分類結(jié)果,并獲取分類矩陣,計算識別正確率。
4.2.1 多分類支持向量機(jī)原理
多分類支持向量機(jī)的基本思想是將多分類思想轉(zhuǎn)化為多個二分類問題,即將K類轉(zhuǎn)化為K個二分類問題。如有5類,將1類作為正類,其余4類作為負(fù)類,然后再取1類作為正類,其余4類為負(fù)類,共做5次二分類問題。判斷類別方法是將最后若干個分類器完成后,將新的樣本輸入每一個建好的分類器中去,最后以投票的方式,把樣本得到的票數(shù)最多的類別作為他的預(yù)測值。
4.2.2 求解過程
支持向量機(jī)訓(xùn)練的步驟如下:
(2)選擇適當(dāng)?shù)暮撕瘮?shù)類型。
(3)利用二次規(guī)劃方法求解如下公式最優(yōu)解,得到支持向量及最優(yōu)Lagrange乘子a*。
(4)利用樣本庫中的一個支持向量X,帶入以下公式:
可得到偏差值b*。
支持向量機(jī)的分類步驟如下:
(1)輸入待測樣品X。
(2)利用訓(xùn)練好的 Lagrange乘子 a*、偏差值b*和核函數(shù),求解判別函數(shù)f(X)。
(3)根據(jù) sgn(f(X))的值,輸出類別。如果 sgn(f(X))為-1,則該樣品屬于類 w1;如果 sgn(f(X))為1,則該樣品屬于類w2。
通過編程求解,得到支持向量機(jī)的分類矩陣。通過分類矩陣的計算可以看出測試樣本與訓(xùn)練樣本都有較低的誤錯判率。計算可知測試樣本分類的正確率為93.33%,訓(xùn)練樣本分類的正確率為100%。由正確率可知,測試樣本分類的正確率與訓(xùn)練樣本分類的正確率均極高。
計算Fisher判別、BP神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)這三種模型的正確率,并進(jìn)行比較分析,最終得出最優(yōu)模型。
表4為各個分類算法的正確率。
?
由表4可知,支持向量機(jī)和BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練樣本和測試樣本的準(zhǔn)確率上遠(yuǎn)遠(yuǎn)大于Fisher判別分析;在測試樣本正確率上支持向量機(jī)仍保持較高的正確率,而BP神經(jīng)網(wǎng)絡(luò)的正確率則大幅衰減,說明支持向量機(jī)在人臉識別上有較為優(yōu)越的表現(xiàn),有進(jìn)一步研究及推廣的價值,而Fisher判別分析和BP神經(jīng)網(wǎng)絡(luò)在人臉識別上則有較大的改進(jìn)空間。
本文通過Fisher判別分析、BP神經(jīng)網(wǎng)絡(luò)及支持向量機(jī)三種分類算法構(gòu)建不同人臉識別模型,并給出三種模型識別人臉的正確率,便于直接比較三種算法應(yīng)用在人臉識別中的優(yōu)缺點,找出最佳人臉識別模型。在利用Fisher判別分析進(jìn)行人臉識別模型的構(gòu)建時,首先對圖片進(jìn)行分塊處理,并利用主成分分析對影響人像差異的向量空間進(jìn)行降維處理;最后運用Fisher判別分析求解判別函數(shù),判別未知人臉的身份,并檢驗?zāi)P偷淖R別準(zhǔn)確率。在依托神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉識別模型的構(gòu)建時,首先提取面部的多個主元,用自相關(guān)神經(jīng)網(wǎng)絡(luò)將面部主元映射到空間中,并將像素點輸入到構(gòu)建好的神經(jīng)網(wǎng)絡(luò)中,提取數(shù)據(jù)的顯著特征;然后對輸入輸出層進(jìn)行非線性轉(zhuǎn)化,得到最終人臉識別結(jié)果,并檢驗識別準(zhǔn)確率。在構(gòu)建支持向量機(jī)進(jìn)行人臉識別模型時,首先提取人像圖片的奇異值;然后通過核函數(shù),利用最大間隔將數(shù)據(jù)分類,得到分類結(jié)果,并檢驗識別準(zhǔn)確率;最后,比較不同模型預(yù)測的正確率大小,選擇最優(yōu)的面部識別模型。但是由于水平和時間有限,本文沒有對支持向量機(jī)進(jìn)行過多的描述。針對這個問題,我們將進(jìn)行后續(xù)研究,深入探討支持向量機(jī)在模式識別特別是人臉識別上的作用。