本文档介绍了 face_recognition 库中的人脸检测功能。人脸检测是指在图像中识别和定位人脸的过程,这是执行面部特征提取、人脸编码或人脸识别的先决步骤。有关人脸识别和比较的信息,请参阅 人脸编码与识别,有关面部标志的详细信息,请参阅 面部标志。
来源: face_recognition/api.py108-121
face_recognition 库中的人脸检测建立在 dlib 库的检测模型之上。该系统提供两种检测方法:
检测过程以 (top, right, bottom, left) 的顺序返回人脸的位置坐标。
来源: face_recognition/api.py17-26 face_recognition/api.py108-121
该库提供了几个用于人脸检测的函数:
| 功能 | 描述 | 返回值 |
|---|---|---|
face_locations() | 检测单张图像中人脸的主要函数 | 人脸位置元组列表,格式为 (top, right, bottom, left) |
_raw_face_locations() | 返回 dlib 矩形的内部辅助函数 | dlib 'rect' 对象列表 |
batch_face_locations() | 一次处理多张图像(GPU 优化) | 包含人脸位置元组的列表列表 |
_raw_face_locations_batched() | 批处理的内部助手 | dlib 检测对象列表 |
来源: face_recognition/api.py92-105 face_recognition/api.py108-121 face_recognition/api.py124-151
人脸检测流程遵循以下步骤:
来源: face_recognition/api.py92-121
检测模型在模块导入时初始化一次。
来源: face_recognition/api.py17-26
最常见的用法是在单张图像中检测人脸。
来源: face_recognition/api.py108-121
为了获得更精确的检测,尤其是在处理复杂图像时
来源: face_recognition/api.py108-121
在处理多张图像并利用 GPU 时
来源: face_recognition/api.py135-151
| 参数 | 描述 | 默认 |
|---|---|---|
img | 图像,为 numpy 数组(来自 load_image_file()) | 必填 |
number_of_times_to_upsample | 将图像放大多少次。值越高,找到的人脸越小,但处理时间会增加。 | 1 |
model | 要使用的检测模型:“hog”(更快,CPU)或“cnn”(更准确,GPU 加速) | "hog" |
来源: face_recognition/api.py108-117
| 参数 | 描述 | 默认 |
|---|---|---|
images | 图像数组列表 | 必填 |
number_of_times_to_upsample | 放大图像的次数 | 1 |
batch_size | 每次 GPU 批处理的图像数量 | 128 |
来源: face_recognition/api.py135-144
来源: face_recognition/api.py108-121
number_of_times_to_upsample 参数控制着权衡:
典型值范围从 1(默认)到 3,具体取决于您的具体要求。
来源: face_recognition/api.py92-105
处理多张图像时
batch_face_locations() 配合 GPU 可显著提高性能。batch_size。来源: face_recognition/api.py135-151
人脸位置以 CSS 顺序(top, right, bottom, left)返回,这与内部 dlib 表示不同。该库提供了转换格式的辅助函数。
_rect_to_css():将 dlib 矩形转换为 (top, right, bottom, left) 元组_css_to_rect():将 (top, right, bottom, left) 元组转换为 dlib 矩形_trim_css_to_bounds():确保坐标在图像边界内来源: face_recognition/api.py32-60
来源: face_recognition/api.py92-121
人脸检测函数是其他面部处理任务的基础。
来源: face_recognition/api.py154-200 face_recognition/api.py203-226