精华内容
下载资源
问答
  • 图切RANSAC 论文中提出的图切RANSAC算法:Daniel Barath和Jiri Matas; Graph-Cut RANSAC,计算机视觉和模式识别会议,2018年。可从以下获得: CVPR教程解释了该方法。 有关单应性,基本矩阵,基本矩阵和6D姿态...
  • 这是使用RANSAC查找抛物线的示例。 这是使用RANSAC算法获取曲率的示例来源 参考页面为并将参考页面上介绍的MATLAB代码转换为C ++代码。 我参考了 ,并将Matlab代码转换为C ++代码 OpenCV用于矩阵计算。 我使用...
  • 针对鲁棒性模型估计问题,提出一种基于全概率更新的改进RANSAC算法.该方法利用混合分布模型获取测试样本点的初始概率估计.在RANSAC算法框架下,根据模型估计与测试样本点对一致集的适应度建立全概率评价准则.在此基础...
  • RANSAC拟合直线

    2019-03-05 15:39:30
    随机抽样一致算法(RANdom SAmple Consensus, RANSAC),是一种迭代的方法,用来在一组包含离群的被观测数据中估算出数学模型的参数。 RANSAC是一个非确定性算法,在某种意义上说,它会产生一个在一定概率下合理的结果...
  • 针对稀疏建图中关键帧间的点云配准问题,提出一种基于改进的随机采样一致性(RANSAC)的场景分类点云粗配准算法。首先分别利用几何信息与光度信息进行关键点的检测、描述与匹配,然后由场景分类算法判断场景类别,适应性...
  • 一种RANSAC算法,用于估计连续图像帧之间的单应性。 · 目录 关于该项目 功能性 该项目目前具有两个主要功能。 第一个功能是估计两个输入图像帧之间的单应性。 这是通过在每个图像中找到关键点,在图像之间找到关键...
  • 传统随机抽样一致性(RANSAC)算法只能进行粗配准, 且配准效率低。针对该问题提出一种改进的RANSAC快速点云配准算法。该算法将内部形态描述子算法和快速点特征直方图(FPFH)算法相结合, 得到特征描述子, 然后采用预...
  • pyRANSAC-3D是随机样本共识(RANSAC)方法的开源实现。 它适合点云中的原始形状(例如平面,长方体和圆柱体)以适应多种应用:3D猛击,3D重建,对象跟踪等。 特征: 安装 要求:脾气暴躁 用安装: pip3 install ...
  • Ransac算法

    2018-02-28 22:57:06
    通过Ransac算法剔除噪声点,用最小二乘法拟合直线和不剔除噪声点拟合直线之间的比较。
  • RANSAC配准.py

    2021-01-12 16:49:10
    python版本的RANSAC+ICP点云配准代码,需要安装open3d库。
  • 点云配准中使用到的RANSAC剔除错误匹配点对,输入的是匹配点对,输出的是经过RANSAC筛选内点侯的正确匹配点对。
  • surf+ransac匹配

    2019-04-12 19:31:29
    surf特征点匹配加上ransac算法去除误匹配特征点,基于opencv实现的,配置好相应环境后可直接运行实现
  • 在Python中使用SIFT,单应性,KNN和Ransac的简单图像拼接算法。 有关完整的详细信息和说明,欢迎阅读image_stitching.pdf 。 该项目将实现基于特征的自动图像拼接算法。 当我们输入两个具有重叠场的图像时,我们...
  • RANSAC

    2019-03-29 15:25:08
    转自:http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html 作者:王先荣    本文翻译自维基百科,英文原文地址是:http://en.wikipedia.org/wiki/ransac,... RANSAC是“RANdom SAm...

    转自:http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html

    作者:王先荣
        本文翻译自维基百科,英文原文地址是:http://en.wikipedia.org/wiki/ransac,如果您英语不错,建议您直接查看原文。
        RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。
        RANSAC的基本假设是:
    (1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;
    (2)“局外点”是不能适应该模型的数据;
    (3)除此之外的数据属于噪声。
        局外点产生的原因有:噪声的极值;错误的测量方法;对数据的错误假设。
        RANSAC也做了以下假设:给定一组(通常很小的)局内点,存在一个可以估计模型参数的过程;而该模型能够解释或者适用于局内点。

    本文内容
    1 示例
    2 概述
    3 算法
    4 参数
    5 优点与缺点
    6 应用
    7 参考文献
    8 外部链接

    一、示例
        一个简单的例子是从一组观测数据中找出合适的2维直线。假设观测数据中包含局内点和局外点,其中局内点近似的被直线所通过,而局外点远离于直线。简单的最小二乘法不能找到适应于局内点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。相反,RANSAC能得出一个仅仅用局内点计算出模型,并且概率还足够高。但是,RANSAC并不能保证结果一定正确,为了保证算法有足够高的合理概率,我们必须小心的选择算法的参数。

    左图:包含很多局外点的数据集       右图:RANSAC找到的直线(局外点并不影响结果)


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


    三、算法
        伪码形式的算法如下所示:
    输入:
    data —— 一组观测数据
    model —— 适应于数据的模型
    n —— 适用于模型的最少数据个数
    k —— 算法的迭代次数
    t —— 用于决定数据是否适应于模型的阀值
    d —— 判定模型是否适用于数据集的数据数目
    输出:
    best_model —— 跟数据最匹配的模型参数(如果没有找到好的模型,返回null)
    best_consensus_set —— 估计出模型的数据点
    best_error —— 跟数据相关的估计出的模型错误

    iterations = 0
    best_model = null
    best_consensus_set = null
    best_error = 无穷大
    while ( iterations < k )
        maybe_inliers = 从数据集中随机选择n个点
        maybe_model = 适合于maybe_inliers的模型参数
        consensus_set = maybe_inliers

        for ( 每个数据集中不属于maybe_inliers的点 )
            if ( 如果点适合于maybe_model,且错误小于t )
                将点添加到consensus_set
        if ( consensus_set中的元素数目大于d )
            已经找到了好的模型,现在测试该模型到底有多好
            better_model = 适合于consensus_set中所有点的模型参数
            this_error = better_model究竟如何适合这些点的度量
            if ( this_error < best_error )
                我们发现了比以前好的模型,保存该模型直到更好的模型出现
                best_model =  better_model
                best_consensus_set = consensus_set
                best_error =  this_error
        增加迭代次数
    返回 best_model, best_consensus_set, best_error

        RANSAC算法的可能变化包括以下几种:
        (1)如果发现了一种足够好的模型(该模型有足够小的错误率),则跳出主循环。这样可能会节约计算额外参数的时间。
        (2)直接从maybe_model计算this_error,而不从consensus_set重新估计模型。这样可能会节约比较两种模型错误的时间,但可能会对噪声更敏感。

    四、参数
        我们不得不根据特定的问题和数据集通过实验来确定参数t和d。然而参数k(迭代次数)可以从理论结果推断。当我们从估计模型参数时,用p表示一些迭代过程中从数据集内随机选取出的点均为局内点的概率;此时,结果模型很可能有用,因此p也表征了算法产生有用结果的概率。用w表示每次从数据集中选取一个局内点的概率,如下式所示:
        w = 局内点的数目 / 数据集的数目
        通常情况下,我们事先并不知道w的值,但是可以给出一些鲁棒的值。假设估计模型需要选定n个点,wn是所有n个点均为局内点的概率;1 − wn是n个点中至少有一个点为局外点的概率,此时表明我们从数据集中估计出了一个不好的模型。 (1 − wn)k表示算法永远都不会选择到n个点均为局内点的概率,它和1-p相同。因此,
        1 − p = (1 − wn)k
        我们对上式的两边取对数,得出
       
        值得注意的是,这个结果假设n个点都是独立选择的;也就是说,某个点被选定之后,它可能会被后续的迭代过程重复选定到。这种方法通常都不合理,由此推导出的k值被看作是选取不重复点的上限。例如,要从上图中的数据集寻找适合的直线,RANSAC算法通常在每次迭代时选取2个点,计算通过这两点的直线maybe_model,要求这两点必须唯一。
        为了得到更可信的参数,标准偏差或它的乘积可以被加到k上。k的标准偏差定义为:
       
    五、优点与缺点
        RANSAC的优点是它能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。RANSAC的缺点是它计算参数的迭代次数没有上限;如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。RANSAC只有一定的概率得到可信的模型,概率与迭代次数成正比。RANSAC的另一个缺点是它要求设置跟问题相关的阀值。
        RANSAC只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,RANSAC不能找到别的模型。


    六、应用
        RANSAC算法经常用于计算机视觉,例如同时求解相关问题与估计立体摄像机的基础矩阵。


    七、参考文献

    八、外部链接

    九、后话

        本文在翻译的过程中参考了沈乐君的文章《随机抽样一致性算法RANSAC源程序和教程》。Ziv Yaniv已经用C++实现了RANSAC,您可以点击这里下载源程序。

    不过,如果时间允许的话,我打算自己动手用C#去实现RANSAC算法,原因有两个:

        (1)熟悉算法的最佳途径是自己去实现它;

        (2)方便使用.net的同志们利用RANSAC。

        感谢您耐心看完我的蹩脚翻译,希望对您有所帮助。

    展开全文
  • 用于圆检测的 RANSAC 算法的实现,为模式识别课程编写。 原任务描述: 用 C、C++、C#、Java 或 Java 脚本编写一个程序,执行以下操作。 将 Small 的图 1.5 和 1.6 的配置转换为二维点集。 使用 RANSAC 检测圆圈...
  • 图像矩阵matlab代码使用RANSAC进行基本矩阵估计 在这个项目中,我们增加了Matlab代码来估算相机校准,特别是估算相机投影矩阵和基本矩阵。 我们已经对相机投影矩阵进行了精确的估计,并且基本矩阵都可以使用两幅图像...
  • 图像拼接 采用SIFT+RANSAC的特征匹配方法实现图像拼接
  • ransac直线拟合,能够对直线进行拟合,拟合的结果较好
  • 利用激光雷达做感知输出首先要分割出地面点云以减少对障碍物聚类的影响,可以通过ransac算法原理在ROS中实现对地面点云的分割。PCL点云库中也有标准的RANSAC算法接口,通过调用它实现更加快速,稳定地滤除地面点云。
  • SciPy Cookbook中的RANSAC样例,简单易懂,直观理解RANSAC拟合直线的过程。1. 选取部分数据点 2. 最小二乘法拟合直线 3. 判定inliners 4. 终止条件
  • 使用matlab进行RANSAC直线检测。在一堆随机点中隐藏一条直线,通过RANSAC方法检测出来。RANSAC方法不保证每次都能找到最优的直线。尝试的次数越多,成功的概率越大。
  • ransac代码共面重复的矫正 该框架校正了成像的共面重复图案。 在基于LO-RANSAC的鲁棒估计框架中使用了由共面重复模式引起的约束得出的最小求解器。 从图像中提取仿射协方差特征,以输入到求解器。 相对于视点和照明...
  • RANSAC算法深入

    2018-01-14 00:08:36
    本文档是上一篇文档的后续,主要是RANSAC应用于直线拟合的伪代码实现部分理解,适合初学者学习
  • Ransac直线拟合

    2018-05-19 21:43:56
    VS2015版本实现的 Ransac直线拟合,算法速度快,效果优,直接可以使用
  • 使用RANSAC提取平面

    2018-09-21 21:23:07
    使用PCL中RANSAC探测识别平面,并且可将探测出的多个平面进行单独保存。
  • 给定两个点 p1 与 p2 的坐标确定这两点所构成的直线要求对于输入的任意点 p3 都可以判断它是否在该直线上初中解析几何知识告诉我们判断一个点在直线上只需其与直线上任意两点点斜率都相同即可实际操作当中往往会先...
  • The RANdom SAmple Consensus (RANSAC) algorithm proposed by Fischler and Bolles [1] is a general parameter estimation approach designed to cope with a large proportion of outliers in the input data....
  • 通过LO-RANSAC改进2D摄像机校准
  • 两个文件夹,一个为sift+ransac图像匹配代码,同时还有匹配精度检测代码(以像素精度)。另一个文件夹为surf图像匹配代码。
  • RANSAC算法matlab包

    2017-12-09 10:42:27
    RANSAC算法matlab库,解压后可直接调用其中的函数实现RANSAC算法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,714
精华内容 4,285
关键字:

RANSAC