基於Tensorflow的Facenet 人臉識別實現

參考GitHub地址,相關FaceNet paper ,此paper是Google的facenet原理介紹,本人現在也在進行人臉識別Facenet相關學習,隨後會將相關論文解析筆記整理供大家參考。

關於FaceNet相關的Tensorflow基本配置請參考我的另外一篇部落格here

  1. 安裝相關的依賴
  • 安裝Tensorflow here
  • clone FaceNet 原始碼 ;
  • 安裝所需要的python模組  scipy、scikit-learn、opencv-python、h5py、matplotlib、Pillow、requests、psutil;   (注意:安裝Tensorflow的時候會預設安裝一些依賴庫,可以在shell下使用命令 pip list 查詢已經安裝的庫,這一步 的所有依賴都是在以建立好的virtualevn環境中安裝的)

  2.下載LFW資料集

  • 下載未對其的照片 lfw ;
  • 把下載的資料集解壓到相關目錄下,比如我的路徑為 :

    ~/tensorflow/lfw/raw。(注意:下載下來的資料夾名字為lfw,解壓的資料夾目錄不做要求,最好還放在Vritualevn虛擬環境的目錄下)

    3.設定python路徑

    export PYTHONPATH=[…]/src   其中[…]為虛擬環境下你存放下載的facenet原始碼的路徑,比如我的為:export PYTHONPATH=~/tensorflow/facenet/src  (此步特別關鍵如果設定錯誤後面將無法執行)

    4.校準lfw資料集

    python src/align/align_dataset_mtcnn.py ~/datasets/lfw/raw~/datasets/lfw/lfw_mtcnnpy_160 –image_size 160 –margin 32 –random_order–gpu_memory_fraction 0.25

    其中~/datasets/lfw/raw 為你的資料集地址,~/datasets/lfw/lfw_mtcnnpy_160這個是你資料集處理後儲存的位置。

比如我的就是:python ~/tensorflow/facenet/src/align/align_dataset_mtcnn.py ~/tensorflow/lfw/raw ~/tensorflow/lfw/lfw_mtcnnpy_160 –image_size 160 –margin32 –random_order –gpu_memory_fraction 0.25

5.下載已訓練的模型。

選擇20170512-110547這個 model 下載,如果沒辦法越牆可以在處model下載此訓練好的模型。下載後把其解壓到虛擬環境下的任何你喜歡的目錄,比如我的,解壓後存放的路徑為   ~/tensorflow/facenet/model/20170512-110547

6.執行並測試模型準確率

python src/validate_on_lfw.py ~/datasets/lfw/lfw_mtcnnpy_160 ~/models/facenet/20170512-110547

比如我的就是:python src/validate_on_lfw.py ~/datasets/lfw/lfw_mtcnnpy_160 ~/models/facenet/20170512-110547

最後可得出模型評估結果如下:

本人第一次測試facenet,如有不當之處煩請指出,謝謝~