当前位置: 首页 > article >正文

DepthCrafter:为开放世界视频生成一致的长深度序列

在这里插入图片描述
通过利用视频扩散模型,我们创新了一种新颖的视频深度估算方法–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

推理

  1. 高分辨率推理,需要 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
  1. 低分辨率推理,需要约 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

http://www.kler.cn/a/311990.html

相关文章:

  • Rust:GUI 开源框架
  • 论文分享:DiskANN查询算法
  • 微服务容器化部署实践(FontConfiguration.getVersion)
  • 小白初入Android_studio所遇到的坑以及怎么解决
  • 网络管理之---3种网络模式配置
  • Vue3 : Tailwindcss之margin样式类
  • VISIA 皮肤检测
  • 深入浅出Docker
  • Docker UI强大之处?
  • k8s部署springboot项目
  • Vue3 : Pinia的性质与作用
  • Pandas与Matplotlib:Python中的动态数据可视化
  • 计算机专业的就业方向
  • Vue 3 中 `$emit` 的使用示例
  • 最新Kali Linux超详细安装教程(附镜像包)
  • go 实现操作mysql并且防止sql注入
  • 从《中国数据库前世今生》看中国数据库技术的发展与挑战
  • C#使用实体类Entity Framework Core操作mysql入门:从数据库反向生成模型
  • 【AI】简单了解AIGC与ChatGPT
  • VUE项目运行npm run dev命令后,自动打开浏览器导航到主页
  • flink 批量写clickhouse
  • SQL 查询语句汇总
  • 金砖软件测试赛项之Jmeter如何录制脚本!
  • 算法训练——day18 两数之和三数之和
  • 力扣春招100题——队列
  • Acwing 堆