(57)【要約】【課題】手書きジェスチャを取り込み実施するシステムおよびプロセスを実現する。【解決手段】ユーザは、ジェスチャを使用してペンベースの入力装置に迅速に指示して動作を実行することができる。ユーザは、ペンベースのコンピューティングプラットフォームでペンを使用してテキストまたは手書きインクを編集し、その編集によりテキストまたはインクに影響を及ぼすことができる。ジェスチャを実施するプロセスにおいて、一般的な動作環境からジェスチャにアクセスできる(３０１)。ユーザは、３０１でインクを追加するか、またはディスプレイの何らかの側面を制御する(例えば見る、スクロールする等)ことができる。３０２でジェスチャが作成されると、３０３でそれを実行することができる。実行を終えると、システムは経路３０４で３０１に戻ることにより、さらに入力を受け付ける状態になる。【選択図】図３
2008305437.tif 000002
【特許請求の範囲】
【請求項１】
受け取ったストロークがジェスチャであるかどうかを判定するジェスチャ判定方法であって、
少なくとも１つのストロークを正規化して少なくとも１つの正規化されたストロークを生成するステップと、
前記少なくとも１つのストロークの座標のチェビチェフ多項式を計算するステップと、
前記少なくとも１つの正規化したストロークと前記チェビチェフ多項式とを組み合わせてベイズネットを生成するステップと、
前記ベイズネットと、既知のジェスチャについて以前に計算したベイズネットとを比較するステップと、
前記ベイズネットが前記計算したベイズネットの１つと相関するかどうかを判定するステップと、
前記ベイズネットが前記計算したベイズネットの１つと相関する場合、前記少なくとも１つのストロークを、前記計算したベイズネットの前記１つに対応するジェスチャとして処理するステップと
を備えたことを特徴とするジェスチャ判定方法。
【請求項２】
前記少なくとも１つのストロークを単一のポイントストリームに圧縮するステップと、
前記単一のポイントストリームを使用して前記ベイズネットを生成するステップと
をさらに備えたことを特徴とする請求項１に記載のジェスチャ判定方法。
【請求項３】
前記少なくとも１つのストロークの点の入力時間をスケーリングしてスケーリングした時間を生成するステップと、
前記スケーリングした時間を使用して前記ベイズネットを生成するステップと
をさらに備えたことを特徴とする請求項１に記載のジェスチャ判定方法。
【請求項４】
前記少なくとも１つのストロークのストローク屈曲と継続時間とを計算するステップと、
前記スケーリングした時間を前記ベイズネットで使用するステップと
をさらに備えたことを特徴とする請求項３に記載のジェスチャ判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、グラフィカルユーザインタフェース(ＧＵＩ)を制御する装置および方法を対象としたジェスチャ判定方法及び記録媒体に関する。より詳細には、本発明は、スタイラスベースの入力システムを使用しジェスチャに関連する機能を実行することにより、ユーザが行うジェスチャの認識に係るジェスチャ判定方法、データ構造、記録媒体及びシステムに関する。
【背景技術】
【０００２】
典型的なコンピュータシステム、特にMicrosoft WINDOWS(登録商標)などグラフィカルユーザインタフェース(ＧＵＩ)システムを使用するコンピュータシステムは、テキストを入力するキーボードなど１つまたは複数の分離した入力装置と、ユーザインタフェースを駆動する１つまたは複数のボタンを備えたマウスなどのポインティングデバイスからのユーザ入力を受け付けるために最適化されている。Microsoft WINDOWS(登録商標)で実行するように設計されたソフトウェアアプリケーションは、実質的にすべて同じ方式でユーザ入力を受け付けるように最適化されている。例えば、多くのアプリケーションでは、状況に応じたコマンドメニューを表示するために右のマウスボタン(「右クリック」)を広く利用している。ユーザは、マウスの左ボタンをクリックする(「左クリック」)、あるいはマウスの左または右のボタンをクリックし、ボタンを押したままマウスを移動する(「左クリックドラッグ」あるいは「右クリックドラッグ」)など、マウスを使用して他のジェスチャを生成することもできる。例えば、Opera Software社のOpera（商標）６.０における右クリックドラッグのマウスコマンドを参照されたい。
【０００３】
環境によっては、マウスが使用できない、あるいは望ましくない場合がある。例えばデジタイザタブレット環境では、主要な入力装置はスタイラスであることが考えられる。スタイラスは、コンピューティング環境にパッドと紙のような感覚を与えようとするものであるが、現在のシステムには制限がある。例えば、グラフィカルユーザインタフェースでのスタイラスの使用は、選択のために各種の項目に軽く触れることに限られている。例えば、Palm OS（商標）３.xおよび４.xオペレーティングシステムを使用するPalmシリーズの製品を考えられたい。こうしたシステムでも、スタイラスによる対話方法は、挿入点や選択した１つまたは複数の単語から離れたデジタイザの専用部分でテキスト入力およびコマンドを入力するという点で煩雑である。さらに、スタイラスベースの入力環境では、ユーザは、一般には画面の上部または下部にあるリモートツールバーからツールや動作を選択することを絶えず強いられる。ユーザは文字をタイプすることができ、あるいはデジタイザは手書きを認識することができるが、こうした動作にはそれぞれ、キーボードの入力モードを選択し、デジタイザの所定部分に書き込むことが必要とされる。要は、新規に入力を行うたびにユーザが行いたいことをコンピュータに知らせる必要があるために、スタイラスベースのコンピューティングは平均的なユーザにとっては難しいものになっている。
【０００４】
ある動作では新規のテキストを作成する(例えば、テキストを書く、タイプする、ペーストするなど)。他の動作ではテキストを修正する(既存テキストのハイライト表示、インキング（inking）、消去、切り取り、および移動)。後者の修正動作を行うのに伴う問題は、一般にはこれらの動作が大半のユーザにとって主要な動作モードではないことである。すなわち、ユーザはテキストを修正することができるが、この動作は、新しいテキストを作成するというより主要な動作に従属するものである。したがって、ユーザは、最終的にテキスト(あるいはその他の内容)の修正動作からテキスト作成環境に移行する必要がある。従来の移行には、ツールバーのボタンの切り替えがある。ボタンには、消去ボタン、ハイライトボタンなどがある。トグルボタンは、ユーザに対して動作モードとモードの状態をどのように選択するかを明らかにする(トグルボタンが押されているか否かにより)が、ユーザが絶えず一般には表示画面の中心部分から、画面の端に近接して配置された(トグルボタンが収められた)リモートのツールバーに移動し、再度中心部分に戻るという点で、様々なモードを変更する際には使用するのが厄介なことがある。１つまたは複数の補助的モードから再度主要な動作モードに切り替えるためにこうした反復的な動きと注意力を用いる必要があることにより、ユーザの注意力が活発に読み書きを行うことからモードの切り替えという実際的な作業にそらされてしまう。
【０００５】
以前のペンベースのコンピューティングシステムは、ペンの動きをコマンドとして解釈できるようにすることにより上述の問題に対処しようと試みた。例えば、Go社のPenpoint（商標）を考えられたい。しかし、Penpointは、主としてテキストへのペンベースのコマンドを可能にするものであった。手書き入力については、Penpointでは規定されたペンの動き(この場合にはペン先の同一線上での右、左、右への動き。平らな「z」とも呼ばれる)により以前の入力を直ちに削除することだけが可能であった。Penpointは、ページ上の任意の場所で無作為に手書きインクを編集する機能は提供しなかった。ペンベースの入力システムを主流のコンピューティング環境の一部とするためには、ページ上の任意の場所で手書きテキストを編集する自由度をサポートすることが必要である。
【０００６】
最後に、手書きインクは一般には非インクアプリケーションとの互換性がない。例えば、テキスト入力を必要とするアプリケーションを使用すると、ユーザはインクをテキストに変換しなければならない。Palm OSでは、挿入点を配置し、画面下部の専用のテキスト入力部分に移動し、専用のテキスト入力部分にテキストを入力し、そして挿入点に戻る必要がある。これらの動作はすぐに厄介になり、ユーザはスタイラスベースの入力システムを用いるレガシーアプリケーションを使用しなくなってしまう。
【０００７】
いくつかの文献に上述のような従来の技術に関連した技術内容が開示されている（例えば、特許文献１〜３参照）。
【０００８】
【特許文献１】米国特許第５、５１７、５７８号明細書
【特許文献２】米国特許第５、９８６、６６５号明細書
【特許文献３】米国特許第５、９２０、６９４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
【００１０】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、手書きジェスチャを取り込み実施するシステムおよびプロセスを実現するジェスチャ判定方法及び記録媒体を提供することにある。
【課題を解決するための手段】
【００１１】
このような目的を達成するために、本発明のジェスチャ判定方法は、ページを閲覧するユーザからジェスチャを受け取ったかどうかを判定するジェスチャ判定方法であって、前記ページ上に置かれたストロークを受け取るステップと、前記ストロークがジェスチャを含むかどうかを判定するステップと、前記ジェスチャが受け取られたことをシステムまたはアプリケーションに通知するステップとを備えたことを特徴とする。
【００１２】
また、上記目的を達成するために、本発明のジェスチャ判定方法は、ページを閲覧するユーザからジェスチャを受け取ったかどうかを判定するジェスチャ判定方法であって、前記ページ上に置かれたストロークを受け取るステップと、前記ページ上に前記ストロークをレンダリングするステップと、前記ストロークをアプリケーションに送るステップと、前記ストロークがジェスチャを含むかどうかを前記アプリケーション中で判定するステップと、前記ジェスチャを処理するステップとを備えたことを特徴とする。
【００１３】
また、上記目的を達成するために、本発明のデータ構造は、ジェスチャを記憶するデータ構造であって、前記ジェスチャの識別と関連付けられた第１の部分と、前記ジェスチャの正規化された形状を記述する第２の部分と、前記ジェスチャのアクション範囲を記述する第３の部分と、デフォルトアクション又はコントロールメソッド若しくはプロパティを記述する第４の部分とを備えたことを特徴とする。
【００１４】
また、上記目的を達成するために、本発明のジェスチャ判定方法は、受け取ったストロークがジェスチャであるかどうかを判定するジェスチャ判定方法であって、少なくとも１つのストロークを正規化して少なくとも１つの正規化されたストロークを生成するステップと、前記少なくとも１つのストロークの座標のチェビチェフ多項式を計算するステップと、前記少なくとも１つの正規化したストロークと前記チェビチェフ多項式とを組み合わせてベイズネットを生成するステップと、前記ベイズネットと、既知のジェスチャについて以前に計算したベイズネットとを比較するステップと、前記ベイズネットが前記計算したベイズネットの１つと相関するかどうかを判定するステップと、前記ベイズネットが前記計算したベイズネットの１つと相関する場合、前記少なくとも１つのストロークを、前記計算したベイズネットの前記１つに対応するジェスチャとして処理するステップとを備えたことを特徴とする。
【００１５】
また、上記目的を達成するために、本発明の記録媒体は、ページを閲覧するユーザからジェスチャを受け取ったかどうかを判定するプログラムを含むコンピュータ読み取り可能な記録媒体であって、前記プログラムは、前記ページ上に置かれたストロークを受け取るステップと、前記ストロークがジェスチャを含むかどうかを判定するステップと、前記ジェスチャを受け取ったことをシステムまたはアプリケーションに通知するステップとを実行する命令を備えたことを特徴とする。
【００１６】
また、上記目的を達成するために、本発明のシステムは、ジェスチャを実施するシステムであって、ページを表示するディスプレイと関連付けられたデジタイザと、スタイラスと、プロセッサとを備え、前記ページ上の任意の位置で受け取ったストロークに応答して、前記スタイラスと前記デジタイザとの対話により、前記プロセッサは、前記ストロークがジェスチャを含むかどうかを判定し、前記ジェスチャのアクション範囲と前記ジェスチャのメソッドまたはプロパティとを使用して前記ジェスチャを処理することを特徴とする。
【００１７】
本発明の態様は、表示面にユーザが直接書き込むことを可能にし、上述の問題の１つまたは複数を解決するペンベースのコンピューティングシステムを対象とする。本発明の態様は、ユーザがジェスチャを使用して、これらに限定しないが手書きインクおよびテキストを含む表示された情報を編集することを可能にする。さらに、いくつかの態様ではジェスチャベースのナビゲーションを使用することができる。
【００１８】
本発明の上記およびその他の特徴は、以下の好適実施形態の詳細な説明を考察することにより明らかになろう。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
【００２０】
上記の本発明の要約ならびに以下の好適実施形態の詳細な説明は、添付図面と併せて読むことによりさらに深く理解される。添付図面は例として含めるものであり、特許請求する本発明に関する制限として含めるのではない。
【００２１】
以下の説明は、読者を助けるために、用語、一般的なコンピューティングプラットフォーム、ジェスチャ、ジェスチャの認識、ジェスチャの実行、およびデータ構造の項目に分けている。
【００２２】
用語
本開示の各種態様の理解のために次の用語を定義する。代替となる定義が当技術分野で知られる場合があり、以下の定義を補足する可能性がある。
【００２３】
インク（ink）-１つまたは複数のストロークの連続またはセット。ストロークの連続には、順序付けられた形のストロークを含めることができる。この連続は、取り込まれた時間、またはストロークがページのどこに現れるかによって順序をつけることができる。この他の順序も可能である。ストロークのセットは、ストロークの連続や順序づけされていないストローク、あるいはその任意の組合せを含むことができる。さらに、ストロークは、そのストロークを構成するすべての点を含むか、あるいはストロークの方向の変化を示す点だけに限定することもでき、またこれらの組合せも可能である。
【００２４】
ストローク-取り込まれた点の連続またはセット。レンダリングする際、点の連続は線でつなぐことができる。ストロークは複数の方式で表すことができる。例えば、ストロークは、点と、次の点の方向の１つまたは複数のベクトルとして表すことができる。さらに、ストロークは、点および/またはベクトルの単純なリスト(あるいは配列やテーブル)を指すこともできる。要は、ストロークは、基礎となる点の表現および/またはそれらの点を何でつなぐかに関係なく、インクに関連する点および/または線分のいずれの表現も包含するものとする。
【００２５】
点-空間内の位置を定義する情報。点は、例えば捕捉空間(例えばデジタイザ上の点)および/または表示空間(表示装置の点またはピクセル)に相対的に定義することができる。点は各種の既知の技術を使用して表すことができ、これには、デカルト座標(X,Y)、極座標(r,Θ)、３次元座標((X,Y,Z)、(r,Θ,p)、(X,Y,t(tは時間))、(r,Θ,t))、４次元座標((X,Y,Z,t)および(r,Θ,p,t))）、および当技術分野で知られるその他の技術が含まれる。
【００２６】
レンダリング-画面への表示、印刷、別のファイル形式への出力を問わず、グラフィック(および/またはインク)の表示法を決定するプロセス。
【００２７】
ワード-インクワードとも呼ぶ。ワードは１つまたは複数のストロークである。ワード中の各ストロークは、そのストロークと関連付けられた位置を有する。あるいは、ワードは、テキストワード、または辞書で定義可能な語を形成する文字のグループと定義することもできる。ワードは、句読点、文字および数字およびその他の記号の組合せも含むことができ、複合語を含むこともできる。
【００２８】
フロー-順番に互いと関連付けられた１つまたは複数のワード。例えば、ページに書き込まれた手書きのメモはそれぞれフローを表すことができる。各メモに追加すると、ワードを含むフローに１つまたは複数のワードが追加される。フロー中の各ワードは、フロー中に関連付けられた位置を有する。
【００２９】
スペース-表示内容がない範囲。ある例では、フロー中のワード間の分離を指す場合、スペースはストロークを持たない別個のワードと考えることができる。ページ上の空白範囲を指す場合には、スペースはフローによって所有されないページ上の範囲を意味することができる。
【００３０】
ジェスチャ-コマンドとして解釈できる描画またはその他のインク。
【００３１】
一般的なコンピューティングプラットフォーム
図１は、本発明の各種態様を実施するのに使用することのできる従来の汎用デジタルコンピューティング環境の略図である。図１で、コンピュータ１００は、プロセッサ１１０、システムメモリ１２０、およびシステムメモリを含む各種のシステムコンポーネントをプロセッサ１１０に結合するシステムバス１３０を含む。システムバス１３０は、各種のバスアーキテクチャのうち任意のものを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種のバス構造のいずれでもよい。システムメモリ１２０は、読み取り専用メモリ(ＲＯＭ)１４０およびランダムアクセスメモリ(ＲＡＭ)１５０を含む。
【００３２】
起動時などにコンピュータ１００内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム(ＢＩＯＳ)１６０は、ＲＯＭ１４０に記憶される。コンピュータ１００はまた、ハードディスク(図示せず)との読み取りおよび書き込みを行うハードディスクドライブ１７０、リブ−バル磁気ディスク１９０との読み取りおよび書き込みを行う磁気ディスクドライブ１８０、およびＣＤ ＲＯＭやその他の光学媒体などのリブ−バル光ディスク１９９との読み取りおよび書き込みを行う光ディスクドライブ１９１も含む。ハードディスクドライブ１７０、磁気ディスクドライブ１８０、および光ディスクドライブ１９１はそれぞれ、ハードディスクドライブインタフェース１９２、磁気ディスクドライブインタフェース１９３、および光ディスクドライブインタフェース１９４によってシステムバス１３０に接続される。これらのドライブとそれに関連付けられたコンピュータ可読媒体は、パーソナルコンピュータ１００のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性の記憶を提供する。当業者には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(ＲＡＭ)、読み取り専用メモリ(ＲＯＭ)など、コンピュータからアクセスできる、データの記憶が可能な他種のコンピュータ可読媒体もこの例示的動作環境で使用できることが理解されよう。
【００３３】
ハードディスクドライブ１７０、磁気ディスク１９０、光ディスク１９９、ＲＯＭ１４０、またはＲＡＭ１５０には、オペレーティングシステム１９５ａ、１９５ｂ、１つまたは複数のアプリケーションプログラム１９６ａ、１９６ｂ、他のプログラムモジュール１９７ａ、１９７ｂ、およびプログラムデータ１９８ａ、１９８ｂを含む複数のプログラムモジュールを記憶することができる。ユーザは、キーボード１０１およびポインティングデバイス１０２などの入力装置を通じてコマンドや情報をコンピュータ１００に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどがある。上記およびその他の入力装置は、システムバスに結合されたシリアルポートインタフェース１０６を通じてプロセッサ１１０に接続することが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(ＵＳＢ)など他のインタフェースによって接続してもよい。さらに、これらのデバイスは、適切なインタフェース(図示せず)を介してシステムバス１３０に直接結合することが可能である。モニタ１０７またはその他のタイプの表示装置も、ビデオアダプタ１０８などのインタフェースを介してシステムバス１３０に接続される。モニタに加えて、パーソナルコンピュータは通例スピーカやプリンタなど他の周辺出力装置(図示せず)を含む。好適実施形態では、手書きの入力をデジタル式に取り込むためにペンデジタイザ１６５およびそれに付属するペンまたはスタイラス１６６が提供される。図ではペンデジタイザ１６５とプロセッサ１１０を直接接続しているが、実際には、当技術分野で知られるように、ペンデジタイザ１６５は、シリアルポート、パラレルポート、またはその他のインタフェース、およびシステムバス１３０を介してプロセッサ１１０に結合することが可能である。さらに、図ではデジタイザ１６５がモニタ１０７と分離しているが、デジタイザ１６５の使用可能な入力範囲は、モニタ１０７の表示範囲と同一の範囲であることが好ましい。さらに、デジタイザ１６５はモニタ１０７に組み込むか、あるいはモニタ１０７を覆う、あるいはその他の形でモニタ１０７に付属する別個のデバイスとして存在してもよい。
【００３４】
コンピュータ１００は、リモートコンピュータ１０９など１つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１０９は、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードでよく、また図１にはメモリ記憶装置１１１しか示していないが、通例は上記でコンピュータ１００に関して挙げた要素の多くまたはすべてを含む。図１に示す論理接続には、構内ネットワーク(ＬＡＮ)１１２と広域ネットワーク(ＷＡＮ)１１３が含まれる。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネットおよびインターネットに一般的に見られる。
【００３５】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１００はネットワークインタフェースまたはアダプタ１１４を通じてローカルネットワーク１１２に接続される。ＷＡＮネットワーキング環境で使用する場合、パーソナルコンピュータ１００は通例、インターネットなどの広域ネットワーク１１３を介して通信を確立するためのモデム１１５またはその他の手段を含む。モデム１１５は内蔵式でも外付け式でもよく、シリアルポートインタフェース１０６を介してシステムバス１３０に接続される。ネットワーク環境では、パーソナルコンピュータ１００に関して図に示すプログラムモジュールまたはその部分をリモートのメモリ記憶装置に記憶することができる。
【００３６】
図のネットワーク接続は例示的なもので、コンピュータ間に通信リンクを確立するには他の技術を使用できることが認識されよう。ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、イーサネット(登録商標)、ＦＴＰ（file transfer protocol）、ＨＴＴＰ（HyperText Transport Protocol）など各種のよく知られるプロトコルのいずれかの存在が想定され、システムはクライアント-サーバ構成で動作してユーザがウェブベースサーバからウェブページを取り出すことを可能にする。各種の従来のウェブブラウザのいずれを使用しても、ウェブページ上のデータを表示し、操作することができる。
【００３７】
図２は、本発明の各種態様に従って使用できるスタイラスベースのコンピュータ処理システム(タブレットＰＣとも称する)２０１を示す。図２のコンピュータには、図１のシステムの特徴、サブシステム、および機能のいずれかあるいはすべてを含めることができる。タブレットＰＣ２０１は、例えばデジタル化フラットパネルディスプレイ、好ましくは液晶ディスプレイ(ＬＣＤ)画面である大型の表示面２０２を含み、ここに複数のウィンドウ２０３が表示される。ユーザは、スタイラス２０４を使用して、デジタル化表示範囲上で選択、ハイライト表示、および書き込みを行うことができる。適切なデジタル化表示パネルの例には、MutohやWacomのペンデジタイザなど電磁気式のペンデジタイザがある。例えば光学式デジタイザなど他タイプのペンデジタイザも使用することができる。タブレットＰＣ２０１は、データ操作、テキスト入力、および表計算やワードプロセッシングプログラムなど従来のコンピュータアプリケーションタスクを実行するために、スタイラス２０４を使用してつけられたマークを解釈する。
【００３８】
スタイラスは、その選択機能を増強するためにボタンまたはその他の機能を備えることもできる。一実施形態では、スタイラスを「鉛筆」あるいは「ペン」として実施することができ、この場合は一端が書き込み用の部分を構成し、もう一端が「消しゴム」としての端部を構成し、この部分をディスプレイの上で動かすと表示の一部を消去するように指示する。マウス、トラックボールなど他種の入力装置も使用することができる。さらに、タッチセンシティブ型または近接反応型ディスプレイの表示画像の一部を選択または指示するためにユーザ自身の指を使用することができる。したがって、本発明で使用する用語「ユーザ入力装置」は幅広い定義を有し、よく知られる入力装置の数多くの変形を包含するものとする。
【００３９】
領域２０５は、ユーザがスタイラスをデジタイザのどこに接触させるかを決定することを可能にするフィードバック領域または接触領域を示す。別の実施形態では、領域２０５は、本発明のホールド状態に達すると視覚的なフィードバックを提供する。
【００４０】
ジェスチャ
ジェスチャは、一般に、手書きインク以上の何かを意図したスタイラスの動きと定義することができる。特定のインクエレメントを描画する２つの方式が存在し、２番目の方式が１番目の方式よりも複雑である場合は、２番目の方式をジェスチャであると考える、あるいは仮定することが好ましい場合がある。例えば、スタイラスが一点を中心に物理的に約３６０度移動する単一の円は、描かれた円、「ｏ」の文字、あるいは数字のゼロと考えることができるのに対し、それ自体の上をなぞる二重の円はジェスチャと考えることができる。他のジェスチャも使用することができる。
【００４１】
図３は、ジェスチャを実施するプロセスを示し、ここでは一般的な動作環境からジェスチャにアクセスすることができる(３０１)。ユーザは、３０１でインクを追加するか、またはディスプレイの何らかの側面を制御する(例えば見る、スクロールするなど)ことができる。３０２でジェスチャが作成される(かつ/または認識される)と、３０３でそれを実行することができる。実行を終えると、システムは経路３０４で３０１に戻ることにより、さらに入力を受け付ける状態になる。
【００４２】
あるいは、ジェスチャの実行は後の時間まで保留しておくこともできる。この代替実施形態では、ジェスチャはインクとしてレンダリングされ、ジェスチャは後に実行する。実行はそのアプリケーションで行っても、実行のために別のアプリケーションに渡してもよい。
【００４３】
ジェスチャは様々な位置で使用することができる。ジェスチャは表示面で行うことができる。また、ジェスチャは空中で行うこともできる(一部のペンベースのコンピューティングシステムでは誘導技術を使用してペンを検知し、ペンの高さを知ることができる)。ジェスチャは、ボタンまたは同様のコントロールの上で行うことができる(例えばヘルプを求めるチェックマーク)。ジェスチャを使用して、テキストおよび/またはインクを編集することができる。ジェスチャは、ディスプレイの専用の(固定のまたは一時的な)入力部分で行うことができる。
【００４４】
ジェスチャは次の特徴の１つまたは複数を有することができる:デフォルトアクションあるいはコントロールメソッドまたはプロパティ、アクション範囲、位置、サイズ/広がり、および形状。この他の特徴もこのリストに組み込むことができる。
【００４５】
デフォルトアクションあるいはコントロールメソッドまたはプロパティ
各ジェスチャには、１つまたは複数のデフォルトアクションを関連付けることができる。例えば、タップ（軽い接触；tap）には一般的な選択アクションを関連付けることができる。タップの前に他のタップがない場合、そのタップはワードの選択にすることができる。タップの前に１回タップがあった場合は、後のタップは文章の選択にすることができる。タップの前に２回タップがあった場合は、最後のタップで段落全体を選択することができる。同様に、４回タップがあった場合は、最後のタップですべてを選択することができる。
【００４６】
一部の実施形態では、デフォルトアクションをジェスチャのコントロールメソッドまたはコントロールプロパティと呼ぶことがある。ジェスチャのコントロールメソッドまたはプロパティとは、そのジェスチャを実行すると行われること、あるいは影響されることである。例えば、ワードまたは選択部分を太字にするジェスチャのメソッドまたはプロパティは、より太字のフォントあるいは表現になるようにワードまたは選択部分のレンダリングを変更する。また、選択ジェスチャのメソッドまたはプロパティは、表示されたページ上の何かを選択することである。ページは、インク、描画、テキスト、写真、および/またはその他の同様の項目を有する可能性がある。
【００４７】
アクション範囲
ジェスチャのアクション範囲は、そのジェスチャが影響を及ぼす範囲である。例えば、チェックマークが、項目またはボタン、あるいはユーザインタフェースの一部についてのヘルプを求めるジェスチャである場合には、チェックマークのアクション範囲は、チェックマークの曲がった部分の周辺の狭い領域であることが考えられる。したがって、ユーザは、ユーザがヘルプを求める事柄の上にチェックマークのアクション範囲を置くことになる。
【００４８】
実施形態によっては、アクション範囲を範囲から点または点のセットに圧縮することができる。上述のチェックマークの例では、チェックマークを構成する２本の線が交差する点をアクション範囲とすることができる。このような実施形態では、ユーザが各ジェスチャを非常に正確に配置することが可能になる。したがって、例えばジェスチャは単一の点に関連する。これに対してアクション範囲がより広い範囲である場合には、ジェスチャによって効果を生じさせようとする点をスタイラスがわずかに外した場合でも、なお意図するジェスチャが意図する範囲に影響するという点で有用である。例えば、ユーザがボタンの上にチェックマークを配置しようと試みたがわずかにボタンを逸れ、しかしチェックマークの大部分がボタンの上にあった場合には、より広い範囲のアプローチによりなおそのボタンについてのヘルプを要求することができる。
【００４９】
さらなる実施形態では、アクション範囲は、境界ボックスまたは境界ボックスの開始部分とすることができる。例えば、左角括弧選択ジェスチャでは、上部と下部の隅を、選択部分を含む境界ボックスの開始部分とすることが可能である。
【００５０】
ジェスチャのアクション範囲は可変であってよく、またジェスチャの１つまたは複数の属性に基づくことができる。例えば、単一のワードの上に置かれたXは、そのワードの削除をそのジェスチャと関連付けられたアクションとすることができる(この場合、そのジェスチャのアクション範囲は、狭い範囲か、またはXの中心にある単一の点となる)。あるいは、段落の上に描かれた大きなXは、アクション範囲の適用範囲を拡大してその段落全体を包含することができる。このアクション範囲のスケーリングは、これらに限定しないが、ジェスチャを書く速度、デジタイザ表面に対するスタイラスの圧力、スタイラスの角度(ハードウェアによって角度の感知が可能である場合)、表示画面上のジェスチャの位置、および各種の他のインクやジェスチャの角度など画面に表示された他の要素に相対的なジェスチャの位置などを含む他の属性によって調整することができる。
【００５１】
位置
位置は、ジェスチャの別の側面である。位置は、表示画面に相対的に、かつ/またはインクなど画面に表示された別のオブジェクトに相対的に測定することができる。ある場合には、ジェスチャの位置は他の側面に比べて重要性が低い場合がある。別の場合には、ジェスチャの位置が、ジェスチャの特徴の最も重要な特性の１つまたはジェスチャを定義する特性である場合もある。例えば、文章を選択し、次いでその文章から１ワードを削除したい場合、文章と削除しようとするワードとの間に雑にXの削除ジェスチャを配置すると、そのXの位置にどれだけ関連性があったかの解釈に応じて異なる結果になる。１つのアプローチでは、アクション範囲がその選択部分を包含することができ、選択部分を削除するように指示するので、文章が削除される。あるいは、Xは実際には選択部分の上にはなかったという事実、そしてしたがって、Xの位置は、ジェスチャの意図が選択ではなくワードの削除であることを示す。
【００５２】
サイズ/広がり
ジェスチャは、ジェスチャのサイズに基づいて別の特性を有することができる。この情報により、ジェスチャがそれが変更するものに対して様々に異なる効果または広がりを有することが可能になる。例えば、左角括弧は１行分の高さか、あるいは複数行分の高さとすることが可能である。３行分の高さの左角括弧の場合には、２行分の高さの左角括弧よりも広い範囲の選択が意図される。
【００５３】
代替実施形態では、対になったジェスチャ(例えば左と右の選択角括弧)は、左と右の選択角括弧が境界ボックスあるいは選択しようとするテキストフローの開始部と終了部を指定することができるので、サイズに依存するのではなく位置に依存することが可能である。
【００５４】
形状
ジェスチャの形状は、それがカバーする範囲に依存することができる。例えば、高さが３テキスト行分の左角括弧は、高さが１テキスト行分しかない左角括弧とは異なる高さ/幅の比を有することが考えられる。さらに、一部のジェスチャの実際の形状内容はサイズ以外で異なる場合がある。太字または大文字にするためにテキストの下に描かれた波線のジェスチャは、それが長くなるほど線の中により多くの隆起を有する可能性がある。したがって、ジェスチャの認識には、ジェスチャのサイズを単位範囲に正規化することを含めることができる。認識には、形状を照合して、単一のジェスチャ(波線)を繰り返してより広い範囲をカバーしているかどうかを判定することを含めることができる。
【００５５】
ジェスチャの認識
実際のジェスチャがより正確にジェスチャとして認識されるほど好ましい。また、インクを誤ってジェスチャと認識しないことも好ましい。図４は、特定のストロークをジェスチャとして認識し、それらをジェスチャでないストロークと区別する例示的プロセスを示す。
【００５６】
ステップ４０１でストロークを受け取る。ステップ４０３で、システムはジェスチャを受け取ったかどうかを判定する。この判定には、スケーリング、方向の変更、および/または受け取ったストロークがジェスチャであるかどうかを判定する他の動作を含むことができる。一部のストロークは、単独で見た場合にも他のストロークと組み合わせて見た場合にもジェスチャであることが可能なので、システムはステップ４０４で最近のストロークも見ることができる。例えば、段落への軽い接触は、その接触の下にあるワードの選択として作用することができる。２回の軽い接触(システムが、ステップ４０１の現在の接触に加えてステップ４０４で最初の接触を呼び出す必要があることを意味する)では、最初の接触の下にあるワードを含む文章または段落を選択することができる。
【００５７】
ジェスチャを受け取らなかった場合は、４０１で受け取ったストロークをステップ４０２でレンダリングする。あるいは、ステップ４０３でジェスチャではないグループであると判定されるまで複数のストロークのレンダリングを保留しておき、その後ステップ４０２でまとめてレンダリングしてもよい。
【００５８】
ステップ４０３でジェスチャを受け取った場合は、システムにジェスチャの存在が通知される。この通知には、ジェスチャフラグの設定を含むことができる。あるいは、この通知は、ジェスチャと追加情報(次の１つまたは複数を含む:ジェスチャのサイズ、ジェスチャの形状、ジェスチャのアクション範囲、およびコントロールメソッドまたはプロパティ)の送信を含むこともできる。さらに、ステップ４０１でストロークが受け取られたアプリケーションにジェスチャの存在を通知することができる(追加のジェスチャ情報を含む、あるいは含まない)。
【００５９】
代替実施形態では、受け取ると直ちにすべてのストロークをレンダリングして、即時のフィードバックをユーザに提供することができる。この実施形態では、そのジェスチャを形成した１つまたは複数のストロークをステップ４０５で消去することができる。
【００６０】
さらなる実施形態では、ステップ４０６に示すように、ジェスチャと関連付けられたオブジェクトを判定し、システムまたはアプリケーションに提供することができ(ステップ４０７)、システムまたはアプリケーションがそのジェスチャを実行する、あるいはいつ実行するかを決定できるようにする。このオブジェクトは、その上またはその近くにジェスチャを描画することが可能な例えば画面に表示されたオブジェクト(ボタン、テキスト、グラフィック、あるいは任意の他の同様の表示オブジェクト)でよい。例えばジェスチャがチェックマークである場合、オブジェクトはボタンであることが可能であり、チェックマークのジェスチャによりそのボタンとの関連で特定のアクションを行わせることができる。別の例として、オブジェクトがテキストワードであり、ジェスチャがそのワードの上に描かれた大文字のBである場合には、その大文字のBのジェスチャと関連付けられたオブジェクトが太字になる。
【００６１】
図４では、判定すると直ちにジェスチャを実行することができる。図５は、ストロークがジェスチャであることをシステムではなくアプリケーションによって判定する代替実施形態を示す。図５では、最初にストロークを取り込み、その後別の時にジェスチャであるそれらのストロークを実行するというオプションが提供される。図５のプロセスは、例えば、実際に変更を実行する前に文書へのすべての変更を見たいユーザにとって有用である。
【００６２】
ステップ５０１でストロークを受け取る。ステップ５０２でストロークをレンダリングし、ストロークの組合せをアプリケーション５０３に渡す。ステップ５０４で、アプリケーションはその１つまたは複数のストロークを読み取る。ステップ５０５で、アプリケーションは、受け取った１つまたは複数のストロークがジェスチャであるかどうかを判定する。このアプローチでは、システム全体で有効なジェスチャだけではなく、アプリケーション固有のジェスチャを認識できるようにすることができる。
【００６３】
ステップ５０５でジェスチャを受け取らなかった場合、アプリケーションはストロークを処理する(５０６)。ステップ５０５でジェスチャを受け取った場合、アプリケーションはステップ５０７でそのジェスチャを処理する。
【００６４】
図８は、ジェスチャ認識の別の実施形態を示す。ステップ８０１でストロークを受け取る。ステップ８０２でそのストロークを正規化する。これに加えて、ステップ８０２では次に示すステップの任意の１つまたは複数を含む他のステップを実行することができる。
【００６５】
１.表示面とのペンの接触が、接触しているか、接触していないかに応じて(例えば０が下方で１が上方など)受け取った１つまたは複数のストロークを単一のポイントストリームに分解(collapse)する。
【００６６】
２.デジタイザが備える物理的な寸法のデータを使用して、XおよびY座標を所定サイズ(例えば１インチの正方形など)にスケーリングする。一実施形態ではスケーリング情報を破棄することができる。あるいは、将来の使用のためにスケーリング情報を保持してもよい。
【００６７】
３.点の入力時間をスケーリングし、インクを再サンプリングして所定数(例えば２００個)の点を生成する。一実施形態では時間スケール情報を破棄することができる。あるいは将来の使用のために時間スケール情報を保持してもよい。
【００６８】
４.ストロークの屈曲、ストロークの継続時間、ストロークのアスペクト比、終点を結ぶ線分から任意の点までの最大距離、変曲点などを含む追加項目を計算することができる。
【００６９】
５.x、y、およびz座標それぞれについてチェビチェフ多項式を計算する。
【００７０】
６.チェビチェフ多項式、屈曲、スケーリング、継続時間、およびスケールと入力の一部またはすべてを１つまたは複数のベイズネット（Bayes net）に組み合わせる。ジェスチャごとに個別のベイズネットを使用してもよい。
【００７１】
７.処理済みの１つまたは複数のストロークを各ベイズネットに渡し、スコアを得る。閾値を超えるネットを認識する。正確に１つのネットでジェスチャが認識された場合は、そのジェスチャをアプリケーションまたはシステムに渡す。ジェスチャが認識されない場合は、ジェスチャが認識されなかったことを知らせる。
【００７２】
ステップ８０３で、１つまたは複数のストロークがジェスチャであるかどうかを判定する。この判定には、上述のステップ７の照合を含めることができる。ジェスチャである場合には、システムはアクション範囲内のワードまたはストロークを判定し(８０５)、ステップ８０６でアクション範囲内のジェスチャIDとオブジェクトをシステムまたはアプリケーションに送信する。
【００７３】
ジェスチャでない場合は、システムは、ステップ８０４で最大数のストローク(例えば４ストローク)に達しているかどうかを判定する。達していない場合、システムはステップ８０８で次のストロークを受け付ける状態になる。最大数に達している場合、システムは、ステップ８０７で最も早く受け取ったストロークをドロップし、次いでステップ８０８で次のストロークを受け付ける状態になる。
【００７４】
次に、各種の例示的ジェスチャとそれに関連するメソッドまたはプロパティを挙げる。
【００７５】
フォントプロパティの変更-ワード(またはテキストの他の部分)を太字にするには、そのワードまたはテキストの他部分の上に大文字のBを描く。ワードをイタリック体にするには大文字のIをワードの上に描き、下線を引くにはUを、二重の下線にはDUを、上線にはOVを、通常の書体にはNを描く。この他のプロパティ変更も同様に実現することができる。ジェスチャ認識のいくつかの実施形態は、ストローク相互の並置の判定を含むことができる。この場合は、ストロークをワードの上に書くことにより、ジェスチャが生じたシステムまたはアプリケーションを補助することができる。
【００７６】
改行-右下の鍵括弧は、改行、キャリッジリターン、新しい段落などのジェスチャと解釈することができる。右上の鍵括弧は、その反対を実行することができる。
【００７７】
切り取り/コピー/ペースト-Xは切り取りに使用することができ、Cまたは円で囲んだXはコピーに使用することができ、カレット（脱字符号；caret）はペーストに使用することができる。二重のカレットは、ペーストスペシャルに使用することができる。
【００７８】
選択-左および右の角括弧は選択部分の定義に使用することができる。あるいは、左角括弧によりデフォルトでワードを選択する。さらなる代替では、左/右の角括弧を繰り返すことにより、必要に応じて選択部分を調整する。矢印のジェスチャで精密な(一度に一文字ずつ)調整を行うことができる。中括弧（curly braces）により、非連続的な選択をすることができる。
【００７９】
テキスト/リスト/描画のグループ化-選択部分の上で段落のジェスチャを行うと、そのインクがテキストにまとめられ、インクのフローが再編成される(リフロー(reflow)とも称する)。あるいは、セクションのジェスチャで、それを描画またはリストに変える。これは、リストの場合にも使用することができる(例えばLのジェスチャ)。
【００８０】
ジェスチャは、インターネットのウェブページや表計算を含む他のアプリケーションにも適用することができる。ブラウザで閲覧する文書は、フリック（flick）を様々な方向で使用することにより上および下にスクロールすることができる。複数回のフリックでは、ページまたはファイルを上および下にスクロールする距離を変更することができる。表計算では、縦方向の角括弧により列のセットを定義することができる。(上向きの、または回転させた)カレットは、行および/または列を挿入するジェスチャとすることができる。
【００８１】
図６は各種の異なるジェスチャを示す。下に示す表は、ジェスチャと、各ジェスチャに関連付けることのできる様々な変数を示す。この他の記号、バリエーション、および意味も使用することができる。
【００８２】
【表１】
2008305437.tif 000003
【００８３】
次の表は、可能なジェスチャコントロールを示す。
【００８４】
【表２】
2008305437.tif 000004
【００８５】
ジェスチャの実行
ジェスチャの実行は、アプリケーションがジェスチャで何を行うことになっているか(そのジェスチャのサイズ、形状、および位置により)、および、オペレーティングシステムがそのジェスチャに関する情報をどのようにそのアプリケーションに伝達するかに依存する可能性がある。あるジェスチャはオペレーティングシステムによって解釈され、１つまたは複数のマウスおよび/またはキーボードの動きとしてアプリケーションに渡すことができる。他のジェスチャは、オペレーティングシステムでは解釈することができず、アプリケーションだけによって認識される。この場合そのアプリケーションは、ジェスチャの各種の側面または特性に基づいて、そのジェスチャで何を行うかを判定する必要がある。さらに、ジェスチャの解釈アプリケーションを使用して、所与の１つまたは複数のジェスチャを全く理解しないオペレーティングシステムを用いる、ジェスチャ非対応アプリケーションとのインタフェースをとることができる。
【００８６】
データ構造
図７は、ジェスチャを表すのに使用することのできるデータ構造７０１の一実施形態の一例を示す。配列、リンクされたリストなどを含むこの他のデータ構造も使用することができる。セクション７０２は、ジェスチャの一般的な仕様に関連する。セクション７０３は、削除のジェスチャに関連する。セクション７０４は、選択開始のジェスチャに関連する。
【００８７】
セクション７０５は、ジェスチャのＩＤ（識別）を含む。ジェスチャのＩＤは当技術分野で知られるユニコード文字とするか、あるいはＧＵＩＤ（Globally Unique IDentifier）にすることができる。セクション７０６は、正規化されたジェスチャの形状を示す。ジェスチャ７０３の場合、正規化された形状は「x」である。ジェスチャ７０４の場合、正規化された形状は「[」である。セクション７０７は、ジェスチャのアクション範囲を含む。例えばジェスチャ７０３のアクション範囲は、そのジェスチャを構成する２本の線の交差点の下に位置する点である。ジェスチャ７０４のアクション範囲は、括弧の右にあるストローク、１つまたは複数のワードである。
【００８８】
セクション７０８は、ジェスチャと関連付けられたコントロールメソッドまたはプロパティを示す。ジェスチャ７０３の場合、関連付けられたコントロールメソッドまたはプロパティは「削除」である。ジェスチャ７０４の場合、関連付けられたコントロールメソッドまたはプロパティは「選択の開始」である。
【００８９】
本発明を実施する例示的なシステムおよび方法を例として示しているが、言うまでもなく、本発明はこれらの実施形態に限定されないことが理解されよう。特に前述の教示に照らして、当業者により変更を加えることができる。例えば、前述の実施形態の各要素は単独で利用することも、他の実施形態の要素と組み合わせて利用することもできる。頭記の特許請求の範囲を使用して本発明を定義したが、本発明は、本明細書に記載した要素およびステップを任意の組合せあるいはサブコンビネーションで含むことを企図することから、この請求の範囲は例示的なものである。したがって、本発明を定義するためには任意数の代替の組合せがあり、それらは、説明、特許請求の範囲、および図面を含む本明細書の１つまたは複数の要素を各種の組合せまたはサブコンビネーションで組み込む。本明細書に照らすと、関連技術の技術者には、本発明の諸態様の代替の組合せは、単独で、または本明細書に定義する１つまたは複数の要素またはステップと組み合わせて、本発明の修正形態あるいは代替形態として、あるいは本発明の一部として利用できることが明らかになろう。本明細書に含まれる記載した本発明の説明は、そのような変形形態および代替形態をすべて包含するものとする。
【００９０】
以上説明したように本発明によれば、手書きジェスチャを取り込み実施するシステムおよびプロセスを実現できる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施形態の各種態様の実施に使用することが可能な例示的な汎用デジタルコンピューティング環境の略図である。
【図２】本発明の実施形態の各種態様により使用することが可能な例示的なタブレットコンピュータとスタイラスの平面図である。
【図３】本発明の実施形態による各種動作モードの例の図である。
【図４】本発明の実施形態によるジェスチャ認識プロセスの例の図である。
【図５】本発明の実施形態によるジェスチャ認識プロセスの例の図である。
【図６】本発明の実施形態で使用できるジェスチャの例の図である。
【図７】本発明の実施形態によるジェスチャとそれに関連付けられたメソッドまたはプロパティのデータ構造の例の図である。
【図８】本発明の実施形態によりジェスチャを識別するのに使用するプロセスの例の図である。
【符号の説明】
【００９２】
１００、１０９  コンピュータ
１０１  キーボード
１０２  ポインティングデバイス
１０６  シリアルポートインタフェース
１０７  モニタ
１０８  ビデオアダプタ
１１０  プロセッサ
１１１  メモリ記憶装置
１１２  ＬＡＮ
１１３  ＷＡＮ
１１４  アダプタ
１１５  モデム
１２０  システムメモリ
１３０  システムバス
１４０  ＲＯＭ
１５０  ＲＡＭ
１６０  ＢＩＯＳ
１６５  ペンデジタイザ
１６６、２０４  スタイラス
１７０  ハードディスクドライブ
１８０  磁気ディスクドライブ
１９０  磁気ディスク
１９１  光ディスクドライブ
１９２  ハードディスクドライブインタフェース
１９３  磁気ディスクドライブインタフェース
１９４  光ディスクドライブインタフェース
１９５ａ、１９５ｂ  オペレーティングシステム
１９６ａ、１９６ｂ、１９６ａ  アプリケーションプログラム
１９７ａ、１９７ｂ  プログラムモジュール
１９８ａ、１９８ｂ  プログラムデータ
１９９  光ディスク
２０１  コンピュータ処理システム(タブレットＰＣ)
２０２  表示面
２０３  ウィンドウ
２０５  領域
３０１  ジェスチャにアクセス
３０２  ジェスチャ作成
３０３  ジェスチャ実行
３０４  リターン
７０１  データ構造
７０２、７０３、７０４、７０５、７０６、７０７、７０８  セクション
【図１】
2008305437.tif 000005
【図２】
2008305437.tif 000006
【図３】
2008305437.tif 000007
【図４】
2008305437.tif 000008
【図５】
2008305437.tif 000009
【図６】
2008305437.tif 000010
【図７】
2008305437.tif 000011
【図８】
2008305437.tif 000012