This application claims the benefit of priority of U.S. patent application Ser. No. 10/930,056, entitled “Methods and Apparatus for Reading Bar Code Identifications,” filed Aug. 30, 2004.
The invention pertains to digital data processing and, more particularly, to image analysis. It has application, by way of non-limiting example, in the reading of bar codes and, particularly, two-dimensional bar codes.
Though of only relative recent advent, bar codes are used throughout the marketplace. The linear bar code was first adopted by a trade association in the 1970's and is now used on products shipped and sold throughout the industrial world. The most common code, known as the UPC (uniform product code) in the United States, is a combination twelve to fourteen human-readable characters and corresponding machine-readable bars (or symbols) that uniquely identify products labeled in conformance with the UPC system. The bars are automatically interpreted by readers, i.e., “bar code readers,” and used to look-up manufacturer and product names, as well as pricing, inventory and other product-related information, in computer databases.
Early success of the linear bar code led to its extension into so-called stacked (or multi-row) codes and into two-dimensional (2D) codes. Stacked codes comprise a set of two or more linear bar codes placed vertically adjacent one another to encode two or more respective codes. An example is the four-deep stacked code used in the automobile industry to encode part number, quantity, supplier, and serial number. Another example it the Codablock symbology.
2D bar codes encode information along two axes—not just one, as is the case of the linear (1D) bar code. They can be used to encode a considerable amount of information in a small area. Though one of the most recognizable uses of 2D bar codes is on parcel shipping labels, they are increasingly used by manufactures to mark products themselves—not merely packaging. Examples include semiconductor wafers, milled products (such as turbine blades), surgical instruments, recyclable containers, glassware, among others. Common 2D bar codes are Maxicode, MiniCode, PDF 417, ArrayTag, DataGlphys, and DataMatrix, to name a few.
As the use of bar codes extends to manufactured products, the challenges facing makers of bar code readers increase. The patterns that make up 2D bar codes on freshly printed paper labels are readily interpreted by conventional scanning wands or fixed-mount readers. This is not the case with bar codes on damaged labels (e.g., wrinkled or smudged labels) nor with those formed on other surfaces, such as those of semiconductor wafers, surgical instruments and other manufactured goods themselves, by way of example.
An object of this invention is to provide improved methods for digital data processing and, more particularly, for image analysis. A more particular object is to provide such improved methods and apparatus for reading of bar codes.
A related object of the invention is to provide such improved methods and apparatus for reading stacked-linear and two-dimensional bar codes, among others.
Yet still another object of the invention is to provide such improved methods and apparatus as facilitate the reading of bar codes on manufactured goods, damaged labels and other surfaces.
Still other objects are to provide improved methods and apparatus for optical character recognition and other forms of machine vision analysis.
The aforementioned are among the objects attained by the invention which provides, in one aspect, methods for analysis of images of two-dimensional (2D) bar codes in which multiple models that have proven successful in reading prior bar code images are utilized to speed analysis of subsequent bar code images. In its various aspects, the invention can be used in analyzing conventional 2D bar codes, e.g., those complying with Maxicode and DataMatrix standards (by way of example), as well as stacked linear bar codes, e.g., those utilizing the Codablock symbology (again, by way of example).
Bar code readers, digital data processing apparatus and other devices operating in accord with such methods can be used, by way of non-limiting example, to read bar codes from damaged labels, as well as those that are screened, etched, peened or otherwise formed on manufactured articles. In addition, devices utilizing such methods can speed bar code reading in applications where multiple bar codes of like type are read in succession and/or are read under like circumstances (e.g., image acquisition angle, lighting conditions, and so forth)—e.g., on the factory floor, at point-of-sale locations, in parcel delivery and so forth. Such devices can also speed and/or make possible bar code analysis in applications where multiple codes are read from a single article—e.g., as in the case of a multiply-coded airplane propeller or other milled part.
More particular aspects of the invention provide methods as described above for reading two-dimensional (2D) bar codes of the type having machine-readable components that comprise a plurality of bars, dots or other machine-readable symbols encoding product information or other data. The methods comprise analyzing a 2D image of a first 2D bar code to decode the machine-readable symbols thereof; discerning a model of representation of the first 2D bar code in that image (where the model comprises one or more geometric or other characteristics of that representation); and testing, for error, data decoded from the machine-readable symbols decoded using that model. These steps are executed so as to develop multiple (i.e., two or more) different models that have tested successfully in decoding 2D bar codes from 2D images.
Following analysis of the first bar code images and development of those multiple models, the methods call for analyzing a 2D image of a further 2D bar code. This includes using a model discerned in analysis of the first bar code images to decode the machine-readable symbols of the further 2D bar code. That previously-developed model is used in lieu of a model discerned from the image of the further 2D bar code itself—thereby saving the time and processing resources. The symbols determined from the further bar code image (again, using models discerned from the first bar code images) can be tested for error, e.g., insuring that utilization of the previously-discerned model was appropriate. If the testing proves unsuccessful, one or more of the other previously developed models is tried.
According to related aspects of the invention, the first and further bar codes can be analyzed from different images or from portions of the same underlying image (e.g., as where multiple bar codes are disposed on a single article and/or multiple bar code images are otherwise acquired in a single acquisition).
Related aspects of the invention provide such methods in which a model discerned from the image of a first 2D bar code is one defined by geometric or other characteristics that are not expected to vary substantially from image-to-image and, more particularly, as between the image of that first 2D bar code and the image of the further 2D bar code.
Such characteristics, according to various aspects of the invention include the height and/or width of the bar code in the image. Thus, for example, bar code height and/or width used in successful analysis of a first 2D bar code image is used to interpret bar codes in subsequent images, e.g., without the necessity of re-analyzing the images to determine such heights and/or widths. Other related aspects of the invention provide such methods in which the model defines characteristics such as number of bar code rows and/or columns; bar code symbol type (e.g., round, annular, rectilinear, etc.), bar code color, intensity and/or contrast, and imaging geometry (e.g., skew).
Other aspects include methods as described above as applied to the range of stacked-linear bar codes and 2D bar codes.
Yet other aspects of the invention include methods as described above as are applied in reading multiple bar codes from a single products, package or other article.
Still other aspects of the invention provide bar code readers, digital data processing and other apparatus for performing methods as described above.
Yet other aspects of the invention provide methods and bar code readers as described above for use in hand-held bar code reading and fixed-mount bar code reading applications.
Still other aspects of the invention provide methods and apparatus as described above that are used in optical character recognition and other image-based analysis applications.
A more complete understanding of the invention may be attained by reference to the drawings, in which:
Digital image data is transmitted from reader 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 analysis of bar code images acquired by the reader 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.
The system 10 and, more particularly, central processing unit 22, is configured by programming instructions according to teachings hereof for operation as further described and illustrated herein. Those skilled in the art will appreciate that, in addition to implementation on a programmable digital data processor, the methods taught herein can be implemented in special purpose hardware.
As used hereinafter, the term two-dimensional or 2D bar code refers an industry-standard, proprietary or other bar code having (i) one or more bars, dots and/or other machine-readable symbols whose patterns vary along more than one axis and that encode information in a manner intended principally for interpretation by a machine, e.g., a bar code reader and, optionally, having (ii) one or more human-readable characters (such as letters and numbers) intended principally for interpretation by a human or optical character recognizer. This includes industry standard bar codes, such as Maxicode, MiniCode, PDF 417, ArrayTag, DataGlyphs, and DataMatrix, to name but a few. This also includes stacked one-dimensional bar codes, such as Codablock, to name but one example. This does not include one-dimensional (or “linear”) bar codes, the pattern of whose machine-readable symbols (typically, bars) vary only along one dimension—although, the invention may have application in reading such bar codes, as well.
By way of corollary, as used herein, the terms analysis, reading, decoding, interpretation (or the like) of bar codes refers to the automated analysis of the above-mentioned machine-readable symbols, not the optical recognition of the above-mentioned human-readable chararacters. (Although, of course, in embodiments of the invention for reading characters, the terms analysis, reading, decoding, interpretation do indeed refer to automated analysis of such human-readable symbols, i.e., characters).
In step 32, a method according to the invention attempts to decode the subject bar code image with a current model—if one has yet been developed—of bar code characteristics learned from a prior successful reading of a bar code (e.g., a bar code previously imaged by reader 16 and decoded by system 20). The step is performed in the conventional manner known in the art and involves application of machine vision tools to identify the individual bars, dots or other symbols that make up the machine-readable portions of the 2D bar code and/or the patterns formed thereby, and to discern from the relative position, size, orientation and/or shape thereof the underlying data. Use of the model speeds the analysis, constraining degrees of freedom and reducing the number of tests otherwise necessary to identify the parameters or characteristics of bar code presentation in the image.
And, indeed, to insure that excessive processor and/or real time are not expended during this first decode step 32, a watchdog or other timer (not shown) is provided. It is set so that the vision tools applied during this step can decode a bar code image if the current model applies, but not otherwise. This ensures that bar codes whose imaging characteristics match the current model will be recognized quickly, and that those that do not (match) will force determination of a new model in the steps that follow—thereby, speeding recognition of future bar code images having characteristics of the current one.
As used herein, a model is a set of one or more characteristics of presentation of that bar code in that image—which characteristics are not expected to vary substantially from image-to-image and under the circumstances on in the environment under which those images are acquired. This includes, by way of non-limiting example, one or more of the following characteristics: the height and/or width of the at least the machine-readable component of the bar code; the number of rows and/or columns of the machine-readable component; the geometry of symbol that makes up the bar code, e.g., bar, dot, annulus, round, rectilinear, and so forth; symbol appearance in the image, e.g., intensity and/or contrast; and imaging geometry, e.g., location of bar code image, skew, and so forth. Other characteristics may be employed, in addition or instead, in other embodiments. However, as used herein, the model does not encompass the characteristic of basic symbology type, e.g., Maxicode versus MiniCode versus PDF 417, and so forth. In embodiments of the invention, basic symbology type is taken by default, or otherwise, and is not represented in the model per se. In
In step 34, a method according to the invention tests if data was successfully decoded in step 32. This fails if the decoded data does not pass the various bit-wise, row-wise, column-wise and other checks dictated under applicable specifications of the 2D bar code whose image is being analyzed. It is also typically expected to fail if there had been no current model at the time of execution of step 32 (e.g., as would be the case if this were the first of a succession bar code reads) or if the current models are not adequate to enable the even basic symbol recognition.
If the decode was successful, processing is completed (see the “Yes” path from step 34). Typically, the decoded data is output and the bar code reader 16 and/or image analysis system 20 are readied for reading another bar code.
On the other hand, if test step 34 shows that decode step 32 was not successful, processing proceeds to step 35, where a test is made to determine whether additional previously successful models have been developed. If so, processing returns to step 32 and an attempt is made to decode the subject bar code image with one of those models. If not, processing proceeds to step 36, where an attempt is made to decode the bar code image without a model. As above, decoding is performed in the conventional manner known in the art and involves application of machine vision tools to identify the individual bars, dots or other symbols that make up the machine-readable portions of the 2D bar code and/or the patterns formed thereby, and to discern from the relative position, size, orientation and/or shape thereof the underlying data. Unlike the model-based analysis of step 32, that of step 36 typically utilizes more tests and/or searches over larger areas of a solution space to perform the decode.
As such, though a watchdog or other timer (not shown) is provided to insure that excessive processor and/or real time are not expended during decode step 36, that timer is typically set for a longer period than that used in timing step 32. Specifically, it is set so that the vision tools applied during step 36 can decode a reasonably formed bar code image, but not otherwise. This ensures that bar codes images amenable to decoding are so, but ultimately forces reacquisition of images of bar codes that are too ill-formed.
In step 38, the illustrated method tests if data was successfully decoded in step 36. As above, testing involves various bit-wise, row-wise, column-wise and other checks dictated under applicable bar code specifications for the 2D bar code whose image is being analyzed. If the decode was successful, processing proceeds to step 38-40. There, the list of current 31 models (used in step 32) is updated to reflect geometric and other imaging characteristics of the bar code successfully decoded in step 36. The decoded data is also output and the bar code reader 16 and/or image analysis system 20 are readied for reading another bar code.
If the decode in step 36 had not been successful, on the other hand, the illustrated method loops back, as shown, to step 30. There, a new image of the bar code is acquired and decoding and testing begun anew. In other embodiments, the loop-back can be directly to step 32 if, for example, if there are further models to use in decoding of the image—e.g., models successful in still earlier read attempts.
Further embodiments of the invention apply the methodologies and apparatus above to optical character recognition and other image-based analysis. In these embodiments, for example, images “first” sequences of one or more characters are analyzed to discern multiple model of the type described above, here, however, characterizing geometric and other image-wise invariant parameters (e.g., font, image intensity, color, contrast, etc.) of representation of the character(s) in those images These model are used to discern the characters in images of one or more further character sequences. In the later regard, as above, analysis of the further character sequence images is based on the models discerned from the “first” images, not on ones separately derived from the further images. However, also as above, in the event that the current (i.e., previously developed) models timely or otherwise fail to result in correct analysis of a further character sequence, embodiments using these methods can engage in a more in-depth analysis of the further sequence, possibly, retaining a model learned from it for use in analysis of subsequent images.
Described above are methods and apparatus meeting the desired objects. It will be appreciated that the embodiments discussed here are merely examples of the invention and that other embodiments incorporating changes therein fall within the scope of the invention. Thus, for example, it will be appreciated that model comprising characteristics other than those described above may be used and that multiple models may be applied before attempting a de-code with no model. In view of the foregoing, what we claim is:
Number | Name | Date | Kind |
---|---|---|---|
3868634 | Dolch | Feb 1975 | A |
3890597 | Hanchett | Jun 1975 | A |
4282425 | Chadima et al. | Aug 1981 | A |
4308455 | Bullis et al. | Dec 1981 | A |
4421978 | Laurer et al. | Dec 1983 | A |
4782220 | Shuren | Nov 1988 | A |
4866784 | Barski | Sep 1989 | A |
4894523 | Chadima et al. | Jan 1990 | A |
4948955 | Lee et al. | Aug 1990 | A |
4973829 | Ishida et al. | Nov 1990 | A |
5028772 | Lapinski et al. | Jul 1991 | A |
5120940 | Willsie | Jun 1992 | A |
5124537 | Chandler et al. | Jun 1992 | A |
5124538 | Lapinski et al. | Jun 1992 | A |
5155343 | Chandler | Oct 1992 | A |
5166830 | Ishibai et al. | Nov 1992 | A |
5187355 | Chadima et al. | Feb 1993 | A |
5187356 | Chadima et al. | Feb 1993 | A |
5192856 | Schaham | Mar 1993 | A |
5262623 | Batterman et al. | Nov 1993 | A |
5262625 | Tom et al. | Nov 1993 | A |
5276315 | Surka | Jan 1994 | A |
5276316 | Blanford | Jan 1994 | A |
5278397 | Barkan et al. | Jan 1994 | A |
5291008 | Havens et al. | Mar 1994 | A |
5296690 | Chandler et al. | Mar 1994 | A |
5304786 | Pavlidis et al. | Apr 1994 | A |
5332892 | Li et al. | Jul 1994 | A |
5378883 | Batterman et al. | Jan 1995 | A |
5418862 | Zheng et al. | May 1995 | A |
5446271 | Cherry et al. | Aug 1995 | A |
5455414 | Wang | Oct 1995 | A |
5461417 | White et al. | Oct 1995 | A |
5463214 | Longacre, Jr. et al. | Oct 1995 | A |
5478999 | Figarella et al. | Dec 1995 | A |
5481098 | Davis et al. | Jan 1996 | A |
5486689 | Ackley | Jan 1996 | A |
5487115 | Surka | Jan 1996 | A |
5507527 | Tomioka et al. | Apr 1996 | A |
5514858 | Ackley | May 1996 | A |
5523552 | Shellhammer et al. | Jun 1996 | A |
5539191 | Ackley | Jul 1996 | A |
5550366 | Roustaei | Aug 1996 | A |
5557091 | Krummel | Sep 1996 | A |
5591956 | Longacre et al. | Jan 1997 | A |
5612524 | San't Anselmo et al. | Mar 1997 | A |
5635699 | Cherry et al. | Jun 1997 | A |
5646391 | Forbes et al. | Jul 1997 | A |
5675137 | Van Haagen et al. | Oct 1997 | A |
5682030 | Kubon | Oct 1997 | A |
5689620 | Kopec et al. | Nov 1997 | A |
5691527 | Hara et al. | Nov 1997 | A |
5723853 | Longacre, Jr. et al. | Mar 1998 | A |
5739518 | Wang | Apr 1998 | A |
5744790 | Li | Apr 1998 | A |
5756981 | Roustaei et al. | May 1998 | A |
5767498 | Heske, III et al. | Jun 1998 | A |
5777309 | Maltsev et al. | Jul 1998 | A |
5814827 | Katz | Sep 1998 | A |
5821520 | Mulla et al. | Oct 1998 | A |
5825006 | Longacre, Jr. et al. | Oct 1998 | A |
5852288 | Nakazawa et al. | Dec 1998 | A |
5877486 | Maltsev et al. | Mar 1999 | A |
5889270 | Van Haagen et al. | Mar 1999 | A |
5902988 | Durbin | May 1999 | A |
5914476 | Gerst, III et al. | Jun 1999 | A |
5920060 | Marom | Jul 1999 | A |
5932862 | Hussey et al. | Aug 1999 | A |
5936224 | Shimizu et al. | Aug 1999 | A |
5949052 | Longacre, Jr. et al. | Sep 1999 | A |
5974200 | Zhou et al. | Oct 1999 | A |
6000612 | Xu | Dec 1999 | A |
6021946 | Hippenmeyer et al. | Feb 2000 | A |
6053407 | Wang et al. | Apr 2000 | A |
6056198 | Rudeen et al. | May 2000 | A |
6075883 | Stern et al. | Jun 2000 | A |
6082619 | Ma et al. | Jul 2000 | A |
6088482 | He et al. | Jul 2000 | A |
6095422 | Ogami | Aug 2000 | A |
6123261 | Roustaei | Sep 2000 | A |
6152371 | Schwartz et al. | Nov 2000 | A |
6158661 | Chadima, Jr. et al. | Dec 2000 | A |
6176428 | Joseph et al. | Jan 2001 | B1 |
6189792 | Heske, III | Feb 2001 | B1 |
6206289 | Sharpe et al. | Mar 2001 | B1 |
6209789 | Amundsen et al. | Apr 2001 | B1 |
6234395 | Chadima, Jr. et al. | May 2001 | B1 |
6234397 | He et al. | May 2001 | B1 |
6250551 | He et al. | Jun 2001 | B1 |
6298176 | Longacre, Jr. et al. | Oct 2001 | B2 |
6340119 | He et al. | Jan 2002 | B2 |
6371373 | Ma et al. | Apr 2002 | B1 |
6398113 | Heske, III | Jun 2002 | B1 |
6405925 | He et al. | Jun 2002 | B2 |
6454168 | Brandt et al. | Sep 2002 | B1 |
6490376 | Au et al. | Dec 2002 | B1 |
6491223 | Longacre, Jr. et al. | Dec 2002 | B1 |
6505778 | Reddersen et al. | Jan 2003 | B1 |
6513714 | Davis et al. | Feb 2003 | B1 |
6513715 | Heske, III | Feb 2003 | B2 |
6754394 | Boliek et al. | Jun 2004 | B2 |
6918539 | Nakajima et al. | Jul 2005 | B2 |
7028911 | Cheung et al. | Apr 2006 | B2 |
20040026510 | Cheung et al. | Feb 2004 | A1 |
20060193518 | Dong | Aug 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20070152059 A1 | Jul 2007 | US |