论文阅读记录-2025-03-19

Frequency-Aware Density Control via Reparameterization for High-Quality Rendering of 3D Gaussian Splatting

FDS-GS arxiv code

华中科技大学,AAAI 2025

动机

传统3DGS的密度控制(高斯增减)只孤立地考虑单个高斯点的梯度值和尺度,没有把多个高斯点之间的关系考虑进来,造成高频区域的高斯点之间存在重叠、浪费。

因此,考虑在高斯点分裂后,根据KNN高斯点的分布,重参数化scale值

方法

scale的重参数化

在对高斯点进行增减以后,重新修改高斯球的scale,和原版GS的初始化scale的思想有点像。

具体方法:每个高斯点到其KNN的加权平均距离(权重与距离负相关),用该距离与KNN的K计算出一个单位空间点数,作为该高斯点的邻域“密度”,进而求出一个缩放系数,该高斯点的三个scale乘以同一个系数进行缩放。实验中,K取50。

剩下2个部分都是补充解决scale重参数化的问题。

频率感知的密度控制

原版3DGS中,引导高斯点分裂的梯度阈值固定,不好调参,因此改成\(\max(g_{fixed},g_{25\%})\),即预设的阈值与25%分位数的最大值,效果就是每次最多分裂25%的高斯点。可惜我当年为了尽快出效果,来不及写代码,整了个随机放弃到25%的烂活

基于scale的高斯点置信度

有的高斯点会被分裂到物体内部,远离表面,造成对点云密度的错误估计,因此需要删除内部看不到的点。

具体方法:

  1. 单个高斯点投影到不同视角,都能获得一片椭圆形像素区域(区域F有多大?)。对于该2D区域内每个点(每个像素?),求2D高斯分布的概率密度,所有点的概率密度相加再乘以透明度,就能获得这个高斯点在该视角下的贡献值。

    高斯分布的性质那么好,感觉贡献值只和投影区域内有效的像素数量、透明度2个值有关。

  2. 对于每个高斯点,其在每个视角的投影区域F中再采样49个点(中心点,以及6圈*8个方向),这49个点构成集合S。集合S内的点分别求2D高斯分布的概率密度,获得49个概率密度作为权重。再从该视角的渲染图上求出49个对应的颜色。于是每个高斯点在每个视角都有49个加权颜色。

  3. 对于每个高斯点,找到其贡献值最大的M个视角,贡献最大的视角的49个加权颜色和剩下M-1个视角的49个加权颜色求加权SSIM,这M-1个SSIM的均值就是该高斯点的置信度。

    找到贡献值最大的M个视角,号称用了CUDA加速的堆排序,实际上M只有2……

感觉这样求置信度的方法比较新颖,但对区域F的定义和作用还有疑惑,F是像素集合还是亚像素点的集合?这个方法对训练速度的影响应该不小(尽管用了一些CUDA加速),而且单个高斯点覆盖的像素数量够多吗?像素级别求SSIM会不会不太够?

实验设置

单张A100

数据集(对标原版3DGS)

  • Mip-NeRF360
  • Tanks&Temples
  • Deep Blending

指标:SSIM LPIPS PSNR

基线方法

  • iNGP
  • Mip-NeRF360
  • 3DGS(包括论文提供的和复现的结果)
  • Scaffold-GS(复现结果)
  • MipSplatting(复现结果)
  • 3D-HGS(复现结果)
  • FreGS

消融实验

只在MipNeRF360数据集上进行,关注了高斯数量。多角度评价,不以图像质量作为唯一指标,各个维度都比基线高就行了

D&S linking dyna. thres. conf. filter SSIM↑ PSNR↑ LPIPS↓ Gauss.Num.↓
0.813 27.48 0.221 3174k
0.827 27.65 0.178 5442k
0.831 27.75 0.178 3770k
0.836 27.97 0.175 3123k
0.835 27.95 0.180 2370k

疑问、缺憾

  • 对区域F的定义和作用存疑,感觉有点多余
  • 训练用时、收敛速度没说,特别是KNN和置信度过滤的部分的用时占比

3D-HGS: 3D Half Gaussian Splatting

3D-HGS arxiv code

东北大学,CVPR 2025

动机

表示高频信号需要很多个高斯基元。但如果把高斯分布沿着中间切开,只用半个,切开的平面就能更好地表示锐利的边缘。

方法

给每个高斯增加4个参数:切平面的法向量、另一半的透明度。

推导半高斯的光栅化前向和反向公式,并修改光栅化器。能动渲染方程的都是真男人

光栅化器甚至区分了半高斯1、半高斯2、来自半高斯1的切面1、来自半高斯2的切面2四个部分,非常solid。

实验

单卡3090,数据集对标3DGS

作为一个即插即用的组件,在多个基线上增加了该插件,在推理FPS基本不变的前提下,将PSNR提高了0.2到0.5dB不等。把单独的方法变成插件,需要好多实验来证明泛用性

  • 3DGS、Mip-Splatting、HGS-MCMC:代码屎山里有个三维法向量没用,因此只新增了另一半透明度这一个新参数
  • Scaffold-GS:给MLP输出新增了4个参数

FreGS: 3D Gaussian Splatting with Progressive Frequency Regularization

FreGS paper code

南洋理工 CVPR 2024

动机

对图像进行FFT,在频域的相位和振幅上进行退火式的监督(从低频到高频逐渐放开),从而为不同频率的高斯点分裂提供不同的阈值。

本文深入研究了阈值需要改变的原因,比某人当年手动调阈值scheduler高到不知道哪里去了

nothing

试试用这种方法记录论文,不然读过都不记得了

posted @ 2025-03-19 19:20  wawcac  阅读(50)  评论(0)    收藏  举报