主頁 >  其他 > Opencv3中SURF演算法學習

Opencv3中SURF演算法學習

2021-07-23 06:30:08 其他

目錄

哈爾特征harr

積分圖

AdaBoost級聯分類器

SURF原理

(1)構建Hessian矩陣構造高斯金字塔尺度空間

黑塞矩陣

影像金字塔

高斯金字塔

DOG金字塔

尺度空間

(2)利用非極大值抑制初步確定特征點

非極大值抑制

(3)精確定位極值點

三維線性插值法

(4)選取特征點的主方向

(5)構造surf特征點描述算子

(6)特征點匹配



流程圖:

下載鏈接:https://download.csdn.net/download/qq_46418503/20416054


SURF演算法:SURF(加速版的具有魯棒性的特征),SURF是尺度不變特征變換演算法(SIFT演算法)的加速版,SURF最大的特征在于采用了harr特征以及積分影像的概念,


哈爾特征harr

Haar(哈爾)特征分為三類:邊緣特征、線性特征、中心特征和對角線特征,組合成特征模板,特征模板內有白色和黑色兩種矩形,并定義該模板的特征值為白色矩形像素和減去黑色矩形像素和,Haar特征值反映了影像的灰度變化情況,例如:臉部的一些特征能由矩形特征簡單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側比鼻梁顏色要深,嘴巴比周圍顏色要深等,但矩形特征只對一些簡單的圖形結構,如邊緣、線段較敏感,所以只能描述特定走向(水平、垂直、對角)的結構,

對于圖中的A, B和D這類特征,特征數值計算公式為:v=Σ白-Σ黑,而對于C來說,計算公式如下:v=Σ白-2*Σ黑;之所以將黑色區域像素和乘以2,是為了使兩種矩形區域中像素數目一致,我們希望當把矩形放到人臉區域計算出來的特征值和放到非人臉區域計算出來的特征值差別越大越好,這樣就可以用來區分人臉和非人臉,

通過改變特征模板的大小和位置,可在影像子視窗中窮舉出大量的特征,上圖的特征模板稱為“特征原型”;特征原型在影像子視窗中擴展(平移伸縮)得到的特征稱為“矩形特征”;矩形特征的值稱為“特征值”,

常用的矩形特征有三種:兩矩形特征、三矩形特征、四矩形特征,如圖:

由圖表可以看出,兩矩形特征反映的是邊緣特征,三矩形特征反映的是線性特征、四矩形特征反映的是特定方向特征,

上圖中兩個矩形特征,表示出人臉的某些特征,比如中間一幅表示眼睛區域的顏色比臉頰區域的顏色深,右邊一幅表示鼻梁兩側比鼻梁的顏色要深,同樣,其他目標,如眼睛等,也可以用一些矩形特征來表示,使用特征比單純地使用像素點具有很大的優越性,并且速度更快,

子視窗中的特征個數即為特征矩形的個數,訓練時,將每一個特征在訓練影像子視窗中進行滑動計算,獲取各個位置的各類矩形特征,在子視窗中位于不同位置的同一型別矩形特征,屬于不同的特征,可以證明,在確定了特征的形式之后,矩形特征的數量只與子視窗的大小有關,在24×24的檢測視窗中,矩形特征的數量約為160,000個,特征模板可以在子視窗內以“任意”尺寸“任意”放置,每一種形態稱為一個特征,找出子視窗所有特征,是進行弱分類訓練的基礎,

子視窗內的條件矩形,矩形特征個數的計算:

如圖所示的一個m*m大小的子視窗,可以計算在這么大的子視窗記憶體在多少個矩形特征,

以 m×m 像素解析度的檢測器為例,其內部存在的滿足特定條件的所有矩形的總數可以這樣計算:
對于 m×m 子視窗,我們只需要確定了矩形左上頂點A(x1,y1)和右下頂點B(x2,63) ,即可以確定一個矩形;如果這個矩形還必須滿足下面兩個條件(稱為(s, t)條件,滿足(s, t)條件的矩形稱為條件矩形):

1) x 方向邊長必須能被自然數s 整除(能均等分成s 段);
2) y 方向邊長必須能被自然數t 整除(能均等分成t 段);

于是這個矩形的最小尺寸為s×t 或t×s, 最大尺寸為[m/s]·s×[m/t]·t 或[m/t]·t×[m/s]·s;其中[ ]為取整運算子//此處沒有太懂,有懂兄臺的希望可以留言告訴我下是什么意思;個人理解的s是分出來的最小矩形的其一邊長為s,而不是分為s段;

由上分析可知,在m×m 子視窗中,滿足(s, t)條件的所有矩形的數量為:

實際上,(s, t)條件描述了矩形特征的特征,下面列出了不同矩形特征對應的(s, t)條件:

下面以 24×24 子視窗為例,具體計算其特征總數量:

下面列出了,在不同子視窗大小內,特征的總數量:

矩形特征可位于影像任意位置,大小也可以任意改變,所以矩形特征值是矩形模版類別、矩形位置和矩形大小這三個因素的函式,故類別、大小和位置的變化,使得很小的檢測視窗含有非常多的矩形特征,如:在24*24像素大小的檢測視窗內矩形特征數量可以達到16萬個,這樣就有兩個問題需要解決了:

(1)如何快速計算那么多的特征?---積分圖大顯神通;

(2)哪些矩形特征才是對分類器分類最有效的?---如通過AdaBoost演算法來訓練,


積分圖

積分圖就是只遍歷一次影像就可以求出影像中所有區域像素和的快速演算法,大大的提高了影像特征值計算的效率,

積分圖主要的思想是將影像從起點開始到各個點所形成的矩形區域像素之和作為一個陣列的元素保存在記憶體中,當要計算某個區域的像素和時可以直接索引陣列的元素,不用重新計算這個區域的像素和,從而加快了計算(這有個相應的稱呼,叫做動態規劃演算法),積分圖能夠在多種尺度下,使用相同的時間(常數時間)來計算不同的特征,因此大大提高了檢測速度,

積分圖是一種能夠描述全域資訊的矩陣表示方法,積分圖的構造方式是,位置(A)處的值是原影像在位置(A)左上角方向所有像素的和;

而Haar-like特征值無非就是兩個矩陣像素和的差,同樣可以在常數時間內完成,

一個區域的像素值的和,可以由該區域的端點的積分圖來計算,由前面特征模板的特征值的定義可以推出,矩形特征的特征值可以由特征端點的積分圖計算出來,以A矩形特征為例,如下圖,使用積分圖計算其特征值:

該矩形特征的特征值,由定義,為區域A的像素值減去區域B的像素值,

區域A的像素值:ii(5)+ii(1)-ii(2)-ii(4) ········(a)

區域B的像素值:ii(6)+ii(2)-ii(5)-ii(3) ········(b)

所以:該矩形特征的特征值(a)-(b);

所以,矩形特征的特征值,只與特征矩形的端點的積分圖有關,而與影像的坐標無關,通過計算特征矩形的端點的積分圖,再進行簡單的加減運算,就可以得到特征值,正因為如此,特征的計算速度大大提高,也提高了目標的檢測速度,


AdaBoost級聯分類器

級聯分類模型是樹狀結構可以用下圖表示:

其中每一個stage都代表一級強分類器,當檢測視窗通過所有的強分類器時才被認為是正樣本,否則拒絕,實際上,不僅強分類器是樹狀結構,強分類器中的每一個弱分類器也是樹狀結構,由于每一個強分類器對負樣本的判別準確度非常高,所以一旦發現檢測到的目標位負樣本,就不在繼續呼叫下面的強分類器,減少了很多的檢測時間,因為一幅影像中待檢測的區域很多都是負樣本,這樣由級聯分類器在分類器的初期就拋棄了很多負樣本的復雜檢測,所以級聯分類器的速度是非常快的;只有正樣本才會送到下一個強分類器進行再次檢驗,這樣就保證了最后輸出的正樣本的偽正(false positive)的可能性非常低,

級聯分類器是如何訓練的呢?首先需要訓練出每一個弱分類器,然后把每個弱分類器按照一定的組合策略,得到一個強分類器,我們訓練出多個強分類器,然后按照級聯的方式把它們組合在一塊,就會得到我們最終想要的Haar分類器,

一個弱分類器就是一個基本和上圖類似的決策樹,最基本的弱分類器只包含一個Haar-like特征,也就是它的決策樹只有一層,被稱為樹樁(stump),

以20*20影像為例,78,460個特征,如果直接利用AdaBoost訓練,那么作業量是極其極其巨大的,

所以必須有個篩選的程序,篩選出T個優秀的特征值(即最優弱分類器),然后把這個T個最優弱分類器傳給AdaBoost進行訓練,

弱分類器訓練:

1、對于每個特征 ,計算所有訓練樣本的特征值,并將其排序:

2、掃描一遍排好序的特征值,對排好序的表中的每個元素,計算下面四個值:

計算全部正例的權重和 ;

計算全部負例的權重和 ;

計算該元素前之前的正例的權重和 ;

計算該元素前之前的負例的權重和 ;

3、選取當前元素的特征值 F_{kj}和它前面的一個特征值Fk,j?1之間的數作為閾值,所得到的弱分類器就在當前元素處把樣本分開 —— 也就是說這個閾值對應的弱分類器將當前元素前的所有元素分為人臉(或非人臉),而把當前元素后(含)的所有元素分為非人臉(或人臉),該閾值的分類誤差為:

e=min(S++(T--S-),S-+(T+-S+))

于是,通過把這個排序表從頭到尾掃描一遍就可以為弱分類器選擇使分類誤差最小的閾值(最優閾值),也就是選取了一個最佳弱分類器,

強分類器訓練:

注意,這里所說的T=200個弱分類器,指的是非級聯的強分類器,若果是用級聯的強分類器,則每個強分類器的弱分類器的個數會相對較少,

一般學術界所說的級聯分類器,都是指的是級聯強分類器,一般情況有10個左右的強分類器,每個強分類有10-20個弱分類器,當然每一層的強分類器中弱分類器的個數可以不相等,可以根據需要在前面的層少放一些弱分類器,后面的層次逐漸的增加弱分類器的個數,


SURF原理


(1)構建Hessian矩陣構造高斯金字塔尺度空間


黑塞矩陣

黑塞矩陣(Hessian Matrix)是一個多元函式的二階偏導數構成的方陣;


SIFT采用的是DoG影像,而SURF采用的是Hessian矩陣(SURF演算法核心)行列式近似值影像,在數學中,Hessian矩陣是一個自變數為向量的實值函式的二階偏導陣列成的方塊矩陣,即每一個像素點都可以求出一個2x2的Hessian矩陣,可計算出其行列式detH,可以利用行列式取值正負來判別該點是或不是極值點來將所有點分類,在SURF演算法中,選用二階標準高斯函式作為濾波器,通過特定核間的卷積計算二階偏導數,從而計算出Hessian矩陣但是由于特征點需要具備尺度無關性,所以在進行Hessian矩陣構造前,需要對其進行高斯濾波(由于高斯核服從正態分布,所以為了提高運算速度,SURF采用了盒式濾波器近似代替高斯濾波器提高運算速度),即與以方差為自變數的高斯函式的二階導數進行卷積,通過這種方法可以為影像中每個像素計算出其H的行列式的決定值,并用這個值來判別特征點,


影像金字塔

影像金字塔是一種以多解析度來解釋影像的結構,通過對原始影像進行多尺度像素采樣的方式,生成N個不同解析度的影像,把具有最高級別解析度的影像放在底部,以金字塔形狀排列,往上是一系列像素(尺寸)逐漸降低的影像,一直到金字塔的頂部只包含一個像素點的影像,這就構成了傳統意義上的影像金字塔,

獲得影像金字塔一般包括二個步驟:1. 利用低通濾波器平滑影像 ;2. 對平滑影像進行抽樣(采樣),有兩種采樣方式——上采樣(解析度逐級升高)和下采樣(解析度逐級降低)


高斯金字塔

高斯金字塔式在Sift算子中提出來的概念,首先高斯金字塔并不是一個金字塔,而是有很多組(Octave)金字塔構成,并且每組金字塔都包含若干層(Interval),

  高斯金字塔構建程序:

  1. 先將原影像擴大一倍之后作為高斯金字塔的第1組第1層,將第1組第1層影像經高斯卷積(其實就是高斯平滑或稱高斯濾波)之后作為第1組金字塔的第2層,高斯卷積函式為:

  對于引數σ,在Sift算子中取的是固定值1.6,

  2. 將σ乘以一個比例系數k,等到一個新的平滑因子σ=k*σ,用它來平滑第1組第2層影像,結果影像作為第3層,

  3. 如此這般重復,最后得到L層影像,在同一組中,每一層影像的尺寸都是一樣的,只是平滑系數不一樣,它們對應的平滑系數分別為:0,σ,kσ,k^2σ,k^3σ……k^(L-2)σ,

  4. 將第1組倒數第三層影像作比例因子為2的降采樣,得到的影像作為第2組的第1層,然后對第2組的第1層影像做平滑因子為σ的高斯平滑,得到第2組的第2層,就像步驟2中一樣,如此得到第2組的L層影像,同組內它們的尺寸是一樣的,對應的平滑系數分別為:0,σ,kσ,k^2σ,k^3σ……k^(L-2)σ,但是在尺寸方面第2組是第1組影像的一半,

這樣反復執行,就可以得到一共O組,每組L層,共計O*L個影像,這些影像一起就構成了高斯金字塔,結構如下:

  在同一組內,不同層影像的尺寸是一樣的,后一層影像的高斯平滑因子σ是前一層影像平滑因子的k倍;在不同組內,后一組第一個影像是前一組倒數第三個影像的二分之一采樣,影像大小是前一組的一半;


DOG金字塔

差分金字塔,DOG(Difference of Gaussian)金字塔是在高斯金字塔的基礎上構建起來的,其實生成高斯金字塔的目的就是為了構建DOG金字塔,

  DOG金字塔的第1組第1層是由高斯金字塔的第1組第2層減第1組第1層得到的,以此類推,逐組逐層生成每一個差分影像,所有差分影像構成差分金字塔,概括為DOG金字塔的第o組第l層影像是有高斯金字塔的第o組第l+1層減第o組第l層得到的,

  DOG金字塔的構建可以用下圖描述:

  每一組在層數上,DOG金字塔比高斯金字塔少一層,后續Sift特征點的提取都是在DOG金字塔上進行的,


尺度空間

影像的尺度空間解決的問題是如何對影像在所有尺度下描述的問題,在高斯金字塔中一共生成O組L層不同尺度的影像,這兩個量合起來(O,L)就構成了高斯金字塔的尺度空間,也就是說以高斯金字塔的組O作為二維坐標系的一個坐標,不同層L作為另一個坐標,則給定的一組坐標(O,L)就可以唯一確定高斯金字塔中的一幅影像,

  尺度空間的形象表述:


  上圖中尺度空間中k前的系數n表示的是第一組影像尺寸是當前組影像尺寸的n倍,


上面說這么多,只是得到了一張近似hessian的行列式圖,類似SIFT中的DoG圖,但是在金字塔影像中分為很多層, 每一層叫做一個octave,每一個octave中又有幾張尺度不同的圖片,在SIFT演算法中,同一個octave層中的圖片尺寸(大小)相同,但是尺度不同(模糊程度)不同,而不同的octave層中的圖片尺寸也不相同,因為它是由上一層圖片將采樣得到的,在進行高斯模糊時,SIFT的高斯模板大小是始終不變的,只是在不同的octave之間改變圖片的大小,而在SURF中,圖片的大小是一直不變的,不同octave層的待檢測圖片是改變高斯模糊尺寸大小得到的,當然,同一個octave中不同圖片用到的高斯模板尺寸也不同,演算法允許尺度空間多層影像同時被處理,不需要對影像進行二次抽樣,從而提高演算法性能,


(2)利用非極大值抑制初步確定特征點


非極大值抑制

非極大值抑制,簡稱為NMS演算法,其思想是搜素區域最大值,抑制極大值,NMS演算法在不同應用中的具體實作不太一樣,但思想是一樣的,非極大值抑制,在計算機視覺任務中得到了廣泛的應用,例如邊緣檢測、人臉檢測、目標檢測

以目標檢測為例:目標檢測的程序中在同一目標的位置上會產生大量的候選框,這些候選框相互之間可能會有重疊,此時我們需要利用非極大值抑制找到最佳的目標邊界框,消除冗余的邊界框,Demo如下圖:

左圖是人臉檢測的候選框結果,每個邊界框有一個置信度得分(confidence score),如果不使用非極大值抑制,就會有多個候選框出現,右圖是使用非極大值抑制之后的結果,符合我們人臉檢測的預期結果,

如何使用非極大值

前提:目標邊界框串列及其對應的置信度得分串列,設定閾值,閾值用來洗掉重疊較大的邊界框,
IoU:intersection-over-union,即兩個邊界框的交集部分除以它們的并集,

非極大值抑制的流程如下:

  • 根據置信度得分進行排序

  • 選擇置信度最高的比邊界框添加到最終輸出串列中,將其從邊界框串列中洗掉

  • 計算所有邊界框的面積

  • 計算置信度最高的邊界框與其它候選框的IoU,

  • 洗掉IoU大于閾值的邊界框

  • 重復上述程序,直至邊界框串列為空,



此步驟和SIFT類似,將經過hessian矩陣處理過的每個像素點與其三維鄰域的26個點進行大小比較,如果它是這26個點中的最大值或者最小值,則保留下來,當作初步的特征點,檢測程序中使用與該尺度層影像決議度相對應大小的濾波器進行檢測,


(3)精確定位極值點


這里也和SIFT演算法中類似,采用三維線性插值法得到亞像素級的特征點,同時也去掉那些值小于一定閾值的點,增加極值使檢測到的特征點數量減少,最終只有幾個特征最強點會被檢測出來


三維線性插值法

內插是數學領域數值分析中的通過已知的離散資料求未知資料的程序或方法,

根據若干離散的資料資料,得到一個連續的函式(也就是曲線)或者更加密集的離散方程與已知資料相吻合,這個程序叫做擬合,內插是曲線必須通過已知點的擬合,


1.線性插值

已知坐標 (x0, y0) 與 (x1, y1),要得到 [x0, x1] 區間內某一位置 x 在直線上的值,

由于 x 值已知,所以可以從公式得到 y 的值

已知 y 求 x 的程序與以上程序相同,只是 x 與 y 要進行交換,

例如,

原來的數值序列:0,10,20,30,40
線性插值一次為:0,5,10,15,20,25,30,35,40
即認為其變化(增減)是線形的,可以在坐標圖上畫出一條直線 ,

線性插值經常用于補充表格中的間隔部分,

兩值之間的線性插值基本運算在計算機圖形學中的應用非常普遍,以至于在計算機圖形學領域的行話中人們將它稱為 lerp,所有當今計算機圖形處理器的硬體中都集成了線性插值運算,并且經常用來組成更為復雜的運算:例如,可以通過三步線性插值完成一次雙線性插值運算,由于這種運算成本較低,所以對于沒有足夠數量條目的光滑函式來說,它是實作精確快速查找表的一種非常好的方法,

在一些要求較高的場合,線性插值經常無法滿足要求,在這種場合,可以使用多項式插值或者樣條插值來代替,

線性插值可以擴展到有兩個變數的函式的雙線性插值,

內插是數學領域數值分析中的通過已知的離散資料求未知資料的程序或方法,

根據若干離散的資料資料,得到一個連續的函式(也就是曲線)或者更加密集的離散方程與已知資料相吻合,這個程序叫做擬合,內插是曲線必須通過已知點的擬合,

已知坐標 (x0, y0) 與 (x1, y1),要得到 [x0, x1] 區間內某一位置 x 在直線上的值,

由于 x 值已知,所以可以從公式得到 y 的值

已知 y 求 x 的程序與以上程序相同,只是 x 與 y 要進行交換,

例如,

原來的數值序列:0,10,20,30,40
線性插值一次為:0,5,10,15,20,25,30,35,40
即認為其變化(增減)是線形的,可以在坐標圖上畫出一條直線 ,

線性插值經常用于補充表格中的間隔部分,

兩值之間的線性插值基本運算在計算機圖形學中的應用非常普遍,以至于在計算機圖形學領域的行話中人們將它稱為 lerp,所有當今計算機圖形處理器的硬體中都集成了線性插值運算,并且經常用來組成更為復雜的運算:例如,可以通過三步線性插值完成一次雙線性插值運算,由于這種運算成本較低,所以對于沒有足夠數量條目的光滑函式來說,它是實作精確快速查找表的一種非常好的方法,

在一些要求較高的場合,線性插值經常無法滿足要求,在這種場合,可以使用多項式插值或者樣條插值來代替,

線性插值可以擴展到有兩個變數的函式的雙線性插值,雙線性插值經常作為一種粗略的抗混疊濾波器使用三線性插值用于三個變數的函式的插值,線性插值的其它擴展形勢可以用于三角形與四面體等其它型別的網格運算,


2.三線性插值

  三線性插值是在三維離散采樣資料的張量積網格上進行線性插值的方法,這個張量積網格可能在每一維度上都有任意不重疊的網格點,但并不是三角化的有限元分析網格,這種方法通過網格上資料點在區域的矩形棱柱上線性地近似計算點 (x,y,z) 的值,

  • 三線性插值在一次n=1三維D=3(雙線性插值的維數:D=2,線性插值:D=1)的引數空間中進行運算,這樣需要(1 + n)D = 8個與所需插值點相鄰的資料點,
  • 三線性插值等同于三維張量的一階B樣條插值,
  • 三線性插值運算是三個線性插值運算的張量積,

  實體

  在一個步距為1的周期性立方網格上,取xd,yd,zd 為待計算點,距離小于 x,y,z, 的最大整數的差值,即,

  x_d=x-\left\lfloor x\right\rfloor

  y_d=y-\left\lfloor y\right\rfloor

  z_d=z-\left\lfloor z\right\rfloor

  首先沿著z軸插值,得到:

  i_1=v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right],\times(1-z_d)+v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right]\times z_d

  i_2=v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right],\times(1-z_d)+v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right]\times z_d

  j_1=v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right],\times(1-z_d)+v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right]\times z_d

  j_2=v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right],\times(1-z_d)+v\left[\left\lfloor x\right\rfloor,\left\lfloor y\right\rfloor\left\lfloor z\right\rfloor\right]\times z_d

  然后,沿著y軸插值,得到:

  w1 = i1(1 ? yd) + i2yd

  w2 = j1(1 ? yd) + j2yd

  最后,沿著x軸插值,得到:

  IV = w1(1 ? xd) + w2xd
  這樣就得到該點的預測值,

  三線性插值的結果與插值計算的順序沒有關系,也就是說,按照另外一種維數順序進行插值,例如沿著 x、 y、z 順序插值將會得到同樣的結果,這也與張量積的交換律完全一致,


(4)選取特征點的主方向


這一步與SIFT也大有不同,SIFT選取特征點主方向是采用在特征點鄰域統計其梯度直方圖,取直方圖bin值最大的以及超過bin值80%的那些方向作為特征點的主方向,
在SURF中,不統計其梯度直方圖,而是統計特征點鄰域內的harr小波特征,即在特征點的鄰域(比如說,半徑為6s的圓內,s為該點所在的尺度)內,統計60度扇形內所有點的水平haar小波特征和垂直haar小波特征總和,haar小波的尺寸變長為4s,這樣一個扇形得到了一個值,然后60度扇形以一定間隔進行旋轉,最后將最大值那個扇形的方向作為該特征點的主方向,


(5)構造surf特征點描述算子


在SIFT中,是在特征點周圍取16x16的鄰域,并把該鄰域化為4x4個的小區域,每個小區統計8個方向的梯度,最后得到4x4x8=128維的向量,該向量作為該點SIFT描述子,
在SURF中,也是在特征點周圍取一個正方形框,框的邊長為20s(s是所檢測到該特征點所在的尺度),該框帶方向,方向當然就是第(4)步檢測出來的主方向了,然后把該框分為16個子區域,每個子區域統計25個像素的水平方向和垂直方向的haar小博特征,這里的水平和垂直方向都是相對主方向而言的,該haar小波特征為水平方向值之和,水平方向絕對值之和,垂直方向之和,垂直方向絕對值之和,這樣每個區域就有4個值,所以每個特征點就是16x4=64維向量,相比于SIFT而言,少了一半,這在特征匹配程序中會大大加快匹配速度,


SURF采用Hessian矩陣獲取影像區域最值十分穩定,但是在求主方向階段太過于依賴區域區域像素的梯度方向,有可能使找到的主方向不準確,后面的特征向量提取以及匹配都嚴重依賴于主方向,即使不大偏差角度也可以造成后面特征匹配的放大誤差,從而使匹配不成功,另外影像金字塔的層取得不夠緊密也會使得尺度有誤差,后面的特征向量提取同樣依賴回應的尺度,發明者在這個問題上的折中解決辦法是取適量的層然后進行插值,


(6)特征點匹配


Surf通過計算兩個特征點間的歐式距離來確定匹配度,歐氏距離越短,代表兩個特征點的匹配度越好,Surf還加入了Hesgian矩陣跡的判斷,如果兩個特征點的矩陣跡正負號相同,代表這兩個特征具有相同方向上的對比度變化,如果不同,說明這兩個特征點的對比度變化方向是相反的,即使歐氏距離為0,也直接予以排除,


參考:

  1. Opencv學習之SURF演算法
  2. harr特征以及積分影像
  3. harr特征以及積分影像
  4. Hessian矩陣
  5. sift演算法
  6. 影像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空間、DoG (Difference of Gaussian)角點檢測
  7. 非極大值抑制

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289461.html

標籤:AI

上一篇:BP神經網路原理(詳細推導)

下一篇:圖深度學習(deep learning on graphs)第四章第二部分(4.2)閱讀筆記

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more