IP Library › Granted Patent US 11,816,857
Granted Patent B2
US 11,816,857 · App. 17/316,327 · Granted Nov 14, 2023

Methods and apparatus for generating point cloud histograms

Inventors: Hongwei Zhu (Natick, MA); David J. Michael (Waban, MA); Nitin M. Vaidya (Shrewsbury, MA)
Assignee: Cognex Corporation
G06T7/66G06F18/22G06T7/50G06T11/206G06T17/20G06V10/50G06T2207/10028G06T2207/20072
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,816,857
App. No.
17/316,327
Granted
Nov 14, 2023
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to generate point cloud histograms. A one-dimensional histogram can be generated by determining a distance to a reference for each 3D point of a 3D point cloud. A one-dimensional histogram is generated by adding, for each histogram entry, distances that are within the entry's range of distances. A two-dimensional histogram can be determined by generating a set of orientations by determining, for each 3D point, an orientation with at least a first value for a first component and a second value for a second component. A two-dimensional histogram can be generated based on the set of orientations. Each bin can be associated with ranges of values for the first and second components. Orientations can be added for each bin that have first and second values within the first and second ranges of values, respectively, of the bin.

Claims (62)

1. A computerized method for analyzing three-dimensional (3D) point clouds of objects, the method comprising:

receiving data indicative of a 3D point cloud of an object, the 3D point cloud of the object comprising a plurality of 3D points;

determining, based on the 3D point cloud of the object, a reference in spatial relation to the 3D point cloud of the object, the reference being within the 3D point cloud of the object;

determining, for each 3D point of the plurality of 3D points, a distance to the reference to generate a set of distances for the plurality of 3D points such that the set of distances are independent of an orientation of the object; and

generating, based on the set of distances, a histogram comprising a set of entries, comprising inserting, for each entry of the set of entries, distances from the set of distances that are within a range of distances associated with the entry.

2. The method of claim 1 , further comprising:

generating a 3D voxel grid for at least a portion of the 3D point cloud of the object, wherein each voxel of the 3D voxel grid comprises a same set of dimensions;

determining, for each voxel of the 3D voxel grid, whether one or more of the plurality of 3D data points is within the voxel to generate an associated set of 3D points for the voxel;

determining, for each voxel of the 3D voxel grid with an associated set of 3D points, a single 3D data point for the voxel based on the associated set of 3D data points; and

storing the single 3D data point in the voxel.

3. The method of claim 2 , wherein determining the set of distances comprises:

determining, for each voxel of the 3D voxel grid, a distance from the single 3D data point to the reference to generate the set of distances.

4. The method of claim 1 , wherein:

the reference is a two-dimensional (2D) reference plane; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference plane.

5. The method of claim 1 , wherein:

the reference is a reference line; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference line.

6. The method of claim 1 , further comprising:

determining an estimated center of mass of the 3D point cloud of the object, wherein the reference is the estimated center of mass.

7. The method of claim 6 , wherein determining the distance of each 3D point to generate the set of distances comprises determining a distance of each 3D point to the estimated center of mass.

8. The method of claim 1 , further comprising comparing the histogram with a second histogram generated for a second 3D point cloud of a second object to determine a measure of similarity between the 3D point cloud of the object and the second 3D point cloud of the second object.

9. A non-transitory computer-readable media comprising instructions that, when executed by one or more processors on a computing device, are operable to cause the one or more processors to analyze three-dimensional (3D) point clouds of objects, comprising:

receiving data indicative of a 3D point cloud of an object, the 3D point cloud of the object comprising a plurality of 3D points;

determining, based on the 3D point cloud of the object, a reference in spatial relation to the 3D point cloud of the object, the reference being within the 3D point cloud of the object;

determining, for each 3D point of the plurality of 3D points, a distance to the reference to generate a set of distances for the plurality of 3D points such that the set of distances are independent of an orientation of the object; and

generating, based on the set of distances, a histogram comprising a set of entries, comprising inserting, for each entry of the set of entries, distances from the set of distances that are within a range of distances associated with the entry.

10. The non-transitory computer-readable media of claim 9 , wherein the instructions are further operable to cause the one or more processors to perform:

generating a 3D voxel grid for at least a portion of the 3D point cloud of the object, wherein each voxel of the 3D voxel grid comprises a same set of dimensions;

determining, for each voxel of the 3D voxel grid, whether one or more of the plurality of 3D data points is within the voxel to generate an associated set of 3D points for the voxel;

determining, for each voxel of the 3D voxel grid with an associated set of 3D points, a single 3D data point for the voxel based on the associated set of 3D data points; and

storing the single 3D data point in the voxel.

11. The non-transitory computer-readable media of claim 10 , wherein determining the set of distances comprises:

determining, for each voxel of the 3D voxel grid, a distance from the single 3D data point to the reference to generate the set of distances.

12. The non-transitory computer-readable media of claim 9 , wherein:

the reference is a two-dimensional (2D) reference plane; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference plane.

13. The non-transitory computer-readable media of claim 9 , wherein:

the reference is a reference line; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference line.

14. The non-transitory computer-readable media of claim 9 , wherein the instructions are further operable to cause the one or more processors to perform:

determining an estimated center of mass of the 3D point cloud of the object, wherein the reference is the estimated center of mass, comprising determining a distance of each 3D point to the estimated center of mass.

15. A system comprising a memory storing instructions, and at least one processor configured to execute the instructions to analyze three-dimensional (3D) point clouds, comprising:

receiving data indicative of a 3D point cloud of an object, the 3D point cloud of the object comprising a plurality of 3D points;

determining, based on the 3D point cloud of the object, a reference in spatial relation to the 3D point cloud of the object, the reference being within the 3D point cloud of the object;

determining, for each 3D point of the plurality of 3D points, a distance to the reference to generate a set of distances for the plurality of 3D points such that the set of distances are independent of an orientation of the object; and

generating, based on the set of distances, a histogram comprising a set of entries, comprising inserting, for each entry of the set of entries, distances from the set of distances that are within a range of distances associated with the entry.

16. The system of claim 15 , wherein the instructions are further operable to cause the at least one processor to perform:

generating a 3D voxel grid for at least a portion of the 3D point cloud of the object, wherein each voxel of the 3D voxel grid comprises a same set of dimensions;

determining, for each voxel of the 3D voxel grid, whether one or more of the plurality of 3D data points is within the voxel to generate an associated set of 3D points for the voxel;

determining, for each voxel of the 3D voxel grid with an associated set of 3D points, a single 3D data point for the voxel based on the associated set of 3D data points; and

storing the single 3D data point in the voxel.

17. The system of claim 16 , wherein determining the set of distances comprises:

determining, for each voxel of the 3D voxel grid, a distance from the single 3D data point to the reference to generate the set of distances.

18. The system of claim 15 , wherein:

the reference is a two-dimensional (2D) reference plane; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference plane.

19. The system of claim 15 , wherein:

the reference is a reference line; and

determining the distance of each 3D point to generate the set of distances comprises determining a shortest distance of each 3D point to the reference line.

20. The system of claim 15 , wherein the instructions are further operable to cause the at least one processor to perform:

determining an estimated center of mass of the 3D point cloud of the object, wherein the reference is the estimated center of mass, comprising determining a distance of each 3D point to the estimated center of mass.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: MICHAEL, DAVID J.
To: COGNEX CORPORATION
Reel/Frame 060367/0248 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: ZHU, HONGWEI; VAIDYA, NITIN M.
To: COGNEX CORPORATION
Reel/Frame 060367/0408 →
Continuity (3)
Provisional Application 63065456 · Aug 13, 2020
Provisional Application 63023163 · May 11, 2020
Related Publication 20210350165A1 · Nov 11, 2021