项目地址:https://github.com/ageitgey/face_recognition#face-recognition

本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法,基于户外脸部数据测试库Labeled Faces in the Wild 的基准水平来说,达到了99.38%的准确率。

dlib:http://dlib.net/

数据测试库Labeled Faces in the Wild:http://vis-www.cs.umass.edu/lfw/

模型提供了一个简单的 face_recognition 命令行工具让用户通过命令就能直接使用图片文件夹进行人脸识别操作。

特征

在图片中捕捉人脸

在一张图片中捕捉到所有的人脸

找到并处理图片中人脸的特征

找到每个人眼睛、鼻子、嘴巴和下巴的位置和轮廓。

import face_recognition

image = face_recognition.load_image_file("your_file.jpg")

face_locations = face_recognition.face_locations(image)

捕捉脸部特征有很重要的用途,当然也可以用来进行图片的数字美颜digital make-up(例如美图秀秀)

digital make-up:https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py

识别图片中的人脸

识别谁出现在照片里

安装步骤

本方法支持Python3/python2,我们只在macOS和Linux中测试过,还不知是否适用于Windows。

使用pypi的pip3 安装此模块(或是Python 2的pip2)

重要提示:在编译dlib时可能会出问题,你可以通过安装来自源(而不是pip)的dlib来修复错误,请见安装手册How to install dlib from source

https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf

通过手动安装dlib,运行pip3 install face_recognition来完成安装。

使用方法命令行界面

当你安装face_recognition,你能得到一个简洁的叫做face_recognition的命令行程序,它能帮你识别一张照片或是一个照片文件夹中的所有人脸。

首先,你需要提供一个包含一张照片的文件夹,并且你已经知道照片中的人是谁,每个人都要有一张照片文件,且文件名需要以该人的姓名命名;

然后你需要准备另外一个文件夹,里面装有你想要识别人脸照片;

接下来你只用运行face_recognition命令,程序能够通过已知人脸的文件夹识别出未知人脸照片中的人是谁;

针对每个人脸都要一行输出,数据是文件名加上识别到的人名,以逗号分隔。

如果你只是想要知道每个照片中的人名而不要文件名,可以进行如下操作:

Python模块

你可以通过引入face_recognition就能完成人脸识别操作:

API 文档: https://face-recognition.readthedocs.io.

在图片中自动识别所有人脸

请参照此案例this example: https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py

识别图片中的人脸并告知姓名

请参照此案例this example: https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

Python代码案例

所有例子在此 here.

https://github.com/ageitgey/face_recognition/tree/master/examples

·找到照片中的人脸Find faces in a photograph

https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py

· 识别照片中的面部特征Identify specific facial features in a photograph

https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py

· 使用数字美颜Apply (horribly ugly) digital make-up

https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py

·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph based on photographs of known people

https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

人脸识别方法的原理

如果你想学习此方法的人脸定位和识别原理,请参见read my article。

https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78

注意事项

· 本人脸识别模型仅限用于成人,对于儿童来说效果不佳,模型可能会由于使用默认的对比阈值(0.6)而无法清楚识别出儿童的脸。

基于Python的开源人脸识别库:离线识别率高达99.38%的更多相关文章

  1. Python的开源人脸识别库:离线识别率高达99.38%

    Python的开源人脸识别库:离线识别率高达99.38%   github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...

  2. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  3. face_recognition开源人脸识别库:离线识别率高达99.38%

    基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...

  4. scapy - 基于python的数据包操作库

    简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...

  5. 基于python Arcface 实现人脸检测和识别

    虹软的人脸识别技术也是很强的,重要的是他免费提供了离线的sdk,还提供了实例,这个是目前几家研究人脸识别的大公司里面少有的.识别能力正常用还是可以的.我这个代码是调用的离线sdk实现的 ``` fro ...

  6. 基于 Python + OpenCV 进行人脸识别,视频追踪代码全注释

    先来普及一下概念, 计算机对人脸是如何识别的呢? 或者说图像是如何识别的.主要是获取单张图片的特征值记录了特征值以后,如果下一张图片来了以后两张图片特征值进行对比,如果相似度很高那么计算机就认定这两个 ...

  7. 万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程序(1)

    在最近刷今日头条以及其他媒体软件时,经常会发现一些AI换脸的视频,于是我想,可不可以自己实现一个可以进行人脸识别的软件程序.我的具体流程是先配合python网络爬虫先进行万张PubFig人脸公共图片的 ...

  8. 基于Python实现对PDF文件的OCR识别

    http://www.jb51.net/article/89955.htm https://pythontips.com/2016/02/25/ocr-on-pdf-files-using-pytho ...

  9. 使用wxpy这个基于python实现的微信工具库的一些常见问题

    使用如下的命令行安装: pip install wxpy Collecting wxpy Downloading https://files.pythonhosted.org/packages/6b/ ...

随机推荐

  1. iOS端VR视频播放(转自简书http://www.jianshu.com/p/1ee1a0d1d320)

    下面是我看了谷歌的一个VR在iOS端开发的文档写的一个demo. 第一步是需要用cocoaPods导入谷歌开发的一个第三方:CardboardSDK,怎么导入就不多说了,这里需要注意的一点是谷歌方面的 ...

  2. [SDOI2009]HH的项链 树状数组 BZOJ 1878

    题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链 ...

  3. P3167 [CQOI2014]通配符匹配 题解

    题目 题目大意 给出一个字符串,其中包含两种通配符 ‘?’和 ‘*’ ,‘?’可以代替一个字符,‘*’可以代替一个字符串(长度可以为0) 然后给出几个字符转,判断能否用给出的字符串表示出来 样例解释 ...

  4. Android MVP模式实现组件和业务逻辑分离

    1,Activity代码展示,只需要一下3行重要代码即可完成任何复杂的逻辑 /** * 登录界面 * * @author lipanquan */public class LoginActivity ...

  5. Spring和EhCache整合(针对使用了Shiro)

    https://blog.csdn.net/a243293719/article/details/78277895

  6. ubuntu简单的小命令

    1. gnome-system-monitor,用作調处系统管理窗口,方便结束相关程序. 2. sudo python setup.py install,用作对.py文件的安装,但注意要先cd /ho ...

  7. 约瑟夫环问题poj1012

    题意: 有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k) 现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去. 问当m为什么值时,可以使得在出现好 ...

  8. eclipse 快捷键使用日志

    Ctrl+Shift+F 格式化代码 Ctrl+Shift+O  快速导入资源包 Ctrl+m 最大化/最小化当前窗口(全屏/还原)

  9. Linux 系统 文件锁 fcntl函数详解

    #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int ...

  10. thinkphp3.2.3 ueditor1.4.3 图片上传操作,在线删除上传图片功能。

    最近弄一个图片 上传,可是用ueditor 自带的上传,如果不配置的话,上传的目录不在自己的项目中. 在网上找了好多,可是都是底版本的,新版本的还真是找到了一个,ueditor-thinkphp 这个 ...