Archive for August, 2010|Monthly archive page

In search of state-of-the-art barcode reader software

In Uncategorized on August 3, 2010 at 2:09 am

I have tried out a few different software libraries for scanning ISBN/EAN-13 barcodes with my iSight camera, but I am disappointed by the results.  The input I am providing the software is 640×480, noisy, poorly focused pictures of ISBNs on the backs of my textbooks.  I have concluded that all open source barcode readers are unfit for cheap webcams without further improvement.

I would ideally like to use a $30 webcam to scan books and other products with off-the-shelf open-source software, for use in some inventory management software.  They do make specialized barcode scanner hardware for this purpose, but the computer vision enthusiast in me sees no reason why we should not have a good webcam solution in 2010.

Software that could not recognize these images:

  • zxing
  • zbar

Software I did not try:

What’s missing from open-source barcode software: science

It seems like the libraries out there now do not use large quantities of data to test out the algorithms and incrementally improve them.  I am talking about a dataset typical in a supervised learning project with thousands of example images with corresponding labels.  In this case, it would be helpful to have two different classes of examples in a dataset.  For each image, it would be helpful to have

  1. the pixel coordinates of the corners of the barcode image
  2. the barcode value

With this sort of data, we could begin to compare the performance of the barcode libraries out there.  A fairly large dataset could be generated synthetically, or one could be created relatively easily from real-world data as well.  See this thread about using a tex library to generate EAN-13 barcodes.

I don’t have any brilliant insights about how to accomplish great results, but one thing I have noticed is that no library seems to make use of the english characters printed at the bottom of EAN barcodes.  This could probably be used in conjunction with the barcode data to further improve results, since OCR software is super accurate these days.