A Robust Software Barcode Reader Using the Hough Transform . In this paper we present a method based on the Hough transform which. Published in: · Proceeding. ICIIS ’99 Proceedings of the International Conference on Information Intelligence and Systems. Page March 31 – April A Robust Software Barcode Reader Using the Hough Transform (Englisch). Muniz, R. / Junco, L. / Otero, A. / Institute of Electrical and Electronics Engineers.

Author: Doukora Tedal
Country: Latvia
Language: English (Spanish)
Genre: Software
Published (Last): 26 April 2008
Pages: 187
PDF File Size: 2.2 Mb
ePub File Size: 8.8 Mb
ISBN: 993-5-35379-567-4
Downloads: 66964
Price: Free* [*Free Regsitration Required]
Uploader: Nikosida

Camera cellphones have become ubiquitous, thus opening a plethora of opportunities for mobile vision applications. For instance, they can enable users to access reviews or price comparisons for a product from a jough of its barcode while still in the store.

Barcode reading needs to be robust to challenging conditions such as blur, noise, low resolution, or low quality camera lenses, all of which are extremely common. Surprisingly, even state-of-the-art barcode reading algorithms fail when some of reeader factors come into play. One reason resides in the early-commitment strategy that houvh all existing algorithms adopt: We propose a new approach to barcode decoding that bypasses binarization.

Our technique relies on deformable templates and exploits all the gray level information of each pixel. Due to our parametrization of these robuet, we can efficiently perform maximum likelihood estimation independently on each digit and enforce spatial coherence in a subsequent step. We show by way of experiments on challenging UPC-A barcode images from five different databases that our approach outperforms competing algorithms.

The success of barcode technology for identification, tracking, and inventory derives from its ability to encode information in a compact fashion with low associated cost. Barcode reading via dedicated scanners is a mature technology. Commercial laser-based, hand-held barcode scanners achieve robust reading with a reasonable price tag. Recently, there has been growing interest in accessing barcodes also with regular cellphones, without the need for a dedicated device. Indeed, a number of cellphone apps have appeared that provide access via barcode reading to the full characteristics of and user reviews for a product found at a store.

Unfortunately, images taken by cellphone cameras are often of low quality. Many cellphone cameras on the market are equipped with low-grade lenses, generally lacking focusing capability, which often produce blurred images. Few cellphones have a flash and, therefore, motion blur and noise can be expected with low ambient light. All of these factors, possibly combined with low image resolution, make barcode reading difficult in certain situations.

Indeed, all existing image-based barcode readers have limited performance when it comes to images taken in difficult light conditions, or when the camera is not close enough to the barcode. In order to improve accuracy, barcode reading apps usually prompt the user to precisely thf the traansform to ensure that the barcode covers as much of the frame as possible. This operation can be somewhat bothersome, as it requires a certain amount of interaction with the user, who needs to frame the barcode correctly using the viewfinder.

This paper presents a new algorithm yhe 1-D barcode reading that produces excellent results even thd images that are blurred, noisy, and with low resolution. A quantitative comparison based on existing and new barcode image data sets shows that our technique outperforms other state-of-the-art software and other sofyware results. The main novelty of our approach is that it never binarizes the image. Virtually any robuts algorithm for barcode reading performs some sort of binarization of the input brightness data.

We argue that this sfotware operation translates into unrecoverable information loss, which makes the reader susceptible to noise, blur, and low resolution.

This is especially the case for low-resolution images, where binarization errors may have catastrophic effects. A challenging barcode image that is correctly decoded by our algorithm.

The intensity profile from the segment highlighted in red on the blue scanline is shown in the plot, where the black lines represent the symbols as output by our algorithm.

Note how blur and usihg resolution affect the intensity profile. A system that binarizes robusy intensity would be hard-pressed to detect the correct pattern. For example, consider uxing segment between pixels 32 and 38 representing a sequence of two black and two white bars.


The observed brightness has an almost flat profile which is nearly impossible to binarize. In contrast to previous approaches, our algorithm uses the full gray-level information throughout its most critical stages. We employ a particular form hokgh deformable template matching, that produces robust results even in difficult situations, such as the one shown in Fig. Pixels with very high or very low brightness values contribute more than pixels with intermediate values to the digit likelihood function in Eq.

If, due to noise or blur, a few pixels have intermediate gray values as in Fig. We shift and scale the archetypal models of each individual barcode digit to match the measured brightness profile in a maximum likelihood framework.

Although deformable template matching usually requires costly optimization techniques, we prove that in the case of these patterns, matching can be obtained exactly with a simple discrete search. In addition, we propose an optimization procedure to enforce spatial coherence of the individual digits found by deformable template transfrom.

Our decoding algorithm requires that the barcode has been localized with fairly good precision within twice the width of the base widththat is, the smallest possible bar in the barcode. This operation is facilitated by the fact that a barcode is bordered to the side by a quiet white area whose size is prescribed by the standard.

We propose a simple and fast algorithm for localization that assumes that the bars are approximately vertical.

It should be understood that the main contribution of this work, and the more intellectually original one, is the barcode decoding algorithm. The localization algorithm has no pretense of optimality but works reasonably well in our tests, better so than other published algorithms that we also experimented with.

This paper is organized as follows. Sec II describes the previous barcodde on image-based barcode localization and decoding.

III describes in detail the proposed algorithm. IV-A reports hougy thorough performance analysis of the algorithm, implemented in Matlab and tested on different data sets. IV-B describes the Symbian implementation of the algorithm.

Barcode reading has been studied and optimized for decades and it now represents a well established industrial standard. Until recently, however, barcode reading was performed almost exclusively with dedicated hardware. Despite the rapid growth of interest in camera-based readers, most of the challenges posed by this new approach are yet to be solved. Commercial scanners, such as those used in supermarkets, shine a stripe of pulsed light on the code and measure the intensity of its reflection; the use of active illumination makes them virtually insensitive to changes of ambient illumination.

Additionally, their design often requires the codes to be fairly close to the scanner. In general, these dedicated devices produce a high quality transforn that allows for robust barcode reading. On the other hand, reading barcodes with cameras presents new challenges. In particular, the image may be of poor quality, due to noise and possibly low contrast.

The first step for a barcode reader is the localization of the barcode in the image. Most existing applications require the user to move the te towards the barcode so as to maximize its apparent width in the image. Although beneficial to resolution, this procedure can be bothersome for the user.

Reading 1-D Barcodes with Mobile Phones Using Deformable Templates

Our system lets the user take a snapshot of the barcode usingg it is at a reasonable distance from the camera; it then proceeds to identify the location of the endpoints of the barcode in the image.

Once the barcode has been localized, decoding takes place. Keeping localization and decoding distinct allows for a higher computational efficiency. Existing approaches transforn barcode localization apply to the binarized image methods based on Hough transforms [ 6 ], edge orientation histograms [ 14 ], morphological operators [ 4 ], or wavelet transforms [ 13 ]. Other approaches assume that the center of the image falls within the barcode area [ 7 ], [ 12 ], thus greatly simplifying the problem: Decoding can be performed by simply finding the sequence of digits that best explains one or more binarized scanlines.


Chai and Hock use a single scanline binarized using the average gray level as a threshold [ 4 ] whereas Wachenfeld et al. These approaches report high accuracy, but unfortunately do not present comparative tests nor make their data sets public. Their method compares favorably with previous approaches although it was only implemented on laser-based barcode scanners.

Tekin and Coughlan propose an elegant Bayesian framework for barcode decoding [ 10 ]. Early-commitment approaches, whether based on binarization or edge detection, are efficient from a computational standpoint, but rely heavily on the good quality of the input image. Unfortunately, binarization is very sensitive to noise and blur, in particular when the features to be detected, such as the narrow bars of a barcode, are smaller in size than a couple of pixels.

The same can be said for edge extraction. In contrast, our decoding algorithm never performs a binarization or an edge extraction operation. As a result, our approach is capable of decoding 1-D barcodes from noisy pictures even in the presence of motion blur or lack focus.

Additionally, our method also proves effective on highly compressed pictures. In order to allow other researchers to compare their results against ours, we provide a publicly accessible barcode image data set [ 2 ].

Given an image containing a barcode, two distinct operations are needed for accessing the information contained in the barcode: Localization typically relies on the strong textural content of the barcode, without the need to exactly measure and interpret the width distribution of the bars.

Decoding can be performed on one or more scanlines. Throughout this paper we make use of slftware following definitions see the Appendix for a more complete description of the terminology. A UPC-A barcode encodes 12 symbols each representing a number 0 — 9. Each of the consecutive, non-overlapping segments which encode the symbols are called digits segments or simply digits. For instance, in the barcode shown in Fig. Note that each symbol is encoded by two white and two black bars.

Our algorithm is able to te a barcode without requiring the user to precisely frame it within the viewfinder. The result is shown on the screen of the phone above the captured picture, in this case In principle, any reliable algorithm for localization could be used, including the techniques mentioned in Sec.

Reading 1-D Barcodes with Mobile Phones Using Deformable Templates

However we have found out that the simple and fast algorithm presented in this section provides excellent results even in challenging situations. Note that, contrary to approaches that assume that the barcode is in the center of the captured frame e. We implemented other algorithms from the literature [ 11 ], [ 14 ]; however, these methods produced results comparable or inferior to our simple method, at a substantially higher computational cost.

Our localization algorithm assumes brcode the image of the barcode is captured with the camera oriented so that its vertical axis is approximately parallel to the bars. Thus, in correspondence of a barcode, one should expect an extended region characterized by strong horizontal gradients and weak vertical gradients. Accordingly, we first compute the horizontal and vertical derivatives, I x n and I y nat each pixel n. We then combine them together in a non-linear fashion as by.

It is reasonable to assume that many points within a barcode should have a large value of I e n. The size of the filter was chosen based on the range of the robuwt of the input images and the minimum size of the barcode readable by our method. Note that block filtering can be implemented efficiently so that only few operations per pixel are required.