最近看到一个很好的API,这个可以方便我们很简单地实现一些基本的人脸识别的工作,比如识别出这个人是谁、人脸的检测定位,配合其他的工具可以产生更好的效果; github原地址
一、配置环境
(一)安装dlib,这是一个开源的、基于C++的库
(二)安装face_recognition,可以直接使用代码:
pip install face_recognition
但是,一般情况下速度太慢,可以使用清华源,速度非常快
这样就可以使用这个工具了
二、人脸识别
使用face_recognition命令行工具
(一)首先建立两个文件夹,一个是图片有名字的,图片名称即是名字,另一个是没有名字的,打开终端,进入含有这两个文件夹的目录下面,使用下面代码:
face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
后面两个,分别是两个文件夹的名字
这样,系统就会自动学习已知文件夹,然后给出未知文件夹的图片中人物的名字;这个系统训练的时候使用的亚洲人的样本较少,识别起来,亲测感觉并不好,一张照片会有好几个结果;
(二)系统默认容错率是0.6,可以使用下面的命令调节:
face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
这里数字越小,识别越严格;但是如果识别过于严格,则会产生过多的不能识别的人
(三)使用下面的命令可以展示人脸匹配的具体数值:
face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
(四)假如不在乎具体照片的名称,只是想知道这个文件夹中有谁,可以使用下面的命令:
face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ',' -f2
三、人脸检测定位
使用face_detection命令行工具
使用这个工具可以传入一个文件夹或者一张图片,输出结果的每一行都对应图片中的一张脸,输出坐标代表着这张脸的上、右、下、左像素点坐标。命令如下:
face_detection ./folder_with_pictures/