当前位置: 首页 > news >正文

CAT3D: Create Anything in 3D with Multi-View Diffusion Models 论文解读

24年5月的论文,上一版就是ReconFusion

目录

 

一、概述

二、相关工作

1、2D先验

2、相机条件下的2D先验

3、多视角先验

4、视频先验

5、前馈方法

三、Method

1、多视角扩散模型

2、新视角生成

3、3D重建


 

一、概述

        该论文提出一种CAT3D方法,实现单视图,稀疏视图,文本提示生成图像创建3D场景。可以利用多视图扩散模型生成大量一致的新视图,并且用作3D重建的输入,通过有效的并行采样策略生成任何视角下三维一致渲染的3D表示。创新在于将欠约束的3D重建问题首次表述为生成问题,提供更多的视角来实现完全约束下的重建。并且可以实现1分钟生成场景和对象级的逼真结果,在多个benchmarks上,相比以往的SOTA快一个数量级。

9d304a714d0f4b8391e3bdbc6c7fc7d2.png

二、相关工作

1、2D先验

        由于3D数据集相对稀缺,很多3D生成研究都集中在利用从2D图像空间学习到的先验知识。例如,预训练的文本到图像模型可以为文本到3D生成提供强大的生成先验。但是,将这些基于图像的先验知识转化为一致的3D模型目前仍需要一个迭代的蒸馏过程。

2、相机条件下的2D先验

        为了克服文本到图像模型无法精确控制图像姿态的局限性,一些方法尝试训练或微调具有图像和姿态条件的生成模型。这些模型为给定文本和/或输入图像的情况下对象或场景的外观提供了更强的先验。但是,当存在一定的不确定性时,这些方法仍需要昂贵的3D蒸馏过程来解决不同视图之间的不一致性

3、多视角先验

        对多个视图进行建模可以为部分观察的3D内容提供更强的先验。一些方法尝试微调文本到图像模型,以同时生成多个视图。这种方法捕捉了多视图依赖性,从而在3D提取方面实现了更高的质量和效率。

4、视频先验

        视频扩散模型已经展示了生成逼真视频的惊人能力,被认为隐式地推理了3D信息。但是,直接使用现有的视频扩散模型进行3D生成仍然存在挑战,例缺乏精确的相机控制,只能生成平滑和短暂的相机轨迹。一些工作尝试通过微调视频扩散模型来解决这些挑战,但主要集中在3D物体生成,无法处理3D场景、少视角3D重建或物体在上下文中的情况。

5、前馈方法

        另一类研究是学习前馈模型,直接从少量视图输入输出3D表示,无需优化过程。这些方法可以高效地生成3D表示(几秒内),但当时质量通常低于基于图像空间先验的方法。cat3d还是一个老论文。

三、Method

        这个论文的重点是第一个设计出多视图扩散模型的,所以CAT3D也是一个two-step的模型,先通过相机嵌入的MVLDM来生成多视角图像,再基于多视角图像和相机位姿通过NeRF模型来渲染3D模型。

3ad201f7480b4124a6a22df090b2d3b3.png

1、多视角扩散模型

        这个多视角扩散模型可以看成给定参考图像,参考位姿,目标位姿,输出目标图像的模型。

        模型架构类似LDM,论文中提到这是一个文本生成图像的模型,相比于LDM使用时间t作为嵌入,该模型使用相机姿态作为嵌入,将相机光线图concat到输入图像经VAE得到的潜在特征上。

        在下图可以看到输入图像为512*512*3,经过encoder得到64*64*8与相机光线图拼接。

(1)三维自注意力层的使用:在扩散模型中原有的2D自注意力层被膨胀到了3D自注意力层,也就是空间2维加时间1维,其目的是同时输入多张图像作为时间维度,达到了三维的一致性。另外经过这一工作也省去了以往稀疏视图生成中ReconFusion中添加CLIP嵌入和PixelNeRF解码器的需要。

(2)二值掩码:一个二值掩码被连接潜在特征的通道维度上,目的是为了指示输入图像是否被观察到(用于多视角生成)。

(3)FlashAttention:快速训练和采样,并影响对LDM所有权重微调。

f7b324fdc85d499f815d481bcbe5d1bd.png

2、新视角生成

(1)相机轨迹问题:在新视角生成过程中,给定的轨迹越能够覆盖整个场景,那么最后重建的效果越良好。

(2)生成大量合成视图:我的理解就是在稀疏视角下一定可以拟合一个轨迹,那么每个参考视图周围的视点的生成和这个参考视图独立分在一个组里,因为靠近的视图肯定更加相近。如果对于单图像情况,就先生成7个锚定视图能够覆盖整个场景的不同位置,之后基于这八张视图以及周围的视点再次分组,补充周围视点的目标视图。这样可以得到全局的一致性以及附近视图的局部相似性。

3、3D重建

        在ReconFusion使用的Zip-NeRF的基础上,添加了渲染图像与输入图像之间的光感损失LPIPS,强调两者之间的高级语义相似性,而忽略低水平高频细节的潜在不一致性。

四、实验

        稀疏视角输入下的对比。

d5ddb1447ca8400d9e09ac06abacf04c.png

         量化对比。

b13ba9e21de248fdb799bb3ec23ef988.png

        单视角图像输入下对比。

9a06ffe38b74447ca287c97973bd4163.png

 

论文地址:https://arxiv.org/abs/2405.10314

         

 

相关文章:

CAT3D: Create Anything in 3D with Multi-View Diffusion Models 论文解读

24年5月的论文,上一版就是ReconFusion 目录 一、概述 二、相关工作 1、2D先验 2、相机条件下的2D先验 3、多视角先验 4、视频先验 5、前馈方法 三、Method 1、多视角扩散模型 2、新视角生成 3、3D重建 一、概述 该论文提出一种CAT3D方法,实现…...

持续学习入门

参考视频(一) 【学无止境:深度连续学习】 背景 更新新的数据时,数据异步输入,会有灾难性遗忘 现有解决策略 (1)引入正则约束(2)设计合适的动态模型架构 &#xff…...

天猫推荐数据集实践

参考自 https://github.com/xufengtt/recom_teach_code,学习记录。 环境配置(maxcomputedataworks) 下载天猫推荐数据集;开启 aliyun 的 maxcompute,dataworks,pai;使用 odpscmd 上传本地数据…...

《Vue3实战教程》33:Vue3路由

如果您有疑问,请观看视频教程《Vue3实战教程》 路由​ 客户端 vs. 服务端路由​ 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML&…...

【大模型系列】MultiUI(2024.11)

Paper:https://arxiv.org/pdf/2410.13824Github:https://neulab.github.io/MultiUI/Author:Junpeng Liu et al., 卡内基梅隆 核心1: 先基于text-based LLMs获取网页的accessibility tree(辅助功能树,https://200t.w3c…...

「Mac畅玩鸿蒙与硬件52」UI互动应用篇29 - 模拟火车票查询系统

本篇教程将实现一个模拟火车票查询系统,通过输入条件筛选车次信息,并展示动态筛选结果,学习事件处理、状态管理和界面展示的综合开发技巧。 关键词 条件筛选动态数据展示状态管理UI交互查询系统 一、功能说明 模拟火车票查询系统包含以下功…...

Dubbo 核心知识全解析:原理、流程与关键机制

1.说说一次 Dubbo 服务请求流程? Dubbo 是一个分布式服务框架,它简化了基于 SOA(面向服务架构)的应用程序的开发。一次典型的 Dubbo 服务请求流程如下: 服务提供者启动: 服务提供者启动后,会向注册中心注册…...

时间序列预测算法---LSTM

目录 一、前言1.1、深度学习时间序列一般是几维数据?每个维度的名字是什么?通常代表什么含义?1.2、为什么机器学习/深度学习算法无法处理时间序列数据?1.3、RNN(循环神经网络)处理时间序列数据的思路?1.4、RNN存在哪些问题? 二、…...

二十三种设计模式-建造者模式

建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种分步骤构建复杂对象的方法。这种模式允许你通过相同的创建过程构建不同的表示。建造者模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的对象…...

MarkDown 的 mermaid gantt(甘特图)、mermaid sequenceDiagram (流程图) 语法解析和应用

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 MarkDown 的 mermaid gantt、mermaid sequenceDiagram 语法解析和应用前言mermaid gan…...

git submodule的使用:将别人的git仓库作为自己的子仓库

git的基本操作在该篇中展示:git的基本操作在日常开发中,我们经常会碰到需要将别人的仓库作为自己的子仓库来进行开发。下面将介绍具体将如何操作。 1、添加Submodule至自己的git仓库 1.1、创建自己的Git仓库 (1)在github中创建自…...

Springboot 下载附件

GetMapping("/download") public void download(RequestParam String fileId, HttpServletResponse response) throws IOException {// 查询文件信息SysFileEntity sysFileEntity fileService.queryFileById(fileId);response.setContentType("application/oct…...

MySQL 延迟复制:确保数据安全与系统稳定的秘诀

MySQL 延迟复制:确保数据安全与系统稳定的秘诀 在 MySQL 主从复制架构中,数据的同步通常是实时的。然而,在一些特定场景下,我们可能不希望从库立刻同步主库的所有更新。特别是在高风险操作或者主库出现故障时,实时复制…...

ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana

前言 你知道对于一个系统的上线考察,必备的几样东西是什么吗?其实这也是面试中考察求职者,是否真的做过系统开发和上线的必备问题。包括:服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志,如果…...

python实现自动登录12306抢票 -- selenium

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码,但是都不是最新的,我也是从网上找别人的帖子,看B站视频&…...

使用Diffusion Models进行图像超分辩重建

Diffusion Models专栏文章汇总:入门与实战 前言:图像超分辨率重建是一个经典CV任务,其实LR(低分辨率)和 HR(高分辨率)图像仅在高频细节上存在差异。通过添加适当的噪声,LR 图像将变得与其 HR 对应图像无法区分。这篇博客介绍一种方式巧妙利用这个规律使用Diffusion Mod…...

吾杯网络安全技能大赛——Misc方向WP

吾杯网络安全技能大赛——Misc方向WP Sign 题目介绍: 浅浅签个到吧 解题过程: 57754375707B64663335376434372D333163622D343261382D616130632D3634333036333464646634617D 直接使用赛博橱子秒了 flag为 WuCup{df357d47-31cb-42a8-aa0c-6430634ddf4a} 原神启动…...

Web安全 - “Referrer Policy“ Security 头值不安全

文章目录 概述原因分析风险说明Referrer-Policy 头配置选项1. 不安全的策略no-referrer-when-downgradeunsafe-url 2. 安全的策略no-referreroriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-origin 推荐配置Nginx 配置示例 在 Nginx 中配置 …...

C#OPC(上)

OPC(OLE for Process Control),用于过程控制的OLE,是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会现有会员以超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的O…...

Imgui + Cmake + OpenGL + GLFW 隐藏控制台窗口

网上一般是VS&#xff0c;如何在属性里面把控制台改为窗口 本文&#xff0c;使用Clion Cmake&#xff0c;实现如何隐藏控制台窗口 环境&#xff1a;OpenGL3 GLFW 添加头文件#include <windows.h>把main函数入口改为int WinMain(HINSTANCE hInstance, HINSTANCE hPrevI…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...