黃怡涓,左劼,孫頻捷
(1.四川大學(xué)計算機學(xué)院,成都610065;2.上海政法學(xué)院,上海200000)
在身份認(rèn)證場景中,人臉已經(jīng)成為顯著的生物特征,近幾年對于人臉識別的研究也越來越多。人臉識別廣泛應(yīng)用于金融、安防、通行和手機解鎖等場景。在計算機視覺領(lǐng)域,人臉識別已經(jīng)是一個研究了很長時間的話題?;谏疃葘W(xué)習(xí)的方法近幾年取得了突破性進展,在LFW 等公開數(shù)據(jù)集上性能遠遠超過了傳統(tǒng)的手工特征方法。深度學(xué)習(xí)方法的動機在于學(xué)習(xí)一個從輸入到特征空間的映射函數(shù),從而獲得人臉圖像在高維特征空間中的表達。特征在高維空間中的性質(zhì)嚴(yán)重依賴于損失函數(shù)的設(shè)計,為了使得人臉圖像的特征表達對于身份具有很強的可分性,基于多分類的方法主要對分類損失函數(shù)進行不同的改進,基于度量學(xué)習(xí)的方法主要探索如何使得類間距離大于類內(nèi)距離。
在神經(jīng)網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)廣泛應(yīng)用于圖像重建、圖像分類、目標(biāo)檢測和人臉識別等。雖然卷積神經(jīng)網(wǎng)絡(luò)在20 年以前已經(jīng)被提出[1],最近幾年硬件的提升才讓訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)成為可能。最初的LeNet5[2]僅有5 層卷積、VGG19[3]增加到19 層,最近幾年高速神經(jīng)網(wǎng)絡(luò)[4]和殘差神經(jīng)網(wǎng)絡(luò)[5]才超過100 層卷積層。卷積神經(jīng)網(wǎng)絡(luò)通常由卷積層、采樣層、激活函數(shù)和批歸一化[6]等組成,常見的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。卷積層利用采用卷積核滑窗的方式獲取下一個特征圖的神經(jīng)元的值,每一次卷積的計算都是一個線性操作。為了讓網(wǎng)絡(luò)具有非線性表達能力,卷積層之后通常接一個非線性函數(shù)也叫激活函數(shù),常用的激活函數(shù)有Relu、Tanh 和Sigmoid 等。當(dāng)特征圖的空間尺寸過大時,一次卷積的計算時間比較高且神經(jīng)元的感受野較小。為了獲得更大的感受野和減少特征計算時間,激活函數(shù)之后會增加一個采樣層,常用的采樣層有最大值采樣和均值采樣。對于一個分類任務(wù),網(wǎng)絡(luò)最后會接一個全連接層,全連接層的維度和類別數(shù)一致。最后通過Softmax 獲得每個類別的概率分布。
圖1 卷積神經(jīng)網(wǎng)絡(luò)PipeLine[3]
度量學(xué)習(xí)是學(xué)習(xí)一個距離函數(shù)直接作為相似度的度量,學(xué)習(xí)的目標(biāo)是使得在特征空間中相似的目標(biāo)離得近、不相似的離得遠。而深度度量學(xué)習(xí)主要是利用深度神經(jīng)網(wǎng)絡(luò)提取輸入的特征表達,在特征所在的高維空間定義一個度量,例如L2 距離、Cosine 距離等,根據(jù)定義的度量性質(zhì)設(shè)計損失函數(shù)進行端到端學(xué)習(xí)。度量學(xué)習(xí)常用于人臉識別等任務(wù)中,如圖2 所示,學(xué)習(xí)的目標(biāo)是使得網(wǎng)絡(luò)收斂后相似的目標(biāo)在定義的度量下(以L2 距離為例)離得更近。
圖2 度量學(xué)習(xí)在人臉識別中的應(yīng)用
多分類的方法是在閉集上訓(xùn)練一個多分類器,設(shè)計分類損失讓閉集上的特征能具有強可分性。在測試階段,底庫和查詢利用閉集上訓(xùn)練的模型來獲取圖像的特征表達。由于測試集是開集,基于多分類思路的識別性能具有如下缺陷:①更多的類別訓(xùn)練效果更好,但是更多的類別嚴(yán)重受限于硬件計算資源,網(wǎng)絡(luò)最后一層全連接層的參數(shù)W ∈Rd×n隨著ID 數(shù)量n 的增加而增加;②基于閉集學(xué)習(xí)到的特征可分性不一定在開集識別中足夠的可分。
多分類方法廣泛運用的損失函數(shù)是Softmax loss,最近有很多工作提出如何讓Softmax loss 學(xué)習(xí)到的特征據(jù)有更強的可分性質(zhì)[7,8,9,10,11,12,13,14,15]。Wen等人提出Center loss[7],利用L2 約束讓Batch 中每個樣本“離類別中心盡可能的小”,也即是減少類內(nèi)距離。這個方法存在一個明顯的缺陷就是訓(xùn)練階段更新類別中心時間成本太高。觀察基于Softmax loss 訓(xùn)練的模型,最后一個全連接層的參數(shù)近似等于每個類別的類中心特征?;谶@個結(jié)論,文獻[10,16]提出對分類的角度添加間隔來增大類間間隔并減少類內(nèi)間隔,但是這些方法為了計算做了很多的近似,訓(xùn)練過程中并不穩(wěn)定。CosFace[11]直接對Cosin 值添加間隔,在公開數(shù)據(jù)集上獲得了比SphereFace 更好的人臉識別性能。
目前在多個公開數(shù)據(jù)集上獲得最佳性能的方法是ArcFace[17],網(wǎng)絡(luò)框架如圖3 所示。對特征和最后一層全連接層的參數(shù)做了模長歸一化之后,參數(shù)和特征的點積等價于Cosine 相似度。利用Arc-Cosin 函數(shù)計算出特征和參數(shù)(近似為類中心)的夾角,然后直接對角度增加間隔,從而獲得更好的類間可分性。
圖3 ArcFace網(wǎng)絡(luò)框架[17]
廣泛使用的分類損失函數(shù)Softmax loss,其計算如公式(1):
xi∈Rd表示第i 個樣本的特征,yi表示分類結(jié)果。在文章里面d=512,Wj∈Rd表示最后一層全連接層參數(shù)W ∈Rd×n的第j 列,bj∈Rn是偏置項。N 和n 分別是Batch size 和類別數(shù)。傳統(tǒng)的Softmax loss 廣泛應(yīng)用于深度人臉識別任務(wù)中[18,19]。傳統(tǒng)的Softmax loss 函數(shù)并不能讓學(xué)習(xí)到的特征具有更小的類內(nèi)方差和更大的類間方差,當(dāng)類內(nèi)方差變大的時候(姿態(tài)、光照和年齡等變化),識別性能會嚴(yán)重下降。
為了簡潔,固定bj=0 ,然后對點積做恒等變換=||Wj||||xi||cos θj,其中θj是參數(shù)Wj和特征xi之間的夾角。通過歸一化,使得||Wj||=1、||xi||=1,對特征做Re-scale 使得模長是s。對特征和參數(shù)做歸一化使得分類只依賴于特征和參數(shù)之間的夾角,學(xué)習(xí)到的特征被約束到一個半徑是s 的超球面上。特征和參數(shù)歸一化之后的損失函數(shù)定義如公式(2)。
每個樣本的特征都是在類別中心的長球面附近,對參數(shù)和特征的夾角添加一個懲罰因子m 來增強類間差異和類內(nèi)一致性,添加懲罰因子m 后的損失函數(shù)定義如公式(3):
作者選擇了8 個不同的ID,每個ID 包含1500 張圖像,訓(xùn)練了Softmax loss 和ArcFace,最后降維可視化后發(fā)現(xiàn)ArcFace 可分性更好,對比見圖4。在多個公開數(shù)據(jù)集上,ArcFace 獲得了最佳的識別性能。
圖4 Softmax和ArcFace特征降維可視化對比圖
度量學(xué)習(xí)方法主要包含三個部分:特征提取網(wǎng)絡(luò)、采樣策略和損失函數(shù)。特征提取網(wǎng)絡(luò)對于人臉識別任務(wù)主要是基于卷積神經(jīng)網(wǎng)絡(luò),不同的計算平臺可以根據(jù)需求選擇或者設(shè)計合適backbone。常用的損失函數(shù)有Contrastive loss[20]和Triplet loss[21]。Contrastive loss 的定義如公式(4):
其中i 和j 分別表示樣本i 和j,yij表示i 和j 是否為相同ID;0 表示不是同一個人,1 表示是同一個人;Dij表示樣本i 和樣本j 之間L2 距離。對比損失優(yōu)化的目標(biāo)使得同一個ID 的距離更小,不同ID 之間的距離區(qū)域常數(shù)?。對比損失沒有充分考慮到正負樣本距離之間的大小關(guān)系,F(xiàn).Schroff 等人[21]提出將Triplet loss作為度量學(xué)習(xí)的損失函數(shù)。Triplet loss 定義了anchor、正樣本點和負樣本點,學(xué)習(xí)的目標(biāo)是使得anchor 和正樣本點之間的距離小于anchor 和負樣本點之間的距離,直觀的理解可以參考圖5。
圖5 Triplet 優(yōu)化目標(biāo)[21]
Triplet loss 定義如公式(5):
其中N 是mini-batch 的大小;i 表示第i 各樣本。Triplet loss 的優(yōu)化目標(biāo)是使得類間距離大于類內(nèi)距離加上要給間隔?。相比Contrastive loss,Triplet loss 增加了類內(nèi)距離和類間距離的大小關(guān)系,最后在公開的人臉數(shù)據(jù)集上的1:1 和1:n 的識別性能均超過了Contrastive loss。其中1:1 表示人臉驗證,1:n 表示人臉識別。雖然三元組有很多優(yōu)點,但是三元組的采樣和Semi-hard 挖掘依然是影響模型性能的重要超參。
基于多分類和度量學(xué)習(xí)的人臉識別方法從優(yōu)化的目標(biāo)上可以分為兩種不同的方法。多分類的思路是利用大量的閉集數(shù)據(jù)訓(xùn)練Softmax loss 等損失函數(shù),讓網(wǎng)絡(luò)學(xué)習(xí)到的特征具有很強的可分性從而能泛化到開集識別數(shù)據(jù)集上。多分類方法學(xué)習(xí)到的人臉特征,其可分性質(zhì)嚴(yán)重受限于閉集上類別數(shù)量,由于網(wǎng)絡(luò)的參數(shù)量和ID 數(shù)量成正比,其類別數(shù)量嚴(yán)重的被計算能力限制住?;诙攘繉W(xué)習(xí)的方法不管是訓(xùn)練還是測試都是面向開集,當(dāng)訓(xùn)練集中樣本較小的情況下依然可以訓(xùn)練。多分類和度量學(xué)習(xí)各有優(yōu)勢,針對人臉識別任務(wù),不管是多分類還是度量學(xué)習(xí)的方法都能在公開benchmark 上獲得不錯的識別性能。雖然在公開的數(shù)據(jù)集上多分類方法獲得了最佳的識別性能,但是當(dāng)需要解決的問題規(guī)模很大的時候,例如工業(yè)界安防、通行和手機解鎖等場景,可能度量學(xué)習(xí)更具有優(yōu)勢,這些場景天生就是開集識別問題。未來可以考慮將多分類和度量學(xué)習(xí)做多任務(wù)學(xué)習(xí)一起優(yōu)化,利用多任務(wù)學(xué)習(xí)的方法優(yōu)化模型。開集上的識別問題,往往需要模型推薦一個閾值,當(dāng)兩張比對的人臉分?jǐn)?shù)超過閾值認(rèn)為是同一個人、低于閾值則不是同一個人。當(dāng)樣本分布變化很大的時候,例如多光照、多姿態(tài)、不同年齡和遮擋變化等,這些場景會導(dǎo)致類內(nèi)和類間的距離方差過大。當(dāng)類內(nèi)和類間距離方差過大閾值便不能對齊,表現(xiàn)為正常光和暗光場景的thr@far 差異過大,目前還沒有閾值對齊方面的研究,未來可以考慮增加這方面的工作。