Title: SuperResolution of 1D Barcode Images
1Super-Resolution of 1D Barcode Images
- Todd Wittman, UMN
- Supervised by Miroslav Trajkovic
- Symbol Technologies
- Summer 2004
2Overview
- What is super-resolution?
- Parallel projection on rotated images
- Focal point projection under pitch distortion
- Restricting signal size with ?-projection
- Conclusion and future work
3Imaging Scanners on 1D Barcodes
Scanlines are drawn on the image until one
decodes.
Averaging scanlines improve performance, but we
are basically using a laser scanner approach on
an image.
4Barcode Super-Resolution
- The main advantage of laser scanners over imaging
scanners is that scanlines from a laser scanner
have higher resolution. - But in an image, we have a lot of information
beyond just a single scanline. The larger the
image, the higher the signal resolution should
be. - Super-resolution Can we use the whole 2D image
to get a single high-resolution 1D signal?
Resolution
Image Size
5What Is Super-Resolution?
Super-resolution means we increase the amount of
information, not just the number of data points.
Unfortunately, there is no way to quantify the
effective resolution.
Original
Super-resolution
Doubling the resolution
6Super-Resolution in 1D
Scanline Signal
Super-resolution signal
7In The Grand Scheme of Things
We are here
AGC
Scanning Mechanism
Barcode
Optics
Detector
Amplifier
Filter
Digitizer
Decoder
To Terminal
We are trying to improve the signal sent to the
digitizer.
8The Projection Concept
A scanline only uses a small percentage of the
image.
We project all pixels on the Bresenham line
to the scanline.
- Advantages
- Fast to compute
- Disadvantages
- Sensitive to local noise
- Low resolution
- (Pixel level)
9The Projection Concept
What if we project pixels off the scanline?
Super-resolution We can increase the effective
resolution of the signal!
- Advantages
- Higher resolution
- (Subpixel level)
- 2. More robust to noise
- Disadvantages
- Slower to compute
- Projection unclear
10How Should We Project?
We should trace down each bar to the base of the
barcode image.
The pixels should be similar along the bar
vectors. We are exploiting the unique symmetry
of barcode images to convert a 2D image U(x,y) to
a 1D signal u(t). (Does not apply to other
images. Except pictures of zebras.)
U(x,y)
u(t)
11Why Is This Super-Resolution?
If the image was perfect black and white, then
the projection would not increase the resolution
at all.
Perfect Image
Imperfect Image
Scanline Projection
Scanline Projection
We increase the resolution because images are
imperfect! We make use of the gray values!
12Projection by Angle ?
Suppose our barcode is rotated by a known angle ?.
y
yxtan?
U(x,y)
Project each pixel along a vector orthogonal to
the projection line yxtan?.
u(t)
?
x
A little trigonometry shows the projection
U(x,y)?u(t) is t x sec? z sin?,
z y x tan?
13Degenerate Sampling
Trivially, the projection will not help when the
rotation angle is 0 or 90. Pixels are
projected on top of each other -- degenerate
sampling.
?0
?90
We will only have degenerate sampling when tan?
is a rational number (?0,45,90).
14Non-Uniform Sampling
But when tan? is irrational, the sampling along
the t-axis will be non-uniform.
Also, projecting row by row (raster order) will
result in a signal that needs to be sorted in
ascending t.
15Signal Filtering
Due to noise and discretization, the resulting
projection signal will be rather choppy. These
spikes are easily cleaned up with a mean or
median filter.
Projection
After Median Filter
16Example Code 128-A
Code 128-A barcode not decoded by current
software.
PPM1.1
17Example Code 128-A
Projection Average Scanline Ideal
18Example Code 128-A
Close-up of position 78.
19Example Interleaved 2 of 5
Non-decoded Interleaved 2 of 5 with rotation
angle -24.6
20Example Interleaved 2 of 5
Projection Average Scanline Ideal
21Example Interleaved 2 of 5
Close-up of position 43
22Roll-Pitch-Yaw
Occur when we rotate the barcode or the camera.
23Roll-Pitch-Yaw
Weve already taken care of 2 of the 3
rotations. Roll Weve shown how to handle
roll rotation. Yaw We dont care about
yaw. 1. Yaw is corrected for by
self-clocking. 2. Yaw will not improve the
resolution.
But what about pitch? Projecting under constant
rotation angle ? will not work in the presence
of pitch distortion.
24Pitch The Focal Point
Under pitch, all lines should converge to a
single vanishing or focal point F.
F
We can project each pixel U(x,y) down a ray from
F to a point on the base u(t). The more pitch in
the image, the closer F will be to the barcode.
If the bars are parallel, then F will be at
infinity.
t
So will F be too large for us to calculate?
25Focal Point Illusions
Focal points are closer than they appear.
F(49.5,-300)
F(49.5,-3000)
26How Do We Calculate F?
Theoretically, all lines should intersect at
F. So we calculate F by finding the point that
minimizes the sum of the distance from the lines
l1, l2,..., ln in the least-squares sense.
F
Writing each line in ymxb form, we calculate
directly
27Focal Point Projection
F
Suppose we have base points P1 and P2 and we know
the focal point F. We can calculate the
projection U(x,y)?u(t) by
U(x,y)
P1
P2
u(t)
t
28Line Tracing
To calculate the focal point F, we need to
accurately trace the lines in the image. We trace
up and down from the scanline by tracking
contrast. The pixel to the right should be at
least T units larger (black to white) or smaller
(white to black) U(x,y) U(x1,y) gt T.
We consider only a 3 pixel stencil at each
step. If we didnt find enough lines, we lower
the value of the contrast threshold T and retrace.
29Line Tracing
The tracing is independent of bar orientation,
since we alter the stencil to consider 8 basic
directions. We need only a rough estimate of
bar orientation.
30Line Tracing Results
For most images with sufficient contrast,
contrast tracing generates enough lines to
accurately predict the focal point.
UPC, 59 lines found, T40
31Bounding Box
We can also use the traced results to find a
bounding box for our barcode. We find the linear
regression through each set of points, using
iterative pruning.
This is important so we know which pixels to
project.
32Example Code 39
Focal point projection on Code 39 image with
pitch angle 70.
Scanline Projection
33?-Projection
- If we project every pixel in the image, well end
up with a very long signal. - We can simply project onto a fixed number of
points along the base. - If all points are a distance ? apart, then we our
increasing the effective resolution by a factor
of 1/?. - This approach controls the signal size, obtains a
uniform sampling, and gives the points in sorted
order.
34?-Projection
What should we do with the pixels between the
dotted lines?
35Mean ?-Projection
We take the mean of all pixels whose center is
within a distance ?/2 of the focal line.
So we have combined the mean filter and focal
point projection into a single step.
36Preliminary Results
Early results for this method are promising. Test
set 71 misdecodes of a low PPM Code 39 image.
Current Software 71 misdecodes (100) 0
no-decodes Average Time 120ms Mean ?
Projection 28 correct decodes (39) 43
no-decodes Average Time 2300ms
PPM1.3
37Example Decoding the Misdecoded
The projection uncovers small features in low PPM
images.
Projection Scanline
5 Lines Traced Manually!
38Limitations
- The projection is not appropriate for
- Severely damaged images
- Short barcodes (PDF)
- Removing global noise, blur
- Non-projective distortion (printed on curved
surface)
39Conclusions
- Projection can decode images that were not
decoded or misdecoded by the current software. - The parallel projection method uses image roll to
produce a higher resolution signal. - Focal point projection accounts for and uses
pitch distortion to improve signal resolution. - The ?-projection combines the filtering and
projection into one step and allows us to control
the signal size. - The projection method may prove useful for
decoding low PPM images and checking for
misdecodes.
40Future Work
- Improve line tracing algorithm crucial for both
bounding box and focal point location. - Improve running time narrow bounding box, detect
offset in pixels, make independent of scanline. - Adjust method for tough cases (damaged barcodes,
printed on curved surfaces, high blur, etc.). - Extend to 2D barcodes.
- Streamline the code decrease computation,
integer artihmetic, integrate with current
digitizer/decoder. - How do we quantify resolution and signal quality?
41Thats All Folks!
Thanks for listening! Send comments, questions,
and criticisms to Todd Wittman
wittman_at_math.umn.edu or Miroslav Trajkovic
trajkovm_at_symbol.com