CN112187284A - Encoding method, encoding pattern reading method, and imaging device - Google Patents

Encoding method, encoding pattern reading method, and imaging device Download PDF

Info

Publication number
CN112187284A
CN112187284A CN201910606064.9A CN201910606064A CN112187284A CN 112187284 A CN112187284 A CN 112187284A CN 201910606064 A CN201910606064 A CN 201910606064A CN 112187284 A CN112187284 A CN 112187284A
Authority
CN
China
Prior art keywords
positioning block
coding
block
encoded
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910606064.9A
Other languages
Chinese (zh)
Inventor
杨煦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikrobot Technology Co Ltd
Original Assignee
Hangzhou Hikrobot Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikrobot Technology Co Ltd filed Critical Hangzhou Hikrobot Technology Co Ltd
Priority to CN201910606064.9A priority Critical patent/CN112187284A/en
Priority to PCT/CN2020/100304 priority patent/WO2021004414A1/en
Priority to US17/624,953 priority patent/US11843395B2/en
Priority to EP20837644.2A priority patent/EP3996283B1/en
Publication of CN112187284A publication Critical patent/CN112187284A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention discloses a coding method, a coding pattern reading method and a shooting device. In the invention, three of the four positioning blocks in the coding pattern are respectively positioned at three corners of the coding pattern, and the other positioning block is only tangent to the edge of the coding pattern, thereby forming an asymmetric distribution configuration of the four positioning blocks. The invention replaces the existing two-dimension code standard, saves the authorization cost and the manufacturing cost required by the existing two-dimension code generating software, is not limited by the use limit of the existing two-dimension code generating software, realizes the accurate and rapid positioning of the coding graph, and is beneficial to rapidly searching the position of the initial coding block in the coding region. The invention can set the size of the coding graph area and the size of the coding area in the coding graph area according to the data size of the application scene so as to flexibly set the data information recorded by the coding graph. The coding mode of the coding region is simple, and the efficiency is high for scenes with small coding data quantity.

Description

Encoding method, encoding pattern reading method, and imaging device
Technical Field
The invention relates to the technical field of calibration, in particular to a coding method, a coding graph reading method and a shooting device.
Background
In industrial production and machine vision applications, it is necessary to label specific locations in order to determine information (e.g., coordinates) of critical locations in a workpiece, mechanism, or scene. During processing, by searching for the position of the label in the image and analyzing the content of the label, the information related to the position of the point indicated by the label can be determined, which is beneficial to reducing the difficulty of subsequent processing. The specific function can be automatically and efficiently completed by processing the information contained in the label, which is beneficial to mechanisms and software algorithms. The method utilizing the label is widely applied to scenes such as mobile robot positioning, visual navigation, calibration board auxiliary positioning, motion estimation and the like.
The two-dimensional code is a common label, has the advantages of high information density, high readability and the like, and is widely applied to daily life and industrial production. The two-dimensional code can store more information than the traditional bar code, so that a certain amount of redundant information can be accommodated, and the noise resistance of the code is improved. Two-dimensional codes used at present can be classified into two types according to different error correction mechanisms: one is to calculate the error correcting code by using the data code itself and fill the error correcting code and the data in the matrix together to form a complete two-dimensional code. The good mathematical properties of error correcting codes play an important role in the decoding stage, which typically represents QR codes as shown in fig. 1A and DM codes as shown in fig. 1B, which can correct 15% to 30% of codeword errors.
The error correction capacity of the QR code and the DM code is fixed, and the two-dimensional code size increases with the improvement of the error correction performance. The QR code standard provides L, M, H, Q total 4 error correction levels, and the maximum fault tolerance rate is about 30%; the fault tolerance rate of the DM code is lower than 30 percent. It will not be satisfied if the actual usage scenario requires a larger error correction capacity.
Another type of matrix code uses probability to correct errors. This kind of code does not explicitly add error correction code, but through a certain screening mechanism, a group of code words with code distance as large as possible is selected in advance from a large number of code words to be coded. Due to the sparse codeword space, the probability that one codeword is received exactly as another codeword is low, and the error correction can be performed on the received codeword according to this characteristic as well. Typical representations of such codes are the aprilat code shown in fig. 2A and the ArUco code shown in fig. 2B.
The April code and the ArUco code do not have independent positioning patterns, but are decoded by best matching by comparing the images to a two-dimensional code library. The disadvantages of this code are: firstly, in order to ensure the distance maximization of the allowed code words, screening from a large number of code words is needed, which is time-consuming and inconvenient to expand; secondly, the decoding process adopts template matching for decoding, the time consumption is increased linearly along with the number of templates, and all complex conditions are difficult to cover by using the templates.
The existing two-dimension code needs to utilize two-dimension code generation software under the existing rule, and the authorization cost and the manufacturing cost of the two-dimension code are increased.
Disclosure of Invention
In view of the above, the present invention provides an encoding method, an encoding graph reading method, a shooting device, a non-volatile computer-readable storage medium, and an electronic device, so as to replace the existing two-dimensional code and save the authorization cost and the manufacturing cost for using the two-dimensional code.
The technical scheme of the invention is realized as follows:
an encoding method, comprising:
receiving data to be encoded;
encoding the data to be encoded to generate encoded data;
the coded data is recorded in a coded graph;
wherein, the coding pattern is square, including:
a first positioning block located in a first corner region in the encoded graph;
a second locating block located at a second corner region in the encoded pattern, wherein the second corner region is not on the same diagonal of the encoded pattern as the first corner region;
a third locating block located at a third corner region in the encoded pattern, wherein the third corner region and the second corner region are on the same diagonal of the encoded pattern;
a fourth locating block located in the encoded graph;
an encoding area that is located in a region of the encoding pattern not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block, and that records the encoded data; wherein the content of the first and second substances,
in a quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, an inner angle at which the fourth positioning block is located is the largest inner angle of four inner angles of the quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
Preferably, encoding the data to be encoded includes:
and encoding the data to be encoded by adopting a Reed Solomon RS error correction encoding method.
Preferably, after generating the encoded data, before recording the encoded data in an encoded graphic, the method further comprises:
and carrying out bit exclusive-or processing on the coded data and a data mask matrix.
Preferably, the first positioning block is tangent to a first edge of the coding pattern and a second edge of the coding pattern at the same time;
the second positioning block is tangent to the second edge of the coding graph and the third edge of the coding graph at the same time;
the third positioning block is tangent to the first edge of the coding graph and the fourth edge of the coding graph simultaneously;
the fourth positioning block is only tangent to a fourth edge of the encoded pattern.
Preferably, the first positioning block, the second positioning block, the third positioning block and the fourth positioning block have the same shape and size.
Preferably, the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are all concentric and have a plurality of annular shapes with alternate colors.
Preferably, the coding region is composed of a data lattice, and the coding blocks in the data lattice are square dots or circular dots.
Preferably, the coding blocks include coding blocks of two colors distinguished from each other, wherein a coding block of one color represents 0 and a coding block of the other color represents 1.
Preferably, the said encoding data is loaded in the encoding graph, including:
and taking a row of coding blocks closest to the second edge in the coding regions as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding regions as a last coding row, taking a coding block closest to the first edge in each row of coding blocks as a starting coding block, taking a coding block closest to the third edge as a last coding block, and recording the coding data in the coding regions according to the sequence from the starting coding row to the last coding row.
Preferably, in the process of loading the coded data into the coding region:
and when forming the coding line which is truncated by the fourth positioning block, skipping the fourth positioning block to form a coding block in the coding line.
Preferably, before the encoded data is recorded in the encoded graphic, the method further comprises:
and determining the side length of the coded graph according to the bit number of the coded data, the side length of each coding block in the coding region and the side length of the region occupied by any one positioning block.
Preferably, the side length of the coding graph is positively correlated with the bit number of the coded data, the side length of each coding block in the coding region, and the side length of the region occupied by any one positioning block.
An encoded pattern, the encoded pattern being a square, comprising:
a first positioning block located in a first corner region in the encoded graph;
a second locating block located at a second corner region in the encoded pattern, wherein the second corner region is not on the same diagonal of the encoded pattern as the first corner region;
a third locating block located at a third corner region in the encoded pattern, wherein the third corner region and the second corner region are on the same diagonal of the encoded pattern;
a fourth locating block located in the encoded graph;
an encoding region that is located in a region of the encoding pattern that is not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block, and that carries readable information; wherein the content of the first and second substances,
in a quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, an inner angle at which the fourth positioning block is located is the largest inner angle of four inner angles of the quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
Preferably, the first positioning block is tangent to a first edge of the coding pattern and a second edge of the coding pattern at the same time;
the second positioning block is tangent to the second edge of the coding graph and the third edge of the coding graph at the same time;
the third positioning block is tangent to the first edge of the coding graph and the fourth edge of the coding graph simultaneously;
the fourth positioning block is only tangent to a fourth edge of the encoded pattern.
Preferably, the first positioning block, the second positioning block, the third positioning block and the fourth positioning block have the same shape and size.
Preferably, the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are all concentric and have a plurality of annular shapes with alternate colors.
Preferably, the coding region is composed of a data lattice, and the coding blocks in the data lattice are square dots or circular dots.
Preferably, the coding blocks include coding blocks of two colors distinguished from each other, wherein a coding block of one color represents 0 and a coding block of the other color represents 1.
A coded graphic reading method comprising:
acquiring an image containing a coding pattern, wherein the image is obtained by shooting the surface of an object containing the coding pattern;
in the image, identifying four positioning blocks in the coded graph;
determining the mapping relation of the coded graph from the image to a perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view;
in the front view of the code pattern, the information described in the code pattern is obtained by reading the code area in which the described information can be read;
wherein, in the image, identifying four positioning blocks in the encoded graph comprises:
determining a positioning block at the position of the largest inner angle in four inner angles of a quadrangle formed by the central coordinates of the four positioning blocks as a fourth positioning block, determining a positioning block closest to the fourth positioning block on two sides of the largest inner angle as a third positioning block, determining a positioning block farthest from the fourth positioning block on two sides of the largest inner angle as a second positioning block, and determining the rest positioning blocks as first positioning blocks.
Preferably, the mapping relationship of the encoded graphic from the image to the distortion-free plane is determined according to the four positioning blocks, and is obtained by the following method:
and determining the mapping relation of the coding graph from the image to the perspective distortion-free plane according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the perspective distortion-free plane.
Preferably, the encoding area is located in the encoding graph and is not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block.
Preferably, the following method is adopted to identify four positioning blocks in the coding pattern:
in the coded graph, four graphic objects with the same shape and size are determined as the four positioning blocks.
Preferably, further comprising:
and determining four circular ring-shaped graphic objects which are all arranged concentrically and have alternate colors as the four positioning blocks.
Preferably, the quadrilateral is constructed by the following method:
and extracting the central coordinates of the four positioning blocks, and sequentially connecting the central coordinates of the four positioning blocks to form the quadrangle.
Preferably, in the square planar area without perspective distortion:
the first positioning block is positioned in a first corner area in the square plane area;
a second positioning block is positioned in a second corner area which is not positioned on the same diagonal line with the first corner area in the square plane area;
a third positioning block is positioned in a third corner area of the square plane area, which is positioned on the same diagonal line with the second corner area;
the position of the fourth positioning block is one of a set of positions of the fourth positioning block which satisfy the following conditions:
and a fourth positioning block is positioned in the square plane area, in a target quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, the inner angle at which the fourth positioning block is positioned is the largest of the four inner angles of the target quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
Preferably, the determining a mapping relationship of the encoded graphic from the image to the distortion-free plane according to the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block and the center coordinate of the fourth positioning block in the image, and the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block and the center coordinate of the fourth positioning block in the distortion-free plane includes:
acquiring a homography matrix corresponding to the mapping relation according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in a perspective distortion-free plane;
the transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view, comprising:
and utilizing the homography matrix to project and transform all pixel points of the coding graph in the image to the perspective distortion-free plane to form the front view of the coding graph.
Preferably, in the front view of the code pattern, the obtaining of the information described in the code pattern by reading the code area in which the information described in the code pattern can be read includes:
among four edges of the coding pattern in the front view of the coding pattern, setting an edge tangent to both the first positioning block and the third positioning block as a first edge, setting an edge tangent to both the first positioning block and the second positioning block as a second edge, setting an edge tangent to only the second positioning block as a third edge, and setting an edge tangent to both the third positioning block and the fourth positioning block as a fourth edge;
and taking a row of coding blocks closest to the second edge in the coding regions as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding regions as a last coding row, taking the coding block closest to the first edge in each row of coding blocks as a starting coding block, taking the coding block closest to the third edge as a last coding block, and sequentially reading information of each coding block from the starting coding block to the last coding block in each coding row according to the sequence from the starting coding row to the last coding row so as to obtain the information recorded by the coding graph.
Preferably, when reading the coding line truncated by the fourth positioning block, skipping the fourth positioning block to read the coding block in the coding line.
Preferably, after reading the coding region, the information recorded in the coding pattern is obtained by:
carrying out error correction decoding on the coding information obtained by reading the coding region to obtain error-corrected code words and error quantity;
and if the error number does not exceed the error correction capacity, outputting the error-corrected code word.
Preferably, before the error correction decoding, the method further comprises:
and carrying out bit XOR processing on the coding information and a data mask matrix.
A camera comprising a camera unit and a processor;
the shooting unit is used for shooting the surface of an object containing the coded graph to obtain an image containing the coded graph;
the processor is configured to:
in the image, identifying four positioning blocks in the coded graph;
determining the mapping relation of the coded graph from the image to a perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view;
in the front view of the code pattern, the information described in the code pattern is obtained by reading the code region in which the information described in the code pattern can be read.
A non-transitory computer readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the steps in the encoding method as in any one of the above.
A non-transitory computer readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the steps of the encoded graphic reading method of any of the above.
An electronic device, comprising:
at least one processor; and the number of the first and second groups,
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the steps in the method of coding graphics as described in any one of the above.
An electronic device, comprising:
at least one processor; and the number of the first and second groups,
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the steps of the encoded graphic reading method as described in any one of the above.
According to the scheme, the encoding method, the encoding graph reading method, the shooting device, the nonvolatile computer readable storage medium and the electronic equipment replace the existing two-dimensional code standard, the authorization cost and the manufacturing cost required by the existing two-dimensional code generating software are saved, and the use limit of the existing two-dimensional code generating software is not limited. In addition, three of the four positioning blocks are respectively positioned at three corners of the coding graph, and the other positioning block is only tangent to the edge of the coding graph to form an asymmetric distribution configuration of the four positioning blocks, so that the accurate and rapid positioning of the coding graph is realized by utilizing the asymmetric distribution configuration of the four positioning blocks, the accurate reading of the coding region is ensured, meanwhile, the direction of the coding graph is set by utilizing the four positioning blocks of the asymmetric distribution configuration, the rapid searching of the position of the initial coding block in the coding region is facilitated, and the rapid reading of the information recorded in the coding region is realized by reading each row of coding blocks from top to bottom and from left to right at one time. In addition, the asymmetric arrangement structure of the four positioning blocks is provided with direction information, the direction of the coded graph can be determined by utilizing the four asymmetric arrangement positioning blocks, the problem that the direction of the coded graph cannot be determined due to the mirror image problem caused by symmetric arrangement can be solved, and further, when the coded graph is subjected to data reading in the positive direction and the negative direction, the direction of the coded graph can be identified, so that the purpose of performing data reading in the positive direction and the negative direction on the same coded graph can be realized, and the application range of the coded graph is increased. The invention can set the size of the coding graph area and the size of the coding area in the coding graph area according to the data size of the application scene so as to flexibly set the data information recorded by the coding graph. The coding region has the error-proof performance by utilizing a Reed-Solomon error correction mechanism, and the error code which does not exceed the error correction capacity can be corrected. The coding mode of the coding region is simple, and the efficiency is high for scenes with small coding data quantity.
Drawings
Fig. 1A is a schematic diagram of a conventional QR code;
FIG. 1B is a diagram illustrating a conventional DM code;
FIG. 2A is a diagram of a conventional AprilTag code;
FIG. 2B is a diagram of a conventional Aruco code;
FIG. 3A is a diagram illustrating an encoded graph according to an embodiment of the present invention;
FIG. 3B is a diagram illustrating an encoded graph according to an embodiment of the present invention;
FIG. 4 is a flow chart of an encoding method according to an embodiment of the present invention;
FIG. 5 is a diagram illustrating an arrangement of data codes and error correction codes in an encoding area of an encoded pattern according to an embodiment of the present invention;
FIG. 6 is a flowchart of a method for reading an encoded graphic according to an embodiment of the present invention;
FIG. 7 is a flowchart illustrating the entire process from initial determination of data to be encoded to final encoding according to an embodiment of the present invention;
FIG. 8 is a flow chart illustrating the overall process from the determination of the encoding pattern specification to the final completion of decoding according to the embodiment of the present invention;
fig. 9 is a schematic diagram of a camera according to an embodiment of the invention.
Fig. 10 is a schematic diagram of an electronic device according to an embodiment of the invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and examples.
As shown in fig. 3A and 3B, the coding pattern 1 is a square, and includes a first positioning block 11, a second positioning block 12, a third positioning block 13, and a fourth positioning block 14, the first positioning block 11, the second positioning block 12, and the third positioning block 13 are respectively located in a first corner region, a second corner region, and a third corner region of the coding pattern 1, wherein the second corner region and the first corner region are not located on the same diagonal line of the coding pattern 1, the third corner region and the second corner region are located on the same diagonal line of the coding pattern 1, that is, the second corner region and the third corner region are two corner regions on the same diagonal line of the coding pattern 1, as shown in fig. 3A and 3B, the first corner region is an upper left corner region, the second corner region is an upper right corner region, and the third corner region is a lower left corner region, the upper right corner region and the lower left corner region are two corner regions on a diagonal line from the upper right corner to the lower left corner of the encoded graphic 1. The fourth positioning block 14 is located in the encoded graphic 1.
As shown in fig. 3A and 3B, the code pattern 1 further includes a code area 15, the code area 15 is located in an area of the code pattern 1 not occupied by the first positioning block 11, the second positioning block 12, the third positioning block 13, and the fourth positioning block 14, and the code area 15 records readable information.
As shown in fig. 3A and 3B, in a quadrangle formed by the center of the first positioning block 11, the center of the second positioning block 12, the center of the third positioning block 13, and the center of the fourth positioning block 14, the inner angle at which the fourth positioning block 14 is located is the largest of the four inner angles of the quadrangle, and the distance between the center of the fourth positioning block 14 and the center of the third positioning block 13 is smaller than the distance between the center of the fourth positioning block 14 and the center of the second positioning block 12. That is, the center of the fourth positioning block 14 is connected to the center of the third positioning block 13 and named as a first connection line, the center of the fourth positioning block 14 is connected to the center of the second positioning block 12 and named as a second connection line, an included angle between the first connection line and the second connection line is a maximum inner angle in a quadrangle, a distance between the center of the fourth positioning block 14 and the center of the third positioning block 13 is named as a first distance, a distance between the center of the fourth positioning block 14 and the center of the second positioning block 12 is named as a second distance, and the first distance is smaller than the second distance.
More specifically, as shown in fig. 3A and 3B, in the embodiment of the present invention, the coding pattern 1 has a first edge 16, a second edge 17, a third edge 18, and a fourth edge 19, and the first edge 16 perpendicularly intersects the second edge 17, the second edge 17 perpendicularly intersects the third edge 18, the third edge 18 perpendicularly intersects the fourth edge 19, and the fourth edge 19 perpendicularly intersects the first edge 16, as shown in fig. 3A and 3B, the first edge 16 is a left edge of the coding pattern 1, the second edge 17 is an upper edge of the coding pattern 1, the third edge 18 is a right edge of the coding pattern 1, and the fourth edge 19 is a lower edge of the coding pattern 1.
The edge of the first positioning block 11 is tangent to both the first edge 16 and the second edge 17, the edge of the second positioning block 12 is tangent to both the second edge 17 and the third edge 18, the edge of the third positioning block 13 is tangent to both the first edge 16 and the fourth edge 19, and the edge of the fourth positioning block 14 is tangent to only the fourth edge 19.
In an alternative embodiment, the first positioning block 11, the second positioning block 12, the third positioning block 13 and the fourth positioning block 14 have the same shape and size. In an alternative embodiment, the first positioning block 11, the second positioning block 12, the third positioning block 13 and the fourth positioning block 14 are all in the shape of a plurality of concentric rings with alternate colors, such as a plurality of black and white rings as shown in fig. 3A and 3B. In other alternative embodiments, the first positioning block 11, the second positioning block 12, the third positioning block 13 and the fourth positioning block 14 may also be regular triangular, square or other regular polygonal rings. In other alternative embodiments, the first positioning block 11, the second positioning block 12, the third positioning block 13 and the fourth positioning block 14 may also be solid positioning blocks, such as circular blocks, square blocks or polygonal blocks.
In an alternative embodiment, if the direction of the second edge 17 side is defined as up, the direction of the first edge 16 side is defined as left, the direction of the third edge 18 side is defined as right, and the direction of the fourth edge 19 side is defined as down, the direction of the encoded graphic 1 may be determined, and the direction of the encoded graphic 1 may be determined according to the four positioning blocks.
As shown in fig. 3A and 3B, the encoding region 15 is composed of a data lattice. Wherein, the coding blocks in the data lattice are square dots (as shown in fig. 3A) or circular dots (as shown in fig. 3B).
In an alternative embodiment the coding blocks comprise coding blocks of two colors distinguished from each other, wherein a coding block of one color represents a 0 and a coding block of the other color represents a 1. For example, as shown in fig. 3A and fig. 3B, the encoding blocks of two colors black and white are used, in other embodiments, the encoding blocks of different color combinations other than the combination of black and white may be used, such as the encoding blocks of the combination of red and white, black and yellow, blue and yellow, and the like, and the selection of the encoding block color prioritizes the ease of reading the encoding region 15, and avoids the misreading problem caused by too close color values between the two colors. In the embodiments shown in fig. 3A and 3B, a black coding block may be represented as 1, and a white coding block may be represented as 0, or a black coding block may be represented as 0, and a white coding block may be represented as 1.
In an alternative embodiment, the recording order of the information in the encoding area 15 in the embodiment shown in fig. 3A, 3B is: starting from the first row (the first row from the top in fig. 3A, 3B) of the data lattice adjacent to the second edge 17, the information is recorded in order from the side near the first edge 16 (the left side in fig. 3A, 3B) to the side near the third edge 18 (the right side in fig. 3A, 3B), i.e. as shown in fig. 3A, 3B, the information is recorded in the order from left to right in the respective coding blocks of the first row in the data lattice, then in the order from left to right in the respective coding blocks of the second row in the data lattice, and so on, and finally in the order from left to right in the respective coding blocks of the last row in the data lattice. As shown in fig. 3A and 3B, since the fourth positioning block 14 divides the last row of code blocks into two parts, namely left and right parts, the information is recorded in each row of code blocks in the sequence of recording the code blocks of the row located at the left part of the fourth positioning block 14 from left to right, skipping the fourth positioning block 14 and recording the code blocks of the row located at the right part of the fourth positioning block 34 from left to right.
An embodiment of the present invention further provides an encoding method, as shown in fig. 4, where the encoding method includes:
step 11, receiving data to be coded;
step 12, encoding data to be encoded to generate encoded data;
and step 13, recording the coded data in the coded graph.
The coded graph is the coded graph 1 described in the above embodiments, and the structure thereof is shown in fig. 3A and fig. 3B, and specifically refer to the description of the above embodiments, which is not described herein again.
In an alternative embodiment, the step 13 of recording the encoded data in the encoded graphic includes:
and taking a row of coding blocks closest to the second edge in the coding region as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding region as a last coding row, taking the coding block closest to the first edge in each row of coding blocks as a starting coding block, taking the coding block closest to the third edge as a last coding block, and recording the coding data in the coding region according to the sequence from the starting coding row to the last coding row.
Further, in an alternative embodiment, in the process of loading the encoded data into the encoding region:
and when the coding line which is truncated by the fourth positioning block is formed, skipping the fourth positioning block to form the coding block in the coding line.
In an alternative embodiment, before the step 13 of recording the encoded data in the encoded graph, the encoding method of the embodiment of the present invention further includes:
and determining the side length of the coded graph according to the bit number of the coded data, the side length of each coding block in the coding region and the side length of the region occupied by any one positioning block.
In an optional embodiment, the side length of the coding graph is positively correlated with the bit number of the coded data, the side length of each coding block in the coding region and the side length of the region occupied by any one positioning block.
Specifically, in an optional embodiment, a formula is used to express a relationship between a side length of a coded graph and a bit number of coded data, a side length of each coded block in a coded region, and a side length of a region occupied by any one of the positioning blocks, where the side length of the region occupied by any one of the positioning blocks is denoted as m, a bit width of data to be coded is denoted as k, and a preset error correction capacity bit width is denoted as 2t, then:
Figure BDA0002120729690000111
wherein a is the side length of the coding region or the coding graph.
If the width of the peripheral quiet zone of the coded pattern is calculated, then
Figure BDA0002120729690000121
Wherein, a' is the total side length of the coding region or the coding graph plus the surrounding quiet zone, and q is the width of the quiet zone.
In an alternative embodiment, the encoding of the data to be encoded in step 12 includes:
the data to be encoded is encoded by RS (Reed-Solomon) error correction coding.
In an optional embodiment, after the generating of the encoded data in step 12 and before the recording of the encoded data in the encoded graph in step 13, the encoding method according to the embodiment of the present invention further includes:
and performing bit exclusive-or processing on the coded data and the data mask matrix.
The RS error correction coding method and the bit difference processing using the data mask matrix will be described in detail later.
As an example, in one embodiment, recording the data to be encoded in the encoded region may include the following steps.
Step a1, inputting data to be coded.
And a step a2, calculating a Galois field generator polynomial, wherein the Galois field base is 2. The generator polynomial is represented as the product of 2t first order polynomials.
Figure BDA0002120729690000122
And a step a3, performing Reed-Solomon error correction coding.
Let the data code polynomial be:
Figure BDA0002120729690000123
the error correction code polynomial is x2td (x) the remainder of the division by the polynomial g (x).
After the error correction code is arranged in the data code, as shown in fig. 5, the error correction encoding is completed. Alternatively, an error correction code may precede the data code.
Step a4, converting the data code and the error correction code into a bit stream, each bit in the bit stream corresponding to each encoded block in the encoded area. Different information of the bit stream is represented according to different colors of the coding block, wherein black represents 0 and white represents 1. Or white for 0 and black for 1.
And a5, applying a data mask matrix to obtain a final coding result, namely the color of each coding block. In order to prevent the situation that homochromy coding block aggregation occurs in the coding area, a data mask matrix with 0 and 1 alternating phases is applied to the coding area. The data mask matrix formula is:
mask=(row+col)%2
wherein row is the row number of the coding block, col is the column number of the coding block, and mask is the mask value. And solving the XOR between the mask and the coding block value at the corresponding position to obtain a final coding result. The advantage of performing the bit exclusive-or operation by using the data mask matrix is that when the coding area is large, the black and white block aggregation can be reduced, and the segmentation efficiency during decoding can be improved.
And step a6, filling the coding blocks into the coding areas in sequence.
As shown in fig. 6, and in combination with the coding patterns shown in fig. 3A and 3B, the method for reading a coding pattern according to the embodiment of the present invention mainly includes:
step 21, acquiring an image containing a coding pattern, wherein the image is obtained by shooting the surface of an object containing the coding pattern;
step 22, identifying four positioning blocks in the coded graph in the image;
step 23, determining a mapping relation of the coded graph from the image to the perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image to the perspective distortion-free plane according to the mapping relation to form a coded graph front view;
step 24, in the front view of the code pattern, by reading the code area in which the information described in the code pattern can be read, the information described in the code pattern is obtained.
In an alternative embodiment, the step 22 of identifying four positioning blocks in the encoded graphic in the image further comprises:
determining a positioning block at the position of the largest inner angle in four inner angles of a quadrangle formed by the central coordinates of the four positioning blocks as a fourth positioning block, determining a positioning block closest to the fourth positioning block on two sides of the largest inner angle as a third positioning block, determining a positioning block farthest to the fourth positioning block on two sides of the largest inner angle as a second positioning block, and determining the rest positioning blocks as first positioning blocks.
In an alternative embodiment, in step 22, four positioning blocks in the encoded pattern are identified by the following method:
in the coded graph, four graphic objects with the same shape and size are determined as the four positioning blocks.
As shown in fig. 3A and 3B, the first positioning block 11, the second positioning block 12, the third positioning block 13, and the fourth positioning block 14 have the same size and shape, so as to facilitate the identification of each positioning block, and further, in step 22, the identification of four positioning blocks is completed by the same means (method).
In an alternative embodiment, in step 22, the above method for identifying four positioning blocks in the encoded pattern further includes:
four circular ring-shaped graphic objects which are all arranged concentrically and have alternate colors are determined as four positioning blocks.
As shown in fig. 3A or 3B, the first positioning block 11, the second positioning block 12, the third positioning block 13, and the fourth positioning block 14 are all formed in a plurality of concentric circular ring shapes with alternate colors. The shapes of the multiple circular rings which are arranged concentrically and have alternate colors can be distinguished from the characteristics of the surrounding environment (such as a coding region), and the recognition success rate can be improved.
In an alternative embodiment, in step 22, the quadrilateral is constructed by:
and extracting the central coordinates of the four positioning blocks, and connecting the central coordinates of the four positioning blocks in sequence to form a quadrangle.
Referring to fig. 3A or 3B, in step 22, after the four positioning blocks in the encoded pattern are just identified, it is not known which of the four positioning blocks is the first positioning block 11, which of the four positioning blocks is the second positioning block 12, which of the four positioning blocks is the third positioning block 13, and which of the four positioning blocks is the fourth positioning block 14, so that the direction of the encoded pattern cannot be determined yet, in the subsequent process of step 22, the fourth positioning block 14 is first determined by determining the inner angle of the quadrangle constructed by connecting the center coordinates of the four positioning blocks (the inner angle at which the fourth positioning block 14 is located is the maximum inner angle of the quadrangle), then the third positioning block 13 and the second positioning block 12 are determined by determining the distance between the two positioning blocks adjacent to the fourth positioning block 14 in the quadrangle and the fourth positioning block 14 (the third positioning block 13 is closer to the fourth positioning block 14 than the second positioning block 12), and finally, the positioning block opposite to the fourth positioning block 14 in the remaining quadrangle is determined as the first positioning block 11. Further, the reading order of the coding blocks in the coding area may be determined, for example, the side where the first positioning block 11 and the second positioning block 12 are located may be positioned, the side where the first positioning block 11 and the third positioning block 13 are located may be positioned to the left, when reading the coding area, the data blocks of each row may be read in the order from top to bottom, and in each row of data blocks, each data block may be read in the order from left to right. Therefore, the embodiment of the invention realizes the purpose of determining the direction of the coding graph and the reading sequence of the coding region by utilizing the characteristics of the asymmetric distribution of the four positioning blocks.
In the embodiment of the present invention, the layout of the four positioning blocks adopts an asymmetric design, and after step 22, the relative position relationship of the four positioning blocks is determined, that is, it is determined who is the first positioning block 11, who is the second positioning block 12, who is the third positioning block 13, and who is the fourth positioning block 14, so that the direction of the coding pattern is determined by using the relative position relationship of the first positioning block 11, the second positioning block 12, the third positioning block 13, and the fourth positioning block 14, and in the subsequent step, the determination of the reading order of each coding block in the coding region can be realized by using the direction of the coding pattern. Therefore, in the embodiment of the present invention, the asymmetric arrangement structure of the four positioning blocks carries direction information, and the direction of the encoded graph can be determined by using the four asymmetrically arranged positioning blocks, so that the problem that the direction of the encoded graph cannot be determined due to a mirror image problem caused by symmetric arrangement can be solved, and the embodiment of the present invention does not need to adopt an additional mirror image detection step to determine the direction of the encoded graph.
In an alternative embodiment, the step 23 of determining the mapping relationship of the encoded graphic from the image to the distortion-free plane based on the four positioning blocks is obtained by:
and determining the mapping relation of the coding graph from the image to the perspective distortion-free plane according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the perspective distortion-free plane.
In an alternative embodiment, in a square planar area without perspective distortion:
the first positioning block is positioned in a first corner area in the square plane area;
the second positioning block is positioned in a second corner area which is not positioned on the same diagonal line with the first corner area in the square plane area;
the third positioning block is positioned in a third corner area which is positioned on the same diagonal line with the second corner area in the square plane area;
the position of the fourth positioning block is one of a set of positions of the fourth positioning block which satisfy the following conditions:
the fourth positioning block is located in the square plane area, in a target quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, the inner angle where the fourth positioning block is located is the largest inner angle of four inner angles of the target quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
And the coordinates of the fourth positioning block which satisfy the condition that the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block are a set. Preferably, the positional relationship between the four positioning blocks in the square plane area without perspective distortion should be consistent with the positional relationship between the four positioning blocks in the above-mentioned coding pattern embodiment of the present invention, and preferably, the quadrangle formed by the four positioning blocks in the square plane area without perspective distortion is similar or identical to the quadrangle formed by the four positioning blocks in the above-mentioned coding pattern embodiment of the present invention.
In an alternative embodiment, the center coordinates of the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block in the perspective distortion free plane in step 23 are set by:
step b1, arranging the first target block in a first corner area in the square plane area without perspective distortion;
step b2, arranging a second target block in a second corner area in the square plane area;
step b3, arranging a third target block in a third corner area on the same diagonal line with the second corner area in the square plane area;
step b4, arranging the fourth target block in the square plane area, so that in a target quadrangle formed by the center of the first target block, the center of the second target block, the center of the third target block and the center of the fourth target block, the inner angle at which the fourth target block is located is the largest inner angle of four inner angles of the target quadrangle, and the distance between the center of the fourth target block and the center of the third target block is smaller than the distance between the center of the fourth target block and the center of the second target block;
and b5, setting the central coordinate of the first target block as the central coordinate of the first positioning block in the perspective distortion-free plane, setting the central coordinate of the second target block as the central coordinate of the second positioning block in the perspective distortion-free plane, setting the central coordinate of the third target block as the central coordinate of the third positioning block in the perspective distortion-free plane, and setting the central coordinate of the fourth target block as the central coordinate of the fourth positioning block in the perspective distortion-free plane.
In the embodiment of the present invention, reading of the information described in the encoding area is finally performed in the encoding figure front view without perspective distortion. Therefore, the captured encoded graphic needs to be transformed from the captured image to an encoded graphic front view without perspective distortion. In this conversion, it is necessary to previously determine or previously set the target points of the conversion and store them to ensure the smooth execution of the subsequent graphic conversion, and in the embodiment of the present invention, after the above steps b1 to b5, the target coordinates of the four positioning blocks to be converted are determined in the square plane area, so that, no matter what angle the coded graphic is photographed, if the first positioning block 11, the second positioning block 12, the third positioning block 13, and the fourth positioning block 14 can be identified and determined, the mapping relationship of the coded graphic from the image to the coded graphic front view can be determined and the image conversion can be performed immediately by using the target coordinates of the centers of the positioning blocks obtained after the above steps b1 to b5 and pre-stored in advance in the coded graphic front view without perspective distortion.
In an alternative embodiment, the step 23 of determining the mapping relationship of the encoded graphics from the image to the distortion-free plane based on the four positioning blocks is obtained by the following steps:
and 231, determining the mapping relation of the coding graph from the image to the perspective distortion-free plane according to the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block and the center coordinate of the fourth positioning block in the image, and the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block and the center coordinate of the fourth positioning block in the perspective distortion-free plane.
In an alternative embodiment, the determining, in step 231, a mapping relationship of the encoded graphic from the image to the distortion-free plane according to the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block, and the center coordinate of the fourth positioning block in the image, and the center coordinate of the first positioning block, the center coordinate of the second positioning block, the center coordinate of the third positioning block, and the center coordinate of the fourth positioning block in the distortion-free plane includes:
and acquiring a homography matrix corresponding to the mapping relation according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the perspective distortion-free plane.
In an alternative embodiment, transforming the encoded graphics in the image into the distortion-free plane according to the mapping relationship in step 23 to form an encoded graphics front view includes:
step 232, utilizing the homography matrix to project and transform all pixel points of the coding graph in the image to a perspective distortion-free plane to form a coding graph front view.
In an alternative embodiment, the coding region is located in the coding pattern and is not occupied by the first positioning block, the second positioning block, the third positioning block and the fourth positioning block in step 24.
In an alternative embodiment, in step 24, in the front view of the coding pattern, the information recorded in the coding pattern is obtained by reading the coding region in which the recorded information can be read, and the method includes:
step 241, among the four edges of the coding graph in the front view of the coding graph, setting the edge tangent to the first positioning block and the third positioning block as a first edge, setting the edge tangent to the first positioning block and the second positioning block as a second edge, setting the edge tangent to the second positioning block as a third edge, and setting the edge tangent to the third positioning block and the fourth positioning block as a fourth edge;
step 242, taking a row of coding blocks closest to the second edge in the coding regions as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding regions as a last coding row, taking the coding block closest to the first edge in each row of coding blocks as a starting coding block, taking the coding block closest to the third edge as a last coding block, and sequentially reading information of each coding block from the starting coding block to the last coding block in each coding row according to an order from the starting coding row to the last coding row to obtain information recorded by the coding pattern.
Referring to fig. 3A and 3B, in an alternative embodiment, each row of coding blocks is sequentially read from the uppermost row of coding blocks shown in fig. 3A and 3B until the lowermost row of coding blocks is completely read, and in each row of coding blocks, each coding block is sequentially read from left to right.
In an alternative embodiment, in step 242, when reading the encoded line truncated by the fourth positioning block, the fourth positioning block is skipped to read the encoded block in the encoded line.
In an alternative embodiment, in step 24, after reading the coding region, the information recorded in the coding pattern is further obtained by:
step 243, performing error correction decoding on the coding information obtained by reading the coding region to obtain error-corrected code words and error quantity;
and step 244, if the error quantity does not exceed the error correction capacity, outputting the error-corrected code word.
In an alternative embodiment, the error correction coding employed in step 243 is RS (reed solomon) error correction coding.
In an alternative embodiment, before performing the error correction decoding in step 243 and after obtaining the information recorded in the encoded pattern in step 242, step 24 further includes:
and carrying out bit exclusive-or processing on the coding information and the data mask matrix.
The bit exclusive or processing in the embodiment of the present invention is described in supplementary detail below.
In the encoding process, the real data to be recorded in the encoding area and the data mask matrix are subjected to bit exclusive-or processing to obtain an encoding area graph which avoids black and white aggregation, in the decoding process, the encoding area graph is subjected to bit exclusive-or processing with the data mask matrix, and the data mask matrix adopted in the encoding process is the same as the data mask matrix adopted in the decoding process, because the exclusive-or follows the following combination law:
a⊕(a⊕b)=(a⊕a)⊕b
therefore, if a is defined as a data mask matrix and b is defined as real data to be recorded in the encoding area during encoding, the left side of the equation (a ≦ b) indicates that the real data and the data mask matrix are subjected to bit exclusive-or processing during encoding, and if the result of (a ≦ b) is defined as c, c indicates that the encoding area pattern avoiding the black-and-white aggregation condition, the left side of the equation is the encoding area pattern avoiding the black-and-white aggregation condition
a⊕(a⊕b)=a⊕c
And a ≦ c on the right side of the above equation indicates a bit exclusive or process performed on the encoded region pattern and the data mask matrix at the time of decoding.
From the above two formulas
a⊕c=a⊕(a⊕b)=(a⊕a)⊕b
As known to those skilled in the art, if the exclusive or value of the same value is 0, that is, if a ≦ 0 in the above formula, then there are
a⊕c=a⊕(a⊕b)=(a⊕a)⊕b=0⊕b
While those skilled in the art will appreciate that 0 is exclusive-ored with a non-zero number, then if b is a non-zero number then there is
a⊕c=a⊕(a⊕b)=(a⊕a)⊕b=0⊕b=b
Since b is defined as data to be recorded in the coding region during coding, it can be seen from the above formula that, during decoding, the original coded real data can be obtained by performing bit exclusive or processing on the coding region pattern and the data mask matrix (which is the same as the data mask matrix used during coding).
Therefore, in the preferred embodiment, the same data mask matrix is used in the encoding process and the decoding process to perform bit exclusive or processing on the real data to be recorded in the encoding area and the encoding area respectively, so that the original encoding information recorded in the encoding area can be obtained during decoding.
Fig. 7 shows the whole process flow from initial determination of data to be encoded to final completion of encoding by using the encoding method of the embodiment of the present invention. As shown in fig. 7, the process includes:
and c1, determining the maximum bit number of the data to be coded according to the application requirement.
In industrial applications, different application scenarios have different requirements on the data capacity in the encoded graphics. In an alternative embodiment, for the code pattern formed by the coding method with the auxiliary positioning function and adopting the code pattern of the embodiment of the invention, the stored data is generally a set of decimal numbers representing position coordinates. The position coordinates may be represented by a combination of a row-column index and a unit distance, or may be represented by only actual physical coordinates. Before the coded graph is produced, the minimum decimal digit required for clearly representing scene coordinates is required firstly.
And c2, selecting proper error correction capacity and determining the size of the coding pattern.
The error correction capacity here is the same as that of a conventional two-dimensional code, and means the number of erroneous codewords that can be corrected by a decoder when a code word (a coding block in a coding region) is changed due to the influence of illumination, distortion, image noise, or the like in a coded pattern (a two-dimensional code). The error correction capability reflects the noise immunity of the encoded pattern. In industrial applications, different scenes have different requirements on the error correction capacity of the encoded graphics. The imaging environment can be well controlled in some scenes, the probability of errors of the coded graph is low, and the requirement on error correction capacity is relatively low at the moment; in other scenes, the imaging environment is complex and changeable, the probability of errors of the coded graph is high, the requirement on error correction capacity is high, and more error correction codes are needed to ensure the decoding performance. Before coding the coding graph, the needed error correction capacity t needs to be evaluated according to the characteristics of the use environment of the coding graph. According to the determined number k of data codes and the number 2t of error correcting codes, the side length a of the coding pattern can be calculated:
Figure BDA0002120729690000191
where m is the side length of the region occupied by the positioning block, in the encoding pattern of the embodiment shown in fig. 3A and 3B, m represents the diameter of the outermost ring of the positioning rings, and ceil (x) represents the minimum integer not less than x.
If the width q of the surrounding quiet zone of the coded picture is taken into account, then
Figure BDA0002120729690000192
And c3, inputting data to be coded.
And c4, calculating a Galois field generator polynomial, wherein the base of the Galois field is 2. The generator polynomial is represented as the product of 2t first order polynomials.
Figure BDA0002120729690000193
And c5, performing Reed-Solomon error correction coding.
Let the data code polynomial be:
Figure BDA0002120729690000194
error correction codeword polynomial of x2td (x) the remainder of the division by the polynomial g (x). After the error correction code is arranged in the data code, as shown in fig. 5, the error correction encoding is completed. Alternatively, an error correction code may precede the data code.
Step c6, converting the data code and the error correction code into a bit stream. The minimum unit in the coding area is a coding block, and different information is represented according to different colors of the coding block, wherein black represents 0 and white represents 1. Or white for 0 and black for 1. The encoding is achieved by converting the decimal code word into a binary bit stream. During conversion, each two decimal digits are converted into a group, and after all code words are converted, the code words are spliced together according to a relative sequence to form a coded bit stream.
And c7, performing bit XOR processing by applying the data mask matrix to obtain a final coding result. In order to prevent the situation that homochromy coding block aggregation occurs in the coding area, a data mask matrix with 0 and 1 alternating phases is applied to the coding area. The data mask matrix formula is:
mask=(row+col)%2
wherein row is the row number of the coding block, col is the column number of the coding block, and mask is the mask value. And solving the XOR between the mask and the coding block value at the corresponding position to obtain a final coding result.
And c8, filling the coding blocks into the coding areas in sequence. As shown in fig. 3A and 3B, when filling the coding blocks, the first coding block (i.e., the coding block adjacent to the first positioning block 11 and the second edge 17) at the top left corner of the coding region is sequentially filled from left to right and from top to bottom. When filling the last several rows of code blocks isolated by the fourth positioning block 14, first sequentially filling the row of code blocks located at the left side of the fourth positioning block 14 from left to right, then skipping the fourth positioning block 14, and sequentially continuing to fill the row of code blocks located at the right side of the fourth positioning block 14 from left to right until all the code blocks are completely filled.
And c9, drawing a positioning block.
In an alternative embodiment, the positioning block is in the shape of a positioning ring shown in fig. 3A and 3B, in the positioning ring, the widths of black and white color bands of concentric circles are the same, the outermost side is a black ring, and the innermost side is a white circle. In an alternative embodiment, the radius of the inner white circle is 3/8 the radius of the outer black circle, in other embodiments, other radius ratios may be used.
And c10, finishing coding and outputting the pattern of the final coding graph.
Fig. 8 shows the whole process flow from the determination of the specification of the encoded graphics to the final decoding completion by using the encoded graphics reading method according to the embodiment of the present invention. As shown in fig. 8, the process includes:
and d1, determining the specification of the coding graph. When decoding, decoding is required according to the specification of the coding graph during coding, and the specification mainly comprises: the number of data codes, the number of error correcting codes, the size of positioning blocks and the like.
And d2, extracting the center coordinates of the four positioning blocks of the coding pattern from the image containing the coding pattern.
For the four positioning blocks in the embodiment shown in fig. 3A and 3B, in an alternative embodiment, a Hough transform method is used to search the four circular positioning blocks in fig. 3A and 3B, and the number of concentric circles and the radius relationship in each positioning block are used to perform screening to determine the center coordinates of each positioning block in the image containing the encoded graph. The Hough transformation method is an existing method, and the gravity center coordinates of the concentric circles are determined by screening the relation between the number of the concentric circles and the radius of each positioning block by adopting the existing technology, and are not described again here.
And d3, determining the sequence of the four positioning blocks.
In this step, determining the sequence of the four positioning blocks is to determine a first positioning block, a second positioning block, a third positioning block, and a fourth positioning block of the four positioning blocks.
In this step, the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block are determined by using the asymmetry of the positions of the four positioning blocks. In the embodiment shown in fig. 3A and 3B, in a quadrangle formed by four positioning blocks, an included angle formed by two adjacent sides of the positioning block at the lower right corner is the largest inner angle among the four inner angles of the quadrangle, so that the inner angles in the quadrangle corresponding to the four positioning blocks are obtained, the positioning block at the position of the largest inner angle (the lower right corner of the quadrangle) is determined as the fourth positioning block, further, the positioning block closest to the fourth positioning block on the two sides of the largest inner angle is determined as the third positioning block (the positioning block at the lower left corner of the quadrangle), the positioning block farthest from the fourth positioning block on the two sides of the largest inner angle is determined as the second positioning block (the positioning block at the upper right corner of the quadrangle), and the rest positioning blocks are determined as the first positioning block (the positioning block at the.
And d4, solving a homography matrix according to the central coordinates of the four positioning blocks in the image and the corresponding coordinates of the four positioning blocks in the plane without perspective distortion. And projecting all pixel points in the coding graph area to a perspective distortion-free plane by using the homography matrix to obtain a coding graph image without perspective distortion, namely a coding graph front view.
And d5, obtaining a binary image of the coding pattern by adopting a thresholding method inside the coding pattern region in the front view of the coding pattern.
And d6, calculating the length of the coding block in the coding area according to the side length of the positioning block and the side length of the coding area. And dividing the grids by taking the length of the coding block as a step length, and reading the bit value of each grid. And actually, a judgment threshold value T can be set according to needs, when the number of white pixels in the grid exceeds T, the white module is judged, otherwise, the black module is judged. As shown in fig. 3A and 3B, the code words of each coding block are sequentially read from the coding blocks adjacent to the first positioning block 11 and the second edge 17 in the order of coding (i.e., each row is sequentially read from left to right and from top to bottom) until all code words are read.
And d7, carrying out bit XOR processing on the code words of each coding block by using the mask to obtain information before the mask.
And d8, performing Reed-Solomon error correction decoding to obtain an error correction result.
The error correction result includes the error-corrected codeword and the number of errors.
And d9, judging whether the decoding is successful according to the error number calculated in the step d 8. If the error number exceeds the error correction capacity t, the error correction decoding cannot be completed, step d10 is executed, otherwise, the decoding is successful, and step d11 is executed.
And d10, outputting the decoding failure result because the error number is larger than the error correction capacity.
And d11, decoding successfully, and outputting the error-corrected code word.
The coding pattern in the implementation of the invention can be formed on the calibration board to assist the positioning of the calibration board in the camera calibration process, wherein the coding region in the coding pattern can record the coordinates (index coordinates or physical coordinates) of the marking points of the coding pattern and/or the related information (such as the physical distance between the characteristic points in the calibration board) of the calibration board, and the like.
The embodiment of the present invention further provides a shooting device, as shown in fig. 9, the shooting device includes a shooting unit 31 and a processor 32. The shooting unit 31 is used for shooting the surface of an object containing the coded pattern to obtain an image containing the coded pattern. The processor 32 is configured to: identifying four positioning blocks in the coded graph in the image containing the coded graph; determining the mapping relation of the coded graph from the image to the perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image to the perspective distortion-free plane according to the mapping relation to form a coded graph front view; in the front view of the code pattern, the information described in the code pattern is obtained by reading the code area in which the information described in the code pattern can be read.
Embodiments of the present invention further provide a non-volatile computer-readable storage medium, which stores instructions that, when executed by a processor, cause the processor to perform the steps in the coding method of the encoding graphics as described in the above embodiments.
Embodiments of the present invention further provide a non-volatile computer-readable storage medium, which stores instructions that, when executed by a processor, cause the processor to perform the steps in the encoded graphic reading method as described in the above embodiments.
An embodiment of the present invention further provides an electronic device, a structure of which can be seen in fig. 10, where the electronic device includes: at least one processor 41; and a memory 42 communicatively coupled to the at least one processor 41; wherein the memory 42 stores instructions executable by the at least one processor 41, the instructions being executable by the at least one processor 41 to cause the at least one processor 41 to perform the steps of the method for coding a graphic as described in any one of the above embodiments.
An embodiment of the present invention further provides an electronic device, a structure of which can also be seen in fig. 10, where the electronic device includes: at least one processor 41; and a memory 42 communicatively coupled to the at least one processor 41; wherein the memory 42 stores instructions executable by the at least one processor 41, the instructions being executable by the at least one processor 41 to cause the at least one processor 41 to perform the steps of the encoded graphic reading method according to any of the above embodiments.
In the encoding method, the encoding graph reading method, the shooting device, the nonvolatile computer readable storage medium and the electronic equipment embodiment of the invention, the existing two-dimensional code standard is replaced, the authorization cost and the manufacturing cost required by adopting the existing two-dimensional code generating software are saved, and the use limit of the existing two-dimensional code generating software is not limited. In addition, in the embodiment of the invention, three of the four positioning blocks are respectively positioned at three corners of the coding graph, and the other positioning block is only tangent to the edge of the coding graph to form an asymmetric distribution configuration of the four positioning blocks, so that the embodiment of the invention utilizes the asymmetric distribution configuration of the four positioning blocks to realize accurate and rapid positioning of the coding graph and ensure accurate reading of the coding region. In addition, in the embodiment of the invention, the asymmetric arrangement structure of the four positioning blocks carries direction information, the direction of the coded graph can be determined by utilizing the four asymmetrically arranged positioning blocks, the problem that the direction of the coded graph cannot be determined due to the mirror image problem caused by symmetric arrangement can be solved, and further, when the coded graph is subjected to data reading in the front direction and the back direction, the direction of the coded graph can be identified, so that the purpose of performing data reading in the front direction and the back direction on the same coded graph can be realized, and the application range of the coded graph is increased. The embodiment of the invention can set the size of the coding graph area and the size of the coding area in the coding graph area according to the data size of the application scene so as to flexibly set the data information recorded by the coding graph. In the embodiment of the invention, a Reed-Solomon error correction mechanism is utilized, so that the coding region has error-proof performance and can correct error codes which do not exceed the error correction capacity. The coding mode of the coding region in the embodiment of the invention is simple, and the efficiency is higher for scenes with smaller coding data quantity.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like made within the spirit and principle of the present invention should be included in the scope of the present invention.

Claims (35)

1. An encoding method, comprising:
receiving data to be encoded;
encoding the data to be encoded to generate encoded data;
the coded data is recorded in a coded graph;
wherein, the coding pattern is square, including:
a first positioning block located in a first corner region in the encoded graph;
a second locating block located at a second corner region in the encoded pattern, wherein the second corner region is not on the same diagonal of the encoded pattern as the first corner region;
a third locating block located at a third corner region in the encoded pattern, wherein the third corner region and the second corner region are on the same diagonal of the encoded pattern;
a fourth locating block located in the encoded graph;
an encoding area that is located in a region of the encoding pattern not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block, and that records the encoded data; wherein the content of the first and second substances,
in a quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, an inner angle at which the fourth positioning block is located is the largest inner angle of four inner angles of the quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
2. The encoding method according to claim 1, wherein encoding the data to be encoded comprises:
and encoding the data to be encoded by adopting a Reed Solomon RS error correction encoding method.
3. The encoding method according to claim 1, wherein after the encoded data is generated, before the encoded data is described in an encoded graphic, the method further comprises:
and carrying out bit exclusive-or processing on the coded data and a data mask matrix.
4. The encoding method according to claim 1, wherein:
the first positioning block is tangent to a first edge of the coding graph and a second edge of the coding graph simultaneously;
the second positioning block is tangent to the second edge of the coding graph and the third edge of the coding graph at the same time;
the third positioning block is tangent to the first edge of the coding graph and the fourth edge of the coding graph simultaneously;
the fourth positioning block is only tangent to a fourth edge of the encoded pattern.
5. The encoding method according to claim 1, wherein:
the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are the same in shape and size.
6. The encoding method according to claim 1, wherein:
the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are all in the shape of a plurality of concentric rings with alternate colors.
7. The encoding method according to claim 1, wherein:
the coding region consists of a data dot matrix, and coding blocks in the data dot matrix are square dots or circular dots.
8. The encoding method according to claim 7, wherein:
the encoding blocks include encoding blocks of two colors distinguished from each other, wherein an encoding block of one color represents 0 and an encoding block of the other color represents 1.
9. The encoding method according to claim 5, wherein said encoding the encoded data in an encoding pattern includes:
and taking a row of coding blocks closest to the second edge in the coding regions as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding regions as a last coding row, taking a coding block closest to the first edge in each row of coding blocks as a starting coding block, taking a coding block closest to the third edge as a last coding block, and recording the coding data in the coding regions according to the sequence from the starting coding row to the last coding row.
10. The encoding method of claim 9, wherein in the process of loading the encoded data in the encoding region:
and when forming the coding line which is truncated by the fourth positioning block, skipping the fourth positioning block to form a coding block in the coding line.
11. The encoding method of claim 1, wherein prior to recording the encoded data in the encoded graphic, the method further comprises:
and determining the side length of the coded graph according to the bit number of the coded data, the side length of each coding block in the coding region and the side length of the region occupied by any one positioning block.
12. The encoding method according to claim 11, wherein:
the side length of the coding graph is positively correlated with the bit number of the coding data, the side length of each coding block in the coding region and the side length of the region occupied by any one positioning block.
13. An encoded pattern, wherein the encoded pattern is a square, comprising:
a first positioning block located in a first corner region in the encoded graph;
a second locating block located at a second corner region in the encoded pattern, wherein the second corner region is not on the same diagonal of the encoded pattern as the first corner region;
a third locating block located at a third corner region in the encoded pattern, wherein the third corner region and the second corner region are on the same diagonal of the encoded pattern;
a fourth locating block located in the encoded graph;
an encoding region that is located in a region of the encoding pattern that is not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block, and that carries readable information; wherein the content of the first and second substances,
in a quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, an inner angle at which the fourth positioning block is located is the largest inner angle of four inner angles of the quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
14. The encoded graphic of claim 13, wherein:
the first positioning block is tangent to a first edge of the coding graph and a second edge of the coding graph simultaneously;
the second positioning block is tangent to the second edge of the coding graph and the third edge of the coding graph at the same time;
the third positioning block is tangent to the first edge of the coding graph and the fourth edge of the coding graph simultaneously;
the fourth positioning block is only tangent to a fourth edge of the encoded pattern.
15. The encoded graphic of claim 13, wherein:
the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are the same in shape and size.
16. The encoded graphic of claim 13, wherein:
the first positioning block, the second positioning block, the third positioning block and the fourth positioning block are all in the shape of a plurality of concentric rings with alternate colors.
17. The encoded graphic of claim 13, wherein:
the coding region consists of a data dot matrix, and coding blocks in the data dot matrix are square dots or circular dots.
18. The encoded graphic of claim 17, wherein:
the encoding blocks include encoding blocks of two colors distinguished from each other, wherein an encoding block of one color represents 0 and an encoding block of the other color represents 1.
19. A coded graphic reading method comprising:
acquiring an image containing a coding pattern, wherein the image is obtained by shooting the surface of an object containing the coding pattern;
in the image, identifying four positioning blocks in the coded graph;
determining the mapping relation of the coded graph from the image to a perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view;
in the front view of the code pattern, the information described in the code pattern is obtained by reading the code area in which the described information can be read;
wherein, in the image, identifying four positioning blocks in the encoded graph comprises:
determining a positioning block at the position of the largest inner angle in four inner angles of a quadrangle formed by the central coordinates of the four positioning blocks as a fourth positioning block, determining a positioning block closest to the fourth positioning block on two sides of the largest inner angle as a third positioning block, determining a positioning block farthest from the fourth positioning block on two sides of the largest inner angle as a second positioning block, and determining the rest positioning blocks as first positioning blocks.
20. The method for reading out encoded graphics according to claim 19, wherein said determining a mapping relationship of said encoded graphics from said image to a plane without perspective distortion according to said four positioning blocks is obtained by:
and determining the mapping relation of the coding graph from the image to the perspective distortion-free plane according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the perspective distortion-free plane.
21. A coded picture reading method according to claim 19, characterized in that:
the encoding region is located in the encoding graph and is not occupied by the first positioning block, the second positioning block, the third positioning block, and the fourth positioning block.
22. The method of claim 19, wherein four positioning blocks in the code pattern are identified by:
in the coded graph, four graphic objects with the same shape and size are determined as the four positioning blocks.
23. The encoded graphic reading method of claim 22, further comprising:
and determining four circular ring-shaped graphic objects which are all arranged concentrically and have alternate colors as the four positioning blocks.
24. The encoded graphic reading method according to claim 19, wherein the quadrangle is constructed by:
and extracting the central coordinates of the four positioning blocks, and sequentially connecting the central coordinates of the four positioning blocks to form the quadrangle.
25. A method for reading encoded pictures according to claim 20, characterized in that in said square planar area free from perspective distortion:
the first positioning block is positioned in a first corner area in the square plane area;
a second positioning block is positioned in a second corner area which is not positioned on the same diagonal line with the first corner area in the square plane area;
a third positioning block is positioned in a third corner area of the square plane area, which is positioned on the same diagonal line with the second corner area;
the position of the fourth positioning block is one of a set of positions of the fourth positioning block which satisfy the following conditions:
and a fourth positioning block is positioned in the square plane area, in a target quadrangle formed by the center of the first positioning block, the center of the second positioning block, the center of the third positioning block and the center of the fourth positioning block, the inner angle at which the fourth positioning block is positioned is the largest of the four inner angles of the target quadrangle, and the distance between the center of the fourth positioning block and the center of the third positioning block is smaller than the distance between the center of the fourth positioning block and the center of the second positioning block.
26. The method for reading out encoded graphics according to claim 20, wherein the determining the mapping relationship of the encoded graphics from the image to the distortion-free plane according to the center coordinates of the first positioning block, the second positioning block, the third positioning block and the fourth positioning block in the image, and the center coordinates of the first positioning block, the second positioning block, the third positioning block and the fourth positioning block in the distortion-free plane comprises:
acquiring a homography matrix corresponding to the mapping relation according to the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in the image, and the central coordinate of the first positioning block, the central coordinate of the second positioning block, the central coordinate of the third positioning block and the central coordinate of the fourth positioning block in a perspective distortion-free plane;
the transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view, comprising:
and utilizing the homography matrix to project and transform all pixel points of the coding graph in the image to the perspective distortion-free plane to form the front view of the coding graph.
27. The method for reading a code pattern according to claim 19, wherein the obtaining of the information described in the code pattern by reading a code area in which the information described in the code pattern can be read in the front view of the code pattern includes:
among four edges of the coding pattern in the front view of the coding pattern, setting an edge tangent to both the first positioning block and the third positioning block as a first edge, setting an edge tangent to both the first positioning block and the second positioning block as a second edge, setting an edge tangent to only the second positioning block as a third edge, and setting an edge tangent to both the third positioning block and the fourth positioning block as a fourth edge;
and taking a row of coding blocks closest to the second edge in the coding regions as a starting coding row, taking a row of coding blocks closest to the fourth edge in the coding regions as a last coding row, taking the coding block closest to the first edge in each row of coding blocks as a starting coding block, taking the coding block closest to the third edge as a last coding block, and sequentially reading information of each coding block from the starting coding block to the last coding block in each coding row according to the sequence from the starting coding row to the last coding row so as to obtain the information recorded by the coding graph.
28. A coded picture reading method according to claim 27, characterized in that:
and when the coding line cut off by the fourth positioning block is read, skipping the fourth positioning block to read the coding block in the coding line.
29. The code pattern reading method according to claim 19, wherein after reading the code area, information described in the code pattern is obtained by:
carrying out error correction decoding on the coding information obtained by reading the coding region to obtain error-corrected code words and error quantity;
and if the error number does not exceed the error correction capacity, outputting the error-corrected code word.
30. A method for reading encoded pictures according to claim 29, wherein before said error correction decoding, said method further comprises:
and carrying out bit XOR processing on the coding information and a data mask matrix.
31. A camera, the camera comprising a camera unit and a processor, the camera characterized by:
the shooting unit is used for shooting the surface of an object containing the coded graph to obtain an image containing the coded graph;
the processor is configured to:
in the image, identifying four positioning blocks in the coded graph;
determining the mapping relation of the coded graph from the image to a perspective distortion-free plane according to the four positioning blocks, and transforming the coded graph in the image into the perspective distortion-free plane according to the mapping relation to form a coded graph front view;
in the front view of the code pattern, the information described in the code pattern is obtained by reading the code region in which the information described in the code pattern can be read.
32. A non-transitory computer readable storage medium storing instructions which, when executed by a processor, cause the processor to perform the steps in the encoding method of any one of claims 1 to 12.
33. A non-transitory computer readable storage medium storing instructions which, when executed by a processor, cause the processor to perform the steps in the code pattern reading method according to any one of claims 19 to 30.
34. An electronic device, comprising:
at least one processor; and the number of the first and second groups,
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the steps in the method of coding graphics of any one of claims 1 to 12.
35. An electronic device, comprising:
at least one processor; and the number of the first and second groups,
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the steps in the encoded graphic reading method according to any of claims 19 to 30.
CN201910606064.9A 2019-07-05 2019-07-05 Encoding method, encoding pattern reading method, and imaging device Pending CN112187284A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910606064.9A CN112187284A (en) 2019-07-05 2019-07-05 Encoding method, encoding pattern reading method, and imaging device
PCT/CN2020/100304 WO2021004414A1 (en) 2019-07-05 2020-07-04 Coding pattern, coding and reading methods for same, calibration board, and calibration method
US17/624,953 US11843395B2 (en) 2019-07-05 2020-07-04 Coding pattern, coding and reading methods for same, calibration board, and calibration method
EP20837644.2A EP3996283B1 (en) 2019-07-05 2020-07-04 Coding pattern, coding and reading methods for same, calibration board, and calibration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910606064.9A CN112187284A (en) 2019-07-05 2019-07-05 Encoding method, encoding pattern reading method, and imaging device

Publications (1)

Publication Number Publication Date
CN112187284A true CN112187284A (en) 2021-01-05

Family

ID=73918756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910606064.9A Pending CN112187284A (en) 2019-07-05 2019-07-05 Encoding method, encoding pattern reading method, and imaging device

Country Status (1)

Country Link
CN (1) CN112187284A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115251126A (en) * 2021-10-29 2022-11-01 智锐达仪器科技南通有限公司 Two-dimensional code, corresponding coding and decoding method and code spraying and reading device
CN115936037A (en) * 2023-02-22 2023-04-07 青岛创新奇智科技集团股份有限公司 Two-dimensional code decoding method and device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050092335A (en) * 2004-03-15 2005-09-21 셴젠 시스칸 테크놀러지 코오퍼레이션 리미티드 Two-dimensional bar code and associated codingdecoding method
CN101093553A (en) * 2007-07-19 2007-12-26 成都博古天博科技有限公司 2D code system, and identification method
CN102243704A (en) * 2011-07-21 2011-11-16 我查查信息技术(上海)有限公司 Positioning system for two-dimension bar code and two-dimension bar code identification method and equipment
CN102999772A (en) * 2012-11-14 2013-03-27 韩偲铭 Novel array-type two-dimension code encoding and decoding methods
WO2018177127A1 (en) * 2017-03-31 2018-10-04 腾讯科技(深圳)有限公司 Information processing method and apparatus, and storage medium
CN109754046A (en) * 2019-01-31 2019-05-14 北京迈格威科技有限公司 Two dimensional code, the coding method of two dimensional code, coding/decoding method, device and equipment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050092335A (en) * 2004-03-15 2005-09-21 셴젠 시스칸 테크놀러지 코오퍼레이션 리미티드 Two-dimensional bar code and associated codingdecoding method
CN101093553A (en) * 2007-07-19 2007-12-26 成都博古天博科技有限公司 2D code system, and identification method
CN102243704A (en) * 2011-07-21 2011-11-16 我查查信息技术(上海)有限公司 Positioning system for two-dimension bar code and two-dimension bar code identification method and equipment
CN102999772A (en) * 2012-11-14 2013-03-27 韩偲铭 Novel array-type two-dimension code encoding and decoding methods
WO2018177127A1 (en) * 2017-03-31 2018-10-04 腾讯科技(深圳)有限公司 Information processing method and apparatus, and storage medium
CN109754046A (en) * 2019-01-31 2019-05-14 北京迈格威科技有限公司 Two dimensional code, the coding method of two dimensional code, coding/decoding method, device and equipment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115251126A (en) * 2021-10-29 2022-11-01 智锐达仪器科技南通有限公司 Two-dimensional code, corresponding coding and decoding method and code spraying and reading device
CN115251126B (en) * 2021-10-29 2023-11-21 智锐达仪器科技南通有限公司 Two-dimensional code, corresponding coding and decoding method, code spraying and code reading device
CN115936037A (en) * 2023-02-22 2023-04-07 青岛创新奇智科技集团股份有限公司 Two-dimensional code decoding method and device

Similar Documents

Publication Publication Date Title
US7264174B2 (en) 2D coding and decoding barcode and its method thereof
TWI746882B (en) Two-dimensional barcode, printed publication, generating device, and information processing method
US10679175B2 (en) Two-dimensional code, system for creation of two-dimensional code, and analysis program
US9892300B2 (en) Two-dimensional code
US8459565B2 (en) Two-dimensional code generating apparatus, image forming system, two-dimensional code reading apparatus, and computer readable medium
US8550351B2 (en) Matrix type two-dimensional barcode decoding chip and decoding method thereof
CN111046996B (en) Color QR code generation and identification method
US9734443B2 (en) Two-dimensional code, two-dimensional-code analysis system, and two-dimensional-code generation system
US11843395B2 (en) Coding pattern, coding and reading methods for same, calibration board, and calibration method
US9014479B2 (en) Method and system for text-image orientation
US9898637B2 (en) Two-dimensional code
JP2006012162A (en) System and method for encoding high density geometric symbol set
US20170046606A1 (en) Two-dimensional code, and two-dimensional-code analysis system
CN111275152A (en) Two-dimensional code, encoding method and decoding method of two-dimensional code, decoding device of two-dimensional code and electronic system
KR102375325B1 (en) Method for detection and recognition of distant high-density visual markers
CN112184826B (en) Calibration plate and calibration method
CN112187284A (en) Encoding method, encoding pattern reading method, and imaging device
CN112183695B (en) Coding method, coding pattern reading method, and photographing apparatus
US8797193B2 (en) Parallel test payload
CN112184803A (en) Calibration plate and calibration method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: 310052 5 / F, building 1, building 2, no.700 Dongliu Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information