告别3DGS!带神经补偿的频谱剪枝高斯场SUNDAE开源了!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【Mamba和3DGS】交流群

添加微信:CVer5555,小助手会拉你进群!

扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶刊上的论文idea和CV从入门到精通资料,及最前沿应用!发论文/搞科研/涨薪,强烈推荐!

88c6e099617624f27f08940a3b996de0.jpeg

转载自:机器之心

本论文作者包括帝国理工学院硕士生杨润一、北航二年级硕士生朱贞欣、北京理工大学二年级硕士生姜洲、北京理工大学四年级本科生叶柏均、中国科学院大学本科大三学生张逸飞、中国电信人工智能研究院多媒体认知学习实验室(EVOL Lab)负责人赵健、清华大学智能产业研究院(AIR)助理教授赵昊等

最近,3D Gaussian Splatting (3DGS) 作为一种新颖的 3D 表示方式,因其快速的渲染速度和高渲染质量而受到关注。然而,这种方法也伴随着高内存消耗,例如,一个训练好的高斯场可能会使用超过三百万个高斯基元和超过 700 MB 的内存。

近日,帝国理工学院、北航、北京理工大学、中国科学院大学、中国电信人工智能研究院多媒体认知学习实验室(EVOL Lab)、清华大学智能产业研究院(AIR)等机构的研究者联合发表了一篇论文《SUNDAE: Spectrally Pruned Gaussian Fields with Neural Compensation》,我们认为这种高内存占用是由于没有考虑基元之间的关系。在论文中,我们提出了一种名为 SUNDAE 的内存高效的高斯场,采用频谱修剪和神经补偿

91896325a5591c2eda49188a0a035fed.png

  • 文章链接:https://arxiv.org/abs/2405.00676

  • 项目主页:https://runyiyang.github.io/projects/SUNDAE/

一方面,我们基于高斯基元的空间信息构建了一个图,用于模拟它们之间的关系,并设计了一个基于图信号处理的降采样模块来剪枝,同时保留所需信号。另一方面,为了补偿剪枝造成的质量下降,我们利用了一个轻量级神经网络来混合渲染特征,有效地补偿了质量下降,同时在其权重中捕获基元之间的关系。

我们通过大量的结果展示了 SUNDAE 的性能。例如,在 Mip-NeRF360 数据集上,SUNDAE 可以在使用 104 MB 内存的情况下达到 26.80 PSNR 和 145 FPS,而标准的 3D Gaussian Splatting 算法在使用 523 MB 内存的情况下达到 25.60 PSNR 和 160 FPS。

与此同时,自从开源后,SUNDAE 受到国际上广泛的关注,受到了知名 NeRF 社区 MrNeRF,AI research 社区维护者 Ahsen Khaliq、以及多位相关领域研究人员转发关注。

b55ccd1b4ebaab9759a6ecf093b32746.png

d242c236bf9f1e05f226ec3d5265f299.jpeg

一、带神经补偿的频谱剪枝高斯场

1.1 基于频谱图的剪枝策略

3DGS 使用一组高斯基元来表示场景,由于这些基元在三维空间中的分布不规则,我们提出了基于图的方法来捕获基元之间的关系,而不是使用网格这样的常规结构。

具体来说,我们采用图信号处理理论来推导一个最优的采样策略,该策略能够基于图信号保留特定频谱的信息。通过控制频谱带宽,我们可以灵活地控制剪枝比例,建模高斯基元之间的关系。如图 1 (c),我们可以控制剪枝 90% 的高斯基元而不降低渲染质量。

4999be69024d533781d59688b2819221.png

图 1: (a) 3DGS 7k 迭代次数的结果;(b) 3DGS 30k 迭代次数的结果,使用了更多的高斯基元来表示三维场景,因此质量更高、速度更慢、存储空间更大;(c) 剪枝了 90% 的高斯基元,在存储空间上大幅减小,但是达到了相似的渲染效果。

我们使用高斯基元的中心来作为图上的信号输入,将高斯基元之间的距离作为图的边,图的邻接矩阵可以表示为

371422315141d640128189864fad8401.png

其中0476737ad4a8106bf3061bc5294b3009.png是高斯基元的中心点,257137fce9f31206b74207965292754a.png是一个阈值超参数,d8b3b73abcef4f15f535022c245c61aa.png是距离矩阵的方差。也就是说,如果两个高斯基元之间的距离比一个阈值小,那么我们将其之间建立一条图的边。建立好图的邻接矩阵之后,我们可以根据 Haar-like 滤波器对图上的信号进行处理,得到特定频段的图信号。最终根据想要的频段信号进行剪枝,本文中我们使用了带阻滤波器,保留表示物体细节的高频信号和背景点的低频信号。

1.2 神经补偿机制

经过频谱剪枝后,渲染质量因为删去了过多的高斯基元不可避免会下降,为了解决这个问题,我们采用了一个神经网络来补偿这一质量损失,如图 2 所示。

我们从 Gaussian Splatting 转换到了 Feature Splatting,引入一个轻量级卷积神经网络来输出高斯基元映射到图像上的 RGB 值,从而融合不同基元的信息。这使得补偿网络的权重在二维图像空间中间接地来捕获基元之间的关系。

e71651c54f1deeae9357431eef527d2d.png

图 2: 左边显示的原版 3DGS,由于没有捕捉到基元之间的关系,因此需要大量的存储空间;中间展示了我们的频谱剪枝策略,建模高斯基元之间的关系;右侧显示神经补偿利用 2D 特征来改善渲染效果。

具体来说,我们不是像 3DGS 那样直接渲染 RGB 图像,而是通过用于 3D 高斯的可微分光栅化器获得一个特征图,该光栅化器将 3D 高斯基元的特征投影到二维特征图上。

然后,我们利用一个轻量级神经网络来建模基元之间的关系并补偿频谱剪枝后的质量下降。这个网络由一个具有 skip-connection 的四层全卷积 U-Net 组成,它聚合来自不同基元的信息。使用平均池化进行下采样,并使用双线性插值进行图像上采样。该网络以光栅化的特征图为输入,输出 RGB 图像。

SUNDAE 的总体框架如下图 3 所示。

0b7f327c06e26e970e8fd11579d4b8ed.png

图 3: (a) Pipeline: 对一个预训练的 3D 高斯场,采用基于图的剪枝策略对高斯基元进行降采样,并使用卷积神经网络来补偿剪枝造成的损失。(b) 基于图的剪枝:基于高斯基元之间空间关系的图被用于剪枝。通过使用带阻滤波器,这一过程便于从高频组件中提取细节信息,同时捕捉低频部分的一般特征,从而实现整个场景的全面而高效的表示。

1.3 连续剪枝策略

此外,我们还提出了一个连续剪枝的策略来降低峰值存储,与训练后剪枝不同,后者从一个完全密集的高斯场中剪除基元,连续剪枝涉及在整个训练过程中的预定义间隔定期移除特定数量或比例的基元。这种方法旨在在训练 3D 高斯场时持续控制基元的最大数量,从而降低训练期间的峰值内存需求,并允许在 GPU 内存较低的 GPU 设备上进行训练。

经验表明,较低峰值内存的优势以较弱的最终内存占用控制为代价。例如,如果我们每 2000 次迭代剪掉 20% 的基元,3D 高斯场的最终收敛状态可能会偏离预期的 20% 减少。

此外,这种变化可能在不同场景中有所不同,增加了剪枝效果的可预测性和一致性的复杂性。因此,我们将连续剪枝策略视为必要时的替代方案。

二、实验结果

2.1 定量结果

我们将 SUNDAE 与最先进的 3DGS 和 NeRF 算法进行对比,相比于 3DGS 来说,我们的模型只占用了 10% 的内存就可以达到相似的效果,并且使用 30% 或 50% 的内存便能超过原版 3DGS。并且在 FPS 上远远超过了 NeRF 相关的其他算法。

这是由于我们的模型能较好的捕捉高斯基元之间的关系,使用更少的高斯基元来高效地表征三维场景。

b4a612c362e4f32dc62b9d76e02f94e7.png

2.2 定性结果

定性结果中可以看到看到,我们们将 SUNDAE 在 1% 和 10% 采样率的定性结果与 3DGS 和 InstantNGP 进行比较。

定性结果显示,SUNDAE 能够在只使用 10% 甚至 1% 的内存消耗下,达到类似的新视角合成质量。图成功地构建了基元之间的关系,而神经补偿头部有效地维持了渲染质量。并且从图 5 的第四行和最后一行可以看到,频谱剪枝能够移除靠近摄像机的漂浮物。

4f05698f8b28153e2e2583f4b7b3d61e.png

2.3 消融实验

2.3.1 带阻滤波器

带阻滤波器的比率由一个参数表示。具体来说,在基于图的剪枝过程中,我们采样了若干基元,包括一定比例 () 的高通和剩余的 (1-) 低通。

结果表明,这个参数对渲染质量有显著影响,50% 的比率提供了最佳的结果,而对低频或高频信号的不成比例强调会导致质量下降,因为通 50% 的比率保留了均衡的高频细节和低频背景所以效果更优。

73eb3faffc1d3f4619576abb2373dced.png

2.3.2 补偿网络

如图 6 和表 2 所示,我们定性和定量地展示了补偿网络的重要性。如表 2 所示,所有采样率下,使用神经补偿相比不使用都表现出了改善的性能。这一点通过图 6 中展示的可视化结果得到了进一步支持,展示了该模块在缓解频谱剪枝造成的性能下降方面的补偿能力。同时,也证明了基元之间的关系被很好地捕捉。

a17f161b8da01af391151f5797d8323f.png

如表 3 所示,我们尝试了不同大小的补偿网络,增加网络大小并不一定能提高渲染质量,这与 ADOP 的发现一致,表明了相似的趋势。我们采用 30MB 的 4 层 UNet 作为默认设置,以最佳平衡质量和内存。

1e2388eab4507712f007d5bd58aa77e1.png

2.3.3 更多的采样点

如上表 1 所示,保留 50% 的基元在渲染质量上优于原始的 3DGS。我们还额外测试了保留 80% 和保留所有基元,以检验采样率如何影响最终结果,如表 4 所示。

结果显示,保留 80% 的基元提高了渲染质量,根据 LPIPS 显示出改进,但在 PSNR 和 SSIM 上的视觉提升很小。保留所有基元(并训练更多的周期)无法进一步提高质量,这也显示了建模基元关系的重要性。如果没有有效的关系建模,更多的基元会使模型难以收敛,且大量基元对场景表示产生负面影响。

此外,我们的目标是平衡渲染质量与存储效率;然而,将存储增加到 620MB 以保留 80% 的基元只带来了轻微的质量提升,从而降低了存储效率。

1178b28798c87c53ee29b47ce85a4db2.png

2.3.4 连续采样策略

我们在 MipNeRF360 数据集中的 Bicycle 和 Counter 场景上测试了连续采样策略,设定不同的剪枝间隔迭代次数和剪枝率。如表 5 所示,Points 是训练后的基元数量,Ratio 是训练后基元数量与原始 3DGS 的大致比率。

结果显示,这种策略可以降低峰值内存,但难以控制最终内存(通过 Points 和 Ratio 反映)。因此,我们验证了我们的训练后剪枝策略,但仍然在我们的开源工具箱中提供连续剪枝策略作为一种替代方案。

541679bffde4b18dc5ea176882a04b7c.png

2.3.5 高效性评估

关于训练时间、CUDA 内存、渲染帧率和 ROM 存储的详细信息,请参见表 6。值得注意的是,「Ours-50%」版本在可接受的训练时间内(1.41 小时)达到了最好的渲染质量,同时实现了实时渲染,并显著降低了训练期间的 CUDA 内存使用和 ROM 存储。

43ab0a797f8b2446403a2822a83a4b62.png

三、结论

在这篇工作中,我们提出了一种新颖的具有神经补偿的频谱剪枝高斯场 SUNDAE,通过引入图信号处理,来建模高斯基元之间的关系,并混合不同基元的信息来补偿剪枝造成的信息损失。

我们使用高斯基元之间的空间信息构建图来建模关系,并根据频谱信息进行剪枝,去除冗杂的基元。一个轻量级神经网络被用来补偿剪枝后不可避免的渲染质量损失。

实验结果表明,SUNDAE 在保持 3DGS 的效率的同时,显著减小了内存,提升了效率并且保持了高保真的渲染质量。

何恺明在MIT授课的课件PPT下载

在CVer公众号后台回复:何恺明,即可下载本课程的所有566页课件PPT!赶紧学起来!

CVPR 2024 论文和代码下载

在CVer公众号后台回复:CVPR2024,即可下载CVPR 2024论文和代码开源的论文合集

Mamba、3DGS交流群成立

 
 
扫描下方二维码,或者添加微信:CVer5555,即可添加CVer小助手微信,便可申请加入CVer-Mamba、3DGS 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF、3DGS、Mamba等。
一定要备注:研究方向+地点+学校/公司+昵称(如Mamba、3DGS+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

 
 
▲扫码或加微信号: CVer5555,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!

▲扫码加入星球学习
 
 
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
### 3DGS高斯点云处理、分析与可视化的概述 #### 处理 3DGS(三维高斯溅射)作为一种先进的视图合成方法,能够从二维图像及其对应的相机姿态生成高质量的三维表示[^2]。在实际应用中,处理阶段涉及多个步骤,包括但不限于数据采集、特征提取和模型训练。具体而言,3DGS依赖于结构化光流法(Structure from Motion, SfM)获取精确的初始化参数[^1]。如果采用随机初始化,则可能影响最终生成图像的质量。 为了克服这一局限性,研究者提出了诸如RAIN-GS这样的优化策略,使得即使从随机初始化的点云出发也能训练出高质量的3DGS模型。此外,在构建完整的3DGS工作流时,还需要考虑硬件加速的需求。例如,`gaussian-splatting-cuda`项目提供了基于CUDA的高效实现方案,支持大规模点云数据集的快速处理[^4]。 ```bash # 安装gaussian-splatting-cuda所需的依赖项 sudo apt-get install nvidia-cuda-toolkit git clone https://github.com/your-repo/gaussian-splatting-cuda.git cd gaussian-splatting-cuda && make ``` --- #### 分析 针对3DGS的数据分析主要集中在以下几个方面: 1. **精度评估**:通过比较不同初始化方式下的峰值信噪比(PSNR),可以量化模型性能的变化趋势。 2. **几何特性解析**:由于每个高斯分布不仅包含位置信息还携尺度和方向属性,因此可以通过统计手段深入理解景的空间布局特点。 3. **与其他技术对比**:相比于传统的点云表达形式,3DGS具备更高的分辨率及更细致的表现力;不过也存在一些不足之处,比如难以完全保留所有的几何细节。 值得注意的是,尽管可以直接导入至某些主流软件包(如CloudCompare)来进行初步观察,但由于丢失部分重要维度的信息(例如旋转矩阵等),所以得到的结果往往显得较为稀疏不够理想。 --- #### 可视化 对于3DGS成果的有效展示离不开专用渲染引擎的支持。当前市面上已有不少开源工具可供选用,其中包括由GauStudio团队开发的一整套综合型框架,它允许使用者便捷地执行各类实验并分享研究成果[^3]。借助此类平台,不仅可以轻松预览复杂的动态效果还能调整各项参数直至达到满意的效果为止。 以下是使用Python脚本调用PyVista库绘制简单点云实例: ```python import pyvista as pv def visualize_gaussian_splatting(points, colors=None): point_cloud = pv.PolyData(points) if colors is not None: point_cloud['colors'] = colors p = pv.Plotter() p.add_points(point_cloud, scalars='colors', render_points_as_spheres=True, point_size=5) p.show() if __name__ == "__main__": points = [[0, 0, 0], [1, 0, 0], [0, 1, 0]] # 示例坐标列表 colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)] # 对应的颜色值 visualize_gaussian_splatting(points, colors) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值