点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
原文链接: https://arxiv.org/pdf/2010.07820v1.pdf
标题:DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM
作者:Berta Bescos , Carlos Campos, Juan D. Tardós , and José Neira
机构:Universidad de Zaragoza
来源:RAL
编译:zhuhu
审核:靳军
本文转载自泡泡机器人SLAM。文章仅用于学术分享。
视觉SLAM算法中的静态刚体假设是非常常见的,但是这也限制了SLAM在很多实际场景的应用.而且,大多数场景比如:自动驾驶,多机器人协作和AR/VR,都需要有明确的周围环境运动信息来帮助做决策和场景理解. 在本文中提出了DynaSLAM II, 这是一个使用双目和RGB-D配置的SLAM系统,紧耦合了多物体跟踪的能力.DynaSLAM II使用物体语义分割和ORB特征点对动态物体进行跟踪.在一种新的BA方案中,将静态场景和动态对象与相机和移动物体的轨迹一起进行优化. 还在固定的时间窗口内估计并松耦合地优化对象的3d边界框.我们证明,跟踪动态物体不仅可以为场景理解提供更多的信息,同时也可以为相机追踪提供帮助.
该系统是基于ORB-SLAM2进行开发的.系统的输入是已同步和已标定的双目/RGB-D图片,输出则是每帧中相机和动态物体的位姿,包括含有动态物体的时间和空间的地图.对于输入的每帧图片,将逐像素地进行语义分割和ORB特征点的提取,以及在双目图像对中进行匹配.我们首先将静态和动态特征与上一帧和地图中的特征相关联,假设摄像机和观测对象都是恒速运动的. 然后基于动态特征对应关系匹配对象实例. 静态匹配用于估计初始相机姿态,动态匹配产生对象的SE(3)变换。最后,在滑动窗口上优化摄像机和物体的轨迹,以及物体的边界框和3D点,并在此基础上进行柔和平滑的运动。以下小节解释了DynaSLAMII的不同贡献和构建块。
本文指出在视觉SLAM中根据自然特性和影响有两种类型的动态物体:
对于每个输入的帧,有下列步骤会执行:
逐像素地进行语义分割和ORB特征点提取并在双目之间进行匹配.我们假设动态物体的特征点是属于有先验的动态物体,不管它们的运动.
首先将静态特征点与上一帧中的对应特征点进行关联,之后使用ORB-SLAM实现对地图进行初始化来估计相机的位姿.
使用Munkres算法,以联合上的2D边界框交集为代价,构建连续帧之间的并行实例到实例的匹配.
之后,动态特征会以两种不同的方式与本地地图中的动态点相关联.
a. 如果地图对象的速度已知,则通过假设帧间恒速运动的重新投影来搜索匹配。实例匹配结果用于发现离群值.
b. 如果物体的速度没有初始化或者没有足够的匹配从a步中找到,我们将暴力匹配限制为在连续帧中属于最重叠实例的那些特征.
物体与物体之间的一种高级关联也是需要的.如果大多数新实例关键点与属于同一个地图对象的点相匹配,则该实例将被赋予相同对象追踪的id.
如果与先验动态类对应的实例包含7个以上未观察到的关键点,并且这些关键点的立体3d投影接近相机(小于立体基线的55倍),则会创建一个新的对象实例.然后将关键点指定给相应的对象.
在多视图几何中,重投影误差由下列公式进行表示:
而这个重投影误差是针对静态环境的,本文提出了一种新的重投影误差表达对动态物体进行处理:
其中 表示当相机观察到物体k时,物体k在世界坐标系中的姿态的逆.
考虑到额外的复杂性,主要是跟踪移动对象的任务在 SLAM 任务之上隐含的额外参数数量,为了保持实时性能,尽可能地减少该数目是非常重要的. 与一般的动态SLAM实现的一样,通过形成独立的点云将动态点建模为重复的3d点会产生大量的参数. 给定一个集合有 个相机, 每个相机观察到 个动态物体,每个动态物体对应着 个3D点.则需要跟踪的动态物体对象的参数变为 . 而传统的SLAM系统只需要 . 这一数量级的参数对于长时间(和短时间)的操作和部署来说是令人望而却步的。如果引入对象的概念,则3D对象点将变得唯一,并且可以引用其动态对象. 因此,随着时间的推移建模的是对象的位姿,并且所需的参数变为了 . 图3表示了参数表示了参数的压缩率,定义为10个物体的 .这种对动态物体和点的建模能够很大程度上减少参数的数量.
Bundle Adjustment可以提供准确的相机姿态估计和稀疏几何重建,给出一个强大的匹配网络和良好的初始猜测. 我们假设假如物体的位姿也被联合优化也许会带来类似的好处.如图4所示.
在本文的实现中,关键帧的插入有两种情况:
第一种情况和ORB-SLAM中是一样的, 第二种是由于在当前帧中动态物体有数量相对较大的特征而只有很少部分特征点被用来做追踪.则有下列优化的场景:
我们建议将动态对象的轨迹估计和物体的Bounding boxes估计解耦。前者为系统跟踪提供了丰富的自我运动估计线索,两者的结合有助于理解周围环境的动态变化。数据关联和BA阶段的输出包括摄像机姿态、静态场景和动态对象的结构以及每个对象一个点的6自由度轨迹。这一个点是首次观察到的对象三维点的质心。即使质心随着新的点观测而随时间变化,跟踪和优化的对象姿势也会参考此第一个质心。为了对运动的环境有完整的理解,我们需要知道物体的维度和空间占用.单独处理这两个问题允许从第一帧开始跟踪动态对象,在第一帧中,动态对象独立于摄影机-对象视点出现。
我们通过搜索大致适合大多数对象点的两个垂直平面来初始化对象边界框。我们假设许多人造物体可以近似地适合一个3D边界框。在只找到一个平面的情况下,我们在与对象类相关的不可观测方向的粗略维度上添加先验。这一过程是在RANSAC方案内完成的:我们选择具有CNN 2D边界框的图像投影具有最大交并比的计算出3D边界框。此边界框为每个对象轨迹计算一次。
为了细化边界框尺寸及其相对于对象跟踪参考的姿势,在时间窗口内执行基于图像的优化。此优化旨在最小化3D边界框图像投影和CNN 2D边界框预测之间的距离。假设该问题在少于三个对象视图的情况下不可观察到,则仅当对象具有至少三个观察关键帧时才执行此操作。此外,为了在对象的视图使得该问题不可观察(例如,从后面观察到的汽车)的情况下约束解空间,包括关于对象尺寸的软先验。由于此优先级与对象类紧密相关,因此我们认为添加此软优先级并不意味着失去通用性。最后,将初始边界框姿势设置为优先姿态,以使优化解保持接近。
实验中主要对比了两个结果:一个是相机的位姿估计精度,另一个是多物体跟踪的表现.
我们提出了一种对象级的SLAM系统,该系统具有摄像机、物体和三维地图点之间的新的测量功能。这使我们能够跟踪动态物体,并紧密地优化自我和环境的轨迹,让这两种估计都是互惠互利的。我们将目标跟踪问题从边界框估计问题中解耦出来,与其他工作不同的是,我们不对目标的运动、姿态或模型做任何假设。我们的实验表明,DynaSLAM II在实时性能上达到了最高的精确度,这使得我们的框架适合于大量的现实世界应用。我们的系统基于特征的核心限制了它发现准确的3D边界框的能力,也限制了它跟踪纹理较低的对象的能力。充分利用密集的视觉信息肯定会推动这些限制的进一步发展。我们还想探索更具挑战性的任务-基于单目相机的多目标跟踪和SLAM。这是一个有趣的方向,因为动态对象追踪可以提供有关地图比例的丰富线索。
独家重磅课程!
1、VIO课程:VIO灭霸:ORB-SLAM3源码详解,震撼上线!
2、图像三维重建课程(第2期):视觉几何三维重建教程(第2期):稠密重建,曲面重建,点云融合,纹理贴图
3、重磅来袭!基于LiDAR的多传感器融合SLAM 系列教程:LOAM、LeGO-LOAM、LIO-SAM
4、系统全面的相机标定课程:单目/鱼眼/双目/阵列 相机标定:原理与实战
5、视觉SLAM必备基础(第2期):视觉SLAM必学基础:ORB-SLAM2源码详解
6、深度学习三维重建课程:基于深度学习的三维重建学习路线
7、激光定位+建图课程:激光SLAM怎么学?手把手教你Cartographer从入门到精通!
全国最棒的SLAM、三维视觉学习社区↓
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群,请添加微信号 chichui502 或扫描下方加群,备注:”名字/昵称+学校/公司+研究方向“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
扫描关注视频号,看最新技术落地及开源方案视频秀 ↓
— 版权声明 —
本公众号原创内容版权属计算机视觉life所有;从公开渠道收集、整理及授权转载的非原创文字、图片和音视频资料,版权属原作者。如果侵权,请联系我们,会及时删除。