HOG这种方法跟边缘方向直方图,尺度不变特征变换(SIFT)以及形状上下文方法(shape contexts)有很多相似之处,但与它们的不同点是:HOG描述器是在一个网格密集的大小统一的细胞单元上计算,而且为了提高性能,还采用了重叠的局部对比度归一化.HOG方法是在图像的局部细胞单元上操作,所以它对图像几何和光学的形变都能保持很好的不变性.
算法步骤step1:Gamma/Colour Normalization
作者分别在灰度空间、RGB色彩空间和LAB色彩空间上对图像进行色彩和 伽马归一化,但实验结果显示,这个归一化的预处理工作对最后的结果没有影响,原因可能是:在后续步骤中也有归一化的过程,那些过程可以取代这个预处理的归一化。所以,在实际应用中,这一步可以省略。
算法步骤step2:Gradient Computation
Several smoothing scales were tested
include-
ing
σ
=0 (none)
uncentred
[−1, 1],
centred
[−1, 0, 1] and cubic-
corrected
[1, −8, 0, 8, −
1]
2×2
diagonal
3×3
Sobel
Simple 1-D [−1, 0, 1] masks at
σ
=0 workbest
For
colour
images, wecalculate separate gradients for each
colour
channel, andtake the one with the largest norm as the pixel’s gradient vector.
算法步骤step3:Spatial / Orientation Binning
0◦– 180◦ (“unsigned” gradient) or 0◦–360◦ (“signed”gradient)
,
作者发现,采用无向的
梯度和
9
个直方图
通道,能在行人检测试验中取得最佳
的效果
为每个
cell
统计方向梯度直方图,是一个
9
维的向量,采用三次插值进行投票。为什么是三次插值呢?[两次是偏移x,y,一次是角度,比如我的角度是20度的话,那就要分给0-20度和20-40度的]
it is useful to
downweight
pixels near the edges of the block by applying aGaussian spatial window to each pixel before accumulating orientation votesinto cells.
(
σ
= 0.5 ∗ blockwidth
)
算法步骤step4:grouping the cells together into larger blocks
如左图,会有
4
*
4
个
block,
每个
block
里面都有
4
个
cell,
所以总共有
(4*4)*(2*2)*9
个特征
R-
HOG
区间
大体上是一些
方形的
格子,
它可以有三个参数
来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞
的直方图通道数目
block的overlap提高了5%的performance,overlap可以消除block之间的突变
算法步骤step5:Normalization and Descriptor Blocks
L2-Hys, L2-norm followed by clipping (limitingthemaximumvaluesof v to 0.2) and renormalizing
算法步骤step6:svm训练
我用的是libsvm
算法的总结
RGB
colour
space with nogamma
cor
rection
;
[−1, 0, 1]gradient filter with no smoothing ;
linear
gradient voting into 9 orientation bins in 0◦–180◦;
16
×16 pixelblocks of four 8×8 pixel cells; Gaussian spatial win-
dow
with
σ
= 8 pixel;
L2
-Hys
(Lowe-styleclipped L2 norm) block normalization;
block
spacing stride of 8 pixels (hence 4-fold coverage of each cell)
;
64×128detection window ;
linear
SVM classifier.
对于64*128的窗口,因为cell width = cell height = 8,又加上block的overlap,所以总共有7*15个block
每个block内又有4个cell,每个cell是一个9维的特征,所以每个block有36维特征
我们来计算一下特征数
:(64/8-1)*(128/8-1) * 4 * 9 = 3780
作者还提到了圆形的block
e图就是生成的特征
根据f图就可以看出对于人来说,轮廓占的svm权重比较大
INRIA行人库 http://pascal.inrialpes.fr/data/human/
hog+svm源代码 timehandle的http://hi.baidu.com/nokltkmtsfbnsyq/item/f4b73d06f066cd193a53eec3