视觉SLAM
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
回环检测
• 回环检测,又称闭环检测( Loop Closure Detection ),主要解决位置 估计随时间漂移的问题。 • 前端提供特征点的提取和轨迹、地图的初值,而后端负责对这所有的数据
进行优化。然而,如果像 VO 那样仅考虑相邻时间上的关联,那么,之前
产生的误差将不可避免地累计到下一个时刻,使得整个 SLAM 会出现累积 误差。长期估计的结果将不可靠,或者说,我们无法构建全局一致的轨迹
和地图。
核心问题是如何计算图像间的相似性
• 最简单的方式就是对任意两张图像都做一遍特征匹配,根据正确匹配的数量确定哪两个图像存在关联。但 计算量大,效率低下。 • 基于里程计的几何关系( Odometry based ), • 基于外观( Appearanc e based )仅根据两张图像的相似性确定回环检测关系,这种做法摆脱了累计误差, 使回环检测模块成为 SLAM 系统中一个相对独立的模块。
• 词袋模型:是用“图像上有哪几种特征”来描述一个图像。
建图
• 建图( Mapping )是
指构建地图的过程。
地图是对环境的描述, 但这个描述并不是固 定的,需要视 SLAM 的应用而定。
• 大体上讲,它们可以
分为度量地图与拓扑 地图两种 。
• 5. 建图( Mapping )。它根据估计的轨迹,建立与任务要求对应的地图。
数学模型(以针孔相机模型为例)
相机标定与像素坐标系
相机运动的数学模型
• 在这样设定中,“相机在环境中运动”,由如下两件事情描述: • 1. 什么是运动?我们要考虑从 k − 1 时刻到 k 时刻,相机的位置 x 是如何变化的。 • 2. 什么是观测?假设相机在 k 时刻,于 xk 处探测到了某一个路标 yj ,我们要考虑这件事情是如何用数学 语言来描述的。
用对极几何恢复出在两帧之间摄像机的运动
• 现在,假设我们从两张图像中,得到了一对配对好的特征点,像图 7-7 里显示的那样。如果我们有若 干对这样的匹配点,就可以通过这些二维图像点的对应关系,恢复出在两帧之间摄像机的运动。
• 1. 根据配对点的像素位置,求出 E 或者 F ;
• 2. 根据 E 或者 F ,求出 R, t 。由于 E 和 F 只相差了相机
问题。一种典型的方式是把它构建成一个优化问题,
求解最优的 R, t ,使得误差最小化。
• 而为了降低优化计算的复杂性,利用有关数学表达的
好的性质,引入李群和李代数的知识。
李代数求导与扰动模型
提取特征点
特征匹配
• 最简单的特征匹配方法就是暴力匹配( Brute -Forc e Matcher )。快速近似最近邻( FLANN )算法更加适 合于匹配点数量极多的情况。些匹配算法理论已经成熟。
视觉 SLAM
蔺志强 苏 敬
• SLAM 是 Simultaneous Localization and
Mapping 的缩写,中文译作“同时定位与地图构
建”。它是指搭载特定传感器的主体,在没有环 境先验信息的情况下,于运动过程中建立环境的 模型,同时估计自己的运动。如果这里的传感器 主要为相机,那就称为“视觉 SLAM ”。
的深度。
• 三角测量是指,通过在两处观察同一个点的夹角,确定该点的距离。
后端优化 • 后端优化主要指处理 SLAM 过程中噪声的问题。虽然我们很希
望所有的数据都是准确的,然而现实中,再精确的传感器也带
有一定的噪声。
• 后端优化要考虑的问题,就是如何从这些带有噪声的数据中,
估计整个系统的状态,以及这个状态估计的不确定性有多大— —这称为最大后验概率估计( Maximum-awk.baidu.comPosteriori , MAP )。 这里的状态既包括机器人自身的轨迹,也包含地图。 • 后端主要是滤波与非线性优化算法。
内参,而内参在 SLAM 中通常是已知的,所以实践当中往往使
用形式更简单的 E 。
三角测量确定深度
• 在得到运动之后,下一步我们需要用相机的运动估计特征点的空间位置。在单目 SLAM 中,仅通过单张图 像无法获得像素的深度信息,我们需要通过三角测量( Triangulation )(或三角化)的方法来估计地图点
SLAM 流程图
整个视觉 SLAM 流程分为以下几步:
• 1. 传感器信息读取。在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机 器人中,还可能有码盘、惯性传感器等信息的读取和同步。 • 2. 视觉里程计 (Visual Odometry, VO) 。视觉里程计任务是估算相邻图像间相机的 运动,以及局部地图的样子。 VO 又称为前端( Front End )。 • 3. 后端优化( Optimization )。后端接受不同时刻视觉里程计测量的相机位姿,以 及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 VO 之 后,又称为后端( Back End )。 • 4. 回环检测( Loop Closing )。回环检测判断机器人是否曾经到达过先前的位置。 如果检测到回环,它会把信息提供给后端进行处理。
三维世界中刚体运动的描述方式:旋转与平移
欧氏空间的坐标变换关系。
为了使旋转和平移能够统一地表示成线性的表达式,以简化计算,通常采用齐次坐标和变换矩阵的形 式来表示。
李群与李代数
• 在 SLAM 中,除了表示之外,我们还要对它们进行估 计和优化。因为在 SLAM 中位姿是未知的,而我们需
要解决什么样的相机位姿最符合当前观测数据这样的