Face Recognition 人脸识别
译者注:
本项目face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。
为了便于中国开发者研究学习人脸识别、贡献代码,我将本项目README文件翻译成中文。
向本项目的所有贡献者致敬。
英译汉:同济大学开源软件协会 子豪兄Tommy
本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。
本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
Labeled Faces in the Wild是美国麻省大学安姆斯特分校(University of Massachusetts Amherst)制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。
本项目提供了简易的face_recognition命令行工具,你可以用它处理整个文件夹里的图片。
安装
环境配置
Python 3.3+ or Python 2.7
macOS or Linux
Windows并不是我们官方支持的,但也许也能用
不同操作系统的安装方法
在 Mac 或者 Linux上安装本项目
First, make sure you have dlib already installed with Python bindings:
第一步,安装dlib和相关Python依赖:
Then, install this module from pypi using pip3 (or pip2 for Python 2):
pip3 install face_recognition
在 Mac 或者 Linux上安装本项目 2
修改你的pip镜像源为阿里镜像,然后使用
pip install face_recognition
可以自动帮你安装各种依赖,包括dlib。只是在安装dlib的时候可能会出问题,因为dlib需要编译,出现的问题一般是gcc或者g++版本的问题,所以在pip install face_recognition之前,可以通过在命令行键入
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
来指定你gcc和g++对应的位置,(这两句话会临时修改当前终端的环境变量/usr/local/bin/gcc对应你自己gcc或者g++所在目录)。
在树莓派上安装
在Windows上安装
虽然本项目官方并不支持Windows,但一些大神们摸索出了在Windows上运行本项目的方法:
@masoudr写的教程:如何在Win10系统上安装 dlib库和 face_recognition项目
使用Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在这个镜像中
如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中(需要电脑中安装VMWare Player 或者 VirtualBox)
特性
从图片里找到人脸
定位图片中的所有人脸:
import face\_recognition
image \= face\_recognition.load\_image\_file("your\_file.jpg")
face\_locations \= face\_recognition.face\_locations(image)
识别人脸关键点
识别人脸关键点,包括眼睛、鼻子、嘴和下巴。
import face\_recognition
image \= face\_recognition.load\_image\_file("your\_file.jpg")
face\_landmarks\_list \= face\_recognition.face\_landmarks(image)
识别人脸关键点在很多领域都有用处,但同样你也可以把这个功能玩坏,比如本项目的 digital make-up自动化妆案例(就像美图秀秀一样)。
识别图片中的人是谁
import face\_recognition
known\_image \= face\_recognition.load\_image\_file("biden.jpg")
unknown\_image \= face\_recognition.load\_image\_file("unknown.jpg")
biden\_encoding \= face\_recognition.face\_encodings(known\_image)\[0\]
unknown\_encoding \= face\_recognition.face\_encodings(unknown\_image)\[0\]
results \= face\_recognition.compare\_faces(\[biden\_encoding\], unknown\_encoding)
你也可以配合其它的Python库(比如opencv)实现实时人脸检测:
看这个案例 实时人脸检测 。