徐 昕,梁久禎
(常州大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 常州 213164)(*通信作者電子郵箱jzliang@cczu.edu.cn)
雖然在部分公開的人臉數(shù)據(jù)集上,很多人臉識別算法已經(jīng)取得了非常優(yōu)秀的成績,但這些成績一部分是建立在嚴(yán)苛的實驗環(huán)境基礎(chǔ)之上的。現(xiàn)實中的人臉識別驗證往往面臨著訓(xùn)練數(shù)據(jù)有限、面部特征被遮擋、姿態(tài)變化、復(fù)雜的場景變化、光照變化等多方面的難題,很多傳統(tǒng)的人臉識別驗證算法在這種情況下表現(xiàn)得不是很好,因此現(xiàn)在越來越多的學(xué)者將研究的注意力轉(zhuǎn)向了無約束條件下的人臉識別。
針對無約束人臉識別驗證中的人臉姿態(tài)變化問題,文獻[1-4]利用大量的訓(xùn)練樣本來學(xué)習(xí)尋找姿勢不變特征,并通過提取這些姿勢不變特征來進行人臉識別,然而在人臉旋轉(zhuǎn)角度較大的情況下,人臉圖像在很大程度上被改變,很難尋找到姿勢不變特征,因此人臉矯正方法被許多研究學(xué)者提出。人臉矯正是將圖像中有姿態(tài)變化的非正面人臉矯正為正面人臉的過程,主要有兩種方法:一種是基于二維視角的方法,另一種是基于三維人臉的人臉重建方法。
在基于二維視角的方法中,文獻[5]中提出了一種將統(tǒng)計學(xué)習(xí)的思想引入到圖像合成中的方法,該方法把稠密特征進行對應(yīng)后再把研究對象表示成某一個線性空間的一個樣本。在此基礎(chǔ)之上,文獻[6]中提出了關(guān)于線性物體類的概念,并將線性空間進行了具體化。
在三維人臉重建方法中,文獻[7]使用一個標(biāo)準(zhǔn)的人臉模型和一個光照模型,首先利用主成分分析(Principal Component Analysis, PCA)的方法來進行人臉圖像的特征提取,再通過貝葉斯函數(shù)確定模型中的參數(shù),最后獲得該人臉圖像的三維模型,完成人臉矯正。文獻[8]中利用圖像中物體表面的明暗變化來恢復(fù)其表面各點的相對高度,完成物體的三維重構(gòu)。盡管該方法可行,但它對于遮擋問題以及鏡面的反射問題(眼鏡)十分敏感,并且常常需要事先將面部區(qū)域從背景中分離出來。
與二維視角的方法相比,三維重建的方法精度更高,因此本文主要研究三維空間下的人臉姿態(tài)矯正問題。本文采用的三維矯正方法是一個固定不變的三維人臉模型,無需為每張圖像中的人臉計算出對應(yīng)的三維人臉模型,可以大幅降低算法的復(fù)雜度。
度量學(xué)習(xí)也就是常說的相似度學(xué)習(xí),如果需要計算兩張圖像的相似度,如何度量圖像之間的相似度使得不同類別的圖像相似度小,而相同類別的圖像相似度大就是度量學(xué)習(xí)的目標(biāo)。近年來,針對人臉識別問題,研究人員也提出了一些基于度量學(xué)習(xí)的算法。文獻[9]中提出了一種學(xué)習(xí)關(guān)聯(lián)度量的方法,該算法在對樣本特征進行了降維后,仍可以保留樣本之間的近鄰關(guān)系;還針對關(guān)聯(lián)度量提出了相關(guān)嵌入分析(Correlation Embedding Analysis, CEA)模型和相關(guān)PCA(Correlation PCA, CPCA)模型。文獻[10]中提出了余弦相似度度量學(xué)習(xí)(Cosine Similarity Metric Learning, CSML)模型,該模型利用樣本間的余弦距離來進行相似度度量,能夠有效地進行識別分類。文獻[11]中提出了廣義稀疏度量學(xué)習(xí)(Generalized Sparse Metric Learning, GSML)模型,該方法為許多有代表性的稀疏度量學(xué)習(xí)模型提供了一個統(tǒng)一的角度,并且可以將現(xiàn)有的許多非稀疏度量學(xué)習(xí)模型擴展到稀疏度量學(xué)習(xí)形式。文獻[12]提出了一個相似性度量學(xué)習(xí)方法sub-SML(Simialrity Metric Learning over Subspace),該方法結(jié)合了馬氏距離與相似性學(xué)習(xí),旨在學(xué)習(xí)出更有利于分類的距離變換矩陣,該方法在無約束人臉驗證上取得了不錯的成績。
本文將三維人臉矯正與相似性學(xué)習(xí)方法相結(jié)合,提出了基于三維矯正與相似性學(xué)習(xí)的人臉驗證方法sub-SL(Similarity Learning over subspace),并通過實驗驗證了本文方法的有效性。本文的主要工作有:
1)通過三維人臉矯正將無約束圖像中的多姿態(tài)人臉矯正為標(biāo)準(zhǔn)的正面人臉。完成矯正的圖像中的人臉部分均處在圖像的中心區(qū)域,利用這一特性對圖像進行裁剪,可以將人臉從背景中分離出來。
2)通過個體內(nèi)部子空間的投影,使得特征類內(nèi)變化小而類間變化大,再結(jié)合相似性學(xué)習(xí)算法,能夠更有效地度量兩張圖像之間的相似度。
對樣本特征進行基于個體內(nèi)部子空間的投影可以減小樣本類內(nèi)變化,擴大樣本類間變化,從而更有利于區(qū)分相似圖像對與不相似圖像對。首先,定義個體內(nèi)部協(xié)方差矩陣為:
(1)
令Λ={λ1,λ2,…,λk}和V=(v1,v2,…,vk)為CS的最大的k個特征值及對應(yīng)的特征向量。特征到k維的個體內(nèi)部子空間的映射過程定義:
(2)
需要注意的是,這些特征是通過特征值的倒數(shù)來進行加權(quán)的,這些特征值對大特征值的特征向量進行懲罰,從而減小特征的變化,即個體內(nèi)變化。
(3)
對該f(M,G)函數(shù)進行化優(yōu)化之后可以得到sub-SML的目標(biāo)函數(shù):
(4)
ξt≥0;?t=(i,j)∈U
文獻[13]中提出了一個利用單一、不變的3D人臉模型[14]來進行人臉矯正的方法,其核心思想是利用3D人臉模型作為中介,將輸入的人臉圖像中的人臉區(qū)域投影到一個由3D人臉模型生成的標(biāo)準(zhǔn)坐標(biāo)系(3D模型的合成的正面臉)中后,再利用像素采樣生成一個矯正后的正面人臉。在矯正過程中,需要尋找到輸入圖像與3D模型表面點之間的一個對應(yīng)關(guān)系,也就是需要找到輸入圖像與3D模型的正面2D人臉圖像各像素點之間的對應(yīng)關(guān)系,因此需要借用人臉特征點來完成這個對應(yīng)關(guān)系的預(yù)測。
近年來,國內(nèi)外的學(xué)者提出了很多高效精確的特征點檢測方法,例如主動表觀模型(Active Appearance Model, AAM)[15-16]、監(jiān)督梯度下降法(Supervised Descent Method, SDM)[17]、dlib庫[18]等。本文測試了幾種當(dāng)前比較流行的人臉檢測方法,在權(quán)衡了檢測速度與準(zhǔn)確率后選擇dlib庫來進行人臉的特征點檢測。dlib庫會在框定人臉位置的同時定位出人臉的特征點,由dlib庫檢測出的人臉特征點共有68個,如圖1所示,分別分布在眼睛、眉毛、鼻子嘴巴以及下顎輪廓上。
針對無約束圖像中可能出現(xiàn)的一張圖像上出現(xiàn)多張人臉的問題,需要一個預(yù)處理操作來完成目標(biāo)人臉的篩選工作。通常情況下,作為拍攝者目標(biāo)人物的人臉在圖像中應(yīng)該占據(jù)著比較大的空間,因此在一張圖像有多張人臉的情況下,目標(biāo)人物的人臉相對于照片中其他人臉來說占的空間應(yīng)該更大。但是dlib庫用以定位人臉的人臉框并沒有考慮到人臉圖像中的人臉大小問題,不適合進行目標(biāo)人臉的篩選工作,如圖2所示,所以本文對人臉圖像用VJ(Viola and Jones)算法[19]再次進行人臉定位,對定位出的人臉框的大小進行排序,選取最大的人臉框作為該圖像的目標(biāo)人物,并保存該人物的68個特征點。
圖1 由dlib檢測出的68個特征點的分布Fig. 1 Distribution of 68 feature points detected by dlib
圖2 dlib算法和VJ算法所檢測并標(biāo)注出的人臉框Fig. 2 Face frames detected and marked by dlib and VJ algorithms
對于一個給定了面部紋理的3D模型,利用相機標(biāo)定原理,通過指定一個投影矩陣CM=AM[RMtM],可以生成該3D模型在不同姿態(tài)下的2D人臉合成圖,其中:[RMtM]是由旋轉(zhuǎn)矩陣RM和平移向量tM組成的外部矩陣,AM為內(nèi)部矩陣。文獻[13]通過一個指定的投影矩陣CM生成了該3D模型的正面人臉視圖, 本文將該合成的正面人臉作為參考坐標(biāo)系使用,該正面人臉同時也作為參考圖像IR使用,該參考圖像及其特征點分布如圖3所示。
圖3 參考圖像及由dlib檢測出的68個特征點的分布Fig. 3 Reference image and its distribution of 68 feature points detected by dlib
在生成參考圖像IR時,為圖像中的每個像素點p′存儲其對應(yīng)的三維坐標(biāo)P=(X,Y,Z)T,這兩點之間的對應(yīng)關(guān)系可由式(5)得到:
p′~CMP
(5)
對于輸入的測試圖像IQ,記pi=(mi,ni)T為測試圖像的特征點的二維坐標(biāo),對參考圖像IR同樣也使用dlib進行特征點檢測,并記其特征點坐標(biāo)為pi′=(mi′,ni′)T,通過式(5)可以得到參考圖像特征點pi′所對應(yīng)的在3D人臉模型上特征點的3D坐標(biāo)Pi=(Xi,Yi,Zi)T。
由于部分圖像的人臉姿態(tài)變化較大,因此矯正后的人臉圖像的鼻翼部分以及側(cè)面臉部分會存在像素缺失的問題。針對這一問題,文獻[13]對矯正后的人臉圖像進行了條件性人臉對稱來彌補像素缺失的問題,如圖4所示。所謂條件性人臉對稱,就是有選擇性地進行人臉對稱操作,這樣可以避免在進行人臉對稱時,將一些不該進行對稱的部分進行對稱(例如眼鏡,只出現(xiàn)在半邊圖像中的人手或一些其他的遮擋物)。為了避免不自然的面部表情,眼部區(qū)域在對稱過程中同樣也是被排除在外的。
圖4 人臉對稱操作Fig. 4 Face symmetry operation
雖然人臉對稱操作可以在一定程度上解決矯正后像素缺失的問題,但它也在一定程度上破壞了人臉本身的面部結(jié)構(gòu),會對人臉的識別造成一定的影響,所以本文不對矯正后的圖像進行人臉對稱操作。
在人臉驗證中,保持算法對噪聲以及個體內(nèi)部變化的魯棒性是一個非常具有挑戰(zhàn)性的問題。為了使得提取出的圖像特征對于噪聲魯棒,最普遍的是采用主成分分析(PCA)法進行降噪,將圖像特征降到d維。為了減小個體內(nèi)部變化對識別認(rèn)證結(jié)果帶來的影響,采用子空間投影法,進一步將d維特征臉映射到個體內(nèi)部子空間。d特征臉到k維內(nèi)部個人子空間(k≤d)的映射過程已在1.1節(jié)進行了詳細(xì)介紹,本文只考慮k=d的特殊情況。
根據(jù)文獻[12]以及最近的研究,可發(fā)現(xiàn)相似度函數(shù)
sG(x,y)=xTGy
(6)
(7)
最小化上述關(guān)于G的經(jīng)驗誤差將有利于相似圖像對與不相似圖像對的區(qū)分。加入正則化框架來避免過擬合,學(xué)習(xí)一個魯棒的、并且有區(qū)分性的相似度量函數(shù),約束要優(yōu)化的參數(shù):
(8)
其中:γ為正則化系數(shù);I為單位矩陣。為了便于在更大的可行域內(nèi)求解,通過引入松弛變量,式(8)可重新定義為:
(9)
ξt≥0; ?t=(i,j)∈U
式(9)即為本文算法sub-SL的目標(biāo)函數(shù)的完整形式。
目標(biāo)函數(shù)(9)是一個凸優(yōu)化問題,下面對其進行優(yōu)化。利用拉格朗日對偶性,引入乘子α和β,目標(biāo)函數(shù)(9)可以改寫為:
(10)
通過對G和ξ求偏導(dǎo),可以得到:
(11)
αt+βt=1
(12)
(13)
式(13)是一個標(biāo)準(zhǔn)的二次規(guī)劃(Quadratic Programming, QP)問題。
LFW(Labeled Faces in the Wild)人臉數(shù)據(jù)庫[20]是為了研究無約束環(huán)境下的人臉識別問題而建立的數(shù)據(jù)庫,該數(shù)據(jù)庫中包含5 749人的13 323張圖像,其中有1 680人擁有兩張以上的人臉圖像。該數(shù)據(jù)庫中的所有圖像都是網(wǎng)絡(luò)搜集而來的。該數(shù)據(jù)庫中的人臉圖像姿勢、光照變化很大,包含了不同年齡段的人群,面部遮擋問題大并且場景復(fù)雜多變,是人臉識別領(lǐng)域中非常具有挑戰(zhàn)性的一個數(shù)據(jù)庫。
本文選擇LFW數(shù)據(jù)庫為實驗對象,實驗平臺是Intel Core i5-6300HQ CPU 2.30 GHz, RAM 8 GB的PC,64位Windows 10系統(tǒng)和Matlab 2016b以及Ubuntu 16.04和pyhton 2.7。
首先是針對人臉矯正進行的實驗,在2.2節(jié)中提到,文獻[13]有一個步驟是人臉對稱,而本文選擇省略這一步驟。為了驗證人臉矯正以及人臉對稱操作是否有效,本文在LFW數(shù)據(jù)庫的基礎(chǔ)上另外準(zhǔn)備了4組數(shù)據(jù)集,分別是:1)7080-raw數(shù)據(jù)集,在這個數(shù)據(jù)集中的圖像只進行了人臉矯正而沒有進行人臉對稱,圖像大小為70×80;2)7080-sym數(shù)據(jù)集,在這個數(shù)據(jù)集中的所有圖像在進行人臉矯正后還進行了人臉對稱操作,圖像大小為70×80;3)9090-org數(shù)據(jù)集,這個數(shù)據(jù)集是由文獻[13]的作者提供的,數(shù)據(jù)集中所有圖像都經(jīng)過了人臉矯正以及條件性人臉對稱,圖像大小為90×90;4)LFW-a(Labeled Faces in the Wild-a)數(shù)據(jù)集[21],該數(shù)據(jù)集中的所有圖像都由商用對齊軟件進行了人臉對齊,圖像大小為250×250;5)LFW數(shù)據(jù)庫,即最原始的LFW數(shù)據(jù)庫,數(shù)據(jù)庫中的所有圖像都未作任何改動,圖像大小為250×250。圖5展示了同一個人的同一張原圖在這5組數(shù)據(jù)集的差異。
實驗選擇局部二值模式(Local Binary Pattern, LBP)描述子對這5組數(shù)據(jù)集分別進行特征提取,并且選取了目前比較流行的分類算法如最近鄰(Nearest Neighbor, NN)算法[22]、支持向量機(Support Vector Machine, SVM)[23]、SVDL(Sparse Variation Dictionary Learning)[24]以及sub-SML算法[12]和本文算法sub-SL對這5個數(shù)據(jù)集進行識別分類,以此作為三維人臉矯正算法的一個評價標(biāo)準(zhǔn)。實驗選取100人,每人6張圖進行訓(xùn)練,4張圖進行測試,并將提取的特征統(tǒng)一降到200維(隨機選取的維度),實驗結(jié)果如表1所示。
表1 特征維度為200時5組數(shù)據(jù)集在不同算法上的識別率 %Tab. 1 Recognition rates of 5 datasets under different algorithms with 200 feature dimension %
從表1可以看出:1)在6種不同的算法上,進行了人臉矯正的數(shù)據(jù)集(例如9090-org、7080-sym和7080-raw)都要比沒有進行人臉矯正的數(shù)據(jù)集(例如LFW,LFW-a)的表現(xiàn)好得多,這一結(jié)果表明人臉矯正可以很大程度地提高識別率。2)數(shù)據(jù)集7080-raw在大部分情況下比7080-sym的表現(xiàn)更好,這一結(jié)果驗證了人臉對稱的做法會在一定程度上破壞人臉的面部結(jié)構(gòu),從而影響到識別結(jié)果,因此本文在人臉矯正后不進行人臉對稱的做法是合理的。
圖5 同一原圖在五組數(shù)據(jù)集中的差別Fig. 5 Differences of same original picture in five data sets
本文采用的是基于個體子空間的相似性學(xué)習(xí)算法(sub-SL)。為了驗證本文的sub-SL方法的效果比sub-SML方法[19]以及單獨的度量學(xué)習(xí)方法更好,本節(jié)將針對該方面進行實驗。
下面先簡單介紹基于個體子空間的度量學(xué)習(xí)方法(sub-ML)的目標(biāo)函數(shù):
(14)
ξt≥0; ?t=(i,j)∈U
實驗選取LBP以及基于局部三值模式(Local Ternary Pattern, LTP)描述子分別對數(shù)據(jù)集7080-raw中的圖像進行特征提取,為了研究特征維度對算法的影響,本文用PCA對特征進行降維,并選取了150、200、250、300、350、400這6個維度。同時,為了研究訓(xùn)練樣本數(shù)量對于測試結(jié)果的影響,本節(jié)設(shè)計了兩個實驗:
1) 在該實驗中,選取250對相似圖像與250對不相似圖像組成訓(xùn)練集進行訓(xùn)練,并選取125對相似圖像以及125對不相似圖像組成測試圖像集進行測試。利用LBP進行特征提取的實驗結(jié)果如表2所示,利用LTP進行特征提取的實驗結(jié)果如表3所示。
表2 基于LBP的不同特征維度下數(shù)據(jù)集7080-raw在不同算法上的識別率(訓(xùn)練樣本少)Tab. 2 Recognition rates of different algorithms on dataset 7080-raw with different feature dimensions based on LBP (small training samples)
表3 基于LTP的不同特征維度下數(shù)據(jù)集7080-raw在不同算法上的識別率(訓(xùn)練樣本少)Tab. 3 Recognition rates of different algorithms on dataset 7080-raw with different feature dimensions based on LTP (small training samples)
從表2~3可看出:a)對算法sub-SML與sub-SL而言,用LTP進行特征提取后的最高識別率比用LBP進行特征提取的最高識別率稍微好一點。b)在特征提取方法為LBP時,算法sub-SL的最高識別率為79.6%(特征維度為100),要高于sub-SML的最高識別率73.6%(特征維度為300)和sub-ML的最高識別率74.8%(特征維度為100);在特征提取方法為LTP時,算法sub-SL的最高識別率為80%(特征維度為100),同樣高于sub-SML的最高識別率75.6%(特征維度為200)和sub-ML的最高識別率72.4%(特征維度為200)。c)特征維度的變化對實驗結(jié)果也是存在一定影響的,一般情況下隨著維度的增加,準(zhǔn)確率也有所增加,但在到達一定程度后,維度的增加也會造成噪聲的增加,因此算法準(zhǔn)確率也會受到影響。
2)在該實驗中,選取625對相似圖像與625對不相似圖像組成訓(xùn)練集進行訓(xùn)練,并選取125對相似圖像以及125對不相似圖像組成測試圖像集進行測試。利用LBP進行特征提取的實驗結(jié)果如表4所示,利用LTP進行特征提取的實驗結(jié)果如表5所示。
從表4~5可看出:a)用LTP進行特征提取后的最好的實驗結(jié)果比用LBP進行特征提取的最高驗證準(zhǔn)確率要好。用LBP進行特征提取的實驗結(jié)果中,三種算法的最高驗證準(zhǔn)確率相同,但用LTP進行特征提取的實驗中可以看出算法sub-SL的表現(xiàn)要比sub-SML和sub-ML好得多。b)特征維度的變化對實驗結(jié)果也是存在一定影響的,一般情況下隨著維度的增加,準(zhǔn)確率也有所增加,但在到達一定程度后,維度的增加也會造成噪聲的增加,因此算法準(zhǔn)確率也會受到影響。
綜合以上兩個實驗可以看出:訓(xùn)練圖像對的數(shù)量對于最終的測試結(jié)果還有一定的影響,訓(xùn)練樣本數(shù)量多的情況下,測試結(jié)果會更好一點;在大部分情況下,用LTP進行特征提取要比LBP進行特征提取時的實驗結(jié)果更好一些,而算法sub-SL的表現(xiàn)比sub-SML與sub-ML的表現(xiàn)更好。
表4 基于LBP的不同特征維度下數(shù)據(jù)集7080-raw在不同算法上的識別率(訓(xùn)練樣本多)Tab. 4 Recognition rates of different algorithms on dataset 7080-raw with different feature dimensions based on LBP (large training samples)
表5 基于LTP的不同特征維度下數(shù)據(jù)集7080-raw在不同算法上的識別率(訓(xùn)練樣本多)Tab. 5 Recognition rates of different algorithms on dataset 7080-raw with different feature dimensions based on LTP (large training samples)
本文針對無約束圖像的人臉驗證問題,結(jié)合三維人臉矯正以及基于個體子空間的相似性學(xué)習(xí)方法,提出了基于三維矯正與相似性學(xué)習(xí)的人臉驗證方法。該方法中的三維矯正能夠有效地應(yīng)對無約束圖像中人臉姿態(tài)變化大以及背景復(fù)雜的問題。通過本文的實驗結(jié)果可以看出,相對于以往度量學(xué)習(xí)中常用的歐氏距離,相似度函數(shù)能夠更有效地度量兩張圖像之間的相似度,因此本文方法能夠有效地應(yīng)對無約束圖像的人臉驗證問題,獲得良好的驗證結(jié)果。本文只使用了相似度函數(shù),如何讓相似度函數(shù)與其他距離度量函數(shù)相結(jié)合,更有效地進行距離度量,從而獲得更優(yōu)秀的識別結(jié)果,將是今后的研究方向。