一边动,一边画,自己就变二次元!华人小哥参与的黑科技:实时交互式视频风格化

动画“新概念”

鱼羊 十三 发自 凹非寺
量子位 报道 | 公众号 QbitAI

动画,动画,就是你你的,我我的。

就像下面这张GIF,左边是张静态图片,随着画者一点一点为其勾勒色彩,右边的动图也在实时地变换颜色。

这就是来自布拉格捷克理工大学和Snap研究所的黑科技——**只需要2个特定的帧,就能实时变换视频中对象的颜色、风格甚至是样式。

当然,更厉害的还在后面。

拿一张你的卡通头像图片,随意对其修改,顶着这张头像,坐在镜头前的你,也会实时发生改变。

甚至,你还可以一边画自己,一边欣赏自己慢慢变成动画效果的过程。

真可谓是这边着,那边着,动画就出来了。

而且整个过程无需冗长的训练过程,也不需要大规模训练数据集,研究也提交至SIGGRAPH 2020。

那么,这么神奇的效果到底是如何做到的呢?

交互式视频风格化

首先,输入一个由 N 帧组成的视频序列 I。

如下图所示,对于任何一帧 Ii,可以选择用蒙版 Mi来划定风格迁移的区域,或者是对整一帧进行风格迁移。

用户需要做的是提供风格化的关键帧 Sk,其风格会被以在语义上有意义的方式传递到整个视频序列中。

与此前方法不同的是,这种风格迁移是以随机顺序进行的,不需要等待顺序靠前的帧先完成风格化,也不需要对来自不同关键帧的风格化内容进行显式合并。

也就是说,该方法实际上是一种翻译过滤器,可以快速从几个异构的手绘示例 Sk 中学习风格,并将其“翻译”给视频序列 I 中的任何一帧。

这个图像转换框架基于 U-net 实现。并且,研究人员采用基于图像块(patch-based)的训练方式和抑制视频闪烁的解决方案,解决了少样本训练和时间一致性的问题。

基于图像块的训练策略

关键帧是少样本数据,为了避免过拟合,研究人员采用了基于图像块的训练策略。

从原始关键帧(Ik)中随机抽取一组图像块(a),在网络中生成它们的风格化对应块(b)。

然后,计算这些风格化对应块(b)相对于从风格化关键帧(Sk)中取样对应图像块的损失,并对误差进行反向传播。

这样的训练方案不限于任何特定的损失函数。本项研究中,采用的是L1损失、对抗性损失和VGG损失的组合。

超参数优化

解决了过拟合之后,还有一个问题,就是超参数的优化。不当的超参数可能会导致推理质量低下。

研究人员使用网格搜索法,对超参数的4维空间进行采样:Wp——训练图像块的大小;Nb——一个batch中图像块的数量;α——学习率;Nr——ResNet块的数量。

对于每一个超参数设置:(1)执行给定时间训练;(2)对不可见帧进行推理;(3)计算推理出的帧(O4)和真实值(GT4)之间的损失。

而目标就是将这个损失最小化。

提高时间一致性

训练好了翻译网络,就可以在显卡上实时或并行地实现视频风格迁移了。

不过,研究人员发现在许多情况下,视频闪烁仍很明显。

第一个原因,是原始视频中存在时态噪声。为此,研究人员采用了在时域中运行的双边滤波器的运动补偿变体。

第二个原因,是风格化内容的视觉歧义。解决方法是,提供一个额外的输入层,以提高网络的判别能力。

该层由一组随机2维高斯分布的稀疏集合组成,能帮助网络识别局部上下文,并抑制歧义。

不过,研究人员也提到了该方法的局限性:

当出现新的没有被风格化的特征时,该方法通常不能为其生成一致的风格化效果。需要提供额外的关键帧来使风格化一致。

处理高分辨率(如4K)关键帧比较困难

使用运动补偿的双边滤波器,以及随机高斯混合层的创建,需要获取多个视频帧,对计算资源的要求更高,会影响实时视频流中实时推理的效果。(Demo的实时捕获会话中,没有采用提高时间一致性的处理方法)

研究团队

这项研究一作为Ondřej Texler,布拉格捷克理工大学计算机图形与交互系的三年级博士生。

本科和硕士也均毕业于此。主要研究兴趣是计算机图形学、图像处理、计算机视觉和深度学习。

除了一作之外,我们还发现一位华人作者——柴蒙磊。博士毕业于浙江大学,目前为Snap Research创意视觉(Creative Vision)组的资深研究科学家。

主要从事计算机视觉和计算机图形学的研究,主攻人类数字化、图像处理、三维重建和基于物理的动画。

传送门

项目地址:
https://ondrejtexler.github.io/patch-based_training/

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。