一直想了解一下RANSAC算法的一些原理,所以就趁着自己闲了下来整理了一下,做了这篇笔记。
文章目录
一、简介
RANSAC是一种随机参数估计算法。RANSAC从样本中随机抽选出一个样本子集,使用最小方差估计算法对这个子集计算模型参数,然后计算所有样本与该模型的偏差,再使用一个预先设定好的阈值与偏差比较,当偏差小于阈值时,该样本点属于模型内样本点(内点),否则就是外样本点(外点)。记录当前的内点的个数,然后重复上述的过程,直到模型中的内点达到最多,那么此时的模型参数即为最佳模型参数。从上述的过程我们不难看出,该方法是一个不断进行采样的过程,这也是其名字的由来:随机采样一致性算法。
RANSAC算法理论上可以剔除外点的影响,并且得到全局最优的参数估计。不过该算法涉及到了两个问题,第一就是怎样区分内点和外点,这需要某种判断条件;第二就是该算法的迭代次数并不是我们一开始就可以设置好的,其是在运行中被决定的。
二、PCL中的RANSAC
PCL中的sample_consensus模块实现了随机采样一致性以及其他的改良(或变种)算法
,具体的内容可以参看PCL的官方文档。