HOG

HOG是一种可以基于形状边缘特征的描述算子。它的思想是通过计算像素点的方向与幅度,统计其梯度直方图,该直方图作为一种特征值,可以直接用作SVM上直接进行分类检测。

方法步骤如下:

1)对于图片进行预处理,裁剪,用Gamma校正法对输入图像进行颜色空间的标准化,并将图片转化为灰度图(不需要颜色信息)。

2)计算每个像素的梯度(方向和幅度)。

3)划分滑动窗口,在滑动窗口内划分块,在块内划分出cell单元。对每个cell单元进行梯度直方图统计,在统计块内梯度直方图,在统计窗口内梯度直方图,为最后的特征向量。

 

步骤2)中的梯度计算如下:

梯度:\bigtriangledown f=grad(f)=\begin{bmatrix} g_{x}\\ g_{y} \end{bmatrix}=\begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{bmatrix}

角度:\alpha (x,y)=arctan\begin{bmatrix} \frac{g_{y}}{g_{x}} \end{bmatrix}

幅度:M(x,y)=mag(\bigtriangledown f)=(g_{x}^{2}+g_{y}^{2})^{\frac{1}{2}}

g_{x}=\frac{\partial f(x,y)}{\partial x}=f(x+1,y)-f(x,y)(离散像素点)

g_{y}=\frac{\partial f(x,y)}{\partial y}=f(x,y+1)-f(x,y)(离散像素点)

步骤3)中的意思为将原窗口中选择出一个滑动窗口作为此次识别范围(SVM判别区域),将该滑动窗口划分出区域块,再将该区域块划分为几个cell单元,此时的cell单元为像素级别大小(如6*6像素单元)。

HOG_第1张图片

 

该图为角度与幅度图。我们考虑角度范围为20、40、60...180共9个区域,我们计算得到的角度会归为9个角度之一,我们认某个角度和大于这个角度180度的相反方向为一个方向。

我们可以将2*2的cell单元作为一个块区域,对这个块区域进行上述直方图统计,然后以一个块区域从左到右,从上到下滑动,分别统计其直方图,直到该初始滑动窗口所有块都统计完成,HOG特征提取结束,进入下一步操作。

你可能感兴趣的:(目标识别,分类算法,图形学)