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

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

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

相关文章

2022年CSP-J入门级第一轮初赛真题

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项) 第 1 题 以下哪种功能没有涉及C语言的面向对象特性支持:( )。 A. C中调用printf函数 B. C中调用用户定义的类成…

使用cockpit管理服务器

安装cockpit yum install cockpit启用cockpit systemctl start cockpit浏览器中访问cockpit cockpit监听的端口是9090在浏览器中访问https://ip:9090/效果图 系统 日志 网络 账号

Git常用命令的使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

从cuda到cudnn到pytorch

一、预配版本信息 1、cuda12.1.1 2、cudnn8.9.7 3、pytorch2.2.0 二、引用 深度学习之环境配置:【CUDA 12.1.1cuDNN 8.9.1】最新安装教程记录 -- 20240429_torch 1.12.0对应torchvision-CSDN博客 补充: cuda历史版本索引: NVIDIA Dev…

零基础HTML教程(33)--HTML5表单新功能

文章目录 1. 背景2. HTML5新增表单元素2.1 number (数字输入框)2.2 email (邮箱输入框)2.3 url (链接输入框)2.4 tel (电话输入框)2.5 range (范围选择框)2.6 color (颜色选择框)2.7 datetime (日期时间选择框)2.8 search (搜索框) 3. placeholder (占位属性&#x…

站在ESG“20+”新起点上,看中国ESG先锋探索力量

全链减碳、建设绿色工厂、打造零碳产品、守护生物多样性、向受灾群众捐助……不知你是否察觉,自“双碳”目标提出以来,一股“可持续发展热潮”正覆盖各行各业,并且渗透到我们衣食住行的方方面面。在资本市场,ESG投资热潮更是席卷全…

1-3RT-Thread内核基础-笔记

RT-Thread内核相关的概念与基础知识 其中内核库是为了保证内核能够独立运行的一套小型的类似C库的函数实现子集。这部分根据编译器的不同,自带C库的情况也会有些不同。 内核最小的资源占用情况是3K的ROM和1.2K的RAM。 RT thread系统启动流程 启动文件,此…

智慧仓储新动力:EasyCVR+AI视频智能监管系统方案助力仓储安全高效管理

一、背景 随着物流行业的快速发展和智能化水平的提升,智慧仓储视频智能监管系统已成为现代仓储管理的重要组成部分。本系统通过综合运用物联网、视频分析、边缘计算等技术手段,实现对仓储环境的全面监控、智能分析和高效管理。 TSINGSEE青犀视频汇聚Ea…

【启明智显技术分享】SOM2D02-2GW核心板适配ALSA(适用Sigmastar ssd201/202D)

提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…

IPIDEA与您分享:代理IP究竟是如何保护用户隐私的?

在信息化、网络化的今天,互联网已成为人们生活中不可或缺的一部分。无论是日常沟通、学习工作,还是娱乐休闲,网络都扮演着举足轻重的角色。然而,随着网络活动的增加,网络安全问题也日益凸显,为了保护个人隐…

前端 CSS 经典:元素倒影

前言&#xff1a;好看的元素倒影&#xff0c;可以通过-webkit-box-reflect 实现。但有兼容问题&#xff0c;必须是 webkit 内核的浏览器&#xff0c;不然没效果。但是好看啊。 效果图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"&g…

【C++】<图形库> 三人成棋(面向对象写法)

目录 一、游戏需求 二、程序架构 三、代码实现 四、实现效果 五、已知BUG 一、游戏需求 构建一个五子棋游戏&#xff0c;在自定义棋盘宽度和高度的基础上&#xff0c;实现三人对战功能&#xff0c;并且能判定谁输谁赢。 二、程序架构 (1) 对象分析&#xff1a; 【1】 需…

监控服务器性能指标,提升服务器性能

服务器是网络中最关键的组件之一&#xff0c;混合网络架构中的每个关键活动都以某种方式与服务器操作相关&#xff0c;服务器不仅是现代计算操作的支柱&#xff0c;也是网络通信的关键。 从发送电子邮件到访问数据库和托管应用程序&#xff0c;服务器的可靠性和性能直接影响到…

揭秘循环购模式:消费返利新玩法,引领电商新潮流

在当今的消费市场中&#xff0c;有一种商业模式引起了广大消费者的热烈讨论——那就是循环购模式。你可能会想&#xff0c;消费满千元就能得到两千元的福利&#xff0c;每天还能领取现金&#xff0c;这怎么可能呢&#xff1f;商家难道真的在“慷慨解囊”&#xff1f;今天&#…

数据结构_链式二叉树(Chained binary tree)基础

✨✨所属专栏&#xff1a;数据结构✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 二叉树的遍历 前序、中序以及后序遍历 学习二叉树结构&#xff0c;最简单的方式就是遍历。所谓二叉树遍历(Traversal)是按照某种特定的规则&#xff0c;依次对二叉树中的结点进行相应的操作&#xff…

Docker(三) 容器管理

1 容器管理概述 Docker 的容器管理可以通过 Docker CLI 命令行工具来完成。Docker 提供了丰富的命令&#xff0c;用于管理容器的创建、启动、停止、删除、暂停、恢复等操作。 以下是一些常用的 Docker 容器命令&#xff1a; 1、docker run&#xff1a;用于创建并启动一个容器。…

声量 2024 | 从小到大,有哪些好产品曾出现在我们生活里?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 老段 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦 产品统筹 / bobo 场地支持 / 阿那亚 联合制作 / 声量The Power of Voice 特别鸣谢 / 深夜谈谈播客网络 本期节目录制于第二届「声量The Power of Voice」现场。 在…

如果直升机一直在空中悬停,24小时后能否绕行地球一圈?

直升机悬停在空中&#xff0c;似乎给了我们一种静止的错觉。但如果直升机一直保持这种状态&#xff0c;24小时后&#xff0c;它是否能够神奇地绕地球一圈&#xff1f; 地球自转&#xff1a;直升机悬停的无形锁链 问题的答案并非像表面上看起来那样简单。要解答这个问题&#…

使用 Django Admin 进行高效的后台管理

文章目录 创建超级用户注册模型到 Admin 后台自定义 Admin 后台界面定制 Admin Actions结语 当使用 Django Admin 进行后台管理时&#xff0c;开发者可以通过简单的配置和定制来满足项目的需求。可以根据不同的模型和数据结构&#xff0c;轻松地创建和管理数据条目、进行搜索和…

clangd failed: Couldn‘t build compiler instance问题解决!!!

如果其他人的博客不能解决问题&#xff0c;可以试试我的解决方案&#xff1a; 修改compile_commands.json中cc为arm-linux-gnueabihf-gcc&#xff0c; 例如&#xff1a; 之后&#xff0c;clangd就能用了&#xff0c;虽然输出也会报错&#xff0c;但好歹能用了