Generative Omnimatte: Learning to Decompose Video into Layers¶
会议: CVPR 2025
arXiv: 2411.16683
代码: https://gen-omnimatte.github.io (项目页)
领域: 视频理解 / 视频编辑
关键词: 视频图层分解, Omnimatte, 视频扩散模型, 物体效果移除, 视频编辑
一句话总结¶
Generative Omnimatte 通过微调视频 inpainting 扩散模型(Casper)学会物体及其关联效果(阴影、反射)的联合移除,结合 trimask 条件和 omnimatte 优化,在无需静态背景假设或相机位姿的前提下实现了高质量的视频图层分解和被遮挡区域补全。
研究背景与动机¶
- 领域现状:Omnimatte 方法将视频分解为语义有意义的 RGBA 层,每层包含一个物体及其关联效果(阴影、反射等)。现有方法如 Omnimatte、OmnimatteRF 依赖严格假设:静态背景或精确的相机位姿和深度估计。
- 现有痛点:(a) 静态背景假设在实际拍摄中经常被违反(如手持抖动、动态背景);(b) 需要准确的位姿/深度估计但这些估计往往不精确导致背景模糊;(c) 缺少生成先验无法补全被严重遮挡的动态区域;(d) 视频 inpainting 模型只能修复 mask 内区域,无法移除 mask 外的关联效果(如物体的阴影)。
- 核心矛盾:物体效果(如阴影)延伸到物体 mask 边界之外,但 inpainting 模型的设计是"保留 mask 外、修复 mask 内",这与效果移除的需求相矛盾。
- 本文目标:在不依赖静态背景或位姿估计的前提下,实现包含动态区域补全和效果关联的视频图层分解。
- 切入角度:预训练的视频生成模型内部已经学到了物体与效果的关联关系(如自注意力权重显示阴影区域 attend 到物体区域),只需少量数据微调就能激活这种能力。
- 核心 idea:微调视频 inpainting 模型添加物体效果移除能力(Casper),用 trimask 区分"移除/保留/可能修改"三种区域,再通过后优化重建 RGBA omnimatte 层。
方法详解¶
整体框架¶
两阶段流程:(1) 用 Casper 模型(微调自 Lumiere inpainting)生成干净背景视频 \(\mathcal{I}_{bg}\) 和 N 个单物体 solo 视频 \(\mathcal{I}_i\),每个 solo 视频只保留一个物体及其效果;(2) 对每对 \((\mathcal{I}_i, \mathcal{I}_{bg})\) 进行 test-time 优化,恢复前景 RGBA omnimatte 层 \(\mathcal{O}_i\)。
关键设计¶
-
Trimask 条件机制:
- 功能:为扩散模型提供"移除/保留/可能修改"的三级区域指示
- 核心思路:传统 inpainting 用二值 mask(0=修复, 1=保留),但物体效果移除需要第三种状态——"背景区域可能需要修改(如擦除阴影)"。Trimask 定义三值:\(\mathcal{M}=0\)(物体区域,需移除)、\(\mathcal{M}=1\)(保留的物体区域)、\(\mathcal{M}=0.5\)(背景区域,可能含需移除的效果)。对于生成背景,所有物体标为移除;对于生成第 \(i\) 个 solo 视频,物体 \(i\) 标为保留,其他物体标为移除。
- 设计动机:二值 mask 无法表达"这个区域的内容可能需要改也可能需要保留"的语义(如远处阴影区域),trimask 解决了这种歧义。消融实验证明 trimask 训练的模型比 binary mask 训练的模型在多物体场景下准确得多。
-
Casper 物体效果移除模型:
- 功能:移除指定物体及其所有关联视觉效果(阴影、反射、水花等)
- 核心思路:基于 Lumiere 的视频 inpainting 模型微调。关键设计:(a) 保留移除区域的 RGB 值(而非置零),使模型能通过 mask 内的物体外观推断其关联效果;(b) 使用精心策划的四类训练数据(31 个 Omnimatte 场景、15 个三脚架拍摄视频、569 个 Kubric 合成视频、1024 个 Object-Paste 视频),总量较小但覆盖了阴影、反射、水效果等多种场景;(c) 推理时使用 256 步 DDPM 采样,temporal multidiffusion 处理长视频。
- 设计动机:预训练视频模型的自注意力已经能关联物体和效果(Fig.5 可视化验证),少量有针对性的训练数据足以激活这种能力。
-
Omnimatte 优化:
- 功能:从 RGB solo 视频和背景视频重建 RGBA 前景层
- 核心思路:优化 alpha 网络(U-Net 从 \(\mathcal{I}_i\) 和误差图 \(\Delta_i = |\mathcal{I}_i - \mathcal{I}_{bg}|\) 生成平滑 alpha)和前景 RGB 像素值。损失函数包括重建损失 \(\mathcal{L}_{recon} = \|\mathcal{I}_i - \alpha_i \mathcal{I}_{i,fg} - (1-\alpha_i)\mathcal{I}_{bg}\|_2\)、alpha 稀疏性正则(L0+L1)和 mask 监督损失(逐渐减弱)。先在 128px 基础分辨率优化,再上采样到 640×384 继续优化,最后做细节转移。
- 设计动机:分两步走(先 RGB 效果移除再优化 RGBA)避免了直接训练扩散模型输出 alpha 通道所需的大规模 RGBA 数据。优化前景 RGB 而非直接使用输入视频像素能产生更干净的前景层。
损失函数 / 训练策略¶
Casper 训练:微调 Lumiere inpainting 基础模型,四类数据约 50:50 真实/合成比例。使用 BLIP-2 对训练目标视频生成文本描述。数据增强包括水平翻转、时间翻转、随机裁剪。Omnimatte 优化:\(\mathcal{L} = \mathcal{L}_{recon} + \lambda_{sparsity}\mathcal{L}_{sparsity} + \lambda_{mask}\mathcal{L}_{mask}\),其中 mask 监督权重随迭代逐步降低,让 alpha 从 mask 初始化后自由扩展到效果区域。
实验关键数据¶
主实验¶
| 方法 | Movie PSNR↑ | Movie LPIPS↓ | Kubric PSNR↑ | Kubric LPIPS↓ | Avg PSNR↑ | Avg LPIPS↓ |
|---|---|---|---|---|---|---|
| Omnimatte | 21.76 | 0.239 | 26.81 | 0.207 | 24.29 | 0.223 |
| OmnimatteRF | 33.86 | 0.017 | 40.91 | 0.028 | 37.38 | 0.023 |
| ObjectDrop | 28.05 | 0.124 | 34.22 | 0.083 | 31.14 | 0.104 |
| ProPainter | 27.44 | 0.114 | 34.67 | 0.056 | 31.06 | 0.085 |
| Ours | 32.69 | 0.030 | 44.07 | 0.010 | 38.38 | 0.020 |
平均 PSNR 38.38,超越 OmnimatteRF 的 37.38(+1.0 dB),LPIPS 0.020 优于 OmnimatteRF 的 0.023。
消融实验¶
| 配置 | 效果 |
|---|---|
| 去掉 Omnimatte 训练数据 | 丢失真实阴影/反射关联能力 |
| 去掉 Tripod 数据 | 水面反射效果处理变差 |
| 去掉 Kubric 数据 | 多物体场景能力下降 |
| 去掉 Object-Paste 数据 | 背景保真度降低,inpainting 质量变差 |
| Binary mask 替代 Trimask | 多物体时错误移除应保留的物体 |
| 不优化前景 RGB(直接用输入像素) | 前景层出现背景颜色污染 |
关键发现¶
- 四类训练数据各有不可替代的贡献,合计不到 2000 个视频就足以微调出效果优秀的 Casper 模型
- Trimask 对多物体场景至关重要——binary mask 模型无法区分"应保留"和"应移除"的物体
- 本方法不需要相机位姿或深度估计,但在 Kubric 合成场景上 PSNR 比需要位姿的 OmnimatteRF 高 3 dB
- 预训练视频模型的自注意力确实关联了物体与其效果(阴影区域的 query token 高度 attend 到物体区域)
- 本方法可以处理现有方法完全无法处理的场景:动态背景、严重遮挡、水面效果
亮点与洞察¶
- 用预训练视频模型的内在语义理解来做物体效果关联:与其设计复杂的光照/物理模型来检测阴影等效果,不如利用大规模视频生成模型已经学到的物体-效果关联先验。只需小数据量微调就能激活,这个思路可推广到其他需要语义理解的视频分析任务
- Trimask 的三级区域设计:简洁而有效地解决了 inpainting 模型无法处理 mask 外效果的根本局限。从二值到三值的扩展看似简单,但精确定义了任务的输入空间
- 两阶段分离设计避免了修改扩散模型输出空间:保持 RGB 输出空间不变让微调成本极低,通过后优化获得 RGBA,是一种工程上非常务实的策略
局限与展望¶
- 当前训练数据不包含物理变形类效果(如被弹簧弹起的物体、弯曲的杆子),模型无法处理这类效果
- 多个外观相似的物体(如一群企鹅)时,效果关联可能混淆——可能需要更强的实例分割信息
- Casper 可能误将无关的背景动态元素(如波浪细节)与前景物体关联,虽然可通过用户指定保留区域缓解
- 基础分辨率仅 128px(继承自 Lumiere),依赖 SSR 上采样,可能丢失细节
- 模型推理速度较慢(80 帧视频约 12 分钟 + 后优化时间)
相关工作与启发¶
- vs Omnimatte/OmnimatteRF: 这些方法依赖静态背景或位姿估计,通过运动线索关联效果。本文用生成先验替代运动先验,放宽了输入约束
- vs ObjectDrop: ObjectDrop 是图像级别的方法,逐帧处理缺乏时序一致性。本文的视频扩散模型天然保持时序连贯
- vs 视频 Inpainting (ProPainter/Lumiere): Inpainting 模型无法移除 mask 外的效果(如阴影),本文的 trimask + 微调解决了这个核心限制
补充分析¶
- Casper 基于 Lumiere inpainting 微调,仅用不到 2000 个训练视频就获得了优秀的效果移除能力,体现了视频扩散模型内在的效果关联先验极强
- 训练数据中四类来源的比例控制(约各25%)是精心调平的,分别覆盖真实效果关系、水面效果、多物体场景和 inpainting 质量
- 应用展示涵盖了物体移除、图层替换、运动重定时、前景风格化等多种编辑场景,证明 omnimatte 分解是一种通用的视频编辑中间表示
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 将视频生成先验引入 omnimatte 问题是全新思路
- 实验充分度: ⭐⭐⭐⭐⭐ 定量+定性+消融+应用展示全面
- 写作质量: ⭐⭐⭐⭐⭐ 问题动机分析透彻,每个设计选择都有清晰的 justification
- 价值: ⭐⭐⭐⭐⭐ 大幅降低了视频图层分解的输入要求,实用价值极高
相关论文¶
- [CVPR 2025] ReCapture: Generative Video Camera Controls for User-Provided Videos Using Masked Video Fine-Tuning
- [CVPR 2025] PhysAnimator: Physics-Guided Generative Cartoon Animation
- [CVPR 2025] Video Depth Without Video Models
- [NeurIPS 2025] EUGens: Efficient, Unified, and General Dense Layers
- [CVPR 2025] PERSE: Personalized 3D Generative Avatars from A Single Portrait