Literature Review

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

International Journal of Computer Applications (0975 – 8887)

Volume 129 – No.7, November2015

Barcode Localization and Decoding using a Modified


ScanLine Approach for Industrial Nameplate Verification
Aakash Thakkar
Sardar Patel Institute Of Technology
Mumbai, India.

ABSTRACT 2. SYSTEM FLOW


Increased Automation in the manufacturing sector with the
introduction of low cost embedded systems and servo drives
has resulted in a substantial increase in the precision and
speed of packaged goods output. This increase in speed has Grab Image From Camera
rendered manual verification incapable to keep up. Recent
developments in the area of computer vision and embedded
computing has allowed for replacement of traditional human
verification by machine vision systems.
Wait For Machine Trigger

This study aims to implement a robust solution for Barcode


Localization and Decoding for an affordable, reliable and
industrial solution for a general purpose automated product Barcode
verification system. Localization
General Terms
Algorithms, Pattern Recognition, Barcode Localization,
Processing Barcode
Barcode Decoding, Nameplate.
Decoding
Keywords
Barcode; Decoding; Localization; Scanline; Nameplate;
Verification OCR

1. INTRODUCTION
The biggest challenge for any packaging unit is to ensure no
mismatch takes place when switching over between two If Error – Notify The Machine To Reject
different products while using the same packaging equipment.
A huge list of safety procedures need to be followed, as it
would be disastrous if a face cream is filled into a tube that
belongs to toothpaste. In addition to this, another important
issue that needs to be addressed is the wrong printing of the Fig 1. System Flow of Nameplate Verification System
batch/expiry details on the product packaging.
The Fig. 1 maps the sequence of activities occurring in the
Working to eliminate the age-old adage that no amount of process of nameplate verification. This process begins with
verification is enough, Product Name Plate Verification the camera retrieving images at 30 Frames per Second (FPS).
System makes use of modern vision technologies in order to It also monitors the General Purpose Input Output (GPIO)
ensure wrong packaging is the thing of the past. With the use pins for a trigger. Upon receiving the trigger it localizes &
of an industrial camera accompanied by a manual focus lens, decodes the barcode, following which the OCR deciphers the
high quality input can be captured and processed with the use text on the product being manufactured.
of an embedded ARM system that is capable of identifying
the product nameplate and communicating with the machinery Any error signals the machine to reject the product, multiple
using trigger/output and MODBUS communication errors signal the machine to halt packaging.
mechanisms. Let us understand in depth how the process mentioned in
A Nameplate of the product can be defined as the unique Figure 1. Are carried out.
quality of the product or product packaging that distinguishes
it from other products, This Includes:
3. BARCODE LOCALIZATION
Barcode Localization is the process of locating the exact
1) Barcode on the Product coordinates of barcode in an input image so the task of
barcode decoding can be performed.
2) Text on the Product
A barcode is simply a sequence of parallel lines having
3) Color and Shape of the Product rectangular shape of varying thickness. We can use this
unique quality of barcode to localize its location in an image.

28
International Journal of Computer Applications (0975 – 8887)
Volume 129 – No.7, November2015

Let’s consider our “Block Localization Algorithm” inspired


by the work done by Douglas Chai and Florian Hock [3], on
the following sample image to understand how we have
solved this problem with a sample image:

Fig 5. Discarding unwanted blocks


Blocks shown with an Orange Outline satisfy the above
conditions.

Fig 2. Sample Image Step 5: Use contour shape analysis on non-discarded blocks
in Fig. 5 to ensure that each of the contours in the block is of
Step 1: Apply Adaptive Threshold on the image. rectangular shape, If not discard the block.

Fig 3. Sample Image After Performing Adaptive


Threshold Fig 6. Discard blocks that fail Contour Shape Analysis
Step 6: The sequence of blocks shown with a green border in
Step 2: Divide the image into rectangular blocks of
Fig 6 satisfying the above condition is the barcode. We can
appropriate size depending on the image resolution.
perform decoding on the same.

4. BARCODE DECODING
Different Barcode Symbologies have a different arrangement
of spaces and bars and achieves a different business objective.
No one type of symbology is perfect for all kinds of business
applications.
The most common barcode symbologies are:
1) Universal Product Code (UPC): Used in North
America Retail.

Fig 4. Division in rectangular block


Step 3: Check each block for following:

1. The block contains at least two contours/objects.

2. The objects can extend into another block but Fig 7. Universal Product Code(UPC) [7]
cannot extend beyond one neighboring block.
2) International Article Number(EAN): Used in
3. Anything below 10% of block size has to be World Wide Retail.
ignored.
Step 4: Discard each block that doesn’t satisfy the above. This
gives us the following result:

Fig 8. International Article Number(EAN) [8]

29
International Journal of Computer Applications (0975 – 8887)
Volume 129 – No.7, November2015

actually there are 6 bars, Also the amount of data points in


3) CodaBar: Used in Libraries, Blood Banks. each bar is very low hence thick bars are considered to be fine
bars.
In order to overcome this issue, this paper proposes a
“Baseline Decoding Algorithm”. This approach is based upon
the hill-climbing algorithm commonly used in artificial
intelligence. It involves tagging the local minima’s and
maxima’s for a particular ScanLine. The average of all
Fig 9.CodaBar [9] maxima’s excluding the first and the last maxima are
calculated. From the second and second last minima, two
4) PharmaCode: Pharmaceutical Packaging. points closest to the average are identified to serve as the local
maxima on both end points.
Two subsequent maxima’s form a bar and the number of data
points between the two maxima’s helps suggest the thickness
of the bar. Clustering of these data points helps in classifying
a bar as a thick or thin bar.
Figure 14.c proves that while the traditional algorithm [10]
Fig 10. PharmaCode [10]
fails to correctly recognizing a distorted barcode, The
We will focus of Decoding PharmaCode as our product is Baseline Decoding algorithm not only correctly detects the
aimed towards an industrial environment. number of bars but also distinguishes between the thick and
fine bar accurately.
The specification for PharmaCode [11] specifies that the code
must be of minimum three bars and a maximum of 8bars. It
also recommends that each code must have at least one thick
and fine bar.
Depending on the position of the thick or fine bar, weight is
assigned to each bar. The summation of weights would give
decoded value of PharmaCode. Example:

Fig 11. PharmaCode decoded [11]


Weights are assigned to each of the bar as following: Fig 13. Real World Deformed Sample PharmaCode with
corresponding ScanLine

Fig 12. Weights for each bar [11]


Now the main problem that arises in Barcode Decoding is
how to identify the number and thickness of bars.
Let’s consider an example to understand this better:
One of the challenges with barcode decoding involves
identifying the number and thickness of bars present in the
barcode.
The decoding logic used by Orazio Gallo and Robert
Manduchi [2] involves thresholding the values that comprise
the ScanLine. However, this approach performs weakly in low
lighting conditions as demonstrated in Fig. 14.a. and 14.b.
Fig 13 shows the presence of a reflection, which significantly
distorts the barcode image hindering the decoding process.
The pixel values from the ScanLine are plotted in Fig 14.a.
The traditionally implemented decoding algorithm thresholds
the pixel values and counts the data points that correspond to
0 value. Thresholding to zero is performed primarily to
identify the presence of a bar and secondly distinguish
between a thick and thin bar. As seen by the graph plotted, Fig
14.b we realize that the algorithm only detects 2bars while

30
International Journal of Computer Applications (0975 – 8887)
Volume 129 – No.7, November2015

160
150
140 146 146 142 139 143
130 137 138 138
120 127 127
110 116
100 108
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

Fig. 14.a.

200

150

100

50

0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

Fig. 14.b.

Baseline Decoding Algorithm


145
146 146 3 3 143
135 142 139
137 138 4 138 5
7
125 8 127 127

115
116
108
105
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

Fig. 14.c.

Fig 14. Plotting of Various PharmaCode Values, Fig 14.a. Plotting of Pixel Values, Fig 14.b. Plotting of Pixel Values
along with Threshold Values, Fig 14.c Working of Baseline Decoding Algorithm.

5. CONCLUSION
The primary goal of Computing and Information Technology The deployment of the above solution into an industrial
is to reduce human effort in repetitive work while enhancing environment would allow an operator to quickly teach the
the robustness and efficiency of the process.This paper item being packaged, once the item is taught the product
attempts to accomplish the above by eliminating faults such as would accept triggers from the machine, and verify whether
wrong and damaged packaging and misprinting with the parameters calculated meet the ones that are taught.
introduction of a low cost embedded solution and
optimized image processing algorithms working reliably in Hence this paper proposes a full proof solution to solve a
real time. common industrial problem and pushes upon the boundaries

31
International Journal of Computer Applications (0975 – 8887)
Volume 129 – No.7, November2015

of image processing by increasing robustness and efficiency [5] http://docs.opencv.org/trunk/doc/py_tutorials/py_imgpro


of current algorithms. c/py_thresholding/py_thresholding.html, accessed on 4th
February 2015
6. REFERENCES
[1] Pavlidis, T.; Swartz, J.; Wang, Y.P., "Fundamentals of [6] http://docs.opencv.org/trunk/doc/py_tutorials/py_imgpro
bar code information theory," IEEE Computer, vol.23, c/py_contours/py_contours_begin/py_contours_begin.ht
no.4, pp.74, 86, April 1990 ml, accessed on 24th February 2015

[2] Orazio Gallo and Robert Manduchi, “Reading 1D [7] http://www.gs1us.org/Portals/0/images/barcodes/UPC-


Barcodes with Mobile Phones Using Deformable A.gif, accessed on 2nd March 2015
Templates”, IEEE transactions on pattern analysis and [8] https://encrypted-
machine intelligence, Vol. 33, 2011 tbn3.gstatic.com/images?q=tbn:ANd9GcQWqT075ZAW
[3] Douglas Chai and Florian Hock, “Locating and Decoding tiOV-xmAmH34rPL6z3SCTOqrUJYc_Cdpxahn2Hea,
EAN-13 Barcodes from Images Captured by Digital accessed on 2nd March 2015
Cameras”, IEEE, pp. 1556-1560, 2005 [9] http://www.barcodeisland.com/codabar.gif, accessed on
[4] http://www.barcoding.com/information/barcode- 2nd March 2015
symbology-definition.shtml, accessed on 24th February [10] http://wikiimages.qwika.com/images/en/d/da/Pharm.gif,
2015 accessed on 2nd March 2015
[11] http://www.oberhofer.co/how-barcode-localization-
works-in-quaggajs/, accessed on 22nd February 2015

IJCATM : www.ijcaonline.org 32

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy