MAV3D:从文本描述中生成三维动态场景

Singer U, Sheynin S, Polyak A, et al. Text-to-4d dynamic scene generation[J]. arXiv preprint arXiv:2301.11280, 2023.

MAV3D 是 Meta AI 研究者们提出的一种从文本描述生成三维动态场景的方法。从所提供的文本生成的动态视频输出可以从任何摄像机位置和角度查看,并且可以合成到任何 3D 环境中。1

在这里插入图片描述

本文只对文章做浅显阅读,更多参考资料如下:

  • 全文翻译:一行文本,生成3D动态场景:Meta这个「一步到位」模型有点厉害、AIGC发展太快!Meta发布首个基于文本的4D视频合成器:3D游戏建模师也要下岗了?;
  • 文章总结:一行文本生成4D动态场景——Meta AI MAV3D论文解读、【论文精读】Text-To-4D Dynamic Scene Generation;
  • 视频讲解:[论文阅读]Text-To-4D Dynamic Scene Generation(MAV3D);
  • 疑难问答:Text-To-4D Dynamic Scene Generation | Hacker News

目录

  • 一. 研究思路
    • 1. 场景表示
    • 2. 场景优化
    • 3. 分辨率扩展
    • 4. MAV3D pipeline
  • 二. 场景表示
  • 三. 场景优化
  • 四. 分辨率扩展
  • 五. 实验结果
  • 六. 总结

一. 研究思路

  • 近年来,提供 prompt 合成图像的生成模型发展迅速,主要分为两类:在时间上扩展以合成视频的生成模型(如《Text-to-video generation without text-video data》)和在空间上扩展以生成 3D 形状的生成模型(如《Dream-Fusion: Text-to-3d using 2d diffusion》)。但这两类生成模型的研究一直是分离的。
  • 文章将两者结合,提出了一种 text-to-4D (3D+time) 的生成方法:输入自然语言描述,输出动态的 3D 场景表示,命名为 MAV3D (Make-A-Video3D)

MAV3D 不同于 text-to-video (T2V) 和 text-to-3d 等方法,由于缺少可用的 4D 数据作为训练支撑,因此只能在预训练的模型上再做改进。MAV3D 将动态 NeRF 和预训练的 T2V(也叫 MAV,同样出自 Meta AI)结合,对物体周围的随机视角进行采样来实现多同步视角。

由于缺乏训练数据,Meta AI 的研究人员想到去找一个预训练好的 2D 视频生成器,再从生成的 2D 视频中提炼出一个四维重建。但从 2D 视频中重建可变形物体的形状仍然非常具有挑战性,即 非刚性运动结构 (Non-Rigid Structure from Motion, NRSfM)
不过,如果能够给定物体的 多同步视角 (multiple simultaneous viewpoints),难题就会迎刃而解。虽然多机位设置在真实数据中很少见,但研究者们认为现有的 2D 视频生成器能够隐式地表示任意视角下的场景。也就是说,可以将视频生成器作为一个「统计学」的多机位设置来重建可变形物体的几何和光度。

不过直接使用视频生成器来优化动态 NeRF 无法取得令人满意的结果,实现过程中还有以下几个难题需要攻克:

  1. 需要一个有效的动态三维场景的表示方法;
  2. 需要一个监督源,因为没有大规模的文本 - 4D 对可供学习;
  3. 需要在空间和时间维度上扩展输出的分辨率,因为 4D 输出需要大量的内存和算力;

1. 场景表示

MAV3D 的动态三维场景表示基于 NeRFs,结合了高效的静态 NeRF 和动态NeRF,将 4D 场景表示为 6 个 多分辨率特征平面 (multiresolution feature plane)

2. 场景优化

为了在缺少文本 - 4D 对数据学习的情况下监督上面提出的场景表示,采用了一种由静态到动态的多阶段训练策略:先利用 文本到图像 (text-to-image, T2I) 模型,将静态的三维场景与 prompt 文本匹配;然后再用动态的方式增强三维场景模型。

模型中还引入了时间感知 (temporal-aware) 的 SDS (Score Distillation Sampling 2) 损失和运动正则项,这对现实运动和具有挑战性的运动至关重要。

3. 分辨率扩展

文中通过一段时间感知的超分模型微调来扩展输出的分辨率,具体做法是:使用 T2V 模型的超分模块中的 SDS 来获得高分辨率梯度信息,从而进行有监督的三维场景学习。这能够增加其视觉保真度,并且在推理过程中对更高分辨率的输出进行采样。

4. MAV3D pipeline

在这里插入图片描述
如图所示,4D 场景由 6 个特征平面组成,绿色的 3 个是空间平面,橙色的 3 个是空间时间平面。场景优化时:

  • 第一阶段只需要优化静态场景:利用 T2I 模型的 SDS Loss 优化空间平面,将静态的三维场景与 prompt 文本匹配。静态场景用不到空间时间平面,将其置 0 即可;
  • 第二阶段需要优化动态场景:利用 T2V 模型(即 MAV)的 SDS-T Loss 优化空间时间平面,渲染完整的视频;
  • 第三阶段需要超分微调:使用超分网络 MAV SR 渲染高分辨率的视频,并传入超分组件;

二. 场景表示

记 4D 场景表示为 f θ ( x , y , z , t ) f_{\theta}(x,y,z,t) fθ(x,y,z,t),其中 θ \theta θ 为场景参数,需要学习优化。给定相机机位的集合为 { C t } t = 1 T \{C_t\}_{t=1}^{T} {Ct}t=1T,使用 f θ f_{\theta} fθ 渲染的图像为 I t = R ( f θ , t , C t ) I_t=\mathcal{R}(f_{\theta},t,C_t) It=R(fθ,t,Ct),将其堆叠合成视频 V V V。将 prompt 文本 p p p 和合成视频 V V V 传入 T2V 模型,以计算其匹配程度。然后使用 SDS 计算场景参数 θ \theta θ 的梯度,从而进行更新。

三. 场景优化

四. 分辨率扩展

五. 实验结果

六. 总结

MAV3D 最不可思议的地方在于,目前可用的文本 - 4D 对非常有限。Meta AI 的研究者们依靠现有的 T2V 模型作为 NeRF 的场景先验,通过优化以创建 3D 场景表示。在优化过程中,NeRF 模型从连续的时空坐标创建场景的一系列视图,然后使用扩展模型对图像的真实感和与 prompt 文本的对齐程度进行评分,以获得更加真实的场景表示。


  1. 效果超棒!Facebook AI 提出一种从文本描述生成三维动态场景的方法! ↩︎

  2. Poole, B., Jain, A., Barron, J. T., and Mildenhall, B. Dream-Fusion: Text-to-3d using 2d diffusion. arXiv, 2022. ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023亚太杯数学建模C题思路代码 - 我国新能源电动汽车的发展趋势

1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…

嵌入式系统在工业自动化中的应用

嵌入式系统在工业自动化中的应用非常广泛,它们通过集成控制和实时响应能力,实现了生产线的自动化、智能化和高效化。以下将详细介绍嵌入式系统在工业自动化中的几个重要应用领域,并提供一些示例代码。 1. PLC(可编程逻辑控制器&a…

思维模型 潘多拉效应

本系列文章 主要是 分享 思维模型 ,涉及各个领域,重在提升认知。越是禁止,越是好奇。 1 潘多拉效应的应用 1.1 潘多拉效应在管理中的应用 通用电气公司曾经推出了一项名为“六西格玛”的管理方法,该方法旨在通过优化业务流程和提…

leetcode 343.整数拆分 198.打家劫舍(动态规划)

OJ链接 &#xff1a;leetcode 343.整数拆分 代码&#xff1a; class Solution {public int integerBreak(int n) {int[] dp new int[n1];//每个n&#xff0c;拆分多个整数乘积的最大值dp [0] 0;dp [1] 1; for(int i 2 ; i<n; i){for(int j 0 ; j < i; j){dp[i] Ma…

【开源】基于Vue.js的天然气工程运维系统的设计和实现

项目编号&#xff1a; S 022 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S022&#xff0c;文末获取源码。} 项目编号&#xff1a;S022&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程…

【Java】初识JDBC

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;向阳而生&#xff0c;逐光而行 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 &#x1f4cb;前言 …

Springmvc实现增删改差

一、包结构 二、各层代码 (1)数据User public class User {private Integer id;private String userName;private String note;public User() {super();}public User(Integer i, String userName, String note) {super();this.id i;this.userName userName;this.note note;…

快速在WIN11中本地部署chatGLM3

具体请看智谱仓库github&#xff1a;GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型 或者Huggingface:https://huggingface.co/THUDM/chatglm3-6b 1. 利用Anaconda建立一个虚拟环境&#xff1a; conda create -n chatglm3 pyt…

深信服防火墙路由模式开局部署-手把手教学(小白篇)

PS&#xff1a;深信服的设备只有400能够通过console连接&#xff0c;一般用户是无法连接的&#xff0c;所以大家不要妄想着从Console连接设备了&#xff0c;开局就通过MANAGE进入Web就可以 接通电源后&#xff0c;开机拿一根网线&#xff0c;一端连接防火墙的MANAGE口&#xf…

CTF-PWN-QEMU-前置知识

文章目录 QEMU 内存管理(QEMU 如何管理某个特定 VM 的内存)MemoryRegion gpa->hpaFlatView&#xff1a;表示MR 树对应的地址空间FlatRange&#xff1a;存储不同MR对应的地址信息AddressSpace&#xff1a;不同类型的 MemoryRegion树RAMBlock总体简化图 QEMU 设备模拟 &#x…

微机原理_2

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案&#xff0c;请将选定的答案填涂在答题纸的相应位置上。&#xff09; 下列数中最大的数为&#xff08;&#xff09; A. 10010101B B. (126)8 C. 96H D. 100 CPU 执行 OUT 60H,…

项目环境配置 本地/测试/预发/生产

在本地目录下新建文件 dev测试环境 development 本地开发环境 production 生产环境 uat预发布环境 .env.dev VUE_APP_API_PATH /api # 测试 VUE_APP_API_PATH http:// # 生成dist名称 VUE_APP_DIST dist_dev .env.development # 本地开发环境 VUE_APP_API_PATH…

使用C++从0到1实现人工智能神经网络及实战案例

引言 既然是要用C++来实现,那么我们自然而然的想到设计一个神经网络类来表示神经网络,这里我称之为Net类。由于这个类名太过普遍,很有可能跟其他人写的程序冲突,所以我的所有程序都包含在namespace liu中,由此不难想到我姓刘。在之前的博客反向传播算法资源整理中,我列举…

【数字信号处理】傅里叶变换的离散性与周期性

傅里叶变换的离散性与周期性 2023年11月21日 #elecEngeneer 文章目录 傅里叶变换的离散性与周期性1. 符号说明2. 具体分析3. 序列的序号表示的DFT下链 1. 符号说明 t : 连续时间(时域)变量 ω : 频域变量&#xff0c;aka角频率 g : 时域函数 G : 频域函数 n : 时域采样序列序号…

『RabbitMQ』入门指南(安装,配置,应用)

前言 RabbitMQ 是在 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09; 协议标准基础上完整的&#xff0c;可复用的企业消息系统。它遵循 Mozilla Public License 开源协议&#xff0c;采用 Erlang 实现的工业级的消息队列(MQ)服务器&#xff0c;建立在 Erlang …

C语言——文件操作

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 我辈皆凡人&#xff0c;用一生铺就的…

【管理运筹学】背诵手册(五)| 动态规划

五、动态规划 基本概念 阶段&#xff08;Stage&#xff09;&#xff1a;将所给问题的过程&#xff0c;按时间或空间特征分解成若干相互联系的阶段&#xff0c;以便按次序去求解每阶段的解&#xff0c;常用字母 k k k 表示。 状态&#xff08;State&#xff09;&#xff1a;…

Ubuntu20.04 install pnpm

npm install -g pnpm referrence link: Installation | pnpmPrerequisiteshttps://pnpm.io/installation

【libGDX】使用Mesh绘制立方体

1 前言 本文主要介绍使用 Mesh 绘制立方体&#xff0c;读者如果对 Mesh 不太熟悉&#xff0c;请回顾以下内容&#xff1a; 使用Mesh绘制三角形使用Mesh绘制矩形使用Mesh绘制圆形 在绘制立方体的过程中&#xff0c;主要用到了 MVP &#xff08;Model View Projection&#xff0…

Javaweb之前后台分离开发介绍的详细解析

2.1 前后台分离开发介绍 在之前的课程中&#xff0c;我们介绍过&#xff0c;前端开发有2种方式&#xff1a;前后台混合开发和前后台分离开发。 前后台混合开发&#xff0c;顾名思义就是前台后台代码混在一起开发&#xff0c;如下图所示&#xff1a; 这种开发模式有如下缺点&a…