RANSAC
随机采样一致性。一种从包含离群点的数据中鲁棒估计模型参数的迭代算法。在计算机视觉中对单应性估计和 3D 点云拟合至关重要。
RANSAC (Random Sample Consensus) 由 Fischler 和 Bolles 于 1981 年提出,是一种鲁棒估计算法,设计用于从包含大量离群点的数据中拟合模型。与将所有数据点同等对待且容易被离群点破坏的最小二乘法不同,RANSAC 迭代地识别与假设模型一致的最大数据子集。
算法遵循简单的流程:随机选择定义模型所需的最少点数,从该最小集计算模型参数,然后计算剩余数据点中有多少 (内点) 落在模型的距离阈值内。此过程重复预定次数的迭代,拥有最多内点的模型被选为最终结果。
- 迭代次数:所需迭代次数计算为
k = log(1-p) / log(1-w^n),其中 w 是内点比率,n 是最小样本大小,p 是期望成功概率。对于单应性 (n=4),50% 内点率和 99% 置信度,约需 72 次迭代 - 阈值选择:内点距离阈值取决于测量噪声。图像对应点通常使用 1-3 像素。阈值过小会拒绝有效内点;过大则会纳入离群点
- 变体:MSAC 按距离对内点评分而非二值分类。PROSAC 按质量顺序采样对应点以加速收敛。LO-RANSAC 对有前景的假设应用局部优化
在计算机视觉中,RANSAC 是特征匹配后估计单应性和基础矩阵的标准方法。OpenCV 的 cv2.findHomography() 内部运行 RANSAC 并返回变换矩阵和离群点掩码,使下游处理能够仅使用几何一致的对应关系。