你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

人脸检测、特性和输入数据

注意

为了支持我们的负责任 AI 原则,会根据资格和使用标准限制对人脸服务的访问。 人脸服务仅适用于 Microsoft 托管客户和合作伙伴。 使用人脸识别引入表单来申请访问。 有关详细信息,请参阅人脸受限访问页面。

重要

人脸属性由统计算法预测。 不一定准确。 根据特性数据做出决策时请小心。 避免将这些属性用于反欺诈。 我们建议改用人脸活体检测。 有关详细信息,请参阅 教程:检测人脸活体

本文解释人脸检测和人脸属性数据的概念。 人脸检测是在图像中定位人脸,并有选择地返回不同类型的人脸相关数据的过程。

可以使用检测 API 来检测图像中的人脸。 要开始使用 REST API 或客户端 SDK,请遵循人脸服务快速入门。 要查看更深入的指南,请参阅 调用检测 API

人脸矩形

每个检测到的人脸对应响应中的一个 faceRectangle 字段。 这是一组像素坐标,用于检测人脸的左边缘、顶部、宽度和高度。 使用这些坐标可以获取人脸的位置及大小。 在 API 响应中,人脸按照从大到小的顺序列出。

使用 Azure Vision Studio 快速轻松地试用人脸检测功能。

人脸 ID

人脸 ID 是在图像中检测到的每个人脸的唯一标识符字符串。 Face ID 需要有限访问批准,你可以通过填写受理表单进行申请。 有关更多信息,请参阅人脸 API 受限访问页面。 可以在检测 API 调用中请求人脸 ID。

人脸特征点

人脸特征点是人脸上的一组易于查找的点,例如瞳孔或鼻尖。 默认情况下,有 27 个预定义的特征点。 下图显示了所有 27 个点:

标记了所有 27 个特征点的人脸示意图。

以像素为单位返回的点坐标。

Detection_03 模型目前具有最准确的地标检测能力。 它返回的眼睛和瞳孔特征点足够精确,可实现人脸的视线跟踪。

属性

注意

Microsoft 已停用或限制了部分人脸识别功能,这些功能可能被用于推断情绪状态和身份属性,若使用不当,可能导致人们遭受刻板印象、歧视或不公平的服务拒绝。 已停用的功能包括情绪和性别。 受限制的功能包括年龄、微笑、面部毛发、头发和妆容。 如果你的合理使用场景可从任何受限制功能的使用中受益,请通过电子邮件联系 Azure 人脸团队。 在此处阅读有关此决定的详细信息。

属性是可由检测 API 选择性地检测到的一组特征。 以下属性可以检测到:

  • 配饰:指示给定人脸是否佩戴配饰。 此属性返回可能的配饰(包括头饰、眼镜和口罩),每种配饰的置信度分数在 0 到 1 之间。

  • 模糊度:指示图像中人脸的模糊程度。 此属性返回 0 到 1 之间的值,以及非正式分级:低、中或高。

  • 曝光度:指示图像中人脸的曝光程度。 此属性返回 0 到 1 之间的值,以及非正式分级:underExposuregoodExposureoverExposure

  • 眼镜:指示给定人脸是否佩戴眼镜。 可能的值为 NoGlassesReadingGlassesSunglassesSwimming Goggles

  • 头部姿态:指示人脸在 3D 空间中的朝向。 此属性由按右手规则定义的翻滚角、偏航角和俯仰角(以度为单位)描述。 三个角度的顺序为 roll-yaw-pitch,每个角度的取值范围为 -180 度到 +180 度。 按翻滚角、偏航角、俯仰角的顺序估算面部的三维朝向。 有关角度映射,请参阅以下示意图:

    标注了俯仰角、横滚角和偏航角轴的头部示意图。

    有关如何使用这些值的更多信息,请参阅使用 HeadPose 属性

  • 口罩:指示人脸是否佩戴口罩。 此属性会返回可能的口罩类型,以及一个布尔值,用于指示鼻子和嘴巴是否被覆盖。

  • 噪点:指示人脸图像中检测到的视觉噪点。 此属性返回 0 到 1 之间的值,以及非正式分级:低、中或高。

  • 遮挡:指示是否有物体遮挡人脸的部分区域。 此属性针对 eyeOccludedforeheadOccludedmouthOccluded 返回布尔值。

  • 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 秒或更快。

  • 快门角度:部分相机指定快门角度而非快门速度。 如果可能,应使用较小的快门角度,这样能获得更清晰的视频帧。

    注意

    快门角度较小的相机传感器在每一帧中接收的光线更少,因此图像会更暗。 你需要确定合适的使用级别。

后续步骤

熟悉人脸检测的概念后,接下来请了解如何编写一个可在给定图像中检测人脸的脚本。