视觉SLAM之RANSAC算法用于消除图像误匹配的原理

在基于特征点的视觉SLAM中,通常情况下,在特征匹配过程中往往会存在误匹配信息,使得计算获取的位姿精度低,易产生位姿估计失败的问题,因此,剔除这些错配点有很大的必要性。常会用到RANSAC算法进行消除两两匹配图像的误匹配点,如果只停留在应用的层面上很简单,直接调用opencv函数就行,看到效果时,感觉好神奇,到底怎么实现的啊,以前一直也没弄太明白,与图像结合的博客也比较少,在查阅了一些资料后,笔者似乎明白了一点,希望笔者的总结会对您的理解有帮助。

首先先介绍一下RANSAC算法(RANdom SAmple Consensus随机抽样一致)

算法的基本假设是:

(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;
(2)“局外点”是不能适应该模型的数据;
(3)除此之外的数据属于噪声。

局外点产生的原因有:噪声的极值;错误的测量方法;对数据的错误假设。

算法核心:

拟合一直线。假设观测数据中包含局内点和局外点,其中局内点近似的被直线所通过,而局外点远离于直线。简单的最小二乘法不能找适应于局内点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点,相反,RANSA能得出一个仅仅用局内点计算出模型,并且概率还足够高,但是不能保证结果一定正确。

RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:
    1.有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
    2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
    3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
    4.然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
    5.最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。

RANSAC的优点:

能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。

RANSAC的缺点:

计算参数的迭代次数没有上限;如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。RANSAC只有一定的概率得到可信的模型,概率与迭代次数成正比。另一个缺点是它要求设置跟问题相关的阀值。而且RANSAC只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,RANSAC不能找到别的模型。

总之,在一组包含局外点的数据集中,采用不断迭代的方法寻找参数模型。

RANSAC算法用于消除图像误匹配原理:

RANSAC算法是寻找一个最佳单应性矩阵H,矩阵大小为3*3,目的是找到最优的参数矩阵,使得满足该矩阵的数据点个数最多,通常令,由于单应性矩阵有8个未知参数,所以需要8个线性方程求解,对应到点位置信息上,一组点对可以列出两个方程,则至少包含4组匹配点对。

                  

其中表示目标图像的角点位置,为场景图像角点位置。S为尺度参数。

RANSAC算法从匹配数据集中随机抽出4个样本并保证这四个样本之间不共线。计算出单应性矩阵矩阵,然后利用这个模型测试所有数据,并计算满足这个模型数据点的个数与投影误差(即代价函数)若此模型为最优模型,则对应的代价函数最小:

                  

算法步骤:

  1. 随机从数据集中随机抽出4个样本数据(此四个样本之间不共线)计算出变换矩阵H,记为模型M:、
  2. 计算数据集中所有数据与模型M的投影误差,若误差小于阈值,加入内点集I;
  3. 如果当前内点集元素个数大于最优内点集,则更新,同时更新迭代次数k;
  4. 如果迭代次数大于k,则退出:否则迭代次数加1,并重复上述步骤

注:迭代次数k在不大于最大迭代次数的情况下,是在不断更新而不是固定的。

其中,p为置信度,一般取0.995,w为内点的比例,m为计算模型所需要的最少样本数=4.

时间: 2024-10-25 21:02:30

视觉SLAM之RANSAC算法用于消除图像误匹配的原理的相关文章

图像配准建立仿射变换模型并用RANSAC算法评估

当初选方向时就因为从小几何就不好.缺乏空间想像能力才没有选择摄影测量方向而是选择了GIS.昨天同学找我帮他做图像匹配,这我哪里懂啊,无奈我是一个别人有求于我,总是不好意思开口拒绝的人.于是乎就看着他给的一章节内容开始写程序了,今天总算给他完成了.做的比较简单,中间也遇到了不少问题,尤其是计算量大的问题,由于老师给的数据是粗配准过的数据, RANSAC算法评估时就简化了下. 理论内容: 第5章 图像配准建立几何变换模型 特征点建立匹配关系之后,下一步就是求解图像之间的变换关系.仿射变换能够很好的表

Robotics Lab3 ——图像特征匹配、跟踪与相机运动估计

Robotics Lab3 --图像特征匹配.跟踪与相机运动估计 图像特征匹配 图像特征点 携带摄像头的机器人在运动过程中,会连续性地获取多帧图像,辅助其感知周围环境和自身运动.时间序列上相连的两幅或多幅图像,通常存在相同的景物,只是它们在图像中的位置不同.而位置的变换恰恰暗含了相机的运动,这时就需要相邻图像间的相似性匹配. 选取一大块图像区域进行运动估计是不可取的.已知图像在计算机内部是以数字矩阵的形式存储的,[如灰度图的每个元素代表了单个像素的灰度值].而对于点的提取和匹配较为方便,且和数字

优化的对比度增强算法用于有雾图像的清晰化处理(算法效果是我目前看到最为稳定的,且对天空具有天然的免疫力,极力推荐有需要的朋友研究)。

在未谈及具体的算法流程前,先贴几幅用该算法处理的效果. 不知道各位对这个算法的效果第一印象如何. 这个算法的原理来自于文章<Optimized contrast enhancement for real-time image and video dehazing>,作者是韩国人. 这个算法也是基于大气散射模型: 和现在一些常见的去雾文章有明显的不同的是,这篇文章的并不是基于暗通道原理的,也不是把重点强调在透射率图的细化上,而是提出了一种新的得到粗透射率图的方法.并且文章分别讲到了静态图像和视频

视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1)

在目前实际的视觉SLAM中,闭环检测多采用DBOW2模型https://github.com/dorian3d/DBoW2,而bag of words 又运用了数据挖掘的K-means聚类算法,笔者只通过bag of words 模型用在图像处理中进行形象讲解,并没有涉及太多对SLAM的闭环检测的应用. 1.Bag-of-words模型简介 Bag-of-words模型是信息检索领域常用的文档表示方法.在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法.句法等要素,将其仅仅看作是若

理解图像配准中的LMeds、M-estimators与RANSAC算法

图像配准对于运动平台(无人机,移动机器人)上的视觉处理有着极其重要的作用.配准算法的第一步通常是找到两幅图像中一一对应的匹配点对(特征点提取.描述.点对匹配),然后通过匹配点对求取变换矩阵.在图像特征点匹配之KD-Tree一文中讲了配准中第一步中的点对匹配方法,本文将集中讨论配准第二步.在获得匹配点对后,我们需要从中选取一定的匹配正确的点对计算变换矩阵,对于透射变换,需要选取4组点对,对于仿射变换,需要选取3组.但现在的问题是,我们获得的匹配点对中不能保证所有的匹配都是正确的,如何从中选取正确的

视觉SLAM算法框架解析(1) PTAM

版权声明:本文为博主原创文章,未经博主允许不得转载. 本系列文章旨在总结主流视觉SLAM算法的框架,对比各个算法在子模块的差异,最终提炼出融合各个算法优点的架构. PTAM[1]是视觉SLAM领域里程碑式的项目.在此之前,MonoSLAM[2]为代表的基于卡尔曼滤波的算法架构是主流,它用单个线程逐帧更新相机位置姿态和地图.地图更新的计算复杂度很高,为了做到实时处理(30Hz),MonoSLAM每帧图片只能用滤波的方法处理约10~12个最稳定的特征点.PTAM最大的贡献是提出了tracking.m

经典视觉SLAM框架

引言:通过前面的推送我们已经对SLAM有了个大体的认识.(初识视觉SLAM)下面来看经典的视觉SLAM框架,了解一下视觉SLAM究竟由哪几个模块组成.本文选自<视觉SLAM十四讲:从理论到实践>. 整体视觉SLAM流程图. 整个视觉SLAM流程包括以下步骤. 传感器信息读取.在视觉SLAM中主要为相机图像信息的读取和预处理.如果是在机器人中,还可能有码盘.惯性传感器等信息的读取和同步. 视觉里程计(Visual Odometry,VO).视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图

视觉SLAM漫淡(二):图优化理论与g2o的使用

视觉SLAM漫谈(二):图优化理论与g2o的使用 1    前言以及回顾 各位朋友,自从上一篇<视觉SLAM漫谈>写成以来已经有一段时间了.我收到几位热心读者的邮件.有的希望我介绍一下当前视觉SLAM程序的实用程度,更多的人希望了解一下前文提到的g2o优化库.因此我另写一篇小文章来专门介绍这个新玩意. 在开始本篇文章正文以前,我们先来回顾一下图优化SLAM问题的提法.至于SLAM更基础的内容,例如SLAM是什么东西等等,请参见上一篇文章.我们直接进入较深层次的讨论.首先,关于我们要做的事情,你

初识视觉SLAM:用相机解决定位和建图问题

引言:视觉SLAM 是指用相机解决定位和建图问题.本文以一个小机器人为例形象地介绍了视觉SLAM的功能及特点.本文选自<视觉SLAM十四讲:从理论到实践>. SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作"同时定位与地图构建".它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动.如果这里的传感器主要为相机,那就称为"视觉SLAM". 假设我们组装