IP Library Granted Patent US 11,481,915
Granted Patent B2
US 11,481,915 · App. 16/404,590 · Granted Oct 25, 2022

Systems and methods for three-dimensional data acquisition and processing under timing constraints

Inventors: Carlo Dal Mutto (Sunnyvale, CA); Francesco Peruch (Sunnyvale, CA)
Assignee: PACKSIZE LLC
G06T7/593G06T7/001G06T19/003
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,481,915
App. No.
16/404,590
Granted
Oct 25, 2022
Kind
B2
Abstract

A system for acquiring three-dimensional (3-D) models of objects includes a first camera group including: a first plurality of depth cameras having overlapping fields of view; a first processor; and a first memory storing instructions that, when executed by the first processor, cause the first processor to: control the first depth cameras to simultaneously capture a first group of images of a first portion of a first object; compute a partial 3-D model representing the first portion of the first object; and detect defects in the first object based on the partial 3-D model representing the first portion of the first object.

Claims (112)

1. A system for acquiring three-dimensional (3-D) models of objects, comprising a first camera group comprising:

a first plurality of depth cameras having different overlapping fields of view within the first plurality of depth cameras;

a first processor;

a first memory storing instructions that, when executed by the first processor, cause the first processor to:

control the first depth cameras to simultaneously capture a first group of images of a first portion of a first object,

compute, based on the first group of images, a partial 3-D model representing the first portion of the first object, and

detect defects in the first object based on the partial 3-D model representing the first portion of the first object;

a second plurality of depth cameras having overlapping fields of view within the second plurality of depth cameras, the second depth cameras being spaced apart from the first depth cameras and comprising non-overlapping fields of view with the first plurality of depth cameras;

a second processor; and

a second memory storing instructions that, when executed by the second processor, cause the second processor to:

control the second depth cameras to simultaneously capture a second group of images of a second portion of the first object,

compute a partial 3-D model representing the second portion of the first object, and

detect defects in the first object based on the partial 3-D model representing the second portion of the first object; and

a coordinating server comprising a third processor and a third memory storing instructions that, when executed by the third processor, cause the third processor to:

receive the partial 3-D model representing the first portion of the first object from the first depth cameras;

receive the partial 3-D model representing the second portion of the first object from the second depth cameras; and

combine data from the partial 3-D model representing the first portion of the first object and the partial 3-D model representing the second portion of the first object.

2. The system of claim 1 , wherein the first camera group further comprises a first start trigger configured to detect the arrival of an object when the object enters the overlapping fields of view of the first depth cameras, and

wherein the first processor is configured to control the first depth cameras of the first camera group to capture images of the object in response to receiving a triggering signal from the first start trigger.

3. The system of claim 2 , wherein the first camera group further comprises a first stop trigger configured to detect the departure of the object from the overlapping fields of view of the first depth cameras, and

wherein the first processor is configured to control the first depth cameras of the first camera group to cease capture of images of the object in response to receiving a triggering signal from the first stop trigger.

4. The system of claim 2 , wherein the first camera group further comprises a first prepare trigger configured to detect the presence of the object before the object enters the overlapping fields of view of the first depth cameras, and

wherein the first processor is configured to control the first depth cameras of the first camera group to prepare to capture of images of the object in response to receiving a triggering signal from the first prepare trigger.

5. The system of claim 1 , wherein the overlapping fields of view of the first depth cameras are directed to a portion of a conveyor system configured to convey a plurality of objects, and

wherein the conveyor system is configured to convey the objects to enter the overlapping fields of view of the first depth cameras one at a time.

6. The system of claim 5 , wherein the conveyor system moves at a non-uniform speed and the objects arrive within the overlapping fields of view of the first camera group at a plurality of different rates, the different rates comprising a maximum burst rate and an associated maximum burst time, and

wherein the first memory of the first camera group comprises a buffer having a size sufficient to store images of the objects arriving a maximum burst rate during the associated maximum burst time, the size being a function of at least a resolution of the first depth cameras and a frame rate of the first depth cameras.

7. A system for acquiring three-dimensional (3-D) models of objects, comprising a first camera group comprising:

a first plurality of depth cameras having overlapping fields of view;

a first processor; and

a first memory storing instructions that, when executed by the first processor, cause the first processor to:

control the first depth cameras to simultaneously capture a first group of images of a first portion of a first object;

compute, based on the first group of images, a partial 3-D model representing the first portion of the first object; and

detect defects in the first object based on the partial 3-D model representing the first portion of the first object,

wherein the overlapping fields of view of the first depth cameras are directed to a portion of a conveyor system configured to convey a plurality of objects,

wherein the conveyor system is configured to convey the objects to enter the overlapping fields of view of the first depth cameras one at a time,

wherein the conveyor system moves at a non-uniform speed and the objects arrive within the overlapping fields of view of the first camera group at a plurality of different rates,

wherein the first memory of the first camera group comprises a buffer configured to store images captured by the first depth cameras, and

wherein the first memory further stores instructions that, when executed by the first processor, cause the first processor to:

determine a current buffer occupancy of the buffer;

determine whether the current buffer occupancy exceeds a threshold;

in response to determining that the current buffer occupancy does not exceed the threshold, set configuration parameters of the first camera group to a nominal capture quality; and

in response to determining that the current buffer occupancy exceeds the threshold:

determine a new quality level based on a plurality of configuration settings stored in the first memory, the current buffer occupancy, and a current rate of the plurality of different rates; and

set the configuration parameters of the first camera group to the new quality level.

8. The system of claim 1 , further comprising a second camera group comprising:

a second plurality of depth cameras having overlapping fields of view, the second depth cameras being spaced apart from the first depth cameras and comprising non-overlapping fields of view with the first plurality of depth cameras;

a second processor; and

a second memory storing instructions that, when executed by the second processor, cause the second processor to:

control the second depth cameras to simultaneously capture a second group of images of a second portion of the first object;

compute a partial 3-D model representing the second portion of the first object; and

detect defects in the first object based on the partial 3-D model representing the second portion of the first object.

9. The system of claim 8 , further comprising a coordinating server comprising a third processor and a third memory storing instructions that, when executed by the third processor, cause the third processor to:

receive the partial 3-D model representing the first portion of the first object from the first camera group;

receive the partial 3-D model representing the second portion of the first object from the second camera group; and

combine data from the partial 3-D model representing the first portion of the first object and the partial 3-D model representing the second portion of the first object.

10. The system of claim 9 , wherein the third memory further stores:

a first buffer configured to store data from the first camera group;

a second buffer configured to store data from the second camera group; and

instructions that, when executed by the third processor, cause the third processor to:

detect when the first buffer and the second buffer both store data corresponding to the first object; and

combine the data from the first camera group representing the first portion of the first object with the data from the second camera group representing the second portion of the first object.

11. The system of claim 10 , wherein the instructions to combine the data from the first camera group representing the first portion of the first object with the data from the second camera group representing the second portion of the first object comprises merging the partial 3-D model representing the first portion of the first object with the partial 3-D model representing the second portion of the first object.

12. The system of claim 1 , wherein the 3-D model is a point cloud.

13. The system of claim 1 , wherein the 3-D model is a mesh model.

14. The system of claim 1 , wherein each of the first depth cameras and the second depth cameras comprises:

a first invisible light two-dimensional (2-D) camera having a first optical axis and a first field of view;

a second invisible light 2-D camera having a second optical axis substantially parallel to the first optical axis of the first invisible light 2-D camera and having a second field of view overlapping the first field of view of the first invisible light 2-D camera;

a color 2-D camera having a third optical axis substantially parallel to the first optical axis of the first invisible light 2-D camera and having a third field of view overlapping the first field of view of the first invisible light 2-D camera; and

a projection source configured to emit invisible light in a portion of the electromagnetic spectrum detectable by the first invisible light 2-D camera and the second invisible light 2-D camera.

15. A method for acquiring three-dimensional (3-D) models of objects, comprising:

controlling, by a processor, a first camera group to simultaneously capture a first group of images of a first portion of a first object, the first camera group comprising a first plurality of depth cameras having different overlapping fields of view within the first plurality of depth cameras;

computing, by the processor based on the first group of images, a partial 3-D model representing the first portion of the first object;

detecting defects in the first object based on the partial 3-D model representing the first portion of the first object;

controlling, by the processor, a second camera group to simultaneously capture a second group of images of a second portion of the first object, the second camera group comprising a second plurality of depth cameras being spaced apart from the first depth cameras and comprising non-overlapping fields of view with the first plurality of depth cameras;

computing a partial 3-D model representing the second portion of the first object; and

detecting defects in the first object based on the partial 3-D model representing the second portion of the first object;

receiving, at a coordinating server, the partial 3-D model representing the first portion of the first object from the first camera group;

receiving the partial 3-D model representing the second portion of the first object from the second camera group; and

combining data from the partial 3-D model representing the first portion of the first object and the partial 3-D model representing the second portion of the first object.

16. The method of claim 15 , wherein the first camera group further comprises a first start trigger configured to detect the arrival of an object when the object enters the overlapping fields of view of the first depth cameras, and

wherein the method further comprises controlling the first depth cameras of the first camera group to capture images of the object in response to receiving a triggering signal from the first start trigger.

17. The method of claim 16 , wherein the first camera group further comprises a first stop trigger configured to detect the departure of the object from the overlapping fields of view of the first depth cameras, and

wherein the method further comprises controlling the first depth cameras of the first camera group to cease capture of images of the object in response to receiving a triggering signal from the first stop trigger.

18. The method of claim 16 , wherein the first camera group further comprises a first prepare trigger configured to detect the presence of the object before the object enters the overlapping fields of view of the first depth cameras, and

wherein the method further comprises controlling the first depth cameras of the first camera group to prepare to capture of images of the object in response to receiving a triggering signal from the first prepare trigger.

19. The method of claim 15 , wherein the overlapping fields of view of the first depth cameras are directed to a portion of a conveyor system configured to convey a plurality of objects, and

wherein the conveyor system is configured to convey the objects to enter the overlapping fields of view of the first depth cameras one at a time.

20. The method of claim 19 , wherein the conveyor system moves at a non-uniform speed and the objects arrive within the overlapping fields of view of the first camera group at a plurality of different rates, the different rates comprising a maximum burst rate and an associated maximum burst time, and

wherein the first camera group comprises a memory comprising a buffer having a size sufficient to store images of the objects arriving a maximum burst rate during the associated maximum burst time, the size being a function of at least a resolution of the first depth cameras and a frame rate of the first depth cameras.

21. The method of claim 19 , wherein the conveyor system moves at a non-uniform speed and the objects arrive within the overlapping fields of view of the first camera group at a plurality of different rates,

wherein the first camera group comprises a memory comprising a buffer configured to store images captured by the first depth cameras, and

wherein the method further comprises:

determining a current buffer occupancy of the buffer;

determining whether the current buffer occupancy exceeds a threshold;

in response to determining that the current buffer occupancy does not exceed the threshold, setting configuration parameters of the first camera group to a nominal capture quality; and

in response to determining that the current buffer occupancy exceeds the threshold:

determining a new quality level based on a plurality of configuration settings stored in the first memory, the current buffer occupancy, and a current rate of the plurality of different rates; and

setting the configuration parameters of the first camera group to the new quality level.

22. The method of claim 15 , wherein the coordinating server comprises:

a first buffer configured to store data from the first camera group; and

a second buffer configured to store data from the second camera group, wherein the method further comprises:

detecting, by the coordinating server, when the first buffer and the second buffer both store data corresponding to the first object; and

combining, by the coordinating server, the data from the first camera group representing the first portion of the first object with the data from the second camera group representing the second portion of the first object.

23. The method of claim 22 , wherein the combining the data from the first camera group representing the first portion of the first object with the data from the second camera group representing the second portion of the first object comprises merging the partial 3-D model representing the first portion of the first object with the partial 3-D model representing the second portion of the first object.

24. The method of claim 15 , wherein the 3-D model is a point cloud.

25. The method of claim 15 , wherein the 3-D model is a mesh model.

26. The method of claim 15 , wherein each of the first depth cameras and the second depth cameras comprises:

a first invisible light two-dimensional (2-D) camera having a first optical axis and a first field of view;

a second invisible light 2-D camera having a second optical axis substantially parallel to the first optical axis of the first invisible light 2-D camera and having a second field of view overlapping the first field of view of the first invisible light 2-D camera;

a color 2-D camera having a third optical axis substantially parallel to the first optical axis of the first invisible light 2-D camera and having a third field of view overlapping the first field of view of the first invisible light 2-D camera; and

a projection source configured to emit invisible light in a portion of the electromagnetic spectrum detectable by the first invisible light 2-D camera and the second invisible light 2-D camera.

Assignments (5)
SECURITY INTEREST Recorded May 15, 2025
From: PACKSIZE LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071282/0082 →
SECURITY INTEREST Recorded Aug 21, 2024
From: PACKSIZE LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 068730/0393 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2021
From: PACKSIZE INTERNATIONAL, LLC
To: PACKSIZE LLC
Reel/Frame 058287/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: AQUIFI, INC.
To: PACKSIZE INTERNATIONAL, LLC
Reel/Frame 058189/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2019
From: DAL MUTTO, CARLO; PERUCH, FRANCESCO
To: AQUIFI, INC.
Reel/Frame 051331/0937 →
Continuity (2)
Provisional Application 62666942 · May 4, 2018
Related Publication 20200098122A1 · Mar 26, 2020
Cited By (1)
US 12,704,633