日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Surf特征提取分析

發布時間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Surf特征提取分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Surf特征提取分析

SurfHessianSIFT
讀“H.Bay, T. Tuytelaars, L. V. Gool, SURF:Speed Up Robust Features[J],ECCV,2006”筆記

SURF:Speed Up Robust Features,加速魯棒特征。

我覺得SURF是SIFT特征的一種近似計算,在相似性能甚至更好性能的同時提高了算法的速度。這些近似體現在

  • 在尺度空間中,使用box filtes與原圖像卷積,而不是使用DoG算子

  • 確定關鍵點方向時,Surf是利用不同方向bin中的haar小波響應的最大值最為方向,而Sift是統計周圍區域像素點的方向直方圖,找出最大方向bin作為主方向,而且還可以有多個方向。

  • 特征描述子,Surf在關鍵點周圍取區域分成44塊小區域,在每個小區域計算采樣點的haar響應,統計對應的四個特征,共64維特征,而Sift在周圍1616的區域劃分成4*4的子區域,每一個子區域提取長度為8的方向直方圖特征,排列起來形成128維特征向量。

為什么速度會提升呢?這里要明白一點,DoG算子分開兩步其實是先高斯平滑再差分。

  • 使用box filters相對于高斯濾波,再輔助以積分圖速度肯定提升不少。

  • Hessian矩陣的計算一般而言還是挺麻煩的,但這里可以使用積分圖計算,無論尺度是多少都可以使用幾個數的加減完成,速度很快。

  • 確定關鍵點方向時使用haar特征同樣可以利用積分圖,簡單快速。

  • 特征描述子使用64維取代128維特征降低了后續處理的數據規模

接下來就來一步步分析surf特征吧

Fast-Hessian Detector 尺度空間生成

這一步其實相當于LoG算子。
在LoG中首先使用高斯平滑,然后對平滑后的圖形進行Laplace獲得二階梯度特征。
而Fast-Hessian Detector則是首先使用box filter濾波,然后使用Hessian矩陣表征二階梯度。

高斯二階梯度到近似的二階梯度算子如下圖


1474701327495.jpg

從左到右分別表示在y方向LoG算子(),xy方向的LoG算子,y方向近似的LoG算子,xy方向近似的LoG算子

Hessian矩陣能夠刻畫二維曲面上點的不同方向變化劇烈程度,這里可以參見角點檢測,只有當Hessian矩陣的兩個特征值均遠大于0時才認為該點是角點。行列式是特征值的乘積。
Hessian矩陣的計算

那么使用上圖的類似算子,就可以表示成

但是近似畢竟是近似,這里近似一點,那里近似一點,累積的方差就大了,所以在計算hessian矩陣行列式時進行了修正

1.2是LoG的尺度,9是box filter的邊長,自己可以算一算
于是

其中D是近似的Hessian矩陣。

這個式子是怎么來的呢?很難理解對不對,我們來推一推,目的是要
,于是

是不是發現問題了,在上面算0.9時我們替換成時仍然成立,所以就得到了計算行列式的近似式。

論文中指出surf初始size是,這么大區域平滑的效果等同于尺度為的高斯平滑。
同樣的surf中也會建塔,但是和sift不同的是,sift在尺度增大的同時,不斷對圖像下采樣,而surf在建塔的時候每層圖像大小不變,只是對模板的尺度不斷增大,相當于一個上采樣的過程。


1474704408299.jpg

論文中第一塔中size分別為,而以后每塔中size邊長差距逐塔翻倍。
如下圖


1474705392249.jpg

size大小和對應LoG尺度可以如下換算

尺度空間生成之后就開始進行定位關鍵點了。

關鍵點定位

這里和LoG,DoG相同,都是在生成尺度空間后,找在三維上找極值點。


1474706156407.jpg

這里和DoG不同的是不用剔除邊緣導致的極值點了,因為Hessian矩陣的行列式就已經考慮到邊緣的問題了,而DoG計算只是把不同方向變化趨勢給出來,后續還需要使用Hessian矩陣的特征值剔除邊緣產生的影響。

在定位關鍵點時,要使用3維線性插值的方法得到亞像素級的坐標位置。

Scale space interpolation is especially important in our case, as the difference in scale between the first layers of every octave is relatively large.

這樣關鍵點也找到了,下一步為了旋轉不變性就該確定關鍵點方向了

關鍵點方向

不像sift中依靠梯度方向直方圖確定主方向,Surf首先將周圍`!$6s$的圓形區域分成6個扇形區間,s是對應的尺度,和size的換算方法,上文給出了。然后在每個扇形區域使用提取x方向和y方向的Haar小波特征(Haar小波的邊長為4s),將該區域每個樣本點這兩個響應的高斯加權和作為該區域的方向,最后掃面了整個圓形區域,選擇最大方向就是該關鍵點的方向。


使用的haar小波算子.jpg


分區域統計方向.jpg

ok,接下來就該描述關鍵點了

surf特征描述子

和sift類似,這時候為了保持旋轉不變性,當然要將關鍵點的方向旋轉一致之后再統計特征。

統計特征時,再該關鍵點周圍選取的區域,劃分成的子區域,在每個子區域內使用x方向,y方向的的haar小波特征算子提取haar小波特征,然后使用提取結果統計四個值作為該子區域的特征,那么一個關鍵點就可以使用16個子區域的特征聯合表示,即64維向量。


子區域特征提取.jpg

部分實驗結果

關鍵點檢測


1474708745838.jpg

匹配結果圖,這兩幅圖中相似的要素其實蠻多的,這使匹配的效果并不理想


1474708128266.jpg

圖像的配準


1474708804017.jpg


1474708821848.jpg


參考文獻
1. tornadomeet,特征點檢測學習_2(surf算法),博客園,2012,8
2. Speeded up robust features(wiki百科)

轉載于:https://www.cnblogs.com/YiXiaoZhou/p/5903690.html

總結

以上是生活随笔為你收集整理的Surf特征提取分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。