JP2005070980A - バーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラム - Google Patents

バーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラム Download PDF

Info

Publication number
JP2005070980A
JP2005070980A JP2003297825A JP2003297825A JP2005070980A JP 2005070980 A JP2005070980 A JP 2005070980A JP 2003297825 A JP2003297825 A JP 2003297825A JP 2003297825 A JP2003297825 A JP 2003297825A JP 2005070980 A JP2005070980 A JP 2005070980A
Authority
JP
Japan
Prior art keywords
corner
dot
corner dot
dots
barcode
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.)
Granted
Application number
JP2003297825A
Other languages
English (en)
Other versions
JP4159948B2 (ja
Inventor
Sadao Takahashi
禎郎 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003297825A priority Critical patent/JP4159948B2/ja
Publication of JP2005070980A publication Critical patent/JP2005070980A/ja
Application granted granted Critical
Publication of JP4159948B2 publication Critical patent/JP4159948B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】 高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供すること。
【解決手段】 複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段1101とを有する。
【選択図】 図11

Description

本発明は、画像の読み取りに関し、特にバーコードを読み取るバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムに関する。
業務の電子化やパソコンの普及と共に、文書を電子化しいわゆる電子文書として取り扱う機会が増大している。一方、CRT、LCDなどのディスプレイの文書表示品質は紙への印刷品質に劣る点も多いため、電子的に作成された電子文書を紙文書として紙に印刷する機会も多い。
こうした印刷された紙文書に手書きで加筆することは日常的に行われているが、元の電子文書と加筆された内容とは何ら関連づけられておらず、印刷された紙文書に加筆された内容を電子文書に反映させるには、電子文書をパソコンなどで開き再度編集する必要がある。このため、印刷された紙文書に対して行われた手書き作業を有効に利用できるよう、元の電子文書と関連づけられた形で加筆情報を電子化する手段が必要とされている。
これに対して、光学的に読取可能なコードシンボル(2次元コード)を紙面上にマトリックス状に並べ、紙面へペンで加筆するのと同時に、ペンに設けたカメラで2次元コードを読み取る発明が開示されている(例えば、特許文献1参照。)。特許文献1記載の発明によれば、カメラが読み取った2次元コードにより加筆している位置の座標情報を取得することができ、加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。特許文献1記載の発明では、文書を特定する文書固有の情報と紙上の座標位置を同時に白黒のパターンに変換し、紙に印刷する。白黒のパターンに誤り訂正機能を有する2次元コードを利用し、光学ペンによる読み取りが不安定な場合でも文書固有の情報と座標情報を取得できるような機能を有しているため、読み取りが不安定な場合でも読み取りが可能になっている。
また、2次元コードとして、X座標、Y座標、コードの方向を表すパターン及びホーミングパターンと呼ばれるコードの中心に配置されたその他のパターンより大きいパターンとを用いた加筆情報の電子化に関する発明が開示されている(例えば、特許文献2参照。)。特許文献2記載の発明では、2次元コードは不可視インクで印刷されるため肉眼では見られないが、所定のカメラを備えたペンを用いて紙面に加筆するのと同時に2次元コードを読み込むことができる。したがって、文書内容の判別を損なわずに加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。
更に、2次元コードとして、ドットを所定の位置からずらすことにより、1ドットで2ビット以上の情報を有することのできる2次元コードを用いた加筆情報の電子化に関する発明が開示されている(例えば、特許文献3。)。該2次元コードは水平及び垂直方向の座標情報を有しており、紙全体に連続的にドットが印刷されている。特許文献3記載の発明においても、小型カメラを備えたペンで紙面へ加筆するのと同時に2次元コードを読み取ることにより、加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。
特開平2000−293303号公報 USP5661506 WO 00/73981 A1
しかしながら、特許文献1記載の2次元コードは、サイズが大きくなるため、広い範囲の紙面を光学ペンで撮影しなければならない。このため、被写界深度などの問題で読み取った画像の品質が落ちるため、2次元コードを連続的に読み取ることが難しくなる。更に、当該2次元コードは筆記中にカメラで撮影され且つデコードするために作られたわけではなく、汎用の2次元コードを用いているため、デコード処理に時間がかかりリアルタイムで処理を行うことが難しい。連続的な加筆情報を取得しながら、2次元コードを読み取り座標位置を連続的に取得できなければ、加筆情報の不連続点が発生するので、正しい加筆情報が得られない。
また、特許文献2記載の発明では、不可視インクで2次元コードを印刷するため、一般の印刷装置を使用して2次元コードを印刷することは事実上不可能である。すなわち、この2次元コードを利用するためには、予め特殊な印刷装置において不可視インクを使用して2次元コードを印刷する必要がある。したがって、ユーザが印刷したい文書の情報を印刷時に印刷媒体に埋め込むためには別のバーコードを重畳して印刷するなどの手段が必要となるばかりか、文書に加筆する前に必ずそのバーコードを読ませる必要があり、利便性が損なわれる。仮に、バーコードを読む作業を忘れて別の文書に加筆を行ってしまうと、加筆情報と電子文書とのリンクが矛盾を起こす。また、可視インクで2次元コードを印刷することも考えられるが、特許文献2記載の2次元コードは他のパターンより大きいパターンを使用しているため、文書や加筆された内容の可読性が損なわれる。
また、特許文献3記載の発明では、2次元的に等間隔な点からわずかにドットをずらして配置することにより、1ドットに2ビット以上の座標情報を乗せることを可能とした2次元コードを開示している。しかしながら、位置をずらす量が30μmと非常に小さいため、一般に普及しているレーザープリンタ(解像度1200dpi程度)では、紙送りの精度、感光体の回転速度のむら等により正しいずれ量を再現することが難しい。したがって特許文献3記載の2次元コードの場合も、予めオフセット印刷等の印刷技術を利用して2次元コードを印刷した紙を用意する必要があるため、特許文献2と同様の問題がある。
本発明は、上記問題点に鑑み、高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段とを有することを特徴とする。
請求項1記載の発明によれば、バーコードのコード枠のコーナードットを検出し、コーナードットに基づきコード枠を検出できるので、高速なバーコードの読み取りができる。
また、請求項2記載の発明は、請求項1記載のバーコード読み取り装置において、前記コード枠検出手段は、前記コーナードット検出手段により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手段と、前記コーナードット位置推定手段により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手段と、 前記コーナードット候補検出手段により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手段とを有することを特徴とする。
請求項2記載の発明によれば、第一のコーナードットが検出されれば残りのコーナードットは位置を推定された後に、その推定位置の近傍で検出されるので、バーコードのコード枠を構成するドットを全て検出するしなくともよい。
また、請求項3記載の発明は、請求項2記載のバーコード読み取り装置において、前記コーナードット位置推定手段が、前記コーナードット判別手段がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、前記コーナードット検出手段により検出された前記第一のコーナードットの位置とが一致するか否かを判定するコーナードット一致判定手段を有することを特徴とする。
請求項3記載の発明によれば、第一のコーナードットに基づいて検出された他のコーナードットのうち所定のコーナードットから、逆に第一のコーナードットの位置を推定することで、第一のコーナードットの検出結果を検証することができる。第一のコーナードットの位置が検証されれば他のコーナードットの位置も検証される。バーコードのコード枠は、コーナードットを直線で結ぶことで検出できるので、コード枠を構成するドットが、文字、罫線、汚れなどで検出困難であっても、コーナードットさえ検出できればバーコードを検出できる。
また、請求項4記載の発明は、請求項1又は2記載のバーコード読み取り装置において、前記コーナードット検出手段又は前記コーナードット判別手段は、所定のドットに対し、 点対称なドットのペアを二組検出する点対称ペア検出手段を有することを特徴とする。
請求項4記載の発明によれば、所定のドットから走査することで、高速にドットを検出できる。また、コーナードットと推定されるドットに対し点対称なドットを検出することでコーナードットを検出できる。
また、請求項5記載の発明は、請求項2記載のバーコード読み取り装置において、前記コーナードット位置推定手段は、バーコードのコード枠の情報に基づきコーナードットの位置を推定することを特徴とする。
請求項5記載の発明によれば、バーコードの角数や辺の長さに応じコーナードットの位置を推定できるので、バーコードのコード枠を構成するドットをすべて検出しなくてもよい。
また、請求項6記載の発明は、請求項5記載のバーコード読み取り装置において、前記コーナードット位置推定手段は、所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定めることを特徴とする。
請求項6記載の発明によれば、コーナーを構成するコーナードット及びコーナードットに隣接するコード枠を構成するドットが生成する直線の延長方向に、他のコーナードットの方向を定めることができる。
また、請求項7記載の発明は、請求項2記載のバーコード読み取り装置において、前記コーナードット候補検出手段は、前記コーナードット位置推定手段により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出することを特徴とする。
請求項7記載の発明によれば、所定のドットから走査を開始することで、コーナードットの可能性の高いドットからコーナードット候補を検出できるので、高速にコーナードット候補を検出できる。
また、請求項8記載の発明は、請求項3記載のバーコード読み取り装置において、前記コーナードット一致判定手段は、前記コーナードット位置推定手段により推定された第一のコーナードットの位置と、前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定することを特徴とする。
請求項8記載の発明によれば、検出された第一のコーナードットの位置と、他のコーナードットから推定された第一のコーナードットの位置との距離が、所定の閾値内に入っていればコーナー枠が検出されたと判定できる。
また、請求項9記載の発明は、複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手順を有し、前記ドット検出手順により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り方法において、前記ドット検出手順により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手順と、
前記コーナードット検出手順により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手順とを有することを特徴とする。
また、請求項10記載の発明は、請求項9記載のバーコード読み取り方法において、前記コード枠検出手順は、前記コーナードット検出手順により検出されたコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手順と、前記コーナードット位置推定手順により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手順と、前記コーナードット候補検出手順により検出されたコーナードット候補が真のコーナードットであるかを判別するコーナードット判別手順とを有することを特徴とする。
また、請求項11記載の発明は、請求項10記載のバーコード読み取り方法において、前記コーナードット位置推定手順が、前記コーナードット判別手順がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、前記コーナードット検出手順により検出された前記第一のコーナードットの位置とが一致するか否かを判定するコーナードット一致判定手順を有することを特徴とする。
また、請求項12記載の発明は、請求項10記載のバーコード読み取り方法において、前記コーナードット検出手順又は前記コーナードット判別手順は、所定のドットに対し、 点対称なドットのペアを二組検出する点対称ペア検出手順を有することを特徴とする。
また、請求項13記載の発明は、請求項10記載のバーコード読み取り方法において、前記コーナードット位置推定手順は、バーコードのコード枠の情報に基づきコーナードットの位置を推定することを特徴とする。
また、請求項14記載の発明は、請求項13記載のバーコード読み取り方法において、前記コーナードット位置推定手順は、所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定めることを特徴とする。
また、請求項15記載の発明は、請求項10記載のバーコード読み取り方法において、前記コーナードット候補検出手順は、前記コーナードット位置推定手順により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出することを特徴とする。
また、請求項16記載の発明は、請求項11記載のバーコード読み取り方法において、前記コーナードット一致判定手順は、前記コーナードット位置推定手順により推定された第一のコーナードットの位置と、前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定することを特徴とする。
請求項9乃至16記載の発明は、請求項1乃至8記載のバーコード読み取り装置に適したバーコード読み取り方法を提供する。
また、請求項17記載の発明は、請求項9乃至16いずれか一項記載のバーコード読み取り方法をコンピュータに実行させるためのバーコード読み取りプログラムを提供する。
請求項17記載の発明は、請求項9乃至16記載のバーコード読み取り方法に適したバーコード読み取りプログラムを提供する。
高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供できた。
以下、本発明を実施するための最良の形態について、図を参照しながら実施例を上げて説明する。
〔2次元バーコード〕
始めに本実施例で用いる2次元バーコード(以下、単に2次元コードという)について説明する。図1は、本実施例で用いる印刷された文書の所定領域の一部が拡大された例を示す。点線で囲まれた領域2a、2b、2c及び2dは、それぞれが1つの2次元コードである。2次元コードは、光学的に読み取り可能な複数の黒ドットで構成されており、各2次元コードは縦横にマトリクス状に並べられている。図1の連続したドットで構成されたH1、H2及びH3のラインとV1、V2及びV3のラインは、各2次元コードの縦横の境界となる。なお、垂直線H1と水平線V1の交点、例えばドット15を2次元コードのコーナー(角)と称す。
2次元コード及び境界(以下、単に2次元パターンという)は、文書印刷時に文書の内容と同時に印刷される。2次元コード2a等には、印刷された文書の原本となる電子文書の識別(ID)情報と各2次元コードの位置する座標を表す情報がエンコードされている。
例えば、2次元コード2aには「水平座標=95、垂直座標=10、文書ID=10」がエンコードされ、2次元コード2bには「水平座標=96、垂直座標=10、文書ID=10」、2次元コード2cには「水平座標=95、垂直座標=11、文書ID=10」、2次元コード2dには「水平座標=96、垂直座標=11、文書ID=10」とエンコードされている。
ここで、2次元コードを構成するドットおよび2次元コードの大きさに関して図2を用いて説明する。ドット201は、2次元パターンを構成する1つのドットの一例を、セル202は、使用するプリンタで印刷できる最小ドットの大きさの一例を示す。
2次元パターンを構成するドット201は、使用するプリンタの最小ドット202の2×2単位で印字される。例えば1200dpiのプリンタならば、プリンタの最小ドット径は約21μmであるので、2次元コードのドットの直径は理想的には約42μmとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。本実施例では、各ドットをドットの直径の6倍の間隔を置いて水平・垂直方向に配置する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には2.8%、50%程度のドットゲインを見込んでも面積占有率は5%に満たない。5%程度の黒色の占有率では、人の目には明るい灰色に見えるのでドットに邪魔されて文書や加筆した文字が読みにくいなどという問題は起こらない。
以上のようにドットの配置を決定すると、本実施例では各2次元コードは、縦11個、横7個のドットにより構成されているため、各2次元コードの大きさは、横(水平)2mm、縦(垂直)3mm角となる。2次元コードの各位置を、例えば、紙面の左上の角の位置を原点として表す。例えば水平座標=95ということは、水平方向に95番目の2次元コードとなり、原点から水平方向に190mmの位置にあるということを意味する。同様に垂直座標=10は、垂直方向に10番目の2次元コードとなり、紙面の左上の原点から、垂直方向に30mmの位置にあるということを意味する。
なお、詳しくは後述するが、水平2mm、垂直3mm角の大きさは、A4サイズの用紙と相似の形状であり、水平・垂直座標情報を有効に格納することが可能になる。
文書IDについて説明する。文書IDとは、元の電子文書の固有情報、例えば電子文書が格納されているデータベースの識別IDである。すなわち、2次元コード2aは文書IDが10であるので、2次元コード2aは、その左上の角(垂直線H1と水平線V1の交点)が、「紙面左上から水平190mm、垂直30mmの位置にあり、印刷されている文書はそのIDが10の文書である」、という情報を有する。
続いて、2次元コードに配置するデータの詳細を図3を用いて説明する。図3は、図2の2次元コード2aを示す図である。2次元コード2aはコード枠を構成するH1、H2、V1、V2に囲まれた7×11のセルを有する。セルとはドットが配置され得る場所をいう。したがって、本実施例の2次元コードは最大77個のドットを含み得る。
本実施例では、2次元コードをいくつかの領域に分割し、各領域に所定の情報を配置する。領域401は、水平座標を表すデータを配置する領域であり、4×2のセルを有する。1セル1ビットに相当するので1バイトの容量を有する。領域402は、垂直座標を表すデータを配置する場所である。水平座標の領域と同様に1バイトの容量を有する。
A4サイズの用紙は水平210mm、垂直297mmの大きさであるので、2次元コードの1つの大きさが、水平2mm、垂直3mmであることから、水平方向には105個、垂直方向には99個の2次元コードを配置できる。1バイトで表現できる数は2=256であるので、1バイトでA4サイズの用紙における位置情報を表示できる。用紙サイズがA3の場合には、水平297mm、垂直420mmの大きさであるので、水平方向に148個、垂直方向に120個の2次元コードが配置される。この場合も1バイトのデータ容量があれば十分である。A2サイズの場合は、水平420mm、垂直594mmの大きさであるので、水平方向に210個、垂直方向に198個の2次元コードが配置できるが、この場合も1バイトのデータ容量で十分である。
このように紙の縦横の長さの違いに応じて2次元コードの縦横の長さを適切に決定すると、水平・垂直座標を表すビット数(データ長)を一定サイズに固定しても幅広いサイズの用紙に対応できる。
次に、領域403は文書IDを表すデータを配置する場所である。4×6の24ビット(=3バイト)の容量を有する。領域404乃至407は、誤り訂正用の符号を配置する場所である。それぞれ、1バイトずつの容量を有し、誤り訂正用符号は合計4バイトで構成される。領域408及び409は、2次元コードの上下方向を表すためのパターンで、領域408は3×1の黒ドット、領域409は2×1のドット無しのパターンで、2次元コードの上下を判別するために使用される。
次に、各領域に配置されるビット列について説明する。図4は、各領域に水平座標など各データのビット列がどのように配列されるかを示す。領域401から407において、1はMSB(最上位ビット)、8はLSB(最下位ビット)を示す。
〔文書管理システム〕
続いて、2次元コードを用いた文書管理システムについて説明する。図5は、2次元コードを用いた文書管理システムの概略構成図を示す。図5の文書管理システムは、プリンタ601、複写機602、スキャナ603、パソコンなど情報処理装置604及び609、記憶装置605、携帯情報端末608、ペン型座標入力装置607、を有し、ネットワークを介しそれぞれが接続されている。また、記憶装置605は、文書管理データベース606及び印刷される文書を有する。文書管理データベース606は、各文書に識別のためのIDを付加するなど、各文書を管理するためのデータベースである。
本実施例では、2次元コードを読み取り、現在手書きしている文書のID番号及び位置を情報処理装置などへ出力する。この2次元コードを読み取るための装置として、図5のペン型座標入力装置607について説明する。
ペン型座標入力装置607は、人が手に持って筆記動作を行うことができる筆記具状の装置本体807を備えている。この装置本体807の先端部805には、筆記具813、すなわち、ボールペン、シャープペンシルの先端部分等が取り付けられており、文書に加筆可能である。装置本体807の側部に設けられた画像読取装置806は、CCDなどの光電変換素子806aと、レンズなどからなる光学系806bとから構成されていて、印刷文書上の画像を読み取る装置である。なお、画像読取装置806には、必要に応じて照明を設けてもよい。
装置本体807には、マイコン808が搭載されていて、このマイコン808には、画像読取装置806が電気的に接続されている。画像読取装置806で読み取った印刷文書の画像に基づいた各種処理がマイコン808でなされる。すなわち、読み取った2次元コードをデコードし、2次元コードの紙面上の座標及び文書IDを検出する。2次元コードの読み取り方法については後述する。また、マイコン808は装置本体807とは別の外部のパソコンなどの情報処理装置604と接続可能であり、マイコン808内に蓄積したデータを情報処理装置604に出力可能である。なお、図5では、画像読取装置806、マイコン808などに電力を供給する電源や、マイコン808と情報処理装置604とのインターフェースなどは図示を省略している。
図6は、マイコン808の構成図を示す。マイコン808では、バス880を介してCPU(中央処理装置)881、ROM(リードオンリーメモリ)882、RAM(ランダムアクセスメモリ)883、2次元コード読み取り装置884が電気的に接続されている。各種外部装置とはバス880を介して電気的に接続されている。ROM882には、ペン型座標入力装置607の動作を制御するプログラムやマイコン808を動作させるプログラムがあらかじめ内蔵されている。RAM883は画像読み取り装置806から読み取った画像や、コード読み取り中に生成される中間データ、2次元コードをデコードした際に得られる文書IDや座標を一時的に保存する。2次元コード読み取り装置884については後述するが、RAM883に記憶された画像から2次元コードを検出し、読み取った文書IDや座標を検出する作業を行う。
さらに、マイコン808には、LCD表示装置809、LED810、あるいはブザー811が接続され、情報処理装置604から受信した情報をLCD表示装置809に表示したり、あるいは特定の情報を受信した場合にはLED810を点滅させたり、ブザー811を鳴らしたりして外部に通知することが可能である。
装置本体807には、先端部805の部分が筆記面に接触しているかどうかを検出する圧力センサ812が設けられている。すなわち、先端部805が筆記面に接触することにより先端部805に加わる圧力が筆記具813を介して圧力センサ812に伝達される。圧力センサ812はこの圧力を感知し、感知した情報をマイコン808に伝送する。

ペン型座標入力装置607を用いることで、印刷文書上での先端部805の位置検出を連続的に行えば、印刷文書上での先端部805の移動軌跡を求めることができる。また、前述のように先端部805が筆記面に接触しているかどうかを検出する圧力センサによって、紙面上に筆記を行ったときの筆記軌跡を忠実に求めることができる。
仮に、2次元コードが存在しない文書に加筆するような場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をLCD809あるいはLED810を用いて行いユーザに通知する。
〔2次元コードが印刷された文書の印刷〕
続いて、2次元コードが印刷された文書の印刷例について図5及び図7を用いて説明する。図7は、2次元コードを作成し、生成された2次元コードを印刷すべき文書に重畳し、文書を印刷するまでの処理のフローチャート図を示す。
2次元コードは、情報処理装置604又は609において、文書の印刷命令が実行された場合に、情報処理装置604又は609が有するプリンタドライバで作成される。プリンタドライバはまず、記憶装置605内の文書管理データベース606に問い合わせて印刷しようとする文書のページ毎の文書IDを発行してもらう(S501)。
次に、紙面のサイズに応じて座標情報を意味する座標データが決定される(S502)。文書IDと座標データを発行してもらったら、文書IDと文書上の座標情報とをあわせ、エンコードすべきデータを作成する。例えば、文書IDは123456、座標情報はmm単位で(24、123)という具合である。
次にデータをエンコード(符号化)する。データのエンコード処理(S503)及び誤り訂正符号追加(S504)の処理を図8に基づき説明する。文書IDは6桁の数字が3バイトのバイナリ値に変換される。また、水平座標は、紙面左上の原点からmm単位で表すと24mmであるので、2次元コードの水平方向の長さ2mmで割って24/2=12、垂直座標は、座標情報では123mmであるので、2次元コードの水平方向の長さ3mmで割って123/3=41となる。前記の通り、水平・垂直座標が、それぞれ1バイトずつに収まる。
座標情報はこのように2バイトのバイナリ値に変換し、文書IDとあわせて計5バイトのデータとする(図7及び図8のS503)。
データをエンコードした後、エンコードデータに基づき誤り訂正符号を追加する(図7及び図8のS504)。図8の例では5バイトのデータに対して4バイトの誤り訂正符号を付加している。この誤り訂正符号には、リードソロモン符号を採用する。リードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論(コンピュータ基礎講座18)」宮川、岩垂、今井共著など、多数の書籍に記されている。本発明の場合には、誤り訂正符号長が4バイトの場合、2バイトまでの誤り訂正が可能である。
このようにして作成されたエンコードデータおよび誤り訂正符号データは図3で説明した2次元コードの各領域に割り当てられ、2次元コードがページ全体に配置されたマトリクスの画像ができあがる(S505)。これで1ページ分の処理が終了したので(S506のはい)、全ページが終了するまで処理を繰り返す(S507)。
その後、プリンタ601や複写機602のプリンタ部を使用して印刷を行う。印刷が正常に終了したら、プリンタドライバは、文書管理データベース606に正常に印刷された文書、ページ数、文書IDの情報の登録を行う。
図9は、図7の処理を背景に2次元コードが印刷された文書を作業者が印刷する流れを示したフローチャート図である。まず、作業者は、図5の記憶装置605に保存されている文書を必要に応じ編集する(S901)。作業者が、文書の印刷を所望する場合は印刷命令を出す(S902)。この時点で、図7で説明した処理が行われ、2次元コードが配置された紙面に、S901で編集した文書が重畳されて、プリンタ601や複写機602で文書の印刷が実行される。印刷が正常に終了したならば(S903のはい)、プリンタドライバは、印刷に成功した文書IDを文書管理データベース606に登録する(S904)。
図10は、2次元コードが重畳され印刷された文書の一例を示す。印刷文書1001は所定のフォーマットを有する帳票文書の一例であり、背景には2次元パターンが印刷されている。拡大部分1003は、印刷文書1001の一部1002を拡大したものである。拡大部分1003において、ドット1004は図3の領域408に相当し、上下の方法を示す。ドット1004以外の黒いドットはコード枠を、白いドットはデータドットの一例である。
ここまでで、2次元コードが印刷された文書の印刷が行われたので、続いて、2次元コードの読み取りについて詳述する。
〔2次元コード読み取り装置〕
図11は、図6で説明した2次元コード読み取り装置884の機能構成図を示す。まず、図5の画像読み取り装置806で読み取られた紙面の画像(白黒8ビット画像)が入力され、コード位置検出器1101で、画像内にある複数の2次元コードから一つの2次元コードの枠を検出する。詳細は後述する。撮影された画像の一例を図12に示す。図12においては、ドットで構成される複数の2次元コードが撮影されている。
2次元コードの位置を検出できたら、データ取得器1102において、2次元コードの各白黒セル(ドットが配置されるべき位置)に応じて0または1のデータを取得し、2次元コードのデータ配置規則に従ってデータの並べ替えが行われる。次に、データ置換器1106は、取得したデータに対して、連続筆記検出器1105から出力される連続筆記中であるか否かを示す信号に応じ、連続筆記中である場合には、既知情報メモリ1108から既知の文書IDを読み出し、データ置換器において2次元コードから取得したデータの文書IDに相当する部分を既知の文書IDで置き換える。ここで、連続筆記検出器1105は、ペン型座標入力装置807には不図示であるが、加筆時にペン先に感じる圧力を検出する圧力センサの出力信号を入力して筆記中かいなかを判定する筆記検出器の出力を入力し、筆記の状態が所定時間以上続くと連続筆記中であると判断し、それ以外の場合を連続筆記中ではないと判断して、その信号を出力する。
文書IDに基づきデータが置換される例を図13に示す。図13の表では、第一行目は正しいデータ、すなわち読み取られる前のエンコードされ誤り訂正符号が付加されたデータである。第二行目は画像から2次元コードを抽出してコードのドットからデータを再構成したものである。Y座標とID情報の1、2番目に誤りがある。この場合三つの誤りがあるため、誤り訂正は不可能である。しかしながら、3行目のように、既知情報として文書IDを置き換えることにより、IDの部分の誤りがなくなり、誤りはY座標の1バイトだけとなり、誤り訂正が可能となって正しい座標情報、ID情報が得られる。
続いて、データ置換器1106は、誤り訂正器1107に置換されたデータを出力し訂正処理を行う。誤り訂正器1107からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。この誤り訂正されたデータは文書IDと座標情報である。出力された誤り訂正の判定情報はデータ復号器1109、ペン先座標算出器1110、既知情報メモリ1108へ入力され、それぞれの機器の制御に使用される。データ復号器1109は、誤り訂正の判定情報が誤り訂正の成功の場合に動作する。誤り訂正失敗であればデータ復号器は動作しない。
ペン先座標算出器1110は、誤り訂正の判定情報が誤り訂正成功であり、かつ筆記検出器の出力が筆記中であれば、ペン先座標を算出して出力する。誤り訂正失敗の場合や筆記中でない場合ならば現実にはありえない座標値((−1、−1)等)を出力する。また、既知情報メモリ1108では、誤り訂正が成功である場合、誤り訂正された情報の文書IDに相当する部分を新たに保存する。
誤り訂正に成功したデータはデータ復号器1109により、紙面上の座標情報と文書IDに復号される。紙面上のIDは、図13の例では、水平座標=24mm、垂直座標123mm、文書ID=23となる。この座標およびデコードに成功した2次元コードの画像を用いて、ペン先座標算出器はペン先の紙面上での座標を算出する(詳細は後述する)。これによりペン型座標入力装置607の先端部805の位置が確定する。以上により、文書ID、ペン先の紙面上での座量が取得される。
(コード位置検出器)
コード位置検出器1101の詳細を説明する。コード位置検出器1101の機能構成図の一例を図14に示す。コード位置検出器1101は、図14に示すように、入力画像からドットおよびその位置を検出するドット検出器1401と、検出したドット画像からコード枠を構成するドットを検出し、コードの位置を決定するコード枠検出器1402とからなる。
・ドット検出器1401
ドット検出器1401がドットを検出する方法を図15を用いて説明する。撮影された画像の中から所定の画素を決定し、該画素を注目画素Zとする。注目画素Zにドットが存在するか否かは、次のように判定する。
注目画素Zの周囲画素、図15では斜線で記された画素(A〜H)にすでに検出されたドットが存在せず、且つ、注目画素Zの画素値が周囲画素(I〜X)のどの画素値よりも所定の値(Th)以上に小さい場合に注目画素Zに2次元コードのドットがあると検出する(画素値は、黒=0、白=255で表すとする)。すなわち、
画素(A〜H)にすでに検出されたドットが存在しない
且つ
Zの画素値<周囲画素(I〜X)− 所定の値(Th)
の場合に注目画素Zに2次元コードのドットがあると検出する。
所定の値(Th)の設定について説明する。Thが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。また、Thが大きければノイズを検出せずにドットを検出する確率が高くなるが、ドットが連続するコード枠を検出することが難しくなり座標取得率が小さくなる。図16にThの大きさと座標取得率の関係を示す。文書IDを置き換えた場合と置き換えない場合との両方のデータを記載した。
・コード枠検出器1402
続いて、コード枠検出器1402について説明する。コード枠検出器1402は図17のように構成されている。図17は、コード枠検出器1402の機能構成図の一例を示す。
コード枠検出器1402は、ドット画像およびドット位置を入力しその画像中のあるドットがコーナーであるかいなかを検出する第一コーナー検出器1701、第一コーナーとともにコード枠の短辺の一端を成す第二コーナーの位置を推定する第二コーナー位置推定器1702、推定された第二コーナー位置近傍で真の第二コーナーを検出する第二コーナー検出器1703、第二コーナーとともにコード枠の長辺の一端を成す第三コーナーの位置を推定する第三コーナー位置推定器1704、推定された第三コーナー位置近傍で真の第三コーナーを検出する第三コーナー検出器1705、第三コーナーとともにコード枠の他の短辺の一端を成す第四コーナーの位置を推定する第四コーナー位置推定器1706、推定された第四コーナー位置近傍で真の第四コーナーを検出する第四コーナー検出器1707、第四コーナーとともにコード枠の他の長辺の一端を成す第一コーナーの位置を推定する第一コーナー位置推定器1708、推定された第一コーナー位置が最初に検出された第一コーナーの近傍にあり、且つ、検出した各コーナーが一つのコード枠であるかいなかを判定する第一コーナー一致判定器1709とからなる。
なお、説明のため、コーナーに第一〜第四の名称をつけているが、第一のコーナードットは、二次元コードのコード枠のいずれのコーナーであってもよい。
図18は、コード枠検出器1402がコーナーを検出する手順を示す図である。第一コーナー検出器1701は、ドットが検出された画像の中で、あるドット(X)が2次元コードのコーナーであるかいなかを判定する(詳細は後述する)。第二コーナー位置推定器1702は、第一コーナーと判定されたコーナーから、ドットで構成されるコード枠の方向(X→B、X→D)に、8ドット離れたドットの位置を推定する。そして、推定された位置のうち、第二コーナードット(B、D)の近傍位置を検出する。第二コーナー検出器1703は、第二コーナー位置推定器1702で推定された第二コーナー位置の近傍に第二コーナーがあるかいなかを検出する。第三コーナー位置推定器1704は、第二コーナーB又はDから、ドットで構成されるコード枠の方向に(B→G、D→E)12ドット離れた位置を時計回り方向に推定する。そして、第三コーナードット(G、E)の近傍位置を検出する。第三コーナー検出器1705は、第三コーナー位置推定器1704で推定された第三コーナー位置の近傍に第三コーナーがあるかいなかを検出する。第四コーナー位置推定器1706は、第三コーナー(G又はE)からコード枠の8ドット離れた位置を時計回り方向に追跡し第四コーナードット(G→C、E→A)の近傍位置を検出する。第四コーナー検出器1707は、第四コーナー位置推定器1706で推定された第四コーナー位置の近傍に第四コーナーがあるかいなかを検出する。第一コーナー位置推定器1708は、第四コーナー(C又はA)からドットで構成されるコード枠の12ドット離れた位置を時計回り方向に推定し(C→X、A→X)、第一コーナードット(X)の近傍位置を検出する。そして、第一コーナー一致判定器1709は、第一コーナー検出器1701で検出された真の第一コーナーと第一コーナー位置推定器1708で推定された位置とが近傍にあるか否かにより、検出した4つのコーナーが一つのコード枠を形成するかいなかを判定する。
以上の手順により、図14のコード枠検出器1402は、図18の(1)または(2)のどちらか一方の2次元コードのコード枠を検出する。コード枠が検出されるとそれを構成するドットの画像上の座標を検出できる。(1)と(2)のどちらが先の処理対象になるかは、ドットXに最も近いドットを持つ方向により決定する。また、一方が検出できればそれでコード枠検出は終了するが、一方のコード枠検出ができなかった場合、他方のコード枠検出を行うことになる。
次に、第一コーナー検出器1701による第一コーナー検出の動作を図19を用いて説明する。図19(a)は、第一コーナー検出器1701の機能構成図の一例を、図19(b)は、注目画素を中心にした17×17の画素を表す図を示す。第一コーナー検出器1701は、図19(a)に示すように、2次元コードが撮影された画像のなかで注目ドットの周囲で4つ以上のドットが存在するかいなかを検出する周囲ドット検出器1901と、検出された周囲ドットから、注目ドットに関して点対称となる二組のドットのペアを検出する点対称ペア検出器1902から構成される。
・周囲ドット検出器1901
図19(b)を用いて、周囲ドット検出器1901と点対称ペア検出器1902について説明する。図19(b)は、ドットが検出された画像であり、画素Nに当該ドットが検出されている。画素Nのドットを注目ドットNと称し、画素A〜Fには他のドットが存在する。
周囲ドット検出では、注目ドットNを中心とする所定長のLen
x Len画素の中で、注目ドットNから渦巻状に他のドットを探索し、注目ドットNの周囲に存在するドットを最大6つ検出する。Lenの典型的な値は17である。ノイズをドットとして誤検出する場合もあるので、二組のペアを作成するために必要となる4つのドットを検出するだけでなく、最大6つのドットを検出するようにする。三つ以下のドットしか検出できなかった場合はこのドットNはコーナードットではないと判定し、処理を終了する。図19(b)の例では、A〜Fの6ドットが存在する。これが周囲ドットとして検出される。
・点対称ペア検出器1902
続いて、点対称ペア検出器1902では、ドットA〜Fのうちで、注目ドットNとの距離が近く、その中間点がNに近く、かつ両ドット間の距離が小さいものを二組検出する。図19(b)の場合、(A、C)、(B、D)の二組がそれに相当する。EおよびFはノイズまたはコーナー最近傍のドットではないと判断される。このようにして注目ドットNおよび周囲の二組の点対称ペアが検出されると、注目ドットNは第一コーナーとして検出される。
・第二〜第四及び第一コーナー位置推定器
次に、図17の第二コーナー位置推定器1702の詳細を図20に基づき説明する。ここで、第一、第二、第三、第四コーナー位置推定器はコーナー名が変わるだけで、一部のパラメータ以外は同じ構成であるので、他のコーナーの位置推定器うち重複する部分の説明は省略する。図20は、2次元コードのコーナー付近を構成するドットを示す図である。Xは第一コーナー検出器1701より検出された第一コーナードットであり、A〜Iはコード枠を構成するドットである。このうちA〜Dは、図19の点対称ペア検出器1902により検出されているため既知である。ドットYは、第二コーナードットの推定位置、ドットY’は真の第二コーナードットである。
第二コーナー位置推定器1702は、XからドットDEFの方向にあるコーナーの位置を推定する。コーナー位置の推定処理の説明のため、適当な原点を始点とし、ドットA〜I及びXを終端とする座標ベクトルを用いる。
第二コーナー位置は、第一コーナーから8ドット離れた位置にあるため、
第二コーナー位置推定器では、
Y= (D − B)8/2 + X
を計算する。ベクトルDからベクトルBを減算することで、XからY方向を向くベクトルが得られる。このベクトルは長さが2ドット分あるため2で除算し、これにベクトルXを加算することでXから8ドット分離れた第二コーナードットYを推定する。したがって、ベクトルYは、第二または第四コーナードットYの推定ベクトルである。
また、第一、第三コーナー位置推定器では、縦方向のドット数12を用いて、
Y= (D − B)12/2 + X
で計算される。Yは第一または第三コーナードットYの推定ベクトルである。
・第二〜第四コーナー検出器
第二コーナーの位置が推定されたので、次に、第二コーナー検出器1703について説明する。図21は、第二コーナー検出器1703の機能構成図の一例を示す。第二コーナー検出器1703は、第二コーナー位置推定器で推定された画素位置(従って位置が推定されたドットYのある画素)を中心として、その周囲にある一つ以上のドットを検出するコーナードット候補検出器2101、及び、検出されたコーナードット候補がコーナーであるか否かを判定するコーナー判定器2102とからなる。なお、第三、第四コーナー検出器については、第二コーナー検出器1703と同様であるので説明は省略する。
コーナードット候補検出器2101の詳細を図22に基づき説明する。図22は、位置が推定されたコーナードットYを有する画素を中心としたSlen × Slen 画素の大きさの領域である。Slenの典型的な大きさは12である。図22の領域の中心にある斜線で表された画素は、推定されたコーナー位置である。ここを中心として外側へ向かって渦巻状(図22の点線)にドットを探索する。ここでも、図19の周囲ドット検出と同様に、領域内の6つのドット(番号1〜6)を検出する。
次に、図21のコーナー判定器2102が、コーナードット候補検出器2101で検出されたドットがコーナードットか否かを判定する。図23は、コーナー判定器2102の機能構成図の一例を示す。コーナー判定器2102は、コーナードット候補検出器2101で検出されたドット候補の位置を記憶しておくFIFOの記憶装置2301とコーナードット候補がある画素位置のドットがコーナードットか否かを判定するコーナードット判定器2302とからなる。コーナードット判定器2302でコーナーと判定されたドットがあれば、その位置が出力されるとともに、FIFOの記憶装置2301に残っているドット位置情報は破棄される。コーナードット判定器2302でコーナーと判定されなかった場合は、FIFOから次のドット位置が読み出され、コーナードット判定器2302はそのドット位置がコーナーであるか否かを判定する動作をする。コーナードット判定器2302は、図19の第一コーナー検出器1701と同等の構成で行われる。すなわち、図22のドット1がコーナードット候補検出器2101で検出されたら、ドット1を図19における注目ドットNとして、周囲ドットの検出及び点対称ペア検出を行う。コーナードット判定器2302の判定の結果、コーナードットと判定されたら第二コーナーの位置情報を出力する。
同様の処理の結果、順次、第二〜第四の各コーナーの位置を検出したら、図17の第一コーナー位置推定器1708は、第四コーナーの位置から第一コーナーの位置を推定する。そして、図17の第一コーナー一致判定器1709は、第一コーナー位置推定器1708により推定された第一コーナーの位置と、最初に第一コーナー検出器1701で検出された第一コーナーとが所定の距離にあるかいなかを判定し、今回判定された各コーナーが一つのコード枠を形成するコーナーであるかいなかを判定する。
・第一コーナー一致判定器1709
第一コーナー位置推定器1708により推定された第一コーナーと、第一コーナー検出器1701によりあらかじめ検出された第一コーナーとが所定の距離にあるか否かの判定には、式(1)または式(2)を用いる。
|Y'−Y|
< Dth1 …(1)
又は
|Y'x −Yx|
<Dth1 且つ |Y'y−Yy| <Dth2 …(2)
ただし、|Y’−Y|は推定された第一コーナーベクトルYと第一コーナーベクトルY'の距離。Y'x、Y'y
はそれぞれベクトルY'のx成分、y成分であり、Yx、YyはそれぞれベクトルYのx成分、y成分である。Dth1、DTH2は所定の閾値を表す。典型的な値は10である。従って、第一コーナー位置推定器1708により推定された第一コーナーと、第一コーナー検出器1701によりあらかじめ検出された第一コーナーとが所定の閾値(距離)よりも近い場合に、第一コーナー一致判定器1709は、2次元コードのコード枠が検出されたと判定する。
以上で、図11のコード位置検出器1101により2次元コードのコード位置が検出された。次に図11のデータ取得器1102の説明を図24に基づき行う。
(データ取得器)
図24(a)は、ドットで構成された2次元コード及びコード枠を示す。図24(b)は2次元コードの各ドットの位置を仮想座量で表す図を示す。図24(c)は、2次元コードのデータを取得する処理の一例を表すフローチャート図を示す。図24(d)は、2次元コードのデータを取得する処理の別の例を表すフローチャート図を示す。
以下、図24(c)に従って、2次元コードのデータを取得する方法を説明する。図24(a)では、コード枠のコーナーをそれぞれa0、b0、c0、d0とし、コード枠のうち、コーナーの4点を除いたドットをa1〜a7、b1〜b11、c1〜c7、d1〜d11、とする。2次元コードのデータを取得するには、a1〜a7とc1〜c7とを結ぶ垂直線、b1〜b11とd1〜d11とを結ぶ水平線を引き、垂直線と水平線との交点を検出する。該交点が、2次元コードのデータドットの存在位置となる。
垂直線と水平線との交点を検出するためのひとつの方法として、射影変換を用いる。図24(b)は、2次元コードの各ドットの仮想座標を示す。4つのコーナーの位置は既知であるので、これらに対応する座標、a0とAv0(0、0)、b0とBv0(8、0)、c0とCv0(8、12)、d0とDv0(0、12)は既知である。射影変換について詳しくは後述するが、これらの対応する4点からa0=f(Av0)、
b0=f(Bv0)、 c0=f(Cv0)、d0=f(Dv0)を満たす8元1次連立方程式を作り、これを解くことで各データドットの画像座標が求められる(S2401)。
f(x)は未知パラメータが8つの関数であるので、連立方程式を解くことにより、図24(b)の仮想座標から画像座標への変換が可能になる。仮想座標から画像座標への変換が可能になると、仮想座標(1、1)〜(7、11)から画像座標への射影変換が可能になり、データドットの存在位置を検出することができる(S2402)。しかしながら、データドットの存在位置は理想の位置であるので、必ずしも実際のドットがその位置にあるわけではなく、1画素程度ずれて存在していることもある。したがって、データドットの検出は、射影変換により得られたデータドットの存在位置を中心として3x3画素領域を探索してドットの有無を検出する(S2403)。この領域にドットが存在すれば、その位置のデータは"1"となり、存在しなければ"0"とする。これを2次元コード内の77個の仮想座量に対して行ってコードデータを取得する。
2次元コードのデータが取得されたら、図4で説明したデータ配置規則に従ってデータを再構成する(S2404)。この際2次元コードの上下方向の判定は、図4の領域408と領域409を参照して、領域408に存在するデータは全て“1”、領域409に存在するデータは全て”0”であるはずとの前提の下、取得したデータとの一致度が高い向きに合わせる。
データドットの存在位置の検出は、射影変換を行う以外にも方法はある。例えば、図24(d)のフローチャートに示したように、a0-b0間を8等分する点をそれぞれa1〜a7、 b0-c0間を12等分する点をそれぞれb1〜b11、d0-c0間を8等分する点をそれぞれc1〜c7、a0-d0間を12等分する点をそれぞれd1〜d11とし、各データドットの存在位置は、線分axcxと線分bydy(ただし、x=1、…、7、y=1、…、11)との交点から求められる。該交点の座標を中心に3x3画素の領域でドットが存在するかいなかを検出すれば、2次元コードのデータドットが得られる。
(ペン先座標の算出)
ペンに備えられたカメラで撮影された2次元コードのデータドットが得られたので、次に、ペン先の座標の算出について説明する。
図25は、図11で説明したペン先座標算出器1110の機能構成図を示す。ペン先座標算出器1110は、図25に示すとおり、射影パラメータ算出器2501とペン先座標変換器2502とからなる。まず、射影パラメータ算出器2501に、画像上の2次元コードのコーナー座標と、それに対応する紙面上の2次元コードのコーナー座標を入力する。それらから射影パラメータを算出する。射影パラメータの算出方法を、図26を用いて詳述する。
図26は、射影パラメータの算出方法を示す図である。図26(a)は、撮影された画像における2次元コードのコーナー(As〜Ds)とペン型座標入力装置607の先端部805の座標(Ps)を示す。ペン型入力装置607では画像読取装置806と先端部805は固定されているため、座標Psは常に一定である。先端部805はペン型座標入力装置607の構成により画像読取装置806で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
図26(b)は、紙面における2次元コードのコーナー(Ar〜Dr)とペン型座標入力装置607の先端部805の座標(Pr)である。2次元コードのデコードによりArが決定されるのでその隣接コーナーであるBr〜Drは自動的に決まる。ここで、座標As〜Ds、及び、座標Ar〜Drが求められと、両者の関係から変換式が求められる。
Figure 2005070980
変換係数b1〜b8は未知数であるが、コーナー座標の関係により8つの一次方程式が作られる。この連立方程式を解く事によりb1〜b8のパラメータが算出される。このパラメータを用いることで、ペンの先端部805の画像座標Psを紙面上の座標Prに変換する。
以上を要約すると、画像上の2次元コードのコーナー座標As〜Dsは図11のコード位置枠検器1101により算出され、ペン先座標Psは固定されているので既知であり、紙面上の2次元コードのコーナー座標Arは2次元コードのデコードにより求められ、Br〜DrはArに隣接する座標であるので算出できる。Prは数式1により求められる。
〔上記実施例の変形例〕
次に、2次元コード読取装置の変形例について説明する。図27は、本変形例における2次元コード読み取り装置の機能構成図を示す。図27の2次元コード読み取り装置は、2つの誤り訂正器(第1誤り訂正器1107a、第2誤り訂正器1107b)がある点と、それに伴い選択器1111がある点で図11と異なる。なお、図11と同一構成部分には同一符号を付し、その説明は省略する。第1誤り訂正器1107a及び第2誤り訂正器1107bの機能は図11の誤り訂正器1107と同一である。
選択器1111の機能を説明する。連続筆記検出器1105において連続筆記中であると判断された場合は、常に第2誤り訂正器1107bの出力を選択し、図11の2次元コード読み取り装置と同一の動作を行う。筆記検出器の出力が筆記中であり、かつ連続筆記中でない場合、すなわち筆記の開始時には、選択器1111は次のような動作を行う。第1誤り訂正器1107aが出力する誤り訂正判定情報が誤り訂正成功の場合には第1誤り訂正器の出力が選択される。第1誤り訂正器が出力する誤り訂正判定情報が誤り訂正失敗の場合には、第2誤り訂正器の出力が選択される。
このような処理を行うと、新しい加筆が行われる際に、同一の文書への加筆ならば装置としての誤り訂正率が向上するので図11の装置より有利である。
〔ソフトウェアによる2次元コード読み取り〕
これまで説明してきた図6の2次元コードの読み取り装置884はハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよい。この場合は2次元コード読み取り方法を実現するプログラムがマイコン808のROM882に格納されており、そのプログラムの命令が順次CPUにロードされて命令の実行が行われ、2次元コードの読み取り処理がなされる。
図28は、ソフトウェアによる処理手順を示すフローチャート図である。図28(a)は、2次元コードのデコードの処理を、図28(b)は誤り訂正手順の処理を示す図である。まず、画像入力を行った後、S2801において2次元コードの位置を検出する。
S2801のコード位置検出ステップの詳細を図29のコード位置検出処理のフローチャート図に示す。図29のフローチャート図は、画像からドットを検出するドット検出ステップ(S2901)と検出したドットからコード枠を検出するコード枠検出ステップ(S2902)とからなる。ドット検出ステップ(S2901)におけるドットの検出方法は、図15において説明したドット検出の方式と同じである。また、コード枠検出ステップ(S2902)の処理を示すフローチャート図を図30に示す。図30のフローチャート図の各ステップは、図17に示したコード枠検出器の各ブロックと対応した機能を実現するように構成されている。すなわち、S3001は第一コーナー検出器1701の機能を実現し、S3002は第二コーナー位置推定器1702の機能を実現し、S3003は第二コーナー検出器1703の機能を実現し、S3004は第三コーナー位置推定器1704の機能を実現し、S3005は第三コーナー検出器1705の機能を実現し、S3006は第四コーナー位置推定器1706の機能を実現し、S3007は第四コーナー検出器1707の機能を実現し、S3008は第一コーナー位置推定器1708の機能を実現し、S3009は第一コーナー一致判定器1709の機能を実現する。
図29及び30の処理が終了し図28のコード位置の検出(S2801)が終了すると、データ取得ステップ(S2802)において、2次元コードの白黒に応じて0または1のデータを取得し、取得したデータの並べ替えを行う。データ取得ステップ(S2802)は図24(c)又は(d)に示したフローチャート図に従って実行される。したがって処理内容は図11又は27のデータ取得器1102の機能が実現するものと同等である。
続いて、S2802で取得したデータの誤り訂正を行う(S2803)。まず、取得したデータが連続筆記中(図5のペン型座標入力装置先端部805が常に紙面に押し付けられている)であるかどうかを判定し(S2811)、連続取得中ならば(S2811のはい)、データ置換ステップ(S2812)において既知情報(文書ID)でデータ置換を行う。データ置換を行った後、誤り訂正ステップ(S2813)で誤り訂正を行う。誤り訂正が成功した場合には(S2814のはい)、文書IDを保存するステップ(既知情報保存ステップS2815)においてデコードされた既知情報(文書ID)を保存する。
続いて、データ復元ステップ(S2805)において元のデータ(座標情報)を復元し、ペン先座標算出ステップ(S2806)において、ペン型座標入力装置607の先端部805の紙面上の座標を求める。
S2811において、取得したデータが連続筆記中でなかった(初めての加筆である)場合(S2811のいいえ)、データの置換は行わず、誤り訂正ステップ(S2813)で誤り訂正を行う。誤り訂正が成功した場合は(S2814のはい)、文書IDを保存するステップ(既知情報保存ステップS2815)で文書ID(既知情報)を保存し、データ復元ステップ(S2805)で元のデータ(座標情報)を復元し、ペン先座標算出ステップ(2806)でペン型座標入力装置607の先端部805の紙面上の座標を求める。
以上の処理により、コード位置の検出(S2801)、データ取得(S2802)、誤り訂正(S2803)、座標・文書ID復元(S2805)、ペン先座標算出(S2806)の各ステップは、図11のコード位置検出器、データ取得器、誤り訂正器、データ復号器、ペン先座標算出器の各機能をソフトウェアで実現した。
〔ソフトウェアによる2次元コード読み取りの他の例〕
ソフトウェアによる2次元コード読み取りの他の例として図31にそのフローチャート図を示す。図31において、図28と同一ステップには同一の番号を付し、その説明は省略する。図28のフローチャート図と異なるのは、筆記中であって連続検出中でない場合は(S3101のはい且つS2811のいいえ)、筆記開始時に文書IDを置き換えずに誤り訂正を行う(S2813b)点である。誤り訂正ができなかった場合には(S2814bのいいえ)、文書ID部分の置き換えを行って誤り訂正を行う処理を行う(S2812、S2813)。この処理により、同一文書への加筆時には、図31の方法を使用することで図28の方法よりも誤り訂正率が向上する。
〔加筆した情報の取得、原文書への重畳方法〕
これまでで、2次元コードを読むことにより加筆座標を取得する装置・システム、方法、ソフトウェアについて述べたので、その加筆した情報を取得し、原文書に重畳する装置等について述べる。使用するシステムは図5に記載したものを使用し、その制御の流れを図32のフローチャート図に示す。
所定の文書が2次元コード付きで印刷されているとする。ペン型座標入力装置607で、その文書に加筆する。すると、前述したように、文書上の2次元コードが読み取られ、文書IDと座標情報がペン型座標入力装置607で取得される(S3201)。加筆とともにリアルタイムで読み取られた文書IDや座標情報が図5の情報処理装置604へ転送される(S3202)。情報処理装置604は文書IDと座標情報を受け取ると、その文書IDを文書管理データベース606を管理する情報処理装置609へ転送する。情報処理装置609は受信した文書IDを元に、文書管理データベース606から現在加筆されている文書(のページ)を特定する(S3203)。
図33は、文書管理データベース606の登録項目の一例を示す。図33のデータベースは、識別番号(ID)、文書名、パス名、作成者、更新日時、ページ、総ページ数、座標列ファイル、の各項目を有する。一例として、識別番号により特定された文書は、図33の識別番号(ID)123456の「PATENT.DOC」のページ1であるとする。この文書情報は、ペン型座標入力装置607へ送信され、ペン型入力装置607のLCD表示装置809には受信した文書情報が表示される。
ファイル名、ページ番号などの電子文書(ファイル)の実体が特定できたので、情報処理装置604は「PATENT.DOC」をそれが関連付けられているアプリケーション(例えばワープロソフト)で開き、情報処理装置604に接続された不図示のディスプレイに表示し、編集状態とする(S3204)。編集状態とされた文書「PATENT.DOC」に、ペン型座標入力装置607から次々送信されてくる座標情報が描画されることになる(S3205〜S3208)。描画する方法としては、文書のウィンドウに新たな描画オブジェクトを開き、受信した座標を線でつないで描画することで実現することができる。加筆が終了した時点で(S3209のはい)、ペン型座標入力装置607は加筆終了の信号を情報処理装置604へ送信し、加筆終了の信号を受け取った情報処理装置604は、ウィンドウへの描画を終了し、加筆情報、該当文書の更新・保存を行う(S3210)。このようにして文書「PATENT.DOC」に一つのオブジェクトが加えられる。
以上説明した実施例では、加筆した情報をリアルタイムでコンピュータのディスプレイ上に表示し、実際に加筆した情報が正しく処理されているかどうかがすぐに確認できるので、後から加筆した内容の訂正が必要になることが少なく、ユーザにとって大きなメリットになる。
また、本実施例における二次元コードのコード枠の検出方法は,コーナードットを検出しそれらコーナードットを直線で結ぶこと行うので、文書の文字、罫線や、汚れ、画像の質が悪い等でコード枠上のドットの検出が困難であっても、すぐにコード枠が検出できなくなることがない。そのため、二次元コードの検出(座標データなどの取得)の確率が増す。
また、情報処理装置604では受信した座標情報を数列テキストとして同時に、図33の座標列ファイルに別ファイルとして保存する。文書が巨大な場合など、ユーザが後にアプリケーションを開いて加筆されたデータを確認したい場合や素早く確認することが不可能な場合に、加筆されたデータのみを表示・確認させることができるので有効である。
本実施例における2次元コードの一例である。 本実施例における2次元コードを構成するドットおよび2次元コードの大きさを示す図である。 1つの2次元コードを示す図である。 2次元コードのデータ配列を示す図である。 文書管理システムの概略構成図である。 マイコンの構成図の一例である。 2次元コードが重畳された文書を印刷する処理を示すフローチャート図である。 データの符号化及び誤り訂正符号付加の処理を示す図である。 作業者が2次元コードが重畳された文書を印刷する流れを示すフローチャート図である。 2次元コードが重畳され印刷された文書の一例である。 2次元コード読み取り装置の機能構成図である。 2次元コードが撮影された画像の一例である。 文書IDに基づきデータが置換される例を示す図である。 コード位置検出器の機能構成図の一例である。 ドット検出の方法を説明するための図である。 Th(閾値)と座標取得率の関係を示す図である。 コード枠検出器の機能構成図の一例である。 コード枠検出器がコーナーを検出する手順を示す図である。 第一コーナーの検出方法を説明するための図である。 第二コーナーの位置を推定する方法を説明するための図である。 第二コーナー検出器の機能構成図の一例である。 コーナードットを有する画素を中心としたSlen × Slen画素の大きさの領域を示す図である。 コーナー判定器の機能構成図の一例である。 データ取得器のデータ取得の方法を説明するための図である。 ペン先座標算出器の機能構成図の一例である。 射影パラメータの算出方法を説明するための図である。 変形例における2次元コード読み取り装置の機能構成図の一例である。 ソフトウェアによる2次元コード読み取りの処理を示すフローチャート図である。 コード位置検出処理のフローチャート図である。 コード枠検出ステップの処理を示すフローチャート図である。 ソフトウェアによる2次元コード読み取りの他の処理を示すフローチャート図である。 文書加筆時の文書及び文書管理データベースの更新処理を示すフローチャート図である。 文書管理データベースの登録項目の一例を示す図である。
符号の説明
2a 2次元コード
15 コーナードット
604 情報処理装置
606 文書管理データベース
607 ペン型座標入力装置
806 画像読み取り装置
808 マイコン
884 2次元コード読み取り装置
1101 コード位置検出器
1102 データ取得器
1103 圧力センサ
1104 筆記検出器
1105 連続筆記検出器
1106 データ置換器
1107 誤り訂正器
1108 既知情報メモリ
1109 データ複合器
1110 ペン先座標検出器
1111 選択器
1401 ドット検出器
1402 コード枠検出器
1701 第一コーナー検出器
1702 第二コーナー位置推定器
1709 第一コーナー一致判定器
1901 周囲ドット検出器
1902 点対称ペア検出器
2101 コーナードット候補検出器
2102 コーナー判定器
2301 FIFO記憶装置
2302 コーナードット判定器
2501 射影パラメータ算出器
2502 ペン先座標変換器

Claims (17)

  1. 複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、
    前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、
    前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段と、
    を有することを特徴とするバーコード読み取り装置。
  2. 前記コード枠検出手段は、
    前記コーナードット検出手段により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手段と、
    前記コーナードット位置推定手段により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手段と、
    前記コーナードット候補検出手段により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手段と、
    を有することを特徴とする請求項1記載のバーコード読み取り装置。
  3. 前記コーナードット判別手段がコーナードットであると判別した位置に基づいて、前記コーナードット位置推定手段が推定した第一のコーナードットの位置と、
    前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、
    が一致するか否かを判定するコーナードット一致判定手段を有する、
    ことを特徴とする請求項2記載のバーコード読み取り装置。
  4. 前記コーナードット検出手段又は前記コーナードット判別手段は、所定のドットに対し、 点対称なドットのペアを二組検出する点対称ペア検出手段を有することを特徴とする請求項2記載のバーコード読み取り装置。
  5. 前記コーナードット位置推定手段は、バーコードのコード枠の情報に基づきコーナードットの位置を推定する、
    ことを特徴とする請求項2記載のバーコード読み取り装置。
  6. 前記コーナードット位置推定手段は、
    所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定める、
    ことを特徴とする請求項5記載のバーコード読み取り装置。
  7. 前記コーナードット候補検出手段は、
    前記コーナードット位置推定手段により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出する、
    ことを特徴とする請求項2記載のバーコード読み取り装置。
  8. 前記コーナードット一致判定手段は、
    前記コーナードット位置推定手段により推定された第一のコーナードットの位置と、
    前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定する、
    ことを特徴とする請求項3記載のバーコード読み取り装置。
  9. 複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手順を有し、前記ドット検出手順により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、
    前記ドット検出手順により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手順と、
    前記コーナードット検出手順により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手順と、
    を有することを特徴とするバーコード読み取り方法。
  10. 前記コード枠検出手順は、
    前記コーナードット検出手順により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手順と、
    前記コーナードット位置推定手順により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手順と、
    前記コーナードット候補検出手順により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手順と、
    を有することを特徴とする請求項9記載のバーコード読み取り方法。
  11. 前記コーナードット位置推定手順が、前記コーナードット判別手順がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、
    前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、
    が一致するか否かを判定するコーナードット一致判定手順を有する、
    ことを特徴とする請求項10記載のバーコード読み取り方法。
  12. 前記コーナードット検出手順又は前記コーナードット判別手順は、所定のドットに対し、 点対称なドットのペアを二組検出する点対称ペア検出手順を有することを特徴とする請求項10記載のバーコード読み取り方法。
  13. 前記コーナードット位置推定手順は、バーコードのコード枠の情報に基づきコーナードットの位置を推定する、
    ことを特徴とする請求項10記載のバーコード読み取り方法。
  14. 前記コーナードット位置推定手順は、
    所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定める、
    ことを特徴とする請求項13記載のバーコード読み取り方法。
  15. 前記コーナードット候補検出手順は、
    前記コーナードット位置推定手順により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出する、
    ことを特徴とする請求項10記載のバーコード読み取り方法。
  16. 前記コーナードット一致判定手順は、
    前記コーナードット位置推定手順により推定された第一のコーナードットの位置と、
    前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定する、
    ことを特徴とする請求項11記載のバーコード読み取り方法。
  17. 請求項9乃至16いずれか一項記載のバーコード読み取り方法を、コンピュータに実行させるためのバーコード読み取りプログラム。
JP2003297825A 2003-08-21 2003-08-21 2次元コード読み取り装置、2次元コード読み取り方法及び2次元コード読み取りプログラム、記憶媒体 Expired - Fee Related JP4159948B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003297825A JP4159948B2 (ja) 2003-08-21 2003-08-21 2次元コード読み取り装置、2次元コード読み取り方法及び2次元コード読み取りプログラム、記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003297825A JP4159948B2 (ja) 2003-08-21 2003-08-21 2次元コード読み取り装置、2次元コード読み取り方法及び2次元コード読み取りプログラム、記憶媒体

Publications (2)

Publication Number Publication Date
JP2005070980A true JP2005070980A (ja) 2005-03-17
JP4159948B2 JP4159948B2 (ja) 2008-10-01

Family

ID=34403545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003297825A Expired - Fee Related JP4159948B2 (ja) 2003-08-21 2003-08-21 2次元コード読み取り装置、2次元コード読み取り方法及び2次元コード読み取りプログラム、記憶媒体

Country Status (1)

Country Link
JP (1) JP4159948B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010101683A (ja) * 2008-10-22 2010-05-06 Nissan Motor Co Ltd 距離計測装置および距離計測方法
JP2010262558A (ja) * 2009-05-11 2010-11-18 Fuji Xerox Co Ltd 情報表現画像、印刷物、画像処理装置及び画像処理プログラム
JP2011138538A (ja) * 2011-02-24 2011-07-14 Nintendo Co Ltd 画像認識プログラム、画像認識装置、画像認識システム、および画像認識方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010101683A (ja) * 2008-10-22 2010-05-06 Nissan Motor Co Ltd 距離計測装置および距離計測方法
JP2010262558A (ja) * 2009-05-11 2010-11-18 Fuji Xerox Co Ltd 情報表現画像、印刷物、画像処理装置及び画像処理プログラム
US8456486B2 (en) 2009-05-11 2013-06-04 Fuji Xerox Co., Ltd. Image processing apparatus and image processing program
JP2011138538A (ja) * 2011-02-24 2011-07-14 Nintendo Co Ltd 画像認識プログラム、画像認識装置、画像認識システム、および画像認識方法

Also Published As

Publication number Publication date
JP4159948B2 (ja) 2008-10-01

Similar Documents

Publication Publication Date Title
JP4198456B2 (ja) 2次元コードパターン、2次元コードパターンを担持するパターン担持媒体、2次元コードパターンの生成方法、2次元コード読取装置および読取方法
JP4557765B2 (ja) 画像処理装置およびその方法
US7712664B2 (en) 2-dimensional code pattern, 2-dimensional code pattern supporting medium, 2-dimensional code pattern generating method, and 2-dimensional code reading apparatus and method
JP4854491B2 (ja) 画像処理装置及びその制御方法
JP4502385B2 (ja) 画像処理装置およびその制御方法
US8520006B2 (en) Image processing apparatus and method, and program
JP3727971B2 (ja) 文書処理装置、及び文書処理方法
JP2004265384A (ja) 画像処理システム及び情報処理装置、並びに制御方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
US20090324080A1 (en) Image processing device, image processing method and storage medium
JP4198392B2 (ja) 2次元コード読取装置、画像入力装置、2次元コード読み取り方法、画像入力方法、そのプログラム、及びそのプログラムを記録した記録媒体
JP2007122500A (ja) 文字認識装置、文字認識方法及び文字データ
KR20130139225A (ko) 광학 펜을 이용한 절대 위치와 기타 정보용 도트 코드 패턴, 도트 코드 프린팅 방법, 및 도트 코드 읽는 방법
JP2008028716A (ja) 画像処理方法及び装置
JP4159948B2 (ja) 2次元コード読み取り装置、2次元コード読み取り方法及び2次元コード読み取りプログラム、記憶媒体
JP2002352217A (ja) 文書管理装置、文書管理方法及びその文書管理装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
CN100501728C (zh) 图像处理方法、系统、程序、程序存储介质以及信息处理设备
JP4397866B2 (ja) 2次元パターン読み取り装置、2次元パターン読み取り方法
JP2003046746A (ja) 画像処理方法及び画像処理装置
JP2006020144A (ja) 文書処理システム
JP2008021120A (ja) 筆記情報処理システム、筆記情報処理方法およびプログラム
JP4741363B2 (ja) 画像処理装置、画像処理方法、及び、画像処理プログラム
JP2020047138A (ja) 情報処理装置
JP5387086B2 (ja) 情報照合支援システム及びプログラム
JP2000331117A (ja) 文書読取システム
JP5109377B2 (ja) 筆記情報処理装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080502

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080716

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees