今天的话题讲的是关于人脸在人工智能、互联网时代是怎样在我们的电脑中运作的。
指纹、虹膜、指静脉、巩膜以及视网膜,这几个都是常见的生物识别的方式。这些生物特征有一个共同的性质,那就是它们都有一定的隐私、私密性,也就是说如果不近距离接触或者近距离观察,就没有办法直接获取。但是人脸跟这些传统的生物特征相比,基本没有所谓的隐私性可言。
在人脑当中有一个区域叫做梭状回,现在公认的认为在这个区域里面会对人脸的信息做一些处理,但是医学有很多不同的假说,有说里面的某些区域,或者里面某一个神经来做这个处理。为什么认定说这个区域对人脸做识别?因为如果这个区域受到损伤,就会得一种叫做面孔失认证,也就是我们常说的脸盲,就是看这个人,但我不记得这个人是谁了,那么这个区域来专门处理人脸,也就是说其实人脸是人脑中,特别重要的一个要被处理的信息对象。
推论即:在缺乏隐私性这一环节上,我们人脸如果需要被更多的在机器学习、在商业上被使用的话,它一定要解决的问题,叫做有更强的鉴伪能力。
在实时获取到的一个视频流后,首先需要找到视频帧当中的人脸具体在什么位置,然后这个过程,对人脑来讲很简单,好像人就在那个位置。但对计算机而言,它需要有一个计算的过程,这个过程叫做 Face Detection,也是人脸检测的过程。
这边是用一个比较传统的方式叫做 Sliding Window(窗口扫描法)来做人脸的查找。这个是通过基于统计基因学习方法训练出来的:我得到一张图像,我的分类就可以告诉你,我觉得这个是人脸,或者我觉得这个不是人脸。那么于是在机器分类之后,我们发现刚才切出来很多小的图像,输入给机器,最终机器把其中一部分归结为人脸的部分就全部挑选出来了。
我们会做一些对这个人脸的一些属性进行分析,通过找到人脸的关键点,包括眼睛、嘴巴、鼻子的位置,来判断这个人脸目前的状态,比如通过眼睛的睁、闭状态来确认你是否在一个主动希望开启手机解锁这么一个状态。
完成这些分析之后,就要做下一步更重要的工作,叫做「真假人脸的判断」,也就是我们所谓的活体检测。
机器识别人脸,首先第一步先去找一个拿来容易比较的人脸,这个人脸的 Pitch 的角度是-15 度,那么基于这个-15 度先去找一个底库当中,比较容易拿来做比较的人脸。接下来它把这个人脸提取特征,所谓的特征其实是一个在高维空间中的一个向量,然后将两边都分别提取好的特征进行比较,那么高维空间中的向量,比较他们的相似性,其实有很多方法,这边只是挑了一个比较简单的方法,就是算两个向量的距离,也就是算两个高维空间中,向量的 Feature&a—Feature&b 的距离,如果两个距离靠的越近,那我认为他就是同一个人,或者至少是一个相似的人。
下面的 LSW 表格,也就是一个公开的人脸测试数据集上面的一个大家提交的识别结果报告,这个报告当中显示,在 2009 年的时候,学术界做的算法,普遍识别的准确率在 84.7%,但是随着时间的往后推移,其实一方面是计算能力的提升,另外一方面是算法能力的提升,还有数据积累的提升,这个能力会越来越强,到 2014 年的时候,我们发现,准确度已经达到 99.5%,这个已经没有太高去做提升的水平了。
场景中比较常见的就是客流统计,然后是在安防场景下的一些嫌疑犯的追踪,今年一个涉赌的通缉犯被我们对接过的一家医院的安防系统识别出来,并自动发出了报警,对比分数大概在 87 分,随后民警出警确认并抓捕归案。据悉今年一年已经快百起此类被算法识别出来的实例。除此之外还有智能访客系统、门禁系统、活动签到、智能楼宇、闸机关口等。
另外还有一些大家都能接触的场景如远程身份验证。首先,验证身份其实在中国很容易,每个人都有一个唯一的 ID,叫做身份证号,同时公安部还有非常完善的人脸系统以供识别。然后进行一个活体检测就可以确认身份。
对于活体检测的定义叫做:对传感器感受到的「真人」与「攻击」的不同做出辨识。
判断对象是不是一个活人其实并没有统一的方法。我们的算法研究员做了个示意图(如下),我们来判断这个人是真死还是假活,其实只是管中窥豹。这个斑点就是说,我的摄像头,成像域下的这么一个空间状态,在这个空间状态当中,活人(真人)在镜头中,只占很少的一部分,就是中间蓝色的 S 形状,我们把它想象成一个高维空间当中的某一族的特征的分布,这些都是活人。
那么所谓的攻击又是什么呢?就是说,通过不同的攻击手段,比如说翻拍屏幕、翻拍照片、翻拍蜡像,会有不同的介质,然后这些介质和这些真人都很像,正好就分布在这些真实数据的判断,就像在图像当中的红色介质显示的部分,我们可以把它想象成在一个高维空间当中,蓝色的是我们活人的所有的这一族全部都在这里,然后所有翻拍的介质都试图去模仿这个活人,但都只是模仿了其中的一部分。
机器通过我们自己研制的一套深度学习算法的循环来进行训练,简单说就是通过大数据收集—训练—产出算法—变成产品—再收集更多的数据,完成这样一个闭环。
为什么我说安全率一个不合理的一种提问的方式呢?因为安全的标准从来就不是一个百分点的数字,它就不是率,成本才是安全唯一衡量的指标。
衡量活体检测安全标准是用时间成本来衡量的,攻破这个活体,要投入多少的成本在里面,这个攻击方法也分成技术性攻击和非技术性攻击。举例一个技术性攻击:比如有些摄像头成像的时候,会被相机的三色给吃掉,那么去调外部图像颜色的时候,让图像变成和你实际成像是一样的,如果可以完全做到一模一样的,那么算法就完全区分不出来。所以这其实是一个不合理的提问的方式。
为什么大家觉得说,红外好像更安全,其实这个道理很简单,那是因为你的视觉的色彩系统不是红外的,你会觉得,这是你的视觉色彩系统不能理解的一个东西,所以你会觉得它难。
实际上对于计算机来讲,不管是红外的,还是普遍的彩色成像,对它来讲,难度都是一致的,举个例子,就是说,我们现在拍照拍到的人脸都是我们自己视觉彩色系统当中成像的方式,如果我们拍照全部都是红外的成像,那红外的攻击就会变的容易多得多。
如果想要纯 3D 的人脸识别能够达到或者超过 2D 的人脸识别精度的线mm 这个点,是必须要突破的,也就是说,深度的精度必须要超过(或者达到)1mm 才可以有讨论的余地,目前来讲,3D 商用产品精度大概都在 2-3mm 左右。所以目前 3D 只是 2D 的一种辅助,它还没有很好的方法完全独立来承担人脸识别的功能。
人脸关键点,其实是一个非常物理的模式,就是找到人脸上面的一些小点或者轮廓点,这些点我们把它定义为关键点。所谓的人脸的特征,其实只是在高维空间上的一个向量。所以说,人脸的关键点和人脸的特征其实不等价。
公司地址:北京市朝阳区酒仙桥路4号751 D·Park正东集团院内 C8座105室 极客公园