首页 > 其他分享 >GS-LRM: Large Reconstruction Modelfor 3D Gaussian Splatting 论文解读

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

时间:2024-10-13 12:53:24浏览次数:10  
标签:Modelfor GS Splatting 渲染 特征 LRM 相机 图像

目录

一、概述

二、相关工作

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

标签:Modelfor,GS,Splatting,渲染,特征,LRM,相机,图像
From: https://blog.csdn.net/m0_60177079/article/details/142881506

相关文章

  • 如何在cnblogs的发文中使用自定义地址作为发文链接
    要知道在cnblogs中发表内容后其默认的链接地址都是一串数字的形式,比如本篇的默认地址:https://www.cnblogs.com/xyz/p/18461898但是为了让发表的内容更有个性化,于是我们可以指定发文内容的链接地址,也就是自定义发文内容的链接地址,具体方法为在发表时指定slug地址,具体如下:如果......
  • 记录运行thingsboard开源项目中遇到的一些问题(windows系统安装)
    前端是thingsVue,通过git可以拉取前端代码,然后要使用yarn或者npm来安装,如果没有yarn用npm来安装就行但是运行前端时,一直遇到’npm’既不是内部命令也不是外部命令的报错。我解决的办法非常粗暴,就是遇到这种报错时就把node.js给卸载了,然后再安装。每次卸载后再安装就能成......
  • AD9129板卡设计原理图:303-两路5.6Gsps 14bit DA FMC子卡
     一、板卡概述   FMC303可实现宽波段、双通道、14位、5.6GSPS(2.8gsps直接射频综合)DAC功能,时钟可采用内部时钟源(可选择锁定到外部参考),或外部提供的采样时钟。此外还为用户提供定制采样控制的触发器输入。FMC303在机械上和电气上符合FMC标准(ANSI/VITA 57.1)。该......
  • RepVGGBlock+GSConv+Bifpn+c2fca(模块融合)改进yolo5
    参考论文:ExploringtheClose-RangeDetectionofUAV-BasedImagesonPineWiltDiseasebyanImprovedDeepLearningMethod 首先我们来介绍一下该文章使用的改进模块接着再来实现它 我们查看论文提出的repvggblock1和repvggblock2有什么区别: 可以看到只是一个bn层......
  • Gstreamer系列(2):gstreamer的视频编解码及不同平台编解码插件
    GStreamer是一个强大的多媒体框架,可以用于视频编码、解码和处理。视频编码的基础知识涉及到如何将原始视频数据转换为压缩格式以便于存储和传输。在GStreamer中,视频编码可以通过软编码(软件编码)和硬编码(硬件编码)两种方式实现。以下是GStreamer视频编码的基本概念,涵盖了这两......
  • 设计方案:FMC303-两路5.6Gsps 14bit DA FMC子卡
    一、板卡概述    FMC303可实现宽波段、双通道、14位、5.6GSPS(2.8gsps直接射频综合)DAC功能,时钟可采用内部时钟源(可选择锁定到外部参考),或外部提供的采样时钟。此外还为用户提供定制采样控制的触发器输入。FMC303在机械上和电气上符合FMC标准(ANSI/VITA 57.1)。该卡具有多引脚连......
  • Linux的xargs 命令
    一、标准输入与管道命令Unix命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数。$cat/etc/passwd|greproot上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令(cat/etc/passwd)的标准输出转换为标准输入,提供给右侧命令(greproot)作为参数。因为grep命令可以接受标......
  • SpingSecurity认证流程与使用
    1、Security的本质:SpringSecurity的本质就是一个过滤器链,内部包含了提供各种功能的过滤器,基本案例中的过滤器链如下图所示(仅展示了部分核心过滤器)UsernamePasswordAuthenticationFilter:负责处理我们在登陆页面填写了用户名密码后的登陆请求。基本案例的认证工作主要有它负责E......
  • C++编译并运行后出现Process finished with exit code 139 (interrupted by signal 11
    问题描述:        代码运行意外终止,报错信息为Processfinishedwithexitcode139(interruptedbysignal11:SIGSEGV)CMakeList文件如下:cmake_minimum_required(VERSION3.26)project(SLAM)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIRED......
  • Kingst 金思特 LA5016逻辑分析仪 简单入门使用
    前言:这里我仅简单介绍一下Kingst金思特LA5016逻辑分析仪简单入门使用这个软件的快熟上手使用,有补充的话后续在跟新。购买硬件和安装相关软件。软件直接官网下载即可连接如下:。需要说明的是不仅仅只是LA5016,软件同时也兼容其他版本。使用体验:这个Kingst金思特LA5016逻......