深入解析人脸解锁的前世今生

  人工智能分为两个阶段,首先是感知阶段,然后是认知阶段。目前整个人工智能还在比较初级的感知阶段,而最主要的两种感知途径就是视觉和听觉,目前我们主要做的是视觉方向。我们公司成立于 2012 年,在视觉方向研究了很多年,一直专注以人脸为核心的方向,那么为什么我们会做人脸呢?在我们看来,人脸是信息量最大、商业价值最高的图像数据,我们可以通过一张图像知道一个人的年龄、性别、颜值、以及该人是否为他本人等等很多信息。

  手机解锁在今年终于爆发了,它其实是人脸识别多年经验积累的最终一个落地结果。我们先看一下手机安全的发展过程。

  从 2008 年第一台苹果手机的发布到现在已有将近 10 年的时间。在 2009 年时候出现了密码解锁;在 2010 年的时候了出现图形锁之后出现了很多生物识别技术(见图中蓝色字体)。生物识别的出现,最主要目的是为了解决用户体验,因为时常需要输入密码很麻烦,画一个图形解锁也很麻烦,在 2013 年有了指纹解锁之后,大家手指一按马上就可以解锁了。指纹、人脸识别、虹膜都是为了解决体验性问题。

  今年有两款代表性的手机发布,让人脸这种生物识别技术站到了台前。第一个是上半年发布的三星 S8,三星 S8 是前置单摄的解锁方案,也就是今年最普及的人脸解锁方案;第二个是 iPhone 10。iPhone 10 是前置结构光双摄的解锁方案,这个代表着人脸解锁的未来趋势。

  那么是什么因素推动了今年的人脸解锁成为手机解锁的主流呢?

  我觉得最主要的因素是工业设计和制造工艺的提升。今年的全面屏成为工业设计上的主流趋势,大指纹设计挪到了手机背面,指纹的用户体验优势降低了。人脸不仅弥补了体验上的不足,更重要的是,人脸只需要摄像头就可以完成,不需要像指纹一样占用更多屏幕面积,所以能够大大提高屏占比。

  第二个原因是成本和收益问题,如果厂商想要在手机那么小的空间内装一个指纹模组、虹膜模组,所要牺牲的手机内部空间占用,换句话说所需要的成本是巨大的。而人脸识别不会占用除摄像头模组外更多的内部空间。

  第三个是芯片处理能力的提升与人脸识别算法的成熟。一些硬件层的加速方案可以让人脸识别的算法能在手机上跑得更快,新的活体技术可以让刷脸变得更安全。这在后面会具体来讲。

  第五个原因是摄像头模组制造工艺的突破。其实结构光在几年前就有了,但是并没有小型化到手机这么小的体积内,iPhone 是第一家推出这样设备的厂商。除了结构光之外,还包括普通的红外 IO 摄像头、TOF 摄像头、摄像头模组的小型化。

  最后一个原因是用户体验,大家在刷脸解锁的过程中不需要做任何的配合式操作,可以拿起手机直接解锁。而刷脸还可以抵抗一些常见的干扰,例如暗光、侧脸、小范围遮挡等。这让刷脸成为一种体验更优的生物识别方案。

  说到用户体验问题,我们来对比一下现在最常见的手机解锁方案的体验。

  首先在底库采集方面,人脸解锁只需要采集一张照片就可以了,但指纹需要采集多张。虹膜相对比较快,但虹膜需要把手机举到面前然后等几秒钟。从解锁速度来看,人脸解锁速度是最快的,拿起手机直接解锁,而指纹需要按到感应器,虹膜也需要对齐眼部。指纹解锁存在一些常见的干扰,比如指纹在手湿的时候完全不能解锁,戴手套也不能解锁。虹膜解锁的时候,戴隐形眼镜或者对着阳光直射也会受到干扰。人脸识别也存在干扰场景,比如说晚上家里灯全关了,或者戴墨经、双胞胎等等都会干扰,而我们现在解锁已经做到通过点亮屏幕的亮度就可以进行解锁。因此人脸在整个体验上比较具有优势。

  说完用户体验,我们来说一下解刷脸这件事到底安不安全。

  常见的生物识别,除了指纹、虹膜还包括指静脉、巩膜、视网膜等一些生物识别特征。传统生物识别所采集到的都是隐私的特征,所以人脸是个比较另类的生物识别方式,它采集到的是一个没有那么隐私的数据,因为在我们日常生活中,你很容易暴露自己的照片。

  如上图所示,从另一个角度来讲,我们人眼很难辨别这些指纹图像是不是一个人,但我们能够很轻松地知道右边这些图是否属于同一个人。在我们人脑中有个区域叫梭状回,这个区域就是用来做人脸识别的。梭状回出了问题,就是俗称的脸盲症,得了这个病的人就没法做人脸识别。以上观点是想说明人脸相比其它生物识别是缺少私密性的,而且人脸更适合由人脑来做识别。所以将人脸识别放到解锁上来做,需要更强的鉴别真伪的手段。

  那么人脸识别背后到底用了哪些技术?我们看一下手机解锁的流程。

  第一步,我们拿起手机,采集视频序列帧,这时候需要检测这些帧有没有人脸,需要找到人脸。

  第二步,分析人脸上的一些属性,包括人脸眼睛的睁闭状态,头的角度等情况,根据这个去判断其到底适不适合解锁。比如眼睛闭着的时候就不适合解锁,因为这说明是别人在拿着我的手机对着我拍。第三个技术是活体检测,我们需要通过画面进行判断你到底是本人在用手机,还是别人在拿着你的翻拍照片进行解锁。第四项技术是人脸识别,我们通过把底库的照片和这一帧所提取出来的人脸特征进行比对,判断到底是不是属于同一个人。

  人脸识别大家应该很早之前就听说过,但是实际上这技术的历史并不是特别长。2001 年人脸的检测刚刚做到可以在 PC 上实时运行,但没有用到深度学习。2005 年的时候,欧姆龙第一次把人脸检测做到了一台相机里面,这样相机在拍照的时候就可以对人脸进行对焦。2012 年的时候,清华有三个同学,大家一起做了一款游戏 APP,这个游戏会根据你的头上下摇动来控制游戏里的主角,这是第一款基于人脸进行控制的游戏。这三个同学就是我们的三位创始人。在手机上能运算人脸识别算法,这对于之前又是一个很大的提升。2015 年的时候,马云在汉诺威展上展示了支付宝刷脸支付的方案。大家都知道,支付对于安全有很高的要求,在这个方案里用到了各项人脸技术,包括人脸检测、人脸识别和各项活体检测。但这个方案一直到今年才开始商用,在这几年间刷脸支付得到了突飞猛进的发展。我们去年推出了一个产品,叫做 FaceID。大家在使用支付宝或者一些金融产品时,有时候手机会要求你做一些配合式动作,比如眨眼、摇头,这就是 Face ID 做的事情。眨眼、摇头不是用来做人脸识别的,是用来做活体检测,判断人是不是活人。

  那什么是活体检测?活体检测背后用到了哪些技术?

  如果一个人有指纹、有虹膜,他是活体吗?他不是活体,因为光有指纹和虹膜还不够,你还需要辨别这个人是否还“活着”。比如,他的手指是热的吗?手指下的毛细血管里有血液在流动吗?这就是活体要解决的问题。所以可以看到,其实任何一种生物识别方式,对活体的判别是基于人的一些先验知识。不管是人脸,指纹还是虹膜,其实现在只能从这些先验知识入手进行判断,如同管中窥豹,都存在很大的局限性。

  如上图所示。大家觉得比较安全的指纹和虹膜,其实也可以被攻破。关于指纹***,网上可以买到几十元的硅胶模,只要有机会取到机主的指纹图像,翻印成硅胶模就可以解锁通过了,因此现在指纹模组也做了活体的优化,比如判断当前手指的血液流速,从而证明你是活人。而关于虹膜,如果打印高清照片再配合一副隐形眼镜,也能进行***。

  在刷脸的活体技术上,去年我们做过的线上金融场景,遇到过这几类活体***。第一类是换脸***,比如说这个人脸上贴成另一个人的脸。第二个是屏幕翻拍***,类似于今年手机解锁***。第三个是通过计算生成一张 3D 假脸进行***。因为金融场景的特殊性,***手段层出不穷。我们也分别做出了不同类型的活体算法,来防御这些***。例如我们会要求用户摇摇头、眨眨眼,来判断当前进行操作的对象是不是一个“活人”。

  手机解锁对活体提出了更高要求。因为解锁需要拿起手机就完成检验,用户不会愿意为了解个锁还要摇摇头、眨眨眼。怎么让手机在那么短的时间内、没有任何配合动作的条件下,也能分辨出你的真伪呢?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章