face_recognition模块方法集合

face_recognition API

以下描述了face_recognition人脸识别库的一些API参数、用法、返回值

函数batch_face_locations

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

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_distance(face_encodings, face_to_compare)

给定一组面部编码,将它们与已知的面部编码进行比较,得到欧氏距离。对于每一个比较的脸,欧氏距离代表了这些脸有多相似。

参数
faces:要比较的人脸编码列表

face_to_compare:待进行对比的单张人脸编码数据

tolerance:两张脸之间有多少距离才算匹配。该值越小对比越严格,0.6是典型的最佳值

返回值
一个numpy ndarray,数组中的欧式距离与faces数组的顺序一一对应


函数face_encodings

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_landmarks(face_image, face_locations=None)

给定一个图像,返回图像中每个人脸的面部特征位置(眼睛、鼻子等)

参数
face_image:待搜索的image

face_locations:可选参数,可选地提供要检查的面位置列表

返回值

面部特征位置(眼睛、鼻子等)的字典记录列表


函数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

load_image_file(file, mode='RGB')

加载一个图像文件到一个numpy array类型的对象上

参数
file:待加载的图像文件名字

mode:转换图像的格式。只支持“RGB”(8位RGB, 3通道)和“L”(黑白)

返回值

一个包含图像数据的numpy array类型的对象

要调用 Python 中的 face_recognition 模块进行人脸识别,可以按照以下步骤进行: 1. 安装 face_recognition 模块:在命令行中执行以下命令来安装 face_recognition 模块 ``` pip install face_recognition ``` 2. 准备数据:将需要识别的人脸图片和已知人脸图片存储在本地文件夹中。 3. 加载图片:使用 face_recognition 模块中的 load_image_file 函数加载图片,例如: ``` import face_recognition unknown_image = face_recognition.load_image_file("unknown.jpg") known_image = face_recognition.load_image_file("known.jpg") ``` 4. 提取特征:使用 face_recognition 模块中的 face_encodings 函数提取人脸特征,例如: ``` unknown_encoding = face_recognition.face_encodings(unknown_image)[0] known_encoding = face_recognition.face_encodings(known_image)[0] ``` 5. 对比特征:使用 face_recognition 模块中的 compare_faces 函数比对已知人脸特征和待识别人脸特征,例如: ``` results = face_recognition.compare_faces([known_encoding], unknown_encoding) ``` 6. 输出结果:根据比对结果输出识别结果,例如: ``` if results[0]: print("This is a known person!") else: print("This is an unknown person!") ``` 在这个例子中,我们使用 face_recognition 模块对两张图片进行了人脸识别。首先使用 load_image_file 函数加载图片,然后使用 face_encodings 函数提取人脸特征,最后使用 compare_faces 函数比对已知人脸特征和待识别人脸特征,得到比对结果并输出识别结果。需要注意的是,face_encodings 函数返回的是一个列表,因此需要取第一个元素来获取人脸特征。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值