iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

我的影像視覺定位學習筆記系列 第 14

day14-RANSAC在求解Fundamental的應用

  • 分享至 

  • xImage
  •  

在求解Fundamental的時候,Opencv有提供許多種求解方式,這邊舉八點法為例子。
當我們知道八個點可以求取一種基礎矩陣的時候,如果我的匹配剛好只有八個點,
那很好這組基礎矩陣很有可能就是你要的解。

然而在實際應用上我們很難確定哪八個點的對應關係是很美好的,
所以我們會匹配很多,裡面有正確的匹配也會有錯誤的匹配,
而我們透過一些演算機制,來從這些匹配中篩選。

而RANSAC算是一種學習的技巧,透過觀測數據的隨機樣本來估計模型,
而我們這邊的模型就是Fundamental,當然你如果有其他想要求解的也可以使用RANSAC的技巧,
而RANSAC具體流程大致如下

  1. k=∞ 迭代次數=0
  2. 當k>迭代次數 重複
    1. 隨機選取一些原始數據,假設為inliers(內群子集)
    2. 將這些inliers建立初步模型 (Fundamental)
    3. 開始搜尋其他沒有被選取的點,並透過步驟2的模型來計算是否符合該模型,
      當然因為是初步估計的觀測點很有可能因為雜訊等等的跟這個模型有一些誤差,
      所以我們需要一個ransacReprojThreshold,來避免初步模型太敏感,
      而篩選掉了一些本來也是inlier的觀測點。
    4. 最後給這個初步模型一個評分(inlier/allpoints)母體中有多少個內群點。
      並更新最優評分連帶更新終止條件
      迭代次數+1
      3.結束

最後重複步驟直到迭代次數大於k。

而k這個數我們要怎麼計算呢?
假設RANSAC 需要做k次,選擇8個觀測點來計算基礎矩陣,則
每次都有任意一個以上選擇的觀測點是outlier的機率為https://chart.googleapis.com/chart?cht=tx&chl=(1-w%5E8)%5Ek

    w=inlier/allpoints
    這組模型是錯的=任意一個以上選擇的觀測點是outlier=任一筆不是inlier

所以我們可以假設我們的RANSAC的成功機率為P,就會等於其8個觀測點的資料皆為inlier的機率為
https://chart.googleapis.com/chart?cht=tx&chl=P%3D1-(1-w%5E8)%5Ek

整理一下把K提出來
=> K = log(1 - P) / loghttps://chart.googleapis.com/chart?cht=tx&chl=(1-w%5E8)

也就是說,利用上式,我可以在求出初步模型之後,算出初步模型的評分(即可得知w的機率為多少),並依據我們要求計算出模型是正確的機率為何,依此來計算至少計算的迭代次數才可以使模型的可信度confidence,P達到我們的要求。


上一篇
day13-epipolar geometry對極幾何
下一篇
day15-Camera calibration With OpenCV相機校正
系列文
我的影像視覺定位學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言