IP Library › Granted Patent US 10,713,816
Granted Patent B2
US 10,713,816 · App. 15/649,950 · Granted Jul 14, 2020

Fully convolutional color constancy with confidence weighted pooling

Inventors: Yuanming Hu (Beijing, CN); Baoyuan Wang (Sammamish, WA); Stephen S. Lin (Beijing, CN)
Assignee: Microsoft Technology Licensing, LLC
G06T7/90G06N3/0454G06N3/084G06T5/009H04N1/60H04N1/603G06T2207/20081G06T2207/20084
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,713,816
App. No.
15/649,950
Granted
Jul 14, 2020
Kind
B2
Abstract

Disclosed in some examples, are methods, systems, and machine readable mediums that correct image color casts by utilizing a fully convolutional network (FCN), where the patches in an input image may differ in influence over the color constancy estimation. This influence is formulated as a confidence weight that reflects the value of a patch for inferring the illumination color. The confidence weights are integrated into a novel pooling layer where they are applied to local patch estimates in determining a global color constancy result.

Claims (25)

1. A system comprising:

a processor;

a memory storing instructions, which when executed by the processor, causes the processor to perform operations comprising:

receiving a digital image;

applying the digital image as input to a convolutional neural network (CNN), the CNN producing a plurality of local patch estimates of color casts in the digital image and corresponding confidence values for the plurality of local patch estimates, wherein the CNN comprises a layer applying a confidence-weighted pooling operation to the plurality of local patch estimates of the color casts in the digital image and the corresponding confidence values to produce an output color cast;

regressing a function c(R i ) to produce the corresponding confidence values of the plurality of local patch estimates, wherein R i are a set of the plurality of local patch estimates, wherein, in the layer applying the confidence-weighted pooling, the plurality of local patch estimates are weighted by their corresponding confidence values and the weighted local patch estimates are summed to produce the output color cast; and

correcting, based on the output color cast, illumination of the color casts of the digital image to create an output digital image, wherein the CNN is trained using a set of training images, the respective training images labelled with an illumination color cast of the image, and wherein the CNN is trained by minimizing a loss function, the loss function defined as an angular error between an estimated color cast and the labelled illumination color cast.

2. The system of claim 1 , wherein the CNN comprises a convolution layer, a Rectified Linear Unit layer, and a max pooling layer.

3. The system of claim 1 , wherein the CNN is a seven-layer convolutional neural network.

4. The system of claim 1 , wherein the output digital image is input to an object recognition algorithm that recognizes an object in the output digital image.

5. A non-transitory machine-readable medium storing instructions, which when executed by a machine, causes the machine to perform operations comprising:

receiving a digital image;

applying the digital image as input to a convolutional neural network (CNN), the CNN producing a plurality of local patch estimates of color casts in the digital image and corresponding confidence values for the plurality of local patch estimates, wherein the CNN comprises a layer applying a confidence-weighted pooling operation to the plurality of local patch estimates of the color casts in the digital image and the corresponding confidence values to produce an output color cast;

regressing a function c(R i ) to produce the corresponding confidence values of the plurality of local patch estimates, wherein R i are a set of the plurality of local patch estimates, wherein, in the layer applying the confidence-weighted pooling, the plurality of local patch estimates are weighted by their corresponding confidence values and the weighted local patch estimates are summed to produce the output color cast; and

correcting, based on the output color cast, illumination of the color casts of the digital image to create an output digital image, wherein the CNN is trained using a set of training images, the respective training images labelled with an illumination color cast of the image, and wherein the CNN is trained by minimizing a loss function, the loss function defined as an angular error between an estimated color cast and the labelled illumination color cast.

6. The machine-readable medium of claim 5 , wherein the CNN comprises a convolution layer, a Rectified Linear Unit layer, and a max pooling layer.

7. The machine-readable medium of claim 5 , wherein the CNN is a seven-layer convolutional neural network.

8. The machine-readable medium of claim 5 , wherein the output digital image is input to an object recognition algorithm that recognizes an object in the output digital image.

9. A method comprising:

receiving a digital image;

applying the digital image as input to a convolutional neural network (CNN), the CNN producing a plurality of local patch estimates of color casts in the digital image and corresponding confidence values for the plurality of local patch estimates, wherein the CNN comprises a layer applying a confidence-weighted pooling operation to the plurality of local patch estimates of the color casts in the digital image and the corresponding confidence values to produce an output color cast;

regressing a function c(R i ) to produce the corresponding confidence values of the plurality of local patch estimates, wherein R i are a set of the plurality of local patch estimates, wherein, in the layer applying the confidence-weighted pooling, the plurality of local patch estimates are weighted by their corresponding confidence values and the weighted local patch estimates are summed to produce the output color cast; and

correcting, based on the output color cast, illumination of the color casts of the digital image to create an output digital image, wherein the CNN is trained using a set of training images, the respective training images labelled with an illumination color cast of the image, and wherein the CNN is trained by minimizing a loss function, the loss function defined as an angular error between an estimated color cast and the labelled illumination color cast.

10. The method of claim 9 , wherein the CNN comprises a convolution layer, a Rectified Linear Unit layer, and a max pooling layer.

11. The method of claim 9 , wherein the CNN is a seven-layer convolutional neural network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2017
From: HU, YUANMING; WANG, BAOYUAN; LIN, STEPHEN S.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044426/0115 →
Continuity (1)
Related Publication 20190019311A1 · Jan 17, 2019
Cited By (3)
US 12,335,667 US 12,340,569 US 12,689,717