Histogram of Oriented Gradients

Steps to compute HoG of an image.

  • Gradients computation: Compute image gradients $G_x$ and $G_y$ by convolving the image with $[−1,0,1]$ and $[−1,0,1]^{T}$ respectively
  • Magnitude and direction of each pixel $$\begin{aligned} m &= \sqrt{G_x^2+G_y^2} & \theta &= \tan^{-1}\left(\frac{G_y}{G_x}\right) \end{aligned}$$
  • For each cell in the image ($8 \times 16$)
    • Oriented histogram The histogram is created by binning pixel orientation $\theta$
    • For a consecutive bin pair $(\theta_l,\theta_r)$ where a pixel $(m,\theta)$ falls, the histogram is populated as $$\begin{aligned} V(\theta_l) &= \frac{(\theta-\theta_L)}{|bin|}m & V(\theta_r) &= \frac{(\theta_r-\theta)}{|bin|}m \end{aligned}$$
  • Normalise histograms Combine(concatenate) histograms of neighbouring $2 \times 2$ overlapping cells blocks and $\ell_2$ normalise this histogram. This step is to prevent lighting based variations in the image on the histogram

tags: computer-vision