IP Library › Granted Patent US 10,572,979
Granted Patent B2
US 10,572,979 · App. 15/946,654 · Granted Feb 25, 2020

Denoising Monte Carlo renderings using machine learning with importance sampling

Inventors: Thijs Vogels (Lausanne, CH); Fabrice Rousselle (Ostermundingen, CH); Brian McWilliams (Zürich, CH); Mark Meyer (Davis, CA); Jan Novak (Meilen, CH)
Assignees: Pixar; Disney Enterprises, Inc.
G06T5/002G06K9/623G06K9/6257G06K9/6298G06N3/04G06N3/0454G06N3/08G06N3/084G06T5/50G06T7/0002G06T7/90G06T15/06G06T2207/20076G06T2207/20081G06T2207/20084G06T2207/30168G06T2207/30201
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,572,979
App. No.
15/946,654
Granted
Feb 25, 2020
Kind
B2
Abstract

Supervised machine learning using neural networks is applied to denoising images rendered by MC path tracing. Specialization of neural networks may be achieved by using a modular design that allows reusing trained components in different networks and facilitates easy debugging and incremental building of complex structures. Specialization may also be achieved by using progressive neural networks. In some embodiments, training of a neural-network based denoiser may use importance sampling, where more challenging patches or patches including areas of particular interests within a training dataset are selected with higher probabilities than others. In some other embodiments, generative adversarial networks (GANs) may be used for training a machine-learning based denoiser as an alternative to using pre-defined loss functions.

Claims (59)

1. A method of denoising images rendered by Monte Carlo (MC) path tracing, the method comprising:

receiving a set of input images rendered by MC path tracing and a set of reference images, each reference image corresponding to a respective input image;

configuring a neural network comprising:

an input layer configured to receive the set of input images;

a plurality of hidden layers, each hidden layer having a respective number of nodes, each node associated with a respective parameter, a first layer of the plurality of hidden layers coupled to the input layer; and

an output layer coupled to a last layer of the plurality of hidden layers and configured to output a respective denoised image corresponding to a respective input image;

training the neural network using the set of input images and the set of reference images, the training comprising:

obtaining one or more image metrics for each respective input image of the set of input images or for a reference image corresponding to the respective input image;

selecting a first input image among the set of input images according to a probability function based on the one or more image metrics;

performing a first iteration of the training using the first input image and a corresponding first reference image to obtain a first intermediate set of parameters associated with the nodes of the plurality of hidden layers;

selecting additional input images among the set of input images according to the probability function; and

performing additional iterations of the training using each of the additional input images and a corresponding reference image to obtain a final set of parameters associated with the nodes of the plurality of hidden layers;

receiving a new input image rendered by MC path tracing; and

generating a new denoised image corresponding to the new input image by passing the new input image through the neural network using the final set of parameters.

2. The method of claim 1 , wherein the one or more image metrics relate to one or more of average pixel color variance within the respective input image, variance of surface normals within the respective input image, presence of edges within the respective input image, or variance of effective diffuse irradiance within the respective input image.

3. The method of claim 2 , wherein each input image of the set of input images includes one or more auxiliary buffers output by a renderer, and wherein the one or more image metrics are obtained from the one or more auxiliary buffers.

4. The method of claim 2 , wherein the one or more image metrics are obtained by analyzing each of the set of input images using an image analysis algorithm.

5. The method of claim 1 , wherein the training of the neural network further comprises:

for each iteration of the training:

passing a respective input image through the neural network to obtain an intermediate denoised image;

comparing the intermediate denoised image to a corresponding reference image to obtain a gradient of a loss function for each pixel; and

back-propagating the gradient of the loss function through the neural network to obtain an updated set of parameters associated with the nodes of the plurality of hidden layers.

6. The method of claim 5 , further comprising:

normalizing the gradient of the loss function by the probability function.

7. The method of claim 6 , wherein normalizing the gradient of the loss function comprises dividing the gradient of the loss function by the probability function.

8. The method of claim 1 , wherein each input image of the set of input images is rendered with a first number of samples per pixel, each reference image of the set of reference images is rendered by MC path tracing with a second number of samples per pixel greater than the first number of samples per pixel.

9. The method of claim 1 , wherein the neural network comprises a convolutional neural network.

10. The method of claim 1 , wherein the neural network comprises a multilayer perceptron neural network.

11. A method of denoising images rendered by Monte Carlo (MC) path tracing, the method comprising:

receiving a set of input images rendered by MC path tracing and a set of reference images, each reference image corresponding to a respective input image;

configuring a neural network comprising:

an input layer configured to receive the set of input images;

a plurality of hidden layers, each hidden layer having a respective number of nodes, each node associated with a respective parameter, a first layer of the plurality of hidden layers coupled to the input layer; and

an output layer coupled to a last layer of the plurality of hidden layers, the output layer configured to output a respective denoised image corresponding to a respective input image;

training the neural network using the set of input images and the set of reference images, the training comprising:

performing one or more initial iterations of the training by randomly sampling the set of input images using a uniform probability to obtain a set of intermediate denoised images, each intermediate denoised image corresponding to a respective input image;

for each respective input image, evaluating an error gradient by comparing a corresponding intermediate denoised image to the respective input image; and

performing one or more additional iterations of the training by sampling the set of input images according to a probability function based on the error gradient of each input image of the set of input images to obtain a set of optimized parameters associated with the nodes of the plurality of hidden layers;

receiving a new input image rendered by MC path tracing; and

generating a new denoised image corresponding to the new input image by passing the new input image through the neural network using the set of optimized parameters.

12. The method of claim 11 , wherein the probability function is proportional to the error gradient of each input image.

13. The method of claim 12 , further comprising normalizing the error gradient by dividing the error gradient by the probability function.

14. The method of claim 11 , wherein each of the set of input images is rendered with a first number of samples per pixel, each of the set of reference images is rendered by MC path tracing with a second number of samples per pixel greater than the first number of samples per pixel.

15. The method of claim 11 , wherein the neural network comprises a convolutional neural network or a multilayer perceptron neural network.

16. A method of denoising images rendered by Monte Carlo (MC) path tracing, the method comprising:

receiving a set of input images rendered by MC path tracing and a set of reference images, each reference image corresponding to a respective input image;

configuring a neural network comprising:

an input layer configured to receive the set of input images;

a plurality of hidden layers, each hidden layer having a respective number of nodes, each node associated with a respective parameter, a first layer of the plurality of hidden layers coupled to the input layer; and

an output layer coupled to a last layer of the plurality of hidden layers, the output layer configured to output a respective denoised image corresponding to a respective input image;

training the neural network using the set of input images and the set of reference images, the training comprising:

assigning a relevance score to each respective input image of the set of input images, the relevance score indicating a degree of relevance to one or more areas of interests; and

performing the training by sampling the set of input images according to a probability function that is proportional to the relevance score of each respective input image to obtain a set of optimized parameters associated with the nodes of the plurality of hidden layers;

receiving a new input image rendered by MC path tracing; and

generating a denoised image corresponding to the new input image by passing the new input image through the neural network using the set of optimized parameters.

17. The method of claim 16 , wherein the one or more areas of interests relate to one or more of presence of hair, presence of a face, or presence of a character in the respective input image.

18. The method of claim 16 , wherein the neural network comprises a convolutional neural network.

19. The method of claim 16 , wherein the neural network comprises a multilayer perceptron neural network.

20. The method of claim 16 , wherein each input image of the set of input images is rendered with a first number of samples per pixel, each reference image of the set of reference images is rendered by MC path tracing with a second number of samples per pixel greater than the first number of samples per pixel.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2018
From: THE WALT DISNEY COMPANY (SWITZERLAND) GMBH
To: DISNEY ENTERPRISES, INC.
Reel/Frame 046606/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2018
From: VOGELS, THIJS; ROUSSELLE, FABRICE; MCWILLIAMS, BRIAN; NOVAK, JAN
To: THE WALT DISNEY COMPANY (SWITZERLAND) GMBH
Reel/Frame 046574/0739 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2018
From: MEYER, MARK
To: PIXAR
Reel/Frame 046044/0232 →
Continuity (3)
Provisional Application 62482596 · Apr 6, 2017
Provisional Application 62650106 · Mar 29, 2018
Related Publication 20180293713A1 · Oct 11, 2018
Cited By (9)
US 12,354,245 US 12,367,661 US 12,450,697 US 12,462,350 US 12,475,535 US 12,530,876 US 12,596,931 US 12,602,738 US 12,651,318