Zero123 论文学习

论文链接:https://arxiv.org/abs/2303.11328
代码链接:https://github.com/cvlab-columbia/zero123

解决了什么问题?

人类通常能够仅凭一个相机视角来想象物体的三维形状和外观。这种能力对于日常任务非常重要,例如物体操纵和在复杂环境中导航。此外,这种能力对于视觉创造力也很关键,如绘画艺术。这种能力可以部分通过依赖于几何先验(如对称性)来解释。人类似乎能够轻松地推广到更具挑战性的物体上,这些物体打破了物理和几何约束。事实上,我们甚至能够预测那些在物理世界中不存在(或根本无法存在)的物体的3D形状,如下图的第三列所示。为了达到这种泛化程度,人类依赖于通过一生的视觉探索积累的先验知识。

然而,大多数现有的3D图像重建方法都是在封闭世界(closed-world)设置中操作的,这是因为它们依赖于昂贵的3D注释,例如CAD模型或特定类别的先验知识。最近,一些方法通过在大规模、多样化的数据集(如CO3D)上进行预训练,在开放世界3D重建方面取得了重大进展。然而,这些方法通常仍然需要几何相关的信息来进行训练,例如立体视图或相机姿态。因此,它们所使用的数据规模和多样性与最近能够使大型扩散模型成功的互联网规模的文本-图像集合相比仍然不够显著。已经证明,互联网规模的预训练赋予了这些模型丰富的语义先验。但是,这些模型在多大程度上捕获了几何信息,在很大程度上仍是未知的。

封闭世界设置通常指的是方法只能在有限的数据集或特定类别上工作,而开放世界设置则指的是方法能够处理更广泛、更多样化的数据。

本文中,作者展示了如何学习控制机制,操作大规模扩散模型的相机视点,从而进行零样本的新视图合成和 3D 形状重建。从单个RGB图像重建3D形状,这是一个在信息不足的情况下进行的任务。但是,因为生成模型可用的训练数据规模非常大(超过50亿张图像),人们开始用扩散模型来表示自然图像的分布,支持从多个视角捕捉大量不同物体的表示。尽管它们是在 2D 单目图像上训练的,缺乏相机的对应关系,但可以微调模型以学习生成过程中相对相机旋转和平移。这样就可以使模型学会在生成过程中控制相机视角,从而对任意图像进行编码,并将其解码为我们选择的不同相机视点。

零样本学习指的是在没有直接训练数据的情况下执行任务。新视角合成是指从新的视角生成图像。

3D generative models

结合大规模图像-文本数据集的使用,生成图像架构已经取得了显著进展,能够合成高保真的多样化场景和对象。扩散模型在学习可扩展的图像生成器方面表现出色,它们使用去噪目标来训练。但是,将扩散模型扩展到3D领域将需要大量的昂贵的带注释的3D数据。相反,最近的方法依赖于将预训练的大型2D扩散模型转移到3D领域,而不需要使用任何真实的3D数据。NeRF作为一种强大的表示形式,因其能够高保真地编码场景而受到关注。通常,NeRF用于单场景重建,它提供了许多覆盖整个场景的带位姿的图像。该任务然后预测未知视角的新视图。DreamFields 证明 NeRF 非常有用,可以作为3D生成系统的主要组成部分使用。各种后续的工作通过使用2D扩散模型的蒸馏损失替代CLIP,用于从文本输入生成高保真的3D对象和场景。

作者的工作探索了一种非传统的视角合成方法,这种方法不同于传统的3D重建或视角合成技术。该方法将视角合成建模为一个图像到图像的翻译任务,其中图像的生成受到视角条件的约束。学到的模型还可以与3D蒸馏(3D distillation)结合使用,从单个图像中重建3D形状。与之前的工作不同,本文方法展示了零样本泛化能力,即在没有见过的图像上也能进行有效的视角合成。先前的工作采用了类似的流程,但没有展示出零样本泛化能力。同时期的方法提出了使用语言引导的先验和 textual inversion 来执行图像到3D的生成。本文方法使用合成数据集学习视点控制,模型能够学习如何在没有直接3D信息的情况下,根据视角变化来调整图像的生成。

Single-view object reconstruction

从单一视角重建 3D 物体是非常有挑战性的,需要很强的先验信息。一种研究思路是通过依赖于3D信息(如网格、体素或点云)集合来构建先验,这些信息用于表示 3D 的形状,并使用图像编码器进行条件化。这些模型受到所使用的3D数据集多样性的限制,并且由于这种全局性质的条件化,表现出较差的泛化能力。这些方法还需要一个额外的姿态估计步骤,以确保估计的形状与输入图像之间的对齐。另一方面,局部条件模型旨在直接使用局部图像特征进行场景重建,并展示出很强的跨域的泛化能力,但是局部条件模型通常受限于近距离视角的重建。

本文中,作者展示了如何直接从预训练的扩散模型中提取丰富的几何信息,减轻了对额外深度信息的需求。

提出了什么方法?

本文核心的贡献就是展示了大规模扩散模型可以学到世界的丰富 3D 先验知识,尽管它们是在 2D 图像上训练的。论文也展示了新视角合成领域的最新成果,即从单个RGB图像生成新视角图像的能力。论文还展示了零样本3D重建领域的最新成果,即从单个RGB图像重建物体的3D形状。

Zero-1-to-3是一个新颖的框架,它可以根据单个RGB图像改变相机视点,即使只有一个图像作为输入。 在这种约束不足的情况下进行新视角合成是一个挑战,但Zero-1-to-3框架通过利用大规模扩散模型学习到的自然图像的几何先验来实现这一点。该框架使用条件扩散模型,它利用合成数据集来学习相对相机视点的控制,从而能够生成同一对象在特定相机变换下的新图像。尽管Zero-1-to-3模型是在合成数据集上训练的,但它保持了强大的零样本泛化能力,能够很好地适应分布外数据集的图像,包括印象派绘画。Zero-1-to-3框架的视点条件扩散方法也可以用于从单个图像进行3D重建的任务。定性和定量的实验表明,Zero-1-to-3方法通过利用互联网的大规模数据的预训练,显著优于现有的单视图3D重建和新视角合成模型。Zero-1-to-3通过使用大规模扩散模型,能够从大量数据中学习到丰富的先验知识,这使得它在处理单图像任务时表现出色。

给定某物体的一张 RGB 图像 x ∈ R H × W × 3 x\in \mathbb{R}^{H\times W\times 3} xRH×W×3,目的是合成出该物体在不同相机视点下的图像。设 R ∈ R 3 × 3 R\in \mathbb{R}^{3\times 3} RR3×3 T ∈ R 3 T\in\mathbb{R}^3 TR3 是期望视点下的相对相机旋转和平移矩阵。我们要学习一个模型 f f f,在该相机变化下合成出一张新图像:

x ^ R , T = f ( x , R , T ) \begin{equation} \begin{split} \hat{x}_{R,T} = f(x,R,T) \end{split} \end{equation} x^R,T=f(x,R,T)

其中 x ^ R , T \hat{x}_{R,T} x^R,T 是合成的图像。我们想要 x ^ R , T \hat{x}_{R,T} x^R,T 感官上足够接近真实但全新的视角 x R , T x_{R,T} xR,T

从单目RGB图像进行新视角合成是一个“严重约束不足”的问题,意味着仅凭单个图像很难确定场景的所有3D信息。作者提出利用大型扩散模型,例如Stable Diffusion,来执行新视角合成任务。扩散模型在文本描述生成多样化图像方面展现出了非凡的零样本(zero-shot)能力。零样本意味着模型能够在没有直接训练数据的情况下执行任务。预训练的扩散模型是当前最先进的自然图像分布表示方法,这使得它们能够生成高质量、多样化的图像。

但是要想得到 f f f,我们有两个挑战必须去克服。首先,尽管大规模生成模型是在不同视点的物体上训练得到,但表征并没有显式地编码不同视点之间的对应关系。其次,生成模型继承了互联网数据的视角偏见,如下图所示。Stable Diffusion 倾向于生成标准位姿的面朝前的椅子。这两个问题严重制约了模型从扩散模型提取 3D 知识的能力。

Learning to Control Camera Viewpoint

由于扩散模型是在互联网大规模数据训练得到的,这些图像的分布基本覆盖了大多数物体的大多数视点,但是这些视点不受预训练模型控制。一旦我们能教会模型控制相机的外参,我们就解锁了模型进行新视角合成的能力。

如上图所示,给定一个由图像对以及它们的相对相机外参组成的数据集 { ( x , x R , T , R , T ) } \{(x, x_{R,T}, R, T)\} {(x,xR,T,R,T)} R R R是旋转矩阵, T T T是平移),本方法微调了一个预训练扩散模型,从而学习控制相机参数,同时不破坏模型的其它表示能力。使用了一个隐扩散架构,包括一个编码器 E \mathcal{E} E、一个去噪器 U-Net ϵ θ \epsilon_\theta ϵθ、一个解码器 D \mathcal{D} D。编码器 E \mathcal{E} E用于将输入图像和相机外参编码为潜在空间中的表示。去噪器 ϵ θ \epsilon_\theta ϵθ是一个常见的神经网络结构,用于在扩散过程中逐步去除噪声,恢复图像。解码器 D \mathcal{D} D用于将潜在空间的表示转换回图像空间。在扩散时间步 t t t(通常在1到1000之间), c ( x , R , T ) c(x, R, T) c(x,R,T) 表示输入视图和相对相机外参的 embedding。然后,我们可以用下面的目标函数来微调模型:

min ⁡ θ E z ∼ E ( x ) , t , ϵ ∼ N ( 0 , 1 ) ∥ ϵ − ϵ θ ( z t , t , c ( x , R , T ) ) ∥ 2 2 \begin{equation} \begin{split} \min_{\theta}{\mathbb{E}_{z\sim \mathcal{E}(x),t,\epsilon \sim \mathcal{N}(0,1)}\left\| \epsilon - \epsilon_\theta (z_t, t, c(x,R,T)) \right\|_2^2} \end{split} \end{equation} θminEzE(x),t,ϵN(0,1)ϵϵθ(zt,t,c(x,R,T))22
模型 ϵ θ \epsilon_\theta ϵθ 训练完后,推理模型 f f f 就能由高斯噪声图像,以 c ( x , R , T ) c(x,R,T) c(x,R,T) 为条件,通过逐步去噪的方式以生成图像了。

论文的核心成果是展示了如何通过微调预训练的扩散模型,使其能够学习控制相机视点的通用方法。这种微调方法允许模型在微调数据集之外的对象上进行外推(extrapolate),即模型能够处理在微调过程中未见过的对象。微调使模型能够学习控制相机视点的机制,这意味着模型可以根据需要生成不同视点的图像,同时保留了模型生成逼真图像的能力。这种能力表明模型具有组合性,即能够将学习到的视点控制与图像生成能力结合起来。微调后的模型在零样本情况下也具有合成新视图的能力,即对于在微调集中从未出现过的对象类别,模型也能够合成它们的新视图。即使对于那些在微调数据集中没有3D资产且从未出现过的对象类别,最终的模型也能够合成它们的新视图。

View-Conditioned Diffusion

3D重建需要同时处理低级感知信息(如深度、阴影、纹理等)和高级理解(如类型、功能、结构等)。为了应对这一挑战,作者采用了混合条件机制,将不同层次的信息结合起来。

  • 在第一个流程中,使用CLIP模型对输入图像进行嵌入,并将该嵌入与相机姿态 ( R , T ) (R, T) (R,T)结合,形成“posed CLIP”嵌入 c ( x , R , T ) c(x, R, T) c(x,R,T)。通过 cross attention 机制将这种 embedding 应用于去噪U-Net,提供输入图像的高级语义信息。
  • 第二个流程中,将输入图像与正在去噪的图像在通道上进行拼接,帮助模型保持合成物体的身份和细节。

为了应用 classifier-free guidance,在推理过程中,随机地将输入图像和 posed CLIP embedding 设置为 null 向量,并调整条件信息的缩放。

3D Reconstruction

在许多应用场景中,用户不仅仅需要对象的新视图合成,更期望得到一个全面的3D重建,这包括对象的外观和几何结构。为了实现这一目标,作者采用了一个最近开源的框架,即Score Jacobian Chaining(SJC),用于优化3D表示,并结合来自文本到图像扩散模型的先验知识。但是,扩散模型具有概率性质,这意味着在优化过程中,梯度更新具有高度的随机性。SJC框架中使用了一个关键技术,这项技术受到DreamFusion的启发,即设置分类器自由引导(classifier-free guidance)的值远高于通常的设置。这样做可以减少每个样本的多样性,但能提高重建的保真度。

如下图,与 SJC 相似,作者随机采样一些视点来做体积渲染,即模拟光线穿过3D体积并计算每个像素的颜色,以生成初始的3D视图图像。然后,用高斯噪声 ϵ ∼ N ( 0 , 1 ) \epsilon\sim \mathcal{N}(0,1) ϵN(0,1) 对体积渲染的图像做扰动。然后使用 U-Net ϵ θ \epsilon_\theta ϵθ 来去除图像中的噪声,该 U-Net 的输出依赖于输入图像 x x x、posed CLIP embedding c ( x , R , T ) c(x,R,T) c(x,R,T) 和时间步 t t t。这些条件信息帮助网络更好地理解图像内容和上下文。去噪过程的目标是将噪声图像恢复为接近原始无噪声输入 x π x_\pi xπ 的状态。这里的 x π x_\pi xπ 表示经过相机姿态变换后的输入图像。

∇ L S J C = ∇ I π log ⁡ p 2 ϵ ( x π ) \begin{equation} \begin{split} \nabla{\mathcal{L}_{SJC}} = \nabla_{I_\pi}{\log{p_{\sqrt{2}\epsilon}(x_\pi)}} \end{split} \end{equation} LSJC=Iπlogp2 ϵ(xπ)
其中 ∇ L S J C \nabla{\mathcal{L}_{SJC}} LSJC是 PAAS 得分。此外, 作者用 MSE 损失对输入视角做优化。为了进一步正则 NeRF 表示,作者对每个采样视点使用一个深度平滑损失,以及一个相邻视角的一致性损失对相邻的视图的外观变化做正则。

Dataset

作者使用 Objaverse 数据集来微调,它是一个由超过10万名艺术家制作的大规模开放的数据集,包括 80 万个 3D 模型。虽然它没有显式的类别标签,但涵盖了非常多样化、高质量的 3D 模型,具有丰富的几何信息和细粒度的纹理信息。对于数据集中的每个物体,随机采样 12 个相机外参矩阵 M \mathcal{M} M,这些矩阵指向物体的中心。使用光线追踪引擎渲染了12个视图。在训练时,对于每个物体,可以采样两个视图以形成图像对 ( x , x R , T ) (x,x_{R,T}) (x,xR,T)。可以很容易地从两个外参矩阵中派生出定义两个视角之间映射的相对视点变换 ( R , T ) (R,T) (R,T),这里 R R R是旋转矩阵, T T T是平移向量。

光线追踪是一种渲染技术,能够生成逼真的光照和阴影效果。

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

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

相关文章

Ubuntu distro环境搭建

0 Preface/Foreword 1 环境搭建 1.1 安装make工具 sudo apt install make 1.1.1 查看make版本 1.1.2 查看make使用方法 2 搭建交叉编译工具链 2.1 解压交叉工具链到指定路径 命令解释如下: sudo, 表示使用administrative privilegetar,…

3.达梦数据库基础运维管理

文章目录 前言一、基础数据库管理权限角色管理1.1 DM 系统管理员的类型1.2 角色责则分类 DM 数据库2.1 数据库评估2.2 状态和模式 参考内容 前言 本篇博客为上一篇博客的进阶版,主要针对常规达梦数据库的基本管理上面 一、基础数据库管理 权限角色管理 1.1 DM 系…

母带混音插件-Musik Hack Master Plan 1.59 WiN-MAC,长期更新持续有效

Musik Hack Master Plan 1.59 WiN-MAC 一款专业的音频母带制作流程,只需简单的控制就能制作出适合发布的母带: 水晶般清晰的响度、丰富的模拟饱和度、相位一致的成像、物理磁带模拟,以及修复和监听混音的额外工具。 一。Musik Hack Master P…

ViT算法解读——Transformer在分类任务中的应用

论文:An image is worth 16x16 words: Transformers for image recognition at scale 作者:Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg…

Golang | Leetcode Golang题解之第322题零钱兑换

题目&#xff1a; 题解&#xff1a; func coinChange(coins []int, amount int) int {var (dfs func(x int) int // x金额 最少硬币个数memo make(map[int]int) // 记忆化)dfs func(x int) int {//边界if x 0 {return 0} else if x < 0 {return math.MaxInt32}//记…

有限元和稀疏矩阵

对于大规模的有限元计算&#xff0c;系统的整体刚度矩阵是非常耗费内存的&#xff0c;以百万自由度为例&#xff0c;刚度矩阵K的大小为100万x100万&#xff0c;元素大小为双精度double&#xff0c;占用8 byte&#xff0c;那么K占用的内存为100万x100万x8 byte 8000G&#xff0…

盘点4款令人惊艳的视频剪辑工具

在这个短视频盛行的时代&#xff0c;每个人都可以成为视频内容的创作者。但是&#xff0c;在此之前&#xff0c;拥有一款适合自己的剪辑软件十分重要。今天我就来和大家来说一说我自己觉得比较好用的4款剪辑软件。 1、福昕剪辑神器 直达链接&#xff1a;www.pdf365.cn/foxit-c…

【验证码逆向专栏】某安登录流程详解与验证码逆向分析与识别

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未…

DedeCMS-V5.7.82-UTF8织梦管理系统漏洞

将靶场环境放到www目录下——访问/dedecms/uploads 安装程序 - 织梦内容管理系统 V5.7 UTF8SP2 同意协议——继续 继续 配置后——点击继续 进入后台 登录后台——填写用户名密码。 方法一&#xff1a;上传shell文件 后台——核心——附件管理——上传新文件。 访问/dedecms…

接口测试之python+rquest+unittest分层自动化框架

接口测试之接口po框架 一、新建一个项目 接口自动化框架设计实战&#xff1a; 第一包&#xff1a;config 案例&#xff1a; #登录接口 dl_url http://cms.duoceshi.cn/cms/manage/loginJump.do dl_d {userAccount: admin, loginPwd: 123456} dl_h "Content-Type:app…

若依分离版本部署流程—开启HTTPS访问。

目录 前言 一、申请证书 二、后端打包 三、前端打包 四、服务器部署 ① Redis启动 ② 运行Jar包 ③ 上传ssl证书到服务器 ④ Nginx配置前端部分 五、访问 前言 在若依分离版本的项目部署过程中&#xff0c;跟大多数前后端分离项目差不多&#xff0c;都是前后端分别打包到服…

鸿蒙(API 12 Beta2版)媒体开发【使用AudioRenderer开发音频播放功能】

音频播放开发概述 如何选择音频播放开发方式 系统提供了多样化的API&#xff0c;来帮助开发者完成音频播放的开发&#xff0c;不同的API适用于不同音频数据格式、音频资源来源、音频使用场景&#xff0c;甚至是不同开发语言。因此&#xff0c;选择合适的音频播放API&#xff…

Linux学习笔记:iptables命令管理

1、iptables简介 其实iptables只是Linux防火墙的管理工具而已&#xff0c;位于/sbin/iptables。真正实现防火墙功能的是netfilter&#xff0c;它是Linux内核中实现包过滤的内部结构。 语法格式&#xff1a;iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION -t&#…

xss漏洞(五,xss-labs靶场搭建及简单讲解)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言&#xff1a; 本文基于github上的xss-labs靶场以及PHP study进行操作。 一&#xff0c;靶场环境搭建。 1, 下载并解压到phpstudy的www目录下。 同前文一致&#xff0c;将文件…

精准防控,高效管理:AI智能分析网关V4区域未停留检测算法的介绍及应用

一、区域未停留AI检测算法概述 随着人工智能和计算机视觉技术的飞速发展&#xff0c;区域未停留AI检测算法作为一种重要的视频分析技术&#xff0c;逐渐在各个领域得到广泛应用。该算法通过高效处理视频流数据&#xff0c;能够实时分析并判断目标对象是否在预设区域内有足够的…

PSTNET阅读

ICLR2021 点云序列在空间维度上具有不规则性和无序性&#xff0c;但在时间维度上具有规律性和有序性。 现有的基于网格的卷积不能直接应用于原始点云序列的时空建模。 在时空序列下&#xff0c;基于网格和基于点的卷积对比。 创新点 1.首次尝试在原始点云序列建模中分解空间…

【Java 第九篇章】多线程实际工作中的头大的模块

多线程是一种编程概念&#xff0c;它允许多个执行路径&#xff08;线程&#xff09;在同一进程内并发运行。 一、多线程的概念和作用 1、概念 线程是程序执行的最小单元&#xff0c;一个进程可以包含多个线程。每个线程都有自己的程序计数器、栈和局部变量&#xff0c;但它们…

Python获取Excel内容

Python获取Excel内容 目录 Python获取Excel内容1.读取Excel并登陆2.下载Excel中图片 数据存储到列表3.上传到接口 需求&#xff1a;获取xlsx files目录下的所有Excel信息&#xff0c;并将数据打包成字典格式上传到接口 示例数据&#xff1a; 1.读取Excel并登陆 import os impo…

【算法】贪心算法

应用场景——集合覆盖问题 假设存在下面需要付费的广播台&#xff0c;以及广播台信号可以覆盖的地区。如何选择最少的广播台&#xff0c;让所有的地区都可以接收到信号 贪心算法介绍 1.贪心算法是指在对问题进行求解时&#xff0c;在每一步选择中都采取最好或者最优的选择 2…

智观察 | 行业赛道里的AI大模型

‍ “AI改变世界”被炒得热火朝天&#xff0c;结果就换来AI聊天&#xff1f; 实际上&#xff0c;在日常娱乐之下&#xff0c;AI正在暗暗“憋大招”&#xff0c;深入各行各业&#xff0c;发挥更专业的作用。 自动驾驶 最近“萝卜快跑”霸榜热搜长达一周&#xff0c;让无人驾…