1. An apparatus comprising: a memory device; a hardware accelerator comprising: a programmable convolution module that is configured to compute a gradient vector for at least one pixel in an input image, wherein the gradient vector comprises a first gradient component along a first axis and a second gradient component along a second axis, and a histogram of gradient (HoG) estimator module configured to receive the gradient vector and identify one of a plurality of orientation bins in a HoG descriptor associated with the gradient vector using an orientation table stored in the memory device; and a HoG binning module configured to add a contribution of the gradient vector to the one of the plurality of orientation bins based on a magnitude of the gradient vector, thereby generating the HoG descriptor.