IP Library Granted Patent US 8,967,481
Granted Patent B2
US 8,967,481 · App. 13/624,498 · Granted Mar 3, 2015

Symbol-based decoding of optical codes

Inventors: Fadil Santosa (Minneapolis, MN); Mark A. Iwen (Durham, NC); Rachel A. Ward (Austin, TX)
Assignee: Regents of the University of Minnesota
G06K7/1404
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 8,967,481
App. No.
13/624,498
Granted
Mar 3, 2015
Kind
B2
Abstract

Techniques and systems for decoding optical codes using symbol-based algorithms are described. In one example, a method includes acquiring a signal representative of light reflected from an optical code comprising one or more symbols of a finite set of symbols and applying a decoding model to the signal. The decoding model may relate measured signals to the finite set of symbols, such that each of the symbols of the finite set of symbols are associated with a respective encoded character of a finite set of encoded characters. The method may also include determining, by a processor, a sequence of one or more of the encoded characters based on the application of the decoding model to the signal. In this manner, the optical code may be decoded by directly fitting an acquired signal from the optical code to possible symbols within the optical code and the associated encoded characters.

Claims (108)

1. A method comprising:

acquiring a signal representative of light reflected from an optical code comprising one or more symbols of a finite set of symbols, each of the one or more symbols of the finite set of symbols being associated with a respective encoded character and defined by a respective pattern of one or more elements in the optical code;

fitting, by a processor, the acquired signal to a decoding model to determine a sequence of one or more of the encoded characters of the optical code from the patterns of one or more elements of the finite set of symbols and respective encoded characters represented by the decoding model when identifying the plurality of elements within the acquired signal, wherein the decoding model comprises a matrix P=αG(σ)D, G(σ) representing a Gaussian convolution matrix, a representing blur in the acquired signal, α representing a scaling factor, and D representing a bar code dictionary; and

outputting, by the processor, the sequence of the one or more of the encoded characters determined from fitting the acquired signal to the decoding model.

2. The method of claim 1 , wherein fitting the acquired signal to the decoding model comprises iteratively fitting, for each of the symbols of the finite set of symbols, the acquired signal to the decoding model until each portion of the acquired signal has been matched to a respective symbol.

3. The method of claim 1 , wherein the decoding model comprises a lookup table that matches the acquired signal to a respective symbol of the finite set of symbols and a respective character encoded by the respective symbol.

4. The method of claim 1 , wherein fitting the acquired signal to the decoding model comprises applying a greedy algorithm to the signal to identify a sequence of the encoded characters represented by the symbols of the optical code.

5. The method of claim 4 , further comprising, prior to fitting the acquired signal to the decoding model, estimating unknown parameters of an equation representing the acquired signal to remove noise from the acquired signal and detect edges of the symbols of the optical code, wherein estimating unknown parameters of the equation comprises solving for the unknown parameters using an equation that represents a format of the optical code.

6. The method of claim 1 , wherein the optical code is a bar code, and wherein determining the sequence of one or more of the encoded characters comprises solving the matrix P.

7. The method of claim 1 , wherein the model includes a bar code dictionary as a block diagonal matrix:

𝒟

=

[

𝒮

0

0

0

L

L

L

L

L

L

M

R

R

R

R

R

R

0

0

0

E

]

.

8. The method of claim 1 , wherein fitting the acquired signal to the decoding model to the signal comprises fitting the acquired signal to the decoding model using an approximation for α G(σ).

9. The method of claim 1 , further comprising generating, by an optical sensor, the signal representative of the light reflected from the optical code.

10. The method of claim 1 , wherein the optical code is a bar code, and wherein each of the elements are one of a white bar or a black bar.

11. The method of claim 1 , wherein the optical code is a two-dimensional optical code.

12. The method of claim 1 , wherein fitting the acquired signal to the decoding model comprises selecting one of the patterns that best fits at least a portion of the acquired signal by fitting the acquired signal to the defined patterns of one or more elements.

13. The method of claim 1 , wherein fitting the acquired signal to the decoding model comprises:

iteratively fitting, for each possible symbol of the optical code, the acquired signal to the pattern of one or more elements of each of the symbols of the finite set of symbols; and

selecting, based on iteratively fitting the acquired signal, the best fit sequence of symbols of the finite set of symbols.

14. A computing system comprising:

a decoding module configured to:

acquire a signal representative of light reflected from an optical code comprising one or more symbols of a finite set of symbols, each of the one or more symbols of the finite set of symbols being associated with a respective encoded character and defined by a respective pattern of one or more elements in the optical code;

fit the acquired signal to a decoding model to determine a sequence of one or more of the encoded characters of the optical code from the defined patterns of one or more elements of the finite set of symbols and respective encoded characters represented by the decoding model when identifying the plurality of elements within the acquired signal, wherein the decoding model comprises a matrix P=αG(σ)D, G(σ) representing a Gaussian convolution matrix, a representing blur in the acquired signal, α representing a scaling factor, and D representing a bar code dictionary; and

output the sequence of the one or more of the encoded characters determined from fitting the acquired signal to the decoding model.

15. The system of claim 14 , wherein the decoding module is configured to iteratively fit, for each of the symbols of the finite set of symbols, the acquired signal to the decoding model until each portion of the acquired signal has been matched to a respective symbol.

16. The system of claim 14 , wherein the decoding model comprises a lookup table that matches the acquired signal to a respective symbol of the finite set of symbols and a respective character encoded by the respective symbol.

17. The system of claim 14 , wherein the decoding module is configured to apply a greedy algorithm to the signal to identify a sequence of the encoded characters represented by the symbols of the optical code.

18. The system of claim 17 , wherein the decoding module is configured to:

prior to fitting the acquired signal to the decoding model, estimate unknown parameters of an equation representing the acquired signal to remove noise from the acquired signal and detect edges of the symbols of the optical code; and

solve for the unknown parameters using an equation that represents a format of the optical code.

19. The system of claim 14 , wherein the optical code is a bar code, and wherein the decoding module is configured to determine the sequence of one or more of the encoded characters by solving the matrix P.

20. The system of claim 14 , wherein the decoding model includes a bar code dictionary as a block diagonal matrix:

𝒟

=

[

𝒮

0

0

0

L

L

L

L

L

L

M

R

R

R

R

R

R

0

0

0

E

]

.

21. The system of claim 14 , further comprising:

a memory configured to store the decoding model; and

a scanner configured to generate the signal representative of the light reflected by the optical code, wherein the decoding module comprises software executing on one or more processors of the system.

22. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors to:

acquire a signal representative of light reflected from an optical code comprising one or more symbols of a finite set of symbols, each of the one or more symbols of the finite set of symbols being associated with a respective encoded character and defined by a respective pattern of one or more elements in the optical code;

fit the acquired signal to a decoding model to determine a sequence of one or more of the encoded characters of the optical code from the defined patterns of one or more elements of the finite set of symbols and respective encoded characters represented by the decoding model when identifying the plurality of elements within the acquired signal, wherein the decoding model comprises a matrix P=αG(σ)D, G(σ) representing a Gaussian convolution matrix, σ representing blur in the acquired signal, α representing a scaling factor, and D representing a bar code dictionary; and

output the sequence of the one or more of the encoded characters determined from fitting the acquired signal to the decoding model.

Assignments (2)
CONFIRMATORY LICENSE Recorded May 29, 2015
From: UNIVERSITY OF MINNESOTA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 035802/0263 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2012
From: SANTOSA, FADIL; IWEN, MARK A.; WARD, RACHEL A.
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 029450/0060 →
Continuity (2)
Provisional Application 61537401 · Sep 21, 2011
Related Publication 20130068841A1 · Mar 21, 2013