HOG(histogram of oriented gradients)特征个人总结
前述
前段时间参加了一项无人飞行器竞赛,用到了HOG+SVM经典算法识别被测物体。赛后系统的查看论文、博客,对HOG特征进行总结。
HOG特征概述
HOG的全称是histogram of oriented gradients,即梯度方向直方图。在2005年,由Dr. Mubarak Shah在CVPR 2005上的论文Histograms of Oriented Gradients for Human Detection 中首次提出。HOG特征作为一种特征描述子,主要用于计算机视觉和图像处理中的物体检测。下面讲一下HOG特征的组成部分。
HOG特征是通过计算和统计图像局部区域的梯度方向直方图来构成的特征。如下图所示,HOG特征提取将图片分成窗口(window)、块(block)、单元(cell)、区间(bin)。其中窗口大小是块的整数倍,块在窗口内以某一固定步长进行滑动;块是单元的整数倍,块刚好可以填满整数倍的单元,并且梯度的计算也在单元内进行;区间是直方图内的横轴的区间,由于HOG特征是以梯度方向为横轴,需要对方向规定角度范围。根据上述论文得到,窗口的大小64x128,块的大小为16x16,步长为8,单元的大小为8x8,区间为9,效果最好。HOG特征算法提取如下。
HOG特征提取
图像预处理
如图所示,首先,我们将图片中的检测目标通过感兴趣区域(ROI)的方式提取出来,然后将ROI的大小缩放为 64 × 128 64\times128 64×128.然后,我们可以对图像进行伽马校正和灰度化。这两步可做可不做,对实验结果影响不大。其中伽马矫正可以调节图像对比度,减少光照对图像的影响(光照不均和局部阴影),修正过曝或者欠曝的图像。灰度化是将彩色图转换成灰度图,可以直接对彩色图做处理,先对彩色图做通道分离,然后分别对通道计算,采用梯度权值最大的通道作为该像素的梯度权值(即直方图的纵轴变量)。
计算梯度
HOG特征的方向梯度是以cell为单元,如下图a所示为图像中某一cell中的元素P以及其邻域像素值,图b为梯度方向的水平和垂直方向内核,分别用于计算水平梯度和垂直梯度。
a. 区间cell中某一像素 | b. 梯度计算的水平和垂直方向内核 |
先计算像素 P P P的水平梯度和垂直梯度,即水平梯度为 P x = c − a P_x=c-a Px=c−a,垂直梯度为 P y = d − b P_y=d-b Py=d−b.则每个像素的梯度权值和梯度方向为
P = P x 2 + P y 2 P=\sqrt{P_x^2+P_y^2} P=Px2+Py2</