论文阅读 ORBSLAM3
这周末ORB-SLAM3出现了.先看了看论文.IMU部分没细看,后面补上.
Abstract
- 视觉,视觉惯导,多地图SLAM系统
- 支持单目/立体/RGBD相机
- 支持pinhole/鱼眼相机
基于特征/紧耦合/视觉惯导,基于最大后验估计的SLAM系统,即使是在IMU的初始化阶段。
我们的系统更准2-5倍。
多地图系统,基于新的场景识别,提升了recall。
1. Introduction
- short-term data association 前段配
- mid-tem data assocation 后端配
- long-term data association 回环配(MGI配)
我们还提出了multi-map data association。
- ORB-SLAM Atlas: Atlas可以代表一组非连续的地图。可以用于,场景识别,相机重定位,回环检测,和地图融合。
- Abstract camera representation:感觉就是我们的mcamera。
2. Related Work

它可承认LK比描述子匹配稍微鲁邦一点。
我们的ORB-SLAM3比VINS-Mono准2.6倍,在单目VIO配置下。
3. System Overview

- Atlas
- Tracking thread
- Local Maping thread 在有IMU的时候,IMU参数是初始化,然后用MAP-estimation refine。
- Loop and map merging thread
4. Camera Model
我们的目标是抽象所有的相机模型,提取所有相机模型相关的特性/函数(投影/反投影/雅克比..)。
A. Relocalization
ORB2中用ePNP,但是需要pinhole相机模型。我们用了MLPnP【76】,和相机模型解耦了。
B. Non-recitified Stereo SLAM
立体图像都转换成pinhole,一样的焦距,共平面,而且在水平极线上。
现在不了,泛化性更强。
- 两个相机之间是SE3的关系(相机外参)
- 可选择:有共视区域
5. Visual-Inertial SLAM
A.基础
状态向量:
\]
整个优化问题:
\]
它认为inertial残差不需要huber norm,因为不存在错配。
B. IMU初始化
有一些系统比如VI-DSO[46]尝试从scratch VI BA来解决,sidestepping(回避)一个初始化阶段。
我们的insights:
- 纯单目的SLAM可以提供很准的初始地图,但是scale未知,解决视觉-only的问题会提升IMU初始化。
- 不要使用隐式的BA表达,显式的优化问题可以使得尺度更快收敛。
- 在IMU初始化阶段忽略传感器不确定性的话会产生很大的不可预测的误差。

- Vision-only MAP Estimation: 在初始的2秒初始化单目SLAM,以4Hz插KF,这样有10个pose和百余个点。
- Inertial-only MAP Estimation:
inertial变量:
\]
\(s \in R^+\) 是尺度,\(R_{wg}\in SO3\) 是重力方向,用两个角度表示,重力向量在世界系中是\(g=R_{wg}g_I\),\(g_I = (0, 0, G)^T\)。\(\overline{\mathbf{v}}_{0: k} \in \mathbb{R}^{3}\) 是up-to-scale的body速度(从第一到最后的关键帧),从\(\overline{\mathbf{T}}_{0: k}\) 初始估计。
。。。
C. Tracking and Mapping
在一些特殊的case,比如缓慢的移动没有提供好的关于inertial参数的观测性,初始化可能收敛在好的结果。我们提出了一个变种的inertial-only的优化,它包含了所有插入的关键字,但是只优化尺度和重力方向。在这种情况下,biases是常量的假设就没有了,我们会给每个帧估计,然后修正。这个优化很高效,在local mapping线程里每10秒做一次,知道有100多个关键字或者跑了75秒以上。
D. Robustness to tracking loss
- 短时的丢失:用IMU来估计当前状态,然后投影匹配。
- 长时丢失:初始化一个新的visual-inertial map。
6. Map Merging and Loop Closing
A. Place Recognition
为了获得高recall,每个关键字在dbow2 database 查询。为了获得100%的准确,我们走几何验证。
如果 几个候选,我们检查最优比次优。
- 在有IMU的时候,再检查一下重力方向。
B. Visual Map Merging
当场景识别产生了multi-map的数据关联,KF \(K_a\) (当前地图\(M_a\),a表示active)- KF \(K_m\) (Atlas \(M_m\)),相对变换是\(T_{am}\)。
- Welding window assembly
- 地图融合
- Welding bundle adjustment 弄一个local BA
- Pose-graph optimization
C. Visual-Inertial Map Merging
大差不差吧。
D. Loop Closing
7. Experiment Result
- 测了 单目/单目-IMU/立体/立体-IMU
A. single-session SLAM on EuRoC

单目/立体:ORB3比2更准是因为回环算法 - 更早的回环,更多的mid-term匹配。有趣的是,DSM获得次优的表现因为使用了mid-term的匹配,即使没有回环。
单目-IMU:ORB3比VI-DSO和VINs-Mono准两倍,说明了mid-term和long-term数据关联的优势。
双目-IMU:ORB3比OKVIS,VINs-Fusion和Kimera好很多。
B. Visual-Inertial SLAM on TUM-VI
在单目提1500个点,双目是一张图1000个点。
。。。
C. Multi-session SLAM
。。。
8. Conclusions
描述子感觉可以解决mid/long term的匹配问题,但是tracking没有LK鲁邦。
一个有趣的线是研发光度技术来解决4种数据关联问题。
其他没啥。
论文阅读 ORBSLAM3的更多相关文章
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)
今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline
论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline 如上图所示,本文旨在解决一个问题:给定一张图像, ...
随机推荐
- 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...
- Apache POI 操作Excel(2)-- POI包引入项目
Apache POI发行版包含对许多文档文件格式的支持.这种支持在几个Jar文件中提供.并非每种格式都需要所有jar.下表显示了POI组件.Maven存储库标记和项目的Jar文件之间的关系. (htt ...
- 洛谷 P1828 【香甜的黄油 Sweet Butter】
这道题应该就是模板题了吧qwq. 统计每一个牧场的放糖的情况,选择最优的即可 有亿点水的绿题. #include <bits/stdc++.h> using namespace std; ...
- Linux虚拟机下安装Oracle 11G教程图文解说
1.安装环境 操作系统:Red hat 6.5 内存:内存最低要求256M (使用:grep MemTotal /proc/meminfo 命令查看) 交换空间:SWAP交换空间大小根据内存大小决定( ...
- python中的守护线程
什么是守护线程:在后台运行,为其他线程提供服务的线程成为守护线程. 为什么要引入守护线程: thread模块不支持守护线程的概念,当主线程退出时,所有的子线程都将终止,不管它们是否仍在工作, 如果你不 ...
- python3.8-运行jupyter 报raise NotImplementedError
最近安装了python3.8 并安装jupyter,运行时却提示NotImplementedError,很崩溃 经过多次查证 貌似是3.8版本的bug...(这么牛逼的问题,被我遇到了.),不过网络上 ...
- centos-pip不存在安装失败的解决办法
1.centos下安装pip失败 2.解决办法 需要先安装扩展源EPEL. EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL ...
- List集合的遍历方式
遍历List集合的三种方法 List list = new ArrayList(); list.add("aaa"); list.add("bbb"); lis ...
- Mac系统权限打开与关闭
打开系统权限: 关闭mac command+R重启 菜单中找到终端 输入命令:csrutil enable 关闭系统权限: 重复以上1-3步骤,第4步时输入:csrutil disable
- HTB::OpenAdmin
实验环境 渗透过程 0x01 信息搜集 sudo nmap -sS -p1-10000 -sV -sC -T4 10.10.10.171 开放了22(SSH)端口和80(HTTP)端口 访问80端口, ...