一文读懂三维人脸识别最新技术路径与商用模式。
作者 | 周蕾
AI掘金志按:本文为IEEE Fellow、前美国Fiserv东亚及东南亚总裁王强博士,在CCF-GAIR全球人工智能与机器人峰会中的演讲全文:
大家知道现在iPhone X可以做人脸支付,人脸支付也存在了好多年,表面看起来应用较为成熟,但其实它不断面临的难题和新挑战一直困扰着全球学术和产业界。行业有这么一个现象,每一项新技术的突破,背后也将不断涌现出新的安全破解方法。
其实苹果三维人脸识别的部分专利,是由我的团队所研究。而我今天在这里面将会给大家,分享什么样的三维人脸识别算法,可以在工业界达到顶尖的安全标准,抵御风险,并能高于指纹、声维等生物特征支付的安全性,并具备极高的防抵赖和防破解能力。
从二维到三维,计算机视觉发展之路
我们知道,近些年ResNet和GAN的发展对AI起到了非常大的帮助。现在我们把时间拨回到上个世纪,计算机视觉之父David Marr曾把计算机视觉分为三个阶层。
二维基素图(2-D sketch)
视觉过程的第一个阶段,以人脸图像来看,是图像中强度变化剧烈处的位置及其几何分布和组织结构,人脸中用到的包括斑点、端点、边缘片断、有效线段、线段组、曲线组织、边界等基元,这些称为人脸基素图,都是在检测零交叉的基础上产生。目前人脸识别大都是二维图像,这也是处理第一步进行零交叉检测生产人脸基元。
Marr认为所有图像的变化,都是从视觉和感觉两个方向看待的。人脸一旦有明暗或者有一个完全突变的过程,他认为这就是一个元素。这一阶段的目的在于把原始人脸二维图像中的重要信息更清楚地表示出来。
2.5维要素图
这是视觉过程的第二阶段,拿人脸来说,通过RGB等处理,将线条、点和斑点以不同的方式组织起来而获得2.5维人脸图。以人眼的仿生视觉过程被称为中期视觉。2.5维人脸图是在以观察者为中心的坐标系中,可见表面的法线方向、大致的深度以及它们的不连续轮廓等要素,其中用到的基元包括可见表面上各点的法线方向、和各点离观察者的距离(Deep)、深度上的不连续点、表面法线方向上的不连续点等等。
由于这个阶段中包含了深度的信息,因而比二维人脸图像要多,但还不是真正的三维表示,所以得名2.5维人脸图,大家可能看得比较清楚。你用人眼视角看,不能完全看到整个三维的情况,后面会有遮挡的情况。按Marr的理论,这个阶段是由一系列相对独立的处理模块组成的。
这些处理模块包括:体现、运动、由表面明暗恢复形状、由表面轮廓线恢复形状、由表面纹理恢复形状等。它的作用是揭示一个图像的表面特征。Marr指出,早期任何视觉加工的目标就是要建立一个2.5维的要素图,这是把一个表面解释为一个特定的物体或一组物体之前的最后一步。
基于二到二点五到三维重建的技术的三维模型表征(3-D model representation)
他是以人脸为中心的坐标系中,用含有体积基元(即表示形状所占体积的基元)和面积基元的模块化分层次表象,描述形状和形状的空间组织形式,其表征包括容积、大小、形状及姿态变化后体积基元的变化,包括现在成熟一些的云三维重建技术等,这个领域全球的科学家从1980年耕耘到现在将近有40年。进度一直受限于很多原因:一是传感器和算力,二是摄像机和三维人脸样本库及标注。
早期三维摄像机都非常昂贵,动辄几十万美金,成本一般人确实无法承受,同时获取图像基素符号也受到距离和精度的影响。
在这其中,三维世界里最难处理的问题是姿态的调整,面对物体刚性的变化,三维重建比较容易解决;但面对柔性刚体的对象,比如人脸这类柔性姿态形变的时候,三维技术就很难处理。
三维视觉技术关键之一:三维重建
三维重建分为接触类、非接触类和透视类三大类。
接触式三维重建:包括3D打印、3D扫描、三维机械铸造等;
透视类三维重建主要在医学领域,包括MR和CT等医疗影像领域;
非接触式三维重建包含光学与非光学两类:
非光学三维重建,比较常见为激光雷达和声纳等方式,现在激光雷达的发展非常迅速,但它的最大问题是效率较低;而声纳的优势在于扫描宽度很大,但精度不够。激光雷达和声呐的三维重建更多用于工业场景,对于生活场景和金融场景是做不到的。
光学重建有分为被动光学和主动光学的重建。三维重建里有三类最为重要光学重建技术:主动光学的TOF、结构光和被动光学的双目和夺目立体视觉;结构光有分为编码结构光和散斑结构光。
TOF
双目立体视觉
3D结构光
结构光最常见的应用场景就是iPhoneX的刷脸解锁。其实苹果十年前就在布局结构光技术,其中部分专利来自当时我所负责的团队和一家以色列公司合作研发的。其实苹果的3D结构光技术首先得感谢微软的一代Kinect,它是这一技术大规模应用的集大成者。
目前按照移动设备领域,据报道,TOF领域全球布局的手机巨头只有OPPO一家。应用编码结构光的有小米、VIVO、应用散斑结构光只有苹果一家;双目立体光主要是华为。
而主动光源主要基于RGB 及D(深度信息),研究者从RGB及灰度中提取斑点、端点、边缘片断、有效线段、线段组、曲线组织、边界等纹理变化基素;从D(Deep)提取表面上各点的法线方向、和各点离观察者的距离(Deep)、深度上的不连续点、表面法线方向上的不连续点等曲面特征和纹理特质进行三维点云重建等来打造工业场景。预估苹果也在被动光学里布局双目立体。
无论是TOF、结构光还是双目立体,他们目前在人脸识别领域还面临很多问题。
TOF是不可见的面积光,人脸面积最大也就是500-600平方厘米,TOF的一面光打过来大概会有30多万个有效深度信息点,30万点扫描到人脸时,像素的精度差不多到微米级,1/10毫米的精度。它所获得你的景深、RGB值、灰度值是非常准确的。同时它获得最关键的值是人脸的表面纹理、深度纹理及法线曲度等细粒度特征信息,其结果也非常精确。
结构光目前最多现在有10万个点,iPhone X的散斑结构光方案是3万个结构光点,所有投射过来通过类毛玻璃慢衍射形成的斑点集合,用统计学原理及互相关函数等来模拟三维结构化重建过程。
从光学的角度来说,采集到基素及要素信息之后,如何进行快速计算,然后再用三维场景重建,现在所有的方法都是2维变成2.5维。David Marr提到的方式,也是二维到二点五维到三维。在这个过程中大家用了很多方法包括几何方法、统计学方法及点云等进行三维重建,其实没有太多大的进展。
三维人脸识别五大挑战及解决思路
三维最高端的应用场景就是三维人脸识别,但它面临很多的挑战:
1.姿态的变化
比如苹果人脸解锁,人的双目需要紧盯着它的屏幕,否则就无法解锁;此外,如果人的身体有后仰或者张嘴大笑,也无法解锁,不过如果你经常笑,它可以自动学习进行解锁。
2.离线学习能力
iPhoneX如此大的出货量,仍旧保持超高体验的三维人脸识别率,可见其背后的离线学习能力之强大。像国内业内知名的人脸识别公司,他们的算法纵使厉害,但在如此大规模的实际场景中,它们的三维人脸可以脱离GPU或TPU,实现多大规模的高效离线计算呢?目前他们还没有这么大的用户量去考验。
三维人脸识别最大的障碍是算力不够,我们没有像样的芯片。据相关资料分析,目前能提供这样芯片的大概有5家,国内一家、微软、英特尔、苹果、Mantis Vision,同时这些芯片几乎都是输出RGB和D值,提供基素信息,但是复杂的要素检测、三维重建、标注、识别及姿态矫正、局部到全局的泛化需要具有嵌入各类模型算法的算力芯片。
从数据上看,我们认为目前算力最强的,还是苹果收购的PrimeSense,它可以做离线运算出RGBD值及三维重建模型匹配给苹果A11-A12运算器进行人脸模型计算,将复杂模型计算进行分布式部署,同时三维人脸模型数量远远低于二位人脸模型数量(以商汤240特征点模型为例来比较),降低芯片算力要求。
这里我需要强调一点,并不是所有算法都可以进行离线运算,它后台要有结构化分布式的算法逻辑模型及少量的模型数量才能保证降维情况下离线运算,要样本少、维度低才可以做到。
3.误解率
苹果号称有百万分之一的误解率,国内好几家也达到这个级别。目前没有足够的数据支撑它达到这么高,相关的原理也没有公开过。
4.算力
芯片的能力,具备结构化的分布式算法模型计算能力,要求基素、要素及特征模型分布式协调并行计算能力,既有分布式又有交互计算的运算框架,这个要求很高,对芯片的多框架计算能力设计非常严谨和苛刻。
5.第一次注册效率
第一次的注册用时非常关键,注册时需要很强的少样本带自标注的自学习能力。
来看下我们后面的方案:
原来我在CMU时的前辈团队用三维相机做几何建模,包括立体光几何的建模,这属于被动的建模。
发展到现在,我在美国时团队的第一次在全球开始使用主动光学的建模:散斑结构光的建模方式,当时结构光只有3千多个,现在苹果发展得很快。
三维建模方式另一个主要关键是三维人脸库的问题,现在大容量带标注的三维人脸库非常少,我们团队最近几年尝试使用S+U方法进行三维人脸库重建及图像自标注研究,人脸方面当然这些前提是有获得RGBD等基素,并具备了三维重建模型基础进行的。
S+U是SimGAN S+U模拟融合无监督学习算法,是模拟+非监督学习。
这套算法的实现过程,它做的第一件事,是先解决粗粒度生产图像问题,而且粗粒度图不可出现偏差,那需要对生成图像刚体进行自标注;我们用GAN做对抗学习,但GAN它存在很多问题,一个是局部的对抗损失或者注重的细节没有做到全局。最关键的是怎么做黑盒模拟器,黑盒模拟器集成了GAN加了CNN的算法,我们在里面做了一个10×10的Resnet放在里面。
这个过程中,模拟器的做法是,当你的手机拍到正常脸时,它看到的是真实照片,模拟器帮你模拟出了合成的图像,合成图像是低粒度细节的,并对刚体进行标注例如眼珠。这是第一个关键问题。
第二,为了保证图像更逼真,我们做了细粒度的网络,把合成的图像做细粒化,细粒化过程要求你要了解所有人面部的所有细节特征、曲面、以及所有纹理,这些数据要采集回来,做细粒化,做细粒化之后让真脸图像和细粒化合成脸图像互相对抗,关键是如何保证学习过程不会过拟合,保证有标注参照物,同时使用统计学原理保证标注参照物不会改变情况下,那么大概率其学习不会过拟合或者出现问题,那么万一出问题怎么办?后面我们会有个惩罚方案,是多个惩罚函数模型集合。
其次一个非常重要的东西是辨识器,直到辨识器实在没有办法分清楚细节合成和真图像有什么区别时,这套学习就OK了。
大家都应该知道,iPhone X的人脸用户注册,大概需要5秒时间,其中需要用户左右转脸、点头等动作,注册过程是全息扫描三维图像给你。全息扫描是1秒输出60帧的画面,也就是60张图片,5秒达到了300张。
所以它会对300张图像进行离线学习,对抗演练,用300张采集的图像,生成300张合成图像。然后又生成300张细粒化图像,把原来历史的合成图像扔掉,但是我们需要一个网络进行讲学习历史信息补偿回来,他不是个自编码网络,而是一个全连接网络,保证它万一学习过拟合,用学习的历史来用激励机制补偿它。做完这个学习之后,但发现合成网络在学习过程中一定会有问题,他会遗失掉一些有用的数据,有时会学到一些细节,没有办法泛化整个图像。
这里面三维结构光带来非常关键的问题,把所有立体像素RGBD做解析几何及统计学的融合三维重建。相当于把1毫米的立体点融合成为刚性的三维模型(体积、面积、法线向量、纹理及要素特征)。
这个框架是不会放在现在两个对抗学习里面去,当发现我有一组惩罚函数放在里面,一旦学习出了问题,会惩罚第二个网络,然后让它做纠正或者补充,补充过程中就会把丢失的东西找回来。像自编码网络但不是自编码网络会用简单、低成本找回遗失的数据信息。
下一个问题就是,我们惩罚的方案,最好的方式是能够让它两个在学习过程中,使用更好的学习走样(例如过拟合)的解决方式。预设当我学习了三个内容,辨识器分别不出两张的真假,再来第三张图片,他们三个同时在学,组成三个网络互相可以学、对抗,最后样本会变得越来越大。这里面我们用了全的CNN网络来操作RGBD等基素、要素,特别是全局法线特征向量趋势等特征集,然后来预处理全局,三维视角里面最大的难点是预处理。这是非线性的结构化的算法过程。
接下来,这里面有几个关键的组成,我们会限制它学习的区域,不让它做全脸学习。全脸学习是不可能的,它只会做区域限定,区域限定是根据测试结果来不停调整区域限制。再一个是本地遗失函数,一旦发现学过拟合的时候,我们会把本区域内遗失的数据补偿回来。这里面还有一些历史信息来做补偿,还有一组惩罚函数,全局法线向量趋势泛化模型及惩罚泛化模型,这对算力的要求比较高。通过这些个方式做到对抗学习,学习精度会变得越来越好。
我们进行视觉图灵测试,让人选择它所认为真实和合成的图像,共800张图片,400张真实图片中人认为真实的有356个,400张合成图片中人认为真实的有342个,比例趋近于1:1;我们对400张合成图片进行图灵测试,人认为320个合成图片是真实的图像。从视觉图灵测试的1:1规则变化看,合成图像从图灵测试角度已经通过。
根据目前我们的合成三维图像的表现,在我所知的算法里是最高的,当然还有很多未知算法的表现我是不知道,MPIIGaze测试表现目前比同行平均高出24.9点多。现在平均二维人脸识别的精度是99.5%,大样本下99.8%,MPIIGaze高24.9点多,即可达到99.9%,目前预计可就是百万分之一的误解率。
三维人脸技术的金融应用情况
三维人脸工业领域里,在未来很多领域有非常多的应用,比如身份识别,银行对身份证识别要求非常高,开卡的时候要求人的识别准确率一定是99.9%,支付的时候也必须是99.9%。同时我们所说的潜在的应用场景,会受到硬件限制。
三维重建及人脸在医学领域应用可以用来做医学美容,三维细粒度图像重建与合成,细粒度的特征医学美容会让你的鼻子变得越来越像某个明星,真的好很多。现在三维技术不是特别好的时候肯定会走样。娱乐行业,更厉害美颜需要细节化,当然对防抵赖是没有益处。
人脸技术应用于支付
对AI方面,我们更多的考虑是基于风险的KYC的问题,二是严苛的身份识别,包括人脸的账户开立、支付、反欺诈、反洗钱、支付安全和支付合规,金融在这个领域要求特别多,三维做第一人称、第二人称欺诈的问题一定会放在这儿。
其实金融行业最担心的问题是你用GAN生成人脸去骗过二维人脸支付,二是担心拿照片骗过他,三是害怕模具,尤其是通过3D打印出来的反求模具会骗过人脸,这三个确实会骗到。第四个活体检测,活体检测是最难的问题,你们可能也了解,现在所有的做人脸的厂商做活体检测要录一段视频上去,要和你预存的视频进行做对比,回去看你这个人是不是活的,但时模型很多,很耗GPU,虽然现在又静默活体,GAN依然能生成静默活体视频,去欺骗他。
GAN生成的视频完全可以欺骗过全球最厉害的二位人脸识别系统,这样二维人脸就没有办法用到金融方面强交易安全的场景,特别是开户、支付两个环节。有三维人脸技术之后,15000的特征点,让假冒几乎成为不可能。
我们团队将很快会出来创业。我们可以看到金融最难的问题是获客,大家都谈获客,用智能或者什么手段,其实都没有解决最重要的问题。我这几年一直考虑,怎么甄别你的场景?
其实真正的金融场景就是高频和快捷的支付为入口,那么支付局面大家可知;另外怎么看你客户的旅程,你怎么看金融服务的旅程,怎么让金融服务的旅程和客户的旅程能够绑定在一起,这是很重要的,是做自己所有的行为,但是金融的过程是完全不能Match客户行为里面的内容,这里面有很多的维度它做不到。
这里面我们会提供一个金融大脑平台,这个平台第一关键的是KYC的身份识别(包括我们的二维人脸、三维人脸及交叉验证信息),第二是因为场景方没法将他的数据特别是支付交易数据给金融机构,那我们需要金融大脑嵌入到场景方,让数据不出场景控制,而且能通过深度学习模型获得精准客户,提升场景方转化率,同时金融机构会得到他想要的客户。
原来我在沃森做的一件事是跟AMA做的商业决策搜索,刚刚和向江旭总谈的情况类似,我弄了几十万个报告,用了一个隐马尔可夫模型的算法来看它的词,这个词汇包括刚才沈剑平总也讲了这个问题,你的语料库很重要,语料库是非常庞大的,包括某些著名搜索公司也不会建立庞大的的物料库,因为成本太高,算不过来,3×3次方的物料,九次方的词库。
OCR应用于征信报告
在这里我们会基于金融大脑平台建立自己的Finacial Supermarket,是比较超级的金融平台。这个超级平台第一个问题是先解决线上贷款问题,贷款最关键的是征信报告,我们自己做OCR进行征信报告识别,前段时间我们自己的团队想用一些著名AI公司OCR,但人家觉得我们给钱太少,没有动力搞定,被迫最后我们自己做,现在我们的识别率到99.7,还不错,喂报告有40多份差不多就96%多了,喂到一千多份字段级到99%。我们的算法就是图像检测算法,不是光学,然后进行标注,学习。第二步太模糊的时候,可做些语义分析,最后做HHM切词,做到三点精度就可以提到比较高。
同时里面的表格还是用人脸检测的方法,把单元格全部切片,用FAST视角定位切片出来,像边线不够好的地方我们做了补偿,差不多做了3个多月。
我们的超级平台,里面有几个东西比较有意思,一是金融大脑嵌入场景自学习算法模型,二是基于以OCR征信报告解析为代表的非结构化辅助数据结构化及验证,三是现在大家都做的DMP平台,这个DMP平台是基于金融大脑及类脑计算,当然关键还是数据,强关联数据和行为数据,最关键带场景模拟机及自学习能力;还有就是金融大脑研究,很重要,我们用Lucy的方法做IDDS的东西,我们做四库,知识库、常识库,很多人只想做知识库不做常识库,这是误区,常识库积累非常难,两块互补。然后进行对抗。
我们最近研究对抗比较多,知识和常识的转换,什么时候变成常识,我要搜索外围所有的定理和常理来看你所有的行为,外面有很杂绕的有很多噪声的物料库,这个库是我们在里面扔垃圾或者回收垃圾的库。这里面最关键的是爬虫,你去爬所有的资料,这都会扔到垃圾库里,切掉,互相对抗学,学出来最好的放到常识预备库,然后做规则匹配,让预备库变成正式库,最后面要看知识库的责任了。和我们设计风险模型的方式一样,先有规则,然后才有策略,有了策略才能切分人群,按不同X值和Y进行对照组合学习等。按照人类脑的方法做,有了常识、规则之后才会有知识。
如何实现开放金融平台?
在这个超级金融平台上,我们还会做开放的金融平台,做了一键接入,包括共享SIT、共享开发、共享项目管理,包括身份平台,特别关键的是我们将要共建了一些标准,数据交换的标准,还做了包括系统管理级的东西,还有场景,比较亮点的是场景沙箱,很多银行说要场景获客,其实看了别人的场景觉得到底能不能用,把产品、服务流程等东西扔进去之后,模拟未来给他带来收益,基于风险的收益,权衡收益多少。
重点是,我们做的是一个平台,同时定制化,公共平台包括金融大脑、类脑计算、OCR、Tensor Flow、Hadoop等,还有些定制化,包括场景、开放API、面对不同产品的场景嵌入模型,我们完全用微服务架构。我们这个微服务架构不是大家想的那样,是一个微服务可以实现好几个重要功能,但是从业务逻辑实现,我们没有按照现在流行的方法做,我们的水平达不到流行的方法,我们是按照功能来切分微服务大小。NLP目前使我们团队短板,确实也很难,我们正在积极和一些全球著名团队合作。
最后,我们考虑建立基于数据安全、隐私保护、双向鉴权和共享标准的,数据地图,这个地图大家比较清楚,这些都会在风控模型上用到,这些数据,从风控角度来时第一个是看重征信报告的数据,第二个是通过多方验证的第三方数据,第三个是金融支付(支付模型结构)数据。
大家知道做零售贷款,所有的行为数据都是没有用的,都是无相关数据,最重要的是征信数据。其他数据我们不太看。第二方面,目前风控模型对所有的策略和权重都是半监督学习、我们模式不同,使用深度学习方法,包括统计分析及关联学习等,我们不会Y的值和一群X就粗暴地处理,组合式分出权重,我们更看重最后的表现。
当然这些风险要有足够大的样本,我们大概有15万个客户的样本,额度是在日均25万,其实模型还是较健壮的,现在采纳了40多家银行,我们未来目标希望和大的金融机构进行合作共同建模,用历史数据来优化模型,同时我们开源这些模型和金融大脑平台,真正做到超级开放平台。
重磅预告
全球AI芯片 · 城市智能峰会
10月27日,「全球AI芯片·城市智能峰会」将在深圳大中华喜来登酒店举办。这是继「中国人工智能安防峰会」、「CCF-GAIR视觉智能专场」后,雷锋网 & AI掘金志安防团队全力打造的第三大品牌活动。安博会前一天,我们深圳见。
点击文末阅读原文,即可进入峰会官网。