天天看點

人臉識别概述整理

國内外在該方向的研究現狀及分析

近年來,随着計算機技術的迅速發展,人臉自動識别技術得到廣泛研究與開發,人臉識别成為近30年裡模式識别和圖像進行中最熱門的研究主題之一。人臉識别作為一種顯著的生物特征識别技術, 相較于其他的識别系統而言,具有非接觸和相對友好的特點, 廣泛應用于軍事,金融,安全,日常生活,網際網路電子類産品中。

人臉識别類型分為人臉驗證和人臉識别,人臉驗證(1:1人臉識别),主要用于身份核實,常用手機人臉解鎖,或者一些其他場景的身份核實。人臉識别1:N,主要指系統采集使用者的一張人臉資料後,需要從系統的N張注冊身份中識别出目前人臉,通常情況下人臉識别的難度高于人臉驗證,目前階段人臉驗證的應用場景較為廣泛。

常用的人臉資料庫

在過去的30年裡,出現了許多人臉資料庫,這些資料庫呈現出從小規模到大規模、從單一來源到多樣化來源、從實驗室到真實世界無限制的明顯趨勢。同樣伴随着人臉識别随着在一些資料庫(如LFW[52])的性能趨于飽和,越來越多的複雜資料庫被不斷開發出來,以友善FR的研究。也可以說,人臉資料庫的發展過程在很大程度上引領了FR研究的方向。

毫無疑問,基于deep人臉識别需要大量的資料進行訓練,為解決此類問題,陸續不少學者為此也做了不少貢獻, 2014年李子青實驗室公開的人臉識别資料集CASIA-Webface,此資料集主要收集來自網絡人臉圖檔,包含10575id,494414張圖像。VGGFace2 提供大規模的深度訓練資料(單個ID圖像數量多),其包含331萬圖檔,9131個ID,平均圖檔個數為362.6。該資料集是從谷歌中下載下傳的,包含不同姿态、年齡、光照和背景的人臉圖檔,其中約有59.7%的男性。除了身份資訊之外,資料集還包括人臉框,5個關鍵點、以及估計的年齡和姿态資訊。MS-Celeb-1M和Mageface提供了大規模的廣度訓練資料集(人群覆寫面廣),其中包含許多場景,但每個場景的圖像有限。資料集的寬度確定了訓練的模型能夠覆寫各種人的不通場景下的變化。(如fig1,參考文獻[51]給出的fr資料集的時間線)

人臉識别概述整理

Fig.1(fr資料集演化時間線[51],2007年以前,fr主要集中在小規模資料集上,2007年無限制人臉資料LFW,2014年,casia-webface提供第一個大規模公共資料集)

人臉識别概述整理

   Fig.2(常用的一些fr資料集,及資料特點特征[51])

人臉識别技術發展

基于人臉識别的技術發展經曆由傳統方法到深度學習方法的演化,上個世紀90年代,一度比較流行的特征臉[1]的方法,傳統的方法通常依賴于手工設計的特征,如線性子空間[2],流行[3],稀疏表示[4],LBP[5],sift[6]等全局或局部特征,後通過PCA分析或線性判别器LDA或者svm等分類的方式,實作人臉的分類,這種傳統的方法比較難以在實際場景中應用,主要是手工設計的特征很難準确描述人臉的變化,如姿态,光照,表情,化妝等,且設計手工特征本身過于依賴設計者本身的經驗,導緻在很長一段時間,人臉識别技術更多局限于實驗室方面技術的提升,距離實用化差距較大。

2012年,AlexNet[7]以比較大的優勢赢得ImageeNet物體分類競賽,大家逐漸将注意力轉到深度學習方法上,用來解決一些傳統方法等效果不盡理想的領域如目标檢測,物體識别,場景分割等也包括人臉識别,深度學習的方法也在如上的技術領域展現出巨大的優勢,

在2014CVPR會議上,FaceBook提出的deepface[8]方法,首次将深度學習的方法成功運用在人臉識别技術中,這也算是深度神經網絡在人臉識别領域的奠基之作,首次機器的識别率在非限制場景下(LFW的資料集)逼近了人類的水準(DeepFace:97.35% vs Human:97.53%),deepface通過一9層的深度神經網絡,400萬張人臉訓練資料訓練得到,使用了3D人臉模組化來解決人臉對齊的問題。

人臉識别概述整理

        Fig 3.  Deep face 網絡結構圖

之後2015年,Google推出的facenet[27],使用三元組損失函數(triplet loss)代替分類問題常用的softmax交叉熵損失函數。同時為了減少deep運算量和模型參數,網絡采用inception模型,在LFW資料集上取得99.63%的準确率。

人臉識别概述整理

            Fig4    triplet loss

香港中文大學湯曉鷗團隊2014-2015之前提出的deepID1,2,3[53][54][55],deepId1使用multi-patch分别訓練模型最後組合成高維特征,人臉驗證階段使用聯合貝葉斯的方法。DeepID2在deepID1的基礎上對損失函數做了改進,主要是增加verification loss,降低類内的間距。DeepId3采用vggnet和googlenet兩種神經網絡架構用于人臉特征提取。

如上人臉識别算法損失函數采用或近似于Softmax的方式,softmax損失函數本身是用于解決多分類問題,其在閉集資料集上表現比較好,在面對人臉識别(主要應用是開集場景)時,缺乏類内和類間距離的限制,實際效果不是特别理想,是以後期直至現在,不少學者将人臉識别的優化方向集中loss函數優化,主要是希望增大類間距離,降低類内距離。

如2016提出的Center Loss[30],是基于softmax的改進,Center Loss的整體思想是希望每個batch中的每個樣本的feature距離目前feature 所屬的類中心的越小越好,也就是類内距離要越小越好,作者設計的損失函數包含softmax loss和 center loss,并用參數λ來控制二者的比重

人臉識别概述整理

             Fig5   center loss

人臉識别概述整理

Fig 6 mnist資料集 centerloss 分類示意圖

如圖fig6,可以看到調節不同的loss函數權重參數,centerloss的分類效果不同,其主要做的事情就是盡可能保證類内間距足夠小,但centerloss本質上是沒有解決分類開集的問題

在ICML2016上提出的L-softmax[28],也是對softmax做了優化,主要是在loss函數中引入marge的概念,也算是large-marge系列也應用于人臉的初作,後續大部分人臉識别方面的優化工作都是基于marge的思想對loss函數進行優化,L-softmax在網絡結構設計上将最後一層分類層的偏置項去掉,将權重項和特征的内積轉化為向量夾角的方式,并通過增加一角度margin增加模型的學習能力。Loss函數如下

人臉識别概述整理

Fig7    L-Softmax損失函數

2017年提出的sphereface[30]提出的A-softmax,其針對l-softmax做了微小改進,通過歸一化權重系統,同時增加了乘性稀疏t,将同類資料壓縮在一個緊緻的空間。

人臉識别概述整理

                   Fig8 A-softmaxloss

2018年CosineFace[56]提出的AM-softmax,同樣采用marge的思想,其最明顯的變化就是将cos(t⋅Θ𝑦𝑖)中的t提出來變成cos(Θ𝑦𝑖)−t

人臉識别概述整理

                   Fig 9 AM-softmax loss

其相對于SphereFace而言要更加容易實作,移除了人為構造函數φ(θyi),減少了複雜的參數計算 ,訓練過程變得簡潔同時也能夠實作收斂 ,模型性能也有明顯的改善。

在2018年提出ArcFace[31]可以看做是am-softmax的改進版本,其将角度marge置于cos(θ)函數内部,使得cos(θ+t)在θ∈[0,π−t]範圍内要小于 cos(θ),這一限制使得整個分類任務的要求變得更加苛刻,ArcFace同時對特征和權重歸一化,又加入固定的特征尺度因子S,在對清洗後的megaface資料集跑出state-of-art的結果。

人臉識别概述整理

Fig10   arcface loss

人臉識别概述整理

     Fig11  [31]中給出的部分人臉識别方法對比結果

經過這些年的發展,基于深度神經網絡的人臉識别方法在人臉識别方面取得巨大的進步,應對人臉姿态,燈光或者表情變化上表現出相對于傳統方法巨大的優勢,相比于傳統方法,盡可能減少手工選擇特征中基于經驗的判斷。同時deep的方法特别适合解決大樣本訓練集,通過學習大量的資料,配合網絡架構在層次上抽象不同的特征表示,提升識别性能。

介于深度學習相對于傳統方法巨大的優勢,基于deep的方式也應用在人臉識别所有相關的領域.[9]文中詳盡描述了基于deep的方法應用在人臉檢測對齊方面的技術,[10]總結了最近這些年人臉對齊方面的技術文章,[51][60]也總結最近這些年人臉識别技術方向的一些進展。

人臉識别基本處理流程

通常的人臉識别步驟一般包含如下5個環節

  1. 資料預處理
  2. 人臉檢測
  3. 人臉對齊
  4. 人臉特征提取
  5. 人臉比對

有時我們也将1,2,3環節統稱為face detection環節。

  1. 資料預處理環節,主要是消除資料差異,如光照,姿态
  2. 人臉特征提取環節
  3. 人臉比對環節

通常大家關注比較多環節是人臉檢測,人臉特征提取環節

人臉檢測

現在的人臉檢測方法繼承了一般目标檢測方法的成果,常用的目标檢測方法一般分為two-stage和one-stage方法,前者如Faster R-cnn[32,33,34],後者如比較經典的目标檢測算法SSD[35][36].

提到人臉檢測方法,不得不提到viola-jones[37],實時人臉檢測的基石之作。這種方法首次将目标檢測方法引入到商業實用,其主要的技術貢獻:引入harr-like特征,利用積分圖像快速計算多尺度滑動視窗特征,采用adaboost算法将若幹弱分類器組合成強分類器,cascade結構快速抛棄非人臉區域

同樣基于基于級聯檢測的方法MTCNN[38],提出一種将人臉檢測和對齊結合起來的方法,MTCNN通過三個級聯(Pnet,Rnet,Onet)的卷積神經網絡對人臉檢測實作由粗到細的處理,同時在每個階段實作以多任務的人臉檢測(人臉/非人臉判斷,人臉框回歸和特征點定位) STN[39]将人臉檢測和人臉特征點結合起來的two-stage方法。

   通常two-stage的檢測方法基于faster-rcnn架構,在第一stage階段生成候選區域,第二階段對候選區域進行分類和回歸,faster-rcnn抛棄了傳統的滑動視窗和selective search的方式,通過RPN生成檢測框,極大提升檢測框的生成速度。。

   One-stage的方式其主要是思路是在圖像多個特征層上進行密集采樣,抽樣時設定不同的尺寸和長寬,利用cnn提取特征後進行分類和回歸,其優勢主要是速度快,缺點對小目标檢測率不高。

 在人臉檢測中,不得不提到anchor機制,anchor機制是現有目标檢測的标配。個人了解,anchor機制可以了解成神經網絡模式下的候選框,解決的問題是檢測目标scale和aspect ratio變化範圍大,相對于人臉來說,人臉的aspect ratio相對固定,人臉檢測主要面臨的問題是多出度,姿态,遮擋,無限制場景等問題。

人臉檢測一般情況下采用多任務輸出的方式進行訓練,如retinaface[57], 利用聯合監督和自我監督的多任務學習,實作在多尺度人臉檢測及定位.

人臉特征提取

人臉特征提取通常根據提取的主幹網絡架構分為主流網絡和輕量級網絡架構,前者如VGGNet,googlene, resnet, senet

[11][12][13][14],通常這類網絡更偏重于實際應用過程中的性能,相對于輕量級網絡,其網絡結構深度一般偏深,參數量和模型偏大,性能也偏好。針對輕量級網(mobilenetv1,shufflenet,

mobilenetv2 [18][19][20])而言,其主要是解決在使用應用過程中的工程問題,現階段嵌入式裝置由于算力或者記憶體有限,導緻一些主流網絡在嵌入式裝置上應用受限,輕量級網絡剛好可以彌補這個損失,如現在輕量級網絡模型應用于人臉識别方面的文章[15][16][17][],當然主流網絡通過剪枝[21],量化[22]等方法實作模型壓縮。

人臉識别概述整理

                  Googlenet

人臉識别概述整理

                    Resnet

人臉識别概述整理

                  DeepId 網絡結構

人臉識别概述整理

               Fig 11   deepID 特征提取環節

DeepID[53]網絡結構和普通的卷積神經網絡類似,主要在倒數第二層,與con-layer4和max-pooling layer3相連,這種連接配接方式可以擷取多尺度的特征(神經網絡本身有層數越高感受野越大的特點),另外deepID會根據人臉關鍵點資訊,在人臉上提取多組patch資訊,最終組合成人臉特征。

  輕量級網絡模型mobilefacenet[57] 以google提出的輕量級模型mobilenetV2為基礎,加入了全局深度卷積優化政策。作者在MS-Celeb-1M資料集上進行訓練,最終的模型參數量不到1M,模型size大概4M,在LFW資料集上獲得99.55%的準确度,可以媲美一些傳統的大cnn模型

人臉識别概述整理

      Fig12 Mobilefacenet 網絡結構圖

另外人臉特征提取的訓練過程看,可以将人臉識别了解為有監督的目标分類問題。Loss的設計對于網絡結構提取特征的影響,最直覺的了解就是通過計算Loss反向傳播方式來實作對模型參數的更新,不同的Loss設計可以使模型更加側重于學習到資料某一方面的特性,并在之後能夠更好地提取到這一“獨有”的特征,是以Loss對于網絡結構優化有導向性的作用,在設計loss函數環節中通過loss限制對人臉特征提取,盡可能使得特征的類内間距盡可能小,類間間距盡可能大。在目标分類領域,比較經典的loss函數,softmax loss,函數定義如下:

人臉識别概述整理

這類loss函數早前經常用在人臉識别方向[23],但.Softmax loss本身有一些固有缺點,權重系數矩陣 W ∈ 𝑅 的次元随着 ID 數量n的增加而線性增加,基于softmaxloss學習到的特征對于 closed-set 的分類效果很好,但是對于 open-set 的判别能力不夠 (對于不會增加新的類别的資料集使用分類可以取得較好的結果,但在人臉識别的實際應用場景中效果并不理想)

由于softmax自身在人臉識别方向上的一些缺陷,大家也針對softmax進行了諸多改進。如采用雙限制的loss function設計[24][25][26],都是采用softmax + contrastice loss的方式:

人臉識别概述整理

目的使得同類特征的L2距離盡可能小,不同類特征的L2距離大于margin(間隔),同樣采用這種思路的Facenet[27],其雖然沒有用softmax,而是采用triplet loss,其主要思路還是盡可能壓縮類内距離,擴大類間距離

近些年,人臉識别算法loss設計以 margin為主,其主要特點是重塑了softmax函數,

人臉識别概述整理

,或通過歸一化權重因子,或歸一化特征因子,或引入一些新的限制項margin,其實從

人臉識别概述整理

公式看出,large margin系列方法的優化目标就是讓權重w和特征向量f之間的夾角盡可能把小,進而實作網絡提取特征使得同類目标盡可能接近,基于這種思路的一些相關文獻如L-softmax[28],sphereface[29],centerloss[30],additive margin loss [31]等。

哎  失敗,年紀大了聯系老師讀博都聯系不到,麻煩看到的網友覺得有用點個贊

繼續閱讀