(57)【特許請求の範囲】
【請求項１】
複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える２次元パターン読み取り装置において、
前記ドット検出手段は、注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出手段と、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出手段により検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする２次元パターン読み取り装置。
【請求項２】
前記ドット最小輝度画素判定手段は、注目画素を中心とする５×５画素の領域を使用することを特徴とする請求項１記載の２次元パターン読み取り装置。
【請求項３】
複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える２次元パターン読み取り装置において、
前記ドット検出手段は、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出手段と、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出手段により検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする２次元パターン読み取り装置。
【請求項４】
前記ドット探索領域判定手段は、水平１画素垂直１画素おきに小領域を設定することを特徴とする請求項３記載の２次元パターン読み取り装置。
【請求項５】
前記ドット探索領域は、３×３画素からなる小領域であることを特徴とする請求項３記載の２次元パターン読み取り装置。
【請求項６】
前記ドット最小輝度画素判定手段は、注目画素を中心とする５×５画素の領域を使用することを特徴とする請求項３記載の２次元パターン読み取り装置。
【請求項７】
請求項１乃至６の何れか一項記載の２次元パターン読み取り装置において、
前記データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標に基づいて画像座標中の所定の座標に演算を行う座標算出手段を備え、
前記座標算出手段は、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする２次元パターン読み取り装置。
【請求項８】
前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなることを特徴とする請求項７記載の２次元パターン読み取り装置。
【請求項９】
複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる２次元パターン読み取り方法において、
前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出ステップと、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出ステップにより検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする２次元パターン読み取り方法。
【請求項１０】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする５×５画素の領域を使用することを特徴とする請求項９記載の２次元パターン読み取り方法。
【請求項１１】
複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる２次元パターン読み取り方法において、
前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、
該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出ステップと、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出ステップで検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする２次元パターン読み取り方法。
【請求項１２】
前記ドット探索領域判定ステップは、水平１画素垂直１画素おきに小領域を設定することを特徴とする請求項１１記載の２次元パターン読み取り方法。
【請求項１３】
前記ドット探索領域は、３×３画素からなる小領域であることを特徴とする請求項１１記載の２次元パターン読み取り方法。
【請求項１４】
前記ドット最小輝度画素判定ステップは、注目画素を中心とする５×５画素の領域を使用することを特徴とする請求項１１記載の２次元パターン読み取り方法。
【請求項１５】
請求項９乃至１４の何れか一項記載の２次元パターン読み取り方法において、
前記データ復号ステップにより復号されたデータの位置情報および画像中のコード枠の座標に基づいて画像座標中の所定の座標に演算を行う座標算出ステップを有し、
前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする２次元パターン読み取り方法。
【請求項１６】
前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなることを特徴とする請求項１５記載の２次元パターン読み取り方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の固有情報及び文書の位置情報を含む２次元パターンを読み取る２次元パターン読み取り装置と、２次元パターン読み取り方法に関するものである。
【背景技術】
【０００２】
紙などの印刷媒体上に、符号化した座標情報を含む２次元コードを配置することによって、その印刷媒体上に形成された画像情報の位置や内容を特定する技術が知られている。従来の１次元バーコードが横（水平）方向のみにしか情報を持たなかったのに対し、２次元コードは水平と垂直の２方向に情報を有するので、より複雑な情報を表すことができる。
先行文献としては、特許文献１に光学的に読取可能なコードシンボルを紙面上にマトリックス状に並べ、小型カメラを備えたペンで紙面への加筆と同時にカメラで前記コードシンボルを読み取り、座標情報を同時に取得することにより、加筆情報をリアルタイムに読み取り、加筆前の紙面情報と加筆情報を関連付けるシステムに関する技術が開示されている。
また特許文献２には、Ｘ座標、Ｙ座標、コードの方向を表すパターンと、ホーミングパターンと呼ばれるその他のパターンより大きくて、コードの中心に配置されたパターンとからなり、それらは人の目にはみえないようにする技術が提案されている。
また特許文献３には、ドットを所定の位置からずらすことにより、１ドットで２ビット以上の情報を有することができる２次元コードが開示されている。このような２次元コードは、水平垂直方向の座標情報を有し、紙全体に連続的にドットが印刷されており、これを読み取ることにより、２次元コードがどの座標情報を有しているかを取得する技術が開示されている。
また特許文献４には、座標と文書情報を符号化し、紙上に印刷した２次元ドットパターンをカメラのついたペンで筆記中に読み取り、該パターンを読み取ることにより、現在どの文書のどの位置に筆記中であるかを取得する技術が開示されている。
【特許文献１】特開２０００−２９３３０３公報
【特許文献２】米国特許第５６６１５０６号
【特許文献３】ＷＯ００／７３９８１
【特許文献４】特開２００４−９４９０７公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記特許文献１では、文書に固有の情報と座標位置を同時に白黒のパターンに変換し、紙に印刷して、紙上の文書に光学ペンで加筆した情報を、白黒のパターンを読み取ることにより取得し、文書固有の情報と紙上の座標位置を取得し、元の文書に加筆情報を追加するようにしている。このような特許文献１の技術では白黒のパターンに誤り訂正機能を有する２次元コードを利用し、光学ペンによる読み取りが不安定な場合でも文書固有の情報と座標情報を取得できるような機能を有しているため、特開平７−１４１１０４号公報の技術において読み取りが不可能な場合でも読み取りが可能になっている。
しかしながら、この場合は２次元コードの大きさが大きくなるため、広い範囲の紙面を光学ペンで撮影しなければならず、被写界深度などの問題で読み取った画像の品質が良くなく、２次元コードを連続的に読み取ることが難しくなる。また、当該２次元コードは筆記中の紙面をカメラで撮像し、デコードするために作られたわけではなく、汎用の２次元コードであるため、デコード処理に時間がかかり、リアルタイムで処理を行うことが難しい。この技術の目的のひとつは連続的な加筆情報を取得するということであるため、２次元コードを読み取り、座標位置を連続的に取得できなければ、加筆情報の不連続点が発生し、正しい加筆情報が得られなくなるという欠点があった。
また上記した特許文献２は、一般の印刷装置を使用してコードを印刷することは事実上不可能であり、予め特殊な印刷装置において不可視インクを使用してコードを印刷する必要があり、ユーザが印刷したい文書の情報を印刷時に印刷媒体に埋め込むためには別のバーコードを重畳して印刷するなりの手段が必要となるばかりか、文書に加筆する前に必ずそのバーコードを読ませる必要があり、ユーザにとって不便になる。
仮に、バーコードを読む作業を忘れて別の文書に加筆を行うならば加筆情報と電子文書とのリンクが矛盾を起こして重大な問題となる。また、仮に可視インクで印刷したとしても他のパターンより大きいパターン（マーク）を使用しており、人の目につきやすく、文書や加筆の可読性が損なわれるという欠点があった。
【０００４】
また特許文献３は、２次元的に等間隔な点からドットをずらして配置することにより、１ドットに２ビット以上の情報を乗せ、６×６のドットでそのコードの位置情報を有する２次元コードを開示している。この技術は、位置をずらす量が３０μｍと非常に小さく、一般に普及しているレーザープリンタの解像度（１２００ｄｐｉ）では、紙送りの精度、感光体の回転速度のむら等により正しいずれ量を再現することが難しい。
従って、この２次元コードの場合も、予めオフセット印刷等の印刷技術を利用して２次元コードを印刷した紙を用意する必要があるため、上記特許文献３と同等の問題が発生するという欠点があった。
また特許文献４は、読み取った画像の周辺部を使わないで２次元コードパターンの読み取り処理を行う方法について開示されており、高速化においてある程度の改良は見込めるものの、飛躍的に処理速度の向上は達成できない。
また、筆記を再現するための読み取りアルゴリズムの性能に問題があった。さらにドット検出の手法について、５×５画素のウィンドウを使ってその検出を行っているが５×５画素のウィンドウではノイズ成分をドットとして判定するという間違いを起こしやすかった。また、ペン先位置を推定する方法においては、読み取った画像から検出したコーナードットの座標とドットの中心とが一致しておらず、ペン先の正確な位置を推定する精度が良くないなどの欠点があった。
そこで、本発明は、上記したような点を鑑みてなされたものであり、紙上に印刷した文書に手書きで加筆した情報をより高速、より正確に取得し、元の電子文書にその情報を反映させることができる２次元パターン読み取り装置及び２次元パターン読み取り方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明は、複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える２次元パターン読み取り装置において、前記ドット検出手段は、注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出手段と、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出手段により検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
請求項２に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする５×５画素の領域を使用する請求項１記載の２次元パターン読み取り装置を特徴とする。
請求項３に記載の発明は、複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出手段と、該ドット検出手段において検出されたドットからコード枠を検出するコード枠検出手段と、前記コード枠内のドットを読み取ってデータを復号するデータ復号手段とを備える２次元パターン読み取り装置において、前記ドット検出手段は、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定手段と、該ドット探索領域判定手段によりドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出手段と、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出手段により検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定手段と、該最小輝度画素判定手段で最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索手段と、からなることを特徴とする。
【０００６】
請求項４に記載の発明は、前記ドット探索領域判定手段は、水平１画素垂直１画素おきに小領域を設定する請求項３記載の２次元パターン読み取り装置を特徴とする。
請求項５に記載の発明は、前記ドット探索領域は、３×３画素からなる小領域である請求項３記載の２次元パターン読み取り装置を特徴とする。
請求項６に記載の発明は、前記ドット最小輝度画素判定手段は、注目画素を中心とする５×５画素の領域を使用する請求項３記載の２次元パターン読み取り装置を特徴とする。
請求項７に記載の発明は、請求項１乃至６の何れか一項記載の２次元パターン読み取り装置において、前記データ復号手段により復号されたデータの位置情報および画像中のコード枠の座標に基づいて画像座標中の所定の座標に演算を行う座標算出手段を備え、前記座標算出手段は、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出手段と、該ドット中心検出手段により検出されたドットの中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出手段と、該射影パラメータ算出手段により算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換手段と、からなることを特徴とする。
【０００７】
請求項８に記載の発明は、前記ドット中心検出手段は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段と、該ドット座標補正手段により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段と、からなる請求項７記載の２次元パターン読み取り装置を特徴とする。
請求項９に記載の発明は、複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる２次元パターン読み取り方法において、前記ドット検出ステップは、注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出ステップと、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出ステップにより検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする。
請求項１０に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする５×５画素の領域を使用する請求項９記載の２次元パターン読み取り方法を特徴とする。
請求項１１に記載の発明は、複数のドットで構成される２次元パターンを撮像した撮影画像を入力し、前記ドットを検出するドット検出ステップと、該ドット検出ステップにおいて検出されたドットからコード枠を検出するコード枠検出ステップと、前記コード枠内のドットを読み取ってデータを復号するデータ復号ステップとからなる２次元パターン読み取り方法において、前記ドット検出ステップは、所定の小領域がドットの探索を行うための領域であるか否かを判定するドット探索領域判定ステップと、該ドット探索領域判定ステップで判定されたドット探索領域と判定された領域内の各画素に対して注目画素とその近傍画素との輝度の差が所定値以上ある場合に、前記画像に含まれるドットとノイズのうち、注目画素を中心とする７×７画素の領域を使用してドットの候補を検出するドット候補検出ステップと、前記ドット候補が検出される領域よりも小さな領域において、前記ドット候補検出ステップで検出されたドット候補と近傍画素とを比較して最小輝度を有するドットを判定する最小輝度画素判定ステップと、該最小輝度画素判定ステップで最小輝度を有するドット候補の隣接画素に既にドットと判定された画素がない場合に、前記ドット候補をドット画素と判定する周囲ドット探索ステップと、からなることを特徴とする。
【０００８】
請求項１２に記載の発明は、前記ドット探索領域判定ステップは、水平１画素垂直１画素おきに小領域を設定する請求項１１記載の２次元パターン読み取り方法を特徴とする。
請求項１３に記載の発明は、前記ドット探索領域は、３×３画素からなる小領域である請求項１１記載の２次元パターン読み取り方法を特徴とする。
請求項１４に記載の発明は、前記ドット最小輝度画素判定ステップは、注目画素を中心とする５×５画素の領域を使用する請求項１１記載の２次元パターン読み取り方法を特徴とする。
請求項１５に記載の発明は、請求項９乃至１４の何れか一項記載の２次元パターン読み取り方法において、前記データ復号ステップにより復号されたデータの位置情報および画像中のコード枠の座標に基づいて画像座標中の所定の座標に演算を行う座標算出ステップを有し、前記座標算出ステップは、前記コード枠の所定の位置に存在するドットの正確な座標を推定するドット中心検出ステップと、該ドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出する射影パラメータ算出ステップと、該射影パラメータ算出ステップで算出された射影パラメータを用いて画像座標中の所定の座標に演算を加える座標変換ステップと、からなることを特徴とする。
請求項１６に記載の発明は、前記ドット中心検出ステップは、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正ステップと、前記検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定ステップとからなる請求項１５記載の２次元パターン読み取り方法を特徴とする。
【発明の効果】
【０００９】
本発明によれば、２次元パターンの読み取りを精度よく、効率的、高速に読み取ることができるようになるので、筆記した情報の再現品質の向上を図ることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態に係る印刷文書の平面図である。
この図１において、２次元コード２２は複数の黒ドットで構成される光学的に読み取り可能なコードであり、縦横に規則的に配列された黒ドットを境界としてマトリクス状に並べられており、印刷文書２１の印刷時には文書と２次元コード２２のパターンが同時に印刷される。２次元コード２２には、例えば印刷文書２１の２次元コード２２が印刷されている面における印刷された文書の原本となる電子文書の識別（ＩＤ）情報と２次元コード２２の座標を意味する情報がエンコードされている。なお、図１においては説明上、文書は図示せず、行間や余白などの２次元コードのみが印刷された部分を示している。
例えば、図１の左上のコードシンボル（２次元コード）２２ａには「水平座標＝９５、垂直座標＝１０、文書ＩＤ＝１０」がエンコードされ、２次元コード２２ｂには「水平座標＝９６、垂直座標＝１０、文書ＩＤ＝１０」、２次元コード２２ｃには「水平座標＝９５、垂直座標＝１１、文書ＩＤ＝１０」、２次元コード２２ｄには「水平座標＝９６、垂直座標＝１１、文書ＩＤ＝１０」とエンコードされている。
【００１１】
図２は、２次元コードのドットの大きさ、及びドットの間隔を示した図であり、この図を用いて、２次元コードのドット及びコードの大きさについて説明する。２次元コード２２及び境界を構成するドット２３は、プリンタの最小ドット２４の２×２単位で印字される。１２００ｄｐｉのプリンタならば、プリンタの最小ドット径は２１μｍであるので、２次元コード２２のドットの直径は理想的には４２μｍとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。ドット直径の６倍の間隔を置いて水平・垂直方向にドット２３を配置する位置を決定する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には２．８％、５０％程度のドットゲインを見込んでも５％に満たない。この面積率は人の目には明るい灰色に見えるのでドットに邪魔されて文書が見えにくいとか、加筆した文字が見えにくいなどという問題は起こらない。
以上のようにコードの配置を決定すると２次元コード２２は水平２ｍｍ、垂直３ｍｍ角の大きさを有し、水平座標＝９５ということは、２次元コードの左上の角が紙面の左上を原点として水平方向に１９０ｍｍの位置にあるということを意味する。詳しくは後述するが、水平２ｍｍ、垂直３ｍｍ角の大きさは、Ａ４サイズの用紙と相似の大きさであり、水平・垂直座標情報を格納するデータ長を有効に使うことが可能になる。
同様に垂直座標＝１０は、２次元コードの左上の角が紙面の左上を原点として垂直方向に３０ｍｍの位置にあるということを意味する。
文書ＩＤは、元の電子文書の固有情報、例えば電子文書が格納されているデータベースの識別ＩＤである。即ち、２次元コード２２はその左上の角(垂直線Ｈ１と水平線Ｖ１の交点)が、紙面左上から水平１９０ｍｍ、垂直３０ｍｍの位置にあり、印刷されている文書はそのＩＤが「１０」であるという情報を有する。
【００１２】
図３は、２次元コードのデータ配置領域を示した図であり、この図を用いて２次元コード２２に配置するデータの詳細に説明する。２次元コード２２ａはコード枠を構成するＨ１、Ｈ２、Ｖ１、Ｖ２に囲まれた７×１１のセルを有する。セルとはドットを打つことのできる単位をいい、最大７７個のドットを含む。
領域３１は水平座標を表すデータを配置する領域であり４×２のセルを有する。１セルは１ビットに相当するので領域３１は１バイトの容量を有する。
領域３２は、垂直座標を表すデータを配置する領域であり、水平座標と同様に１バイトの容量を有する。Ａ４サイズの用紙は水平２１０ｍｍ、垂直２９７ｍｍの大きさがある。また２次元コード２２の一つの大きさは、水平２ｍｍ、垂直３ｍｍであるので水平方向には１０５段階、垂直方向には９９段階のデータが必要になるが、１バイトで十分な容量を満たしている。用紙サイズがＡ３の場合には、水平２９７ｍｍ、垂直４２０ｍｍの大きさであるので、水平方向に１４８段階、垂直方向に１２０段階のデータが必要になる。この場合も１バイトのデータ容量があれば十分である。同様にＡ２サイズの場合でも、水平４２０ｍｍ、垂直５９４ｍｍの大きさであるので、水平方向に２１０段階、垂直方向に１９８段階のデータが必要であるが、この場合も１バイトのデータ容量で収まる。このように紙の縦横の長さの違いに応じて２次元コードの縦横の長さを決定すると水平・垂直座標を表すデータ長を同一の一定サイズに固定しても幅広いサイズの用紙に対応できるようになっている。
領域３３は文書ＩＤをあらわすデータを配置する領域であり、４×６の２４ビット(＝３バイト)の容量を有する。領域３４〜３７は誤り訂正用の符号を配置する領域であり、それぞれ１バイトずつの容量を有する。したがって誤り訂正用符号は合計４バイトで構成される。領域３８、３９はコードの上下方向を表すためのパターンで、領域３８は３×１の黒ドット、領域３９は２×１のドット無しのパターンでコードの上下を判別するのに使用される。
【００１３】
図４は、各データのビット列がどのように配列されるかを示した図である。なお、この図３の領域３１〜領域３７に示されている「１」はＭＳＢ、「８」はＬＳＢをそれぞれ示している。
図５は本実施の形態としての文書管理システムの構成を示した図である。
この図に示す文書管理システムは、プリンタ１、複写機２、スキャナ３、情報処理装置４、記憶装置５、文書管理データベース６、ペン型座標入力装置７、携帯情報端末８、情報処理装置９、２次元コード作成装置１０より構成され、これらがネットワークを介して接続されている。
プリンタ１は印刷を行う印刷装置、スキャナ３は画像の読み取りを行う読取装置、複写機２は、例えばコピー、スキャナ、ファックス、プリンタなどの機能を備えた複合機とされる。情報処理装置４はペン型座標入力装置７及び携帯情報端末８の制御を行い、情報処理装置９は記憶装置５の制御を行う。なお、ペン型座標入力装置７の構成は後述する。
次に、図５に示した文書管理システムにおいて、上記した２次元コード２２を作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの手順を図６を用いて説明する。なお、２次元コード２２の作成は、図５に示した情報処理装置４、９で文書１１の印刷命令を実行したときに、情報処理装置４、９内のプリンタドライバで実行される。
この場合、プリンタドライバは、まず記憶装置５内の文書管理データベース６に問い合わせて印刷しようとする文書１１のページ毎の文書ＩＤを発行してもらう（Ｓ１）。文書ＩＤを発行してもらったら、それと文書上の座標情報とを合わせてエンコードすべきデータを取得する（Ｓ２）。例えば、図７（ａ）に示す文書ＩＤは「１２３４５６」、座標情報（Ｘ，Ｙ）はｍｍ単位（２４，１２３）という具合である。次にデータをエンコードする（Ｓ３）。これにより、文書ＩＤは、図７（ｂ）に示すように、６桁の数字を３バイトのバイナリ値に変換する。また、水平座標は２４／２＝１２、垂直座標は１２３／３＝４１と、水平・垂直それぞれ１バイトずつで収まるように変換する。座標情報はこのように２バイトのバイナリ値に変換し、文書ＩＤと合わせて計５バイトのデータとする。そしてエンコードした後、エンコードデータを元に誤り訂正符号を追加する（Ｓ４）。図７（ｃ）に示す例では、５バイトのデータに対して４バイトの誤り訂正符号を付加している。この誤り訂正符号にはリードソロモン符号を採用する。リードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。なお、リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論（コンピュータ基礎講座１８）」宮川、岩垂、今井共著など、多数の書籍に記されている。本実施の形態の場合には、図７（ｃ）に示すように誤り訂正符号長が４バイトなので２バイトの誤り訂正が可能である。
【００１４】
このようにして作成されたエンコードデータおよび誤り訂正符号データは２次元コード２２の各セルに割り当てられ（Ｓ５）、続くステップＳ６において、１ページ分の２次元コードの作成が終了したかどうかの判別を行う。そして、１ページ終了したら次のステップＳ７において、全ページ終了したかどうかの判別を行い、全ページ終了したら処理を終えることになる。なお、ステップＳ６において１ページ分の２次元コードの作成が終了していないと判別した場合は、ステップＳ２に戻って処理を行う。またステップＳ７において全ページ分の２次元コードの作成が終了していないと判別した場合、ステップＳ１に戻って処理を行うようにする。
これにより、２次元コードがページ全体に配置されたマトリクスの画像を作成することができる。その後、プリンタ１や複写機２のプリンタ部を使用して印刷を行う。印刷が正常に終了したら文書管理データベース６内のＩＤ管理テーブルに正常に印刷された文書、ページ、文書ＩＤ等の情報の登録を行うようにする。
図８は、上記２次元コードを作成し、印刷すべき文書に重畳する印刷データとし、文書を印刷するまでの一連の作業を作業者から見たフローである。
この場合、まず、図５に示す文書管理システムの記憶装置５に保存されている文書１１を編集し（Ｓ１１）、印刷命令を出して、プリンタ１や複写機２で文書の印刷を実行させる（Ｓ１２）。印刷が正常に終了したならば（Ｓ１３）、印刷に成功した文書ＩＤを文書管理データベース６内のＩＤ管理テーブルに登録する（Ｓ１４）。
図９は、２次元コード付きで印刷された文書の一例を示した図であり、図９（ａ）に示す印刷文書２１は、例えば所定のフォーマットを有する帳票文書であり、背景には２次元コード２２が印刷されている。印刷文書２１の一部を拡大したものが図８（ｂ）に示す図であり、２次元コード２２のコード枠を兼ねるアライメントドットと、枠内に配置されるデータドットが示されている。また２次元コード２２が規則的に並んでいる。
【００１５】
さて、２次元コードつきの文書は印刷できたので、次に筆記を行うとともに紙面の画像を撮像して２次元コードをデコードして座標情報を得るペン型座標入力装置７の概略構成を図５に示すブロック図を用いて説明する。
図５に示すペン型座標入力装置７は、人が手に持って筆記動作を行うことができる筆記具状の装置本体６１を備えている。この装置本体６１の先端部６２には、筆記具６３、即ち、ボールペン、シャープペンシルの先端部分等が取り付けられており、文書に加筆可能である。装置本体６１側に設けられた画像読取装置６４は、ＣＣＤなどの光電変換素子６４ａと、レンズなどからなる光学系６４ｂとから構成され、印刷文書２１上の画像を読み取るようにしている。なお、画像読取装置６４には必要に応じて照明を設けることができる。ＣＣＤの読み取り解像度は３２０×２４０画素とする。
装置本体６１には、マイコン６５が搭載され、マイコン６５には画像読取装置６４が接続されている。マイコン６５は、画像読取装置６４で読み取った印刷文書２１上の画像に基づいた各種処理を行う。即ち、読み取った２次元コード２２をデコードし、２次元コードの紙面上の座標を検出する（詳細については後述する）。またマイコン６５は、装置本体６１の外部になるＰＣなどの情報処理装置４と接続可能であり、マイコン６５内に蓄積したデータを情報処理装置４に出力可能である。なお、図６では画像読取装置６４や、マイコン６５などに電力を供給する電源、マイコン６５と情報処理装置４とのインタフェースなどは図示を省略している。
【００１６】
マイコン６５は、図１０に示すように、バス７０を介してＣＰＵ７１、ＲＯＭ７２、ＲＡＭ７３、２次元コード読取装置７４が接続されている。即ち、ＣＰＵ７１はバス７０を介して各種外部装置と接続されている。ＲＯＭ７２には、図５に示したペン型座標入力装置７の動作を制御するプログラムやマイコン６５を動作させるプログラムが予め内蔵されている。ＲＡＭ７３は画像読取装置６４から読み取った画像や、コード読み取り中に生成される中間データ、２次元コードをデコードした際に得られる文書ＩＤや座標などを一時的に保存する。
２次元コード読取装置７４は、図１１に示すように構成され、ＲＡＭ７３に記憶された画像から２次元コードを検出し、読み取って文書ＩＤや座標を検出する作業を行う。なお、２次元コード読取装置７４については後述する。
さらに図５に示すマイコン６５には、ＬＣＤ表示装置６６、ＬＥＤ６７、あるいはブザー６８が接続されている。これにより、マイコン６５は、情報処理装置４から受信した情報をＬＣＤ表示装置６６に表示したり、あるいは特定の情報を受信した場合にはＬＥＤ６７を点滅させたり、ブザー６８を鳴らしたりして外部に通知することができるようになっている。
装置本体６１には、ペン型座標入力装置７の先端部６２が筆記面に接触しているかどうかを検出する圧力センサ６９が設けられている。圧力センサ６９は、先端部６２が筆記面に接触することにより、筆記具６３を介して伝達される圧力を感知し、感知した情報をマイコン６５に伝送する。
このように構成されるペン型座標入力装置７を用い、印刷文書２１上での先端部６２の位置検出を連続的に行えば、印刷文書２１上での先端部６２の移動軌跡を求めることができる。また、ペン型座標入力装置７の先端部６２が筆記面に接触しているかどうかを検出する圧力センサ６９によって、紙面上に筆記を行ったときの筆記軌跡を忠実に求めることができる。もし２次元コードが存在しない文書にペン型座標入力装置７の読み取り対象ではない文書に加筆する場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をＬＣＤ表示装置６６またはＬＥＤ６７を用いて行い、ユーザに通知する。
【００１７】
次に、２次元コードの読み取りの動作について詳述する。
図１１は２次元コード読取装置７４の構成を示した図である。この２次元コード読取装置７４は、先にも述べたように、図５に示したペン型座標入力装置７の内部のマイコン６５に内蔵されている（図１０参照）。
この図１１に示す２次元コード読取装置７４では、画像読取装置６４で読み取られた紙面の画像（８ビット画像）がドット検出器８１に入力され、ドット検出器８１において２次元コード２２のドット検出を行うようにする。コード枠検出器８２では、ドット検出器８１において検出されたドットから画像内にある複数の２次元コード２２から一つの２次元コード２２の枠とその位置を検出する。読み取った画像例を図１２に示す。
コード枠検出器８２において２次元コード２２の位置を検出できたときは、データ取得器８３において、２次元コード２２の各白黒セルに応じて「０」または「１」のデータを取得し、２次元コード２２のデータ配置規則に従ってデータの並べ替えを行う。
データ置換器８４は、取得したデータに対して、連続筆記検出器９１から出力される連続筆記中であるか否かの信号により、既知情報メモリ８８から既知の文書ＩＤを読み出し、データ置換器８４において２次元コード２２から取得したデータの文書ＩＤに相当する部分を既知の文書ＩＤで置き換える。
連続筆記検出器９１には、筆記検出器９２の検出情報が入力される。筆記検出器９２には、ペン型座標入力装置７による加筆時においてペン先に感じる圧力を検出する圧力センサ６９の出力信号が入力され、筆記中か否かを判定する。そして筆記の状態が所定時間以上続いたときは連続筆記中であると判断し、それ以外の場合は連続筆記中ではないと判断して、その検出結果を連続筆記検出器９１に出力する。
【００１８】
誤り訂正器８５は、データ置換器８４の出力に対して誤り訂正を行う。誤り訂正器８５からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。この誤り訂正されたデータは文書ＩＤと座標情報である。
誤り訂正器８５から出力された誤り訂正の判定情報は、データ復号器８６、ペン先座標算出器８７、既知情報メモリ８８へ入力され、それぞれの機器の制御に使用される。
データ復号器８６では、誤り訂正の判定情報が誤り訂正成功であればデータ復号器８６は動作する。誤り訂正失敗であればデータ復号器８６は動作しない。ペン先座標算出器８７は誤り訂正の判定情報が誤り訂正成功であり、且つ、筆記検出器９２の出力が筆記中であれば、ペン先座標を算出して出力するが、誤り訂正失敗の場合や筆記中でない場合ならば現実にはありえない座標値（−１、−１）等を出力する。また、既知情報メモリ８８では、誤り訂正が成功である場合、誤り訂正された情報の文書ＩＤに相当する部分を新たに保存する。
ここで、データ置換器８４におけるデータ置き換えの具体例を図１３に示す。
この場合、第一行目には正しいデータをエンコードして誤り訂正符号を生成した時のデータが示されている。また第二行目には画像から２次元コード２２を抽出して２次元コードのドットからデータを再構成した観測データが示されている。ここで、観測データのＹ座標と、ＩＤ情報の１、２番目に誤りがあるとすると、この場合は誤りが三つあるため、後段の誤り訂正器８５で誤り訂正を行う事ができなくなってしまう。
そこで、誤り訂正器８５において誤り訂正を行う事ができなくなるのを防止するため、第三行目に示すように文書ＩＤを既知情報メモリ８８に記憶されている既知情報に置き換えるようにしている。これにより、ＩＤ情報の部分の誤りがなくなり、Ｙ座標の１バイトだけが誤りとなり、誤り訂正が可能となって正しい座標情報、ＩＤ情報が得られるようにしている。
誤り訂正に成功したデータは、データ復号器８６により、紙面上の座標情報と文書ＩＤに復号される。紙面上のＩＤは、水平座標＝２４ｍｍ、垂直座標１２３ｍｍ、文書ＩＤ＝２３となる。この座標及びデコードに成功した２次元コード２２の画像上の座標を用いてペン先座標算出器８７は、ペン先の紙面上での座標を算出する（詳細は後述）。これによりペン型座標入力装置７の先端部６２の位置が確定する。
【００１９】
次に、図１４を用いてドット検出器の動作を説明する。
ドット検出を行うために用いる領域は７×７画素のウィンドウである。従来技術の５×５画素よりもノイズに強い判定を行うことができる。ドット検出を行う領域は、図１４の領域１０２である。領域１０１は画像領域全体（３２０×２４０画素）であり、領域１０２は２８０×２２０画素の領域である。最外周の領域では画像品質が良くなく正しいドット検出を行うことが難しい可能性があることと、リアルタイム処理のためにできるだけ無駄な処理をしたくないから、画像領域全体ではなくそれより小さい領域においてドット検出を行うようにしている。
図１５はドット検出器の構成を示した図である。
この図１５に示すドット検出器は、ドット候補検出器（ドット候補検出手段）１０１と、最小輝度画素判定器（最小輝度画素判定手段）１０２と、周辺ドット探索器（周囲ドット探索手段）１０３とから構成され、画素Ｚを中心とした７×７画素の領域においてドット検出が行われる。
ドット候補検出器１０１は、注目画素Ｚとその近傍画素との輝度の差が所定値以上ある場合にドットの候補を検出する。
最小輝度画素判定器１０２は、ドット候補検出器１０１により検出されたドット候補が近傍画素と比較して最小輝度を有するか否かを判定する。
周辺ドット探索器１０３は最小輝度画素判定器１０２において最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べ、周辺にドットがなければドット候補はドットであると最終的に判定する。
ドット候補検出器１０１は、次の８つの式（１）〜（８）を同時に満足するときに画素Ｚはドット候補と判定される。Ｔｈは所定の値をとる閾値、簡単のために図１６の画素位置を示す各アルファベットが画素値を表すとする。また、入力画像は黒＝０、白＝２５５を表すとする。
Ｚ＜Ａ−Ｔｈ・・・（１）
Ｚ＜Ｅ−Ｔｈ・・・（２）
Ｚ＜Ｌ−Ｔｈ・・・（３）
Ｚ＜Ｐ−Ｔｈ・・・（４）
Ｚ＜Ｑ−Ｔｈ・・・（５）
Ｚ＜Ｒ−Ｔｈ・・・（６）
Ｚ＜Ｓ−Ｔｈ・・・（７）
Ｚ＜Ｔ−Ｔｈ・・・（８）
【００２０】
次に上記の８つの式を満たしたドット候補が最小輝度画素判定器１０２で周囲の画素と比較して最小輝度を有するか否かを判定する。その判定基準は次の１２の式（９）〜（２０）を全て満足するときにドット候補は最小輝度を有すると判定する。
Ｚ＜Ｂ・・・（９）
Ｚ＜Ｃ・・・（１０）
Ｚ＜Ｄ・・・（１１）
Ｚ＜Ｆ・・・（１２）
Ｚ＜Ｇ・・・（１３）
Ｚ＜Ｈ・・・（１４）
Ｚ＜Ｉ・・・（１５）
Ｚ＜Ｊ・・・（１６）
Ｚ＜Ｋ・・・（１７）
Ｚ＜Ｍ・・・（１８）
Ｚ＜Ｎ・・・（１９）
Ｚ＜Ｏ・・・（２０）
次に、最小輝度画素判定器１０２で最小輝度画素と判定された画素Ｚは、その周囲Ｕ、Ｖ、Ｗ、Ｘにすでにドット検出器でドットであると判定された画素が存在するか否かを周辺ドット探索器１０３で調査され、周囲Ｕ、Ｖ、Ｗ、Ｘにドットが存在しなければ画素Ｚはドットであると初めて判定される。
所定の値（Ｔｈ）の設定であるが、Ｔｈが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。また、Ｔｈが大きければノイズを検出せずに確実に誤りを減らすことができるがコード枠を検出することが難しくなり座標取得率が小さくなる。図１７にＴｈの大きさに応じた座標取得率の例を示す。文書ＩＤを置き換えた場合と置き換えない場合との両方のデータを記載した。
【００２１】
また、図１８にドット検出器の他の構成を示す。
この図１８に示すドット検出器は上記ドット検出をより高速に行う構成である。
ドット探索領域判定器（ドット探索領域判定手段）１０４でドットを探索する小領域３×３画素を設定する。３×３画素の領域内の各画素を中心とする７×７画素のウィンドウに対してドット候補検出器１０１と、このドット候補検出器１０１でドット候補と検出された画素Ｚが周囲の画素よりも輝度が低いか否かを判定する最小輝度画素判定器１０２と、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかを調べる周辺ドット探索器１０３とからなり、周辺ドット探索器１０３で周辺にドットがなければドット候補はドットであると最終的に判定される。
ドット探索領域判定器１０４は、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定する。上記図１６のようにＺ画素を中心とした７×７画素で、式（１）〜式（８）のすべての式が満たされたとき、Ｚ画素を中心とする３×３画素の領域がドットを探索すべき領域であると判定される。
そのＺ画素を中心とする３×３画素の領域の各画素に対してドット候補検出器１０１、最小輝度画素判定器１０２が処理を行う。この処理はすでに述べたとおりである。
最後に周辺ドット探索器１０３で画素Ｚの周囲（Ｕ、Ｖ、Ｗ、Ｘ、Ｙ）にすでにドットであると判定された画素が存在するか否かを探索する。本実施形態の方式では重複してドットであるか否かを判定される画素が存在するので画素Ｙに対してもすでにドットが検出されたか否かを判定する必要がある。
【００２２】
次に、図１９〜図２２を用いて、コード枠検出器の構成について説明しておく。
図１９はコード枠検出器の構成を示した図である。また図２０はコード枠検出器の検出経路を示した図である。
図１９に示すように、コード枠検出器８２は、ドットを検出した画像から、或るドットＸがコードのコーナーであるか否かを判定する第一コーナー検出器１１１と、その第一コーナーからドットで構成されるコード枠の８画素分を４方向に追跡して第二コーナー候補画素（Ｂ，Ｄ）を検出する第一ドット追跡器１１２とを備える。そして、第一ドット追跡器１１２で検出された第二コーナー候補画素が第二コーナーであるか否かを検出する第二コーナー検出器１１３と、第二コーナーからドットで構成されるコード枠の１２画素分を第一ドット追跡器１１２のドット追跡方向（時計回り方向）に追跡して、第三コーナー候補画素（Ｇ，Ｅ）を検出する第二ドット追跡器１１４とを備える。さらにこの第二ドット追跡器１１４で検出された第三コーナー候補画素が第三コーナーであるか否かを検出する第三コーナー検出器１１５と、その第三コーナーからコード枠の８画素分を第二ドット追跡器１１４のドット追跡方向（時計回り方向）に追跡し第四コーナー候補画素（Ｃ，Ａ）を検出する第三ドット追跡器１１６と、この第三ドット追跡器１１６で検出された第四コーナー候補画素が第四コーナー画素であるか否かを検出する第四コーナー検出器１１７と、さらに第一コーナーと第四コーナーとの間のコード枠を構成するドットを検出する第四ドット追跡器１１８とを備える。このコード枠検出器８２により、最大２つの２次元コード２２のコード枠を検出し、それを構成するドットの画像上の座標を検出することができる。
【００２３】
ここで、第一コーナー検出器１１１の動作を、図２１を用いて説明する。
第一コーナー検出器１１１は、図２１（ａ）で示すようにドットが存在する注目画素の周囲で４つ以上のドットが存在するか否か検出する周囲ドット検出器１２１と、検出された周囲ドットから注目画素を点対象とする二組のドットペアを検出する点対称ペア検出器１２２から構成される。
周囲ドット検出器１２１は、図２１（ｂ）に示す注目画素Ｎを中心とする１７×１７画素の中で注目画素Ｎの周囲に存在するドットを検出する。図２１（ｂ）の場合、Ａ〜Ｆの６画素が存在する。これが周囲ドット画素として検出される。それらＡ〜Ｆのうちで、Ｎとの距離が近く、その中間点がＮに近いものを二組検出する。例えば図２１（ｂ）の場合、（Ｂ，Ｄ）、（Ｃ，Ｆ）の二組がそれに相当する。Ａ及びＥはノイズであると判断され除去される。このようにして注目画素のドットＮ及び周囲の二組の点対称ペアが検出されると、注目画素Ｎは第一コーナーとして検出される。この第一コーナー検出器１１１が検出対象とする領域は、図１４に示す１８０×１２０画素の領域１０３であり、画像領域１０１の縦横それぞれほぼ半分の大きさを有する。また、ドットを検索する方向は通常のラスター走査ではなく、図２２に示すように内側から外側への渦巻き走査となる。この理由は、画像の中央付近が周囲と比較して画像の品質が優れていてドットの検出が確実に行われる確率が高いため、画像の中央またはその付近からコードパターンを検出するほうが短時間で検出できる可能性が高くなる。そのため、リアルタイム処理に非常に有利となる。
第一コーナー検出器１１１が動作する領域１０３が画像全体の領域１０１やドット検出器８１の動作領域１０２より小さい理由は、コードパターンが領域１０２の中に存在する場合、コードパターンの最も画像の内側に存在するコーナーの存在範囲を領域１０３としているためである。
【００２４】
次に、ドット追跡器の詳細を図２３により説明する。まず、図２３を用いて第一ドット追跡器１１２の詳細を説明する。図２３は２次元コードのコーナー付近を構成するドットを示したものである。Ｘはコーナードット、その他のＡ〜Ｉはコード枠を構成するドットである。まず、ＸからＤＥＦの方向へドットを追跡することにする。簡単のため、Ａ〜Ｉ、Ｘをそれぞれ座標ベクトルとみなし、Ｙ＝２Ｄ−Ｘを計算する。
ＹはドットＥの推定ベクトルである。Ａ〜Ｄは第一コーナー検出器１１１で既に検出されているので既知である。Ｙの周囲５×５画素においてドットＥを探索する。Ｅが存在すれば、Ｙ＝２Ｅ−Ｄを計算する。今度、ＹはドットＦの推定ベクトルである。この追跡を７回繰り返して第二コーナー候補画素を検出する。
追跡方向は４方向（図２０：Ｘ→Ａ、Ｘ→Ｂ、Ｘ→Ｃ、Ｘ→Ｄ）存在し、検出された第二コーナー候補画素すべての情報を第二コーナー検出器に転送する。
第二コーナー検出器１１３は基本的な動作は第一コーナー検出器１１１と同一である。ただ、入力する注目画素となるドットが複数（最大４）存在する可能性があることである。その中で検出される第二コーナーは最大２である（図２０：Ｂ、Ｄ）。
第二ドット追跡器１１４の基本的な動作は第一ドット追跡器１１２と同一である。異なるのは追跡を開始するドットは二つあり、各ドットあたり一つの方向の追跡を行う（図２１：Ｂ→Ｇ、Ｄ→Ｅ）のと、各追跡あたりドット追跡操作を１１回繰り返すことである。このようにして、第三コーナー候補画素（図２０：Ｇ、Ｅ）を検出する。
第三コーナー検出器１１５は第二ドット追跡器１１４で追跡できた第三コーナー候補画素（図２０：Ｇ、Ｅ）が第三コーナーであるか否かを検出する。基本的な動作は前記第一、第二コーナー検出器１１１、１１３と同一である。第三コーナー検出器１１５が図２０に示すＧ、Ｅを第三コーナーであると検出したとする。
【００２５】
第三ドット追跡器１１６は二つの方向（図２０：Ｇ→Ｃ、Ｅ→Ａ）にドット追跡を行うことである。追跡回数は第一ドット追跡器１１２と同じ７回、第四コーナー候補画素として図２０：Ｃ、Ａを検出する。
第四ドット追跡器１１８は第二ドット追跡器１１４と同一構成であり、図２０に示すＣ→Ｘ、Ａ→Ｘの方向に１１回追跡してＸに至る。Ｘはすでに第一コーナーであることがわかっているので、図２０に示す追跡経路（１）、追跡経路（２）によりコード枠が検出されたことになる。このようにして２次元コードのコード枠を検出する。２次元コードのデコードの際にどちらのコードを使うかは、画像上のコード中心の水平座標が大きい方を優先する。このコードがデコードできなかった場合はもう一方のコードを使用してデコードを実行する。
上記第一ドット追跡器１１２、第二ドット追跡器１１４、第三ドット追跡器１１６、第四ドット追跡器１１８が追跡する画像領域は図１４の領域１０４（２６０×２００画素）である。ドットを検出した領域１０２より少しだけ小さいのは、第一、第二、第三、第四コーナー検出器１１１、１１３、１１５、１１７においてコーナー検出に使用するアルゴリズムがコーナードットを中心として１７×１７画素の領域を使用して、その範囲で点対称ペアドットを検出するためである。
【００２６】
次に、図１１に示したデータ取得器８３を図２４により説明する。
図２４では、コード枠のコーナーの４点を除いてａ１〜ａ７、ｂ１〜ｂ１１、ｃ１〜ｃ７、ｄ１〜ｄ１１とする。コードのデータを取得するには、これらを結ぶ水平線と垂直線の交点を検出する。つまり、ａ１とｃ１を結ぶ直線とｂ２とｄ２を結ぶ直線の交点の座標を検出する。そして、この交点の座標を中心にして３×３がその領域においてドットの有無を検出する。図２４の場合はドット無しとなり取得されるデータは「０」となる。これをコード全データに対して行ってコードデータを取得し、データ配置規則（図４）に従ってデータを再構成する。
次に、図１１に示したペン先座標算出器８７について説明する。
ペン先座標算出器８７は、図２５に示すように、ドット中心検出器１３０、射影パラメータ算出器１３１、ペン先座標変換器１３２とからなる。ドット中心検出器１３０へは画像上のコードコーナー座標、それに対応する紙面上のコードコーナー座標および撮像したグレースケール画像を入力し、それらから射影パラメータ算出に使用するドットの中心位置を推定する。
図２６はドット中心検出器１３０の構成を示した図である。
この図２６に示すように、ドット中心検出器１３０は、ドットを含む小領域において最小輝度を有する画素を検出するドット座標補正手段１３３と、このドット座標補正手段１３３により検出された画素を中心とした小領域で所定の演算を行うことによりドットの正確な位置を推定するドット位置推定手段１３４とにより構成される。
図２７は射影パラメータ算出方法を説明する図である。なお、射影パラメータ算出方法は後述する。
図２７（ａ）は画像におけるパターンのコーナー（Ａｓ〜Ｄｓ）とペン先（Ｐｓ）の座標は、画像の各画素の位置を表す整数ではなく、画像におけるドットの中心、ペン先の紙に接する部分の中心の座標を表す。即ち、図２８に示すようにドットの中心は必ずしも画素位置の中心に来るとは限らず、位置がずれる。ここで正確なドットの中心を推定することで、ペン先の紙面における座標の推定精度が向上する。
【００２７】
次に、正確なドットの中心を推定するための方法について説明する。
図２９（ａ）に示すように、元のグレースケールの入力画像において、ドット検出器１１で検出したドットの画素位置を中心とする３×３画素近傍で最小の画素値を有する画素位置を検出する。この画素位置を（ｉ、ｊ）とする。また、画素位置（ｉ、ｊ）を中心とした３×３画素のウィンドウ内における各画素の値を、図２９（ｂ）で示すようにｖ（ｘ、ｙ）（但し、ｉ−１≦ｘ≦ｉ＋１、ｊ−１≦ｙ≦ｊ＋１）とし、下記の計算式を用いて、中心座標（ｉｃ、ｊｃ）を推定する。
（式２１）
0004397866.tif 000002
（式２２）
0004397866.tif 000003
上記式（２１）、式（２２）の二つの式を利用してＡｓ〜Ｄｓの４ドットの中心座標を決定する。そして、先に求めたＡｓ〜Ｄｓから射影パラメータを算出する。
図２７を用いて射影パラメータの算出方法について詳述する。
図２７（ａ）は画像におけるコードのコーナー（Ａｓ〜Ｄｓ）とペン型座標入力装置７の先端部６２（Ｐｓ）の座標である。Ｐｓの座標は常に一定である。なぜならばペン型座標入力装置７では画像読取装置６４と先端部６２は固定されているからである。先端部６２はペン型座標入力装置７の構成により画像読取装置６４で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
図２７（ｂ）は紙面におけるコードのコーナー（Ａｒ〜Ｄｒ）とペン型座標入力装置７の先端部６２（Ｐｒ）の座標である。コードのデコードによりＡｒが決定されるので、その隣接コーナーであるＢｒ〜Ｄｒは自動的に決まる。算出したいのはＰｒの座標である。射影変換式は図２７（ｃ）に示す式により画像座標から紙面座標への変換が行われる。変換係数ｂ１〜ｂ８は未知数であるが、コーナー座標の関係により８つの一次方程式が作られる。この連立方程式を解く事によりｂ１〜ｂ８のパラメータが算出される。
ペン先座標変換器はこのパラメータを用いてＰｓをＰｒに変換して紙面上の先端部６２の座標を決定する。
ペン先座標変換器１３２はこのパラメータを用いてＰｓをＰｒに変換して紙面上の先端部６２の座標を決定する。
【００２８】
次に、２次元コード読取装置の他の実施例を図３０に示す。なお、図１１と同一部位には同一符号を付して説明は省略する。この図３０に示す２次元コード読取装置は、第１誤り訂正器１４１、第２誤り訂正器１４２、選択器１４３が設けられている点が、図１４に示した２次元コード読取装置と異なるものとされる。
第１誤り訂正器１４１及び第２誤り訂正器１４２の機能は、図１１に示した誤り訂正器８５と同一の機能を有する。選択器１４３は、連続筆記検出器９１において連続筆記中であると判断された場合は、常に第２誤り訂正器１４２の出力を選択し、図１１に示した２次元コード読取装置と同一の動作を行う。
一方、筆記検出器９２の出力から筆記中であるが連続筆記中でないと判断した場合、即ち筆記開始時においては、選択器１４３は次のような動作を行う。第１誤り訂正器１４１の誤り訂正判定情報が誤り訂正成功の場合には、第１誤り訂正器１４１の出力が選択される。第１誤り訂正器１４１の誤り訂正判定情報が誤り訂正失敗の場合には、第２誤り訂正器１４２の出力が選択される。
このような処理を行うと、新しい加筆が行われる際に同一の文書への加筆ならば装置としての誤り訂正率が向上するので、図１１に示した２次元コード読取装置より有利である。
これまで説明してきた２次元コード読取装置７４はハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよく、この場合は２次元コード読取方法を実現するプログラムがマイコン６５（図５参照）のＲＯＭ７２（図１０参照）に格納される。そして、そのプログラムの命令が順次ＣＰＵ７１にロードされて命令の実行が行われ、２次元コード２２の読み取り処理が行われることになる。その処理手順を図３１（ａ）（ｂ）に示すフローチャートに従って説明する。
【００２９】
まず、画像入力を行った後、図３１（ａ）に示すように、画像内のドットを検出する（Ｓ２１）。次に、２次元コードの位置を抽出するコード枠の検出を行った後（Ｓ２２）、２次元コードの白黒に応じて「０」または「１」のデータを取得してデータの並べ替えを行う（Ｓ２３）。この後、ステップＳ２４において誤り訂正を行い、ステップＳ２５において誤り訂正に成功したと判別したときはステップＳ２６に進み、誤り訂正に成功したと判別しなかったとき、つまり誤り訂正に失敗したと判別したときは２次元デコード処理を終了することになる。
破線で囲ったステップＳ２４、Ｓ２５の処理は、図３１（ｂ）に示すようになる。
まず、ステップＳ３１において、取得したデータが連続検出中、即ち、ペン型座標入力装置７の先端部６２が常に紙面に押し付けられているかどうかを判定し、連続検出中ならば、ステップＳ３２において既知情報（文書ＩＤ）でデータ置き換えを行う。データ置き換えを行った後、ステップＳ３３で誤り訂正を行う。ステップＳ３４において誤り訂正が成功したと判別した場合は、ステップＳ３５においてデコードされた既知情報（文書ＩＤ）を保存して誤り訂正処理を終えることになる。この後、図３１（ａ）に示すステップＳ２６に進み、元のデータ（座標情報）を復元し、続くステップＳ２７においてペン型座標入力装置７の先端部６２の紙面上における座標を算出する。
一方、図３１（ｂ）のステップＳ３１において、取得したデータが連続検出中でなかった場合、つまり初めての加筆である場合、ステップＳ３２のデータの置き換えは行わず、ステップＳ３３において誤り訂正を行う。そしてステップＳ３４において誤り訂正が成功したと判別した場合は、上記同様、ステップＳ３５において文書ＩＤ（既知情報）を保存した後、図３１（ａ）に示すステップＳ２６において元のデータ（座標情報）を復元し、続くステップＳ２７においてペン型座標入力装置７の先端部６２の紙面上における座標を算出すればよい。
なお、ドットの検出、コード枠の検出、データ取得、誤り訂正、座標・文書ＩＤ復元、ペン先座標算出の各ステップは、図１１に示すドット検出器８１、コード枠検出器８２、データ取得器８３、誤り訂正器８５、データ復号器８６、ペン先座標算出器８７の各機能をソフトウェアで実現している。
【００３０】
また図３２は、上記図１５に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合、先ず、ステップＳ７１において、画素Ｚを中心とした７×７画素の領域に対してドット候補の検出を行い、続くステップＳ７２において、ドット候補と検出された画素Ｚが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップＳ７３において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにする。
また図３３は、上記図１８に示したドット検出器の検出方法をソフトウェアで実現する場合のドット検出処理を示したフローチャートである。
この場合は、先ずステップＳ７０において、水平、垂直それぞれ一画素おきにドットを探索すべき領域か否かを判定して、ドットを探索する小領域３×３画素を設定する。以下、上記同様、ステップＳ７１において、画素Ｚを中心とした３×３画素の領域に対してドット候補の検出を行い、続くステップＳ７２において、ドット候補と検出された画素Ｚが周囲の画素よりも輝度が低いか否かを判定を行う。この後、ステップＳ７３において、最小輝度画素であると判定されたドット候補の周囲にすでにドットと判定された画素があるかの判定を行うようにすれば良い。
【００３１】
また図３４は、上記図２５に示したペン先座標算出器８７におけるドット中心検出方法をソフトウェアで実現する場合のドット中心検出処理を示したフローチャートである。
この場合、先ず、ステップＳ８１において、コード枠の所定の位置に存在するドットの正確な座標を推定する。続くステップＳ８２において、ステップＳ８１においてドット中心検出ステップで検出された中心座標と、復号された位置情報とから射影変換パラメータを算出し、ステップＳ８３において算出された射影パラメータを用いて画像座標中の所定の座標に演算を加えてペン先の座標変換処理を行うようにすれば良い。
このようにドット検出方法をソフトウェアで実現すると非常に高速にドットの検出を行うことができるようになる。
また、２次元コード読み取り処理の他の処理手順を図３５（ａ）（ｂ）に示すフローチャートに従って説明する。
この図３５に示すフローチャートが図３１に示したフローチャートと異なる点は、筆記中であって連続検出中でない場合、即ち筆記開始時に文書ＩＤを置き換えずに誤り訂正を行い、誤り訂正ができなかった場合に文書ＩＤ部分の置き換えを行って誤り訂正を行うようにしている点である。つまり、図３５（ｂ）に示すステップＳ４１において筆記中であると判別し、続くステップＳ４２において連続検出中でないと判別された場合、ステップＳ４３において、筆記開始時に文書ＩＤを置き換えずに誤り訂正を行い、ステップＳ４４において誤り訂正ができなかった場合に、ステップＳ４５において文書ＩＤ部分の置き換えを行って誤り訂正を行うようにしている。これにより、同一文書への加筆時には、図３５に示すように２次元コード読み取り処理を行ったほうが誤り訂正率を向上させることができるようになる。
なお、図３５（ａ）に示す処理、及び図３５（ｂ）に示すステップＳ４５〜Ｓ４８の処理は、それぞれ図３１（ａ）に示す処理、及び図３１（ｂ）に示すステップＳ３２〜Ｓ３５の処理と同じとされるので説明は省略する。
【００３２】
これまで２次元コードを読むことにより加筆座標を取得する装置、及びシステムについて述べた。そこで次に加筆した情報を取得し、原文書に重畳するシステム、及び方法を、図５に示した文書管理システムと図３６に示すフローチャートを参照しながら説明する。なお、ここでは文書には２次元コードが付されて印刷されているものとする。
ここで、ペン型座標入力装置７で文書に加筆を行ったとすると、前述したように、文書上の２次元コード２２が読み取られ、文書ＩＤと座標情報がペン型座標入力装置７で取得される（Ｓ５１）。コードシンボルの読み取りの詳細について後述する。加筆とともにリアルタイムで読み取られた文書ＩＤや座標情報が情報処理装置４へ送信される。情報処理装置４は文書ＩＤと座標情報を受け取ると、その文書ＩＤを、文書管理データベース６を管理する情報処理装置９へ転送する（Ｓ５２）。
情報処理装置９は受信した文書ＩＤを元に、文書管理データベース６から現在加筆されている文書のページを特定する（Ｓ５３）。ここで、例えば、特定された文書が図３７に示す識別番号（ＩＤ）「１２３４５６」の「ｐａｔｅｎｔ．ｄｏｃ」のページ１であるとする。この文書情報はペン型座標入力装置７へ送信され、ペン型座標入力装置７のＬＣＤ表示装置６６には受信した文書情報が表示される。このようにしてファイルの実体が特定できたので、情報処理装置４は「ｐａｔｅｎｔ．ｄｏｃ」をそれが関連付けられているアプリケーション（例えばワープロソフト）で開き、例えば情報処理装置４に接続された図示しないディスプレイに表示して編集状態とする（Ｓ５４）。
【００３３】
編集状態とされた文書「ｐａｔｅｎｔ．ｄｏｃ」に、ペン型座標入力装置７から次々送信されてくる座標情報を描画することになる。描画する方法としては、文書のウィンドウに新たな描画オブジェクトを開き、受信した座標を線でつないで描画することで実現することができる（Ｓ５５〜Ｓ５８）。
加筆が終了した時点で（Ｓ５９「Ｙ」）、ペン型座標入力装置７は加筆終了の信号を情報処理装置４へ送信し、加筆終了の信号を受け取った情報処理装置４は、ウィンドウへの描画を終了する。このようにして文書「ｐａｔｅｎｔ．ｄｏｃ」に一つのオブジェクトが加えられる（Ｓ６０）。本実施形態では加筆した情報をリアルタイムでコンピュータのディスプレイ上に表示し、実際に加筆した情報が正しく処理されているかどうかをすぐに確認できるのでユーザにとって大きなメリットになる。また、情報処理装置４では受信した座標情報を数列テキストとして同時に別ファイルとして保存する。文書が巨大な場合など、ユーザが後にアプリケーションを開いて加筆されたデータを確認したいときに素早く確認することが不可能な場合に、加筆されたデータのみを表示・確認させることができるので有効である。
なお、これまで説明した本実施形態では、紙に２次元コードを印刷した場合について説明したが、この方法は紙に制限されるわけではなく、ペーパーライクディスプレイ、フィルム、ホワイトボード等、加筆を可能とするものならば有効に機能する事は言うまでもない。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の形態に係る印刷文書の平面図。
【図２】２次元コードのドットの大きさ、及びドットの間隔を示す図。
【図３】２次元コードのデータ配置領域を示す図。
【図４】２次元コードへのデータの配置順序を示す図。
【図５】本発明の実施の形態に係る文書管理システムの構成図。
【図６】２次元コードのエンコード処理を示したフローチャート。
【図７】データのエンコード処理と誤り訂正符号の付加処理の説明図。
【図８】文書印刷とデータベースへの登録方法を示す図。
【図９】２次元コードを付して印刷した文書の一例を示す図。
【図１０】マイコンの構成を示す図。
【図１１】２次元コード読取装置の構成を示したブロック図。
【図１２】２次元コードを読み取った画像の一例を示す図。
【図１３】文書ＩＤ置き換えによる誤り訂正の可否を説明する図。
【図１４】画像全体の領域と各検出器の処理領域を示す図。
【図１５】ドット検出器の構成を示した図。
【図１６】ドット検出器の説明図。
【図１７】文書ＩＤの置き換えによる座標取得率の変化を示す図。
【図１８】ドット検出器の他の構成を示した図。
【図１９】コード枠検出器の説明図。
【図２０】コード枠の追跡経路の説明図。
【図２１】コーナー検出器の説明図。
【図２２】渦巻き走査の一例を示す図。
【図２３】ドット追跡器の説明図。
【図２４】データ取得器の説明図。
【図２５】ペン先座標算出器の構成を示す図。
【図２６】ドット中心検出器の構成を示す図。
【図２７】ペン先座標算出の説明図。
【図２８】ドット中心の位置と画素の関係を示した図。
【図２９】画素位置の説明図。
【図３０】２次元コード読取装置の他の構成を示したブロック図。
【図３１】２次元コードの読み取り処理の一例を示したフローチャート。
【図３２】ドット検出処理を示したフローチャート。
【図３３】ドット検出処理の他の例を示したフローチャート。
【図３４】ドット中心検出処理を示したフローチャート。
【図３５】２次元コードの読み取り処理の他の例を示したフローチャート。
【図３６】文書加筆時の文書更新、データベースの更新方法を示す図。
【図３７】文書管理データベースに登録されている項目を示す図。
【符号の説明】
【００３５】
１…プリンタ、２…複写機、３…スキャナ、４…情報処理装置、５…記憶装置、６…文書管理データベース、７…ペン型座標入力装置、８…携帯情報端末、９…情報処理装置、１０…２次元コード作成装置、２１…印刷文書、２２…２次元コード、２３…ドット、２４…最小ドット、６１…装置本体、６２…先端部、６３…筆記具、６４…画像読取装置、６４ａ…光電変換素子、６４ｂ…光学系、６５…マイコン、６６…ＬＣＤ表示装置、６７…ＬＥＤ、６８…ブザー、６９…圧力センサ、７０…バス、７１…ＣＰＵ、７２…ＲＯＭ、７３…ＲＡＭ、７４…２次元コード読取装置、８１…ドット検出器、８２…コード枠検出器、８３…データ取得器、８４…データ置換器、８５…誤り訂正器、８６…データ復号器、８７…ペン先座標算出器、８８…既知情報メモリ、９１…連続筆記検出器、９２…筆記検出器、１０１…ドット候補検出器、１０２…最小輝度画素判定器、１０３…周辺ドット探索器、１０４…ドット探索領域判定器、１１…ドット検出器、１１１…第一コーナー検出器、１１２…第一ドット追跡器、１１３…第二コーナー検出器、１１４…第二ドット追跡器、１１５…第三コーナー検出器、１１６…第三ドット追跡器、１１７…第四コーナー検出器、１１８…第四ドット追跡器、１２１…周囲ドット検出器、１２２…点対称ペア検出器、１３０…ドット中心検出器、１３１…射影パラメータ算出器、１３２…ペン先座標変換器、１３３…ドット座標補正手段、１３４…ドット位置推定手段、１４１…第１誤り訂正器、１４２…第２誤り訂正器、１４３…選択器
【図１】
0004397866.tif 000004
【図２】
0004397866.tif 000005
【図３】
0004397866.tif 000006
【図４】
0004397866.tif 000007
【図５】
0004397866.tif 000008
【図６】
0004397866.tif 000009
【図７】
0004397866.tif 000010
【図８】
0004397866.tif 000011
【図９】
0004397866.tif 000012
【図１０】
0004397866.tif 000013
【図１１】
0004397866.tif 000014
【図１２】
0004397866.tif 000015
【図１３】
0004397866.tif 000016
【図１４】
0004397866.tif 000017
【図１５】
0004397866.tif 000018
【図１６】
0004397866.tif 000019
【図１７】
0004397866.tif 000020
【図１８】
0004397866.tif 000021
【図１９】
0004397866.tif 000022
【図２０】
0004397866.tif 000023
【図２１】
0004397866.tif 000024
【図２２】
0004397866.tif 000025
【図２３】
0004397866.tif 000026
【図２４】
0004397866.tif 000027
【図２５】
0004397866.tif 000028
【図２６】
0004397866.tif 000029
【図２７】
0004397866.tif 000030
【図２８】
0004397866.tif 000031
【図２９】
0004397866.tif 000032
【図３０】
0004397866.tif 000033
【図３１】
0004397866.tif 000034
【図３２】
0004397866.tif 000035
【図３３】
0004397866.tif 000036
【図３４】
0004397866.tif 000037
【図３５】
0004397866.tif 000038
【図３６】
0004397866.tif 000039
【図３７】
0004397866.tif 000040