Systems and methods for object detection
A computing system including a processing circuit in communication with a camera having a field of view. The processing circuit is configured to perform operations related to detecting, identifying, and retrieving objects disposed amongst a plurality of objects. The processing circuit may be configured to perform operations related to object recognition template generation, feature generation, hypothesis generation, hypothesis refinement, and hypothesis validation.
1 . A computing system comprising:
at least one processing circuit in communication with a robot, having an arm and an end-effector connected thereto, and a camera having a field of view and configured, when one or more objects are or have been in the field of view, to execute instructions stored on a non-transitory computer-readable medium for:
obtaining object image information of an object in a scene;
obtaining a detection hypothesis including a corresponding object recognition template representing a template object;
identifying a discrepancy between the template object and the object image information;
identifying a set of template locations in the template object corresponding to a set of object locations of the object image information;
adjusting the set of template locations to converge to the set of object locations by identifying respective vectors extending between the set of template locations and corresponding ones of the set of object locations;
iteratively adjusting the set of template locations according to magnitudes and directions of the respective vectors until the respective vectors cancel each other out and no further adjustments to the template locations can be made; and
generating an adjusted detection hypothesis including an adjusted corresponding object recognition template according to the set of template locations after adjustment.
2 . The computing system of claim 1 , further comprising:
identifying new respective vectors according to the adjusted set of template locations after the respective vectors cancel each other out and no further adjustments to the template locations can be made; and
determining a quality of alignment.
3 . The computing system of claim 2 , wherein the quality of alignment is determined based on a level of misalignment defined by magnitudes and directions of the new respective vectors.
4 . The computing system of claim 2 , wherein the quality of alignment is determined based on distance measurements between the adjusted set of template locations and the set of object locations.
5 . The computing system of claim 4 , wherein the distance measurements include Euclidean distance measurements.
6 . The computing system of claim 4 , wherein the distance measurements include cosine distances between surface normal vectors associated with the adjusted set of template locations and the set of object locations.
7 . The computing system of claim 6 , wherein the cosine distances indicate angles between the surface normal vectors, and wherein sizes of the angles correlate with the quality of alignment.
8 . The computing system of claim 4 , wherein the distance measurements are measurements from a first location of the adjusted set of template locations to a plane of a second location of the set of object locations.
9 . The computing system of claim 2 , wherein the quality of alignment is determined by a rate of convergence between the adjusted set of template locations and the set of object locations.
10 . The computing system of claim 1 further including:
obtaining the detection hypothesis by overlaying the object recognition template with image information of the scene to identify the object image information based on comparisons between template gradient information and template surface normal vector information of the object recognition template and object gradient information and object surface normal vector information extracted from the image information.
11 . A method comprising:
obtaining object image information of an object in a scene;
obtaining a detection hypothesis including a corresponding object recognition template representing a template object;
identifying a discrepancy between the template object and the object image information;
identifying a set of template locations in the template object corresponding to a set of object locations of the object image information;
adjusting the set of template locations to converge to the set of object locations by identifying respective vectors extending between the set of template locations and corresponding ones of the set of object locations;
iteratively adjusting the set of template locations according to magnitudes and directions of the respective vectors until the respective vectors cancel each other out and no further adjustments to the template locations can be made; and
generating an adjusted detection hypothesis including an adjusted corresponding object recognition template according to the set of template locations after adjustment.
12 . The method of claim 11 , further comprising:
identifying new respective vectors according to the adjusted set of template locations after the respective vectors cancel each other out and no further adjustments to the template locations can be made; and
determining a quality of alignment.
13 . The method of claim 12 , further including:
determining the quality of alignment based on a level of misalignment defined by magnitudes and directions of the new respective vectors.
14 . The method of claim 12 , further including:
determining the quality of alignment based on distance measurements between the adjusted set of template locations and the set of object locations.
15 . The method of claim 12 , further including:
determining the quality of alignment by a rate of convergence between the adjusted set of template locations and the set of object locations.
16 . The method of claim 11 wherein obtaining the detection hypothesis further includes:
overlaying the object recognition template with image information of the scene to identify the object image information based on comparisons between template gradient information and template surface normal vector information of the object recognition template and object gradient information and object surface normal vector information extracted from the image information.
17 . A non-transitory computer readable medium, configured with executable instructions for implementing a method for refining a detection hypothesis, operable by at least one processing circuit via a communication interface configured to communicate with a robotic system, the method comprising:
receiving object image information of an object in a scene;
receiving a detection hypothesis including a corresponding object recognition template representing a template object;
performing an operation to identify a discrepancy between the template object and the object image information;
performing an operation to identify a set of template locations in the template object corresponding to a set of object locations of the object image information;
performing an operation to adjust the set of template locations to converge to the set of object locations by identifying respective vectors extending between the set of template locations and corresponding ones of the set of object locations;
performing an operation to iteratively adjust the set of template locations according to magnitudes and directions of the respective vectors until the respective vectors cancel each other out and no further adjustments to the template locations can be made; and
outputting to the robotic system an adjusted detection hypothesis including an adjusted corresponding object recognition template according to the set of template locations after adjustment.