目录
一、概述
二、相关工作
三、前置知识
1、LVDM Introduction
2、LVDM Method
3、LVDM for Short Video Generation
4、Hierarchical LVDM for Long Video Generation
5、训练细节
6、推理过程
四、MotionCtrl
1、CMCM
2、OMCM
3、训练策略
五、实验
一、概述
MotionCtrl是一个统一和灵活的视频生成运动控制器可以独立控制相机运动和物体运动,解决了以往方法中要么只关注一种类型的运动,要么无法区分两者之间的差异性。
以往的视频中的运动控制,如AnimateDiff、Gen-2、PikaLab主要通过独立的LoRA,或者引入额外的相机参数来触发相机运动控制。VideoComposer和DragNUWA补充了相机运动和物体运动两部分,但是缺乏明确的区别,无法实现精细多样化的运动控制。
而MotionCtrl提供了三个优势:
(1)它可以有效且独立地控制相机和物体运动,实现细粒度调整和多样化的运动组合
(2)它使用相机姿态和轨迹作为运动条件,这不会影响物体的视觉外观
(3)它是一个相对通用的模型,可以适应各种相机姿态和轨迹,无需进一步微调
精确的相机运动和物体运动控制存在两个问题:一考虑相机运动和物体运动的明显差异,由于相机运动和物体运动存在明显区别,相机运动是指整个场景在时间维度均进行全局变换,而物体运动涉及场景中特定对象在时间维度的移动,通常表示为物体相关的一组像素的轨迹。二由于现有数据集没有完整注释的视频片段,caption,相机姿态,物体运动轨迹。所以需要创建一个全面的数据集。
是否可以先segment每一个物体,并对这一部分像素进行物体运动计算,在叠加到全局的运动轨迹上。
二、相关工作
早期视频生成主要依赖GANs和VAEs,近期基本转变为扩散模型,或者依赖于已训练好的扩散模型。
近期的可控视频生成领域,有一些方法参考特定模版学习运动,但受模版限制,另外通过引入额外的运动矢量来进行运动控制,以及通过基于初始图像和文本提示来生成视频,但不能精确分离相机运动和物体运动控制。
三、前置知识
1、LVDM Introduction
LVDM应该是继VDM扩散模型第一次引入视频生成领域后,再次将隐式扩散模型引入视频生成,在此之前都是GANs的天下。
LVDM通过提出视频潜在空间中操作的分层框架,可以使得模型生成超出训练长度的更长的视频,并且在短视频和长视频生成中领先当时的VDM和一众GANs模型,后续也应用到VideoCrafter和MotionCtrl模型中。
2、LVDM Method
首先这个模型中可以分别实现无条件视频生成和有条件视频生成。
训练AE过程:
首先使用一个轻量级的3D AutoEncoder来压缩视频,包括encoder和decoder,他们都是有多层3D 卷积构成。输入一段视频,先经过视频encoder得到潜在空间,其中,是空间和时间下采样因子。解码器用于解码样本,(技术细节,为了确保自编码器是时间上等变的,所以所有3D 卷积都保证重复填充)。
在训练过程中,单独训练AE模块,利用重建损失(MSE+LPIPS)和对抗性损失(消除像素级重建损失模糊)计算。
3、LVDM for Short Video Generation
对于短视频的生成,就是类似VDM的结构。经过encoder后,特征不断加噪,并引入3Dunet中,然后最后一层进decoder。
4、Hierarchical LVDM for Long Video Generation
上述框架用来生成短视频,长度受到训练所指定的frame决定,所以提出了一个分层的条件LVDM,通过自回归方式,依赖前一个token来生成下一个token,通过输入短视频,得到插帧的长视频。
首先在通道维度添加了一个二进制掩码,来指定他是条件帧还是预测帧,也就是输入的短视频帧,还是预测的高斯噪音帧,并通过随机将不同二进制掩码设置为1或0,此时就得到不同的,这样可以训练扩散模型为无条件视频生成和有条件的视频预测。
在这里要解释什么是条件帧,在论文中使用任意时间s,s是扩散时间步t内的一小部分时间,在训练中作为条件,经过s时间的加噪后得到,并与根据掩码m进行加权,之后得到的特征输入到3D U-Net来计算噪声。
具体来说,将二进制掩码m全都设置为0,那么覆盖在条件上就是无条件的扩散模型训练,当输入条件帧k帧,预测后面n-k帧,那么就是通过条件帧预测后面的帧,防止提前知道后面的帧。
最后计算输入的与预测的的MSE Loss。
分层LVDM的结构图如下,上面的解释应该都是Prediction 3D U-Net的解释。
对于Interpolation 3D U-Net来说,改变是mask sampling部分,插值模型在每两个稀疏帧之间的中间帧将二进制掩码设置为0。
5、训练细节
我们分别使用8和4的空间和时间下采样因子。我们首先训练一个3D AE,然后固定其权重,然后开始在短视频片段上训练无条件LVDM。之后,从无条件模型中分别微调Prediction 3D U-Net和Interpolation 3D U-Net。
6、推理过程
首先输入条件利用短视频模型部分,得到短视频片段,之后再利用分层长视频模型部分,经过短视频加噪多轮丢入Prediction 3D U-Net,之后再将潜在空间丢入 Interpolation 3D U-Net,得到连续的潜在空间信息,最后接VideoDecoder输出连续视频帧。
四、MotionCtrl
MotionCtrl框架扩展了LVDM中的去噪U-Net结构,并加入了相机运动控制模块CMCM和物体运动控制模块OMCM。其中CMCM模块通过将RT连接到Temporal Transformer部分的第二个自注意力机制(Temporal Transformer部分由两个自注意力模块构成),也就是Temporal Transformer部分的输入,并应用定制的轻量级全连接层来提取LVDM的相机姿态序列进行后续处理,OMCMC利用卷积层和降采样从Trajs中获得多尺度特征,并在空间通道上整合到LVDM的卷积层中,来指导物体的运动。
另外直接给定一个文本提示,经过CLIP后转变为视频的5通道格式,引导LVDM从提示相对应的噪声中生成视频,这样相机姿态控制的RT引入时间层,控制相机移动,物体的运动由Trajs控制,引入卷积层。下图(a)中马沿着设定的轨迹移动,背景向着相机移动的反方向(向左)移动。
1、CMCM
CMCM(Camera Motion Control Module)相机运动控制模块。首先取一组相机姿态,其中由于旋转矩阵3*3,平移矩阵3*1,所以flatten后总维度就是3*3+3*1=12维,这也就是。
另外U-Net每一个时间模块的第一个自注意力机制的输出就是,之后看上面(b)图CMCM解释,经过rearrange+concat,然后接FC+Att2,得到输出。
2、OMCM
OMCM(Object Motion Control Module)对象运动控制模块。
轨迹解释:通过Trajs轨迹来控制生成的视频的物体运动,一般来说一个轨迹表示为一系列空间位置的序列,其中而,表示x和y在轨迹图的尺寸范围内。另外为了表示速度,引入了u和v来表示两个方向的速度,因为帧与帧之间的时间固定,所以速度就表示为位移/帧时间,。
对于OMCM模块的解释:由多个卷积+降采样组成,并将这里面的特征输入到U-Net下采样层,以平衡生成视频的量化和物体运动控制能力。
3、训练策略
为了通过文本提示生成视频时实现相机和物体运动的控制,训练数据集需要字幕、相机姿态、物体运动轨迹等。目前没有这么完整的数据集,所以引入了一种多步骤的训练策略。
训练CMCM模块,只需要一个包含字幕和相机姿态标注的视频片段的训练数据集。采用了Realestate10K数据集,但存在场景多样性有限和缺乏字幕的问题。
解决方法:
(1)采用了CMCM模块,冻结LVDM的大部分参数,但保留temporal transformer的第二个自注意力模块可训练,来保证原有LVDM的生成质量。由于temporal transformer主要集中于全局运动的学习,所以Realestate10K发散性小,不会影响LVDM的生成质量。
(2)对于字幕的问题,利用Blip2,为Realestate10K数据集生成字幕。
训练OMCM模块,需要一个包含字幕和物体运动轨迹的视频剪辑数据集,但暂无有效的开源数据集。所以利用ParicleSfM来合成WebVid数据集中的物体运动轨迹,WebVid是一个配有字幕的大型视频数据集,用于T2V工作。ParicleSfM包含一个基于轨迹的运动分割模块,可以用于过滤出动态场景中影响相机轨迹产生的动态轨迹,利用这一模块合成了大约24.3w个视频运动物体轨迹。
由于这个轨迹比较密集,所以做了后处理,随机采样(稀疏化)+高斯滤波(避免稀疏轨迹分散而无法有效训练)
在OMCM训练过程中,LVDM和CMCM都提前进行了训练,并且冻结,之后训练OMCM。
五、实验
该模块训练在16帧的序列,分辨率为256*256,模型建立在LVDM或者VideoCrafter1框架上。
在模型评估过程中,对简单的轨迹(放大、缩小、平移、顺时针、逆时针)和复杂轨迹都进行了评估。
另外对于相机运动轨迹部分,在复杂动作下(上图b),如果采用VideoComposer提取运动矢量模拟参考视频的相机运动,密集的运动矢量将无意间捕捉到物体的形状,比如训练数据集中Frame12中门的轮廓(b图一行第五个)会导致VideoComposer的埃菲尔铁塔生成出现几何错误(b图二行第五个),而MotionCtrl通过旋转平移矩阵引导,运动轨迹更加接近参考视频。
评估指标:FID(视觉质量)、FVD(时间一致性)、CLIPsim (与文本的语义相似度),CamMC(预测相机轨迹与GT之间的欧氏距离),ObjMC(预测目标轨迹与GT之间的欧氏距离)
AnimateDiff、VideoCompose、MotionCtrl的量化比较。
给定轨迹下的比较,VideoComposer还是存在偏差。(第四帧)
在OMCM下对于是否采用密集轨迹、还是直接采用稀疏轨迹,或者密集轨迹下采样稀疏轨迹的比较。
对于目标如果出现多个的情况,也可以通过多个目标轨迹处理。
参考项目:MotionCtrl