当激光或声纳等距离传感器被用来构建小的静态环境的二维地图时,SLAM的问题被认为是解决的。然而,对于动态,复杂和大规模的环境,使用视觉作为唯一的外部传感器,SLAM是一个活跃的研究领域。

第一部分是简介

移动机器人的自主导航问题分为三个主要方面:定位,建图和路径规划。

    定位包括以确切的方式确定机器人在环境中的当前姿态。

    建图将环境的部分观测结果整合到一个统一的模型中。

    路径规划确定了地图中通过环境进行导航的最佳路线。

最初,定位和建图是独立研究的,后来认识到它们是依赖的。在外部环境中,在动态环境中,在显着特征太多或很少的环境中,在大规模环境中,在摄像机的不稳定移动期间以及部分或完全遮挡传感器发生时,许多视觉SLAM系统会失败。

第二部分介绍了SLAM中的传感器

传感器能够感知并获得来自周围世界的元素的测量结果。分为外部传感器和本体感应传感器。

在外部传感器中,例如:声纳,射程激光,照相机和全球定位系统(GPS)

缺点:嘈杂的,范围能力有限,激光传感器和声纳在高度混乱的环境中或在识别物体方面不适用,昂贵,沉重,由大件设备组成,使得它们难以用于机载机器人或类人机器人。GPS传感器在狭窄的街道(城市峡谷),水下,其他星球上效果不佳,有时在室内不可用。

优点:激光传感器和声纳允许精确和非常密集的环境结构信息。

本体感应传感器允许实体获得速度,位置变化和加速度等测量结果。

特点:固有的噪声,它们不能够一直准确估计实体的位置,因为错误是累积的。

第三部分单目SLAM的缺点

许多视觉SLAM系统在探索环境时(或者在视觉复杂的环境中完全失败)遭受大量累积误差,这导致对机器人位置的估计不一致以及完全不协调的地图。 存在三个主要原因:

(1)首先,一般认为摄像机运动平缓,并且显著特征的外观会一致,但总的来说这是不正确的。上述假设与显著特征检测器的选择以及使用的匹配技术高度相关。由于传感器的快速移动(例如,由于振动或快速方向改变),当拍摄具有小纹理的图像或由于传感器的快速移动而模糊时,这引起照相机位置的不准确。在一定程度上缓解这个问题的一种方法是使用关键帧或者分析实时视觉追踪问题。

(2)其次,大多数研究者假定探索的环境是静止的,只包含静态的和刚性的元素;大部分环境都包含运动中的人物和物体。 如果不考虑这一点,移动的元素将会引起错误的匹配,从而在整个系统中产生不可预知的错误。

(3)最后,世界在视觉上是重复的。 有很多类似的纹理,比如重复建筑元素,叶子和砖或石头的墙壁。 在城市户外环境中也会出现一些物体,如交通信号。 这使得很难识别以前探索过的地区,也难以在大面积的土地上进行SLAM。

第四部分,描述了可以被提取的显著特征的类型以及用于实现对图像可能遭受的各种变换的不变性的描述符。

显著特征:描述的是(二维)图像上的区域。

路标:是由3D位置和外观信息描述的现实世界中的一个地区。

最容易定位的显著特征是由人造路标产生的特征。这些路标是故意添加到环境中的,目的在于作为导航的辅助。

一个高质量的特征具有以下特征:它必须是易于提取,精确的,并且对旋转,平移,缩放和光线变化不变。

显著特征提取过程由两个阶段组成:检测和描述。

检测包括处理图像以获得大量显著的元素。

描述在于基于图像中的视觉外观来构建特征向量,描述符对位置和方向变化的不变性将允许改进图像匹配和数据融合过程的效率

有大量的显著特征检测器,如:SIFT(尺度不变特征变换):充分考虑了在图像的变换过程中出现的光照,尺度,旋转变化,但是计算量很大,普通电脑的CPU无法实时的计算SIFT特征。需要使用GPU。

FAST特征没有描述子,计算很快。ORB特征点是目前的这种方案,改进了FAST检测子不具有方向性的问题,并采用了速度极快的二进制描述子BRIEF,使整个图像特征提取的环节速度加快了。

选择要使用的特征的类型在很大程度上取决于机器人将要工作的环境。

第五部分:涉及图像匹配和数据关联问题。

特征匹配:确定当前看到的路标与之前看到的路标之间的对应关系。通过图像与图像、图像与地图之间的描述子进行准确匹配,我们可以为后续的姿态估计,优化等操作减轻大量负担。

图像的特征匹配解决了SLAM 中的数据关联问题。匹配技术可以分为两类:短基线和长基线。

基线是分隔两个照相机的光学中心(用于捕获一对图像)的线段。

对于短基线的对应关系,重要的是要考虑区域的尺寸以及搜索区域的尺寸,否则会出现错误。短基线的缺点在于计算量大并且对噪声非常敏感,例如对图像坐标的错误度量将导致不同视角之间距离变小。
但是,可以通过视频序列对相应的特征进行精确的跟踪。

使用长基线时,图像在尺寸或者视角方面呈现出较大的变化,这导致图像中的一个点移动到另一图像中的任何位置。这会产生一个困难的关联问题。一个点邻域的点被视点和光照的变化所扭曲,并且相关性措施不能得到好的结果。特征匹配的最简单的办法是“暴力匹配”(对任意两幅图像都做一遍特征匹配)根据正确匹配的数量,确定哪两幅图像存在关联。显然这种思路比较粗燥,缺点显而易见。

对于回环检测有两种思路:A、基于里程计的几何关系,无法在累积误差较大时工作。B、基于外观:仅根据两幅图像之间的相似性确定回环检测关系。摆脱了累积误差,成为了现在的主流做法。

在基于外观的回环检测算法中,核心问题是:如何计算图像间的相似性。图像能够表示成矩阵,矩阵直接相减的准确率和召回率很差,可能出现大量的“假正”和“假负”的情况。所以针对某种特定的算法,我们统计它在某个数据集上的TP,TN,FP,FN的次数,然后计算准确率和召回率。在回环检测中,更倾向于把参数设置更严格一些,或者在检测之后加上回环检测的步骤。

第六部分详细回顾了解决视觉SLAM问题的不同方法,并讨论了每个方法的弱点和长处。

解决视觉SLAM问题的技术可以分为三类:

(a)基于滤波的经典模型

(b)采用增量方式运用结构动力学的技术

(c)仿生技术

基于滤波的经典模型,其中最经典的就是Mono SLAM,以扩展卡尔曼为后端,追踪前端十分稀疏的特征点,以相机的当前状态和所有路标点为状态量,更新其均值和方差。

缺点:应用场景窄,路标数量有限,稀疏特征点容易丢失。现在对它的开发已经停止,有更先进的理论和编程工具。

采用增量方式运用结构动力学的技术:运动构图能够从一系列图像中计算场景的3D结构和摄像头位置。SfM算法通过在当前帧中提取显著特征匹配并进行非线性优化,来减少重映射误差。SfM对摄像头的定位精度高,但是不一定能产生相容地图。PTAM基于关键帧,把关键帧串起来,然后优化其轨迹和地图,实现了跟踪与建图过程的并行化,

第七部分:描述被观察世界的不同方式。

地图分为度量地图和拓扑地图。

度量地图强调精确地表示地图中物体的位置关系,通常分为稀疏与稠密地图。

稀疏地图是由路标组成的地图,不是路标的部分可以忽略掉。适用于定位。

稠密地图着重于建模所有看到的东西,适用于导航。稠密地图通常是按着某种分辨率,由许多小块组成。对于二维地图是有许多小格子,对于三维地图是有许多小方块。每个小块有:占据,空闲,未知三种状态表达该格是否有物体。缺点:存储消耗大量空间,大规模度量地图有时会出现一致性问题。

拓扑地图:强调地图元素之间的关系,由节点和边组成,只考虑节点之间的连通性。缺点:不适用于表达具有复杂结构的地图。如何对于地图进行分割形成节点和边,又如何使用拓扑地图进行导航和路径规划是有待研究的问题。

Visual simultaneous localization and mapping: a survey 论文解析(全)的更多相关文章

  1. WSL (Windows Subsystem for Linux) 的 VSLAM (Visual Simultaneous Localization and Mapping) 道路

    WSL 的 VSLAM 道路 以 Windows Subsystem for Linux 闯入 Visual Simultaneous Localization and Mapping 世界的艰难道路 ...

  2. Simultaneous Localization and Mapping Technology Based on Project Tango

    Abstract: Aiming at the problem of system error and noise in simultaneous localization and mapping ( ...

  3. A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehicles in GPS-Denied Environments

    A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehi ...

  4. 即时定位与地图构建SLAM(Simultaneous Localization and Mapping)

    SLAM 即时定位与地图构建SLAM(Simultaneous Localization and Mapping) 参考链接: 视觉SLAM漫谈,http://www.cnblogs.com/gaox ...

  5. 泡泡一分钟:GEN-SLAM - Generative Modeling for Monocular Simultaneous Localization and Mapping

    张宁  GEN-SLAM - Generative Modeling for Monocular Simultaneous Localization and Mapping GEN-SLAM  - 单 ...

  6. [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge

    发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发信站: 水木社区 (Thu Jun 16 19:18:24 2016), 站内 ...

  7. [SLAM] 01. "Simultaneous Localization and Mapping"

    本篇带你认识SLAM,形成客观的认识和体系 一.通过行业招聘初步了解SLAM 发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发 ...

  8. 2.5D Visual Sound:CVPR2019论文解析

    2.5D Visual Sound:CVPR2019论文解析 论文链接: http://openaccess.thecvf.com/content_CVPR_2019/papers/Gao_2.5D_ ...

  9. 细粒度语义分割:ICCV2019论文解析

    细粒度语义分割:ICCV2019论文解析 Fine-Grained Segmentation Networks: Self-Supervised Segmentation for Improved L ...

随机推荐

  1. 笔记(json)实现前后端交互案例

    1:首先创建一个项目如:(说明:此项目是在eclipse创建的) 2.在创建相对应的包如: 3.创建写好相对应的配置文件如: applicationContext.xml具体内容如下: <?xm ...

  2. 【MAVEN】maven系列--pom.xml标签详解

    pom文件作为MAVEN中重要的配置文件,对于它的配置是相当重要.文件中包含了开发者需遵循的规则.缺陷管理系统.组织.licenses.项目信息.项目依赖性等.下面将重点介绍一下该文件的基本组成与功能 ...

  3. mongodb数据库禁止外网访问以及添加账号

    未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...

  4. Python数据分析中 DataFrame axis=0(0轴)与axis=1(1轴)的理解

    python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列? 直接上代码people=DataFrame(np.random.randn(5,5), columns=['a ...

  5. 分布式版本控制系统 Git 教程

    简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...

  6. Android Studio问题汇总

    1) Android Studio重命名工程名称: 1. 关闭Android Studio 2. 修改project所在路径的文件夹名字为[NewName] 3. 修改根目录下的.iml文件名为[Ne ...

  7. 自定义spring mvc的json视图

    场景 前端(安卓,Ios,web前端)和后端进行了数据的格式规范的讨论,确定了json的数据格式: { "code":"200", "data&quo ...

  8. Angular页面加载闪现解决方案 ng-cloak

    在做Angular项目时,经常会遇见在浏览器上闪烁表达式({{ express }} ),及模块(div)的闪烁,会闪现/闪烁隐藏的数据,之前用过vue.js,可以通过v-clock解决,同理Angu ...

  9. Create-React-App创建antd-mobile开发环境(学习中的记录)

    (参考别人结合自己的整理得出,若有错误请大神指出) Facebook 官方推出Create-React-App脚手架,基本可以零配置搭建基于webpack的React开发环境,内置了热更新等功能. 详 ...

  10. 【quickhybrid】H5和Native交互原理

    前言 Hybrid架构的核心就是JSBridge交互,而实现这个交互的前提是弄清楚H5和Native端的交互 本文主要介绍Native端(Android/iOS)和H5端(泛指前端)的交互原理 (之前 ...