視覺中的經典圖像特徵小結(一): 顏色直方圖, HOG, LBP

[普兒原創, 若有錯誤和紕漏歡迎指正. 更新中...]函數

 1. 顏色直方圖

顏色空間在本質上是定義在某種座標系統下的子空間,空間中的每個座標表示一種不一樣的顏色。顏色空間的目的在於給出某種顏色標準,使得不一樣的設備和用途都能對顏色有一致的描述。這裏主要介紹兩種不一樣的顏色空間,包括RGB顏色空間和CIE-Lab顏色空間,如圖4-2所示。spa

 

 (a)RGB顏色空間; (b)CIE-Lab顏色空間blog

圖1 顏色空間示意圖it

 

RGB顏色空間是定義在三維笛卡爾座標系中的顏色模型,每一種顏色定義在3個主顏色份量紅(R)、綠(G)、藍(B)上。如圖1(a)所示,立方體表示RGB空間,3個主顏色份量分別在立方體位於座標軸的角上,3個份量在虛線表示的立方體對角線上的取值相等,表示灰度值空間。座標原點表示黑色,3個份量在距離原點最遠的角上取得最大值,表示白色。經過RGB顏色空間表示的圖像由分別由紅、綠、藍3個通道的圖像組成。當圖像被顯示出來時,3個通道的顏色被組合起來表示RGB顏色空間中的一種顏色。im

與RGB顏色空間不一樣,CIE-Lab顏色空間由國際照明委員會在1976年正式提出,旨在提供一種基於人類視覺感知特性的顏色系統,能經過數字的方式度量人體感知到的顏色的差異[1]。CIE-Lab顏色空間由明度(luminance)份量、a份量和b份量表示。其中明度份量表示顏色的灰度,a和b份量共同定義了色調和飽和度,a份量表徵從紅(+a)到綠(-a)的顏色,b份量表徵從黃(+b)到藍(-b)的顏色,且a、b份量相互垂直,如圖4-2(b)所示。直觀說來,CIE-Lab顏色空間是基於人的主觀感知定義的,例如沒有「偏紅的綠色」和「偏藍的黃色」,是用於替換過度簡化的RGB直角座標顏色空間的折中方案。統計

本文在RGB和CIE-Lab顏色空間的各通道圖像上提取直方圖做爲圖像區域的顏色特徵。所謂直方圖,是指強度爲\([0, L-1]\)範圍的圖像的離散函數\(h(r_k)=n_k\),其中\(r_k\)表示第\(k\)級灰度,\(n_k\)是圖像中灰度級爲\(r_k\)的像素個數。一般用圖像中的像素總數\(n\)除直方圖函數\(h(\cdot)\)的每一個值來獲得歸一化的直方圖\(P(r_k)=\frac{n_k}{n}, k=0, 1, \cdots, L-1\). 直觀說來,\(P(r_k)\)給出了灰度級爲\(r_k\)發生的機率估計值。margin

2. 方向梯度直方圖(HOG)

圖2. 方向梯度直方圖img

方向梯度直方圖(Histogram of Oriented Gradient, HOG)最初用於行人檢測,由Dalal等人[2]提出,現已被普遍應用於各類目標檢測問題中。方向梯度直方圖統計圖像的梯度方向和幅度(大小)信息,很是適合描述圖像的形狀特徵。di

在實現時,方向梯度直方圖首先將圖像分解若干圖像塊(block),每一個圖像塊中有若干細胞單元(cell),即矩形或環形的小圖像塊。而後計算每一個細胞單元的方向梯度直方圖,將同一圖像塊內的全部細胞單元的直方圖鏈接起來造成該圖像塊的方向梯度直方圖特徵,並對其進行歸一化。最後將圖像全部圖像塊的特徵描述鏈接起來就獲得了整張圖像的方向梯度直方圖特徵。co

下面介紹一個計算方向梯度直方圖的具體例子。如圖2所示,首先對每一個分割區域,取可以徹底包含該分割區域的最小矩形塊做爲初始圖像,並將該圖像灰度化,歸一化爲\(72\times 72\)的圖像。每一個圖像繼續劃分爲\(2\times 2\)的圖像塊,每一個圖像塊包含\(3\times 3\)的細胞單元,每一個細胞單元包含\(6\times 6\)個像素。在每一個細胞單元中,分別用\([-1, 0, 1]\)和\([1, 0, -1]^T\)的梯度算子對圖像作卷積提取水平方向的梯度\(G_x\)和垂直方向的圖像梯度\(G_y\)。而後梯度幅度\(M_G\)和方向\(\alpha_G\)能夠經過下述公式計算

\(M_G = \sqrt{G_x^2 + G_y^2}\),

\(\alpha_G = \tan^{-1} \frac{G_y}{G_x}\).

而後,再將梯度分爲8個區間,以梯度幅度做爲每一個區間的大小統計梯度直方圖。在統計完每一個細胞單元的直方圖後,將每一個圖像塊內的細胞單元直方圖鏈接起來進行歸一化,獲得該圖像塊的統計直方圖。最後,將全部圖像塊的直方圖鏈接起來,獲得原始圖像的方向梯度直方圖,維度爲\(8\times 3 \times 3 \times 2 \times 2 = 288\)維,做爲該圖像的特徵描述。

 

3. 局部二值模式(LBP)直方圖

圖3. 局部二值模式

局部二值模式(Local Binary Pattern,LBP)最先由Ojala等人[3]提出,是一種描述局部紋理特徵的算子,最先應用於人臉識別、表情識別等問題。

局部二值模式算子的計算基於紋理單元(texture units),經過對多個紋理單元的分析就能獲得一個圖像區域的紋理譜(texture spectrum)。在局部二值模式中,一個紋理單元定義爲一個\(3\times 3\)的圖像窗口(圖3(a)),由中心像素周圍的8個值表徵,其中每一個值的取值只有\((0, 1)\),若周圍像素的值大於中心像素,則取值爲1,不然取值爲0(圖3(b)). 注意一個紋理單元全部的取值可能有\(2^8 = 256\)種。而後,對該窗口進行\(3\times 3\)的卷積操做,即給紋理單元中的8個值賦予權重(圖3(c))。最後將紋理單元的8個值相加,獲得該紋理單元的響應(圖3(d), 響應爲\(1+8+32+128 = 169 \))。

只實際應用中, 每每是針對一個圖像計算每一個像素的LBP響應, 最後再統計全部LBP響應的直方圖.

相關文章
相關標籤/搜索