1.RANSAC随机采样一致性算法——>详细解释
RANSAC从样本中随机抽选出一个样本子集,使用最小方差估计算法对这个子集计算模型参数,然后计算所有样本与该模型的偏差,再使用一个预先设定好的阈值与偏差比较,当这个偏差小于阈值,该样本点属于模型内样本点(inliers),内点或局内点。否则为outliers,外点或局外点。记录当下的inliers个数,重复这一过程。每一次重复都记录当前最佳的模型系数,所谓最佳即是inliers的个数最多,此时对应的inliers个数为best_ninliers。每次迭代的末尾都会根据期望的误差率、best_ninliers、总样本个数、当前迭代次数,计算一个结束评判因子,据此决定是否迭代结束。迭代结束后,最佳模型参数就是最终的模型参数估计值。
RANSAC的固定阈值不适用于样本动态变化的应用,另外RANSAC只能从一个特定的数据集中估计一个模型,当两个或多个模型存在时,RANSAC不能找到别的模型。
2.LMedS最小中值方差估计算法
LMedS也是从样本中随机抽选出一个样本子集,使用最小方差估计算法对这个子集计算模型参数,然后计算所有样本与该模型的偏差。但与RANSAC不同的是,LMedS记录的是所有样本中偏差居中的那个样本的偏差,称为Med偏差,以及本次计算得到的模型参数。由于这一变化,LMedS不需要预先设定阈值来区分inliers和outliers。重复前面N次,从N个Med偏差中选择一个最小的,其对应的模型参数就是最终的模型参数估计值。其中迭代次数N是由自己中的样本数、期望模型误差、事先估计的样本中outliers的比例所决定。
LMedS理论上可以剔除outliers的影响,并且克服了RANSAC的两个缺点,但是当outliers在样本中所占比例达到或超过50%时,LMedS就无能为力了。这与LMedS每次迭代记录的Med偏差值有关。