IP Library Granted Patent US 10,956,697
Granted Patent B2
US 10,956,697 · App. 15/896,197 · Granted Mar 23, 2021

Systems and methods for decoding two-dimensional matrix symbols with incomplete or absent fixed patterns

Inventors: Xiangyun Ye (Framingham, MA); Xianju Wang (Bedford, MA); James A. Negro (Arlington, MA)
Assignee: COGNEX CORPORATION
G06K7/1443G06K7/10732G06K7/146G06K7/1417G06K7/1473G06K7/1491
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,956,697
App. No.
15/896,197
Granted
Mar 23, 2021
Kind
B2
Abstract

Systems and methods for reading a two-dimensional matrix symbol or for determining if a two-dimensional matrix symbol is decodable are disclosed. The systems and methods can include a data reading algorithm that receives an image, locates at least a portion of the data modules within the image without using a fixed pattern, fits a model of the module positions from the image, extrapolates the model resulting in predicted module positions, determines module values from the image at the predicted module positions, and extracts a binary matrix from the module values.

Claims (31)

1. A system for reading a two-dimensional matrix symbol including data modules each having a module value and a module position, the two-dimensional matrix symbol encoding a data set, the system comprising:

an imaging device, the imaging device configured to acquire an image containing at least a portion of the two-dimensional matrix symbol;

a processor, the processor operatively coupled to the imaging device, the processor configured to execute a data reading algorithm, wherein the data reading algorithm receives the image, locates at least a portion of the data modules within the image, predicts predicted module positions based on alignment and position of the at least a portion of the data modules, wherein the predicted module positions have sufficient data modules to attempt decoding, determines module values from the image at the predicted module positions, and extracts a binary matrix from the module values; and

a binary matrix decoder operatively coupled to the processor, the binary matrix decoder configured to execute a decoding algorithm that decodes the binary matrix.

2. The system of claim 1 , wherein the data reading algorithm corrects errors in the binary matrix using an error correction routine.

3. The system of claim 1 , wherein the system includes an illuminator that illuminates a target of the image with one or more illumination features.

4. The system of claim 3 , wherein the data reading algorithm uses the illumination features to locate at least a portion of the data modules within the image.

5. The system of claim 1 , wherein locating at least a portion of the data modules includes identifying one or more salient features of the data modules selected from the group consisting of shape, the presence or absence of a saddle, the presence or absence of a corner, the presence or absence of a dot, a gradient, a histogram, a wavelet, and combinations thereof.

6. The system of claim 1 , wherein the processor or binary matrix decoder are configured to extrapolate or decode multiple symbology types.

7. The system of claim 6 , wherein the multiple symbology types are selected from the group consisting of Data Matrix, QR-Code, Aztec Code, MaxiCode, and combinations thereof.

8. The system of claim 1 , wherein the data reading algorithm includes attributes of the two-dimensional matrix symbol.

9. The system of claim 1 , wherein the data reading algorithm can be executed by a single command to the processor.

10. A method of reading a two-dimensional matrix symbol including data modules each having a module value and a module position, the two-dimensional matrix symbol encoding a data set, the method comprising:

receiving an image at a processor, the image containing at least a portion of the two-dimensional matrix symbol;

locating, using the processor, at least a portion of the data modules within the image;

predicting, using the processor, predicted module positions based on alignment and position of the at least a portion of the data modules, wherein the predicted module positions have sufficient data modules to attempt decoding;

determining, using the processor, the module values from the image at the predicted module positions;

extracting, using the processor, a binary matrix from the module values; and

decoding the binary matrix.

11. The method of claim 10 , the method further comprising correcting, using the processor, errors in the binary matrix using an error correction routine.

12. The method of claim 10 , the method further comprising illuminating the two-dimensional matrix symbol or a location near the two-dimensional matrix symbol.

13. The method of claim 10 , wherein locating at least a portion of the data modules includes identifying one or more salient features of the data modules selected from the group consisting of shape, the presence or absence of a saddle, the presence or absence of a corner, the presence or absence of a dot, a gradient, a histogram, a wavelet, and combinations thereof.

14. The method of claim 10 , wherein the method includes attempting to extrapolate or decode multiple symbology types.

15. The method of claim 14 , wherein the multiple symbology types are selected from the group consisting of Data Matrix, QR-Code, Aztec Code, MaxiCode, and combinations thereof.

16. The method of claim 10 , the method further comprising training the processor to contain one or more attributes of the two-dimensional matrix symbol prior to receiving the image.

17. The method of claim 10 , wherein the method can be executed by a single command to the processor.

18. A system for determining if a two-dimensional matrix symbol is decodable, the two-dimensional matrix symbol including data modules each having a module value and a module position, the system comprising:

an imaging device, the imaging device configured to acquire an image containing the two-dimensional matrix symbol;

a processor, the processor operatively coupled to the imaging device, the processor configured to execute a data reading algorithm, wherein the data reading algorithm receives the image, locates at least a portion of the data modules, predicts predicted module positions based on alignment and position of the at least a portion of the data modules, wherein the predicted module positions have sufficient data modules to attempt decoding, determines module values from the image at the predicted module positions, and extracts a binary matrix from the module values, wherein the data reading algorithm includes a frequency-domain analysis.

19. The system of claim 18 , wherein the data reading algorithm fits the model using a frequency-domain analysis.

20. The system of claim 18 , wherein the system further comprises a binary matrix decoder operatively coupled to the processor, the binary matrix decoder configured to execute a decoding algorithm that decodes the binary matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2020
From: YE, XIANGYUN; WANG, XIANJU; NEGRO, JAMES A.
To: COGNEX CORPORATION
Reel/Frame 054477/0846 →
Continuity (3)
Continuation 14944248 · Nov 18, 2015
Provisional Application 62081327 · Nov 18, 2014
Related Publication 20180293418A1 · Oct 11, 2018