IP Library Granted Patent US 9,911,024
Granted Patent B2
US 9,911,024 · App. 14/944,248 · Granted Mar 6, 2018

Systems and methods for decoding two-dimensional matrix symbols

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 9,911,024
App. No.
14/944,248
Granted
Mar 6, 2018
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 (33)

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 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; 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 without using a fixed pattern;

fitting, using the processor, a model to at least a portion of the module positions from the image;

extrapolating, using the processor, the model to define predicted module positions;

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 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,

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 Feb 2, 2016
From: YE, XIANGYUN; WANG, XIANJU; NEGRO, JAMES A.
To: COGNEX CORPORATION
Reel/Frame 037644/0675 →
Continuity (2)
Provisional Application 62081327 · Nov 18, 2014
Related Publication 20160140374A1 · May 19, 2016