只需一行代码提高3DGS重建质量!随机初始化新SOTA

论文标题:

Relaxing Accurate Initialization Constraint for 3D Gaussian Splatting

论文作者:

Jaewoo Jung, Jisang Han, Honggyu An,
Jiwon Kang, Seonghoon Park and Seungryong Kim

导读:

3DGS在新视角合成和三维重建方面展现了令人印象深刻的性能。但是其在很大程度上依赖于SfM方法获得的精确初始化。当使用随机初始化的点云进行训练时,3DGS通常无法保持其生成高质量图像的能力,其PSNR性能通常会下降4-5分贝。本文提出了一种名为RAIN-GS的新型优化策略,成功地从随机初始化的点云训练高质量的3DGS。©️【深蓝AI】编译

1. 问题简介

3DGS在SfM技术难以收敛的场景中时(如具有对称性、镜面属性和无纹理区域的场景,以及稀疏的可用视角),难以得到较好的初始化点云。

这时如果使用随机初始化的点云进行训练,其性能会大幅下降。由于3DGS极度依赖于初始点云,即使可以通过外部传感器或预校准摄像机获得摄像机姿态,SfM也成为了难以避免的前提条件。

本文基于对SfM和随机初始化点云之间的差异的分析,提出了一种名为RAIN-GS的新型优化策略,成功地引导3DGS先学习粗略分布,然后鲁棒地学习其余的高频成分。

在这里插入图片描述
图1|本文简单策略的有效性。左图和右图分别显示了使用密集-小方差DSV随机初始化(原始 3DGS 使用的随机初始化方法)训练的 3DGS和使用文章的方法训练的 3DGS 的结果。从 3DGS 过渡到文章的方法只需要稀疏-大方差(SLV)随机初始化和渐进高斯低通滤波©️【深蓝AI】编译

2. 方案提出

本工作首先在渲染图像的频域分析信号,并发现SfM初始化可以解释为从真实分布的粗略近似开始。

其次,在3DGS中,这个粗略近似作为优化过程中后续改进的基础,防止高斯陷入局部最小值。基于这一分析,文章进行了一个简化的1D回归任务的玩具实验,以确定引导高斯从零开始稳健学习真实分布分布的基本要素。实验揭示,最初学习真实分布的粗略近似(低频成分)对于成功的重建至关重要。研究者发现,类似于SfM初始化,最初学到的粗略近似在学习分布的高频成分时起到了引导作用。

3. 文章动机

3.1 3DGS中的SfM初始化

为了解3DGS在不同点云初始化条件下的巨大性能差距,本文首先分析了使用 SfM 点云进行训练时的表现。SfM提供了带有颜色和位置粗略信息的稀疏点云。3DGS有效地利用了这一输出,根据点云的位置和估计的颜色初始化高斯参数 μ i μ_i μi和球谐波(SH)系数。仅经过10个迭代(占总训练迭代数的0.03%),渲染结果就已显示出比较可观的质量并且与真实图像的较高相似性。

在这里插入图片描述
图2|3DGS中的SfM初始化分析©️【深蓝AI】编译

如图2所示,(a)上图是GT图像,下图是3DGS仅经过10步SfM初始化后渲染的图像。可以观察到,渲染后的图像已经粗略接近GT图像。为了在频域上分析图像,从图像中随机取样一条红色标记的水平线。(b)图中显示了沿此线的像素强度值,GT图像显示为橙色,渲染图像显示为蓝色。(c)图显示了(b)中频率分量的大小。离x轴中间较远的频率代表高频分量,可以观察到SfM提供了真实分布的粗略近似值。

由于新视图合成的目标是构建场景的三维分布,因此实际上是对真实分布的低频和高频成分进行建模。

而在NeRF中是利用位置编码来促进高频成分的学习。高频成分的过快收敛使得NeRF在低频成分欠拟合,从而NeRF过度拟合高频 伪影。之前的研究采用了频率退火策略,引导NeRF先充分探索低频成分。

由此观之,从SfM初始化开始可以理解为遵循了类似的过程(SfM提供了低频成分)。

3.2 3DGS 中的密集随机初始化

对于无法从SfM获取初始化点云的情况,原始3DGS提出了一种密集-小方差(DSV)随机初始化方法。他们在一个三倍于摄像机边界框大小的立方体内随机采样密集点云。由于初始协方差被定义为到三个最近邻近点的平均距离,这就导致了初始化具有小方差的密集3D高斯。

作者在简化的一维回归任务中进行了一次玩具实验,以检验DSV初始化如何影响优化过程。

在这里插入图片描述
图3|分析不同初始化方法的玩具实验©️【深蓝AI】编译

图3展示了作者使用一维高斯集合预测目标分布的玩具实验结果,实验从不同的初始化方法开始。密集小方差(DSV)和密集大方差(DLV)初始化1,000 个一维高斯,其中DLV通过在初始方差上添加s来初始化大方差。稀疏小方差(SLV)初始化15个一维高斯,并在初始方差中添加相同的s。我们可以观察到DSV初始化时高频成分收敛过快,DLV初始化解决了这一问题,但由于波动而无法收敛。SLV初始化解决了这两个问题,首先学习了低频成分,同时也收敛成功地模拟了目标分布。

这些观察结果凸显了以下关键点:

①从更广泛的区域(通过大方差实现)学习是3DGS学习低频成分的必要条件;

②密集初始化仍会导致不稳定和收敛问题。

4. 方法详解

4.1 稀疏-大方差(SLV)初始化

文章提出了一种稀疏-大方差(SLV)初始化方法。稀疏性减少了整个优化过程中的波动,而大方差则确保了初始时对低频分布的关注。由于3DGS的初始协方差是根据三个近邻的距离定义的,稀疏的初始化会导致更大的初始协方差,从而鼓励每个高斯对场景中更广的区域进行建模。在初始化 N N N个点时,原始3DGS的DSV初始化最初选择 N > 100 K N>100K N>100K。而降低该值可显著提高性能,因为其将初始重点放在低频成分上,从而产生更少的高频伪影。即使初始化极其稀疏( N = 10 N = 10 N=10),这一策略也会变得更加有效,从而验证了文章提出新颖的SLV初始化方法的有效性。

在这里插入图片描述
图4|不同初始化方法的可视化。该图展示了不同初始化方法的效果。(a)GT图像。(b)SfM初始化点云。©由于高斯之间的距离较短,初始协方差较小的密集-小方差(DSV)随机初始化。(d)稀疏-大方差(SLV)随机初始化,由于高斯之间的距离较宽,初始协方差较大©️【深蓝AI】编译

4.2 渐进式高斯低通滤波控制

尽管文章提出的SLV初始化方法很有效,但作者发现在经过多个密集化步骤后,3DGS的数量呈指数级增长,显示出与DSV初始化类似的崩溃趋势。为了对3DGS进行正则化处理,以便在训练的早期阶段充分探索低频成分,作者提出了一种新颖的渐进式控制方法,即在渲染阶段使用高斯低通滤波器。

在这里插入图片描述
图5|低通滤波器的可视化效果。该图显示了低通滤波器的可视化效果。如图(b)所示,Splatting后的二维高斯与低通滤波器的卷积扩大了Splatting的区域,从而使高斯影响的区域大于图(a)所示的Splatting区域©️【深蓝AI】编译

为了确保渲染时GS至少覆盖一个像素,原始论文通过在协方差的对角线元素上添加一个小值来扩大二维高斯的尺度,如下所示:

G i ′ ( x ) = e − 1 2 ( x − μ i ′ ) T ( Σ i ′ + s I ) − 1 ( x − μ i ′ ) G_i^{\prime}(x)=e^{-\frac{1}{2}\left(x-\mu_i^{\prime}\right)^T\left(\Sigma_i^{\prime}+s I\right)^{-1}\left(x-\mu_i^{\prime}\right)} Gi(x)=e21(xμi)T(Σi+sI)1(xμi)

在原始实现中,3DGS投影至二维后,二维高斯 G i ′ G_i^{\prime} Gi的面积近似为一个圆,其半径为二维协方差矩阵加上了0.3倍单位矩阵scale,即 ( Σ i ′ + s I ) \left(\Sigma_i^{\prime}+s I\right) (Σi+sI)

在文章的方法中,在训练的早期阶段控制上述的 s s s来规范高斯覆盖广阔的区域,并逐步地从更局部的区域学习细节部分。具体而言,由于 s s s值可确保投射的高斯区域大于 9 π s 9 \pi s 9πs,因此定义了 s = H W / 9 π N s=H W / 9 \pi N s=HW/9πN的值,其中 N N N表示高斯的数量(在迭代过程中可能会发生变化), H H H W W W分别表示图像的高度和宽度。

5. 实验结果

在这里插入图片描述
表1|Mip-NeRF360数据集的定量比较©️【深蓝AI】编译

如表1所示,本文将RAIN-GS方法与以前的方法进行了比较,包括原始3DGS中描述的随机初始化方法(DSV)。文章报告了PSNR、SSIM和LPIPS,并将每个单元分为最佳、次佳和三佳。需要注意的是,由于3DGS是唯一一种使用SfM点云的方法,因此这些值仅供参考。

在这里插入图片描述
表2|Tanks&Temples和Deep Blending数据集的定量比较©️【深蓝AI】编译

在这里插入图片描述
图6|Mip-NeRF360数据集的定性结果©️【深蓝AI】编译

在这里插入图片描述
图7|Tanks&Temples和Deep Blending数据集的定性结果©️【深蓝AI】编译

在这里插入图片描述
表3|对核心部件的消融©️【深蓝AI】编译

在这里插入图片描述
表4| N N N的影响©️【深蓝AI】编译

在这里插入图片描述
表 5|特定场景下的Few-shot训练定量对比©️【深蓝AI】编译

6. 总结

在这项工作中,作者引入了RAIN-GS,使得即使是随机初始化的点云,也能使 3DGS 渲染出高质量的图像。通过结合稀疏-大方差(SLV)随机初始化和渐进式高斯低通滤波器控制,成功地引导三维高斯首先学习低频成分,并且利用实现证明了这一点对于优化的重要性。通过全面的定量和定性比较评估了RAIN策略的有效性RAIN-GS有效地消除了对从运动结构(SfM)中获得的精确点云的严格依赖,为无法获得精确点云的场景中的3DGS开辟了新的可能性。

编译|西兰花

审核|Los

移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSH 远程登录系统和远程拷贝

文章目录 目录 文章目录 前言 一.SSH的基本用法 SSH基本用法: SSH无密码登录 二.SSH安全设置 三.SSH限制用户 前言 很多时候服务器并没有服务器,我们也不能每次都通过控制台去管理服务器,这时候就需要远程登录,相比于Telnet&a…

C语言指针相关知识(第五篇章)(非常详细版)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、sizeof和strlen对比二、数组之间的比较(依据strlen和sizeof来呈现)(一)、一维整型数组(二&#…

Arthas-快速使用

一、 arthas(阿尔萨斯)的基本介绍 开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了,如果您正在考虑在代码中添加一些日志以帮助解决问题,您将…

07、SpringBoot 源码分析 - SpringApplication启动流程七

SpringBoot 源码分析 - SpringApplication启动流程七 初始化基本流程SpringApplication的prepareContext准备上下文postProcessApplicationContext处理applyInitializers初始化器初始化load SpringApplication的refreshContext刷新上下文refreshServletWebServerApplicationCon…

力扣538. 把二叉搜索树转换为累加树

Problem: 538. 把二叉搜索树转换为累加树 文章目录 题目描述思路复杂度Code 题目描述 思路 利用二叉搜索树中序遍历的特性,**降序遍历(此处是想表达先遍历其右子树再遍历其左子树这样遍历的过程中每个节点值得大小排序是降序得)**其节点&…

Mybatis-全局配置文件多数据库支持

这里我们来做一个对比试验&#xff0c;将上门课中使用hibernate做的权限控制项目&#xff0c;从mysql数据库转移到orcale数据库&#xff0c;然后我们在让现在的mybatis入门demo也从使用mysql数据库改orcale&#xff0c;对比一下两者之间的区别&#xff1a; <dependency>…

【C++】二分查找:在排序数组中查找元素的第一个和最后一个位置

1.题目 难点&#xff1a;要求时间复杂度度为O(logn)。 2.算法思路 需要找到左边界和右边界就可以解决问题。 题目中的数组具有“二段性”&#xff0c;所以可以通过二分查找的思想进行解题。 代码&#xff1a; class Solution { public:vector<int> searchRange(vect…

【排序算法】选择排序以及需要注意的问题

选择排序的基本思想&#xff1a;每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完 。 第一种实现方法&#xff1a; void SelectSort(int* arr, int n) {for (int j 0…

阿里云百炼大模型使用

阿里云百炼大模型使用 由于阿里云百炼大模型有个新用户福利&#xff0c;有免费的4000000 tokens&#xff0c;我开通了相应的服务试试水。 使用 这里使用Android开发了一个简单的demo。 安装SDK implementation group: com.alibaba, name: dashscope-sdk-java, version: 2.…

DAMA数据管理知识体系必背18张框图

近期对数据管理知识体系中比较重要的框图进行了梳理总结,总共有18张框图,供大家参考。主要涉及数据管理、数据治理阶段模式、数据安全需求、主数据管理关键步骤,主数据架构、DW架构、数据科学的7个阶段、数据仓库建设活动、信息收敛三角、大数据分析架构图、数据管理成熟度等…

精品丨快速申请免费https证书

https域名证书对提高网站排名有一定的好处&#xff0c;所以当今很多企业为了给网站一个好的安全防护&#xff0c;就会去申请该证书。如今很多企业虽然重视网站的安全防护&#xff0c;但是也重视成本&#xff0c;所以为了节约成本会考虑申请免费的https证书。 第一个好处 企业不…

如何在 DigitalOcean Droplet 云主机上创建 Ubuntu 服务器

在本文中&#xff0c;你将通过 DigitalOcean 的管理面板创建一个 Ubuntu 服务器&#xff0c;并将其配置为使用你的 SSH 密钥。设置好服务器后&#xff0c;你可以在其上部署应用程序和网站。 本教程是DigitalOcean云课程简介的一部分&#xff0c;它指导用户完成将应用程序安全地…

SpringBoot+Vue开发记录(七)-- 跨域文件与Restful风格

本篇文章的主要内容是关于项目的跨域配置和给项目添加restful风格接口。 重点是文件粘贴 文章目录 一、 跨域二、Restful风格1. 什么是restful风格&#xff1f;2. 项目文件结构3. 新建文件4. 在Controller中进行修改 一、 跨域 跨域问题暂时也就那样&#xff0c;解决方法就是…

Unity入门理论+实践篇之Luna

创建世界的主角 父子物体 首先创建一个cube物体 可以观察到其在2D视角下的坐标为&#xff08;0&#xff0c;0&#xff09; 此时将cube物体拖拽到ldle_0下&#xff0c;如图所示&#xff0c;并将其坐标值改为&#xff08;2&#xff0c;2&#xff09; 此时再将ldle_0物体的坐标…

huggingface 笔记:查看GPU占用情况

0 准备部分 0.1 创建虚拟数据 import numpy as npfrom datasets import Datasetseq_len, dataset_size 512, 512 dummy_data {"input_ids": np.random.randint(100, 30000, (dataset_size, seq_len)),"labels": np.random.randint(0, 1, (dataset_size…

Markdown魔法手册:解锁高效写作的新技能

边使用边更新0.0... 文章目录 一、如何在Markdown中插入表情&#xff1f;二、文字样式设置1.文本颜色设置2.文本字号设置3.文本字体设置4. 实战演练5.黄色高亮 一、如何在Markdown中插入表情&#xff1f; 在Markdown中插入表情&#xff08;emoji&#xff09;的方法取决于你使用…

02.并发编程基础概念

在正式学习 Java 的并发编程之前&#xff0c;我们需要熟悉和学习几个并发编程的基础概念。 1 进程和线程 1.1 进程 我们常说的是应用程序&#xff0c;也就是 app&#xff0c;由指令和数据组成。但是当我们不运行一个具体的 app 时&#xff0c;这些应用程序就是放在磁盘(也包括…

安装pip install xmind2image失败,4种安装pip install xmind2image在temunx高级终端的失败,却又意外发现

~ $ ~ $ ![在这里插入图片描述](https://img-blog.csdnimg.cn/b59cbb49c3e14a3bbec5675164a14009.png)#!/bin/bash # 创建一个新的空白XMind文件 xmind_dir ( m k t e m p − d ) x m i n d f i l e n a m e ′ t e s t . x m i n d ′ x m i n d p a t h " (mktemp -d…

生命在于学习——Python人工智能原理(1.2)

一、人工智能的基本知识 6、新一代人工智能驱动因素 &#xff08;1&#xff09;数据量爆发性增长。 &#xff08;2&#xff09;计算能力大幅提升 &#xff08;3&#xff09;深度学习等算法发展 &#xff08;4&#xff09;移动AI创新应用牵引 7、人工智能关键技术 &#x…

Value-Based Reinforcement Learning(1)

Action-Value Functions Discounted Return&#xff08;未来的reward&#xff0c;由于未来存在不确定性&#xff0c;所以未来的reward 要乘以进行打折&#xff09; 这里的依赖actions &#xff0c;和states 这里 Policy Function : &#xff0c;表达了action的随机性 S…