Two-dimensional code, method and system for generating two-dimensional code, and method and system for reading two-dimensional code

The two-dimensional code system uses distinct identification marks and bijective mappings to enhance data representation and capacity, overcoming limitations of existing codes with asymmetric symmetry and efficient ink usage.

JP2026504317AActive Publication Date: 2026-02-05AIRES INVESTMENT HOLDINGS PTE LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024542315
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-05-19
Publication Date
2026-02-05
Estimated Expiration
2043-05-19

AI Technical Summary

Technical Problem

Existing two-dimensional codes are limited by optical technology advancements, requiring more convenient and efficient machine-readable alternatives.

Method used

A two-dimensional code system utilizing distinct optically readable identification marks, including a reference identification mark and data identification marks, represented by distances and angular displacements, with asymmetric or single-line symmetry, and bijective mappings for data representation.

Benefits of technology

Enables unique data representation and efficient use of ink, addressing alignment and data capacity issues, allowing for diverse design and functionality with enhanced data capacity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026504317000001_ABST
    Figure 2026504317000001_ABST
Patent Text Reader

Abstract

The two-dimensional code has a plurality of optically readable distinct identification marks arranged in a two-dimensional area, wherein the plurality of identification marks includes a reference identification mark and further includes at least one data identification mark, each representing at least one data value, wherein the at least one data value is represented by at least one distance between the reference identification mark and the at least one data identification mark, and also by at least one angular displacement of the at least one data identification mark relative to a reference direction, wherein the reference direction is based on at least one of the plurality of identification marks being asymmetric or including at most one line of symmetry.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] FIELD OF THE INVENTION Embodiments of the present invention relate to machine-readable two-dimensional (2D) codes, such as two-dimensional images containing machine-readable data. More particularly, embodiments of the present invention relate to representations of two-dimensional codes, methods and systems for generating two-dimensional codes, and methods and systems for reading two-dimensional codes.

[0002] Since the introduction of barcodes in the 20th century, two-dimensional codes have been used to facilitate commerce, from manufacturing to sales. The development and evolution of two-dimensional codes is inevitably closely linked to the optical technology available and widespread at the time. For example, in the case of barcodes, the development of scanners made them widely available. Since the introduction of barcodes, two-dimensional codes have undergone significant improvements. One example of such improvements is the QR code, developed by Denso Wave Inc., which can store much larger amounts of data than standard barcodes. Today, there are a wide variety of two-dimensional codes designed for different purposes and utilizing a wide range of characteristics, including color and many others. Summary of the Invention

[0003] Barcodes, QR codes, and other two-dimensional codes are still widely used today, but as optical technology advances and improves every day, the need for alternative, more convenient, machine-readable codes is increasing.

[0004] According to a first aspect of the present invention, a two-dimensional code is provided. The two-dimensional code has a plurality of distinct optically readable identification marks arranged in a two-dimensional area, the plurality of identification marks including a reference identification mark and further including at least one data identification mark each representing at least one data value. The at least one data value is represented by at least one distance between the reference identification mark and the at least one data identification mark, and also by at least one angular displacement of the at least one data identification mark relative to a reference direction. The reference direction is based on a first identification mark included in the plurality of identification marks, which is asymmetric or includes at most one line of symmetry.

[0005] Various embodiments of the first aspect are realized as set forth in claims 2 to 10.

[0006] According to a second aspect of the present invention, there is provided a method for generating a two-dimensional code. The method includes identifying a plurality of bijective mappings between a plurality of combinations of code parameters and a plurality of data values; and generating a two-dimensional code according to any of the various embodiments disclosed herein for a target data value using the plurality of bijective mappings, wherein the at least one data value includes the target data value, and the plurality of code parameters include the distance and the angular displacement.

[0007] According to a third aspect of the present invention, there is provided an apparatus for generating a two-dimensional code. The apparatus comprises at least one memory storing a plurality of computer-executable instructions; and at least one processor communicatively coupled to the at least one memory, the at least one processor configured to execute the computer-executable instructions to perform a method according to any of the various embodiments disclosed herein.

[0008] According to a fourth aspect of the present invention, a computer-readable non-transitory storage medium stores a plurality of computer-executable instructions configured to instruct at least one computer processor to perform a method according to any of the various embodiments disclosed herein.

[0009] According to a fifth aspect of the present invention, there is provided an apparatus for generating a two-dimensional code. This device is at least one processor; at least one memory; a data value set module stored in the at least one memory, the data value set module executable by the at least one processor to determine a plurality of data values ​​including a target data value; a code parameter module stored in the at least one memory, the code parameter module executable by the at least one processor to determine a plurality of combinations of code parameters, each combination comprising a plurality of code parameters; a mapping module stored in the at least one memory, the mapping module executable by the at least one processor to identify a plurality of bijective mappings between a plurality of combinations of code parameters and a plurality of data values, each mapping module being executable by the at least one processor; and a code generation module stored in the at least one memory, the code generation module being executable by the at least one processor to generate a two-dimensional code according to any of the various embodiments disclosed herein for the target data value using the plurality of bijective mappings, wherein the target data value is the at least one data value and the plurality of code parameters include the distance and the angular displacement.

[0010] According to a sixth aspect of the present invention, there is provided a method for reading a two-dimensional code. This method is acquiring an image of the two-dimensional code; performing image processing on the image; Includes. Executing the image processing described above involves: detecting a plurality of distinct identification marks based on the image; identifying a reference identification mark and at least one data identification mark based on the detected plurality of identification marks; determining a distance between the reference identification mark and the at least one data identification mark; determining an angular displacement of the at least one data identification mark relative to a reference direction, the reference direction being asymmetric or including at most one line of symmetry, based on a first identification mark included in the plurality of identification marks; and identifying at least one data value in the plurality of data values ​​that corresponds to the at least one data identification mark based on a plurality of bijections between the identified distance, the identified angular displacement, and a plurality of combinations, each of the combinations comprising a plurality of code parameters, and a plurality of data values. In this method, the plurality of code parameters include the distance and the angular displacement.

[0011] Various embodiments of the sixth aspect are realized as set forth in claims 16 to 24.

[0012] According to a seventh aspect of the present invention, there is provided an apparatus for reading a two-dimensional code. This device is at least one memory storing a plurality of computer executable instructions; and at least one processor communicatively coupled to the at least one memory, the processor configured to execute the computer-executable instructions to perform a method according to any of the various embodiments disclosed herein.

[0013] According to an eighth aspect of the present invention, a non-transitory computer-readable storage medium stores a plurality of computer-executable instructions configured to instruct at least one computer processor to perform a method according to any of the various embodiments disclosed herein.

[0014] According to a ninth aspect of the present invention, there is provided an apparatus for reading a two-dimensional code. This device is at least one processor; at least one memory; an image scanning module stored in the at least one memory, the image scanning module executable by the at least one processor to acquire an image of a two-dimensional code according to any of the various embodiments disclosed herein; An image processing module stored in the at least one memory, detecting the plurality of distinct identification marks based on the image; identifying the reference identification mark and the at least one data identification mark based on the detected plurality of identification marks; determining the distance between the reference identification mark and the at least one data identification mark; an image processing module executable by the at least one processor to ascertain the angular displacement of the at least one data identification mark relative to the reference direction; a mapping module stored in the at least one memory, the mapping module having a plurality of bijective mappings between a plurality of combinations of a plurality of code parameters and a plurality of data values, each of the mapping modules having a plurality of bijective mappings; a decoding module stored in the at least one memory, the decoding module being executable by the at least one processor to identify at least one data value included in the plurality of data values ​​that corresponds to the at least one data identification mark based on the plurality of bijective mappings; and Equipped with. [Brief explanation of the drawings]

[0015] Various embodiments of the present invention will be described below with reference to the accompanying drawings.

[0016] [Figure 1] FIG. 1A is a diagram showing an example of a two-dimensional code, and FIG. 1B is a diagram showing a method for measuring distance and angular displacement that is applied to FIG. 1A.

[0017] [Figure 2] FIG. 2A is a diagram showing an example of a two-dimensional code, and FIG. 2B is a diagram showing a method for measuring distance and angular displacement that is applied to FIG. 2A.

[0018] [Figure 3] FIG. 3A is a diagram showing an example of a two-dimensional code, and FIG. 3B is a diagram showing a method for measuring distance and angular displacement that is applied to FIG. 3A.

[0019] [Figure 4] FIG. 4A is a diagram showing an example of a two-dimensional code, and FIG. 4B is a diagram showing a method for measuring distance and angular displacement, which is applied to FIG. 4A.

[0020] [Figure 5] FIG. 5A is a diagram showing an example of a two-dimensional code, and FIG. 5B is a diagram showing a method for measuring distance and angular displacement, which is applied to FIG. 5A.

[0021] [Figure 6] FIG. 6A is a diagram showing an example of a two-dimensional code, and FIG. 6B is a diagram showing a method for measuring distance and angular displacement, which is applied to FIG. 6A.

[0022] [Figure 7] FIG. 7A is a diagram showing an example of a two-dimensional code, and FIG. 7B is a diagram showing a method for measuring distance and angular displacement, which is applied to FIG. 7A.

[0023] [Figure 8] FIG. 8 is a diagram showing an example of a two-dimensional code. [Figure 9] FIG. 9 is a diagram showing an example of a two-dimensional code. [Figure 10] FIG. 10 is a diagram showing an example of a two-dimensional code.

[0024] [Figure 11] FIG. 11A is a diagram showing an example of a two-dimensional code, and FIG. 11B is a diagram showing a method for measuring distance and angular displacement that is applied to FIG. 11A.

[0025] [Figure 12A] FIG. 12A is a flowchart outlining a method for generating a two-dimensional code.

[0026] [Figure 12B] FIG. 12B illustrates non-limiting examples of multiple bijective mappings.

[0027] [Figure 12C] FIG. 12C is a schematic diagram showing a device for generating a two-dimensional code.

[0028] [Figure 13A] FIG. 13A is a flowchart outlining a method for reading a two-dimensional code.

[0029] [Figure 13B] FIG. 13B is a schematic diagram showing a device for reading a two-dimensional code. DETAILED DESCRIPTION OF THE INVENTION

[0030] In the following description, numerous specific details of the present invention are presented to provide a thorough understanding of various exemplary embodiments of the present invention. However, it will be understood by those skilled in the art that embodiments of the present invention may be realized without some or all of these details. It should be understood that the terminology used in this specification is employed merely for the purpose of describing some specific embodiments and is not intended to limit the scope of the present invention. In the accompanying drawings, reference characters or numerals commonly used in several figures represent the same or similar functions or features. Furthermore, in the accompanying drawings, arrows indicating directions between features indicate, but are not limited to, the transfer of data or information between the features based on the description of the embodiments. In other words, transfer of data or information between the features in a direction opposite to that indicated by the arrows and / or in a direction not indicated by the arrows may also be envisioned, but such transfers are omitted to avoid obscuring the description of the embodiments.

[0031] In the following description, various embodiments that describe either devices or methods are equally applicable to other devices or methods, and various embodiments that describe devices are equally applicable to methods, and vice versa.

[0032] In the following description, various features described for one embodiment or example can be applied to the same or similar features in other embodiments or examples. In the following description, various features described for one embodiment or example can be applied to other embodiments or examples, even if not specifically mentioned. In addition, various combinations and / or alternative forms of a feature described for one embodiment or example can be applied to the same or similar features in other embodiments or examples.

[0033] It should be noted that the articles "a," "an," and "the" used herein in reference to a single feature or element refer to one or more of that feature or element. The term "and / or" includes all possible combinations of one or more interrelated features or elements. When used in the following specification and claims, the terms "comprising," "including," "having," "involving," and related terms are intended to be open-ended, meaning that additional features or elements may be included beyond the listed features or elements. The use of identifiers such as "first," "second," and "third" in the specification is intended merely as labels and is not intended to impose quantitative requirements on their objects, nor should they be construed as specifying a relative or chronological order among multiple limitations.

[0034] Additionally, the term "indicium" and related terms may refer to images, text, numbers, symbols, shapes, etc. The term "coupled" and related terms may refer to an operational coupling or a direct physical connection or coupling. Thus, when two devices are "coupled," the devices may be directly coupled or indirectly coupled through one or more intervening devices. In another example, when two indicia are "coupled," the indicia may be, for example, connected to or in contact with each other. Those skilled in the art will appreciate from the above definition that "coupled" can have various connotations in this disclosure.

[0035] (2D code) Various embodiments of the present invention provide a machine-readable two-dimensional code. The two-dimensional code has a plurality of optically readable distinct identification marks arranged in a two-dimensional area. The plurality of identification marks includes a reference identification mark and further includes at least one data identification mark, each representing at least one data value. In other words, two or more data identification marks may each represent two or more data values. The at least one data value is represented by at least one distance between the reference identification mark and the at least one data identification mark, and also by at least one angular displacement of the at least one data identification mark with respect to a reference direction. The reference direction is based on at least one identification mark of the plurality of identification marks (hereinafter sometimes referred to as a "first identification mark included in the plurality of identification marks") being asymmetric or including at most one line of symmetry.

[0036] In some embodiments, the first identification mark included in the plurality of identification marks may be based on the reference identification mark or one of the at least one data identification mark, hi other embodiments, the first identification mark included in the plurality of identification marks may be based on a boundary identification mark.

[0037] In some embodiments, the at least one data identification mark includes a color, and the at least one data value is further represented by the color of the at least one data identification mark, for example, the data values ​​represented by a particular data identification mark vary depending on the color of the data identification mark.

[0038] In some embodiments, the at least one data identification mark has a scaled dimension relative to a nominal size, and the at least one data value is further represented by the scaled dimension of the at least one data identification mark, e.g., the data values ​​represented by a particular data identification mark vary depending on the dimension of the data identification mark.

[0039] In some embodiments, the at least one data value is not binary. The at least one data value may include at least one selected from the group consisting of integers, natural numbers, positive integers, and real numbers. A non-binary data value may refer to a data value in which the number of elements in a set of data values ​​to which the data value belongs is not a power of two. Examples of values ​​that are powers of two include 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, and 2048.

[0040] In some embodiments, the two-dimensional code may further include at least one boundary identification mark that defines a readable area of ​​the code.

[0041] In some embodiments, the at least one boundary identification mark is coupled (e.g., connected) to either the reference identification mark or the data identification mark, or both. In other embodiments, the at least one boundary identification mark may not be coupled (e.g., connected) to the reference identification mark.

[0042] In some embodiments, the at least one data identification mark includes a first data identification mark and a second data identification mark, each of which is positioned in an overlapping position (e.g., the same position or substantially the same position) and represents a first data value and a second data value, each of which is the same value, and the first data identification mark and the second data identification mark are multiple separate identification marks that are optically distinguishable even in the overlapping position.

[0043] In some embodiments, the at least one data identification mark includes a first data identification mark and a second data identification mark, each of which is disposed at a plurality of non-overlapping positions and represents a first data value and a second data value, respectively. The first data value or the second data value can be adjusted by a predetermined position adjustment. The predetermined position adjustment is based on a shift (e.g., distance and / or angular displacement) between the non-overlapping positions. This allows the first data value and the second data value to become the same value by the predetermined position adjustment.

[0044] The various embodiments described above may be implemented individually or in combination with any other embodiment of the various embodiments or with any of the other various embodiments.

[0045] Reference is now made to Figures 1A, 1B, 2A, 2B, 3A, 3B, 4A, 4B, 5A, 5B, 6A, 6B, 7A, 7B, 8, 9, 10, 11A and 11B, which illustrate several non-limiting examples of two-dimensional codes according to various embodiments.

[0046] 1A shows an example of a two-dimensional code including a reference identification mark "-" and a data identification mark "*". FIG. 1B is a diagram based on FIG. 1A further showing a distance D1 between the reference identification mark and the data identification mark, and an angular displacement Θ1 of the data identification mark relative to a reference direction R. Here, the reference direction R is based on the reference identification mark. For example, the reference direction R is a direction perpendicular (i.e., orthogonal) to at least a predetermined portion of the reference identification mark.

[0047] The examples shown in Figures 2A and 2B are similar to Figures 1A and 1B, respectively, but differ in that they further include boundary identification marks.

[0048] 3A shows an example of a two-dimensional code including a reference identification mark "-" and first and second data identification marks "*" and "+". FIG. 3B is a diagram based on FIG. 3A further showing the distance D1 between the reference identification mark and the first data identification mark, the distance D2 between the reference identification mark and the second data identification mark, the angular displacement Θ1 of the first data identification mark relative to a reference direction R, and the angular displacement Θ2 of the second data identification mark relative to the reference direction R. Here, the reference direction R is based on the reference identification mark. For example, the reference direction is a direction perpendicular (i.e., orthogonal) to at least a predetermined portion of the reference identification mark.

[0049] The examples shown in Figures 4A and 4B are similar to Figures 3A and 3B, respectively, but differ in that they further include boundary identification marks.

[0050] FIG. 5A shows an example of a two-dimensional code including a reference identification mark "-" and first and second data identification marks "*" and "+". FIG. 5B is a diagram based on FIG. 5A further showing the distance D1 between the reference identification mark and the first data identification mark, the distance D2 between the reference identification mark and the second data identification mark, and the angular displacement Θ3 of the first data identification mark with respect to a reference direction. Here, the reference direction is based on the first or second data identification mark. For example, the reference direction is based on the linear distances D1 and D2.

[0051] The examples shown in FIGS. 6A and 6B are similar to those shown in FIGS. 5A and 5B, respectively, but differ in that they further include boundary identification marks.

[0052] FIG. 7A is a diagram illustrating an example of a two-dimensional code including a boundary identification mark represented by a frame, a reference identification mark represented by a direction mark provided on the frame (e.g., in the upper right corner of the frame), and a data identification mark "*." Here, the direction mark is represented by a triangular symbol. The reference identification mark is coupled to the boundary identification mark. Based on FIG. 7A , FIG. 7B further illustrates the distance D7 between a predetermined portion of the reference identification mark and the data identification mark, and the angular displacement Θ7 of the data identification mark with respect to a reference direction R. Here, the reference direction R is based on the reference identification mark (e.g., a direction mark provided in the upper right corner of the frame). As shown in FIG. 7B , the direction mark may be predetermined to indicate the reference direction as a vertical direction. Alternatively, the direction mark may be predetermined to define the reference direction in a different manner. For example, the direction mark may define the reference direction as a horizontal direction to the right of FIG. 7B or a horizontal direction to the left of FIG. 7B . Therefore, in those cases, the angular displacement Θ7 will be different.

[0053] 7A , the reference identification mark and the boundary identification mark are connected to each other. For example, the reference identification mark and the boundary identification mark are presented as an integrated image or connected images such that portions of the reference identification mark and the boundary identification mark touch and / or overlap each other. In other examples, the reference identification mark and the boundary identification mark may not be connected to each other. For example, the reference identification mark and the boundary identification mark may be presented as multiple separate images or multiple unconnected images without touching or overlapping each other.

[0054] FIG. 8 is a diagram illustrating an example of a two-dimensional code similar to FIG. 2A, but differs in that the data identification mark is configured to have a scaled dimension relative to a predetermined reference size. For example, the reference size may be based on a typical dimension for the same data identification mark shown in FIG. 2A. Here, the data identification mark "*" shown in FIG. 8 is twice the reference size (e.g., dimension) of the data identification mark "*" shown in FIG. 2A. It should be understood that in some other examples, the scaled dimension may be larger or smaller than the reference size.

[0055] FIG. 9 shows an example of a two-dimensional code similar to FIG. 2A, but differs in that the data identification mark is configured to have a color. For example, the data identification mark may be expressed in a predetermined color or may be contained within a region of a predetermined color. This color may be the same color as the reference identification mark and / or other data identification marks, or may be a different color. Here, the term "color" may refer to a color that is neither white nor black, nor a color that represents a shade of white or black.

[0056] FIG. 10 shows an example of a two-dimensional code including a reference identification mark "-" and first, second, and third data identification marks "O," "+," and "I." The first, second, and third data identification marks "O," "+," and "I" are separate marks that overlap each other. Although the overlapping positions of these marks represent the same data value, the third identification mark "I" is invisible and optically indistinguishable due to the second identification mark "+" overlapping it. Meanwhile, the overlapping first and second identification marks "O" and "+" are visible and optically distinguishable. Here, the first and second data identification marks "O" and "+" can be correctly represented and read. This example shows that two or more separate identification marks can be provided that are visible and optically distinguishable while representing the same data value, depending on the design of the identification marks.

[0057] 11A and 11B are diagrams illustrating an example of a two-dimensional code including a reference identification mark "-" and first, second, and third data identification marks "O," "+," and "p." Similar to FIG. 10, the first and second data identification marks "O" and "+" are separate marks that overlap each other to represent the same data value. Meanwhile, the third data identification mark "p" is positioned offset from the other data identification marks and, because of its different position, should represent a different data value. However, according to an embodiment of the present invention, by adjusting its position (e.g., angular offset), the third data identification mark can represent the same data value as the first and second identification marks. In other words, a certain identification mark (e.g., "p") can be predefined as an identification mark whose data value will be adjusted in a predetermined manner to provide the intended data value.

[0058] In the example shown in FIG. 10 , it is impossible to provide an optically identifiable third data identification mark that overlaps the first and second data identification marks at the same position (e.g., 5 mm away from the reference identification mark and at a 45-degree angle). In other words, it is impossible to provide three data identification marks having the same data value at the same position. In contrast, in FIGS. 11A and 11B , two data identification marks are provided at the same position (e.g., 5 mm away from the reference identification mark and at a 45-degree angle), and another data identification mark is provided at a different position (e.g., 5 mm away from the reference identification mark and at a 50-degree angle), thereby providing three data identification marks having the same data value. In other words, in FIGS. 11A and 11B , by adjusting the positions, one data identification mark can represent the same data value as the other two data identification marks.

[0059] It should be understood that various modifications may be made to each aspect of each example illustrated in the drawings referenced in the foregoing description, and that these non-limiting modifications may be applied individually or in combination with each other or with any of these or other modifications.

[0060] For example, the reference identification mark and / or the data identification mark may be represented by other symbols or images, such as a square, circle, rectangle, triangle, diamond, pentagon, hexagon, octagon, cube, cone, rhombus, star, arrow, animal, tree, plant, food, building, logo, mountain, teapot, tea leaves, coffee beans, etc.

[0061] For example, the boundary identification mark may be represented by other shapes or forms, such as a geometric shape, a non-geometric shape, a partially closed frame, an open frame, or a combination of multiple symbols or multiple images, such as the various examples described above. For example, the boundary identification mark may be represented by other contour lines, such as a solid line, a dotted line, or a combination of multiple symbols or multiple images, such as the various examples described above.

[0062] (2D code generation) Reference is now made to Figure 12A, which is a flow chart outlining a method for generating a two-dimensional code.

[0063] In block 121, a number of code parameters may be determined, including, but not limited to, a distance between a reference identification mark and a data identification mark, an angular displacement of the data identification mark relative to a reference direction, a size of the data identification mark relative to a reference size, a color of the data identification mark, etc.

[0064] A set or range of data values ​​may be determined in block 122. The set or range of data values ​​(i.e., the set of data values) refers to the set of all possible data values ​​that may be represented by the two-dimensional code and may be determined according to a desired application.

[0065] In block 123, a plurality of bijective mappings may be identified between a plurality of combinations of code parameters and a plurality of data values, such that each combination of code parameters is paired with exactly one element in the set of data values, and each element in the set of data values ​​is paired with exactly one combination of code parameters.

[0066] For the purpose of bijection, when pairing a set of elements X with a set of elements Y, the following properties must hold, for example: 1. Each element in X must be paired with at least one element in Y. 2. No element in X may be paired with more than one element in Y. 3. Each element in Y must be paired with at least one element in X. 4. No element in Y may be paired with more than one element in X.

[0067] An example of a bijective mapping is shown in Figure 12B. This is by way of example only and is not intended to be limiting. In this example, the code parameters include distance, angular displacement, and size of the data identification mark, and the set of data values ​​defines a range of possible target data values.

[0068] At block 124, a target data value is provided for the code to be generated, the target data value being one of a plurality of values ​​in the set of data values.

[0069] In block 125, a two-dimensional code according to any embodiment disclosed herein is generated for the target data value using the bijective mapping.

[0070] Referring now to Figure 12C, which is a schematic diagram illustrating the configuration of an apparatus for generating a two-dimensional code, the apparatus includes at least one processor, at least one memory storing computer-executable instructions and communicatively coupled to the at least one processor, and various modules stored in the at least one memory, which will be described below.

[0071] A data value set module may be stored in the at least one memory and may be executable by the at least one processor to determine a plurality of data values ​​(e.g., a set or range of data values) that includes a target data value.

[0072] A code parameter module may be stored in the at least one memory and executable by the at least one processor to determine a plurality of combinations, each combination consisting of a plurality of code parameters.

[0073] A mapping module may be stored in the at least one memory and executable by the at least one processor to identify a plurality of bijective mappings, each between a plurality of combinations of a plurality of code parameters and a plurality of data values.

[0074] A code generation module may be stored in the at least one memory and may be executable by the at least one processor to generate a two-dimensional code according to any embodiment disclosed herein for the target data value using the plurality of bijective mappings, where the target data value is the at least one data value.

[0075] The device may further include a network interface for facilitating communication between the device and other communication devices, scanners, and / or computers, and an input / output interface for receiving input or manual input from other communication devices and / or computers and outputting to other communication devices, computers, display devices, and / or printers.

[0076] (Reading two-dimensional code) Reference is now made to Figure 13A, which is a flow chart outlining a method for reading a two-dimensional code, which may be any one of the embodiments disclosed herein.

[0077] An image of the two-dimensional code is acquired in block 131. This step can be performed by an image scanning module, such as an optical scanner or an optical camera.

[0078] In block 132, image processing is performed on the acquired image. Specifically, a plurality of distinct identification marks are detected from the acquired image. Based on the plurality of identification marks thus detected, a reference identification mark and at least one data identification mark are identified, a distance between the reference identification mark and the at least one data identification mark is identified, and an angular displacement of the at least one data identification mark with respect to a reference direction is identified. The reference direction is based on a first identification mark included in the plurality of identification marks, which is asymmetric or includes at most one line of symmetry.

[0079] In block 133, at least one data value of the plurality of data values ​​corresponding to the at least one data identification mark is identified based on the identified distance, the identified angular displacement, and a plurality of bijective mappings between a plurality of combinations of code parameters and a plurality of data values, each combination comprising a plurality of code parameters, where the plurality of code parameters include the distance and the angular displacement.

[0080] In some embodiments, the first identification mark included in the plurality of identification marks is the reference identification mark or one of the at least one data identification mark.

[0081] In some embodiments, block 132 further includes determining a color of the at least one data identification mark, where the plurality of code parameters further includes a color of the at least one data identification mark. Accordingly, performance of the determining step in block 134 further depends on the color determined in block 132.

[0082] In some embodiments, block 132 further includes determining a scaled dimension of the at least one data identification mark relative to a nominal size, where the plurality of code parameters includes the scaled dimension of the at least one data identification mark. Accordingly, performance of the determining step in block 134 is further dependent on the scaled dimension determined in block 132.

[0083] In some embodiments, the at least one data identification mark includes a first data identification mark and a second data identification mark positioned to overlap one another, and thus, at block 134, the verifying step includes verifying that the first data value and the second data value are the same data value.

[0084] In some embodiments, the at least one data identification mark includes a first data identification mark and a second data identification mark that are non-overlapping. Accordingly, in block 134, the determining step includes determining that either the first data identification mark or the second data identification mark has a predetermined alignment, and determining that first and second data values ​​corresponding to the first and second data identification marks, respectively, are identical data values. Here, the plurality of code parameters includes the predetermined alignment based on the offset between the two predetermined identification marks.

[0085] Next, reference is made to Figure 13B, which is a schematic diagram showing the configuration of a device for reading two-dimensional codes. This device includes at least one processor, at least one memory storing a plurality of computer-executable instructions and communicatively coupled to the at least one processor, and various modules, described below, stored in the at least one memory.

[0086] An image scanning module may be stored in the at least one memory and may be executable by the at least one processor to acquire an image of a two-dimensional code, which may be any one of the embodiments disclosed herein.

[0087] An image processing module may be stored in the at least one memory and may be executable by the at least one processor to perform image processing, as described in detail below. Based on the image thus acquired, a plurality of distinct identification marks are detected. Based on the plurality of identification marks thus detected, a reference identification mark and at least one data identification mark are identified. A distance between the reference identification mark and the at least one data identification mark is identified. An angular displacement of the at least one data identification mark relative to a reference direction is identified.

[0088] A mapping module may be stored in the at least one memory and may include a plurality of bijective mappings, each of which may be between a plurality of combinations of a plurality of code parameters and a plurality of data values.

[0089] A decoding module may be stored in the at least one memory and may be executable by the at least one processor to identify or decode at least one data value of the plurality of data values ​​that corresponds to the at least one data identification mark based on the plurality of bijective mappings.

[0090] The device may further include a network interface for facilitating communication between the device and other communication devices and / or computers, and an input / output interface for receiving input or manual input from other communication devices, scanners, and / or computers and outputting to other communication devices, computers, display devices, and / or printers.

[0091] According to various embodiments of the present invention, for example, various effects described below can be obtained. Note that the effects described below are merely examples and are not intended to be limiting.

[0092] Two-dimensional codes according to various embodiments of the present invention utilize the distance between multiple identification marks and the angular displacement between multiple identification marks to represent data. This concept allows the creation of a wide variety of two-dimensional codes in terms of design, functionality, and efficient use of ink. For example, the number of elements or identification marks to be used can be specified in advance, allowing the design of the two-dimensional code to be individually specified. In other words, the reference identification mark and / or one or more data identification marks can be represented by various symbols and / or images. For example, the identification mark "+" can be replaced with an image of the sun, and the identification marks "*", "-", and "^" can be replaced with images of multiple planets. This means that data representation in two-dimensional codes according to various embodiments of the present invention is not limited to standard dimensions such as the numerous black and white dots that make up a QR code, nor is it limited to the multiple parallel lines and spacings with variable widths that make up a barcode. In contrast, QR codes and barcodes require a variable number of dots or lines that cannot be individually specified. For example, in the case of two-dimensional codes according to various embodiments of the present invention, only a small portion of the area requires printing, whereas in the case of QR codes and barcodes, approximately 50% of the code area requires printing and the remaining 50% does not require printing, since each pixel has a 50 / 50 chance of being printed or not printed.

[0093] While optical techniques for measuring distance and angular displacement can be used with multiple cameras, such as a smartphone with multiple cameras, a problem with using the distance and angular displacement between multiple identifying marks to represent data is that the data representation may require a consistent logical system. To address this problem, various embodiments of the present invention apply the mathematical concept of a bijective mapping between the various possible combinations of multiple parameters and multiple data values. This ensures that each reading of a 2D code will yield a unique data value, which in turn will guarantee a unique 2D code image that can be read by a scanner.

[0094] Another problem associated with using the distance and angular displacement between multiple identification marks is data alignment. This problem is seen, for example, in two-dimensional codes that have multiple identical data identification marks. In this case, it is possible to measure the distance between the data identification marks from a reference identification mark, but it is impossible to create an alignment of the data. This problem can be solved if the identification marks are separate. In this case, it is possible to specify the alignment of the data by identifying the separate identification marks. To address this problem, various embodiments of the present invention use separate reference identification marks and data identification marks as a solution to the data alignment problem.

[0095] A problem with reading two-dimensional codes is the need to determine a reference direction so that the angular displacement between a reference identification mark and a plurality of data identification marks can be measured. According to the present invention, by using a plurality of asymmetric identification marks or a plurality of identification marks having at most one line of symmetry, it is possible to determine a reference direction from the reference identification mark or one of the data identification marks during image processing.

[0096] The data capacity of a two-dimensional code depends on various factors, such as the accuracy of measuring the distance and angular displacement between the multiple identification marks. For example, if a measurement accuracy of 1 mm or 1 degree is achieved, a circular scan area with a 1 cm radius can generate 10 × 360 possible data values. This is equivalent to 3,600 possible data values ​​per data identification mark. If n identification marks are used, the total number of possible data values ​​can be approximately 360 n . However, data capacity can be limited by the maximum number of distinct identification marks that a two-dimensional code can contain. This depends on various factors, such as the design of the identification marks, the image processing method and its efficiency in identifying various identification marks, and the number of parameters, such as color and scaling dimensions. To address this potential problem, one approach to maximizing the maximum number of identification marks that a scan area can contain is to introduce multiple distinct identification marks with predetermined alignment. Figure 10 illustrates the constraints of overlapping multiple different identification marks in the same position, and Figures 11A and 11B illustrate an embodiment in which additional separate identification marks with predetermined positional adjustments are introduced to overcome the constraints shown in Figure 10. To make the most of the predetermined positional adjustments and improve the maximum data capacity of the two-dimensional code, it would be efficient to have a comprehensive list of multiple separate data identification marks that clearly shows the full range of possible various positional adjustments, such as distance, angular displacement, or other characteristics.

[0097] It should be understood that the accompanying flow charts, depicting logical process flows, are illustrative of methodologies for implementing novel aspects of the present invention. While one or more methodologies illustrated in the accompanying drawings have been described herein as a series of steps for simplicity of explanation, those skilled in the art will recognize that the methodologies are not limited to the order in which the steps are performed. Thus, some steps may occur in a different order than shown in the accompanying drawings and described herein, and / or may occur in parallel with other steps. Those skilled in the art will recognize that a methodology may also be represented as a series of interrelated states or events, such as in a state diagram. Furthermore, not all steps illustrated in the methodologies may be required to implement novel aspects.

[0098] These flowcharts depicting logical process flows may be implemented in software, firmware, hardware, or a combination thereof. In software and firmware embodiments, the logical process flows may be implemented in the form of computer-executable instructions or code stored on a non-transitory computer-readable or machine-readable storage medium, such as an optical, magnetic, or semiconductor storage medium. The computer-executable instructions are configured to direct at least one computer processor to execute the logical process flows. However, the various embodiments described above are not limited to such implementations.

[0099] It should also be understood that the various devices disclosed herein are merely examples of devices embodying novel aspects of the present invention. Those skilled in the art will appreciate that the various devices are not limited by the components disclosed herein. Each of the various devices disclosed herein may include at least one memory and at least one processor communicatively coupled to the memory. The at least one processor may be any type of computer processor, including, for example, a microprocessor, an embedded processor, a digital signal processor (DSP), a network processor, a multi-core processor, a single-core processor, and other devices configured to execute code or computer-executable instructions to implement the flowcharts, algorithms, processes, or operations disclosed herein. The at least one memory may be a non-transitory computer-readable storage medium or a machine-readable storage medium that stores or has the code or computer-executable instructions. Examples of such storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), logic blocks of a field programmable gate array (FPGA), erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory (EEPROM).

[0100] It should be understood that the various embodiments and features disclosed herein are presented by way of example only and are not limiting. It will be apparent to those skilled in the art that numerous other embodiments can be devised in light of the specific aspects and implementations of the present invention disclosed above. Certain terminology is employed herein for the purpose of clarity and is not intended to limit the scope of the embodiments of the present invention disclosed herein.

Claims

1. A two-dimensional code having a plurality of optically readable distinct identification marks arranged in a two-dimensional area, the plurality of identification marks include a reference identification mark and further include at least one data identification mark, each representing at least one data value; the at least one data value is represented by at least one distance between the reference identification mark and the at least one data identification mark, and also by at least one angular displacement of the at least one data identification mark relative to a reference direction; the reference direction is based on a first identification mark included in the plurality of identification marks, the first identification mark being asymmetric or including at most one line of symmetry; Two-dimensional code.

2. the first identification mark included in the plurality of identification marks is the reference identification mark or one of the at least one data identification mark; The two-dimensional code according to claim 1 .

3. the at least one data identification mark comprises a color, and the at least one data value is further represented by the color of the at least one data identification mark. The two-dimensional code according to claim 1 or 2.

4. the at least one data identification mark having a scaled dimension relative to a nominal size, and the at least one data value being further represented by the scaled dimension of the at least one data identification mark. The two-dimensional code according to any one of claims 1 to 3.

5. said at least one data value is not binary; The two-dimensional code according to any one of claims 1 to 4.

6. the at least one data value comprises at least one selected from the group consisting of an integer, a natural number, a positive integer, and a real number; The two-dimensional code according to claim 5.

7. The identification marks include at least one boundary identification mark that defines a readable area of ​​the code. The two-dimensional code according to any one of claims 1 to 6.

8. the at least one boundary identification mark is coupled to the reference identification mark; The two-dimensional code according to claim 7.

9. the at least one data identification mark includes a first data identification mark and a second data identification mark, which are arranged in an overlapping position and respectively represent a first data value and a second data value that are the same value; The two-dimensional code according to any one of claims 1 to 8.

10. the at least one data identification mark includes a first data identification mark and a second data identification mark, each disposed at a plurality of non-overlapping positions, representing a first data value and a second data value, respectively, the second data value being adjustable to represent the first data value by a predetermined position adjustment based on a difference between the plurality of non-overlapping positions; The two-dimensional code according to any one of claims 1 to 8.

11. 1. A method for generating a two-dimensional code, comprising: identifying a plurality of bijective mappings between a plurality of combinations of code parameters and a plurality of data values; and generating the two-dimensional code according to any one of claims 1 to 10 for a target data value using the plurality of bijective mappings, the at least one data value includes the target data value; the plurality of code parameters include the distance and the angular displacement; How to generate a two-dimensional code.

12. A device for generating a two-dimensional code, at least one memory storing a plurality of computer executable instructions; at least one processor communicatively coupled to said at least one memory, said at least one processor configured to perform the method of any one of claims 1 to 10 by executing said plurality of computer-executable instructions; Equipped with A device that generates two-dimensional codes.

13. storing a plurality of computer executable instructions configured to instruct at least one computer processor to perform the method of any one of claims 1 to 10; A non-transitory computer-readable recording medium.

14. A device for generating a two-dimensional code, at least one processor; at least one memory; a data value set module stored in the at least one memory, the data value set module executable by the at least one processor to determine a plurality of data values ​​including a target data value; a code parameter module stored in the at least one memory, the code parameter module executable by the at least one processor to determine a plurality of combinations of code parameters, each combination comprising a plurality of code parameters; a mapping module stored in the at least one memory, the mapping module executable by the at least one processor to identify a plurality of bijective mappings between a plurality of combinations of code parameters and a plurality of data values, each of the combinations being executable by the at least one processor; a code generation module stored in the at least one memory, the code generation module being executable by the at least one processor to generate the two-dimensional code according to any one of claims 1 to 10 for the target data values ​​using the plurality of bijective mappings; Equipped with the target data value is the at least one data value; the plurality of code parameters include the distance and the angular displacement; A device that generates two-dimensional codes.

15. A method for reading a two-dimensional code, comprising: acquiring an image of the two-dimensional code; performing image processing on the image; In a method comprising: performing the image processing detecting a plurality of distinct identification marks based on the image; identifying a reference identification mark and at least one data identification mark based on the detected plurality of identification marks; determining a distance between the reference identification mark and the at least one data identification mark; determining an angular displacement of the at least one data identification mark relative to a reference direction, the reference direction being asymmetric or including at most one line of symmetry, based on a first identification mark included in the plurality of identification marks; identifying at least one data value among the plurality of data values ​​that corresponds to the at least one data identification mark based on a plurality of bijections between the identified distance, the identified angular displacement, and a plurality of combinations of a plurality of code parameters, each combination being a plurality of data values; the plurality of code parameters include the distance and the angular displacement; How to read a 2D code.

16. the first identification mark included in the plurality of identification marks is the reference identification mark or one of the at least one data identification mark; 16. The method of claim 15.

17. and determining a color of the at least one data identification mark, the plurality of code parameters include a color of the at least one data identification mark; and identifying the at least one data value included in the plurality of data values ​​corresponding to the at least one data identification mark is further based on the identified color of the at least one data identification mark.

17. The method of claim 15 or 16.

18. 10. The method of claim 9, further comprising determining a scaling dimension of the at least one data identification mark relative to a reference size, the scaling dimension comprising: the plurality of chord parameters include the scaling dimensions, identifying the at least one data value in the plurality of data values ​​corresponding to the at least one data identification mark is further based on the identified scaled dimension of the at least one data identification mark.

18. The method according to any one of claims 15 to 17.

19. said at least one data value is not binary; 19. The method according to any one of claims 15 to 18.

20. the at least one data value comprises at least one selected from the group consisting of an integer, a natural number, a positive integer, and a real number; 20. The method of claim 19.

21. the plurality of identification marks includes at least one boundary identification mark that defines a readable area of ​​the code; 20. The method of any one of claims 15 to 19.

22. the at least one boundary identification mark is coupled to the reference identification mark; 22. The method of claim 21.

23. the at least one data identification mark includes a first data identification mark and a second data identification mark arranged in an overlapping position, identifying the at least one data value in the plurality of data values ​​corresponding to the at least one data identification mark includes identifying a first data value and a second data value corresponding to the first data identification mark and the second data identification mark, respectively, and being the same data value.

23. The method of any one of claims 15 to 22.

24. the at least one data identification mark includes a first data identification mark and a second data identification mark disposed at a plurality of non-overlapping positions, Identifying the at least one data value among the plurality of data values ​​corresponding to the at least one data identification mark comprises: identifying either the first data identification mark or the second data identification mark as having a predetermined alignment; and verifying that a first data value and a second data value corresponding to the first data identification mark and the second data identification mark, respectively, are the same data value.

23. The method of any one of claims 15 to 22.

25. A device for reading a two-dimensional code, at least one memory storing a plurality of computer executable instructions; at least one processor communicatively coupled to said at least one memory, said at least one processor configured to perform the method of any one of claims 15 to 24 by executing said plurality of computer-executable instructions; Equipped with A device that reads two-dimensional codes.

26. storing a plurality of computer executable instructions configured to instruct at least one computer processor to perform the method of any one of claims 15 to 24; A non-transitory computer-readable recording medium.

27. A device for reading a two-dimensional code, at least one processor; at least one memory; an image scanning module stored in said at least one memory, said image scanning module being executable by said at least one processor to acquire an image of said two-dimensional code according to any one of claims 1 to 10; an image processing module stored in the at least one memory, Detecting the plurality of distinct identification marks based on the image; confirming the reference identification mark and the at least one data identification mark based on the detected plurality of identification marks; determining the distance between the reference identification mark and the at least one data identification mark; an image processing module executable by the at least one processor to ascertain the angular displacement of the at least one data identification mark relative to the reference direction; a mapping module stored in the at least one memory, the mapping module having a plurality of bijective mappings between a plurality of combinations of a plurality of code parameters and a plurality of data values, each of the mapping modules having a plurality of bijective mappings; a decoding module stored in the at least one memory, the decoding module being executable by the at least one processor to identify at least one data value in the plurality of data values ​​that corresponds to the at least one data identification mark based on the plurality of bijective mappings; and Equipped with A device that reads two-dimensional codes.

Citation Information

Patent Citations

  • Processing method, apparatus, program and computer- readable recording medium about estimation of grid orientation, magnification, parallel displacement and modulation

    JP2007151082A

  • Constellation detection

    JP2009153127A

  • dot pattern

    JP3771252B1

  • Method for generating information embedding codes for mobile phones, method for embedding information, and method for reading the same.

    JP5685677B2

  • Traceability marks

    US20080240614A1