你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
人脸检测、特性和输入数据
注意
为了支持我们负责任的 AI 原则,基于资格和使用标准对人脸服务访问进行限制。 人脸服务仅适用于 Microsoft 托管客户和合作伙伴。 使用人脸识别引入表单来申请访问。 有关详细信息,请参阅人脸受限访问页面。
重要
人脸属性是使用统计算法预测的, 不一定准确。 根据特性数据做出决策时请小心。 请避免使用这些属性进行反欺骗。 我们建议改用人脸活体检测。 有关详细信息,请参阅教程:检测人脸活性。
本文解释人脸检测和人脸属性数据的概念。 人脸检测是在图像中定位人脸,并有选择地返回不同类型的人脸相关数据的过程。
可以使用检测 API 来检测图像中的人脸。 若要开始使用 REST API 或客户端 SDK,请遵循人脸服务快速入门。 或有关更深入的指南,请参阅调用检测 API。
人脸矩形
检测到的每个人脸对应于响应中的 faceRectangle 字段。 这是一组像素坐标,用于检测脸部的左边缘、顶部、宽度和高度。 使用这些坐标可以获取人脸的位置及大小。 在 API 响应中,人脸按照从大到小的顺序列出。
使用 Azure AI Vision Studio,快速轻松地试用人脸检测功能。
人脸 ID
人脸 ID 是在图像中检测到的每个人脸的唯一标识符字符串。 Face ID 需要有限访问批准,你可以通过填写受理表单进行申请。 有关详细信息,请参阅人脸 API 受限访问页面。 可以在检测 API 调用中请求人脸 ID。
人脸特征点
人脸特征点是人脸上的一组易于查找的点,例如瞳孔或鼻尖。 默认情况下,有 27 个预定义的特征点。 下图显示了所有 27 个点:
以像素为单位返回的点坐标。
Detection_03 模型目前具有最准确的地标检测能力。 此模型返回的眼睛和瞳孔特征点足够精确,可以对面部进行注视跟踪。
特性
注意
Microsoft 已停用或限制面部识别功能,这些功能可用于尝试推断情感状态和标识属性,如果滥用,可能会使人们遭受刻板印象、歧视或受到不公平的拒绝服务攻击。 已停用的功能包括情感和性别识别。 受限的功能包括年龄、微笑、面部毛发、头发和化妆识别。 如果在某个负责任用例中,使用任何受限功能对你有益,请向 Azure 人脸 API 部门发送电子邮件。 在此处阅读有关此决定的更多信息。
属性是可由检测 API 选择性地检测到的一组特征。 以下属性可以检测到:
Accessories:指示给定的人脸是否有配饰。 此特性会返回可能的配饰,包括头饰、眼镜和口罩,每个配饰的置信度分数介于 0 到 1 之间。
Blur:指示图像中人脸的模糊度。 此属性返回 0 到 1 的值,以及非正式分级:low、medium 或 high。
Exposure:指示图像中人脸的曝光度。 此特性返回 0 到 1 的值,以及非正式的分级:underExposure、goodExposure 或 overExposure。
Glasses:指示给定的人脸是否戴有眼镜。 可能的值为 NoGlasses、ReadingGlasses、Sunglasses 和 Swimming Goggles。
Head pose:指示人脸在 3D 空间中的摆向。 此属性由按右手规则定义的翻滚角、偏航角和俯仰角(以度为单位)描述。 三角度的顺序是翻滚角-偏航角-俯仰角,每个角度的值范围是从 -180 度到 +180 度。 按翻滚角、偏航角、俯仰角的顺序估算面部的三维朝向。 有关角度映射,请参阅以下示意图:
有关如何使用这些值的更多信息,请参阅使用 HeadPose 特性。
Mask:指示人员是否戴着口罩。 此属性会返回可能的口罩类型,以及一个布尔值,用于指示鼻子和嘴巴是否被覆盖。
Noise:指示在人脸图像中检测到的视觉噪点。 此特性返回 0 到 1 的值,以及非正式分级:low、medium 或 high。
Occlusion:指示是否存在遮挡人脸部位的物体。 此特性返回 eyeOccluded、foreheadOccluded 和 mouthOccluded 的布尔值。
QualityForRecognition:指示整体图像质量,用于确定检测中使用的图像是否具有足够高的质量来尝试人脸识别。 非正式评级值为低、中或高。 建议仅将“高”质量图像用于人员登记,“中”或优于其的质量的图像用于识别场景。
注意
每种属性的可用性取决于指定的检测模型。 QualityForRecognition 特性还取决于识别模型,因为它目前仅在结合使用检测模型 detection_01 或 detection_03 和识别模型 recognition_03 或 recognition_04 时可用。
输入要求
使用以下提示来确保输入的图像提供最准确的检测结果:
- 支持的输入图像格式为 JPEG、PNG、GIF(第一帧)和 BMP。
- 图像文件不得大于 6 MB。
- 在不大于 1920 x 1080 像素的图像中,最小可检测人脸大小是 36 x 36 像素。 在大于 1920 x 1080 像素的图像中,最小人脸大小相应更大。 缩小人脸大小可能会导致无法检测到某些人脸,即便它们大于可检测的人脸大小下限。
- 最大可检测人脸大小为 4096 x 4096 像素。
- 大小在 36 x 36 至 4096 x 4096 像素大小范围之外的人脸将不会被检测到。
输入包含方向信息的数据
JPEG 格式的某些输入图像可能包含可交换图像文件格式 (EXIF) 的方向信息元数据。 如果 EXIF 方向可用,则在发送人脸检测之前,图像会自动旋转到正确的方向。 将基于旋转的图像估算检测到的每张人脸的面部矩形、特征点和头部姿势。
若要正确显示人脸矩形和特征点,需要确保图像旋转正确。 默认情况下,大多数图像可视化工具会根据其 EXIF 方向自动旋转图像。 对于其他工具,可能需要使用自己的代码来应用旋转。 下面的示例演示旋转图像(左)和位旋转图像(右)上的面部矩形。
视频输入
若要检测视频源中的人脸,则可通过调整视频摄像头上的某些设置来改进性能:
平滑处理:许多视频摄像头应用平滑处理效果。 在可能的情况下,应将此关闭,因为它会在帧之间产生模糊,降低清晰度。
快门速度:更快的快门速度会减少帧之间的移动量,使每个帧更清晰。 建议将快门速度设置为 1/60 秒或更快。
快门角度:某些摄像头指定快门角度而不是快门速度。 如果可能,应使用较低的快门角度,这样可获得更清晰的视频帧。
注意
摄像头传感器的快门角度较低时,每个帧收到的光线较少,因此图像更暗。 需确定适合使用的级别。
下一步
熟悉人脸检测的概念后,接下来请了解如何编写一个可在给定图像中检测人脸的脚本。