ORB-SLAM简介(一)
2016-02-24 21:03
232 查看
ORB-SLAM是一种基于ORB特征的三维定位与地图构建算法(SLAM)[1]。该算法由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM基于PTAM架构,增加了地图初始化和闭环检测的功能,优化了关键帧选取和地图构建的方法,在处理速度、追踪效果和地图精度上都取得了不错的效果。要注意ORB-SLAM构建的地图是稀疏的。
ORB-SLAM一开始基于monocular camera,后来扩展到Stereo和RGB-D sensor上。作者好像还会做Semi-dense mapping的扩展。作者的开源代码都在GIT上[2]。
ORB-SLAM算法的一大特点是在所有步骤统一使用图像的ORB特征。ORB特征是一种非常快速的特征提取方法,具有旋转不变性,并可以利用金字塔构建出尺度不变性。使用统一的ORB特征有助于SLAM算法在特征提取与追踪、关键帧选取、三维重建、闭环检测等步骤具有内生的一致性。
ORB-SLAM架构如下:
ORB-SLAM利用三个线程分别进行追踪、地图构建和闭环检测。
一、追踪
ORB特征提取
初始姿态估计(速度估计)
姿态优化(Track local map,利用邻近的地图点寻找更多的特征匹配,优化姿态)
选取关键帧
二、地图构建
加入关键帧(更新各种图)
验证最近加入的地图点(去除Outlier)
生成新的地图点(三角法)
局部Bundle adjustment(该关键帧和邻近关键帧,去除Outlier)
验证关键帧(去除重复帧)
三、闭环检测
选取相似帧(bag of words)
检测闭环(计算相似变换(3D<->3D,尺度不定,因此是相似变换(自己看不懂了,待补充!)),RANSAC计算内点数)
融合三维点,更新各种图
图优化(传导变换矩阵),更新地图所有点
作者提供了ORB-SLAM在New College Data[3]上的时间统计,如下图。
1. 追踪部分,平均每帧约30毫秒,基本达到了30fps。特征提取速度是非常快的,平均11毫秒左右,非常适合于实时SLAM。姿态估计稍微耗时一些,平均需要20毫秒,特别是姿态优化需要耗费16毫秒的时间。
2. 地图构建部分,平均每关键帧约385毫秒。其中生成新的点约70毫秒,Local BA约300毫秒,相对还是比较耗时的。不知道这两部分还有没有优化的空间。
[1] ORB-SLAM: A Versatile and Accurate Monocular SLAM System
[2] https://github.com/raulmur/ORB_SLAM2
[3] http://www.robots.ox.ac.uk/NewCollegeData/
ORB-SLAM一开始基于monocular camera,后来扩展到Stereo和RGB-D sensor上。作者好像还会做Semi-dense mapping的扩展。作者的开源代码都在GIT上[2]。
ORB-SLAM算法的一大特点是在所有步骤统一使用图像的ORB特征。ORB特征是一种非常快速的特征提取方法,具有旋转不变性,并可以利用金字塔构建出尺度不变性。使用统一的ORB特征有助于SLAM算法在特征提取与追踪、关键帧选取、三维重建、闭环检测等步骤具有内生的一致性。
ORB-SLAM架构如下:
ORB-SLAM利用三个线程分别进行追踪、地图构建和闭环检测。
一、追踪
ORB特征提取
初始姿态估计(速度估计)
姿态优化(Track local map,利用邻近的地图点寻找更多的特征匹配,优化姿态)
选取关键帧
二、地图构建
加入关键帧(更新各种图)
验证最近加入的地图点(去除Outlier)
生成新的地图点(三角法)
局部Bundle adjustment(该关键帧和邻近关键帧,去除Outlier)
验证关键帧(去除重复帧)
三、闭环检测
选取相似帧(bag of words)
检测闭环(计算相似变换(3D<->3D,尺度不定,因此是相似变换(自己看不懂了,待补充!)),RANSAC计算内点数)
融合三维点,更新各种图
图优化(传导变换矩阵),更新地图所有点
作者提供了ORB-SLAM在New College Data[3]上的时间统计,如下图。
1. 追踪部分,平均每帧约30毫秒,基本达到了30fps。特征提取速度是非常快的,平均11毫秒左右,非常适合于实时SLAM。姿态估计稍微耗时一些,平均需要20毫秒,特别是姿态优化需要耗费16毫秒的时间。
2. 地图构建部分,平均每关键帧约385毫秒。其中生成新的点约70毫秒,Local BA约300毫秒,相对还是比较耗时的。不知道这两部分还有没有优化的空间。
[1] ORB-SLAM: A Versatile and Accurate Monocular SLAM System
[2] https://github.com/raulmur/ORB_SLAM2
[3] http://www.robots.ox.ac.uk/NewCollegeData/
相关文章推荐
- iOS 开发中用户记住账户,密码
- 《python核心编程》读书笔记--第18章 多线程编程
- Linear Regression/线性回归与正则化(Andrew Ng 机器学习 一 )
- SendTs2Ip 将TS流发送到IP网络上的小工具(源码)
- Scala在挖财的应用实践
- Measuring performance of classifiers
- hdu 3436 splay树+离散化*
- hdu 3436 splay树+离散化*
- jquery中如何防止冒泡事件
- 【CodeVS1296】营业额统计
- Java中遍历删除List多个元素
- uboot环境变量的讲解
- Python 正则表达式(模式匹配)
- Linux 用户与组的概念
- 使用finfo_file()函数检测上传图片的类型
- HYSBZ 1026——windy数(数位dp)
- hdu 4453 splay
- 百度地图聚合点加点击事件
- ubuntu下安装翻译软件-星际译王
- hdu 4453 splay