背景:在学习机器学习的时候,想做一个对抗性样本的实验,所以需要用上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