hog图像特征提取



[+]

原文;https://blog.csdn.net/u012336567/article/details/55809016





  1. HOG
  2. 1 HOG 算法的实现
    1. 11梯度计算
    2. 12 空间方向bin投票
    3. 13 构建Block和归一化
    4. 14 final descriptor
  3. 参考文献

图像特征提取在对象检测中具有重要的地位,许多论文提出过许多里程碑式的特征,比如LAB特征,HOG特征等。
HOG特征及FHOG特征(Deformable Part Model中HOG的一种变种)都是利用了图像的梯度信息作为图像信息的描述工具,其基本的思想可以查看HOG的wiki页面:

在一副图像中,局部的表象和形状(apparence and type)能够被梯度或者边缘的方向密度分布很好的描述

1.HOG

HOG特征的提出在2005年CVPR的会议上,全称Histogram of Orientation Gradient.

1.1 HOG 算法的实现

输入图像作者采用的是没有gamma矫正的RGB颜色空间图像。

1.1.1梯度计算

正如作者在论文中说的,人脸识别检测器对于如何计算像素点的梯度比较敏感。在作者的论文中指出经过大量的实验,发现最简单的才是最有效的。
也就是对图像不采用高斯平滑的情况下使用这里写图片描述 -X方向的分梯度模板;这里写图片描述 -Y方向上的分梯度模板。利用这两个模板遍历整个图像过后,每个点都具有在x和y方向两个分梯度值,通过这两个值利用以下的公式可以计算出总的梯度值,和角度。

][3]![这里写图片描述

角度计算公式

对于彩色的图片(也就是可能具有多通道的图片),我们在每个通道上均计算相应的值,然后选取梯度最大的通道作为该像素点的梯度向量。

1.1.2 空间/方向bin投票

接下来的工作就是要把梯度向量聚集起来。
每个像素都有自己的投票空间。该投票空间是这样划分的出来的,将图像分解为的cell,如图每个cell大小为8X8,并且cell与cell之间没有重叠部分。比如我们有 64X128的图片,经过上面的划分出(64/8)X(128/8)=128个cell。

大

在每个Cell中,我们构建对于方向的投票。方向可以是0 ~ 180度(无符号的梯度)或者0 ~ 360度(有符号的梯度)。论文中采用的是0 ~ 180度的无符号梯度投票。将0~180度平均分解成9个方向。像素的投票的值是实际梯度大小值。

在投票时为了reduce aliasing,我们会使用线性插值的方法进行投票。例如当前点的方向为65、梯度大小为20,这就需要向60度投票15,向80度投票5.

1.1.3 构建Block和归一化

在一幅图像中像素点梯度的大小范围可能因为受到光照和前景-背景对比度的变化而产生较大的差异。所以一个有效的方法就是依据局部cell的对比度进行归一化。

在HOG中局部对比度正则化的尺度是一个Block,Block的尺寸的大小是16X16,也就是一个Block中包含2X2个cell。另外每次block移动的步长为8 pixels,所以Block和Block之间是有重叠的,这样保证同一个cell的不同的归一化结果(cell在不同的Block中被归一化)能对最后的HOG向量都有贡献。

Block & normalization][6]![这里写图片描述

每个Block的特征描述是他包含的4个cell的投票结果的级联,也就是4*9=36维。遍历图像每获得一个36维的Block特征之后需要进行归一化,归一化的方法有很多,比如L1,L2,L2-Hys等。

论文的作者采用的是L2-Hys正则化方法
假设v是是36维未经正则化的向量,这里写图片描述表示的2范式,这里写图片描述是一个很小的值,防止除0错误。下面是L2-norm的方法

enter description here][9]![这里写图片描述

L2-Hys是在该公式计算出的结果的基础上,对36维中的每一维进行截断,限制每一维的最大值为0.2。

1.1.4 final descriptor

对于图像上的遍历的每一个block进行正则化后,将图像中所有的Block的descriptor收集起来就是整个图片的特征。
对于64X128的图像,可以分解成[(64-16)/8+1]X[(128-16)/8+1]=105个Block,每个具有Block36维特征(4 cell * 9 orientation),所以整个图像有105X4X9维特征。

猜你喜欢

转载自blog.csdn.net/zhouguangfei0717/article/details/80017556
今日推荐