METHOD AND DEVICE FOR DECODING SPATIALLY RELATED SIGNS
The data acquisition device efficiently decodes and associates spatially related barcodes, addressing the inefficiencies of manual matching in existing technologies by automating the process of identifying and linking barcode pairs.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- ZEBRA TECHNOLOGIES CORP
- Filing Date
- 2019-10-14
- Publication Date
- 2026-05-21
AI Technical Summary
Existing barcode scanning technologies require time-consuming and error-prone manual intervention to match barcodes with specific units, especially when multiple barcodes representing different characteristics are present on a single object.
A data acquisition device with an image sensor and imaging controller that captures and decodes spatially related characters, determining predefined spatial relationships between character pairs and displaying decoded values along with indicators of related values.
Automatically identifies and associates spatially related barcode pairs, reducing manual intervention and improving scanning efficiency by accurately linking characters representing different characteristics of an object.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Symbols such as barcodes are used to identify and track items in a variety of applications. For example, different barcodes can be used to identify each individual item, such as units packed in a box, pallet, or similar container. The barcodes can be printed on a shipping list or similar document. Furthermore, the list may contain more than one barcode for each unit, with each barcode representing a different characteristic of that unit. Such barcodes can be scanned in bulk by image-based scanners, but matching the barcodes to a specific unit requires time-consuming and error-prone manual intervention.
[0002] US 9,524,411 B2 describes a data acquisition terminal and a method for processing multiple data elements and a symbol arranged at spaced locations on a target object, such as a package delivery label. It uses a solid-state image sensor with an array of image sensors to capture the light reflected from the data and symbol on the target object over a field of view; an actuator to actuate the image sensor to capture the light reflected from the data and symbol on the target object in a single actuation; and a control unit connected to the actuator and the image sensor to process the reflected light captured by the image sensor from the data and symbol.
[0003] US 2006 / 0261167A1 describes a reading device, such as a barcode reader, that detects at least one potential target, such as a barcode symbol, in its field of view and projects or transmits an indicator toward or near the potential target, containing information about that specific potential target. This information may include which target is currently active, the symbology used to encode the target, the reader's relative position to the target, the reader's ability to decode the target, and / or rank or sorting information regarding the target and neighboring targets. The reader can determine the order based on various parameters, including symbology, position in the field of view, size, etc., and may base this on and weight previous read and / or user history. BRIEF DESCRIPTION OF THE DIFFERENT VIEWS OF THE DRAWINGS
[0004] The accompanying figures, in which identical reference numerals denote identical or functionally similar elements in the individual views, are incorporated into the disclosure together with the following detailed description and form an integral part of the disclosure and serve to further illustrate embodiments of concepts comprising the claimed invention described herein and to explain various principles and advantages of these embodiments. Fig. Figure 1 is a schematic representation of a data acquisition device. Fig. Figure 2 is a block diagram of certain internal components of the data acquisition device of Fig. 1. Fig. Figure 3 is a flowchart of a procedure for decoding spatially related symbols. Fig. 4A is a diagram showing an image taken by the data acquisition device of Fig.1 during the execution of the procedure of Fig. 3 is recorded. Fig. 4B is a diagram showing boundary boxes derived from the image of Fig. 4A were derived. Fig. 5A is a flowchart of a procedure for carrying out block 325 of the procedure of Fig. 3. Fig. 5B and Fig. 5C are diagrams that illustrate the implementation of the procedure of Fig. Show 5A. Fig. 6A, Fig. 6B and Fig. 6C are diagrams that show further implementations of the procedure of Fig. Show 5A. Fig. 7 is a diagram showing a sequence of images taken during the execution of the procedure. Fig. 3 were recorded. Fig. Figure 8 is a diagram illustrating the execution of block 350 of the procedure of Fig. 3 shows. Fig.9A is a diagram showing another image taken by the data acquisition device of Fig. 1 during the execution of the procedure of Fig. 3 is recorded. Fig. 9B a diagram illustrating the execution of block 350 of the procedure of Fig. 3 after processing the image of Fig. 9A is shown.
[0005] Experts will recognize that elements in the figures are shown for the sake of simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to improve the understanding of embodiments of the present invention.
[0006] Where appropriate, the apparatus and process components have been represented by conventional symbols in the drawings, which show only those specific details relevant to understanding the embodiments of the present invention, so as not to obscure the disclosure with details that are readily apparent to those skilled in the field who refer to the present description. DETAILED DESCRIPTION
[0007] Examples disclosed herein relate to a method in a data acquisition device for decoding spatially related characters, the method comprising: controlling an image sensor on an imaging controller to acquire an image containing a plurality of characters; acquiring, on the imaging controller, image positions of each of the characters; on the imaging controller, for each of a plurality of character pairs: determining whether the image positions of the characters in the pair have a predefined spatial relationship; and, in response to determining that the characters in the pair have the predefined spatial relationship, displaying (i) values decoded from the characters in the pair, and (ii) an indicator that the decoded values are related.
[0008] Further examples disclosed herein relate to a data acquisition device comprising: a data acquisition module with an image sensor; an imaging controller associated with the data acquisition module, the imaging controller being configured to: control the image sensor to acquire an image containing a plurality of characters; acquire image positions of each of the characters; for each of a plurality of character pairs: determine whether the image positions of the characters in the pair have a predefined spatial relationship; and, in response to the determination that the characters in the pair have the predefined spatial relationship, present (i) values decoded from the characters in the pair, and (ii) an indicator that the decoded values are related.
[0009] Further examples disclosed herein are directed to a non-transitory computer-readable medium storing computer-readable commands that can be executed by an imaging controller of a data acquisition device to: control an image sensor of the data acquisition device to acquire an image containing a plurality of characters; acquire image positions of each of the characters; for each of a plurality of character pairs: determine whether the image positions of the characters in the pair have a predefined spatial relationship; and, in response to the determination that the characters in the pair have the predefined spatial relationship, present (i) values decoded from the characters in the pair, and (ii) an indicator that the decoded values are related.
[0010] Fig.Figure 1 shows an example of a data acquisition device 100 according to the teachings of this disclosure. The device 100 comprises a housing 104 that supports the various other components described herein. In some examples, the housing 104 is a single structure that supports all the other components of the device 100. In other examples, the housing 104 is implemented as two or more distinct (e.g., separable) housing components, such as a first component comprising a pistol grip with a mount configured to receive a second component comprising the housing of a smartphone, tablet computer, or the like.
[0011] The housing 104 carries a data acquisition module 108, which is configured to capture characters within a field of view 110. The data acquisition module 108 contains any suitable combination of light emitters, reflectors, and the like, which enables the data acquisition module 108 to capture characters. In the present example, the data acquisition module 108 is an image-based barcode scanner, and the data acquisition module 108 therefore contains one or more image sensors (e.g., a camera). Also in Fig.Figure 1 shows an object 112, such as a box, a palette, or the like, which carries a multitude of characters. In this example, the characters are shown on a sheet 116 attached to the object 112 and comprise characters of two types. Specifically, the sheet 116 contains five example characters 120a-1, 120a-2, 120a-3, 120a-4, and 120a-5 of the first type and three example characters 120b-1, 120b-2, and 120b-3 of the second type. In other examples, the characters 120 need not be shown on the sheet 116 but can instead be shown directly on the object 112, on a multitude of sheets, or other objects or the like.
[0012] The type of each character can be defined by a suitable symbology of the character and a feature of the data encoded by the character, or by a suitable combination of these. In the present example, the characters of the first type use Code 128 symbology and encode serial numbers, as indicated by the characters "Ser" at the beginning of each encoded value. The characters of the second type also use Code 128 symbology and encode MAC (Media Access Control) addresses, indicated by the characters "Mac" at the beginning of each encoded value. Characters 120 and 124, for example, can correspond to units of network devices (e.g., routers) included in object 112. A variety of other types of characters can also be used, as will now be clear to those skilled in the art. For example, in other embodiments, some or all of the characters 120 can use two-dimensional symbologies (e.g., PDF417) instead of those shown in the example. Fig.The one-dimensional Code 128 symbology shown in Figure 1 can be used. Furthermore, any variety of data encoded in the Code 120 characters can be used to distinguish between the types.
[0013] As in Fig. As can be seen in Figure 1, certain characters 120 on sheet 116 are related to each other because they encode data corresponding to the same object. For example, characters 120a-2 and 120b-1 encode a serial number and a MAC address, respectively, for a single router within object 112. Similarly, characters 120a-3 and 120b-2 encode a serial number and MAC address for another router, while characters 120a-4 and 120b-3 encode a serial number and MAC address for yet another router. Characters 120a-1 and 120a-5 encode serial numbers for two other items that do not have MAC addresses (e.g., lengths of cable included with the aforementioned routers).
[0014] As explained in more detail below, the device 100 is configured to capture and decode the characters 120 and, based on the character types and their relative spatial orientation on sheet 116, to determine whether any of the characters 120 are related to each other (e.g., correspond to the same physical object, such as the routers mentioned above). For example, the device 100 can be configured to recognize that characters 120a-2 and 120b-1 are related by detecting that they are horizontally aligned (i.e., that the lengths La-2 and Lb-1 of characters 120a-2 and 120b-1 are collinear). The device 100 is further configured to present the results of a scan session, displaying all such relationships detected between the captured characters 120.
[0015] In Fig.Figure 2 shows a schematic representation of certain internal components of the device 100. The device 100 comprises a central processing unit (CPU), also referred to as the processor 200, which is connected to a non-transient, computer-readable storage medium, such as a memory 204. The memory 204 comprises any suitable combination of volatile memory (e.g., random-access memory (“RAM”)) and non-volatile memory (e.g., read-only memory (“ROM”), electrically erasable programmable read-only memory (“EEPROM”), flash memory). In general, the processor 200 and the memory 204 each comprise one or more integrated circuits.
[0016] The data acquisition device 100 also includes at least one input device 208 connected to the processor 200. As a person skilled in the art understands, the input device 208 is configured to receive inputs and to supply data representing the received inputs to the processor 200. In the present example, the input device 208 includes a trigger carried by the housing 104, upon actuation of which the processor 200 controls the data acquisition module 108 to initiate an acquisition session for capturing the characters 120. The input device 208 may also include a touchscreen, a microphone, a keypad, and the like.
[0017] The device 100 also includes at least one output device 212 connected to the processor 200. In this example, the output device 212 includes a display supported by the housing 104. The display can be a flat panel display, such as an organic light-emitting diode-based display (e.g., an active-matrix OLED or AMOLED display). In other examples, however, the display can be implemented using any of a variety of display technologies. In other examples (not shown), the output device 212 also includes a speaker, a notification LED, and the like, or any combination thereof.
[0018] The device 100 also includes a communication interface 216, which is connected to the processor 200. The communication interface 216 comprises any suitable hardware (e.g., transmitters, receivers, network interface controllers, and the like) that enables the device 100 to communicate with other computer devices via a network connection or with the other computer devices themselves. The specific components of the communication interface 216 are selected depending on the type of network or other connection over which the device 100 is to communicate. Examples of such networks and / or connections include those based on the Bluetooth™ standard, the IEEE 802.11 family of standards, wired connections (e.g., Ethernet), mobile networks, and the like.
[0019] The various components of the device 100 are interconnected, for example, via one or more communication buses. The device 100 also includes a power source for supplying the aforementioned components with electrical current. In the present example, the power source comprises a battery; in other examples, the power source comprises a wired connection to a wall outlet or another external power source in addition to or instead of the battery.
[0020] Memory 204 stores a multitude of applications, each containing a multitude of computer-readable instructions that can be executed by Processor 200. The execution of the aforementioned instructions by Processor 200 causes Device 100 to implement certain functionality discussed herein. Each application is therefore referred to in the following discussion as being configured to perform this functionality.
[0021] In the present example, memory 204 stores a capture control application 220, also referred to here as application 220. Device 100 is configured to initiate and terminate capture sessions via the execution of application 220 by processor 200, and during such capture sessions, it captures characters such as those shown in Fig.The processor 200, as configured via the execution of application 220, detects the characters shown in Figure 120 and recognizes spatial relationships between them. This processor 200 can also be referred to as the imaging controller. In other examples, some or all of the functions described below are implemented by the data acquisition module 108 itself (e.g., by a microcontroller integrated within the data acquisition module 108) rather than by the processor 200. In other words, the data acquisition module 108 itself can implement the imaging controller mentioned above. In further examples, the functionality described herein is implemented as one or more specifically configured hardware elements, such as field-programmable gate arrays (FPGAs) and / or application-specific integrated circuits (ASICs), in addition to or instead of the data acquisition module 108 and the processor 200.
[0022] In Fig.Figure 3 shows a method 300 for decoding spatially related characters. The method 300 is described in connection with its implementation by the device 100, with reference to the components of the device 100, as shown in Figure 3. Fig. 2 shown.
[0023] In block 305, the data acquisition device 100 is configured to capture an image containing a multitude of characters. In the present example, it is assumed that the device 100 captures an image containing the entirety of the in Fig. The execution of block 305 can be initiated, for example, as a reaction to the actuation of the input device 108 (e.g., the trigger mentioned above).
[0024] After the image has been captured, the device 100 is configured to detect the positions of the characters 120 in the image and decode the characters (i.e., extract decoded values from each character 120). Fig. Figure 4A shows image 400, which depicts sheet 116 as recorded in block 305. Image 400 is in Fig. Figure 4B is shown, with the characters 120 themselves omitted for clarity and instead the positions of the individual characters as detected by the device 100 being shown. The positions of the characters 120 are represented as bounding boxes 420 with numbers corresponding to the positions shown in Figure 4B. Fig. The delimiters shown in Figure 1 correspond to the characters 120a-1 to 120a-5. Thus, delimiters 420a-1 to 420a-5 each correspond to characters 120a-1 to 120a-5, and delimiters 420b-1 to 420b-3 each correspond to characters 120b-1 to 120b-3. The delimiters 420 are in Fig.4B are represented graphically, but do not necessarily have to be stored graphically in the device 100. For example, each boundary box 420 can be stored as a set of four pairs of pixel coordinates that define the position of a corner point of the boundary box 420.
[0025] Device 100 is also configured to decode the characters contained in the image captured in block 305, as mentioned above. Thus, as in Fig. Figure 4 shows a decoded value in conjunction with each boundary box 420 (e.g., the value “Ser001dkfi” in conjunction with boundary box 420a-1).
[0026] In general, after the execution of Block 305, the device 100 is configured to evaluate each of a plurality of pairs of characters recognized and decoded in Block 305 to determine whether each pair has a predefined spatial relationship. In the present example, pairs of characters are selected based on configuration settings that define code types and mappings between them.
[0027] Back to Fig. In block 310, processor 200 is configured to retrieve configuration settings associated with application 220. These configuration settings define character types and the mappings between those character types. Table 1 below shows an example set of configuration settings. Table 1: Example configuration settings name symbolism string Associated Serial Code-128 Ser MAC MAC Code-128 Mac
[0028] As seen above, the configuration settings in Table 1 define two character types, the first ("Serial") corresponding to character 120a and the second ("MAC") corresponding to character 120b. In addition to defining a symbology for each type and a string encoded in the characters of each type, the configuration settings also specify a related type for at least one type. Thus, in the example above, the configuration settings indicate that the "Serial" type is related to the "MAC" type. In some examples, the MAC type may also include an indication that it is related to the Serial type. However, as will become clear in the discussion below, the configuration settings only need to provide an indicator of a related type in conjunction with one of a pair of related character types.
[0029] In block 315, device 100 is configured to select the next character 120 of a first type specified in the configuration settings. The "first" type referred to here is a type of character for which the configuration settings contain an associated character type. In this example, device 100 is therefore configured in block 315 to select one of the characters 120a. Any of the characters 120a can be selected in block 315. For illustration, in this example, when block 315 is executed, character 120a-1 (which encodes the value "Ser001dkfi") is selected in block 315.
[0030] In block 320, device 100 is configured to select the next character 120 of a second type. The second type is the type identified in the configuration settings as related to the first type. Therefore, in this example, device 100 is configured in block 315 to select one of the characters 120b corresponding to the MAC type specified in the configuration settings as related to the Serial type. For illustration, it is assumed that device 100 selects character 120b-1 in block 320.
[0031] The characters selected in blocks 315 and 320 form a pair of characters, and device 100 in block 325 is then configured to determine whether the selected pair of characters 120 has a predefined spatial relationship. That is, device 100 is configured to determine whether the characters 120 in the pair have a predefined position relative to each other, as indicated by the bounding boxes 420.
[0032] One or more predefined spatial relationships can be evaluated in block 325. In the present example, the device 100 is configured to determine whether the pair of characters selected in blocks 315 and 320 is aligned such that their lengths are collinear. That is, if the sheet 116 is in the Fig. 1 and Fig.In the orientation shown in Figure 4, the device 100 is configured to determine whether the pair of characters is horizontally aligned. As mentioned earlier, horizontally aligned characters 120 have lengths (e.g., those shown in Figure 4). Fig. The lengths La-2 and Lb-1 shown in Figure 1, measured along the upper edges of characters 120a-2 and 120b-1 respectively, are essentially collinear. In other words, the characters 120 appear in essentially the same position along the length of sheet 116 and in different positions across the width of sheet 116.
[0033] Several mechanisms are conceivable for carrying out the determination in block 325. In the present embodiment of method 300, the determination in block 325 is carried out by determining the area of a quadrilateral with two opposite sides, which are defined by the respective edges of the characters 120 selected in blocks 315 and 320. Fig.Figure 5 shows a method 500 by which it is determined whether the pair of characters has the predefined spatial relationship. In block 505, the device 100 is configured to select an edge of each of the characters 120 in the pair to be evaluated. In the present example, as in Fig. As shown in 5B, the upper edges 520a-1 and 520b-1 of the boundary boxes 420a-1 and 420b-1 are selected.
[0034] In block 510, the device 100 is configured to determine the area of a quadrilateral defined by the edges selected in block 505. In particular, as shown in Fig. As shown in Figure 5C, the device 100 is configured to generate segments 524 that connect the ends of the edges 520, so that the segments 524 together with the edges 520 form a quadrilateral 528. The device 100 is configured to scan the interior surface of the quadrilateral 528 (i.e., the shaded area in Figure 5C). Fig.5C). In block 515, the device 100 is configured to determine whether the area determined in block 510 exceeds a predefined threshold.
[0035] The top edges of the horizontally aligned characters 120 define a quadrilateral with an area that is zero or essentially zero, since the top edges are collinear. Therefore, the threshold in block 515 is set within a predefined tolerance of zero. The area can be specified, for example, as the number of square pixels, as a percentage of the pixel area of image 400, as a percentage of the area of the bounding boxes 420, or the like. In the present example, the threshold in block 515 is defined as a fraction (e.g., 10%) of the combined area of the bounding boxes 420 corresponding to the characters selected in blocks 315 and 320. As in Fig.As can be seen in 5C, the area of quadrilateral 528 exceeds 10% of the combined areas of the in Fig. The limit boxes 420a-1 and 420b-1 shown in Figure 5B are present. The determination in block 515 is therefore positive, and the device 100 continues with block 330. That is, the determination in block 325 is negative.
[0036] Following a negative determination in block 325, device 100 moves to block 330 and determines whether there are still characters 120 of the second type to be processed. In the present example, the determination is positive because characters 120b-2 and 120b-3 have not been processed. Therefore, device 100 returns to block 320 and is configured to select a new pair of characters, including character 120a-1 (i.e., the same character 120 of the first type) and character 120b-2.
[0037] Device 100 is then configured to repeat block 325 for the current pair. As can now be seen, the determination in block 325 is negative for both the pair with characters 120a-1 and 120b-2 and the pair with characters 120a-1 and 120b-3. Fig. Figure 6A shows a quadrilateral 600 formed by the edges 520a-1 and 620b-2 of the boundary boxes 420a-1 and 420b-2. As shown from Fig. As can be seen in 6A, the area of the quadrilateral 600 exceeds the aforementioned threshold of 10% of the combined area of the boundary boxes 420a-1 and 420b-2. Fig. Figure 6B shows a quadrilateral 604 formed by the edges 520a-1 and 620b-3 of the boundary boxes 420a-1 and 420b-3. The area of quadrilateral 604, like that of quadrilateral 600, exceeds the threshold mentioned above.
[0038] Back to Fig. 3 is after the evaluation of the data in the Fig. 6A and Fig.In Figure 6B, the pairs of bounding boxes 420 shown, device 100 is configured to execute another instance of block 330. Upon further execution of block 330, the determination is negative, as there are no further characters 120 of the second type (i.e., the MAC type in this example) to process. In response to a negative determination in block 330, device 100 proceeds to block 340.
[0039] In block 340, device 100 is configured to determine whether there are any more characters 120 of the first type (i.e., the serial type in this example) to be processed. In this example of carrying out procedure 300, the determination in block 340 is positive, since characters 120a-2 through 120a-5 have not been processed. Device 100 therefore returns to block 315 and selects the next character 120 of the first type. For example, in block 315, device 100 might select character 120a-2. In block 320, the next character 120 of the second type is selected (e.g., character 120b-1). In other words, device 100 is configured to iterate through the characters 120 of the second type for each character 120 of the first type.
[0040] The execution of block 325 is then repeated 120 times for the current pair of characters selected in blocks 315 and 320. Fig.Figure 6C shows the execution of block 325 for characters 120a-2 and 120b-1. As in Fig. Figure 6C shows a quadrilateral 608 formed by the edges 520a-2 and 520b-1 of the boundary boxes 420a-2 and 420b-1, respectively. This quadrilateral is essentially one-dimensional because the edges 520a-2 and 520b-1 are essentially collinear. Therefore, the area of the quadrilateral is essentially zero and is below the threshold mentioned above. Return to Fig. Therefore, the determination in block 325 is positive.
[0041] In response to a positive determination in block 325, the device 100 in block 335 is configured to store the values decoded from the pair of characters 120 selected in blocks 315 and 320, along with an indicator that the values are related. A wide variety of indicators are conceivable. For example, the indicator can contain a data field that is associated with at least one of the related decoded values and contains a reference to the other related decoded value. The reference can include a memory location of the other decoded value or the other decoded value itself. In further examples, the decoded values can be stored in a data store in memory 204, which defines pairs of associated fields.Thus, storing the characters in a pair of the aforementioned fields, instead of in separate pairs (where the other member of the pair is empty), serves as an indicator in block 335.
[0042] After the execution of block 335, the device 100 proceeds to block 340, and the above process is repeated until all characters 120 have been processed. After processing all characters 120 captured in block 305, a value decoded from each character is stored in memory 204, with or without an indicator that it is related to another character, according to the determination(s) in block 325 for pairs containing that value. If the determination in block 340 is negative, indicating that all characters 120 captured in block 305 have been processed and either paired with related characters or remained unpaired by one or more negative determinations in block 325, the device 100 proceeds to block 345.
[0043] In block 345, the device 100 is configured to proceed to block 345 and determine whether the scan session is complete. In some examples, the determination in block 345 is the same as the determination in block 340. That is, if there are no more indicators of the first type to process, the scan session is automatically terminated. Block 345 can therefore be omitted in such embodiments. In other embodiments, the device 100 operates in a multi-frame acquisition mode in which more than one image in block 305 can be acquired during a single scan session. Such a mode can be used if the sheet 116 cannot be acquired in a single image, for example, due to its physical size.
[0044] In Fig.Figure 7 shows an example sheet 716, which bears the characters 120a-1 to 120a-5 and 120b-1 to 120b-3 mentioned above, as well as additional characters 120a-6, 120a-7, 120b-4, and 120b-5. Sheet 716 is too large to be captured in a single image, and the device 100 is therefore configured to capture a multitude of images (e.g., when the viewing area 108 is swiped across sheet 716). In particular, two images 700-1 and 700-2 are shown, which comprise overlapping portions of sheet 716. Each image 700 is processed by the execution of blocks 310-340. The device 100 can also be configured to decode the characters contained in block 305 in response to the capture of an image, but to retain for further processing only those that have not been previously processed via blocks 315-340 in order to avoid duplicate output.
[0045] Sheet 716 also contains a character 704, which encodes a quantity (e.g., a data matrix barcode in the present example). The quantity encoded by character 704 indicates the number of items in object 112 that corresponds to the expected number of serial characters 120 (i.e., characters 120a). In such embodiments, the determination in block 345 may include a determination of whether the number of decoded and processed characters 120a matches the number encoded in the quantity indicator 704. If the determination in block 345 is negative, the device 100 is configured to return to block 305 (e.g., to capture another image). If the determination in block 345 is positive, the device 100 proceeds to block 350.
[0046] In block 350, the device 100 is configured to present the values decoded from the characters 120. Presenting the decoded values can involve one or a combination of the following: controlling the output device 212 to present the values (e.g., to display the values on a screen), transmitting the values to another computing device, or similar actions. Values decoded from pairs of related characters 120 (i.e., pairs of characters 120 for which the determination in block 325 is positive) are presented with an indication that they are related. Values decoded from characters 120 for which no positive determination has been made in block 325 are presented without such an indicator.
[0047] Fig.Figure 8 shows the device 100 after the execution of block 350, wherein the output device 212 (in this example a display) is controlled by the processor 200 to present the values decoded from the characters 120, including the graphic indicators 800-1, 800-2, 800-3, which indicate that certain pairs of values are related to each other. The remaining values (corresponding to characters 120a-1 and 120a-5) are shown without such indicators.
[0048] Variations of the above apparatus and method are conceivable. For example, the implementation of method 300 can be extended to detect spatial relationships between more than two types of characters. Fig.Sheet 9A is a 900 sheet with three types of characters: 120a, 120b (as described above), and 120c. The 120c characters encode colors for routers or other equipment that correspond to the serial numbers and MAC addresses encoded by the 120a and 120b characters, respectively. For example, the string "CLBlack" indicates the color of a router with the serial number string "Ser002dkfi" and the MAC address string "Mac21353".
[0049] The following Table 2 shows example configuration settings for use when decoding the characters of sheet 900. Table 2: Example configuration settings name symbolism string Associated Serial Code-128 Ser MAC; Color MAC Code-128 Mac Color Code-128 CL
[0050] As seen above, the configuration settings indicate that the serial number type is related to both the MAC address and color types. For example, device 100 can be configured to execute blocks 320-335 for each serial number type to determine if a related character of MAC type exists. However, before proceeding to the next serial type character, device 100 is configured to repeat blocks 320-335 for the third type (color in this example). Fig. Figure 9B shows an exemplary partial representation of the decoded values from sheet 900, including graphic indicators 904 and 908, which show triplets of related values.
[0051] In further variations, the device 100 can be configured to evaluate a variety of different spatial relationships in block 325, in addition to or instead of the horizontal alignment described above. For example, the device 100 can be configured to detect a vertical alignment (i.e., that the heights of two or more characters 120 are collinear) of characters by selecting left or right edges of the characters and generating a quadrilateral from them, as described in connection with method 500. The device 100 can also be configured to apply additional thresholds in block 325, such as a distance threshold. For example, the device 100 can be configured to determine the centroid of each bounding box 420 and a distance between the centroids of the bounding boxes 420 of the characters selected in blocks 315 and 320.The determination in block 325 can only be positive if the alignment criterion (e.g. the area of the quadrilateral, as described above) is met and if the distance is below a predetermined threshold indicating that the pair of characters is adjacent.
[0052] Specific embodiments have been described in the foregoing description. However, a person skilled in the art will recognize that various modifications and alterations can be made without altering the scope of protection of the invention as defined in the claims below. Accordingly, the description and figures are to be regarded in an illustrative rather than a limiting sense, and all such modifications are to be included within the scope of the present teachings.
[0053] The benefits, advantages, solutions to problems, and all elements that may lead to the occurrence or enhancement of a benefit, advantage, or solution are not to be understood as critical, necessary, or essential features or elements in some or all of the claims. The invention is defined solely by the attached claims, including any amendments made during the pendency of this application and all equivalents of the granted claims.
[0054] Furthermore, in this document, relational terms such as first and second, upper and lower, and the like may be used merely to distinguish one entity or action from another, without necessarily requiring or implying any actual relationship or order of such an entity or action between such entities or actions. The expressions "includes," "comprising," "has," "have," "exhibits," "exhibiting," "contains," "containing," or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, procedure, product, or device that includes, has, exhibits, or contains a list of elements may not only have those elements but may also have other elements not expressly listed or inherent in such process, procedure, product, or device. An element that "includes," "has," "exhibits," or "contains"The use of the term "a" does not, without further limitations, preclude the existence of additional identical elements in the process, method, product, or device that comprises, has, features, or contains the element. The terms "a" and "a" are defined as one or more unless expressly stated otherwise herein. The terms "essentially," "generally," "approximately," "about," or any other version thereof are defined in such a way as to be understood by a person skilled in the art in this field, and in one non-restrictive embodiment, the expression is defined as within 10%, in another embodiment as within 5%, in yet another embodiment as within 1%, and in yet another embodiment as within 0.5%. The term "coupled," as used herein, is defined as connected, but not necessarily directly and not necessarily mechanically.A device or structure that is “designed” in a certain way is at least also designed in that way, but may also be designed in ways that are not listed.
[0055] It is understood that some embodiments may include one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, custom processors, and field-programmable gate arrays (FPGAs), and uniquely stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuitry, some, most, or all of the functions of the method and / or device described herein. Alternatively, some or all of the functions may be implemented by a state machine that does not have any stored program instructions, or in one or more application-specific integrated circuits (ASICs) in which each function, or some combinations of certain functions, are implemented as user-defined logic.Of course, a combination of the two approaches can be used.
[0056] Furthermore, an embodiment may be implemented as a computer-readable storage medium on which computer-readable code is stored for programming a computer (which, for example, includes a processor) to execute a method as described and claimed herein. Examples of such computer-readable storage media include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (read-only memory), a PROM (programmable read-only memory), an EPROM (erasable programmable read-only memory), an EEPROM (electrically erasable programmable read-only memory).Furthermore, it is assumed that an average professional, regardless of possible significant effort and many design choices motivated, for example, by available time, current technology, and economic considerations, will be readily able to generate such software instructions, programs, and ICs with minimal experimentation if guided by the concepts and principles disclosed herein.
[0057] The summary of the disclosure is provided to enable the reader to quickly ascertain the essence of the technical disclosure. It is provided with the understanding that it is not intended to be used for interpreting or limiting the scope or meaning of the claims. Furthermore, it can be inferred from the preceding detailed description that various features in different embodiments have been summarized for the purpose of streamlining the disclosure. This type of disclosure is not to be interpreted as reflecting the intention that the claimed embodiments require more features than are expressly stated in each claim. Rather, as the following claims demonstrate, the inventive step lies in fewer than all the features of a single disclosed embodiment.The following claims are hereby incorporated into the detailed description, each claim being a separately claimed subject matter.
Claims
[1] Method in a data acquisition device (100) for decoding spatially related characters (120), the method comprising: Controlling an image sensor on an imaging controller to capture an image containing a large number of characters (120); Detect, at the imaging control, image positions of each of the characters (120); at the imaging control for each of a multitude of character pairs: Determine whether the image positions of the characters (120) in the pair have a predefined spatial relationship; and in response to determining that the characters (120) in the pair have the predefined spatial relationship, presenting (i) values decoded from the characters (120) in the pair, and (ii) an indicator that the decoded values are related. [2] Method according to claim 1, further comprising: In response to determining that a character (120) does not have the predefined spatial relationship, presenting, at the imaging control, a value decoded from the character (120) without the indicator. [3] Method according to claim 1, wherein the presentation of the values and the indicator comprises controlling a display of the data acquisition device (100) to display the values and the indicator. [4] Method according to claim 1, wherein the image positions include boundary boxes (420). [5] Method according to claim 4, wherein determining whether the image positions of the characters (120) in the pair have the predefined spatial relationship comprises: Select, at the imaging control, a predefined edge (520) of each bounding box (420) of the pair of characters (120); and Determine whether the edges (520) are essentially collinear. [6] Method according to claim 5, wherein determining whether the edges (520) are substantially collinear comprises: Joining the edges (520) at the imaging control to create a quadrilateral (528); Determining a surface area of the quadrilateral (528); and Determine whether the surface area of the quadrilateral (528) exceeds a threshold, where a surface area exceeding the threshold indicates that the edges (520) are not collinear. [7] Method according to claim 1, wherein each character (120) has a length and a height; and wherein the spatial relationship is at least one of: (i) the lengths of the pair of characters (120) are substantially collinear, and (ii) the height of the pair of characters (120) is substantially collinear. [8] Method according to claim 1, further comprising selecting the character pairs at the image processing control by: Retrieving a configuration setting that defines first and second character types (120); Decoding the characters (120) to obtain the decoded values; Selecting a primary character (120) with a decoded value corresponding to the first type; and Select, for each pair, respective secondary characters (120) with decoded values corresponding to the second type. [9] Method according to claim 8, wherein the types of characters (120) comprise predefined character strings. [10] Data acquisition device (100), comprising: a data acquisition module (108) with an image sensor; an imaging controller connected to the data acquisition module (108), wherein the imaging controller is configured to: Controlling the image sensor to capture an image containing a large number of characters (120); Recognizing image positions of each of the characters (120); for each of a multitude of character pairs: Determine whether the image positions of the characters (120) in the pair have a predefined spatial relationship; and in response to determining that the characters (120) in the pair have the predefined spatial relationship, presenting (i) values decoded from the characters (120) in the pair, and (ii) an indicator that the decoded values are related. [11] Data acquisition device (100) according to claim 10, wherein the imaging control is further configured to: In response to determining that a character (120) does not have the predefined spatial relationship, presenting a value decoded from the character (120) without the indicator. [12] Data acquisition device (100) according to claim 10, further comprising a display; wherein the imaging control is further configured to control the display to show the values and the indicator. [13] Data acquisition device (100) according to claim 10, wherein the image positions include boundary boxes (420). [14] Data acquisition device (100) according to claim 13, wherein the imaging control is further configured to determine whether the image positions of the characters (120) in the pair have the predefined spatial relationship in order to: to select a predefined edge (520) of each bounding box (420) of the pair of characters (120); and to determine whether the edges (520) are essentially collinear. [15] Data acquisition device (100) according to claim 14, wherein the imaging control is further configured to determine whether the edges (520) are substantially collinear in order to: to join the edges (520) together to create a quadrilateral (528); to determine a surface area of the quadrilateral (528); and to determine whether the surface area of the quadrilateral (528) exceeds a threshold, wherein a surface area exceeding the threshold indicates that the edges (520) are not collinear. [16] Data acquisition device (100) according to claim 10, wherein each character (120) has a length and a height; and wherein the spatial relationship is at least one of: (i) the lengths of the pair of characters (120) are substantially collinear, and (ii) the height of the pair of characters (120) is substantially collinear. [17] Data acquisition device (100) according to claim 10, wherein the imaging control is further configured to select the character pairs in order to: to retrieve a configuration setting that defines first and second character types (120); to decode the characters (120) in order to obtain the decoded values; to select a primary character (120) with a decoded value corresponding to the first type; and to select for each pair respective secondary characters (120) with decoded values corresponding to the second type. [18] Data acquisition device (100) according to claim 17, wherein the types of characters (120) comprise predefined character strings. [19] Non-transitory computer-readable medium storing computer-readable commands that can be executed by an imaging controller of a data acquisition device (100) to: to control an image sensor of the data acquisition device (100) to capture an image containing a plurality of characters (120); To identify the image positions of each of the characters (120); for each from a multitude of character pairs: to determine whether the image positions of the characters in the pair have a predefined spatial relationship; and in response to determining that the characters (120) in the pair have the predefined spatial relationship, (i) values decoded from the characters (120) in the pair, and (ii) an indicator that the decoded values are related.