王錕朋 高興宇
1(中國科學院微電子研究所 北京 100029)2(中國科學院大學 北京 100049)
近年來研究人員在深度學習研究上的重大突破推動了人臉識別算法的快速發展。通過大量有標簽的人臉數據進行監督學習,訓練出的人臉識別模型不斷刷新多個人臉識別數據集,如LFW[1]、MegaFace上的最好成績。但隨之產生了另一個問題:當處理大量無標簽的人臉數據時,如何更快更準確地將這些數據按照個體身份(ID)進行分類。這樣的應用場景涵蓋了社交媒體、安防、執法、大數據分析等多個領域:在社交媒體Facebook中,日均圖片上傳量達到350萬幅;在視頻網站YouTube中,每分鐘有300小時視頻被上傳;在中國大約有1.76億監控攝像頭被安裝在包括機場、火車站、街道在內的公共和私人領域,每月產生的視頻數據量達到EB級別。上述領域產生的數據包含了大量的無標簽人臉數據,當企業需要分析自己的用戶群體,或發生公共安全事件需要排查人員身份時,我們既無法了解人臉的身份,又無法知道數據中包含的人數,因此使用無監督人臉聚類算法對這些無標簽人臉數據進行有效的處理,可以帶來巨大的經濟、社會價值。無監督人臉聚類算法通常面對以下挑戰[2]:1) 數據量巨大,達到十萬甚至百萬級別;2) 類別多:包含幾千甚至上萬個個體身份;3) 真實類別數未知;4) 樣本數量不均衡;5) 類內變化多,人臉照片在無限制環境下獲取,同一人的人臉照片在姿態、光照、分辨率等屬性上相差很大。
本文提出附加間隔Softmax損失[3]與Inception-ResNet-v1[4]結構結合的人臉特征提取模型,采用CASIA-WebFace[15]人臉數據集作為訓練集,在LFW[1]人臉數據集上取得了99.08%的識別準確率和95.01%(FAR=0.1%)的驗證率,超過了Softmax模型和中心損失模型;然后使用基于附加間隔Softmax模型提取的128維人臉深度特征在LFW人臉數據集、LFW與視頻模糊人臉的混合數據集上分別對比分析了k-means算法、DBSCAN算法和近似等級排序[5]聚類算法,實驗結果表明近似等級排序聚類是更適合處理人臉數據的無監督聚類算法;最后對比了基于Softmax模型、中心損失模型與附加間隔Softmax模型的人臉特征應用在近似等級排序算法上的聚類效果。實驗結果表明基于附加間隔Softmax特征的近似等級排序算法是魯棒性較強的人臉聚類算法,有較高的應用價值。
在過去幾年中,研究人員將在ImageNet大賽上取得突破性進展的VGGNet[6]、GoogleNet[7]、ResNet[8]等深度神經網絡結構用于人臉識別研究,并獲得了巨大的成功。在此基礎上,DeepFace[9]使用精準的三維人臉對齊算法對人臉數據進行預處理,然后使用大量人臉數據訓練深層的卷積神經網絡進行識別;FaceNet[10]將三元組損失函數用于人臉識別模型的訓練。至此對于人臉識別任務已經形成了一個通用的范式:首先使用人臉檢測算法檢測人臉,然后使用深度神經網絡模型提取人臉特征,將人臉驗證、識別等問題放在特征空間進行處理。
聚類算法是一種無監督的數據分析方法,被廣泛應用于模式識別、統計以及機器學習領域。在深度學習普及之前,研究人員通常使用手工特征,如HOG特征、SIFT特征,對圖像進行聚類。深度學習被廣泛應用于計算機視覺之后,將圖像的深度特征用于聚類可以取得更好的效果。聚類過程如圖1所示。

圖1 人臉圖像聚類流程圖
圖像聚類的效果不僅取決于聚類算法本身,而且圖像特征和相似度度量方式也起著重要的作用。文獻[11]提出一種基于卷積神經網絡和K-means的圖像聚類算法,首先用卷積神經網絡學習圖像的高階特征,然后用哈希方法將高維特征映射為低維二進制哈希碼,最后利用K-means算法完成聚類。文獻[12]提出一種針對人臉數據的無監督聚類算法,該算法使用等級排序來重新定義特征間的相似度,本質上是一種自下而上的凝聚層次聚類算法。
深度學習為人臉識別任務提供了一種端到端的解決方案,將人臉識別任務作為分類任務來處理[13],如圖2所示,CNN模型的輸入是人臉圖片,模型最后的Softmax層輸出人臉類別的預測結果。但是由于人臉識別任務中個體身份(ID)數量的不可預測性,以及測試集中的ID種類與訓練集沒有重疊,所以在人臉識別算法的推斷過程中通常采取如下做法:首先移除模型最后的Softmax層,保留倒數第二層的全連接層,全連接層的信息是人臉圖片在特征空間的映射,即深度人臉特征(deep face features);然后通過如歐氏距離、余弦距離等度量方式比較人臉特征之間的相似度,完成人臉識別。而模型依然可以按照分類任務進行訓練。

圖2 基于Softmax的人臉識別模型示意圖
分類模型的訓練中最常用的損失函數是Softmax損失函數,主要用于解決多分類問題。Softmax的輸出代表分類圖像被分到每一類的概率,如圖3所示,對于一個n分類器,則輸出一個n維向量,向量中所有元素的和為1。對于一個含有m個樣本(x為訓練樣本,y為對應標簽)的訓練集{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},Softmax輸出的每一個樣本的n個估計概率如下:
(1)

對于整個訓練集,Softmax損失函數如下:
(2)
式中:Wj為權值向量,fj為輸入x(i)的特征向量,二者的夾角為θj,二維可視化效果如圖3(a)所示(圖中二維向量分別屬于9個不同類別)。

(a) 沒有經過權重歸一化 與特征歸一化處理 (b) 經過權重歸一化與 特征歸一化處理

(c) 權重歸一化和特征歸 一化后乘尺度因子s (d) 權重歸一化特征歸一化后乘 尺度因子s并添加間隔m 圖3 二維特征向量在二維球面的可視化
本文使用附加間隔(Additive Margin)Softmax[3]損失函數來優化模型,使屬于同一類別的權值向量Wj與特征向量fj之間的夾角θj更小,不同類別的特征向量fj與fk(j≠k)之間夾角θj更大。首先歸一化特征向量Wj與特征向量fj使得特征向量固定映射到半徑為1的超球上,即‖Wj‖‖fi‖=1,二維可視化效果如圖3(b)所示;然后乘以尺度因子s(s>1),即s·‖Wj‖‖fi‖=s×1=s,超球的半徑變為s,特征可以表達在更大的超球上,如圖3(c)所示;最后添加附加間隔m,使屬于同一類別的權值向量Wj與特征向量fj之間的夾角θj更小,不同類別的特征向量fj與fk(j≠k)之間夾角更大,二維可視化效果如圖3(d)所示。因此附加間隔Softmax損失函數表達式如下:
(3)
使用附加間隔Softmax損失函數訓練模型的過程與使用Softmax損失函數相同,模型訓練完成后,移除附加間隔Softmax層,提取模型倒數第二層的取深度人臉特征。
本文使用Inception-ResNet-V1[4]作為特征提取網絡進行訓練,其結構如圖4所示,它包含了主干網絡模塊,A、B、C三種Inception-ResNet模塊[4]以及A、B兩種縮減(Reduction)模塊[4]。Inception-ResNet-V1結合了Inception結構[7]與ResNet網絡[8]的優點,并且擁有比Inception-v3更快的收斂速度和比Inception-ResNet-v2[4]更少的計算成本。

圖4 Inception-ResNet-V1[4]架構圖
在無監督學習中,訓練樣本的標記信息是未知的,無監督學習的目標是通過對無標記樣本的學習來揭示數據的內在性質及規律。無監督學習中最有效的是聚類算法。聚類將數據集中的樣本劃分為若干個子集,每個子集稱為一個“簇”。通過這樣的劃分,每個“簇”對應一些潛在的概念或分類。人臉聚類算法通過學習數據集中所有人臉樣本在特征空間中的分布規律,將整個數據集劃分為若干個“簇”,每一個“簇”對應預測一個ID。人臉聚類算法可以在只獲得人臉特征而沒有任何標簽和先驗信息的情況下,對大量人臉數據進行分類。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,該算法從樣本密度的角度定義樣本間的相似性,并基于相似樣本不斷擴展“簇”的規模,最終得到聚類結果。DBSCAN通過一組鄰域參數(Eps,MinPts)描述密度的概念,其中Eps表示樣本d的鄰域范圍(度量方式可以是歐式距離、曼哈頓距離等度量方式),MinPts表示樣本d的鄰域至少包含MinPts個樣本。圖5給出直觀解釋,圖中虛線表示鄰域Eps的范圍,d1是核心對象,d2由d1密度直達,d3由d1密度可達,d3由d4密度相連。DBSCAN的“簇”定義是:由密度可達關系導出的最大密度相連樣本的集合。

圖5 DBSCAN定義的基本概念(MinPts=3)
鄰域參數(Eps,MinPts)是影響聚類效果的兩個重要超參數,減小Eps與增大MinPts會使樣本特征滿足“簇”的定義更加困難,不滿足“簇”定義的樣本(離群值)被記作噪聲。因此通過調整超參數(Eps,MinPts),可以使該算法的聚類結果可以包含更少的噪聲。當MinPts=1時,則表示單個樣本也可以滿足“簇”的定義,此時聚類結果中沒有噪聲;當Eps足夠大,所有樣本被定義為一個簇,此時聚類結果中也沒有噪聲。
該算法具有類別數k不需要預先設定、可以處理非凸數據的優點。但是由于DBSCAN算法的鄰域參數(Eps,MinPts)固定,當樣本集D中不同簇Ci的稀疏程度不同時,相同的判斷標準可能會破壞聚類的自然結構,即較稀疏的簇會被劃分為多個簇或密度較大且Eps較小的簇會被合并成一個簇。
近似等級排序(Approximate Rank Order)聚類[5]改進了等級排序(Rank order)聚類[11]。等級排序聚類利用每個樣本的最近鄰樣本來刻畫樣本間相似度,是一種自下而上的凝聚層次聚類算法。不同于K-means聚類算法,等級排序聚類算法無需預設類別數;并且不同于歐氏距離、余弦距離、曼哈頓距離等直接的相似度度量方式,等級排序聚類算法提出一種間接的相似度度量方式——等級排序距離,如下式所示:
(4)
式中:fa表示樣本a的相似度排序列表,它是按照數據集中所有樣本與樣本a的相似度關系遞減排列的,fa(i)表示樣本a的相似列表中的第i個樣本,Ob(fa(i))則表示樣本fa(i)在樣本b的相似列表中的排序位置。這是一個非對稱距離,d(a,b)表示了樣本a以及樣本a相似度列表中比樣本b更靠前的樣本在樣本b的相似度列表中的位置,d(b,a)則相反,通常二者是不等的。在此基礎上,使用一個對稱距離更好地刻畫樣本a、b之間的相似度,如下式所示:
(5)
式中:min(Oa(b),Ob(a))是一個歸一化因子,它的目的是使樣本間的距離可比較,只有當a靠近b,且b又靠近a時,距離D(a,b)的值最小。
若采用線性方法計算每個樣本的相似度列表,則需要O(n2)的復雜度,因此近似等級排序(Approximate Rank Order)聚類提出使用FLANN庫中的隨機k-d樹算法[14]計算出相似度列表的前k個樣本,只使用相似度列表中的前k個樣本進行距離計算。此外重新定義了如下式所示的樣本距離:
(6)
(7)
式中:Ib(x,k)是一個指示函數,當x在b的相似度列表的前k項中出現時,其值為0,否則為1。這就意味著樣本a、b的相似度列表中共同的相似樣本出現頻次的重要性高于共同樣本排序位置的重要性。算法流程如算法1所示。
算法1Approximate Rank-Order算法
輸入:
人臉數據的深度特征F={f1,f2,…,fN},閾值t,相似近鄰數量k
過程:
1. 初始化簇C={C1,C2,…,CN},將每個樣本作為一個“簇”,即C1={f1},C2={f2},…,CN={fN};
2. 隨機k-d樹計算fi(i=1,2,…,N)的前k個近鄰,記作Ofi,k;
3. 對C中所有的fi、fj,根據對應的Ofi,k與Ofj,k計算dm(fi,fj)與Dm(fi,fj),即Dm(Ci,Cj);
4. 如果Dm(Ci,Cj) 5. 將〈Ci,Cj〉作為候選融合對; 6. 對所有候選融合對進行傳遞融合(如果〈Ci,Cj〉與〈Ci,Cj〉都是候選融合對,則合并為一個簇) 輸出: 簇:C={C1,C2,…,Cm} 為了能夠更好地評價人臉聚類算法對無標簽數據的分類能力,本文使用改進F1度量[5]對聚類結果進行評價,如下式所示: (8) 式中:Ppair稱為成對準確率(pairwise precision),它定義為所有簇中的正-正樣本對數量之和與所有簇中的正-正樣本對、正-負樣本對數量之和的比;Rpair稱為成對召回率(pairwise recall),它定義為所有簇中的正-正樣本對數量之和與數據集中所有正-正樣本對數量之比。當每個樣本都被聚類為單獨一個簇時,將會得到一個高的準確率,但是召回率會很低,反之將所有樣本聚類為一個簇時,會得到很低的準確率和高的召回率,因此F1度量將準確率與召回率有機結合起來,只有在準確率與召回率都取較高值時F1度量才能取得較高值。 實驗在Ubuntu16.04系統下進行,CPU為Intel(R) Core(TM) i9-7900XCPU@3.30 GHz,GPU為Nvidia Titan XP,內存為64 GB DDR4 RAM,實驗環境是基于Linux的TensorFlow框架,實驗在GPU模式下運行。 4.1.1訓練數據集 本文使用CASIA-WebFace[15]人臉數據集對模型進行訓練,剔除與測試集LFW[1]重復的3個ID后,該數據集包含10 572個ID的約50萬幅人臉圖片,部分數據如圖6(a)所示。訓練之前對所有人臉圖片進行人臉對齊、裁剪處理,裁剪后的圖片大小為112×96像素。 (a) CASIA-Webface部分數據 (b) LFW部分數據 (c) 視頻模糊人臉部分數據圖6 人臉識別數據集實例 4.1.2測試數據集 本文使用人臉識別領域廣泛使用的LFW數據集對特征提取模型和人臉聚類模型進行測試,該數據集包含5 749個ID的13 233幅人臉圖片,其中4 069個ID僅包含一幅圖片,部分數據如圖6(b)所示。測試之前同樣對所有人臉圖片進行人臉對齊、裁剪處理,裁剪后的圖片大小為112×96像素。LFW的測試協議包含了6 000組人臉驗證測試對,其中3 000對為相同ID,3 000對為不同ID,本文測試了模型在6 000組人臉對上的準確率,以及0.1%誤識別率(FAR)下的驗證準確率。 本文使用從視頻中采集的模糊人臉數據集對人臉聚類模型進行測試,該數據集包含了500個ID的約15 000幅人臉圖片,其中多姿態的清晰人臉圖片約8 000幅,多姿態的模糊人臉圖片約7 000幅,平均每個ID含有30幅圖片,部分數據如圖6(c)所示。先進行與LFW數據集同樣的預處理;測試時將該數據集與LFW數據集混合,組成數據量大、類別數多、樣本數量不均衡、數據屬性差異大的混合測試集,混合測試集中的數據與真實應用場景更加接近,測試結果能更準確地反映出算法的魯棒性和應用價值。 使用附加間隔(Additive Margin)Softmax損失函數,Inception-ResNet-V1網絡,對齊并裁剪后的CASIA-WebFace人臉數據集,訓練人臉特征提取模型。訓練前對訓練數據進行隨機鏡像預處理,訓練時設置附加間隔softmax損失的超參數m=0.35、s=30,每批數據大小(batch size)為256,人臉特征維度128,權重衰減系數5e-4,起始學習率0.1,依次在第18 000、30 000、33 000次迭代后衰減為前一次的十分之一,最終迭代次數為35 000。 然后分別使用Softmax損失函數、中心損失[16](center loss)函數訓練人臉識別模型作為對比實驗。中心損失體現了度量學習的思想,目的是為每個類別學習一個中心cyi,并通過特征與類別中心之間的歐式距離將每個類別的特征fi拉向對應的類別中心,其公式如下: (9) 通常將中心損失與Softmax損失聯合使用,如下式所示: (10) 式中:λ為超參數,本文中λ取0.02。 Softmax模型與中心損失模型同樣采用Inception-ResNet-V1網絡與對齊并裁剪后的CASIA-WebFace人臉數據集從零開始訓練。實驗結果如表1所示。 表1 人臉特征提取模型在LFW測試集上的比較 實驗結果表明,基于附加間隔Softmax的人臉識別模型在LFW數據上具有更高的識別準確率和驗證準確率(FAR=0.1%)。 使用基于附加間隔Softmax模型提取的深度人臉特征對比經典的K-means算法、基于密度的DBSCAN算法以及近似等級排序算法,結果如表2所示。在LFW數據集上,近似等級排序聚類取得了0.801的高分,遠高于其他算法的F1度量得分,并且聚類得到的簇的數量非常接近真值;K-means與DBSCAN算法得分接近,K-means算法設置超參數K等于真值,因此得到的簇數等于真值;DBSCAN算法得到的簇數與真值也較為接近。 表2 基于附加間隔softmax特征的聚類算法 在LFW數據集上的結果比較 如表3所示,LFW與視頻模糊人臉混合集的數據量與數據復雜度較LFW大幅增加,三種算法的F1度量得分都顯著降低,近似等級排序聚類得分仍然明顯高于K-means與DBSCAN算法;K-means算法得分略有降低,DBSCAN算法得分接近0,近乎失效;但聚類得到簇的數量大約是真值的兩倍,這可能是由于模糊人臉數據的引入造成人臉特征類內差異增大,實際屬于同一ID的數據被誤分為多類。計算復雜度方面,近似等級排序聚類用時最少,分別是K-means算法的0.14倍和DBSCAN算法的0.45倍,這是因為隨機k-d樹的使用極大降低了算法的時間復雜度。 表3 基于附加間隔softmax特征的聚類算法 在混合數據集上的結果比較 實驗結果表明近似等級排序聚類更適合處理較大規模的復雜人臉數據。 使用基于Softmax模型、中心損失模型與附加間隔Softmax模型的128維深度人臉特征測試近似等級排序聚類算法。如表4所示,三種特征在LFW數據集上的測試結果差距不大。如表5所示,當數據集規模與復雜度增加,三種特征的測試結果差距變大,附加間隔Softmax特征取得最高分。實驗結果表明附加間隔Softmax特征具有較強的魯棒性。 表4 基于不同人臉特征的近似等級排序聚類算法 在LFW數據集上的結果比較 表5 基于不同人臉特征的近似等級排序聚類算法 在混合數據集上的結果比較 針對數據量巨大、類別多、真實類別數未知、樣本數量不均衡、類內變化多的無標簽人臉圖像分類問題,本文提出了基于附加間隔Softmax特征的近似等級排序人臉聚類算法:首先使用附加間隔Softmax損失結合Inception-ResNet-V1網絡訓練人臉識別模型,然后使用該模型提取深度人臉特征應用于近似等級排序聚類。本文在LFW數據集、LFW與視頻模糊人臉的混合數據集上進行實驗,通過分析識人臉別準確率、驗證率(FAR=0.1%)、F1度量得分、算法復雜度等指標,說明基于附加間隔Softmax特征的近似相似度排序聚類算法具有較強的魯棒性,在處理復雜度的大規模無標簽人臉數據方面具有應用價值。 本文使用的所有人臉數據僅用于科研目的,不做商業用途。3.3 聚類算法評價方法
4 實驗結果與分析
4.1 人臉識別數據集



4.2 人臉特征提取

4.3 人臉聚類算法分析


4.4 人臉特征魯棒性分析


5 結 語