1. 程式人生 > >人臉識別系列(七):百度的人臉識別

人臉識別系列(七):百度的人臉識別

網路結構:

這裡寫圖片描述

輸入的是對齊好了的人臉影象,將人臉影象通過面部標記點切分為多個相互之間有重疊部分的Patch,分別輸入相同結構的網路,每個網路都在不同的GPU上訓練。

網路結構包含9個卷積層,某些卷積層的後面有池化層,標準化層,論文中與圖中都沒有詳細說明,大致知道網路是什麼樣子的就可以了。

訓練時用softmax訓練,進行驗證時將所有FC層的特徵相接,構成一個高維的面部特徵。

驗證方法–Metric Learning度量學習:

通過以triplet loss 為監督訊號的度量學習方法來學習一種128維的特徵,用特徵之間的距離來進行驗證任務。

所謂度量學習,就是在特徵空間中學習某種合適的距離度量方法,也就相當於去尋找特徵空間中的某一子空間,將特徵變換到該子空間上之後,可以很容易的度量各特徵之間的距離(參考《機器學習》-周志華)。

通過這個度量學習,可以做到減小類內的l2距離,增加類間的l2距離的效果。

度量學習示意圖:
這裡寫圖片描述
關於triplet loss的詳細描述可以參考我的部落格:人臉識別系列(六):FaceNet

實驗:

訓練資料量對錯誤率的影響:
這裡寫圖片描述

patch量對錯誤率的影響

這裡寫圖片描述

最優結果:

使用7個patches,每個patch最終提取128維特徵,然後還混合了一些其他模型一起判斷(具體是哪些文中沒說)

達到了LFW上99.85%的準確率

論文中還展示了所有的驗證出錯的圖片對:
這裡寫圖片描述

圖中分為三類:
a.錯誤標記。

b.假陰性,由化妝、帶眼鏡、人物造型變化比較大或是遮擋等原因造成。

c.假陽性,五官非常相似的人。