(57)【要約】【課題】手書き情報を文書情報と関連付けさせるための方法及び装置を提供する。【解決手段】かかる方法は、第一文書情報が表示されている間に、前記第一文書情報の上のスクリーンに書かれた一つ以上の手書き情報をキャプチャするキャプチャステップと、キャプチャされた前記手書き情報のキャプチャされた一つ以上の画像データを、前記手書き情報の下の表示されている前記第一文書情報の画像パッチとそれぞれ関連付けさせる関連付けステップと、第二文書情報が前記スクリーンに表示されていると確定する確定ステップと、前記第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断する判断ステップと、前記判断ステップの結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を前記第二文書情報の画像パッチの上に描画する描画ステップと、を含む。【選択図】図１
2013182625.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
第一文書情報が表示されている間に、前記第一文書情報の上のスクリーンに書かれた一つ以上の手書き情報をキャプチャするキャプチャステップと、
キャプチャされた前記手書き情報のキャプチャされた一つ以上の画像データを、前記手書き情報の下の表示されている前記第一文書情報の画像パッチとそれぞれ関連付けさせる関連付けステップと、
第二文書情報が前記スクリーンに表示されていると確定する確定ステップと、
前記第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断する判断ステップと、
前記判断ステップの結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を前記第二文書情報の画像パッチの上に描画する描画ステップと、を含む、方法。
【請求項２】
前記判断ステップは、
前記第二文書情報の画像パッチと、キャプチャされた手書き情報データとともに保存された画像パッチとを比較して、前記第二文書情報の一つ以上の画像パッチ又はその一部が、キャプチャされた手書き情報データとともに現在に保存されている画像パッチと少なくとも部分的にマッチするかどうかを判断するステップを含む、請求項１に記載の方法。
【請求項３】
画像パッチの比較により、マッチがあると判断すれば、現在に表示されている一つの画像パッチと少なくとも部分的にマッチする各保存された画像パッチに対して、前にキャプチャされた手書き情報データの少なくとも一部を、前記スクリーンにおいて、前記第二文書情報の画像パッチ又はその一部とマッチする前記各保存された画像パッチの一部がキャプチャされた手書き情報データの一部を含む範囲に表示し、
画像パッチの比較により、マッチがないと判断すれば、前記第二文書情報の画像パッチの上の前記スクリーンに現れる全ての手書き情報を削除する、請求項２に記載の方法。
【請求項４】
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判定された画像パッチの一部がキャプチャされた手書き情報データを含むかどうかを判断し、
そうであれば、前記第二文書情報の画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを描画する、請求項２に記載の方法。
【請求項５】
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判断された画像パッチの一部がキャプチャされた手書き情報データを含むかどうか、及び、前記第二文書情報の前記一つの画像パッチが変換されているかどうかを判断し、
そうであれば、前記第二文書情報の前記一つの画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを、前記第二文書情報の前記一つの画像パッチと同様に変換し、変換された手書き情報データを前記スクリーンにおいて前記一つの画像パッチの上に描画する、請求項２に記載の方法。
【請求項６】
キャプチャされた手書き情報データを変換することは、前記キャプチャされた手書き情報データの少なくとも一部に対して、再配置、拡大／縮小、３×３行列の乗算によりサポートされる一般的な変換、回転、翻訳、ワーピング、又は、透視変換を行うことを含む、請求項５に記載の方法。
【請求項７】
前記第二文書情報を複数の画像パッチに分割するステップを更に含む、請求項１に記載の方法。
【請求項８】
前記一つ以上の手書き情報をキャプチャすることに応えて、前記手書き情報の周りの前記第一文書情報の画像パッチにインデックスを付け、前記手書き情報の手書き情報データを、前記インデックスが付けられた画像パッチと関連付けさせるステップを更に含む、請求項１に記載の方法。
【請求項９】
キャプチャされた各手書き情報の手書き情報データ及びそれに関連付けられた前記画像パッチを表す情報を保存するステップを更に含む、請求項１に記載の方法。
【請求項１０】
前記画像パッチを表す情報は、前記画像パッチ自体、又は、前記画像パッチに含まれる情報と関連する特徴を含む、請求項９に記載の方法。
【請求項１１】
文書情報を表示するシステムであって、
メモリと、
メモリに接続されるコントローラと、を含み、
前記コントローラは、
第一文書情報の上のスクリーンに書かれた、キャプチャされた一つ以上の手書き情報のキャプチャされた一つ以上の画像データを、前記手書き情報の下の表示されている前記第一文書情報の画像パッチとそれぞれ関連付けさせる関連付けステップと、
第二文書情報が前記スクリーンに表示されていると確定する確定ステップと、
前記第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断する判断ステップと、
前記判断ステップの結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を前記第二文書情報の画像パッチの上に描画する描画ステップと、を行う、システム。
【請求項１２】
前記コントローラは、
前記第二文書情報の画像パッチの特徴と、キャプチャされた手書き情報データとともに保存された画像パッチとを比較して、前記第二文書情報の一つ以上の画像パッチ又はその一部が、キャプチャされた手書き情報データとともに現在に保存されている画像パッチと少なくとも部分的にマッチするかどうかを判断することにより、前記判断ステップを行う、請求項１１に記載のシステム。
【請求項１３】
前記コントローラは、
画像パッチの比較により、マッチがあると判断すれば、現在に表示されている一つの画像パッチと少なくとも部分的にマッチする各保存された画像パッチに対して、前にキャプチャされた手書き情報データの少なくとも一部を、前記スクリーンにおいて、前記第二文書情報の画像パッチ又はその一部とマッチする前記各保存された画像パッチの一部がキャプチャされた手書き情報データの一部を含む範囲に表示し、
画像パッチの比較により、マッチがないと判断すれば、前記第二文書情報の画像パッチの上の前記スクリーンに現れる全ての手書き情報を削除することを行う、請求項１２に記載のシステム。
【請求項１４】
前記コントローラは、
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判定された画像パッチの一部がキャプチャされた手書き情報データを含むかどうかを判断し、
そうであれば、前記第二文書情報の画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを描画することを行う、請求項１２に記載のシステム。
【請求項１５】
前記コントローラは、さらに、
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判断された画像パッチの一部がキャプチャされた手書き情報データを含むかどうか、及び、前記第二文書情報の前記一つの画像パッチが変換されているかどうかを判断し、
そうであれば、前記第二文書情報の前記一つの画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを、前記第二文書情報の前記一つの画像パッチと同様に変換し、変換された手書き情報データを前記スクリーンにおいて前記一つの画像パッチの上に描画することを行う、請求項１２に記載のシステム。
【請求項１６】
前記キャプチャされた画像データに対して再配置、拡大／縮小、回転、翻訳、ワーピング、透視変換、又は、３×３行列の乗算を用いる変換を行った場合、前記第二文書情報の前記一つの画像パッチが変換されている、請求項１５に記載のシステム。
【請求項１７】
前記コントローラは、
キャプチャされた各手書き情報の手書き情報データと、それに関連付けられた前記画像パッチ、又は、前記画像パッチにおける情報と関連する特徴とを保存することを行う、請求項１１に記載のシステム。
【請求項１８】
一つ以上のコンピュータ読み取り可能な記録媒体を含む製品であって、
前記記録媒体はプログラムを記録しており、前記プログラムはシステムにより実行される時に、該システムに、
第一文書情報が表示されている間に、前記第一文書情報の上のスクリーンに書かれた一つ以上の手書き情報をキャプチャするキャプチャステップと、
キャプチャされた前記手書き情報のキャプチャされた一つ以上の画像データを、前記手書き情報の下の表示されている前記第一文書情報の画像パッチとそれぞれ関連付けさせる関連付けステップと、
第二文書情報が前記スクリーンに表示されていると確定する確定ステップと、
前記第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断する判断ステップと、
前記判断ステップの結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を前記第二文書情報の画像パッチの上に描画する描画ステップと、を含む方法を実行させる、製品。
【請求項１９】
前記判断ステップは、
前記第二文書情報の画像パッチと、キャプチャされた手書き情報データとともに保存された画像パッチとを比較して、前記第二文書情報の一つ以上の画像パッチ又はその一部が、キャプチャされた手書き情報データとともに現在に保存されている画像パッチと少なくとも部分的にマッチするかどうかを判断するステップを含む、請求項１８に記載の製品。
【請求項２０】
前記方法は、さらに、
画像パッチの比較により、マッチがあると判断すれば、現在に表示されている一つの画像パッチと少なくとも部分的にマッチする各保存された画像パッチに対して、前にキャプチャされた手書き情報データの少なくとも一部を、前記スクリーンにおいて、前記第二文書情報の画像パッチ又はその一部とマッチする前記各保存された画像パッチの一部がキャプチャされた手書き情報データの一部を含む範囲に表示し、
画像パッチの比較により、マッチがないと判断すれば、前記第二文書情報の画像パッチの上の前記スクリーンに現れる全ての手書き情報を削除することを含む、請求項１９に記載の製品。
【請求項２１】
前記方法は、さらに、
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判定された画像パッチの一部がキャプチャされた手書き情報データを含むかどうかを判断し、
そうであれば、前記第二文書情報の画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを描画することを含む、請求項１９に記載の製品。
【請求項２２】
前記方法は、さらに、
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが前記第二文書情報の画像パッチの一部とマッチすると判断すれば、前記第二文書情報の一つの画像パッチの一部とマッチする、前に関連付けられた手書き情報データがあると判断された画像パッチの一部がキャプチャされた手書き情報データを含むかどうか、及び、前記第二文書情報の前記一つの画像パッチが変換されているかどうかを判断し、
そうであれば、前記第二文書情報の前記一つの画像パッチとマッチする前記画像パッチの一部に現れる、キャプチャされた手書き情報データを、前記第二文書情報の前記一つの画像パッチと同様に変換し、変換された手書き情報データを前記スクリーンにおいて前記一つの画像パッチの上に描画することを含む、請求項１９に記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、文書（ドキュメント（document）とも称される）画像処理の分野に関し、より具体的に、本発明の実施例は、手書き情報（ストローク（stroke）とも称される）を文書情報の一部と関連付けさせ、これにより、文書情報が移動、スクロール又は変換される時に、手書き情報がこの手書き情報に関連付けられた文書情報のコンテンツとともに残る処理に関する。
【背景技術】
【０００２】
対話型ホワイトボード（Interactive  Whiteboard：IWB）を用いて情報をマークアップする方法が多数ある。このようなボードは、ユーザが手書き情報を書くことができる正常なホワイトボードのような白いバックグランドを提供することができる。また、パソコン（PC）のディスプレーがそのバックグランドに表示されてもよく、ユーザは、表示されているディスプレー画像に対して手書き情報を書くことができる。
【０００３】
例えば、SMART  Technologies社のドライバー及びSMART  Board（Ｒ）のような技術を用いることにより、ユーザは、ワード文書情報、ウェブページ、パワーポイントプレゼーション、ビデオ、又はPCディスプレーなどの任意のバックグランドを表示させることができる。ユーザがSMART  Board（Ｒ）のペン皿からペンを手に入れる時に、SMART  Board（Ｒ）ドライバーは、現在のスクリーンをキャプチャ（capture）してフリーズ（freeze）させる。ユーザにより書かれた全ての手書き情報は、フリーズされたスクリーンにオーバーレイされる。また、PCがSMART  Notebook（ＴＭ）ソフトウェアに接続されれば、ビデオが再生されていても、ユーザが手書き情報を書いている間には、スクリーンがフリーズされる。ユーザによりユーザインタフェースを介して書くのを終えたことを示すと、手書き情報を含むスクリーンがキャプチャされて、スクリーン画像として保存され、そして、スクリーンがアンフリーズされる。
【０００４】
Microsoft  Word文書とともに作業を行う時に、ユーザは、手書き情報を用いて文書全体におけるいくつかの部分をマークアップできることを望む。文書をスクロールし、一部をマークアップし、スクリーンをキャプチャし、それから、またのスクロールのためにスクリーンをアンフリーズすることが不便である。何らかの方法で手書き情報を文書に入れることができるのならば、マークアップする作業がより便利になる。
【０００５】
PC、Mac及びLinux(登録商標)プラットフォームに使用可能なアプリケーションが数十万（又は、恐らく数百万）あり、また、手書き情報を入力するための技術も多数あるので、手書き情報入力技術と全てのプログラムとを統合することが複雑な問題である。
【０００６】
必要なのは、文書を表示するためのアプリケーションを変更する必要がなく、手書き情報キャプチャシステムに表示される文書と関連付けられうる手書き情報をキャプチャする方法である。また必要なのは、コンピュータスクリーンにアップデート又はフリーズをストップさせる必要がなく、そのスクリーンをマークアップする方法である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、手書き情報を文書情報と関連付けさせる方法及び装置を提供することにある。
【課題を解決するための手段】
【０００８】
一実施例では、かかる方法は、第一文書情報が表示されている間に、前記第一文書情報の上のスクリーンに書かれた一つ以上の手書き情報をキャプチャするキャプチャステップと、キャプチャされた前記手書き情報のキャプチャされた一つ以上の画像データを、前記手書き情報の下の表示されている前記第一文書情報の画像パッチとそれぞれ関連付けさせる関連付けステップと、第二文書情報が前記スクリーンに表示されていると確定する確定ステップと、前記第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断する判断ステップと、前記判断ステップの結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を前記第二文書情報の画像パッチの上に描画する描画ステップと、を含む。
【図面の簡単な説明】
【０００９】
【図１】手書き情報を文書情報の一部と関連付けさせるためのシステムの一実施例のブロック図である。
【図２】手書き情報データの処理を示すフローチャートである。
【図３】文書情報の一部の上の表示面に手書き情報を再び書くかを判断するためのプロセスを示す図である。
【図４Ａ】手書き情報処理の例を示す図である。
【図４Ｂ】手書き情報処理の例を示す図である。
【図４Ｃ】手書き情報処理の例を示す図である。
【図４Ｄ】手書き情報処理の例を示す図である。
【図４Ｅ】手書き情報処理の例を示す図である。
【図４Ｆ】手書き情報処理の例を示す図である。
【図４Ｇ】手書き情報処理の例を示す図である。
【図４Ｈ】手書き情報処理の例を示す図である。
【図４Ｉ】手書き情報処理の例を示す図である。
【図４Ｊ】手書き情報処理の例を示す図である。
【図４Ｋ】手書き情報処理の例を示す図である。
【図４Ｌ】手書き情報処理の例を示す図である。
【図５】手書き情報を文書情報と関連付けさせるためのプロセスの一実施例のフローチャートである。
【図６】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１０】
以下、添付した図面を参照しながら、本発明の好適な実施形態を詳細に説明する。
【００１１】
本発明の実施例では、ユーザが、スクリーン（例えば、PCスクリーン、ホワイトボードなど）に書く、また、そのスクリーンをフリーズする必要がなく文書情報に注釈を付けることができる。即ち、本発明の実施例では、文書に注釈を付ける時に、スクリーンをフリーズする必要がない。これは、スクリーンに書かれた手書き情報をその下の文書の画像パッチ（patch）と関連付けさせることにより実現される。ここで開示の技術を用いることにより、ユーザは、プレゼンテーション又はテキストドキュメントの一部（スクリーン）に手書き情報を書き、文書の異なる部分又はページにスクロールすることができる。スクリーンに書かれた手書き情報は、この手書き情報が最初に（originally）書かれた文書の部分と関連付けられる。異なるページに移動する時に、スクリーン上の手書き情報は完全に無くなるが、文書が少しだけスクロールされる時に、マーク（手書き情報）は、このマークが最初に書かれた文書の部分に移動される。文書のページがユーザにより異なるページにスクロールされ且つマークがなくなる場合、元のページに戻る時に、マークは、その正確な位置（即ち、マークが最初に書かれた元のページにある位置）に再び現れ得る。
【００１２】
一実施例では、システムが文書情報に基づいて、手書き情報を文書と関連付けさせる。このようなシステムは、次のような処理を行う。まず、システムは、ライブのスクリーンをキャプチャする。ライブのスクリーンは、アナログ又はデジタルビデオケーブル、或いは、VNCのようなアプリケーションによる遠隔共有スクリーンからのものであってもよい。システムは、このようなスクリーンに入力された手書き情報を受け取ることができる。手書き情報は、スクリーンに表示されている文書に注釈を付けるために、ユーザによりスクリーンに入力されるものであってもよい。一実施例では、手書き情報は、例えば、ペンによるハイライトのような手書き情報であってもよい。手書き情報をキャプチャした後に、システムは、各手書き情報と、対応する手書き情報の位置にある画像パッチとのペアを作る。これは、一実施例では、Ricoh  Visual  Search（RVS）により実行される。即ち、一実施例では、Ricoh  Visual  Search（RVS）は、文書のことを知る必要がなく、文書が表示されている時に、その中の部分を識別し、また、文書が表示されている間に、文書の上に書かれた手書き情報を文書と関連付けさせるために用いられる。RVSは、よく知られているものである。RVSの詳細については、米国特許第7,702,673号明細書及び米国特許第8,086,038号明細書を参照することができる。
【００１３】
また、手書き情報を有する文書の画像パッチ（部分）がスクリーンから消える場合、システムは、スクリーンからその手書き情報を削除する。また、手書き情報を有する画像パッチが変換される場合、手書き情報も変換されてスクリーンに表示される。例えば、手書き情報を有する画像パッチがスクリーンの異なる部分に移動される時に、手書き情報も、この画像パッチのスクリーン上の新しい位置に移動され、且つ、この画像パッチ内の同じ位置に位置する。
【００１４】
同様に、手書き情報を有する画像パッチが回転され又は拡縮（拡大又は縮小）される場合、システムは、手書き情報をも同様に回転又は拡縮させて、この画像パッチ上に表示させる。よって、文書情報内のコンテンツが拡縮又は移動された後でも、対応する手書き情報は、同様な方式で拡縮又は移動され得る。これにより、手書き情報は、スクリーンに書かれた時と同様に、対応する画像パッチに対しての同じ位置に表示され得る。即ち、手書き情報は、この手書き情報の元の位置とマッチするように再配置又は拡縮される。
【００１５】
また、オリジナル文書は、画像パッチから再構成され得る。即ち、画像パッチは、ガイドとして使用されてもよく、また、オリジナル文書は、追加手書き情報を有する、キャプチャされた画像に基づいて再構成され得る。
【００１６】
このシステムの実施例は、次のような1つ以上の利点を有する。1つの利点は、手書き情報がオペレーティングシステムにおける全てのアプリケーションと統合できることにある。これに加えて、スクリーン画像は、依然としてライブのものであり、また、制御され得る。即ち、現れる画像は、フリーズされることがなく、また、自由に操作（例えば、移動、スクロールなど）され得る。さらに、キャプチャされた画像及び手書き情報は、文書を再構成するために用いられ得る。最後に、ここで開示の技術は、他の画像、例えば、スクリーンに表示されるPCディスプレー上の画像又はカメラからの画像とともに働くことができる。
【００１７】
以下、本発明のより詳しい説明を提供するために、いくつかの詳細を記載する。なお、当業者が理解すべきは、本発明がこれらの特定の詳細がなくても実施され得ることである。また、他の例では、本発明を曖昧にすることを避けるために、よく知られている構造及び装置をブロック図の形で概略的に示す。
【００１８】
次に記載の詳細の一部は、コンピュータメモリ内のデータビットの処理アルゴリズム又は符号表示（symbolic  representation）により示される。これらのアルゴリズム又は符号表示は、当業者によく用いられているものである。ここで、アルゴリズムとは、望ましい結果へ導くつじつまの合う一連のステップを指す。これらのステップは、物理量の物理的処置を要するものである。通常、これらの物理量は、電気又は磁気信号などを保存、転送、合成、又は比較するなどのことを可能にするものであるが、これに限定されない。また、これらの信号は、時々、便宜のために、主に、共通使用のために、ビット(bit)、値、要素、シンボル、キャラクター、ターム（term）、又は、数字などと称される。
【００１９】
なお、これら又は類似する用語は、適切な物理量に関連付けられ、また、単にこれら物理量に付けられる便利な符号であってもよい。また、特別な説明がない限り、次に記載の「処理」、「計算」、「確定」、又は、「表示」などとは、コンピュータシステム、又は、コンピュータシステムのレジスタ及びメモリ内の物理量として示されるデータを処理又は変換する他の類似する電子計算デバイスのプロセス及び動作などを指す。
【００２０】
また、本発明は、ここで開示の処理を実行するための装置にも関する。このような装置は、要求される目的のために特別に構成されてもよく、又は、中に保存されているコンピュータプログラムにより選択的に起動又は再構成され得る汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータシステムのバスに接続されるマシン（コンピュータ）読み取り可能な記録媒体、例えば、フロッピー(登録商標)ディスク、光ディスク、CD-ROM、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気又は光カード、又は、使用可能な他の任意のタイプの記録媒体に記録されてもよい。
【００２１】
また、ここで開示のアルゴリズム及び符号表示は、特定のコンピュータ又は他の装置と本質的に関連しない。言い換えると、様々な汎用システムは、ここで開示のプログラムを使用することができ、又は、要求される方法のステップを実行するために様々な特定の装置を構成し得ることも明らかである。以下、このようなシステム及び装置の具体例について詳細に説明する。さらに、本発明は、特定のプログラミング言語に限定されない。即ち、様々なプログラミング言語は、ここで開示の本発明の教えを実現すために用いられ得る。
【００２２】
また、マシン読み取り可能な記録媒体は、マシン（例えば、コンピュータ）可読の情報を保存又は転送するための任意のメカニズムを含む。例えば、マシン読み取り可能な記録媒体は、ROM、RAM、磁気ディスク、光ディスク、フラッシュメモリなどを含んでもよい。
【００２３】
以下、本発明の実施例について詳しく説明する。
【００２４】
上述のように、本発明のシステムの一実施例では、手書き情報が同じスクリーンに追加されて文書情報を覆うことができる。これらの手書き情報は、スクリーンに書かれ、また、これらの手書き情報に関連するいくつかの点及び線分を有する。線分は、長さ、色、透明度などを有する。手書き情報がスクリーンに追加される時に、システムは、この手書き情報の周りに表示されている文書情報の所定サイズの領域を取得する。例えば、システムは、手書き情報の最大及び最小のｘ及びｙの値を求め、手書き情報の境界ボックス（境界枠）を生成し、そして、生成された境界ボックスをその所定サイズの領域としてもよい。領域は、ここで、画像パッチと称され、区別できるのに十分大きなサイズを有する必要がある。言い換えると、領域のサイズは、画像パッチが今後他の画像パッチと比較される時に識別できるように選択される。領域を区別できなければ、例えば、領域が区別用マークを有しない白いバックグランドであれば、このような領域は、文書情報の他の画像パッチと区別できる程度の十分な情報が含まれるまでに拡大される。一実施例では、システムは、それから、画像パッチ又は一実施例において画像パッチから求められた特徴のセット（集合）、及び、点の値のセットをデータベースに保存する。点の値は、画像パッチに対しての手書き情報の位置を示す。例えば、一連のｘ−ｙ座標は、手書き情報の異なる部分を示し、また、各ｘ−ｙ座標は、画像パッチの特定の点（例えば、左下角の点など）と関連するように設定される。このような材料は、データベースに保存される。
【００２５】
システムは、保存された画像パッチ及び手書き情報を用いて、スクリーンに現れる画像ページを識別し、そして、識別された画像ページに前に手書き情報が現れたかどうかを判断する。例えば、文書情報がスクロールされてスクリーンに新しい画像パッチが現れ、且つ、スクリーンに表示されている画像パッチとマッチするものがデータベースに存在しなければ、システムは、スクリーンから手書き情報を削除する。
【００２６】
文書情報の次のスクロールにより、関連付けられた手書き情報を有する画像パッチがスクリーンに再び現れれば、システムは、この手書き情報をスクリーンに返す。具体的には、システムは、この手書き情報を、スクリーンにおいて画像パッチのある点（例えば、左下角の点）に対しての同じ位置に返す。このようにして、手書き情報は、その属する画像パッチに対してのオリジナル位置とマッチするように再配置される。なお、画像パッチがそれに関連付けられた手書き情報を有するかどうかの判断は、画像パッチとデータベースにある画像パッチとのマッチ処理により行われる。
【００２７】
図１は、手書き情報を文書情報の一部と関連付けさせるためのシステム１００のブロック図である。システム１００は、表示面１０２、コントローラ１０６、及びキャプチャシステム１０８を含む複数のコンポーネントを有してもよい。なお、図１に示すシステム１００のコンポーネントは、説明のためだけのものであり、本発明の実施例の範囲を限定するものではない。他の実施例は、図１に示すコンポーネントより多い又は少ないものを有してもよい。
【００２８】
表示面１０２（例えば、タブレットコンピュータ、タッチスクリーンコンピュータ、対話型ホワイトボード、Apple  iPad、テレストレータ（telestrator）システムなど）は、システム１００のユーザに入力及び出力インタフェースを提供する。入力インタフェースとされる時に、表示面１０２は、ユーザが手書き情報を入力することを可能にし、入力された手書き情報は、それから、デジタル情報（手書き情報のデジタル表現とも称される）に変換される。出力インタフェースとされる時に、表示面１０２には、再び書かれた手書き情報又は文書情報の出力のようなデジタル情報がコントローラ１０６により表示され、これにより、情報は、システム１００の一人以上のユーザにより見られる。システム１００の一人以上のユーザは、1つ以上の書く用器具を用いて、手書き情報を書く（ライティング（writing）する）又は描く（ドローイング（drawing）する）ことにより、システム１００に入力を提供することができる。例えば、図１に示すように、ユーザは、書く用器具を用いて、表示面１０２に手書き情報を書くことができる。なお、「手書き情報」、「ライティング」、「ドローイング」、又は「ライティング情報」という用語は、ここに用いられるように、書く用器具を用いて提供され得る1つ以上の線分、ハイライト、キャラクター、レター、シンポル、ワード、センテンス、テーブル、ドローイング、スケッチ、フィガー、又は任意の他のタイプの入力を含んでもよいことを意味する。一例として、ライティング又はドローイングは、任意の言語又はフォーマットで表現される手書きのレター、数字、又はシンポルを含んでもよい。
【００２９】
書く用器具によるユーザの手書き情報のライティングは、キャプチャシステム１０８によりキャプチャされてコントローラ１０６に送信され、コントローラ１０６は、手書き情報に対応するデジタル情報を確定する。確定されたデジタル情報は、それから、表示のために、表示面１０２に送信されてもよい。一実施例では、コントローラ１０６は、手書き情報（デジタル情報）を表示面１０２への投影のためにプロジェクタに送信してもよい。
【００３０】
システム１００のユーザは、異なる書く用器具を用いて、書く又は入力を提供することができる。一実施例では、書く用器具は、表示面１０２に可視のマークを残さない物理的なオブジェクトであってもよい。例えば、ユーザは、手の指を書く用器具として用いて、表示面１０２に書くことができる。手の指は、表示面１０２に可視のマークを残さなくても、手の指の移動は、キャプチャされてデジタル情報に変換され、それから、表示面１０２に表示され得る。他の実施例として、ユーザは、ポインター又はスタイラスを書く用器具として用いて、表示面１０２に書くことができ、スタイラスは、表示面１０２に可視の物理的なマークを残さなくてもよい。ユーザによる手書き情報はキャプチャされ、キャプチャされた手書き情報に対応するデジタル情報は確定され、そして、このデジタル情報は表示面１０２に表示される。
【００３１】
一実施例では、表示面１０２は、抵抗性タッチシステムのような能動的な表示面であり、この抵抗性タッチシステムは、抵抗の変化を測定して、スクリーンに押されているオブジェクトの位置を識別することができる。能動的な表示面の他の例は、赤外線LEDに囲まれるガラスボードを含み、この赤外線LEDは、FTIR（frustrated  total  internal  reflection「漏れ全反射」）を用いることにより、カメラに、表示面又は米国Apple社のiPadTM又はiPhoneTMに搭載されているような容量性タッチスクリーンにおける手の指やペンの位置をキャプチャさせることができる。
【００３２】
キャプチャシステム１０８は、ユーザが書く用器具を用いて入力した手書き情報（ライティング）をキャプチャするように構成される。キャプチャシステム１０８によりキャプチャされる手書き情報は、更なる処理のために、コントローラ１０６に送信され得る。キャプチャシステム１０８は、書く用器具によるライティングのキャプチャを可能にする1つ以上のコンポーネントを有してもよい。一実施例では、キャプチャシステム１０８は、ユーザが書く用器具を用いて書く時に、書く用器具の運動又は動きをキャプチャすることができる1つ以上のセンサを含んでもよい。このような運動又は動きは、異なる技術によりキャプチャされ得る。1つの技術によれば、２次元面（又は３次元面）において書く用器具の運動又は動きを取得することができる運動センサ、例えば、eBeamシステムにおけるTOF（time-of-flight）センサが、表示面１０２の近くに設けられる。キャプチャされた運動情報は、コントローラ１０６に運ばれ、それから、コントローラ１０６は、この運動情報を処理し、ユーザによる手書き情報（ライティング）を確定し、そして、確定した手書き情報に対応するデジタル情報を確定する。
【００３３】
他の実施例では、キャプチャシステム１０８は、表示面１０２に組み込まれて、表示面１０２を感圧にするための1つ以上の圧力センサを含んでもよい。このような圧力マッピングマルチタッチ表示面は、米国TekScan社のフレキシブル電子回路のようなものにより挟まれる感圧抵抗材料から製造されてもよい。このような実施例では、表示面１０２は、ユーザが表示面１０２をタッチすることによる手書き情報をキャプチャし得るマルチタッチの感圧表示面を提供することができる。圧力センサにより取得される情報は、更なる処理のために、コントローラ１０６に送信されてもよい。
【００３４】
また、他の実施例では、表示面１０２は、米国Apple社のiPadTM又はiPhoneTMに搭載されているような容量結合型入力インタフェースであってもよい。このような実施例では、表示面１０２は、マルチタッチの入力体験、ズーム及びパンなどを可能にすることができる。このような実施例では、ユーザは、手の指又は伝導性のあるスタイラスを用いて、表示面１０２に手書き情報を書くことができ、また、書かれた手書き情報は、更なる処理又は分析のために、コントローラ１０６に送信されてもよい。
【００３５】
コントローラ１０６は、システム１００により提供されるあらゆる機能を制御する及び可能にする処理を実行するためのセントラルコンポーネントの役割を果たす。コントローラ１０６は、システム１００の1つ以上のコンポーネントと動作可能なように接続され、また、これらのコンポーネントにより実行される機能を制御及び／又は調整するように構成される。例えば、コントローラ１０６は、キャプチャシステム１０８及び／又は表示面１０２と動作可能なように接続され、また、キャプチャシステム１０８により取得される情報を受信するように構成される。また、コントローラ１０６は、受信した情報を処理し、受信した情報に対応するデジタル情報を確定するように構成されてもよい。確定された情報は、さらに、表示面１０２に送信され得る。一実施例では、確定されたデジタル情報は、プロジェクタに送信され、これにより、表示面１０２に投影され得る。
【００３６】
代表的なコントローラ１０６は、プロセッサベースの計算デバイスである。コントローラ１０６の一例は、図６に示されて後述される。他の実施例では、コントローラ１０６は、プロセッサ、プログラミング可能なロジックデバイスなどであってもよい。コントローラ１０６は、1つ以上のプログラム（コード、命令）を実行することができ、このようなプログラムは、コントローラ１０６のプロセッサにより実行される時に、コントローラ１０６により実行される処理を可能にする。
【００３７】
一実施例では、コントローラ１０６は、表示面１０２に表示されている文書情報又はその中の一部をキャプチャすることができる。一実施例では、キャプチャされた文書情報は、コントローラ１０６又はコントローラ１０６の制御によりキャプチャされたデジタル又はアナログビデオ画像からの画像である。他の実施例では、表示面に表示されている文書情報は、コントローラ１０６に実行されているアプリケーションからのものである。このような場合、コントローラ１０６は、アプリケーションの出力を、表示のために表示面１０２に送信する。一実施例では、画像は、VNC又はMicrosoft  Remote  Desktopソフトウェアのようなリモートスクリーン共有ソフトウェアによりリモートコンピュータからキャプチャされ、そして、コントローラ１０６により表示面１０２に表示される。
【００３８】
一実施例では、コントローラ１０６は、書く用器具による手書き情報の入力情報に対応するデジタル情報を確定するように構成される。一実施例では、この処理の一部として、コントローラ１０６は、キャプチャシステム１０８から受信された情報に基づいて、手書き情報を確定し、それから、この手書き情報に対応するデジタル情報を確定するように構成される。一実施例では、手書き情報は、書く用器具の起動（即ち、書くために用いられた）時から終了時までの間に、書く用器具により生成されたデータに対応してもよい。例えば、一実施例では、手書き情報は、書く用器具が表示面１０２に接触した時点からその接触が中断又はブロークン（broken）された時点までの間に、書く用器具により生成されたデータに対応してもよい。手書き情報は、ユーザが書く用器具を用いて入力した情報を表現するための最も基本的なユニットであると見なされてもよい。コントローラ１０６は、さらに、このような手書き情報に対応するデジタル情報を確定することができる。
【００３９】
他の一実施例では、キャプチャシステム１０８そのものは、手書き情報を確定し、また、確定した情報をコントローラ１０６に送ることができる。コントローラ１０６は、さらに、キャプチャシステム１０８から受信した情報から直接デジタル情報を確定することができる。
【００４０】
コントローラ１０６により確定されたデジタル情報は、不揮発性のストレージ１２２にローカルに保存されてもよい。一実施例では、コントローラ１０６により受信されたキャプチャシステム１０８からの情報又はその一部は、メモリ１２２にローカルに保存されてもよい。
【００４１】
よって、コントローラ１０６は、キャプチャシステム１０８により取得された原センサデータ（raw  sensor  data）を受信し、そして、原センサデータに基づいて手書き情報を確定することができ、又は、キャプチャシステム１０８からの手書き情報を受信することができる。コントローラ１０６は、さらに、この手書き情報に対応するデジタル情報を確定することができる。いくつかの実施例では、デジタル情報が原センサデータから直接確定されてもよい。コントローラ１０６は、さらに、確定されたデジタル情報を、表示のために表示面１０２に送信してもよい。この表示は、プロジェクタ又は他のメカニズムにより直接実現され得る。一実施例では、コントローラ１０６から表示面１０２へ送信されたデジタル情報は、画像データと、その中に組み込まれた手書き情報との組み合わせである。
【００４２】
コントローラ１０６は、コントローラ１０６により提供される機能を提供する1つ以上のモジュールを含んでもよい。これらのモジュールは、ハードウェア、ソフトウェア、又はそれらの組み合わせにより実現されてもよい。例えば、一実施例では、モジュールは、ソフトウェア（プログラム、コード、命令）に実現されてもよく、このソフトウェアは、コントローラ１０６のプロセッサにより実行される時に、コントローラにより提供される機能を提供する。一実施例では、図１に示すように、コントローラ１０６は、1つ以上のモジュールを含み、これらのモジュールは、キャプチャされた手書き情報データを、その下の表示されている文書情報の画像パッチと関連付けさせること；スクリーンに表示されている文書情報が変更（例えば、移動、スクロール、拡縮、部分的にブロック）されていると判断し、新しい文書情報を生成すること；新しく表示される文書情報の1つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかどうかを判断すること；及び、この判断（即ち、新しく表示される文書情報の1つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかとの判断）の結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を、新しく表示される文書情報の画像パッチに書くことを行うために用いられる。
【００４３】
一実施例では、コントローラ１０６は、手書き情報データを確定し、この手書き情報データと、この手書き情報データの下にある画像パッチを特定するための情報と、をメモリ（例えば、データベース）に保存する。一実施例では、画像パッチを特定するための情報は、画像パッチそのものである。よって、この場合、手書き情報データと、この手書き情報データの下にあり且つこの手書き情報データに関連付けられた画像パッチとは保存される。他の実施例では、画像パッチを特定するための情報は、特徴点のセット（集合）である。なお、一実施例では、データベースに保存される時に、画像パッチ又はそれに関連する特徴点は、手書き情報データを含まず、言い換えると、手書き情報データ及びそれに関連付けられた情報は、別々に保存される。データベースは、現在に表示されている画像パッチが、以前に手書き情報があると判定された画像パッチとマッチするかどうかを判断しようとする時に、コントローラ１０６がクエリー（query）を行うことが可能になるために用いられる。
【００４４】
一実施例では、コントローラ１０６は、表示される文書情報を複数の画像パッチに分割するように構成されることもある。これは、文書情報が変更（例えば、移動、スクロール、拡縮など）された時に用いられてもよい。コントローラ１０６は、それから、分割された複数の画像パッチを用いて、手書き情報データをこの手書き情報データの下にある画像パッチと関連付けさせるかどうかを判断する。例えば、手書き情報が表示面１０２に書かれた時に、コントローラ１０６は、この手書き情報を囲む画像パッチを確定し、そして、手書き情報データを含むこの画像パッチにインデックス（index）を付ける。
【００４５】
一実施例では、コントローラ１０６は、現在に表示されている文書情報の画像パッチと、キャプチャされた手書き情報データとともに保存された画像パッチ（保存画像パッチとも称される）との比較を行い、現在に表示されている文書情報の一つ以上の画像パッチ又はその一部と、キャプチャされた手書き情報データとともに保存された画像パッチとがマッチ（一致）するか又は部分的にマッチするかを判断する。マッチすると判断すれば、コントローラ１０６は、以前にキャプチャされた手書き情報データの少なくとも一部を、現在に表示されている一つの画像パッチと少なくとも部分的にマッチする画像パッチ毎に表示させる。以前にキャプチャされた手書き情報データの一部は、手書き情報全体を含んでもよく、ここで、保存された画像の一部とマッチする、現在に表示されている画像パッチの一部は、手書き情報全体を含む。以前にキャプチャされた手書き情報データの一部は、手書き情報の一部のみを含んでもよく、ここで、現在に表示されている画像パッチとマッチする、保存された画像パッチの一部は、保存された画像パッチの手書き情報の一部のみを含む。よって、コントローラ１０６は、手書き情報をある範囲に表示させ、このある範囲は、現在に表示されている文書情報の現在に表示されている画像パッチ又はその一部とマッチする保存画像パッチの一部が、キャプチャされた手書き情報データの一部を含む範囲である。マッチしないと判断すれば、コントローラ１０６は、第二文書情報（現在に表示されている文書情報）の画像パッチの上のスクリーンに現れる全ての手書き情報を削除する。
【００４６】
一実施例では、コントローラ１０６は、現在に表示されている文書情報の画像パッチ又はその一部が、キャプチャされた手書き情報データとともに現在に保存されている画像パッチと少なくとも部分的にマッチし、且つ、保存された画像パッチのマッチした部分が、手書き情報データを有すると判断すれば、コントローラ１０６は、現在に表示されている文書情報の画像パッチ又はその一部が、マッチした手書き情報データを有する保存画像パッチと比較して変換されているかどうかをも判断する。このような変換は、画像パッチの移動、画像パッチの拡縮、回転、スキュー、ワーピング（warping）、又は透視変換(perspective  transformation)を含んでもよい。そうであれば、コントローラ１０６は、現在に表示されている画像パッチの上のスクリーンに、キャプチャされた手書き情報データを書く前に、同じ変換をキャプチャされた手書き情報データに適用する。
【００４７】
図４Ａは、文書情報に書かれた手書き情報４０１−４０３を示す。文書情報が上へ少しだけスクロールされた後に、システムは、コントローラ１０６の制御により、図４Ｂに示すように、表示面１０２に手書き情報４０１−４３０を、それらの文書におけるテキストに対してのオリジナル位置とマッチするように再配置する。図４Ｃは、システムが手書き情報４０１を、文書情報におけるテキストに対しての手書き情報４０１のオリジナル位置とマッチするように再配置及び拡大する時の一例を示す。
【００４８】
図２は、手書き情報データを処理するためのプロセスを記述するフローチャートである。このプロセスは、処理ロジックにより実行され、処理ロジックは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用マシンに実行されるようなもの）、又は、それらの組み合わせを含んでもよい。一実施例では、このプロセスは、コントローラ１０６により実行される。
【００４９】
図２を参照するに、プロセスは、ステップ２０１から始まり、ここで、処理ロジックは、手書き情報が書かれたかを検出する。そうでなければ、プロセスは、依然としてステップ２０１にとどまり、手書き情報が書かれたかを再検出する。手書き情報が書かれた場合、プロセスは、ステップ２０２に移行し、ここで、コントローラ１０６は、手書き情報を囲む画像パッチにインデックスを付ける。なお、この操作により、画像パッチは識別できるようになる。手書き情報を囲む画像パッチにインデックスを付けた後に、処理ロジックは、手書き情報に対応する手書き情報データを画像パッチと関連付けさせる（ステップ２０３）。この関連付けは、画像パッチにおける手書き情報の位置を特定するための情報を含む。それから、手書き情報データ及び位置情報は、画像パッチとともに、ストレージロケーション（例えば、ストレージ１２２、データベースなど）に保存される。
【００５０】
図２に記述のように、手書き情報が書かれた度に、手書き情報を囲む画像パッチにはインデックスが付けられ、また、手書き情報データは画像パッチと関連付けられる。一実施例では、画像パッチ全体と、手書き情報を表す手書き情報データとは、メモリ（例えば、データベース）に保存される。図４Ｄは、手書き情報４０１、及び、ボックス４０８にある手書き情報４０１の下の画像パッチ４０６を示す。コントローラ１０６は、手書き情報上のいくつかの位置を識別し、それらを（ｘ，ｙ）値として表す。これらの値は、画像パッチにおける特定の位置に対するものである。図４Ｅは、手書き情報を表すために用いられる一連の（ｘ，ｙ）値による位置を有する画像パッチ４０６にある手書き情報４０１を示す。図４Ｅを参照するに、手書き情報は、（ｘ，ｙ）値が（５５，６９）である位置から、（ｘ，ｙ）値が（６５，１６８）である位置までであり、値（５５，６９）及び（６５，１６８）は、全て、画像パッチの左下角の点、即ち、（ｘ，ｙ）値が（０，０）である点に対するものである。手書き情報に沿う全てのｘ−ｙ値は、画像パッチとともに保存される。図４Ｆ及び４Ｇに示すのは、文書情報の一部に書かれたハイライトの手書き情報（図４Ｅ）、及び、このハイライトの手書き情報に関連する（ｘ，ｙ）値を示す他の例である。
【００５１】
図３は、文書情報の一部の上の表示面に手書き情報を再び書くかを判断するためのプロセスを示す。このプロセスは、処理ロジックにより実行され、処理ロジックは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用マシンに実行されるようなもの）、又は、それらの組み合わせを含んでもよい。一実施例では、このプロセスは、コントローラ１０６により実行される。
【００５２】
図３を参照するに、プロセスは、システムにおける処理ロジックにより、スクリーンが変更されたか（例えば、文書情報がスクロール、移動、拡縮、又は変換されたか）を判断することから始まる（ステップ３０１）。一実施例では、この判断は、時点１及び時点２に表示されるピクセルを直接比較することにより実施され得る。スクリーンが変更されなければ、プロセスは、依然としてステップ３０１にとどまり、スクリーンが変更されたかを続けて判断する。スクリーンが変更されれば、プロセスは、ステップ３０２に移行し、ここで、処理ロジックは、スクリーンを複数の領域（例えば、画像パッチ）に分割する。図４Ｈは、一例として、スクリーンが８０個の画像パッチに分割されるのを示す。
【００５３】
スクリーン画像を画像パッチに分割した後に、処理ロジックは、画像パッチが、以前に、保存された手書き情報データがあると判定された画像パッチとマッチするかどうかをテストする。そのために、処理ロジックは、データベースにおける、手書き情報データを有する画像パッチとのマッチをテストする必要のある他の領域があるかどうかを判断する（ステップ３０３）。なければ、プロセスは、ステップ３０１に戻し、上述の処理を繰り返して行う。
【００５４】
一方、マッチをテストする必要のある他の領域があれば、プロセスは、ステップ３０４に移行し、ここで、システムにおける処理ロジックは、領域（画像パッチ）と、データベースにおける、関連付けられた手書き情報データを有する画像パッチとのマッチがあるかどうかを判断する。即ち、システムは、それから、画像パッチでデータベースに対してクエリーを行い、現在に表示されている画像パッチと、既にデータベースに保存された、手書き情報データを有する画像パッチとのマッチがあるかどうかの判断を行なう。なお、一実施例では、現在にスクリーンに表示されているいくつかの画像パッチが無視される。その理由は、無視された画像パッチが、データベースに保存された画像パッチと正しくマッチできる程度の情報を有しないことにある。他の実施例では、文書情報が変更される時に、動きベクトルを探すことにより、クエリーを加速することができる。言い換えると、ユーザが文書情報をスクロールし、表示されている文書情報の一部を変更すれば、そのスクロール操作に関連する動きベクトルを識別することができ、これにより、現在にスクリーンに表示されている、データベースに保存された画像パッチとマッチする可能性が高い画像パッチのサブセットの選択を助けることができる。オンラインで使用可能なＯｐｅｎＣＶのようなオープンソースのコンピュータビジョン向けライブラリにおける動きベクトルアルゴリズムは、このために使用され得る。
【００５５】
データベースにマッチするものが見つからなかった場合、プロセスは、ステップ３０３に戻り、その次の処理をし続ける。領域のコンテンツ（画像パッチ）と、データベースに保存された画像パッチとのマッチがあった場合、処理ロジックは、保存された画像パッチの手書き情報データの一部が、保存された画像パッチとマッチする領域とマッチする、保存された画像パッチの一部にあるかを判断する（ステップ３０５）。言い換えると、処理ロジックは、テストされている画像パッチと、保存された画像パッチとの重複の部分に手書き情報データがあるかを判断する。これは、システムが、手書き情報を何の範囲に書くべきか、また、現在に表示されている画像パッチに対しての何処に書くべきかを判断することを可能にする。
【００５６】
その後、システムは、スクリーンに手書き情報を書き（ステップ３０６）、そして、ステップ３０３に戻り、データベースにおける画像パッチとのマッチをチェックする必要のある、現在に表示されている文書情報の他の領域があるかどうかを判断する。
【００５７】
一例として、図４Ｉは、手書き情報データを有する、保存された画像パッチと少なくとも部分的にマッチする可能性がある画像パッチ（領域）４１０−４１２を示す。図４Ｊに示すように、画像パッチ４１１は、保存された画像パッチ４２０の一部のみと重なり、また、重なった部分は、手書き情報データを含まない。この場合、コントローラ１０６は、現在に表示されている画像パッチに手書き情報を書かない。一方、図４Ｋに示すように、画像パッチ４１２は、保存された画像パッチの一部と重なり、また、重なった部分は、手書き情報データを含む。この場合、コントローラ１０６は、手書き情報データを、この手書き情報データにマッチする、現在に表示されている画像パッチに追加する。また、図４Ｌに示すように、画像パッチ４１１は、手書き情報を含む、保存された画像パッチの一部と完全に重なる。この場合、手書き情報は、スクリーンの現在に表示されている画像パッチにおけるコンテンツに対してのオリジナル位置に書かれる。
【００５８】
一実施例では、画像パッチの比較は、RVCについて上述したような特徴点を用いて行われる。このような場合、手書き情報は、画像パッチそのものでなく、画像パッチ内の特徴点と関連付けられる。よって、画像パッチをデータベースに保存する必要がなく、特徴点だけを保存すればよい。例えば、手書き情報が表示面に追加されれば、コントローラは、この手書き情報を囲む境界ボックスを生成し、そして、この境界ボックス内の画像（手書き情報を有しない）をキャプチャする。この情報を用いて、コントローラは、画像からボックス内の特徴点を計算し、そして、特徴点の形状（geometry）を含む特徴点情報をデータベースに保存する。それから、コントローラは、手書き情報を、その画像でなく、特徴点の集合と関連付けさせる。コントローラが画像パッチの比較を行う時に、コントローラは、変更されたスクリーンからの画像パッチを調べ、この画像パッチに関連する特徴点を計算し、それから、データベースに対してクエリーを行う。マッチする特徴点があれば、コントローラは、それらの特徴点に関連付けられた手書き情報を取得し、そして、手書き情報をスクリーンの正確な位置に表示させる。
【００５９】
一実施例では、文書情報の、特徴点又は特徴点のサブセットに対しての手書き情報の相対的な位置が保存される。これは、手書き情報が文書情報のコンテンツの近くに位置しない（例えば、手書き情報が文書情報の全ての特徴点から離れた位置にある）場合に有用である。使用可能な相対位置データを持つことにより、コントローラは、現在に表示されている文書情報がそれらの特徴点を含むと判定した場合、手書き情報をスクリーンの何処に書くべきかを確定することができる。
【００６０】
なお、特徴点は、スクリーンが変更されたかどうかを判断する時にも使用され得る。スクリーンを画像パッチへの分割の代わりに、コントローラは、変更された画像のエリアを計算し、変更された画像の一部の特徴ベクトル又は特徴点のみを計算し、そして、これらの特徴点がデータベースに保存されたかを確かめる。
【００６１】
また、一実施例では、コントローラは、第一時点ｔ１にスクリーン全体に特徴点を生成し、第二時点ｔ２に特徴点を計算し、それから、両者を比較することにより、スクリーンが変わったかを判断することができる。両者が異なった場合、コントローラは、スクリーンが変わって新しい文書情報又はその一部を含んでいることを把握できる。
【００６２】
図５は、手書き情報を文書情報に関連付けさせるプロセスの一実施例のフローチャートである。このプロセスは、処理ロジックにより実行され、処理ロジックは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用マシンに実行されるようなもの）、又は、それらの組み合わせを含んでもよい。
【００６３】
図５を参照するに、プロセスは、処理ロジックが、第一文書情報が表示されている間に、第一文書情報の上のスクリーンに書かれた手書き情報をキャプチャすることから始まる（ステップ５０１）。次に、処理ロジックは、キャプチャされた手書き情報のキャプチャされた手書き情報データを、その下の表示されている文書情報の画像パッチと関連付けさせる（ステップ５０２）。
【００６４】
少なくとも一つの手書き情報のキャプチャ及びキャプチャされた手書き情報データの関連付けに応えて、処理ロジックは、各手書き情報について、この手書き情報を囲む文書情報の画像パッチにインデックスを付け、そして、この手書き情報の手書き情報データを、この画像パッチ又はこの画像パッチにおける特徴と関連付けさせる（ステップ５０３）。
【００６５】
処理ロジックは、キャプチャされた各手書き情報のデータと、関連付けられたその下の画像パッチを示す情報（例えば、画像パッチそのもの、或いは、画像パッチにおける又は付近の特徴）とを保存する（ステップ５０４）。
【００６６】
次に、処理ロジックは、第二文書情報がスクリーンに表示されていると判定する（ステップ５０５）。第二文書情報は、第一文書情報からの画像データを含んでもよい。これは、文書を新しいページの量よりも小さい量でスクロールする場合に現れる。第二文書情報は、第一文書情報の修正バージョンであってもよい。例えば、第二文書情報は、第一文書情報の全体又は一部の翻訳、拡縮、又は回転バージョンであってもよい。
【００６７】
オプションで、処理ロジックは、新しい文書情報を複数の画像パッチに分割し（ステップ５０６）、第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報データと関連付けられたかを判断する（第二文書情報の画像パッチと、キャプチャされた手書き情報データとともに保存された画像パッチとの比較により、第二文書情報の一つ以上の画像パッチ又はその一部が、キャプチャされた手書き情報データとともに現在に保存されている画像パッチと少なくとも部分的にマッチするかを判断する）（ステップ５０７）。
【００６８】
一実施例では、処理ロジックは、スクリーンを複数の画像パッチに分割せずに、スクリーンの一部が変わったと判定することができる。この実施例では、処理ロジックは、スクリーンの変わった部分における特徴点又は特徴ベクトルを計算し、どの特徴が手書き情報データと既に関連付けられているかを特定することができる。
【００６９】
次に、処理ロジックは、第二文書情報の一つ以上の画像パッチ又はその一部が前にキャプチャされた手書き情報と関連付けられているかを判断することにより得られた結果に基づいて、前にキャプチャされた一つ以上の手書き情報又はその一部を第二文書情報の画像パッチの上に描画する（ステップ５０８）。
【００７０】
一実施例では、処理ロジックは、次のように、前にキャプチャされた一つ以上の手書き情報を書く。
【００７１】
画像パッチの比較により、マッチがあると判定した場合、前にキャプチャされた手書き情報データの少なくとも一部は、現在に表示されている一つの画像パッチと少なくとも部分的にマッチする、保存された画像パッチ毎に、スクリーンのある範囲に表示される。このある範囲は、第二文書情報の画像パッチ又はその一部とマッチする、保存された各画像パッチの一部が、キャプチャされた手書き情報データの一部を含む範囲である。
【００７２】
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが第二文書情報の画像パッチの一部とマッチすると判定した場合、第二文書情報の一つの画像パッチの一部とマッチする、手書き情報データを有する画像パッチの一部が、キャプチャされた手書き情報データを含むかを判断する。そうであれば、第二文書情報の画像パッチとマッチする画像パッチに現れる、キャプチャされた手書き情報データは、書かれる。
【００７３】
画像パッチの比較により、前にキャプチャされた手書き情報データと関連付けられた画像パッチの一部のみが第二文書情報の画像パッチの一部とマッチすると判定した場合、第二文書情報の一つの画像パッチの一部とマッチする、手書き情報データを有する画像パッチの一部が、キャプチャされた手書き情報データを含むかどうか、及び、第二文書情報の前記一つの画像パッチが変換（例えば、再配置、拡縮など）されたかどうかを判断する。そうであれば、第二文書情報の画像パッチとマッチする画像パッチの一部に現れる、キャプチャされた手書き情報データは、第二文書情報の画像パッチと同様な方式で変換され、そして、変換された手書き情報データは、画像パッチの上のスクリーンに書かれる。
【００７４】
画像パッチの比較により、マッチがないと判定した場合、第二文書情報の画像パッチの上のスクリーンに現れる全ての手書き情報は削除される。
【００７５】
いくつかの代替手段がある。例えば、ここで開示の、手書き情報を文書情報と関連付けさせる技術は、カメラとともに用いられてもよく、このカメラは、その下にある文書の画像をキャプチャし、また、キャプチャした画像をホワイトボードのような表示面に表示するように設置される。よって、ホワイトボードに書かれたテキストは、カメラによりキャプチャされた文書に関連付けられ得る。使用者がカメラの下に設置されている文書を操作又は変更する時に、手書き情報は、上述のように、移動、変更、消失、又は変換され得る。
【００７６】
以下、コンピュータシステムの一例を説明する。
【００７７】
図６は、本発明の一実施例を実施するために用いられ得るコンピュータシステム６００のブロック図である。一実施例では、コンピュータシステム６００は、図１に示されており且つ上述されているコントローラ１０６を実現するために用いられ得る。図６に示すように、コンピュータシステム６００は、バスサブシステム６０４を介して、いくつかの周辺サブシステムと通信するプロセッサ６０２を含む。これらの周辺サブシステムは、メモリサブシステム６０８及びファイルストレージサブシステム６１０を含むストレージサブシステム６０６と、ユーザインタフェース６１２と、ユーザインタフェース出力デバイス６１４と、ネットワークインタフェースサブシステム６１６とを含む。
【００７８】
バスサブシステム６０４は、コンピュータシステム６００の各コンポーネント及びサブシステムが目的通りに互いに通信できるようにするためのメカニズムを提供する。バスサブシステム６０４は、シングルバスとして概略的に示されるが、バスサブシステムの他の実施例は、複数のバスを用いることもできる。
【００７９】
ネットワークインタフェースサブシステム６１６は、他のコンピュータシステム、ネットワーク、及びストレージにインタフェースを提供する。ネットワークインタフェースサブシステム６１６は、コンピュータシステム６００からデータを受信し、また、データを他のシステムに送信するためのインタフェースの役割を果たす。例えば、ＩＷＢ（対話型ホワイトボード）システムのネットワークインタフェースサブシステム６１６は、コントローラがインタネットのような通信ネットワークを介して、遠隔に設置される他のＩＷＢシステムと通信できるようにすることができる。
【００８０】
ユーザインタフェース入力デバイス６１２は、キーボード；マウス、トラックボール、タッチパッド、又はグラフィックスタブレットのようなポインティングデバイス；スキャナー；バーコードスキャナー；表示器に含まれるタッチスクリーン；音声識別システム及びマイクロフォンのような音声入力デバイス；及び、他のタイプの入力デバイスを含んでもよい。一般的には、「入力デバイス」という用語の使用は、コンピュータシステム６００に情報を入力するための全ての使用可能なタイプのデバイス及びメカニズムを含むことを意味する。
【００８１】
ユーザインタフェース出力デバイス６１４は、表示サブシステム、プリンター、ファックスマシン、又は、音声出力デバイスのような非視覚的表示器などを含んでもよい。表示サブシステムは、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）のような平面パネルデバイス、又は、プロジェクションデバイスであってもよい。一般的には、「出力デバイス」という用語の使用は、コンピュータ６００から情報を出力するための全ての使用可能なタイプのデバイス及びメカニズムを含むことを意味する。
【００８２】
ストレージサブシステム６０６は、上述の各実施例における機能を提供する基本的なプログラム及びデータ構造を記録するためのコンピュータ読み取り可能な記録媒体を提供する。プロセッサにより実行される時に本発明の機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、ストレージサブシステム６０６に記憶されてもよい。これらのソフトウェア又は命令は、プロセッサ６０２により実行され得る。ストレージサブシステム６０６は、本発明に従って使用されるデータを保存するためのリポジトリ（repository）をも提供することができる。ストレージサブシステム６０６は、メモリサブシステム６０８及びファイル／ディスクストーレジサブシステム６１０を含んでもよい。
【００８３】
メモリサブシステム６０８は、プログラム実行中に命令及びデータを保存するためのメインＲＡＭ（random  access  memory）６１８と、固定命令が保存されるＲＯＭ（read  only  memory）６２０とを含んでもよい。ファイルストレージサブシステム６１０は、プログラム及びデータファイルのための持続性（不揮発性）ストレージを提供し、また、ハードディスクドライブ、フロッピーディスクドライブに加えて、関連する取り外し可能な媒体、ＣＤ−ＲＯＭドライブ、光学式ドライブ、取り外し可能な媒体カートリッジ、及び他のソトレージ媒体を含んでもよい。
【００８４】
コンピュータシステム６００は、パソコン、フォン、ポータブルコンピュータ、ワークステーション、ネットワークコンピュータ、又は他のデータ処理システムを含む様々なタイプのものであってもよい。コンピュータ及びネットワークが常に変化するので、図６に示すコンピュータシステム６００は、コンピュータシステムの好適な実施例を説明するための特定の一例だけである。図６に示すシステムにおけるコンポーネントより多い又は少ないものを有する他の構成も使用され得る。
【００８５】
さらに、本発明は、上述の各実施例における機能を実現するプログラム（データ構造を含む）を記録しているコンピュータ読み取り可能な記録媒体を含む製品（例えば、装置）に関する。
【００８６】
本発明の具体的な実施例を説明したが、各種の変更、代替又は同等のものを本発明の範囲内に含めることもできる。また、上述の教えは、起動又は再起動可能なプロセッサを含む任意のシステムに応用されてもよい。例えば、上述の実施例は、一定のシステムを例として用いることにより説明されたが、これは、本発明を限定するためのものではない。上述及び請求の範囲に開示の教えは、スクリーン上の手書き情報をキャプチャし、キャプチャした手書き情報をその下の文書情報の画像パッチと関連付けさせ、それから、新しい文書情報にその画像パッチが見つかるかどうかを基づいて、その手書き情報を再び書く又は削除することを可能にする他のコンピュータシステムにより実施されてもよい。
【００８７】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は本発明の技術範囲に属する。
【図１】
2013182625.tif 000003
【図２】
2013182625.tif 000004
【図３】
2013182625.tif 000005
【図４Ａ】
2013182625.tif 000006
【図４Ｂ】
2013182625.tif 000007
【図４Ｃ】
2013182625.tif 000008
【図４Ｄ】
2013182625.tif 000009
【図４Ｅ】
2013182625.tif 000010
【図４Ｆ】
2013182625.tif 000011
【図４Ｇ】
2013182625.tif 000012
【図４Ｈ】
2013182625.tif 000013
【図４Ｉ】
2013182625.tif 000014
【図４Ｊ】
2013182625.tif 000015
【図４Ｋ】
2013182625.tif 000016
【図４Ｌ】
2013182625.tif 000017
【図５】
2013182625.tif 000018
【図６】
2013182625.tif 000019