Scalable image matching
First Claim
1. A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,obtaining images of a plurality of inventory items, each of the inventory items including one or more features;
extracting, from each image, a plurality of feature descriptors of each respective inventory item represented in the images;
clustering the feature descriptors into clusters and assigning a cluster center to represent each cluster of feature descriptors, each cluster center being of a first file size;
compressing each cluster center from the first file size to a second file size, the first file size being larger than the second file size;
storing the compressed cluster centers in a database for retrieval and use in image matching;
assigning a visual word to each cluster center to generate a vocabulary of visual words describing the features of each respective inventory item represented in the images;
indexing the visual words into an index storing information for each visual word and respective corresponding images;
receiving a query image from a client computing device;
extracting query feature descriptors from the query image;
assigning a query visual word to each of the extracted feature descriptors;
comparing one or more query visual words from the query image to at least a subset of the visual words in the index to identify a set of closest matching inventory images that at least partially match the query image based at least in part on a respective number of query visual words matching a respective number of visual words in the index, the set of closest matching inventory images being ranked by a matching score;
retrieving a set of compressed cluster centers for each of the set of closest matching inventory images from the database;
performing geometric verification of the set of closest matching inventory images by comparing at least a subset of the query feature descriptors to the set of cluster centers for each of the set of closest matching inventory images;
ranking the set of closest matching inventory images based on the matching score, the matching score determined using parameters from a machine learned process, the parameters produced by the machine learning process using one or more training images to at least partially compensate for inaccuracy caused by compressing the cluster centers; and
suggesting a highest ranking image as matching the query image.
1 Assignment
0 Petitions
Accused Products
Abstract
Various embodiments may increase scalability of image representations stored in a database for use in image matching and retrieval. For example, a system providing image matching can obtain images of a number of inventory items, extract features from each image using a feature extraction algorithm, and transform the same into their feature descriptor representations. These feature descriptor representations can be subsequently stored and used to compare against query images submitted by users. Though the size of each feature descriptor representation isn'"'"'t particularly large, the total number of these descriptors requires a substantial amount of storage space. Accordingly, feature descriptor representations are compressed to minimize storage and, in one example, machine learning can be used to compensate for information lost as a result of the compression.
39 Citations
19 Claims
-
1. A computer-implemented method, comprising:
-
under the control of one or more computer systems configured with executable instructions, obtaining images of a plurality of inventory items, each of the inventory items including one or more features; extracting, from each image, a plurality of feature descriptors of each respective inventory item represented in the images; clustering the feature descriptors into clusters and assigning a cluster center to represent each cluster of feature descriptors, each cluster center being of a first file size; compressing each cluster center from the first file size to a second file size, the first file size being larger than the second file size; storing the compressed cluster centers in a database for retrieval and use in image matching; assigning a visual word to each cluster center to generate a vocabulary of visual words describing the features of each respective inventory item represented in the images; indexing the visual words into an index storing information for each visual word and respective corresponding images; receiving a query image from a client computing device; extracting query feature descriptors from the query image; assigning a query visual word to each of the extracted feature descriptors; comparing one or more query visual words from the query image to at least a subset of the visual words in the index to identify a set of closest matching inventory images that at least partially match the query image based at least in part on a respective number of query visual words matching a respective number of visual words in the index, the set of closest matching inventory images being ranked by a matching score; retrieving a set of compressed cluster centers for each of the set of closest matching inventory images from the database; performing geometric verification of the set of closest matching inventory images by comparing at least a subset of the query feature descriptors to the set of cluster centers for each of the set of closest matching inventory images; ranking the set of closest matching inventory images based on the matching score, the matching score determined using parameters from a machine learned process, the parameters produced by the machine learning process using one or more training images to at least partially compensate for inaccuracy caused by compressing the cluster centers; and suggesting a highest ranking image as matching the query image. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method, comprising:
-
under the control of one or more computer systems configured with executable instructions, assigning one or more visual words to each of one or more compressed cluster centers, the one or more visual words corresponding to one or more feature descriptors associated with a respective compressed cluster center, each compressed cluster center being determined by clustering database feature descriptors for each of a plurality of database images into clusters, assigning a cluster center to represent each respective cluster, and compressing data of each cluster center; receiving a query image from a client computing device; extracting feature descriptors from the query image; comparing at least a portion of the extracted feature descriptors to a set of compressed cluster centers corresponding to a set of closest matching database images to determine a matching score, the set of closet matching database images determined based at least on a number of the one or more visual words matching at least the portion of the extracted feature descriptors; ranking the set of closest matching database images based on the matching score, the matching score determined using parameters from a machine learned process, the parameters produced by the machine learning process using one or more training images to at least partially compensate for inaccuracy caused by compressing the cluster centers; and selecting a highest ranking database image of the set of closest matching database images as a match for the query image. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A computing system, comprising:
-
a processor; and memory including instructions that, when executed by the processor, cause the computing system to; obtain images of a plurality of items; calculate a set of feature descriptors for each image, each of the set of feature descriptors being of a first data size; compress each feature descriptor from the first data size to a second data size by clustering the set of feature descriptors into cluster centers; assign one or more visual words to the cluster centers, the one or more visual words corresponding to one or more feature descriptors associated with a respective compressed cluster center; store each compressed feature descriptor at the second size in a database, the first data size being larger than the second data size; index the visual words in an index comprising the visual words and corresponding images; upon receiving a query image from a client computing device, cause feature descriptors to be extracted from the query image; compare at least a portion of the extracted feature descriptors from the query image to a set of the cluster centers corresponding to a set of closest matching images to determine a matching score, the set of closest matching images determined based at least on a number of the one or more visual words matching at least the portion of the extracted feature descriptors; rank the set of closest matching images based on the matching score, the matching score determined using parameters from a machine learned process, the parameters produced by the machine learning process using one or more training images to at least partially compensate for inaccuracy caused by compressing the cluster centers; and select a highest ranking image of the set of closest matching database images as a match for the query image. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification