SlideShare a Scribd company logo
1 of 4
TOWARD REAL TIME EYES-FREE BARCODE SCANNING ON SMARTPHONES
                        IN VIDEO MODE

            Aliasgar Kutiyanawala1 Vladimir Kulyukin1 John Nicholson2
    1
      Department of Computer Science, Utah State University. 2Department of
   Computer Science and Information Technology, Austin Peay State University
               INTRODUCTION                        taken continuously and processed by the
                                                   barcode localization and decoding modules. If a
    In our previous research [1], we have          barcode is decoded, the user is notified through
shown that visually impaired (VI) individuals      text-to-speech.
can shop independently by scanning MSI
                                                   Interactive Camera Alignment Loop
barcodes on shelves and UPC barcodes on
products. This system was called ShopTalk and          We have previously conducted a lab study
used a hand-held barcode scanner, a shoulder-      with one VI participant and four blindfolded
mounted keypad and headphones connected to         sighted participants, where participants had to
an ultra-portable OQO computer. ShopMobile-II      find, retrieve and verify products from a
[2, 3] is the next version of this system that     simulated shopping aisle [2]. The participants
reduces the system's hardware complexity by        scanned MSI barcodes on shelves to find
allowing VI users to shop independently using      product locations and UPC barcodes on
only a smartphone.                                 products to identify them. MSI barcodes are a
                                                   type of linear 1-D barcodes that are used
    ShopMobile-II has three software modules –
                                                   mostly for inventory control, and marking
an eyes-free barcode scanner, an OCR engine
                                                   storage containers and shelves in warehouse
and remote guidance. This paper describes our
                                                   environments [7]. To scan a barcode,
barcode scanning algorithm that operates in
                                                   participants would first align the camera with
video mode on the Google Nexus One Android
                                                   the product or shelf and then slowly move the
2.2 smartphone. Two pilot experiments are
                                                   camera away. The VI participant would
presented: the first one, conducted in a grocery
                                                   frequently misalign the camera in the pitch and
store evaluated the contributions of the
                                                   yaw planes as he moved it away from
algorithm’s   modules;      the  second     one,
                                                   barcodes. This misalignment caused skew
performed in a laboratory with two VI users,
                                                   distortions in barcode images, which resulted in
evaluated the effectiveness of the algorithm in
                                                   several decoding failures.
finding UPC barcodes on various grocery
products.                                              The interactive camera alignment module is
                                                   designed to minimize skew distortions by
      EYES-FREE BARCODE SCANNER                    keeping the camera aligned with the barcode in
                                                   the pitch and yaw frames. The shopper starts
    RedLaser [4] and ZXing [5] are two             the loop by pressing the touch screen. The
applications    for  scanning   barcodes  on       system captures the phone's orientation
smartphones. However, they require users to        sensor's readings of the pitch and yaw planes
carefully align the camera with the barcodes       for subsequent reference. The system takes
prior to decoding and cannot decode MSI            these readings as the shopper moves the
barcodes. Our algorithm is designed to find        camera away from the barcode and compares
both UPC and MSI barcodes in real video mode       them with the reference readings. When the
without prior camera alignment [6].                readings deviate from the reference readings,
                                                   the phone begins to vibrate until the camera is
   The eyes-free barcode scanning algorithm is
                                                   realigned.
comprised of three modules – interactive
camera alignment loop, barcode localization,
and barcode decoding. The barcode scanning
algorithm operates in video mode. Images are
Barcode Localization                                   – luminance based method (LM), two-level
                                                       binary method (TLB) and a two-level binary
    The area of the barcode region in the image
                                                       method with alternating frequency filter (TLB-
varies with the distance between the barcode
                                                       AF).
and the camera. If the camera is held close to
the barcode, the barcode region occupies a                 LM populates the scanline with the central
large area in the image and the barcode                (n/2th) row of the strip, and each pixel in the
decoding stage can easily decode the barcode.          scanline pi ∈ [0, 255]. TLB binarizes the strip
However, if the camera is held at a distance to        using a modified Niblack filter [8] before
the barcode, the barcode region is small and           populating the scanline with the central row of
there is a possibility of other components, such       the strip. Each pixel in the scanline pi ∈ {0,
text and graphics, being alongside the barcode,        255}. TLB-AF takes this process a step further
which may cause a detection failure. Localizing        by filtering out areas with low alternating
and segmenting possible barcode regions prior          frequencies in the binarized strip before
to decoding increases the probability of               populating the scanline.
accurate decoding.
                                                           The processed scanline is now converted to
    A barcode is a small homogeneous region            a line-widths representation W = {w1, w2 …
consisting of alternate black and white lines.         wk}). To obtain W, strings of consecutive zeros
We define two properties – alternating                 and ones in the scanline are replaced with their
frequency      and    vertical    continuity    that   run lengths. A separate data structure C = {c1,
characterize a region as a potential barcode. If       c2, …, ck} records the color associated with
a line is drawn horizontally across the barcode,       each line-width wi. For example, if the scanline
alternating frequency is the number of black to        S = {255, 0, 0, 0, 255, 255}, W = {1, 3, 2}
white and white to black transitions along that        and C= {1, 0, 1}.
line. Vertical continuity is the continuity of black
                                                            Table 1: UPC barcode symbology in line-
and white lines along vertical lines. Vertical
                                                                   widths representation.
continuity is estimated by the similarity
between two parallel horizontal lines, separated             Pattern / Digit   Template of line widths Tm
vertically, placed over the region. The longest               Start Pattern               111
common subsequence is used as the similarity
                                                             Middle Pattern              11111
measure.
                                                               End Pattern                111
     The first step in the barcode localization is
                                                                 Digit 0                 3211
to scale the image down to the 320 x 240
resolution for efficiency. This scaled image is                  Digit 1                 2221
passed through a line filter presented in [2],                   Digit 2                 2122
which allows vertical lines to pass through and                  Digit 3                 1411
filters out everything else. The filtered image is
                                                                 Digit 4                 1132
scanned in a rasterized pattern to look for
areas with high alternating frequencies and                      Digit 5                 1231
vertical continuities. These are translated into                 Digit 6                 1114
the corresponding areas of the original image                    Digit 7                 1312
and segmented from it.
                                                                 Digit 8                 1213

Barcode Decoding                                                 Digit 9                 3112

    Our barcode decoding algorithm uses
scanlines and consists of three main procedures            A UPC barcode consists of two sets of six
– strip generation, strip processing, and              digits D enclosed by start (S)/end (E) patterns
scanline decoding. The strip generation                and separated by a middle pattern (M) as
procedure selects horizontal and diagonal n-           SDDDDDDMDDDDDDE [9]. The start, middle
pixel wide strips in the image. The strips are         and end patterns as well as the digits are
converted to one-pixel wide scanlines. This            encoded by a series of alternating black and
conversion is achieved through three methods           white lines of varying widths. Table 1 shows the
UPC barcode symbology in the line-widths                   shown in Fig. 2, we found that the LM decoded
representation. To decode the barcode in the               the most barcodes (53), followed by TLB (26)
scanline W, we find the start pattern index (s)            and finally TLB-AF (15). Only one barcode out
and the end pattern index (e) within W using               of the 15 decoded by TLB-AF is not decoded by
the following equations:                                   the other methods. Hence, this method can be
                                                           eliminated without a significant impact on the
      s = arg max( wi −1 − std ( wi , wi +1 , wi + 2 ))    overall decoding rate.

      e = arg max( wi + 3 − std ( wi , wi +1 , wi + 2 ))

where, ci = 0.

    Each digit d is encoded by four lines and the
index i of the jth digit djj within W can be found
as:

            i = s + ( j − 1) × 4, if j ≤ 6
            i = s + ( j − 1) × 4 + 5, if j > 6

    If Tm represents the template of the digit m               Figure 1. Contributions of the barcode
in Table 1., the value of the jth digit dj can be                        localization stage.
found as follows:
                               3
         d j = arg min(       ∑ (w
                              k =0
                                     i+k   − Tkm ) 2 )


where, 0 ≤ j ≤ 12 and 0 ≤ m ≤ 9.

    The twelfth digit is a checksum digit to
verify accurate decoding.

                   EXPERIMENTS

    The objective of the first experiment was to
find the contribution of barcode localization as
well as the contributions of the three strip
processing methods. Our claim is that barcode                Figure 2. Contributions of the different strip
localization prior to decoding increases the                            processing methods.
decoding rate. To test this claim, a database of
68 product images, which included boxes, cans,                 To test the accuracy of barcode recognition
and bottles, was obtained in a grocery store               in video mode, we conducted two single subject
with the Google Nexus One smartphone with                  experiments at the Smith Kettlewell Eye
Android 2.2. We then logged the number of                  Research Institute in San Francisco, CA. The
barcodes decoded in the scans with and without             software was implemented on the Google
the localization stage. As Fig. 1 shows,                   Nexus One smartphone with Android 2.2. Both
localization prior to decoding resulted in an              subjects were completely blind staff electrical
increase of 14 (20.59%) decoded barcodes.                  engineers. One had a cellphone; the other
                                                           never owned or used one. The camera
   As mentioned earlier, the three methods are
                                                           alignment module was not tested. The camera
used to convert n-pixel wide strip to one-pixel
                                                           operated in video mode.
wide scanlines. We wanted to test the
contributions of each method to decoding. As
The experiment consisted of a tutorial and            In informal feedback collected from both
an      actual    test.    In    the     tutorial,     subjects after the experiments, they indicated a
each subject was given two sample products (a          preference for run time image alignment
plastic bottle and a juice box) and was shown          signals when the camera is misaligned with the
how to move the camera along the surface of            object. They also said that the camera should
the product. The tutorial continued until each         work over a wider range of positions and the
subject could detect the barcodes on both              software must operate much faster.
products without the experimenter's help. The
first subject's tutorial took approximately ten                             CONCLUSION
minutes. The second subject's tutorial took
approximately eight minutes. During the test,              Our experiments indicate that smartphones
each subject was given ten products: a cereal          can be used for real time eyes-free barcode
box, a small tea box, two small juice bottles, a       scanning in video mode. Barcode localization
small milk carton, a Pringles tube, a toothpaste       was observed to improve the decoding rates by
box, a larger juice bottle, a small water bottle,      as much as 20%. The TLB-AF can be eliminated
and a yogurt cup. The detection time for each          without a significant reduction in barcode
product was recorded on the phone. When the            decoding rates. Two VI participants were able
subject could not detect the barcode for over          to successfully scan most UPC barcodes on
five minutes, the detection was considered a           various grocery products using our algorithm.
failure and the subject was given the next
product. The order of the products was                                      REFERENCES
randomized for each subject.
                                                       [1] J. Nicholson, V. Kulyukin, and D. Coster, “ShopTalk:
                                                       independent blind shopping through verbal route directions
   Table 2: Results of barcode              scanning   and barcode scans”, The Open Rehabilitation Journal, ISSN:
experiments with VI participants.                      1874-9437       Volume   2,     2009,    pp.    11-23,   DOI
               Participant 1       Participant 2       10.2174/1874943700902010011.
Product                                                [2] V. Kulyukin, and A. Kutiyanawala, “Eyes-free barcode
               Time    False       Time    False
               Taken   Positives   Taken   Positives   localization and decoding for visually impaired mobile
                                                       phone users”, Proceedings of the 2010 International
Cereal box     33      0           40      0           Conference on Image Processing, Computer Vision, and
Tea box        140     0           100     1           Pattern Recognition, 2010.
                                                       [3] V. Kulyukin, and A. Kutiyanawala, “From ShopTalk to
Small juice
               15      0           Fail    0           ShopMobile: vision-based barcode scanning with mobile
bottle 1
                                                       phones     for   independent     blind   grocery   shopping”,
Small juice                                            Proceedings of the 33-rd Annual Conference of the
               142     0           151     0
bottle 2
                                                       Rehabilitation Engineering and Assistive Technology Society
Milk carton    56      0           51      1           of North America, June 2010, Las Vegas, Nevada.
Pringles       37      0           111     0           [4] Occipital, LLC. RedLaser http://redlaser.com/
                                                       [5] The Zebra Crossing Barcode Decoding Library.
Toothpaste     184     0           Fail    0
                                                       http://code.google.com/p/zxing/
Large juice                                            [6] Eyes-Free Barcode Scanning in Video Mode on Google
               125     0           140     0
bottle                                                 Nexus One Smartphone.
Water bottle   87      0           121     0           http://www.youtube.com/user/csatlusu#p/u/0/-aiT-Zan7AE
                                                       [8] Wikipedia, MSI barcode.
Yogurt cup     17      0           41      0
                                                       http://en.wikipedia.org/wiki/MSI_Barcode.
                                                       [8] W. Niblack, “An introduction to image processing”,
   The average barcode recognition times were          Prentice-Hall, Englewood Cliff, NJ, pp. 115-1 16, 1986.
83.6 seconds and 93.4 seconds for subject 1            [9] Wikipedia, UPC barcode.
and 2, respectively. Subject 2 had two failures        http://en.wikipedia.org/wiki/Universal Product Code.
where the software failed to detect the barcode
in five minutes. There were also two false
positives when the software detected a barcode
over printed text.

More Related Content

More from Vladimir Kulyukin

Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
Vladimir Kulyukin
 
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
Vladimir Kulyukin
 

More from Vladimir Kulyukin (20)

Toward Sustainable Electronic Beehive Monitoring: Algorithms for Omnidirectio...
Toward Sustainable Electronic Beehive Monitoring: Algorithms for Omnidirectio...Toward Sustainable Electronic Beehive Monitoring: Algorithms for Omnidirectio...
Toward Sustainable Electronic Beehive Monitoring: Algorithms for Omnidirectio...
 
Digitizing Buzzing Signals into A440 Piano Note Sequences and Estimating Fora...
Digitizing Buzzing Signals into A440 Piano Note Sequences and Estimating Fora...Digitizing Buzzing Signals into A440 Piano Note Sequences and Estimating Fora...
Digitizing Buzzing Signals into A440 Piano Note Sequences and Estimating Fora...
 
Generalized Hamming Distance
Generalized Hamming DistanceGeneralized Hamming Distance
Generalized Hamming Distance
 
Adapting Measures of Clumping Strength to Assess Term-Term Similarity
Adapting Measures of Clumping Strength to Assess Term-Term SimilarityAdapting Measures of Clumping Strength to Assess Term-Term Similarity
Adapting Measures of Clumping Strength to Assess Term-Term Similarity
 
A Cloud-Based Infrastructure for Caloric Intake Estimation from Pre-Meal Vide...
A Cloud-Based Infrastructure for Caloric Intake Estimation from Pre-Meal Vide...A Cloud-Based Infrastructure for Caloric Intake Estimation from Pre-Meal Vide...
A Cloud-Based Infrastructure for Caloric Intake Estimation from Pre-Meal Vide...
 
Exploring Finite State Automata with Junun Robots: A Case Study in Computabil...
Exploring Finite State Automata with Junun Robots: A Case Study in Computabil...Exploring Finite State Automata with Junun Robots: A Case Study in Computabil...
Exploring Finite State Automata with Junun Robots: A Case Study in Computabil...
 
Image Blur Detection with 2D Haar Wavelet Transform and Its Effect on Skewed ...
Image Blur Detection with 2D Haar Wavelet Transform and Its Effect on Skewed ...Image Blur Detection with 2D Haar Wavelet Transform and Its Effect on Skewed ...
Image Blur Detection with 2D Haar Wavelet Transform and Its Effect on Skewed ...
 
Text Skew Angle Detection in Vision-Based Scanning of Nutrition Labels
Text Skew Angle Detection in Vision-Based Scanning of Nutrition LabelsText Skew Angle Detection in Vision-Based Scanning of Nutrition Labels
Text Skew Angle Detection in Vision-Based Scanning of Nutrition Labels
 
Vision-Based Localization and Scanning of 1D UPC and EAN Barcodes with Relaxe...
Vision-Based Localization and Scanning of 1D UPC and EAN Barcodes with Relaxe...Vision-Based Localization and Scanning of 1D UPC and EAN Barcodes with Relaxe...
Vision-Based Localization and Scanning of 1D UPC and EAN Barcodes with Relaxe...
 
Effective Nutrition Label Use on Smartphones
Effective Nutrition Label Use on SmartphonesEffective Nutrition Label Use on Smartphones
Effective Nutrition Label Use on Smartphones
 
An Algorithm for Mobile Vision-Based Localization of Skewed Nutrition Labels ...
An Algorithm for Mobile Vision-Based Localization of Skewed Nutrition Labels ...An Algorithm for Mobile Vision-Based Localization of Skewed Nutrition Labels ...
An Algorithm for Mobile Vision-Based Localization of Skewed Nutrition Labels ...
 
An Algorithm for In-Place Vision-Based Skewed 1D Barcode Scanning in the Cloud
An Algorithm for In-Place Vision-Based Skewed 1D Barcode Scanning in the CloudAn Algorithm for In-Place Vision-Based Skewed 1D Barcode Scanning in the Cloud
An Algorithm for In-Place Vision-Based Skewed 1D Barcode Scanning in the Cloud
 
Narrative Map Augmentation with Automated Landmark Extraction and Path Inference
Narrative Map Augmentation with Automated Landmark Extraction and Path InferenceNarrative Map Augmentation with Automated Landmark Extraction and Path Inference
Narrative Map Augmentation with Automated Landmark Extraction and Path Inference
 
Skip Trie Matching: A Greedy Algorithm for Real-Time OCR Error Correction on ...
Skip Trie Matching: A Greedy Algorithm for Real-Time OCR Error Correction on ...Skip Trie Matching: A Greedy Algorithm for Real-Time OCR Error Correction on ...
Skip Trie Matching: A Greedy Algorithm for Real-Time OCR Error Correction on ...
 
Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
Skip Trie Matching for Real Time OCR Output Error Correction on Android Smart...
 
Vision-Based Localization & Text Chunking of Nutrition Fact Tables on Android...
Vision-Based Localization & Text Chunking of Nutrition Fact Tables on Android...Vision-Based Localization & Text Chunking of Nutrition Fact Tables on Android...
Vision-Based Localization & Text Chunking of Nutrition Fact Tables on Android...
 
Toward Blind Travel Support through Verbal Route Directions: A Path Inference...
Toward Blind Travel Support through Verbal Route Directions: A Path Inference...Toward Blind Travel Support through Verbal Route Directions: A Path Inference...
Toward Blind Travel Support through Verbal Route Directions: A Path Inference...
 
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
Eyesight Sharing in Blind Grocery Shopping: Remote P2P Caregiving through Clo...
 
Wireless Indoor Localization with Dempster-Shafer Simple Support Functions
Wireless Indoor Localization with Dempster-Shafer Simple Support FunctionsWireless Indoor Localization with Dempster-Shafer Simple Support Functions
Wireless Indoor Localization with Dempster-Shafer Simple Support Functions
 
RFID in Robot-Assisted Indoor Navigation for the Visually Impaired
RFID in Robot-Assisted Indoor Navigation for the Visually ImpairedRFID in Robot-Assisted Indoor Navigation for the Visually Impaired
RFID in Robot-Assisted Indoor Navigation for the Visually Impaired
 

Recently uploaded

Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
ssuser79fe74
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
PirithiRaju
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
Lokesh Kothari
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Sérgio Sacani
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
gindu3009
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Sérgio Sacani
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Sérgio Sacani
 

Recently uploaded (20)

Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdf
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
Creating and Analyzing Definitive Screening Designs
Creating and Analyzing Definitive Screening DesignsCreating and Analyzing Definitive Screening Designs
Creating and Analyzing Definitive Screening Designs
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 

Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode

  • 1. TOWARD REAL TIME EYES-FREE BARCODE SCANNING ON SMARTPHONES IN VIDEO MODE Aliasgar Kutiyanawala1 Vladimir Kulyukin1 John Nicholson2 1 Department of Computer Science, Utah State University. 2Department of Computer Science and Information Technology, Austin Peay State University INTRODUCTION taken continuously and processed by the barcode localization and decoding modules. If a In our previous research [1], we have barcode is decoded, the user is notified through shown that visually impaired (VI) individuals text-to-speech. can shop independently by scanning MSI Interactive Camera Alignment Loop barcodes on shelves and UPC barcodes on products. This system was called ShopTalk and We have previously conducted a lab study used a hand-held barcode scanner, a shoulder- with one VI participant and four blindfolded mounted keypad and headphones connected to sighted participants, where participants had to an ultra-portable OQO computer. ShopMobile-II find, retrieve and verify products from a [2, 3] is the next version of this system that simulated shopping aisle [2]. The participants reduces the system's hardware complexity by scanned MSI barcodes on shelves to find allowing VI users to shop independently using product locations and UPC barcodes on only a smartphone. products to identify them. MSI barcodes are a type of linear 1-D barcodes that are used ShopMobile-II has three software modules – mostly for inventory control, and marking an eyes-free barcode scanner, an OCR engine storage containers and shelves in warehouse and remote guidance. This paper describes our environments [7]. To scan a barcode, barcode scanning algorithm that operates in participants would first align the camera with video mode on the Google Nexus One Android the product or shelf and then slowly move the 2.2 smartphone. Two pilot experiments are camera away. The VI participant would presented: the first one, conducted in a grocery frequently misalign the camera in the pitch and store evaluated the contributions of the yaw planes as he moved it away from algorithm’s modules; the second one, barcodes. This misalignment caused skew performed in a laboratory with two VI users, distortions in barcode images, which resulted in evaluated the effectiveness of the algorithm in several decoding failures. finding UPC barcodes on various grocery products. The interactive camera alignment module is designed to minimize skew distortions by EYES-FREE BARCODE SCANNER keeping the camera aligned with the barcode in the pitch and yaw frames. The shopper starts RedLaser [4] and ZXing [5] are two the loop by pressing the touch screen. The applications for scanning barcodes on system captures the phone's orientation smartphones. However, they require users to sensor's readings of the pitch and yaw planes carefully align the camera with the barcodes for subsequent reference. The system takes prior to decoding and cannot decode MSI these readings as the shopper moves the barcodes. Our algorithm is designed to find camera away from the barcode and compares both UPC and MSI barcodes in real video mode them with the reference readings. When the without prior camera alignment [6]. readings deviate from the reference readings, the phone begins to vibrate until the camera is The eyes-free barcode scanning algorithm is realigned. comprised of three modules – interactive camera alignment loop, barcode localization, and barcode decoding. The barcode scanning algorithm operates in video mode. Images are
  • 2. Barcode Localization – luminance based method (LM), two-level binary method (TLB) and a two-level binary The area of the barcode region in the image method with alternating frequency filter (TLB- varies with the distance between the barcode AF). and the camera. If the camera is held close to the barcode, the barcode region occupies a LM populates the scanline with the central large area in the image and the barcode (n/2th) row of the strip, and each pixel in the decoding stage can easily decode the barcode. scanline pi ∈ [0, 255]. TLB binarizes the strip However, if the camera is held at a distance to using a modified Niblack filter [8] before the barcode, the barcode region is small and populating the scanline with the central row of there is a possibility of other components, such the strip. Each pixel in the scanline pi ∈ {0, text and graphics, being alongside the barcode, 255}. TLB-AF takes this process a step further which may cause a detection failure. Localizing by filtering out areas with low alternating and segmenting possible barcode regions prior frequencies in the binarized strip before to decoding increases the probability of populating the scanline. accurate decoding. The processed scanline is now converted to A barcode is a small homogeneous region a line-widths representation W = {w1, w2 … consisting of alternate black and white lines. wk}). To obtain W, strings of consecutive zeros We define two properties – alternating and ones in the scanline are replaced with their frequency and vertical continuity that run lengths. A separate data structure C = {c1, characterize a region as a potential barcode. If c2, …, ck} records the color associated with a line is drawn horizontally across the barcode, each line-width wi. For example, if the scanline alternating frequency is the number of black to S = {255, 0, 0, 0, 255, 255}, W = {1, 3, 2} white and white to black transitions along that and C= {1, 0, 1}. line. Vertical continuity is the continuity of black Table 1: UPC barcode symbology in line- and white lines along vertical lines. Vertical widths representation. continuity is estimated by the similarity between two parallel horizontal lines, separated Pattern / Digit Template of line widths Tm vertically, placed over the region. The longest Start Pattern 111 common subsequence is used as the similarity Middle Pattern 11111 measure. End Pattern 111 The first step in the barcode localization is Digit 0 3211 to scale the image down to the 320 x 240 resolution for efficiency. This scaled image is Digit 1 2221 passed through a line filter presented in [2], Digit 2 2122 which allows vertical lines to pass through and Digit 3 1411 filters out everything else. The filtered image is Digit 4 1132 scanned in a rasterized pattern to look for areas with high alternating frequencies and Digit 5 1231 vertical continuities. These are translated into Digit 6 1114 the corresponding areas of the original image Digit 7 1312 and segmented from it. Digit 8 1213 Barcode Decoding Digit 9 3112 Our barcode decoding algorithm uses scanlines and consists of three main procedures A UPC barcode consists of two sets of six – strip generation, strip processing, and digits D enclosed by start (S)/end (E) patterns scanline decoding. The strip generation and separated by a middle pattern (M) as procedure selects horizontal and diagonal n- SDDDDDDMDDDDDDE [9]. The start, middle pixel wide strips in the image. The strips are and end patterns as well as the digits are converted to one-pixel wide scanlines. This encoded by a series of alternating black and conversion is achieved through three methods white lines of varying widths. Table 1 shows the
  • 3. UPC barcode symbology in the line-widths shown in Fig. 2, we found that the LM decoded representation. To decode the barcode in the the most barcodes (53), followed by TLB (26) scanline W, we find the start pattern index (s) and finally TLB-AF (15). Only one barcode out and the end pattern index (e) within W using of the 15 decoded by TLB-AF is not decoded by the following equations: the other methods. Hence, this method can be eliminated without a significant impact on the s = arg max( wi −1 − std ( wi , wi +1 , wi + 2 )) overall decoding rate. e = arg max( wi + 3 − std ( wi , wi +1 , wi + 2 )) where, ci = 0. Each digit d is encoded by four lines and the index i of the jth digit djj within W can be found as: i = s + ( j − 1) × 4, if j ≤ 6 i = s + ( j − 1) × 4 + 5, if j > 6 If Tm represents the template of the digit m Figure 1. Contributions of the barcode in Table 1., the value of the jth digit dj can be localization stage. found as follows: 3 d j = arg min( ∑ (w k =0 i+k − Tkm ) 2 ) where, 0 ≤ j ≤ 12 and 0 ≤ m ≤ 9. The twelfth digit is a checksum digit to verify accurate decoding. EXPERIMENTS The objective of the first experiment was to find the contribution of barcode localization as well as the contributions of the three strip processing methods. Our claim is that barcode Figure 2. Contributions of the different strip localization prior to decoding increases the processing methods. decoding rate. To test this claim, a database of 68 product images, which included boxes, cans, To test the accuracy of barcode recognition and bottles, was obtained in a grocery store in video mode, we conducted two single subject with the Google Nexus One smartphone with experiments at the Smith Kettlewell Eye Android 2.2. We then logged the number of Research Institute in San Francisco, CA. The barcodes decoded in the scans with and without software was implemented on the Google the localization stage. As Fig. 1 shows, Nexus One smartphone with Android 2.2. Both localization prior to decoding resulted in an subjects were completely blind staff electrical increase of 14 (20.59%) decoded barcodes. engineers. One had a cellphone; the other never owned or used one. The camera As mentioned earlier, the three methods are alignment module was not tested. The camera used to convert n-pixel wide strip to one-pixel operated in video mode. wide scanlines. We wanted to test the contributions of each method to decoding. As
  • 4. The experiment consisted of a tutorial and In informal feedback collected from both an actual test. In the tutorial, subjects after the experiments, they indicated a each subject was given two sample products (a preference for run time image alignment plastic bottle and a juice box) and was shown signals when the camera is misaligned with the how to move the camera along the surface of object. They also said that the camera should the product. The tutorial continued until each work over a wider range of positions and the subject could detect the barcodes on both software must operate much faster. products without the experimenter's help. The first subject's tutorial took approximately ten CONCLUSION minutes. The second subject's tutorial took approximately eight minutes. During the test, Our experiments indicate that smartphones each subject was given ten products: a cereal can be used for real time eyes-free barcode box, a small tea box, two small juice bottles, a scanning in video mode. Barcode localization small milk carton, a Pringles tube, a toothpaste was observed to improve the decoding rates by box, a larger juice bottle, a small water bottle, as much as 20%. The TLB-AF can be eliminated and a yogurt cup. The detection time for each without a significant reduction in barcode product was recorded on the phone. When the decoding rates. Two VI participants were able subject could not detect the barcode for over to successfully scan most UPC barcodes on five minutes, the detection was considered a various grocery products using our algorithm. failure and the subject was given the next product. The order of the products was REFERENCES randomized for each subject. [1] J. Nicholson, V. Kulyukin, and D. Coster, “ShopTalk: independent blind shopping through verbal route directions Table 2: Results of barcode scanning and barcode scans”, The Open Rehabilitation Journal, ISSN: experiments with VI participants. 1874-9437 Volume 2, 2009, pp. 11-23, DOI Participant 1 Participant 2 10.2174/1874943700902010011. Product [2] V. Kulyukin, and A. Kutiyanawala, “Eyes-free barcode Time False Time False Taken Positives Taken Positives localization and decoding for visually impaired mobile phone users”, Proceedings of the 2010 International Cereal box 33 0 40 0 Conference on Image Processing, Computer Vision, and Tea box 140 0 100 1 Pattern Recognition, 2010. [3] V. Kulyukin, and A. Kutiyanawala, “From ShopTalk to Small juice 15 0 Fail 0 ShopMobile: vision-based barcode scanning with mobile bottle 1 phones for independent blind grocery shopping”, Small juice Proceedings of the 33-rd Annual Conference of the 142 0 151 0 bottle 2 Rehabilitation Engineering and Assistive Technology Society Milk carton 56 0 51 1 of North America, June 2010, Las Vegas, Nevada. Pringles 37 0 111 0 [4] Occipital, LLC. RedLaser http://redlaser.com/ [5] The Zebra Crossing Barcode Decoding Library. Toothpaste 184 0 Fail 0 http://code.google.com/p/zxing/ Large juice [6] Eyes-Free Barcode Scanning in Video Mode on Google 125 0 140 0 bottle Nexus One Smartphone. Water bottle 87 0 121 0 http://www.youtube.com/user/csatlusu#p/u/0/-aiT-Zan7AE [8] Wikipedia, MSI barcode. Yogurt cup 17 0 41 0 http://en.wikipedia.org/wiki/MSI_Barcode. [8] W. Niblack, “An introduction to image processing”, The average barcode recognition times were Prentice-Hall, Englewood Cliff, NJ, pp. 115-1 16, 1986. 83.6 seconds and 93.4 seconds for subject 1 [9] Wikipedia, UPC barcode. and 2, respectively. Subject 2 had two failures http://en.wikipedia.org/wiki/Universal Product Code. where the software failed to detect the barcode in five minutes. There were also two false positives when the software detected a barcode over printed text.