背景:在學習機器學習的時候,想做一個對抗性樣本的實驗,所以需要用上facenet ,facenet是基於TensorFlow 的人臉識別開源庫。
開發環境 :
Windows 7
TensorFlow 1.7
Python 3.5.2
1.下載和安裝facenet
下載命令 git clone https://github.com/davidsandberg/facenet.git ,這里要注意一下,在環境變量中需要在path添加上Git的安裝位置,才可以執行此命令。
2.使用facenet前的准備
下載好facenet 后,打開facenet里面requirements.txt ,還需要安裝文件里面的庫包 - pip install --
3.下載LFW數據集
下載地址 http://vis-www.cs.umass.edu/lfw/lfw.tgz,下載好后解壓到facenet/data /lfw/raw 下面,可以看到剛下載好的數據集中每張圖像的分辯率是250*250.
另外需要在facenet/data /lfw/下新建一個lfw_160用來存放處理好的圖片。
4.對圖像進行預處理
因為程序中神經網絡使用的是谷歌的“inception resnet v1”網絡模型,這個模型的輸入時160*160的圖像,而我們下載的LFW數據集是250*250限像素的圖像,所以需要進行圖片的預處理。
在命令窗口進入facenet目錄 , 運行下面代碼,
python src/align/align_dataset_mtcnn.py --help
結果如上所示則表示命令可以執行。 這里要注意一點是在運行前需要在環境變量添加一條PYTHONPATH,將\facenet\src的路徑加進去才可以執行成功該命令。
測試成功后,最終需要執行一條命令
python align_dataset_mtcnn.py facenet/data/lfw/raw facenet/data/lfw/lfw_160 --image_size 160 --margin 32 --random_order--gpu_memory_fraction 0.25
執行最終執行成功后照片的像素會變成160*160的
5.最后命令執行可能遇到的報錯
1.ValueError: Object arrays cannot be loaded when allow_pickle=False" 原因 numpy的版本不是 1.16.2 解決方案 執行
pip install numpy==1.16.2
2.AttributeError: module 'scipy.misc' has no attribute 'imread' 原因 scipy的版本不是 1.2.1 解決方案 執行
pip install scipy==1.2.1
結束語,后續我會繼續使用facenet做一些測試,實驗過程就留到下次寫了,有問題歡迎大家指出
參考博文 https://www.zhangshengrong.com/p/bYXxZB4MaZ/
https://blog.csdn.net/u012505617/article/details/88038733