DeepId人臉識別演算法學習

2021-07-10 19:47:03 字數 1904 閱讀 6175

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

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

圖2 網路結構

圖2描述的是deepid的網路結構,和卷積神經網路的結構類似,卻別在於倒數第二層的deepid層,同時和最後第四層的卷基層和第三層的max-pooling層全連線,層數越高對於特徵的概括越高(視野越大),包含的神經元也越少,容易造成資訊損失,加上第三層的的特徵,降低了資訊損失。
deepid使用celebfaces資料集,包含87628張,5436個人,採用80%即4349個人作為卷積神經網路的訓練集,其餘20%用於識別模型訓練。

在特徵提取過程中,首先檢測5個人臉特徵點,即兩個眼睛中心點,1個鼻子和2個嘴巴邊界點,基於兩眼的中心和嘴邊界兩個點的中心做對其。然後將人臉分成60個patch,包含10個子區域、3個尺度和顏色通道。如圖3所示。

上面的是十張區域,左五張是弱一致臉,右五張是基於5個面部特徵點為中心的五個區域。下面是最具代表的兩個patch三個尺度的。對這60個patch分別使用60個卷積網路做訓練,每個計算出2個160維特徵向量(patch和它的水平翻轉),最終得到的特徵數目為2*160*60=19200,通過組成訓練,最終得到的特徵使用pca降維產出150維特徵向量。

人臉驗證使用組合貝葉斯方法。如圖4所示。

圖4 方法驗證中引入celebfaces+資料集,使用5種不同的scale將patchs數目增加至100,最終產出160*2*100維度特徵,使用pca降維至150維,基於組合貝葉斯訓練的模型在lfw上得到97.2%的準確率。

1.使用multi-scale 多patches的結果比只使用乙個只有整張人臉的patch的效果要好。

2.使用deepid神經網路的最後一層softmax層作為特徵表示,效果很差,損失的資訊太多。

3.訓練集人數越多,分類的準確率都會增加。

4.deepid自身的分類錯誤率較高。

5.deepid準確率

DeepID 人臉識別模型之DeepID框架

名稱 deep learning face representation from predicting 10,000 classes 作者 miclover 參考 摘要 通過深度神經網路來提取人臉深層次的特徵,稱為深度隱藏身份特徵 deep hidden identity features,dee...

人臉識別系列(二) DeepID1

其實deepid特徵就是乙個由連線第三層與第四層組成的全連線層特徵。第四層的特徵更加全域性化 global 第三層的特徵更加細節 因此deepid連線了兩者,以求同時包含全域性,細節資訊。通過5個landmarks將每張人臉劃分成10regions 每張提取60patches 10regions 3...

DeepID2 強大的人臉分類演算法

這篇文章是 deep learning face representation by joint identification verification的筆記。這篇 使用deep learning學習特徵,使用聯合貝葉斯模型作為分類器,選取七組特徵分別訓練分類器,得到的結果使用svm進行組合,得到的...