運行環境:Ubuntu+anaconda+tensorflow-gpu==1.9.0
環境配置: pip install -r requirements.txt,如果出現model缺失,根據提示安裝依賴的包。
一:準備工作
1 下載源碼,地址: https://github.com/davidsandberg/facenet
2 下載LFW 數據集: http://vis-www.cs.umass.edu/lfw/ ->Download->All images as gzipped tar file
LFW 是由美國馬薩諸塞大學阿姆斯特分校計算機視覺實驗室整理的。它包含13233張圖片,共5749人,其中4096人只有一張圖片,1680人的圖片多餘一張,每張圖片尺寸是250x250 。
文件解壓到facenet/datasets/lfw 目錄下。
3 下載預訓練模型
官網提供了分別是基於CASIA-WebFace和 VGGFace2的預訓練模型
二:在lfw數據集上評估
參考官網說明:https://github.com/davidsandberg/facenet/wiki/Validate-on-LFW
具體實現
(1)圖片預處理
因爲程序中神經網絡使用的是谷歌的“inception resnet v1”網絡模型,這個模型的輸入時160*160的圖像,而我們下載的LFW數據集是250*250限像素的圖像,所以需要進行圖片的預處理。
python src/align/align_dataset_mtcnn.py datasets/lfw datasets/lfw-160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25
參數說明:
datasets/lfw 數據集路徑
datasets/lfw_160 轉換尺寸後路徑
--image_size 160 --margin 32 --random_order--gpu_memory_fraction 0.25 指定圖片尺寸
error:找不到facenet
方法:將align_dataset_mtcnn.py複製到src路徑下
評估:python src/validate_on_lfw.py datasets/lfw-160 models/20180402-114759
三 在自己的數據集上訓練
參考官網說明:https://github.com/davidsandberg/facenet/wiki/Train-a-classifier-on-own-images
在l自己數據集上訓練和測試,數據尺寸250*250
python src/classifier.py TRAIN datasets/my-data/train/ models/20180402-114759/20180402-114759.pb models/my_classifier.pkl --batch_size 50
python src/classifier.py CLASSIFY datasets/my-data/train/ models/20180402-114759/20180402-114759.pb models/my_classifier.pkl --batch_size 50