Diffusion Models专栏文章汇总:入门与实战
前言:使用生成式模型完成视频插帧任务相比于传统的方法有很大的优势,可以完成大运动幅度和更好的流畅性插帧任务。这篇博客介绍如何用目前最流行的视频生成开源模型SVD完成视频插帧任务。
目录
方案概述
通过对一个预训练的大规模图像到视频扩散模型进行轻量级微调,将其适应为关键帧插值模型。这种适应使得模型可以生成在两个输入帧之间的视频序列。具体而言,将模型调整为从单一输入图像预测反向运动的视频,并结合原始前向运动模型,使用双向扩散采样过程来融合从两个关键帧出发的模型估计结果。
方法详解
给定一对关键帧,目标是生成一个视频序列 ,该视频从帧 开始,以帧 结束,并利用预训练的图像到视频稳定视频扩散(SVD)模型。生成的视频应该展示自然且一致的运动路径,例如一辆车行驶或一个人朝着稳定方向行走。
图像到视频模型通常生成的是前向时间的运动。主要是时间自注意力层学习这种运动时间关联。先讨论如何通过将时间自注意力图旋转180度来逆转这种前向运动。再介绍一种高效的轻量级微调技术,以逆转这种关联,使SVD能够从输入图像生成反向运动视频。最后,提出了双向采样方法,将从帧 开始的前向运动生成和从帧 开始的反向运动视频生成以一致的方式融合在一起。
自注意力图旋转逆转
网络 中的时间自注意力图 特征表示视频 的前向运动轨迹。通过将这些注意力图旋转180度,得到一组新的注意力图 ,它们描绘了与之相反的反向运动,对应于从最后一帧 开始的反向序列 。具体来说,将时间自注意力图旋转180度(即垂直和水平翻转),可以得到与原始前向运动相反的反向运动。例如,考虑注意力图 ,旋转后的图 ,其中 表示第 帧和第 帧( 和 )之间的注意力分数。在相应的反向视频中,反向帧索引 和 维持相同的相对响应。
轻量级反向运动微调
本节介绍了一种轻量级的微调框架,专门微调时间自注意力层中的值矩阵和输出投影矩阵 和 ,使用旋转180度的前向视频注意力图作为额外输入。用 表示反向运动生成网络。这种微调方法有两个关键优点。首先,通过利用预训练SVD模型中的现有前向运动统计,微调 将模型的任务简化为学习如何在反向操作时合成合理的内容。与完整模型微调相比,这种策略所需的数据量和参数量大大减少。其次,它使模型能够生成与注意力图描述的前向轨迹相反的反向运动轨迹。这一特性在计划将前向和反向运动合并到一起时特别有用,从而实现前向-反向一致性。
详细的训练过程见下面算法1。对于潜在视频 ,通过第二维度反转,即沿时间轴反转潜在视频来表示 。在每次训练迭代中,采样一个包含 帧的输入视频,并随机选择时间步 ,然后在该时间步中添加噪声来创建有噪声的潜在视频 。将有噪声的视频潜在图像与从 计算得到的输入条件 一起输入到预训练的3D UNet 中,以提取时间注意力层中的自注意力图 。然后,将有噪声的视频潜在图像与最后一帧的条件 一起输入到反向运动3D-UNet 中。损失函数通过计算网络的预测与真实反向视频之间的差异来计算。
评估数据集
使用了两个高分辨率(1080p)数据集进行评估:
-
Davis数据集,从所有视频中创建了总共117对输入。这些数据集主要特征是对象的关节运动,例如动物或人类动作。
-
Pexels 数据集,从Pexels上的高分辨率视频中收集了总共45对输入关键帧对,特征包括方向性的动态场景运动,例如车辆移动、动物、人物奔跑、冲浪、波浪运动和延时视频。所有输入对之间至少相隔25帧,并具有相应的真实视频片段。
实验结果
将本文的方法与FILM进行比较,FILM 是当前大规模运动帧插值方法的最新进展,和TRF,TRF 也适配了SVD进行有限生成。在上面图3和图5中展示了代表性的定性结果。此外,还包括了近期工作DynamiCrafter 的关键帧插值特性结果------这是一个大规模的图像到视频模型。关键帧插值特性经过修改,并特别训练以接受两个结束帧作为条件,而研究者们则专注于如何以轻量级的方式适配预训练的图像到视频模型,使用较小的训练视频集合和更少的计算资源。该特性生成分辨率为 的16帧视频,而生成分辨率为 。
定量评估对于每个数据集,使用FID和 FVD来评估生成的视频。这两个指标用于衡量生成帧/视频与实际帧/视频之间的分布距离。结果如下表1所示,本文的方法在所有baseline方法中均显著优于其他方法。
与FILM的比较基于流的帧插值方法FILM面临两个主要问题。首先,它在处理大运动场景时很难找到对应关系。例如,在上面图3的第二行中,FILM在高速公路场景中无法找到移动汽车在输入关键帧之间的对应关系,导致中间帧的运动不自然。例如,一些汽车在第一帧中消失,在中间帧中消失,最后在结束时重新出现。其次,FILM生成的运动不明确,会沿最短路径在结束帧之间移动。在上图5中的示例中,给定两个看起来相似的帧,捕捉到的是一个人跑步的不同状态,FILM生成的运动仅仅是将人平移到帧之间,丧失了自然的腿部运动。
与TRF的比较 TRF结合了从第一帧开始的前向视频生成和从第二帧开始的反向视频生成,这两者都使用原始的SVD。第二帧的反向前向视频生成了一个反向运动视频,结束于第二帧。将这些生成路径融合在一起会导致生成的视频中出现往返运动。观察到TRF生成的视频有一个显著的效果,就是视频先向前推进,然后反向到结束帧。例如,在前面图3的第三行中,可以看到红色卡车随着时间的推移向后移动;在第七行中,狗的腿向后移动,导致不自然的运动。相比之下,本文的方法通过对SVD进行微调,从第二帧生成反向视频,与从第一帧生成的前向视频方向相反。这种前向-反向运动一致性导致生成的视频中运动保持一致。
论文
Generative Inbetweening: Adapting Image-to-Video Models for Keyframe Interpolation