王奧迪
(四川大學(xué)視覺合成圖形圖像技術(shù)國防重點學(xué)科實驗室,成都610065)
近年來,深度學(xué)習(xí)技術(shù)被廣泛地應(yīng)用在人臉識別中,大大加速了人臉識別的發(fā)展。深度學(xué)習(xí)技術(shù)以數(shù)據(jù)為驅(qū)動,因此一些大規(guī)模的公開人臉數(shù)據(jù)庫也應(yīng)運而生,極大地推進了人臉識別技術(shù)的研究。除了大規(guī)模的數(shù)據(jù)集,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)本身包括目標函數(shù)的設(shè)計也是解決人臉識別問題的主要途徑。目前最新的方法中最具代表的網(wǎng)絡(luò)結(jié)構(gòu)有VGG[1]、GoogLeNet[2]和ResNet[3]等。
盡管目前的人臉識別技術(shù)已經(jīng)取得了顯著的發(fā)展,甚至在一些公開庫上已經(jīng)超越了人眼識別的準確率。但是在解決跨姿態(tài)人臉識別問題上效果仍然不理想。文獻[4]中提到,現(xiàn)有的基于深度學(xué)習(xí)的人臉識別方法,在跨姿態(tài)(正臉與側(cè)臉匹配)的識別任務(wù)上的準確率,相比于正臉間的識別任務(wù)的平均降低了10%左右,而人眼的識別準確率僅僅降低了2%左右。文獻[5]提供了ResNet-18 模型在CFP[4]數(shù)據(jù)集上預(yù)測錯誤的樣本對案例。圖1 展示的是真實標簽同屬于一個人但被模型預(yù)測為不是一個人的樣本對,圖2 展示的是真實標簽不是一個人但被模型預(yù)測為是一個人的樣本對??梢钥吹?,盡管ResNet-18 作為一個表征能力很強的模型,在跨姿態(tài)條件下的人臉識別任務(wù)中仍存在較大的誤差。導(dǎo)致這一現(xiàn)象的主要原因之一是目前用來訓(xùn)練人臉模型的數(shù)據(jù)集中姿態(tài)變化較少或者不均衡。
圖1 預(yù)測錯誤的負樣本對
圖2 預(yù)測錯誤的正樣本對
本文提出一種基于度量學(xué)習(xí)的方法Cross-Pose Pair Loss(下文稱之為CPP Loss)。該方法能夠有效地利用訓(xùn)練集中有限的姿態(tài)變化,主要目標是擴大跨姿態(tài)條件下的類內(nèi)距離和類間距離的差距,有效地提升了基準模型在跨姿態(tài)條件下的人臉識別準確率。
本文用來訓(xùn)練人臉模型的數(shù)據(jù)集使用VGGFace2[6],VGGFace2 是一個公開的大規(guī)模的人臉數(shù)據(jù)集,包含9131 個類別,331 萬張人臉圖片,每個人平均有362.2張圖片。數(shù)據(jù)集分為訓(xùn)練集和測試集,其中訓(xùn)練集包含8631 類,測試集包含500 類。該數(shù)據(jù)集是從谷歌上搜集的,覆蓋了姿態(tài)、年齡、光照、種族和職業(yè)的變化。本文之所以使用該數(shù)據(jù)集作為訓(xùn)練集,也是因為該數(shù)據(jù)集包含了一定的姿態(tài)變化,盡管整個數(shù)據(jù)集上的姿態(tài)變化并不均衡。主要體現(xiàn)在每個人的姿態(tài)變化不同以及整個數(shù)據(jù)集上接近正臉的圖片的數(shù)量遠遠大于姿態(tài)比較大的圖片的數(shù)量。本文所有實驗中用到的訓(xùn)練集是VGGFace2 的子集,包含8625 個人,300 多萬張圖片。
假設(shè){f,nf}是VGGFace2 訓(xùn)練集上的來自同一個人的一組跨姿態(tài)的樣本對,其中f 為接近正臉的圖片,nf 為非正臉圖片。定義CPP Loss 如公式(3),其中i,j表示樣本的類別,B 表示一次送入網(wǎng)絡(luò)的一批樣本的類別集合,表示兩個樣本間的相似度(實驗中使用余弦距離),表示CPP Loss 正如所有的度量學(xué)習(xí)的方法,旨在減小樣本的類間相似度和擴大樣本的類內(nèi)相似度。換句話說,即擴大樣本的類間相似度與類內(nèi)相似度的差距。而CPP Loss 主要針對的是跨姿態(tài)條件下的類內(nèi)相似度和類間相似度。對于一個類別i 的樣本對{fi,nfi},它們之間的相似度即為跨姿態(tài)條件下的類內(nèi)距離,然后分別以fi和nfi作為錨,在樣本集合B 中挖掘最大的跨姿態(tài)條件下的類間相似度。如公式(3)所示,CPP Loss 的優(yōu)化目標就是最小化類間相似度和類內(nèi)相似度間的差值。其中m 為一個間隔參數(shù),旨在保證類間相似度比類內(nèi)相似度至少差m。
本文的實驗代碼均在PyTorch 下完成,訓(xùn)練集和測試集的所有圖片都通過MTCNN[8]檢測的5 個特征點位置做簡單的平面內(nèi)的二維對齊,并裁剪為統(tǒng)一的尺寸112×96。訓(xùn)練基準模型時參考文獻[7]的設(shè)置,其中,間隔參數(shù)m 的值固定為5,尺度參數(shù)S 的初始值設(shè)為30。本文的CPP Loss 方法是基于基準模型繼續(xù)訓(xùn)練學(xué)習(xí)。CPP Loss 方法中,網(wǎng)絡(luò)以跨姿態(tài)的樣本對作為輸入。所以首先需要在訓(xùn)練集VGGFace2 上組織跨姿態(tài)樣本對。具體做法是,將訓(xùn)練集中每個人的圖片按偏航角(yaw)分為接近正臉(小于5°)和非正臉(大于45°)圖片。訓(xùn)練時采取線上組織樣本對的方式,首先隨機采樣一組不同的類別集合,然后針對每個類別,分別在其接近正臉和非正臉圖片組中個隨機采樣一張圖片組成跨姿態(tài)樣本對。
表1 和表2 為實驗結(jié)果對比表,測試集為Multi-PIE[9]的子集,包含249 個人和3029 張圖片。測試協(xié)議為1:1 身份認證。測試時,將測試集中的正臉圖片作為注冊庫(gallery),而查詢庫(probe)按偏航角分為三組,分別為小姿態(tài)(±15°和±30°)、較大姿態(tài)(±45°和±60°)和大姿態(tài)(±75°和±90°)。表1 中與基準模型對比的模型是在基準模型上只使用CPP Loss 繼續(xù)訓(xùn)練學(xué)習(xí)得出的模型??梢钥吹?,CPP Loss 方法在“正臉-較大姿態(tài)”和“正臉-大姿態(tài)”兩組姿態(tài)跨度條件下均對基準模型的準確率有所提升。而間隔參數(shù)在一定的數(shù)值范圍內(nèi),與模型的準確率成正比關(guān)系,具體分析可以參考文獻[7]。表2 中與基準模型對比的模型是在基準模型上使用CPP Loss 結(jié)合AM-Softmax 繼續(xù)訓(xùn)練學(xué)習(xí)得出的模型。可以看到,CPP Loss 結(jié)合AM-Softmax 的方法可以給基準模型在測試集上的準確率帶來更大的提升,并且在三組姿態(tài)跨度條件下都有所提升。
表1 CPP Loss 不同間隔參數(shù)下的實驗結(jié)果對比
表2 CPP Loss 結(jié)合AM-Softmax 不同間隔參數(shù)下的實驗結(jié)果對比
綜合上述的實驗結(jié)果對比分析可以得出,本文提出的CPP Loss 方法,通過在跨姿態(tài)樣本對上的度量學(xué)習(xí),可以進一步提升基準模型在跨姿態(tài)條件下的人臉識別準確率。雖然訓(xùn)練數(shù)據(jù)集上的姿態(tài)變化不大并且存在不均衡現(xiàn)象,但是組織跨姿態(tài)樣本對的方式可以更加有效地利用訓(xùn)練集中的姿態(tài)變化。值得一提的是,如果使用CPP Loss 結(jié)合AM-Softmax 的方法,可以給基準模型的準確率帶來更大的提升,同時保證不損失其在小姿態(tài)跨度條件下的準確率。可以解釋為CPP Loss 擴大跨姿態(tài)樣本間的類內(nèi)距離和類間距離的差距的同時,加上AM-Softmax 的約束可以保證模型在訓(xùn)練樣本上的判別能力。并且相比于基準模型,在該階段的訓(xùn)練過程中,AM-Softmax 會更加地專注于較大姿態(tài)的樣本的學(xué)習(xí)。因為基準模型的訓(xùn)練集中較大姿態(tài)的樣本占整體的樣本數(shù)量的比例較小。
針對跨姿態(tài)人臉識別問題,本文提出的CPP Loss,通過組織跨姿態(tài)樣本對的方式,有效地利用數(shù)據(jù)集中的姿態(tài)變化,使用度量學(xué)習(xí)的方法提升了基準模型在跨姿態(tài)條件下的人臉識別準確率。為解決跨姿態(tài)人臉識別問題提供了一個可行性方法。