3DGS如何重塑点云配准?港中大开源首例3DGS配准工作!

论文标题:

GaussReg: Fast 3D Registration with Gaussian Splatting

论文作者:

Jiahao Chang, Yinglin Xu, Yihao Li, Yuantao Chen, and Xiaoguang Han

开源地址:https://jiahao620.github.io/gaussreg

导读:

点云配准是实现大规模3D场景SLAM和三维重建的关键问题。传统的配准方法已经逐渐淡出视野,而当前的配准方法通过借助深度学习技术取得了显著进展。

NeRF凭借强大的多视角图像渲染能力成为最受欢迎的三维重建方法之一,然而NeRF在大规模场景重建中的配准问题却鲜有研究。这是因为用隐式表示描绘两个场景之间的几何关系非常困难。现有的方法通常需要将隐式表示转换为显式表示,才能进行进一步的配准。

而3DGS不仅能够实现与NeRF一样高质量的图像渲染,还可以使用显式的高斯表示场景,使场景之间的配准成为可能。本文是基于3DGS进行配准的首份工作,作者相信这将为后续基于3DGS配准技术的研究提供宝贵的思路和参考。©️【深蓝AI】编译

1.引入

在传统的3D场景扫描和重建中,大规模场景通常会被分成不同的区块,生成很多位于不同坐标系的独立子场景。因此,这些子场景之间的配准非常重要。目前,点云配准技术已经得到了广泛研究并达到了相对成熟的阶段,典型的方法包括ICP、D3Feat和Geotransformer等。主流方法通常涉及从点云中提取特征并定位匹配点,以计算两个输入场景之间的变换关系。

在NeRF被提出且迅速席卷三维重建领域之后,3DGS的发布又成了一个新的里程碑,其实时的渲染能力,显性的场景表达,逼真的图像级场景重建使其迅速受到关注,广泛应用于三维场景表示。然而,在基于3DGS进行大规模场景重建时,面临两大主要挑战:

1)由于现实场景中存在复杂的遮挡情况,通常需要拍摄大量图像或视频来进行大规模重建,导致数据采集过程耗时较长。

2)3DGS是基于图像进行渲染和训练的,当场景较大,输入图像较多时,会带来比较大的运算量。

因此,一种直接的方法是将大规模场景划分为若干较小的场景,分别进行重建,然后利用配准技术将这些小场景组合在一起。

在图像处理领域,面对这样的挑战,一种非常有效的解决方案是将场景中重叠的部分进行配准,配准之后融合为同一个场景表示,从而节省了计算资源,减免了对于重复场景的运算。而3DGS在进行重建时,由于其显性表达,能够找到场景的各个部分,其中包括重叠的场景。考虑到两个重叠的场景,每个场景都有自己的3DGS模型。

于是,出现了一个有趣的问题:“既然3DGS提供了一种显示的点状表示,能否利用点云配准方法进行3DGS配准?”

在本文中,作者探索了使用3DGS进行快速且准确的3D配准,作者首先从两个场景的3DGS模型中提取点云。一个直接的方法是使用点云配准方法对这些3DGS点云进行配准。为此,作者设计了一种粗配准方法,该方法遵循标准的点云配准流程,如GeoTransformer,但特别考虑了3D高斯中的额外属性(如不透明度)。

然而,与传统的点云数据相比,来自3DGS的点云仅捕获粗略的几何结构且通常包含噪声。因此,粗配准无法达到足够精度的结果。作者进一步提出了一种新颖的基于粗配准结果的图像引导精细配准流程。作者的主要思想是基于观察到高斯展开不仅包含几何信息,还内在地包含详细的图像信息,这可以支持更精确的对齐。因此,作者首先在粗配准的帮助下定位重叠区域,并在高斯展开的帮助下渲染一些图像。然后,精细配准流程将图像投影到三维体积特征中进行最终匹配和变换估计。最终,作者提出了一种新颖的粗到细的高斯展开配准框架GaussReg。然而,目前缺乏使用高斯展开进行场景级配准的评估基准。为此,作者构建了一个名为ScanNet-GSReg的数据集,该数据集包含来自ScanNet数据集的1379个场景。此外,作者还收集了一个名为GSReg的数据集,包含6个室内和4个室外场景,以评估作者方法的泛化能力。作者在ScanNet-GSReg数据集、DReg-NeRF中使用的Objaverse数据集以及GSReg数据集上进行了广泛的实验,证明了作者方法的有效性。

在这里插入图片描述
图1|高斯配准效果图©️【深蓝AI】编译

2.具体方法与实现

在这里插入图片描述
图2|全文方法Pipeline©️【深蓝AI】编译

如图2所示,GaussReg主要包括两个阶段:粗配准和图像引导精细配准。假设有两个重叠的场景A和B,每个场景都有自己的高斯展开3DGS模型,且仅保存并可访问所有训练图像的相机姿态。将A和B的所有训练图像的相机姿态分别进行提取,并标记对应的3DGS模型。

作者的目标是找到刚性变换 ( s , R

### 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、付费专栏及课程。

余额充值