reference:
surf 演算法,全稱是 speeded-up robust features。該運算元在保持 sift 運算元優良效能特點的基礎上,同時解決了 sift 計算複雜度高、耗時長的缺點,對興趣點提取及其特徵向量描述方面進行了改進,且計算速度得到提高。
具體步驟為:
1、構造hessian矩陣,計算特徵值α
surf構造的金字塔影象與sift有很大不同,就是因為這些不同才加快了其檢測的速度。sift採用的是dog影象,而surf採用的是hessian矩陣行列式近似值影象。首先是影象中某個畫素點的hessian矩陣:
其中,lxx、lxy、lyy為高斯濾波後影象g(σ)在各個方向的二階導數。
二階導數計算方法為:d2l(x)/dx2=(l(x+1)-l(x))-(l(x)-l(x-1))=-2*l(x)+l(x+1)+l(x-1),其中l(x)=g(h(x))(h(x)為原始影象的灰度值,l(x)是將h(x)高斯濾波處理後的影象)。
為了找出影象中的特徵點,需要對原圖進行變換,在sift演算法中,實在dog影象中進行,那麼,在surf演算法中,該如何進行呢?該變換圖就是原圖每個畫素的hessian矩陣行列式的近似值構成的。公式為
其中,0.9為原文作者給出的乙個經驗值。
由於求hessian時要先高斯平滑,然後求二階導數,這在離散的畫素點是用模板卷積形成的,這2種操作合在一起用乙個模板代替就可以了,比如說y方向上的模板如下,以9*9的模板為例:
圖中灰色畫素代表0;上圖中1為y方向的先高斯濾波然後二階求導的處理,近似處理為圖3,圖2位x和y方向上的先高斯濾波然後二階混合偏導,近似為圖4。
有了這個近似的模板以後,計算高斯濾波和二階導數兩個步驟就可以乙個步驟完成,同時,為了提高計算效率,還引入了積分影象的概念,提高了速度。
下面就來介紹一下積分影象的知識:
SURF檢測演算法
surf 演算法,全稱是 speeded up robust features,是針對sift演算法的基礎上進行的改進。最核心的內容是確定hession矩陣,hession矩陣其實就是影象中畫素座標x y對高斯濾波函式求解得到的偏導矩陣。a.影象中某個畫素點hessian矩陣 即每乙個畫素點都可以求...
Surf特徵檢測
原文 對於其原理我還沒看過,只是略知道是特徵點檢測的,最近同學用到需要將檢測到的匹配的特徵點輸出來,這才看了一下函式的介面,如果以後用到了原理,再去研究和學習一下,這裡對 進行一下備份 cpp view plain copy include include include opencv2 core ...
特徵檢測 SURF演算法原始碼收集
前言 1 googlecode 原始碼位址1 2 googlecode 原始碼位址2 3 c 版原始碼 4 matlab版原始碼 5 opencv版原始碼 英文注釋 6 opencv版原始碼 中文注釋 1 surf wikipedia 2 surf原 翻譯 pdf 3 影象區域性不變性特徵與描述 p...