1. A method for determining one or more ranked candidate media in response to media query data generated at a mobile client device corresponding to a query media, comprising: receiving the media query data from the mobile client device, the media query data comprising feature data of one or more features of the query media encoded by one or more similarity preserving hashing functions into a plurality of hash bits and coordinate data for each of the one or more features; matching, on a server computer system, the one or more of the features of the query media with one or more corresponding features of a media database using the feature data of the query media to identify one or more features of the media database within a predetermined hamming distance in one or more hash tables from the one or more corresponding features of the query media to obtain one or more matched features in the media database, the features of the query media and the features of the media database each being assigned to one of a plurality of entries of the one or more hash tables using the plurality of hash bits as table indexes; determining, on the server computer system, one or more candidate media whose number of matched features exceeds a matched feature threshold; generating, on the server computer system, a geometry similarity score between the query media and each of the one or more candidate media using the feature data and the coordinate data; ranking, on the server computer system, the one or more candidate media based on the numbers of matched features and the geometry similarity score; and sending the ranked candidate media to the mobile client device.
1. A method for determining one or more ranked candidate media in response to media query data generated at a mobile client device corresponding to a query media, comprising: receiving the media query data from the mobile client device, the media query data comprising feature data of one or more features of the query media encoded by one or more similarity preserving hashing functions into a plurality of hash bits and coordinate data for each of the one or more features; matching, on a server computer system, the one or more of the features of the query media with one or more corresponding features of a media database using the feature data of the query media to identify one or more features of the media database within a predetermined hamming distance in one or more hash tables from the one or more corresponding features of the query media to obtain one or more matched features in the media database, the features of the query media and the features of the media database each being assigned to one of a plurality of entries of the one or more hash tables using the plurality of hash bits as table indexes; determining, on the server computer system, one or more candidate media whose number of matched features exceeds a matched feature threshold; generating, on the server computer system, a geometry similarity score between the query media and each of the one or more candidate media using the feature data and the coordinate data; ranking, on the server computer system, the one or more candidate media based on the numbers of matched features and the geometry similarity score; and sending the ranked candidate media to the mobile client device. 10. The method of claim 1 , wherein generating the boundary similarity score comprises: for each media of the query media and the candidate media, sampling a plurality of points along the boundary of the media, determining a distance between each sampled point and the center of the media to obtain boundary distance data, and applying a Fourier transform to the boundary distance data to obtain frequency magnitudes; and comparing the frequency magnitudes of the query media with the frequency magnitudes of the candidate media.