RANSAC是一种思想,一个求解已知模型的参数的框架,它并不限定某一特定的问题。
RANSAC将数据分为内群数据和离群数据,离群数据也就是受噪声影响的数据。RANSAC假定,给定一组内群,存在一个程序,这个程序可以估算最佳解释或最适用于这一数据模型的参数。
RANSAC与最小二乘法
如下图所示,由于最小二乘法拟合数据的时候是考虑所有的数据,所以最小二乘法的误差较大,而RANSAC算法是将那些噪声点设为离群点,就像下图中偏离中心的那些点,所以RANSAC得到的结果准确度较高,所以RANSAC的效果总是远优于最小二乘法。
RANSAC的步骤
RANSAC的输入:
1、一组观测数据(往往含有较大的噪声或无效点)
2、一个用于解释观测数据的参数化模型
3、一些可信的参数
步骤:
1、在数据中随机选择几个点设定为内群
2、计算适合内群的模型
3、把其他刚才没选到的点带入刚才建立的模型中,计算是否为内群
4、记下内群数量
5、重复以上步骤
6、比较哪次计算中内群数量最多,内群最多的那次所建的模型就是我们所要求的解。
注意:不同问题对应的数学模型不同,因此在计算模型参数时方法必定不同。
RANSAC的优缺点
优点:
它能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。
缺点:
1、他计算参数的迭代次数没有上限,如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。
2、RANSAC只有一定的概率得到可信的模型,概率与迭代次数成正比。
3、他要求设置跟问题相关的阈值。
4、RANSAC只能从特定的数据集中估计出一个模型。
5、要求数据模型已知。