使用FaceNet进行人脸检测

本文主要描述如何使用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下面。

使用FaceNet进行人脸检测_第1张图片

使用FaceNet进行人脸检测_第2张图片

可以看到数据集中每张图像的分辩率是250*250.


接下来需要对图像数据进行预处理。我们需要将待检测所使用的数据集校准为和预训练模型所使用的数据集大小一致。

设置环境变量set PYTHONPATH=e:\workspace\python\face\facenet\src

使用src\align\align_dataset_mtcnn.py进行校准。

使用FaceNet进行人脸检测_第3张图片

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


使用FaceNet进行人脸检测_第4张图片

校准后发现图像大小变了

使用FaceNet进行人脸检测_第5张图片

下载已训练模型

使用FaceNet进行人脸检测_第6张图片

这里使用的是基于数据集MS-Celeb-1M采用Inception ResNet v1神经网络结构训练好的模型。

模型存储在Google网盘,需要。推荐大家用Lantern,自从有了Lantern,我把其它的工具和技术都淘汰了。

把下载的文件解压到src\models\目录下面。最终效果如下图所示

使用FaceNet进行人脸检测_第7张图片

程序下载好了,测试数据集LFW也有了, 模型也有了,接下来就可以评估模型在数据集的准确率了。

python src\validate_on_lfw.py data\lfw\lfw_160 src\models\20170512-11047

使用FaceNet进行人脸检测_第8张图片


参考资料

https://github.com/davidsandberg/facenet

https://github.com/davidsandberg/facenet/wiki/Validate-on-lfw

你可能感兴趣的:(--------人脸识别)