Method and device for locating small marks in a large image

By detecting the position of the aiming light pattern in a hand-held scanner and determining and encoding the coordinates of the aiming pattern area, the problem that traditional hand-held scanners are difficult to decode small marks, achieving faster and more reliable marking decoding.

CN118871915BActive Publication Date: 2025-05-23ZEBRA TECHNOLOGIES CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380026532.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-01-11
Filing Date
2023-01-06
Publication Date
2025-05-23
Estimated Expiration
2043-01-06

AI Technical Summary

Technical Problem

When traditional handheld scanners capture large images, it is difficult to effectively locate and decode small marks, resulting in slow decoding or inability to decode.

Method used

By detecting the position of the aiming light pattern or assumed position, the coordinates of the aiming pattern area are determined and encoded into the marking row of the image and provided to the marking decoder in order to attempt to decode the marking within a specific area.

Benefits of technology

The time required for the tag decoder to locate and decode small marks is significantly reduced, and the decoding success rate is improved, and failures caused by the tag cannot be decoded.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118871915B_ABST
    Figure CN118871915B_ABST
Patent Text Reader

Abstract

Disclosed herein are methods and apparatus for locating a small marker in a large image. An example method includes: identifying an aiming pattern region including a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of the image data varies with distance from a handheld scanner to a marker due to parallax; determining one or more coordinates of the aiming pattern region; encoding the one or more coordinates of the aiming pattern region into a marker row of the image; and providing the image with the marker row to a marker decoder so that the marker decoder attempts to decode a marker from the image data starting in a region of the image data selected based on the one or more coordinates of the aiming pattern region.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] With the advent of high-resolution, auto-focus, long-range handheld scanners, decoding of indicia that are far from the handheld scanner may no longer be limited by the clarity of the indicia in the image, but rather by the ability of the indicia decoder to locate the indicia in the image. For example, a highly reduced one-dimensional (1D) barcode or a low-density two-dimensional (2D) barcode printed on a large item may appear extremely small in an image captured at the end of the handheld scanner's focal range because the indicia is represented by only a few pixels of the large image. Decoding such small indicia may become slow or discontinuous, and in some cases may even be impossible to decode the indicia. Summary of the invention

[0002] To reduce or eliminate some or all of these or other problems with conventional indicia decoding, example methods, apparatus, and articles of manufacture are disclosed for locating and decoding small indicia in a large image.

[0003] In an embodiment, a method for locating a marker includes: identifying an aiming pattern area that includes a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of image data varies with a distance from a handheld scanner to the marker due to parallax; determining one or more coordinates of the aiming pattern area; encoding the one or more coordinates of the aiming pattern area into a marker row of the image; and providing the image with the marker row to a marker decoder so that the marker decoder attempts to decode a marker from the image data starting in an area of ​​the image data selected based on the one or more coordinates of the aiming pattern area.

[0004] In a variation of this embodiment, the one or more coordinates of the aiming pattern area represent positions of corners or a center of the aiming pattern area.

[0005] In a variation of this embodiment, the method further includes determining a focal distance based on the identified aiming light pattern; and controlling one or more focusing components to focus the handheld scanner at the focal distance, wherein the image data is captured when the handheld scanner is focused at the focal distance.

[0006] In a variation of this embodiment, the aiming pattern area is identified by: energizing an aiming light source to provide the aiming light pattern; capturing, with the image sensor, first image data representing a first partial image of only a portion of an environment present within the FOV while the aiming light source is energized, wherein the aiming light pattern moves within the portion of the environment in response to a change in the distance between the handheld scanner and the marker;

[0007] Dividing first image data into a first plurality of sub-images; summing the brightness of the first image data in each of the first plurality of sub-images to form a first plurality of total brightnesses for corresponding sub-images in the first plurality of sub-images; turning off the power of the aiming light source; capturing, using the image sensor, second image data of a second partial image representing only a portion of the environment appearing within the FOV when the aiming light source is turned off; dividing the second image data into a second plurality of sub-images; summing the brightness of the additional image data in each of the second plurality of sub-images to form a second plurality of total brightnesses for corresponding sub-images in the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and corresponding total brightnesses in the second plurality of total brightnesses; and identifying a first sub-image in the first plurality of sub-images corresponding to a maximum difference among the plurality of differences as the aiming pattern area.

[0008] In a variation of this embodiment, the first sub-image is identified as an aiming pattern area when the maximum difference meets a criterion.

[0009] In a variation of this embodiment, the aiming pattern area is identified by the following steps: energizing an aiming light source to provide an aiming light pattern; capturing, using the image sensor, first image data representing a first image of the environment appearing within the FOV when the aiming light source is energized; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; and identifying an area of ​​the first image data that includes the detected aiming light pattern as the aiming pattern area.

[0010] In a variation of this embodiment, an aiming pattern area is identified by the following steps: determining a focal length; controlling one or more focusing components to focus a handheld scanner at the focal length, wherein image data is captured when the handheld scanner is focused at the focal length; identifying the assumed position of the aiming light pattern based on the focal length and parallax; and identifying the aiming pattern area to include the assumed position of the aiming light pattern.

[0011] In a variation of this embodiment, the focal length is determined at least in accordance with a predetermined focal length ramp.

[0012] In a variation of this embodiment, when the tag is not decodable in the image data, the method further includes: determining a second focal length; controlling one or more of the focusing components to focus the handheld scanner at the second focal length; utilizing the image sensor to capture additional image data representing an additional image of the environment appearing within the FOV when the aiming light source is focused at the second focal length; identifying a second assumed position of the aiming light pattern based on the second focal length and the parallax; identifying a second aiming pattern area based on the second assumed position of the aiming pattern; determining one or more coordinates of the second aiming pattern area; encoding the one or more coordinates of the second aiming pattern area into a tag row of the additional image; and providing the additional image to the tag decoder so that the tag decoder attempts to decode the tag from the additional image data starting in an area of ​​the additional image data selected based on the one or more coordinates of the second aiming pattern area.

[0013] In another embodiment, a handheld scanner includes an image sensor, an aiming light source, and a processor. The processor is configured to: identify an aiming pattern region including a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of image data varies with distance from the handheld scanner to a marker due to parallax; determine one or more coordinates of the aiming pattern region; cause the image sensor to capture image data, the image data representing an image of an environment appearing within a field of view (FOV) of the handheld scanner including the marker; encode the one or more coordinates of the aiming pattern region into a marker row of the image; and provide the image with the marker row to a marker decoder separate from the handheld scanner, wherein the marker decoder is configured to, in response to receiving the image, attempt to decode the marker from the image data starting in a region of the image data selected based on the one or more coordinates of the aiming pattern region encoded into the marker row.

[0014] In a variation of this embodiment, the one or more coordinates of the aiming pattern area represent the location of a corner or a center of the aiming pattern area.

[0015] In a variation of this embodiment, the handheld scanner includes one or more focusing components to focus the handheld scanner, and the processor is further configured to: determine a focal length based on the identified aiming pattern area; and control the one or more focusing components to focus the handheld scanner at the focal length, wherein the image data is captured when the handheld scanner is focused at the focal length.

[0016] In a variation of this embodiment, the processor is configured to identify the aiming pattern area by the following steps: energizing an aiming light source to provide an aiming light pattern; causing the image sensor to capture first image data of a first partial image representing only a portion of an environment appearing within the FOV when the aiming light source is energized, wherein the aiming light pattern moves within the portion of the environment in response to a change in the distance between the handheld scanner and the mark; dividing the first image data into a first plurality of sub-images; aggregating the brightness of the first image data in each of the first plurality of sub-images to form a first plurality of total brightnesses for corresponding sub-images in the first plurality of sub-images; de-energizing the aiming light source; causing the image sensor to capture second image data of a second partial image representing only a portion of an environment appearing within the FOV when the aiming light source is de-energized; dividing the additional image data into a second plurality of sub-images; aggregating the brightness of the additional image data in each of the second plurality of sub-images to form a second plurality of total brightnesses for corresponding sub-images in the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and corresponding total brightnesses in the second plurality of total brightnesses; and identifying the sub-image in the first sub-image corresponding to the maximum difference among the plurality of differences as the aiming pattern area.

[0017] In a variation of this embodiment, the aiming pattern region is identified by configuring the process to: determine a focal length; identify the presumed position of the aiming light pattern based on the focal length and the parallax; and identify the aiming pattern region to include the presumed position of the aiming light pattern.

[0018] In a variation of this embodiment, the processor is configured to identify an aiming pattern area by: energizing an aiming light source to provide an aiming light pattern; capturing, using the image sensor, first image data representing a first image of the environment appearing within the FOV when the aiming light source is energized; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; and identifying an area of ​​the first image data that includes the detected aiming light pattern as the aiming pattern area.

[0019] In yet another embodiment, a non-transitory computer-readable storage medium stores computer-readable instructions that, when executed by one or more processors, cause a handheld scanner to: identify an aiming pattern area that includes a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of image data varies with a distance from the handheld scanner to a marker due to parallax; determine one or more coordinates of the aiming pattern area; cause the image sensor to capture image data, the image data representing an image of an environment appearing within a field of view (FOV) of the handheld scanner including the marker; encode the one or more coordinates of the aiming pattern area into a marker row of the image; and provide the image with the marker row to a marker decoder separate from the handheld scanner, such that the marker decoder attempts to decode the marker from the image data beginning in an area of ​​the image data selected based on the one or more coordinates of the aiming pattern area.

[0020] In a variation of this embodiment, the one or more coordinates of the aiming pattern area represent the location of a corner or a center of the aiming pattern area.

[0021] In a variation of this embodiment, when executed by the one or more processors, the instructions cause the handheld scanner to: determine a focal length based on the identified aiming pattern area; and control one or more focusing components to focus the handheld scanner at the focal length, wherein the image data is captured when the handheld scanner is focused at the focal length.

[0022] In a variation of this embodiment, when executed by the one or more processors, the instructions cause the handheld scanner to identify an aiming pattern area by: energizing an aiming light source to provide an aiming light pattern; causing the image sensor to capture first image data representing a first partial image of only a portion of an environment appearing within the FOV when the aiming light source is energized, wherein the aiming light pattern moves within the portion of the environment in response to a change in the distance between the handheld scanner and the marker; dividing the first image data into a first plurality of sub-images; and summing the brightness of the first image data in each of the first plurality of sub-images to form a first image data for each of the first plurality of sub-images. a first plurality of total brightnesses of corresponding sub-images; de-energizing the aiming light source; causing the image sensor to capture second image data of a second partial image representing only a portion of the environment appearing within the FOV when the aiming assembly is de-energized; dividing the second image data into a second plurality of sub-images; summing the brightness of the second image data in each of the second plurality of sub-images to form a second plurality of total brightnesses for corresponding sub-images in the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and corresponding total brightnesses in the second plurality of total brightnesses; and identifying the sub-image in the first sub-image corresponding to the maximum difference among the plurality of differences as the aiming pattern area.

[0023] In a variation of this embodiment, the instructions, when executed by the one or more processors, cause the handheld scanner to identify an aiming pattern area by: determining a focal length; identifying the assumed position of the aiming light pattern based on the focal length and parallax; and identifying the aiming pattern area to include the assumed position of the aiming light pattern.

[0024] In a variation of this embodiment, the instructions, when executed by the one or more processors, cause the handheld scanner to identify an aiming pattern area by: energizing an aiming light source to provide an aiming light pattern; capturing, using the image sensor, first image data representing a first image of the environment appearing within the FOV when the aiming light source is energized; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; and identifying an area of ​​the first image data that includes the detected aiming light pattern as the aiming pattern area. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] The accompanying drawings, in which the same reference numerals represent the same or functionally similar elements throughout the different views, together with the following detailed description, are incorporated into and form a part of the specification and are used to further illustrate embodiments of the concepts of the claimed invention and to explain the various principles and advantages of those embodiments.

[0026] Figure 1is a perspective view of an example handheld scanner according to an embodiment of the present disclosure.

[0027] Figure 2 Yes Figure 1 Example images captured by the example handheld scanner in .

[0028] Figure 3 is used Figure 1 Another example image captured by the example handheld scanner in .

[0029] Figure 4 It is used to realize Figure 1 Block diagram of example handheld scanners and / or example logic circuitry for example methods and / or operations described herein.

[0030] Figure 5 is a flow chart representing an example method, hardware logic, machine-readable instructions, or software for locating and decoding a small marker in a large image according to an embodiment of the present disclosure.

[0031] Figure 6 is a flow chart representing an example method, hardware logic, machine readable instructions, or software for detecting an aiming light pattern according to an embodiment of the present disclosure.

[0032] Those skilled in the art will appreciate that the elements in the drawings are shown for simplicity and clarity and are not necessarily drawn to scale. For example, the sizes of some of the elements in the drawings may be exaggerated relative to other elements to help improve understanding of the embodiments of the present invention.

[0033] Device and method construction have been represented in the drawings by conventional symbols where appropriate, showing only those specific details relevant to an understanding of the embodiments of the invention so as not to obscure the disclosure with details that would be apparent to one of ordinary skill in the art having the benefit of the description herein. DETAILED DESCRIPTION

[0034] Reference will now be made in detail to non-limiting examples, some of which are illustrated in the accompanying drawings.

[0035] Figure 1 An example handheld scanner 100 is shown, and the example handheld scanner 100 is configured to scan, locate, decode indicia such as a one-dimensional barcode, a two-dimensional barcode, a direct product mark (DPM), etc., among other functions. For example, the handheld scanner 100 can be a handheld barcode scanner. Although the examples disclosed herein refer to the handheld scanner 100 operating in a handheld mode, the examples disclosed herein can also be used when the handheld scanner is placed in a stand and operated in a hands-free mode, using a dual optical scanner, a slot scanner, etc.

[0036] The example handheld scanner 100 includes an example housing 102 in which an image sensor 104 is disposed. The image sensor 104 captures image data 105 representing an image of an environment in an imaging field of view (FOV) 106 of the handheld scanner 100 through a forward light-transmitting window or opening 108 on a front side 110 of the handheld scanner 100. For example, the image data 105 may represent an image of an object on which a label is printed, inscribed, affixed, etc. For example, a 1D barcode, a 2D barcode, a DPM, etc. may be printed, inscribed, or affixed to a package, box, paper, part, etc. The handheld scanner 100 includes a label decoder 112 in communication with the image sensor 104, the label decoder 112 being configured to receive the image data 105 and locate and decode one or more labels captured in the image data 105. The example label decoder 112 is a barcode decoder.

[0037] Figure 1 The example housing 102 includes a generally elongated handle or lower grip portion 114, and an upper body portion 116 having a front side 110 with a window or opening 108 located at the front side 110. The cross-sectional dimensions and overall dimensions of the grip portion 114 allow the scanning device 100 to be conveniently held in the hand of a user. The window or opening 108 is configured to generally face away from the user when the user places the scanning device 100 in a handheld position. Portions 114 and 116 may be constructed of a lightweight, resilient, impact-resistant, self-supporting material, such as a synthetic plastic material. The housing 102 may be injection molded, but may also be vacuum formed or blow molded to form a thin, hollow housing that defines an interior space having a volume sufficient to include the various components of the handheld scanner 100. Although the housing 102 is shown as a portable, point-of-transaction, gun-shaped, handheld housing, any other configuration may be used, including a hands-free configuration.

[0038] The handheld scanner 100 includes an example aiming light source 118 disposed in the housing 102, the example aiming light source 118 being configured to provide an aiming light pattern, such as an aiming light spot 120. In use, a user adjusts the handheld scanner 100 direction so that the aiming light spot 120 is incident on a marker within the FOV 106, and then actuates a trigger 122 to cause the image sensor 104 to capture image data 105 representing an image including the marker. The operator may depress the trigger 122 using one or more fingers. Example markers include a 1D barcode, a 2D barcode, a DPM marker, etc. The trigger 122 is mounted on the handle portion 114 in a moving relationship in a forward region 124 of the handle portion 114.

[0039] In the illustrated implementation, the aiming light source 118 is physically spaced apart and positioned from the image sensor 104 such that the aiming light point 120 moves within the FOV 106 as the handheld scanner 100 moves toward or away from the marker 126 due to parallax. As the distance 128 between the handheld scanner 100 and the marker 126 increases from a close distance to a long distance, the aiming light point 120 correspondingly moves within the FOV 106 from a first position 130 near the edge of the FOV 106 to a second position 132 closer to the center of the FOV 106. The position of the aiming light point 120 in the image data 105 represents the FOV 106 image and can be detected and used to determine the distance 128. The detected position of the aiming light point 120 in the image data 105 can be used to determine the focal length to the marker 126 so that the handheld scanner can focus on the marker 126.

[0040] When the user directs the handheld scanner 100 as instructed so that the aiming light spot 120 is incident on the indicia 126 to be decoded, and then actuates the trigger 122 to cause the image sensor 104 to capture image data 105 representing an image including the indicia 126, the detected position of the aiming light spot 120 in the image data 105 may also be used by the indicia decoder 112 to select an initial region of the image data 105 in which the indicia decoder 112 initially searches for and attempts to decode the indicia 126. Thus, by detecting and using the position of the aiming light spot 120 in the image data 105 to locate the indicia 126, the time required for the indicia decoder 112 to locate and decode the indicia 126 may be significantly reduced, and in some cases, the failure of the indicia decoder 112 to locate and decode the indicia 126 may be prevented.

[0041] The handheld scanner 100 can detect the location of the aiming light point 120 by: (i) capturing first image data 105 representing a first image of the environment in the FOV 106 when the aiming light source 118 is activated or powered on; (ii) capturing second image data 105 representing a second image of the environment within the field of view FOV 106 when the aiming light source 118 is not activated or powered off; and (iii) using one or more differences between the first image data 105 and the second image data 105 to detect the aiming light point 120 and determine the location of the aiming light point 120 in the first image data 105. In some examples, the first image data 105 and the second image data 105 represent only the environment in only a portion (e.g., a strip) of the field of view 106, where the aiming light point 120 moves in response to changes in the distance 128, in order to increase the image frame rate and / or reduce the amount of image data 105 that must be processed to detect and locate the marker 126.

[0042] In some examples, the handheld scanner 100 quantizes the focal length 128 into a predetermined finite set of fixed focal lengths to increase the autofocus speed. In such examples, the position of the aiming light spot 120 only needs to be detected relative to the finite set of aiming point regions. The aiming point regions correspond to corresponding focal lengths in the finite set of fixed focal lengths. When the distance 128 changes, the aiming light spot 120 moves between the aiming point regions.

[0043] Figure 2 2 is an example image 205 captured using an example handheld scanner 100 when the handheld scanner 100 is at a first distance 128 from the marker 126. In the example shown, the image 205 corresponds to only a portion of the FOV 106 of the handheld scanner 100. The image 205 can be divided into a plurality of sub-images 210, 211, 212, 213, and 214 corresponding to respective ones of the plurality of aiming point regions in which the aiming light point 120 can be located. The aiming point regions correspond to respective ones of the plurality of fixed focal lengths. Because the user directs the handheld scanner 100 as instructed so that the aiming light point 120 overlaps the marker 126 as shown, the location of the aiming light point 120 in the image data 105 corresponding to the image 205 can be used to identify the location of the marker 126 in the FOV 106, and therefore the location of the marker 126 in the image data 105 representing the image of the larger portion of the FOV 106.

[0044] Figure 3 3 is another example image 305 captured using the example handheld scanner 100 when the handheld scanner 100 is at a second, greater distance 128 from the marker 126. The image 305 may likewise be divided into a plurality of sub-images 310, 311, 312, 313, and 314 corresponding to respective ones of the plurality of aiming point areas in which the aiming light point 120 may be located, the aiming point areas corresponding to respective ones of the plurality of fixed focal lengths. Because the user directed the handheld scanner 100 so that the aiming light point 120 overlaps the marker 126 as shown, the location of the aiming light point 120 in the image data 105 corresponding to the image 305 may again be used to identify the location of the marker 126 in the FOV 106, and therefore the location of the marker 126 in the image data 105 representing the image of the larger portion of the FOV 106.

[0045] The handheld scanner 100 can detect the location of the aiming light point 102 by capturing first image data 105 representing a first image of the environment in the FOV 106 when the aiming light source 118 is activated or powered on, and capturing second image data 105 representing a second image of the environment within the field of view FOV 106 when the aiming light source 118 is not activated or powered off. For example, the first image data 105 can represent an image 205 when the aiming light source 118 is activated or powered on, and the second image data 105 can represent an image 205 when the aiming light source 118 is not activated or powered off. The first image data 105 can be divided into a first plurality of sub-images (e.g., sub-images 210-214) corresponding to a finite set of aiming point areas, wherein a first plurality of total brightnesses are calculated for each of the sub-images in the first plurality of sub-images. The second image data 105 can similarly be divided into a second plurality of sub-images (e.g., sub-images 210-214) corresponding to a finite set of aiming point areas, wherein a second plurality of total brightnesses are calculated for each of the sub-images in the second plurality of sub-images. The difference between the first plurality of total brightness and the second plurality of total brightness can be calculated and used to detect the sub-image with the largest difference as the aiming point region where the aiming point of light 120 is located. The identified aiming point region where the aiming point of light 120 is detected can be used to: (i) determine the focal distance to the mark 126; (ii) control one or more focusing components to focus the handheld scanner 100 at the focal distance; (iii) capture image data 105 representing the environment within the FOV 106 when focused at the focal distance; and (iv) select a region in the image data 105 based on one or more coordinates of the identified aiming point region to begin attempting to decode the mark 126 in the identified aiming point region.

[0046] In some examples, the one or more coordinates of the identified aiming point area represent a center or a corner of the aiming point area. The one or more coordinates of the identified aiming point area may be encoded into a tag line of an image that is passed to the tag decoder 112 for decoding, such that the tag decoder 112 attempts to begin decoding a tag 126 of the image data 105 of the image in an area of ​​the image data 105 selected based on the one or more coordinates of the aiming point area encoded into the tag line. When the identified aiming point area is identified by a first device (e.g., a handheld scanner 100) and the tag decoder 112 is implemented by a second device (e.g., a host device), only the image with the encoded tag line need be passed to the tag decoder 112. However, the one or more coordinates may be provided to the tag decoder 112 separately from the image. Any additional image used to identify the aiming point area (e.g., as described below in conjunction with Figure 6The handheld scanner 100 and the host device 112 may be used to decode the image of a target object (as described above) and may be processed by the first device and need not be passed to a second device implementing the indicia decoder 112. In this way, the amount of image data passed by the handheld scanner 100 to the indicia decoder 112 may be significantly reduced, and the overall responsiveness of the system including the handheld scanner 100 and the host device may be significantly improved. In some examples, the size of the area in which decoding begins is selected based on the expected bar code size at the current focal length, and the location of the area is selected to be centered on the identified aiming point area.

[0047] In some examples, when the total brightness difference satisfies a predetermined threshold, the aiming light point is detected and the aiming point region is identified. Thus, when the aiming light point is not detected, the handheld scanner 100 can sequentially attempt to decode the indicia using a finite sequence of fixed focus distances. At each focus distance, the handheld scanner 100: (i) focuses at the current focus distance; (ii) identifies a presumed aiming point region in which the aiming light point is presumed to be located for the current focus distance; and (iii) selects a region of the image data 105 in which to begin attempting to decode the indicia 126 based on one or more coordinates of the presumed aiming point region.

[0048] In some examples, the handheld scanner 100 is calibrated during manufacturing to accommodate (among other possible tolerances) tolerances in the spacing between the image sensor 104 and the aiming light source 118, and / or tolerances in the optical alignment of the image sensor 104 and the aiming light source 118. Such manufacturing tolerances affect the amount of parallax and / or the geometric relationship between the image sensor 104 and the aiming light source 118. Therefore, the handheld scanner 100 stores a calibration table 134 that represents the coordinates of each aiming point area, or equivalently, the coordinates of each sub-image corresponding to a finite number of fixed focal lengths. The coordinates of each aiming light point stored in the calibration table 134 can be used to define the sub-images into which the image data 105 is divided for detecting the location of the aiming light point 120. Conversely, when the aiming light point 120 is not detected and various fixed focal lengths are tried, the calibration table 134 can be used to determine the coordinates of the assumed aiming light point at the current focal length based on the parallax geometric relationship between the image sensor 104 and the aiming light source 118.

[0049] Figure 4 is a representation that can be used to implement, for example, Figure 1 A block diagram of an example logic circuit of a handheld scanner 100 is shown. Based on the embodiments disclosed herein, Figure 4 The example logic circuit may be configured to capture an image, locate a marker in the image, and decode the marker. The logic circuit may be arranged in Figure 1 In the example housing 102.

[0050] Figure 4An example logic circuit capable of executing instructions to, for example, implement the operations of the example methods described herein (as represented by the flowcharts of the figures accompanying this specification) is a processing platform 400. Other example logic circuits capable of, for example, implementing the operations of the example methods described herein include field programmable gate arrays (FPGAs) and application specific integrated circuits (ASICs).

[0051] The example processing platform 400 includes a processor 402, such as, for example, one or more microprocessors, controllers, and / or any suitable type of processor. The processing platform 400 includes a memory (e.g., volatile memory, non-volatile memory) 404 that is accessible by the processor 402 (e.g., via a memory controller, not shown for clarity). The memory 404 may be used to store Figure 1 , calibration table 134 in, etc. The example processor 402 interacts with the memory 404 to obtain, for example, machine-readable instructions stored in the memory 404 corresponding to the operations represented by, for example, the (multiple) flowcharts of the present disclosure. Additionally or alternatively, the machine-readable instructions corresponding to the example operations described herein may be stored on one or more removable media (e.g., compact disks (CDs), digital versatile disks (DVDs), removable flash memory, etc.), which may be coupled to the processing platform 400 to provide access to the machine-readable instructions stored thereon. The processor 402 is configured to, among other possible functions, execute the machine-readable instructions to control one or more operations of the handheld scanner 100, including capturing images, locating markers in the images, and decoding markers.

[0052] The example processing platform 400 includes one or more communication interfaces, such as, for example, one or more network interfaces 406, and / or one or more input / output (I / O) interfaces 408. The communication interface(s) may enable the processing platform 400 to communicate with, for example, another device, system, a host system (e.g., an inventory management system, a point of sale (POS) station, a point of transaction site, etc.), a data store, a database, and / or any other machine.

[0053] The example processing platform 400 may include network interface(s) 406 to enable communication with other machines (e.g., inventory management systems, POS stations, point of transaction sites, etc.) via, for example, one or more networks. The example network interface(s) 406 include any suitable type of communication interface(s) (e.g., wired and / or wireless interfaces) configured to operate based on any suitable communication protocol(s). Example network interfaces 406 include TCP / IP interfaces, WiFi, and the like. TMtransceiver (e.g., based on the IEEE 802.11x series of standards), Ethernet transceiver, cellular network radio, satellite network radio, or any other suitable interface based on any other suitable communication protocol or standard.

[0054] Figure 4 The example processing platform 400 may include (a plurality of) input / output (I / O) interfaces 408 (e.g., interface, near field communication (NFC) interface, universal serial bus (USB) interface, serial interface, infrared interface, etc.); to (1) implement user input (for example, from Figure 1 (1) receiving a trigger 122 (e.g., a touch screen, keyboard, mouse, touchpad, joystick, trackball, microphone, button, etc.); (2) communicating output data (e.g., visual indicators, instructions, data, images, etc.) to a user (e.g., via an output device such as a speaker, printer, tactile device, etc.); and / or (3) interacting with other components of the handheld scanner 100.

[0055] To capture image data 105 representing an object and / or a marker on an object, the example processing platform 400 includes an example imaging assembly 412. The imaging assembly 412 includes an image sensor 104 controlled by, for example, an imaging engine 414 to capture image data 105 representing an image falling within a FOV 106 of the imaging assembly 412 in an environment in which the handheld scanner 100 is operating. The image sensor 104 includes a plurality of photosensitive elements forming a substantially flat surface. Although not shown for clarity, the processor 402 may be communicatively coupled to components of the imaging assembly 412 and / or more generally the imaging engine 414 via an input / output (I / O) interface 408.

[0056] The example imaging assembly 412 includes any number and / or type(s) of indicia decoders 112 (e.g., barcode decoders) to detect indicia and / or decode indicia to determine the payload of the indicia. In some examples, the indicia decoder 112 is implemented by the processor 402. The indicia decoder 112 transmits the decoded payload of the indicia to a host system (e.g., via the processor 402) via a communication interface (such as (multiple) network interfaces 406 and / or (multiple) I / O interfaces 408). Alternatively, the indicia decoder 112 may be implemented by a host system separate from the handheld scanner 400. When the identified aiming point area is identified by the handheld scanner 400 and the indicia decoder 112 is implemented by the host system, only the image with the encoded indicia line needs to be passed to the indicia decoder 112 of the host system. However, one or more coordinates may be provided to the indicia decoder 112 separately from the image. Any additional images (e.g., as described below in conjunction with the image) used by the imaging engine 414 to identify the aiming point area for focus, gain, or exposure determination, etc. may be used to identify the aiming point area. Figure 6 The image data (described above) only needs to be processed by the handheld scanner 400 and does not need to be passed to the host system implementing the tag decoder 112. In this way, the amount of image data passed to the tag decoder 112 of the host system can be significantly reduced, and the overall responsiveness of the system including the handheld scanner 400 and the host system is significantly improved.

[0057] The example imaging assembly 412 includes an optical assembly 416 having any number and / or type(s) of imaging optics 418 to form an image of an object within the FOV 106 on the surface of the image sensor 104. The example imaging optics 418 include one or more lenses, filters, focus motors, apertures, lens holders, liquid lenses, or any other optical components.

[0058] The example imaging component 412 includes any number and / or type of focusing components 420 to focus the imaging component 412 on the object and / or marker. Example focusing components include motors, movable lenses, and liquid lenses. In some examples, the focusing component 420 is controlled by the imaging engine 414. However, the focusing component 420 can also be controlled by the processor 402.

[0059] The example imaging assembly 412 includes the example aiming light source 118 and any number and / or type(s) of aiming optics 422 to provide a clear illuminated aiming pattern, such as an aiming light spot 120, within the FOV 106. The aiming light source 118 may include one or more light sources, such as lasers, LEDs, etc. The example aiming optics 422 include one or more apertures, one or more diffractive elements, one or more refractive elements, etc.

[0060] The example imaging assembly 412 may include an illumination generator (not shown for clarity) to illuminate the indicia 126 to be imaged. The illumination generator may emit light in the FOV 106 to, for example, facilitate autofocus and / or improve the quality of images captured by the image sensor 104.

[0061] In the illustrated implementation, the aiming light source 118 is physically spaced apart from the image sensor 104 and / or may be angled relative to the image sensor 104 such that the aiming light pattern (e.g., the aiming light spot 120) generated by the aiming light source 118 and the aiming optics 422 along the optical axis 424 moves within the FOV 106 due to parallax effects as the imaging assembly 412, or more generally, as a handheld scanner including the imaging assembly 412 moves toward or away from the marker. For example, the optical axis 426 of the image sensor 104 and the optical axis 424 of the aiming light source 118 may be ten to fifteen millimeters apart. As the distance between the imaging assembly 412, or more generally, a handheld scanner including the imaging assembly 412, and the marker increases from a close distance 428 to a long distance 430, the aiming light pattern correspondingly moves within the FOV 106 from a first position 432 near the edge of the FOV 106 to a second position 434 closer to the center of the field of view 106. Thus, the location of the aiming light pattern in the image data 105 can be detected and used to determine the focal length so that a handheld scanner including the imaging assembly 412 can focus on the marking.

[0062] When a user directs a handheld scanner including an imaging assembly 412 as instructed so that an aiming light pattern (e.g., aiming light spot 120) is incident on an indicia to be decoded, and then actuates the handheld scanner to capture image data 105 representing an image including an indicia, the detected position of the aiming light pattern in the image data 105 is used by the indicia decoder 112 to select an initial region of the image data 105 in which the indicia decoder 112 initially searches for and attempts to decode an indicia. In this way, by detecting and using the position of the aiming light pattern in the image data 105 to locate an indicia, the time required for the indicia decoder 112 to locate and decode an indicia can be significantly reduced, and in some cases, failure of the indicia decoder 112 to locate and decode an indicia can be prevented.

[0063] Imaging engine 414 may be an ASIC or FPGA based processor. Alternatively, imaging engine 414 may be one or more programmable microprocessors, controllers, and / or any suitable type of processor capable of executing machine readable instructions. In some examples, processor 402 implements imaging engine 414.

[0064] In the illustrated implementation, the imaging engine 414 causes the image sensor 104 to capture the first image data 105 including the aiming light pattern and the second image data 105 not including the aiming light pattern. The imaging engine 414 detects the aiming light pattern in the first image data 105 based on the difference between the first image data 105 and the second image data 105, and identifies the aiming point area including the aiming light pattern, as described above in conjunction with Figure 1-Figure 3As described. The imaging engine 414: (i) determines a focal length based on the identified aiming point area by, for example, consulting the calibration table 134; (ii) controls the focusing component 420 to focus the imaging assembly 412 at the determined focal length; and (iii) causes the image sensor 104 to capture the third image data 105 when focused at the determined focal length. The imaging engine 414 provides data representing the identified aiming point area, and / or one or more coordinates of the identified aiming point area to the processor 402. The processor 402 encodes the one or more coordinates of the identified aiming point area in a mark row of the image 436 represented by the third image data 105, and provides the image 436 to the mark decoder 112 for starting to locate and decode the mark in the area of ​​the third image data 105 corresponding to the identified aiming point area.

[0065] Thus, when the aiming light point is not detected, the imaging engine 414 can sequentially attempt to decode the indicia using pictures captured for a limited sequence of fixed focal lengths. At each focal length, the imaging engine 414: (i) causes the focusing component 420 to focus the imaging assembly 412 at the current focal length; (ii) causes the image sensor 104 to capture image data 105 for the current focal length; (iii) identifies an assumed aiming light region in which the aiming light point is assumed to be located based on the current focal length and the parallax geometry between the aiming light source 118 and the image sensor 104; and (iii) provides data representing the identified assumed aiming point region, and / or one or more coordinates of the identified assumed aiming point region, to the processor 402. The assumed aiming point region for the current focal length and the parallax geometry can be determined based on the current focal length by querying the calibration table 134. The processor 402 encodes one or more coordinates of the identified aiming point area in a marker row of the image 436 represented by the image data 105 and provides the image 436 to the marker decoder 112 for use in beginning to locate and decode the marker in the area of ​​the image data 105 corresponding to the identified assumed aiming point area.

[0066] Figure 5 is a flow chart 500 representing an example method, hardware logic, machine readable instructions, or software for locating and decoding a small marker in a large image as disclosed herein. Figure 5 Any or all of the blocks in the above may be embodied in a non-transitory machine-readable storage medium for execution by one or more processors (such as Figure 4 In an executable program or (multiple) portions of an executable program in software and / or machine-readable instructions executed by processor 414 and / or processor 402). Additionally and / or alternatively, Figure 5 Any or all of the blocks in the may be implemented by one or more hardware circuits configured to perform the corresponding operation(s) without executing software or instructions.

[0067] Flowchart 500 begins at block 502, where imaging engine 414 and / or processor 402 detects an aiming light pattern that appears in the environment within the FOV. The aiming light pattern may be implemented by Figure 6 Additionally and / or alternatively, imaging engine 414 and / or processor 402 may detect the aiming light pattern by applying one or more image processing algorithms to image data of one or more images captured representing the environment within the FOV.

[0068] If an aiming light pattern is detected (block 504), the imaging engine 414 identifies an aiming point area corresponding to the detected aiming light pattern (block 506) and determines a focal length based on the identified aiming point area using, for example, the calibration table 134 (block 508). The imaging engine 414 and / or the processor 402 determines one or more coordinates of the identified aiming point area (block 510). In some examples, the one or more coordinates of the identified aiming point area represent a center or a corner of the aiming point area. The imaging engine 414 causes the focusing component 420 to focus the handheld scanner at the determined focal length (block 512), adjusts gain and / or exposure based on, for example, the captured image data 105 (block 514), and causes the image sensor 104 to capture image data 105 representing the environment within the FOV 106 that appears at the focal length, gain, and exposure (block 516).

[0069] The imaging engine 414 provides or sends the image data 105 and the one or more coordinates to the indicia decoder 112, causing the indicia decoder 112 to attempt to decode the indicia from the image data 105 captured at block 516, starting in the region of the image data 105 selected based on the one or more coordinates of the identified aiming point region (block 518). For example, the imaging engine 414 and / or the processor 402 encodes the one or more coordinates of the identified aiming point region into a row of indicia of an image 436 that includes the image data 105, and passes the image 436 to the indicia decoder 112, causing the indicia decoder 112 to attempt to decode the indicia from the image data 105, starting in the region of the image data 105 selected based on the one or more coordinates of the identified aiming point region. In some examples, the size of the region in which decoding begins is selected based on the expected barcode size at the current focus distance, and the location of the region is selected to be centered on the identified aiming point region. If the indicia is decoded (block 520), control exits from the example flowchart 500.

[0070] Returning to block 504, if the aiming light pattern is not detected (block 504), the imaging engine 414 selects a focal length from a plurality of fixed focal lengths (block 522), identifies the location of a presumed aiming light pattern if the aiming light pattern has been detected based on the selected focal length and the parallax geometry (block 524). For example, the imaging engine 414 queries the calibration table 134 based on the selected focal length. The imaging engine 414 identifies an aiming point area corresponding to the identified presumed aiming light pattern (block 526), ​​and control then passes to block 510 to attempt to decode the indicia from the image data 105 captured at the selected focal length. In some examples, the focal length is selected based on a predetermined focal length ramp. In some examples, the focal length is selected based on a contrast measurement of the captured image data 105.

[0071] Returning to block 520, if the indicia is not decoded (block 520), control returns to block 522 to select another focal length of the plurality of fixed focal lengths at which to attempt to decode the indicia. In some examples, the another focal length is selected based on a predetermined focal length ramp.

[0072] Figure 6 600 is a flow chart representing an example method, hardware logic, machine readable instructions, or software as disclosed herein for detecting an aiming light pattern present in an environment within a FOV. Flow chart 600 may be used in, for example, Figure 5 The aiming light pattern is detected at box 508. Figure 6 Any or all of the blocks in the block diagram may be embodied in a non-transitory machine-readable storage medium to be executed by one or more processors (such as Figure 4 In an executable program or portion(s) of an executable program in software and / or machine-readable instructions executed by processor 414 and / or processor 402). Additionally and / or alternatively, Figure 6 Any or all of the blocks in the may be implemented by one or more hardware circuits configured to perform the corresponding operation(s) without executing software or instructions.

[0073] Flowchart 600 begins at block 602, where aiming light source 118 is actuated or energized at imaging engine 414. Imaging engine 414 causes image sensor 104 to capture first image data 105 representing a first image of an environment appearing within a FOV of a handheld scanner including imaging engine 414 (block 604). In some examples, first image data 105 represents a first partial image of only a portion of the environment appearing within the FOV, wherein the aiming light pattern moves within only the portion of the environment in response to a change in distance between the handheld scanner and a marker. Imaging engine 414 divides first image data 105 into a first plurality of sub-images (block 606), and calculates a first plurality of total brightnesses for corresponding sub-images in the first plurality of sub-images by summing the brightness of first image data 105 for each sub-image (block 608).

[0074] Imaging engine 414 turns off or powers off aiming light source 118 (block 610) and causes image sensor 104 to capture second image data 105 representing an image of the environment within FOV 106 when aiming light source 118 is in an inactive or powered-off state (block 612). In some examples, second image data 105 represents a second partial image of only the portion of the environment that appears within FOV. Imaging engine 414 divides second image data 105 into a second plurality of sub-images (block 614). Imaging engine 414 calculates a second plurality of total brightnesses for corresponding sub-images in the second plurality of sub-images by summing the brightness of second image data 105 for each sub-image (block 616).

[0075] The imaging engine 414 calculates a plurality of differences between the first plurality of total brightness and the corresponding total measurements in the second plurality of total brightness. If a maximum difference in the plurality of differences satisfies a criterion (e.g., is greater than a threshold value) (block 620), then an aiming light pattern is detected (block 622), the location of the sub-image with the maximum difference is identified as the detected location of the aiming light pattern (block 624), and control exits from the example flowchart 600.

[0076] Otherwise, if the largest difference of the plurality of differences does not satisfy the criteria (block 620 ), then the aiming light pattern is not detected (block 626 ) and control exits from the example flowchart 600 .

[0077] When only a portion of the first and second images are used to detect the aiming light pattern, the partial first and second images can be captured at a higher frame rate than the full image, so that the relative position of the handheld scanner and the indicia to be decoded varies little between the two partial images. In this way, the accuracy of the detected position of the aiming light pattern is improved, and the likelihood of the indicia decoder locating and decoding the indicia based on the detected position of the aiming light pattern is also improved.

[0078] The above description relates to the block diagram of the accompanying drawings. The alternative implementation of the example represented by the block diagram includes one or more additional or alternative elements, processes and / or devices. Additionally or alternatively, one or more of the example boxes in the figure can be arranged, divided, rearranged or omitted. The components represented by the boxes in the figure are implemented by any combination of hardware, software, firmware and / or hardware, software and / or firmware. In some examples, at least one of the components represented by the box is implemented by a logic circuit. As used herein, the term "logic circuit" is explicitly defined as a physical device including at least one hardware component, which is configured (for example, via an operation based on a predetermined configuration and / or via the execution of a stored machine-readable instruction) to control one or more machines and / or perform the operation of one or more machines. Examples of logic circuits include one or more processors, one or more coprocessors, one or more microprocessors, one or more controllers, one or more digital signal processors (DSPs), one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more microcontroller units (MCUs), one or more hardware accelerators, one or more dedicated computer chips, and one or more system-on-chip (SoC) devices. Some example logic circuits, such as ASICs or FPGAs, are specially configured hardware for performing operations (e.g., one or more of the operations described herein and represented by flowcharts (if any) of the present disclosure). Some example logic circuits are hardware that executes machine-readable instructions to perform operations (e.g., one or more of the operations described herein and represented by flowcharts (if any) of the present disclosure). Some example logic circuits include a combination of specially configured hardware and hardware that executes machine-readable instructions. The above description relates to various operations described herein and flowcharts that may be attached to this document to illustrate the flow of those operations. Any such flowchart represents an example method disclosed herein. In some examples, the method represented by the flowchart implements the device represented by the block diagram. Alternative implementations of the example methods disclosed herein may include additional or alternative operations. In addition, the operations of alternative implementations of the methods disclosed herein may be combined, divided, rearranged, or omitted. In some examples, the operations described herein are implemented by machine-readable instructions (e.g., software and / or firmware) stored on a medium (e.g., a tangible machine-readable medium) for execution by one or more logic circuits (e.g., (multiple) processors). In some examples, the operations described herein are implemented by one or more configurations of one or more specially designed logic circuits (e.g., ASIC(s)). In some examples, the operations described herein are implemented by a combination of specially designed logic circuit(s) and machine-readable instructions stored on a medium (e.g., a tangible machine-readable medium) for execution by the logic circuit(s).

[0079] As used herein, each of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" are expressly defined as a storage medium (e.g., a disk of a hard drive, a digital versatile disk, an optical disk, a flash memory, a read-only memory, a random access memory, etc.) on which machine-readable instructions (e.g., program code in the form of software and / or firmware) are stored for any suitable period of time (e.g., permanently, for an extended period of time (e.g., while a program associated with the machine-readable instructions is being executed), and / or for a short period of time (e.g., while the machine-readable instructions are cached and / or in the process of being buffered)). Further, as used herein, each of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" are expressly defined to exclude propagating signals. That is, as used in any claim of this patent, none of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" may be construed as being implemented by a propagating signal.

[0080] In the above description, specific embodiments have been described. However, it is understood by those skilled in the art that various modifications and changes may be made without departing from the scope of the invention as set forth in the following claims. Therefore, the description and the accompanying drawings are to be considered in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present teachings. Additionally, the described embodiments / examples / implementations should not be interpreted as mutually exclusive, but should be understood as potentially combinable, if such combinations are permitted in any way. In other words, any feature disclosed in any of the aforementioned embodiments / examples / implementations may be included in any of the other aforementioned embodiments / examples / implementations.

[0081] These benefits, advantages, solutions to problems, and any element(s) that make any benefit, advantage, or solution occur or become more prominent are not to be construed as critical, required, or essential features or elements of any or all of the claims. The invention as claimed is defined solely by the appended claims, including any amendments made during the pendency of this application and all equivalents of those claims as issued.

[0082] In addition, in this document, relational terms such as first and second, top and bottom, etc., may be used alone to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises", "comprises", "has", "having", "includes", "including", "contains", "containing" or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device that includes, has, includes, or contains a list of elements includes not only those elements, but may also include other elements that are not explicitly listed or inherent to such process, method, article, or device. An element beginning with "comprises", "has", "includes", or "contains" does not exclude the presence of additional identical elements in the process, method, article, or device that includes, has, includes, or contains the element, without more constraints. The terms "a" and "an" are defined as one or more, unless expressly stated otherwise herein. The terms "substantially," "approximately," "approximately," "about," or any other version of these terms are defined as close as understood by one of ordinary skill in the art, and in one non-limiting embodiment, these terms are defined as within 10%, within 4%, within 1% in another embodiment, and within 0.5% in another embodiment. The term "coupled," as used herein, is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is "configured" in a certain way is configured in at least that way, but may also be configured in ways not listed.

[0083] In addition, unless expressly stated to the contrary, "or" refers to an inclusive or and not an exclusive or. For example, "A, B, or C" refers to any combination or subset of A, B, and C, such as (1) only A, (2) only B, (3) only C, (4) A and B, (5) A and C, (6) B and C, and (7) A, B, and C. As used herein, the phrase "at least one of A and B" is intended to refer to any combination or subset of A and B, such as (1) at least one of A, (2) at least one of B, and (3) at least one of A and at least one of B. Similarly, the phrase "at least one of A or B" is intended to refer to any combination or subset of A and B, such as (1) at least one of A, (2) at least one of B, and (3) at least one of A and at least one of B.

[0084] The abstract of the present disclosure is provided to allow the reader to quickly determine the nature of the present technical disclosure. This abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the above-mentioned specific implementations, it can be seen that various features are grouped together in various embodiments for the purpose of integrating the present disclosure. This method of disclosure should not be interpreted as reflecting the intention that the claimed embodiments require more features than those explicitly stated in the claims. On the contrary, as reflected in the following claims, the subject matter of the invention may lie in less than all the features of a single disclosed embodiment. Therefore, the following claims are thus incorporated into the specific implementations, wherein each claim represents itself as a subject matter claimed separately.

Claims

1. A method for locating a marker, the method comprises: identifying a aiming pattern area including a detected or assumed position of an aiming light pattern, wherein an offset between the detected or assumed position of the aiming light pattern and the center of the image data varies due to parallax with the distance from the handheld scanner to the marker; determining one or more coordinates of the aiming pattern area; capturing image data using an image sensor of the handheld scanner, the image data representing an image of an environment appearing in a field of view of the handheld scanner including the marker; encoding the one or more coordinates of the aiming pattern area into a marker row of the image; and providing the image having the marker row to a marker decoder such that the marker decoder attempts to decode a marker from the image data starting in an area of the image data selected based on the one or more coordinates of the aiming pattern area.

2. The method according to claim 1, wherein the one or more coordinates of the aiming pattern area represent positions of corners or the center of the aiming pattern area.

3. The method according to claim 1, further comprises: determining a focal length based on the identified aiming light pattern; and controlling one or more focusing components to focus the handheld scanner at the focal length, wherein the image data is captured when the handheld scanner is focused at the focal length.

4. The method according to claim 1, wherein identifying the aiming pattern area comprises: powering on an aiming light source to provide the aiming light pattern; using the image sensor to capture first image data representing a first partial image of only a part of the environment appearing in the field of view while the aiming light source is powered on, wherein the aiming light pattern moves within the part of the environment in response to a change in the distance between the handheld scanner and the marker; dividing the first image data into a first plurality of sub-images; summing the brightness of the first image data in each of the first plurality of sub-images to form a first plurality of total brightnesses for the corresponding sub-images of the first plurality of sub-images; powering off the aiming light source; using the image sensor to capture second image data representing a second partial image of only a part of the environment appearing in the field of view while the aiming light source is powered off; dividing the second image data into a second plurality of sub-images; summing the brightness of additional image data in each of the second plurality of sub-images to form a second plurality of total brightnesses for the corresponding sub-images of the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and the corresponding total brightnesses of the second plurality of total brightnesses; and identifying a first sub-image corresponding to the largest difference among the plurality of differences in the first plurality of sub-images as the aiming pattern area.

5. The method according to claim 4, wherein the first sub-image is identified as the aiming pattern area when the largest difference meets a criterion.

6. The method according to claim 1, wherein identifying the aiming pattern area comprises: powering on an aiming light source to provide the aiming light pattern; capturing, with the image sensor, first image data representing a first image of the environment appearing within the field of view when the aiming light source is powered; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; as well as A region of the first image data that includes the detected aiming light pattern is identified as the aiming pattern region.

7. The method of claim 1, wherein identifying the aiming pattern area include: Determine focal length; controlling one or more focusing components to focus the handheld scanner at the focal distance, wherein the image data is captured when the handheld scanner is focused at the focal distance; identifying the presumed position of the aiming light pattern based on the focal length and the parallax; as well as The aiming pattern area is identified to include the presumed location of the aiming light pattern.

8. The method of claim 7, wherein the focal length is determined based at least on a predetermined focal length ramp.

9. The method of claim 7, wherein when the mark is not decodable in the image data: Determine the second focal length; controlling the one or more focusing components to focus the handheld scanner at the second focal length; capturing, with the image sensor, additional image data representative of additional images of the environment appearing within the field of view when the handheld scanner is focused at the second focal length; identifying a second presumed position of the aiming light pattern based on the second focal length and the parallax; identifying a second aiming pattern region based on the second presumed position of the aiming pattern; determining one or more coordinates of the second aiming pattern area; encoding the one or more coordinates of the second aiming pattern area into a marked line of the additional image; as well as The additional image is provided to the indicia decoder such that the indicia decoder attempts to decode the indicia from the additional image data beginning in an area of ​​the additional image data selected based on the one or more coordinates of the second aiming pattern area.

10. A handheld scanner, include: Image sensor; Aim at the light source; as well as A processor, the processor being configured to: identifying an aiming pattern region including a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of the image data varies with distance from the handheld scanner to the marker due to parallax; determining one or more coordinates of the aiming pattern area; causing the image sensor to capture image data representing an image of an environment appearing within a field of view of the handheld scanner including the indicia; encoding the one or more coordinates of the aiming pattern area into a marked line of the image; as well as The image having the marker row is provided to a marker decoder separate from the handheld scanner, wherein the marker decoder is configured to attempt to decode the marker from the image data beginning in an area of ​​the image data selected based on the one or more coordinates of the aiming pattern area encoded in the marker row in response to receiving the image.

11. The handheld scanner of claim 10, wherein the one or more coordinates of the aiming pattern area represent locations of a corner or a center of the aiming pattern area.

12. The handheld scanner of claim 10, further comprising one or more focusing components for focusing the handheld scanner, wherein the processor is configured to: determining a focal length based on the identified aiming pattern area; and The one or more focusing components are controlled to focus the handheld scanner at the focal distance, wherein the image data is captured when the handheld scanner is focused at the focal distance.

13. The handheld scanner of claim 10, wherein the processor is configured to identify the aiming pattern area by: energizing the aiming light source to provide the aiming light pattern; causing the image sensor to capture first image data representing a first partial image of only a portion of an environment present within the field of view when the aiming light source is energized, wherein the aiming light pattern moves within the portion of the environment in response to a change in the distance between the handheld scanner and the marker; dividing the first image data into a first plurality of sub-images; aggregating the brightness of the first image data in each of the first plurality of sub-images to form a first plurality of total brightness for corresponding sub-images in the first plurality of sub-images; Turning off the power of the aiming light source; causing the image sensor to capture second image data representing a second partial image of only a portion of an environment present within the field of view when the aiming light source is de-energized; dividing the second image data into a second plurality of sub-images; summing the brightness of the second image data in each of the second plurality of sub-images to form a second plurality of total brightness for corresponding sub-images in the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and corresponding total brightnesses in the second plurality of total brightnesses; as well as A sub-image of the first plurality of sub-images corresponding to a maximum difference of the plurality of differences is identified as the aiming pattern region.

14. The handheld scanner of claim 10, wherein the processor is configured to identify the aiming pattern area by: Determine focal length; identifying the presumed position of the aiming light pattern based on the focal length and the parallax; and The aiming pattern area is identified to include the presumed location of the aiming light pattern.

15. The handheld scanner of claim 10, wherein the processor is configured to identify the aiming pattern area by: energizing an aiming light source to provide the aiming light pattern; capturing, with the image sensor, first image data representing a first image of the environment appearing within the field of view when the aiming light source is powered; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; as well as A region of the first image data that includes the detected aiming light pattern is identified as the aiming pattern region.

16. A non-transitory computer-readable storage medium storing computer-readable instructions which, when executed by one or more processors, cause a handheld scanner to: identifying an aiming pattern region including a detected position or an assumed position of an aiming light pattern, wherein an offset between the detected position or the assumed position of the aiming light pattern and a center of the image data varies with distance from the handheld scanner to the marker due to parallax; determining one or more coordinates of the aiming pattern area; causing an image sensor to capture image data representing an image of an environment appearing within a field of view of the handheld scanner including the indicia; encoding the one or more coordinates of the aiming pattern area into a marked line of the image; as well as The image with the indicia row is provided to a indicia decoder separate from the handheld scanner so that the indicia decoder attempts to decode the indicia from the image data beginning in an area of ​​the image data selected based on the one or more coordinates of the aiming pattern area.

17. The storage medium of claim 16, wherein the one or more coordinates of the aiming pattern area represent positions of corners or a center of the aiming pattern area.

18. The storage medium of claim 16, wherein the instructions, when executed by the one or more processors, cause the handheld scanner to: determining a focal length based on the identified aiming pattern area; and One or more focusing components are controlled to focus the handheld scanner at the focal distance, wherein the image data is captured when the handheld scanner is focused at the focal distance.

19. The storage medium of claim 16, wherein when executed by the one or more processors, the instructions cause the handheld scanner to identify the aiming pattern area by: energizing an aiming light source to provide the aiming light pattern; causing the image sensor to capture first image data representing a first partial image of only a portion of an environment present within the field of view when the aiming light source is energized, wherein the aiming light pattern moves within the portion of the environment in response to a change in the distance between the handheld scanner and the marker; dividing the first image data into a first plurality of sub-images; aggregating the brightness of the first image data in each of the first plurality of sub-images to form a first plurality of total brightnesses for respective sub-images in the first plurality of sub-images; Turning off the power of the aiming light source; causing the image sensor to capture second image data representing a second partial image of only a portion of an environment present within the field of view when the aiming light source is de-energized; dividing the second image data into a second plurality of sub-images; summing the brightness of the second image data in each of the second plurality of sub-images to form a second plurality of total brightness for corresponding sub-images in the second plurality of sub-images; calculating a plurality of differences between the first plurality of total brightnesses and corresponding total brightnesses in the second plurality of total brightnesses; as well as A sub-image of the first plurality of sub-images corresponding to a maximum difference of the plurality of differences is identified as the aiming pattern region.

20. The storage medium according to claim 16, It is characterized in that When executed by the one or more processors, the instructions cause the handheld scanner to identify the aiming pattern area by: Determine focal length; identifying the presumed position of the aiming light pattern based on the focal length and the parallax; and The aiming pattern area is identified to include the presumed location of the aiming light pattern.

21. The storage medium according to claim 16, It is characterized in that When executed by the one or more processors, the instructions cause the handheld scanner to identify the aiming pattern area by: energizing an aiming light source to provide the aiming light pattern; capturing, with the image sensor, first image data representing a first image of the environment appearing within the field of view when the aiming light source is powered; applying one or more image processing algorithms to the first image data to detect the aiming light pattern; as well as A region of the first image data that includes the detected aiming light pattern is identified as the aiming pattern region.

Citation Information

Patent Citations

  • System and method for document processing

    US20120031962A1