前言

最近看了北京理工大学的课程《智能车辆概述与应用》,感觉入门角度讲的还不错的,于是通过本文记录关键内容。

背景

随着计算机视觉的发展,视觉定位导航中的得到应用;其中相关技术包括视觉里程计VO视觉SLAM

视觉里程计VO:关注两帧图像之间的位姿关系;一般不存储历史数据,只对当前或局部帧之间的位姿关系;往往忽视全局的一致性;运算速度快。

视觉SLAM:计算当前帧(或局部帧)具有历史数据地图 的位姿关系。维持全局的一致性,保持定位精度。

视觉里程计可以看作是视觉SLAM的一部分(前端部分)。

目录

一、视觉SLAM关键技术

1.1 传感器数据

1.2 前端 视觉里程计

A)特征提取

B)特征匹配

C)运动估计

1.3 后端 优化

1.4 回环检测

1.5 建图

二、视觉SLAM发展概述

2.1 Mono SLAM一基于扩展卡尔曼滤波

2.2 FastSLAM2.0一基于粒子滤波和卡尔曼滤波

2.3 PTAM一基于关键帧

2.4 ORB-SLAM一基于关键帧

2.5 LSD-SLAM一基于直接法

2.6 V-LOAM一基于视觉与雷达相结合


一、视觉SLAM关键技术

视觉SLAM框架如下图所示:

1.1 传感器数据

这部分主要是输入摄像头的图像数据;根据不同的视觉SLAM模型,输入的摄像头类型有:单目摄像头、或双目摄像头、或RGB-D摄像头等等。

1.2 前端 视觉里程计

视觉里程计(Visual Odometry),简称VO。这部分主要是计算图像帧之间 的相机位姿关系(相对位置关系)。通过拍摄图像,估计出相机的运行位置和姿态信息。

分类:单目视觉里程计、立体视觉里程计;

单目视觉里程计:往往无法估计深度信息,存在尺度歧义问题。

立体视觉里程计:能计算深度信息,不存在尺度歧义问题。而且,立体视觉能提供更丰富的数据,轨迹预测更准确。

 关键技术:特征提取、特征匹配、运动估计。步骤流程图,如下所示:收集输入图像数据,然后进行特征提取、特征匹配、运动估计,最后进局部行优化。

A)特征提取

特征提取:提取图像中的特征点。特征点关键点描述子两部分组成。

那什么是图像中的关键点啊?是指特征点在图像里的位置、大小、朝向等信息。

那什么是图像中的描述子啊?描述该关键点 周围像素的信息,人为设定的,通常是一个向量。比如,两个相似的特征点,它们的描述子应该一样。

为什么通常是用向量表示描述子啊?两个特征点在向量空间距离相近,可以认为是相同的描述子,进而表示两个特征点相似。

A.1)关键点

通常提取图像的角点作为关键点;通过一个小的窗口,观察灰度的变化,来识别角点。往任意方向移动,引起灰度的变化,这往往是角点。角点的检测如下图所示:

常见的角点检测算法:FAST角点(如下图所示)、oFAST角点、sFAST角点(详细的后面文章再讲解)

A.2)描述子

常见的描述子有SIFI特征(尺度不变特征转换),对DoG(Difference of Gaussians,高斯差)特征点p进行筛选得到关键点。

为每个关键点分配方向,使其具有旋转不变性

对关键点的高斯邻域计算梯度值决定主方向和辅方向。归一化到单位长度,减小对光照的敏感。

常见的描述子还有BRIEF(二值鲁棒独立元素特征),它是一种二进制的描述子,描述向量由许多个0和1组成。以特征点P为中心,把s*s大小的领域中,每个点对应的像素灰度值 与 特征点中心P进行比较,最后得到BRIEF描述子。

A.3)特征提取 示例——ORB特征

ORB特征(Oriented FAST and Rotated BRIEF),采用BRIEF描述子,步骤流程如下图所示:

B)特征匹配

特征匹配的目的是解决SLAM中的数据关联问题,即:确定当前的特征点之前看到的特征点 之间的一个对应关系。下图是两张图像,通过特征匹配,找到一一对应的特征点。

经典示例:立体匹配,详细请参考:一篇文章认识《双目立体视觉》_一颗小树x的博客-CSDN博客

C)运动估计

运动估计是对相邻两帧图像运动变化做出估计,从而得到整体的运动轨迹当前的运动状态。在得到对应的特征点后,可以计算帧间的相对运动(运动估计)。

2D-2D运动估计:两帧图像之间进行运动估计,在待计算的两帧图像的特征点,都用2维图像坐标表示。(求旋转矩阵R、平移向量t、奇异值分解法)

3D-3D运动估计:两帧图像之间进行运动估计,在待计算的两帧图像的特征点,都用3维坐标表示。(ICP、NDT算法)

3D-2D运动估计:两帧图像之间进行运动估计,在待计算的两帧图像的特征点,前一张用3维坐标表示,后用2维图像坐标表示。(在坐标转换过程中,需要计算最小重投影误差,PnP算法解决)

后面文章再详细讲解。。。

1.3 后端 优化

这部分主要是对前端(视觉里程计)的输出结果进行误差消除和优化,得到更优的位姿估计信息。

后端优化主要是消除SLAM的噪声,包括传感器的测量误差、标定误差、特征点位置误差等。为了尽量消除这些误差的影响,需对前端得到的位置姿态地图路标位置进行优化。

通常采用光束法平差(Bundle Adjustment,BA)的方法来调整关键帧的位置,使其达到最优。BA算法可以搭配G2O开源库使用。

1.4 回环检测

这部分主要是能识别出,摄像机之前经过的场景,从而构建回环;解决位置漂移的问题,让计算机理解环境的拓扑结构。

1.5 建图

这部分主要是通过特征点进行对环境信息建图。后面补充更新..........

二、视觉SLAM发展概述

2.1 Mono SLAM一基于扩展卡尔曼滤波

Mono SLAM是第一个实时单目视觉SLAM系统,以扩展卡尔曼滤波EKF为后端,追踪前端非常稀疏的特征点。Mono SLAM 已相机的当前状态和所有路标点为状态量,更新它的均值和协方差。

基于扩展卡尔曼滤波的视觉SLAM,通过非线性系统状态方程的一阶偏导 来近似运动模型。它忽略了泰勒展开的高阶项,这样不可避免地引入线性误差,因此只有状态方程接近线性时,才能使用扩展卡尔曼滤波。扩展卡尔曼滤波中,每个特征点的位置服从高斯分布。

2.2 FastSLAM2.0一基于粒子滤波和卡尔曼滤波

使用粒子滤波卡尔曼滤波做出了FastSLAM,将SLAM问题分解为定位问题基于位姿估计的路标集合估计问题,后来又经过改进,提出了FastSLAM2.0.

2.3 PTAM一基于关键帧

PTAM提出并实现了跟踪与建图过程的双线程并行化。使用非线性优化作为后端。

引入了关键顿机制:不必精细地处理每一幅图像,而是把几个关键图像串起来,然后优化其轨迹和地图。

只是应用于小场景,并没有在大范围环境中进行测试。

2.4 ORB-SLAM一基于关键帧

它使用三个线程完成SLAM

  1. 实时跟踪特征点的Tracking线程;
  2. 局部Bundle Adjustmente的建图优化线程;
  3. 全局Pose Graph的回环检测与优化线程。

ORB-SLAM特点:

  • 支持单目、双目、RGB-D三种模式;
  • 采用ORB特征,用时短,可实时计算;
  • 具有良好的旋转和缩放不变性;
  • 提供描述子,大范围运动时也能进行回环检测和重定位。

2.5 LSD-SLAM一基于直接法

·LSD-SLAM的核心贡献是将直接法应用到了半稠密的单目SLAM中。优点:

  • LSD-SLAM的直接法是针对像素进行的。
  • LSD-SLAM在CPU上实现了半稠密场景的重建。

2.6 V-LOAM一基于视觉与雷达相结合

使用视觉里程计方法来对自身运动进行估计,并对雷达点进行匹配;利用基于雷达的里程计方法进一步对定位和地图进行优化;同时利用相机和雷达的优势,提高了定位和建图的准确性与稳定性。

本文只供大家参加与学习,谢谢!

视觉SLAM 关键技术与发展概述相关推荐

  1. 计算机仿真的实质意义是什么,计算机仿真技术的发展概述及认识(12页)-原创力文档...

    计算机仿真技术的发展概述及认识 摘 要 :随着经济的发展和社会的进步,计算机技术高速发展,使 人类社会进入了信息时代,计算机作为后期新秀渗入到人们生活中的 每一个领域,给人们的生活带来了前所未有的变化 ...

  2. 【5G】5G关键技术领域发展状况

    5G关键技术领域发展状况 当前 ,5G已成为全球业界研发的焦点.5G移动通信系统不是简单的以某个单一技术或某些业务能力来定义的.5G将是一系列无线技术的深度融合.它不但关注更高效率.更大带宽.更强能力 ...

  3. 智能网联交通系统的关键技术与发展

    (一)文章素材摘录于 单位信息|吉林大学通信工程学院钱志鸿教授团队 数据来源|电子与信息学报 (二)正文 本期推荐吉林大学通信工程学院钱志鸿教授团队发表于<电子与信息学报>2020年42卷 ...

  4. 卫星光通信关键技术及发展态势分析

    摘要:对卫星光通信涉及的部分公开验证项目开展情况和产业化进程进行了分析,并分别从光学.信号处理.机械等方面梳理了卫星光通信中所涉及的关键技术,最后对卫星光通信的发展态势进行了研判. 关键词:卫星光通信 ...

  5. 机器人产业的前途取决于人工智能关键技术的发展

    来源:亿欧 概要:让机器人实现智能的关键技术在最近十年会发展到什么程度?整个产业的应用前景将会如何? 目前的机器人已经能够胜任精确.重复性的工作,但很多时候,它还不能够灵活地为新任务进行自我调整,也不 ...

  6. 全景视频拼接的关键技术与发展优势、作用、应用。

    全景视频拼接是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图.全景视频技术涉及到计算机视觉.计算机图形学.数字图像处理以及一些数学工具等技术.全景拼接基本步骤主要 ...

  7. 青岛物联网关键技术资源发展路线图发布

    日前,青岛市<物联网关键技术-无线射频识别(RFID)全球创新资源发展路线图>正式发布.该路线图揭示研发热点,掌握主要创新机构.领军人物等创新资源的布局,进而为我市物联网技术创新和产业发展 ...

  8. 工业视觉检测关键技术

    工业视觉检测所涉及的关键技术: 总体上说由系统硬件优化设计和系统软件优化设计两部分组成.系统硬件设计涉及摄像机和镜头的选用.图像采集和传输等,系统软件方面主要包括图像处理技术.图像特征识别.图像理解和 ...

  9. 5G NGC — 关键技术 — 网络切片 — 概述

    目录 文章目录 目录 网络切片的需求来自于业务对网络提出的差异化要求 5G 的网络差异化方案对比 5G 网络切片的四大特点 网络切片的商业价值 3 大切片类型 网络切片的需求来自于业务对网络提出的差异 ...

最新文章

  1. Nutch之初体验(1)
  2. COM中的IDL语言的难点之接口指针
  3. C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧
  4. xml中的Document和Attribute
  5. 二次元福利适应个人引导页
  6. java final class 性能_java中final修饰基本变量后的效率问题
  7. php练习——打印半金字塔、金字塔、空心金字塔、菱形、空心菱形
  8. win7 下 qwt安装教程
  9. HAPPY 2010
  10. SVM原理,及和逻辑回归区别
  11. C/C++ Linux 异步IO(AIO)
  12. sql sever 插入数据
  13. 御坂搜索引擎_MisakaTranslator下载|MisakaTranslator御坂翻译器 v2.1 正式整合版下载
  14. 计算离散点线性相关系数
  15. NTFS磁盘读写工具Mounty 1.9 Mac免费版
  16. 【学术前沿分析】1 论文数据统计
  17. linux压缩命令bzip2,Linux上常用压缩命令gzip,bzip2,zip/unzip
  18. python练习------京牌车牌摇号
  19. 简单演示Exploit SEH原理(未开启SafeSEH模块)
  20. OV7725寄存器配置

热门文章

  1. linux-系统硬件信息查看方法
  2. Shell自定义日志打印格式
  3. html倒计时还有多少天,倒计时(距离活动结束还有X天X小时X分X秒)
  4. vbs 之 wscript
  5. Diskgenius专业版英文破解(绝对能用)
  6. 如何将光盘上的CDA文件拷贝到电脑硬盘上
  7. css html属性,HTML/CSS从零开始-常用属性
  8. 解决CSS position:fixed 兼容问题
  9. 【洛谷 P3951】小凯的疑惑【数论】
  10. CVPR2017:密集连接的卷积网络DenseNet《Densely Connected Convolutional Networks》