EP-4738187-A1 - MOTION VECTORS ANALYSIS FOR IMPROVING DECODING PERFORMANCE ON FAST-MOVING TARGETS BY CODE READERS
Abstract
A code reader may be configured to use motion vectors to reduce blur of images when relative motion between the code reader and an object on which a code (e.g., machine-readable indicia, such as a barcode) is positioned. The motion vectors may used to calculate a frame quality factor (Q), which may enable the code reader to control components, such as an image sensor and/or illuminator. Using the quality factor, a decoder may be adjusted by replacing an image frame with a lower quality factor than one with a higher quality factor, which is more difficult to decode. The motion vectors may also enable the code reader to automatically determine that the code reader is being used to image a code so as to automatically transition from an idle phase to a decode phase.
Inventors
- Perugini, Luca
- SPOLZINO, Simone
- CANINI, FEDERICO
Assignees
- Datalogic IP Tech S.r.l.
Dates
- Publication Date
- 20260506
- Application Date
- 20250904
Claims (15)
- A method of automatically configuring a code reader, said method comprising. first imaging an object on which a machine-readable indicia is positioned to form a first image frame of the object; second imaging the object on which the machine-readable indicia is positioned to form a second image frame of the object; determining at least one motion vector of the object relative to the code reader between the first and second image frames; calculating a frame quality factor (Q) of the second image frame based on the at least one motion vector; automatically altering configuration of at least one of a decoder, image sensor, and illuminator based on the calculated frame quality factor (Q); and decoding the machine-readable indicia by the decoder.
- The method according to claim 1, wherein automatically altering configuration of the sensor includes calculating gain (G) and exposure time (Texp) to reach a brightness level of the machine-readable indicia, wherein preferably calculating gain (G) and exposure time (Texp) includes executing automatic exposure control (AEC) and automatic gain control (AGC) functions.
- The method according to any of the previous claims, wherein automatically altering configuration of the illuminator includes automatically selecting an illumination configuration based on the calculated frame quality factor (Q), the illumination configuration including (i) a first output duration of the illuminator if the calculated frame quality factor (Q) is at a first level and (ii) a second output duration of the illuminator that is longer than the first output duration if the calculated frame quality factor (Q) is at a second level below the first level.
- The method according to any of the previous claims, wherein automatically altering configuration of the decoder includes: storing the frame quality factor (Q) for each machine-readable indicia being decoded by the decoder; determining whether the frame quality factor (Q) of the second image frame is lower than any other frame quality factor of any other image frame being decoded by the decoder, the decoder being formed of multiple decoders configured to decode machine-readable indicia captured in respective image frames; and in response to determining that the frame quality factor is lower than at least one other frame quality factor, replacing an image frame currently being decoded by the decoder with the highest frame quality factor (Q) with the second image frame.
- The method according to any of the previous claims, further comprising: determining whether the calculated frame quality factor (Q) crosses a frame factor threshold level; in response to determining that the frame quality factor (Q) crosses the frame quality factor threshold level, stopping the decoder, otherwise, if the frame quality factor (Q) is determined to not have crossed the frame quality factor threshold level, continuing decoding the machine-readable indicia by the decoder.
- A code reader, comprising: an image sensor configured to capture images of a scene; a non-transitory memory configured to store captured images; an illuminator configured to illuminate the scene; at least one processor in communication with the image sensor, non-transitory memory, and illuminator, and configured to: first image an object on which a machine-readable indicia is positioned to form a first image frame of the object; second image the object on which the machine-readable indicia is positioned to form a second image frame of the object; determine at least one motion vector of the object relative to the code reader between the first and second image frames; calculate a frame quality factor (Q) of the second image frame based on the at least one motion vector; automatically alter configuration of at least one of a decoder being executed by the at least one processor, image sensor, and the illuminator based on the calculated frame quality factor (Q); and decode the machine-readable indicia by the decoder.
- The code reader according to claim 6, wherein the at least one processor, in automatically altering configuration of the sensor, is configured to calculate gain (G) and exposure time (Texp) to reach a brightness level of the machine-readable indicia.
- The code reader according to any of claims 6-7, wherein the at least one processor, in automatically altering configuration of the illuminator, is configured to automatically modulate an illumination intensity based on the calculated frame quality factor (Q).
- The code reader according to any of claims 6-8, wherein the at least one processor, in automatically altering configuration of the decoder, is configured to: store the frame quality factor (Q) for each machine-readable indicia being decoded by the decoder; determine whether the frame quality factor (Q) of the second image frame is lower than any other frame quality factor of any other image frame being decoded by the decoder, the decoder being formed of multiple decoders configured to decode machine-readable indicia captured in respective image frames; in response to determining that the frame quality factor is lower than at least one other frame quality factor, replace an image frame currently being decoded by the decoder with the highest frame quality factor (Q) with the second image frame.
- The code reader according to any of claims 6-9, wherein the at least one processor is further configured to: define a region-of-interest (ROI) related to the machine-readable indicia; and determine at least one motion vector within the region-of-interest.
- The code reader according to any of claims 6-10, wherein the at least one processor is further configured to: determine whether the calculated frame quality factor (Q) crosses a frame factor threshold level; in response to determining that the frame quality factor (Q) crosses the frame quality factor threshold level, stop the decoder, otherwise, if the frame quality factor (Q) is determined to not have crossed the frame quality factor threshold level, continue to decode the machine-readable indicia by the decoder.
- The code reader according to any of claims 6-11, wherein the at least one processor, in determining at least one motion vector, is configured to receive an output inclusive of the at least one motion vector calculated by an image sensor used for performing the first and second imaging.
- A method of operating a code reader, said method comprising: operating the code reader in an idle phase by: capturing a first image of a scene within a field-of-view of the code reader by an image sensor; capturing a second image of the scene within the field-of-view of the code reader by the image sensor; obtaining at least one motion vector using the first and second images, the at least one motion vector being indicative of motion of an object on which a machine-readable indicia is positioned; analyzing the at least one motion vector to determine motion of the object; determining, based on the motion of the object, whether an object is present; and in response to determining that an object is not present, continue obtaining the at least one motion vector, otherwise, in response to determining that the object is present, automatically transitioning the code reader from operating in the idle phase to operating in a decode phase to enable the code reader to decode the machine-readable indicia associated with the moving object.
- The method according to claim 13, wherein operating in a decode phase includes: turning the illuminator to an ON state from the OFF state; capturing a third image by the image sensor; capturing a fourth image by the image sensor; obtaining at least one second motion vector indicative of movement of the object; analyzing the at least one second motion vector to determine second motion of the object; determining, based on the second motion of the object, whether the object is present; and in response to determining that the object is present, continue obtaining second motion vectors until the object is determined not to be present, otherwise, in response to determining that the object is no longer present, automatically transitioning the code reader back to the idle phase including transitioning the illuminator from the ON state to the OFF state.
- The method according to claim 14, further comprising determining that the code reader is moving towards or away from the object if a plurality of the at least one motion vector or a plurality of the at least one second motion vector are respectively extending radially outward or radially inward from a center point of the object captured in the first and second images and/or third and fourth images the object, wherein preferably in response to determining that the code reader is moving towards the object while operating in the idle phase, automatically transitioning the code reader from operating in the idle phase to operating in a decode phase to enable the code reader to decode the machine-readable indicia associated with the moving object.
Description
BACKGROUND Code readers are generally configured to be handheld, stationary, or a combination thereof. In the case of handheld code readers, a user typically moves the handheld code reader towards an object on which a machine-readable indicia (e.g., barcode, QR code, direct part marking (DPM) code, etc.) is disposed into a line-of-sight of reading optics of the code reader such that an image of the machine-readable indicia may be captured by an image sensor thereof. In the case of stationary code readers, a user or machine (e.g., conveyer) typically moves an object on which a machine-readable indicia is disposed into a line-of-sight of optics of the code reader such that an image of the machine-readable indicia may be captured by an image sensor thereof. In either case, motion of the object and machine-readable indicia relative to the code reader causes challenges for the code reader to properly image and decode the machine-readable indicia. As such, there is a need for improved performance of code readers when relative motion between a machine-readable indicial and code reader exists. Code readers, especially stationary ones or ones that are in a standing mode, generally monitor a scene to determine whether motion within the scene occurs so as to become activated. Usually, the standing mode analyzes full images for changes, such as changes on features, brightness, or aiming pattern, or by using presence detection sensors, such as Time-of-Flight (ToF) sensors. The challenge with each of these techniques is cost and energy consumption. As such, there is a need for a technique for identifying motion of objects in a scene without having to be in an active mode or use of additional hardware that is costly for the hardware and integration thereof. SUMMARY To overcome the problems of existing code readers, the principles described herein provide for a system and methodologies for controlling components by optimizing configuration settings (e.g., image sensor, illuminator, decoder, etc.) of a code reader to reduce blur that would otherwise exist without controlling the components, thereby improving decoding performance of the machine-readable indicia by the code reader. A process may include using motion vectors to track moving objects and/or machine-readable indicia by moving between two image frames. Based on the motion vectors, parameters, such as gain and exposure time, used to control an image sensor may be adjusted. For example, if motion vectors are indicative of little or no relative movement between the code reader and object on which the machine-readable indicia is positioned, then the gain may be set low and exposure time may be set high to allow for high-quality imaging by the image sensor. If the motion vectors are indicative of high relative movement between the code reader and object on which the machine-readable indicia is positioned, then the gain may be set high and exposure time may be set low so as to capture an image of the machine-readable indicia in a short timeframe to reduce or eliminate blur. An illumination system control (e.g., flash) may also be configured to reduce blur generating optimized light pulses. These and other processes for controlling components of a code reader based on motion vectors may be utilized. To overcome the problem of detecting objects with machine-readable indicia to be read by a code reader when in an idle or stationary mode, the use of an advanced image sensor with optical flow or motion vector generation may be utilized. The motion vectors may be used directly to determine the presence or absence of a target to decode in a scene (i.e., within a field-of-view of a code reader). The use of an image sensor with motion vector generation capabilities reduces hardware and system complexity with respect to external presence sensors and may be much faster in reaction time than analyzing a full frame on a host processor of the code reader. During an idle phase, the motion vectors may be the only data output from the image sensor, thereby reducing required bandwidth and processing time while potentially increasing frame rate of the image sensor. One embodiment of a method of automatically configuring a code reader may include first imaging an object on which a machine-readable indicia is positioned to form a first image frame of the object. The object on which the machine-readable indicia is positioned may be second imaged to form a second image frame of the object. At least one motion vector of the object relative to the code reader between the first and second image frames may be determined. A frame quality factor (Q) of the second image frame based on the at least one motion vector may be calculated. A configuration of at least one of a decoder, image sensor, and illuminator may be automatically altered based on the calculated frame quality factor (Q). The machine-readable indicia may be decoded by the decoder. One embodiment of a code reader may include an image se