1 一种基于RGB-D图像序列的协同隐式神经同步定位与建图(SLAM)系统-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种基于RGB-D图像序列的协同隐式神经同步定位与建图(SLAM)系统

3D视觉工坊 来源:3D视觉工坊 2023-11-29 10:35 次阅读

2. 摘要

提出了一种基于RGB-D图像序列的协同隐式神经同步定位与建图(SLAM)系统,该系统由完整的前端和后端模块组成,包括里程计、回环检测、子图融合和全局优化。为了在一个统一的框架中启用所有这些模块,我们提出了一种新的基于神经点的3D场景表示,其中每个点都保持用于场景编码的可学习神经特征,并且与某个关键帧相关联。此外,还提出了一种从分布式到集中式的协作隐式SLAM学习策略,以提高一致性和协调性。与传统的光束法平差一样,本文还提出了一种新的全局优化框架来提高系统精度。在不同数据集上的实验证明了该方法在相机跟踪和建图方面的优越性。

3. 算法解析

重新理一下思路,NeRF SLAM为啥火?

因为NeRF和SLAM可以相互辅助,SLAM为NeRF训练提供位姿,NeRF可以重建高清晰度的地图、做空洞补全、或者用光度损失反过来优化位姿。

有什么问题?

个人感觉现在NeRF SLAM有两个问题,一个是计算量大难以落地,一个是因为做不了回环和全局优化导致定位精度低。

CP-SLAM的核心思想是什么?

传统的NeRF地图不好做回环和优化,但是改成基于点的NeRF地图,就可以像传统SLAM那样去优化了!

具体是如何实现的?

CP-SLAM本身是一个多机协同SLAM,输入是RGB-D数据流,每个SLAM系统分别执行跟踪和建图,最后执行子地图融合。每个SLAM系统都维护一个神经点辐射场,借助3个MLP(特征融合、颜色场、占用场)来渲染深度图和颜色图。通过计算光度和几何损失来优化辐射场和相机位姿。同时每个单独的SLAM不断地用NetVLAD提取关键帧描述子,并发送到描述子池(有点像ORB-SLAM的关键帧数据库),中央服务器检测到回环以后融合子地图,并执行全局BA。最后再做一个以关键帧为中心的地图优化。

cc4d2ee8-8d79-11ee-939d-92fbcf53809c.png

下面来逐个聊聊每个子模块的具体原理。

这个神经点是啥?

神经点辐射场来源于CVPR 2022 oral的文章Point-NeRF,用神经点表示三维场景。其实就是让空间中的点同时存储位置信息(xyz)和局部场景信息(单层CNN提取的神经特征向量,CP-SLAM里是32维),原始Point-NeRF的神经点里还存储了[0, 1]范围的置信度,表示这个点有多大概率离真实物体很近。

当然,使用神经点辐射场也有优点有缺点:

优点:执行回环检测和BA优化时,3D点比原始NeRF场景更好调整,所以就很容易引入回环和局部地图优化。

缺点:由于神经点分布在观察对象的表面周围,因此未见区域的空洞填补能力弱于特征网格方法。

位姿跟踪和NeRF建图如何进行?

辐射场采样上也用到了一个trick,就是尽量让采样点贴近物体表面。对于深度有效的点,分别从[0.95D, 1.05D]和[0.95Dmin, 1.05Dmax]区间内均匀采样,D表示点的深度值,Dmin和Dmax表示整个深度图的最小最大深度。

对每个采样点xi,首先检索它半径r范围内的K个邻域点,用一个MLP(框图中的C)分别处理这K个点,使每个点的特征向量都融合了跟采样点的距离信息(对应f~k,x~):

cc66f8be-8d79-11ee-939d-92fbcf53809c.png

再用一个MLP(框图中的U)来学习采样点xi的RGB信息,这里就需要用到上一步K个点的特征向量了:

cc7b753c-8d79-11ee-939d-92fbcf53809c.png

最后还需要用一个MLP(框图中的G)来学习采样点xi的占用概率,这里还是用到上上步计算的K个特征向量,当然如果没有邻域点那占用肯定就是0了:

cc9d8cc6-8d79-11ee-939d-92fbcf53809c.png

这两步预测的占用和颜色信息实际上表示了射线中止的概率α,再加上深度值z就可以渲染得到当前视角的深度图和RGB图:

ccba8682-8d79-11ee-939d-92fbcf53809c.png

然后就可以使用深度图和RGB图计算几何损失和光度损失来优化位姿、点特征向量、还有3个MLP:

ccd41fa2-8d79-11ee-939d-92fbcf53809c.png

这里还有几个需要注意的点:

1、整个序列的第一帧需要采样很多的点来初始化,优化步骤达到3000∼5000次;

2、位姿表示成四元数和平移格式,当前帧位姿的初始值设置为上一帧的位姿,优化时要固定神经特征向量和3个MLP权重;

3、优化位姿没有用到光度损失,作者认为RGB图是一个高度非凸问题。

基于学习的回环检测如何实现?

这部分主要是用于融合多个SLAM系统分别建立的子地图,并减少位姿的累计漂移。首先对每个关键帧用预训练的NetVLAD提取描述子,并把描述子扔到池子里(类似ORB-SLAM的关键帧数据库),然后用余弦相似性来检测回环。

局部优化很吃初值,如果两帧运动太快的话,就很容易陷入局部最优,所以CP-SLAM采用了一个由粗到精的回环检测策略。如果相似性超过λfine的话直接执行回环优化和子地图融合,如果低于λfine但高于λcoarse的话就只做一个位姿图优化。当然子地图融合之后肯定有大量的冗余点,还需要做一步非极大值抑制(网格过滤)。

cceb995c-8d79-11ee-939d-92fbcf53809c.png

SLAM协同如何实现?

CP-SLAM本身就是一个协同SLAM,协同部分是设计了一个两阶段(从分布式到集中式)的MLP训练策略,来提高协作一致性。分布式阶段就是每个SLAM单独做跟踪和优化,执行回环和子地图融合以后就进入集中式阶段,注意集中式阶段需要一个中心服务器来做子图和优化的全局管理。

这个阶段用的是联合学习,也就是以共享的方式训练单个网络。在子地图融合的同时,对每组MLP进行平均处理,并对所有关键帧上的平均MLP进行微调,随后将共享MLP转移到每个SLAM做训练,并且平均每个SLAM权重作为共享MLP的最终优化结果。

cd04875a-8d79-11ee-939d-92fbcf53809c.png

最后简单说一下位姿图优化

这个模块分为两部分,一部分是维护子地图的共视图,一部分是是基于帧的地图优化。在执行子地图融合后做全局优化,位姿图中每帧的位姿是顶点,序列相对位姿和回环相对位姿是边,优化还是用的L-M算法。

为了方便优化3D点云位置,作者还做了一个trick:每个3D点都与一个关键帧相关联。

cd2abdf8-8d79-11ee-939d-92fbcf53809c.png

4. 实验结果

实验这一块分别对比了单机SLAM和协作SLAM模式,单机SLAM对比在Replica数据集进行,对比传统SLAM(ORB-SLAM3)和NeRF SLAM(NICE-SLAM和Vox-Fusion),协同SLAM对比的传统SLAM方案(CCM-SLAM、Swarm-SLAM、ORB-SLAM3)。CP-SLAM的运行环境是一块3090,如果需要做协同的话,就再需要一块3090做为中心服务器。

双机协作精度的定量对比,注意ORB-SLAM3本身不是协作SLAM,所以作者的实验方法是融合数据集,然后用ORB-SLAM3的多地图系统来执行地图融合。

cd408340-8d79-11ee-939d-92fbcf53809c.png

4个场景上CP-SLAM和CCM-SLAM的协作实验轨迹对比,可以发现CP-SLAM的地图融合效果还是比较好的。

cd5829f0-8d79-11ee-939d-92fbcf53809c.png

单机SLAM的精度对比,这个就说明CP-SLAM的精度超越ORB-SLAM3了。当然如果不加入回环的话,CP-SLAM精度还是不够,这一点上说明限制NeRF SLAM精度提升的关键就在局部地图优化和回环优化。

cd6e7868-8d79-11ee-939d-92fbcf53809c.png

单机SLAM轨迹的定性对比,对比的NICE-SLAM和Vox-Fusion这两个NeRF SLAM方案,没有对比ORB-SLAM3。

cd955438-8d79-11ee-939d-92fbcf53809c.png

TUM数据集上精度和鲁棒性的定量对比,但对比的还是只有Co-SLAM和ESLAM这两个NeRF SLAM方案,没对比ORB-SLAM3。这里也推荐工坊推出的新课程《彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战》。

cdc0fe4e-8d79-11ee-939d-92fbcf53809c.png

NeRF建图的定量对比,证明三维重建的精度超越了之前的NeRF SLAM方案。

cde68786-8d79-11ee-939d-92fbcf53809c.png

NeRF建图的定性对比。

ce0fe216-8d79-11ee-939d-92fbcf53809c.png

神经点密度的消融实验,证明神经点不是越多越好,也不是越少越好。

ce3fa58c-8d79-11ee-939d-92fbcf53809c.png

Office-0-loop场景上运行时间和内存消耗的定量对比,包括单帧跟踪时间、建图时间、MLP大小、整个神经场的内存大小。NICE-SLAM神经场的尺寸超级大,这是因为它为了解决遗忘问题设计的多层特征网格。

ce650bba-8d79-11ee-939d-92fbcf53809c.png

地图优化和采样点融合的消融实验,还是验证它们的策略是对的。

ce80a596-8d79-11ee-939d-92fbcf53809c.png

5. 总结

本文介绍了浙大最新的工作CP-SLAM,号称是第一个基于NeRF的协作SLAM,跟传统SLAM一样具备前后端,定位精度和建图质量都有了很大提升。可惜没有开源。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58459
  • CCM
    CCM
    +关注

    关注

    0

    文章

    144

    浏览量

    23970
  • SLAM
    +关注

    关注

    23

    文章

    423

    浏览量

    31819
  • MLP
    MLP
    +关注

    关注

    0

    文章

    57

    浏览量

    4241

原文标题:NeurlPS'23 | 第一个协作神经隐式SLAM!(浙大NICE-SLAM团队最新力作)

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用VLM和MLLMs实现SLAM语义增强

    语义同步定位SLAM系统在对邻近的语义相似物体进行
    的头像 发表于 12-05 10:00 117次阅读
    利用VLM和MLLMs实现<b class='flag-5'>SLAM</b>语义增强

    LSTM神经网络在图像处理中的应用

    长短期记忆(LSTM)神经网络是一种特殊的循环神经网络(RNN),它能够学习长期依赖关系。虽然LSTM最初是为处理序列数据设计的,但近年来,它在图像
    的头像 发表于 11-13 10:12 363次阅读

    最新优化框架,全面提升SLAM定位精度

    同时定位与地图构建(SLAM)是项关键技术,允许移动机器人在部分或完全未知的环境中自主导航。它包括使用机载传感器同时估计机器人状态和构建传感器检测到的环境地图。SLAM可以根据传感器
    的头像 发表于 11-12 11:26 333次阅读
    最新<b class='flag-5'>图</b>优化框架,全面提升<b class='flag-5'>SLAM</b><b class='flag-5'>定位</b>精度

    MG-SLAM:融合结构化线特征优化高斯SLAM算法

    同步定位与地图构建 (SLAM) 是计算机视觉中的个基本问题,旨在在同时跟踪相机姿势的同时对环境进行地图构建。基于学习的密集 SLAM
    的头像 发表于 11-11 16:17 262次阅读
    MG-<b class='flag-5'>SLAM</b>:融合结构化线特征优化高斯<b class='flag-5'>SLAM</b>算法

    一种完全分布的点线协同视觉惯性导航系统

    在本文中,我们提出了一种完全分布的点线协同视觉惯性导航系统。我们通过蒙特卡罗模拟和真实环境数据集,在稠密特征或稀疏特征环境下将所提出的算法与其他四
    的头像 发表于 09-30 14:45 383次阅读
    <b class='flag-5'>一种</b>完全分布<b class='flag-5'>式</b>的点线<b class='flag-5'>协同</b>视觉惯性导航<b class='flag-5'>系统</b>

    一种半动态环境中的定位方法

    和终身定位方法,以识别非静态环境中的半动态物体,并提出了个通用框架,将主流物体检测算法与定位算法集成在
    的头像 发表于 09-30 14:40 256次阅读
    <b class='flag-5'>一种</b>半动态环境中的<b class='flag-5'>定位</b>方法

    rnn神经网络基本原理

    RNN(Recurrent Neural Network,循环神经网络)是一种具有循环结构的神经网络,它能够处理序列数据,并且能够捕捉时间序列
    的头像 发表于 07-04 15:02 707次阅读

    鼾声监测神经网络

    序列,包括心理学、物理学、医学和经济学48,49,50,51。在本文中,我们将时间序列的关联视为图像,这使得能够进行基于CNN的分析。 对于声音片段及其相应的可见性
    发表于 05-15 12:14

    常用的RGB-D SLAM解决方案

    BundleFusion是一种稠密的实时室内场景三维重建算法框架。输入为RGB-D相机采集的并且是对齐好的RGB图像和深度的数据流。输出为
    的头像 发表于 04-16 09:37 1000次阅读
    常用的<b class='flag-5'>RGB-D</b> <b class='flag-5'>SLAM</b>解决方案

    从基本原理到应用的SLAM技术深度解析

    LSD-SLAM 即 Large-Scale Direct SLAM,兼容单目相机和双目相机。LSD-SLAM一种基于光流跟踪的直接法SLAM
    发表于 02-26 09:41 9183次阅读
    从基本原理到应用的<b class='flag-5'>SLAM</b>技术深度解析

    移动协作机器人的RGB-D感知的端到端处理方案

    本文提出了一种用于具有双目视觉的自主机器人的三维语义场景感知的端到端流程。该流程包括实例分割、特征匹配和点集配准。首先,利用RGB图像进行单视图三维语义场景分割,将2D数据集中的常见对
    发表于 02-21 15:55 681次阅读
    移动协作机器人的<b class='flag-5'>RGB-D</b>感知的端到端处理方案

    动态环境中基于神经表示的RGB-D SLAM

    神经表示已经被探索用于增强视觉SLAM掩码算法,特别是在提供高保真的密集地图方面。
    的头像 发表于 01-17 10:39 895次阅读
    动态环境中基于<b class='flag-5'>神经</b><b class='flag-5'>隐</b><b class='flag-5'>式</b>表示的<b class='flag-5'>RGB-D</b> <b class='flag-5'>SLAM</b>

    坐标系在动态SLAM中究竟有多重要?

    大多同时定位SLAM系统在传统上假定的都是静态世界,这与现实世界的场景不符。
    的头像 发表于 01-05 13:46 881次阅读
    坐标系在动态<b class='flag-5'>SLAM</b>中究竟有多重要?

    应用于3D对象检测的点云深度学习方法

    随着激光雷达传感器(“光检测和测距”的缩写,有时称为“激光扫描”,现在在些最新的 iPhone 上可用)或 RGB-D 摄像头(一种 RGB-D 摄像头)的兴起,3
    的头像 发表于 01-03 10:32 1057次阅读
    两<b class='flag-5'>种</b>应用于3<b class='flag-5'>D</b>对象检测的点云深度学习方法

    手持RGB-D传感器广泛应用的情况

    DisCo方法:提出了一种基于扩散的跨模态形状重建方法。该方法利用三平面扩散模型,结合部分点云和多视图图像,实现了高保真度的3D形状重建。混合特征聚合层有效融合了不同输入模态的局部特征,提高了特征对齐效果。
    的头像 发表于 12-26 16:44 500次阅读
    手持<b class='flag-5'>RGB-D</b>传感器广泛应用的情况