HOG
1) 梯度计算与方向量化
HOG 特征的第一步是对图像进行梯度计算。 通常采用一阶差分算子在水平方向和垂直方向上 分别计算图像的梯度响应, 从而获得每个像素点的梯度幅值与梯度方向。 由于梯度对光照变化相对不敏感, 这一表示能够较好地反映局部结构信息。
对于图像中任一像素点,其梯度幅值 \( m(x, y) \) 与方向 \( \theta(x, y) \) 可表示为:
\[ m(x, y) = \sqrt{G_x(x, y)^2 + G_y(x, y)^2} \]
\[ \theta(x, y) = \tan^{-1}\!\left( \frac{G_y(x, y)}{G_x(x, y)} \right) \]
其中 \( G_x \) 和 \( G_y \) 分别表示在 水平方向与垂直方向上的梯度响应。
2) Cell 内方向直方图统计
在获得像素级梯度信息后, HOG 将图像划分为若干个小的空间单元(cell), 并在每个 cell 内对梯度方向进行统计。 每个 cell 内的像素点根据其梯度方向 投票到对应的方向区间(bin)中, 投票权重通常由梯度幅值决定。
梯度方向空间通常被量化为若干个离散区间, 常见设置为 9 个方向 bin, 覆盖 \(0^\circ\) 到 \(180^\circ\) 的无符号方向范围。 通过这种方式, 每个 cell 可由一个固定长度的方向直方图表示, 从而刻画该区域内的局部边缘分布特征。
3) Block 归一化
为了进一步增强特征对光照变化和局部对比度变化的鲁棒性, HOG 引入了 block 结构对 cell 直方图进行归一化。 一个 block 通常由若干相邻的 cell 组成, 并在 block 级别对其包含的方向直方图进行联合归一化。
通过在不同位置滑动 block 并重复归一化过程, 同一个 cell 的方向直方图 会出现在多个 block 中, 从而增强描述子的稳定性。 经过归一化后的 block 特征被串联起来, 构成整幅图像的 HOG 特征表示。
