1. A method in a computing system for matching a query image against a catalog of images to identify semi-identical images, the method comprising: maintaining an inverted index to a catalog of images, each image in the catalog of images characterized by vectors associated with principle feature points of the image, the inverted index comprised of hash values of the vectors associated with each image; receiving a query image that is to be searched against the catalog of images; characterizing the received query image by: extracting principal feature points from the query image; creating vectors characterizing the extracted principal feature points; and generating hash values for each of the vectors characterizing the query image; and searching the catalog of images to find semi-identical images to the query image by: comparing the query image hash values with the inverted index to the catalog of images; identifying a set of catalog images having a predetermined number of hash values in common with the query image hash values; identifying a number of geometric inliers in each image in the identified set of catalog images; and identifying, from the set of catalog images, a set of near-identical images based on images that have a total number of geometric inliers that exceed a threshold value.