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

news/2024/9/18 18:09:21/ 标签: 3DGS, 三维重建, 计算机视觉

论文标题:

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.ppmy.cn/news/1462866.html

相关文章

GoLand map中的并发问题——为什么会造成并发问题?该怎么解决?

GoLand map中的并发问题——为什么会造成并发问题?该怎么解决? 问题提出原因解析具体原因竞态检测器 如何解决并发问题呢?方法一 : 使用sync.Mutex方法二: 使用sync.Map我们首先了解一下sync.Map的常用方法&#xff1a…

csdn的insCode怎么用IDE和linux终端

1.进入insCode,选择工作台 找到我的项目,没有项目的话可以新建一个。 选择在IDE中编辑,界面如下: 右边有个终端,点击即可出现linux的xterm终端。

Java客户端SpringDataRedis(RedisTemplate)上手

文章目录 ⛄概述⛄快速入门❄️❄️导入依赖❄️❄️配置文件❄️❄️测试代码 ⛄数据化序列器⛄StringRedisTemplate⛄RedisTemplate的两种序列化实践方案总结 ⛄概述 SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模…

SQL 优化

SQL 优化是指通过各种手段提高 SQL 查询的执行效率,减少资源消耗,提高数据库的整体性能。以下是一些详细的 SQL 优化方法,包括索引优化、查询优化、数据库设计优化等。 1. 索引优化 创建适当的索引: 单列索引:在查询中频繁使用的单个列上创建索引。多列索引(复合索引):…

Linux程序开发(十二):线程与多线程同步互斥实现抢票系统

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

【C++高阶(一)】继承

目录 一、继承的概念 1.继承的基本概念 2.继承的定义和语法 3.继承基类成员访问方式的变化 ​编辑 4.总结 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 1.派生类中的默认构造函数 2.派生类中的拷贝构造函数 3.派生类中的移动构造函数…

2024年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…

Visual Studio调用matlab的二种方式及区别

VS调用matlab的方式有两种: 方式1调用MATLAB引擎 首先,添加头文件 #include “engine.h” 然后,引用函数调用依赖库(lib) libeng.lib libmx.lib libmat.lib,之后就可以调用MATLAB引擎。 方式2调用MATLAB生成的dll 调用MATLAB生…

Java | Leetcode Java题解之第97题交错字符串

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isInterleave(String s1, String s2, String s3) {int n s1.length(), m s2.length(), t s3.length();if (n m ! t) {return false;}boolean[] f new boolean[m 1];f[0] true;for (int i 0; i <…

重学java 39.多线程 — 线程安全

逐渐成为一个情绪稳定且安静成长的人 ——24.5.24 线程安全 什么时候发生&#xff1f; 当多个线程访问同一个资源时&#xff0c;导致了数据有问题&#xff0c;出现并发问题&#xff0c;数据不能及时更新&#xff0c;导致数据发生错误&#xff0c;出现线程安全问题 多线程安全问…

蓝海卓越计费管理系统 agent_setstate.php SQL注入漏洞复现

0x01 产品简介 蓝海卓越计费管理系统是一套以实现网络运营为基础,增强全局安全为中心,提高管理效率为目的的网络安全运营管理系统,提供“高安全、可运营、易管理”的运营管理体验,基于标准的RADIUS协议开发,它不仅支持PPPOE和WEB认证计费,还支持802.1X接入控制技术,与其…

东方通TongWeb结合Spring-Boot使用

一、概述 信创需要; 原状:原来的服务使用springboot框架,自带的web容器是tomcat,打成jar包启动; 需求:使用东方通tongweb来替换tomcat容器; 二、替换步骤 2.1 准备 获取到TongWeb7.0.E.6_P7嵌入版 这个文件,文件内容有相关对应的依赖包,可以根据需要来安装到本地…

LeetCode199二叉树的右视图

题目描述 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 解析 这一题的关键其实就是找到怎么去得到当前是哪一层级&#xff0c;可以利用队列对二叉树进行层次遍历&#xff0c;但…

互联网十万个为什么之什么是分布式计算?

分布式计算是一种计算方法&#xff0c;它将计算任务分散到多个物理或逻辑上分开的计算机&#xff08;称为节点&#xff09;上执行&#xff0c;这些节点通过网络互连并协作完成共同的目标。每个节点具备独立的处理能力和存储资源&#xff0c;在分布式系统中&#xff0c;它们共享…

Android 配置本地解决下载 Gradle 慢的问题

步骤1 打开项目下 gradle/wrapper/gradle-wrapper.properties 文件。 步骤2 文件内容如下。 #Sat May 25 16:24:00 CST 2024 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps\://services.gradle.org/distributions/gradle-8.7-bin…

ECMA 2023(ES14) 新特性

ECMAScript 2023 主要包含内容 ECMAScript 2023 于 2023 年 6 月 27 日获得 ECMA International 的批准。 ECMAScript 是标准化的 JavaScript 语言&#xff0c;于 1997 年发布了第一版&#xff0c;现已发展成为世界上使用最广泛的通用编程语言之一。 本 Ecma 标准定义了 ECMASc…

OpenH264 编解码器介绍

思科 思科系统&#xff08;英语&#xff1a;Cisco Systems, Inc.&#xff09;是一间跨国际综合技术企业&#xff0c;总部设于加州硅谷&#xff1b;思科开发、制作和售卖网络硬件、软件、通信设备等高科技产品及服务&#xff0c;并透过子公司&#xff08;例子有OpenDNS、Webex、…

uniapp h5项目切换导航栏及动态渲染按钮颜色

1.效果图 2.html,动态渲染按钮样式---三元判断 <!-- 切换栏 --><view class"statusList"><block v-for"(item,index) in list" :key"index"><view class"swiper-tab-list" :class"current item.id?activ…

[DDR5 Jedec 3]DDR5 SDRAM 状态图 和 基本功能

3000字, 依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 3.1 简化状态图 来源: Jedec Proposed DDR5 Full spec 缩写功能ACT激活PRE预充电PRE_A全部预充电MRS寄存器集模式REF刷新TEN边界扫描模式ReadRD, RDS4, RDS8Read ARDA, RDS4A, RDS8AwriteWR, WRS4…

【C++进阶】AVL树

0.前言 前面我们已经学习过二叉搜索树了&#xff0c;但如果我们是用二叉搜索树来封装map和set等关联式容器是有缺陷的&#xff0c;很可能会退化为单分支的情况&#xff0c;那样效率就极低了&#xff0c;那么有没有方法来弥补二叉搜索树的缺陷呢&#xff1f; 那么AVL树就出现了&…