1. A computer-implemented method for image classification, comprising: generating, from a set of training images, a non-rectangular silhouette representing a relevant portion of an image window; generating, from the silhouette, a non-rectangular bitmap identifying fewer than all of the cells within a rectangular detection window, the rectangular detection window having a predetermined cell width and cell height; receiving an image for classification, the image including a cell width and cell height; applying the rectangular detection window to a portion of the image having the cell width and cell height of the rectangular detection window, wherein applying the detection window includes identifying cells within the image portion matching the identified cells of the non-rectangular bitmap; for each of the identified cells within the image portion, generating a histogram of orientations of the pixels within the cell; establishing overlapping cell blocks, each cell block having a plurality of contiguous identified cells from the image portion; generating, for each cell block, a descriptor including a histogram for each of the identified cells in the cell block, wherein each histogram within the descriptor is normalized to all of the histograms within the descriptor; and evaluating the generated descriptors against the set of training images in order to determine whether to identify the image portion as including a class of object associated with the set of training images.