随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(1)--RANRAC

版权声明:个人原创,转载请申明 https://blog.csdn.net/baidu_38172402/article/details/83447834

经典的参数估计技术,如最小二乘,(根据指定的目标函数)优化了函数描述(模型)对所有数据的拟合。这些技术没有检测和排除严重错误的内部机制。它们是基于假设(平滑假设)的平均技术,即任何数据与假设模型的最大期望偏差是数据集大小的直接函数,因此无论数据集的大小如何,总会有足够的好值来平滑任何粗偏差。

在许多实际的参数估计问题中,平滑假设不成立,即数据包含无补偿的粗差。针对这种情况,提出了几种启发式算法。通常采用的方法是先利用所有的数据导出模型参数,然后定位与实例化模型最接近的数据,如果它是一个粗误差,删除它,然后迭代这个过程,直到最大偏差小于某个预设的阈值或直到不再有足够的数据进行处理。

由上面的例子,我们可以得出,传统的最小二乘法,首先通过全部的数据,进行解算的到了一个模型,然后通过计算迭代误差,不断剔除掉与原数据残差比较大的数据,我们可以从迭代次数可以看出,在进行迭代了四次后,本来作为粗差的点7,残差最小,将无法剔除。

RANSAC程序与传统平滑技术相反:相比较使用尽可能多的数据来获得初始解,然后尝试消除无效的数据点,RANSAC尽可能使用小的初始数据集,并在可能的情况下扩大这个一致数据集。例如,给定将一个圆的圆弧拟合成一组二维点的任务,RANSAC方法将是选择一个由三个点组成的集合(因为确定一个圆需要三个点),计算隐含圆的中心和半径,并计算与该圆足够接近的点数,以表明它们与圆的兼容性(即,它们的偏差足够小,足以成为测量误差)。如果有足够多的相容点,RANSAC将使用平滑技术,如最小二乘,在确定了一组相互一致的点后,计算圆参数的改进估计。

RANSAC正式流程说明如下:

从上面的表述中,我们可以看出SANSAC有两个可以改进的地方:

首先,如果存在与选择点形成一致集的问题相关的理由,则使用确定性的选择过程而不是随机的选择过程。

第二,一旦找到合适的共识集S*并实例化模型M*,将P中与M*一致的任何新点添加到S*中,并在此大集合的基础上计算新模型。

RANSAC范式包含三个未指定的参数:

(1)用于确定点是否与模型兼容的容错性的容差;(2)要尝试的子集数k;(3)阈值t,即用于表示已找到正确模型兼容的一致集点数。

以下详细说明这三个参数的推导:

(一)建立数据/模型兼容性的误差

通常数据/模型的容差通常是一个与数据误差和模型误差有关的函数,如果模型是数据点构造成的一个简单函数,通过在解析中建立合理的误差容限是可行的。然而,前面的方法通常是没用的。在以下情况下,通常有可能在实验上估计误差容限。采样的偏差通常是由扰动数据产生,计算模型和测量隐含的误差,容差可以被设置成一个或两个超出测量平均误差的的值。数据与假设模型的期望偏差一般是函数,因此每组数据的误差容差应是不同的。然而,通常容差的变化相比较于粗差的值相对较小,因此,对于所有的数据来说,设置单一的容差值通常是有效的。

(二)尝试找到一致集的最大次数

停止选择P中的新子集的决定可以基于选择含有n个好数据点的子集所需的预期试验次数k。设w为任意选定的数据点在模型的误差容限内的概率。故有:

结合前面的几何级数的恒等式,可得如下:

(三)可接受的一致集大小的下界值

在RANSAC,阈值t是一个未指定的参数,它被用作确定p的n个子集被发现的基础,它意味着一个足够大的一致集,允许算法终止。因此,必须选择足够大的t来满足两个目的:为数据找到了正确的模型,并且找到了足够数量的相互一致的点,以满足最终平滑过程的需要(该过程计算模型参数的改进估计)。

为了避免最终一致集与错误模型兼容的可能性,并假设y是任何给定数据点在错误模型的容错范围内的概率,我们希望y^t-n非常小。虽然没有精确确定y的一般方法,但假定它小于w(w是给定数据点在正确模型的误差容限内的先验概率)当然是合理的。假设y<0.5,t-n=5的值将提供95%以上的概率,即不会出现与不正确模型的兼容性。

为了满足最终平滑过程的需要,必须指定要使用的特定过程。如果要使用最小二乘平滑,可以在许多情况下调用正式方法来确定产生所需精度所需的点数。

猜你喜欢

转载自blog.csdn.net/baidu_38172402/article/details/83447834