計算機視覺基本原理——RANSAC

3D視覺工坊發表於2018-09-27

一 前言

對於上一篇文章——一分鐘詳解「本質矩陣」推導過程中,如何穩健地估計本質矩陣或者基本矩陣呢?正是這篇文章重點介紹的內容。

基本矩陣求解方法主要有:

  1. 直接線性變換法
  • 8點法
  • 最小二乘法
  1. 基於RANSAC的魯棒方法。

先簡單介紹一下直接線性變換法:

計算機視覺基本原理——RANSAC

計算機視覺基本原理——RANSAC
注: 三個紅線標註的三個等式等價。

在上述分析過程中,如果n>=8時,最小二乘法求解是否是最優估計呢?

接下來,我們重點探討一下這個問題。

二 穩健估計

2.1 穩健的定義

穩健(robust):對資料噪聲的敏感性。

計算機視覺基本原理——RANSAC

對於上述取樣,如果出現外點(距離正確值較遠),將會影響實際估計效果。

2.2 RANSAC——隨機一致性取樣

RANSAC主要解決樣本中的外點問題,最多可處理50%的外點情況。

基本思想: RANSAC通過反覆選擇資料中的一組隨機子集來達成目標。被選取的子集被假設為局內點,並用下述方法進行驗證:

  1. 有一個模型適用於假設的局內點,即所有的未知引數都能從假設的局內點計算得出。
  2. 用1中得到的模型去測試所有的其它資料,如果某個點適用於估計的模型,認為它也是局內點。
  3. 如果有足夠多的點被歸類為假設的局內點,那麼估計的模型就足夠合理。
  4. 然後,用所有假設的局內點去重新估計模型,因為它僅僅被初始的假設局內點估計過。
  5. 最後,通過估計局內點與模型的錯誤率來評估模型。

這個過程被重複執行固定的次數,每次產生的模型要麼因為局內點太少而被捨棄,要麼因為它比現有的模型更好而被選用。

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
計算機視覺基本原理——RANSAC

相關文章