U.S. patent application number 16/113594 was filed with the patent office on 2019-07-18 for method and apparatus for industrial identification mark verification.
The applicant listed for this patent is COGNEX TECHNOLOGY AND INVESTMENT LLC. Invention is credited to Carl W. Gerst III, Sateesha Nadabar.
Application Number | 20190220629 16/113594 |
Document ID | / |
Family ID | 57795138 |
Filed Date | 2019-07-18 |
![](/patent/app/20190220629/US20190220629A1-20190718-D00000.png)
![](/patent/app/20190220629/US20190220629A1-20190718-D00001.png)
![](/patent/app/20190220629/US20190220629A1-20190718-D00002.png)
![](/patent/app/20190220629/US20190220629A1-20190718-D00003.png)
![](/patent/app/20190220629/US20190220629A1-20190718-M00001.png)
![](/patent/app/20190220629/US20190220629A1-20190718-M00002.png)
![](/patent/app/20190220629/US20190220629A1-20190718-M00003.png)
![](/patent/app/20190220629/US20190220629A1-20190718-M00004.png)
United States Patent
Application |
20190220629 |
Kind Code |
A1 |
Nadabar; Sateesha ; et
al. |
July 18, 2019 |
METHOD AND APPARATUS FOR INDUSTRIAL IDENTIFICATION MARK
VERIFICATION
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.
Inventors: |
Nadabar; Sateesha;
(Framingham, MA) ; Gerst III; Carl W.; (Sherborn,
MA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
COGNEX TECHNOLOGY AND INVESTMENT LLC |
Natick |
MA |
US |
|
|
Family ID: |
57795138 |
Appl. No.: |
16/113594 |
Filed: |
August 27, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15397867 |
Jan 4, 2017 |
10061946 |
|
|
16113594 |
|
|
|
|
11021098 |
Dec 23, 2004 |
9552506 |
|
|
15397867 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06K 9/036 20130101;
G06K 7/1447 20130101; G06K 9/2027 20130101; G06K 5/00 20130101;
G06K 19/06037 20130101; G06K 9/20 20130101; G06K 7/1417
20130101 |
International
Class: |
G06K 5/00 20060101
G06K005/00; G06K 19/06 20060101 G06K019/06; G06K 7/14 20060101
G06K007/14; G06K 9/20 20060101 G06K009/20; G06K 9/03 20060101
G06K009/03 |
Claims
1. A method for verifying a direct part mark inspection code, the
method comprising: acquiring an image of the code; attempting to
decode the code using the image; locating the code in the image if
the attempt to decode the code is unsuccessful to provide a code
location; and measuring aspects of a mark quality using the image
and the code location in the image.
2. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a quiet zone of the
code in the image.
3. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a clocking pattern
of the code in the image.
4. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a matrix size of the
code in the image.
5. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a matrix size of the
code in the image.
6. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a symbol
separability test.
7. The method according to claim 1 wherein the step of measuring
aspects of a mark quality comprises evaluating a module
separability test.
8. The method according to claim 1 wherein the code is a symbol
marked directly on an object.
9. The method according to claim 8 wherein the code is a data
matrix.
10. A method for verifying a direct part mark inspection code, the
method comprising: acquiring an image of the code; attempting to
locate the code in the image; attempting to decode the code using
the image; and measuring at least one aspect of a mark quality
using the image of the code if the attempt to decode the code is
unsuccessful.
11. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a quiet
zone of the code in the image.
12. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a
clocking pattern of the code in the image.
13. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a matrix
size of the code in the image.
14. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a matrix
size of the code in the image.
15. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a symbol
separability test.
16. The method according to claim 10 wherein the step of measuring
at least one aspect of a mark quality comprises evaluating a module
separability test.
17. An apparatus for verifying a direct part mark inspection code,
the apparatus comprising: means for acquiring an image of the code;
means for attempting to decode the code using the image; means for
locating the code in the image if the attempt to decode the code is
unsuccessful to provide a code location; and means for measuring at
least one aspect of a mark quality using the image and the code
location.
Description
BACKGROUND OF THE INVENTION
Field of the Invention
[0001] 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
[0002] 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.
[0003] 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).
[0004] 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.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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
[0010] 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
[0011] 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:
[0012] FIG. 1 is a representation of a typical direct part mark
identification code;
[0013] FIG. 2 is a schematic representation of the inspection
system according to the present invention; and
[0014] FIG. 3 is a flowchart depicting the methods of the present
invention.
DETAILED DESCRIPTION OF THE INVENTION
[0015] 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.
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.times.10, 48.times.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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.times.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 )
##EQU00001##
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.times.3 median filter.
[0039] 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 aD N nD .times. N aL N nL .times. N d N l
##EQU00002##
[0040] where N.sub.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.sub.nD is the number of
modules ought to be dark (gray value less than the reflectance
threshold) in the finder pattern. N.sub.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.sub.nL is the number of modules that ought to be light in the
finder pattern. N.sub.d is the number of dark pixel (gray value
less than the reflectance threshold) in the solid lines of the
finder pattern. N.sub.l is the number of light pixel (gray value
greater than the reflectance threshold) in the solid lines of the
finder pattern.
[0041] 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 aD N nD .times. N aL N nL ##EQU00003##
[0042] where N.sub.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.sub.nD is the number of
modules ought to be dark (gray value less than the reflectance
threshold) in the finder pattern. N.sub.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.sub.nL is the number of modules that ought to be light in the
finder pattern.
[0043] 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).
[0044] 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.
[0045] 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.
[0046] 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.sub.0 is the mean value of the
dark pixels in the symbol, m.sub.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.sub.0<T<m.sub.1
[0047] 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 ) ) .times. max { 0 , 1
- sLight + sDark mLight - mDark } if mLight .noteq. mDark
##EQU00004## S m = 0 if mLight = mDark ##EQU00004.2##
[0048] 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=mDark+(T-mDark).times.0.15
B=mLight-(mLight-T).times.0.15
[0049] The value of S.sub.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.
[0050] 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.
[0051] 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.
* * * * *