Nothing Special   »   [go: up one dir, main page]

JP7091898B2 - Code reader and code reader - Google Patents

Code reader and code reader Download PDF

Info

Publication number
JP7091898B2
JP7091898B2 JP2018133406A JP2018133406A JP7091898B2 JP 7091898 B2 JP7091898 B2 JP 7091898B2 JP 2018133406 A JP2018133406 A JP 2018133406A JP 2018133406 A JP2018133406 A JP 2018133406A JP 7091898 B2 JP7091898 B2 JP 7091898B2
Authority
JP
Japan
Prior art keywords
image
cell
code
reference point
cells
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.)
Active
Application number
JP2018133406A
Other languages
Japanese (ja)
Other versions
JP2020013210A (en
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.)
Denso Wave Inc
Original Assignee
Denso Wave Inc
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 Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2018133406A priority Critical patent/JP7091898B2/en
Publication of JP2020013210A publication Critical patent/JP2020013210A/en
Application granted granted Critical
Publication of JP7091898B2 publication Critical patent/JP7091898B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Description

コード読み取り装置およびコード読み取りプログラムに関し、特に、2次元コードとともに示された画像の歪みを補正する機能を備えた装置およびプログラムに関する。 The present invention relates to a code reading device and a code reading program, and more particularly to a device and a program having a function of correcting distortion of an image shown together with a two-dimensional code.

特許文献1に、2次元コード内に付された画像を読み取り装置で利用する技術が開示されている。特許文献1に開示されている2次元コードは、全体として正方形状であり、2次元コードの中央部分に画像領域が形成されている。特許文献1には、画像領域に対して、画像領域の4隅を特定して正規化することも開示されている。正規化された後の画像は、パターンマッチングなどに用いられる。 Patent Document 1 discloses a technique for using an image attached in a two-dimensional code in a reading device. The two-dimensional code disclosed in Patent Document 1 has a square shape as a whole, and an image region is formed in the central portion of the two-dimensional code. Patent Document 1 also discloses that four corners of an image region are specified and normalized with respect to the image region. The image after normalization is used for pattern matching and the like.

なお、画像領域が2次元コードの中央にある場合に以外に、1対の長方形状のコード領域に画像領域が挟まれている2次元コードも知られている。以下では、コード領域と画像とが組み合わせられている2次元コードを、画像付き2次元コードとする。 A two-dimensional code in which an image area is sandwiched between a pair of rectangular code areas is also known, except when the image area is in the center of the two-dimensional code. In the following, a two-dimensional code in which a code area and an image are combined is referred to as a two-dimensional code with an image.

特開2017-168133号公報Japanese Unexamined Patent Publication No. 2017-168133

画像全体の4隅を特定して正規化する技術は、画像の1対の隅間を直線とみなしており、その1対の隅間の距離を変更するだけである。一方、画像付き2次元コードが曲面に形成されている場合、画像の1対の隅間は、平面であれば直線であっても、撮像された画像では曲線である。 The technique of identifying and normalizing the four corners of an entire image considers a pair of corners of an image as a straight line and only changes the distance between the pair of corners. On the other hand, when the two-dimensional code with an image is formed on a curved surface, the pair of corners of the image is a straight line if it is a plane, but is a curved line in the captured image.

したがって、画像付き2次元コードが曲面に形成されている場合、画像全体の4隅を特定して正規化するだけでは、正規化後の画像は、正しい平面画像とは大きく異なった画像になってしまう可能性がある。 Therefore, when the two-dimensional code with an image is formed on a curved surface, the image after normalization will be a significantly different image from the correct planar image simply by specifying and normalizing the four corners of the entire image. There is a possibility that it will end up.

本開示は、この事情に基づいて成されたものであり、その目的とするところは、画像付き2次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に変換することができるコード読み取り装置、および、コード読み取りプログラムを提供することにある。 The present disclosure is based on this circumstance, and the purpose of the present disclosure is to accurately convert an image into a flat image even when a two-dimensional code with an image is formed on a curved surface. The purpose of the present invention is to provide a code reading device and a code reading program.

上記目的は独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は更なる有利な具体例を規定する。特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、開示した技術的範囲を限定するものではない。 The above object is achieved by a combination of the features described in the independent claims, and the sub-claims specify further advantageous specific examples. The reference numerals in parentheses described in the claims indicate, as one embodiment, the correspondence with the specific means described in the embodiments described later, and do not limit the disclosed technical scope.

上記目的を達成するためのコード読み取り装置は、コード領域(110)と画像(120)とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、データコード語を読み取るコード読み取り装置であって、
画像付き2次元コードを撮像可能な撮像部(23)と、
撮像部によって画像付き2次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部(S80)と、を備える。
A code reading device for achieving the above object is a combination of a code area (110) and an image (120), and a data code word and an error correction code word are recorded in the code area by cells of a plurality of colors. It is a code reading device that reads a data code word from a two-dimensional code (100) with an image, which is a two-dimensional code.
An image pickup unit (23) capable of capturing a two-dimensional code with an image, and
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when a two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading a data code word, and a cell coordinate correction unit (S60).
Based on the corrected cell coordinates, a reference point setting unit (S70) that sets a reference point that becomes a point that determines the divided area obtained by dividing the entire restoration area including the entire image, and
It is provided with a restoration processing unit (S80) that performs restoration processing for restoring a divided region determined based on a reference point to a flat image.

データ読み取り部によりデータコード語の読み取りができたとき、2次元コードは各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、画像付き2次元コードを撮像した画像(以下、コード撮像画像)を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる。 When the data code word can be read by the data reading unit, the two-dimensional code can determine the array of cells in each column. Then, once the cell arrangement is determined, the cell arrangement is compared with the cell arrangement that can be extracted by image analysis of the image obtained by capturing the two-dimensional code with an image (hereinafter referred to as the code captured image), thereby forming the code captured image. The cell coordinates can be corrected.

そして、補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する。このようにして基準点を設定することから、画像付き2次元コードが曲面に形成されていても、画像付き2次元コードが平面にあるときの基準点の間隔が分かる。したがって、このようにして基準点を設定することで、復元処理では、分割領域の基準点を、画像付き2次元コードが平面にあるときの位置に精度よく戻すことができる。 Then, based on the corrected cell coordinates, a reference point is set, which is a point that determines the divided area obtained by dividing the entire restored area including the entire image. By setting the reference points in this way, even if the two-dimensional code with an image is formed on a curved surface, the interval between the reference points when the two-dimensional code with an image is on a plane can be known. Therefore, by setting the reference point in this way, in the restoration process, the reference point of the divided region can be accurately returned to the position when the two-dimensional code with an image is on a plane.

しかも、この復元処理では、画像全体を含む基準点を設定して画像を復元するのではなく、画像を分割した分割領域を対象として復元処理を行う。2次元コードが曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、分割領域とすることで、各分割領域に含まれる曲線は、画像全体よりは、元の直線に対する歪みが少ない曲線になっている。 Moreover, in this restoration process, instead of setting a reference point including the entire image to restore the image, the restoration process is performed for the divided area obtained by dividing the image. Since the two-dimensional code is formed on a curved surface, even if a line that is a straight line in a plane image is a curved line, by making it a divided area, the curve included in each divided area is larger than the entire image. It is a curve with less distortion than the original straight line.

これらのことから、セル座標に基づいて分割領域の基準点を設定し、分割領域を単位として復元処理をすることで、画像付き2次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に戻すことができる。 From these facts, by setting the reference point of the divided area based on the cell coordinates and performing the restoration process in units of the divided area, even if the two-dimensional code with an image is formed on a curved surface, the image can be accurately displayed. You can revert to a 2D image.

請求項2に記載のコード読み取り装置では、基準点設定部は、画像を挟んでコード領域が形成されている場合、画像を挟んで基準点を設定する。 In the code reading device according to claim 2, when the code area is formed by sandwiching the image, the reference point setting unit sets the reference point by sandwiching the image.

このようにすることで、コード撮像画像が、画像付き2次元コードを斜めから撮像した画像であっても、分割領域の基準となる各基準点を、画像付き2次元コードを平面としたときの座標に正しく対応させることができる。 By doing so, even if the code captured image is an image obtained by capturing the two-dimensional code with an image from an angle, when each reference point as a reference of the divided region is set as a plane with the two-dimensional code with an image as a plane. It can correspond correctly to the coordinates.

請求項3に記載のコード読み取り装置では、復元処理部は、画像全体の一部の分割領域を平面画像に復元する。 In the code reading device according to claim 3, the restoration processing unit restores a part of the divided region of the entire image to a flat image.

画像全体の一部の分割領域を平面画像に復元すれば、画像全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。 Restoring a part of the divided area of the entire image to a flat image can shorten the restoration processing time compared to dividing the entire image into a plurality of divided areas and restoring the entire divided area to a flat image. ..

請求項4に記載のコード読み取り装置では、基準点設定部は、セル座標間の間隔が狭いほど基準点間の間隔を狭くする。 In the code reading device according to claim 4, the reference point setting unit narrows the distance between the reference points as the distance between the cell coordinates becomes narrower.

撮影された画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。しかし、セル座標間の間隔が狭いほど基準点間の間隔を狭くすれば、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。 In the captured image, the portion where the interval between the cell coordinates is narrow is the portion where the distortion with respect to the plane image is large as compared with the portion where the interval between the cell coordinates is wide. However, if the distance between the reference points is narrowed as the distance between the cell coordinates is narrower, a relatively small division area can be set for the portion having a large distortion. Therefore, it is possible to restore a planar image with higher accuracy than setting reference points at regular intervals.

請求項5に記載のコード読み取り装置では、基準点設定部は、コード領域において、基準点設定方向が全体復元領域の一辺に沿った方向であり、基準点設定方向において両隣が他色になっている1つのセルである単独セル(133、134)が、画像を挟んで互いに向かい合う位置に存在している場合、単独セルのセル座標を基準点に設定する。 In the code reading device according to claim 5, in the code area, the reference point setting direction is the direction along one side of the entire restoration area, and both sides are in other colors in the reference point setting direction. When the single cell (133, 134), which is one of the cells, exists at a position facing each other across the image, the cell coordinates of the single cell are set as the reference point.

単独セルのセル座標を基準点とすることで基準点を精度よく決めることができ、その結果、平面画像の復元精度が向上する。 By using the cell coordinates of a single cell as the reference point, the reference point can be accurately determined, and as a result, the restoration accuracy of the planar image is improved.

請求項6に記載のコード読み取り装置では、基準点設定部は、コード領域において画像に近いセルから順に、画像から離れる方向に単独セルを探索する。 In the code reading device according to claim 6, the reference point setting unit searches for a single cell in the direction away from the image in order from the cell closest to the image in the code area.

画像に近い側にある単独セルを基準点を設定することになるので、分割領域を小さくすることができる。 Since the reference point is set for the single cell on the side closer to the image, the division area can be reduced.

請求項7に記載のコード読み取り装置では、基準点設定部は、基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル(130)を、基準点設定方向において等セル間隔に設定し、初回候補セルおよび初回候補セルに対して基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、初回候補セルのセル座標を基準点に設定する。 In the code reading device according to claim 7, the reference point setting unit sets the first candidate cell (130), which is the first cell to be set as the cell candidate for determining the reference point, at equal cell intervals in the reference point setting direction. If the cell block of the same color including the cells of the same color that are continuous in the reference point setting direction for the first candidate cell and the first candidate cell is not error-corrected, the cell coordinates of the first candidate cell are set as the reference point.

このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に設定できる。 By doing so, it is possible to set the reference points at equal intervals while suppressing the setting of the wrong position as the reference point.

請求項8に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、探索範囲を画像に近いセルから順に探索し、画像を挟んで互いに向かい合う位置に1対の単独セルがある場合に、その1対の単独セルのセル座標を基準点に設定する。 In the code reading device according to claim 8, when the same color cell block including the first candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the first candidate cell in the reference point setting direction and an image. The cell sequence extending in the approaching and separating directions is set as the search range (133), the search range is searched in order from the cell closest to the image, and when there is a pair of single cells at positions facing each other across the image, the 1st Set the cell coordinates of a pair of single cells as the reference point.

このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 By doing so, it is possible to set the reference points at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.

請求項9に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、探索範囲に、同色セルが基準点設定方向に連結しており、かつ、探索範囲内で同色セルの連結が終了しているセルである独立連結セル(137、138、139)が、画像を挟んで、基準点設定方向において同じ位置にある場合、その1対の独立連結セルの中心を、基準点に設定する。 In the code reading device according to claim 9, when the same color cell block including the first candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the first candidate cell in the reference point setting direction and an image. The cell row extending in the approaching and separating directions is set as the search range (133), and the cells of the same color are connected in the reference point setting direction in the search range, and the connection of the cells of the same color is completed within the search range. When the independently linked cells (137, 138, 139), which are cells, are at the same position in the reference point setting direction across the image, the center of the pair of independently linked cells is set as the reference point.

このようにしても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 Even in this way, the reference points can be set at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.

請求項10に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルを含み画像に対して接近離隔方向に延びるセル列に、相互に1列ずれて存在している2つのエッジであって、2つのエッジ間が1セル分である段差エッジ(140)がある場合、基準点設定方向において2つのエッジの中間に基準点を設定する。 In the code reading device according to claim 10, when the same color cell block including the first candidate cell is erroneously corrected, the reference point setting unit is formed into a cell row including the first candidate cell and extending in the approaching distance direction with respect to the image. If there are two edges that are offset by one row from each other and there is a stepped edge (140) that is one cell between the two edges, the reference point is in the middle of the two edges in the reference point setting direction. To set.

このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。 By doing so, it is possible to set the distances between the reference points in the reference point setting direction at equal intervals while suppressing the setting of an erroneous position as the reference point.

請求項11に記載のコード読み取りプログラムは、請求項1のコード読み取り装置が備えるプログラムである。すなわち、コード読み取りプログラムは、
コード領域(110)と画像(120)とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、データコード語を読み取るために、画像付き2次元コードを撮像可能な撮像部(23)と、コンピュータ(40)とを備えたコード読み取り装置において、コンピュータを、
撮像部によって画像付き2次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部(S80)として機能させるためのコード読み取りプログラムである。
The code reading program according to claim 11 is a program included in the code reading device according to claim 1. That is, the code reader is
A code area (110) and an image (120) are combined, and the code area is a two-dimensional code with an image in which a data code word and an error correction code word are recorded by cells of a plurality of colors. In a code reading device including an image pickup unit (23) capable of capturing a two-dimensional code with an image and a computer (40) in order to read a data code word from the code (100), the computer is operated.
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when a two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading a data code word, and a cell coordinate correction unit (S60).
Based on the corrected cell coordinates, a reference point setting unit (S70) that sets a reference point that becomes a point that determines the divided area obtained by dividing the entire restoration area including the entire image, and
This is a code reading program for functioning as a restoration processing unit (S80) that performs restoration processing for restoring a divided area determined based on a reference point to a flat image.

実施形態となるコード読み取り装置10の機械的構成を示すブロック図である。It is a block diagram which shows the mechanical structure of the code reading apparatus 10 which becomes an embodiment. 画像付き2次元コード100を撮像したコード撮像画像の一例を示す図である。It is a figure which shows an example of the code image capture image which imaged the 2D code 100 with an image. 制御回路40が実行する画像復元処理を示すフローチャートである。It is a flowchart which shows the image restoration process which a control circuit 40 executes. 湾曲の検出方法の一例を説明する図である。It is a figure explaining an example of the bending detection method. 図3のS70の基準点設定処理を詳しく示すフローチャートである。It is a flowchart which shows the reference point setting process of S70 of FIG. 3 in detail. 図5のS72で設定する初回候補セル130を説明する図である。It is a figure explaining the initial candidate cell 130 set in S72 of FIG. 図5のS74で実行する基準セル変更処理を詳しく示すフローチャートである。It is a flowchart which shows the reference cell change process executed in S74 of FIG. 5 in detail. S741において単独セルを探索する探索範囲133を例示する図である。It is a figure which illustrates the search range 133 which searches for a single cell in S741. 図7のS745で拡大した後の探索範囲133を例示する図である。It is a figure which illustrates the search range 133 after being expanded in S745 of FIG. 図7のS747で探索する1対の独立連結セルを例示する図である。It is a figure which illustrates the pair of independent concatenated cells searched by S747 of FIG. 図7のS747で探索する1セル分の段差エッジ140を例示する図である。It is a figure which illustrates the step edge 140 for one cell to search in S747 of FIG. 図3のS80の湾曲復元処理を詳しく示すフローチャートである。It is a flowchart which shows the curvature restoration processing of S80 of FIG. 3 in detail. 図12のS81で作成する分割領域150の一例を示す図である。It is a figure which shows an example of the division area 150 created in S81 of FIG. 図2に示す画像120を復元した平面復元画像を示す図である。It is a figure which shows the plane restoration image which restored the image 120 shown in FIG. 実施形態とは異なる画像付き2次元コード200を示す図である。It is a figure which shows the 2D code 200 with an image which is different from the embodiment. 画像付き2次元コード100が円筒体250に表されている状態を示す図である。It is a figure which shows the state which the 2D code 100 with an image is represented in the cylinder 250. 図16の画像付き2次元コード100の部分の拡大図である。It is an enlarged view of the part of the 2D code 100 with an image of FIG. 画像付き2次元コード300を示す図である。It is a figure which shows the 2D code 300 with an image. 画像付き2次元コード400を示す図である。It is a figure which shows the 2D code 400 with an image. 画像付き2次元コード500を示す図である。It is a figure which shows the 2D code 500 with an image.

以下、実施形態を図面に基づいて説明する。図1は、実施形態となるコード読み取り装置10の機械的構成を示すブロック図である。なお、外見は省略しているが、このコード読み取り装置10は携帯型である。コード読み取り装置10は、2次元コードに記録されているデータコード語を光学的に読み取る装置である。 Hereinafter, embodiments will be described with reference to the drawings. FIG. 1 is a block diagram showing a mechanical configuration of a code reading device 10 according to an embodiment. Although the appearance is omitted, the code reading device 10 is a portable type. The code reading device 10 is a device that optically reads the data code word recorded in the two-dimensional code.

[機械的構成の説明]
回路部20は、図示しないハウジング内に収容されている。この回路部20は、主に、光学系とコンピュータ系と電源系とから構成されている。光学系は、マーカ光投射器60、発光ダイオード21、受光センサ23、結像レンズ27等から構成されている。
[Explanation of mechanical configuration]
The circuit unit 20 is housed in a housing (not shown). The circuit unit 20 is mainly composed of an optical system, a computer system, and a power supply system. The optical system includes a marker light projector 60, a light emitting diode 21, a light receiving sensor 23, an imaging lens 27, and the like.

発光ダイオード21は、ハウジング本体の読取口(図示せず)を介して読み取り面Rに向けて照明光Lfを照射可能に構成されている。受光センサ23は、撮像部の一例であり、読み取り面Rに照射された照明光Lfが反射して生じた反射光Lrを受光可能に構成される。例えば、C-MOSやCCD等の固体撮像素子である受光素子を数10万から数100万個オーダでm行n列の2次元に配列して構成されている。受光素子は、受光した光を電気信号に変換して出力する。 The light emitting diode 21 is configured to be able to irradiate the illumination light Lf toward the reading surface R via the reading port (not shown) of the housing body. The light receiving sensor 23 is an example of an image pickup unit, and is configured to be capable of receiving the reflected light Lr generated by reflecting the illumination light Lf applied to the reading surface R. For example, light receiving elements such as C-MOS and CCD, which are solid-state image pickup elements, are arranged in two dimensions of m rows and n columns on the order of several hundred thousand to several million. The light receiving element converts the received light into an electric signal and outputs it.

この受光センサ23の受光面23aは、ハウジング本体外から上述の読取口を介して外観可能に位置しており、受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に配置されている。 The light receiving surface 23a of the light receiving sensor 23 is externally located from the outside of the housing body via the above-mentioned reading port, and the light receiving sensor 23 receives incident light incident through the imaging lens 27 from the light receiving surface 23a. It is arranged so that it can receive light.

結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。発光ダイオード21から照射された照明光Lfが読み取り面Rに反射して読取口に入射する反射光Lrは、結像レンズ27により集光され、これにより、受光センサ23の受光面23aにコード像が結像する。マーカ光投射器60は、2次元コードの読み取り範囲を示すマーカ光Mを読み取り面Rに投射する。 The imaging lens 27 functions as an imaging optical system capable of condensing incident light incident from the outside through a reading port and forming an image on the light receiving surface 23a of the light receiving sensor 23. For example, a lens barrel. It is composed of a plurality of condenser lenses housed in this lens barrel. The illuminated light Lf emitted from the light emitting diode 21 is reflected on the reading surface R and the reflected light Lr incident on the reading port is condensed by the imaging lens 27, whereby the code image is displayed on the light receiving surface 23a of the light receiving sensor 23. Is imaged. The marker light projector 60 projects the marker light M indicating the reading range of the two-dimensional code onto the reading surface R.

次に、コンピュータ系の構成概要を説明する。コンピュータ系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、無線通信部47、通信インタフェース48等から構成されている。このコンピュータ系は、前述した光学系によって撮像されたコード像の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路40は、コード読み取り装置10の全体システムに関する制御も行っている。 Next, the outline of the computer system configuration will be described. The computer system includes an amplifier circuit 31, an A / D conversion circuit 33, a memory 35, an address generation circuit 36, a synchronization signal generation circuit 38, a control circuit 40, an operation switch 42, an LED 43, a buzzer 44, a liquid crystal display 46, and a wireless communication unit. It is composed of 47, a communication interface 48, and the like. This computer system can process the image signal of the code image captured by the above-mentioned optical system in terms of hardware and software. The control circuit 40 also controls the entire system of the code reading device 10.

光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されて所定ゲインで増幅された後、A/D変換回路33に入力されて、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されて蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されている。また、アドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。 The image signal (analog signal) output from the light receiving sensor 23 of the optical system is input to the amplifier circuit 31 and amplified with a predetermined gain, and then input to the A / D conversion circuit 33 to change from an analog signal to a digital signal. Will be converted. Then, the digitized image signal, that is, the image data is input to the memory 35 and stored. The synchronization signal generation circuit 38 is configured to be capable of generating a synchronization signal for the light receiving sensor 23 and the address generation circuit 36. Further, the address generation circuit 36 is configured to be able to generate a storage address of image data stored in the memory 35 based on the synchronization signal supplied from the synchronization signal generation circuit 38.

メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROMがこれに相当する。ROMには、画像処理プログラム、コード読み取りプログラムの他、マーカ光投射器60、発光ダイオード21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。 The memory 35 is a semiconductor memory device, and corresponds to, for example, a RAM (DRAM, SRAM, etc.) or a ROM. In addition to the image processing program and the code reading program, the ROM stores in advance a system program that can control each hardware such as the marker light projector 60, the light emitting diode 21, and the light receiving sensor 23.

制御回路40は、コード読み取り装置10全体を制御可能なコンピュータであり、CPU、システムバス、入出力インタフェース等からなる。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されている。また、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48、マーカ光投射器60等が制御回路40に接続されている。 The control circuit 40 is a computer capable of controlling the entire code reading device 10, and includes a CPU, a system bus, an input / output interface, and the like. The control circuit 40 is configured to be connectable to various input / output devices (peripheral devices) via a built-in input / output interface. Further, a power switch 41, an operation switch 42, an LED 43, a buzzer 44, a liquid crystal display 46, a communication interface 48, a marker light projector 60 and the like are connected to the control circuit 40.

この制御回路40は、例えば、2次元コードのデコード処理、および2次元コードが備えている画像の復元処理を行う。その他にも、電源スイッチ41や操作スイッチ42の監視や管理、LED43の点消灯、ブザー44の鳴動のオンオフ、液晶表示器46の画面制御、通信インタフェース48の通信制御、マーカ光投射器60からのマーカ光Mの投射制御等を行う。 The control circuit 40 performs, for example, a two-dimensional code decoding process and an image restoration process included in the two-dimensional code. In addition, monitoring and management of the power switch 41 and operation switch 42, turning on and off of the LED 43, turning on / off the sound of the buzzer 44, screen control of the liquid crystal display 46, communication control of the communication interface 48, and from the marker light projector 60. The projection control of the marker light M and the like are performed.

電源系は、電源スイッチ41、電池49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、電池49から供給される駆動電圧の導通や遮断が制御されている。 The power supply system is composed of a power supply switch 41, a battery 49, and the like, and by turning on and off the power switch 41 managed by the control circuit 40, the drive voltage supplied from the battery 49 is conducted to each of the above-mentioned devices and circuits. And shutoff are controlled.

[画像付き2次元コード100の説明]
コード読み取り装置10は種々の2次元コードが読み取り可能であり、図2に示す画像付き2次元コード100を読み取ることもできる。図2に示す画像付き2次元コード100は、フレームQRと呼ばれる2次元コードである。フレームQRは登録商標である。
[Explanation of 2D code 100 with image]
The code reading device 10 can read various two-dimensional codes, and can also read the two-dimensional code 100 with an image shown in FIG. The two-dimensional code 100 with an image shown in FIG. 2 is a two-dimensional code called a frame QR. Frame QR is a registered trademark.

図2に示す画像付き2次元コード100は、本来の形状は正方形である。しかし、図2では湾曲した形状になっている。この理由は、図2は、円柱状の曲面に形成された画像付き2次元コード100を撮像したものだからである。 The original shape of the two-dimensional code 100 with an image shown in FIG. 2 is a square. However, in FIG. 2, it has a curved shape. The reason for this is that FIG. 2 is an image of a two-dimensional code 100 with an image formed on a cylindrical curved surface.

画像付き2次元コード100は、四角枠形状にコード領域110が形成されており、このコード領域110と画像120とが組み合わせられたコードである。画像120は、四角枠形状のコード領域110の内側に配置されている。 The two-dimensional code 100 with an image is a code in which a code area 110 is formed in a square frame shape, and the code area 110 and the image 120 are combined. The image 120 is arranged inside the code area 110 having a square frame shape.

コード領域110には、明セルと暗セルとがそれぞれ多数配置されており、明セルと暗セルにより、種々の規定パターン、データコード語、誤り訂正コード語が符号表現される。一方、画像120は、符号を読み取る必要がない部分である。 A large number of bright cells and dark cells are arranged in the code area 110, and various defined patterns, data code words, and error correction code words are code-represented by the bright cells and dark cells. On the other hand, the image 120 is a portion where it is not necessary to read the code.

規定パターンには、位置検出パターン111などがある。位置検出パターン111の周囲には、フォーマット情報を記録する領域がある。コード領域110において、データコード語が記録される部分と、誤り訂正コード語が記録される部分は、規格等により予め定められている。フォーマットが分かれば、データコード語が記録される部分と、誤り訂正コード語が記録される部分がどこであるかは決定可能である。この画像付き2次元コード100のコード領域110の生成方法は、特許文献1に記載された方法と同じ方法を採用することができる。 The specified pattern includes a position detection pattern 111 and the like. Around the position detection pattern 111, there is an area for recording format information. In the code area 110, a portion where the data code word is recorded and a portion where the error correction code word is recorded are predetermined by a standard or the like. Once the format is known, it is possible to determine where the data code word is recorded and where the error correction code word is recorded. As a method for generating the code region 110 of the two-dimensional code 100 with an image, the same method as that described in Patent Document 1 can be adopted.

本実施形態のコード読み取り装置10は、コード読み取りプログラムを実行することで、コード領域110に記録されているデータコード語を読み取ることに加えて、画像120の歪みを補正する機能を備える。画像120の歪みを補正する機能は特許文献1にも開示されている。しかし、本実施形態のコード読み取り装置10は、円筒面などの曲面に画像付き2次元コード100が形成されている場合に、特許文献1に開示されている画像補正処理よりも、歪みの少ない復元画像を得ることができる。以下、本実施形態のコード読み取り装置10が行う画像復元処理について説明する。 The code reading device 10 of the present embodiment has a function of correcting the distortion of the image 120 in addition to reading the data code word recorded in the code area 110 by executing the code reading program. The function of correcting the distortion of the image 120 is also disclosed in Patent Document 1. However, the code reading device 10 of the present embodiment restores with less distortion than the image correction process disclosed in Patent Document 1 when the two-dimensional code 100 with an image is formed on a curved surface such as a cylindrical surface. You can get an image. Hereinafter, the image restoration process performed by the code reading device 10 of the present embodiment will be described.

[画像復元処理の説明]
図3に、制御回路40が実行する画像復元処理を示す。ステップ(以下、ステップを省略)S10では、画像付き2次元コード100を含む画像を撮像する。S20はデータ読み取り部としての処理であり、データ読み取り処理を行う。データ読み取り処理は、S10で撮像した画像からコード領域110を特定し、そのコード領域110からデータコード語を読み取る処理である。コード領域110からデータコード語を読み取る処理は、特許文献1に記載された処理と同じ処理である。ここでは、画像復元処理に関連する部分を中心に、データ読み取り処理を説明する。
[Explanation of image restoration process]
FIG. 3 shows an image restoration process executed by the control circuit 40. Step (hereinafter, the step is omitted) In S10, an image including the two-dimensional code 100 with an image is captured. S20 is a process as a data reading unit, and performs a data reading process. The data reading process is a process of identifying the code area 110 from the image captured in S10 and reading the data code word from the code area 110. The process of reading the data code word from the code area 110 is the same process as that described in Patent Document 1. Here, the data reading process will be described with a focus on the part related to the image restoration process.

データ読み取り処理では、コード領域110の湾曲を検出しており、湾曲に応じてセルの配列方向を推定する。湾曲の検出方法の一例を図4に示す。図4に示す例では、位置検出パターン111において、画像付き2次元コード100の同一の外辺上の点となる4つの頂点112a、112b、112c、112dを決定する。これら4つの頂点を通る線の中点113と、両端の頂点112a、112dを通る直線の中点114との差dを求める。この差dが大きいほどコード領域110の湾曲が大きいとする。 In the data reading process, the curvature of the code area 110 is detected, and the cell arrangement direction is estimated according to the curvature. FIG. 4 shows an example of a bending detection method. In the example shown in FIG. 4, in the position detection pattern 111, four vertices 112a, 112b, 112c, and 112d that are points on the same outer edge of the two-dimensional code 100 with an image are determined. The difference d between the midpoint 113 of the line passing through these four vertices and the midpoint 114 of the straight line passing through the vertices 112a and 112d at both ends is obtained. It is assumed that the larger the difference d, the larger the curvature of the code region 110.

このようにして検出した湾曲になるように各列のセルが配列しているとして、各列の明暗を検出する。セルの明暗の変化は、S10で撮像した画像をエッジ検出することで決定する。また、撮像した画像における各セルの大きさは、撮像した画像における画像付き2次元コード100の全体の大きさと、フォーマット情報から決定できる1辺のセル数から計算する。 Assuming that the cells in each column are arranged so as to have the curvature detected in this way, the light and darkness of each column is detected. The change in brightness of the cell is determined by edge detection of the image captured by S10. Further, the size of each cell in the captured image is calculated from the total size of the two-dimensional code 100 with an image in the captured image and the number of cells on one side that can be determined from the format information.

また、データ読み取り処理では、データコード語を正しく読み取るために、誤り訂正処理を行う。誤り訂正処理は、誤り訂正コード語を用いた演算を行って、復号できなかったシンボルキャラクタや間違って復号したシンボルキャラクタを訂正する処理である。なお、誤り訂正コード語は、たとえばリード・ソロモン符号であり、データコード語から生成する。 Further, in the data reading process, an error correction process is performed in order to correctly read the data code word. The error correction process is a process of correcting a symbol character that could not be decoded or a symbol character that was erroneously decoded by performing an operation using an error correction code word. The error correction code word is, for example, a Reed-Solomon code, and is generated from the data code word.

S30では、S20でのデータ読み取り処理の結果が、読み取り成功であったか否かを判断する。読み取り成功である場合、誤り訂正処理により、データコード語が正しく復元されたことになる。S30の判断がYESであればS40に進む。一方、S30の判断がNOであればS10に戻り、撮像をやり直す。 In S30, it is determined whether or not the result of the data reading process in S20 is the reading success. If the reading is successful, it means that the data code word has been correctly restored by the error correction process. If the determination in S30 is YES, the process proceeds to S40. On the other hand, if the judgment of S30 is NO, the process returns to S10 and the imaging is repeated.

S40では、S10で撮像した画像付き2次元コード100が湾曲しているか否かを判断する。S20で実行するデータ読み取り処理では、コード領域110の湾曲を検出しているので、このS40ではS20での検出結果に基づいて判断を行う。たとえば、図4に示す差dの大きさに基づいて、S10で撮像した画像付き2次元コード100が湾曲しているか否かを判断する。S40の判断がNOであればS50へ進み、YESであればS60へ進む。 In S40, it is determined whether or not the two-dimensional code 100 with an image captured in S10 is curved. In the data reading process executed in S20, the curvature of the code area 110 is detected, so in this S40, a determination is made based on the detection result in S20. For example, based on the magnitude of the difference d shown in FIG. 4, it is determined whether or not the two-dimensional code 100 with an image captured in S10 is curved. If the judgment of S40 is NO, the process proceeds to S50, and if YES, the process proceeds to S60.

S50では平面復元処理を行う。平面復元処理では、まず、画像120の全体を含む全体復元領域の頂点を特定する。ここでの頂点は、コード領域110において、画像120との境界となる四角枠の各頂点であり、頂点により囲まれる領域が全体復元領域である。 In S50, a plane restoration process is performed. In the plane restoration process, first, the vertices of the entire restoration region including the entire image 120 are specified. The vertices here are the vertices of the square frame that is the boundary with the image 120 in the code area 110, and the area surrounded by the vertices is the entire restoration area.

頂点を特定した後は、複数の頂点間の間隔が、フォーマットにより定まる規定の頂点間の間隔になるように全体復元領域の形状を変換する。変換処理には、たとえば、射影変換処理を用いる。射影変換処理を用いて画像を変換する処理は特許文献1にも開示されている。 After identifying the vertices, the shape of the entire restoration area is transformed so that the spacing between the plurality of vertices becomes the spacing between the specified vertices determined by the format. For the conversion process, for example, a projective transformation process is used. A process of transforming an image using a projective transformation process is also disclosed in Patent Document 1.

S60はセル座標補正部としての処理であり、セル座標補正を行う。セル座標補正は、各セルの中心座標を補正する処理である。セル座標補正を行う理由は次の通りである。S10で撮像した画像付き2次元コード100が湾曲している場合、同じセル列内のセルであっても画像上の大きさは異なる。たとえば、図2に示している画像付き2次元コード100では、図左右方向の正面から離れたセルほど、画像上でのサイズは小さくなっている。 S60 is a process as a cell coordinate correction unit, and performs cell coordinate correction. The cell coordinate correction is a process of correcting the center coordinates of each cell. The reason for performing cell coordinate correction is as follows. When the two-dimensional code 100 with an image captured in S10 is curved, the size on the image is different even if the cells are in the same cell row. For example, in the two-dimensional code 100 with an image shown in FIG. 2, the size on the image becomes smaller as the cell is farther from the front in the left-right direction of the figure.

したがって、1セル列の長さを、フォーマット情報から決定した1セル列のセル数で割った長さを、単純に1セルの長さとするだけでは、画像上での各セルの大きさを正しく決定することができない。その結果、画像解析結果から決定できる明セルおよび暗セルが、何セル分であるかを正しく決定できない。 Therefore, if the length of one cell row divided by the number of cells in one cell row determined from the format information is simply set as the length of one cell, the size of each cell on the image is correct. I can't decide. As a result, it is not possible to correctly determine how many bright cells and dark cells can be determined from the image analysis result.

しかし、誤り訂正処理を含んでいるデータ読み取り処理により読み取りが成功した場合には、データコード領域のセルの配列が決定できていることになる。加えて、フォーマット情報から、画像付き2次元コード100のセル数、規定パターンの位置も決定できる。さらに、誤り訂正コード語は、データコード語から生成することができる。これらのことから、読み取りに成功している場合、コード領域110の全てのセルの明暗が決定できることになる。 However, if the reading is successful by the data reading process including the error correction process, the array of cells in the data code area can be determined. In addition, the number of cells of the two-dimensional code 100 with an image and the position of the specified pattern can be determined from the format information. Further, the error correction code word can be generated from the data code word. From these facts, if the reading is successful, the brightness of all the cells in the code area 110 can be determined.

そこで、読み取り結果から定まる各セル列の明セルおよび暗セルの配列を、画像解析結果から決定できる各セル列の明セルおよび暗セルの配列に当てはめる。これにより、画像解析結果から決定できる各セル列の明セルおよび暗セルが、何セルの連続であるかが決定できる。この決定結果をもとに、画像上での各セルの中心座標を再決定する。この処理がセル座標補正である。 Therefore, the array of light cells and dark cells in each cell row determined from the reading result is applied to the array of bright cells and dark cells in each cell row that can be determined from the image analysis result. Thereby, it is possible to determine how many cells the bright cells and dark cells in each cell row, which can be determined from the image analysis result, are continuous. Based on this determination result, the center coordinates of each cell on the image are redetermined. This process is cell coordinate correction.

S70で基準点設定部としての処理であり、基準点設定処理を行う。基準点は、画像120の全体を含む全体復元領域を分割した分割領域を定める点である。基準点設定処理は、詳しくは、図5に示す処理である。 It is a process as a reference point setting unit in S70, and a reference point setting process is performed. The reference point is a point that defines a divided area obtained by dividing the entire restored area including the entire image 120. The reference point setting process is the process shown in FIG. 5 in detail.

図5において、S71では湾曲方向を推定する。図2の例では、画像の左右方向が湾曲している方向であり、上下方向は湾曲していない。湾曲方向を推定するために、図4に示す差dを、画像付き2次元コード100において、互いに同じ辺に位置する2つの位置検出パターン111について算出する。図2の例では、左右方向に並んだ2つの位置検出パターン111および上下方向に並んだ2つの位置検出パターンのそれぞれに対して差dを算出する。そして、その差dが相対的に大きい側を湾曲方向とする。 In FIG. 5, in S71, the bending direction is estimated. In the example of FIG. 2, the left-right direction of the image is curved, and the vertical direction is not curved. In order to estimate the bending direction, the difference d shown in FIG. 4 is calculated for two position detection patterns 111 located on the same side of each other in the two-dimensional code 100 with an image. In the example of FIG. 2, the difference d is calculated for each of the two position detection patterns 111 arranged in the left-right direction and the two position detection patterns arranged in the up-down direction. Then, the side where the difference d is relatively large is set as the bending direction.

続くS72では、セル中心が基準点となるセルである基準セルの候補として、初回候補セル130を設定する。初回候補セル130は、全体復元領域を定める図6に示す四角枠132において、湾曲方向に沿った方向に等間隔に並んだセルである。 In the following S72, the initial candidate cell 130 is set as a candidate for the reference cell, which is a cell whose center is the reference point. The initial candidate cells 130 are cells arranged at equal intervals in the direction along the bending direction in the square frame 132 shown in FIG. 6 that defines the entire restoration area.

図6は、初回候補セル130を説明するための図であり、図示の便宜上、湾曲していない状態で画像付き2次元コード100を示し、また、説明に不要な部分は省略している。また、図6では、初回候補セル130の位置を黒色の四角で示しているが、これは、初回候補セル130の位置を示すものに過ぎず、暗セルを意味している訳ではない。図6では、コード領域110内のセルの色は示していない。 FIG. 6 is a diagram for explaining the initial candidate cell 130, and for convenience of illustration, the two-dimensional code 100 with an image is shown in a non-curved state, and parts unnecessary for explanation are omitted. Further, in FIG. 6, the position of the first candidate cell 130 is indicated by a black square, but this merely indicates the position of the first candidate cell 130 and does not mean a dark cell. In FIG. 6, the color of the cell in the code area 110 is not shown.

四角枠132は、セルの結合により形成され、画像120を含むように定められる。本実施形態では、四角枠132は、具体的には、画像120に隣接するセルにより形成される。初回候補セル130は、四角枠132において、湾曲方向に沿った方向となる一対の辺に、互いに対向するように設定される。初回候補セル130の間隔は、図6では4セル間隔としているが、3セル以下の間隔でもよい。また、5セル以上でもよい。初回候補セル130の間隔が狭いと、平面復元画像が、正しい平面画像に近い画像になる利点があるが、処理が煩雑になる。反対に、初回候補セル130の間隔が広いと、処理は簡単になるが、平面復元画像に湾曲の影響が残る程度が増加する。これらを考慮して初回候補セル130の間隔を決定する。 The square frame 132 is formed by combining cells and is defined to include an image 120. In this embodiment, the square frame 132 is specifically formed by cells adjacent to the image 120. The initial candidate cells 130 are set in the square frame 132 so as to face each other on a pair of sides in a direction along the bending direction. The interval between the initial candidate cells 130 is 4 cells in FIG. 6, but may be 3 cells or less. Further, 5 cells or more may be used. If the interval between the initial candidate cells 130 is narrow, there is an advantage that the planar restored image becomes an image close to the correct planar image, but the processing becomes complicated. On the contrary, if the interval between the initial candidate cells 130 is wide, the processing becomes simple, but the degree to which the influence of the curvature remains on the plane restored image increases. In consideration of these, the interval of the first candidate cell 130 is determined.

S73では、初回候補セル130と、その初回候補セル130に対して基準点設定方向に連続する同色のセルを含む同色セルブロックに対して誤り訂正がされているか否かを判断する。この同色セルブロックに含まれる少なくとも1つのセルが誤り訂正されている場合、S73の判断はYESになり、この同色セルブロックに含まれる全てのセルが誤り訂正されていない場合、S73の判断がNOになる。 In S73, it is determined whether or not the error is corrected for the first candidate cell 130 and the same color cell block including the cells of the same color that are continuous in the reference point setting direction with respect to the first candidate cell 130. If at least one cell included in the same color cell block is error-corrected, the judgment of S73 is YES, and if all the cells included in the same color cell block are not error-corrected, the judgment of S73 is NO. become.

S73の判断は、初回候補セル130ごとに行う。S73の判断がNOであれば図5の処理を終了し、図3のS80に進む。この場合、S72で設定した初回候補セル130がそのまま基準セルになり、基準セルのセル中心を基準点とする。 The determination of S73 is performed for each initial candidate cell 130. If the determination in S73 is NO, the process of FIG. 5 is terminated and the process proceeds to S80 of FIG. In this case, the initial candidate cell 130 set in S72 becomes the reference cell as it is, and the cell center of the reference cell is used as the reference point.

図6において、×印を付しているセルが誤り訂正されているセルである。上側の左から3番目の初回候補セル130に×印が付されている。したがって、図6の例では、上側の左から3番目の初回候補セル130についてはS73の判断がYESになる。S73の判断がYESであればS74に進む。 In FIG. 6, the cell marked with x is an error-corrected cell. The first candidate cell 130, which is the third from the left on the upper side, is marked with a cross. Therefore, in the example of FIG. 6, the judgment of S73 is YES for the first candidate cell 130, which is the third from the left on the upper side. If the judgment of S73 is YES, the process proceeds to S74.

S74では基準セル変更処理を行う。基準セル変更処理は、詳しくは図7に示す処理である。図7において、S741では、初回候補セル130がある列を画像120から離隔する方向に、画像120側から順に、単独セルがあるか否かを探索する。 In S74, the reference cell change process is performed. The reference cell change process is the process shown in FIG. 7 in detail. In FIG. 7, in S741, it is searched for whether or not there is a single cell in the direction in which the row in which the initial candidate cell 130 is located is separated from the image 120, in order from the image 120 side.

図8に、S741において単独セルを探索する探索範囲133を例示する。図8の例では、誤り訂正された同色セルブロックに含まれている初回候補セル130が画像120の上側にあるため、その初回候補セル130がある列を画像120から離隔する方向に延びる探索範囲133は、画像120から上方向に延びている。 FIG. 8 illustrates a search range 133 for searching a single cell in S741. In the example of FIG. 8, since the first candidate cell 130 included in the error-corrected same-color cell block is on the upper side of the image 120, the search range extending the column in which the first candidate cell 130 is located is separated from the image 120. The 133 extends upward from the image 120.

単独セルは、基準点設定方向において両隣が他色になっている1つのセルである。図8には、いくつかの暗セルと明セルを示している。図8において、探索範囲133内には、暗セルである単独セル134および明セルである単独セル135が存在する。 A single cell is a cell having other colors on both sides in the reference point setting direction. FIG. 8 shows some dark cells and light cells. In FIG. 8, within the search range 133, there are a single cell 134 which is a dark cell and a single cell 135 which is a light cell.

S724では、探索の結果、単独セルがあったか否かを判断する。S724の判断がYESであればS743に進む。S743では、探索できた単独セルに対して、画像120を挟んで対向する位置に基準セルが設定されているか否かを判断する。図8の例では、画像120の下側に設定されている初回候補セル130は、いずれも、誤り訂正されていないことから、そのまま基準セルになる。したがって、図8の例において、上側の左から3番目の初回候補セル130に対して図7の処理が実行された場合、S743の判断はYESになる。S743の判断がYESであればS744に進む。S744では、S741で探索できた単独セルのセル中心を基準点とする。 In S724, as a result of the search, it is determined whether or not there is a single cell. If the determination in S724 is YES, the process proceeds to S743. In S743, it is determined whether or not the reference cell is set at the position facing the single cell that can be searched with the image 120 sandwiched between them. In the example of FIG. 8, since none of the initial candidate cells 130 set on the lower side of the image 120 has been error-corrected, they serve as reference cells as they are. Therefore, in the example of FIG. 8, when the process of FIG. 7 is executed for the first candidate cell 130, which is the third from the left on the upper side, the determination of S743 is YES. If the determination in S743 is YES, the process proceeds to S744. In S744, the cell center of the single cell that can be searched in S741 is used as a reference point.

S742の判断がNOである場合、および、S743の判断がNOである場合には、S745に進む。S745では、探索範囲133を基準点設定方向の両側に拡張する。図9には、拡大後の探索範囲133を例示している。図9に示す探索範囲133は、初回候補セル130に対して基準点設定方向に隣接するセルを含み画像120に対して接近離隔方向に延びるセル列である。 If the determination in S742 is NO, and if the determination in S743 is NO, the process proceeds to S745. In S745, the search range 133 is extended to both sides in the reference point setting direction. FIG. 9 illustrates the expanded search range 133. The search range 133 shown in FIG. 9 is a cell row including cells adjacent to the initial candidate cell 130 in the reference point setting direction and extending in the approaching / separating direction with respect to the image 120.

また、図9に示すように、S745を実行する場合には、画像120を基準にして、S741で設定した探索範囲133とは反対側についても探索範囲133を設定する。そして、1対の探索範囲133について、S741と同様に単独セルを探索する。 Further, as shown in FIG. 9, when executing S745, the search range 133 is set on the side opposite to the search range 133 set in S741 with reference to the image 120. Then, a single cell is searched for the pair of search ranges 133 in the same manner as in S741.

図9に示す例は、図8とは異なるセルパターンである。図6、図8と同様、コード領域110内のセルの色は示していない。ただし、一点鎖線で囲んだセル色明示範囲136については、セルの色を示している。 The example shown in FIG. 9 has a cell pattern different from that in FIG. Similar to FIGS. 6 and 8, the color of the cell in the code area 110 is not shown. However, the cell color is shown for the cell color explicit range 136 surrounded by the alternate long and short dash line.

S746では、画像120を挟んで一対の単独セルが検出できたか否かを判断する。図9の例では、探索範囲133において、図8に対して右側に拡張された部分に、一対の単独セルが検出できている。 In S746, it is determined whether or not a pair of single cells could be detected with the image 120 in between. In the example of FIG. 9, in the search range 133, a pair of single cells can be detected in the portion expanded to the right with respect to FIG.

S746の判断がYESであればS744に進み、S744において、S743での探索の結果、抽出した一対の単独セルのセル中心を基準点とする。S746の判断がNOであればS747に進む。 If the determination in S746 is YES, the process proceeds to S744, and in S744, the cell center of the pair of single cells extracted as a result of the search in S743 is set as the reference point. If the judgment of S746 is NO, the process proceeds to S747.

S747では、探索範囲133に1対の独立連結セルがあるか否かを判断する。独立連結セルは、同色セルが基準点設定方向に連結している複数のセル(以下、連結セル)であり、かつ、探索範囲133内で同色セルの連結が終了している連結セルである。画像120を挟んで基準点設定方向において同じ位置に同じセル数の独立連結セルがある場合、1対の独立連結セルがあるとする。 In S747, it is determined whether or not there is a pair of independently connected cells in the search range 133. An independently linked cell is a plurality of cells in which cells of the same color are linked in the reference point setting direction (hereinafter referred to as linked cells), and is a linked cell in which the cells of the same color have been linked within the search range 133. When there are independently connected cells having the same number of cells at the same position in the reference point setting direction across the image 120, it is assumed that there is a pair of independently connected cells.

図10には、図9とは異なるセルパターンであり、拡張された探索範囲133に1対の単独セルはないが、1対の独立連結セルがある例を示している。図10の例では、暗セルが3つ連結した独立連結セル137、暗セルが2つ連結した独立連結セル138、明セルが2つ連結した独立連結セル139が、上下両側の探索範囲133にそれぞれ1対存在している。 FIG. 10 shows an example in which the cell pattern is different from that of FIG. 9, and there is no pair of single cells in the expanded search range 133, but there is a pair of independently linked cells. In the example of FIG. 10, the independently linked cell 137 in which three dark cells are connected, the independent linked cell 138 in which two dark cells are connected, and the independently linked cell 139 in which two light cells are connected are within the search range 133 on both the upper and lower sides. There is one pair of each.

S747の判断がYESであればS748に進む。S748では、S747で検出した1対の独立連結セルの中心を基準点に決定する。たとえば、暗セルが3つ連結した独立連結セル137であれば、その3つの暗セルの中心を基準点に決定する。 If the judgment of S747 is YES, the process proceeds to S748. In S748, the center of the pair of independently connected cells detected in S747 is determined as a reference point. For example, in the case of an independently connected cell 137 in which three dark cells are connected, the center of the three dark cells is used as a reference point for determination.

S747の判断がNOであればS749に進む。S749では、誤り訂正がされていることにより基準セルに採用されなかった初回候補セル130を含み、画像120に対して接近離隔する方向の列に、1セル分の段差エッジがあるか否かを判断する。エッジは、撮像画像の輝度値が急峻に変化する点であり、明セルと暗セルの境界である。段差エッジは、1組のエッジであって、その1組のエッジが同一列ではなく、1列ずれて存在しているものを意味する。1セル分の段差エッジは、1組の段差エッジ間が1セル分であることを意味する。 If the judgment of S747 is NO, the process proceeds to S747. In S749, whether or not there is a step edge for one cell in the row in the direction of approaching and separating from the image 120, including the initial candidate cell 130 that was not adopted as the reference cell due to error correction. to decide. The edge is a point where the luminance value of the captured image changes sharply, and is the boundary between the bright cell and the dark cell. A stepped edge means a set of edges in which the set of edges is not in the same row but is offset by one row. A step edge for one cell means that there is one cell between a set of step edges.

1組の段差エッジ間が1セル分であるか否かは、コード読み取り結果と、エッジの位置の比較から決定する。具体的には、データ読み取り処理により得られたセル種類の配列とエッジの位置とから、エッジが、基準点設定方向において端からそれぞれ何セル目と何セル目の境界であるかを求める。この境界の位置が1セル分ずれている場合に、1組の段差エッジ間が1セル分であるとする。 Whether or not there is one cell between one set of stepped edges is determined from the code reading result and the comparison of the edge positions. Specifically, from the cell type array obtained by the data reading process and the edge position, it is determined which cell number and cell number boundary the edge is from the end in the reference point setting direction, respectively. When the position of this boundary is deviated by one cell, it is assumed that one set of step edges is one cell.

図11には、図9、図10とは異なるセルパターンであり、拡張された探索範囲133に、1対の単独セルおよび1対の独立連結セルはないが、1セル分の段差エッジ140がある例を示している。図11において、セル色明示範囲136に、2つのエッジ141、142が示されている。エッジ141は画像120から数えて3列目に存在しており、エッジ142は画像120から数えて4列目に存在している。 In FIG. 11, the cell pattern is different from that in FIGS. 9 and 10, and the expanded search range 133 does not have a pair of single cells and a pair of independently connected cells, but a step edge 140 for one cell is provided. Here is an example. In FIG. 11, two edges 141 and 142 are shown in the cell color explicit range 136. The edge 141 exists in the third column counting from the image 120, and the edge 142 exists in the fourth column counting from the image 120.

S749の判断がYESであればS750に進む。S750では、S749で検出した1セル分の段差エッジ140を構成する2つのエッジ141、142の基準点設定方向の位置の中点を、基準点の基準点設定方向の座標とする。基準点の、基準点設定方向に直交する方向の座標は、段差エッジ140に含まれる座標であればよい。たとえば、エッジ141により定まるセルの中心、エッジ142により定まるセルの中心、これら2つのセルの境界のいずれかを、基準点の、基準点設定方向に直交する方向の座標とする。 If the judgment of S749 is YES, the process proceeds to S750. In S750, the midpoint of the positions of the two edges 141 and 142 constituting the stepped edge 140 for one cell detected in S749 in the reference point setting direction is set as the coordinates in the reference point setting direction of the reference point. The coordinates of the reference point in the direction orthogonal to the reference point setting direction may be any coordinates included in the step edge 140. For example, the center of the cell determined by the edge 141, the center of the cell determined by the edge 142, or the boundary between these two cells is set as the coordinates of the reference point in the direction orthogonal to the reference point setting direction.

S749の判断がNOである場合、S744、S748、S750のいずれかを実行した場合には図7の処理を終了する。図7の処理を終了することで図5の処理も終了することになるので、図3のS80に進む。 If the determination in S749 is NO, and if any one of S744, S748, and S750 is executed, the process of FIG. 7 is terminated. Since the process of FIG. 5 is also completed by ending the process of FIG. 7, the process proceeds to S80 of FIG.

図3のS80は復元処理部としての処理であり、湾曲復元処理を実行する。湾曲復元処理は、画像120が湾曲している場合に、その画像120を平面画像に復元する処理である。S80の湾曲復元処理あるいはS50の平面復元処理を実行して得た画像を、平面復元画像とする。湾曲復元処理は、詳しくは図12に示す処理である。 S80 in FIG. 3 is a process as a restoration process unit, and executes a curve restoration process. The curvature restoration process is a process of restoring an image 120 to a flat image when the image 120 is curved. An image obtained by executing the curve restoration process of S80 or the plane restoration process of S50 is referred to as a plane restoration image. The curvature restoration process is the process shown in FIG. 12 in detail.

図12において、S81では、分割領域150を作成する。分割領域150は、S70の基準点設定処理で設定した基準点を4つの頂点とする四角形の領域である。図13に、分割領域150の一例を示している。なお、図13に示す画像付き2次元コード100では、分割領域150の説明に不要な要素は省略している。図13には、基準点151が、画像120を挟んで上下に8つずつ設定されており、分割領域150は7つ形成されている。分割領域150は、画像120の一方の側において互いに隣接する2つの基準点151と、その2つの基準点151と画像120を挟んで対向する、互いに隣接する2つの基準点151を4つの頂点とする四角形の領域である。なお、これら分割領域150を全部組み合わせた領域が全体復元領域である。 In FIG. 12, in S81, the division area 150 is created. The division area 150 is a quadrangular area having four vertices of the reference points set in the reference point setting process of S70. FIG. 13 shows an example of the divided region 150. In the two-dimensional code 100 with an image shown in FIG. 13, elements unnecessary for the explanation of the divided region 150 are omitted. In FIG. 13, eight reference points 151 are set one above the other with the image 120 interposed therebetween, and seven divided regions 150 are formed. The divided region 150 has two reference points 151 adjacent to each other on one side of the image 120, and two reference points 151 adjacent to each other with the image 120 sandwiched between the two reference points 151 as four vertices. It is an area of a rectangle to be used. The area in which all the divided areas 150 are combined is the total restoration area.

S82では、S81で作成した分割領域150を1つずつ射影変換する。これにより、分割領域150は、各頂点がデータ読み取り処理で得たセルの配列から定まる、分割領域150を正面から見た形状に変換される。本実施形態では、変換後の形状は長方形であるので、変換後の分割領域150を長方形領域とする。 In S82, the divided regions 150 created in S81 are projected and transformed one by one. As a result, the divided area 150 is converted into a shape seen from the front of the divided area 150, in which each vertex is determined from the array of cells obtained by the data reading process. In the present embodiment, since the shape after conversion is rectangular, the divided region 150 after conversion is set as a rectangular area.

S83では、全部の分割領域150を変換したか否かを判断する。この判断がNOであればS82に戻り、まだ変換していない分割領域150を長方形領域に変換する。S83の判断がYESになった場合、S84に進む。 In S83, it is determined whether or not all the divided areas 150 have been converted. If this determination is NO, the process returns to S82, and the divided area 150 that has not yet been converted is converted into a rectangular area. If the determination in S83 is YES, the process proceeds to S84.

S84では、全部の長方形領域を合成する。これにより平面復元画像が作成できる。図14には、図2に示す画像120を、このようにして復元した平面復元画像を示している。 In S84, all the rectangular areas are combined. This makes it possible to create a plane restoration image. FIG. 14 shows a plane restored image obtained by restoring the image 120 shown in FIG. 2 in this way.

説明を図3に戻す。S50またはS80を実行後はS90に進む。S90では、S50またはS80で作成した平面復元画像を出力する。出力先は、画面、紙、他の処理装置などである。 The explanation is returned to FIG. After executing S50 or S80, the process proceeds to S90. In S90, the plane restoration image created in S50 or S80 is output. The output destination is a screen, paper, another processing device, or the like.

[実施形態のまとめ]
データ読み取り処理(S20)によりデータコード語の読み取りができたとき(S30:YES)、画像付き2次元コード100は各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、S10で撮像したコード撮像画像を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる(S60)。
[Summary of embodiments]
When the data code word can be read by the data reading process (S20) (S30: YES), the two-dimensional code 100 with an image can determine the arrangement of the cells in each column. Then, once the cell arrangement is determined, the cell coordinates in the code captured image can be corrected by comparing the cell arrangement with the cell arrangement that can be extracted by image analysis of the code captured image captured in S10. (S60).

そして、補正後のセル座標に基づいて、画像120の全体を含む全体復元領域を分割した分割領域150を定める点になる基準点151を設定する。このようにして基準点151を設定することから、画像付き2次元コード100が曲面に形成されていても、画像付き2次元コード100が平面にあるときの基準点151の間隔が分かる。したがって、このようにして基準点151を設定することで、湾曲復元処理(S80)では、分割領域150の基準点151を、画像付き2次元コード100が平面にあるときの位置に精度よく戻すことができる。 Then, based on the corrected cell coordinates, a reference point 151 is set as a point that determines the divided area 150 that is obtained by dividing the entire restored area including the entire image 120. Since the reference point 151 is set in this way, even if the two-dimensional code 100 with an image is formed on a curved surface, the distance between the reference points 151 when the two-dimensional code 100 with an image is on a plane can be known. Therefore, by setting the reference point 151 in this way, in the bending restoration process (S80), the reference point 151 of the divided region 150 is accurately returned to the position when the two-dimensional code 100 with an image is on a plane. Can be done.

しかも、湾曲復元処理(S80)では、画像120の全体を含む基準点151を設定して画像120を復元するのではなく、画像120を分割した分割領域150ごと復元処理を行う。したがって、画像付き2次元コード100が曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、その曲線は、画像120の全体を含む全体復元領域よりは分割領域150のほうが直線との乖離が少ない。そのため、分割領域150に含まれる基準点設定方向のセル列を、精度よく歪みの少ない配列に戻すことができる。よって、分割領域150を正面から見た画像に戻した長方形領域を合成して得られる平面復元画像は、画像120が精度よく平面画像に変換された画像になる。 Moreover, in the bending restoration process (S80), the image 120 is not restored by setting the reference point 151 including the entire image 120, but the restoration process is performed for each of the divided regions 150 in which the image 120 is divided. Therefore, because the two-dimensional code 100 with an image is formed on a curved surface, even if the straight line in the planar image is a curved line, the curve is divided from the entire restoration region including the entire image 120. The region 150 has less deviation from the straight line. Therefore, the cell sequence in the reference point setting direction included in the divided region 150 can be accurately returned to an array with less distortion. Therefore, the plane restored image obtained by synthesizing the rectangular region obtained by returning the divided region 150 to the image viewed from the front is an image in which the image 120 is accurately converted into a plane image.

また、基準点151を、画像120を挟んで設定しているので、画像120が斜め方向から撮像されている場合でも、分割領域150の各頂点を、画像付き2次元コード100を平面としたときの座標に正しく対応させることができる。 Further, since the reference point 151 is set across the image 120, even when the image 120 is imaged from an oblique direction, when each vertex of the divided region 150 is a plane with the two-dimensional code 100 with an image as a plane. Can be correctly associated with the coordinates of.

また、基準点151として、画像120を挟んで互いに向かい合う位置にある単独セル134、135のセル座標を設定するので、精度のよい基準点151を設定することができ、その結果、平面画像の復元精度が向上する。 Further, since the cell coordinates of the single cells 134 and 135 located opposite to each other across the image 120 are set as the reference point 151, the reference point 151 with high accuracy can be set, and as a result, the plane image is restored. Accuracy is improved.

また、単独セル134、135を、画像120に近い側から順に探索するので、基準点151を画像120に近い位置に決定でき、その結果、分割領域150を小さくすることができる。 Further, since the single cells 134 and 135 are searched in order from the side closer to the image 120, the reference point 151 can be determined at a position closer to the image 120, and as a result, the divided region 150 can be reduced.

また、初回候補セル130を基準点設定方向において等間隔に設定しつつ、かつ、初回候補セル130を含む同色セルブロックが誤り訂正されている場合には、基準セルを変更する。これにより、誤った位置を基準点151に設定してしまうことを抑制しつつ、基準点151を等間隔に設定できる。 Further, when the initial candidate cells 130 are set at equal intervals in the reference point setting direction and the same color cell block including the initial candidate cell 130 is erroneously corrected, the reference cell is changed. As a result, the reference points 151 can be set at equal intervals while suppressing the setting of an erroneous position to the reference point 151.

また、初回候補セル130を基準セルに設定しない場合、探索範囲133を、基準点設定方向に隣接するセル列に拡張して1対の単独セルを基準セルに設定する。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 When the initial candidate cell 130 is not set as the reference cell, the search range 133 is expanded to the cell row adjacent to the reference point setting direction, and a pair of single cells is set as the reference cell. By this process, it is possible to set the reference points at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.

また、初回候補セル130を基準セルに設定しない場合、探索範囲133に1対の独立連結セルを探索し、独立連結セルの中心を基準点に設定することもできる。この処理によっても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 Further, when the initial candidate cell 130 is not set as the reference cell, a pair of independently linked cells can be searched for in the search range 133, and the center of the independently linked cell can be set as the reference point. By this process as well, the reference points can be set at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.

また、初回候補セル130を基準セルに設定しない場合、初回候補セル130と同じセル列に、1セル分の段差エッジ140があれば、その段差エッジ140が備える2つのエッジ141、142間を1セルと見たて、基準点を設定することもできる。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。 Further, when the first candidate cell 130 is not set as the reference cell, if there is a step edge 140 for one cell in the same cell row as the first candidate cell 130, one between the two edges 141 and 142 of the step edge 140 is set. You can also set a reference point as if it were a cell. By this process, it is possible to set the distances between the reference points in the reference point setting direction at equal intervals while suppressing the setting of an erroneous position as the reference point.

以上、実施形態を説明したが、開示した技術は上述の実施形態に限定されるものではなく、次の変形例も開示した範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施できる。なお、以下の説明において、それまでに使用した符号と同一番号の符号を有する要素は、特に言及する場合を除き、それ以前の実施形態における同一符号の要素と同一である。また、構成の一部のみを説明している場合、構成の他の部分については先に説明した実施形態を適用できる。 Although the embodiments have been described above, the disclosed techniques are not limited to the above-described embodiments, and the following modifications are also included in the disclosed scope, and further, within a range other than the following that does not deviate from the gist. It can be changed in various ways. In the following description, the element having the same number as the code used so far is the same as the element having the same code in the previous embodiments, unless otherwise specified. Further, when only a part of the configuration is described, the embodiment described above can be applied to the other parts of the configuration.

<変形例1>
実施形態では、画像120の全部を平面復元処理をしていたが、画像120の一部のみを平面画像復元処理の対象としてもよい。画像付き2次元コードは、データ読み取り処理においてデータコード後の読み取りに成功した場合に復元処理を行う。データコード語に復元範囲を記録しておけば、画像のどの範囲を復元処理すればよいかを決定することができる。
<Modification 1>
In the embodiment, the entire image 120 is subjected to the plane restoration processing, but only a part of the image 120 may be the target of the plane image restoration processing. The two-dimensional code with an image performs a restoration process when the data code is successfully read after the data code is read. By recording the restoration range in the data code word, it is possible to determine which range of the image should be restored.

図15は、前述した実施形態とは異なる画像付き2次元コード200を示している。画像付き2次元コード200は、アンケートの回答を画像220としている。アンケートの回答は、チェック欄221を画像解析すればよく、チェック欄221が何に対するチェックであるかは、画像解析をする必要がない既知の事項である。 FIG. 15 shows a two-dimensional code 200 with an image, which is different from the above-described embodiment. In the two-dimensional code 200 with an image, the answer to the questionnaire is the image 220. For the answer to the questionnaire, the check column 221 may be image-analyzed, and what the check column 221 is for is a known matter that does not require image analysis.

そこで、チェック欄221を含む1つの分割領域150のみ、復元処理をして平面復元画像とする。この場合、分割領域150は1つのみであるが、画像220の一部を復元処理する領域とし、残りは復元処理をしない領域に分割していることになる。 Therefore, only one divided area 150 including the check column 221 is restored to obtain a plane restored image. In this case, although there is only one divided area 150, a part of the image 220 is used as an area to be restored, and the rest is divided into an area not to be restored.

この変形例1において、基準点および分割領域の設定方法は実施形態と同じとし、復元処理をする領域を、チェック欄221を含む分割領域150のみとすることができる。また、チェック欄221を含む1つの分割領域150のみを形成するように基準点を設定してもよい。 In this modification 1, the method of setting the reference point and the divided area is the same as that of the embodiment, and the area to be restored can be only the divided area 150 including the check column 221. Further, the reference point may be set so as to form only one divided region 150 including the check column 221.

この変形例1で示したように、画像220の一部の分割領域150のみを平面復元画像にするようにすれば、画像220の全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。 As shown in the first modification, if only a part of the divided area 150 of the image 220 is made into a plane restored image, the entire image 220 is divided into a plurality of divided areas, and the entire divided area is divided into a plurality of divided areas. The restoration processing time can be shortened as compared with the restoration to a flat image.

<変形例2>
実施形態において、S10で撮像したコード撮像画像は、画像横方向の中心から、画像左右方向の端に向かうほどセルの間隔が狭くなっていた。図16には、画像付き2次元コード100を撮像した別例を概念的に示している。図16では、画像付き2次元コード100は円筒体250に表されている。図16において一点鎖線は、コード読み取り装置10に対する円筒体250の正面の位置である。図16に示す例では、画像付き2次元コード100は、円筒体250の正面に位置していない。
<Modification 2>
In the embodiment, in the code captured image captured by S10, the cell spacing becomes narrower from the center in the lateral direction of the image toward the edge in the left-right direction of the image. FIG. 16 conceptually shows another example in which the two-dimensional code 100 with an image is imaged. In FIG. 16, the two-dimensional code 100 with an image is represented by the cylindrical body 250. In FIG. 16, the alternate long and short dash line is the position in front of the cylinder 250 with respect to the code reader 10. In the example shown in FIG. 16, the two-dimensional code 100 with an image is not located in front of the cylindrical body 250.

図17は、図16に示す画像付き2次元コード100の拡大図である。図17に示すように、画像付き2次元コード100は、円筒体250の正面から離れるほど、セルの間隔が狭くなっている。したがって、図16、図17に示す例では、セル座標補正後の各セルの中心座標の間隔は、図右側ほど狭くなる。コード撮像画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。 FIG. 17 is an enlarged view of the two-dimensional code 100 with an image shown in FIG. As shown in FIG. 17, in the two-dimensional code 100 with an image, the cell spacing becomes narrower as the distance from the front surface of the cylindrical body 250 increases. Therefore, in the examples shown in FIGS. 16 and 17, the distance between the center coordinates of each cell after the cell coordinate correction is narrowed toward the right side of the figure. In the code captured image, the portion where the interval between the cell coordinates is narrow is the portion where the distortion with respect to the plane image is large as compared with the portion where the interval between the cell coordinates is wide.

この例において、コード撮像画像において等間隔になるように基準点を設定してしまうと、図17の右側と左側とで、基準点間に含まれるセルの数が異なってしまう。しかし、同じコード撮像画像内でセルの大きさが異なって写っているとしても、等セル間隔で基準点を設定することで、セルの中心座標の間隔が狭いほど、基準点の間隔を狭くすることができる。 In this example, if the reference points are set so as to be evenly spaced in the code captured image, the number of cells included between the reference points differs between the right side and the left side of FIG. However, even if the cell sizes are different in the same code captured image, by setting the reference points at equal cell intervals, the narrower the distance between the center coordinates of the cells, the narrower the distance between the reference points. be able to.

これにより、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、コード撮像画像において一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。 As a result, it is possible to set a relatively small divided region for a portion having a large distortion. Therefore, it is possible to restore a plane image with higher accuracy than setting reference points at regular intervals in the code captured image.

<変形例3>
画像付き2次元コードは、実施形態に示したものに限られない。他にも、図18に示すように、1対の長方形状のコード領域310が画像320を挟んでいる画像付き2次元コード300でもよい。また、図19に示すように、画像420を小さくし、コード領域410を大きくした画像付き2次元コード400でもよい。画像420が小さい場合、画像420をデータコード語を記録する領域に重畳して、誤り訂正機能で、画像420により読み取れないデータコード語を復元するようにしてもよい。
<Modification 3>
The two-dimensional code with an image is not limited to that shown in the embodiment. Alternatively, as shown in FIG. 18, a two-dimensional code 300 with an image in which a pair of rectangular code regions 310 sandwich the image 320 may be used. Further, as shown in FIG. 19, a two-dimensional code 400 with an image may be used, in which the image 420 is made smaller and the code area 410 is made larger. When the image 420 is small, the image 420 may be superimposed on the area where the data code word is recorded, and the data code word that cannot be read by the image 420 may be restored by the error correction function.

さらに、図20に示すように、画像520がコード領域510に囲われていない画像付き2次元コード500が備えている画像520を復元処理の対象としてもよい。この場合、画像520を挟んで基準点を設定することはできない。そこで、コード領域510において画像520に近い位置に一列に基準点を配置し、隣接する基準点間を1辺として所定形状の分割領域を設定する。所定形状は、たとえば長方形であり、隣接する基準点間を短辺とする。この場合、長辺の延びる方向は、基準点を通り、その基準点を端とする2つの短辺の角度を2等分する方向とする。長辺の長さは、画像付き2次元コード500が撮像された大きさに基づいて決定すればよい。 Further, as shown in FIG. 20, the image 520 included in the two-dimensional code 500 with an image in which the image 520 is not surrounded by the code region 510 may be the target of the restoration process. In this case, the reference point cannot be set across the image 520. Therefore, reference points are arranged in a row at positions close to the image 520 in the code region 510, and a divided region having a predetermined shape is set with the adjacent reference points as one side. The predetermined shape is, for example, a rectangle, and the short side is between adjacent reference points. In this case, the extending direction of the long side is the direction that passes through the reference point and divides the angle of the two short sides having the reference point into two equal parts. The length of the long side may be determined based on the size of the image of the two-dimensional code 500 with an image.

<変形例4>
画像付き2次元コードが備えている画像の形状は四角形に限られない。画像付き2次元コードが備えている画像の形状は、四角形以外の多角形、丸型など、形状に制限はない。全体復元領域を、その画像を含む所定形状(たとえば四角形など)にすればよいからである。
<Modification example 4>
The shape of the image included in the two-dimensional code with an image is not limited to a quadrangle. The shape of the image included in the two-dimensional code with an image is not limited to a polygon such as a polygon other than a quadrangle or a round shape. This is because the entire restoration area may be formed into a predetermined shape (for example, a quadrangle) including the image.

<変形例5>
分割領域は、四角形である必要はなく、他の形状、たとえば、三角形でもよい。
<Modification 5>
The dividing area does not have to be a quadrangle and may be another shape, for example a triangle.

<変形例6>
コード読み取り装置として、スマートフォンを用いることもできる。
<Modification 6>
A smartphone can also be used as a code reading device.

10:コード読み取り装置 23:受光センサ(撮像部) 40:制御回路 100:画像付き2次元コード 110:コード領域 111:位置検出パターン 113:中点 114:中点 120:画像 130:初回候補セル 132:四角枠 133:探索範囲 134:単独セル 135:単独セル 136:セル色明示範囲 137、138、139:独立連結セル 140:段差エッジ 141:エッジ 142:エッジ 150:分割領域 151:基準点 200:画像付き2次元コード 220:画像 221:チェック欄 250:円筒体 300:画像付き2次元コード 310:コード領域 320:画像 400:画像付き2次元コード 410:コード領域 420:画像 500:画像付き2次元コード 510:コード領域 520:画像 S20:データ読み取り部 S60:セル座標補正部 S70:基準点設定部 S80:復元処理部 10: Code reader 23: Light receiving sensor (imaging unit) 40: Control circuit 100: Two-dimensional code with image 110: Code area 111: Position detection pattern 113: Midpoint 114: Midpoint 120: Image 130: First candidate cell 132 : Square frame 133: Search range 134: Single cell 135: Single cell 136: Cell color explicit range 137, 138, 139: Independently connected cell 140: Step edge 141: Edge 142: Edge 150: Divided area 151: Reference point 200: 2D code with image 220: Image 221: Check box 250: Cylindrical body 300: 2D code with image 310: Code area 320: Image 400: 2D code with image 410: Code area 420: Image 500: 2D with image Code 510: Code area 520: Image S20: Data reading unit S60: Cell coordinate correction unit S70: Reference point setting unit S80: Restoration processing unit

Claims (11)

コード領域(110)と画像(120)とが組み合わせられており、前記コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、前記データコード語を読み取るコード読み取り装置であって、
前記画像付き2次元コードを撮像可能な撮像部(23)と、
前記撮像部によって前記画像付き2次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部(S80)と、を備えるコード読み取り装置。
A code area (110) and an image (120) are combined, and the code area has an image 2 which is a two-dimensional code in which a data code word and an error correction code word are recorded by cells of a plurality of colors. A code reading device that reads the data code word from the dimension code (100).
An imaging unit (23) capable of capturing the two-dimensional code with an image and
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when the two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading the data code word.
Based on the corrected cell coordinates, a reference point setting unit (S70) for setting a reference point that is a point for defining a divided area obtained by dividing the entire restoration area including the entire image, and a reference point setting unit (S70).
A code reading device including a restoration processing unit (S80) that performs restoration processing for restoring the divided region determined based on the reference point to a flat image.
請求項1に記載のコード読み取り装置であって、
前記基準点設定部は、前記画像を挟んで前記コード領域が形成されている場合、前記画像を挟んで前記基準点を設定するコード読み取り装置。
The code reading device according to claim 1.
The reference point setting unit is a code reading device that sets the reference point by sandwiching the image when the code region is formed by sandwiching the image.
請求項1または2に記載のコード読み取り装置であって、
前記復元処理部は、画像全体の一部の前記分割領域を前記平面画像に復元するコード読み取り装置。
The code reading device according to claim 1 or 2.
The restoration processing unit is a code reading device that restores the divided region of a part of the entire image to the plane image.
請求項1~3のいずれか1項に記載のコード読み取り装置であって、
前記基準点設定部は、セル座標間の間隔が狭いほど前記基準点間の間隔を狭くするコード読み取り装置。
The code reading device according to any one of claims 1 to 3.
The reference point setting unit is a code reading device that narrows the distance between the reference points as the distance between the cell coordinates becomes narrower.
請求項2に記載のコード読み取り装置であって、
前記基準点設定部は、前記コード領域において、基準点設定方向が前記全体復元領域の一辺に沿った方向であり、前記基準点設定方向において両隣が他色になっている1つのセルである単独セル(134、135)が、前記画像を挟んで互いに向かい合う位置に存在している場合、前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。
The code reading device according to claim 2.
In the code area, the reference point setting unit is a single cell in which the reference point setting direction is along one side of the entire restoration area and both sides are in other colors in the reference point setting direction. A code reading device that sets the cell coordinates of the single cell to the reference point when the cells (134, 135) are located at positions facing each other across the image.
請求項5に記載のコード読み取り装置であって、
前記基準点設定部は、前記コード領域において前記画像に近いセルから順に、前記画像から離れる方向に前記単独セルを探索するコード読み取り装置。
The code reading device according to claim 5.
The reference point setting unit is a code reading device that searches for the single cell in the direction away from the image in order from the cell closest to the image in the code area.
請求項5または6に記載のコード読み取り装置であって、
前記基準点設定部は、前記基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル(130)を、前記基準点設定方向において等セル間隔に設定し、前記初回候補セルおよび前記初回候補セルに対して前記基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、前記初回候補セルのセル座標を前記基準点に設定するコード読み取り装置。
The code reading device according to claim 5 or 6.
The reference point setting unit sets initial candidate cells (130), which are cells first set as cell candidates for determining the reference point, at equal cell intervals in the reference point setting direction, and sets the initial candidate cells at equal cell intervals. And a code reading device that sets the cell coordinates of the first candidate cell to the reference point when the same color cell block including cells of the same color that are continuous in the reference point setting direction is not erroneously corrected for the first candidate cell.
請求項7に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、前記探索範囲を前記画像に近いセルから順に探索し、前記画像を挟んで互いに向かい合う位置に1対の前記単独セルがある場合に、その1対の前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。
The code reading device according to claim 7.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the initial candidate cell in the reference point setting direction and is close to and separated from the image. The cell row extending in the direction is set as the search range (133), the search range is searched in order from the cell closest to the image, and when there is a pair of the single cells at positions facing each other across the image, the pair thereof. A code reading device that sets the cell coordinates of the single cell of the above to the reference point.
請求項7または8に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、前記探索範囲に、同色セルが基準点設定方向に連結しており、かつ、前記探索範囲内で同色セルの連結が終了しているセルである独立連結セル(137、138、139)が、前記画像を挟んで、前記基準点設定方向において同じ位置にある場合、1対の前記独立連結セルの中心を、前記基準点に設定するコード読み取り装置。
The code reading device according to claim 7 or 8.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the initial candidate cell in the reference point setting direction and is close to and separated from the image. The cell row extending in the direction is set as the search range (133), and the cells of the same color are connected to the search range in the reference point setting direction, and the cells of the same color are connected within the search range. When the independently linked cells (137, 138, 139) are at the same position in the reference point setting direction across the image, a code reading device that sets the center of the pair of independently linked cells to the reference point. ..
請求項7~9のいずれか1項に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルを含み前記画像に対して接近離隔方向に延びるセル列に、相互に1列ずれて存在している2つのエッジであって、2つのエッジ間が1セル分である段差エッジ(140)がある場合、前記基準点設定方向において2つのエッジの中間に前記基準点を設定するコード読み取り装置。
The code reading device according to any one of claims 7 to 9.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit is displaced by one row from the cell row including the initial candidate cell and extending in the approaching and separating direction with respect to the image. A code for setting the reference point in the middle of the two edges in the reference point setting direction when there is a stepped edge (140) in which two edges exist and the distance between the two edges is one cell. Reader.
コード領域(110)と画像(120)とが組み合わせられており、前記コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、前記データコード語を読み取るために、前記画像付き2次元コードを撮像可能な撮像部(23)と、コンピュータ(40)とを備えたコード読み取り装置において、前記コンピュータを、
前記撮像部によって前記画像付き2次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部(S80)として機能させるためのコード読み取りプログラム。
A code area (110) and an image (120) are combined, and the code area has an image 2 which is a two-dimensional code in which a data code word and an error correction code word are recorded by cells of a plurality of colors. In a code reading device including an image pickup unit (23) capable of capturing the two-dimensional code with an image and a computer (40) in order to read the data code word from the dimension code (100), the computer is used.
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when the two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading the data code word.
Based on the corrected cell coordinates, a reference point setting unit (S70) for setting a reference point that is a point for defining a divided area obtained by dividing the entire restoration area including the entire image, and a reference point setting unit (S70).
A code reading program for functioning as a restoration processing unit (S80) that performs restoration processing for restoring the divided area determined based on the reference point to a flat image.
JP2018133406A 2018-07-13 2018-07-13 Code reader and code reader Active JP7091898B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018133406A JP7091898B2 (en) 2018-07-13 2018-07-13 Code reader and code reader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018133406A JP7091898B2 (en) 2018-07-13 2018-07-13 Code reader and code reader

Publications (2)

Publication Number Publication Date
JP2020013210A JP2020013210A (en) 2020-01-23
JP7091898B2 true JP7091898B2 (en) 2022-06-28

Family

ID=69169227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018133406A Active JP7091898B2 (en) 2018-07-13 2018-07-13 Code reader and code reader

Country Status (1)

Country Link
JP (1) JP7091898B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222517A (en) 1998-11-27 2000-08-11 Denso Corp Method and device for reading two-dimensional code, and recording medium
JP2004362053A (en) 2003-06-02 2004-12-24 Hitachi Information Technology Co Ltd Two-dimensional code reading device
JP2009129222A (en) 2007-11-26 2009-06-11 Denso Wave Inc Optical information reading apparatus
JP2012181757A (en) 2011-03-02 2012-09-20 Denso Wave Inc Optical information reader
JP2015135701A (en) 2015-04-15 2015-07-27 国立大学法人 鹿児島大学 Two-dimensional code, image reader, image reading method, program, and storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011049690A (en) * 2009-08-25 2011-03-10 Fuji Xerox Co Ltd Two-dimensional code generator, image forming system, two-dimensional code reader, computer program, and medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222517A (en) 1998-11-27 2000-08-11 Denso Corp Method and device for reading two-dimensional code, and recording medium
JP2004362053A (en) 2003-06-02 2004-12-24 Hitachi Information Technology Co Ltd Two-dimensional code reading device
JP2009129222A (en) 2007-11-26 2009-06-11 Denso Wave Inc Optical information reading apparatus
JP2012181757A (en) 2011-03-02 2012-09-20 Denso Wave Inc Optical information reader
JP2015135701A (en) 2015-04-15 2015-07-27 国立大学法人 鹿児島大学 Two-dimensional code, image reader, image reading method, program, and storage medium

Also Published As

Publication number Publication date
JP2020013210A (en) 2020-01-23

Similar Documents

Publication Publication Date Title
US9892300B2 (en) Two-dimensional code
US9451132B2 (en) System for capturing a document in an image signal
US6249008B1 (en) Code reader having replaceable optics assemblies supporting multiple illuminators
JP4186915B2 (en) Optical information reader
JP2012145559A (en) Marker
US20210097321A1 (en) Dual-pattern optical 3d dimensioning
JP4951735B2 (en) Optical information reader
WO2016166914A1 (en) Two-dimensional code, two-dimensional code record carrier, method for reading two-dimensional code, program for reading two-dimensional code, and device for reading two-dimensional code
JP5857712B2 (en) Stereo image generation apparatus, stereo image generation method, and computer program for stereo image generation
JP2007122243A (en) Optical information verification device
JP6246176B2 (en) Three-dimensional information code and three-dimensional information code reading device
JP7091898B2 (en) Code reader and code reader
JP5720623B2 (en) Two-dimensional code reader
US20230267628A1 (en) Decoding an image for active depth sensing to account for optical distortions
US20190295277A1 (en) Projection control device, marker detection method, and storage medium
EP3798569B1 (en) Dual-pattern optical 3d dimensioning
JP4871918B2 (en) Image conversion apparatus, image conversion method, image conversion program, and computer-readable recording medium recording the image conversion program
JP6368997B2 (en) Image clipping device and image clipping program
JP4314148B2 (en) Two-dimensional code reader
JP7167553B2 (en) Two-dimensional code
JP2018092270A (en) Reading device, reading program and reading method
JP5522093B2 (en) Optical information reader
JP6219911B2 (en) Two-dimensional code, image reading apparatus, image reading method and program
JP4378491B2 (en) Code image output device
JP4102742B2 (en) Optical information reader and image data analysis method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210303

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220530

R150 Certificate of patent or registration of utility model

Ref document number: 7091898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150