首页 > 其他分享 >SA-GS,无需训练,直接鲁棒提升3D高斯抗锯齿能力

SA-GS,无需训练,直接鲁棒提升3D高斯抗锯齿能力

时间:2024-04-01 15:02:08浏览次数:25  
标签:采样 抗锯齿 GS 高斯 3DGS 尺度 像素 2D 鲁棒

论文作者:KevinS(作者授权) | 编辑:3DCV
添加微信:dddvision,备注:3D高斯,拉你入群。文末附行业细分群

本文介绍了3DGS抗锯齿技术的最新进展——SA-GS。这是一种无需训练的高斯抗锯齿渲染技术,能够直接集成到现有的3D高斯模型中,从而鲁棒提升其在不同渲染设置下的抗锯齿能力。通过使用2D尺度自适应滤波器,实现了2D投影高斯分布在不同渲染参数下的尺度统一。在此基础上,使用积分和超采样这两种方法,解决了因采样频率不足导致的锯齿伪影。SA-GS在有界和无界场景中均能有效提升原始3D高斯的抗锯齿能力,超越或持平了目前高斯抗锯齿工作的最优性能。

图片

论文标题:SA-GS: Scale-Adaptive Gaussian Splatting for Training-Free Anti-Aliasing
论文链接:https://arxiv.org/abs/2403.19615
代码链接:https://github.com/zsy1987/SA-GS/

一. 动机

3D高斯泼溅技术(3D Gaussian Splatting, 3DGS)由于良好的视图渲染质量、极快的渲染速度和显式表征的优势,在新颖视图合成、动态/大规模场景重建、自动驾驶仿真等领域得到了广泛的关注。然而,高斯基元在不同于训练设置的渲染参数下,会出现剧烈的视图质量下降,具体表现为低采样频率下的场景膨胀和高采样频率下的侵蚀伪影。现有的工作通过多尺度表征或者低通滤波的方式,正则约束高斯基元在3D空间/2D空间的分布,从而缓解了上述问题。

然而,这些工作都是直接以aliasing(信号频率不匹配)作为切入点,忽略了高斯基元在不同渲染设置下尺度变化不统一的核心缺陷,而这导致了其无法使用NeRF类方法中的抗锯齿技术。事实上,3D高斯基元是一个连续函数,在投影转换到像素坐标系之前,其映射关系始终准确,而像素空间中的固定扩充算子(Dilation)破坏了这种映射关系的准确性。这在训练阶段并不会影响拟合,然而在渲染阶段则会因为渲染参数的变化而导致严重的尺度误差,该误差与aliasing问题混合在一起,共同导致了3DGS在不同渲染设置下的错误表征。基于上述观点,研究团队提出了一种新的抗锯齿方案——SA-GS。该方案利用尺度自适应的2D滤波器,保证了高斯基元在像素空间分布下的尺度变化统一。在此基础上,研究团队使用超采样和积分两种抗锯齿技术,进一步解决了因采样频率不足导致的锯齿伪影。

SA-GS并不会影响原始3DGS的训练流程,是一种无需训练的抗锯齿方案。因此其可以直接集成到现有的3DGS模型中,鲁棒提升不同渲染设置下的抗锯齿能力。这也同样证明了原始3DGS具备抗锯齿的潜力,而并不需要精心设计不同的训练过程。

二. 方法

图片

高斯光栅化过程的范式比较:目前所有基于3DGS的高斯抗锯齿方法都共享图中的光栅化框架。3D高斯基元通过投影映射到相机平面,进而光栅化到像素平面,最后通过alpha-blending的方式得到最终的像素颜色。然而不同的方法在不同的阶段对高斯基元进行了不同的处理:(1)3DGS在像素平面对2D高斯基元进行了固定扩充(Dilation)操作,而这导致了不同渲染设置下的尺度变化不统一。(2)目前抗锯齿领域的最优工作,Mip-Splatting,根据训练相机参数在3D空间对高斯基元进行平滑(3D Smooth Filter),在像素平面将扩充替换为更加柔和的固定滤波(2D Mip Filter),然而其仍然没有完全解决3DGS扩充操作的尺度问题。(3)SA-GS在像素平面使用2D尺度自适应滤波器,保证了2D高斯基元的尺度变化统一;在alpha-blending阶段使用超采样(Super Sampling)和积分(Intergration)方法解决了尺度统一基础下采样频率不足导致的锯齿伪影。

正如前文所提到,渲染阶段3DGS的尺度变化不统一与信号频率不匹配共同导致了其在不同渲染参数下视图质量的下降。在现实物理世界,无论采样频率如何改变,场景频率并不会发生变化,在NeRF类方法中自然同样如此,因此NeRF类方法可以很自然使用像积分(Mip-NeRF)或者超采样(Zip-NeRF)解决场景的锯齿问题。然而3DGS在像素空间对高斯基元的固定尺度变化,导致了场景频率实际上会随着采样频率的改变而改变,这破坏了使用上述抗锯齿方法的前提。现有的工作仅仅讨论了信号频率不匹配对渲染产生的影响,却忽略了尺度问题,然而在视图质量下降的具体例子中,场景膨胀和侵蚀伪影大部分是尺度误差所带来的。作者团队首次将尺度变化的统一性作为重点进行讨论,提出根据尺度变化自适应的2D滤波器,从而在不影响训练的情况下,首次将传统抗锯齿方法(超采样/积分)应用于3DGS中,获得了鲁棒的抗锯齿性能提升。

2.1 2D尺度自适应滤波器:核心观点

图片

该图很好解释了原始3DGS的扩充操作会带来尺度变化不统一的原因,以及2D尺度自适应滤波器能够保证尺度变化一致的理由。蓝色区域代表3D高斯基元投影到相机平面上的尺度大小,绿色区域代表3DGS在像素平面上扩充的尺度大小,橙色区域代表2D尺度自适应滤波器在像素平面上的扩充尺度大小。3DGS的扩充尺度是固定的,并以像素为单位,因此当单位像素大小发生改变时,其扩充的尺度范围也会不同。

示意图展示了尺度变化不一致的两种情况:

  • 左边部分,代表一个相机在相同的位置对同一个高斯基元进行拍摄,但是相机的分辨率在动态调整。这种情况下由于相机与高斯基元的相对位姿没有发生改变,因此投影区域的大小不会变化,然而随着分辨率下降,3DGS的扩充范围变大,随着分辨率上升,3DGS的扩充范围减小,但实际上扩充范围本应该保持不变。

  • 右边部分,代表一个相机在不同的位置对同一个高斯基元进行拍摄,并且相机的分辨率保持不变。此时,当相机靠近高斯基元时,投影大小会随着增大;当相机远离高斯基元时,投影大小会随着减少。然而3DGS的扩充范围由于分辨率的固定而保持不变,但其本应该随着投影大小的增减而增减。

这种尺度变化的不一致直接导致了采样频率下降时的场景膨胀和采样频率上升时出现的侵蚀伪影。2D尺度自适应滤波器则解决了这一问题,通过将扩充范围与投影大小进行绑定,进而得到在像素坐标系下的尺度扩充比例,该方法能够动态调整不同情况下的扩充范围,从而保证尺度变化的一致性。

2.2 2D尺度自适应滤波器:实现方法

基于上述讨论,保持尺度变化一致性的核心在于,确定合适的尺度扩充比例,进而嵌入到滤波器的方差中,从而动态调整滤波器的扩充范围。

图片

图片

上述公式分别表示2D投影高斯基元表达和3DGS扩充算子的卷积形式。其中,和分别代表2D高斯基元的中心坐标和协方差矩阵;代表扩充操作所对应的低通高斯滤波,是其对应的固定方差系数,是与同维度的单位阵。

图片

SA-GS将尺度扩充比例因子嵌入到低通滤波器方差中,其中代表当前渲染相机的分辨率与训练相机的变化比率;代表当前渲染相机与朝向最贴近的训练相机的距离(焦距)变化比率。该尺度扩充比例因子能够自适应调整不同渲染相机参数(分辨率、焦距、距离)下尺度扩充的范围,进而保证扩充范围与投影范围尺度变化的统一,从下图可以明显看出该方法在尺度变化统一上的效果:

图片

2.3 应用于高斯的抗锯齿技术:超采样和积分

图片

在尺度变化保持统一的情况下,场景频率就不再随着采样频率的变化而变化,因此传统的抗锯齿方法就可以直接应用于高斯场景中。奈奎斯特采样定理证明,只有当采样频率大于被采样信号频率的两倍,才有可能重建出该被采样信号。因此,在高斯场景中,当采样频率下降(Zoom-out)时,在某个时刻将不满足奈奎斯特采样定理,进而导致过去所熟知的锯齿伪影。超采样和积分的方法,提高了采样频率,从而能够让当前采样再次满足奈奎斯特采样定理,解决上述问题。

超采样

给定一个像素,当遍历经过基数排序后的高斯基元序列时,将其分为个子像素,每个子像素各自拥有独立的alpha-blending过程和累积透明度计算。这些子像素的采样结果会在高斯基元遍历结束后进行平均,得到该像素的最终颜色:

图片

是高斯基元序列的长度,是第个子像素和第个高斯基元的不透明度采样结果,是第个高斯基元的球谐系数,代表球谐到颜色的转换函数。由于超采样的快速收敛特性,我们发现就能取得相当不错的效果。

积分

当超采样的采样次数趋于无限,就转变为了积分形式。计算非轴对齐的2D高斯在像素区域的积分是相当困难的,因为其没有闭式解。作者在此处采用旋转像素的方式,将像素的长宽旋转到与2D高斯基元两个特征向量对齐的方向,从而对角化了2D高斯基元的协方差矩阵,如上图所示。通过这种近似,二维高斯积分就可以被简化为两个一维高斯积分的乘积:

图片

图片

其中,代表在二维高斯基元某个特征向量上的投影坐标;,则代表另一个特征向量上的投影坐标。当然,这种近似会带来误差,即旋转像素区域和原始像素区域并不完全等价,作者通过理论分析和数值实验证明,这种误差仅仅存在于非常小的范围,并不会影响最终的渲染结果,具体可以查看误差分析部分。

实验

作者分别在Blender数据集与Mip-NeRF 360数据集上进行了实验。

3.1 对比实验

Mip-NeRF 360

图片

定量对比结果。(MS)表示多尺度训练。其他方法均在最大分辨率(1)训练,在(1,,,)测试,以模拟采样频率下降(zoom-out)。SA-GS的超采样方法在低分辨率下远远优于Mip-Splatting。

图片

Zoom-out时的定性对比结果,如图中红框所示。3DGS在低分辨率下出现了膨胀。文章提出的2D尺度自适应滤波器保持了高斯尺度的一致性。在低分辨率下,超采样和积分方法进一步消除了混叠锯齿(如图黄色框)。

图片

定量对比结果。除3DGS(MS)外,其他方法均在分辨率(1)训练,在(1,2,4,8)测试,以模拟采样频率上升(zoom-in)。SA-GS提出的2D尺度自适应滤波器可以在不额外训练的情况下与Mip-Splatting性能相当,且远远优于原始3DGS。

图片

Zoom-in 时的定性对比实验,如图中红框所示。3DGS在高分辨率渲染有严重的侵蚀伪影。SA-GS提出的2D尺度自适应滤波器保持了高斯尺度的一致性。

Blender

图片

图片

图片

定量对比结果。分别为多尺度训练多尺度渲染,单尺度训练Zoom-out,单尺度训练Zoom-in。实验结果与Mip-NeRF 360数据集有一致的表现,值得注意的是,在zoom-out下SA-GS获得了3.6dB的性能提升。

图片

Zoom-out和Zoom-in时的定性对比结果。

3.2 消融实验

作者还对2D尺度自适应滤波器的有效性进行了消融实验。

图片

在Mip-NeRF 360数据集上的消融实验。所有方法均在最大分辨率(1)训练,在(1,,,)测试,以模拟Zoom-out。SA-GS提出的2D尺度自适应滤波器消除了低分辨率渲染时3DGS的膨胀,积分和超采样方法在此基础上进一步增强了3DGS的抗锯齿能力。

图片

在Mip-NeRF 360数据集上的消融实验。所有方法均在分辨率(1)训练,在(1,2,4,8)测试,以模拟Zoom-in。SA-GS提出的2D尺度自适应滤波器消除了高分辨率下3DGS的侵蚀伪影。

图片

Zoom-out时在blender数据集上的消融实验。

图片

Zoom-in时在blender数据集上的消融实验。

定量消融实验表明,超采样和积分方法只有在2D尺度自适应滤波器应用时才有效,2D尺度自适应滤波器保证了任意渲染频率下2D高斯的尺度一致性。

图片

Zoom-out时的定性消融实验。

图片

Zoom-in时的定性消融实验。

误差分析

文章对所提出的近似积分方法进行了误差分析,证明了其理论误差上限,并用数值实验证明了积分带来的误差在允许的范围内。

4.1 理论分析

图片

理论分析的可视化演示。作者将一般高斯分布缩放为标准正态分布,以估计旋转像素与原始像素之间误差的上限。

标准化和旋转。假设像素的中心坐标为,像素的边长为 ,像素相对于投影后的2D高斯长轴逆时针倾斜 。作者在不改变2D高斯分布主要形式的情况下对积分区域进行旋转变换,以简化二重积分。首先通过缩放将投影后的2D高斯归一化为标准二维高斯分布,则有:

图片

旋转后的新像素区域是边平行于2D高斯的正方形,其积分为。为了找到误差的理论上限,作者通过固定来得到边缘高斯分布,并计算得到以下界限:

图片

4.2 数值分析

文章通过数值实验来验证上述理论分析。作者将表示像素中心点的坐标, 表示像素边长,  表示像素逆时针旋转的角度,  和  分别表示与高斯分布的两个主特征向量方向相对应的标准差。

数值实验采用了参数敏感性分析框架,固定某些参数,同时在合理范围内对其他参数进行采样,旨在量化原始像素积分与旋转后对应区域积分之间的差异。具体来说,作者设置  和  ,允许  和  从各自的区间  和  中均匀采样六个值,从而生成 36 个子表。参数  和  分别对应划定了横轴和纵轴,两个参数均匀地从区间中采样 30 个值,该区间包含图块中大部分的高斯分布。

图片

最终数值实验得出的平均相对误差为。由于大部分误差为0或接近0,为了方便可视化,作者通过   将所有误差转换为(0,1)范围,并扩大接近 0 区域的差异。从上图可以看出,误差随着高斯分布的各向异性越来越明显而增大,误差范围随着  的增大而增大。然而,计算出的整体误差值非常小,证明了积分近似计算的有效性。

五. 结论

该文提出SA-GS,一种无需额外训练的3DGS抗锯齿方法,包含2D尺度自适应滤波器以及传统抗锯齿方法(超采样和积分),可以无缝集成进3DGS模型中以增强其在任意渲染频率下的抗锯齿能力。然而,该方法也存在一些局限性,例如,在相机远离或焦距变小时,超采样与积分的方法带来了15%~20%的额外计算负担,未来计划对其进行优化(近似计算或查表),从而减少计算成本。

本文仅做学术分享,如有侵权,请联系删文。

在这里给大家推荐3D视觉工坊联合Gigi主讲老师推出的新课《基于NeRF/Gaussian三维重建的全新SLAM算法

主讲人介绍

图片

课程大纲

图片

图片

课程亮点

  • 本门课程从理论和代码实现两方面展开,带你从零入门NeRF/Gaussian Based SLAM的原理学习、论文阅读、代码梳理等

  • 理论层面,从线性代数入手到传统的计算机图形学,让大家明了现代三维重建的理论基础和源头

  • 代码层面通过多个练习手把手教会大家复现计算机图形学、NeRF相关工作

学后收获

  • 入门基于NeRF/Gaussian的SLAM领域

  • 学会如何在快速抓取一篇论文的关键点和创新点

  • 如何快速跑通一篇论文的代码并结合代码掌握论文的思想

  • 逐行NeRF代码进行解析,掌握每个实现细节,并手动复现并作改进

课程设置

  • 系统要求:Linux

  • 编程语言:Python

  • 基础要求:有Python、PyTorch基础

适合人群

  • 对一篇新论文配套开源代码无从下手的小白

  • SLAM定位建图、NeRF三维重建小白

  • 从事三维重建工作的人员可参考

  • NeRF论文的初始阅读者

  • 对SLAM、NeRF感兴趣的学员

开课时间

2024年2月24日晚上8点(周六),每周更新一章节。

课程答疑

本课程答疑主要在本课程对应的鹅圈子中答疑,学员学习过程中,有任何问题,可以随时在鹅圈子中提问。

图片

▲长按购买课程

图片

▲长按添加小助理微信:cv3d007,咨询更多

备注:以上图片和视频部分来自网络,如果侵犯了您的权益,还请联系删除!

标签:采样,抗锯齿,GS,高斯,3DGS,尺度,像素,2D,鲁棒
From: https://blog.csdn.net/weixin_46788581/article/details/137233141

相关文章

  • 【OpenREALM学习笔记:4】geometry_msgs和tf在项目中的不同作用
    geometry_msgsgeometry_msgs是ROS中用于表示几何信息的消息包。它包含了多种消息类型,用于描述点、向量、变换、姿态(位置和方向)、形状等几何概念。geometry_msgs中的消息类型通常用于在ROS节点之间传递几何数据,例如:geometry_msgs/Point:表示三维空间中的一个点。geometry_......
  • 二进制部署logstash
    部署logstash下载地址:https://www.elastic.co/cn/downloads/past-releases/(注意这里是跟elasticsearch版本一致)#创建目录mkdir-p/home/work#解压到指定目录tar-xvflogstash-7.17.3-linux-x86_64.tar.gz-C/home/work在本机上创建一个配置文件#Kafka输入配置,从Kafk......
  • 理解 Python 编程中 *args 与 **kwargs 的妙用
    文章目录一、形式参数与实际参数二、*args与**kwargs三、总结......
  • 【两阶段鲁棒微网】【不确定性】基于关键场景辨别算法的两阶段鲁棒微网优化调度(Matlab
     ......
  • 从零实战本地服务器部署 Docker 安装 ThingsBoard PE 专业版(适用于Cassandra + Kafka
    目录1、准备工作2、本地服务器LinuxCentos7.9系统安装docker2.1、检查Linux的内核版本2.2、卸载Docker旧版本(若有需要)2.3、安装Docker2.4、安装Docker引擎2.5、 启动docker和设置开机⾃启动3、使用Docker安装ThingsBoardPE3.1、 拉取ThingsBoardPE镜像3.2......
  • KingSCADA|问题处理:数据输入后,数据已经写入,但SCADA界面显示为0问题。
    哈喽,你好啊!我是雷工!最近做KingSCADA项目遇到这么一个问题:KingSCADA系统和三菱的PLC通讯,当数值输入数据需要数据后,输入的数值点击确定按钮可以写入到PLC内,但是点完确定SCADA界面显示0,多次设置,偶尔可以正常显示。是什么原因?如何处理?01原因分析该功能对组态软件来说是很简......
  • codeforces div4 Double Strings
    #include<iostream>#include<algorithm>#include<cstring>#include<map>usingnamespacestd;intT,n;strings[900005];map<string,int>mm;//存放每一个字符串是否出现过intmain(){ cin>>T; while(T--){ mm.clear();//每次清空mm里面的数......
  • openGauss 全量迁移gs_mysync
    全量迁移gs_mysync可获得性本特性自openGauss5.0.0版本开始引入。特性简介gs_mysync工具是一个基于Python语言的MySQL到openGauss的复制工具。该工具提供了初始全量数据及对象(视图、触发器、函数、存储过程)的复制能力,可实现数据及对象从MySQL迁移至openGauss。对于数据的全量......
  • openGauss 反向迁移gs_replicate
    反向迁移gs_replicate特性简介支持openGauss的增量数据在线迁移至MySQL。客户价值反向迁移是指用户将源端数据库迁移到目标数据库,应用切到目标数据库后,再将目标端新产生的数据迁移回源端。反向迁移可满足用户业务迁移逃生的诉求,保持源端、目标端两个库并行运行,在目标端数据库......
  • [ARC058F] Iroha Loves Strings
    题意给定\(n\)个字符串\(s_1,s_2,...,s_n\)。你需要在其中选择一些字符串,按照顺序拼接。在所有生成的长度为\(k\)的字符串中,选择字典序最小的一个。\(n\le2000,k\le10^4,\sum|s_i|\le10^6\)Sol考虑一个朴素的dp。设\(f_{i,j}\)表示前\(i\)个字......