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

news/2024/9/22 3:15:47/

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

相关文章

mysql中的json查询

首先来构造数据 查询department里面name等于研发部的数据 查询语句跟普通的sql语句差不多,也就是字段名要用到path表达式 select * from user u where u.department->$.name 研发部 模糊查询 select * from user u where u.department->$.name like %研发%…

Zookeeper安装使用教程

# 安装 官网下载安装包 #配置文件 端口默认8080,可能需要更改一下 #启动 cd /Users/lisongsong/software/apache-zookeeper-3.7.2-bin/bin ./zkServer.sh start #查看运行状态 ./zkServer.sh status #停止 ./zkServer.sh stop #启动客户端 ./zkCli.sh ls /

计算机网络29——Linux基本命令vim,gcc编译命令

1、创建新用户 2、给用户设置密码 3、切换到新用户 切换到root用户 4、删除用户 5、查看ip 6、ping 查看物理上两台主机是否联通 7、netstatus 8、nslookup 查看网址的地址 9、负载均衡与容灾备份 负载均衡:指将负载(工作任务)进行平衡、分…

python-SZ斐波那契数列/更相减损数

一:SZ斐波那契数列题目描述 你应该很熟悉斐波那契数列,不是吗?现在小理不知在哪里搞了个山寨版斐波拉契数列,如下公式: F(n) { $\ \ \ \ \ \ \ \ \ \ \ \ $ a,( n1) $\ \ \ \ \ \ \ \ \ \ \ \ $ b,( n2) $\ \ \ \ \ \ …

【JavaScript】数据结构之堆

什么是堆? 堆都能用树来表示,一般树的实现都是利用链表。而 二叉堆 是一种特殊的堆,它用完全二叉树来表示,却可以利用数组实现。平时使用最多的是二叉堆。二叉堆易于存储,并且便于索引。堆数据结构像树,但…

前端开发深入了解性能优化

前置知识 图片预加载 图片预加载是指在用户访问网页时,提前加载一些图片资源,以便在用户需要查看这些图片时能够更快地显示 原理: 提前请求:在页面加载时,浏览器会发送请求获取图片资源。预加载通常使用 JavaScrip…

OpenGL 原生库6 坐标系统

概述 为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate)&a…

【docker】命令之容器操作

一、前言 在上篇博客介绍了关于如何从应用市场,下载镜像后,对镜像的相关操作了。这篇博客呢我们就要讲解我们把镜像下载下来了,启动这个镜像后,就是我们说的容器了,那么容器的具体操作又有那些呢? 二、容器…