1 什么是hog特征
hog特征是histogram of gradient的缩写。我们观察图像时,信息更多来自目标边沿的突变。我们计算一块区域内的所有像素处的梯度信息,即突变的方向和大小,然后对360度进行划分,得到多个bin,统计该区域内的所有像素所在的bin,就得到了一个histogram。这就是hog特征。
2 hog特征的提取方法
2.1 将彩色图像转换为灰度图像
2.2 Gamma归一化
2.3 计算每幅图像的梯度
2.3.1 梯度分量的计算
水平模板:[-1,0,1],水平方向以水平向右为正方向
竖直模板:[1, 0, -1]^T,竖直方向以竖直向上为正方向
2.3.2 梯度的计算
如上图所示,计算出alpha和beta,然后alpha属于[0, 45度)的bin,beta属于[270度, 315)度的bin。
alpha = arctan(y/x)
beta = 360度 - arctan(y/x)
其中x和y是该梯度分别沿x轴和y轴的分量的模值。
2.4 将图像划分为多个cell,每个cell是6像素*6像素,然后每2*2的cell构成一个block
2.5 对每个cell中的每个像素的梯度按照方向统计直方图,360度bin的划分如下,这里进行了8等分
2.6 cell直方图的计算
分别得到落入[0, 45) [45, 90) [90, 135) [135, 180) [180, 225) [225, 270) [270, 315) [315, 360)的梯度,然后把每个bin中的梯度的模值相加,就得到了该bin的分量。
这样就得到了一个cell的特征,即一个8维的向量。
2.7 block特征的计算
将block中的cell的所有特征串联起来,构成该block的特征,然后归一化,就是说,把每个特征除以该特征向量的模值,归一化是为了消除光照的影响。这样每个block是一个8*4=32维的向量。
2.8 block是可以重叠的,block中的cell不重叠
也就是说,对于整个image而言,block可以重叠,比如说步长是8个像素,那么从0开始到11是一个block,然后从8开始到19是一个block,从16开始到27是一个block,它们之间是有重叠的。
2.9 最终的特征向量
将所有的block的特征向量串联起来就是最终的特征向量了,即hog特征。