视觉里程计VO及惯性系统
时间:2017.9.14 8:50
作者:Michael Beechan
前端视觉里程计:根据相邻图像信息估计粗略的相机运动,给后端提供初始值。
VO的实现方法(是否提取特征):特征点法和直接法。
VO的主要问题是如何根据图像来估计相机运动。
角点检测方法:SIFT,SURF,ORB等。
特征点性质:1.可重复性 2.可区别性 3.高效性 4.本地性
http://www.cnblogs.com/ronny/p/4083537.html Oriented FAST and Rotated BRIEF
特征点:由关键点(Key-point)和描述子(Descriptor)两部分组成。
关键点是指该特征点在图像里的位置,有些特征点还具有朝向和大小的信息。
描述子通常是一个向量,描述了该关键点周围像素的信息。描述子是按照外观相似的特征应该有相似的描述子的原则设计的。因此,只要两个特征点的描述子在向量空间上的距离相近,就可以认为它们是同样的特征点。
ORB特征点由关键点和描述子两部分组成。其关键点称为”Oriented FAST”,是一种改进的FAST角点,其描述子称为BRIEF(Binary Robust Independent Elementary Feature)。提取ORB特征的步骤:
1.FAST角点提取:找出图像中的角点。相比于原来的FAST,ORB中计算了特征点的主方向,为后续的BRIEF描述子增加了旋转不变性特性。
2.BRIEF描述子:对前一步提出的特征点的周围图像区域进行描述。
BRIEF算法的核心思想是在关键点P的周围以一定模式选取N个点对,把这N个点对的比较结果组合起来作为描述子。
FAST是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。其思想是:如果一个像素与邻域的像素差别较大(过亮或过暗),那么它更可能是角点。 FAST-12 FAST-9 FAST-11
1】使用fast算法检测角点,使用harris算法的corner measure对检测出来的fast点进行精简。精简到规定的N个。
2】由于fast算法检测出来的特征点是没有方向的,所以论文作者使用intensity centroid的方法对特征点规定方向。
BRIEF的优点在于速度快,缺点也相当明显:
1】不具备旋转不变性
2】对噪声敏感
3】不具备尺度不变性
使用BRIEF首先需要平滑图像,然后在特征点周围选择一个Patch(SXS),在这个Patch内通过一种选定的方法来挑选N个点对。然后对于每个点对(p, q),我们比较这两点的亮度值,如果I(p)>I(q)则这个点对生成二值串中的值为1,否则为0.
关键点对的选择:Calonder测试了5中采样方法
1.在图像块内平均采样;
2.p和q都符合(0, 1/25S^2)的高斯分布;
ORB解决了1】和2】。
SLAM中可以优化的点:
· 三维点(点的深度)的优化(三角测量)
· 后端的关键帧中的位姿和路标点的BA(关键帧的边缘化)
· 初始化过程的单应矩阵和基础矩阵的优化
· PnP计算相机位姿
单目/双目与imu的融合(一)
目前单目SLAM存在初始化的尺度问题和追踪的尺度漂移问题。而双目存在精度不高和鲁棒性不好的问题。针对这些问题提出融合IMU的想法。
IMU在双目中的作用:
1】追踪中提供较好的初始位姿;
2】提供重力方向;
3】提供一个时间误差项以供优化。
ORB-SLAM+imu(立体相机) https://github.com/JzHuai0108/ORB_SLAM
网站链接:
http://blog.csdn.net/zouxy09/article/details/8083553 用单张2D图像重构3D场景
http://blog.csdn.net/hujingshuang/article/details/47045497 BRISK特征提取算法 2011年ICCV上《BRISK:Binary Robust Invariant Scalable Keypoints》
http://blog.csdn.net/hujingshuang/article/details/47060677 FREAK特征提取算法 2012年CVPR上《FREAK: Fast Retina Keypoint》
http://blog.csdn.net/qinruiyan/article/details/48498593 SLAM学习笔记1:历史与现状
http://blog.csdn.net/qinruiyan/article/details/50793114 SLAM学习笔记2:Kalman Filter(卡尔曼滤波) 与Least Square(最小二乘法) 的比较
http://blog.csdn.net/qinruiyan/article/details/50918504 SLAM学习笔记3: 源码分析ORB_SLAM中后端图构建
https://mp.weixin.qq.com/s?__biz=MzI5MTM1MTQwMw==&mid=2247483830&idx=1&sn=a037834525740dcbfae98208a0dee59c&scene=1&srcid=0713hTQtRur15C0KQFkiIAwK&pass_ticket=puQQjdGaRvEca6YWDbGnuG%2FYWDVuwvW6cqk1koP0969Z6fX1dFy0aCoEMvqSIiSu#rd 【泡泡机器人原创】SVD之最小二乘(推导与证明)
http://blog.csdn.net/qq_18661939/article/details/51782376 视觉slam学习资料
http://pointclouds.org/documentation/tutorials/#segmentation-tutorial PCL
http://blog.csdn.net/column/details/opencv-manual.html OpenCV学习笔记
https://github.com/GeekLiB/Lee-SLAM-source/blob/master/README.md SLAM 学习与开发经验分享
http://blog.sina.com.cn/s/blog_916b71bb0100w9al.html ORB算法分析(草稿)
http://blog.csdn.net/qq_18661939/article/details/51829573 orbslam2的基础理论(一) 。。。。 orblsam2-理论基础(三) 。。。。。
ORB-SLAM2中的LoopClosing
SLAM中VO产生累计误差,而LoopClosing通过检测是否曾经来过此处,进行后端优化。可以缩小累计误差。在检测到闭环的时候计算Sim3变换。
【1】闵海根, 赵祥模, 徐志刚,等. 基于稳健特征点的立体视觉测程法[J]. 上海交通大学学报, 2017, 51(7):870-877. EI
提出一种基于稳健特征点的立体视觉里程计法完成机器人自主高精度定位。算法采用稳健特征算法AKAZE(Accelerated-KAZE)提取特征点。
【2】Zhang Z. Flexible Camera Calibration by Viewing a Plane from Unknown Orientations[C]// The Proceedings of the Seventh IEEE International Conference on Computer Vision. IEEE, 2002:666-673 vol.1.
相机标定文献(张正友)
【3】Alcantarilla P F, Bartoli A, Davison A J. KAZE Features[C]// European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2012:214-227. ECCV KAZE论文
【4】Alcantarilla P, Nuevo J, Bartoli A. Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces[C]// British Machine Vision Conference. 2013:13.1-13.11. AKAZE 改进的KAZE
【5】Xiu-Zhen W U, Gang L, Gong W S, et al. An Improved Monocular ORB-SLAM Method[J]. International Conference on Artificial and Computer Science. 2016(AICS).
用自适应灰度级阈值确保环境光照变化时检测得到的FAST特征点的有效性。使用第三帧图像验证的方法解决了多方案仿射模型的问题。
Strasdat在论文中证明了基于关键帧的方法要比基于滤波器的方法精确的多。H Strasdat, J.M.M. Montiel, A J. Davison. Visual SLAM: Why filter? [J]. Image & Vision Computing, 2012, 30(2):65-77.
【6】李弋星, 刘士荣, 仲朝亮,等. 基于改进关键帧选择的RGB-D SLAM算法[J]. 大连理工大学学报, 2017, 57(4).
提出一种改进的关键帧选择算法,该算法整合了帧间相对运动距离,帧间特征点跟踪以及最小视觉变化来选择关键帧并删除冗余关键帧。
表1 ORB、SIFT和SURF特征实时性和匹配精度比较
Tab.1 Comparison of ORB, SIFT and SURF features in terms of real-time and matching precision
特征 |
匹配对 |
正确匹配对 |
匹配精度/% |
检测时间/ms |
匹配时间/ms |
ORB |
500 |
193 |
38.60 |
13.925 |
0.056 |
SIFT |
961 |
141 |
14.67 |
345.989 |
44.641 |
SURF |
1396 |
142 |
10.17 |
465.324 |
60.839 |
【7】侯荣波, 魏武, 黄婷,等. 基于ORB-SLAM的室内机器人定位和三维稠密地图构建[J]. 计算机应用, 2017, 37(5):1439-1444.
通过ORB-SLAM算法估计机器人三维位姿,拼接深度相机Kinect获得的三维稠密点云,提出空间域上的关键帧提取方法剔除冗余的视频帧。提出子地图法进一步减少地图构建时间,最终提高算法的整体速度。
EKF-SLAM Smith R., Self M., Cheeseman P. (1990) Estimating Uncertain Spatial Relationships in Robotics. In: Cox I.J., Wilfong G.T. (eds) Autonomous Robot Vehicles. Springer, New York, NY
粒子滤波(PF)SLAM Sim R, Elinas P, Little J J. A Study of the Rao-Blackwellised Particle Filter for Efficient and Accurate Vision-Based SLAM[J]. International Journal of Computer Vision, 2007, 74(3):303-318.
【8】M D. Aladem. Robust Real-Time Visual Odometry for Autonomous Ground Vehicles[D]. University of Michigan-Dearborn. 2017
视觉里程计(Visual Odometry-VO)是计算机视觉研究和移动机器人研究的一个活跃领域,到目前为止,这个问题仍然具有很高的挑战性。本文提出了一种鲁棒的实时的基于特征的视觉里程计算法。(将稀疏3D点云组成的局部地图用于跟踪和运动估计,This results in the full history of each feature being utilized for motion estimation)帧间估计的漂移大大的减小了,能够长期远距离进行操作。此外算法使用PROSAC(Progressive Sample Consensus)为了让增强对异常值的鲁棒性。
NASA’s Mars Exploration Rovers 成功的使用了视觉里程计(VO)【9】。早在1980s,Moraves【10】就遇到过视觉输入估计车辆运动的问题。建立了第一个运动估计管道(pipeline),其主要功能板块至今都在使用。然而Nister等人在文献【11】首次创造了学术上的视觉里程计。
相机的畸变涉及相机的内参。
从3D世界坐标到3D相机坐标的刚体变换(旋转和平移)涉及相机的外参。
(a)
(b)
(对极几何)Epipolar geometry illustrations. (a) Epipolar geometry describe the relations between two images of the scene from two different point of views . (b) The epipolar geometry .
Common feature types: [TOP] Points or corners, [MIDDLE] Lines, [BOTTOM] Blob or region features.
本文算法的一个显著特点是使用基于点的局部地图。这种局部地图由稀疏的3D点组成。这种局部地图是暂态的,它的操作是由算法内部完成的,并且它不是试图生成全局地图的。
【9】Cheng Y, Maimone M, Matthies L. Visual odometry on the Mars Exploration Rovers[C]// IEEE International Conference on Systems, Man and Cybernetics. IEEE, 2006:903-910 Vol. 1.
【10】Moravec H P. Obstacle avoidance and navigation in the real world by a seeing robot rover[M]. Stanford University, 1980.
【11】Nister D, Naroditsky O, Bergen J. Visual odometry[C]// Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on. IEEE, 2004:I-652-I-659 Vol.1.
提出一种基于视频输入的单目或双目的运动估计系统。系统的前端是特征追踪器。相机运动的鲁棒性估计产生于使用几何假设测试架构的特征跟踪——视觉里程计。
【12】Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[J]. Readings in Computer Vision, 1987:726-740. RASAC
The basic steps can be summarized as follows:
1.Select randomly a subset of the data.
2.Fit a model to the selected subset.
3.For all the other data, test if they agree with the model according to a loss-function. Data points that do agree with the model will constitute the consensus set.
4.If the consensus set is larger than a specified threshold, the model is declared good enough.
【13】Zhou Y, Yan F, Zhou Z. Handling pure camera rotation in semi-dense monocular SLAM[J]. Visual Computer, 2017(11):1-10. 4区 1.468
建立一个基于贝叶斯估计的概率深度映射模型结合当前最先进直接方法LSD-SLAM的主框架。使用此模型可以跟踪纯旋转和一般相机的运动。可以实时构建一致性的深度地图。
对每个像素的深度建模做一个分布(好的测量和未知测量)。当检测到新帧时,我们将这些新帧视为相对于参考关键帧深度的新观察值,计算关键帧深度的贝叶斯估计,估计一个满足的概率。
系统主要包含四个地图构建过程:深度地图的初始化,深度地图的更新,深度地图的传播(propagation),深度地图的正则化。
地图初始化:使用随机方法来初始化深度地图(得到方差很大的地图);
地图更新:计算每一帧的深度观察值,并更新当前帧的深度地图;
地图传播:当当前帧离现有的深度地图较远时,创建一个新的关键帧。传送深度地图从旧的关键帧到新的关键帧。
地图正则化:更新后执行正则化。得到一个平滑的深度来跟踪和立体搜索。.
【14】Vogiatzis, George, Hernández, Carlos. Editor's Choice Article: Video-based, real-time multi-view stereo[J]. Image & Vision Computing, 2011, 29(7):434-441.
概率方法分析图像点的深度信息
一幅图像中的像素点为中心产生一个patch,在另一幅图像对应的极线上搜索patch,使用NCC(Normalized Cross Correlation)来分析两个patch间的相似程度,在深度[X(min),X(max)]区间内进行搜索匹配,这个区间内NCC的计算结果会产生一系列局部极值。
把上述计算过程看作是一个深度传感器的计算过程,其输出结果为一系列NCC的局部极值对应的点的深度信息。它们是有噪声的数据
一幅图像对应另外n幅图像,可以看作为n个深度传感器,把得到点的深度信息的问题看作是有噪声的多传感器数据融合的问题,使用Gaussian Uniform mixture model来对这一问题进行建模,假设好的测量值符合正态分布,噪声符合均匀分布,好的测量值的比例为pi,使用贝叶斯方法不断更新这个模型,让点的深度(也就是正态分布中的均值参数)和好的测量值的比例pi收敛到真实值。
实际实现的时候一个seed对应与图像中一个像素,这个像素是想要求得其深度信息的点。
一个seed还关联五个参数,其中四个参数是模型中的参数,分别是好的测量值和坏的测量值的个数,深度估计中高斯分布的均值和方差。最后一个参数是以这个像素点为中心的一个正方形patch,计算这个patch和其他图像中的对应极线上的patch的NCC值,此处因为计算量的关系不会搜索整个极线,只会搜索以目前模型中高斯分布的均值(深度)对应的极线上的像素点为中心的一个固定范围。
每次新进一帧,依照这样的过程:
1.产生新的seed(seed的数目固定,上次迭代结束时会去掉一些seed)
2.对每个seed进行更新:在此帧上进行相关seed的对极搜索;检测极线上点对应patch与seed中的patch的NCC分数的局部极大值;用这些局部最大值更新seed中的四个参数
3.去掉那些好的测量值的个数低于阈值的,如果好的测量值的个数高于阈值而且方差低于一个阈值,把这个seed对应的点的三位坐标算出来并加到地图中。
【15】Forster C, Pizzoli M, Scaramuzza D. SVO: Fast semi-direct monocular visual odometry[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:15-22.
reported a mixed method that combines direct image alignment with keypoints to achieve high accuracy and high framerate, intended for downward camera navigation of Micro Aerial Vehicle.
【16】Forster C, Zhang Z, Gassner M, et al. SVO: Semidirect Visual Odometry for Monocular and Multicamera Systems[J]. IEEE Transactions on Robotics, 2017, 33(2):249-265.
【17】Howard A. Real-time stereo visual odometry for autonomous ground vehicles[C]// Ieee/rsj International Conference on Intelligent Robots and Systems. IEEE, 2008:3946-3952.
本文描述了一种连续立体图像对帧间估计相机运动的视觉里程计方法。算法不同于大多数视觉里程计的方面:没有预先假设相机的运动;通过分离的立体算法操作稠密的不相同图像。
【18】Mur-Artal R, Montiel J M M, Tardós J D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IEEE Transactions on Robotics, 2015, 31(5):1147-1163.
【19】Mur-Artal R, Tardos J D. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras[J]. IEEE Transactions on Robotics, 2016, PP(99):1-8.
【20】Fernndez-Madrigal J A, Claraco J L B. Simultaneous Localization and Mapping for Mobile Robots: Introduction and Methods[M]. IGI Global, 2012.
【21】Pirchheim C, Schmalstieg D, Reitmayr G. Handling pure camera rotation in keyframe-based SLAM[C]// IEEE International Symposium on Mixed and Augmented Reality. IEEE, 2013:229-238.
目前存在的系统通常过滤相应的候选关键帧,导致地图创建不饱满和地图跟踪失败。本文提出在3D地图之上使用原本废弃的关键帧构建局部全景地图,该系统能够在旋转相机中保持跟踪运动。此外,我们通过更多新的三维地图特征寻求全景地图和三维地图数据的关联以此改进三维地图。
6DoF SLAM不能处理相机纯旋转运动,全景SLAM仅处理相机旋转运动。Any translational motion component may be encoded as additional rotation, also leading to a degradation of map quality.
本文结合6DoF和全景SLAM的优势提出了一种基于关键帧的混合系统,接受正常的6DoF操作和仅旋转约束的所有三角化关键帧。这种组合对基于优化的SLAM系统有以下几个方面的贡献:
1. 跟踪可以处理纯旋转;
2. 建图有很多关键帧可用去估计新的3DSLAM地图部分;
【22】余杰. 基于ORB关键帧闭环检测算法的SLAM方法研究[D]. 浙江工业大学, 2016.
SLAM问题是目前机器人研究的热点之一,对实现机器人任务规划、自主控制具有重要意义和应用价值。
我的毕业论文基础框架:
1. RGB-D传感器成像原理及内外参数模型,标定基本原理。通过彩色相机与深度相机标定,相机坐标变换实现彩色与深度相机的视角标齐,为后续特征匹配、帧间配准提供视角一致的小畸变图像信息。
2. 改进的ORB-SLAM:改进基于FAST特征检测与BRIEF特征描述的ORB算法,增强了图像特征匹配的旋转不变性与实时性。
3. 基于图优化的SLAM方法。
4. RANSAC-ICP算法
对ORB-SLAM2系统的研究
第一章 绪论
1.1 课题背景与意义
1.2 SLAM的国内外发展现状
1.3 基于双目视觉传感器的SLAM研究综述
1.4 基于深度传感器的SLAM研究综述
1.5 本文章节安排
第二章 成像系统标定及SLAM相关理论
参考文献【22】
第三章 基于改进ORB的图像特征点匹配
(小论文内容)
Harris FAST BRISK MSER ORB SIFT SURF 等性能对比
(尺度不变性,旋转不变性,速度)
第四章 ORB-SLAM2系统及改进后的ORB-SLAM系统
第五章 改进ORB-SLAM2系统的验证及实现
第六章 结论与展望
参考文献
致谢
攻读硕士学位期间参加的科研项目及成果