Optical scanner and image acquisition method performed using same
By utilizing a time-of-flight sensor to obtain target distance measurements and dynamically adjusting the position and size of the ROI, the problem of mismatch between the automatic exposure area and the aiming device position is solved, improving the reliability and accuracy of the machine-readable symbol reader in complex scenarios.
Patent Information
- Application Number
- CN202510873554.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-06-27
- Filing Date
- 2025-06-27
- Publication Date
- 2025-12-30
AI Technical Summary
In machine-readable symbol readers, the location and size of the region of interest (ROI) do not match the position of the aiming device within the image, resulting in underexposure or overexposure in complex scenes, which affects the reliability and accuracy of the reader.
By utilizing a time-of-flight sensor to obtain target distance measurements, the position and size of the ROI are dynamically adjusted to match the aiming position, ensuring more accurate automatic exposure in scenes with varying brightness.
It improves the reliability and accuracy of machine-readable symbol readers in complex scenarios, reduces exposure unevenness, and enhances the adaptability of the system.
Smart Images

Figure CN121234965A_ABST
Abstract
Description
Background Technology
[0001] In machine-readable symbol readers (e.g., barcode readers), there is typically a targeting element to help the user position the reader's field of view (FOV) relative to the machine-readable symbol that needs to be acquired and decoded. This targeting element can be implemented using different techniques (laser dots or crosshairs, LED circles, etc.), and it typically identifies the region of most interest within the image to be decoded.
[0002] Efficient automatic exposure algorithms are a key component of reader agility and motion tolerance. In typical applications, automatic exposure operates on a fixed region of interest (ROI), which can be a rectangle centered on the image. The automatic exposure algorithm analyzes the brightness within the region to match it to a predefined brightness target.
[0003] Depending on the reader characteristics and application, the fixed ROI does not always represent the most important part of the image, i.e., the part that includes machine-readable symbols (e.g., one-dimensional barcode symbols; two-dimensional regions, matrices, or QR code symbols).
[0004] The aiming position is a useful indicator of an important part of the image because the user typically aligns it with the machine-readable symbol to be read, for example, when the symbol reader is a handheld reader or a self-service terminal reader. Due to the mechanical nature of the reader, the aiming position is not always centered on the image. Instead, its position may vary with the distance to the target due to mechanical misalignment between it and the receiver optics.
[0005] In autofocus-based systems that utilize laser triangulation to calculate target distances, it is a system requirement that the aiming position change with the target distance. In such systems, at close range, the aiming position within the image changes towards the edge. Keeping the auto-exposure ROI fixed is not optimal because the machine-readable symbol will be outside the auto-exposure ROI when the distance changes. In complex scenes with bright areas (e.g., windows), placing the ROI outside the machine-readable symbol may result in underexposure or overexposure of the machine-readable symbol. Summary of the Invention
[0006] The embodiments disclosed herein address the problem of linking the location and size of an automatically exposed ROI to the current aiming position within an image. This information can be used to link ROI size and location when the target distance is not derived from the aiming position but is obtained through other means (e.g., a time-of-flight sensor).
[0007] The embodiments disclosed herein improve system reliability by providing more accurate auto-exposure brightness targets for regions including machine-readable symbols without significantly reducing exposure convergence speed. In systems where the aiming position or target distance already exists for features such as autofocus or picklist selection, the ROI position and size may change a frame after the information becomes available. When this information is unavailable, the latency is related to the time (typically 2-3 frames) required to expose the aiming device within the image and locate it.
[0008] The advantages of using a fixed auto-exposure ROI position are evident in complex scenes with varying light levels or windows close to machine-readable symbols. For short distances, grouping dark and bright areas side-by-side can facilitate a more precise ROI.
[0009] In a first aspect, an image acquisition method is disclosed. This image acquisition method includes capturing a first set of images of a scene illuminated with a sight pattern using an image sensor comprising an array of pixels. Each image in the first set of images includes a corresponding image region detected by a plurality of pixels of the pixel array, these pixels defining a sight illumination region of the pixel array, the sight illumination region at least partially defining a region of interest (ROI) of the pixel array. The method also includes determining ROI exposure settings based on the ROI pixel values of the first set of images generated from the ROIs of the pixel array. The method further includes capturing a second set of images of the scene when the exposure settings of the pixels in the sight illumination region are equal to the ROI exposure settings.
[0010] In a second aspect, an optical scanner is disclosed. The optical scanner includes an image sensor, a light emitter, and circuitry. The image sensor includes a pixel array. The circuitry is communicatively coupled to and operates together with the pixel array to image a scene illuminated by the light emitter by performing the method of the first aspect. Attached Figure Description
[0011] Figure 1 This is a simplified block diagram illustrating an implementation of a scanning system according to at least one example embodiment.
[0012] Figure 2 This is an illustration of a handheld reader as an example implementation of a scanning system.
[0013] Figure 3 This illustrates some embodiments. Figure 1 A high-level block diagram of an example system architecture for a scanning system.
[0014] Figures 4A to 4D This is a simplified schematic diagram illustrating an example arrangement that can be used as one or more image capture devices.
[0015] Figure 5This is shown based on an example. Figure 1 A simplified block diagram of the processing hardware of the controller of the scanning system.
[0016] Figure 6 This is a high-level state diagram illustrating a simplified operating mechanism of the controller of a scanning system according to an example embodiment.
[0017] Figure 7 This is a functional block diagram of an embodiment of an optical scanner, examples of which include... Figure 1 The scanning system.
[0018] Figure 8 This illustrates that in the embodiments, it can be derived from... Figure 7 The flowchart shows the image acquisition method implemented by the optical scanner.
[0019] Figure 9 It is shown as Figure 8 A flowchart of method actions as part of an embodiment of the method. Detailed Implementation
[0020] The descriptions included herein do not imply an actual view of any particular system, memory device, architecture, or process, but are merely idealized representations used to describe the embodiments herein. Common elements and features across the figures may retain the same numerical designations, except that, for ease of description, the reference numerals in most cases begin with the reference numeral that introduces or most fully describes the element. Furthermore, the elements shown in the figures are schematic in nature and may not describe many details regarding the physical layout and construction of the memory array and / or all the actions required to access data, as will be understood by one of ordinary skill in the art.
[0021] As used herein, unless the context clearly indicates otherwise, the singular forms “a” and “the” are intended to include the plural forms as well.
[0022] As used herein, “or” includes any and all combinations of one or more of the listed items in both conjunction and disjunctive senses. Any intended description of an “exclusive or” relationship will be specifically noted.
[0023] As used herein, the term “configured to” refers to a structural arrangement, such as the size, shape, material composition, physical configuration, logical configuration (e.g., programming, operating parameter settings), or other operational arrangement of at least one structure and at least one device, to facilitate its operation in a defined manner (e.g., performing a specific function or a set of functions).
[0024] As used herein, the phrase “coupled to…” or “coupled with…” refers to structures that are operatively connected to each other, such as by direct connection or by indirect connection (e.g., through another structure or component).
[0025] Some aspects of this disclosure provide an image-based optical scanning system having multiple image capture devices. Figure 1 This is a simplified block diagram illustrating an implementation of a scanning system 100 according to at least one example. As discussed further below, the scanning system 100 can be used to capture multiple images of a subject 104, such as machine-readable symbols or symbol sets 108 (e.g., 1D barcode symbols, 2D regions, matrix or QR code symbols, image encoding information (e.g., digital watermarks, printed characters, or text)). The subject 104 itself can be a machine-detectable or machine-recognizable object. The scanning system 100 can read, recognize, detect, or perform other automated analytical processing on the subject. For the sake of brevity, such operations will be referred to as "reading" in the current context.
[0026] The aspects of this disclosure can also be applied to other areas of automated vision, such as automated guided vehicles (AGVs), robotics, autonomous driving, and machine vision (MV) systems. The embodiments described below are in the context of visual symbol reading, but the principles of this technique related to ranging and calibration are equally applicable to many other fields.
[0027] The scanning system 100 includes one or more image capture devices. In the depicted example, system 100 includes two image capture devices 102a-102b (collectively referred to as image capture devices 102). It will be understood that related embodiments may have only one image capture device, or three or more image capture devices. Each image capture device 102 may include an image sensor configured and operated to generate signals representing an image or video frame. In the current context, the terms "image" and "video frame" are used interchangeably to refer to a fixed image or a portion thereof, and any distinction between the two data types will be specifically noted if applicable.
[0028] Each image capture device 102 may be assembled with optical components (e.g., objectives, microlens arrays, etc.). In other examples, more than one individual image capture device may share a common optical system. Image capture devices 102a-102b may be constructed using any suitable technology, whether known or future. Non-limitingly, some examples include complementary metal-oxide-semiconductor (CMOS) based sensors, charge-coupled device (CCD) based sensors, sensors optimized for the visible spectrum, sensors optimized for infrared or near-infrared frequencies, high dynamic range (HDR) sensors, monochrome sensors, color sensors, quantum image sensors, hyperspectral sensors, polarization sensors, image sensors with embedded AI capabilities, etc. In relevant implementations, the group of image capture devices 102 employed in the scanning system 100 includes different types of sensors, such as groups including, for example, conventional image sensors and HDR image sensors.
[0029] like Figure 1 As shown in the examples, image capture devices 102a and 102b have respective fields of view 109a and 109b. In related examples, various image capture devices 102 have different optical characteristics. For example, image capture device 102a may be a near-field camera, while image capture device 102b may be a far-field camera. In other examples, image capture devices 102 have the same optical characteristics. As another useful feature in some embodiments, the image capture devices 102 are positioned at a specific interval from each other.
[0030] The scanning system 100 also includes one or more aiming emitters. In the depicted example, a single aiming emitter 110 is shown, which may be a laser emitter, a light source with a lens system for shaping the emitted beam, etc. The aiming emitter 110 illuminates the subject 104 with an aiming pattern 112.
[0031] It should be understood that in other embodiments, multiple aiming transmitters may be employed. A suitable configuration for multiple aiming transmitters 110 may be in a system with only one image sensor. In the example shown, the aiming transmitters 110 are located at fixed positions relative to the image capture devices 102a-102b. As will be discussed in more detail below, in some embodiments, the positional offset between each image capture device 102 and the aiming transmitter 110 facilitates the use of triangulation techniques to determine the distance to the target surface.
[0032] Image capture device 102 and aiming transmitter 110 are interfaced with controller 120, which includes auxiliary measurement control circuitry 128 and image processing circuitry 122. In some embodiments, each image capture device 102 and aiming transmitter 110 may be communicatively coupled to controller 120 via a wired or wireless medium. In related embodiments, a network (e.g., LAN, WAN, PAN, Internet) may facilitate communication coupling. In some embodiments, image capture device 102 may be connected via a suitable local interface (e.g., I / O interface). 2 C, USB, SPI, UART, I 3 C) or may be integrated with controller 120 and interconnected using internal interconnects (e.g., peripheral component interconnect (PCI), serial AT accessory (SATA), mobile industrial processor interface (MIPI), or other suitable variations of interconnects known to those skilled in the art).
[0033] The auxiliary measurement control circuit 128 operates in conjunction with the image processing circuit 122 to coordinate the operation of the aiming transmitter 110 and the image acquisition devices 102a-102b, thereby measuring the range of the target surface of the subject 104. The image acquisition device 102 is communicatively coupled to the image processing circuit 122, which is configured to receive the captured image and perform processing operations for determining the range, setting operating parameters based on the range to facilitate image acquisition of the subject 104, and capturing an image of the subject 104 to perform readout of the subject 104.
[0034] To determine the distance, the image processing circuit 122 is coupled to the auxiliary measurement control circuit 128, allowing them to exchange relevant data and commands. For example, image sensor frame capture signaling can be provided by the image processing circuit 122 to the auxiliary measurement control circuit 128, enabling the auxiliary measurement control circuit 128 to adjust the activation of the aiming transmitter pattern (e.g., dot, line, cross, triangle, or other shape) within the frame of the captured image.
[0035] Figure 2 This is an illustration of a handheld reader 200 as an example implementation of a scanning system 100. The handheld reader 200 includes at least one of forward-facing cameras 202a and 202b, which may be positioned in a spaced-apart relationship to have partially overlapping fields of view. Cameras 202a and 202b are corresponding examples of image capture devices 102a and 102b. The handheld reader 200 may also include a forward-facing aiming transmitter 210, which is an example of aiming transmitter 110. The handheld reader 200 may also include at least one of a housing 290, a display 204, and button controllers 206a and 206b.
[0036] The aiming transmitter 210 facilitates ranging of the subject 104. The aiming transmitter 210 can work in conjunction with one or both of the cameras 202a and 202b using triangulation techniques, wherein the position of the aiming point within the field of view of one or both cameras indicates the distance to the subject. The ranging measurement can be used as input (along with other inputs) to determine operating parameters, such as the selection of the image sensor, focus setting, illumination power, and other settings for subsequent information processing.
[0037] According to other embodiments, the reader can be mounted on a fixed or mobile structure. Examples of mounting locations for various scanning applications include vehicles, doorways, ramps, conveyor belts, buildings, robots, etc. In the implementation of the mounting, the cameras can have their own respective housings, which can be separate from the image processing system hardware.
[0038] Figure 3 This is a block diagram illustrating an example system architecture 300 of a scanning system 100. System architecture 300 includes a controller 320, which is an example of controller 120. Controller 320 includes processing hardware 386 operatively coupled to an image capture interface 321, an input device 325, a display or indicator 327, communication circuitry 324, and a sight transmitter interface 326. Processing hardware 386 includes one or more processor circuits that execute software or firmware instructions 323, which are stored in a non-transient machine-readable medium (e.g., read-only memory, flash memory, random access memory, etc.).
[0039] Controller 320 includes various engines, each configured to perform a function or set of functions described in detail below. As used herein, the term "engine" refers to a tangible device, component, or arrangement of components implemented in hardware, such as by application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or as a combination of hardware and software, such as by a processor-based computing platform and a set of program instructions that transform the computing platform into a dedicated device to implement a specific function. An engine can also be implemented as a combination of both, where some functions are facilitated solely by hardware, while others are facilitated by a combination of hardware and software.
[0040] In one example, software may reside on a tangible machine-readable storage medium in either an executable or non-executable form. Software residing in a non-executable form may be compiled, translated, or otherwise converted into an executable form before or during runtime. In one example, when executed by the underlying hardware of the engine, the software causes the hardware to perform a specified operation. Therefore, the engine is specifically configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a specified manner or perform part or all of any of the operations described herein in conjunction with the engine.
[0041] In the example where engines are temporarily configured, each engine can be instantiated at different times. For example, in the case where the engines include general-purpose hardware processor cores configured using software; these general-purpose hardware processor cores can be configured as different engines at different times. The software can configure the hardware processor cores accordingly, for example, to constitute a specific engine at one time and a different engine at another time.
[0042] In some implementations, at least a portion of the engine, and in some cases, the entire engine, can execute on one or more processors of one or more computers that execute operating systems, system programs, and applications, while also employing multitasking, multithreading, distributed (e.g., cluster, peer-to-peer, cloud, etc.) processing, or other such technologies, depending on the circumstances. Therefore, each engine can be implemented in a variety of suitable configurations and should generally not be limited to any particular implementation illustrated in this paper, unless such limitation is explicitly stated.
[0043] Furthermore, an engine itself can consist of more than one sub-engine, and each sub-engine can be considered an engine in itself. Additionally, in the embodiments described herein, each of the various engines corresponds to a defined function; however, it should be understood that in other contemplated embodiments, each function may be distributed across more than one engine. Similarly, in other contemplated embodiments, multiple defined functions may be implemented by a single engine that performs these multiple functions, possibly together with other functions, or distributed across a set of engines in a manner different from that specifically illustrated in the examples herein.
[0044] Image capture interface 321 includes circuitry that facilitates data exchange between processing hardware 386 and one or more image sensors 330. At least one of image capture device 102 and camera 202 may include image sensor 330.
[0045] In some examples, the image capture interface 321 includes a data buffer, a video decoder, a video encoder, an address and data bus interface, serial data receiver / transmitter circuitry, analog-to-digital (A / D) converter circuitry, etc. The data communication portion of the image capture interface 321 can facilitate wired or wireless communication. The image capture interface 321 is operable to pass video frames output from each image sensor 330 in their raw format to the processing hardware 386 in a suitable data format to be read by the processing hardware 386. The image capture interface 321 and the processing hardware 386 can work together to implement the image processing circuitry 122. Figure 1 ).
[0046] In a related example, the image capture interface 321 may be additionally configured to pass information from the processing hardware 386 to one or more image sensors 330. This upstream information may include configuration commands such as sensor zoom settings, frame rate, exposure control, activation / deactivation commands, etc.
[0047] In some embodiments, the image capture interface 321 may be integrated as part of a digital signal processor (DSP) device or a microcontroller device. In other embodiments, the image capture interface 321 may be integrated as part of one or more image sensors 330.
[0048] The aiming emitter interface 326 includes circuitry for controlling the operation of one or more aiming emitters 310. The aiming emitter interface 326 may include current regulator circuitry, switching circuitry, etc. Each aiming emitter 310 may include a solid-state laser emitter having a wavelength within the light detection range of the image sensor 330. In other implementations, each aiming emitter 310 may include another type of light source, such as a visible or infrared diode, and a lens system to shape the emitted light into a spot or other pattern for projection onto a target surface. The aiming emitter interface 326 and the processing hardware 386 may work together to implement the auxiliary measurement control circuitry 128. Figure 1 ).
[0049] Input device 325 includes user-operable controls (such as buttons, keypads, touchscreens, etc.) and additional sensors (such as range sensors, motion sensors, accelerometers, etc.). Display or indicator 327 includes devices such as liquid crystal displays (LCDs), LED indicators, speakers or buzzers, and other suitable output devices.
[0050] Communication circuit 324 includes wired or wireless communication facilities that provide input to and output to processing hardware 386. The communication circuit may include one or more of the following types of communication circuits: Universal Serial Bus (USB), CAN, I... 2 C, SPI, UART, I 3 C. Ethernet, private area networks (such as Bluetooth according to the IEEE 802.15 standard), Wi-Fi according to the IEEE 802.11 standard, etc.
[0051] Figures 4A to 4D This is a simplified schematic diagram illustrating an arrangement that can be used as one or more image capture devices (e.g., image capture device 102). Figure 4A The above reference is shown Figure 2The handheld reader 200 described is arranged in a consistent example configuration. A single housing 402 houses image sensors 330a and 330b, each with corresponding objective lenses 406a and 406b. A sight transmitter 210 is also shown. As described above, the sight transmitter 210 can be used to place a light spot on a surface containing the subject 104, and can evaluate video frames captured by the image sensors 330a and 330b to determine the distance to the subject 104. Figure 4B An example with separate housings 402a and 402b is shown, each housing having a corresponding image sensor 330a, 330b and objective lenses 406a, 406b. The aiming transmitter 210 can be positioned independently of housing 402a or 402b, or it can be located within one of housings 402a or 402b.
[0052] Figure 4C and 4D Another example is shown, in which a single image sensor 330 is provided within a housing 402 and a single objective lens 406 with an optical axis 408 is arranged thereon. Multiple sight spots are used to facilitate triangulation of these single image sensor arrangements. Figure 4C In the example, the first aiming launcher 210a and the second aiming launcher 210b are arranged in a spaced-out relationship relative to each other and relative to the image sensor 330. Figure 4D In the example, a single sight emitter 210 is provided. To achieve multiple light spots or (multiple) other patterns, an optical system 414 is provided. In one example, as shown, the optical system 414 includes a beam splitter 416 and a mirror 418.
[0053] exist Figure 4C and 4D In some embodiments of the arrangement, as shown in the figure, each aiming beam can be located at a different distance from the center line of the image sensor 330. In related embodiments, the aiming beams are parallel.
[0054] In other embodiments, the aiming beams are not parallel. For example, they may be arranged to deviate from each other as the distance from the image sensor 330 increases. In one type of embodiment, the aiming beams are arranged to be dispersed at an angle such that the aiming spot remains at the same distance as captured by the image sensor 330 in the image, regardless of the distance.
[0055] Figure 5This is a simplified block diagram of processing hardware 586 as an example of processing hardware 386. Processing hardware 586 includes an instruction processor 510, a video processor 512, and an input / output (I / O) controller 514. The instruction processor 510 is configured to execute software or firmware instructions 323, the execution of which causes the instruction processor 510 to implement an engine to combine with, for example... Figure 3 The controller 120, image sensor 330, and other components of the aiming transmitter 310 shown perform the overall functions of the scanning system 100. For example, the instruction processor 510 can read input devices 325 and take actions in response to these inputs; the instruction processor 510 can write outputs to a display or indicator 327; and the instruction processor 510 can exchange data with communication circuitry 324 to send data to or receive data from other devices. Additionally, instruction 323, when executed by the instruction processor 510, can cause the instruction processor 510 to perform triangulation and calibration operations to determine the distance to the subject, as described in more detail below with reference to some embodiments.
[0056] Instruction processor 510 can have any suitable architecture. As an example, instruction processor 510 may include a central processing unit (CPU) core, RAM, non-volatile memory, memory controller, address and data (or shared) buses, serial communication ports (such as a universal synchronous receiver / transmitter (UART)), and peripheral circuitry (such as timers, event counters, A / D or D / A converters, pulse width modulation (PWM) generators, etc.).
[0057] The video processor 512 interfaces with the instruction processor 510 and implements an engine to receive captured images from the image capture device 102 and resample, crop, compress, or combine portions of the images; filter; evaluate the visual characteristics of the captured images; determine the positions of captured visual elements within an image frame (e.g., the position of the aiming spot generated by the aiming emitter 210); and execute symbol reading or object detection algorithms. In some embodiments, the video processor 512 includes a digital signal processor (DSP) core (having a computational architecture optimized for video processing and including additional or dedicated arithmetic logic units (ALUs) – direct memory access, fixed-point arithmetic, etc.), an ASIC, an FPGA, a CPLD, or a combination thereof.
[0058] I / O controller 514 includes circuitry that facilitates addressing, data transfer, memory access, and other interactions between instruction processor 510, video processor 512, and other components of controller 120. As an example, I / O controller 514 may include a bus or system interconnect controller, a serial communication central controller, etc.
[0059] In related embodiments, the instruction processor 510 and video processor 512 are integrated into a single processing device, such as a digital signal controller (DCS) configured to perform the corresponding functions of the instruction processor 510 and video processor 512. Similarly, the I / O controller 514 can also be integrated as part of the DCS implementation. In other related embodiments, a portion of the processing hardware 386 can be implemented using logic circuitry 516, such as an application-specific integrated circuit (ASIC), FPGA, CPLD, hardware coprocessor, etc. The logic circuitry 516 can be used to perform certain operations, such as image filtering, image frame combination, triangulation, etc., at a higher speed or power efficiency than conventional implementations using an instruction processor.
[0060] Figure 6 This is a high-level state diagram illustrating a simplified operating mechanism of controller 120 according to an example embodiment. These states include idle 602, evaluation phase 612, operating parameter setting 614, image acquisition 616, and image processing 618. Evaluation phase 612 begins in response to activation event 620. In the example of a hand-triggered reader (such as handheld reader 200), the activation event may be the actuation of a button.
[0061] Evaluation phase 612 involves rapidly performing one or more initial measurements, such as distance measurements, illumination condition measurements, or other such measurements, to determine the operational mode of image acquisition. In the case of distance measurements, the aiming transmitter 110 and auxiliary measurement control circuitry 128 and image processing circuitry 122 can be used to determine the range for the subject to generate the range measurement as part of generating initial evaluation data 622. In some embodiments, the speed of evaluation phase 612 is maximized to provide minimal operational latency. As an example, evaluation phase 612 can be performed using a subset of image frames to reduce the scope of image processing required to output initial evaluation data 622.
[0062] Operational parameter settings 614 use initial evaluation data 622 to set operational parameters, such as camera or image sensor selection, focus settings, exposure settings, image sensor gain settings, active illumination (e.g., flash or lamp) settings, active illumination source selection (in embodiments utilizing multiple active illumination sources), etc. Operational parameter settings 614 generate acquisition configuration data 624, which may include setting focus commands, activating flash or lamp, selecting a region of interest (ROI), or any combination of these and other available settings. Image acquisition 616 involves activating or reading the selected image sensor according to applicable operational parameters to capture one or a series of images 626. For example, the best image sensor and various settings of that image sensor, such as gain, exposure, etc., can be selected.
[0063] Image processing 618 is typically performed on one or more captured images 626 produced by the operations of the acquisition phase 616. Image processing operations 618 include subject reading (e.g., symbol reading, text identification, object detection, object recognition, etc.). Image processing 618 is a computationally more expensive process than the initial evaluation operations performed as part of the evaluation phase 612 and the image acquisition phase 616. The result of image processing 618 is output 628, which may be in the form of a data object indicating data such as machine-readable symbols, recognized text, or objects.
[0064] Figure 7 This is a functional block diagram of an optical scanner 700, an example of which includes a scanning system 100. The optical scanner 700 includes an image sensor 730, a light emitter 710, and circuitry 780, examples of which are image sensor 330, aiming emitter 110, and controller 120, respectively. The image sensor 730 may be part of an image capture device 702 of the optical scanner 700, which may include one or more cameras, such as image capture device 102 or camera 202. The image capture device 702 may include additional image sensors 730, in... Figure 7 The image sensor shown in the middle is 730(2).
[0065] Figure 7 Scene 790 is shown in the field of view of image capture device 702. Scene 790 includes subject 104 and aiming pattern 112 generated by light emitter 710. Light emitter 710 can intermittently generate aiming pattern 112 according to, for example, a time illumination function 787 stored in memory 782, such that scene 790 intermittently includes aiming pattern 112. Examples of time illumination function 787 include square wave or rectangular wave.
[0066] The image sensor 730 includes a pixel array 740 and may include a shutter 732. The pixel array 740 includes a plurality of pixels 741. Figure 7 This represents the aiming illumination region 742 of the pixel array 740. The aiming illumination region 742 includes pixels 742p, each pixel having a corresponding pixel coordinate 742C. Each pixel 742p is a pixel 741 within the aiming illumination region 742. In an embodiment, the pixel coordinates 742C are consecutive, such that pixels 742p are a plurality of consecutive pixels 741.
[0067] The aiming illumination region 742 at least partially defines a region of interest 744 (hereinafter referred to as ROI 744) of the pixel array 740. The ROI 744 comprises a plurality of pixels 741, which may be or include a contiguous plurality of pixels 741. The aiming illumination region 742 and the ROI 744 occupy a first region and a second region of the pixel array 740, respectively, each region being defined by a plurality of pixels 741, each pixel 741 having corresponding pixel coordinates. The second region may be larger than the first region. The first region may be an m×n pixel array, where each of m and n may be between 2 and 100. The second region may be a p×q pixel array, where each of p and q may be between 128 and 512. The second region may include at least a portion of the first region, such as the center of the first region. The aiming illumination region 742 may include... Figure 1 Image of the center sight pattern 112.
[0068] Circuit 780 is communicatively coupled to and operates with pixel array 740 to perform the functions described herein. Circuit 780 may be part of image sensor 730. Circuit 780 may be or include one of application-specific integrated circuits (ASICs) and field-programmable gate arrays (FPGAs). In an embodiment, circuit 780 includes processor 786 and memory 782. Memory 782 may store machine-readable instructions as software 783, which, when executed by the processor, causes optical scanner 700 to perform the functions described herein.
[0069] Processor 786 represents any type of circuit or integrated circuit capable of performing logic, control, and input / output operations. For example, processor 786 may include one or more of the following: a microprocessor, a graphics processing unit (GPU), a digital signal processor (DSP), a field-programmable gate array (FPGA), a system-on-a-chip (SoC), a microcontroller unit (MCU), and an application-specific integrated circuit (ASIC) having one or more central processing unit (CPU) cores. Processor 602 may also include a memory controller, a bus controller, and other components that manage the data flow between processor 786 and memory 782.
[0070] Memory 782 may be transient and / or non-transient, and may include one or both of volatile memory (e.g., SRAM, DRAM, computational RAM, other volatile memory, or any combination thereof) and non-volatile memory (e.g., FLASH, ROM, magnetic media, optical media, other non-volatile memory, or any combination thereof). Part or all of memory 782 may be integrated into processor 786. Memory 782 stores software 783 including non-transient machine-readable instructions. When executed by processor 786, software 783 causes processor 786 to implement selected functions of the optical scanner 700 as described herein. Software 783 may be firmware or include firmware.
[0071] The memory 782 can store at least one of image sets 750s, 760s, and 770s. Image set 750s includes image 750(1), which includes ROI pixel values 754(1) and non-ROI pixel values 755(1). Image set 750s may include at least one additional image 750(2-N), where index N≥2, such that image 750 comprises a sequence of consecutively captured images. Each image 750(k) includes ROI pixel values 754(k) and non-ROI pixel values 755(k), where index k is less than or equal to N. In this document, the numbers in parentheses following the reference numerals are instances of the objects referred to by the reference numerals. For example, each image 750(k) is an instance of image 750 of image set 750s.
[0072] Each image 750 includes an image region 752(k), which may include an image of the sight pattern 112. In an embodiment, the pixel values of the image region 752 are determined in part by signals generated by pixels 742p of the sight illumination region 742.
[0073] Image set 760 includes one or more images 760, which are similar to image 750. Each image 760 includes ROI pixel values 764 and non-ROI pixel values 765, which are similar to ROI pixel values 754 and non-ROI pixel values 755, respectively. Image 760 may include image region 762, which is similar to image region 752.
[0074] Image set 770 includes one or more images 770, which are similar to image 750. Each image 770 includes ROI pixel values 774 and non-ROI pixel values 775, which are similar to ROI pixel values 754 and non-ROI pixel values 755, respectively. Image 770 may include image region 772, which is similar to image region 752.
[0075] Memory 782 stores exposure level 784 and at least one ROI exposure setting 789 (examples of which are exposure settings 789(1-3)). In an embodiment, software 783 determines exposure level 784 and ROI exposure setting 789 based on at least one of image sets 750s, 760s, and 770s. The exposure setting for each pixel 742p of ROI 744 can be equal to one of the ROI exposure settings 789. Furthermore, the exposure setting for each pixel 741 of pixel array 740 can be equal to one of the ROI exposure settings 789. ROI exposure setting 789 may include one or both of exposure duration setting and gain setting.
[0076] Figure 8 This is a flowchart illustrating an image acquisition method 800. In an embodiment, method 800 is implemented within one or more aspects of an optical scanner 700. For example, method 800 may be implemented by a processor 786 executing computer-readable instructions of software 783. Method 800 includes at least one of actions 820, 860, and 880. Method 800 may also include one or more of actions 810 and 830.
[0077] The following description of method 800 includes parenthetical numbers following terms used in the method actions. The parenthetical numbers indicate that the element associated with the number in parentheses is an example of that term. For example, the description of action 820 below states "image sensor (730)," which means... Figure 7 Image sensor 730 is an example of the image sensor of method 800.
[0078] Action 820 includes capturing a first set of images (750s) of a scene (790) illuminated by a sight pattern (112) using an image sensor (730) comprising a pixel array (740). Each image (750) in the first set of images includes a corresponding image region (752) detected by a plurality of pixels (742p) of the pixel array. The plurality of pixels define a sight illumination region (742) of the pixel array, which at least partially defines a region of interest (ROI 744) of the pixel array.
[0079] Method 800 may include action 810 preceding action 820. Action 810 includes intermittently illuminating the scene using a sight pattern according to a time illumination function. When method 800 includes action 810, action 820 may include action 822 or action 824. Each of actions 822 and 824 includes synchronizing the shutter (732) of an image sensor with a time illumination function (787). In action 822, (i) when the sight pattern does not illuminate the scene, the image sensor captures each image of a first image set, and (ii) none of the images in the first image set include an image of the sight pattern. In action 824, (i) when the sight pattern illuminates the scene, the image sensor captures each image of the first image set, and (ii) one or more images in the first image set include an image of the sight pattern.
[0080] Action 830 includes determining a plurality of pixel coordinates (742C) of a sight illumination area (742), each pixel coordinate corresponding to a corresponding one of a plurality of pixels (742p). Action 830 may precede action 860 and may follow action 820. In an embodiment, for example when action 820 includes action 824, one or more corresponding image regions (752(k)) of image 750(k) include an image of a sight pattern detected by the plurality of pixels (742p). In such an embodiment, action 830 may include action 832. Action 832 includes detecting an image of the sight pattern using an object detection method.
[0081] In one embodiment, one or more corresponding image regions (752(k)) of image 750(k) do not include an image of the aiming pattern detected by a plurality of pixels (742p). In such an embodiment, action 830 may include at least one of actions 834 and 836. Action 834 includes determining the distance between a scene (e.g., subject 104 therein) and an image sensor or an additional sensor near the image sensor. The image sensor and the additional sensor (e.g., a time-of-flight sensor) may be part of scanning system 100 or handheld reader 200. Action 836 includes applying a geometric triangulation method using the distance determined in action 834.
[0082] The pixel array of method 800 may be part of an image sensor. In such embodiments, method 800 may include action 840. Action 840 may precede action 860. Action 840 includes adjusting the exposure level (784) of a sight illumination region (742) such that the image sensor (730) generates an adjusted image region from the sight illumination region that satisfies an exposure metric. The adjusted image region may replace an image region in one or more images of a first image set. In embodiments, the exposure metric defines one or more of the following: (i) a maximum number of pixel values exceeding a maximum permissible pixel value; and (i) a maximum number of pixel values less than a minimum permissible pixel value.
[0083] Method 800 may include action 834 as part of action 830 or independent of action 830. When method 800 includes action 834, method 800 may also include action 850 for determining the ROI region based on the distance determined in action 834.
[0084] Action 860 includes determining an ROI exposure setting (789(1)) based on ROI pixel values (754) of a first image set generated from the ROI of the pixel array. In an embodiment, the first image set includes one or more images (750), each image including non-ROI pixel values (755) generated from non-ROI pixels of the pixel array that are not located within the aiming illumination area (742). In such an embodiment, determining the ROI exposure setting (action 860) is based on the ROI pixel values (754) rather than on the non-ROI pixel values (755). In an embodiment, the ROI includes a contiguous plurality of pixels, the exposure setting of each pixel of the ROI being equal to the ROI exposure setting (789(1)).
[0085] Action 870 includes setting each pixel (742p) of the ROI to the ROI exposure setting (789(1)). Action 870 may also include setting each pixel (741) of the pixel array (740) to the ROI exposure setting.
[0086] Action 880 includes capturing a second set of images of the scene (760s) when the exposure setting of the pixels (742p) of the aiming illumination area (742) is equal to the ROI exposure setting (789(1)). In an embodiment, when capturing the second set of images, the exposure setting of each pixel in the pixel array (e.g., all pixels 741) is equal to the ROI exposure setting.
[0087] In an embodiment of method 800, each image (760) of the second image set (760s) includes a corresponding second image region (762) detected by a second plurality of pixels of the pixel array (740), the second plurality of pixels of the pixel array (740) defining a second aiming illumination region (742(2)) of the pixel array, the second aiming illumination region (742(2)) at least partially determining a second ROI (744(2)) of the pixel array. In such an embodiment, method 800 may include Figure 9 Action 900 is shown. Action 900 includes at least one of actions 910, 960, and 980.
[0088] Action 910 includes at least one of actions 912 and 914. Action 912 includes detecting whether a timeout condition has been met. The timeout condition may be met after action 880 is completed and after the image sensor has captured a predetermined number of images (frames). Action 914 includes moving the aiming position to determine the difference between a second position (742(2)) of the second aiming illumination area and a first position (742) of the aiming illumination area. In an embodiment, action 914 is performed only if the timeout condition of action 912 is met.
[0089] Action 960 includes determining a second ROI exposure setting (789(2)) based on the ROI pixel values of a second image set generated from a second ROI (744(2)) of a pixel array, the pixel array comprising one or more second plurality of pixels. When method 800 includes action 910, action 960 may be performed if one or both of the following conditions are met: (i) it can be determined in action 912 that a timeout condition has been met, and (ii) (determined in action 914) the aiming position has moved beyond a threshold.
[0090] In an embodiment, each of the ROI exposure setting and the second ROI exposure setting includes a parameter. This parameter may be exposure time, gain, or a value determined based on either or both of exposure time and gain. In such an embodiment, action 960 includes implementing an iterative method that uses the values of the parameters in the ROI exposure settings as initial values for the parameters.
[0091] Action 980 includes capturing a third set of images of the scene (770s), while the exposure setting of the pixels (742p) in the aiming illumination area is equal to the third ROI exposure setting (789(3)). The third ROI exposure setting (789(3)) may be equal to the second ROI exposure setting (789(2)) when a timeout condition (912) has been met and / or when the aiming position moves beyond a threshold (as determined in action 914). The third ROI exposure setting (789(3)) may be equal to the ROI exposure setting (789(1)) when the aiming position moves beyond a threshold.
[0092] Without departing from its scope, the foregoing features and the appended claimed features can be combined in various ways. The examples listed below illustrate some possible non-limiting combinations.
[0093] Example 1. An image acquisition method, comprising: capturing a first image set of a scene illuminated by a sight pattern using an image sensor including a pixel array, each image of the first image set including a corresponding image region detected by a plurality of pixels of the pixel array, the plurality of pixels defining a sight illumination region of the pixel array, the sight illumination region at least partially defining a region of interest (ROI) of the pixel array; determining an ROI exposure setting based on ROI pixel values of the first image set generated from the ROI of the pixel array; and capturing a second image set of the scene when the exposure setting of the pixels in the sight illumination region is equal to the ROI exposure setting.
[0094] Example 2. According to the method of Example 1, the first image set includes one or more images, each image including non-ROI pixel values generated by non-ROI pixels of the pixel array that are not located within the target illumination area, wherein the ROI exposure setting is determined based on the ROI pixel values rather than the non-ROI pixel values.
[0095] Example 3. The method according to any one of Examples 1 or 2 further includes determining a plurality of pixel coordinates of the illumination area of the sight, each pixel coordinate corresponding to a corresponding pixel among the plurality of pixels.
[0096] Example 4. According to any one of Examples 1-3, the image region of the first image set includes an image of the aiming pattern detected by the plurality of pixels, wherein determining the coordinates of the plurality of pixels includes: detecting the image of the aiming pattern using an object detection method.
[0097] Example 5. Determining multiple pixel coordinates according to any one of Examples 1-4 includes: determining the distance between the pixel array and the scene; and applying a geometric triangulation method using the distance.
[0098] Example 6. The method according to any one of Examples 1-5 further includes: intermittently illuminating the scene using the aiming pattern according to a time illumination function; and capturing the first image set includes synchronizing the shutter of the image sensor with the time illumination function such that (i) when the aiming pattern does not illuminate the scene, the image sensor captures each image of the first image set, and (ii) the images of the first image set do not include images of the aiming pattern.
[0099] Example 7. According to any one of Examples 1-6, the ROI comprises a plurality of consecutive pixels, and the exposure setting of each pixel of the ROI is equal to the exposure setting of the ROI.
[0100] Example 8. The method according to any one of Examples 1-7 further includes setting each pixel of the ROI to the ROI exposure setting before capturing the second image set.
[0101] Example 9. The method according to any one of Examples 1-8 further includes setting each pixel of the pixel array to the ROI exposure setting before capturing the second image set.
[0102] Example 10. The method according to any one of Examples 1-9, wherein the pixel array is part of an image sensor, and further includes, before determining the ROI exposure settings: adjusting the exposure level of the aiming illuminated region such that the image sensor generates an adjusted image region from the aiming illuminated region that satisfies the exposure metric.
[0103] Example 11. The method according to any one of Examples 1-10 further includes: determining the distance between the pixel array and the scene; and determining the region of the ROI based on the distance.
[0104] Example 12. According to any one of Examples 1-11, the aiming illumination area occupies a first region of the pixel array, the ROI occupies a second region of the pixel array, and the second region includes the first region.
[0105] Example 13. The method according to any one of Examples 1-12, wherein each image of the second image set includes a corresponding second image region detected by a second plurality of pixels of the pixel array, the second plurality of pixels defining a second aiming illumination region of the pixel array, the second aiming illumination region at least partially determining a second ROI of the pixel array, the method further comprising: determining a second ROI exposure setting based on ROI pixel values of the second image set generated from the second ROI of the pixel array, the pixel array including one or more second plurality of pixels; and capturing a third image set of the scene when the exposure setting of the pixels in the aiming illumination region is equal to the second ROI exposure setting.
[0106] Example 14. According to any one of Examples 1-13, each of the ROI exposure setting and the second ROI exposure setting includes a parameter, and the action of determining the second ROI exposure setting includes implementing an iterative method, the iterative method using the value of the parameter in the ROI exposure setting as the initial value of the parameter.
[0107] Example 15. The method according to any one of Examples 1-14, wherein the parameter is exposure time or gain.
[0108] Example 16. A method according to any one of Examples 1-15, wherein each image of the second image set includes a corresponding second image region detected by a second plurality of pixels of the pixel array, the second plurality of pixels defining a second aiming illumination region of the pixel array, the second aiming illumination region at least partially determining a second ROI of the pixel array, the method further comprising: determining an aiming position movement as the difference between a second position of the second aiming illumination region and a first position of the aiming illumination region; determining a second ROI exposure setting based on ROI pixel values of the second image set generated by the second ROI of the pixel array when the aiming position movement exceeds a threshold, the pixel array including one or more second plurality of pixels; and capturing a third image set of the scene when the exposure setting of the pixels in the aiming illumination region is equal to a third ROI exposure setting.
[0109] Example 17. According to the method described in Examples 1-16, when the aiming position moves beyond a threshold, the third ROI exposure setting is equal to the second ROI exposure setting; and when the aiming position moves beyond the threshold, the third ROI exposure setting is equal to the ROI exposure setting.
[0110] Example 18. An optical scanner comprising: an image sensor including a pixel array; a light emitter; and circuitry communicatively coupled to the pixel array, which operates together with the pixel array to image a scene illuminated by the light emitter by performing the method described in any one of Examples 1-17.
[0111] Example 19. The optical scanner according to Example 18, the circuitry includes: a processor; and a memory storing machine-readable instructions that, when executed by the processor, cause the optical scanner to image the scene.
[0112] Modifications to the methods and systems described above may be made without departing from the scope of these embodiments. Therefore, it should be noted that the content contained in the above description or shown in the figures should be interpreted as illustrative rather than restrictive. In this document, unless otherwise stated, the phrase "in some embodiments" is equivalent to the phrase "in some embodiments" and does not refer to all embodiments.
[0113] Regarding instances of the terms “and / or” and “at least one of…”, for example, in the cases of “A and / or B” and “at least one of A and B”, such wording includes selecting (i) only A, or (ii) only B, or (iii) both A and B. In the cases of “A, B and / or C” and “at least one of A, B and C”, such wording includes selecting (i) only A, or (ii) only B, or (iii) only C, or (iv) only A and B, or (v) only A and C, or (vi) only B and C, or (vii) each of A, B and C. This can be extended to all listed items.
[0114] The appended claims are intended to cover all the general and specific features described herein, as well as all statements regarding the scope of the method and system, which, linguistically speaking, may be considered to fall somewhere in between.
Claims
1. An image acquisition method comprising: capturing a first set of images of a scene illuminated by an aimer pattern with an image sensor comprising a pixel array, each image of the first set of images comprising a respective image region detected by a plurality of pixels of the pixel array, the plurality of pixels defining an aimer illumination region of the pixel array, the aimer illumination region at least partially determining a region of interest (ROI) of the pixel array; determining a ROI exposure setting based on ROI pixel values of the first set of images generated by the ROI of the pixel array; and capturing a second set of images of the scene with an exposure setting of pixels of the aimer illumination region equal to the ROI exposure setting.
2. The method of claim 1, the first set of images comprising one or more images, each of the one or more images comprising non-ROI pixel values generated by non-ROI pixels of the pixel array not located within the aimer illumination region, wherein determining the ROI exposure setting is based on the ROI pixel values and not on the non-ROI pixel values.
3. The method of claim 1, further comprising determining a plurality of pixel coordinates of the aimer illumination region, each pixel coordinate corresponding to a respective pixel of the plurality of pixels.
4. The method of claim 3, the image region of an image of the first set of images comprising an image of the aimer pattern detected by the plurality of pixels, wherein determining the plurality of pixel coordinates comprises: detecting the image of the aimer pattern using an object detection method.
5. The method of claim 3, determining the plurality of pixel coordinates comprises: determining a distance between the pixel array and the scene; and applying a geometric triangulation method using the distance.
6. The method of claim 3, further comprising: intermittently illuminating the scene with the aimer pattern according to a temporal illumination function; and capturing the first set of images comprises synchronizing a shutter of the image sensor with the temporal illumination function such that (i) the image sensor captures each image of the first set of images when the aimer pattern does not illuminate the scene, and (ii) the images of the first set of images do not include images of the aimer pattern.
7. The method of claim 1, the ROI comprising a contiguous plurality of pixels, the exposure setting of each pixel of the ROI equal to the ROI exposure setting.
8. The method of claim 1, further comprising setting each pixel of the ROI to the ROI exposure setting prior to capturing the second set of images.
9. The method of claim 1, further comprising setting each pixel of the pixel array to the ROI exposure setting prior to capturing the second set of images.
10. The method of claim 1, the pixel array being part of an image sensor, and further comprising prior to determining the ROI exposure setting: adjusting an exposure level of the reticle illumination area such that the image sensor generates an adjusted image area from the reticle illumination area that satisfies an exposure metric.
11. The method of claim 1, further comprising: determining a distance between the pixel array and the scene; and determining a region of the ROI as a function of the distance.
12. The method of claim 1, the reticle illumination area occupying a first region of the pixel array, the ROI occupying a second region of the pixel array, the second region including the first region.
13. The method of claim 1, each image of the second set of images comprising a respective second image area detected by a second plurality of pixels of the pixel array, the second plurality of pixels defining a second reticle illumination area of the pixel array, the second reticle illumination area at least partially determining a second ROI of the pixel array, the method further comprising: determining a second ROI exposure setting based on ROI pixel values of the second set of images generated by the second ROI of the pixel array, the pixel array comprising one or more second pluralities of pixels; and capturing a third set of images of the scene with the exposure setting of the pixels of the reticle illumination area equal to the second ROI exposure setting.
14. The method of claim 13, each of the ROI exposure setting and the second ROI exposure setting comprising a parameter, the act of determining the second ROI exposure setting comprising implementing an iterative method that uses a value of the parameter in the ROI exposure setting as an initial value of the parameter.
15. The method of claim 14, the parameter being an exposure time or a gain.
16. The method of claim 1, each image of the second set of images comprising a respective second image area detected by a second plurality of pixels of the pixel array, the second plurality of pixels of the pixel array defining a second reticle illumination area of the pixel array, the second reticle illumination area at least partially determining a second ROI of the pixel array, the method further comprising: determining a reticle position movement as a difference between a second position of the second reticle illumination area and a first position of the reticle illumination area; determining a second ROI exposure setting based on ROI pixel values of the second set of images generated by the second ROI of the pixel array when the reticle position movement exceeds a threshold, the pixel array comprising one or more second pluralities of pixels; and capturing a third set of images of the scene with the exposure setting of the pixels of the reticle illumination area equal to a third ROI exposure setting.
17. The method of claim 16, the third ROI exposure setting equaling the second ROI exposure setting when a reticle position movement exceeds the threshold; and the third ROI exposure setting equaling the ROI exposure setting when the reticle position movement does not exceed the threshold.
18. An optical scanner, comprising: an image sensor comprising a pixel array; a light emitter; and circuit communicatively coupled to the pixel array that operates with the pixel array to image a scene illuminated by the light emitters by: capturing a first set of images of a scene illuminated by a reticle pattern with an image sensor comprising a pixel array, each image of the first set of images comprising a respective image region detected by a plurality of pixels of the pixel array, the plurality of pixels defining a reticle illumination region of the pixel array, the reticle illumination region at least partially determining a region of interest (ROI) of the pixel array; determining a ROI exposure setting based on ROI pixel values of the first set of images generated by the ROI of the pixel array; and capturing a second set of images of the scene with the exposure setting of the pixels of the reticle illumination region equal to the ROI exposure setting.
19. The optical scanner of claim 18, the circuit being part of the image sensor.
20. The optical scanner of claim 18, the circuit comprising: a processor; and a memory storing machine-readable instructions that, when executed by the processor, cause the optical scanner to image the scene.
21. The optical scanner of claim 20, wherein the machine-readable instructions comprise instructions that, when executed by the processor, cause the optical scanner to: capture a first set of images of a scene illuminated by a reticle pattern with an image sensor comprising a pixel array, each image of the first set of images comprising a respective image region detected by a plurality of pixels of the pixel array, the plurality of pixels defining a reticle illumination region of the pixel array, the reticle illumination region at least partially determining a region of interest (ROI) of the pixel array; determine a ROI exposure setting based on ROI pixel values of the first set of images generated by the ROI of the pixel array; and capture a second set of images of the scene with the exposure setting of the pixels of the reticle illumination region equal to the ROI exposure setting.