特徵描述子評測

本文分享我關於幾種類型的特徵描述子的性能的研究,本文是對"Comparison offeature descriptors" 的更新,新增了ORB特徵描述子,仍然包含SIFT,還新增測試了新版本的LAZY描述子的性能。


Introduction


爲了測試這些描述子的性能,我寫了專用的測試框架,在這個框架下,我可以輕易地增加一些新的描述子,測試案例並且能夠生成CSV-like格式的報告數據,然後我將其上傳到了google文檔,創建了這些表格。對於每一個描述子,完成了五項特性和一項性能的測試。


  • 旋轉變換:特徵方向不變性
  • 尺度縮放:尺度不變性
  • 模糊測試:特徵描述子對於模糊地魯棒性
  • 光照測試:特徵描述子對於光照的魯棒性
  • 模式檢測測試:這項測試是真實視頻中的目標檢測,與綜合測試不同的是,這項測試給出了局部特徵描述子在實際圖像中的整體穩定性
  • 性能測試:特徵的時間和空間複雜度

所有的特性測試在同樣的方式下進行,通過給定的源圖像,我們生成了綜合的數據:轉換後的圖像特徵匹配點,旋轉算法依賴於某些測試。在旋轉測試的案例中,對源圖像繞中心做了360度的旋轉,對於尺度變換,對於源圖像從0.25到2倍的尺度變換,模糊測試用了高斯模糊,光照測試改變了整幅圖像的亮度,模式檢測測試預設了一些特殊的關鍵點,在非誠複雜和噪聲很明顯的視頻序列下完成。因此,在這些測試中,對於所有的特徵描述子算法得出好的結果是一項非常有挑戰性的任務
所有特性測試的度量標準是原圖像和變換後圖像的正確匹配百分比。因此我們選擇了平面物體,利用單應矩陣估計的方法,可以有效篩選所有匹配中的inliers。本文使用計算機開源視覺庫OpenCV的函數cvFindHomography,這項度量給出了非常好並且穩定的結果.在單應矩陣估計之前,並沒有做匹配對的outliers的檢測,因爲這會出現異常,影響結果。對於描述子的匹配,本文使用了OpenCV中的蠻力匹配方法。

Rotation test




在這項測試中,我得到了完美期待的結果,因爲除了BRIEF,所有的描述子都是旋轉不變的,至於在穩定性上的細微變化,可以很好的被特徵方向計算算法和描述子的本質所解釋。爲什麼描述子的特性是這樣的?它所花費的時間和效率,這是另外一篇文章的主題。稍後呈上。

Scaling test





在尺度變化的測試中,SURF和SIFT描述子向我們展示了很好的穩定性,因爲它們做了在大量的關鍵點的size的計算。其它的描述子用了fixed-size的描述子,你能明白爲什麼它是這樣的。目前,沒有單獨的測試LAZY特徵檢測子,而是用ORB檢測子做測試,但是,正在通過特徵大小的計算考慮輕量特徵檢測子,因爲這是必須考慮的特徵。明顯的是,尺度不變性比精確地方向計算更加重要。

Blur test




在高斯模糊的測試中,我模擬的運動模糊(當攝像機突然移動時會發生的),在這項測試中,所有的描述子都表現出很好的結果,說結果好,我的意思是更大的高斯核大小,會導致更小的正確匹配百分比


Lighting test




在光照變化測試中,圖像的不同僅僅在於整幅圖像的亮度,所有的描述子都表現不錯。主要的原因是所有的描述子都歸一化了,例如描述子向量的模2範數等於1,歸一化讓描述子對於亮度變化具有很好的魯棒性

Pattern detection on real video




在實際視頻中的物體檢測是最複雜的一項任務,由於它背後的情況包括旋轉,尺度和運動模糊。另外,一些物體是暫時的,而且視頻不是高清的。這些條件被計算機視覺和應用的環境所侷限

正如你在圖表裏面所看到的,SIFT和SURF描述子給出了最好的結果,然而它們距離理想情況還很遠,但這已足夠了
糟糕的是,scale-covariant 描述子表現出非常壞的結果,因爲剛開始時圖像時1:1的尺度,在後來的視頻序列中,目標圖像在移動,scale-covariant描述子不能很好的處理這種情況。


Performance summary



這個表格展示了N個特徵的提取時間,Y軸我用了對數尺度,爲了讓其有更好的可讀性對於所有的描述子特徵提取算法而言,特徵提取時間與特徵的個數呈線性關係。局部的波動很可能是由於某些特徵向量的resizing或者是L2cache沒有命中。測試環境爲Mac Book Pro 2.2 with Core 2 Duo 2.13 Ghz.

發佈了21 篇原創文章 · 獲贊 49 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章