The Basics about Visual SLAM 视觉SLAM的基础知识

Slides:



Advertisements
Similar presentations
Unit 9. Look at the picture of 1a and think about the questions: 1. How many people are there in the picture? 2. Where are they? 3. What are the two.
Advertisements

學生事務處 學務長 〈林姝君教授〉. 學 習 態 度人 際 互 動關 懷 弱 勢團 隊 合 作心 中 有 愛學 習 態 度人 際 互 動關 懷 弱 勢團 隊 合 作心 中 有 愛.
考研英语复试 口语准备 考研英语口语复试. 考研英语复试 口语准备 服装 谦虚、微笑、自信 态度积极 乐观沉稳.
黄国文 中山大学 通用型英语人才培养中的 语言学教学 黄国文 中山大学
如何与客户有效沟通 外贸团队销售及管理实战培训 浙江艾力斯特健康科技有限公司
Virginia Satir 维吉尼亚·萨提尔( ): Family Therapy.
key vocabulary 1 live to be 200 years 2 in the future 3 make predictions 4 have robot in your home 5 five years from now 6 study at home on computer 7.
Have you ever been to a zoo? zoo water park Have you ever been to a water park?
How can we become good leamers
华东师范大学软件学院 王科强 (第一作者), 王晓玲
2012高考英语书面表达精品课件:话题作文6 计划与愿望.
-Artificial Neural Network- Hopfield Neural Network(HNN) 朝陽科技大學 資訊管理系 李麗華 教授.
长江经济带海关区域通关 一体化改革介绍 2017/9/9 2017/9/9.
大数据在医疗行业的应用.
云实践引导产业升级 沈寓实 博士 教授 MBA 中国云体系产业创新战略联盟秘书长 微软云计算中国区总监 WinHEC 2015
Welcome Welcome to my class Welcome to my class!.
深層學習 暑期訓練 (2017).
What are the shirts made of?
Homework 4 an innovative design process model TEAM 7
Unit 4 I used to be afraid of the dark.
What are the shirts made of?
Module 5 Shopping 第2课时.
Ⅱ、从方框里选择合适的单词填空,使句子完整通顺。 [ size beef special large yet ]
指導教授:許子衡 教授 報告學生:翁偉傑 Qiangyuan Yu , Geert Heijenk
模式识别 Pattern Recognition
Manifold Learning Kai Yang
Fun with English 7A Unit 2 Main task.
SAT and max-sat Qi-Zhi Cai.
运用之妙,存乎一心 ——“教学之星”大赛 助力教师成长 刘亚兰 钟山职业技术学院 南京
第十章 基于立体视觉的深度估计.
肢體殘障人士 Physically handicapped
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
创建型设计模式.
Shape(Structure) From X
光流法 (Optical Flow) 第八章 基于运动视觉的稠密估计 光流法 (Optical Flow)
Step 1. Semi-supervised Given a region, where a primitive event happens Given the beginning and end time of each instance of the primitive event.
Unit 7 What’s the highest mountain in the world?
Network Planning Algorithms in CATV Networks
971研究方法課程第九次上課 認識、理解及選擇一項適當的研究策略
子博弈完美Nash均衡 我们知道,一个博弈可以有多于一个的Nash均衡。在某些情况下,我们可以按照“子博弈完美”的要求,把不符合这个要求的均衡去掉。 扩展型博弈G的一部分g叫做一个子博弈,如果g包含某个节点和它所有的后继点,并且一个G的信息集或者和g不相交,或者整个含于g。 一个Nash均衡称为子博弈完美的,如果它在每.
英语表示人体部位的词 Body Parts in English 温州中学 张怡.
Lesson 44:Popular Sayings
Could you please clean your room?
SectionA(Grammar Focus-4c)
Depth Map Liu Xiaoyang Jun 16, 2015.
专利信息在全球一流企业获得的成功中的关键性作用 格哈德·菲舍尔 知识产权信息研究
Version Control System Based DSNs
VIDEO COMPRESSION & MPEG
沙勇忠 Sha Yongzhong 兰州大学图书馆 Library of Lanzhou University
Mobile Project C.E.O. Project B 賈乃輝 B 黃昱翔.
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
Research 裴澍炜 Shuwei Pei Tel:
Guide to a successful PowerPoint design – simple is best
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
冀教版 九年级  Look into Science!.
冀教版 九年级 Lesson 20: Say It in Five.
李宏毅專題 Track A, B, C 的時間、地點開學前通知
Efficient Query Relaxation for Complex Relationship Search on Graph Data 李舒馨
key vocabulary 1 live to be 200 years 2 in the future
Sun-Star第六届全国青少年英语口语大赛 全国总决赛 2015年2月 北京
創造思考的開發與培養.
 隐式欧拉法 /* implicit Euler method */
More About Auto-encoder
國立東華大學課程設計與潛能開發學系張德勝
Prepare for Cozy & Lazy HOME Life
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
作业 请您用星级模式评估您自己公司的一致性状况。 您的公司与它的战略执行一致吗?.
之前都是分类的蒸馏很简单。然后从分类到分割也是一样,下一篇是检测的蒸馏
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

The Basics about Visual SLAM 视觉SLAM的基础知识 高 翔(半闲居士) 清华大学 自动化系 2016.7 ROS暑期学校

Robotics What people think What I am actually doing

提要 视觉SLAM概述 视觉里程计 后端优化 回环检测 地图构建 小结

视觉SLAM概述

1. 视觉SLAM概述 SLAM: Simultaneous Localization and Mapping 应用:机器人、无人机、AR/VR、智能硬件……

1. 视觉SLAM概述 内在 外在 机器人的“内外兼修” 了解自身位置 了解周围环境 Where am I? Where am I? 精确的地图 精确的位姿 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。 解决方式 同时建模二者误差并优化

1. 视觉SLAM概述 如何确定位置与地图?——传感器 为何强调内部传感器? 内部传感器(Interoceptive) 激光、视觉、IMU、轮子等 间接、受噪声影响大 外部传感器(Exteroceptive) GPS、导轨、标志物等 直接、受噪声影响小 为何强调内部传感器? 对环境不存在假设——适用于任何环境 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。

1. 视觉SLAM概述 激光传感器 视觉传感器 精确 快速 计算量小 研究充分 体积大、功耗大 价格昂贵 便宜 轻量 信息丰富 计算量大 对环境假设强 易受干扰 细分:单目、双目、RGB-D 相机能够以一定速率拍摄周围的环境,形成一个连续的视频流。普通的摄像头能以每 秒钟30 张图片的速度采集图像,高速相机则更快。在SLAM 中,我们把相机分为单目 (Monocular)、双目(Stereo)和深度相机(RGB-D)三个大类,此外还有鱼眼、全景、 Event 相机等特殊或新兴的种类。

1. 视觉SLAM概述 视觉SLAM细分: 单目 双目 RGB-D 其他 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。

单目 双目 RGB-D 1. 视觉SLAM概述 成本低 距离不受限 尺度不确定性 初始化问题 计算深度 配置复杂 计算量大 主动测深度 重建效果好 测量范围小 受日光干扰 受材质干扰 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。

1. 视觉SLAM概述 视觉SLAM过程 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。 视觉SLAM过程

1. 视觉SLAM概述 经典SLAM数学表述 机器人在环境中运动,产生一条轨迹: 环境中存在许多路标点: 机器人从 时刻运动到 时刻: 机器人从 时刻运动到 时刻: 在 时刻观察到了路标 ,产生观测 𝑘−1 𝑘 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。 运动模型 输入 噪声 𝑘 𝑦 𝑗 𝑧 𝑘𝑗 观测模型 观测点 噪声

1. 视觉SLAM概述 SLAM数学模型: 视觉SLAM有何不同? 相机位姿是三维空间旋转和平移 ——李群与李代数 相机位姿是三维空间旋转和平移 ——李群与李代数 观测模型是空间点到像素的投影 ——相机模型 如何确定路标点和数据关联? ——视觉里程计(前端) 状态估计问题 滤波器或非线性优化 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。

1. 视觉SLAM概述 视觉SLAM框架 “定位”和“建图”,可以看成感知的“内外之分”。作为一个内外兼修的机器人, 一方面要明白自身的状态(即位置),另一方面也要了解外在的环境(即建图)。当然, 解决这两个问题的方法非常之多。比方说,我们可以在房间地板上铺设导引线,在墙壁 上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以很大程度上依靠 GPS 信号(像汽车一样)。这些方式统称为“外部的”传感器(Exteroceptive),当然相 对的就有“内部的”传感器(Interoceptive)。外部传感设备能够测量机器人的位置信息, 从而简单有效地解决定位问题,但它们不放置在机器人本体上,而是放置在环境当中,限 制了机器人的使用范围。相对的,内部传感器(相机,轮式编码器,IMU 等)无法直接 测量机器人的位置信息,但它们对环境没有提出任何要求,因而可适用于未知环境。

1.视觉SLAM概述 SLAM is more like a concept than a single algorithm.* 视觉里程计 估算相机的帧间运动以及路标的位置 后端优化 接受不同时刻视觉里程计测量的相机位姿,计算最大后验概率估计 回环检测 判断机器人是否曾经到达过先前的位置 建图 根据相机轨迹和图像,建立与任务要求对应的地图 SLAM is more like a concept than a single algorithm.*

1.视觉SLAM概述 3D刚体运动 旋转矩阵/变换矩阵 角轴(旋转向量) 欧拉角 四元数 3*3和4*4矩阵 3*1向量 3*1向量,r-p-y角 直观 有奇异性 四元数 4*1向量,扩展的复数 完备,但不直观 𝑝 𝑤 = 𝑇 𝑤𝑐 𝑝 𝑐 = 𝑅 𝑤𝑐 𝑡 𝑤𝑐 0 𝑇 1 𝑝 𝑐 = 𝑅 𝑤𝑐 𝑝 𝑐 + 𝑡 𝑤𝑐

1.视觉SLAM概述 旋转/变换矩阵最为常用 SLAM中需要微调相机位姿——李代数 但只有乘法,没有加法,代数结构上不够好,只成群 旋转/变换矩阵没有加法,无法计算微分 SLAM中需要微调相机位姿——李代数

1.视觉SLAM概述 程序库:Eigen, Sophus, tf 相关资料 [1] State Estimation for Robotics: A Matrix-Lie-Group Approach [2] An invitation to 3D computer vision 程序库:Eigen, Sophus, tf

2. 视觉里程计

2. 视觉里程计 视觉里程计的目的 问题 根据图像,计算相机的帧间运动(ego-motion) *估计特征点(路标点)大致空间位置 Motion & Strcutre 问题 图像是怎么来的? 特征点是怎么来的? 如何根据特征点计算相机运动? 如何估计特征点位置?

2. 视觉里程计 图像是怎么来的? ——相机模型 相似关系:

2. 视觉里程计 空间点到成像平面: 从成像平面到像素坐标 齐次坐标形式:

2. 视觉里程计 图像是怎么来的? ——相机模型

2. 视觉里程计 图像是怎么来的? ——相机模型 视觉观测模型 空间点 相机坐标系下的点 成像平面下的点 像素坐标 𝑝= 1 𝑍 𝑝 𝑐 图像是怎么来的? ——相机模型 视觉观测模型 空间点 相机坐标系下的点 成像平面下的点 像素坐标 𝑝= 1 𝑍 𝑝 𝑐 𝑢 𝑣 1 =𝐾𝑝 𝑝 𝑤 𝑝 𝑐 =𝑅 𝑝 𝑤 +𝑡 𝑧= 𝑢 𝑣 = 1 𝑍 𝐷𝐾 𝑅 𝑝 𝑤 +𝑡 𝐷= 1 0 0 0 1 0 齐次坐标下: 𝑧=𝐷𝐾 𝑅𝑝+𝑡

2. 视觉里程计 视觉里程计基本问题 给定一组空间点在两个相机 上的投影 计算两个相机之间的运动 单目:只知道像素位置,没有深度 RGB-D、双目:深度已知 2D-2D:只根据两组像素位置,估计运动 ——对极几何 3D-2D:已知空间位置和投影位置,估计运动 ——PnP 3D-3D:已知两组空间位置,估计运动 ——ICP

2. 视觉里程计 2D-2D 对极几何 空间点P在两个相机中成像: 去掉标定矩阵: 整理: 两边叉乘 t: 两边左乘 𝑥 1 =𝐾𝑃 𝑥 2 =𝐾 𝑅𝑃+𝑡 𝑦 1 = 𝐾 −1 𝑥 1 , 𝑦 2 = 𝐾 −1 𝑥 2 𝑦 2 =𝑅 𝑦 1 +𝑡 对极约束: 𝑦 2 𝑇 𝑡 × 𝑅 𝑦 1 =0 几何意义: 𝑂 1 𝑃, 𝑂 2 𝑃,𝑡 三个向量共面 𝑡 × 𝑦 2 = 𝑡 × 𝑅 𝑦 1 + 𝑡 × 𝑡= 𝑡 × 𝑅 𝑦 1 𝑦 2 𝑇 𝑦 2 𝑇 ( 𝑡 × 𝑦 2 )= 𝑦 2 𝑇 𝑡 × 𝑅 𝑦 1 =0

2. 视觉里程计 对极约束: 获得E矩阵后,如何计算R,t? 一对点提供了一个对极约束 E有八个自由度(9个数,但乘任意常数等价) 单目相机存在尺度问题 最少提供八对点即可计算E ——八点法 多于八对点时:最小二乘估计 获得E矩阵后,如何计算R,t? SVD分解 由于 ,当t=0时,E为零,无法解出R 单目相机在纯旋转时无法估计运动 𝑦 2 𝑇 𝑡 × 𝑅 𝑦 1 =0 𝑡 × 𝑅≜𝐸 称为Essential矩阵 𝐸= 𝑡 × 𝑅

2. 视觉里程计 单目相机的尺度不确定性 对极约束常用于单目相机初始化,设定t=1以固定尺度 𝑦 2 𝑇 𝐸 𝑦 1 =0⇒ 𝑦 2 𝑇 (𝑘𝐸) 𝑦 1 =0 4m? 40m? 1.8 m?

2. 视觉里程计 通过优化估计相机运动:Bundle Adjustment 相机模型: 由于R,t不准确,上式不会精确成立,于是有误差: 𝑧= 𝑢 𝑣 = 1 𝑍 𝐷𝐾 𝑅 𝑝 𝑤 +𝑡 𝑒=𝑧− 1 𝑍 𝐷𝐾 𝑅 𝑝 𝑤 +𝑡 迭代策略 梯度下降 Newton法 Gauss-Newton法 Levenburg-Marquadt 𝑅,𝑡 ∗ =argmin 𝑖=1 𝑁 𝑒 𝑖 𝑇 𝑒 𝑖

2. 视觉里程计 Bundle Adjustment 问题:梯度如何计算? 优点 缺点 需要用李代数se(3)表达R,t,使用扰动模型 𝑅,𝑡 ∗ =argmin 𝑖=1 𝑁 𝑒 𝑖 𝑇 𝑒 𝑖 2. 视觉里程计 𝑒=𝑧− 1 𝑍 𝐷𝐾 𝑅 𝑝 𝑤 +𝑡 PnP: ICP: 𝑒=𝑞− 𝑅𝑝+𝑡 Bundle Adjustment 问题:梯度如何计算? 需要用李代数se(3)表达R,t,使用扰动模型 优点 通用性强,对于3D-2D, 3D-3D问题都可用BA优化;(只要有观 测模型即可建立误差项) 可以同时优化许多变量,包括相机位姿和特征点位置; 缺点 对初值敏感 对非凸问题,易落入局部极小

2. 视觉里程计 剩下的问题 特征点怎么来?——特征点提取算 法(SIFT、ORB等) 特征提取算法会计算图像中的关键 点(Key-Point),以及每个关键点 对应的描述子(Descriptor) 关键点代表图像信息集中的部分 描述子能够区别每个关键点——可 以用于匹配

2. 视觉里程计 基于特征点的视觉里程计 步骤: 对图像提取特征点和描述子 匹配当前图像与先前图像 通过最小化重投影误差,计算相机运动:PnP, ICP 但是: 特征提取很耗时 特征提取并不一定成功,匹配也并不一定找的到 可能存在误匹配 视觉里程计主流算法

2. 视觉里程计 直接法 灰度不变假设 最小化灰度差(Photometric Error) 可以考虑所有的像素(但只有梯度明显的 像素对优化有贡献) 可以计算稀疏、半稠密乃至稠密的结构 省去特征提取的时间 𝑒= 𝐼 1 𝑝 1 − 𝐼 2 𝑝 2 = 𝐼 1 𝑝 1 − 𝐼 2 1 𝑍 𝐾 𝑅𝑃+𝑡 例子:稀疏直接——SVO 半稠密直接——LSD 稠密直接——DVO

2. 视觉里程计 Feature-based Methods Direct methods Select 100-1000 representative points (or lines, planes) and discard the others. Estimation the motion from the key-points. Track the key-points using descriptors. Sparse Robust to outliers Estimate the motion directly from pixels. Use all information from images. Sparse is fast, but dense is slow Difficult to remove the outliers Needs good initialization

2. 视觉里程计 计算特征点位置(Motion & Structure) 三角化 理论上,P应该在 延长线交点处 但受噪声影响,这两条线一般不相交 根据左图: 两边分别乘 和 : 可解出 𝑂 1 𝑥 1 , 𝑂 2 𝑥 2 𝑃= 𝑘 1 𝑥 1 = 𝑘 2 𝑅 𝑥 2 +𝑡 𝑥 1 𝑇 𝑥 2 𝑇 𝑥 1 𝑇 𝑥 1 𝑘 1 −( 𝑥 1 𝑇 𝑅 𝑥 2 ) 𝑘 2 = 𝑥 1 𝑇 𝑡 𝑥 2 𝑇 𝑥 1 𝑘 1 − 𝑥 2 𝑇 𝑅 𝑥 2 𝑘 2 = 𝑥 2 𝑇 𝑡 𝑘 1 , 𝑘 2 𝑃 ∗ = 1 2 𝑘 1 𝑥 1 + 𝑘 2 𝑅 𝑥 2 +𝑡 但是,三角化之后的特征点深度是带有误差的。我们可以进一步使用后续图像来估计像素深度,引出Depth Filter。

2. 视觉里程计 视觉里程计小结 在视觉里程计中,我们: 但是它们会: 提取、匹配了特征点 根据配对的特征点计算相机运动 估计特征点的空间位置 但是它们会: 带有噪声 随着误差累计,发生飘移 丢失(相机被遮挡或运动过快) Solutions Global optimization Loop closure Re-localization

3. 后端优化

3. 后端优化 回顾SLAM数学模型 Motion: Observation: Observation: 视觉里程计:提取了关键帧、特征点,并提供了初值 后端:处理观测和运动模型之间的误差,计算最大后验概率估计 Motion: Observation: Observation: 𝑧= 𝑢 𝑣 = 1 𝑍 𝐷𝐾 𝑅 𝑝 𝑤 +𝑡 𝑥 ∗ =arg max 𝑥 𝑝 𝑥|𝑧 =arg max 𝑝 𝑧|𝑥 𝑝 𝑥

3. 后端优化 后端存在两种主流方法 历史上,EKF曾占据很长一段时间的主流 EKF思路 EKF存在的问题 基于滤波器:Kalman Filter, EKF, PF, RBPF, UKF 基于非线性优化:图优化、因子图 历史上,EKF曾占据很长一段时间的主流 EKF思路 在工作点线性化,将系统线性化,并用高斯分布 近似其噪声 按照卡尔曼滤波进行预测——更新步骤 EKF存在的问题 即使是高斯分布,经过非线性变换后也不是高斯 分布,近似有时是没道理的。 线性化过程中丢弃了高阶项,且工作点不是输入 状态真实的均值,而是一个估计的均值。 需要更新状态的协方差矩阵,复杂度为 从状态估计角度来说,SLAM是一个非线性非高斯系统 𝑂 𝑛 2

3. 后端优化 全局优化 转化成优化问题 与滤波器的差异 考虑所有时间的Pose和Point 局部线性化并迭代求解 𝑒 𝑘,𝑣 = 𝑥 𝑘 −𝑓 𝑥 𝑘 , 𝑢 𝑘 ∼𝑁 0, 𝛴 𝑘,𝑣 𝑒 𝑘𝑗,𝑜 = 𝑧 𝑘,𝑗 −ℎ 𝑦 𝑗 , 𝑥 𝑘 ∼𝑁 0, 𝛴 𝑘𝑗,𝑜

3. 后端优化 工具:g2o, gtsam等 图优化 稀疏性 优化变量——节点 误差项——边 问题可以用一个图来描述 给定初值后,迭代更新 认识到SLAM中图优化的稀疏性是21 世纪SLAM研究的重要进展 图优化中的位姿节点和路标节点可 以先后优化,大幅提高优化效率 详细地稀疏性需要介绍稀疏Schur和 Cholesky分解 工具:g2o, gtsam等 G={V,E}

3. 后端优化 The loop constraints can help to correct the drift.

3. 后端优化 图优化中的问题 加入了错误的边怎么办? 图的规模随着SLAM过程增长 大规模图优化很耗时 使用鲁棒核函数 剪枝、合并 控制优化逻辑

4. 回环检测

4. 回环检测 回环检测 识别到达过的地点. 视觉里程计仅用相邻帧图像估计运动,存在累积误差 回环检测通过发现到达过的地方,消除累积误差 从而保证了轨迹与地图的全局一致性(Globally Consistent)

Looks different but the same 4. 回环检测 视觉SLAM的回环检测 计算图像的相似性 图像信息丰富,因此视觉SLAM在回环检测中具有优势 YES Looks same but not Looks different but the same False Positive False Negative

4. 回环检测 如何计算两个图像的相似性? 主流方法: Bag-of-Words A-B? From many images: nose, eyes, hairs, … Dictionary Face = 1 nose + 2 eyes + 1 hairs + … Features -> Words

Compute Similarity and 4. 回环检测 BoW回环检测 如何评价一个回环检测算法? Precision-recall curve. Approaches from ML: Auto-encoders, CNNs. Clustering A large image set Features: SIFT, ORB Dictionary Words A= 2 car + 1 people Image A Words A= 1 car + 1 cat Image B Compute Similarity and Raise loop hypothesis

5. 建图

5. 建图 “定位”与“建图”是SLAM两个主要目标 但地图的形式却没有定位那么固定 依赖于“希望用SLAM来做什么” Topological map Others Metric map

5. 建图 我们希望找到合适的方式描述环境 Metric Maps Topological Maps Accurate Navigation Hard to extend Expensive in storage Examples: Grid map Occupancy map Raw point cloud map Topological Maps Flexible Low-cost Inaccurate Need local models to navigate

5. 建图 导航用地图: 精确 Occupancy maps: 描述某个空间点是否被占据 3D Occupancy map (Octomap) 2D Occupancy map (ROS)

5. 建图 用于重构的地图: 漂亮(Visually Pleasant) 点云 TSDF (Truncated signed distance function) Surfels

5. 建图 建图是目前视觉SLAM的明显不足 现有的视觉地图 与激光地图不同的是,视觉地图无法直接用于定位 稀疏特征点图(ORB-SLAM为例) 必须存储描述子后,才能用于定位 无法描述障碍物 如果环境光照发生变化(白天/晚上),是否要重新生成地 图? 半稠密地图(LSD-SLAM为例) 很难找到实际用处 稠密地图(RGB-D) 可以用于导航,但无法直接定位

5. 建图 对地图的需求 很遗憾,视觉SLAM尚未能产生满足以上条件的地图 对比:百度地图。 定位 交互 导航 从游戏/CAD角度来看,使用参数化模型将是很好的选择。 ? 地图={地面+桌子+椅子} 地面:z=0.2平面 桌子:h=0.7*桌子模型 椅子:h=0.3*椅子模型 观看 理解 精确 紧凑 快速

5. 建图 人工智能 参数化模型地图? 需要结合人工智能领域知识,如模型识别、检测 定位算法亦将发生改变 现有的定位方法是以空间点为基础的 如何构建 参数化模型地图? 人工智能 定位 建图 SLAM 如何使用该地图 进行定位?

6. Conclusion

6. Conclusion In a typical SLAM system, we use Is that all about SLAM? VO to estimate the ego-motion between frames Optimization to handle the global trajectory Loop closure to correct the draft Map to describe the environment Is that all about SLAM? We haven’t talked about coding yet.

Qualified open-source SLAM solutions From slamcn.org

6. Conclusion For a student starting to work in SLAM, one should learn: Math: geometry, probabilistic, Optimization Coding skills: Linux C++ Libraries: ROS, OpenCV, PCL, g2o, DBoW2, libpointmatcher, octomap, Fabmap, ceres … Python Future issuses: Dynamic, Multi-robots, Semantic, Low-weight devices, Mobile platforms

Thank you for attention!