face_recognition简介
这是世界上最简单的人脸识别库了。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸。
该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in the world》测试基准下达到了99.38%。它同时提供了一个叫face_recognition的命令行工具,以便你可以用命令行对一个文件夹中的图片进行识别操作。
下面先来完成face_recognition的安装:
系统环境
Ubuntu 16.04.6+Python 2.7 (ubuntu自带的python)
预备环境搭建
在此需要先安装git、cmake、python-pip(以下均以root用户进行操作):
$ apt-get install -y git
$ apt-get install -y cmake
$ apt-get install -y python-pip
下载编译dlib
# 编译前先下载安装boost
$ apt-get install libboost-all-dev# 自行定义一个存放dlib的目录,例如我存放在/softs目录下
$ cd /softs# 克隆dlib源码
$ git clone https://github.com/davisking/dlib.git
$ cd dlib/
# 创建一个build目录
$ mkdir build
$ cd build/# 开始编译
$ cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
$ cmake --build .
$ cd ..
$ python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA
下载安装face_recognition
pip install face_recognition
至此face_recognition就安装好了,安装完成之后,系统会自动生成face_recognition命令,测试一下该命令:
在此我创建了两个存储图片的目录,known_people目录存储已知的几位美国总统的图片,unknown_pictures目录用于存储需要被识别的图片,如下:
输入命令:
face_recognition /softs/test/known_people/ /softs/test/unknown_pictures/
输出结果:
/softs/test/unknown_pictures/unknown1.jpg,Obama
输出中,识别到的每张脸都单独占一行,输出格式为<图片名称>,<人名>
从上可以看出,通过face_recognition命令识别未知图片的那个人为奥巴马。当然你也可以试下识别多张图片,只需将需要别识别的图片放在同个目录下。
如果只想输出被识别到的图片的名字,那么可以输入如下命令:
face_recognition /softs/test/known_people/ /softs/test/unknown_pictures/ | cut -d ',' -f2
如果想指定想并行处理图像,则可以指定cpu核数,例如指定4个cpu则可认为是并行处理4倍的图像:
face_recognition --cpus 4 /softs/test/known_people/ /softs/test/unknown_pictures/