(57)【要約】      （修正有）【課題】コンテンツとストロークとを関連付けるための方法及び装置を提供する。【解決手段】ストロークを表示されているコンテンツに書き込むことが可能なディスプレイ面を持ち、各コンテクストが少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す複数のストロークのコンテクストを格納するメモリと、第１イメージと第１コンテクストとに関連する新たなストロークの通知を受信し、第１コンテクストの一部がメモリに格納されているコンテクストと同一、オーバラップ又は独立しているか判断し、新たなストロークをメモリに格納されている１つのコンテクストに加える又はメモリにすでに格納されているコンテクストと独立して第１コンテクストと共に格納することによって、新たなストロークを含むようメモリを更新するマッチングモジュールとを有する。【選択図】図２
2015165397.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを表示し、ストロークがディスプレイ面上の前記コンテンツに書き込まれることを可能にする前記ディスプレイ面と共に用いられる装置であって、
各コンテクストが少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す、複数のストロークのコンテクストを格納するメモリと、
前記メモリに接続され、
第１イメージと第１コンテクストとに関連する新たなストロークの通知を受信するステップと、
前記第１コンテクストの一部が前記メモリに格納されているコンテクストと同一、オーバラップ又は独立しているか判断するステップと、
前記新たなストロークを前記メモリに格納されている１つのコンテクストに加えることによって、又は前記メモリにすでに格納されているコンテクストと独立して前記第１コンテクストと共に前記新たなストロークを格納することによって、前記新たなストロークを含むよう前記メモリを更新するステップと、
を実行するマッチングモジュールと、
を有する装置。
【請求項２】
前記マッチングモジュールは、前記第１イメージと前記１つのコンテクストに関連するイメージとの特徴類似度に基づき追加される特徴点と共に、前記新たなストロークを前記１以上のコンテクストに加える、請求項１記載の装置。
【請求項３】
前記マッチングモジュールは、前記第１コンテクストと前記１つのコンテクストとが十分類似している場合、特徴点を加えることなく前記新たなストロークを前記コンテクストに加える、請求項２記載の装置。
【請求項４】
前記マッチングモジュールは、前記１つのコンテクストに関連するイメージとオーバラップしない前記第１イメージの一部に関連する１以上の特徴点のみと共に、前記新たなストロークを前記コンテクストに加える、請求項２記載の装置。
【請求項５】
前記マッチングモジュールは、前記新たなストロークと、コンテクストグループにおいて一緒に現れた他のストロークの少なくとも１つとを格納し、
前記新たなストロークと前記他のストロークの１つとは、前記コンテクストグループの特徴点と共に格納される異なる特徴点を有する、請求項１記載の装置。
【請求項６】
前記第１コンテクストは、前記第１イメージに関連するアプリケーションプログラムを示す情報を有し、
更にストロークマッチングモジュールが、抽出のため前記情報を利用する、請求項１記載の装置。
【請求項７】
第２イメージに応答して、前記マッチングモジュールは、前記第２イメージの第２イメージデータが前記メモリに格納されている１つのコンテクストに関連するか判断し、前記第２イメージデータに関連するコンテクストの１以上のストロークを特定する情報と、ディスプレイ面上に表示するための関連するコンテクストの１以上のストロークを変換するための変換情報とを返す、請求項１記載の装置。
【請求項８】
前記１以上のストロークを特定する情報は、ストロークＩＤを含む、請求項７記載の装置。
【請求項９】
前記マッチングモジュールは、前記第２イメージが前記１つのコンテクストに関連するイメージデータと少なくとも部分的に一致するかの判断の一部として、イメージが表示されたシーケンスに関連するシーケンス情報を利用する、請求項７記載の装置。
【請求項１０】
前記マッチングモジュールは、前記第２イメージが前記メモリに格納されているコンテクストの１以上のイメージデータと少なくとも部分的に一致するか判断する際、前記メモリに格納されている他のコンテクストをサーチする前に前記第２イメージデータと既知の変換によるコンテクストとを比較する、請求項１記載の装置。
【請求項１１】
前記マッチングモジュールは、前記第２イメージが前記メモリに格納されているコンテクストの１以上のイメージデータと少なくとも部分的に一致するか判断する際、前記メモリに格納されている他のコンテクストをサーチする前に前記第２イメージデータと直近にマッチングされたコンテクストのセットとを比較する、請求項１記載の装置。
【請求項１２】
各ストロークは、１つのストロークコンテクストと関連する、請求項１記載の装置。
【請求項１３】
各コンテクストが少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す、複数のストロークのコンテクストをメモリに格納するステップと、
第１イメージと第１コンテクストとに関連する新たなストロークの通知を受信するステップと、
前記第１コンテクストの一部が前記メモリに格納されているコンテクストと同一、オーバラップ又は独立しているか判断するステップと、
前記新たなストロークを前記メモリに格納されている１つのコンテクストに加えることによって、又は前記メモリにすでに格納されているコンテクストから独立して前記第１コンテクストと共に前記新たなストロークを格納することによって、前記新たなストロークを含むよう前記メモリを更新するステップと、
を有する方法。
【請求項１４】
前記第１コンテクストと前記１つのコンテクストとが等しい場合、特徴点を加えることなく前記新たなストロークを前記メモリのコンテクストに加えるステップと更に有する、請求項１３記載の方法。
【請求項１５】
前記１つのコンテクストに関連するイメージとオーバラップしない前記第１イメージの一部に関連する１以上の特徴点のみと共に前記新たなストロークを前記コンテクストに加えるステップを更に有する、請求項１３記載の方法。
【請求項１６】
前記新たなストロークとコンテクストグループに一緒に現れた他のストロークの少なくとも１つとを前記メモリに格納するステップを更に有し、
前記新たなストロークと前記他のストロークの１つとは、前記コンテクストグループの特徴点と共に格納される異なる特徴点を有する、請求項１３記載の方法。
【請求項１７】
前記第１コンテクストは、前記第１イメージに関連するアプリケーションプログラムを示す情報を有し、
ストロークマッチングモジュールが抽出のため前記情報を利用する、請求項１３記載の方法。
【請求項１８】
第２イメージに応答して、前記第２イメージの第２イメージデータが前記メモリに格納されているコンテクストの１つと関連するか判断し、前記第２イメージデータに関連するコンテクストの１以上のストロークを特定する情報と、ディスプレイ面上に表示するための関連するコンテクストの１以上のストロークを変換するための変換情報とを返すステップを更に有する、請求項１３記載の方法。
【請求項１９】
各コンテクストが少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す、複数のストロークのコンテクストをメモリに格納するステップと、
第１イメージと第１コンテクストとに関連する新たなストロークの通知を受信するステップと、
前記第１コンテクストの一部が前記メモリに格納されているコンテクストと同一、オーバラップ又は独立しているか判断するステップと、
前記新たなストロークを前記メモリに格納されている１つのコンテクストに加えることによって、又は前記メモリにすでに格納されているコンテクストから独立して前記第１コンテクストと共に前記新たなストロークを格納することによって、前記新たなストロークを含むよう前記メモリを更新するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項２０】
前記新たなストロークとコンテクストグループに一緒に現れた他のストロークの少なくとも１つとを前記メモリに格納するステップを更に実行させ、
前記新たなストロークと前記他のストロークの１つとは、前記コンテクストグループの特徴点と共に格納される異なる特徴点を有する、請求項１９記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、ドキュメントイメージ処理の分野に関し、より詳細には、ドキュメントがディスプレイから削除又はドキュメントに返されるとき、ストローク（ｓｔｒｏｋｅ）が関連するドキュメントイメージのコンテンツと共に維持されるように、ドキュメントイメージの各部分とストロークとの関連付けに関する。
【背景技術】
【０００２】
情報をマークアップするためインタラクティブなホワイトボードを利用する多数の方法がある。ボードは、ユーザがあたかも通常のホワイトボードであるかのように描画することを可能にする白いバックグラウンドを示すことが可能である。あるいは、パーソナルコンピュータ（ＰＣ）のディスプレイがバックグラウンド上に表示可能であり、ユーザは表示されたイメージ上に描画することができる。
【０００３】
ＳＭＡＲＴ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．のドライバやＳＭＡＲＴ  Ｂｏａｒｄ（登録商標）などの技術を利用して、ユーザは、ワードドキュメント、イメージ、ウェブページ、パワーポイントプレゼンテーション、ビデオ、ＰＣディスプレイ全体又は実質的に他のものを含む何れかのバックグラウンドを表示可能である。ユーザがＳＭＡＲＴ  Ｂｏａｒｄ（登録商標）ペントレイからペンを取り出すと、ＳＭＡＲＴ  Ｂｏａｒｄ（登録商標）ドライバは、現在のスクリーンをキャプチャし、それをフリーズする。ユーザにより書き込まれたストロークは、フリーズされたスクリーンイメージにオーバレイされる。ＰＣがＳＭＡＲＴ  ＮｏｔｅｂｏｏｋＴＭソフトウェアに接続されている場合、ビデオが実行中であっても、ユーザが書く間、イメージはフリーズされる。ユーザがユーザインタフェースを介し描画を終了したことを示すと、ストロークを有するスクリーンイメージがキャプチャ及び格納され、スクリーンがフリーズ解除される。
【０００４】
現在のホワイトボードシステムに関していくつかの問題がある。
【０００５】
現在のインタラクティブホワイトボードシステムによる第１の問題は、コンテンツのソースとホワイトボード上のマークアップ又はストロークのソースとの間に分離があるということである。ユーザはパーソナルコンピュータ（ＰＣ）にプラグインするなどによってビデオを介しコンテンツ（イメージなど）を提供し、ホワイトボードにいるユーザによってストロークが生成される。イメージ及びストロークは独立したソースを有しているため、それらは、イメージが変わるときに互いに同期しなくなる可能性がある。例えば、ユーザがＰＣにおいてイメージをスクロールする場合、イメージはホワイトボード上で変化するが、以前に表示されたイメージに対して生成されたストロークはそのままであり、ユーザリクエストまでクリアされない可能性がある。これは、このような既存のホワイトボードシステムを反応の鈍いものにする。コンテンツをフリーズすることを試み、その時点でマークアップがコンテンツに出現することを可能にすることはできるが、このときユーザは、イメージをスクロール又はその一部にズームインすることはできない。これは面倒なアプローチである。
【０００６】
現在のホワイトボードシステムによる他の問題は、それらがポジティブなユーザ体感を提供するユーザインタフェースを含まないということである。ユーザはしばしば、マークアップを追加したイメージを追跡することを所望する。例えば、ユーザがホワイトボードを利用し、コンテンツをマークアップしているとき、ユーザは、コンテンツが変わったとしても、以前のコンテンツによるストロークを保持することを所望する。表示されているコンテンツの変更後に表示されるコンテンツに対してホワイトボードに行われたストロークとページとを保存するため、既存のホワイトボードシステムは、ホワイトボードにより表示されているコンテンツを制御しているユーザが、ホワイトボードのユーザがイメージ及びストロークと一緒にページを保存することを可能にするため、ストロークが描画されたページに戻ることを要求する。その後、ホワイトボードシステムへのコンテンツの供給を制御するユーザは、新たなページに移ることができ、ホワイトボードユーザは、ストロークを削除し、次のページをマークアップし始めることができる。これは、大変面倒な処理である。
【０００７】
最近、現在のホワイトボードシステムに関する他の問題は、それらがホワイトボードとのセッションにおいて発生したものの印刷出力を提供しないということである。
【０００８】
他の解決手段は、独立したストロークレイヤを用いてストローク及びコンテンツを独立に維持することである。このアプローチによる問題は、イメージが変わったとき、古いストロークがディスプレイに残ることである。ストロークが書かれたドキュメントの部分はもはやないかもしれない。従って、イメージがスクロール又は変わった場合、ストロークは維持される。
【０００９】
ＰＣ、Ｍａｃ及びＬｉｎｕｘ（登録商標）プラットフォームのために利用可能な数十万（又はおそらく数百万）のアプリケーションと、多数の異なるストローク入力技術とがあるため、ストローク入力技術を全てのプログラムと統合することは複雑な問題である。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した問題点を鑑み、本発明の課題は、コンテンツとストロークとを関連付けるための方法及び装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明の一態様は、コンテンツを表示し、ストロークがディスプレイ面上の前記コンテンツに書き込まれることを可能にする前記ディスプレイ面と共に用いられる装置であって、各コンテクストが少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す、複数のストロークのコンテクストを格納するメモリと、前記メモリに接続され、第１イメージと第１コンテクストとに関連する新たなストロークの通知を受信するステップと、前記第１コンテクストの一部が前記メモリに格納されているコンテクストと同一、オーバラップ又は独立しているか判断するステップと、前記新たなストロークを前記メモリに格納されている１つのコンテクストに加えることによって、又は前記メモリにすでに格納されているコンテクストと独立して前記第１コンテクストと共に前記新たなストロークを格納することによって、前記新たなストロークを含むよう前記メモリを更新するステップとを実行するマッチングモジュールとを有する装置に関する。
【発明の効果】
【００１２】
本発明によると、コンテンツとストロークとを関連付けるための方法及び装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、ディスプレイストロークマッチングシステムの一実施例のブロック図である。
【図２】図２は、ストロークマッチング装置の一実施例を示す。
【図３】図３は、ホワイトボードシステムの一実施例のブロック図である。
【図４】図４は、図１のディスプレイストロークキャプチャ装置の一実施例のブロック図である。
【図５】図５は、ホワイトボードシステムのユーザインタフェースの一例を示す。
【図６】図６は、マッチング処理に基づきストロークを取得する処理が全てのスクリーン到着について行われ、計算が更なるスクリーンの到着の間の間隔より長くかかる場合に生じるワーストケースの状況を示す。
【図７】図７は、より最近のスクリーンが到着し、表示されているストロークと正しいバックグラウンドイメージとの間の遅延が当該処理のための時間よりわずかしか大きくないとき、何れかのスクリーンのためのストロークを求めるための処理のドロッピングを示す。
【図８】図８は、フレームに一致したストロークが決定されるまでフレームの表示を遅延させ、一致したストロークによってフレームを表示することを示す。
【図９】図９は、イメージに一致したストロークのサマリの生成を示す。
【図１０】図１０は、１以上の要約ページを生成する処理の一実施例のフロー図である。
【図１１】図１１は、本発明の実施例を実施するのに利用可能なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１５】
本発明の実施例は、ユーザがスクリーン（ＰＣスクリーン、ホワイトボードなど）上に描画し、共有されるバックグラウンドイメージに注釈付け又はアノテートすることを可能にする。これは、スクリーン上になされたストロークと基礎となる共有されたバックグラウンドとを関連付けることによって実現される。ここで説明される技術を利用して、ユーザは、プレゼンテーション、テキストドキュメント又は他のイメージの一部に描画し、その後に異なるページ又はドキュメント若しくはイメージの一部にスクロールすることが可能とされる。その後、スクリーン上に描画されたストロークは、それらが当初に書かれたイメージ（ドキュメントなど）の部分と関連付けされる。表示されるイメージを変更すると、スクリーン上のストロークは完全に消え、イメージをスクロールすると、マークはディスプレイ上のそれらが当初に描かれたイメージの部分に移動される。ユーザが異なるイメージにスクロールした場合、ストロークは消え、元のイメージに戻ると、マークは正しい位置（すなわち、ストロークがなされた元のページの位置）に再び現れる。
【００１６】
ここに説明される技術は、上述された問題を解決する。
【００１７】
一実施例では、以下の用語が明細書において用いられる。
１）イメージ−表示に適した２Ｄ表現  一実施例では、イメージは“スクリーンキャプチャ”である。このスクリーンキャプチャは、カメラ若しくは他のセンサからのものであってもよいし、又はスクリーン上に表示されなくても自動生成されてもよい。
２）ストローク（ｓｔｒｏｋｅ）−イメージの上部に表示されることが意図される通常手書きのマークアップデータ  ストロークは、意図したマークアップを再表示するのに十分なデータを含む。ストロークデータは、サンプルポイントのセット及び“ペン幅”又は他の１次元サンプルデータから構成されるか、あるいは、ストロークデータは、イメージの上部にレンダリング可能となるように、おそらく透過又はマスク情報と共に、ストロークが類似するもののレンダリングされる２Ｄイメージであってもよい。
３）ストロークＩＤ−ストロークデータの一意的な識別子  ストロークＩＤへのアクセスは、典型的にはレンダリングを可能とせず、ストロークの全データを有するよりはるかにコンパクトである。一部の実施例では、ストロークＩＤは、“５”
などの整数、ＵＵＩＤ、又は文字列であってもよい。
４）特徴点−イメージにおける位置  一実施例では、特徴点は、イメージが異なる回転、スケール、視野角、イルミネーションなどによりキャプチャされる場合であっても特定可能な点である。
５）記述子−特徴点の近傍に基づくベクトル（２進、離散又は連続）  一実施例では、記述子は、イメージが異なるやり方によりキャプチャされる場合、わずかしか変わらない。
６）変換−イメージ上の正しい位置に出現するようにイメージに重畳するため、ストロークとして保存された手書きがどのようにスケーリング、伸張、回転又は修正されるべきかの説明  これは、ストロークがスクリーン上のある位置に書かれるが、ストロークが書かれたイメージはスクリーンに関して移動し、ストロークがイメージと共に移動する必要がある問題を解決することである。
７）ページ−１つのイメージ  一実施例では、ページはおそらくメインディスプレイエリアに沿って又は下方にサムネイルとして表示されるか、あるいは、ミーティングの終わりにサマリ情報として利用されるストロークを含む。
８）コンテクスト−ストロークＩＤに関する情報  特徴点及び記述子を含み、イメージを含んでもよく、ストロークに関する領域、通常は境界ボックスを含み、ストロークキャプチャ、時間、実行中のアプリケーション、最上位ウィンドウで済ませる必要がある付加情報を含むものであってもよい。
【００１８】
以下の説明では、本発明のより完全な説明を提供するため、多数の詳細が与えられる。しかしながら、本発明がこれら具体的詳細なしに実施可能であることは当業者に明らかであろう。他の例では、周知の構成及び装置は、本発明を不明瞭にすることを回避するため、詳細でなくブロック図の形式により示される。
【００１９】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する処理のアルゴリズム及びシンボル表現に関して提供される。これらのアルゴリズムによる説明及び表現は、自らの研究の本質を他の当業者に最も効果的に伝えるのにデータ処理分野の当業者により用いられる手段である。ここでは、また一般には、アルゴリズムは、所望の結果に導くステップの自己矛盾のないシーケンスであると考えられる。これらのステップは、物理量の物理的操作を要求するものである。通常、必要ではないが、これらの量は格納、伝送、合成、比較及び操作可能な電気又は磁気信号の形態をとる。主として通常の利用のため、これらの信号をビット、値、要素、シンボル、文字、項、数などとして参照することが便利であることがあると分かっている。
【００２０】
しかしながら、上記及び同様の用語の全ては適切な物理量に関連付けされ、これらの量に適用される単なる便宜上のラベルであると覚えておくべきである。以下の説明から明らかなように、特段の断りがない場合、明細書を通じて、“処理”、“計算”、“決定”又は“表示”などの用語を用いた説明は、コンピュータシステムのレジスタ及びメモリ内で物理（電子）量として表現されるデータを、コンピュータシステムのメモリ若しくはレジスタ又は他の情報ストレージ、伝送若しくは表示装置内の物理量として同様の表現される他のデータに操作及び変換するコンピュータシステム又は同様の電子計算装置のアクション及びプロセスを表すことが理解される。
【００２１】
本発明はまた、ここでの処理を実行する装置に関する。当該装置は要求された目的のため具体的に構成されるか、あるいは、コンピュータに格納されるコンピュータプログラムにより選択的に起動又は再設定される汎用コンピュータから構成されてもよい。このようなコンピュータプログラムは、限定することなく、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ及び光磁気ディスクを含む何れかのタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、又は電子命令を格納するのに適した何れかのタイプの媒体などのコンピュータ可読記憶媒体に格納され、それぞれはコンピュータシステムバスに接続される。
【００２２】
ここに提供されるアルゴリズム及びディスプレイは、本来的に何れか特定のコンピュータ又は他の装置に関するものでない。各種汎用システムは、ここでの教示に従ってプログラムと共に利用されてもよく、あるいは、要求される方法ステップを実行するようより特化した装置を構成することが便利であると分かるかもしれない。各種システムにも止まれる構成は、以下の説明から明らかになるであろう。さらに、本発明は、何れか特定のプログラミング言語を参照して説明されない。各種プログラミング言語がここに説明されるような本発明の教示を実現するため利用されてもよいことが理解されるであろう。
【００２３】
マシーン可読媒体は、マシーン（コンピュータなど）により可読な形態により情報を格納又は送信するための何れかの機構を含む。例えば、マシーン可読媒体は、ＲＯＭ、ＲＡＭ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
【００２４】
ディスプレイシステムの一実施例の概略
独立したソースのコンテンツを表示するディスプレイ面に独立したソースのストロークを書く際の体感を向上させるため、ディスプレイ面上の基礎となるコンテンツとストロークとを関連付けるための技術が開示される。一実施例では、本装置は、メモリ（データベースなど）と、メモリに接続されるマッチングモジュールとを有する。メモリは、複数のストロークのためのコンテクストを格納し、各コンテクストは、少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す。
【００２５】
マッチングモジュールは、第１イメージ及び第１コンテクストと関連付けされる新たなストロークの指示を受信し、第１コンテクストの一部がメモリに格納されているコンテクストと同じ、オーバラップ若しくは重複する又は独立しているか判断し、メモリに格納されているコンテクストの１つに新たなストロークを追加するか、又はメモリに既に格納されているコンテクストから独立して第１コンテクストと共に新たなストロークを格納することによって、新たなストロークを含むようメモリを更新する。
【００２６】
一実施例では、マッチングモジュールは、特徴点が第１イメージと当該１つのコンテクストに関するイメージとの間の特徴類似度に基づき追加されることによって、新たなストロークを１つのコンテクストに追加する。他の実施例では、マッチングモジュールは、第１コンテクストと１つのコンテクストとが等しい場合、特徴点を追加することなく、新たなストロークをコンテクストに追加する。更なる他の実施例では、マッチングモジュールは、１つのコンテクストに関するイメージにオーバラップしない第１イメージの部分に関する１以上の特徴点のみによって、新たなストロークをコンテクストに追加する。
【００２７】
一実施例では、マッチングモジュールは、新たなストロークと、コンテクストグループにおいて一緒に出現した他のストロークの少なくとも１つとを格納し、ここで、新たなストロークと当該１つの他のストロークとは、コンテクストグループの特徴点と共に格納される異なる特徴点を有する。一実施例では、第１コンテクストは、第１イメージに関するアプリケーションプログラムを示す情報を有し、さらにストロークマッチングモジュールは、抽出のため情報を利用するよう動作可能である。
【００２８】
一実施例では、マッチングモジュールは、他のイメージに応答して、当該イメージのイメージデータがメモリに格納されているコンテクストの１つに関するものであるか判断し、第２イメージに関するコンテクストの１以上のストロークを特定する情報と、ディスプレイ面上に表示するため関連するコンテクストの１以上のストロークを変換するための変換情報とを返す。一実施例では、１以上のストロークを特定する情報はストロークＩＤを有する。一実施例では、マッチングモジュールは、第２イメージが１つのコンテクストに関するイメージデータと少なくとも部分的に一致するか比較するため、メモリのコンテクストの何れかを選択するためイメージが表示されるシーケンスに関するシーケンス情報を利用する。他のモジュールでは、マッチングモジュールは、第２イメージがメモリに格納されるコンテクストの１以上のイメージデータと少なくとも部分的に一致するか判断する際、メモリに格納される他のコンテクストをサーチする前に直近にマッチングされたコンテクストのセットと第２イメージデータとを比較する。
【００２９】
図１は、ディスプレイストロークマッチングシステム１００の一実施例のブロック図である。本システムは、インタラクティブホワイトボード（ＩＷＢ）システムとここで参照されてもよい。図１を参照して、システム１００は、プロバイダ１０１、ディスプレイストロークキャプチャ装置１０２、ストロークマッチング装置１０３及び更なるディスプレイ又はキャプチャ装置１０４を有する。図１に示されるコンポーネントは、同一ユニットに統合されてもよいし、又は、例えば、互いに別々に及び／又はリモートに実現されてもよい。例えば、ストロークマッチング装置１０３は、リモートサーバ又は別のコンピュータシステムを用いて実現されてもよい。
【００３０】
イメージプロバイダ１０１は、ディスプレイストロークキャプチャ装置１０２のスクリーン又はサーファスに表示するため送信される１以上のイメージのソースである。一実施例では、イメージプロバイダ１０１は、パーソナルコンピュータ（ＰＣ）を有する。一実施例では、イメージプロバイダ１０１はカメラを有する。他の実施例では、イメージプロバイダ１０１は、表示用のコンテンツを提供する何れかのイメージソースを有する。
【００３１】
ディスプレイストロークキャプチャ装置１０２は、イメージプロバイダ１０１からのイメージを表示するためのディスプレイ面を有する。ディスプレイストロークキャプチャ装置１０２はまた、ディスプレイ上に行われたストロークをキャプチャし、キャプチャされたストロークに対応する情報をストロークマッチング装置１０３に送信する。
【００３２】
ストロークマッチング装置１０３は、ディスプレイストロークキャプチャ装置１０２から受信したキャプチャされたストロークに対応する情報（ストロークＩＤなど）を、ストロークマッチング装置１０３の一部及び／又はアクセス可能なメモリ（データベースなど）に格納する。ストロークマッチング装置１０３は、ディスプレイストロークキャプチャ装置１０２を介し直接的に又は間接的にイメージプロバイダ１０１により提供されるイメージを受信する。これらのイメージに応答して、ストロークマッチング装置１０３は、メモリに格納されているイメージのディスプレイに関連して適用可能なストロークを検出し、ストローク情報をディスプレイストロークキャプチャ装置１０２に提供し、ストローク情報に対応するストロークが関連するイメージと共にディスプレイに含まれることを可能にする。
【００３３】
一実施例では、システム１００はまた、更なるディスプレイ及び／又はキャプチャ装置１０４を有する。
【００３４】
一実施例では、コントローラ（図示せず）は、ＩＷＢシステムにより提供される各種機能を制御及び有効にする処理を実行するための中央コンポーネントとして機能する。このようなコントローラは、ＩＷＢシステムの１以上の他のコンポーネントに動作接続され、これらのコンポーネントにより実行される機能を制御及び／又は調整するよう構成されてもよい。例えば、コントローラは、ディスプレイストロークキャプチャ装置１０２及び／又はディスプレイ面に動作接続され、キャプチャされた情報を受信するよう構成されてもよい。
【００３５】
ディスプレイストロークキャプチャ装置１０２、ストロークマッチング装置１０３及び関連するコントローラを含むシステムは、プロセッサベース計算装置として実現されてもよい。図１１において、このような実現形態の具体例が示され、以降において説明される。他の実施例では、これらのコンポーネントは、プロセッサ、プログラマブルロジック装置などにより少なくとも部分的に実現されてもよい。システムは、プロセッサにより実行される１以上のプログラム（コード命令）を実行してもよい（図１１のシステムのプロセスなど）。
【００３６】
ＩＷＢシステムは、通信ネットワークに接続され、他のＩＷＢシステム及び通信ネットワークに接続されるストレージを含む他の装置と通信可能であってもよい。通信ネットワークは、単一の通信ネットワーク又は通信ネットワークの集まりであってもよい。ネットワークは、インターネット、イントラネット、ＬＡＮ（Ｌｏｃａｌ
Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ネットワーク、プライベートネットワーク、パブリックネットワーク、交換ネットワーク、又はＩＷＢシステムと通信ネットワークに接続される他の装置又はシステムとの間の通信を可能にする他の何れか適切な通信ネットワークを含むものであってもよい。１以上の異なる通信プロトコル（イーサネット（登録商標）、各種無線プロトコルなどが、通信ネットワークを用いた通信を実現するのに利用されてもよい。
【００３７】
一実施例では、ＩＷＢシステムは、ＩＷＢシステムと通信ネットワークとを接続し、通信ネットワークを介し通信を実現するネットワークインタフェースを提供する。ＩＷＢシステムは、有線又は無線リンクを介し通信ネットワークに接続されてもよい。
【００３８】
ＩＷＢシステムのコンポーネントは、ここに説明される機能を提供する１以上のモジュールを有してもよい。これらのモジュールは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現されてもよい。例えば、一実施例では、モジュールは、プロセッサにより実行されると、ストロークマッチング装置１０３により提供される機能を実現するソフトウェア（プログラム、コード、命令）により実現されてもよい。
【００３９】
ディスプレイストロークキャプチャ装置
ディスプレイストロークキャプチャ装置１０２のディスプレイ面（ＩＷＢシステムの“ホワイトボード”又は“描画面”と呼ばれることもある）は、ＩＷＢシステムのユーザのための入力と出力との双方のインタフェースを提供する。入力インタフェースとして、それは、ユーザが筆記（描画とも呼ばれる）の入力を提供することを可能にし、当該入力はその後にデジタル情報（筆記のデジタル表現とも呼ばれる）に変換される。出力インタフェースとして、デジタル情報は、投射された情報がＩＷＢシステムの１以上のユーザにより閲覧可能となるように、プロジェクタによってディスプレイ面に投射されてもよい。ＩＷＢシステムの１以上のユーザは、１以上の筆記具を用いて書き込むことによってＩＷＢシステムに入力を提供してもよい。例えば、ユーザは、筆記具を用いてディスプレイ面上に筆記してもよい。本出願に用いられる筆記、描画又は筆記情報という用語は、筆記具を用いて提供可能な１以上の文字、記号、単語、文章、表、描画、スケッチ、図又は他の何れかのタイプの入力を含むものであってもよい。他の例として、筆記又は描画は、何れかの言語又はフォーマットにより表現される手書きの文字、数字又は記号を含みうる。更なる他の例として、筆記又は描画は、手書きの絵及び文字要素の組み合わせから構成可能である。
【００４０】
一実施例では、筆記具を用いてなされたユーザの筆記は、キャプチャされてコントローラに通信され、筆記に対応するデジタル情報が決定される。デジタル情報は、その後、ディスプレイ面への投射のためプロジェクタに通信されてもよい。デジタル情報は、ストローク系列、ピクセルベースイメージ、プレイン又はフォーマット化されたテキストなどの各種形態であってもよい。
【００４１】
ＩＷＢシステムのユーザは、各種の異なる筆記具を用いて入力を筆記又は提供してもよい。一実施例では、筆記具は、ディスプレイ面上に可視的なマークを残してもよいし、又は残さなくてもよい物理オブジェクトであってもよい。例えば、ユーザは、筆記具として自分の指を用いてディスプレイ面上に筆記を行ってもよい。指はディスプレイ面上に可視的なマークを残さないかもしれないが、指の動きがキャプチャされ、デジタル情報に変換され、その後にディスプレイ面上に投射される。他の例として、ユーザは筆記具としてポインタ又はスタイラスを用いてディスプレイ面上に筆記を行ってもよく、スタイラスは、ディスプレイ面上に何れの物理的な可視的マークを残さない。他の実施例では、ユーザはまたディスプレイ面上に可視的なマークを残す筆記具を利用してもよい。例えば、ユーザは、ペン又は通常のドライイレースマーカを用いてディスプレイ面上に筆記してもよい。ユーザの筆記はキャプチャされ、当該筆記に対応するデジタル情報が決定され、その後にデジタル情報はディスプレイ面上に投射される。
【００４２】
一実施例では、筆記に加えて、筆記具がまたＩＷＢシステムと他の方法によりやりとりするのに利用されてもよい。例えば、一実施例では、筆記具は以前に書かれた情報を消去するのに利用されてもよい。
【００４３】
ディスプレイストロークキャプチャ装置１０２のディスプレイ面は、パッシブ又はアクティブな面であってもよい。一実施例では、ディスプレイ面は、カメラなどの外部センサにより特定可能なペンからのマークを単に受け入れるパッシブ面であってもよい。例えば、ディスプレイ面は、通常の従来の不透明なホワイトボードであってもよい。他の実施例では、ディスプレイ面は、日本のＷａｃｏｍ  Ｃｏ．，Ｌｔｄなどからのセンサを内蔵した面などのアクティブ面であってもよい。このようなセンサは、アンテナを内蔵し、パッシブコイルを含むＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）ペンとやりとりする。特定の方法でアンテナをアクティブ化することによって、ペンはトリガ可能であり、アンテナは当該アンテナに対するペンの反応を測定し、ペンの位置及び向きを特定することができる。他のアクティブ面は、スクリーンに対して押下されたオブジェクトの位置を特定するため、抵抗の変化を測定する抵抗接触システムを有する。アクティブ面の他の例は、ＦＴＩＲ（Ｆｒｕｓｔｒａｔｅｄ  Ｔｏｔａｌ  Ｉｎｔｅｒｎａｌ  Ｒｅｆｌｅｃｔｉｏｎ）を用いてカメラが面上又はカリフォルニア州ＣｕｐｅｒｔｉｎｏのＡｐｐｌｅ，Ｉｎｃ．からのｉＰａｄ及びｉＰｈｏｎｅ装置にあるような容量接触スクリーン上の指又はペンの位置をキャプチャすることを可能にする赤外線ＬＥＤにより囲まれたガラスボードを有する。
【００４４】
一実施例では、ディスプレイストロークキャプチャ装置１０２は、筆記具を用いてユーザにより行われた筆記をキャプチャするよう構成される。ディスプレイストロークキャプチャ装置１０２によりキャプチャされた筆記情報は、その後に更なる処理のためストロークマッチング装置１０３に通信されてもよい。ディスプレイストロークキャプチャ装置１０２は、筆記具を用いて行われた筆記がキャプチャされるのを可能にする１以上のコンポーネントを有してもよい。例えば、ディスプレイ面上に可視的なマークを残す筆記具が利用される実施例では、ディスプレイストロークキャプチャ装置１０２は、ディスプレイ面の前方に配置され、ディスプレイ面のイメージをキャプチャするカメラを有し、キャプチャされたイメージは、筆記具を用いてディスプレイ面上に生成された可視的なマークを含む。キャプチャされたイメージは、その後にストロークマッチング装置１０３に通信され、当該ストロークマッチング装置１０３は、ディスプレイ面上に生成された可視的なマークに対応するデジタル情報を決定するためイメージを処理するよう構成される。
【００４５】
他の実施例では、ディスプレイストロークキャプチャ装置１０２は、ユーザが筆記具を用いて筆記するとき、筆記具の動き又は移動をキャプチャするよう構成される１以上のセンサを有してもよい。当該動きは、異なる技術を用いてキャプチャされてもよい。１つの技術によると、モーションセンサがディスプレイ面に沿って配置され、２次元平面（又は３次元）における筆記具の動きをキャプチャすることができる。キャプチャされた動き情報は、その後にストロークマッチング装置１０３に伝えられ、キャプチャされた情報を処理する。
【００４６】
更なる他の実施例では、ディスプレイストロークキャプチャ装置１０２は、ディスプレイ面の圧力を検知するディスプレイ面に搭載可能な１以上の圧力センサを有してもよい。このような圧力マッピングマルチタッチ面は、マサチューセッツ州Ｓｏｕｔｈ  ＢｏｓｔｏｎのＴｅｋＳｃａｎ，Ｉｎｃ．から入手可能なフレキシブル電子回路などの間に挟まれる感圧抵抗物質から構成可能である。このような実施例では、ディスプレイ面は、ディスプレイ面上のユーザの接触に基づき筆記情報をキャプチャ可能なマルチ接触感圧面を備えてもよい。一実施例では、ユーザの筆記を検知することに加えて、圧力センサはまた、ディスプレイ面上でユーザが筆記する力を決定することが可能であってもよい。
【００４７】
ディスプレイストロークキャプチャ装置１０２は、例えば、４つのカメラと４隅のＩＲソースなど、ディスプレイ面のエッジ又はコーナにある２以上のカメラ及びＩＲソースを有してもよく、ディスプレイ面の周囲の再帰性反射型バックグラウンドを有してもよい。カメラのビュー及びＩＲソースは、ディスプレイ面に平行に照射する。反射したＩＲ照射のカメラビューをブロックするオブジェクト（ペン、指、拳など）が検出される。
【００４８】
更なる他の実施例では、ディスプレイストロークキャプチャ装置１０２のディスプレイ面は、Ａｐｐｌｅ  ｉＰａｄＴＭ又はｉＰｈｏｎｅＴＭデバイス上の面などの容量結合入力インタフェースであってもよい。このような実施例では、ディスプレイ面は、マルチ接触入力体感、ズーム及びパン機能などを可能にするものであってもよい。このような実施例では、ユーザは、指や導電性スタイラスを用いてディスプレイ面に筆記し、当該筆記は処理及び解析のためストロークマッチング装置１０３に通信されてもよい。
【００４９】
筆記具を用いてなされた筆記をキャプチャするため、一実施例では、ディスプレイストロークキャプチャ装置１０２は筆記具と通信可能にリンクされてもよい。当該リンクは、有線又は無線であってもよく、ディスプレイストロークキャプチャ装置１０２が筆記具を用いてなされる筆記をキャプチャすることを可能にする。
【００５０】
一実施例では、ディスプレイストロークキャプチャ装置１０２は、キャプチャした情報に基づきストローク情報を決定し、その後にストローク情報に対応するデジタル情報を決定するよう構成される。ストローク情報は、時間順序づけされたストロークの集まりに関する情報を有してもよい。一実施例では、ストロークは、筆記具が接触した（すなわち、筆記のため利用された）時間から筆記具が離れるまでの筆記具により生成されるデータに対応するものであってもよい。例えば、一実施例では、ストロークは、筆記具がディスプレイ面に接触した時間から、当該接触が中断又は離れるまでに筆記具により生成されたデータに対応するものであってもよい。ストロークは、筆記具を用いてユーザにより入力される情報を表現するのに利用される最も基本的なユニットと考えられる。各ストロークは、当該ストロークが行われた時間を示す関連する時間コンポーネントを有する。筆記具を用いてユーザにより入力又は筆記された情報は、時間により順序づけされたストロークの系列又はセットにより表現されてもよい。
【００５１】
一実施例では、ディスプレイストロークキャプチャ装置１０２は、ディスプレイストロークキャプチャ装置１０２によりキャプチャされる生のセンサデータを受信し、その後、当該生データに基づきストローク情報を決定する。あるいは、ストロークマッチング装置１０３は、筆記キャプチャシステムからストローク情報を受信する。ストロークマッチング装置１０３は、その後、ストローク情報に対応するデジタル情報を受信する。一部の実施例では、デジタル情報は、生のセンサデータから直接決定されてもよい。デジタル情報は、筆記具１１４を用いて行われた筆記を反映するようなものである。ディスプレイストロークキャプチャ装置１０２は、その後にディスプレイ面への投射のため決定されたデジタル情報をプロジェクタ１０４に通信してもよい。
【００５２】
一実施例では、プロジェクタ（図示せず）は、ディスプレイ面上に情報を投射及び表示するよう構成される。一実施例では、プロジェクタは、筆記具を用いて行われた筆記に対応するデジタル情報を有する信号（ビデオ信号、イメージなど）を受信する。プロジェクタは、筆記に対応するデジタル情報がディスプレイ面上に出力又は表示され、ＩＷＢシステムの１以上のユーザに閲覧可能となるように、ディスプレイ面に受信した信号を投射又は出力するよう構成される。一実施例では、筆記に対応するデジタル情報は、ディスプレイ面上の筆記と同じ位置に投射されるように、ディスプレイ面に投射される。
【００５３】
一実施例では、プロジェクタは、ディスプレイ面にデジタル情報を投射可能になるように、ディスプレイ面の前方の近い距離に配置されたショートスロープロジェクタである。例えば、プロジェクタは、ディスプレイ面の前方に配置され、ディスプレイ面に情報を投射するウルトラショートスロープロジェクタであってもよい。このようなプロジェクタの一例は、Ｈｉｔａｃｈｉ，Ｌｔｄ．により製造されるＣＰ−ＡＷ２５０ＮＭである。他の実施例では、他のタイプのフロントスロープロジェクタが利用されてもよい。プロジェクタは、高品位（１９２０×１０８０など）の解像度を含む異なる解像度により投射してもよい。
【００５４】
ストロークマッチング装置
上述されるように、一実施例では、ストロークマッチング装置１０３は、ストロークコンテクストとしてここで参照されるコンテンツに関連するイメージデータとストロークとを関連付け、ストロークに対応するストロークデータをストロークコンテクストと共にメモリに格納する。一実施例では、各ストロークコンテクストは、ディスプレイ面に以前に表示されたイメージデータの一部と少なくとも１つのストロークとの間の関連付けを表す。一実施例では、各ストロークは、１つのストロークコンテクストと関連付けされる。一実施例では、ストロークコンテクストは、バックグラウンドイメージ全体及びバックグラウンドイメージを共有するシステムからの何れかの関連する情報（イメージを共有する装置、装置上で実行されるアプリケーション（ＰｏｗｅｒＰｏｉｎｔなど）、表示されるドキュメントのファイル名若しくはＵＲＬ、ユーザ名、ストロークの描画中に発話した人のオーディオサンプルなど）の１以上を有する。一実施例では、ストロークコンテクストは、イメージ内の特徴点、これら特徴点に対するストロークの座標、描画されたストロークの“下方”のバックグラウンドイメージの部分、ストロークが描画された時間、及びＰＣと共有される場合には最前方のアプリケーションのドキュメント若しくはウィンドウの名前の記述子を含む。
【００５５】
より詳細には、ストロークマッチング装置１０３は、コンテクストに関連するイメージデータを受信し、当該イメージ部分がメモリにすでに格納されているコンテクストと同じ、オーバラップ又は独立しているか判断する。イメージ部分がメモリにすでに格納されているコンテクストと同じ、オーバラップ又は独立しているか判断した結果に基づき、ストロークマッチング装置１０３は、メモリに格納されているコンテクストの１つに新たなストロークを加えることによって当該新たなストロークを含むようメモリを更新するか、又はメモリにすでに格納されているコンテクストから独立した第１コンテクストと共に新たなストロークを格納する。一実施例では、ストロークマッチング装置１０３は、新たなイメージコンテンツとメモリにすでに格納されているコンテクストに関連するイメージとの特徴類似度に基づく特徴点と共に又は特徴点なしに、メモリに格納されているコンテクストに新たなストロークを加える。他の実施例では、新たなイメージに関連するコンテクストと以前に格納されたコンテクストとが同じである場合、ストロークマッチング装置１０３は、特徴点を加えることなく以前に格納されたコンテクストに新たなストロークを追加する。更なる他の実施例では、ストロークマッチング装置１０３は、以前に格納されたコンテクストに関連するイメージにオーバラップしない新たなイメージの部分に関連する１以上の特徴点のみと共に、以前に格納されたコンテクストに新たなストロークを追加する。一実施例では、現在のイメージが以前に格納されたコンテクストのイメージデータに一致する場合、例えば、特徴の９５％を一致させることによって、新たなストロークコンテクストは生成されない。
【００５６】
ストロークマッチング装置１０３はまた、イメージリクエストを受信し、当該イメージリクエストに対応するイメージデータがメモリにすでに格納されているコンテクストの一部を有するか判断する。すなわち、ストロークマッチング装置１０３は、表示される新たなコンテクスト（新たなイメージデータなど）がメモリにすでに格納されているストロークコンテクストに関連しているか判断する。一実施例では、イメージマッチング処理は、誤った“ウィンドウ”にストロークを配置することを回避するため、（特徴スペース一致と反対に）実行されてもよい。ストロークマッチング装置１０３が、表示対象の新たなコンテンツ（新たなイメージデータなど）がメモリにすでに格納されているストロークコンテクストに関連していると判断した場合、ストロークマッチング装置１０３は、コンテンツに関連するメモリに格納されているストロークコンテクストの何れかのストロークを特定する情報と、新たなコンテクストに対してディスプレイ面上に表示するためこれらのストロークが変換されることを可能にするための変換情報とを返す。一実施例では、ストロークマッチング装置１０３は、イメージデータ上に以前に筆記されたストロークに対応する関連するストローク情報（各ストロークのストロークＩＤなど）と、対応するストロークをディスプレイ面上でイメージデータと共に再生成及び表示することを可能にするため、ストローク情報をどのように変換するかを示す変換情報とを返す。一実施例では、ディスプレイストロークキャプチャ装置１０２はストロークを追跡し、ストロークマッチング装置１０３は、ストロークＩＤのリストと、各ストロークの新たなイメージ座標への変換とを返しさえすればよい。一実施例では、一部のアプリケーションはアファイン又はより限定的な変換しかサポートしないが、当該変換は透視変換である。他の実施例では、当該変換は、移動、スケーリング、回転及び／又はスキュー（ｓｋｅｗ）を含む。他の実施例では、ディスプレイストロークキャプチャ装置１０２はストロークを追跡せず、ストロークマッチング装置１０３は、ストロークイメージを保存及び変換し、ストロークをペーストするための座標と共に変換されたイメージを返す。一実施例では、透過性をサポートするフォーマットが利用される（ｐｎｇなど）。更なる他の実施例では、マッチング装置は“特徴”を返さず、クエリイメージの座標系への変換のみを返す。
【００５７】
一実施例では、ストロークマッチング装置１０３は、キーポイント検出、特徴抽出及びマッチングを含む通常のコンピュータビジョンパイプラインを含む。一実施例では、これらの技術は、多数のストロークのためのバックグラウンドコンテクスト（イメージなど）が生成され、コンテクストグループがスクロールされたイメージについて生成され、迅速なストロークの追加及び抽出が利用されるホワイトボード及び同様の技術と共に、スクリーンイメージのための検証技術の利用に関連したマークアップセッションを共有するスクリーンのために設計される。
【００５８】
図２は、ストロークマッチング装置の一実施例を示す。図２を参照して、イメージソース２０１からの１以上のイメージが、ストロークマッチング装置１０３により受信される。これに応答して、キーポイント検出モジュール２０２は、イメージにおいてキーポイントを特定するため、当該分野で周知な方法によりキーポイント検出を実行する。キーポイント検出の実行後、特徴抽出モジュール２０３は、検出された各キーポイントについて記述子を決定するため、当該分野で周知な方法により特徴抽出を実行する。決定された記述子を利用して、マッチングモジュール２０４は、イメージソース２０１から受信したイメージの記述子とメモリ２１０（データベースなど）に格納されている以前のイメージの記述子との間の一致を求める。一実施例では、マッチングモジュール２０４は、整合した一致のグループを選択するため、選択アルゴリズムを実行する。一実施例では、個々の一致は、記述子に適した距離の指標に基づき求められる。例えば、連続的な特徴のための連続的な距離の指標又はハミング距離が、バイナリな特徴について利用されてもよい。一実施例では、整合した一致のグループが、ＲＡＮＳＡＣアルゴリズムによって決定される。マッチングモジュール２０４が、イメージソース２０１からのイメージの対応する部分又は全てに一致した以前のイメージの一部又は全てを特定した場合、一致した部分に行われた以前のストロークは、新たなイメージが表示されるとき、イメージソース２０１からの新たなイメージに適合するよう変換される。
【００５９】
メモリ２１０に格納される以前のイメージは、イメージソース２０１と同じであってもよいイメージソース２１１から受信された後に格納されたものであり、モジュール２１２によるキーポイント検出、モジュール２１３による特徴抽出及びモジュール２１４による更新処理が施されたものであることに留意されたい。モジュール２１４により実行される更新処理は、ディスプレイに関してユーザ入力から受信したストローク２２０と、ディスプレイ面に書き込まれたイメージとの関連付けを含む。一実施例では、各ストロークは１つのストロークコンテンツ（すなわち、バックグラウンドイメージ）に関連付けされ、新たなストロークがバックグラウンドイメージ上に行われると、更新処理は、当該新たなストロークが同一のストロークコンテクスト上（以前のストロークが関連付けされた同じバックグラウンドイメージなど）、オーバラップしたストロークコンテクスト上（以前に表示されたイメージの少なくとも一部に部分的にオーバラップするバックグラウンドイメージなど）、又は独立したストロークコンテクスト上（新たなバックグラウンドイメージなど）にあるか確認する。新たに追加されたストロークが同一のコンテクストに対するものであると判断された場合、ストロークを規定するストローク情報（ストロークＩＤ、ストロークイメージ又はストロークをレンダリングするため描画されたポイントセットなど）が、既存のストロークコンテクストに加えられ、既存のストロークコンテクストにストロークが追加され得ため、マッチングのための新たな特徴点は追加されない。新たに追加されたストロークが以前のコンテクスト（以前に表示されたバックグラウンドイメージ）の少なくとも一部にオーバラップするストロークコンテクスト（バックグラウンドイメージ）に追加されたと判断される場合、ストロークを規定するストローク情報は既存のストロークコンテクストに追加されるが、現在のバックグラウンドイメージの非オーバラップ部分に関連する特徴点のみが加えられる。図３は、この機能を実行するシステムのブロック図である。
【００６０】
図３を参照して、システムは、キーポイント検出モジュール２０２、特徴抽出モジュール２０３及びマッチングモジュール２０４を有するコンピュータビジョンパイプラインを有し、これらは図２の対応するモジュールと同様に動作する。マッチングモジュール２０４は、イメージソース２０１からのイメージとと共に、レンダリングモジュール３１０を用いてインタラクティブホワイトボード３２０のディスプレイ面にレンダリングされるストロークを生成する。
【００６１】
システムはまた、キーポイント検出モジュール２１２及び特徴抽出モジュール２１３を有し、これらは図２の対応するモジュールと同様に動作する。キーポイント検出モジュール２１２は、イメージソース２０１からイメージを受信する。更新モジュール３１２は、特徴抽出モジュール２１３により抽出された特徴と、ペン又は接触（３２１）ｉｎら楽ティ部ホワイトボード３２０からのストローク３３０とに基づきメモリ３１１（シーケンシャルデータベースなど）を更新する。更新モジュール３１２はまた、ファーストパス３２１上で特徴抽出モジュール２０３により抽出された特徴を受信する。同様に、ファーストパス３２２はまた、更新モジュール３１２に入力を提供する。パス３２１のポイントは、特徴がマッチングのために計算され、同じバックグラウンドイメージ上にストロークが描画された場合に再計算される必要がないものである。ファーストパス３２２は、ストロークが等価なバックグラウンド上で以降に利用されるかチェックするのに利用されるバックグラウンドイメージを取得するのに利用可能である。
【００６２】
一実施例では、新たなストロークが受信されると、システムは、それがストロークコンテクストの既存部分である何れかのストローク（すなわち、イメージにすでに関連付けされる）、オーバラップしたストロークコンテクスト（以前に表示されたイメージの少なくとも一部に部分的にオーバラップするバックグラウンドイメージ上など）、又は独立したストロークコンテクスト（新たなバックグラウンドイメージなど）とオーバラップするか判断する。新たに追加されたストロークが同じコンテクストに対するものであると判断された場合、新たな特徴点はマッチングのために追加されず、ストロークは既存のストロークコンテクストに追加される。この情報は、ファーストパス３２２を介し更新モジュール３１２に伝えられる。新たに追加されたストロークが以前のコンテクスト（以前に表示されたバックグラウンドイメージ）の少なくとも一部にオーバラップするコンテクスト（バックグラウンドイメージ）に追加されたと判断された場合、現在のバックグラウンドイメージの非オーバラップ部分に関連する特徴点のみが、ファーストパス３２１を介し更新モジュール３１２によって受信され、イメージのためのストロークコンテクストに加えられる。
【００６３】
一実施例では、キーポイント検出は、イメージが異なる条件（異なるシフト、スケール又は照明など）の下で再キャプチャされた場合に検出可能である可能性があるイメージにおける位置を求めるのに利用される。キーポイント検出の実行結果は、表示対象のイメージに一致する候補である複数のイメージが特定されうるということである。Ｈａｒｒｉｓ／Ｓｔｅｐｈｅｎ  Ｃｏｒｎｅｒ（１９８８）、ＧＦＴＴ（１９９４）、ＳＩＦＴ（１９９９）、ＭＳＥＲ（２００２）、ＯＲＢ（２０１１）などのコーナ（複数次元におけるシャープな変化）又は領域（一定の又はリニアに変化するカラーを有するエリア）を求めるためのものを含む複数の周知のキーポイント検出方法がある。また、米国特許第８，５０４，６２４号、米国特許出願第２０１２／０２２９４２５号及び第２０１００２５１１０６号を参照されたい。
【００６４】
更なる情報について、Ｈａｒｒｉｓ，Ｃｈｒｉｓ，ａｎｄ  Ｍｉｋｅ  Ｓｔｅｐｈｅｎｓ，“Ａ  ｃｏｍｂｉｎｅｄ  ｃｏｒｎｅｒ  ａｎｄ  ｅｄｇｅ  ｄｅｔｅｃｔｏｒ”，Ａｌｖｅｙ  ｖｉｓｉｏｎ  ｃｏｎｆｅｒｅｎｃｅ，Ｖｏｌ．１５．１９８８、Ｓｈｉ，Ｊｉａｎｂｏ，ａｎｄ  Ｃａｒｌｏ  Ｔｏｍａｓｉ，“Ｇｏｏｄ  ｆｅａｔｕｒｅｓ  ｔｏ  ｔｒａｃｋ”，Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，１９９４，Ｐｒｏｃｅｅｄｉｎｇｓ  ＣＶＰＲ‘９４，１９９４  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ＩＥＥＥ，１９９４、及びＥｔｈａｎ  Ｒｕｂｌｅｅ，Ｖｉｎｃｅｎｔ  Ｒａｂａｕｄ，Ｋｕｒｔ  Ｋｏｎｏｌｉｇｅ，Ｇｒａｙ  Ｒ．Ｂｒａｄｓｋｉ“ＯＲＢ：Ａｎ  ｅｆｆｉｃｉｅｎｔ  ａｌｔｅｒｎａｔｉｖｅ  ｔｏ  ＳＩＦＴ  ｏｒ  ＳＵＲＦ”，ＩＣＣＶ  ２０１１：２５６４−２５７１を参照されたい。
【００６５】
一実施例では、ＯｐｅｎＣＶからの“ＯＲＢ”キーポイント検出装置が利用される。ＯＲＢでは、キーポイントは、中心点と当該中心点からある距離にあるピクセルのリングとの間の最大値を求めることによって特定される。イメージは複数のサイズにスケーリングされ、検出装置は、イメージ間で同一のキーポイントを求めることを可能にするため再実行される。特定数のキーポイントを取得するため、差分に対して小さな閾値が設定され、Ｈａｒｒｉｓコーナ指標に基づきポイントがソートされる。一実施例では、キーポイント検出は、単語及び図の始めと終わりにある点と、イメージ内のいくつかの点とを求める。
【００６６】
キーポイント検出アルゴリズムがイメージ内のキーポイントを求めた後、特徴抽出モジュールは、他のイメージに出現する場合に一致可能となるように、キーポイントの記述子を生成する。一実施例では、勾配、モーメント又は距離が計算され、キャプチャ処理における変化を説明するため、当該点における最大値に正規化される。一実施例では、複数の値が典型的には計算され、抽出される各特徴は、
Ｘ１＝［ｘ１，ｘ２，ｘ３，ｘ４，．．．，ｘ６４］，Ｘ２＝［ｘ１，ｘ２，ｘ３，ｘ４，．．．，ｘ６４］，．．．，Ｘ２００＝［ｘ１，ｘ２，ｘ３，ｘ４，．．．，ｘ６４］などの６４次元のベクトルとなるかもしれない。
【００６７】
一実施例では、特徴はスカラー値のベクトルである。他の実施例は、特徴はバイナリ値のより大きなベクトルである。ベクトルは、カラー、局所的勾配、エリア、モーメント及び／又は他のキーポイントとの距離を記述してもよい。
【００６８】
一実施例では、ＯｐｅｎＣＶのＯＲＢ特徴抽出装置が特徴抽出に利用される。ＯＲＮでは、特徴抽出装置は、検出されたキーポイントの周りのパッチをスムーズ化し、その後にスムーズ化されたパッチ内の複数のピクセルペアのバイナリな比較を実行する。一実施例では、特徴ベクトルは、１及び０のみから構成され、コンパクトに表現される。一実施例では、２つの特徴点の間の距離は、異なるビットの個数によって測定される（ハミング距離）。ＯＲＢ特徴抽出装置は、パッチをキーポイントの向きの最大値に回転することによって、異なる回転において特徴をマッチングする。一実施例では、計算効率性のため、比較に用いられる点の座標は複数の向きについて予め計算され、正しい座標セットが各キーポイントに対して利用される。
【００６９】
一実施例では、関連するストロークと有する複数のイメージと、以前に描画されたストロークが描画されるべきか判断される必要がある表示対象の現在のイメージとがある。以前のイメージについて決定された特徴と表示対象のイメージについて決定された特徴とを利用して、表示対象のイメージと以前にストロークが関連付けされたイメージとのイメージ特徴の間の一致が求められる。イメージ毎に数百の特徴点が存在する可能性があり、各点は６４次元のベクトルによって記述可能であるため、このマッチング処理は極めて計算量の複雑なものになりうる。一実施例では、特徴ベクトルのタイプに適した距離の指標が利用される。例えば、一実施例において利用する際、マッチングは高速インデキシングを可能にするためブルートフォース（ｂｒｕｔｅ  ｆｏｒｃｅ）を介したものとなる。他の実施例では、マッチングは、周知なツリーベースマッチング手段を介したものである。ブルートフォースマッチングは、新たなストロークが会議中にイメージに関連付けされるときに重要となる追加的なイメージを加えることを容易にするが、ストローク数が増加するに従ってより長い時間がかかる。マッチングを高速化するツリー構造が利用可能であるが、新たなストロークによりツリー構造を更新するのに長時間かかる可能性がある。
【００７０】
一実施例では、表示対象のイメージの抽出された特徴は、以前に保存された全ての特徴点とマッチングされる。一実施例では、マッチングロジックは、このマッチング処理を複数回利用して、表示される新たなイメージとストロークコンテクストとの間の複数の一致を求める。
【００７１】
ＯＲＢ特徴はバイナリであるため、マッチング処理は、排他的論理和（ＸＯＲ）演算を実行し、マッチング後に“１”ビットの個数を計数することに関する。他のマッチング技術では、“局所性鋭敏型ハッシュ（ｌｏｃａｌｌｙ  ｓｅｎｓｉｔｉｖｅ  ｈａｓｈｉｎｇ）”法が利用可能である。これは、はるかに少数のマッチング演算で済ませることを可能にするが、常に最近傍を見つけるとは限らない。“局所性鋭敏型ハッシュ”法は、はるかに大きなデータセットが検索されることを可能にするが、新たなバックグランドイメージの追加はより長い時間がかかる。
【００７２】
すなわち、一実施例では、ストロークマッチング装置は、一致をより迅速に求める確率を向上させるため、まず直近にマッチングされたストロークコンテクストをサーチする。直近とみなされるストロークコンテクストの個数は、時間（最近１０分以内など）又は個数（最近３個のストロークコンテクストなど）に基づくものであってもよい。特徴点の大部分は一致した場合、更なる一致のための検索は実行されない。しかしながら、多数の点が一致しなかった場合、更なる一致のための検索が続けられる可能性がある。
【００７３】
一実施例では、ストロークマッチング装置は、一致があるかの判断の一部として、イメージが表示されたシーケンスに関連するシーケンス情報を利用する。これは、極めて頻繁にストロークが同じバックがラウンドに素早く追加されるためである。
【００７４】
一実施例では、より迅速にサーチされるコンテクストがグループ化される。すなわち、異なる特徴点を有するが、一緒に出現したストロークが、全体的な検索が実行される前にサーチされるコンテクストグループ内の“コンテクストグループ”特徴点に配置され、コンテクストグループがサーチされるイメージに対応する特徴点との一致を求めるのに十分である場合、低速となりうる全ての特徴点をサーチする必要はない。
【００７５】
一実施例では、マッチングモジュールは、新たなコンテンツがメモリに格納されている１以上のストロークコンテクストと少なくとも部分的に一致するか判断する際、メモリに格納されている他のストロークコンテクストをサーチする前に、新たなコンテンツと既知の変換によるストロークコンテクストセットとを比較する。一実施例では、新たなコンテンツと格納されているストロークコンテクストとの間の複数の変換が、当該ストロークコンテクストとの少なくとも部分的な一致が存在するかの判断の一部として利用される。例えば、ウェブページが閲覧中であり、ヘッダが同一であり、ボディがスクロールされるときなど、ある期間において“クエリ”イメージとストロークコンテクストとの間に複数の変換が求められるかもしれない。この場合、一致した特徴点は、ヘッダに対する１つの変換とボディに対する異なる１つの変換とを有することになる。この場合、オリジナルのストロークが描画されたバックグラウンドイメージは、２つの変換の下で変換可能であり、依然として一致しているかの判断が行われる。一実施例では、マッチングモジュールは、タイプ及びイメージ比較から構成される群から選ばれる１以上に基づき、少なくとも１つの変換を排除する。
【００７６】
マッチングが実行されると、クエリイメージは、複数の異なるイメージと一致する特徴を有してもよい。これらの一致の一部は正確な一致であり、その多くは、ノイズ又はイメージの小さな部分が他のイメージの小さな部分と類似しているため、そうでない。一実施例では、整合性のある一致を求めるため、一部の一致は“異常値”であるかもしれないとランダムに推測し、その後に整合性のため残りの特徴を検証することによって、ベストな整合性のある一致セットを求めるためのアルゴリズム（例えば“ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ”の略語であるＲＡＮＳＡＣなど）が利用される。すなわち、初期的な一致からの点は除外され、異なるマッピングによる他の一致ポイントのセットがあるか確認するため、ＲＡＮＳＡＣが利用される。
【００７７】
異常値セットが決定されると、これらの点の間のマッピングが、表示対象の新たなイメージとストロークに関連する元の以前のイメージとの間の変換を決定するのに利用可能である。この変換を利用して、元のイメージは新たなイメージに変換され、一致が妥当なものであるか判断するためのサニティチェックが実行される。一致が妥当である場合、イメージに関連するストロークＩＤが、変換と共にアプリケーションに返される。変換がスクリーンキャプチャと整合していることを確実にするため、４つのマッチングポイントが、あるイメージから他のイメージへの透視変換を決定するのに利用可能であり、これら全ての整合するマッチングポイントは、ストロークを変換し、それを上部に書き込むのに利用可能なものとして抽出される。一実施例では、システムは、下部にストロークが描画されたイメージデータを抽出及び変換し、それとイメージが当初描画されたバックグラウンドイメージと比較する。
【００７８】
ユーザ体感
従来のホワイトボードシステムは、ポジティブなユーザ体感を提供するユーザインタフェースを有さない。ユーザはしばしば、マークアップを加えたイメージを追跡することを所望する。例えば、ユーザがホワイトボードを使用し、コンテンツをマークアップしているとき、ユーザは、コンテンツが変わったとしても、以前のコンテンツによりストロークを維持することを所望する。しかしながら、従来のシステムは、ＩＷＢにより表示されているコンテンツを制御しているユーザにストロークが描画されたページに戻ることを要求し、その後、ＩＷＢユーザはイメージ及びストロークが一緒になったページを保存することができる。その後、ＩＷＢシステムへのコンテンツの供給を制御するユーザは新たなページに変えることができ、ＩＷＢユーザはストロークを消去し、次のページをマークアップし始めることができる。
【００７９】
この体感を回避するため、ＩＷＢシステムは、マークアップをキャプチャし、ストロークのグループに基づきページを自動生成する。さらに、ＩＷＢシステムは、生成されると、ストロークを同じコンテンツの以前に準備されたページに加える。さらに、ＩＷＢシステムは、ユーザが現在のコンテンツを表示するスクリーンを、ストロークが追加されたコンテンツの以前に生成されたページを有するものにスイッチすることを可能にするユーザインタフェースを利用する。一実施例では、ユーザがコンテンツを変えるとき、古いストロークが消え、ＩＷＢユーザはストロークを即座に加えることが可能である一方、提供されたイメージが古いページ又は関連するページになった場合、ＩＷＢユーザにより描画される関連するストロークが出現する。
【００８０】
一実施例では、本方法は、ディスプレイ面上に表示するための第１コンテンツを受信し、ディスプレイ面の第１エリアに第１コンテンツを表示し、第１コンテンツの第１部分に対してディスプレイ面上に筆記されるとストロークをキャプチャし、第１エリアと異なるディスプレイ面の第２エリアに第１ページを自動生成し、キャプチャされたストロークと共に第１コンテンツを表示することを含む。他の実施例では、第１コンテンツによるページがすでに存在しない場合、ディスプレイ面の第２エリアに第１ページを自動生成する。
【００８１】
更なる他の実施例では、本方法は更に、ストロークが追加された第１部分にオーバラップする第１コンテンツの少なくとも一部をすでに表示した１以上の他のページにストロークを追加することを含む。
【００８２】
更なる他の実施例では、本方法は更に、１以上の追加的なストロークが第１コンテンツ上に以前に表示されたことをマッチングサービスが示す場合、第１コンテンツと共にディスプレイ面上に表示するための１以上の追加的なストロークを追加することを含む。
【００８３】
一実施例では、本方法は更に、ディスプレイ面の第１エリアにディスプレイ面の他のエリアに現在表示されている以前に生成されたページを表示させることを含む。他の実施例では、ディスプレイエリアの第１エリアは、ユーザがストロークを追加可能なディスプレイスクリーンのアクティブエリアである。
【００８４】
一実施例では、本方法は更に、第１コンテンツのストロークコンテクストがあるか判断するため、第１コンテンツをマッチングサービスに送信し、ディスプレイ面上に表示するための第２コンテンツを受信し、第１コンテンツのストロークコンテクストがあるか否かに関するマッチングサービスからのレスポンスが受信されたかに基づき、第２コンテンツをマッチングサービスに送信するか判断することを含む。他の実施例では、本方法は更に、第１コンテンツのストロークコンテクストがあることをマッチングサービスが示す場合、第１コンテンツと共にディスプレイ面上に表示するためのストロークを生成し、第２コンテンツをマッチングサービスに送信するか判断する前に、第１コンテンツのストロークコンテクストがあることをマッチングサービスが示す場合、第２コンテンツをマッチングサービスに送信することを含む。更なる他の実施例では、本方法は更に、第１コンテンツのストロークコンテクストがあるかマッチングサービスが示すまで、第２コンテンツがマッチングサービスに送信されることを遅延させることを含む。
【００８５】
図４は、図１のディスプレイストロークキャプチャ装置１０２の一実施例のブロック図である。図４を参照して、イメージソース４００（図１のイメージソース１０１など）は、イメージバッファ４０１にバッファされているイメージを提供する。ストロークバッファ４０２は、１以上のストロークを格納する。これらのストロークは、ディスプレイ更新ロジック４０３を介しストロークバッファ４０２に格納される。ディスプレイ更新ロジック４０３は、ストロークマッチング装置（ストロークマッチング装置１０３など）、ストロークキャプチャユニット４０４及び／又は更なるディスプレイ及び／又はキャプチャ装置からストロークを取得してもよい。ディスプレイ更新ロジック４０３はまた、イメージバッファ４０１からバッファされたイメージと、ストロークバッファ４０２からストロークとを受信し、ディスプレイ４０５上にイメージをレンダリングする。
【００８６】
一実施例では、ストローク識別子（ＩＤ）とイメージとを用いて、ディスプレイ更新ロジック４０３は、ストロークとイメージとの間の関連付けをデータベース（又はストレージ２１０などの他のストレージ）に加える。一実施例では、これは、イメージ、ストロークＩＤ及びストロークのための境界ボックスを取得し、これらを検索するストロークのデータベースに加えるａｓｓｏｃｉａｔｅ（）関数を利用して実行される。
【００８７】
一実施例では、表示対象のバックグラウンドイメージが与えられると、ディスプレイ更新ロジック４０３は、ストロークＩＤ及び変換のリストを返すための関数を利用する。ディスプレイ更新ロジックはイメージによりマッチング装置を呼び出し、マッチング装置は一致するストロークを返す。ディスプレイロジックは、返されたストロークを古い座標系から表示されるバックグラウンドイメージ座標系に変換する。一実施例では、当該変換は、各ストロークについて異なるものとすることができる。変換はシンプルな移動（ｘ，ｙ）オフセットであってもよい。一般には、変換は、ストロークを新たなバックグラウンドイメージにマッピングするため、それらを移動、スケーリング、回転、スキュー及びせん断（ｓｈｅａｒ）することができる透視変換である。一実施例では、ディスプレイ更新ロジック４０３は、現在のストローク・イメージ関連付けをメモリ（データベースなど）に保存するための関数を利用する。他の実施例では、ディスプレイ更新ロジック４０３は、特定のストロークＩＤをもはや返さないようにデータベースを更新するための関数を利用する（すなわち、ストロークを削除するためなど）。
【００８８】
一実施例では、ＩＷＢのユーザインタフェースは、レンダリングされたストロークを含む１以上の以前に表示されたイメージと共に、現在のバックグラウンドイメージを表示する。これらの以前に表示されたイメージはそれぞれ、現在の又はライブのバックグラウンドイメージとして以前に表示され、ストロークがそれに適用された。その後、新たなバックグラウンドイメージがストロークコンテクストを有さない現在の（ライブ）イメージとして表示されると、それのストロークコンテクストと共に以前のバックグラウンドイメージが、ホワイトボードのディスプレイ面上の他の位置に表示される。これは、例えば、ホワイトボードのディスプレイの下部に沿って、又はホワイトボードのディスプレイ上の現在のバックグラウンドイメージの下方などにあってもよい。ストロークコンテクストと共に以前に表示されたバックグラウンドイメージの１以上のページは、現在の（ライブ）イメージと共にディスプレイ面上の異なるウィンドウに表示されてもよい。
【００８９】
図５は、ホワイトボードシステムのユーザインタフェースの一例を示す。図５を参照して、ディスプレイウィンドウ５００は、メインディスプレイウィンドウであり、イメージソースからの現在表示されているイメージを表すライブビュー５０１、又はウィンドウ５０２〜５０４に表示される関連するストロークを有した１以上の以前に表示されたイメージなど、それの下方に表示されるページの１つの関連するストローク（存在する場合）と共にイメージを表示する。
【００９０】
ディスプレイウィンドウ５００にライブビューページ５０１を表示する間、ユーザがそれのストロークと共に以前に表示されたページを再表示することを所望する場合、ユーザは、ディスプレイ上のページ５０２〜５０４の１つを選択する。この選択は、イメージに対してカーソルを移動させ、ホワイトボードにページが選択されたこと示すためにカーソルコントロール装置を操作することによって（カーソルコントロール装置上のボタンの押下など）、又はイメージ上でホワイトボードをタップすることによって実現されてもよい。
【００９１】
さらに、一実施例では、表示される新たなバックグラウンドイメージが、ストロークコンテクストと共に表示されたままである以前に表示されたページの１以上の一部であるコンテンツを含む場合、以前に表示されたページの１以上の一部である新たなバックグラウンドイメージのエリアになされたストロークは、以前に表示されたページに加えられる。例えば、ストローク５１０，５１１がディスプレイウィンドウ５００に表示されるライブビューページと共に生成されると、ページ５０２のイメージは、イメージの当該部分をストローク５１０，５１１が生成されたディスプレイウィンドウ５００に含める。従って、一実施例では、システムのディスプレイ更新ロジックは、これら２つのストロークをページ５０２のイメージに自動的に追加する。
【００９２】
ストローク更新遅延
システムが管理するストロークとバックグラウンドイメージとの間の同期の外観に寄与する複数のアイテムがある。これらは、バックグラウンドイメージの到着レート、バックグラウンドイメージに続くべきストロークを決定するため“ｆｉｎｄ（）”処理を開始するまでの遅延、ストロークを更新する遅延、及びバックグラウンドイメージを更新する遅延を含む。バックグラウンドイメージがホワイトボード上に表示されるとき、システムは、バックグラウンドイメージと共に表示するバックグラウンドイメージに関連するストロークがあるか判断し、ストロークが存在する場合、これらのストロークをホワイトボード上にバックグラウンドイメージと共に表示するために当該ストロークを取得する。ストロークが取得され、バックグラウンドイメージと共にディスプレイに含めることが可能なレートが、新たなバックグラウンドイメージが表示用のイメージソースから受信されるレートより低速である場合、表示されるストロークは、ディスプレイ上で関連するバックグラウンドイメージと同期しないかもしれない。
【００９３】
図６は、全てのスクリーンの到来に対してマッチング処理に基づくストロークを取得するためのｆｉｎｄ（）処理が実行されるが、ｆｉｎｄ（）処理が到着より長い時間がかかる場合に生じるワーストケースの状況を示す。図６を参照して、この場合、時間が経過するに従って、ストロークとバックグラウンドイメージとの間の遅延がより長くなり、ストロークとイメージとの間の関連付けが大変急速になくなる。図６の下部は、フレーム１７がフレーム６“Ｆ１７Ｓ６”からのストロークと共に表示されることを示す。
【００９４】
この同期の欠落を改善するためいくつかの方法がある。一実施例では、ストロークとイメージデータとを関連付けるためのシステム及び方法が開示される。一実施例では、システムは、ディスプレイ面、メモリ、ストロークキャプチャモジュール、マッチングモジュール及びディスプレイ更新モジュールを有する。一実施例では、メモリはディスプレイ面に接続され、複数のストロークのストロークコンテクスト（バックグラウンドイメージなど）を格納し、各ストロークコンテクストは、少なくとも１つのストロークと以前に表示されたイメージデータの一部との間の関連付けを表す。ストロークキャプチャモジュールは、ディスプレイ面と共に動作可能であり、ディスプレイ面に書かれた１以上のストロークをキャプチャし、１以上のストロークに対応するキャプチャされたストロークデータと新たなストロークコンテクストを生成するためのコンテンツとを関連付けるため、メモリに通信接続される。ストロークキャプチャモジュールは、新たなストロークコンテクストをメモリに格納する。
【００９５】
マッチングモジュールは、第１コンテンツの受信に応答して、ディスプレイ面と動作し、第１コンテンツがメモリに格納されている１つのストロークコンテクストに関連付けされているか判断し、第１コンテンツに関連する１つのストロークコンテクストの１以上のストロークを特定する情報と、第１コンテンツに対するディスプレイ面上の表示のための１つのストロークコンテクストの１以上のストロークを変換するための変換情報とを返す。一実施例では、マッチングサービスは、第１コンテンツがストロークコンテクストに関連するか判断するため、キーポイント検出、特徴抽出及びマッチングを実行する。ディスプレイ更新ロジックは、第１コンテンツのストロークがあるか判断するため、第１コンテンツをマッチングサービスに送信し、第１コンテンツのストロークがあるか否かに関するマッチングサービスからのレスポンスが受信されたかに基づき、第１コンテンツの後に受信した第２コンテンツをマッチングサービスに送信するか判断する。
【００９６】
一実施例では、システムにより実行される方法は、ディスプレイ面上に表示するための第１コンテンツを受信し、第１コンテンツについて１以上のストロークがあるか判断するため、第１コンテンツをマッチングサービスに送信し、ディスプレイ面上に表示するための第２コンテンツを受信し、結果に関するマッチングサービスからのレスポンスが以前のマッチングリクエストから受信されたかに基づき、第２コンテンツをマッチングサービスに送信するか判断することを含む。一実施例では、本方法は更に、ストロークが第１コンテンツに一致することをマッチングサービスが示す場合、第１コンテンツと共にディスプレイ面上に表示するためのストロークを生成し、第２コンテンツをマッチングサービスに送信するか判断する前に、第１コンテンツについてストロークコンテクストが存在することをマッチングサービスが示す場合、第２コンテンツをマッチングサービスに送信することを含む。
【００９７】
一実施例では、本方法は更に、第１コンテンツについてストロークコンテクストがあるかマッチングサービスが示すまで、第２コンテンツがマッチングサービスに送信されることを遅延することを含む。他の実施例では、本方法は更に、ディスプレイ面上に表示するための第３コンテンツを受信し、第１コンテンツについてストロークコンテクストがあるか否かに関するマッチングサービスからのレスポンスを受信する前に、第３コンテンツが受信された場合、第２コンテンツをマッチングサービスに送信ないことを決定することを含む。更なる他の実施例では、本方法は更に、第３コンテンツについてストロークコンテクストがあるか判断するため、第３コンテンツをマッチングサービスに送信することを含む。
【００９８】
より詳細には、一実施例では、新たなバックグラウンドイメージが表示のために入力及び／又は受信されると、ホワイトボードは、以前のバックグラウンドイメージに関連するストロークをチェックした結果を受信したか判断する。受信していない場合、ホワイトボードは新たなバックグラウンドイメージについてストロークに対するリクエストを送信しない。図７及び８は、より良好な同期を維持するための２つの方法を示す。図７は、返された最新のストロークを基本的には常に表示し、受信した最新のイメージを常に表示するが、以前のイメージからの結果が受信されるまで新たなイメージを送信しない。具体的には、図７において、より直近のスクリーンが到着したときのスクリーンに対するｆｉｎｄ（）処理の破棄は、ストロークと正しいバックグラウンドイメージとの間の遅延を補償し、これにより、当該遅延は１つのｆｉｎｄ（）処理の時間より若干大きくなる。新たなイメージが送信されると、最近の利用可能なイメージが利用される。これは、いくつかのフレーム（イメージ）が利用されないことを意味する。
【００９９】
“ストロークコンテクスト”は、マッチングシステムに内部にあり、高速化及びマッチングの向上のための単なる便宜上のものである。ディスプレイユニットの観点から、それはコンテンツ及びストロークＩＤを送信し、ストローク及びストローク変換を受信し、“ストロークコンテクスト”を受信しない。図７において、フレーム０，２，４，６，９，１１，１３が送信され、フレーム１，３，５，７，８，１０，１２は表示のために送信されず、最近に返されたストロークと共に出現する。
【０１００】
図８において、フレームが送信され、関連するストロークが受信されたときに限って、フレームが表示される。このことは、ストロークが表示されるフレームと常に正確に同期していることを意味するが、フレームが受信される時点とそれが表示される時点との間には遅延がある（従って、ホワイトボードとスクリーンを共有するＰＣとの双方を見ることができる場合、遅延に気付くかもしれない）。また、図８では、マッチングのため送信されないこれらのフレームは表示されない（また、ディスプレイフレームレートは入力フレームレートより遅く、少しぎくしゃくして見えるかもしれない）。
【０１０１】
他の代替は、フレームを遅延させるが、フレームレートを維持することである。このようなケースでは、フレーム０はストロークの受信後に表示され、フレーム１はフレーム０とちょうど同じ時間遅延され、その後に同じストロークと共に表示される。これはスムーズなバックグラウンドの更新、近い同期のストローク及びより低速なフレームレートによるストロークの更新をもたらす。
【０１０２】
他の実施例では、フレームは受信直後にはディスプレイに送信されず、その代わりに、マッチングが実行されるまで遅延され、存在する場合には、何れのストロークがフレームと共に表示されるべきか判断される。従って、ホワイトボードが表示のためのバックグラウンドイメージを受信するとすぐに、何れかのストロークがバックグラウンドイメージに関連しているか判断するためのリクエストがストローク共有サービスに送信され、ストローク共有サービスがリクエストの結果を返すまでバックグラウンドイメージがバッファされる。このようにして、フレーム更新レートがストローク検出処理のスピード（又は未満）で実行される限り、ストロークは、関連するバックグラウンドイメージの表示と同期し続ける。
【０１０３】
同期を更に向上させるため、フレームの表示は、ｆｉｎｄ（）処理が終了するまで遅延させることができる。この場合、ストロークは、常にバックグラウンドイメージと完全に同期することになる。このアプローチの問題点は、更新フレームレートがより低速となり（終了したｆｉｎｄ（）処理のレート）、バックグラウンドイメージの更新のソースの間に遅延が生じることである。多くの場合、バックグラウンドイメージは、特にソースがリモートにあり、すでに遅延しており、比較のため確認することができない場合には問題とはならない。
【０１０４】
要約
一実施例では、ユーザは、ＩＷＢシステムを利用してセッションのサマリを取得することができる。一実施例では、サマリは、セッション中にバックグラウンドイメージに行われた全てのストロークを含む１以上のページを含む。
【０１０５】
サマリを生成する方法及び装置が開示される。一実施例では、システムは、ディスプレイ面、メモリ、ストロークキャプチャモジュール及び要約ユニットを有する。メモリは、複数のストロークのストロークコンテクストを格納するため、ディスプレイ面に接続され、各ストロークコンテクスト（バックグラウンドイメージなど）は、少なくとも１つのストロークと以前に表示されたイメージデータ（コンテンツ）の一部との間の関連付けを表す。ストロークキャプチャモジュールは、ディスプレイ面と動作し、ディスプレイ面に提示されたイメージデータ上に書かれた１以上のストロークをキャプチャするため、メモリに通信接続される。
【０１０６】
要約ユニットは、セッション中に行われた１以上のストロークを含むセッション中に表示されたコンテンツに基づき、セッションのサマリを生成するため、メモリに接続される。図９は、メモリ（データベースなど）に接続され、ページの向き付けされたイメージ及びストロークを生成するための要約ユニットとして動作するページサマリロジック９０１を示す。一実施例では、要約ユニットは、ａ）サマリページの一部でなく、第１イメージデータに関連する第１ストロークに対応するストロークデータを取得するためメモリにアクセスし、ｂ）第１イメージデータに関連する他の何れかのストロークに対応するストロークデータを取得するためメモリにアクセスし、ｃ）第１ストローク及び第１イメージデータに関連する他の何れかのストロークにより第１サマリページを構成し、及びｄ）サマリページの一部でない他のストロークについてａ）〜ｃ）を繰り返すことによって、サマリを生成するよう動作可能である。一実施例では、要約ユニットはまた、ｅ）全てのストロークが少なくとも１つのサマリページに含まれるまでｄ）を繰り返すことによって、サマリを生成するよう動作可能である。
【０１０７】
一実施例では、要約ユニットは、ユーザストロークに基づきサマリのコンテンツを選択する。一実施例では、サマリは、少なくとも１回行われた全てのストロークを含む出力を含む。一実施例では、サマリはシステムとして生成され、それのホワイトボード（ディスプレイ面）が利用される。一実施例では、サマリは、ディスプレイ面上の１以上のウィンドウ（図５のユーザインタフェースなど）に現在表示される複数のページを有する。
【０１０８】
一実施例では、本方法は、ディスプレイ面上に表示されるコンテンツに書き込まれた１以上のストロークをキャプチャし、１以上のストロークに対応するキャプチャされたストロークデータと、ストロークコンテクストを生成するため書き込まれたコンテンツとを関連付け、ここで、各ストロークコンテクストは少なくとも１つのストロークとディスプレイ面上に以前に表示されたコンテンツの一部との関連付けを表し、セッション中に行われた１以上のストロークを含むセッション中に表示されたコンテンツに基づきセッションのサマリを生成することを含む。一実施例では、サマリの生成は、ａ）サマリページの一部でない、第１イメージデータに関連する第１ストロークに対応するストロークデータを取得するためメモリにアクセスし、ｂ）第１イメージデータに関連する他の何れかのストロークに対応するストロークデータを取得するためメモリにアクセスし、ｃ）第１ストローク及び第１イメージデータに関連する他の何れかのストロークと共に第１サマリページを構成し、ｄ）サマリページの一部でない他のストロークについてａ）〜ｃ）を繰り返すことを含む。他の実施例では、本方法は更に、ｅ）全てのストロークが少なくとも１つのサマリページに含まれるまでｄ）を繰り返すことを含む。図１０は、当該処理の一実施例のフロー図である。当該処理は、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用マシーン上で実行されるものなど）又はこれらの組み合わせを有する処理ロジックによって実行される。
【０１０９】
一実施例では、グリーディアルゴリズムが、１以上のサマリページのセットを生成するため要約ユニットによって実行される。グリーディアルゴリズムはデータベース内のストロークセットから開始され、ストロークの何れもサマリページにない。当該アルゴリズムは、第１ストロークを取得し、それに関連するバックグラウンドイメージを特定する。一実施例では、データベースは、当該特定をサポートするためストロークに関連する少なくともいくつかのイメージを格納する。バックグラウンドイメージを特定すると、アルゴリズムはデータベースにアクセスし、バックグラウンドイメージに関連する他の全てのストロークを取得する。一実施例では、当該アルゴリズムは、“クエリ”としてバックグラウンドイメージを利用し、ストローク及び当該ストロークの変換を決定する（ディスプレイユニットが実行するように）。アルゴリズムは、第１サマリページを生成するため、特定されたバックグラウンドイメージに関連する全てのストロークをバックグラウンドイメージに含める。従って、サマリページは、バックグラウンドイメージ及びストロークの合成を表現する。サマリページは、任意的にはそれ自体によって及び／又は他のサマリページと共に印刷されてもよい。サマリページはまた、それを生成するのに用いられたメモリより長い期間のストロークに移転及び／又は格納されてもよい。この次のサマリページは以前のサマリページにすでに現れた１以上のストロークを含むことに留意されたい。
【０１１０】
第１サマリページが生成された後、アルゴリズムは、サマリページの一部でないストロークセットの他のストロークを検出するため、データベースにアクセスする。このようなストロークが取得されると、関連するバックグラウンドイメージが特定され、当該バックグラウンドイメージに関連する他の全てのストロークがデータベースから取得され、他のサマリページが当該バックグラウンドイメージ及び関連するストロークと共に生成される。
【０１１１】
当該処理は、ストロークセットからの全てのストロークが少なくとも１つのサマリページに出現するまで繰り返される。
【０１１２】
一実施例では、サマリページは、第１ストロークがページに追加された時間によって順序づけされることに留意されたい。
【０１１３】
コンピュータシステムの具体例
図１１は、本発明の実施例を実施するのに利用可能なコンピュータシステム１１００のブロック図である。一実施例では、コンピュータシステム１１００は、図１に図示され、上述されたコンポーネントの１以上を実現するのに利用されてもよい。図１１に示されるように、コンピュータシステム１１００は、バスサブシステム１１０４を介しいくつかの周辺サブシステムと通信するプロセッサ１１０２を有する。これらの周辺サブシステムは、メモリサブシステム１１０８及びファイルストレージサブシステム１１１０を有するストレージサブシステム１１０６、ユーザインタフェース入力装置１１１２、ユーザインタフェース出力装置１１１４及びネットワークインタフェースサブシステム１１１６を有してもよい。
【０１１４】
バスサブシステム１１０４は、コンピュータシステム１１００の各種コンポーネント及びサブシステムが意図されるように互いに通信することを可能にするための機構を提供する。バスサブシステム１１０４は単一のバスとして概略的に示されているが、バスサブシステムの他の実施例は複数のバスを利用してもよい。
【０１１５】
ネットワークインタフェースサブシステム１１１６は、他のコンピュータシステム、ネットワーク及びストレージとのインタフェースを提供する。ネットワークインタフェースサブシステム１１１６は、コンピュータシステム１１００と他のシステムとの間でデータを送受信するためのインタフェースとして機能する。例えば、ＩＷＢシステムのネットワークインタフェースサブシステム１１１６は、コントローラがインターネットなどの通信ネットワークを介し他の遠隔配置されたＩＷＢシステムと通信することを可能にするものであってもよい。
【０１１６】
ユーザインタフェース入力装置１１１２は、キーボード、マウスなどのポインティング装置、トラックボール、タッチパッド、グラフィクスタブレット、スキャナ、バーコードスキャナ、ディスプレイに搭載されるタッチスクリーン、音声認識システムなどのオーディオ入力装置、マイクロフォン及び他のタイプの入力装置を含むものであってもよい。一般に、“入力装置”という用語の使用は、コンピュータシステム１１００に情報を入力するための可能な全てのタイプの装置及び機構を含むことが意図される。
【０１１７】
ユーザインタフェース出力装置１１１４は、ディスプレイサブシステム、プリンタ、ファックスマシーン、オーディオ出力装置などの非ビジュアルディスプレイなどを含むものであってもよい。ディスプレイサブシステムは、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶ディスプレイ（ＬＣＤ）などのフラットパネル装置又はプロジェクション装置であってもよい。一般に、“出力装置”という用語の使用は、コンピュータシステム１１００から情報を出力するための可能な全てのタイプの装置及び機構を含むことが意図される。
【０１１８】
ストレージサブシステム１１０６は、本発明の機能を提供するベーシックプログラミング及びデータ構造を格納するためのコンピュータ可読記憶媒体を提供する。プロセッサにより実行されると、本発明の機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、ストレージサブシステム１１０６に格納されてもよい。これらのソフトウェアモジュール又は命令は、プロセッサ１１０２により実行されてもよい。ストレージサブシステム１１０６はまた、本発明により利用されるデータを格納するためのレポジトリを備えてもよい。ストレージサブシステム１１０６は、メモリサブシステム１１０８及びファイル／ディスクストレージサブシステム１１１０を有してもよい。
【０１１９】
メモリサブシステム１１０８は、プログラム実行中に命令及びデータのストレージのためのメインＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１８と、固定的な命令が格納されるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２０とを含む複数のメモリを有してもよい。ファイルストレージサブシステム１１１０は、プログラム及びデータファイルのための非一時的で永続的な（不揮発性）ストレージを提供し、ハードディスクドライブ、関連する着脱可能な媒体と共にフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ、光ドライブ、着脱可能なメディアカートリッジ及び他の同様の記憶媒体を含むものであってもよい。
【０１２０】
コンピュータシステム１１００は、パーソナルコンピュータ、電話、ポータブルコンピュータ、ワークステーション、ネットワークコンピュータ又は他の何れかのデータ処理システムを含む各種タイプとすることが可能である。コンピュータ及びネットワーク可変性のため、図１１に示されるコンピュータシステムの説明は、コンピュータシステムの好適な実施例を説明するための単なる具体例であることが意図される。図１１に示されるシステムより多数又は少数のコンポーネントを有する他の多くのコンフィギュレーションが可能である。
【０１２１】
本発明の特定の実施例が説明されたが、各種改良、変更、他の構成及び均等がまた本発明の範囲内に含まれる。上述された教示は、ブート又はリブート可能なプロセッサを有する何れかのシステムに適用されてもよい。例えば、具体例として特定のシステムを利用した実施例が上述されたが、これは限定的なものでない。上述され、請求項に記載される教示はまた、スクリーン上のストロークが受付され、ドキュメントイメージの基礎となるイメージパッチとマッチングされ、その後にイメージパッチが新たなドキュメントイメージに検出されるかに基づき再描画又は削除することを可能にする他の計算システムによって実施されてもよい。
【０１２２】
本発明の多くの変更及び改良が上記説明を参照した当業者に明らかになる一方、例示的に図示及び説明される何れか実施例も限定的なものとして解釈されるべきでないことが理解されるべきである。従って、各種実施例の詳細の参照は、本発明に本質的なものとしてみなされる特徴のみを記載した請求項の範囲を限定することを意図するものでない。
【符号の説明】
【０１２３】
１００  ディスプレイストロークマッチングシステム
１０１  イメージプロバイダ
１０２  ディスプレイストロークキャプチャ装置
１０３  ストロークマッチング装置
１０４  更なるディスプレイ又はキャプチャ装置
２０１  イメージソース
２０２、２１２  キーポイント検出モジュール
２０３、２１３  特徴抽出モジュール
２０４  マッチングモジュール
２１０  メモリ
２１４  更新モジュール
【図１】
2015165397.tif 000003
【図２】
2015165397.tif 000004
【図３】
2015165397.tif 000005
【図４】
2015165397.tif 000006
【図５】
2015165397.tif 000007
【図６】
2015165397.tif 000008
【図７】
2015165397.tif 000009
【図８】
2015165397.tif 000010
【図９】
2015165397.tif 000011
【図１０】
2015165397.tif 000012
【図１１】
2015165397.tif 000013