Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ FaceNet Public
forked from foamliu/FaceNet

Face recognition using Keras

License

AbelHu/FaceNet

 
 

Repository files navigation

FaceNet

这是 FaceNet 的Keras实现 FaceNet: A Unified Embedding for Face Recognition and Clustering.

依赖项

数据集

CelebFaces Attributes Dataset (CelebA) 是一个大型的人脸数据集,有10,177个身份和202,599张人脸图像。

image

按照 说明 下载 CelebFaces Attributes (CelebA) 数据集.

模型结构

image

工作流程

处理单个输入图像的工作流程如下:

  1. 人脸检测:使用 Dlib 中预先训练的模型检测面部。
  2. 人脸校准:使用 Dlib 的实时姿势估计与 OpenCV 的仿射变换来尝试使眼睛和下唇在每个图像上出现在相同位置。
  3. 卷积网络:使用深度神经网络把人脸图片映射为 128 维单位超球面上的一个点。

image 图片来源

预训练模型

下载预训练模型,放在 models 目录下:

  1. Dlib 人脸校准模型 shape_predictor_5_face_landmarks.dat.bz2
  2. FaceNet 人脸识别模型 model.10-0.0156.hdf5

性能评估

使用 Labeled Faces in the Wild (LFW) 数据集做性能评估:

  • 13233 人脸图片
  • 5749 人物身份
  • 1680 人有两张以上照片

准备数据

下载 LFW database 放在 data 目录下:

$ wget http://vis-www.cs.umass.edu/lfw/lfw-funneled.tgz
$ tar -xvf lfw-funneled.tgz
$ wget http://vis-www.cs.umass.edu/lfw/pairs.txt
$ wget http://vis-www.cs.umass.edu/lfw/people.txt

评估脚本

$ python lfw_eval.py

测得结果

准确度: 89.27 %.

如何使用

数据预处理

提取训练图像:

$ python pre-process.py

总共 202,599张人脸图像中,5600张无法被 dlib 标定。因此 202599 - 5600 = 196999 张被用于训练。

训练

$ python train.py

要想可视化训练过程,执行下面命令:

$ tensorboard --logdir path_to_current_dir/logs

DEMO

$ python demo.py
正(P) 欧式距离 锚(A) 欧式距离 反(N)
image 0.1716 image 1.6495 image
1.2839 --- 1.1502 --- 1.1636
image 0.3566 image 0.9795 image
1.6029 --- 1.5733 --- 1.2582
image 0.7500 image 1.2708 image
1.4815 --- 1.0065 --- 1.7432
image 0.2974 image 1.2198 image
2.0759 --- 1.6838 --- 1.3330
image 0.3072 image 1.2609 image
0.5769 --- 0.7416 --- 0.8989
image 0.3422 image 0.4381 image
1.4096 --- 1.7690 --- 1.0634
image 0.5896 image 1.3287 image
1.7525 --- 1.5093 --- 0.9600
image 0.5894 image 1.4106 image
1.5781 --- 0.7706 --- 1.7681
image 0.6818 image 0.8294 image
1.1007 --- 0.8181 --- 1.1559
image 0.3873 image 0.9675 image

附录

样本数据

执行下面命令查看样本数据:

$ python data_generator.py
正(P) 锚(A) 反(N)
image image image
image image image
image image image
image image image
image image image
image image image
image image image
image image image
image image image
image image image

数据增强

执行下面命令查看数据增强效果:

$ python data_generator.py
之前 之后 之前 之后 之前 之后
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image
image image image image image image

About

Face recognition using Keras

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • Shell 0.2%