IP Library › Granted Patent US 10,878,269
Granted Patent B2
US 10,878,269 · App. 16/012,546 · Granted Dec 29, 2020

Data extraction using neural networks

Inventor: Michael Stark (Bellevue, WA)
Assignee: SAP SE
G06K9/344G06K9/6201G06K9/74G06N3/0472
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 10,878,269
App. No.
16/012,546
Granted
Dec 29, 2020
Kind
B2
Abstract

Embodiments of the present disclosure pertain to extracting data corresponding to particular data types using neural networks. In one embodiment, a method includes receiving an image in a backend system, sending the image to an optical character recognition (OCR) component, and in accordance therewith, receiving a plurality of characters recognized in the image, sequentially processing the characters with a recurrent neural network to produce a plurality of outputs for each character, sequentially processing the plurality of outputs for each character with a masking neural network layer, and in accordance therewith, generating a first plurality of probabilities, wherein each probability corresponds to a particular character in the plurality of characters, selecting a second plurality of adjacent probabilities from the first plurality of probabilities that are above a threshold, and translating the second plurality of adjacent probabilities into output characters.

Claims (52)

1. A computer implemented method comprising:

receiving an image in a backend system;

sending the image to an optical character recognition (OCR) component, and in accordance therewith, receiving a plurality of characters recognized in the image;

sequentially processing the characters with a recurrent neural network to produce a plurality of outputs for each character;

sequentially processing the plurality of outputs for each character with a masking neural network layer, and in accordance therewith, generating a first plurality of probabilities, wherein each probability corresponds to a particular character in the plurality of characters; and

selecting a second plurality of adjacent probabilities from the first plurality of probabilities that are above a threshold; and

translating the second plurality of adjacent probabilities into output characters.

2. The method of claim 1 wherein the output characters correspond to one of a plurality of different data types in the image.

3. The method of claim 2 wherein the image is a receipt, and wherein the data types comprise one of a purchaser name, a vendor name, a vendor street address, a vendor city, a Tax ID, an invoice number, a last 4 digits of credit-card number, or a vendor phone number.

4. The method of claim 1 wherein each character in the plurality of characters is represented by one or more values, and wherein the values are input to the recurrent neural network one at a time.

5. The method of claim 1 wherein recurrent neural network is a bidirectional recurrent neural network comprising a first recurrent neural network and a second recurrent neural network, wherein the plurality of characters comprise an ordered set having a first character, a last character, and a plurality of intermediate characters, wherein the first recurrent neural network of the bidirectional recurrent neural network receives characters sequentially starting with the first character to the last character, and wherein the second recurrent neural network of the bidirectional recurrent neural network receives characters sequentially starting with the last character to the first character.

6. The method of claim 1 wherein each character processed by the recurrent neural network produces an output vector, and wherein the masking layer performs a dot product of each output vector with a weight set to produce said each probability corresponding to a particular character.

7. The method of claim 1 wherein the first plurality of probabilities comprise values between zero (0) and one (1), and wherein the second plurality of adjacent probabilities comprise a contiguous set of probability values near one (1).

8. The method of claim 7 further comprising:

detecting one or more probabilities on first and second ends of the contiguous set of values near one having intermediate values;

extracting characters corresponding to the contiguous set of probability values and corresponding to one or more probability values before or after the contiguous set of probability values;

comparing the extracted characters against a data type format to determine if the extracted characters match the data type format; and

increasing or decreasing a number of characters before or after the contiguous set to be extracted until the extracted characters match the data type format.

9. A non-transitory machine-readable medium storing a program executable by at least one processing unit of a computer, the program comprising sets of instructions for:

receiving an image in a backend system;

sending the image to an optical character recognition (OCR) component, and in accordance therewith, receiving a plurality of characters recognized in the image;

sequentially processing the characters with a recurrent neural network to produce a plurality of outputs for each character;

sequentially processing the plurality of outputs for each character with a masking neural network layer, and in accordance therewith, generating a first plurality of probabilities, wherein each probability corresponds to a particular character in the plurality of characters; and

selecting a second plurality of adjacent probabilities from the first plurality of probabilities that are above a threshold; and

translating the second plurality of adjacent probabilities into output characters.

10. The non-transitory machine-readable medium of claim 9 wherein the output characters correspond to a one of a plurality of different data types in the image.

11. The non-transitory machine-readable medium of claim 10 wherein the image is a receipt, and wherein the data types comprise one of a purchaser name, a vendor name, a vendor street address, a vendor city, a Tax ID, an invoice number, a last 4 digits of credit-card number, or a vendor phone number.

12. The non-transitory machine-readable medium of claim 9 wherein each character processed by the recurrent neural network produces an output vector, and wherein the masking layer performs a dot product of each output vector with a weight set to produce said each probability corresponding to a particular character.

13. The non-transitory machine-readable medium of claim 9 wherein the first plurality of probabilities comprise values between zero (0) and one (1), and wherein the second plurality of adjacent probabilities comprise a contiguous set of probability values near one (1).

14. The non-transitory machine-readable medium of claim 13 further comprising:

detecting one or more probabilities on first and second ends of the contiguous set of values near one having intermediate values;

extracting characters corresponding to the contiguous set of probability values and corresponding to one or more probability values before or after the contiguous set of probability values;

comparing the extracted characters against a data type format to determine if the extracted characters match the data type format; and

increasing or decreasing a number of characters before or after the contiguous set to be extracted until the extracted characters match the data type format.

15. A computer system comprising:

a processor; and

a non-transitory machine-readable medium storing a program executable by the processor, the program comprising sets of instructions for:

receiving an image in a backend system;

sending the image to an optical character recognition (OCR) component, and in accordance therewith, receiving a plurality of characters recognized in the image;

sequentially processing the characters with a recurrent neural network to produce a plurality of outputs for each character;

sequentially processing the plurality of outputs for each character with a masking neural network layer, and in accordance therewith, generating a first plurality of probabilities, wherein each probability corresponds to a particular character in the plurality of characters; and

selecting a second plurality of adjacent probabilities from the first plurality of probabilities that are above a threshold; and

translating the second plurality of adjacent probabilities into output characters.

16. The computer system of claim 15 wherein the output characters correspond to one of a plurality of different data types in the image.

17. The computer system of claim 16 wherein the image is a receipt, and wherein the data types comprise one of a purchaser name, a vendor name, a vendor street address, a vendor city, a Tax ID, an invoice number, a last 4 digits of credit-card number, or a vendor phone number.

18. The computer system of claim 15 wherein each character processed by the recurrent neural network produces an output vector, and wherein the masking layer performs a dot product of each output vector with a weight set to produce said each probability corresponding to a particular character.

19. The computer system of claim 15 wherein the first plurality of probabilities comprise values between zero (0) and one (1), and wherein the second plurality of adjacent probabilities comprise a contiguous set of probability values near one (1).

20. The computer system of claim 19 further comprising:

detecting one or more probabilities on first and second ends of the contiguous set of values near one having intermediate values;

extracting characters corresponding to the contiguous set of probability values and corresponding to one or more probability values before or after the contiguous set of probability values;

comparing the extracted characters against a data type format to determine if the extracted characters match the data type format; and

increasing or decreasing a number of characters before or after the contiguous set to be extracted until the extracted characters match the data type format.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2018
From: STARK, MICHAEL
To: SAP SE
Reel/Frame 046134/0011 →
Continuity (1)
Related Publication 20190385001A1 · Dec 19, 2019