1.获取数据集(LFW)
打开http://vis-www.cs.umass.edu/lfw/中:
Labeled Faces in the Wild HomeMenu->Download->All images as gzipped tar file
解压放到datasets
2.下载facenet并配置
facenet 是一个使用tensorflow进行人脸识别的开源库,我们可以依赖于它,进行人脸识别相关开发,进而降低难度与成本
1)git clone --recursive https://github.com/davidsandberg/facenet.git
2)cd facenet/
3)export PYTHONPATH=$(pwd)/src
注意文件放置的位置!(facenet 和lfw要放在同一目录下,切记!)
facenet所在路径 : /home/用户名/facenet/data
lfw解压后所在路径:/home/用户名/facenet/data/lfw
3.处理数据集(对齐数据集)
1)cd facenet
2)pythonsrc/align/align_dataset_mtcnn.py data/lfw data/lfw/lfw_mtcnnpy_160 --image_size160 --margin 32 --random_order --gpu_memory_fraction 0.25
(切记,一定要写对路径,这样才能导入全部数据,并导出相同像素160*160的图片)
然后在这里 /home/用户名/facenet/data/lfw/lfw_mtcnnpy_160会有对齐之后的图片了(所谓对齐,可以理解为就是同等像素大小。
对齐之后:
输出结果:
Total number of images: 13234
Number of successfully aligned images:13233
4.下载训练好的模型文件
(1) facenet提供了两个预训练模型,分别是基于CASIA-WebFace和MS-Celeb-1M人脸库训练的。下载20170512-110547(MS-Celeb-1M数据集训练的模型文件,微软人脸识别数据库,名人榜选择前100万名人,搜索引擎采集每个名人100张人脸图片。
(2)本人使用的是基于数据集MS-Celeb-1M训练好的模型。
下载20170512-110547, 然后解压放在face/models以便后面路径寻找。
5.在lfw数据集上面进行验证,评估预训练模型的准确率
1)cd facenet
2)$ pythonsrc/validate_on_lfw.py /home/用户名/face/facenet/data/lfw/lfw_mtcnnpy_160/home/用户名/face/models/20170512-110547
输出
Runnning forward pass on LFW images
Accuracy: 0.992+-0.003
Validation rate: 0.97467+-0.01477 @FAR=0.00133
Area Under Curve (AUC): 1.000
Equal Error Rate (EER): 0.007
为了和基准进行比较,这里采用facenet/data/pairs.txt 文件,它是官方随机生成的数据,里面包含匹配和不匹配的人名和图片编号。