人臉識別 論文閱讀(2)

理解參考:張雨石博客

  1. DeepID1 (Linkface 孫禕)
    參考論文:Deep Learning Face Representation from Predicting 10,000 Classes
    CVPR 2014,LFW 準確率 97.20%
    主要思想:通過深層網絡學習high-level的特徵表達,利用深層網絡,泛化能力強,容易拓展到未見過的新身份類別。

輸入: 圖片的一個patch
輸出: 10000身份類中的一個類別

爲什麼是10000的分類器,不用二分類? 爲了學習到更有區分能力和簡潔的特徵。
雖然提升了訓練難度,利用神經網絡的強學習能力,同時學習得到的特徵具有一定的泛化能力。爲了證明這點,作者將訓練的softmax輸出層由136增加到4349個,然後觀察分類能力以及之後的人臉識別能力。然後發現,準確率幾乎都是隨着識別種類的翻倍而線性增長的,效果提升很明顯。

爲什麼DeepID神經元數量固定爲160個,比分類輸出差那麼多?因爲DeepID層只有160維,遠遠小於其分類類別,這樣會形成壓縮之後的密集特徵。 作者試圖把4349個輸出作爲特徵,後續的測試慘不忍睹。我理解的是這樣做特徵太稀疏,特徵之間的相關性太強。

trick:

  • 引入了外部數據集CelebFaces和CelebFaces+,因爲LFW雖然身份多,但是很多身份只有一張人臉,更適合測試一些。
  • 輸入圖像的處理。拿到一張圖像,選取60個patch分別訓練60個模型,並行學習,每個模型提取2✖️160維的DeepID特徵。
    這裏"2"的解釋:patch本身和它的水平翻轉。???疑問:是對原patch水平翻轉還是對DeepID之前那一層的輸出矩陣水平翻轉????
    60個patch怎麼來的:先裁剪10個regions,基礎上分別選取3個scales,基礎上再分別選取兩種顏色(RGB和灰度)
    這樣特徵總維數就是160✖️2✖️60。

爲什麼要multi-scale? 我理解的是圖像的尺度大能一覽圖像的全貌,小可以關注一些細節信息,這一點可能對學習有幫助。

如圖,上部分爲10個regions的示例,下部分爲3cales的示例。

  • face representation 使用自己設計的Multi-scale ConvNets結構,提取high-level特徵

  • face verification 使用 Joint Bayesian 或者 Neural Network,經作者實驗證明前者更好。

① face detection:學習5個關鍵點(眼睛、鼻尖、兩個嘴角)

② face alignment:根據兩個眼睛和兩個嘴角的中點,做相似變換(保持形狀不變,大小和方向可變),全局對齊面部。

③ face representation:
對於對齊的人臉,選取60個patch
在這裏插入圖片描述

  • 輸入:如果patch爲長方形,輸入尺寸爲39✖️31✖️k;如果patch爲正方形,輸入尺寸爲31✖️31✖️k( k爲1時爲灰度圖像,k爲3時爲RGB圖像)
  • C1:卷積核爲4✖️4✖️k,20個,特徵圖爲36/28✖️28✖️20
  • M2:池化窗口爲2✖️2,特徵圖爲18/14✖️14✖️20
  • C3:卷積核爲3✖️3✖️20,40個,特徵圖爲16/12✖️12✖️40
  • M4:池化窗口爲2✖️2,特徵圖爲8/6✖️6✖️40
  • C5:卷積核爲3✖️3✖️40,60個,特徵圖爲6/4✖️4✖️60
  • M6:池化窗口爲2✖️2,特徵圖爲3/2✖️2✖️60
  • C7: 卷積核爲2✖️2✖️60,80個,特徵圖爲2/1✖️1✖️80
  • F8(DeepID): 可以形成高度緊湊和預測性的一些特徵。

拉平爲160維的特徵=10regions✖️3scales✖️2(RGB and Gray)✖️2 (翻轉)

值得注意的是CNN最後一層DeepID層不僅和C7直接相連,也和M6相連,作者將之稱爲Multi-scale ConvNets。爲什麼連接兩層,是因爲:C7神經元數量少,攜帶的信息比較少,使用M6可以減少信息損失。這一步的具體做法是:先將C7和M6這兩層拉平(flatten),然後分別和DeepID層全連接,經過ReLU激活函數後的輸出就是DeepID特徵。如公式所述:
在這裏插入圖片描述
上標1表示M6,上標2表示C7

其中,使用Relu作爲激活函數跟在每個卷積層後面,代替Sigmoid,是因爲:gradient的性質不同,Relu的gradient大多是常數,有助於解決深層網絡的收斂問題;而Sigmoid的gradient比較平緩,接近於0,容易造成梯度消失的問題。

④ face verification:
1) Joint Bayesian 聯合貝葉斯

輸入:兩張圖像的DeepID特徵向量
輸出:二分類結果(是or不是)

參考論文:Bayesian Face Revisited: A Joint Formulation,ECCV 2012

在LFW上 準確率達92.4%

聯合貝葉斯模型可表示爲在這裏插入圖片描述在這裏插入圖片描述表示類間差異,在這裏插入圖片描述表示類內差異,都符合高斯分佈,且由訓練數據估算得到。人臉驗證通過對數似然比在這裏插入圖片描述實現。

使用PCA降維,將兩張人臉聯合建模,利用EM算法求解條件概率,後面是具體的推導:

基於普通的 Bayesian Face 的方法:

在這裏插入圖片描述
注意:這裏在這裏插入圖片描述寫錯了,改爲在這裏插入圖片描述

在這裏插入圖片描述作者經過實驗證明,聯合貝葉斯可以增加兩張人臉的可分性。

詳細EM算法求解的過程見這篇文章,沒有搞懂,先跳過????????

關於協方差的解釋:
協方差的意義是度量兩個隨機變量的相關性,正值爲正相關,負值爲負相關。
兩個性質:
在這裏插入圖片描述

其中 ,在這裏插入圖片描述 可以看出協方差矩陣是一個沿着對角線對稱的變量,且對角線爲各個變量的方差。

2 ) Neural Network 神經網絡
在這裏插入圖片描述

驗證用神經網絡只是一個三層的淺層網絡,輸入是成對的圖像patches,640(一對圖像水平翻轉)*60(patch)維,輸出層是2分類結果輸出(是or不是)。


  1. DeepID2:Deep Learning Face Representation by Joint
    Identification-Verification

CVPR 2014

trick:

  • 使用Supervised Descent Method(SDM)算法來檢測關鍵點

  • 在DeepID2的softmax層(softmax作爲識別信號)後添加了驗證信號Logistic Regression作爲最終的目標函數,可以有效減小類內距離

  • 使用 前-後向貪婪( forward-backward greedy) 算法來選擇更有效的DeepID2向量,降低冗餘,節省驗證時間

關於與SDM算法:
求解非線性最優化問題的兩個難點:

  • 方程不可微,或者計算量太大

  • Hessian矩陣太大,或者不是正定矩陣

通過學習得到了一系列下降的方向和該方向上的尺度,使得目標函數以非常快的速度收斂到最小值,迴避了求解Jacobian矩陣和Hessian矩陣。
參考論文:Supervised descent method and its applications to face
alignment, CVPR 2013

在這裏插入圖片描述
現實中可能不會有足夠的計算資源去一次訓練所有的樣本,於是就有了上面右圖的方法,更新每一個daerta(x),每次都會找到一個局部最小值(作爲監督),然後不斷迭代,減少最小值之間的誤差距離(也就是損失函數曲線變得越來越平緩),最終就會找到全局最小值。

① face detection: 通過SDM算法來學習21個關鍵點

② face alignment:基於21個關鍵點做相似變換,全局對齊

③ face representation:
在這裏插入圖片描述
公式表達:

  • 識別信號 :softmax層,n=8192
    在這裏插入圖片描述
    其中 f 爲DeepID2特徵向量,t爲groud truth的類別,在這裏插入圖片描述是softmax參數,在這裏插入圖片描述是目標概率分佈(在這裏插入圖片描述),在這裏插入圖片描述是預測概率分佈。
  • 驗證信號:
    1)基於L2的驗證信號:
    在這裏插入圖片描述
    其中,在這裏插入圖片描述在這裏插入圖片描述是兩個圖像的DeepID2特徵,在這裏插入圖片描述表示ground truth是否爲同一身份,在這裏插入圖片描述={m}是需要學習的參數(m不能簡單通過梯度下降更新,因爲梯度可能爲0,可以通過最小化先前N個訓練對的驗證錯誤來更新,N經過實驗證明可取 200, 00)。
    同一身份時,需要最小化兩個DeepID2的L2距離;不同身份時,設置一個閾值m,使得L2距離儘可能大於閾值m。即前者減小了類內距離,後者增加了類間距離。取1/2倍L2距離的平方是爲了便於求梯度。
    2)基於L1的驗證信號:
    在這裏插入圖片描述
    3)基於餘弦相似度的驗證信號:在這裏插入圖片描述
    其中在這裏插入圖片描述表示餘弦相似度(通過測量兩個向量的夾角來度量相似性在這裏插入圖片描述
    在這裏插入圖片描述),在這裏插入圖片描述={w,b}是需要學習的參數。

在這裏插入圖片描述

實驗結論:

  • 經過實驗證明,λ在0.05周圍時,驗證信號精確度最高
    這裏超參數λ的作用:λ=0,只有識別信號,λ->∞,只有驗證信號。
    在這裏插入圖片描述

  • DeepID的訓練集人數越多,最後的驗證率越高。

  • 對不同的驗證信號,包括L1,L2,cosin等分別進行了實驗,發現L2 最好。

④ face verification:
在這裏插入圖片描述
使用前-後向貪婪算法來選擇更有效的DeepID2特徵來節省時間,降低冗餘。
論文中,作者對一張圖片裁剪400個patch,其位置、比例、顏色通道、水平翻轉都有所不同,用前-後向貪婪算法選擇25個DeepID2特徵向量(如下圖所示),拉平成25✖️160=4000維,再用PCA降維成180。
在這裏插入圖片描述

再送入聯合貝葉斯,得出結果(是or不是)。

解釋前-後向貪婪算法:
前向和後向都屬於特徵選擇的範疇。
前向選取(Forward Selection),首先,初始化特徵子集F爲空集,然後對不屬於F的特徵,計算添加該特徵之後模型提升的精度,選取其中提升精度最大的特徵添加到F中,循環以上操作直至精度不再提升。
後向淘汰(Backward Elimination),與前向選擇相反,後向淘汰將F初始化爲所有特徵的集合,每次選取一個特徵,計算不考慮該特徵的時候模型的精度,若精度提升,則將該特徵剔除F,直至精度不再下降。


3.DeepID2+
參考論文:Deeply learned face representations are sparse, selective, and robust,CVPR 2014

LFW 準確率99.47%

trick:

  • 訓練數據集Merge了celebFaces+和WDRef數據集,總共290000副人臉圖片,12000個人;
  • 特徵圖個數由原來的20、40、60、80增加到128,最終產出512維DeepID2+的特徵(原始160維);
  • 在每個卷積層都增加了監督信息,不僅和第三層第四層的max-pool層連接,還連接了第一層和第二層的max-pool層,通過連接max-pool層的一個512維的全連接實現。 (是否可以解決上週intermediate supervision淺層標籤如何設置的疑問???)

網絡結構:
在這裏插入圖片描述

Id(識別信號)、Ve(驗證信號)表示監督信號,相當於損失函數


  1. DeepID3
    參考論文:Face recognition with very deep neural networks,CVPR 2015

LFW 準確率 99.53%

改進:採用圖像識別方面當時最新的網絡結構,且層數加深(更加Deep試試)

trick:

  • 在pooling層之前堆疊卷積層或inception層,有助於學習具有更大感受野和更復雜非線性的特徵,同時能限制參數數量。但是準確率提升不大(99.47%->99.53%),可能因爲網絡還不夠深。

感受野的定義是:卷積神經網絡某層的神經元在前一層映射的區域大小。

關於更大的感受野:例如,3x3 是最小的能夠捕獲像素八鄰域信息的尺寸。兩個 3x3 的堆疊卷基層的有限感受野是 5x5 ;三個 3x3 的堆疊卷基層的感受野是7x7,故可以通過小尺寸卷積層的堆疊替代大尺寸卷積層,並且感受野大小不變。我理解的是越大的感受野,越能提取更多的上下文信息,提取的特徵更爲高層(high-level)一些。

感受野計算:

	  RF = 1 #待計算的feature map上的感受野大小 
	  for layer in (top layer To down layer): 
	    RF = ((RF -1)* stride) + fsize

在這裏插入圖片描述

爲什麼使用Inception?隨着網絡深度增加, 容易過擬合併且參數量太大,可以通過增加寬度的方式緩解。
在這裏插入圖片描述


  1. Self-supervised Multi-level Face Model Learning for Monocular Reconstruction at over 250 Hz,CVPR 2018,馬克斯-普朗克研究所和斯坦福大學合作完成 ,Oral
    論文鏈接

trick:

  • 自監督的損失函數

僅憑一張圖片,重構臉部 3D 模型,是非常有難度的。斯坦福大學研究者針對這一挑戰,建造了一種多層人臉模型,將 3D 形態模型正則化的優點和經驗糾正空間的外部泛化相結合,能夠更好地推廣到現實世界的人臉建模中,同時運行頻率超過 250 Hz。

  1. The Devil of Face Recognition is in the Noise ,ECCV 2018
    論文鏈接

發現:

在CVPR 2018的paper中,很多提到了3D&2D、GAN、fiducial point/landmark、loss。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章