JP3664571B2 - コンピュータでジェスチャと手書き文字を区別する方法及びシステム - Google Patents
コンピュータでジェスチャと手書き文字を区別する方法及びシステム Download PDFInfo
- Publication number
- JP3664571B2 JP3664571B2 JP14489397A JP14489397A JP3664571B2 JP 3664571 B2 JP3664571 B2 JP 3664571B2 JP 14489397 A JP14489397 A JP 14489397A JP 14489397 A JP14489397 A JP 14489397A JP 3664571 B2 JP3664571 B2 JP 3664571B2
- Authority
- JP
- Japan
- Prior art keywords
- strokes
- stroke
- gesture
- input
- recognition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/333—Preprocessing; Feature extraction
- G06V30/347—Sampling; Contour coding; Stroke extraction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Character Discrimination (AREA)
Description
【発明の属する技術分野】
本発明は、広くはデータ処理システムに関する。本発明は、ユーザがスタイラスを使用してテキスト及びジェスチャ・コマンドとして解釈すべき手書き文字及び記号を入力するような、マルチタスク処理ペン・コンピュータ・システムにおいて具体的に応用されるものである。
【0002】
【従来の技術】
ペン・コンピュータは、入力装置としてスタイラス及びセンサを使用するコンピュータの1種である。ペン・ソフトウェア・サブシステムは、オペレーティング・システムに統合するかまたはオペレーティング・システムの付属物にすることができるが、スタイラス入力をマウス入力コマンド、手書き文字(テキスト)、またはジェスチャと呼ばれる手書き記号として認識するために、ペン入力を処理するものである。通常、ジェスチャは、ウィンドウを開くまたは閉じるなどの機能を呼び出すために使用する。
【0003】
たとえば、OS/2というオペレーティング・システムのペン・サブシステムであるPen for OS/2は、ユーザがグラフィカル・ユーザ・インタフェース(GUI)ウィンドウに文字を直接書き込めるようにするものであり、その文字はその後、認識のためにジェスチャ/手書き文字認識エンジンに送られる。ジェスチャと手書き文字とを区別するデフォルト方法の1つは、そのウィンドウが編集フィールドまたはテキスト入力ウィンドウなど、テキストを受け入れるものではない場合に、手書き形状をジェスチャとして扱うことにより、システムが使用するものである。
【0004】
好ましいことに、ペン・オペレーティング・サブシステムは、コンピュータ・システムによって実行されているすべてのアプリケーションへのペン入力を促進することになり、そのうちのほとんどはスタイラス入力を「認識しない」。現在、典型的なアプリケーション・プログラムは、マウス入力とキーボード入力だけを受け入れるように作成されており、ペン入力によって可能になる機能豊富なプログラミング・インタフェースを認識していない。使いやすさを改善し、良好なヒューマン・ファクタを提供するためには、ペン・サブシステムによってこのようなペン非認識アプリケーションが、ユーザ・インタフェースの観点から、ペンを認識しペンの機能性を利用するアプリケーションのように見え、感じられることは、非常に好ましいことである。
【0005】
Pen for OS/2は、手書き形状をジェスチャ記号としてまたは文字(テキスト)として認識するためのものである。ペンコンピューティングの出現以来、設計者はジェスチャとテキストの両方を正確に認識する認識エンジンの開発に奮闘してきた。数々の改良が実現されてきたが、最新の認識エンジンでも依然としてジェスチャとテキストを区別する際に問題が発生する。これは、一部のジェスチャと英字との形状が似ていることによる。実際には、システムが使用するジェスチャが非常に複雑でユーザフレンドリではないものでない限り、英字及び数字のストロークや形状の範囲のために、有用なジェスチャの多くは既存の英字との類似性をある程度備えることになる。
【0006】
一例として、いずれのペン・オペレーティング・システムも、その有用性のために円のジェスチャをサポートしている。しかし、ワード・プロセッサのウィンドウ上に円を描く場合、システムは、ユーザが1)円のジェスチャを描くのか、2)ゼロを書くのか、3)大文字のOを書くのか、または4)小文字のoを書くのかを判断しなければならない。これと同じ曖昧さは、「フリック・ダウン」ジェスチャと呼ばれる単一のダウン・ストロークにも当てはまる。すなわち、フリック・ダウン・ジェスチャは、英字のlか、英字のIか、または数字の1かということになる。これ以外にも例はあるが、ジェスチャとテキストとを区別する際の難しさを実証するにはこの2つで十分である。
【0007】
上記2つの例の曖昧さは、多くの場合、文字が書かれたコンテキストを調べることによって解決することができる。事実、適切に作成されたペン・アプリケーションは、所与のウィンドウの入力を数字、英字、英数字、またはジェスチャのみに制限することによって、それを解決する場合が多い。認識制約と呼ばれるように、認識エンジンから出力可能な結果を制限すると、認識の正確さが大幅に上昇する。ペン設計者が使用するもう1つの一般的な手法は、英字または数字のどの文字とも似ていないジェスチャ形状のライブラリを構築する方法である。残念ながら、これは、円、ダウン・フリック、脱字記号、左下、X、疑問符などの重要なジェスチャを除去してしまう。このようなジェスチャはいずれも直観的で覚えやすく容易に描けるものなので、これらを除去してしまうと使いやすさが損なわれる恐れがある。Pen For OS/2のユーザは、ヘルプ・ウィンドウを起動するためにどのウィンドウでも疑問符ジェスチャを書き込むことができる。問題は、メモを編集するときに発生する。すなわち、ヘルプ・ポップアップがなくてもユーザがピリオドを疑問符に変更できるかどうかである。Pen for OS/2では、キーボード入力を受け入れるすべてのウィンドウが、ジェスチャとテキストの両方の認識用として使用可能になっている。ペン・サブシステムはたいていアプリケーション環境を認識しないので、コンテキストによってジェスチャとテキストを区別することは非常に難しい。ペン認識アプリケーションでテキストを受け入れないウィンドウではこのような問題は発生しない。というのは、このようなウィンドウはジェスチャ専用認識に制限されているからである。
【0008】
また、大文字を書いた後にピリオドまたは「タップ」を付けることにより英字ジェスチャを描くような26通りの英字ジェスチャをPen For OS/2がサポートしていることも銘記するに値する。このタップは、英字ジェスチャと通常の英字とを区別する特徴である。しかし、場合によっては、このタップが曖昧さを持ち込むこともある。すなわち、それが大文字/小文字とピリオドであるかどうか、ということになる。
【0009】
依然として残っている、重大な使いやすさの問題の1つは、正確に同じ文字であると思われるものを書いた後でユーザが別の結果を得ることもあるという点である。このようにユーザが認識結果を予測または制御できないことによって、フラストレーションのレベルは高くなり、生産性は低下する。残念ながら、より小さいサブセットの文字と記号に厳重に認識を制限するような先行技術の技法は、所与の状況、すなわち、ペン認識アプリケーションになるように適切に設計された場合のみ有効である。ペン認識ではない、一般に使用される汎用アプリケーションでは、先行技術がジェスチャと手書き文字とを予測的に区別できないことはユーザの妨げになっている。
【0010】
本発明は、手書き文字入力からジェスチャ入力を区別するための先行技術の改良策である。
【0011】
【発明が解決しようとする課題】
本発明の一目的は、システムがストローク入力をどのように処理または認識するかをユーザがあらかじめ把握できるようにするための小さい1組の非常に単純な規則をユーザに提示することにある。
【0012】
【課題を解決するための手段】
本発明は、各ストロークが描かれたときにリアルタイムでそのストロークのカウント、サイズ、位置などのストローク特性に関する事前認識分析を行うことにより、認識精度を改善しようとするものである。各ストローク後、1組のストロークには手書き文字またはジェスチャのための重みが付けられる。このシステムでは、ジェスチャと手書き文字を区別するためにジェスチャしきいサイズを使用する。また、このシステムでは、ジェスチャ内のストロークの許容数を把握していることに依存して、この2通りの入力を区別するためにストローク・カウントも使用する。このカウント情報は、ジェスチャと手書き文字との間の1組のストロークに重みを付けるためにストローク・サイズ情報とともに使用することもできる。ストローク・サイズがジェスチャ対テキスト・サイズしきい値を超えると、その結果にはジェスチャのための重みが付けられる。ストローク間の「空白」とストロークの並置を検査することにより、ジェスチャ対テキストの判定を高い精度で行うことができる。
【0013】
本発明の特徴における上記及びその他の目的は、添付図面ならびに以下の説明を参照することにより、より適切に理解されるだろう。
【0014】
【発明の実施の形態】
本発明は、適当なペン入力認識サブシステムを備えた各種のオペレーティング・システム下の様々なコンピュータまたはコンピュータの集合で実行することができる。このコンピュータは、たとえば、パーソナル・コンピュータ、ミニ・コンピュータ、メインフレーム・コンピュータ、またはその他のコンピュータからなる分散ネットワークで動作するコンピュータなどにすることができる。具体的なコンピュータの選択は必要なディスク及びディスク記憶容量によってのみ制限されるが、IBMのPCシリーズのコンピュータは本発明で使用できる可能性が高い。IBMのPCシリーズのコンピュータのさらに詳細については、IBM PC 300/700 Series Hardware Maintenance(資料番号No. S83G-7789-03)及びUser's Handbook IBM PC Series 300 and 700(資料番号No. S83G-9822-00)を参照されたい。IBMでは、ペン入力用に自由スタイラスを備えたThinkPad 750Pを売り出している。また、IBMのパーソナル・コンピュータが動作可能なオペレーティング・システムの1つは、IBMのOS/2 Warp 3.0である。IBMのオペレーティング・システムOS/2 Warp 3.0の詳細については、OS/2 Warp V3 Technical Library(資料番号No. GBOF-7116-00)を参照されたい。前述のように、OS/2は、ペン・サブシステムとしてPen for OS/2 Warp、バージョン1.03、部品番号No. 25H7380を提供しているが、これはIBMから取り寄せることができる。
【0015】
次に添付図面、特に図1をまず参照すると、本発明を実施することができるパーソナル・コンピュータ・システムのハードウェア・ブロック図の全体が参照番号10によって示されている。システム10は、中央演算処理装置(CPU)15とランダム・アクセス・メモリ13とを含むプロセッサ11を含む。システム10は、ハード・ディスク記憶装置17とフロッピー・ディスク装置19という形式の追加メモリも含むことが好ましい。フロッピー・ディスク装置19は、本発明のソフトウェア実施態様を含む、プログラム用のソフトウェアを記録可能なディスケット21を受け入れられるようになっている。また、システム10は、ディスプレイ23、キーボード25、マウス27、ペンまたはスタイラス29を含む、ユーザ・インタフェース・ハードウェア装置も含む。システム10はプリンタ31を含むことが好ましい。
【0016】
タッチ画面の表面に対するスタイラスまたは指の位置の実際の検出は、本発明の範囲に含まれない。本発明を実施するために使用可能なスタイラスの位置を感知するために圧力、赤外線または可視光、音、電磁力または静電力を使用する、当技術分野で既知のタッチ検知装置はいくつかある。さらに、スタイラス及びスタイラス感知装置の動作に関する情報については、本出願人に譲渡され、参照により本明細書に組み込まれる、アラン・タネンバウム(Alan Tannenbaum)他による「Graphical User Interface with Gesture Recognition in a Multi-Application Environment」という名称の米国特許第5252951号を参照されたい。また、スタイラスの動きの感知に関する情報については、本出願人に譲渡され、参照により本明細書に組み込まれる、ジョン・エム・ゼッツ(John M. Zetts)による「Recognizing the Cessation of Motion of a Pointing Device on a Display By Comparing a Group of Signals to an Anchor Point」という名称の米国特許第5404458号を参照されたい。
【0017】
本発明の好ましい実施態様の1つは、前述のように一般的に構成されたコンピュータ・システムのランダム・アクセス・メモリ内に常駐する複数組の命令セットである。コンピュータ・システムが要求するまで、この命令セットは、別のコンピュータ・メモリ、たとえば、ハード・ディスク・ドライブや、最終的にCD−ROM内で使用するための光ディスクなどの取外し可能メモリ、または最終的にフロッピー・ディスク・ドライブ内で使用するためのフロッピー・ディスクに格納することができる。当業者であれば、複数組の命令セットの物理的な格納によって、その上に電気的、磁気的、または化学的にそれが格納される媒体がコンピュータで読取り可能な情報を伝達するようにその媒体が物理的に変化することに留意されたい。命令、記号、文字などに関して本発明を記述する方が便利であるが、これらの用語及び同様の用語はいずれも適切な物理要素に関連するはずであることに留意されたい。さらに、本発明は、区別または判定、あるいはオペレータに関連する可能性のあるその他の用語に関して記述される場合が多い。本発明の一部を形成するような本明細書に記載する動作では、オペレータによるアクションはいずれも望ましいものではない。動作とは、電気信号を処理して他の電気信号を生成するようなマシン動作のことである。
【0018】
次に図2を参照すると、同図には、本発明のペンベース・システムの主要ソフトウェア・システム構成要素の高レベル図が示されている。図2の下部では、ペン29、マウス27、キーボード25からの出力信号がデバイス・ドライバ33に接続されているが、このデバイス・ドライバはそれぞれの装置に低レベルの入出力サポートを提供するモジュールである。デバイス・ドライバ33は事象をシステム待ち行列35に入れる。システム待ち行列35内の事象は、その後、プレゼンテーション・マネージャ37によって処理され、プレゼンテーション・マネージャ37は次にペン事象及びマウス事象を処理のためにペン拡張部39に経路指定する。
【0019】
本発明により構成された典型的なコンピュータ・システムでは、ペン認識アプリケーション41とペン非認識アプリケーション43の両方が動作する。ペン認識アプリケーションは、ペン入力を認識して処理するための固有の能力を備えている。すなわち、その開発者は、ペン入力をサポートするようにアプリケーションを設計している。ペン非認識アプリケーションは、ペン入力を認識するための固有の能力を備えていないものであり、通常、キーボードまたはマウスあるいはその両方の入力を認識して処理するだけである。したがって、オペレーティング・システムのペン拡張部39は、ペン事象をペン認識アプリケーション41に直接経路指定する。しかし、ペン非認識アプリケーション43はペン入力を理解することができないので、システムは互換モジュール45を含む。
【0020】
互換モジュール45は、ペン非認識アプリケーションのためにペン機能を提供するものである。たとえば、ユーザがペン非認識アプリケーションに手書き文字事象を入力した場合、ペン拡張部39はこの事象を互換モジュール45に経路指定し、次に互換モジュール45がすべてのペン・ストロークをジェスチャ手書き文字認識エンジン47に経路指定する。ジェスチャ手書き文字認識エンジン47は、ペン・ストローク事象を処理し、認識結果を互換モジュール45に返す。
【0021】
認識事象がジェスチャである場合、互換モジュール45はそれを認識事象送達サブシステム49に経路指定し、そのサブシステムは、特定のジェスチャに応答してペン非認識アプリケーションでどのアクションを実行すべきかをユーザが判定できるようにセットアップしたプロファイル51にアクセスする。任意で一部のツール53を呼び出して、ペン非認識アプリケーション43上で何らかのアクションを実行することもできる。たとえば、ポップアップ・キーボードと手書き入力パッドは、ペン非認識アプリケーション上で何らかのアクションを実行するかまたはペン非認識アプリケーションに入力を提供するようなツールの例である。互換モジュール45に返された認識結果が手書き文字であると認識された場合、その結果のテキスト・ストリングは適切なペン非認識アプリケーション43に直接経路指定される。
【0022】
ストローク分析
図3は、ストローク・カウントによる好ましい実施例用のジェスチャ・セットを列挙したものである。記号ジェスチャ300、325、335のストローク・カウントは一定であるが、英字ジェスチャ342、353、365、370のストローク・カウントは、どのようにしてユーザがその特定の大文字を書いたかに応じて、いくらか変化する。いずれの記号ジェスチャも4ストローク以上で構成されることはなく、英字ジェスチャは最小で2ストローク、最大で5ストロークを必要とすることが分かるだろう。このようなストローク・カウントの特性は、テキストとジェスチャとを区別する際に考慮されている。「なぐり書き」という用語は、ストローク入力のモーダル期間中にユーザが描いたストロークの集合を意味する。このモーダリティは、3秒間入力を止めるかまたはスタイラスをセンサから持ち上げることによって終了する。好ましい実施例ではいずれのジェスチャも5ストロークを超えないので、なぐり書きが5ストロークを上回る場合、認識結果は必ずテキストになる。当業者であれば、異なる1組のなぐり書きごとに別々の事前認識規則を使用することが容易に分かるだろう。
【0023】
図4は、英数字に対して曖昧なジェスチャ記号を列挙したものである。本発明の一実施例では、ジェスチャとテキスト両方の認識モードを有するウィンドウでこれらのジェスチャを描いた場合、ユーザの通常の手書き文字サイズより大きいジェスチャをユーザが描かない限り、テキスト認識が行われることになる。
【0024】
図5には境界ボックス・スコアの概念を示す。オブジェクト400、405、410、415は、大文字のHとピリオドの書き順を示している。ユーザが各ストロークを描くにつれて、各ストロークに関連する境界ボックスの「分離」が検査される。あるストロークが別のストロークから規定の距離以上離れている場合、そのストロークは「分離」されている。複数のストロークが互いに接触すると、それらの境界ボックスは、オブジェクト420、425、436、430の順に示すように組み合わされる。各ストロークが完了すると、ジェスチャまたはテキストとして、ストローク・カウント、ストローク・サイズ、ストローク分離、ストローク・タイプに基づいて現行のなぐり書きを分類するスコアが与えられる。分類が不確定の場合、「不明」というスコアを与えることができる。図5のH.は、不明401として始まり、テキスト402及び403に移行する。最終ストロークでは、タップ408によって英字ジェスチャの可能性がなくなるので、不明404としてスコアが付けられる。
【0025】
好ましい一実施例では、なぐり書きに不明というスコアを与えると、そのなぐり書きは認識のためにジェスチャ認識エンジンとテキスト認識エンジンの両方に送られる。認識エンジンは、最良テキスト一致用に1つと最良一致ジェスチャ用に1つという2つの結果を生成し、テキスト結果を1次認識結果にする。1次としてのジェスチャ結果を備えたHタップ・ジェスチャをユーザが作成するためには、Hを含むストロークをジェスチャしきい値より大きく描く必要がある。ジェスチャしきい値の設定は別の発明なので、ジェスチャしきい値の項で後述する。
【0026】
図5の第2の例では、ジェスチャしきい値480を超える大きいストロークで「lbs」と書かれているので、最初の2つのストローク450及び456はジェスチャ451及び452としてスコアが付けられる。しかし、最後のストローク462はジェスチャしきい値を超えないので、スコアはテキスト453に変更される。最後のストローク462はタップではないので、このなぐり書きは英字ジェスチャにはならず、3ストローク・ジェスチャ335を検査すると、3つのストロークはいずれも3ストローク・ジェスチャと見なせるように大きくなければならないことが分かる。これは、いずれの場合もユーザは大きく書くことを禁じられていないことを実証するものである。
【0027】
図6及び図7は、ジェスチャしきい値より大きく描くことにより、ユーザが認識結果を制御する方法をさらに示すものである。ウィンドウ481内の疑問符482は、ピリオドを置き換えることにより、この疑問文の句読点エラーを訂正するためのものである。これは小さく書かれているので、疑問符文字485が生成される。より大きいストローク487を使用して後で描き直すと、本発明はそれにジェスチャとしてのスコアを付けるが、これは実行され、その結果、アプリケーションのヘルプ・ウィンドウ489内に表示される。
【0028】
図8及び図9は、線ありフォント・サイズを設定するためのエンドユーザ・インタフェースを示している。フォント・サイズを設定することにより、ユーザは行手書き入力ウィンドウで使用する行間隔を設定する。ユーザが設定する間隔は、ユーザの通常の手書き文字サイズを適切に示すものである。高さと幅は50%と25%までそれぞれ拡大される。というのは、罫線なしウィンドウに書き込む場合、ユーザの手書き文字を制限する線が一切ないので、手書き文字が通常より大きくなる場合が多いからである。ジェスチャしきい値を設定する際の線ありフォント・サイズの使い方については、ジェスチャしきい値の項で以下に詳述する。
【0029】
図10は、報告すべき認識事象がある場合にペン・サブシステムによって構築され、ターゲット・アプリケーションに送られる、認識結果データ構造を示している。認識処理手順については図16に詳しく示す。このデータ構造は1次結果600と代替結果610のセクションに分割され、アプリケーションはいずれの認識結果でも自由に機能することができるが、推奨されるアクションは、アプリケーションが1次結果を使用することである。というのは、システムがその結果の方が高いと評価したからである。1次及び代替認識結果タイプ・データ・フィールドは、事前認識プロセスの結果に応じて、ジェスチャと手書き文字かまたは手書き文字とジェスチャでそれぞれ記入される。テキスト・ストリングまたはジェスチャ認識データ・フィールドは、そのセクションの結果タイプに応じて各セクションで記入される。なぐり書きポインタは、そのなぐり書きを構成する1組のストロークに関するハンドルである。
【0030】
図11は、矩形の対向する隅に位置する2つの直角座標(x左、y下)と(x右、y上)を調整することにより、矩形を拡大する方法を理解するのに役立つものである。この場合、(x左、y下)は、上方ストローク用の矩形の起点でもある。図14に関連して以下に詳述するように、ストロークを受け取ると、そのストロークの上下の左端及び右端の範囲の境界を示すために境界ボックスが作成される。図24〜27に関連して以下に詳述するように、この境界ボックスは、ストロークの「分離」をテストするために使用する。境界ボックスは、合計0.04インチになるようにボックスの両側に0.02インチずつ加えることによって「拡大」される。2つのストロークの境界ボックスが交差する場合、これらは分離ストロークではないので、手書き文字ではなくジェスチャを示すものである。テキストは水平に書かれる傾向があるので、分離ストロークは手書き文字を示すことになる。
【0031】
本発明を効果的にするために、本出願人はタップ・ストロークのサイズを縮小した。先行技術のタップ・サイズ810を図12に示す。ペン・タップは、マウス・ボタンのクリックに似ており、選択やウィンドウ・ナビゲーション中に頻繁に使用される。大きいタップ・サイズを定義することにより、ユーザは、タップ中に少量の間違った動きをしても許される。タップ・サイズを拡大すると、ユーザは少々雑にタップを行えるようになり、迅速にタップすることも容易になる(迅速タップは小さいストロークを発生する傾向がある)。しかし、タップ・サイズを大きくすると、コンマ、引用符、アポストロフィなどの小さい文字はいずれもタップのように見え始めるという副作用がある。ユーザによっては、「o」や「e」などの小文字にタップ・ストロークとしてのタグが付けられるほど、手書き文字が小さいユーザもいる。タップを正確に区別することは本発明の要件の1つなので、本発明では、認識モードがテキストを含む場合にタップ・サイズを縮小する方法を取り入れている。タップ・サイズの縮小によって、ユーザはもっと注意深くタップしなければならなくなるが、その結果、iの点を打ち、ピリオド、コロン、セミコロンを入力する際に注意するので、テキスト認識を向上させる効果がある。
【0032】
図12の最小ジェスチャ・サイズ800またはジェスチャしきい値は、通常、0.156インチであり、非常に小さいストロークをシステムがジェスチャとして解釈しないようにするためにシステムが必要とするものである。選択などのためにスタイラスでタップする場合、ユーザは、持ち上げる前にわずかにペンの先をスライドさせることが非常に多い。ペンのスリップは故意ではなかったものの、結果的にストロークがタップより大きくなることが多く、その場合、システムはそれをタップとして解釈せず、むしろジェスチャ及びテキスト認識エンジンに送られる小さいストロークとして解釈する。この問題は、ディジタイザ上に滑りやすい表面を備えたペン・コンピュータでは特に一般的なものである。このようないわゆる「マイクロ・ジェスチャ」は問題が多いので、最小ジェスチャ・サイズが課せられている。
【0033】
図13は、ユーザがスタイラスで触れたことをペン・サブシステムが検出したときに呼び出される論理の詳細を示している。ステップ900では、システムがすでに書込みモードに入っているかどうかを確認するために検査が行われる。書込みモードに入っていない場合、ステップ905で着地メッセージがアプリケーションに送られ、着地事象をそれに通知し、どのようにその事象を処理すべきかをアプリケーションが指定できるようにする。このメッセージの処理中、アプリケーションは認識のモードを指定することができる。メッセージの送信後、ステップ910では、アプリケーションが認識モードを設定したかどうかを確認するためのテストが行われる。設定していない場合、ステップ915では、着地ウィンドウ用の適切な認識モードを決定するためのルーチンが呼び出される。次にプロセスは、図15に詳細を示す一連のテストに移行し、ウィンドウがテキスト入力専用か、ジェスチャ入力専用か、またはテキスト入力とジェスチャ入力が可能かを判定する。図13に示すプロセスに戻ると、ステップ930では、着地ウィンドウですべての認識が不能になっているかどうかを確認するためのテストが行われる。不能になっている場合、システムは、ステップ940で単に着地事象をマウス・ボタン事象として処理し、ステップ950で終了する。
【0034】
そうではない場合、システムは、ステップ935でストローク・カウントをクリアし、ステップ960で第1のストロークの第1の点として着地座標を保管し、ステップ970及び980でストローク境界ボックスを初期設定することにより、入力ストロークの準備を行う。次にルーチンはステップ990で終了し、その後のスタイラス入力を待つ。
【0035】
図14は、スタイラスがディジタル化センサと接触している間にスタイラスの動きが検出されるたびに呼び出されるペン運動ルーチンを示している。新しい各座標を受け取ると、その座標は、現行のストローク境界ボックス外にあるかどうかを確認するために検査される。ステップ1000〜1070に示す動作は、座標のX値をボックスの左端及び右端の値と比較し、座標のY値をボックスの一番上及び一番下の値と比較するプロセスの詳細を示している。ストロークがその外側にずれ続けると、境界ボックスが調整される。
【0036】
ステップ1000では、座標のX値がボックスの左境界の外側にあるかどうかを判定するためにテストが行われる。システムが書込みモード1002になっていない場合、ユーザが書込み1003を開始したかどうかを判定するために、スタイラスの動きが初期着地点から監視される。その動きが十分な長さ、通常は0.060インチのものである場合、ユーザは書込みを開始したと見なされ、システムは書込みモード1004に入る。その場合、ステップ1010で境界が座標のX値に設定される。ステップ1020では、座標のX値がボックスの右境界の外側にあるかどうかを判定するためにテストが行われる。外側にある場合、ステップ1030で境界が座標のX値に設定される。ステップ1040のテストは、座標のY値がボックスの下境界の外側にあるかどうかを判定するものである。外側にある場合、ステップ1050で境界が座標のY値に設定される。座標のY値がボックスの上境界の外側にあるかどうかというテストは、ステップ1060で行われる。これが真である場合、ステップ1070で境界が座標のY値に設定される。このプロセスはステップ1080で終了する。
【0037】
図15には、ウィンドウの認識モードがテキスト専用か(ステップ1115)、ジェスチャとテキストか(ステップ1130)、ジェスチャ専用か(ステップ1155)のいずれにするべきかを判定し、ウィンドウの認識モードを設定する一連のテストが示されている。ウィンドウがテキスト入力またはジェスチャ入力あるいはその両方のいずれを受け入れるかを判定するために使用可能な基準の1つは、ユーザがエンドユーザ・インタフェースを介して所与の認識モードを規定したかどうかである。実際の入力に使用するウィンドウは、すべて認識が不能になっている。これは、流れ図にプロセス・ステップ1160として示されているが、代替実施例では判断ブロックにすることもできる。次に、ステップ1110、ステップ1135、またはステップ1150で認識モードが適切に設定される。しかし、タップによって区別される英字ジェスチャを使用可能な好ましい実施例でテキスト認識が可能になっている場合、ステップ1125または1145で許容タップ・サイズも縮小される。タップのサイズを縮小すると、システムはより容易にタップと小さい小文字とを区別できるようになると、本出願人は判断している。プロセスはステップ1170で復帰する。
【0038】
図16は、認識結果を処理する論理を示している。ステップ1200でテストするようにジェスチャ認識とテキスト認識の両方が行われ、ステップ1205でテストするように境界ボックス・ストアがジェスチャである場合、ステップ1210で1次結果がジェスチャに設定される。代替結果はステップ1220でテキストに設定される。これに対して、境界ボックス・スコアが手書き文字である、すなわち、ジェスチャではない場合、ステップ1215で1次結果がテキストに設定され、ステップ1225で代替結果がジェスチャに設定される。図10に関連して前述したように、認識結果データ構造がターゲット・アプリケーションに送られる。ステップ1230で認識結果がジェスチャ専用である場合、ステップ1235で1次結果がジェスチャになり、ステップ1240で代替結果がヌルになる。そうではない場合、ステップ1245で1次結果がテキストに設定され、ステップ1250で代替結果がヌルに設定される。ステップ1255では、新たに構築した認識結果ブロックを含むWM_RESULTメッセージがアプリケーションに送られ、その後、ステップ1265でアプリケーション応答が処理される。プロセスはステップ1270で復帰する。
【0039】
ターゲット・アプリケーションからの応答を処理するためのプロセスは図17に示す。ステップ1310では、アプリケーションが認識結果を処理したかどうかを確認するためのテストが行われる。処理していない場合、ステップ1320で、ペン・サブシステムによる1次結果または代替結果の処理をアプリケーションが必要としているかどうかを判定するためにアプリケーション応答が検査される。デフォルトでは、ステップ1330で1次結果が処理されるが、その現行環境にとって代替結果の方が適しているとアプリケーションが判定した場合、アプリケーションはデフォルト挙動を指定変更し、ステップ1340で代替結果を処理するように指定することもできる。ステップ1350で結果がテキストである場合、キーボードによって生成された場合と同様に文字が現れるように、ステップ1360でテキスト・ストリングがターゲット・アプリケーションに送られる。そうではない場合、ステップ1370でジェスチャ・コマンドが実行される。ステップ1310のテストに応じてプロセスが結果を処理できた場合、システムはステップ1380で復帰し、それ以上のアクションは一切行われない。
【0040】
図18には、書込みタイムアウトを設定するためのプロセスが示されている。背景としては、ユーザが書込み入力を完了したときにシステムがそれを検出できるように、ユーザが1つのストロークを完了するたびに書込みタイマが始動する。書込みを続行するためにユーザがスタイラスでもう一度着地した場合、書込みタイマは取り消され、システムは現行のストロークの集合に新しいストロークを付加する。タイマが時間切れになると、それは、ユーザが休止し、したがって、書込み入力を完了したことを示す。書込みタイムアウトには3.0秒という値を使用する。というのは、大量のテキストを入力するときにユーザがウィンドウの一方の側から反対側に移動するのに2.5秒かかることがあることがテストによって分かっているからである。1つまたは2つのストローク・ジェスチャが認識され実行されるまで待つには3秒の書込みタイムアウトでは長すぎるので、別のジェスチャ・タイムアウト値が維持されている。このジェスチャ・タイムアウトは0.9秒である。通常、認識モードがジェスチャとテキストである場合、システムはそれより長い待機期間を使用しなければならない。というのは、ユーザがジェスチャ入力中なのかまたは手書き入力中なのかが明白ではないからである。
【0041】
次に図18を参照すると、書込みタイムアウト値とジェスチャ・タイムアウト値の両方について、ステップ1400とステップ1402でそれぞれ問合せが行われる。ステップ1404でテストしたように、ストローク・カウントが6未満である場合、書込みタイムアウトは認識モードに応じて設定される。ステップ1405でモードがジェスチャである場合、ステップ1410でジェスチャ・タイムアウト値が使用される。ステップ1415でモードがテキストである場合、ステップ1420で書込みタイムアウトが使用される。ステップ1425は、認識モードがテキストとジェスチャの混合であるかどうかを判定する。混合ではない場合、ステップ1430で書込みタイムアウトが使用される。ステップ1425で判定したように、モードが混合である場合、境界ボックス・スコアに基づいて判断が行われる。ステップ1435で境界ボックス・スコアがジェスチャである場合、ステップ1440でジェスチャ・タイムアウトが使用される。ステップ1445で境界ボックス・スコアが不明である場合、ステップ1450でジェスチャ・タイムアウトに500ミリ秒を加えた値に等しいタイマ値が使用される。この余分な0.5秒により、ユーザは、テキストを書き込んでいる場合に別の単語を開始するのに十分な時間が与えられる。ユーザがテキストを書き込んでいない場合、この余分な時間は、わずかなジェスチャ認識遅延を追加するだけである。そうではない場合、スコアはテキストになり、ステップ1455で書込みタイムアウトが使用される。ステップ1404で判定したように、ストローク・カウントが5を上回る場合、デフォルトとして完全な3.0秒値を使用するような書込みタイムアウトにするための調整は一切行われれない。このように境界ボックス・スコアに基づいて書込みタイムアウトを動的に設定する方法により、ユーザ・インタフェースの応答性は高くなり、ユーザは一連のジェスチャ・コマンドを迅速に連続して実行することができる。
【0042】
ジェスチャまたはテキスト文字の後、ユーザは、タッチ画面からスタイラスを持ち上げる。離昇事象の検出時に行われるプロセスについては図19に詳細に示す。離昇後、ステップ1500でストローク・カウントが増分される。ステップ1501では、着地時に設定したタップ・サイズを使用して、それがタップであるかどうかを確認するためにストロークが検査される。次にステップ1502で現行の境界ボックスが処理され、ストロークの集合を進行中のテキストまたはジェスチャとして分類する。
【0043】
ステップ1504では、これが第1のストロークであるかどうかを判定するためにテストが行われる。ステップ1505で判定したように、このストロークがタップである場合、ユーザはステップ1530でマウス・エミュレーションを必要とし、システムはステップ1555で復帰する。第1のストロークがタップではない場合、ステップ1510で最小ジェスチャ・サイズと照らし合わせてストロークの長さが検査される。この最小ジェスチャ・サイズについては、図12に関連して前述した通りである。好ましい一実施例の最小ジェスチャ・サイズは、通常、0.156インチ程度であり、ペン・サブシステムでは、非常に小さいストロークがシステムによってジェスチャとして解釈されないようにすることが必要である。第1のストロークがジェスチャしきい値未満であり、ステップ1515で現行の認識モードがジェスチャである場合、ステップ1530でマウス・エミュレーション・プロセスが行われる。そうではない場合、ステップ1520で認識モードがテキストとジェスチャの両方であれば、ステップ1525で認識モードがテキスト専用に変更される。というのは、最小サイズ未満のストロークでジェスチャを開始することができないからである。次に、ステップ1540でストロークの集合に現行ストロークが追加されるが、これは、この場合、第1のストロークである。ステップ1545では、図18に関連して前述したように書込みタイムアウトを調整するためのサブルーチンが呼び出される。書込みタイムアウトの調整後、ステップ1550でシステムは書込みタイムアウトを設定し監視する。次に、ステップ1555でプロセスが終了する。
【0044】
この時点で、ユーザは単一ストロークを描いている。ユーザがもう一度スタイラスで着地する場合、図13に戻ると、ステップ900でシステムはすでに書込みモードになっているので、ステップ960で新しい着地点がもう一度保管され、ステップ970及び980で境界ボックスが再初期設定される。新しい点が受け取られると境界ボックスが更新され、最終的に離昇が行われる。図19に示すように、離昇処理中は、ステップ1500でタップの有無が検査され、ステップ1502で境界ボックスが処理される。
【0045】
ストロークの集合を処理するためのプロセスについては、図21、図22、図23に詳細に示し、後で説明する。図19は、ステップ1540で「なぐり書き」の集合に各ストロークが追加されたときの各ストロークごとのプロセスを示している。5つのストロークを受け取った後、その結果は、好ましい実施例で1組のジェスチャが与えられた場合にジェスチャにはなりえず、境界ボックスの処理と書込みタイムアウトの調整が終了する。最終的に、ユーザは書込みを停止するので、書込み事象の終了を処理しなければならない。
【0046】
書込み事象の終了のためのプロセスについては、図20に関連して以下に説明する。まず、ステップ1600でストロークの集合のすべてについて「インキ抜き」を行う。これは、スタイラスの経路が表示されなくなることを意味する。ステップ1605では、システムが書込みモードから抜け出し、ストロークの集合を終了する。
【0047】
次に、ステップ1610、1630、1640で現行の認識モードが、ジェスチャか、テキストか、ジェスチャとテキストかがそれぞれテストされる。現行の認識モードに応じて、ステップ1620またはステップ1650でジェスチャまたはテキスト認識エンジンが呼び出され、関連の認識を実行する。
【0048】
ステップ1640で判定したように、ジェスチャとテキスト両方の認識モードである場合、ステップ1655で描かれたストロークが5ストロークを上回るかどうかを確認するために、まずストローク・カウントが検査される。上回る場合、このストロークはテキストに違いないので、ジェスチャ認識エンジンは迂回され、ステップ1670でテキスト専用認識が行われる。ステップ1655でカウントが5以下である場合、境界ボックス・スコアがテストされる。ステップ1660でスコアがジェスチャでも不明でもない場合、もう一度ジェスチャ認識が迂回され、ステップ1670でテキスト専用認識が行われる。このような場合、境界ボックス・スコアは、コンピュータの使用上集中的なジェスチャ認識プロセスを除去することにより、認識プロセスの速度を上げる働きをする。ステップ1660で境界ボックス・スコアがジェスチャまたは不明である場合、ステップ1665及び1670のジェスチャ認識とテキスト認識の両方がそれぞれ行われる。当業者であれば、境界ボックス・スコアがジェスチャである場合、手書き文字認識を回避できることが分かるだろうが、本出願人の経験によれば、速度の上昇は代替としてテキスト入力を廃棄する可能性に値しないものである。ステップ1680では認識エンジンからの結果が処理される。プロセスはステップ1690で復帰する。
【0049】
図21、図22、図23は、「なぐり書き」またはストロークの集合のうちの最初の5ストロークのそれぞれを処理する論理の流れを示す図である。好ましい実施例では、6ストローク以上で構成されるジェスチャ形状がないので、ステップ1700でテストした6ストロークの収集後、境界ボックス処理は一切行われない。プロセスはステップ1705で復帰する。次に、1710でx右からx左を引き、1715でy上からy下を引くことにより、それぞれ境界ボックスの幅と高さの計算が行われる。境界ボックスの幅と高さの両方は、1720でジェスチャしきい値の幅及び高さと照らし合わせて検査される。幅と高さの両方は、ステップ1720でジェスチャしきい値のX値及びY値と照らし合わせて検査される。このプロセスについては、図28に関連して以下に詳述する。
【0050】
現行の境界ボックスがジェスチャしきい値を超える場合、ステップ1725及び1727でテストしたように、現行ストロークがなぐり書きの第1のストロークであるかどうかに応じて、大ストローク・カウントはステップ1735で1に設定されるか、またはステップ1730で増分される。1720で境界ボックスがジェスチャしきい値より小さく、1727で現行ストロークがなぐり書きの第1のストロークである場合、大ストローク・カウントは1733で0に設定される。
【0051】
ストロークをサイズについて検査した後、ステップ1740でそれが手書き文字を示す分離ストロークであるかどうかを判定するためにさらに分析が行われる。分離ルーチンの説明については、図24、図25、図26に関連して以下に示す。この分離ルーチンは、なぐり書きの後続ストロークが処理された後に続く。第1のストロークの場合、ステップ1745のテストは真になる。というのは、これが第1のストロークであり、図22に示すプロセス・ステップに移行するからである。
【0052】
図21では、ステップ1720で境界ボックスのサイズがジェスチャのX/Yしきい値と比較され、そのサイズがしきい値を超える場合、ステップ1730で大ストローク・カウンタが増分される。ステップ1740では、第2のストロークが第1のストロークから分離しているかどうかを判定するために、分離ルーチンの検査が呼び出される。分離テスト・プロセスを理解するためには、図24、図25、図26に関する説明を参照されたい。
【0053】
分離テスト・ルーチン後、プロセスはステップ1745に復帰し、そこで現行ストロークが第1のストロークであるかどうかを判定するための検査が行われる。第1のストロークである場合、プロセスは図22のAに移行する。好ましい実施例では、ステップ1750でストローク2〜5について境界ボックス・スコアが必ずテキストに事前設定される。これは、故意ではない一部のジェスチャ・コマンドの結果から回復するより、ウィンドウに文字を挿入したことから回復する方がずっと容易であるからである。また、ユーザには、ストロークをジェスチャとして認識されたことを確認する、すなわち、ジェスチャしきい値より大きいストロークを描く確実な方法がある。テスト1755では、ストローク・カウントが2であるかどうかが判定される。2である場合、プロセスは図22のBに移行する。テスト1765では、ストローク・カウントが3であるかどうかが判定される。3である場合、プロセスは図23のCに移行する。3ではない場合、プロセスは図23のDに移行する。
【0054】
図22を参照すると、ステップ1810では大ストローク・カウントが検査される。第1のストロークが大きい場合、ステップ1815で境界ボックスにはジェスチャとしてのスコアが付けられる。そうではない場合、ステップ1820で不明としてのスコアが付けられる。小さいサイズまたは平均サイズの単一ストロークのみの場合、ユーザが意図していたのがジェスチャであるかまたは手書き文字であるかは、同程度の可能性になる。次にステップ1830でこのサブルーチンは離昇ルーチンに復帰する。
【0055】
図21のステップ1755によって判定したように第2のストロークの場合、ステップ1860でそれがタップであるかどうかを判定するためにそのストロークがテストされる。英字ジェスチャを使用する好ましい実施例では、最後のストロークとしてのタップはジェスチャの特徴の1つである。26通りの英字ジェスチャに加え、チェックマーク・タップ、上向き脱字記号タップ、疑問符がある。ストロークがタップではない場合、ステップ1875で境界ボックス・スコアがテキストに設定される。ステップ1885では、両方のストロークがジェスチャしきい値より大きいかどうかを立証するためのテストが行われる。大きい場合、そのなぐり書きは2ストローク・ジェスチャであり、境界ボックス・スコアはジェスチャに設定される。これは、第2のストロークがタップではない場合は2つのストロークがほぼ同じ長さでなければならないという2ストローク・ジェスチャ要件を前提とする。ステップ1860で現行ストロークがタップである場合、ステップ1870で大ストローク・カウントが非ゼロ値であるかどうかがテストされる。第1のストロークが大きい場合、ステップ1880でジェスチャというスコアが付けられる。プロセスはステップ1895で呼出しルーチンに復帰する。
【0056】
第3、第4、第5のストロークに関する境界ボックス処理については図23に示す。分離矩形カウントが考慮されているので、この処理はより複雑になっている。図3には、3ストローク・ジェスチャが列挙されている。好ましい実施例では、英字ジェスチャではない3ストローク・ジェスチャが6通り存在するが、システムでは、このような6通りのジェスチャを作成する場合に3つのストロークがいずれも大きくなければならない。第3のストロークがタップである場合、分離を検査する必要性が効力を発揮する。というのは、26通りの英字ジェスチャのうちの13通りは2つのストロークと1つのタップで描くことができ、英字ジェスチャとテキストとが曖昧であるからである。2ストローク処理と同様に、ステップ1910でストロークがタップであるかどうかが検査され、現行ストロークがタップではない場合、ステップ1905で境界ボックス・スコアがテキストに設定される。ステップ1925では、3つのストロークがいずれも大きいかどうかを判定するために大ストローク・カウントがテストされる。いずれも大きい場合、ステップ1935でスコアがジェスチャに設定される。ステップ1910で現行ストロークがタップである場合、ステップ1920で分離ボックス・カウントの値が2またはそれ以上であるかどうかがテストされる。カウントが2またはそれ以上である場合、ステップ1915でスコアがテキストに設定される。そうではない場合、曖昧さのため、ステップ1930で境界ボックス・スコアが不明に設定される。ステップ1940における大ストローク・カウントの後続テストは、曖昧さを解決するために役立つものである。少なくとも1つの大ストロークがある場合、ステップ1935で境界ボックス・スコアがジェスチャに変更される。プロセスは離昇ルーチンに復帰する。
【0057】
図23のD入口点は、第4と第5のストロークの場合を処理するものである。好ましい実施例では、6通りの4ストローク・ジェスチャが考えられ、いずれもタップ・ストロークで終了する。したがって、この実施例では、ステップ1960で判定したように第4のストロークがタップではない場合、ステップ1955でテキストという最終スコアが与えられる。ステップ1970で第4のストロークがタップであり、2つ以上の分離矩形が存在する場合、このストロークは確実にテキストなので、ステップ1965でそのようにスコアが付けられる。そうではない場合、ステップ1980で境界ボックス・スコアが不明に設定される。第4のストロークの場合、大ストロークについて通常行われるテストは、ステップ1975で曖昧さが存在し、境界ボックス・スコアが不明である場合のみ行われる。少なくとも1つの大ストロークが存在する場合、ステップ1985で境界ボックス・スコアがジェスチャに変更される。ただし、ユーザが非常に大きく書いても、第4のストロークがタップでなければ、そのストロークはテキストとしてのスコアが付けられることに留意されたい。第5のストロークについても同じことが当てはまる。好ましい実施例では、5ストローク・ジェスチャは1つだけであり、それはE.(Eタップ)ジェスチャである。プロセスは、図19に関連して前述した離昇プロセスに復帰する。
【0058】
図24、図25、図26は、分離テスト・プロセスの詳細を示している。分離テストは、なぐり書きの最初の4ストロークについて行われることが好ましい。ストローク・カウントが4を上回る場合、ステップ2000のテストにより、ユーザはステップ2005で離昇プロセスに復帰する。好ましい実施例で定義されている5ストローク・ジェスチャは1つだけ、すなわち、E.(Eタップ)ジェスチャだけなので、それをテキストと区別するために第5のストロークの境界ボックスを処理する必要はない。以下に詳述する分離テスト・プロセスを要約すると、最初の4ストロークは、水平寸法についてのみ、分離または間隔が検査される。これは、英語や多くの言語が水平に書かれるからである。テキストは水平に広がる特徴を備えているが、ジェスチャにはない。この規則のあまり重要ではない例外としてはアップ及びダウン・フリック・ジェスチャがあり、これらはわずかな水平変位で描くこともできるが、この技法に対して悪い影響は一切及ぼさない。分離または水平間隔のテストを行う場合、分離とは、ディスプレイの垂直軸全体に沿って少なくとも0.040インチだけ分離したストロークであると定義される。0.040インチの距離はディスプレイ上での2〜4ペルと同等である。現在、売り出されているペン・ディジタイザは、通常、200〜150ドット/インチの解像度を有し、ストローク間の空間距離を非常に正確に決定することができる。間隔が0.04未満のストロークが接触していると見なされる理由は、ユーザの手書き文字の粗雑さに対処するためである。「t」または「H」に横線を入れる場合、その横棒は垂直ストロークの前から始まり、H.(Hタップ)ジェスチャが「lt.」または「It.」になる場合が多い。
【0059】
最初の4ストロークを描くと、それらは分離矩形によって表された別々のエンティティに分割される。新しいストロークを1つずつ処理するごとに、そのストロークの境界ボックスは、それが接触している他のストロークの境界ボックスと結合される。4つのストロークを描いた場合、分離矩形の最小数は1になるはずであり、4つの境界ボックスがいずれも接触していない場合には最大数が4になるはずである。新しいストロークがそれと接触する他のストロークと結合された後、それらが依然として分離しているかどうかを確認するために分離矩形がテストされる。分離矩形が拡大して他の分離矩形と接触すると、それらは結合され、分離矩形の数が低減される。
【0060】
この論理を検査すると、プロセスは、ステップ2010でストローク間隔値または0.040インチと等しい量だけ境界ボックスを水平に拡大することから始まる。この拡大プロセスについては、図11に関連して前述した通りである。この矩形は、矩形の対向する隅に位置する2つの直角座標(x左、y下)と(x右、y上)を調整することにより、拡大される。好ましい一実施例の(x左、y下)は矩形の起点でもある。
【0061】
ステップ2015で第1のストロークを受け取ると、それはステップ2030で分離矩形として保管される。分離矩形のカウントはステップ2050で1に設定される。次にステップ2020で第2の境界ボックスが処理され、ステップ2035でそれらが交差するかどうかを確認するために境界ボックスと第1の分離矩形がテストされる。交差する場合、ステップ2055で2つの矩形を合体または結合するために共通システム機能を呼び出すことにより、それらが結合される。第2の境界ボックスが分離している場合、ステップ2040で第2の分離矩形が形成され、ステップ2045で分離矩形の数が増分される。
【0062】
ステップ2025のテストは、テストすべき第3のストロークがあるかどうかを判定するものである。ある場合、図25で第3の境界ボックスが処理される。既存の分離矩形が1つだけ存在する場合、ステップ2105で2つが交差するかどうかを確認するためにテストが行われる。交差する場合、それらはステップ2125で結合される。そうではない場合、ステップ2115で第2の分離矩形が形成される。ステップ2135では分離矩形の数が増分される。
【0063】
ステップ2100で複数の分離矩形が存在し、ステップ2110で第3の境界ボックスがいずれか1つと交差していない場合、ステップ2120で第3の分離矩形が形成される。ステップ2130では分離矩形のカウントが増分される。ステップ2140で第3の矩形が既存の矩形の1つと交差する場合、それらが接触していれば、ステップ2145で第3の矩形が第1の分離矩形と結合される。また、ステップ2150でそれらが接触していれば、ステップ2155で第3の矩形が第2の分離矩形と結合される。次に、第3の境界ボックスの処理後、ステップ2160でそれらが接触しているかどうかを確認するために、残りの2つの分離矩形がテストされる。ステップ2160でそれらの分離矩形が接触していると判定された場合、ステップ2165でそれらが結合される。分離矩形のカウントはステップ2170で減分される。
【0064】
第4の境界ボックスを処理する場合には、同様の方法を使用する。図26では、3つの分離矩形が存在する場合に多数のテストを行わなければならないので、個別ステップの代わりにソフトウェア・ループを使用して、この処理を示している。図26では、ステップ2200で第4の境界ボックスが既存の分離矩形のいずれかと交差しない場合、ステップ2220で境界ボックスが新しい分離矩形として保管され、ステップ2230で分離矩形のカウントが増分される。ステップ2200で第4の境界ボックスが1つまたは複数の分離矩形と交差する場合、ステップ2210からステップ2240までのループに入り、ステップ2240で現行の境界ボックスはステップ2235でそれが接触する各分離矩形と結合される。すべての既存分離矩形と照らし合わせて境界ボックスをテストした後、別のループに入り、各分離矩形が他の分離矩形の1つと接触しているかどうかを確認するために、ステップ2260で各分離矩形が検査される。接触している場合、ステップ2265で2つの接触矩形が結合される。ステップ2265で2つの分離矩形が1つに結合されるたびに、ステップ2270で分離矩形のカウントが減分される。ルーチンはステップ2275で復帰する。
【0065】
図27には、境界ボックスを水平方向に拡大するためのプロセスが示されている。これは、ステップ2310で境界ボックスの左側から値の半分を引き、ステップ2320で右側に半分を加えることによって実施される。境界ボックスを拡大すると、それらが0.040インチというストローク空間値より大きい距離だけ分離されているかどうかをテストすることが容易になる。境界ボックスを同等に拡大するために、2320でストローク空間の半分、すなわち、0.020インチが境界ボックスのx右値に加えられる。境界ボックスの左側を拡大するためには、2310で境界ボックスのx左値から0.020を引けるように負の方向に移動することが必要である。両側を0.020インチずつ拡大することにより、2つの隣接境界ボックスが接触しない場合、それらは元々0.040インチを上回る距離だけ分離されていたことを意味する。ステップ2330で境界ボックスが依然としてディスプレイの境界内にあることを確認するためにx左値が検査される。ステップ2340でそれが負になる場合、境界ボックスの左境界が0に設定される。次に、ステップ2350でy下値が0に設定され、ステップ2360でy上が最大センサ高に設定され、矩形の交差及び合体を行うのがより容易になる。ただし、好ましい実施例では、垂直間隔は検査されず、重要ではないことに留意されたい。これは、ユーザが水平方向にのみ書くことを想定しているからである。
【0066】
ジェスチャしきい値
ジェスチャ記号とテキストとの曖昧さの解決を支援するため、また認識プロセスに対するユーザの制御権を強化するため、なぐり書きが6ストローク未満のストロークを含む場合でしかもストロークが大きく描かれた場合、本発明により、そのなぐり書きは強制的にジェスチャとして認識される。本発明は、ジェスチャ認識結果を強制するのに十分な大きさのものとしてストロークを分類するのに使用するジェスチャしきいサイズを設定するための手段をユーザに提供するものである。ユーザがこのしきいサイズを設定し、それに対する認識を維持することを覚えると、ジェスチャ/テキスト誤認識の発生数は大幅に減少する。
【0067】
ユーザが自分の特定の手書き文字サイズについてジェスチャしきい値をカストマイズしないことを選んだ場合、システムは、線ありまたは罫線付き手書き入力パッドの設定がユーザの手書き文字のサイズを正確に反映すると想定して、その設定を取り出すことができる。
【0068】
たとえば、ユーザが行間隔を1/2インチに設定した場合、ジェスチャしきい値はこのサイズの150%または3/4インチとして計算されるはずである。ジェスチャしきい値を正確に設定することは重要なことである。というのは、しきい値がユーザの実際の手書き文字サイズに近すぎる場合、テキスト文字がジェスチャ・コマンドとして認識される可能性があるからである。
【0069】
このようなジェスチャ・コマンドの結果、使用中の現行アプリケーション上で不要かつ有害なアクションが実行される恐れがある。テキストの編集中または作成中に擬似ジェスチャ・コマンドが発生することは非常にいらだたしいことである。これに対して、ジェスチャしきい値が大きすぎる場合、ユーザは、アプリケーションの特定のタスクに集中しようとする際に不自然かつ破壊的なほどジェスチャ記号を誇張して描かざるを得ない。ジェスチャを必要以上にかなり大きく描かなければならないことによる欠点の1つは、各ジェスチャに関連してホット・スポットが発生することであり、ジェスチャを入力する場合、ジェスチャ・コマンドのターゲットになる予定のオブジェクトの上にホット・スポットを正確に配置することが必要になることが多い。不自然に大きいジェスチャを描くと、ホット・スポットの配置精度が低下し、ジェスチャ・コマンドのターゲットミスが発生する。過剰に長いストロークも、ストロークの処理と認識プロセス中の両方で追加の計算負荷を発生する。ユーザが迅速かつ正確にジェスチャを入力できることが理想的である。
【0070】
本発明は、手書き文字認識を監視し、その結果から平均手書き文字サイズを計算することにより、ジェスチャしきい値のサイズ決定を自動化しようとするものである。このプロセスを自動化すると、ユーザはそれを調整する義務から解放され、ユーザが自然にしかも一貫して書くことを覚えると、自動化した方法によりより厳重なしきい値が使用可能になる。
【0071】
図28は、システム初期設定中にジェスチャしきい値を設定する方法を示している。ステップ2400でユーザがしきいサイズを手作業で設定する場合、幅と高さはユーザ・プロファイルから問い合わせ、それらが格納されている測定単位であるインチからセンサ・ドットに変換される。ジェスチャしきい値のサイズは、手書き文字のサイズが人によって変動することを考慮するためにユーザが設定可能なものである。ジェスチャしきい値のサイズはインチで指定され、システム・ブート時及びいつでもユーザはジェスチャしきいサイズを変更できる。センサ・ドットではなくインチを使用してしきいサイズを指定すると、センサ・タイプまたはサイズとは無関係に、確実にジェスチャしきい値が同じサイズになる。
【0072】
ユーザがエンドユーザ・インタフェースを介してジェスチャしきいサイズを設定しなかった場合、ステップ2405で線あり手書き入力に使用するフォントの幅と高さに関する問合せを行う。ステップ2415及び2425では、フォントの幅と高さに小さい係数1.5と1.25を掛け、それらを拡大する。図8及び図9は、線ありフォント・サイズを設定するために使用可能なエンドユーザ・インタフェースの1つを示している。フォント・サイズを設定することにより、ユーザは行手書き入力ウィンドウで使用する行間隔を設定する。ユーザが設定した間隔は、ユーザの通常の手書き文字サイズを適切に示すものである。高さと幅はそれぞれ50%と25%分だけ拡大する。というのは、罫線なしウィンドウに書き込む場合、ユーザの手書き文字を制限する線がまったくないので、手書き文字が通常より大きくなることが多いからである。しきいサイズが得られると、ステップ2430でそれがセンサ・ドットの単位で保管される。次に、ユーザがジェスチャしきい値の自動設定を可能にしたかどうかを確認するために、ステップ2435のテストが行われる。可能にした場合、システムは、ステップ2440でユーザの手書き文字サイズを動的に決定するための環境をセットアップする。ただし、上下のループによる書込み高さの特徴的な変動を反映するためにジェスチャしきい値を垂直方向により大きく設定することは有用であることに留意されたい。
【0073】
本発明を要約すると、任意の人の手書き文字の平均高さは、認識された各単語の周囲に描かれた境界ボックスの高さを測定することによって計算される。ペン・サブシステムがなぐり書きを認識エンジンに渡す場合、それは単にストロークの集合であり、そのそれぞれに専用の境界ボックスが付いている。認識プロセス中に、ストロークは英字にグループ化され、次に英字は単語にグループ化される。認識エンジンは、認識したテキスト・ストリングと各認識単語用の境界ボックス構造とを含む結果バッファを返す。本発明が結果構造内の各境界ボックスを処理する際に、各単語の英字と大文字/小文字の区別が検査される。小文字ループまたはアポストロフィまたは引用符などの句読点マークによって曲解された単語はフィルタで除去され、残りの単語境界ボックスが平均化されるが、まだ検証されていない。本発明は、ユーザがその認識の正確さに満足しているかどうかを確認するためにテキスト・ストリングがアプリケーションに送達されるまで待つ。ユーザが自分が書いたものを確実に把握した後、テキスト・ストリングに認識エラーがある場合、本発明はどの単語が誤認識されたのかを判定し、その単語に関連する境界ボックスが廃棄される。誤認識された単語は、ユーザが訂正対話または直接編集によって訂正したときに本発明に把握される。変更されたものを把握するために、テキストに対して訂正前後の比較が行われる。本発明では訂正後の単語を得ることができるが、以下の3つの理由によりそれを無視することにしている。第1に、多くの訂正は単語ごとではなく文字ごとに行われるからである。第2に、統計データ収集には無効と見なされている正確さ向上のために、訂正対話は通常、枠付きまたは線あり認識モードを使用して行われるからである。第3に、ユーザは、テキストの編集または訂正時に自分の書込みサイズを変更することが多いからである。最良の統計データは、適切に句読点が付けられた長く完全な文章から得られる。
【0074】
図29は、枠付き、線あり、罫線なしの各モードの複数の手書き入力パッド2500、2510、2520を含む。枠付きモードと線ありモードは枠付きパッド2500と線ありパッド2510に示されたユーザの手書き文字を制限するので、枠付きモードと線ありモードの文字認識結果はすべて無視される。好ましい実施例の本発明は、パッド2520に示す罫線なし入力の認識結果のみに依存する。
【0075】
図30は、小文字と大文字を列挙したものである。手書き文字は大幅に変動するが、2600、2610、2620に描いた文字の形状は一般的な母集団を表している。小文字は、上ループ2610を含むか下ループ2620を含むかによってカテゴリ化される。本発明は、ジェスチャをテキスト入力から区別するために任意の人の平均手書き文字を厳密に決定しようとするものである。これは、なぐり書きのストローク・パターンがテキストまたはジェスチャの特性を有するかどうかを判定することによって行われる。この区別プロセスは、各ストロークがペン・サブシステムによって処理されるたびにリアルタイムで行われるので、システムは認識を行おうという試みを一切行わない。主な要件は、必ずしも文字の平均高さではなく、文字内の任意のストロークの平均高さを確認することである。このため、発明者らは、下ループ2620から構成される小文字を無視することにした。
【0076】
図37に示すように斜めに書いても文字認識の正確さは影響を受けない。基線は非常に傾斜しているが、文字認識の前に認識エンジンによって正規化される。しかし、図36に示すように、本発明は平均書込みサイズを決定するために単語の周囲に描いた境界ボックスに依存しているので、傾斜手書き文字は廃棄するかまたは個別に処理する必要がある。というのは、それによって境界ボックスの見かけサイズがゆがむからである。図37に示すように、境界ボックス3370は、水平線から30度傾斜して書くことによって発生したゆがみの典型である。水平線から11.5度のときに引き起こされるエラーの量は2パーセントなので、本発明では有効な基線用のカットオフとして11.5度を使用する。
【0077】
図38及び図39は、基線傾斜を測定するための方法を示している。各単語境界ボックス3430、3440、3450、3460の近似起点を通って1本の線が描かれ、その中のテキストは明確にするため削除されているが、次にこの基線3410の角度が計算される。好ましい一実施例では、11.5度を上回る傾斜は一切考慮しない。
【0078】
図43に示す代替実施例では、依然として、認識エンジンから低レベルの文字境界ボックスを取り出すことにより、平均サイズを計算することができる。文字境界ボックス3611、3612、3613、3614は、関連の単語境界ボックス3604よりかなり正確な結果をもたらす。本実施例ではこの技法を考慮していないが、多数の境界ボックスを取り出し、適切なフィルタを適用し、統計データを計算する際に過剰な量の処理が消費される恐れがあるからである。
【0079】
図40ないし図42は、訂正した結果が廃棄される一連の事象を示している。ユーザは編集ウィンドウ3500に手書き文字入力3502を入力した。手書き文字は認識されて編集ウィンドウ3506に表示され、ユーザは認識したテキスト3508を確認できるようになる。単語「moon」3510は単語「noon」のスペルミスなので、ユーザは間違った文字の上に「n」を書き、編集ウィンドウ3541は訂正した英字3542を取り戻す。ユーザがOKボタン1145を押すと、テキスト3560がアプリケーションに送られる。ただし、テキストをアプリケーションに経路指定する前に、本発明はスペルミスした単語の境界ボックスを無効にし、それを廃棄している。
【0080】
次に図31を参照すると、本発明の好ましい実施例の論理の流れを詳細に検討することができる。このプログラム論理は、Pen For OS/2の認識エンジンがストロークの集合について認識プロセスを完了するたびに制御を受け取る。ステップ2700では、文字認識のタイプの問合せが行われる。本発明は線なし手書き文字を処理する際に最も効果的であり、認識タイプが線なしではない場合、このルーチンはステップ2735で終了する。次に、ステップ2705でシステムがテキストの訂正中であるかどうかを判定するためにテストが行われる。訂正シーケンス中に入力した手書き文字はユーザの通常の手書き文字を表していない場合が多いので、そのような入力も廃棄される。ステップ2710で認識エンジンからの結果がジェスチャとテキストの両方を含む場合、平均化に適していない5ストローク以下のストロークが収集されたことを意味し、ステップ2735でルーチンが終了する。平均高を計算できるように、上記のフィルタを通過するテキストはステップ2715で処理される。
【0081】
図32に示すテキスト処理ルーチンは、内部ループ2800と外部ループ2814とから構成され、そのループが1行の各単語及びテキストの各行をそれぞれ順に処理する。ステップ2805では、テキストのその行の第1の境界ボックスと最後の境界ボックスの起点の問合せが行われる。次にステップ2808では、共通三角法ライブラリ・ルーチンを呼び出すことによって実行されるが、2つの直角座標が極座標に変換される。その結果得られるベクトルは、ラジアンから水平線からの度数に変換される。ステップ2810でこの特定の行の基線が傾斜パラメータの範囲内である場合、ステップ2815で内部ループに入り、不適当な単語及び記号をフィルタで除去するために3つのテストが行われる。ステップ2820では下ループを備えた小文字を含む単語がテストされ、ステップ2825では引用符またはアポストロフィを含む単語がテストされ、ステップ2830では感嘆符または疑問符が分離される。これらの条件のいずれかによって特定の境界ボックスが拒否され、ステップ2815でループが反復する。1つの単語が3つのテストすべてに合格した場合、ステップ2835でy上からy下を引くことにより、境界ボックスの高さが測定される。各単語が処理されるまで、1行分のテキスト全体にわたって内部ループが反復する。ステップ2840では、すべての有効な境界ボックスの高さがまとめて平均化され、ステップ2805で次の行のテキストまで外部ループが反復する。最後の行のテキストが処理されると、ループはステップ2845に移行し、そこですべての行の高さがまとめて平均化される。2850でテストしたように有効な単語または境界ボックスの総数が4を上回る場合、ジェスチャしきい値が更新されたときに後で結果に重みを付けるためにフラグが設定される。手書き入力のコンテキストが明確ではないために単語が3つ未満である場合、ステップ2855で結果に重みが付けられない。ルーチンはステップ2870で復帰する。
【0082】
図31を参照すると、ステップ2715で手書き文字高を計算するために認識したテキストを処理した後、ステップ2730でその結果がターゲット・アプリケーションに送られる。そのアプリケーション用に編集ウィンドウが使用可能になっている場合、アプリケーションがテキスト・ストリングを検出する前にそのウィンドウが表示され、ステップ2725のテストは真になる。認識したテキストがエラーを含んでいる可能性があるので、測定した境界ボックスを検証することはできず、ステップ2730でジェスチャしきい値を更新するための呼出しは迂回される。プロセスはステップ2735で終了する。
【0083】
訂正シナリオが一切行われない場合、図33に示すようにジェスチャしきい値を更新するためのサブルーチンが呼び出される。本発明では10個の項目を含むサイズ決定テーブル2975を使用するが、それぞれの項目は、なぐり書きまたはストロークの集合の計算済み平均高である。ステップ2900で最新のサンプルに重みを付ける場合、そのプロセスはテーブル内の最も古い2つの項目を置き換える。そうではない場合、それは最も古い項目を置き換えるだけである。このプロセスは、小さい方の手書き文字サンプルに大きい方のサンプルの重みの半分を与える。次にステップ2915でテーブル内のすべての項目が平均化され、ステップ2920でその結果に1.5を掛けることにより、ジェスチャ高さが計算される。次に、ステップ2925でその高さに0.8または80%を掛けることにより、Xまたはジェスチャの幅値が計算される。この新しい値は、次の書込みモーダリティでただちに使用される。次に更新ルーチンはステップ2930で呼出し側に復帰し、呼出し側が現行プロセスを終了する。
【0084】
ターゲット・ウィンドウに結果を送っている間に編集ウィンドウが作成された場合、訂正対話の活動化という図34のルーチンは、ウィンドウ作成の一部として呼び出されているはずである。その時点でプログラムはステップ3000でシステム・フラグを設定して訂正対話の開始を通知し、ステップ3005で入力テキスト・ストリングを保管し、ステップ3010で結果の一部として認識エンジン用に受け取った境界ボックスのアレイを保管しているはずである。これは、ユーザが認識したテキストに対してどのような変更を行ったのかを本発明が判定できるようにするために行われる。
【0085】
ユーザが最終的に編集ウィンドウを終了すると、本発明はもう一度制御権を獲得し、訂正モーダリティを通知するシステム・フラグがステップ3050でリセットされる。ステップ3055でユーザがテキストに対して一切変更を行っていない場合、ルーチンは終了し、ストリングをアプリケーション1140に渡すことができるようになる。そうではない場合、ステップ3060で出力ストリングが入力ストリングと比較され、比較ミスごとに関連の境界ボックスが無効になる。ストリングの完全性比較が完了した後、ステップ3070で元のテキストのいずれかがそのまま存続しているかどうかを確認するために残りのテキストが比較される。存続していない場合、プロセスはステップ3090で終了する。ステップ3075でそれが4未満になるかどうかを確認するために合計カウントがテストされ、4未満になる場合、ステップ3080で重みフラグがなしに設定される。次にステップ3085でジェスチャしきい値ルーチンが呼び出され、ステップ3090でプロセスが終了する。
【0086】
本発明に関連する2つの追加プロセスを図35に示す。これらのプロセスは、システムが最初にブート・アップしたときと、新しいユーザが自分のジェスチャしきい値のロードを要求するたびに制御権を獲得する。ブート時には、ステップ3100でユーザのしきい値がプロファイルから取り出される。ステップ3105でそれが検出された場合、ステップ3115でサイズ決定テーブルのすべての項目にそれが入っている。ジェスチャしきい値が検出されなかった場合、3110でシステム・デフォルト・ジェスチャしきい値が使用される。ステップ3115でサイズ決定テーブルの項目に入れる。プロセスはステップ3120で終了する。
【0087】
ユーザが自分のジェスチャしきい値のロードを要求すると、システムはまずステップ3150で、現行ユーザのプロファイル下で現行のものを保管すべきかどうかを問い合わせる。保管すべき場合、ステップ3155でそれが保管され、ステップ3160で新しいユーザのジェスチャしきい値がプロファイルから取り出される。ステップ3165のテストでジェスチャしきい値が検出されない場合、もう一度、ステップ3170でシステム・デフォルトが使用され、ステップ3175でそれに応じてサイズ決定テーブルが初期設定される。
【0088】
特定の実施例について開示してきたが、本発明の精神及び範囲を逸脱せずにこのような特定の実施例に対して変更を加えることができることは、当業者であれば分かるだろう。さらに、このような実施例は、例示のみを目的とするものであり、本発明の範囲を制限したり、特許請求の範囲を狭めるためのものであると解釈してはならない。
【0089】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0090】
(1)ペンベース・コンピュータ・システムへの手書き文字とジェスチャ入力とを区別する方法において、
スタイラスによってコンピュータ・システムに入力された1組のストロークを検出するステップと、
手書き文字入力またはジェスチャ入力を示す1組の特性がないかどうか、各ストロークを順次分析するステップと、
各ストロークの分析後、分析したすべてのストロークの1組の特性に基づいて、1組のストロークをジェスチャまたは手書き文字入力としてカテゴリ化するステップとを含むことを特徴とする方法。
(2)前記カテゴリ化ステップが、1組のストロークを不明入力としてカテゴリ化するステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(3)前記カテゴリ化ステップが、所定数のストローク後に、そのストロークを手書き文字入力としてカテゴリ化するステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(4)前記カテゴリ化ステップが、所定のタイプの最後に分析したストロークに応答して、1組のストロークをジェスチャ入力としてカテゴリ化するステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(5)前記所定のタイプのストロークがタップ・ストロークであることを特徴とする、上記(4)に記載の方法。
(6)1組のストロークを手書き文字入力としてカテゴリ化したことに応答して、手書き文字認識のみのために1組のストロークを認識エンジンに送るステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(7)1組のストロークをジェスチャ入力としてカテゴリ化したことに応答して、手書き文字及びジェスチャ認識のために1組のストロークを認識エンジンに送るステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(8)認識したジェスチャを1次結果として含み、認識したテキスト文字を2次結果として含む結果データ構造を構築するステップと、
さらに処理するために結果データ構造をターゲット・アプリケーションに送るステップとをさらに含むことを特徴とする、上記(7)に記載の方法。
(9)前記カテゴリ化ステップが、あるタイプの入力受入れ設定について1組のストロークが入力されたウィンドウについて受け入れられる入力タイプに関するウィンドウ設定をテストするステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(10)前記カテゴリ化ステップが、
ストローク間の分離距離を分析するステップと、
分離距離が所定の距離を超えているという判定に応答して、1組のストロークを手書き文字入力としてカテゴリ化するステップとをさらに含むことを特徴とする、上記(1)に記載の方法。
(11)ストローク間の前記分離距離が水平方向にのみ分析されることを特徴とする、上記(10)に記載の方法。
(12)前記分析ステップが、各ストロークのサイズを分析するステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(13)前記カテゴリ化ステップが、分析したすべてのストロークが所定のサイズより大きい場合に1組のストロークをジェスチャ入力としてカテゴリ化するステップをさらに含むことを特徴とする、上記(12)に記載の方法。
(14)前記カテゴリ化ステップが、1組のストロークが入力されている間の経過時間に基づいて、1組のストロークを手書き文字またはジェスチャ入力としてカテゴリ化するステップをさらに含むことを特徴とする、上記(1)に記載の方法。
(15)前記カテゴリ化ステップが、
分析したストロークの総数をカウントするステップと、
分析したストロークのうち、所定のサイズを超えるストロークの数をカウントするステップとをさらに含むことを特徴とする、上記(1)に記載の方法。
(16)プロセッサと、メモリと、ディスプレイと、ペン入力装置とを含み、手書き文字とジェスチャ入力とを区別するためのシステムにおいて、
スタイラスによってコンピュータ・システムに入力された1組のストロークを検出する手段と、
手書き文字入力またはジェスチャ入力を示す1組の特性がないかどうか、各ストロークの順次分析に応答する手段と、
各ストロークの分析に応答して、分析したすべてのストロークの1組の特性に基づいて、1組のストロークをジェスチャまたは手書き文字入力としてカテゴリ化する手段とを含むことを特徴とするシステム。
(17)前記カテゴリ化手段が、所定数のストローク後に、そのストロークを手書き文字入力としてカテゴリ化する手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(18)前記カテゴリ化手段が、所定のタイプの最後に分析したストロークに応答して、1組のストロークをジェスチャ入力としてカテゴリ化する手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(19)1組のストロークをジェスチャ入力としてカテゴリ化したことに応答して、手書き文字及びジェスチャ認識のために1組のストロークを認識エンジンに送る手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(20)前記カテゴリ化手段が、1組のストロークが入力されたウィンドウについて受け入れられる入力タイプに関するウィンドウ設定をテストする手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(21)前記カテゴリ化手段が、
ストローク間の分離距離を分析する手段と、
分離距離が所定の距離を超えているという判定に応答して、1組のストロークを手書き文字入力としてカテゴリ化する手段とをさらに含むことを特徴とする、上記(16)に記載のシステム。
(22)前記分析手段が、各ストロークのサイズを分析する手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(23)前記カテゴリ化手段が、1組のストロークが入力されている間の経過時間に基づいて、1組のストロークを手書き文字またはジェスチャ入力としてカテゴリ化する手段をさらに含むことを特徴とする、上記(16)に記載のシステム。
(24)コンピュータで読取り可能なメモリ上にあって、コンピュータへの手書き文字とジェスチャ入力とを区別するためのコンピュータ・プログラム製品において、
スタイラスによってコンピュータ・システムに入力された1組のストロークを検出する手段と、
手書き文字入力またはジェスチャ入力を示す1組の特性がないかどうか、各ストロークを順次分析する手段と、
各ストロークを分析し、分析したすべてのストロークの1組の特性に基づいて、1組のストロークをジェスチャまたは手書き文字入力としてカテゴリ化する手段とを含むことを特徴とするコンピュータ・プログラム製品。
(25)前記カテゴリ化手段が、所定数のストローク入力後に、そのストロークを手書き文字としてカテゴリ化する手段をさらに含むことを特徴とする、上記(24)に記載の製品。
(26)前記カテゴリ化手段が、所定のタイプの最後に分析したストロークに応答して、1組のストロークをジェスチャ入力としてカテゴリ化する手段をさらに含むことを特徴とする、上記(24)に記載の製品。
(27)1組のストロークをジェスチャ入力としてカテゴリ化したことに応答して、手書き文字及びジェスチャ認識のために1組のストロークを認識エンジンに送る手段をさらに含むことを特徴とする、上記(24)に記載の製品。
(28)前記カテゴリ化手段が、1組のストロークが入力されたウィンドウについて受け入れられる入力タイプについてウィンドウ設定をテストする手段をさらに含むことを特徴とする、上記(24)に記載の製品。
(29)前記カテゴリ化ステップが、
ストローク間の分離距離を分析する手段と、
分離距離が所定の距離を超えているという判定に応答して、1組のストロークを手書き文字入力としてカテゴリ化する手段とをさらに含むことを特徴とする、上記(24)に記載の製品。
(30)前記分析手段が、各ストロークのサイズを分析する手段をさらに含むことを特徴とする、上記(24)に記載の製品。
(31)前記カテゴリ化手段が、1組のストロークが入力されている間の経過時間に基づいて、1組のストロークを手書き文字またはジェスチャ入力としてカテゴリ化する手段をさらに含むことを特徴とする、上記(24)に記載の製品。
【図面の簡単な説明】
【図1】本発明によるコンピュータ・システムのハードウェア・ブロック図である。
【図2】本発明の主要ソフトウェア構成要素のアーキテクチャ・ブロック図である。
【図3】本発明の好ましい実施例においてペンベース入力装置が使用可能な記号及び英字ジェスチャの一部を示す図である。
【図4】手書き文字認識において英字と混同される可能性のあるジェスチャの一部を示す図である。
【図5】手書き文字とジェスチャとを区別するための境界ボックス・スコアの概念を示す図である。
【図6】手書き文字とジェスチャとを区別するための境界ボックス・スコアの概念を示す図である。
【図7】手書き文字とジェスチャとを区別するための境界ボックス・スコアの概念を示す図である。
【図8】ユーザが所望の手書き文字入力サイズを決定できるようにするために可能なユーザ・インタフェースの1つを示す図である。
【図9】ユーザが所望の手書き文字入力サイズを決定できるようにするために可能なユーザ・インタフェースの1つを示す図である。
【図10】ジェスチャ及び手書き文字認識の完了時にアプリケーションに送られる認識結果のデータ構造を示す図である。
【図11】本発明のジェスチャ及び手書き文字認識に使用する境界ボックスの矩形を示す図である。
【図12】本発明において英字と英字ジェスチャとを区別するために使用可能なタップと、許容タップ・サイズと、最小ジェスチャ・サイズとを示す図である。
【図13】スタイラス着地感知手順の流れ図である。
【図14】ペンが動いている間の境界ボックス手順の流れ図である。
【図15】認識モード設定手順の流れ図である。
【図16】手書き文字及びジェスチャ認識の手順を示す図である。
【図17】アプリケーションにより入力された手書き文字またはジェスチャを処理するためのプロセスを示す図である。
【図18】手書き文字及びジェスチャのタイムアウト値を調整するための手順を示す図である。
【図19】スタイラス離昇手順の流れ図である。
【図20】書込み事象の終了時のプロセスを示す図である。
【図21】境界ボックス・プロセスの流れ図である。
【図22】境界ボックス・プロセスの流れ図である。
【図23】境界ボックス・プロセスの流れ図である。
【図24】ジェスチャとテキストとを区別するために使用する分離プロセス用の検査を示す図である。
【図25】ジェスチャとテキストとを区別するために使用する分離プロセス用の検査を示す図である。
【図26】ジェスチャとテキストとを区別するために使用する分離プロセス用の検査を示す図である。
【図27】境界ボックスを水平方向に拡大するためのプロセスを示す図である。
【図28】ジェスチャのしきいサイズを初期設定するための流れ図である。
【図29】枠付きモード、線ありモード、線なしモードの手書き入力パッドを示す図である。
【図30】手書き英字を示す図である。
【図31】本発明の好ましい実施例を示す図である。
【図32】本発明の好ましい実施例を示す図である。
【図33】本発明の好ましい実施例を示す図である。
【図34】本発明の好ましい実施例を示す図である。
【図35】本発明の好ましい実施例を示す図である。
【図36】認識した各単語境界ボックスが表示されている手書き文字を含む編集ウィンドウを示す図である。
【図37】急角度で書かれた手書き文字を含む編集ウィンドウを示す図である。
【図38】手書き文字を含む編集ウィンドウを示す図である。
【図39】手書き文字を含む編集ウィンドウを示す図である。
【図40】間違って認識され、編集ウィンドウの対話によって訂正される手書き文字入力を示す一連のウィンドウを示す図である。
【図41】間違って認識され、編集ウィンドウの対話によって訂正される手書き文字入力を示す一連のウィンドウを示す図である。
【図42】間違って認識され、編集ウィンドウの対話によって訂正される手書き文字入力を示す一連のウィンドウを示す図である。
【図43】本発明の代替実施例の線なしモードの手書き入力パッドを示す図であり、基線が傾斜しているので、単語内の各文字の境界ボックスを使用することによって平均文字高が計算される。
【符号の説明】
10 パーソナル・コンピュータ・システム
11 プロセッサ
13 中央演算処理装置(CPU)
15 ランダム・アクセス・メモリ
17 ハード・ディスク記憶装置
19 フロッピー・ディスク装置
21 ディスケット
23 ディスプレイ
25 キーボード
27 マウス
29 ペンまたはスタイラス
31 プリンタ
Claims (22)
- ペン入力が可能なコンピュータ・システムへの手書き文字入力とジェスチャ入力とを区別する方法において、
スタイラスによってコンピュータ・システムに入力された1組のストロークをストロークが入力されるたびに検出するステップと、
認識に先立って、手書き文字入力を示す第1の組の特性またはジェスチャ入力を示す第2の組の特性のいずれを有するかについて前記1組のストロークの各ストロークを各ストロークが入力されるたびに順次分析するステップと、
認識に先立って、前記各ストロークが分析されるたびに、前記分析されたストロークの前記第1の組の特性または前記第2の組の特性により現行の前記1組のストロークをジェスチャ入力または手書き文字入力に分類するステップと、
最後に分析されたストロークの特性により前記1組のストロークが最終的にジェスチャ入力または手書き文字入力のいずれに分類されるかに基づいて、前記1組のストロークについて特定のジェスチャまたは手書き文字としてのジェスチャ認識または手書き文字認識を行うステップと
を有する方法。 - 前記分類するステップが、前記1組のストロークを不明入力として分類するステップを含むことを特徴とする、請求項1に記載の方法。
- 前記分類するステップが、所定数のストローク後に、前記1組のストロークを手書き文字入力として分類するステップを含むことを特徴とする、請求項1に記載の方法。
- 前記分類するステップが、最後に分析されたストロークが所定のタイプであることに応答して、前記1組のストロークをジェスチャ入力として分類するステップを含むことを特徴とする、請求項1に記載の方法。
- 前記所定のタイプのストロークがタップ・ストロークであることを特徴とする、請求項4に記載の方法。
- 前記1組のストロークを手書き文字入力として分類したことに応答して、前記1組のストロークを手書き文字認識だけに送るステップをさらに含むことを特徴とする、請求項1に記載の方法。
- 前記1組のストロークをジェスチャ入力として分類したことに応答して、前記1組のストロークを認識エンジンに送るステップをさらに含むことを特徴とする、請求項1に記載の方法。
- 前記認識エンジンで、認識したジェスチャを1次結果として含み、認識したテキスト文字を2次結果として含む結果データ構造を構築するステップと、
さらに処理するために結果データ構造をターゲット・アプリケーションに送るステップとをさらに含むことを特徴とする、請求項7に記載の方法。 - あるタイプの入力受入れ設定について、前記1組のストロークが入力されたウィンドウについて受け入れられる入力タイプに関するウィンドウ設定をテストするステップをさらに含むことを特徴とする、請求項1に記載の方法。
- 前記分析するステップが、ストローク間の分離距離を分析するステップを含み、
前記分類するステップが、分離距離が所定の距離を超えているという判定に応答して、前記1組のストロークを手書き文字入力として分類するステップを含むことを特徴とする、請求項1に記載の方法。 - ストローク間の前記分離距離が水平方向にのみ分析されることを特徴とする、請求項10に記載の方法。
- 前記分析するステップが、各ストロークのサイズを分析するステップを含むことを特徴とする、請求項1に記載の方法。
- 前記分類するステップが、分析したすべてのストロークが所定のサイズより大きい場合に前記1組のストロークをジェスチャ入力として分類するステップを含むことを特徴とする、請求項12に記載の方法。
- 前記分類するステップが、
前記分析したストロークの総数をカウントするステップと、
前記分析したストロークのうち、所定のサイズを超えるストロークの数をカウントするステップとを含むことを特徴とする、請求項1に記載の方法。 - プロセッサと、メモリと、ディスプレイと、ペン入力装置とを含み、手書き文字入力とジェスチャ入力とを区別するためのシステムにおいて、
ペン入力を手書き文字入力として認識する手書き文字認識エンジンと、
ペン入力をジェスチャとして認識する手書き文字認識エンジンと、
スタイラスによってコンピュータ・システムに入力された1組のストロークをストロークが入力されるたびに検出する手段と、
認識に先立って、手書き文字入力を示す第1の組の特性またはジェスチャ入力を示す第2の組の特性のいずれを有するかについて前記1組のストロークの各ストロークを各ストロークが入力されるたびに順次分析する手段と、
認識に先立って、前記各ストロークが分析されるたびに、前記分析されたストロークの前記第1の組の特性または前記第2の組の特性により現行の前記1組のストロークをジェスチャ入力または手書き文字入力に分類する手段と、
最後に分析されたストロークの特性により前記1組のストロークが最終的にジェスチャ入力または手書き文字入力のいずれに分類されるかに基づいて、前記1組のストロークについて特定のジェスチャまたは手書き文字として認識するために前記1組のストロークをジェスチャ認識エンジンまたは手書き文字認識エンジンのいずれかまたは双方に送る手段とを有するシステム。 - 前記分類する手段が、所定数のストローク後に、前記1組のストロークを手書き文字入力として分類する手段を含むことを特徴とする、請求項15に記載のシステム。
- 前記分類する手段が、最後に分析されたストロークが所定のタイプであることに応答して、前記1組のストロークをジェスチャ入力として分類する手段を含むことを特徴とする、請求項15に記載のシステム。
- 前記1組のストロークをジェスチャ入力として分類したことに応答して、前記1組のストロークをジェスチャ認識エンジンに送る手段をさらに含むことを特徴とする、請求項15に記載のシステム。
- 前記1組のストロークが入力されたウィンドウについて受け入れられる入力タイプに関するウィンドウ設定をテストする手段をさらに含むことを特徴とする、請求項15に記載のシステム。
- 前記分析する手段が、ストローク間の分離距離を分析する手段を含み、
前記分類する手段が、前記分離距離が所定の距離を超えているという判定に応答して、前記1組のストロークを手書き文字入力として分類する手段を含むことを特徴とする、請求項15に記載のシステム。 - 前記分析する手段が、各ストロークのサイズを分析する手段を含むことを特徴とする、請求項15に記載のシステム。
- ペン入力が可能なコンピュータ・システムへの手書き文字入力とジェスチャ入力とを区別する方法を実行するプログラムを記録したコンピュータによる読み取り可能な記録媒体であって、前記方法が、
スタイラスによって前記コンピュータ・システムに入力された1組のストロークをストロークが入力されるたびに検出する手段と、
認識に先立って、手書き文字入力を示す第1の組またはジェスチャ入力を示す第2の組の特性のいずれを有するかについて前記1組のストロークの各ストロークを各ストロークが入力されるたびに順次分析するステップと、
認識に先立って、前記各ストロークが分析されるたびに、前記分析されたストロークの前記第1の組の特性または前記第2の組の特性により現行の前記1組のストロークをジェスチャ入力または手書き文字入力に分類するステップと、
最後に分析されたストロークの特性により前記1組のストロークが最終的にジェスチャ入力または手書き文字入力のいずれに分類されるかに基づいて、前記1組のストロークについて特定のジェスチャまたは手書き文字としてのジェスチャ認識または手書き文字認識を行うステップと
を有する記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/665128 | 1996-06-14 | ||
US08/665,128 US5864635A (en) | 1996-06-14 | 1996-06-14 | Distinguishing gestures from handwriting in a pen based computer by stroke analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1069344A JPH1069344A (ja) | 1998-03-10 |
JP3664571B2 true JP3664571B2 (ja) | 2005-06-29 |
Family
ID=24668833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14489397A Expired - Lifetime JP3664571B2 (ja) | 1996-06-14 | 1997-06-03 | コンピュータでジェスチャと手書き文字を区別する方法及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5864635A (ja) |
JP (1) | JP3664571B2 (ja) |
Families Citing this family (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US6292857B1 (en) * | 1997-06-05 | 2001-09-18 | Microsoft Corporation | Method and mechanism for coordinating input of asynchronous data |
US6337698B1 (en) * | 1998-11-20 | 2002-01-08 | Microsoft Corporation | Pen-based interface for a notepad computer |
KR100401197B1 (ko) * | 1998-11-20 | 2003-11-15 | 삼성전자주식회사 | 문자인식 처리 속도가 향상된 문자인식 장치 및 그 방법 |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US7971784B2 (en) * | 1999-05-25 | 2011-07-05 | Silverbrook Research Pty Ltd | Sensing device with mode changes via nib switch |
US7721948B1 (en) * | 1999-05-25 | 2010-05-25 | Silverbrook Research Pty Ltd | Method and system for online payments |
US7760969B2 (en) * | 1999-05-25 | 2010-07-20 | Silverbrook Research Pty Ltd | Method of providing information via context searching from a printed substrate |
US6396523B1 (en) | 1999-07-29 | 2002-05-28 | Interlink Electronics, Inc. | Home entertainment device remote control |
JP2003511883A (ja) * | 1999-10-07 | 2003-03-25 | インターリンク エレクトロニクス インコーポレイテッド | 家庭娯楽装置リモート・コントロール |
US6707942B1 (en) * | 2000-03-01 | 2004-03-16 | Palm Source, Inc. | Method and apparatus for using pressure information for improved computer controlled handwriting recognition, data entry and user authentication |
US6765557B1 (en) | 2000-04-10 | 2004-07-20 | Interlink Electronics, Inc. | Remote control having touch pad to screen mapping |
GB0017793D0 (en) * | 2000-07-21 | 2000-09-06 | Secr Defence | Human computer interface |
US6903730B2 (en) * | 2000-11-10 | 2005-06-07 | Microsoft Corporation | In-air gestures for electromagnetic coordinate digitizers |
US6897853B2 (en) * | 2000-11-10 | 2005-05-24 | Microsoft Corp. | Highlevel active pen matrix |
US6791536B2 (en) * | 2000-11-10 | 2004-09-14 | Microsoft Corporation | Simulating gestures of a pointing device using a stylus and providing feedback thereto |
US6646633B1 (en) * | 2001-01-24 | 2003-11-11 | Palm Source, Inc. | Method and system for a full screen user interface and data entry using sensors to implement handwritten glyphs |
US20020180811A1 (en) * | 2001-05-31 | 2002-12-05 | Chu Sing Yun | Systems, methods, and articles of manufacture for providing a user interface with selection and scrolling |
US20040054701A1 (en) * | 2002-03-01 | 2004-03-18 | Garst Peter F. | Modeless gesture driven editor for handwritten mathematical expressions |
US7185278B1 (en) | 2002-06-28 | 2007-02-27 | Microsoft Corporation | Separating and moving document objects using the movement of a wiper bar |
US7188309B2 (en) | 2002-06-28 | 2007-03-06 | Microsoft Corporation | Resolving document object collisions |
US7174042B1 (en) * | 2002-06-28 | 2007-02-06 | Microsoft Corporation | System and method for automatically recognizing electronic handwriting in an electronic document and converting to text |
US7079713B2 (en) * | 2002-06-28 | 2006-07-18 | Microsoft Corporation | Method and system for displaying and linking ink objects with recognized text and objects |
US7259752B1 (en) | 2002-06-28 | 2007-08-21 | Microsoft Corporation | Method and system for editing electronic ink |
US7751623B1 (en) | 2002-06-28 | 2010-07-06 | Microsoft Corporation | Writing guide for a free-form document editor |
US20040240739A1 (en) * | 2003-05-30 | 2004-12-02 | Lu Chang | Pen gesture-based user interface |
US7256773B2 (en) * | 2003-06-09 | 2007-08-14 | Microsoft Corporation | Detection of a dwell gesture by examining parameters associated with pen motion |
US20060242607A1 (en) * | 2003-06-13 | 2006-10-26 | University Of Lancaster | User interface |
US7352902B2 (en) * | 2003-09-24 | 2008-04-01 | Microsoft Corporation | System and method for detecting a hand-drawn object in ink input |
US7324691B2 (en) * | 2003-09-24 | 2008-01-29 | Microsoft Corporation | System and method for shape recognition of hand-drawn objects |
US7295708B2 (en) * | 2003-09-24 | 2007-11-13 | Microsoft Corporation | System and method for detecting a list in ink input |
US7620244B1 (en) * | 2004-01-06 | 2009-11-17 | Motion Computing, Inc. | Methods and systems for slant compensation in handwriting and signature recognition |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7707039B2 (en) * | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
US20060041484A1 (en) * | 2004-04-01 | 2006-02-23 | King Martin T | Methods and systems for initiating application processes by data capture from rendered documents |
US7812860B2 (en) * | 2004-04-01 | 2010-10-12 | Exbiblio B.V. | Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
US20060122983A1 (en) * | 2004-12-03 | 2006-06-08 | King Martin T | Locating electronic instances of documents based on rendered instances, document fragment digest generation, and digest based document fragment determination |
US20060041605A1 (en) * | 2004-04-01 | 2006-02-23 | King Martin T | Determining actions involving captured information and electronic content associated with rendered documents |
US20060053097A1 (en) * | 2004-04-01 | 2006-03-09 | King Martin T | Searching and accessing documents on private networks for use with captures from rendered documents |
US7721226B2 (en) | 2004-02-18 | 2010-05-18 | Microsoft Corporation | Glom widget |
US7358965B2 (en) * | 2004-02-18 | 2008-04-15 | Microsoft Corporation | Tapping to create writing |
US7659890B2 (en) * | 2004-03-19 | 2010-02-09 | Microsoft Corporation | Automatic height adjustment for electronic highlighter pens and mousing devices |
US8081849B2 (en) * | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
US20060098900A1 (en) * | 2004-09-27 | 2006-05-11 | King Martin T | Secure data gathering from rendered documents |
US20060081714A1 (en) * | 2004-08-23 | 2006-04-20 | King Martin T | Portable scanning device |
US7894670B2 (en) | 2004-04-01 | 2011-02-22 | Exbiblio B.V. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US9116890B2 (en) | 2004-04-01 | 2015-08-25 | Google Inc. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
US9008447B2 (en) * | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
WO2008028674A2 (en) * | 2006-09-08 | 2008-03-13 | Exbiblio B.V. | Optical scanners, such as hand-held optical scanners |
US20070300142A1 (en) * | 2005-04-01 | 2007-12-27 | King Martin T | Contextual dynamic advertising based upon captured rendered text |
US20080313172A1 (en) * | 2004-12-03 | 2008-12-18 | King Martin T | Determining actions involving captured information and electronic content associated with rendered documents |
US8713418B2 (en) * | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8874504B2 (en) * | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
US8489624B2 (en) | 2004-05-17 | 2013-07-16 | Google, Inc. | Processing techniques for text capture from a rendered document |
US8620083B2 (en) | 2004-12-03 | 2013-12-31 | Google Inc. | Method and system for character recognition |
US8346620B2 (en) * | 2004-07-19 | 2013-01-01 | Google Inc. | Automatic modification of web pages |
US7372993B2 (en) * | 2004-07-21 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Gesture recognition |
US7761814B2 (en) | 2004-09-13 | 2010-07-20 | Microsoft Corporation | Flick gesture |
US7295206B2 (en) * | 2005-01-31 | 2007-11-13 | Microsoft Corporation | Ink input region adjustments |
US7697001B2 (en) * | 2005-01-31 | 2010-04-13 | Microsoft Corporation | Personalized ink font |
US8787706B2 (en) * | 2005-03-18 | 2014-07-22 | The Invention Science Fund I, Llc | Acquisition of a user expression and an environment of the expression |
US7809215B2 (en) | 2006-10-11 | 2010-10-05 | The Invention Science Fund I, Llc | Contextual information encoded in a formed expression |
US8232979B2 (en) * | 2005-05-25 | 2012-07-31 | The Invention Science Fund I, Llc | Performing an action with respect to hand-formed expression |
US7791593B2 (en) * | 2005-03-18 | 2010-09-07 | The Invention Science Fund I, Llc | Machine-differentiatable identifiers having a commonly accepted meaning |
US8823636B2 (en) * | 2005-03-18 | 2014-09-02 | The Invention Science Fund I, Llc | Including environmental information in a manual expression |
US7826687B2 (en) | 2005-03-18 | 2010-11-02 | The Invention Science Fund I, Llc | Including contextual information with a formed expression |
US20070273674A1 (en) * | 2005-03-18 | 2007-11-29 | Searete Llc, A Limited Liability Corporation | Machine-differentiatable identifiers having a commonly accepted meaning |
US8340476B2 (en) * | 2005-03-18 | 2012-12-25 | The Invention Science Fund I, Llc | Electronic acquisition of a hand formed expression and a context of the expression |
US20060212430A1 (en) * | 2005-03-18 | 2006-09-21 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Outputting a saved hand-formed expression |
US8229252B2 (en) * | 2005-03-18 | 2012-07-24 | The Invention Science Fund I, Llc | Electronic association of a user expression and a context of the expression |
US8290313B2 (en) * | 2005-03-18 | 2012-10-16 | The Invention Science Fund I, Llc | Electronic acquisition of a hand formed expression and a context of the expression |
US7932895B2 (en) * | 2005-05-24 | 2011-04-26 | Nokia Corporation | Control of an electronic device using a gesture as an input |
US20070064004A1 (en) * | 2005-09-21 | 2007-03-22 | Hewlett-Packard Development Company, L.P. | Moving a graphic element |
US7526737B2 (en) * | 2005-11-14 | 2009-04-28 | Microsoft Corporation | Free form wiper |
US8139030B2 (en) * | 2006-02-01 | 2012-03-20 | Memsic, Inc. | Magnetic sensor for use with hand-held devices |
US7667686B2 (en) * | 2006-02-01 | 2010-02-23 | Memsic, Inc. | Air-writing and motion sensing input for portable devices |
US8249334B2 (en) * | 2006-05-11 | 2012-08-21 | Primesense Ltd. | Modeling of humanoid forms from depth maps |
JP4762070B2 (ja) * | 2006-07-19 | 2011-08-31 | 富士通株式会社 | 手書き入力装置、手書き入力方法、及びコンピュータプログラム |
WO2008031625A2 (en) * | 2006-09-15 | 2008-03-20 | Exbiblio B.V. | Capture and display of annotations in paper and electronic documents |
DE102007011574A1 (de) * | 2007-03-08 | 2008-09-11 | Srs-Management Gmbh | Verfahren zur Korrektur von elektronisch erfassten handschriftlichen Notizen |
US8302033B2 (en) | 2007-06-22 | 2012-10-30 | Apple Inc. | Touch screen device, method, and graphical user interface for providing maps, directions, and location-based information |
US20110145068A1 (en) * | 2007-09-17 | 2011-06-16 | King Martin T | Associating rendered advertisements with digital content |
US8327272B2 (en) | 2008-01-06 | 2012-12-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars |
US9035876B2 (en) | 2008-01-14 | 2015-05-19 | Apple Inc. | Three-dimensional user interface session control |
US8166421B2 (en) * | 2008-01-14 | 2012-04-24 | Primesense Ltd. | Three-dimensional user interface |
US8933876B2 (en) | 2010-12-13 | 2015-01-13 | Apple Inc. | Three dimensional user interface session control |
US8296670B2 (en) * | 2008-05-19 | 2012-10-23 | Microsoft Corporation | Accessing a menu utilizing a drag-operation |
EP2128797B1 (de) * | 2008-05-27 | 2010-11-24 | Eberhard Falk | Verfahren und Vorrichtung zur Musterverarbeitung |
US20100070931A1 (en) * | 2008-09-15 | 2010-03-18 | Sony Ericsson Mobile Communications Ab | Method and apparatus for selecting an object |
US8769427B2 (en) * | 2008-09-19 | 2014-07-01 | Google Inc. | Quick gesture input |
US9335909B2 (en) * | 2009-06-03 | 2016-05-10 | Honda Motor Co., Ltd. | Drawing assist device, drawing assist program, and drawing assist method |
US8869070B2 (en) * | 2008-12-30 | 2014-10-21 | T-Mobile Usa, Inc. | Handwriting manipulation for conducting a search over multiple databases |
DE202010018601U1 (de) * | 2009-02-18 | 2018-04-30 | Google LLC (n.d.Ges.d. Staates Delaware) | Automatisches Erfassen von Informationen, wie etwa Erfassen von Informationen unter Verwendung einer dokumentenerkennenden Vorrichtung |
US8447066B2 (en) | 2009-03-12 | 2013-05-21 | Google Inc. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
DE202010018551U1 (de) * | 2009-03-12 | 2017-08-24 | Google, Inc. | Automatische Bereitstellung von Inhalten, die mit erfassten Informationen, wie etwa in Echtzeit erfassten Informationen, verknüpft sind |
WO2010103482A2 (en) * | 2009-03-13 | 2010-09-16 | Primesense Ltd. | Enhanced 3d interfacing for remote devices |
US8819597B2 (en) * | 2009-04-10 | 2014-08-26 | Google Inc. | Glyph entry on computing device |
US8565479B2 (en) * | 2009-08-13 | 2013-10-22 | Primesense Ltd. | Extraction of skeletons from 3D maps |
TW201109990A (en) * | 2009-09-04 | 2011-03-16 | Higgstec Inc | Touch gesture detecting method of a touch panel |
US8432367B2 (en) | 2009-11-19 | 2013-04-30 | Google Inc. | Translating user interaction with a touch screen into input commands |
JP5427008B2 (ja) * | 2009-11-27 | 2014-02-26 | 富士通テン株式会社 | 車載表示システム |
US9081799B2 (en) * | 2009-12-04 | 2015-07-14 | Google Inc. | Using gestalt information to identify locations in printed information |
US9323784B2 (en) * | 2009-12-09 | 2016-04-26 | Google Inc. | Image search using text-based elements within the contents of images |
US8862576B2 (en) | 2010-01-06 | 2014-10-14 | Apple Inc. | Device, method, and graphical user interface for mapping directions between search results |
US20110164032A1 (en) * | 2010-01-07 | 2011-07-07 | Prime Sense Ltd. | Three-Dimensional User Interface |
US8787663B2 (en) * | 2010-03-01 | 2014-07-22 | Primesense Ltd. | Tracking body parts by combined color image and depth processing |
JP5486977B2 (ja) * | 2010-03-24 | 2014-05-07 | 株式会社日立ソリューションズ | 座標入力装置及びプログラム |
US8594425B2 (en) | 2010-05-31 | 2013-11-26 | Primesense Ltd. | Analysis of three-dimensional scenes |
US9201501B2 (en) | 2010-07-20 | 2015-12-01 | Apple Inc. | Adaptive projector |
CN102959616B (zh) | 2010-07-20 | 2015-06-10 | 苹果公司 | 自然交互的交互真实性增强 |
US8582867B2 (en) | 2010-09-16 | 2013-11-12 | Primesense Ltd | Learning-based pose estimation from depth maps |
US8959013B2 (en) | 2010-09-27 | 2015-02-17 | Apple Inc. | Virtual keyboard for a non-tactile three dimensional user interface |
US8872762B2 (en) | 2010-12-08 | 2014-10-28 | Primesense Ltd. | Three dimensional user interface cursor control |
WO2012107892A2 (en) | 2011-02-09 | 2012-08-16 | Primesense Ltd. | Gaze detection in a 3d mapping environment |
US9459758B2 (en) | 2011-07-05 | 2016-10-04 | Apple Inc. | Gesture-based interface with enhanced features |
US9377865B2 (en) | 2011-07-05 | 2016-06-28 | Apple Inc. | Zoom-based gesture user interface |
US8881051B2 (en) | 2011-07-05 | 2014-11-04 | Primesense Ltd | Zoom-based gesture user interface |
US9030498B2 (en) | 2011-08-15 | 2015-05-12 | Apple Inc. | Combining explicit select gestures and timeclick in a non-tactile three dimensional user interface |
US9218063B2 (en) | 2011-08-24 | 2015-12-22 | Apple Inc. | Sessionless pointing user interface |
US9122311B2 (en) | 2011-08-24 | 2015-09-01 | Apple Inc. | Visual feedback for tactile and non-tactile user interfaces |
TWI560584B (en) * | 2011-09-05 | 2016-12-01 | Mstar Semiconductor Inc | Method, touch control device, and computer program product for transforming touch points into characters |
US9002099B2 (en) | 2011-09-11 | 2015-04-07 | Apple Inc. | Learning-based estimation of hand and finger pose |
US8478777B2 (en) * | 2011-10-25 | 2013-07-02 | Google Inc. | Gesture-based search |
US9229534B2 (en) | 2012-02-28 | 2016-01-05 | Apple Inc. | Asymmetric mapping for tactile and non-tactile user interfaces |
US8504842B1 (en) | 2012-03-23 | 2013-08-06 | Google Inc. | Alternative unlocking patterns |
WO2013144807A1 (en) | 2012-03-26 | 2013-10-03 | Primesense Ltd. | Enhanced virtual touchpad and touchscreen |
US9047507B2 (en) | 2012-05-02 | 2015-06-02 | Apple Inc. | Upper-body skeleton extraction from depth maps |
DE102012009384B4 (de) * | 2012-05-11 | 2018-06-21 | Audi Ag | Eingabevorrichtung eines Kraftwagens zum Eingeben einer Zeichenfolge sowie zugehöriges Verfahren zum Betreiben der Eingabevorrichtung |
TWI512718B (zh) * | 2012-06-04 | 2015-12-11 | Mstar Semiconductor Inc | 播放方法與裝置 |
CN106527759B (zh) * | 2012-07-13 | 2019-07-26 | 上海触乐信息科技有限公司 | 便携式终端设备滑行操作辅助信息输入控制功能的系统及方法 |
KR20140008987A (ko) * | 2012-07-13 | 2014-01-22 | 삼성전자주식회사 | 필기 이미지 인식을 이용한 어플리케이션 제어 방법 및 장치 |
US9569100B2 (en) * | 2012-07-22 | 2017-02-14 | Magisto Ltd. | Method and system for scribble based editing |
EP2831712A4 (en) * | 2012-07-24 | 2016-03-02 | Hewlett Packard Development Co | LAUNCHING A HELP FUNCTION |
US9507513B2 (en) | 2012-08-17 | 2016-11-29 | Google Inc. | Displaced double tap gesture |
GB201215283D0 (en) * | 2012-08-28 | 2012-10-10 | Microsoft Corp | Searching at a user device |
US9019267B2 (en) | 2012-10-30 | 2015-04-28 | Apple Inc. | Depth mapping with enhanced resolution |
KR101337872B1 (ko) | 2013-04-04 | 2013-12-06 | 주식회사 디오텍 | 잉크 텍스트 데이터 편집장치 및 잉크 텍스트 데이터 편집방법 |
US9465985B2 (en) * | 2013-06-09 | 2016-10-11 | Apple Inc. | Managing real-time handwriting recognition |
KR20150028627A (ko) * | 2013-09-06 | 2015-03-16 | 삼성전자주식회사 | 사용자 필기를 텍스트 정보로 변환하는 방법 및 이를 수행하기 위한 전자 기기 |
US10614300B2 (en) * | 2014-12-23 | 2020-04-07 | Lenovo (Singapore) Pte. Ltd. | Formatting handwritten content |
US9665786B2 (en) | 2015-02-20 | 2017-05-30 | Conduent Business Services, Llc | Confirming automatically recognized handwritten answers |
US10043279B1 (en) | 2015-12-07 | 2018-08-07 | Apple Inc. | Robust detection and classification of body parts in a depth map |
DK179374B1 (en) | 2016-06-12 | 2018-05-28 | Apple Inc | Handwriting keyboard for monitors |
US10366278B2 (en) | 2016-09-20 | 2019-07-30 | Apple Inc. | Curvature-based face detector |
KR20180070086A (ko) * | 2016-12-16 | 2018-06-26 | 현대자동차주식회사 | 차량, 및 그 제어방법 |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
US11341569B2 (en) * | 2019-10-25 | 2022-05-24 | 7-Eleven, Inc. | System and method for populating a virtual shopping cart based on video of a customer's shopping session at a physical store |
US11574485B2 (en) * | 2020-01-17 | 2023-02-07 | Apple Inc. | Automatic measurements based on object classification |
CN111475234B (zh) * | 2020-04-10 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种字符串传递方法、装置、计算机及可读存储介质 |
AU2021102652B4 (en) | 2020-05-18 | 2022-02-24 | Apple Inc. | User interfaces for viewing and refining the current location of an electronic device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0650527B2 (ja) * | 1983-12-26 | 1994-06-29 | 株式会社日立製作所 | 実時間手書き軌跡認識方法 |
JPH0650538B2 (ja) * | 1984-03-28 | 1994-06-29 | 株式会社日立製作所 | 手書き文字・図形認識の認識モード指定方法 |
US5252951A (en) * | 1989-04-28 | 1993-10-12 | International Business Machines Corporation | Graphical user interface with gesture recognition in a multiapplication environment |
US5361310A (en) * | 1990-01-19 | 1994-11-01 | Fujitsu Limited | Handwriting entry processing system using keyboard and mouse interfaces requiring no modification of an application program |
EP0450196B1 (en) * | 1990-04-02 | 1998-09-09 | Koninklijke Philips Electronics N.V. | Data processing system using gesture-based input data |
JPH0736142B2 (ja) * | 1991-10-10 | 1995-04-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 移動指示手段の運動停止を認識する方法および情報処理装置 |
US5455901A (en) * | 1991-11-12 | 1995-10-03 | Compaq Computer Corporation | Input device with deferred translation |
US5398310A (en) * | 1992-04-13 | 1995-03-14 | Apple Computer, Incorporated | Pointing gesture based computer note pad paging and scrolling interface |
US5583542A (en) * | 1992-05-26 | 1996-12-10 | Apple Computer, Incorporated | Method for deleting objects on a computer display |
US5463696A (en) * | 1992-05-27 | 1995-10-31 | Apple Computer, Inc. | Recognition system and method for user inputs to a computer system |
US5390281A (en) * | 1992-05-27 | 1995-02-14 | Apple Computer, Inc. | Method and apparatus for deducing user intent and providing computer implemented services |
US5592566A (en) * | 1992-05-27 | 1997-01-07 | Apple Computer, Incorporated | Method and apparatus for computerized recognition |
JPH06208654A (ja) * | 1993-01-08 | 1994-07-26 | Hitachi Software Eng Co Ltd | ペン入力図形編集システム |
US5566248A (en) * | 1993-05-10 | 1996-10-15 | Apple Computer, Inc. | Method and apparatus for a recognition editor and routine interface for a computer system |
US5517578A (en) * | 1993-05-20 | 1996-05-14 | Aha! Software Corporation | Method and apparatus for grouping and manipulating electronic representations of handwriting, printing and drawings |
US5583946A (en) * | 1993-09-30 | 1996-12-10 | Apple Computer, Inc. | Method and apparatus for recognizing gestures on a computer system |
JP3268923B2 (ja) * | 1993-11-30 | 2002-03-25 | 三洋電機株式会社 | 手書き編集装置、ペン入力変換方法、及び編集方法 |
US5570113A (en) * | 1994-06-29 | 1996-10-29 | International Business Machines Corporation | Computer based pen system and method for automatically cancelling unwanted gestures and preventing anomalous signals as inputs to such system |
US5682439A (en) * | 1995-08-07 | 1997-10-28 | Apple Computer, Inc. | Boxed input correction system and method for pen based computer systems |
-
1996
- 1996-06-14 US US08/665,128 patent/US5864635A/en not_active Expired - Lifetime
-
1997
- 1997-06-03 JP JP14489397A patent/JP3664571B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5864635A (en) | 1999-01-26 |
JPH1069344A (ja) | 1998-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3664571B2 (ja) | コンピュータでジェスチャと手書き文字を区別する方法及びシステム | |
JP3762818B2 (ja) | コンピュータでジェスチャと手書き文字を区別する方法及びシステム | |
US5768418A (en) | Unintended results detection in a pen-based computer system | |
JP4936753B2 (ja) | 単語または文字の境界ベースのスクラッチアウトジェスチャ認識 | |
US6049329A (en) | Method of and system for facilitating user input into a small GUI window using a stylus | |
US5481278A (en) | Information processing apparatus | |
US5946406A (en) | Method and system for data entry of handwritten symbols | |
US6938220B1 (en) | Information processing apparatus | |
US5784504A (en) | Disambiguating input strokes of a stylus-based input devices for gesture or character recognition | |
US8957854B2 (en) | Zero-click activation of an application | |
AU2001222787B2 (en) | Method and apparatus for acquiring and organizing ink information in pen-aware computer systems | |
US20030231167A1 (en) | System and method for providing gesture suggestions to enhance interpretation of user input | |
AU2001222787A1 (en) | Method and apparatus for acquiring and organizing ink information in pen-aware computer systems | |
US7142715B2 (en) | Arabic handwriting recognition using feature matching | |
US20150067593A1 (en) | Methods and Systems for Interacting with a Digital Marking Surface | |
US5614926A (en) | Word processor with a handwriting text processing function | |
JP2991909B2 (ja) | 文書処理装置および文書処理方法 | |
JPH0684019A (ja) | 手書き入力文字処理装置における句点認識装置 | |
JPH07296105A (ja) | 認識変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20040826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040826 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041115 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050216 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080408 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S202 | Request for registration of non-exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R315201 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |