ORBSLAM总结

合集下载

orb_slam2的工作流程__概述及解释说明

orb_slam2的工作流程__概述及解释说明

orb_slam2的工作流程概述及解释说明1. 引言1.1 概述orb_slam2是一种基于单目、双目或RGB-D摄像头的实时定位与建图系统。

它的主要目标是通过使用轻量化的ORB特征描述子来同时进行相机跟踪和三维重建。

通过对相机运动和环境地图的估计,orb_slam2可以在实时环境下进行精确地定位和建立稠密的地图。

1.2 文章结构本文将详细介绍orb_slam2的工作流程和关键技术。

首先,在“引言”部分我们将对该系统进行概述,并说明文章接下来的结构安排。

然后,在“orb_slam2的工作流程”部分将详细解释ORB特征描述子、建图初始化和跟踪过程解析这三个主要步骤。

紧接着,在“示例与说明”部分我们将以一个具体场景为例,展示orb_slam2在实际应用中的效果,并解释其工作流程中的关键点。

最后,在“结论和展望”部分我们将总结orb_slam2的工作流程及其主要特点,并讨论其优化和扩展方向。

1.3 目的本文旨在给读者提供一个全面且深入理解orb_slam2工作流程的指南。

通过阅读本文,读者将对ORB特征描述子的原理和应用、建图初始化的方法以及跟踪过程中的关键步骤有一个清晰的了解。

同时,通过示例场景和实际应用的分析,读者可以更好地理解orb_slam2在实践中的效果和优势。

最后,我们希望能够为读者提供一些建议和展望,以便进一步优化和扩展orb_slam2系统。

2. orb_slam2的工作流程:orb_slam2是一个基于特征点的单目、双目和RGB-D相机的实时稠密SLAM系统。

它可以同时定位相机并构建地图。

在这个部分,我们将详细介绍orb_slam2的工作流程。

2.1 ORB特征描述子:ORB是一种既具有角点检测能力,又能够高效计算的特征描述子。

ORB特征描述子由两个部分组成:ORB提取器和ORB描述子生成器。

在orb_slam2中,利用ORB特征描述子来提取图像的关键点,并生成用于匹配和跟踪的描述子。

orbslam用到的算法与公式

orbslam用到的算法与公式

orbslam用到的算法与公式ORB-SLAM(Oriented Fast and Rotated Brief-SLAM)是一种基于特征点的实时单目视觉SLAM系统。

它结合了FAST角点检测与描述子BRIEF描述子,利用这两种特征来进行地图构建、相机跟踪和定位。

ORB-SLAM主要分为三个模块:定位追踪,建图和回环检测。

下面将具体介绍这三个模块的相关算法与公式。

1. 定位追踪:ORB-SLAM利用特征点来追踪相机的运动。

在某一帧中提取到的特征点经过特征点跟踪算法获得其在连续帧中的匹配点,进而计算相机的运动。

ORB-SLAM采用光流法将特征点在连续帧之间进行跟踪,具体算法如下:- 特征点提取:ORB-SLAM利用FAST算法检测候选角点,并根据Harris角点响应进行精确定位。

- 描述子计算:对于检测到的候选角点,ORB-SLAM使用BRIEF描述子对其进行描述,通过矩形区域采样得到二进制描述子。

- 最小二乘法:ORB-SLAM采用最小二乘法对当前帧和上一帧之间的特征点进行匹配,得到2D-2D匹配点对。

- 位姿估计:利用匹配点对通过PnP算法(Perspective-n-Point)估计相机的位姿(旋转和平移)。

- 三角化:对于2D-2D匹配点对,ORB-SLAM通过三角化算法从而得到3D点云。

- 重定位:当相机丢失跟踪时,ORB-SLAM采用方向信息与重定位模型计算相机的位置,并利用特征点描述子进行重定位。

2. 建图:ORB-SLAM通过连续帧间的视觉里程计得到相机的运动轨迹,并同时构建地图。

主要使用几何和视差约束来进行地图构建,具体算法如下:- 初始化:ORB-SLAM从两个单独视野(例如初始的两帧)中进行初始化,同时计算两个视野中的匹配点,进行位姿计算和三角化重建。

- 回环检测:ORB-SLAM利用回环检测模块来发现已经访问过的位置,通过计算两个视野之间的相似性得到回环检测。

- 位姿优化:利用词袋模型和位姿图优化方法进行地图管理和位姿优化。

ORBSLAM总结

ORBSLAM总结
获取到棋盘标定图的内角点图像坐标之后,就可以使用calibrateCamera函数进行标定,计算相机内参和外参系数。
CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize,CV_OUT
InputOutputArray cameraMatrix, CV_OUT InputOutputArray distCoeffs,OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,int flags=0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) );
ORBSLAM
——杨肖寒——
目录
01 ORB-SLAM介绍 02 相机标定
01 Part One ORB-SLAM介绍
介绍
ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。项目主页网址为:http://webdiis.unizar.es/~raulmur/orbslam/。
相机标定
4.在棋盘标定图上绘制找到的内角点(非必须,仅为了显示)
CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSize, InputArray corners, bool patternWasFound );

orb slam原理

orb slam原理

orb slam原理
ORB-SLAM是一个先进的SLAM(Simultaneous Localization and Mapping)系统,它使用了特征点法进行环境的定位和构建。

以下是ORB-SLAM的主要原理:
1. 特征点提取:在图像中提取特征点,这些特征点包括角点、边缘等明显的视觉特征。

2. 特征点匹配:通过描述符对特征点进行匹配,以确定图像之间的对应关系。

3. 相机位姿估计:通过相邻图像之间的特征点匹配,使用非线性优化方法估计相机的位姿。

4. 地图构建:根据相机位姿和特征点信息,构建环境的地图。

5. 闭环检测:通过比较当前图像与之前构建的地图中的特征点,检测是否回到之前的位置,即闭环。

6. 地图优化:通过闭环检测的信息,对地图进行优化,以提高地图的精度和稳定性。

ORB-SLAM使用了FAST角点检测和ORB描述符生成算法,保证了高效率的同时也保持了较高的特征匹配精度。

其位姿估计使用了基于视觉里程计的方法,并结合IMU(惯性测量单元)数据以提高位姿估计的精度和鲁棒性。

地图构建使用了基于特征点的稀疏地图表示方法,并支持地图点云的稠密表
示方式以提高地图的精度和可视化效果。

此外,ORB-SLAM还采用了基于因子图(Factor Graph)的非线性优化方法进行图优化,以提高地图精度和位姿估计的准确性。

闭环检测算法使用了词袋模型(Bag-of-Words)和BoW树等技术,可以识别和处理闭环情况,避免地图漂移和重复建立。

通过这些步骤,ORB-SLAM能够实现实时的、高精度的环境定位和地图构建。

以上内容仅供参考,建议咨询计算机专业人士或查阅ORB-SLAM的专业书籍资料。

ORB-SLAM2学习总结.PPT

ORB-SLAM2学习总结.PPT

•.
•14 ORB-SLAM VS ORB-SLAM2
•使用双目和RGB-D相机可以仅仅从一帧中获得深度信息,我们不需要像单目情况中 那样做一个特殊的结构来进行运动初始化。 • 利用纯运动BA(motion-only) 优化跟踪线程中相机姿态; • 利用局部BA优化关键帧的局部窗口和局部建图线程的特征点; • 利用全BA(Full BA)在回环检测之后优化所有的关键帧和特征点,如果在优化运行 时检测到新循环,我们将中止优化并继续关闭循环,这将再次启动全BA优化。
•.
•4 双目SLAM( Stereo )
发展状况: •最早双目SLAM系统是Paz等人 ,基于条件独立分割和克服扩展卡尔曼滤波SLAM, 特点能够在大场景中运行,第一个使用近特征点和远特征点的双目SLAM系统,使用 逆深度参数化进行估计; • Strasdat等人采用在关键帧的内部窗口和外部窗口的姿态图上执行BA联合优化。 • Mei等人提出了(RSLAM),提出了在活跃区域执行BA相关优化,即使在全局一致 性没有被执行时,也能够进行闭环,同时也会扩大回环两侧的活跃区域
•.
•15 实验结果对比

•.
•16 在 KITTI 08序列中估计轨迹
估计轨迹(黑 色)实际运动 轨迹(红色)
Monocular ORB-SLAM
stereo ORB-SLAM2
•.
•17 其他先进方法准确性比较
我们的方法是唯一一种基于 光束平差法的,并且在大多 数序列中比其他的方法都更 加优秀
•.
•18 实验结论
•ORB-SLAM2是第一个开源视觉SLAM系统,它可以使用单目、双目和RGB-D输入。 •系统重定位能力对已知环境产生了非常鲁棒性的、零漂移和轻量级的定位方法。 •BA比直接方法或ICP具有更好的性能,另外的优点是计算成本更低,不需要GPU处理 来实时地操作。 •与近年来蓬勃发展的双目视觉里程计方法相比,ORB-SLAM2在已建图的区域中实现 了零漂移定位。

orbslam3回环检测策略__概述说明以及解释

orbslam3回环检测策略__概述说明以及解释

orbslam3回环检测策略概述说明以及解释1. 引言1.1 概述ORB-SLAM3是一种基于单目、双目和RGB-D相机的实时视觉SLAM系统。

回环检测作为SLAM系统中的重要组成部分,能够通过识别相机经过的先前轨迹来提高定位精度和地图一致性,并且在长时间运行的场景下起到关键作用。

本文将对ORB-SLAM3的回环检测策略进行详细介绍和解释。

1.2 文章结构本文共分为五个部分。

引言部分概述了整篇文章的主要内容和目标。

正文部分包括对ORB-SLAM3的简介以及回环检测在SLAM中的作用。

ORB-SLAM3回环检测策略说明部分详细介绍了其回环检测方法并给出了示意图。

在第三部分,我们会更深入地讨论ORB-SLAM3回环检测策略的原理和技术细节,包括基于特征点匹配的回环检测算法、使用词袋模型进行回环检测的方法以及重定位与闭环融合的机制与优化策略。

第四部分将展示实验结果,并对结果进行详细分析和评价,并讨论改进方向和未来的研究方向。

最后,第五部分对整篇文章的内容进行总结回顾并阐述实验结果及其意义,并展望未来的研究方向。

1.3 目的本文旨在全面介绍和解释ORB-SLAM3中的回环检测策略。

通过对ORB-SLAM3回环检测方法的详细说明和原理解析,读者将能够深入了解该方法在SLAM系统中的作用以及其技术实现。

实验结果分析和讨论部分将进一步验证ORB-SLAM3回环检测策略的有效性,并提出改进方向和未来的研究方向。

通过本文,读者将获得对ORB-SLAM3回环检测策略全面而深入的了解,为相关领域的研究者提供有益参考,并推动SLAM技术在实际应用中取得更好的性能和效果。

2. 正文:2.1 ORB-SLAM3简介ORB-SLAM3是一种基于视觉的同时定位与地图构建(SLAM)算法。

它通过使用特征提取和描述符匹配技术,结合运动估计和场景重建等方法实现实时定位和三维地图重建。

2.2 回环检测在SLAM中的作用回环检测在SLAM中起着至关重要的作用。

orbslam2 面试的知识考点

orbslam2 面试的知识考点

orbslam2面试的知识考点ORB-SLAM2(Oriented FAST and Rotated BRIEF Simultaneous Localization and Mapping)是一种基于特征点的单目相机SLAM系统。

在进行ORBSLAM2面试前,了解该系统的知识考点对于备考至关重要。

本文将介绍ORBSLAM2系统的关键知识点,帮助面试者全面准备。

1.ORBSLAM2系统概述ORB-SLAM2是一种稀疏特征点SLAM系统,它结合了特征点提取与描述子匹配、相机位姿估计、稀疏地图构建等功能。

该系统具有实时性能和鲁棒性,能够在没有GPS或其他导航信息的情况下,仅通过摄像头实现3D地图构建和定位。

2.特征点提取与描述子匹配ORB-SLAM2系统使用Oriented FAST角点检测算法提取关键点,并计算BRIEF描述子进行特征匹配。

FAST角点检测算法通过快速的计算方式选取关键点,而ORB描述子通过比较快速和旋转不变性的方式来匹配特征点。

3.相机位姿估计ORB-SLAM2系统通过对关键点的跟踪与匹配,利用RANSAC (Random Sample Consensus)算法进行相机位姿估计。

RANSAC算法通过随机抽样和模型拟合的方式,找到最佳的摄像头位姿,以最小化特征点之间的重投影误差。

4.稀疏地图构建ORB-SLAM2系统使用基于关键帧的方式构建稀疏地图。

它通过选择代表性的关键帧来表示场景,同时通过三角测量和重投影误差最小化来估计地图点的位置。

地图点的位置会被连续观测到的关键帧进行优化,以提高地图的准确性和稳定性。

5.闭环检测与回环优化ORB-SLAM2系统具备闭环检测和回环优化的功能。

闭环检测能够检测到场景中已经访问过的位置,并通过闭环优化来纠正位姿漂移。

具体而言,系统使用词袋模型和BoW(Bag of Words)进行地图检索,找到与当前观测帧相似的历史关键帧,并利用图优化算法来纠正轨迹。

一文详解ORB-SLAM3

一文详解ORB-SLAM3

⼀⽂详解ORB-SLAM3作者:Liam来源:公众号@链接:摘要ORB-SLAM3是⼀个⽀持视觉、视觉加惯导、混合地图的SLAM系统,可以在单⽬,双⽬和RGB-D相机上利⽤针孔或者鱼眼模型运⾏。

他是第⼀个基于特征的紧耦合的VIO系统,仅依赖于最⼤后验估计(包括IMU在初始化时)。

这样⼀个系统的效果就是:不管是在⼤场景还是⼩场景,室内还是室外都能鲁棒实时的运⾏,在精度上相⽐于上⼀版提升了2到5倍。

本⽂的第⼆个创新点是根据改进recall的新的重定位模块来构建的混合地图,因为这个模块他可以让ORB-SLAM3在特征不是很好的场景中长期运⾏:当⾥程计失败的时候,系统会重新构建地图并将这个地图和原来构建的地图对齐。

和那些仅利⽤最新的⼏帧数据的⾥程计相⽐,ORB-SLAM3是第⼀个能够在所有算法阶段重⽤所有先前信息的系统。

这样的机制就可以在BA的时候⽤有共视关系的关键帧,即使两帧在时间相差很远,或者来⾃原来的建图过程。

这个系统在EuRoC数据集上达到了平均3.6cm的精度,在TUM-VI这种利⽤⼿持设备快速移动的数据集(AR/VR场景)上达到了9mm的精度。

作者已经开源了代码:https:///UZ-SLAMLab/ORB_SLAM3⼀、介绍SLAM建图的最⼤优势在于,它允许在BA中匹配并使⽤执⾏三种数据关联的先前观测值:短期的数据关联:在最新的⼏秒中匹配地图元素。

就像是VO中做的⼀样,丢掉那些已经看不到的帧,这会导致有累计的漂移。

中期的数据关联:匹配相机累计误差⼩的地图,这也可以⽤在BA中,当系统在已经建好的地图中运⾏的时候可以达到零漂移。

长期的数据关联:利⽤场景重识别来匹配当前的观测和先前的观测,不⽤管累计误差⽽且即使跟踪失败也可以实现,长期的匹配可以利⽤位姿图优化重新设置漂移,为了更准确也可以利⽤BA。

这是SLAM在⼤场景中精度保证的关键。

这是第⼀个可能对短期、中期、长期数据进⾏数据关联的视和视觉惯导的系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一个参数Image,传入拍摄的棋盘图Mat图像,必须是8位的灰度或者彩色图像; 第二个参数patternSize,每个棋盘图上内角点的行列数,一般情况下,行列数不要相同,便于后续标定程序识别标定 板的方向; 第三个参数corners,用于存储检测到的内角点图像坐标位置,一般用元素是Point2f的向量来表示:vector<Point2f> image_points_buf; 第四个参数flage:用于定义棋盘图上内角点查找的不同处理方式,有默认值。
相机标定
4.在棋盘标定图上绘制找到的内角点(非必须,仅为了显示)
CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSize, InputArray corners, bool patternWasFound );
第一个参数image,8位灰度或者彩色图像; 第二个参数patternSize,每张标定棋盘上内角点的行列数; 第三个参数corners,初始的角点坐标向量,同时作为亚像素坐标位置的输出,所以需要是浮点型数据,一般用元素是 Pointf2f/Point2d的向量来表示:vector<Point2f/Point2d> iamgePointsBuf; 第四个参数patternWasFound,标志位,用来指示定义的棋盘内角点是否被完整的探测到,true表示别完整的探测到, 函数会用直线依次连接所有的内角点,作为一个整体,false表示有未被探测到的内角点,这时候函数会以(红色)圆圈 标记处检测到的内角点;
ORBSLAM
——杨肖寒——
目录
01 ORB-SLAM介绍 02 相机标定
01 Part One ORB-SLAM介绍
介绍
ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。项目主页网址为:http://webdiis.unizar.es/~raulmur/orbslam/。
相机标定
5. 相机标定 获取到棋盘标定图的内角点图像坐标之后,就可以使用calibrateCamera函数进行标定,计算相机内参和外参系数。
CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize,CV_OUT
局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整( Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。
(3)闭环检测(LoopClosing) 这一部分主要分为两个过程,分别是闭环探测和闭环校正。闭环检测先通过bag-of-words模型加速闭环匹配帧的
第一个参数objectPoints,为世界坐标系中的三维点。在使用时,应该输入一个三维坐标点的向量的向量,即 vector<vector<Point3f>> object_points。需要依据棋盘上单个黑白矩阵的大小,计算出(初始化)每一个内角点的 世界坐标。 第二个参数imagePoints,为每一个内角点对应的图像坐标点。和objectPoints一样,应该输入 vector<vector<Point2f>> image_points_seq形式的变量; 第三个参数imageSize,为图像的像素尺寸大小,在计算相机的内参和畸变矩阵时需要使用到该参数; 第四个参数cameraMatrix为相机的内参矩阵。输入一个Mat cameraMatrix即可,如Mat cameraMatrix=Mat(3,3,CV_32FC1,Scalar::all(0));
相机标定的输入:标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像 位于Z=0平面上)。
相机标定的输出:摄像机的内参、外参系数。
相机标定
过程: 1. 准备标定图片 2. 对每一张标定图片,提取角点信息 3. 对每一张标定图片,进一步提取亚像素角点信息 4. 在棋盘标定图上绘制找到的内角点(非必须,仅为了显示) 5. 相机标定 6. 对标定结果进行评价 7. 查看标定效果——利用标定结果对棋盘图进行矫正
相机标定
第五个参数distCoeffs为畸变矩阵。输入一个Mat distCoeffs=Mat(1,5,CV_32FC1,Scalar::all(0))即可; 第六个参数rvecs为旋转向量;应该输入一个Mat类型的vector,即vector<Mat>rvecs; 第七个参数tvecs为位移向量,和rvecs一样,应该为vector<Mat> tvecs; 第八个参数flags为标定时所采用的算法。 第九个参数criteria是最优迭代终止条件设定。
ORB-SLAM是一款适用于单目,立体和RGB-D摄像机的多功能精确SLAM解决方案。在大小场景、室内室外环境下都 可以实时操作的一种基于特征的单目SLAM系统。
SLAM系统对复杂的剧烈运动具有鲁棒性,支持宽基线的闭环检测和重定位,包括全自动初始化,它包括从平面和非平 面场景进行自动且稳健的初始化。它能够在各种环境中实时计算摄像机轨迹和场景的稀疏3D重建,范围从桌面的小型 手持序列到围绕几个城市街区行驶的汽车。
Subscribed topics: * /camera/image_raw [sensor_msgs/Image] 1 subscriber * /rosout [rosgraph_msgs/Log] 1 subscriber
rosrun image_view image_view image:=/ORB_SLAM/Frame _autosize:=true 订阅/camera/image_raw这个topic,然后被 ORB_SLALM 节点处理后的图像帧被发布到话题 ORB_SLAM/Frame 中,可以通过使用 image_view 功能包来查看
ORB-SLAM包含了所有SLAM系统共有的模块:跟踪(Tracking)、建图(Mapping)、闭环检测(Loop closing)、 重定位(Relocalization)。
ORB是属于特征点法的特征提取与匹配的算法之一。
贡献
1.使用ORB特征描述,不用GPU加速就可以实时,具有视点不变性和光照不变性
相机标定
3. 对每一张标定图片,进一步提取亚像素角点信息 为了提高标定精度,需要在初步提取的角点信息上进一步提取亚像素信息,降低相机标定偏差,常用的方法是 cornerSubPix。
CV_EXPORTS_W void cornerSubPix( InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria );
系统架构
系统架构
系统架构
(1)跟踪(Tracking) 前端位姿跟踪线程采用恒速模型,并通过优化重投影误差优化位姿。这一部分主要工作是从图像中提取ORB特征,
根据上一帧进行姿态估计,或者通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规 则确定新的关键帧。
(2)建图(LocalMapping) 通过MapPoints维护关键帧之间的共视关系,通过局部BA优化共视关键帧位姿和MapPoints。这一部分主要完成
相机标定
1. 准备标定图片 标定图片需要使用标定板在不同位置、不同角度、不同姿态下拍摄,最少需要3张,以10~20张为宜。标定板需要是黑 白相间的矩形构成的棋盘图,制作精度要求较高,如下图所示:
相机标定
2.对每一张标定图片,提取角点信息 需要使用findChessboardCorners函数提取角点,这里的角点专指的是标定板上的内角点,这些角点与标定板的边缘不 接触。
InputOutputArray cameraMatrix, CV_OUT InputOutputArray distCoeffs,OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,int flags=0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) );
3.使用the Essential Graph来优化位姿实现回环检测
(为了在优化阶段减小计算量,能够连接所有的node,但是edge会减少很多。可以认为是Covisibity Graph的最小生成树(MST)。)
4.相机重定位,视点和光照改变都适用
5.根据对平面余的关键帧,提高跟踪鲁棒性,加强长时间操作
入口
Tracking线程
LocalMapping线程
Tracking线程
Tracking线程
Tracking线程
Tracking线程
02 Part Two 相机标定
相机标定
相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数 可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。
CV_EXPORTS_W bool findChessboardCorners( InputArray image, Size patternSize, OutputArray corners, int flags=CALIB_CB_ADAPTIVE_THRESH+CALIB_CB_NORMALIZE_IMAGE );
(ORB(Oriented FAST and Rotated BRIEF)是一种快速提取特征点和描述子的算法。其特征检测基于FAST,采用BRIEF描述子并加以改进。)
相关文档
最新文档