Deep learning face representation by joint identification-verifications - 人臉特徵提取與驗證 - DeepID2

Paper name

Deep learning face representation by joint identification-verifications

Paper Reading Note

URL: http://www.ee.cuhk.edu.hk/~xgwang/papers/sunCWTnips14.pdf

TL;DR

DeepID2作爲DeepID的改進版本,在DeepID僅基於Identification優化方式的基礎上,提出了Identification-Verification的聯合優化方式,在LFW數據集上取得了當時最優的效果。


Dataset/Algorithm/Model/Experiment Detail

數據集

文章使用了LFW數據集作爲測試集,LFW數據集包含5749個id的13233張人臉圖片數據。考慮到LFW的數據量較少,並且其中大部分的id只有一張圖片,這不利於Verification的優化(Verification的優化需要利用同一id的不同人臉圖片),作者使用了CelebFaces+作爲訓練集,CelebFaces+與LFW沒有重合部分,其中8192個id的圖片用於訓練優化Identification,另外的1985個id的圖片用於挑選特徵和學習verification模型(Joint Bayesian)。

實現方式

實現方式主要包含兩個步驟,人臉特徵提取與基於特徵的人臉驗證

  • 人臉特徵提取
  • 網絡結構:DeepID2的特徵提取網絡依然是基於簡單的卷積網絡,其中layer3和layer4共同連接到DeepID2layer上,同時layer3和layer4採用了局部權值共享的卷積方式

在這裏插入圖片描述

  • 訓練方式:雖然網絡結構相比於DeepID並沒有太大的變化,但是訓練方式上有較大改進,最主要區別是現在訓練基於兩個優化目標實現:identification與verification兩個優化目標

    • identification優化目標:使用傳統的softmax分類8192個id,其訓練目標基於優化傳統的交叉熵損失,在模型訓練階段讓模型學習分類這麼多的id數量作者認爲可以是模型學習到生成具備identity-related 的特徵,也就是使不同的人生成的人臉特徵具有較大的變化
      在這裏插入圖片描述
    • verification優化目標:
      verification優化作者嘗試了基於L2實現loss,如下式所示,本文的核心貢獻就是這個loss函數的設計,在進行相同id的兩張人臉圖片驗證時,希望兩個feature的差別越小越好,而當不同id的兩張人臉圖片驗證時,希望兩個feature的差別要大於一個margin。
      在這裏插入圖片描述
      並且也同時嘗試了基於L1與餘弦距離實現的loss。
  • 訓練優化算法:
    如下表所示,在訓練過程中基於identification和verification的梯度會通過gamma超參數調節他們之間的權重比,值得注意的是下表中的優化方式都是基於SGD反向傳播進行訓練,但是L2的verification的loss中的m其實也是需要被訓練的超參數,但是這個超參數不能通過SGD進行訓練,因爲模型會學出的m都是趨向於0,這樣能使得loss最大程度降低,但是這無法使不同id的人臉feature增加區分度。
    在這裏插入圖片描述

  • 人臉驗證
    人臉驗證階段即基於特徵提取網絡提取的DeepID2特徵搭配訓練的Joint貝葉斯實現。如下圖所示,作者會基於SDM算法跑出的21點人臉關鍵點提出不同的人臉patch,作者基於不同位置、不同scale、不同channel、水平翻轉等可以在單個人臉上提出400個patch,然後作者基於貪婪算法在400個patch中選出25個對於人臉驗證作用最大的patch進行後續驗證操作,這25個patch的示意圖如下,而基於這個25個patch得到的得分也都標註在相應的patch下方。
    在這裏插入圖片描述

實驗結果

  • identification與verification的平衡性實驗
    這部分實驗應該是本文所有實驗的精華所在,作者首先是探索了使用不同的gamma值對於平衡兩者的影響,根據下圖可以看出加入verification後對於得分肯定是有有效果的,當gamma取0.1時兩個優化目標能取得平衡的效果。

在這裏插入圖片描述
作者爲了驗證兩個優化目標爲什麼在gamma爲0.05時有更好的效果,使用了LDA來對inter和intra-person的variations進行分析,可以看到以下左圖是不同gamma值的inter-person的variance變化,不同人的feature的variance跨度越大越利於分類,可見gamma爲0.05時與0時相比並沒有使inter-personal的variance降低,其中某些區域的值甚至升高了;當gamma趨於無窮大時會導致identification目標不被優化,這時不同人之間的feature的variance小,難以分開不同的id;如下右圖所示爲intra-person的變化圖,可以看到gamma爲0.05時每個id的各個圖片的feature的invariance得到降低。
在這裏插入圖片描述
下圖能夠更明顯得看出gamma對於提取的feature的影響。可以看到當gamma爲0時,模型只優化identification目標,這導致每個人的不同圖片直接差異較大,難以將人臉很好驗證出來;而當gamma趨於無窮時,雖然能夠將類內距離極大降低,但是不同的ID之間的重合度增加,難以區別出不同的id人臉。
在這裏插入圖片描述

  • 不同verification的loss形式的實驗對比

在這裏插入圖片描述

  • 結果對比實驗,可以看出DeepID2在LFW上取得了最好的效果
    在這裏插入圖片描述

Thoughts

這篇文章作爲DeepID的續集,依然是人臉識別領域的經典之作,最主要的創新點其實很簡單,就是增加類間距離的同時縮小類內距離,這也取得了在當時SOTA的效果。文章的實驗的佈置方法也非常值得借鑑,以LDA對特徵的variance進行分析,並基於對PCA降維後的feature可視化的方法可以讓讀者直觀感受到verification的loss加入對於特徵學習的影響。論文中作者並沒有強調論述的基於貪婪算法選擇人臉patch以及基於7個不同的選擇出的模型進行ensemble的過程也值得在打比賽等刷精度的任務中採用。

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