OV2SLAM vs ORBSLAM2

2023-05-16

框图

各个模块算法

OV2SLAMORBSLAM2对比
特征点提取与匹配Fast + LK光流Fast + ORB 描述子LK光流速度快
输出的实时posePnPMotion-only BAMotion-only BA精度高一点
初始化

单目:前两个关键帧E分解,并三角化,则初始化成功。

双目:第一帧双目计算3D点,即可完成初始化。

单目:前两个关键帧E分解,并三角化,则初始化成功。

双目:第一帧双目计算3D点,即可完成初始化。

一致
三角化

单目:关键帧特征点三角化

双目:光流匹配左帧,右目新检测的点可以进行Temporal三角化

单目:关键帧特征点三角化

双目:描述子匹配完之后,利于fb/d =z 计算深度

ORBSLAM2需要双目矫正过的图像
localBA共视图包含的3D点和位姿一起优化共视图包含的3D点和位姿一起优化一致
回环检测iBowLCD 在线构建字典DBOW 离线训练字典
posegraph作为优化的初始值作为优化的初始值一致
优化looselyBA 仅优化回环帧和当前帧相关联的3D点和关键帧位姿FullBA 优化全部关键帧的位姿和3D点FullBA更准一些

主要区别点:

精度:

  1. 实时位姿态输出:ORBSLAM2精度比OV2SLAM高,在输出实时pose时,ORBSLAM2的位姿是通过TrackLocalMap得到的,这里会进行motion-only的BA。而OV2SLAM输出的实时pose是通过PnP计算出来的,精度有限。虽然OV2SLAM也有TrackLocalMap,但是他这一步仅进行特征点的re-track, 没有进行位姿计算。另外,由于looselyBA比FullBA精度低一些,导致3D点有误差,从而PnP位姿计算也会有一定误差。
  2. 最终全局位姿输出: ORBSLAM2精度比OV2SLAM高,主要在于looselyBA仅优化与当前帧和回环帧关联的信息,在posegraph提供了全部关键帧的初值,这一步影响到的pose不仅仅包括looselyBA优化的信息,还影响到其余关键帧的pose和3D点。因此,全局优化精度会高一些。

速度:

  1. 实时位姿输出:OV2SLAM比ORBSLAM2快。OV2SLAM的特征点匹配采用光流,比描述子提取和匹配要快。且位姿计算PnP会比motion-only BA快。
  2. 地图构建: localBA 用于优化共视帧的位姿和3D点。两者算法基本一致,速度应该也差不多。
  3. 最终位姿态输出:OV2SLAM比ORBSLAM2快。looselyBA 优化变量明显小于FullBA。

综合选择:

        OV2SLAM整体精度比ORBSLAM2略微下降,但是速度明显提升。而且OV2SLAM里面增加一些细节,例如异常点剔除策略,通过投影点比例判断初始估计位姿准确性等。

       ORBSLAM3里面会判断远点和近点,远点只用于优化旋转,尺度信息只能依靠近点。

VSLAM的缺陷:

        单目没有尺度。

         双目尺度测距范围有限,当匹配视差在1.2-2以上时,深度估计才相对可靠。ORBSLAM3中建议40倍基线以内的距离才能用于尺度计算。因此,VSLAM仅适用于近距离定位与建图。

        当图像模糊时,视觉当前帧会lost,如果仅连续几帧丢失,那么仅会短时间内降低输出的pose的帧率。如果对输出帧率有要求,则需要用VISLAM,IMU可以支撑3s. 如果视觉丢失时间过长,则VISLAM也不能处理。只能进行重定位或系统重启。

         在转弯或者运动比较快且是新场景时,运动快,那么关键帧被选择的频率就比较大,从而三角化就比较滞后。如果当前帧没有被及时三角化成功,则当前帧的pose就没办法计算。需要及时三角化添加3D点,才能计算出来位姿。因此要求关键帧的创建和三角化线程也很快才能保证不丢失。 即使加上IMU,如果关键帧缓冲比较多,那么也会丢失。但是如果丢失了,在有IMU时,可作为初始位姿,光流跟踪新帧,再三角化得到新点,这样也可以处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OV2SLAM vs ORBSLAM2 的相关文章

  • Ubuntu18.04使用Xorg创建虚拟屏幕

    目标 xff1a 使用远程软件 xff0c 如向日葵 TeamViewer Nomachine等来控制远程的电脑 xff08 Ubuntu 18 04桌面版本 xff09 作为服务端 存在问题 xff1a 被远程电脑若不连接屏幕会出现错误
  • 数学符号大全

    虽然在 Mathtype 能输入绝大多数想要的数学字符 xff0c 但是有些在 Visio 中无法输入 xff0c 可以在这里找出 xff0c copy就好了 xff0c 嘻嘻 xff5e 1 几何符号 2 代数符号 xff5e 3 运算符
  • 8小时用HTML5打造VNCViewer

    8小时用HTML5打造VNCViewer http cnborn net blog 另一个话题是ThoughtWorks徐昊带来的 8小时用HTML5打造VNCViewer 这个分享非常精彩 xff0c 其实现过程中的思考方式 使用的新技术

随机推荐

  • 自制ST-Link V2.1,带串口,可自动更新固件,含全套资料下载

    自制ST Link V2 1 xff0c 带串口 xff0c 可自动更新固件 xff0c 含全套资料下载 最近自制了一个带串口的ST Link V2 1 xff0c 现将全部资料共享给大家 xff0c 支持最新版的Keil 和IAR xff
  • LIO-SAM-自采数据运行踩坑

    一直觉得LIO SAM还是一个比较不错的激光雷达惯性里程计框架 xff0c 最近在使用自己的数据进行测试过程中出现了很多坑 xff0c 花费了一周多的时间才填平 xff0c 在此记录一下 前言 Ouster 128激光雷达数据Ouster内
  • ROS bag包提取数据

    日常使用中有时需要提取bag包中的某个topic数据为新的bag包 xff0c 或者裁剪其中的一段时间数据 这些功能均可以通过rosbag filter命令实现 下面 xff0c 我们简单介绍一下其使用流程 xff1a 首先 xff0c 使
  • Ouster激光雷达使用PTP时间同步

    IEEE1588 the Precision Time Protocol 简称为 PTP xff09 全称是 网络测量和控制系统的精密时钟同步协议标准 xff0c 可以使用ubuntu中的网卡作为时间的master也可以外接一个精准的时钟
  • MATLAB绘图:plot函数与bar函数详解

    MATLAB是由美国mathworks公司发布的主要面对科学计算 可视化以及交互式程序设计的高科技计算环境 我们可以利用它方便快捷的进行矩阵运算 绘制函数和数据 图像处理 前一段时间作者在进行毕业设计时使用MATLAB绘制了论文中的一系列插
  • 树莓派ubuntu mate系统连接PX4并通过UDP连接至QGC地面站

    前提条件 xff1a 树莓派安装了ubuntu mate 20 04系统ubuntu mate已经安装好ros 这里是noetic版本 系统 xff0c Mavros安装好QGC地面站的PCUSB数据线 xff08 确定能传输数据 xff0
  • make px4_sitl_default gazebo出现错误解决办法

    Ubuntu20 04按上图操作进行PX4配置的时候出现如下错误 xff08 确保你已经完整git Firmware或者已经翻墙 xff09 xff1a Configuring incomplete errors occurred See
  • ubuntu 常用命令汇总

    安装 sudo apt get install vim sudo apt get install nano 卸载 sudo apt get remove nano 给root用户设置密码 sudo passwd root 切换到root用户
  • 多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记

    An Overview of Multi Task Learning in Deep Neural Networks论文笔记 概述 xff1a 多任务学习有很多形式 xff0c 如联合学习 xff08 Joint Learning xff0
  • 结构体

    结构体 xff1a 结构是一些值的集合 xff0c 这些值称为成员变量 xff0c 每个成员可以是不同的类型变量 结构体成员的类型 xff1a 可以是 xff1a 标量 xff0c 数组 xff0c 指针 xff0c 结构体 struct
  • 【ROS-3】ROS实现图像目标检测

    1 darknet ros下载及编译 GitHub leggedrobotics darknet ros YOLO ROS Real Time Object Detection for ROS 直接下载zip就行 xff0c 解压到ros环
  • MapReduce实现基本SQL操作的原理

    Join的实现原理 select u name o orderid from order o join user u on o uid 61 u uid 在map阶段的输出中给每个value一个tag xff0c 用于区分数据来源 xff0
  • raw、qcow2、vmdk等虚拟机的镜像格式

    云计算用一个朋友的话来说 做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做好准备 更苦逼的就是刚以为一个问题不会遇到 xff0c 立刻就发生了 这个还真的没有办法 xff0c 谁让哥我是搞云计算的呢 xff0c 简单一个虚拟化就
  • 树莓派3b安装win10的桌面版操作系统

    https www vediotalk com p 61 1999 目录 显示 国内播放节点 视频介绍 树莓派3b可以安装win10的桌面版操作系统 xff0c 大家也想体验的下 xff0c 不妨可以安装试试 xff0c 当然这并不能代替我
  • 无人机学习笔记之遥控篇

    遥控器 以LiteRadio 2c SE为例 1 遥控器按键 2 相关参数 3 遥控器工作原理 遥控器想要达到与无人机通信的功能需要有两部分配合完成 即 xff1a 发射器与接收机 遥控器上的控制杆转为无线电波发送给接收机 xff0c 而接
  • 二分类算法

    数据来源 xff1a 选自UCI机器学习库中的 银行营销数据集 Bank Marketing Data Set 算法完成目标 xff1a 这些数据与葡萄牙银行机构的营销活动相关 这些营销活动以电话为基础 xff0c 一般 xff0c 银行的
  • 防抖,节流 js

    概念 xff1a 函数防抖 debounce xff1a 触发高频事件后n秒内函数只会执行一次 xff0c 如果n秒内高频事件再次被触发 xff0c 则重新计算时间 函数节流 throttle xff1a 高频事件触发 xff0c 但在n秒
  • 如何远程访问Docker容器中的图形界面,如:kettle

    kettle是一个免费开源的 可视化的 功能强大的ETL工具 一般为了部署方便 xff0c 通常都部署在docker容器中 xff0c 那么如何远程访问kettle的图形界面呢 xff1f 我们通常有两种方式 xff1a 1 xff09 客
  • 电子罗盘的工作原理及校准

    ST集成传感器方案实现电子罗盘功能 电子 罗盘是一种重要的导航工具 xff0c 能实时提供移动物体的航向和姿态 随着半导体工艺的进步和手机 操作系统的发展 xff0c 集成了越来越多传感器 的智能手机 变得功能强大 xff0c 很多手机上都
  • OV2SLAM vs ORBSLAM2

    框图 各个模块算法 OV2SLAMORBSLAM2对比特征点提取与匹配Fast 43 LK光流Fast 43 ORB 描述子LK光流速度快输出的实时posePnPMotion only BAMotion only BA精度高一点初始化 单目