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