【三维重建】FastScene:基于GS的文本驱动室内场景生成

代码:https://github.com/Mr-Ma-yikun/FastScene
论文:https://arxiv.org/abs/2405.05768
来源:中山大学;广东省消防科学与智能应急技术重点实验室


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


摘要

提示:这里可以添加本文要记录的大概内容:
  文本驱动的3D室内场景生成拥有广泛的应用,从游戏和智能家居到AR/VR应用。快速和高保真度的场景生成对于确保用户友好的体验至关重要。然而,现有的方法的特点是漫长的生成过程,或需要复杂的手动规范的运动参数,这给用户带来了不便。这些方法往往依赖于 narrow-field viewpoint iterative generations,影响了全局一致性和整体场景质量。为了解决这些问题,我们提出了FastScene,一个快速和更高质量的3D场景生成框架,同时保持场景的一致性。具体来说,给定文本提示,生成全景并估计其深度(全景包含整个场景的信息,并显示明确的几何约束)。为了获得高质量的新视图,我们引入了粗糙视图合成(CVS)和渐进式新视图修复(PNVI)策略,确保了场景的一致性和视图质量。随后,我们利用多视图投影(MVP)形成透视图,并应用三维高斯溅射(3DGS)进行场景重建。综合实验表明,快速场景在生成速度和质量上都优于其他方法,具有较好的场景一致性。值得注意的是,只有在文本提示的引导下,FastScene可以在短短15分钟内生成一个3D场景。

一、前言

   3D模型在视频制作、游戏、AR/VR等领域都有广泛的应用。然而,生成高质量的3D模型通常需要专业的设计师用相当长的时间使用专门的软件,这对于那些寻求快速3D模型生成的人来说是不方便的。生成模型的发展使得文本到3d对象的生成[Poole等人,2022],[Lin等人,2023]成为可能,并且令人印象深刻。然而, 三维场景的生成仍然面临着重大的挑战,需要大规模的场景重建,多视图图像,以及保证场景的真实性和一致性

  最近,一些工作试图解决3D场景生成的挑战。 Set-the-Scene[Cohen-Bar,2023]应用来自文本提示和3D对象代理的全局-局部训练,同时生成可控的场景。然而,由于缺乏相应的几何形状,生成的场景的质量和分辨率都不令人满意。 SceneScape[Fridman,2024]产生 long-range视图,产生不同的风格。然而,由于inpaint和深度估计误差的积累,它的视图质量随着时间的推移而下降。Text2Room[H¨ollein,2023]和Text2NeRF[Zhang,2024]逐渐产生视角的新观点。然而,它们的增量本地操作很难确保场景的一致性和一致性。CtrlRoom[Zhangetal.,2023]微调可编辑全景生成,然后进行网格重建。然而,Ctrl-Room倾向于在有限的场景质量的情况下压平三维模型,因为它很难生成多视图图像。

  作为三维表示技术之一,辐射场方法,如神经辐射场(NeRF)[Mildenhall,2020],已经取得了重大突破。由于大多数基于nerf的方法都存在渲染速度较慢的问题[米尔登霍尔等人,2020],[Barron,2022],渲染过程加速成为一个重要的问题。最近,三维高斯溅射(3DGS)[Kerbl ,2023]在高质量的渲染速度方面取得了成功。然而,典型的3DGS只使用常规图像作为输入。它在处理全景图时面临着挑战,这是很难用现有的运动结构恢复SFM[Snavely,2006]方法来处理。

  为了解决上述问题,我们提出了一种新的文本到3d场景框架,称为FastScene,它旨在快速生成高质量的一致和真实的场景。如图1所示,我们的方法主要包括三个阶段。1)在第一阶段,给定一个文本提示,我们利用预训练的Diffusion360生成一个全景图 [Feng et al.,2023]。选择全景是因为它能够捕捉全局信息并表现出明确的几何约束,这有利于克服透视视图的场景不一致性问题。然后,采用EGformer[Yun,2023]进行全景深度估计 。2)在第二阶段,我们提出了粗略视图合成(CVS),为特定的相机视角生成带有孔洞的新全景视图 。由于大距离新视图产生导致大量的孔,不利于inpaint,我们建议在较小距离内,渐进式子填充新视图(PNVI)的孔洞 。然而,实验发现,由于累积的失真误差,直接inpaint全景图会导致边缘模糊和失真。相反,我们建议在cubemap中进行内绘制,并利用 Cube-to-Equirectangular(C2E)来获得相应的修复的全景图 。然后,我们将inpainted的全景中的非孔洞的像素,替换为原始值。

在这里插入图片描述

  此外,我们合成了一个与孔洞分布一致的数据集,并重新训练AOT-GAN [Zeng等人,2022]用于inpaint。3)在获得多全景后,采用3DGS进行快速场景重建。然而,最初的COLMAP[申伯格和Frahm,2016]只支持透视视图,这使得从全景图中获得点云具有挑战性。因此,我们引入了多视图投影(MVP),它将全景图划分为透视图,支持输入3DGS进行重建。MVP作为一个即插即用的模块可以很容易地应用,而不需要额外的计算资源。大量的实验证明,我们的方法可以快速生成高质量的三维场景,同时确保一致的场景。

  1. 提出了一种新的文本到三维室内场景框架的快速场景,能够实现快速和高质量的场景生成,同时确保场景的一致性。此外,根据文本提示,无需预先设计复杂的摄像机参数或运动轨迹,这使得FastScene成为一个用户友好的场景生成范式。

  2. 我们提出了一种新的全景合成方法PNVI,采用CVS生成带孔的新视图,并进行精确可控的渐进式重绘生成精细的视图。此外,为了提高内涂质量,我们合成了一个基于大尺度分布的球面掩模数据集。

  3. 是第一个从单个全景图中解决全景3DGS的人,并且所提出的FastScene对现有的全景数据进行重建具有很强的适应性


提示:以下是本篇文章正文内容,下面案例可供参考

二、相关工作

  

2.1 文本驱动的三维场景生成

  最近,3D场景的生成已经得到了相当多的关注。设置场景[Cohen-Bar等人,2023]引入了一个基于代理的全局-局部框架来合成可控的3D场景,同时启用不同的场景编辑选项。但是,它在没有相应几何图形的生成场景的质量和分辨率方面存在不足。而场景景观[弗里德曼等人,2024]通过引入预先训练的文本到图像模型生成一致的视图[Rombach等人,2022],并具有生成各种风格的场景的能力。然而,场景景观的视图质量依赖于几何先验,并且由于内部绘制和深度误差的积累,其视觉质量会随着时间的推移而减少。最近,文本2房间[H¨22等人,2023]和文本2NeRF[Zhang等人,2024]都依赖于增量框架,在每幅图像的基础上生成新的视角。然而,它们的增量局部操作很难保证场景的一致性和一致性。随后,Ctrl-Room [Fang等人,2023]提出对文本输入进行编码,并将场景代码转换为3D边界框进行编辑。随后,它通过微调控制网生成全景图[Zhang等人,2023],并通过Possion重建[Kazhdan等人,2006]和mvs纹理[Waechter等人,2014]重建网格。然而,Ctrl-Room难以生成高质量的3D模型,并且由于生成的视图数量有限,它倾向于使3D模型变平。

2.2 文本驱动的全景图像生成

  与2D图像不同,全景图覆盖了360°×180°的视场,它提供了更多的3D场景信息。文本2Light[Chenetal.,2022]通过多阶段自回归生成模型从文本输入中合成全景图像。但是,它忽略了全景图的边界连续性,从而产生了一个开环的内容。MVDivadusion[Tang等人,2023]通过微调预先训练的文本到图像扩散模型生成高分辨率全景图。然而,工件通常出现在“天空”和“地板”视图上,这降低了生成场景的真实性。倾斜扩散[Wang et al.,2024b]对全景图的左右两侧进行裁剪,以保持场景的连续性。然而,接缝处的裂缝仍然很明显。扩散360[Fengetal.,2023]提出了一种圆形混合策略来保持几何连续性,从而生成高分辨率的边界连续全景图。

2.3 新视角合成

  新观点合成是一个重要的流行领域。早期的方法依赖于多视图图像,并试图结合来自外极性几何的知识,在不同的视图之间进行平滑的插值[Chen和威廉姆斯,1993],[Debevec et al.,1996]。一些方法从一些图像中合成新的视图[Sajjadi等人,2022],[Mirzaei等人,2023]。相比之下,[Gu等人,2023],[Shen等人,2023]允许从单个图像中生成新的视图。

  在新观点合成方面的一个重大突破是NeRF[米尔登霍尔等人,2020]及其衍生著作[Barron等人,2021],[Barron等人,2022],[Chen等人,2023]。大多数基于辐射的方法的渲染速度是缓慢的,加速渲染成为一个重要但具有挑战性的问题,具有代表性的工作,如即时-NGP[M¨uller等人,2022]和3DGS [Kerbl等人,2023]。一些基于nerf的作品[Wang et al.,2024a],[Chen et al.,2024]试图综合全景新颖的视图。然而,由于SFM由于其独特的结构而难以处理全景图[Snavely et al.,2006],因此很难利用原始的3DGS进行全景图渲染。

三、method

  如图1,给定文本提示 P P P,我们首先使用Diffusion360生成相应的全景图 S 0 S_0 S0,然后使用EGfromer[Yun等人,2023]来估计深度图 D 0 D_0 D0。然后,给定一个新的相机姿态 P n P_n Pn,我们进行CVS,得到带孔洞的损坏的全景图 S n ˉ \bar{S_n} Snˉ。为了填补这些孔洞,使用PNVI逐步重绘透视的cubemap视角 S n i ˉ \bar{S_{ni}} Sniˉ(i = 0,1,…5),而不是直接重绘全景图。随后,将这些干净的cubemap进行等距离的重投影,以获得干净的全景图。然后将绘制全景图中的非孔像素替换为原始值,得到新的全景 S n S_n Sn。类似地,多次迭代PNVI将会得到许多新颖的干净的全景视图。由于COLMAP不支持全景输入,我们使用MVP来生成相应的透视图,然后使用3DGS来实现3D场景重建。

在这里插入图片描述

3.1 文本驱动的全景图像生成和CVS

  与透视图相比,全景图的一个关键几何特征是边界的连续性。此外,全景图包含了关于整个场景的信息,并显示了显式的几何约束,这有利于我们的后续处理。因此,我们利用扩散360进行文本到全景的生成,它采用混合策略(blending strategy) 来保持几何连续性。然后,我们使用EGfromer估计深度图来获取场景的空间信息。然后,我们提出CVS在给定的相机姿态下获得一个新的全景视图,如图2所示。根据球形全景图上的等距投影理论,将一幅1024×512的二维图像投影到一个球体上,其纬度范围为180°,经度范围为360°。纬度角 θ a θ_a θa和经度角 ϕ a ϕ_a ϕa的计算如下( x a x_a xa y a y_a ya表示坐标系a的图像坐标,W和H表示全景图的宽和高):

在这里插入图片描述

  然后利用三角变换,得到球形基坐标(spherical basis coordinates):

在这里插入图片描述

  将深度d乘以三维坐标 a x a_x ax a y a_y ay a z a_z az来初始球坐标 C a C_a Ca:

在这里插入图片描述

  给定一个新的相机姿态Pn,我们将它作为新的球坐标系n的原点,并从新的原点Pn中减去原始坐标Ca,得到新的球坐标:
在这里插入图片描述

  然后,我们将坐标 C n C_n Cn重新投影到新的坐标系n( θ n θ_n θn ϕ n ϕ_n ϕn表示新视图的纬经度, x n x_n xn y n y_n yn表示坐标系n的图像坐标):

在这里插入图片描述

  将方程(1)到(11)总结为从( θ n θ_n θn, ϕ n ϕ_n ϕn)到( x n x_n xn, y n y_n yn)的映射F:

在这里插入图片描述

  因此,我们只需要确定映射的像素( x n x_n xn, y n y_n yn)是否位于全景图中。如果它们在里面,我们保持正常的RGB值,否则我们将它们设置为值为255的孔洞:

在这里插入图片描述

  相应地,我们可以得到inpaint的掩模图像 M n M_n Mn(正常区域值为0,不可见值为1)。

3.2 渐进式的新视图 Inpainting

  CVS获得了带有孔洞的多视角全景图。由于缺乏带mask的室内全景数据集,来训练inpaint网络,构建了一个新的数据集(4.2节)。直接的全景图inpaint时,随着运动距离的增加,过多的虚假阴影表现在全景图的外围(a plethora of spurious shadows manifested along the peripheries of the panorama)。因此,利用E2C从一幅全景图中获得6幅cubemap,并使用预训练的AOT-GAN进行cubemap的inpaint。然后,利用C2E形成全景图。最后,我们将绘制全景图中的非孔像素替换为原始值,得到新的全景 S n S_n Sn

  然而,当直接将相机移动到大的位姿时,孔洞与图像的面积比变得广泛,增加了inpaint的困难。本文提出了一种渐进inpaint模式,如图3,它允许在大型相机位姿中进行inpaint。具体来说,假设我们沿x轴移动0.33米的距离,新视图图像的孔与图像面积比增加到64.3%,这意味着一半以上的图像有孔,如表1所示。因此,我们将长距离划分为小距离移动(如每步0.02米),每一步,孔洞与图像的比率只有15%。通过从 p 0 p_0 p0 逐步移动到 P n P_n Pn,我们可以在终点上获得一个干净的视图。

在这里插入图片描述

3.3 全景3D Gaussian Splatting

  COLMAP中关于透视图的算法在面对全景透视图时只表现出不足,导致了无序的重建结果。如图4a所示,假设相机沿x、y和z轴移动,采用原始的COLMAP不能产生准确的点云和相机姿态。这源于全景图中固有的独特的扭曲和复杂性,使得传统的SFM的应用在努力跨不同视角对齐空间信息方面非常困难。

  引入MVP来解决上述问题:给定尺寸 W × H W×H W×H 的全景图 S S S,需要得到 n n n个尺寸为R×R的透视图像( V 1 、 V 2 、 . . . , V n V_1、V_2、...,V_n V1V2...Vn)。首先计算每个相机的旋转矩阵 R i R_i Ri。对于每个透视视图 V i ( 1 ≤ i ≤ n ) V_i(1≤i≤n) Vi(1in),我们定义了一个投影映射函数 P ( S , V i ) P(S,V_i) P(SVi),它将全景图的像素映射到透视视图。通过投影全景像素 ( m , q ) 、 ( 0 ≤ m < W , 0 ≤ q < H ) (m,q)、(0≤m<W,0≤q<H) (mq)(0m<W0q<H),可以获得新的投影坐标 ( j , k ) 、 ( 0 ≤ j , k < R ) (j,k)、(0≤j,k < R) (j,k)(0jk<R。然后,我们将多视角透视图像发送到COLMAP,以获得3DGS所需的点云。如图4b所示,损失函数L定义为L1和LD−SSIM的加权和(λ = 0.2.):

在这里插入图片描述
在这里插入图片描述

四、实验

4.1 实施细节

  PyTorch框架,预训练的Diffusion 360和EGformer进行全景生成和深度估计。我们在合成数据集上重新训练AOT-GAN [Zeng等人,2022],如第4.2节所述。我们选择CLIP评分、自然图像质量评估器(NIQE)和盲/无参考图像空间质量评估器(BRISQUE),以无监督的方式评估渲染质量。在一个具有49G内存的NVIDIA RTX A6000 GPU上生成一个完整的场景大约需要15分钟。具体来说,全景图生成需要10秒,PNVI过程大约需要2分钟,获取3DGS训练数据大约需要3分钟,场景生成需要10分钟

4.2 全景Inpainting 数据集

  由于缺少具有mask 分布的全景数据集,因此必须生成相应的数据集。具体来说,我们选择了合成数据集Structured3D[Zhengetal.,2020],其中包含21k个逼真的全景场景。我们选择了14k张更真实的完整场景的图像。随后,对于每个全景图,我们使用方程(12)到(14)生成16种mask,对应于坐标轴上的8个运动方向,每个方向的两个运动单位分别为0.02m和0.04m。然后,我们对每个全景图和掩模图像进行E2C投影。最后,总共有84k个透视RGB图像和1344k个掩模。在获得数据集后,我们重新训练AOT-GAN,所有训练和测试大小设置为512×512。

  

  

  

  

  

  

  

  

  

  

  

  

  







d \sqrt{d} d 1 8 \frac {1}{8} 81 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ
ϕ \phi ϕ


Cubemap(立方体纹理)

在这里插入图片描述

在这里插入图片描述

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值