IP Library Granted Patent US 9,904,875
Granted Patent B2
US 9,904,875 · App. 15/649,947 · Granted Feb 27, 2018

Processing images using deep neural networks

Inventors: Christian Szegedy (Mountain View, CA); Vincent O. Vanhoucke (San Francisco, CA)
Assignee: Google LLC
G06K9/66G06N3/0454G06N3/084
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 9,904,875
App. No.
15/649,947
Granted
Feb 27, 2018
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for image processing using deep neural networks. One of the methods includes receiving data characterizing an input image; processing the data characterizing the input image using a deep neural network to generate an alternative representation of the input image, wherein the deep neural network comprises a plurality of subnetworks, wherein the subnetworks are arranged in a sequence from lowest to highest, and wherein processing the data characterizing the input image using the deep neural network comprises processing the data through each of the subnetworks in the sequence; and processing the alternative representation of the input image through an output layer to generate an output from the input image.

Claims (46)

1. A method comprising:

during the training of a deep neural network, receiving data characterizing an input image;

processing the data characterizing the input image using the deep neural network to generate an alternative representation of the input image, wherein the deep neural network comprises a plurality of subnetworks, wherein the subnetworks are arranged in a sequence from lowest to highest, wherein each subnetwork receives a respective input representation and generates a respective output representation that is provided as input to a following subnetwork in the sequence, and wherein processing the data characterizing the input image using the deep neural network comprises processing the data through each of the subnetworks in the sequence;

processing the alternative representation of the input image through an output layer to generate an output from the input image; and

processing the output representations from one or more of the subnetworks using one or more other training subnetworks that augment the deep neural network to generate a training subnetwork output for the input image, wherein each of the one or more other training subnetworks comprises one or more neural network layers, wherein each of the one or more other training subnetworks corresponds to a respective subnetwork of the plurality of subnetworks in the sequence, and wherein each of the training subnetworks is configured to receive as input the subnetwork output of the corresponding subnetwork.

2. The method of claim 1 , further comprising, after the deep neural network has been trained:

receiving new data characterizing a new input image;

processing the new data characterizing the new input image using the deep neural network to generate an alternative representation of the new input image, wherein processing the data characterizing the new input image using the deep neural network comprises processing the new data through each of the subnetworks in the sequence; and

processing the alternative representation of the new input image through the output layer to generate a new output from the new input image.

3. The method of claim 2 , further comprising performing the processing of the new data without using the one or more other training subnetworks.

4. The method of claim 1 , wherein generating a respective output representation that is provided as input to a following subnetwork in the sequence comprises:

processing the respective output representation through each layer of a first group of neural network layers to generate a first group output, wherein the first group comprises a first convolutional layer followed by a second convolutional layer.

5. The method of claim 4 , wherein the first convolutional layer is a 1×1 convolutional layer.

6. The method of claim 4 , wherein the second convolutional layer is a 3×3 convolutional layer.

7. The method of claim 1 , wherein generating a respective output representation that is provided as input to a following subnetwork in the sequence comprises:

processing the respective output representation through each layer of a second group of neural network layers to generate a second group output, wherein the second group comprises a third convolutional layer followed by a fourth convolutional layer.

8. The method of claim 7 , wherein the third convolutional layer is a 1×1 convolutional layer.

9. The method of claim 7 , wherein the fourth convolutional layer is a 5×5 convolutional layer.

10. The method of claim 1 , wherein generating a respective output representation that is provided as input to a following subnetwork in the sequence comprises:

processing the respective output representation through each layer of a third group of neural network layers to generate a third group output, wherein the third group comprises a first max-pooling layer followed by a fifth convolutional layer.

11. The method of claim 10 , wherein the first max-pooling layer is a 3×3 max pooling layer.

12. The method of claim 10 , wherein the fifth convolutional layer is a 1×1 convolutional layer.

13. 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 or more computers to perform operations comprising:

during the training of a deep neural network, receiving data characterizing an input image;

processing the data characterizing the input image using the deep neural network to generate an alternative representation of the input image, wherein the deep neural network comprises a plurality of subnetworks, wherein the subnetworks are arranged in a sequence from lowest to highest, wherein each subnetwork receives a respective input representation and generates a respective output representation that is provided as input to a following subnetwork in the sequence, and wherein processing the data characterizing the input image using the deep neural network comprises processing the data through each of the subnetworks in the sequence;

processing the alternative representation of the input image through an output layer to generate an output from the input image; and

processing the output representations from one or more of the subnetworks using one or more other training subnetworks that augment the deep neural network to generate a training subnetwork output for the input image, wherein each of the one or more other training subnetworks comprises one or more neural network layers, wherein each of the one or more other training subnetworks corresponds to a respective subnetwork of the plurality of subnetworks in the sequence, and wherein each of the training subnetworks is configured to receive as input the subnetwork output of the corresponding subnetwork.

14. The system of claim 13 , wherein the operations further comprise, after the deep neural network has been trained:

receiving new data characterizing a new input image;

processing the new data characterizing the new input image using the deep neural network to generate an alternative representation of the new input image, wherein processing the data characterizing the new input image using the deep neural network comprises processing the new data through each of the subnetworks in the sequence; and

processing the alternative representation of the new input image through the output layer to generate a new output from the new input image.

15. The system of claim 14 , the operations further comprising performing the processing of the new data without using the one or more other training subnetworks.

16. The system of claim 13 , wherein the operation of generating a respective output representation that is provided as input to a following subnetwork in the sequence comprises:

processing the respective output representation through each layer of a first group of neural network layers to generate a first group output, wherein the first group comprises a first convolutional layer followed by a second convolutional layer.

17. A computer program product encoded on one or more non-transitory computer storage media, the computer program product comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

during the training of a deep neural network, receiving data characterizing an input image;

processing the data characterizing the input image using the deep neural network to generate an alternative representation of the input image, wherein the deep neural network comprises a plurality of subnetworks, wherein the subnetworks are arranged in a sequence from lowest to highest, wherein each subnetwork receives a respective input representation and generates a respective output representation that is provided as input to a following subnetwork in the sequence, and wherein processing the data characterizing the input image using the deep neural network comprises processing the data through each of the subnetworks in the sequence;

processing the alternative representation of the input image through an output layer to generate an output from the input image; and

processing the output representations from one or more of the subnetworks using one or more other training subnetworks that augment the deep neural network to generate a training subnetwork output for the input image, wherein each of the one or more other training subnetworks comprises one or more neural network layers, wherein each of the one or more other training subnetworks corresponds to a respective subnetwork of the plurality of subnetworks in the sequence, and wherein each of the training subnetworks is configured to receive as input the subnetwork output of the corresponding subnetwork.

18. The computer program product of claim 17 , wherein the operations further comprise, after the deep neural network has been trained:

receiving new data characterizing a new input image;

processing the new data characterizing the new input image using the deep neural network to generate an alternative representation of the new input image, wherein processing the data characterizing the new input image using the deep neural network comprises processing the new data through each of the subnetworks in the sequence; and

processing the alternative representation of the new input image through the output layer to generate a new output from the new input image.

19. The computer program product of claim 18 , the operations further comprising performing the processing of the new data without using the one or more other training subnetworks.

20. The computer program product of claim 17 , wherein the operation of generating a respective output representation that is provided as input to a following subnetwork in the sequence comprises:

processing the respective output representation through each layer of a first group of neural network layers to generate a first group output, wherein the first group comprises a first convolutional layer followed by a second convolutional layer.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2017
From: SZEGEDY, CHRISTIAN; VANHOUCKE, VINCENT O.
To: GOOGLE INC.
Reel/Frame 043024/0124 →
Continuity (3)
Continuation 14839452 · Aug 28, 2015
Provisional Application 62043865 · Aug 29, 2014
Related Publication 20170316286A1 · Nov 2, 2017