梯度方向直方圖 (histogram of oriented gradient, hog) 是影象處理經典的特徵提取演算法。hog 特徵是直接將影象畫素點的方向梯度作為影象特徵,包括梯度大小和方向。通過計算影象區域性區域的梯度直方圖特徵,然後將區域性的特徵串聯起來,構成整幅影象的 hog 特徵,其原理圖如圖1所示。
hog特徵的實現步驟如下:
1.影象標準化。影象標準化如公式1所示, 表示影象(x,y)位置處的畫素值,gamma表示壓縮係數,通常取值為 0.5。
2. 計算梯度。在影象的(x,y)位置,計算影象梯度。包括水平方向的梯度和垂直方向的梯度,並據此計算每個畫素位置的梯度方向值 。水平和垂直方向的梯度運算元計算公式分別為:
水平方向:[-1 0 1]
垂直方向:[-1 0 1]t
根據兩個方向的梯度運算元,計算畫素點(x,y)處的梯度。
畫素點(x,y)處的梯度幅值
3.劃分單元格。將影象分成多個單元格cell,給每個cell構建梯度方向直方圖。梯度直方圖的橫座標表示梯度方向,縱座標表示對應梯度方向的幅值。
如圖2所示為9通道示意圖。梯度直方圖的橫座標通常有9個直方圖通道,是把梯度方向劃分為9個方向塊。梯度直方圖的縱座標表示對應梯度方向的幅值,梯度幅值與梯度大小有緊密聯絡。梯度幅值越大,對應該方向上的權值越大,則這個方向的縱座標取值越大。
4. 劃分區域。把細胞單元cell組合成大的區域block,區域內歸一化梯度直方圖。如圖 3所示為3x3模式,乙個block中有9個cell單元格,乙個block的 hog 特徵是這 9個cell的特徵串聯而得到的。
5.收集 hog 特徵。將所有塊中特徵集合在一起,組成影象 hog 特徵。
使用如a所示的人物影象,使用matlab整合的hog特徵提取函式,可以得到如圖所示b所示的特徵,可以看出已經畫出了影象的梯度方向圖,圖c為放大特徵影象得到的結果。
以上通過乙個簡單的matlab函式就可以實現。
clc;
clear all;
close all;
img = imread('2.png');
[featurevector,ho**isualization] = extracthogfeatures(img);
figure;
imshow(img);
hold on;
plot(ho**isualization);
特徵工程 特徵提取
特徵提取 將任意資料 如文字或影象 轉換為可用於機器學習的數字特徵 注 特徵值化是為了計算機更好的去理解資料 字典特徵提取 作用 對字典資料進行特徵值化 dictvectorizer.get feature names 返回類別名稱 from sklearn.feature extraction i...
顏色特徵提取
顏色特徵是在影象檢索中應用最為廣泛的視覺特徵,主要原因在於顏色往往和影象中所包含的物體或場景十分相關。此外,與其他的視覺特徵相比,顏色特徵對影象本身的尺寸 方向 視角的依賴性較小,從而具有較高的魯棒性。面向影象檢索的顏色特徵的表達涉及到若干問題。首先,我們需要選擇合適的顏色空間來描述顏色特徵 其次,...
顏色特徵提取
顏色特徵是在影象檢索中應用最為廣泛的視覺特徵,主要原因在於顏色往往和影象中所包含的物體或場景十分相關。此外,與其他的視覺特徵相比,顏色特徵對影象本身的尺寸 方向 視角的依賴性較小,從而具有較高的魯棒性。面向影象檢索的顏色特徵的表達涉及到若干問題。首先,我們需要選擇合適的顏色空間來描述顏色特徵 其次,...