Hash-based image identification
First Claim
1. A method of identifying target images, comprising:
- obtaining keypoints at different locations within a sample image and descriptor vectors for the keypoints, the descriptor vectors describing local image information around the keypoints, where each descriptor vector is an n-dimensional array;
generating features based on hashes of data vectors that include at least one of the descriptor vectors, where each feature is a tuple comprising a hash value of each data vector and a quantization function mapping an orientation of each keypoint to a range of integers;
searching for the features in an image-feature database; and
retrieving and providing target images based on a number of the features for which corresponding features exist in individual database images whose features are represented in the image-feature database,wherein the hashes are performed using a hash function for which a probability that the hash of an arbitrary first vector corresponds to the hash of an arbitrary second vector is a function of an angle between the first vector and the second vector,wherein the hash function generates a characteristic data string from a data vector larger than the characteristic data string,wherein the arbitrary first vector is a first descriptor vector, and the arbitrary second vector is a second descriptor vector,and wherein each feature corresponds to two keypoints, and each feature is a tuple;
wherein each tuple comprises;
a hash value of a first descriptor vector for a first keypoint, a hash value of a second descriptor vector for a second keypoint, a first quantization function mapping an orientation of the first keypoint in relation to the second keypoint to a range of integers, and a second quantization function mapping an orientation of the second keypoint in relation to the first keypoint to the range of integers.
8 Assignments
0 Petitions
Accused Products
Abstract
Provided are, among other things, systems, methods and techniques for identifying target images in the following manner. Keypoints at different locations within a sample image and descriptor vectors for the keypoints are obtained, the descriptor vectors describing local image information around the keypoints. Features are generated based on hashes of data vectors that include at least one of the descriptor vectors, and an image-feature database is searched for the features. Target images are retrieved and provided based on the number of the features for which corresponding features exist in individual database images whose features are represented in the image-feature database. The foregoing hashes are performed using a hash function for which a probability that the hash of an arbitrary first vector corresponds to the hash of an arbitrary second vector is a function of an angle between the first vector and the second vector.
-
Citations
18 Claims
-
1. A method of identifying target images, comprising:
-
obtaining keypoints at different locations within a sample image and descriptor vectors for the keypoints, the descriptor vectors describing local image information around the keypoints, where each descriptor vector is an n-dimensional array; generating features based on hashes of data vectors that include at least one of the descriptor vectors, where each feature is a tuple comprising a hash value of each data vector and a quantization function mapping an orientation of each keypoint to a range of integers; searching for the features in an image-feature database; and retrieving and providing target images based on a number of the features for which corresponding features exist in individual database images whose features are represented in the image-feature database, wherein the hashes are performed using a hash function for which a probability that the hash of an arbitrary first vector corresponds to the hash of an arbitrary second vector is a function of an angle between the first vector and the second vector, wherein the hash function generates a characteristic data string from a data vector larger than the characteristic data string, wherein the arbitrary first vector is a first descriptor vector, and the arbitrary second vector is a second descriptor vector, and wherein each feature corresponds to two keypoints, and each feature is a tuple; wherein each tuple comprises;
a hash value of a first descriptor vector for a first keypoint, a hash value of a second descriptor vector for a second keypoint, a first quantization function mapping an orientation of the first keypoint in relation to the second keypoint to a range of integers, and a second quantization function mapping an orientation of the second keypoint in relation to the first keypoint to the range of integers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of identifying target images, comprising:
-
obtaining keypoints at different locations within a sample image and descriptor vectors for the keypoints, the descriptor vectors describing local image information around the keypoints, where each descriptor vector is an n-dimensional array; generating features based on hashes of data vectors that include at least one of the descriptor vectors, where each feature is a tuple comprising a hash value of each data vector and a quantization function mapping an orientation of each keypoint to a range of integers; searching for the features in an image-feature database; and retrieving and providing target images based on a number of the features for which corresponding features exist in individual database images whose features are represented in the image-feature database, wherein individual ones of a plurality of the features are based on information regarding a relationship between at least two different keypoints, wherein the hashes are performed using a hash function for which a probability that the hash of an arbitrary first vector corresponds to the hash of an arbitrary second vector is a function of an angle between the first vector and the second vector, wherein the hash function generates a characteristic data string from a data vector larger than the characteristic data string, wherein the arbitrary first vector is a first descriptor vector, and the arbitrary second vector is a second descriptor vector, and wherein each feature corresponds to two keypoints, and each feature is a tuple; wherein each tuple comprises;
a hash value of a first descriptor vector for a first keypoint, a hash value of a second descriptor vector for a second keypoint, a first quantization function mapping an orientation of the first keypoint in relation to the second keypoint to a range of integers, and a second quantization function mapping an orientation of the second keypoint in relation to the first keypoint to the range of integers. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium storing computer-executable process steps for retrieving images, said process steps comprising:
-
obtaining keypoints at different locations within a sample image and descriptor vectors for the keypoints, the descriptor vectors describing local image information around the keypoints, where each descriptor vector is an n-dimensional array; generating features based on hashes of data vectors that include at least one of the descriptor vectors, where each feature is a tuple comprising a hash value of each data vector and a quantization function mapping an orientation of each keypoint to a range of integers; searching for the features in an image-feature database; and retrieving and providing target images based on a number of the features for which corresponding features exist in individual database images whose features are represented in the image-feature database, wherein the hashes are performed using a hash function for which a probability that the hash of an arbitrary first vector corresponds to the hash of an arbitrary second vector is a function of an angle between the first vector and the second vector, wherein the hash function generates a characteristic data string from a data vector larger than the characteristic data string, wherein the arbitrary first vector is a first descriptor vector, and the arbitrary second vector is a second descriptor vector, and wherein each feature corresponds to two keypoints, and each feature is a tuple; wherein each tuple comprises;
a hash value of a first descriptor vector for a first keypoint, a hash value of a second descriptor vector for a second keypoint, a first quantization function mapping an orientation of the first keypoint in relation to the second keypoint to a range of integers, and a second quantization function mapping an orientation of the second keypoint in relation to the first keypoint to the range of integers. - View Dependent Claims (17, 18)
-
Specification