IP Library Granted Patent US 10,643,308
Granted Patent B2
US 10,643,308 · App. 15/730,135 · Granted May 5, 2020

Double non-local means denoising

Inventors: Bruno César Douady-Pleven (Bures-sur-Yvette, FR); Thomas Nicolas Emmanuel Veit (Meudon, FR); Marc Lebrun (Issy-les-Moulineaux, FR)
Assignee: GoPro, Inc.
G06T5/002G06K9/6298G06T5/50H04N5/2173H04N5/2355H04N5/23238H04N5/23254H04N5/23267H04N5/23293G06T2207/20182H04N5/2252H04N5/2258
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,643,308
App. No.
15/730,135
Granted
May 5, 2020
Kind
B2
Abstract

Systems and methods are disclosed for non-local means denoising of images. For example, methods may include receiving an image from an image sensor; determining a set of non-local means weights for the image; applying the set of non-local means weights to the image to obtain a first denoised image; applying the set of non-local means weights to the first denoised image to obtain a second denoised image; and storing, displaying, or transmitting an output image based on the second denoised image.

Claims (62)

1. A system comprising:

an image sensor configured to capture an image; and

a processing apparatus configured to:

receive the image from the image sensor;

determine a set of weights for the image, wherein a weight in the set of weights corresponds to a subject pixel and a candidate pixel and is determined based on values of one or more pixels of the image centered at the subject pixel and one or more pixels of the image centered at the candidate pixel;

apply the set of weights to the image to obtain a first denoised image, wherein the subject pixel of the first denoised image is determined based on the weight multiplied by the candidate pixel of the image;

apply the set of weights to the first denoised image to obtain a second denoised image, wherein the subject pixel of the second denoised image is determined based on the weight multiplied by the candidate pixel of the first denoised image; and

store, display, or transmit an output image based on the second denoised image.

2. The system of claim 1 , in which, for each pixel of the image there is a subset of the set of weights that corresponds to that pixel as subject, and the subset includes weights respectively associated with a plurality of other pixels that are candidates for that pixel.

3. The system of claim 2 , in which the candidates for the subject pixel are pixels of the image in an area centered at the subject pixel.

4. The system of claim 1 , in which the processing apparatus is configured to:

determine a difference between a value of the subject pixel and a value of the candidate pixel; and

determine the weight based on a magnitude of the difference.

5. The system of claim 1 , in which the processing apparatus is configured to:

determine a difference between a value of the subject pixel and a value of the candidate pixel; and

determine the weight as a Gaussian function of the difference.

6. The system of claim 1 , in which the processing apparatus is configured to:

determine a sum of absolute values of differences between respective pixels in a first area of the image centered at the subject pixel and corresponding respective pixels of a matching area of the image centered at the candidate pixel; and

determine the weight based on the sum.

7. The system of claim 6 , in which the first area is a square block of pixels and the matching area is a square block of pixels of a same size.

8. The system of claim 1 , in which the processing apparatus is configured to:

check whether a noise level of the second denoised image satisfies a condition;

iteratively apply the set of weights to the second denoised image until the condition is satisfied to obtain a third denoised image; and

in which the output image is based on the third denoised image.

9. A method comprising:

receiving an image from an image sensor;

determining a set of weights for the image, wherein a weight in the set of weights corresponds to a subject pixel and a candidate pixel and is determined based on values of one or more pixels of the image centered at the subject pixel and one or more pixels of the image centered at the candidate pixel;

applying the set of weights to the image to obtain a first denoised image, wherein the subject pixel of the first denoised image is determined based on the weight multiplied by the candidate pixel of the image;

applying the set of weights to the first denoised image to obtain a second denoised image, wherein the subject pixel of the second denoised image is determined based on the weight multiplied by the candidate pixel of the first denoised image; and

storing, displaying, or transmitting an output image based on the second denoised image.

10. The method of claim 9 , in which, for each pixel of the image, there is a subset of the set of weights that corresponds to that pixel as subject, and the subset includes weights respectively associated with a plurality of other pixels that are candidates for that pixel.

11. The method of claim 10 , in which the candidates for the subject pixel are pixels of the image in an area centered at the subject pixel.

12. The method of claim 9 , comprising:

determining a difference between a value of the subject pixel and a value of the candidate pixel; and

determining the weight based on a magnitude of the difference.

13. The method of claim 9 , comprising:

determining a difference between a value of the subject pixel and a value of the candidate pixel; and

determining the weight as a Gaussian function of the difference.

14. The method of claim 9 , comprising:

determining a sum of absolute values of differences between respective pixels in a first area of the image centered at the subject pixel and corresponding respective pixels of a matching area of the image centered at the candidate pixel; and

determining the weight based on the sum.

15. A system comprising:

an image sensor configured to capture an image; and

a processing apparatus configured to:

receive the image from the image sensor;

determine a difference between a value of a subject pixel of the image and a value of a candidate pixel of the image;

determine a set of non-local means weights for the image;

determine a weight of the set of non-local means weights based on a magnitude of the difference;

apply the set of non-local means weights to the image to obtain a first denoised image;

apply the set of non-local means weights to the first denoised image to obtain a second denoised image; and

store, display, or transmit an output image based on the second denoised image.

16. The system of claim 15 , in which the difference is a first difference, the subject pixel is a first subject pixel, the candidate pixel is a first candidate pixel, the weight is a first weight, and the processing apparatus is configured to:

determine a second difference between a value of a second subject pixel of the image and a value of a second candidate pixel of the image; and

determine a second weight of the set of non-local means weights as a Gaussian function of the second difference.

17. The system of claim 15 , in which the processing apparatus is configured to:

determine a sum of absolute values of differences between respective pixels in a first area of the image centered at the subject pixel and corresponding respective pixels of a matching area of the image centered at the candidate pixel; and determine a weight of the set of non-local means weights based on the sum.

18. The system of claim 17 , in which the first area is a square block of pixels and the matching area is a square block of pixels of a same size.

19. The system of claim 15 , in which the processing apparatus is configured to:

check whether a noise level of the second denoised image satisfies a condition;

iteratively apply the set of non-local means weights to the second denoised image until the condition is satisfied to obtain a third denoised image; and

in which the output image is based on the third denoised image.

20. The system of claim 15 , in which the candidate pixel is one of a group of candidates for the subject pixel that are pixels of the image in an area centered at the subject pixel.

Assignments (6)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY INTEREST Recorded Oct 19, 2020
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054113/0594 →
SECURITY INTEREST Recorded Feb 9, 2018
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044983/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2017
From: DOUADY-PLEVEN, BRUNO CÉSAR; VEIT, THOMAS NICOLAS EMMANUEL; LEBRUN, MARC
To: GOPRO, INC.
Reel/Frame 043839/0453 →
Continuity (1)
Related Publication 20190108622A1 · Apr 11, 2019
Cited By (1)
US 12,541,671