TensorFlow 实现人脸识别

图像处理MySQL机器学习

picture.image

人脸识别是目前应用非常广泛的一种生物识别技术。美国权威科学杂志《麻省理工科技评论》(MIT Technology Review)最近发布 2017 年全球十大突破性技术榜单,其中支付宝“刷脸支付”入选,点评称,作为全世界首批上线人脸识别技术的国家,中国的人脸识别技术精度已达到金融交易的级别,刷脸支付进入成熟期。实际上支付宝在 2015 年发布 9.0 版本时,就引用人脸识别技术用于用户登陆、实名认证、找回密码、支付风险校验等场景,迄今已有近1.2亿用户使用了人脸识别功能。此外,参加《最强大脑》战胜“水哥”的百度大脑——小度,同样具备强大的人脸识别能力。国内代表性的创业公司如 Face++、SenseTime 也是人脸识别领域的佼佼者。

与其他生物识别技术(指纹识别,掌形识别,眼虹膜识别和声音识别)相比,人脸识别具有以下优势:

  • 其他每种生物识别方法都需要一些人的配合动作,而人脸识别不需要被动配合,可以自动用在隐蔽的场合,如公安部门监控行动;
  • 当记录一个企图登录的人的生物记录时,只有人脸能更直观,更方便的核查该人的身份;

由于与传统的生物识别技术相比,人脸识别具有更为简便、准确、经济及可扩展性良好等众多优势,可广泛应用于安全验证、监控、控制等各个方面。

和人脸相关的任务有多种:

  • 人脸检测(将图片中包含的人脸进行初步定位,以及关键点如眼睛、鼻子、嘴巴等更精细的定位,文章封面即为典型人脸检测结果)

  • 人脸跟踪(视频中跟踪人脸位置变化)

  • 人脸验证(输入两张人脸,判定是否属于同一人)

  • 人脸识别(输入一张人脸,判断其属于人脸数据库全部记录中具体哪一人)

  • 人脸聚类(输入一批人脸,将属于同一人的自动归为一类)

用于评测人脸识别算法效果的公开评测数据集为 LFW【1】,全称带标签的自然人脸数据库(Labeled Faces in the Wild),由美国马萨诸塞州大学艾姆赫斯特学院创建,完整的带标签自然人脸数据库可以作为一个压缩包(lfw.tgz)下载。每张图片命名方式为 “lfw/name/name_xxxx.jpg”, 这里“xxxx”是前面补零的四位图片编号。例如,前美国总统 乔治•W•布什 的第10张图片为 “lfw/George_W_Bush/George_W_Bush_0010.jpg”。

LFW 总共有 13233 张 JPEG 格式图片,属于 5749 个不同人。每张图片尺寸都是 250x250。LFW 是学术界进行人脸验证性能评测的事实上的标准测试数据集。

原始 LFW 图像:

picture.image

经过人脸对齐之后的 LFW 图像:

picture.image

原始 LFW 图像和经过人脸对齐的 LFW 图像都可以在文末获得下载方式。

目前在 LFW 上不同模型的成绩见下表所示:

picture.image

下面我们可以用 TensorFlow 运行一个在 LFW 上人脸验证准确率达到 99.2% 的例程。

FaceNet 【2】是一个 TensorFlow 实现的人脸识别器,论文【3】有详细介绍。目前版本兼容 TensorFlow 1.0。读者在运行例程之前,应首先确保自己安装了 TensorFlow 1.0,安装步骤参考本公众号之前的文章。

$ git clone --recursive https://github.com/davidsandberg/facenet.git

$ cd facenet/

$ pip install -r requirements.txt

exportPYTHONPATH= export PYTHONPATH=(pwd)/src

下载对齐后的数据集(下载方式见文末),解压,放到当前目录下,如下图所示。

$ ls -l

picture.image

$ mkdir models

这里我们需要下载预训练好的模型 20170216-091149.zip (下载方式见文末)放到 models 目录下,并执行:

$ cd models/

$ unzip 20170216-091149.zip

$ cd ../

我们通过运行下面脚本,就能验证在 LFW 数据集上的人脸识别准确率。

**$ python src/validate_on_lfw.py **

**./lfw_align_mtcnnpy_160/ **

./models/20170216-091149

模型 20170216-091149 在 LFW 上的准确率约 0.992+-0.004。运行结果如下图:

picture.image

运行今天例程所需的模型和数据文件均可在关注本公众号后,回复“20170311”获取下载链接。

【1】http://vis-www.cs.umass.edu/lfw/

【2】https://github.com/davidsandberg/facenet

【3】 FaceNet: A Unified Embedding for Face Recognition and Clustering, https://arxiv.org/abs/1503.03832

【4】 A Discriminative Feature Learning Approach for Deep Face Recognition, http://ydwen.github.io/papers/WenECCV16.pdf

【5】 Deep Face Recognition, http://www.robots.ox.ac.uk/~vgg/publications/2015/Parkhi15/parkhi15.pdf


如果你觉得本文对你有帮助,请关注公众号,将来会有更多更好的文章推送!

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论