2次元パターン読み取り装置、2次元パターン読み取り方法
【課題】 紙上に印刷した文書に手書きで加筆した情報をより高速・正確に取得し、元の電子文書にその情報を反映できる2次元パターン読み取り装置の提供。
【解決手段】 2次元パターン撮影画像データから微小ドットを検出するドット検出器と、検出したドットからコード枠を検出するコード枠検出器と、コード枠内のドットを読み取ってデータを復号するデータ復号器とを備える2次元パターン読み取り装置において、ドット検出器が、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補とするドット候補検出器101と、このドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定器102と、有すると判定されたドット候補の隣接画素にドットと判定された画素がない場合に、そのドット候補をドット画素と判定する周囲ドット探索器103とから構成する。
【解決手段】 2次元パターン撮影画像データから微小ドットを検出するドット検出器と、検出したドットからコード枠を検出するコード枠検出器と、コード枠内のドットを読み取ってデータを復号するデータ復号器とを備える2次元パターン読み取り装置において、ドット検出器が、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補とするドット候補検出器101と、このドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定器102と、有すると判定されたドット候補の隣接画素にドットと判定された画素がない場合に、そのドット候補をドット画素と判定する周囲ドット探索器103とから構成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書の固有情報及び文書の位置情報を含む2次元パターンを読み取る2次元パターン読み取り装置と、2次元パターン読み取り方法に関するものである。
【背景技術】
【0002】
紙などの印刷媒体上に、符号化した座標情報を含む2次元コードを配置することによって、その印刷媒体上に形成された画像情報の位置や内容を特定する技術が知られている。従来の1次元バーコードが横(水平)方向のみにしか情報を持たなかったのに対し、2次元コードは水平と垂直の2方向に情報を有するので、より複雑な情報を表すことができる。
先行文献としては、特許文献1に光学的に読取可能なコードシンボルを紙面上にマトリックス状に並べ、小型カメラを備えたペンで紙面への加筆と同時にカメラで前記コードシンボルを読み取り、座標情報を同時に取得することにより、加筆情報をリアルタイムに読み取り、加筆前の紙面情報と加筆情報を関連付けるシステムに関する技術が開示されている。
また特許文献2には、X座標、Y座標、コードの方向を表すパターンと、ホーミングパターンと呼ばれるその他のパターンより大きくて、コードの中心に配置されたパターンとからなり、それらは人の目にはみえないようにする技術が提案されている。
また特許文献3には、ドットを所定の位置からずらすことにより、1ドットで2ビット以上の情報を有することができる2次元コードが開示されている。このような2次元コードは、水平垂直方向の座標情報を有し、紙全体に連続的にドットが印刷されており、これを読み取ることにより、2次元コードがどの座標情報を有しているかを取得する技術が開示されている。
また特許文献4には、座標と文書情報を符号化し、紙上に印刷した2次元ドットパターンをカメラのついたペンで筆記中に読み取り、該パターンを読み取ることにより、現在どの文書のどの位置に筆記中であるかを取得する技術が開示されている。
【特許文献1】特開2000−293303公報
【特許文献2】米国特許第5661506号
【特許文献3】WO00/73981
【特許文献4】特開2004−94907公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上記特許文献1では、文書に固有の情報と座標位置を同時に白黒のパターンに変換し、紙に印刷して、紙上の文書に光学ペンで加筆した情報を、白黒のパターンを読み取ることにより取得し、文書固有の情報と紙上の座標位置を取得し、元の文書に加筆情報を追加するようにしている。このような特許文献1の技術では白黒のパターンに誤り訂正機能を有する2次元コードを利用し、光学ペンによる読み取りが不安定な場合でも文書固有の情報と座標情報を取得できるような機能を有しているため、特開平7−141104号公報の技術において読み取りが不可能な場合でも読み取りが可能になっている。
しかしながら、この場合は2次元コードの大きさが大きくなるため、広い範囲の紙面を光学ペンで撮影しなければならず、被写界深度などの問題で読み取った画像の品質が良くなく、2次元コードを連続的に読み取ることが難しくなる。また、当該2次元コードは筆記中の紙面をカメラで撮像し、デコードするために作られたわけではなく、汎用の2次元コードであるため、デコード処理に時間がかかり、リアルタイムで処理を行うことが難しい。この技術の目的のひとつは連続的な加筆情報を取得するということであるため、2次元コードを読み取り、座標位置を連続的に取得できなければ、加筆情報の不連続点が発生し、正しい加筆情報が得られなくなるという欠点があった。
また上記した特許文献2は、一般の印刷装置を使用してコードを印刷することは事実上不可能であり、予め特殊な印刷装置において不可視インクを使用してコードを印刷する必要があり、ユーザが印刷したい文書の情報を印刷時に印刷媒体に埋め込むためには別のバーコードを重畳して印刷するなりの手段が必要となるばかりか、文書に加筆する前に必ずそのバーコードを読ませる必要があり、ユーザにとって不便になる。
仮に、バーコードを読む作業を忘れて別の文書に加筆を行うならば加筆情報と電子文書とのリンクが矛盾を起こして重大な問題となる。また、仮に可視インクで印刷したとしても他のパターンより大きいパターン(マーク)を使用しており、人の目につきやすく、文書や加筆の可読性が損なわれるという欠点があった。
【0004】
また特許文献3は、2次元的に等間隔な点からドットをずらして配置することにより、1ドットに2ビット以上の情報を乗せ、6×6のドットでそのコードの位置情報を有する2次元コードを開示している。この技術は、位置をずらす量が30μmと非常に小さく、一般に普及しているレーザープリンタの解像度(1200dpi)では、紙送りの精度、感光体の回転速度のむら等により正しいずれ量を再現することが難しい。
従って、この2次元コードの場合も、予めオフセット印刷等の印刷技術を利用して2次元コードを印刷した紙を用意する必要があるため、上記特許文献3と同等の問題が発生するという欠点があった。
また特許文献4は、読み取った画像の周辺部を使わないで2次元コードパターンの読み取り処理を行う方法について開示されており、高速化においてある程度の改良は見込めるものの、飛躍的に処理速度の向上は達成できない。
また、筆記を再現するための読み取りアルゴリズムの性能に問題があった。さらにドット検出の手法について、5×5画素のウィンドウを使ってその検出を行っているが5×5画素のウィンドウではノイズ成分をドットとして判定するという間違いを起こしやすかった。また、ペン先位置を推定する方法においては、読み取った画像から検出したコーナードットの座標とドットの中心とが一致しておらず、ペン先の正確な位置を推定する精度が良くないなどの欠点があった。
そこで、本発明は、上記したような点を鑑みてなされたものであり、紙上に印刷した文書に手書きで加筆した情報をより高速、より正確に取得し、元の電子文書にその情報を反映させることができる2次元パターン読み取り装置及び2次元パターン読み取り方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、請求項1に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、前記ドット検出手段が注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定したドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
請求項2に記載の発明は、前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用する請求項1記載の2次元パターン読み取り装置を特徴とする。
請求項3に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用する請求項1記載の2次元パターン読み取り装置を特徴とする。
請求項4に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、前記ドット検出手段が、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
【0006】
請求項5に記載の発明は、前記ドット探索領域判定手段は、水平1画素垂直1画素おきに小領域を設定する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項6に記載の発明は、前記ドット探索領域は、3×3画素からなる小領域である請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項7に記載の発明は、前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項8に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項9に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段と、該データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出手段と、を備えた2次元パターン読み取り装置において、前記座標算出手段が、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする。
【0007】
請求項10に記載の発明は、前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなる請求項9記載の2次元パターン読み取り装置を特徴とする。
請求項11に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップとからなることを特徴とする。
請求項12に記載の発明は、前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用する請求項11記載の2次元パターン読み取り方法を特徴とする。
請求項13に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用する請求項11記載の2次元パターン読み取り方法を特徴とする。
請求項14に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、該ドット候補検出ステップで検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする。
【0008】
請求項15に記載の発明は、前記ドット探索領域判定ステップは、水平1画素垂直1画素おきに小領域を設定する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項16に記載の発明は、前記ドット探索領域は、3×3画素からなる小領域である請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項17に記載の発明は、前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項18に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項19に記載の発明は、複数の微小なドットで構成される少なくとも位置情報を含むデータを符号化した2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード内のドットを読み取ってデータを復号するデータ復号ステップと、該データ復号ステップで復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出ステップと、からなる2次元パターン読み取り方法において、前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする。
請求項20に記載の発明は、前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなる請求項19記載の2次元パターン読み取り方法を特徴とする。
【発明の効果】
【0009】
本発明によれば、2次元パターンの読み取りを精度よく、効率的、高速に読み取ることができるようになるので、筆記した情報の再現品質の向上を図ることができる。
【発明を実施するための最良の形態】
【0010】
図1は、本発明の実施の形態に係る印刷文書の平面図である。
この図1において、2次元コード22は複数の黒ドットで構成される光学的に読み取り可能なコードであり、縦横に規則的に配列された黒ドットを境界としてマトリクス状に並べられており、印刷文書21の印刷時には文書と2次元コード22のパターンが同時に印刷される。2次元コード22には、例えば印刷文書21の2次元コード22が印刷されている面における印刷された文書の原本となる電子文書の識別(ID)情報と2次元コード22の座標を意味する情報がエンコードされている。なお、図1においては説明上、文書は図示せず、行間や余白などの2次元コードのみが印刷された部分を示している。
例えば、図1の左上のコードシンボル(2次元コード)22aには「水平座標=95、垂直座標=10、文書ID=10」がエンコードされ、2次元コード22bには「水平座標=96、垂直座標=10、文書ID=10」、2次元コード22cには「水平座標=95、垂直座標=11、文書ID=10」、2次元コード22dには「水平座標=96、垂直座標=11、文書ID=10」とエンコードされている。
【0011】
図2は、2次元コードのドットの大きさ、及びドットの間隔を示した図であり、この図を用いて、2次元コードのドット及びコードの大きさについて説明する。2次元コード22及び境界を構成するドット23は、プリンタの最小ドット24の2×2単位で印字される。1200dpiのプリンタならば、プリンタの最小ドット径は21μmであるので、2次元コード22のドットの直径は理想的には42μmとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。ドット直径の6倍の間隔を置いて水平・垂直方向にドット23を配置する位置を決定する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には2.8%、50%程度のドットゲインを見込んでも5%に満たない。この面積率は人の目には明るい灰色に見えるのでドットに邪魔されて文書が見えにくいとか、加筆した文字が見えにくいなどという問題は起こらない。
以上のようにコードの配置を決定すると2次元コード22は水平2mm、垂直3mm角の大きさを有し、水平座標=95ということは、2次元コードの左上の角が紙面の左上を原点として水平方向に190mmの位置にあるということを意味する。詳しくは後述するが、水平2mm、垂直3mm角の大きさは、A4サイズの用紙と相似の大きさであり、水平・垂直座標情報を格納するデータ長を有効に使うことが可能になる。
同様に垂直座標=10は、2次元コードの左上の角が紙面の左上を原点として垂直方向に30mmの位置にあるということを意味する。
文書IDは、元の電子文書の固有情報、例えば電子文書が格納されているデータベースの識別IDである。即ち、2次元コード22はその左上の角(垂直線H1と水平線V1の交点)が、紙面左上から水平190mm、垂直30mmの位置にあり、印刷されている文書はそのIDが「10」であるという情報を有する。
【0012】
図3は、2次元コードのデータ配置領域を示した図であり、この図を用いて2次元コード22に配置するデータの詳細に説明する。2次元コード22aはコード枠を構成するH1、H2、V1、V2に囲まれた7×11のセルを有する。セルとはドットを打つことのできる単位をいい、最大77個のドットを含む。
領域31は水平座標を表すデータを配置する領域であり4×2のセルを有する。1セルは1ビットに相当するので領域31は1バイトの容量を有する。
領域32は、垂直座標を表すデータを配置する領域であり、水平座標と同様に1バイトの容量を有する。A4サイズの用紙は水平210mm、垂直297mmの大きさがある。また2次元コード22の一つの大きさは、水平2mm、垂直3mmであるので水平方向には105段階、垂直方向には99段階のデータが必要になるが、1バイトで十分な容量を満たしている。用紙サイズがA3の場合には、水平297mm、垂直420mmの大きさであるので、水平方向に148段階、垂直方向に120段階のデータが必要になる。この場合も1バイトのデータ容量があれば十分である。同様にA2サイズの場合でも、水平420mm、垂直594mmの大きさであるので、水平方向に210段階、垂直方向に198段階のデータが必要であるが、この場合も1バイトのデータ容量で収まる。このように紙の縦横の長さの違いに応じて2次元コードの縦横の長さを決定すると水平・垂直座標を表すデータ長を同一の一定サイズに固定しても幅広いサイズの用紙に対応できるようになっている。
領域33は文書IDをあらわすデータを配置する領域であり、4×6の24ビット(=3バイト)の容量を有する。領域34〜37は誤り訂正用の符号を配置する領域であり、それぞれ1バイトずつの容量を有する。したがって誤り訂正用符号は合計4バイトで構成される。領域38、39はコードの上下方向を表すためのパターンで、領域38は3×1の黒ドット、領域39は2×1のドット無しのパターンでコードの上下を判別するのに使用される。
【0013】
図4は、各データのビット列がどのように配列されるかを示した図である。なお、この図3の領域31〜領域37に示されている「1」はMSB、「8」はLSBをそれぞれ示している。
図5は本実施の形態としての文書管理システムの構成を示した図である。
この図に示す文書管理システムは、プリンタ1、複写機2、スキャナ3、情報処理装置4、記憶装置5、文書管理データベース6、ペン型座標入力装置7、携帯情報端末8、情報処理装置9、2次元コード作成装置10より構成され、これらがネットワークを介して接続されている。
プリンタ1は印刷を行う印刷装置、スキャナ3は画像の読み取りを行う読取装置、複写機2は、例えばコピー、スキャナ、ファックス、プリンタなどの機能を備えた複合機とされる。情報処理装置4はペン型座標入力装置7及び携帯情報端末8の制御を行い、情報処理装置9は記憶装置5の制御を行う。なお、ペン型座標入力装置7の構成は後述する。
次に、図5に示した文書管理システムにおいて、上記した2次元コード22を作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの手順を図6を用いて説明する。なお、2次元コード22の作成は、図5に示した情報処理装置4、9で文書11の印刷命令を実行したときに、情報処理装置4、9内のプリンタドライバで実行される。
この場合、プリンタドライバは、まず記憶装置5内の文書管理データベース6に問い合わせて印刷しようとする文書11のページ毎の文書IDを発行してもらう(S1)。文書IDを発行してもらったら、それと文書上の座標情報とを合わせてエンコードすべきデータを取得する(S2)。例えば、図7(a)に示す文書IDは「123456」、座標情報(X,Y)はmm単位(24,123)という具合である。次にデータをエンコードする(S3)。これにより、文書IDは、図7(b)に示すように、6桁の数字を3バイトのバイナリ値に変換する。また、水平座標は24/2=12、垂直座標は123/3=41と、水平・垂直それぞれ1バイトずつで収まるように変換する。座標情報はこのように2バイトのバイナリ値に変換し、文書IDと合わせて計5バイトのデータとする。そしてエンコードした後、エンコードデータを元に誤り訂正符号を追加する(S4)。図7(c)に示す例では、5バイトのデータに対して4バイトの誤り訂正符号を付加している。この誤り訂正符号にはリードソロモン符号を採用する。リードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。なお、リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論(コンピュータ基礎講座18)」宮川、岩垂、今井共著など、多数の書籍に記されている。本実施の形態の場合には、図7(c)に示すように誤り訂正符号長が4バイトなので2バイトの誤り訂正が可能である。
【0014】
このようにして作成されたエンコードデータおよび誤り訂正符号データは2次元コード22の各セルに割り当てられ(S5)、続くステップS6において、1ページ分の2次元コードの作成が終了したかどうかの判別を行う。そして、1ページ終了したら次のステップS7において、全ページ終了したかどうかの判別を行い、全ページ終了したら処理を終えることになる。なお、ステップS6において1ページ分の2次元コードの作成が終了していないと判別した場合は、ステップS2に戻って処理を行う。またステップS7において全ページ分の2次元コードの作成が終了していないと判別した場合、ステップS1に戻って処理を行うようにする。
これにより、2次元コードがページ全体に配置されたマトリクスの画像を作成することができる。その後、プリンタ1や複写機2のプリンタ部を使用して印刷を行う。印刷が正常に終了したら文書管理データベース6内のID管理テーブルに正常に印刷された文書、ページ、文書ID等の情報の登録を行うようにする。
図8は、上記2次元コードを作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの一連の作業を作業者から見たフローである。
この場合、まず、図5に示す文書管理システムの記憶装置5に保存されている文書11を編集し(S11)、印刷命令を出して、プリンタ1や複写機2で文書の印刷を実行させる(S12)。印刷が正常に終了したならば(S13)、印刷に成功した文書IDを文書管理データベース6内のID管理テーブルに登録する(S14)。
図9は、2次元コード付きで印刷された文書の一例を示した図であり、図9(a)に示す印刷文書21は、例えば所定のフォーマットを有する帳票文書であり、背景には2次元コード22が印刷されている。印刷文書21の一部を拡大したものが図8(b)に示す図であり、2次元コード22のコード枠を兼ねるアライメントドットと、枠内に配置されるデータドットが示されている。また2次元コード22が規則的に並んでいる。
【0015】
さて、2次元コードつきの文書は印刷できたので、次に筆記を行うとともに紙面の画像を撮像して2次元コードをデコードして座標情報を得るペン型座標入力装置7の概略構成を図5に示すブロック図を用いて説明する。
図5に示すペン型座標入力装置7は、人が手に持って筆記動作を行うことができる筆記具状の装置本体61を備えている。この装置本体61の先端部62には、筆記具63、即ち、ボールペン、シャープペンシルの先端部分等が取り付けられており、文書に加筆可能である。装置本体61側に設けられた画像読取装置64は、CCDなどの光電変換素子64aと、レンズなどからなる光学系64bとから構成され、印刷文書21上の画像を読み取るようにしている。なお、画像読取装置64には必要に応じて照明を設けることができる。CCDの読み取り解像度は320×240画素とする。
装置本体61には、マイコン65が搭載され、マイコン65には画像読取装置64が接続されている。マイコン65は、画像読取装置64で読み取った印刷文書21上の画像に基づいた各種処理を行う。即ち、読み取った2次元コード22をデコードし、2次元コードの紙面上の座標を検出する(詳細については後述する)。またマイコン65は、装置本体61の外部になるPCなどの情報処理装置4と接続可能であり、マイコン65内に蓄積したデータを情報処理装置4に出力可能である。なお、図6では画像読取装置64や、マイコン65などに電力を供給する電源、マイコン65と情報処理装置4とのインタフェースなどは図示を省略している。
【0016】
マイコン65は、図10に示すように、バス70を介してCPU71、ROM72、RAM73、2次元コード読取装置74が接続されている。即ち、CPU71はバス70を介して各種外部装置と接続されている。ROM72には、図5に示したペン型座標入力装置7の動作を制御するプログラムやマイコン65を動作させるプログラムが予め内蔵されている。RAM73は画像読取装置64から読み取った画像や、コード読み取り中に生成される中間データ、2次元コードをデコードした際に得られる文書IDや座標などを一時的に保存する。
2次元コード読取装置74は、図11に示すように構成され、RAM73に記憶された画像から2次元コードを検出し、読み取って文書IDや座標を検出する作業を行う。なお、2次元コード読取装置74については後述する。
さらに図5に示すマイコン65には、LCD表示装置66、LED67、あるいはブザー68が接続されている。これにより、マイコン65は、情報処理装置4から受信した情報をLCD表示装置66に表示したり、あるいは特定の情報を受信した場合にはLED67を点滅させたり、ブザー68を鳴らしたりして外部に通知することができるようになっている。
装置本体61には、ペン型座標入力装置7の先端部62が筆記面に接触しているかどうかを検出する圧力センサ69が設けられている。圧力センサ69は、先端部62が筆記面に接触することにより、筆記具63を介して伝達される圧力を感知し、感知した情報をマイコン65に伝送する。
このように構成されるペン型座標入力装置7を用い、印刷文書21上での先端部62の位置検出を連続的に行えば、印刷文書21上での先端部62の移動軌跡を求めることができる。また、ペン型座標入力装置7の先端部62が筆記面に接触しているかどうかを検出する圧力センサ69によって、紙面上に筆記を行ったときの筆記軌跡を忠実に求めることができる。もし2次元コードが存在しない文書にペン型座標入力装置7の読み取り対象ではない文書に加筆する場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をLCD表示装置66またはLED67を用いて行い、ユーザに通知する。
【0017】
次に、2次元コードの読み取りの動作について詳述する。
図11は2次元コード読取装置74の構成を示した図である。この2次元コード読取装置74は、先にも述べたように、図5に示したペン型座標入力装置7の内部のマイコン65に内蔵されている(図10参照)。
この図11に示す2次元コード読取装置74では、画像読取装置64で読み取られた紙面の画像(8ビット画像)がドット検出器81に入力され、ドット検出器81において2次元コード22のドット検出を行うようにする。コード枠検出器82では、ドット検出器81において検出されたドットから画像内にある複数の2次元コード22から一つの2次元コード22の枠とその位置を検出する。読み取った画像例を図12に示す。
コード枠検出器82において2次元コード22の位置を検出できたときは、データ取得器83において、2次元コード22の各白黒セルに応じて「0」または「1」のデータを取得し、2次元コード22のデータ配置規則に従ってデータの並べ替えを行う。
データ置換器84は、取得したデータに対して、連続筆記検出器91から出力される連続筆記中であるか否かの信号により、既知情報メモリ88から既知の文書IDを読み出し、データ置換器84において2次元コード22から取得したデータの文書IDに相当する部分を既知の文書IDで置き換える。
連続筆記検出器91には、筆記検出器92の検出情報が入力される。筆記検出器92には、ペン型座標入力装置7による加筆時においてペン先に感じる圧力を検出する圧力センサ69の出力信号が入力され、筆記中か否かを判定する。そして筆記の状態が所定時間以上続いたときは連続筆記中であると判断し、それ以外の場合は連続筆記中ではないと判断して、その検出結果を連続筆記検出器91に出力する。
【0018】
誤り訂正器85は、データ置換器84の出力に対して誤り訂正を行う。誤り訂正器85からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。この誤り訂正されたデータは文書IDと座標情報である。
誤り訂正器85から出力された誤り訂正の判定情報は、データ復号器86、ペン先座標算出器87、既知情報メモリ88へ入力され、それぞれの機器の制御に使用される。
データ復号器86では、誤り訂正の判定情報が誤り訂正成功であればデータ復号器86は動作する。誤り訂正失敗であればデータ復号器86は動作しない。ペン先座標算出器87は誤り訂正の判定情報が誤り訂正成功であり、且つ、筆記検出器92の出力が筆記中であれば、ペン先座標を算出して出力するが、誤り訂正失敗の場合や筆記中でない場合ならば現実にはありえない座標値(−1、−1)等を出力する。また、既知情報メモリ88では、誤り訂正が成功である場合、誤り訂正された情報の文書IDに相当する部分を新たに保存する。
ここで、データ置換器84におけるデータ置き換えの具体例を図13に示す。
この場合、第一行目には正しいデータをエンコードして誤り訂正符号を生成した時のデータが示されている。また第二行目には画像から2次元コード22を抽出して2次元コードのドットからデータを再構成した観測データが示されている。ここで、観測データのY座標と、ID情報の1、2番目に誤りがあるとすると、この場合は誤りが三つあるため、後段の誤り訂正器85で誤り訂正を行う事ができなくなってしまう。
そこで、誤り訂正器85において誤り訂正を行う事ができなくなるのを防止するため、第三行目に示すように文書IDを既知情報メモリ88に記憶されている既知情報に置き換えるようにしている。これにより、ID情報の部分の誤りがなくなり、Y座標の1バイトだけが誤りとなり、誤り訂正が可能となって正しい座標情報、ID情報が得られるようにしている。
誤り訂正に成功したデータは、データ復号器86により、紙面上の座標情報と文書IDに復号される。紙面上のIDは、水平座標=24mm、垂直座標123mm、文書ID=23となる。この座標及びデコードに成功した2次元コード22の画像上の座標を用いてペン先座標算出器87は、ペン先の紙面上での座標を算出する(詳細は後述)。これによりペン型座標入力装置7の先端部62の位置が確定する。
【0019】
次に、図14を用いてドット検出器の動作を説明する。
ドット検出を行うために用いる領域は7×7画素のウィンドウである。従来技術の5×5画素よりもノイズに強い判定を行うことができる。ドット検出を行う領域は、図14の領域102である。領域101は画像領域全体(320×240画素)であり、領域102は280×220画素の領域である。最外周の領域では画像品質が良くなく正しいドット検出を行うことが難しい可能性があることと、リアルタイム処理のためにできるだけ無駄な処理をしたくないから、画像領域全体ではなくそれより小さい領域においてドット検出を行うようにしている。
図15はドット検出器の構成を示した図である。
この図15に示すドット検出器は、ドット候補検出器(ドット候補検出手段)101と、最小輝度画素判定器(最小輝度画素判定手段)102と、周辺ドット探索器(周囲ドット探索手段)103とから構成され、画素Zを中心とした7×7画素の領域においてドット検出が行われる。
ドット候補検出器101は、注目画素Zとその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出する。
最小輝度画素判定器102は、ドット候補検出器101により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する。
周辺ドット探索器103は最小輝度画素判定器102において最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べ、周辺にドットがなければドット候補はドットであると最終的に判定する。
ドット候補検出器101は、次の8つの式(1)〜(8)を同時に満足するときに画素Zはドット候補と判定される。Thは所定の値をとる閾値、簡単のために図16の画素位置を示す各アルファベットが画素値を表すとする。また、入力画像は黒=0、白=255を表すとする。
Z<A−Th・・・(1)
Z<E−Th・・・(2)
Z<L−Th・・・(3)
Z<P−Th・・・(4)
Z<Q−Th・・・(5)
Z<R−Th・・・(6)
Z<S−Th・・・(7)
Z<T−Th・・・(8)
【0020】
次に上記の8つの式を満たしたドット候補が最小輝度画素判定器102で周囲の画素と比較して最小輝度を有するか否かを判定する。その判定基準は次の12の式(9)〜(20)を全て満足するときにドット候補は最小輝度を有すると判定する。
Z<B・・・(9)
Z<C・・・(10)
Z<D・・・(11)
Z<F・・・(12)
Z<G・・・(13)
Z<H・・・(14)
Z<I・・・(15)
Z<J・・・(16)
Z<K・・・(17)
Z<M・・・(18)
Z<N・・・(19)
Z<O・・・(20)
次に、最小輝度画素判定器102で最小輝度画素と判定された画素Zは、その周囲U、V、W、Xにすでにドット検出器でドットであると判定された画素が存在するか否かを周辺ドット探索器103で調査され、周囲U、V、W、Xにドットが存在しなければ画素Zはドットであると初めて判定される。
所定の値(Th)の設定であるが、Thが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。また、Thが大きければノイズを検出せずに確実に誤りを減らすことができるがコード枠を検出することが難しくなり座標取得率が小さくなる。図17にThの大きさに応じた座標取得率の例を示す。文書IDを置き換えた場合と置き換えない場合との両方のデータを記載した。
【0021】
また、図18にドット検出器の他の構成を示す。
この図18に示すドット検出器は上記ドット検出をより高速に行う構成である。
ドット探索領域判定器(ドット探索領域判定手段)104でドットを探索する小領域3×3画素を設定する。3×3画素の領域内の各画素を中心とする7×7画素のウィンドウに対してドット候補検出器101と、このドット候補検出器101でドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定する最小輝度画素判定器102と、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べる周辺ドット探索器103とからなり、周辺ドット探索器103で周辺にドットがなければドット候補はドットであると最終的に判定される。
ドット探索領域判定器104は、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定する。上記図16のようにZ画素を中心とした7×7画素で、式(1)〜式(8)のすべての式が満たされたとき、Z画素を中心とする3×3画素の領域がドットを探索すべき領域であると判定される。
そのZ画素を中心とする3×3画素の領域の各画素に対してドット候補検出器101、最小輝度画素判定器102が処理を行う。この処理はすでに述べたとおりである。
最後に周辺ドット探索器103で画素Zの周囲(U、V、W、X、Y)にすでにドットであると判定された画素が存在するか否かを探索する。本実施形態の方式では重複してドットであるか否かを判定される画素が存在するので画素Yに対してもすでにドットが検出されたか否かを判定する必要がある。
【0022】
次に、図19〜図22を用いて、コード枠検出器の構成について説明しておく。
図19はコード枠検出器の構成を示した図である。また図20はコード枠検出器の検出経路を示した図である。
図19に示すように、コード枠検出器82は、ドットを検出した画像から、或るドットXがコードのコーナーであるか否かを判定する第一コーナー検出器111と、その第一コーナーからドットで構成されるコード枠の8画素分を4方向に追跡して第二コーナー候補画素(B,D)を検出する第一ドット追跡器112とを備える。そして、第一ドット追跡器112で検出された第二コーナー候補画素が第二コーナーであるか否かを検出する第二コーナー検出器113と、第二コーナーからドットで構成されるコード枠の12画素分を第一ドット追跡器112のドット追跡方向(時計回り方向)に追跡して、第三コーナー候補画素(G,E)を検出する第二ドット追跡器114とを備える。さらにこの第二ドット追跡器114で検出された第三コーナー候補画素が第三コーナーであるか否かを検出する第三コーナー検出器115と、その第三コーナーからコード枠の8画素分を第二ドット追跡器114のドット追跡方向(時計回り方向)に追跡し第四コーナー候補画素(C,A)を検出する第三ドット追跡器116と、この第三ドット追跡器116で検出された第四コーナー候補画素が第四コーナー画素であるか否かを検出する第四コーナー検出器117と、さらに第一コーナーと第四コーナーとの間のコード枠を構成するドットを検出する第四ドット追跡器118とを備える。このコード枠検出器82により、最大2つの2次元コード22のコード枠を検出し、それを構成するドットの画像上の座標を検出することができる。
【0023】
ここで、第一コーナー検出器111の動作を、図21を用いて説明する。
第一コーナー検出器111は、図21(a)で示すようにドットが存在する注目画素の周囲で4つ以上のドットが存在するか否か検出する周囲ドット検出器121と、検出された周囲ドットから注目画素を点対象とする二組のドットペアを検出する点対称ペア検出器122から構成される。
周囲ドット検出器121は、図21(b)に示す注目画素Nを中心とする17×17画素の中で注目画素Nの周囲に存在するドットを検出する。図21(b)の場合、A〜Fの6画素が存在する。これが周囲ドット画素として検出される。それらA〜Fのうちで、Nとの距離が近く、その中間点がNに近いものを二組検出する。例えば図21(b)の場合、(B,D)、(C,F)の二組がそれに相当する。A及びEはノイズであると判断され除去される。このようにして注目画素のドットN及び周囲の二組の点対称ペアが検出されると、注目画素Nは第一コーナーとして検出される。この第一コーナー検出器111が検出対象とする領域は、図14に示す180×120画素の領域103であり、画像領域101の縦横それぞれほぼ半分の大きさを有する。また、ドットを検索する方向は通常のラスター走査ではなく、図22に示すように内側から外側への渦巻き走査となる。この理由は、画像の中央付近が周囲と比較して画像の品質が優れていてドットの検出が確実に行われる確率が高いため、画像の中央またはその付近からコードパターンを検出するほうが短時間で検出できる可能性が高くなる。そのため、リアルタイム処理に非常に有利となる。
第一コーナー検出器111が動作する領域103が画像全体の領域101やドット検出器81の動作領域102より小さい理由は、コードパターンが領域102の中に存在する場合、コードパターンの最も画像の内側に存在するコーナーの存在範囲を領域103としているためである。
【0024】
次に、ドット追跡器の詳細を図23により説明する。まず、図23を用いて第一ドット追跡器112の詳細を説明する。図23は2次元コードのコーナー付近を構成するドットを示したものである。Xはコーナードット、その他のA〜Iはコード枠を構成するドットである。まず、XからDEFの方向へドットを追跡することにする。簡単のため、A〜I、Xをそれぞれ座標ベクトルとみなし、Y=2D−Xを計算する。
YはドットEの推定ベクトルである。A〜Dは第一コーナー検出器111で既に検出されているので既知である。Yの周囲5×5画素においてドットEを探索する。Eが存在すれば、Y=2E−Dを計算する。今度、YはドットFの推定ベクトルである。この追跡を7回繰り返して第二コーナー候補画素を検出する。
追跡方向は4方向(図20:X→A、X→B、X→C、X→D)存在し、検出された第二コーナー候補画素すべての情報を第二コーナー検出器に転送する。
第二コーナー検出器113は基本的な動作は第一コーナー検出器111と同一である。ただ、入力する注目画素となるドットが複数(最大4)存在する可能性があることである。その中で検出される第二コーナーは最大2である(図20:B、D)。
第二ドット追跡器114の基本的な動作は第一ドット追跡器112と同一である。異なるのは追跡を開始するドットは二つあり、各ドットあたり一つの方向の追跡を行う(図21:B→G、D→E)のと、各追跡あたりドット追跡操作を11回繰り返すことである。このようにして、第三コーナー候補画素(図20:G、E)を検出する。
第三コーナー検出器115は第二ドット追跡器114で追跡できた第三コーナー候補画素(図20:G、E)が第三コーナーであるか否かを検出する。基本的な動作は前記第一、第二コーナー検出器111、113と同一である。第三コーナー検出器115が図20に示すG、Eを第三コーナーであると検出したとする。
【0025】
第三ドット追跡器116は二つの方向(図20:G→C、E→A)にドット追跡を行うことである。追跡回数は第一ドット追跡器112と同じ7回、第四コーナー候補画素として図20:C、Aを検出する。
第四ドット追跡器118は第二ドット追跡器114と同一構成であり、図20に示すC→X、A→Xの方向に11回追跡してXに至る。Xはすでに第一コーナーであることがわかっているので、図20に示す追跡経路(1)、追跡経路(2)によりコード枠が検出されたことになる。このようにして2次元コードのコード枠を検出する。2次元コードのデコードの際にどちらのコードを使うかは、画像上のコード中心の水平座標が大きい方を優先する。このコードがデコードできなかった場合はもう一方のコードを使用してデコードを実行する。
上記第一ドット追跡器112、第二ドット追跡器114、第三ドット追跡器116、第四ドット追跡器118が追跡する画像領域は図14の領域104(260×200画素)である。ドットを検出した領域102より少しだけ小さいのは、第一、第二、第三、第四コーナー検出器111、113、115、117においてコーナー検出に使用するアルゴリズムがコーナードットを中心として17×17画素の領域を使用して、その範囲で点対称ペアドットを検出するためである。
【0026】
次に、図11に示したデータ取得器83を図24により説明する。
図24では、コード枠のコーナーの4点を除いてa1〜a7、b1〜b11、c1〜c7、d1〜d11とする。コードのデータを取得するには、これらを結ぶ水平線と垂直線の交点を検出する。つまり、a1とc1を結ぶ直線とb2とd2を結ぶ直線の交点の座標を検出する。そして、この交点の座標を中心にして3×3がその領域においてドットの有無を検出する。図24の場合はドット無しとなり取得されるデータは「0」となる。これをコード全データに対して行ってコードデータを取得し、データ配置規則(図4)に従ってデータを再構成する。
次に、図11に示したペン先座標算出器87について説明する。
ペン先座標算出器87は、図25に示すように、ドット中心検出器130、射影パラメータ算出器131、ペン先座標変換器132とからなる。ドット中心検出器130へは画像上のコードコーナー座標、それに対応する紙面上のコードコーナー座標および撮像したグレースケール画像を入力し、それらから射影パラメータ算出に使用するドットの中心位置を推定する。
図26はドット中心検出器130の構成を示した図である。
この図26に示すように、ドット中心検出器130は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段133と、このドット座標補正手段133により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段134とにより構成される。
図27は射影パラメータ算出方法を説明する図である。なお、射影パラメータ算出方法は後述する。
図27(a)は画像におけるパターンのコーナー(As〜Ds)とペン先(Ps)の座標は、画像の各画素の位置を表す整数ではなく、画像におけるドットの中心、ペン先の紙に接する部分の中心の座標を表す。即ち、図28に示すようにドットの中心は必ずしも画素位置の中心に来るとは限らず、位置がずれる。ここで正確なドットの中心を推定することで、ペン先の紙面における座標の推定精度が向上する。
【0027】
次に、正確なドットの中心を推定するための方法について説明する。
図29(a)に示すように、元のグレースケールの入力画像において、ドット検出器11で検出したドットの画素位置を中心とする3×3画素近傍で最小の画素値を有する画素位置を検出する。この画素位置を(i、j)とする。また、画素位置(i、j)を中心とした3×3画素のウィンドウ内における各画素の値を、図29(b)で示すようにv(x、y)(但し、i−1≦x≦i+1、j−1≦y≦j+1)とし、下記の計算式を用いて、中心座標(ic、jc)を推定する。
(式21)
(式22)
上記式(21)、式(22)の二つの式を利用してAs〜Dsの4ドットの中心座標を決定する。そして、先に求めたAs〜Dsから射影パラメータを算出する。
図27を用いて射影パラメータの算出方法について詳述する。
図27(a)は画像におけるコードのコーナー(As〜Ds)とペン型座標入力装置7の先端部62(Ps)の座標である。Psの座標は常に一定である。なぜならばペン型座標入力装置7では画像読取装置64と先端部62は固定されているからである。先端部62はペン型座標入力装置7の構成により画像読取装置64で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
図27(b)は紙面におけるコードのコーナー(Ar〜Dr)とペン型座標入力装置7の先端部62(Pr)の座標である。コードのデコードによりArが決定されるので、その隣接コーナーであるBr〜Drは自動的に決まる。算出したいのはPrの座標である。射影変換式は図27(c)に示す式により画像座標から紙面座標への変換が行われる。変換係数b1〜b8は未知数であるが、コーナー座標の関係により8つの一次方程式が作られる。この連立方程式を解く事によりb1〜b8のパラメータが算出される。
ペン先座標変換器はこのパラメータを用いてPsをPrに変換して紙面上の先端部62の座標を決定する。
ペン先座標変換器132はこのパラメータを用いてPsをPrに変換して紙面上の先端部62の座標を決定する。
【0028】
次に、2次元コード読取装置の他の実施例を図30に示す。なお、図11と同一部位には同一符号を付して説明は省略する。この図30に示す2次元コード読取装置は、第1誤り訂正器141、第2誤り訂正器142、選択器143が設けられている点が、図14に示した2次元コード読取装置と異なるものとされる。
第1誤り訂正器141及び第2誤り訂正器142の機能は、図11に示した誤り訂正器85と同一の機能を有する。選択器143は、連続筆記検出器91において連続筆記中であると判断された場合は、常に第2誤り訂正器142の出力を選択し、図11に示した2次元コード読取装置と同一の動作を行う。
一方、筆記検出器92の出力から筆記中であるが連続筆記中でないと判断した場合、即ち筆記開始時においては、選択器143は次のような動作を行う。第1誤り訂正器141の誤り訂正判定情報が誤り訂正成功の場合には、第1誤り訂正器141の出力が選択される。第1誤り訂正器141の誤り訂正判定情報が誤り訂正失敗の場合には、第2誤り訂正器142の出力が選択される。
このような処理を行うと、新しい加筆が行われる際に同一の文書への加筆ならば装置としての誤り訂正率が向上するので、図11に示した2次元コード読取装置より有利である。
これまで説明してきた2次元コード読取装置74はハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよく、この場合は2次元コード読取方法を実現するプログラムがマイコン65(図5参照)のROM72(図10参照)に格納される。そして、そのプログラムの命令が順次CPU71にロードされて命令の実行が行われ、2次元コード22の読み取り処理が行われることになる。その処理手順を図31(a)(b)に示すフローチャートに従って説明する。
【0029】
まず、画像入力を行った後、図31(a)に示すように、画像内のドットを検出する(S21)。次に、2次元コードの位置を抽出するコード枠の検出を行った後(S22)、2次元コードの白黒に応じて「0」または「1」のデータを取得してデータの並べ替えを行う(S23)。この後、ステップS24において誤り訂正を行い、ステップS25において誤り訂正に成功したと判別したときはステップS26に進み、誤り訂正に成功したと判別しなかったとき、つまり誤り訂正に失敗したと判別したときは2次元デコード処理を終了することになる。
破線で囲ったステップS24、S25の処理は、図31(b)に示すようになる。
まず、ステップS31において、取得したデータが連続検出中、即ち、ペン型座標入力装置7の先端部62が常に紙面に押し付けられているかどうかを判定し、連続検出中ならば、ステップS32において既知情報(文書ID)でデータ置き換えを行う。データ置き換えを行った後、ステップS33で誤り訂正を行う。ステップS34において誤り訂正が成功したと判別した場合は、ステップS35においてデコードされた既知情報(文書ID)を保存して誤り訂正処理を終えることになる。この後、図31(a)に示すステップS26に進み、元のデータ(座標情報)を復元し、続くステップS27においてペン型座標入力装置7の先端部62の紙面上における座標を算出する。
一方、図31(b)のステップS31において、取得したデータが連続検出中でなかった場合、つまり初めての加筆である場合、ステップS32のデータの置き換えは行わず、ステップS33において誤り訂正を行う。そしてステップS34において誤り訂正が成功したと判別した場合は、上記同様、ステップS35において文書ID(既知情報)を保存した後、図31(a)に示すステップS26において元のデータ(座標情報)を復元し、続くステップS27においてペン型座標入力装置7の先端部62の紙面上における座標を算出すればよい。
なお、ドットの検出、コード枠の検出、データ取得、誤り訂正、座標・文書ID復元、ペン先座標算出の各ステップは、図11に示すドット検出器81、コード枠検出器82、データ取得器83、誤り訂正器85、データ復号器86、ペン先座標算出器87の各機能をソフトウェアで実現している。
【0030】
また図32は、上記図15に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合、先ず、ステップS71において、画素Zを中心とした7×7画素の領域に対してドット候補の検出を行い、続くステップS72において、ドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップS73において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにする。
また図33は、上記図18に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合は、先ずステップS70において、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定して、ドットを探索する小領域3×3画素を設定する。以下、上記同様、ステップS71において、画素Zを中心とした3×3画素の領域に対してドット候補の検出を行い、続くステップS72において、ドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップS73において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにすれば良い。
【0031】
また図34は、上記図25に示したペン先座標算出器87におけるドット中心検出方法をソフトウェアで実現する場合のドット中心検出処理を示したフローチャートである。
この場合、先ず、ステップS81において、コード枠の所定の位置に存在するドットの正確な座標を推定する。続くステップS82において、ステップS81においてドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出し、ステップS83において算出された射影パラメータを用いて画像座標中の所定の座標に演算を加えてペン先の座標変換処理を行うようにすれば良い。
このようにドット検出方法をソフトウェアで実現すると非常に高速にドットの検出を行うことができるようになる。
また、2次元コード読み取り処理の他の処理手順を図35(a)(b)に示すフローチャートに従って説明する。
この図35に示すフローチャートが図31に示したフローチャートと異なる点は、筆記中であって連続検出中でない場合、即ち筆記開始時に文書IDを置き換えずに誤り訂正を行い、誤り訂正ができなかった場合に文書ID部分の置き換えを行って誤り訂正を行うようにしている点である。つまり、図35(b)に示すステップS41において筆記中であると判別し、続くステップS42において連続検出中でないと判別された場合、ステップS43において、筆記開始時に文書IDを置き換えずに誤り訂正を行い、ステップS44において誤り訂正ができなかった場合に、ステップS45において文書ID部分の置き換えを行って誤り訂正を行うようにしている。これにより、同一文書への加筆時には、図35に示すように2次元コード読み取り処理を行ったほうが誤り訂正率を向上させることができるようになる。
なお、図35(a)に示す処理、及び図35(b)に示すステップS45〜S48の処理は、それぞれ図31(a)に示す処理、及び図31(b)に示すステップS32〜S35の処理と同じとされるので説明は省略する。
【0032】
これまで2次元コードを読むことにより加筆座標を取得する装置、及びシステムについて述べた。そこで次に加筆した情報を取得し、原文書に重畳するシステム、及び方法を、図5に示した文書管理システムと図36に示すフローチャートを参照しながら説明する。なお、ここでは文書には2次元コードが付されて印刷されているものとする。
ここで、ペン型座標入力装置7で文書に加筆を行ったとすると、前述したように、文書上の2次元コード22が読み取られ、文書IDと座標情報がペン型座標入力装置7で取得される(S51)。コードシンボルの読み取りの詳細について後述する。加筆とともにリアルタイムで読み取られた文書IDや座標情報が情報処理装置4へ送信される。情報処理装置4は文書IDと座標情報を受け取ると、その文書IDを、文書管理データベース6を管理する情報処理装置9へ転送する(S52)。
情報処理装置9は受信した文書IDを元に、文書管理データベース6から現在加筆されている文書のページを特定する(S53)。ここで、例えば、特定された文書が図37に示す識別番号(ID)「123456」の「patent.doc」のページ1であるとする。この文書情報はペン型座標入力装置7へ送信され、ペン型座標入力装置7のLCD表示装置66には受信した文書情報が表示される。このようにしてファイルの実体が特定できたので、情報処理装置4は「patent.doc」をそれが関連付けられているアプリケーション(例えばワープロソフト)で開き、例えば情報処理装置4に接続された図示しないディスプレイに表示して編集状態とする(S54)。
【0033】
編集状態とされた文書「patent.doc」に、ペン型座標入力装置7から次々送信されてくる座標情報を描画することになる。描画する方法としては、文書のウィンドウに新たな描画オブジェクトを開き、受信した座標を線でつないで描画することで実現することができる(S55〜S58)。
加筆が終了した時点で(S59「Y」)、ペン型座標入力装置7は加筆終了の信号を情報処理装置4へ送信し、加筆終了の信号を受け取った情報処理装置4は、ウィンドウへの描画を終了する。このようにして文書「patent.doc」に一つのオブジェクトが加えられる(S60)。本実施形態では加筆した情報をリアルタイムでコンピュータのディスプレイ上に表示し、実際に加筆した情報が正しく処理されているかどうかをすぐに確認できるのでユーザにとって大きなメリットになる。また、情報処理装置4では受信した座標情報を数列テキストとして同時に別ファイルとして保存する。文書が巨大な場合など、ユーザが後にアプリケーションを開いて加筆されたデータを確認したいときに素早く確認することが不可能な場合に、加筆されたデータのみを表示・確認させることができるので有効である。
なお、これまで説明した本実施形態では、紙に2次元コードを印刷した場合について説明したが、この方法は紙に制限されるわけではなく、ペーパーライクディスプレイ、フィルム、ホワイトボード等、加筆を可能とするものならば有効に機能する事は言うまでもない。
【図面の簡単な説明】
【0034】
【図1】本発明の実施の形態に係る印刷文書の平面図。
【図2】2次元コードのドットの大きさ、及びドットの間隔を示す図。
【図3】2次元コードのデータ配置領域を示す図。
【図4】2次元コードへのデータの配置順序を示す図。
【図5】本発明の実施の形態に係る文書管理システムの構成図。
【図6】2次元コードのエンコード処理を示したフローチャート。
【図7】データのエンコード処理と誤り訂正符号の付加処理の説明図。
【図8】文書印刷とデータベースへの登録方法を示す図。
【図9】2次元コードを付して印刷した文書の一例を示す図。
【図10】マイコンの構成を示す図。
【図11】2次元コード読取装置の構成を示したブロック図。
【図12】2次元コードを読み取った画像の一例を示す図。
【図13】文書ID置き換えによる誤り訂正の可否を説明する図。
【図14】画像全体の領域と各検出器の処理領域を示す図。
【図15】ドット検出器の構成を示した図。
【図16】ドット検出器の説明図。
【図17】文書IDの置き換えによる座標取得率の変化を示す図。
【図18】ドット検出器の他の構成を示した図。
【図19】コード枠検出器の説明図。
【図20】コード枠の追跡経路の説明図。
【図21】コーナー検出器の説明図。
【図22】渦巻き走査の一例を示す図。
【図23】ドット追跡器の説明図。
【図24】データ取得器の説明図。
【図25】ペン先座標算出器の構成を示す図。
【図26】ドット中心検出器の構成を示す図。
【図27】ペン先座標算出の説明図。
【図28】ドット中心の位置と画素の関係を示した図。
【図29】画素位置の説明図。
【図30】2次元コード読取装置の他の構成を示したブロック図。
【図31】2次元コードの読み取り処理の一例を示したフローチャート。
【図32】ドット検出処理を示したフローチャート。
【図33】ドット検出処理の他の例を示したフローチャート。
【図34】ドット中心検出処理を示したフローチャート。
【図35】2次元コードの読み取り処理の他の例を示したフローチャート。
【図36】文書加筆時の文書更新、データベースの更新方法を示す図。
【図37】文書管理データベースに登録されている項目を示す図。
【符号の説明】
【0035】
1…プリンタ、2…複写機、3…スキャナ、4…情報処理装置、5…記憶装置、6…文書管理データベース、7…ペン型座標入力装置、8…携帯情報端末、9…情報処理装置、10…2次元コード作成装置、21…印刷文書、22…2次元コード、23…ドット、24…最小ドット、61…装置本体、62…先端部、63…筆記具、64…画像読取装置、64a…光電変換素子、64b…光学系、65…マイコン、66…LCD表示装置、67…LED、68…ブザー、69…圧力センサ、70…バス、71…CPU、72…ROM、73…RAM、74…2次元コード読取装置、81…ドット検出器、82…コード枠検出器、83…データ取得器、84…データ置換器、85…誤り訂正器、86…データ復号器、87…ペン先座標算出器、88…既知情報メモリ、91…連続筆記検出器、92…筆記検出器、101…ドット候補検出器、102…最小輝度画素判定器、103…周辺ドット探索器、104…ドット探索領域判定器、11…ドット検出器、111…第一コーナー検出器、112…第一ドット追跡器、113…第二コーナー検出器、114…第二ドット追跡器、115…第三コーナー検出器、116…第三ドット追跡器、117…第四コーナー検出器、118…第四ドット追跡器、121…周囲ドット検出器、122…点対称ペア検出器、130…ドット中心検出器、131…射影パラメータ算出器、132…ペン先座標変換器、133…ドット座標補正手段、134…ドット位置推定手段、141…第1誤り訂正器、142…第2誤り訂正器、143…選択器
【技術分野】
【0001】
本発明は、文書の固有情報及び文書の位置情報を含む2次元パターンを読み取る2次元パターン読み取り装置と、2次元パターン読み取り方法に関するものである。
【背景技術】
【0002】
紙などの印刷媒体上に、符号化した座標情報を含む2次元コードを配置することによって、その印刷媒体上に形成された画像情報の位置や内容を特定する技術が知られている。従来の1次元バーコードが横(水平)方向のみにしか情報を持たなかったのに対し、2次元コードは水平と垂直の2方向に情報を有するので、より複雑な情報を表すことができる。
先行文献としては、特許文献1に光学的に読取可能なコードシンボルを紙面上にマトリックス状に並べ、小型カメラを備えたペンで紙面への加筆と同時にカメラで前記コードシンボルを読み取り、座標情報を同時に取得することにより、加筆情報をリアルタイムに読み取り、加筆前の紙面情報と加筆情報を関連付けるシステムに関する技術が開示されている。
また特許文献2には、X座標、Y座標、コードの方向を表すパターンと、ホーミングパターンと呼ばれるその他のパターンより大きくて、コードの中心に配置されたパターンとからなり、それらは人の目にはみえないようにする技術が提案されている。
また特許文献3には、ドットを所定の位置からずらすことにより、1ドットで2ビット以上の情報を有することができる2次元コードが開示されている。このような2次元コードは、水平垂直方向の座標情報を有し、紙全体に連続的にドットが印刷されており、これを読み取ることにより、2次元コードがどの座標情報を有しているかを取得する技術が開示されている。
また特許文献4には、座標と文書情報を符号化し、紙上に印刷した2次元ドットパターンをカメラのついたペンで筆記中に読み取り、該パターンを読み取ることにより、現在どの文書のどの位置に筆記中であるかを取得する技術が開示されている。
【特許文献1】特開2000−293303公報
【特許文献2】米国特許第5661506号
【特許文献3】WO00/73981
【特許文献4】特開2004−94907公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上記特許文献1では、文書に固有の情報と座標位置を同時に白黒のパターンに変換し、紙に印刷して、紙上の文書に光学ペンで加筆した情報を、白黒のパターンを読み取ることにより取得し、文書固有の情報と紙上の座標位置を取得し、元の文書に加筆情報を追加するようにしている。このような特許文献1の技術では白黒のパターンに誤り訂正機能を有する2次元コードを利用し、光学ペンによる読み取りが不安定な場合でも文書固有の情報と座標情報を取得できるような機能を有しているため、特開平7−141104号公報の技術において読み取りが不可能な場合でも読み取りが可能になっている。
しかしながら、この場合は2次元コードの大きさが大きくなるため、広い範囲の紙面を光学ペンで撮影しなければならず、被写界深度などの問題で読み取った画像の品質が良くなく、2次元コードを連続的に読み取ることが難しくなる。また、当該2次元コードは筆記中の紙面をカメラで撮像し、デコードするために作られたわけではなく、汎用の2次元コードであるため、デコード処理に時間がかかり、リアルタイムで処理を行うことが難しい。この技術の目的のひとつは連続的な加筆情報を取得するということであるため、2次元コードを読み取り、座標位置を連続的に取得できなければ、加筆情報の不連続点が発生し、正しい加筆情報が得られなくなるという欠点があった。
また上記した特許文献2は、一般の印刷装置を使用してコードを印刷することは事実上不可能であり、予め特殊な印刷装置において不可視インクを使用してコードを印刷する必要があり、ユーザが印刷したい文書の情報を印刷時に印刷媒体に埋め込むためには別のバーコードを重畳して印刷するなりの手段が必要となるばかりか、文書に加筆する前に必ずそのバーコードを読ませる必要があり、ユーザにとって不便になる。
仮に、バーコードを読む作業を忘れて別の文書に加筆を行うならば加筆情報と電子文書とのリンクが矛盾を起こして重大な問題となる。また、仮に可視インクで印刷したとしても他のパターンより大きいパターン(マーク)を使用しており、人の目につきやすく、文書や加筆の可読性が損なわれるという欠点があった。
【0004】
また特許文献3は、2次元的に等間隔な点からドットをずらして配置することにより、1ドットに2ビット以上の情報を乗せ、6×6のドットでそのコードの位置情報を有する2次元コードを開示している。この技術は、位置をずらす量が30μmと非常に小さく、一般に普及しているレーザープリンタの解像度(1200dpi)では、紙送りの精度、感光体の回転速度のむら等により正しいずれ量を再現することが難しい。
従って、この2次元コードの場合も、予めオフセット印刷等の印刷技術を利用して2次元コードを印刷した紙を用意する必要があるため、上記特許文献3と同等の問題が発生するという欠点があった。
また特許文献4は、読み取った画像の周辺部を使わないで2次元コードパターンの読み取り処理を行う方法について開示されており、高速化においてある程度の改良は見込めるものの、飛躍的に処理速度の向上は達成できない。
また、筆記を再現するための読み取りアルゴリズムの性能に問題があった。さらにドット検出の手法について、5×5画素のウィンドウを使ってその検出を行っているが5×5画素のウィンドウではノイズ成分をドットとして判定するという間違いを起こしやすかった。また、ペン先位置を推定する方法においては、読み取った画像から検出したコーナードットの座標とドットの中心とが一致しておらず、ペン先の正確な位置を推定する精度が良くないなどの欠点があった。
そこで、本発明は、上記したような点を鑑みてなされたものであり、紙上に印刷した文書に手書きで加筆した情報をより高速、より正確に取得し、元の電子文書にその情報を反映させることができる2次元パターン読み取り装置及び2次元パターン読み取り方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、請求項1に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、前記ドット検出手段が注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定したドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
請求項2に記載の発明は、前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用する請求項1記載の2次元パターン読み取り装置を特徴とする。
請求項3に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用する請求項1記載の2次元パターン読み取り装置を特徴とする。
請求項4に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、前記ドット検出手段が、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
【0006】
請求項5に記載の発明は、前記ドット探索領域判定手段は、水平1画素垂直1画素おきに小領域を設定する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項6に記載の発明は、前記ドット探索領域は、3×3画素からなる小領域である請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項7に記載の発明は、前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項8に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用する請求項4記載の2次元パターン読み取り装置を特徴とする。
請求項9に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段と、該データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出手段と、を備えた2次元パターン読み取り装置において、前記座標算出手段が、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする。
【0007】
請求項10に記載の発明は、前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなる請求項9記載の2次元パターン読み取り装置を特徴とする。
請求項11に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップとからなることを特徴とする。
請求項12に記載の発明は、前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用する請求項11記載の2次元パターン読み取り方法を特徴とする。
請求項13に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用する請求項11記載の2次元パターン読み取り方法を特徴とする。
請求項14に記載の発明は、複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、該ドット候補検出ステップで検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする。
【0008】
請求項15に記載の発明は、前記ドット探索領域判定ステップは、水平1画素垂直1画素おきに小領域を設定する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項16に記載の発明は、前記ドット探索領域は、3×3画素からなる小領域である請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項17に記載の発明は、前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項18に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用する請求項14記載の2次元パターン読み取り方法を特徴とする。
請求項19に記載の発明は、複数の微小なドットで構成される少なくとも位置情報を含むデータを符号化した2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード内のドットを読み取ってデータを復号するデータ復号ステップと、該データ復号ステップで復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出ステップと、からなる2次元パターン読み取り方法において、前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする。
請求項20に記載の発明は、前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなる請求項19記載の2次元パターン読み取り方法を特徴とする。
【発明の効果】
【0009】
本発明によれば、2次元パターンの読み取りを精度よく、効率的、高速に読み取ることができるようになるので、筆記した情報の再現品質の向上を図ることができる。
【発明を実施するための最良の形態】
【0010】
図1は、本発明の実施の形態に係る印刷文書の平面図である。
この図1において、2次元コード22は複数の黒ドットで構成される光学的に読み取り可能なコードであり、縦横に規則的に配列された黒ドットを境界としてマトリクス状に並べられており、印刷文書21の印刷時には文書と2次元コード22のパターンが同時に印刷される。2次元コード22には、例えば印刷文書21の2次元コード22が印刷されている面における印刷された文書の原本となる電子文書の識別(ID)情報と2次元コード22の座標を意味する情報がエンコードされている。なお、図1においては説明上、文書は図示せず、行間や余白などの2次元コードのみが印刷された部分を示している。
例えば、図1の左上のコードシンボル(2次元コード)22aには「水平座標=95、垂直座標=10、文書ID=10」がエンコードされ、2次元コード22bには「水平座標=96、垂直座標=10、文書ID=10」、2次元コード22cには「水平座標=95、垂直座標=11、文書ID=10」、2次元コード22dには「水平座標=96、垂直座標=11、文書ID=10」とエンコードされている。
【0011】
図2は、2次元コードのドットの大きさ、及びドットの間隔を示した図であり、この図を用いて、2次元コードのドット及びコードの大きさについて説明する。2次元コード22及び境界を構成するドット23は、プリンタの最小ドット24の2×2単位で印字される。1200dpiのプリンタならば、プリンタの最小ドット径は21μmであるので、2次元コード22のドットの直径は理想的には42μmとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。ドット直径の6倍の間隔を置いて水平・垂直方向にドット23を配置する位置を決定する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には2.8%、50%程度のドットゲインを見込んでも5%に満たない。この面積率は人の目には明るい灰色に見えるのでドットに邪魔されて文書が見えにくいとか、加筆した文字が見えにくいなどという問題は起こらない。
以上のようにコードの配置を決定すると2次元コード22は水平2mm、垂直3mm角の大きさを有し、水平座標=95ということは、2次元コードの左上の角が紙面の左上を原点として水平方向に190mmの位置にあるということを意味する。詳しくは後述するが、水平2mm、垂直3mm角の大きさは、A4サイズの用紙と相似の大きさであり、水平・垂直座標情報を格納するデータ長を有効に使うことが可能になる。
同様に垂直座標=10は、2次元コードの左上の角が紙面の左上を原点として垂直方向に30mmの位置にあるということを意味する。
文書IDは、元の電子文書の固有情報、例えば電子文書が格納されているデータベースの識別IDである。即ち、2次元コード22はその左上の角(垂直線H1と水平線V1の交点)が、紙面左上から水平190mm、垂直30mmの位置にあり、印刷されている文書はそのIDが「10」であるという情報を有する。
【0012】
図3は、2次元コードのデータ配置領域を示した図であり、この図を用いて2次元コード22に配置するデータの詳細に説明する。2次元コード22aはコード枠を構成するH1、H2、V1、V2に囲まれた7×11のセルを有する。セルとはドットを打つことのできる単位をいい、最大77個のドットを含む。
領域31は水平座標を表すデータを配置する領域であり4×2のセルを有する。1セルは1ビットに相当するので領域31は1バイトの容量を有する。
領域32は、垂直座標を表すデータを配置する領域であり、水平座標と同様に1バイトの容量を有する。A4サイズの用紙は水平210mm、垂直297mmの大きさがある。また2次元コード22の一つの大きさは、水平2mm、垂直3mmであるので水平方向には105段階、垂直方向には99段階のデータが必要になるが、1バイトで十分な容量を満たしている。用紙サイズがA3の場合には、水平297mm、垂直420mmの大きさであるので、水平方向に148段階、垂直方向に120段階のデータが必要になる。この場合も1バイトのデータ容量があれば十分である。同様にA2サイズの場合でも、水平420mm、垂直594mmの大きさであるので、水平方向に210段階、垂直方向に198段階のデータが必要であるが、この場合も1バイトのデータ容量で収まる。このように紙の縦横の長さの違いに応じて2次元コードの縦横の長さを決定すると水平・垂直座標を表すデータ長を同一の一定サイズに固定しても幅広いサイズの用紙に対応できるようになっている。
領域33は文書IDをあらわすデータを配置する領域であり、4×6の24ビット(=3バイト)の容量を有する。領域34〜37は誤り訂正用の符号を配置する領域であり、それぞれ1バイトずつの容量を有する。したがって誤り訂正用符号は合計4バイトで構成される。領域38、39はコードの上下方向を表すためのパターンで、領域38は3×1の黒ドット、領域39は2×1のドット無しのパターンでコードの上下を判別するのに使用される。
【0013】
図4は、各データのビット列がどのように配列されるかを示した図である。なお、この図3の領域31〜領域37に示されている「1」はMSB、「8」はLSBをそれぞれ示している。
図5は本実施の形態としての文書管理システムの構成を示した図である。
この図に示す文書管理システムは、プリンタ1、複写機2、スキャナ3、情報処理装置4、記憶装置5、文書管理データベース6、ペン型座標入力装置7、携帯情報端末8、情報処理装置9、2次元コード作成装置10より構成され、これらがネットワークを介して接続されている。
プリンタ1は印刷を行う印刷装置、スキャナ3は画像の読み取りを行う読取装置、複写機2は、例えばコピー、スキャナ、ファックス、プリンタなどの機能を備えた複合機とされる。情報処理装置4はペン型座標入力装置7及び携帯情報端末8の制御を行い、情報処理装置9は記憶装置5の制御を行う。なお、ペン型座標入力装置7の構成は後述する。
次に、図5に示した文書管理システムにおいて、上記した2次元コード22を作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの手順を図6を用いて説明する。なお、2次元コード22の作成は、図5に示した情報処理装置4、9で文書11の印刷命令を実行したときに、情報処理装置4、9内のプリンタドライバで実行される。
この場合、プリンタドライバは、まず記憶装置5内の文書管理データベース6に問い合わせて印刷しようとする文書11のページ毎の文書IDを発行してもらう(S1)。文書IDを発行してもらったら、それと文書上の座標情報とを合わせてエンコードすべきデータを取得する(S2)。例えば、図7(a)に示す文書IDは「123456」、座標情報(X,Y)はmm単位(24,123)という具合である。次にデータをエンコードする(S3)。これにより、文書IDは、図7(b)に示すように、6桁の数字を3バイトのバイナリ値に変換する。また、水平座標は24/2=12、垂直座標は123/3=41と、水平・垂直それぞれ1バイトずつで収まるように変換する。座標情報はこのように2バイトのバイナリ値に変換し、文書IDと合わせて計5バイトのデータとする。そしてエンコードした後、エンコードデータを元に誤り訂正符号を追加する(S4)。図7(c)に示す例では、5バイトのデータに対して4バイトの誤り訂正符号を付加している。この誤り訂正符号にはリードソロモン符号を採用する。リードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。なお、リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論(コンピュータ基礎講座18)」宮川、岩垂、今井共著など、多数の書籍に記されている。本実施の形態の場合には、図7(c)に示すように誤り訂正符号長が4バイトなので2バイトの誤り訂正が可能である。
【0014】
このようにして作成されたエンコードデータおよび誤り訂正符号データは2次元コード22の各セルに割り当てられ(S5)、続くステップS6において、1ページ分の2次元コードの作成が終了したかどうかの判別を行う。そして、1ページ終了したら次のステップS7において、全ページ終了したかどうかの判別を行い、全ページ終了したら処理を終えることになる。なお、ステップS6において1ページ分の2次元コードの作成が終了していないと判別した場合は、ステップS2に戻って処理を行う。またステップS7において全ページ分の2次元コードの作成が終了していないと判別した場合、ステップS1に戻って処理を行うようにする。
これにより、2次元コードがページ全体に配置されたマトリクスの画像を作成することができる。その後、プリンタ1や複写機2のプリンタ部を使用して印刷を行う。印刷が正常に終了したら文書管理データベース6内のID管理テーブルに正常に印刷された文書、ページ、文書ID等の情報の登録を行うようにする。
図8は、上記2次元コードを作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの一連の作業を作業者から見たフローである。
この場合、まず、図5に示す文書管理システムの記憶装置5に保存されている文書11を編集し(S11)、印刷命令を出して、プリンタ1や複写機2で文書の印刷を実行させる(S12)。印刷が正常に終了したならば(S13)、印刷に成功した文書IDを文書管理データベース6内のID管理テーブルに登録する(S14)。
図9は、2次元コード付きで印刷された文書の一例を示した図であり、図9(a)に示す印刷文書21は、例えば所定のフォーマットを有する帳票文書であり、背景には2次元コード22が印刷されている。印刷文書21の一部を拡大したものが図8(b)に示す図であり、2次元コード22のコード枠を兼ねるアライメントドットと、枠内に配置されるデータドットが示されている。また2次元コード22が規則的に並んでいる。
【0015】
さて、2次元コードつきの文書は印刷できたので、次に筆記を行うとともに紙面の画像を撮像して2次元コードをデコードして座標情報を得るペン型座標入力装置7の概略構成を図5に示すブロック図を用いて説明する。
図5に示すペン型座標入力装置7は、人が手に持って筆記動作を行うことができる筆記具状の装置本体61を備えている。この装置本体61の先端部62には、筆記具63、即ち、ボールペン、シャープペンシルの先端部分等が取り付けられており、文書に加筆可能である。装置本体61側に設けられた画像読取装置64は、CCDなどの光電変換素子64aと、レンズなどからなる光学系64bとから構成され、印刷文書21上の画像を読み取るようにしている。なお、画像読取装置64には必要に応じて照明を設けることができる。CCDの読み取り解像度は320×240画素とする。
装置本体61には、マイコン65が搭載され、マイコン65には画像読取装置64が接続されている。マイコン65は、画像読取装置64で読み取った印刷文書21上の画像に基づいた各種処理を行う。即ち、読み取った2次元コード22をデコードし、2次元コードの紙面上の座標を検出する(詳細については後述する)。またマイコン65は、装置本体61の外部になるPCなどの情報処理装置4と接続可能であり、マイコン65内に蓄積したデータを情報処理装置4に出力可能である。なお、図6では画像読取装置64や、マイコン65などに電力を供給する電源、マイコン65と情報処理装置4とのインタフェースなどは図示を省略している。
【0016】
マイコン65は、図10に示すように、バス70を介してCPU71、ROM72、RAM73、2次元コード読取装置74が接続されている。即ち、CPU71はバス70を介して各種外部装置と接続されている。ROM72には、図5に示したペン型座標入力装置7の動作を制御するプログラムやマイコン65を動作させるプログラムが予め内蔵されている。RAM73は画像読取装置64から読み取った画像や、コード読み取り中に生成される中間データ、2次元コードをデコードした際に得られる文書IDや座標などを一時的に保存する。
2次元コード読取装置74は、図11に示すように構成され、RAM73に記憶された画像から2次元コードを検出し、読み取って文書IDや座標を検出する作業を行う。なお、2次元コード読取装置74については後述する。
さらに図5に示すマイコン65には、LCD表示装置66、LED67、あるいはブザー68が接続されている。これにより、マイコン65は、情報処理装置4から受信した情報をLCD表示装置66に表示したり、あるいは特定の情報を受信した場合にはLED67を点滅させたり、ブザー68を鳴らしたりして外部に通知することができるようになっている。
装置本体61には、ペン型座標入力装置7の先端部62が筆記面に接触しているかどうかを検出する圧力センサ69が設けられている。圧力センサ69は、先端部62が筆記面に接触することにより、筆記具63を介して伝達される圧力を感知し、感知した情報をマイコン65に伝送する。
このように構成されるペン型座標入力装置7を用い、印刷文書21上での先端部62の位置検出を連続的に行えば、印刷文書21上での先端部62の移動軌跡を求めることができる。また、ペン型座標入力装置7の先端部62が筆記面に接触しているかどうかを検出する圧力センサ69によって、紙面上に筆記を行ったときの筆記軌跡を忠実に求めることができる。もし2次元コードが存在しない文書にペン型座標入力装置7の読み取り対象ではない文書に加筆する場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をLCD表示装置66またはLED67を用いて行い、ユーザに通知する。
【0017】
次に、2次元コードの読み取りの動作について詳述する。
図11は2次元コード読取装置74の構成を示した図である。この2次元コード読取装置74は、先にも述べたように、図5に示したペン型座標入力装置7の内部のマイコン65に内蔵されている(図10参照)。
この図11に示す2次元コード読取装置74では、画像読取装置64で読み取られた紙面の画像(8ビット画像)がドット検出器81に入力され、ドット検出器81において2次元コード22のドット検出を行うようにする。コード枠検出器82では、ドット検出器81において検出されたドットから画像内にある複数の2次元コード22から一つの2次元コード22の枠とその位置を検出する。読み取った画像例を図12に示す。
コード枠検出器82において2次元コード22の位置を検出できたときは、データ取得器83において、2次元コード22の各白黒セルに応じて「0」または「1」のデータを取得し、2次元コード22のデータ配置規則に従ってデータの並べ替えを行う。
データ置換器84は、取得したデータに対して、連続筆記検出器91から出力される連続筆記中であるか否かの信号により、既知情報メモリ88から既知の文書IDを読み出し、データ置換器84において2次元コード22から取得したデータの文書IDに相当する部分を既知の文書IDで置き換える。
連続筆記検出器91には、筆記検出器92の検出情報が入力される。筆記検出器92には、ペン型座標入力装置7による加筆時においてペン先に感じる圧力を検出する圧力センサ69の出力信号が入力され、筆記中か否かを判定する。そして筆記の状態が所定時間以上続いたときは連続筆記中であると判断し、それ以外の場合は連続筆記中ではないと判断して、その検出結果を連続筆記検出器91に出力する。
【0018】
誤り訂正器85は、データ置換器84の出力に対して誤り訂正を行う。誤り訂正器85からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。この誤り訂正されたデータは文書IDと座標情報である。
誤り訂正器85から出力された誤り訂正の判定情報は、データ復号器86、ペン先座標算出器87、既知情報メモリ88へ入力され、それぞれの機器の制御に使用される。
データ復号器86では、誤り訂正の判定情報が誤り訂正成功であればデータ復号器86は動作する。誤り訂正失敗であればデータ復号器86は動作しない。ペン先座標算出器87は誤り訂正の判定情報が誤り訂正成功であり、且つ、筆記検出器92の出力が筆記中であれば、ペン先座標を算出して出力するが、誤り訂正失敗の場合や筆記中でない場合ならば現実にはありえない座標値(−1、−1)等を出力する。また、既知情報メモリ88では、誤り訂正が成功である場合、誤り訂正された情報の文書IDに相当する部分を新たに保存する。
ここで、データ置換器84におけるデータ置き換えの具体例を図13に示す。
この場合、第一行目には正しいデータをエンコードして誤り訂正符号を生成した時のデータが示されている。また第二行目には画像から2次元コード22を抽出して2次元コードのドットからデータを再構成した観測データが示されている。ここで、観測データのY座標と、ID情報の1、2番目に誤りがあるとすると、この場合は誤りが三つあるため、後段の誤り訂正器85で誤り訂正を行う事ができなくなってしまう。
そこで、誤り訂正器85において誤り訂正を行う事ができなくなるのを防止するため、第三行目に示すように文書IDを既知情報メモリ88に記憶されている既知情報に置き換えるようにしている。これにより、ID情報の部分の誤りがなくなり、Y座標の1バイトだけが誤りとなり、誤り訂正が可能となって正しい座標情報、ID情報が得られるようにしている。
誤り訂正に成功したデータは、データ復号器86により、紙面上の座標情報と文書IDに復号される。紙面上のIDは、水平座標=24mm、垂直座標123mm、文書ID=23となる。この座標及びデコードに成功した2次元コード22の画像上の座標を用いてペン先座標算出器87は、ペン先の紙面上での座標を算出する(詳細は後述)。これによりペン型座標入力装置7の先端部62の位置が確定する。
【0019】
次に、図14を用いてドット検出器の動作を説明する。
ドット検出を行うために用いる領域は7×7画素のウィンドウである。従来技術の5×5画素よりもノイズに強い判定を行うことができる。ドット検出を行う領域は、図14の領域102である。領域101は画像領域全体(320×240画素)であり、領域102は280×220画素の領域である。最外周の領域では画像品質が良くなく正しいドット検出を行うことが難しい可能性があることと、リアルタイム処理のためにできるだけ無駄な処理をしたくないから、画像領域全体ではなくそれより小さい領域においてドット検出を行うようにしている。
図15はドット検出器の構成を示した図である。
この図15に示すドット検出器は、ドット候補検出器(ドット候補検出手段)101と、最小輝度画素判定器(最小輝度画素判定手段)102と、周辺ドット探索器(周囲ドット探索手段)103とから構成され、画素Zを中心とした7×7画素の領域においてドット検出が行われる。
ドット候補検出器101は、注目画素Zとその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出する。
最小輝度画素判定器102は、ドット候補検出器101により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する。
周辺ドット探索器103は最小輝度画素判定器102において最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べ、周辺にドットがなければドット候補はドットであると最終的に判定する。
ドット候補検出器101は、次の8つの式(1)〜(8)を同時に満足するときに画素Zはドット候補と判定される。Thは所定の値をとる閾値、簡単のために図16の画素位置を示す各アルファベットが画素値を表すとする。また、入力画像は黒=0、白=255を表すとする。
Z<A−Th・・・(1)
Z<E−Th・・・(2)
Z<L−Th・・・(3)
Z<P−Th・・・(4)
Z<Q−Th・・・(5)
Z<R−Th・・・(6)
Z<S−Th・・・(7)
Z<T−Th・・・(8)
【0020】
次に上記の8つの式を満たしたドット候補が最小輝度画素判定器102で周囲の画素と比較して最小輝度を有するか否かを判定する。その判定基準は次の12の式(9)〜(20)を全て満足するときにドット候補は最小輝度を有すると判定する。
Z<B・・・(9)
Z<C・・・(10)
Z<D・・・(11)
Z<F・・・(12)
Z<G・・・(13)
Z<H・・・(14)
Z<I・・・(15)
Z<J・・・(16)
Z<K・・・(17)
Z<M・・・(18)
Z<N・・・(19)
Z<O・・・(20)
次に、最小輝度画素判定器102で最小輝度画素と判定された画素Zは、その周囲U、V、W、Xにすでにドット検出器でドットであると判定された画素が存在するか否かを周辺ドット探索器103で調査され、周囲U、V、W、Xにドットが存在しなければ画素Zはドットであると初めて判定される。
所定の値(Th)の設定であるが、Thが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。また、Thが大きければノイズを検出せずに確実に誤りを減らすことができるがコード枠を検出することが難しくなり座標取得率が小さくなる。図17にThの大きさに応じた座標取得率の例を示す。文書IDを置き換えた場合と置き換えない場合との両方のデータを記載した。
【0021】
また、図18にドット検出器の他の構成を示す。
この図18に示すドット検出器は上記ドット検出をより高速に行う構成である。
ドット探索領域判定器(ドット探索領域判定手段)104でドットを探索する小領域3×3画素を設定する。3×3画素の領域内の各画素を中心とする7×7画素のウィンドウに対してドット候補検出器101と、このドット候補検出器101でドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定する最小輝度画素判定器102と、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べる周辺ドット探索器103とからなり、周辺ドット探索器103で周辺にドットがなければドット候補はドットであると最終的に判定される。
ドット探索領域判定器104は、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定する。上記図16のようにZ画素を中心とした7×7画素で、式(1)〜式(8)のすべての式が満たされたとき、Z画素を中心とする3×3画素の領域がドットを探索すべき領域であると判定される。
そのZ画素を中心とする3×3画素の領域の各画素に対してドット候補検出器101、最小輝度画素判定器102が処理を行う。この処理はすでに述べたとおりである。
最後に周辺ドット探索器103で画素Zの周囲(U、V、W、X、Y)にすでにドットであると判定された画素が存在するか否かを探索する。本実施形態の方式では重複してドットであるか否かを判定される画素が存在するので画素Yに対してもすでにドットが検出されたか否かを判定する必要がある。
【0022】
次に、図19〜図22を用いて、コード枠検出器の構成について説明しておく。
図19はコード枠検出器の構成を示した図である。また図20はコード枠検出器の検出経路を示した図である。
図19に示すように、コード枠検出器82は、ドットを検出した画像から、或るドットXがコードのコーナーであるか否かを判定する第一コーナー検出器111と、その第一コーナーからドットで構成されるコード枠の8画素分を4方向に追跡して第二コーナー候補画素(B,D)を検出する第一ドット追跡器112とを備える。そして、第一ドット追跡器112で検出された第二コーナー候補画素が第二コーナーであるか否かを検出する第二コーナー検出器113と、第二コーナーからドットで構成されるコード枠の12画素分を第一ドット追跡器112のドット追跡方向(時計回り方向)に追跡して、第三コーナー候補画素(G,E)を検出する第二ドット追跡器114とを備える。さらにこの第二ドット追跡器114で検出された第三コーナー候補画素が第三コーナーであるか否かを検出する第三コーナー検出器115と、その第三コーナーからコード枠の8画素分を第二ドット追跡器114のドット追跡方向(時計回り方向)に追跡し第四コーナー候補画素(C,A)を検出する第三ドット追跡器116と、この第三ドット追跡器116で検出された第四コーナー候補画素が第四コーナー画素であるか否かを検出する第四コーナー検出器117と、さらに第一コーナーと第四コーナーとの間のコード枠を構成するドットを検出する第四ドット追跡器118とを備える。このコード枠検出器82により、最大2つの2次元コード22のコード枠を検出し、それを構成するドットの画像上の座標を検出することができる。
【0023】
ここで、第一コーナー検出器111の動作を、図21を用いて説明する。
第一コーナー検出器111は、図21(a)で示すようにドットが存在する注目画素の周囲で4つ以上のドットが存在するか否か検出する周囲ドット検出器121と、検出された周囲ドットから注目画素を点対象とする二組のドットペアを検出する点対称ペア検出器122から構成される。
周囲ドット検出器121は、図21(b)に示す注目画素Nを中心とする17×17画素の中で注目画素Nの周囲に存在するドットを検出する。図21(b)の場合、A〜Fの6画素が存在する。これが周囲ドット画素として検出される。それらA〜Fのうちで、Nとの距離が近く、その中間点がNに近いものを二組検出する。例えば図21(b)の場合、(B,D)、(C,F)の二組がそれに相当する。A及びEはノイズであると判断され除去される。このようにして注目画素のドットN及び周囲の二組の点対称ペアが検出されると、注目画素Nは第一コーナーとして検出される。この第一コーナー検出器111が検出対象とする領域は、図14に示す180×120画素の領域103であり、画像領域101の縦横それぞれほぼ半分の大きさを有する。また、ドットを検索する方向は通常のラスター走査ではなく、図22に示すように内側から外側への渦巻き走査となる。この理由は、画像の中央付近が周囲と比較して画像の品質が優れていてドットの検出が確実に行われる確率が高いため、画像の中央またはその付近からコードパターンを検出するほうが短時間で検出できる可能性が高くなる。そのため、リアルタイム処理に非常に有利となる。
第一コーナー検出器111が動作する領域103が画像全体の領域101やドット検出器81の動作領域102より小さい理由は、コードパターンが領域102の中に存在する場合、コードパターンの最も画像の内側に存在するコーナーの存在範囲を領域103としているためである。
【0024】
次に、ドット追跡器の詳細を図23により説明する。まず、図23を用いて第一ドット追跡器112の詳細を説明する。図23は2次元コードのコーナー付近を構成するドットを示したものである。Xはコーナードット、その他のA〜Iはコード枠を構成するドットである。まず、XからDEFの方向へドットを追跡することにする。簡単のため、A〜I、Xをそれぞれ座標ベクトルとみなし、Y=2D−Xを計算する。
YはドットEの推定ベクトルである。A〜Dは第一コーナー検出器111で既に検出されているので既知である。Yの周囲5×5画素においてドットEを探索する。Eが存在すれば、Y=2E−Dを計算する。今度、YはドットFの推定ベクトルである。この追跡を7回繰り返して第二コーナー候補画素を検出する。
追跡方向は4方向(図20:X→A、X→B、X→C、X→D)存在し、検出された第二コーナー候補画素すべての情報を第二コーナー検出器に転送する。
第二コーナー検出器113は基本的な動作は第一コーナー検出器111と同一である。ただ、入力する注目画素となるドットが複数(最大4)存在する可能性があることである。その中で検出される第二コーナーは最大2である(図20:B、D)。
第二ドット追跡器114の基本的な動作は第一ドット追跡器112と同一である。異なるのは追跡を開始するドットは二つあり、各ドットあたり一つの方向の追跡を行う(図21:B→G、D→E)のと、各追跡あたりドット追跡操作を11回繰り返すことである。このようにして、第三コーナー候補画素(図20:G、E)を検出する。
第三コーナー検出器115は第二ドット追跡器114で追跡できた第三コーナー候補画素(図20:G、E)が第三コーナーであるか否かを検出する。基本的な動作は前記第一、第二コーナー検出器111、113と同一である。第三コーナー検出器115が図20に示すG、Eを第三コーナーであると検出したとする。
【0025】
第三ドット追跡器116は二つの方向(図20:G→C、E→A)にドット追跡を行うことである。追跡回数は第一ドット追跡器112と同じ7回、第四コーナー候補画素として図20:C、Aを検出する。
第四ドット追跡器118は第二ドット追跡器114と同一構成であり、図20に示すC→X、A→Xの方向に11回追跡してXに至る。Xはすでに第一コーナーであることがわかっているので、図20に示す追跡経路(1)、追跡経路(2)によりコード枠が検出されたことになる。このようにして2次元コードのコード枠を検出する。2次元コードのデコードの際にどちらのコードを使うかは、画像上のコード中心の水平座標が大きい方を優先する。このコードがデコードできなかった場合はもう一方のコードを使用してデコードを実行する。
上記第一ドット追跡器112、第二ドット追跡器114、第三ドット追跡器116、第四ドット追跡器118が追跡する画像領域は図14の領域104(260×200画素)である。ドットを検出した領域102より少しだけ小さいのは、第一、第二、第三、第四コーナー検出器111、113、115、117においてコーナー検出に使用するアルゴリズムがコーナードットを中心として17×17画素の領域を使用して、その範囲で点対称ペアドットを検出するためである。
【0026】
次に、図11に示したデータ取得器83を図24により説明する。
図24では、コード枠のコーナーの4点を除いてa1〜a7、b1〜b11、c1〜c7、d1〜d11とする。コードのデータを取得するには、これらを結ぶ水平線と垂直線の交点を検出する。つまり、a1とc1を結ぶ直線とb2とd2を結ぶ直線の交点の座標を検出する。そして、この交点の座標を中心にして3×3がその領域においてドットの有無を検出する。図24の場合はドット無しとなり取得されるデータは「0」となる。これをコード全データに対して行ってコードデータを取得し、データ配置規則(図4)に従ってデータを再構成する。
次に、図11に示したペン先座標算出器87について説明する。
ペン先座標算出器87は、図25に示すように、ドット中心検出器130、射影パラメータ算出器131、ペン先座標変換器132とからなる。ドット中心検出器130へは画像上のコードコーナー座標、それに対応する紙面上のコードコーナー座標および撮像したグレースケール画像を入力し、それらから射影パラメータ算出に使用するドットの中心位置を推定する。
図26はドット中心検出器130の構成を示した図である。
この図26に示すように、ドット中心検出器130は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段133と、このドット座標補正手段133により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段134とにより構成される。
図27は射影パラメータ算出方法を説明する図である。なお、射影パラメータ算出方法は後述する。
図27(a)は画像におけるパターンのコーナー(As〜Ds)とペン先(Ps)の座標は、画像の各画素の位置を表す整数ではなく、画像におけるドットの中心、ペン先の紙に接する部分の中心の座標を表す。即ち、図28に示すようにドットの中心は必ずしも画素位置の中心に来るとは限らず、位置がずれる。ここで正確なドットの中心を推定することで、ペン先の紙面における座標の推定精度が向上する。
【0027】
次に、正確なドットの中心を推定するための方法について説明する。
図29(a)に示すように、元のグレースケールの入力画像において、ドット検出器11で検出したドットの画素位置を中心とする3×3画素近傍で最小の画素値を有する画素位置を検出する。この画素位置を(i、j)とする。また、画素位置(i、j)を中心とした3×3画素のウィンドウ内における各画素の値を、図29(b)で示すようにv(x、y)(但し、i−1≦x≦i+1、j−1≦y≦j+1)とし、下記の計算式を用いて、中心座標(ic、jc)を推定する。
(式21)
(式22)
上記式(21)、式(22)の二つの式を利用してAs〜Dsの4ドットの中心座標を決定する。そして、先に求めたAs〜Dsから射影パラメータを算出する。
図27を用いて射影パラメータの算出方法について詳述する。
図27(a)は画像におけるコードのコーナー(As〜Ds)とペン型座標入力装置7の先端部62(Ps)の座標である。Psの座標は常に一定である。なぜならばペン型座標入力装置7では画像読取装置64と先端部62は固定されているからである。先端部62はペン型座標入力装置7の構成により画像読取装置64で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
図27(b)は紙面におけるコードのコーナー(Ar〜Dr)とペン型座標入力装置7の先端部62(Pr)の座標である。コードのデコードによりArが決定されるので、その隣接コーナーであるBr〜Drは自動的に決まる。算出したいのはPrの座標である。射影変換式は図27(c)に示す式により画像座標から紙面座標への変換が行われる。変換係数b1〜b8は未知数であるが、コーナー座標の関係により8つの一次方程式が作られる。この連立方程式を解く事によりb1〜b8のパラメータが算出される。
ペン先座標変換器はこのパラメータを用いてPsをPrに変換して紙面上の先端部62の座標を決定する。
ペン先座標変換器132はこのパラメータを用いてPsをPrに変換して紙面上の先端部62の座標を決定する。
【0028】
次に、2次元コード読取装置の他の実施例を図30に示す。なお、図11と同一部位には同一符号を付して説明は省略する。この図30に示す2次元コード読取装置は、第1誤り訂正器141、第2誤り訂正器142、選択器143が設けられている点が、図14に示した2次元コード読取装置と異なるものとされる。
第1誤り訂正器141及び第2誤り訂正器142の機能は、図11に示した誤り訂正器85と同一の機能を有する。選択器143は、連続筆記検出器91において連続筆記中であると判断された場合は、常に第2誤り訂正器142の出力を選択し、図11に示した2次元コード読取装置と同一の動作を行う。
一方、筆記検出器92の出力から筆記中であるが連続筆記中でないと判断した場合、即ち筆記開始時においては、選択器143は次のような動作を行う。第1誤り訂正器141の誤り訂正判定情報が誤り訂正成功の場合には、第1誤り訂正器141の出力が選択される。第1誤り訂正器141の誤り訂正判定情報が誤り訂正失敗の場合には、第2誤り訂正器142の出力が選択される。
このような処理を行うと、新しい加筆が行われる際に同一の文書への加筆ならば装置としての誤り訂正率が向上するので、図11に示した2次元コード読取装置より有利である。
これまで説明してきた2次元コード読取装置74はハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよく、この場合は2次元コード読取方法を実現するプログラムがマイコン65(図5参照)のROM72(図10参照)に格納される。そして、そのプログラムの命令が順次CPU71にロードされて命令の実行が行われ、2次元コード22の読み取り処理が行われることになる。その処理手順を図31(a)(b)に示すフローチャートに従って説明する。
【0029】
まず、画像入力を行った後、図31(a)に示すように、画像内のドットを検出する(S21)。次に、2次元コードの位置を抽出するコード枠の検出を行った後(S22)、2次元コードの白黒に応じて「0」または「1」のデータを取得してデータの並べ替えを行う(S23)。この後、ステップS24において誤り訂正を行い、ステップS25において誤り訂正に成功したと判別したときはステップS26に進み、誤り訂正に成功したと判別しなかったとき、つまり誤り訂正に失敗したと判別したときは2次元デコード処理を終了することになる。
破線で囲ったステップS24、S25の処理は、図31(b)に示すようになる。
まず、ステップS31において、取得したデータが連続検出中、即ち、ペン型座標入力装置7の先端部62が常に紙面に押し付けられているかどうかを判定し、連続検出中ならば、ステップS32において既知情報(文書ID)でデータ置き換えを行う。データ置き換えを行った後、ステップS33で誤り訂正を行う。ステップS34において誤り訂正が成功したと判別した場合は、ステップS35においてデコードされた既知情報(文書ID)を保存して誤り訂正処理を終えることになる。この後、図31(a)に示すステップS26に進み、元のデータ(座標情報)を復元し、続くステップS27においてペン型座標入力装置7の先端部62の紙面上における座標を算出する。
一方、図31(b)のステップS31において、取得したデータが連続検出中でなかった場合、つまり初めての加筆である場合、ステップS32のデータの置き換えは行わず、ステップS33において誤り訂正を行う。そしてステップS34において誤り訂正が成功したと判別した場合は、上記同様、ステップS35において文書ID(既知情報)を保存した後、図31(a)に示すステップS26において元のデータ(座標情報)を復元し、続くステップS27においてペン型座標入力装置7の先端部62の紙面上における座標を算出すればよい。
なお、ドットの検出、コード枠の検出、データ取得、誤り訂正、座標・文書ID復元、ペン先座標算出の各ステップは、図11に示すドット検出器81、コード枠検出器82、データ取得器83、誤り訂正器85、データ復号器86、ペン先座標算出器87の各機能をソフトウェアで実現している。
【0030】
また図32は、上記図15に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合、先ず、ステップS71において、画素Zを中心とした7×7画素の領域に対してドット候補の検出を行い、続くステップS72において、ドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップS73において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにする。
また図33は、上記図18に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合は、先ずステップS70において、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定して、ドットを探索する小領域3×3画素を設定する。以下、上記同様、ステップS71において、画素Zを中心とした3×3画素の領域に対してドット候補の検出を行い、続くステップS72において、ドット候補と検出された画素Zが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップS73において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにすれば良い。
【0031】
また図34は、上記図25に示したペン先座標算出器87におけるドット中心検出方法をソフトウェアで実現する場合のドット中心検出処理を示したフローチャートである。
この場合、先ず、ステップS81において、コード枠の所定の位置に存在するドットの正確な座標を推定する。続くステップS82において、ステップS81においてドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出し、ステップS83において算出された射影パラメータを用いて画像座標中の所定の座標に演算を加えてペン先の座標変換処理を行うようにすれば良い。
このようにドット検出方法をソフトウェアで実現すると非常に高速にドットの検出を行うことができるようになる。
また、2次元コード読み取り処理の他の処理手順を図35(a)(b)に示すフローチャートに従って説明する。
この図35に示すフローチャートが図31に示したフローチャートと異なる点は、筆記中であって連続検出中でない場合、即ち筆記開始時に文書IDを置き換えずに誤り訂正を行い、誤り訂正ができなかった場合に文書ID部分の置き換えを行って誤り訂正を行うようにしている点である。つまり、図35(b)に示すステップS41において筆記中であると判別し、続くステップS42において連続検出中でないと判別された場合、ステップS43において、筆記開始時に文書IDを置き換えずに誤り訂正を行い、ステップS44において誤り訂正ができなかった場合に、ステップS45において文書ID部分の置き換えを行って誤り訂正を行うようにしている。これにより、同一文書への加筆時には、図35に示すように2次元コード読み取り処理を行ったほうが誤り訂正率を向上させることができるようになる。
なお、図35(a)に示す処理、及び図35(b)に示すステップS45〜S48の処理は、それぞれ図31(a)に示す処理、及び図31(b)に示すステップS32〜S35の処理と同じとされるので説明は省略する。
【0032】
これまで2次元コードを読むことにより加筆座標を取得する装置、及びシステムについて述べた。そこで次に加筆した情報を取得し、原文書に重畳するシステム、及び方法を、図5に示した文書管理システムと図36に示すフローチャートを参照しながら説明する。なお、ここでは文書には2次元コードが付されて印刷されているものとする。
ここで、ペン型座標入力装置7で文書に加筆を行ったとすると、前述したように、文書上の2次元コード22が読み取られ、文書IDと座標情報がペン型座標入力装置7で取得される(S51)。コードシンボルの読み取りの詳細について後述する。加筆とともにリアルタイムで読み取られた文書IDや座標情報が情報処理装置4へ送信される。情報処理装置4は文書IDと座標情報を受け取ると、その文書IDを、文書管理データベース6を管理する情報処理装置9へ転送する(S52)。
情報処理装置9は受信した文書IDを元に、文書管理データベース6から現在加筆されている文書のページを特定する(S53)。ここで、例えば、特定された文書が図37に示す識別番号(ID)「123456」の「patent.doc」のページ1であるとする。この文書情報はペン型座標入力装置7へ送信され、ペン型座標入力装置7のLCD表示装置66には受信した文書情報が表示される。このようにしてファイルの実体が特定できたので、情報処理装置4は「patent.doc」をそれが関連付けられているアプリケーション(例えばワープロソフト)で開き、例えば情報処理装置4に接続された図示しないディスプレイに表示して編集状態とする(S54)。
【0033】
編集状態とされた文書「patent.doc」に、ペン型座標入力装置7から次々送信されてくる座標情報を描画することになる。描画する方法としては、文書のウィンドウに新たな描画オブジェクトを開き、受信した座標を線でつないで描画することで実現することができる(S55〜S58)。
加筆が終了した時点で(S59「Y」)、ペン型座標入力装置7は加筆終了の信号を情報処理装置4へ送信し、加筆終了の信号を受け取った情報処理装置4は、ウィンドウへの描画を終了する。このようにして文書「patent.doc」に一つのオブジェクトが加えられる(S60)。本実施形態では加筆した情報をリアルタイムでコンピュータのディスプレイ上に表示し、実際に加筆した情報が正しく処理されているかどうかをすぐに確認できるのでユーザにとって大きなメリットになる。また、情報処理装置4では受信した座標情報を数列テキストとして同時に別ファイルとして保存する。文書が巨大な場合など、ユーザが後にアプリケーションを開いて加筆されたデータを確認したいときに素早く確認することが不可能な場合に、加筆されたデータのみを表示・確認させることができるので有効である。
なお、これまで説明した本実施形態では、紙に2次元コードを印刷した場合について説明したが、この方法は紙に制限されるわけではなく、ペーパーライクディスプレイ、フィルム、ホワイトボード等、加筆を可能とするものならば有効に機能する事は言うまでもない。
【図面の簡単な説明】
【0034】
【図1】本発明の実施の形態に係る印刷文書の平面図。
【図2】2次元コードのドットの大きさ、及びドットの間隔を示す図。
【図3】2次元コードのデータ配置領域を示す図。
【図4】2次元コードへのデータの配置順序を示す図。
【図5】本発明の実施の形態に係る文書管理システムの構成図。
【図6】2次元コードのエンコード処理を示したフローチャート。
【図7】データのエンコード処理と誤り訂正符号の付加処理の説明図。
【図8】文書印刷とデータベースへの登録方法を示す図。
【図9】2次元コードを付して印刷した文書の一例を示す図。
【図10】マイコンの構成を示す図。
【図11】2次元コード読取装置の構成を示したブロック図。
【図12】2次元コードを読み取った画像の一例を示す図。
【図13】文書ID置き換えによる誤り訂正の可否を説明する図。
【図14】画像全体の領域と各検出器の処理領域を示す図。
【図15】ドット検出器の構成を示した図。
【図16】ドット検出器の説明図。
【図17】文書IDの置き換えによる座標取得率の変化を示す図。
【図18】ドット検出器の他の構成を示した図。
【図19】コード枠検出器の説明図。
【図20】コード枠の追跡経路の説明図。
【図21】コーナー検出器の説明図。
【図22】渦巻き走査の一例を示す図。
【図23】ドット追跡器の説明図。
【図24】データ取得器の説明図。
【図25】ペン先座標算出器の構成を示す図。
【図26】ドット中心検出器の構成を示す図。
【図27】ペン先座標算出の説明図。
【図28】ドット中心の位置と画素の関係を示した図。
【図29】画素位置の説明図。
【図30】2次元コード読取装置の他の構成を示したブロック図。
【図31】2次元コードの読み取り処理の一例を示したフローチャート。
【図32】ドット検出処理を示したフローチャート。
【図33】ドット検出処理の他の例を示したフローチャート。
【図34】ドット中心検出処理を示したフローチャート。
【図35】2次元コードの読み取り処理の他の例を示したフローチャート。
【図36】文書加筆時の文書更新、データベースの更新方法を示す図。
【図37】文書管理データベースに登録されている項目を示す図。
【符号の説明】
【0035】
1…プリンタ、2…複写機、3…スキャナ、4…情報処理装置、5…記憶装置、6…文書管理データベース、7…ペン型座標入力装置、8…携帯情報端末、9…情報処理装置、10…2次元コード作成装置、21…印刷文書、22…2次元コード、23…ドット、24…最小ドット、61…装置本体、62…先端部、63…筆記具、64…画像読取装置、64a…光電変換素子、64b…光学系、65…マイコン、66…LCD表示装置、67…LED、68…ブザー、69…圧力センサ、70…バス、71…CPU、72…ROM、73…RAM、74…2次元コード読取装置、81…ドット検出器、82…コード枠検出器、83…データ取得器、84…データ置換器、85…誤り訂正器、86…データ復号器、87…ペン先座標算出器、88…既知情報メモリ、91…連続筆記検出器、92…筆記検出器、101…ドット候補検出器、102…最小輝度画素判定器、103…周辺ドット探索器、104…ドット探索領域判定器、11…ドット検出器、111…第一コーナー検出器、112…第一ドット追跡器、113…第二コーナー検出器、114…第二ドット追跡器、115…第三コーナー検出器、116…第三ドット追跡器、117…第四コーナー検出器、118…第四ドット追跡器、121…周囲ドット検出器、122…点対称ペア検出器、130…ドット中心検出器、131…射影パラメータ算出器、132…ペン先座標変換器、133…ドット座標補正手段、134…ドット位置推定手段、141…第1誤り訂正器、142…第2誤り訂正器、143…選択器
【特許請求の範囲】
【請求項1】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、
前記ドット検出手段が注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定したドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項2】
前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項1記載の2次元パターン読み取り装置。
【請求項3】
前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項1記載の2次元パターン読み取り装置。
【請求項4】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、
前記ドット検出手段が、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項5】
前記ドット探索領域判定手段は、水平1画素垂直1画素おきに小領域を設定することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項6】
前記ドット探索領域は、3×3画素からなる小領域であることを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項7】
前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項8】
前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項9】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段と、該データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出手段と、を備えた2次元パターン読み取り装置において、
前記座標算出手段が、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項10】
前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなることを特徴とする請求項9記載の2次元パターン読み取り装置。
【請求項11】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、
前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップとからなることを特徴とする2次元パターン読み取り方法。
【請求項12】
前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項11記載の2次元パターン読み取り方法。
【請求項13】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項11記載の2次元パターン読み取り方法。
【請求項14】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、
前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、該ドット候補検出ステップで検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする2次元パターン読み取り方法。
【請求項15】
前記ドット探索領域判定ステップは、水平1画素垂直1画素おきに小領域を設定することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項16】
前記ドット探索領域は、3×3画素からなる小領域であることを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項17】
前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項18】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項19】
複数の微小なドットで構成される少なくとも位置情報を含むデータを符号化した2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード内のドットを読み取ってデータを復号するデータ復号ステップと、該データ復号ステップで復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出ステップと、からなる2次元パターン読み取り方法において、
前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする2次元パターン読み取り方法。
【請求項20】
前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなることを特徴とする請求項19記載の2次元パターン読み取り方法。
【請求項1】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、
前記ドット検出手段が注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定したドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項2】
前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項1記載の2次元パターン読み取り装置。
【請求項3】
前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項1記載の2次元パターン読み取り装置。
【請求項4】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える2次元パターン読み取り装置において、
前記ドット検出手段が、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出手段と、該ドット候補検出手段により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項5】
前記ドット探索領域判定手段は、水平1画素垂直1画素おきに小領域を設定することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項6】
前記ドット探索領域は、3×3画素からなる小領域であることを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項7】
前記ドット候補検出手段は、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項8】
前記ドット最小輝度画素判定手段は、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項4記載の2次元パターン読み取り装置。
【請求項9】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出手段と、該ドット検出手段において検出したドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段と、該データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出手段と、を備えた2次元パターン読み取り装置において、
前記座標算出手段が、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする2次元パターン読み取り装置。
【請求項10】
前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなることを特徴とする請求項9記載の2次元パターン読み取り装置。
【請求項11】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、
前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップとからなることを特徴とする2次元パターン読み取り方法。
【請求項12】
前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項11記載の2次元パターン読み取り方法。
【請求項13】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項11記載の2次元パターン読み取り方法。
【請求項14】
複数の微小なドットで構成される2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる2次元パターン読み取り方法において、
前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出するドット候補検出ステップと、該ドット候補検出ステップで検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有すると判定されたドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする2次元パターン読み取り方法。
【請求項15】
前記ドット探索領域判定ステップは、水平1画素垂直1画素おきに小領域を設定することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項16】
前記ドット探索領域は、3×3画素からなる小領域であることを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項17】
前記ドット候補検出ステップは、注目画素を中心とする7×7画素の領域を使用することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項18】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする5×5画素の領域を使用することを特徴とする請求項14記載の2次元パターン読み取り方法。
【請求項19】
複数の微小なドットで構成される少なくとも位置情報を含むデータを符号化した2次元パターンを撮像した撮影画像を入力し、前記微小ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード内のドットを読み取ってデータを復号するデータ復号ステップと、該データ復号ステップで復号されたデータの位置情報および画像中のコード枠の座標とに基づいて画像座標中の所定の座標に演算を行う座標算出ステップと、からなる2次元パターン読み取り方法において、
前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする2次元パターン読み取り方法。
【請求項20】
前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなることを特徴とする請求項19記載の2次元パターン読み取り方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【公開番号】特開2007−52471(P2007−52471A)
【公開日】平成19年3月1日(2007.3.1)
【国際特許分類】
【出願番号】特願2005−235075(P2005−235075)
【出願日】平成17年8月12日(2005.8.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成19年3月1日(2007.3.1)
【国際特許分類】
【出願日】平成17年8月12日(2005.8.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]