为了让网速慢的用户用上高清通话,英伟达可谓绞尽脑汁。他们开发的新AI算法,可以将视频通话的流量最高压缩90%以上。
和其他视频相比,通话的场景比较单一,基本上只有人的头部在运动。因此只要能把头像数据大规模压缩,就能大大节约流量。
英伟达的新算法face vid2vid正是从这一点出发。只要一张图片,就能实现重建各种头部姿势图片。
H.264视频所需的带宽是这种新算法的2~12倍,从前面的演示也能看出,如果让二者使用相同比特率,那么H.264视频几乎不可用。
转动面部不扭曲
英伟达提供了一个试用Demo,可以在Pitch(俯仰角)、Yaw(偏航角)、Roll(翻滚角)三个方向上任意旋转。
输入一张人脸,最多可以在每个方向上最多旋转30度。以下是三个方向上旋转到最大角度生成的图片。
与相比之前的方法,英伟达的这种技术即使在面部转动幅度较大时,人脸也不会扭曲变形。
然而,图片终究是不动的,要把生成的人脸放在运动的视频中还要多一个步骤。
合成面部视频
我们把上传的清晰照片作为源图像,从中获取外貌特征。然后把视频中一帧帧画面作为重构视频的依据,从中提取出面部表情和头部姿势等信息。
而表情和姿势这两个数据可以通过关键点进行编码,这样就分离了人物身份信息和运动信息。在传输视频时只要有运动信息即可,从而节约了流量。
从源图像s中,我们得到了两组数据:关键点坐标x和雅可比矩阵J。这两组参数与面部的具体特征无关,只包含人的几何特征。
其中,雅可比矩阵表示如何通过仿射变换将关键点周围的局部补丁转换为另一幅图像中的补丁。如果是恒等雅可比矩阵,则补丁将直接复制并粘贴到新位置。
下图展示了计算前5个关键点的流程。给定源图像以及模型预测的规范关键点。
从运动视频估计的旋转和平移应用于关键点,带动头部姿势的变化。然后可以感知表情的变形将关键点调整为目标表情。
接下来开始合成视频。使用源和运动的关键点与其雅可比矩阵来估计流wk,从生成流组合成掩码m,将这两组进行线性组合即可产生合成流场w。
接着输入人脸面部特征f,即可生成输出图像y。
这种方法不仅能用于视频通话,也有其他“新玩法”。
比如觉得人物头像有点歪,可以手动输入纠正后的数据,从而将面部转正。
又或者是,把一个人的面部特征点和雅可比矩阵用于另一个人,实现面部视频动作的迁移。
团队简介
这篇文章的第一作者是来自英伟达的高级研究员Ting-Chun Wang。
文章的通讯作者是英伟达的著名研究员刘洺堉。
如果你长期关注CV领域,一定对这两位作者非常熟悉。他们在图像风格迁移、GAN等方面做出了大量的工作。
两人之前已经有过多次合作。比如。无监督图像迁移网络(NIPS 2017),还有从涂鸦生成照片的GauGAN(CVPR 2019),都是出自这二位之手。