GS-LRM: Large Reconstruction Modelfor 3D Gaussian Splatting 论文解读

news/2024/10/22 3:20:32/

目录

一、概述

二、相关工作

1、多视图的三维重建

2、前馈重建

三、LRM

1、编码器

2、解码器

3、NeRF渲染

四、GS-LRM 

1、输入处理

2、Transformer

3、损失函数

五、实验

六、局限


一、概述

        该论文提出了一种利用稀疏输入图像高效预测3D高斯原语的方法,也是第一个基于Transformer架构以及大量数据集生成通用,可扩展的,高效的3DGS大型重建模型的方法GS-LRM,他的前身是LRM。

(1)将输入图像分块为patch tokens,并且通过自注意力和MLP层的transformer来处理,最终回归3DGS原语参数。

(2)可以应用于不同数据集上训练处理物体和场景捕获,并且达到SOTA水平。

二、相关工作

1、多视图的三维重建

        以往的三维重建包括稀疏视角下的重建SfM和密集场景下的重建MVS,都是基于点云的且渲染效果不佳。

        近期深度学习发展,也诞生了基于深度学习的MVS,并且运用前馈的方式达到高质量渲染。

        对于该论文,最重要的点就是通过多视角的transformer来生成3DGS原语,在保证渲染质量的同时,满足更大的数据量,这也是以往使用成本体积方法的一大挑战。

2、前馈重建

        以往的前馈重建考虑基于CNN的方法使用point splatting或者不透明度生成的方式来估计点或者多视角图像(MPIs),而我们采用GS splatting的方式,相当于结合了这两种方法,并且进行又一次创新。

        LRM方法基于三平面NeRF作为场景表示,存在分辨率受限和渲染效率低问题。

        PixelSplat使用epipolar-based的方法,更加关注场景级别重建,LGM使用U-Net的方法更加关注对象的生成。

        该论文直接用一个通用的Transformer来回归3DGS原语,密集的自注意力层更为有效的学习多视角和一般的重建先验(深度,光追),渲染效果也优于epipolar-based和U-Net-based的并行工作。

三、LRM

        LRM网络架构分为三个部分:编码器(单图像->图像特征),解码器(图像特征->三维三平面空间表示),NeRF渲染(三平面表示->渲染神经辐射场)

1、编码器

        编码器使用一个自蒸馏训练的模型DINO,用来学习图像中显著内容的结构和纹理,相比于ResNet,DINO能够表示更为精细的结构和纹理信息;相比于使用普通的ViT或者CLIP一类聚合特征的方法,LRM使用了整个特征序列,保留序列信息。

        DINO模型采用ViT-B/16架构,将图像编码为1025个token,每个token为32*32*768,图像特征为h_i

2、解码器

        首先我们处理相机特征为c,相机特征为一个20维参数向量,包括4*4相机外参矩阵flatten后的16维,相机焦距2维,相机主点2维。之后将相机特征引入一个MLP中映射为一个高维相机嵌入\tilde{c}

        然后将相机嵌入\tilde{c}与图像特征h_i进行concat,得到三平面隐藏特征f^{init},或者叫可学习的嵌入,通道为1024维。

        将f^{init}输入到解码器,解码器由三部分构成,交叉注意力、自注意力、MLP三部分,其中交叉注意力与原始图像特征进行交叉注意运算,经过每一个部分都要使用高维相机嵌入\tilde{c}对隐藏特征f^{init}进行自适应归一化操作,来调制隐藏特征。最终保证输出编码器的特征为1024维特征。

3、NeRF渲染

        将编码器的输出经过反卷积+上采样,得到三平面特征,并通过MLP回归得到NeRF渲染参数,通过体渲染得到3D模型。

四、GS-LRM 

        GS-LRM相较于LRM最大的提高在于,不再使用原有的encoder-decoder框架,而是使用完全基于transformer的架构。

1、输入处理

        对于同一物体,每次使用多视角图片叠加Plucker光线作为输入(一般是四视角),对于图片的处理类似于ViT,将图片进行进行9通道的拆分,然后将9通道进行concat后放入线性层升维到高维特征。

2、Transformer

        对于输入图像张量引入L层的Transformer模块,不断重复Transformer模块,输出特征T_{ij}^L

        将特征输入到线性层,回归输出每个像素的12个高斯参数,包括3维RGB,3维尺度变化,4维旋转四元数、1维不透明度、1维光线距离。

        利用12个高斯参数对每个像素进行渲染,得到Merged Gaussians完整的3DGS模型。

3、损失函数

        损失函数使用MSE和基于VGG的LPIPS。

五、实验

        对于场景数据论文使用Objaverse数据集训练,并使用Amazon Barkeley数据集和Google数据集进行推理,对于对象数据集完全依赖于Realstate10K。

        在场景数据集(ABO和GSO数据集)和对象数据集(RealState10k)上都取得了SOTA性能。

六、局限

        局限包括三个部分:分辨率限制,相机参数已知,无法估计不可见部分而出现重建幻觉。

参考1:LRM: Large Reconstruction Model for Single Image to 3D 

参考2:GS-LRM: Large Reconstruction Model for 3D Gaussian Splatting


http://www.ppmy.cn/news/1538385.html

相关文章

Qt C++设计模式->中介者模式

中介者模式(Mediator Pattern)是一种行为型设计模式,定义了一个对象用于封装一系列对象之间的交互。中介者使得对象之间不再需要显式地相互引用,减少了对象之间的依赖关系,从而使系统更加松散耦合,并且可以…

前端框架对比与选择:详尽分析

1. 引言 随着互联网技术的飞速发展,前端开发技术也得到了迅猛提升。无论是大型企业还是中小型开发团队,使用前端框架来简化开发过程、提升开发效率已成为一种普遍现象。如今,市场上有众多的前端框架可供选择,如React、Vue.js、Angular等,如何在这些框架中进行选择成为了开…

牛客编程初学者入门训练——BC8 牛牛的字符菱形

BC8 牛牛的字符菱形 描述: 牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。 输入描述: 输入一个char类型字符 输出描述: 输出一个用这个字符填充的对角线长5…

【ShuQiHere】 K-means 聚类算法详解:公式、代码与实战

🧠 【ShuQiHere】 🎓 目录 📜 K-means 简介K-means 工作原理理论基础 3.1 目标函数3.2 距离度量 K-means 算法步骤 4.1 具体代码实现 K-means 的优缺点如何选择正确的 K 值K-means 的改进与变体案例分析:如何使用 K-means 聚类&…

HTML,JavaScript,PHP,CSS,XML,SQL的区别和联习

HTML超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦。它定义了网页内容的含义和结构。除 HTML 以外的其他技术则通常用来描述一个网页的表现与展示效果(如 CSS),或功能与行为(如 JavaScript&…

SpringBoot 集成GPT实战,超简单详细

Spring AI 介绍 在当前的AI应用开发中,像OpenAI这样的GPT服务提供商主要通过HTTP接口提供服务,这导致大部分Java开发者缺乏一种标准化的方式来接入这些强大的语言模型。Spring AI Alibaba应运而生,它作为Spring团队提供的一个解决方案&…

【WebGIS】Cesium:Viewer 初始化、地图加载与基础交互

Cesium 是一个功能强大、基于 WebGL 的开源三维地球引擎,它允许用户在浏览器中渲染高性能的三维地图和地球。本文将带领新手入门 Cesium,学习如何初始化 Cesium Viewer,加载地图和地形,了解地球的基础交互操作,并掌握如…

在Pycharm中安装Cv2

在PyCharm中安装cv2(即OpenCV库),你可以使用pip包管理器。以下是步骤和示例代码: 1.打开PyCharm。 2.确保你的项目解释器已经设置。在PyCharm的右下角可以看到当前使用的解释器。 3.点击解释器名称(通常是解释器路径…