随机抽样一致性(RANSAC: Random Sample Consensus)

Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography

随机抽样一致性是一种利用实验数据拟合模型的方法,能够用来平滑带有大量干扰的数据,因此也适用于有易于产生误差的特征提取器所产生的数据。论文的主要部分讨论了RANSAC方法对LDP问题的应用。LDP问题指的是:给定一幅图像中的一组已知标记位置的信息,判断图像中其他点的信息。

1、引言

在很大的范围内,场景分析的核心问题是解释根据预定模型所感知的数据。概念性地,解释通常包括两个不同的行为:一,与数据匹配度最高的模型寻找问题;二,对于选择合适模型的参数值的估计问题。实际情况中,这两个问题并不是独立的,参数估计的问题通常需要解决分类问题。参数估计的典型技术有最小二乘,优化函数模型等。这些方法没有内在的机制来检测和去除较大的误差数据。它们是依赖于最大化所有数据偏差期望假设的求均值方法,而数据是根据数据集合大小而直接获得的假设的函数模型,也正是因此而忽略了数据聚合的大小问题,通常这里有足够多的好的数据来平滑大的偏差。

在实际的参数估计问题中,平滑的假设并不能够很好的满足,比如数据中含有较大的未得到补偿的大误差。为了应付这种情况,有许多的启发式算法可以使用。这些方法在第一次使用所有的数据来推导模型参数是会有一些变化,然后得到的数据与实际的模型相去甚远,那么就可以假定这是一个误差,删除它,然后迭代这个过程使得最大的误差比之前预设的某个阈值要小或者直到没有来更新这种迭代。一个单独的很大的误差会使得上述的启发式方法失败,因此这种求平均的方法对未经证实的数据集不是很好的选择。

在下面的部分我们介绍了RANSAC方法,它能够有效的对还有很多比例的大误差的数据集进行平滑。这种方法特别适用于场景分析,因为局部的特征探测往往会发生很多的错误,而且探测器产生的数据还会提供给接下来的场景解析算法。局部特征探测器经常会产生两类错误:分类错误和测量错误。当探测器未能正确地识别图像的某一部分作为特征就会发生分类错误;当探在测器正确地识别了图像的特征却因为参数而计算错误时产生。测量错误一般符合正态分布,这就使得一些平滑策略能够得以使用。然而,分类错误是一种很大的误差,具有重大的后续影响且不能够通过均值化消除。

2、随机抽样一致性

RANSAC方法与传统的方法不同:并不是利用尽可能多的数据来获得一个初始解然后才来消除无效的数据点,RANSAC是利用一个小的可行的初始数据集然后利用一致性尽可能地扩大这个集合。例如:给出一个用二维点集去拟合圆上的一段弧,RANSAC法会选择一个三个点的点集,计算出隐含的圆的直径和圆心,然后计算离这个足够近的点的个数。如果有足够多的可以兼容的点,RANSAC会采用诸如最小二乘等平滑方法来改进这种参数估计。

RANSAC方法可以描述如下:

1)给定一个最少需要n个数据点才能实例化参数的模型以及P个数据点且P>n。随机从P个数据中选取一个包含n个数据的子集S1并实例化该模型,利用该模型M1和一个合适              的容忍度来决定P中的子集S1*,S1*称为S1的一致性集合。

2)如果#(S1*)大于给定的阈值t,t是一个关于P中大误差个数估计的函数,那么可以利用S1*拟合一个新的模型M1*。

3)如果#(S1*)小于t,随机的选取一个新的子集S2然后重复上述过程。在经过预设的实验次数之后,如果没有发现大于或等于t的一致性集合,那么就利用已发现的最大一致              性集合或者直接设为拟合失败。

这里存在两个明显的改进方向:一,如果有问题相关的依据可以构成S集合,那么可以应用这种确定性的方法来代替随机选择的过程;二,一旦确定了一个合适的一致性集合S*和一个模型M*,从P中根据与模型M*一致的关系添加相应的点至S*,那么可以以这个更大的集合为基础计算新的模型。RANSAC算法含有三个未指明的参数:1)用来指出一个数据点与一个模型兼容的容忍度参数;2)测试子集的数目;3)阈值t,兼容数据点的个数以表明是否找到了正确的模型。接下来讨论这三个参数的计算方法。

A.误差容忍度(用来建立衡量标准/模型兼容性)

数据到模型的偏差是一个与数据误差和模型误差相关的函数。如果模型是一个关于数据点的简单函数,那么可以通过分析来获得误差的边界信息,然而这种前向的方法往往并不起作用,对于这种情况通常利用实验来估计误差的边界。样本误差可以通过扰动数据而获得,然后计算模型并测量隐含的误差。那么,就可以利用超过基于测量误差的平均值的一两个标准差来设置误差容忍度参数。假定模型的误差期望通常是数据的函数,因此误差容忍度应该根据不同的数据而变化。然而,这种误差容忍度的变化相对于大误差来说相当小。因而,一个单独的误差容忍度参数对所有的数据而言是有效的。

B.寻找一个一致性集合的最大测试次数

对于从P中选取子集何时停止取决于从k次试验中选了一个好的n个数据子集的期望值。令w表示每个点在模型误差容忍度范围的概率,那么k的期望E(k)=w^(-n),k的标准差D(k)=[sqrt(1-w^n)]*w^(-n)。在大部分时候,从两个公式中可以发现,期望和标准差是近似相等的。这就意味着,只需要尝试2~3倍期望值次数的k次实验就可以获得一个多于t个元素的一致性子集。与此不同的是,如果我们想在概率z的情况下选取一个无偏差的n个元素的子集,那么需要实验的次数k=[log(1-z)]/[log(1-w^n)]。此时,如果w^n<<1,那么k近似为log(1-z)*E(k)。

C.一个可以接受的一致性集合的元素数目下界

阈值t是一个非指明的参数,它决定着RANSAC算法从P中选取的n个数据代表一个更大的一致性集合使得算法可以终止。因此,t的选择必须足够大使得可以满足两个目的:正确的模型已经找到;有足够多的一致性数据可以为满足接下来的平滑过程需要。为了衡量最终的一致性集合与非正确模型的兼容性概率,假定y为任意给定的数据点与非正确模型在误差容忍范围内的概率,那么我们则希望y^(t-n)尽可能的小。然而没有通用的方法可以精确地确定y,只能确定的假定y小于w。假设y<0.5,t-n=5,那么就不会发生好于95%的可能性与一个非正确的模型得以兼容。为了满足后续平滑过程的需要,所采用的特定过程必须是指定的。如果使用最小二乘方法来平滑,那么就有许多的方法可以调用来确定所需数据点的数目以保证精度。

3.LDP(位置判断问题)

在图像分析中一个基本的问题是建立统一场景(实物)在不同表达中(两幅图像之类的)的对应关系。这个问题的一个变种问题就是通过图像中的一些地标信息来获取空间中其他位置点的信息(这类问题通常也被称作相机外参数配置,或相机校正问题,或图像-数据库匹配问题)。通常利用最小二乘法来解决该问题,通过人工操作建立三维控制点与图像点之间的联系。然而,在全自动的系统中,这种匹配关系需要基于少量的合适的特征探测器,而这类探测器却不能处理较大的误差。这个问题在第二部分中已经得到了讨论,在第四部分中将会进行举例说明。在这一部分,将利用RANSAC方法特有的对大误差的容忍能力来解决LDP问题。首先我们来检测一个可能的解应满足的条件和描述一下关于这个问题的一些新的结果;然后详细地描述一下基于RANSAC的算法;最后,分析了运行该算法的结果。

LDP问题可以正式的描述如下:给定一个由m个三维坐标信息已知的控制点组成的集合;给定一幅图像,其中m个控制点的一些子集可以明显的被发现;判断图像在何处获得。

我们首先会假定我们我们知道n个图像点和控制点的对应信息;然后我们会考虑其中哪些匹配点是无效的。我们也会假定像平面的主点和成像系统的焦距是已知的。因此,我们就能够轻易地从透视中心(CP: the center of perspective)处计算任意两个控制点的夹角。最后,我们假定相机在由控制点组成的凸包范围之外。

在附录A中可以证明如果我们能够计算从CP到三个控制点的射线的长度,那么我们就能够直接地解出C跑的位置坐标。因此,等价且更简明地将LDP问题描述为:给定相对的n个控制点的空间位置信息;给定任意一个控制点对到一个额外增加的称为CP点的角度;求解连接CP和任意控制点之间线段的长度。我们称之为PnP(perspective-n-point)问题。

为了应用RANSAC算法,我们希望确定可以求解PnP问题的最小的n值。

A. PnP问题的解

当n=1时,P1P问题并没有给出约束信息,因此会存在无数个解。

当n=2时,P2P问题也存在无数个解,在以CP点,A、B两个控制点构成的三角形为内接三角形的圆上,CP点可以使圆上的任意一点,因而解也存在无数个。

当n=3时,由三个控制点构成一个平面,外加CP点,则组合成一个四面体。问题转化为求解该四面体三条棱的长度。如下图所示。


由图中的几何关系可以得到如下几个等式:


众所周知,含有n个未知数的n个独立多项式等式,其解的个数不会多于其各自的阶数。然而,A*方程组中的各项由常数和一个二阶项组成,对于每一正实数解,也存在一个同构的负实数解。因此,A*方程组最多存在四组正实数解,而且可以推导出四个解的上界。在附录A中推到了A*方程组的代数解。

对于n=4,当所有的四个点都处于同一平面上时(不包含CP点,且任意三个控制点不会共线),在附录B中提供了一种方法可以得到一个唯一的解。值得注意的是,当四个点不共面时,并不能保证有唯一解。为了解决四点不共面的CP点定位问题,我们利用了附录A中提供的算法。

(之后讨论了n为更大值时的情况)

4、算法细节与实验结果

A. RANSAC/LD算法  

算法接受以下输入量:

1)由m个6维的数据点组成的列表,6维包含一个现实世界中的三维的坐标,一个对应的图像中的二维坐标,一个可选的编号给出了误差的相关信息;

2)成像系统的焦距以及主点在像平面的坐标;

3)一个6维数据点拥有大误差的概率(1-w);

4)一个‘信任’数值G用来衡量中间结果对解的贡献的内部阈值,1表示使得算法比较保守而0表示几乎会调用一个有效解的任何东西。(?)

算法输出以下信息:

1)透镜中心的三维坐标和一个匹配误差的估计值;

2)像平面的空间方向。

算法操作流程:

1)准随机的从列表L中选取三个6维的数据点以确保匹配控制点有合理的空间分布;

2)利用附录A中提供的封闭式解来确定S1所对应的CP(标记为CP1),当存在多个解时在接下来的步骤中被当做来自不同的子集选择所产生的解处理;

3)在推导CP1的位置时的误差通过扰动控制点在像平面的坐标信息来进行估计,并且多次计算这种影响;

4)给定CP1的误差估计,通过利用文献[1]在中的方法对于L中每个控制点给出误差椭圆,如果相关的图像坐标在对应的误差椭圆内,则将其添加进一致性集合CP1/S1;

5)如果集合CP1/S1的大小等于或者超过给定的阈值t,那么就利用最小二乘法来确定最后的CP位置和像平面的方向信息,否则选择S2,S3重复上述步骤;

6)如果迭代次数超过k,那么选择找到的最大的一致性集合来得到最后的解。

B.实验结果

为了证明理论结果的有效性,我们做了三组实验。第一个实验对于一个指定的LDP问题,运用最小二乘剪枝的启发式算法失败了,而RANSAC算法则成功得出结果。第二个试验中,将算法运用到50个综合问题上以检测算法在大范围参数时的可靠性。第三个实验运用标准的特征检测方法来定位航拍图像中的地标然后应用RANSAC来判断相机的位置和方向。


  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RANSACRandom Sample Consensus)是一种用于拟合模型并对含有噪声和异常值的数据进行鲁棒估计的算法。它的基本思想是通过迭代的方式从数据集中随机选择一部分样本,然后根据这些样本拟合模型,再根据拟合得到的模型评估其他样本是否符合该模型。通过迭代过程,RANSAC可以找到一个对异常值具有鲁棒性的拟合模型。 RANSAC的步骤如下: 1. 随机选择一部分样本,这部分样本称为内群(inliers)。 2. 根据内群拟合模型,得到模型的参数。 3. 对于剩余的样本,计算其与模型的误差,将误差小于一定阈值的样本称为内群,将误差大于阈值的样本称为离群(outliers)。 4. 判断当前模型的质量,可以通过判断内群的数量或者拟合误差的均值来评估模型的好坏。 5. 重复以上步骤多次,选择拟合误差最小或者内群最多的模型作为最终结果。 RANSAC的优点在于它能够有效地处理含有噪声和异常值的数据,对于不同类型的模型都可以使用。相比于最小二乘法,RANSAC可以捕捉到那些偏离中心的离群点,并将其排除在拟合过程之外,从而得到更准确的结果。因此,在一些对数据质量要求较高的应用中,RANSAC的效果往往优于最小二乘法。 参考资料: 基于OpenCV实现的RANSAC随机抽样一致性直线拟合_thequitesunshine007的博客-CSDN博客 如下图所示,由于最小二乘法拟合数据的时候是考虑所有的数据,所以最小二乘法的误差较大,而RANSAC算法是将那些噪声点设为离群点,就像下图中偏离中心的那些点,所以RANSAC得到的结果准确度较高,所以RANSAC的效果总是远优于最小二乘法。 RANSAC将数据分为内群数据和离群数据,离群数据也就是受噪声影响的数据。RANSAC假定,给定一组内群,存在一个程序,这个程序可以估算最佳解释或最适用于这一数据模型的参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值