计算机视觉|RANSAC

计算机视觉 · 2023-07-04 · 217 人浏览
计算机视觉|RANSAC

RANSAC指Random sample consensus,随机采样一致性。算法流程如下:

  • 随机选择数据点的一个子集
  • 通过数据子集优化模型
  • 在模型拟合结果附近的数据点将为该模型参数投票
  • 重复以上操作,直到找到一个最优模型,有最多的数据点为他投票

迭代示意图如下。

image-20230704213941781

image-20230704213951736

拟合直线的流程如下图。其中s,d是超参数。拟合直线的流程如下图。其中s,d是超参数。在最后得到票数最高对应的直线时,一般会用该直线和周围的d个点再做一次最小二乘,使拟合更精确。

image-20230704214010755

关于N的选择也是一个重要问题,需要兼顾准确率和效率。通过以下公式可以对给定准确率的情况下预估次数N。其中e是外点率,需要给定,s是每次循环的采样点个数,N是循环个数,p是准确率。
$$
(1-(1-e)^s)^N = 1-p
$$
image-20230704214613232

当然N也可以使用自适应的方法确定。算法流程如下图。N初始化为无穷大,当拟合到一个更好的曲线时,重新估计N的大小(N会越来越小),作为循环的终止条件。内点率外点率可以通过设定一个阈值t来计算。

image-20230704214743517

下图是RANSAC的总结。

image-20230704214934312

补充:指纹配对

RANSAC也可以做指纹的配对,通过拟合两个指纹之间的仿射变换,最后通过投票最大值来判断两个指纹是否来自同一个人

image-20230704215627730

RANSAC
Theme Jasmine by Kent Liao