IP Library › Granted Patent US 12,277,780
Granted Patent B2
US 12,277,780 · App. 17/316,446 · Granted Apr 15, 2025

Methods and apparatus for identifying surface features in three-dimensional images

Inventors: Nathaniel Bogan (Natick, MA); Andrew Hoelscher (Somerville, MA); David J. Michael (Waban, MA)
Assignee: Cognex Corporation
G06V20/647G06T17/00G06T2200/04
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 12,277,780
App. No.
17/316,446
Granted
Apr 15, 2025
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to identify a surface feature of a portion of a three-dimensional (3D) point cloud. Data indicative of a path along a 3D point cloud is received, wherein the 3D point cloud comprises a plurality of 3D data points. A plurality of lists of 3D data points are generated, wherein: each list of 3D data points extends across the 3D point cloud at a location that intersects the received path; and each list of 3D data points intersects the received path at different locations. A characteristic associated with a surface feature is identified in at least some of the plurality of lists of 3D data points. The identified characteristics are grouped based on one or more properties of the identified characteristics. The surface feature is identified based on the grouped characteristics.

Claims (60)

1. A computerized method for identifying a surface feature of a portion of a three-dimensional (3D) point cloud, the method comprising:

receiving data indicative of a path along a 3D point cloud, wherein the 3D point cloud comprises a plurality of 3D data points;

generating a plurality of lists of 3D data points, wherein:

each list of 3D data points extends across the 3D point cloud at a location that intersects the received path; and

each list of 3D data points intersects the received path at different locations such that individual lists of the plurality of lists of 3D data points are separate from each other;

identifying, in at least some of the plurality of lists of 3D data points, a characteristic of a set of characteristics, wherein each characteristic of the set is associated with a different surface feature;

grouping the identified characteristics based on one or more properties of the identified characteristics; and

identifying, based on the grouped characteristics, a surface feature of the portion of the 3D point cloud, wherein the surface feature is associated with the identified characteristics and the surface feature extends through the 3D point cloud along the grouped identified characteristics.

2. The method of claim 1 , wherein generating the plurality of lists of 3D data points comprises, for each list of 3D data points, determining the list of 3D data points based on a plane disposed at the location to generate the list of 3D data points.

3. The method of claim 2 , wherein the plane is orthogonal to the received path, such that the planes used to generate each of the lists of 3D data points are parallel.

4. The method of claim 1 , wherein the identified surface feature of the portion of the 3D point cloud is a crease edge, and the characteristic associated with the crease edge is a corner.

5. The method of claim 1 , wherein grouping the identified characteristics comprises fitting a line to the identified characteristics.

6. The method of claim 5 , wherein fitting a line to the identified characteristics comprises:

fitting a first line to a first portion of the identified characteristics and fitting a second line to a second portion of the identified characteristics;

determining the first line comprises a first orientation that is within a threshold difference of a second orientation of the second line; and

combining the first line and the second line into a single representative line.

7. The method of claim 1 , wherein receiving the data indicative of a path along the 3D point cloud comprises receiving data indicative of a specified region of interest.

8. The method of claim 7 , wherein the specified region of interest comprises a width, a length, and a height, and the path is specified based on the width, length and height.

9. The method of claim 1 , further comprising:

determining a count of the identified characteristics;

determining, based on the count, a coverage of the surface feature along the portion of the 3D point cloud.

10. The method of claim 9 , further comprising:

determining a score of each of the identified characteristics;

determining, based on the count of the identified characteristics and the score of each of the identified characteristics, an overall score of the surface feature.

11. The method of claim 1 , wherein the path is:

a linear path specified by a direction;

a curved path;

a circular path;

a spiral path; or some combination thereof.

12. 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 identify a surface feature of a portion of a three-dimensional (3D) point cloud, comprising:

receiving data indicative of a path along a 3D point cloud, wherein the 3D point cloud comprises a plurality of 3D data points;

generating a plurality of lists of 3D data points, wherein:

each list of 3D data points extends across the 3D point cloud at a location that intersects the received path; and

each list of 3D data points intersects the received path at different locations such that individual lists of the plurality of lists of 3D data points are separate from each other;

identifying, in at least some of the plurality of lists of 3D data points, a characteristic of a set of characteristics, wherein each characteristic of the set is associated with a different surface feature;

grouping the identified characteristics based on one or more properties of the identified characteristics; and

identifying, based on the grouped characteristics, a surface feature of the portion of the 3D point cloud, wherein the surface feature is associated with the identified characteristics and the surface feature extends through the 3D point cloud along the grouped identified characteristics.

13. The non-transitory computer-readable media of claim 12 , wherein generating the plurality of lists of 3D data points comprises, for each list of 3D data points, determining the list of 3D data points based on a plane disposed at the location to generate the list of 3D data points.

14. The non-transitory computer-readable media of claim 12 , wherein grouping the identified characteristics comprises fitting a line to the identified characteristics, comprising:

fitting a first line to a first portion of the identified characteristics and fitting a second line to a second portion of the identified characteristics;

determining the first line comprises a first orientation that is within a threshold difference of a second orientation of the second line; and

combining the first line and the second line into a single representative line.

15. The non-transitory computer-readable media of claim 12 , wherein receiving the data indicative of a path along the 3D point cloud comprises receiving data indicative of a specified region of interest comprising a width, a length, and a height, and the path is specified based on the width, length and height.

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

determining a count of the identified characteristics;

determining, based on the count, a coverage of the surface feature along the portion of the 3D point cloud.

17. A system comprising a memory storing instructions, and at least one processor configured to execute the instructions to identify a surface feature of a portion of a three-dimensional (3D) point cloud, comprising:

receiving data indicative of a path along a 3D point cloud, wherein the 3D point cloud comprises a plurality of 3D data points;

generating a plurality of lists of 3D data points, wherein:

each list of 3D data points extends across the 3D point cloud at a location that intersects the received path; and

each list of 3D data points intersects the received path at different locations such that individual lists of the plurality of lists of 3D data points are separate from each other;

identifying, in at least some of the plurality of lists of 3D data points, a characteristic of a set of characteristics, wherein each characteristic of the set is associated with a different surface feature;

grouping the identified characteristics based on one or more properties of the identified characteristics; and

identifying, based on the grouped characteristics, a surface feature of the portion of the 3D point cloud, wherein the surface feature is associated with the identified characteristics and the surface feature extends through the 3D point cloud along the grouped identified characteristics.

18. The system of claim 17 , wherein generating the plurality of lists of 3D data points comprises, for each list of 3D data points, determining the list of 3D data points based on a plane disposed at the location to generate the list of 3D data points.

19. The system of claim 17 , wherein grouping the identified characteristics comprises fitting a line to the identified characteristics, comprising:

fitting a first line to a first portion of the identified characteristics and fitting a second line to a second portion of the identified characteristics;

determining the first line comprises a first orientation that is within a threshold difference of a second orientation of the second line; and

combining the first line and the second line into a single representative line.

20. The system of claim 17 , wherein receiving the data indicative of a path along the 3D point cloud comprises receiving data indicative of a specified region of interest comprising a width, a length, and a height, and the path is specified based on the width, length and height.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2022
From: BOGAN, NATHANIEL; HOELSCHER, ANDREW
To: COGNEX CORPORATION
Reel/Frame 061919/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: MICHAEL, DAVID J.
To: COGNEX CORPORATION
Reel/Frame 060367/0248 →
Continuity (2)
Provisional Application 63023186 · May 11, 2020
Related Publication 20210350115A1 · Nov 11, 2021
References Cited (10)
US 9327406B1 · Hinterstoisser · 2016 [cited by examiner]
US 10462450B2 · Robert · 2019 [cited by examiner]
US 11087479B1 · Geraghty · 2021 [cited by examiner]
US 20150312550A1 · Robert · 2015 [cited by applicant]
US 20200375561A1 · Huang · 2020 [cited by examiner]
WO WO2019075276A1 · 2019 [cited by examiner]
WO WO2019144289A1 · 2019 [cited by examiner]
International Search Report and Written Opinion mailed Aug. 6, 2021 in connection with International Application No. PCT/US2021/031513. [cited by applicant]
Ahmed et al., Edge and corner detection for unorganized 3d point clouds with application to robotic welding. 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). Oct. 1, 2018:7350-7355. 6 pag… [cited by applicant]
PCT/US2021/031513, Aug. 6, 2021, International Search Report and Written Opinion. [cited by applicant]