圖像插值方法和HOG方向梯度直方圖

1.圖像插值兩種方法

取自點擊打開鏈接

a.最鄰近插值法(Nearest Interpolation)

這是最簡單的一種插值方法,不需要計算。在待求像素的四鄰像素中,將距離待求像素最近的鄰接像素灰度值賦予待求像素。設i+u, j+v(i, j爲正整數, u, v爲大於零小於1的小數,下同)爲待求象素座標,則待求象素灰度的值 f(i+u, j+v) 如下圖所示:


如果(i+u, j+v)落在A區,即u<0.5, v<0.5,則將左上角象素的灰度值賦給待求象素,同理,落在B區則賦予右上角的象素灰度值,落在C區則賦予左下角象素的灰度值,落在D區則賦予右下角象素的灰度值。

最鄰近元法計算量較小,但可能會造成插值生成的圖像灰度上的不連續,在灰度變化的地方可能出現明顯的鋸齒狀。


b.雙線性內插法(Bilinear Interpolation)

雙線性內插法是利用待求象素四個鄰象素的灰度在兩個方向上作線性內插,如下圖所示:


對於 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度變化爲線性關係,則有:

f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j)

同理對於 (i+1, j+v) 則有:

f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j)

從f(i, j+v) 到 f(i+1, j+v) 的灰度變化也爲線性關係,由此可推導出待求象素灰度的計算式如下:

f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1)

雙線性內插法的計算比最鄰近點法複雜,計算量較大,但沒有灰度不連續的缺點。它具有低通濾波性質,使高頻分量受損,圖像輪廓可能會有一點模糊。圖像看起來更光滑。


2.圖像hog方向直方圖特徵處理

轉自點擊打開鏈接

1.分割圖像

因爲HOG是一個局部特徵,因此如果你對一大幅圖片直接提取特徵,是得不到好的效果的。原理很簡單。從信息論角度講,例如一幅640*480的圖像,大概有30萬個像素點,也就是說原始數據有30萬維特徵,如果直接做HOG的話,就算按照360度,分成360個bin,也沒有表示這麼大一幅圖像的能力。從特徵工程的角度看,一般來說,只有圖像區域比較小的情況,基於統計原理的直方圖對於該區域纔有表達能力,如果圖像區域比較大,那麼兩個完全不同的圖像的HOG特徵,也可能很相似。但是如果區域較小,這種可能性就很小。最後,把圖像分割成很多區塊,然後對每個區塊計算HOG特徵,這也包含了幾何(位置)特性。例如,正面的人臉,左上部分的圖像區塊提取的HOG特徵一般是和眼睛的HOG特徵符合的。

接下來說HOG的圖像分割策略,一般來說有overlap和non-overlap兩種,如下圖所示。overlap指的是分割出的區塊(patch)互相交疊,有重合的區域。non-overlap指的是區塊不交疊,沒有重合的區域。這兩種策略各有各的好處。

non-overlapoverlap

先說overlap,這種分割方式可以防止對一些物體的切割,還是以眼睛爲例,如果分割的時候正好把眼睛從中間切割並且分到了兩個patch中,提取完HOG特徵之後,這會影響接下來的分類效果,但是如果兩個patch之間overlap,那麼至少在一個patch會有完整的眼睛。overlap的缺點是計算量大,因爲重疊區域的像素需要重複計算。

再說non-overlap,缺點就是上面提到的,有時會將一個連續的物體切割開,得到不太“好”的HOG特徵,優點是計算量小,尤其是與Pyramid(金字塔)結合時,這個優點更爲明顯。

2.計算每個區塊的方向梯度直方圖

將圖像分割後,接下來就要計算每個patch的方向梯度直方圖。步驟如下:

A.利用任意一種梯度算子,例如:sobel,laplacian等,對該patch進行卷積,計算得到每個像素點處的梯度方向和幅值。具體公式如下:

 

其中,Ix和Iy代表水平和垂直方向上的梯度值,M(x,y)代表梯度的幅度值,θ(x,y)代表梯度的方向。

 

B.將360度(2*PI)根據需要分割成若干個bin,例如:分割成12個bin,每個bin包含30度,整個直方圖包含12維,即12個bin。然後根據每個像素點的梯度方向,利用雙線性內插法將其幅值累加到直方圖中。

 

C.(可選)將圖像分割成更大的Block,並利用該Block對其中的每個小patch進行顏色、亮度的歸一化,這一步主要是用來去掉光照、陰影等影響的,對於光照影響不劇烈的圖像,例如很小區域內的字母,數字圖像,可以不做這一步。而且論文中也提及了,這一步的對於最終分類準確率的影響也不大。

3.組成特徵

將從每個patch中提取出的“小”HOG特徵首尾相連,組合成一個大的一維向量,這就是最終的圖像特徵。可以將這個特徵送到分類器中訓練了。例如:有4*4=16個patch,每個patch提取12維的小HOG,那麼最終特徵的長度就是:16*12=192維。

4.一些引申

 與pyramid相結合,即PHOG。PHOG指的是,對同一幅圖像進行不同尺度的分割,然後計算每個尺度中patch的小HOG,最後將他們連接成一個很長的一維向量,作爲特徵。例如:對一幅512*512的圖像先做3*3的分割,再做6*6的分割,最後做12*12的分割。接下來對分割出的patch計算小HOG,假設爲12個bin即12維。那麼就有9*12+36*12+144*12=2268維。需要注意的是,在將這些不同尺度上獲得的小HOG連接起來時,必須先對其做歸一化,因爲3*3尺度中的HOG任意一維的數值很可能比12*12尺度中任意一維的數值大很多,這是因爲patch的大小不同造成的。PHOG相對於傳統HOG的優點,是可以檢測到不同尺度的特徵,表達能力更強。缺點是數據量和計算量都比HOG大了不少。

參考文獻:

Navneet Dalal and Bill Triggs,《Histograms of Oriented Gradients for Human Detection》,2005

A. Bosch, A. Zisserman, and X. Munoz, 《Representing shape with a spatial pyramid kernel》,2007


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