Gabor 特徵總結

本文轉載自個人博客git


Gabor 特徵是一種能夠用來描述圖像紋理信息的特徵,Gabor 濾波器的頻率和方向與人類的視覺系統相似,特別適合於紋理表示與判別。github

Gabor 特徵主要依靠 Gabor 核在頻率域上對信號進行加窗,從而能描述信號的局部頻率信息。函數

說到 Gabor 核,不能不提到傅里葉變換。正是靠傅里葉變換,咱們才能將信號轉換到頻率域,才能讓Gabor核在頻率域去加窗。而在本來的空間域中,一個 Gabor 覈實際上就是一個高斯核與正弦波調製的結果,能夠看作是高斯核應用在了正弦波的頻域部分。工具

上面說的仍是比較籠統,下面咱們一步一步介紹Gabor核是怎麼對信號「加窗」的。學習

1、傅里葉變換

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

總之,傅里葉變換是圖像處理裏面一個很重要的工具,本質是將任意一個函數轉化爲若干不一樣頻率正弦波的組合,(組合方式在離散函數中就是相加,在連續函數中就是積分)。由此,將空域(或時域)信號轉換到了頻域(即頻率域)。orm

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

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

維基百科上有一個動態圖,展現了一個疊加波如何分解到頻率域上的若干點:get

疊加波的分解過程

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

就像可見光能夠看作不一樣頻率的光的疊加同樣,經過傅里葉變換,咱們能將任何波分解爲不一樣頻率波的疊加。這樣轉換的好處是:有些狀況下空域中很複雜的問題,在頻率域會變得十分簡單。

2、Gabor 核

2.1 一維 Gabor 核

2.1.1 一維傅里葉變換

一維傅里葉變化定義以下:

$$ \hat{f}(\xi)=\int_{-\infty}^\infty f(t) e^{-i2\pi t \xi}\, dt,\quad \xi \text{爲任意實數} \tag{1}\label{1} $$

其中,$f$ 爲輸入信號,$\xi$ 表示分解獲得的各個波的頻率,$\hat{f}(f, \xi)$ 爲變換後的信號。公式中的 $e^{-i2\pi x \xi}$ 表示一個複數波,關於複數波的解釋能夠看我以前的一篇文章

從上面的公式能夠看出,原信號 $f(t)$ 以 t 爲自變量,描述了信號值隨時間的變化,說明原信號空間在時間域中。通過傅里葉變換後,函數自變量變爲了 $\xi$ ,$\hat{f}(\xi)$ 描述了信號值隨頻率的變化,即信號轉換到了頻率域空間中。若是說原來信號的圖示須要以時間(空間)爲座標軸的話,信號在傅里葉變換後的圖示就須要以頻率爲座標軸了。

2.1.2 一維 Gabor 核

一維Gabor核由一個高斯核與一個複數波的乘積定義:
$$ Gabor(t) = ke^{i\theta} \omega(at) s(t) \tag{2}\label{2}$$

其中,
$$\begin{cases}
\omega(t)=e^{-\pi t^2} \\\
s(t) = e^{i(2\pi f_0 t)} \\\
\end{cases}$$
這裏,$f_0$ 是複數波$s(t)$的頻率。

將複數波$s(t) = e^{i(2\pi f_0 t)}$代入$\ref{2}$式中,獲得:

$$\begin{align}
Gabor(t) & = k \omega(at) e^{i(2\pi f_0 t + \theta)} \\\
& = k \omega(at) \left[ \cos(2\pi f_0 t+\theta) + i\sin(2\pi f_0 t+\theta) \right]
\end{align}$$

上面最後一步獲得了 Gabor 核的複數表示,咱們就能夠按實部和虛部將其拆分爲實核和虛核,在不少應用中,咱們只須要應用 Gabor核的實數部分便可:
$$\begin{cases}
Gabor_{real}(t) = \omega(at)\cos(2\pi f_0 t + \theta) \\\
Gabor_{imag}(t) = \omega(at)\sin(2\pi f_0 t + \theta)
\end{cases}$$

2.1.3 Gabor 核的傅里葉變換

將 Gabor 核(式$\ref{2}$)套入一維傅里葉變換(式$\ref{1}$)中,獲得 Gabor 核的傅里葉變換:

$$\begin{align}
\hat{Gabor}(f)
& = ke^{i\theta} \int_{-\infty}^{\infty} e^{-i 2\pi f t} \omega(at) s(t) \,dt \\\
& = ke^{i\theta} \int_{-\infty}^{\infty} e^{-i2\pi (f-f_0)t} \omega(at) \,dt \\\
& = (k/a) \cdot e^{i\theta} \cdot \hat{\omega}\left( (f-f_0)/a \right) \\\
\end{align} \tag{3}\label{3}$$

上式中出現了 $\hat{\omega}(\frac{f-f_0}{a})$ 的形式,這裏須要補充高斯核一個頗有趣的性質:$\hat{\omega}(f) = \omega(f) = e^{-\pi f^2}$,這個性質這裏就不證實了,有興趣的同窗能夠本身推導一下。根據這個性質,上式中的 $\hat{\omega}(\frac{f-f_0}{a})$ 也能夠寫做 $\omega(\frac{f-f_0}{a})$,兩者能夠自由轉換。

此外,$\ref{3}$式中的末尾,咱們知道了Gabor核傅里葉變換後是這樣一個形式:$\frac{k}{a} e^{i\theta} \hat{\omega}(\frac{f-f_0}{a})$,這個形式能夠看作是一個複數波,它的幅度
$$A = \left\lVert \hat{Gabor}(f) \right\rVert = \frac{k}{a} \hat{\omega}(\frac{f-f_0}{a}) = \frac{k}{a} \omega(\frac{f-f_0}{a}) $$

也就是說,Gabor核至關於在頻率域應用了一個高斯核窗口。假設咱們這時有了一個信號的頻率域:$f_{in}(f)$,那麼咱們直接用頻率域的Gabor核 $\hat{Gabor}$ 與其相乘,就實現了對 $f_0$ 頻率鄰域範圍內的濾波效果:輸入信號頻率離這個 Gabor 核的 $f_0$ 越遠,則乘上Gabor核以後的結果就越小,尤爲是當 $f_{in}$ 在 $f_0$ 的 $3\sigma$ 區間外時,這個頻率幾乎能夠忽略不計。因而,最終能保留下來的信號就都是 $f_0$ 頻率附近的信號了。

這個想法,用公式表示出來就是:
$$ \hat{Gabor} \cdot \hat{f_{in}} $$

從這個角度出發,給咱們任意一個輸入信號,咱們先用傅里葉變換將其變換到頻率域獲得$\hat{f_{in}}$,再用 Gabor 核的傅里葉變換結果與之相乘,就是頻域濾波的結果了。

不過咱們大可沒必要這麼麻煩,由於有卷積定理:
$$Gabor * f_{in} = \hat{Gabor} \cdot f_{in} $$
這樣看來,咱們只須要用 Gabor 核和輸入信號卷積就能夠獲得輸入信號在某頻率鄰域附近的響應結果!!

咱們既能夠用這個響應結果來實現頻域濾波,又能夠用它來描述信號的頻率信息。下面要提到的Gabor特徵,就是用Gabor核來描述信號的頻率信息,從而做爲信號的特徵的。

2.2 二維 Gabor 變換

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

2.2.1 二維傅里葉變換:

二維傅里葉變換定義以下:
$$ \hat{f}(\xi_x, \xi_y) = \iint f(x,y) e^{-i2\pi (\xi_x x + \xi_y y)}\, dx dy$$

爲了簡潔,改用 $(u_0, v_0)$ 來代替 $(\xi_x, \xi_y)$,則上式可寫爲:
$$ \hat{f}(u_0, v_0) = \iint f(x, y) \exp {\left( -i2\pi {\left( u_0 x + v_0 y\right) }\right) } \, dxdy \tag{4}\label{4}$$
提醒一下,這裏 $(x, y)$ 表示空域座標,$(u_0, v_0)$ 表示頻域座標。

2.2.2 二維複數波

二維複數波完整定義以下(用復指數形式表示):
$$ s(x,y) = \exp\left( i \left(2\pi (u_0 x + v_0 y) + P \right) \right) $$

因爲初始相位對Gabor核影響不大,所以能夠將其省略,獲得更簡潔的形式(論文中關於 Gabor 函數的定義各不同,主要是這些細節的考慮不一樣):
$$ s(x,y) = \exp \left(i \left(2\pi (u_0 x + v_0 y) \right) \right) $$

2.2.3 二維高斯函數

二維高斯函數定義以下:

$$ \omega(x, y, \sigma_x, \sigma_y) = K \exp(-\pi \left (x-x_0)^2 / \sigma_x^2 + (y-y_0)^2 / \sigma_y^2\right ) \tag{5}\label{5}$$

其中,$\sigma_x, \sigma_y$ 分別爲兩個方向上的尺度參數(scaling parameters),用來控制高斯函數在兩個方向上的「展布」形狀。$(x_0, y_0)$ 爲高斯函數的中心點。$K$ 爲常數。

考慮全面的話,高斯函數還要有(順時針)旋轉,即:
$$\begin{cases}
(x-x_0)_r = (x-x_0)\cos \theta + (y-y_0)\sin \theta \\\
(y-y_0)_r = -(y-y_0)\sin \theta + (y-y_0)\cos \theta
\end{cases}$$

加入旋轉參數後的二維高斯函數爲:
$$ \omega_r(x, y, \theta, \sigma_x, \sigma_y) = K \exp(-\pi \left (x-x_0)_r^2 / \sigma_x^2 + (y-y_0)_r^2 / \sigma_y^2\right )$$

二維高斯示意

上圖便是一個二維高斯核的圖像,該高斯核中,$(x_0, y_0) = (0, 0)$,$(\sigma_x^2, \sigma_y^2) = (50, 40)$,$\theta = -45°$

從圖像能夠看出,$\sigma_x 和 \sigma_y$分別控制了高斯兩個方向的「展布」狀況。

2.2.4 Gabor 濾波器核

相似一維 Gabor 核,咱們將二維高斯函數與二維複數波相乘,就獲得了二維的Gabor核:
$$\begin{align}
Gabor(x_0, y_0, \theta, \sigma_x, \sigma_y, u_0, v_0)
& = s(x,y) \omega_r(x,y) \\\
& = K \exp\left(-\pi \left( (x-x_0)_r^2/\sigma_x^2 + (y-y_0)_r^2/\sigma_y^2 \right) \right) \exp\left(i 2\pi (u_0 x + v_0 y) \right) \\\
\end{align}$$

它的各個參數含義以下:

  • $(x_0, y_0)$: 高斯核的中心點

  • $\theta$: 高斯核的旋轉方向(順時針)

  • $(\sigma_x, \sigma_y)$: 高斯核兩個方向上的尺度

  • $(u_0, v_0)$: 頻域座標

  • $K$: 高斯核的幅度(magnitude)的比例

Gabor核頻率域圖示
上圖爲Gabor核在頻率域中的圖示,這個Gabor核就是從以前那個高斯核獲得的,其參數分別爲:$u_0 = v_0 = 1/80$,$x_0 = y_0 = 0$,$\sigma_x^2 = 50$,$\sigma_y^2 = 40$,$\theta = -45°$,$F_0 = \sqrt{2}/80$,$\omega_0=45°$。

Gabor核空間域圖示

上圖爲Gabor核在空間域中的圖示,參數和上面那個Gabor核同樣。圖像左邊是實部,右邊是虛部。這樣的Gabor核與圖像進行卷積,咱們便能獲得圖像在$(u_0, v_0)$頻率附近的響應狀況。在圖像處理中,一般使用Gabor的實部進行卷積就能夠。

3、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.

歡迎到個人博客查看更多文章

相關文章
相關標籤/搜索