本文主要描述如何使用FaceNet验证在数据集LFW的人脸检测效果。
前提条件:
1.已安装Tensorflow
2.已安装下列包: scipy, scikit-learn, opencv-python, h5py, matplotlib, Pillow, requests, psutil
下载FaceNet源代码工程
git clone --recursive https://github.com/davidsandberg/facenet.git
下载数据集LFW
LFW数据集是由美国马萨诸塞大学阿姆斯特分校计算机视觉实验室整理的。
下载地址:http://vis-www.cs.umass.edu/lfw/lfw.tgz
下载完成后,把数据解压到目录facenet\data\lfw\raw下面。
可以看到数据集中每张图像的分辩率是250*250.
接下来需要对图像数据进行预处理。我们需要将待检测所使用的数据集校准为和预训练模型所使用的数据集大小一致。
设置环境变量set PYTHONPATH=e:\workspace\python\face\facenet\src
使用src\align\align_dataset_mtcnn.py进行校准。
python src\align\align_dataset_mtcnn.py data/lfw/raw data/lfw/lfw_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25
校准后发现图像大小变了
下载已训练模型
这里使用的是基于数据集MS-Celeb-1M采用Inception ResNet v1神经网络结构训练好的模型。
模型存储在Google网盘,需要翻墙。推荐大家用Lantern,自从有了Lantern,我把其它的翻墙工具和技术都淘汰了。
把下载的文件解压到src\models\目录下面。最终效果如下图所示
程序下载好了,测试数据集LFW也有了, 模型也有了,接下来就可以评估模型在数据集的准确率了。
python src\validate_on_lfw.py data\lfw\lfw_160 src\models\20170512-11047
参考资料
https://github.com/davidsandberg/facenet
https://github.com/davidsandberg/facenet/wiki/Validate-on-lfw