IP Library Granted Patent US 12,008,431
Granted Patent B2
US 12,008,431 · App. 17/744,899 · Granted Jun 11, 2024

Decoding of linear barcodes under unfavorable conditions

Inventors: Ivan Zagaynov (Dolgoprudniy, RU); Dmitry Zvonarev (Sarapul, RU); Maksim Baranchikov (Moscow, RU)
Assignee: ABBYY Development Inc.
G06K7/1447G06K7/1452G06T5/40
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,008,431
App. No.
17/744,899
Granted
Jun 11, 2024
Kind
B2
Abstract

Aspects and implementations provide for mechanisms of detection and decoding of barcodes in images. The disclosed techniques include estimating dimensions of a module of a barcode based on geometric characteristics of a barcode image, forming hypotheses that group modules into barcode symbols, and assessing viability of formed hypotheses. Various operations of the techniques may involve the use of neural networks, including estimation of module dimensions and assessment of groupings of modules into lines and lines into barcode symbols. The techniques may be used for decoding of barcodes captured in images of unfavorable conditions, including blur, perspective, sub-optimal lighting, barcode deformation, and the like. The techniques may be applied to decoding linear one-dimensional barcodes, two-dimensional barcodes, and stacked linear barcodes.

Claims (66)

1. A method comprising:

obtaining a histogram of pixel intensities for a barcode image (BI), the histogram comprising a plurality of intensity values, each of the plurality of intensity values characterizing an appearance of a pixel column of a plurality of pixel columns of the BI;

identifying, based on the histogram, a plurality of lines of the BI;

generating one or more hypotheses, wherein each of the one or more hypotheses groups the plurality of lines into a plurality of candidate symbols;

for at least a subset of the one or more hypotheses, determining:

a plurality of similarity factors (SFs), wherein each SF characterizes similarity of a respective candidate symbol of the plurality of candidate symbols to one of a set of barcode reference symbols, and

an aggregated SF, wherein the aggregated SF is determined in view of the plurality of SFs;

selecting, in view of the aggregated SFs determined for the subset of the one or more hypotheses, a preferred hypothesis; and

decoding the BI using the preferred hypothesis.

2. The method of claim 1 , wherein identifying the plurality of lines of the BI is performed using adaptive binarization.

3. The method of claim 1 , wherein the one or more hypotheses comprise a hypothesis with one or more lines of the BI removed.

4. The method of claim 3 , wherein the one or more removed lines comprises a first line that is adjacent to a first edge of the BI.

5. The method of claim 4 , wherein the one or more removed lines comprises a second line that is adjacent to a second edge of the BI.

6. The method of claim 3 , wherein the one or more removed lines comprises a line that is not adjacent to an edge of the BI.

7. The method of claim 1 , further comprising:

for each of the one or more generated hypotheses,

estimating a plurality of module widths, wherein each module width of the plurality of module widths is estimated for a corresponding candidate symbol of the plurality of candidate symbols; and

evaluating viability of a respective hypothesis based on the plurality of module widths.

8. The method of claim 7 , wherein evaluating viability of the respective hypothesis comprises:

determining a ratio of a maximum module width of the plurality of module widths to a minimum module width of the plurality of module widths; and

eliminating the respective hypothesis responsive to the determined ratio exceeding a threshold value.

9. The method of claim 7 , wherein evaluating viability of the respective hypothesis comprises:

determining a plurality of module ratios, each of the plurality of module ratios comprising a ratio of a module widths of adjacent candidate symbols; and

retaining the respective hypothesis responsive to the determined plurality of module ratios not exceeding a threshold value.

10. The method of claim 1 , wherein determining the SF of the respective candidate symbol and a barcode reference symbol comprises:

determining an optimal match between the respective candidate symbol and the barcode reference symbol, wherein determining the optimal match comprises at least one of:

identifying an optimal relative shift between the candidate symbol and the barcode reference symbol, or

identifying an optimal relative scaling between the candidate symbol and the barcode reference symbol.

11. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

obtain a histogram of pixel intensities for a barcode image (BI), the histogram comprising a plurality of intensity values, each of the plurality of intensity values characterizing an appearance of a pixel column of a plurality of pixel columns of the BI;

identify, based on the histogram, a plurality of lines of the BI;

generate one or more hypotheses, wherein each of the one or more hypotheses groups the plurality of lines into a plurality of candidate symbols;

for at least a subset of the one or more hypotheses, determining:

a plurality of similarity factors (SFs), wherein each SF characterizes similarity of a respective candidate symbol of the plurality of candidate symbols to one of a set of barcode reference symbols, and

an aggregated SF, wherein the aggregated SF is determined in view of the plurality of SFs;

select, in view of the aggregated SFs determined for the subset of the one or more hypotheses, a preferred hypothesis; and

decode the BI using the preferred hypothesis.

12. The system of claim 11 , wherein to identify the plurality of lines of the BI the processing device is to perform adaptive binarization.

13. The system of claim 11 , wherein the one or more hypotheses comprise a hypothesis with one or more lines of the BI removed.

14. The system of claim 13 , wherein the one or more removed lines comprises a line that is adjacent to an edge of the BI.

15. The system of claim 13 , wherein the one or more removed lines comprises a line that is not adjacent to an edge of the BI.

16. The system of claim 11 , wherein the processing device it further to:

for each of the one or more generated hypotheses,

estimate a plurality of module widths, wherein each module width of the plurality of module widths is estimated for a corresponding candidate symbol of the plurality of candidate symbols; and

evaluate viability of a respective hypothesis based on the plurality of module widths.

17. The system of claim 16 , wherein to evaluate viability of the respective hypothesis the processing device is to:

determine a ratio of a maximum module width of the plurality of module widths to a minimum module width of the plurality of module widths; and

eliminating the respective hypothesis responsive to the determined ratio exceeding a threshold value.

18. The system of claim 16 , wherein to evaluate viability of the respective hypothesis, the processing device is to:

determine a plurality of module ratios, each of the plurality of module ratios comprising a ratio of a module widths of adjacent candidate symbols; and

retain the respective hypothesis responsive to the determined plurality of module ratios not exceeding a threshold value.

19. The system of claim 11 , wherein to determine the SF of the respective candidate symbol and a barcode reference symbol, the processing device is to:

determine an optimal match between the respective candidate symbol and the barcode reference symbol, wherein determining the optimal match comprises at least one of:

identifying an optimal relative shift between the candidate symbol and the barcode reference symbol, or

identifying an optimal relative scaling between the candidate symbol and the barcode reference symbol.

20. A non-transitory machine-readable storage medium including instructions that, when accessed by a processing device, cause the processing device to:

obtain a histogram of pixel intensities for a barcode image (BI), the histogram comprising a plurality of intensity values, each of the plurality of intensity values characterizing an appearance of a pixel column of a plurality of pixel columns of the BI;

identify, based on the histogram, a plurality of lines of the BI;

generate one or more hypotheses, wherein each of the one or more hypotheses groups the plurality of lines into a plurality of candidate symbols;

for at least a subset of the one or more hypotheses, determining:

a plurality of similarity factors (SFs), wherein each SF characterizes similarity of a respective candidate symbol of the plurality of candidate symbols to one of a set of barcode reference symbols, and

an aggregated SF, wherein the aggregated SF is determined in view of the plurality of SFs;

select, in view of the aggregated SFs determined for the subset of the one or more hypotheses, a preferred hypothesis; and

decode the BI using the preferred hypothesis.

Assignments (2)
SECURITY INTEREST Recorded Aug 14, 2023
From: ABBYY INC.; ABBYY USA SOFTWARE HOUSE INC.; ABBYY DEVELOPMENT INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 064730/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2022
From: ZAGAYNOV, IVAN; ZVONAREV, DMITRY; BARANCHIKOV, MAKSIM
To: ABBYY DEVELOPMENT INC.
Reel/Frame 060013/0110 →