正文
中的人脸,然后判断她到底是候选人中的谁。
另外的
girl-face-rec.py
是我们的python脚本。
shape_predictor_68_face_landmarks.dat
是已经训练好的人脸关键点检测器。
dlib_face_recognition_resnet_model_v1.dat
是训练好的ResNet人脸识别模型。ResNet是何凯明在微软的时候提出的深度残差网络,获得了 ImageNet 2015 冠军,通过让网络对残差进行学习,在深度和精度上做到了比 CNN 更加强大。
shape_predictor_68_face_landmarks.dat
和
dlib_face_recognition_resnet_model_v1.dat
都可以在
这里
找到。不能点击超链接的可以直接输入以下网址:http://dlib.net/files/。
然后准备几个人的人脸图片作为候选人脸,最好是正脸。放到
candidate-faces
文件夹中。
本文这里准备的是六张图片,如下:
她们分别是
然后准备四张需要识别的人脸图像,其实一张就够了,这里只是要看看不同的情况:
可以看到前两张和候选文件中的本人看起来还是差别不小的,第三张是候选人中的原图,第四张图片微微侧脸,而且右侧有阴影。
数据准备完毕,接下来就是代码了。识别的大致流程是这样的:
代码不做过多解释,因为已经注释的非常完善了。以下是
girl-face-rec.py
# -*- coding: UTF-8 -*-
import sys,os,dlib,glob,numpy
from skimage import io
if len(sys.argv) != 5:
print "请检查参数是否正确"
exit()
# 1.人脸关键点检测器
predictor_path = sys.argv[1]
# 2.人脸识别模型