17th Telecommunications forum TELFOR 2009 Serbia, Belgrade, November 24-26, 2009.
Abstract — This paper addresses the problem of barcode
detection and decoding on devices with limited resources. We
propose a fast and robust method specifically designed for 2D
Data Matrix type barcode scanning. Our approach uses a
contour tracing technique for the identification of key
corners and segments, followed by one or two fitting steps.
The method is well suited for implementation on mobile
hand-held devices or on other systems where a real-time
solution is required.
Keywords — 2D barcodes, barcode detection , Data
Matrix, image processing, mobile devices.
I. INTRODUCTION
OWADAYS, when almost everyone is connected via
hand-held mobile devices in a “technological
synesthesia” and important informational paradigms
merge, the general use of decoding barcodes becomes
widely available. Barcode technology is accessible to
anyone who possesses a simple camera featured device.
Although specific industrial barcode reading hardware has
already been developed and used for many years, cheap
camera-enabled gadgets allow small businesses to take
advantage of visually encoded data at almost no cost with
minimal hardware investments.
Modern barcode representation migrates towards 2-
dimensional data scattering. Different encoding
symbologies have been designed, such as: QRcode, Data
Matrix (semacode), colorcodes (High Capacity Color
Barcode), maxicode, shotcode, etc. some of them heavily
used in diverse applications. Despite the ever increasing
rate of hardware capabilities, there is still a need to keep
processing power and resource consumption under strict
control. In the following sections we will strictly cover the
detection and decoding of barcodes considering specific
Data Matrix [1] format attributes.
II. 2D
BARCODES DECODING
Data Matrix “Fig. 1.a” is one of the most widely spread
2D symbologies alongside the QR Code. Elements that
best describe the main characteristics of a Data Matrix
symbol are closely related to its finder pattern “Fig. 1.b”.
An L-shaped boundary formed by two adjacent sides helps
in finding the location of possible symbols. It also
provides the orientation and code size estimations on the
source image. On the complementary sides, two
Pârvu Ovidiu is with the “Politehnica” University of Timisoara,
Romania, Faculty of Automatic Control and Computer Science (e-mail:
parvu@cs.upt.ro).
Andrei G. Bălan is with the “Politehnica” University of Timisoara,
Romania (e-mail: andrei@ufodesign.ro).
alternating synchronization patterns lie. Encoded bits are
distributed across a regularly spaced cell grid with its size
given by the synchronization pattern. Further defining the
symbol, the outer elements are accompanied by a “quiet
zone”, where no other graphic elements should be found.
White on black barcodes are common with colored [2]
variations also possible due to the decoding algorithm's
focus on high contrast zones and grayscale conversions.
Different approaches [3]-[5] were proposed in order to
detect and decode barcodes with common hardware. Some
solutions are general as they are for the most part
applicable to a wide range of symbologies. Others focus
on a specific barcode type. These methods are somewhat
“faster” than their “general” counterparts as they tend to
exploit characteristics of the symbology they try to
decode.
Many methods rely on edge detection passes. These, in
turn, point to different corner isolation techniques. Linear
features used in object candidates retrieval are more than
often highlighted through Hough space transformations. It
is not an ideal practice for all mobile gismos since the
method is memory hungry and pretty expensive
computationally wise. Other solutions revolve around the
identification of common gradient feature regions and
growing / linking algorithms. Several texture analysis and
segmentation techniques can also be used to detect
candidate regions.
III.
A FAST BARCODE DETECTION METHOD
The guiding ideas implied by the development of our
fast, computationally inexpensive solution were: reduction
of large array memory accesses (process as few individual
pixels as possible), the restriction to integer operations due
to hardware limitations and possible speed optimizations.
Our method follows classical image processing steps with
a binarization / object candidates segmentation approach
since we don't stray a lot from a basic scan-line, row by
row, image analysis algorithm.
Independent components are identified with a contour
tracing algorithm. Without disregarding noise and other
A method for fast detection and decoding of
specific 2d barcodes
Ovidiu Pârvu, Andrei G. Bălan
Fig. 1. (a) Data Matrix Code (b) Finder patern