特徵檢測和特徵提取算子

特徵檢測和特徵提取算子

特徵檢測

特徵檢測是計算機視覺和圖像處理中的一個概念。它指的是使用計算機提取圖像信息,決定每個圖像的點是否屬於一個圖像特徵。特徵檢測的結果是把圖像上的點分爲不同的子集,這些子集往往屬於孤立的點、連續的曲線或者連續的區域。
主要分類:邊緣區域

特徵提取算子

一.HOG特徵

1.HOG特徵:

方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵是一種在計算機視覺和圖像處理中用來進行物體檢測的特徵描述子。它通過計算和統計圖像局部區域的梯度方向直方圖來構成特徵。
Hog特徵結合SVM分類器已經被廣泛應用於圖像識別中,尤其在行人檢測中獲得了極大的成功。
(1)主要思想:
在一副圖像中,局部目標的表象和形狀(appearance and shape)能夠被梯度或邊緣的方向密度分佈很好地描述。(本質:梯度的統計信息,而梯度主要存在於邊緣的地方)。
(2)具體的實現方法是:
首先將圖像分成小的連通區域,我們把它叫細胞單元。然後採集細胞單元中各像素點的梯度的或邊緣的方向直方圖。最後把這些直方圖組合起來就可以構成特徵描述器。
(3)提高性能:
把這些局部直方圖在圖像的更大的範圍內(我們把它叫區間或block)進行對比度歸一化,所採用的方法是:先計算各直方圖在這個區間(block)中的密度,然後根據這個密度對區間中的各個細胞單元做歸一化。通過這個歸一化後,能對光照變化和陰影獲得更好的效果。
(4)優點:
與其他的特徵描述方法相比,HOG有很多優點。首先,由於HOG是在圖像的局部方格單元上操作,所以它對圖像幾何的和光學的形變都能保持很好的不變性,這兩種形變只會出現在更大的空間領域上。其次,在粗的空域抽樣、精細的方向抽樣以及較強的局部光學歸一化等條件下,只要行人大體上能夠保持直立的姿勢,可以容許行人有一些細微的肢體動作,這些細微的動作可以被忽略而不影響檢測效果。因此HOG特徵是特別適合於做圖像中的人體檢測的。

2、HOG特徵提取算法的實現過程:

大概過程:
HOG特徵提取方法就是將一個image(你要檢測的目標或者掃描窗口):
1)灰度化(將圖像看做一個x,y,z(灰度)的三維圖像);
2)採用Gamma校正法對輸入圖像進行顏色空間的標準化(歸一化);目的是調節圖像的對比度,降低圖像局部的陰影和光照變化所造成的影響,同時可以抑制噪音的干擾;
3)計算圖像每個像素的梯度(包括大小和方向);主要是爲了捕獲輪廓信息,同時進一步弱化光照的干擾。
4)將圖像劃分成小cells(例如66像素/cell);
5)統計每個cell的梯度直方圖(不同梯度的個數),即可形成每個cell的descriptor;
6)將每幾個cell組成一個block(例如3
3個cell/block),一個block內所有cell的特徵descriptor串聯起來便得到該block的HOG特徵descriptor。
7)將圖像image內的所有block的HOG特徵descriptor串聯起來就可以得到該image(你要檢測的目標)的HOG特徵descriptor了。這個就是最終的可供分類使用的特徵向量了。

在這裏插入圖片描述

3.圖像的HOG特徵維數

Dalal提出的Hog特徵提取的過程:把樣本圖像分割爲若干個像素的單元(cell),把梯度方向平均劃分爲9個區間(bin),在每個單元裏面對所有像素的梯度方向在各個方向區間進行直方圖統計,得到一個9維的特徵向量,每相鄰的4個單元構成一個塊(block),把一個塊內的特徵向量聯起來得到36維的特徵向量,用塊對樣本圖像進行掃描,掃描步長爲一個單元。最後將所有塊的特徵串聯起來,就得到了人體的特徵。例如,對於64128的圖像而言,每1616的像素組成一個cell,每22個cell組成一個塊,因爲每個cell有9個特徵,所以每個塊內有49=36個特徵,以8個像素爲步長,那麼,水平方向將有7個掃描窗口,垂直方向將有15個掃描窗口。也就是說,64128的圖片,總共有367*15=3780個特徵。

二.SIFT特徵

尺度不變特徵提取(SIFT)特徵

處理兩幅圖像之間發生平移、旋轉、尺度變化、光照變化情況下的特徵匹配問題,並能在一定程度上對視角變化具備較爲穩定的特徵匹配能力。一幅圖像的SIFT特徵向量的生成主要包括4步:尺度空間極值檢測、關鍵點位置及尺度確定、關鍵點方向確定、特徵向量生成。

SIFT特徵提取的方法:

1,構建DOG尺度空間
(1)基礎知識
(a)尺度空間:
在視覺信息處理模型中引入一個被視爲尺度的參數,通過連續變化尺度參數獲得不同尺度下的視覺處理信息,然後綜合這些信息以深入地挖掘圖像的本質特徵。尺度空間方法將傳統的單尺度視覺信息處理技術納入尺度不斷變化的動態分析框架中,因此更容易獲得圖像的本質特徵。尺度空間的生成目的是模擬圖像數據多尺度特徵。
尺度空間中各尺度圖像的模糊程度逐漸變大,能夠模擬人在距離目標由近到遠時目標在視網膜上的形成過程。大尺度對應圖像的概貌特徵,小尺度對應圖像的細節特徵。所以對不同尺度的圖像檢測關鍵點,最終得到的sift特徵點具有尺度不變性。尺度空間是客觀存在的,我們使用高斯卷積的形式來表現尺度空間。
一幅二維圖像的尺度空間可以定義爲
在這裏插入圖片描述
其中I(x,y)是圖像區域,G(x,y,σ)是尺度可變高斯函數,x,y是空間座標,σ大小決定圖像的平滑程度。

參考材料:
http://blog.csdn.net/tanxinwhu/article/details/7048370
(b)高斯模糊:
這裏尺度空間的生成需要使用高斯模糊來實現,Lindeberg等人已經證明高斯卷積核是實現尺度變換的唯一線性核。高斯模糊是一種圖像濾波器,它使用正態分佈(高斯函數)計算模糊模板,並使用該模板與原圖像做卷積運算,達到模糊圖像的目的。
N維空間正態分佈方程爲:
在這裏插入圖片描述
其中,是正態分佈的標準差,值越大,圖像越模糊(平滑)。r爲模糊半徑,模糊半徑是指模板元素到模板中心的距離。如二維模板大小爲mn,則模板上的元素(x,y)對應的高斯計算公式爲:
在這裏插入圖片描述
對圖像做卷積運算可以看做是加權求和的過程,把使用到的圖像區域中的每個元素分別與卷積核的每個對應位置的元素相乘,所有乘積之和作爲區域中心的像素值。
一個5
5的高斯模板:
在這裏插入圖片描述
可以看出高斯模板是圓對稱的,且卷積的結果使原始像素值有最大的權重,距離中心越遠的相鄰像素值權重也越小。
在實際應用中,在計算高斯函數的離散近似時,在大概3σ距離之外的像素都可以看作不起作用,這些像素的計算也就可以忽略。所以,通常程序只計算(6σ+1)*(6σ+1)就可以保證相關像素影響。

參考材料:
http://www.cnblogs.com/slysky/archive/2011/11/25/2262899.html

2.關鍵點精確定位
以上極值點的搜索是在離散空間進行搜索的,由下圖可以看到,在離散空間找到的極值點不一定是真正意義上的極值點。可以通過對尺度空間DoG函數進行曲線擬合尋找極值點來減小這種誤差。
在這裏插入圖片描述
利用DoG函數在尺度空間的Taylor展開式:
在這裏插入圖片描述
則極值點爲:
在這裏插入圖片描述
3,方向賦值
爲了實現圖像的旋轉不變性,需要根據檢測到的關鍵點的局部圖像結構爲特徵點方向賦值。
(1)梯度直方圖
方向直方圖的核心是統計以關鍵點爲原點,一定區域內的圖像像素點對關鍵點方向生成所作的貢獻。
在上一步,精確定位關鍵點後,可以得到該特徵點的尺度值σ,根據這一尺度值,得到最接近這一尺度值的高斯圖像:
在這裏插入圖片描述
使用有限差分,計算以關鍵點爲中心,以3×1.5σ爲半徑的區域內圖像梯度的幅角和幅值,公式如下:
在這裏插入圖片描述
梯度方向直方圖的橫軸是梯度方向角,縱軸是剃度方向角對應的梯度幅值累加值。梯度方向直方圖將0°~360°的範圍分爲36個柱,每10°爲一個柱。

在這裏插入圖片描述

在計算直方圖時,每個加入直方圖的採樣點都使用圓形高斯函數函數進行了加權處理,也就是進行高斯平滑。這主要是因爲SIFT算法只考慮了尺度和旋轉不變形,沒有考慮仿射不變性。通過高斯平滑,可以使關鍵點附近的梯度幅值有較大權重,從而部分彌補沒考慮仿射不變形產生的特徵點不穩定。

這裏的直方圖統計,我在閱讀了labelme中實現的源碼之後發現具體做法是,把每個梯度向量分解到這8個方向,然後將這8個方向每個方向分到的幅值加在這個方向對應的直方圖柱上。

(2)關鍵點方向
直方圖峯值代表該關鍵點鄰域內圖像梯度的主方向,當存在另一個相當於主峯值 80%能量的峯值時,則認爲這個方向是該關鍵點的輔方向。所以一個關鍵點可能檢測得到多個方向,這可以增強匹配的魯棒性。Lowe的論文指出大概有15%關鍵點具有多方向,但這些點對匹配的穩定性至爲關鍵。

具有多個方向的關鍵點可以複製成多份,然後將方向值分別賦給複製後的關鍵點。

至此,我們得到了關鍵點的位置、尺度、方向信息(x,y,σ,θ)。h(x,y,θ)是一個三維矩陣,但通常經過矩陣壓縮後用一個向量表示。

4,關鍵點描述子的生成
關鍵點描述子不但包括關鍵點,還包括關鍵點周圍對其有貢獻的像素點。這樣可使關鍵點有更多的不變特性,提高目標匹配效率。在描述子採樣區域時,需要考慮旋轉後進行雙線性插值,防止因旋轉圖像出現白點。同時,爲了保證旋轉不變性,要以特徵點爲中心,在附近領域內旋轉θ角,然後計算採樣區域的梯度直方圖,形成n維SIFT特徵矢量(如128-SIFT)。最後,爲了去除光照變化的影響,需要對特徵矢量進行歸一化處理。

SIFT特徵提取的優點

SIFT特徵是圖像的局部特徵,其對旋轉、尺度縮放、亮度變化保持不變性,對視角變化、仿射變換、噪聲也保持一定程度的穩定性;
獨特性(Distinctiveness)好,信息量豐富,適用於在海量特徵數據庫中進行快速、準確的匹配;
多量性,即使少數的幾個物體也可以產生大量的SIFT特徵向量;
高速性,經優化的SIFT匹配算法甚至可以達到實時的要求;
可擴展性,可以很方便的與其他形式的特徵向量進行聯合;
需要較少的經驗主義知識,易於開發。

SIFT特徵提取的缺點

實時性不高,因爲要不斷地要進行下采樣和插值等操作;
有時特徵點較少(比如模糊圖像);
對邊緣光滑的目標無法準確提取特徵(比如邊緣平滑的圖像,檢測出的特徵點過少,對圓更是無能爲力)。

三.SURF特徵

SURF(計算量小,運算速度快,提取的特徵點幾乎與SIFT相同)
SIFT特徵描述算子在生成特徵矢量時使用的是高斯圖像,而SURF特徵描述算子在生成特徵矢量時使用的則是積分圖像。這樣做的目的就是要充分利用在特徵點檢測時形成的中間結果(積分圖像),避免在特徵矢量生成時對圖像進行重複運算。

參考文章:
SIFT:https://www.jianshu.com/p/d94e558ebe26
SIFT:https://blog.csdn.net/happyer88/article/details/45817305
SIFT:https://www.cnblogs.com/pacino12134/p/11368558.html
HOG:https://blog.csdn.net/a133521741/article/details/79237776

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