随机抽样一致性算法(RANSAC)
以下都是个人对于RANSAC的一些认识,可能有比较大的问题,望大家批评指正。
应用的范围:主要在散点图中获得一个已知模型的参数,使得符合这个模型参数的点最多。
散点图由局内点和局外点之分,当散点在模型上时则是局内点,如果在模型外则为局外点。RANSAC的目标是找寻一个模型参数使得局内点最多。
整个算法可以分为以下几个部分:
1.随机选取最少能够计算模型参数的点,计算获得模型参数
2.根据1中获得的模型参数去判断局内点S1
3.根据S1采用最小二乘等方法计算模型参数。
4.根据3中获得的参数判断局内点S2以及局内点个数n
5.获取S2对应的模型参数。
6.如果n大于之前之前记录的最大的局内点个数,则更新最大的局内点个数,更新对应的参数。
7判断是否达到循环次数,如没有跳到1,否则跳出循环
最大的局内点个数对应的参数就是最终要求的参数。
一些技巧:
在一个项目中,由于需要拟合一个圆,而干扰点较多,就采用了RANSAC去做了拟合。
考虑到2中判断是否为局内点是一个非常粗糙的判断,所以可以在2中放宽判断标准。在4中严格判断标准。
在项目中达到的效果还是比较理想的。
参考资料:
http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html