IP Library Granted Patent US 11,443,536
Granted Patent B2
US 11,443,536 · App. 16/430,123 · Granted Sep 13, 2022

System and methods for efficiently implementing a convolutional neural network incorporating binarized filter and convolution operation for performing image classification

Inventors: Ali Farhadi (Seattle, WA); Mohammad Rastegari (Bothell, WA); Vicente Ignacio Ordonez Roman (Alexandria, VA)
Assignee: The Allen Institute for Artificial Intelligence
G06V30/194G06K9/6267G06N3/04G06V10/42
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,443,536
App. No.
16/430,123
Granted
Sep 13, 2022
Kind
B2
Abstract

Systems, apparatuses, and methods for efficiently and accurately processing an image in order to detect and identify one or more objects contained in the image, and methods that may be implemented on mobile or other resource constrained devices. Embodiments of the invention introduce simple, efficient, and accurate approximations to the functions performed by a convolutional neural network (CNN); this is achieved by binarization (i.e., converting one form of data to binary values) of the weights and of the intermediate representations of data in a convolutional neural network. The inventive binarization methods include optimization processes that determine the best approximations of the convolution operations that are part of implementing a CNN using binary operations.

Claims (56)

1. A method comprising:

inputting data representing an image into a convolutional neural network (CNN), the CNN including a plurality of convolutional layers, a set of filters or weights for at least one of the convolutional layers, and a set of input data to the at least one of the convolutional layers;

performing a convolution operation between the set of input data and the set of filters or weights by determining a product of a scaling factor and a binary representation of the set of filters or weights convolved with the set of input data; and

applying an operation to an output of a last of the plurality of convolutional layers.

2. The method of claim 1 , wherein the binary representation of the set of filters or weights is a sign of weight values, and the scaling factor is an average of absolute weight values.

3. The method of claim 1 , further comprising representing the set of input data by a product of a scaling factor and a binary representation of the set of input data.

4. The method of claim 3 , wherein the binary representation of the set of input data is a sign of input data values, and the scaling factor is an average of absolute input data values.

5. The method of claim 4 , wherein the convolution operation is implemented by a combination of an XNOR operation and a bit-counting operation.

6. The method of claim 1 , further comprising processing the data representing the image prior to inputting the data into the convolutional neural network, wherein the processing the data includes one or more of reducing noise in the data, scaling the data, or sampling the data.

7. The method of claim 1 , wherein the scaling factor is determined by solving an optimization problem of a form given by:

J ( B ,α)=∥ W−αB∥ 2

α*, B *=argmin J ( B ,α)

α, B,

where α is the scaling factor, B is a binary representation of the set of filters or weights, and W is the set of filters or weights.

8. The method of claim 1 , further comprising identifying, based on applying the operation to the output, an object contained in the image.

9. The method of claim 8 , wherein the object contained in the image is a person.

10. The method of claim 8 , further comprising authorizing use based on the identified object.

11. The method of claim 8 , further comprising authorizing access based on the identified object.

12. The method of claim 8 , further comprising controlling a vehicle based on the identified object.

13. A method comprising:

inputting data representing an image into a convolutional neural network (CNN), the CNN including a plurality of convolutional layers, a set of filters or weights for at least one of the convolutional layers, and a set of input data to the at least one of the convolutional layers;

performing a convolution operation between the set of input data and the set of filters or weights by determining a product of a scaling factor and a binary representation of the set of input data convolved with the set of filters or weights; and

applying an operation to an output of a last of the plurality of convolutional layers.

14. The method of claim 13 , wherein the binary representation of the set of input data is a sign of data values, and the scaling factor is an average of absolute input data values.

15. The method of claim 13 , further comprising representing the set of filters or weights by a product of a scaling factor and a binary representation of the set of filters or weights.

16. The method of claim 15 , wherein the binary representation of the set of filters or weights is a sign of weight values, and the scaling factor is an average of absolute weight values.

17. The method of claim 16 , wherein the convolution operation is implemented by a combination of an XNOR operation and a bit-counting operation.

18. The method of claim 13 , further comprising processing the data representing the image prior to inputting the data into the convolutional neural network, wherein the processing the data includes one or more of reducing noise in the data, scaling the data, or sampling the data.

19. The method of claim 13 , wherein the scaling factor is determined by solving an optimization problem of a form given by:

J ( B ,α)=∥ W−αB∥ 2

α*, B *=argmin J ( B ,α)

α, B,

where α is the scaling factor, B is a binary representation of the set of filters or weights, and W is the set of filters or weights.

20. The method of claim 13 , further comprising identifying, based on applying the operation to the output, an object contained in the image.

21. The method of claim 20 , wherein the object contained in the image is a person.

22. The method of claim 20 , further comprising authorizing use based on the identified object.

23. The method of claim 20 , further comprising authorizing access based on the identified object.

24. The method of claim 20 , further comprising controlling a vehicle based on the identified object.

25. A system comprising:

a set of processing blocks, wherein the set of processing blocks includes a normalization block, an activation block, a convolution block, and a pooling block, with image input data being processed in that order;

a computer-implemented process for representing the convolution block, wherein the computer-implemented process represents a convolution operation between a set of data and a set of filters or weights by a product of a scaling factor and a binary representation of the set of filters or weights convolved with the set of data; and

a classifier applied to an output of the pooling block.

26. The system of claim 25 , further comprising a computer-implemented process for representing data by a product of a scaling factor and a binary representation of the data.

27. The system of claim 26 , wherein the convolution operation is implemented by a combination of an XNOR operation and a bit-counting operation.

28. The system of claim 26 , wherein the binary representation of the set of data is a sign of data values, and the scaling factor is an average of absolute data values.

29. The system of claim 25 , wherein the binary representation of the set of filters or weights is a sign of weight values, and the scaling factor is an average of absolute weight values.

30. The system of claim 25 , wherein the scaling factor is determined by solving an optimization problem of a form given by:

J ( B ,α)=∥ W−αB∥ 2

α*, B *=argmin J ( B ,α)

α, B,

where α is the scaling factor, B is a binary representation of the set of filters or weights, and W is the set of filters or weights.

31. The system of claim 25 , wherein the computer implemented process further comprising identifying, based on an output of the classifier, an object contained in the image input data.

32. The system of claim 31 , wherein the object contained in the image input data is a person.

33. The system of claim 31 , wherein the computer implemented process further comprises authorizing use based on the identified object.

34. The system of claim 31 , wherein the computer implemented process further comprises authorizing access based on the identified object.

35. The system of claim 31 , wherein the computer implemented process further comprises controlling a vehicle based on the identified object.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME AND ADDRESS PREVIOUSLY RECORDED AT REEL: 50670 FRAME: 258. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 25, 2019
From: ORDONEZ ROMAN, VICENTE IGNACIO
To: THE ALLEN INSTITUTE FOR ARTIFICIAL INTELLIGENCE
Reel/Frame 050832/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: FARHADI, ALI; RASTEGARI, MOHAMMAD
To: THE ALLEN INSTITUTE FOR ARTIFICIAL INTELLIGENCE
Reel/Frame 050834/0255 →
LICENSE Recorded Oct 25, 2019
From: THE ALLEN INSTITUTE FOR ARTIFICIAL INTELLIGENCE
To: XNOR.AI, INC.
Reel/Frame 050834/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2019
From: ORDONEZ ROMAN, VICENTE IGNACIO
To: XNOR.AI, INC.
Reel/Frame 050670/0258 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2019
From: ORDONEZ ROMAN, VICENTE IGNACIO
To: THE ALLEN INSTITUTE FOR ARTIFICIAL INTELLIGENCE
Reel/Frame 050670/0636 →
Continuity (3)
Continuation 15487091 · Apr 13, 2017
Provisional Application 62322544 · Apr 14, 2016
Related Publication 20190286953A1 · Sep 19, 2019