使用Tensorflow進行臉部識別

使用Tensorflow進行臉部識別

這是 「FaceNet:面部識別和聚類的統一嵌入」一文中描述的面部識別器的TensorFlow實現。該項目還使用了從圖紙中的創意「爲深人臉識別辨析功能學習方法」以及紙「深人臉識別」視覺幾何集團在牛津大學。html

Tensorflow發行

目前這個repo與Tensorflow r1.0兼容。git

新聞

日期 更新
2017-03-02 添加了預處理的模型,生成128維嵌入。
2017-02-22 更新爲Tensorflow r1.0。使用Travis-CI增長了持續集成。
2017-02-03 添加了只有可修改變量存儲在檢查點中的模型。所以,它們顯着更小。
2017-01-27 添加了一個在MS-Celeb-1M數據集的子集上訓練的模型。該型號的LFW精度約爲0.994。
2017-01-02 更新到使用Tensorflow r0.12運行的代碼。不知道若是它與舊版本的Tensorflow一塊兒運行。

預先訓練的模型

型號名稱 LFW精度 培訓數據集
20170214-092102 0.986 CASIA-WebFace
20170216-091149 0.993 MS-Celeb-1M

靈感

該代碼heavly靈感來自OpenFace實施。github

培訓資料

中科院自動化所,WebFace數據集已經被用於訓練。該訓練集由臉部檢測後的10 575個身份共計453 453張圖像組成。若是在訓練以前已通過濾了數據集,則會出現一些性能提高。有關如何完成這一工做的更多信息將在之後出現。對MS-Celeb-1M數據集的子集進行了最佳性能模型訓練。此數據集顯着較大,但也包含明顯更多的標籤噪聲,所以在數據集上應用數據集過濾相當重要。性能

預處理

使用MTCNN進行臉部對齊

上述方法的一個問題彷佛是Dlib面部檢測器錯過了一些硬例子(部分閉塞,靜音等)。這使得訓練設置爲「容易」,致使模型在其餘基準上表現更差。爲了解決這個問題,已經測試了其餘的地標檢測器。在該設置中已被證實可以很好地工做的一個地面地標探測器是 多任務CNN。能夠在這裏找到一個Matlab / Caffe實現,這已經用於面部對齊,結果很是好。能夠在這裏找到MTCNN的Python / Tensorflow實現。這個實現並無給出與Matlab / Caffe實現相同的結果,但性能很是類似。學習

跑步訓練

目前,經過將模型做爲分類器進行訓練,增長了中心損失,實現了最好的效果。有關如何訓練模型做爲分類器的詳細信息,請參見Inception-ResNet-v1的分類器訓練頁面。測試

預先訓練的模型

Inception-ResNet-v1模型

目前,最好的表演模式是培訓了中科院自動化所,Webface的盜夢空間,RESNET-V1型號對齊MTCNNgoogle

性能

LFW型號20170216-091149的精度爲0.993±0.004。有關如何運行測試的說明,請參見LFW上的Validate(驗證)頁面。spa

相關文章
相關標籤/搜索