1. A computer-implemented method for feature matching, the method comprising: generating a hierarchical k-means tree model comprising leaf nodes using feature descriptor values from a set of source images; given a set of features from a first image, each feature comprising a feature descriptor value, a location in the first image, and a feature identifier, registering into the tree model the set of features from the first image such that at least some of the leaf nodes of the tree model are associated with one or more feature identifiers of features from the first image; and for each query feature from a set of features from a second image, each feature from the second image comprising a feature descriptor value and a location in the second image: querying the tree model to identify a leaf node that most closely corresponds to the query feature's corresponding feature descriptor value; and selecting a best match feature in the first image from the one or more feature identifiers that are registered with the identified leaf node; wherein the step of generating the hierarchical k-means tree model includes using recursive clustering and comprises: [a] clustering the feature descriptor values from the set of source images into a group, the group having an associated node value; [b] subdividing at least one group of feature descriptor values into a plurality of groups, each group comprising an associated node value and one or more feature descriptor values assigned to the node value of the group; and [c] repeating step [b] until a stop condition is reached.