情報コード読取装置
【課題】情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読に加え、その指示位置の特定を正確に行い得る情報コード読取装置を提供する。
【解決手段】情報コード読取装置20では、情報コード1の一部が物体で隠された画像が取得された場合に、その取得された情報コード1のコード画像において誤り発生ブロックを検出する。そして、その検出された誤り発生ブロックの誤りを、誤り訂正コードブロックの記録内容に基づいて訂正し、デコード処理を行う。更に、指示位置検出手段が設けられ、誤り検出手段によって検出された誤り発生ブロックの領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、撮像されたコード画像において物体による指示位置を検出している。
【解決手段】情報コード読取装置20では、情報コード1の一部が物体で隠された画像が取得された場合に、その取得された情報コード1のコード画像において誤り発生ブロックを検出する。そして、その検出された誤り発生ブロックの誤りを、誤り訂正コードブロックの記録内容に基づいて訂正し、デコード処理を行う。更に、指示位置検出手段が設けられ、誤り検出手段によって検出された誤り発生ブロックの領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、撮像されたコード画像において物体による指示位置を検出している。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【0002】
従来から用いられているQRコード(登録商標)などの二次元コードは、複数のセルがマトリックス状に配置された構成をなしており、コード領域内にデータコードワードを表わした複数のデータコードブロックと、各データコードブロックの誤り訂正に用いる誤り訂正コードワードを表わした複数の誤り訂正コードブロックとが設けられた構成が一般的である。
【0003】
この種の二次元コードでは、データコードワードとして、例えば、数ビット(例えば8ビット)の情報を一単位としてデータを構成する単位要素を表わしており、また、誤り訂正コードワードとしては、そのデータコードワードの誤り訂正を行うための符号を数ビット(例えば8ビット)の情報で表わしたものなどが用いられている。なお、誤り訂正コードワードとしては、例えば、リードソロモン方式によって誤り訂正を行うための符号(RS符号)などが広く用いられている。なお、このような二次元コードに関連する技術としては特許文献1のようなものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−254037公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年では、非常に広範な分野で情報コードが使用されており、情報コードの利用分野も多様化しつつある。他方、情報コードも高機能化が進展しつつあり、それに伴い、情報コードのより高度な利用方法が求められつつある。例えば、最近では、情報コードの大容量化が進んでいるが、このような大容量の情報コードの内部に様々な種類のデータを記録しておく場合、このような情報コードの記録内容の中から特定位置のデータのみを選択的に取り出す要望が想定される。また、ユーザが情報コードの特定位置を指示したときに、その指示位置を正確に把握することが求められることがある。
【0006】
本発明は、上述した課題を解決するためになされたものであり、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読に加え、その指示位置の特定を正確に行い得る情報コード読取装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明は、
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体で隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする。
【発明の効果】
【0008】
請求項1の発明では、情報コードの一部が物体で隠された画像が画像取得手段によって取得された場合に、誤り検出手段により、画像取得手段によって取得された情報コードのコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて誤り訂正手段によって訂正され、その上で、デコード手段によってデコード処理が行われるようになっている。更に、指示位置検出手段が設けられ、誤り検出手段によって検出された誤り発生ブロックの領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、撮像手段によって撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コードを、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コードの用途の拡大を図ることができる。
【0009】
請求項2の発明では、情報コードに記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段が設けられている。
この構成によれば、情報コードを入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【0010】
請求項3の発明では、指示位置検出手段は、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、誤り検出手段によって検出された1又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、を備えている。そして、遠距離ブロック検出手段によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【0011】
請求項4の発明では、隣接辺検出手段は、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、遠距離ブロック検出手段は、誤り検出手段によって検出された1又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【0012】
請求項5の発明では、読取対象となる情報コードは、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【0013】
請求項6の発明では、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロックが全て暗色(例えば黒)で汚れる場合や、全て明色(例えば白)で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【0014】
請求項7の発明では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている。このようにすると、各データ要素を8ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【0015】
請求項8の発明では、誤り訂正コードワードの数が、データコードワードの数の2倍よりも少なくなっている。このようにすると、1つのデータコードワードの誤り訂正を2つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【図面の簡単な説明】
【0016】
【図1】図1は、第1実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。
【図2】図2は、図1の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。
【図3】図3は、図1の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【図4】図4は、第1実施形態に係る情報コード読取装置を概略的に例示するブロック図である。
【図5】図5は、第1実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。
【図6】図6は、図5の読取処理における指示位置検出処理の流れを例示するフローチャートである。
【図7】図7は、第1実施形態に係る情報コード読取装置で読み取る情報コードについての図1とは異なる一例を概念的に示す概念図である。
【図8】図8は、図7の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。
【図9】図9は、図8の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。
【図10】図10(A)は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図10(B)は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【図11】図11は、データコードワードと誤り検出用パリティの組み合わせを複数例示して説明する説明図である。
【発明を実施するための形態】
【0017】
[第1実施形態]
以下、本発明を具現化した第1実施形態について、図面を参照して説明する。
(情報コードの構成)
本実施形態に係る情報コード読取装置20は、以下で説明する情報コード1と共に情報コード読取システムを構成するものである。まず、図1〜図3を参照して本実施形態に係る情報コードの構成を説明する。
図1は、第1実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。図2は、図1の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。図3は、図1の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【0018】
情報コード1は、図1に示すように、複数の情報表示単位セル(以下、単に「セル」とも称する)Cがマトリックス状に配列されてなるものであり、複数のコードブロック10と、第1の特定パターン2と、第2の特定パターン3、4と、第3の特定パターン5とを備えた構成をなしている。この情報コード1は、外形が正方形状に構成されたセルCが集合してマトリックス状に配置されたセル集合体として構成されており、図1の例では、セル数が縦横同数(11セル×11セル)となる配列で構成されている。また、情報コード1を構成するコード領域(セルCが配置される領域)は、外形が矩形状の矩形領域とされており、図1の代表例では外形が正方形状の正方形領域とされている。なお、図1では、一部のセルのみについて符号Cを付しており、他のセルの符号は省略している。
【0019】
情報コード1は、色彩又は濃度又は輝度の異なる複数種類のセルが配列されてなるものであり、図1に示す代表例では、色彩又は濃度又は輝度の異なる2種類のセル(具体的には、黒色セル及び白色セル)が用いられて情報コード1が構成されている。なお、図1等では黒色セルについては符号Cbで示し、白色セルについては符号Cwで示すこととする。
【0020】
コードブロック10は、複数のセルCが集合してなるものであり、図1の情報コード1では、データコードブロック11と、誤り訂正コードブロック12とに分けられている。なお、図1では、データコードブロック11、誤り訂正コードブロック12、誤り訂正用パリティのブロック15の領域をそれぞれハッチング、破線枠、網掛けにて概念的に示しているが、これら領域は、具体的には図2のように黒色セルCb或いは白色セルCwが配列された構成をなしている。
【0021】
データコードブロック11は、例えば図2のような構成をなしており、デコードの対象となるデータの各データ要素を符号化した符号化データ(データコードワード)を複数のセルによって表現したブロックとして構成されている。このデータコードブロック11を構成する各セルは、予め定められた複数種類のセル(図2の例では黒色セルCbと白色セルCwの二種類)の中からいずれかの種類のセルが選択されて用いられており、図2の例では、これら複数(図2では8つ)のセルがマトリックス状に集合した構成をなしている。なお、セル配列やブロック形状は図2の構成に限られず、様々な配列、形状とすることができる。また、一部のデータコードブロック11については2以上の領域に跨って構成されていてもよい。
【0022】
また、各データコードブロック11は、全体として、デコードすべき符号化データ(データコード語)に対応したセルの配列で構成されるようになっている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「0」に対して白色セル、データ値「1」に対して黒色セルがそれぞれ対応付けられている。図2の例では、データコードブロック11によって「00000011」という8ビットの値を8つのセルによって表現している。このデータコードブロック11では、右上から下方側へ順番に1番目、2番目、3番目、4番目のセルが縦に続き、左下から上方側に順番に5番目、6番目、7番目、8番目のセルが縦に続いている。
【0023】
また、本実施形態では、各データコードブロックを構成する各データコードワードに対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティのビット数は、データコードワードのビット数よりも少なくされており、図1、図2等に示す代表例では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている(即ち、データコードワードを表現するデータコードブロック11が8つのセルによって構成されており、誤り検出用パリティを表現するブロック15が2つのセルによって構成されている)。なお、図1では、データコードブロック11とそれに対応する誤り検出用パリティの組み合わせを太線枠にて概念的に示している。
【0024】
誤り訂正コードブロック12は、各データコードブロック11にて表現される各データコードワードの誤り訂正に用いるコードブロックであり、例えば各データコードブロック11に対応して1つずつ設けられている。この誤り訂正コードブロック12は、対応するデータコードブロック11のデータコードワードに基づいて所定方式で生成された誤り訂正コードワードを符号化して表現するものであり、誤り訂正コードワードを符号化したデータを複数個のセルCによって表現している。
【0025】
本実施形態では、後述する誤り訂正方法により、誤りが生じているデータコードブロック11を特定した上で、その誤りが生じているデータコードブロック11に対応する1つの誤り訂正コードブロック12によって誤り訂正(消失訂正)を行うものとされており、誤り訂正コードブロック12の内容(即ち誤り訂正コードワード)は、このような消失訂正が可能な構成であれば公知の様々な方式の符号を用いることができる。本実施形態の代表例では、その一例として公知のリード・ソロモン誤り訂正方式を用いており、具体的には、データコードワード毎に各データコードワードと同じビット数でリード・ソロモン符号(RS符号)が生成され、各データコードワードに対応する各RS符号をそれぞれ誤り訂正コードブロック12によって表現している。
【0026】
(誤り検出用パリティの内容)
次に、誤り検出用パリティについて説明する。
上述したように、情報コード1では、データコードブロック11毎に、各データコードブロック11の誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を所定の数(具体的には、例えば誤り検出用パリティのビット数で表現可能な数)で割った剰余の値とされている。
【0027】
例えば、図1、図2に示すように、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされる場合、検出用パリティで表現可能な数は4であるため、前記「所定の数」として「4」を好適に用いることができる。この場合、例えば、データコードワードの値が「00000001」という内容であれば、データコードワードの各ビット値を合計した合計値が「1」であり、これに1を加えた値が2となる。従って、これを「4」で割った値は2であるため、この「2」を2進数で表した値「10」が誤り検出用パリティとして付されることとなる。同様に、データコードワードの値が「00000011」という内容であれば、データコードワードの各ビット値を合計した合計値が「2」であり、これに1を加えた値が3となる。従って、これを「4」で割った値は3であるため、この「3」を2進数で表した値「11」が誤り検出用パリティとして付されることとなる。また、図3の中段の例でも同様であり、この例ではデータコードワードの値が「0011111」であり、データコードワードの各ビット値を合計した合計値が「5」であり、これに1を加えた値が6となる。従って、これを「4」で割った値は2であるため、この「2」を2進数で表した値「10」が誤り検出用パリティとして付されることとなる。
【0028】
また、本実施形態では、データコードワードの各ビット値を合計した合計値に1を加えているが、このような方法を用いることで、誤り検出をより正確に行うことができるようになる。即ち、情報コード1に汚れなどが生じて誤りが発生する場合、いずれかのデータコードブロック11の全てのセルCが暗色に汚れたり、全てのセルCが明色に汚れる場合が多い。この場合、データコードワードが「00000000」となるため、データコードワードの各ビット値を合計した合計値そのものを誤り検出用パリティとすると「00」となって整合がとれてしまい、誤りが検出できなくなってしまう。これに対し、本実施形態では、データコードワードの各ビット値を合計した合計値に1を加えた値を誤り検出用パリティとしているため、上述のように全てのセルCが明色に汚れたとしても、整合がとれにくくなる。
【0029】
なお、上記実施形態では、8ビットのデータコードワードに対して2ビットの誤り検出用パリティを割り当てる構成を例示したが、図3上段のように、8ビットのデータコードワードに対して1ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「2」であるため、前記「所定の数」として「2」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を「2」で割った剰余の値とすることができる。例えば、図3上段のような「00011111」という8ビットのデータコードワードの場合、各ビットの合計値が「5」であり、これに1を加えた値が「6」であるため、この「6」を前記「所定の数」である「2」で割った値(即ち、「0」)を誤り検出用パリティとすることができる。この場合、データコードワードの各ビット値を合計した合計値に1を加えた値が偶数なら誤り検出用パリティは「0」となり、奇数なら誤り検出用パリティは「1」となる。
【0030】
或いは、図3下段のように、8ビットのデータコードワードに対して3ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「8」であるため、前記「所定の数」として「8」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を「8」で割った剰余の値とすることができる。例えば、図3下段のような「00011111」という8ビットのデータコードワードの場合、各ビットの合計値が「5」であり、これに1を加えた値が「6」であるため、この「6」を前記「所定の数」である「8」で割った値(即ち、「6」)を3ビットの2進数で表した値「110」を誤り検出用パリティとすることができる。
【0031】
(情報コードの作成方法)
次に、上記のような情報コード1を作成する方法について説明する。
上記情報コード1は、例えば、CPU、メモリ、入力装置(マウス、キーボード)、通信部(LANインターフェース等)などを備えた情報処理装置(パーソナルコンピュータなど)を用いて以下のような方法で作成することができる。
【0032】
まず、上記情報処理装置において、コード化すべき解読対象データを取得する取得ステップを行う。この取得ステップでは、例えば、キーボードからの入力、通信部を介した外部入力、或いは情報処理装置に既に記憶されているデータを読み出す等の方法によってコード化すべきデータを取得する。
【0033】
そして、その取得ステップで取得した解読対象データに基づいて各データコードワードを生成する第1生成ステップを行う。この第1生成ステップでは、解読対象データを構成する各データ要素(例えば、各文字、各数字等)を予め規定された方式に従って符号化する。本実施形態では、各データコードワードはバイナリデータで生成される。
【0034】
その後、第1生成ステップで生成された各データコードワードに対応する各誤り検出用パリティを生成する第2生成ステップを行う。この第2生成ステップでは、各データコードワードに対応する各誤り検出用パリティを上述の方法で生成する。なお、誤り検出用パリティもバイナリデータで生成される。更に、各データコードワードに対応する誤り訂正コードワードを規定の方式(例えばリード・ソロモン方式)で生成する第3生成ステップを行う。本実施形態では、誤り訂正コードワードもバイナリデータで生成されることとなる。そして、このように生成された各データコードワード、各誤り検出用パリティ、各誤り訂正コードワードについてのそれぞれのバイナリデータを黒色セル及び白色セルで表現し、これらを例えば図1のような規定のフォーマットに従い、規定された順序で配置することで情報コード1の描画データを取得する。なお、このような描画データは印刷装置などによって印刷して用いてもよく、携帯端末などの表示装置に表示して用いてもよい。
【0035】
(情報コード読取装置の構成)
次に、本実施形態に係る情報コード読取装置について説明する。
本実施形態に係る情報コード読取装置20は、例えば図4のような構成をなしており、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系と、電源スイッチ41、電池49等の電源系と、から構成されている。
【0036】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、LEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ハウジングの読取口(図4では図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。この読取対象物Rは、例えば、紙、樹脂、金属といった媒体、或いは表示装置などが相当し、上述の情報コード1は、このような読取対象物Rに、印刷、ダイレクトマーキング、画像表示等によって付されている。
【0037】
受光センサ23は、読取対象物Rや情報コード1に照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光可能にプリント配線板(図示略)に実装されている。また、フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Lrの波長相当を超える不要な光が受光センサ23に入射することを抑制している。また、結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【0038】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコン(情報処理装置)として機能し得る制御回路40およびメモリ35と中心に構成されるもので、前述した光学系によって撮像された情報コード1の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路40は、当該情報コード読取装置20の全体システムに関する制御も行っている。
【0039】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0040】
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【0041】
制御回路40は、情報コード読取装置20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるもので、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が制御回路40に接続されている。なお、通信インタフェース48には、当該情報コード読取装置20の上位システムに相当するホストコンピュータHST等が接続される。また、電源系は、電源スイッチ41、電池49等によって構成されており、制御回路40による電源スイッチ41のオンオフ制御により、電池49から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
【0042】
(情報コードの読取処理)
次に、情報コード読取装置20で行われる読取処理について説明する。
図5は、第1実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。図6は、図5の読取処理における指示位置検出処理の流れを例示するフローチャートである。図7は、第1実施形態に係る情報コード読取装置で読み取る情報コードについての図1とは異なる一例を概念的に示す概念図である。図8は、図7の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。図9は、図8の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。図10(A)は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図10(B)は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【0043】
図5に示す読取処理は、例えば作業者が所定操作(例えば、操作スイッチ42のオン操作)を行うことで開始され、まず上記情報コード1を撮像する処理を行う。この撮像処理では、上記情報コード1の画像を含んだ画像データが取得され、メモリ35に記憶される。
【0044】
図7では、撮像対象となる情報コードの一例を示している。この情報コード1は、基本的には、図1の情報コード1よりもデータコードブロック11や誤り訂正コードブロック12の数を増やし、且つ特定パターン(情報コードの領域や各セル位置を認識するためのパターン)を図1とは異ならせただけであり、それ以外は図1と同様の情報コードとして構成され、複数の情報表示単位セルがマトリックス状に配列された構成をなしている。また、この情報コード1も、所定個数の情報表示単位セルCによってデータコードワードを表現する複数のデータコードブロック11と、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロック12とを備えている。これらデータコードブロック11や誤り訂正コードブロック12の構成は、図1等の情報コードと同様であり、更に、各データコードブロック11には図1〜図3と同様の誤り訂正用パリティのブロックが付されている。なお、図7では、データコードブロック11や誤り訂正コードブロック12の構成は概略的に示しているが、その構成や配置は様々とすることができる。また、以下では、説明の便宜上、図7のような大型の情報コードを読み取る場合を例に挙げて説明するが、図1のような情報コードも以下の方法と同様に読み取ることができることは勿論である。
【0045】
コード画像が撮像された後には、その画像データにおいて、コード領域の位置及び向きを特定すると共にコード領域に含まれる各セルの位置を特定する。具体的には、撮像された画像データの中から情報コード1に含まれる予め定められた境界の特定パターン6a〜6lの位置を抽出し、それた特定パターン6a〜6lの外側の辺を境界位置とするように、コード領域の外形を決定する。なお、コード外形位置の検出は、境界位置が検出可能な方法であればよく、公知の二次元コードで行われる一般的なラべリング処理などを用いてもよい。
【0046】
なお、本実施形態では、図5の処理を行うプログラムに基づいてS1の処理を行う制御回路40が「コード外形位置検出手段」の一例に相当し、受光センサ23(画像取得手段)によって取得された情報コード1の画像からコード外形位置を検出するように機能する。
【0047】
S1でコード画像が取得され、コード外形位置が検出された後には、そのコード領域(矩形領域)に基づいて誤り訂正・デコード処理を行う(S2)。本実施形態では、例えば情報コード読取装置20の内部に情報コード1のフォーマットが登録されており、そのフォーマットに従って、各データコードブロック1に記録される各データコードワードを解読する。
【0048】
各データコードブロック11のデータコードワードを解読する際には、対応する誤り検出用パリティを参照しており、データコードワードとの整合性がとれているか(即ち、認識されたデータコードワードの値に基づいて上記生成方法で誤り検出用パリティを生成した場合に、認識された誤り検出用パリティの値と一致するか)を判断する。この判断処理において整合がとれていると判断される場合には当該データコードブロック11のデータコードワードを正常なコードワードとして出力対象とする。一方、整合がとれていないと判断される場合には、そのデータコードブロック11のデータコードワードをエラーコードワードとして扱い、当該データコードブロック11に対応する誤り訂正コードブロック12のコードワード(RSコードワード)を用いて消失訂正を行う。そして、その消失訂正結果に基づいて、情報コード1に記録されたデータをデコードする。
【0049】
本実施形態では、図8のように情報コード1の一部が物体(図8では指F)で隠されたときの当該情報コード1の画像が「画像取得手段」に相当する受光センサ23(図4)によって撮像されるようになっている。したがって、図8のように物体によって一部が隠されたコード画像では、物体で隠された領域に配置されるコードブロックにおいて誤りが発生する可能性が高くなる。
【0050】
なお、本実施形態では、上記S2の処理を行う制御回路40が「誤り検出手段」の一例に相当し、受光センサ23(画像取得手段)によって取得された情報コード1のコード画像において誤り発生ブロックを特定するように機能する。また、制御回路40は、「誤り訂正手段」の一例に相当し、その検出された誤り発生ブロックの誤りを、誤り訂正コードブロック12の記録内容に基づいて訂正するように機能する。また、制御回路40は、「デコード手段」の一例に相当し、その誤り訂正結果を反映して情報コード1のデコードを行うように機能する。
【0051】
また、S2の処理の後には、図2で誤りが検出されたブロックの領域を抽出する。例えば、図8のようなコード画像が撮像され、図9のように指Fで隠されたコードブロックの位置が誤り発生ブロック17と認識された場合、S3では、その認識された領域全体を抽出・特定する。なお、図9では、誤り発生ブロック17の領域を極太線で囲んで示している。
【0052】
そして、S3で認識された領域に基づいて、指示位置を検出する処理を行う(S4)。このS4の処理では、S2、S3で検出された誤り発生ブロックの中から境界に隣接するブロックのまとまりを抽出する。例えば、図9の画像では、領域AR1と、領域AR2が抽出されることになる。
【0053】
なお、本実施形態では、制御回路40が「隣接辺検出手段」の一例に相当し、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロック17の領域が隣接する隣接辺B1、B2を検出するように機能しており、コード外形位置において誤り発生ブロック17の領域が隣接する隣接辺が複数ある場合、誤り発生ブロック17の隣接領域が最も大きくなる特定隣接辺(図9では、B1)を検出するように機能している。なお、隣接辺、特定隣接辺の検出は、これらを特定できる部分を検出できればよく、S10〜S13、図9のように、隣接辺を構成する誤り発生ブロック17の位置を特定してもよく、隣接辺自体の位置を検出してもよい。
【0054】
そして、S10において抽出された集合が複数あるか(即ち、誤り発生ブロック17の領域がコード画像の複数の境界辺に跨っているか)否かを判断し、抽出された集合が複数ある場合には、S11にてYesに進み、それら集合の中から面積の広い集合を選択し、その集合の中心位置を検出する(S12)。一方、抽出された集合が1つであると判断された場合には、S11にてNoに進み、その集合の中心位置を検出する(S13)。S12、S13のいずれにおいても、例えば対象となる集合の重心(図心)位置を中心位置として検出する。なお、図10の例では、面積の広い集合の領域AR1の重心(図心)P0が中心位置として検出されることになる。
【0055】
S12又はS13の処理の後には、S3で認識された領域のブロックの中で、S12又はS13で検出された中心位置からの遠さが上位N個に該当するブロック(遠距離ブロック)を抽出する(S14)。本実施形態の代表例では、N=2としており、図10の例では、検出さが誤り発生ブロック17の中から、S12で検出された中心位置P0からの遠さが上位2個に該当する遠距離ブロック17a、17bを抽出している。
【0056】
本実施形態では、制御回路40が遠距離ブロック検出手段の一例に相当し、誤り検出手段によって検出された複数の誤り発生ブロック17において、隣接辺検出手段によって検出された特定隣接辺B1からの距離の大きさが上位となる所定個数(図10では2個)の遠距離ブロック17a、17bを検出するように機能している。
【0057】
S14の後には、S14で抽出された上位N個のブロックの中心位置から平均位置(平均座標)を求め、この平均位置を物体による指示位置として認識する(S15)。図10の例では、図10(B)のように、S14で抽出された上位2個の遠距離ブロック17a、17bの各中心位置(各重心(図心)位置)P1、P2を検出し、これら中心位置P1,P2の座標の平均位置(中心位置)P3を指示位置として認識することになる。
【0058】
なお、本実施形態では、S4の処理(図6の処理)を行う制御回路40が指示位置検出手段の一例に相当し、誤り検出手段によって検出された誤り発生ブロック17の領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、受光センサ23(撮像手段)によって撮像されたコード画像において物体による指示位置を検出するように機能する。具体的には、遠距離ブロック検出手段によって検出された所定個数(図10では2個)の遠距離ブロック17a,17bの位置に基づいて物体による指示位置を検出するように機能している。
【0059】
S4の処理の後には、データの出力処理を行う(S5)。このS5の処理では、S2で行われたデコード処理での解読結果と共に、或いはS2のデコード処理での解読結果に換えて、S4で検出された指示位置に対応したデータを出力する。例えば、情報コード1の中に複数種類のデータ(例えば複数のURLのデータ)が記録されている場合、それら複数種類のデータの中からS4で検出された指示位置に対応したデータを抽出して表示画面に表示する。この場合、情報コード1において、コード内に領域を複数設けておき、各領域に対し出力するデータ範囲を記録しておけば、ユーザがいずれかの領域を指示したときに領域に対応する種類のデータが出力されることになる。
【0060】
なお、本実施形態では、S5の処理を行う制御回路40が「対応データ解読手段」の一例に相当し、情報コード1に記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読するように機能する。
【0061】
(本実施形態の主な効果)
本実施形態に係る情報コード読取装置20では、情報コード1の一部が物体で隠された画像が「画像取得手段」によって取得された場合に、「誤り検出手段」により、その取得された情報コード1のコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて「誤り訂正手段」によって訂正され、その上で、「デコード手段」によってデコード処理が行われるようになっている。更に、「指示位置検出手段」が設けられており、「誤り検出手段」によって検出された誤り発生ブロックの領域と、「コード外形位置検出手段」によって検出されたコード外形位置とに基づき、撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コード1の一部が物体によって隠されて特定位置が指示される場合に、情報コード1の解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コード1を、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コード1の用途の拡大を図ることができる。
【0062】
また、本実施形態に係る情報コード読取装置20には、「対応データ解読手段」が設けられ、情報コード1に記録される複数種類のデータの中から、「指示位置検出手段」によって検出された指示位置に対応するデータを解読するように構成されている。
この構成によれば、情報コード1を入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【0063】
また、本実施形態では、「隣接辺検出手段」が設けられ、「コード外形位置検出手段」によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出している。更に、「遠距離ブロック検出手段」が設けられ、「誤り検出手段」によって検出された1又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。そして、「遠距離ブロック検出手段」によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【0064】
また、本実施形態では、「隣接辺検出手段」が設けられ、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出している。更に、「遠距離ブロック検出手段」は、「誤り検出手段」によって検出された1又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【0065】
また、本実施形態では、読取対象となる情報コード1において、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【0066】
上記効果は、図11のような説明図で具体的に説明することもできる。図11の例では、データコードワードの正しい値(正解値)が「00000001」であり、誤り検出用パリティ(以下、パリティとも称する)の正しい値(正解値)が「10」のときの誤りパターンを列挙して例示すものである。なお、パターン1は、データコードワード及び誤り検出用パリティがいずれも正しい値(正解値)を示すパターンである。例えば、パターン2は、データコードワードが正しい値(正解値)が「00000001」であり、パリティが誤っている例であるが、この場合、データコードワードが正しいのに、誤りと判断してしまうことになる。この場合、当該データコードワードに誤りが生じているものとして消失訂正を行うことになる。
【0067】
一方、パターン3は、データコードワードが「00000011」と誤って認識され、パリティが「10」と正確に認識された例である。このケースでは、誤って認識されたデータコードワードによってビット合計に1を加えた値が2+1=3となっており、他方、パリティが2を示しているため不一致となり誤りを検出することができる。従って、当該データコードワードに対応する1つの誤り訂正コードブロック12を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に2つの誤り訂正コードブロックを用いているため、このパターン3では、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【0068】
また、パターン4は、データコードワードが「00011111」と誤って認識され、パリティが「11」と誤って認識された例である。この例では、パリティが誤って認識されているが、データコードワードとパリティとの整合性が取れず誤りが検出されることとなる。従って、当該データコードワードに対応する1つの誤り訂正コードブロック12を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に2つの誤り訂正コードブロックを用いて誤り訂正を行うため、このパターン4でも、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【0069】
なお、パターン2ではデータコードワードは正しいがパリティによって誤りと判断され、使わなくてもよい誤り訂正コードワードを1つ使用している。しかし、このパターン2は、データコードワードが誤らずにパリティのみが誤るケースであるため、データコードワードの長さとパリティの長さ(この例の場合8:2)を考慮するとパターン2が生じる確率は極めて低いといえる。
【0070】
また、本実施形態に係る情報コード1では、誤り検出用パリティが、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロック11が全て暗色(例えば黒)で汚れる場合や、全て明色(例えば白)で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【0071】
また、本実施形態に係る情報コード1では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている。このようにすると、各データ要素を8ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【0072】
また、本実施形態に係る情報コード1では、誤り訂正コードワードの数がデータコードワードの数の2倍よりも少なくなっている。このようにすると、1つのデータコードワードの誤り訂正を2つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【0073】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0074】
上記実施形態では、読取対象となる情報コードの例として11行11列(図1)、55行55列(図6)で配列された情報コード1を例示したが、セルの配列はこれに限られず、行数を増減してもよく、列数を増減してもよい。
【0075】
上記実施形態では、読取対象となる情報コードの例として、データコードブロック11、誤り訂正コードブロック12、誤り検出用パリティのブロックをいずれも2種類のセルによって表現する例を示したが、これらを3種類以上のセルによって表現するような情報コードであってもよい。
【0076】
上記実施形態では、読取対象となる情報コードのデータコードワード及び誤り訂正コードワードをいずれも8ビットの2進データで構成し、誤り訂正用パリティを2ビットの2進データで構成した例を示したが、これらいずれか又は全てのビット数を変更してもよい。例えば、誤り訂正用パリティを上述したように1ビット或いは3ビット以上の2進データで構成してもよい。或いは、データコードワード及び誤り訂正コードワードを8ビットよりも大きい2進データ(例えば16ビットの2進データ)で構成してもよい。
【0077】
上記実施形態では、読取対象となる情報コードにおいて、各データコードブロック11に対して1つの誤り訂正コードブロック12を割り当てた構成を例示したが、いずれかのデータコードブロック11(例えば重要視するデータコードブロック)については2つの誤り訂正コードブロックを割り当て、他のデータコードブロック11については上記実施形態と同様に1つの誤り訂正コードブロックを割り当てるようにしてもよい。この場合、前記いずれかのデータコードブロック11については、当該データコードブロック11に誤りが生じた場合に誤り検出用パリティを用いて誤りの検出を試み、誤りが検出された場合に消失訂正を行うことができる。他方、誤りが検出できなかった場合には、2つの誤り訂正コードブロックを用いて「検出訂正」を行うことができるようになる。従って、特定のデータコードブロックの誤り訂正レベルを高めることができる。
【0078】
上記実施形態では、指で隠された情報コードを受光センサで撮像し、指先の位置で支持されるコードブロックを検出する例を示したが、物体で隠された情報コードを撮像する方法はこれに限定されない。例えば、既に画像データとして構成された情報コードを表示媒体によって表示した上で、その表示される情報コードを指し示すための物体画像を合成し、その合成された画像について図6、図8、図9と同様の方法で指示位置を検出するようにしてもよい。このように情報コードの一部を物体によって指示する方法は、例えば拡張現実などの分野においても好適に利用することができる。例えば、生成された情報コードの画像、或いは撮像された情報コードの画像を一般的な表示装置(液晶表示装置等)、或いはヘッドマウンテッドディスプレイなどの表示装置に表示すると共に、指先や他の物体(スティック等)などの物体の動きを検出し、表示装置に表示される当該指先又は物体の画像の位置がコード画像に対してリアルタイムに変化するように合成画像を生成するようにしてもよい。この場合、表示装置に表示される情報コードの画像内の所望の位置に指先や物体が配置された状態で、所定の決定操作がなされたときに、情報コードの画像がその指示する物体によって隠された合成画像を生成するようにしてもよい。そして、このような合成画像に基づいて、図5〜図10と同様の方法で指示位置を検出し、出力を行うようにしてもよい。
【符号の説明】
【0079】
1…情報コード
11…データコードブロック
12…誤り訂正コードブロック
17…誤り発生ブロック
17a,17b…遠距離ブロック
20…情報コード読取装置
23…受光センサ(画像取得手段)
40…制御回路(コード外形位置検出手段、誤り検出手段、誤り訂正手段、デコード手段、指示位置検出手段、対応データ解読手段、隣接辺検出手段、遠距離ブロック検出手段)
B1…隣接辺(特定隣接辺)
B2…隣接辺
C…情報表示単位セル
【技術分野】
【0001】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【0002】
従来から用いられているQRコード(登録商標)などの二次元コードは、複数のセルがマトリックス状に配置された構成をなしており、コード領域内にデータコードワードを表わした複数のデータコードブロックと、各データコードブロックの誤り訂正に用いる誤り訂正コードワードを表わした複数の誤り訂正コードブロックとが設けられた構成が一般的である。
【0003】
この種の二次元コードでは、データコードワードとして、例えば、数ビット(例えば8ビット)の情報を一単位としてデータを構成する単位要素を表わしており、また、誤り訂正コードワードとしては、そのデータコードワードの誤り訂正を行うための符号を数ビット(例えば8ビット)の情報で表わしたものなどが用いられている。なお、誤り訂正コードワードとしては、例えば、リードソロモン方式によって誤り訂正を行うための符号(RS符号)などが広く用いられている。なお、このような二次元コードに関連する技術としては特許文献1のようなものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−254037公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年では、非常に広範な分野で情報コードが使用されており、情報コードの利用分野も多様化しつつある。他方、情報コードも高機能化が進展しつつあり、それに伴い、情報コードのより高度な利用方法が求められつつある。例えば、最近では、情報コードの大容量化が進んでいるが、このような大容量の情報コードの内部に様々な種類のデータを記録しておく場合、このような情報コードの記録内容の中から特定位置のデータのみを選択的に取り出す要望が想定される。また、ユーザが情報コードの特定位置を指示したときに、その指示位置を正確に把握することが求められることがある。
【0006】
本発明は、上述した課題を解決するためになされたものであり、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読に加え、その指示位置の特定を正確に行い得る情報コード読取装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明は、
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体で隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする。
【発明の効果】
【0008】
請求項1の発明では、情報コードの一部が物体で隠された画像が画像取得手段によって取得された場合に、誤り検出手段により、画像取得手段によって取得された情報コードのコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて誤り訂正手段によって訂正され、その上で、デコード手段によってデコード処理が行われるようになっている。更に、指示位置検出手段が設けられ、誤り検出手段によって検出された誤り発生ブロックの領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、撮像手段によって撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コードを、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コードの用途の拡大を図ることができる。
【0009】
請求項2の発明では、情報コードに記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段が設けられている。
この構成によれば、情報コードを入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【0010】
請求項3の発明では、指示位置検出手段は、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、誤り検出手段によって検出された1又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、を備えている。そして、遠距離ブロック検出手段によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【0011】
請求項4の発明では、隣接辺検出手段は、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、遠距離ブロック検出手段は、誤り検出手段によって検出された1又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【0012】
請求項5の発明では、読取対象となる情報コードは、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【0013】
請求項6の発明では、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロックが全て暗色(例えば黒)で汚れる場合や、全て明色(例えば白)で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【0014】
請求項7の発明では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている。このようにすると、各データ要素を8ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【0015】
請求項8の発明では、誤り訂正コードワードの数が、データコードワードの数の2倍よりも少なくなっている。このようにすると、1つのデータコードワードの誤り訂正を2つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【図面の簡単な説明】
【0016】
【図1】図1は、第1実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。
【図2】図2は、図1の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。
【図3】図3は、図1の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【図4】図4は、第1実施形態に係る情報コード読取装置を概略的に例示するブロック図である。
【図5】図5は、第1実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。
【図6】図6は、図5の読取処理における指示位置検出処理の流れを例示するフローチャートである。
【図7】図7は、第1実施形態に係る情報コード読取装置で読み取る情報コードについての図1とは異なる一例を概念的に示す概念図である。
【図8】図8は、図7の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。
【図9】図9は、図8の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。
【図10】図10(A)は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図10(B)は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【図11】図11は、データコードワードと誤り検出用パリティの組み合わせを複数例示して説明する説明図である。
【発明を実施するための形態】
【0017】
[第1実施形態]
以下、本発明を具現化した第1実施形態について、図面を参照して説明する。
(情報コードの構成)
本実施形態に係る情報コード読取装置20は、以下で説明する情報コード1と共に情報コード読取システムを構成するものである。まず、図1〜図3を参照して本実施形態に係る情報コードの構成を説明する。
図1は、第1実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。図2は、図1の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。図3は、図1の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【0018】
情報コード1は、図1に示すように、複数の情報表示単位セル(以下、単に「セル」とも称する)Cがマトリックス状に配列されてなるものであり、複数のコードブロック10と、第1の特定パターン2と、第2の特定パターン3、4と、第3の特定パターン5とを備えた構成をなしている。この情報コード1は、外形が正方形状に構成されたセルCが集合してマトリックス状に配置されたセル集合体として構成されており、図1の例では、セル数が縦横同数(11セル×11セル)となる配列で構成されている。また、情報コード1を構成するコード領域(セルCが配置される領域)は、外形が矩形状の矩形領域とされており、図1の代表例では外形が正方形状の正方形領域とされている。なお、図1では、一部のセルのみについて符号Cを付しており、他のセルの符号は省略している。
【0019】
情報コード1は、色彩又は濃度又は輝度の異なる複数種類のセルが配列されてなるものであり、図1に示す代表例では、色彩又は濃度又は輝度の異なる2種類のセル(具体的には、黒色セル及び白色セル)が用いられて情報コード1が構成されている。なお、図1等では黒色セルについては符号Cbで示し、白色セルについては符号Cwで示すこととする。
【0020】
コードブロック10は、複数のセルCが集合してなるものであり、図1の情報コード1では、データコードブロック11と、誤り訂正コードブロック12とに分けられている。なお、図1では、データコードブロック11、誤り訂正コードブロック12、誤り訂正用パリティのブロック15の領域をそれぞれハッチング、破線枠、網掛けにて概念的に示しているが、これら領域は、具体的には図2のように黒色セルCb或いは白色セルCwが配列された構成をなしている。
【0021】
データコードブロック11は、例えば図2のような構成をなしており、デコードの対象となるデータの各データ要素を符号化した符号化データ(データコードワード)を複数のセルによって表現したブロックとして構成されている。このデータコードブロック11を構成する各セルは、予め定められた複数種類のセル(図2の例では黒色セルCbと白色セルCwの二種類)の中からいずれかの種類のセルが選択されて用いられており、図2の例では、これら複数(図2では8つ)のセルがマトリックス状に集合した構成をなしている。なお、セル配列やブロック形状は図2の構成に限られず、様々な配列、形状とすることができる。また、一部のデータコードブロック11については2以上の領域に跨って構成されていてもよい。
【0022】
また、各データコードブロック11は、全体として、デコードすべき符号化データ(データコード語)に対応したセルの配列で構成されるようになっている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「0」に対して白色セル、データ値「1」に対して黒色セルがそれぞれ対応付けられている。図2の例では、データコードブロック11によって「00000011」という8ビットの値を8つのセルによって表現している。このデータコードブロック11では、右上から下方側へ順番に1番目、2番目、3番目、4番目のセルが縦に続き、左下から上方側に順番に5番目、6番目、7番目、8番目のセルが縦に続いている。
【0023】
また、本実施形態では、各データコードブロックを構成する各データコードワードに対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティのビット数は、データコードワードのビット数よりも少なくされており、図1、図2等に示す代表例では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている(即ち、データコードワードを表現するデータコードブロック11が8つのセルによって構成されており、誤り検出用パリティを表現するブロック15が2つのセルによって構成されている)。なお、図1では、データコードブロック11とそれに対応する誤り検出用パリティの組み合わせを太線枠にて概念的に示している。
【0024】
誤り訂正コードブロック12は、各データコードブロック11にて表現される各データコードワードの誤り訂正に用いるコードブロックであり、例えば各データコードブロック11に対応して1つずつ設けられている。この誤り訂正コードブロック12は、対応するデータコードブロック11のデータコードワードに基づいて所定方式で生成された誤り訂正コードワードを符号化して表現するものであり、誤り訂正コードワードを符号化したデータを複数個のセルCによって表現している。
【0025】
本実施形態では、後述する誤り訂正方法により、誤りが生じているデータコードブロック11を特定した上で、その誤りが生じているデータコードブロック11に対応する1つの誤り訂正コードブロック12によって誤り訂正(消失訂正)を行うものとされており、誤り訂正コードブロック12の内容(即ち誤り訂正コードワード)は、このような消失訂正が可能な構成であれば公知の様々な方式の符号を用いることができる。本実施形態の代表例では、その一例として公知のリード・ソロモン誤り訂正方式を用いており、具体的には、データコードワード毎に各データコードワードと同じビット数でリード・ソロモン符号(RS符号)が生成され、各データコードワードに対応する各RS符号をそれぞれ誤り訂正コードブロック12によって表現している。
【0026】
(誤り検出用パリティの内容)
次に、誤り検出用パリティについて説明する。
上述したように、情報コード1では、データコードブロック11毎に、各データコードブロック11の誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を所定の数(具体的には、例えば誤り検出用パリティのビット数で表現可能な数)で割った剰余の値とされている。
【0027】
例えば、図1、図2に示すように、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされる場合、検出用パリティで表現可能な数は4であるため、前記「所定の数」として「4」を好適に用いることができる。この場合、例えば、データコードワードの値が「00000001」という内容であれば、データコードワードの各ビット値を合計した合計値が「1」であり、これに1を加えた値が2となる。従って、これを「4」で割った値は2であるため、この「2」を2進数で表した値「10」が誤り検出用パリティとして付されることとなる。同様に、データコードワードの値が「00000011」という内容であれば、データコードワードの各ビット値を合計した合計値が「2」であり、これに1を加えた値が3となる。従って、これを「4」で割った値は3であるため、この「3」を2進数で表した値「11」が誤り検出用パリティとして付されることとなる。また、図3の中段の例でも同様であり、この例ではデータコードワードの値が「0011111」であり、データコードワードの各ビット値を合計した合計値が「5」であり、これに1を加えた値が6となる。従って、これを「4」で割った値は2であるため、この「2」を2進数で表した値「10」が誤り検出用パリティとして付されることとなる。
【0028】
また、本実施形態では、データコードワードの各ビット値を合計した合計値に1を加えているが、このような方法を用いることで、誤り検出をより正確に行うことができるようになる。即ち、情報コード1に汚れなどが生じて誤りが発生する場合、いずれかのデータコードブロック11の全てのセルCが暗色に汚れたり、全てのセルCが明色に汚れる場合が多い。この場合、データコードワードが「00000000」となるため、データコードワードの各ビット値を合計した合計値そのものを誤り検出用パリティとすると「00」となって整合がとれてしまい、誤りが検出できなくなってしまう。これに対し、本実施形態では、データコードワードの各ビット値を合計した合計値に1を加えた値を誤り検出用パリティとしているため、上述のように全てのセルCが明色に汚れたとしても、整合がとれにくくなる。
【0029】
なお、上記実施形態では、8ビットのデータコードワードに対して2ビットの誤り検出用パリティを割り当てる構成を例示したが、図3上段のように、8ビットのデータコードワードに対して1ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「2」であるため、前記「所定の数」として「2」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を「2」で割った剰余の値とすることができる。例えば、図3上段のような「00011111」という8ビットのデータコードワードの場合、各ビットの合計値が「5」であり、これに1を加えた値が「6」であるため、この「6」を前記「所定の数」である「2」で割った値(即ち、「0」)を誤り検出用パリティとすることができる。この場合、データコードワードの各ビット値を合計した合計値に1を加えた値が偶数なら誤り検出用パリティは「0」となり、奇数なら誤り検出用パリティは「1」となる。
【0030】
或いは、図3下段のように、8ビットのデータコードワードに対して3ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「8」であるため、前記「所定の数」として「8」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値を「8」で割った剰余の値とすることができる。例えば、図3下段のような「00011111」という8ビットのデータコードワードの場合、各ビットの合計値が「5」であり、これに1を加えた値が「6」であるため、この「6」を前記「所定の数」である「8」で割った値(即ち、「6」)を3ビットの2進数で表した値「110」を誤り検出用パリティとすることができる。
【0031】
(情報コードの作成方法)
次に、上記のような情報コード1を作成する方法について説明する。
上記情報コード1は、例えば、CPU、メモリ、入力装置(マウス、キーボード)、通信部(LANインターフェース等)などを備えた情報処理装置(パーソナルコンピュータなど)を用いて以下のような方法で作成することができる。
【0032】
まず、上記情報処理装置において、コード化すべき解読対象データを取得する取得ステップを行う。この取得ステップでは、例えば、キーボードからの入力、通信部を介した外部入力、或いは情報処理装置に既に記憶されているデータを読み出す等の方法によってコード化すべきデータを取得する。
【0033】
そして、その取得ステップで取得した解読対象データに基づいて各データコードワードを生成する第1生成ステップを行う。この第1生成ステップでは、解読対象データを構成する各データ要素(例えば、各文字、各数字等)を予め規定された方式に従って符号化する。本実施形態では、各データコードワードはバイナリデータで生成される。
【0034】
その後、第1生成ステップで生成された各データコードワードに対応する各誤り検出用パリティを生成する第2生成ステップを行う。この第2生成ステップでは、各データコードワードに対応する各誤り検出用パリティを上述の方法で生成する。なお、誤り検出用パリティもバイナリデータで生成される。更に、各データコードワードに対応する誤り訂正コードワードを規定の方式(例えばリード・ソロモン方式)で生成する第3生成ステップを行う。本実施形態では、誤り訂正コードワードもバイナリデータで生成されることとなる。そして、このように生成された各データコードワード、各誤り検出用パリティ、各誤り訂正コードワードについてのそれぞれのバイナリデータを黒色セル及び白色セルで表現し、これらを例えば図1のような規定のフォーマットに従い、規定された順序で配置することで情報コード1の描画データを取得する。なお、このような描画データは印刷装置などによって印刷して用いてもよく、携帯端末などの表示装置に表示して用いてもよい。
【0035】
(情報コード読取装置の構成)
次に、本実施形態に係る情報コード読取装置について説明する。
本実施形態に係る情報コード読取装置20は、例えば図4のような構成をなしており、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系と、電源スイッチ41、電池49等の電源系と、から構成されている。
【0036】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、LEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ハウジングの読取口(図4では図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。この読取対象物Rは、例えば、紙、樹脂、金属といった媒体、或いは表示装置などが相当し、上述の情報コード1は、このような読取対象物Rに、印刷、ダイレクトマーキング、画像表示等によって付されている。
【0037】
受光センサ23は、読取対象物Rや情報コード1に照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光可能にプリント配線板(図示略)に実装されている。また、フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Lrの波長相当を超える不要な光が受光センサ23に入射することを抑制している。また、結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【0038】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコン(情報処理装置)として機能し得る制御回路40およびメモリ35と中心に構成されるもので、前述した光学系によって撮像された情報コード1の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路40は、当該情報コード読取装置20の全体システムに関する制御も行っている。
【0039】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0040】
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【0041】
制御回路40は、情報コード読取装置20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるもので、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が制御回路40に接続されている。なお、通信インタフェース48には、当該情報コード読取装置20の上位システムに相当するホストコンピュータHST等が接続される。また、電源系は、電源スイッチ41、電池49等によって構成されており、制御回路40による電源スイッチ41のオンオフ制御により、電池49から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
【0042】
(情報コードの読取処理)
次に、情報コード読取装置20で行われる読取処理について説明する。
図5は、第1実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。図6は、図5の読取処理における指示位置検出処理の流れを例示するフローチャートである。図7は、第1実施形態に係る情報コード読取装置で読み取る情報コードについての図1とは異なる一例を概念的に示す概念図である。図8は、図7の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。図9は、図8の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。図10(A)は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図10(B)は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【0043】
図5に示す読取処理は、例えば作業者が所定操作(例えば、操作スイッチ42のオン操作)を行うことで開始され、まず上記情報コード1を撮像する処理を行う。この撮像処理では、上記情報コード1の画像を含んだ画像データが取得され、メモリ35に記憶される。
【0044】
図7では、撮像対象となる情報コードの一例を示している。この情報コード1は、基本的には、図1の情報コード1よりもデータコードブロック11や誤り訂正コードブロック12の数を増やし、且つ特定パターン(情報コードの領域や各セル位置を認識するためのパターン)を図1とは異ならせただけであり、それ以外は図1と同様の情報コードとして構成され、複数の情報表示単位セルがマトリックス状に配列された構成をなしている。また、この情報コード1も、所定個数の情報表示単位セルCによってデータコードワードを表現する複数のデータコードブロック11と、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロック12とを備えている。これらデータコードブロック11や誤り訂正コードブロック12の構成は、図1等の情報コードと同様であり、更に、各データコードブロック11には図1〜図3と同様の誤り訂正用パリティのブロックが付されている。なお、図7では、データコードブロック11や誤り訂正コードブロック12の構成は概略的に示しているが、その構成や配置は様々とすることができる。また、以下では、説明の便宜上、図7のような大型の情報コードを読み取る場合を例に挙げて説明するが、図1のような情報コードも以下の方法と同様に読み取ることができることは勿論である。
【0045】
コード画像が撮像された後には、その画像データにおいて、コード領域の位置及び向きを特定すると共にコード領域に含まれる各セルの位置を特定する。具体的には、撮像された画像データの中から情報コード1に含まれる予め定められた境界の特定パターン6a〜6lの位置を抽出し、それた特定パターン6a〜6lの外側の辺を境界位置とするように、コード領域の外形を決定する。なお、コード外形位置の検出は、境界位置が検出可能な方法であればよく、公知の二次元コードで行われる一般的なラべリング処理などを用いてもよい。
【0046】
なお、本実施形態では、図5の処理を行うプログラムに基づいてS1の処理を行う制御回路40が「コード外形位置検出手段」の一例に相当し、受光センサ23(画像取得手段)によって取得された情報コード1の画像からコード外形位置を検出するように機能する。
【0047】
S1でコード画像が取得され、コード外形位置が検出された後には、そのコード領域(矩形領域)に基づいて誤り訂正・デコード処理を行う(S2)。本実施形態では、例えば情報コード読取装置20の内部に情報コード1のフォーマットが登録されており、そのフォーマットに従って、各データコードブロック1に記録される各データコードワードを解読する。
【0048】
各データコードブロック11のデータコードワードを解読する際には、対応する誤り検出用パリティを参照しており、データコードワードとの整合性がとれているか(即ち、認識されたデータコードワードの値に基づいて上記生成方法で誤り検出用パリティを生成した場合に、認識された誤り検出用パリティの値と一致するか)を判断する。この判断処理において整合がとれていると判断される場合には当該データコードブロック11のデータコードワードを正常なコードワードとして出力対象とする。一方、整合がとれていないと判断される場合には、そのデータコードブロック11のデータコードワードをエラーコードワードとして扱い、当該データコードブロック11に対応する誤り訂正コードブロック12のコードワード(RSコードワード)を用いて消失訂正を行う。そして、その消失訂正結果に基づいて、情報コード1に記録されたデータをデコードする。
【0049】
本実施形態では、図8のように情報コード1の一部が物体(図8では指F)で隠されたときの当該情報コード1の画像が「画像取得手段」に相当する受光センサ23(図4)によって撮像されるようになっている。したがって、図8のように物体によって一部が隠されたコード画像では、物体で隠された領域に配置されるコードブロックにおいて誤りが発生する可能性が高くなる。
【0050】
なお、本実施形態では、上記S2の処理を行う制御回路40が「誤り検出手段」の一例に相当し、受光センサ23(画像取得手段)によって取得された情報コード1のコード画像において誤り発生ブロックを特定するように機能する。また、制御回路40は、「誤り訂正手段」の一例に相当し、その検出された誤り発生ブロックの誤りを、誤り訂正コードブロック12の記録内容に基づいて訂正するように機能する。また、制御回路40は、「デコード手段」の一例に相当し、その誤り訂正結果を反映して情報コード1のデコードを行うように機能する。
【0051】
また、S2の処理の後には、図2で誤りが検出されたブロックの領域を抽出する。例えば、図8のようなコード画像が撮像され、図9のように指Fで隠されたコードブロックの位置が誤り発生ブロック17と認識された場合、S3では、その認識された領域全体を抽出・特定する。なお、図9では、誤り発生ブロック17の領域を極太線で囲んで示している。
【0052】
そして、S3で認識された領域に基づいて、指示位置を検出する処理を行う(S4)。このS4の処理では、S2、S3で検出された誤り発生ブロックの中から境界に隣接するブロックのまとまりを抽出する。例えば、図9の画像では、領域AR1と、領域AR2が抽出されることになる。
【0053】
なお、本実施形態では、制御回路40が「隣接辺検出手段」の一例に相当し、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロック17の領域が隣接する隣接辺B1、B2を検出するように機能しており、コード外形位置において誤り発生ブロック17の領域が隣接する隣接辺が複数ある場合、誤り発生ブロック17の隣接領域が最も大きくなる特定隣接辺(図9では、B1)を検出するように機能している。なお、隣接辺、特定隣接辺の検出は、これらを特定できる部分を検出できればよく、S10〜S13、図9のように、隣接辺を構成する誤り発生ブロック17の位置を特定してもよく、隣接辺自体の位置を検出してもよい。
【0054】
そして、S10において抽出された集合が複数あるか(即ち、誤り発生ブロック17の領域がコード画像の複数の境界辺に跨っているか)否かを判断し、抽出された集合が複数ある場合には、S11にてYesに進み、それら集合の中から面積の広い集合を選択し、その集合の中心位置を検出する(S12)。一方、抽出された集合が1つであると判断された場合には、S11にてNoに進み、その集合の中心位置を検出する(S13)。S12、S13のいずれにおいても、例えば対象となる集合の重心(図心)位置を中心位置として検出する。なお、図10の例では、面積の広い集合の領域AR1の重心(図心)P0が中心位置として検出されることになる。
【0055】
S12又はS13の処理の後には、S3で認識された領域のブロックの中で、S12又はS13で検出された中心位置からの遠さが上位N個に該当するブロック(遠距離ブロック)を抽出する(S14)。本実施形態の代表例では、N=2としており、図10の例では、検出さが誤り発生ブロック17の中から、S12で検出された中心位置P0からの遠さが上位2個に該当する遠距離ブロック17a、17bを抽出している。
【0056】
本実施形態では、制御回路40が遠距離ブロック検出手段の一例に相当し、誤り検出手段によって検出された複数の誤り発生ブロック17において、隣接辺検出手段によって検出された特定隣接辺B1からの距離の大きさが上位となる所定個数(図10では2個)の遠距離ブロック17a、17bを検出するように機能している。
【0057】
S14の後には、S14で抽出された上位N個のブロックの中心位置から平均位置(平均座標)を求め、この平均位置を物体による指示位置として認識する(S15)。図10の例では、図10(B)のように、S14で抽出された上位2個の遠距離ブロック17a、17bの各中心位置(各重心(図心)位置)P1、P2を検出し、これら中心位置P1,P2の座標の平均位置(中心位置)P3を指示位置として認識することになる。
【0058】
なお、本実施形態では、S4の処理(図6の処理)を行う制御回路40が指示位置検出手段の一例に相当し、誤り検出手段によって検出された誤り発生ブロック17の領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、受光センサ23(撮像手段)によって撮像されたコード画像において物体による指示位置を検出するように機能する。具体的には、遠距離ブロック検出手段によって検出された所定個数(図10では2個)の遠距離ブロック17a,17bの位置に基づいて物体による指示位置を検出するように機能している。
【0059】
S4の処理の後には、データの出力処理を行う(S5)。このS5の処理では、S2で行われたデコード処理での解読結果と共に、或いはS2のデコード処理での解読結果に換えて、S4で検出された指示位置に対応したデータを出力する。例えば、情報コード1の中に複数種類のデータ(例えば複数のURLのデータ)が記録されている場合、それら複数種類のデータの中からS4で検出された指示位置に対応したデータを抽出して表示画面に表示する。この場合、情報コード1において、コード内に領域を複数設けておき、各領域に対し出力するデータ範囲を記録しておけば、ユーザがいずれかの領域を指示したときに領域に対応する種類のデータが出力されることになる。
【0060】
なお、本実施形態では、S5の処理を行う制御回路40が「対応データ解読手段」の一例に相当し、情報コード1に記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読するように機能する。
【0061】
(本実施形態の主な効果)
本実施形態に係る情報コード読取装置20では、情報コード1の一部が物体で隠された画像が「画像取得手段」によって取得された場合に、「誤り検出手段」により、その取得された情報コード1のコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて「誤り訂正手段」によって訂正され、その上で、「デコード手段」によってデコード処理が行われるようになっている。更に、「指示位置検出手段」が設けられており、「誤り検出手段」によって検出された誤り発生ブロックの領域と、「コード外形位置検出手段」によって検出されたコード外形位置とに基づき、撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コード1の一部が物体によって隠されて特定位置が指示される場合に、情報コード1の解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コード1を、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コード1の用途の拡大を図ることができる。
【0062】
また、本実施形態に係る情報コード読取装置20には、「対応データ解読手段」が設けられ、情報コード1に記録される複数種類のデータの中から、「指示位置検出手段」によって検出された指示位置に対応するデータを解読するように構成されている。
この構成によれば、情報コード1を入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【0063】
また、本実施形態では、「隣接辺検出手段」が設けられ、「コード外形位置検出手段」によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出している。更に、「遠距離ブロック検出手段」が設けられ、「誤り検出手段」によって検出された1又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。そして、「遠距離ブロック検出手段」によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【0064】
また、本実施形態では、「隣接辺検出手段」が設けられ、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出している。更に、「遠距離ブロック検出手段」は、「誤り検出手段」によって検出された1又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【0065】
また、本実施形態では、読取対象となる情報コード1において、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【0066】
上記効果は、図11のような説明図で具体的に説明することもできる。図11の例では、データコードワードの正しい値(正解値)が「00000001」であり、誤り検出用パリティ(以下、パリティとも称する)の正しい値(正解値)が「10」のときの誤りパターンを列挙して例示すものである。なお、パターン1は、データコードワード及び誤り検出用パリティがいずれも正しい値(正解値)を示すパターンである。例えば、パターン2は、データコードワードが正しい値(正解値)が「00000001」であり、パリティが誤っている例であるが、この場合、データコードワードが正しいのに、誤りと判断してしまうことになる。この場合、当該データコードワードに誤りが生じているものとして消失訂正を行うことになる。
【0067】
一方、パターン3は、データコードワードが「00000011」と誤って認識され、パリティが「10」と正確に認識された例である。このケースでは、誤って認識されたデータコードワードによってビット合計に1を加えた値が2+1=3となっており、他方、パリティが2を示しているため不一致となり誤りを検出することができる。従って、当該データコードワードに対応する1つの誤り訂正コードブロック12を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に2つの誤り訂正コードブロックを用いているため、このパターン3では、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【0068】
また、パターン4は、データコードワードが「00011111」と誤って認識され、パリティが「11」と誤って認識された例である。この例では、パリティが誤って認識されているが、データコードワードとパリティとの整合性が取れず誤りが検出されることとなる。従って、当該データコードワードに対応する1つの誤り訂正コードブロック12を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に2つの誤り訂正コードブロックを用いて誤り訂正を行うため、このパターン4でも、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【0069】
なお、パターン2ではデータコードワードは正しいがパリティによって誤りと判断され、使わなくてもよい誤り訂正コードワードを1つ使用している。しかし、このパターン2は、データコードワードが誤らずにパリティのみが誤るケースであるため、データコードワードの長さとパリティの長さ(この例の場合8:2)を考慮するとパターン2が生じる確率は極めて低いといえる。
【0070】
また、本実施形態に係る情報コード1では、誤り検出用パリティが、対応付けられたデータコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロック11が全て暗色(例えば黒)で汚れる場合や、全て明色(例えば白)で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【0071】
また、本実施形態に係る情報コード1では、データコードワードが8ビットで表わされ、誤り検出用パリティが2ビットで表わされている。このようにすると、各データ要素を8ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【0072】
また、本実施形態に係る情報コード1では、誤り訂正コードワードの数がデータコードワードの数の2倍よりも少なくなっている。このようにすると、1つのデータコードワードの誤り訂正を2つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【0073】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0074】
上記実施形態では、読取対象となる情報コードの例として11行11列(図1)、55行55列(図6)で配列された情報コード1を例示したが、セルの配列はこれに限られず、行数を増減してもよく、列数を増減してもよい。
【0075】
上記実施形態では、読取対象となる情報コードの例として、データコードブロック11、誤り訂正コードブロック12、誤り検出用パリティのブロックをいずれも2種類のセルによって表現する例を示したが、これらを3種類以上のセルによって表現するような情報コードであってもよい。
【0076】
上記実施形態では、読取対象となる情報コードのデータコードワード及び誤り訂正コードワードをいずれも8ビットの2進データで構成し、誤り訂正用パリティを2ビットの2進データで構成した例を示したが、これらいずれか又は全てのビット数を変更してもよい。例えば、誤り訂正用パリティを上述したように1ビット或いは3ビット以上の2進データで構成してもよい。或いは、データコードワード及び誤り訂正コードワードを8ビットよりも大きい2進データ(例えば16ビットの2進データ)で構成してもよい。
【0077】
上記実施形態では、読取対象となる情報コードにおいて、各データコードブロック11に対して1つの誤り訂正コードブロック12を割り当てた構成を例示したが、いずれかのデータコードブロック11(例えば重要視するデータコードブロック)については2つの誤り訂正コードブロックを割り当て、他のデータコードブロック11については上記実施形態と同様に1つの誤り訂正コードブロックを割り当てるようにしてもよい。この場合、前記いずれかのデータコードブロック11については、当該データコードブロック11に誤りが生じた場合に誤り検出用パリティを用いて誤りの検出を試み、誤りが検出された場合に消失訂正を行うことができる。他方、誤りが検出できなかった場合には、2つの誤り訂正コードブロックを用いて「検出訂正」を行うことができるようになる。従って、特定のデータコードブロックの誤り訂正レベルを高めることができる。
【0078】
上記実施形態では、指で隠された情報コードを受光センサで撮像し、指先の位置で支持されるコードブロックを検出する例を示したが、物体で隠された情報コードを撮像する方法はこれに限定されない。例えば、既に画像データとして構成された情報コードを表示媒体によって表示した上で、その表示される情報コードを指し示すための物体画像を合成し、その合成された画像について図6、図8、図9と同様の方法で指示位置を検出するようにしてもよい。このように情報コードの一部を物体によって指示する方法は、例えば拡張現実などの分野においても好適に利用することができる。例えば、生成された情報コードの画像、或いは撮像された情報コードの画像を一般的な表示装置(液晶表示装置等)、或いはヘッドマウンテッドディスプレイなどの表示装置に表示すると共に、指先や他の物体(スティック等)などの物体の動きを検出し、表示装置に表示される当該指先又は物体の画像の位置がコード画像に対してリアルタイムに変化するように合成画像を生成するようにしてもよい。この場合、表示装置に表示される情報コードの画像内の所望の位置に指先や物体が配置された状態で、所定の決定操作がなされたときに、情報コードの画像がその指示する物体によって隠された合成画像を生成するようにしてもよい。そして、このような合成画像に基づいて、図5〜図10と同様の方法で指示位置を検出し、出力を行うようにしてもよい。
【符号の説明】
【0079】
1…情報コード
11…データコードブロック
12…誤り訂正コードブロック
17…誤り発生ブロック
17a,17b…遠距離ブロック
20…情報コード読取装置
23…受光センサ(画像取得手段)
40…制御回路(コード外形位置検出手段、誤り検出手段、誤り訂正手段、デコード手段、指示位置検出手段、対応データ解読手段、隣接辺検出手段、遠距離ブロック検出手段)
B1…隣接辺(特定隣接辺)
B2…隣接辺
C…情報表示単位セル
【特許請求の範囲】
【請求項1】
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体に基づいて隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする情報コード読取装置。
【請求項2】
前記情報コードに記録される複数種類のデータの中から、前記指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段を備えたことを特徴とする請求項1に記載の情報コード読取装置。
【請求項3】
前記指示位置検出手段は、
前記コード外形位置検出手段によって検出された前記コード外形位置において、前記誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、
前記誤り検出手段によって検出された1又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、
を備え、
前記遠距離ブロック検出手段によって検出された前記所定個数の前記遠距離ブロックの位置に基づいて前記物体による前記指示位置を検出することを特徴とする請求項1又は請求項2に記載の情報コード読取装置。
【請求項4】
前記隣接辺検出手段は、前記コード外形位置において前記誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、前記誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、
前記遠距離ブロック検出手段は、前記誤り検出手段によって検出された1又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記特定隣接辺からの距離の大きさが上位となる前記所定個数の前記遠距離ブロックを検出することを特徴とする請求項3に記載の情報コード読取装置。
【請求項5】
読取対象となる前記情報コードは、前記データコードワード毎に対応付けて、前記各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、前記誤り検出用パリティのビット数が前記データコードワードのビット数よりも少なくなるように構成されていることを特徴とする請求項1から請求項4のいずれか一項に記載の情報コード読取装置。
【請求項6】
前記誤り検出用パリティは、対応付けられた前記データコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されたものであることを特徴とする請求項5に記載の情報コード読取装置。
【請求項7】
前記データコードワードが8ビットで表わされ、前記誤り検出用パリティが2ビットで表わされることを特徴とする請求項5又は請求項6に記載の情報コード読取装置。
【請求項8】
前記誤り訂正コードワードの数が、前記データコードワードの数の2倍よりも少ないことを特徴とする請求項5から請求項7のいずれか一項に記載の情報コード読取装置。
【請求項1】
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体に基づいて隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする情報コード読取装置。
【請求項2】
前記情報コードに記録される複数種類のデータの中から、前記指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段を備えたことを特徴とする請求項1に記載の情報コード読取装置。
【請求項3】
前記指示位置検出手段は、
前記コード外形位置検出手段によって検出された前記コード外形位置において、前記誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、
前記誤り検出手段によって検出された1又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、
を備え、
前記遠距離ブロック検出手段によって検出された前記所定個数の前記遠距離ブロックの位置に基づいて前記物体による前記指示位置を検出することを特徴とする請求項1又は請求項2に記載の情報コード読取装置。
【請求項4】
前記隣接辺検出手段は、前記コード外形位置において前記誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、前記誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、
前記遠距離ブロック検出手段は、前記誤り検出手段によって検出された1又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記特定隣接辺からの距離の大きさが上位となる前記所定個数の前記遠距離ブロックを検出することを特徴とする請求項3に記載の情報コード読取装置。
【請求項5】
読取対象となる前記情報コードは、前記データコードワード毎に対応付けて、前記各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、前記誤り検出用パリティのビット数が前記データコードワードのビット数よりも少なくなるように構成されていることを特徴とする請求項1から請求項4のいずれか一項に記載の情報コード読取装置。
【請求項6】
前記誤り検出用パリティは、対応付けられた前記データコードワードの各ビット値を合計した合計値に1を加えた値に基づいて生成されたものであることを特徴とする請求項5に記載の情報コード読取装置。
【請求項7】
前記データコードワードが8ビットで表わされ、前記誤り検出用パリティが2ビットで表わされることを特徴とする請求項5又は請求項6に記載の情報コード読取装置。
【請求項8】
前記誤り訂正コードワードの数が、前記データコードワードの数の2倍よりも少ないことを特徴とする請求項5から請求項7のいずれか一項に記載の情報コード読取装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−208823(P2012−208823A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−75085(P2011−75085)
【出願日】平成23年3月30日(2011.3.30)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願日】平成23年3月30日(2011.3.30)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]