迷恋好莱坞科幻大片的你,一定也被这些惟妙惟肖的虚拟人物吸引过。



在大猩猩金刚身上,既具备怪兽的勇猛与体形,又结合了人的表情与性格,这使得形象更加丰满,给观众留下深刻印象。


那么问题来了,电影制片方是如何把人类特有的嬉笑怒骂等复杂表情,照搬到动画角色身上呢?


这背后,需要一种神秘的“变脸”技术,同步参考人脸细微表情和动作,将没有台词的动物身上植入细致入微的表情和动作描绘,以达到栩栩如生的拟人效果。


(动画人物的表情,取自左上方的真实人脸)


为了让虚拟人物阿凡达有真人一样的表情,制片方需要事先描点采集真人表情动作,以迁移到阿凡达脸上。



这种变脸技术被称为“人脸配准跟踪技术”。


简单来说,一种将“人脸五官关键点自动定位”的人脸识别技术。


时至今日,人脸配准跟踪技术再不是只限于拟人化表情配准制作,它与日常生活息息相关。


上班时的门禁和打卡:




互联网银行上的远程开户:




休闲时刻,手机QQ视频中萌哒哒人脸挂件:



人脸配准跟踪是如何实现的?为何总能在人群中精准定位?我们有请腾讯优图实验室来撬动这扇神秘大门,揭开背后的秘密。


(优图实验室是腾讯旗下专注机器学习的一个小组,自2013年至今,在人脸AR上取得很大的突破,国际上也多次斩获佳绩。)


据优图实验室介绍,人脸配准跟踪技术背后有两大关键因素。


找准五官





在好莱坞科幻大片制作中,很多人物特效都需要用到增强现实技术,为了做到精准匹配,需要在演员脸上打点。




通过打点,机器可以精准识别演员面部特征:如眼睛长度、眉毛嘴巴弯曲幅度等,以便后续将特效附加在演员五官上,达到栩栩如生的效果。


腾讯优图的人脸配准跟踪技术也需要在人脸上打点,但与好莱坞惯用的“先在人脸上打上颜色,拍完后再做后期处理以达到稳定跟踪”的技术不同,优图的人脸跟踪,不需要打上颜色,就可以做到稳定跟踪。


这其中,打点可是一门技术活。


点少了,人脸各个器官轮廓定位不容易描述精准。


点太多,又会增加标注成本;此外点越多计算模型越大,计算速度就越慢,容易导致画面卡顿。实操中,往往会尽量采取相对少的点数。




在这条点数、精准度、计算速度的三维坐标轴上,优图实验室不断打磨测试,一步步缩小测试范围,最终找到了最优的90点标注方法。


这种标注方法,既可以将人脸五官特征完整地勾勒出来,又保证了人力成本和计算速度相对可控。




静态到动态的升级


2D静态图片人脸配准跟踪是相对简单的,在各行各业也有了广泛应用。然鹅,从2D静态图片升级到3D动态视频的道路上,却布满了坎坷。


以年初以来火爆海内外P图界的动态挂件为例,就经常出现“不堪入目”的BUG:


比如不听话的发卡~




还有突然出现的“鬼”脸,



(妈妈我再也不敢一个人视频了!呜~~~)


而运用到多人挂件场景中,问题就更严重了,挂件一会出现一会消失,无法精准匹配到每个人脸上。



(泥煤,是不是看不起英俊的我!)


这背后,人脸配准跟踪从静态转变到动态识别主要有两大难题:第一,算法速度必须快;第二稳定性要高。



算法提速有秘诀


识别静态图片场景的时候,用户对于机器计算时间的容忍度比较高,等待一两秒钟并不是个事儿。


然而,动态视频却对机器的算法速度非常敏感。一旦计算速度高于30毫秒,画面就会出现卡顿。特别在一些型号老旧的安卓手机上,速度差异性会更加明显。




此外,一些动态视频的多人识别场景则对算法速度提出了更高的要求。以QQ双人视频挂件技术为例,人脸跟踪配比的对象从1人扩增到了多人,所以算法速度必须要快。


综上,算法提速是人脸跟踪配准技术应用上必须解决的难题。算法越快,画面反映的精准度越高,机器识别的越稳定。


对此,优图实验室先搭建了一个深度学习的框架,然后设计了一个又瘦又窄的网络,将模型层数加深,同时采用了一些压缩加速的方法,提升了计算速度


举个例子,如果把深度网络比作军队,一个神经元是一个士兵,一般用的是比较宽的阵形,往前推进。而优图实验室则另辟蹊径,使用了瘦窄型的阵形,相比宽阵形,可以用更少的士兵,完成相同的战斗任务,从而达到精简队伍的目的。


回到算法上来。阵形的纵深,相当于网络模型的深度。阵形越瘦长,网络模型越深,精度越高。


军队的人数则相当于算法的计算量,人数越多,计算量越大,速度越慢;反之军队人数少,计算量越小,速度越快。


除此之外,优图实验室还在工程化方面进行了不少优化,这相当于制造汽车的过程中,对汽车发动机不断进行优化,在马力上不断提升,最终出厂的汽车就会较同行跑得比较快。


通过算法的提速和优化,目前优图实验室可以实现每一帧速度快达3毫秒到4毫秒,快于基准线30毫秒近10倍。高速算法的保证下,优图实验室顺利攻克了动态多人挂件配准跟踪等复杂场景的应用难题。



稳定性是如何实现的?



































动态视频比静态视频对稳定性要求更高。在静态图片中,若定位一个眼角点,只要在其眼角周边定位即可。即使有误差,人眼识别出来的都是自然的。


但这种误差在动态视频上却不能容忍,必须每一帧定位精准,否则就会因为画面定位不一致而出现跳动。因此,前后帧相接必须是稳定的。



简单来说,若想在动态的人脸上添加一串胡子,如果定位的上下帧连接稳定,精准度和稳定性就会高,则胡子就会随着人脸的不停摆动而紧贴面部,好像真的一样。


如果上下帧没有连接好,中间差异比较大,则胡子就会出现错位,一眼被识别出BUG。


对此,优图实验室通过后处理的稳定算法,将每一帧之间的定位计算的相对接近,前前后后地不断修正误差。通过逐步减少误差,而将误差率保持在较低水平。这样不论是贴胡子还是涂口红,每一帧间的误差小了,画面也就精准稳定了。


在征服了静态图片迈向动态视频的识别难题后,下一步优图实验室开始向3D人脸建模领域进军。


未来,只需手机对着人脸扫一扫,独一无二的个性化3D人脸就会脱颖而出。(双胞胎们请走开~~)


用户获取自己的3D人脸后,不仅可以做自定义3D表情,还是游戏内角色,都可以诠释出一个新的“人脸”身份世界。