1. 程式人生 > >轉載:Gabor 特徵總結

轉載:Gabor 特徵總結

轉載: Gabor 特徵總結

https://mengqi92.github.io/2015/10/11/gabor/ 

Gabor 特徵是一種可以用來描述影象紋理資訊的特徵,Gabor 濾波器的頻率和方向與人類的視覺系統類似,特別適合於紋理表示與判別。

Gabor 特徵主要依靠 Gabor 核在頻率域上對訊號進行加窗,從而能描述訊號的區域性頻率資訊。

說到 Gabor 核,不能不提到傅立葉變換。正是靠傅立葉變換,我們才能將訊號轉換到頻率域,才能讓Gabor核在頻率域去加窗。而在原本的空間域中,一個 Gabor 核實際上就是一個高斯核與正弦波調製的結果,可以看做是高斯核應用在了正弦波的頻域部分。

上面說的還是比較籠統,下面我們一步一步介紹Gabor核是怎麼對訊號“加窗”的。

一、傅立葉變換

關於傅立葉變換,韓昊同學總結過一個很直觀的解釋。我這裡就不贅述了。

總之,傅立葉變換是影象處理裡面一個很重要的工具,本質是將任意一個函式轉化為若干不同頻率正弦波的組合,(組合方式在離散函式中就是相加,在連續函式中就是積分)。由此,將空域(或時域)訊號轉換到了頻域(即頻率域)。

空間域中多個波疊加,在頻率域中就對應著若干個散落的點。韓昊同學將其比喻為不同音階組成的音譜。

頻率域中的基本元素就是正弦波:空間域中的一個正弦波波形,在頻率域中只要一個點就能表示。

維基百科

上有一個動態圖,展示了一個疊加波如何分解到頻率域上的若干點:

疊加波的分解過程

事實上,任何波都可以看做是若干(乃至無窮)個不同頻率正弦波的疊加。

就像可見光可以看做不同頻率的光的疊加一樣,通過傅立葉變換,我們能將任何波分解為不同頻率波的疊加。這樣轉換的好處是:有些情況下空域中很複雜的問題,在頻率域會變得十分簡單。

二、Gabor 核

2.1 一維 Gabor 核

2.1.1 一維傅立葉變換

一維傅立葉變化定義如下:

其中,f 為輸入訊號,ξξ 表示分解得到的各個波的頻率,f^(f,ξ)f^(f,ξ) 為變換後的訊號。公式中的 e−i2πxξe−i2πxξ 表示一個複數波,關於複數波的解釋可以看我

之前的一篇文章

從上面的公式可以看出,原訊號 f(t)f(t) 以 t 為自變數,描述了訊號值隨時間的變化,說明原訊號空間在時間域中。經過傅立葉變換後,函式自變數變為了 ξξ ,f^(ξ)f^(ξ) 描述了訊號值隨頻率的變化,即訊號轉換到了頻率域空間中。如果說原來訊號的圖示需要以時間(空間)為座標軸的話,訊號在傅立葉變換後的圖示就需要以頻率為座標軸了。

2.1.2 一維 Gabor 核

一維Gabor核由一個高斯核與一個複數波的乘積定義:

2.1.3 Gabor 核的傅立葉變換

將 Gabor 核(式22)套入一維傅立葉變換(式11)中,得到 Gabor 核的傅立葉變換:

也就是說,Gabor核相當於在頻率域應用了一個高斯核視窗。假設我們這時有了一個訊號的頻率域:fin(f)fin(f),那麼我們直接用頻率域的Gabor核 Gabor^Gabor^ 與其相乘,就實現了對 f0f0 頻率鄰域範圍內的濾波效果:輸入訊號頻率離這個 Gabor 核的 f0f0 越遠,則乘上Gabor核之後的結果就越小,尤其是當 finfin 在 f0f0 的 3σ3σ 區間外時,這個頻率幾乎可以忽略不計。於是,最終能保留下來的訊號就都是 f0f0 頻率附近的訊號了。

這個想法,用公式表示出來就是:

從這個角度出發,給我們任意一個輸入訊號,我們先用傅立葉變換將其變換到頻率域得到fin^fin^,再用 Gabor 核的傅立葉變換結果與之相乘,就是頻域濾波的結果了。

不過我們大可不必這麼麻煩,因為有卷積定理:


這樣看來,我們只需要用 Gabor 核和輸入訊號卷積就可以得到輸入訊號在某頻率鄰域附近的響應結果!!

我們既可以用這個響應結果來實現頻域濾波,又可以用它來描述訊號的頻率資訊。下面要提到的Gabor特徵,就是用Gabor核來描述訊號的頻率資訊,從而作為訊號的特徵的。

2.2 二維 Gabor 變換

將上面的一維情況推廣至二維:

2.2.1 二維傅立葉變換:

二維傅立葉變換定義如下:


提醒一下,這裡 (x,y)(x,y) 表示空域座標,(u0,v0)(u0,v0) 表示頻域座標。

2.2.2 二維複數波

二維複數波完整定義如下(用復指數形式表示):

 

s(x,y)=exp(i(2π(u0x+v0y)+P))s(x,y)=exp⁡(i(2π(u0x+v0y)+P))

由於初始相位對Gabor核影響不大,因此可以將其省略,得到更簡潔的形式(論文中關於 Gabor 函式的定義各不一樣,主要是這些細節的考慮不同):

 

s(x,y)=exp(i(2π(u0x+v0y)))s(x,y)=exp⁡(i(2π(u0x+v0y)))

2.2.3 二維高斯函式

二維高斯函式定義如下:

 

ω(x,y,σx,σy)=Kexp(−π((x−x0)2/σ2x+(y−y0)2/σ2y))(5)(5)ω(x,y,σx,σy)=Kexp⁡(−π((x−x0)2/σx2+(y−y0)2/σy2))


其中,σx,σyσx,σy 分別為兩個方向上的尺度引數(scaling parameters),用來控制高斯函式在兩個方向上的“展布”形狀。(x0,y0)(x0,y0) 為高斯函式的中心點。KK 為常數。

考慮全面的話,高斯函式還要有(順時針)旋轉,即:

 

{(x−x0)r=(x−x0)cosθ+(y−y0)sinθ(y−y0)r=−(x−x0)sinθ+(y−y0)cosθ{(x−x0)r=(x−x0)cos⁡θ+(y−y0)sin⁡θ(y−y0)r=−(x−x0)sin⁡θ+(y−y0)cos⁡θ

加入旋轉引數後的二維高斯函式為:

 

ωr(x,y,θ,σx,σy)=Kexp(−π((x−x0)2r/σ2x+(y−y0)2r/σ2y))ωr(x,y,θ,σx,σy)=Kexp⁡(−π((x−x0)r2/σx2+(y−y0)r2/σy2))

上圖即是一個二維高斯核的影象,該高斯核中,(x0,y0)=(0,0)(x0,y0)=(0,0),(σ2x,σ2y)=(50,40)(σx2,σy2)=(50,40),θ=−45°θ=−45°

從影象可以看出,σx和σyσx和σy分別控制了高斯兩個方向的“展布”情況。

2.2.4 Gabor 濾波器核

類似一維 Gabor 核,我們將二維高斯函式與二維複數波相乘,就得到了二維的Gabor核:

 

Gabor(x0,y0,θ,σx,σy,u0,v0)=s(x,y)ωr(x,y)=Kexp(−π((x−x0)2r/σ2x+(y−y0)2r/σ2y))exp(i2π(u0x+v0y))(6)(7)(6)Gabor(x0,y0,θ,σx,σy,u0,v0)=s(x,y)ωr(x,y)(7)=Kexp⁡(−π((x−x0)r2/σx2+(y−y0)r2/σy2))exp⁡(i2π(u0x+v0y))

它的各個引數含義如下:

  • (x0,y0)(x0,y0): 高斯核的中心點
  • θθ: 高斯核的旋轉方向(順時針)
  • (σx,σy)(σx,σy): 高斯核兩個方向上的尺度
  • (u0,v0)(u0,v0): 頻域座標
  • KK: 高斯核的幅度(magnitude)的比例

上圖為Gabor核在頻率域中的圖示,這個Gabor核就是從之前那個高斯核得到的,其引數分別為:u0=v0=1/80u0=v0=1/80,x0=y0=0x0=y0=0,σ2x=50σx2=50,σ2y=40σy2=40,θ=−45°θ=−45°,F0=2–√/80F0=2/80,ω0=45°ω0=45°。

上圖為Gabor核在空間域中的圖示,引數和上面那個Gabor核一樣。影象左邊是實部,右邊是虛部。這樣的Gabor核與影象進行卷積,我們便能得到影象在(u0,v0)(u0,v0)頻率附近的響應情況。在影象處理中,通常使用Gabor的實部進行卷積就可以。

三、Gabor 核作為影象特徵

通過上面的分析,我們知道了,一個Gabor核能獲取到影象某個頻率鄰域的響應情況,這個響應結果可以看做是影象的一個特徵。那麼,我們如果用多個不同頻率的Gabor核去獲取影象在不同頻率鄰域的響應情況,最後就能形成影象在各個頻率段的特徵,這個特徵就可以描述影象的頻率資訊了

上圖展示了一系列具有不同頻率的 Gabor 核,用這些核與影象卷積,我們就能得到影象上每個點和其附近區域的頻率分佈情況。

由於紋理特徵通常和頻率相關,因此Gabor核經常用來作為紋理特徵。又因為字元識別問題通常都是識別紋理的過程,所以Gabor核在光學字元識別(OCR)系統中也有廣泛應用。

寫在最後

由於本人對訊號處理不是太瞭解,因此對傅立葉變換、頻率域的理解都是個人粗淺的理解。為了完成這篇文章,我學習了很多訊號處理的知識,重新理解了一些基本概念,看別人的帖子建立過一些認識,隨後這層理解不牢又被推翻,再重新建立……前前後後用了一週的時間才最終完成。如有不嚴謹或錯誤的地方,還請大家諒解。要嚴肅學習的話最好還是看權威教材、看論文,我這篇文章可以作為另一個角度的補充。

參考資料

  1. 中文維基百科 / 傅立葉變換
  2. 韓昊同學對傅立葉變換的直觀解釋
  3. 中文維基百科 / 卷積定理
  4. 英文維基百科 / Gabor_filter
  5. 英文維基百科 / Gabor_transform
  6. Movellan J R. Tutorial on Gabor filters[J]. Open Source Document, 2002.
  7. Idrissa M, Acheroy M. Texture classification using Gabor filters[J]. Pattern Recognition Letters, 2002, 23(9): 1095-1102.

版權宣告

本文所有文字版權均屬本人所有,如需轉載請註明來源。