Blind Deconvolution of Corrupted Barcode Signals

Similar documents
Blind Deconvolution of Barcodes via Dictionary Analysis and Wiener Filter of Barcode Subsections

The Image Deblurring Problem

Applications to Data Smoothing and Image Processing I

Numerical Methods For Image Restoration

Computational Optical Imaging - Optique Numerique. -- Deconvolution --

How To Fix Out Of Focus And Blur Images With A Dynamic Template Matching Algorithm

A Symbol-based Bar Code Decoding Algorithm

Physics Lab Report Guidelines

Jitter Measurements in Serial Data Signals

Canny Edge Detection

99.37, 99.38, 99.38, 99.39, 99.39, 99.39, 99.39, 99.40, 99.41, cm

Linear Algebra Review. Vectors

High Quality Image Deblurring Panchromatic Pixels

Data Mining: Algorithms and Applications Matrix Math Review

Lecture 14. Point Spread Function (PSF)

13 MATH FACTS a = The elements of a vector have a graphical interpretation, which is particularly easy to see in two or three dimensions.

Beginner s Matlab Tutorial

SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89. by Joseph Collison

1 Review of Least Squares Solutions to Overdetermined Systems

Least-Squares Intersection of Lines

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS

JPEG compression of monochrome 2D-barcode images using DCT coefficient distributions

MATH APPLIED MATRIX THEORY

CURVE FITTING LEAST SQUARES APPROXIMATION

4F7 Adaptive Filters (and Spectrum Estimation) Least Mean Square (LMS) Algorithm Sumeetpal Singh Engineering Department sss40@eng.cam.ac.

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS. + + x 2. x n. a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2 a 31 a 32 a 3n b 3. a m1 a m2 a mn b m

Clarify Some Issues on the Sparse Bayesian Learning for Sparse Signal Recovery

8 Square matrices continued: Determinants

Machine Learning and Data Mining. Regression Problem. (adapted from) Prof. Alexander Ihler

Assessment. Presenter: Yupu Zhang, Guoliang Jin, Tuo Wang Computer Vision 2008 Fall

Risk Decomposition of Investment Portfolios. Dan dibartolomeo Northfield Webinar January 2014

Biggar High School Mathematics Department. National 5 Learning Intentions & Success Criteria: Assessing My Progress

3D Scanner using Line Laser. 1. Introduction. 2. Theory

Review Jeopardy. Blue vs. Orange. Review Jeopardy

Grade 5 Math Content 1

Torgerson s Classical MDS derivation: 1: Determining Coordinates from Euclidean Distances

The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy

Chapter 19. General Matrices. An n m matrix is an array. a 11 a 12 a 1m a 21 a 22 a 2m A = a n1 a n2 a nm. The matrix A has n row vectors

Component Ordering in Independent Component Analysis Based on Data Power

Measuring Line Edge Roughness: Fluctuations in Uncertainty

A linear combination is a sum of scalars times quantities. Such expressions arise quite frequently and have the form

Current California Math Standards Balanced Equations

Introduction to Matrix Algebra

1 Example of Time Series Analysis by SSA 1

These axioms must hold for all vectors ū, v, and w in V and all scalars c and d.

Linear Programming. March 14, 2014

Creating, Solving, and Graphing Systems of Linear Equations and Linear Inequalities

Partial Fractions. Combining fractions over a common denominator is a familiar operation from algebra:

Adaptive Equalization of binary encoded signals Using LMS Algorithm

High Quality Image Magnification using Cross-Scale Self-Similarity

1 Solving LPs: The Simplex Algorithm of George Dantzig

Math 120 Final Exam Practice Problems, Form: A

Mehtap Ergüven Abstract of Ph.D. Dissertation for the degree of PhD of Engineering in Informatics

General Framework for an Iterative Solution of Ax b. Jacobi s Method

Lecture 5: Singular Value Decomposition SVD (1)

[1] Diagonal factorization

Click on the links below to jump directly to the relevant section

Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches

Matrix Differentiation

Epipolar Geometry. Readings: See Sections 10.1 and 15.6 of Forsyth and Ponce. Right Image. Left Image. e(p ) Epipolar Lines. e(q ) q R.

Overview of Violations of the Basic Assumptions in the Classical Normal Linear Regression Model

EECS 556 Image Processing W 09. Interpolation. Interpolation techniques B splines

5.5. Solving linear systems by the elimination method

5.1 Radical Notation and Rational Exponents

The continuous and discrete Fourier transforms

Low-resolution Character Recognition by Video-based Super-resolution

Khalid Sayood and Martin C. Rost Department of Electrical Engineering University of Nebraska

5 Homogeneous systems

Graphing Parabolas With Microsoft Excel

Linear Threshold Units

Quantitative vs. Categorical Data: A Difference Worth Knowing Stephen Few April 2005

Solving simultaneous equations using the inverse matrix

This unit will lay the groundwork for later units where the students will extend this knowledge to quadratic and exponential functions.

December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B. KITCHENS

Implementation of Canny Edge Detector of color images on CELL/B.E. Architecture.

Descriptive statistics Statistical inference statistical inference, statistical induction and inferential statistics

Predict the Popularity of YouTube Videos Using Early View Data

Descriptive Statistics

Notes for EER #4 Graph transformations (vertical & horizontal shifts, vertical stretching & compression, and reflections) of basic functions.

MATHEMATICS FOR ENGINEERS BASIC MATRIX THEORY TUTORIAL 2

In order to describe motion you need to describe the following properties.

MATHEMATICS FOR ENGINEERING BASIC ALGEBRA

Computational Foundations of Cognitive Science

Vector and Matrix Norms

Linear Programming for Optimization. Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc.

Enhancing the SNR of the Fiber Optic Rotation Sensor using the LMS Algorithm

RSA algorithm for blurred on blinded deconvolution technique

Lecture Notes Module 1

Bildverarbeitung und Mustererkennung Image Processing and Pattern Recognition

3.1. Solving linear equations. Introduction. Prerequisites. Learning Outcomes. Learning Style

Logo Symmetry Learning Task. Unit 5

Bayesian probability theory

Temperature Scales. The metric system that we are now using includes a unit that is specific for the representation of measured temperatures.

CALCULATIONS & STATISTICS

Uses of Derivative Spectroscopy

SECTION 0.6: POLYNOMIAL, RATIONAL, AND ALGEBRAIC EXPRESSIONS

POLYNOMIAL FUNCTIONS

HSI BASED COLOUR IMAGE EQUALIZATION USING ITERATIVE n th ROOT AND n th POWER

APPM4720/5720: Fast algorithms for big data. Gunnar Martinsson The University of Colorado at Boulder

Transcription:

Blind Deconvolution of Corrupted Barcode Signals Everardo Uribe and Yifan Zhang Advisors: Ernie Esser and Yifei Lou Interdisciplinary Computational and Applied Mathematics Program University of California, Irvine NSF PRISM grant DMS-0928427 August 18, 2012 Abstract Blind deconvolution of a barcode involves the recovering of a recognizable barcode from a barcode signal corrupted by two processes, convolution with a blurring Gaussian kernel and the addition of noise, both of which are defined by unknown parameters. Several approaches to this problem exist but the efficiency of blind deconvolution has remained an issue due to the unknown distortion parameters and their possibly large effects on the signal. Our approach is to reconfigure the corruption equation, given certain assumptions, and reduce the problem to a least square problem that uses this reconfigured equation, with regularizations. This approach results in a simple and inexpensive algorithm for blind deconvolution that produces relatively accurate results for barcode signals with low levels of noise and blur. 1 Introduction Barcode deconvolution is the process of restoring a signal from an erroneously observed, or corrupted, signal. The corruption process for a 1-D signal can be modeled by the following equation: 1

f = k u + n (1) where denotes the 1-D convolution operator, f denotes the distorted barcode signal received by the barcode reader, k is the convolution kernel, u is original barcode signal recognizable within the database, and n is the additive noise. The corruption of a barcode signal can be modeled the same way. There are two broad types of deconvolution: blind deconvolution and non-blind deconvolution. The difference between non-blind deconvolution and blind deconvolution of an observed barcode signal is that the non-blind deconvolution process is facilitated with the knowledge of corruption parameters, while the blind-deconvolution process involves little or no a priori knowledge of the corruption parameters. Barcode systems are an essential component of the business world as they allow one to expeditiously retrieve information on products, resulting in an economy with accelerated decision-making. Barcode systems are progressively being implemented as sources of information within the social networking culture. This has resulted in the implementation of barcode reading software within smartphones. These programs analyze an image of a barcode taken by the phone s camera. This is where problems arise. Images taken by the camera can often be affected by blur and random noise. The result is an unrecognizable barcode. Blind deconvolution allows the retrieval of a recognizable barcode despite the unknown parameters of blur and noise. By implementing a proper blind deconvolution algorithm, the retrieval of information and decision-making can be accelerated. Furthermore, the investigation of blind deconvolution of barcode signals could potentially be extended to other applications of signal processing. One classical approach to the barcode deconvolution problem is Wiener deconvolution explained in [4]. This method only works effectively when the parameters of distortion are known. Experimentally, beyond a certain amount of noise and blurring, this approach is ineffective in constructing the original barcode signal. In [1], Esedoglu discusses the simple barcode reconstruction approach of finding local extrema of the derivative of the corrupted barcode signal, using edge filters, and relating them to each other in order to reconstruct the original barcode. This process isnt effective when the barcode signal is 2

corrupted with noise because of the sensitivity of finding local maxima and minima. Additionally, when the standard deviation of the convolution kernel is large enough, it is hard to derive the edges of the original barcode signal. Esedoglu then goes on to discuss his approach to blind barcode deconvolution: total variantion denoising via gradient descent. He concludes that his blind deconvolution approach performs accurately with signals affected by high blur and noise. However, the speed of the algorithm is very slow, degrading the efficiency of this approach. Some blind image deconvolution methods exist, as shown in [2], [3], which may be applicable to barcode signal deconvolution. In [2] and [3], the methods used involve the assumption that the original image and the blur kernel, described as a point-spread function (PSF) with which the original image is convoluted, are irreducible: an irreducible signal cannot be exactly expressed as the convolution of two or more component signals of the same family [2]. However, the observed barcode signals PSF is not necessarily irreducible. One blind deconvolution method is established in [5]. This method builds upon the symmetric property of the blur kernel, described as a PSF. It takes advantage of this symmetric property, by reconfiguring the standard signal distortion equation (1) and eliminating the unknown kernel from the equation. [5] provides theoretical analysis and experimentation to validate this approach. In conclusion, this method doesnt require that the observed barcode signals PSF be irreducible, only symmetric. However, it does require that the original barcode be irreducible [2], [5]. 2 Problem Strategy For our investigation, we use a particular barcode generation method to create our data. This method involves representing a barcode signal as a vector of zeros and ones. This representation is closely related to the UPC barcode structure. It produces a vector of zeros and ones to represent the first five digits of the UPC barcode. It then produces a vector of zeros and ones to represent the middle bars of the barcode, which are the same for all barcodes. Finally, it produces a vector representation for the last five digits of the UPC barcode, which are optical inverses of their potential representations of the first five digits. These three vectors are then concatenated to form one vector we call the clean barcode signal. We take this clean barcode signal and generate a higher resolution barcode signal by stretching the signal by a factor 3

of twelve. The next step is creating a Gaussian blur kernel, or point-spread function, defined by using a standard deviation parameter. This standard deviation represents a a multiple of the minimum bar width of our data, which in our experimentation is 12. So if we had a standard deviation of 1, this would actually be defined as 12. The higher resolution barcode signal and kernel are then convoluted to obtain a blurry barcode signal. We then add white Gaussian noise to the blurred barcode signal. A logically simple approach to the blind deconvolution problem is to simply threshold the corrupted signal. This is almost never effective because the distortion heavily manipulates the amplitude and wavelengths of the signal. We then investigate the methods described in [5]. For our data, the Gaussian blur kernel is a symmetric point-spread function. Thus, we take the same approach of reconfiguring the signal distortion equation in order to eliminate the Gaussian blur kernel from the equation, taking advantage of the kernels symmetric characteristic. We temporarily ignore noise to further simplify this equation. The result is a minimization problem. We also take into account and take advantage of the structure of our barcode signal. Knowing that the signal is a concatenation of three vectors, where the middle vector is always the same, allows us to segment the matrices of the equation and further simplify the equation along with the minimization problem. 3 Analysis and Experimentation Restoring a blurred dimension barcode involves solving for u from equation (1). However, this is very difficult with little knowledge of the Gaussian kernel k and the original signal. However, we do know two pieces of useful information. We know that the kernel is symmetric and we know that the middle segment of every UPC barcode is the same. This information can be used to derive a mathematical model with which we can work with in order to solve for the original barcode signal via blind deconvolution. 3.1 Derivation of Model We have equation (1) but we replace f with y to avoid confusion. 4

We start by noting that k is a symmetric point-spread function. Since it s symmetric, flipping it will produce an equivalent: k = k = F k Note that: we use the breve acccent to denote a flipped parameter and that F is the matrix used to flip the point-spread function. We then flip the entire equation and begin reconfiguration: y = k ŭ + n We convolute this flipped equation with u, the clean barcode signal. y u = k ŭ u + n u We can then rearrange the components k ŭ u and simplify the equation to: y u = y ŭ n ŭ + n u We then replace y, y, n, and n with their matrix representations, denoted as their uppercase alternates. We also replace ŭ with its equivalent, F u. Y u = Y F u NF u + NU We can move everything to one side and produce the following equation: [ Y Y F + NF N]u = 0 If we ignore the noise, the matrix simplifies to the two first components and we can name this A: So we have an equation to solve for: A = [ Y Y F ] Au = 0 We replace u with x because x is the estimated signal we are solving for: Ax = 0 (2) 5

We can now take into account the fact that all barcodes have the same middle bar dimensions. In our case, the middle bars of our data are represented as a vector, [0 1 0 1 0]. We begin by thinking of A and x as matrices and we can segment these matrices into three parts: x 1 [A 1, A 2, A 3 ] x 2 = 0 x 3 This matrix multiplication is equivalent to: A 1 x 1 + A 2 x 2 + A 3 x 3 = 0 Now we can separate the known component, A 2 x 2 from the unknown components: A 1 x 1 + A 3 x 3 = A 2 x 2 We can say the known component is equal to b and the sum of unknown components as the product of à and x. The result is a simplified equation: à x = b (3) We can use this equation to solve for x and then adding the x 2 component back into the middle of x to obtain the estimated original barcode signal, x. Furthermore, we define the error rate of an estimated barcode signal: 1 N n x i u i (4) i=1 This equation takes the absolute value of the difference between the deconvolved signal and the original signal and then calculates the overall mean of the components. 6

3.2 Gradient Projection We started with three optimization methods that seemed to be a good fit for this problem. First, we started with gradient projection, which is an iterative method of gradient descent. Gradient descent is a first order optimization algorithm which finds the minimum of a function. We decided to use gradient projection because it allows us to set a range for our projection, which in our case is between zero and one. We descend in the negative direction to find the local minimum and project the results between zero and one. The equation for gradient descent is: and the equation for gradient projection is u n+1 = u n dt F (u n ) (5) u n+1 = Π [0,1] (u n dt F (u n )) (6) The only difference between these two equations is the projection done in equation (6) which is represented by the pi symbol. In both of these equations, dt is simply an increment value calculated using, with A being 1 A T A the blurred matrix that we are trying to deconvolve. We applied this method using a barcode signal corrupted by a noise parameter of 0.0005 variance and a Gaussian blur kernel defined by a standard deviation of 1. We then thresholded the new ũ signal at 0.5, the deconvolved signal was under-fitted when compared with the clean signal, except for the middle 60 dimensions that were already known. 7

The blue graph is the clean signal and the red graph is the deconvolved signal using gradient projection. Clearly, there are many points in which the deconvolved signal does not match up with the clean signal. This is because most of the signal is thresholded down to zero. Next, we ran the program iteratively with noise variance going from 0.0001 to 0.002 with an increment of 0.0001 and with blur variance going from 0.5 to 1.5 with an increment of 0.05. We then produced a color map displaying the error rates for each iteration. However, we were not able to obtain a color map as the computer ran out of memory and crashed. This demonstrated that using gradient projection is not the most optimized method to deconvolve corrupt barcode signals. It is a very costly algorithm that requires a high run time. 3.3 Total Least Squares The second method that we tried was total least squares optimization, which is a least squares data modeling procedure that not only considers observational errors but also errors that there could be in matrix Ã, the consisting of a concatenation of A 1 and A 3. This is very good because since we do not know the Gaussian blur kernel, k, we will not know if there are noise errors in Ã, and total least squares takes these errors into account. The equation that we use for this total least squares approach is: ũ = V Ab V 1 bb (7) In order to obtain matrix V, we first create a new matrix C, which is a concatenation of à and b. C = [ à b ] (8) Then, we take the singular value decomposition of C, which is a factorization of C that returns three new matrices: U, Σ, and V T. U is a unitary matrix, Σ is a diagonal matrix where all the non-negative real numbers are on the diagonal, and V T is the transpose of V. [ VÃà V = V ] à b (9) V bã Next, we plotted the deconvolved signal of a barcode signal with 0.0005 noise variance and a blur variance of 1, and thresholded at 0.5. The signal was over-fitted when compared with the original clean signal. V b b 8

Once again, the blue graph is the clean signal and the red graph is the deconvolved signal, using the total least squares optimization. Even though the deconvolved signal matched up at areas where the clean signal existed, the deconvolved signal also existed in areas where the clean signal didn t exist. Next, we ran the program iteratively with noise variance from 0.0001 to 0.002 with an increment of 0.0001 and a blur variance from 0.5 to 1.5 with an increment of 0.05. We produced a color map of error rates for each iteration. Note that the blur variance inreases as we go to the right on the x-axis. The noise variance increases as we go down the y-axis. 9

This color map illustrates rather high error rates. The dark blue squares represent low error rate, less than 10 percent, and the red squares represent significantly high error rates, greater than 35 percent, with other colors of the spectrum representing error rates in between. It seems the change in the blur level does not affect the errors dramatically; but different noise levels affect the accuracy of the results. When there are small noise errors in Ã, there are actually more errors, and as the noise level increases, the method starts to do better and better. Therefore, total least squares optimization seems to only work on data with extremely large noise errors in Ã. Consequently, total least squares is not an efficient optimization method. 3.4 Least Squares The third optimization method that we tried was a least squares implementation. Least squares optimization is a data fitting model for estimating unknown parameters by minimizing the sum of squares of errors of each result. This method only considers observational errors, unlike total least squares which also allows for errors in Ã. The equation that we use for minimizing the sum of squares for our data is: 1 min à x x 2 b 2 (10) and the equation for solving x using least squares is ũ = (A T Ã) 1 ÃT b (11) Next, we plotted the deconvolved signal of a barcode signal with 0.0005 noise variance and a blur variance of 1, and thresholded at 0.5. 10

Again, the clean signal is in blue and the deconvolved signal, using least squares optimization, is in red. Even though this is not an exact match to the original clean signal, it is significantly better than the results obtain from gradient projection and total least squares. Most of the signal is overlapped correctly, except there are some areas that are over-fitted and some areas under-fitted. However, this is a fairly accurate result for a blind deconvolution approach. Afterwards, we ran the program iteratively with noise variance from 0.0001 to 0.002 with an increase of 0.0001 each time and a blur variance from 0.5 to 1.5 with an increase of 0.05 each time, and displayed a result of the error rates for each iteration of different noise and blur levels. In general, the color map representation showed that least squares optimization did very well because most of the color map had blue squares. The highest error was 40 percent compared to the maximum of 45 percent (and higher) in total least squares. It seems that as the blur level increases, the error rate increases. Thus, this method is not very accurate with a very high blur level. Still, this optimization method is the most accurate one that we tried and definitely deconvolves the blurry signal, producing a better fitting than the gradient projection and total least square approaches. 4 Conclusion We apply a blind deconvolution approach to recover the barcode signal with known structures of the original barcode signal. Least square optimization offers the best results compared with gradient projection and total least 11

square optimization. Although the least squares optimization approach to the blind deconvolution of corrupted barcode signals was the most efficient of the three methods explored, improvements can be made. Regularization terms could be integrated into the least squares optimization algorithm to take better account of blur and noise. We would then run experiments to visually and quantitatively analyze the efficiency. A second possible exploration is to translate the recovered barcode signal into the string of numbers that we are interested in reading and comparing this string of numbers with a database of barcode digit strings. We could also analyze our blind deconvolution methods by applying them to real data, images of barcodes from smartphones. References [1] S. Esedoglu. Blind deconvolution of bar code signals. 2003. [2] D. Kundur and D. Hatzinakos. Blind image deconvolution. 1996. [3] D. Kundur and D. Hatzinakos. Blind image deconvolution revisited. 1996. [4] C. Solomon and T. Breckon. Fundamentals of digital image processing: A practical approach with examples in Matlab. Wiley-Blackwell, 2011. [5] J. Wang Y. Lou, Z. Bin and M. Jiang. Blind deconvolution for symmetric point-spread functions. Conf Proc IEEE Eng. Med. Biol. Soc. 2005. 12