0. 这篇文章干了啥?
高斯溅射(Gaussian Splatting),由Kerbl等人提出的一项开创性工作,是高保真3D场景重建和新颖视图合成领域快速发展的研究方向,在学术界和工业界都引起了广泛关注。它在多个重要领域超越了之前许多基于NeRF的方法,包括i) 训练和渲染的计算效率,ii) 编辑和后期处理的便捷性,以及iii) 在硬件受限设备和基于Web技术上的可部署性。在本文中,我们介绍了gsplat,一个围绕高斯溅射构建的开源项目,旨在成为一个高效且用户友好的库。其核心理念是为基于PyTorch的项目开发高斯溅射模型提供一个简单且易于修改的API。
gsplat支持最新的研究特性,并采用现代软件工程实践进行开发。自2023年10月初次发布以来,gsplat在GitHub上获得了39位贡献者和超过1600颗星。gsplat在Apache License 2.0下发布。有关文档和更多信息,请访问网站:http://docs.gsplat.studio/
最接近的开源高斯溅射方法实现的先前工作包括GauStudio,它将各种研究努力整合到一个代码库中,以及几个基于PyTorch的复现。与以前的工作不同,gsplat不仅寻求实现原始3DGS工作并进行性能改进,还旨在提供一个易于使用和模块化的API接口,允许外部扩展和修改,从而促进高斯溅射领域的进一步研究。我们欢迎学生、研究人员和开源社区的贡献。
下面一起来阅读一下这项工作~
1. 论文信息
标题:gsplat: An Open-Source Library for Gaussian Splatting
作者:Vickie Ye, Ruilong Li, Justin Kerr, Matias Turkulainen, Brent Yi, Zhuoyang Pan, Otto Seiskari, Jianbo Ye, Jeffrey Hu, Matthew Tancik, Angjoo Kanazawa
机构:UC Berkeley、Aalto University 、ShanghaiTech University、SpectacularAI、Amazon、Luma AI
原文链接:https://arxiv.org/abs/2409.06765
代码链接:https://github.com/nerfstudio-project/gsplat
2. 摘要
gsplat是一个开源库,用于训练和开发高斯分布方法。它的特点是前端具有与PyTorch库兼容的Python绑定,后端具有高度优化的CUDA内核。gsplat提供了许多增强高斯分布模型优化的特性,包括速度、内存和收敛时间的优化改进。实验结果表明,与原始实现相比,gsplat的训练时间减少了10%,内存减少了4倍。gsplat在几个研究项目中使用,并在GitHub上积极维护。源代码可从https://github.com/nerfstudio-project/gsplat获得,在Apache许可证2.0下。我们欢迎来自开源社区的贡献。
3. 设计
gsplat 是一个独立开发的库,旨在提高效率和模块化。它可以在 Windows 和 Linux 平台上通过 PyPI 安装,并提供 PyTorch 接口。
出于速度考虑,许多操作都被编写成了优化的 CUDA 内核,并通过 Python 绑定暴露给开发者。此外,gsplat 还包含了原生的 PyTorch 实现,以支持对新研究想法的迭代。gsplat 的设计目标是提供一个简单的接口,该接口可以从外部项目中导入,从而轻松集成主要的高斯样条(Gaussian Splatting)功能,并根据最新研究成果进行算法自定义。gsplat 提供了详尽的示例、验证 CUDA 操作正确性的测试用例,以及托管在线的进一步文档,因此也可以作为新研究人员进入该领域的教育资源。
4. 特征
gsplat 库包含与高斯样条(Gaussian Splatting)相关的特性和算法实现。通过模块化接口,用户可以简单地通过 API 调用启用所需功能。在此,我们简要介绍 gsplat 提供的一些算法增强功能,这些功能在 Kerbl 等人提出的原始 3DGS 实现中并未包含。
推荐课程:
实时400FPS!高精NeRF/Gaussian SLAM定位与建图
。
密集化策略:高斯样条优化过程的一个关键组成部分包括在场景欠重建和过重建区域分别对高斯分布进行密集化和修剪。这一直是研究的活跃领域,而 gsplat 库支持一些最新的密集化策略。这些策略包括 Kerbl 等人提出的自适应密度控制(ADC)、Ye 等人提出的 Absgrad 方法,以及 Kheradmand 等人提出的马尔可夫链蒙特卡洛(MCMC)方法。gsplat 的模块化 API 允许用户轻松地在不同策略之间切换。
姿态优化:gsplat 中的高斯渲染过程(如图 1 所示)是完全可微的,这使得梯度可以流向高斯参数 G(c,Σ, μ, o) 以及其他参数,如相机视图矩阵 P = [R | t],这在原始工作中并未考虑。这对于缓解数据集中的姿态不确定性至关重要。具体而言,可以针对相机视图矩阵的旋转和平移分量计算重建损失的梯度,从而通过梯度下降优化初始相机姿态。
深度渲染:从高斯场景渲染深度图对于正则化和网格化等应用非常重要。gsplat 支持使用优化的 RGB+Depth 光栅化器渲染深度图,该光栅化器也是完全可微的。gsplat 支持使用每个像素的累积 z-深度和经过 alpha 归一化的预期深度来渲染深度图。
N 维光栅化:除了渲染三通道 RGB 图像外,gsplat 还支持渲染更高维度的特征向量。这受到将学习到的特征图与可微体渲染相结合的算法的启发。为了满足这些特征的存储需求,gsplat 后端允许在训练期间调整影响内存分配的参数,如内核块大小。
抗锯齿:以不同分辨率查看由高斯表示的三维场景时,可能会产生锯齿效应,这在先前的三维表示中也曾出现过。当分辨率降低或从远处查看场景时,小于一个像素大小的单个高斯分布由于采样率低于奈奎斯特频率而会产生锯齿伪影。Mip-Splatting在投影的二维高斯协方差上提出了一种低通滤波器,确保高斯分布的范围始终跨越一个像素。gsplat 支持使用 Yu 等人引入的二维抗锯齿模式进行渲染。
5. 评估
对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~
本文仅做学术分享,如有侵权,请联系删文。
3D视觉交流群,成立啦!
目前我们已经建立了3D视觉方向多个社群,包括
2D计算机视觉
、
最前沿
、
工业3D视觉
、
SLAM
、
自动驾驶
、
三维重建
、
无人机
等方向,细分群包括:
工业3D视觉
:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。
SLAM
:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。
自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。
三维重建
:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等
无人机
:四旋翼建模、无人机飞控等
2D计算机视觉
:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等
最前沿
:具身智能、大模型、Mamba、扩散模型等
除了这些,还有
求职
、
硬件选型
、
视觉产品落地、产品、行业新闻
等交流群
添加小助理: dddvision,备注:
研究方向+学校/公司+昵称
(如
3D点云+清华+小草莓
), 拉你入群。
▲长按扫码添加助理:cv3d008
「
3D视觉从入门到精通
」
知识星球
「3D视觉从入门到精通」知识星球
,已沉淀6年,星球内资料包括:
秘制视频课程近20门
(包括
结构光三维重建、相机标定、SLAM、深度估计、3D目标检测、3DGS顶会带读课程、三维点云
等)、
项目对接
、
3D视觉学习路线总结
、
最新顶会论文&代码
、