运行环境:Ubuntu+anaconda+tensorflow-gpu==1.9.0
环境配置: pip install -r requirements.txt,如果出现model缺失,根据提示安装依赖的包。
一:准备工作
1 下载源码,地址: https://github.com/davidsandberg/facenet
2 下载LFW 数据集: http://vis-www.cs.umass.edu/lfw/ ->Download->All images as gzipped tar file
LFW 是由美国马萨诸塞大学阿姆斯特分校计算机视觉实验室整理的。它包含13233张图片,共5749人,其中4096人只有一张图片,1680人的图片多余一张,每张图片尺寸是250x250 。
文件解压到facenet/datasets/lfw 目录下。
3 下载预训练模型
官网提供了分别是基于CASIA-WebFace和 VGGFace2的预训练模型
二:在lfw数据集上评估
参考官网说明:https://github.com/davidsandberg/facenet/wiki/Validate-on-LFW
具体实现
(1)图片预处理
因为程序中神经网络使用的是谷歌的“inception resnet v1”网络模型,这个模型的输入时160*160的图像,而我们下载的LFW数据集是250*250限像素的图像,所以需要进行图片的预处理。
python src/align/align_dataset_mtcnn.py datasets/lfw datasets/lfw-160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25
参数说明:
datasets/lfw 数据集路径
datasets/lfw_160 转换尺寸后路径
--image_size 160 --margin 32 --random_order--gpu_memory_fraction 0.25 指定图片尺寸
error:找不到facenet
方法:将align_dataset_mtcnn.py复制到src路径下
评估:python src/validate_on_lfw.py datasets/lfw-160 models/20180402-114759
三 在自己的数据集上训练
参考官网说明:https://github.com/davidsandberg/facenet/wiki/Train-a-classifier-on-own-images
在l自己数据集上训练和测试,数据尺寸250*250
python src/classifier.py TRAIN datasets/my-data/train/ models/20180402-114759/20180402-114759.pb models/my_classifier.pkl --batch_size 50
python src/classifier.py CLASSIFY datasets/my-data/train/ models/20180402-114759/20180402-114759.pb models/my_classifier.pkl --batch_size 50