你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍人脸活体检测的概念、输入输出架构及相关概念。
介绍
人脸活体检测可用于确定输入视频流中的人脸是真实的(活的)还是虚假的(仿冒的)。 这是生物识别身份验证系统中的重要组成部分,可以防止冒名顶替者使用照片、视频、面具或其他方式冒充他人进入系统。
活体检测的目标是确保系统在身份验证时与实际存在的活人进行交互。 随着数字金融、远程访问控制和在线身份验证流程的兴起,这些系统正变得越来越重要。
Azure AI 人脸活体检测解决方案可以成功防御各种欺骗类型,包括纸质打印输出、2D/3D 面具以及手机和笔记本电脑上的欺骗演示。 活体检测是一个活跃的研究领域,人们不断对其进行改进以应对日益复杂的欺骗攻击。 随着整体解决方案对新型攻击的防御变得越来越强大,我们也会不断向客户端和服务组件推出持续改进。
Azure AI 人脸实时检测 API 在 iBeta 级别 1 和级别 2 演示攻击检测(PAD)测试中实现了 0% 渗透率,由 NIST/NVLAP 认可的实验室进行,并符合 ISO/IEC 30107-3 PAD 国际标准。
工作原理
活体检测解决方案集成涉及两个不同的组件:前端移动/Web 应用程序和应用服务器/协调器。
- 在应用服务器中协调 Azure AI 服务:应用服务器充当后端服务器,用于创建实时检测会话,并从人脸服务获取特定会话的短期授权令牌。 此令牌将授权前端应用程序执行活体检测。 应用服务器的目标是管理会话、授予前端应用程序的授权,以及查看实时情况检测过程的结果。
- 将 Azure AI 视觉 SDK 集成到前端应用程序中:前端应用程序应嵌入 Azure AI 视觉人脸 SDK(iOS、Android 或 JavaScript)。 SDK 打开相机,引导用户完成被动模式或被动-主动模式,加密视频帧,并将视频帧及从服务器接收的短期活体会话令牌一起流式传输到 Azure AI 人脸终结点。
-
可选快速链接路径:可以避免嵌入客户端 SDK。 后端服务可以将同一会话令牌交换为一次性活体快速链接 (
https://liveness.face.azure.com/?s=…)。 将用户重定向到该 URL,Azure 在浏览器中托管整个捕获体验,然后通过可选的回调函数通知完成。 此选项可降低集成成本,并自动为你提供 Azure 始终最新的体验。
活体检测模式
Azure 人脸活体检测 API 提供被动和 Passive-Active 检测模式的选项。
被动模式使用被动实时技术,无需用户进行额外操作。 它需要非明亮的照明环境才能成功,在明亮的照明环境中可能会失败,并出现“环境不受支持”错误。 它还需要高屏幕亮度以获得在移动(iOS 和 Android)解决方案中自动配置的最佳性能。 如果你更喜欢最少的最终用户交互,并且希望最终用户主要位于非明亮环境中,则可以选择此模式。 被动模式检查平均需要大约 12 秒才能完成。
Passive-Active 模式的行为与非亮照明环境中的被动模式相同,并且仅在明亮的照明环境中触发主动模式。 由于浏览器上没有自动屏幕亮度控制,限制了被动模式的运行范围,因此在 Web 浏览器解决方案上此模式是更优的选择。 如果希望活体检测在任何照明环境中都能工作,则可以选择此模式。 如果由于明亮的照明环境而触发活动检查,则总完成时间平均可能需要长达 20 秒。
可以在会话创建步骤期间设置检测模式(请参阅 执行实时性检测)。
可选人脸验证
可以将人脸验证与实时检测相结合,以验证问题的人脸是否属于指定的特定人员。 下表详细说明了活体检测功能:
| 功能 / 特点 | DESCRIPTION |
|---|---|
| 活体检测 | 确定输入是真是假,只有应用服务器有权启动活体检查并查询结果。 |
| 附带人脸验证的活体检测 | 确定输入是真是假,并根据你提供的参考图像验证人员的身份。 应用服务器或前端应用程序都可以提供参考图像。 只有应用服务器有权启动活体检查并查询结果。 |
输出格式
实时情况检测 API 返回包含以下信息的 JSON 对象:
- 一个真实的或虚假的人脸活体判定。 我们处理基础准确性和阈值,因此无需担心解释“置信度分数”或自行进行推理。 这使得开发人员的集成更加轻松无缝。
- 如果使用验证执行活体检测(请参阅 使用人脸验证执行活体检测),则可以可选地获取人脸验证结果。
- 经过质量筛选的“会话图像”可用于存储以便审核、人工评审,或使用人脸服务 API 进行进一步分析。
数据隐私
我们不会存储人脸实时检查中的任何图像或视频。 在结束实时性会话后,不会在实时服务中存储图像/视频数据。 此外,在活体检查期间上传的图像/视频仅用于执行活体检测,以确定用户是真实的还是冒名顶替的(还可以选择在活体检测-验证场景中与参考图像进行匹配),这些图像/视频不能被任何人查看,也不会用于任何人工智能模型的改进。
安全性
重要
在选择正确的解决方案(Web 或移动)时,开发人员必须了解安全隐患。 虽然 Web 和移动解决方案都符合 iBeta 级别 1 和级别 2 ISO/IEC 30107-3 PAD 标准,但移动解决方案包含由 GuardSquare 提供的额外运行时应用程序自我保护(RASP),而这些功能在 Web 解决方案中不可用。
值得注意的是,Web 解决方案在浏览器环境中运行的固有限制,并且可能更容易受到某些类型的攻击。 因此,我们建议尽可能使用移动解决方案。
如果选择 Web 解决方案,请务必密切遵循 共同责任的最佳做法,确保正在使用的相机是受信任的物理设备,并考虑实施额外的安全措施和监视来缓解潜在的运行时攻击。
滥用检测
我们包括内置的滥用检测功能,旨在帮助开发人员识别可能存在欺诈或恶意活动的高风险的实时会话。 滥用检测功能会执行多项检查,包括基于 IP 的风险评估,以提供可在你自己的应用逻辑或审核流程中使用的可操作信号。
此功能在高安全环境或高欺诈风险的场景中(如帐户注册、身份验证或远程认证)尤其有用。 你可借此在完成验证步骤之前主动检测可疑的活动模式。
有关如何解释和处理滥用检测结果的详细指导,请参阅:实时性滥用监视
网络隔离
此外,我们还提供可选的网络隔离功能,使开发人员能够更好地控制前端客户端发起活体检测调用的方式。 使用此选项,可以完全禁用对活体检测 API 调用的公共网络访问,确保这些调用仅能在你定义的专用网络边界内进行访问。
此功能在受监管或企业环境中特别实用,在这些环境中,合规性策略要求所有服务调用都保留在受控网络外围内。 它还有助于通过防止来自不受信任的或未知网络的直接调用来缩小攻击面。 了解详细信息
支持选项
除了使用主要的 Azure AI 服务支持选项之外,还可以在 SDK 存储库的问题部分发布问题。
后续步骤
既然您已熟悉活体检测概念,请在您的应用中实现活体检测。