深度學習_人臉識別_FaceNet

論文地址

FaceNet解決的問題

雖然傳統人臉識別技術發展很快,但是人臉驗證和人臉識別在自然條件下應用依然存在很多困難。論文中作者提出了一個新的人臉識別模型:FaceNet。這個模型可以直接向人臉圖片映射到歐幾里得空間,空間距離的長度代表了人臉圖像的相似性。只要映射空間生成,以FaceNet嵌入作爲特徵向量,那麼人臉識別,驗證和聚類等任務就可以輕鬆完成。

FaceNet的創新點

  1. FaceNet是一個通用系統,可以用於人臉驗證(是否是同一個人?),人臉識別(這個人是誰?)和聚類(尋找類似的人)。

  2. FaceNet採用的方法是通過卷積神經網絡學習將圖像映射到歐幾里得空間,比起之前的方法更加簡單,只需要對圖片進行很少量的處理(只需要裁剪臉部區域,而不需要額外預處理,比如3d對齊等)。並且空間距離直接和圖片相似度相關:同一個人的不同圖像在空間距離很小,不同人的圖像在空間中有較大的距離。

  3. 當前存在的基於深度神經網絡的人臉識別模型使用了分類層(classification layer):中間層爲人臉圖像的向量映射,然後以分類層作爲輸出層。這類方法的弊端是不直接和效率低。爲此論文中提出了三元組損失用於對FaceNet區分正負類。

  4. 更好的表現效率:論文實現了當時最先進的人臉識別性能,每個人臉僅使用128維向量。

  5. FaceNet在LFW數據集上,準確率爲0.9963,在YouTube Faces DB數據集上,準確率爲0.9512。

FaceNet的框架流程

在這裏插入圖片描述

FaceNet網絡backbone

  1. Zeiler&Fergus研究中使用的神經網絡。
  2. Inception網絡。

模型結構的末端使用triplet loss來直接進行分類。

三元組損失(triplet loss)

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

其中,a爲positive/negative的邊界。

triplets篩選:

我們選擇了大樣本的mini-batch(1800樣本/batch)來增加每個batch的樣本數量。每個mini-batch中,我們對單個個體選擇40張人臉圖片作爲正樣本,隨機篩選其它人臉圖片作爲負樣本。負樣本選擇不當也可能導致訓練過早進入局部最小。爲了避免,我們採用如下公式來幫助篩選負樣本:

在這裏插入圖片描述

Facenet訓練

採用adagrad優化器,使用隨機梯度下降法訓練CNN模型。在cpu集羣上訓練了1000-2000小時。邊界值a設定爲0.2。

總共實驗了兩類模型,參數如表1和表2所示。

在這裏插入圖片描述

在這裏插入圖片描述

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