HOG算法实现之路第一步

  首先,HOG算法的全称为 Histogram of Oriented Gradient,其中文意思为:方向梯度直方图。这个算法名称就表明了算法的主要思想: 统计 有方向的 梯度(梯度是有方向的)的直方图 来作为特征 的描述,再进一步说,它通过计算和统计图像局部区域的梯度方向直方图来构成特征。本质是梯度的统计信息,而梯度主要存在于边缘的地方。其实 边缘提取 、LBP特征、SIFT特征 都是基于梯度的。

  Hog特征结合SVM分类器已经被广泛应用于图像识别中,而该算法的是法国人Dalal在2005年提出的。(看到的许多经典算法都是国外人提出的,哎哎。。。)。我开始翻译这篇外文,然后把核心摘取出来贴在这里吧。

   HOG特征算法步骤:

                                      

第一步,输入图像

第二步,采用Gamma校正法对输入图像进行颜色空间的标准化(归一化)(可由相机前端实现)。   目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

                                                  

第三步,计算梯度。目的主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

                        

第四步,将梯度投影到单元的梯度方向,并计算梯度直方图;目的是为局部图像区域提供一个编码。由0度到180度 分 9个区间进行 梯度方向投影。

第五步,将所有单元格在块上进行归一化;归一化能够更进一步对光照、阴影和边缘进行压缩,通常,每个单元格由多个不同的块共享,但它的归一化是基于不同块的,所以计算结果也不一样。因此,一个单元格的特征会以不同的结果多次出现在最后的向量中。我们将归一化之后的块描述符就称之为HOG描述符。

 

 

第六步,收集得到检测空间所有块的HOG特征。该步骤就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。最终的特征向量 其实就是一个一维数组,里面存放了所以的特征。

第七步,线性SVM分类。

 

HOG特征参数配置: (以下单位为像素)

detectWindow:128 * 64  , 检测窗口大小。

Block:16 * 16。 4个Cell 组成一个 Block

Cell:8 * 8 。计算HOG特征的最小单元

BlockStrde: 8 * 8 。Block 在 检测窗口中的 扫描步长。

bins : 9。  在 0度 到 180度 分 9个区间 进行统计 梯度的方向数目。

 

Hog特征维数的计算

 每个block 有 4个 cell ,每个Cell 计算 9个 bin , 则一个block 有 4 * 9 = 36维数。 横向扫描 64/8 -1 = 7 次,纵向扫描 128/8 -1 = 15次,总共特征维数 = 15 * 7 * 36 = 3780维的特征。

 

posted on 2016-03-08 15:26  计算机视觉&机器视觉  阅读(872)  评论(0编辑  收藏  举报

导航