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

news2024/11/19 8:28:29

给定任意数量的输入图像,使用以这些图像为条件的多视图扩散模型来生成场景的新视图。生成的视图被输入到强大的 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.coloradmin.cn/o/1683473.html

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

相关文章

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十一)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 18 节) P18《17.ArkUI-状态管理Observed 和 ObjectLink》 第一件事:嵌套对象的类型上加上 Observed 装饰器…

晶体振荡器

一、晶振与晶体区别 晶振是有源晶振的简称,又叫振荡器,英文名称是oscillator,内部有时钟电路,只需供电便可产生振荡信号;晶体是无源晶振的简称,也叫谐振器,英文名称是crystal,是无极…

C++第三方库【JSON】— jsoncpp

目录 认识JSON jsoncpp库 安装&使用 认识jsoncpp Json::Value jsoncpp序列化 jsoncpp反序列化 认识JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,常用于在客户端和服…

深度学习:手撕 RNN(1)-RNN 的直观认识

本文首次发表于知乎,欢迎关注作者。 1. RNN是什么 RNN(Recurrent Neural Network)存在很多变体,为了方便叙述和理解,本文选取一个基本的 RNN 结构进行说明,该结构与 pytorch 中的 RNN 函数([1]…

c语言:strcmp

strcmp函数是用于比较两个字符串的库函数,其功能是根据ASCII值逐一对两个字符串进行比较。 语法:strcmp(str1, str2) 返回值: 如果str1等于str2,则返回0。 如果str1小于str2,则返回负数(具体值取决于C…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 )为什么需要日志系统 业务发展越来越庞大,服务器越来越多各种访问日志,应用日志,错误日志量越来越多,无法管理开发人员排查问题,需要到服务器上查日志 2 )Elastic Stack…

Vue从入门到实战 Day08~Day10

智慧商城项目 1. 项目演示 目标:查看项目效果,明确功能模块 -> 完整的电商购物流程 2. 项目收获 目标:明确做完本项目,能够收获哪些内容 3. 创建项目 目标:基于VueCli自定义创建项目架子 4. 调整初始化目录 目…

刷题之和为k的数组(leetcode)

和为k的数组 这个思路一直想不到&#xff0c;参考了官方答案&#xff0c;哈希表记录[0,i]的和 class Solution { public:int subarraySum(vector<int>& nums, int k) {int result0;unordered_map<int, int>map;int pre0;//前缀和&#xff08;前面的和&…

必应崩了?

目录 今天使用必应发现出现了不能搜索&#xff0c;弹出乱码的情况。 搜了一下&#xff0c;发现其他人也出现了同样的问题。 使用Edge浏览器的话&#xff0c;可以试着改一下DNS&#xff0c;有可能会恢复正常&#xff08;等官方修复了记得改回来&#xff09; 使用谷歌浏览器打开…

哪些AI写作软件好用,这三款强大的AI写作软件必知

在当今信息爆炸的时代&#xff0c;AI写作软件逐渐成为许多人提高写作效率和质量的得力助手。面对众多的选择&#xff0c;哪些AI写作软件真正好用呢&#xff1f;以下为大家介绍三款强大的AI写作软件。 第一款&#xff1a;火呱AI写作 它凭借其强大的语言理解和生成能力脱颖而出。…

C++随机数生成神器:rand(),让你的代码更加引人入胜!

更多资源请关注纽扣编程微信公众号 使用 rand 函数可以获取 机数大小是在0到RAND_MAX&#xff0c;值为2147483647&#xff0c;它是在stdlib中定义的&#xff0c;如果我们希望在某个范围内&#xff0c;可以使用 % 结合 / 来实现 但是不难发现&#xff0c;这里获得的随机数是…

k8s 1.24.x之后如果rest 访问apiserver

1.由于 在 1.24 &#xff08;还是 1.20 不清楚了&#xff09;之后&#xff0c;下面这两个apiserver的配置已经被弃用 了&#xff0c;简单的说就是想不安全的访问k8s是不可能了&#xff0c;所以只能走安全的访问方式也就是 https://xx:6443了&#xff0c;所以需要证书。 - --ins…

MySQL 主备环境搭建 docker

MySQL 主备环境搭建 docker 拉取docker镜像 sudo docker pull mysql:8.0 启动容器 docker run -p 3339:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0docker run -p 3340:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0配置 M…

通过域名接口申请免费的ssl多域名证书

来此加密已顺利接入阿里云的域名接口&#xff0c;用户只需一键调用&#xff0c;便可轻松完成域名验证&#xff0c;从而更高效地申请证书。接下来&#xff0c;让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书&#xff0c;泛域名证书。 首先&a…

linux 错误记录(三)

这里的内核源码路径&#xff1a; cd /usr/src/linux-headers-5.4.0-150-generic/ 内核版本&#xff1a; $ uname -r 5.4.0-150-generic 错误现象 ./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory 搜索后是有的 …

STM32控制HC-SR04超声模块获取距离

欢迎入群共同学习交流 时间记录&#xff1a;2024/5/23 一、模块介绍 &#xff08;1&#xff09;引脚介绍 VCC&#xff1a;电源引脚&#xff0c;接单片机3.3/5V GND&#xff1a;电源地 Trig&#xff1a;超声信号触发引脚 Echo&#xff1a;超声信号接收引脚 &#xff08;2&…

热红外传感器

热红外传感器 一、热红外测温原理二、热红外传感器三、MLX90640-D55(MLX90640-BAB)测试 一、热红外测温原理 自然界中当物体的温度高于 绝对零度 时&#xff0c;由于它内部 热运动 的存在,就会不断地向四周辐射电磁波&#xff0c;其中就包含了波段位于0.75&#xff5e;100μm …

Unity Render入门

概述 在unity中渲染相关的组件是和Render关联的&#xff0c;比如我们常见的3D模型中的MeshRender&#xff0c;UI中的RenderCanvas等都是和Render相关联的&#xff0c;相信在unity的学习过程中&#xff0c;一定看到过非常多和Render相关的内容&#xff0c;那让我们学习一下这部…

Invoking “make cmake_check_build_system“ failed

前言&#xff1a; 在看过站内其他的方法且试过之后没奏效之后&#xff0c;偶然&#xff0c;无意间&#xff0c;随手整对了&#xff0c;然后后续在老赵的文档也找到了原因&#xff0c;对的上号&#xff0c;那在此我提出一种新的方法&#xff0c;且很简单的小tips。首先先来看看…

对列表进行统计和计算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python的列表提供了内置的一些函数来实现统计、计算的功能。下面介绍几种常用的功能。 &#xff08;1&#xff09;获取指定元素出现的次数 使用列表…