方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。
其实本质就是梯度的统计信息,而梯度主要存在于边缘的地方。在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。
Hog特征提取主要依靠于三个参数: 检测窗口、块(block)、细胞单元。假定提取参数为 winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8),nbins(9)
其中nBins表示在一个胞元(cell)中统计梯度的方向数目,例如nBins=9时,在一个胞元内统计9个方向的梯度直方图,每个方向为180/9=20度
Hog特征提取中最小的统计单位,我们把它叫细胞单元(cell)。采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。
性能提升 :把每个Block进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。具体步骤中第5点所述。
HOG提取流程图如下
以一个检测窗口提取HOG为例
1. 灰度化
2.Gamma归一化
采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;
其实就是对像素点做 幂率 处理
梯度大小就是作为投影的权值,比如某个像素的梯度方向是20-40度,然后它的梯度大小是100, 那么直方图第2个bin的计数就在原基础上+100.
5.Block梯度强度归一化
之前就提到了,多个cell组成一个block。
由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。
把各个细胞单元组合成大的、空间上连通的区间(blocks)。这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。我们将归一化之后的块描述符(向量)就称之为HOG描述符。
6.收集HOG特征
最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。
7.一个图像的HOG特征维数总共有多少呢?
对于128*64的图像,cell为8*8,2*2个cell组成一个block,则block为16*16,每个像素9个梯度方向,则每个block内有 9*2*2=36,滑动步长为8像素,则水平方向有128/8 -1 = 15个扫描窗口,垂直方向有64/8 -1 = 7个扫描窗口,所以 总共有 36 * 15 * 7 = 3780个特征
所以HOG特征维数 取决于一个block内有多少个cell和滑动步长