Abstract:
The invention provides methods and apparatus for analysis of images of direct part mark identification codes to measure and assess a print quality. Methods to assess the quality of a direct part mark identification code are presented that provide diagnostic information of a code that cannot be assessed using verification methods that require the results of a valid decoding step.

Description:
BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The present invention relates to methods for verifying identification codes used for part identification. More particularly, the present invention relates to a method of verifying the quality of two-dimensional identification marks placed on the surface of a part or component. The overall grade, and diagnostic information is provided to assess the performance of the process used to place the mark on the part. 
     Description of the Related Art 
     Automatic identification of products using bar codes has been broadly implemented throughout industrial operations for many years. Traditionally, bar codes or symbols have been printed on labels placed on product packaging and/or material handling trays or containers. The encoded information on the label can be readily identified using various laser scanner or optical readers. Various business operations have come to rely upon the accuracy and availability of data collected from part traceability resulting from automatic identification. 
     Recent trends are to extend tracking through the full life of a part so that it can be identified from the beginning of its life to the end. To address full life cycle traceability, manufacturers are marking parts with permanent two-dimensional (2D) codes that are marked directly on the part itself, and automatically identifying the part throughout the manufacturing and supply chain operations. This process is known as Direct Part Mark Identification (DPMI). 
     DPMI is essential for tracking and traceability in highly complex and sensitive assembly systems, such as aerospace and defense systems, medical devices, and electronic assemblies. DPMI permits manufacturers to use traceability data to create a part history through the manufacturing process for later use in supply change management and repair depots. 
     Part traceability through DPMI improves quality by ensuring that the appropriate processes are performed in the correct sequence on the right parts. DPMI is essential for “error-proofing” initiatives. In addition to eliminating manual part number data entry errors during production operations, DPMI can also assist in data logging for safety, liability, and warranty issues, and to satisfy regulatory requirement for permanently identifying high-value parts that are subject to theft or counterfeiting. 
     2D codes are typically used for DPMI applications due to the compact size, inherent error correction capabilities, and the amount of information that can be encoded, in comparison to one-dimensional bar codes. In a DPMI application, a 2D code can be marked on the part using several methods, depending upon the material composition, part application, and environmental conditions. Common methods include dot peening, laser and electrochemical etch. 
     Despite the fact that industries are increasingly adopting DPMI using 2D codes and advanced marking technologies, high read rate DPMI has been difficult to achieve. A limitation to the widespread implementation of DPMI is the inherent difficulty in reading DPMI codes. DPMI codes can be extremely difficult to read, due to low contrast, variations in part surfaces, and partial damage or obliteration from processing and environmental conditions. The application of machine vision technology to hand-held and fixed-mount DPMI readers is essential for a successful implementation of DPMI. 
     In order to assure that the DPMI code applied to a part will meet the requirements for achieving the highest read rates, it is highly recommended that a code verification system be implemented at the processing station where the code is applied. Verification of a DPMI code is not only a critical factor for downstream reading performance, but it reduces costs associated with rejected parts due to unreadable codes. If a part loses its identity due to the quality of the mark, then the part can often not be used. A verification system will immediately detect a problem with the marking process, such as poor fixturing, damage to the machine, or incorrect settings during configuration or changeover. 
     A DPMI code verification system typically includes lighting, optics, an image acquisition system, such as a camera, and code verification software. Several verification standards are in use at the present time, such as the AIMI International Symbology Specification for Data Matrix, and the ISO/IEC 15415 International Standard. However, these specifications require an image of a code that can be successfully decoded. Accordingly, there exists a need for a verification method that provides an effective assessment of DPMI codes with diagnostics that provide useful identification of failure modes that can be applied to codes that cannot be decoded due to poor image quality. 
     BRIEF SUMMARY OF THE INVENTION 
     An illustrative embodiment of the present invention provides a method for verifying a DPMI code by analyzing an acquired image of the code after it has been placed or printed on an object. If an attempt to decode the DPMI code is unsuccessful, and therefore precluding the application of verification methods of the prior art, the image is analyzed to first determine if the code can be located in the image. If the code can be located in the image, various aspects of a mark quality are measured using the acquired image. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
       These and other features of the present invention will be better understood in view of the following detailed description taken in conjunction with the drawings, in which: 
         FIG. 1  is a representation of a typical direct part mark identification code; 
         FIG. 2  is a schematic representation of the inspection system according to the present invention; and 
         FIG. 3  is a flowchart depicting the methods of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     A DPMI code  30  can be any one of a plurality of industrial standard encoded symbols, or one of a proprietary nature.  FIG. 1  depicts a data matrix code  32  according to the ISO/IEC 16022 industry standard, though the methods of the present invention are equally adapted to any type of mark or symbol. The data matrix code  32  is particularly well adapted for use as a DPMI code  30  because of its relatively small, compact size, high data encoding capacity, and inherent error correction. A DPMI code  30  typically consists of a finder pattern  34  and a clocking pattern  36 . A quiet zone  40  must be maintained around the periphery of the code. Data cells  38  comprise an array of modules that are contained within the region defined as the code. Though primarily represented as dark modules on a bright background, the code can be inverted according to the code specification. 
     The quiet zone  40  is a clear area free of all other markings that completely surrounds the code. For a data matrix code  32  that is marked or printed with a continuous finder pattern, such as a printed or etched mark, the quiet zone  40  width should be at least the width of one data cell  38 . It is recommended that codes that are placed as a series of dots, such as a peened or ink-jet code, should have a quiet zone  40  equal to the width of at least four data cells  38 . 
     The finder pattern  34  consists of a consistent and unique pattern that forms a portion of each code, regardless of the position of the data cells  38 . In a data matrix code  32 , the finder pattern consists of two orthogonal lines, known as the “L” pattern. The finder pattern  34  is the key feature used in a code reading algorithm to locate the position of the code in the field of view, thus, a high quality finder pattern  34  is essential to ensure the maximum readability of the code throughout the life cycle of the part. 
     The clocking pattern  36  are alternating light and dark cells that exist on the perimeter of the code that oppose the finder pattern  34  in a data matrix code  32 . The clocking pattern defines the configuration of the pattern of light and dark cells that make up the data region  38  of the code. 
     Full life cycle traceability requires a permanent marking method, which means that the mark must last for the expected life of the item in the expected environment of its use. The primary marking methods used to place a DPMI code  30  on an object  12  include dot peening, laser marking, chemical etching, and ink jet printing. Though the marking method and code type is a design specification that considers the requirements of the part and the expected operating environment, it is imperative that the marking operation create the DPMI code  30  on the object  12  in such a manner that subsequent reading operations can read and decode the mark. 
     DPMI code verification is a processing step performed to assess and monitor the process of marking parts, that can be performed using the system  10 . shown in  FIG. 2 . The verification system  10  includes a camera  16  that captures a two-dimensional image of an object  12  bearing a DPMI code  30 . The camera  16  can be a charge coupled device (CCD) camera or conventional image acquisition device, such as a complimentary metal oxide semiconductor (CMOS) camera. Digital image data (or pixels) generated by the camera  16  represent, in the conventional manner, the image color/greyscale and/or intensity of each point in the field of view of that capture device—here, a field of view that includes the DPMI code  30  and, optionally, aspects of the article  12  (e.g., package, manufactured good, semiconductor wafer, or so forth) on which it is placed. Optionally, the DPMI code verification processing step can be performed using a hand held reader that integrates the basic functions shown in  FIG. 2 . 
     Consistent and uniform illumination is critical in the verification of a DPMI code. System  10  has an illuminator  15  to flood the object  12  with the appropriate type of illumination so that a high contrast image of the DPMI code  30  can be obtained. In an illustrative embodiment of the invention, the illuminator  15  provides multiple modes of illumination, including on-axis bright field illumination, low angle dark field illumination, and diffuse illumination. The mode of illumination that is provided by the illuminator  15  may depend on the marking method used to place the DPMI code  30  on the object  12 . For example, dot peened codes have been shown to be well imaged under low angle dark field illumination or diffuse illumination, while ink-jet printed codes on non-specular surfaces have been shown to be well imaged under on-axis bright field illumination. 
     Digital image data is transmitted from the camera  16  via a communications path  18  to the image analysis system  20 . This can be a conventional digital data processor, or a vision processing system of the type commercially available from the assignee hereof, Cognex Corporation, as programmed in accord with the teachings hereof for verification of DPMI images acquired by the camera  16 . The image analysis system  20  may have one or more central processing units  22 , main memory  24 , input-output system  26 , and disk drive (or other mass storage device)  28 , all of the conventional type. 
       FIG. 3  depicts a methodology for DPMI code verification in accord with the practice of the present invention. In step  42 , an image of a DPMI code to be verified is acquired. Characteristics of the code will be known, including the code size  74  (e.g., 10×10, 48×48, etc.), the code type  76  (e.g., data matrix, QR, etc.), and the marking method  78  (e.g., dot peen, electro-chemical etch, etc.). As noted above this is a 2D image of the type generated by a CCD camera, or other conventional image acquisition device. For purposes of the discussion that follow, the image is assumed to be of a single DPMI code to be analyzed. In practice, such a DPMI code may occupy only a portion of an actual image acquired by the camera  16 , in which case windowing or other appropriate pre-processing is executed in order that the processing performed in the steps describe below may be applied to a single such DPMI code image at a time. 
     In step  44 , a method according to the invention attempts to decode the subject DPMI code image. This step is performed in the conventional manner known in the art and involves an application of machine vision tools to locate and identify the individual bars, dots, or other symbols that make up the machine readable portions of the DPMI code and/or the patterns formed thereby, and to discern from the relative position, size, orientation and/or shape thereof the underlying data. In an illustrative embodiment, the steps to decode at step  44  can be found in the reference decode algorithm published by the standards authority that governs the uniformity for which such codes are deployed. For example, the reference decode algorithm for data matrix symbols can be found in International Standard ISO/IEC 16022 Information Technology—International Symbology Specification—Data Matrix (First Edition 2000-05-01), incorporated herein by reference. 
     The output of the decode step  44  is true or false depending upon the success of the decode algorithm. If the decode step  44  is successful, then standard verification tests can be applied at step  46 , and the verification process is completed at step  48 . Standard verification tests applied at step  46  depend on the industrial application, type of mark, and the marking method used. For example, data matrix DPMI codes printed with square cells (i.e., paper-based labels or laser marked codes) are verified using the standard verification tests recommended in the above-referenced ISO/IEC 16022 standard. These tests measure print contrast, modulation axial non-uniformity, and unused error correction to grade marks on a letter scale of A through F, where A is excellent and F is fail. 
     Data matrix DPMI codes that are produced by dot peening or ink-jet printing are best verified at step  46  using the International Aerospace Quality Group (IAQG) Verification standard (SAE Aerospace Standard AS9132, 2002-02, incorporated herein by reference). This standard measures dot size, dot position, and dot ovality to give each mark a grade of A, B, or F, which indicates whether a mark is excellent, acceptable, or fails, respectively. Additionally, each dot is analyzed and assigned a grade, and the overall quality of a DPMI code is the lowest grade achieved by any of the tests. 
     Regardless of the standard used for the standard verification tests at step  46 , a prerequisite of these tests is that the DPMI code be successfully decoded. In the method according to the present invention, successful decoding is not a requirement, since useful information can be provided from verification tests to evaluate and analyze a DPMI marking operation without attaining a successful decode at step  44 . 
     If the output of the decode step  44  is not successful, then processing continues where image characteristics are tested at step  50 . Image characteristic tests can include image sharpness, image brightness, and contrast—characteristics that can provide an assessment of an image without requiring an evaluation of the content of the image. 
     To evaluate the sharpness of the image as a test of image characteristics at step  50 , the edge magnitudes of the image are derived. Convolving the image with an edge detection kernel, such as the 3×3 Sobel filter provides a list of edge direction and edge magnitudes for edgelets associated with features in the image. A sharpness score can be computed as: 
     
       
         
           
             
               S 
               sharpness 
             
             = 
             
               min 
               ⁡ 
               
                 ( 
                 
                   1 
                   , 
                   
                     mEdgeLight 
                     
                       mLight 
                       - 
                       mDark 
                     
                   
                 
                 ) 
               
             
           
         
       
     
     Where mEdgeLight is the average magnitude of the 10% strongest edge in the image, including the quiet zone; mLight is the average gray level of the 10% lightest pixels in the symbol image including the required quiet zone; and mDark is the average gray level of the 10% darkest pixels in the symbol image including the required quiet zone. 
     The image sharpness score will compute to be a value ranging between 0 and 1 inclusively. An ideal DPMI code image with a clear background and sufficient background separation has an image sharpness value of 1, while a blurred image has a lower image sharpness value. 
     An evaluation of the brightness, contrast, and saturation of the image can be tested as the image characteristics tested at step  50 . Brightness is a measurement of the overall intensity of the image. Contrast is a measurement of the difference between the intensity of the brightest features in the image and the intensity of the darkest features. Poor contrast will be observed in images that are too bright and washed out, and in images that are too dark. These tests can indicate problems with the image formation system—i.e., the illumination from the illuminator  15  and/or incorrect parameters in the settings for the camera  16 . 
     Step  52  performs a test to determine if the DPMI code can be found in the image. The code “finding” test can be the portion of the decoding algorithm that is performed to locate the finder pattern in the image that can precede the step of decoding. Such an algorithm can be found in the reference decoding algorithm of the code type under analysis. For example, in the case of a data matrix DPMI code, the reference decoding algorithm can be found in the above referenced ISO/IEC 16022 standard. The reference decode algorithm for the data matrix code provides a sequence of operations to first locate the “L pattern” and then build expanding search lines to determine the extent of the code to find the clocking pattern. 
     Alternatively, the test for “finding” the code in the image can be performed during the decode attempt at step  44 , by setting a “code found” variable to indicate that the code was located in the image. The result of the test to determine if the DPMI code was found in the image will include a score, or confidence value that the code was found. 
     If the output of the code location step  52  indicates that the code was not found, processing continues to step  54  that reports the code location failure, and the output of the image characteristics test at step  50 . Processing concludes at step  56 . 
     If the output of the code location step  52  indicates that the code was found, then processing continues to step  58  to generate overlay graphics, and to report the score from the code location step  52 . Overlay graphics can highlight the portion of the image that can be associated with the finder pattern and the clocking pattern. 
     Processing continues to step  60  where the matrix size is determined and compared to the expected value, to measure an aspect of mark quality. The clocking pattern  36  that was derived in the code location step  52  will determine the size of a cell module  38 , upon which the overall matrix size can be derived. 
     Processing continues at step  62  where the quiet zone and finder patterns are tested to measure an aspect of mark quality. At this step, a reflectance threshold is derived from a histogram of the image  42 . In the illustrative embodiment, the acquired image  42  is smoothed with a 3×3 median filter. 
     The finder pattern tests performed at step  62  are determined by the code type  76  and marking method  78 . For DPMI codes that have a continuous features (i.e., code types that have a continuous pattern, that is marked in a continuous printing method, such as laser or electro-chemical etch), a finder pattern test can evaluate the conformity of each module of the finder pattern. For example, in a data matrix code, as described above, the finder pattern  34  is an “L pattern” on one half of the code. This type of finder pattern is constructed from a series of continuous modules, each of the same size as the data modules  38 . In an illustrative embodiment, the finder pattern test performed at step  62  can be calculated as: 
     
       
         
           
             
               S 
               finder 
             
             = 
             
               
                 
                   N 
                   
                     a 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     D 
                   
                 
                 
                   N 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     D 
                   
                 
               
               × 
               
                 
                   N 
                   
                     a 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     L 
                   
                 
                 
                   N 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     L 
                   
                 
               
               × 
               
                 
                   N 
                   d 
                 
                 
                   N 
                   l 
                 
               
             
           
         
       
     
     where N aD  is the actual number of dark modules among the modules ought to be dark (gray value less than the reflectance threshold) in the finder patterns. N nD  is the number of modules ought to be dark (gray value less than the reflectance threshold) in the finder pattern. N aL  is the actual number of light modules among the modules ought to be light (gray value greater than the reflectance threshold) in the finder pattern. N nL  is the number of modules that ought to be light in the finder pattern. N d  is the number of dark pixel (gray value less than the reflectance threshold) in the solid lines of the finder pattern. N l  is the number of light pixel (gray value greater than the reflectance threshold) in the solid lines of the finder pattern. 
     For DPMI codes that have a discontinuous finder pattern  34 , such as those made in a marking method  78  such as dot peened, or dot matrix printed methods, a different finder pattern test can be applied. Here, the individual cells of the “L pattern” of the symbol are likely to be disconnected from each other, and a measure of finder pattern conformity can be calculated as: 
     
       
         
           
             
               S 
               finder 
             
             = 
             
               
                 
                   N 
                   
                     a 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     D 
                   
                 
                 
                   N 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     D 
                   
                 
               
               × 
               
                 
                   N 
                   
                     a 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     L 
                   
                 
                 
                   N 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     L 
                   
                 
               
             
           
         
       
     
     where N aD  is the actual number of dark modules among the modules ought to be dark (gray value less than the reflectance threshold) in the finder patterns. N nD  is the number of modules ought to be dark (gray value less than the reflectance threshold) in the finder pattern. N aL  is the actual number of light modules among the modules ought to be light (gray value greater than the reflectance threshold) in the finder pattern. N nL  is the number of modules that ought to be light in the finder pattern. 
     The quiet zone tests performed at step  62  evaluate the region defined as the quiet zone of the symbol located in the image. The quiet zone is typically defined as a region that must be free of all other markings surrounding the symbol on all sides, and for data matrix DPMI codes, the width of this region is at least one data cell width, and wider for other codes, such as the QR code. For DPMI codes, this requirement can be failed if the mark is placed on the part where a surface aberration or defect is present. The features that exist on the surface of the part can result in a quiet zone failure. To evaluate the quiet zone, a histogram analysis can be performed that compares the distribution of gray-level intensities of the image to the distribution of gray-level intensities of the quiet zone. A bimodal distribution is expected for the histogram of the image, while a single mode of light pixels is expected for a conforming quiet zone (if the symbol is dark-on-light; the quiet zone distribution will be a single mode of dark pixels if the symbol is light on dark). 
     If the tests of the quiet zone and finder pattern result in failures, processing continues to step  64  where the quiet zone and finder pattern deficiencies are reported, to conclude at step  66 . If the quiet zone and finder pattern pass the tests at step  62 , processing continues to step  68  where the quiet zone and finder pattern test results are reported, with overlay graphics to indicate the location of the finder pattern and quiet zone in the image. 
     At step  70 , supplemental metrics are computed and reported to provide diagnostic information for code verification to measure an aspect of mark quality. At this point, more than likely the reason the code was not able to be decoded at step  44  is that the image under analysis exhibits deficiencies or defects in the data cells  38 . Supplemental metrics at step  70  can provide further information that can provide guidance as to the condition of the code. 
     Supplemental metrics at step  70  can include a symbol separability test to verify that the predominate feature of the image is the symbol. To perform a symbol separability test, a comparison is performed between a histogram of the entire image and a histogram of the portion of the image where the symbol was located at step  52 . Assuming that m 0  is the mean value of the dark pixels in the symbol, m 1  is the mean value of the light pixels in the symbol, and T is the reflectance threshold obtained from the histogram of the entire image, the symbol separability test is deemed passed if:
 
 m   0   &lt;T&lt;m   1  
 
     Supplemental metrics at step  70  can include a module separability test that evaluates the bi-modality characteristic of the data cells  38 , that represent binary data bit 1 or 0. Since each DPMI code type  76  contains a data region that contain nominally square modules set out in a regular array, each module can be represented by the average gray value of pixels within the module. In the ideal case, the histogram of the module representation has two well-separated narrow peaks, corresponding to the two states of the modules. The separability of the data cells  38  is defined as: 
               S   m     =         (     1   -         ∑     g   =   A     B     ⁢     h   ⁡     (   g   )             ∑     g   =   0     255     ⁢     h   ⁡     (   g   )             )     ×   max   ⁢     {     0   ,     1   -       sLight   +   sDark       mLight   -   mDark           }     ⁢           ⁢   if   ⁢           ⁢   mLight     ≠   mDark             S   m =0 if  m Light= m Dark 
     Where g is the index of gray level, h(g) is the number of modules where the center has a gray level g; T is the threshold obtained from the histogram of the module representations; sLight is the standard deviation of light modules; sDark is the standard deviation of dark modules; mLight is the mean of light modules; mDark is the mean of dark modules; and
 
 A=m Dark+( T−m Dark)×0.15
 
 B=m Light−( m Light− T )×0.15
 
     The value of S m  ranges from 0 to 1 inclusively. A value of 0 indicates significant overlapping between the dark and light modules, which can result in a learn/decode failure. A value closer to 1 indicates good separability, and thus, good readability of the symbol. 
     One skilled in the art will appreciate that further supplemental tests can be performed at step  70  that may include various code type-specific tests or evaluations. Additionally, aspects of mark quality can be measured at step  70  through the application of any combination of standard verification tests, recommended in the above-referenced ISO/IEC 16022 standard. These tests can include measurement of print contrast, modulation axial non-uniformity, to the extent that such tests can be computed without the results of a successful decode at step  44 . Processing concludes at step  72 . 
     Although the invention is shown and described with respect to an illustrative embodiment thereof, it should be appreciated that the foregoing and various other changes, omissions, and additions in the form and detail thereof could be implemented without changing the underlying invention.