IP Library Granted Patent US 10,867,214
Granted Patent B2
US 10,867,214 · App. 16/256,820 · Granted Dec 15, 2020

Generation of synthetic images for training a neural network model

Inventors: Jonathan Tremblay (Redmond, WA); Aayush Prakash (Toronto, CA); Mark A. Brophy (Toronto, CA); Varun Jampani (Nashua, NH); Cem Anil (Toronto, CA); Stanley Thomas Birchfield (Sammamish, WA); Thang Hong To (Redmond, WA); David Jesus Acuna Marrero (Toronto, CA)
Assignee: NVIDIA Corporation
G06K9/6257G06K9/6228G06T15/04G06T15/20G06T15/50G06K2209/21G06N3/04G06N3/084G06T2210/12
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,867,214
App. No.
16/256,820
Granted
Dec 15, 2020
Kind
B2
Abstract

Training deep neural networks requires a large amount of labeled training data. Conventionally, labeled training data is generated by gathering real images that are manually labelled which is very time-consuming. Instead of manually labelling a training dataset, domain randomization technique is used generate training data that is automatically labeled. The generated training data may be used to train neural networks for object detection and segmentation (labelling) tasks. In an embodiment, the generated training data includes synthetic input images generated by rendering three-dimensional (3D) objects of interest in a 3D scene. In an embodiment, the generated training data includes synthetic input images generated by rendering 3D objects of interest on a 2D background image. The 3D objects of interest are objects that a neural network is trained to detect and/or label.

Claims (34)

1. A computer-implemented method, comprising:

rendering a three-dimensional (3D) object of interest to produce a rendered image of the object of interest, wherein an input image comprises the rendered image of the object of interest and a background image;

rendering one or more 3D geometric shapes to produce one or more rendered geometric shapes, wherein the one or more rendered geometric shapes are included in the input image;

computing task-specific training data corresponding to the object of interest; and

including the task-specific training data corresponding to the object of interest and the input image as a test pair in a training dataset for training a neural network to detect the object of interest and ignore the one or more rendered geometric shapes.

2. The computer-implemented method of claim 1 , further comprising receiving a position and orientation of a light for rendering the 3D object of interest.

3. The computer-implemented method of claim 2 , further comprising receiving a color of the light for rendering the 3D object of interest.

4. The computer-implemented method of claim 2 , further comprising receiving an intensity of the light for rendering the 3D object of interest.

5. The computer-implemented method of claim 1 , wherein rendering the one or more 3D geometric shapes comprises applying a texture map to at least one of the one or more 3D geometric shapes.

6. The computer-implemented method of claim 1 , further comprising: rendering an additional 3D object of interest to produce an additional rendered object of interest, wherein the rendered additional object of interest is included in the input image; and computing additional task-specific training data corresponding to the additional object of interest, wherein the additional task-specific training data is included in the task pair.

7. The computer-implemented method of claim 6 , wherein the additional rendered object of interest occludes a portion of the rendered object of interest, and when the portion is greater than a predetermined threshold value, modifying the task-specific training data corresponding to the object of interest.

8. The computer-implemented method of claim 1 , wherein rendering the 3D object of interest comprises rendering the 3D object of interest within a 3D scene corresponding to the background image.

9. The computer-implemented method of claim 1 , further comprising:

rendering a 3D scene to produce the background image; and

combining the rendered image of the object of interest and the background image to produce the input image.

10. The computer-implemented method of claim 1 , wherein the task-specific training data defines a location and dimensions of a bounding box enclosing the rendered image of the object of interest.

11. The computer-implemented method of claim 1 , wherein the task-specific training data comprises an object identifier for each pixel that is covered by the rendered image of the object of interest.

12. The computer-implemented method of claim 1 , further comprising receiving a position and orientation in a 3D space for rendering the three-dimensional object of interest.

13. The computer-implemented method of claim 1 , wherein rendering the 3D object of interest comprises applying a texture map to the 3D object of interest.

14. The computer-implemented method of claim 1 , further comprising receiving a position and orientation of a camera for rendering the 3D object of interest.

15. The computer-implemented method of claim 1 , wherein the background image is a synthetic image.

16. The computer-implemented method of claim 1 , wherein the background image is a photorealistic image.

17. The method of claim 1 , wherein the one or more rendered geometric shapes are omitted from the task-specific training data.

18. The method of claim 1 , wherein the object of interest is rendered based on a parameter that is randomly specified to affect an appearance of the object of interest.

19. A system, comprising:

a graphics processing unit (GPU) configured to:

render a three-dimensional (3D) object of interest to produce a rendered image of the object of interest, wherein an input image comprises the rendered image of the object of interest and a background image; and

render one or more 3D geometric shapes to produce one or more rendered geometric shapes, wherein the one or more rendered geometric shapes are included in the input image; and

a memory configured to store a training dataset for training a neural network to detect the object of interest and ignore the one or more rendered geometric shapes, the training dataset including task-specific training data corresponding to the object of interest and the input image as a test pair, wherein the task-specific training data corresponding to the object of interest is computed by a processor coupled to the GPU or the GPU.

20. A non-transitory, computer-readable storage medium storing instructions that, when executed by a processing unit, cause the processing unit to:

render a three-dimensional (3D) object of interest to produce a rendered image of the object of interest, wherein an input image comprises the rendered image of the object of interest and a background image;

render one or more 3D geometric shapes to produce one or more rendered geometric shapes, wherein the one or more rendered geometric shapes are included in the input image;

compute task-specific training data corresponding to the object of interest; and

include the task-specific training data corresponding to the object of interest and the input image as a test pair in a training dataset for training a neural network to detect the object of interest and ignore the one or more rendered geometric shapes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: TREMBLAY, JONATHAN; PRAKASH, AAYUSH; BROPHY, MARK A.; JAMPANI, VARUN; ANIL, CEM; BIRCHFIELD, STANLEY THOMAS; TO, THANG HONG; ACUNA MARRERO, DAVID JESUS
To: NVIDIA CORPORATION
Reel/Frame 050446/0129 →
Continuity (2)
Provisional Application 62630722 · Feb 14, 2018
Related Publication 20190251397A1 · Aug 15, 2019
Cited By (2)
US 12,235,925 US 12,390,926