【泡泡图灵智库】利用双目相机数机数据进行实时动态障碍物检测和跟踪
泡泡图灵智库,带你精读机器人顶级会议文章
标题:
Leveraging Stereo-Camera Data for Real-Time Dynamic Obstacle Detection and Tracking
作者:
Thomas Eppenberger, Gianluca Cesari, Marcin Dymczyk, Roland Siegwart, and Renaud Dubé
机构:ETH Zurich (苏黎世联邦理工学院)
来源:IROS 2020
编译:姚瀚晨
审核:wyc
这是泡泡图灵智库推送的第548篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
摘要
大家好,今天为大家带来的文章是——
Leveraging Stereo-Camera Data for Real-Time Dynamic Obstacle Detection and Tracking。
动态避障是在拥挤环境中进行顺应性导航的重要组成部分。在本文中,我们提出了一种使用双目摄像机生成的噪声点云数据来准确,可靠地检测和跟踪动态对象的系统。我们的解决方案具有实时能力,并且专为在计算受限的无人地面车辆上部署而设计。提议的方法可以识别机器人周围环境中的单个对象,并将其分类为静态或动态。动态对象被标记为人或通用动态对象。然后,我们估计它们的速度,以生成适合执行避障的2D占用网格(2D occupancy grid)。我们在室内和室外情况下评估该系统,并在消费级计算机上实现实时性能。在我们的测试数据集上,对于动态对象的检测和跟踪,MOTP为0.07±0.07m,MOTA为85.3%。我们对静态物体的检测精度达到96.9%。
我的学习和理解是:
一句话来说:双目相机来做视觉SLAM,实现了导航和避障;
有特色的地方在于:将机器人周围环境区分为了静态和动态,动态中做了标记和网格处理;生成了一种2D占用网格——可以理解为像《我的世界》中的像素格子,2D占用网格是机器人需要避障的地方。
背景与贡献
我们作出以下贡献:
1)一种新颖的实时算法,用于基于有噪声的双目相机数据检测和跟踪通用动态对象;
2)一种将上述算法与基于视觉的人员检测器相结合的方法,以提高在短暂遮挡下,检测和跟踪性能以及处理能力;
3)在具有挑战性的数据集上对我们的pipeline进行了评估,展示了其性能和可靠性,从而提高了移动机器人的安全性。
图1 所提出的动态对象检测和跟踪方法的输出的可视化
左:指示检测的可信度和跟踪ID
右:生成的占用网格,其中正确识别了静态对象(红色像素)和检测到的行人(黄色点云)
1.整体框架
提出了一种利用双目相机数据来可靠、准确地检测和跟踪动态对象的解决方案。为此,我们首先提出一种新颖的算法,用于基于通用动态对象的运动来检测它们。为了增强在拥挤空间中的感知性能,我们使用视觉人物检测器将人类的运动独立地分类为一类特定的动态对象,如图1所示。我们的方法使用动态对象的估计速度来处理短时遮挡。据我们所知,这是第一个提出完整解决方案的工作,该解决方案使用双目摄像机通过结合全局最近邻搜索和可视人检测器(global nearest neighbor searches)来检测和跟踪通用动态对象。该系统仅依靠一台双目相机的有噪声的数据,并设计为在受计算约束的平台上运行。
2. 方法
图2 我们的pipeline概述:输入是双目图像,以及来自可视SLAM模块的机器人的估计姿势。输出是2D占用栅格,它可以规划靠近静态对象的路径,并确保以安全距离避开动态对象。
为了将图片看得更清楚,下面是局部放大的图2:
2.1 点云生成
第一个模块根据未失真和经过校正的立体图像生成3D点云。
1)块匹配(Block-Matching):我们使用半全局块匹配,并在所得视差图上应用加权最小二乘滤波器;
2)深度双目(Deep Stereo):最近,出现了学习从立体图像推断视差值的深度神经网络。我们使用MADNet,因为我们发现该网络可以在运行时和性能之间做出适当的折衷。图3示出了通过两种方法生成的示例性视差图。
图3 使用双目图像生成的深度表示。
左:块匹配不能在右侧的低纹理对象的部分或地板的发亮表面上生成深度信息;
中:MADNet捕获对象和地板的大部分。与块匹配相比,它提供了更完整的深度信息;
右:原始图像。
2.2 点云过滤
对前一个模块生成的点云进行过滤,以减少噪声并对数据进行下采样以实现实时性能。我们将初始裁剪后的点云表示为hd,将滤波后的点云表示为hs。
2.3 聚类和3D跟踪
1)聚类:DBSCAN;
2)3D跟踪:首先,在时间t,我们将全局框架中所有当前群集的质心计算为其所有点的平均值。然后,我们将它们关联到最接近的质心,将群集关联到前一帧。
2.4 分类为静态和动态
根据投票策略,确定的聚类分为静态或动态:
1)对单个点的投票
2)从投票中排除要点
首先,如果机器人的视场(FOV)在两个帧之间改变,则点可能会出现在当前FOV的区域中,该区域与先前的FOV不重叠。由于我们仅观察到这些点云一次,将它们排除在投票之外。
其次,如果当前聚类的点先前被其他对象遮挡,则我们将其排除在投票之外。具体来说,我们区分了这种遮挡和当物体从相机移开时发生的自遮挡,如图4所示。
图4 动态物体检测时的遮挡处理
左:由于当前聚类C在上一帧中被聚类A遮挡,因此聚类C被排除在投票范围之外,而聚类A属于另一个群集;
右:没有将当前聚类E排除在表决范围之外,因为在前一帧中它被属于同一聚类D所遮挡。
2.5 2D人物检测
系统会将站立的人分类为静态,并且只有在她开始走路时才意识到它是动态的对象。通过将Mobilenet-SSD作为可视的2D人检测器添加到我们的pipeline中,我们实现了对行人的运动独立检测。我们选择此网络是因为它在灰度图像的运行时间和性能之间提供了适当的权衡。
图5 左:Mobilenet-SSD人检测器的示例输出。每次检测均通过置信度进行评分,显示在顶部。我们为在图像平面上跟踪的每个边界框分配一个ID;
右:我们将检测结果与聚类相关联,蓝色长方体表示。
主要结果
图6 我们评估中使用的样本图像以及用于收集它们的平台。我们的系统依靠安装在前面的双目相机,而LiDAR仅用于评估目的。
图7 来自LiDAR和双目相机的点云之间的最近邻居距离d的标准化直方图,以分析准确性和完整性。
上图/精度:d从相机到LiDAR的测量值。
下图/完整性:d从LiDAR到相机的距离。精度极限lc = 0.8m上方的区域表示立体摄像机点云未捕获的对象点。
相关资源
视频:https://youtu.be/AYjgeaQR8uQ
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。