WO2015174192A1 - 二次元コード、二次元コードの解析システム及び二次元コードの作成システム - Google Patents

二次元コード、二次元コードの解析システム及び二次元コードの作成システム Download PDF

Info

Publication number
WO2015174192A1
WO2015174192A1 PCT/JP2015/061482 JP2015061482W WO2015174192A1 WO 2015174192 A1 WO2015174192 A1 WO 2015174192A1 JP 2015061482 W JP2015061482 W JP 2015061482W WO 2015174192 A1 WO2015174192 A1 WO 2015174192A1
Authority
WO
WIPO (PCT)
Prior art keywords
basic pattern
dimensional code
data
pattern portion
information
Prior art date
Application number
PCT/JP2015/061482
Other languages
English (en)
French (fr)
Inventor
豊 細金
Original Assignee
共同印刷株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 共同印刷株式会社 filed Critical 共同印刷株式会社
Priority to JP2016519169A priority Critical patent/JP6045752B2/ja
Priority to EP15793384.7A priority patent/EP3144857B1/en
Priority to CN201580025137.5A priority patent/CN106462786B/zh
Priority to KR1020167031742A priority patent/KR101770540B1/ko
Publication of WO2015174192A1 publication Critical patent/WO2015174192A1/ja
Priority to US15/332,671 priority patent/US9734443B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06046Constructional details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes

Definitions

  • the present invention relates to a two-dimensional code, a two-dimensional code analysis system, and a two-dimensional code creation system.
  • a two-dimensional code is a data-efficient code that can have a lot of information in a small area compared to a one-dimensional code, and is widely used in various applications such as article management and web guidance using a mobile phone. It is utilized.
  • the two-dimensional code has a position detection pattern of a predetermined shape in order to detect the positional relationship of the captured image.
  • the position detection pattern has a shape that can be easily distinguished from other parts in the two-dimensional code.
  • a position detection pattern is detected in the photographed two-dimensional code image, and conversion is performed based on the positional relationship of the position detection pattern.
  • the detection of the position detection pattern is a process that is the basis of the analysis. If the position detection pattern cannot be recognized, the code cannot be recognized. It is an important factor for the accuracy of
  • Patent Document 1 As a conventional two-dimensional code, the one of Patent Document 1 is known.
  • An object of the present invention is to realize a two-dimensional code that improves the degree of freedom of arrangement of position detection patterns and can arrange position detection patterns while avoiding difficult-to-read areas.
  • the invention according to claim 1 is a two-dimensional code in which data represented by a binary code is converted into cells and arranged as a pattern in a two-dimensional matrix, and is arranged outside the basic pattern portion and the basic pattern portion
  • the basic pattern portion includes a position detection pattern for specifying a cell position, and basic pattern portion movement information indicating the position of the basic pattern portion in the two-dimensional code region. It is a two-dimensional code containing.
  • the basic pattern portion movement information is the two-dimensional code according to the first aspect, which is basic pattern portion movement amount information indicating a movement amount of the basic pattern portion from a predetermined position.
  • the basic pattern portion movement information is the two-dimensional code according to the first aspect, which is basic pattern portion position information indicating a position of the basic pattern portion in the two-dimensional code.
  • the basic pattern portion movement information includes a basic pattern portion movement flag indicating whether or not the basic pattern portion has moved from a predetermined position. It is a dimension code.
  • the coordinates of the basic pattern portion are obtained based on the positional relationship of the position detection patterns, and the basic pattern portion movement information is detected.
  • Detection means and real data analysis means for analyzing the actual data comprising the encoded message wherein the actual data analysis means is configured to detect the actual data determined based on the detection result of the basic pattern portion movement information.
  • This is a two-dimensional code analysis system that performs detection.
  • the two-dimensional code creating system according to the first aspect, wherein the specification data creating means for determining the arrangement of the cells in the periphery of the two-dimensional code, and the encoded message
  • a two-dimensional code creating system comprising: means for creating actual data comprising: means for arranging the basic pattern portion movement information; and means for arranging the actual data at least in the periphery.
  • the two-dimensional code of the present invention has a high degree of freedom in arrangement of the position detection pattern, and when the position detection pattern is located in an area that is difficult to read when arranging the two-dimensional code, such an area that is difficult to read.
  • the position detection pattern can be arranged avoiding the above. Thereby, the recognition accuracy of reading of a two-dimensional code can be raised.
  • FIG. 1 is a diagram illustrating a configuration of a two-dimensional code according to the first embodiment.
  • FIG. 2A shows a data configuration example recorded in the two-dimensional code.
  • FIG. 2B shows a configuration example of actual data recorded in the two-dimensional code.
  • FIG. 3A shows an overall configuration showing an example of the data arrangement of the two-dimensional code of the first embodiment.
  • FIG. 3B is a diagram illustrating an example of the data arrangement of the two-dimensional code according to the first embodiment, showing a partially enlarged block and a separation pattern.
  • FIG. 4 is a diagram illustrating a modification of the two-dimensional code of the first embodiment.
  • FIG. 5A is a diagram (part 1) illustrating the second embodiment.
  • FIG. 5B is a diagram (part 2) illustrating the second embodiment.
  • FIG. 5A is a diagram (part 1) illustrating the second embodiment.
  • FIG. 5B is a diagram (part 3) illustrating the second embodiment.
  • FIG. 6A is a diagram (part 1) illustrating an example of a data arrangement of a two-dimensional code according to the second embodiment.
  • FIG. 6B is a diagram (part 2) illustrating an example of the data arrangement of the two-dimensional code according to the second embodiment.
  • FIG. 7A is a diagram (part 1) illustrating another example of the second embodiment.
  • FIG. 7B is a diagram (part 2) illustrating another example of the second embodiment.
  • FIG. 7C is a diagram (part 3) illustrating another example of the second embodiment.
  • FIG. 7D is a diagram (part 4) illustrating another example of the second embodiment.
  • FIG. 8 is a diagram (part 5) illustrating another example of the second embodiment.
  • FIG. 9A is a diagram (part 1) for explaining changes in accordance with version information of a two-dimensional code.
  • FIG. 9B is a diagram (part 2) for explaining changes in accordance with version information of a two-dimensional code.
  • FIG. 10 is a diagram showing a bit string of version information, and shows each version, the number of bits representing it, and a bit string.
  • FIG. 11 is a diagram illustrating an example of a two-dimensional code according to the first embodiment.
  • FIG. 12 is a diagram illustrating an example of the second embodiment.
  • FIG. 13 is a diagram illustrating an example of the second embodiment.
  • FIG. 14 is a diagram illustrating an example of a two-dimensional code according to the second embodiment in which a blank area is provided.
  • FIG. 15 is a diagram showing an example of the two-dimensional code of the second embodiment in which the basic pattern portion does not move in a two-dimensional version 3 ⁇ vertical 3D code.
  • FIG. 16 is a diagram illustrating an example of the two-dimensional code of the second embodiment in which the basic pattern portion is moved from the center with respect to the two-dimensional code including the peripheral portion.
  • FIG. 17 is a diagram for explaining how the position of the basic pattern portion is represented by the basic pattern portion movement amount information in the horizontal direction.
  • FIG. 18 is a diagram illustrating an example in which the basic pattern portion 11 is moved in a two-dimensional code of version horizontal 19 ⁇ vertical 19.
  • FIG. 19 is a diagram illustrating a hardware configuration of a creation system that creates and provides a two-dimensional code.
  • FIG. 20 is a flowchart showing a procedure of an encoding process in which a user accesses system hardware via user hardware and creates a desired two-dimensional code.
  • FIG. 21 is a diagram illustrating a hardware configuration of a two-dimensional code analysis apparatus that reads the two-dimensional code of the embodiment and analyzes the two-dimensional code.
  • FIG. 22 is a flowchart showing a decoding process procedure for analyzing a two-dimensional code photographed by a user.
  • FIG. 23 is a flowchart showing a decoding process procedure for analyzing a two-dimensional code photographed by a user.
  • FIG. 1 is a diagram illustrating a configuration of a two-dimensional code according to the first embodiment.
  • the two-dimensional code 10 of the first embodiment is a two-dimensional code in which data represented by a binary code is converted into cells and arranged as a pattern in a two-dimensional matrix, and has a basic pattern portion 11 having a fixed shape.
  • the basic pattern unit 11 includes position detection patterns 12A-12D for specifying cell positions and combined data composed of spec data and actual data.
  • the specification data includes version information that determines the size of the peripheral portion described later.
  • the data structure representing the combined data is a structure in which the spec data and the actual data are clearly separated.
  • an area excluding the position detection patterns 12A-12D in the basic pattern portion 11, that is, an area indicated by reference numeral 13 is a data area of combined data.
  • combined data composed of spec data and actual data is recorded.
  • the area 13 is further provided with a position correction pattern and a separation pattern, which will be described later, as necessary.
  • basic pattern portion correction data for correcting the error of the combined data is also recorded.
  • the spec data is recorded at a predetermined position in the area 13.
  • the combined data is a combination of the spec data and actual data recorded in the basic pattern part.
  • the combined data does not include actual data of the peripheral portion 20 described later.
  • the basic pattern portion error correction data includes information for correcting a predetermined data amount represented by the area 13.
  • the data amount of the spec data includes the number of combination patterns of information that affects the outer shape of the two-dimensional code, such as version information that determines the size of the peripheral portion, position information of the basic pattern portion 11 in the two-dimensional code 10, and information on white space Increase / decrease according to the amount of error correction level information in the peripheral area.
  • the amount of change in the data amount of the spec data is within a range that can be recorded in the data area 13.
  • the actual data is recorded in the remaining part of the area 13 where the spec data is recorded. That is, since the recording amount of the spec data of the combined data can be arbitrarily set, the data amount of the actual data that can be recorded in the basic pattern unit 11 increases or decreases according to the data amount of the spec data.
  • the first embodiment is an embodiment in which version information described later does not exist in the peripheral portion (version horizontal 1 ⁇ vertical 1).
  • FIG. 2A shows a data configuration example recorded in the two-dimensional code.
  • FIG. 2B shows a configuration example of actual data recorded in the two-dimensional code.
  • all the spec data is stored in the basic pattern portion 11, and the actual data is recorded in the remaining portion in the basic pattern portion 11, and the basic pattern, which will be described later, is stored in the basic pattern portion. Recorded in the peripheral part formed around the part. Since the data amount of the spec data increases and decreases, the boundary between the spec data and the actual data in the basic pattern unit 11 changes according to the data amount of the spec data.
  • the spec data and actual data recorded in the basic pattern portion 11 are recorded as combined data that is a data bit string obtained by combining a binary string of spec data and a binary string of actual data. Further, when the data area 13 in the basic pattern portion 11 is divided into blocks, there may be a case where the boundary between the spec data and the actual data exists in the block.
  • Spec data is data representing information related to data arrangement in the peripheral part.
  • Spec data includes style information for selecting the shape of the peripheral part, vertical and horizontal version information that determines the size of the peripheral part, peripheral error correction level information if the amount of error correction data in the peripheral part is variable, peripheral part It has blank information (block information not functioning as data) for determining a block on which no actual data is arranged, basic pattern portion movement information, and the like.
  • Spec data is data representing the specifications of the two-dimensional code, but when the basic pattern portion 11 is always in a constant shape, it can be regarded as substantially defining the specifications of the peripheral portion 20.
  • the fixed shape means that the size and shape are fixed.
  • Spec data includes information that increases or decreases the amount of data depending on the issued two-dimensional code 10 and affects the amount of data recorded in the peripheral portion and the data arrangement. On the other hand, although the data amount of the spec data changes, the information in the spec data in the basic pattern portion 11 is recorded in a predetermined order. Actual data is recorded in the remaining portion of the data area 13 of the basic pattern portion 11.
  • the number of pixels of the position detection pattern and the number of pixels at the distance between the position detection patterns are measured from the photographed image, and then the version is spec data. It is also possible to calculate information. This is described as a method for obtaining a temporary symbol model number in the reference decoding algorithm according to the QR Code (registered trademark) standard (JIS X 0510: 2004).
  • This version information is calculated from the shape of the two-dimensional code of the photographed image, and an error occurs when the code is photographed obliquely from above or when ink is blurred. Since the 2D code requires shooting in harsh environments and poor printing recognition, version information is stored in the 2D code along with the redundancy required for reading to prevent this error. It is desirable to have as.
  • FIG. 2B shows an example of actual data obtained by encoding a message.
  • segments including messages and headers that qualify messages (message type (message encoding) and message size) are arranged by the number of messages.
  • a message is data stored in a two-dimensional code by a user.
  • a plurality of messages can be stored, and a segment is assigned to each message.
  • a segment that does not include a message and contains only a termination flag is prepared. When the capacity of actual data is surplus, a segment of the termination flag is arranged, and then padding is arranged. Therefore, the end flag indicates the presence / absence of a message, the end flag of the last segment is true, and the end flags of the other segments are false.
  • Spec data and actual data shown in FIG. 2A are divided into blocks according to the data capacity per block. Similarly, error correction data is also divided into blocks.
  • Error correction data is attached to the data.
  • error correction is performed in units of words, so it is desirable to make one word into one block.
  • one word spans a plurality of blocks, even when one block is contaminated, all words related to the block are subjected to error correction, and the correction efficiency is deteriorated. Dirt that causes correction and color skipping due to spotlights are often concentrated in one place, but by making one word into one block, there is an effect of simultaneously collecting data to be corrected in one place, which is efficient. Correction is possible and the possibility of recognizing the code is increased.
  • the data amount of the spec data can be increased or decreased by version information that determines the size of the peripheral portion. That is, if the peripheral part is small or does not exist, the amount of specification data in the basic pattern part is reduced, and if the peripheral part is large, the amount of specification data in the basic pattern part is increased. It is possible to increase or decrease the data amount of the spec data according to the above.
  • the data amount of the spec data as in the conventional example is fixed, there is a problem that the proportion of the data amount of the spec data per area of the code increases when the code size is small. This problem can be solved.
  • the specification data includes version information, and the size (size) of the two-dimensional code is determined based on the version information. For example, if the version information includes two types of data, that is, horizontal version information indicating the horizontal size of the code and vertical version information indicating the vertical size of the code, the code is a rectangle of an arbitrary size. Details of the version information will be described later.
  • FIG. 3A shows an overall configuration showing an example of the data arrangement of the two-dimensional code of the first embodiment.
  • FIG. 3B is a diagram illustrating an example of the data arrangement of the two-dimensional code according to the first embodiment, showing a partially enlarged block and a separation pattern.
  • one block includes horizontal 3 ⁇ vertical 3 cells, and the separation space 16 has a width of 1 cell.
  • the basic pattern portion 11 has a size of horizontal 7 ⁇ vertical 7 blocks (27 horizontal ⁇ 27 vertical cells) surrounded by a broken line, and position detection patterns 12A-12D are arranged at four corners.
  • the area other than the position detection patterns 12A-12D of the basic pattern portion 11 is the data area 13 of the basic pattern portion 11.
  • blocks A 1 -A 11 in the area 14 other than the horizontal 7 ⁇ vertical 3 block position detection patterns 12 B and 12 D on the upper side of the basic pattern part 11 are blocks for recording combined data.
  • Basic pattern portion error correction for correcting the error of the combined data in which the blocks B1-B12 in the region other than the position detection patterns 12A and 12C of the lower horizontal 7 ⁇ vertical 4 blocks are recorded in the region 13 of the basic pattern portion 11 This is an area for recording data (words).
  • the block is 3 ⁇ 3 cells, but it may be rectangular or variable. Moreover, although the shape of the cell is a square, it is not limited to this.
  • each of the four position detection patterns 12A-12D has a larger area than the block.
  • the same pattern as the position detection pattern does not appear in the two-dimensional code, and the position detection pattern can be easily identified.
  • each block 15 is separated by the separation space 16, the determination accuracy of the light and darkness of the cell in each block 15 is improved particularly when the photographed image is blurred or blurred.
  • the block 18 is a position correction pattern.
  • the position correction pattern 18 all nine cells of the block 18 are dark, but the shape of the position correction pattern 18 is not limited to this, and any shape can be used as long as it can be identified as a position correction pattern.
  • the position correction pattern 18 is desirably provided in a block of (CX + 7N, CY + 7M) (N and M are integers, but no code protrudes) when the central block of the basic pattern portion is (CX, CY).
  • the position correction pattern 18 is included, the redundancy increases and the recognition accuracy can be improved.
  • the position of the position correction pattern 18 is estimated from the three recognized position detection patterns and found. From the three position detection patterns and one position correction pattern, the calculation accuracy of each cell of the two-dimensional code 10 is improved by projective transformation in a two-dimensional space using a set of four points as parameters. As described above, the two-dimensional code 10 of FIG. 3A further increases the accuracy of cell position detection in the two-dimensional code 10 by providing the position correction pattern 18.
  • any combination of 4 position detection patterns and 1 position correction pattern can be used to remove dirt. Although tolerance is weakened, recognition is possible.
  • the position detection pattern and the position correction pattern are used to specify the cell coordinates, but have different roles. It is desirable that the position detection pattern can be identified independently at the time of analysis and the same shape does not appear inside and outside the code. When an erroneous position detection pattern is detected, it is necessary to determine whether or not the code is a two-dimensional code, and analysis takes time. Moreover, it is desirable that the shape is not complicated, and it is difficult to separate from other parts of the code, which takes time for identification.
  • the position correction pattern is detected after the position of the two-dimensional code is specified by the position detection pattern.
  • the position correction pattern is found by searching for a certain range in a state where the location of the position correction pattern is roughly known. With the position correction pattern, it is possible to increase the accuracy of calculation of the coordinates of the cell, and to increase the possibility of recognition even when the two-dimensional code is bent and the cells become non-uniform.
  • FIG. 4 is a diagram showing a modification of the two-dimensional code of the first embodiment.
  • the number of position detection patterns may be one. However, when there is one position detection pattern, it is necessary to use the position detection pattern 52 that can uniquely determine the direction as shown in FIG.
  • FIG. 5A, FIG. 5B, and FIG. 5C are diagrams showing a second embodiment.
  • the second embodiment is different from the first embodiment in that a peripheral portion 20 is provided around the basic pattern portion. If the actual data cannot be recorded in the basic pattern part due to an increase in the spec data or the actual data, the actual data is recorded in the peripheral part 20.
  • FIG. 5A shows an example having a square basic pattern portion 11.
  • FIG. 5B shows an example in which the two-dimensional code 10 has a vertically long basic pattern portion 11 as compared with FIG. 5A and further has a peripheral portion 20.
  • the basic pattern portion 11 can be designed arbitrarily in shape (square, rectangle), size, and the like.
  • FIG. 5C shows an example in which, in the basic pattern portion 11, the position detection patterns 12A-12D are provided on the inner side away from the boundary of the basic pattern portion 11, in other words, at positions that are not corners. As shown in FIG. 5C, the position detection patterns 12A-12D do not need to be provided along the corners or boundaries of the basic pattern portion 11.
  • FIG. 6A is a diagram (part 1) illustrating an example of the data arrangement of the two-dimensional code according to the second embodiment.
  • FIG. 6B is a diagram (part 2) illustrating an example of the data arrangement of the two-dimensional code according to the second embodiment.
  • FIG. 6A is different from FIG. 3A showing the data arrangement of the two-dimensional code of the first embodiment in that an actual data recording block 19 exists.
  • FIG. 7A to 7D and FIG. 8 are diagrams showing another example of the second embodiment.
  • the number of position detection patterns may be one.
  • the arrangement of the position correction pattern 38 and the like is not essential as long as the rotation direction of the position detection pattern can be uniquely specified.
  • the code of the second embodiment is advantageous in recognizing a plurality of two-dimensional codes when a plurality of position detection patterns are used.
  • a plurality of position detection patterns of the plurality of two-dimensional codes appear in one captured image.
  • a plurality of (three or more) position detection patterns are arranged at the four corners of a square (rectangular) two-dimensional code, many similar position detection patterns exist in the image. This makes it difficult to narrow down the combinations of correct position detection patterns.
  • the processing time is shortened.
  • the code size is changed as in the second embodiment, the distance between the position detection patterns in the same two-dimensional code is fixed and the version is high by always fixing the size of the basic pattern portion.
  • the size of the peripheral part 20 is large, the distance from the position detection pattern of another two-dimensional code becomes long. Therefore, since combinations other than the distances between correct position detection patterns can be easily excluded, the number of combinations to be determined can be reduced. This effect is great if the shape of the two-dimensional code is square, but even if it is a rectangular two-dimensional code, the effect of reducing the combination can be obtained.
  • FIG. 9A and FIG. 9B are diagrams for explaining changes according to the version information of the two-dimensional code.
  • the two-dimensional code 10 of the first embodiment is a minimum-size code having only the basic pattern portion 11 shown in FIG. 9A.
  • the two-dimensional code 10 of the second embodiment can expand the size of the peripheral portion 20 in the vertical direction and the horizontal direction, respectively.
  • the horizontal version is 2 and the vertical version is 3, it is expressed as version horizontal 2 ⁇ vertical 3.
  • the two-dimensional code 10 is based on version horizontal 1 ⁇ vertical 1 having the same shape as the basic pattern portion, and the size of the entire two-dimensional code increases with the number of versions. Each time the version is increased, the size increases by one unit. In this example, the version can be selected from 1 to 26, but is not limited to this.
  • the two-dimensional code can be designed so that the size of the two-dimensional code can be variably designed using the version information in a state where the distance between the plurality of position detection patterns is fixed.
  • the horizontal size of the peripheral portion 20 is changed to the left side (Y2), the right side (Y3), the left side (Y4), the right side (Y5),. It increases by 1 unit alternately. In other words, if the version number that increases by 1 is an even number, one unit is added on the left side. Similarly, if the number of versions increasing by 1 is an odd number, one unit is added on the right side. Therefore, when the horizontal version is an odd number, the left and right widths of the peripheral portion 20 are equal, and when the horizontal version is an even number, the left side of the peripheral portion 20 is one unit wider than the right side.
  • the vertical size of the peripheral portion 20 is increased (T1), lower (T2), upper (T3), and lower (T4) as the version number increases. ) ... Increase by 1 unit alternately.
  • the version number that increases by 1 is an even number, one unit is added to the upper side.
  • the number of versions increasing by 1 is an odd number, 1 unit is added on the lower side. Therefore, when the vertical version is an odd number, the upper and lower widths of the peripheral portion 20 are equal, and when the vertical version is an even number, the upper side of the peripheral portion 20 is one unit wider than the lower side.
  • the position of the basic pattern portion is a predetermined position that serves as a reference in the movement of the basic pattern portion.
  • FIG. 10 is a diagram showing a bit string of version information, and shows a version (Version), the number of bits necessary to represent it, and a bit string. Two pieces of version information of such a data structure are provided for the vertical direction and the horizontal direction.
  • FIG. 7A to 7D and the like illustrate a code in which the shape of the two-dimensional code is a rectangle.
  • the shape is limited to a square, only one version information of the specification data is necessary.
  • the amount of data representing version information increases, and the version information of spec data also increases according to the number of shapes that can be read. . That is, the data amount of the version information increases according to the degree of freedom in selecting the outer shape of the two-dimensional code.
  • the two-dimensional code 10 of the second embodiment has data as specification information in the order of horizontal version information and vertical version information.
  • the horizontal version is determined as 1-3, and the 3rd and subsequent bits are the vertical version information. . If it is “11”, the next 3 bits are taken out. If it is not “111”, the horizontal version 4-10 is determined, and the 6th bit and later become the vertical version information. In the case of “111”, the next 4 bits are taken out, the horizontal version 11-26 is determined, and the 10th and subsequent bits become the vertical version information.
  • the vertical version is also extracted in the same way, and the bits after the bit string of the spec data representing the horizontal and vertical version information become actual data. Therefore, in the version information of FIG. 10, the number of bits necessary to represent the version may be used. For example, if the version 1-3 is represented, only 2 bits are required, and the third and subsequent bits necessary for representing other versions can be used for other data.
  • the first embodiment is a minimum code in which the horizontal version bit string is “00” and the vertical version bit string is “00”. In this way, when the size of the two-dimensional code is small, the number of bits of the version information is reduced. When the size of the two-dimensional code is large, the number of bits of the version information is increased, thereby fixing the data amount of the version information. Compared to the case, the ratio of the data amount of the version information to the data amount of the two-dimensional code can be made more constant. According to this embodiment, when the code size is small, the problem that the relative data amount of the spec information increases and the data efficiency is poor is solved.
  • a blank area when a blank area is provided in the code, information regarding this area is provided.
  • a blank embedding flag indicating that there is a blank area and blank position information indicating information regarding the blank area are provided. Include in spec data.
  • the information on the blank area when there is a blank area can also improve the efficiency of the information amount of the spec data by increasing or decreasing the number of bits according to the version information.
  • the following is an example of a two-dimensional code having a degree of freedom.
  • degree of freedom information for providing functionality as spec data is added, and actual data that can be recorded in the basic pattern portion is reduced.
  • Two degrees of freedom are affected by the function and the change range of the function.
  • a function for example, as a change in the size of the two-dimensional code, a square case and a rectangular case are compared.
  • a square can be represented by a single parameter of the length of one side, but a rectangle needs two parameters of the length of a vertical and horizontal side. Therefore, it can be said that the square has one function and the rectangle has two functions. If the two-dimensional code is allowed to have a blank area, additional functions are added.
  • the degree of freedom is obtained by multiplying the function and the change range of the function.
  • the greater the degree of freedom the more choices of two-dimensional code shapes that can be selected by the user.
  • One type of code can meet the needs of more users.
  • By providing functionality to the 2D code it is possible to provide an area where characters and other patterns can be embedded in the 2D code, to enhance the design of the 2D code, and to limit the back cover of folders, etc. It is possible to change the shape of the two-dimensional code in accordance with the set space.
  • FIG. 11 is a diagram illustrating an example of a two-dimensional code according to the first embodiment.
  • 12 and 13 are diagrams illustrating an example of the second embodiment.
  • the spec data may have basic pattern part movement information.
  • peripheral portions are sequentially added to the outside of the basic pattern portion in the vertical and horizontal directions according to the version information, the basic pattern portion is often located at the approximate center of the two-dimensional code. However, it may be desired to arrange the basic pattern portion at an arbitrary position other than the center of the two-dimensional code.
  • the basic pattern part movement amount information is information for designating a movement amount from a predetermined position which is a reference of the basic pattern part in the two-dimensional code. A detailed example of the basic pattern part movement information will be described later.
  • the specification information includes peripheral error correction level information in the peripheral part 20, blank information indicating a blank area in the peripheral part 20, and basic pattern part movement information indicating information related to movement of the basic pattern part 11.
  • the blank information includes a blank embedding flag indicating whether or not to embed a blank and blank position information indicating a blank area when embedding a blank.
  • the basic pattern portion movement information includes a basic pattern portion movement flag indicating whether or not the basic pattern portion 11 is to be moved, and a basic pattern portion indicating a movement amount from a predetermined position when the basic pattern portion 11 is moved. Travel amount information.
  • spec data which is bit data representing spec information
  • horizontal version information is entered.
  • the horizontal version information is a value from 1 to 26 and is represented by 2 to 9 bits.
  • vertical version information is entered in the same manner.
  • peripheral error correction level information is entered.
  • the peripheral error correction level information is represented by 2 bits and can take four types of peripheral error correction levels. The peripheral error correction level information will be described later.
  • a blank embedding flag indicating the presence or absence of a blank area and a basic pattern portion movement flag indicating whether or not the basic pattern portion has moved from a predetermined position are entered.
  • the blank embedding flag and the basic pattern portion movement flag are represented by 1 bit and are 1 (present) or 0 (not present).
  • blank position information indicating blank position information is added after the basic pattern portion movement flag.
  • the basic pattern part movement flag is 1, the basic pattern part movement amount information is added after the blank position information when the blank embedding flag is 1, and when the blank embedding flag is 0, the basic pattern part movement information is added. Added after the flag. If an area that can be stored in the basic pattern portion remains after these pieces of information, actual data is subsequently stored.
  • the type of specification information, order, data amount, and flag handling are not limited to the above, but the specification data must be interpreted in the same way in encoding and decoding.
  • the blank information consists of a blank embedding flag indicating the presence or absence of a blank area and blank position information indicating blank area information.
  • the blank embedding flag is 1-bit data having a status of 1 (present) and 0 (absent). When the flag is 1, there is blank position information, and when it is absent, the blank position information can be omitted. As a result, information when there is no blank can be reduced, and blank position information is included in the spec data only when there is a blank.
  • the blank embedding flag may represent the number of blank areas in addition to the presence or absence of a blank. For example, the blank embedding flag is set to 2 bits and has a value of 0 to 3 representing the number of blank positions. In the case of 0, there is no blank position information. In the case of 3, three pieces of blank position information are consecutively entered in the specification data.
  • the blank position information specifies the size / offset in units of blocks and holds this information as information indicating the blank position.
  • the offset of the block coordinates is expressed as (n, m) with the block at the upper left corner of the blank area as the origin.
  • FIG. 14 is a diagram illustrating an example of a two-dimensional code according to the second embodiment in which a blank area is provided.
  • the blank area in FIG. 14 has an offset of (1, 1), and the size can be expressed as 9 horizontal blocks and 1 vertical block. However, blank blocks must not cover the basic pattern part.
  • the amount of data of the blank position information can be varied according to the size of the peripheral portion.
  • the version is horizontal 9 ⁇ vertical 9
  • the number of horizontal blocks of the code is 15, and the number of vertical blocks of the code is 15.
  • the maximum number of horizontal blocks is 15, and the maximum number of vertical blocks is 15.
  • the blank position information requires a total of 16 bits, with 4 bits for each vertical and horizontal offset and 4 bits for each vertical and horizontal block.
  • the possible offset range is (0, 0) to (16, 16). Since the maximum number of blocks is 17, the space position information requires 20 bits in total, with 5 bits for each vertical and horizontal offset and 5 bits for the vertical and horizontal sizes. Thus, the amount of data required can be increased or decreased according to the number of blank areas, the blank area range, and the code size.
  • the blank position information specifies the range in which all areas are bright cells in block units. Since it is not a recognition target, end users can put patterns, photographs, and characters in this area to help visualize the code information and improve the design of the two-dimensional code. Since the blank area is ignored at the time of analysis, the embedded photograph / picture does not affect the analysis.
  • the following methods can be considered as a method of representing the blank area.
  • (1) Method of designating block start coordinates and block width / height (2) Method of designating block start coordinates and end point coordinates (3) Indicate several block coordinates and leave the inside of the coordinates blank (4) A method in which these designated units are designated by cells instead of blocks. (5) A method in which several blank areas are reserved and designated in the code. (6) (1)-( 5) In addition to the method of changing the enlargement / reduction ratio Further, when a plurality of blank areas are provided, a different method may be used for each area.
  • FIG. 15 is a diagram showing an example of the two-dimensional code of the second embodiment in which the basic pattern portion is not moved by 3 ⁇ 3 in the horizontal direction.
  • FIG. 16 is a diagram showing an example of the two-dimensional code of the second embodiment in which the version is horizontal 3 ⁇ vertical 3 and the basic pattern portion 11 is moved from the center with respect to the two-dimensional code 10 including the peripheral portion.
  • the basic pattern portion has moved one block to the right and does not move in the vertical direction compared to FIG. 15.
  • the basic pattern portion 11 is not limited to having the center as a reference position with respect to the area of the two-dimensional code 10.
  • the basic pattern portion movement information is information indicating how the basic pattern portion 11 is arranged with respect to the area of the two-dimensional code 10, and is determined for each of the horizontal direction and the vertical direction.
  • the basic pattern portion movement information includes a basic pattern portion movement flag indicating whether or not there is movement, and basic pattern portion movement amount information indicating a movement amount from a predetermined position serving as a reference of the basic pattern portion.
  • the predetermined position in the second embodiment is the position of the basic pattern portion in FIG. 9B.
  • the basic pattern part movement flag is 1-bit data having a state of 1 (with movement) and 0 (no movement). When the basic pattern part movement flag is 0, there is basic pattern part movement amount information.
  • the basic pattern part movement amount information can be omitted. As a result, information when the basic pattern portion is not moved can be reduced, and the basic pattern portion movement amount information is recorded as spec data only when the basic pattern portion is not moved.
  • the basic pattern portion movement amount information represents a movement amount based on the position of the basic pattern portion when the basic pattern portion does not move.
  • FIG. 17 is a diagram for explaining how the position of the basic pattern portion 11 is represented by the basic pattern portion movement information.
  • version 1 in the case of version 1, only the basic pattern portion 11 is provided, and block strings are added to the left side and the right side as the version increases.
  • the position where the basic pattern portion 11 can move is limited to the number of versions. For example, if the version number is 2, the position to which the basic pattern portion 11 can move is whether it moves or moves one block row to the left. If the version number is 3, the position where the basic pattern portion 11 can move is whether to move, move one block row to the left, or move one block row to the right. In other words, as the number of versions increases by 1, the position where the basic pattern portion 11 can move increases by one. Therefore, the amount of data necessary to represent the basic pattern portion movement amount information changes according to the number of versions.
  • numbers from ⁇ 3 to 2 indicate basic pattern portion movement amount information in units of blocks of the basic pattern portion 11.
  • 0 indicates no movement
  • a negative value indicates basic pattern portion movement amount information to the left
  • a positive value indicates basic pattern portion movement amount information to the right.
  • the movement amount in FIG. 15 is 0, and the movement amount in FIG.
  • the basic pattern portion movement amount information can be omitted as spec data if the basic pattern portion movement flag is set to 0.
  • the basic pattern portion movement flag is set to 1 as the basic pattern portion movement information, and information indicating the horizontal movement amount and information indicating the vertical movement amount are included as the basic pattern portion movement amount information. Record in spec data.
  • FIG. 18 is a diagram illustrating an example in which the basic pattern portion 11 is moved in the two-dimensional code 10 of version horizontal 19 ⁇ vertical 19.
  • reference numeral 11 indicates the basic pattern portion 11 that has not moved.
  • the basic pattern portion position is 0 in the horizontal direction and 0 in the vertical direction.
  • the position of the basic pattern portion of the basic pattern portion 11 indicated by reference number 11A is -8 in the horizontal direction and -8 in the vertical direction.
  • the basic pattern portion position of the basic pattern portion 11 indicated by reference number 11B is 9 in the horizontal direction and -9 in the vertical direction.
  • the basic pattern portion position of the basic pattern portion 11 indicated by reference number 11C is ⁇ 5 on the horizontal side and 4 on the vertical side.
  • the position of the basic pattern portion of the basic pattern portion 11 indicated by reference numeral 11D is 0 in the horizontal direction and 9 in the vertical direction.
  • the position of the basic pattern portion of the basic pattern portion 11 indicated by reference number 11E is 9 in the horizontal direction and 9 in the vertical direction.
  • the unit of the basic pattern portion movement is represented by a block, but it may be a cell unit. Further, the unit of movement may be a value larger than 2 instead of 1.
  • the version of the two-dimensional code 10 of horizontal 19 ⁇ vertical 19 in FIG. 18 has a combination of 19 horizontal and 19 vertical, but by changing the unit of movement to 2 blocks, 9 horizontal and vertical There are nine combinations, which can reduce the amount of information in the spec data.
  • the basic pattern part movement information includes the basic pattern part movement amount information indicating the movement amount from the center of the two-dimensional code, but instead of the basic pattern part movement amount information, the position of the basic pattern part in the two-dimensional code.
  • Basic pattern portion position information representing the above may be used.
  • the basic pattern portion position information can be used as the block coordinates of the basic pattern portion 11 when the upper left corner of the code has the upper left corner of the basic pattern portion 11 as a reference. For example, in FIG. 16, since the upper left corner of the basic pattern portion 11 is at the block coordinates (2, 1), the data indicating 2 blocks horizontally and 1 block vertically is the spec data as the basic pattern portion position information. To be recorded.
  • the movement pattern of the basic pattern part is defined in advance as four patterns of “upper left”, “upper right”, “lower left”, and “lower right”, and 2 bits are provided as basic pattern part position information, and 0-3 Is assigned to the movement pattern.
  • the two-dimensional code 10 of FIG. 18 when the value indicated by the basic pattern portion position information is “upper left”, the horizontal is ⁇ 9, the vertical is ⁇ 9, and when “lower right”, the horizontal is 9. , The vertical is 9.
  • the basic pattern portion movement amount information can always be suppressed to 2 bits, and the spec data can be reduced. Furthermore, by adding the “middle” to the above movement pattern, and by eliminating the basic pattern portion movement flag, the basic pattern portion movement information is always indicated by 3 bits, and the basic pattern portion can be obtained with a small amount of information. The movement of the part can be realized.
  • the spec data can have peripheral error correction level information.
  • the error correction amount of the peripheral real data can be recorded in the peripheral error correction level information as the peripheral error correction level.
  • the peripheral error correction level is selected from four types of 10%, 20%, 30%, and 40%. As a result, it is possible to increase the error correction level when recognizing a code used in an environment with poor shooting conditions, and decrease it when it is not. In this case, 2 bits are secured as the peripheral error correction level information in the specification data.
  • the peripheral error correction level affects the data amount of the peripheral real data. If the peripheral error correction level is low, the data amount increases. If the peripheral error correction level is high, the data amount decreases.
  • the peripheral error correction level information is unnecessary when the peripheral portion does not exist (version is horizontal 1 ⁇ vertical 1) and can be omitted from the specification data, and the amount of actual data can be increased accordingly.
  • the number of blocks having data in the peripheral portion is determined by the version information, the blank information, and the position correction pattern. This determines the amount of data that can be recorded in the peripheral area.
  • the data amount of the peripheral real data and the peripheral error correction data is determined from the peripheral data amount and the peripheral error correction level information.
  • the arrangement of the peripheral data is, for example, the peripheral real data is recorded for each block in order from the upper left to the right, and when one line has been recorded, Record in order from right to left.
  • the peripheral error correction data is recorded after the peripheral real data. In this case, data is not recorded in the basic pattern portion, blank area, and position correction pattern.
  • the specification data may have style information.
  • the style information can hold four states: vertical and horizontal version variable, vertical only version variable, horizontal only version variable, and version invariant (no peripheral part).
  • the data amount of the version information is changed.
  • the amount of data of the version information is retained in the vertical and horizontal versions when the vertical and horizontal versions are variable, and the vertical and horizontal versions are variable.
  • the version information amount can be made variable by the style information, such as no version information is provided for other than the above, and a code shape having a high degree of freedom is allowed.
  • various shapes such as circles and stars can be considered as style information, and the shape can be freely changed according to the code.
  • the peripheral portion need not be adjacent to the basic pattern portion. Therefore, various peripheral portions may be placed at locations away from the basic pattern portion. Therefore, the peripheral portion can take any shape regardless of the shape of the basic pattern portion.
  • the peripheral part is independent of the basic pattern part. Therefore, it is not necessary for the peripheral portion and the basic pattern portion to have the same square cell shape. Further, it is not necessary to make the cell size the same in the basic pattern portion and the peripheral portion. For example, in order to make the cells of the basic pattern portion easier to recognize, the cells may be made larger than the peripheral cells.
  • the data amount of the peripheral block need not be the same as the data amount of the basic pattern block. Moreover, the block of a peripheral part and the block of a basic pattern part may differ in the shape of a block.
  • the data amount of the spec data can be increased or decreased according to the content of the spec data, and the remaining data in which the spec data of the basic pattern portion is recorded. Since the actual data is recorded in the area, it is possible to suppress a decrease in data efficiency.
  • the amount of spec data that can be recorded in the basic pattern part can be increased or decreased according to the degree of freedom of external shape selection to be given to the two-dimensional code, so the two-dimensional code with various functions can be flexibly changed. It is possible.
  • the configuration in which the peripheral portion is provided around the basic pattern portion can be realized without increasing or decreasing the data amount of the spec data and without including the actual data in the basic pattern portion.
  • the distance between the plurality of position detection patterns is constant. It is obtained in the same manner as in the embodiment.
  • the position detection pattern used in the first embodiment and the second embodiment includes a first position detection pattern 12A having a square shape within a square frame and a second position having a square frame shape smaller than the first position detection pattern 12A. It is preferable to have the detection pattern 12D and the rectangular third position detection pattern 12B and the fourth position detection pattern 12C.
  • the four position detection patterns 12A-12D are arranged at the four corners (four corners) of the basic pattern portion 11.
  • the first position detection pattern 12A and the second position detection pattern 12D are arranged diagonally
  • the third position detection pattern 12B and the fourth position detection pattern 12C are arranged diagonally
  • the third position The long sides of the detection pattern 12B and the fourth position detection pattern 12C are the same length as the side of the first position detection pattern 12A
  • the short sides of the third position detection pattern 12B and the fourth position detection pattern 12C are the second side.
  • the length is the same as the side of the position detection pattern 12D, and one of the short sides of the third position detection pattern 12B and the fourth position detection pattern 12C is disposed on the extension of the side of the first position detection pattern 12A, and the third One of the long sides of the position detection pattern 12B and the fourth position detection pattern 12C is desirably arranged on an extension of the side of the second position detection pattern 12D.
  • the position detection patterns 12A to 12D shown in FIG. 1 can be easily identified independently, and even if some of the position detection patterns cannot be identified due to dirt or the like, the position detection patterns 12A to 12D The coordinate position of the cell in the two-dimensional code can be easily obtained.
  • the position detection pattern can be variously modified in addition to the examples shown in the first embodiment and the second embodiment.
  • the number of position detection patterns is one or more, and there is no upper limit. However, in reality, the maximum number is about four, and even larger numbers are less effective, and conversely data efficiency is lowered. Further, there may be a case where a plurality of position detection patterns have the same shape and at least a part of which differs. Further, the position of the position detection pattern in the basic pattern portion 11 is not limited to the corner of the basic pattern portion 11, and part or all of one or a plurality of position detection patterns are positioned other than the corner in the basic pattern portion 11. May be. In other words, the positional relationship between the position detection pattern and the data area 13 can be arbitrarily determined in the basic pattern portion 11.
  • Representative examples other than those shown in the first and second embodiments include a combination of three position detection patterns and one position correction pattern having different shapes, and a total of the position detection pattern and the position correction pattern.
  • a combination of four or more, a combination of one position detection pattern and one position correction pattern, or the like can be considered. If the combination of three position detection patterns having different shapes and one position correction pattern is used, the coordinate position of the cell in the two-dimensional code can be obtained relatively easily.
  • FIG. 19 is a diagram illustrating a hardware configuration of a creation system that creates and provides a two-dimensional code, and illustrates an example of a client / server configuration.
  • the creation system has user hardware that is operated by a user who decides specifications and requests creation of a two-dimensional code, and system hardware that creates and provides the requested two-dimensional code.
  • the user hardware includes a user processing device 71 such as a computer and a storage device 72 such as a magnetic disk.
  • the system hardware includes a system processing device 75 such as a computer and a storage device 76 such as a magnetic disk.
  • the user processing device 71 and the system processing device 75 are connected by a communication line or the like and configured to be communicable.
  • printing is performed on the user side, but may be performed on the system side or another printing station.
  • Any medium may be used for printing the two-dimensional code, such as paper, a resin plate, and a housing surface.
  • the image to be embedded may be printed in advance as the medium, and the two-dimensional code is printed after setting the embedded pattern to be printed within the two-dimensional code pattern area.
  • the printing apparatus is not limited as long as it can print a two-dimensional code on these media.
  • the printing apparatus is a simple printer, a precision printer, a printing apparatus, or the like, and may be capable of color printing as well as monochrome printing.
  • the created two-dimensional code may be transmitted as data of the two-dimensional code to the user via a communication line without printing. The user transmits data to display the created two-dimensional code on a third party display or the like as necessary.
  • FIG. 19 shows an example of a client / server configuration creation system, but the creation system is not limited to this. There may be various modifications, such as a configuration that is issued by an encoding software on the client PC and issued from a USB-connected printer, or a configuration that is issued from a handy-type terminal / printer. Further, the process of creating the two-dimensional code may be recorded on a non-transitory storage medium readable by a computer as a computer-executable program.
  • FIG. 20 is a flowchart showing a procedure of an encoding process in which a user accesses system hardware via user hardware and creates a desired two-dimensional code.
  • a case is shown in which a version of a two-dimensional code larger than version horizontal 1 ⁇ vertical 1 is created.
  • version horizontal 1 ⁇ vertical 1 there is no peripheral portion, so the processing related to it is substantially Disappear.
  • step S10 the user starts the main encoding process.
  • step S11 the user inputs a message to be recorded in the two-dimensional code.
  • step S12 the user inputs two-dimensional code version information, a peripheral error correction level, blank information, and basic pattern portion movement information.
  • the user processing device 71 notifies the system processing device 75 of the input message, version information, peripheral error correction level, blank information, and basic pattern portion movement information.
  • step S13 the arrangement of the basic pattern portion and the peripheral portion is determined on the system side based on the transmitted information.
  • step S14 the data amount of the spec data is determined based on the transmitted information.
  • step S15 the arrangement and number of blank area blocks are determined on the system side based on the transmitted information.
  • step S16 the arrangement and number of blocks of the position correction pattern are determined.
  • step S17 the number of peripheral error correction data blocks is determined from the peripheral error correction level.
  • step S18 the size of actual data that can be recorded in the two-dimensional code is determined.
  • step S19 the size of actual data required to express the message in the two-dimensional code is calculated.
  • step S20 it is determined whether the data size of the two-dimensional code obtained in S18 is the actual data of S19 or the data size is insufficient, and if the data size is insufficient, the user processing device 71 is determined. If the data size is sufficient, the process proceeds to step S22.
  • step S21 the user processing device 71 notifies the user of the occurrence of an error that the data size is insufficient to represent the input message in the form of the input two-dimensional code, and the process ends.
  • step S22 spec data is created.
  • step S23 actual data is created.
  • step S24 the spec data and the actual data are combined.
  • step S25 the specification data and actual data that can be recorded in the basic pattern portion are arranged in the basic pattern portion.
  • step S26 the basic pattern portion error correction data is calculated from the data recorded in the basic pattern portion and arranged.
  • step S27 the actual data that could not fit in the basic pattern part is arranged in the peripheral part as peripheral real data.
  • step S28 peripheral error correction data is calculated from the peripheral real data and arranged.
  • step S29 the two-dimensional code information is output to the user processing device 71 as an image.
  • step S30 the main encoding process ends.
  • FIG. 21 is a diagram illustrating a hardware configuration of a two-dimensional code analysis apparatus that reads the two-dimensional code of the second embodiment and analyzes the two-dimensional code.
  • the two-dimensional code analysis apparatus includes a reading unit 80, a computer (two-dimensional code analysis processing unit) 84, a display 85, and a communication interface 86.
  • the reading unit 80 includes a lens 81, an image sensor 82, and an analog / digital converter (AD) 83, and outputs the photographed two-dimensional code digital image data to the computer 84.
  • the two-dimensional code analysis apparatus shown in FIG. 21 is widely used, and in recent years, portable terminals have also realized functions similar to those of the two-dimensional code analysis apparatus. Further, the process of analyzing the two-dimensional code may be recorded on a non-transitory storage medium readable by a computer as a computer-executable program.
  • FIG. 22 and FIG. 23 are flowcharts showing the procedure of the decoding process for analyzing the two-dimensional code photographed by the user.
  • This decoding process assumes a case where a plurality of two-dimensional codes of the second embodiment are imprinted on one screen.
  • the decoding process includes an analysis main process and an information extraction process. First, the analysis main process will be described.
  • step S101 analysis main processing is started.
  • step S102 a captured image of a two-dimensional code is input.
  • step S103 a binary image of the input photographed image is created.
  • the input photographed image is a color image such as an RGB image
  • it is once converted to a grayscale image, and the average of the maximum luminance value and the minimum luminance value in the image is set as a threshold value.
  • Various methods have been proposed as a conversion method to a gray scale image into a color image, and further to a conversion into a binarized image, and are not limited to the above conversion methods.
  • step S104 position detection pattern candidates are detected. Specifically, when a binarized image is scanned, a pattern in which dark / dark or dark / light / dark / dark appears in a constant ratio in the horizontal direction and the vertical direction in the scanning direction is detected.
  • step S105 four types of position detection pattern combinations are created, and it is determined whether there are any four types of position detection pattern combinations that are not considered. If they remain, the process proceeds to step S106. Proceed to In step S106, when there is at least one combination in which the distance between the two position detection patterns has an inappropriate value, it can be determined that the combination is not correct. Thus, erroneous detection is excluded based on the distance between the position detection patterns.
  • step S107 information is extracted regarding the combined position detection pattern as being the same two-dimensional code position detection pattern. This process will be described later with reference to FIG.
  • step S108 depending on the result of whether or not the information has been successfully extracted, the process proceeds to step S109 if successful, and in the case of failure, the process of excluding the combination of failed position detection patterns is performed, and then to step S105. Return.
  • step S109 combinations of position detection patterns for which information has been successfully extracted are listed.
  • step S110 the four position detection pattern candidates used for the two-dimensional pattern that has been successfully extracted are excluded, and the process returns to step S105. If there is an unused position detection pattern candidate in the range of the two-dimensional pattern from which data has been successfully extracted, it is also excluded from the candidate.
  • step S111 it is determined whether or not a combination of three position detection pattern candidates that have not been considered remains. If not, the process proceeds to step S120. If remaining, the process proceeds to step S112.
  • step S112 the position of the position correction pattern is estimated from the three position detection pattern candidates.
  • step S113 it is determined whether there is a position correction pattern. If there is, the process proceeds to step S115, and if not, the process proceeds to step S114.
  • step S114 one position detection pattern candidate is complemented from the three three position detection pattern candidates, and the process proceeds to step S115.
  • step S115 if there is at least one combination in which the distance between the two position detection patterns has an inappropriate value, it can be determined that the combination is not correct. Even when complemented with a position correction pattern or the like, the coordinates of the position detection pattern assumed to be missing are estimated and the distance is verified.
  • step S116 information is extracted regarding the combined position detection pattern as being the same two-dimensional code position detection pattern. This process will be described later with reference to FIG.
  • step S117 depending on the result of whether or not the information has been successfully extracted, the process proceeds to step S118 if successful, and in the case of failure, the process of excluding the failed position detection pattern combination is performed, and then to step S111. Return.
  • step S118 combinations of position detection patterns for which information has been successfully extracted are listed.
  • step S119 the three position detection pattern candidates used for the two-dimensional pattern that has been successfully extracted are excluded, and the process returns to step S111. If there is an unused position detection pattern candidate in the range of the two-dimensional pattern from which data has been successfully extracted, it is also excluded from the candidate.
  • step S120 the listed position detection pattern message is output, and the process proceeds to step S121.
  • step S121 the analysis main process ends.
  • step S200 an information extraction process is started.
  • step S201 the coordinates of the cells in the block belonging to the basic pattern portion are calculated from the position detection pattern.
  • step S202 combined data and basic pattern portion error correction data are extracted.
  • step S203 error detection processing based on the basic pattern portion error correction data is performed. If there is an error, the process proceeds to step S204, and if there is no error, the process proceeds to step S207.
  • step S204 it is determined whether error correction is possible from the cell data in the block. If error correction is impossible, the process proceeds to step S205, and if error correction is possible, the process proceeds to step S206. In step S205, it is notified that information extraction from the two-dimensional code has failed, and the process ends.
  • step S206 error correction processing of the combined data is performed.
  • step S207 the spec data is extracted from the combined data, and the two-dimensional code version, peripheral error correction level, blank information, and basic pattern portion movement information are specified.
  • step S208 a position correction pattern for the peripheral portion of the basic pattern portion is calculated based on the spec data.
  • step S209 based on the specification data, the peripheral portion actual data excluding the peripheral position correction pattern and the blank area, and the peripheral error correction data block are specified.
  • step S210 the total number of blocks of the peripheral real data and the peripheral error correction data is calculated, and the number of blocks is calculated from this and the peripheral error correction level.
  • step S211 the coordinates of the cells in the block belonging to the peripheral part are obtained.
  • step S212 peripheral real data and peripheral error correction data are extracted.
  • step S213 an error is detected from the peripheral error correction data. If there is an error, the process proceeds to step S214, and if there is no error, the process proceeds to step S217. In step S214, it is determined whether error correction is possible. If error correction is impossible, the process proceeds to step S215, and if error correction is possible, the process proceeds to step S216.
  • step S215 it is notified that information extraction from the two-dimensional code has failed, and the process ends.
  • step S216 data error correction processing is performed.
  • step S217 the actual data obtained by removing the specification data from the basic pattern part data and the actual data in the peripheral part are connected.
  • step S218 the actual data is analyzed.
  • step S219 a message is extracted.
  • step S220 since the information has been successfully extracted from the two-dimensional code, a message is displayed and the process ends.
  • the two-dimensional code of the present invention has a position detection pattern in a place where dirt or the like is not easily generated by moving the basic pattern portion including the position detection pattern to an arbitrary position in the two-dimensional code. Can be moved. For example, it is also possible not to arrange the position detection pattern at a portion where bending occurs, such as a portion that is easily creased, a portion that is touched by a person, or a saddle stitch portion. Thereby, the case where it cannot recognize by not finding a position detection pattern can be reduced, and recognition accuracy increases as a result.
  • the function to move the position detection pattern in the two-dimensional code by providing a peripheral part outside the basic pattern part including the position detection pattern and moving the basic pattern part in the area of the two-dimensional code including the peripheral part. Therefore, the amount of spec data increases. Therefore, in the two-dimensional code of the present invention, the data amount of the spec data recorded in the basic pattern portion is variable according to the specification, and if there is a remaining portion in the basic pattern portion, the actual data is recorded, thereby The reduction in data efficiency when the amount is small is suppressed.
  • the function itself of moving the position detection pattern within the two-dimensional code by moving the basic pattern portion within the area of the two-dimensional code including the peripheral portion by providing a peripheral portion outside the basic pattern portion is as described above.
  • the present invention is not limited to a simple data structure, and can be realized with a data structure of a conventional two-dimensional code.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)

Abstract

 二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、基本パターン部と、前記基本パターン部の外側に配置される周辺部と、を備え、前記基本パターン部は、セル位置を特定するための位置検出パターンと、前記二次元コード領域内の前記基本パターン部の位置を示す基本パターン部移動情報と、を含むことを特徴とする二次元コード。

Description

二次元コード、二次元コードの解析システム及び二次元コードの作成システム
 本発明は、二次元コード、二次元コードの解析システム及び二次元コードの作成システムに関する。
 二次元コードは、一次元コードと比較して、狭い面積に多くの情報を持つことができるデータ効率の高いコードであり、物品管理や、携帯電話を用いたウェブ誘導など、様々な用途で広く活用されている。
 二次元コードは、撮影された画像の位置関係を検出するため、所定形状の位置検出パターンを有する。位置検出パターンは、二次元コード内で、他の部分と容易に区別可能な形状を有する。解析時は、撮影した二次元コードの画像において、位置検出パターンを検出し、位置検出パターンの位置関係に基づいて変換を行う。位置検出パターンの検出は、解析の基礎となる処理であり、位置検出パターンが認識できなかった場合には、コードは認識できないため、位置検出パターンを認識させやすい構成とすることは、コードの解析の精度にとって重要な要素となる。
 従来の二次元コードとしては、特許文献1のものが知られている。
特開平7-254037号公報
 二次元コードを認識する場合、認識が困難な条件下でも利用できるようにすることが求められている。例えば、雑誌の見開きの内側の丸まった部分にコードを印字する場合、曲率が大きくなりすぎると内側の位置検出パターンが見つからなくなる。同様に、製造現場で、コードの所定の位置に照明があたり、常に特定の位置検出パターンが白飛びし、認識できないような場合がある。このように、予めコードの特定の箇所に読み取り困難な領域が発生することが判明している場合がある。この場合に、二次元コードの読み取りの認識精度を上げることが求められる。
 本発明は、位置検出パターンの配置の自由度を向上させ、読み取り困難な領域を避けて位置検出パターンを配置できる二次元コードの実現を目的とする。
 請求項1の発明では、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、基本パターン部と、上記基本パターン部の外側に配置される周辺部と、を備え、上記基本パターン部は、セル位置を特定するための位置検出パターンと、上記二次元コード領域内の上記基本パターン部の位置を示す基本パターン部移動情報と、を含む二次元コードである。
 請求項2の発明では、上記基本パターン部移動情報は、上記基本パターン部の所定位置からの移動量を示す基本パターン部移動量情報である請求項1に記載の二次元コードである。
 請求項3の発明では、上記基本パターン部移動情報は、上記基本パターン部の二次元コード内での位置を示す基本パターン部位置情報である請求項1に記載の二次元コードである。
 請求項4の発明では、上記基本パターン部移動情報は、上記基本パターン部の所定位置からの移動の有無を示す基本パターン部移動フラグを含む請求項1から3のいずれか1項に記載の二次元コードである。
 請求項5の発明では、請求項1記載の二次元コードの解析システムであって、上記位置検出パターンの位置関係に基づいて上記基本パターン部の座標を求め、上記基本パターン部移動情報を検出する検出手段と、符号化されたメッセージからなる実データを解析する実データ解析手段と、を備え、上記実データ解析手段は、上記基本パターン部移動情報の検出結果に基づいて決定した上記実データの検出を行う二次元コードの解析システムである。
 請求項6の発明では、請求項1記載の二次元コードの作成システムであって、上記二次元コードの周辺部のセルの配置を決定するためのスペックデータの作成手段と、符号化されたメッセージからなる実データの作成手段と、上記基本パターン部移動情報を配置する手段と、少なくとも周辺部に上記実データを配置する手段と、を含む二次元コードの作成システムである。
 本発明の二次元コードは、位置検出パターンの配置の自由度が高く、二次元コードを配置する場合に、読み取り困難な領域に位置検出パターンが位置する場合には、そのような読み取り困難な領域を避けて位置検出パターンを配置できる。これにより、二次元コードの読み取りの認識精度を上げることができる。
図1は、第1実施形態の二次元コードの構成を示す図である。 図2Aは、二次元コードに記録されるデータ構成例を示す。 図2Bは、二次元コードに記録される実データの構成例を示す。 図3Aは、第1実施形態の二次元コードのデータ配置の一例を示す全体構成を示す。 図3Bは、第1実施形態の二次元コードのデータ配置の一例を示す図であり、一部分を拡大したブロックおよび分離パターンを示す。 図4は、第1実施形態の二次元コードの変形例を示す図である。 図5Aは、第2実施形態を示す図(その1)である。 図5Bは、第2実施形態を示す図(その2)である。 図5Bは、第2実施形態を示す図(その3)である。 図6Aは、第2実施形態の二次元コードのデータ配置の一例を示す図(その1)である。 図6Bは、第2実施形態の二次元コードのデータ配置の一例を示す図(その2)である。 図7Aは、第2実施形態の別例を示す図(その1)である。 図7Bは、第2実施形態の別例を示す図(その2)である。 図7Cは、第2実施形態の別例を示す図(その3)である。 図7Dは、第2実施形態の別例を示す図(その4)である。 図8は、第2実施形態の別例を示す図(その5)である。 図9Aは、二次元コードのバージョン情報に応じた変化を説明する図(その1)である。 図9Bは、二次元コードのバージョン情報に応じた変化を説明する図(その2)である。 図10は、バージョン情報のビット列を示す図であり、各バージョンと、それを表すビット数と、ビット列と、を示す。 図11は、第1実施形態の二次元コードの1例を示す図である。 図12は、第2実施形態の1例を示す図である。 図13は、第2実施形態の1例を示す図である。 図14は、空白領域を設けた第2実施形態の二次元コードの1例を示す図である。 図15は、バージョン横3×縦3の二次元コードで、基本パターン部が移動しない第2実施形態の二次元コードの1例を示す図である。 図16は、周辺部を含む二次元コードに対して基本パターン部を中心から移動した第2実施形態の二次元コードの1例を示す図である。 図17は、横方向について、基本パターン部の位置を基本パターン部移動量情報でどのように表すか説明する図である。 図18は、バージョン横19×縦19の二次元コードにおいて、基本パターン部11を移動させた例を示す図である。 図19は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図である。 図20は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。 図21は、実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。 図22は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。 図23は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。
 図1は、第1実施形態の二次元コードの構成を示す図である。
 第1実施形態の二次元コード10は、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであり、一定形状の基本パターン部11を有する。基本パターン部11は、セル位置を特定するための位置検出パターン12A-12Dと、スペックデータと実データからなる結合データ、を含む。スペックデータは、後述する周辺部のサイズを決定するバージョン情報を含む。結合データを表すデータ構造は、スペックデータと実データの区切りが明確である構造とする。
 図1において、基本パターン部11内の位置検出パターン12A-12Dを除く領域、すなわち、参照番号13で示す領域は結合データのデータ領域である。領域13には、スペックデータと実データからなる結合データが記録される。領域13には、さらに位置補正パターンおよび後述する分離パターンが必要により設けられる。また、領域13には、結合データの誤り訂正を行う基本パターン部訂正データも記録される。スペックデータは、領域13内の所定の位置に記録される。
 結合データは、基本パターン部に記録される、スペックデータと実データを合わせたものである。結合データは、後述する周辺部20の実データを含まない。基本パターン部誤り訂正データは、領域13で表される所定のデータ量を訂正する情報を有する。
 スペックデータのデータ量は、周辺部のサイズを決定するバージョン情報や、二次元コード10における基本パターン部11の位置情報、空白に関する情報など二次元コードの外形に影響する情報の組み合わせパターン数や、周辺部の誤り訂正のレベル情報のデータ量に応じて増減する。しかし、スペックデータのデータ量の変化量は、データ領域13に記録できる範囲内である。領域13の内、スペックデータを記録した残りの部分に実データが記録される。つまり、結合データのスペックデータの記録量を任意に設定可能であることから、基本パターン部11内に記録可能な実データのデータ量は、スペックデータのデータ量に応じて増減する。第1実施形態は、後述するバージョン情報が周辺部には存在しないことを示している(バージョン横1×縦1)実施形態である。
 図2Aは、二次元コードに記録されるデータ構成例を示す。図2Bは、二次元コードに記録される実データの構成例を示す。
 図2Aに示すように、スペックデータはすべて基本パターン部11内に記憶され、実データは基本パターン部11内の残余部分に記録され、基本パターン部に納まりきらない場合には、後述する基本パターン部の周囲に形成される周辺部に記録される。スペックデータのデータ量は増減するため、基本パターン部11内のスペックデータと実データの境界は、スペックデータのデータ量に応じて変化する。基本パターン部11内に記録されるスペックデータと実データは、スペックデータのバイナリ列と実データのバイナリ列を結合させたデータビット列である結合データとして記録される。また、基本パターン部11内のデータ領域13をブロックに分割する場合、スペックデータと実データの境界がブロック内に存在する場合が起こり得る。
 スペックデータは、周辺部におけるデータの配置に関する情報を表すデータである。スペックデータは、周辺部の形状を選択するスタイル情報、周辺部のサイズを決定する縦・横のバージョン情報、周辺部の誤り訂正データの量が可変であれば周辺部誤り訂正レベル情報、周辺部実データを配置しないブロックを決定する空白情報(データとして機能しないブロックの情報)、および基本パターン部移動情報等を有する。
 スペックデータは、二次元コードの仕様を表すデータだが、基本パターン部11が常に一定形状である場合、実質的に周辺部20のスペックを定義するものとみなすことができる。ここで、一定形状とは、寸法及び形状が固定されている意味である。
 スペックデータは、発行する二次元コード10によりデータ量が増減し、周辺部に記録するデータ量およびデータ配置に影響する情報を有する。一方で、スペックデータは、データ量が変化するが、基本パターン部11におけるスペックデータ内の情報はあらかじめ定められたで順に配置して記録される。基本パターン部11のデータ領域13の残余部分に実データが記録される。
 特許文献1等に記載があるQRコード(登録商標)では、撮影画像から、位置検出パターンの画素数と、位置検出パターン同士の距離の画素数と、を計測し、そこからスペックデータであるバージョン情報を算出することも可能である。これを、QRコード(登録商標)の規格(JIS X 0510:2004)によれば、参照復号アルゴリズムにおいて、仮のシンボル型番の求め方として、記載されている。このバージョン情報は、撮影画像の二次元コードの形状から算出しており、コードを斜め上から撮影した場合や、インキが滲んだ場合などでは、誤差が発生する。二次元コードには過酷な環境下での撮影や、劣悪な印字での認識も求められるため、この誤差を生じさせないために、バージョン情報を、読み取りに必要な冗長性とともに、二次元コードにデータとして持つことが望ましい。
 図2Bはメッセージを符号化した実データの一例を示す。図2Bに示すように、実データは、メッセージおよびメッセージを修飾するヘッダー(メッセージ種類(メッセージのエンコード)・メッセージサイズ)を合わせたセグメントを、メッセージ数だけ並べる。メッセージは、ユーザーが二次元コードに格納するデータのことであり、複数のメッセージを格納でき、メッセージごとにセグメントを付与する。また、特殊なセグメントとして、メッセージを含まない、終端フラグだけが入ったセグメントを用意し、実データの容量が余った場合に終端フラグのセグメントを配置し、その後に埋め草を配置する。したがって、終端フラグは、メッセージの有無を示し、最後のセグメントの終端フラグはtrueであり、それ以外のセグメントの終端フラグはfalseである。
 図2Aに示す、スペックデータと、実データは、1ブロック当たりのデータ容量に従い、ブロック単位に分割される。同様に誤り訂正データも、ブロック単位に分割する。
 データには誤り訂正データが付される。誤り訂正データにリードソロモン符号を使った場合、誤り訂正はワード単位で行われるため、1ワードを1ブロックとすることが望ましい。1ワードが複数のブロックにまたがる場合、1つのブロックに汚れが発生した場合でも、そのブロックが関係する全てのワードが誤り訂正の対象となり、訂正の効率が悪くなる。訂正原因となる汚れや、スポットライトによる色とびは、1箇所に集中することが多いが、1ワードを1ブロックにすることにより同時に訂正対象となるデータを1箇所にまとめる効果があり、効率的な訂正を可能にし、コードを認識させる可能性を高める。
 ここで、スペックデータについてさらに説明する。スペックデータのデータ量は、周辺部の大きさを決定するバージョン情報により増減させることができる。すなわち、周辺部が小さい、もしくは存在しない場合には基本パターン部内のスペックデータの量を少なくし、周辺部が大きい場合には基本パターン部内のスペックデータの量を多くすることで、コードの情報量にあわせてスペックデータのデータ量を増減させることが可能である。従来例のようなスペックデータのデータ量を固定した場合、コードのサイズが小さい場合に、コードの面積当たりのスペックデータのデータ量が占める割合が大きくなるという課題もあったが、本実施形態ではこの問題を解決可能である。
 上記のように、スペックデータは、バージョン情報を含み、バージョン情報に基づいて二次元コードの大きさ(サイズ)が決定される。例えば、バージョン情報として、コードの横のサイズを表す横バージョン情報と、コードの縦のサイズを表す縦バージョン情報という2種類のデータがあれば、コードは任意のサイズの長方形となる。バージョン情報の詳細については後述する。
 図3Aは、第1実施形態の二次元コードのデータ配置の一例を示す全体構成を示す。図3Bは、第1実施形態の二次元コードのデータ配置の一例を示す図であり、一部分を拡大したブロックおよび分離パターンを示す。
 第1実施形態の二次元コード10は、図3Bに示すように、この例では、1ブロックは横3×縦3セルを含み、分離スペース16は1セルの幅を有する。基本パターン部11は、破線で囲った横7×縦7ブロック(横27×縦27セル)のサイズで、4つのコーナーに位置検出パターン12A-12Dが配置される。基本パターン部11の位置検出パターン12A-12D以外の領域が、基本パターン部11のデータ領域13である。領域13のうち、基本パターン部11の上側の横7×縦3ブロックの位置検出パターン12Bおよび12D以外の領域14のブロックA1-A11が、結合データを記録するブロックであり、基本パターン部11の下側の横7×縦4ブロックの位置検出パターン12Aおよび12C以外の領域のブロックB1-B12が、基本パターン部11の領域13に記録される、結合データの誤り訂正を行う基本パターン部誤り訂正データ(ワード)を記録する領域である。
 ブロックは横3×縦3セルとするが、これが長方形でも、可変でも構わない。
 また、セルの形状を正方形としているが、これに限られるものではない。
 さらに、図3Aの二次元コード10では、各ブロックは分離パターン16で分離されているため、4個の位置検出パターン12A-12Dは、いずれもブロックより大きな面積を有する。これにより、位置検出パターンと同じパターンが、二次元コード中に出現することはなくなり、位置検出パターンの識別が容易になる。さらに、各ブロック15は分離スペース16により分離されているため、特に撮影画像にぼけ・ぶれがある場合の、各ブロック15におけるセルの明暗の判定精度が向上する。
 図3Aの二次元コード10の領域13において、ブロック18は位置補正パターンである。位置補正パターン18は、ブロック18の9個のセルがすべて暗であるが、位置補正パターン18の形状はこれに限定されるものではなく、位置補正パターンとして識別できるものであればよい。
 位置補正パターン18は、基本パターン部の中心ブロックを(CX,CY)とした時に、(CX+7N,CY+7M)(N,Mは整数、ただし、コードをはみ出ない)のブロックに設けることが望ましい。二次元コード10の領域を外れた部分には、位置補正ブロックを配置しない。また、位置補正パターン18は、空白ブロックに重なる場合、位置検出パターンと重なる場合も配置しない。図3Aでは、N=M=0である位置補正パターン18を1ブロックのみに設けている。
 位置補正パターンを含むと冗長性が高まり、認識精度向上が期待できる。位置検出パターン12A-12Dの1つが汚れにより見つけられなかった場合、認識出来た位置検出パターン3個から位置補正パターン18の位置を推測し、これを見つける。この位置検出パターン3個と位置補正パターン1個より、4個の点の組をパラメータとする二次元空間の射影変換より、二次元コード10の各セルの計算精度が高まる。このように、図3Aの二次元コード10は、位置補正パターン18を設けることにより、二次元コード10におけるセル位置検出の精度が一層高まる。
 位置検出パターンの配置には他にも各種の組合せが考えられる。位置検出パターンと位置補正パターンの合計が5個で、位置検出パターンが3個以下の組合せについては、いずれも、4個の位置検出パターンと1個の位置補正パターンの組合せより、汚れなどへの耐性が弱くなるが、認識は可能である。
 位置検出パターンと、位置補正パターンは、セルの座標を特定するために使われるが、役割が異なる。位置検出パターンは、解析時に、位置検出パターンは独立して識別でき、コードの内外で同じ形状があらわれないことが望ましい。誤った位置検出パターンを検出した場合、二次元コードであるか否かを判別する必要があり、解析に時間がかかってしまう。また、識別に時間がかかる、複雑な形状や、コードの他の部分と分離困難な形状でないことが望ましい。
 一方で、位置補正パターンの検出は、位置検出パターンにより二次元コードの位置を特定した後に行われる。位置補正パターンの場所もおおよそわかっている状態で、ある一定範囲を探索することで、位置補正パターンを見つける。位置補正パターンにより、セルの座標の計算の精度を高め、二次元コードが曲がり、セルが非均一になった場合にも認識できる可能性を高めることが可能となる。
 図4は、第1実施形態の二次元コードの変形例を示す図である。このように、位置検出パターンの個数は1個でも構わない。ただし、位置検出パターンが1つの場合は、図4のような方向が一意に決定できる位置検出パターン52とする必要がある。
 図5A、図5B及び図5Cは、第2実施形態を示す図である。第2実施形態は第1実施形態と比較し、基本パターン部の周囲に周辺部20が設けられている点が異なる。スペックデータの増加や、実データの増加により、実データが基本パターン部に記録しきらない場合は、その実データを周辺部20に記録する。
 図5Aは、正方形の基本パターン部11を有する例を示す。図5Bは、二次元コード10が、図5Aに比べて縦長の基本パターン部11を有し、さらに周辺部20を有する例を示す。基本パターン部11は、形状(正方形、長方形)、サイズなどは任意に設計可能である。
 図5Cは、基本パターン部11において、位置検出パターン12A-12Dが、基本パターン部11の境界から離れた内側、言い換えれば、コーナーでない位置に設けられている例を示す。図5Cに示すように、位置検出パターン12A-12Dは、基本パターン部11のコーナーや、境界に沿って設けられる必要はない。
 図6Aは、第2実施形態の二次元コードのデータ配置の一例を示す図(その1)である。図6Bは、第2実施形態の二次元コードのデータ配置の一例を示す図(その2)である。図6Aは、第1実施形態の二次元コードのデータ配置を示した図3Aと比較し、実データ記録ブロック19が存在する点が異なる。
 図7A~図7Dおよび図8は、第2実施形態の別例を示す図である。第1実施形態と同様に、位置検出パターンの個数は1個でも構わない。なお、図4と同様に、位置検出パターンの回転方向を一意に特定できるパターンであれば、位置補正パターン38等の配置は必須ではない。
 なお、第2実施形態のコードは、位置検出パターンを複数とした場合、複数の二次元コードを一括認識する際に優位である。複数の二次元コードを一括して認識する場合、1つの撮影画像内に複数の二次元コードの複数の位置検出パターンが写り込むことになる。例えば、正方形(長方形)の二次元コードで、複数個(3個以上)の位置検出パターンを二次元コードの四隅に配置した場合、同じような位置検出パターンが多数画像内に存在することになり、正しい位置検出パターンの組み合わせの絞り込みが困難となる。
 この場合の解析処理として、位置検出パターンの組み合わせの絞り込みを容易とすれば、処理時間が短くなる。第2実施形態のようにコードのサイズを変化させても、常に基本パターン部のサイズを固定することで、同一の二次元コード内の位置検出パターン同士の距離は固定である上、バージョンが高く周辺部20のサイズが大きい場合には、他の二次元コードの位置検出パターンとの距離が長くなる。そのため、正しい位置検出パターン同士の距離の組み合わせ以外を容易に除外できるので、判定する組み合わせ数を減らすことができる。この効果は、二次元コードの形状が正方形であれば、効果が大きいが、長方形の二次元コードであっても、組み合わせを減らす効果が得られる。
 図9A及び図9Bは、二次元コードのバージョン情報に応じた変化を説明する図である。第1実施形態の二次元コード10は、図9Aに示した基本パターン部11のみを有する最小サイズのコードであり、基本パターン部11のみを有する最小サイズの正方形の二次元コードを、バージョン横1×縦1と呼ぶ。
 第2実施形態の二次元コード10は、周辺部20のサイズを縦方向および横方向にそれぞれ伸張できる。横バージョンが2、縦バージョンが3の場合、バージョン横2×縦3と表記する。二次元コード10は、基本パターン部と同じ形状のバージョン横1×縦1を基準とし、バージョン数とともに二次元コード全体のサイズが増加する。バージョンが1上がるごとに、サイズが1単位大きくなる。この例ではバージョンは1から26まで選択可能であるが、これに限定されるものではない。二次元コードは、バージョン情報を用いて、複数個の位置検出パターン間の距離を固定した状態で二次元コードのサイズを可変に設計することが可能になされている。
 図9Bに示すように、横バージョンの増加では、バージョン数の増加にしたがって、周辺部20の横方向のサイズが、左側(Y2)、右側(Y3)、左側(Y4)、右側(Y5)…という具合に交互に1単位ずつ増加する。言い換えれば、1つ増加するバージョン数が偶数の場合、左側に1単位追加する。同じく1つ増加するバージョン数が奇数の場合、右側に1単位追加する。したがって、横バージョンが奇数の場合には、周辺部20の左右の幅は等しく、偶数の場合には、周辺部20の左側が右側より1単位広い。
 図9Bに示すように、縦バージョンの増加では、バージョン数の増加にしたがって、周辺部20の縦方向のサイズが、上側(T1)、下側(T2)、上側(T3)、下側(T4)…という具合に交互に1単位ずつ増加する。言い換えれば、1つ増加するバージョン数が偶数の場合、上側に1単位追加する。同じく1つ増加するバージョン数が奇数の場合、下側に1単位追加する。したがって、縦バージョンが奇数の場合には、周辺部20の上下の幅は等しく、偶数の場合には、周辺部20の上側が下側より1単位広い。
 この基本パターン部の位置は、基本パターン部の移動における、基準となる所定の位置とする。
 バージョンの変化による、二次元コードのサイズの変化に関して、1単位ずつ交互に増やす以外にも、2単位以上を交互に増やす場合や、上下、左右にそれぞれ均等に1単位ずつ増加させる場合や、増加を上と左のみ、下や左のみなど一方向に増加させる場合があり得る。また、バージョンが小さい場合には、左右又は上下交互に1単位ずつ変化させることがある。バージョンが小さい大きい場合には、左右又は上下均等に1単位ずつのように、バージョンにより変化をつける場合など、様々な方法が考えられる。
 以下に、バージョン情報が高くなるに従い、スペックデータの量が増加する仕組みの一例を説明する。
 図10は、バージョン情報のビット列を示す図であり、バージョン(Version)と、それを表すのに必要なビット数と、ビット列と、を示す。このようなデータ構造のバージョン情報が、縦方向用および横方向用として2つ設けられる。
 図7A~図7Dなどでは、二次元コードの形状が長方形であるコードを例としているが、形状を正方形に限定すれば、スペックデータのバージョン情報は1つでよい。反対に、読取可能にする二次元コードを複数の形状のコードに対応させる場合は、バージョン情報を表すデータの情報量が増え、スペックデータのバージョン情報も読み取り可能にした形状の数に応じて増やす。つまり、二次元コードの外形選択の自由度に従いバージョン情報のデータ量が増える。
 第2実施形態の二次元コード10は、スペック情報として、横のバージョン情報と、縦のバージョン情報の順にデータを持つ。スペックデータの先頭から2ビットを取出し、“00”、“01”、“10”のいずれかである場合は、横のバージョンが1-3で確定し、3ビット以降が縦のバージョン情報となる。“11”である場合は、さらに次の3ビットを取出し、“111”以外の場合は、横のバージョン4-10が確定し、6ビット以降が縦のバージョン情報となる。“111”である場合は、さらに次の4ビットを取出し、横のバージョン11-26が確定し、10ビット以降が縦のバージョン情報となる。
 縦のバージョンも同様に取出し、横と縦のバージョン情報を表すスペックデータのビット列以降のビットが実データとなる。したがって、図10のバージョン情報であれば、バージョンを表すのに必要なビット数を使用すればよい。例えば、バージョン1-3を表すのであれば2ビットのみでよく、他のバージョンを表す場合に必要になる3ビット目以降を他のデータに使用できる。
 第1実施形態は、横のバージョンのビット列が“00”で、縦のバージョンのビット列も“00”となる、最小のコードである。
 このように、二次元コードのサイズが小さい場合はバージョン情報のビット数を少なくし、二次元コードのサイズが大きい場合はバージョン情報のビット数を多くすることで、バージョン情報のデータ量を固定にした場合に比べ、二次元コードのデータ量に対するバージョン情報のデータ量の割合をより一定に近づけることができる。本実施形態によれば、コードのサイズが小さい場合に、スペック情報の相対的なデータ量が大きくなり、データ効率が悪い、という問題を解消する。
 同様に、例えば空白領域をコード内に設ける場合、この領域に関する情報を、空白領域がある場合には、空白領域があることを示す空白埋込フラグと、空白領域に関する情報を示す空白位置情報を、スペックデータに含ませる。また、空白領域がない場合には、空白領域がないことを示す空白埋込フラグのみをスペックデータに含ませて、空白領域に関する情報を省くことで、スペックデータの情報量を減らすことが可能である。さらに、空白領域がある場合の空白領域に関する情報も、バージョン情報にあわせ、ビット数を増減することで、スペックデータの情報量の効率を向上できる。
 以下、自由度を持たせた二次元コードの例を示す。自由度を持たせることにより、スペックデータとして機能性を持たせるための情報が追加され、基本パターン部に記録可能な実データが減少することになる。
 自由度は、機能と、機能の変化範囲の、2つが影響する。
 機能として、例えば、二次元コードのサイズの変化として、正方形の場合と、長方形の場合を比較する。正方形は1辺の長さという1つのパラメータで表せるが、長方形は縦横の辺の長さという2つのパラメータが必要である。よって、正方形は1個の、長方形は2個の機能を有するといえる。二次元コードが空白領域を持つことを可能にした場合には、さらに機能が追加される。
 機能の変化範囲として、例えば、図7A~図7Dの二次元コードでは、バージョンが縦と横で独立して1-26の範囲で選択可能であるように、各機能でそれぞれ数パターンの変化がある。
 よって、自由度は、機能と、機能の変化範囲を、掛けあわせたものといえる。この自由度が大きいほど、ユーザーが選択できる、二次元コードの形状の選択肢が増え、1種類のコードで、より多くのユーザーのニーズに合わせることが可能になる。
 二次元コードに機能性を持たせることにより、二次元コードの中にキャラクターなどの絵柄を埋め込み可能な領域を提供して、二次元コードのデザイン性を高めることや、フォルダの背表紙などの限られたスペースにあわせて二次元コードの形状を変化させる、といったことが可能になる。
 図11は、第1実施形態の二次元コードの1例を示す図である。
 図12および図13は、第2実施形態の例を示す図である。
 スペックデータは、基本パターン部移動情報を持つようにしてもよい。バージョン情報により基本パターン部の外側に縦・横に順次周辺部を付加する場合、基本パターン部は二次元コードのほぼ中心に位置するケースが多い。しかし、二次元コードの中心以外の任意の位置に基本パターン部を配置することが要望される場合がある。基本パターン部移動量情報は、二次元コード内の基本パターン部の基準となる所定の位置からの移動量を指定する情報である。基本パターン部移動情報の詳細例については後述する。
 本例では、スペック情報として、周辺部20における周辺部誤り訂正レベル情報、および周辺部20における空白領域を示す空白情報、および基本パターン部11の移動に関する情報を示す基本パターン部移動情報を含む。また、空白情報は、空白を埋め込むか否かを示す空白埋込フラグと、空白を埋め込む場合には空白の領域を示す空白位置情報、を含む。また、基本パターン部移動情報は、基本パターン部11を移動するか否かを示す基本パターン部移動フラグと、基本パターン部11を移動する場合には所定の位置からの移動量を表す基本パターン部移動量情報、を含む。
 スペック情報を表すビットデータであるスペックデータの、第2実施形態での一例を示す。まず、横のバージョン情報が入る。横のバージョン情報は1から26までの値となり、2から9ビットで表される。次に、同様の方法で縦のバージョン情報が入る。次に、周辺部誤り訂正レベル情報が入る。周辺部誤り訂正レベル情報は2ビットで表され、4種類の周辺部誤り訂正レベルを取り得る。周辺部誤り訂正レベル情報に関しては後述する。次に、空白領域の有無を表す空白埋込フラグと、基本パターン部の所定位置からの移動の有無を表す基本パターン部移動フラグが入る。空白埋込フラグおよび基本パターン部移動フラグは、1ビットで表され、1(有り)か0(無し)である。次に、空白埋込フラグが1の時には、空白の位置情報を表す空白位置情報が基本パターン部移動フラグの後ろに追加される。次に、基本パターン部移動フラグが1の時は、基本パターン部移動量情報が、空白埋込フラグが1の時には空白位置情報の後に追加され、空白埋込フラグが0の時には基本パターン部移動フラグの後に追加される。これらの情報の後に、基本パターン部に格納可能な領域が残っている場合、実データが続いて格納される。
 このスペック情報の種類や、順番、データ量、フラグの扱いに関して、上記に限られるものではないが、エンコードと、デコードにおいて、スペックデータを同じ解釈にする必要がある。
 空白情報は、空白領域の有無を示す、空白埋込フラグと、空白の領域情報を表す、空白位置情報からなる。空白埋込フラグは、1(有り)と0(無し)の状態を持つ1ビットのデータであり、1の時にだけ空白位置情報があり、無しの場合には空白位置情報を省略できる。これにより空白が無いときの情報を減らすことができ、有りの場合にのみ空白位置情報をスペックデータに入れる。空白埋込フラグは、空白の有無以外に、空白領域の個数を表しても良い。例えば、空白埋込フラグは、2ビットとしておき、空白位置の個数を表す0から3の値を持つ。0の場合は、空白位置情報が無く、3の場合は、空白位置情報を3個連続してスペックデータに入れる。
 空白位置情報は、ブロック単位で、サイズ・オフセットを指定し、この情報を空白の位置を示す情報として保持する。ブロックの座標を空白領域の左上隅のブロックを原点としてオフセットを(n,m)と表現する。コードの横ブロック数をblW個、縦ブロック数をblH個としたとき、空白領域の最大横ブロック数はblW個、最大縦ブロック数はblH個となる。
 図14は、空白領域を設けた第2実施形態の二次元コードの1例を示す図である。
 図14の空白領域は、オフセットが(1,1)であり、サイズは横ブロック数が9個、縦ブロック数が1個と表せる。ただし、空白ブロックが基本パターン部にかかってはならない。
 空白位置情報は、その周辺部のサイズに合わせて、データ量を可変にできる。
 バージョンが横9×縦9である場合、コードの横ブロック数が15個であり、コードの縦ブロック数が15個となる。取りうるオフセットの範囲が(0、0)から、(14、14)まで、縦横それぞれ15通りが考えられる。最大横ブロック数は15個、最大縦ブロック数は15個なる。空白位置情報としては、縦横の各オフセットが4ビットずつ、縦横の各ブロック数が4ビットずつの、計16ビット必要となる。
 同様に、コードが縦横に可変した場合、バージョン情報からバージョンが横11×縦11である場合、取りうるオフセットの範囲が(0、0)から、(16、16)であり、縦と横の最大ブロック数が17通りであるため、空白位置情報としては、縦横の各オフセットが5ビットずつ、縦横のサイズが5ビットずつの、計20ビット必要となる。
 このように、空白領域の個数、空白領域の範囲、コードのサイズに応じて、必要とするデータ量を増減することができる。
 空白位置情報は、領域を全て明のセルとする範囲をブロック単位で指定する。認識対象とはならないため、エンドユーザーは絵柄、写真、文字をこの領域に入れて、コード情報の可視化や、二次元コードのデザイン性向上に役立てることができる。空白領域内は、解析時には無視されるので、埋め込まれた写真・絵柄は、解析に影響しない。
 空白領域を表す方法としては、以下のような方法が考えられる。
 (1)ブロックの開始座標と、ブロック幅・高さと指定する方法
 (2)ブロックの開始座標と、終点座標を指定する方法
 (3)数点のブロック座標を示し、その座標の内側を空白とする方法
 (4)これらの指定の単位が、ブロックではなく、セルで指定する方法
 (5)幾つか空白領域を予約しておき、それをコード内で指定する方法
 (6)(1)-(5)に加え、拡大縮小率を変更させる方法
 さらに、複数の空白領域を設ける場合には、それぞれの領域で異なる方法を行うようにしてもよい。
 図15は、バージョン横3×縦3で、基本パターン部を移動しない、第2実施形態の二次元コードの1例を示す図である。
 図16は、バージョン横3×縦3であり、周辺部を含む二次元コード10に対して基本パターン部11を中心から移動した第2実施形態の二次元コードの1例を示す図である。図16は、図15と比較し、基本パターン部が、右に1ブロック移動しており、上下方向は移動していない。基本パターン部11は、二次元コード10の領域に対して中心を基準位置とすることに限定されない。基本パターン部移動情報は、基本パターン部11が、二次元コード10の領域に対してどのように配置されるかを示す情報で、横方向と縦方向についてそれぞれ決定される。
 基本パターン部移動情報は、移動の有無を示す、基本パターン部移動フラグと、基本パターン部の基準となる所定位置からの移動量を表す、基本パターン部移動量情報からなる。第2実施形態における所定位置は、図9Bの基本パターン部の位置とする。基本パターン部移動フラグは、1(移動有り)と0(移動無し)の状態を持つ1ビットのデータであり、1の時にだけ基本パターン部移動量情報があり、0(無し)の場合には基本パターン部移動量情報を省略できる。これにより基本パターン部を移動させない場合の情報を減らすことができ、移動させる場合にのみ基本パターン部移動量情報をスペックデータとして記録する。基本パターン部移動量情報は、基本パターン部が移動しない場合の基本パターン部の位置を基準とした、移動量を表す。
 図17は、基本パターン部11の位置を基本パターン部移動情報でどのように表すか説明する図である。
 図17に示すように、バージョン1の時には基本パターン部11のみであり、バージョンが増加するにしたがって左側、右側にブロック列が追加される。基本パターン部11が移動可能な位置は、バージョン数に制限される。例えば、バージョン数が2であれば、基本パターン部11が移動可能な位置は、移動しないか、左側に1ブロック列移動するかである。バージョン数が3であれば、基本パターン部11が移動可能な位置は、移動しないか、左側に1ブロック列移動するか、右側に1ブロック列移動するか、である。言い換えれば、バージョン数が1増加するのに対応して基本パターン部11が移動可能な位置が1つ増加するということである。したがって、基本パターン部移動量情報を表すのに必要なデータ量は、バージョン数に応じて変化する。
 図17において、横方向のバージョン数が6の場合に、-3から2の数字は、基本パターン部11のブロック単位での基本パターン部移動量情報を示示す。横方向のバージョン数が、0は移動しない場合を、マイナスの値は左側への基本パターン部移動量情報を、プラスの値は右側への基本パターン部移動量情報を示す。図15の移動量は0であり、図16の移動量は1となる。ただし、図15では基本パターン部が所定位置から移動していないため、スペックデータとしては、基本パターン部移動フラグを0とすれば、基本パターン部移動量情報は省略できる。
 基本パターン部が移動する場合、基本パターン部移動情報としては、基本パターン部移動フラグが1となり、基本パターン部移動量情報として、横の移動量を表す情報と、縦の移動量を表す情報をスペックデータに記録する。
 図18は、バージョン横19×縦19の二次元コード10において、基本パターン部11を移動させた例を示す図である。
 図18において、参照番号11は、移動していない基本パターン部11を示し、この場合の基本パターン部位置は、横が0で、縦が0である。参照番号11Aで示す基本パターン部11の基本パターン部位置は、横が-8で、縦が-8である。参照番号11Bで示す基本パターン部11の基本パターン部位置は、横が9で、縦が-9である。参照番号11Cで示す基本パターン部11の基本パターン部位置は、横が-5で、縦が4である。参照番号11Dで示す基本パターン部11の基本パターン部位置は、横が0で、縦が9である。参照番号11Eで示す基本パターン部11の基本パターン部位置は、横が9で、縦が9である。
 ここでは基本パターン部移動の単位をブロックで表したが、セル単位でも構わない。
 また、移動の単位を1ではなく、2より大きい値にしてもよい。この場合、図18のバージョン横19×縦19の二次元コード10では、横19通り、縦19通りの組み合わせであったが、移動の単位を2ブロックずつにすることで、横9通り、縦9通りの組み合わせとなり、これによりスペックデータの情報量を下げることができる。
 また、基本パターン部移動情報として、二次元コードの中心からの移動量を示す基本パターン部移動量情報を含めたが、基本パターン部移動量情報の代わりに二次元コード内の基本パターン部の位置を表す基本パターン部位置情報を用いてもよい。
 基本パターン部位置情報は、コード左上のブロック座標(0、0)に基本パターン部11の左上のコーナーがある場合を基準とした場合の、基本パターン部11のブロック座標とするここができる。例えば、図16では、基本パターン部11の左上のコーナーがブロック座標(2、1)にあるため、基本パターン部位置情報として、横に2ブロック、縦に1ブロック、を表すデータが、スペックデータに記録される。
 また、基本パターン部位置情報の他の表現方法として、基本パターン部の移動のパターンをあらかじめ定義しておく方法もある。例えば、基本パターン部の移動パターンとして “左上”、“右上”、“左下”、“右下”の4通りあらかじめ定義しておき、基本パターン部位置情報として2ビットを持たせ、それぞれ0-3の値を移動のパターンに割り振っておく。図18の二次元コード10では、基本パターン部位置情報が示す値が、“左上”の場合は、横が-9で、縦が-9となり、“右下”の場合は、横が9で、縦が9となる。
 この方法の利点として、基本パターン部移動量情報を常に2ビットに抑えることができ、スペックデータを小さくできる。
 さらに、上記移動パターンに“真ん中”を追加した5通りとし、加えて基本パターン部移動フラグをなくすことで、基本パターン部移動情報が常に3ビットで示されることになり、少ない情報量で基本パターン部の移動が実現できる。
 スペックデータには、周辺部誤り訂正レベル情報を持たせることができる。周辺部実データの誤り訂正量を、周辺部誤り訂正レベルとして、周辺部誤り訂正レベル情報に記録できるようにする。例えば、周辺部誤り訂正レベルは、10%、20%、30%、40%の4通りから選択させるようにする。これにより、撮影条件の悪い環境で用いるコードを認識させる場合には誤り訂正レベルを上げ、そうでない場合は下げるということが可能になる。この場合、スペックデータにおける周辺部誤り訂正レベル情報として、2ビットを確保するようにする。
 周辺部誤り訂正レベルは、周辺部実データのデータ量に影響し、周辺部誤り訂正レベルが低ければデータ量が多くなり、周辺部誤り訂正レベルが大きければデータ量が少なくなる。
 周辺部誤り訂正レベル情報は、周辺部が存在しない場合(バージョンが横1×縦1)は不要であり、スペックデータから省くことができ、その分実データの量を増やすことができる。バージョン情報と、空白情報と、位置補正パターンと、により、周辺部でのデータを持つブロックの数が決定する。これにより、周辺部の記録できるデータの量が決まる。この周辺部のデータ量と、周辺部誤り訂正レベル情報より、周辺部実データと、周辺部誤り訂正データの、データ量が決まる。
 周辺部のデータの配置は、第2実施形態の1例では、例えば、周辺部実データを、左上から右方向へ順番にブロックごとに記録し、1行記録し終わったら、1ブロック下の左から右方向へ順番に記録する。周辺部実データの後に、周辺部誤り訂正データを記録する。その場合に、基本パターン部、空白領域、位置補正パターンにはデータを記録しない。
 上記は一例であり、周辺部のデータの配置の方法は、あらかじめ決められていればよい。
 また、第2実施形態の1例として、スペックデータは、スタイル情報を持つようにしてもよい。この場合、スタイル情報が、縦横バージョン可変、縦のみバージョン可変、横のみバージョン可変、バージョン不変(周辺部なし)の4つの状態を保持可能だとする。それにより、バージョン情報のデータ量を変化させる。スタイル情報の内容に従い、バージョン情報のデータ量を、縦横バージョン可変の場合には縦横バージョンの2つの値を保持し、縦のみバージョン可変、もしくは横のみバージョン場合には1つの値を保持し、それ以外はバージョン情報を無しにする、というように、スタイル情報によりバージョン情報量を可変にでき、また自由度の高いコード形状を許容する。
 また、それ以外にもスタイル情報は、丸、星、など様々な形状が考えられ、コードを用途に合わせ自由に形状を変化させることが可能になる。
 また、周辺部は基本パターン部に隣接する必要は無い。よって、基本パターン部から離れた場所に様々な周辺部を置いてもよい。よって、周辺部は、基本パターン部の形状に関わらず、自由な形状をとることも可能である。
 また、周辺部は基本パターン部から独立している。よって、周辺部と基本パターン部とでは、セルの形状を同じ正方形にする必要はない。また、基本パターン部と、周辺部でセルのサイズを同じにする必要もない。例えば、基本パターン部のセルを認識させやすくするため、周辺部のセルよりも大きくしてもよい。また、周辺部のブロックが持つデータ量は、基本パターン部のブロックが持つデータ量と同じにする必要はない。また、周辺部のブロックと、基本パターン部のブロックとは、ブロックの形状が異なっていても良い。
 以上の通り、第1実施形態、第2実施形態の二次元コードは、スペックデータのデータ量は、スペックデータの内容に応じて増減可能であり、基本パターン部のスペックデータを記録した残りのデータ領域には、実データが記録されるので、データ効率の低下が抑制できる。また、二次元コードに持たせる外形選択の自由度に応じて、基本パターン部に記録可能なスペックデータのデータ量を増減させることが可能なので、様々な機能性を持った二次元コードに柔軟に対応可能である。また、スペックデータのデータ量を周辺部のサイズと比例関係とすることで、二次元コードのサイズに適合したスペックデータのデータ量とすることが可能である。なお、第2実施形態において、基本パターン部の周囲に周辺部を設ける構成は、スペックデータのデータ量を増減可能にせず、基本パターン部には実データを含まなくても実現できる。また、第2実施形態において、位置検出パターンが複数である場合、複数の位置検出パターン間の距離が一定であることから、複数のコードを一括して認識する処理が優れている効果は第1実施形態と同様に得られる。
 第1実施形態や第2実施形態で用いる位置検出パターンは、正方形の枠内に正方形を有する形状の第1位置検出パターン12Aと、第1位置検出パターン12Aより小さな正方形の枠形状の第2位置検出パターン12Dと、長方形の第3位置検出パターン12Bおよび第4位置検出パターン12Cと、を有することが好ましい。4個の位置検出パターン12A-12Dは、基本パターン部11の四隅(4つのコーナー)に配置されている。この場合、第1位置検出パターン12Aと第2位置検出パターン12Dは、対角上に配置され、第3位置検出パターン12Bと第4位置検出パターン12Cは、対角上に配置され、第3位置検出パターン12Bおよび第4位置検出パターン12Cの長辺は、第1位置検出パターン12Aの辺と同じ長さであり、第3位置検出パターン12Bおよび第4位置検出パターン12Cの短辺は、第2位置検出パターン12Dの辺と同じ長さであり、第3位置検出パターン12Bおよび第4位置検出パターン12Cの短辺の一方は、第1位置検出パターン12Aの辺の延長上に配置され、第3位置検出パターン12Bおよび第4位置検出パターン12Cの長辺の一方は、第2位置検出パターン12Dの辺の延長上に配置されることが望ましい。図1に示した位置検出パターン12A-12Dは、それぞれ単独で容易に識別することができ、一部の位置検出パターンが汚れ等で識別できない場合でも、識別できた残りの位置検出パターンの組から、二次元コードにおけるセルの座標位置を容易に求めることができる。
 位置検出パターンは、第1実施形態、第2実施形態に示した例以外にも各種の変形例が可能である。例えば、位置検出パターンの個数は、1個以上であり、上限は無いが、現実的には最大4個程度で、それ以上の個数であっても効果が少なく、逆にデータ効率が低下する。また、複数個の位置検出パターンの形状が同じ場合と、少なくとも一部が異なる場合があり得る。さらに、基本パターン部11における位置検出パターンの位置は、基本パターン部11のコーナーに限定されず、1個または複数の位置検出パターンの一部またはすべてが基本パターン部11内のコーナー以外に位置してもよい。言い換えれば、基本パターン部11内で、位置検出パターンと、データ領域13の位置関係は、任意に決定できる。
 第1実施形態、第2実施形態に示した以外の代表的な例としては、異なる形状の3個の位置検出パターンと1個の位置補正パターンの組合せ、位置検出パターンと位置補正パターンの合計が4つ以上の組合せ、1個の位置検出パターンと1個の位置補正パターンの組合せ、等が考えられる。異なる形状の3個の位置検出パターンと1個の位置補正パターンの組合せであれば、二次元コードにおけるセルの座標位置を比較的容易に求めることができる。
 次に、実施形態の二次元コードを作成する処理(エンコード処理)について説明する。
 図19は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図であり、クライアント・サーバ構成の例を示す。
 作成システムは、仕様を決めて二次元コードの作成を依頼するユーザーが操作するユーザーハードウェアと、依頼された二次元コードを作成して提供するシステムハードウェアと、を有する。
 ユーザーハードウェアは、コンピュータ等のユーザー処理装置71と、磁気ディスク等の記憶装置72と、を有する。
 システムハードウェアは、コンピュータ等のシステム処理装置75と、磁気ディスク等の記憶装置76と、を有する。
 ユーザー処理装置71とシステム処理装置75は、通信回線等で接続され、通信可能に構成されている。
 ここでは、印刷は、ユーザー側で行うが、システム側や他の印刷所で行うようにしてもよい。二次元コードを印刷する媒体はどのようなものでもよく、例えば、紙、樹脂板、筐体表面などである。ここで、媒体として、埋め込む絵柄があらかじめ印刷されているものでもよく、印刷されている埋込絵柄が二次元コードの絵柄領域に入るようにセッティングした上で二次元コードを印刷する。
 印刷装置は、これらの媒体に二次元コードを印刷可能なものであればよく、例えば簡易プリンター、精密プリンター、印刷装置等であり、モノクロ印刷だけでなく、カラー印刷可能なものでもよい。また、作成した二次元コードは、印刷せずに、通信回線を介してユーザーに二次元コードのデータとして送信されてもよい。ユーザーは、必要に応じて第三者のディスプレイ等に、作成した二次元コードを表示するようにデータを送信する。
 なお、図19はクライアント・サーバ構成の作成システムの例を示すが、作成システムはこれに限定されず、例えば。クライアントPC上のエンコードソフトウェアで発行し、USB接続したプリンターから発行する構成や、ハンディータイプの端末・プリンターから発行する構成など、各種の変形例があり得る。また、二次元コードを作成する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な非一時的な記憶媒体に記録されていてもよい。
 図20は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。ここでは、バージョン横1×縦1より大きなバージョンの二次元コードを作成する場合を示しており、バージョン横1×縦1の場合には周辺部が存在しないので、それに関係する処理が実質的になくなる。
 ステップS10では、ユーザーがエンコードのメイン処理を開始する。
 ステップS11では、ユーザーが二次元コードに記録するメッセージを入力する。
 ステップS12では、ユーザーが、二次元コードのバージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を入力する。これに応じて、ユーザー処理装置71は、システム処理装置75に、入力されたメッセージと、バージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を通知する。
 ステップS13では、システム側で、送信された情報に基づいて基本パターン部と周辺部の配置を決定する。
 ステップS14では、送信された情報に基づいてスペックデータのデータ量を決定する。
 ステップS15では、システム側で、送信された情報に基づいて空白領域のブロックの配置と数を決定する。
 ステップS16では、位置補正パターンのブロックの配置とブロック数を決定する。
 ステップS17では、周辺部誤り訂正レベルから、周辺部誤り訂正データのブロック数を決定する。
 ステップS18では、二次元コードに記録可能な実データのサイズを決定する。
 ステップS19では、二次元コード内でメッセージを表現するのに必要な実データのサイズを計算する。
 ステップS20では、S18で求められた二次元コードのデータサイズに、S19の実データが入るか、データサイズが不足して入らないかを判定し、データサイズが不足であれば、ユーザー処理装置71にデータサイズが不足することを送信し、データサイズが足りていればステップS22に進む。
 ステップS21では、ユーザー処理装置71がユーザーに、入力された二次元コードの形状では入力されたメッセージを表現するのにデータサイズが不足であるというエラー発生を通知して、終了する。
 ステップS22では、スペックデータを作成する。
 ステップS23では、実データを作成する。
 ステップS24では、スペックデータと実データを結合する。
 ステップS25では、基本パターン部に記録可能なスペックデータと実データ、基本パターン部に配置する。
 S26では、基本パターン部に記録されたデータから、基本パターン部誤り訂正データを計算し、配置する。
 ステップS27では、基本パターン部に入りきらなかった実データを周辺部実データとして周辺部に配置する。
 ステップS28では、周辺部実データから、周辺部誤り訂正データを計算し、配置する。
 ステップS29では、二次元コードの情報を、画像としてユーザー処理装置71に出力する。
 ステップS30で、エンコードのメイン処理が終了する。
 図21は、第2実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。
 二次元コード解析装置は、読み取り部80と、コンピュータ(二次元コード解析処理部)84と、ディスプレイ85と、通信インターフェース86と、を有する。読み取り部80は、レンズ81と、イメージセンサ82と、アナログ・デジタル変換器(AD)83と、を有し、撮影した二次元コードのデジタル画像データをコンピュータ84に出力する。図21の二次元コード解析装置は、広く使用されており、近年は携帯端末も二次元コード解析装置と同様の機能を実現している。また、二次元コードを解析する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な非一時的な記憶媒体に記録されていてもよい。
 図22および図23は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。このデコード処理は、1画面に複数の第2実施形態の二次元コードが写し込まれている場合を想定している。デコード処理は、解析メイン処理と、情報取り出し処理からなる。まず、解析メイン処理を説明する。
 ステップS101では、解析のメイン処理を開始する。
 ステップS102では、二次元コードの撮影画像を入力する。
 ステップS103では、入力された撮影画像の二値画像を作成する。二値化の方法は、入力された撮影画像がRGB画像などのカラー画像であれば、一旦グレースケール画像に変換し、画像内の最大輝度値と最小輝度値の平均を閾値とし、閾値以上であれば明、未満であれば暗とする。カラー画像からグレースケール変換するには、各画素のRGBの値を用いて、輝度(brightness)=0.299R+0.587G+0.114Bの変換式にしたがって変換する。カラー画像へのグレースケール画像への変換方法、さらに二値化画像への変換方法は、様々な方法が提案されており、上記変換方法に限られない。
 ステップS104では、位置検出パターン候補を検出する。具体的には、二値化画像を走査する際に、走査方向の横方向、および縦方向に、暗明暗、もしくは暗明暗明暗が、一定の比率であらわれるパターンを検出する。
 ステップS105では、4種の位置検出パターンの組合せを作成し、検討していない4種の位置検出パターンの組合せが残っているか判定し、残っていればステップS106に進み、残っていなければステップS110に進む。
 ステップS106では、2点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが1組でもある場合には、正しい組合せではないと判定できる。このように、位置検出パターン同士の距離に基づいて誤検出を除外する。
 ステップS107では、組合せた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図23を参照して後述する。
 ステップS108では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップS109に進み、失敗した場合には失敗した位置検出パターンの組合せを除外する処理を行った後、ステップS105に戻る。
 ステップS109では、情報の取り出しに成功した位置検出パターンの組合せをリストアップする。
 ステップS110では、データの取り出しに成功した二次元パターンに使われた4個の位置検出パターン候補を除外し、ステップS105に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
 ステップS105からS110を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の4個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
 ステップS111では、検討されていない3個の位置検出パターン候補の組み合わせが残っているか判定し、残っていなければステップS120に進み、残っていればステップS112に進む。
 ステップS112では、3個の位置検出パターン候補から位置補正パターンの位置を推定する。
 ステップS113では、位置補正パターンがあるか判定し、有ればステップS115に進み、無ければステップS114に進む。
 ステップS114では、3個の3個の位置検出パターン候補から1個の位置検出パターン候補を補完し、ステップS115に進む。
 ステップS115では、2点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが1組でもある場合には、正しい組合せではないと判定できる。位置補正パターンなどで補完した場合にも、欠けていることが想定される位置検出パターンの座標を推定し、距離を検証する。
 ステップS116では、組合せた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図23を参照して後述する。
 ステップS117では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップS118に進み、失敗した場合には失敗した位置検出パターンの組合せを除外する処理を行った後、ステップS111に戻る。
 ステップS118では、情報の取り出しに成功した位置検出パターンの組合せをリストアップする。
 ステップS119では、データの取り出しに成功した二次元パターンに使われた3個の位置検出パターン候補を除外し、ステップS111に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
 ステップS111からS119を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の3個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
 ステップS120では、リストアップされた位置検出パターンのメッセージを出力し、ステップS121に進む。
 ステップS121では、解析メイン処理を終了する。
 次に図23を参照してステップS107およびS116の情報取り出し処理を説明する。
 ステップS200で、情報取り出し処理を開始する。
 ステップS201で、位置検出パターンから、基本パターン部に属するブロック内のセルの座標を計算する。
 ステップS202で、結合データと、基本パターン部誤り訂正データを取り出す。
 ステップS203で、基本パターン部誤り訂正データによる誤り検出処理を行い、誤りがある場合にはステップS204に進み、誤りが無ければステップS207に進む。
 ステップS204では、ブロック内のセルデータから誤り訂正可能であるか判定し、誤り訂正が不可能であればステップS205に進み、誤り訂正が可能であればステップS206に進む。
 ステップS205では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
 ステップS206では、結合データの誤り訂正処理を行う。
 ステップS207では、結合データから、スペックデータを取り出し、二次元コードのバージョン、周辺部誤り訂正レベル、空白情報、基本パターン部移動情報を特定する。
 ステップS208では、スペックデータを元に、基本パターン部の周辺部の位置補正パターンを計算する。
 ステップS209では、スペックデータを元に、周辺部の位置補正パターンと、空白領域と、を除く周辺部実データと、周辺部誤り訂正データのブロックを特定する。
 ステップS210では、周辺部実データと、周辺部誤り訂正データのブロック数の合計を計算し、これと周辺部誤り訂正レベルから、それぞれのブロック数を計算する。
 ステップS211では、周辺部に属するブロック内のセルの座標を求める。
 ステップS212では、周辺部実データと周辺部誤り訂正データを取り出す。
 ステップS213では、周辺部誤り訂正データにより誤りを検出し、誤りがあればステップS214に進み、誤りが無ければステップS217に進む。
 ステップS214では、誤り訂正可能であるか判定し、誤り訂正が不可能であればステップS215に進み、誤り訂正が可能であればステップS216に進む。
 ステップS215では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
 ステップS216では、データの誤り訂正処理を行う。
 ステップS217では、基本パターン部のデータからスペックデータを除いた実データと、周辺部の実データを連結する。
 ステップS218では、実データを解析する。
 ステップS219では、メッセージを取り出す。
 ステップS220では、二次元コードからの情報の取出しに成功したので、メッセージを表示して終了する。
 以上説明したように、本発明の二次元コードは、位置検出パターンを含む基本パターン部を、二次元コード内の任意の位置に移動することで、汚れなどが発生しづらい箇所に、位置検出パターンを移動させることが可能になる。例えば、折り目がつきやすい部分、人が触れる箇所、本の中とじ部分など曲げが発生する箇所に位置検出パターンを配置しないことも可能となる。これにより、位置検出パターンが見つからないことにより認識できない場合を減らすことができ、その結果認識精度が高まる。
 位置検出パターンを含む基本パターン部の外側に周辺部を設け、周辺部を含む二次元コードの領域内で基本パターン部を移動することにより位置検出パターンを二次元コード内で移動するという機能を実現するには、スペックデータのデータ量が増加する。そこで、本発明の二次元コードでは、基本パターン部に記録するスペックデータのデータ量を仕様に応じて可変とし、基本パターン部に残余部分があれば実データを記録することにより、スペックデータのデータ量が少ない場合のデータ効率の低下を抑制している。なお、基本パターン部の外側に周辺部を設け、周辺部を含む二次元コードの領域内で基本パターン部を移動することにより位置検出パターンを二次元コード内で移動するという機能自体は、このようなデータ構造に限定されず、これまでの一般的な二次元コードのデータ構造でも実現できる。
 以上、本発明の実施形態を説明したが、記載した実施形態は発明を説明するためのもので、当業者には、特許請求の範囲において各種の変形例があり得ることが容易に理解可能である。
 10  二次元コード
 11  基本パターン部
 12A  第1位置検出パターン
 12B  第3位置検出パターン
 12C  第4位置検出パターン
 12D  第2位置検出パターン
 13  領域
 15  ブロック
 16  分離パターン
 17  セル
 18  位置補正パターン

Claims (6)

  1.  二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、
     基本パターン部と、前記基本パターン部の外側に配置される周辺部と、を備え、
     前記基本パターン部は、セル位置を特定するための位置検出パターンと、前記二次元コード領域内の前記基本パターン部の位置を示す基本パターン部移動情報と、を含む二次元コード。
  2.  前記基本パターン部移動情報は、前記基本パターン部の所定位置からの移動量を示す基本パターン部移動量情報である請求項1に記載の二次元コード。
  3.  前記基本パターン部移動情報は、前記基本パターン部の二次元コード内での位置を示す基本パターン部位置情報である請求項1に記載の二次元コード。
  4.  前記基本パターン部移動情報は、前記基本パターン部の所定位置からの移動の有無を示す基本パターン部移動フラグを含む請求項1から3のいずれか1項に記載の二次元コード。
  5.  請求項1記載の二次元コードの解析システムであって、
     前記位置検出パターンの位置関係に基づいて前記基本パターン部の座標を求め、前記基本パターン部移動情報を検出する検出手段と、
     符号化されたメッセージからなる実データを解析する実データ解析手段と、を備え、
     前記実データ解析手段は、前記基本パターン部移動情報の検出結果に基づいて決定した前記実データの検出を行う二次元コードの解析システム。
  6.  請求項1記載の二次元コードの作成システムであって、
     前記二次元コードの周辺部のセルの配置を決定するためのスペックデータの作成手段と、
     符号化されたメッセージからなる実データの作成手段と、
     前記基本パターン部移動情報を配置する手段と、
     少なくとも周辺部に前記実データを配置する手段と、
     を含む二次元コードの作成システム。
PCT/JP2015/061482 2014-05-14 2015-04-14 二次元コード、二次元コードの解析システム及び二次元コードの作成システム WO2015174192A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016519169A JP6045752B2 (ja) 2014-05-14 2015-04-14 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
EP15793384.7A EP3144857B1 (en) 2014-05-14 2015-04-14 Two-dimensional code, two-dimensional-code analysis system, and two-dimensional-code generation system
CN201580025137.5A CN106462786B (zh) 2014-05-14 2015-04-14 二维码、二维码的分析系统以及二维码的制作系统
KR1020167031742A KR101770540B1 (ko) 2014-05-14 2015-04-14 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템
US15/332,671 US9734443B2 (en) 2014-05-14 2016-10-24 Two-dimensional code, two-dimensional-code analysis system, and two-dimensional-code generation system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-100986 2014-05-14
JP2014100986 2014-05-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/332,671 Continuation US9734443B2 (en) 2014-05-14 2016-10-24 Two-dimensional code, two-dimensional-code analysis system, and two-dimensional-code generation system

Publications (1)

Publication Number Publication Date
WO2015174192A1 true WO2015174192A1 (ja) 2015-11-19

Family

ID=54479736

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/061482 WO2015174192A1 (ja) 2014-05-14 2015-04-14 二次元コード、二次元コードの解析システム及び二次元コードの作成システム

Country Status (7)

Country Link
US (1) US9734443B2 (ja)
EP (1) EP3144857B1 (ja)
JP (1) JP6045752B2 (ja)
KR (1) KR101770540B1 (ja)
CN (1) CN106462786B (ja)
TW (1) TWI570629B (ja)
WO (1) WO2015174192A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7495616B2 (ja) 2020-09-11 2024-06-05 株式会社デンソーウェーブ 二次元コード、二次元コード媒体、二次元コード生成方法、二次元コード生成装置及び二次元コード読取装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291584B (zh) * 2016-07-22 2023-05-02 创新先进技术有限公司 识别二维码位置的方法及其系统
JP2019021165A (ja) * 2017-07-20 2019-02-07 株式会社デンソーウェーブ 二次元コード及び二次元コード読取装置
CN112861560B (zh) 2017-09-27 2023-12-22 创新先进技术有限公司 二维码定位方法及装置
US10909432B2 (en) * 2017-10-06 2021-02-02 Denso Wave Incorporated Two-dimensional code composed of a plurality of types of cells
CN107977591B (zh) * 2017-12-11 2020-04-28 维沃移动通信有限公司 一种二维码图像识别方法及移动终端
CN108710932B (zh) * 2018-05-21 2019-05-21 周冰 一种二维码生成方法、装置、电子设备及存储介质
CN108960000A (zh) * 2018-07-17 2018-12-07 深圳市零点零科技有限公司 一种长条小型二维码识别方法
CN109063806A (zh) * 2018-07-17 2018-12-21 深圳市零点零科技有限公司 一种长条小型二维码编码方法
JP7358284B2 (ja) 2020-03-25 2023-10-10 株式会社日立製作所 コード、情報処理システム、及び情報処理装置
CN113673655B (zh) * 2021-10-22 2022-04-05 北京紫光青藤微系统有限公司 用于确定二维码解码方向的方法及装置、电子设备、介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013238943A (ja) * 2012-05-14 2013-11-28 Denso Corp 二次元コード読取装置
JP2014026643A (ja) * 2012-06-20 2014-02-06 Denso Wave Inc 情報コードおよび情報コード読取装置
JP2014071722A (ja) * 2012-09-28 2014-04-21 Denso Wave Inc 情報コード及び情報コードの読取システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309485A (ja) * 1993-02-25 1994-11-04 Nippondenso Co Ltd 光学的情報読取装置
US5726435A (en) 1994-03-14 1998-03-10 Nippondenso Co., Ltd. Optically readable two-dimensional code and method and apparatus using the same
JP2938338B2 (ja) 1994-03-14 1999-08-23 株式会社デンソー 二次元コード
JP3668275B2 (ja) * 1995-03-15 2005-07-06 シャープ株式会社 デジタル情報記録方法、解読方法および解読装置
US6104833A (en) * 1996-01-09 2000-08-15 Fujitsu Limited Pattern recognizing apparatus and method
JP3209108B2 (ja) * 1996-08-23 2001-09-17 松下電器産業株式会社 2次元コード読み取り装置
TW456110B (en) * 1997-07-12 2001-09-21 Ye Jiun Tsai Design of 2-D safe free code and coder-decoder manufacturing method thereof
EP1615420B1 (en) * 2003-04-15 2009-08-19 Fujitsu Limited Code recognizing method and device
JP5136302B2 (ja) 2008-03-27 2013-02-06 株式会社デンソーウェーブ 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法
RU2011144680A (ru) * 2009-04-08 2013-05-20 Континенталь Тевес Аг & Ко. Охг Двухмерный символьный код и способ считывания символьного кода
TW201113815A (en) * 2009-10-09 2011-04-16 Primax Electronics Ltd QR code processing method and apparatus thereof
CN101882210B (zh) * 2010-06-01 2012-06-27 福建新大陆电脑股份有限公司 矩阵式二维条码解码芯片及其解码方法
US9594993B2 (en) * 2013-11-07 2017-03-14 Scantrush Sa Two dimensional barcode and method of authentication of such barcode

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013238943A (ja) * 2012-05-14 2013-11-28 Denso Corp 二次元コード読取装置
JP2014026643A (ja) * 2012-06-20 2014-02-06 Denso Wave Inc 情報コードおよび情報コード読取装置
JP2014071722A (ja) * 2012-09-28 2014-04-21 Denso Wave Inc 情報コード及び情報コードの読取システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3144857A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7495616B2 (ja) 2020-09-11 2024-06-05 株式会社デンソーウェーブ 二次元コード、二次元コード媒体、二次元コード生成方法、二次元コード生成装置及び二次元コード読取装置

Also Published As

Publication number Publication date
CN106462786A (zh) 2017-02-22
EP3144857B1 (en) 2021-10-13
KR101770540B1 (ko) 2017-08-22
EP3144857A1 (en) 2017-03-22
JPWO2015174192A1 (ja) 2017-04-20
CN106462786B (zh) 2020-01-07
TW201612794A (en) 2016-04-01
JP6045752B2 (ja) 2016-12-14
KR20160135841A (ko) 2016-11-28
TWI570629B (zh) 2017-02-11
US9734443B2 (en) 2017-08-15
US20170039463A1 (en) 2017-02-09
EP3144857A4 (en) 2018-01-17

Similar Documents

Publication Publication Date Title
JP6045752B2 (ja) 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
TWI528293B (zh) QR code
JP6091708B2 (ja) 二次元コード、二次元コードの解析システム
JP5848464B2 (ja) 二次元コード、二次元コードの作成システムおよび解析プログラム
TWI501159B (zh) QR code
JP2017102841A (ja) 二次元コード、二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム
JP6521709B2 (ja) 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
JP5487424B2 (ja) 2値化画像への情報埋め込み方法及び読み出し方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15793384

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016519169

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015793384

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015793384

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20167031742

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE