1. Field of Invention
The present invention relates to hand-supportable and portable area-type digital bar code readers having diverse modes of digital image processing for reading one-dimensional (1D) and two-dimensional (2D) bar code symbols, as well as other forms of graphically-encoded intelligence.
2. Brief Description of the State of the Art
The state of the automatic-identification industry can be understood in terms of (i) the different classes of bar code symbologies that have been developed and adopted by the industry, and (ii) the kinds of apparatus developed and used to read such bar code symbologies in various user environments.
In general, there are currently three major classes of bar code symbologies, namely: one dimensional (1D) bar code symbologies, such as UPC/EAN, Code 39, etc.; 1D stacked bar code symbologies, Code 49, PDF417, etc.; and two-dimensional (2D) data matrix symbologies.
One Dimensional optical bar code readers are well known in the art. Examples of such readers include readers of the Metrologic Voyager® Series Laser Scanner manufactured by Metrologic Instruments, Inc. Such readers include processing circuits that are able to read one dimensional (1D) linear bar code symbologies, such as the UPC/EAN code, Code 39, etc., that are widely used in supermarkets. Such 1D linear symbologies are characterized by data that is encoded along a single axis, in the widths of bars and spaces, so that such symbols can be read from a single scan along that axis, provided that the symbol is imaged with a sufficiently high resolution along that axis.
In order to allow the encoding of larger amounts of data in a single bar code symbol, a number of 1D stacked bar code symbologies have been developed, including Code 49, as described in U.S. Pat. No. 4,794,239 (Allais), and PDF417, as described in U.S. Pat. No. 5,340,786 (Pavlidis, et al.). Stacked symbols partition the encoded data into multiple rows, each including a respective 1D bar code pattern, all or most of all of which must be scanned and decoded, then linked together to form a complete message. Scanning still requires relatively high resolution in one dimension only, but multiple linear scans are needed to read the whole symbol.
The third class of bar code symbologies, known as 2D matrix symbologies offer orientation-free scanning and greater data densities and capacities than their 1D counterparts. In 2D matrix codes, data is encoded as dark or light data elements within a regular polygonal matrix, accompanied by graphical finder, orientation and reference structures. When scanning 2D matrix codes, the horizontal and vertical relationships of the data elements are recorded with about equal resolution.
In order to avoid having to use different types of optical readers to read these different types of bar code symbols, it is desirable to have an optical reader that is able to read symbols of any of these types, including their various subtypes, interchangeably and automatically. More particularly, it is desirable to have an optical reader that is able to read all three of the above-mentioned types of bar code symbols, without human intervention, i.e., automatically. This is turn, requires that the reader have the ability to automatically discriminate between and decode bar code symbols, based only on information read from the symbol itself. Readers that have this ability are referred to as “auto-discriminating” or having an “auto-discrimination” capability.
If an auto-discriminating reader is able to read only 1D bar code symbols (including their various subtypes), it may be said to have a 1D auto-discrimination capability. Similarly, if it is able to read only 2D bar code symbols, it may be said to have a 2D auto-discrimination capability. If it is able to read both 1D and 2D bar code symbols interchangeably, it may be said to have a 1D/2D auto-discrimination capability. Often, however, a reader is said to have a 1D/2D auto-discrimination capability even if it is unable to discriminate between and decode 1D stacked bar code symbols.
Optical readers that are capable of 1D auto-discrimination are well known in the art. An early example of such a reader is Metrologic's VoyagerCG® Laser Scanner, manufactured by Metrologic Instruments, Inc.
Optical readers, particularly hand held optical readers, that are capable of 1D/2D auto-discrimination and based on the use of an asynchronously moving 1D image sensor, are described in U.S. Pat. Nos. 5,288,985 and 5,354,977, which applications are hereby expressly incorporated herein by reference. Other examples of hand held readers of this type, based on the use of a stationary 2D image sensor, are described in U.S. Pat. Nos. 6,250,551; 5,932,862; 5,932,741; 5,942,741; 5,929,418; 5,914,476; 5,831,254; 5,825,006; 5,784,102, which are also hereby expressly incorporated herein by reference.
Optical readers, whether of the stationary or movable type, usually operate at a fixed scanning rate, which means that the readers are designed to complete some fixed number of scans during a given amount of time. This scanning rate generally has a value that is between 30 and 200 scans/sec for 1D readers. In such readers, the results the successive scans are decoded in the order of their occurrence.
Imaging-based bar code symbol readers have a number advantages over laser scanning based bar code symbol readers, namely: they are more capable of reading stacked 2D symbologies, such as the PDF 417 symbology; more capable of reading matrix 2D symbologies, such as the Data Matrix symbology; more capable of reading bar codes regardless of their orientation; have lower manufacturing costs; and have the potential for use in other applications, which may or may not be related to bar code scanning, such as OCR, security systems, etc
Prior art imaging-based bar code symbol readers suffer from a number of additional shortcomings and drawbacks.
Most prior art hand held optical reading devices can be reprogrammed by reading bar codes from a bar code programming menu or with use of a local host processor as taught in U.S. Pat. No. 5,929,418. However, these devices are generally constrained to operate within the modes in which they have been programmed to operate, either in the field or on the bench, before deployment to end-user application environments. Consequently, the statically-configured nature of such prior art imaging-based bar code reading systems has limited their performance.
Prior art imaging-based bar code symbol readers with integrated illumination subsystems also support a relatively short range of the optical depth of field. This limits the capabilities of such systems from reading big or highly dense bar code labels.
Prior art imaging-based bar code symbol readers generally require separate apparatus for producing a visible aiming beam to help the user to aim the camera's field of view at the bar code label on a particular target object.
Prior art imaging-based bar code symbol readers generally require capturing multiple frames of image data of a bar code symbol, and special apparatus for synchronizing the decoding process with the image capture process within such readers, as required in U.S. Pat. Nos. 5,932,862 and 5,942,741 assigned to Welch Allyn, Inc.
Prior art imaging-based bar code symbol readers generally require large arrays of LEDs in order to flood the field of view within which a bar code symbol might reside during image capture operations, oftentimes wasting larges amounts of electrical power which can be significant in portable or mobile imaging-based readers.
Prior art imaging-based bar code symbol readers generally require processing the entire pixel data set of capture images to find and decode bar code symbols represented therein.
Many prior art Imaging-Based Bar Code Symbol Readers require the use of decoding algorithms that seek to find the orientation of bar code elements in a captured image by finding and analyzing the code words of 2-D bar code symbologies represented therein.
Some prior art imaging-based bar code symbol readers generally require the use of a manually-actuated trigger to actuate the image capture and processing cycle thereof.
Prior art imaging-based bar code symbol readers generally require separate sources of illumination for producing visible aiming beams and for producing visible illumination beams used to flood the field of view of the bar code reader.
Prior art imaging-based bar code symbol readers generally utilize during a single image capture and processing cycle, and a single decoding methodology for decoding bar code symbols represented in captured images.
Some prior art imaging-based bar code symbol readers require exposure control circuitry integrated with the image detection array for measuring the light exposure levels on selected portions thereof.
Also, many imaging-based readers also require processing portions of captured images to detect the image intensities thereof and determine the reflected light levels at the image detection component of the system, and thereafter to control the LED-based illumination sources to achieve the desired image exposure levels at the image detector.
Prior art imaging-based bar code symbol readers employing integrated illumination mechanisms control image brightness and contrast by controlling the time the image sensing device is exposed to the light reflected from the imaged objects. While this method has been proven for the CCD-based bar code scanners, it is not suitable, however, for the CMOS-based image sensing devices, which require a more sophisticated shuttering mechanism, leading to increased complexity, less reliability and, ultimately, more expensive bar code scanning systems.
Prior art imaging-based bar code symbol readers generally require the use of tables and bar code menus to manage which decoding algorithms are to be used within any particular mode of system operation to be programmed by reading bar code symbols from a bar code menu.
Finally, as a result of limitations in the mechanical, electrical, optical, and software design of prior art imaging-based bar code symbol readers, such prior art readers generally (i) fail to enable users to read high-density 1D bar codes with the ease and simplicity of laser scanning based bar code symbol readers, and also 2D symbologies, such as PDF 417 and Data Matrix, and (ii) are incapable of use in OCR and OCV, security applications, etc.
Thus, there is a great need in the art for an improved method of and apparatus for reading bar code symbols using image capture and processing techniques which avoid the shortcomings and drawbacks of prior art methods and apparatus.
Accordingly, a primary object of the present invention is to provide a novel method of and apparatus for enabling the reading of 1D and 2D bar code symbologies using image capture and processing based systems and devices, which avoid the shortcomings and drawbacks of prior art methods and apparatus.
Another object of the present invention is to provide a novel hand-supportable digital Imaging-Based Bar Code Symbol Reader capable of automatically reading 1D and 2D bar code symbologies using the state-of-the art imaging technology, and at the speed and with the reliability achieved by conventional laser scanning bar code symbol readers.
Another object of the present invention is to provide a novel hand-supportable digital Imaging-Based Bar Code Symbol Reader that is capable of reading stacked 2D symbologies such as PDF417, as well as Data Matrix.
Another object of the present invention is to provide a novel hand-supportable digital Imaging-Based Bar Code Symbol Reader that is capable of reading bar codes independent of their orientation with respect to the reader.
Another object of the present invention is to provide a novel hand-supportable digital Imaging-Based Bar Code Symbol Reader that utilizes an architecture that can be used in other applications, which may or may not be related to bar code scanning, such as OCR, OCV, security systems, etc.
Another object of the present invention is to provide a novel hand-supportable digital Imaging-Based Bar Code Symbol Reader that is capable of reading high-density bar codes, as simply and effectively as “flying-spot” type laser scanners do.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader capable of reading 1D and 2D bar code symbologies in a manner as convenient to the end users as when using a conventional laser scanning bar code symbol reader.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader having a Multi-Mode Bar Code Symbol Reading Subsystem, which is dynamically reconfigured in response to real-time processing operations carried out on captured images.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader having an integrated LED-Based Multi-Mode Illumination Subsystem for generating a visible narrow-area illumination beam for aiming on a target object and illuminating a 1D bar code symbol aligned therewith during a narrow-area image capture mode of the system, and thereafter illuminating randomly-oriented 1D or 2D bar code symbols on the target object during a wide-area image capture mode of the system.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing an integrated Multi-Mode Illumination Subsystem which generates a visible narrow-area illumination beam for aiming onto a target object, then illuminates a 1D bar code symbol aligned therewith, captures an image thereof, and thereafter generates a wide-area illumination beam for illuminating 1D or 2D bar code symbols on the object and capturing an image thereof and processing the same to read the bar codes represented therein.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing automatic object presence and range detection to control the generation of near-field and far-field wide-area illumination beams during bar code symbol imaging operations.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a CMOS-type image sensing array using global exposure control techniques.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a CMOS-type image sensing array with a band-pass optical filter subsystem integrated within the hand-supportable housing thereof, to allow only narrow-band illumination from the Multi-Mode Illumination Subsystem to expose the CMOS image sensing array.
Another object of the present invention is to provide a hand-supportable imaging-based auto-discriminating 1D/2D bar code symbol reader employing a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem dynamically reconfigurable in response to real-time image analysis during bar code reading operations.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a continuously operating Automatic Light Exposure Measurement and Illumination Control Subsystem.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a Multi-Mode LED-Based Illumination Subsystem.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader having 1D/2D auto-discrimination capabilities.
Another object of the present invention is to provide a method of performing auto-discrimination of 1D/2D bar code symbologies in an Imaging-Based Bar Code Symbol Reader having both narrow-area and wide-area image capture modes of operation.
Another object of the present invention is to provide a method of and apparatus for processing captured images within an Imaging-Based Bar Code Symbol Reader in order to read (i.e. recognize) bar code symbols graphically represented therein.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing helically-sweeping feature-extraction analysis on captured 2D images of objects, referenced from the center thereof.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing simple image processing operations applied in an outwardly-directed manner on captured narrow-area images of objects bearing 1D bar code symbols.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing an integrated LED-based Multi-Mode Illumination Subsystem with far-field and near-field illumination arrays responsive to control signals generated by an IR-based Object Presence and Range Detection Subsystem during a first mode of system operation and a System Control Subsystem during a second mode of system operation.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reading System employing an integrated LED-Based Multi-Mode Illumination Subsystem driven by an Automatic Light Exposure Measurement and Illumination Control Subsystem responsive to control activation signals generated by a CMOS image sensing array and an IR-based Object Presence and Range Detection Subsystem during object illumination and image capturing operations.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a CMOS image sensing array which activates LED illumination driver circuitry to expose a target object to narrowly-tuned LED-based illumination when all of rows of pixels in said CMOS image sensing array are in a state of integration, thereby capturing high quality images independent of the relative motion between said bar code reader and the target object.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Reading System, wherein the exposure time of narrow-band illumination onto its CMOS image sensing array is managed by controlling the illumination time of its LED-based illumination arrays using control signals generated by an Automatic Light Exposure Measurement and Illumination Control Subsystem and a CMOS image sensing array while controlling narrow-band illumination thereto by way of a band-pass optical filter subsystem.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Reading System employing a mechanism of controlling the image brightness and contrast by controlling the time the illumination subsystem illuminates the target object, thus, avoiding the need for a complex shuttering mechanism for CMOS-based image sensing arrays employed therein.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader employing a Multi-Mode Image-Processing Bar Code Symbol Reading Subsystem that automatically switches its modes of reading during a single bar code symbol reading cycle, and a plurality of different bar code symbology decoding algorithms are applied within each mode of reading.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein the Multi-Mode Image-Processing Symbol Reading Subsystem has a first multi-read (e.g. Omniscan/ROI-Specific) mode of operation, for adaptively processing and decoding a captured high-resolution image in a high-speed manner, applying adaptive learning techniques.
Another object of the present invention is to provide such a hand-supportable Imaging-Based Bar Code Symbol Reader with a Multi-Mode Image-Processing Bar Code Symbol Reading Subsystem having a first multi-read (e.g. Omniscan/ROI-Specific) mode of operation, wherein if during the Omniscan Mode of operation, code fragments associated with a PDF417 bar code symbol are detected within a ROI in a captured (narrow or wide) area image, but processing thereof is unsuccessful, then the Multi-Mode Image-Processing Symbol Reading Subsystem will automatically (i) enter its ROI-Specific Mode of operation described above, and then (ii) immediately commence processing of the captured image at the ROI specified by ROI coordinates acquired by feature vector analysis during the Omniscan Mode of operation.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader with a Multi-Mode Image-Processing Bar Code Symbol Reading Subsystem having a first multi-read (e.g. Omniscan/ROI-Specific) mode of operation, which offers an OmniScan Mode of operation to initially and rapidly read 1D bar code symbologies, and various kinds of 2D bar code symbologies whenever present in the captured image, and whenever a PDF417 symbology is detected (through its code fragments), the Multi-Mode Bar Code Symbol Reading Subsystem of the present invention can automatically switch (on-the-fly) to its ROI-specific Mode of operation to immediately process high-resolution image data at a specific ROI (at which there is a high likelihood of a bar code symbol present).
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein its Multi-Mode Image-Processing Symbol Reading Subsystem has a second multi-read (e.g. NoFinder/ROI-Specific) mode of operation, for adaptively processing a captured high-resolution image in a high-speed manner, applying adaptive learning techniques.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein the Multi-Mode Image-Processing Symbol Reading Subsystem has a second multi-read (e.g. NoFinder/ROI-Specific) mode of operation, and wherein if during the NoFinder Mode of operation, code fragments associated with a PDF417 bar code symbol are detected within the captured wide-area image, but decode processing thereof is unsuccessful, then the Multi-Mode Image-Processing Symbol Reading Subsystem will automatically (i) enter its ROI-specific mode of operation described above, and then (ii) immediately commence processing of the captured wide-area image at a ROI specified by y coordinates corresponding to the wide-area image processed during the NoFinder Mode of operation.
Another object of the present invention is to provide such a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein its Multi-Mode Image-Processing Symbol Reading Subsystem has a second multi-read (e.g. NoFinder/ROI-Specific) mode of operation, and wherein the No-Finder Mode can rapidly read 1D bar code symbologies whenever they are presented to the bar code symbol reader, and then whenever a 2D (e.g. PDF417) symbology is encountered, the bar code symbol reader can automatically switch its method of reading to the ROI-specific Mode and use features collected from a narrow (or wide) area image processed during the No-Finder Mode, so as to immediately process a specific ROI in a captured wide-area image frame, at which there is a high likelihood of a bar code symbol present, and to do so in a highly targeted manner.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein the Multi-Mode Image-Processing Bar Code Reading Subsystem has a third multi-read (e.g. NoFinder/Omniscan/ROI-Specific) mode of operation, for adaptively processing a captured high-resolution image in a high-speed manner, applying adaptive learning techniques.
Another object of the present invention is to provide such a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein the Multi-Mode Image-Processing Symbol Reading Subsystem has a third multi-read (e.g. NoFinder/Omniscan/ROI-Specific) mode of operation, and wherein if during the NoFinder Mode of operation, code fragments associated with a PDF417 bar code symbol are detected within the captured narrow-area image, but processing thereof is unsuccessful, then the Image Formation and Detection Subsystem (i) automatically captures a wide-area image, while the multi-mode image-processing symbol reading subsystem (ii) automatically enters its Omniscan Mode of operation described above, and then (iii) immediately commences processing of the captured wide-area image at a plurality of parallel spatially-separated (e.g. by 50 pixels) virtual scan lines, beginning at a start pixel and start angle specified by x and/or y coordinates of code fragments detected in the narrow-area image processed during the NoFinder Mode of operation; and, if the Omniscan Mode does not successfully read a bar code symbol within the ROI, then the Multi-Mode Image-Processing Symbol Reading Subsystem (i) automatically enters its ROI-specific mode of operation described above, and then (ii) immediately commences processing of the captured wide-area image at a ROI specified by the x,y coordinates corresponding to code fragments detected in the wide-area image processed during the Omniscan Mode of operation.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader, wherein the Multi-Mode Image-Processing Symbol Reading Subsystem has a third multi-read (e.g. NoFinder/Omniscan/ROI-Specific) mode of operation, and wherein the No-Finder Mode can rapidly acquire 1D bar code symbologies whenever they are presented to the bar code symbol reader, and then whenever a 2D symbology is encountered, the bar code symbol reader can automatically switch its method of reading to the OmniScan Mode, collected features on processed image data, and if this reading method is not successful, then the bar code reader can automatically switch its method of reading to the ROI-Specific Mode and use features collected during the Omniscan Mode to immediately process a specific ROI in a captured image frame, at which there is a high likelihood of a bar code symbol present, and to do so in a highly targeted manner.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader having an integrated Multi-Mode Illumination Subsystem that supports an optical depth of field larger than conventional imaging-based bar code symbol readers.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader having a Depth of Field (DOF) of about 0 mm to 200 mm (face to 8″) for 13.5 mil bar code symbols, wherein the resolution varies as function of object distance, it can decode 5 mil codes somewhere, its optics can resolve 4 mil codes somewhere, and it has a 45° Field of View (FOV).
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses a set of features and constructing a feature vector to determine a region of interest that may contain a bar code.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem which uses multiple, adaptive thresholds to determine and mark regions of interest (ROIs).
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses several image processing methods to determine bar code orientation in a hierarchical scheme.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having A Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses several different scan-data filtering techniques to generate bar-space counts.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having A Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem which uses bar and space stitching for correcting perspective and projection transforms, and also decoding damaged labels.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses incremental processing of image data while an image is being progressively acquired.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses low-rise histogram analysis to determine bright spots in captured images.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which detects all 1D symbologies and PDF417 omnidirectionally.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having A Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem which decodes UPC/EAN, 1205, C128, C39, C93, CBR omnidirectionally.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which uses low incidence of “false-positives”
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, which works with images stored in memory during a snap-shot mode of operation.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem which works with images acquired progressively during an incremental mode of operation.
Another object of the present invention is to provide an Imaging-Based Bar Code Symbol Reader having a Multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem which operates on captured high-resolution images having an image size of 32768×32768 pixels.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Symbol Reader which is simple to use, is inexpensive to manufacture, requires as few elements as possible, has a small as possible form factor, employs no moving elements (i.e. no dynamic focus, and no zoom), and employs all spherical surfaces and common glasses.
Another object of the present invention is to provide a low-cost, high-resolution Imaging-Based Bar Code Symbol Reader for omni-directional reading of regular 1D bar codes and two-dimensional bar codes, such as the PDF417 symbology.
Another object of the present invention is to provide such an Imaging-Based Bar Code Symbol Reader having target applications at point of sales in convenience stores, gas stations, quick markets, and liquor stores, where 2D bar code reading is required for age verification and the like.
Another object of the present invention is to provide an improved Imaging-Based Bar Code Symbol Reading Engine for integration into diverse types of information capture and processing systems, such as bar code driven portable data terminals (PDT) having wireless interfaces with their base stations, reverse-vending machines, retail bar code driven kiosks, and the like.
Another object of the present invention is to provide a novel method of and apparatus for enabling global exposure control in an Imaging-Based Bar Code Symbol Reader using a CMOS image sensing array.
Another object of the present invention is to provide a hand-supportable Imaging-Based Bar Code Reading System that employs a novel method of illumination, which automatically reduces noise in detected digital images caused by specular reflection during illumination and imaging operations.
Another object of the present invention is to provide a novel method of and system for producing a composite DOF plot that completely theoretically characterizes the Depth of Field (DOF) of the image formation optics employed in an Imaging-Based Bar Code Symbol Reader.
These and other objects of the present invention will become more apparently understood hereinafter and in the Claims to Invention appended hereto.
For a more complete understanding of how to practice the Objects of the Present Invention, the following Detailed Description of the Illustrative Embodiments can be read in conjunction with the accompanying Drawings, briefly described below.
FIG. 2A1 is a schematic block diagram representative of a system design for the hand-supportable Digital Imaging-Based Bar Code Symbol Reading Device illustrated in
FIG. 2A2 is a schematic block representation of the multi-Mode Image-Processing Based Bar Code Symbol Reading Subsystem, realized using the three-tier computing platform illustrated in
FIG. 3F1 is a first schematic representation showing, from a side view, the physical position of the LEDs used in the Multi-Mode Illumination Subsystem, in relation to the image formation lens assembly, the image sensing array employed therein (e.g. a Motorola MCM20027 or National Semiconductor LM9638 CMOS 2-D image sensing array having a 1280×1024 pixel resolution (½″ format), 6 micron pixel size, 13.5 Mhz clock rate, with randomly accessible region of interest (ROI) window capabilities);
FIG. 3F2 is a second schematic representation showing, from an axial view, the physical layout of the LEDs used in the Multi-Mode Illumination Subsystem of the Digital Imaging-Based Bar Code Reading Device, shown in relation to the image formation lens assembly, and the image sensing array employed therein;
FIG. 4I1 through 4I3, taken together, show an exemplary computer program written in ZPL (Zemax Programming Language) and capable of generating the composite DOF chart;
FIG. 5A1 is a schematic representation specifying the range of narrow-area illumination, near-field wide-area illumination, and far-field wide-area illumination produced from the LED-Based Multi-Mode Illumination Subsystem employed in the hand-supportable Digital Imaging-Based Bar Code Reading Device of the present invention;
FIG. 5A2 is a table specifying the geometrical properties and characteristics of each illumination mode supported by the LED-Based Multi-Mode Illumination Subsystem employed in the hand-supportable Digital Imaging-Based Bar Code Reading Device of the present invention;
FIG. 5C1 is graphical representation showing the Lambertian emittance versus wavelength characteristics of the LEDs used to implement the narrow-area illumination array in the Multi-Mode Illumination Subsystem of the present invention;
FIG. 5C2 is graphical representation showing the Lambertian emittance versus polar angle characteristics of the LEDs used to implement the narrow-area illumination array in the Multi-Mode Illumination Subsystem of the present invention;
FIG. 5C3 is schematic representation of the cylindrical lenses used before the LEDs in the narrow-area (linear) illumination arrays in the Digital Imaging-Based Bar Code Reading Device of the present invention, wherein the first surface of the cylindrical lens is curved vertically to create a narrow-area (i.e. linear) illumination pattern, and the second surface of the cylindrical lens is curved horizontally to control the height of the of the narrow-area illumination pattern to produce a narrow-area (i.e. linear) illumination field;
FIG. 5C4 is a schematic representation of the layout of the pairs of LEDs and two cylindrical lenses used to implement the narrow-area (linear) illumination array employed in the Digital Imaging-Based Bar Code Reading Device of the present invention;
FIG. 5C5 is a set of six illumination profiles for the narrow-area (linear) illumination fields produced by the narrow-area (linear) illumination array employed in the Digital Imaging-Based Bar Code Reading Device of the illustrative embodiment, taken at 30, 40, 50, 80, 120, and 220 millimeters along the field away from the imaging window (i.e. working distance) of the Digital Imaging-Based Bar Code Reading Device, illustrating that the spatial intensity of the narrow-area illumination field begins to become substantially uniform at about 80 millimeters;
FIG. 5D1 is graphical representation showing the Lambertian emittance versus wavelength characteristics of the LEDs used to implement the wide area illumination arrays employed in the Digital Imaging-Based Bar Code Reading Device of the present invention;
FIG. 5D2 is graphical representation showing the Lambertian emittance versus polar angle characteristics of the LEDs used to implement the far-field and near-field wide-area illumination arrays employed in the Digital Imaging-Based Bar Code Reading Device of the present invention;
FIG. 5D3 is schematic representation of the plano-convex lenses used before the LEDs in the far-field wide-area illumination arrays in the illumination subsystem of the present invention,
FIG. 5D4 is a schematic representation of the layout of LEDs and plano-convex lenses used to implement the far and narrow wide-area illumination array employed in the Digital Imaging-Based Bar Code Reading Device of the present invention, wherein the illumination beam produced therefrom is aimed by positioning the lenses at angles before the LEDs in the near-field (and far-field) wide-area illumination arrays employed therein;
FIG. 5D5 is a set of six illumination profiles for the near-field wide-area illumination fields produced by the near-field wide-area illumination arrays employed in the Digital Imaging-Based Bar Code Reading Device of the illustrative embodiment, taken at 10, 20, 30, 40, 60, and 100 millimeters along the field away from the imaging window (i.e. working distance) of the Digital Imaging-Based Bar Code Reading Device, illustrating that the spatial intensity of the near-field wide-area illumination field begins to become substantially uniform at about 40 millimeters;
FIG. 5D6 is a set of three illumination profiles for the far-field wide-area illumination fields produced by the far-field wide-area illumination arrays employed in the Digital Imaging-Based Bar Code Reading Device of the illustrative embodiment, taken at 100, 150 and 220 millimeters along the field away from the imaging window (i.e. working distance) of the Digital Imaging-Based Bar Code Reading Device, illustrating that the spatial intensity of the far-field wide-area illumination field begins to become substantially uniform at about 100 millimeters;
FIG. 5D7 is a table illustrating a preferred method of calculating the pixel intensity value for the center of the far-field wide-area illumination field produced from the Multi-Mode Illumination Subsystem employed in the Digital Imaging-Based Bar Code Reading Device of the present invention, showing a significant signal strength (greater than 80 DN);
FIG. 6A1 is a schematic representation showing the red-wavelength reflecting (high-pass) imaging window integrated within the hand-supportable housing of the Digital Imaging-Based Bar Code Reading Device, and the low-pass optical filter disposed before its CMOS image sensing array therewithin, cooperate to form a narrow-band optical filter subsystem for transmitting substantially only the very narrow band of wavelengths (e.g. 620-700 nanometers) of visible illumination produced from the Multi-Mode Illumination Subsystem employed in the Digital Imaging-Based Bar Code Reading Device, and rejecting all other optical wavelengths outside this narrow optical band however generated (i.e. ambient light sources);
FIG. 6A2 is schematic representation of transmission characteristics (energy versus wavelength) associated with the low-pass optical filter element disposed after the red-wavelength reflecting high-pass imaging window within the hand-supportable housing of the Digital Imaging-Based Bar Code Reading Device, but before its CMOS image sensing array, showing that optical wavelengths below 620 nanometers are transmitted and wavelengths above 620 nm are substantially blocked (e.g. absorbed or reflected);
FIG. 6A3 is schematic representation of transmission characteristics (energy versus wavelength) associated with the red-wavelength reflecting high-pass imaging window integrated within the hand-supportable housing of the Digital Imaging-Based Bar Code Reading Device of the present invention, showing that optical wavelengths above 700 nanometers are transmitted and wavelengths below 700 nm are substantially blocked (e.g. absorbed or reflected);
FIG. 6A4 is a schematic representation of the transmission characteristics of the narrow-based spectral filter subsystem integrated within the hand-supportable Imaging-Based Bar Code Symbol Reading Device of the present invention, plotted against the spectral characteristics of the LED-emissions produced from the Multi-Mode Illumination Subsystem of the illustrative embodiment of the present invention;
FIGS. 7C1 and 7C2 set forth a schematic diagram of a hybrid analog/digital circuit designed to implement the Automatic Light Exposure Measurement and Illumination Control Subsystem of
FIG. 7E1 and 7E2, taken together, set forth a flow chart describing the steps involved in carrying out the global exposure control method of the present invention, within the Digital Imaging-Based Bar Code Reading Device of the illustrative embodiment;
FIGS. 12E1 and 12E2 set forth a schematic representation of the Input/Output Subsystem software module which provides a means for creating and deleting input/output connections, and communicating with external systems and devices;
FIGS. 12F1 and 12F2 set forth a schematic representation of the Timer Subsystem which provides a means for creating, deleting, and utilizing logical timers;
FIGS. 12G1 and 12G2 set forth a schematic representation of the Memory Control Subsystem which provides an interface for managing the thread-level dynamic memory with the device, fully compatible with standard dynamic memory management functions, as well as a means for buffering collected data;
Referring to the figures in the accompanying Drawings, the various illustrative embodiments of the hand-supportable imaging-based bar code symbol reading system of the present invention will be described in great detail, wherein like elements will be indicated using like reference numerals.
Hand-Supportable Digital Imaging-Based Bar Code Reading Device of the First Illustrative Embodiment of the Present Invention
Referring to
As best shown in
In other embodiments of the present invention shown in
Schematic Block Functional Diagram as System Design Model for the Hand-Supportable Digital Image-Based Bar Code Reading Device of the Present Invention
As shown in the system design model of FIG. 2A1, the hand-supportable Digital Imaging-Based Bar Code Symbol Reading Device 1 of the illustrative embodiment comprises: an IR-based Object Presence and Range Detection Subsystem 12; a Multi-Mode Area-type Image Formation and Detection (i.e. camera) Subsystem 13 having narrow-area mode of image capture, near-field wide-area mode of image capture, and a far-field wide-area mode of image capture; a Multi-Mode LED-Based Illumination Subsystem 14 having narrow-area mode of illumination, near-field wide-area mode of illumination, and a far-field wide-area mode of illumination; an Automatic Light Exposure Measurement and Illumination Control Subsystem 15; an Image Capturing and Buffering Subsystem 16; a Multi-Mode Image-Processing Bar Code Symbol Reading Subsystem 17 having five modes of image-processing based bar code symbol reading indicated in FIG. 2A2 and to be described in detail hereinabove; an Input/Output Subsystem 18; a manually-actuatable trigger switch 2C for sending user-originated control activation signals to the device; a System Mode Configuration Parameter Table 70; and a System Control Subsystem 18 integrated with each of the above-described subsystems, as shown.
The primary function of the IR-based Object Presence and Range Detection Subsystem 12 is to automatically produce an IR-based object detection field 20 within the FOV of the Multi-Mode Image Formation and Detection Subsystem 13, detect the presence of an object within predetermined regions of the object detection field (20A, 20B), and generate control activation signals A1 which are supplied to the System Control Subsystem 19 for indicating when and where an object is detected within the object detection field of the system.
In the first illustrative embodiment, the Multi-Mode Image Formation And Detection (I.E. Camera) Subsystem 13 has image formation (camera) optics 21 for producing a field of view (FOV) 23 upon an object to be imaged and a CMOS area-image sensing array 22 for detecting imaged light reflected off the object during illumination and image acquistion/capture operations.
In the first illustrative embodiment, the primary function of the Multi-Mode LED-Based Illumination Subsystem 14 is to produce a narrow-area illumination field 24, near-field wide-area illumination field 25, and a far-field wide-area illumination field 25, each having a narrow optical-bandwidth and confined within the FOV of the Multi-Mode Image Formation And Detection Subsystem 13 during narrow-area and wide-area modes of imaging, respectively. This arrangement is designed to ensure that only light transmitted from the Multi-Mode Illumination Subsystem 14 and reflected from the illuminated object is ultimately transmitted through a narrow-band transmission-type optical filter subsystem 4 realized by (1) high-pass (i.e. red-wavelength reflecting) filter element 4A mounted at the light transmission aperture 3 immediately in front of panel 5, and (2) low-pass filter element 4B mounted either before the image sensing array 22 or anywhere after panel 5 as shown in
The primary function of the narrow-band integrated optical filter subsystem 4 is to ensure that the CMOS image sensing array 22 only receives the narrow-band visible illumination transmitted by the three sets of LED-based illumination arrays 27, 28 and 29 driven by LED driver circuitry 30 associated with the Multi-Mode Illumination Subsystem 14, whereas all other components of ambient light collected by the light collection optics are substantially rejected at the image sensing array 22, thereby providing improved SNR thereat, thus improving the performance of the system.
The primary function of the Automatic Light Exposure Measurement and Illumination Control Subsystem 15 is to twofold: (1) to measure, in real-time, the power density [joules/cm] of photonic energy (i.e. light) collected by the optics of the system at about its image sensing array 22, and generate Auto-Exposure Control Signals indicating the amount of exposure required for good image formation and detection; and (2) in combination with Illumination Array Selection Control Signal provided by the System Control Subsystem 19, automatically drive and control the output power of selected LED arrays 27, 28 and/or 29 in the Multi-Mode Illumination Subsystem, so that objects within the FOV of the system are optimally exposed to LED-based illumination and optimal images are formed and detected at the image sensing array 22.
The primary function of the Image Capturing and Buffering Subsystem 16 is to (1) detect the entire 2-D image focused onto the 2D image sensing array 22 by the image formation optics 21 of the system, (2) generate a frame of digital pixel data 31 for either a selected region of interest of the captured image frame, or for the entire detected image, and then (3) buffer each frame of image data as it is captured. Notably, in the illustrative embodiment, a single 2D image frame (31) is captured during each image capture and processing cycle, or during a particular stage of a processing cycle, so as to eliminate the problems associated with image frame overwriting, and synchronization of image capture and decoding processes, as addressed in U.S. Pat. Nos. 5,932,862 and 5,942,741 assigned to Welch Allyn, and incorporated herein by reference.
The primary function of the Multi-Mode Imaging-Based Bar Code Symbol Reading Subsystem 17 is to process images that have been captured and buffered by the Image Capturing and Buffering Subsystem 16, during both narrow-area and wide-area illumination modes of system operation. Such image processing operation includes image-based bar code decoding methods illustrated in
The primary function of the Input/Output Subsystem 18 is to support standard and/or proprietary communication interfaces with external host systems and devices, and output processed image data and the like to such external host systems or devices by way of such interfaces. Examples of such interfaces, and technology for implementing the same, are given in U.S. Pat. No. 6,619,549, incorporated herein by reference in its entirety.
The primary function of the System Control Subsystem 19 is to provide some predetermined degree of control or management signaling services to each subsystem component integrated, as shown. While this subsystem can be implemented by a programmed microprocessor, in the illustrative embodiment, it is implemented by the three-tier software architecture supported on computing platform shown in
The primary function of the manually-activatable Trigger Switch 2C integrated with the hand-supportable housing is to enable the user to generate a control activation signal upon manually depressing the Trigger Switch 2C, and to provide this control activation signal to the System Control Subsystem 19 for use in carrying out its complex system and subsystem control operations, described in detail herein.
The primary function of the System Mode Configuration Parameter Table 70 is to store (in non-volatile/persistent memory) a set of configuration parameters for each of the available Programmable Modes of System Operation specified in the Programmable Mode of Operation Table shown in
The detailed structure and function of each subsystem will now be described in detail above.
Schematic Diagram as System Implementation Model for the Hand-Supportable Digital Imaging-Based Bar Code Reading Device of the Present Invention
In the illustrative embodiment, the image formation optics 21 supported by the bar code reader provides a field of view of 103 mm at the nominal focal distance to the target, of approximately 70 mm from the edge of the bar code reader. The minimal size of the field of view (FOV) is 62 mm at the nominal focal distance to the target of approximately 10 mm. Preliminary tests of the parameters of the optics are shown on
The Multi-Mode Illumination Subsystem 14 is designed to cover the optical field of view (FOV) 23 of the bar code symbol reader with sufficient illumination to generate high-contrast images of bar codes located at both short and long distances from the imaging window. The illumination subsystem also provides a narrow-area (thin height) targeting beam 24 having dual purposes: (a) to indicate to the user where the optical view of the reader is; and (b) to allow a quick scan of just a few lines of the image and attempt a super-fast bar code decoding if the bar code is aligned properly. If the bar code is not aligned for a linearly illuminated image to decode, then the entire field of view is illuminated with a wide-area illumination field 25 or 26 and the image of the entire field of view is acquired by Image Capture and Buffering Subsystem 16 and processed by Multi-Mode Bar Code Symbol Reading Subsystem 17, to ensure reading of a bar code symbol presented therein regardless of its orientation.
The interface board 43 employed within the bar code symbol reader provides the hardware communication interfaces for the bar code symbol reader to communicate with the outside world. The interfaces implemented in system will typically include RS232, keyboard wedge, and/or USB, or some combination of the above, as well as others required or demanded by the particular application at hand.
Specification of the Area-Type Image Formation and Detection (i.e. Camera) Subsystem During its Narrow-Area (Linear) and Wide-Area Modes of Imaging, Supported by the Narrow and Wide Area Fields of Narrow-Band Illumination Respectively
As shown in
The Multi-Mode Illumination Subsystem 14 includes three different LED-based illumination arrays 27, 28 and 29 mounted on the light transmission window panel 5, and arranged about the light transmission window 4A. Each illumination array is designed to illuminate a different portion of the FOV of the bar code reader during different modes of operation. During the narrow-area (linear) illumination mode of the Multi-Mode Illumination Subsystem 14, the central narrow-wide portion of the FOV indicated by 23 is illuminated by the narrow-area illumination array 27, shown in
In
As shown in
As shown in
In FIGS. 3F1 and 3F2, the lens holding assembly 45 and imaging sensing array 22 are mounted along an optical path defined along the central axis of the system. In the illustrative embodiment, the image sensing array 22 has, for example, a 1280×1024 pixel resolution (½″ format), 6 micron pixel size, with randomly accessible region of interest (ROI) window capabilities. It is understood, though, that many others kinds of imaging sensing devices (e.g. CCD) can be used to practice the principles of the present invention disclosed herein, without departing from the scope or spirit of the present invention.
Method of Designing the Image Formation (i.e. Camera) Optics Within the Image-Based Bar Code Reader of the Present Invention Using the Modulation Transfer Function (MTF)
The function of the image formation (i.e. camera) optics in the Image Formation and Detection Subsystem 13 is to form and project, as accurately as possible, an image of the object being formed on the image sensing array 22. In practice, it is impossible to get an absolutely perfect image reproduction of the object with no loss of information, because the quality of the image is limited by various effects. These effects include: (i) diffraction, always present in even the very best lenses; (ii) aberrations which, if present, can generally only be minimized, not eliminated; (iii) variation of the distance to the object, especially if the lens cannot dynamically adjust its focus; and so on. Before spending time and money to produce a lens assembly, it is necessary to determine that a given lens design for the bar code symbol reader of the present invention will perform well enough to satisfy the requirements of the application. Thus, it will be extremely helpful to (i) establish one or more design criteria to quantify the lens performance, and (ii) optimize the design around these criteria until the desired performance is achieved.
The preferred criterion for designing the image formation optics in the system hereof is the modulation transfer function, or MTF. The MTF provides a measure of the contrast present in an object or image. Qualitatively, contrast may be thought of as the difference between light and dark regions in the object or image. The greater the difference in “brightness” between two regions of the object or image, the greater the contrast. Considering the image, given the data from the image sensor, a quantitative treatment is possible. On the common 8 bit scale, a pixel that is totally black is assigned the value 0, while a pixel that is totally saturated white is assigned the value 255. Also, the closer the spacing of the object features, then the worse the reproduction of that contrast in the image of the object. A mathematical expression is required to quantify the amount of contrast present in an object or image, so that its variation after imaging through the optics may be assessed. A useful contrast measure can be defined as the modulation M of a given region in the object, given as follows:
The greater the contrast in the object or image, the greater the value of M, up to a maximum of 1. On the other hand, no contrast whatever in the object or image (i.e. no distinguishable features in the region of the object in question) yields a modulation of 0. To determine how well the image formation optics preserves the modulation of the target object in the image, it is only necessary to form a ratio of the image modulation to the object modulation, which is the MTF:
Perfect reproduction of the object contrast in the image (impossible in practice) results in an MTF of 1. A total loss of the object contrast in the image gives an MTF of 0.
The MTF is a useful concept in optical design because it simultaneously accounts for the impact of any effect that degrades the quality of the image, usually referred to as blurring. As described previously, these effects include diffraction, aberrations (spherical, chromatic, coma, astigmatism, field curvature) and deviation of the object distance from its nominal value. It should be mentioned for sake of completeness, however, that MTF is not a single perfect or all-encompassing measure of image quality. One potential drawback is that examining the MTF reveals only the total impact of all effects simultaneously, and cannot distinguish between blurring caused by one defect or another. If it is necessary to determine what effects are degrading the MTF, and to what extent for each, then other methods must be used, and other criteria examined. In addition, there are potentially negative image characteristics, such as distortion, that are not revealed at all by the MTF. If the optical designer is not careful, then it is possible that an image with an MTF close to the diffraction limit, which is as good as it is possible to get, may have distortion so bad that it is unusable in the application at hand.
In accordance with the design method of the present invention, after calculating the MTF for a given optical design, an additional criterion is necessary to specify what MTF is good enough for the application in question. For bar code decoding applications, a useful rule of thumb is that 0.3 MTF or better is needed for decoding software to work reliably well in an Imaging-Based Bar Code Symbol Reader. The design strategy employed on the Imaging-Based Bar Code Symbol Reader of the present invention is to determine, as a function of object distance, the code element size (in millimeters) at which the MTF of the resulting image falls to 0.3. In other words, at each object distance, the optical designer should determine what is the smallest size of code element (in millimeters) that can be imaged well enough to be read by the Multi-Mode Image-Processing Bar Code Reading Subsystem 17 of the present invention. At one stage of the design of the image formation optics employed in the illustrative embodiment, the plot of minimum code element size against object distance is generated, as shown in
Method of Theoretically Characterizing the DOF of the Image Formation Optics Employed in the Imaging-Based Bar Code Reader of the Present Invention
Referring to FIGS. 4D through 4I3, a novel software-enabled design tool and method will now be described.
In general, the software-enabled optical design tool provides a novel way of and means for completely theoretically characterizing, and graphically viewing and interpreting the composite DOF of image formation optics (e.g. such as 21 employed in the Imaging-Based Bar Code Symbol Reader of the present invention) as well as other imaging-based optical readers, while simultaneously accounting for optical performance and image sensor limitations, over all desired object distances and for all desired code mil sizes.
Given an arrangement of lens elements for the design of the image formation optics 21, the optical design method of the present invention involves using a software-based optical design tool, as described in FIGS. 4I1 through 4I3, to generate the composite DOF chart in accordance with the present invention. The functions required by this optical design tool will be described below. The software-based optical design tool (i.e. computer program) of the illustrative embodiment, described in FIGS. 4I1 through 4I3, has been developed using Zemax® optical modeling software, programmed in ZPL (Zemax Programming Language) in accordance with the principles of the present invention described in detail below.
The first function required by the optical design tool of the present invention is that it must be able to calculate the modulation transfer function (MTF) of the image resulting from image formation optics 21, plotted as a function of object distance. The general industry rule of thumb is that a 0.3 MTF is the minimum acceptable for bar code decoding. Therefore, this software-based optical design tool must be able to determine, as a function of object distance, the object spatial-frequency at which the MTF of the image drops to 0.3.
The second function required by the optical design tool of the present invention is that it must be able to convert the object spatial-frequency to code mil size, and then this data should be plotted against object distance. A resulting plot is shown in
However, optical performance of the image formation optics is not the only factor determining the capacity of an Imaging-Based Bar Code Symbol Reader to read bar code symbols having bar code elements of a given width. Image-processing based bar code symbol decoding software requires a certain minimum number of sensor pixel “fields of view” to be projected onto each minimum width code element, within the field of the view of the image formation optics. The general industry rule of thumb is that 1.6 pixels are required per narrow element for acceptable decoding. In accordance with the present invention, this rule has been expanded to the range of 1.4 to 1.6 pixels per narrow element, and can be considered a limit imposed by sampling theory that will restrict the ultimate performance of the bar code symbol reader 1 regardless of the individual performance of its image formation optics 21.
Therefore, the third function required by the optical design tool of the present invention is that it must be able to calculate, as a function of object distance, the size of the field of view of a single sensor pixel when projected through the image formation optics 21 and out into object space (that is, accounting for the optical magnification of the image formation optics 21). These linear functions, both for the 1.4 and 1.6 pixel rules, are preferably plotted on the same axes as the optical performance curve, as shown in
Having described the primary functionalities of the optical design tool of the present invention, and how to generate a composite DOF plot as shown in
As shown in
Preferably, the optical design tool of the present invention will be provide with a simple graphical user interface (GUI) may be useful, supporting pop-up windows to enable the user to easily type numbers into the program. Also, the optical design tool will preferably implement various methods to allow the user to specify some of the required numbers while the program is running, as oppose to having to change the numbers in the program file.
A less preferred alternative way of practicing the optical design method of the present invention would be to manually construct the composite DOF plot by examining MTF data and plotting the results in Excel, for example. However, this approach is labor intensive and does not offer any appreciable increase in accuracy, as does the use of the software-enabled optical design tool described in FIGS. 4I1 through 4I3.
Specification of Multi-Mode LED-Based Illumination Subsystem Employed in the Hand-Supportable Image-Based Bar Code Reading System of the Present Invention
In the illustrative embodiment, the LED-Based Multi-Mode Illumination Subsystem 14 comprises: narrow-area illumination array 27; near-field wide-area illumination array 28; and far-field wide-area illumination array 29. The three fields of narrow-band illumination produced by the three illumination arrays of subsystem 14 are schematically depicted in FIG. 5A1. As will be described hereinafter, with reference to
As shown in
The near-field wide-area illumination array 28 includes two sets of (flattop) LED light sources 28A1-28A6 and 28A7-28A13 without any lenses mounted on the top and bottom portions of the light transmission window panel 5, as shown in
As shown in
Narrow-Area (Linear) Illumination Arrays Employed in the Multi-Mode Illumination Subsystem
As shown in FIG. 5A1, the narrow-area (linear) illumination field 24 extends from about 30 mm to about 200 mm within the working range of the system, and covers both the near and far fields of the system. The near-field wide-area illumination field 25 extends from about 0 mm to about 100 mm within the working range of the system. The far-field wide-area illumination field 26 extends from about 100 mm to about 200 mm within the working range of the system. The Table shown in FIG. 5A2 specifies the geometrical properties and characteristics of each illumination mode supported by the Multi-Mode LED-based Illumination Subsystem 14 of the present invention.
The narrow-area illumination array 27 employed in the Multi-Mode LED-Based Illumination Subsystem 14 is optically designed to illuminate a thin area at the center of the field of view (FOV) of the Imaging-Based Bar Code Symbol Reader, measured from the boundary of the left side of the field of view to the boundary of its right side, as specified in FIG. 5A1. As will be described in greater detail hereinafter, the narrow-area illumination field 24 is automatically generated by the Multi-Mode LED-Based Illumination Subsystem 14 in response to the detection of an object within the object detection field of the automatic IR-based Object Presence and Range Detection Subsystem 12. In general, the object detection field of the IR-based Object Presence and Range Detection Subsystem 12 and the FOV of the Image Formation and Detection Subsystem 13 are spatially co-extensive and the object detection field spatially overlaps the FOV along the entire working distance of the Imaging-Based Bar Code Symbol Reader. The narrow-area illumination field 24, produced in response to the detection of an object, serves a dual purpose: it provides a visual indication to an operator about the location of the optical field of view of the bar code symbol reader, thus, serves as a field of view aiming instrument; and during its image acquisition mode, the narrow-area illumination beam is used to illuminated a thin area of the FOV within which an object resides, and a narrow 2-D image of the object can be rapidly captured (by a small number of rows of pixels in the image sensing array 22), buffered and processed in order to read any linear bar code symbols that may be represented therewithin.
FIG. 5C1 shows the Lambertian emittance versus wavelength characteristics of the LEDs used to implement the narrow-area illumination array 27 in the Multi-Mode Illumination Subsystem 14. FIG. 5C2 shows the Lambertian emittance versus polar angle characteristics of the same LEDs. FIG. 5C3 shows the cylindrical lenses used before the LEDs (633 nm InGaAlP) in the narrow-area (linear) illumination arrays in the illumination subsystem of the present invention. As shown, the first surface of the cylindrical lens is curved vertically to create a narrow-area (linear) illumination pattern, and the second surface of the cylindrical lens is curved horizontally to control the height of the of the linear illumination pattern to produce a narrow-area illumination pattern. FIG. 5C4 shows the layout of the pairs of LEDs and two cylindrical lenses used to implement the narrow-area illumination array of the illumination subsystem of the present invention. In the illustrative embodiment, each LED produces about a total output power of about 11.7 mW under typical conditions. FIG. 5C5 sets forth a set of six illumination profiles for the narrow-area illumination fields produced by the narrow-area illumination arrays of the illustrative embodiment, taken at 30, 40, 50, 80, 120, and 220 millimeters along the field away from the imaging window (i.e. working distance) of the bar code reader of the present invention, illustrating that the spatial intensity of the area-area illumination field begins to become substantially uniform at about 80 millimeters. As shown, the narrow-area illumination beam is usable beginning 40 mm from the light transmission/imaging window.
Near-Field Wide-Area Illumination Arrays Employed in the Multi-Mode Illumination Subsystem
The near-field wide-area illumination array 28 employed in the LED-Based Multi-Mode Illumination Subsystem 14 is optically designed to illuminate a wide area over a near-field portion of the field of view (FOV) of the Imaging-Based Bar Code Symbol Reader, as defined in FIG. 5A1. As will be described in greater detail hereinafter, the near-field wide-area illumination field 28 is automatically generated by the LED-based Multi-Mode Illumination Subsystem 14 in response to: (1) the detection of any object within the near-field of the system by the IR-based Object Presence and Range Detection Subsystem 12; and (2) one or more of following events, including, for example: (i) failure of the image processor to successfully decode process a linear bar code symbol during the narrow-area illumination mode; (ii) detection of code elements such as control words associated with a 2-D bar code symbol; and/or (iii) detection of pixel data in the image which indicates that object was captured in a state of focus.
In general, the object detection field of the IR-based Object Presence and Range Detection Subsystem 12 and the FOV of the Image Formation And Detection Subsystem 13 are spatially co-extensive and the object detection field spatially overlaps the FOV along the entire working distance of the Imaging-Based Bar Code Symbol Reader. The near-field wide-area illumination field 23, produced in response to one or more of the events described above, illuminates a wide area over a near-field portion of the field of view (FOV) of the Imaging-Based Bar Code Symbol Reader, as defined in
FIG. 5D1 shows the Lambertian emittance versus wavelength characteristics of the LEDs used to implement the wide area illumination arrays in the illumination subsystem of the present invention. FIG. 5D2 shows the Lambertian emittance versus polar angle characteristics of the LEDs used to implement the near field wide-area illumination arrays in the Multi-Mode Illumination Subsystem 14. FIG. 5D4 is geometrical the layout of LEDs used to implement the narrow wide-area illumination array of the Multi-Mode Illumination Subsystem 14, wherein the illumination beam produced therefrom is aimed by angling the lenses before the LEDs in the near-field wide-area illumination arrays of the Multi-Mode Illumination Subsystem 14. FIG. 5D5 sets forth a set of six illumination profiles for the near-field wide-area illumination fields produced by the near-field wide-area illumination arrays of the illustrative embodiment, taken at 10, 20, 30, 40, 60, and 100 millimeters along the field away from the imaging window (i.e. working distance) of the Imaging-Based Bar Code Symbol Reader 1. These plots illustrate that the spatial intensity of the near-field wide-area illumination field begins to become substantially uniform at about 40 millimeters (i.e. center:edge=2:1 max).
Far-Field Wide-Area Illumination Arrays Employed in the Multi-Mode Illumination Subsystem
The far-field wide-area illumination array 26 employed in the Multi-Mode LED-based Illumination Subsystem 14 is optically designed to illuminate a wide area over a far-field portion of the field of view (FOV) of the Imaging-Based Bar Code Symbol Reader, as defined in FIG. 5A1. As will be described in greater detail hereinafter, the far-field wide-area illumination field 26 is automatically generated by the LED-Based Multi-Mode Illumination Subsystem 14 in response to: (1) the detection of any object within the near-field of the system by the IR-based Object Presence and Range Detection Subsystem 12; and (2) one or more of following events, including, for example: (i) failure of the image processor to successfully decode process a linear bar code symbol during the narrow-area illumination mode; (ii) detection of code elements such as control words associated with a 2-D bar code symbol; and/or (iii) detection of pixel data in the image which indicates that object was captured in a state of focus. In general, the object detection field of the IR-based Object Presence and Range Detection Subsystem 12 and the FOV 23 of the image detection and formation subsystem 13 are spatially co-extensive and the object detection field 20 spatially overlaps the FOV 23 along the entire working distance of the Imaging-Based Bar Code Symbol Reader. The far-field wide-area illumination field 26, produced in response to one or more of the events described above, illuminates a wide area over a far-field portion of the field of view (FOV) of the Imaging-Based Bar Code Symbol Reader, as defined in
During both near and far field wide-area illumination modes of operation, the Automatic Light Exposure Measurement and Illumination Control Subsystem (i.e. module) 15 measures and controls the time duration which the Multi-Mode Illumination Subsystem 14 exposes the image sensing array 22 to narrow-band illumination (e.g. 633 nanometers, with approximately 15 nm bandwidth) during the image capturing/acquisition process, and automatically terminates the generation of such illumination when such computed time duration expires. In accordance with the principles of the present invention, this global exposure control process ensures that each and every acquired image has good contrast and is not saturated, two conditions essential for consistent and reliable bar code reading
FIG. 5D1 shows the Lambertian emittance versus wavelength characteristics of the LEDs used to implement the far-field wide-area illumination arrays 29 in the Multi-Mode Illumination Subsystem 14 FIG. 5D2 shows the Lambertian emittance versus polar angle characteristics of the LEDs used to implement the same. FIG. 5D3 shows the plano-convex lenses used before the LEDs in the far-field wide-area illumination arrays in the Multi-Mode Illumination Subsystem 14. FIG. 5D4 shows a layout of LEDs and plano-convex lenses used to implement the far wide-area illumination array 29 of the illumination subsystem, wherein the illumination beam produced therefrom is aimed by angling the lenses before the LEDs in the far-field wide-area illumination arrays of the Multi-Mode Illumination Subsystem 14. FIG. 5D6 sets forth a set of three illumination profiles for the far-field wide-area illumination fields produced by the far-field wide-area illumination arrays of the illustrative embodiment, taken at 100, 150 and 220 millimeters along the field away from the imaging window (i.e. working distance) of the Imaging-Based Bar Code Symbol Reader 1, illustrating that the spatial intensity of the far-field wide-area illumination field begins to become substantially uniform at about 100 millimeters. FIG. 5D7 shows a table illustrating a preferred method of calculating the pixel intensity value for the center of the far field wide-area illumination field produced from the Multi-Mode Illumination Subsystem 14, showing a significant signal strength (greater than 80 DN at the far center field).
Specification of the Narrow-Band Optical Filter Subsystem Integrated Within the Hand-Supportable Housing of the Imager of the Present Invention
As shown in FIG. 6A1, the hand-supportable housing of the bar code reader of the present invention has integrated within its housing, narrow-band optical filter subsystem 4 for transmitting substantially only the very narrow band of wavelengths (e.g. 620-700 nanometers) of visible illumination produced from the narrow-band Multi-Mode Illumination Subsystem 14, and rejecting all other optical wavelengths outside this narrow optical band however generated (i.e. ambient light sources). As shown, narrow-band optical filter subsystem 4 comprises: red-wavelength reflecting (high-pass) imaging window filter 4A integrated within its light transmission aperture 3 formed on the front face of the hand-supportable housing; and low pass optical filter 4B disposed before the CMOS image sensing array 22. These optical filters 4A and 4B cooperate to form the narrow-band optical filter subsystem 4 for the purpose described above. As shown in FIG. 6A2, the light transmission characteristics (energy versus wavelength) associated with the low-pass optical filter element 4B indicate that optical wavelengths below 620 nanometers are transmitted therethrough, whereas optical wavelengths above 620 nm are substantially blocked (e.g. absorbed or reflected). As shown in FIG. 6A3, the light transmission characteristics (energy versus wavelength) associated with the high-pass imaging window filter 4A indicate that optical wavelengths above 700 nanometers are transmitted therethrough, thereby producing a red-color appearance to the user, whereas optical wavelengths below 700 μm are substantially blocked (e.g. absorbed or reflected) by optical filter 4A.
During system operation, spectral band-pass filter subsystem 4 greatly reduces the influence of the ambient light, which falls upon the CMOS image sensing array 22 during the image capturing operations. By virtue of the optical filter of the present invention, a optical shutter mechanism is eliminated in the system. In practice, the optical filter can reject more than 85% of incident ambient light, and in typical environments, the intensity of LED illumination is significantly more than the ambient light on the CMOS image sensing array 22. Thus, while an optical shutter is required in nearly most conventional CMOS imaging systems, the imaging-based bar code reading system of the present invention effectively manages the exposure time of narrow-band illumination onto its CMOS image sensing array 22 by simply controlling the illumination time of its LED-based illumination arrays 27, 28 and 29 using control signals generated by Automatic Light Exposure Measurement and Illumination Control Subsystem 15 and the CMOS image sensing array 22 while controlling illumination thereto by way of the band-pass optical filter subsystem 4 described above. The result is a simple system design, without moving parts, and having a reduced manufacturing cost.
While the band-pass optical filter subsystem 4 is shown comprising a high-pass filter element 4A and low-pass filter element 4B, separated spatially from each other by other optical components along the optical path of the system, subsystem 4 may be realized as an integrated multi-layer filter structure installed in front of the Image Formation And Detection (IFD) Module 13, or before its image sensing array 22, without the use of the high-pass window filter 4A, or with the use thereof so as to obscure viewing within the Imaging-Based Bar Code Symbol Reader while creating an attractive red-colored protective window. Preferably, the red-color window filter 4A will have substantially planar surface characteristics to avoid focusing or defocusing of light transmitted therethrough during imaging operations.
Specification of the Automatic Light Exposure Measurement and Illumination Control Subsystem of the Present Invention
The primary function of the Automatic Light Exposure Measurement and Illumination Control Subsystem 15 is to control the brightness and contrast of acquired images by (i) measuring light exposure at the image plane of the CMOS imaging sensing array 22 and (ii) controlling the time duration that the Multi-Mode Illumination Subsystem 14 illuminates the target object with narrow-band illumination generated from the activated LED illumination array. Thus, the Automatic Light Exposure Measurement and Illumination Control Subsystem 15 eliminates the need for a complex shuttering mechanism for CMOS-based image sensing array 22. This novel mechanism ensures that the Imaging-Based Bar Code Symbol Reader of the present invention generates non-saturated images with enough brightness and contrast to guarantee fast and reliable image-based bar code decoding in demanding end-user applications.
During object illumination, narrow-band LED-based light is reflected from the target object (at which the hand-supportable bar code reader is aimed) and is accumulated by the CMOS image sensing array 22. Notably, the object illumination process must be carried out for an optimal duration so that the acquired image frame has good contrast and is not saturated. Such conditions are required for the consistent and reliable bar code decoding operation and performance. The Automatic Light Exposure Measurement and Illumination Control Subsystem 15 measures the amount of light reflected from the target object, calculates the maximum time that the CMOS image sensing array 22 should be kept exposed to the actively-driven LED-based illumination array associated with the Multi-Mode Illumination Subsystem 14, and then automatically deactivates the illumination array when the calculated time to do so expires (i.e. lapses).
As shown in
As shown in
Notably, in the illustrative embodiment, there are three possible LED-based illumination arrays 27, 28 and 29 which can be selected for activation by the System Control Subsystem 19, and the upper and/or lower LED subarrays in illumination arrays 28 and 29 can be selectively activated or deactivated on a subarray-by-subarray basis, for various purposes taught herein, including automatic specular reflection noise reduction during wide-area image capture modes of operation.
Each one of these illumination arrays can be driven to different states depending on the Auto-Exposure Control Signal generated by electronic signal processing circuit 57, which will be generally a function of object distance, object surface reflectivity and the ambient light conditions sensed at photo-detector 56, and measured by signal processing circuit 57. The operation of signal processing circuitry 57 will now be detailed below.
As shown in
As will be explained in greater detail below, the LED Array Driver Circuit 64 shown in FIGS. 7C1 and 7C2 automatically drives an activated LED illuminated array, and the operation of LED Array Driver Circuit 64 depends on the mode of operation in which the Multi-Mode Illumination Subsystem 14 is configured. In turn, the mode of operation in which the Multi-Mode Illumination Subsystem 14 is configured at any moment in time will typically depend on (i) the state of operation of the Object Presence and Range Detection Subsystem 12 and (ii) the programmed mode of operation in which the entire Imaging-Based Bar Code Symbol Reading System is configured using System Mode Configuration Parameters read from the Table 70 shown in FIG. 2A1.
As shown in FIGS. 7C1 and 7C2, the LED Array Driver Circuit 64 comprises analog and digital circuitry which receives two input signals: (i) the Auto-Exposure Control Signal from signal processing circuit 57; and (ii) the Illumination Array Selection Control Signal. The LED Array Driver Circuit 64 generates, as output, digital pulse-width modulated (PCM) drive signals provided to either the narrow-area illumination array 27, the upper and/or lower LED subarray employed in the near-field wide-area illumination array 28, and/or the upper and/or lower LED subarrays employed in the far-field wide-area illumination array 29. Depending on which Mode of System Operation the Imaging-Based Bar Code Symbol Reader has been configured, the LED Array Driver Circuit 64 will drive one or more of the above-described LED illumination arrays during object illumination and imaging operations. As will be described in greater detail below, when all rows of pixels in the CMOS image sensing array 22 are in a state of integration (and thus have a common integration time), such LED illumination array(s) are automatically driven by the LED Array Driver Circuit 64 at an intensity and for duration computed (in an analog manner) by the Automatic Light Exposure and Illumination Control Subsystem 15 so as to capture digital images having good contrast and brightness, independent of the light intensity of the ambient environment and the relative motion of target object with respect to the Imaging-Based Bar Code Symbol Reader.
Global Exposure Control Method of the Present Invention Carried Out Using the CMOS Image Sensing Array
In the illustrative embodiment, the CMOS image sensing array 22 is operated in its Single Frame Shutter Mode (i.e. rather than its Continuous Frame Shutter Mode) as shown in
As indicated at Block A in FIG. 7E1, Step A in the global exposure control method involves selecting the single frame shutter mode of operation for the CMOS imaging sensing array provided within an imaging-based bar code symbol reading system employing an automatic light exposure measurement and illumination control subsystem, a multi-mode illumination subsystem, and a system control subsystem integrated therewith, and image formation optics providing the CMOS image sensing array with a field of view into a region of space where objects to be imaged are presented.
As indicated in Block B in FIG. 7E1, Step B in the global exposure control method involves using the automatic light exposure measurement and illumination control subsystem to continuously collect illumination from a portion of the field of view, detect the intensity of the collected illumination, and generate an electrical analog signal corresponding to the detected intensity, for processing.
As indicated in Block C in FIG. 7E1, Step C in the global exposure control method involves activating (e.g. by way of the system control subsystem 19 or directly by way of trigger switch 2C) the CMOS image sensing array so that its rows of pixels begin to integrate photonically generated electrical charge in response to the formation of an image onto the CMOS image sensing array by the image formation optics of the system.
As indicated in Block D in FIG. 7E1, Step D in the global exposure control method involves the CMOS image sensing array 22 automatically (i) generating an Electronic Rolling Shutter (ERS) digital pulse signal when all rows of pixels in the image sensing array are operated in a state of integration, and providing this ERS pulse signal to the Automatic Light Exposure Measurement And Illumination Control Subsystem 15 so as to activate light exposure measurement and illumination control functions/operations therewithin.
As indicated in Block E in FIG. 7E2, Step E in the global exposure control method involves, upon activation of light exposure measurement and illumination control functions within Subsystem 15, (i) processing the electrical analog signal being continuously generated therewithin, (ii) measuring the light exposure level within a central portion of the field of view 23 (determined by light collecting optics 55 shown in
Finally, as indicated at Block F in FIG. 7E2, Step F in the global exposure control method involves using (i) the Auto-Exposure Control Signal and (ii) the Illumination Array Selection Control Signal to drive the selected LED-based illumination array(s) and illuminate the field of view of the CMOS image sensing array 22 in whatever image capture mode it may be configured, precisely when all rows of pixels in the CMOS image sensing array are in a state of integration, as illustrated in
Specification of the IR-Based Automatic Object Presence and Range Detection Subsystem Employed in the Hand-Supportable Digital Image-Based Bar Code Reading Device of The Present Invention
As shown in
As shown in
In general, the function of Range Analysis Circuitry 93 is to analyze the digital range data from the A/D converter 90 and generate two control activation signals, namely: (i) “an object presence detection” type of control activation signal A1A indicating simply whether an object is presence or absent from the object detection field, regardless of the mode of operation in which the Multi-Mode Illumination Subsystem 14 might be configured; and (ii) “a near-field/far-field” range indication type of control activation signal A1B indicating whether a detected object is located in either the predefined near-field or far-field portions of the object detection field, which correspond to the near-field and far-field portions of the FOV of the Multi-Mode Image Formation and Detection Subsystem 13.
Various kinds of analog and digital circuitry can be designed to implement the IR-based Automatic Object Presence and Range Detection Subsystem 12. Alternatively, this subsystem can be realized using various kinds of range detection techniques as taught in U.S. Pat. No. 6,637,659, incorporated herein by reference in its entirely.
In the illustrative embodiment, Automatic Object Presence and Range Detection Subsystem 12 operates as follows. In System Modes of Operation requiring automatic object presence and/or range detection, Automatic Object Presence and Range Detection Subsystem 12 will be activated at system start-up and operational at all times of system operation, typically continuously providing the System Control Subsystem 19 with information about the state of objects within both the far and near portions of the object detection field 20 of the Imaging-Based Symbol Reader. In general, this Subsystem detects two basic states of presence and range, and therefore has two basic states of operation. In its first state of operation, the IR-based automatic Object Presence and Range Detection Subsystem 12 automatically detects an object within the near-field region of the FOV 20, and in response thereto generates a first control activation signal which is supplied to the System Control Subsystem 19 to indicate the occurrence of this first fact. In its second state of operation, the IR-based automatic Object Presence and Range Detection Subsystem 12 automatically detects an object within the far-field region of the FOV 20, and in response thereto generates a second control activation signal which is supplied to the System Control Subsystem 19 to indicate the occurrence of this second fact. As will be described in greater detail and throughout this Patent Specification, these control activation signals are used by the System Control Subsystem 19 during particular stages of the system control process, such as determining (i) whether to activate either the near-field and/or far-field LED illumination arrays, and (ii) how strongly should these LED illumination arrays be driven to ensure quality image exposure at the CMOS image sensing array 22.
Specification of the Mapping of Pixel Data Captured by the Imaging Array into the SDRAM Under the Control of the Direct Memory Access (DMA) Module Within the Microprocessor
As shown in
Referring to
In the implementation of the illustrative embodiment, the CMOS image sensing array 22 sends 8-bit gray-scale data bytes over a parallel data connection to FPGA 39 which implements a FIFO using its internal SRAM. The FIFO 39 stores the pixel data temporarily and the microprocessor 36 initiates a DMA transfer from the FIFO (which is mapped to address OXOCOOOOOO, chip select 3) to the SDRAM 38. In general, modern microprocessors have internal DMA modules, and a preferred microprocessor design, the DMA module will contain a 32-byte buffer. Without consuming any CPU cycles, the DMA module can be programmed to read data from the FIFO 39, store read data bytes in the DMA's buffer, and subsequently write the data to the SDRAM 38. Alternatively, a DMA module can reside in FPGA 39 to directly write the FIFO data into the SDRAM 38. This is done by sending a bus request signal to the microprocessor 36, so that the microprocessor 36 releases control of the bus to the FPGA 39 which then takes over the bus and writes data into the SDRAM 38.
Below, a brief description will be given on where pixel data output from the CMOS image sensing array 22 is stored in the SDRAM 38, and how the microprocessor (i.e. implementing a decode algorithm) 36 accesses such stored pixel data bytes.
During image acquisition operations, the image pixels are sequentially read out of the image sensing array 22. Although one may choose to read and column-wise or row-wise for some CMOS image sensors, without loss of generality, the row-by-row read out of the data is preferred. The pixel image data set is arranged in the SDRAM 38 sequentially, starting at address OXAOEC0000. To randomly access any pixel in the SDRAM 38 is a straightforward matter: the pixel at row y ¼ column x located is at address (OXAOEC0000+y×1280+x).
As each image frame always has a frame start signal out of the image sensing array 22, that signal can be used to start the DMA process at address OXAOEC0000, and the address is continuously incremented for the rest of the frame. But the reading of each image frame is started at address OXAOEC0000 to avoid any misalignment of data. Notably, however, if the microprocessor 36 has programmed the CMOS image sensing array 22 to have a ROI window, then the starting address will be modified to (OXAOEC0000+1280×R1), where R1 is the row number of the top left corner of the ROI.
Specification of the Three-Tier Software Architecture of the Hand-Supportable Digital Image-Based Bar Code Reading Device of the Present Invention
As shown in
While the operating system layer of the Imaging-Based Bar Code Symbol Reader is based upon the Linux operating system, it is understood that other operating systems can be used (e.g. Microsoft Windows, Max OXS, Unix, etc), and that the design preferably provides for independence between the main Application Software Layer and the Operating System Layer, and therefore, enables of the Application Software Layer to be potentially transported to other platforms. Moreover, the system design principles of the present invention provides an extensibility of the system to other future products with extensive usage of the common software components, which should make the design of such products easier, decrease their development time, and ensure their robustness.
In the illustrative embodiment, the above features are achieved through the implementation of an event-driven multi-tasking, potentially multi-user, Application layer running on top of the System Core software layer, called SCORE. The SCORE layer is statically linked with the product Application software, and therefore, runs in the Application Level or layer of the system. The SCORE layer provides a set of services to the Application in such a way that the Application would not need to know the details of the underlying operating system, although all operating system APIs are, of course, available to the application as well. The SCORE software layer provides a real-time, event-driven, OS-independent framework for the product Application to operate. The event-driven architecture is achieved by creating a means for detecting events (usually, but not necessarily, when the hardware interrupts occur) and posting the events to the Application for processing in real-time manner. The event detection and posting is provided by the SCORE software layer. The SCORE layer also provides the product Application with a means for starting and canceling the software tasks, which can be running concurrently, hence, the multi-tasking nature of the software system of the present invention.
Specification of Software Modules Within the SCORE Layer of the System Software Architecture Employed in Imaging-Based Bar Code Reader of the Present Invention
The SCORE layer provides a number of services to the Application layer.
The Tasks Manager provides a means for executing and canceling specific application tasks (threads) at any time during the product Application run.
The Events Dispatcher provides a means for signaling and delivering all kinds of internal and external synchronous and asynchronous events
When events occur, synchronously or asynchronously to the Application, the Events Dispatcher dispatches them to the Application Events Manager, which acts on the events accordingly as required by the Application based on its current state. For example, based on the particular event and current state of the application, the Application Events Manager can decide to start a new task, or stop currently running task, or do something else, or do nothing and completely ignore the event.
The Input/Output Manager provides a means for monitoring activities of input/output devices and signaling appropriate events to the Application when such activities are detected.
The Input/Output Manager software module runs in the background and monitors activities of external devices and user connections, and signals appropriate events to the Application Layer, which such activities are detected. The Input/Output Manager is a high-priority thread that runs in parallel with the Application and reacts to the input/output signals coming asynchronously from the hardware devices, such as serial port, user trigger switch 2C, bar code reader, network connections, etc. Based on these signals and optional input/output requests (or lack thereof) from the Application, it generates appropriate system events, which are delivered through the Events Dispatcher to the Application Events Manager as quickly as possible as described above.
The User Commands Manager provides a means for managing user commands, and utilizes the User Commands Table provided by the Application, and executes appropriate User Command Handler based on the data entered by the user.
The Input/Output Subsystem software module provides a means for creating and deleting input/output connections and communicating with external systems and devices
The Timer Subsystem provides a means of creating, deleting, and utilizing all kinds of logical timers.
The Memory Control Subsystem provides an interface for managing the multi-level dynamic memory with the device, fully compatible with standard dynamic memory management functions, as well as a means for buffering collected data. The Memory Control Subsystem provides a means for thread-level management of dynamic memory. The interfaces of the Memory Control Subsystem are fully compatible with standard C memory management functions. The system software architecture is designed to provide connectivity of the device to potentially multiple users, which may have different levels of authority to operate with the device.
The User Commands Manager, which provides a standard way of entering user commands, and executing application modules responsible for handling the same. Each user command described in the User Commands Table is a task that can be launched by the User Commands Manager per user input, but only if the particular user's authority matches the command's level of security.
The Events Dispatcher software module provides a means of signaling and delivering events to the Application Events Manager, including the starting of a new task, stopping a currently running task, or doing something or nothing and simply ignoring the event.
The Imaging-Based Bar Code Symbol Reader of the present invention provides the user with a command-line interface (CLI), which can work over the standard communication lines, such as RS232, available in the Bar Code Reader. The CLI is used mostly for diagnostic purposes, but can also be used for configuration purposes in addition to the MetroSet® and MetroSelect® programming functionalities. To send commands to the bar code reader utilizing the CLI, a user must first enter the User Command Manager by typing in a special character, which could actually be a combination of multiple and simultaneous keystrokes, such Ctrl and S for example. Any standard and widely available software communication tool, such as Windows HyperTerminal, can be used to communicate with the Bar Code Reader. The bar code reader acknowledges the readiness to accept commands by sending the prompt, such as “MTLG>” back to the user. The user can now type in any valid Application command. To quit the User Command Manager and return the scanner back to its normal operation, a user must enter another special character, which could actually be a combination of multiple and simultaneous keystrokes, such Ctrl and R for example.
An example of the valid command could be the “Save Image” command, which is used to upload an image from the bar code reader's memory to the host PC. This command has the following CLI format:
save [filename [compr]]
where
(1) save is the command name.
(2) filename is the name of the file the image gets saved in. If omitted, the default filename is “image.bmp”.
(3) compr is the compression number, from 0 to 10. If omitted, the default compression number is 0, meaning no compression. The higher compression number, the higher image compression ratio, the faster image transmission, but more distorted the image gets.
The Imaging-Based Bar Code Symbol Reader of the present invention can have numerous commands. All commands are described in a single table (User Commands Table shown in
When a user enters a command, the User Command Manager looks for the command in the table. If found, it executes the function the address of which is provided in the record for the entered command. Upon return from the function, the User Command Manager sends the prompt to the user indicating that the command has been completed and the User Command Manager is ready to accept a new command.
Specification of Software Modules Within the Application Layer of the System Software Architecture Employed in Imaging-Based Bar Code Reader of the Present Invention
The image processing software employed within the system hereof performs its bar code reading function by locating and recognizing the bar codes within the frame of a captured image comprising pixel data. The modular design of the image processing software provides a rich set of image processing functions, which could be utilized in the future for other potential applications, related or not related to bar code symbol reading, such as: optical character recognition (OCR) and verification (OCV); reading and verifying directly marked symbols on various surfaces; facial recognition and other biometrics identification; etc.
The CodeGate Task, in an infinite loop, performs the following task. It illuminates a “thin” narrow horizontal area at the center of the field-of-view (FOV) and acquires a digital image of that area. It then attempts to read bar code symbols represented in the captured frame of image data using the image processing software facilities supported by the Image-Processing Bar Code Symbol Reading Subsystem 17 of the present invention to be described in greater detail hereinafter. If a bar code symbol is successfully read, then Subsystem 17 saves the decoded data in the special CodeGate data buffer. Otherwise, it clears the CodeGate data buffer. Then, it continues the loop. The CodeGate Task never exits on its own. It can be canceled by other modules in the system when reacting to other events. For example, when a user pulls the trigger switch 2C, the event TRIGGER_ON is posted to the application. The Application software responsible for processing this event, checks if the CodeGate Task is running, and if so, it cancels it and then starts the Main Task. The CodeGate Task can also be canceled upon OBJECT_DETECT_OFF event, posted when the user moves the bar code reader away from the object, or when the user moves the object away from the bar code reader.
Depending the System Mode in which the Imaging-Based Bar Code Symbol Reader is configured, Main Task will typically perform differently. For example, when the Imaging-Based Bar Code Symbol Reader is configured in the Programmable Mode of System Operation No. 12 (i.e. Semi-Automatic-Triggered Multiple-Attempt 1D/2D Single-Read Mode) to be described in greater detail hereinafter, the Main Task first checks if the CodeGate Data Buffer contains data decoded by the CodeGate Task. If so, then it immediately sends the data out to the user by executing the Data Output procedure and exits. Otherwise, in a loop, the Main Task does the following: it illuminates an entire area of the field-of-view and acquires a full-frame image of that area. It attempts to read a bar code symbol the captured image. If it successfully reads a bar code symbol, then it immediately sends the data out to the user by executing the Data Output procedure and exits. Otherwise, it continues the loop. Notably, upon successful read and prior to executing the Data Output procedure, the Main Task analyzes the decoded data for a “reader programming” command or a sequence of commands. If necessary, it executes the MetroSelect functionality. The Main Task can be canceled by other modules within the system when reacting to other events. For example, the bar code reader of the present invention can be re-configured using standard Metrologic configuration methods, such as MetroSelec® and MetroSet®. The MetroSelect functionality is executed during the Main Task.
The MetroSet functionality is executed by the special MetroSet Task. When the Focus RS232 software driver detects a special NULL-signal on its communication lines, it posts the METROSET_ON event to the Application. The Application software responsible for processing this event starts the MetroSet task. Once the MetroSet Task is completed, the scanner returns to its normal operation.
Operating System Layer Software Modules Within the Application Layer of the System Software Architecture Employed in Imaging-Based Bar Code Reader of the Present Invention
The Devices Drivers software modules, which includes trigger drivers, provides a means for establishing a software connection with the hardware-based manually-actuated trigger switch 2C employed on the imaging-based device, an image acquisition driver for implementing image acquisition functionality aboard the imaging-based device, and an IR driver for implementing object detection functionality aboard the imaging-based device.
As shown in
Basic System Operations Supported by the Three-Tier Software Architecture of the Hand-Supportable Digital Imaging-Based Bar Code Reading Device of the Present Invention
In
As shown in
As shown in
As shown in
It should also be pointed out at this juncture, that it is possible to enable and utilize several of different kinds of symbol reading methods during the Main Task, and to apply particular reading methods based on the computational results obtained while processing the narrow-area image during the CodeGate Task, and/or while preprocessing of the captured wide-area image during one of the image acquiring/processing frames or cycles running in the Main Task. The main point to be made here is that the selection and application of image-processing based bar code reading methods will preferably occur through the selective activation of the different modes available within the multi-mode image-processing based bar code symbol reading Subsystem 17, in response to information learned about the graphical intelligence represented within the structure of the captured image, and that such dynamic should occur in accordance with principles of dynamic adaptive learning commonly used in advanced image processing systems, speech understanding systems, and alike. This general approach is in marked contrast with the approaches used in prior art Imaging-Based Bar Code Symbol Readers, wherein permitted methods of bar code reading are pre-selected based on statically defined modes selected by the end user, and not in response to detected conditions discovered in captured images on a real-time basis.
As shown in
Wide-Area Illumination Control Method for Use During the Main Task System Control Routine so as to Illuminate Objects with Wide-Area Illumination in a Manner which Substantially Reduces Specular-Type Reflection at the CMOS Image Sensing Array of the Bar Code Symbol Reader
Referring to FIGS. 13M1 through 13M3, the method of illuminating objects without specular reflection, according to the present invention, will now be described in detail. This control routine can be called during the acquisition of wide-area image step in the Main Task routine, shown in
As indicated at Step A in FIG. 13M1, the first step of the illumination control method involves using the Automatic Light Exposure Measurement And Illumination Control Subsystem 15 to measure the ambient light level to which the CMOS image sensing array 22 is exposed prior to commencing each illumination and imaging cycle within the Bar Code Symbol Reading System
As indicated at Step B, the illumination control method involves using the Automatic IR-based Object Presence and Range Detection Subsystem 12 to measure the presence and range of the object in either the near or far field portion of the field of view (FOV) of the System.
As indicated at Step C, the illumination control method involves using the detected range and the measured light exposure level to drive both the upper and lower LED illumination subarrays associated with either the near-field wide-area illumination array 28 or far-field wide-area illumination array 29.
As indicated at Step D, the illumination control method involves capturing a wide-area image at the CMOS image sensing array 22 using the illumination field produced during Step C.
As indicated at Step E, the illumination control method involves rapidly processing the captured wide-area image during Step D to detect the occurrence of high spatial-intensity levels in the captured wide-area image, indicative of a specular reflection condition.
As indicated at Step F, the illumination control method involves determining if a specular reflection condition is detected in the processed wide-area image, and if so then driving only the upper LED illumination subarray associated with either the near-field or far-field wide-area illumination array. Also, if a specular reflection condition is not detected in the processed wide-area image, then the detected range and the measured light exposure level is used to drive both the upper and lower LED subarrays associated with either the near-field or far-field wide-area illumination array.
As indicated at Step G, the illumination control method involves capturing a wide-area image at the CMOS image sensing array 22 using the illumination field produced during Step F.
As indicated at Step H, the illumination control method involves rapidly processing the captured wide-area image during Step G to detect the occurrence of high spatial-intensity levels in the captured wide-area image, indicative of a specular reflection condition.
As indicated at Step I, the illumination control method involves determining if a specular reflection condition is still detected in the processed wide-area image, and if so, then drive the other LED subarray associated with either the near-field or far-field wide-area illumination array. If a specular reflection condition is not detected in the processed wide-area image, then the detected Range and the measured Light Exposure Level is used to drive the same LED illumination subarray (as in Step C) associated with either the near-field wide-area illumination array 28 or far field wide-area illumination array 29.
As indicated at Step J, the illumination control method involves capturing a wide-area image at the CMOS image sensing array using the illumination field produced during Step I.
As indicated at Step K, the illumination control method involves rapidly processing the captured wide-area image during Step J to detect the absence of high spatial-intensity levels in the captured wide-area image, confirming the elimination of the earlier detected specular reflection condition.
As indicated at Step L, the illumination control method involves determining if no specular reflection condition is detected in the processed wide-area image at Step K, and if not, then the wide-area image is processed using the mode(s) selected for the Multi-Mode Image-Processing Bar Code Reading Subsystem 17. If a specular reflection condition is still detected in the processed wide-area image, then the control process returns to Step A repeats Steps A through K, as described above.
Specification of Symbologies and Modes Supported by the Multi-Mode Bar Code Symbol Reading Subsystem Module Employed Within the Hand-Supportable Digital Image-Based Bar Code Reading Device of the Present Invention
Specification of the Various Modes of Operation in the Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention
As shown in
The Automatic Mode of Multi-Mode Bar Code Symbol Reading Subsystem
In its Automatic Mode of Operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to automatically start processing a captured frame of digital image data, prior to the complete buffering thereof, so as to search for one or more bar codes represented therein in an incremental manner, and to continue searching until the entire image is processed.
This mode of image-based processing enables bar code locating and reading when no prior knowledge about the location of, or the orientation of, or the number of bar codes that may be present within an image, is available. In this mode of operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 starts processing the image from the top-left corner and continues until it reaches the bottom-right corner, reading any potential bar codes as it encounters them.
The Manual Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
In its Manual Mode of Operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to automatically process a captured frame of digital image data, starting from the center or sweep spot of the image at which the user would have aimed the bar code reader, so as to search for (i.e. find) a at least one bar code symbol represented therein. Unlike the Automatic Mode, this is done by searching in a helical manner through frames or blocks of extracted image feature data, and then marking the same and image-processing the corresponding raw digital image data until a bar code symbol is recognized/read within the captured frame of image data.
This mode of image processing enables bar code locating and reading when the maximum number of bar codes that could be present within the image is known a priori and when portions of the primary bar code have a high probability of spatial location close to the center of the image. The Multi-Mode Bar Code Symbol Reading Subsystem 17 starts processing the image from the center, along rectangular strips progressively further from the center and continues until either the entire image has been processed or the programmed maximum number of bar codes has been read.
The ROI-Specific Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
In its ROI-Specific Mode of Operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to automatically process a captured frame of digital image data, starting from the region of interest (ROI) in the captured image, specified by coordinates acquired during a previous mode of operation within the Multi-Mode Bar Code Symbol Reading Subsystem 17. Unlike the Manual Mode, this is done by analyzing the received ROI-specified coordinates, derived during either a previous NoFinder Mode, Automatic Mode, or Omniscan Mode of operation, and then immediately begins processing image feature data, and image-processing the corresponding raw digital image data until a bar code symbol is recognized/read within the captured frame of image data. Thus, typically, the ROI-Specific Mode is used in conjunction with other modes of the Multi-Mode Bar Code Symbol Reading Subsystem 17.
This mode of image processing enables bar code locating and reading when the maximum number of bar codes that could be present within the image is known a priori and when portions of the primary bar code have a high probability of spatial location close to specified ROI in the image. The Multi-Mode Bar Code Symbol Reading Subsystem starts processing the image from these initially specified image coordinates, and then progressively further in a helical manner from the ROI-specified region, and continues until either the entire image has been processed or the programmed maximum number of bar codes have been read.
The No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
In its No-Finder Mode of Operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to automatically process a captured narrow-area (linear) frame of digital image data, without the feature extraction and marking operations used in the Automatic, Manual and ROI-Specific Modes, so as to read a one or more bar code symbols represented therein.
This mode enables bar code reading when it is known, a priori, that the image contains at most one (1-dimensional) bar code symbol, portions of which have a high likelihood of spatial location close to the center of the image and when the bar code is known to be oriented at zero degrees relative to the horizontal axis. Notably, this is typically the case when the bar code reader is used in a hand-held mode of operation, where the Bar Code Symbol Reader is manually pointed at the bar code symbol to be read. In this mode, the Multi-Mode Bar Code Symbol Reading Subsystem 17 starts at the center of the image, skips all bar code location steps, and filters the image at zero (0) degrees and 180 degrees relative to the horizontal axis. Using the “bar-and-space-count” data generated by the filtration step, it reads the potential bar code symbol.
The Omni-Scan Mode of the Multi-Mode Bar Code Reading Subsystem
In its Omniscan Mode of Operation, the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to automatically process a captured frame of digital image data along any one or more predetermined virtual scan line orientations, without feature extraction and marking operations used in the Automatic, Manual and ROI-Specific Modes, so as to read a single bar code symbol represented in the processed image.
This mode enables bar code reading when it is known, a priori, that the image contains at most one (1-dimensional) bar code, portions of which have a high likelihood of spatial location close to the center of the image but which could be oriented in any direction. Multi-Mode Bar Code Symbol Reading Subsystem 17 starts at the center of the image, skips all bar code location steps, and filters the image at different start-pixel positions and at different scan-angles. Using the bar-and-space-count data generated by the filtration step, the Omniscan Mode reads the potential bar code symbol.
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its Automatic Mode of Operation
As shown in
As will be described hereinbelow, these three (3) stages of image processing involved in the Automatic Mode of operation can be sub-divided into four major processing blocks (i.e. modules), namely: the Tracker Module 100, the Finder Module 101, the Marker Module 102, and the Decoder Module 103, which are shown in FIG. 2A2 and described in detail below. When the Automatic Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17 is invoked, these four processing blocks (i.e. modules) are executed, sequentially, and optionally incrementally so that a rectangular sub-region of the entire image can be processed per invocation.
First Stage of Image-Based Processing Within the Multi-Mode Bar Code Symbol Reading Subsystem During its Automatic Mode of Operation
During its Automatic Mode of operation, the first stage of processing in the Multi-Mode Bar Code Symbol Reading Subsystem 17 comprises: (i) searching for (i.e. finding) regions of interest (ROIs) by processing a low resolution image of a captured frame of high-resolution image data as shown in
Detailed Specification of the Tracker Module
As indicated at Blocks A, B, C, C1 and XX in
Detailed Specification of the Finder Module
As indicated at Blocks D through Y in
where I(x,y)=gray value at pixel location (x,y) and
Nx=x-dimension of the supplied (sub)image
If Īy exceeds a programmable “background threshold”, the image line y is declared a foreground line and is processed further by the Finder Module. A pixel is declared as a background pixel if its gray value is below a certain threshold. The Finder Module starts from the left-most pixel and traverses right on the foreground line, finds at Block G the first pixel whose intensity (gray value) exceeds the programmable background threshold and marks it as the left-edge (xl) of the line. At Block H, the Finder Module then starts from the right-most pixel and traversing leftward on the foreground line determines the right-edge (xr) using the same method. For foreground line y the Finder Module calculates at Block I:
I′1(x,y)=|I(x+1,y)−I(x−1,y)|+|I(x,y+1)−I(x,y−1)|, where Xl≦x≦Xr (2)
If I′1(x,y) exceeds a threshold at Block J, the Finder Module marks pixel (x,y) as an edge element or edgel.
In order to find the direction and magnitude of the edge-vector corresponding to edgel (x,y), the Finder Module calculates at Block K:
where the coefficients wi0, wi45, wi90, wi135 are given by the operators:
At Block M, the Finder Module updates the Fv block that edgel (x,y) belongs to with:
Edge strength:
Centroid of edgels:
At Block N, the Finder Module goes through all the lines of the current image section and populates the Fv array using the above-mentioned features. At Blocks O through U, the Finder Module checks to see if all lines have been processed.
At Block V, the Finder Module then examines each Fv array element for features that strongly point to the presence of parallel lines within the Fv block. At Block W, an interesting Fv is declared as part of a Region of Interest (ROI) when the number of edgels exceeds a threshold, at least one of the edgel direction array elements exceeds a threshold value, and
N=total number of pixels in image block corresponding to feature vector array Fv
Notably, at Blocks C, E, and T, the Finder Module invokes the Pause Checker callback function to let the scanning application take control.
Second Stage of Image-Based Processing Within the Multi-Mode Bar Code Symbol Reading Subsystem During its Automatic Mode of Operation
During its Automatic Mode of Operation, the second stage of processing in the Multi-Mode Bar Code Symbol Reading Subsystem 17 involves (ii) calculating bar code orientation by analyzing the feature vectors for parallel lines, and (ii) marking the four corners of a bar code as a ROI, in terms of x.y coordinates.
Detailed Specification of the Marker Module
Within the Multi-Mode Bar Code Symbol Reading Subsystem 17 shown in FIG. 2A2, the Marker Module as indicated at Blocks Z through KK, in
yroi
where yroi
L=Maximum length (in pixels) of any bar code presented to Multi-Mode Bar Code Symbol Reading Subsystem
Ny=y-dimension of cumulative image
If inequality (12) holds, then the Marker Module postpones calculations for this ROI until the y-dimension of the image is such that inequality does not hold. When the Marker Module continues to process the ROI, it first determines the orientation of the parallel lines that could potentially be part of a bar code, by calculating:
The angle θ that yields the minimum E(β), is assumed to be a close approximation of the actual orientation angle of the parallel lines.
Having calculated the correct orientation of the parallel lines, the Marker Module calculates the narrowest and the widest width of the parallel lines in the neighborhood of the ROI by traversing (i.e. scanning) the image in the direction of orientation of the lines as well as at 180 degrees to it (e.g. using a spot size window of say N×N pixels (e.g. where 1<N<10). It should be noted that all angle measurements are clockwise relative to the horizontal axis. Equation (14) specifies the traversal equation with β=θ,θ+180. Details of the method used to calculate the widths of the lines are explained at length in the Decoder Module section.
The Marker Module uses the widths of the narrowest and widest elements to determine a pixel count (n) that closely approximates the minimum quiet-zone allowable for any bar code symbology. It then traverses the image again using equation (14) and calculates:
where mi=mean of the set of n pixels starting at pixel i
vi=variance of the set of n pixels starting at pixel I
If IVi is less than a threshold, then the Marker Module makes the assumption that the group of parallel lines end at pixel i (similarly for the θ+180 direction). Starting from pixel i and traversing the image using (15) and a spot size window of say N×N pixels (e.g. where 1<N<10), and performing similar calculations as in equation (16) the four corners that approximate the quadrilateral bound of the potential bar code are determined. A pictorial representation of the above-mentioned method can be found in the figure entitled “Step 6: Mark ROIs: Mark four corners of bar code.
The Marker Module then marks all the Fv blocks that encompass the quadrilateral bound of the potential bar code, with the current ROI identifier; if there already exists one or more ROIs with different identifiers, the Marker Module picks that ROI that completely encompasses the others. The old ROIs are kept only if they are not completely enclosed within the current ROI.
The Marker Module also frequently invokes the Pause Checker to let the bar code reading Application (running) take over control.
Third Stage of Image-Based Processing Within the Multi-Mode Bar Code Symbol Reading Subsystem During its Automatic Mode of Operation
The third stage of processing involves reading any bar code symbols represented within the ROI by traversing the bar code and updating the feature vectors, examining the zero-crossings of filtered images, creating bar and space patterns, and decoding the bar and space patterns
Detailed Specification of the Decoder Module
As indicated in at Blocks LL through AAA in 17B, the Decoder Module takes over from the Marker Module and examines each ROI previously defined by the Marker Module. For each ROI, the Decoder Module uses the quadrilateral bound coordinates {x,y} to calculate the longer (higher) extremity of the potential bar code (towards the possible quiet-zones). The Decoder Module then computes the maximum number of possible scan-lines as:
where D=length of the longer extremity, and n=pixel-offset per scan-line.
Notably, the parameter n (i.e. pixel-offset per scan line) represents how far the Decoder Module moves up its virtual scan direction (parallel to the previous virtual scan direction) and processes the image during each image processing cycle. As any captured image will be corrupted by some degree of noise (and certainly greater levels when a bar code symbol cannot be decoded), the Decoder Module needs to perform its next processing cycle on a line of scan data that is located as far away as possible from the previous line of scan data which did not result in a successful decode, but at the same time, the Decoder Module should exploit the inherent noise-immunity features provided in many bar code symbologies. Thus, in accordance with the present invention, the pixel-offset per scan line variable n is not arbitrarily selected, as in most prior art systems, but rather is determined by carefully (i) determining the maximum pixel height (length) of the ROI under consideration, and (ii) dividing this maximum pixel height of the ROI into a number of pixel-offset distances proportional to the maximum pixel height of the ROI. In the preferred embodiment, the number or sequence of scan lines into which the ROI can be divided for subsequent cycles of image processing, thus defining the pixel off-set per scan-line, is described by the formula: f(m, n)=(2m−1)/2n−1, where n=1, 2 . . . N. and 1<m<2n−1
The Decoder Module traverses the potential bar code using equation (14) and calculates approximations for the first and second order derivatives:
The Decoder Module examines the zero crossings of I″i and if
I″i·I″i+1<0, and
I″i+1>0, and
I′i<−T (20)
where T=minimum derivative magnitude threshold, then the Decoder Module concludes that a “space to bar transition” has occurred.
If:
I″i·I″i+1<0, and
I″i+1<0, and
I′i>T (21)
then, the Decoder Module concludes that a “bar to space transition” has occurred.
The Decoder Module takes the difference in pixel position of adjacent bar/space transitions and adds it to the interpolated mid-point of the bar-space/space-bar transition (found using I″i) to determine the width of each element of the potential bar code. This is the same method used by the Marker Module to calculate the widths of the narrowest and widest parallel lines.
Having calculated the “bar-and-space-count” data for each scan-line, the Decoder Module invokes the different (and separately enabled) symbology-decoders supported within the Imaging-Based Bar Code Symbol Reader, as indicated at
If the Decoder Module decodes using the current “scan-line data”, then it skips all other scan-lines. If the Decoder Module detects a stacked symbology, then it continues to gather more scan-line-data. If decoding fails, then the Decoder Module adjusts the scan-line angles (bar code-orientation angle) progressively and repeats the process. The Decoder Module, in the process of collecting scan-line-data, also correlates the bar-and-space-data from one scan-line with that of the adjacent scan-lines in order to read through damaged or poorly presented bar codes. For every bar code that is decoded by the Decoder Module, a callback function is invoked to save the decoded result. The Decoder Module calls the Pause Checker callback function frequently to let the scanning application take control.
In its Automatic Mode, the Multi-Mode Bar Code Symbol Reading Subsystem 17 repeats this entire process for the entire image, and optionally for progressively acquired images.
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its Manual Mode of Operation
Like in the Automatic Mode, these three (3) stages of image processing in the manual mode of operation can be sub-divided into four major processing blocks (i.e. modules), namely: the Tracker Module, the Finder Module, the Marker Module, and the Decoder Module, which have been described in great detail above. When the Manual Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17 is invoked, these four processing blocks (i.e. modules) are executed sequentially, and optionally incrementally so that a rectangular sub-region of the entire image can be processed per invocation.
As indicated at Block B in
If at Block C in
If at Block G, the Subsystem determines that the Decoder Module does not successfully decode a bar code symbol in the ROI, then it advances to Block I and determines whether all feature vectors have not been examined.
The Subsystem 17 operated in the mode of operation specified by the flow chart of
The primary advantage of the Manual Mode of operation over the Automatic Mode of operation is that the Manual Mode is that, when the user points the bar code reader at a bar code symbol to be read, the bar code reader in the manual mode is more likely to acquire an image and process the pixel data within a ROI containing a bar code symbol is a very quick manner, in comparison with the Automatic Mode which essentially scans and processes the entire captured image starting to from upper left most block of captured image data, ensuring a faster response time in hand-held bar code reading applications, in particular.
Specification of the Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its NoFinder Mode of Operation
If at Block B2 in
If at Block B4, the second bar code border is not found, then the Decoder Module proceeds to Block B7 and determines whether all scan lines through the captured image have been tried. If so, then the Subsystem 17 terminates the Decoder Module and exits its NoFinder Mode of operation. If all scan lines have not been tried at this stage of the process, then the Decoder Module proceeds to Block B8 and advances to the next line of scan data for processing, as described hereinabove.
If at Block B6 in
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its OmniScan Mode of Operation
If at Block B2 in
If at Block B4, the second bar code border is not found, then the Decoder Module proceeds to Block B7 and determines whether all scan lines at all possible start pixels and angles (through the captured image) have been tried. If so, then the Decode Module terminates its process and exits the Omnsican Mode of operation. If the scan lines at all start pixel and angle combinations have not been tried at this stage of the process, then the Decoder Module proceeds to Block B8 and advances the next start pixel and angle for scan data image processing, and returns to Block B1 as described hereinabove.
If at Block G in
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its ROI-Specific Mode of Operation
As reflected in
If at Block C in
If at Block G, the Decoder Module does not successfully read a bar code symbol in the ROI, then it advances to Block I and determines whether all feature vectors have not been examined. If so, then the Decoder Module terminates the ROI-specific Mode of operation. Typically, the Subsystem 17 continues in this mode of operation until, for example, a single bar code symbol is read within an ROI marked as containing a complete bar code symbol. Each instance of the Finder Module involves the analysis of another block of pixel data (corresponding to another feature vector) in effort to find an ROI containing a complete bar code symbol, which can be found at Block C and successfully read at Block G. The sequential analysis of blocks of pixel data follows a helical pattern about the center starting point, determined at Block A of
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its First Multi-Read (OmniScan/ROI-Specific) Mode of Operation
For example, assume the multi-mode image-processing symbol decoding subsystem is configured to operate in its first multi-read (OmniScan/ROI-Specific) mode of operation, as shown in
One potential advantage of the Multi-Read (Omniscan/ROI-Specific) Mode of operation, over the Manual Mode of operation, is that the Multi-Read Mode offers an OmniScan Mode of operation to initially and rapidly read 1D bar code symbologies, and various kinds of 2D bar code symbologies whenever present in the captured image, and whenever a PDF417 symbology is detected (through its code fragments), the Multi-Mode Bar Code Symbol Reading Subsystem 17 can automatically switch (on-the-fly) to its ROI-specific Mode of operation to immediately process high-resolution image data at a specific ROI (at which there is a high likelihood of a bar code symbol present).
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its Second Multi-Read (No-Finder/ROI-Specific) Mode of Operation
For example, assume the Multi-Mode Bar Code Symbol Reading Subsystem 17 is configured to operate in its second multi-read (No-Finder/ROI-Specific) mode when processing a wide-area image captured by the system, as shown in
Alternatively, assume the subsystem 17 is configured to operate in its “multi-read mode” when processing first a narrow-area image and then a wide-area image captured by the system. In this case, if during the NoFinder Mode of operation, code fragments associated with a PDF417 bar code symbol are detected within the captured narrow-area image, but decode processing thereof is unsuccessful, then the Subsystem 17 will automatically (i) enter its ROI-specific mode of operation described above, as a wide-area image is automatically captured by the system, and then (ii) immediately commence processing the captured wide-area image at a ROI specified by y coordinates corresponding to the narrow-area image processed during the NoFinder Mode of operation. In the illustrative embodiment, this switching of modes in the Subsystem 17 occurs within a single bar code symbol reading cycle, and involves processing two captured image frames using at least two different modes (i.e. methods) of image-processing based bar code reading (i.e. NoFinder Mode and ROI-Specific), within each of which potentially dozens of different bar code symbol decoding algorithms are typically applied during each decoding cycle.
One potential advantage of the “No-Finder/ROI-Specific” Multi-Mode operation over the Manual Mode of operation, regardless of its method of implementation, is that the No-Finder Mode can rapidly read 1D bar code symbologies whenever they are presented to the bar code symbol reader, and then whenever a 2D (e.g. PDF417) symbology is encountered, the bar code symbol reader can automatically switch its method of reading to the ROI-specific Mode use features collected from a narrow (or wide) area image processed during the No-Finder Mode, so as to immediately process a specific ROI in a captured wide-area image frame, at which there is a high likelihood of a bar code symbol present, and to do so in a highly targeted manner.
Specification of Multi-Mode Bar Code Symbol Reading Subsystem of the Present Invention Operated During its Third Multi-Read (No-Finder/OmniScan/ROI-Specific) Mode of Operation
For example, assume the Subsystem 17 is configured to operate in its “multi-read mode” when processing a wide-area image captured by the system, as shown in
One potential advantage of the “No-Finder/OmniScan/ROI-Specific” Multi-Read Mode operation over the Manual Mode of operation, regardless of its method of implementation, is that the No-Finder Mode can rapidly acquire 1D bar code symbologies whenever they are presented to the bar code symbol reader, and then whenever a 2D symbology is encountered, the bar code symbol reader can automatically switch its method of reading to the OmniScan Mode, collected features on processed image data, and if this decoding method is not successful, then the bar code reader can automatically switch its method of reading to the ROI-Specific Mode and use features collected during the Omniscan Mode to immediately process a specific ROI in a captured image frame, at which there is a high likelihood of a bar code symbol present, and to do so in a highly targeted manner.
Programmable Modes of Bar Code Reading Operation Within the Hand-Supportable Digital Image-Based Bar Code Reading Device of the Present Invention
As indicated in
Preferably, these Modes Of System Operation can programmed by reading a sequence of bar code symbols from a programming menu as taught, for example, in U.S. Pat. No. 6,565,005, which describes a bar code scanner programming technology developed by Metrologic Instruments, Inc., and marketed under the name MetroSelect® Single Line Configuration Programming Method.
These Programmable System Modes of Operation will be described in detail hereinbelow. Alternatively, the MetroSet® Graphical User Interface (GUI) can be used to view and change configuration parameters in the bar code symbol reader using a PC. Alternatively, a Command Line Interface (CLI) may also be used to view and change configuration parameters in the bar code symbol reader,
Each of these programmable modes of bar code reader operation shall be now described in greater detail with reference to other components of the system that are configured together to implement the same in accordance with the principles of the present invention.
Overview of the Imaging-Based Bar Code Reader Start-Up Operations
When the bar code reader hereof boots up, its FPGA is programmed automatically with 12.5/50/25 MHz clock firmware and all required device drivers are also installed automatically. The login to the Operating System is also done automatically for the user “root”, and the user is automatically directed to the /root/ directory. For nearly all programmable modes of system operation employing automatic object detection, the IR object detection software driver is installed automatically. Also, for all Programmable System Modes of operation employing the narrow-area illumination mode, the narrow-area illumination software drivers are automatically installed, so that a Pulse Width Modulator (PWM) is used to drive the narrow-area LED-based illumination array 27. To start the bar code reader operation, the operating system calls the/tmp/directory first (“cd /tmp”), and then the focusapp program, located in /root/ directory is run, because the /root/ directory is located in Flash ROM, and to save captured images, the directory /tmp/ should be the current directory where the image is stored in transition to the host), which is located in RAM.
Programmed Mode of System Operation No. 1: Manually-Triggered Single-Attempt 1D Single-Read Mode Employing the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 1 involves configuration of the system as follows: disabling the IR-based Object Presence and Range Detection Subsystem 12; and enabling the use of manual-trigger activation, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17.
During this mode of system operation, when a user pulls the trigger switch 2C, the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17. Then, the bar code reader illuminates the target object using narrow-area illumination, captures a narrow-area image of the target object, and launches the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17. The captured image is then processed using the No-Finder Mode. If a single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If single cycle of programmed image processing is not result in a successful reading of a 1D bar code symbol, then the cycle is terminated, all subsystems are deactivated, and the bar code reader returns to its sleep mode of operation, and wait for the next event (e.g. manually pulling trigger switch 2C) which will trigger the system into active operation.
Programmed Mode of System Operation No. 2: Manually-Triggered Multiple-Attempt 1D Single-Read Mode Employing the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 2 involves configuration of the system as follows: disabling the IR-based Object Presence and Range Detection Subsystem 12; and enabling the use of manual-trigger activation, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17.
During this mode of system operation, when a user pulls the trigger switch 2C, the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using narrow-area illumination, captures a narrow-area image of the target object, and launches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured narrow-area image is then processed using the No-Finder Mode. If the single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem for use by the host system. If the cycle of programmed image processing does not produce a successful read, then the system automatically enables successive cycles of illumination/capture/processing so long as the trigger switch 2C is being pulled, and then until the system reads a bar code symbol within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code symbol reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch 2C is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Programmed Mode of System Operation No. 3: Manually-Triggered Single-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode and the Automatic, Manual or ROI-Specific Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 3 involves configuration of the system as follows: disabling the IR-based Object Presence and Range Detection Subsystem 12; and enabling the use of manual-trigger activation, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmable mode of system operation, the bar code reader is idle (in its sleep mode) until a user points the bar code reader towards an object with a bar code label, and then pulls the trigger switch 2C. When this event occurs, the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14 (i.e. drives the narrow-area illumination array 27), the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using narrow-area illumination, captures a narrow-area image of the target object, and launches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured narrow-area image is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17. Then the bar code reader illuminates the target object using both near-field and far-field wide-area illumination, captures a wide-area image of the target object, and launches the Manual, ROI-Specific or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual, ROI-Specific or Automatic Mode. If this single cycle of programmed image processing results in the successful reading of a 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the subsystem 19 deactivates all subsystems and then returns to its sleep mode, and waits for an event, which will cause it to re-enter its active mode of operation.
Programmed Mode of System Operation No. 4: Manually-Triggered Multiple-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode and the Automatic, Manual or ROI-Specific Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 4 involves configuration of the system as follows: disabling the IR-based object detection subsystem 12; and enabling the use of manual-trigger activation, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes of the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, when a user pulls the trigger switch 2C, the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using narrow-area illumination, captures a narrow-area image of the target object, and launches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured narrow-area image is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using both near-field and far-field wide-area illumination, captures a wide-area image of the target object, and launches the Manual (or Automatic) Mode of the Multi-Mode Bar Code Reading Subsystem. The captured wide-area image is then processed using the Manual Mode of bar code symbol reading. If this single cycle of programmed processing results in the successful reading of a 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read of a single 1D or 2D bar code symbol, then the Subsystem 19 automatically enables successive cycles of wide-area illumination/wide-area image capture and processing so long as the trigger switch 2C is being pulled, and then until the system reads a single 1D or 2D bar code symbol within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Programmed Mode of System Operation No. 5: Manually-Triggered Multiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Mode and the Automatic, Manual or ROI-Specific Modes of the Multi-Mode Bar Code Reading Symbol Subsystem
Programmed Mode of System Operation No. 5 involves configuration of the system as follows: disabling the IR-based Object Presence and Range Detection Subsystem 12; and enabling the use of manual-trigger activation, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes of the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this mode of system operation, when a user pulls the trigger switch 2C, the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem. Then, the bar code reader illuminates the target object using narrow-area illumination, captures a narrow-area image of the target object, and launches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem. The captured narrow-area image is then processed using the No-Finder Mode. If this single cycle of programmed processing results in the successful decoding of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed decode image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using both near-field and far-field wide-area illumination, captures a wide-area image of the target object, and launches the Manual (ROI-Specific and/or Automatic) Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual Mode of reading. If this single cycle of programmed processing results in the successful reading of a 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful reading of one or more 1D and/or 2D bar code symbols, then the system automatically enables successive cycles of wide-area illumination/wide-area image capture/image processing so long as the trigger switch is being pulled, and then until the system reads one or more 1D and/or 2D bar code symbols within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch 2C is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Programmed Mode of System Operation No. 6: Automatically-Triggered Single-Attempt 1D Single-Read Mode Employing the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 6 involves configuration of the system as follows: disabling the use of manual-trigger activation; and enabling IR-based Object Presence and Range Detection Subsystem 12, the narrow-area illumination mode only within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode only in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the Bar Code Symbol Reading Subsystem 17 configured in its No-Finder Mode of operation. If this single cycle of programmed decode processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates all subsystems, causing the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation.
Programmed Mode of System Operation No. 7: Automatically-Triggered Multi-Attempt 1D Single-Read Mode Employing the No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 7 involves configuration of the system as follows: disabling the use of manual-trigger activation; and enabling IR-based Object Presence And Range Detection Subsystem 12, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the bar code reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful decode, then the system automatically enables successive cycles of narrow-area illumination/narrow-area image capture/processing so long as the trigger switch 2C is being pulled, and then until the system reads a single 1D bar code symbol within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Programmed Mode of System Operation No. 8: Automatically-Triggered Multi-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode and Manual ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 8 involves configuration of the system as follows: disabling the use of manual-trigger activation during all phase of system operation; and enabling IR-based Object Presence and Range Detection Subsystem 12, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the scanner, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem, 14 the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the No-Finder Mode of operation. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode in the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17. Then, the Bar Code Symbol Reader illuminates the target object using either near-field or far-field wide-area illumination (depending on the detected range of the target object), captures a wide-area image of the target object, and launches the Manual, ROI-Specific or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual Mode of reading. If this cycle of programmed image processing results in the successful reading of a single 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful reading of a single 1D or 2D bar code symbol, then the system automatically enables successive cycles of wide-area illumination/wide-area image capture/processing so long as the target object is being detected, and then until the system reads one or more 1D and/or 2D bar code symbols within a captured image of the target object; only thereafter, or when the user moves the object out of the FOV of the bar code reader, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the object is being detected by the bar code reader, the Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the object is moved away from the FOV of the bar code reader.
Programmed Mode of System Operation No. 9: Automatically-Triggered Multi-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 9 involves configuration of the system as follows: disabling the use of manual-trigger activation during all phases of system operation; and enabling IR-based Object Presence and Range Detection Subsystem 12, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No Finder Mode and Manual or Automatic Modes of the Multi-Mode Bar Code Symbol Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the No-Finder Mode. If this single cycle of programmed processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode in the Image Formation and Detection Subsystem 13, and the Manual and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17. Then, the bar code reader illuminates the target object using either near-field or far-field wide-area illumination (depending on the detected range of the target object), captures a wide-area image of the target object, and launches the Manual (ROI-Specific or Automatic) Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual Method of decoding. If this cycle of programmed image processing results in the successful reading of a single 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read of a single 1D or 2D bar code symbol, then the system automatically enables successive cycles of wide-area-illumination/wide-area image-capture/processing so long as the target object is being detected, and then until the system reads one or more 1D and/or 2D bar code symbols within a captured image of the target object; only thereafter, or when the user moves the object out of the FOV of the bar code symbol reader, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the object is being detected by the bar code reader, the bar code reader will re-attempt reading every 500 ms (at most) until it either succeeds or the object is moved away from the FOV of the bar code reader.
Programmable Mode of System Operation No. 10: Automatically-Triggered Multiple-Attempt 1D/2D Single-Read Mode Employing the Manual, ROI-Specific, Automatic or Omniscan Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 10 involves configuration of the system as follows: disabling the use of manual-trigger activation during all phase of system operation; and enabling IR-based Object Presence and Range Detection Subsystem 12, the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific, Automatic or OmniScan Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user present an object with a bar code symbol under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode in the Image Formation and Detection Subsystem 13, and either Manual, ROI-Specific, Automatic or Omniscan Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a wide area of the target object within the field-of-view (FOV) of the bar code reader with far-field or near-field wide area illumination (depending on the detected range of the target object), and capture/acquire a wide-area image which is then processed using either the Manual, ROI-Specific, Automatic or Omniscan Method of reading. If this single cycle of programmed processing results in the successful reading of a 1D or 2D bar code symbol (when the Manual, ROI-Specific and Automatic Methods are used), then the resulting symbol character data is sent to the Input/Output Subsystem for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system automatically enables successive cycles of wide-area illumination/wide-area-image-capture/processing so long as the target object is being detected, and then until the system reads a single 1D and/or 2D bar code symbol within a captured image of the target object; only thereafter, or when the user moves the object out of the FOV of the bar code reader, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the object is being detected by the bar code reader, the bar code reader will re-attempt reading every 500 ms (at most) until it either succeeds or the object is moved away from the FOV of the bar code reader.
Programmed Mode of System Operation No. 11: Semi-Automatic-Triggered Single-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode and the Automatic, ROI-Specific or Manual Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 11 involves configuration of the system as follows: disabling the use of the manual-trigger activation during the system activation phase of operation; and enabling the IR-based Object Presence and Range Detection Subsystem 12, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, if the user pulls the trigger switch 2C during narrow-area illumination and image capture and continues to do so, the bar code reader will automatically illuminate the target object using wide-area illumination, capture a wide-area image of the target object, and launch the Manual, ROI-Specific or Automatic Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17. The captured wide-area image is then processed using the Manual, ROI-Specific or Automatic Mode/Method of bar code reading. If this single cycle of programmed image processing results in the successful reading of a single 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful reading of a single 1D or 2D bar code symbol, then the subsystem 19 automatically deactivates all subsystems, causing the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation
Programmable Mode of System Operation No. 12: Semi-Automatic-Triggered Multiple-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode and the Automatic ROI-Specific or Manual Modes of the Multi-Mode Bar Code Symbol Reading Subsystem:
Programmed Mode of System Operation No. 12 involves configuration of the system as follows: disabling the use of manual-trigger activation during the system activation phase of operation; and enabling the IR-based Object Presence and Range Detection Subsystem 12, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected, the bar code reader “wakes up” and the system activates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image, which is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, if the user pulls the trigger switch 2C during narrow-area illumination and image capture and continues to do so, the bar code reader will automatically illuminate the target object using wide-area illumination, capture a wide-area image of the target object, and launches the Manual, ROI-Specific or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual Mode of reading. If this single cycle of programmed image processing results in the successful reading of a single 1D or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful decode of a single 1D or 2D bar code symbol, then the system automatically enables successive cycles of wide-area illumination/wide-area-image-capture/processing so long as the trigger switch 2C is being pulled, and then until the system reads one or more 1D and/or 2D bar code symbols within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch 2C is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Implementation of Programmable Mode of System Operation No. 12
When the Focus IR module detects an object in front of object detection field 20, it posts the OBJECT_DETECT_ON event to the Application Layer. The Application Layer software responsible for processing this event starts the CodeGate Task. When the user pulls the trigger switch 2C, the TRIGGER_ON event is posted to the Application. The Application Layer software responsible for processing this event checks if the CodeGate Task is running, and if so, it cancels it and then starts the Main Task. When the user releases the trigger switch 2C, the TRIGGER_OFF event is posted to the Application. The Application Layer software responsible for processing this event, checks if the Main Task is running, and if so, it cancels it. If the object is still within the object detection field 20, the Application Layer starts the CodeGate Task again.
When the user moves the bar code reader away from the object (or the object away from the bar code reader), the OBJECT_DETECT_OFF event is posted to the Application Layer. The Application Layer software responsible for processing this event checks if the CodeGate Task is running, and if so, it cancels it. The CodeGate Task, in an infinite loop, does the following. It activates the narrow-area illumination array 27 which illuminates a “narrow” horizontal area at the center of the field-of-view and then the Image Formation and Detection Subsystem 13 acquires an image of that narrow-area (i.e. few rows of pixels on the CMOS image sensing array 22), and then attempts to read a bar code symbol represented in the image. If the read is successful, it saves the decoded data in the special CodeGate data buffer. Otherwise, it clears the CodeGate data buffer. Then, it continues the loop. The CodeGate Task never exits on its own; it can be canceled by other modules of the Focus software when reacting to other events.
When a user pulls the trigger switch 2C, the event TRIGGER_ON is posted to the Application Layer. The Application Layer software responsible for processing this event, checks if the CodeGate Task is running, and if so, it cancels it and then starts the Main Task. The CodeGate Task can also be canceled upon OBJECT_DETECT_OFF event, posted when the user moves the bar code reader away from the object, or the object away from the bar code reader.
Programmable Mode of Operation No. 13: Semi-Automatic-Triggered Multiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Mode and the Automatic, ROI-Specific or Manual Modes of the Multi-Mode Bar Code Reading Subsystem
Programmed Mode of System Operation No. 13 involves configuration of the system as follows: disabling the use of manual-trigger activation during the system activation phase of operation; and enabling the IR-based Object Presence and Range Detection Subsystem 12, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected by the Object Presence and Range Detection Subsystem 12, the bar code reader “wakes up” and the system activates the narrow-area illumination mode in the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the system to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, the system captures/acquires a narrow-area image which is then processed using the No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful read, then the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17, and then activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode of the Image Formation and Detection Subsystem 13, and the Manual and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then, if the user pulls the trigger switch 2C during narrow-area illumination and image capture and continues to do so, the bar code reader will automatically illuminate the target object using wide-area illumination, capture a wide-area image of the target object, and invoke the Manual, ROI-Specific and/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then processed using the Manual, ROI-Specific or Automatic Mode of reading. If this single cycle of programmed image processing results in the successful reading of one or more 1D and/or 2D bar code symbols, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed decode image processing does not produce a successful reading of one or more 1D and/or 2D bar code symbols then the system automatically enables successive cycles of wide-area illumination/wide-area-image-capture/image-processing so long as the trigger switch 2C is being pulled, and then until the system reads one or more 1D and/or 2D bar code symbols within a captured image of the target object; only thereafter, or when the user releases the trigger switch 2C, will the bar code reader return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch 2C is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch 2C is manually released.
Programmable Mode of Operation No. 14: Semi-Automatic-Triggered Multiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Mode and the Omniscan Modes of the Multi-Mode Bar Code Symbol Reading Subsystem
Programmed Mode of System Operation No. 14 involves configuration of the system as follows: disabling the use of manual-trigger activation during the system activation phase of operation; and enabling the IR-based Object Presence and Range Detection Subsystem 12, the narrow-area and wide-area illumination modes within the Multi-Mode Illumination Subsystem 14, the narrow-area and wide-area image capture modes in the Image Formation and Detection Subsystem 13, and the No-Finder Mode and OmniScan Mode of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader is idle until a user points the reader towards an object with a bar code label. Once the object is under the field-of-view of the bar code reader, and the object is automatically detected by the Object Presence and Range Detection Subsystem 12, the bar code reader “wakes up” and the system activates the narrow-area illumination mode in the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode in the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. This causes the narrow-area illumination array 27 to illuminate a “narrow” horizontal area of the target object at the center of the field-of-view (FOV) of the bar code reader, indicating to the user where the area targeted by the bar code reader is, and thus, enabling the user to position and align the narrow-area illumination beam on the target bar code. Then, Subsystem 13 captures/acquires a narrow-area image which is then processed by Subsystem 17 using its No-Finder Mode. If this single cycle of programmed image processing results in the successful reading of a 1D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system, and then the system deactivates all subsystems and resumes its sleep state of operation. If this cycle of programmed image processing does not produce a successful read, it may nevertheless produce one or more code fragments indicative of the symbology represented in the image, (e.g. PDF 417). In this case, the system deactivates the narrow-area illumination mode within the Multi-Mode Illumination Subsystem 14, the narrow-area image capture mode of the Image Formation and Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17; and then, if the user is pulling the trigger switch 2C at about this time, the system activates the wide-area illumination mode within the Multi-Mode Illumination Subsystem 14, the wide-area image capture mode of the Image Formation and Detection Subsystem, and either the Omniscan Mode of the Multi-Mode Bar Code Reading Subsystem 17 if code fragments have been found indicating a 2D code format (e.g. PDF format code) within the image at perhaps a particular orientation. Then, the bar code reader proceeds to automatically illuminate the target object using wide-area illumination, capture a wide-area image of the target object, and invoke the Omniscan Mode of the Multi-Mode Bar Code Reading Subsystem 17. The captured wide-area image is then first processed using the Omniscan Mode, using a first processing direction (e.g. at 0 degrees), and sequentially advances the Omniscan Mode of reading at an different angular orientation (e.g. 6 possible directions/orientations) until a single bar code symbol is successfully read. If this single cycle of programmed decode processing (using the Omniscan Mode) results in the successful decoding of a single 1D and/or 2D bar code symbol, then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system. If this cycle of programmed image processing does not produce a successful reading of a single 1D and/or 2D bar code symbol, then the system automatically enables successive cycles of wide-area illumination/wide-area image capture/processing so long as the trigger switch 2C is being pulled, and then until the system reads a single 1D and/or 2D bar code symbol within a captured image of the target object. Only thereafter, or when the user releases the trigger switch 2C, the system will return to its sleep mode of operation, and wait for the next event that will trigger the system into active operation. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the trigger switch 2C is being pulled by the user, the Imaging-Based Bar Code Symbol Reader will re-attempt reading every 500 ms (at most) until it either succeeds or the trigger switch is manually released.
Programmable Mode of Operation No. 15: Continuously-Automatically-Triggered Multiple-Attempt 1D/2D Multiple-Read Mode Employing the Automatic, Manual ROI-Specific or Omniscan Modes of the Multi-Mode Bar Code Reading Subsystem
Programmed Mode of System Operation No. 15, typically used for testing purposes, involves configuration of the system as follows: disabling the use of manual-trigger activation during all phase of system operation; and enabling IR-based Object Presence and Range Detection Subsystem 12, the wide-area illumination mode in the Multi-Mode Illumination Subsystem, 14 the wide-area image capture mode in the Image Formation and Detection Subsystem 13, and the Manual, ROI-Specific, Automatic or OmniScan Modes of the Multi-Mode Bar Code Reading Subsystem 17.
During this programmed mode of system operation, the bar code reader continuously and sequentially illuminates a wide area of the target object within the field-of-view (FOV) of the bar code reader with both far-field and near-field wide-area illumination, captures a wide-area image thereof, and then processes the same using either the Manual, ROI-Specific, Automatic or Omniscan Modes of operation. If any cycle of programmed image processing results in the successful reading of a 1D or 2D bar code symbol (when the Manual, ROI-Specific and Automatic Modes are used), then the resulting symbol character data is sent to the Input/Output Subsystem 18 for use by the host system (i.e. typically a test measurement system). If when any cycle of programmed image processing does not produce a successful read, the system automatically enables successive cycles of wide-area illumination/wide-area image-capture/processing. In the illustrative embodiment, the default decode timeout is set to 500 ms which can be simply changed by programming. This default decode timeout setting ensures that while the object is being detected by the bar code reader, the bar code reader will re-attempt reading every 500 ms (at most) until it either succeeds or the object is moved away from the FOV of the bar code reader.
Diagnostic Mode of Imaging-Based Bar Code Reader Operation: Programmable Mode of System Operation No. 16
Programmed Mode of System Operation No. 16 is a Diagnostic Mode. An authorized user can send a special command to the bar code reader to launch a Command Line Interface (CLI) with the bar code reader. When the bar code reader receives such request from the user, it sends a prompt “MTLG>” back to the user as a handshaking indication that the scanner is ready to accept the user commands. The user then can enter any valid command to the bar code reader and view the results of its execution. To communicate with the reader in diagnostic mode over such communication line as RS232, the user can use any standard communication program, such as Windows HyperTerminal for example. This mode of operation can be used to test/debug the newly introduced features or view/change the bar code reader configuration parameters. It can also be used to download images and/or a backlog of the previously decoded bar code data from the reader memory to the host computer.
Live Video Mode of Imaging-Based Bar Code Reader Operation: Programmable Mode of System Operation No. 17
Program Mode of System Operation No. 17 can be used in combination with any other supported imaging modes. In this mode, the images acquired by the bar code reader are transmitted to the host computer in real-time along with the results of image-processing based bar code symbol reading by Subsystem 17 (if such results are available).
Second Illustrative Embodiment of Digital Imaging-Based Bar Code Symbol Reading Device of the Present Invention, Wherein Four Distinct Modes of Illumination are Provided
In the first illustrative embodiment described above, the Multi-mode Illumination Subsystem 14 had three primary modes of illumination: (1) narrow-area illumination mode; (2) near-field wide-area illumination mode; and (3) far-field wide-area illumination mode.
In a second alternative embodiment of the Digital Imaging-Based Bar Code Symbol Reading Device of the present invention shown in
One of advantages of using a pair of independent illumination arrays to produce narrow-area illumination fields over near and far field portions of the FOV is that it is possible to more tightly control the production of a relatively “narrow” or “narrowly-tapered” narrow-area illumination field along its widthwise dimension. For example, as shown in
Third Illustrative Embodiment of Digital Imaging-Based Bar Code Symbol Reading Device of the Present Invention
Alternatively, the Imaging-Based Bar Code Symbol Reading Device of the present invention can have virtually any type of form factor that would support the reading of bar code symbols at diverse application environments. One alternative form factor for the bar code symbol reading device of the present invention is shown in
The Digital Imaging-Based Bar Code Reading Device of The Present Invention
As shown in
Illustrative Embodiment of a Wireless Bar Code-Driven Portable Data Terminal (PDT) System of the Present Invention
As shown in
As shown in
As shown in block schematic diagram of
As shown in
Notably, Wireless Hand-Supportable Bar Code Driven Portable Data Terminal System 140, as well as the POS Digital Imaging-Based Bar Code Symbol Reader 1″ shown in
In such hands-on and hands-free kinds of applications, the trigger switch 2C employed in the Digital Imaging Bar Code Symbol Reading Device of the present invention can be readily modified, and augmented with a suitable stand-detection mechanism, which is designed to automatically configure and invoke the PDT 150 and its Engine 100 into its Presentation Mode (i.e. System Mode of Operation No. 12) or other suitable system mode when the PDT is placed in its Base Station 155 as shown in
Similarly, the trigger switch 2C employed in the POS Digital Imaging Bar Code Symbol Reading Device 1″ can be readily modified, and augmented with stand-detection mechanism, which is designed to automatically configure and invoke the POS Reader 1″ into its Presentation Mode (i.e. System Mode of Operation No. 12) or other suitable system mode, when the Reader 1″ is resting on a countertop surface, as shown in
Modifications Which Readily Come To Mind
In alternative embodiments of the present invention, illumination arrays 27, 28 and 29 employed within the Multi-Mode Illumination Subsystem 14 may be realized using solid-state light sources other than LEDs, such as, for example, visible laser diode (VLDs) taught in great detail in WIPO Publication No. WO 02/43195 A2, published on May 30, 2002, assigned to Metrologic Instruments, Inc., and incorporated herein by reference in its entirety as if set forth fully herein. However, when using VLD-based illumination techniques in the Imaging-Based Bar Code Symbol Reader of the present invention, great care must be taken to eliminate or otherwise substantially reduce speckle-noise generated at the image detection array 22 when using coherent illumination source during object illumination and imaging operations. WIPO Publication No. WO 02/43195 A2, supra, provides diverse methods of and apparatus for eliminating or substantially reducing speckle-noise during image formation and detection when using VLD-based illumination arrays.
While CMOS image sensing array technology was described as being used in the preferred embodiments of the present invention, it is understood that in alternative embodiments, CCD-type image sensing array technology, as well as other kinds of image detection technology, can be used.
The bar code reader design described in great detail hereinabove can be readily adapted for use as an industrial or commercial fixed-position bar code reader/imager, having the interfaces commonly used in the industrial world, such as Ethernet TCP/IP for instance. By providing the system with an Ethernet TCP/IP port, a number of useful features will be enabled, such as, for example: multi-user access to such bar code reading systems over the Internet; control of multiple bar code reading system on the network from a single user application; efficient use of such bar code reading systems in live video operations; web-servicing of such bar code reading systems, i.e. controlling the system or a network of systems from an Internet Browser; and the like.
While the illustrative embodiments of the present invention have been described in connection with various types of bar code symbol reading applications involving 1-D and 2-D bar code structures, it is understood that the present invention can be use to read (i.e. recognize) any machine-readable indicia, dataform, or graphically-encoded form of intelligence, including, but not limited to bar code symbol structures, alphanumeric character recognition strings, handwriting, and diverse dataforms currently known in the art or to be developed in the future. Hereinafter, the term “code symbol” shall be deemed to include all such information carrying structures and other forms of graphically-encoded intelligence.
Also, Imaging-Based Bar Code Symbol Readers of the present invention can also be used to capture and process various kinds of graphical images including photos and marks printed on driver licenses, permits, credit cards, debit cards, or the like, in diverse user applications.
It is understood that the image capture and processing technology employed in bar code symbol reading systems of the illustrative embodiments may be modified in a variety of ways which will become readily apparent to those skilled in the art of having the benefit of the novel teachings disclosed herein. All such modifications and variations of the illustrative embodiments thereof shall be deemed to be within the scope and spirit of the present invention as defined by the Claims to Invention appended hereto.
This Application is a Continuation of U.S. application Ser. No. 10/893,800 filed Jul. 16, 2004, now U.S. Pat. No. 7,273,180 B2; which is a Continuation of U.S. application Ser. No. 10/712,787 filed Nov. 13, 2003, now U.S. Pat. No. 7,128,266 B2; each said Application being assigned to Metrologic Instruments, Inc. and incorporated herewith.
Number | Name | Date | Kind |
---|---|---|---|
4045813 | Jones | Aug 1977 | A |
4291338 | Thomas | Sep 1981 | A |
4317622 | Metzger | Mar 1982 | A |
4338514 | Bixby | Jul 1982 | A |
4471228 | Nishizawa et al. | Sep 1984 | A |
4528444 | Hara et al. | Jul 1985 | A |
4535758 | Longacre, Jr. | Aug 1985 | A |
4538060 | Sakai et al. | Aug 1985 | A |
4613402 | Losee et al. | Sep 1986 | A |
4632542 | Whiteside | Dec 1986 | A |
4703344 | Hisano et al. | Oct 1987 | A |
D297432 | Stant et al. | Aug 1988 | S |
4766300 | Chadima, Jr. et al. | Aug 1988 | A |
4805026 | Oda | Feb 1989 | A |
4816916 | Akiyama | Mar 1989 | A |
4818847 | Hara et al. | Apr 1989 | A |
4819070 | Hynecek | Apr 1989 | A |
4835615 | Taniguchi et al. | May 1989 | A |
D304026 | Goodner et al. | Oct 1989 | S |
4894523 | Chadima, Jr. et al. | Jan 1990 | A |
D308865 | Weaver et al. | Jun 1990 | S |
4952966 | Ishida et al. | Aug 1990 | A |
4972224 | Thompson | Nov 1990 | A |
4978981 | Satoh et al. | Dec 1990 | A |
4996413 | McDaniel et al. | Feb 1991 | A |
5025319 | Mutoh et al. | Jun 1991 | A |
5034619 | Hammond, Jr. | Jul 1991 | A |
5063462 | Nakagawa et al. | Nov 1991 | A |
5111263 | Stevens | May 1992 | A |
5124537 | Chandler et al. | Jun 1992 | A |
5142684 | Perry et al. | Aug 1992 | A |
5144119 | Chadima, Jr. et al. | Sep 1992 | A |
5170205 | Satoh et al. | Dec 1992 | A |
5202907 | Yonemoto | Apr 1993 | A |
5231293 | Longacre, Jr. | Jul 1993 | A |
5233169 | Longacre, Jr. | Aug 1993 | A |
5235198 | Stevens et al. | Aug 1993 | A |
5235416 | Stanhope | Aug 1993 | A |
5262871 | Wilder et al. | Nov 1993 | A |
5270802 | Takagi et al. | Dec 1993 | A |
5272538 | Homma et al. | Dec 1993 | A |
5281800 | Pelton et al. | Jan 1994 | A |
5286960 | Longacre, Jr. et al. | Feb 1994 | A |
5288985 | Chadima, Jr. et al. | Feb 1994 | A |
5291008 | Havens et al. | Mar 1994 | A |
5291009 | Roustaei | Mar 1994 | A |
5294783 | Hammond, Jr. et al. | Mar 1994 | A |
5296689 | Reddersen et al. | Mar 1994 | A |
D346162 | Bennett et al. | Apr 1994 | S |
5304786 | Pavlidis et al. | Apr 1994 | A |
5304787 | Wang | Apr 1994 | A |
5308962 | Havens et al. | May 1994 | A |
5309243 | Tsai | May 1994 | A |
5319181 | Shellhammer et al. | Jun 1994 | A |
5319182 | Havens et al. | Jun 1994 | A |
5340973 | Knowles et al. | Aug 1994 | A |
5345266 | Denyer | Sep 1994 | A |
5349172 | Roustaei | Sep 1994 | A |
5352884 | Petrick et al. | Oct 1994 | A |
5354977 | Roustaei | Oct 1994 | A |
5378883 | Batterman et al. | Jan 1995 | A |
5396054 | Krichever et al. | Mar 1995 | A |
5399846 | Pavlidis et al. | Mar 1995 | A |
5410141 | Kkoenck et al. | Apr 1995 | A |
5410348 | Hamasaki | Apr 1995 | A |
5418357 | Inoue et al. | May 1995 | A |
5420409 | Longacre, Jr. et al. | May 1995 | A |
5430285 | Karpen et al. | Jul 1995 | A |
5430286 | Hammond, Jr. et al. | Jul 1995 | A |
5457309 | Pelton | Oct 1995 | A |
5463214 | Longacre, Jr. et al. | Oct 1995 | A |
5468951 | Knowles et al. | Nov 1995 | A |
5479515 | Longacre, Jr. | Dec 1995 | A |
5484994 | Roustaei | Jan 1996 | A |
5489771 | Beach et al. | Feb 1996 | A |
5491330 | Sato et al. | Feb 1996 | A |
5495097 | Katz et al. | Feb 1996 | A |
5519496 | Borgert et al. | May 1996 | A |
5521366 | Wang et al. | May 1996 | A |
5532467 | Rousatei | Jul 1996 | A |
5541419 | Arakellian | Jul 1996 | A |
5550366 | Roustaei | Aug 1996 | A |
5572006 | Wang et al. | Nov 1996 | A |
5572007 | Aragon et al. | Nov 1996 | A |
5591952 | Krichever et al. | Jan 1997 | A |
5610654 | Parulski et al. | Mar 1997 | A |
5621203 | Swartz et al. | Apr 1997 | A |
5623137 | Powers et al. | Apr 1997 | A |
5635697 | Shellhammer et al. | Jun 1997 | A |
5637851 | Swartz et al. | Jun 1997 | A |
5646390 | Wang et al. | Jul 1997 | A |
5659167 | Wang et al. | Aug 1997 | A |
5659761 | DeArras et al. | Aug 1997 | A |
5661291 | Ahearn et al. | Aug 1997 | A |
5677522 | Rice et al. | Oct 1997 | A |
5702059 | Chu et al. | Dec 1997 | A |
5710417 | Joseph et al. | Jan 1998 | A |
5717195 | Feng et al. | Feb 1998 | A |
5717221 | Li et al. | Feb 1998 | A |
5719384 | Ju et al. | Feb 1998 | A |
5723853 | Longacre, Jr. et al. | Mar 1998 | A |
5723868 | Hammond, Jr. et al. | Mar 1998 | A |
5736724 | Ju et al. | Apr 1998 | A |
5739518 | Wang | Apr 1998 | A |
5756981 | Roustaei et al. | May 1998 | A |
5773806 | Longacre, Jr. et al. | Jun 1998 | A |
5773810 | Hussey et al. | Jun 1998 | A |
D396033 | Ahearn et al. | Jul 1998 | S |
5777314 | Roustaei | Jul 1998 | A |
5780834 | Havens et al. | Jul 1998 | A |
5783811 | Feng et al. | Jul 1998 | A |
5784102 | Hussey et al. | Jul 1998 | A |
5786582 | Roustaei et al. | Jul 1998 | A |
5786583 | Maltsev | Jul 1998 | A |
5786586 | Pidhirny et al. | Jul 1998 | A |
5789731 | Amundsen et al. | Aug 1998 | A |
5793033 | Feng et al. | Aug 1998 | A |
5793967 | Simciak et al. | Aug 1998 | A |
5808286 | Nukui et al. | Sep 1998 | A |
5811774 | Ju et al. | Sep 1998 | A |
5811784 | Tausch et al. | Sep 1998 | A |
5815200 | Ju et al. | Sep 1998 | A |
5821518 | Sussmeier et al. | Oct 1998 | A |
5825006 | Longacre, Jr. et al. | Oct 1998 | A |
5831254 | Karpen et al. | Nov 1998 | A |
5831674 | Ju et al. | Nov 1998 | A |
5834754 | Feng et al. | Nov 1998 | A |
5837985 | Karpen | Nov 1998 | A |
5838495 | Hennick | Nov 1998 | A |
5841121 | Koenck | Nov 1998 | A |
5867594 | Cymbalski | Feb 1999 | A |
5883375 | Knowles et al. | Mar 1999 | A |
5900613 | Koziol et al. | May 1999 | A |
5914476 | Gerst, III et al. | Jun 1999 | A |
5920061 | Feng | Jul 1999 | A |
5929418 | Ehrhart et al. | Jul 1999 | A |
5932862 | Hussey et al. | Aug 1999 | A |
5942741 | Longacre, Jr. et al. | Aug 1999 | A |
5949052 | Longacre, Jr. et al. | Sep 1999 | A |
5949054 | Karpen et al. | Sep 1999 | A |
5949057 | Feng | Sep 1999 | A |
5965863 | Parker et al. | Oct 1999 | A |
5978610 | Aoki | Nov 1999 | A |
5979763 | Wang et al. | Nov 1999 | A |
5986705 | Shiboya et al. | Nov 1999 | A |
5992744 | Smith et al. | Nov 1999 | A |
5992750 | Chadima, Jr. et al. | Nov 1999 | A |
6000612 | Xu | Dec 1999 | A |
RE36528 | Roustaei | Jan 2000 | E |
6015088 | Parker et al. | Jan 2000 | A |
6016135 | Biss et al. | Jan 2000 | A |
6019286 | Li et al. | Feb 2000 | A |
6044231 | Soshi et al. | Mar 2000 | A |
6045047 | Pidhirny et al. | Apr 2000 | A |
6060722 | Havens et al. | May 2000 | A |
6062475 | Feng | May 2000 | A |
6064763 | Maltsev | May 2000 | A |
6095422 | Ogami | Aug 2000 | A |
6097839 | Liu | Aug 2000 | A |
6097856 | Hammon, Jr. | Aug 2000 | A |
6098887 | Figarella et al. | Aug 2000 | A |
6109526 | Ohanian et al. | Aug 2000 | A |
6119941 | Katsandres et al. | Sep 2000 | A |
6123261 | Roustaei | Sep 2000 | A |
6123263 | Feng | Sep 2000 | A |
6128414 | Liu | Oct 2000 | A |
6141046 | Roth et al. | Oct 2000 | A |
6149063 | Reynolds et al. | Nov 2000 | A |
6152371 | Schwartz et al. | Nov 2000 | A |
6158661 | Chadima, Jr. et al. | Dec 2000 | A |
6161760 | Marrs et al. | Dec 2000 | A |
6164544 | Schwartz et al. | Dec 2000 | A |
6173893 | Maltsev et al. | Jan 2001 | B1 |
6177926 | Kunert | Jan 2001 | B1 |
6179208 | Feng | Jan 2001 | B1 |
6209789 | Amundsen et al. | Apr 2001 | B1 |
D442152 | Roustaei | May 2001 | S |
6223986 | Bobba et al. | May 2001 | B1 |
6223988 | Batterman et al. | May 2001 | B1 |
6234395 | Chadima et al. | May 2001 | B1 |
6244512 | Koenck et al. | Jun 2001 | B1 |
6250551 | He et al. | Jun 2001 | B1 |
6254003 | Pettinelli et al. | Jul 2001 | B1 |
6264105 | Longacre, Jr. et al. | Jul 2001 | B1 |
6266685 | Danielson et al. | Jul 2001 | B1 |
6275388 | Hennick et al. | Aug 2001 | B1 |
6298175 | Longacre, Jr. et al. | Oct 2001 | B1 |
6298176 | Longacre, Jr. et al. | Oct 2001 | B2 |
6330974 | Ackley | Dec 2001 | B1 |
6336587 | He et al. | Jan 2002 | B1 |
6340114 | Correa et al. | Jan 2002 | B1 |
6345765 | Wiklof | Feb 2002 | B1 |
6347163 | Roustaei | Feb 2002 | B2 |
6357659 | Kelly et al. | Mar 2002 | B1 |
6367699 | Ackley | Apr 2002 | B2 |
6370003 | Hennick | Apr 2002 | B1 |
6371374 | Schwartz et al. | Apr 2002 | B1 |
6373579 | Ober et al. | Apr 2002 | B1 |
6385352 | Roustaei | May 2002 | B1 |
6390625 | Slawson et al. | May 2002 | B1 |
D458265 | Fitch | Jun 2002 | S |
6398112 | Li et al. | Jun 2002 | B1 |
D459728 | Roberts et al. | Jul 2002 | S |
6419157 | Ehrhart et al. | Jul 2002 | B1 |
6431452 | Feng | Aug 2002 | B2 |
6435411 | Massieu et al. | Aug 2002 | B1 |
6469289 | Scott-Thomas et al. | Oct 2002 | B1 |
6473126 | Higashihara et al. | Oct 2002 | B1 |
6473519 | Pidhirny et al. | Oct 2002 | B1 |
6478223 | Ackley | Nov 2002 | B1 |
D467918 | Fitch et al. | Dec 2002 | S |
6489798 | Scott-Thomas et al. | Dec 2002 | B1 |
6491223 | Longacre, Jr. et al. | Dec 2002 | B1 |
6497368 | Friend et al. | Dec 2002 | B1 |
6499664 | Knowles et al. | Dec 2002 | B2 |
6527182 | Chiba et al. | Mar 2003 | B1 |
6547139 | Havens et al. | Apr 2003 | B1 |
6550679 | Hennick et al. | Apr 2003 | B2 |
6561428 | Meier et al. | May 2003 | B2 |
6565003 | Ma et al. | May 2003 | B1 |
6575367 | Longacre et al. | Jun 2003 | B1 |
6575369 | Knowles et al. | Jun 2003 | B1 |
6578766 | Parker et al. | Jun 2003 | B1 |
6585159 | Meier et al. | Jul 2003 | B1 |
6601768 | McCall et al. | Aug 2003 | B2 |
6603508 | Hata | Aug 2003 | B1 |
6607128 | Schwartz et al. | Aug 2003 | B1 |
6616046 | Barkan et al. | Sep 2003 | B1 |
6619547 | Crowther et al. | Sep 2003 | B2 |
6637655 | Hudrick et al. | Oct 2003 | B1 |
6637658 | Barber et al. | Oct 2003 | B2 |
6655595 | Longacre, Jr. et al. | Dec 2003 | B1 |
6659350 | Schwartz et al. | Dec 2003 | B2 |
6669093 | Meyerson et al. | Dec 2003 | B1 |
6681994 | Koenck | Jan 2004 | B1 |
6685095 | Roustaei et al. | Feb 2004 | B2 |
6689998 | Bremer | Feb 2004 | B1 |
6695209 | La | Feb 2004 | B1 |
6698656 | Parker et al. | Mar 2004 | B2 |
6708883 | Krichever | Mar 2004 | B2 |
6722569 | Ehrhart et al. | Apr 2004 | B2 |
6729546 | Roustaei | May 2004 | B2 |
6736320 | Crowther et al. | May 2004 | B1 |
6752319 | Ehrhart et al. | Jun 2004 | B2 |
6758403 | Keys et al. | Jul 2004 | B1 |
6778210 | Sugahara et al. | Aug 2004 | B1 |
6809766 | Krymski et al. | Oct 2004 | B1 |
6814290 | Longacre | Nov 2004 | B2 |
6831690 | John et al. | Dec 2004 | B1 |
6832725 | Gardiner et al. | Dec 2004 | B2 |
6834807 | Ehrhart et al. | Dec 2004 | B2 |
6863217 | Hudrick et al. | Mar 2005 | B2 |
D505423 | Ahearn et al. | May 2005 | S |
6899273 | Hussey et al. | May 2005 | B2 |
6942151 | Ehrhart | Sep 2005 | B2 |
6947612 | Helms et al. | Sep 2005 | B2 |
6959865 | Walczyk et al. | Nov 2005 | B2 |
6969003 | Havens et al. | Nov 2005 | B2 |
7055747 | Havens et al. | Jun 2006 | B2 |
7059525 | Longacre, Jr. et al. | Jun 2006 | B2 |
7077317 | Longacre, Jr. et al. | Jul 2006 | B2 |
7077321 | Longacre, Jr. et al. | Jul 2006 | B2 |
7077327 | Knowles et al. | Jul 2006 | B1 |
7080786 | Longacre, Jr. et al. | Jul 2006 | B2 |
7086596 | Meier et al. | Aug 2006 | B2 |
7110028 | Merrill | Sep 2006 | B1 |
7148923 | Harper et al. | Dec 2006 | B2 |
7221394 | Enomoto | May 2007 | B2 |
7261238 | Carlson et al. | Aug 2007 | B1 |
7273298 | Laschke et al. | Sep 2007 | B2 |
7317447 | Tan et al. | Jan 2008 | B2 |
20020008968 | Hennick et al. | Jan 2002 | A1 |
20020096566 | Schwartz et al. | Jul 2002 | A1 |
20020150309 | Hepworth et al. | Oct 2002 | A1 |
20020170970 | Ehrhart | Nov 2002 | A1 |
20020171745 | Ehrhart | Nov 2002 | A1 |
20020179713 | Pettinelli et al. | Dec 2002 | A1 |
20020191830 | Pidhirny | Dec 2002 | A1 |
20030062418 | Barber et al. | Apr 2003 | A1 |
20030062419 | Ehrhart et al. | Apr 2003 | A1 |
20030085282 | Parker et al. | May 2003 | A1 |
20030197063 | Longacre, Jr. | Oct 2003 | A1 |
20030209603 | Schwartz et al. | Nov 2003 | A1 |
20030213847 | McCall et al. | Nov 2003 | A1 |
20030218069 | Meier et al. | Nov 2003 | A1 |
20040000592 | Schwartz et al. | Jan 2004 | A1 |
20040004125 | Havens et al. | Jan 2004 | A1 |
20040021783 | Mihara | Feb 2004 | A1 |
20040094627 | Parker et al. | May 2004 | A1 |
20040195328 | Barber et al. | Oct 2004 | A1 |
20060180670 | Acosta et al. | Aug 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20070138293 A1 | Jun 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10893800 | Jul 2004 | US |
Child | 11604674 | US | |
Parent | 10712787 | Nov 2003 | US |
Child | 10893800 | US |