📜 论文阅读 | ClusterVO:对移动实例进行聚类并估算自身和周围环境的视觉里程计
文章目录
ClusterVO:对移动实例进行聚类并估计自身和周围环境的视觉里程计
Huang J, Yang S, Mu T J, et al. ClusterVO: Clustering Moving Instances and Estimating Visual Odometry for Self and Surroundings[J]. arXiv preprint arXiv:2003.12980, 2020. (CVPR 2020)
清华大学胡事民教授;演示视频
前期研究:Huang J, Yang S, Zhao Z, et al. ClusterSLAM: A SLAM Backend for Simultaneous Rigid Body Clustering and Motion Estimation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 5875-5884.
【C】 穷理以致知,一文而四问
- 1. 针对什么问题?
- ① 如何在不需要物体或环境先验假设的情况下实现一种通用的动态 SLAM/VO?
- ② 如何同时估计、优化自身位姿和多个动态物体的运动状态?
- ③ 如何实现二维几何路标、二维语义路标、三维点云和运动状态之间的数据关联?
- 2. 采用什么方法?
- ① 针对动态路标提出一种多级别的概率数据关联策略,实现低层次特征与路标的关联和高层次检测与聚类簇的关联。(相当于当前帧的点关联当前帧的物体)
- ② 采用结合语义、空间和运动的异构 CRF 推断细化现有聚类簇或创建新的聚类簇。(相当于当前帧的物体关联地图中的物体)
- ③ 在优化时分别对静态场景和动态场景的能量函数添加了边缘化误差项和运动先验误差项。
- ④ 设计了时间和空间双通道的关键帧管理方法保证速度和效率,以及被遮挡时的运动预测。
- 3. 达到什么效果?
- ① 在 Oxford Multimotion 室内数据集中相对基准方案有一半以上的序列漂移减小 25% 以上。
- ② 在室外 kitti 数据集中与 4 项对比工作比较在 ATE 有较大优势;
- ③ 在室外车辆 3D 检测方面与专门用于 3D 目标检测的方法存在较大差距,但速度上有很大优势;与 Dyn SLAM 比较有一定的提升。
- 4. 存在什么不足?
- ① 公式(7)提供的 3D 项可以对 2D 关联的离异点进行剔除,但似乎需要建立在路标点服从高斯分布的假设上?但事实上物体中的路标点的分布基本上是不服从高斯分布的。
- ② 与采用几何方法的 MOV 基准比较,本文语义检测提供了足够的先验,似乎不太公平。
- ③ 数据关联方法看似完善,实际上不能实现通用的,因为实验中仅针对单一物体,比如室内实验针对同样大小的箱子,室外实验针对同样大小的车辆,在多类别物体下该数据关联方法的效果有待验证。
- 5. 个人的疑问
- ① 多级概率关联和异构 CRF 之间存在什么关系呢?或者怎么个执行流程?他们完成的工作是否有重叠的部分?
0. 摘要
本文提出一种双目视觉里程计 ClusterVO,能同时完成对自我和周围刚性簇/物体的运动进行聚类与估计。不同于以往依赖于批量输入或对场景结构或动态对象模型施加优先级的解决方案,它是在线的、通用的,可以用于各种场景,包括室内场景理解和自动驾驶。该系统的核心是一种多级概率关联机制和一种结合语义、空间和运动信息的异构条件随机场(CRF)聚类方法,对每一帧进行在线联合聚类。通过滑动窗口优化,快速求解相机和动态目标的姿态。系统在 Oxford Multimotion 和 KITTI 数据集上进行了定量和定性评估,在里程计测量量和动态轨迹恢复方面达到了与最新解决方案相当的结果。
1. Introduction
感知和理解动态目标是当前视觉 SLAM 中超越自我定位的一项重要任务。比如增强现实中与移动实例交互、自动驾驶中避开动态车辆。
但大多数经典的 SLAM 系统都将动态因素视作离群值进行剔除。虽然视觉技术(检测、分割与跟踪)为动态感知提供了新的可能,但对于室内场景,通常利用了几何特征(例如凸性、规则化结构)来辅助分割;对于室外场景,通常利用了车辆尺寸、道路平面假设来约束空间。这些方法很难应用在通用场景,相反,本文的前期工作 Cluster SLAM 不包含场景先验,但只充当后端不是一个完整的系统,其性能严重依赖于路标的跟踪和关联质量。
1) 本文提出的 Cluster VO 同时优化相机位姿和多个动态目标的姿态(将其视为点路标的簇),实现良好的跟踪和分割性能,此外没有任何几何或形状先验,展现了系统的通用性。本文策略仅基于稀疏路标和 YOLO 2D 目标检测。
2) 提出一种鲁棒的多级概率数据关联技术,以有效地跟踪 3D 空间中的低层特征和高层检测。
3) 在此基础上,结合语义包围盒、空间亲和性和运动一致性,提出了一种高效的异构 CRF 算法,用于发现新的聚类、聚类新的标记和细化已有的聚类。
4) 最后,采用滑动窗口优化的方法对场景的静态部分和动态部分进行求解。
2. Related Work
2.1 动态 SLAM / VO
- 1) 显式地检测动态并使用运动一致性 [8、19、20] 或目标检测模块 [4、49、50] 对其进行滤除。
- 2) 同时估计自我运动和多个刚体运动的想法开创于 SLAMMOT [44],后续研究 [6、34、35、38、46] 重建运动物体的三维稠密模型。
- 3) [22、40、43] 可以在预定义的关节运动模板(例如,人的手或运动学结构)上跟踪和重建刚性物体部分。
- 4) [9,31] 将现有的视觉惯性系统与使用标记跟踪的运动对象结合在一起.
2.2 目标检测与位姿估计
- 许多方法 [13,23] 利用预定义的目标模板或先验来共同推断物体的深度和旋转。在 ClusterVO 中,在定位和建图过程中同时推断出的低级几何特征描述符和语义检测可以为有效跟踪和准确的对象姿态估计提供其他线索。
3. ClusterVO
ClusterVO 将经过同步和校准的立体图像作为输入,并为每帧输出相机和物体位姿。对于每个传入帧,使用 YOLO 检测语义边界框,并提取 ORB 特征在整个立体图像上进行匹配。1)首先通过多级概率关联公式将检测到的边界框和提取的特征分别关联到先前发现的簇和地标(第3.1节)。2)然后,我们对所有具有相关地图路标的特征执行异构条件随机场(CRF),以确定当前帧的聚类分割(第3.2节)。3)最后,状态估计步骤通过边缘化和平滑运动先验优化滑动窗口上的所有状态(第3.3节)。该流程如图 2 所示。3.1 多级概率关联
对于静态地图的路标(即\(q^i=0\)),可以通过最近邻搜索和描述符匹配来稳健地关联特征 [ORB-SLAM2]。然而,在图像空间上快速移动的动态地标跟踪并不是一件容易的事情。此外,如果可能的话,需要将每个检测到的边界框 \(B^m_t\) 关联到一个现有的地图中的一个聚类,这在随后的异构 CRF 模块中是必需的。为此,本文提出一个用于动态路标(\(q^i\neq 0\))的多级概率关联方法,将低层特征 \(z^k_t\) 分配源路标 ID \(k\rightarrow i\),将高层边界框 \(B^m_t\) 分配聚类 \(m \rightarrow q\)。概率方法的本质是用均值为 \(p^i_t\) 的高斯分布和协方差 \(\sum_{t}^{i}\) 来模拟地标的位置,并考虑整个匹配过程中的不确定性。
理想情况下,应该从最后一个状态估计步骤的系统信息矩阵中提取 \(\sum_{t}^{i}\) ,但是计算量很大,因此,本文用最小的行列式近似 \(\sum_{t}^{i}\) 变换为 \(_{Z}^{ }\textrm{}\sum_{t{}' < t}^{i}\) (公式 1),可以被逐步更新,其中 \(R_t^c\) 是 \(P_t^c\) 的旋转部分。
3.2 用于聚类簇分配的异构 CRF
在这一步确定当前帧观测到的每个路标 i 被分配的聚类簇 \(q^i\),应用了将语义,空间和运动信息结合在一起的条件随机场模型(称为“异构CRF”),从而将公式(4)的能量降至最低。它是一元能量和成对能量在观察到的路标的完整图的加权总和(\(\alpha > 0\) 是平衡因子)。CRF 的类别总数被设置为 M = N1 + N2 + 1,其中 N1 是活跃(live)群集的数量,N2 是该帧中未关联的边界框的数量,并且最后一项 1 表示允许离群值的类别。如果在过去的 L 帧中至少观察到一个地标,则认为群集处于活动状态。
3.2.1 一元势能
一元能量决定观察到的地标 i 属于特定聚类簇 \(q^i\) 的概率,并且包含三个信息源:单个 2D 项只考虑 2D 语义检测,可能在边界框的边缘附近包含许多离群点。通过添加 3D 项,可以修剪属于较远背景的路标点。然而,接近 3D 边界的特征,例如在移动车辆附近的地面上,仍然具有属于该簇的高概率,其置信度由运动项进一步细化。 4.4 节将对这三项的进行评价和视觉比较。
3.2.2 成对势能
成对势能定义为公式(9),可以看作是一个噪声敏感的高斯平滑核,以鼓励空间标记的连续性。其中指数算子内的项是 3D 空间中两个路标 \(p_t^i,p_t^j\) 的距离。本文使用一个有效的稠密 CRF 推理方法 [21] 来解决能量最小化问题。在成功的推理之后,使用 Kuhn-Munkres 算法将当前的 CRF 聚类结果与之前的聚类分配相匹配。如果没有为推断的标签找到正确的群集分配,则会创建新的群集。然后,根据 [41] 中介绍的策略更新每个路标的权重 \(w_i\),并在必要时更改其群集分配:当新分配的群集与路标的上一个群集相同时,将权重 \(w_i\) 增加 1,否则权重将减少 1。当 \(w_i\) 减少到0时,将触发集群分配的更改以接受当前分配的集群。
3.3 滑动窗口状态估计
3.3.1 双轨帧管理
像 ORB-SLAM2 这类基于关键帧的 SLAM 系统根据帧之间的空间距离和帧之间可见特征的数量来选择关键帧。对于每个簇的轨迹都被纳入状态估计过程的 ClusterVO,上述关键帧选择策略不足以捕获相对快速移动的簇。不同于 ClusterSLAM 中提出的块策略,本文根据一种新颖的双轨帧管理设计(图 3)采用了滑动窗口优化方案。系统维护和优化的帧分为两个连续的轨道:时间轨道 \(T_t\) 和空间轨道 \(T_s\) 。 \(T_t\) 包含最新的输入帧,每当出现新帧时, \(T_t\) 中最旧的帧将被移出。如果该帧在空间上距离 \(T_s\) 中的第一帧足够远,或者可见的路标数量足够少,则将该帧追加到 \(T_s\) 的尾部,否则将丢弃该帧。
这种设计的优点。1) 时间轨迹中的帧记录了所有最近的观测值,因此允许足够的观测值来跟踪快速移动的聚类。2) 可以更正先前错误聚集的路标,并可以根据新的分配进行重新优化。3) 在空间轨迹中检测到的特征有助于创建足够的视差,以进行精确的路标三角化和状态估计。
3.3.2 静态场景和相机位姿估计
用于优化的能量函数是标准的 BA,并增加了一个边缘化项 由于静态场景涉及大量变量,并且仅将这些变量从滑动窗口中删除会导致信息丢失,从而可能产生漂移,因此需要将某些变量边缘化,或者将其删除,并在公式(10)中使用边缘化项表示对系统的影响。仅当从空间轨道 \(T_s\) 丢弃帧时才执行边缘化。为了限制信息矩阵中路标块的稠密填充,如果相应的路标被最新的帧所观察到,则将删除的帧中观察道德结果也删除,或者被边缘化。这种边缘化策略仅在帧中添加了稠密的 Hessian 块,而不是路标,从而使系统仍然可以实时解决。
在边缘化项中,\(\delta x\) 是相对于边缘化发生时捕获的临界状态 \(x^*\) 的状态变化。对于 H 和 \(\beta\) 的计算采用标准的舒尔补:\(\mathbf{H}=\mathbf{\Lambda}_{a a}-\mathbf{\Lambda}_{a b} \mathbf{\Lambda}_{b b}^{-1} \mathbf{\Lambda}_{b a}, {\beta}=\mathbf{b}_{a}-\mathbf{\Lambda}_{a b} \mathbf{\Lambda}_{b b}^{-1} {b}_{b}\)。其中 \(\Lambda \left ( \cdot \right )\) 和 \(b \left ( \cdot \right )\) 通过在 \(x^*\) 附近线性化提取的系统信息矩阵 \(\Lambda\) 和信息向量 \(b\) 的组成部分: \[
{\Lambda}=\left[\begin{array}{ll}
{\Lambda}_{a a} & {\Lambda}_{a b} \\
{\Lambda}_{b a} & {\Lambda}_{b b}
\end{array}\right], \quad {b}=\left[\begin{array}{l}
{b}_{a} \\
{b}_{b}
\end{array}\right] \qquad(11)
\]
3.3.3 动态聚类
利用加速度先验值 [1] 上的白噪声对运动进行建模,在连续时间 \(t,t{}' \in \mathbb{R}\) 内可以写成:其中 $$ 是克罗内克积,\(\Delta t=t^{+}-t\),公式(13)是运动先验和重投影之和,运动先验是通过查询公式(12)获得的,其直观地惩罚了速度随时间的变化并平滑了簇的运动轨迹,否则当簇上的特征少于静态场景,簇的运动轨迹会变得波动。注意:不同于静态场景的能量项对 \(T_s\) 和 \(T_t\) 均进行了优化,动态场景只优化了 \(T_t\) 。
在优化群集状态期间,相机状态 \(x^c_t\) 保持不变。每个集群的优化过程可以很容易地并行进行,因为它们的状态是相互独立的(实际上,对于 2 个集群和 6 个集群,系统速度分别为 8.5Hz 和 7.8Hz)。
4. 实验
4.1 数据集和参数设置
ClusterVO 系统的有效性和普遍适用性主要在两种场景下展示:带运动物体的室内场景和带运动车辆的自动驾驶。对于室内场景,采用双目相机的 Oxford Mul timotion dataset(OMD)[17] 进行评估。该数据集是专门为室内同时相机定位和刚体运动估计而设计的,使用运动捕捉系统恢复了真实的轨迹。评估和比较按以下两个序列进行: swinging_4_unconstrained 和 occlusion_2_unconstrained,因为这些是 [16,18] 在序列研究中报告的仅有的具有 baseline 结果的序列,命名为“MVO”。
对于室外自动驾驶情况,采用具有挑战性的 KITTI 数据集进行验证。由于 odometry 数据集中的大多数序列都具有较低的动态性,并且与其他 SLAM 解决方案(例如 ORB-SLAM)相比,对这些数据的比较很难导致明显的改进,类似于文献 [24],本文在从 raw 数据集选择的序列中以及在许多运动车辆的完整 21 个跟踪训练序列中证明了本文的方法的强大。从数据集提供的 OxTS 包(结合 GNSS 和惯性导航)中获得相机自运动的 Groundtruth。【不适用的 odometry 而是 raw】
CRF 权重设为α=5.0,2D 一元能量常数 η=0.95,运动先验的功率谱矩阵Q=0.01I。双轨的最大尺寸设置为 \(T_s=5\) 和 \(T_t = 15\) 。确定群集是否仍处于活动状态的阈值设置为 \(L = T_t\) 。所有的实验都是在一台英特尔酷睿 i7-8700K,32GB RAM 台式机上进行的,并配有 nvidia gtx1080 gpu。
4.2 室内场景评估
采用与文献 [18] 相同的评估方案,计算相机的自运动和移动集群轨迹在整个序列上的最大平移和旋转误差 。由于本文的方法没有为检测到的簇定义一个标准坐标系,因此需要将恢复的姿态与 groundtruth 轨迹对齐。为此,本文将恢复的姿态与刚性变换 \(T_r\) 相乘,使得 \(P^q_t T_r\) 与所有 t 的 groundtruth 位姿之差的和最小。这是基于这样一个假设:利用刚性变换可以将恢复的路标的局部坐标与 groundtruth 位姿的位置配准。 【就是坐标对齐,世界坐标系、相机坐标系、地面坐标系和运动的物体坐标系】对于语义边界框提取,YOLOv3 被重新训练以检测表示数据集中摆动或旋转的块,名为‘block’的附加类。用于训练的检测框用一种带有人工注释的组合方法进行标记,并在来自 S4 和 O2 的剩余帧上使用中值流跟踪器。
图 4 是与 MOV 基准 [18,16] 比较的减小漂移的比例,超过一半的轨迹估计结果提高了 25% 以上,实现了精确的相机位姿估计和簇运动恢复。ClusterVO 的主要优势是:1) MVO 中的需要在每个输入批(50 帧)中稳定地跟踪特征,这只保留了一小部分的标记,其中噪声的影响变得更为主要,而 ClusterVO 为每个个体保持一致的标记对低层和高层信息进行聚类和关联,以最大限度地利用历史信息。2) 如果局部窗口中的运动很小,基于几何的方法将容易误分类动态标志,降低恢复的姿态结果,而 ClusterVO 利用额外的语义和空间信息来实现更准确和有意义的分类和估计。
4.3 室外 Kitti 数据集评估
与文献 [24] 类似,本文将定量评估分为自运动比较和 3D 对象检测比较。本文的结果与 ORB-SLAM2 [28],DynSLAM [2],[24] 和 ClusterSLAM [15] 比较,采用 TUM 评估指标:绝对轨迹误差(ATE),旋转和平移相对姿态误差(RPE)的均方根误差(RMSE)。如表 2 所示,在绝大多数序列中 ATE 取得了最佳的效果。ORBSLAM2 主要针对静态场景,在具有挑战的场景容易失败;DynSLAM 保持静态场景和动态对象的密集建图,但底层的稀疏场景流估计是基于帧到帧的视觉里程计 libviso [11],这将固有地导致长距离行进时的显着漂移;Li etal [24] 批量多体 SfM 方法导致一个高度非线性的因子图优化问题,其解决方案并不简单。ClusterSLAM 需要关联地标,并且即使状态通过完全优化来求解,不正确的特征跟踪前端也会影响定位性能。ClusterVO 由于融合了多种信息来源和强大的滑动窗口优化功能,与所有以前的方法相比,可获得甚至更好的结果。
Chen 等人的方法和 DynSLAM和 的相似之处在于它们都执行稠密的立体匹配(例如 [47])来预计算 3D 结构。DynSLAM 使用 2D 探测裁剪深度图以生成空间探测;Chen 等人在三维空间中直接生成并评分目标提案,在自主驾驶场景中包含许多场景先验,包括地平面和车辆尺寸先验。比较表 3 中的结果,证明这些先验是至关重要的:DynSLAM 在“中度”和“困难”序列中包含遥远的汽车和小型 2D 检测边界框类别均急剧下降。
Cluster VO 被设计为通用的,当原理相机的路标在没有目标大小先验的情况下双目三角化的自然不确定性会变大。此外,如果聚类的运动很小,我们也不会检测到它的标准方向(即汽车前部),因此方向也可能不精确。这就解释了我们的检测方法和像 [7] 这样的专门的系统在困难示例时的差距。与 DynSLAM 相比,平均精度有所提高,因为即使 2D 检测网络未发现某些目标,ClusterVO 仍能始终如一地跟踪运动对象并预测其运动。另外,通过比较表 3 中的时间成本,我们强调了 ClusterVO 系统的高效率,而 Chen 等人的工作每个立体输入对需要 1.2 秒。 KITTI 原始数据集的一些定性结果如图 7 所示。
4.4 消融研究
使用 SUNG[37] 渲染而成的运动数据集测试异构 CRF 公式(公式 5)中每一项的重要性。按照与 [15] 中相同的立体相机参数,我们生成了包含 4 个移动椅子和球的室内序列,并在表 4 中比较了相机自运动和群集运动的精度。5. 总结
本文提出了一种通用的同时进行运动刚体聚类和运动估计的快速双目视觉里程计–ClusterVO。在相机自运动和动态物体姿态估计方面与最先进的解决方案进行比较的结果表明了该系统的有效性。在未来,一个方向是将特定的场景先验作为可插拔组件,以提高特定应用(如自动驾驶)上的 ClusterVO 性能;另一个方向是融合来自多个传感器的信息,以进一步提高定位精度。
参考文献
-
[15] Jiahui Huang, Sheng Yang, Zishuo Zhao, Yu-Kun Lai, and Shi-Min Hu. ClusterSLAM: A slam backend for simultaneous rigid body clustering and motion estimation. ICCV 2019.
- 本文前期工作,主要关注后端优化
-
[17] Judd K M, Gammell J D. The Oxford multimotion dataset: Multiple SE (3) motions with ground truth[J]. IEEE Robotics and Automation Letters, 2019, 4(2): 800-807.
- 牛津多运动体数据集
-
[18] Judd K M, Gammell J D, Newman P. Multimotion visual odometry (mvo): Simultaneous estimation of camera and third-party motions[C]//2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018: 3949-3956.
- 对比文献 MOV 基准
-
[21] Krähenbühl P, Koltun V. Efficient inference in fully connected crfs with gaussian edge potentials[C]//Advances in neural information processing systems. 2011: 109-117.
- CRF 推理
-
[24] Li P, Qin T. Stereo vision-based semantic 3d object and ego-motion tracking for autonomous driving[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 646-661.
- 对比文献,自动驾驶场景运动目标跟踪
-
[37] Song S, Yu F, Zeng A, et al. Semantic scene completion from a single depth image[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 1746-1754.
- SUNG 渲染数据集
-
[44] Wang C C, Thorpe C, Thrun S, et al. Simultaneous localization, mapping and moving object tracking[J]. The International Journal of Robotics Research, 2007, 26(9): 889-916.
- 同时估计相机位姿和运动物体的开创性工作
【Q】问题
【T】思考
wuyanminmax@gmail.com
2020.05.15