本文档介绍了 face_recognition 库中的面部地标检测功能。面部地标是指面部上的特定面部特征,例如眼睛、鼻子、眉毛、嘴唇和下巴线,这些特征由面部上的一组点表示。此功能允许您在图像中识别和定位精确的面部特征,这对于各种应用非常有用,例如面部分析、情绪检测、面部滤镜以及作为面部识别的预处理步骤。
有关在图像中检测面部的信息,请参阅 面部检测。有关面部编码和识别的信息,请参阅 面部编码与识别。
该库支持两种具有不同细节程度和性能特征的地标检测模型
大型模型可识别面部的 68 个特定点,这些点按面部特征分组
小型模型速度更快,但提供的细节较少,仅识别 5 个点
来源:face_recognition/api.py168-200
用于面部地标检测的主要函数是 face_landmarks()
| 参数 | 类型 | 描述 |
|---|---|---|
| face_image | numpy 数组 | 包含面部的图像 |
| face_locations | 列表,可选 | 要分析的预计算面部位置 |
| model | 字符串 | 使用的模型:“large”(默认,68 点)或“small”(5 点) |
一个字典列表,其中每个字典包含一张脸的特征。键是特征名称,值是每个点(x, y)元组的列表。
对于“large”模型,字典包含
对于“small”模型,字典包含
来源:face_recognition/api.py168-200
来源:examples/find_facial_features_in_picture.py1-27
地标检测过程如下
face_landmarks() 首先调用 _raw_face_landmarks() 来获取原始地标数据。_raw_face_landmarks() 使用面部位置,通过 dlib 的形状预测器模型来提取地标。pose_predictor_68_point:用于“large”模型pose_predictor_5_point:用于“small”模型来源:face_recognition/api.py154-165 face_recognition/api.py168-200
面部地标检测是面部识别流程中的关键组成部分
来源:face_recognition/api.py19-23 face_recognition/api.py203-214
面部地标可用于各种应用
该库包含一个示例脚本,演示了如何可视化面部地标
此代码绘制连接每个面部特征点的线条,在原始图像上创建视觉叠加。
来源:examples/find_facial_features_in_picture.py16-24
face_landmarks() 可避免重复的面部检测。来源:face_recognition/api.py154-165 face_recognition/api.py168-200