理论

计算图像中每个像素的图像梯度方向和幅度。x 方向和 y 方向的梯度滤波核 为:

公式 47。


梯度幅度 和方向 然后计算为:

公式 48。


根据其方向,计算出的梯度随后分配给特定数量的方向 Bin。 对 Bin 的投票是 梯度幅度的 函数。正如 Dalal 和 Triggs 所发现的,在 将方向划分为 9 个 Bin 在将 HOG 特征用于行人检测方法时 可获得最佳结果 [Dal05]。在 VA 示例设计“HOG_9Bins_HistogramMax.va”和“HOG_9Bins_Histogram.va”中,我们实现了这种 Binning。 此外,在示例“HOG_4Bins_HistogramMax.va”中,我们将其划分为 个 Bin。 特定方向分配 给某个 Bin(方向为 )是通过 插值完成的:

公式 49。


在此 是 Bin 之间的角度步长大小。 方向梯度直方图(每个区域对应 8x8 像素)的单个 Bin 列 随后计算为:

公式 50。


然后,将 8x8 像素的每个单元的直方图组合成大小为 2x2 单元的块,以涵盖亮度或对比度的局部方差。 这些块具有 的重叠。 将 HOG 描述符用于目标识别目的时,块归一化(算法见 [Dal05])可将性能提升 倍。 当前设计示例中省略了块归一化。在设计“HOG_4Bins_HistogramMax.va”和“HOG_9Bins_HistogramMax.va”中, 最大直方图方向 被转发到 DMA,而在“HOG_9Bins_Histogram.va”中,完整的方向梯度直方图被发送到 PC。 下面介绍的设计可以轻松适应用户的特殊用途。也就是说,可以根据 [Dal05]另外实现特定数量和步长的方向 Binning 或块 归一化。