RANSAC概念
RANSAC(Random sample consensus)指随机抽样一致性算法。
RANSAC是一种对带有外点的数据拟合参数模型的迭代方法。
RANSAC的迭代步骤
RANSAC基础版本的每次迭代包括5个步骤:
1.在原始数据中随机选取一个(最小)子集作为假设内点;
2.根据假设的内点拟合一个模型;
3.判断剩余的原始数据是否符合拟合的模型,将其分为内点和外点。如果内点过少则标记为无效迭代;
4.根据假设的内点和上一步划分的内点重新拟合模型;
5.计算所有内点的残差,根据残差和或者错误率重新评估模型。
迭代以上步骤,把具有最小残差和的或是最多内点数的模型作为最佳模型。
最小迭代次数的计算
RANSAC是一种概率算法,想要效果足够好,就要内点选的越多,外点排除越多。也就是需要进行很多次迭代试验。那么我在给定条件下,最少需要试验的次数时多少呢?
这就引出了一个数学问题:
问题:
设 w w w 为给定某个点,它是内点的概率;
p p p 是经过 k k k 次迭代后,选择的点都是内点的概率(只要迭代过程中,有一次迭代全是内点,它就是成功的);
n n n 是当前数据得到的内点总个数;
给定了上面的条件,则对应一个 p p p , k k k 也就确定了,求 p p p 与