视觉SLAM基本问题

  • 数学基础

    1. 旋转矩阵,平移矢量
    2. 四元数
    3. 欧拉角
  • 三大模块

    1. 前端的视觉里程计
    2. 后端优化
    3. 回环检测
  • 前端里程计

    1. 根据传回的图像计算相机的帧间运动
    2. 估计路标点大致的空间位置坐标
  • 后端优化

    1. 说白了是起到了状态预测的作用
    2. 根据前段在不同时刻计算的相机位姿来计算最大后验概率
  • 回环检测

    1. 判断相机是否回到了先前的位置,修正误差,使构建的点云图最大接近于实际

      当相机到达先前的位置时,由于计算过程和传感器等造成的误差,很难使得构建出来的点云图实现曲线闭合

前段视觉里程计部分

  • 相机的选取

    • 单目相机
      • 优点:便宜
      • 缺点:初始化很难,容易tracking lost; 容易出现数据丢失,尺度不确定性问题(比如深度数据丢失)
    • 双目相机
      • 优点:被动计算,可以通过计算获得物体的深度信息
      • 缺点:计算量较大,在特征比较少的白墙,沙漠容易tracking lost;
    • RGB-D
      • 优点:主动测量,可以通过传感器测得深度信息,且不易tracking lost;
      • 缺点:money;受阳光,墙面反光影响
  • 怎么通过图像计算帧间运动

    针孔相机模型

  • n在视觉里程计中,一个最基本的问题是:给定两个已经成功匹配的空间点在相机平面投影的坐标,如何计算相机在这两个空间点之间的运动状态

    • 问1:怎么进行点的匹配

      • 每帧图像包含的信息:关键点和描述子

        关键点是图像信息最集中的部分

        描述子是区别于每个特征点之间的信息,对不同帧之间的同一特征点进行匹配

      • 特征点匹配算法:ORB,SIFT,SURF

    • 问2:如何计算状态

      • 计算方法:对极几何方法,PNP方法,ICP方法

        对极几何方法:确定两组像素的位置,估计相机的运动状态。每两个成功匹配的点可以提供一组__对极约束__,提供八个点就可以确定本质矩阵,(八点法),对本质矩阵进行SVD分解,就可以解出相机的旋转矩阵R和旋转矢量t。

        PNP方法:知道一组匹配点的空间位置和在相机平面的投影位置,估计相机运动状态。

        ICP方法:知道两组点的空间位置,估计相机运动状态。

后端优化部分(多为一些比较成熟的算法)

  • 主要算法

    1. 基于滤波器:KF,EKF

      EKF:将系统线性化,用高斯分布近似观测噪声,并利用卡尔曼滤波进行状态更新

    2. 基于非线性优化:图优化,因子图

      图优化:给定初值之后不断迭代更新图,主要利用的是g2o库

回环检测部分

作用:当相机在空间中运动的时候,很有可能出现相机所在的点在之前到达过的情况。此时三维重建的点云图上,相机的运动轨迹应该是闭合的曲线。但是由于传感器存在误差,计算过程也有很大的误差,所以点云图上,相机的轨迹通常不闭合。词袋检测可以判断相机是否在曾经到达过当前点,如果到达过,则让点云图轨迹闭合。

  • 实现方法:创建词袋.

    可以理解为一个袋子,这个袋子里装着每一帧图像中的特征元素。利用词袋比较每两帧图像的相似度,当相似度大于某一个阈值的时候,就认为这两幅图像是在同一点观测到的,相机回到了曾经到达过的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值