Google发布的CAT3D,在1分钟内,能够从任意数量的真实或生成的图像创建3D场景。

给定任意数量的输入图像,使用以这些图像为条件的多视图扩散模型来生成场景的新视图。生成的视图被输入到强大的 3D 重建管道,生成可以交互渲染的 3D 表示。总处理时间(包括视图生成和 3D 重建)仅需一分钟。

相关链接

论文:https://arxiv.org/pdf/2405.10314

项目:cat3d.github.io

论文阅读

CAT3D:使用多视图扩散模型以3D形式创建任何内容

摘要

3D重建的进步使高质量的3D捕获成为可能,但需要用户收集数百到数千张图像来创建3D场景。我们提出了cat3d,这是一种通过多视图扩散模型模拟真实世界的捕获过程来创建任何3D内容的方法。给定任意数量的输入图像和一组目标新颖视点,我们的模型生成高度一致的场景新颖视点。

这些生成的视图可以用作鲁棒的3D重建技术的输入,以产生可以从任何视点实时呈现的3D表示。CAT3D可以在短短一分钟内创建整个3D场景,并且优于现有的单图像和少视图3D场景创建方法。

方法

CAT3D是3D创建的两步方法:首先,我们使用多视图扩散模型生成大量与一个或多个输入视图一致的新视图,其次生成视图的鲁棒3D重建管道。我们从多视图扩散模型中生成大量几乎一致的新视图的方法,以及如何在3D重建管道中使用这些生成的视图。

给定一对多视图,CAT3D在短短一分钟内创建整个场景的3D表示。CAT3D分为两个阶段:

  • (1)以输入视图和目标视图的相机姿态为条件,从多视图潜在扩散模型生成大量合成视图;

  • (2)在观察到的和生成的视图上运行一个鲁棒的3D重建管道,以学习NeRF表示。这种生成先验与3d重建过程的解耦导致了计算效率的提高和相对于先前工作的方法复杂性的降低,同时也产生了改进的图像均衡性。

实验

定性结果:CAT3D可以通过多种输入方式创建高质量的3D对象或场景:由文本到图像模型生成的输入图像(第1-2行),单个捕获的真实图像(第3-4行)和多个捕获的真实图像(第5行)。

mip-NeRF360和CO3D数据集场景少视图重建的定性比较。这里显示的示例是渲染图像,有3个输入捕获视图。与ReconFusion等基线方法相比,CAT3D在可见区域与地面真实相符,而在不可见区域产生似是而非的内容。

少视图三维重建的定量比较。CAT3D在几乎所有设置和指标上都优于基线方法(修改后的基线用取自的∗表示)。

从单一输入图像的3D创建。来自CAT3D的3D模型效果图(中图)的质量高于场景的基线(下行),并且对对象具有竞争力。请注意,比例歧义放大了方法之间渲染的差异。

结论

我们提出了CAT3D,一种从任意数量的输入图像创建3D内容的统一方法。CAT3D利用多视图扩散模型生成高度一致的3D场景新视图,然后将其输入到3D多视图重建管道中。CAT3D将生成先验与3D提取分离,从而实现高效、简单和高质量的3D生成。

尽管CAT3D产生了令人信服的结果,并且在多个任务上优于先前的工作,但它的局限性。因为我们的训练数据集对于相同场景的视图具有大致恒定的相机特征,所以训练模型不能很好地处理由多个具有不同特征的相机捕获的输入视图的测试用例。CAT3D的生成质量依赖于基本文本到图像模型的表达能力,当场景内容不在基础模型的分布范围内时,CAT3D的表现会更差。

我们的多视图扩散模型支持的输出视图数量仍然相对较少,因此当我们从模型中生成大量样本时,并非所有视图都可能彼此3D一致。最后,CAT3D使用手动构建的相机轨迹完全覆盖场景,这可能很难设计大规模开放式3D环境。

在未来的工作中,CAT3D的改进有几个值得探索的方向。多视图扩散模型可以从预训练的视频扩散模型初始化中受益。通过扩展模型处理的条件视图和目标视图的数量,可以进一步提高样本的一致性。自动确定不同场景所需的相机轨迹可以增加系统的灵活性.

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

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

相关文章

零基础学Java第二十三天之网络编程Ⅱ

1. InetAddress类 用来表示主机的信息 练习: C:\Windows\system32\drivers\etc\ hosts 一个主机可以放多个个人网站 www.baidu.com/14.215.177.37 www.baidu.com/14.215.177.38 www.taobao.com/183.61.241.252 www.taobao.com/121.14.89.253 2. Socket 3.…

Elasticsearch 8.1官网文档梳理 - 十三、Search your data(数据搜索)

Search your data 这里有两个比较有用的参数需要注意一下 Search timeout:设置每个分片的搜索超时时间。从集群级别可以通过 search.default_search_timeout 来设置超时时间。如果在 search.default_search_timeout 设置的时间段内未完成搜索请求,就会…

React Native 之 键盘(十四)

在 React Native 中,当用户与文本输入组件(如 TextInput)交互时,系统可能会自动显示键盘。React Native本身并没有直接提供一个“调用键盘”的API,因为键盘的显示和隐藏主要是由系统根据用户的交互行为来管理的。但是&…

贪心-leetcode402.移掉 K 位数字-XMUOJ符文序列

题目 思路 话不多说&#xff0c;直接上代码 代码 /*leetcode402.移掉 K 位数字-XMUOJ符文序列--JinlongW-2024/05/26单调栈贪心*/ #include<bits/stdc.h> const int N1010; char num[N],result[N],numStack[N]; int k; using namespace std;void removeKdigits( int k…

lllllllllllllllllll

llllllllllllllllllllllllll

vue3模板语法以及attribute

模板语法​ Vue 使用一种基于 HTML 的模板语法&#xff0c;使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML&#xff0c;可以被符合规范的浏览器和 HTML 解析器解析。 在底层机制中&#xff0c;Vue 会将模板编译成高度优化…

《计算机网络微课堂》3-10 以太网交换机的生成树协议 STP

我们介绍以太网交换机生成树协议的基本概念。 请大家思考一下&#xff0c;应该如何提高以太网的可靠性呢&#xff1f;例如如图所示的以太网&#xff0c;由三台交换机互联而成&#xff0c;每个交换机上都连接有一些主机&#xff0c;为了简单起见&#xff0c;我们只画出了每个交…

数学建模和计算机建模的异同点

数学建模和计算机建模都是复杂系统分析和预测的重要手段&#xff0c;它们在理论基础、应用领域、实现方法等方面既有联系也有区别。 数学建模 定义&#xff1a; 数学建模是指利用数学语言&#xff08;如方程式、算法、图表等&#xff09;来描述现实世界中的问题或现象的过程。…

CSS3用户界面

用户界面 appearance appearance 属性用于控制元素是否采用用户代理(浏览器)的默认样式(外观) element {appearance: auto | none;}auto(默认):元素采用浏览器提供的默认样式。none:元素不采用任何默认样式,显示为“裸”元素,通常表现为无特定样式的简单框。input[…

Vue-前端自动化部署方案-scp2(实战版)

Vue-前端自动化部署方案-scp2 首先安装所需的npm插件 npm install scp2 //自动化部署 npm install ora //美化控制台 npm install chalk //美化控制台使用方式 在根级目录新增upload.js // 引入scp2 const client require("scp2"); const ora require("ora…

Web API 实现方式主流平台

Web API 实现方式主流平台 Web API 的实现方式和主流平台多种多样&#xff0c;每种方式和平台都有其独特的特性和应用场景。以下是主要的实现方式、主流平台及一些实现案例&#xff1a; 实现方式 REST (Representational State Transfer) 特点: 轻量级&#xff0c;基于HTTP…

2010-2022年各省新质生产力数据(含原始数据+测算代码+计算结果)

2010-2022年各省新质生产力数据&#xff08;含原始数据测算代码计算结果&#xff09; 1、时间&#xff1a;2010-2022年 2、范围&#xff1a;31省 3、指标&#xff1a;gdp&#xff08;亿元&#xff09;、在岗职工工资&#xff1a;元、第三产业就业比重、人均受教育平均年限、…

空间注意力机制

第一步是沿着通道维度进行最大池化和平均池化&#xff0c;比如下面3*3的特征图&#xff0c;有3个通道。 第二步新特征图进行拼接并经过卷积调整通道数 第三步经过Sigmoid函数后乘到输入上 代码&#xff1a; class SpatialAttention(layers.Layer):def __init__(self):super(S…

多环境和前后多环境实战

文章目录 一.多环境1.1 什么是多环境1.2 多环境分类1.2.1 本地环境&#xff08;自己的电脑&#xff09;1.2.2 开发环境&#xff08;远程开发&#xff09;1.2.3 测试环境1.2.4 预发布环境1.2.5 正式环境1.2.6 沙箱环境&#xff08;实验环境&#xff09; 1.3 如何实现1.3.1 抽象配…

实验报告2-多线程并发

实验报告2-多线程并发 一、实现思路 生产者消费者问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中&#xff0c;然后重复此过程。与此同时&#xff0c;消费者也在缓冲…

Hadoop学习之hdfs的操作

Hadoop学习之hdfs的操作 1.将HDFS中的文件复制到本地 package com.shujia.hdfs;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.After; import org.junit.Before; import org.j…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十四)- 函数式编程(3)

目录 Optional 创建对象 安全消费值 安全获取值 ofElseGet ofElseThrow 过滤 判断 数据转换 函数式接口 只有一个抽象方法的接口称为函数接口 常用默认方法 基本数据类型优化 Optional 可以避免空指针异常<br/> 创建对象 public static void main(String[…

Leetcode.560.和为k的子数组

原题链接&#xff1a;链接 代码&#xff1a; class Solution { public:int subarraySum(vector<int>& nums, int k) {int n nums.size();vector<int> vec(n1);for(int i 1;i<n;i){vec[i] vec[i-1]nums[i-1];}unordered_map<int,int> hash;hash[0…

Linux-应用编程学习笔记(三、文件属性和目录)

一、文件类型 1、普通文件&#xff08;ls -l 文件&#xff0c;权限前边第一个"-"代表普通文件&#xff1b;stat 文件&#xff09; 文本文件&#xff1a;ASCII字符 二进制文件&#xff1a;数字0/1 2、目录文件&#xff08;‘’d&#xff09;&#xff1a;文件夹 3…

利用微服务SpringCloud如何实现熔断?

熔断是一种保护机制&#xff0c;用于处理由于服务故障或负载过重引起的服务请求失败问题。在分布式系统中&#xff0c;如果一个服务发生故障或负载过重&#xff0c;它可能会导致其他依赖于它的服务也出现故障&#xff0c;最终导致整个系统崩溃。熔断器就是为了解决这个问题而设…