0. 这篇文章干了啥?
视觉同时定位与地图构建(Visual Simultaneous Localization and Mapping,VSLAM)对于开发稳健的移动机器人至关重要。理想的VSLAM系统能够从实时视频输入中重建出具有逼真精度的环境。然而,传统使用点云和占用网格等场景表示的VSLAM方法在全面捕捉场景方面存在不足。相比之下,三维高斯溅射(3D Gaussian Splatting,3DGS)能够生成细节更丰富、更逼真的场景。3DGS类似于标准的三角形光栅化,但它使用三维高斯函数(类似于模糊的云团)而非多边形。高斯溅射的工作原理是将每个高斯函数投影到相机中,按深度进行排序,并从前往后进行混合以渲染出渲染图像的像素。这种表示方法既密集又详细,且能够快速渲染新的视图,具有许多优点,如增强闭环检测和为机器人任务提供更多数据。
3DGS在VSLAM中的初步应用,如SplaTAM,成功地利用实时单目视频输入生成了3DGS场景。然而,与ORBSLAM3等传统VSLAM系统相比,它们在跟踪精度和运行速度上都有所不及。这些挑战可能源于其跟踪方法的差异。传统VSLAM通过跨连续图像跟踪特征点来计算姿态。相比之下,3DGS是通过将3DGS优化扩展到包括姿态在内的方式来融入VSLAM的。典型的3DGS程序首先从一个如Colmap的结构从运动系统中获得一组固定的姿态和初始点。在将初始点转换为三维高斯函数后,连续优化它们的位置、大小和颜色,以最小化渲染图像与输入图像之间的差异。如有需要,随着优化的进行,会在空白区域添加高斯函数或对其进行修剪。将VSLAM融入3DGS需要同时优化姿态。因为使用3DGS的VSLAM依赖于渲染的三维场景进行跟踪,所以其速度受到需要生成高质量三维场景的限制。例如,SplaTAM每帧进行40到60次训练迭代,以达到足以进行准确跟踪的地图质量。因此,减少构建良好地图所需的时间将提高使用3DGS的VSLAM系统的速度。
InstantSplat是一种能够快速生成高质量三维几何语义(3DGS)地图的技术。它采用最先进的立体重建器DUSt3R,生成密集初始点云,而不是从典型的从运动恢复结构(SfM)方法中获取的稀疏点云。DUSt3R即使在特征缺乏的区域也能生成点,通过消除在这些位置创建点的需求,从而加速了3DGS过程。
然而,DUSt3R并不是生成高密度点云的唯一方法。我们的主要贡献在于证明,如Direct Sparse Odometry(DSO)等基于单目光度或像素的视觉同时定位与地图构建(VSLAM)系统,能够生成高密度点云,从而加速3DGS的训练。基于像素的SLAM系统跟踪高梯度像素而非特征点,由于具有更多的跟踪候选点,因此生成的点云更密集。我们进一步修改了DSO,以跟踪更多未用于姿态优化的像素,从而将点云密度提高到与DUSt3R相当的水平。
下面一起来阅读一下这项工作~
1. 论文信息
标题:Towards Real-Time Gaussian Splatting: Accelerating 3DGS through Photometric SLAM
作者:Yan Song Hu, Dayou Mao, Yuhao Chen, John Zelek
机构:Natural Sciences and Engineering Research Council of Canada
原文链接:https://arxiv.org/abs/2408.03825v1
2. 摘要
三维高斯样条(3DGS)在视觉同时定位与地图构建(VSLAM)中的初步应用展示了从单目视频流生成高质量体积重建的潜力。然而,尽管取得了这些令人鼓舞的进展,但与传统的VSLAM相比,当前的3DGS集成在跟踪性能和运行速度方面仍有待提高。为了解决这些问题,我们提出将3DGS与直接稀疏里程计(一种单目光度SLAM系统)相结合。我们已进行了初步实验,结果表明,与使用标准的从运动恢复结构(Structure-from-Motion, SfM)方法相比,使用直接稀疏里程计的点云输出可以显著缩短实现高质量渲染所需的训练时间。减少3DGS的训练时间,有助于开发在移动硬件上实时运行的3DGS集成SLAM系统。这些有前景的初步发现表明,有必要进一步探索将传统VSLAM系统与3DGS相结合的方法。
3. 效果展示
我们进行了实验,结果表明,将修改后的DSO点云和姿态输入到3DGS中,而不是使用Colmap,可以显著缩短训练时间,尤其是在训练过程的早期阶段。如图1所示,在不到一分钟的时间内就生成了质量良好的3DGS渲染图。此外,DSO以实时速度运行,与典型的从运动恢复结构系统相比速度更快。这一贡献对于使用3DGS且速度至关重要的VSLAM系统特别有益。
4. 基本原理是啥?
本节提供对DSO及其所做修改的简化描述。DSO通过跟踪连续帧i和j中的一组像素来工作。它使用以下光度损失方程针对集合中的每个像素优化姿态p:
其中,I查询像素强度,a和b是光度变量,s是曝光量。此函数找到在帧i和j之间最能匹配像素变化的姿态变化,同时考虑光照变化。
通过跟踪高梯度像素,DSO可以为其地图创建密集点云;然而,点选择是针对跟踪性能进行优化,而非最大化点密度。我们发现,与DSO最优跟踪设置通常生成的点云相比,3DGS在更密集的点云上训练得更快。为了在不损害跟踪性能的情况下提升3DGS性能,我们修改了DSO,以包含未用于姿态跟踪的额外点。
DSO的像素选择器被修改以在缺乏跟踪像素的区域中均匀分布地找到额外像素。由于这些额外像素可能位于难以跟踪的位置,因此仅优化它们的位置,而不影响整体姿态跟踪。此外,图像中的某些区域缺乏梯度,使得跟踪变得不可能。为了确保3DGS在这些无梯度区域中存在点,我们实现了一个系统,该系统在这些区域中放置一些点,并将它们的位置设置为附近跟踪点的平均值。
5. 实验结果
在Replica数据集上进行了初步实验,以探索该方法的有效性。图2和表I展示了部分结果。从数据中可以看出,使用修改后的DSO点云输入会导致峰值信噪比(衡量图像渲染质量的一个指标)相比使用传统的从运动恢复结构(SfM)点云更快地增加。
6. 总结 & 未来工作
综上所述,我们的主要贡献在于证明了当前的光度VSLAM方法可以增强3DGS的速度和效率。实验结果表明,光度VSLAM的输出可以加速3DGS的训练,从而在使用3DGS的VSLAM系统中实现更快的跟踪。我们希望未来的工作能够在此基础上进一步发展,通过并行运行DSO和3DGS,而不仅仅是将DSO的输出作为3DGS的输入。然而,由于这两种技术的跟踪优化方法不同,将它们结合起来并非易事,需要更多的研究。尽管存在困难,但结合光度和3DGS技术可以构建出一个既快速又提供详细密集表示的VSLAM系统,其性能可与最先进的系统相媲美。
对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~
本文仅做学术分享,如有侵权,请联系删文。
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视觉学习路线总结
、
最新顶会论文&代码
、