The field of this disclosure relates to imaging and collection devices and in particular to methods and devices for illumination, collection and imaging for optical code reading and other data and image capture devices.
Image capture and other data reading devices are used to read optical codes, acquire data, and capture a variety of images. One common data acquisition device is an optical code reader. Optical codes typically comprise a pattern of dark elements and light spaces. There are various types of optical codes, including 1-D codes (such as UPC and EAN/JAN barcodes) and 2-D codes (such as PDF-417 and Maxicode). For convenience, some embodiments are described herein with reference to capture of 1-D barcodes. However, the embodiments may also be useful for other optical codes and symbols as well as other images such as fingerprint capture, and nothing herein should be construed as limiting this disclosure to optical codes or particular types of codes.
One type of data reader is an imaging reader that employs an imaging device or sensor array, such as a CCD (charge coupled device) or CMOS (complementary metal oxide semiconductor) device. Imaging readers can be configured to read both 1-D and 2-D optical codes, as well as other types of optical codes or symbols and images of other items. When an imaging reader is used to read an optical code, an image of the optical code or portion thereof is focused onto a detector array. Some imaging readers are capable of using ambient light illumination, while other imaging readers employ a light source to illuminate the item being scanned.
It is desirable for optical code scanners to have a wide dynamic range of usable illumination conditions over which they may operate. Typically, imaging optical code scanners are required to work in very low light conditions (such as in a dimly lit warehouse with ambient light intensity on the order of tens of lux) as well as in high light conditions (such as in full sunlight with light intensity over 100,000 lux). A lux is a unit of luminous incidence equal to one lumen per square meter. This large variation in ambient light conditions creates a required dynamic range of 10,000× or more. One possible method of compensating for the large variation of ambient light conditions is to equip the scanner with dynamic apertures or electronically adjustable attenuators. The present inventors have recognized that such compensation mechanisms add cost and complexity to the system and thus it would be desirable to provide a system that is entirely solid state, with no moving parts. The design challenge is to create a simple device with a broad dynamic range, which usually means electronically varying the integration time of the sensor as the primary means of exposure control.
Methods and devices are disclosed for improving reading of optical codes or other items being imaged, particularly where certain light conditions (e.g. bright sunlight) tend to saturate the sensor array or portions thereof.
In a preferred configuration, the data reader comprises an imaging reader, employing a sensor such as a CCD, that acquires an image of an item to be read. A certain type of sensor has been found to exhibit different outputs depending upon the light intensity level: (1) standard output whereby the sensor outputs a signal corresponding to the image collected and (2) inverted output whereby the sensor outputs an inverted signal when the light intensity highly saturates the sensor. Taking advantage of this inverted output, systems and methods are then employed by the data reader to convert or otherwise re-invert this inverted signal in order to read an optical code (for example) that otherwise would have been above the upper exposure limit of the sensor/reader.
Additional aspects and advantages will be apparent from the following detailed description of preferred embodiments, which proceeds with reference to the accompanying drawings.
Throughout the specification, reference to “one embodiment,” or “an embodiment,” or “some embodiments” means that a particular described feature, structure, or characteristic is included in at least one embodiment. Thus appearances of the phrases “in one embodiment,” “in an embodiment,” or “in some embodiments” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the described features, structures, characteristics, and methods may be combined in any suitable manner in one or more embodiments. In view of the disclosure herein, those skilled in the art will recognize that the various embodiments can be practiced without one or more of the specific details or with other methods, components, materials, or the like. In other instances, well-known structures, materials, or operations are not shown or not described in detail to avoid obscuring aspects of the embodiments.
Preferred embodiments will now be described with reference to the drawings. To facilitate description, any reference numeral representing an element in one figure will represent the same element in any other figure.
Methods and devices according to the embodiments described are particularly useful for presentation scanners utilizing imaging technology. For conciseness of description, the detector arrays are described as CCD arrays, but other suitable detectors may be implemented such as CMOS.
The present inventors have found that certain sensors exhibit two output modes depending upon the light intensity level namely a first standard mode whereby the sensor outputs a signal corresponding to the image collected and a second inverted mode whereby the sensor outputs an inverted signal when the light intensity highly saturates the sensor. One such sensor is the Model ILX554B CCD linear sensor manufactured by Sony Corporation. The ILX554B model is a 2048 pixel CCD linear sensor, details of which are available from the product data sheet hereby incorporated by reference. According to the product data sheet (at page 3), the ILX554B sensor becomes saturated when exposure reaches about 0.004 lux·sec. This sensor outputs an inverted signal when exposure reaches a highly saturated level on the order of several times (or more) the saturation level.
The CCD includes the capability of changing exposure. The system includes a control system which controls CCD operation, including light exposure. As the intensity of the ambient light level increases, the system driving the CCD has the capability of compensating for the increasing light by adjusting exposure. If the sensor has an output level that indicates the sensor is exposed to too much light, the control system attempts to electronically reduce exposure time. However in high light conditions such as in direct sunlight, the sensor may reach its minimum exposure time and yet still be saturated. When the sensor is saturated, the output signal is such that the difference between the respective signals corresponding to the bar 12 and space 14 of the optical code cannot be readily distinguished. At a certain very high saturation level, the output signal 30 of CCD is essentially inverted, namely the output level 34 corresponds to the light space 14 and the output level 32 corresponds to the dark bar 12. However, unlike the lower intensity saturation condition where the signals corresponding to the bar and space cannot be distinguished, the high saturation level output signal 30 includes an output level 34 (corresponding to the light space 14) that is distinguishable from the output level 32 (corresponding to the dark bar 12).
The sensor's output or the data representing the output is then re-inverted at some point in the signal processing/decoding chain and the resulting optical code data may then be decoded. In one method, the system automatically determines when the light flux is sufficiently high to result in an inverted signal, and when this condition occurs, the system inverts the data during signal processing (which may be described as “re-inverted”) which then produces a decodable signal. The data may be re-inverted by the A/D converter or at any other suitable place in the signal processing/decoding chain
In one embodiment, the scanner has two modes of operation, normal (or standard) and inverse (or inverted) video modes. When the scanner is first triggered, it starts in normal video mode and begins trying to set an exposure level that places the video signal within a desired optimum range. During this normal mode, the video signal is treated in the signal processing chain as a non-inverted signal, and all calculations in the processing and decoding algorithms use this assumption. If, after some fixed time or number of captured frames of data, a successful decode has not occurred and it is determined that the sensor (or sensors) is (are) in a high illumination condition (i.e. highly saturated), the system changes to inverted mode, and the data is deliberately re-inverted by the signal processing. The data may be re-inverted by the A/D converter or at any other suitable place in the signal processing/decoding chain. At the same time, the system starts to adjust the exposure longer and longer in order to ensure that the sensor is placed in the highly saturated state. With each lengthening of the exposure, decoding is attempted. If indeed there is sufficient illumination to cause the sensor to output inverted video at one of the exposure selections, then upon re-inversion by the signal processing system, this data should produce a successfully decoded label. If decoding is not successful, the process of continually lengthening the exposure while inverting the data continues until a limit is reached, such as an elapsed time or number of frames since being triggered, or a maximum exposure. At this point, the scanner may revert to normal video mode and the process starts from the beginning as described above. This system and method thus may provide a larger dynamic range.
Though this reader may operate solely via ambient light, the reader is preferably equipped with illumination sources that are activated during scanning or during other suitable conditions.
At Step 102, activating scanning, starting the scanning limit timer, and setting inverted mode to inactive. Preferably, at the start of scanning (e.g. on each trigger pull of the scanner) or after a successful scan, the mode is set to non-inverted, the non-inverted mode being the more standard operating mode.
At Step 104, scanning and attempting to decode.
At Step 105, if good decode is accomplished, acknowledging good read (typically by emitting an audible “beep” tone) and transmitting the data.
At Step 106, determining (1) if scanning has been activated for a time period greater than scanning time limit (e.g. if the scanning limit timer has timed out) or (2) if the data has been decoded, and if yes to either (1) or (2) proceed to Step 108 and deactivate/stop scanning and if no, proceed to Step 110.
At Step 110, determining if inverted mode is activated, if yes, proceed to Step 122, if no proceed to Step 112.
At Step 112, checking sensor exposure and at Step 114 determining if sensor exposure is correct. If exposure is correct, return to Step 104. If exposure is too dark, proceed to Step 126. If exposure is too bright, proceed to Step 116. One method of determining whether exposure is correct is to compare a measured value of the output signal level to a preferred or target range. If the signal level is above the target range, the exposure is too bright. If the signal level is below the target range, the exposure is too dark.
Where the exposure is too dark (meaning there is insufficient light illuminating the optical code), at Step 126 determining whether exposure time is at maximum limit. If yes, returning to Step 104, if no proceeding to Step 128.
At Step 128, setting a longer exposure time. The longer exposure time may be calculated based upon desired sensor output relative to current signal level. Alternately, the exposure time may be increased by a set increment or some other suitable methodology. Once the new (longer) exposure time is set, proceeding to Step 104 to attempt another scan.
If it is determined at Step 114 that the exposure is too light (meaning there is too much light illuminating the optical code), at Step 116 determining if exposure time is at minimum limit. If yes, proceeding to Step 120, if no proceeding to Step 118.
At Step 118 setting a shorter exposure time. The shorter exposure time may be calculated based upon desired sensor output relative to current signal level. Alternately, the exposure time may be decreased by a set increment or some other suitable methodology. Once the new (shorter) exposure time is set, proceeding to Step 104.
If at Step 116 it is determined that the exposure time is already at the minimum time, the exposure level is too bright and there is no further exposure reduction that can be made, the method infers that processing may be successful in the inverted mode. Thus proceeding to Step 120, inverted mode is activated (inverted mode set to active) whereby sensor data is inverted for processing by the decoding algorithms. The method may proceed from Step 120 to Step 122 or alternately, the method may skip Step 122 and proceed either directly to Step 124 or to Step 104.
At Step 122, determining whether exposure time (during inverted mode) is at maximum limit. If yes proceeding to Step 123; if no proceeding to Step 124. The first time through (coming from Step 120), the exposure time is at the minimum limit so the process will determine at Step 122 that the proceed to
At Step 124, lengthening (or increasing) exposure time by a given increment and returning to Step 104. The purpose of Step 124 is to incrementally increase exposure and if the exposure was too bright at the minimum exposure setting (in standard, non-inverted mode), the exposure setting is incrementally adjusted upward toward the maximum exposure setting, thereby enhancing conditions for causing the sensor to output inverted video (i. e., in the high saturation level). A preferred increment of exposure lengthening may be on the order of 1 mS. The increment may be larger or smaller. A smaller increment, for example, on the order of 0.5 mS. This preferred increment is fairly small—such a small increment is preferred because it would appear that the inverted-mode operates most successfully in a fairly narrow exposure range.
Though an incremental increase of exposure is a preferred method, other methods of adjusting the exposure may be implemented such as increasing by a calculated amount based on some factor. Alternately, the method may immediately attempt maximum exposure and if not successful, attempt a series of lower exposures.
At Step 123, setting inverted mode to inactive and then proceeding to Step 104. Upon reaching Step 123, the method has cycled through the process having upped the exposure to the maximum. Since decode has been unsuccessful in the inverted mode, the inverted mode is set to inactive and the method then scan attempts decode in standard mode. Step 123 may be omitted as scanning time out at Step 106 would be reached and the system may attempt re-scan at Step 102.
Returning to Step 104 (in the inverted mode from Step 122 or 124), since reading (decoding) was unsuccessful in the standard, non-inverted mode, decoding is again attempted with inverted data. If the CCD achieves the highly saturated state and outputs inverted video, the decoding at Step 106 (with inverted data from Step 120) may prove successful. When operating in the inverted mode, the system then re-inverts the data during processing (for example at the A/D converter or elsewhere in the signal processing chain) in order to produce a decodable signal.
To further explain inverted mode processing, it may be useful to describe typical/standard processing. In optical code reader processing, there is typically a fixed relationship between the voltage level of a signal representing the light and dark areas of a bar code, and the bar code's actual light and dark physical features. For example, at the sensor output, this relationship may be that a more positive voltage represents a brighter area, or, depending upon the sensor, a brighter area may be represented by a lower voltage level. In either case, a typical system will be designed to process the data based upon the known relationship between the sensor's output and the bars and spaces of a barcode, so as to correctly process the encoded data. The same will be true through the digital processing chain of a typical reader. When the analog sensor voltage is converted into a digital or logic level, there will be some fixed relationship maintained between the particular logic level and the actual bar and space data. The decoding algorithms in the reader make use of the fixed, known relationship between the incoming digital data and the original bars and spaces of the encoded information.
In a preferred system/method herein, the relationship between the sensor data levels and the bars and spaces this data is assumed to represent, may take one of two states, depending upon whether or not the sensor is in its highly illuminated, inverted condition. When the sensor is in its normal, non-highly illuminated condition, the voltage levels and their relationship to the bars and spaces of a barcode will have one state, for example, a high voltage level will be treated through the system as indicating a white space in the bar code, and a low voltage level will indicate a black bar. When the system determines that the sensor is in its highly illuminated condition, the system's state will switch to the inverted mode and the relationship between the voltage levels and the barcode features will be inverted by the system. The reversed relationship between voltage and bar code features within the system in this inverted mode is used to compensate for the inverted data issuing from the sensor.
There are several methods by which the system may operate in an inverted processing mode, including: (1) analog hardware such as a single transistor stage, whereby the actual voltage signal is inverted; (2) digital hardware or logic signal inverter; (3) a digital inverter circuit that outputs a voltage representing the opposite logic-level as its input, the inverter circuit serving as the basic logic gate to swap between those two voltage levels; and (4) software. In the software method, the signal may be inverted in software at any suitable stage including at the pre-processing stage or at the decode stage.
In a preferred configuration, the data reader may be provided with multiple sensors. The sensors may be independently controlled or controlled by a common controller. In one preferred method, once the method of controlling one of the sensors is switched to inverted mode (pursuant to Step 120 above), the method of controlling the other sensor is also switched to inverted mode.
In another control scheme, dual sensors are separately controlled and portions combined. Certain methods for processing such a dual sensor system are disclosed in Olmstead et al. U.S. Published Application No. US 2006-0163355 hereby incorporated by reference.
In yet another control scheme, either a second control sensor, or a portion of the primary sensor, may be used to provide informational feedback to the system for exposure control. The control sensor may be designed, such as with a filter or screen, that reduces the overall exposure thereby allowing the control sensor to sense the exposure level at high light levels, i.e., those light levels that normally would create highly saturated or oversaturated levels in sensor 5. The system could then use the output from the control sensor to determine whether the output from the sensor 5 is inverted such as by comparing the output of the control sensor to the output of the sensor 5. If the output from the control sensor indicates a high light level (e.g. a level that would be expected to be highly saturated to the sensor 5) and the output from the sensor 5 otherwise appears to be in the normal range, then it can be inferred with a reasonably high probability that the sensor 5 output is inverted and thus signaling this alternate system/method to switch to inverted mode.
Thus systems and methods for data reading and image capture have been shown and described. It is nevertheless intended that modifications to the disclosed systems and methods may be made by those skilled in the art without departing from the underlying principles of set forth herein.
This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 60/744,261 filed Apr. 4, 2006 hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4499595 | Masaitis et al. | Feb 1985 | A |
4538060 | Sakai et al. | Aug 1985 | A |
4631588 | Barnes et al. | Dec 1986 | A |
5008696 | Miida et al. | Apr 1991 | A |
5770847 | Olmstead | Jun 1998 | A |
5814803 | Olmstead et al. | Sep 1998 | A |
6155488 | Olmstead et al. | Dec 2000 | A |
6311895 | Olmstead et al. | Nov 2001 | B1 |
6505778 | Reddersen et al. | Jan 2003 | B1 |
6520415 | McMaster | Feb 2003 | B1 |
6708883 | Krichever | Mar 2004 | B2 |
20060016893 | Barkan et al. | Jan 2006 | A1 |
20060163355 | Olmstead et al. | Jul 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20070241192 A1 | Oct 2007 | US |
Number | Date | Country | |
---|---|---|---|
60744261 | Apr 2006 | US |