(57)【要約】【課題】  迷路パターンにエンコードされたビットを抽出するために迷路パターンのイメージを分析する処理及び装置を提供すること。【解決手段】  迷路パターンのグリッド線を判定し、バーの有効ピクセルの方向を推定し、クラスタにグループ化する。選択されたクラスタの有効ピクセルについて線を推定する。他のクラスタのグリッド線を判定する。推定された線を傾き分散分析に基づいて枝刈りし、距離分析に基づいてグループ化し、最もよくあう線を各グループから選択する。最もよくあう線からアフィンパラメータを判定する。迷路パターンの欠けている角のタイプを判定し、迷路パターンの正しい方位を得る。関連する迷路パターンセルのグレイレベル値を処理し、迷路パターンのイメージからビットを抽出する。【選択図】  図２６
2006073011.tif 000002
【特許請求の範囲】
【請求項１】
迷路パターン及び文書内容のキャプチャされたイメージを分析し、文書表現からｍ−配列の関連するビットを判定し、前記文書が、前記迷路パターンによってウォーターマーキングされるようにした迷路パターン分析方法であって、
（Ａ）複数の有効ピクセルから複数のグリッド線を検出するステップと、
（Ｂ）前記迷路パターンの正しい方位を判定するステップと、
（Ｃ）前記迷路パターンから複数のビットを抽出するステップであって、前記複数のビットが、関連するｍ−配列情報を含む、前記複数のビットを抽出するステップと
を有することを特徴とする迷路パターン分析方法。
【請求項２】
（Ｄ）ビットに関連する信頼レベルを前記迷路パターンから判定するステップをさらに有することを特徴とする請求項１に記載の迷路パターン分析方法。
【請求項３】
（Ｅ）前記複数のビットから部分集合を選択するステップであって、前記部分集合の各ビットが、所定のレベルを超える関連する信頼レベルを有する、前記部分集合を選択するステップをさらに有することを特徴とする請求項２に記載の迷路パターン分析方法。
【請求項４】
（Ｆ）ビットの前記部分集合から前記ｍ−配列内の位置をデコードするステップをさらに有することを特徴とする請求項３に記載の迷路パターン分析方法。
【請求項５】
前記（Ａ）は、（ｉ）前記迷路パターンの前記キャプチャされたイメージ内の有効ピクセルを分離するステップを有することを特徴とする請求項１に記載の迷路パターン分析方法。
【請求項６】
前記（Ａ）は、（ｉｉ）選択された有効ピクセルごとに推定された線を推定するステップをさらに有することを特徴とする請求項５に記載の迷路パターン分析方法。
【請求項７】
前記（Ａ）は、（ｉｉｉ）前記複数のグリッド線のグリッド線パラメータを判定するステップをさらに有することを特徴とする請求項６に記載の迷路パターン分析方法。
【請求項８】
前記（Ａ）は、（ｉｖ）前記複数のグリッド線をチューニングするステップをさらに有することを特徴とする請求項７に記載の迷路パターン分析方法。
【請求項９】
前記（ｉｉ）は、（１）複数の方向を推定するステップであって、前記各方向が、有効ピクセルを通る迷路パターンバーに対応する、前記複数の方向を推定するステップを有することを特徴とする請求項６に記載の迷路パターン分析方法。
【請求項１０】
前記（ｉｉ）は、（２）前記複数の方向から２つのクラスタを形成するステップをさらに有することを特徴とする請求項９に記載の迷路パターン分析方法。
【請求項１１】
（３）すべての推定された方向のヒストグラムから、前記２つのクラスタのそれぞれの初期推定方向を判定するステップをさらに有することを特徴とする請求項１０に記載の迷路パターン分析方法。
【請求項１２】
前記（ｉｉ）は、（３）前記２つのクラスタのうちでより多数の有効ピクセルに関連する１つのクラスタを選択するステップをさらに有することを特徴とする請求項１０に記載の迷路パターン分析方法。
【請求項１３】
前記（ｉｉ）は、（４）前記１つのクラスタの関連する方向から主方向を推定するステップをさらに有することを特徴とする請求項１２に記載の迷路パターン分析方法。
【請求項１４】
前記（ｉｉ）は、（５）選択された有効ピクセルごとに、対応する線パラメータセットを判定するステップであって、前記各対応する線パラメータセットが、回帰処理された線に対応する、前記対応する線パラメータセットを判定するステップをさらに有することを特徴とする請求項１３に記載の迷路パターン分析方法。
【請求項１５】
前記（５）は、前記選択された有効ピクセルのそれぞれに関連する対応する複数の有効ピクセルについて回帰分析を実行するステップを有することを特徴とする請求項１４に記載の迷路パターン分析方法。
【請求項１６】
前記（ｉｉ）は、（６）もう１つのクラスタのグリッド線方向を推定するために垂直制約を使用するステップをさらに有することを特徴とする請求項１５に記載の迷路パターン分析方法。
【請求項１７】
前記（ｉｉｉ）は、傾き分散分析を使用し、（１）線の枝刈りされた集合を形成するために複数の回帰処理された線を枝刈りするステップを有することを特徴とする請求項７に記載の迷路パターン分析方法。
【請求項１８】
前記（１）は、傾き分散分析を使用することを特徴とする請求項１７に記載の迷路パターン分析方法。
【請求項１９】
前記（ｉｉｉ）は、（２）複数の線グループを形成するために、線の前記枝刈りされた集合をグループ化するステップをさらに有することを特徴とする請求項１７に記載の迷路パターン分析方法。
【請求項２０】
前記（２）は、隣接する線グループの間の関連する射影距離を使用することを特徴とする請求項１９に記載の迷路パターン分析方法。
【請求項２１】
前記（ｉｉｉ）は、（３）前記複数の線グループのグループごとに最もよくあう線を選択するステップをさらに有することを特徴とする請求項１９に記載の迷路パターン分析方法。
【請求項２２】
前記（ｉｉｉ）は、（４）複数の最もよくあう線から少なくとも１つのアフィンパラメータを判定するステップをさらに有することを特徴とする請求項２１に記載の迷路パターン分析方法。
【請求項２３】
前記少なくとも１つのアフィンパラメータは、水平スケール（Ｓx）、垂直スケール（Ｓy）、水平オフセット（ｄx）、垂直オフセット（ｄy）、水平回転（θx）、及び垂直回転（θy）からなる群から選択されることを特徴とする請求項２２に記載の迷路パターン分析方法。
【請求項２４】
前記（ｉｖ）は、（１）選択された最もよくあう線に十分に近い少なくとも１つの線を判定するステップであって、前記少なくとも１つの線は、前記選択された最もよくあう線にほぼ平行であり、前記最もよくあう線から所定の距離以内にある、前記１つの線を判定するステップを有することを特徴とする請求項８に記載の迷路パターン分析方法。
【請求項２５】
前記（ｉｖ）は、（２）前記少なくとも１つの線及び前記最もよくあう線から１つの線を選択するステップであって、前記１つの線は、最も暗い特性を有する、前記１つの線を選択するステップをさらに有することを特徴とする請求項２４に記載の迷路パターン分析方法。
【請求項２６】
前記（ｉｖ）は、（２）前記少なくとも１つの線及び前記最もよくあう線から１つの線を選択するステップであって、前記１つの線は、最も小さいグレイレベル合計を有する、前記１つの線を選択するステップをさらに有することを特徴とする請求項２４に記載の迷路パターン分析方法。
【請求項２７】
前記（Ｂ）は、（ｉ）欠けている角のタイプを判定するステップを有することを特徴とする請求項１に記載の迷路パターン分析方法。
【請求項２８】
前記（Ｂ）は、（ｉｉ）欠けている角の前記タイプに従って前記迷路パターンを回転するステップを有することを特徴とする請求項２７に記載の迷路パターン分析方法。
【請求項２９】
前記（ｉ）は、
（１）各角タイプの平均スコア差を判定するステップと、
（２）最大平均スコア差に対応するような、欠けている角の前記角タイプを選択するステップと
を有することを特徴とする請求項２７に記載の迷路パターン分析方法。
【請求項３０】
前記スコア値は、バイリニアサンプリングに基づくことを特徴とする請求項２９に記載の迷路パターン分析方法。
【請求項３１】
前記（Ｃ）は、
（ｉ）迷路パターンセルが完全に可視の場合に、対応するビットを抽出するために、水平スコア（ＳｃｏｒｅＸ（・））と垂直スコア（ＳｃｏｒｅＹ（・））のグレイレベル値比較を実行するステップと、
（ｉｉ）前記迷路パターンセルが部分的に可視の場合に、辺平均スコアの関数を前記水平スコア及び前記垂直スコアと比較するステップであって、前記辺平均スコアは、完全に可視の隣接迷路パターンセルに対応する、前記比較するステップと
を有することを特徴とする請求項１に記載の迷路パターン分析方法。
【請求項３２】
前記（ｉ）は、
（１）前記水平スコアは前記垂直スコアより小さい場合に、前記対応するビットを「０」と等しくするステップと、
（２）前記水平スコアは前記垂直スコアより大きい場合に、前記対応するビットを「１」と等しくするステップと、
（３）前記水平スコアは前記垂直スコアと等しい場合に、前記対応するビットを無効にするステップと
を有することを特徴とする請求項３１に記載の迷路パターン分析方法。
【請求項３３】
前記関数は、完全に可視の隣接迷路パターンセルの基準黒縁平均スコア（ＢＭＳ）及び基準白縁平均スコア（ＷＭＳ）の平均値と等しいことを特徴とする請求項３１に記載の迷路パターン分析方法。
【請求項３４】
前記（Ｄ）は、
（ｉ）前記信頼レベルを水平スコア（Ｓｃｏｒｅ（Ｘ（・））及び垂直スコア（Ｓｃｏｒｅ（Ｙ（・））の関数と等しくするステップを有することを特徴とする請求項２に記載の迷路パターン分析方法。
【請求項３５】
前記関数は、前記水平スコアと前記垂直スコアとの差の絶対値に比例することを特徴とする請求項３４に記載の迷路パターン分析方法。
【請求項３６】
前記スコア値は、バイリニアサンプリングに基づくことを特徴とする請求項３１に記載の迷路パターン分析方法。
【請求項３７】
前記（ｉ）は、（１）前記有効ピクセルの個数を推定するステップを有することを特徴とする請求項５に記載の迷路パターン分析方法。
【請求項３８】
前記（１）は、前記迷路パターンバーの面積を迷路パターンセルの面積で割ったものによって近似される比を使用することを特徴とする請求項３７に記載の迷路パターン分析方法。
【請求項３９】
請求項１に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４０】
請求項２に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４１】
請求項３に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４２】
請求項４に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４３】
請求項５に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４４】
請求項６に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４５】
請求項７に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４６】
請求項８に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４７】
請求項２７に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４８】
請求項２８に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４９】
請求項３１に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５０】
請求項３４に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５１】
迷路パターンのイメージを分析する迷路パターン分析装置であって、
イメージを入手し、複数の推定された線から前記イメージのグリッド線を判定するグリッド線アナライザと、
欠けている角のタイプを判定し、前記迷路パターンの正しい方位を判定するために前記イメージをさらに処理する方位アナライザと、
前記迷路パターンからビットを抽出するために、前記グリッド線に沿って前記迷路パターンを処理するビットエクストラクタと
を備えたことを特徴とする迷路パターン分析装置。
【請求項５２】
前記ビットエクストラクタは、抽出されたビットに関連する信頼レベルを判定することを特徴とする請求項５１に記載の迷路パターン分析装置。
【請求項５３】
前記グリッド線アナライザは、前記グリッド線をチューニングすることを特徴とする請求項５１に記載の迷路パターン分析装置。
【請求項５４】
照明について補償するために、前記イメージのピクセルに関連するグレイレベル値を正規化するイメージノーマライザをさらに備えたことを特徴とする請求項５１に記載の迷路パターン分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、迷路パターン分析方法及びその装置に関し、より詳細には、ディジタルペンを使用する媒体とのインターフェースを備え、迷路パターンを分析し、迷路パターンからビットを抽出するようにした迷路パターン分析方法及びその装置に関する。
【背景技術】
【０００２】
コンピュータユーザは、パーソナルコンピュータと対話する形としてのマウス及びキーボードの使用に慣れている。パーソナルコンピュータは、書かれた文書に対する多数の長所を提供するが、ほとんどのユーザは、印刷された紙を使用して、ある機能を実行し続けている。これらの機能の一部に、書かれた文書を読み、注釈を付けることが含まれている。注釈の場合に、ユーザによって書かれる注釈ゆえに、印刷された文書がより重要になる。しかし、注釈を有する印刷された文書を有することの問題の１つは、電子形式の文書に注釈を入力させる必要があることである。これは、オリジナルユーザ又は別のユーザが、注釈全体を読み進め、それをパーソナルコンピュータに入力することを必要とする。いくつかの場合に、ユーザは、注釈及びオリジナルテキストをスキャンし、これによって新しい文書を作成する。これらの複数のステップは、印刷された文書とその文書のディジタルバージョンの間の相互作用を、繰り返される基礎で処理しにくくする。さらに、スキャンされたイメージは、しばしば修正不能である。注釈をオリジナルテキストから分離する方法がない場合がある。これによって、注釈を使用することが困難になる。したがって、注釈を扱う改善された方法が必要である。
【０００３】
【非特許文献１】Douglas W. Clark and Lih-Jyh Weng, "Maximal and Near-Maximal Shift Register Sequences: Efficient Event Counters and Easy Discrete Logarithms," IEEE Transactions on Computers 43.5 (May 1994, pp 560-568)
【発明の開示】
【発明が解決しようとする課題】
【０００４】
手書き情報をキャプチャ（ｃａｐｔｕｒｅ）する技術の１つが、書いている間に位置を判定できるペンを使用することによるものである。この機能を提供するペンの１つが、Ａｎｏｔｏ  Ｉｎｃ．社のＡｎｏｔｏ  ｐｅｎである。このペンは、カメラを使用して、予め決められたパターンを用いてエンコードされた紙のイメージをキャプチャすることによって機能する。イメージパターンの例を、図１１に示す。このイメージパターンが、Ａｎｏｔｏ  ｐｅｎ（Ａｎｏｔｏ  Ｉｎｃ．社の）によって使用されて、紙の上でのペンの位置が判定される。しかし、Ａｎｏｔｏ  ｐｅｎによって使用されるシステムによる位置の判定がどれほど効率的であるかは不確かである。キャプチャされたイメージの位置の効率的な判定を提供するために、迷路パターン（ｍａｚｅ  ｐａｔｔｅｒｎ）のキャプチャされたイメージからのビットの効率的な抽出を提供するシステムが必要である。
【０００５】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、迷路パターン及び文書内容のキャプチャされたイメージを分析し、文書表現から関連するビットを判定する迷路パターン分析方法及びその装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の各実施態様は、上述した問題の少なくとも１つに対する解決策を提供し、これによって、迷路パターンからビットを抽出して、見られる文書上のキャプチャされたイメージの１つ又は複数の位置を突き止めることを可能にする。見られる文書は、紙、ＬＣＤ画面、又は予め決められたパターンを有する他の媒体にあるものとすることができる。本発明の実施態様に、文書イメージを分析することと、関連するｍ−配列（ｍ−ａｒｒａｙ）のビットを抽出することが含まれている。
【０００７】
本発明の一実施態様によれば、迷路パターンのグリッド線が判定される。関連するバーの各有効ピクセルの方向が推定される。推定された方向は、クラスタにグループ化される。迷路パターンの第１主方向に関連する選択されたクラスタの選択された有効ピクセルについて、線を推定する。
【０００８】
本発明の他の実施態様によれば、回帰分析が、推定された線を判定するのに使用される。
【０００９】
本発明の他の実施態様によれば、推定された線が、傾き分散分析に基づいてグループ化される。最もよくあう線が、各グループから選択される。
【００１０】
本発明の他の実施態様によれば、別のクラスタのグリッド線が判定され、ここで、他のクラスタは、第１の主方向と直交するかほぼ直交する第２の主方向に関連する。
【００１１】
本発明の他の実施態様によれば、アフィンパラメータ（ａｆｆｉｎｅ  ｐａｒａｍｅｔｅｒ）が、グループ化された線から判定される。アフィンパラメータに、迷路パターンの水平及び垂直の回転、グリッド線の水平及び垂直の間隔、ならびにイメージ中心の水平及び垂直のオフセットを含めることができる。
【００１２】
本発明の他の実施態様によれば、グリッド線は、迷路パターンの実際のグリッド線のより洗練された近似を得るためにチューニングされる。
【００１３】
本発明の他の実施態様によれば、迷路パターンの正しい方位が、迷路パターンの欠けている角のタイプを判定することによって入手される。
【００１４】
本発明の他の実施態様によれば、関連する迷路パターンセルのグレイレベル値を処理することによって、迷路パターンからビットが抽出される。変形形態で、隣接する迷路パターンセルのグレイレベル値が、さらに処理される。
【００１５】
本発明の上述した実施態様及び他の実施態様は、図面及び次の関連する説明から既知になる。
【００１６】
本発明の要約ならびに好ましい実施形態の次の詳細な説明は、添付図面と共に読まれる時に最もよく理解されるが、添付図面は、請求される発明に関する制限ではなく、例として含まれるものである。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施形態について説明する。  
本発明の実施態様は、より大きいイメージに関するキャプチャされたイメージの位置の判定に関する。本明細書に記載の位置判定の方法及びシステムは、マルチファンクションペンと組み合わせて使用することができる。
【００１８】
以下の説明では、明細書を読みやすくするために見出しによって区切られて説明されている。この見出しには、＜用語＞、＜汎用コンピュータ＞、＜イメージキャプチャペン＞、＜配列のエンコード＞、＜デコード＞、＜エラー訂正＞、＜位置判定＞、ならびに＜迷路パターン分析＞が含まれている。
【００１９】
＜用語＞
ペン；インクをたくわえる能力を含んでも含まなくてもよいすべての書込器具。いくつかの例で、インク機能を有しないスタイラスを、本発明の実施形態に従ってペンとして使用することができる。
【００２０】
カメラ；紙又は他の媒体からイメージをキャプチャすることができるイメージキャプチャシステム。
【００２１】
＜汎用コンピュータ＞
図１は、本発明の実施形態と共に使用できるコンピュータの全般的な説明をするための図である。本発明のさまざまな実施態様を実行するのに使用することができる、普通の汎用ディジタルコンピュータ環境の例の機能ブロック図である。図１では、コンピュータ１００に、処理ユニット１１０、システムメモリ１２０及びシステムメモリを備えたさまざまなシステムコンポーネントを処理ユニット１１０に結合するシステムバス１３０が含まれている。システムバス１３０は、メモリバス又はメモリコントローラ、周辺バス及びさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリ１２０には、読取専用メモリ（ＲＯＭ）１４０及びランダムアクセスメモリ（ＲＡＭ）１５０が含まれている。
【００２２】
起動中などにコンピュータ１００内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム１６０（ＢＩＯＳ）が、ＲＯＭ１４０にストアされる。コンピュータ１００には、ハードディスク（図示せず）から読み取り、これに書き込むハードディスクドライブ１７０、リムーバブル磁気ディスク１９０から読み取り、これに書き込む磁気ディスクドライブ１８０及びＣＤ−ＲＯＭ又は他の光媒体などのリムーバブル光ディスク１９２から読み取るか、これに書き込む光ディスクドライブ１９１も含まれている。ハードディスクドライブ１７０、磁気ディスクドライブ１８０及び光ディスクドライブ１９１は、それぞれハードディスクドライブインターフェース１９２、磁気ディスクドライブインターフェース１９３及び光ディスクドライブインターフェース１９４によってシステムバス１３０に接続されている。ドライブ及びそれに関連するコンピュータ読み取り可能な記録媒体は、パーソナルコンピュータ１００のコンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの不揮発性ストレージを提供する。磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、及び類似物など、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読み取り可能な記録媒体も、例のオペレーティング環境で使用できることは、当業者に理解されるであろう。
【００２３】
オペレーティングシステム１９５、１つ又は複数のアプリケーションプログラム１９６、他のプログラムモジュール１９７及びプログラムデータ１９８を含む複数のプログラムモジュールを、ハードディスクドライブ１７０、磁気ディスクドライブ１８０、光ディスクドライブ１９１、ＲＯＭ１４０、又はＲＡＭ１５０にストアすることができる。ユーザは、キーボード１０１及びポインティングデバイス１０２などの入力デバイスを介して、コンピュータ１００にコマンド及び情報を入力することができる。他の入力デバイス（図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、又は類似物を含めることができる。これら及び他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース１０６を介して処理ユニット１１０に接続されるが、パラレルポート、ゲームポート、又はｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースによって接続することができる。さらに、これらのデバイスを、適当なインターフェース（図示せず）を介してシステムバス１３０に直接に結合することができる。モニタ１０７又は他のタイプのディスプレイデバイスも、ビデオアダプタ１０８などのインターフェースを介してシステムバス１３０に接続される。モニタのほかに、パーソナルコンピュータに、通常は、スピーカ及びプリンタなどの他の周辺出力デバイス（図示せず）が含まれる。好ましい実施形態では、ペンディジタイザ１６５及び付随するペン又はスタイラス１６６が、手書き入力をディジタルにキャプチャするために設けられる。ペンディジタイザ１６５とシリアルポートの直接接続が図示されているが、実際には、当技術分野で知られているように、ペンディジタイザ１６５を、パラレルポート又は他のインターフェース及びシステムバス１３０を介して処理ユニット１１０に直接に結合することができる。さらに、ディジタイザ１６５が、モニタ１０７と別に図示されているが、ディジタイザ１６５の使用可能な入力領域が、モニタ１０７の表示領域と同一の広がりを持つことが好ましい。さらに、ディジタイザ１６５は、モニタ１０７と一体化することができ、あるいは、モニタ１０７の上に置かれるか他の形でモニタ１０７に追加される別々のデバイスとして存在することができる。
【００２４】
コンピュータ１００は、リモートコンピュータ１０９などの１つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ１０９は、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、又は他の一般的なネットワークノードとすることができ、通常は、コンピュータ１００に関して上述した要素の多く又はすべてが含まれるが、図１には、メモリストレージデバイス１１１だけを示した。図１に示された論理接続に、ローカルエリアネットワーク（ＬＡＮ）１１２及び広域ネットワーク（ＷＡＮ）１１３が含まれている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、及びインターネットでありふれたものである。
【００２５】
ＬＡＮネットワーキング環境で使用される時に、コンピュータ１００は、ネットワークインターフェース又はネットワークアダプタ１１４を介してローカルネットワーク１１２に接続される。ＷＡＮネットワーキング環境で使用される時に、パーソナルコンピュータ１００に、通常、インターネットなどの広域ネットワーク１１３を介する通信を確立する、モデム１１５又は他の手段が含まれている。モデム１１５は、内蔵又は外付けとすることができるが、シリアルポートインターフェース１０６を介してシステムバス１３０に接続されている。ネットワーク化された環境では、パーソナルコンピュータ１００に関して図示したプログラムモジュール又はその一部を、リモートメモリストレージデバイスにストアすることができる。
【００２６】
図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の技術を使用できる。ＴＣＰ／ＩＰ、イーサネット（登録商標）、ＦＴＰ、ＨＴＴＰ、Ｂｌｕｅｔｏｏｔｈ、ＩＥＥＥ  ８０２．１１ｘ、及び類似物などのさまざまな周知のプロトコルのいずれかの存在が、仮定され、このシステムは、クライアント−サーバ構成で動作して、ユーザがウェブベースサーバからウェブページを取り出すことを可能にする。さまざまな普通のウェブブラウザを使用して、ウェブページのデータを表示し、操作することができる。
【００２７】
＜イメージキャプチャペン＞
本発明の実施態様に、エンコードされたデータストリームを、エンコードされたデータストリームを表す表示形式にすることが含まれている（例えば、図４Ｂについて説明するように、エンコードされたデータストリームを使用して、グラフィカルパターンを作成する）。表示形式は、印刷された紙（又は他の物理媒体）とするか、エンコードされたデータストリームを別のイメージ又はイメージのセットと共に投影するディスプレイとすることができる。たとえば、エンコードされたデータストリームは、紙の上の物理的なグラフィカルイメージ又は表示されるイメージにオーバーレイされるグラフィカルイメージ（例えば、文書のテキストを表す）とするか、ディスプレイスクリーン上の物理的（変更不能）グラフィカルイメージとすることができる（したがって、ペンによってキャプチャされたイメージ部分を、ディスプレイスクリーン上で突き止めることができる）。
【００２８】
キャプチャされたイメージの位置のこの判定を使用して、紙、媒体、又はディスプレイスクリーンとのユーザの相互作用の位置を判定することができる。本発明のいくつかの実施態様で、ペンを、紙に書き込むインクペンとすることができる。他の実施態様で、ペンを、ユーザがコンピュータディスプレイの表面で書くのに用いられるスタイラスとすることができる。すべての相互作用を、文書上のエンコードされたイメージの知識を有するシステムかコンピュータスクリーンに表示される文書をサポートするシステムに供給することができる。ペン又はスタイラスが文書をトラバースする時にペン又はスタイラス内のカメラを用いてイメージを繰り返してキャプチャすることによって、システムは、ユーザによって制御可能なスタイラスの移動を追跡することができる。表示されるイメージ又は印刷されたイメージを、空白の紙又はコンテンツの豊かな紙に関連するウォーターマーク（ｗａｔｅｒｍａｒｋ）とすることができ、あるいは、スクリーンにオーバーレイされるかスクリーンに作り込まれる表示されるイメージ又は固定コーディングに関連するウォーターマークとすることができる。
【００２９】
図２Ａ及び図２Ｂは、本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図である。カメラ２０３を有するペン２０１を例示的に示している。ペン２０１に、インク溜めを含んでも含まなくてもよいペン先２０２が含まれる。カメラ２０３は、表面２０７からのイメージ２０４をキャプチャする。ペン２０１には、さらに、破線の箱２０６で表される追加のセンサ及び／又はプロセッサを含めることができる。これらのセンサ及び／又はプロセッサ２０６に、他ののペン２０１及び／又はパーソナルコンピュータに情報を送信する能力（例えば、Ｂｌｕｅｔｏｏｔｈ又は他の無線プロトコルを介して）を含めることもできる。
【００３０】
図２Ｂは、カメラ２０３によって見られるイメージを表わしている。１つの例示的な例では、カメラ２０３の視野（すなわち、カメラのイメージセンサの解像度）が、３２×３２ピクセルである（Ｎ＝３２である）。この実施形態では、キャプチャされるイメージ（３２ピクセル×３２ピクセル）が、カメラ２０３によってキャプチャされる表面平面の約５ｍｍ×５ｍｍの区域に対応する。したがって、図２Ｂには、長さ３２ピクセル×幅３２ピクセルの視野が示されている。Ｎのサイズは、調整可能であり、より大きいＮは、より高いイメージ解像度に対応する。また、カメラ２０３の視野が、例示のためにこの図２Ｂでは正方形として示されているが、当技術分野で知られているように、視野に他の形状を含めることができる。
【００３１】
カメラ２０３によってキャプチャされるイメージは、イメージフレームの列｛Ｉi｝として定義することができ、このＩiは、ペン２０１によって、サンプリング時刻ｔiにキャプチャされる。サンプリングレートは、システムコンフィギュレーション及び性能要件に応じて、これより小さく又はこれより大きくすることができる。キャプチャされるイメージフレームのサイズは、システムコンフィギュレーション及び性能要件に応じて、これより小さく又はこれより大きくすることができる。
【００３２】
カメラ２０３によってキャプチャされるイメージは、処理システムによって直接に使用することができ、あるいは、事前フィルタリングを受けることができる。この事前フィルタリングは、ペン２０１内で行うことができ、あるいは、ペン２０１の外部（例えば、パーソナルコンピュータ内）で行うことができる。
【００３３】
図２Ｂのイメージサイズは、３２×３２ピクセルである。各コーディングユニットサイズが３×３ピクセルである場合に、キャプチャされるエンコードされたユニットの数は、約１００ユニットになる。エンコーディングユニットサイズが５×５ピクセルの場合には、キャプチャされるエンコードされたユニットの数は、約３６になる。
【００３４】
図２Ａには、位置２０４からのパターンのイメージ２１０が形成される像平面２０９も示されている。物体平面２０７のパターンから受け取られる光が、レンズ２０８によって集光される。レンズ２０８は、単一のレンズ又は複数部分のレンズ系とすることができるが、ここでは、図を単純にするために単一レンズとして表されている。イメージキャプチャセンサ２１１が、イメージ２１０をキャプチャする。
【００３５】
イメージセンサ２１１は、イメージ２１０をキャプチャするのに十分な大きさとすることができる。その代わりに、イメージセンサ２１１を、位置２１２でペン先２０２のイメージをキャプチャするのに十分な大きさとすることができる。参照のため、位置２１２でのイメージを、仮想ペン先と呼ぶ。イメージセンサ２１１に関する仮想ペン先位置は、ペン先、レンズ２０８、及びイメージセンサ２１１の間の一定の関係を有して固定されている。
【００３６】
次の変換ＦS→Pによって、カメラによってキャプチャされたイメージ内の位置座標が、紙の上の実際のイメージの位置座標に変換される。
【００３７】
Ｌpaper＝ＦS→P（ＬSensor）
【００３８】
書込中に、ペン先と紙は、同一平面にある。したがって、仮想ペン先から実際のペン先への変換も、ＦS→Pになる。
【００３９】
Ｌpentip＝ＦS→P（Ｌvirtual-pentip）
【００４０】
変換ＦS→Pを、アフィン変換として推定することができる。これは、ＦS→Pの推定値として、
【００４１】
【数１】
2006073011.tif 000003
【００４２】
として単純化される。ここで、θx、θy、ｓx、及びｓyは、位置２０４でキャプチャされるパターンの２つの方位の回転及びスケールである。さらに、キャプチャされたイメージを紙の上の対応する実際のイメージと突き合わせることによって、Ｆ’S→Pをリファイン（ｒｅｆｉｎｅ；改善する）することができる。「リファイン」とは、再帰法と称するタイプの最適化アルゴリズムによって、変換ＦS→Pのより正確な推定値を得ることを意味する。再帰法では、行列Ｆ’S→Pを初期値として扱う。リファインされた推定によって、ＳとＰの間の変換がより正確に記述される。
【００４３】
次に、較正によって仮想ペン先の位置を判定することができる。  
ペン先２０２を、紙の上の固定位置Ｌpentipに置く。次に、ペンを傾け、カメラ２０３が異なるペン姿勢で一連のイメージをキャプチャできるようにする。キャプチャされるイメージごとに、変換ＦS→Pを得ることができる。この変換から、仮想ペン先の位置Ｌvirtual-pentipを得ることができる。
【００４４】
Ｌvirtual-pentip＝ＦP→S（Ｌpentip）  
【００４５】
ここで、Ｌpentipは、（０，０）として初期化され、  
【００４６】
ＦP→S＝（ＦS→P）-1
【００４７】
である。
【００４８】
各イメージから得られたＬvirtual-pentipの平均をとることによって、仮想ペン先の位置Ｌvirtual-pentipを判定することができる。Ｌvirtual-pentipを用いて、Ｌpentipのより正確な推定値を得ることができる。数回の反復の後に、仮想ペン先の正確な位置Ｌvirtual-pentipを判定することができる。
【００４９】
ここで、仮想ペン先の位置Ｌvirtual-pentipがわかっている。キャプチャされたイメージから、変換ＦS→Pも得ることができる。最後に、この情報を使用して、実際のペン先の位置Ｌpentipを判定することができる。
【００５０】
Ｌpentip＝ＦS→P（Ｌvirtual-pentip）
【００５１】
＜配列のエンコード＞
１次元列を折り畳むことによって、２次元配列を構築することができる。十分に多数のビットを含む２次元配列の一部を使用して、完全な２次元配列でのその位置を判定することができる。しかし、１つ又は少数のキャプチャされたイメージから位置を判定する必要がある場合がある。キャプチャされたイメージ部分が２次元配列内の複数の位置に関連する可能性を最小にするために、非反復的な列を使用して、配列を作成することができる。作成される列の特性の１つが、列がある長さ（又はウィンドウ）ｎにわたって繰り返されないことである。次に、１次元列の作成と、配列への列の折り畳みを説明する。
【００５２】
＜列構築＞
エンコーディングシステムの出発点として、数列を使用することができる。たとえば、列（ｍ−列とも称する）を、体Ｆqのｑ個の要素の集合として表すことができる。ここで、ｑ＝ｐnであり、ｎ≧１、ｐは素数である。列又はｍ−列は、多項式除算を含むがこれに制限されないさまざまな異なる技法によって生成することができる。多項式除算を使用して、列を次のように定義することができる。
【００５３】
【数２】
2006073011.tif 000004
【００５４】
ここで、Ｐn（ｘ）は、体Ｆq［ｘ］（ｑn個の要素を有する）の次数ｎの原始多項式である。Ｒl（ｘ）は、体Ｆq［ｘ］の次数１（１＜ｎ）の非０多項式である。列は、２ステップすなわち、第１に２つの多項式の除算（体Ｆqの要素がもたらされる）、第２に剰余にｘをかけることからなる反復手順を使用して作成することができる。この計算は、出力が繰返しを始める時に停止する。この処理は、文献に記載のように、線形フィードバックシフトレジスタを使用して実施することができる（例えば、非特許文献１参照）。この環境で、列の循環シフトと多項式Ｒl（ｘ）の間の関係が確立され、Ｒl（ｘ）を変更することによって、列が循環シフトされるだけであり、すべての循環シフトが、多項式Ｒl（ｘ）に対応する。結果の列の特性の１つは、列が、ｑn−１の周期を有し、１周期内で、幅（又は長さ）ｎにわたって、すべての部分が、列の中に１回だけ存在することである。これを、「ウィンドウプロパティ（ｗｉｎｄｏｗ  ｐｒｏｐｅｒｔｙ）」と称する。周期ｑn−１を、列の長さとも称し、ｎを列の次数とも称する。
【００５５】
上述した処理は、ウィンドウプロパティを有する列の作成に使用できるさまざまな処理の１つにすぎない。
【００５６】
＜配列構築＞
イメージ（その一部をカメラによってキャプチャすることができる）の作成に使用できる配列（又はｍ−配列）は、１次元の列又はｍ−列の拡張である。Ａが、周期（ｍ1，ｍ2）の配列である、すなわち、Ａ（ｋ＋ｍ1，ｌ）＝Ａ（ｋ，ｌ＋ｍ2）＝Ａ（ｋ，ｌ）であるものとする。ｎ1×ｎ2ウィンドウが、Ａの期間の中でシフトされる時に、体Ｆqのすべての非０のｎ1×ｎ2行列が、１回だけ現れる。この特性を、各ウィンドウが一意であると言う点で、「ウィンドウプロパティ」とも称する。ウィンドウを、周期（ｍ1，ｍ2）（ｍ1及びｍ2は、配列内に存在するビットの水平の個数及び垂直の個数である）及び次数（ｎ1，ｎ2）の配列として表すことができる。
【００５７】
２進配列（又はｍ−配列）は、この列を折り畳むことによって構築することができる。１つの手法が、列を入手し、配列の長さがＬ＝ｍ1×ｍ2＝２n−１である場合に、ｍ1×ｍ2のサイズに折り畳むことである。代替案では、所定のサイズの含めたい空間（たとえば１枚の紙、３０枚の紙、又はコンピュータモニタのサイズ）から始め、区域（ｍ1×ｍ2）を判定し、そのサイズを使用して、Ｌ≧ｍ1×ｍ2（ただしＬ＝２n−１）にすることである。
【００５８】
図３Ａ乃至図３Ｆは、本発明の実施形態に係るさまざまなシーケンス及び折り畳み方法（ｆｏｌｄｉｎｇ  ｔｅｃｈｎｉｑｕｅ）を示す図で、さまざまな異なる折り畳み方法を使用することができる。例えば、図３Ａから図３Ｃに、３つの異なる列を示す。これらのそれぞれを、図３Ｄに示された配列に折り畳むことができる。３つの異なる折り畳み方法は、図３Ｄでオーバーレイとして示され、図３Ｅ及び図３Ｆでラスタパスとして示されている。ここでは、図３Ｄに示された折り畳み方法を使用する。
【００５９】
図３Ｄに示された折り畳み方法を作成するために、長さＬ、次数ｎの列｛ａi｝を作成する。次に、サイズｍ1×ｍ2の配列｛ｂkl｝（ただし、ｇｃｄ（ｍ1，ｍ2）＝１かつＬ＝ｍ1×ｍ2）を、配列の各ビットを
ｂkl＝ａi、ただしｋ＝ｉ  ｍｏｄ（ｍ1）、ｌ＝ｉ  ｍｏｄ（ｍ2）、ｉ＝０，…，Ｌ−１．    （１）
によって計算することによって、列｛ａi｝から作成する。
【００６０】
この折り畳み方法は、その代わりに、配列の対角線に列を置き、端に達した時に反対の端から継続すること、と表すことができる。
【００６１】
図４Ａ乃至図４Ｅは、本発明の実施形態に係るさまざまなエンコーディングシステムを示す図である。図４Ａに、図３Ｄの配列をエンコードするのに使用できるサンプルのエンコード技術を示す。他のエンコード技術を使用できることを諒解されたい。たとえば、代替のコーディング技術を、図１１に示す。
【００６２】
図４Ａを参照すると、第１ビット４０１（たとえば「１」）が、暗いインクの列によって表される。第２ビット４０２（たとえば「０」）が、暗いインクの行によって表される。任意の色のインクを使用して、さまざまなビットを表すことができる。選択されるインクの色における唯一の要件は、イメージキャプチャシステムによって区別可能になるように、媒体の背景に対してかなりのコントラストをもたらすことである。図４Ａのビットは、セルの３×３行列によって表される。行列のサイズは、イメージキャプチャシステムのサイズ及び解像度に基づく任意のサイズに変更することができる。ビット０及び１の代替表現を、図４Ｃ乃至図４Ｅに示す。図４Ａ乃至図４Ｅのサンプルエンコーディングの１又は０の表現を、影響なしに切り替えられることを諒解されたい。図４Ｃに、インターリーブ配置で２つの行又は列を占めるビット表現を示す。図４Ｄに、破線の形で行又は列を占めるピクセルの代替配置を示す。最後に、図４Ｅに、不規則な間隔フォーマット（例えば、２つの暗いドットと１つの空白ドット）で行及び列を占めるピクセル表現を示す。
【００６３】
図４Ａに戻ると、あるビットが、３×３行列によって表され、イメージングシステムが、３×３領域内で１つの暗い行と２つの白い行を検出する場合に、０（又は１）が検出される。１つの暗い列と２つの白い列を有するイメージが検出される場合に、１（又は０）が検出される。
【００６４】
ここでは、複数のピクセル又はドットが、１つのビットを表すのに使用される。単一のピクセル（又はビット）を使用して１つのビットを表すことは、脆弱である。ほこり、紙の折れ目、平らでない表面などによって、データ単位の単一ビット表現の読み取りが難しくなる。しかし、異なる手法を使用して、表面で配列をグラフィカルに表現できる。いくつかの手法を、図４Ｃから４Ｅに示す。他の手法も使用できることを諒解されたい。空間的にシフトされたドットだけを使用する手法を、図１１に示す。
【００６５】
ビットストリームを使用して、図４Ｂのグラフィカルパターン４０３を作成する。グラフィカルパターン４０３には、１２個の行と１８個の列が含まれる。行及び列は、ビット表現４０１及び４０２を使用してグラフィカル表現に変換されたビットストリームによって形成される。図４Ｂは、次のビット表現を有するものと見ることができる。
【００６６】
【数３】
2006073011.tif 000005
【００６７】
＜デコード＞
ある人が、図２Ａのペンを用いて書くか、エンコードされたパターンの近くにペンを移動する時に、カメラが、イメージをキャプチャする。例えば、ペン２０１が、紙に押し付けられる時及び紙の上の文書をトラバースする時に、圧力センサを使用することができる。そのイメージを処理して、エンコードされたイメージの完全な表現に関するキャプチャされたイメージの方位を判定し、キャプチャされたイメージを構成するビットを抽出する。
【００６８】
図５Ａ乃至図５Ｄは、図４Ａ及び図４Ｂによるエンコーディングシステムに関連する４つの可能な結果の角（ｃｏｒｎｅｒ）を示す図である。キャプチャされたイメージの、エンコードされた領域全体に関する方位を判定するために、図５Ａ乃至図５Ｄに示された４つの知覚可能な角のすべてがグラフィカルパターン４０３に存在することができないことがわかる。実際に、正しい方位であれば、図５Ａに示されたタイプの角は、グラフィカルパターン４０３に存在し得ない。したがって、図５Ａに示されたタイプの角がない方位が、正しい方位である。
【００６９】
図６は、本発明の実施形態による、キャプチャされたイメージ部分の回転を示す図である。カメラ６０１によってキャプチャされたイメージを分析し、その方位を判定して、イメージ６０１によって実際に表される位置に関して解釈可能にすることができる。まず、イメージ６０１を再検討して、ピクセルが水平及び垂直に整列するようにイメージを回転するのに必要な角度θを判定する。水平及び垂直以外の配置への基礎になるグリッドの回転（例えば、４５°）を含む代替のグリッド配置が可能である。ユーザは、まず垂直パターン及び水平パターンに気付く傾向がある場合があるので、水平及び垂直以外の配置の使用は、視覚的にユーザの注意をそらすものを除去するという可能な利益を提供することができる。説明を単純にするために、グリッドの方位（基礎になるグリッドの水平、垂直、及び他の回転）を、集合的に事前定義のグリッド方位と称する。
【００７０】
次に、イメージ６０１を分析して、どの角が欠けているかを判定する。イメージ６０１を、デコードの準備ができたイメージ６０３に回転するのに必要な回転量ｏは、ｏ＝（θ＋回転量｛どの角が欠けているかによって定義される｝）として示される。回転量は、図７の式によって示される。図６に戻ると、角度θは、まず、ピクセルの水平及び垂直（又は他の事前定義のグリッド方位）配置に達するピクセルのレイアウトによって決定され、イメージが、６０２に示されているように回転される。次に、分析を行って、欠けている角を判定し、イメージ６０２をイメージ６０３に回転して、デコードのためにイメージをセットアップする。ここで、イメージは、反時計回りに９０°回転され、その結果、イメージ６０３が、正しい方位を有するようになり、デコードに使用できるようになる。
【００７１】
回転角度θを、欠けている角を考慮するためにイメージ６０１を回転する前又は後に適用できる。また、キャプチャされたイメージのノイズを考慮することによって、４つのすべてのタイプの角が存在し得る。各タイプの角の数を数え、最も少ない数を有するタイプを、欠けている角のタイプとして選択することができる。
【００７２】
最後に、イメージ６０３内のコードを読み出し、イメージ４０３の作成に使用された最初のビットストリームと相関させる。この相関は、複数の形で実行することができる。例えば、この相関は、回復されたビットストリームを、最初のビットストリーム内の他のすべてのビットストリームフラグメントと比較する、再帰的手法によって実行することができる。第２に、回復されたビットストリームと最初のビットストリームの間で、例えば、２つのビットストリームの間のハミング距離を使用することによって、統計分析を実行することができる。さまざまな手法を使用して、元のビットストリーム内の回復されたビットストリームの位置を判定できる。
【００７３】
以下に説明するように、迷路パターン分析は、回復されたビットをイメージ６０３から得る。回復されたビットを得たならば、最初の配列でキャプチャされたイメージの位置を突き止める必要がある（例えば、図４Ｂに示されたもの）。配列全体の中でのビットのセグメントの位置を判定する処理は、複数の項目によって複雑になる。第１に、キャプチャされた実際のビットが、隠されている場合がある（例えば、カメラが、元のコードを隠す手書きのあるイメージをキャプチャする場合がある）。第２に、ごみ、折れ目、反射などによって、キャプチャされるイメージのエラーが作られる場合もある。これらのエラーによって、位置突き止め処理が難しくなる。これに関して、イメージキャプチャシステムが、イメージから抽出される非シーケンシャルビットを用いて機能する必要がある場合がある。次は、イメージからの非シーケンシャルビットを用いて動作する方法を表す。
【００７４】
列（又はｍ−列）Ｉが、べき級数Ｉ（ｘ）＝１／Ｐn（ｘ）に対応し、ｎが、ｍ−列の次数であり、キャプチャされたイメージに、ＩのＫ個のビットｂ＝（ｂ0  ｂ1  ｂ2  …  ｂK-1）tが含まれ、Ｋ≧ｎであり、添字ｔが、行列又はベクトルの転置を表すものとする。Ｋ個のビットの位置ｓは、ｂ0が列の先頭にシフトされるようにする、Ｉの循環シフトの回数である。そのときに、このシフトされた列Ｒは、べき級数ｘs／Ｐn（ｘ）、又はＲ＝Ｔs（Ｉ）に対応し、Ｔは、循環シフト演算子である。このｓは、間接的に見つかる。Ｐn（ｘ）を法とする多項式は、体を形成する。ｘs≡ｒ0＋ｒ1ｘ＋…ｒn-1ｘn-1  ｍｏｄ（Ｐn（ｘ））であることが保証される。したがって、（ｒ0，ｒ1，…，ｒn-1）を見つけることができ、ｓの解を見つけることができる。
【００７５】
関係ｘs≡ｒ0＋ｒ1ｘ＋…ｒn-1ｘn-1  ｍｏｄ（Ｐn（ｘ））は、Ｒ＝ｒ0＋ｒ1Ｔ（Ｉ）＋…＋ｒn-1Ｔn-1（Ｉ）であることを意味する。これを２進一次方程式で書くと、
Ｒ＝ｒtＡ    （２）
になる。ここで、ｒ＝（ｒ0  ｒ1  ｒ2  …  ｒn-1）tであり、Ａ＝（Ｉ  Ｔ（Ｉ）  …  Ｔn-1（Ｉ））tであり、これは０シフトから（ｎ−１）シフトまでのＩの循環シフトからなる。ｒを解くために、疎なＫビットだけが、Ｒで使用可能である。Ｒのｂ1とｂ0のインデックスの差が、ｋi（ｉ＝１，２，…，ｋ−１）であるものとすると、Ｒの１番目と（ｋi＋１）番目（ｉ＝１，２，…，ｋ−１）の要素は、正確にｂ0，ｂ1，…，ｂk-1である。Ａの１番目と（ｋi＋１）番目（ｉ＝１，２，…，ｋ−１）の列を選択することによって、次の２進一次方程式が形成される。
【００７６】
ｂt＝ｒtＭ    （３）
【００７７】
ここで、Ｍは、Ａのｎ×Ｋ部分行列である。
【００７８】
ｂにエラーがない場合には、ｒの解を
【００７９】
【数４】
2006073011.tif 000006
【００８０】
と表すことができる。ここで
【００８１】
【数５】
2006073011.tif 000007
【００８２】
は、Ｍの非縮退ｎ×ｎ部分行列であり、
【００８３】
【数６】
2006073011.tif 000008
【００８４】
は、ｂの対応する部分ベクトルである。
【００８５】
ｒがわかっていれば、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ−Ｓｉｌｖｅｒアルゴリズム（非特許文献１参照）を使用して、ｘs≡ｒ0＋ｒ1ｘ＋…ｒn-1ｘn-1  ｍｏｄ（Ｐn（ｘ））になるｓを見つけることができる。
【００８６】
行列Ａ（ｎ×Ｌのサイズであり、Ｌ＝２n−１）が巨大になる場合があるので、行列Ａ全体を保管することは避けなければならない。実際に、上の処理で見たように、インデックス差ｋiを有する抽出されたビットを与えられて、Ａの１番目及び（ｋi＋１）番目の列だけが、計算に関係する。そのようなｋiの選択は、キャプチャされたイメージのサイズに対して非常に限られている。したがって、計算に使用される列だけを保存する必要がある。そのような列の総数は、Ｌよりはるかに小さい（Ｌ＝２n−１がｍ−列の長さである場合に）。
【００８７】
＜エラー訂正＞
ｂにエラーが存在する場合に、ｒの解決が複雑になる。エラー訂正を伴うデコードの従来の方法は、簡単に適用できない可能性がある。というのは、キャプチャされたビットに関連する行列Ｍが、キャプチャされたイメージごとに異なる可能性があるからである。
【００８８】
本発明では、統計学的な手法を使用する。ｂのエラービットの数ｎeが、Ｋと比較して相対的に小さいと仮定すると、ｂ及び対応する、縮退でないＭの部分行列
【００８９】
【数７】
2006073011.tif 000009
【００９０】
のＫ個のビットから正しいｎ個のビットが選ばれる確率は高い。
【００９１】
選択されたｎ個のビットがすべて正しい時に、ｂtとｒtＭの間のハミング距離又はｒに関連するエラービットの数は、最小限にならなければならず、ｒは、式（４）を介して計算される。この処理を複数回繰り返すことによって、最小限のエラービットをもたらす正しいｒを識別できる可能性が高い。
【００９２】
最小個数のエラービットに関連する１つのｒだけがある場合には、それが正しい解とみなされる。そうではなく、最小個数のエラービットに関連する複数のｒがある場合には、ｎeが、Ｍによって生成されるコードのエラー訂正能力を超える可能性が高く、デコード処理は失敗する。システムは、次にキャプチャされたイメージの処理に進むことができる。もう１つの実施形態では、ペンの前の位置に関する情報を考慮に入れることができる。すなわち、キャプチャされたイメージのそれぞれについて、次に、ペンがあると期待できる宛先領域を識別することができる。例えば、ユーザが、カメラによってキャプチャされる２つのイメージの間でペンを持ち上げなかった場合に、第２のイメージキャプチャによって判定されるペンの位置は、第１の位置から遠すぎてはならない。最小個数のエラービットに関連する各ｒを検査して、ｒから計算される位置ｓが、ローカル制約、すなわち、位置が指定された宛先領域内であるかどうかを満足するかどうかを調べることができる。
【００９３】
位置ｓがローカル制約を満足する場合に、配列内の抽出されたビットのＸ，Ｙ位置が返される。そうでない場合にデコード処理は失敗する。
【００９４】
図８は、本発明の実施形態に係るキャプチャされた配列の位置を判定する処理を示す図である。キャプチャされたイメージの列（又はｍ−列）内の位置を判定するのに使用できる処理を示す。まず、ステップ８０１で、キャプチャされたイメージに関するデータストリームを受け取る。ステップ８０２で、対応する列をＡから抽出し、行列Ｍを構築する。
【００９５】
ステップ８０３で、ｎ個の独立の列ベクトルを、行列Ｍからランダムに選択し、式（４）を解くことによってベクトルｒを判定する。この処理を、ステップ８０４でＱ回（たとえば１００回）繰り返す。ループ回数の判定は、セクション「ループ回数の計算」で説明する。
【００９６】
ステップ８０５で、ｒを、それに関連するエラービットの個数に従ってソートする。ソートは、当技術分野で既知のさまざまなソーティングアルゴリズムを使用して行うことができる。たとえば、選択ソートアルゴリズムを使用することができる。選択ソートアルゴリズムは、数Ｑが多くない時に有益である。しかし、Ｑが多い場合には、多数の項目をより効率的に処理できる他のソーティングアルゴリズム（たとえばマージソート）を使用することができる。
【００９７】
システムは、ステップ８０６で、複数のｒが最小個数のエラービットに関連するかどうかを検査することによって、エラー訂正が成功裡に実行されたかどうかを判定する。そうである場合に、ステップ８０９でエラーを返し、デコード処理が失敗したことを示す。そうでない場合には、ステップ８０７で、例えば、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ−Ｓｉｌｖｅｒアルゴリズムを使用することによって、列（又はｍ−列）の抽出されたビットの位置ｓを計算する。
【００９８】
次に、ステップ８０８で、配列内の（Ｘ，Ｙ）位置を、ｘ＝ｓ  ｍｏｄ  ｍ1及びｙ＝ｓ  ｍｏｄ  ｍ2として計算し、その結果を返す。
【００９９】
＜位置判定＞
図９は、本発明の実施形態に係るキャプチャされたイメージの位置を判定する方法を示す図である。ペン先の位置を判定する処理を示す。入力は、カメラによってキャプチャされたイメージであり、出力は、ペン先の位置座標とすることができる。また、出力に、キャプチャされたイメージの回転角度などの他の情報を含めることができる（含めないこともできる）。
【０１００】
ステップ９０１で、カメラからイメージを受け取る。次に、ステップ９０２で、任意選択として（ステップ９０２の破線の輪郭によって示されるように）、受け取ったイメージを前処理して、明るいピクセルと暗いピクセルの間のコントラストの調節などを行うことができる。
【０１０１】
次に、ステップ９０３で、イメージを分析して、その中のビットストリームを判定する。
【０１０２】
次に、ステップ９０４で、ビットストリームからｎ個のビットをランダムに複数回選択し、元の列（又はｍ−列）内の受け取ったビットストリームの位置を判定する。
【０１０３】
最後に、キャプチャされたイメージの位置をステップ９０４で判定したならば、ステップ９０５で、ペン先の位置を判定することができる。
【０１０４】
図１０は、本発明の実施形態に係るキャプチャされたイメージの位置を判定するもう１つの方法を示す図である。ステップ９０３及び９０４に関するさらなる詳細を示し、キャプチャされたイメージ内のビットストリームを抽出する手法を示す。まず、ステップ１００１で、カメラからイメージを受け取る。次に、ステップ１００２で、任意選択として（ステップ１００２の破線によって示されるように）、イメージにイメージ前処理を行うことができる。ステップ１００３で、パターンを抽出する。ここで、さまざまな線のピクセルを抽出して、パターンの方位及び角度θを見つけることができる。
【０１０５】
次に、ステップ１００４で受け取ったイメージを分析して、基礎になるグリッド線を判定する。ステップ１００５で、グリッド線が見つかる場合に、ステップ１００６でパターンからコードを抽出する。その後、ステップ１００７でコードをデコードし、ステップ１００８でペン先の位置を判定する。ステップ１００５でグリッド線が見つからなかった場合には、ステップ１００９でエラーを返す。
【０１０６】
＜拡張デコードエラー訂正アルゴリズムの概要＞
図１２は、本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのデコードをフローチャートに示す図である。図１２に示された本発明の実施形態を用いると、キャプチャされたイメージ（キャプチャされた配列に対応する）から抽出されたビット１２０１及び宛先領域を与えられて、ｍ−配列デコードエラー訂正処理の変形形態が、Ｘ，Ｙ位置をデコードする。図１２に、この機能強化された手法の処理１２００の流れ図を示す。処理１２００に、２つのコンポーネント１２５１及び１２５３が含まれている。
【０１０７】
・１回デコード。コンポーネント１２５１に、次の３つの部分が含まれる。
【０１０８】
＞ランダムビット選択：抽出されたビット１２０１の部分集合をランダムに選択する（ステップ１２０３）。
【０１０９】
＞部分集合をデコードする（ステップ１２０５）。
【０１１０】
＞ローカル制約を用いてＸ，Ｙ位置を判定する（ステップ１２０９）。
【０１１１】
・スマートビット選択を用いるデコード。コンポーネント１２５３に、次の４つの部分が含まれる。
【０１１２】
＞スマートビット選択：抽出されたビットの別の部分集合を選択する（ステップ１２１７）。
【０１１３】
＞部分集合をデコードする（ステップ１２１９）。
【０１１４】
＞ステップ１２１７及びステップ１２１９の反復の回数（ループ回数）を調整する（ステップ１２２１）。
【０１１５】
＞ローカル制約を用いてＸ，Ｙ位置を判定する（ステップ１２２５）。
【０１１６】
本発明の実施形態は、ビットを選択する慎重な戦略を使用し、ループ反復の回数を調整し、処理１２００に供給されるローカル制約に従ってＸ，Ｙ位置（位置座標）を判定する。コンポーネント１２５１及び１２５３の両方を用いて、ステップ１２０５及び１２１９（「１回デコード」）は、式（４）を使用してｒを計算する。
【０１１７】
式
【０１１８】
【数８】
2006073011.tif 000010
【０１１９】
が、デコードされたビットである、すなわち
【０１２０】
【数９】
2006073011.tif 000011
【０１２１】
であるものとする。ｂと
【０１２２】
【数１０】
2006073011.tif 000012
【０１２３】
の間の差が、ｒに関連するエラービットである。
【０１２４】
図１２には、上述したような本発明の実施形態に係るキャプチャされたイメージから抽出されたビット１２０１のデコードの処理１２００のフローチャートを示す。処理１２００に、コンポーネント１２５１及び１２５３が含まれる。コンポーネント１２５１は、キャプチャされたイメージ（キャプチャされた配列に対応する）に関連する抽出されたビット１２０１（Ｋビットを含む）を入手する。ステップ１２０３で、ｎビット（ｎは、ｍ−配列の次数である）を、抽出されたビット１２０１からランダムに選択する。ステップ１２０５で、処理１２００は、１回デコードしてｒを計算する。ステップ１２０７で、処理１２００は、エラービットがｂについて検出されたかどうかを判定する。ステップ１２０７で、エラービットがないと判定される場合に、ステップ１２０９で、キャプチャされた配列の位置のＸ，Ｙ座標を判定する。ステップ１２１１で、もしＸ，Ｙ座標がローカル制約を満足する場合、すなわち、宛先領域内の座標である場合に、処理１２００は、ステップ１２１３でＸ，Ｙ位置を提供する（別の処理又はユーザインターフェースなどに）。そうでない場合に、ステップ１２１５で、失敗表示を提供する。
【０１２５】
ステップ１２０７で、ｂにエラービットが検出された場合に、エラービットと共にデコードするためにコンポーネント１２５３が実行される。ステップ１２１７で、抽出されたビット１２０１からｎビットの別の集合（ステップ１２０３で選択されたｎビットと少なくとも１ビットだけ異なる）を選択する。ステップ１２２１及び１２２３で、抽出されたビットをデコードするのに必要な反復回数（ループ回数）を判定する。ステップ１２２５で、ステップ１２１９で得られた候補のどれがローカル制約を満足するかをテストすることによって、キャプチャされた配列の位置を判定する。ステップ１２１７乃至１２２５を、詳細に説明する。
【０１２６】
＜スマートビット選択＞
ステップ１２０３で、抽出されたビット１２０１（Ｋビットを有する）からｎビットを選択し、ｒ1について解く。式（５）を使用して、デコードされたビットを計算することができる。
【０１２７】
【数１１】
2006073011.tif 000013
【０１２８】
【数１２】
2006073011.tif 000014
【０１２９】
であるものとする。ここで、
【０１３０】
【数１３】
2006073011.tif 000015
【０１３１】
は、
【０１３２】
【数１４】
2006073011.tif 000016
【０１３３】
の第ｋビットであり、Ｂ1＝｛ｂk｜ｋ∈Ｉ1｝、
【０１３４】
【数１５】
2006073011.tif 000017
【０１３５】
である、すなわち、Ｂ1は、デコードされた結果がオリジナルビットと同一であるビットであり、
【０１３６】
【数１６】
2006073011.tif 000018
【０１３７】
は、デコードされた結果がオリジナルビットと異なるビットであり、Ｉ1及び
【０１３８】
【数１７】
2006073011.tif 000019
【０１３９】
は、これらのビットの対応するインデックスである。任意のｎビットがＢ1から選択される時に、同一のｒ1が得られることを諒解されたい。したがって、次のｎビットが注意深く選択されない場合に、選択されたビットが、Ｂ1の部分集合になり、したがって、同一のｒ1が得られる可能性がある。
【０１４０】
そのような状況を回避するために、ステップ１２１７で、次の手順に従って、次のｎビットを選択する。
【０１４１】
１．ビット配置１３５１に対応する図１３に示されているように、
【０１４２】
【数１８】
2006073011.tif 000020
【０１４３】
から少なくとも１ビットを選択し、残りのビットをＢ1  １３０１及び
【０１４４】
【数１９】
2006073011.tif 000021
【０１４５】
１３０３からランダムに選択する。次に、処理１２００が、ｒ2を解き、
【０１４６】
【数２０】
2006073011.tif 000022
【０１４７】
を計算することによって、Ｂ2  １３０５、１３０９及び
【０１４８】
【数２１】
2006073011.tif 000023
【０１４９】
１３０７、１３１１を見つける。
【０１５０】
２．ステップ１を繰り返す。次のｎビットを選択する時に、すべての
【０１５１】
【数２２】
2006073011.tif 000024
【０１５２】
（ｉ＝１，２，３…，ｘ−１、ただし、ｘは現在のループ回数）について、少なくとも１ビットを
【０１５３】
【数２３】
2006073011.tif 000025
【０１５４】
から選択する。この反復は、そのようなビットの部分集合を選択できない時、又はループ回数に達した時に終了する。
【０１５５】
＜ループ回数の計算＞
エラー訂正コンポーネント１２５３を用いて、必要な反復の回数（ループ回数）を、各ループの後に調整する。ループ回数は、期待されるエラーレートによって決定される。選択されたｎビットに正しくないものがあることの期待されるエラーレートｐeは、
【０１５６】
【数２４】
2006073011.tif 000026
【０１５７】
である。ここで、ｌｔは、ループ回数を表し、定数によって初期化され、Ｋは、キャプチャされた配列から抽出されたビット数であり、ｎeは、処理１２００の反復中にこうむるエラービットの最小個数を表し、ｎは、ｍ−配列の次数であり、
【０１５８】
【数２５】
2006073011.tif 000027
【０１５９】
は、ｎビットがＫビットから選択される際の組合せの個数である。
【０１６０】
この実施形態では、ｐeをｅ-s＝０．００６７未満にしたい。（６）と組み合わせると、
【０１６１】
【数２６】
2006073011.tif 000028
【０１６２】
が得られる。ループ回数を調整することによって、エラー訂正に必要な処理１２５３の反復の回数を大幅に減らすことができる。
【０１６３】
＜ローカル制約を用いるＸ，Ｙ位置の判定＞
ステップ１２０９及び１２２５で、デコードされた位置は、宛先領域内でなければならない。宛先領域は、このアルゴリズムへの入力であり、異なる応用例に応じて、さまざまなサイズ及び場所とするか、単にｍ−配列全体とすることができる。通常、これは、応用例によって予測することができる。たとえば、前の位置が判定されている場合に、書込速度を考慮すると、現在のペン先の宛先領域は、前の位置の近くでなければならない。しかし、ペンが持ち上げられた場合には、次の位置はどこにでもすることができる。したがって、この場合に、宛先領域はｍ−配列全体にしなければならない。正しいＸ，Ｙ位置は、次のステップによって判定される。
【０１６４】
ステップ１２２４で、処理１２００は、エラービットの対応する個数が
【０１６５】
【数２７】
2006073011.tif 000029
【０１６６】
未満であるｒiを選択する。ここで、ｌｔは実際のループ回数であり、ｌｒは
【０１６７】
【数２８】
2006073011.tif 000030
【０１６８】
によって計算されるローカル制約レートであり、Ｌは、ｍ−配列の長さである。
【０１６９】
ステップ１２２４で、エラービット数の昇順でｒiをソートする。次に、ステップ１２２５、１２１１、及び１２１２で、対応するＸ，Ｙ位置が宛先領域内にある最初のｒiを見つける。ステップ１２２５、１２１１、及び１２１２は、最終的に、結果としてＸ，Ｙ位置を返す（ステップ１２１３を介して）か、デコード手順が失敗したことの表示を返す（ステップ１２１５を介して）。
【０１７０】
＜拡張デコードエラー訂正処理の例示的な例＞
例示的な例によって、コンポーネント１２５１及び１２５３によって実行される処理１２００を実証する。ｎ＝３、Ｋ＝５であり、Ｉ＝（Ｉ0  Ｉ1  …  Ｉ6）tが、次数ｎ＝３のｍ−列であると仮定する。この場合に、
【０１７１】
【数２９】
2006073011.tif 000031
【０１７２】
である。また、抽出されたビットｂ＝（ｂ0  ｂ1  ｂ2  ｂ3  ｂ4）tは、Ｋ＝５の場合に、実際にはｍ−列の第ｓ、第（ｓ＋１）、第（ｓ＋３）、第（ｓ＋４）、及び第（ｓ＋６）ビットである（これらの数は、実際にはｍ−配列長Ｌ＝２n−１＝２3−１＝７の実際の剰余である）。したがって、
【０１７３】
【数３０】
2006073011.tif 000032
【０１７４】
であり、これは、Ａの第０列、第１列、第３列、第４列、及び第６列からなる。数ｓは、ｍ−配列内のｂ0のＸ，Ｙ位置を一意に判定するが、ｂt＝ｒtＭを満足すると期待されるｒ＝（ｒ0  ｒ1  ｒ2）tを解いた後に計算することができる。ｂの可能なエラービットに起因して、ｂt＝ｒtＭが完全に満足されない場合がある。
【０１７５】
処理１２００では、次の手順を使用する。ｂから、ｎ＝３ビット、例えば、
【０１７６】
【数３１】
2006073011.tif 000033
【０１７７】
をランダムに選択する。ｒ1について解く。
【０１７８】
【数３２】
2006073011.tif 000034
【０１７９】
ここで、
【０１８０】
【数３３】
2006073011.tif 000035
【０１８１】
は、Ｍの第０列、第１列、及び第２列からなる（
【０１８２】
【数３４】
2006073011.tif 000036
【０１８３】
が、ｎ×ｎ行列であり、
【０１８４】
【数３５】
2006073011.tif 000037
【０１８５】
が、ｌ×ｎベクトルであり、その結果、
【０１８６】
【数３６】
2006073011.tif 000038
【０１８７】
が、選択されたビットのｌ×ｎベクトルであることに留意されたい）。
【０１８８】
次に、デコードされたビットを計算する。
【０１８９】
【数３７】
2006073011.tif 000039
【０１９０】
ここで、Ｍは、ｎ×Ｋ行列であり、
【０１９１】
【数３８】
2006073011.tif 000040
【０１９２】
は、ｌ×ｎベクトルであり、その結果、
【０１９３】
【数３９】
2006073011.tif 000041
【０１９４】
はｌ×Ｋベクトルである。
【０１９５】
【数４０】
2006073011.tif 000042
【０１９６】
が、ｂと同一である、すなわち、エラービットが検出されない場合に、ステップ１２０９で、Ｘ，Ｙ位置が決定され、ステップ１２１１で、デコードされた位置が宛先領域内にあるかどうかが判定される。そうである場合に、デコードは成功であり、ステップ１２１３が実行される。そうでない場合には、ステップ１２１５によって示されるように、デコードが失敗する。
【０１９７】
【数４１】
2006073011.tif 000043
【０１９８】
がｂと異なる場合に、ｂのエラービットが検出され、コンポーネント１２５３が実行される。ステップ１２１７で、集合Ｂ1、たとえば｛ｂ0  ｂ1  ｂ2  ｂ3｝を判定するが、ここで、デコードされたビットは、オリジナルビットと同一である。したがって、
【０１９９】
【数４２】
2006073011.tif 000044
【０２００】
である（図１３のビット配置１３５１に対応する）。ループ回数（ｌｔ）が、定数、例えば、１００に初期化されるが、これは、応用例に応じて可変とすることができる。ｒ1に対応するエラービット数が１と等しいことに留意されたい。次に、ステップ１２２１で、式（７）、ｌｔ1＝ｍｉｎ（ｌｔ，１３）＝１３に従ってループ回数（ｌｔ）を更新する。
【０２０１】
次に、ステップ１２１７で、ｂから別のｎ＝３ビットを選択する。このビットのすべてがＢ1、例えば、｛ｂ0  ｂ2  ｂ3｝に属する場合に、ステップ１２１９で、ｒ1をもう一度判定する。そのような繰り返しを避けるために、ステップ１２１７で、例えば、
【０２０２】
【数４３】
2006073011.tif 000045
【０２０３】
から１ビット｛ｂ4｝を選択し、残りの２ビット｛ｂ0  ｂ1｝をＢ1から選択することができる。
【０２０４】
選択された３ビットは
【０２０５】
【数４４】
2006073011.tif 000046
【０２０６】
を形成する。ステップ１２１９で、ｒ2について  
【０２０７】
【数４５】
2006073011.tif 000047
【０２０８】
を解く。ここで、
【０２０９】
【数４６】
2006073011.tif 000048
【０２１０】
は、Ｍの第０列、第１列、及び第４列からなる。
【０２１１】
ステップ１２１９で、
【０２１２】
【数４７】
2006073011.tif 000049
【０２１３】
を計算する。
【０２１４】
【数４８】
2006073011.tif 000050
【０２１５】
とｂが同一になる集合Ｂ2、たとえば｛ｂ0  ｂ1  ｂ4｝を見つける。すると、
【０２１６】
【数４９】
2006073011.tif 000051
【０２１７】
である（図１３のビット配置１３５３に対応する）。ステップ１２２１で、式（７）に従ってループ回数（ｌｔ）を更新する。ｒ2に関連するエラービット数が、２と等しいことに留意されたい。（７）に代入すると、ｌｔ2＝ｍｉｎ（ｌｔ1，３２）＝１３である。
【０２１８】
もう１つの反復を実行する必要があるので、ステップ１２１７で、ｂからもう１つのｎ＝３ビットを選択する。選択されたビットは、すべてがＢ1又はＢ2のいずれかに属してはならない。したがって、ステップ１２１７で、例えば、
【０２１９】
【数５０】
2006073011.tif 000052
【０２２０】
からの１ビット｛ｂ4｝、
【０２２１】
【数５１】
2006073011.tif 000053
【０２２２】
からの１ビット｛ｂ2｝、及び残りの１ビット｛ｂ0｝を選択することができる。
【０２２３】
ｒを解くこと、ビット選択、及びループ回数調整は、前のＢ1にすべてが属するのではない新しいｎ＝３ビットを選択できなくなるか、最大ループ回数ｌｔに達するまで継続される。
【０２２４】
処理１２００が、５つのｒi（ｉ＝１，２，３，４，５）を計算し、エラービット数が、それぞれ１、２、４、３、２に対応すると仮定する（実際には、この例では、エラービット数が２を超えることはできないが、例示的な例では、このアルゴリズムを示すために、より多数のエラービットを示す）。ステップ１２２４で、対応するエラービット数が（８）に示されたＮeより少ないｒi、たとえばｒ1，ｒ2，ｒ4，ｒ5を選択する。
【０２２５】
ステップ１２２４で、選択されたベクトルｒ1，ｒ2，ｒ4，ｒ5  を、そのエラービット数の昇順でソートする：ｒ1，ｒ2，ｒ5，ｒ4。ソートされた候補リストから、ステップ１２２５、１２１１、及び１２１２で、対応する位置が宛先領域内にある最初のベクトルｒ、たとえばｒ5を見つける。次に、ステップ１２１３で、対応する位置を出力する。位置のどれもが宛先領域内にない場合には、ステップ１２１５によって示されるように、デコード処理が失敗する。
【０２２６】
＜装置＞
図１４は、本発明の実施形態に係るキャプチャされたイメージから抽出されたビットをデコードする装置を示す図で、キャプチャされた配列から抽出されたビット１２０１のデコードの装置１４００を示している。装置１４００に、ビット選択モジュール１４０１、デコードモジュール１４０３、位置判定モジュール１４０５、入力インターフェース１４０７及び出力インターフェース１４０９が含まれる。この実施形態で、インターフェース１４０７は、カメラ２０３（図２Ａに図示）をサポートするモジュールを含むさまざまなソースから、抽出されたビット１２０１を受け取る。ビット選択モジュール１４０１は、ステップ１２０３及び１２１７に従って、抽出されたビット１２０１からｎビットを選択する。デコードモジュール１４０３は、選択されたビット（ビット選択モジュール１４０１によって選択された、Ｋ個の抽出されたビットから選択されたｎビット）をデコードして、ステップ１２０５及び１２１９に従って、検出されたビットエラー及び対応するベクトルｒiを判定する。デコードモジュール１４０３は、判定されたベクトルｒiを位置判定モジュール１４０５に提示する。位置判定モジュール１４０５は、ステップ１２０９及び１２２５に従って、キャプチャされた配列のＸ，Ｙ座標を判定する。位置判定モジュール１４０５は、成功の場合にＸ，Ｙ座標、失敗の場合にエラー表示を含む結果を、出力インターフェース１４０９に提示する。出力インターフェース１４０９は、その結果を別のモジュールに提示することができ、この別のモジュールは、さらなる処理を実行するか、結果を表示することができる。
【０２２７】
＜迷路パターン分析＞
図１５は、本発明の実施形態に係る関連する迷路パターンバーと共に迷路パターンセルを示す迷路パターンの例示的なイメージを示す図である。迷路パターン１５００に、迷路パターンバー、例えば、１５０３が含まれる。有効ピクセル（ＥＰ）とは、図１５に示されているように、迷路パターンバー１５０３上にある可能性が最も高いピクセルである。一実施形態で、迷路パターンバー１５０３上のピクセルの比（ｒ）は、迷路パターンバー１５０３の面積を迷路パターンセル１５０１の面積で割ったものを計算することによって近似することができる。例えば、迷路パターンセルサイズが、３．２×３．２ピクセルであり、バーサイズが３．２×１ピクセルである場合に、ｒ＝１／３．２である。３２×３２ピクセルカメラによってキャプチャされた文書内容がないイメージの場合に、有効ピクセル数は、約３２×３２×（１／３．２）＝３２０である。その結果、イメージ内で３２０個の有効ピクセルが推定される。有効ピクセルは、暗い傾向があるので、より低いグレイレベル値を有する３２０個のピクセルが選択される（この実施形態で、より低いグレイレベル値は、より暗いピクセルに対応する。例えば、「０」と等しいグレイレベル値は、最も暗いピクセルに対応し、「２５５」と等しいグレイレベル値は、最も明るいピクセルに対応する）。図１５に、迷路パターン１５００に対応する例のイメージの分離された有効ピクセルを示す。文書内容がキャプチャされる時に、有効ピクセル数は、（３２×３２−ｎ）×（１／３．２）として推定され、このｎは、文書内容領域にあるピクセルの個数である。
【０２２８】
図１６は、本発明の実施形態に係る有効ピクセルの推定された方向を示す迷路パターン１６００の例示的なイメージを示す図である。図１６では、推定された方向（例えば、推定された方向１６０１又は１６０３）が、各有効ピクセルに関連する。すべての推定された方向のヒストグラムを形成する。このヒストグラムから、約９０度離れており（例えば、８０度、９０度、又は１００度離れたものとすることができる）、最もしばしば現れる（頻度の合計が、８０度、９０度、又は１００度離れた方向のすべての対の間で最大である）２つの方向が、推定された方向の２つのクラスタの最初の中心として選択される。すべての有効ピクセルを、その推定された方向が第１クラスタの中心と第２クラスタの中心のどちらに近いかに基づいて、２つのクラスタにクラスタ化する。推定された方向と中心の間の距離を、ｍｉｎ（１８０−｜ｘ−ｃｅｎｔｅｒ｜，｜ｘ−ｃｅｎｔｅｒ｜）と表すことができ、このｘは、有効ピクセルの推定された方向であり、ｃｅｎｔｅｒは、クラスタの中心である。次に、各クラスタのすべての有効ピクセルの推定された方向の平均値を計算し、その値を、さらなる処理のためのグリッド線の２つの主方向の推定値として使用する。方向１６０５及び方向１６０７が、グリッド線の２つの主方向に対応する。
【０２２９】
図１７は、本発明の実施形態に係る有効ピクセルの方向の推定を示す迷路パターン１７００の部分の例示的なイメージを示す図である。有効ピクセル（例えば、有効ピクセル１７０１）ごとに、その有効ピクセルを通るバーの方向を推定する。点１７１１、１７１３、１７２１、及び１７１５（以下の式ではＡ+0、Ｂ+0、Ａ-0、Ｂ-0と表される）の平均グレイレベル値は、
Ｓ（θ＝０度）＝（Ｇ（Ａ+0）＋Ｇ（Ｂ+0）＋Ｇ（Ａ-0）＋Ｇ（Ｂ-0））／４    ・・・（１５）
と計算される。ここで、Ｇ（・）は、ある点のグレイレベル値である。点１７０７、１７０９、１７１９、及び１７１７（下の式では、Ａ+1、Ｂ+1、Ａ-1、Ｂ-1と表される）の平均グレイレベル値を、同一の形で得る。
【０２３０】
Ｓ（θ＝１０度）＝（Ｇ（Ａ+1）＋Ｇ（Ｂ+1）＋Ｇ（Ａ-1）＋Ｇ（Ｂ-1））／４    ・・・（１６）
この処理を、０度から１０度ステップで１７０度まで、１８回繰り返す。最低の平均グレイレベル値を有する方向１７２３が、有効ピクセル１７０１の推定された方向として選択される。他の実施形態では、サンプリング角度間隔を１０度未満にして、より正確な方向の推定値を得ることができる。半径ＰＡ+0  １７０５及び半径ＰＢ+0  １７０３の長さは、それぞれ１ピクセル及び２ピクセルとして選択される。
【０２３１】
方向の推定に使用される点の位置のｘ，ｙ値は、たとえば点Ａ+1、Ｂ+1、Ａ-1、及びＢ-1などの整数でないものとすることができる。対応する点のグレイレベル値は、隣接ピクセルのグレイレベル値のバイリニアサンプリングによって得ることができる。バイリニアサンプリングは、
Ｇ（ｘ，ｙ）＝（１−ｙd）・［（１−ｘd）・Ｇ（ｘi，ｙi）＋ｘd・Ｇ（ｘi＋１，ｙi）］＋ｙd・［（１−ｘd）・Ｇ（ｘi，ｙi＋１）＋ｘd・Ｇ（ｘi＋１，ｙi＋１）］    ・・・（１７）
によって表される。ここで、（ｘ，ｙ）は、点の位置であり、３２×３２ピクセルイメージセンサの場合に、−０．５≦ｘ≦３１．５、−０．５≦ｙ≦３１．５であり、ｘi，ｙi及びｘd，ｙdは、それぞれ、ｘ，ｙの整数部分及び小数部分である。ｘが０未満又は３１を超える場合、あるいはｙが０未満又は３１を超える場合に、バイリニア外挿を使用する。その場合に、式１７は、ｘi及びｙiを０（値が０未満の場合）又は３０（値が３１を超える場合）にしなければならず、ｘd＝ｘ−ｘi、ｙd＝ｙ−ｙiであることを除いて、まだ適用可能である。
【０２３２】
図１８は、本発明の実施形態に係る代表的な有効ピクセル１８０９を通るグリッド線の線パラメータの計算を示す、迷路パターン１８００の例示的なイメージを示す図である。より多くの有効ピクセルを有するクラスタを選択し、この方向での線パラメータを計算する。というのは、通常、より少ない有効ピクセルを有する主方向を推定する時により大きい誤差があるからである。より多くの有効ピクセルを有する方法で線パラメータを計算することによって、より少ない有効ピクセルを有する主方向のより正確な推定を、２方向の垂直制約を使用することによって得ることができる（この実施形態で、グリッド線は、グリッド線の２つのほぼ直交する集合に関連する）。この手法は、通常、テキスト領域を有する迷路パターンで有効である。
【０２３３】
一実施形態で、選択された有効ピクセルを通る線の線パラメータを計算する。有効ピクセルを選択する２つのルールがある。第１に、選択される有効ピクセルは、８ピクセル近傍内の他の有効ピクセルより暗いものでなければならない。第２に、ある有効ピクセルが選択される場合に、その有効ピクセルの２４個の近傍ピクセルを選択してはならない（ピクセル（ｘ0，ｙ0）の２４個の近傍は、座標（ｘ，ｙ）を有し、｜ｘ−ｘ0｜≦２かつ｜ｙ−ｙ0｜≦２であるピクセルを表し、ここで、｜・｜は、絶対値を表す）。有効ピクセル１８０９について、関心領域のセクタを、主方向に基づいて判定する。関心セクタは、ベクトル１８０５及び１８０７によって決定され、ここで、各ベクトルと主方向１８０１の間の角度は、ある定数角度、例えば、１０度より小さい。次に、ロバスト回帰アルゴリズムを使用して、有効ピクセル１８０９を通る線のパラメータ、例えば、ｙ＝ｋ×ｘ＋ｂと表すことができる、線１８０３のパラメータを推定するが、、線のパラメータには、傾きｋ及び線オフセットｂが含まれる。
【０２３４】
ステップ１；クラスタに含まれ、有効ピクセル１８０９の関心セクタ内にあるすべての有効ピクセルを、最小自乗回帰アルゴリズムを使用することによって組み込んで、線パラメータを計算する。
【０２３５】
ステップ２；線の回帰に使用された各有効ピクセルと推定された線の間の距離を計算する。これらの距離のすべてが、定数値、例えば、０．５ピクセルより小さい場合に、推定された線パラメータは、十分によく、回帰処理が終了する。そうでない場合に、距離の標準偏差を計算する。
【０２３６】
ステップ３；推定された線への距離が、標準偏差に定数（例えば、１．２）をかけたものより小さい線の回帰に使用された有効ピクセルを選択して、もう一度線パラメータを推定して、線パラメータのもう１つの推定値を得る。
【０２３７】
ステップ４；推定された線パラメータを、最後の反復からの推定されたパラメータと比較する。差が十分に小さいすなわち、｜ｋnew−ｋold｜≦定数値（例えば、０．０１）かつ｜ｂnew−ｂold｜≦定数値（たとえば、０．０１）の場合に、回帰処理が終了する。そうでない場合に、ステップ２から始めて、回帰処理を繰り返す。
【０２３８】
この処理を、最大で１０回繰り返す。得られる線パラメータが収束しない場合すなわち、条件｜ｋnew−ｋold｜≦定数値（例えば、０．０１）かつ｜ｂnew−ｂold｜≦定数値（例えば、０．０１）が満足されない場合には、この有効ピクセルに関して回帰が失敗する。次の有効ピクセルに進む。
【０２３９】
この処理（有効ピクセルの選択及び回帰によるその有効ピクセルを通る線の入手）の終りに、独立に入手されたグリッド線の集合が得られる。
【０２４０】
図１９は、本発明の実施形態に係る選択されたクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。第１主方向の１つの例のイメージのすべての回帰処理された線を示している。明らかに、図１９に示されているように誤った線が存在する。処理の後続ステージで、推定された線を、枝刈りし（ｐｒｕｎｅ）、グリッドのアフィンパラメータを得るのに使用する。
【０２４１】
図２１は、本発明の実施形態に係り第１主方向に関する推定されたグリッド線の枝刈りを示す、迷路パターン２１００の例示的なイメージを示す図である。この実施形態では、関連する傾きの分散によって線を枝刈りする。すべての線の平均傾き値μ及び標準偏差σを計算する。σ＜０．０５の場合に、線は、平行であるとみなされ、枝刈りは不要である。そうでない場合に、平均傾き値μと大きく異なる傾きｋを有するすなわち｜ｋ−μ｜≧１．５×σの場合の線のそれぞれを枝刈りする。枝刈りの後に残された線のすべてを、図２１に示す。残されるすべての線の傾き値の平均をとることによって、グリッド線の回転角度の最終的な推定値が得られる。
【０２４２】
次に、残りの線を線の距離、例えば、距離２１５１によってクラスタ化する。イメージ中心を通り、線の平均傾きに直交する線を得る。次に、回帰処理された線と直交する線との間の交差点を計算する。２つのクラスタの中心が定数より大きくならなければならないという条件を用いて、すべての交差点をクラスタ化する。定数は、グリッド線の可能な最小のスケールである。図２１に示された例は、線の６つのグループ化すなわち、２１０１、２１０３、２１０５、２１０７、２１０９、及び２１１１を有する。
【０２４３】
図２２は、本発明の実施形態に係る枝刈りされたグリッド線から選択された最もよくあう線が選択されている、迷路パターンの例示的なイメージを示す図である。本発明の実施形態による、最もよくあう線（たとえば線２２０１）が枝刈りされたグリッド線から選択されている、迷路パターン２２００の例示的なイメージを示す。最もよくあう線は、線の同一グループの他の線より小さい回帰誤差（ロバスト回帰ステップで得られる）を有する線に対応する。
【０２４４】
図２０は、本発明の実施形態に係る残りのクラスタに関連する推定されたグリッド線を示す、迷路パターン２０００の例示的なイメージを示す図である。この実施形態では、グリッド線が、残りのクラスタに関する垂直制約を使用して推定される、すなわち、第１クラスタの方向の最終的な推定値に垂直の方向が、線回帰中に初期方向として使用される。この処理は、第１の主方向について図１８乃至図２２で示したものと同一である。
【０２４５】
図２３は、本発明の実施形態に係る関連するフィンパラメータを有する、迷路パターン２３００の例示的なイメージを示す図である。グリッド線のスケール（Ｓy  ２３０１及びＳx  ２３０３）とオフセット（ｄy  ２３１１及びｄx  ２３０９）を推定する。スケールは、図２２に示されているように、隣接する最もよくあう線の距離の平均をとることによって得られる。図２２の２つの隣接する線の間の距離は、実際のスケールの２倍以上である場合がある（たとえば、線２２０３と線２２０５が、実スケールの２倍以上である場合がある）。言い換えると、そのパラメータが得られていない、２２０３と２２０５の間の線がある。可能なスケールの範囲に関する以前の知識（イメージセンサのサイズ、紙に印刷された迷路パターンのサイズなどを与えられて）を使用して、距離を何回分割しなければならないかを推定する。この例では、線２２０３と２２０５の間の距離が、２によって除算され、その後、他の距離と平均をとられる。オフセットは、イメージ中心とイメージ中心に最も近い線の間の距離から得られる（オフセットは、ビットを抽出するために点がサンプリングされたグリッド線を得るのに必要になる場合がある）。グリッド線が、等間隔であり、グリッド線が、平行であると仮定すると、アフィンパラメータのグループを使用して、グリッド線を記述することができる。
【０２４６】
図２３に示された迷路パターン分析の結果に、スケール（Ｓy  ２３０１及びＳx  ２３０３）と、２つの方向でのグリッド線の回転θx  ２３０５及びθy  ２３０７と、２つの方向でのグリッド線の間の最小距離（ｄy  ２３１１及びｄx  ２３０９）が含まれる。
【０２４７】
変換行列ＦS→Pは、回転パラメータ及びスケールパラメータから
【０２４８】
【数５２】
2006073011.tif 000054
【０２４９】
として得られる。ここで、ＦS→Pは、前に述べたように、キャプチャされたイメージをセンサ平面座標から紙座標に写像する。
【０２５０】
図２４が、本発明の実施形態に係るグリッド線のチューニングを示す、迷路パターン２４００の例示的なイメージを示す図である。遠近ひずみなど、実際のグリッド線を絶対的に等間隔ではないものにする可能性がある複数の理由があり得る。平行で各得られたグリッド線Ｌ  ２４０１の近くの線を見つけることができ、この線が、実際のグリッド線をよりよく近似する。最適の線
【０２５１】
【数５３】
2006073011.tif 000055
【０２５２】
は、線２４０３〜２４１７  Ｌk，ｋ＝−ｄ，−ｄ＋１，…ｄから選択され、ここで、ＬとＬkの間の距離は、ｋ×δ×Ｓｃａｌｅである。δは、小さい定数（例えば、δ＝０．０５）であり、ｄは、もう１つの定数（例えば、ｄ＝４）であり、Ｓｃａｌｅは、グリッドスケール（ｓx）である。ｋoptimalは、
【０２５３】
【数５４】
2006073011.tif 000056
【０２５４】
から得られ、ここで、Ｐk,iは、線Ｌk，ｉ＝１，２，…，Ｎ上のピクセルである。Ｐk,iの選択を、図２４に示した。Ｐk,iは、等しい距離でイメージの１つの境界から開始することによって選択され、この等しい距離は、定数、たとえば線の方向のスケール（ｓy）の１／３とすることができる。この実施形態では、より小さいグレイレベル値が、より暗いイメージ要素に対応する。しかし、本発明の他の実施形態は、より大きいグレイレベル値をより暗いイメージ要素に関連付けることができる（「ａｒｇ」関数は、ｋoptimalが、−ｄとｄの間のインデックスを有する線の１つに対応する最小グレイレベル合計を有することを表す）。
【０２５５】
図２５は、本発明の実施形態に係るチューニング後のグリッド線を有する迷路パターンの例示的なイメージを示す図である。
【０２５６】
図２６は、本発明の実施形態に係る迷路パターンのグリッド線を判定する処理を示す図である。この処理２６００に、前の述べた処理が組み込まれている。処理２６００を、サブ処理２６５１、２６５３、２６５５、及び２６５７にグループ化することができる。サブ処理２６５１は、ステップ２６０１を含み、このステップで、迷路パターンのイメージについて有効ピクセルを分離する。
【０２５７】
サブ処理２６５３で、代表的な有効ピクセルについて線を推定する。サブ処理２６５３に、ステップ２６０３〜２６１１及び２６２５が含まれる。ステップ２６０３で、有効ピクセルごとに迷路パターンバーの方向を推定する。ステップ２６０５で、推定された方向を２つのクラスタにグループ化する。ステップ２６０７で、より多数の有効ピクセルを有するクラスタを選択し、ステップ２６０９で、選択されたクラスタに関連する有効ピクセルの方向から、主方向を推定する。ステップ２６１１で、回帰技法を用いて、選択された有効ピクセルを通る線を推定する。
【０２５８】
サブ処理２６５５では、グリッド線のアフィンパラメータを判定する。サブ処理２６５５に、ステップ２６１３〜２６２１が含まれる。ステップ２６１３で、傾き分散分析によって線を枝刈りし、ステップ２６１５で、射影距離によって、枝刈りされた線をグループ化する。ステップ２６１７で、各グループ内で最もよくあう線を選択する。
【０２５９】
ステップ２６１９で、残りのクラスタが未処理であると判定される場合に、ステップ２６２７で残りのクラスタを選択する。ステップ２６２５で、垂直制約を使用して、関連するグリッド線を推定する。その結果、ステップ２６１１〜２６１７を繰り返す。ステップ２６２１で、グループ化された線からアフィンパラメータを判定する。
【０２６０】
サブ処理２６５７で、図２４に関して述べたように、ステップ２６２３でグリッド線をチューニングする。
【０２６１】
図２７は、本発明の実施形態に係る迷路パターンの正しい方位の判定を示す、迷路パターンの例示的なイメージを示す図である。グリッド線を検出した後に、迷路パターンの正しい方位を判定しなければならない。この実施形態では、迷路パターンの角特性に基づいて迷路パターンの正しい方位を判定する。このアルゴリズムは、３つのステージを有する。図２７に示されているように、グリッド辺は、２つのグループすなわち、それぞれＨ軸及びＶ軸に平行なＸ辺及びＹ辺に分離され、対応するスコアが、ＳｃｏｒｅＸ及びＳｃｏｒｅＹとして表される。スコアは、バイリニアサンプリングアルゴリズムによって計算される。図２７からわかるように、バイリニアサンプリングスコアは、次の式によって計算される。
【０２６２】
ＳｃｏｒｅＸ（ｕ，ｖ）＝（１−ηq）・［（１−ηp）・Ｇ（ｍ，ｎ）＋ηp・Ｇ（ｍ＋１，ｎ）］＋ηq・［（１−ηp）・Ｇ（ｍ，ｎ＋１）＋ηp・Ｇ（ｍ＋１，ｎ＋１）］    ・・・（１９）
ここで、（ｐ，ｑ）は、イメージ座標でのサンプリング点２７５１（Ｐ）の位置であり、ＳｃｏｒｅＸ（ｕ，ｖ）は、Ｈ’軸に沿った辺（ｕ，ｖ）のスコアであり、ｕ及びｖは、それぞれＨ’軸及びＶ’軸に沿ったグリッド線のインデックスであり（図２７で、Ｈ’軸に沿ったインデックスの範囲は、［０，１３］であり、Ｖ’軸では［０，１５］であり、ｕ＝７、ｖ＝９である）、（ｍ，ｎ）、（ｍ＋１，ｎ）、（ｍ，ｎ＋１）、及び（ｍ＋１，ｎ＋１）は、点２７５１に最も近い４つのピクセルであり、Ｇ（ｍ，ｎ）、Ｇ（ｍ＋１，ｎ）、Ｇ（ｍ，ｎ＋１）、及びＧ（ｍ＋１，ｎ＋１）は、各ピクセルのグレイレベル値であり、ηp＝ｐ−ｍ、ηq＝ｑ−ｎである。スコアは、バイリニアサンプリングに関するすべてのピクセルが、イメージ内に位置し（すなわち、３２×３２ピクセルイメージセンサの場合に０≦ｐ＜３１、０≦ｑ＜３１）、文書を含まないピクセルである場合に有効である（したがって、実際に式１９を使用して計算される）。この実施形態で、スコアを計算される各辺のサンプリング点は、辺の中点に対応する。ＳｃｏｒｅＹは、バイリニア入力としてイメージの異なるサンプリング点を使用することを除いて、ＳｃｏｒｅＸと同一のバイリニアサンプリングアルゴリズムによって計算される。
【０２６３】
図２７を参照すると、迷路パターンセル２７０９は、角２７０１、２７０３、２７０５、及び２７０７に関連する。次の議論では、角２７０１、２７０３、２７０５、及び２７０７が、それぞれ角０、角１、角２、及び角３に対応する。角の関連する番号を、下で述べるように象限番号（ｑｕａｄｒａｎｔ  ｎｕｍｂｅｒ）と称する。
【０２６４】
図５Ａ乃至図５Ｄに関して上述したように、迷路パターンが正しい方位を有する時に、図５Ａに示されたタイプの角（角０に対応する）が欠けている。迷路パターンが、時計回りに９０度回転された時に、図５Ｂに示されたタイプの角（角１）が欠けている。迷路パターンが、時計回りに１８０度回転された時に、図５Ｃに示されたタイプの角（角２）が欠けている。迷路パターンが、時計回りに２７０度回転された時に、図５Ｄに示されたタイプの角（角３）が欠けている。欠けている角のタイプを判定することによって、次式によって迷路パターンを回転することによって迷路パターンの方位を正しく知ることができる。
【０２６５】
方位回転＝象限番号×９０度    ・・・（２１）
一実施形態で、各角タイプの平均スコア差を計算することによって、欠けている角のタイプを判定する。角２７０１（角０）について、平均スコア差Ｑ［０］は、
【０２６６】
【数５５】
2006073011.tif 000057
【０２６７】
である。ここで、ｎi及びｎjは、それぞれＨ軸方向及びＶ軸方向でのイメージ内のグリッドセルの総数である。例えば、図２７では、ｎi＝１４、ｎj＝１６であり、Ｎ0は、ＳｃｏｒｅＸ（ｉ，ｊ）及びＳｃｏｒｅＹ（ｉ，ｊ）の両方が有効であるグリッドセルの個数である（ＳｃｏｒｅＸ（ｉ，ｊ）及びＳｃｏｒｅＹ（ｉ，ｊ）の有効性は、式１９に示されたバイリニアサンプリングによって判定される）。
【０２６８】
角２７０３（角１）について、平均スコア差Ｑ［１］は、
【０２６９】
【数５６】
2006073011.tif 000058
【０２７０】
であり、ｎi及びｎjは、それぞれＨ軸方向及びＶ軸方向でのイメージ内のグリッドセルの総数であり、Ｎ1は、ＳｃｏｒｅＸ（ｉ，ｊ）及びＳｃｏｒｅＹ（ｉ＋１，ｊ）の両方が有効であるグリッドセルの個数である。
【０２７１】
角２７０５（角２）について、平均スコア差Ｑ［２］は、
【０２７２】
【数５７】
2006073011.tif 000059
【０２７３】
であり、ｎi及びｎjは、それぞれＨ軸方向及びＶ軸方向でのイメージ内のグリッドセルの総数であり、Ｎ2は、ＳｃｏｒｅＸ（ｉ，ｊ＋１）及びＳｃｏｒｅＹ（ｉ＋１，ｊ）の両方が有効であるグリッドセルの個数である。
【０２７４】
角２７０７（角３）について、平均スコア差Ｑ［３］は、
【０２７５】
【数５８】
2006073011.tif 000060
【０２７６】
であり、ｎi及びｎjは、それぞれＨ軸方向及びＶ軸方向でのイメージ内のグリッドセルの総数であり、Ｎ3は、ＳｃｏｒｅＸ（ｉ，ｊ＋１）及びＳｃｏｒｅＹ（ｉ，ｊ）の両方が有効であるグリッドセルの個数である。
【０２７７】
正しい方位は、ｉが象限番号であるものとして、Ｑ［ｉ］がＱの最大値になるｉである。一実施形態で、迷路パターンのグリッド座標系Ｈ’Ｖ’を正しい方位ｉ（式２１に対応する）に回転し、その結果、新しい座標系の角０が、正しい角になるようにする。ＳｃｏｒｅＸ及びＳｃｏｒｅＹも、迷路パターンからビットを抽出する次のステージのために回転される。
【０２７８】
迷路パターンの正しい方位を判定した後に、ビットを抽出する。キャプチャされたイメージの迷路パターンセルは、２つのカテゴリに含まれる、すなわち、完全に可視のセル及び部分的に可視のセルである。完全に可視のセルは、ＳｃｏｒｅＸ及びＳｃｏｒｅＹの両方が有効な迷路パターンセルである。部分的に可視のセルは、ＳｃｏｒｅＸ及びＳｃｏｒｅＹの一方のスコアだけが有効な迷路パターンセルである。
【０２７９】
完全可視ビット抽出アルゴリズムは、ＳｃｏｒｅＸ及びＳｃｏｒｅＹの単純なグレイレベル値比較に基づき、ビットＢ（ｉ，ｊ）は、
【０２８０】
【数５９】
2006073011.tif 000061
【０２８１】
によって計算される。対応するビット信頼度Ｃｏｎｆ（ｉ，ｊ）は、
Ｃｏｎｆ（ｉ，ｊ）＝｜ＳｃｏｒｅＸ（ｉ，ｊ）−ＳｃｏｒｅＹ（ｉ，ｊ）｜／ＭａｘＤｉｆｆ    （２７）
によって計算され、ここで、ＭａｘＤｉｆｆは、すべての完全に可視のセルの最大スコア差である。
【０２８２】
図２８は、本発明の実施形態に係るビットが部分的に可視の迷路パターンセル２８０１から抽出される、迷路パターン２８００の例示的なイメージを示す図である。部分的に可視の迷路パターンセルは、イメージの縁又は、イメージの、テキストあるいはドローイングが迷路パターンを隠す領域で発生する可能性がある。一実施形態で、部分的可視ビット抽出アルゴリズムは、部分的に可視のセル２８０１の８つの隣接ピクセル内の完全に可視のセル（迷路パターンセル２８０３、２８０５、及び２８０７）に基づく。部分的に可視のセル（例えば、迷路パターンセル２８０１）からビットを抽出するために、部分的に可視の迷路パターンセルのスコア値を、隣接迷路パターンセル（例えば、迷路パターンセル２８０３、２８０５、及び２８０７）の縁に沿った平均スコアの関数と比較することができる。
【０２８３】
部分的に可視のビット（ｉ，ｊ）に関する本発明の実施形態で、８つの隣接迷路パターンセル内の完全に可視のビットの基準黒縁平均スコア（ＢＭＳ）及び基準白縁平均スコア（ＷＭＳ）を、それぞれ次式によって計算することができる。
【０２８４】
【数６０】
2006073011.tif 000062
【０２８５】
ここで、ｎは、８つの隣接迷路パターンセル内の完全に可視のパターンセルの個数である。
【０２８６】
一実施形態で、部分的に可視のビットのＳｃｏｒｅＸ又はＳｃｏｒｅＹを、ＢＭＳ及びＷＭＳと比較する。部分的に可視のビットＢ（ｉ，ｊ）は、
【０２８７】
【数６１】
2006073011.tif 000063
【０２８８】
によって計算される。
【０２８９】
本発明の実施形態では、部分的に可視のビット（ｉ，ｊ）の信頼の度合が、
Ｃｏｎｆ（ｉ，ｊ）＝ｍａｘ（｜Ｓｃｏｒｅ（ｉ，ｊ）−ＢＭＳ｜，｜Ｓｃｏｒｅ（ｉ，ｊ）−ＷＭＳ｜）／ＭａｘＤｉｆｆ    （３１）
によって判定される。ここで、Ｓｃｏｒｅ（ｉ，ｊ）は、ＳｃｏｒｅＸ（ｉ，ｊ）又はＳｃｏｒｅＹ（ｉ，ｊ）の有効なスコアであり、ＭａｘＤｉｆｆは、すべての完全に可視のビットの最大スコア差である（前に述べたように、部分的に可視のセルについて、１つのスコアだけが有効である）。
【０２９０】
図１２を参照すると、抽出されたビット１２０１が、デコードされ、必要な場合にエラー訂正が実行される。本発明の実施形態では、所定のレベルを超える信頼レベルを有する選択されたビットは、その選択されたビット数が十分に多い場合に、エラー訂正に使用される（上述したように、ｍ−列をデコードするには少なくともｎビットが必要であり、ｎは、ｍ−列の次数である）。もう１つの実施形態で、抽出されたビットは、関連する信頼レベルに従ってランク順序付けされる。抽出されたビットのデコードでは、ランク順序付けに従って、抽出されたビットを使用する。
【０２９１】
本発明の実施形態では、抽出されたビットに関連する信頼の度合を、ビットエラーを訂正する時に使用することができる。たとえば、最も低い信頼の度合を有するビットは、エラー訂正を実行する時に処理されない。
【０２９２】
図２９は、本発明の実施形態に係る迷路パターンからビットを抽出する迷路パターン分析装置を示す図である。正規化されたイメージ２９５１が、まず、イメージのグリッド線を判定するためにグリッド線アナライザ２９０１によって処理される。本発明の実施形態では、グリッド線アナライザ２９０１は、図２６に示された処理２６００を実行する。グリッド線アナライザ２９０１は、グリッド線パラメータ２９５３（例えば、図２３に示されたＳx、Ｓy、θx、θy、ｄx、ｄy）を判定する。方位アナライザ２９０３が、グリッド線パラメータ２９５３を使用して、正規化されたイメージ２９５１をさらに処理して、迷路パターンの正しい方位情報２９５５を判定する。ビットエクストラクタ２９０５が、グリッド線パラメータ２９５３及び正しい方位情報２９５５を使用して、正規化されたイメージ２９５１を処理して、ビットストリーム２９５７を抽出する。
【０２９３】
さらに、装置２９００に、イメージの不均一な照明の影響を減らすイメージノーマライザ（図示せず）を組み込むことができる。不均一な照明は、あるパターンバーを、それがあるべき姿より暗くなくし、ある非バー領域を、それがあるべき姿より暗くする可能性があり、これは、有効ピクセルの方向の推定に影響する可能性があり、エラービットの抽出をもたらす可能性がある。
【０２９４】
装置１４００及び２９００は、コンピュータ可読媒体を使用するモジュール及び特定用途向け集積回路（ＡＳＩＣ）などの特殊化されたハードウェアを使用するモジュールを含む、異なる形の実施形態をとることができる。
【０２９５】
当業者が諒解するように、コンピュータシステムを制御する命令を含む関連するコンピュータ可読媒体を有するコンピュータシステムを使用して、本明細書で開示された例示的実施形態を実施することができる。このコンピュータシステムに、マイクロプロセッサ、ディジタル信号プロセッサなどの少なくとも１つのコンピュータと、関連する周辺電子回路を含めることができる。
【０２９６】
本発明は、請求項を使用して定義されているが、これらの請求項は、本発明が本明細書に記載の要素及びステップを任意の組合せ又は副組合せを含むことが意図されているという点で、例示的である。したがって、詳細な説明、請求項、及び図面を含む本明細書からの１つ又は複数の要素をさまざまな組合せ又は副組合せで組み込む、本発明を定義する複数の代替の組合せがある。本明細書に鑑みて、本発明の実施態様の代替の組合せを、単独で又は本明細書で定義される１つ又は複数の要素又はステップとの組合せでのいずれかで、本発明の修正又は変更として、あるいは本発明の一部として使用できることを、当業者は諒解するであろう。本明細書に含まれる本発明の書かれた説明が、そのような修正形態及び変更形態のすべてを含むことを意図することができる。
【図面の簡単な説明】
【０２９７】
【図１】本発明の実施形態と共に使用できるコンピュータの全般的な説明をするための図である。
【図２Ａ】本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図（その１）である。
【図２Ｂ】本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図（その２）である。
【図３Ａ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その１）である。
【図３Ｂ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その２）である。
【図３Ｃ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その３）である。
【図３Ｄ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その４）である。
【図３Ｅ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その５）である。
【図３Ｆ】本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図（その６）である。
【図４Ａ】本発明の実施形態に係るさまざまなエンコーディングシステムを示す図（その１）である。
【図４Ｂ】本発明の実施形態に係るさまざまなエンコーディングシステムを示す図（その２）である。
【図４Ｃ】本発明の実施形態に係るさまざまなエンコーディングシステムを示す図（その３）である。
【図４Ｄ】本発明の実施形態に係るさまざまなエンコーディングシステムを示す図（その４）である。
【図４Ｅ】本発明の実施形態に係るさまざまなエンコーディングシステムを示す図（その５）である。
【図５Ａ】図４Ａ及び図４Ｂによるエンコーディングシステムに関連する４つの可能な結果の角を示す図（その１）である。
【図５Ｂ】図４Ａ及び図４Ｂによるエンコーディングシステムに関連する４つの可能な結果の角を示す図（その２）である。
【図５Ｃ】図４Ａ及び図４Ｂによるエンコーディングシステムに関連する４つの可能な結果の角を示す図（その３）である。
【図５Ｄ】図４Ａ及び図４Ｂによるエンコーディングシステムに関連する４つの可能な結果の角を示す図（その４）である。
【図６】本発明の実施形態に係るキャプチャされたイメージ部分の回転を示す図である。
【図７】図４Ａ乃至図４Ｅのコーディングシステムと共に使用される回転のさまざまな角度を示す図である。
【図８】本発明の実施形態に係るキャプチャされた配列の位置を判定する処理を示す図である。
【図９】本発明の実施形態に係るキャプチャされたイメージの位置を判定する方法を示す図である。
【図１０】本発明の実施形態に係るキャプチャされたイメージの位置を判定するもう１つの方法を示す図である。
【図１１】従来技術による文書内のスペースのエンコードを表す図である。
【図１２】本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのデコードをフローチャートに示す図である。
【図１３】本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのビット選択を示す図である。
【図１４】本発明の実施形態に係るキャプチャされたイメージから抽出されたビットをデコードする装置を示す図である。
【図１５】本発明の実施形態に係る関連する迷路パターンバーと共に迷路パターンセルを示す迷路パターンの例示的なイメージを示す図である。
【図１６】本発明の実施形態に係る有効ピクセルの推定された方向を示す迷路パターンの例示的なイメージを示す図である。
【図１７】本発明の実施形態に係る有効ピクセルの方向の推定を示す迷路パターンの部分の例示的なイメージを示す図である。
【図１８】本発明の実施形態に係る代表的な有効ピクセルを通るグリッド線の線パラメータの計算を示す、迷路パターンの例示的なイメージを示す図である。
【図１９】本発明の実施形態に係る選択されたクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。
【図２０】本発明の実施形態に係る残りのクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。
【図２１】本発明の実施形態に係る推定されたグリッド線の枝刈りを示す、迷路パターンの例示的なイメージを示す図である。
【図２２】本発明の実施形態に係る枝刈りされたグリッド線から選択された最もよくあう線が選択されている、迷路パターンの例示的なイメージを示す図である。
【図２３】本発明の実施形態に係る関連するフィンパラメータを有する、迷路パターンの例示的なイメージを示す図である。
【図２４】本発明の実施形態に係るグリッド線のチューニングを示す、迷路パターンの例示的なイメージを示す図である。
【図２５】本発明の実施形態に係るチューニング後のグリッド線を有する迷路パターンの例示的なイメージを示す図である。
【図２６】本発明の実施形態に係る迷路パターンのグリッド線を判定する処理を示す図である。
【図２７】本発明の実施形態に係る迷路パターンの正しい方位の判定を示す、迷路パターンの例示的なイメージを示す図である。
【図２８】本発明の実施形態に係るビットが部分的に可視の迷路パターンセルから抽出される、迷路パターンの例示的なイメージを示す図である。
【図２９】本発明の実施形態に係る迷路パターンからビットを抽出する迷路パターン分析装置を示す図である。
【符号の説明】
【０２９８】
１０１  キーボード
１０２  マウス
１０６  シリアルポートインターフェース
１０７  モニタ
１０８  ビデオアダプタ
１０９  リモートコンピュータ
１１０  処理ユニット
１１１  メモリ
１１２  ローカルエリアネットワーク
１１３  広域ネットワーク
１１４  ネットワークインターフェース
１１５  モデム
１２０  システムメモリ
１３０  システムバス
１４０  （ＲＯＭ）
１５０  （ＲＡＭ）
１６０  ＢＩＯＳ
１６５  ディジタイザ
１７０  ハードディスクドライブ
１８０  磁気ディスクドライブ
１９０  磁気ディスク
１９１  光ディスクドライブ
１９２  光ディスク
１９２  ハードディスクインターフェース
１９３  磁気ディスクドライブインターフェース
１９４  光ドライブインターフェース
１９５  オペレーティングシステム
１９６  アプリケーションプログラム
１９７  他のプログラムモジュール
１９８  プログラムデータ
２０１  ペン
２０２  ペン先
２０３  カメラ
２０６  箱
２０７  物体平面
２０９  像平面
２０８  レンズ
２１１  イメージキャプチャセンサ
１４０１  ビット選択モジュール
１４０３  デコードモジュール
１４０５  位置判定モジュール
１４０７  入力インターフェース
１４０９  出力インターフェース
２９０１  グリッド線アナライザ
２９０３  方位アナライザ
２９０５  ビットエクストラクタ
【図１】
2006073011.tif 000064
【図２Ａ】
2006073011.tif 000065
【図２Ｂ】
2006073011.tif 000066
【図３Ａ】
2006073011.tif 000067
【図３Ｂ】
2006073011.tif 000068
【図３Ｃ】
2006073011.tif 000069
【図３Ｄ】
2006073011.tif 000070
【図３Ｅ】
2006073011.tif 000071
【図３Ｆ】
2006073011.tif 000072
【図４Ａ】
2006073011.tif 000073
【図４Ｂ】
2006073011.tif 000074
【図４Ｃ】
2006073011.tif 000075
【図４Ｄ】
2006073011.tif 000076
【図４Ｅ】
2006073011.tif 000077
【図５Ａ】
2006073011.tif 000078
【図５Ｂ】
2006073011.tif 000079
【図５Ｃ】
2006073011.tif 000080
【図５Ｄ】
2006073011.tif 000081
【図６】
2006073011.tif 000082
【図７】
2006073011.tif 000083
【図８】
2006073011.tif 000084
【図９】
2006073011.tif 000085
【図１０】
2006073011.tif 000086
【図１１】
2006073011.tif 000087
【図１２】
2006073011.tif 000088
【図１３】
2006073011.tif 000089
【図１４】
2006073011.tif 000090
【図１５】
2006073011.tif 000091
【図１６】
2006073011.tif 000092
【図１７】
2006073011.tif 000093
【図１８】
2006073011.tif 000094
【図１９】
2006073011.tif 000095
【図２０】
2006073011.tif 000096
【図２１】
2006073011.tif 000097
【図２２】
2006073011.tif 000098
【図２３】
2006073011.tif 000099
【図２４】
2006073011.tif 000100
【図２５】
2006073011.tif 000101
【図２６】
2006073011.tif 000102
【図２７】
2006073011.tif 000103
【図２８】
2006073011.tif 000104
【図２９】
2006073011.tif 000105