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) 编辑 收藏 举报