• 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