Abstract:
A new framework for extending monochrome barcodes to color is provided. The new framework offers higher data rates and enables new functionalities than are available with conventional monochrome barcodes. In an embodiment of the present invention, the framework encodes independent data in each of the cyan, magenta, and yellow print colorant channels commonly used in color printing and decodes the data from each of the complementary red, green, and blue channels in capture color channels. The framework effectively increases the capacity of monochrome barcodes by a factor of three. In an embodiment of the present invention, a physical model based approach is adopted to mitigate the effect of cross-channel interference among the print-colorant channels and capture color channels. In an embodiment of the invention, a pilot block methodology is proposed to estimate the model parameters and enable cross-channel interference cancellation. In an embodiment of the invention, an expectation maximization (EM)-type methodology is proposed to estimate the model parameters and enable cross-channel interference cancellation.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to a system and method encoding and decoding barcodes. More specifically, the present invention relates to a method and system for encoding and decoding a two-dimensional color barcode. 
         [0003]    2. Description of the Prior Art 
         [0004]    Monochrome 2-D barcodes, a natural extension of 1-D counterparts, have become omnipresent with the increased popularity of mobile imaging devices, facilitating the emergence of a number of mobile applications. Optical machine readable encodings of digital data in image formats, commonly referred to as barcodes, have long been utilized for tagging objects with identification and tracking data for automating sales and inventory tracking tasks. The barcode name is derived from the traditional one-dimensional version of such encodings, where vertical bars are utilized to represent data, but is now used more generically to encompass almost all forms of data encoding in image formats that use either one-dimensional or two-dimensional (2-D) representations. 
         [0005]    Monochrome 2-D barcodes have recently become very popular in mobile applications for a couple of reasons. Firstly, the camera phones inherently capture 2-D images and can therefore be directly used with 2-D barcodes, unlike conventional laser-based 1-D barcode scanners that would require hardware modifications for capturing 2-D barcode images. Secondly, equally importantly, the 2-D codes offer high enough rates (per unit substrate area) to provide a viable mechanism for bridging between the physical world of print and the cyber world of the Internet. In particular, the most common uses of 2-D barcodes are for the purpose of facilitating access to online information about products and services advertised in print media such as magazines, posters, and billboards. The universal resource locator (URL) for the online information is embedded within the print as a 2-D barcode, which can be captured with a cell phone camera, and, upon decoding, allow the user to access the information without the tedium of manually entering the URL. Among the various options available for 2-D barcodes, for mobile applications, the (monochrome) quick response (QR) code is used most extensively in practice. The QR code standard defines a flexible solution with competitive data rates, support for multiple character sets, features for rapid and robust synchronization under lighting and orientation variations, multiple data density designs, and built in variable error correction capability for handling differing application requirements. 
         [0006]    Although 2-D codes have higher capacity than their 1-D counterparts, innovations that further increase their capacity are of considerable interest because they allow for either: a) a reduction in the substrate foot-print that these codes consume in print media, b) additional information with the same substrate footprint, c) greater robustness, or some combination thereof. Specifically, in situations where 2-D barcodes are used to connect a user with a URL associated with a product advertisement, the additional data capacity can be utilized for encoding information on the publication or location of the advertisement, which can be invaluable for assessing effectiveness of advertisement and corresponding ad-monetization. 
         [0007]      FIGS. 1  ( a )-( c ) show the most popular monochrome 2-D barcodes being used in several applications. Although designs of these barcodes are perceptually very different, all of them share common characteristics. A 2-D barcode is typically composed of synchronization symbols and a data field. Synchronization symbols, also called finder patterns, are independent of the encoded information and enable barcode localization in the captured image. The data is encoded, typically in the form of black and white rectangular symbols, in the remaining barcode region called the data field. Most barcodes use a form of error correction codes such as the Reed-Solomon, to account for possible errors during the acquisition phase. Table 1 provides the average parameters for a QR code. 
         [0000]    
       
         
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 AVERAGE QR CODE PARAMETERS USED IN 
               
               
                 COMMERCIAL APPLICATIONS. 
               
             
          
           
               
                   
                 Property 
                 Value 
               
               
                   
                   
               
               
                   
                 Dimension (mm) 
                 21.8 × 21.8 
               
               
                   
                 Num. of modules 
                 29 × 29 
               
               
                   
                 Module size (mm) 
                 0.75 
               
               
                   
                 Avg. data length (bytes) 
                 32 
               
               
                   
                   
               
             
          
         
       
     
         [0008]    The Quick Response code (“QR code”) encodes data in a grid spanning three distinct synchronization symbols located at the corners of the barcode as shown in  FIG. 1  ( a ). QR code is the most commonly used barcode in mobile applications due to its capacity (up to 3000 bytes), flexibility and robustness, and having no license fee for commercial use. Similarly, Aztec code is frequently used in electronic ticketing applications. Symbols are arranged in layers winding around the central localization and synchronization symbol. Aztec code can encode up to 2000 bytes and has a better ratio of the data field to finder pattern size compared to the QR, but is significantly more sensitive to localization errors. 
         [0009]    In order to increase the data rates of monochrome 2-D barcodes, color barcodes have recently been proposed for mobile applications. Amongst the most popular solutions are Microsoft High Capacity Color Barcode. The High Capacity Color Barcode is the one of the first barcode designs that exploits color for encoding data. The barcode is composed of a number of colored triangles arranged in rows on a black background as shown in  FIG. 1  ( d ). Those rows are interleaved with white lines that are used for orientation and synchronization. Selected triangular symbols in the bottommost row provide color reference. The ColorCode is another design that uses color to encode data. It is a 5×5 matrix of colored squares, of which an ‘L’ shaped border is used for synchronization and parity check. Current version of the barcode supports encoding of only 10 digits. 
         [0010]    There is a need for alternative techniques for encoding data in color barcodes that offer higher data rates than existing monochrome designs and greater robustness and simplicity than the existing color barcode technology options. The present invention addresses these needs. 
       SUMMARY OF THE INVENTION 
       [0011]    Because cell phone cameras inherently capture color rather than monochrome images, a way to increase the capacity of 2-D barcodes for mobile applications, is to exploit the “spectrum diversity” that the red (R), green (G), blue (B) camera (e.g., capture) color channels offer. This approach is also attractive because magazines, newspapers, posters, and billboards, in which barcodes are commonly embedded for providing mobile connectivity, are already printed in color, with the exception of the barcode region. 
         [0012]    A new framework for extending monochrome barcodes to color is provided. The new framework offers higher data rates and enables new functionalities than are available with conventional monochrome barcodes. In an embodiment of the present invention, the framework encodes independent data in each of the cyan, magenta, and yellow print colorant channels commonly used in color printing and decodes the data from each of the complementary red, green, and blue channels in capture color channels. The framework effectively increases the capacity of monochrome barcodes by a factor of three. In an embodiment of the present invention, a physical model based approach is adopted to mitigate the effect of cross-channel interference among the print-colorant channels and capture color channels. In an embodiment of the invention, a pilot block methodology is proposed to estimate the model parameters and enable cross-channel interference cancellation. In another embodiment of the invention, an expectation maximization (EM)-type methodology is proposed to estimate the model parameters and enable cross-channel interference cancellation. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The embodiments of the invention are pointed out with particularity in the appended claims. However, other objects and advantages together with the operation of the invention may be better understood by reference to the following detailed description taken in connection with the following illustrations, wherein: 
           [0014]      FIGS. 1(   a )-( d ) depict prior art 2-D barcodes encoding the University of Rochester website url: http://www.rochester.edu. 
           [0015]      FIG. 2  depicts per-channel based data encoding using three print colorant layers of Cyan, Magenta, and Yellow according to an embodiment of the present invention. 
           [0016]      FIG. 3  depicts data recovery using color interference cancellation according to an embodiment of the present invention. 
           [0017]      FIG. 4  depicts color barcodes created according to embodiments of the invention, the pilot blocks used for localization of the barcode are additionally printed using selected colorant combinations in order to facilitate estimation of cross-channel interference parameters in one embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    This application hereby incorporates by reference in its entirety U.S. provisional application No. 61/546,209 filed Oct. 12, 2011. In order to better illustrate the advantages of the invention and its contributions to the art, embodiments of the invention will now be described in detail. 
         [0019]    A method and system for encoding and decoding a two-dimensional color barcode according to an embodiment of the invention is provided. According to an embodiment of the invention, the system includes a processor to execute computer program instructions, a memory to store the computer program instructions executable by the processor; and computer program instructions stored in the memory and executable to perform the method of encoding and decoding a two-dimensional color barcode. In an embodiment of the invention, the method of data encoding includes extending monochrome barcodes to color printed using three layers of Cyan (“C”), Magenta (“M”) and Yellow (“Y”) colorants corresponding to the subtractive color primaries. As shown in the  FIG. 2  embodiment of the invention, each colorant layer carries independent data m 1 , m 2 , and m 3 . The colorant layers are printed in overlay, and thereby physically superimposed, to generate the 2-D color barcode. Data is encoded in each colorant layer utilizing the error correction coding available to monochrome counterpart to allow error recovery for data extraction from a capture of the barcode. 
         [0020]    In an embodiment of the invention, the method enables encoding of one or more colorant layers at different times. In an embodiment of the invention, the method enables encoding of one or more colorant layers at different locations. In an embodiment of the invention, the synchronization patterns are provided in a plurality of regions for the 2-D color barcode wherein at least two different spatial regions of said patterns are comprised of different pre-determined combinations formed by choosing one or more of the colorants. In an embodiment of the invention, a colorant layer can encode data including, but not limited to, a universal resource locator, information about services, products, entities, individuals, and tracking data. 
         [0021]    In an embodiment of the invention, the method of decoding a two-dimensional color barcode includes recovering the data embedded in the barcode from a captured image. In an embodiment of the present invention, the image of the 2-D color barcode is captured with a camera including, but not limited to, a cell phone camera.  FIG. 3  shows the data recovery process according to an embodiment of the invention. In the  FIG. 3  embodiment of the invention, the captured 2-D color barcode is first localized and separated into R, G and B color channels, typically used in capture devices. Ideally, the R, G, and B channels of localized captured 2-D color barcode correspond to inverted versions of the complementary C, M, and Y colorant layers with no cross-interactions between the camera channels and the non-complementary colorants. The encoded data in C, M, and Y print colorants would then be extracted from R, G, and B capture channels, respectively. 
         [0022]    In reality, however, there is significant cross-channel coupling among the printer and camera color channels as shown in  FIG. 3 . In an embodiment of the invention, the R, G, and B camera sensor channels capture not only the complementary C, M, and Y printer colorant channels but also see significant interference from other non-complementary channels. Empirical evidence based on practice of the embodiments of the inventions suggests that the color interference is more pronounced in green and blue sensor channels due to the spectral characteristics of the subtractive printing primaries and additive capture channels; this information may be exploited in the decoding process though is not essential for practicing the proposed invention. In order to recover the encoded data from each color channel according to an embodiment of the invention, a color interference cancellation algorithm that estimates the C, M and Y colorant layers from the R, G, and B channels of the captured barcode is provided. The encoded data is then extracted from each estimated colorant channel. The steps shown in  FIG. 3  are described next in detail. 
         [0023]    In an embodiment of the invention, the method performs localization since the 2-D color barcode captured with a cell phone is typically geometrically distorted. The invention contemplates using different localization techniques to compensate for geometric distortions for different barcodes. In an embodiment of the invention, a localization technique is performed by converting the captured barcode from color to grayscale and using the same localization algorithm of the monochrome counterpart on the grayscale image. 
         [0024]    In an embodiment of the invention, the method performs color interference cancellation to overcome the cross-channel color-interference utilizing a physical model for the print and capture process. In an embodiment of the invention, the C, M, and Y colorants are transparent (e.g., non-scattering). The print is modeled using the transparent version of Kubelka-Munk theory, or the Beer-Bouguer law, as (t i (λ)) 2 =10 di(λ) , where d i (λ) is the optical density for the i th  colorant layer (under to and fro passage), where (i⊂{C, M, Y}). The binary colorant layers of the 2-D color barcode are represented as bi-level images I i (x, y) (iε{C, M, Y}), where I i (x, y) is ‘1’ in regions where the i th  colorant is printed and ‘0’, otherwise. The spatial pattern of spectral reflectance of the printed barcode can then be approximated as: 
         [0000]        r ( x,y ;λ)= r   w (λ)10 −Σ     iε{C,M,Y}     d     i     (λ)I     i     (x,y)   (1)
 
         [0000]    where r w (λ) is the spectral reflectance of the barcode substrate (e.g., paper). 
         [0025]    If the spectral sensitivity of the R, G, B capture channels is represented by s k (λ), kε{R,G,B}, the three channels in the image captured by the digital camera can be expressed as I k   s (x, y)=∫s k (λ)r(x,y; λ)d λ, kε{R,G,B}. In an embodiment of the invention, due to variations in lighting, the model does not apply on an absolute basis. In an embodiment of the invention, the spatial variations in lighting, however, impact all colorant channels identically and can be handled after our proposed processing. We further approximate the spectral sensitivities of R, G, B camera color channels as Dirac delta functions s k (λ)=d k δ(λ−λ k ) at corresponding wavelengths λ k , kε{R, G, B}, which, with allows us to write the normalized optical densities corresponding to the three captured channels as 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             d 
                             k 
                           
                            
                           
                             ( 
                             
                               x 
                               , 
                               y 
                             
                             ) 
                           
                         
                          
                         
                           = 
                           def 
                         
                          
                           
                          
                         
                           - 
                           
                             
                               log 
                               10 
                             
                             ( 
                             
                               
                                 
                                   I 
                                   k 
                                   s 
                                 
                                  
                                 
                                   ( 
                                   
                                     x 
                                     , 
                                     y 
                                   
                                   ) 
                                 
                               
                               
                                 
                                   I 
                                   k 
                                   s 
                                 
                                  
                                 
                                   ( 
                                   W 
                                   ) 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                          
                         
                           
                             ∑ 
                             
                               i 
                               ∈ 
                               
                                 { 
                                 
                                   C 
                                   , 
                                   M 
                                   , 
                                   Y 
                                 
                                 } 
                               
                             
                           
                            
                           
                             
                               d 
                               k 
                               i 
                             
                              
                             
                               
                                 I 
                                 i 
                               
                                
                               
                                 ( 
                                 
                                   x 
                                   , 
                                   y 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where I k   s (W) is the captured image value corresponding to the paper substrate in the k th  camera channel and d k   i =d i (λ k ). Note that the linear relation in (2) between the densities corresponding to camera responses and print colorant channels allows us to perform interference cancellation and estimate the print colorant channels from the camera color channels provided that the optical density of the colorant layers in the camera channels d k   i &#39;s for all kε{R, G, B} and iε{C,M,Y} are available. Specifically, denoting by D the matrix whose i th  column is [d R   i , d G   i , d B   i ] T , we see that under the model of (2) the printed binary channels I=[I C , I M , I Y ] T  at a given location (x, y) are obtained from the recorded density d=[d R   i , d G   i , d B   i ] T  at that location by 
         [0000]        I=D   −1   d   (3)
 
         [0000]    Although the model of (2) makes several simplifying assumptions, it captures the first-order behavior of the print and capture processes. 
         [0026]    In an embodiment of the invention, based on (3), the printed binary channels I is estimated from the density matrix d calculated from the captured barcode. In a practical application however, we typically don&#39;t know D, which varies depending on several factors including printer, capture device, illumination etc. Two alternative approaches for estimating D include, but are not limited to, a Pilot Block Approach and EM-Type Approach. 
         [0027]    In an embodiment of the invention, the Pilot Block Approach implements a customized design of color barcodes for the purpose of estimating D. In an embodiment of the invention a number of pilot blocks are designed in the 2-D color barcode. In the  FIG. 4  embodiment of the invention, six pilot blocks are included in the design of the barcode. These pilot blocks correspond to six combinations of the colorant layers, in particular C, M, Y, CM, CY, and MY, where the latter three represent the printer blue, green, and red, respectively. In terminology used in the context of modeling color printers, these are a subset of the so-called Neugebauer printing primaries. 
         [0028]    In an embodiment of the invention, when encoding pilot blocks, the positioning marks available in several monochrome barcodes to allow quick detection of the barcode pattern by the decoder are used. These positioning marks do not carry data and enable synchronization at the decoder.  FIG. 4  shows example pilot block encoding in positioning marks for both QR and Aztec codes. In an embodiment of the invention, when obtaining an estimate of D, the R, G, B values sensed by the digital camera for the positioning marks shown in  FIG. 4  for QR and Aztec codes that correspond to printing of the colorant combinations C, M, Y, CM, CY, and MY are used. After finding the positioning marks in the barcode the normalized R, G, B channel optical densities are computed for each pixel contained inside the positioning marks and an estimate of D is obtained from these observed values and the known input values I C , I M , and I Y  for these pixels via a constrained least-squares fit to the model of (2), where D is restricted to be positive. 
         [0029]    In an embodiment of the invention, the EM-Type Approach provides an estimation of D without requiring pilot blocks. In an embodiment of the present invention, the EM-Type Approach uses an iterative algorithm to estimate I and D simultaneously, treating these quantities as hidden and latent variables in an expectation maximization (EM) style formulation. Specifically, the integer constraints on I are relaxed, treating these instead as variables constrained to lie between 0 and 1, which may alternatively be interpreted as probabilities of the corresponding colorant being printed at the given pixel location. The problem of estimating I and D as an optimization problem that seeks to minimize the cost function ∥DI−d∥ 2  is then formulated. Because of hidden and latent variables in the cost function, the overall estimation process as an alternating least squares minimization as indicated in Algorithm 1 is formulated. In an embodiment of the invention, each iteration of the algorithm alternates over minimization of the cost function over D and I in two sequential steps. In this process, the constraint 0≦I≦1 is imposed based on our proposed relaxation and additionally, based on the physical model, we constrain D to include only positive entries. The algorithm is initialized by setting D to 3×3 identity matrix. This corresponds to the idealized assumption that the RGB sensor channels capture the printing in the complementary CMY colorants with no color interference. The algorithm is terminated once the improvement in the objective function falls below a predetermined threshold τ. Note that the relaxation of the integer constraint on I in Algorithm 1 also renders the problem computationally tractable; the integer constrained problem is NP (nondeterministic polynomial time) hard. For computational and memory efficiency, the computations for Algorithm 1 may be performed over a subset of the pixels in the image. The print colorant channels I can then be estimated by using (3) with the estimate of D obtained via Algorithm 1. 
         [0000]    
       
         
               
             
               
               
             
               
               
               
             
               
               
               
               
             
               
               
               
             
               
               
               
               
             
               
               
               
             
               
               
             
           
               
                   
               
               
                 Algorithm 1: EM-type algorithm to estimate D. 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 input : RGB scan of the barcode 
               
               
                   
                 output: D 
               
               
                   
                 begin 
               
               
                 | 
                 Initial: Set D to 3 × 3 identity matrix : 
               
               
                 | 
                 repeat 
               
             
          
           
               
                   
                 | 
                 Setting D to its current estimate, minimize the cost function over I: 
               
             
          
           
               
                   
                   
                 | 
                 
                   
                     
                       
                         
                           minimize 
                           I 
                         
                          
                         
                             
                         
                          
                         
                           
                              
                             
                               DI 
                               - 
                               d 
                             
                              
                           
                           2 
                         
                       
                     
                   
                 
               
               
                   
                   
                 | 
                 subject to 0 ≦ I ≦ 1 
               
             
          
           
               
                   
                 | 
                 Setting I to its current estimate, minimize the cost function over D: 
               
             
          
           
               
                   
                   
                 | 
                 
                   
                     
                       
                         
                           minimize 
                           D 
                         
                          
                         
                             
                         
                          
                         
                           
                              
                             
                               DI 
                               - 
                               d 
                             
                              
                           
                           2 
                         
                       
                     
                   
                 
               
               
                   
                   
                 | 
                 subject to 0 ≦ D 
               
             
          
           
               
                   
                 | 
                 until improvement in cost function ∥DI − d∥ 2  is less than predefined convergence threshold τ.; 
               
             
          
           
               
                 | 
                 end 
               
               
                   
               
             
          
         
       
     
         [0030]    Note that convergence of the alternating minimization algorithm is assured because each step in the iteration reduces the value of the cost function. In view of the probabilistic interpretation of the relaxation, the proposed methodology to find D is an EM-type algorithm that finds the local optima in the vicinity of the initialization point is introduced. 
         [0031]    In an embodiment of the invention, Data Extraction From Color Channels is performed. In an embodiment of the invention, Data Extraction From Color Channels includes obtaining three grayscale images corresponding to C, M, and Y printing layers. These grayscale images are threshold and binary images are obtained, from which data in each colorant channel is extracted using the data extraction algorithm of the monochrome counterpart. In the data processed to demodulate the encoded data generated by error correction coding employed in the data encoding stage as discussed above. The demodulated data is fed into the error correction decoder to compensate for the errors due to printing/capturing process and retrieve the data encoded in each printing layer. The steps for data extraction from color channels in detail are described next. 
         [0032]    In an embodiment of the invention, Binarization is performed. Binarization includes utilizing a local thresholding algorithm. We also propose two alternative thresholding algorithms specifically for color channels, obtained by using color interference cancellation approaches, described in the preceding section. In an embodiment of the invention, the local thresholding algorithm is typically used in monochrome barcodes to account for illumination variations across the captured image. For this purpose, the image is first divided into non-overlapping blocks and average intensity is calculated for each block. The threshold for a given block is then determined using the intensity of the blocks in 5×5 neighborhood of the given block. Note that for each block a different threshold is calculated by using intensities of the local neighborhood only. In an embodiment of the invention, the Adaptive Thresholding includes printing six combinations of the colorant layers, such as C, M, Y, CM, CY, and MY, in positioning marks as shown in  FIG. 4  for QR and Aztec codes. In this proposed adaptive thresholding algorithm, the intensity values at the positioning marks to set a threshold value for a color channel is utilized. In particular, we set the thresholds for estimated C, M, and Y channels as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       t 
                       C 
                     
                     = 
                     
                       
                         
                           max 
                            
                           
                             ( 
                             
                               
                                 I 
                                 R 
                                 C 
                               
                               , 
                               
                                 I 
                                 R 
                                 CM 
                               
                               , 
                               
                                 I 
                                 R 
                                 CY 
                               
                             
                             ) 
                           
                         
                         + 
                         
                           min 
                            
                           
                             ( 
                             
                               
                                 I 
                                 R 
                                 M 
                               
                               , 
                               
                                 I 
                                 R 
                                 Y 
                               
                               , 
                               
                                 I 
                                 R 
                                 MY 
                               
                             
                             ) 
                           
                         
                       
                       2 
                     
                   
                    
                   
                     
 
                   
                    
                   
                     
                       t 
                       M 
                     
                     = 
                     
                       
                         
                           max 
                            
                           
                             ( 
                             
                               
                                 I 
                                 G 
                                 M 
                               
                               , 
                               
                                 I 
                                 G 
                                 CM 
                               
                               , 
                               
                                 I 
                                 G 
                                 MY 
                               
                             
                             ) 
                           
                         
                         + 
                         
                           min 
                            
                           
                             ( 
                             
                               
                                 I 
                                 G 
                                 C 
                               
                               , 
                               
                                 I 
                                 G 
                                 Y 
                               
                               , 
                               
                                 I 
                                 G 
                                 CY 
                               
                             
                             ) 
                           
                         
                       
                       2 
                     
                   
                    
                   
                     
 
                   
                    
                   
                     
                       t 
                       Y 
                     
                     = 
                     
                       
                         
                           max 
                            
                           
                             ( 
                             
                               
                                 I 
                                 B 
                                 Y 
                               
                               , 
                               
                                 I 
                                 G 
                                 CY 
                               
                               , 
                               
                                 I 
                                 G 
                                 MY 
                               
                             
                             ) 
                           
                         
                         + 
                         
                           min 
                            
                           
                             ( 
                             
                               
                                 I 
                                 G 
                                 C 
                               
                               , 
                               
                                 I 
                                 G 
                                 M 
                               
                               , 
                               
                                 I 
                                 G 
                                 CM 
                               
                             
                             ) 
                           
                         
                       
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where I i   j  is the intensity in the I th  color channel iε{R, G, B} of the j th  pilot block jε{C, M, Y, CM, CY MY} and t C , t M , t Y  are the threshold values used to binarize the estimated C, M, and Y channels. 
         [0033]    In an embodiment of the invention, Fixed Thresholding is performed: The adaptive thresholding requires the existence of the pilot colors which is only possible when the barcode is designed accordingly to allow pilot block approach for color interference cancellation. EM-type approach for color interference cancellation however, is a generic method and does not require pilot blocks. For this case, we fixed the thresholds t C , t M , t Y  for C, M, and Y channels to binarize the grayscale images 
         [0034]    In an embodiment of the invention, Data Extraction and Decoding is provided. In an embodiment of the invention, the data in each colorant channel is then extracted from the binarized images of estimated C, M, and Y channels by using the decoder of the monochrome counterpart. In this extraction process, the symbols in each color channel are first demodulated to extract the data. The error correction decoder then processes the extracted data to compensate for the errors in the data. 
         [0035]    It will be apparent to those skilled in the art that the disclosed invention may assume many other embodiments other than the embodiments described herein. Accordingly, it is intended by the appended claims to cover all such modifications of the invention which fall within the true spirit and scope of the invention.