1. A computer-implemented method of generating a histogram for an image, comprising: under control of one or more computing systems configured with executable instructions, determining a set of keypoints for an image; analyzing a circular region of the image around each of the set of keypoints; determining a dominant orientation of each of the circular regions based at least in part upon a plurality of gradients of each of the circular regions; positioning a polar spatial binning layout to be centered on each of the set of keypoints, each of the polar spatial binning layouts being rotated relative to the dominant orientation; extracting a set of gradients from pixel locations within the bins of each polar spatial binning layout, the extracted gradients being rotated relative to the dominant orientation; and generating a histogram by accumulating the gradients into positions based at least in part on the bin assigned to each gradient and the direction of the gradient.