项目地址: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. Gson的fromJson()方法

    Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法. 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构. 先来看第一种: 比如jso ...

  2. SwiftMailer 发送邮件时 提示fsockopen() 被禁用

    站点转移空间,发送邮件的SwiftMailer 类提示错误如下: Warning: fsockopen() has been disabled for security reasons in D:\1 ...

  3. 分割字符串(C++)

    方案1: 利用"IO流"的概念,即C++中的stream,我们都用过C++中std::iostream中的std::istream与std::ostream 如果你接触过网络编程( ...

  4. hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)

    题目传送门 题目大意:给出n座城市,每个城市都有一个0到9的val,城市的编号是从0到n-1,从i位置出发,只能走到(i*i+1)%n这个位置,从任意起点开始,每走一步都会得到一个数字,走n-1步,会 ...

  5. 省市联动 js

    工作中见到这个省市联动代码,虽然很简单也能写出来,还是随便把它记录下来. //省市联动 function area(obj_id, area_pId, data_call_back) { ) retu ...

  6. Windows无法启动 VMware Workstation server服务解决方法

    Windows无法启动VMware Workstation server服务, 可以通过删除datastores.xml文件来解决. 具体操作步骤如下: 1.在系统盘目录下,找到C:\ProgramD ...

  7. NETCORE openSUSE docker 安装

    openSUSE docker 安装https://www.jianshu.com/p/c725a06447d5 zypper命令使用示例https://www.cnblogs.com/linuxpr ...

  8. Django视图系统

    Django的view(视图)                                 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. ...

  9. 数据结构---Java---HashSet

    1.概述 1.1 HashSet不是线程安全的: 1.2 当向HashSet存入元素时,调用该对象的hashCode()值,根据hashCode()值来决定元素的存储位置: 如果hashCode()值 ...

  10. javascript document.referrer 用法

    document对象的referrer属性,返回导航到当前网页的超链接所在网页的URL. 举例: 1. a.html文件内容如下: <a href="b.html">浏 ...