全景分割动态视觉slam
Panoptic-SLAM: Visual SLAM in Dynamic Environments using Panoptic Segmentation
摘要: 大多数视觉 SLAM 系统在动态场景中并不稳健。处理场景中的动态对象的方法通常依赖于基于深度学习的方法来检测和过滤这些对象。然而,这些方法无法处理未知的移动物体。这项工作提出了 Panoptic-SLAM,这是一种对动态环境具有鲁棒性的开源视觉 SLAM 系统,即使存在未知物体也是如此。它在状态估计过程中使用全景分割来过滤场景中的动态对象。 PanopticSLAM 基于 ORB-SLAM3,这是一种适用于静态环境的最先进的 SLAM 系统。该实现使用真实世界的数据集进行了测试,并与文献中的几个最先进的系统进行了比较,包括 DynaSLAM、DSSLAM、SaD-SLAM、PVO 和 FusingPanoptic。例如,Panoptic-SLAM 的平均准确度是 PVO(最新的基于全景的视觉 SLAM 方法)的四倍。此外,还使用带有 RGB-D 相机的四足机器人进行了实验,以测试我们的方法在现实场景中的适用性。这些测试通过运动捕捉系统创建的地面实况进行了验证。
引言: 先前所有方法的主要问题是必须有预先确定数量的可以检测并因此过滤的对象类。换句话说,如果未标记的对象在场景中移动,则它不会被过滤,并且其特征会导致地图中的定位和异常值发生漂移。
具体贡献:
- 一种基于全景分割的新型视觉 SLAM 系统,可以在存在未知和未标记的移动物体的动态环境中执行鲁棒的定位。该系统可以与单目、立体和 RGB-D 相机配合使用,因为它只需要 RGB 图像信息。
- 使用Bonn RGB-D 动态数据集进行测试,该数据集明确包含场景中的未知动态对象,并使用 TUM RGB-D 数据集 ,与当前状态相比,在多个序列中获得了最佳结果艺术方法。
- 在包含移动和静态未知物体(例如其他四足机器人)的场景中,使用连接到在室内环境中移动的四足机器人的 RGB-D 相机进行实验测试。 Vicon 系统用于获取准确度评估的基本事实。新的数据集用于测试所提出的方法,事实证明,与 DynaSLAM 相比,该方法的平均准确度提高了 2 倍。
方法:
图 2 显示了 Panoptic-SLAM 的示意图。 SLAM系统基于ORB-SLAM3,由四个并行运行的线程组成:全景分割、跟踪、局部建图和闭环。首先,图像帧在跟踪和全景分割线程中进行处理。在跟踪线程中提取 ORB 特征,并在全景分割线程中将图像分割为事物、东西和未知对象。事物对象被发送到短期数据关联算法,以确定它们是新的还是出现在上一帧中。与背景(Stuff 对象)相关的特征与最后一帧的特征相匹配,并用于计算基本矩阵。使用这个基本矩阵,与已知和未知对象相关的关键点被分类为动态或静态。仅静态特征用于映射和循环闭合。
- 全景分割
在全景分割中,像素被分类为“Things”或“Stuff”。Things是具有明确边界的可数对象,并且可能是可移动的,例如人、动物或车辆。另一方面,Stuff是指图像中不可数的无定形区域,大部分是“不可移动的”,例如天空、地板或墙壁。实例分割识别Things类别中的单个对象,而语义分割则用其相应的类别标记图像中的所有像素。 该分割方法具有较高的准确度和效率,超越了之前的基于框或无框模型。
此外,图像的某些部分可能会导致未知,即全景模型无法为其分配任何标签的区域。由于运动模糊或场景中未标记的对象,可能会出现未知蒙版。也可能存在错误的检测,即对象分类错误。如果场景中的对象被标记,但存在另一个具有相似特征的类(例如电视和监视器),或者未标记的对象与标记的类相似,则可能会发生这种情况。
本文选择PanopticFPN[28]作为全景分割模型,尽管任何全景分割模型都可以在Panoptic-SLAM框架中使用。 PanoticFPN 使用 COCO 数据集进行训练,它可以分割多达 80 个 Thing 不同标签和 91 个 Stuff 不同标签。图 1(b) 显示了全景分割输出的示例。
- 动态关键点过滤
所提出的动态关键点检测和过滤方法分为四个过程:先验关键点过滤、基本矩阵计算、短期数据关联以及事物和未知的移动关键点分类。
- 关键点过滤:首先,全景模型生成所有掩模预测。人物关键点是先验过滤的,因为人类可以被认为是高度动态的,只有在极少数情况下,他们才会长时间保持完全静止。属于 Stuff mask 的关键点用于通过 RANSAC 计算基本矩阵。
- 基本矩阵计算:为了计算基本矩阵,必须在两个连续帧中识别相应的特征。特征匹配涉及在两个帧中查找与场景中相同 3D 点相对应的点对。如果没有准确的特征匹配,就无法准确计算基础矩阵,从而导致后续任务出现错误。特征匹配算法使用最近邻方法来匹配参考图像和查询图像中关键点的 ORB 描述符。具体来说,对于参考图像中的每个关键点,算法根据其 ORB 描述符的相似性在查询图像中搜索最接近的关键点。
基本矩阵用于将前一帧的特征点映射到当前帧中相应的搜索域,即极线。假设当前帧和最后一帧的匹配点分别为p1和p2,它们的齐次坐标形式可以表示为P1和P 2
其中u和v表示图像帧中的像素坐标,j表示关键点类别(事物或未知)。使用这些值,我们可以计算极线,表示为 L:
假设X、Y、Z表示线向量,F表示基本矩阵,则匹配点与其对应的极线之间的距离可以确定为
其中Dj是匹配点与其对应的极线之间的距离。 Dj的阈值配置为0.1,因此系统可以对关键点的移动敏感。其想法是使用静态关键点计算出基本矩阵,并将其与事物和未知特征匹配一起使用,以确定匹配点到其对应极线的距离是否小于某个阈值。如果距离低于阈值,则认为匹配的关键点是静态的。 - 短期数据关联:事物的移动关键点分类使用短期数据关联算法来解决帧中多个对象具有相同标签的问题。短期数据关联使用并集交集 (IoU) 度量来评估当前帧中检测到的新事物掩码是否对应于上一帧的事物掩码。每个实例掩码都是用其各自的边界框来预测的。对于时间 k 和 k − 1 的每一对新帧,算法检查来自同一标签的任何两个边界框是否重叠。一旦检测到重叠,算法将提取物体轮廓 Ck 和 Ck−1 来计算 IoU = |Ck ∩ Ck−1|/|Ck ∪ Ck−1|并确定两个轮廓是否有关联。为了过滤对象的关键点并确定哪些对象在运动,必须区分共享相同标签的多个对象。如果当前帧中的对象与前一帧中的任何对象都不匹配,则将其视为新对象,并过滤与其掩码关联的特征。
- 移动关键点分类:数据关联后,匹配属于相同标签和相同跟踪ID的事物的当前帧和上一帧关键点。 D t h i n g D_{thing} Dthing 是使用匹配的特征和基本矩阵来计算的,以确定哪些点是动态的,从而被过滤。
通过将所有已知掩模添加到单个图像中并分析其中的黑色区域来定位属于未知像素的特征,如图3(a)所示。该过程类似于事物的移动关键点分类。在未知掩模中找到当前帧和上一帧的匹配关键点后,使用基本矩阵检查这些点以计算对极距离
D
u
n
k
D_{unk}
Dunk 并确定它们是静态还是动态。不匹配的点被过滤掉。
实验结果:
表 1:使用 TUM RGB-D 数据集将 PanopticSLAM 的 ATE [m] 的 RMSE 与 10 种最先进的方法进行比较
表 II:使用Bonn RGB-D 动态数据集将 Panoptic-SLAM 的 ATE [m] 的 RMSE 与 ORB-SLAM3、DynaSLAM 和 ReFusion 进行比较
图 4:TUM RGB-D 数据集的两个动态序列中真实情况与 Panoptic-SLAM 估计的轨迹之间的比较
图 5:Bonn RGB-D 动态数据集的无遮挡框序列中真实情况与 ORB-SLAM3(左)和 Panoptic-SLAM(右)估计的轨迹之间的比较
表 III:使用具有不同配置的 Panoptic-SLAM 对波恩 RGBD 动态数据集进行 ATE 评估 [m]
真实场景实验:
图 7:全景分割和关键点过滤步骤在机器人人 (RP) 和移动机器人 (MR) 序列中的 Panoptic-SLAM 的输出示例
表 IV:实验中 Panoptic-SLAM 的 ATE [m] 的 RMSE 与 ORB-SLAM3 和 DynaSLAM 的比较
图 8:在基线 (B)、移动机器人 (MR) 和机器人人 (RP) 序列中,地面实况与 ORB-SLAM3 和 Panoptic-SLAM 估计的轨迹之间的比较
图 9:移动机器人和机器人人序列中的地面实况与 DynaSLAM 估计的轨迹之间的比较
限制:
全景分割的计算成本目前不允许 Panoptic-SLAM 实时运行。此外,由于相机快速移动和照明变化,全景分割结果可能会不一致。然而,这些不一致对整体结果影响不大,因为过滤是基于帧之间匹配关键点的移动,而不是对象类。
原文地址:https://blog.csdn.net/weixin_45761399/article/details/140541147
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!