正确认识和理解 Windows Hello 的人脸验证
正确认识和理解 Windows Hello 的人脸验证
今天 gOxiA 来分享这个话题的起因是因为回到家中按照社区要求需要独自隔离14天,所以也就一直没有刮胡子,今天是最后一天于是一早在微信上发了一条关于 Windows Hello 的信息,说自己即使满脸长胡子也能够被 Windows Hello 识别出来,感觉非常惊喜。也正是因为这条信息,了解到圈里的一些朋友对微软的 Windows Hello 没有正确的理解,一直认为是与市面上其他识别技术一样采集“用户的图像”来进行比对认证,所以 gOxiA 认为非常有必要整理一下 Windows Hello 的知识,让广大用户正确认识 Windows Hello。
本文不会做与其他识别技术的对比和分析,只从 Windows Hello 和 Surface 设备角度来进行介绍。
相信大家有知道 Surface 的都会了解其出彩之一的功能特性就是带有支持 Windows Hello 人脸识别的红外摄像头(近红外传感器),通过 Windows 10 中的 Microsoft人脸身份验证(一种企业级身份验证机制)可以用来进行身份验证和解锁 Windows 设备,而且现在已经支持解锁 Microsoft Passport(在使用微软账号访问相关服务时可通过人脸识别进行登录验证)。
那么在使用 Surface 的近红外成像摄像头(IR Camera)通过 Windows Hello 进行人脸识别登录时是怎样的一种机制或者说过程呢?!其会有普通大众所担心的安全问题吗?因为从开篇曾提到 gOxiA 的一些朋友会认为“这是一种采集更多人脸图片来进行比对的一种功能”,恐会担心隐私问题。那么接下来我们先了解 Windows Hello 的运行方式。
首先,用户需要发起一个脸部识别的注册,如下图在 Windows 设置中找到 账户 设置,里面有个 登录选项,你就能看到 Windows Hello 人脸,它就是人脸识别注册入口。
接下来 Windows Hello 会通过 Surface 的 IR Camera 识别人脸,其算法将检测 IR Camera 中的用户面部,然后找到与眼睛,鼻子,嘴巴等相应的面部界标点(也称为对齐点)。为了确保算法有足够的面孔来做出认证决策,还会识别头部的方向。然后使用地标位置作为锚点,这种算法将从人脸的不同区域获取数千个样本来构建表示,其基本形式的表示即直方图,表示特点点周围的明暗差异。
可以理解,以上过程中通过人脸识别出来的只是一种“代表”,不是存储脸部的图像。通俗理解就是利用算法识别出当前脸部特征用作后续的验证,这一过程是生成自己的一个表示或一组表示的步骤(例如,如果我们有眼镜,则可能需要在不戴眼镜的情况下进行注册),这种表示形式的集合称为我们的注册资料,并存储在本地系统上以备将来比较。
所以呢,进一步的认识是:微软不会且永远不会存储实际的图像来用于对比验证。而且,这些注册数据也不会发送到网站或应用程序进行身份验证。当然,也不用想什么脸部注册漫游了,不要指望换台电脑登录账号就能直接启用脸部识别,需要在当前设备的 Windows 系统上重新注册以生成脸部特征表示。
接下来,当我们要通过 Windows Hello 进行人脸识别登录时,只需要面对 Surface 的 IR Camera,其会将获取的当前面部特征表示与当前设备系统上的已注册用户进行比较,该表示形式必须超过机器学习的阈值,然后算法才能将其接受为正确的匹配项。
前面,我们提过在过程中要生成自己的一个表示或一组表示步骤,其中的"一组"表示步骤会发生在以下几个情形中,此时我们可以通过“提高识别能力”再次进行识别,例如摘掉眼镜做一次识别。
- 偶尔戴某些类型的眼镜
- 面部形状或质地发生了重大变化
- 转移到周围环境光线较近的红外光下(例如:设备在室外阳光下)
转回 Surface 来说说它采用 IR Camera 的好处或优势,可以通过下面几张图来进行了解。
在以弱光为代表的如看电视或做PPT演示文稿情景下,使用普通摄像头和 Surface 近红外摄像头获取到的图像如下,可以看出 IR Camera 不会受到弱光和摄像头彩色成像系统的影响,能够生成清晰的图像。
(普通摄像头获取到的彩色图像) (IR Camera 获取到的红外图像)
下来,再看看如果在窗户或台灯前受到侧面照明时的情景,图像如下,IR Camera 仍能生成清晰完整的图像。
(普通摄像头获取到的彩色图像) (IR Camera 获取到的红外图像)
此外,由于使用了 IR Camera 还可以防止图像欺骗,因为红外采像时物体的波长会有所不同,也就是说你拿一张人像照片在 IR Camera 下是获取不到照片中的人像的,只能生成照片这个物体的外观,而其他材质下也是一样,例如手机的屏幕或者电脑屏幕。如下图所示:
在测量精度方面,微软的 Windows Hello 又是如何做的呢?!它使用了三种主要度量:错误肯定,正确肯定,错误否定。
- 错误肯定:有时也被计算为错误接受率,表示获得对你设备的物理访问权的随机用户被识别为你的可能性。该数字应尽可能的低。基线为小于0.001%或1/100000FAR。
- 正确肯定:即:真实肯定率,表示用户每次位于传感器前面时,将正确匹配其已注册个人资料的可能性。该数字应该尽可能的高。基线为单个注册用户大于95%。
- 错误否定:表示用户与他们的注册个人资料不匹配的可能性。该数字应尽可能的低。基线为单个注册用户不到5%。
考虑到测量误差非常重要,因此微软还通过两种方式对它们进行了分类:偏差误差(系统误差)和随机误差(采样)。
- 偏差误差:由于不使用 代表使用算法的环境和条件的数据,可能会导致偏差错误。此类错误可能是由于不同的环境条件(例如:照明,与传感器的角度,距离等)以及硬件导致的。
- 随机误差:随机错误是由于使用的数据与实际使用该功能的总体多样性不匹配而导致的。(例如:专注于少数没有眼镜,胡须或独特面部特征的脸部。)
通过以上内容的学习和理解,希望有助于大家正确认识 Windows Hello,排除误解。我们要知道 Windows Hello 的人脸识别技术不是靠存储图像来进行比对分析的!!!“Windows Hello 是科学、智能、严谨、合规,具备操守的。-- gOxiA”