IP Library Granted Patent US 10,055,882
Granted Patent B2
US 10,055,882 · App. 15/678,075 · Granted Aug 21, 2018

System and method for three-dimensional scanning and for capturing a bidirectional reflectance distribution function

Inventors: Giulio Marin (Sunnyvale, CA); Abbas Rafii (Palo Alto, CA); Carlo Dal Mutto (Sunnyvale, CA); Kinh Tieu (Sunnyvale, CA); Giridhar Murali (Sunnyvale, CA); Alvise Memo (Marcon, IT)
Assignee: Aquifi, Inc.
G06T15/506G06K9/627G06K9/6262G06T7/001G06T15/04G06T17/20G06T2207/10024G06T2207/10028G06T2207/10048G06T2207/20081G06T2207/20084H04N13/025H04N13/0282
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 10,055,882
App. No.
15/678,075
Granted
Aug 21, 2018
Kind
B2
Abstract

A method for generating a three-dimensional (3D) model of an object includes: capturing images of the object from a plurality of viewpoints, the images including color images; generating a 3D model of the object from the images, the 3D model including a plurality of planar patches; for each patch of the planar patches: mapping image regions of the images to the patch, each image region including at least one color vector; and computing, for each patch, at least one minimal color vector among the color vectors of the image regions mapped to the patch; generating a diffuse component of a bidirectional reflectance distribution function (BRDF) for each patch of planar patches of the 3D model in accordance with the at least one minimal color vector computed for each patch; and outputting the 3D model with the BRDF for each patch.

Claims (98)

1. A method for generating a three-dimensional (3D) model of an object, comprising:

capturing a plurality of images of the object from a plurality of viewpoints, the images comprising a plurality of color images;

generating a 3D model of the object from the images, the 3D model comprising a plurality of planar patches;

for each patch of the planar patches:

mapping a plurality of image regions of the plurality of images to the patch, each image region comprising at least one color vector; and

computing, for each patch, at least one minimal color vector among the color vectors of the image regions mapped to the patch;

generating a diffuse component of a bidirectional reflectance distribution function (BRDF) for each patch of planar patches of the 3D model in accordance with the at least one minimal color vector computed for each patch;

outputting the 3D model with the BRDF for each patch, the BRDF further comprising a specular component separate from the diffuse component;

rendering one or more diffuse views of the object;

computing a plurality of features based on the one or more diffuse views of the object; and

assigning a classification to the object in accordance with the plurality of features, the classification comprising one of: a defective classification and a clean classification,

wherein the assigning the classification to the object in accordance with the plurality of features is performed by a convolutional neural network, and

wherein the convolutional neural network is trained by:

receiving a plurality of training 3D models of objects and corresponding training classifications;

rendering a plurality of views of the 3D models with controlled lighting to generate training data;

computing a plurality of feature vectors from the views by the convolutional neural network;

computing parameters of the convolutional neural network;

computing a training error metric between the training classifications of the training 3D models with outputs of the convolutional neural network configured based on the parameters;

computing a validation error metric in accordance with a plurality of validation 3D models separate from the training 3D models;

in response to determining that the training error metric and the validation error metric fail to satisfy a threshold, rendering additional views of the 3D models with different controlled lighting to generate additional training data;

in response to determining that the training error metric and the validation error metric satisfy the threshold, configuring the neural network in accordance with the parameters;

receiving a plurality of test 3D models of objects with unknown classifications;

rendering a plurality of views of the test 3D models with controlled lighting to generate testing data; and

classifying the test 3D models using the rendered views of the test 3D models and the configured convolutional neural network.

2. The method of claim 1 , further comprising:

aligning the 3D model with a reference model;

comparing the 3D model to the reference model to compute a plurality of differences between corresponding portions of the 3D model and the reference model; and

detecting a defect in the object when one or more of the plurality of differences exceeds a threshold.

3. The method claim 1 , further comprising: receiving a user input specifying one or more parameters of the specular component of the BRDF.

4. The method of claim 3 , wherein the specified one or more parameters of the specular component of the BRDF are applied to a selected portion of the 3D model.

5. The method of claim 1 , further comprising computing the specular component of the BRDF, the computing the specular component comprising, for each of the planar patches:

subtracting the at least one minimal color vector from the color vector of each of the image regions mapped to the patch to compute a plurality of specular images of the patch; and

computing one or more parameters of the specular component.

6. The method of claim 5 , wherein the computing the one or more parameters of the specular component comprises:

initializing the one or more parameters;

rendering the 3D model in accordance with the BRDF set in accordance with the one or more parameters to render a plurality of rendered views of the patch;

computing an error function in accordance with a difference between the rendered views of the patch with the image regions mapped to the patch; and

computing the one or more parameters by iteratively updating the one or more parameters to minimize the error function.

7. The method of claim 1 , further comprising:

arranging the 3D model in a virtual environment including a virtual camera and at least one light source;

rendering an image of the virtual environment including the 3D model, the image comprising at least one specular highlight from the reflection of the at least one light source off the 3D model; and

displaying the image.

8. The method of claim 1 , wherein the plurality of images are captured by a plurality of different cameras.

9. The method of claim 8 , wherein the plurality of images of the object are captured while the object is on a conveyor belt.

10. The method of claim 1 , wherein the plurality of images of the object from the plurality of viewpoints are captured by a single camera.

11. The method of claim 10 , wherein the camera is a stereoscopic depth camera comprising a first infrared camera, a second infrared camera, and a color camera.

12. The method of claim 1 , wherein the 3D model is a model of less than the entire exterior surface of the object.

13. A system for generating a three-dimensional (3D) model of an object, the system comprising:

a depth camera system;

a processor coupled to the depth camera system; and

memory having instructions stored thereon that, when executed by the processor, cause the processor to:

capture a plurality of images of the object from a plurality of viewpoints, the images comprising a plurality of color images;

generate a 3D model of the object from the images, the 3D model comprising a plurality of planar patches;

for each patch of the planar patches:

map a plurality of image regions of the plurality of images to the patch, each image region comprising at least one color vector; and

compute, for each patch, at least one minimal color vector among the color vectors of the image regions mapped to the patch;

generate a diffuse component of a bidirectional reflectance distribution function (BRDF) for each patch of planar patches of the 3D model in accordance with the at least one minimal color vector computed for each patch;

output the 3D model with the BRDF for each patch, the BRDF further comprising a specular component separate from the diffuse component;

render one or more diffuse views of the object;

compute a plurality of features based on the one or more diffuse views of the object; and

assign a classification to the object in accordance with the plurality of features, the classification comprising one of: a defective classification and a clean classification,

wherein the instructions configured to cause the processor to assign the classification to the object in accordance with the plurality of features supply the features to a convolutional neural network, and

wherein the convolutional neural network is trained by:

receiving a plurality of training 3D models of objects and corresponding training classifications;

rendering a plurality of views of the 3D models with controlled lighting to generate training data;

computing a plurality of feature vectors from the views by the convolutional neural network;

computing parameters of the convolutional neural network;

computing a training error metric between the training classifications of the training 3D models with outputs of the convolutional neural network configured based on the parameters;

computing a validation error metric in accordance with a plurality of validation 3D models separate from the training 3D models;

in response to determining that the training error metric and the validation error metric fail to satisfy a threshold, rendering additional views of the 3D models with different controlled lighting to generate additional training data;

in response to determining that the training error metric and the validation error metric satisfy the threshold, configuring the neural network in accordance with the parameters;

receiving a plurality of test 3D models of objects with unknown classifications;

rendering a plurality of views of the test 3D models with controlled lighting to generate testing data; and

classifying the test 3D models using the rendered views of the test 3D models and the configured convolutional neural network.

14. The system of claim 13 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to:

align the 3D model with a reference model;

compare the 3D model to the reference model to compute a plurality of differences between corresponding portions of the 3D model and the reference model; and

detect a defect in the object when one or more of the plurality of differences exceeds a threshold.

15. The system of claim 13 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to receive a user input specifying one or more parameters of the specular component of the BRDF.

16. The system of claim 15 , wherein the specified one or more parameters of the specular component of the BRDF are applied to a selected portion of the 3D model.

17. The system of claim 13 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to: compute the specular component of the BRDF for each of the planar patches by:

subtracting the at least one minimal color vector from the color vector of each of the image regions mapped to the patch to compute a plurality of specular images of the patch; and

compute one or more parameters of the specular component.

18. The system of claim 17 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to: compute the specular component of the BRDF for each of the planar patches by:

initializing the one or more parameters;

rendering the 3D model in accordance with the BRDF set in accordance with the one or more parameters to render a plurality of rendered views of the patch;

computing an error function in accordance with a difference between the rendered views of the patch with the image regions mapped to the patch; and

computing the one or more parameters by iteratively updating the one or more parameters to minimize the error function.

19. The system of claim 13 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to:

arrange the 3D model in a virtual environment including a virtual camera and at least one light source;

render an image of the virtual environment including the 3D model, the image comprising at least one specular highlight from the reflection of the at least one light source off the 3D model; and

display the image.

20. The system of claim 13 , further comprising a plurality of different cameras, wherein the plurality of images are captured by the plurality of different cameras.

21. The system of claim 20 , wherein the plurality of different cameras is configured to image the object while the object is on a conveyor belt.

22. The system of claim 13 , further comprising a single camera,

wherein the plurality of images of the object from the plurality of viewpoints are captured by the single camera.

23. The system of claim 22 , wherein the camera is a stereoscopic depth camera comprising a first infrared camera, a second infrared camera, and a color camera.

24. The system of claim 13 , wherein the 3D model is a model of less than the entire exterior surface of the object.

Assignments (8)
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 9, 2021
From: COMERICA BANK
To: AQUIFI, INC.
Reel/Frame 058353/0680 →
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 →
SECURITY INTEREST Recorded Aug 20, 2019
From: AQUIFI, INC.
To: COMERICA BANK
Reel/Frame 050111/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2018
From: TIEU, KINH; MURALI, GIRIDHAR; MEMO, ALVISE
To: AQUIFI, INC.
Reel/Frame 046305/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: MARIN, GIULIO; RAFII, ABBAS; DAL MUTTO, CARLO
To: AQUIFI, INC.
Reel/Frame 043310/0283 →
Continuity (2)
Provisional Application 62375350 · Aug 15, 2016
Related Publication 20180047208A1 · Feb 15, 2018
Cited By (15)
US 12,190,916 US 12,261,990 US 12,301,778 US 12,373,968 US 12,380,634 US 12,381,995 US 12,418,638 US 12,432,327 US 12,450,726 US 12,452,396 US 12,495,134 US 12,525,045 US 12,541,933 US 12,657,238 US 12,665,986