計算機視覺基本原理——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
相關文章
相關標籤/搜索