HOG方向梯度直方图,分解为方向梯度与直方图。在图像中梯度是像素值变换最快方向,边缘与梯度保持垂直方向。P0到P1的梯度方向:
1、检测窗口、块、单元格和梯度方向
检测窗口:WinSize=128*64像素,在图像中滑动的步长是8像素(水平和垂直都是)
块:BlockSize=16*16像素,在检测窗口中滑动的步长是8像素(水平和垂直都是)
单元格:CellSize=8*8像素
梯度方向:一个Cell的梯度方向分为9个方向,
在一个单元格内统计9个方向的梯度直方图
2、灰度化和标准化gamma空间
为了减少光照因素的影响,首先需要将整个图像进行规范化,这种处理能够有效降低图像局部的阴影和光照变化。 I(x,y)=I(x,y)gamma gamma=1/2
3、计算图像每个像素的梯度(大小和方向)
梯度算子:水平边缘算子: [-1, 0, 1] ;垂直边缘算子: [-1, 0, 1]T
式中分别表示输入图像中像素点(x,y)处的水平方向梯度、垂直方向梯度和像素值。像素点(x,y)处的梯度幅值和梯度方向分别为:
4、图像分割为小的Cell单元格
由于Cell单元格是HOG特征最小的结构单位,而且其块Block和检测窗口Win的滑动步长就是一个Cell的宽度或高度,所以,先把整个图像分割为一个个的Cell单元格(8*8像素)。
5、为每个单元格构建梯度方向直方图
上一步得到的像素点的梯度方向可以投影到这9个通道中,而梯度幅值则作为投影的权值,一个细胞的梯度方向直方图维数为9,其值为所有投影到该通道内的梯度幅值之和。将区间0~180以20为一个区间划分,每个区间以中心角度作为直方图的中心数值,假设要对梯度方向为15度的像素点进行处理,显然15与以10和30为中心的直方图最近,应该将该点的梯度幅值加权累加到这两个直方图上,权重分别为(30-15)/20=0.75和(15-10)/20=0.25。
6、把单元格组合成大的块(block),块内归一化梯度直方图
1个块是有2*2=4个细胞构成,一个块的梯度直方图4*9=36维。
三线性插值计算快内梯度直方图,左图中的蓝色方框为待处理的像素点,将待处理像素点的梯度幅值分别加权累加到周围4个细胞中与该像素点梯度方向相邻的2个通道(右方直方图中颜色较深的区域),共计8个直方图图柱,从而形成块内的梯度直方图。
7、生成HOG特征向量
对于64*128的图像而言,每8*8的像素组成一个cell,每2*2个cell组成一个块,以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。也就是说,64*128的图片,总共有36*7*15=3780个特征。
HOG特征并不是一种旋转不变的特征