以下描述了face_recognition人脸识别库的一些API参数、用法、返回值
batch_face_locations(images, number_of_times_to_upsample=1, batch_size=128)
使用cnn人脸检测器返回一个包含人脸特征的二维数组,如果使用了GPU,这个函数能够更快速的返回结果;如果不使用GPU的话,该函数就没必要使用
参数:
images
: 一个包含图像数据的list,每个成员都是一个 numpy array类型
number_of_times_to_upsample
: 从images的样本中查找多少次人脸,该参数的值越高的话越能发现更小的人脸
batch_size
: 每个GPU一次批处理多少个image
返回值:
一个元组列表,列表中的每个元组包含人脸的位置(top, right, bottom, left)
compare_faces(known_face_encodings, face_encoding_to_check, tolerance=0.6)
比较脸部编码列表和候选编码,看看它们是否匹配。
参数:
known_face_encodings
:已知的人脸编码列表
face_encoding_to_check
:待进行对比的单张人脸编码数据
tolerance
:两张脸之间有多少距离才算匹配。该值越小对比越严格,0.6是典型的最佳值
返回值:
一个 True或者False值的列表,该表指示了known_face_encodings
列表的每个成员的匹配结果
face_distance(face_encodings, face_to_compare)
给定一组面部编码,将它们与已知的面部编码进行比较,得到欧氏距离。对于每一个比较的脸,欧氏距离代表了这些脸有多相似。
参数:
faces
:要比较的人脸编码列表
face_to_compare
:待进行对比的单张人脸编码数据
tolerance
:两张脸之间有多少距离才算匹配。该值越小对比越严格,0.6是典型的最佳值
返回值:
一个numpy ndarray,数组中的欧式距离与faces
数组的顺序一一对应
face_encodings(face_image, known_face_locations=None, num_jitters=1)
给定一个图像,返回图像中每个面的128维人脸编码。
参数:
face_image
:包含一个或者多个人脸的image
known_face_locations
:可选参数,如果你知道每个人脸所在的边界框
param num_jitters
:在计算编码时要重新采样的次数。越高越准确,但速度越慢,(100就会慢100倍)
返回值:
一个128维的面编码列表(每个面对应一个图像)
face_landmarks(face_image, face_locations=None)
给定一个图像,返回图像中每个人脸的面部特征位置(眼睛、鼻子等)
参数:
face_image
:待搜索的image
face_locations
:可选参数,可选地提供要检查的面位置列表
返回值:
面部特征位置(眼睛、鼻子等)的字典记录列表
face_locations(img, number_of_times_to_upsample=1, model='hog')
给定一个图像,返回图像中每个人脸的面部特征位置(眼睛、鼻子等)
参数:
img
:一个image(numpy array类型)
number_of_times_to_upsample
:从images的样本中查找多少次人脸,该参数的值越高的话越能发现更小的人脸
model
:使用哪种人脸检测模型。“hog” 准确率不高,但是在CPUs上运行更快,“cnn” 更准确更深度(且GPU/CUDA加速,如果有GPU支持的话),默认是“hog”
返回值:
一个元组列表,列表中的每个元组包含人脸的位置(top, right, bottom, left)
load_image_file(file, mode='RGB')
加载一个图像文件到一个numpy array类型的对象上
参数:
file
:待加载的图像文件名字
mode
:转换图像的格式。只支持“RGB”(8位RGB, 3通道)和“L”(黑白)
返回值:
一个包含图像数据的numpy array类型的对象