1. One or more computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising: receiving a plurality of training image features; and generating a hierarchical sparse codebook based at least upon the plurality of training image features, the generating comprising creating a plurality of levels for the hierarchical sparse codebook, each level being associated with a respective sparseness factor.