通过利用视频扩散模型,我们创新了一种新颖的视频深度估算方法–DepthCrafter。 它可以为开放世界视频生成具有细粒度细节的时间一致性长深度序列,而无需摄像机姿势或光流等附加信息。
简介
动机。 尽管在静态图像的单目深度估算方面取得了重大进展,但由于开放世界视频在内容、运动、摄像机移动和长度等方面存在极大差异,因此估算开放世界视频的深度仍然具有挑战性。 我们提出了一种创新方法–DepthCrafter,用于为开放世界视频生成具有复杂细节的时间一致性长深度序列,而无需摄像机姿势或光流等任何补充信息。 DepthCrafter 通过精心设计的三阶段训练策略,利用编译好的成对视频深度数据集,从预先训练好的图像到视频扩散模型训练视频到深度模型,从而实现对开放世界视频的泛化能力。 我们的训练方法使模型能够一次性生成长度可变的深度序列,最多可达 110 帧,并从现实和合成数据集中获取精确的深度细节和丰富的内容多样性。 我们还提出了一种推理策略,通过分段估计和无缝拼接来处理超长视频。
概述 DepthCrafter 是一个条件扩散模型,它以输入视频为条件,对深度序列的分布进行建模。 我们分三个阶段对模型进行训练,其中扩散模型的空间层或时间层是在我们编译的现实数据集或长度可变的合成数据集上逐步学习的。 在推理过程中,给定一个开放世界的视频,它可以从初始化的高斯噪声中为整个视频生成具有细粒度细节的时间上一致的长深度序列,而不需要任何补充信息,如摄像机姿势或光流。
超长视频推理。 我们将视频划分为重叠的片段,并采用噪声初始化策略估算每个片段的深度序列,以锚定深度分布的尺度和偏移。 然后,这些估算出的片段通过潜在插值策略无缝拼接在一起,形成整个深度序列。
Project: https://depthcrafter.github.io/
Code: https://github.com/Tencent/DepthCrafter
arXiv: https://arxiv.org/abs/2409.02095
Paper:https://depthcrafter.github.io/pdf/DepthCrafter.pdf
Model:https://huggingface.co/tencent/DepthCrafter
使用
安装
git clone https://github.com/Tencent/DepthCrafter.git
cd DepthCrafter
pip install -r requirements.txt
推理
- 高分辨率推理,需要 1024x576 分辨率的约 26GB 内存的 GPU:
- 完全推理(在 A100 上约为 0.6 fps,建议用于获得高质量结果):
python run.py --video-path examples/example_01.mp4
通过四步去噪,在无分类器引导的情况下实现快速推理(在 A100 上约为 2.3 fps):
python run.py --video-path examples/example_01.mp4 --num-inference-steps 4 --guidance-scale 1.0
- 低分辨率推理,需要约 9GB 内存的 GPU,分辨率为 512x256:
- 完全推理(在 A100 上约为 2.3 帧/秒):
python run.py --video-path examples/example_01.mp4 --max-res 512
- 通过 4 步去噪和无分类器引导实现快速推理(在 A100 上约为 9.4 帧/秒):
python run.py --video-path examples/example_01.mp4 --max-res 512 --num-inference-steps 4 --guidance-scale 1.0
Gradio Demo
提供了本地的 Gradio Demo 模型,以运行:
gradio app.py