IP Library › Granted Patent US 12,159,366
Granted Patent B2
US 12,159,366 · App. 17/436,298 · Granted Dec 3, 2024

High resolution real-time artistic style transfer pipeline

Inventors: Adam Prins (Kitchener, CA); Erin Hoffman-John (Palo Alto, CA); Ryan Poplin (Newark, CA); Richard Wu (Mountain View, CA); Andeep Toor (Fremont, CA)
Assignee: GOOGLE LLC
G06T3/40G06T5/00G06T5/50G06T2207/20024
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 12,159,366
App. No.
17/436,298
Granted
Dec 3, 2024
Kind
B2
Abstract

Systems and methods are provided for receiving at least one image and a reference image, and performing a plurality of downscaling operations having separable convolutions on the received at least one image. A plurality of residual blocks may be formed, with each residual block containing two separable convolutions of the kernel and two instance normalizations. A plurality of upscaling operations may be performed on the plurality of residual blocks, and a stylized image may be displayed based on at least the performed plurality of upscaling operations and the reference image.

Claims (49)

1. A method comprising:

receiving, at a computing device, at least one image and a reference image;

performing, at the computing device, a plurality of downscaling operations having separable convolutions on the received at least one image comprising:

performing a first separable convolution with a kernel to convert a first set of channels to a second set of channels, wherein the number of the second set of channels is greater than the first set of channels; and

performing a second separable convolution with the kernel to convert the second set channels of the first separable convolution to a third set of channels, wherein the number of the third set of channels is greater than the second set of channels;

forming, at the computing device, a plurality of residual blocks, with each residual block containing two separable convolutions of the kernel and two instance normalizations;

performing, at the computing device, a plurality of upscaling operations on the plurality of residual blocks comprising:

performing a first upscaling operation by performing a third separable convolution on the third set of channels to convert them to the second set of channels; and

performing a second upscaling operation by performing a fourth separable convolution on the second set of channels to convert them to the first set of channels; and

providing, for display at a display device, a stylized image based on at least the performed plurality of upscaling operations and the reference image.

2. The method of claim 1 , further comprising:

applying, at the computing device, a filter to input values of the received at least one image, wherein the filter is based on a vector of weights and a bias before performing the first separable convolution.

3. The method of claim 2 , further comprising:

outputting, at the computing device, at least one of the weights and the bias to a postprocessing shader.

4. The method of claim 1 , wherein a kernel of the first separable convolution and the second separable convolution has a size of 3×3 with a stride of 2, wherein the stride is an amount the kernel is shifted.

5. The method of claim 1 , wherein the first separable convolution comprises:

converting, at the computing device, the first set of channels having 3 channels to the second set of channels having 32 channels.

6. The method of claim 5 , wherein the second separable convolution comprises:

converting, at the computing device, the second set of channels having 32 channels to the third set of channels having 64 channels.

7. The method of claim 1 , wherein the formed residual blocks include 15 residual blocks, with each residual block containing two separable convolutions of a 3×3 kernel and two instance normalizations.

8. The method of claim 1 , wherein the first upscaling operation and the second upscaling operation are performed using a kernel having a size of 3×3 and a stride of 2, wherein the stride is an amount the kernel is shifted.

9. The method of claim 1 , wherein the first upscaling operation comprises:

performing, at the computing device, the third separable convolution by converting 64 channels of the third set of channels to 32 channels of the second set of channels.

10. The method of claim 9 , wherein the second upscaling operation comprises:

performing, at the computing device, the fourth separable convolution by converting the 32 channels of the second set of channels to 3 channels of the first set of channels.

11. The method of claim 1 , further comprising:

adding, at the computing device, image noise to the received at least one image.

12. A system comprising:

a computing device including at least a processor and a memory to:

receive at least one image and a reference image;

perform a plurality of downscaling operations having separable convolutions on the received at least one image comprising:

perform a first separable convolution with a kernel to convert a first set of channels to a second set of channels, wherein the number of the second set of channels is greater than the first set of channels; and

perform a second separable convolution with the kernel to convert the second set channels of the first separable convolution to a third set of channels, wherein the number of the third set of channels is greater than the second set of channels;

subsequent to the plurality of downscaling operations, form a plurality of residual blocks, with each residual block containing two separable convolutions of the kernel and two instance normalizations;

perform a plurality of upscaling operations on the plurality of residual blocks comprising:

perform a first upscaling operation by performing a third separable convolution on the third set of channels to convert them to the second set of channels; and

perform a second upscaling operation by performing a fourth separable convolution on the second set of channels to convert them to the first set of channels; and

provide, for display at a display device, a stylized image based on at least the performed plurality of upscaling operations and the reference image.

13. The system of claim 12 , wherein the computing device applies a filter to input values of the received at least one image, wherein the filter is based on a vector of weights and a bias before performing the first separable convolution.

14. The system of claim 13 , wherein the computing device outputs at least one of the weights and the bias to a postprocessing shader.

15. The system of claim 12 , wherein a kernel of the first separable convolution and the second separable convolution has a size of 3×3 with a stride of 2, wherein the stride is an amount the kernel is shifted.

16. The system of claim 12 , wherein the computing device converts the first set of channels having 3 channels to the second set of channels having 32 channels for the first separable convolution.

17. The system of claim 16 , wherein the computing device converts the second set of channels having 32 channels to the third set of channels having 64 channels for the second separable convolution.

18. The system of claim 12 , wherein the formed residual blocks include 15 residual blocks, with each residual block containing two separable convolutions of a 3×3 kernel and two instance normalizations.

19. The system of claim 12 , wherein the first upscaling operation and the second upscaling operation are performed by the computing device using a kernel having a size of 3×3 and a stride of 2, wherein the stride is an amount the kernel is shifted.

20. The system of claim 12 , wherein the computing device performs the third separable convolution by converting 64 channels of the third set of channels to 32 channels of the second set of channels for the first upscaling operation.

21. The system of claim 20 , wherein the computing device performs the fourth separable convolution by converting the 32 channels of the second set of channels to 3 channels of the first set of channels the second upscaling operation.

22. The system of claim 12 , wherein the computing device adds image noise to the received at least one image.

23. A computer-readable storage medium having instructions stored thereon that, when executed by a processor, cause the processor to perform the method according to claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2024
From: PRINS, ADAM; HOFFMAN-JOHN, ERIN; POPLIN, RYAN; WU, RICHARD; TOOR, ANDEEP
To: GOOGLE LLC
Reel/Frame 068976/0790 →
Continuity (3)
Provisional Application 62947262 · Dec 12, 2019
Provisional Application 62819717 · Mar 18, 2019
Related Publication 20220172322A1 · Jun 2, 2022