DimensionX:从单张图片生成高度逼真的 3D 和 4D 场景

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. DimensionX 是香港科技大学、清华大学和生数科技共同推出的框架,可以从单张图片生成高逼真度的 3D 和 4D 场景。
  2. 基于 ST-Director 技术,实现对视频扩散过程中空间和时间因素的解耦和精确控制。
  3. 包含轨迹感知机制和身份保持去噪策略,增强场景的一致性和真实感。

正文(附运行示例)

DimensionX 是什么

在这里插入图片描述

DimensionX 是香港科技大学、清华大学和生数科技共同推出的一个框架,旨在从单张图片生成高逼真度的 3D 和 4D 场景。该框架基于视频扩散技术,实现了对空间和时间维度的精确控制。通过 ST-Director 技术,DimensionX 解耦了空间和时间因素,支持独立或组合控制,生成具有动态变化的复杂场景。此外,DimensionX 还包含轨迹感知机制和身份保持去噪策略,以增强场景的一致性和真实感。

DimensionX 的主要功能

  • 3D 场景生成:从单张图片生成新的视角渲染图,构建 3D 场景。
  • 4D 场景生成:从单张图片生成包含时间和空间变化的动态场景。
  • 视频扩散控制:基于 ST-Director 技术,实现对视频扩散过程中空间和时间因素的解耦和精确控制。
  • 轨迹感知机制:为 3D 生成设计,处理复杂的现实世界场景和相机运动。
  • 身份保持去噪策略:为 4D 生成设计,增强场景的一致性,特别是在动态对象和背景之间。

DimensionX 的技术原理

  • ST-Director(空间和时间导演)
    • 维度感知 LoRAs:学习从维度变化数据中得到的低秩适应(LoRAs),实现对视频扩散中空间和时间因素的解耦。
    • S-Director(空间导演):负责生成与空间变化相关的视频帧,控制相机视角和位置。
    • T-Director(时间导演):负责生成与时间变化相关的视频帧,控制场景中对象的动态。
  • 维度感知分解:定义空间和时间等价关系,创建 S-Quotient Space 和 T-Quotient Space,分别捕获视频中的空间轨迹和时间运动轨迹。
  • 无需训练的维度感知组合:基于视频扩散过程中的去噪机制,开发无需训练的方法实现混合维度控制,用在去噪过程的不同阶段切换 S-Director 和 T-Director 生成包含空间和时间变化的视频。
  • 3D 场景生成
    • 轨迹感知机制:根据不同的相机运动轨迹训练多种 S-Director,覆盖广泛的相机运动模式。
    • 视频插值模型:生成高质量的插值视频,平滑和一致地过渡稀疏视图。
  • 4D 场景生成
    • 参考视频 latent 共享:基于选择参考帧并共享其 latent 代码增强所有空间变体视频之间的一致性。
    • 外观细化:对每个视点的动态视频进行细化,增强多视图视频之间的稳定性和一致性。

如何运行 DimensionX

安装依赖

确保你的 Python 版本介于 3.10 到 3.12 之间

pip install diffusers

推理代码示例

import torch
from diffusers import CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video, load_imagepipe = CogVideoXImageToVideoPipeline.from_pretrained("THUDM/CogVideoX-5b-I2V", torch_dtype=torch.bfloat16)
lora_path = "your_lora_path"
lora_rank = 256
pipe.load_lora_weights(lora_path, weight_name="pytorch_lora_weights.safetensors", adapter_name="test_1")
pipe.fuse_lora(lora_scale=1 / lora_rank)
pipe.to("cuda")prompt = "An astronaut hatching from an egg, on the surface of the moon, the darkness and depth of space realised in the background. High quality, ultrarealistic detail and breath-taking movie-like camera shot."
image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg")
video = pipe(image, prompt, use_dynamic_cfg=True)
export_to_video(video.frames[0], "output.mp4", fps=8)

资源

  1. 项目官网:https://chenshuo20.github.io/DimensionX/
  2. GitHub 仓库:https://github.com/wenqsun/DimensionX
  3. arXiv 技术论文:https://arxiv.org/pdf/2411.04928

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469029.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备考——算法

一、排序 冒泡排序、选择排序、插入排序、 快速排序、归并排序、桶排序 二、枚举 三、二分查找与二分答案 四、搜索(DFS) DFS(DFS基础、回溯、剪枝、记忆化) 1.DFS算法(深度优先搜索算法) 深度优先搜…

【网络面试篇】其他面试题——Cookie、Session、DNS、CDN、SSL/TLS、加密概念

目录 一、HTTP 相关问题 1. Cookie 和 Session 是什么? (1)Cookie (2)Session 2. Cookie 的工作原理? 3. Session 的工作原理? 4. Cookie 和 Session 有什么区别? 二、其他问…

隧道论文阅读2-采用无人融合扫描数据的基于深度学习的垂直型隧道三维数字损伤图

目前存在的问题: 需要开发新的无人测量系统测量垂直隧道图像数据量巨大,基于深度学习完成损伤评估跟踪获取图像位置的困难,对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究,对整个目标结构的损伤定位仍然具有挑战性。为…

CCF-A类 HPCA 2025 重磅揭晓:录取数据公布

近日,第31届国际计算机体系结构领域顶级会议HPCA (International Symposium on High Performance Computer Architecture) 正式发布了2025年会议的录用通知!本届会议共收到了534 篇提交论文,其中,112篇论文被接收,整体…

Linux应用——线程池

1. 线程池要求 我们创建线程池的目的本质上是用空间换取时间,而我们选择于 C 的类内包装原生线程库的形式来创建,其具体实行逻辑如图 可以看到,整个线程池其实就是一个大型的 CP 模型,接下来我们来完成它 2. 整体模板 #pragma …

IDM扩展添加到Edge浏览器

IDM扩展添加到Edge浏览器 一般情况下,当安装IDM软件后,该软件将会自动将IDM Integration Module浏览器扩展安装到Edge浏览器上,但在某些情况下,需要我们手动安装,以下为手动安装步骤 手动安装IDM扩展到Edge浏览器 打…

docker 拉取MySQL8.0镜像以及安装

目录 一、docker安装MySQL镜像 搜索images 拉取MySQL镜像 二、数据挂载 在/root/mysql/conf中创建 *.cnf 文件 创建容器,将数据,日志,配置文件映射到本机 检查MySQL是否启动成功: 三、DBeaver数据库连接 问题一、Public Key Retrieval is not allowed 问题…

深入探索Waymo自动驾驶技术发展:从DARPA挑战赛到第五代系统的突破

引言 自动驾驶技术正引领着未来出行方式的革命,而Waymo作为全球自动驾驶领域的先锋,始终走在技术发展的最前沿。本文基于Waymo联席CEO德米特里多尔戈夫(Dmitri Dolgov)在No Priors节目中的访谈,全面介绍Waymo的技术发展…

鸿蒙移动应用开发-------初始arkts

一. 什么是arkts ArkTS是HarmonyOS优选的主力应用开发语言。 ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和…

c++ 输入三条边 绘制三角形

安装图形库 参考 #include "graphics.h" // 就是需要引用这个图形库 #include <conio.h> #include <stdio.h> #include <math.h>// 判断是否可以构成三角形 int isTriangle(int a, int b, int c) {return (a b > c) && (a c >…

A20红色革命文物征集管理系统

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

Logrus入门

Logrus入门 1. 下载 go get github.com/sirupsen/logrus2. logrus常用方法 logrus.Debugln("Debugln") logrus.Infoln("Infoln") logrus.Warnln("Warnln") logrus.Errorln("Errorln") logrus.Println("Println")// 输出如…

pyspark入门基础详细讲解

1.前言介绍 学习目标&#xff1a;了解什么是Speak、PySpark&#xff0c;了解为什么学习PySpark&#xff0c;了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码&#xff0c;既可以在电脑上简单运行&#xff0c;进行数据分析处理&#xff0c;又可以把代码无缝…

权限管理练习2

1.在/home中创建一个名为 file1.txt 的文件&#xff0c;并设置权限为&#xff1a;所有者和组成员可以读写&#xff0c;但其他人只能读。 所有者和组成员可以读写 u rw- g rw- o r-- 2.在 /home 目录下创建一个名为 shared 的子目录&#xff0c;使得所有用户都可以进入&#…

面试经典 150 题:121,125

121. 买卖股票的最佳时机 【参考代码】 动态规划解决 class Solution { public:int maxProfit(vector<int>& prices) {int size prices.size();int min_price 99999, max_profit 0;for(int i0; i<size; i){if(prices[i] < min_price){min_price prices[i…

数据集划分

1、 sklearn玩具数据集介绍 数据量小&#xff0c;数据在sklearn库的本地&#xff0c;只要安装了sklearn&#xff0c;不用上网就可以获取 2 sklearn现实世界数据集介绍 数据量大&#xff0c;数据只能通过网络获取&#xff08;科学上网&#xff09; 3 sklearn加载玩具数据集 示…

图形几何之美系列:仿射变换矩阵之先转后偏

“在几何计算、图形渲染、动画、游戏开发等领域&#xff0c;常需要进行元素的平移、旋转、缩放等操作&#xff0c;一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等&#xff0c;四元数在图形学中主要用于解决旋转问题&#xff0c;特别是在三维…

刷题强训(day05) -- 游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)

目录 1、游游的you 1.1 题目 1.2 思路 1.3 代码实现 2、腐烂的苹果 2.1 题目 2.2 思路 2.3 代码实现 3、孩子们的游戏(圆圈中最后剩下的数) 3.1 题目 3.2 思路 3.3 代码实现 3.3.1 环形链表 ​编辑3.3.2 动态规划 ​编辑 1、游游的you 1.1 题目 1.2 思路 根据题…

PyQt5超详细教程终篇

PyQt5超详细教程 前言 接&#xff1a; [【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;](【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果&#xff0c;方便理…

并查集算法实现

模板 模板分为三大部分 初始化查询i的祖先合并i j(使他们祖先成为一个人) // 1 初始化 void init(int n) {for (int i 1; i < n; i)fa[i] i;//将该数的父节点定义为该数 }// 2 查询i的祖先 int find(int i) {if (i fa[i])return i;else{![查](../pic/并查集.png)fa[i]…