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

news2024/12/25 8:56:55

论文标题:

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】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗科技:UWB模块为智能医疗设备带来的变革

随着医疗科技的不断发展和人们健康意识的提高,智能医疗设备的应用越来越广泛。超宽带(UWB)技术作为一种新兴的定位技术,正在引领着智能医疗设备的变革。UWB模块作为UWB技术的核心组成部分,在智能医疗设备中发挥着越来越…

【开发 | 环境配置】解决 VSCode 编写 eBPF 程序找不到头文件

问题描述: 在使用 vscode 编写 eBPF 程序时,如果不做一些头文件定位的操作,默认情况下头文件总是带有“红色下划线”,并且大部分的变量不会有提示与补全。 在编写代码文件较小时(或者功能需求小时)并不会…

Java虚拟机揭秘-底层驱动力,性能保障!

Java虚拟机作为Java技术体系的核心组成部分,其重要性不言而喻。它不仅为Java提供了跨平台的能力,更是Java程序运行的基石。本文将为您深入解析Java虚拟机的工作原理、作用和应用场景,并通过生动的实例让您彻底理解这一关键技术。 一、Java虚拟…

可视化 | Seaborn中的矩阵图及示例

Seaborn是python提供的一个很棒的可视化库。它有几种类型的绘图,通过这些绘图,它提供了惊人的可视化能力。其中一些包括计数图,散点图,配对图,回归图,矩阵图等等。本文讨论了Seaborn中的矩阵图。 示例1&am…

《计算机网络微课堂》2-2 物理层下面的传输媒体

请大家注意,传输媒体不属于计算机网络体系结构的任何一层,如果非要将它添加到体系结构中,‍‍那只能将其放在物理层之下。 传输媒体可分为两类:一类是导引型传输媒体,‍‍另一类是非导引型传输媒体。 在导引型传输媒体…

操作系统总结4----死锁的处理策略总结

目录 2.4.2 死锁的处理策略-----预防死锁 (1)知识总览 (2)破环互斥条件 (3)破环不剥夺条件 (4)破环求情和保持条件 (5)破环循环等待条件 总结 2.4.3 死…

使用Python Tkinter创建GUI应用程序

大家好,当我们谈及使用Python Tkinter创建GUI应用程序时,我们涉及的不仅是技术和代码,更是关于创造力和用户体验的故事。Tkinter作为Python标准库中最常用的GUI工具包,提供了丰富的功能和灵活的接口,让开发者能够轻松地…

《计算机网络微课堂》2-3 传输方式

本节课我们介绍几种传输方式: 串行传输和并行传输同步传输和异步传输单工,半双工‍‍以及全双工通信 ​​ ‍ 串行 我们首先来看串行传输和并行传输,串行传输是指‍‍数据是一个比特依次发送的,因此在发送端和接收端之间‍‍只…

YOLOv10 论文学习

论文链接:https://arxiv.org/pdf/2405.14458 代码链接:https://github.com/THU-MIG/yolov10 解决了什么问题? 实时目标检测是计算机视觉领域的研究焦点,目的是以较低的延迟准确地预测图像中各物体的类别和坐标。它广泛应用于自动…

速看!!!24上软考-信息系统项目管理师真题回忆,考点已更新

整理了24上半年软考高级信息系统项目管理师的考试真题,软考一个批次一套题,现在都是机考,收集题目比较困难,希望能给个小小的赞支持一下。 注意:当天考试的宝子们可以对答案预估分数!后面场次的宝子可以提…

基于jeecgboot-vue3的Flowable新建流程定义(一)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、vue3版本因为流程分类是动态的&#xff0c;不再固定了&#xff0c;所以新建的时候需要选择建立哪种流程类型的流程 代码如下&#xff1a; <!-- 选择模型的流程类型对话框 -->&…

Spring Cloud学习笔记(Nacos):配置中心基础和代码样例

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Overview2、样例2.1、Dependency2.2、配置文件的定位2.3、bootstrap.yml2.4、配置中心新增配置2.5、验证 1、Overview 配置中心用于管理配置项和配置文件&#xff0c;比如平时写的application.yml就是配置文件…

【MySQL】聊聊脏页flush的原理和控制策略

flush的时机 当更新一条SQL的时候&#xff0c;其实是先写undo日志&#xff0c;然后更新数据&#xff0c;二阶段写入redo 和 bin log。对于更新数据&#xff0c;其实是只修改了changer buffer中的数据&#xff0c;比如将name qxlxi, 但是磁盘数据页没有和内存页数据保持一致。…

删除指定目录

题目描述 我们定义一种目录结构字符串(类似Windows的 tree /f 的输出内容),用它来表达目录树的结构,如图所示: 目录结构字符串的输入仅含数字、字母和|-,其中:|- 表示子目录的层次符号;字母或数字组成目录名(字母大小写敏感)。 某一子目录挂接在其前面、最近的上一层…

【Linux系统编程】进程概念、进程排队、进程标识符、进程状态

目录 什么是进程&#xff1f; 浅谈进程排队 简述进程属性 进程属性之进程标识符 进程操作之进程创建 初识fork fork返回值 原理角度理解fork fork的应用 进程属性之进程状态 再谈进程排队 进程状态 运行状态 阻塞状态 挂起状态 Linux下的进程状态 “R”(运行状…

【Go专家编程——内存管理——垃圾回收】

垃圾回收 所谓的垃圾就上不在需要的内存块&#xff0c;垃圾如果不清理&#xff0c;这些内存块就没有办法再次被分配使用。在不支持垃圾回收的编程语言中&#xff0c;这些垃圾内存就上泄露的内存。 1. 垃圾回收算法 常见的垃圾回收算法有3种 引用计数&#xff1a;对每个对象…

SpringCloud的Config配置中心,为什么要分Server服务端和Client客户端?

SpringCloud的Config配置中心&#xff0c;为什么要分Server服务端和Client客户端&#xff1f; 在SpringCloud的Config配置中心中分了Server服务端和Client客户端&#xff0c;为什么需要这样分呢&#xff1f;它的思想是所有微服务的配置文件都放到git远程服务器上&#xff0c;让…

使用FFmpeg推流实现在B站24小时点歌直播

使用FFmpeg推流实现在B站24小时点歌直播 本文首发于个人博客 安装FFmpeg centos7 https://www.myfreax.com/how-to-install-ffmpeg-on-centos-7/ https://linuxize.com/post/how-to-install-ffmpeg-on-centos-7/ 使用FFmpeg在B站直播 https://zhuanlan.zhihu.com/p/2395…

机器学习(五) -- 监督学习(5) -- 线性回归1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;4&#xff09; -- 集成学习方法 - 随机森林 下篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;5&#xff09; -- 线性回归2 前言 tips&#xff1…

Redis教程(十五):Redis的哨兵模式搭建

一、搭建Redis一主二从 分别复制三份Redis工作文件夹&#xff0c;里面内容一致 接着修改7002的配置文件&#xff0c;【redis.windows-service.conf】 port 7002 改成 port 7002 slaveof 127.0.0.1 7001 7003也同样修改 port 7003 slaveof 127.0.0.1 7001 这样就指定了700…