每天一篇论文微习惯 279/365 CubeSLAM: Monocular 3D Object SLAM
原文
摘要
提出了一种静态和动态环境下的单图像三维长方体目标检测和多视图目标SLAM方法,并证明了这两种方法的有效性。首先,对于单图像目标检测,我们从二维包围盒和消失点采样中生成高质量的长方体方案。根据与图像边缘的对齐,进一步评分和选择方案。其次,提出了基于新目标测量的多视束平差方法,对摄像机、目标和点的姿态进行联合优化。目标可以提供长距离的几何和尺度约束,以改善相机姿态估计和减少单目漂移。我们不把动态区域当作孤立点来处理,而是利用对象表示和运动模型约束来改进摄像机的姿态估计。Sun RGBD和KITTI的3D检测实验显示了比现有方法更好的准确性和鲁棒性。在公开的TUM、KITTI-odometry和我们自己收集的数据集上,我们的SLAM方法实现了最先进的单目相机姿态估计,同时提高了三维物体的检测精度。
贡献
最后,在动态情况下,我们不把运动目标当作孤立点来处理,而是基于动态点观测和运动模型约束来联合优化摄像机和目标的运动轨迹。总之,我们的贡献如下:
1.一种高效、准确和稳健的单图像三维长方体检测方法,无需事先建立目标模型。
2.一种在摄像机、物体和点之间进行新测量的物体SLAM方法,在包括KITTI基准在内的许多数据集上实现更好的姿态估计。
3.结果表明,目标检测和SLAM互为有利。
4.一种利用移动物体改善动态场景中姿势估计的方法。
方法
本文提出了一个系统,将二维和三维目标检测与SLAM姿态估计结合起来,用于静态和动态环境。在假设长方体投影后与二维包围盒紧密匹配的前提下,利用消失点(VP)采样有效地生成了许多三维长方体方案。然后通过多视图BA,利用点和摄像机对所选的长方体方案进行进一步优化。对象有两种用途:在BA中提供几何和比例约束,以及为难以三角化的点提供深度初始化。
整体框架
从VP中得到2D点
我们首先展示如何根据VP得到8个二维长方体角点。由于最多可以同时观察到三个长方体面,我们可以根据图2所示的可观察面的数量将长方体结构分为三类:
从二维角点获取三维长方体姿势
在得到二维图像空间的长方体角点后,需要估计出长方体的三维角点和姿态。我们将对象分为两个场景。任意姿态目标:利用PnP解算器求解一般长方体的三维位置和尺寸,由于单目尺度的模糊性,使其达到一个尺度因子。
地面物体:对于位于地面上的地面物体,我们可以进一步简化上述过程,更容易得到比例因子。我们在地平面上建立世界框架,然后对象的滚动/俯仰角为零。
与上一节类似,我们可以从VP得到8个2D角。然后,不必使用方程2中复杂的PnP解算器,我们可以直接将地角像素投影到三维地平面,然后计算其他垂直角,形成三维长方体。这种方法非常有效,并且具有解析表达式。
Data association
帧间数据关联是SLAM的另一个重要组成部分。与点匹配相比,由于包含更多的纹理,并且可以使用许多二维目标跟踪或模板匹配方法,对象关联似乎更容易。在一些简单的场景中,即使是2D盒的重叠也能起作用,但是如果像图5所示的重复对象有严重的对象遮挡,这些方法就不可靠。此外,动态目标需要被检测出来并从当前的SLAM优化中移除,但是标准的目标跟踪方法无法对其是否是静态的进行分类,除非使用特定的运动分割。