JP7200793B2 - 2D code reader - Google Patents
2D code reader Download PDFInfo
- Publication number
- JP7200793B2 JP7200793B2 JP2019059024A JP2019059024A JP7200793B2 JP 7200793 B2 JP7200793 B2 JP 7200793B2 JP 2019059024 A JP2019059024 A JP 2019059024A JP 2019059024 A JP2019059024 A JP 2019059024A JP 7200793 B2 JP7200793 B2 JP 7200793B2
- Authority
- JP
- Japan
- Prior art keywords
- dimensional code
- cell
- cells
- special
- error correction
- 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
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Description
本明細書で開示する技術は、二次元コード読取装置に関する。 The technology disclosed in this specification relates to a two-dimensional code reader.
特許文献1に示すように、複数の明色セルと複数の暗色セルとを二次元のマトリックス上に配置して構成される二次元コードに記録された情報を読み取るための二次元コードが知られている。この種の二次元コードに記録された情報を読み取るために、二次元コード読取装置が用いられる。このような二次元コード読取装置は、通常、二次元コードを撮像する撮像部と、撮像部によって撮像された二次元コードを表わすコード画像に基づいて、二次元コードに記録された情報のデコードを行う制御部と、を備える。
As shown in
特許文献1の技術では、読み取り対象である1個の二次元コードには、本来、一種類の情報のみが記録されることが予定されている。即ち、特許文献1の技術では、特定のセル構成を有する特定の二次元コードが二次元コード読取装置で読み取られる場合、読み取られた結果として出力されるデコード結果は、毎回、特定の二次元コードに予め記録された特定の情報であることが予定されている。
In the technique of
しかしながら、近年、1個の二次元コードを構成する複数のセルのうちの1個のセルを、意図的に明色と暗色の中間色で表示したり、意図的に明色部と暗色部とに分割して表示したりする特殊セルとした特殊二次元コードが、例えば不正の目的等で使用される事態が確認されている。このような特殊二次元コードが二次元コード読取装置によって読み取られる場合、読み取りの際の諸条件(例えば、特殊二次元コードが撮像される際の光の加減等)に応じて、特殊セルが、暗色セルとして読み取られる場合と、明色セルとして読み取られる場合とがある。そして、特殊セルが暗色セルとして読み取られる場合と、明色セルとして読み取られる場合とによって、二通りの異なるデコード結果が出力されてしまうことがある。その結果、特殊二次元コードが読み取られた際、二次元コード読取装置の利用者が意図しないデコード結果(例えば、有害サイトのURL等)が出力されてしまう等の不都合が発生する場合もある。 However, in recent years, one of a plurality of cells constituting one two-dimensional code is intentionally displayed in an intermediate color between a bright color and a dark color, or is intentionally displayed in a bright color portion and a dark color portion. It has been confirmed that special two-dimensional codes, which are divided into special cells and displayed, are used for fraudulent purposes, for example. When such a special two-dimensional code is read by a two-dimensional code reader, the special cell is Sometimes it is read as a dark cell, and sometimes it is read as a light cell. Then, depending on whether the special cell is read as a dark-colored cell or read as a bright-colored cell, two different decoding results may be output. As a result, when the special two-dimensional code is read, problems such as the output of decoding results not intended by the user of the two-dimensional code reader (for example, the URL of a harmful site, etc.) may occur.
本明細書では、読み取られた二次元コードが、読み取りの際の条件に応じて二通りの異なるデコード結果が出力され得る特殊二次元コードであるか否かを判別することができる技術を提供する。 This specification provides a technology that can determine whether or not a read two-dimensional code is a special two-dimensional code that can output two different decoding results depending on the reading conditions. .
本明細書が開示する二次元コード読取装置は、複数の明色セルと複数の暗色セルとを二次元のマトリックス上に配置して構成される二次元コードを撮像する撮像部と、制御部と、を備えている。前記制御部は、前記撮像部によって撮像された前記二次元コードを表わすコード画像に基づいて、前記二次元コードに記録された情報のデコードを行うデコード部と、前記デコードが行われたことによってデコード結果が取得される場合に、前記デコードの過程で誤り訂正処理が行われたか否かを判断する、第1の判断部と、前記誤り訂正処理が行われたと判断される場合に、前記デコード結果に対応する複数のコードワードのうち、前記誤り訂正処理が行われた範囲である訂正ワードを特定する、第1の特定部と、前記コード画像のうち、前記訂正ワードに対応する範囲を表わす対象部分を特定する、第2の特定部と、前記対象部分の全部がセルを表わす特徴を有しているか否かを判断する、第2の判断部と、を備える。 The two-dimensional code reader disclosed in this specification includes an imaging unit that captures a two-dimensional code configured by arranging a plurality of bright cells and a plurality of dark cells in a two-dimensional matrix, and a control unit. , is equipped with The control unit includes a decoding unit that decodes information recorded in the two-dimensional code based on the code image representing the two-dimensional code captured by the imaging unit, and a decoding unit that decodes information recorded in the two-dimensional code based on the code image captured by the imaging unit. a first judging unit for judging whether or not an error correction process has been performed in the decoding process when a result is acquired; and the decoding result when it is judged that the error correction process has been performed. A first specifying unit that specifies a correction word that is a range in which the error correction process has been performed, among a plurality of code words corresponding to , and an object that represents a range corresponding to the correction word in the code image. a second identification unit for identifying a portion; and a second determination unit for determining whether or not all of the target portions have characteristics indicative of cells.
上記の通り、近年、1個の二次元コードを構成する複数のセルのうちの1個のセルを、読み取り時の条件によって暗色セルと明色セルの二通りに読み取られ得る特殊セルとした特殊二次元コードが、例えば不正の目的等で使用される事態が確認されている。例えば、特殊セルは、意図的に暗色と明色の中間色で表示されたり、意図的に暗色部と明色部とに分割して表示されたりする。 As mentioned above, in recent years, one of the multiple cells that make up one two-dimensional code has become a special cell that can be read in two ways, a dark color cell and a light color cell, depending on the reading conditions. It has been confirmed that two-dimensional codes are used, for example, for fraudulent purposes. For example, a special cell may be intentionally displayed in an intermediate color between a dark color and a light color, or may be intentionally divided into a dark color portion and a light color portion and displayed.
一方、そのような特殊セルを含まない通常の二次元コードにおいても、印字の際の不具合等により、上記の特殊セルと同様の表示態様のセルが偶発的に含まれる場合がある。また、二次元コードが汚れたり削れたりすることにより、二次元コードを構成する複数のセルのうちの一部が、明色セル(又は暗色セル)に変わってしまう事態も起こり得る。ただし、通常であれば、二次元コード読取装置がそのような通常の二次元コードを読み取る場合、公知の誤り訂正処理が行われることにより、所定の最大誤り訂正許容率(例えば、7%、15%、25%、30%等)以下の割合の誤り(汚損、損傷、欠け等)は訂正される。そのため、通常であれば、何らかの事情で二次元コードに所定割合までの特殊セルが含まれた場合であっても、二次元コード読取装置は、誤り訂正処理を行った上で、予め二次元コードに記録された情報をデコード結果として出力することができる。 On the other hand, even in a normal two-dimensional code that does not include such special cells, there are cases where cells with the same display mode as the above special cells are accidentally included due to problems during printing. In addition, when the two-dimensional code is soiled or scraped, some of the cells forming the two-dimensional code may turn into bright cells (or dark cells). However, normally, when a two-dimensional code reading device reads such a normal two-dimensional code, a known error correction process is performed so that a predetermined maximum error correction tolerance rate (for example, 7%, 15 %, 25%, 30%, etc.) and less percentage errors (dirt, damage, chipping, etc.) are corrected. Therefore, normally, even if the two-dimensional code contains up to a predetermined percentage of special cells for some reason, the two-dimensional code reader performs error correction processing and reads the two-dimensional code in advance. can be output as a decoding result.
ここで、「最大誤り訂正許容率」とは、二次元コードが汚損等している場合においても、情報をデコードし得る許容率の最大値のことである。例えば最大誤り訂正許容率が25%である二次元コードの場合、二次元コードの情報記録領域に含まれる複数個のセルブロックのうちの25%が損傷している場合であっても、読取装置は当該二次元コードからデータをデコード可能であることを意味する。ここで言う1個の「セルブロック」は、8個のセルを単位とするセル群によって構成されるセル群単位である。デコードの過程では、1個の「セルブロック」からは1個のコードワードが抽出される。そして、最大誤り訂正許容率のレベルは、二次元コード毎に予め設定されている。二次元コードは、最大誤り訂正許容率を示すデータも含んでいる。従って、最大誤り訂正許容率のレベルが高いほど、二次元コードに誤りを含むセルブロックが含まれる割合が高い場合であってもデータを正しくデコードすることが可能となる。 Here, the "maximum error correction permissible rate" is the maximum value of the permissible rate at which information can be decoded even when the two-dimensional code is damaged. For example, in the case of a two-dimensional code with a maximum error correction tolerance of 25%, even if 25% of the plurality of cell blocks included in the information recording area of the two-dimensional code are damaged, the reading device means that data can be decoded from the two-dimensional code. One "cell block" referred to here is a cell group unit composed of a cell group having eight cells as a unit. In the decoding process, one codeword is extracted from one "cell block". The level of the maximum error correction tolerance rate is set in advance for each two-dimensional code. The two-dimensional code also contains data indicating the maximum error correction tolerance. Therefore, the higher the level of the maximum error correction tolerance rate, the more accurately the data can be decoded even if the two-dimensional code contains a high percentage of cell blocks containing errors.
しかしながら、本件発明者等の分析の結果、近年確認されている上記の特殊二次元コードは、特殊セルが暗色セルとして読み取られる場合と、明色セルとして読み取られる場合と、のどちらの場合においても、特殊セルを含むセルブロック以外の部分において、最大誤り訂正許容率に対応する数のセルブロック(即ち、最大誤り訂正許容率の限界値のセルブロック)に対する誤り訂正処理が実行されるよう、意図的かつ精密に設定されていることが判明した。その結果、特殊二次元コードが読み取られた際に、特殊セルを含むセルブロックが「誤り」として処理されることなく、特殊セルが暗色セル又は明色セルとして読み取られた状態でデコードが成功してしまう事態が発生する。その結果、特殊セルが暗色セルとして読み取られる場合と、明色セルとして読み取られる場合とによって、二通りの異なるデコード結果が出力されてしまう事態が起こる。その結果、特殊二次元コードが読み取られた際、二次元コード読取装置の利用者が意図しない読取結果(例えば、有害サイトのURL等)がデコード結果として出力されてしまう等の不都合が発生する場合もある。 However, as a result of the analysis by the inventors of the present invention, the above-mentioned special two-dimensional code, which has been confirmed in recent years, can be , In the part other than the cell block containing the special cell, the error correction processing is performed for the number of cell blocks corresponding to the maximum error correction allowable rate (that is, the cell block of the limit value of the maximum error correction allowable rate). It turned out to be accurate and precise. As a result, when the special two-dimensional code is read, the cell block containing the special cell is not treated as an "error", and decoding succeeds while the special cell is read as a dark or light color cell. A devastating situation occurs. As a result, depending on whether the special cell is read as a dark-colored cell or read as a bright-colored cell, two different decoding results may be output. As a result, when the special two-dimensional code is read, there may be inconveniences such as output of reading results not intended by the user of the two-dimensional code reading device (for example, the URL of a harmful site, etc.) as decoding results. There is also
これに対し、上記の構成を有する本明細書の二次元コード読取装置によると、制御部は、二次元コードを表わすコード画像に基づいてデコードを行うことでデコード結果が取得される場合に、デコードの過程で誤り訂正処理が行われたか否かを判断する。そして、制御部は、誤り訂正処理が行われたと判断される場合に、デコード結果に対応する複数のコードワードのうち、誤り訂正処理が行われた範囲である訂正ワードを特定する。そして、制御部は、コード画像のうち、訂正ワードに対応する範囲を表わす対象部分を特定し、その対象部分の全部がセルを表わす特徴を有しているか否かを判断する。ここで、「コードワード」は、二次元コードに含まれるセルブロック(即ち、8個のセルによって構成されるセル群)のデコード結果を表わす文字列(英数字の組合せ)である。 On the other hand, according to the two-dimensional code reading device of the present specification having the above configuration, the control unit, when the decoding result is obtained by decoding based on the code image representing the two-dimensional code, It is determined whether or not error correction processing has been performed in the process of . Then, when it is determined that the error correction processing has been performed, the control unit specifies the correction word that is the range in which the error correction processing has been performed, among the plurality of codewords corresponding to the decoding result. Then, the control section identifies the target portion representing the range corresponding to the correction word in the code image, and determines whether or not the entire target portion has the feature representing the cell. Here, a "codeword" is a character string (combination of alphanumeric characters) representing the decoding result of a cell block (that is, a cell group consisting of eight cells) included in the two-dimensional code.
対象部分の全部がセルを表わす特徴を有している場合、二次元コードの対象部分(即ち、誤り訂正処理が行われた範囲)には、汚損、損傷、欠け等が発生していなかった可能性が高い。即ち、対象部分は、誤り訂正処理が行われるように意図的に設けられた部分である可能性が高い。この場合、読み取られた二次元コードが、上記の特殊二次元コードである可能性が高いと言える。 If the entire target portion has characteristics representing cells, it is possible that the target portion of the two-dimensional code (that is, the range in which error correction processing was performed) did not have stains, damages, chippings, etc. highly sexual. That is, there is a high possibility that the target portion is a portion intentionally provided so that error correction processing is performed. In this case, it can be said that there is a high possibility that the read two-dimensional code is the special two-dimensional code described above.
一方、対象部分の少なくとも一部がセル以外のオブジェクトを表わす特徴を有していると判断される場合には、二次元コードの対象部分(即ち、誤り訂正処理が行われた範囲)には、汚損、損傷、欠け等が発生していた可能性が高い。即ち、対象部分は、誤り訂正処理が行われるように意図的に設けられた部分ではなかった可能性が高い。この場合、読み取られた二次元コードが、上記の特殊二次元コードではない可能性が高いと言える。 On the other hand, when it is determined that at least a part of the target portion has characteristics representing an object other than a cell, the target portion of the two-dimensional code (that is, the range in which error correction processing has been performed) includes: There is a high possibility that stains, damages, chips, etc. have occurred. In other words, there is a high possibility that the target portion was not a portion intentionally provided for error correction processing to be performed. In this case, it can be said that there is a high possibility that the read two-dimensional code is not the above special two-dimensional code.
従って、上記の二次元コード読取装置によれば、対象部分の全部がセルを表わす特徴を有しているか否かを判断することによって、読み取られた二次元コードが、読み取りの際の条件に応じて二通りの異なるデコード結果が出力され得る特殊二次元コードであるか否かを判別することができる。 Therefore, according to the two-dimensional code reader, the read two-dimensional code can be read according to the reading conditions by determining whether or not all of the target portions have characteristics representing cells. It is possible to determine whether or not the code is a special two-dimensional code that can output two different decoding results.
前記第2の判断部は、前記対象部分に基づいて前記対象部分内の各部の明度を示す出力波形を取得し、取得された前記出力波形が前記セルを表わす特徴を示すか否かを判断することにより、前記対象部分の全部が前記セルを表わす特徴を有しているか否かを判断してもよい。 The second determination unit obtains an output waveform indicating the brightness of each part in the target portion based on the target portion, and determines whether or not the obtained output waveform exhibits characteristics representing the cell. Thus, it may be determined whether all of the portions of interest have characteristics indicative of the cell.
二次元コードに含まれる各セル(明色セル、暗色セル)は、いずれも、所定の明度で表示されるとともに、所定長さの辺を有する正方形である。そのため、二次元コードの対象部分の各部の明度を示す出力波形は、明色セルと暗色セルとの間で明確な境界を有する。また、明色セルを表わす波形の長さ、暗色セルを表わす波形の長さも予め定められた範囲の長さを有する。即ち、汚損、損傷、欠け等が発生していない二次元コードの出力波形には所定の規則性がみられる。一方、二次元コードに汚損、損傷、欠け等が発生していた場合、出力波形は不規則になる。 Each cell (bright cell, dark cell) included in the two-dimensional code is displayed with a predetermined brightness and is a square having sides of a predetermined length. Therefore, the output waveform indicating the brightness of each part of the target portion of the two-dimensional code has a clear boundary between the bright color cells and the dark color cells. Also, the length of the waveform representing the light-colored cells and the length of the waveform representing the dark-colored cells also have lengths within a predetermined range. That is, a predetermined regularity is observed in the output waveform of a two-dimensional code that is free from contamination, damage, chipping, and the like. On the other hand, if the two-dimensional code is soiled, damaged, missing, or the like, the output waveform becomes irregular.
従って、上記の構成によると、二次元コード読取装置は、対象部分内の各部の明度を示す出力波形に基づいてセルを表わす特徴を示すか否かを判断することにより、読み取られた二次元コードが特殊二次元コードであるのか否かを適切に判別することができる。 Therefore, according to the above configuration, the two-dimensional code reader determines whether or not the output waveform indicating the brightness of each part in the target part exhibits the characteristics representing the cell, thereby reading the two-dimensional code. is a special two-dimensional code or not.
前記第2の判断部は、前記対象部分に基づいて前記対象部分内の各部の明度を二値化した二値化データを取得し、取得された前記二値化データが前記セルを表わす特徴を示すか否かを判断することにより、前記対象部分の全部が前記セルを表わす特徴を有しているか否かを判断してもよい。 The second determination unit acquires binarized data obtained by binarizing the brightness of each part in the target part based on the target part, and determines that the acquired binarized data represents the cell. It may be determined whether all of said portions of interest have characteristics indicative of said cell by determining whether or not they do.
二次元コードに含まれる各セル(明色セル、暗色セル)は、いずれも、所定の明度で表示されるとともに、所定長さの辺を有する正方形である。そのため、二次元コードの対象部分の各部の明度を二値化した二値化データは、明色セルと暗色セルとの間で明確な境界を有する。また、明色セルを表わす二値化データの上下左右の長さ、暗色セルを表わす二値化データの上下左右の長さ(データ数)も予め定められた範囲の長さを有する。即ち、汚損、損傷、欠け等が発生していない二次元コードの二値化データには所定の規則性がみられる。一方、二次元コードに汚損、損傷、欠け等が発生していた場合、二値化データは不規則になる。 Each cell (bright cell, dark cell) included in the two-dimensional code is displayed with a predetermined brightness and is a square having sides of a predetermined length. Therefore, the binarized data obtained by binarizing the brightness of each part of the target portion of the two-dimensional code has a clear boundary between the bright color cells and the dark color cells. Further, the vertical and horizontal lengths of the binarized data representing the light cells and the vertical and horizontal lengths (the number of data) of the binarized data representing the dark cells also have lengths within predetermined ranges. That is, the binarized data of the two-dimensional code, which is free from dirt, damage, chipping, etc., has a predetermined regularity. On the other hand, if the two-dimensional code is defaced, damaged, missing, or the like, the binarized data becomes irregular.
従って、上記の構成によると、二次元コード読取装置は、対象部分内の各部の明度を二値化した二値化データに基づいてセルを表わす特徴を示すか否かを判断することにより、読み取られた二次元コードが特殊二次元コードであるのか否かを適切に判別することができる。 Therefore, according to the above configuration, the two-dimensional code reader reads by determining whether or not the characteristic representing the cell is exhibited based on the binarized data obtained by binarizing the brightness of each part in the target part. Therefore, it is possible to appropriately determine whether or not the obtained two-dimensional code is a special two-dimensional code.
前記制御部は、さらに、(a)前記対象部分の全部が前記セルを表わす特徴を有していると判断される場合には、前記デコード結果を出力せず、又は、前記デコード結果とともに報知情報を出力し、(b)前記対象部分の少なくとも一部が前記セル以外のオブジェクトを表わす特徴を有していると判断される場合には、前記デコード結果を出力する、出力制御部を備えてもよい。 The control unit further (a) does not output the decoding result when it is determined that all of the target portions have characteristics representing the cell, or outputs broadcast information together with the decoding result. and (b) outputting the decoding result when it is determined that at least part of the target portion has a feature representing an object other than the cell. good.
上記の通り、対象部分の全部がセルを表わす特徴を有している場合、読み取られた二次元コードが、上記の特殊二次元コードである可能性が高いと言える。一方、対象部分の少なくとも一部がセル以外のオブジェクトを表わす特徴を有していると判断される場合には、読み取られた二次元コードが、上記の特殊二次元コードではない可能性が高いと言える。そのため、上記の構成によると、読み取られた二次元コードが、上記の特殊二次元コードである可能性が高い場合には、デコード結果を出力しない、又は、デコード結果とともに報知情報を出力することにより、二次元コード読取装置の利用者に、読み取られた二次元コードが特殊二次元コードである可能性が高いことを把握させることができる。 As described above, when all of the target portions have characteristics representing cells, it can be said that the read two-dimensional code is highly likely to be the above-mentioned special two-dimensional code. On the other hand, if it is determined that at least a part of the target portion has features representing an object other than a cell, it is highly probable that the read two-dimensional code is not the special two-dimensional code. I can say Therefore, according to the above configuration, when there is a high possibility that the read two-dimensional code is the above special two-dimensional code, the decoding result is not output, or the notification information is output together with the decoding result. , the user of the two-dimensional code reader can understand that the read two-dimensional code is highly likely to be a special two-dimensional code.
なお、上記の二次元コード読取装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ読取可能記録媒体も、新規で有用である。 A control method, a computer program, and a computer-readable recording medium storing the computer program for realizing the two-dimensional code reader are also novel and useful.
(第1実施例)
(二次元コード読取装置10の構成;図1)
図1に示す本実施例の二次元コード読取装置10は、例えば、端末機器のディスプレイや紙などに表示された二次元コード100を読み取って、二次元コード100に記録されたデータを取得するための装置である。図1の例では、読み取りの対象の二次元コード100は、QRコード(本件出願人の登録商標)である。二次元コード100は、複数の明色セルと複数の暗色セルとを二次元のマトリックス上に配置して構成されている。他の例では、読み取りの対象の二次元コード100は、他のマトリックス形式の二次元コードであってもよい。
(First embodiment)
(Configuration of two-
The two-
本実施例の二次元コード読取装置10は、例えば、ユーザが所持するスマートフォン等の端末装置である。図1に示すように、二次元コード読取装置10は、操作部12と、表示部14と、撮像部16と、制御部20と、メモリ22と、を備える。
The two-
操作部12は、1個以上のキーを含む。ユーザは、操作部12を操作して、様々な指示を二次元コード読取装置10に入力することができる。表示部14は、読み取られた二次元コード100のデコード結果を含む様々な情報を表示させるためのディスプレイである。また、操作部12と表示部14は、両者が一体に構成されたタッチパネルであってもよい。撮像部16は、所定の撮影可能範囲内の画像を撮影可能なCCDカメラである。撮像部16が二次元コード100を撮像することにより、二次元コード100を表わすコード画像C(図1、図2等参照)が取得される。
The
制御部20は、メモリ22に記憶されているプログラムに従って、後述のコード読取処理(図4参照)を含む様々な処理を実行する。本実施例では、制御部20がコード読取処理を実行することにより、二次元コード100に記録されたデータを取得し、出力することができる。メモリ22は、ROM(Read Only Memoryの略)、RAM(Random Access Memoryの略)等によって構成される。上記の通り、メモリ22は、OSプログラム、上述のコード読取処理を実行するための読取アプリケーションプログラム等、様々なプログラムを記憶している。さらに、メモリ22は、後述のコード読取処理の実行過程において生成される様々なデータを記憶するための一時記憶領域も有している。
The
(特殊二次元コードの構成及び仕組み;図2、図3)
上記の通り、二次元コード読取装置10は二次元コード100を読み取り対象とする。一方、近年、1個の二次元コードを構成する複数のセルのうちの1個のセルを、条件によって暗色セルと明色セルの二通りに読み取られ得る特殊セルとした二次元コード(以下では「特殊二次元コード」と呼ぶ)が、例えば不正の目的等で使用される事態が確認されている。ここで言う「特殊セル」は、意図的に暗色と明色の中間色で表示されたり、意図的に暗色部と明色部とに分割して表示されたりしている。このような特殊二次元コードが従来の二次元コード読取装置によって読み取られる場合、読み取りの際の諸条件(例えば、特殊二次元コードが撮像される際の光の加減等)に応じて、特殊セルが、明色セルとして読み取られる場合と、暗色セルとして読み取られる場合とが生じ得る。そして、特殊セルが明色セルとして読み取られる場合と、暗色セルとして読み取られる場合とによって、二通りの異なるデコード結果が出力されてしまうことがある。その結果、特殊二次元コードが読み取られた際、二次元コード読取装置の利用者が意図しない読取結果(例えば、有害サイトのURL等)がデコード結果として出力されてしまう等の不都合が発生する場合もある。
(Structure and mechanism of special two-dimensional code; Figures 2 and 3)
As described above, the two-
以下、図2、図3を参照して、このような特殊二次元コードの構成と、特殊二次元コードが読み取られた際に二通りの異なるデコード結果が出力される仕組みと、について説明する。以下では、本実施例の二次元コード読取装置10が、特殊二次元コードである二次元コード100を読み取る場合を例として説明する。図2の(a)は、二次元コード読取装置10の撮像部16によって撮像される二次元コード100(及びその二次元コード100を表わすコード画像C)の例である。即ち、図2の(a)の二次元コード100は、特殊二次元コードである。二次元コード100は、暗色(具体的には黒色)のセル(以下「暗色セル」と呼ぶ)と、明色(具体的には白色)のセル(以下「明色セル」と呼ぶ)との組み合わせによって構成されている。二次元コード100は、3箇所の角部に配置されたファインダパターン40と、1個のアライメントパターン42と、ファインダパターン40及びアライメントパターン42の中央に配置されたデータセル領域44と、を含む。
The configuration of such a special two-dimensional code and the mechanism by which two different decoding results are output when the special two-dimensional code is read will be described below with reference to FIGS. A case in which the two-
ファインダパターン40は、二次元コード100の読み取りの際に最初に認識される部分であり、二次元コード100の上下左右位置を特定するためのパターンである。ファインダパターン40の位置、大きさ、形状等は予め定められている。二次元コード読取装置10は、ファインダパターン40を認識することで、二次元コード100の向きに関わらず、どの方向からでも二次元コード100に記録されたデータを読み取ることができるようになる。アライメントパターン42は、歪みによって生じる各セルの位置ずれを補正するための部分である。
The
データセル領域44は、二次元コード100に記録されるデータを表現するための各種セルが含まれる領域である。データセル領域44には、データキャラクタ、誤り訂正符号等が含まれる。
The
ここで、「データキャラクタ」は、二次元コード100に記録されるデータを含む。データキャラクタによって表現されるデータには、デコード対象のデータ自身のほかに、最大誤り訂正許容率を示すデータも含まれる。最大誤り訂正許容率とは、二次元コード100が汚損等している場合においても、データをデコードし得る許容率の最大値(例えば、7%、15%、25%、30%等)を示す。例えば最大誤り訂正許容率が20%である情報コードの場合、二次元コード100のデータセル領域44を構成する44個のセルブロックCB(後述の図2の(b)参照。即ち、ファインダパターン40及びアライメントパターン42を除く部分)のうちの20%(この場合は9個)が損傷している場合であっても、二次元コード読取装置10は当該二次元コード100からデータをデコード可能であることを意味する。そして、「誤り訂正符号」は、二次元コード100を読み取った二次元コード読取装置10が、読み取ったデータの誤りを検出し、訂正することを可能にするための情報である。二次元コード読取装置10は、読み取ったデータと誤り訂正符号とを比較して、データに誤り(即ち、欠け等)があるか否かを判定することができるとともに、誤りがある場合に、誤り訂正符号に基づいて誤り部分を補完することができる。この機能は誤り訂正機能と呼ばれ、一般に知られている。また、この誤り訂正機能に基づいて誤り部分を補完する処理のことを以下では「誤り訂正処理」と呼ぶ場合がある。
Here, the “data character” includes data recorded in the two-
さらに、本実施例では、データセル領域44には、意図的に明色と暗色の中間色で表示させた1個の特殊セル50が含まれる。即ち、特殊二次元コードである二次元コード100は、1個の特殊セル50を含む。特殊セル50は、二次元コード読取装置10によって読み取られる場合、読み取りの際の諸条件(例えば、特殊二次元コードが撮像される際の光の加減等)に応じて、特殊セル50が、明色セルとして読み取られる場合と、暗色セルとして読み取られる場合がある。そして、特殊セル50が明色セルとして読み取られる場合と、暗色セルとして読み取られる場合とによって、二通りの異なるデコード結果が出力されてしまうことがある。この例では、特殊セル50が暗色セルとして読み取られる場合(パターンA)には、デコード結果「http://srv.prof.net/~lob」が出力される。一方、特殊セル50が明色セルとして読み取られる場合(パターンB)には、デコード結果「http://srv.prof.net/~lab」が出力される。パターンAのデコード結果と、パターンBのデコード結果は、ともにウェブサイトのURLを示すが、URLの一部が「a」と「o」とで異なっている。このように、特殊二次元コードである二次元コード100が読み取られると、二通りの異なるデコード結果が出力される。その結果、特殊二次元コードが読み取られた際、ユーザが意図しないデコード結果(例えば、有害サイトのURL等)が出力される場合もある。
Furthermore, in this embodiment, the
図2の(b)に示すように、データセル領域44に含まれる多数のセルは、8個のセルを単位とするセル群である複数のセルブロックCBを構成している。図2の(b)の例では、二次元コード100内には、合計44個のセルブロックCB(図2の(b)中のD1~D28、E1~E16)が設けられる。このうち、28個のセルブロックD1~D28は、上述のデータキャラクタに対応するセルブロックである。セルブロックD1~D28のそれぞれは、16進法で表される2桁のコードワード(例えば図3の(a)の「41」等)を表わしている。16個のセルブロックE1~E16は、上述の誤り訂正符号に対応するセルブロックである。セルブロックE1~E16のそれぞれも、16進法で表される2桁のコードワード(例えば図3の(a)の「E6」等)を表わしている。
As shown in FIG. 2(b), a large number of cells included in the
特殊二次元コードに基づいて二通りのデコード結果が出力される仕組み(図3の(a)(b)参照)について説明する前に、特殊セル50を含まない通常の二次元コードにおいて、一部のセルに特殊が生じた場合であっても、予定された(即ち一通りの)デコード結果が正しく出力される仕組みについて説明しておく。通常の二次元コードにおいて、印字の際の不具合等により、上記の特殊セル50と同様の表示態様を有するセルが偶発的に含まれる場合がある。また、二次元コードが汚れたり削れたりすることにより、二次元コードを構成する複数のセルのうちの一部が、暗色セル(又は明色セル)に変わってしまう事態も起こり得る。ただし、通常であれば、二次元コード読取装置10がそのような二次元コードを読み取る場合、上記の誤り訂正処理が行われることにより、所定の最大誤り訂正許容率(例えば、7%、15%、25%、30%等)以下の割合の誤り(汚損、損傷、欠け等)が訂正される。そのため、通常であれば、何らかの事情で二次元コードに所定割合までの特殊セルが含まれた場合であっても、二次元コード読取装置10は、誤り訂正処理を行った上で、予め二次元コードに記録されたデータ(一通りのデータ)をデコード結果として出力することができる。即ち、特定のセル構成を有する通常の二次元コードが二次元コード読取装置10で読み取られる場合、読み取られた結果として出力されるデコード結果は、毎回、通常の二次元コードに予め記録された一種類のデータであることが予定されている。
Before describing the mechanism for outputting two types of decoding results based on the special two-dimensional code (see (a) and (b) of FIG. 3), in a normal two-dimensional code that does not include the
これに対し、近年確認されている上記の特殊二次元コードは、データセル領域44に含まれる特殊セル50が暗色セルとして読み取られる場合(図3の(a)[パターンA]参照)と、明色セルとして読み取られる場合(図3の(b)[パターンB]参照)と、のどちらの場合においても、特殊セル50を含むセルブロック以外の部分において、最大誤り訂正許容率に対応する数のセルブロック(即ち、最大誤り訂正許容率の限界値のセルブロック)に対する誤り訂正処理が実行されるよう、意図的かつ精密に設定されていることが判明している。その結果、特殊二次元コードが読み取られた際に、特殊セル50を含むセルブロックが「誤り」として処理されることなく、特殊セル50が暗色セル又は明色セルとして読み取られてしまう事態が発生する。その結果、特殊セル50が暗色セルとして読み取られる場合と、明色セルとして読み取られる場合とによって、二通りの異なるデコード結果が出力されてしまう事態が起こる(図3の(a)(b)参照)。
On the other hand, the above special two-dimensional code, which has been confirmed in recent years, is when the
図3の(a)、(b)を参照して、このことをより詳細に説明する。図3の(a)は、特殊二次元コードである二次元コード100(図2参照)の特殊セル50が暗色セルとして読み取られる場合(パターンA)の具体例を示す。パターンAでは、デコードの過程で誤り訂正処理が実行されることにより、各セルブロックに対応する訂正後の44個のコードワードが取得される。図3の(b)は、同様の状況において、特殊セル50が明色セルとして読み取られる場合(パターンB)の具体例を示す。パターンBでは、誤り訂正処理が実行されることにより、各セルブロックに対応する訂正後の44個のコードワード(即ち、パターンAの場合とは部分的に異なる44個の訂正後のコードワード)が取得される。いずれもパターンでも、特殊二次元コードである二次元コード100に設定された最大誤り訂正許容率は20%である。即ち、デコードの際、44個のセルブロックCBのうち、最大9個のセルブロックまでの誤りを訂正可能である。
This will be explained in more detail with reference to FIGS. 3(a) and 3(b). FIG. 3(a) shows a specific example (pattern A) in which the
(パターンA;図3の(a))
特殊二次元コードである二次元コード100(図2参照)の特殊セル50が暗色セルとして読み取られると、誤り訂正処理が行われる前において、図3の(a)の上段に示すような44個のコードワードが取得される。44個のコードワードのうち、前半の28個のコードワード(「41」から「F7」まで)は、セルブロックD1~D28(即ちデータキャラクタに対応するセルブロック)に対応するコードワードである。このうち、網掛け表示で示されている「96」とその隣の「C6」が、英文字「o」に相当するコードワードである。そして、44個のコードワードのうち、後半の16個のコードワード(「E6」から「C6」まで)は、セルブロックE1~E16(即ち誤り訂正符号に対応するセルブロック)に対応するコードワードである。このうち、斜線ハッチング表示で示されている「71」が、特殊セル50が暗色セルとして読み取られたことで得られたコードワードである。
(Pattern A; (a) in FIG. 3)
When the
上記の通り、二次元コード100に設定された最大誤り訂正許容率は20%である。そして、特殊二次元コードである二次元コード100は、特殊セル50が暗色セルとして読み取られる場合と明色セルとして読み取られる場合のどちらの場合も、最大誤り訂正許容率に対応するセルブロックのコードワードに対する誤り訂正処理が実行されるように意図的かつ精密に設定される。そのため、二次元コード読取装置10は、44個のセルブロックCBに対応するコードワードのうち、9個のセルブロックに対応するコードワードの誤りを訂正する。図3の(a)の例では、下線を付した9個のコードワードが訂正される。パターンAでは、誤り訂正処理の対象の9個のコードワードは、いずれも、セルブロックE1~E16に対応するコードワードである。
As described above, the maximum error correction tolerance rate set for the two-
誤り訂正処理が行われたことにより、図3の(a)の下段に示すような44個のコードワードが取得される。図中の44個のコードワードのうち、訂正処理が行われたコードワード(以下では「訂正ワード」と呼ぶ場合がある)には、下線を付している。誤り訂正処理後においても、網掛け表示で示されている「96」とその隣の「C6」は、誤り訂正処理前と変わらず維持されている。即ち、「96」と「C6」は、誤り訂正処理前と変わらず英文字「o」を表わしている。この結果、二次元コード読取装置10は、誤り訂正処理後の44個のコードワードのうち、前半の28個のコードワード(「41」から「F7」まで)に基づいて、デコード結果「http://srv.prof.net/~lob」を出力することができる。
As a result of the error correction processing, 44 codewords as shown in the lower part of FIG. 3(a) are acquired. Of the 44 codewords in the figure, codewords that have undergone correction processing (hereinafter sometimes referred to as "correction words") are underlined. Even after the error correction processing, the shaded “96” and its adjacent “C6” are maintained unchanged from before the error correction processing. That is, "96" and "C6" represent the alphabetic character "o" as before the error correction processing. As a result, the two-
(パターンB;図3の(b))
特殊二次元コードである二次元コード100(図2参照)の特殊セル50が明色セルとして読み取られると、誤り訂正処理が行われる前において、図3の(b)の上段に示すような44個のコードワードが取得される。この場合も、前半の28個のコードワード(「41」から「F7」まで)は、セルブロックD1~D28(即ちデータキャラクタに対応するセルブロック)に対応するコードワードである。このうち、網掛け表示で示されている「96」とその隣の「C6」が、英文字「o」に相当するコードワードである。そして、44個のコードワードのうち、後半の16個のコードワード(「E6」から「C6」まで)は、セルブロックE1~E16(即ち誤り訂正符号に対応するセルブロック)に対応するコードワードである。このうち、斜線ハッチング表示で示されている「F1」が、特殊セル50が明色セルとして読み取られたことで得られたコードワードである。このように、特殊セル50が明色セルとして読み取られた場合に得られるコードワード(「71」)とは異なっている。
(Pattern B; (b) in FIG. 3)
When the
この場合も、二次元コード100に設定された最大誤り訂正許容率(20%)に応じた数(9個)のコードワードの誤りが訂正される。具体的には、図3の(b)のうち、下線を付した9個のコードワードが訂正される。パターンBで誤り訂正処理の対象となるコードワードは、パターンAの場合とは異なる。図3の(b)に示すように、パターンBでは、セルブロックE1~E16に対応する(誤り訂正符号に対応する)コードワードに対して誤り訂正処理が行われる他、セルブロックD1~D28に対応する(データキャラクタに対応する)コードワードのうち、英文字「o」を構成する部分である「C6」に対しても誤り訂正処理が行われる。
In this case as well, errors in the number (nine) of codewords corresponding to the maximum error correction tolerance (20%) set in the two-
誤り訂正処理が行われたことにより、図3の(b)の下段に示すような44個のコードワードが取得される。図中の44個のコードワードのうちの訂正ワードには、下線を付している。パターンBでは、網掛け表示で示されている「96」の隣の「C6」が「16」に訂正されている。「96」と「16」は、英文字「a」を表わす。この結果、二次元コード読取装置10は、誤り訂正処理後の44個のコードワードのうち、前半の28個のコードワード(「41」から「F7」まで)に基づいて、デコード結果「http://srv.prof.net/~lab」を出力することができる。このように、パターンAのデコード結果と、パターンBのデコード結果は、ともにウェブサイトのURLを示すが、URLの一部が「a」と「o」とで異なっている。
As a result of the error correction processing, 44 codewords as shown in the lower part of FIG. 3(b) are obtained. The correction words of the 44 codewords in the figure are underlined. In pattern B, "C6" next to "96" indicated by shading is corrected to "16". "96" and "16" represent the English letter "a". As a result, the two-
特殊二次元コードである二次元コード100が読み取られる(即ちデコードされる)場合、二次元コード読取装置10が上記のような処理を行うことにより、二通りのデコード結果が出力される。
When the two-
(コード読取処理;図4)
本実施例では、二次元コード読取装置10の制御部20は、図4のコード読取処理を実行することで、読み取られた二次元コード100が上記のような特殊二次元コードであるのか否かを判別することができる。以下、図4を参照して、本実施例の二次元コード読取装置10の制御部20が実行するコード読取処理について説明する。ユーザは、二次元コードを読み取るための読取アプリケーションプログラムが起動された二次元コード読取装置10の操作部12に、所定の読取指示を入力することができる。読取指示が入力される場合、制御部20は、図4のコード読取処理を開始する。
(Code reading process; Fig. 4)
In this embodiment, the
S10では、制御部20は、二次元コード100を表わすコード画像Cが撮像されることを監視する。コード読取処理が開始されると、制御部20は、撮像部16を起動させ、撮像範囲内の画像の撮像を開始する。この際、ユーザが、撮像部16の撮像範囲内に二次元コード100が含まれるように二次元コード読取装置10の位置及び角度を変化させることで、撮像部16に二次元コード100を撮像させることができる。これにより、撮像部16によって二次元コード100を表わす画像が撮像される。そして、制御部20は、撮像された画像内に、二次元コード100を表わす特徴(例えば、ファインダパターン40等)が存在するか否かを判断し、二次元コード100を表わす特徴が存在すると判断される場合に、コード画像Cが撮像されたと判断(即ちS10でYESと判断)し、S12に進む。
At S10, the
S12では、制御部20は、S10で撮像されたコード画像Cに基づいてデコードを試行する。即ち、制御部20は、公知のデコード手法に従って、コード画像Cが表す二次元コード100に記録されたデータのデコードを行う。その際、上記の通り、制御部20は、必要に応じて誤り訂正処理も行う(図2、図3参照)。
At S12, the
S14では、制御部20は、デコードが成功したか否かを判断する。S12で試行されたデコードの結果、デコード結果が取得されている場合、制御部20は、S14でYESと判断し、S16に進む。一方、何らかの事情(例えば、コード画像Cが表わす二次元コード100の破損度が、最大誤り訂正許容率を超えていた場合等)でデコード結果の取得に失敗した場合、制御部20は、S14でNOと判断し、コード読取処理をエラー終了する。
At S14, the
S16では、制御部20は、デコードの過程で、誤り訂正処理が行われたか否かを判断する。具体的には、S16では、まず、制御部20は、デコードの過程でメモリ22の一次記憶領域に記憶されたコードワード(図3参照)等を参照することにより、デコードの過程で誤り訂正処理が行われたか否かを判定する。その結果、デコードの過程で誤り訂正処理が行われたと判定される場合、制御部20は、S16でYESと判断し、S18に進む。一方、デコードの過程で誤り訂正処理が行われていないと判定される場合、制御部20は、S16でNOと判断し、S30に進む。
In S16, the
S18では、制御部20は、S10で撮像されたコード画像Cをメモリ22の一次記憶領域に記憶させる。
In S18, the
次いで、S20では、制御部20は、デコードの過程でメモリ22の一次記憶領域に記憶されたコードワード(図3参照)を参照し、誤り訂正処理が行われたコードワードである訂正ワードを特定する。
Next, in S20, the
次いで、S22では、制御部20は、メモリ22に記憶されたコード画像Cを参照し、コード画像Cのうち、S20で特定された訂正ワードに対応する対象部分を特定する。具体的には、S22では、まず、制御部20は、コード画像Cのうち、訂正ワードに対応するセルブロックを特定する。そして、制御部20は、コード画像Cのうち、特定されたセルブロックに対応する範囲を、対象部分として特定する。
Next, in S22, the
次いで、S24では、制御部20は、S22で特定された対象部分の分析を行う。本実施例では、S24において、まず、制御部20は、対象部分の各部の明度を示す出力波形を取得する。そして、制御部20は、取得された出力波形の分析を行い、対象部分の明色部と暗色部とが形成するパターンを特定する。
Next, in S24, the
続くS26では、制御部20は、S24で行われた分析の結果、対象部分の全部がセルであるのか否かを判断する。即ち、制御部20は、S24で取得された対象部分の各部の明度を示す出力波形が、対象部分内の全部についてセルを表わす特徴を有しているのか否かを判断する。この結果、対象部分の出力波形が、対象部分の全部についてセルを表わす特徴を有していると判断される場合(後述の図5参照)、制御部20は、S26でYESと判断し、S28に進む。反対に、対象部分の出力波形が、対象部分の少なくとも一部について、セル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有していると判断される場合(後述の図6参照)、制御部20は、S26でNOと判断し、S30に進む。
In subsequent S26, the
図5、図6を参照し、S26でYESと判断される場合、S26でNOと判断される場合のそれぞれの具体例を説明する。図5は、コード画像Cの対象部分TPがセル特有の特徴を有している場合(S26でYESと判断される場合)の一例である。図5の例では、コード画像Cのうち、太線で囲まれた部分が、訂正ワードに対応する対象部分TPである。図5に示すように、この例では、対象部分TPには目立った汚れ等が付着しておらず、対象部分TPは全部がセルによって構成されている。二次元コード100に含まれる各セル(明色セル、暗色セル)は、いずれも、所定の明度で表示されるとともに、所定長さの辺を有する正方形である。そのため、図5の例では、対象部分TPの出力波形は、明色部と暗色部との間に明確な境界を有する。また、明色部を表わす波形の長さ(図中の横幅)、暗色部を表わす波形の長さも予め定められたセルサイズに応じた長さを有する。対象部分TPの各部の出力波形が全てこのような特徴を有する場合、対象部分TPの全部がセルであると言える。その場合、制御部20は、S26でYESと判断し、S28に進む。
With reference to FIGS. 5 and 6, specific examples of cases where YES is determined in S26 and NO is determined in S26 will be described. FIG. 5 shows an example of the case where the target portion TP of the code image C has cell-specific features (when determined as YES in S26). In the example of FIG. 5, the part surrounded by the thick line in the code image C is the target part TP corresponding to the correction word. As shown in FIG. 5, in this example, the target portion TP is free of conspicuous dirt and the like, and the target portion TP is entirely composed of cells. Each cell (bright cell, dark cell) included in the two-
これに対し、図6は、コード画像Cの対象部分TPの少なくとも一部がセル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有している場合(S26でNOと判断される場合)の一例である。図6の例でも、コード画像Cのうち、太線で囲まれた部分が、訂正ワードに対応する対象部分TPである。図6に示すように、この例では、対象部分TPには大きな汚れ60が付着している。そのため、図6の例では、対象部分TPの出力波形は、明色部と暗色部との間に、セルとは明らかに異なる不規則な境界を有する部分を含む。また、少なくとも一部において、明色部を表わす波形の長さ(図中の横幅)、暗色部を表わす波形の長さも予め定められたセルサイズとは異なる長さを有する。対象部分TPの各部の出力波形の少なくとも一部がこのような特徴を有する場合、対象部分TPの全部がセルではない(即ち、対象部分TPの少なくとも一部がセル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有している)と言える。その場合、制御部20は、S26でNOと判断し、S30に進む。
On the other hand, FIG. 6 shows the case where at least a part of the target portion TP of the code image C has a feature representing an object other than the cell (for example, dirt, chipping, etc.) (when it is determined NO in S26). ) is an example. In the example of FIG. 6 as well, the part surrounded by the thick line in the code image C is the target part TP corresponding to the correction word. As shown in FIG. 6, in this example, a
S28では、制御部20は、取得済みのデコード結果とともに、読み取られた二次元コード100が特殊二次元コードであることに関係する報知情報を出力(例えば表示部14に表示)する。報知情報は、例えば、読み取られた二次元コード100に特殊な加工が施されている可能性が高く、デコード結果に留意するようユーザに報知するためのメッセージを含む。上記のS26でYESと判断される場合、デコードの過程で誤り訂正処理が行われているにも関わらず、コード画像Cのうち、誤り訂正処理の対象であった訂正ワードに対応する対象部分は、全てセルとしての特徴を有しており、汚損等している訳ではないことを意味する(図5参照)。即ち、対象部分TPは、誤り訂正処理が行われるように意図的に設けられた部分である可能性が高い。この場合、読み取られた二次元コード100が、上記の特殊二次元コードである可能性が高いと言える。S28において、制御部20が、取得済みのデコード結果に加えて報知情報を出力することにより、ユーザに対して、読み取られた二次元コード100が特殊二次元コードであった可能性が高いことを報知するとともに、デコード結果が予定通りの情報であるのか否かを確認するよう注意喚起をすることができる。
In S28, the
一方、S30では、制御部20は、取得済みのデコード結果を出力する。例えば、上記のS26でNOと判断される場合、デコードの過程で誤り訂正処理が行われた原因が、二次元コード100の汚損等であった可能性が高いことを意味する(図6参照)。つまり、この場合、読み取られた二次元コード100は、誤り訂正処理が行われるように意図的に構成されたコードではなく、通常の二次元コードであった可能性が高いと言える。この場合、S30において、制御部20は、取得済みのデコード結果を通常通り出力することができる。
On the other hand, in S30, the
以上、本実施例の二次元コード読取装置10の構成及び動作について説明した。上記の通り、制御部20は、二次元コード100を表わすコード画像Cに基づいてデコードを行うことでデコード結果が取得される場合に(図4のS14でYES)、デコードの過程で誤り訂正処理が行われたか否かを判断する(S16)。そして、制御部20は、誤り訂正処理が行われたと判断される場合(S16でYES)に、デコード結果に対応する複数のコードワードのうち、誤り訂正処理が行われた範囲である訂正ワードを特定する(S20)。そして、制御部20は、コード画像Cのうち、訂正ワードに対応する範囲を表わす対象部分を特定し、その対象部分の全部がセルを表わす特徴を有しているか否かを判断する(S26)。対象部分の全部がセルを表わす特徴を有している場合(S26でYES)、二次元コード100の対象部分(即ち、誤り訂正処理が行われた範囲)には、汚損、損傷、欠け等が発生していなかった可能性が高い。即ち、対象部分は、誤り訂正処理が行われるように意図的に設けられた部分である可能性が高い。この場合、読み取られた二次元コードが、上記の特殊二次元コードである可能性が高いと言える。一方、対象部分の少なくとも一部がセル以外のオブジェクトを表わす特徴を有していると判断される場合(S26でNO)には、二次元コードの対象部分には、汚損、損傷、欠け等が発生していた可能性が高い。即ち、対象部分は、誤り訂正処理が行われるように意図的に設けられた部分ではなかった可能性が高い。この場合、読み取られた二次元コードが、上記の特殊二次元コードではない可能性が高いと言える。従って、本実施例の二次元コード読取装置10によれば、対象部分の全部がセルを表わす特徴を有しているか否かを判断することによって、読み取られた二次元コード100が、読み取りの際の条件に応じて二通りの異なるデコード結果が出力され得る特殊二次元コードであるか否かを適切に判別することができる。
The configuration and operation of the two-
また、上記の通り、本実施例では、制御部20は、対象部分内の各部の明度を示す出力波形を取得し、取得された出力波形がセルを表わす特徴を示すか否かを判断することにより、対象部分の全部がセルを表わす特徴を有しているか否かを判断している(S26)。上記の通り、汚損、損傷、欠け等が発生していない二次元コード100の出力波形には所定の規則性がみられる。一方、二次元コード100に汚損、損傷、欠け等が発生していた場合、出力波形は不規則になる。従って、本実施例によると、二次元コード読取装置10は、対象部分内の各部の明度を示す出力波形に基づいてセルを表わす特徴を示すか否かを判断することにより、読み取られた二次元コード100が特殊二次元コードであるのか否かを適切に判別することができる。
Further, as described above, in the present embodiment, the
本実施例と請求項の対応関係を説明しておく。図4のS12の処理、S16の処理、S20の処理、S22の処理、S26の処理が、それぞれ、「デコード部」、「第1の判断部」、「第1の特定部」、「第2の特定部」、「第2の判断部」が実行する処理の一例である。S28及びS30の処理が「出力制御部」が実行する処理の一例である。 The correspondence relationship between this embodiment and the claims will be explained. The processing of S12, the processing of S16, the processing of S20, the processing of S22, and the processing of S26 in FIG. This is an example of processing executed by the "specifying unit" and the "second determining unit". The processing of S28 and S30 is an example of the processing executed by the "output control unit".
(第2実施例)
第2実施例の二次元コード読取装置10について、第1実施例と異なる点を中心に説明する。本実施例の二次元コード読取装置10も、その基本的な構成及び動作は第1実施例と共通する。ただし、本実施例では、図4のコード読取処理のS24における対象部分の分析の手法が第1実施例とは異なる。
(Second embodiment)
The two-
本実施例では、S24において、まず、制御部20は、対象部分の各部の明度を二値化した二値化データを取得する。そして、制御部20は、取得された二値化データ分析を行い、対象部分の明色部と暗色部とが形成するパターンを特定する。続くS26では、制御部20は、S24で行われた分析の結果、対象部分の全部がセルであるのか否かを判断する。即ち、制御部20は、S24で取得された対象部分の各部の明度を二値化した二値化データが、対象部分内の全部についてセルを表わす特徴を有しているのか否かを判断する。この結果、二値化データが、対象部分の全部についてセルを表わす特徴を有していると判断される場合(後述の図5参照)、制御部20は、S26でYESと判断し、S28に進む。反対に、二値化データが、対象部分の少なくとも一部について、セル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有していると判断される場合(後述の図6参照)、制御部20は、S26でNOと判断し、S30に進む。
In this embodiment, in S24, first, the
本実施例でも、図5、図6を参照し、S26でYESと判断される場合、S26でNOと判断される場合のそれぞれの具体例を説明する。図5は、コード画像Cの対象部分TPがセル特有の特徴を有している場合(S26でYESと判断される場合)の一例である。二値化データは、対象部分内を走査した上で、明色部を「0」、暗色部を「1」でそれぞれ表したデータである。上記の通り、図5の例では、対象部分TPには目立った汚れ等が付着しておらず、対象部分TPは全部がセルによって構成されている。二次元コード100に含まれる各セル(明色セル、暗色セル)は、いずれも、所定の明度で表示されるとともに、所定長さの辺を有する正方形である。そのため、図5の例では、対象部分TPの二値化データは、明色部を表わす「0」の領域と暗色部を表わす「1」の領域との間に明確な境界を有する。また、明色部を表わす「0」の領域の上下左右の長さ(データ数)、暗色部を表わす「1」の領域の上下左右の長さ(データ数)も予め定められたセルサイズに応じた長さ(データ数)を有する。対象部分TPの二値化データが全てこのような特徴を有する場合、対象部分TPの全部がセルであると言える。その場合、制御部20は、S26でYESと判断し、S28に進む。
In the present embodiment as well, with reference to FIGS. 5 and 6, specific examples of cases in which YES is determined in S26 and NO is determined in S26 will be described. FIG. 5 shows an example of the case where the target portion TP of the code image C has cell-specific features (when determined as YES in S26). The binarized data is data in which bright color portions are represented by "0" and dark color portions are represented by "1" after scanning the inside of the target portion. As described above, in the example of FIG. 5, the target portion TP has no conspicuous stains and the like, and the target portion TP is entirely composed of cells. Each cell (bright cell, dark cell) included in the two-
これに対し、図6は、コード画像Cの対象部分TPの少なくとも一部がセル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有している場合(S26でNOと判断される場合)の一例である。上記の通り、図6の例では、対象部分TPには大きな汚れ60が付着している。そのため、図6の例では、対象部分TPの二値化データは、明色部を表わす「0」の領域と暗色部を表わす「1」の領域との間に、セルとは明らかに異なる不規則な境界を有する部分を含む。また、少なくとも一部において、明色部を表わす「0」の領域の上下左右の長さ(データ数)、及び、暗色部を表わす「1」の領域の上下左右の長さ(データ数)も、予め定められたセルサイズとは異なる長さ(データ数)を有する。対象部分TPの二値化データの少なくとも一部がこのような特徴を有する場合、対象部分TPの全部がセルではない(即ち、対象部分TPの少なくとも一部がセル以外のオブジェクト(例えば、汚れや欠け等)を表わす特徴を有している)と言える。その場合、制御部20は、S26でNOと判断し、S30に進む。
On the other hand, FIG. 6 shows the case where at least a part of the target portion TP of the code image C has a feature representing an object other than the cell (for example, dirt, chipping, etc.) (when it is determined NO in S26). ) is an example. As described above, in the example of FIG. 6, a
上記の通り、汚損、損傷、欠け等が発生していない二次元コード100の二値化データには所定の規則性がみられる。一方、二次元コード100に汚損、損傷、欠け等が発生していた場合、二値化データは不規則になる。従って、本実施例でも、二次元コード読取装置10は、対象部分内の各部の明度を二値化した二値化データに基づいてセルを表わす特徴を示すか否かを判断することにより、読み取られた二次元コード100が特殊二次元コードであるのか否かを適切に判別することができる。
As described above, the binarized data of the two-
(第3実施例)
本実施例は、上記の第1及び第2実施例の変形例である。上記の第1及び第2実施例では、判別対象の特殊二次元コード(例えば図2の二次元コード100)は、明色と暗色の中間色で表示された1個の特殊セル50を含む。本実施例では、判別対象の特殊二次元コードは、図7の二次元コード200に示すように、セルを意図的に明色部と暗色部とに分割して表示した特殊セル150を含む。この場合も、読み取りの際の諸条件(例えば、特殊二次元コードが撮像される際の光の加減等)に応じて、特殊セル150が、暗色セルとして読み取られる場合と、明色セルとして読み取られる場合がある。上記の第1及び第2実施例で開示する二次元コード読取装置10は、図7に示すようなタイプの特殊二次元コード(即ち二次元コード200)を読み取る場合も、第1及び第2実施例と同様の動作を行うことができる。
(Third embodiment)
This embodiment is a modification of the first and second embodiments described above. In the first and second embodiments described above, the special two-dimensional code to be determined (for example, the two-
以上、本発明の各実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を採用してもよい。 Although each embodiment of the present invention has been described in detail above, these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above. For example, the following modifications may be adopted.
(変形例1)上記の各実施例では、制御部20は、図4のS26でYESと判断した場合、S28において、デコード結果とともに報知情報を出力している。これに限られず、制御部20は、図4のS26でYESと判断した場合には、デコード結果を出力させず、報知情報のみを出力するようにしてもよい。また、さらに他の例では、デコード結果と報知情報のどちらも出力しないようにしてもよい。
(Modification 1) In each of the above-described embodiments, when the
(変形例2)図4のコード読取処理における対象部分の分析の手法(S24)、及び、対象部分の全部がセルを表わす特徴を有しているか否かの判断手法(S26)は、上記の各実施例で説明した手法には限られず、他の任意の手法が採用されてもよい。従って、例えば、制御部20は、コード画像Cの対象部分の画像に含まれる特徴点を抽出し、抽出された特徴点がすべてセルの特徴を示すか否かを判断することにより、対象部分の全部がセルを表わす特徴を有しているかを判断するようにしてもよい。
(Modification 2) The method of analyzing the target portion (S24) in the code reading process of FIG. The method is not limited to the method described in each embodiment, and any other method may be adopted. Therefore, for example, the
(変形例3)上記の各実施例では、特殊二次元コードは、読み取りの際の条件によって二通りのデコード結果が出力され得るコードとして説明されている。これに限られず、特殊二次元コードは、読み取りの際の条件によって三通り以上のデコード結果が出力され得るコードであってもよい。また、特殊二次元コードは、そのような複数のデコード結果の出力を可能にするために、2個以上の特殊セルを含んでいてもよい。 (Modification 3) In each of the above-described embodiments, the special two-dimensional code is described as a code that can output two types of decoding results depending on the reading conditions. The special two-dimensional code is not limited to this, and may be a code that can output three or more decoding results depending on reading conditions. Also, the special two-dimensional code may contain two or more special cells in order to enable the output of such multiple decoding results.
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。 The technical elements described in this specification or in the drawings exhibit technical utility either singly or in various combinations, and are not limited to the combinations described in the claims at the time of filing. In addition, the techniques exemplified in this specification or drawings achieve multiple purposes at the same time, and achieving one of them has technical utility in itself.
10:二次元コード読取装置
12:操作部
14:表示部
16:撮像部
20:制御部
22:メモリ
100、200:二次元コード
40:ファインダパターン
42:アライメントパターン
44:データセル領域
50、150:特殊セル
60:汚れ
C:コード画像
CB:セルブロック
D1~D26:データキャラクタに対応するセルブロック
E1~E16:誤り訂正符号に対応するセルブロック
TP:対象部分
10: Two-dimensional code reader 12: Operation unit 14: Display unit 16: Imaging unit 20: Control unit 22:
Claims (4)
制御部と、を備えており、
前記制御部は、
前記撮像部によって撮像された前記二次元コードを表わすコード画像に基づいて、前記二次元コードに記録された情報のデコードを行うデコード部と、
前記デコードが行われたことによってデコード結果が取得される場合に、前記デコードの過程で誤り訂正処理が行われたか否かを判断する、第1の判断部と、
前記誤り訂正処理が行われたと判断される場合に、前記デコード結果に対応する複数のコードワードのうち、前記誤り訂正処理が行われた範囲である訂正ワードを特定する、第1の特定部と、
前記コード画像のうち、前記訂正ワードに対応する範囲を表わす対象部分を特定する、第2の特定部と、
前記対象部分の全部がセルを表わす特徴を有しているか否かを判断する、第2の判断部と、を備える、
二次元コード読取装置。 an imaging unit for imaging a two-dimensional code configured by arranging a plurality of light-colored cells and a plurality of dark-colored cells in a two-dimensional matrix;
a control unit and
The control unit
a decoding unit that decodes information recorded in the two-dimensional code based on the code image representing the two-dimensional code captured by the imaging unit;
a first determination unit that determines whether or not an error correction process has been performed in the decoding process when a decoding result is obtained by performing the decoding;
a first identifying unit that identifies a correction word, which is a range in which the error correction processing has been performed, among a plurality of codewords corresponding to the decoding result when it is determined that the error correction processing has been performed; ,
a second specifying unit that specifies a target portion representing a range corresponding to the correction word in the code image;
a second determination unit that determines whether all of the target portions have characteristics indicative of cells;
Two-dimensional code reader.
(a)前記対象部分の全部が前記セルを表わす特徴を有していると判断される場合には、前記デコード結果を出力せず、又は、前記デコード結果とともに報知情報を出力し、(b)前記対象部分の少なくとも一部が前記セル以外のオブジェクトを表わす特徴を有していると判断される場合には、前記デコード結果を出力する、出力制御部を備える、請求項1から3のいずれか一項に記載の二次元コード読取装置。 The control unit further
(a) not outputting the decoding result or outputting broadcast information together with the decoding result when it is determined that all of the target portions have characteristics representing the cell; 4. The method according to any one of claims 1 to 3, further comprising an output control unit for outputting the decoding result when it is determined that at least part of the target portion has a feature representing an object other than the cell. The two-dimensional code reader according to item 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019059024A JP7200793B2 (en) | 2019-03-26 | 2019-03-26 | 2D code reader |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019059024A JP7200793B2 (en) | 2019-03-26 | 2019-03-26 | 2D code reader |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020160759A JP2020160759A (en) | 2020-10-01 |
JP7200793B2 true JP7200793B2 (en) | 2023-01-10 |
Family
ID=72643433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019059024A Active JP7200793B2 (en) | 2019-03-26 | 2019-03-26 | 2D code reader |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7200793B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7415671B2 (en) * | 2020-03-05 | 2024-01-17 | 富士通株式会社 | Information processing program, information processing device, and information processing method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350568A1 (en) | 2015-05-27 | 2016-12-01 | Victor Zazzu | Two-dimensional (2-d) code generating method, detecting method, detecting apparatus, and anti-counterfeit label |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4858355B2 (en) * | 2007-08-10 | 2012-01-18 | 株式会社デンソーウェーブ | Authenticity determination system and electric lock control system |
-
2019
- 2019-03-26 JP JP2019059024A patent/JP7200793B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350568A1 (en) | 2015-05-27 | 2016-12-01 | Victor Zazzu | Two-dimensional (2-d) code generating method, detecting method, detecting apparatus, and anti-counterfeit label |
Also Published As
Publication number | Publication date |
---|---|
JP2020160759A (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4180497B2 (en) | Code type discrimination method and code boundary detection method | |
JP4531809B2 (en) | Code image processing method | |
AU2006227490B2 (en) | Apparatus and process for two-stage decoding of high-density optical symbols | |
US8326037B1 (en) | Methods and apparatus for locating an object in an image | |
US6758399B1 (en) | Distortion correction method in optical code reading | |
US20140097246A1 (en) | Method and device for batch scanning 2d barcodes | |
US20060118632A1 (en) | Barcode scanner decoding | |
TW201428635A (en) | Two-dimensional code | |
US20150347886A1 (en) | High capacity 2d color barcode and method for decoding the same | |
US20140291402A1 (en) | Stack barcode reader and stack barcode reading method | |
JP2004185058A (en) | Bar code recognition method and decoding processor for recognition | |
JP7200793B2 (en) | 2D code reader | |
JP4335229B2 (en) | QR code recognition device, QR code recognition device control method, QR code recognition device control program, and computer-readable recording medium recording the same | |
JP2020160961A (en) | Two-dimensional code reading device, computer program, and two-dimensional code | |
JP4652201B2 (en) | Bar code symbol information reading method and bar code symbol information reading device | |
JP4398498B2 (en) | Code boundary detection method | |
JP4874706B2 (en) | QR code reader | |
JP2011076208A (en) | Method and device for reading stacked bar code information | |
JP2008021009A (en) | Bar code recognition device, method and program | |
JP6393226B2 (en) | Stacked bar code reader and stack bar code reading method | |
JP2007328672A (en) | Two-dimensional code decoder, two-dimensional code decoding method, and program | |
JP6273807B2 (en) | Optical code with image and method for producing the same | |
JP4403063B2 (en) | Symbol information reading method and symbol information reading apparatus | |
JP2012083836A (en) | Stacked barcode reader and stacked barcode reading method | |
JP3730716B2 (en) | Bar code reader |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220119 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221116 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20221122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7200793 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |