计算机视觉基本原理——RANSAC

一 前言

对于上一篇文章——一分钟详解「本质矩阵」推导过程中,如何稳健地估计本质矩阵或者基本矩阵呢?正是这篇文章重点介绍的内容。函数

基本矩阵求解方法主要有:测试

  1. 直接线性变换法
  • 8点法
  • 最小二乘法
  1. 基于RANSAC的鲁棒方法。

先简单介绍一下直接线性变换法: .net

注: 三个红线标注的三个等式等价。

在上述分析过程当中,若是n>=8时,最小二乘法求解是不是最优估计呢?3d

接下来,咱们重点探讨一下这个问题。cdn

二 稳健估计

2.1 稳健的定义

稳健(robust):对数据噪声的敏感性。 blog

对于上述采样,若是出现外点(距离正确值较远),将会影响实际估计效果。get

2.2 RANSAC——随机一致性采样

RANSAC主要解决样本中的外点问题,最多可处理50%的外点状况。it

基本思想: RANSAC经过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:io

  1. 有一个模型适用于假设的局内点,即全部的未知参数都能从假设的局内点计算得出。
  2. 用1中获得的模型去测试全部的其它数据,若是某个点适用于估计的模型,认为它也是局内点。
  3. 若是有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
  4. 而后,用全部假设的局内点去从新估计模型,由于它仅仅被初始的假设局内点估计过。
  5. 最后,经过估计局内点与模型的错误率来评估模型。

这个过程被重复执行固定的次数,每次产生的模型要么由于局内点太少而被舍弃,要么由于它比现有的模型更好而被选用。class

2.png

对上述步骤,进行简单总结以下:

3.png

举个例子:使用RANSAC——拟合直线

4.png

5.png

6.png

7.png

8.png

9.png

2.3 关于OpenCV中使用到RANSAC的相关函数

  1. solvePnPRansac
  2. findFundamentalMat
相关文章
相关标签/搜索