常用角點檢測與角點匹配方法比較

2021-07-15 19:20:52 字數 1867 閱讀 4210

最近這些日子,我在中科院實習了一段時間,收穫了很多寶貴的知識和經驗,也認識了一些朋友,在這裡感謝老師們對我的指導和建議。作為一名影象處理專業的數學geek,我很喜歡做關於影象方面的演算法研究,在這裡把近幾年的角點特徵匹配方法做個總結,和大家分享一下。

影象匹配能夠應用的場合非常多,如目標跟蹤,檢測,識別,影象拼接等,而影象匹配最核心的技術就要屬角點匹配了,所謂角點匹配是指尋找兩幅影象之間的特徵畫素點的對應關係,從而確定兩幅影象的位置關係。

角點匹配可以分為以下四個步驟:

1.提取檢測子:在兩張待匹配的影象中尋找那些最容易識別的畫素點(角點),比如紋理豐富的物體邊緣點等。

2.提取描述子:對於檢測出的角點,用一些數學上的特徵對其進行描述,如梯度直方圖,區域性隨機二值特徵等。

檢測子和描述子的常用提取方法有:sift, harris, surf, fast, agast, brisk, freak, brisk,orb等。

3.匹配:通過各個角點的描述子來判斷它們在兩張影象中的對應關係。常用方法如 flann

4.去外點:去除錯誤匹配的外點,保留正確的內點。常用方法有ransac, gtm。

我對上述這些常用的檢測子和描述子的效能和速度做了乙個測試,以找出其中價效比最好的組合(不考慮後兩步)

上面兩幅圖是對上述部分檢測子與描述子進行測試的結果。

其中圖一和圖二的x座標表示不同的檢測子與描述子的組合,從1到30分別對應

(surf、agast、brisk、fast、sift、orb)檢測子與 (brisk、agast、surf、sift、orb)描述子的線性組合,如第四組表示surf檢測子+sift描述子的組合。

圖一和圖二的y座標表示一系列測試組,每組由兩張圖組成,這些都是質量較低的衛星地圖,約2000*2000畫素,每組的兩張是由不同衛星對地面上同一地區進行拍攝的。它們之間的關係可能包含旋轉,縮放,仿射變換,亮度變化,模糊,噪音等。從1到11的測試組大概對應著以下變換關係:

1.強烈亮度變化

2.旋轉

3.仿射變換+尺度變化+旋轉

4.仿射變換+亮度變化+旋轉

5.仿射變換+噪音

6.模糊+亮度變化

7.旋轉+噪音

8.旋轉+尺度變化

9.亮度變化+旋轉+模糊+噪音

10. 亮度變化+旋轉+尺度變化

11. 亮度變化+旋轉+尺度變化+強烈噪音。

圖一的z座標表示成功匹配的畫素對的個數。圖二的z座標表示所需計算時間。

從測試結果來看,orb檢測子與surf描述子配合的效果是最好的,不過速度也是最慢的。古老的sift和surf依然好用,速度也還是那麼不給力。在不考慮旋轉和仿射變換的情況下,fast是很不錯的選擇,在小幅旋轉(20度內)的情況下,fast也還是有一定的容錯能力的。在旋轉變化和尺度變化方面,各家武功相差不多,雖然在理論上sift支援旋轉變化,不過測試中它並沒有表現出明顯的優勢。在噪音方面,sift和orb明顯強於其它演算法;在亮度變化和仿射變換上,orb的魯棒性是最好的;綜合比較,orb的價效比在此次華山論劍中略勝一籌。

下面兩張圖是上面11組的均值,從平均值來看,orb也是最好的

華山論劍 常用角點檢測與角點匹配方法比較

最近這些日子,我在中科院實習了一段時間,收穫了很多寶貴的知識和經驗,也認識了一些朋友,在這裡感謝老師們對我的指導和建議。作為一名影象處理專業的數學geek,我很喜歡做關於影象方面的演算法研究,在這裡把近幾年的角點特徵匹配方法做個總結,和大家分享一下。影象匹配能夠應用的場合非常多,如目標跟蹤,檢測,識...

角點檢測方法

看了將近十來天的opencv了,無論是從官方文件,還是learning opencv,還是看各論壇,心裡總有種感覺是 無法把自己看的知識聯絡在一起,感覺都是各有特色功能的函式,可是這些各有特色功能的函式怎麼組合在一起,實現什麼樣的功能就不得而知了。下面從角點的角度來講講吧 要說的是有些並非是本人所寫...

Harris角點檢測 sift描述匹配

最近用到 harris檢測影象中邊緣處的特徵點,並且需要兩張圖特徵點匹配起來。harris只是乙個角點檢測的演算法,最終只得到特徵點座標,想要匹配需要描述,而harris是單尺度的,自己寫描述函式又有些麻煩。找到matlab和opencv都有整合的函式 matlab版本通過調節引數,效果還可以,存在...