为什么要用方向梯度直方图(HOG)?
我们在日常生活中怎么样去判断一类事物具体是什么,大多数情况我们仅不需要去具体看它的细节仅需要观察这个事物的轮廓边缘就能做出判断,例如:距离很远我们也能从轮廓来判断哪一个是人哪一个是猫。由此可得出图像中的物体的边缘和轮廓时对于图像而言是很重要的特征。
而方向梯度直方图就是利用物体边缘的梯度值较大这一特点对图像进行边缘、轮廓特征的提取。
方向梯度直方图的基本流程为:
图像预处理-->计算梯度--->归一化Block中每个Cell的梯度直方图 --->生成特征向量

1.图像预处理
由于HOG只能对灰度进行计算,所以首先需要对图片进行灰度化处理和Gamma矫正(增强图片过暗处和过亮处的对比度)。
Gamma矫正可有效地降低图像局部的阴影和降低光照的影响。
作用:
- 灰度化:将彩色图像转换为灰度图像,减少图像的通道数,降低后续计算的复杂度,为后续梯度计算等操作简化数据基础。
- 伽马矫正:可有效地提高图像暗部或亮区的对比度效果,同时有效降低图像局部阴影和光照的影响,使图像的灰度分布更合理,为后续梯度计算和特征提取提供更优质的图像基础,提升特征的稳定性与准确性。
2.计算梯度
目的:通过梯度信息来描述图像中的物体边缘,轮廓,形状等纹理信息。HOG梯度直方图算法需要得到每一个域内像素特征向量的方向和大小以找到特征梯度大的区域从而提取特征。
我们怎么计算梯度模的方向和大小呢,其实与高中数学中向量大小和方向原理基本一致。
公式:

dx 等于该像素右侧像素减去左侧像素的差,dy等于该像素下方减去上方像素的差。
3.统计每个Cell中的梯度方向加权累计直方图
步骤一:将图像划分成若干 Cell(如 88、66),统计每个 Cell 的梯度直方图
原因:为保障直接使用全局统计梯度而导致丢失局部细节。通过划分小区域Cell,可以在局部范围内捕捉梯度的分布范围,使特征具有局部性,能精准的描述物体的局部纹理和边缘特征。避免全局捕捉的’模糊化‘。
步骤 2:Cell 的梯度方向划分为 9 个 Bin(18 份,每份 20°,对称角度归类)
原因:梯度方向是连续的(0°~180° 或 360°),直接处理连续值会导致计算复杂且鲁棒性差。通过离散化(分 Bin),将相似方向的梯度聚合,同时利用 “对称角度归类”(如 10° 和 170° 视为同一类,因为梯度方向具有对称性)进一步减少冗余。
目的:将连续的梯度方向量化为有限的类别,用直方图(9 个 Bin)的形式简化特征表示,在 “方向区分度” 和 “计算复杂度” 之间取得平衡,使特征更鲁棒、易计算。
步骤 3:以梯度模长为权重,统计 Cell 内每个 Bin 的加权数量
原因:梯度模长反映了边缘/纹理的强度,若仅仅只考虑方向数量会导致忽略梯度强弱差异,导致特征表达不准确。
4.归一化Block中每个Cell的梯度直方图
将单元Cell 组成更大的块(Block),拼接成直方图,组成特征向量。
目的:由于局部光照的变化以及北京前景对比度变化,使梯度强度变化非常大,这就需要对梯度做局部做局部对比度归一化。

5.将检测窗口中所有的Block的HOG拼接成一个特征向量,生成特征描述子
用Block对样本图像进行扫描,扫描步长为一个Cell大小,最后将所有块的特征串联为一个样本的特征向量。

HOG的应用:
HOG+SVM行人检测。HOG是常用的特征描述子,其功能是将图像转换为能表示图像特征的向量的形式,再将对应的向量作为分类模型的训练数据。
564

被折叠的 条评论
为什么被折叠?



