The present invention relates in general to optical based registers, and particularly is related to an image sensor based indicia reading terminal.
Indicia reading terminals for reading decodable indicia are available in multiple varieties. For example, minimally featured indicia reading terminals devoid of a keyboard and display are common in point of sale applications. Indicia reading terminals devoid of a keyboard and display are available in the recognizable gun style form factor having a handle and trigger button (trigger) that can be actuated by an index finger. Indicia reading terminals having keyboards and displays are also available. Keyboards and display equipped indicia reading terminals are commonly used in shipping and warehouse applications, and are available in form factors incorporating a display and keyboard. In a keyboard and display equipped indicia reading terminal, a trigger button for actuating the output of decoded messages is typically provided in such locations as to enable actuation by a thumb of an operator. Indicia reading terminals in a form devoid of a keyboard and display or in a keyboard and display equipped form are commonly used in a variety of data collection applications including point of sale applications, shipping applications, warehousing applications, security check point applications, and patient care applications. Some indicia reading terminals are adapted to read bar code symbols including one or more of one dimensional (1D) bar codes, stacked 1D bar codes, and two dimensional (2D) bar codes. Other indicia reading terminals are adapted to read OCR characters while still other indicia reading terminals are equipped to read both bar code symbols and OCR characters.
There is set forth herein an indicia reading terminal having an illumination subsystem for projection of an illumination pattern, the illumination subsystem having at least one light source, the illumination subsystem being switchable between a first state and a second state, wherein the illumination subsystem in the second state projects illumination light at a projection angle that is more narrow than a projection angle of illumination light projected by the illumination subsystem when the illumination subsystem is in the first state. An indicia reading terminal can include an imaging subsystem including an image sensor array and an imaging lens for focusing an image of a target onto the image sensor array, the imaging lens being a variable imaging lens and having a first lens setting at which the lens assembly has a relatively nearer plane of optimum focus and a second lens setting at which the imaging lens has a relatively farther plane of optimum focus setting.
The features described herein can be better understood with reference to the drawings described below. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views.
Referring to
As will be described in further detail herein indicia reading terminal 1000 can include an imaging subsystem 900 including an image sensor array and an imaging lens for focusing an image of a target onto the image sensor array, the imaging lens being a variable imaging lens and having a first lens setting at which the lens assembly has a relatively nearer plane of optimum focus and a second lens setting at which the imaging lens has a relatively farther plane of optimum focus setting.
Indicia reading terminal 1000 can be operative so that during exposure periods of the image sensor array with the first lens setting active the first state of the illumination subsystem is active and further so that during exposure periods of the image sensor array with the second lens setting active the second state of the illumination subsystem is active.
In one aspect as will be described herein, indicia reading terminal 1000 can be operative to expose a first frame of image data with the first lens setting and first state active, and a second frame of image data with the second lens setting and second state active.
In another aspect as will be set forth herein, indicia reading terminal 1000 can be operative to attempt to decode a decodable indicia utilizing each of the first frame of image data and the second frame of image data.
Illumination subsystem 800 can include a number of alternative featurizations that adapt the illumination subsystem for projecting illumination light at a plurality of projection angles. In one embodiment, elements of an illumination subsystem 800 and an imaging subsystem can be incorporated into an imaging module 400. Exemplary imaging modules 400 are shown in
Referring more particularly to the imaging module of
Referring to the imaging module of
Referring to the imaging module of
An exemplary hardware platform for support of operations described herein with reference to an image sensor based indicia reading terminal is shown and described with reference to
Indicia reading terminal 1000 can include an image sensor 1032 comprising a multiple pixel image sensor array 1033 having pixels arranged in rows and columns of pixels, associated column circuitry 1034 and row circuitry 1035. Associated with the image sensor 1032 can be amplifier circuitry 1036 (amplifier), and an analog to digital converter 1037 which converts image information in the form of analog signals read out of image sensor array 1033 into image information in the form of digital signals. Image sensor 1032 can also have an associated timing and control circuit 1038 for use in controlling e.g., the exposure period of image sensor 1032, gain applied to the amplifier 1036. The noted circuit components 1032, 1036, 1037, and 1038 can be packaged into a common image sensor integrated circuit 1040. Image sensor integrated circuit 1040 can incorporate fewer than the noted number of components. In one example, image sensor integrated circuit 1040 can be provided e.g., by an MT9V022 (752×480 pixel array) or an MT9V023 (752×480 pixel array) image sensor integrated circuit available from Micron Technology, Inc. In one example, image sensor integrated circuit 1040 can incorporate a Bayer pattern filter, so that defined at the image sensor array are red pixels at red pixel positions, green pixels at green pixel positions, and blue pixels at blue pixel positions. Frames that are provided utilizing such an image sensor array incorporating a Bayer pattern can include red pixel values at red pixel positions, green pixel values at green pixel positions, and blue pixel values at blue pixel positions. In an embodiment incorporating a Bayer pattern image sensor array, CPU 1060 prior to subjecting a frame to further processing can interpolate pixel values at frame pixel positions intermediate of green pixel positions utilizing green pixel values for development of a monochrome frame of image data. Alternatively, CPU 1060 prior to subjecting a frame for further processing can interpolate pixel values intermediate of red pixel positions utilizing red pixel values for development of a monochrome frame of image data. CPU 1060 can alternatively prior to subjecting a frame for further processing can interpolate pixel values intermediate of blue pixel positions utilizing blue pixel values.
In the course of operation of terminal 1000, image signals can be read out of image sensor 1032, converted, and stored into a system memory such as RAM 1080. A memory 1085 of terminal 1000 can include RAM 1080, a nonvolatile memory such as EPROM 1082 and a storage memory device 1084 such as may be provided by a flash memory or a hard drive memory. In one embodiment, terminal 1000 can include CPU 1060 which can be adapted to read out image data stored in memory 1080 and subject such image data to various image processing algorithms. Terminal 1000 can include a direct memory access unit (DMA) 1070 for routing image information read out from image sensor 1032 that has been subject to conversion to RAM 1080. In another embodiment, terminal 1000 can employ a system bus providing for bus arbitration mechanism (e.g., a PCI bus) thus eliminating the need for a central DMA controller. A skilled artisan would appreciate that other embodiments of the system bus architecture and/or direct memory access components providing for efficient data transfer between the image sensor 1032 and RAM 1080 are within the scope and the spirit of the invention.
Referring to further aspects of terminal 1000, lens assembly 200 can be adapted for focusing an image of a decodable indicia 15 located within a field of view 1240 on a substrate, T, onto image sensor array 1033. A size in paper space of a field of view 1240 of terminal 1000 can be varied in a number of alternative ways. A size in target space of a field of view 1240 can be varied e.g. by changing a terminal to target distances, changing an imaging lens setting, changing a number of pixels of image sensor array 1033 that are subject to read out. Imaging light rays can be transmitted about imaging axis 25. Lens assembly 200 can be adapted to be capable of multiple focal lengths and multiple planes of optical focus (best focus distances).
Terminal 1000 can include an illumination subsystem 800 for illumination of target, T, and projection of an illumination pattern 1260. Illumination pattern 1260, in the embodiment shown can be projected to be proximate to but larger than an area defined by field of view 1240, but can also be projected in an area smaller than an area defined by a field of view 1240. Illumination subsystem 800 can include a light source assembly 500 comprising one or more light source banks, each comprising one or more light sources, e.g. light sources 502, 504 as shown in the embodiment of
Various embodiments for lens assemblies for use as lens assembly 200 or lens assembly 300 are now described. In the embodiment of
Referring to
Terminal 1000 can also include a number of peripheral devices including trigger 1220 which may be used to make active a trigger signal for activating frame readout and/or certain decoding processes. Terminal 1000 can be adapted so that activation of trigger 1220 activates a trigger signal and initiates a decode attempt. Specifically, terminal 1000 can be operative so that in response to activation of a trigger signal, a succession of frames can be read out and captured by way of read out of image information from image sensor array 1033 (typically in the form of analog signals) and then storage of the image information after conversion into memory 1080 (which can buffer one or more of the succession of frames at a given time). CPU 1060 can be operative to subject one or more of the succession of frames to a decode attempt.
For attempting to decode a bar code symbol, e.g., a one dimensional bar code symbol, CPU 1060 can process image data of a frame corresponding to a line of pixel positions (e.g., a row, a column, or a diagonal set of pixel positions) to determine a spatial pattern of dark and light cells and can convert each light and dark cell pattern determined into a character or character string via table lookup. Where a decodable indicia representation is a 2D bar code symbology, a decode attempt can comprise the steps of locating a finder pattern using a feature detection algorithm, locating matrix lines intersecting the finder pattern according to a predetermined relationship with the finder pattern, determining a pattern of dark and light cells along the matrix lines, and converting each light pattern into a character or character string via table lookup.
Terminal 1000 can include various interface circuits for coupling various of the peripheral devices to system address/data bus (system bus) 1500, for communication with CPU 1060 also coupled to system bus 1500. Terminal 1000 can include interface circuit 1028 for coupling image sensor timing and control circuit 1038 to system bus 1500, interface circuit 1102 for coupling electrical power input unit 1202 to system bus 1500, interface circuit 1106 for coupling illumination light source bank control circuit 1206 to system bus 1500, and interface circuit 1120 for coupling trigger 1220 to system bus 1500. Terminal 1000 can also include a display 1222 coupled to system bus 1500 and in communication with CPU 1060, via interface 1122, as well as pointer mechanism 1224 in communication with CPU 1060 via interface 1124 connected to system bus 1500. Terminal 1000 can also include range detector unit 1208 coupled to system bus 1500 via interface 1108.
A succession of frames of image data that can be captured and subject to the described processing can be full frames (including pixel values corresponding to each pixel of image sensor array 1033 or a maximum number of pixels read out from array 1033 during operation of terminal 1000). A succession of frames of image data that can be captured and subject to the described processing can also be “windowed frames” comprising pixel values corresponding to less than a full frame of pixels of image sensor array 1033. A succession of frames of image data that can be captured and subject to the described processing can also comprise a combination of full frames and windowed frames. A full frame can be captured by selectively addressing for read out pixels of image sensor 1032 having image sensor array 1033 corresponding to the full frame. A windowed frame can be captured by selectively addressing for read out pixels of image sensor 1032 having image sensor array 1033 corresponding to the windowed frame. In one embodiment, a number of pixels subject to addressing and read out determine a picture size of a frame. Accordingly, a full frame can be regarded as having a first relatively larger picture size and a windowed frame can be regarded as having a relatively smaller picture size relative to a picture size of a full frame. A picture size of a windowed frame can vary depending on the number of pixels subject to addressing and readout for capture of a windowed frame.
Terminal 1000 can capture frames of image data at a rate known as a frame rate. A typical frame rate is 60 frames per second (FPS) which translates to a frame time (frame period) of 16.6 ms. Another typical frame rate is 30 frames per second (FPS) which translates to a frame time (frame period) of 33.3 ms per frame. A frame rate of terminal 1000 can be increased (and frame time decreased) by decreasing of a frame picture size.
A physical form view of terminal 1000 in one embodiment is shown in
Referring to terminal 1000, terminal 1000 can be operative to change a lens setting of lens assembly 200 between at least a first plane of optimum focus setting (best focus distance setting) and a second plane of optimum focus setting. Indicia reading terminal 1000 can be operative to change a lens setting of the lens assembly 200 between at least first and second different planes of optimum focus settings, and can further be operative to expose a first frame of image data with the lens assembly 200 at the first plane of optimum focus setting and expose a second frame of image data with the lens assembly at the second plane of optimum focus setting, and the terminal can further be configured so that the terminal is operative to subject each of the first and second frames of image data to a decode attempt for decoding of a decodable indicia. The second frame can be a successive frame in relation to the first frame or a non-successive subsequent frame in relation to the first frame. Also, the first and second frames of image data can be exposed, captured, and processed during a single trigger signal activation period (decoding sessions), or alternatively, separate trigger signal activation periods (decoding sessions). As indicated a read attempt can be commenced by activation of a trigger signal resulting from depression of a trigger and can be ceased by deactivation of a trigger signal resulting e.g., from a release of a trigger, an expiration of a timeout period, a successful decode.
Referring to the timing diagram of
Referring to processing periods 5520, 5522, 5524, the noted processing periods can represent processing periods during which time CPU 1060 of terminal 1000 processes stored (e.g., buffered) frames representing a substrate that can bear decodable indicia. Such processing can include processing for attempting to decode a decodable indicia as described herein.
With further reference to the timing diagram of
Referring further to the timing diagram of
Referring to signal 5508, signal 5508 can be established at an energy level corresponding to the selected lens setting. Referring to exposure periods 5320, 5322, 5324, a lens setting of lens assembly 200 can be changed between exposure period 5320 and exposure period 5322 and again between exposure period 5322 and exposure period 5324. In the example of the timing diagram of
Referring to
With Configuration “Open Loop” active, illumination and imaging lens settings associated with a succession of frames can vary on an open loop basis without regard to a sensed condition. In the described example described with reference to Table A, an imaging lens setting and associated illumination state alternate between successive frames. The period of change in the example of Table A is P=1, one frame with lens setting nearer, illumination state 1, one frame with lens setting farther, illumination state 2, and so on. The period could also be set to another value, e.g., P=2, P=M, and can vary during a trigger signal activation period (decoding session.) Operation in accordance with Configuration “Open Loop” is depicted in the timing diagram of
With Configuration “Closed Loop” active, illumination, and imaging lens settings associated with a succession of frames can vary on a closed loop basis, i.e., can change responsively to a sensed condition. A sensed condition can be e.g., an expiration of a timeout, e.g., terminal 1000 can be operative so that an illumination subsystem state and an associated lens setting can change responsively to a first timeout conditionally on the condition that the terminal does not decode a decodable indicia prior to expiration of the first timeout, and a trigger signal can be deactivated responsively to a second timeout. A sensed condition can also be a sensed terminal to target distance. As indicated in the block diagram of
With Configuration “Fixed (first)” active terminal 1000 can establish a lens setting and an illumination state of illumination subsystem 800 at a first setting and state respectively for each frame exposed during a trigger signal activation period.
With Configuration “Fixed (second)” active terminal 1000 can establish a lens setting and an illumination state of illumination subsystem 800 at a second setting and state respectively for each frame exposed during a trigger signal activation period.
Referring to Table A, the frames N−3, N−2, N−1 . . . depicted in Table A are a succession of frames exposed, read out and subject to processing during a time that trigger signal 5504 is active. The processing of each frame depicted in table A can include a decode attempt as described herein. As explained a trigger signal 5504 can be made active by depression of trigger 1220 and can be de-activated by release of trigger 1220 or a successful decode or expiration of a timeout. For the succession of frames in the Table A under each configuration there is described a succession of frames where a certain lens setting during an exposure period is associated to a certain illumination state. Frames exposed during a trigger signal activation period can have the characteristics as depicted in Table A, namely with frames having nearer focus lens setting associated to a first illumination state and frames having farther focus lens settings associated to a second illumination state. Nevertheless it is understood that additional frames exposed during a trigger signal activation period, (e.g., before frame N−3, after frame N+5) can have characteristics other than those depicted in table A.
It has been described that a first frame and a second frame can be subject to a decode attempt where the first frame is exposed with the lens setting at a first lens setting and illumination subsystem at a first illumination state and the first frame is exposed with the lens setting at a first lens setting and illumination subsystem at a first illumination state. With reference to Configurations A and B it is seen that the first and second frames can be exposed and captured in a single trigger signal activation period. With reference to the Configurations B and C it is sent that the first and second frames can be exposed, captured, and processed in different trigger signal activation periods. A trigger signal can be activated with the Configuration C active for exposure capture and processing of the first frame and then deactivated. Terminal 1000 can be switched to Configuration D and then trigger signal 5504 activated again for exposure capture and processing of a second frame.
It has been described that an exposed frame of image data can have an associated imaging lens assembly lens setting that is associated to a certain illumination state. In another aspect there can be associated to a certain imaging lens assembly lens setting and illumination state a certain picture size. In one embodiment, frames exposed with second (farther lens setting) active and an associated second illumination state active can have an associated second picture size that is smaller than a first picture size associated with frames exposed with a first imaging lens assembly lens setting and first illumination state active.
The second picture size can be yielded by readout of a windowed frame of image data read out by selective addressing and readout of center pixel pixels of image sensor array 1033, i.e., 1 to 100 center rows of pixels, a rectangular pattern, e.g., a 300×50 pixel rectangle pattern of contiguous pixels including a center pixel of image sensor array 1033.
Regarding examples provided herein, it will be understood that illumination subsystem 800 can be provided to have one or more additional illumination states, (e.g., a third state, a fourth state, etc.) each additional illumination state corresponding to a projection angle of αi where α1>αi>α2. Like the first and second illumination states, each additional illumination state can be associated to a particular lens setting of lens assembly 200, the particular lens setting establishing a plane of optimum focus intermediate of the previously described “nearer” and “farther” planes of optimum focus.
A small sample of systems methods and apparatus that are described herein is as follows:
A1. An indicia reading terminal comprising:
an illumination subsystem for projection of an illumination pattern, the illumination subsystem having at least one light source, the illumination subsystem being switchable between a first state and a second state, wherein the illumination subsystem in the second state projects illumination light at a projection angle that is more narrow than a projection angle of illumination light projected by the illumination subsystem when the illumination subsystem is in the first state;
an imaging subsystem including an image sensor array and an imaging lens assembly for focusing an image of a target onto the image sensor array, the imaging lens assembly being a variable imaging lens assembly and having a first lens setting at which the imaging lens assembly has a relatively nearer plane of optimum focus and a second lens setting at which the imaging lens assembly has a relatively farther plane of optimum focus;
a hand held housing incorporating the image sensor array;
wherein the indicia reading terminal is operative so that during exposure periods of the image sensor array with the first lens setting active the first state of the illumination subsystem is active and further so that during exposure periods of the image sensor array with the second lens setting active the second state of the illumination subsystem is active;
wherein the indicia reading terminal is operative to expose a first frame of image data with the first lens setting and first state active, and a second frame of image data with the second lens setting and second state active;
wherein the indicia reading terminal is operative to attempt to decode a decodable indicia utilizing each of the first frame of image data and the second frame of image data.
A2. The indicia reading terminal of A1, wherein the illumination subsystem includes a first light source bank and a second light source bank, the first light source bank being energized and the second light source bank being de-energized when the illumination subsystem is in the first operating state, the first light source bank being de-energized and the second light source bank being energized when said illumination subsystem is in the second state, wherein a light source of a second light source bank includes a narrower projection angle than a light source of the first light source bank.
A3. The indicia reading terminal of A2, wherein the first light source bank includes a single light source.
A4. The indicia reading terminal of A1, wherein the illumination subsystem includes a variable illumination lens having a first illumination lens settings for activation of the first state and a second illumination lens setting for activation of the second state.
A5. The indicia reading terminal of A1, wherein the indicia reading terminal is operative so that the first frame and the second frame are successive frames captured during a single trigger signal activation period.
A6. The indicia reading terminal of A1, wherein the terminal is operative so that the second frame is exposed subsequent to the first frame.
A7. The indicia reading terminal of A1, wherein the indicia reading terminal is operative so that the first frame and the second frame are non-successive frames captured during a single trigger signal activation period.
A8. The indicia reading terminal of A1, wherein the indicia reading terminal is operative so that the first frame and the second frame are frames captured during different trigger signal activation periods.
A9. The indicia reading terminal of A1, wherein the indicia reading terminal is further operative so that there is associated to the second frame of image data a smaller picture size than a picture size of the first frame of image data.
A10. The terminal of A1, wherein the terminal includes a range detector unit for use in detecting a terminal to target distance, and wherein the indicia reading terminal is operative to switch the illumination subsystem between the first state and the second state responsively to an output of the range detector unit.
A11. The terminal of A10, wherein the indicia reading terminal is operative to switch the illumination subsystem from the first state to the second state responsively to an output of the range detector.
A12. The terminal of A1, wherein the terminal is operative so that the first frame and the second frame are captured during a single trigger activation period, and wherein the terminal is operative so that the illumination subsystem switches between the first state and the second state responsively to a timeout conditionally on the condition that the terminal does not decode a decodable indicia prior to expiration of the timeout.
A13. The terminal of A1, wherein the terminal is operative so that the first frame and the second frame are captured during a single trigger signal activation period, and wherein the terminal is further operative so that the terminal switches the illumination subsystem between the first state and the second state on an open loop basis during the single trigger signal activation period.
A14. The terminal of A1, wherein the illumination subsystem has a third state in which illumination light projected by the illumination subsystem is projected at an angle that is narrower than an angle of projected illumination in the first state and wider than an angle of projected illumination in the second state.
While the present invention has been described with reference to a number of specific embodiments, it will be understood that the true spirit and scope of the invention should be determined only with respect to claims that can be supported by the present specification. Further, while in numerous cases herein wherein systems and apparatuses and methods are described as having a certain number of elements it will be understood that such systems, apparatuses and methods can be practiced with fewer than or greater than the mentioned certain number of elements. Also, while a number of particular embodiments have been described, it will be understood that features and aspects that have been described with reference to each particular embodiment can be used with each remaining particularly described embodiment.