基于Python的开源人脸识别库:离线识别率高达99.38%
项目地址: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%的更多相关文章
- Python的开源人脸识别库:离线识别率高达99.38%
Python的开源人脸识别库:离线识别率高达99.38% github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...
- Python的开源人脸识别库:离线识别率高达99.38%(附源码)
Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073 11.11 智慧上云 ...
- face_recognition开源人脸识别库:离线识别率高达99.38%
基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...
- scapy - 基于python的数据包操作库
简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...
- 基于python Arcface 实现人脸检测和识别
虹软的人脸识别技术也是很强的,重要的是他免费提供了离线的sdk,还提供了实例,这个是目前几家研究人脸识别的大公司里面少有的.识别能力正常用还是可以的.我这个代码是调用的离线sdk实现的 ``` fro ...
- 基于 Python + OpenCV 进行人脸识别,视频追踪代码全注释
先来普及一下概念, 计算机对人脸是如何识别的呢? 或者说图像是如何识别的.主要是获取单张图片的特征值记录了特征值以后,如果下一张图片来了以后两张图片特征值进行对比,如果相似度很高那么计算机就认定这两个 ...
- 万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程序(1)
在最近刷今日头条以及其他媒体软件时,经常会发现一些AI换脸的视频,于是我想,可不可以自己实现一个可以进行人脸识别的软件程序.我的具体流程是先配合python网络爬虫先进行万张PubFig人脸公共图片的 ...
- 基于Python实现对PDF文件的OCR识别
http://www.jb51.net/article/89955.htm https://pythontips.com/2016/02/25/ocr-on-pdf-files-using-pytho ...
- 使用wxpy这个基于python实现的微信工具库的一些常见问题
使用如下的命令行安装: pip install wxpy Collecting wxpy Downloading https://files.pythonhosted.org/packages/6b/ ...
随机推荐
- luogu1210 回文检测
Manacher 正确读法:抹内A撤(马拉车) (跟着假硕学英语) 我们把原来的字符串,通过玄学处理,变成只留下字母,且每两个字母之间有一个奇怪的字符的那种Manacher专用字符串. 建立双射关系f ...
- HDU6299 Balanced Sequence (多校第一场1002) (贪心)
Balanced Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Qt 学习之路 2(5):自定义信号槽
Home / Qt 学习之路 2 / Qt 学习之路 2(5):自定义信号槽 Qt 学习之路 2(5):自定义信号槽 豆子 2012年8月24日 Qt 学习之路 2 131条评论 上一节我们详 ...
- MySQL安全优化
一.数据库相关 1. MySQL版本的选择 在正式生产环境中,建议使用5.6或以上系列的版本(5.7不建议,曾经用过这个版本,问题有点多). 2. 运行用户与端口的配置 2.1.确保MySQL运行用户 ...
- python 分页 封装
分页 封装 我是在项目根目录创建个分页文件 分页代码: class Pagination(object): def __init__(self, data_num, current_page, url ...
- POJ 3252 区间内一个数的二进制中0的数量要不能少于1的数量(数位DP)
题意:求区间内二进制中0的数量要不能少于1的数量 分析:很明显的是数位DP: 菜鸟me : 整体上是和数位dp模板差不多的 , 需要注意的是这里有前导零的影响 , 所以需要在dfs()里面增加zor ...
- jq自定义鼠标右键菜单
效果: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- Zookeeper查看版本
[root@ooccpp lib]# Zookeeper version: ---, built on // : GMT Clients: /[](queued=,recved=,sent=) /[] ...
- 创建有关hbase数据库的项目时所遇到的问题
1.在以前使用其他数据库时,经常会使用id自增来做主键,但是hbase数据库中不知道怎么来设置自增主键,所以我打算不要id自增主键.然后删除原来的表,重新创建表. 删除表语句: 用drop命令可以删除 ...
- my.答题
20170821增加: http://www.119you.com/mhxy/yxgl/738653.shtml 1.三界奇缘 http://my.netease.com/forum.php?mod= ...