IP Library › Granted Patent US 12,125,247
Granted Patent B2
US 12,125,247 · App. 17/492,537 · Granted Oct 22, 2024

Processing images using self-attention based neural networks

Inventors: Neil Matthew Tinmouth Houlsby (Zurich, CH); Sylvain Gelly (Zurich, CH); Jakob D. Uszkoreit (Berlin, DE); Xiaohua Zhai (Zurich, CH); Georg Heigold (Aachen, DE); Lucas Klaus Beyer (Zurich, CH); Alexander Kolesnikov (Zurich, CH); Matthias Johannes Lorenz Minderer (Zurich, CH); Dirk Weissenborn (Berlin, DE); Mostafa Dehghani (Amsterdam, NL); Alexey Dosovitskiy (Berlin, DE); Thomas Unterthiner (Berlin, DE)
Assignee: Google LLC
G06T7/97G06F18/24G06N3/045G06N3/08G06T2207/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 12,125,247
App. No.
17/492,537
Granted
Oct 22, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for processing images using self-attention based neural networks. One of the methods includes obtaining one or more images comprising a plurality of pixels; determining, for each image of the one or more images, a plurality of image patches of the image, wherein each image patch comprises a different subset of the pixels of the image; processing, for each image of the one or more images, the corresponding plurality of image patches to generate an input sequence comprising a respective input element at each of a plurality of input positions, wherein a plurality of the input elements correspond to respective different image patches; and processing the input sequences using a neural network to generate a network output that characterizes the one or more images, wherein the neural network comprises one or more self-attention neural network layers.

Claims (54)

1. A method comprising:

obtaining one or more images comprising a plurality of pixels;

determining, for each image of the one or more images, a plurality of image patches of the image, wherein each image patch comprises a different subset of the pixels of the image;

processing, for each image of the one or more images, the corresponding plurality of image patches to generate an input sequence comprising a respective input element at each of a plurality of input positions, wherein a plurality of the input elements correspond to respective different image patches; and

processing the input sequences using a neural network to generate a network output that characterizes the one or more images, wherein the neural network comprises one or more self-attention neural network layers and wherein the processing comprises:

processing the input sequence using the neural network to generate a respective output element for each input element in the input sequence; and

processing one or more of the output elements using a third neural network to generate the network output, wherein the third neural network is configured to generate network outputs of a first type and the neural network has been trained concurrently with a fourth neural network to generate network outputs of a second type that is different from the first type.

2. The method of claim 1 , wherein processing the plurality of image patches corresponding to an image to generate an input sequence comprises, for each image patch:

generating a respective one-dimensional initial input element that includes the pixels of the image patch; and

generating a respective input element using the respective initial input element.

3. The method of claim 2 , wherein each image patch has dimensionality L×W×C, wherein C represents a number of channels of the image, and wherein each initial input element has dimensionality 1×(L·W·C).

4. The method of claim 2 , wherein generating a respective input element using the respective initial input element comprises processing the initial input element using a second neural network.

5. The method of claim 4 , wherein the second neural network comprises one or more fully-connected neural network layers.

6. The method claim 1 , wherein processing the plurality of image patches corresponding to an image to generate an input sequence comprises:

processing the plurality of image patches to generate respective intermediate input elements; and

combining, for each intermediate input element, the intermediate input element with a positional embedding representing a position of the corresponding image patch in the image to generate a respective input element.

7. The method of claim 6 , wherein each positional embedding is an integer.

8. The method of claim 6 , wherein each positional embedding is machine-learned.

9. The method of claim 1 , wherein a particular input element in the input sequence is a machine-learned tensor.

10. The method claim 1 , wherein a plurality of network parameters of the neural network have been updated during training of the third neural network.

11. The method of claim 1 , wherein the third neural network is a multi-layer perceptron.

12. The method of claim 1 , wherein, for a respective input sequence:

a particular input element in the input sequence is a machine-learned tensor; and

processing one or more output elements using the third neural network comprises processing the output element corresponding to the particular input element using the third neural network to generate a prediction.

13. The method of claim 1 , wherein one or more of the self-attention neural network layers are multi-head self-attention neural network layers.

14. The method of claim 1 , wherein the neural network comprises a sequence of one or more subnetworks, each subnetwork configured to receive a respective subnetwork input for each of the plurality of input positions and to generate a respective subnetwork output for each of the plurality of input positions, wherein each subnetwork comprises a self-attention neural network layer and a position-wise feedforward neural network layer.

15. The method of claim 14 , wherein each subnetwork further comprises one or more of:

a first layer normalization layer that applies layer normalization to the subnetwork inputs for each of the plurality of input positions;

a first residual connection layer that combines an output of the self-attention neural network layer with the subnetwork inputs for each of the plurality of input positions;

a second layer normalization layer that applies layer normalization to an output of the first residual connection layer; or

a second residual connection layer that combines an outputs of the position-wise feed-forward neural network layer with the output of the first residual connection layer.

16. The method of claim 1 , wherein:

the network output comprises a classification output that includes a respective score corresponding to each of multiple categories, a score for a category indicating a likelihood that the image belongs to the category;

the network output comprises a pixel-level classification output that includes, for each pixel in the image, a respective score corresponding to each of multiple categories, wherein the score for a category indicates a likelihood that the pixel belong to the category;

the network output comprises coordinates for one or more bounding boxes that enclose respective objects depicted in the image, or

the neural network receives multiple images that are video frames of a video, and the network output comprises an output that characterizes the video frames.

17. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one more computers to perform operations comprising:

obtaining one or more images comprising a plurality of pixels;

determining, for each image of the one or more images, a plurality of image patches of the image, wherein each image patch comprises a different subset of the pixels of the image;

processing, for each image of the one or more images, the corresponding plurality of image patches to generate an input sequence comprising a respective input element at each of a plurality of input positions, wherein a plurality of the input elements correspond to respective different image patches; and

processing the input sequences using a neural network to generate a network output that characterizes the one or more images, wherein the neural network comprises one or more self-attention neural network layers and wherein the processing comprises:

processing the input sequence using the neural network to generate a respective output element for each input element in the input sequence; and

processing one or more of the output elements using a third neural network to generate the network output, wherein the third neural network is configured to generate network outputs of a first type and the neural network has been trained concurrently with a fourth neural network to generate network outputs of a second type that is different from the first type.

18. One or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one more computers to perform operations comprising:

obtaining one or more images comprising a plurality of pixels;

determining, for each image of the one or more images, a plurality of image patches of the image, wherein each image patch comprises a different subset of the pixels of the image;

processing, for each image of the one or more images, the corresponding plurality of image patches to generate an input sequence comprising a respective input element at each of a plurality of input positions, wherein a plurality of the input elements correspond to respective different image patches; and

processing the input sequences using a neural network to generate a network output that characterizes the one or more images, wherein the neural network comprises one or more self-attention neural network layers and wherein the processing comprises:

processing the input sequence using the neural network to generate a respective output element for each input element in the input sequence; and

processing one or more of the output elements using a third neural network to generate the network output, wherein the third neural network is configured to generate network outputs of a first type and the neural network has been trained concurrently with a fourth neural network to generate network outputs of a second type that is different from the first type.

19. The system of claim 17 , wherein processing the plurality of image patches corresponding to an image to generate an input sequence comprises, for each image patch:

generating a respective one-dimensional initial input element that includes the pixels of the image patch; and

generating a respective input element using the respective initial input element.

20. The system of claim 19 , wherein generating a respective input element using the respective initial input element comprises processing the initial input element using a second neural network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2022
From: HOULSBY, NEIL MATTHEW TINMOUTH; GELLY, SYLVAIN; USZKOREIT, JAKOB D.; ZHAI, XIAOHUA; HEIGOLD, GEORG; BEYER, LUCAS KLAUS; KOLESNIKOV, ALEXANDER; MINDERER, MATTHIAS JOHANNES LORENZ; WEISSENBORN, DIRK; DEHGHANI, MOSTAFA; DOSOVITSKIY, ALEXEY; UNTERTHINER, THOMAS
To: GOOGLE LLC
Reel/Frame 058590/0247 →
Continuity (2)
Provisional Application 63087135 · Oct 2, 2020
Related Publication 20220108478A1 · Apr 7, 2022
Cited By (1)
US 12,530,878