本文经AI新媒体量子位(公众号ID: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/