JP2006073011A - 迷路パターン分析方法及びその装置 - Google Patents

迷路パターン分析方法及びその装置 Download PDF

Info

Publication number
JP2006073011A
JP2006073011A JP2005255046A JP2005255046A JP2006073011A JP 2006073011 A JP2006073011 A JP 2006073011A JP 2005255046 A JP2005255046 A JP 2005255046A JP 2005255046 A JP2005255046 A JP 2005255046A JP 2006073011 A JP2006073011 A JP 2006073011A
Authority
JP
Japan
Prior art keywords
maze pattern
analysis method
pattern analysis
line
maze
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005255046A
Other languages
English (en)
Other versions
JP4822775B2 (ja
Inventor
Jian Wang
ワン チャン
Liyong Chen
チェン リオン
Qiang Wang
ワン チエン
Xiaoxu Ma
マ シャオスー
Yingnong Dang
ダン インノン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006073011A publication Critical patent/JP2006073011A/ja
Application granted granted Critical
Publication of JP4822775B2 publication Critical patent/JP4822775B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • G06F3/0321Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface by optically sensing the absolute position with respect to a regularly patterned surface forming a passive digitiser, e.g. pen optically detecting position indicative tags printed on a paper sheet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32203Spatial or amplitude domain methods
    • H04N1/32208Spatial or amplitude domain methods involving changing the magnitude of selected pixels, e.g. overlay of information or super-imposition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3269Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】 迷路パターンにエンコードされたビットを抽出するために迷路パターンのイメージを分析する処理及び装置を提供すること。
【解決手段】 迷路パターンのグリッド線を判定し、バーの有効ピクセルの方向を推定し、クラスタにグループ化する。選択されたクラスタの有効ピクセルについて線を推定する。他のクラスタのグリッド線を判定する。推定された線を傾き分散分析に基づいて枝刈りし、距離分析に基づいてグループ化し、最もよくあう線を各グループから選択する。最もよくあう線からアフィンパラメータを判定する。迷路パターンの欠けている角のタイプを判定し、迷路パターンの正しい方位を得る。関連する迷路パターンセルのグレイレベル値を処理し、迷路パターンのイメージからビットを抽出する。
【選択図】 図26

Description

本発明は、迷路パターン分析方法及びその装置に関し、より詳細には、ディジタルペンを使用する媒体とのインターフェースを備え、迷路パターンを分析し、迷路パターンからビットを抽出するようにした迷路パターン分析方法及びその装置に関する。
コンピュータユーザは、パーソナルコンピュータと対話する形としてのマウス及びキーボードの使用に慣れている。パーソナルコンピュータは、書かれた文書に対する多数の長所を提供するが、ほとんどのユーザは、印刷された紙を使用して、ある機能を実行し続けている。これらの機能の一部に、書かれた文書を読み、注釈を付けることが含まれている。注釈の場合に、ユーザによって書かれる注釈ゆえに、印刷された文書がより重要になる。しかし、注釈を有する印刷された文書を有することの問題の1つは、電子形式の文書に注釈を入力させる必要があることである。これは、オリジナルユーザ又は別のユーザが、注釈全体を読み進め、それをパーソナルコンピュータに入力することを必要とする。いくつかの場合に、ユーザは、注釈及びオリジナルテキストをスキャンし、これによって新しい文書を作成する。これらの複数のステップは、印刷された文書とその文書のディジタルバージョンの間の相互作用を、繰り返される基礎で処理しにくくする。さらに、スキャンされたイメージは、しばしば修正不能である。注釈をオリジナルテキストから分離する方法がない場合がある。これによって、注釈を使用することが困難になる。したがって、注釈を扱う改善された方法が必要である。
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)
手書き情報をキャプチャ(capture)する技術の1つが、書いている間に位置を判定できるペンを使用することによるものである。この機能を提供するペンの1つが、Anoto Inc.社のAnoto penである。このペンは、カメラを使用して、予め決められたパターンを用いてエンコードされた紙のイメージをキャプチャすることによって機能する。イメージパターンの例を、図11に示す。このイメージパターンが、Anoto pen(Anoto Inc.社の)によって使用されて、紙の上でのペンの位置が判定される。しかし、Anoto penによって使用されるシステムによる位置の判定がどれほど効率的であるかは不確かである。キャプチャされたイメージの位置の効率的な判定を提供するために、迷路パターン(maze pattern)のキャプチャされたイメージからのビットの効率的な抽出を提供するシステムが必要である。
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、迷路パターン及び文書内容のキャプチャされたイメージを分析し、文書表現から関連するビットを判定する迷路パターン分析方法及びその装置を提供することにある。
本発明の各実施態様は、上述した問題の少なくとも1つに対する解決策を提供し、これによって、迷路パターンからビットを抽出して、見られる文書上のキャプチャされたイメージの1つ又は複数の位置を突き止めることを可能にする。見られる文書は、紙、LCD画面、又は予め決められたパターンを有する他の媒体にあるものとすることができる。本発明の実施態様に、文書イメージを分析することと、関連するm−配列(m−array)のビットを抽出することが含まれている。
本発明の一実施態様によれば、迷路パターンのグリッド線が判定される。関連するバーの各有効ピクセルの方向が推定される。推定された方向は、クラスタにグループ化される。迷路パターンの第1主方向に関連する選択されたクラスタの選択された有効ピクセルについて、線を推定する。
本発明の他の実施態様によれば、回帰分析が、推定された線を判定するのに使用される。
本発明の他の実施態様によれば、推定された線が、傾き分散分析に基づいてグループ化される。最もよくあう線が、各グループから選択される。
本発明の他の実施態様によれば、別のクラスタのグリッド線が判定され、ここで、他のクラスタは、第1の主方向と直交するかほぼ直交する第2の主方向に関連する。
本発明の他の実施態様によれば、アフィンパラメータ(affine parameter)が、グループ化された線から判定される。アフィンパラメータに、迷路パターンの水平及び垂直の回転、グリッド線の水平及び垂直の間隔、ならびにイメージ中心の水平及び垂直のオフセットを含めることができる。
本発明の他の実施態様によれば、グリッド線は、迷路パターンの実際のグリッド線のより洗練された近似を得るためにチューニングされる。
本発明の他の実施態様によれば、迷路パターンの正しい方位が、迷路パターンの欠けている角のタイプを判定することによって入手される。
本発明の他の実施態様によれば、関連する迷路パターンセルのグレイレベル値を処理することによって、迷路パターンからビットが抽出される。変形形態で、隣接する迷路パターンセルのグレイレベル値が、さらに処理される。
本発明の上述した実施態様及び他の実施態様は、図面及び次の関連する説明から既知になる。
本発明の要約ならびに好ましい実施形態の次の詳細な説明は、添付図面と共に読まれる時に最もよく理解されるが、添付図面は、請求される発明に関する制限ではなく、例として含まれるものである。
以下、図面を参照して本発明の実施形態について説明する。
本発明の実施態様は、より大きいイメージに関するキャプチャされたイメージの位置の判定に関する。本明細書に記載の位置判定の方法及びシステムは、マルチファンクションペンと組み合わせて使用することができる。
以下の説明では、明細書を読みやすくするために見出しによって区切られて説明されている。この見出しには、<用語>、<汎用コンピュータ>、<イメージキャプチャペン>、<配列のエンコード>、<デコード>、<エラー訂正>、<位置判定>、ならびに<迷路パターン分析>が含まれている。
<用語>
ペン;インクをたくわえる能力を含んでも含まなくてもよいすべての書込器具。いくつかの例で、インク機能を有しないスタイラスを、本発明の実施形態に従ってペンとして使用することができる。
カメラ;紙又は他の媒体からイメージをキャプチャすることができるイメージキャプチャシステム。
<汎用コンピュータ>
図1は、本発明の実施形態と共に使用できるコンピュータの全般的な説明をするための図である。本発明のさまざまな実施態様を実行するのに使用することができる、普通の汎用ディジタルコンピュータ環境の例の機能ブロック図である。図1では、コンピュータ100に、処理ユニット110、システムメモリ120及びシステムメモリを備えたさまざまなシステムコンポーネントを処理ユニット110に結合するシステムバス130が含まれている。システムバス130は、メモリバス又はメモリコントローラ、周辺バス及びさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリ120には、読取専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150が含まれている。
起動中などにコンピュータ100内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム160(BIOS)が、ROM140にストアされる。コンピュータ100には、ハードディスク(図示せず)から読み取り、これに書き込むハードディスクドライブ170、リムーバブル磁気ディスク190から読み取り、これに書き込む磁気ディスクドライブ180及びCD−ROM又は他の光媒体などのリムーバブル光ディスク192から読み取るか、これに書き込む光ディスクドライブ191も含まれている。ハードディスクドライブ170、磁気ディスクドライブ180及び光ディスクドライブ191は、それぞれハードディスクドライブインターフェース192、磁気ディスクドライブインターフェース193及び光ディスクドライブインターフェース194によってシステムバス130に接続されている。ドライブ及びそれに関連するコンピュータ読み取り可能な記録媒体は、パーソナルコンピュータ100のコンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの不揮発性ストレージを提供する。磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、及び類似物など、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読み取り可能な記録媒体も、例のオペレーティング環境で使用できることは、当業者に理解されるであろう。
オペレーティングシステム195、1つ又は複数のアプリケーションプログラム196、他のプログラムモジュール197及びプログラムデータ198を含む複数のプログラムモジュールを、ハードディスクドライブ170、磁気ディスクドライブ180、光ディスクドライブ191、ROM140、又はRAM150にストアすることができる。ユーザは、キーボード101及びポインティングデバイス102などの入力デバイスを介して、コンピュータ100にコマンド及び情報を入力することができる。他の入力デバイス(図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、又は類似物を含めることができる。これら及び他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース106を介して処理ユニット110に接続されるが、パラレルポート、ゲームポート、又はuniversal serial bus(USB)などの他のインターフェースによって接続することができる。さらに、これらのデバイスを、適当なインターフェース(図示せず)を介してシステムバス130に直接に結合することができる。モニタ107又は他のタイプのディスプレイデバイスも、ビデオアダプタ108などのインターフェースを介してシステムバス130に接続される。モニタのほかに、パーソナルコンピュータに、通常は、スピーカ及びプリンタなどの他の周辺出力デバイス(図示せず)が含まれる。好ましい実施形態では、ペンディジタイザ165及び付随するペン又はスタイラス166が、手書き入力をディジタルにキャプチャするために設けられる。ペンディジタイザ165とシリアルポートの直接接続が図示されているが、実際には、当技術分野で知られているように、ペンディジタイザ165を、パラレルポート又は他のインターフェース及びシステムバス130を介して処理ユニット110に直接に結合することができる。さらに、ディジタイザ165が、モニタ107と別に図示されているが、ディジタイザ165の使用可能な入力領域が、モニタ107の表示領域と同一の広がりを持つことが好ましい。さらに、ディジタイザ165は、モニタ107と一体化することができ、あるいは、モニタ107の上に置かれるか他の形でモニタ107に追加される別々のデバイスとして存在することができる。
コンピュータ100は、リモートコンピュータ109などの1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ109は、サーバ、ルータ、ネットワークPC、ピアデバイス、又は他の一般的なネットワークノードとすることができ、通常は、コンピュータ100に関して上述した要素の多く又はすべてが含まれるが、図1には、メモリストレージデバイス111だけを示した。図1に示された論理接続に、ローカルエリアネットワーク(LAN)112及び広域ネットワーク(WAN)113が含まれている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、及びインターネットでありふれたものである。
LANネットワーキング環境で使用される時に、コンピュータ100は、ネットワークインターフェース又はネットワークアダプタ114を介してローカルネットワーク112に接続される。WANネットワーキング環境で使用される時に、パーソナルコンピュータ100に、通常、インターネットなどの広域ネットワーク113を介する通信を確立する、モデム115又は他の手段が含まれている。モデム115は、内蔵又は外付けとすることができるが、シリアルポートインターフェース106を介してシステムバス130に接続されている。ネットワーク化された環境では、パーソナルコンピュータ100に関して図示したプログラムモジュール又はその一部を、リモートメモリストレージデバイスにストアすることができる。
図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の技術を使用できる。TCP/IP、イーサネット(登録商標)、FTP、HTTP、Bluetooth、IEEE 802.11x、及び類似物などのさまざまな周知のプロトコルのいずれかの存在が、仮定され、このシステムは、クライアント−サーバ構成で動作して、ユーザがウェブベースサーバからウェブページを取り出すことを可能にする。さまざまな普通のウェブブラウザを使用して、ウェブページのデータを表示し、操作することができる。
<イメージキャプチャペン>
本発明の実施態様に、エンコードされたデータストリームを、エンコードされたデータストリームを表す表示形式にすることが含まれている(例えば、図4Bについて説明するように、エンコードされたデータストリームを使用して、グラフィカルパターンを作成する)。表示形式は、印刷された紙(又は他の物理媒体)とするか、エンコードされたデータストリームを別のイメージ又はイメージのセットと共に投影するディスプレイとすることができる。たとえば、エンコードされたデータストリームは、紙の上の物理的なグラフィカルイメージ又は表示されるイメージにオーバーレイされるグラフィカルイメージ(例えば、文書のテキストを表す)とするか、ディスプレイスクリーン上の物理的(変更不能)グラフィカルイメージとすることができる(したがって、ペンによってキャプチャされたイメージ部分を、ディスプレイスクリーン上で突き止めることができる)。
キャプチャされたイメージの位置のこの判定を使用して、紙、媒体、又はディスプレイスクリーンとのユーザの相互作用の位置を判定することができる。本発明のいくつかの実施態様で、ペンを、紙に書き込むインクペンとすることができる。他の実施態様で、ペンを、ユーザがコンピュータディスプレイの表面で書くのに用いられるスタイラスとすることができる。すべての相互作用を、文書上のエンコードされたイメージの知識を有するシステムかコンピュータスクリーンに表示される文書をサポートするシステムに供給することができる。ペン又はスタイラスが文書をトラバースする時にペン又はスタイラス内のカメラを用いてイメージを繰り返してキャプチャすることによって、システムは、ユーザによって制御可能なスタイラスの移動を追跡することができる。表示されるイメージ又は印刷されたイメージを、空白の紙又はコンテンツの豊かな紙に関連するウォーターマーク(watermark)とすることができ、あるいは、スクリーンにオーバーレイされるかスクリーンに作り込まれる表示されるイメージ又は固定コーディングに関連するウォーターマークとすることができる。
図2A及び図2Bは、本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図である。カメラ203を有するペン201を例示的に示している。ペン201に、インク溜めを含んでも含まなくてもよいペン先202が含まれる。カメラ203は、表面207からのイメージ204をキャプチャする。ペン201には、さらに、破線の箱206で表される追加のセンサ及び/又はプロセッサを含めることができる。これらのセンサ及び/又はプロセッサ206に、他ののペン201及び/又はパーソナルコンピュータに情報を送信する能力(例えば、Bluetooth又は他の無線プロトコルを介して)を含めることもできる。
図2Bは、カメラ203によって見られるイメージを表わしている。1つの例示的な例では、カメラ203の視野(すなわち、カメラのイメージセンサの解像度)が、32×32ピクセルである(N=32である)。この実施形態では、キャプチャされるイメージ(32ピクセル×32ピクセル)が、カメラ203によってキャプチャされる表面平面の約5mm×5mmの区域に対応する。したがって、図2Bには、長さ32ピクセル×幅32ピクセルの視野が示されている。Nのサイズは、調整可能であり、より大きいNは、より高いイメージ解像度に対応する。また、カメラ203の視野が、例示のためにこの図2Bでは正方形として示されているが、当技術分野で知られているように、視野に他の形状を含めることができる。
カメラ203によってキャプチャされるイメージは、イメージフレームの列{Ii}として定義することができ、このIiは、ペン201によって、サンプリング時刻tiにキャプチャされる。サンプリングレートは、システムコンフィギュレーション及び性能要件に応じて、これより小さく又はこれより大きくすることができる。キャプチャされるイメージフレームのサイズは、システムコンフィギュレーション及び性能要件に応じて、これより小さく又はこれより大きくすることができる。
カメラ203によってキャプチャされるイメージは、処理システムによって直接に使用することができ、あるいは、事前フィルタリングを受けることができる。この事前フィルタリングは、ペン201内で行うことができ、あるいは、ペン201の外部(例えば、パーソナルコンピュータ内)で行うことができる。
図2Bのイメージサイズは、32×32ピクセルである。各コーディングユニットサイズが3×3ピクセルである場合に、キャプチャされるエンコードされたユニットの数は、約100ユニットになる。エンコーディングユニットサイズが5×5ピクセルの場合には、キャプチャされるエンコードされたユニットの数は、約36になる。
図2Aには、位置204からのパターンのイメージ210が形成される像平面209も示されている。物体平面207のパターンから受け取られる光が、レンズ208によって集光される。レンズ208は、単一のレンズ又は複数部分のレンズ系とすることができるが、ここでは、図を単純にするために単一レンズとして表されている。イメージキャプチャセンサ211が、イメージ210をキャプチャする。
イメージセンサ211は、イメージ210をキャプチャするのに十分な大きさとすることができる。その代わりに、イメージセンサ211を、位置212でペン先202のイメージをキャプチャするのに十分な大きさとすることができる。参照のため、位置212でのイメージを、仮想ペン先と呼ぶ。イメージセンサ211に関する仮想ペン先位置は、ペン先、レンズ208、及びイメージセンサ211の間の一定の関係を有して固定されている。
次の変換FS→Pによって、カメラによってキャプチャされたイメージ内の位置座標が、紙の上の実際のイメージの位置座標に変換される。
paper=FS→P(LSensor
書込中に、ペン先と紙は、同一平面にある。したがって、仮想ペン先から実際のペン先への変換も、FS→Pになる。
pentip=FS→P(Lvirtual-pentip
変換FS→Pを、アフィン変換として推定することができる。これは、FS→Pの推定値として、
Figure 2006073011
として単純化される。ここで、θx、θy、sx、及びsyは、位置204でキャプチャされるパターンの2つの方位の回転及びスケールである。さらに、キャプチャされたイメージを紙の上の対応する実際のイメージと突き合わせることによって、F’S→Pをリファイン(refine;改善する)することができる。「リファイン」とは、再帰法と称するタイプの最適化アルゴリズムによって、変換FS→Pのより正確な推定値を得ることを意味する。再帰法では、行列F’S→Pを初期値として扱う。リファインされた推定によって、SとPの間の変換がより正確に記述される。
次に、較正によって仮想ペン先の位置を判定することができる。
ペン先202を、紙の上の固定位置Lpentipに置く。次に、ペンを傾け、カメラ203が異なるペン姿勢で一連のイメージをキャプチャできるようにする。キャプチャされるイメージごとに、変換FS→Pを得ることができる。この変換から、仮想ペン先の位置Lvirtual-pentipを得ることができる。
virtual-pentip=FP→S(Lpentip
ここで、Lpentipは、(0,0)として初期化され、
P→S=(FS→P-1
である。
各イメージから得られたLvirtual-pentipの平均をとることによって、仮想ペン先の位置Lvirtual-pentipを判定することができる。Lvirtual-pentipを用いて、Lpentipのより正確な推定値を得ることができる。数回の反復の後に、仮想ペン先の正確な位置Lvirtual-pentipを判定することができる。
ここで、仮想ペン先の位置Lvirtual-pentipがわかっている。キャプチャされたイメージから、変換FS→Pも得ることができる。最後に、この情報を使用して、実際のペン先の位置Lpentipを判定することができる。
pentip=FS→P(Lvirtual-pentip
<配列のエンコード>
1次元列を折り畳むことによって、2次元配列を構築することができる。十分に多数のビットを含む2次元配列の一部を使用して、完全な2次元配列でのその位置を判定することができる。しかし、1つ又は少数のキャプチャされたイメージから位置を判定する必要がある場合がある。キャプチャされたイメージ部分が2次元配列内の複数の位置に関連する可能性を最小にするために、非反復的な列を使用して、配列を作成することができる。作成される列の特性の1つが、列がある長さ(又はウィンドウ)nにわたって繰り返されないことである。次に、1次元列の作成と、配列への列の折り畳みを説明する。
<列構築>
エンコーディングシステムの出発点として、数列を使用することができる。たとえば、列(m−列とも称する)を、体Fqのq個の要素の集合として表すことができる。ここで、q=pnであり、n≧1、pは素数である。列又はm−列は、多項式除算を含むがこれに制限されないさまざまな異なる技法によって生成することができる。多項式除算を使用して、列を次のように定義することができる。
Figure 2006073011
ここで、Pn(x)は、体Fq[x](qn個の要素を有する)の次数nの原始多項式である。Rl(x)は、体Fq[x]の次数1(1<n)の非0多項式である。列は、2ステップすなわち、第1に2つの多項式の除算(体Fqの要素がもたらされる)、第2に剰余にxをかけることからなる反復手順を使用して作成することができる。この計算は、出力が繰返しを始める時に停止する。この処理は、文献に記載のように、線形フィードバックシフトレジスタを使用して実施することができる(例えば、非特許文献1参照)。この環境で、列の循環シフトと多項式Rl(x)の間の関係が確立され、Rl(x)を変更することによって、列が循環シフトされるだけであり、すべての循環シフトが、多項式Rl(x)に対応する。結果の列の特性の1つは、列が、qn−1の周期を有し、1周期内で、幅(又は長さ)nにわたって、すべての部分が、列の中に1回だけ存在することである。これを、「ウィンドウプロパティ(window property)」と称する。周期qn−1を、列の長さとも称し、nを列の次数とも称する。
上述した処理は、ウィンドウプロパティを有する列の作成に使用できるさまざまな処理の1つにすぎない。
<配列構築>
イメージ(その一部をカメラによってキャプチャすることができる)の作成に使用できる配列(又はm−配列)は、1次元の列又はm−列の拡張である。Aが、周期(m1,m2)の配列である、すなわち、A(k+m1,l)=A(k,l+m2)=A(k,l)であるものとする。n1×n2ウィンドウが、Aの期間の中でシフトされる時に、体Fqのすべての非0のn1×n2行列が、1回だけ現れる。この特性を、各ウィンドウが一意であると言う点で、「ウィンドウプロパティ」とも称する。ウィンドウを、周期(m1,m2)(m1及びm2は、配列内に存在するビットの水平の個数及び垂直の個数である)及び次数(n1,n2)の配列として表すことができる。
2進配列(又はm−配列)は、この列を折り畳むことによって構築することができる。1つの手法が、列を入手し、配列の長さがL=m1×m2=2n−1である場合に、m1×m2のサイズに折り畳むことである。代替案では、所定のサイズの含めたい空間(たとえば1枚の紙、30枚の紙、又はコンピュータモニタのサイズ)から始め、区域(m1×m2)を判定し、そのサイズを使用して、L≧m1×m2(ただしL=2n−1)にすることである。
図3A乃至図3Fは、本発明の実施形態に係るさまざまなシーケンス及び折り畳み方法(folding technique)を示す図で、さまざまな異なる折り畳み方法を使用することができる。例えば、図3Aから図3Cに、3つの異なる列を示す。これらのそれぞれを、図3Dに示された配列に折り畳むことができる。3つの異なる折り畳み方法は、図3Dでオーバーレイとして示され、図3E及び図3Fでラスタパスとして示されている。ここでは、図3Dに示された折り畳み方法を使用する。
図3Dに示された折り畳み方法を作成するために、長さL、次数nの列{ai}を作成する。次に、サイズm1×m2の配列{bkl}(ただし、gcd(m1,m2)=1かつL=m1×m2)を、配列の各ビットを
kl=ai、ただしk=i mod(m1)、l=i mod(m2)、i=0,…,L−1. (1)
によって計算することによって、列{ai}から作成する。
この折り畳み方法は、その代わりに、配列の対角線に列を置き、端に達した時に反対の端から継続すること、と表すことができる。
図4A乃至図4Eは、本発明の実施形態に係るさまざまなエンコーディングシステムを示す図である。図4Aに、図3Dの配列をエンコードするのに使用できるサンプルのエンコード技術を示す。他のエンコード技術を使用できることを諒解されたい。たとえば、代替のコーディング技術を、図11に示す。
図4Aを参照すると、第1ビット401(たとえば「1」)が、暗いインクの列によって表される。第2ビット402(たとえば「0」)が、暗いインクの行によって表される。任意の色のインクを使用して、さまざまなビットを表すことができる。選択されるインクの色における唯一の要件は、イメージキャプチャシステムによって区別可能になるように、媒体の背景に対してかなりのコントラストをもたらすことである。図4Aのビットは、セルの3×3行列によって表される。行列のサイズは、イメージキャプチャシステムのサイズ及び解像度に基づく任意のサイズに変更することができる。ビット0及び1の代替表現を、図4C乃至図4Eに示す。図4A乃至図4Eのサンプルエンコーディングの1又は0の表現を、影響なしに切り替えられることを諒解されたい。図4Cに、インターリーブ配置で2つの行又は列を占めるビット表現を示す。図4Dに、破線の形で行又は列を占めるピクセルの代替配置を示す。最後に、図4Eに、不規則な間隔フォーマット(例えば、2つの暗いドットと1つの空白ドット)で行及び列を占めるピクセル表現を示す。
図4Aに戻ると、あるビットが、3×3行列によって表され、イメージングシステムが、3×3領域内で1つの暗い行と2つの白い行を検出する場合に、0(又は1)が検出される。1つの暗い列と2つの白い列を有するイメージが検出される場合に、1(又は0)が検出される。
ここでは、複数のピクセル又はドットが、1つのビットを表すのに使用される。単一のピクセル(又はビット)を使用して1つのビットを表すことは、脆弱である。ほこり、紙の折れ目、平らでない表面などによって、データ単位の単一ビット表現の読み取りが難しくなる。しかし、異なる手法を使用して、表面で配列をグラフィカルに表現できる。いくつかの手法を、図4Cから4Eに示す。他の手法も使用できることを諒解されたい。空間的にシフトされたドットだけを使用する手法を、図11に示す。
ビットストリームを使用して、図4Bのグラフィカルパターン403を作成する。グラフィカルパターン403には、12個の行と18個の列が含まれる。行及び列は、ビット表現401及び402を使用してグラフィカル表現に変換されたビットストリームによって形成される。図4Bは、次のビット表現を有するものと見ることができる。
Figure 2006073011
<デコード>
ある人が、図2Aのペンを用いて書くか、エンコードされたパターンの近くにペンを移動する時に、カメラが、イメージをキャプチャする。例えば、ペン201が、紙に押し付けられる時及び紙の上の文書をトラバースする時に、圧力センサを使用することができる。そのイメージを処理して、エンコードされたイメージの完全な表現に関するキャプチャされたイメージの方位を判定し、キャプチャされたイメージを構成するビットを抽出する。
図5A乃至図5Dは、図4A及び図4Bによるエンコーディングシステムに関連する4つの可能な結果の角(corner)を示す図である。キャプチャされたイメージの、エンコードされた領域全体に関する方位を判定するために、図5A乃至図5Dに示された4つの知覚可能な角のすべてがグラフィカルパターン403に存在することができないことがわかる。実際に、正しい方位であれば、図5Aに示されたタイプの角は、グラフィカルパターン403に存在し得ない。したがって、図5Aに示されたタイプの角がない方位が、正しい方位である。
図6は、本発明の実施形態による、キャプチャされたイメージ部分の回転を示す図である。カメラ601によってキャプチャされたイメージを分析し、その方位を判定して、イメージ601によって実際に表される位置に関して解釈可能にすることができる。まず、イメージ601を再検討して、ピクセルが水平及び垂直に整列するようにイメージを回転するのに必要な角度θを判定する。水平及び垂直以外の配置への基礎になるグリッドの回転(例えば、45°)を含む代替のグリッド配置が可能である。ユーザは、まず垂直パターン及び水平パターンに気付く傾向がある場合があるので、水平及び垂直以外の配置の使用は、視覚的にユーザの注意をそらすものを除去するという可能な利益を提供することができる。説明を単純にするために、グリッドの方位(基礎になるグリッドの水平、垂直、及び他の回転)を、集合的に事前定義のグリッド方位と称する。
次に、イメージ601を分析して、どの角が欠けているかを判定する。イメージ601を、デコードの準備ができたイメージ603に回転するのに必要な回転量oは、o=(θ+回転量{どの角が欠けているかによって定義される})として示される。回転量は、図7の式によって示される。図6に戻ると、角度θは、まず、ピクセルの水平及び垂直(又は他の事前定義のグリッド方位)配置に達するピクセルのレイアウトによって決定され、イメージが、602に示されているように回転される。次に、分析を行って、欠けている角を判定し、イメージ602をイメージ603に回転して、デコードのためにイメージをセットアップする。ここで、イメージは、反時計回りに90°回転され、その結果、イメージ603が、正しい方位を有するようになり、デコードに使用できるようになる。
回転角度θを、欠けている角を考慮するためにイメージ601を回転する前又は後に適用できる。また、キャプチャされたイメージのノイズを考慮することによって、4つのすべてのタイプの角が存在し得る。各タイプの角の数を数え、最も少ない数を有するタイプを、欠けている角のタイプとして選択することができる。
最後に、イメージ603内のコードを読み出し、イメージ403の作成に使用された最初のビットストリームと相関させる。この相関は、複数の形で実行することができる。例えば、この相関は、回復されたビットストリームを、最初のビットストリーム内の他のすべてのビットストリームフラグメントと比較する、再帰的手法によって実行することができる。第2に、回復されたビットストリームと最初のビットストリームの間で、例えば、2つのビットストリームの間のハミング距離を使用することによって、統計分析を実行することができる。さまざまな手法を使用して、元のビットストリーム内の回復されたビットストリームの位置を判定できる。
以下に説明するように、迷路パターン分析は、回復されたビットをイメージ603から得る。回復されたビットを得たならば、最初の配列でキャプチャされたイメージの位置を突き止める必要がある(例えば、図4Bに示されたもの)。配列全体の中でのビットのセグメントの位置を判定する処理は、複数の項目によって複雑になる。第1に、キャプチャされた実際のビットが、隠されている場合がある(例えば、カメラが、元のコードを隠す手書きのあるイメージをキャプチャする場合がある)。第2に、ごみ、折れ目、反射などによって、キャプチャされるイメージのエラーが作られる場合もある。これらのエラーによって、位置突き止め処理が難しくなる。これに関して、イメージキャプチャシステムが、イメージから抽出される非シーケンシャルビットを用いて機能する必要がある場合がある。次は、イメージからの非シーケンシャルビットを用いて動作する方法を表す。
列(又はm−列)Iが、べき級数I(x)=1/Pn(x)に対応し、nが、m−列の次数であり、キャプチャされたイメージに、IのK個のビットb=(b012 … bK-1tが含まれ、K≧nであり、添字tが、行列又はベクトルの転置を表すものとする。K個のビットの位置sは、b0が列の先頭にシフトされるようにする、Iの循環シフトの回数である。そのときに、このシフトされた列Rは、べき級数xs/Pn(x)、又はR=Ts(I)に対応し、Tは、循環シフト演算子である。このsは、間接的に見つかる。Pn(x)を法とする多項式は、体を形成する。xs≡r0+r1x+…rn-1n-1 mod(Pn(x))であることが保証される。したがって、(r0,r1,…,rn-1)を見つけることができ、sの解を見つけることができる。
関係xs≡r0+r1x+…rn-1n-1 mod(Pn(x))は、R=r0+r1T(I)+…+rn-1n-1(I)であることを意味する。これを2進一次方程式で書くと、
R=rtA (2)
になる。ここで、r=(r012 … rn-1tであり、A=(I T(I) … Tn-1(I))tであり、これは0シフトから(n−1)シフトまでのIの循環シフトからなる。rを解くために、疎なKビットだけが、Rで使用可能である。Rのb1とb0のインデックスの差が、ki(i=1,2,…,k−1)であるものとすると、Rの1番目と(ki+1)番目(i=1,2,…,k−1)の要素は、正確にb0,b1,…,bk-1である。Aの1番目と(ki+1)番目(i=1,2,…,k−1)の列を選択することによって、次の2進一次方程式が形成される。
t=rtM (3)
ここで、Mは、Aのn×K部分行列である。
bにエラーがない場合には、rの解を
Figure 2006073011
と表すことができる。ここで
Figure 2006073011
は、Mの非縮退n×n部分行列であり、
Figure 2006073011
は、bの対応する部分ベクトルである。
rがわかっていれば、Pohlig−Hellman−Silverアルゴリズム(非特許文献1参照)を使用して、xs≡r0+r1x+…rn-1n-1 mod(Pn(x))になるsを見つけることができる。
行列A(n×Lのサイズであり、L=2n−1)が巨大になる場合があるので、行列A全体を保管することは避けなければならない。実際に、上の処理で見たように、インデックス差kiを有する抽出されたビットを与えられて、Aの1番目及び(ki+1)番目の列だけが、計算に関係する。そのようなkiの選択は、キャプチャされたイメージのサイズに対して非常に限られている。したがって、計算に使用される列だけを保存する必要がある。そのような列の総数は、Lよりはるかに小さい(L=2n−1がm−列の長さである場合に)。
<エラー訂正>
bにエラーが存在する場合に、rの解決が複雑になる。エラー訂正を伴うデコードの従来の方法は、簡単に適用できない可能性がある。というのは、キャプチャされたビットに関連する行列Mが、キャプチャされたイメージごとに異なる可能性があるからである。
本発明では、統計学的な手法を使用する。bのエラービットの数neが、Kと比較して相対的に小さいと仮定すると、b及び対応する、縮退でないMの部分行列
Figure 2006073011
のK個のビットから正しいn個のビットが選ばれる確率は高い。
選択されたn個のビットがすべて正しい時に、btとrtMの間のハミング距離又はrに関連するエラービットの数は、最小限にならなければならず、rは、式(4)を介して計算される。この処理を複数回繰り返すことによって、最小限のエラービットをもたらす正しいrを識別できる可能性が高い。
最小個数のエラービットに関連する1つのrだけがある場合には、それが正しい解とみなされる。そうではなく、最小個数のエラービットに関連する複数のrがある場合には、neが、Mによって生成されるコードのエラー訂正能力を超える可能性が高く、デコード処理は失敗する。システムは、次にキャプチャされたイメージの処理に進むことができる。もう1つの実施形態では、ペンの前の位置に関する情報を考慮に入れることができる。すなわち、キャプチャされたイメージのそれぞれについて、次に、ペンがあると期待できる宛先領域を識別することができる。例えば、ユーザが、カメラによってキャプチャされる2つのイメージの間でペンを持ち上げなかった場合に、第2のイメージキャプチャによって判定されるペンの位置は、第1の位置から遠すぎてはならない。最小個数のエラービットに関連する各rを検査して、rから計算される位置sが、ローカル制約、すなわち、位置が指定された宛先領域内であるかどうかを満足するかどうかを調べることができる。
位置sがローカル制約を満足する場合に、配列内の抽出されたビットのX,Y位置が返される。そうでない場合にデコード処理は失敗する。
図8は、本発明の実施形態に係るキャプチャされた配列の位置を判定する処理を示す図である。キャプチャされたイメージの列(又はm−列)内の位置を判定するのに使用できる処理を示す。まず、ステップ801で、キャプチャされたイメージに関するデータストリームを受け取る。ステップ802で、対応する列をAから抽出し、行列Mを構築する。
ステップ803で、n個の独立の列ベクトルを、行列Mからランダムに選択し、式(4)を解くことによってベクトルrを判定する。この処理を、ステップ804でQ回(たとえば100回)繰り返す。ループ回数の判定は、セクション「ループ回数の計算」で説明する。
ステップ805で、rを、それに関連するエラービットの個数に従ってソートする。ソートは、当技術分野で既知のさまざまなソーティングアルゴリズムを使用して行うことができる。たとえば、選択ソートアルゴリズムを使用することができる。選択ソートアルゴリズムは、数Qが多くない時に有益である。しかし、Qが多い場合には、多数の項目をより効率的に処理できる他のソーティングアルゴリズム(たとえばマージソート)を使用することができる。
システムは、ステップ806で、複数のrが最小個数のエラービットに関連するかどうかを検査することによって、エラー訂正が成功裡に実行されたかどうかを判定する。そうである場合に、ステップ809でエラーを返し、デコード処理が失敗したことを示す。そうでない場合には、ステップ807で、例えば、Pohlig−Hellman−Silverアルゴリズムを使用することによって、列(又はm−列)の抽出されたビットの位置sを計算する。
次に、ステップ808で、配列内の(X,Y)位置を、x=s mod m1及びy=s mod m2として計算し、その結果を返す。
<位置判定>
図9は、本発明の実施形態に係るキャプチャされたイメージの位置を判定する方法を示す図である。ペン先の位置を判定する処理を示す。入力は、カメラによってキャプチャされたイメージであり、出力は、ペン先の位置座標とすることができる。また、出力に、キャプチャされたイメージの回転角度などの他の情報を含めることができる(含めないこともできる)。
ステップ901で、カメラからイメージを受け取る。次に、ステップ902で、任意選択として(ステップ902の破線の輪郭によって示されるように)、受け取ったイメージを前処理して、明るいピクセルと暗いピクセルの間のコントラストの調節などを行うことができる。
次に、ステップ903で、イメージを分析して、その中のビットストリームを判定する。
次に、ステップ904で、ビットストリームからn個のビットをランダムに複数回選択し、元の列(又はm−列)内の受け取ったビットストリームの位置を判定する。
最後に、キャプチャされたイメージの位置をステップ904で判定したならば、ステップ905で、ペン先の位置を判定することができる。
図10は、本発明の実施形態に係るキャプチャされたイメージの位置を判定するもう1つの方法を示す図である。ステップ903及び904に関するさらなる詳細を示し、キャプチャされたイメージ内のビットストリームを抽出する手法を示す。まず、ステップ1001で、カメラからイメージを受け取る。次に、ステップ1002で、任意選択として(ステップ1002の破線によって示されるように)、イメージにイメージ前処理を行うことができる。ステップ1003で、パターンを抽出する。ここで、さまざまな線のピクセルを抽出して、パターンの方位及び角度θを見つけることができる。
次に、ステップ1004で受け取ったイメージを分析して、基礎になるグリッド線を判定する。ステップ1005で、グリッド線が見つかる場合に、ステップ1006でパターンからコードを抽出する。その後、ステップ1007でコードをデコードし、ステップ1008でペン先の位置を判定する。ステップ1005でグリッド線が見つからなかった場合には、ステップ1009でエラーを返す。
<拡張デコードエラー訂正アルゴリズムの概要>
図12は、本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのデコードをフローチャートに示す図である。図12に示された本発明の実施形態を用いると、キャプチャされたイメージ(キャプチャされた配列に対応する)から抽出されたビット1201及び宛先領域を与えられて、m−配列デコードエラー訂正処理の変形形態が、X,Y位置をデコードする。図12に、この機能強化された手法の処理1200の流れ図を示す。処理1200に、2つのコンポーネント1251及び1253が含まれている。
・1回デコード。コンポーネント1251に、次の3つの部分が含まれる。
>ランダムビット選択:抽出されたビット1201の部分集合をランダムに選択する(ステップ1203)。
>部分集合をデコードする(ステップ1205)。
>ローカル制約を用いてX,Y位置を判定する(ステップ1209)。
・スマートビット選択を用いるデコード。コンポーネント1253に、次の4つの部分が含まれる。
>スマートビット選択:抽出されたビットの別の部分集合を選択する(ステップ1217)。
>部分集合をデコードする(ステップ1219)。
>ステップ1217及びステップ1219の反復の回数(ループ回数)を調整する(ステップ1221)。
>ローカル制約を用いてX,Y位置を判定する(ステップ1225)。
本発明の実施形態は、ビットを選択する慎重な戦略を使用し、ループ反復の回数を調整し、処理1200に供給されるローカル制約に従ってX,Y位置(位置座標)を判定する。コンポーネント1251及び1253の両方を用いて、ステップ1205及び1219(「1回デコード」)は、式(4)を使用してrを計算する。
Figure 2006073011
が、デコードされたビットである、すなわち
Figure 2006073011
であるものとする。bと
Figure 2006073011
の間の差が、rに関連するエラービットである。
図12には、上述したような本発明の実施形態に係るキャプチャされたイメージから抽出されたビット1201のデコードの処理1200のフローチャートを示す。処理1200に、コンポーネント1251及び1253が含まれる。コンポーネント1251は、キャプチャされたイメージ(キャプチャされた配列に対応する)に関連する抽出されたビット1201(Kビットを含む)を入手する。ステップ1203で、nビット(nは、m−配列の次数である)を、抽出されたビット1201からランダムに選択する。ステップ1205で、処理1200は、1回デコードしてrを計算する。ステップ1207で、処理1200は、エラービットがbについて検出されたかどうかを判定する。ステップ1207で、エラービットがないと判定される場合に、ステップ1209で、キャプチャされた配列の位置のX,Y座標を判定する。ステップ1211で、もしX,Y座標がローカル制約を満足する場合、すなわち、宛先領域内の座標である場合に、処理1200は、ステップ1213でX,Y位置を提供する(別の処理又はユーザインターフェースなどに)。そうでない場合に、ステップ1215で、失敗表示を提供する。
ステップ1207で、bにエラービットが検出された場合に、エラービットと共にデコードするためにコンポーネント1253が実行される。ステップ1217で、抽出されたビット1201からnビットの別の集合(ステップ1203で選択されたnビットと少なくとも1ビットだけ異なる)を選択する。ステップ1221及び1223で、抽出されたビットをデコードするのに必要な反復回数(ループ回数)を判定する。ステップ1225で、ステップ1219で得られた候補のどれがローカル制約を満足するかをテストすることによって、キャプチャされた配列の位置を判定する。ステップ1217乃至1225を、詳細に説明する。
<スマートビット選択>
ステップ1203で、抽出されたビット1201(Kビットを有する)からnビットを選択し、r1について解く。式(5)を使用して、デコードされたビットを計算することができる。
Figure 2006073011
Figure 2006073011
であるものとする。ここで、
Figure 2006073011
は、
Figure 2006073011
の第kビットであり、B1={bk|k∈I1}、
Figure 2006073011
である、すなわち、B1は、デコードされた結果がオリジナルビットと同一であるビットであり、
Figure 2006073011
は、デコードされた結果がオリジナルビットと異なるビットであり、I1及び
Figure 2006073011
は、これらのビットの対応するインデックスである。任意のnビットがB1から選択される時に、同一のr1が得られることを諒解されたい。したがって、次のnビットが注意深く選択されない場合に、選択されたビットが、B1の部分集合になり、したがって、同一のr1が得られる可能性がある。
そのような状況を回避するために、ステップ1217で、次の手順に従って、次のnビットを選択する。
1.ビット配置1351に対応する図13に示されているように、
Figure 2006073011
から少なくとも1ビットを選択し、残りのビットをB1 1301及び
Figure 2006073011
1303からランダムに選択する。次に、処理1200が、r2を解き、
Figure 2006073011
を計算することによって、B2 1305、1309及び
Figure 2006073011
1307、1311を見つける。
2.ステップ1を繰り返す。次のnビットを選択する時に、すべての
Figure 2006073011
(i=1,2,3…,x−1、ただし、xは現在のループ回数)について、少なくとも1ビットを
Figure 2006073011
から選択する。この反復は、そのようなビットの部分集合を選択できない時、又はループ回数に達した時に終了する。
<ループ回数の計算>
エラー訂正コンポーネント1253を用いて、必要な反復の回数(ループ回数)を、各ループの後に調整する。ループ回数は、期待されるエラーレートによって決定される。選択されたnビットに正しくないものがあることの期待されるエラーレートpeは、
Figure 2006073011
である。ここで、ltは、ループ回数を表し、定数によって初期化され、Kは、キャプチャされた配列から抽出されたビット数であり、neは、処理1200の反復中にこうむるエラービットの最小個数を表し、nは、m−配列の次数であり、
Figure 2006073011
は、nビットがKビットから選択される際の組合せの個数である。
この実施形態では、peをe-s=0.0067未満にしたい。(6)と組み合わせると、
Figure 2006073011
が得られる。ループ回数を調整することによって、エラー訂正に必要な処理1253の反復の回数を大幅に減らすことができる。
<ローカル制約を用いるX,Y位置の判定>
ステップ1209及び1225で、デコードされた位置は、宛先領域内でなければならない。宛先領域は、このアルゴリズムへの入力であり、異なる応用例に応じて、さまざまなサイズ及び場所とするか、単にm−配列全体とすることができる。通常、これは、応用例によって予測することができる。たとえば、前の位置が判定されている場合に、書込速度を考慮すると、現在のペン先の宛先領域は、前の位置の近くでなければならない。しかし、ペンが持ち上げられた場合には、次の位置はどこにでもすることができる。したがって、この場合に、宛先領域はm−配列全体にしなければならない。正しいX,Y位置は、次のステップによって判定される。
ステップ1224で、処理1200は、エラービットの対応する個数が
Figure 2006073011
未満であるriを選択する。ここで、ltは実際のループ回数であり、lrは
Figure 2006073011
によって計算されるローカル制約レートであり、Lは、m−配列の長さである。
ステップ1224で、エラービット数の昇順でriをソートする。次に、ステップ1225、1211、及び1212で、対応するX,Y位置が宛先領域内にある最初のriを見つける。ステップ1225、1211、及び1212は、最終的に、結果としてX,Y位置を返す(ステップ1213を介して)か、デコード手順が失敗したことの表示を返す(ステップ1215を介して)。
<拡張デコードエラー訂正処理の例示的な例>
例示的な例によって、コンポーネント1251及び1253によって実行される処理1200を実証する。n=3、K=5であり、I=(I01 … I6tが、次数n=3のm−列であると仮定する。この場合に、
Figure 2006073011
である。また、抽出されたビットb=(b01234tは、K=5の場合に、実際にはm−列の第s、第(s+1)、第(s+3)、第(s+4)、及び第(s+6)ビットである(これらの数は、実際にはm−配列長L=2n−1=23−1=7の実際の剰余である)。したがって、
Figure 2006073011
であり、これは、Aの第0列、第1列、第3列、第4列、及び第6列からなる。数sは、m−配列内のb0のX,Y位置を一意に判定するが、bt=rtMを満足すると期待されるr=(r012tを解いた後に計算することができる。bの可能なエラービットに起因して、bt=rtMが完全に満足されない場合がある。
処理1200では、次の手順を使用する。bから、n=3ビット、例えば、
Figure 2006073011
をランダムに選択する。r1について解く。
Figure 2006073011
ここで、
Figure 2006073011
は、Mの第0列、第1列、及び第2列からなる(
Figure 2006073011
が、n×n行列であり、
Figure 2006073011
が、l×nベクトルであり、その結果、
Figure 2006073011
が、選択されたビットのl×nベクトルであることに留意されたい)。
次に、デコードされたビットを計算する。
Figure 2006073011
ここで、Mは、n×K行列であり、
Figure 2006073011
は、l×nベクトルであり、その結果、
Figure 2006073011
はl×Kベクトルである。
Figure 2006073011
が、bと同一である、すなわち、エラービットが検出されない場合に、ステップ1209で、X,Y位置が決定され、ステップ1211で、デコードされた位置が宛先領域内にあるかどうかが判定される。そうである場合に、デコードは成功であり、ステップ1213が実行される。そうでない場合には、ステップ1215によって示されるように、デコードが失敗する。
Figure 2006073011
がbと異なる場合に、bのエラービットが検出され、コンポーネント1253が実行される。ステップ1217で、集合B1、たとえば{b0123}を判定するが、ここで、デコードされたビットは、オリジナルビットと同一である。したがって、
Figure 2006073011
である(図13のビット配置1351に対応する)。ループ回数(lt)が、定数、例えば、100に初期化されるが、これは、応用例に応じて可変とすることができる。r1に対応するエラービット数が1と等しいことに留意されたい。次に、ステップ1221で、式(7)、lt1=min(lt,13)=13に従ってループ回数(lt)を更新する。
次に、ステップ1217で、bから別のn=3ビットを選択する。このビットのすべてがB1、例えば、{b023}に属する場合に、ステップ1219で、r1をもう一度判定する。そのような繰り返しを避けるために、ステップ1217で、例えば、
Figure 2006073011
から1ビット{b4}を選択し、残りの2ビット{b01}をB1から選択することができる。
選択された3ビットは
Figure 2006073011
を形成する。ステップ1219で、r2について
Figure 2006073011
を解く。ここで、
Figure 2006073011
は、Mの第0列、第1列、及び第4列からなる。
ステップ1219で、
Figure 2006073011
を計算する。
Figure 2006073011
とbが同一になる集合B2、たとえば{b014}を見つける。すると、
Figure 2006073011
である(図13のビット配置1353に対応する)。ステップ1221で、式(7)に従ってループ回数(lt)を更新する。r2に関連するエラービット数が、2と等しいことに留意されたい。(7)に代入すると、lt2=min(lt1,32)=13である。
もう1つの反復を実行する必要があるので、ステップ1217で、bからもう1つのn=3ビットを選択する。選択されたビットは、すべてがB1又はB2のいずれかに属してはならない。したがって、ステップ1217で、例えば、
Figure 2006073011
からの1ビット{b4}、
Figure 2006073011
からの1ビット{b2}、及び残りの1ビット{b0}を選択することができる。
rを解くこと、ビット選択、及びループ回数調整は、前のB1にすべてが属するのではない新しいn=3ビットを選択できなくなるか、最大ループ回数ltに達するまで継続される。
処理1200が、5つのri(i=1,2,3,4,5)を計算し、エラービット数が、それぞれ1、2、4、3、2に対応すると仮定する(実際には、この例では、エラービット数が2を超えることはできないが、例示的な例では、このアルゴリズムを示すために、より多数のエラービットを示す)。ステップ1224で、対応するエラービット数が(8)に示されたNeより少ないri、たとえばr1,r2,r4,r5を選択する。
ステップ1224で、選択されたベクトルr1,r2,r4,r5 を、そのエラービット数の昇順でソートする:r1,r2,r5,r4。ソートされた候補リストから、ステップ1225、1211、及び1212で、対応する位置が宛先領域内にある最初のベクトルr、たとえばr5を見つける。次に、ステップ1213で、対応する位置を出力する。位置のどれもが宛先領域内にない場合には、ステップ1215によって示されるように、デコード処理が失敗する。
<装置>
図14は、本発明の実施形態に係るキャプチャされたイメージから抽出されたビットをデコードする装置を示す図で、キャプチャされた配列から抽出されたビット1201のデコードの装置1400を示している。装置1400に、ビット選択モジュール1401、デコードモジュール1403、位置判定モジュール1405、入力インターフェース1407及び出力インターフェース1409が含まれる。この実施形態で、インターフェース1407は、カメラ203(図2Aに図示)をサポートするモジュールを含むさまざまなソースから、抽出されたビット1201を受け取る。ビット選択モジュール1401は、ステップ1203及び1217に従って、抽出されたビット1201からnビットを選択する。デコードモジュール1403は、選択されたビット(ビット選択モジュール1401によって選択された、K個の抽出されたビットから選択されたnビット)をデコードして、ステップ1205及び1219に従って、検出されたビットエラー及び対応するベクトルriを判定する。デコードモジュール1403は、判定されたベクトルriを位置判定モジュール1405に提示する。位置判定モジュール1405は、ステップ1209及び1225に従って、キャプチャされた配列のX,Y座標を判定する。位置判定モジュール1405は、成功の場合にX,Y座標、失敗の場合にエラー表示を含む結果を、出力インターフェース1409に提示する。出力インターフェース1409は、その結果を別のモジュールに提示することができ、この別のモジュールは、さらなる処理を実行するか、結果を表示することができる。
<迷路パターン分析>
図15は、本発明の実施形態に係る関連する迷路パターンバーと共に迷路パターンセルを示す迷路パターンの例示的なイメージを示す図である。迷路パターン1500に、迷路パターンバー、例えば、1503が含まれる。有効ピクセル(EP)とは、図15に示されているように、迷路パターンバー1503上にある可能性が最も高いピクセルである。一実施形態で、迷路パターンバー1503上のピクセルの比(r)は、迷路パターンバー1503の面積を迷路パターンセル1501の面積で割ったものを計算することによって近似することができる。例えば、迷路パターンセルサイズが、3.2×3.2ピクセルであり、バーサイズが3.2×1ピクセルである場合に、r=1/3.2である。32×32ピクセルカメラによってキャプチャされた文書内容がないイメージの場合に、有効ピクセル数は、約32×32×(1/3.2)=320である。その結果、イメージ内で320個の有効ピクセルが推定される。有効ピクセルは、暗い傾向があるので、より低いグレイレベル値を有する320個のピクセルが選択される(この実施形態で、より低いグレイレベル値は、より暗いピクセルに対応する。例えば、「0」と等しいグレイレベル値は、最も暗いピクセルに対応し、「255」と等しいグレイレベル値は、最も明るいピクセルに対応する)。図15に、迷路パターン1500に対応する例のイメージの分離された有効ピクセルを示す。文書内容がキャプチャされる時に、有効ピクセル数は、(32×32−n)×(1/3.2)として推定され、このnは、文書内容領域にあるピクセルの個数である。
図16は、本発明の実施形態に係る有効ピクセルの推定された方向を示す迷路パターン1600の例示的なイメージを示す図である。図16では、推定された方向(例えば、推定された方向1601又は1603)が、各有効ピクセルに関連する。すべての推定された方向のヒストグラムを形成する。このヒストグラムから、約90度離れており(例えば、80度、90度、又は100度離れたものとすることができる)、最もしばしば現れる(頻度の合計が、80度、90度、又は100度離れた方向のすべての対の間で最大である)2つの方向が、推定された方向の2つのクラスタの最初の中心として選択される。すべての有効ピクセルを、その推定された方向が第1クラスタの中心と第2クラスタの中心のどちらに近いかに基づいて、2つのクラスタにクラスタ化する。推定された方向と中心の間の距離を、min(180−|x−center|,|x−center|)と表すことができ、このxは、有効ピクセルの推定された方向であり、centerは、クラスタの中心である。次に、各クラスタのすべての有効ピクセルの推定された方向の平均値を計算し、その値を、さらなる処理のためのグリッド線の2つの主方向の推定値として使用する。方向1605及び方向1607が、グリッド線の2つの主方向に対応する。
図17は、本発明の実施形態に係る有効ピクセルの方向の推定を示す迷路パターン1700の部分の例示的なイメージを示す図である。有効ピクセル(例えば、有効ピクセル1701)ごとに、その有効ピクセルを通るバーの方向を推定する。点1711、1713、1721、及び1715(以下の式ではA+ 0、B+ 0、A- 0、B- 0と表される)の平均グレイレベル値は、
S(θ=0度)=(G(A+ 0)+G(B+ 0)+G(A- 0)+G(B- 0))/4 ・・・(15)
と計算される。ここで、G(・)は、ある点のグレイレベル値である。点1707、1709、1719、及び1717(下の式では、A+ 1、B+ 1、A- 1、B- 1と表される)の平均グレイレベル値を、同一の形で得る。
S(θ=10度)=(G(A+ 1)+G(B+ 1)+G(A- 1)+G(B- 1))/4 ・・・(16)
この処理を、0度から10度ステップで170度まで、18回繰り返す。最低の平均グレイレベル値を有する方向1723が、有効ピクセル1701の推定された方向として選択される。他の実施形態では、サンプリング角度間隔を10度未満にして、より正確な方向の推定値を得ることができる。半径PA+ 0 1705及び半径PB+ 0 1703の長さは、それぞれ1ピクセル及び2ピクセルとして選択される。
方向の推定に使用される点の位置のx,y値は、たとえば点A+ 1、B+ 1、A- 1、及びB- 1などの整数でないものとすることができる。対応する点のグレイレベル値は、隣接ピクセルのグレイレベル値のバイリニアサンプリングによって得ることができる。バイリニアサンプリングは、
G(x,y)=(1−yd)・[(1−xd)・G(xi,yi)+xd・G(xi+1,yi)]+yd・[(1−xd)・G(xi,yi+1)+xd・G(xi+1,yi+1)] ・・・(17)
によって表される。ここで、(x,y)は、点の位置であり、32×32ピクセルイメージセンサの場合に、−0.5≦x≦31.5、−0.5≦y≦31.5であり、xi,yi及びxd,ydは、それぞれ、x,yの整数部分及び小数部分である。xが0未満又は31を超える場合、あるいはyが0未満又は31を超える場合に、バイリニア外挿を使用する。その場合に、式17は、xi及びyiを0(値が0未満の場合)又は30(値が31を超える場合)にしなければならず、xd=x−xi、yd=y−yiであることを除いて、まだ適用可能である。
図18は、本発明の実施形態に係る代表的な有効ピクセル1809を通るグリッド線の線パラメータの計算を示す、迷路パターン1800の例示的なイメージを示す図である。より多くの有効ピクセルを有するクラスタを選択し、この方向での線パラメータを計算する。というのは、通常、より少ない有効ピクセルを有する主方向を推定する時により大きい誤差があるからである。より多くの有効ピクセルを有する方法で線パラメータを計算することによって、より少ない有効ピクセルを有する主方向のより正確な推定を、2方向の垂直制約を使用することによって得ることができる(この実施形態で、グリッド線は、グリッド線の2つのほぼ直交する集合に関連する)。この手法は、通常、テキスト領域を有する迷路パターンで有効である。
一実施形態で、選択された有効ピクセルを通る線の線パラメータを計算する。有効ピクセルを選択する2つのルールがある。第1に、選択される有効ピクセルは、8ピクセル近傍内の他の有効ピクセルより暗いものでなければならない。第2に、ある有効ピクセルが選択される場合に、その有効ピクセルの24個の近傍ピクセルを選択してはならない(ピクセル(x0,y0)の24個の近傍は、座標(x,y)を有し、|x−x0|≦2かつ|y−y0|≦2であるピクセルを表し、ここで、|・|は、絶対値を表す)。有効ピクセル1809について、関心領域のセクタを、主方向に基づいて判定する。関心セクタは、ベクトル1805及び1807によって決定され、ここで、各ベクトルと主方向1801の間の角度は、ある定数角度、例えば、10度より小さい。次に、ロバスト回帰アルゴリズムを使用して、有効ピクセル1809を通る線のパラメータ、例えば、y=k×x+bと表すことができる、線1803のパラメータを推定するが、、線のパラメータには、傾きk及び線オフセットbが含まれる。
ステップ1;クラスタに含まれ、有効ピクセル1809の関心セクタ内にあるすべての有効ピクセルを、最小自乗回帰アルゴリズムを使用することによって組み込んで、線パラメータを計算する。
ステップ2;線の回帰に使用された各有効ピクセルと推定された線の間の距離を計算する。これらの距離のすべてが、定数値、例えば、0.5ピクセルより小さい場合に、推定された線パラメータは、十分によく、回帰処理が終了する。そうでない場合に、距離の標準偏差を計算する。
ステップ3;推定された線への距離が、標準偏差に定数(例えば、1.2)をかけたものより小さい線の回帰に使用された有効ピクセルを選択して、もう一度線パラメータを推定して、線パラメータのもう1つの推定値を得る。
ステップ4;推定された線パラメータを、最後の反復からの推定されたパラメータと比較する。差が十分に小さいすなわち、|knew−kold|≦定数値(例えば、0.01)かつ|bnew−bold|≦定数値(たとえば、0.01)の場合に、回帰処理が終了する。そうでない場合に、ステップ2から始めて、回帰処理を繰り返す。
この処理を、最大で10回繰り返す。得られる線パラメータが収束しない場合すなわち、条件|knew−kold|≦定数値(例えば、0.01)かつ|bnew−bold|≦定数値(例えば、0.01)が満足されない場合には、この有効ピクセルに関して回帰が失敗する。次の有効ピクセルに進む。
この処理(有効ピクセルの選択及び回帰によるその有効ピクセルを通る線の入手)の終りに、独立に入手されたグリッド線の集合が得られる。
図19は、本発明の実施形態に係る選択されたクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。第1主方向の1つの例のイメージのすべての回帰処理された線を示している。明らかに、図19に示されているように誤った線が存在する。処理の後続ステージで、推定された線を、枝刈りし(prune)、グリッドのアフィンパラメータを得るのに使用する。
図21は、本発明の実施形態に係り第1主方向に関する推定されたグリッド線の枝刈りを示す、迷路パターン2100の例示的なイメージを示す図である。この実施形態では、関連する傾きの分散によって線を枝刈りする。すべての線の平均傾き値μ及び標準偏差σを計算する。σ<0.05の場合に、線は、平行であるとみなされ、枝刈りは不要である。そうでない場合に、平均傾き値μと大きく異なる傾きkを有するすなわち|k−μ|≧1.5×σの場合の線のそれぞれを枝刈りする。枝刈りの後に残された線のすべてを、図21に示す。残されるすべての線の傾き値の平均をとることによって、グリッド線の回転角度の最終的な推定値が得られる。
次に、残りの線を線の距離、例えば、距離2151によってクラスタ化する。イメージ中心を通り、線の平均傾きに直交する線を得る。次に、回帰処理された線と直交する線との間の交差点を計算する。2つのクラスタの中心が定数より大きくならなければならないという条件を用いて、すべての交差点をクラスタ化する。定数は、グリッド線の可能な最小のスケールである。図21に示された例は、線の6つのグループ化すなわち、2101、2103、2105、2107、2109、及び2111を有する。
図22は、本発明の実施形態に係る枝刈りされたグリッド線から選択された最もよくあう線が選択されている、迷路パターンの例示的なイメージを示す図である。本発明の実施形態による、最もよくあう線(たとえば線2201)が枝刈りされたグリッド線から選択されている、迷路パターン2200の例示的なイメージを示す。最もよくあう線は、線の同一グループの他の線より小さい回帰誤差(ロバスト回帰ステップで得られる)を有する線に対応する。
図20は、本発明の実施形態に係る残りのクラスタに関連する推定されたグリッド線を示す、迷路パターン2000の例示的なイメージを示す図である。この実施形態では、グリッド線が、残りのクラスタに関する垂直制約を使用して推定される、すなわち、第1クラスタの方向の最終的な推定値に垂直の方向が、線回帰中に初期方向として使用される。この処理は、第1の主方向について図18乃至図22で示したものと同一である。
図23は、本発明の実施形態に係る関連するフィンパラメータを有する、迷路パターン2300の例示的なイメージを示す図である。グリッド線のスケール(Sy 2301及びSx 2303)とオフセット(dy 2311及びdx 2309)を推定する。スケールは、図22に示されているように、隣接する最もよくあう線の距離の平均をとることによって得られる。図22の2つの隣接する線の間の距離は、実際のスケールの2倍以上である場合がある(たとえば、線2203と線2205が、実スケールの2倍以上である場合がある)。言い換えると、そのパラメータが得られていない、2203と2205の間の線がある。可能なスケールの範囲に関する以前の知識(イメージセンサのサイズ、紙に印刷された迷路パターンのサイズなどを与えられて)を使用して、距離を何回分割しなければならないかを推定する。この例では、線2203と2205の間の距離が、2によって除算され、その後、他の距離と平均をとられる。オフセットは、イメージ中心とイメージ中心に最も近い線の間の距離から得られる(オフセットは、ビットを抽出するために点がサンプリングされたグリッド線を得るのに必要になる場合がある)。グリッド線が、等間隔であり、グリッド線が、平行であると仮定すると、アフィンパラメータのグループを使用して、グリッド線を記述することができる。
図23に示された迷路パターン分析の結果に、スケール(Sy 2301及びSx 2303)と、2つの方向でのグリッド線の回転θx 2305及びθy 2307と、2つの方向でのグリッド線の間の最小距離(dy 2311及びdx 2309)が含まれる。
変換行列FS→Pは、回転パラメータ及びスケールパラメータから
Figure 2006073011
として得られる。ここで、FS→Pは、前に述べたように、キャプチャされたイメージをセンサ平面座標から紙座標に写像する。
図24が、本発明の実施形態に係るグリッド線のチューニングを示す、迷路パターン2400の例示的なイメージを示す図である。遠近ひずみなど、実際のグリッド線を絶対的に等間隔ではないものにする可能性がある複数の理由があり得る。平行で各得られたグリッド線L 2401の近くの線を見つけることができ、この線が、実際のグリッド線をよりよく近似する。最適の線
Figure 2006073011
は、線2403〜2417 Lk,k=−d,−d+1,…dから選択され、ここで、LとLkの間の距離は、k×δ×Scaleである。δは、小さい定数(例えば、δ=0.05)であり、dは、もう1つの定数(例えば、d=4)であり、Scaleは、グリッドスケール(sx)である。koptimalは、
Figure 2006073011
から得られ、ここで、Pk,iは、線Lk,i=1,2,…,N上のピクセルである。Pk,iの選択を、図24に示した。Pk,iは、等しい距離でイメージの1つの境界から開始することによって選択され、この等しい距離は、定数、たとえば線の方向のスケール(sy)の1/3とすることができる。この実施形態では、より小さいグレイレベル値が、より暗いイメージ要素に対応する。しかし、本発明の他の実施形態は、より大きいグレイレベル値をより暗いイメージ要素に関連付けることができる(「arg」関数は、koptimalが、−dとdの間のインデックスを有する線の1つに対応する最小グレイレベル合計を有することを表す)。
図25は、本発明の実施形態に係るチューニング後のグリッド線を有する迷路パターンの例示的なイメージを示す図である。
図26は、本発明の実施形態に係る迷路パターンのグリッド線を判定する処理を示す図である。この処理2600に、前の述べた処理が組み込まれている。処理2600を、サブ処理2651、2653、2655、及び2657にグループ化することができる。サブ処理2651は、ステップ2601を含み、このステップで、迷路パターンのイメージについて有効ピクセルを分離する。
サブ処理2653で、代表的な有効ピクセルについて線を推定する。サブ処理2653に、ステップ2603〜2611及び2625が含まれる。ステップ2603で、有効ピクセルごとに迷路パターンバーの方向を推定する。ステップ2605で、推定された方向を2つのクラスタにグループ化する。ステップ2607で、より多数の有効ピクセルを有するクラスタを選択し、ステップ2609で、選択されたクラスタに関連する有効ピクセルの方向から、主方向を推定する。ステップ2611で、回帰技法を用いて、選択された有効ピクセルを通る線を推定する。
サブ処理2655では、グリッド線のアフィンパラメータを判定する。サブ処理2655に、ステップ2613〜2621が含まれる。ステップ2613で、傾き分散分析によって線を枝刈りし、ステップ2615で、射影距離によって、枝刈りされた線をグループ化する。ステップ2617で、各グループ内で最もよくあう線を選択する。
ステップ2619で、残りのクラスタが未処理であると判定される場合に、ステップ2627で残りのクラスタを選択する。ステップ2625で、垂直制約を使用して、関連するグリッド線を推定する。その結果、ステップ2611〜2617を繰り返す。ステップ2621で、グループ化された線からアフィンパラメータを判定する。
サブ処理2657で、図24に関して述べたように、ステップ2623でグリッド線をチューニングする。
図27は、本発明の実施形態に係る迷路パターンの正しい方位の判定を示す、迷路パターンの例示的なイメージを示す図である。グリッド線を検出した後に、迷路パターンの正しい方位を判定しなければならない。この実施形態では、迷路パターンの角特性に基づいて迷路パターンの正しい方位を判定する。このアルゴリズムは、3つのステージを有する。図27に示されているように、グリッド辺は、2つのグループすなわち、それぞれH軸及びV軸に平行なX辺及びY辺に分離され、対応するスコアが、ScoreX及びScoreYとして表される。スコアは、バイリニアサンプリングアルゴリズムによって計算される。図27からわかるように、バイリニアサンプリングスコアは、次の式によって計算される。
ScoreX(u,v)=(1−ηq)・[(1−ηp)・G(m,n)+ηp・G(m+1,n)]+ηq・[(1−ηp)・G(m,n+1)+ηp・G(m+1,n+1)] ・・・(19)
ここで、(p,q)は、イメージ座標でのサンプリング点2751(P)の位置であり、ScoreX(u,v)は、H’軸に沿った辺(u,v)のスコアであり、u及びvは、それぞれH’軸及びV’軸に沿ったグリッド線のインデックスであり(図27で、H’軸に沿ったインデックスの範囲は、[0,13]であり、V’軸では[0,15]であり、u=7、v=9である)、(m,n)、(m+1,n)、(m,n+1)、及び(m+1,n+1)は、点2751に最も近い4つのピクセルであり、G(m,n)、G(m+1,n)、G(m,n+1)、及びG(m+1,n+1)は、各ピクセルのグレイレベル値であり、ηp=p−m、ηq=q−nである。スコアは、バイリニアサンプリングに関するすべてのピクセルが、イメージ内に位置し(すなわち、32×32ピクセルイメージセンサの場合に0≦p<31、0≦q<31)、文書を含まないピクセルである場合に有効である(したがって、実際に式19を使用して計算される)。この実施形態で、スコアを計算される各辺のサンプリング点は、辺の中点に対応する。ScoreYは、バイリニア入力としてイメージの異なるサンプリング点を使用することを除いて、ScoreXと同一のバイリニアサンプリングアルゴリズムによって計算される。
図27を参照すると、迷路パターンセル2709は、角2701、2703、2705、及び2707に関連する。次の議論では、角2701、2703、2705、及び2707が、それぞれ角0、角1、角2、及び角3に対応する。角の関連する番号を、下で述べるように象限番号(quadrant number)と称する。
図5A乃至図5Dに関して上述したように、迷路パターンが正しい方位を有する時に、図5Aに示されたタイプの角(角0に対応する)が欠けている。迷路パターンが、時計回りに90度回転された時に、図5Bに示されたタイプの角(角1)が欠けている。迷路パターンが、時計回りに180度回転された時に、図5Cに示されたタイプの角(角2)が欠けている。迷路パターンが、時計回りに270度回転された時に、図5Dに示されたタイプの角(角3)が欠けている。欠けている角のタイプを判定することによって、次式によって迷路パターンを回転することによって迷路パターンの方位を正しく知ることができる。
方位回転=象限番号×90度 ・・・(21)
一実施形態で、各角タイプの平均スコア差を計算することによって、欠けている角のタイプを判定する。角2701(角0)について、平均スコア差Q[0]は、
Figure 2006073011
である。ここで、ni及びnjは、それぞれH軸方向及びV軸方向でのイメージ内のグリッドセルの総数である。例えば、図27では、ni=14、nj=16であり、N0は、ScoreX(i,j)及びScoreY(i,j)の両方が有効であるグリッドセルの個数である(ScoreX(i,j)及びScoreY(i,j)の有効性は、式19に示されたバイリニアサンプリングによって判定される)。
角2703(角1)について、平均スコア差Q[1]は、
Figure 2006073011
であり、ni及びnjは、それぞれH軸方向及びV軸方向でのイメージ内のグリッドセルの総数であり、N1は、ScoreX(i,j)及びScoreY(i+1,j)の両方が有効であるグリッドセルの個数である。
角2705(角2)について、平均スコア差Q[2]は、
Figure 2006073011
であり、ni及びnjは、それぞれH軸方向及びV軸方向でのイメージ内のグリッドセルの総数であり、N2は、ScoreX(i,j+1)及びScoreY(i+1,j)の両方が有効であるグリッドセルの個数である。
角2707(角3)について、平均スコア差Q[3]は、
Figure 2006073011
であり、ni及びnjは、それぞれH軸方向及びV軸方向でのイメージ内のグリッドセルの総数であり、N3は、ScoreX(i,j+1)及びScoreY(i,j)の両方が有効であるグリッドセルの個数である。
正しい方位は、iが象限番号であるものとして、Q[i]がQの最大値になるiである。一実施形態で、迷路パターンのグリッド座標系H’V’を正しい方位i(式21に対応する)に回転し、その結果、新しい座標系の角0が、正しい角になるようにする。ScoreX及びScoreYも、迷路パターンからビットを抽出する次のステージのために回転される。
迷路パターンの正しい方位を判定した後に、ビットを抽出する。キャプチャされたイメージの迷路パターンセルは、2つのカテゴリに含まれる、すなわち、完全に可視のセル及び部分的に可視のセルである。完全に可視のセルは、ScoreX及びScoreYの両方が有効な迷路パターンセルである。部分的に可視のセルは、ScoreX及びScoreYの一方のスコアだけが有効な迷路パターンセルである。
完全可視ビット抽出アルゴリズムは、ScoreX及びScoreYの単純なグレイレベル値比較に基づき、ビットB(i,j)は、
Figure 2006073011
によって計算される。対応するビット信頼度Conf(i,j)は、
Conf(i,j)=|ScoreX(i,j)−ScoreY(i,j)|/MaxDiff (27)
によって計算され、ここで、MaxDiffは、すべての完全に可視のセルの最大スコア差である。
図28は、本発明の実施形態に係るビットが部分的に可視の迷路パターンセル2801から抽出される、迷路パターン2800の例示的なイメージを示す図である。部分的に可視の迷路パターンセルは、イメージの縁又は、イメージの、テキストあるいはドローイングが迷路パターンを隠す領域で発生する可能性がある。一実施形態で、部分的可視ビット抽出アルゴリズムは、部分的に可視のセル2801の8つの隣接ピクセル内の完全に可視のセル(迷路パターンセル2803、2805、及び2807)に基づく。部分的に可視のセル(例えば、迷路パターンセル2801)からビットを抽出するために、部分的に可視の迷路パターンセルのスコア値を、隣接迷路パターンセル(例えば、迷路パターンセル2803、2805、及び2807)の縁に沿った平均スコアの関数と比較することができる。
部分的に可視のビット(i,j)に関する本発明の実施形態で、8つの隣接迷路パターンセル内の完全に可視のビットの基準黒縁平均スコア(BMS)及び基準白縁平均スコア(WMS)を、それぞれ次式によって計算することができる。
Figure 2006073011
ここで、nは、8つの隣接迷路パターンセル内の完全に可視のパターンセルの個数である。
一実施形態で、部分的に可視のビットのScoreX又はScoreYを、BMS及びWMSと比較する。部分的に可視のビットB(i,j)は、
Figure 2006073011
によって計算される。
本発明の実施形態では、部分的に可視のビット(i,j)の信頼の度合が、
Conf(i,j)=max(|Score(i,j)−BMS|,|Score(i,j)−WMS|)/MaxDiff (31)
によって判定される。ここで、Score(i,j)は、ScoreX(i,j)又はScoreY(i,j)の有効なスコアであり、MaxDiffは、すべての完全に可視のビットの最大スコア差である(前に述べたように、部分的に可視のセルについて、1つのスコアだけが有効である)。
図12を参照すると、抽出されたビット1201が、デコードされ、必要な場合にエラー訂正が実行される。本発明の実施形態では、所定のレベルを超える信頼レベルを有する選択されたビットは、その選択されたビット数が十分に多い場合に、エラー訂正に使用される(上述したように、m−列をデコードするには少なくともnビットが必要であり、nは、m−列の次数である)。もう1つの実施形態で、抽出されたビットは、関連する信頼レベルに従ってランク順序付けされる。抽出されたビットのデコードでは、ランク順序付けに従って、抽出されたビットを使用する。
本発明の実施形態では、抽出されたビットに関連する信頼の度合を、ビットエラーを訂正する時に使用することができる。たとえば、最も低い信頼の度合を有するビットは、エラー訂正を実行する時に処理されない。
図29は、本発明の実施形態に係る迷路パターンからビットを抽出する迷路パターン分析装置を示す図である。正規化されたイメージ2951が、まず、イメージのグリッド線を判定するためにグリッド線アナライザ2901によって処理される。本発明の実施形態では、グリッド線アナライザ2901は、図26に示された処理2600を実行する。グリッド線アナライザ2901は、グリッド線パラメータ2953(例えば、図23に示されたSx、Sy、θx、θy、dx、dy)を判定する。方位アナライザ2903が、グリッド線パラメータ2953を使用して、正規化されたイメージ2951をさらに処理して、迷路パターンの正しい方位情報2955を判定する。ビットエクストラクタ2905が、グリッド線パラメータ2953及び正しい方位情報2955を使用して、正規化されたイメージ2951を処理して、ビットストリーム2957を抽出する。
さらに、装置2900に、イメージの不均一な照明の影響を減らすイメージノーマライザ(図示せず)を組み込むことができる。不均一な照明は、あるパターンバーを、それがあるべき姿より暗くなくし、ある非バー領域を、それがあるべき姿より暗くする可能性があり、これは、有効ピクセルの方向の推定に影響する可能性があり、エラービットの抽出をもたらす可能性がある。
装置1400及び2900は、コンピュータ可読媒体を使用するモジュール及び特定用途向け集積回路(ASIC)などの特殊化されたハードウェアを使用するモジュールを含む、異なる形の実施形態をとることができる。
当業者が諒解するように、コンピュータシステムを制御する命令を含む関連するコンピュータ可読媒体を有するコンピュータシステムを使用して、本明細書で開示された例示的実施形態を実施することができる。このコンピュータシステムに、マイクロプロセッサ、ディジタル信号プロセッサなどの少なくとも1つのコンピュータと、関連する周辺電子回路を含めることができる。
本発明は、請求項を使用して定義されているが、これらの請求項は、本発明が本明細書に記載の要素及びステップを任意の組合せ又は副組合せを含むことが意図されているという点で、例示的である。したがって、詳細な説明、請求項、及び図面を含む本明細書からの1つ又は複数の要素をさまざまな組合せ又は副組合せで組み込む、本発明を定義する複数の代替の組合せがある。本明細書に鑑みて、本発明の実施態様の代替の組合せを、単独で又は本明細書で定義される1つ又は複数の要素又はステップとの組合せでのいずれかで、本発明の修正又は変更として、あるいは本発明の一部として使用できることを、当業者は諒解するであろう。本明細書に含まれる本発明の書かれた説明が、そのような修正形態及び変更形態のすべてを含むことを意図することができる。
本発明の実施形態と共に使用できるコンピュータの全般的な説明をするための図である。 本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図(その1)である。 本発明の実施形態に係るイメージキャプチャシステム及び対応するキャプチャされたイメージを示す図(その2)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その1)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その2)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その3)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その4)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その5)である。 本発明の実施形態に係るさまざまなシーケンス及び折り畳み技術を示す図(その6)である。 本発明の実施形態に係るさまざまなエンコーディングシステムを示す図(その1)である。 本発明の実施形態に係るさまざまなエンコーディングシステムを示す図(その2)である。 本発明の実施形態に係るさまざまなエンコーディングシステムを示す図(その3)である。 本発明の実施形態に係るさまざまなエンコーディングシステムを示す図(その4)である。 本発明の実施形態に係るさまざまなエンコーディングシステムを示す図(その5)である。 図4A及び図4Bによるエンコーディングシステムに関連する4つの可能な結果の角を示す図(その1)である。 図4A及び図4Bによるエンコーディングシステムに関連する4つの可能な結果の角を示す図(その2)である。 図4A及び図4Bによるエンコーディングシステムに関連する4つの可能な結果の角を示す図(その3)である。 図4A及び図4Bによるエンコーディングシステムに関連する4つの可能な結果の角を示す図(その4)である。 本発明の実施形態に係るキャプチャされたイメージ部分の回転を示す図である。 図4A乃至図4Eのコーディングシステムと共に使用される回転のさまざまな角度を示す図である。 本発明の実施形態に係るキャプチャされた配列の位置を判定する処理を示す図である。 本発明の実施形態に係るキャプチャされたイメージの位置を判定する方法を示す図である。 本発明の実施形態に係るキャプチャされたイメージの位置を判定するもう1つの方法を示す図である。 従来技術による文書内のスペースのエンコードを表す図である。 本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのデコードをフローチャートに示す図である。 本発明の実施形態に係るキャプチャされたイメージから抽出されたビットのビット選択を示す図である。 本発明の実施形態に係るキャプチャされたイメージから抽出されたビットをデコードする装置を示す図である。 本発明の実施形態に係る関連する迷路パターンバーと共に迷路パターンセルを示す迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る有効ピクセルの推定された方向を示す迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る有効ピクセルの方向の推定を示す迷路パターンの部分の例示的なイメージを示す図である。 本発明の実施形態に係る代表的な有効ピクセルを通るグリッド線の線パラメータの計算を示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る選択されたクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る残りのクラスタに関連する推定されたグリッド線を示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る推定されたグリッド線の枝刈りを示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る枝刈りされたグリッド線から選択された最もよくあう線が選択されている、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る関連するフィンパラメータを有する、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係るグリッド線のチューニングを示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係るチューニング後のグリッド線を有する迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る迷路パターンのグリッド線を判定する処理を示す図である。 本発明の実施形態に係る迷路パターンの正しい方位の判定を示す、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係るビットが部分的に可視の迷路パターンセルから抽出される、迷路パターンの例示的なイメージを示す図である。 本発明の実施形態に係る迷路パターンからビットを抽出する迷路パターン分析装置を示す図である。
符号の説明
101 キーボード
102 マウス
106 シリアルポートインターフェース
107 モニタ
108 ビデオアダプタ
109 リモートコンピュータ
110 処理ユニット
111 メモリ
112 ローカルエリアネットワーク
113 広域ネットワーク
114 ネットワークインターフェース
115 モデム
120 システムメモリ
130 システムバス
140 (ROM)
150 (RAM)
160 BIOS
165 ディジタイザ
170 ハードディスクドライブ
180 磁気ディスクドライブ
190 磁気ディスク
191 光ディスクドライブ
192 光ディスク
192 ハードディスクインターフェース
193 磁気ディスクドライブインターフェース
194 光ドライブインターフェース
195 オペレーティングシステム
196 アプリケーションプログラム
197 他のプログラムモジュール
198 プログラムデータ
201 ペン
202 ペン先
203 カメラ
206 箱
207 物体平面
209 像平面
208 レンズ
211 イメージキャプチャセンサ
1401 ビット選択モジュール
1403 デコードモジュール
1405 位置判定モジュール
1407 入力インターフェース
1409 出力インターフェース
2901 グリッド線アナライザ
2903 方位アナライザ
2905 ビットエクストラクタ

Claims (54)

  1. 迷路パターン及び文書内容のキャプチャされたイメージを分析し、文書表現からm−配列の関連するビットを判定し、前記文書が、前記迷路パターンによってウォーターマーキングされるようにした迷路パターン分析方法であって、
    (A)複数の有効ピクセルから複数のグリッド線を検出するステップと、
    (B)前記迷路パターンの正しい方位を判定するステップと、
    (C)前記迷路パターンから複数のビットを抽出するステップであって、前記複数のビットが、関連するm−配列情報を含む、前記複数のビットを抽出するステップと
    を有することを特徴とする迷路パターン分析方法。
  2. (D)ビットに関連する信頼レベルを前記迷路パターンから判定するステップをさらに有することを特徴とする請求項1に記載の迷路パターン分析方法。
  3. (E)前記複数のビットから部分集合を選択するステップであって、前記部分集合の各ビットが、所定のレベルを超える関連する信頼レベルを有する、前記部分集合を選択するステップをさらに有することを特徴とする請求項2に記載の迷路パターン分析方法。
  4. (F)ビットの前記部分集合から前記m−配列内の位置をデコードするステップをさらに有することを特徴とする請求項3に記載の迷路パターン分析方法。
  5. 前記(A)は、(i)前記迷路パターンの前記キャプチャされたイメージ内の有効ピクセルを分離するステップを有することを特徴とする請求項1に記載の迷路パターン分析方法。
  6. 前記(A)は、(ii)選択された有効ピクセルごとに推定された線を推定するステップをさらに有することを特徴とする請求項5に記載の迷路パターン分析方法。
  7. 前記(A)は、(iii)前記複数のグリッド線のグリッド線パラメータを判定するステップをさらに有することを特徴とする請求項6に記載の迷路パターン分析方法。
  8. 前記(A)は、(iv)前記複数のグリッド線をチューニングするステップをさらに有することを特徴とする請求項7に記載の迷路パターン分析方法。
  9. 前記(ii)は、(1)複数の方向を推定するステップであって、前記各方向が、有効ピクセルを通る迷路パターンバーに対応する、前記複数の方向を推定するステップを有することを特徴とする請求項6に記載の迷路パターン分析方法。
  10. 前記(ii)は、(2)前記複数の方向から2つのクラスタを形成するステップをさらに有することを特徴とする請求項9に記載の迷路パターン分析方法。
  11. (3)すべての推定された方向のヒストグラムから、前記2つのクラスタのそれぞれの初期推定方向を判定するステップをさらに有することを特徴とする請求項10に記載の迷路パターン分析方法。
  12. 前記(ii)は、(3)前記2つのクラスタのうちでより多数の有効ピクセルに関連する1つのクラスタを選択するステップをさらに有することを特徴とする請求項10に記載の迷路パターン分析方法。
  13. 前記(ii)は、(4)前記1つのクラスタの関連する方向から主方向を推定するステップをさらに有することを特徴とする請求項12に記載の迷路パターン分析方法。
  14. 前記(ii)は、(5)選択された有効ピクセルごとに、対応する線パラメータセットを判定するステップであって、前記各対応する線パラメータセットが、回帰処理された線に対応する、前記対応する線パラメータセットを判定するステップをさらに有することを特徴とする請求項13に記載の迷路パターン分析方法。
  15. 前記(5)は、前記選択された有効ピクセルのそれぞれに関連する対応する複数の有効ピクセルについて回帰分析を実行するステップを有することを特徴とする請求項14に記載の迷路パターン分析方法。
  16. 前記(ii)は、(6)もう1つのクラスタのグリッド線方向を推定するために垂直制約を使用するステップをさらに有することを特徴とする請求項15に記載の迷路パターン分析方法。
  17. 前記(iii)は、傾き分散分析を使用し、(1)線の枝刈りされた集合を形成するために複数の回帰処理された線を枝刈りするステップを有することを特徴とする請求項7に記載の迷路パターン分析方法。
  18. 前記(1)は、傾き分散分析を使用することを特徴とする請求項17に記載の迷路パターン分析方法。
  19. 前記(iii)は、(2)複数の線グループを形成するために、線の前記枝刈りされた集合をグループ化するステップをさらに有することを特徴とする請求項17に記載の迷路パターン分析方法。
  20. 前記(2)は、隣接する線グループの間の関連する射影距離を使用することを特徴とする請求項19に記載の迷路パターン分析方法。
  21. 前記(iii)は、(3)前記複数の線グループのグループごとに最もよくあう線を選択するステップをさらに有することを特徴とする請求項19に記載の迷路パターン分析方法。
  22. 前記(iii)は、(4)複数の最もよくあう線から少なくとも1つのアフィンパラメータを判定するステップをさらに有することを特徴とする請求項21に記載の迷路パターン分析方法。
  23. 前記少なくとも1つのアフィンパラメータは、水平スケール(Sx)、垂直スケール(Sy)、水平オフセット(dx)、垂直オフセット(dy)、水平回転(θx)、及び垂直回転(θy)からなる群から選択されることを特徴とする請求項22に記載の迷路パターン分析方法。
  24. 前記(iv)は、(1)選択された最もよくあう線に十分に近い少なくとも1つの線を判定するステップであって、前記少なくとも1つの線は、前記選択された最もよくあう線にほぼ平行であり、前記最もよくあう線から所定の距離以内にある、前記1つの線を判定するステップを有することを特徴とする請求項8に記載の迷路パターン分析方法。
  25. 前記(iv)は、(2)前記少なくとも1つの線及び前記最もよくあう線から1つの線を選択するステップであって、前記1つの線は、最も暗い特性を有する、前記1つの線を選択するステップをさらに有することを特徴とする請求項24に記載の迷路パターン分析方法。
  26. 前記(iv)は、(2)前記少なくとも1つの線及び前記最もよくあう線から1つの線を選択するステップであって、前記1つの線は、最も小さいグレイレベル合計を有する、前記1つの線を選択するステップをさらに有することを特徴とする請求項24に記載の迷路パターン分析方法。
  27. 前記(B)は、(i)欠けている角のタイプを判定するステップを有することを特徴とする請求項1に記載の迷路パターン分析方法。
  28. 前記(B)は、(ii)欠けている角の前記タイプに従って前記迷路パターンを回転するステップを有することを特徴とする請求項27に記載の迷路パターン分析方法。
  29. 前記(i)は、
    (1)各角タイプの平均スコア差を判定するステップと、
    (2)最大平均スコア差に対応するような、欠けている角の前記角タイプを選択するステップと
    を有することを特徴とする請求項27に記載の迷路パターン分析方法。
  30. 前記スコア値は、バイリニアサンプリングに基づくことを特徴とする請求項29に記載の迷路パターン分析方法。
  31. 前記(C)は、
    (i)迷路パターンセルが完全に可視の場合に、対応するビットを抽出するために、水平スコア(ScoreX(・))と垂直スコア(ScoreY(・))のグレイレベル値比較を実行するステップと、
    (ii)前記迷路パターンセルが部分的に可視の場合に、辺平均スコアの関数を前記水平スコア及び前記垂直スコアと比較するステップであって、前記辺平均スコアは、完全に可視の隣接迷路パターンセルに対応する、前記比較するステップと
    を有することを特徴とする請求項1に記載の迷路パターン分析方法。
  32. 前記(i)は、
    (1)前記水平スコアは前記垂直スコアより小さい場合に、前記対応するビットを「0」と等しくするステップと、
    (2)前記水平スコアは前記垂直スコアより大きい場合に、前記対応するビットを「1」と等しくするステップと、
    (3)前記水平スコアは前記垂直スコアと等しい場合に、前記対応するビットを無効にするステップと
    を有することを特徴とする請求項31に記載の迷路パターン分析方法。
  33. 前記関数は、完全に可視の隣接迷路パターンセルの基準黒縁平均スコア(BMS)及び基準白縁平均スコア(WMS)の平均値と等しいことを特徴とする請求項31に記載の迷路パターン分析方法。
  34. 前記(D)は、
    (i)前記信頼レベルを水平スコア(Score(X(・))及び垂直スコア(Score(Y(・))の関数と等しくするステップを有することを特徴とする請求項2に記載の迷路パターン分析方法。
  35. 前記関数は、前記水平スコアと前記垂直スコアとの差の絶対値に比例することを特徴とする請求項34に記載の迷路パターン分析方法。
  36. 前記スコア値は、バイリニアサンプリングに基づくことを特徴とする請求項31に記載の迷路パターン分析方法。
  37. 前記(i)は、(1)前記有効ピクセルの個数を推定するステップを有することを特徴とする請求項5に記載の迷路パターン分析方法。
  38. 前記(1)は、前記迷路パターンバーの面積を迷路パターンセルの面積で割ったものによって近似される比を使用することを特徴とする請求項37に記載の迷路パターン分析方法。
  39. 請求項1に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  40. 請求項2に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  41. 請求項3に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  42. 請求項4に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  43. 請求項5に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  44. 請求項6に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  45. 請求項7に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  46. 請求項8に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  47. 請求項27に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  48. 請求項28に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  49. 請求項31に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  50. 請求項34に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  51. 迷路パターンのイメージを分析する迷路パターン分析装置であって、
    イメージを入手し、複数の推定された線から前記イメージのグリッド線を判定するグリッド線アナライザと、
    欠けている角のタイプを判定し、前記迷路パターンの正しい方位を判定するために前記イメージをさらに処理する方位アナライザと、
    前記迷路パターンからビットを抽出するために、前記グリッド線に沿って前記迷路パターンを処理するビットエクストラクタと
    を備えたことを特徴とする迷路パターン分析装置。
  52. 前記ビットエクストラクタは、抽出されたビットに関連する信頼レベルを判定することを特徴とする請求項51に記載の迷路パターン分析装置。
  53. 前記グリッド線アナライザは、前記グリッド線をチューニングすることを特徴とする請求項51に記載の迷路パターン分析装置。
  54. 照明について補償するために、前記イメージのピクセルに関連するグレイレベル値を正規化するイメージノーマライザをさらに備えたことを特徴とする請求項51に記載の迷路パターン分析装置。
JP2005255046A 2004-09-02 2005-09-02 迷路パターン分析方法及びその装置 Expired - Fee Related JP4822775B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/932,803 2004-09-02
US10/932,803 US7349554B2 (en) 2004-09-02 2004-09-02 Maze pattern analysis

Publications (2)

Publication Number Publication Date
JP2006073011A true JP2006073011A (ja) 2006-03-16
JP4822775B2 JP4822775B2 (ja) 2011-11-24

Family

ID=35335682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005255046A Expired - Fee Related JP4822775B2 (ja) 2004-09-02 2005-09-02 迷路パターン分析方法及びその装置

Country Status (3)

Country Link
US (1) US7349554B2 (ja)
EP (1) EP1632901B1 (ja)
JP (1) JP4822775B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110181916A1 (en) * 2010-01-27 2011-07-28 Silverbrook Research Pty Ltd Method of encoding coding pattern to minimize clustering of macrodots
KR101453467B1 (ko) * 2012-06-05 2014-10-22 (주)펜제너레이션스 광학필름 및 이를 이용한 전자펜 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152269A (ja) * 2002-10-31 2004-05-27 Microsoft Corp アクティブな埋め込み型のインターラクション符号化
JP2004164609A (ja) * 2002-10-31 2004-06-10 Microsoft Corp 汎用入力デバイス

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128525A (en) * 1990-07-31 1992-07-07 Xerox Corporation Convolution filtering for decoding self-clocking glyph shape codes
US5091966A (en) * 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes
US5168147A (en) * 1990-07-31 1992-12-01 Xerox Corporation Binary image processing for decoding self-clocking glyph shape codes
US7263324B2 (en) * 2005-03-14 2007-08-28 Kabushiki Kaisha Toshiba Heat roller, fixing apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152269A (ja) * 2002-10-31 2004-05-27 Microsoft Corp アクティブな埋め込み型のインターラクション符号化
JP2004164609A (ja) * 2002-10-31 2004-06-10 Microsoft Corp 汎用入力デバイス

Also Published As

Publication number Publication date
US20060045307A1 (en) 2006-03-02
EP1632901A3 (en) 2012-01-04
JP4822775B2 (ja) 2011-11-24
EP1632901B1 (en) 2018-10-24
US7349554B2 (en) 2008-03-25
EP1632901A2 (en) 2006-03-08

Similar Documents

Publication Publication Date Title
JP4833555B2 (ja) m配列のデコーディングおよびエラー訂正の強化された手法
JP5009326B2 (ja) 2次元配列における復号およびエラー訂正の方法
KR101037238B1 (ko) m-어레이 디코딩 및 고속 이미지 매칭에 의한 스트로크로컬리제이션
JP4750425B2 (ja) カメラ−ペン先のマッピングおよび較正
US8156153B2 (en) Global metadata embedding and decoding
US7599560B2 (en) Embedded interaction code recognition
JP2005228302A (ja) 位置エンコードされた文書画像の分析およびラベル付け
US20060215913A1 (en) Maze pattern analysis with image matching
JP4822775B2 (ja) 迷路パターン分析方法及びその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080902

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090925

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110516

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110616

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110808

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110906

R150 Certificate of patent or registration of utility model

Ref document number: 4822775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees