专栏名称: 算法与数学之美
从生活中挖掘数学之美,在实践中体验算法之奇,魅力旅程,从此开始!
目录
相关文章推荐
51好读  ›  专栏  ›  算法与数学之美

40行代码的人脸识别实践

算法与数学之美  · 公众号  · 算法  · 2017-05-22 21:29

正文

请到「今天看啥」查看全文


中的人脸,然后判断她到底是候选人中的谁。

另外的 girl-face-rec.py 是我们的python脚本。 shape_predictor_68_face_landmarks.dat 是已经训练好的人脸关键点检测器。 dlib_face_recognition_resnet_model_v1.dat 是训练好的ResNet人脸识别模型。ResNet是何凯明在微软的时候提出的深度残差网络,获得了 ImageNet 2015 冠军,通过让网络对残差进行学习,在深度和精度上做到了比 CNN 更加强大。


1、前期准备

shape_predictor_68_face_landmarks.dat dlib_face_recognition_resnet_model_v1.dat 都可以在 这里 找到。不能点击超链接的可以直接输入以下网址:http://dlib.net/files/。

然后准备几个人的人脸图片作为候选人脸,最好是正脸。放到 candidate-faces 文件夹中。

本文这里准备的是六张图片,如下:

她们分别是

然后准备四张需要识别的人脸图像,其实一张就够了,这里只是要看看不同的情况:

可以看到前两张和候选文件中的本人看起来还是差别不小的,第三张是候选人中的原图,第四张图片微微侧脸,而且右侧有阴影。

2、识别流程

数据准备完毕,接下来就是代码了。识别的大致流程是这样的:



3、代码

代码不做过多解释,因为已经注释的非常完善了。以下是 girl-face-rec.py

  1. # -*- coding: UTF-8 -*-

  2. import sys,os,dlib,glob,numpy

  3. from skimage import io

  4. if len(sys.argv) != 5:

  5.     print "请检查参数是否正确"

  6.     exit()

  7. # 1.人脸关键点检测器

  8. predictor_path = sys.argv[1]

  9. # 2.人脸识别模型







请到「今天看啥」查看全文