Deep Learning Face Representation by Joint Identification-Verification
Deep Learning Face Representation by Joint Identification-Verification
轉載請注明:http://blog.csdn.net/stdcoutzyx/article/details/41497545
這篇文章是論文Deep Learning Face Representation by Joint Identification-Verification的筆記。
1. Main Contribution
這篇論文使用deep learning學習特征,使用聯合貝葉斯模型作為分類器,選取七組特征分別訓練分類器,得到的結果使用SVM進行組合,得到的最終模型在LFW(Labeled Face in the Wild)數據集上的人臉驗證任務中,達到了99.15%的準確率,目前排名第一。
2. Basic Concepts and Ideas
Face Identification,人臉識別,將一個輸入圖像進行分類,類別集合會很大。
Face verification,人臉驗證,對兩個圖像進行判斷,確認是不是同一個人的圖像。
論文的主要創新點就是利用deep learning學習圖像特征,具體的創新點就是通過擴大類間距離和縮小類內距離。
3. Pipeline
論文提出的人臉識別算法流程如下:
首先,使用SDM算法抽取人臉上的21個標記,然后根據得到的標記對人臉進行對齊。通過變化位置、尺度、顏色通道,得到200個face patch,對每個face patch,使用該patch及其水平反轉的圖像進行特征學習。所以,一共需要200個深度卷積神經網絡。
注:因為LFW是wild數據,不像AR數據集那樣是對齊好的數據,所以需要通過SDM尋找landmark來分patch;SDM算法是CVPR2013年提取的。
第二步,學習特征,論文提出一種學習特征的卷積神經網絡框架,稱之為DeepID2。構建200個DeepID2來學習上一步得到的patch。每個DeepID2都將輸入圖像表示成一個160維的向量。
第三步,對每張圖像而言,經過200個DeepID2學習到的特征數目為200*160,特征數目太大了。所以論文中使用前向后向貪心算法來選取一些有效且互補的DeepID2向量,以節約時間。注意,特征選擇在每個DeepID2向量間進行,也就是一個DeepID2輸出的向量,要么全被選中,要么全不被選中。選中的向量對應的patch如圖。
第四步,選中25個向量后,每張圖像的維度是25*160=4000維。仍然太大,因而使用PCA進行降維,降維后大約有180維。
第五步,對于輸出后的向量,就可以使用來進行人臉驗證任務了。論文構建了一個聯合貝葉斯模型來進行分類。聯合貝葉斯模型如下:
即使用類間距除以類內距的對數值來衡量一個圖像對是不是同一個人。在訓練集上可以得到一個閾值,當結果值大于閾值時,不是同一個人;當結果值小于閾值時,是同一個人。
4. DeepID2
DeepID2的創新點在于在學習特征的時候,該網絡不僅考慮分類準確率,還考慮類間差距。具體的做法就是在目標函數中添加一項類間差距。該添加的創新就在于類間差距是在兩個樣本間進行衡量的,因而添加類間差距后,訓練過程需要變化。
DeepID2所做的第二點小創新就是將卷積層的倒數第一層和倒數第二層都作為最終層的輸入。(因為添加了類間差距,所以最終層不能再成為是softmax層了)
DeepID2學習特征的整體卷積神經網絡結構圖如下:
4.1 Details of Structure
四層卷積,前三層后面都跟著max-pooling層,第三層卷積的神經單元的參數在2*2的局部區域內共享;第四層卷積則是全連接,參數在神經單元之間不共享。
第三卷積層的輸出和第四卷積層的輸出以全連接的方式連接到最后一層,最后一層也稱為DeepID2層。因為第四層學習到的特征比第三層的更全局一些,所以這樣的連接方式被稱為是多尺度卷積神經網絡。
4.2 Goal functions
在本論文中,使用DeepID2進行學習的目的是得到輸出向量,并不是為了使識別率最大化。因而論文添加了類間距項。使用卷積層得到輸出向量可用函數表示:
正確分類的函數就是softmax的目標函數,目的是使交叉熵最小化。
樣本間距最大化的目標函數如下。
該公式的作用是,當兩個樣本相同時,則需要最小化它們之間的距離,當兩個樣本不同時,則需要最小化m與它們的距離值之差,m是一個需要手動調整的參數,提出m的目的在于目標函數需要最小化,而不是最大化。
當樣本之間的距離函數時余弦距離時,樣本間距最大化的目標函數如下。
在最終組合目標函數時,將Ident與Verif加權。
4.3 Training process
訓練過程如下圖。
5 Experiment
5.1 Experiment datasets
LFW是最終使用模型的數據集,共13233張臉,分屬于5749個人。但此數據集太小,所以需要引入外部數據集CelebFace+,擁有202599張臉,分屬于10177個人。
將CelebFace+數據集分為CelebFace+A數據集和CelebFace+B數據集。CelebFace+A有8192個人的數據,隨機從CelebFace+中選取,用于訓練DeepID2學習特征。CelebFace+B是剩余的1985個人的臉,用來進行特征選取和聯合貝葉斯概率模型的學習。
在學習DeepID2的時候,CelebFace+A是訓練集,CelebFace+B是驗證集來確定學習速率,訓練迭代次數,目標函數的融合參數lambda。
在特征選擇的時候,CelebFace+B中分出500個人的數據作為驗證集。
最后,在整個CelebFace+B中訓練聯合貝葉斯模型。
在LFW上使用訓練好的模型進行實驗。
5.2 Experiment settings
論文進行了如下幾組實驗:- 考察目標函數融合參數lambda的效果,包括最終效果分析、方差分析、PCA降至2維時的數據分析。
- 考察信息量的影響,即通過變換訓練集的大小(32指數增長到8192),查看效果。
- 改變用于驗證的目標函數即Verif的距離計算方法后的實驗效果。考察了一階范數、余弦距離等。
- 選取了七組不同的特征集合,然后將模型使用svm進行融合,得到最終結果99.15%。
6 Reference
[1] Sun Y, Chen Y, Wang X, et al. Deep learning face representation by joint identification-verification[C]//Advances in Neural Information Processing Systems. 2014: 1988-1996.
總結
以上是生活随笔為你收集整理的Deep Learning Face Representation by Joint Identification-Verification的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FaceNet--Google的人脸识别
- 下一篇: 流行的就是最好的:Android开发者的