DynaSLAM

DynaSLAM是基于ORB-SLAM2的视觉SLAM系统,能检测和处理动态物体,适用于服务机器人和自动驾驶等应用场景。通过使用CNN和多视角几何相结合的方式,DynaSLAM在高动态环境中展现出优越的性能,同时估计出环境的静态地图,适合长期应用。实验结果显示,DynaSLAM在TUM和KITTI数据集上超过了标准SLAM方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

假设环境刚体性在SLAM算法中是典型的。这种强假设限制了大多数SLAM在真实环境中的使用,这是一些相关应用的目标,如服务机器人或自动驾驶。Bescos等人展示了DynaSLAM,一种视觉SLAM系统,建立在ORB-SLAM2上,增加了动态物体检测背景修补。DynaSLAM在动态场景中是鲁棒的。作者能够通过多视图几何,深度学习或者两者同时来检测动态物体。得到的静态场景地图允许修补被动态物体遮挡的帧背景。DynaSLAM 超过了标准SLAM的表现在高动态环境中。同时,它也估计了环境静态部分的地图,对于真实环境的长期应用是必要的。

1. 介绍

SLAM是许多机器人应用的前提,例如无碰导航,SLAM技术联合估计未知环境的地图和机器人在该地图中的位姿。该地图允许机器人在相同场景中连续定位且没有累积误差。这和里程计方法相反,其整合窗口内的增量运动,并且在重新访问地点时不能修正漂移。

视觉SLAM,其中主要的传感器是相机,已经受到了很大程度的关注和过去几年研究人员的努力。单目相机的最小解决方案具有实际优势在大小,功率和代价上,还具有一些挑战例如尺度的不可观或者状态初始化。通过使用更复杂的设置,例如双目或者RGB-D相机,这些问题将会被解决并且视觉SLAM系统的鲁棒性能够被很大程度地提高。

研究社区已经从很多角度解决了SLAM。但是,大多数方法和数据集假设静态环境。因此,它们只能管理很少的动态内容通过分类它们为静态模型的外点。即使静态假设对于这些机器人应用成立,它限制了视觉SLAM在许多相关情形中的应用,例如在现实世界中长期操作的智能自主系统。

视觉SLAM能够被分类为基于特征的[2][3]方法,其依赖显著的点匹配并且只能估计一个稀疏的重建;和直接法[4]-[6],其能够估计完全稠密的重建通过光度误差的直接最小化和TV正则化。一些直接法专注于高梯度区域估计半稠密地图[7][8]。

上述方法没有解决场景中动态物体的常见问题,例如人的行走,自行车或者汽车。检测和处理动态物体在视觉SLAM中揭示了一些挑战对于建图和跟踪,包括:

1)如何在图片中检测这种动态物体:

a)避免跟踪算法使用属于动态物体的匹配。

b)避免建图算法包含运动物体作为3D地图的一部分。

2)如何完整化3D地图中暂时被运动物体遮挡的部分。

沿着这些方向,许多应用将会受益。除了这些,AR,自动驾驶和医疗影像。所有这些将会从成功复用之前得到的地图。检测和处理动态物体是必须的来估计静态地图,对于长期应用非常有用。如果动态成分没有被检测到,它将变成3D地图的一部分,复杂化它的跟踪和重定位的应用。

在我们的工作中,我们提出一种在线算法来解决RGB-D,双目和单目SLAM中的动态物体。这被解决通过增加一个前端到SOTA ORB-SLAM2系统中,为了具有更准确的跟踪和复用场景地图的作用。在单目和双目例子中,我们的目的是使用CNN到逐像素的分割帧中的先验动态物体,从而SLAM算法不会提取它们上的特征。在RGB-D的例子中,我们提出组合多视角几何模型和基于深度学习的算法用于检测动态物体并且之后从图片中移除它们,去除遮挡背景的瑕疵通过场景的修正信息(图1)。

图1. DynaSLAM结果的综述在RBG-D情形下。

本文的剩余部分如下:第二节讨论相关工作。第3节给出我们方法的细节,第4节详细讨论实验结果,第5节展示结论和未来工作。

2. 相关工作

动态物体,在大多数SLAM系统中,被分类为虚假数据,并因此既不被包含在地图中也不被用于相机跟踪。最经典的外点拒绝算法是RANSAC(例如,在ROB-SLAM中[3][1])和鲁棒代价函数(如,在PTAM中[2])。

有一些SLAM系统解决了更具体的动态场景内容,在基于特征的SLAM中,最相关的为:

  • Tan等人[9]检测发生在场景中的变化通过投影地图特征到当前帧中用于外观和结构验证。
  • Wangsiripitak和Murray[10]跟踪场景中已知的3D动态物体。类似地,Riazuelo等人[11]解决人类行为通过检测和跟踪行人。
  • 最近地,Li和Lee的工作[12]使用深度边缘点,其被加权关联以表示属于动态
### DynaSLAM 技术概述 DynaSLAM 是一种针对动态环境下的即时定位与地(SLAM)算法,能够处理场景中的动态对象并保持稳定的跟踪性能。该算法通过检测和分割动态物体,在过程中忽略这些动态特征,从而提高系统的鲁棒性和准确性[^1]。 具体而言,当存在动态物体时,系统会尝试利用先前观测到的静态背景信息来填补因物体遮挡而缺失的数据。这一过程涉及将多个历史关键帧(通常设定为最近的20个)所携带的颜色(RGB)及深度数据映射至当前视角下被标记为动态区域的位置上[^2]。 为了实现上述功能,DynaSLAM 需要维护一个复杂的状态表示体系,其中不仅包含了各时刻间像间的关联矩阵 \( C_{ij} \),还记录了随时间演化的隐藏状态变量 \( h_{ij} \)[^1]。每当完成一轮迭代计算后,\( h_{ij} \) 将得到更新,并据此预测新的姿态变换以及相应的深度调整量 \( d^{k} \) ,进而指导后续帧的姿态估计与深度恢复工作。 值得注意的是,在实际应用中可能会遇到某些难以直接填充的情况——比如从未出现在任何已知视角内的新区域或是缺乏有效深度测量的地方。对于这类情形,则需借助更加高级的技术手段来进行合理的推测或修补操作。 ```python # Python伪代码展示如何基于现有信息推断未知区域 def infer_missing_regions(current_frame, previous_frames): # 对于每个未匹配像素位置p for p in current_frame.unmatched_pixels(): found_match = False # 查找之前的帧是否有合适的候选者用于补全 for prev_frame in previous_frames[-20:]: if can_project(prev_frame, p): # 如果可以从prev_frame投影到当前位置p fill_pixel(p, project_from(prev_frame, p)) found_match = True if not found_match: apply_advanced_inpainting_technique(p) ``` 尽管 DynaSLAM 已经取得了显著进展,但在面对极端条件或者高度复杂的环境中仍然面临挑战。未来的研究方向可能包括但不限于改进动态目标识别精度、增强对稀疏甚至无纹理表面的理解能力等方面的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值