BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to barcodes, and, in particular, to a system and method of decoding barcodes using machine learning.

2. Description of the Related Art

A barcode is a machine readable representation of data, such as a serial code. Barcodes have numerous applications. One of the popular uses of barcodes is for identification of a product. For example, the barcode is placed on a product and the serial number encoded in the barcode is associated with the product.

Many traditional barcodes are a series of bars of varying width that encode a serial number. The barcode is divided into a series of elements, each comprised of multiple modules of various widths and each representing one digit of the serial number. The barcode may also have additional segments, such as guard patterns, that denote then beginning or end of a section of the encoded data. Barcodes are typically decoded using barcode scanners. Many types of barcode scanners use edge detection and various signal processing techniques to detect the width of bars in the barcode.

It is beneficial to be able to accurately decode a barcode. Perfect barcodes will generally be able to be decoded accurately. However, it is not uncommon for barcodes in use on products or in other applications to become damaged or degraded. The damage or degradation of a barcode or other imperfections in a barcode can cause it to become unreadable or unable to be accurately read.

SUMMARY OF THE INVENTION

In one embodiment, a method of decoding a barcode is provided. The method includes capturing an image of the barcode, dividing the image of the barcode into a plurality of rows and columns, each column corresponding to one encoded character of the barcode, using a number of trained image classifiers on each row to determine a predicted character for each column of the row, for each column, determining an output character for the column based on each of the predicted characters associated with the column, and for each column, outputting the output character.

In another embodiment, a system for decoding a barcode is provided. The system includes a computing device implementing a number of trained image classifiers. The computing device has a processor apparatus structured and configured to receive an image of the barcode (such as from an image capture device coupled to the computing device), divide the image of the barcode into a plurality of rows and columns, each column corresponding to one encoded character of the barcode, use the number of trained image classifiers on each row to determine a predicted character for each column of the row, for each column, determine an output character for the column based on each of the predicted characters associated with the column, and for each column, output the output character.

A still another embodiment, method of training a number of image classifiers for decoding a barcode includes receiving an image of an encoded character of the barcode, creating a set of preprocessed images of the encoded character by adding effects to the image of the encoded character, and using the set of preprocessed images to train the number of image classifiers to create a number of trained image classifiers.

