一. 安装
首先安装相关依赖(安装环境window10,pycharm下,python3.6)
按顺序安装以下依赖(pycharm下安装方式就是 File - Settings - Project: TensorFlowTestNew - Project Interpreter,之后点击+号搜索安装)
(1)先安装Cmake和boost
(2)安装dlib,我安装的时候报了一个错误大体是说pip不是最新,执行 python -m pip install --upgrade pip 就Ok了
(3)安装opencv和face_recongnition
二.API详解
face_recongnition API详细
不懂?没关系,下面我来一一介绍
1、人脸定位——locations
face_locations(img, number_of_times_to_upsample=1, model="hog")
1
利用CNN深度学习模型或方向梯度直方图(Histogram of Oriented Gradient, HOG)进行人脸提取。返回值是一个数组(top, right, bottom, left)表示人脸所在边框的四条边的位置。
成员变量: img:图片名
number_of_times_to_upsample=1:数值越大识别的人脸越小,耗时也越长
model=”hog”:使用的人脸检测模型此外,人脸定位的方法还有:
_raw_face_locations(img, number_of_times_to_upsample=1, model="hog")
_raw_face_locations_batched(images, number_of_times_to_upsample=1, batch_size=128)
batch_face_locations(images, number_of_times_to_upsample=1, batch_size=128) 1
2
3
读者有兴趣可自行尝试,不一一赘述。
2、人脸解码——encodings
人脸识别的前菜。输入一张图片后,生成一个128维的特征向量,这是 人脸识别的依据。
face_encodings(face_image, known_face_locations=None, num_jitters=1)
1
成员变量:
face_image:图片名
known_face_locations=None:这个是默认值,默认解码图片中的每一个人脸。若输入face_locations()[i]可指定人脸进行解码。
num_jitters=1:池化操作。数值越高,精度越高,但耗时越长。
3、人脸比对——compare
人脸识别的核心,设置一个阈值,若两张人脸的特征向量的距离,在阈值范围之内,则认为其是同一个人,最后返回一个Boolean值的list。
compare_faces(known_face_encodings, face_encoding_to_check, tolerance=0.6)
1
成员变量:
known_face_encodings:人脸解码方法中返回的特征向量,此处是已知人脸的特征向量。
face_encoding_to_check:此处是未知人脸的特征向量。
tolerance=0.6:比对阈值,即容差,默认为0.6。
4、人脸特征向量距离——distance
跟上面的方法同样原理,不过输出由对错改为数字。
face_distance(face_encodings, face_to_compare)
1
成员变量:
face_encodings:人脸解码方法中返回的特征向量,此处是已知人脸的特征向量。
face_to_compare:此处是未知人脸的特征向量。5、人脸特征提取——landmark
face_landmarks(face_image, face_locations=None, model="large")
1
成员变量:
face_image:输入图片。
face_locations=None:这个是默认值,默认解码图片中的每一个人脸。若输入face_locations()[i]可指定人脸进行解码。
model=”large”:输出的特征模型,默认为“large”,可选“small”,改为输出5点特征,但速度更快。