WO2014077187A1 - 二次元コード - Google Patents
二次元コード Download PDFInfo
- Publication number
- WO2014077187A1 WO2014077187A1 PCT/JP2013/080156 JP2013080156W WO2014077187A1 WO 2014077187 A1 WO2014077187 A1 WO 2014077187A1 JP 2013080156 W JP2013080156 W JP 2013080156W WO 2014077187 A1 WO2014077187 A1 WO 2014077187A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- position detection
- dimensional code
- detection pattern
- pattern
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/06009—Record 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/06037—Record 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/06009—Record 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/06046—Constructional details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/06009—Record 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/06046—Constructional details
- G06K19/06075—Constructional details the marking containing means for error correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/06009—Record 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/06046—Constructional details
- G06K19/06131—Constructional details the marking comprising a target pattern, e.g. for indicating the center of the bar code or for helping a bar code reader to properly orient the scanner or to retrieve the bar code inside of an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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
- G06K2019/06215—Aspects not covered by other subgroups
- G06K2019/06262—Aspects not covered by other subgroups with target- or other orientation-indicating feature
Definitions
- the present invention relates to a two-dimensional code.
- 2D codes can have a lot of information in a small area compared to 1D codes, and are widely used for various purposes such as article management and web guidance using mobile phones. Since the two-dimensional code is photographed at various angles, the size and orientation of the two-dimensional code image on the screen are not constant, and image distortion and image blurring occur. In addition, when the two-dimensional code itself is dirty, a situation occurs in which some images cannot be identified.
- the object of the present invention is to realize a two-dimensional code that is not easily affected by contamination of a two-dimensional code, shooting blur, and the like, and can be accurately recognized in a short time even when shot under various shooting conditions.
- the two-dimensional code of the present invention is a two-dimensional code in which data represented by a binary code is cellized and arranged as a pattern on a two-dimensional matrix, and a position detection pattern, It is characterized by comprising a plurality of data blocks obtained by dividing an area other than the position detection pattern of the two-dimensional matrix, and a separation space provided between a plurality of adjacent data blocks. Thereby, the determination accuracy of the brightness of the cell in each data block improves.
- the plurality of data blocks preferably include a format information block indicating whether the data block is one of a plurality of expressions.
- One of the plurality of representations is a 7-bit representation in which 8 cells other than the central cell are fixed to include 4 bright cells and 4 dark cells, representing 140 patterns.
- Another one of the multiple representations is that the 8 cells other than the center cell are fixed to include 4 light cells and 4 dark cells, and the center cell is fixed to light or dark. , Which represents 70 patterns.
- the position detection pattern preferably has a larger area than the data block. Furthermore, each data block has 3 ⁇ 3 cells, the separation space has a width of 1 cell or more, and the position detection pattern has a horizontal width of 4 cells or more and a vertical width of 4 cells or more. It is desirable to have. Thereby, the detection accuracy of the position detection pattern is improved.
- a two-dimensional code analysis method in which a plurality of data blocks analyze a two-dimensional code including a format information block, identifies a position detection pattern, calculates a position of the format information block based on the identified position detection pattern, and format information The block is analyzed to determine whether the data block is one of a plurality of expressions, and the data block is analyzed according to the determined expression.
- the above two-dimensional code creation system includes a position detection pattern placement unit that places a position detection pattern at a predetermined position of a two-dimensional matrix, and a region other than a region where the position detection pattern of the two-dimensional matrix is placed.
- Dividing means for dividing the data into a plurality of data blocks provided with a separation space therebetween, information block arranging means for selecting an information block for arranging information necessary for analyzing the two-dimensional code from the plurality of data blocks,
- Message data placement means for sequentially placing recorded data, in which a message header is added to each message to be recorded, and further a termination message header is added to the end of the message, in an area excluding the position detection pattern and information block of the two-dimensional matrix And comprising.
- the two-dimensional code of the present invention it is possible to accurately analyze even a photographed image of a two-dimensional code in which various types of deterioration have occurred.
- FIG. 1 is a diagram showing a two-dimensional code described in Patent Document 1.
- FIG. 2 is a diagram illustrating a two-dimensional code according to the first embodiment.
- FIG. 3 is a diagram illustrating an arrangement of a plurality of blocks in the two-dimensional code of the first embodiment.
- FIG. 4 is a diagram illustrating an example of a pattern when a cell is bright or dark according to data in a two-dimensional code having a separation space and a two-dimensional code not having a separation space.
- FIG. 5 is a diagram for explaining the data type of the data block in the first embodiment.
- FIG. 6 is a diagram for explaining data types of 20 pattern expressions.
- FIG. 1 is a diagram showing a two-dimensional code described in Patent Document 1.
- FIG. 2 is a diagram illustrating a two-dimensional code according to the first embodiment.
- FIG. 3 is a diagram illustrating an arrangement of a plurality of blocks in the two-dimensional code of the first embodiment.
- FIG. 4 is a diagram
- FIG. 7 is a diagram illustrating an example of a two-dimensional code created according to the two-dimensional code of the first embodiment.
- FIG. 8 is a diagram illustrating another example of the two-dimensional code created according to the two-dimensional code of the first embodiment.
- FIG. 9 is a diagram illustrating a two-dimensional code according to the second embodiment.
- FIG. 10 is a diagram illustrating an example of a two-dimensional code created according to the two-dimensional code of the second embodiment.
- FIG. 11 is a diagram illustrating a modification in which the position detection pattern of the two-dimensional code according to the second embodiment is applied to two-dimensional patterns having different sizes and shapes.
- FIG. 12 is a diagram illustrating an example of four position detection patterns according to a modification.
- FIG. 13 is a diagram illustrating a hardware configuration of a creation system that creates and provides a two-dimensional code based on a request.
- FIG. 14 is a flowchart illustrating a procedure of an encoding process in which a user accesses system hardware via user hardware and creates a desired two-dimensional code.
- FIG. 15 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. 16 is a flowchart illustrating a procedure of an encoding process in which a user accesses system hardware via user hardware and creates a desired two-dimensional code.
- FIG. 17 is a diagram illustrating a hardware configuration of a two-dimensional code analysis apparatus that reads the two-dimensional code of the first embodiment and analyzes the two-dimensional code.
- FIG. 18 is a flowchart showing a procedure of decoding processing for analyzing a two-dimensional code photographed by a user.
- FIG. 19 is a flowchart showing a decoding process procedure for analyzing a two-dimensional code photographed by a user.
- FIG. 20 is a flowchart showing a decoding process procedure for analyzing a two-dimensional code photographed by a user.
- FIG. 21 is a diagram for explaining the shape check of the position detection pattern candidate.
- FIG. 1 is a diagram showing a two-dimensional code described in Patent Document 1. As shown in FIG. 1
- the two-dimensional code 1 has three position detection patterns (positioning symbols) 2 arranged at three corners and a data area 3.
- the data region 3 is a portion obtained by removing the three position detection patterns 2 and the surrounding spacer portions from the region of the two-dimensional code 1.
- Each position detection pattern 2 includes a square frame 2a that is a dark part, a square 2c that is disposed within the square frame 2a, and a square frame 2b that is a bright part between the frame 2a and the square 2c.
- the specific frequency component ratio of the position detection pattern 2 can be detected only by scanning processing in a certain direction, regardless of the direction in which the two-dimensional code is rotated. Therefore, the center position of the position detection pattern 2 can be easily detected.
- the data area 3 has bits arranged densely in a matrix, and the bit matrix is in the form of a two-dimensional code in addition to an alignment pattern (timing cell) 4 for correcting the position of dots in the data area. It is divided into information and its error correction signal, model number information and its error correction signal, and data portion.
- the alignment pattern 4, the format information of the two-dimensional code and its error correction signal, and the model number information and its error correction signal are arranged at predetermined positions on the bit matrix of the code area 3, and the remaining portion is encoded data.
- the remaining portions after recording the necessary data are the remaining bits.
- the data bits to be recorded and the remaining bits are distinguished by the end pattern at the end of the data bits.
- the remaining bits are referred to as padding and are a light (“1”) bit string, but are generally converted into a light / dark bit string by performing a predetermined process during recording.
- the alignment pattern 4 is a bright and dark bit (dot) string for correcting the position of dots in the data area, and a large number are arranged as shown in FIG.
- the alignment pattern 4 is different from the position detection pattern 2 that detects the reference position of the entire two-dimensional pattern.
- Patent Documents 3 and 4 describe that a bit image is provided using the bits of the data area 3 that is padding.
- FIG. 2 is a diagram illustrating a two-dimensional code according to the first embodiment.
- the two-dimensional code of the first embodiment has a size of 35 ⁇ 35 cells, is divided into 9 ⁇ 9 blocks, and has a bright separation space 23 of 1 cell between adjacent blocks. Therefore, the separation space is a lattice-like pattern with 8 ⁇ 8 columns and a cell interval of 1 cell width.
- the first position detection pattern 12A is in the lower right 3 ⁇ 3 block and the 3 ⁇ 3 separation space
- the second position detection pattern 12D is in the upper right 2 ⁇ 2 block and the 2 ⁇ 2 separation space.
- the third position detection pattern 12B is located in the 3 (horizontal) ⁇ 2 (vertical) block and the 3 ⁇ 2 separation space portion of FIG. Are provided with fourth position detection patterns 12C, respectively. Therefore, a pattern larger than the first to fourth position detection patterns does not appear in blocks other than the first to fourth position detection patterns of the two-dimensional code.
- the minimum unit of the code part of the two-dimensional code is a cell.
- the two-dimensional code usually takes a square or rectangular shape. Although other shapes are possible, most of the two-dimensional codes are quadrangular, and the two-dimensional code of the first embodiment is also square. However, the shape is not limited to this, and may be rectangular or other shapes.
- the two-dimensional code represents data with light and dark cells
- the code part of the two-dimensional code of the first embodiment also represents data with light and dark cells.
- a two-dimensional code for distinguishing cells by color as described in Patent Document 2 and a mirror (horizontal inversion) type two-dimensional code have been proposed, and the present invention is applied to such a two-dimensional code.
- four or more position detection patterns having different shapes are provided as described later.
- the two-dimensional code of the first embodiment is a square of 35 ⁇ 35 cells, it can be formed into a code having a larger size than this, or a shape such as a rectangle whose vertical and horizontal sizes are changed.
- a square two-dimensional code of 35 ⁇ 35 cells is referred to as version 2 ⁇ 2.
- the minimum version is 1 ⁇ 1
- the cell size at this time is 27 ⁇ 27.
- the embedding of the pattern is possible when both the vertical and horizontal versions are 2 or more.
- the reason for not embedding a picture when the version is 1 ⁇ 1 is that even though the amount of data is small, if the pattern is embedded, the amount of data is further reduced, and even if it is recognized, almost no data can be obtained. The above restrictions were added.
- the two-dimensional code of the first embodiment can be expanded in the vertical direction and the horizontal direction, respectively.
- the horizontal version is 2 and the vertical version is 3, it is written as version 2 ⁇ 3.
- the cell size increases by 8 and the number of blocks increases by 2. Therefore, in version 3 ⁇ 4, the cell size is 43 ⁇ 51.
- the version can be selected from 1 to 20, but is not limited to this.
- the dark cell portion has a square frame with a width of 1 ⁇ 8 ⁇ 8 cells and a 2 ⁇ 2 square at the center of the square frame.
- the dark cell portion has a square frame of 1 ⁇ 4 cells of 4 ⁇ 4 cells.
- the third position detection pattern 12B is a horizontally long rectangular frame in which the dark cell portion has a rectangular cell with a width of 1 cell of 8 ⁇ 4 cells.
- the fourth position detection pattern 12C is a vertically long rectangular frame in which a dark cell portion has a rectangular cell with a width of 1 ⁇ 4 ⁇ 8 cells.
- the position detection patterns are different when the shape, the size, and the arrangement direction on the two-dimensional code are different, and also include the case where the line width ratios are different. However, since it is affected by shooting conditions and the like, the difference in color is not targeted, but a light and dark binary image is targeted.
- the position detection pattern is arranged near each vertex of a square or a rectangle. This is because the influence of dirt can be dispersed by arranging them as far as possible rather than arranging them at one place.
- the position of the position detection pattern is not limited to the four corners. As in the first embodiment, by using not only a square but also a rectangle as the position detection pattern, the shape, inclination, and size can be easily distinguished, so that the position detection pattern can be recognized at high speed. In addition, the hollowed rectangle is easy to distinguish from other reflections, and there is little waste of data.
- the reason for arranging the four position detection patterns is that in the two-dimensional projective transformation used to calculate the mapping of the data coordinates with high accuracy in the analysis, the code cell and the coordinates of the captured image corresponding to the cell are calculated. In order to do this, it is necessary to give four sets of coordinates as parameters. Even if the number of position detection patterns is only 2 or 3, it is possible to perform projective transformation after calculating 4 points by interpolating coordinates, but shooting from a slant, distortion, blurring, etc. In the first embodiment, four position detection patterns are arranged because it is difficult to obtain accurate coordinates and greatly affects the accuracy of data extraction.
- the reason why the position detection pattern is different is that even if there is a missing position detection pattern, the missing position detection pattern can be reliably identified, and the coordinates of the missing position detection pattern can be predicted. Pattern correction is possible. When all the same position detection patterns are used, it is not easy to identify the position detection patterns that have not been found as much as when different position detection patterns are used, and it is difficult to correct the position detection patterns.
- 56 blocks other than the four position detection patterns of the two-dimensional code are data portions, and include an actual data block, an error correction code block, a version information block, a format information block, and a design embedding information block.
- the data part has 3 ⁇ 3 cells as one block and embeds data in block units.
- the data portion includes version information blocks 15 and 16, a format information block 17, and picture embedding information blocks 18A, 18B, 19A and 19B, and the remaining blocks are actual data blocks 22.
- a part of the actual data block 22 is used as an error correction code and a position correction pattern.
- the remaining blocks 22 excluding the position detection pattern, version information block, format information block, picture embedding information block, block provided with the position correction pattern, and error correction code block are actual data blocks. If the pattern is embedded, the pattern embedded block indicated by the pattern embedded information block is also excluded from the actual data block. The actual data is recorded in order such that the blocks belonging to the actual data block are laid out in order from the upper left to the right, and laid from the left one block below when the laying is completed.
- a block has 3 ⁇ 3 cells, and each cell represents one bit of light and dark, so one block has a maximum of 9-bit information (9-bit representation), but here is resistant to blurring and blurring of the image Therefore, the data amount per block can be set smaller than the 9-bit data amount.
- the block size is 3 ⁇ 3 cells.
- the block size is not limited to this, and the minimum 1 ⁇ 1 cell size and the vertical and horizontal cell sizes are not limited. Different block sizes are possible.
- the version information block records information related to the size of the two-dimensional code, and there are two types, a vertical version information block 15 and a horizontal version information block 16, and corresponding version information is recorded.
- the vertical version information block 15 and the horizontal version information block 16 disperse the risk of loss due to dirt or the like by disposing two blocks each storing the same information at two separate locations.
- version information a block representing a numerical value of the version number (vertical and horizontal 1 to 20) is arranged.
- the format information block 17 records format information consisting of a pattern embedding flag (1 bit) and data block type data (2 bits), and arranges three blocks storing the same information at three separate locations.
- the pattern embedding flag indicates whether or not a pattern is embedded, that is, whether or not a pattern embedding area is provided. When the pattern embedding is present, a pattern embedding information block is provided.
- the data block type data indicates the type of the data block.
- the data block type is the data capacity per block, and any of 6, 7, and 9 bits / block is selected. The amount of data decreases in the order of 9 bits> 7 bits> 6 bits, but the readability of the data is in the order of 6 bits> 7 bits> 9 bits. Take into account and choose. This will be described later.
- the pattern to be embedded is embedded in units of blocks, and when a plurality of adjacent blocks are the pattern embedding area, a separation space between them is also included in the pattern embedding area.
- the external shape of the pattern to be embedded is a rectangle, and the image of the pattern is not limited to a binary image in cell units, and any image may be used. Also, there may be a plurality of rectangular blocks in which the pattern is embedded.
- the pattern may be a multi-value image having a higher resolution than the cell, a color image, or, of course, a binary image in units of cells.
- the pattern is not embedded in the upper code block 2 rows, the left block 2 columns, the lower block 3 rows, and the right block 3 columns.
- a pattern embedding information block having image information is arranged in a portion outside the pattern embedding range.
- the pattern embedding information block records information on the size and block position of the area in which the pattern is embedded in the vertical and horizontal directions, and there are two types of vertical embedding information blocks 18A and 18B and horizontal embedding information blocks 19A and 19B. Corresponding version information is recorded.
- the vertical embedding information blocks 18A and 18B record the design embedding height (3 bits or 6 bits) and the design embedding offset height (3 bits or 6 bits).
- the horizontal embedding information blocks 19A and 19B designate a picture embedding width (3 bits or 6 bits) and a picture embedding offset width (3 bits or 6 bits). Whether to use 3 bits or 6 bits is related to the version information as will be described later. If the version is 2 to 4, 3 bits are required. If the version is 5 to 20, 6 bits are required. In the case of 2 to 4, the vertical embedding information block 18B and the horizontal embedding information block 19B are unnecessary.
- the pattern embedding information block exists only when the pattern embedding flag is set in the format information block.
- the first embodiment assumes a case in which the number of embedding patterns is only one. If it is assumed that a plurality of embedding patterns are embedded in a plurality of areas, the format information block uses a pattern embedding flag. The number of bits is increased to indicate the number of picture embedding areas, and the above-mentioned picture embedding information blocks are provided for the number of pictures. Design size / offset is specified in blocks.
- the block coordinates are expressed as (n, m) with the block at the upper left corner as the origin, the number of horizontal blocks is blW, and the number of vertical blocks is blH.
- the embedding area of the pattern is limited to a rectangular area consisting of upper left (2, 2) and lower right ((blW-4, blH-4).
- the maximum number of horizontal blocks of the pattern is blW ⁇ . 5 and the maximum number of vertical blocks is blH-5.
- the position of the picture is embedded in the code as block embedding information blocks with the block coordinates that are the starting point (upper left) and the block size so that the position of the picture can be recognized during code analysis. . Similar to the version information block, it is handled separately in the horizontal and vertical directions. In the horizontal direction, the amount of data is divided when blW-5 is less than 8 (horizontal version 2 to 4) and in other cases (horizontal version 5 to 20), and the vertical length is the same. The values of blW and blH can be obtained by analyzing the horizontal and vertical versions.
- the horizontal block size is a minimum of 1 and a maximum of 8 blocks, 8 can be represented by 3 bits, and similarly there are 7 horizontal offset blocks, 2 to 8, Since it can be represented by 3 bits, the total is 6 bits. Therefore, a block is represented by 6 bits, and these can be represented by one block. The same applies to the vertical.
- the horizontal block size is represented by 6 bits, and similarly, the number of horizontal offset blocks is represented by 6 bits. Therefore, it is expressed using 2 blocks. The same applies to the vertical.
- the horizontal embedding information blocks 19A and 19B are outside the upper left and lower right horizontal version information blocks (upper and lower), and the vertical embedding information blocks 18A and 18B are outside the lower left and lower right vertical version information blocks. (Left side and right side) If the pattern is not embedded, that is, if the pattern embedding flag of the format information block indicates “None”, the code embedding information block and the area for embedding the pattern become unnecessary, and the code becomes efficient.
- the position correction pattern is a target pattern used for the coordinate correction of the real data block, the error correction code block, and the picture embedding information block when the picture is embedded.
- the approximate coordinates in the two-dimensional code can be obtained from the position detection pattern, the error in the coordinates of the data part appears due to paper skew, bending, lens distortion, and displacement at the time of position detection pattern acquisition.
- the position correction pattern does not need to be distinguished from other noises. If the position detection pattern can be calculated, the position of the position correction pattern can be easily determined. Therefore, it is desirable that the position correction pattern has a shape that facilitates fine coordinate correction.
- blocks in the position correction pattern, blocks (position correction blocks) composed of predetermined cell combinations are arranged at equal intervals instead of actual data.
- a block in which the center cell of the block is dark and the surrounding area is bright is arranged if the block coordinates (7n, 7m) (n and m are integers of 0 or more) are data portions.
- the position detection block, the version information block, the format information block, the design embedding information block, and the design should exist at the coordinates, they are not arranged.
- the upper left coordinate reference coordinate of the block is (0, 0)
- the block on the right is expressed as (1, 0).
- the block for providing the position correction pattern is not limited to the above.
- a message and a segment combining the header (message type (message encoding) and message size) that qualifies the message are arranged by the number of messages.
- a segment that does not include a message and contains only a termination flag is prepared.
- a segment of the termination flag is arranged, and then padding is arranged.
- the actual data is divided into blocks according to the data capacity per block indicated by the data block type data.
- the error correction code is also divided into blocks. When a Reed-Solomon code is used as the error correction code, error correction is performed in units of words, so it is desirable to make one word into one block.
- FIG. 3 is a diagram illustrating an arrangement of a plurality of blocks in the two-dimensional code of the first embodiment. Each block has 3 ⁇ 3 cells, and the periphery is separated by a separation space 23 having a width of 1 cell.
- FIG. 4 is a diagram illustrating an example of a pattern when a cell is bright or dark according to data in a two-dimensional code having a separation space 23 and a two-dimensional code not having a separation space 23.
- (A) of FIG. 4 is a two-dimensional code having a separation space 23, and four 3 ⁇ 3 cells of four blocks, three patterns in the case where the center and four corners are dark, and the others are light
- FIG. 4B shows a case where there is no separation space 23 of the two-dimensional code shown in FIG. 4A, which is a two-dimensional code composed of the three patterns and one pattern in which the brightness is inverted.
- FIG. 4A shows a case where there is no separation space 23 of the two-dimensional code shown in FIG. 4A, which is a two-dimensional code composed of the three patterns and one pattern in which the brightness is inverted.
- the two-dimensional code having the separation space 23 is larger and the data efficiency is reduced.
- the adjacent blocks Therefore, the accuracy of the light / dark judgment of each cell is improved.
- the photographed image is blurred or blurred, the two-dimensional code not having the separation space 23 is likely to be black.
- each cell is affected by the color of surrounding cells. In FIG. 4B, whether the surrounding cells are light or dark is almost random, and if the surrounding cells are large in different colors, there is a large influence, but otherwise the influence is small and not uniform.
- FIG. 4A shows the separation space 23, so that acgi is in contact with the separation space at 5 out of 8 places, and bdfh is at the 8 places around. It can be said that the cells other than e are less affected by the surroundings than in FIG. Furthermore, by making the 6-bit expression described later, it is not possible to evaluate the e-cell that is easily affected, and acgi touches the bright cell at 6 out of 8 surroundings, and bdfh touches the light cell at 4 out of 8 surroundings. Therefore, it can be said that it is less affected by blurring and blurring.
- the position detection pattern is a square of 4 ⁇ 4 cells even in the second position detection pattern 12D having the smallest size, and since the 3 ⁇ 3 block is separated by the separation space 23, the position detection pattern is included in the data block. The same pattern will never appear. Therefore, by providing the separation space 23, the detection process of the position detection pattern is facilitated.
- the data capacity per block can be selected according to the type according to the tolerance of data degradation.
- FIG. 5 is a diagram for explaining the data type of one block in the first embodiment.
- FIG. 5A shows data types in which 9 bits can be expressed by allocating bits a to i of 3 ⁇ 3 cells in one block.
- the coordinates in the image corresponding to each cell are calculated with respect to the binary image created from the input captured image, and the pixel value of the coordinate is clear. Whether “(1”) or dark (“0”) is determined and set to a value of 9 bits per block. A method for converting a captured image into a binary image will be described later.
- the center of a 3 ⁇ 3 cell of one block is fixed to “1” (bright), and the surrounding eight cells j1 to j8 are four bright (“1”).
- the center of a 3 ⁇ 3 cell of one block is fixed to “0” (dark), and the surrounding eight cells j1 to j8 are four bright (“1”).
- (6-bit representation) When the data type is 6-bit representation, both (B) and (C) can be used, but they are matched on the encoding side and the decoding side.
- the analysis of (B) and (C) in FIG. 5 is performed, the coordinates in the captured images of the cells j1 to j8 are calculated with respect to the grayscale image created from the input captured image, and each cell is calculated.
- the grayscale pixel values are acquired, and the pixel values are sorted in descending order. At this time, four cells with high pixel values are bright, and four cells with low pixel values are dark.
- a method for converting a captured image into a grayscale image will be described later.
- the two-dimensional code needs to be recognized under various shooting environments. At that time, the light has a bad influence on the captured image, such as a local color change or a stepwise color change, which is why it is difficult to create an appropriate binary image for the captured image. It becomes.
- the advantage of this method is that no binarization threshold is required.
- the binarization threshold value is not derived, there is an effect that it is possible to determine the lightness / darkness of the cell based on the relationship between the relative pixel values of each cell.
- the cells involved are concentrated by making them into blocks, so the probability that all cells are uniformly affected increases, and the entire cell becomes white. Even in such a case, since the relative magnitude relationship of the pixel values is maintained, the possibility of being recognized increases.
- the central cell can be arbitrarily set to “1” (bright) or “0” (dark), and the surrounding eight cells j1 to j8 are set to 4
- a data type can be set so as to include light (“1”) and four dark (“0”).
- (7-bit representation) This analysis method is the same as the case of 6 bits up to the analysis method of surrounding cells.
- the analysis of the central pixel is performed by calculating the pixel value of the cell having the smallest pixel value among the four points having the highest pixel value as G1, and the pixel value of the cell having the largest pixel value among the four points having the lower pixel value.
- G2 is used to calculate the coordinates of the center cell of the block in the captured image, and if the obtained pixel value is (G1 + G2) / 2 or more, the center cell is a bright cell, otherwise the center cell is Dark cell.
- the threshold value obtained from the analysis of the adjacent cell is used for the evaluation of the center cell, and it is highly likely that the influence from the imaging environment is almost the same on the cell adjacent to the center cell. Highly recognizable.
- (D1) to (D8) in FIG. 5 fix the center cell to light or dark (in this case, light (“1")) and set the surrounding eight cells to four light and dark cells in one block.
- light, dark, bright, light, dark and dark are fixed in the clockwise direction, and data is taken out at the position of the isolated light cell.
- the data amount is 3 bits. (3-bit representation)
- To detect the position of an isolated bright cell in this pattern the brightness value of each cell is added, subtracted, subtracted, added, added, added, subtracted clockwise from the cell at the start position. Then, the subtracting calculation process is performed while sequentially rotating the start position, and the start position where the calculation result is maximized is obtained. This is the position of the isolated bright cell. Similarly, it can be performed by reversing light and dark. In this case, a start position where the calculation result is minimized is obtained.
- any of the above 9-bit representation, 7-bit representation, and 6-bit representation is selected according to the data block type data (2 bits) in the format information block 17. If necessary, a 3-bit representation may be selected.
- the version information block and the format information block for recording important information use a data type of 20 pattern expression described below.
- FIG. 6 is a diagram for explaining data types of 20 pattern expressions.
- reference numeral 31 indicates a data block of 20 patterns
- 32 indicates any one of the first to fourth position detection patterns.
- the data block 31 arranged below or above the position detection pattern 32 fixes the cells in the center column in the vertical direction to dark / dark (010).
- data is expressed by 6 bits of cells m1 to m6 in two columns on both sides.
- the cell data of the blocks shown in FIGS. 6A and 6B are detected by scanning in the vertical direction. Further, as shown in FIGS.
- the data block 31 arranged on the right side or the left side of the position detection pattern 32 makes the cells in the center column in the horizontal direction dark and light (010).
- the cell data of the blocks shown in FIGS. 6C and 6D are detected by scanning in the horizontal direction. With this data type, even if the code version and cell size are uncertain during analysis, data can be obtained from the data block if the position of the position detection pattern in the captured image is known.
- the data block is scanned by scanning the direction of the adjacent position detection pattern (the first position detection pattern and the second position detection pattern are adjacent to the third position detection pattern and the fourth position detection pattern) from the position detection pattern. Is found.
- scanning is performed perpendicularly to the lower side of the position detection pattern of reference number 32 toward the center column of the data block. Scanning is performed immediately below the position detection pattern, and a dark cell that is the upper cell in the center row is hit. Proceeding this way, it hits the light cell, hits the dark cell, and then hits the light cell in the separation space.
- the coordinates of the cells in the center column and the number of pixels per cell of the data block can be calculated.
- the coordinates of the other cells in the data block can be easily determined, so that the data represented by the data block can be obtained.
- the version information block and the format information block are important data blocks in the analysis process, and are arranged so as to have a positional relationship as shown in FIG.
- the same information is held in two locations for the information block and three locations for the format information, thereby taking measures against local noise such as dirt and spotlights.
- FIG. 7 is a diagram illustrating an example of a two-dimensional code created according to the two-dimensional code of the first embodiment.
- the two-dimensional code in FIG. 7 is a 43 ⁇ 43 cell, 11 ⁇ 11 block two-dimensional code, and the version is 3 ⁇ 3.
- the two-dimensional code of FIG. 7 does not have a picture area and no picture is embedded. Therefore, a pattern embedding information block is also unnecessary.
- FIG. 8 is a diagram showing another example of the two-dimensional code created according to the two-dimensional code of the first embodiment.
- the two-dimensional code in FIG. 8 is a 59 ⁇ 59 cell, 15 ⁇ 15 block two-dimensional code, and the version is 5 ⁇ 5.
- the two-dimensional code in FIG. 8 has a rectangular picture area whose diagonal is block coordinates (2, 5) and (11, 8), and an image in which an ID code and an article name are described is attached. As a result, the user can determine the outline of the recognition target even before recognizing the code.
- FIG. 9 is a diagram illustrating a two-dimensional code according to the second embodiment.
- the difference between the two-dimensional code of the second embodiment and the two-dimensional code of the first embodiment is as follows.
- the first position detection pattern 52A has only a square frame of dark cells and does not have a square inside. Further, the second position detection pattern 52B and the third position detection pattern 52C are rectangles close to a square.
- the fourth position detection pattern 52D has the same shape as 12D of the first embodiment.
- the block size and the block configuration are different, and in particular, the block configuration of the outer part sandwiched between the position detection patterns in the horizontal direction and the vertical direction is different.
- the blocks arranged in this part are one row, and in that part, two vertical version information blocks 55, two horizontal version information blocks 56, three format information blocks 57, and two vertical picture embedding information A block 58, two horizontal picture embedding information blocks 59, and position correction patterns 54A and 54B are provided.
- the remaining blocks 60 are an actual data block, an error correction code block, a block to be a position correction pattern, and a picture embedding area.
- FIG. 10 is a diagram illustrating an example of a two-dimensional code created according to the two-dimensional code of the second embodiment.
- (A) in FIG. 10 is a two-dimensional code of 8 ⁇ 8 blocks with 36 ⁇ 36 cells.
- the two-dimensional code in (A) of FIG. 10 has a rectangular picture area whose diagonals are block coordinates (2, 2) and (5, 5), and a high-resolution multivalued image is attached. Thereby, the impression which a two-dimensional code gives can be improved and attention can be gathered.
- (B) in FIG. 10 is a 36 ⁇ 36 cell, 8 ⁇ 8 block two-dimensional code.
- the two-dimensional code in (B) of FIG. 10 has a rectangular pattern area whose block coordinates (2, 3) and (5, 4) are diagonal, and is attached with a numerical image.
- FIG. 11 is a diagram showing a modification in which the position detection pattern of the two-dimensional code of the second embodiment is applied to a two-dimensional pattern having a different size and shape.
- Reference numeral 53 indicates a data area.
- FIG. 11A shows an example of a small square two-dimensional code.
- FIG. 11B shows an example of a two-dimensional code similar to the second embodiment.
- FIG. 11C shows an example of a rectangular two-dimensional code.
- FIG. 11D shows an example of a two-dimensional code which is a rectangular two-dimensional code and has a fifth position detection pattern 52E added to the center.
- the fifth position detection pattern 52E has a square frame and a shape similar to the first detection pattern 12A of the first embodiment having a square inside.
- the position detection pattern in the present invention is (1) that the four types of position detection patterns can be distinguished by any one of shape, size, and arrangement direction on the two-dimensional code, and (2) position detection. It is possible to distinguish between patterns with a simple algorithm, (3) Easy to narrow down combinations of distinguished position detection patterns (contributes to higher speed), (4) Position detection pattern It is desirable to suppress the cell size, (5) to be easily distinguished from a captured image other than the two-dimensional code, and (6) to have no other position detection pattern in the two-dimensional code. It can be said that the position detection patterns in FIGS. 2 and 9 satisfy the above items.
- the second position detection pattern having a cell size of 4 ⁇ 4 square shown in the first embodiment has a minimum cell size configuration having the above-described space.
- a frame of 1 cell, a space of 2 cells, and a square of 2 cells are overlapped.
- a dark / dark / dark / dark pattern is obtained by scanning the center regardless of the direction, and the difference from the second position detection pattern and noise is clear.
- the shape of the third position detection pattern and the fourth position detection pattern it is desirable that the position detection pattern frame exists on an extension line of the position detection pattern frame. Thereby, when the position detection pattern is missing, an effect of improving the accuracy of predicting the coordinates of the missing position detection pattern can be obtained.
- the shapes that meet these conditions are the third position detection pattern and the fourth position detection pattern of the first embodiment. Each of them is inclined by 90 degrees, and the first position detection pattern and the second position detection pattern have different aspect ratios, so that they can be easily distinguished.
- the second embodiment has a configuration in which the cell size occupied by the position detection pattern is the smallest, and the first position detection pattern and the second position detection pattern have the same shape, differ in size, and the second position detection pattern is 5 in number.
- the third position detection pattern and the fourth position detection pattern are created for the same reason as described above for ⁇ 5 cells.
- the cell size of the first embodiment is larger than that of the second embodiment, the area of all the position detection patterns is close in the second embodiment, and compared to the case where the image is taken from an oblique direction and is easily affected by accuracy.
- the first position detection pattern and the second position detection pattern have different shapes, and the third position detection pattern and the fourth position detection pattern have different directions, and the first detection pattern / second position detection
- the pattern and the third detection pattern / fourth position detection pattern have different aspect ratios. These can be sufficiently distinguished even when the image is taken from an oblique direction, and are useful for distinguishing the position detection patterns.
- the two-dimensional code shown in FIG. 1 is recognized, a quiet zone is necessary around the printed code, which is considered to be a part of the code.
- the two-dimensional code of the first embodiment does not affect the accuracy of what kind of printing is performed around the code.
- the margin can be arranged outside the code as in the code of FIG.
- FIG. 12 is a diagram illustrating an example of four position detection patterns according to a modification.
- FIG. 12A shows an example in which a large circular frame, two elliptical frames with different directions, and a small circular frame are four position detection patterns.
- FIG. 12B shows an example in which a large circle having a small circle inside, two elliptical frames having different directions, and a small circle are four position detection patterns.
- FIG. 12C illustrates an example in which a large cross shape, two cross shapes extending only in one extending direction and a small cross shape are four position detection patterns.
- FIG. 12 shows an example in which a large L-shape, two L-shapes that extend only in one extending direction and a small L-shape are four position detection patterns.
- the L shape is the same direction, and the rotation direction can be determined from the corner position. Note that the L-shaped direction may be rotated by 90 degrees.
- FIG. 12 shows an example in which a large triangular frame, two triangular frames extended only on one side with different extension directions, and a small triangular frame are four position detection patterns.
- the example shown in FIG. 12 is a part of the example, and other various position detection patterns are possible.
- FIG. 13 is a diagram illustrating a hardware configuration of a creation system that creates and provides a two-dimensional code based on a request, 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 61 such as a computer and a storage device 62 such as a magnetic disk.
- the system hardware includes a system processing device 65 such as a computer and a storage device 66 such as a magnetic disk.
- the user processing device 61 and the system processing device 65 are connected via 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. 13 shows an example of a client / server configuration creation system, but the creation system is not limited to this.
- the printer is issued by an encoding software on the client PC and issued from a USB-connected printer, and a configuration in which the printer is issued from a handy type terminal / printer.
- FIG. 14 to FIG. 16 are flowcharts showing the procedure of the encoding process in which the user accesses the system hardware via the user hardware and creates a desired two-dimensional code.
- 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 determines whether or not to embed a picture in the two-dimensional code. If the picture is to be embedded, the process proceeds to step S13. If not, the process proceeds to step S15 performed on the system side. At this time, the user processing device 61 notifies that the message input to the system processing device 65 and the design are not embedded.
- step S13 the user inputs a block position (pattern embedding offset width, pattern embedding offset height, pattern embedding width, and pattern embedding height) in which the pattern is embedded.
- the user processing device 61 notifies the system processing device 65 of the input message, embedding the design, and the design embedding block position.
- step S14 the block size of the pattern is determined on the system side based on the transmitted block position.
- step S15 a block size for recording the transmitted message is determined.
- step S16 the minimum vertical version is calculated for all horizontal versions. This is calculated by multiplying the number of blocks in the vertical and horizontal directions, position detection pattern, version information block, format information block, when embedding the design, the block according to the design embedding information block and design embedding area, position correction Calculate the remaining blocks, excluding the blocks in the pattern. Furthermore, the size that can be accommodated by the actual data block for recording the message is presented in the form of a table in the remaining blocks excluding the number of error correction code blocks that give a constant error correction rate for this number of blocks. Is. The system processing device 65 transmits the calculated table data to the user processing device 61.
- step S17 a vertical / horizontal version table is presented to the user, and the user determines which one to use.
- the user processing device 61 transmits the determined vertical / horizontal version to the system processing device 65.
- step S18 the system side determines the block size of the actual data from the transmitted vertical / horizontal version and the block size corresponding to the pattern embedding area.
- step S19 the error correction code block size is determined from the transmitted vertical / horizontal version and the block size corresponding to the picture embedding area on the system side.
- step S20 when embedding the version information block, format information block, and picture on the system side, the positions of the picture embedding information block and the picture embedding area block are determined.
- step S21 it is determined on the system side whether or not the pattern embedding is performed. If the pattern embedding is performed, the process proceeds to step S22, and if not, the process proceeds to step S23.
- step S22 the pattern embedding information block is arranged at a predetermined block position in the code image portion.
- step S23 the position detection pattern / position correction pattern is arranged in the image portion.
- step S24 the version information block / format information block is arranged in the image portion.
- step S25 a message header is assigned for each message.
- step S26 it is determined whether or not there is still a part to store data. If there is, the process proceeds to step S27.
- step S27 a termination message header (termination flag) is added to the end of the message data.
- step S28 padding is added to the remaining actual data part.
- step S29 actual data is made into blocks and arranged in the image portion.
- step S30 the error correction code block is arranged in the image portion.
- step S ⁇ b> 31 the system processing device 65 outputs the code image created as described above and transmits it to the user processing device 61.
- step S32 the user side determines whether or not to embed the pattern. If the pattern is to be embedded, the process proceeds to step S33. If not, the process proceeds to step S34 and ends.
- step S33 the transmitted code image is combined with the pattern data to be embedded in the block in the pattern embedding area to generate the entire image.
- the embedding of the pattern may be performed in the system processing unit in the form of data attachment, for example.
- step S34 the main encoding process ends.
- the user side has the pattern data, but the system side may have the pattern data, and the user may designate it.
- FIG. 17 is a diagram illustrating a hardware configuration of a two-dimensional code analysis apparatus that reads the two-dimensional code of the first embodiment and analyzes the two-dimensional code.
- the two-dimensional code analysis apparatus includes a reading unit 70, a computer (two-dimensional code analysis processing unit) 74, a display 75, and a communication interface 76.
- the reading unit 70 includes a lens 71, an image sensor 72, and an analog / digital converter (AD) 73, and outputs the photographed two-dimensional code digital image data to the computer 74.
- the two-dimensional code analysis apparatus shown in FIG. 17 is widely used, and in recent years, portable terminals have also realized functions similar to those of the two-dimensional code analysis apparatus.
- FIG. 18 to FIG. 20 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 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 first converted into 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. Light if there is any, dark if less.
- 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, starting from the upper left point of the image, the screen is scanned in the X direction, and when reaching the right end, scanning is performed in the X direction from the left end a few pixels below. In other words, it will subtract a few pixels. This is repeated for the entire image.
- the minimum height of the position detection pattern is a minimum cell size in the Y direction that can occur when the position detection pattern is rotated in consideration of the rotation of the code.
- the minimum height of the second position detection pattern in the upper left is 4 The cell is minimized. If the number of pixels per cell at the time of photographing is less than 1 pixel per cell, it will be difficult to discriminate between light and dark in the ideal image. In consideration of cell shift and rotation in an actual captured image, it is desirable that there are at least 3 pixels per cell. Assuming 3 pixels, the maximum thinning amount is 12 pixels in the above case, and the number of image scans is 1/12 of the total number of pixels, so that the number of scans can be greatly reduced.
- step S105 the position detection pattern candidate is inspected. Specifically, when a bright to dark boundary is found during scanning, the periphery of the dark portion is scanned. At that time, the minimum and maximum X coordinates and Y coordinates are obtained respectively. Thereby, the circumscribed rectangle of the dark mass can be acquired.
- the upper left coordinates are represented as (x1, y1), and the lower right coordinates are represented as (x2, y2).
- the number of image scans can be sufficiently reduced even if a surrounding search is performed.
- An example of the worst case that takes the longest processing time in the surrounding exploration is a case where vertical stripes of 1 pixel are arranged for each pixel. However, such a case does not occur in the first place, and even if it occurs, The search can be suppressed by the same number of times that all pixels are scanned once, and the number of scans does not increase. The same applies to the other worst cases.
- the position detection pattern can be detected by searching for a portion where the ratio of darkness, darkness, and darkness is 1: 1: 3: 1: 1, and the position detection pattern can be found by one scan. it can.
- the ratio of 1: 1: 3: 1: 1 is obtained in the scanning when the photographed code is inclined 45 degrees.
- the direction of shooting is free, so any rotation position where the direction of the shooting code is 360 degrees is possible. In such a case, the amount that can be thinned out is small and the actual rotational position is unknown, so the thinning amount cannot be increased.
- FIG. 21 is a diagram for explaining the shape check of the position detection pattern candidate.
- the shape of the position detection pattern candidate is checked.
- Each of the two-dimensional code position detection patterns of the first embodiment has a frame, that is, a hole shape. Therefore, first, the presence or absence of holes is confirmed. Scanning in the x-axis direction is performed with the start point being the left midpoint of the circumscribed rectangle (x1, (y1 + y2) / 2) and the end point being (x2, (y1 + y2) / 2). Here, it is confirmed that the following condition (1) or (2) is satisfied.
- the upper and lower sides are scanned from the center coordinates ((lx1 + rx1) / 2, (y1 + y2) / 2), and the top is bright and dark (end point) : ((Lx1 + rx1) / 2), y1-1)), lower is bright and dark (end point: ((lx1 + rx1) / 2), y2 + 1)), and y coordinate ty1 and lower side of the upper scanning dark and light boundary It is confirmed that the midpoint of the y-coordinate by1 of the dark and bright boundary of the side scan substantially coincides with the bright central coordinate.
- the top and bottom are scanned from the center coordinates ((lx2 + rx2) / 2, (y1 + y2) / 2), and the top is dark and dark ( End point: ((lx2 + rx2) / 2), y1-1)), the bottom is dark / dark (end point: ((lx2 + rx2) / 2), y2 + 1)), and the second dark-light boundary of the upper scan It is confirmed that the middle point of the y coordinate ty2 and the second dark and bright boundary y coordinate by2 of the lower scanning substantially coincide with the bright center coordinate.
- the first position detection pattern having a dark portion in the frame (a square in the square frame) and the second to fourth position detection patterns having only the frame (a square frame or a rectangular frame: B-shaped) are distinguished. did it.
- the area is the area of the outer rectangular frame and includes the area of the inner space.
- the square in the frame is also included.
- the area of the position detection pattern can be obtained by subtracting the area of four right triangles including four corners from the area of the outer rectangle.
- Area (x2 ⁇ x1) ⁇ (y2 ⁇ y1) ⁇ (vx1 ⁇ vx4) ⁇ (vy4 ⁇ vy1) / 2 ⁇ (vx2 ⁇ vx1) ⁇ (vy2 ⁇ vy1) / 2 ⁇ (vx2 ⁇ vx3) ⁇ (vy3) -Vy2) / 2- (vx3-vx4) ⁇ (vy3-vy4) / 2.
- the third and fourth position detection patterns are obtained from 0 to 180 degrees.
- length (vx1, vy1, vx2, vy2)> length (vx4, vy4, vx1, vy1) and (x2-x1) ⁇ (y2-y1), and ⁇ arctan ((vy2-vy1) ) / (Vx2-vx1)).
- length (vx1, vy1, vx2, vy2) ⁇ length (vx4, vy4, vx1, vy1) and (x2-x1) ⁇ (y2-y1), and ⁇ arctan ((vy2-vy1) ) / (Vx2-vx1)) + 90 degrees.
- the center coordinate is the center of the circumscribed rectangle ((x1 + x2) / 2 (y1 + y2) / 2). This completes the inspection of the position detection pattern candidate.
- step S106 the position detection patterns that have already been classified into three types are sorted in descending order by area for each distinction.
- step S107 a combination of four types of position detection patterns is created.
- the position detection pattern candidate having the largest area is selected from the first position detection pattern candidates.
- the area of the first position detection pattern is S
- a combination of second position detection pattern candidates having an area of S / 4 and the same rotation angle is searched.
- a candidate whose area is S / 2 is searched for in the third and fourth position detection pattern candidates, and a combination of candidates having the same angle and candidates different by 90 degrees is searched.
- the number of combinations becomes enormous.
- the number of combinations can be greatly reduced by changing all the position detection patterns as in the present invention, and further combinations can be narrowed down by simple comparison operations by using features such as shape, area, and rotation obtained in advance. It has become. This will be described later.
- step S107 it is determined whether there are any combinations of four types of position detection patterns that are not considered. If they remain, the process proceeds to step S108, and if not, the process proceeds to step S112.
- step S108 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 FIGS.
- step S109 depending on the result of whether or not the information has been successfully extracted, the process proceeds to step S110 if successful, and in the case of failure, the process of excluding the combination of failed position detection patterns is performed. Return.
- step S110 a message of information that has been successfully extracted is stored.
- step S111 the candidates used for the two-dimensional pattern for which data has been successfully extracted are excluded from the position detection pattern candidates, and the process returns to step S107. 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 S108 the analysis of the imprinted two-dimensional code is completed.
- information extraction processing in step S108 may be performed for three or two types of combinations. This will be described later.
- step S112 a message that the analysis is completed is transmitted to the caller.
- step S113 the analysis main process ends.
- step S200 an information extraction process is started.
- step S201 the relationship between the four combinations of position detection patterns is checked. The check is performed by determining whether or not the following conditions (a) and (b) are satisfied. If there is an item that does not satisfy the condition, the process ends as a problem.
- the center coordinate of the first detection pattern is pt1
- the center coordinate of the second detection pattern is pt2
- the center coordinate of the third detection pattern is pt3
- the center coordinate of the fourth detection pattern is pt4.
- Pt1, pt3, pt2, pt4, pt1 are connected in order. If the four combinations of position detection are correct, a rectangle is obtained.
- step S202 it is determined whether there is a problem based on the above check results. If there is a problem, the process proceeds to step S203, a flag indicating that the information extraction has failed is set, and if there is no problem, the process proceeds to step S204.
- step S204 the number of pixels per cell is obtained from any position detection pattern.
- step S205 a two-dimensional code version is provisionally determined from the cell size obtained in step S205.
- the value of the horizontal version obtained here is a horizontal provisionally determined version. If there is no version with the same cell size, the version with the closest cell size is specified. The vertical method is the same. The tentative reason is that there is a possibility that an accurate value cannot be obtained due to shooting from a slant or bending of the printed paper, so that the correct value can be obtained by using the version information block as well. I have to.
- step S206 the coordinates in the captured images of the cells constituting the version information block and the format information block are detected by scanning the direction of the adjacent position detection pattern from the position detection pattern.
- step S207 the version information block is analyzed (vertical and horizontal). As a result, vertical and horizontal versions are found. If the analysis fails, the process ends.
- the version information block and the format information block indicate 20 values in one block.
- the version information block has two vertical and horizontal blocks, and a provisionally determined version obtained from the value read from the vertical and horizontal version information blocks, the code width and height, and the size of the position detection pattern. If two or more of these three values are the same value, that value is adopted.
- step S208 the format information block is analyzed. Whether to embed a pattern and how to embed data for each block are determined. If the analysis fails, the process ends. Three locations of the format information block are located, and two or more format information blocks are adopted if they are the same.
- step S209 the coordinates of the position correction pattern are calculated, and the coordinates in the image of the two-dimensional code of each cell are obtained with high accuracy. Although the coordinates of each cell have already been derived, the influence of lens distortion can be reduced by the position correction pattern. Since the coordinates of the position correction pattern in the image are already known, it is confirmed that the point is dark.
- step S210 it is determined whether or not the pattern information is embedded in the format information block. If it is determined that there is a pattern, the process proceeds to step S211. If it is determined that there is no pattern, the process proceeds to step S212.
- step S211 by referring to the design embedding information block, the vertical and horizontal offset widths and heights of the design embedding block and the width and height of the design block are determined.
- step S212 with respect to the actual data block and the error correction code block, the nearest center coordinates of the position detection pattern or the center coordinates of the position correction pattern are selected, and cells in the captured image are selected by projective transformation. Find the coordinates of.
- step S213 for the actual data block and the error correction code block, a plurality of bright (1) and dark (0) data is detected according to the data type of the format information block.
- step S214 the number of error correction code blocks is calculated from the actual data block and the number of error correction code blocks. As a result, the actual data and the error correction code are determined.
- step S215 the number and position of errors are detected for the data portion and the error correction code using the error correction code. If the error is 0, the process proceeds to step S219. Otherwise, the process proceeds to step S216. In step S216, it is determined whether correction is possible. If correction is possible, the process proceeds to step S218, and if correction is not possible, the process proceeds to step S217.
- step S217 since the information extraction has failed, no message is obtained, and the process ends.
- the obtained actual data includes a header (message type (message encoding) / message size), a message, a termination flag, and padding.
- a segment is a combination of a header and a message.
- the end flag is a special segment that does not contain a message. There may be multiple segments. When the end flag is found, it is all padded after that. Restore messages from data.
- the information extraction process ends.
- Projective transformation requires four or more sets of coordinates.
- four position detection patterns can be detected.
- only three or two position detection patterns may be detected due to dirt, blurring, or blurring. Can happen.
- the three or two position detection pattern shapes that can be detected are different in such a case, the types of position detection patterns that could not be detected from the three or two positional relationships are found.
- the position can be easily predicted. For example, when three position detection patterns can be detected with the two-dimensional code of the first embodiment, two position detection patterns located diagonally from the shape can be identified, so one that could not be detected Can be inferred to be in a mirror-symmetrical position of another position detection pattern with respect to a straight line connecting two diagonal position detection patterns.
- the two positional relationships are determined from the shape. For example, in the case of two adjacent position detection patterns, it is predicted that the remaining two position detection patterns exist in positions perpendicular to the straight line from the straight line connecting the two position detection patterns. Is done. Further, in the case of two diagonal position detection patterns, it is predicted that the remaining two position detection patterns exist at the intersections on the extension lines of the sides of the two position detection patterns. For example, when the third position detection pattern and the fourth position detection pattern are found, four intersection points can be formed by extending the two short sides of each, but these intersection points become the vertices of the first position detection pattern. The four intersections formed by extending the long sides to the second position detection pattern.
- the same method can be used when the first position detection pattern and the second position detection pattern are found.
- the accuracy is reduced in the case of three, and the accuracy is further reduced in the case of two.
- the positions of the four position detection patterns are provisionally determined, projectively transformed, and position information of the position correction pattern is acquired. Then, the coordinates are corrected using the position correction pattern, and the coordinates of the four sets of position detection patterns are finally determined based on the coordinates of the detected position detection pattern and the coordinates corrected by the position correction pattern.
- the number of position detection patterns may be undetectable due to dirt, etc., it is desirable that the number is large, but not only the area ratio indicated by the position detection pattern increases, but the data efficiency decreases. Since the detection processing amount of the position detection pattern increases, it is desirable to appropriately determine it according to the usage form of the two-dimensional code.
- the position detection pattern is detected by scanning while thinning the screen.
- the direction and distance range in which another position detection pattern exists can be determined from the shape. It is possible to predict to some extent, and the detection efficiency of the position detection pattern can be improved by limiting the scanning to that region.
- the second position detection pattern exists in the extending direction of the long side of the rectangular third and fourth position detection patterns, and the short side is extended perpendicular to the long side. It can be predicted that the first position detection pattern exists in the direction.
- the region where the remaining position detection patterns are predicted to be further limited.
- the two-dimensional code described above has four different position detection patterns, but high-precision data extraction is possible with a configuration of three different position detection patterns and one or more position correction patterns. is there.
- the arrangement of the position detection patterns in this case is an arrangement in which one position detection pattern is missing from the arrangement of the four position detection patterns.
- the coordinates of the position detection pattern of the portion lacking the position detection pattern are complemented from the positional relationship of the other position detection patterns.
- the coordinates of the position correction pattern nearest to the missing position detection pattern are obtained by projective transformation from the coordinates of the three position detection patterns and the complement of one set of four coordinates.
- the position correction pattern is corrected by scanning the position correction pattern.
- data coordinates are mapped using a total of four sets of coordinates of three position detection patterns and one position correction pattern.
- the position correction pattern has the effect of reducing the coordinate error, and can acquire highly accurate coordinates. Therefore, three position detection patterns and highly accurate data extraction can be performed from one or more position correction patterns. It becomes possible.
- the position correction pattern is already arranged, the position detection pattern is reduced by one, so that the code efficiency is improved. On the other hand, the redundancy of the position detection pattern is reduced, and the resistance to dirt is reduced.
- the number of captured images to be input is not limited to one, and it is also conceivable to synthesize one image from input of a plurality of images and perform analysis.
- one image is generated and analyzed from time-series continuous images such as a moving image, or a case where a code image is divided and inputted into a plurality of pieces.
- different codes are continuously displayed in a moving image, and only one data can be obtained by recognizing all these codes.
- a plurality of codes may be arranged on paper instead of moving images. Even in such a case, the two-dimensional code of the present invention can be applied.
- Second position detection pattern 15 Version information block (vertical) 16 Version information block (horizontal) 17 Format information block 18A-18B Pattern embedding information block (vertical) 19A-19B Pattern embedding information block (horizontal)
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)
- Image Analysis (AREA)
Abstract
Description
これにより、各データブロックにおけるセルの明暗の判定精度が向上する。
これにより、二次元コードの使用目的および使用環境に応じて、二次元コードの有するデータ量および冗長性を適宜設定することができる。
複数の表現の別の1つは、中央のセル以外の8個のセルは、4個の明セルおよび4個の暗セルを含むように固定され、さらに中央のセルが明または暗に固定され、70パターンを表す、6ビット表現である。
さらに、各データブロックは、3×3のセルを有し、分離スペースは、1セル以上の幅を有し、位置検出パターンは、4セル以上の横幅と、4セル以上の縦幅と、を有することが望ましい。
これにより、位置検出パターンの検出精度が向上する。
図1は、特許文献1に記載された二次元コードを示す図である。
特許文献3および4は、埋め草であるデータ領域3のビットを利用して、ビット画像を設けることを記載している。
図2は、第1実施形態の二次元コードを示す図である。
第1実施形態の二次元コードは、35×35セルの大きさを有し、9×9のブロックに分割され、隣接するブロック間に1セルの明の分離スペース23を有する。したがって、分離スペースは、8×8列の1セル幅のブロック間隔の格子状パターンになる。右下の3×3ブロックおよび3×3分離スペースの部分には第1位置検出パターン12Aが、左上の2×2ブロックおよび2×2分離スペースの部分には第2位置検出パターン12Dが、右上の3(横)×2(縦)ブロックおよび3×2分離スペースの部分には第3位置検出パターン12Bが、左下の2(横)×3(縦)ブロックおよび2×3分離スペースの部分には第4位置検出パターン12Cが、それぞれ設けられている。したがって、二次元コードの第1から第4位置検出パターン以外のブロックに、第1から第4位置検出パターン以上のパターンが出現することはない。
また、位置検出パターンが異なる理由は、見つからない位置検出パターンがあった場合でも、見つからなかった位置検出パターンが確実に特定でき、見つからなかった位置検出パターンの座標の予測が可能になり、位置検出パターンの訂正が可能になる。すべて同じ位置検出パターンを用いた場合、見つからなかった位置検出パターンの特定は、すべて異なる位置検出パターンを用いた場合ほど容易ではなく、位置検出パターンの訂正が困難になる。
二次元コードの4個の位置検出パターン以外の56ブロックは、データ部であり、実データブロック、誤り訂正符号ブロック、バージョン情報ブロック、フォーマット情報ブロック、および絵柄埋込情報ブロックと、を含む。
もし絵柄を埋め込まない場合、すなわちフォーマット情報ブロックの絵柄埋込フラグが「無し」を示す場合、絵柄埋込情報ブロックおよび絵柄埋め込みの領域が不要になるため、コードが効率的になる。
誤り訂正符号にリードソロモン符号を使った場合、誤り訂正はワード単位で行われるため、1ワードを1ブロックとすることが望ましい。1ワードが複数のブロックにまたがる場合、1つのブロックに汚れが発生した場合でも、そのブロックが関係する全てのワードが誤り訂正の対象となり、訂正の効率が悪くなる。訂正原因となる汚れや、スポットライトによる色とびは、1箇所に集中することが多いが、ブロックにすることにより同時に訂正対象となるデータを1箇所にまとめる効果があり、効率的な訂正を可能にし、コードを認識させる可能性を高める。
図3は、第1実施形態の二次元コードにおける複数のブロックの配置を示す図である。各ブロックは3×3のセルを有し、周囲が1セル幅の分離スペース23で隔てられている。
図5の(A)は、1ブロックの3×3のセルのそれぞれa~iのビットを割り当て、9ビット表現可能にしたデータ種別を示す。この場合、1ブロックは、9ビットの情報量を有し、29=0~511までの値を表現できる。
図5の(A)の解析を行う際は、入力された撮影画像から作成された二値画像に対して、各セルが対応する画像内の座標を計算し、その座標の画素の値が明(“1”)と暗(“0”)のいずれかを判断し、ブロックあたり9ビットとなる値にする。撮影画像を二値画像に変換する方法は後述する。
データ種別が6ビット表現である時、(B)と(C)のいずれも使うことができるが、エンコード側とデコード側で一致させる。
図5の(B)(C)の解析を行う際は、入力された撮影画像から作成されたグレースケール画像に対して、j1~j8のセルの撮影画像内での座標を計算し、各セルのグレースケールの画素値を取得し、画素値を降順にソートする。このとき、画素値の高いセル4つが明であり、低いセル4つが暗である。撮影画像をグレースケール画像に変換する方法は後述する。
二次元コードは様々な撮影環境下での認識が求められる。その際に、光は撮影画像に対して、局所的な色の変化、段階的な色の変化など、悪い影響を与え、これは撮影画像に対する適切な二値化画像の作成が困難である要因となる。
この方法の利点は、二値化閾値が不要な点である。二値化閾値を導出しなくても、各セルの相対的な画素値の関係より、セルの明暗を判定することを可能とする効果がある。また、スポットライトのような局所的な強い色の変化に対しても、ブロックにすることで関係するセルが密集するため、全セルが影響を一様に受ける確率が高くなり、セル全体が白くなった場合でも、相対的な画素値の大小関係は維持されるため、認識できる可能性が高くなる。
この解析方法について、周囲のセルの解析の方法までは6ビットの場合と同じである。これに加え、中心画素の解析は、画素値が高い4点のうち画素値が最小となるセルの画素値をG1、画素値が低い4点のうち画素値が最大となるセルの画素値をG2とし、ブロックの中心のセルの撮影画像内での座標を計算し、得られた画素値が(G1+G2)/2以上であれば中心のセルを明セル、それ以外であれば中心のセルを暗セルとする。
この方法では、中心のセルの評価に隣接するセルの解析から得られた閾値を用いており、中心セルと近接するセルは撮影環境から受ける影響がほぼ同じである可能性が高いため、精度が高く認識できる。
図6において、参照番号31は、20パターン表現のデータブロックを、32は第1から第4のいずれかの位置検出パターンを示す。図6の(A)および(B)に示すように、位置検出パターン32の下側または上側に配置されるデータブロック31は、上下方向の中央の列のセルを、暗明暗(010)に固定し、両側の2列のセルm1からm6の6ビットでデータを表現する。さらに、6ビットのうち3ビットを明、3ビットを暗にすることにより、6C3=20パターンを表現する。図6の(A)および(B)に示したブロックのセルデータの検出は、上下方向に走査することにより行う。また、図6の(C)および(D)に示すように、位置検出パターン32の右側または左側に配置されるデータブロック31は、横方向の中央の列のセルを、暗明暗(010)に固定し、両側の2列のセルm1からm6の6ビットでデータを表現する。さらに、6ビットのうち3ビットを明、3ビットを暗にすることにより、6C3=20パターンを表現する。図6の(C)および(D)に示したブロックのセルデータの検出は、横方向に走査することにより行う。
このデータ種別により、解析の際にコードのバージョン、およびセルサイズが不確かな状態でも、位置検出パターンの撮影画像内での位置が判明していれば、データブロックからデータを得ることができる。バージョン、およびセルサイズが不明である場合、位置検出パターンの撮影画像内での座標がわかっていてもブロックの座標が算出できない。しかし、位置検出パターンから、隣接する位置検出パターン(第1位置検出パターンと第2位置検出パターンは、第3位置検出パターンと第4位置検出パターン隣接する)の方向を走査することで、データブロックが見つかる。図6の(A)では、データブロックの中央の列に向かい、参照番号32の位置検出パターンの下側の辺に対して垂直に走査を行う。位置検出パターンのすぐ下から走査を行い、中央の列の上側のセルである暗セルにぶつかる。このまま進めると、明セルにぶつかり、そして暗セルにぶつかり、さらに分離スペースの明セルにぶつかる。これにより中央の列のセルの座標と、データブロックの1セルあたりの画素数が算出できる。これにより、データブロックの他のセルの座標も容易に判明することから、データブロックが表すデータが得られる。
図9は、第2実施形態の二次元コードを示す図である。第2実施形態の二次元コードの第1実施形態の二次元コードとの相違点は、次の通りである。
図10は、第2実施形態の二次元コードにしたがって作成した二次元コードの例を示す図である。
図11の(B)は、第2実施形態と類似の二次元コードの例を示す。
図11の(C)は、長方形の二次元コードの例を示す。
本発明での位置検出パターンは、(1)4種の位置検出パターン同士で、形状・大きさ・二次元コード上での配置方向のいずれかで区別が可能であること、(2)位置検出パターン同士で、種類の区別が簡易なアルゴリズムで実現可能であること、(3)区別した位置検出パターンについて、組合せの絞込みが容易であること(高速化に貢献)、(4)位置検出パターンのセルサイズを抑えること、(5)二次元コード以外の写り込んだ画像と区別しやすいこと、および(6)二次元コード内に他に位置検出パターンが表れないことが望まれる。
図2および図9の位置検出パターンは、以上の事項を満足するといえる。
第1位置検出パターンについては、1セルの枠と2セルのスペースと2セルの正方形を重ねたものとなる。この位置検出パターンであれば、その向きによらず、中心を走査すると暗明暗明暗のパターンが得られ、第2位置検出パターンや、ノイズとの違いが明確である。
これらの条件に当てはまる形状は、第1実施形態の第3位置検出パターン、および第4位置検出パターンとなる。それぞれ90度傾いており、第1位置検出パターン、および第2位置検出パターンとは縦横比が異なることから区別が容易である。
これら位置検出パターンのセルサイズは、第1実施形態では、16+64+32+32=144セルとなり、第2実施形態では、16+25+20+20=81セルとなる。
図1に示し二次元コードは、3箇所にしか位置検出パターンが無いにもかかわらず、7×7×3=147セルで、本実施例よりセルサイズが大きい。
図12は、変形例の4個の位置検出パターンの例を示す図である。
図12の(A)は、大きな円枠、方向の異なる2個の楕円枠および小さな円枠が、4個の位置検出パターンである例を示す。
図12の(C)は、大きな十字形、延長方向が異なる一方のみ延長した2個の十字形および小さな十字形が、4個の位置検出パターンである例を示す。
図12に示した例は、一部の例であり、他にも各種の形状の位置検出パターンが可能である。
図13は、依頼に基づいて二次元コードを作成して提供する作成システムのハードウェア構成を示す図であり、クライアント・サーバ構成の例を示す。
システムハードウェアは、コンピュータ等のシステム処理装置65と、磁気ディスク等の記憶装置66と、を有する。
ここでは、印刷は、ユーザー側で行うが、システム側や他の印刷所で行うようにしてもよい。二次元コードを印刷する媒体はどのようなものでもよく、例えば、紙、樹脂板、筐体表面などである。ここで、媒体として、埋め込む絵柄があらかじめ印刷されているものでもよく、印刷されている埋込絵柄が二次元コードの絵柄領域に入るようにセッティングした上で二次元コードを印刷する。
ステップS11では、ユーザーが二次元コードに記録するメッセージを入力する。
ステップS12では、ユーザーが二次元コードに絵柄の埋め込みを行うか否かを決定し、絵柄の埋め込みを行う場合にはステップS13に進み、行わない場合にはシステム側で行うステップS15に進む。この際、ユーザー処理装置61は、システム処理装置65に入力されたメッセージ、および絵柄の埋め込みを行わないこと、を通知する。
ステップS15では、送信されたメッセージを記録するブロックサイズを決定する。
ステップS18では、システム側で、送信された縦・横バージョンと、絵柄埋込領域に応じたブロックサイズから、実データのブロックサイズを決定する。
ステップS20では、システム側で、バージョン情報ブロック、フォーマット情報ブロック、絵柄を埋め込む場合には絵柄埋込情報ブロックおよび絵柄埋込領域ブロックの位置を決定する。
ステップS22では、絵柄埋込情報ブロックを、コード画像部分の所定ブロック位置に配置する。
ステップS24では、バージョン情報ブロック・フォーマット情報ブロックを画像部分に配置する。
ステップS26では、まだデータを入れる部分があるか判定し、あればステップS27に進み、無ければステップS29に進む。
ステップS27では、終端メッセージヘッダー(終端フラグ)をメッセージデータの末尾に付与する。
ステップS29では、実データをブロックにして、画像部分に配置する。
ステップS30では、誤り訂正符号ブロックを画像部分に配置する。
ステップS32では、ユーザー側で、絵柄埋め込みを行うか否かを判定し、絵柄埋め込みを行う場合にはステップS33に進み、行わない場合にはステップS34に進んで終了する。
ステップS34で、エンコードのメイン処理が終了する。
上記の例では、ユーザー側が絵柄データを有していたが、システム側が絵柄データを有しており、それをユーザーが指定するようにしてもよい。
ステップS102では、二次元コードの撮影画像を入力する。
次に、位置検出パターン候補の形状をチェックする。第1実施形態の二次元コードの位置検出パターンは、いずれも枠、すなわち穴形状を有する。そこで、まず穴の有無を確認する。始点を外接長方形の左側中点(x1,(y1+y2)/2)、終点を(x2,(y1+y2)/2)とするx軸方向の走査を行う。ここで、次の(1)または(2)の条件にあてはまることを確認する。
(2)暗明暗明暗というパターンを探す。1つ目の暗の左端(lx2)から3つ目の暗の右端(rx2)までの中心となる画素が暗であることを確認する。
次に、各位置検出パターン候補の頂点を探索する。外接する長方形の左上の座標(x1,y1)からX軸方向に(x2,y1)まで走査する。一番初めに接触した暗点の座標をvertex1:(vx1,vy1)とする。次に右上の座標(x2,y1)からY軸方向に(x2,y2)まで走査する。一番初めに接触した暗点の座標をvertex2:(vx2,vy2)とする。右下の座標(x2,y2)からX軸の反対方向に(x1,y2)まで走査する。一番初めに接触した暗点の座標をvertex3:(vx3,vy3)とする。次に左下の座標(x1,y2)からY軸の反対方向に(x1,y1)まで走査する。一番初めに接触した暗点の座標をvertex4:(vx4,vy4)とする。vertex1~4は長方形(正方形を含む)となるはずである。そうでない場合は、位置検出パターンではない。図21の(B)の表記は省略する。
θ=arctan((vy2-vy1)/(vx2-vx1))
θが回転角度となる。
以上で、位置検出パターン候補の検査が終了する。
ステップS111では、データの取り出しに成功した二次元パターンに使われた候補を位置検出パターン候補から除外し、ステップS107に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
ステップS113で、解析メインの処理を終了する。
ステップS200で、情報取り出し処理を開始する。
ステップS201で、位置検出パターン4種の組合せの関係をチェックする。チェックは以下の(a)(b)の条件を満たすか判定することで行い、満たさない項目があれば、問題ありとして処理を終了する。
ステップS212では、実データブロックと、誤り訂正符号ブロックに関して、最寄りの、位置検出パターンの中心座標、または位置補正パターンの中心座標、いずれか4点を選び、射影変換より、撮影画像内でのセルの座標を求める。
ステップS214では、実データブロックと、誤り訂正符号ブロックの個数から、誤り訂正符号ブロックの個数を計算する。これにより、実データと、誤り訂正符号が判明する。
ステップS216では、訂正可能であるか否かを判定し、訂正可能であればステップS218に進み、訂正ができなければステップS217に進む。
ステップS218では、誤り訂正符号により、実データの誤り訂正を行う。
ステップS220では、情報取り出し処理を終了する。
位置補正パターンが既に配置されている場合には、位置検出パターンが1つ減るため、コードの効率がよくなる。一方で、位置検出パターンの冗長性が減り、汚れなどに対する耐性が下がる。
さらに、動画で異なるコードを連続して表示し、これらコードを全て認識することで、はじめて一つのデータが得られるといった活用も考えられる。この場合、動画でなく、紙に複数のコードを配置してもよい。
このような場合でも本発明の二次元コードを適用することは可能である。
12B 第3位置検出パターン
12C 第4位置検出パターン
12D 第2位置検出パターン
15 バージョン情報ブロック(縦)
16 バージョン情報ブロック(横)
17 フォーマット情報ブロック
18A-18B 絵柄埋込情報ブロック(縦)
19A-19B 絵柄埋込情報ブロック(横)
Claims (9)
- 二進コードで表されるデータをセル化して、二次元のマトリックス上にパターンとして配置した二次元コードであって、
位置検出パターンと、
前記二次元のマトリックスの前記位置検出パターン以外の領域を分割した複数のデータブロックと、
隣接する前記複数のデータブロック間に設けられた分離スペースと、を備えることを特徴とする二次元コード。 - 前記複数のデータブロックは、前記データブロックが異なる複数の表現のいずれかであるかを示すフォーマット情報ブロックを含む請求項1記載の二次元コード。
- 前記複数の表現の1つは、中央のセル以外の8個のセルは、4個の明セルおよび4個の暗セルを含むように固定され、140パターンを表す、7ビット表現である請求項2記載の二次元コード。
- 前記複数の表現の1つは、中央のセル以外の8個のセルは、4個の明セルおよび4個の暗セルを含むように固定され、さらに中央のセルが明または暗に固定され、70パターンを表す、6ビット表現である請求項2記載の二次元コード。
- 前記位置検出パターンは、前記データブロックより大きな面積を有する請求項1または2記載の二次元コード。
- 各データブロックは、3×3のセルを有し、
前記分離スペースは、1セル以上の幅を有し、
前記位置検出パターンは、4セル以上の横幅と、4セル以上の縦幅と、を有する請求項1または2記載の二次元コード。 - 請求項2記載の二次元コードを解析する二次元コードの解析方法であって、
位置検出パターンを識別し、
識別した前記位置検出パターンに基づいて前記フォーマット情報ブロックの位置を算出し、
前記フォーマット情報ブロックを解析して、前記データブロックが前記複数の表現のいずれかであるかを判定し、
前記データブロックを判定した表現に応じて解析することを特徴とする二次元コードの解析方法。 - 請求項2記載の二次元コードを解析するようにコンピュータを制御するプログラムであって、
コンピュータが、
位置検出パターンを識別し、
識別した前記位置検出パターンに基づいて前記フォーマット情報ブロックの位置を算出し、
前記フォーマット情報ブロックを解析して、前記データブロックが前記複数の表現のいずれかであるかを判定し、
前記データブロックを判定した表現に応じて解析するように制御することを特徴とするプログラム。 - 請求項1記載の二次元コードの作成システムであって、
前記位置検出パターンを、二次元のマトリックスの所定位置に配置する位置検出パターン配置手段と、
前記二次元のマトリックスの前記位置検出パターンを配置する領域以外の領域を、間に分離スペースが設けられた複数のデータブロックに分割する分割手段と、
前記複数のデータブロックから、前記二次元コードの解析に必要な情報を配置する情報ブロックを選択する情報ブロック配置手段と、
メッセージの記録データを、前記二次元のマトリックスの前記位置検出パターンおよび前記情報ブロックを除いた領域に、順次配置するメッセージデータ配置手段と、を備えることを特徴とする二次元コードの作成システム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG11201503742XA SG11201503742XA (en) | 2012-11-13 | 2013-11-07 | Two-dimensional code |
CN201380059400.3A CN104781835B (zh) | 2012-11-13 | 2013-11-07 | 二维码 |
KR1020157013912A KR101669544B1 (ko) | 2012-11-13 | 2013-11-07 | 이차원 코드 |
EP13855040.5A EP2921996B1 (en) | 2012-11-13 | 2013-11-07 | Two-dimensional code |
US14/442,644 US9898637B2 (en) | 2012-11-13 | 2013-11-07 | Two-dimensional code |
JP2014546959A JP5791826B2 (ja) | 2012-11-13 | 2013-11-07 | 二次元コード |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-249788 | 2012-11-13 | ||
JP2012249788 | 2012-11-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014077187A1 true WO2014077187A1 (ja) | 2014-05-22 |
Family
ID=50731099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/080156 WO2014077187A1 (ja) | 2012-11-13 | 2013-11-07 | 二次元コード |
Country Status (8)
Country | Link |
---|---|
US (1) | US9898637B2 (ja) |
EP (1) | EP2921996B1 (ja) |
JP (1) | JP5791826B2 (ja) |
KR (1) | KR101669544B1 (ja) |
CN (1) | CN104781835B (ja) |
SG (1) | SG11201503742XA (ja) |
TW (1) | TWI501159B (ja) |
WO (1) | WO2014077187A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009459A (zh) * | 2017-11-24 | 2018-05-08 | 浙江工业大学 | 基于三角定位符的字符二维条码快速定位方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013182963A1 (en) | 2012-06-06 | 2013-12-12 | Sodyo Ltd. | Anchors for location-based navigation and augmented reality applications |
US10147214B2 (en) | 2012-06-06 | 2018-12-04 | Sodyo Ltd. | Display synchronization using colored anchors |
WO2016120776A1 (en) * | 2015-01-28 | 2016-08-04 | Sodyo Ltd. | Hybrid visual tagging using customized colored tiles |
CN105760919B (zh) | 2016-02-06 | 2018-08-07 | 深圳市天朗时代科技有限公司 | 一种点阵二维码的编码和识别方法 |
CN105894067B (zh) * | 2016-02-06 | 2018-08-07 | 深圳市天朗时代科技有限公司 | 一种点阵二维码的编码和识读方法 |
JP7167553B2 (ja) * | 2017-10-06 | 2022-11-09 | 株式会社デンソーウェーブ | 二次元コード |
KR102660603B1 (ko) | 2018-07-11 | 2024-04-25 | 소디오 리미티드 | 모자이크 이미지 센서를 사용한 고해상도의 기계 판독 가능 태그의 검출 |
WO2021004414A1 (zh) * | 2019-07-05 | 2021-01-14 | 杭州海康机器人技术有限公司 | 编码图形及其编码和读取方法、标定板和标定方法 |
CN112819122A (zh) * | 2021-01-28 | 2021-05-18 | 清华大学 | 一种二维码生成和解析方法及装置 |
KR102681126B1 (ko) * | 2021-03-25 | 2024-07-03 | 주식회사 한컴위드 | 전시품에 대한 안내판에 인쇄된 2차원 코드를 기반으로, 사용자에게 전시품 정보를 제공할 수 있는 전시품 정보 제공 서버 및 그 동작 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07254037A (ja) | 1994-03-14 | 1995-10-03 | Nippondenso Co Ltd | 二次元コード |
JP2004206674A (ja) * | 2002-10-29 | 2004-07-22 | Denso Corp | 2次元コードおよびその形成構造 |
JP2004234318A (ja) | 2003-01-30 | 2004-08-19 | Denso Wave Inc | 二次元情報コード、二次元情報コードの表示方法、二次元情報コードの生成方法、二次元情報コードの読取方法 |
JP2007179111A (ja) * | 2005-12-26 | 2007-07-12 | Fuji Xerox Co Ltd | コードパターン、印刷物、画像生成装置、画像処理装置、画像生成方法及び情報特定方法 |
JP2007241328A (ja) | 2006-03-03 | 2007-09-20 | Namco Bandai Games Inc | プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物 |
JP2009075873A (ja) | 2007-09-20 | 2009-04-09 | A T Communications Co Ltd | ロゴ付き二次元コード作成装置、ロゴ付き二次元コード作成方法、及びプログラム |
JP2009163720A (ja) | 2007-12-14 | 2009-07-23 | National Institute Of Advanced Industrial & Technology | 二次元コード生成装置 |
JP2009259192A (ja) * | 2008-03-27 | 2009-11-05 | Denso Wave Inc | 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05290197A (ja) * | 1992-04-06 | 1993-11-05 | Teiriyou Sangyo Kk | 二次元コ−ドシンボルマ−クの解読方法 |
US5591956A (en) * | 1995-05-15 | 1997-01-07 | Welch Allyn, Inc. | Two dimensional data encoding structure and symbology for use with optical readers |
KR100746641B1 (ko) * | 2005-11-11 | 2007-08-06 | 주식회사 칼라짚미디어 | 동영상 이미지 코드와 동영상 이미지 코드 생성/디코딩장치 및 그 방법 |
CN100369059C (zh) * | 2006-01-18 | 2008-02-13 | 冯文伦 | 一种矩阵式二维条码及其编码解码方法 |
CN101063998A (zh) * | 2006-04-30 | 2007-10-31 | 王文芳 | 新型二维条码(q码)的编码和解码方法 |
CN1885311A (zh) * | 2006-05-29 | 2006-12-27 | 深圳矽感科技有限公司 | 二维码及其编解码方法 |
US7886978B2 (en) * | 2007-09-20 | 2011-02-15 | Microsoft Corporation | Techniques for decoding images of barcodes |
CN101197004A (zh) * | 2007-12-25 | 2008-06-11 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
JP5120156B2 (ja) * | 2008-03-27 | 2013-01-16 | 株式会社デンソーウェーブ | 二次元コード |
JP5321352B2 (ja) | 2009-08-27 | 2013-10-23 | 富士ゼロックス株式会社 | 二次元コード生成装置、画像形成システム、二次元コード読み取り装置、コンピュータプログラム及び媒体 |
MY159805A (en) * | 2009-09-04 | 2017-02-15 | Yoshida Kenji | Information input/output device, information processing device, information input/output system, printed medium and information input/output method |
TW201113815A (en) | 2009-10-09 | 2011-04-16 | Primax Electronics Ltd | QR code processing method and apparatus thereof |
-
2013
- 2013-11-07 US US14/442,644 patent/US9898637B2/en active Active
- 2013-11-07 CN CN201380059400.3A patent/CN104781835B/zh active Active
- 2013-11-07 JP JP2014546959A patent/JP5791826B2/ja active Active
- 2013-11-07 SG SG11201503742XA patent/SG11201503742XA/en unknown
- 2013-11-07 EP EP13855040.5A patent/EP2921996B1/en active Active
- 2013-11-07 KR KR1020157013912A patent/KR101669544B1/ko active IP Right Grant
- 2013-11-07 WO PCT/JP2013/080156 patent/WO2014077187A1/ja active Application Filing
- 2013-11-13 TW TW102141284A patent/TWI501159B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07254037A (ja) | 1994-03-14 | 1995-10-03 | Nippondenso Co Ltd | 二次元コード |
JP2004206674A (ja) * | 2002-10-29 | 2004-07-22 | Denso Corp | 2次元コードおよびその形成構造 |
JP2004234318A (ja) | 2003-01-30 | 2004-08-19 | Denso Wave Inc | 二次元情報コード、二次元情報コードの表示方法、二次元情報コードの生成方法、二次元情報コードの読取方法 |
JP2007179111A (ja) * | 2005-12-26 | 2007-07-12 | Fuji Xerox Co Ltd | コードパターン、印刷物、画像生成装置、画像処理装置、画像生成方法及び情報特定方法 |
JP2007241328A (ja) | 2006-03-03 | 2007-09-20 | Namco Bandai Games Inc | プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物 |
JP2009075873A (ja) | 2007-09-20 | 2009-04-09 | A T Communications Co Ltd | ロゴ付き二次元コード作成装置、ロゴ付き二次元コード作成方法、及びプログラム |
JP2009163720A (ja) | 2007-12-14 | 2009-07-23 | National Institute Of Advanced Industrial & Technology | 二次元コード生成装置 |
JP2009259192A (ja) * | 2008-03-27 | 2009-11-05 | Denso Wave Inc | 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2921996A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009459A (zh) * | 2017-11-24 | 2018-05-08 | 浙江工业大学 | 基于三角定位符的字符二维条码快速定位方法 |
CN108009459B (zh) * | 2017-11-24 | 2020-08-18 | 浙江工业大学 | 基于三角定位符的字符二维条码快速定位方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2921996A1 (en) | 2015-09-23 |
KR20150079843A (ko) | 2015-07-08 |
KR101669544B1 (ko) | 2016-10-27 |
EP2921996A4 (en) | 2016-06-22 |
EP2921996B1 (en) | 2019-01-16 |
JPWO2014077187A1 (ja) | 2017-01-05 |
SG11201503742XA (en) | 2015-06-29 |
US9898637B2 (en) | 2018-02-20 |
TWI501159B (zh) | 2015-09-21 |
CN104781835A (zh) | 2015-07-15 |
US20160283763A1 (en) | 2016-09-29 |
TW201428636A (zh) | 2014-07-16 |
JP5791826B2 (ja) | 2015-10-07 |
CN104781835B (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5908113B2 (ja) | 二次元コード | |
JP5848464B2 (ja) | 二次元コード、二次元コードの作成システムおよび解析プログラム | |
JP5791826B2 (ja) | 二次元コード | |
US8031375B2 (en) | Information input/output method using dot pattern | |
WO2015174192A1 (ja) | 二次元コード、二次元コードの解析システム及び二次元コードの作成システム | |
JP6785546B2 (ja) | 二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム | |
JP6952846B2 (ja) | 二次元コード |
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: 13855040 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 2014546959 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013855040 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14442644 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 20157013912 Country of ref document: KR Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: IDP00201503487 Country of ref document: ID |