Processing and comparing images
First Claim
1. A computer-implemented method comprising:
- under the control of one or more computer systems configured with executable instructions, calculating a cluster descriptor for each of a plurality of clusters of feature vectors, the feature vectors being calculated based at least in part on a plurality of feature points of a subset of a collection of images;
creating a first histogram for at least one image of the subset of the collection of images, the first histogram having a plurality of bins that correspond to the clusters of feature vectors, the contents of the bins are based at least in part on the number of the feature vectors of the image that were mapped to the corresponding clusters, wherein the features vectors are mapped the nearest one of the clusters based at least in part on the cluster descriptors;
creating a second histogram for at least one image of the subset of the collection of images, the second histogram having a plurality of bins that correspond to a plurality of radial-polar bins of a radial-polar grid positioned on an edge image of the image, the contents of the bins of the second histogram are based at least in part on a number of pixels of the edge image that are located in the corresponding radial-polar bins of the radial-polar grid;
creating edge histograms for the images of the subset of the collection of images based on a plurality of feature associated with the edge images of the images, the edge histograms having a plurality of bins that correspond to a plurality of radial-polar bins of radial-polar grids that are positioned on the feature points associated with the edge images, the contents of the bins of the edge histograms are based at least in part on the number of pixels of the edge images that are located in the radial-polar bins of the radial-polar grids;
creating a third histogram for at least one image of the subset of the collection of images, the third histogram having a plurality of bins that correspond to a plurality of edge-histogram clusters, the contents of each of the bins of the third histogram are based at least in part on the number of the edge histograms that were mapped to the corresponding edge-histogram cluster, wherein the edge histograms are mapped to the nearest one of the edge-histogram clusters based at least in part on a plurality of edge-histogram cluster descriptors that were calculated for each of the edge-histogram clusters; and
identifying at least one image of the subset of the collection of images that is visually similar to a query image based at least in part on a comparison of first, second, and third histograms that characterize the query image and the first, second, and third histograms of the images of the subset of the collection of images.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for calculating and using histogram descriptors to compare images and to identify visually similar content. According to at least one embodiment, multiple histograms descriptors are calculated for individual images of a collection of content. These histogram descriptors may be used to identify two or more visually similar images in the collection of content. For example, if a user identifies an image of an item of interest, then embodiments search across the collection of content to identify other images of items that are visually similar to the selected item of interest. To do so, embodiments search across the histogram descriptors of the images in the collection of content to identify one or more images that have histograms descriptors that are similar to the histograms descriptors of the image of the selected item of interest.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
under the control of one or more computer systems configured with executable instructions, calculating a cluster descriptor for each of a plurality of clusters of feature vectors, the feature vectors being calculated based at least in part on a plurality of feature points of a subset of a collection of images; creating a first histogram for at least one image of the subset of the collection of images, the first histogram having a plurality of bins that correspond to the clusters of feature vectors, the contents of the bins are based at least in part on the number of the feature vectors of the image that were mapped to the corresponding clusters, wherein the features vectors are mapped the nearest one of the clusters based at least in part on the cluster descriptors; creating a second histogram for at least one image of the subset of the collection of images, the second histogram having a plurality of bins that correspond to a plurality of radial-polar bins of a radial-polar grid positioned on an edge image of the image, the contents of the bins of the second histogram are based at least in part on a number of pixels of the edge image that are located in the corresponding radial-polar bins of the radial-polar grid; creating edge histograms for the images of the subset of the collection of images based on a plurality of feature associated with the edge images of the images, the edge histograms having a plurality of bins that correspond to a plurality of radial-polar bins of radial-polar grids that are positioned on the feature points associated with the edge images, the contents of the bins of the edge histograms are based at least in part on the number of pixels of the edge images that are located in the radial-polar bins of the radial-polar grids; creating a third histogram for at least one image of the subset of the collection of images, the third histogram having a plurality of bins that correspond to a plurality of edge-histogram clusters, the contents of each of the bins of the third histogram are based at least in part on the number of the edge histograms that were mapped to the corresponding edge-histogram cluster, wherein the edge histograms are mapped to the nearest one of the edge-histogram clusters based at least in part on a plurality of edge-histogram cluster descriptors that were calculated for each of the edge-histogram clusters; and identifying at least one image of the subset of the collection of images that is visually similar to a query image based at least in part on a comparison of first, second, and third histograms that characterize the query image and the first, second, and third histograms of the images of the subset of the collection of images. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method comprising:
under the control of one or more computer systems configured with executable instructions, identifying a plurality of feature points in each of a plurality of images of a subset of a collection of images, each feature point corresponding to a specific point in one of the images; calculating feature vectors based at least in part on the feature points; clustering the feature vectors into a plurality of areas; determining a cluster descriptor for each of the areas; mapping ones of the features vectors to the nearest one of the areas based at least in part on the cluster descriptors, wherein the cluster descriptors represent geometric centers of the features vectors; creating a first descriptor for at least one image of the subset of the collection of images, the first descriptor having a plurality of bins that correspond to the areas, the contents of the bins are based at least in part on the number of the feature vectors of the image that were mapped to the corresponding areas; and identifying at least one image of the subset of the collection of images that is visually similar to a query image based at least in part on a comparison of a first descriptor that characterizes the query image and the first descriptors of the images of the subset of the collection of images by; creating a first histogram for the at least one image according to a plurality of radial-polar bins; creating edge histograms for the subset of the collection of images, wherein the edge histograms corresponds to the plurality of radial-polar bins; creating a second histogram for at least one image of the subset of the collection of images according to a plurality of edge-histogram clusters, wherein the second histogram is based at least in part on a quantity of edge histograms mapped to a corresponding edge-histogram cluster; and identifying the at least one image based on the first histogram, the edge histograms, and the second histogram. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A non-transitory computer-readable medium storing a computer program product for determining visual similar of images, comprising:
-
program code for identifying feature points of a subset of a collection of images; program code for calculating feature vectors based at least in part on the feature points; program code for clustering the feature vectors into a plurality of areas; program code for determining cluster descriptors for the areas; program code for mapping ones of the features vectors to the nearest one of the areas based at least in part on the cluster descriptors, wherein the cluster descriptors represent geometric centers of the features vectors; program code for creating a first descriptor for at least one image of the subset of the collection of images, the first descriptor having a plurality of bins that correspond to the areas, the contents of the bins are based at least in part on the number of the feature vectors of the image that were mapped to the corresponding areas; and program code for identifying at least one image of the subset of the collection of images that is visually similar to a query image based at least in part on a comparison of a first descriptor that characterizes the query image and the first descriptors of the images of the subset of the collection of images by; creating a first histogram for the at least one image according to a plurality of radial-polar bins; creating edge histograms for the subset of the collection of images, wherein the edge histograms corresponds to the plurality of radial-polar bins; creating a second histogram for at least one image of the subset of the collection of images according to a plurality of edge-histogram clusters, wherein the second histogram is based at least in part on a quantity of edge histograms mapped to a corresponding edge-histogram cluster; and identifying the at least one image based on the first histogram, the edge histograms, and the second histogram. - View Dependent Claims (15, 16)
-
-
17. A system comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; identify feature points of a subset of a collection of images; calculate feature vectors based at least in part on the feature points; cluster the feature vectors into a plurality of areas; determine cluster descriptors for the areas; map ones of the features vectors to the nearest one of the areas based at least in part on the cluster descriptors, wherein the cluster descriptors represent geometric centers of the features vectors; create a first descriptor for at least one image of the subset of the collection of images, the first descriptor having a plurality of bins that correspond to the areas, the contents of the bins are based at least in part on the number of the feature vectors of the image that were mapped to the corresponding areas; and identify at least one image of the subset of the collection of images that is visually similar to a query image based at least in part on a comparison of a first descriptor that characterizes the query image and the first descriptors of the images of the subset of the collection of images by; creating a first histogram for the at least one image according to a plurality of radial-polar bins; creating edge histograms for the subset of the collection of images, wherein the edge histograms corresponds to the plurality of radial-polar bins; creating a second histogram for at least one image of the subset of the collection of images according to a plurality of edge-histogram clusters, wherein the second histogram is based at least in part on a quantity of edge histograms mapped to a corresponding edge-histogram cluster; and identifying the at least one image based on the first histogram, the edge histograms, and the second histogram. - View Dependent Claims (18, 19, 20)
-
Specification