SURF 其實就是加速版的 SIFT,簡單說明 SURF 在原本的 SIFT 架構下,作了哪些改進。

SIFT 在 scale-space 的搜尋上,是採用 Difference of Gaussian 來代替 Laplacian of Gaussian, SURF 則採用 Box Filter 來取代 LoG,優點是計算速度更快。

在 Orientation 的計算上,SURF 採用 wavelet responses 針對周圍的鄰居來作計算,計算的結果會有如下圖之類的分佈,而 dominant orientation 的決定則將以 60° 為單位,分成六種方向,看哪個區域所包含的 wavelet responses 最多。
有許多的應用,其實並不需要 rotation invariance,所以也不需要找尋 orientation,所以可以把這個步驟省略,稱為 Upright-SURF 或 U-SURF。
在 OpenCV 中,可以藉由設定 flag - upright 為 0 or 1 來決定是否要計算 dominant orientation。


在 feature description,SURF 的方式是計算水平軸及垂直軸為方向的 Wavelet responses,先將附近的鄰居分成 4x4 個區域,並在每個區域計算其水平軸及垂直軸的 Wavelet responses,如 v = (Σdx, Σdy, Σ|dx|, Σ|dy|),這 64 維度的向量就是該 feature 的 description。

SURF 在 feature description 上可以擴展為 128 維度,方法是將 dx 及 |dx| 的總和,依 dy 是否小於 0 及 dy 及 |dy| 的總和,依 dx 是否小於 0 分別作計算。
在 OpenCV 中,可以藉由設定 flag - extended 為 0 or 1 來決定 description 為 64 或 128 維度。

SURF 另一個重要的改進是採用 Laplacian 的正負號,預先判斷是否要作 feature matching,也就是說兩個 feature 的 Laplacian 正、負號相同,代表彼此的對比度也相同,才會進行進一步的 matching,如下圖所示:


簡單來說,SURF 用了很多方法來加速,根據分析, SURF 的速度為 SIFT 的 3倍,而 SURF 善於處理模糊或旋轉的影像,但不擅長處理移動場景或有亮度變化的影像。




Reference

Introduction to SURF (Speeded-Up Robust Features)

文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
創作者介紹

拾人牙慧點滴

silverwind1982 發表在 痞客邦 PIXNET 留言(0) 人氣()