不管是我在之前的博文中提到的SIFT、ORB等算法,其實真正匹配的結果都不會特別好,一旦視角上的變化比較大或者出現之前圖像中沒有出現的區域,就很容易產生誤匹配。但是在實際應用中這些誤匹配的點並沒有對最終的匹配結果造成很大的影響,這是因爲一般在進行匹配以後,都進行了去除誤匹配點對的操作,這篇博文主要介紹的就是一種比較有名的RANSAC算法。
那麼,首先來看一下這個算法。
一、RANSAC算法介紹
RANSAC(Random Sample Consensus)算法是一種簡單且有效的去除噪聲影響,估計模型的一種方法。與普通的去噪算法不同,RANSAC算法是使用儘可能少的點來估計模型參數,然後儘可能的擴大得到的模型參數的影響範圍。
RANSAC算法的具體描述是:給定
對下面的操作執行
(1)從
(2)用這
(3)對
迭代
因爲在實際應用中
則有
這裏
二、單應性矩陣介紹
通過上面我們瞭解到了RANSAC算法,那麼如何應用RANSAC算法去除誤配點呢。首先,我們來介紹一下單應性矩陣。
單應性矩陣描述的是針對同一事物,在不同的視角下拍攝的兩幅圖像之間的關係。假設這兩幅圖像之間是透視變換,則單應性矩陣也就是透視變換矩陣
則有
因此要恢復出
那麼就可以每次從所有的匹配點中選出4對,計算單應性矩陣
三、基礎矩陣介紹
對於基礎矩陣的介紹在我之前的博文裏已經介紹過 三維重建(一)外極幾何,基礎矩陣及求解,使用RANSAC方法也與上面單應性矩陣的方法相同。
這裏需要注意的是,使用單應性矩陣的方法去除誤匹配點對更加嚴格,也就是說得到的結果更加精確,但是相對於基礎矩陣的方法來講,最後得到的匹配點數目也更少。