IP Library Granted Patent US 11,080,833
Granted Patent B2
US 11,080,833 · App. 16/692,843 · Granted Aug 3, 2021

Image manipulation using deep learning techniques in a patch matching operation

Inventors: Connelly Barnes (Seattle, WA); Utkarsh Singhal (Berkeley, CA); Elya Shechtman (Seattle, WA); Michael Gharbi (San Francisco, CA)
Assignee: Adobe Inc.
G06T5/50G06F16/53G06K9/6201G06N3/0454G06N3/08G06T5/002G06T2207/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 11,080,833
App. No.
16/692,843
Granted
Aug 3, 2021
Kind
B2
Abstract

A method for manipulating a target image includes generating a query of the target image and keys and values of a first reference image. The method also includes generating matching costs by comparing the query of the target image with each key of the reference image and generating a set of weights from the matching costs. Further, the method includes generating a set of weighted values by applying each weight of the set of weights to a corresponding value of the values of the reference image and generating a weighted patch by adding each weighted value of the set of weighted values together. Additionally, the method includes generating a combined weighted patch by combining the weighted patch with additional weighted patches associated with additional queries of the target image and generating a manipulated image by applying the combined weighted patch to an image processing algorithm.

Claims (47)

1. A non-transitory computer-readable medium having program code that is stored thereon, the program code executable by one or more processing devices for performing operations comprising:

generating, by one or more modules that include trainable components, (i) a query of a target image and (ii) a set of keys and a set of values of a first reference image;

generating matching costs by comparing the query of the target image with each key of the set of keys of the reference image;

generating a set of weights from the matching costs;

generating a set of weighted values by applying each weight of the set of weights to a corresponding value of the set of values of the reference image;

generating a weighted patch by adding each weighted value of the set of weighted values together;

generating a combined weighted patch by combining the weighted patch with additional weighted patches associated with additional queries of the target image; and

generating a manipulated image by applying the combined weighted patch to an image processing algorithm.

2. The non-transitory computer-readable medium of claim 1 , wherein the one or more modules that include trainable components comprise a first convolutional neural network that generates the query, a second convolutional neural network that generates the set of keys, and a third convolutional neural network that generates the set of values.

3. The non-transitory computer-readable medium of claim 2 , wherein the image processing algorithm comprises a fourth convolutional neural network.

4. The non-transitory computer-readable medium of claim 3 , further comprising:

generating a loss value by comparing the manipulated image to a ground truth image; and

training the first convolutional neural network, the second convolutional neural network, the third convolutional neural network, the fourth convolutional neural network, or any combination thereof using the loss value.

5. The non-transitory computer-readable medium of claim 1 , wherein the set of keys and the set of values are generated using an interleaved jump flooding algorithm.

6. The non-transitory computer-readable medium of claim 5 , wherein the interleaved jump flooding algorithm interleaves a propagation phase with a random search phase.

7. The non-transitory computer-readable medium of claim 1 , wherein the matching costs are generated by calculating an inner product or a distance metric between the query and each key of the set of keys, wherein the inner product or distance metric comprise an equal weight for all input components, a hand-specified input weighting, or an input weighting that is learned by a trainable module.

8. The non-transitory computer-readable medium of claim 1 , wherein generating the set of weights from the matching costs comprises applying a softmax function to the matching costs.

9. The non-transitory computer-readable medium of claim 1 , wherein the set of keys and the set of values comprise individual keys and individual values from both the first reference image and a second reference image.

10. A computer-implemented method in which one or more processing devices perform operations comprising:

generating, by one or more modules that include trainable components, (i) a query of a target image and (ii) a set of keys and a set of values of a first reference image;

generating matching costs by comparing the query of the target image with each key of the set of keys of the reference image;

generating a set of weights from the matching costs;

generating a set of weighted values by applying each weight of the set of weights to a corresponding value of the set of values of the reference image;

generating a weighted patch by adding each weighted value of the set of weighted values together;

generating a combined weighted patch by combining the weighted patch with additional weighted patches associated with additional queries of the target image; and

generating a manipulated image by applying the combined weighted patch to an image processing algorithm.

11. The computer-implemented method of claim 10 , wherein the one or more modules that include trainable components comprise a first convolutional neural network that generates the query, a second convolutional neural network that generates the set of keys, and a third convolutional neural network that generates the set of values.

12. The computer-implemented method of claim 11 , wherein the image processing algorithm comprises a fourth convolutional neural network.

13. The computer-implemented method of claim 12 , further comprising:

generating a loss value by comparing the manipulated image to a ground truth image; and

training the first convolutional neural network, the second convolutional neural network, the third convolutional neural network, the fourth convolutional neural network, or any combination thereof using the loss value.

14. The computer-implemented method of claim 10 , wherein the set of keys and the set of values are generated using an interleaved jump flooding algorithm.

15. The computer-implemented method of claim 10 , wherein generating the set of weights from the matching costs comprises applying a softmax function to the matching costs.

16. A computing system comprising:

means for generating, by one or more modules that include trainable components, (i) a query of a target image and (ii) a set of keys and a set of values of a first reference image;

means for generating matching costs by comparing the query of the target image with each key of the set of keys of the reference image;

means for generating a set of weights from the matching costs;

means for generating a set of weighted values by applying each weight of the set of weights to a corresponding value of the set of values of the reference image;

means for generating a weighted patch by adding each weighted value of the set of weighted values together;

means for generating a combined weighted patch by combining the weighted patch with additional weighted patches associated with additional queries of the target image; and

means for generating a manipulated image by applying the combined weighted patch to an image processing algorithm.

17. The computing system of claim 16 , wherein the one or more modules that include trainable components comprise a first convolutional neural network that generates the query, a second convolutional neural network that generates the set of keys, and a third convolutional neural network that generates the set of values.

18. The computing system of claim 17 , further comprising:

means for generating a loss value by comparing the manipulated image to a ground truth image; and

means for training the first convolutional neural network, the second convolutional neural network, the third convolutional neural network, or any combination thereof using the loss value.

19. The computing system of claim 16 , wherein the set of keys and the set of values are generated using an interleaved jump flooding algorithm.

20. The computing system of claim 16 , wherein the set of keys and the set of values comprise individual keys and individual values from both the first reference image and a second reference image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: BARNES, CONNELLY; SINGHAL, UTKARSH; SHECHTMAN, ELYA; GHARBI, MICHAEL
To: ADOBE INC.
Reel/Frame 054053/0143 →
Continuity (1)
Related Publication 20210158495A1 · May 27, 2021
Cited By (4)
US 12,301,833 US 12,315,136 US 12,532,085 US 12,627,902