IAC 2024 - IA Fast Track to Search Focused AI Solutions
Eye-Free Barcode Detection on Smartphones with Niblack's Binarization and Support Vector Machines
1. Eyes-Free Barcode Detection on Smartphones with Niblack’s
Binarization and Support Vector Machines
Vladimir Kulyukin and Aliasgar Kutiyanawala and Tanwir Zaman
Computer Science Department, Utah State University, Logan, UT, USA
Abstract— An eyes-free barcode detection algorithm is pre- device increases their ergonomic load. Supermarkets may
sented for blind and visually impaired (VI) smartphone also resist installing sensors on the premises due to subse-
users. The algorithm uses Niblack’s binarization filter and quent maintenance costs and customer privacy concerns.
support vector machines (SVMs) to detect barcode presence An optimal solution for both sides is accessible shopping
in image regions. The algorithm is implemented on the systems that work on the devices that VI individuals already
Google Nexus One smartphone with Android 2.3.3. The own and know how to operate and place no instrumenta-
algorithm was evaluated in a software experiment on real tion requirements on supermarkets. In 2006, we began our
product images and in another experiment by three blind- work on ShopTalk [17], a wearable system for independent
folded sighted individuals who used the smartphone to detect blind supermarket shopping whose key components were
UPC barcodes on real grocery products. Our approach an OQO model 01 computer, a Belkin numeric keypad,
complements current R&D efforts on eyes-free barcode scan- and a wireless barcode scanner. The system was our first
ning by advocating the position that in some circumstances attempt (and the first attempt reported in the accessible
sophisticated vision techniques may not be needed to make shopping literature) to use MSI shelf barcodes as topological
barcode scanning available for VI smartphone users. points for locating products through verbal directions. Our
field experiments with ShopTalk showed that VI individuals
Keywords: Accessible Shopping, Eyes-Free Barcode Localization can independently scan MSI barcodes on shelves and UPC
& Decoding, Assistive Technology, Niblack’s Filter, Support Vector barcodes on products. In 2008 - 2009, when it became clear
Machines to us that many VI people had endorsed smartphones as
useful devices, ShopTalk was ported onto the Nokia E70
1. Introduction smartphone running Symbian OS 9.1 [12]. The port was
According to the World Health Organization, there are called ShopMobile 1. The smartphone was connected to
285,000,000 VI people worldwide, of whom 39,000,000 are Baracoda, a small Bluetooth barcode pencil scanner.
blind and 246,000,000 have low vision [26]. Independent In 2010, as megapixel cameras were becoming common-
grocery shopping is one of the greatest challenges faced place on smartphones, we began our work on ShopMobile
by VI and blind individuals. A typical modern supermarket 2 [15]. Unlike its predecessors, ShopMobile 2 no longer
has a median area of 4,500 square meters and stocks an requires a barcode scanner, because it uses vision techniques
average of 38,718 products [2]. Service delays are frequently for barcode recognition. The first version of the system was
reported in the literature on blind shopping [14]. When they implemented on a Google Nexus One smartphone equipped
arrive at the store, VI individuals typically request and wait with a five megapixel camera running Android 2.1 on a 1
for store staffers to guide them and read product labels to GHz processor with 512 MB of RAM.
them. Service delays, however, are not the only accessibility In our previous publications on ShopMobile 2 [30], [15],
barrier that VI shoppers have to overcome. Some staffers [39], barcode scanning was divided into three modules: inter-
are unfamiliar with the store layout, others become irritated active camera alignment, barcode localization, and barcode
with long product searches, still others may have inadequate decoding. Interactive camera alignment is a closed feedback
language skills. These barriers cause many VI shoppers to loop that allows VI users to align the phone camera with
abandon independent shopping and rely on their friends, fixed surfaces in the pitch and yaw planes through vibratory
family members, or other caregivers to meet their shopping and audio feedback to improve the quality of captured
needs. frames. Barcode localization is a process of finding small-
Several systems (e.g., RoboCart [18], [13], [10], est rectangular regions likely to contain barcodes. Barcode
ShopTalk [21], [16], [17], and GroZi [20], [27]) have been decoding is a process of obtaining digit sequences from
developed to address independent shopping. Unfortunately, rectangular images obtained through barcode localization.
these systems rely on specialized hardware or require that We realized the necessity of barcode detection after per-
supermarkets be instrumented with special sensors. Many VI forming an experiment in which two VI participants were
individuals use white canes, handle guide dogs, and operate asked to decode UPC barcodes on ten grocery products.
wayfinding devices. Requiring that they operate yet another The participants took an average of 83.6 and 93.4 seconds,
2. respectively, to scan a barcode. When analyzing the video with respect to the barcode for scanning. One exception
footage of the experiment, we found that the participants is the system described in [5]. This system was developed
spent most of their time looking for barcodes on surfaces that specifically for VI individuals. However, this system assumes
did not contain them. For example, cereal boxes contain six that colored fiducials are placed next to barcodes for fast
surfaces, only one of which has a barcode. As there was no localization. This system also uses a custom-made variation
way for the participants to quickly determine which surface of the UPC standard for encoding barcodes. Another excep-
contained a barcode, they spent equal time on all surfaces. tion is the algorithm proposed by Gallo and Manduchi [9]
One way to reduce barcode scanning times is to add a for decoding barcodes for VI individuals, has not yet been
module that determines quickly if a given frame contains tested on smartphones. To the best of our knowlege, neither
a barcode before a more expensive barcode localization system handles MSI barcodes.
process is applied. In this paper, we present an eyes-free We endorse these R&D efforts but differ from them in that
barcode detection module which the previous versions of our approach is based on the hypothesis that sophisticated
ShopMobile 2 did not include. This module implements vision techniques may not be needed to make barcode
an eyes-free barcode detection algorithm for blind and scanning available for VI mobile phone users. Simple vision
visually impaired (VI) smartphone users. The algorithm uses techniques can be augmented with interactive user feedback
Niblack’s binarization filter and support vector machines loops to improve the quality of captured images. We would
(SVMs) to detect barcode presence in image regions. The also like to emphasize that our object offers a self-contained
module is implemented on the Google Nexus One phone solution that runs only on the smartphone without consuming
with Android 2.3.3. any external computing resources.
We do not claim that the techniques proposed in this paper
are ideal for eyes-free barcode detection. These techniques 3. Use Case
should be viewed in the context of assistive technology To understand how eyes-free barcode scanning is realized
whose principal objective is the design, development, and in ShopMobile 2, let us consider a typical use case. Suppose
evaluation of accommodation systems for individuals with Alice, a completely blind shopper, wants to scan a UPC
specific disabilities for specific environments. Advances in barcode on a box, a bottle, or a can. Alice knows, through
computer vision or wearable and mobile computing are de- training and previous experience, that UPC barcodes are
sirable by-products, but, in and of themselves, are necessarily usually located on the bottom side of boxes and on the sides
secondary objectives. of cans and bottles. If the product is a box, she finds the
Our paper is organized as follows. In Section 2, we discuss bottom side of the box and aligns one edge of her phone
related work. Section 3 presents a use case that illustrates with the corresponding edge of the box. If it is a bottle, Alice
how our system is used and where barcode detection fits in. aligns the bottom edge of her phone with the bottom edge
In Section 4, we describe our eyes-free barcode detection of the bottle. If the product is a can, Alice aligns either the
algorithm based on a modification of Niblack’s classic top or the bottom edge of her phone with the corresponding
binarization filter and uses SVMs to detect the presence of edge of the can.
barcodes in image regions. Section 5 presents two experi- After placing her phone on the surface, Alice slowly
ments with the system. In the first experiment, our barcode moves it away from the product. The system detects this
detection software was tested on real product images. In motion and starts a timer, which notifies her through a
the second experiment, our software was tested by three beep when she should stop moving her smartphone when
blindfolded sighted individuals who used the smartphone to it reaches a threshold. It is assumed that the phone is moved
detect UPC barcodes on real grocery products. Section 6 slowly without abrupt motions. In actual experiments, each
summarizes our work and presents conclusions. participant learns these moves. The preset timer value is set
to stop when the phone is 10 to 15 cm away from the product
2. Related Work surface. The system then starts barcode detection, which
Vision-based barcode decoding is a well-known research continuously takes images in video mode and analyzes each
problem. Ohbuchi et. al. [23] have demonstrated barcode image for the presence of a barcode. If Alice inspects a box
scanning using a camera, a mobile application processor, a and does not find a barcode on the current side, she switches
digital signal processor (DSP), and a display device. Many to a different side and repeats the entire procedure. If she
systems [25], [1], [19], [4] and applications [37], [28] have inspects a can or a bottle, she holds her phone in place
been developed for scanning barcodes with mobile phones. and slowly rotates the product in her hand. This strategy
These solutions have been developed for sighted users was discovered in actual experiments with VI participants:
and may not be suitable for VI individuals. For example, it turns out that it is more effective to rotate cans than phone
RedLaser [37] and ZXing [28] are two popular barcode cameras.
scanning applications for smartphones. These solutions re- When a barcode is detected, the system beeps to let
quire that users carefully position the smartphone’s camera Alice know that a barcode is present and attempts to bypass
3. Compute Image
Binarize Image using
Get Image from Camera Gradients along the x T (x, y) = m(x, y) + k × s(x, y)
Modified Niblack Filter
and y axes
Since computing T (x, y) for each pixel is expensive, Y is
Classify Image Determine if a Barcode divided into n × n subimages, and a single threshold T (i, j)
Gradients using SVMs Exists in the Image
is computed for each subimage Yi,j of Y . Equation 4.1
shows how T (i, j) is computed in our application, where
Fig. 1: Barcode detection algorithm. m(i, j) and s(i, j) are the mean and STD, respectively,
for all the pixels in Yi,j and k, S & T c are user defined
parameters. In our implementation, we set n = 15, k =
barcode localization altogether, since it is rather expensive,
0, S = 12.7, and T c = 127. These values were found
and decode the barocde in the captured image directly, which
experimentally. Negative values of k make the resulting
sometimes works when the image contains little background
binarized image lighter (more white pixels) whereas positive
noise (e.g., text and graphics). If the barcode is decoded
values – darker (more black pixels). In our implementation,
successfully, it is read out to her through speech synthesis.
k = 0 was chosen to simplify computation: since k = 0,
If not, the system starts barcode localization to identify
T (i, j) = m(i, j) when s(i, j) ≥ S.
the precise location of the barcode in the captured image.
The barcode decoding module then attempts to decode the
barcode in the localized image. If the decoding succeeds, the m(i, j) + k × s(i, j) if s(i, j) ≥ S
T (i, j) =
barcode is read out to Alice. If not, the image is rotated 90 Tc otherwise
degrees and the above procedure is repeated on the rotated This modified Niblack method is an attempt to combine
image. If the barcode is still not decoded, the system checks the best of global and local methods. Global methods pro-
whether the barcode is partially present on one of the sides duce less noise in the binarized image while local methods
and asks Alice to move her smartphone, depending on where preserve details in the image that would have otherwise
in the image the barcode part is detected. After the move is been lost due to small variations in illumination. A fixed
completed, barcode scanning starts from scratch. Interactive threshold T c is used on subimages that show low STDs in
camera alignment runs in the background all the time to the grayscale values of their pixels and an adaptive threshold
assist Alice to keep her phone aligned with the product. on subimages that exhibit high STDs in those values. Since
barcode regions consist of large numbers of alternating black
4. Barcode Detection and white lines, subimages with barcodes show high STDs.
Figure 1 shows an overview of the barcode detection Such subimages are thresholded with the adaptive threshold.
algorithm. An image is obtained from the camera and Subimages with constant backgrounds exhibit low STDs,
binarized into a bi-level image. The binarized image is and are thresholded with the constant threshold T c . Figure 2
divided into subimages, and x and y gradients are computed shows an image (top left) and its three binarized counterparts
for each subimage. These gradient regions are classified by obtained with three binarization methods.
two SVMs as barcode or non-barcode regions. Finally, the
algorithm looks at the number of barcode and non-barcode 4.2 Image Gradients
regions to determine if the image contains a barcode. The next step in barcode detection is to compute the image
4.1 Binarizing Images gradients B x and B y along the x and y axes. A gradient
of a continuous function is its derivate along a particular
We have slightly modified Niblack’s binarization fil-
direction. Since a binarized image B consists of discrete
ter [6]. We chose to work with Niblack’s filter, because
pixels, its gradients are computed through convolution:
we found some research evidence that both Niblack and
adaptive Niblack methods minimize noise to the same
level as Sauvola’s algorithm [7]. Both Niblack and Sauvola B x = B ∗ Gx
algorithms have fixed parameters and deal with varying B y = B ∗ Gy
background images, but Sauvola’s algorithm may be more
sensitive to background changes and more difficult to adapt To obtain gradients along the positive and negative di-
to varying backgrounds [8]. rections of each axis, we set Gx = [−1, 2, −1] and Gy =
Equation 4.1 shows how Niblack’s filter determines the [−1, 2, −1]T . As Figure 3a shows, a product package typi-
local threshold T (x, y) for each pixel located at (x, y) in cally consists of four distinct image regions - background,
the image Y , where m(x, y) and s(x, y) are the mean and text, graphics, and barcode. Background regions typically
standard deviation (STD), respectively, for an n × n window exhibit small gradients along both axes wheras text and
centered at (x, y) and k is a user defined parameter, usually graphics exhibit large gradients along both axes. Barcodes
negative. consist of large numbers of parallel alternating black and
4. Graphics Constant
Background
Text
Barcode
(a) Original grayscale image
(a) Original binarized image
Graphics Constant
Background
Text
Barcode
(b) Binarization with global
threshold
(b) Image gradient along x axis
Graphics Constant
Background
(c) Binarization with original Text
Niblack method Barcode
(c) Image gradient along y axis
(d) Binarization with modified Fig. 3: Image gradients along the x and y axes.
Niblack method
Fig. 2: Binarization results.
Bi,j = ΣyBRT L ΣxBRT L |F (x, y)|
x
y=y x=x
y
Bi,j = ΣyBRT L ΣxBRT L |G(x, y)|
y=y x=x
white lines packed in small regions. Thus, barcodes with In the above two equations, F (x, y) = 2B(x, y) − B(x −
vertical lines exhibit large gradients along the x axis and 1, y) − B(x + 1, y)| and G(x, y) = 2B(x, y) − B(x, y − 1) −
small gradients along the y axis. Thus, barcode regions can B(x, y +1). If the subimage Bi,j has a constant background,
x y
be characterized as regions with large gradients along one both Bi,j and Bi,j are low. If the subimage contains text or
axis and small gradients along the other. graphics, both values are high. However, if the subimage
x y
contains a barcode, one of (Bi,j or Bi,j ) is high and the
To implement this algorithm, the binary image is divided other low, depending on the orientation of the barcode lines.
into n × n pixel subimages Bi,j . Let PT L = (xT L , yT L )
and PBR = (xBR , yBR ) be the top left and bottom right 4.3 Support Vector Machine Classification
points for each subimage Bi,j , respectively. The gradients A Support Vector Machine (SVM) [3], [11] is a linear
x y
along the x and y axes, Bi,j and Bi,j for Bi,j are computed classifier, which is used to classify linearly separable data.
as follows: In a typical SVM scenario, given two sets of positive (P )
5. and negative (N ) examples, a line L (a hyperplane in n-
dimensional space) can be constructed to separate P from
N . If L is defined as wx + b = 0, where w is normal to
the hyperplane, |b|/||w|| is the perpendicular distance from
the hyperplane to the origin and ||w|| is the Euclidean norm
of w. Let d+ and d− be the shortest distances from the
hyperplane to the closest positive and negative examples.
The margin of the hyperplane is defined as d = d+ + d−
and a maximum margin hyperplane is defined as one that
maximizes this margin. Points above this hyperplane are
classified as elements of P while points below are as
elements of N . In our case, P is defined as barcode regions
(sub-images) and N as non-barcode regions and classify data
points {xi , yi }, xi ∈ B x , yi ∈ B y as elements of P or N . Fig. 4: Barcode detection SVMs.
For SVM construction, over a hundred images were
collected and manually classified into the two classes: P YT
and N . Each image was divided into n × n subimages
x y
(n = 50) and Bi,j and Bi,j were computed for each
subimage. The points {xi , yi }, xi ∈ B x , yi ∈ B y for all the
subimages Bi,j within each image were plotted, as shown XL XR
in Figure 4. The green points were classified as elements of
P and red points as elements of N . It should be observed
that these points are not linearly separable in the figure.
Consequently, it is theoretically impossible to use SVMs to YB
classify them. However, the plot shows that the two regions
Fig. 5: Imaginary boundary lines in partial barcode detection.
(bottom right and top left) contain only green points and,
therefore, represents subimages with barcodes. Thus, two
SVMs - SV M1 and SV M2 (shown by black dashed lines
in the figure) can be constructed to classify them using
the maximum margin hyperplane. A data point (subimage) NL = NL + 1 if xT L ≤ XL
contains a barcode if it lies above SV M1 or below SV M2 . NR = NR + 1 if xBR ≥ XR
Points lying in between are classified as non-barcodes. An
image contains a barcode if it has a sufficiently high number NT = NT + 1 if yT L ≤ YT
of points (Np ≥ TN ) above SV M1 or below SV M2 , where NB = NB + 1 if yBR ≥ YB
TN is a threshold. If SV M1 is defined as y = mx + c, then
SV M2 is, by symmetry, defined as y = (x−c)/m. We found
that the values of m = 0.5, c = −15, and TN = 5 yielded XL and XR two imaginary vertical lines drawn on the left
the maximum barcode detection performance discussed in half and right half of the image, respectively. Similarly, YT
Section 5. and YB are two imaginary horizontal lines on the top half
and bottom half of the image, respectively. Figure 5 shows
such lines. A barcode is assumed to be cropped if any of
4.4 Detecting Partial Barcodes the counters, NL , NR , NT and NB , exceeds to the value of
Sometimes barcodes can be detected by the barcode threshold NC . In our implementation, we set NC = 1, XL =
detection module but cannot be decoded, because they are 0.1 × w, XR = 0.9 × w, YT = 0.1 × h, and YB = 0.9 × h,
only partially present in the image. Such barcodes are called where w and h are the width and the height of the input
cropped. Barcodes can usually be decoded if cropped from image, respectively.
the top or the bottom since they are redundant along those
directions. However, they cannot be decoded when they are 5. Barcode Detection Experiments
cropped from the left or right. In this case, the user must Two experiments were performed to evaluate the barcode
be asked to move the phone either left or right so that detection performance. The first experiment was a software
the barcode becomes fully present in a subsequent frame. experiment. The second experiment was performed by three
Toward that end, let (xT L , yT L ) be the top left and bottom blindfolded sighted people. In the first experiment, a total of
right corners of the subimage Bi,j and let NL , NR , NT and 124 images of real products were taken in a real supermarket,
NB be defined as follows: out of which 51 images contained a barcode and 73 did
6. Alice Bob Carl
not. These images were manually classified into two sets - Product 1 14 32 13
images containing a barcode and images without a barcode Product 2 16 13 34
and the barcode detection algorithm was run on both the sets. Product 3 29 45 10
In the 51 images with barcodes, barcodes were successfully Product 4 - 39 33
Product 5 37 FP 9
detected in 50. In the 73 images without barcodes, a barcode Product 6 61 49 18
was detected only in 1 image and not detected in 72 images. Product 7 20 13 13
Product 8 15 12 6
The second experiment was designed to measure the Product 9 78 53 115
amount of time it took a person to find a barcode on a real Product 10 9 33 10
product. Three blindfolded sighted participants were asked
Table 1: Barcode detection times.
to find UPC barcodes on ten products (eight boxes, one can,
and one bottle) using the Google Nexus One smartphone. All
three participants were graduate students from the Computer
Science Department of Utah State University. 6. Conclusion
The objective of the experiment was explained to each An eyes-free barcode detection algorithm was presented
participant. The participant was then blindfolded and trained for blind and VI smartphone users. The algorithm modifies
on using the smartphone with the barcode detection soft- Niblack’s binarization filter and uses SVMs for subim-
ware package installed on it. The training and the actual age classification. The algorithm was implemented on the
experiment were conducted on two different sets of products. Google Nexus One smartphone with Android 2.3.3, and
The participants were taught to align the smartphone with was evaluated in a software experiment on 124 product
products and keep it aligned with products through interac- images and by three blindfolded sighted individuals who
tive camera alignment. They were taught how to move the used the smartphone to detect UPC barcodes on 10 grocery
smartphone away from each of the three product types so products. In the first experiment, our barcode detection
that the smartphone was approximately 10 to 15 cm from software was tested on real product images. In the 51 images
the product and how to move the phone parallel to product with barcodes, barcodes were successfully detected in 50. In
surfaces when looking for UPC barcodes on them. This the 73 images without barcodes, a barcode was detected only
distance is important, because, if the camera is too close to in 1 image and not detected in 72 images.
the product, it cannot focus. Similarly, if the camera is too In the second experiment, our software was tested by three
far from the product, the barcode occupies too small an area blindfolded sighted individuals who used the smartphone
in the image and may not be detected.The participants were to detect UPC barcodes on real grocery products. The
told to stop when they heard the smartphone beep (barcode experiment was video recorded for subsequent quantitative
detected) or switch to a different side if the current side did and qualitative analysis. Of 30 experimental runs, there were
not contain a barcode (no beep). 2 failures. One participant was unable to detect a barcode
Each participant was given a set of products (different on the bottle. Another failure was a false positive. All three
from the test set) to practice. During this time, we observed participants spent a lot of time on product a Saltine Crackers
how they were using the system, pointed out their mistakes, box where the barcode was located on the side instead of
and showed them several ergonomic heursitcs. There was no the bottom.
time limit on how long each participant could practice. When We acknowledge that the number of participants in our
a participant self-reported that he or she was comfortable experiment was small. Consequently, our quantitative find-
with the system, the participant was asked to perform the ings should be interpreted with caution. Nevertheless, our
experiment on the product test set. The experiment was video findings suggest that relatively simple vision techniques
recorded for subsequent quantitative and qualitative analysis. can be augmented with interactive user feedback loops to
improve the quality of captured images. Our application
Table 1 shows the amount of time each participant (Alice,
also suggests that self-contained solutions that run only on
Bob and Carl - fictional names used for identity protection)
the smartphones may be feasible without consuming any
took to find barcodes on ten products. It can be observed that
external computing resources.
28 out of 30 barcodes were detected correctly. Alice was un-
able to detect a barcode on the bottle and there was one false
positive in case of Bob. The barcode detection mean times References
for Alice, Bob and Carl were 31, 32.11 and 26.1 seconds,
[1] Adelmann R., Langheinrich M., Floerkemeier, C. A Toolkit for BarCode
respectively. The median values for the participants were Recognition and Resolving on Camera Phones - Jump Starting the
20, 33, and 13 seconds, respectively. All three participants Internet of Things. Workshop on Mobile and Embedded Information
spent a lot of time on product 9 (Saltine Crackers) where Systems (MEIS’06) at Informatik 2006, Dresden, Germany, Oct 2006.
[2] Food Marketing Institute: Supermarket Facts.
the barcode on this product was located on the side instead http://www.fmi.org/facts_figs/?fuseaction=superfact,
of the bottom. retrieved July 14, 2011.
7. [3] Burges, C.J.C. A Tutorial on Support Vector Machines for Pattern [22] Normand N. and Viard-Gaudin C. A Two-Dimensional Bar Code
Recognition. Data Mining and Knowledge Discovery, Vol. 2, Number Reader. Pattern Recognition, Vol. 3, pp. 201-203, 1994.
2, p. 121-167, Kluwer Academic Publishers, 1998. [23] Ohbuchi, E., Hanaizumi, H., Hock, L. Barcode Readers Using the
[4] Chai, D., Hock, F. Locating and Decoding ean-13 Barcodes from Im- Camera Device in Mobile Phones. International Conference on Cyber-
ages Captured by Digital Cameras. Proceedings of Fifth International worlds, pp. 260 – 265, Nov. 2004.
Conference on Information, Communications and Signal Processing, [24] RedLaser: Redlaser. http://redlaser.com/, retrieved May 19,
pp. 1595–1599, Dec. 2005. 2011.
[5] Coughlan, J., Manduchi, R., Shen, H. Cell Phone-based Wayfinding for [25] Rohs, M. Real-world Interaction with Camera-phones. 2nd Inter-
the Visually Impaired. Proceedings of First Int. Workshop on Mobile national Symposium on Ubiquitous Computing Systems, pp. 74–89,
Vision, Graz, Austria, May 2006. Springer, 2004.
[6] Niblack, W. An Indroduction to Digital Image Processing. Prentice [26] World Health Organization, http://www.who.int, 2011.
Hall, pp.115-116. [27] Winlock, T., Christiansen, E., Belongie, S. Toward Real-Time Grocery
[7] Sauvola, J. and M. Pietikainen. Adaptive Document Image Binarization. Detection for the Visually Impaired. Computer Vision Applications for
Pattern Recognition 33, pp. 225-236, 2000. the Visually Impaired (CVAVI), San Francisco, CA, June 2010.
[28] Zxing, http://code.google.com/p/zxing/, retrieved May
[8] He, J., Do, Q. D. M., Downton, A. C., Kim, J. H. A Comparison of
19, 2011.
Binarization Methods for Historical Archive Documents. Proceedings
[29] Viard-Gaudin C., Normand N., and Barba D. Algorithm Using a
of the 2005 Eight International Conference on Document Analysis and
Two-Dimensional Approach. Proceedings of the Second Int. Conf. on
Recognition, 29 Aug. – 1 Sept, Vol. 1, pp. 538 – 542, ISSN: 1520-5263,
Document Analysis and Recognition, No. 20–22, pp. 45–48, October
2005.
1993.
[9] Gallo, O., Manduchi, R. Reading Challenging Barcodes with Cam- [30] Kutiyanawala, A. and Kulyukin, V. An Eyes-Free Vision-Based UPC
eras. Proceedings of Workshop on Applications of Computer Vision and MSI Barcode Localization and Decoding Algorithm for Mobile
(WACV), pp. 1–6, Dec. 2009. Phones. Proceedings of Envision 2010, San Antonio, Texas.
[10] Gharpure, C., Kulyukin, V. Robot-assisted Shopping for the [31] Ando S., and Hontanj H. Automatic Visual Searching and Reading of
Blind: Issues in Spatial Cognition and Product Selection. Barcodes in 3-D Scene. Proceedings of the IEEE Int. Conf. on Vehicle
Intelligent Service Robotics, Vol. 1: 237–251 (2008), Electronics, Vol. 25–28, pp. 49–54, September 2001.
http://dx.doi.org/10.1007/s11370-008-0020-9. [32] Ando S. Image Field Categorization and Edge/Corner Detection
[11] Hearst, M., Dumais, S., Osman, E., Platt, J., Scholkopf, B. Support from Gradient Covariance. IEEE Transactions on Pattern Analysis and
vector machines. Intelligent Systems and their Applications, IEEE Machine Intelligence, Vol. 22, No. 2, pp. 179–190, February 2000.
13(4), pp. 18–28, 1998. [33] Ando S. Consistent Gradient Operators. IEEE Transactions on Pattern
[12] Janaswami, K. ShopMobile: A Mobile Shopping Aid for Visually Analysis and Machine Intelligence, Vol. 22, No. 3, pp. 252–265, March
Impaired Individuals. M.S. Report, Department of Computer Science, 2000.
Utah State University, Logan, UT, 2010. [34] Muniz R., Junco L., and Otero A., A Robust Software Barcode Reader
[13] Kulyukin, V., Gharpure, C., Pentico, C. Robots as using the Hough Transform. Proceedings of International Conference
Interfaces to Haptic and Locomotor Spaces. Proceedings on Information Intelligence and Systems, No. 31, pp. 313–319, Novem-
of the ACM/IEEE international conference on Human-robot ber 1999.
interaction, pp. 325–331, ACM, New York, NY, USA, 2007, [35] Arnould S., Awcock G. J., and Thomas R., Remote Bar-code Lo-
http://doi.acm.org/10.1145/1228716.1228760. calization Using Mathematical Morphology. Image Processing and its
[14] Kulyukin, V., Kutiyanawala, A. Accessible Shopping Systems for Blind Applications, Vol. 2, No. 465, pp. 642–646, 1999.
and Visually Impaired Individuals: Design Requirements and the State [36] The Zebra Crossing Barcode Decoding Library,
of the Art. The Open Rehabilitation Journal 2, pp. 158–168, 2010, http://code.google.com/p/zxing/.
http://dx.doi.org/10.2174/1874943701003010158. [37] Occipital, LLC. RedLaser, http://redlaser.com/.
[15] Kulyukin, V., Kutiyanawala, A. Eyes-free Barcode Localization and [38] Tekin, E. and Coughlan, J.M., An Algorithm Enabling Blind Users to
Decoding for Visually Impaired Mobile Phone Users. Proceedings of Find and Read Barcodes. WACV09, 2009.
the 2010 International Conference on Image Processing, Computer [39] Kutiyanawala A., Qi X., Tian J. A Simple and Efficient Approach
Vision, and Pattern Recognition, pp. 130–135. IPCV 2010, CSREA to Barcode Localization. 7th International Conference on Information,
Press, 2010. Communication and Signal Processing, Macau 2009.
[16] Kulyukin, V., Nicholson, J., Coster, D. Shoptalk: Toward Independent
Shopping by People with Visual Impairments. Proceedings of the
10th international ACM SIGACCESS conference on computers and
accessibility (Assets 2008), pp. 241–242, ACM, New York, NY, USA
(2008), http://doi.acm.org/10.1145/1414471.1414518.
[17] Nicholson J., Kulyukin V., Coster D. ShopTalk: Independent Blind
Shopping Through Verbal Route Directions and Barcode Scans. The
Open Rehabilitation Journal, ISSN: 1874-9437 Volume 2, pp. 11–22,
DOI 10.2174/1874943700902010011, 2009.
[18] Kulyukin, V., Gharpure, C. Ergonomics-for-one in a
Robotic Shopping Cart for the Blind. Proceedings of the
1st ACM SIGCHI/SIGART conference on Human-robot
interaction, pp. 142–149. ACM, New York, NY, USA, 2006,
http://doi.acm.org/10.1145/1121241.1121267.
[19] McCune, J., Perrig, A., Reiter, M. Seeing-is-believing: Using Camera
Phones for Human-verifiable Authentication. IEEE Symposium on
Security and Privacy, pp. 110 – 124, May 2005.
[20] Merler, M., Galleguillos, C., Belongie, S. Recognizing Groceries in
Situ using in Vitro Training Data. SLAM, Minneapolis, MN (2007).
[21] Nicholson J. and Kulyukin V. ShopTalk: Independent Blind Shopping
= Verbal Route Directions + Barcode Scans. Proceedings of the 30-
th Annual Conference of the Rehabilitation Engineering and Assistive
Technology Society of North America (RESNA 2007), June 2007,
Phoenix, Arizona, Avail. on-line and on CD-ROM.