DeepId人臉識別算法學習

DeepID的目標是人臉驗證(判斷兩張圖片是否是一個人),同時衍生出人臉識別(多次人臉驗證)。使用近期比較火的卷積神經網絡學習特徵,輸入一張圖片,產出160維的特徵向量,然後使用現成的淺層機器學習組合貝葉斯進行分類。由於卷積神經網絡計算的特徵緊湊且區分度大,所以得到的效果較好。同時,爲了得到更好的效果,DeepID採用增大數據集的方法,一是增加新的數據,celebFaces(87628張圖片,5436個人),celebFaces+(202599張圖片,10177個人);二是裁剪圖片,多區域、多尺度、多通道裁剪,然後將計算的向量組合,使用PCA降維。

1.DeepID流程

這裏寫圖片描述
圖1
圖1描述的是特徵提取的過程,每層的數字表示的是每個卷積網絡神經元的數量,隨着層數的增加,神經元的數量會減少,最終產出160維度的向量。

2.DeepID網絡結構

這裏寫圖片描述
圖2 網絡結構

圖2描述的是DeepID的網絡結構,和卷積神經網絡的結構類似,卻別在於倒數第二層的DeepID層,同時和最後第四層的卷基層和第三層的Max-pooling層全連接,層數越高對於特徵的概括越高(視野越大),包含的神經元也越少,容易造成信息損失,加上第三層的的特徵,降低了信息損失。

3.DeepID實驗

DeepID使用CelebFaces數據集,包含87628張圖片,5436個人,採用80%即4349個人作爲卷積神經網絡的訓練集,其餘20%用於識別模型訓練。
在特徵提取過程中,首先檢測5個人臉特徵點,即兩個眼睛中心點,1個鼻子和2個嘴巴邊界點,基於兩眼的中心和嘴邊界兩個點的中心做對其。然後將人臉分成60個patch,包含10個子區域、3個尺度和顏色通道。如圖3所示。
圖3
上面的是十張區域圖片,左五張是弱一致臉,右五張是基於5個面部特徵點爲中心的五個區域。下面是最具代表的兩個patch三個尺度的圖片。對這60個patch分別使用60個卷積網絡做訓練,每個計算出2個160維特徵向量(patch和它的水平翻轉),最終得到的特徵數目爲2*160*60=19200,通過組成訓練,最終得到的特徵使用PCA降維產出150維特徵向量。
人臉驗證使用組合貝葉斯方法。如圖4所示。
圖4貝葉斯
圖4
方法驗證中引入CelebFaces+數據集,使用5種不同的scale將patchs數目增加至100,最終產出160*2*100維度特徵,使用PCA降維至150維,基於組合貝葉斯訓練的模型在LFW上得到97.2%的準確率。

4.DeepID實驗結論

1.使用multi-scale 多patches的結果比只使用一個只有整張人臉的patch的效果要好。
這裏寫圖片描述
2.使用DeepID神經網絡的最後一層softmax層作爲特徵表示,效果很差,損失的信息太多。
3.訓練集人數越多,分類的準確率都會增加。
這裏寫圖片描述
4.DeepID自身的分類錯誤率較高。
這裏寫圖片描述
5.DeepID準確率
這裏寫圖片描述

5.引用文獻

Deep learning face representation from predicting 10,000 classes

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