PHOG特征
2016年7月13日 21:07:57
什么是PHOG
PHOG是Pyramid HOG(pyramid histogram of oriented gradient)的簡稱,是在圖像尺寸固定的情況下,計算不同尺度下的特征(這一點有點繞,是指要計算HOG特征的區塊的劃分尺度在變化),將這些特征進行拼接得到PHOG特征,在論文[1,2]中被提出和使用,用來做圖像分類。
PHOG原理
具體來講,HOG特征描述的是一個區域,它可以是一個cell大小,也可以是一個windows大小,anyway,ROI內逐像素計算梯度方向,然后按預設將所有角度等分為若干份,每個像素點的梯度方向就劃歸到特定角度范圍內,那么統計直方圖中就把它算到對應的“統計立柱(bin)”里面去,術語叫做“投票”,其投票權值是像素點的梯度幅值。逐像素操作后得到一個統計直方圖,它可以用一個一維向量表示。我們可以把這個向量叫做HOG特征。需要計算PHOG特征的圖像其尺寸是固定的,但要計算HOG特征則可以對這個圖片有不同尺度的劃分:第一層,只有1個區域;第二層:分為2x2個區域;第三層:分為4x4個區域;...。在同一劃分尺度圖里面,每個區域算出一個HOG特征,按順序進行拼接,得到當前尺度圖的HOG特征;所有尺度圖的HOG特征進行拼接,得到整個圖像空間尺度金字塔的PHOG特征。
怎么求PHOG
用偽代碼表示一下:
Input:
win:某圖像區域
bins: 梯度方向(角度值)要劃分到幾個區域,即180°或360°要等分的數目。通常取360°和8等分
L: 尺度金字塔要搞幾層?通常取3。表示除了原圖尺度外,另外再算3個“原有1/2尺度”圖像的HOG特征
Output:
PHOG:尺度金字塔所有層的HOG特征的拼接
Algorighm:
function HOG(area){
%計算某區域area的HOG特征
逐像素計算梯度方向(角度值)
按等分方向數量,將梯度方向劃歸到不同的區間,進行統計
統計得到的直方圖,是一個向量
}
function level_HOG(level){
%計算某層金字塔的HOG特征
將均等劃分的若干個窗口,分別計算HOG特征
將這些HOG特征進行拼接
}
function PHOG(win){
%計算某區域win的尺度金字塔的PHOG特征
逐層計算win的尺度金字塔的HOG特征
將這些HOG特征進行拼接
}
PHOG的維度
PHOG作為HOG的變種,也是一個描述符,在代碼實現中就是一個一維向量。那么PHOG描述符的長度是多少?即,PHOG這個向量有多少維?
L=3, n=8時:
第0層是整圖算HOG,1x8維的HOG特征
第1層是2x2劃分,2x2x8維的HOG特征
第2層是4x4劃分,4x4x8維的HOG特征
第3層是8x8劃分,8x8x8維的HOG特征
因此,此時的phog_dimension=(1+4+16+64)x8=680維
source code
http://www.robots.ox.ac.uk/~vgg/research/caltech/phog.html
ref
[1] Bosch, A. , Zisserman, A. and Munoz, X.
Representing shape with a spatial pyramid kernel
Proceedings of the International Conference on Image and Video Retrieval (2007)
[2] Bosch, A. , Zisserman, A. and Munoz, X.
Image Classification using Random Forests and Ferns
Proceedings of the 11th International Conference on Computer Vision, Rio de Janeiro, Brazil (2007)
文章列表