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一样具备前后端,定位精度和建图质量都有了很大提升。可惜没有开源。






审核编辑:刘清

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

    关注

    4

    文章

    820

    浏览量

    61520
  • CCM
    CCM
    +关注

    关注

    0

    文章

    173

    浏览量

    25436
  • SLAM
    +关注

    关注

    24

    文章

    456

    浏览量

    33186
  • MLP
    MLP
    +关注

    关注

    0

    文章

    57

    浏览量

    4929

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是激光雷达 3D SLAM技术?

    (SimultaneousLocalizationandMapping)即时定位,通俗来讲,就是让智能设备在未知环境中同步完成自身位置测算与周边环境地图构建。这两个过程互为支撑,
    的头像 发表于 12-02 19:23 74次阅读
    什么是激光雷达 3<b class='flag-5'>D</b> <b class='flag-5'>SLAM</b>技术?

    在Ubuntu20.04系统中训练神经网络模型的些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型的些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练个手写数字识
    发表于 10-22 07:03

    文读懂 RGB接口的 DE模式 和 行场(HV)模式 区别

    DE模式 (Data Enable Mode) 这是一种更现代的同步方式,也被称为“数据有效”模式。 同步信号:只使用个信号: DE (数据使能):这是
    发表于 09-18 14:18

    嵌入接口通识知识之RGB接口

    、绿、蓝三颜色的信号,来实现彩色图像的显示。每一种颜色信号都独立地控制了显示设备上对应颜色的亮度和色彩深度。它可以通过不同的传输方式实现,包括模拟RGB和数字
    发表于 08-29 15:54

    一种适用于动态环境的自适应先验场景-对象SLAM框架

    由于传统视觉SLAM在动态场景中容易会出现严重的定位漂移,本文提出了一种新颖的基于场景-对象的可靠性评估框架,该框架通过当前帧质量指标以及相对于可靠参考帧的场景变化,全面评估SLAM
    的头像 发表于 08-19 14:17 641次阅读
    <b class='flag-5'>一种</b>适用于动态环境的自适应先验场景-对象<b class='flag-5'>SLAM</b>框架

    一种适用于动态环境的实时RGB-D SLAM系统

    了UP-SLAM,这是一种适用于动态环境的实时RGB-D SLAM系统。实验结果表明,UP-SLAM
    的头像 发表于 07-04 15:14 972次阅读
    <b class='flag-5'>一种</b>适用于动态环境的实时<b class='flag-5'>RGB-D</b> <b class='flag-5'>SLAM</b><b class='flag-5'>系统</b>

    一种适用于动态环境的3DGS-SLAM系统

    当前基于神经辐射场(NeRF)或3D高斯泼溅(3DGS)的SLAM方法在重建静态3D场景方面表现出色,但在动态环境中的跟踪和重建方面却面临着挑战。
    的头像 发表于 06-13 10:10 990次阅读
    <b class='flag-5'>一种</b>适用于动态环境的3DGS-<b class='flag-5'>SLAM</b><b class='flag-5'>系统</b>

    同步发电机技术要求资料

    同步发电机技术要求
    发表于 06-10 15:16 1次下载

    三维高斯泼溅大规模视觉SLAM系统解析

    仍未得到探索。本文提出一种基于立体相机的三维高斯泼溅大规模视觉SLAM系统LSG-SLAM。通过在EuRoC数据集上的广泛评估,LSG-SLAM
    的头像 发表于 05-27 14:13 1132次阅读
    三维高斯泼溅大规模视觉<b class='flag-5'>SLAM</b><b class='flag-5'>系统</b>解析

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    结合IMU(惯性测量单元)进行多传感器融合。 三、总结与展望 技术融合趋势 机器人视觉与SLAM的结合(如视觉惯性里程计VIO)是当前研究热点,未来可能进步结合语义SLAM,让机器人不仅能
    发表于 05-03 19:41

    基于卫星图像的智能定位系统软件

    应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润基于卫星图像的智能定位系统。这些成功案例为基于卫星图像的智能定位
    的头像 发表于 04-01 09:55 793次阅读

    一种基于点、线和消失点特征的单目SLAM系统设计

    本文提出了一种稳健的单目视觉SLAM系统,该系统同时利用点、线和消失点特征来进行精确的相机位姿估计和地图构建,有效解决了传统基于点特征的SLAM
    的头像 发表于 03-21 17:07 835次阅读
    <b class='flag-5'>一种</b>基于点、线和消失点特征的单目<b class='flag-5'>SLAM</b><b class='flag-5'>系统</b>设计

    使用BP神经网络进行时间序列预测

    使用BP(Backpropagation)神经网络进行时间序列预测是一种常见且有效的方法。以下是个基于BP神经网络进行时间
    的头像 发表于 02-12 16:44 1266次阅读

    一种基于MASt3R的实时稠密SLAM系统

    本文提出了一种即插即用的单目SLAM系统,能够在15FPS的帧率下生成全局致的位姿和稠密几何图形。 01   本文核心内容 视觉SLAM
    的头像 发表于 12-27 15:25 2283次阅读

    一种降低VIO/VSLAM系统漂移的新方法

    本文提出了一种新方法,通过使用点到平面匹配将VIO/VSLAM系统生成的稀疏3D点云与数字孪生体进行对齐,从而实现精确且全球致的定位,无需
    的头像 发表于 12-13 11:18 1183次阅读
    <b class='flag-5'>一种</b>降低VIO/VSLAM<b class='flag-5'>系统</b>漂移的新方法