How are HOGs calculated?

Histograms of oriented gradients for human detection seems to be the paper from which all other papers cite when they use HOG features. However, this was the only description I could find in it:

[...] In practice this is implemented by dividing the image window into small spatial regions (“cells”), for each cell accumulating a local 1-D histogram of gradient directions or edge orientations over the pixels of the cell. The combined histogram entries form the representation. For better invariance to illumination, shadowing, etc., it is also useful to contrast-normalize the local responses before using them. This can be done by accumulating a measure of local histogram “energy” over somewhat larger spatial regions (“blocks”) and using the results to normalize all of the cells in the block. We will refer to the normalized descriptor blocks as Histogram of Oriented Gradient (HOG) descriptors.

It is not clear to me how the HOG features are now calculated:

• How big are the cells? How is that size chosen?
• What is a 1-D histogram?
• What is a histogram of directions?

Suppose we have the following 5x5 patch of a grayscale image (I hope that is a normal size for a cell - if not, please just copy this block as often as necessary or give another example):

000 025 255 016 200

000 255 255 017 201

010 012 210 012 111

000 000 000 000 000

255 254 255 254 255

What would be the HOG features of it?

(Can you give a citable resource for the description?)

• Do you know what a gradient of an image is? Do you know what a histogram is?
– Dima
Commented Dec 28, 2015 at 14:25
• @Dima I know what a histogram is. I don't know what the gradient of an image is. Commented Dec 28, 2015 at 14:50
• Do you know what partial derivatives are?
– Dima
Commented Dec 28, 2015 at 14:52
• @Dima Yes, I know what partial derivatives are. Commented Dec 28, 2015 at 14:56