首页 > 基于平面几何精确且鲁棒的尺度恢复单目视觉里程计

基于平面几何精确且鲁棒的尺度恢复单目视觉里程计

标题:Accurate and Robust Scale Recovery for Monocular Visual Odometry Based on Plane Geometry

作者:Rui Tian1, Yunzhou Zhang1∗, Delong Zhu2∗, Shiwen Liang1, Sonya Coleman3, Dermot Kerr3

编译:点云PCL(2020)

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈分享快乐。未经允许请勿转载!

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信920177957。

摘要

尺度模糊是单目视觉里程计中的一个基本问题。常见的解决方案包括闭环检测和环境信息进一步挖掘。对于像自动驾驶这样的应用,回环闭合并不总是可用的,因此从环境中挖掘先验信息成为一种更有前途的方法。在本文中,假设相机离地面高度不变,本文提出了一个轻量级的尺度恢复框架,利用对地平面的精确而稳健的估计。该框架包括一种用于在地面上选择高质量像素点的特征点提取算法,以及一种用于在局部滑动窗口中连接提取的地面点聚合算法。基于聚合数据,使用基于ransac的优化器解决最小二乘问题,最终恢复尺度。当拥有足够的数据和鲁棒的优化器的时候可以实现精确的尺度恢复。在KITTI数据集上的实验表明,本文提出的框架在保持旋转误差的同时,能够达到最较好的精度。

主要贡献

本文提出了一种基于平面几何的精确和鲁棒尺度恢复的轻量级方法。该方法包括高效地面点提取(GPE)和三角化算法以及一种从连续帧中聚合地面点的聚合(GPA)算法。在这两种算法的基础上,选取了大量高质量的地面三角化点。针对尺度恢复,首先建立最小二乘问题来拟合地平面,然后估计相机的相对高度来计算实际尺度。通过利用高质量地面点和基于ransac的优化器,可以准确且鲁棒的估计尺度。得益于算法的轻量化设计,我们的方法可以在基准数据集上实现20Hz的运行频率。

•提出了一种基于Delaunay三角剖分的GPE算法,该算法能够准确提取地面点。

•提出了一种GPA算法,可以有效地聚集局部地面点,并对地面参数进行鲁棒优化。

•基于所提出的算法,实现了一种具有精确和鲁棒尺度恢复的实时单目视觉里程计系统,旨在减少尺度漂移,并在无需闭环的远程导航中提供精确的视觉里程信息。

内容精华

A、 问题的定义

本文方案的目标是估计相机位姿的绝对尺度,然后利用已知的摄像机高度h*来恢复相机的真实运动轨迹。在尺度模糊的情况下,由图像特征计算出的相机高度h*与真实高度h保持一定的比值,因此,尺度恢复的实质是计算比例尺度s,其关键在于对地平面的准确估计。

B、 系统结构

本工作中提出的系统如图1所示。系统中有两个并行线程:第一个是单目视觉里程计线程,它将连续的图像作为输入,并估计当前的相机姿态,例如ORB-SLAM2框架。第二个线程用于运行GPE和GPA算法以进行尺度恢复。所提出的系统是基于这样一个假设,即地面是局部平整的,可以用一个具有表面法线的平面来近似。第二个线程的工作流程如下。如图1中的红块所示,对于来自视觉里程计线程的每个图像帧,首先应用Delaunay三角化将匹配的特征点分割成一组三角点。然后将每个三角点反投影到相机帧中,并估计相关的平面参数。然后,利用若干几何约束来选择和细化接近地面的特征点。请注意,选定的接地特征点不足以精确估计平面参数。因此,提出了GPA算法,使用滑动窗口方法从多个帧中聚集地面特征点,如图1的橙色方框所示。基于聚集的局部点,进行鲁棒参数估计以拟合地平面。因此,可以估计每帧的相对相机高度,并且得到绝对高度。

系统概述。系统中有两个并行线程:1)单目视觉里程计线程以图像帧作为输入,估计当前相机的姿态;2)GPE-GPA线程从单目视觉里程计线程中提取图像特征,并选择高质量的地面点进行地面参数估计。

地面特征点的提取

对于给定的匹配特征点集,在当前图像帧中,对每个特征点进行三角化计算。将三角点从图像平面反投影到当前相机帧中。每个三角化点的法向量n可以通过叉积得到:

需要注意的是,三角化点散落在整个图像平面上,因此我们需要识别位于地平面上的三角点,称为地面三角化点,用于估计平面参数。基于地面三角化点的法线与相机平移量正交,并且在相机的俯仰角为零的情况下,可以通过使用以下约束条件进行测试来识别地面三角化点

在实验中,不能严格满足相等的条件。因此,我们在实际实施中设定了5°阈值。对于满足上述约束条件的保留为地面三角点,其顶点被划分为一个新的点集。由于同一三角点可能被多个三角形共享,因此我们还需要从点集中删除重复的顶点。这将确保每个点对地平面估计的贡献相同。地面点已被初步分割出来,但仍可能存在由运动目标和一些远点引入的离群点。为了进一步提高地面点的质量,采用基于RANSAC的方法对点集进行优化,使平面距离误差最小化如下:

在实现过程中,我们随机选择三个点,用公式估计一个新的平面,然后计算剩余点到估计平面的总距离。这样的过程重复多次,并保留最小的总距离误差的平面。然后移除距离保留平面大于0.01m的点。这实际上是一个更严格的接地面点选择标准。经过此过程后,只保留高质量的接地点。在下图中给出了一个完整的GPE算法实现过程,详细介绍了该算法的实现过程。

地面点的聚合

由于GPE算法的严格标准,内点可能不足以精确估计地平面。因此提出了GPA算法来聚集连续图像帧中的地面点。如图2所示,利用滑动窗口方法来选择图像帧,并且保持帧缓冲器来存储当前窗口中的相机位姿和地面点。在每个时间间隔中,随着新帧的到来,更新缓冲区后,然后通过求解最小二乘问题估计地平面。

GPA算法说明。在左下角的图中,红色的点表示接地点,绿色的线段是每个三角化点的法向量线。在右下角的图中,红色四边形是基于当前窗口中聚集的接地点估计的地平面。

GPA算法的细节

基于滤波的尺度恢复

在计算出每一帧的相对相机高度h后,再由s_t=h∗/h恢复每一帧的运动尺度比例

通过绘制中每一帧的相机高度的尺度,发现该尺度并不严格遵循高斯分布。因此,我们选择中间点作为当前帧的比例。在时域中,应用滑动平均滤波器,如下图所示,其可以给出更平滑的结果。

  (a) 相机高度的尺度分布。

在数据集02和05上估计的相机高度

实验

本文进行了实验来评估提出的方法的性能。实验中使用的单目视觉里程计系统是基于ORB-SLAM2实现的,所提出的尺度恢复方法是作为一个独立的线程集成的。采用KITTI数据集作为基准数据集,其中数据集01没有使用,因为它使大多数基于特征的视觉里程计系统失效。所有的实验都是用一台2.30GHz的Intel(R)Core(TM)i5-6300HQ CPU笔记本电脑进行的。该方法的定性评价结果下图所示。利用该方法可以恢复系统输出的轨迹,这意味着与地面真实轨迹相比,不需要进行相似变换。

定性评价结果

定量分析如表二所示。采用平均平移误差和旋转误差作为评价指标。

评估了系统在KITTI序列上的运行时间,实验重复了五次。从效率上比较的结果如下

KITTI数据集上的恢复尺度的轨迹。蓝色和绿色轨迹分别由本文方法和ORB-SLAM2生成。

总结

在这项工作中,我们提出了一个轻量单目视觉里程计系统,该系统具有精确和鲁棒的尺度恢复,旨在减少尺度漂移,并在无回环闭合的长距离导航中提供精确的里程计。通过实现GPE-GPA算法来选择高质量的地面点并在局部滑动窗口中进行优化,从而解决了单目视觉里程计的尺度模糊问题。大量的数据和稳健的优化器并利用估计的相机高度和与真实的比例提供准确的尺度轨迹。大量的实验表明,提出的框架可以达到最先进的精度和恢复一个公制轨迹且没有额外的传感器。该系统采用轻量级结构,在20Hz的工作频率下实现了实时性。提出的轻型单目视觉里程计系统有助于低成本自主车辆在长距离场景中的定位和导航。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作:微信“920177957”(需要按要求备注) 联系邮箱:[email protected],欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

更多相关:

  • 点云PCL免费知识星球,点云论文速读。文章:Ground Plane based Absolute Scale Estimation for Monocular Visual Odometry作者:Dingfu Zhou, Yuchao Dai翻译:particle本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获...

  • binary search 二分查找 half-interval search  折半查找 logarithmic search  对数搜索 sentinel 哨兵 pivot 基准数 median 中位数,中值 partition 分割 percolate 过滤 sentinel 哨兵 linear time 线性时间...

  • 《数据结构与算法分析 C语言描述》Mark Allen Weiss著,冯舜玺译,机械工业出版社。Weiss教授的经典教材三部曲之一,其中的C语言描述版本,也就是本书,被称为20世纪最重要的30本计算机教材之一。Mark Allen Weiss,1987年在普林斯顿大学获得计算机科学博士学位,师从著名算法大师Robert Sedgew...

  • 实现12种不同的算法来跟踪视频和网络摄像头中的对象! 你会学到: 使用Python和OpenCV跟踪视频和网络摄像头中的对象 理解跟踪算法的基本直觉 实现12种跟踪算法 了解对象检测和对象跟踪之间的区别 要求 程序设计逻辑 基本Python编程 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2...

  • 文章目录1. 算法背景2. BM(Boyer-Moore)算法2.1 坏字符规则(bad character rule)2.2 好后缀规则(good suffix shift)2.3 复杂度及完整代码3. KMP(Knuth Morris Pratt)算法3.1 好前缀 和 坏字符规则3.2 高效构建 失效函数3.3 复杂度及完整代码...

  • 文章目录前言CAP理论C consistency 一致性A availability 可用性P partition tolerance 分区容错性一致性模型弱一致性强一致性强一致性算法需要明确的问题强一致算法: 主从同步强一致性算法:多数派强一致算法:PaxosBasic PaxosMulti Paxos第一个版本:使用Propose...