视觉slam介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 准确的定位需要精确的地图 • 精确的地图来自准确的定位
第一讲 视觉SLAM概述
• How to do SLAM?——Sensors
两类传感器 • 安装于环境中的: • 二维码 Marker • GPS • 导轨、磁条 • 携带于机器人本体上的
• IMU
• 激光 • 相机
第一讲 视觉SLAM概述
• 优化的:Bundle Adjustment
3.4 PNP
• DLT(直接线性变换)
• 设空间点
• 投影点为: • 投影关系: • 展开: 归一化坐标
• 注意最下一行为
• 用它消掉前两行中的s,则一个特征点提 供两个方程:
• 为求解12个未知数,需要12/2=6对点。 • 将它看成一个关于t的线性方程,求解t (超定时求最小二乘解)
视觉SLAM介绍
提要
1. 2. 视觉SLAM概述 相机与图像
3.
4. 5. 6.
视觉里程计
后端优化 回环检测 地图构建
第一讲 视觉SLAM概述
Chapter 1: Introduction
第一讲 视觉SLAM概述
• Question 机器人自主运动两大基本问题
• 我在什么地方?——定位 • 周围长什么样子?——建图 • 机器人的“内外兼修”:定位侧重对自身的了解,建图侧重对外在的了解
实践 光流
可以发现,光流法在跟踪过 程中一部分特征点会丢失,在第 一帧时有1749个特征点,而在第 10帧时大约还有1640个特征点, 相机的视角在发生改变,所以我 们使用光流法时要注意特征点的 重新采集。
第四讲 后端
Chapter 4: Backend
4.1 BA与图优化
4.1 BA与图优化
其实这个过程非常简单,就是针对人脸、自行 车和吉他这三个文档,抽取出相似的部分(或者词 义相近的视觉词汇合并为同一类),构造一个词典, 词典中包含4个视觉单词,即Dictionary = {1:”自行 车”, 2. “人脸”, 3. “吉他”, 4. “人脸类”},最 终人脸、自行车和吉他这三个文档皆可以用一个4维 向量表示,最后根据三个文档相应部分出现的次数 画成了上面对应的直方图。一般情况下,K的取值 在几百到上千,在这里取K=4仅仅是为了方便说明。
• 相机
• 以一定速率采集图像,形成视频
• 分类
• 单目 Monocular • 双目 Stereo • 深度 RGBD • 其他 鱼眼 全景 Event Camera, etc.
第一讲 视觉SLAM概述
• 相机的本质
• 以二维投影形式记录了三维世界的信息
• 此过程丢掉了一个维度:距离
• 各类相机主要区别:有没有深度信息
3.1.1 ORB特征
• 特征匹配
• 通过描述子的差异判断哪些特征为同一个点
• 暴力匹配:比较图1中每个特征和图2特征的距离
• 加速:快速最近邻(FLANN)
实践:特征提取和匹配
3.2 对极几何
• 特征匹配之后,得到了特征点之间的对应关系
• 如果只有两个单目图像,得到2D-2D间的关系 ——对极几何
G2O下的BA优化
第五讲 回环检测
Chapter 5: Loop detection
5.1 回环检测
为消除累计误差,获得全局一致的地图和轨迹, 仅仅通过帧间数据匹配估计运动位姿是远远不够的, 需要在全局数据中进行处理才能得到更好的结果。 在这个过程中,回环检测就发挥了非常重要的作用。 回环检测可以有效修正运动轨迹,将累计误差消除。 回环检测本质上是图像相似度计算的问题,一 般使用 BOW 字典对图片进行描述,通过检验图片 中单词的数量形成直方图,通过检验直方图之间的 关系确定图像之间的相似程度。一般使用词袋模型 判断回环检测需要进行词典的建立以及后续对图像 相似性的处理。
5.2 词袋模型
我们从人脸、自行车和吉他三个目标类 图像中提取出的不同视觉词汇,而构造的词 汇表中,会把词义相近的视觉词汇合并为同 一类,经过合并,词汇表中只包含了四个视 觉单词,分别按索引值标记为1,2,3,4。 通过观察可以看到,它们分别属于自行车、 人脸、吉他、人脸类。统计这些词汇在不同 目标类中出现的次数可以得到每幅图像的直 方图表示: 人脸: [3,30,3,20] 自行车:[20,3,3,2] 吉他: [8,12,32,7]
3.5 光流
3.5 光流
• 一般分为稀疏光流和稠密光流
• 稀疏以Lucas-Kanade(LK)光流为代表
• 稠密以Horn–Schunck(HS)光流为代表
• 本质上是估计像素在不同时刻图像中的运动
3.5 光流
• 设 t 时刻位于 x,y 处像素点的灰度值为 • 在 t+dt 时刻,该像素运动到了
• 希望计算运动 dx, dy
• 灰度不变假设: • 注意:灰度不变是一种理想的假设,实际当中由于高光/阴影/材质/曝光等不同,很 可能不成立。
3.5 光流
• 对 t+dt 时刻的灰度进行Taylor展开并保留一阶项:
• 由于灰度不变,所以
因此 => x方向梯度 • 希望求解dx/dt, dy/dt 随时间变化 y方向梯度
• 物理手段测量深度
• 结构光 ToF
• 主动测量,功耗大 • 深度值较准确 • 量程较小,易受干扰
第一讲 视觉SLAM概述
• 视觉SLAM框架 • 前端:VO
• 后端:Optimization
• 回环检测 Loop Closing • 建图 Mapping
第一讲 视觉SLAM概述
• 视觉里程计 Visual Odometry
3.5 光流
• 但本式是一个二元一次线性方程,欠定
• 需要引用额外的约束
• 假定一个窗口( w ´ w )内光度不变:
• 通过超定最小二乘解求得运动 u,v
3.5 光流
最后,我们可以通过光流跟踪的特征的,用PnP、ICP或对极几何来估计 相机运动。总而言之,光流法可以加速基于特征点的视觉里程计算法,避免计 算和匹配描述子的过程,但要求相机运动较慢(或采集频率较高)。
• 特征点周围的图像信息——描述子(Descriptor)
• 主流方法:SIFT/SURF/ORB
(OpenCV features2d模块)
3.1.1 ORB特征
• 例子:ORB特征
• 关键点:Oriented FAST
• 描述:BRIEF
• FAST
• 连续N个点的灰度有明显差异
• Oriented FAST • 在FAST基础上计算旋转 • BRIEF • BRIEF-128:在特征点附近的128次像素比较
BA 算法起源于上世纪 60 年代,开始应用于图片拼接方向,正是由于 BA 的出 现才使得图片自动拼接称为可能。在视觉 SLAM 产生之后,BA 被广泛应用于视觉 SLAM的位姿优化,其将相机位姿和特征点的空间位置进行同时优化,获得优化后 的结果。 BA 本身也是一个非线性最小二乘问题。对于视觉 SLAM 来说 BA 问题可以简 单的描述成在不同的相机位姿下看到了相同的空间点,于是通过观测使得空间点和 相机位姿之间产生了约束,并且由空间点在两幅图像上的重投影产生了联系。由重 投影关系产生的误差即可建立最小二乘问题,求解该问题即可对相机位姿和空间点 进行同时优化。
3.3 三角化
• 已知运动时,求解特征点的3D位置
• 几何关系:
• 求 时,两侧乘
• 反之亦然
• 或者同时解
• 求 的最小二乘解
3.4 PNP
• 已经3D点的空间位置和相机上的投影点, 求相机的旋转和平移(外参) • 代数的解法/优化的解法 • 代数的
• DLT • P3P • EPnP/UPnP/…
• 单目:没有深度,必须通过移动相机产生深度 Moving View Stereo
• 双目:通过视差计算深度 Stereo • RGBD:通过物理方法测量深度
第一讲 视觉SLAM概述
仅有一个图像时:
• 可能是很近但很小的物体 • 可能是很远但很大的物体
它们成像相同
必须在移动相机后才能得知相机的运动和 场景的结构
第二讲 相机模型
• 小孔成像模型
原始形式
翻转到前面
整理之:
第二讲 相机模型
• 成像平面到像素坐标
代入
得
第二讲 相机模型
展开形式 传统习惯 矩阵形式
左侧是齐次坐标
中间矩阵称为内参数
右侧是非齐次坐标
内参通常在相机生产之后就已固定
第二讲 相机模型
• 除内参外,相机坐标系与世界坐标系还相差一个变换:
4.1 BA与图优化
• BA问题与图结构的关系
• BA虽是个纯优化问题,但亦可以用图模型表述出来
• 顶点为优化变量,边为运动/观测约束
• 本身还有一些特殊的结构 特点: • 每个观测只关系两个变量,其中一个是相机,一个 是路标 • 纯视觉Ba中,不存在相机与相机/路标与路标之间的 关联 • 整个误差函数由许多个这样小的项组成
• 相邻图像估计相机运动
• 基本形式:通过两张图像计算 运动和结构
• 不可避免地有漂移
• 方法
• 特征点法 • 直接法
第一讲 视觉SLAM概述
• 后端优化
• 从带有噪声的数据中优化轨迹和地图 状态估计问题
• 最大后验概率估计 MAP
• 前期以EKF为代表,现在以图优化为代表
第一讲 视觉SLAM概述
• 回环检测
• 检测机器人是否回到早先位置
• 识别到达过的场景
• 计算图像间的相似性
• 方法:词袋模型
第一讲 视觉SLAM概述
• 建图
• 用于导航、规划、通讯、 可视化、交互等 • 度量地图 vs 拓扑地图 • 稀疏地图 vs 稠密地图
第二讲 相机与图像
Chapter 2: Cameras and Images
• 如果匹配的是帧和地图,得到3D-2D间的关系
——PnP
• 如果匹配的是RGB-D图,得到3D-3D间的关系 ——ICP
3.2 对极几何
• 几何关系:
• P在两个图像的投影为
• 两个相机之间的变换为
• • 在第二个图像上投影为
• 记 ,称为极线,反之亦然
称为极点
• 实践当中:
• • 通过特征匹配得到,P未知, 待求(本质矩阵、单应矩阵) 未知
• 考虑在位姿 i 处对路标 j 的一次观测 zij:
eij = zij - h xi , y j
(
)
4.1 BA与图优化
• 该方程组分为两步来求:
1. 求解上半部分,规模较小,得到 Dxc
2. 将结果代入下半部分,得到
Dx p
• 这个做法称为Marginalization或Schur消元
• 从消元角度来讲,亦可使用Cholesky等其他消元方式解此稀疏方程 • 从Marginalization角度来讲,是我们把所有的路标信息边缘化到了相机的信息中
• 数量充足,以实现良好的定位
• 较好的区分性,以实现数据关联
• 在视觉SLAM中,可利用图像特征点作为SLAM中的路标
3.1 特征点法
• 特征点:图像当中具有代表性的部分
• 可重复性
• 可区别性
• 高效 • 本地
• 特征点的信息
• 位置、大小、方向、评分等——关键点
特征描述应该在光照、视角发生少量变化时 仍能保持一致
Байду номын сангаас 5.2 词袋模型
利用K-Means算法构造单词表。用Kmeans对第二步中提取的N个SIFT特征进行 聚类,K-Means算法是一种基于样本间相似 性度量的间接聚类方法,此算法以K为参数, 把N个对象分为K个簇,以使簇内具有较高 的相似度,而簇间相似度较低。聚类中心有 k个(在BOW模型中聚类中心我们称它们为 视觉词),码本的长度也就为k,计算每一 幅图像的每一个SIFT特征到这k个视觉词的 距离,并将其映射到距离最近的视觉词中 (即将该视觉词的对应词频+1)。完成这一 步后,每一幅图像就变成了一个与视觉词序 列相对应的词频矢量。
第一讲 视觉SLAM概述
• 当相机运动起来时
• 场景和成像有几何关系
• 近处物体的像运动快
• 远处物体的像运动慢 • 可以推断距离
第一讲 视觉SLAM概述
• 双目相机:左右眼的微小差异判断远近 • 同样,远处物体变化小,近处物体变化大——推算距离 计算量非常大
第一讲 视觉SLAM概述
• 深度相机
先把P从世界坐标变到 相机坐标系下
• 这里 R, t 或 T 称为外参 • 外参是SLAM估计的目标
第二讲 相机模型
• RGB-D相机:物理手段测量深度
• ToF或结构光两种主要原理
• 通常能得到与RGB图对应的深度图
第二讲 图像
• 相机成像后,生成了图像 • 图像在计算机中以矩阵形式存储(二维数组)
• 需要对感光度量化成数值,例如0~255之间的整数(彩色图像还有通道)
实践 点云拼接
第三讲 视觉里程计
Chapter 3: Visual Odometry
3.1 特征点法
• 经典SLAM模型中以位姿——路标(Landmark)来描述SLAM过程 • 路标是三维空间中固定不变的点,能够在特定位姿下观测到