主要内容

ransac

适合嘈杂的数据模型

描述

例子

[模型inlieridx.) = ransac (数据fitFcndistfcn.样品化maxDistance使用M-Everialator样本共识(MSAC)算法,适用于嘈杂数据的模型,随机采样共识(RANSAC)算法的一个版本。

指定适合模型的函数,fitFcn,以及用于计算模型到数据之间距离的函数,distfcn..的ransac函数随机抽取样本数据使用样品化并使用贴合功能,以最大限度地增加内嵌的数量maxDistance

[___) = ransac (___名称,值另外指定一个或多个名称,值对参数。

例子

全部折叠

加载并绘制一组嘈杂的二维点。

加载pointsForLineFitting.mat绘图(点(:,1),点(:,2),“o”);持有

图中包含一个轴对象。轴对象包含类型线的对象。

适合使用线性最小二乘法的线。由于异常值,该线路并不符合良好。

modelleastsquares = polyfit(点(:,1),点(:,2),1);x = [min(点(:,1))max(点(:,1))];Y = Modelleastsquares(1)* X + Modelleastsquares(2);绘图(x,y,'r-'

图中包含一个轴对象。轴对象包含两个类型为line的对象。

使用MSAC算法拟合一条线到这些点。定义样本大小、嵌线的最大距离、拟合函数和距离评价函数。调用ransac运行MSAC算法。

Samplesize = 2;每次试验的百分比点为样本maxdistance = 2;最大允许距离的最大允许距离fitLineFcn = @(points) polyfit(points(:,1),points(:,2),1);%拟合函数使用polyfitevallinefcn =......距离评价函数@(模型,分)和((分(:,2)- polyval(模型,分(:1)))^ 2,2);[modelRANSAC, inlierIdx] = ransac(points,fitLineFcn,evalLineFcn,......样品化,MaxDistance);

使用一条线到inliers使用Polyfit.

modelInliers = polyfit(点(inlierIdx, 1),点(inlierIdx, 2), 1);

显示最终的拟合行。这条线对于异常值来说是稳健的ransac识别和忽略。

InLierpts = points(inlieridx,:);x = [min(inlierpts(:,1))max(InLierpts(:,1))];Y = ModelInliers(1)* X + Modelinliers(2);绘图(x,y,'G-') 传奇(“吵点”“最小二乘健康”'强大的契合');持有

图中包含一个轴对象。轴对象包含3型对象。这些对象代表嘈杂的点,最小二乘拟合,强大的契合。

输入参数

全部折叠

要建模的数据,指定为m——- - - - - -N矩阵。每一行对应于要建模的数据集中的一个数据点。例如,要建模一组2-D点,指定点数据为m——- - - - - -2矩阵。

数据类型:单身的|

适合一个子集的功能数据,指定为函数句柄。该函数必须是表单:

模型= fitFcn(数据)

如果可以将多个模型适合数据,那么fitFcn将模型参数返回为单元格数组。

将距离从模型计算到数据的函数,指定为函数句柄。该函数必须是表单:

距离= distfcn(模型,数据)

如果模型是一个N-element array,然后距离必须是m——- - - - - -N矩阵。否则,距离必须是一个m-by-1矢量。

最小样本大小数据这是必需的fitFcn,指定为正标量整数。

从拟合曲线到Inlier点的最大距离,指定为正标量。除此距离之外的任何点都被视为异常值。RANSAC算法从小点样本创造一个拟合,但试图最大化Inlier点数。降低最大距离通过在Inlier点放大更严格的公差来提高拟合。

名称 - 值参数

指定可选的逗号分离对名称,值参数。姓名是参数名称和价值为对应值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'Maxnumtrial',2000

函数来验证模型,指定为逗号分隔的对,由'ValidateModelFcn'和功能手柄。函数返回真正的如果模型是基于函数中定义的标准而被接受的。使用此函数拒绝特定的匹配。该函数必须是表单:

isValid = validateModelFcn(模型、变长度输入宗量)

如果未指定功能,则假定所有模型都有效。

找到产生有效模型的示例的最大尝试次数,指定为包含的逗号分隔对。MaxSamplingAttempts'和一个整数。

最大随机试验次数,指定为由“逗号分隔的配对”组成maxnumtrial'和一个整数。单次试验使用最少的随机点数数据适合模型。然后,试验检查内部的替代者数量maxDistance从模型。经过所有的试验,选择嵌线数量最多的模型。增加试验次数可以提高输出的稳健性,但需要额外的计算。

最终解决方案发现模型适合的最大词数的信心,指定为由“逗号分隔的对”信心'和标量从0到100.增加该值以额外计算为代价提高输出的稳健性。

输出参数

全部折叠

最佳拟合模型,作为所定义的参数返回fitFcn输入。该模型最大限度地增加了所有样本尝试的嵌套数量。

Inlier点,作为逻辑向量返回。这个向量的长度和数据,每个元素表明该点是否是基于模型拟合的嵌套点maxDistance

参考文献

[1] Torr,P.H. S.和A. Zisserman。“MLESAC:一种具有应用于估计图像几何的新的强大估算器。”计算机视觉和图像理解.卷。18,第1期,2000年4月,第138-156页。

扩展能力

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

在R2017A介绍