人臉識別系列(三):DeepID2

Fire_Light_發表於2018-03-14

論文地址:Deep Learning Face Representation by Joint Identification-Verification

文章思想

reducing the intra-personal variations while enlarging the inter-personal differences is a central topic in face recognition

分類任務,我們需要的是減少類內差距,增加類間差距。

The identification supervisory signal tends to pull apart the DeepID2 features of different identities since they have to be classified into different classes

分類的監督訊號可以增大類間差距

However, the identification signal has a relatively weak constraint on DeepID2 features extracted from the same identity, since dissimilar DeepID2 features could be mapped to the same identity through function g(·) ,This leads to problems when DeepID2 features are generalized to new tasks and new identities in test where g is not applicable anymore

但是卻對類內差距影響不大

We solve this by using an additional face verification signal, which requires that every two DeepID2 feature
vectors extracted from the same identity are close to each other while those extracted from different
identities are kept away

而增加驗證的監督訊號,就可以減少類內差距。

網路結構

這裡寫圖片描述
網路結構類似DeepID1,不同之處在於使用了兩種不同的損失函式:

損失函式

分類訊號:

這裡寫圖片描述

Softmax函式的交叉熵,類似於一般的卷積神經網路

驗證訊號

這裡寫圖片描述

使用l2範數距離表示,m為閾值,括號內的θve={m}

(這一損失函式在後面的人臉識別論文中通常會被稱為‘contrastive loss‘)

訓練過程:

這裡寫圖片描述

其中m不參於訓練

過程簡單概括為

1.一次使用2個輸入,計算了他們的L(Ident)和L(Verif),總損失L為二者通過λ加權求和

2.通過L來執行梯度下降更新卷積引數

3.通過L(Ident)來更新softmax層的引數

多patches操作:

每張圖片使用了21 facial landmarks

分成200patches(20regions*5scales*2RGB&Gray),水平翻轉後變為400patches

使用了200個卷積神經網路,提取400(200*2)個Deepid2特徵

(一個神經網路對應的是一個patch與它的翻轉對應的Patch)

使用 Adaptive forward-backward greedy algorithm降為25個Deepid2特徵

使用PCA將25*160Deepid2特徵降為180維

輸入聯合貝葉斯演算法中,進行驗證。

實驗:

在celebrate+上訓練

在LFW上進行驗證。

λ對類間與類內特徵的影響

這裡寫圖片描述
文中選取λ=0.05
驗證訊號使用什麼計算方法的試驗:

這裡寫圖片描述
可以看出來聯合貝葉斯演算法略優於L2距離。

最終試驗結果

選擇效果最好的25個patches對應的25個網路,在LFW上得到的最終準確率是98.97%

這裡寫圖片描述

之後,重複使用貪婪的方式尋找其他6組patches(每組25個),得到7組25Paches,用聯合貝葉斯演算法計算相應的神經網路輸出特徵可以得到7個得分,使用SVM融合這7個得分來得到最終的準確率是99.15%
(論文沒有提到怎麼融合的,猜測具體的融合方法大概是構建一個7維的向量,然後根據該得分向量來分類)

相關文章