OBJECT RECOGNITION SYSTEM WITH DATABASE PRUNING AND QUERYING
First Claim
1. A method of building a database for information of objects and images of the objects, the method comprising:
- extracting keypoints and generating keypoint descriptors in a plurality of images of a plurality of objects;
performing intra-object pruning for at least one object, the intra-object pruning comprising;
identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of the at least one object;
removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors;
performing inter-object pruning for a plurality of objects, the inter-object pruning comprising;
characterizing discriminability of the remaining keypoint descriptors;
removing remaining keypoint descriptors with discriminability based on a threshold;
clustering keypoints in each image based on location and retaining a subset of keypoints in each cluster of keypoints;
associating remaining keypoints with an object identifier; and
storing the associated remaining keypoints and object identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
A database for object recognition is generated by performing at least one of intra-object pruning and inter-object pruning, as well as keypoint clustering and selection. Intra-object pruning removes similar and redundant keypoints within an object and different views of the same object, and may be used to generate and associate a significance value, such as a weight, with respect to remaining keypoint descriptors. Inter-object pruning retains the most informative set of descriptors across different objects, by characterizing the discriminability of the keypoint descriptors for all of the objects and removing keypoint descriptors with a discriminability that is less than a threshold. Additionally, a mobile platform may download a geographically relevant portion of the database and perform object recognition by extracting features from the query image and using determined confidence levels for each query feature during outlier removal.
146 Citations
39 Claims
-
1. A method of building a database for information of objects and images of the objects, the method comprising:
-
extracting keypoints and generating keypoint descriptors in a plurality of images of a plurality of objects; performing intra-object pruning for at least one object, the intra-object pruning comprising; identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of the at least one object; removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors; performing inter-object pruning for a plurality of objects, the inter-object pruning comprising; characterizing discriminability of the remaining keypoint descriptors; removing remaining keypoint descriptors with discriminability based on a threshold; clustering keypoints in each image based on location and retaining a subset of keypoints in each cluster of keypoints; associating remaining keypoints with an object identifier; and storing the associated remaining keypoints and object identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of building a database for information of objects and images of the objects, the method comprising:
-
extracting keypoints and generating keypoint descriptors in a plurality of images of a plurality of objects; performing inter-object pruning for a plurality of objects, the inter-object pruning comprising; characterizing discriminability of the keypoint descriptors; removing keypoint descriptors with discriminability based on a threshold; clustering keypoints in each image based on location and retaining a subset of keypoints in each cluster of keypoints; associating keypoints with an object identifier; and storing the associated keypoints and object identifier.
-
-
18. A method of building a database for information of objects and images of the objects, the method comprising:
-
extracting keypoints and generating keypoint descriptors in a plurality of images of a plurality of objects; performing intra-object pruning for at least one object, the intra-object pruning comprising; identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of the at least one object; removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors; clustering keypoints in each image based on location and retaining a subset of keypoints based on scale in each cluster of keypoints; associating remaining keypoints with an object identifier; and storing the associated remaining keypoints and object identifier.
-
-
19. An apparatus comprising:
-
an external interface for receiving a plurality of images to be processed and stored in a database, the plurality of images containing a plurality of views of a plurality of objects; a processor connected to the external interface; memory connected to the processor; and software held in the memory and run in the processor to extract keypoints and generate keypoint descriptors in the plurality of images, to perform intra-object pruning for at least one object, the intra-object pruning comprising; identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of the at least one object; removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors; to perform inter-object pruning for a plurality of objects, the inter-object pruning comprising; characterizing discriminability of the remaining keypoint descriptors; removing remaining keypoint descriptors with discriminability based on a threshold; to cluster keypoints in each image based on location and retain a subset of keypoints in each cluster of keypoints, to associate remaining keypoints with an object identifier; and
to store the associated remaining keypoints and object identifier in the database.
-
-
20. A system comprising:
-
means for receiving a plurality of images to be processed and stored in a database, the plurality of images containing a plurality of views of a plurality of objects; means for extracting keypoints and generating keypoint descriptors in the plurality of images; means for performing intra-object pruning comprising; identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of the plurality of objects; removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors; means for performing inter-object pruning for a plurality of objects, the inter-object pruning comprising; characterizing discriminability of the remaining keypoint descriptors; removing remaining keypoint descriptors with discriminability based on a threshold; means for clustering keypoints in each image based on location and retaining a subset of keypoints in each cluster of keypoints; means for associating remaining keypoints with an object identifier; and means for storing the associated remaining keypoints and object identifier in the database.
-
-
21. A computer-readable medium including program code stored thereon, comprising:
-
program code to extract keypoints and generate keypoint descriptors from a plurality of images; program code to perform intra-object pruning including identifying a set of matching keypoint descriptors for a plurality of keypoint descriptors in each image of each object and removing one or more of the matching keypoint descriptors within each set of matching keypoint descriptors, wherein subsequent to the removal of the one or more of the matching keypoint descriptors there is at least one remaining keypoint descriptor in each set of matching keypoint descriptors; program code to perform inter-object pruning for a plurality of objects in the plurality of images including characterizing discriminability of the remaining keypoint descriptors and removing remaining keypoint descriptors with discriminability based on a threshold; program code to cluster keypoints in each image based on location and retain a subset of keypoints in each cluster of keypoints; program code to associate remaining keypoints with an object identifier; and program code to store the associated remaining keypoints and object identifier in a database.
-
-
22. A method of determining at least one best match between a query image and information related to images of objects in a database using extracted keypoint descriptors from the query image and keypoint descriptors in the database, the method comprising:
-
performing a search of the database using the keypoint descriptors from the query image to retrieve neighbors; determining a quality of match for each retrieved neighbor with respect to associated keypoint descriptor from the query image; using the determined quality of match for each retrieved neighbor to generate an object candidate set; removing outliers from the object candidate set using the determined quality of match for each retrieved neighbor to provide the at least one best match; and storing the at least one best match. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A mobile platform comprising:
-
a camera for capturing a query image; a database of information with respect to reference objects and their images; a processor connected to receive the query image; memory connected to the processor; a display connected to the memory; and software held in the memory and run in the processor to extract keypoints and generate descriptors from the query image, to perform a search of the database using the keypoint descriptors from the query image to retrieve neighbors;
to determine a quality of match for each retrieved neighbor with respect to associated keypoint descriptor from the query image;
to use the determined quality of match for each retrieved neighbor to generate an object candidate set;
to remove outliers from the object candidate set using the determined quality of match for each retrieved neighbor to provide at least one best match, and to store the at least one best match.
-
-
38. A system for determining at least one best match between a query image and information related to images of objects in a database using extracted keypoint descriptors from the query image and keypoint descriptors in the database, the system comprising:
-
means for performing a search of the database using the keypoint descriptors from the query image to retrieve neighbors; means for determining a quality of match for each retrieved neighbor with respect to associated keypoint descriptor from the query image; means for using the determined quality of match for each retrieved neighbor to generate an object candidate set; means for removing outliers from the object candidate set using the determined quality of match for each retrieved neighbor to provide the at least one best match; and means for storing the at least one best match.
-
-
39. A computer-readable medium including program code stored thereon, comprising:
-
program code to perform a search of a database using extracted keypoint descriptors from a query image to retrieve neighbors; program code to determine a quality of match for each retrieved neighbor with respect to associated keypoint descriptor from the query image; program code to use the determined quality of match for each retrieved neighbor to generate an object candidate set; program code to remove outliers from the object candidate set using the determined quality of match for each retrieved neighbor to provide at least one best match; and program code to store the at least one best match.
-
Specification