原文站点:https://senitco.github.io/2017/06/10/image-feature-hog/
方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。
算法思想
HOG特征的核心思想是在一幅图像中,局部目标的表象和形状(appearance and shape)能够被梯度和边缘的方向密度(梯度的统计信息,而梯度主要存在于边缘地方)很好地描述。通过将整幅图像分为多个小的连通区域(cells),并计算每个cell的梯度或边缘方向直方图,这些直方图的组合可用于构成特征描述子,为了提高准确率,可以将局部直方图在图像更大范围内(称为block)进行对比度归一化(constrast-normalized)。所采用的方法是:先计算各直方图在对应的block中的密度,然后根据这个密度对block中的所有cell做归一化(normalize)。归一化操作对光照变化和阴影具有更好的鲁棒性。
算法特点
- HOG特征是在图像的局部操作,对图像几何和光学的变化有较好的稳健性,这两种变化只会出现在更大的空域上。
- 在粗粒度的空域抽样、细粒度的方向抽样,以及较强的局部光学归一化条件下,只要行人大体保持直立的姿势,可以容许行人有一些细微的肢体动作,而不影响检测效果。
算法实现
HOG特征提取的流程如下:
图像预处理
- 灰度化:HOG提取的是纹理特征,颜色信息不起作用,所以将彩色图转化为灰度图。
- Gamma校正(归一化):对图像进行Gamma校正,完成对整个图像的标准化(归一化),可以调节图像的对比度,降低局部光照不均匀或者阴影的影响,同时也可以在一定程度上降低噪声的干扰,提高特征描述器对光照等干扰因素的鲁棒性。校正公式如下:
I(x,y)=I(x,y)γ,γ=12
计算图像梯度
分别求取图像水平方向和垂直方向的梯度,然后计算每个像素点的梯度幅值和方向,微分求图像梯度不仅可以捕获图像边缘和纹理信息,而且可以弱化光照不均匀的影响。
Gx(x,y)=I(x+1,y)−I(x−1,y)
Gy(x,y)=I(x,y+