Barcode Reading – Machine Vision vs Supermarket Checkout

Barcode reading is widely used in Machine Vision (MV) for part identification. But is there a unique solution that works for all scenarios? I frankly doubt it. The question still remains – why is barcode reading so difficult in MV? It’s true that handheld readers used at the supermarket checkout seem as easy as 1,2,3… that is, of course, after the cashier carefully stretches and rotates the package until it finally beeps! Now imagine a fully automated system repeating this task 20-30 times per second? Now, you’ve got the idea.

Image 1

Barcode reading in Machine Vision (MV) is about tweaking a system so that the success rate is optimal and there is no human intervention. When building an MV-based barcode reader one will likely face constraints such as plurality of standards, poor printing quality, curved surfaces, absence of error correction, and these are just as a start. So let’s look at some basic principles to keep in mind.

Principle 1: Start with a high resolution target.

Barcodes (whether 1-D, 2-D or stacked) are sensitive to the number of pixels per cell/bar. In general a minimum of two pixels per cell/bar will ensure reliability. Below that limit software supporting sub-pixel edge detection is required to guarantee robustness. Camera and software should be evaluated together to ensure the selection of a cost-effective solution.

Principle 2:  Ensure your setup is optimized for inspection.

Critical aspects to consider when setting up the system are: high contrast, low noise, proper focus and lighting uniformity. When these conditions are not reachable in practice, software features such as auto-contrast detection, edge smoothing and local segmentation techniques can attenuate these effects and are therefore often mandatory.

Principle 3: Maximize geometrical uniformity.

For example we often see printing jitter, wrinkled sheets, cylindrical surfaces, all of which cause a non-uniform bar spacing. These situations can cause the reader to fail unless the software provides inherent tolerance to space variation. In extreme cases, modeling the barcode through a training session can improve the chances of a good read.

Image 2

In summary a MV-based barcode reader involves working on the image setup as well as selecting software with proper features to compensate for any “out-of-control” variable.

Your system should be as adaptable as a cashier but a thousand times faster!!!

’til next time,


About Bruno

Bruno is group leader of image processing at Teledyne DALSA. He holds over 16 years of experience in image processing research and development and software design. He has a Master’s degree of Systems Engineering specializing in computer vision and expert systems, as well as a Bachelor’s degree in Electrical Engineering, both from École de Technologie Supérieure in Montreal. He manages the development of image processing algorithms, libraries and tools, both at the software and hardware levels.
Posted on by Bruno. This entry was posted in Cameras, Image processing, Image Sensors, Machine Vision, smart cameras, Software. Bookmark the permalink.

Comments are closed.