【AIGC】SYNCAMMASTER:多视角多像机的视频生成

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970



标题:SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS
主页:https://jianhongbai.github.io/SynCamMaster/
代码:https://github.com/KwaiVGI/SynCamMaster

  

摘要

  视频扩散模型的最新希望在模拟真实天下的动态和保持三维一致性方面显示出了特殊的本领,可以或许确保不同视点间的动态一致性。不像现有方法(专注于多视图生成单个对象的四维重建),我们从恣意视点生成开放天下视频,结合6自由度摄像机姿态。提出一个即插即用模块,即多视图同步模块,以保持这些视点的外观和多少一致性。针对练习数据,计划一个混淆练习方案,利用多像机图像和单目视频来补充UE渲染的多像机视频。此外扩展了从新视角重新渲染视频,还发布了一个多视图SynCam数据集。
  

一、引言

  以往多相机生成方面的积极重要集中在4D对象生成上。它们仅限于从固定位置生成多视图视频,比如沿着围绕物体的轨道以等隔断采样。此外,它们仅限于单对象域,不支持开放域场景生成。最近CVD(Kuang et al.,2024)探索了从相同pose开始的多像机轨迹合成视频。然而,由于数据集构建的限定,这种方法只在狭窄视点的配景下进行研究
  从恣意视点的开放域多摄像机视频生成,面临两个挑战: (i)跨多视点的动态同步,这引入了保持4D一致性的复杂性,以及(ii)具有不同pose的多像机视频的稀缺。
  引入即插即用模块来利用预练习的文本-视频生成模型:给定所需摄像机的外参,通过将摄像机设置为全局坐标系来进行归一化,使用camera encoder将这些参数编码到像机嵌入空间中。然后在一个多视图同步模块中计算特性间注意力,该模块被集成到预练习的DiT中。
  创建一个混淆练习数据集SynCam,由多视图图像、常见单视图视频和UE渲染的多视图视频组成。虽然手动准备的UE数据存在特定范畴的题目和数量有限,但公开可用的通用视频加强了对开放范畴场景的泛化,而多视图图像促进了视点之间的多少和视觉一致性。
二、使用步调

  我们的目的是实现一个开放域多摄像机视频生成模型,可以 合成n个同步视频{                                                         V                                  1                                          ,                               .                               .                               .                               ,                                           V                                  n                                                 V^1,...,V^n                        V1,...,Vn}                                             ∈                                           R                                               n                                     ×                                     f                                     ×                                     c                                     ×                                     h                                     ×                                     w                                                             ∈R^{ n×f×c×h×w}                        ∈Rn×f×c×h×w,即                                             f                                      f                        f帧符合文本提示                                                         P                                  t                                                 P_t                        Pt​和                                             n                                      n                        n个指定视点{                                             c                               a                                           m                                  1                                          ×                               ,                               .                               .                               .                               ,                               c                               a                                           m                                  n                                                 cam^1×,...,cam^n                        cam1×,...,camn} 。视点用相机的外参表示,即                                    c                         a                                   m                            i                                       cam_i                  cami​:= [                                   R                         ,                         t                         ]                         ∈                                   R                                       3                               ×                               4                                                 R,t]∈R^{3×4}                  R,t]∈R3×4,为了简化,假设视点在各帧之间保持不变,并利用预练习视频扩散模型进行三维一致的动态内容合成,并引入即插即用的多视图同步模块来调节视图间的多少和视觉一致性,如图2。

2.1 TextToVideo生成模型

  预练习的latent SVD 由一个3D VAE和一个DiT组成。其中每个Transformer block都被实例化为一系列的空间注意、三维(时空)注意力和交叉注意力模块。前向过程,以及用常微分方程(ODE)去噪过程如下:

速度                                   v                              v                  v由神经网络的权值                                   Θ                              Θ                  Θ参数化。对于练习,回归一个向量场                                             u                            t                                       u_t                  ut​,通过Conditional Flow Matching 生成                                             p                            0                                       p_0                  p0​(数据分布)和                                             p                            1                                       p_1                  p1​(噪声分布)之间的概率路径:


2.2 多视图同步模块(SYNCHRONIZATION MODULE)

  在T2V生成模型的基础上,练习多视图同步(MVS)模块,并冻结base model。以下操作是跨视点的逐帧执行的,为简化省略了帧索引                                        t                                  t                     t MVS模块的输入为 空间特性                                                    F                               s                                            F^s                     Fs = {                                                   F                               1                               s                                      ,                            .                            .                            .                            ,                                       F                               n                               s                                            F^s_1,..., F^s _n                     F1s​,...,Fns​} ∈                                                    R                                           n                                  ×                                  f                                  ×                                  s                                  ×                                  d                                                       R^{n×f×s×d}                     Rn×f×s×d和token尺寸为                                        s                            =                            h                            ∗                            w                                  s =h∗w                     s=h∗w)和n个视频的相机外参                                        c                            a                            m                            =                                  cam=                     cam={                                        c                            a                                       m                               1                                      ,                            .                            .                            .                            ,                            c                            a                                       m                               n                                            cam^1,...,cam^n                     cam1,...,camn}∈                                                    R                                           n                                  ×                                  12                                                       R^{n×12}                     Rn×12,输出视图一致的特性                                                               F                                  ˉ                                          v                                            \bar{F}^v                     Fˉv= {                                                               F                                  ˉ                                          1                               v                                      ,                            .                            .                            .                            ,                                                   F                                  ˉ                                          n                               v                                            \bar{F}^v _1, . . . , \bar{F}^v_n                     Fˉ1v​,...,Fˉnv​}                                         ∈                                       R                                           n                                  ×                                  f                                  ×                                  s                                  ×                                  d                                                       ∈R^{n×f×s×d}                     ∈Rn×f×s×d到base T2V模型的后续层。
  具体地,首先将第                                   i                              i                  i台像机的12维外参嵌入为像机编码器                                             ϵ                            c                                       {\epsilon}_c                  ϵc​,按element-wise添加到相应的空间特性中。然后利用跨视图自注意层来进行多视图同步。最后,将聚合的特性投影回具有线性层和残差连接的空间特性域:

2.3 数据网络

  多视图视频数据的缺乏是阻碍多视图视频生成模型练习的重要挑战之一。现有的多视角视频数据重要包罗(1)从不同视角的4D资产视频和(2)以人为中心的运动捕捉数据集。
  three-step 办理方案,如图3所示。首先,利用单摄像机视频作为多视点图像数据,将不同视点之间的多少对应关系知识转移到视频生成中。具体来说,RealEstate-10K和DL3DV-10K包罗跨帧的摄像机运动的视频及其相应的摄像机参数,从中采样n个视频帧作为可用的多视图图像数据。其次,使用UE引擎手动渲染少量的视频(500个场景,每个场景36个摄像机),这些视频具有在都会环境中移动的人类和动物等3D资产。我们通过随机放置摄像机位置来加强模型在恣意视点上的泛化本领。最后,在练习过程中加入了高质量的一般视频数据(没有相应的摄像机信息)作为正则化。首先,我们网络了70个人类和动物的3D资产作为主体,并在3D场景中选择了500个不同的位置作为配景。其次,随机抽取1-2名重要受试者,将他们放置在每个位置,并让他们沿着几个预先界说的轨迹移动。第三,我们在每个场景的不同位置设置了36台摄像机,并同步渲染100帧。因此,多视图视频数据集由500组同步视频组成,每组有36个摄像机。每个场景中的摄像机都被放置在一个半球形的外貌上,距离中心为3.5米-9米。为了确保渲染的视频与真实视频具有最小的域移动,我们将每个摄像机的高程限定在0◦-45◦之间,方位角限定在0◦-360◦之间。为了支持SynCamMasser从恣意视点合成视频,每个摄像机都在束缚范围内随机采样,而不是在场景中使用相同的摄像机位置集。图4显示了一个场景的例子,其中赤色的星星表示场景的中心点(略高于地面),视频由同步摄像机渲染视频,以捕捉主体的运动

2.4 练习策略

  渐进式练习。为了有效地学习不同视点之间的多少对应关系,我们发现从用相对较小的角度差别输入模型视图开始,并在练习过程中渐渐增加差别是至关重要的。当相对角度较大的输入视点时,简单地从同一场景中的不同摄像机进行随机采样,就会导致视点跟踪功能的性能明显下降(图7)

  与多视图图像数据的联合练习。为了缓解多摄像头视频数据的缺乏,通过引入的单摄像头视频数据中采样来构建多视图图像数据。DL3DV-10K作为辅助图像数据,包罗∼10K视频,包罗室内外场景的广角摄像机运动,明显提高了SynCamMaster的泛化本领。(10K vs 500)
  使用single-view视频联合练习。为了提高合成视频的视觉质量,将高质量的视频数据(没有摄像机信息)作为正则化。给定一个single-view视频,复制成                                        v                                  v                     v个具有相同相机参数的多视图视频(数据加强)。此外,我们观察到,当简单地使用恣意摄像机运动的视频时,性能会下降,这可能是由于分布未对齐引起的,由于SynCamMaster的目的是从一个固定的视角生成视频。为此,我们使用以下三个步调过滤掉静态摄像机视频数据:首先,我们将视频降采样到8 fps,并使用SAM分割第一帧,获得64个分割掩码。然后将每个mask的中心作为锚点,使用视频点跟踪方法CoTracker来计算每个锚点在所有帧中的位置坐标。最后,我们确定所有点的位移是否低于一定的阈值,来过滤掉12000个静态摄像机视频,这些视频在练习过程中被添加为一个正则化项。
2.4 扩展到新视图的视频合成

  为了实现新视图视频合成任务,基于参考视频生成不同视点的视频,将SynCamMaster转换为一个 video-to-multiview-video生成器 练习中 ,给定多视角视频在时间步                                    t                              t                  t 的噪声latent features {                                             z                            t                            1                                  ,                         .                         .                         .                         ,                                   z                            t                            n                                       z_t^1,...,z_t^n                  zt1​,...,ztn​}                                    ∈                                   R                                       n                               ×                               f                               ×                               c                               ×                               h                               ×                               w                                                 ∈ R^{n×f×c×h×w}                  ∈Rn×f×c×h×w,将第一个视图视频为参考,将原始视频的噪声潜伏概率更换为p = 90%,即                                                   z                               t                               1                                      =                                       z                               0                               1                                            z_t^1 = z_0^1                     zt1​=z01​。为此,来自新视图(i = 2,···,n)的视频可以通过之前的多视图同步模块,有效地聚合来自参考视图的特性。推理阶段 ,首先用预练习的视频编码器提取输入视频的潜伏特性,然后在每个时间步长t = T、···、0进行特性更换。同时对文本条件                                             c                            T                                       c_T                  cT​和视频条件                                             c                            V                                       c_V                  cV​实现加权的无分类器指导,类似于diult-pix2pix:

                                              s                            T                                       s_T                  sT​和                                             s                            V                                       s_V                  sV​分别为文本和视频条件的加权分数,实践中设置为7.5和1.8,得到的SynCamMaster可以有效地重新渲染与文本提示和摄像机pose一致的视频,如图8:

三、实验

  实验细节。我们在多视图视频数据、多视图图像数据和单视图视频数据上联合练习我们的模型,其概率分别为0.6、0.2和0.2。我们以384x672的分辨率练习了50K步长的模型,学习率为0.0001,批量巨细为32。利用temporal-attention的权重对view-attention module进行初始化,并对摄像机编码器和投影器进行零初始化。
  评价指标。重要从cross-view synchronization(跨视图同步)和visual quality两方面来评价所提出的方法。 跨视图同步方面,使用最先辈的图像匹配方法GIM来计算: (1)置信度大于阈值的匹配像素数,记为Mat.Pix.,和(2)由每一帧的GIM估计的旋转矩阵和平移向量及其地面真实值之间的平均偏差,分别表示为RotErr和TransErr。此外,我们计算了SV4D中的FVDV评分和同一时间戳下多视图帧之间的平均CLIP相似度,记为CLIP-V。对于视觉质量,我们将其分为保真度、文本一致性和时间一致性,并分别使用FID和FVD、CLIP-T和CLIP-F对其进行量化。CLIP-T为每一帧及其对应文本提示符的平均CLIP相似度,CLIP-F为相邻帧的平均CLIP相似度。我们用100个手动网络的文本提示来构建评估集,每个文本提示有4个视点进行推断,总共得到400个视频
  对比方法 由于还没有其他类似工作。为此,我们建立了基线方法,首先提取SynCamMaster生成的每个视图的第一帧,然后将它们输入(1)图像到视频(I2V)生成方法,即SVD-XT (2)基于SVD-XT的最先辈的单摄像机控制方法CameraCtrl。由于CameraCtrl在静态摄像机轨迹条件下具有非最优性能,因此我们使用具有有限运动的轨迹作为输入。为了确保公平的比力,我们另外练习了一个基于SynCamMasser使用的相同T2V模型的I2V生成模型,I2V模型采用类似于EMU视频的方法,对50K步进行微调。在练习过程中,我们将第一帧的潜伏特性与噪声视频的潜伏特性沿信道维数进行扩展和连接,并以零初始化的权值扩展输入卷积层的维数。我们也用在0.1的概率下的零来代替潜伏的图像。在推理阶段,我们对图像和文本条件实现了无加权分类器的指导

   图5:与最先辈的方法的比力。基线方法的参考多视图图像(在蓝框中显示)由SynCamMaster生成。结果表明,SynCamMaster从同一场景的不同视点生成一致的内容(比方,红框中的细节),并实现了良好的视图间同步。
  


   图6:在联合练习策略的消融实验。两边的字幕代表了练习集的构成,其中“Mono. Video”是指一般的单目视频。结果表明,利用辅助的多视点图像数据和一般视频数据进行练习,可以明显提高合成视频的泛化本领和保真度。
  四、代码

1.练习数据格式如下:
  1. SynCamVideo
  2. ├── train
  3. │   ├── videos    # training videos
  4. │   │   ├── scene1    # one scene
  5. │   │   │   ├── xxx.mp4    # synchronized 100-frame videos at 480x720 resolution
  6. │   │   │   └── ...
  7. │   │   │   ...
  8. │   │   └── scene1000
  9. │   │       ├── xxx.mp4
  10. │   │       └── ...
  11. │   └── cameras    # training cameras
  12. │       ├── scene1    # one scene
  13. │       │   └── xxx.json    # extrinsic parameters corresponding to the videos
  14. │       │   ...
  15. │       └── scene1000
  16. │           └── xxx.json
  17. └──val
  18.     └── cameras    # validation cameras
  19.         ├── Hemi36_4m_0    # distance=4m, elevation=0°
  20.         │   └── Hemi36_4m_0.json    # 36 cameras: distance=4m, elevation=0°, azimuth=i * 10°
  21.         │   ...
  22.         └── Hemi36_7m_45
  23.             └── Hemi36_7m_45.json
复制代码
2.预练习权重未开源
3.关键代码
  1. # 1. add pose feature
  2. pose = rearrange(pose, "b v d -> (b v) 1 d")
  3. pose_embedding = self.cam_encoder(pose)
  4. norm_hidden_states = norm_hidden_states + pose_embedding
  5. # 2. multi-view attention
  6. norm_hidden_states = rearrange(norm_hidden_states, "(b v) (f s) d -> (b f) (v s) d", f=frame_num, v=view_num)
  7. norm_encoder_hidden_states = rearrange(norm_encoder_hidden_states, "(b v) n d -> b (v n) d", v=view_num)
  8. norm_encoder_hidden_states = repeat(norm_encoder_hidden_states, "b n d -> (b f) n d", f=frame_num)
  9. attn_hidden_states, _ = self.attn_syncam(
  10.     hidden_states=norm_hidden_states,
  11.     encoder_hidden_states=norm_encoder_hidden_states,
  12.     image_rotary_emb=image_rotary_emb_view,
  13. )
  14. # 3. project back with residual connection
  15. attn_hidden_states = self.projector(attn_hidden_states)
  16. attn_hidden_states = rearrange(attn_hidden_states, "(b f) (v s) d -> (b v) (f s) d", f=frame_num, v=view_num)
  17. hidden_states = hidden_states + gate_msa * attn_hidden_states
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表