(57)【要約】  ユーザの自然な幾何学的形状の描画を認識することができるシステムおよび方法。システムおよび方法は、シングルストロークおよびマルチストロークの幾何学的形状を、描画線のように処理することができる。これはまた、暗黙的およびユーザ定義の制約を幾何学的形状に適用することもできる。システムおよび方法は、これらの制約を、プリミティブレベルではなく、ベクトル成分レベルにおいて適用する。これは、幾何学的形状および制約の両方をベクトル成分レベルで分解することによってそれを行う。これは、システムおよび方法が、より多くの幾何学的形状を処理できるようにする。制約をベクトル成分レベルで幾何学的形状に適用した後、システムおよび方法は、暗黙的およびユーザ定義の制約を組み入れた平滑な幾何学的形状を出力する。
2018503179.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ読取可能プログラムコードが具現された非一時的コンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能プログラムコードは、少なくとも１つの入力ストロークの幾何学的形状認識を提供する方法を実施するために実行されるよう適合され、前記方法は、
少なくとも１つの入力ストロークに対応する少なくとも１つのプリミティブを認識するステップと、
少なくとも１つの制約を前記少なくとも１つのプリミティブに適用するステップであって、前記少なくとも１つの制約および少なくとも１つのプリミティブは、ベクトル成分レベルで適用される、ステップと、
前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて出力を提供するステップとを備えることを特徴とするコンピュータプログラム製品。
【請求項２】
前記少なくとも１つのプリミティブは複数の入力ストロークを備えることを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項３】
前記少なくとも１つの入力ストロークは、入力表面上で行われる少なくとも１つのユーザジェスチャであることを特徴とする請求項１または２に記載のコンピュータプログラム製品。
【請求項４】
前記少なくとも１つの入力ストロークは前処理され、前記前処理するステップは、前記少なくとも１つの入力ストロークの少なくとも正規化および平滑化を含むことを特徴とする請求項１から３のいずれか一項に記載のコンピュータプログラム製品。
【請求項５】
前記少なくとも１つのプリミティブは、少なくとも１つの点、長さ、または傾斜角からなるものとして前記ベクトル成分レベルで定義されることを特徴とする請求項１から４のいずれか一項に記載のコンピュータプログラム製品。
【請求項６】
前記少なくとも１つの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして前記ベクトル成分レベルで定義されることを特徴とする請求項５に記載のコンピュータプログラム製品。
【請求項７】
前記少なくとも１つのプリミティブに適用すべき前記少なくとも１つの制約は、前記少なくとも１つのプリミティブに関連付けられていることを特徴とする請求項１から６のいずれか一項に記載のコンピュータプログラム製品。
【請求項８】
前記前処理された少なくとも１つの入力ストロークは、前記少なくとも１つの入力ストロークがジェスチャであるかどうかを決定するために分析され、前記少なくとも１つの入力ストロークがジェスチャである場合、前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて少なくとも１つのさらなる制約を前記出力に提供することができることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項９】
前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて前記出力に適用すべきグラフィック編集命令を提供することを特徴とする請求項８に記載のコンピュータプログラム製品。
【請求項１０】
前記グラフィック編集命令は、少なくとも削除命令を備えることを特徴とする請求項９に記載のコンピュータプログラム製品。
【請求項１１】
前記少なくとも１つの制約が複数の制約を備える場合、前記複数の制約は優先順位に基づいて前記少なくとも１つのプリミティブに適用され、前記優先順位は、前記少なくとも１つのプリミティブの整合性を保持する制約、前記少なくとも１つのプリミティブに暗黙的な制約、およびジェスチャによって定義される制約を備えることを特徴とする請求項１から１０のいずれか一項に記載のコンピュータプログラム製品。
【請求項１２】
前記可能な少なくとも１つの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項１から１１のいずれか一項に記載のコンピュータプログラム製品。
【請求項１３】
前記可能な少なくとも１つの制約は、傾斜角の制約、長さの制約、射影の制約、接点の制約、傾斜角の差の制約、長さ比率の制約、長さ合計の制約、または存在の制約のうちの少なくとも１つを備えることを特徴とする請求項１から１２のいずれか一項に記載のコンピュータプログラム製品。
【請求項１４】
前記少なくとも１つのプリミティブは、線セグメント、円、楕円、円の弧、楕円の弧、および点のうちの少なくとも１つを備えることを特徴とする請求項１から１３のいずれか一項に記載のコンピュータプログラム製品。
【請求項１５】
少なくとも１つの入力ストロークの幾何学的形状認識を提供するための方法であって、
少なくとも１つの入力ストロークに対応する少なくとも１つのプリミティブを認識するステップと、
少なくとも１つの制約を前記少なくとも１つのプリミティブに適用するステップであって、前記少なくとも１つの制約および少なくとも１つのプリミティブは、ベクトル成分レベルで適用される、ステップと、
前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて出力を提供するステップとを備えることを特徴とする方法。
【請求項１６】
前記少なくとも１つのプリミティブは複数の入力ストロークを備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つの入力ストロークは、入力表面上で行われる少なくとも１つのユーザジェスチャであることを特徴とする請求項１５または１６に記載の方法。
【請求項１８】
前記少なくとも１つの入力ストロークは前処理され、前記前処理するステップは、前記少なくとも１つの入力ストロークの少なくとも正規化および平滑化を含むことを特徴とする請求項１５から１７のいずれか一項に記載の方法。
【請求項１９】
前記少なくとも１つのプリミティブは、少なくとも１つの点、長さ、または傾斜角からなるものとして前記ベクトル成分レベルで定義されることを特徴とする請求項１５から１８のいずれか一項に記載の方法。
【請求項２０】
前記少なくとも１つの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして前記ベクトル成分レベルで定義されることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記少なくとも１つのプリミティブに適用すべき前記少なくとも１つの制約は、前記少なくとも１つのプリミティブに関連付けられていることを特徴とする請求項１５から２０のいずれか一項に記載の方法。
【請求項２２】
前記前処理された少なくとも１つの入力ストロークは、前記少なくとも１つの入力ストロークがジェスチャであるかどうかを決定するために分析され、前記少なくとも１つの入力ストロークがジェスチャである場合、前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて少なくとも１つのさらなる制約を前記出力に提供することができることを特徴とする請求項１８に記載の方法。
【請求項２３】
前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて前記出力に適用すべきグラフィック編集命令を提供することを特徴とする請求項２２に記載の方法。
【請求項２４】
前記グラフィック編集命令は、少なくとも削除命令を備えることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記少なくとも１つの制約が複数の制約を備える場合、前記複数の制約は優先順位に基づいて前記少なくとも１つのプリミティブに適用され、前記優先順位は、前記少なくとも１つのプリミティブの整合性を保持する制約、前記少なくとも１つのプリミティブに暗黙的な制約、およびジェスチャによって定義される制約を備えることを特徴とする請求項１５から２４のいずれか一項に記載の方法。
【請求項２６】
前記可能な少なくとも１つの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項１５から２５のいずれか一項に記載の方法。
【請求項２７】
前記可能な少なくとも１つの制約は、傾斜角の制約、長さの制約、射影の制約、接点の制約、傾斜角の差の制約、長さ比率の制約、長さ合計の制約、または存在の制約のうちの少なくとも１つを備えることを特徴とする請求項１５から２６のいずれか一項に記載の方法。
【請求項２８】
前記少なくとも１つのプリミティブは、線セグメント、円、楕円、円の弧、楕円の弧、および点のうちの少なくとも１つを備えることを特徴とする請求項１５から２７のいずれか一項に記載の方法。
【請求項２９】
コンピュータ読取可能プログラムコードが具現された非一時的コンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能プログラムコードは、少なくとも１つの入力ストロークの幾何学的形状認識を提供する方法を実施するために実行されるよう適合され、前記方法は、
少なくとも１つの入力ストロークを前処理するステップと、
前記少なくとも１つの入力ストロークがジェスチャであるかどうかを決定するために、前記前処理された前記少なくとも１つの入力ストロークを分析するステップであって、
前記少なくとも１つの入力ストロークがジェスチャではない場合、
前記少なくとも１つの入力ストロークに対応する少なくとも１つのプリミティブを認識するステップと、
少なくとも１つの制約を前記少なくとも１つのプリミティブに適用するステップであって、前記少なくとも１つの制約および前記少なくとも１つのプリミティブは、前記ベクトル成分レベルで適用される、ステップと、
前記少なくとも１つの入力ストロークがジェスチャである場合、前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて少なくとも１つのさらなる制約を出力に提供し、前記少なくとも１つの制約および前記少なくとも１つのプリミティブはベクトル成分レベルで適用される、ステップと、
前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて出力を提供するステップとを備えることを特徴とするコンピュータプログラム製品。
【請求項３０】
前記少なくとも１つのプリミティブは複数の入力ストロークを備えることを特徴とする請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
前記少なくとも１つの入力ストロークは、入力表面上で行われる少なくとも１つのユーザジェスチャであることを特徴とする請求項２９または３０に記載のコンピュータプログラム製品。
【請求項３２】
前記少なくとも１つのプリミティブは、少なくとも１つの点、長さ、または傾斜角からなるものとして前記ベクトル成分レベルで定義されることを特徴とする請求項２９から３２のいずれか一項に記載のコンピュータプログラム製品。
【請求項３３】
前記少なくとも１つの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして前記ベクトル成分レベルで定義されることを特徴とする請求項３２に記載のコンピュータプログラム製品。
【請求項３４】
前記少なくとも１つのプリミティブに適用すべき前記少なくとも１つの制約は、前記少なくとも１つのプリミティブに関連付けられていることを特徴とする請求項２９から３３のいずれか一項に記載のコンピュータプログラム製品。
【請求項３５】
前記ジェスチャは、前記少なくとも１つの制約の前記少なくとも１つのプリミティブへの適用に基づいて前記出力に適用すべきグラフィック編集命令を提供することを特徴とする請求項２９から３４のいずれか一項に記載のコンピュータプログラム製品。
【請求項３６】
前記グラフィック編集命令は、少なくとも削除命令を備えることを特徴とする請求項３５に記載のコンピュータプログラム製品。
【請求項３７】
前記少なくとも１つの制約が複数の制約を備える場合、前記複数の制約は優先順位に基づいて前記少なくとも１つのプリミティブに適用され、前記優先順位は、前記少なくとも１つのプリミティブの整合性を保持する制約、前記少なくとも１つのプリミティブに暗黙的な制約、およびジェスチャによって定義される制約を備えることを特徴とする請求項２９から３６のいずれか一項に記載のコンピュータプログラム製品。
【請求項３８】
前記可能な少なくとも１つの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項２９から３７のいずれか一項に記載のコンピュータプログラム製品。
【請求項３９】
前記可能な少なくとも１つの制約は、傾斜角の制約、長さの制約、射影の制約、接点の制約、傾斜角の差の制約、長さ比率の制約、長さ合計の制約、または存在の制約のうちの少なくとも１つを備えることを特徴とする請求項２９から３８のいずれか一項に記載のコンピュータプログラム製品。
【請求項４０】
前記少なくとも１つのプリミティブは、線セグメント、円、楕円、円の弧、楕円の弧、および点のうちの少なくとも１つを備えることを特徴とする請求項２９から３９のいずれか一項に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれ、その一部となる、２０１４年１２月２日に出願した米国特許出願公開第１４／５５８，１８１号明細書の優先権を主張するものである。
【０００２】
本発明は、概して、幾何学的形状のユーザ入力を認識することができるコンピューティングデバイスインターフェイスの分野に関する。
【背景技術】
【０００３】
コンピューティングデバイスは、日常生活にさらに広く普及し続けている。そのようなデバイスは、コンピュータデスクトップ、ラップトップ、タブレットＰＣ、ｅブックリーダー、インタラクティブホワイトボード、携帯電話、スマートフォン、ウェアラブルコンピュータ、全地球測位システム（ＧＰＳ）ユニット、エンタープライズデジタルアシスタント（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどの形態をとる。さらに、コンピューティングデバイスは、自動車、トラック、農機具、製造機器、建設環境制御（たとえば、照明、ＨＶＡＣ）、ならびに家庭および商用電化製品に組み入れられている。
【０００４】
コンピューティングデバイスは一般に、中央演算処理装置（ＣＰＵ）のような、少なくとも１つの処理要素、何らかの形態のメモリ、ならびに入力および出力デバイスからなる。多種多様なコンピューティングデバイスおよびそれらに伴う用途は、さまざまな入力デバイスを必要とする。入力デバイスの１つのタイプは、タッチスクリーンまたはタッチパッドのようなタッチセンシティブ表面であり、ユーザ入力は、ユーザの指またはペンもしくはスタイラスのような器具と、タッチセンシティブ表面の間の接触を通じて受信される。入力デバイスのもう１つのタイプは、入力表面の上で、入力表面には接触せずに、ユーザによって行われた動きを感知する入力表面である。これらの入力の方法はいずれも、一般に、形状を描画または入力するために使用されてもよい。ユーザ入力が形状である場合、コンピューティングデバイスは、たとえばオンライン幾何学的形状認識システムまたは方法を使用してユーザの自然な描画技法を解釈する必要がある。
【０００５】
一般に、オンライン幾何学的形状認識システムまたは方法は、ユーザがタッチセンシティブ表面に触れるとき（ペンダウン）のようなストロークの開始、ユーザがタッチセンシティブ表面に触れるのをやめるとき（ペンアップ）のようなストロークの終了、およびユーザがストロークの開始と終了の間にその指またはペンで行う任意の動き（つまりストローク）を監視する。
【０００６】
オンライン幾何学的形状認識システムまたは方法は、シングルストロークまたはマルチストロークとして分類されてもよい。シングルストローク認識は、各シングルストロークを別個の基本要素（プリミティブ）として分析する。プリミティブは、幾何学的形状である。システムは、シングルストロークのプリミティブのみを利用することができるか、またはそれ以外の場合には複数ストロークを必要とするであろうプリミティブの簡略表記を利用することができる。これらのシングルストロークシステムまたは方法は通常、入力エラーが少ないが、簡略表記が使用される場合、マルチストロークプリミティブのストロークパターンを記憶するようユーザに求めることがある。マルチストローク認識システムは、自然な描画を認識することができ、簡略表記を学習する必要がないので、ユーザにとってより直観的である。
【０００７】
シングルまたはマルチストロークシステムのいずれを使用するかにかかわらず、オンライン幾何学的形状認識システムまたは方法は、通常、前処理、プリミティブ認識、および制約解決からなる。実際には、オンライン幾何学的形状認識システムまたは方法は、これらのステップを追加のステップと共に含むことができる。さらに、オンライン幾何学的形状認識システムまたは方法は、各ステップを明確には概説していない場合があるか、または代替の順序でステップを実行することができる。
【０００８】
前処理は通常、無関連な入力データを廃棄し、正規化するステップ、サンプリングするステップ、および関連データからノイズを除去するステップを含む。
【０００９】
プリミティブ認識は、入力データを、基本モデル（たとえば、線、円、楕円、弧、および点）のセットに基づいて、個々の線、形状、またはその他のセグメントに分解するさまざまな方法を指定する。プリミティブ認識は一般に、セグメントを、可能なプリミティブ候補に関連付ける。プリミティブは、基本（たとえば、線セグメント、円、楕円、円の弧、楕円の弧、および点）からさらに複雑なもの（たとえば、正弦曲線、スプライン、ベジエ、およびパラメトリック関数プロット）まで、任意のタイプの形状または曲線であってもよい。プリミティブ候補は、シングルストローク、マルチストローク、および／または形状の幾何学的変形を備えることができる。プリミティブ認識はまた、入力データが幾何学的形状またはジェスチャ（たとえば、すでに入力された幾何学的形状の関係についての追加情報を提供する入力ストローク）のいずれであるかを決定するジェスチャ決定によって先行されてもよい。
【００１０】
制約解決は一般に、プリミティブを、制約（たとえば、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性）のセットと照合するステップを含む。通常、制約は、プリミティブレベルで定義される、つまりこれらは固有のプリミティブに関連付けられている。制約は、暗黙的または明示的であってもよい。暗黙的制約は、システムが、プリミティブのユーザ入力に基づいて制約を推論するような場合である。たとえば、システムまたは方法は、２つの線が直角を成すほど十分に接近していることを検出し、直角制約が適用されるべきであると推論して、２つの垂直線を出力することができる。この例において、直角性は、暗黙的制約の例である。明示的制約は、ユーザが、適用すべき追加の制約を明示的に指定するような場合である。たとえば、システムまたは方法は、２つの線が直角を成すよう意図されていたことは検出しない場合がある。ユーザは、この明示的制約を提供するように追加のジェスチャを入力することができる。オンライン幾何学的形状認識システムまたは方法は、暗黙的および明示的制約の両方を認識することができる。プリミティブのセットおよび制約のセットが構築されると、制約解決の方法は、最大数の可能な制約を実施する。制約解決に続いて、オンライン幾何学的形状認識システムまたは方法は、平滑な幾何学的形状を出力する。
【００１１】
プリミティブレベルにおける制約解決は通常、制約が概してプリミティブレベルで定義され、プリミティブタイプに密接にリンクされているので、システムが分析することができるプリミティブおよび制約の数に制限がある。システムに導入される新しいプリミティブまたは制約は各々、プリミティブと制約の間にさらに飛躍的に多くの関係を生じさせ、制約解決中に分析するさらに飛躍的に多くの可能性を作り出す。
【００１２】
本発明のシステムおよび方法は、プリミティブレベルではなく、ベクトル成分レベルにおいて制約を定義することによって、ユーザ入力認識の結果を向上させる。制約をベクトル成分レベルで定義することにより、システムおよび方法は、ますます膨大になるプリミティブおよび制約のセットをより良好に処理することができる。
【発明の概要】
【００１３】
後段の本明細書において説明される本発明の例は、オンライン幾何学的形状認識において使用する方法、システム、およびソフトウェアを提供する。これらは、ユーザが幾何学的形状を、一枚の紙の上で行うように、コンピューティングデバイスに入力できるようにする。本発明の形状認識システムおよび方法は、入力表面の形態をとる入力デバイスに接続されたコンピューティングデバイスを含む。ユーザは、自身の指またはスタイラスもしくはペンのような器具を使用して、入力表面に圧を加えるか、または入力表面の上でジェスチャを行うことによって入力を提供することができる。本発明のシステムおよび方法は、入力ストロークを監視する。入力ストロークを前処理した後、本発明のシステムおよび方法は、入力ストロークがジェスチャであるかどうかを決定する。入力ストロークがジェスチャである場合、本発明のシステムおよび方法は、ジェスチャを命令（たとえば、追加の制約を追加するか、または描画を削除する）と照合して、既存の描画に適用する。入力がジェスチャではない場合、本発明のシステムおよび方法は、どのプリミティブが入力ストロークと密接に一致するかを決定する。最後に、本発明のシステムおよび方法は、制約のセットをプリミティブのセットに適用して、平滑な幾何学的形状を出力する。出力が出力デバイス上に描画として表示された後、ユーザは、さらに多くの形状または制約で出力された描画を調整または装飾する。
【００１４】
１つの態様において、開示されるシステムおよび方法は、ユーザの自然な描画スタイルを解釈してクリーンアップされた幾何学的形状を出力することができるオンライン幾何学的形状認識システムおよび方法を提供する。これは、ユーザが制約を明示的に定義するために使用することができるプリミティブまたはジェスチャに、入力ストロークが関連付けられるシステムおよび方法を提供することによって行われてもよい。ユーザ入力に関連付けられているプリミティブおよび制約を使用して、システムは、平滑な幾何学的形状を出力することができる。
【００１５】
別の態様において、開示されるシステムおよび方法は、制約のより単純な定義をもたらす。これは、プリミティブレベルではなく、ベクトル成分レベルで制約を定義するシステムおよび方法を提供することによって行われてもよい。
【００１６】
別の態様において、開示されるシステムおよび方法は、プリミティブと制約をベクトル成分レベルで関係付ける。これは、プリミティブをベクトル成分のセットに分解して、制約とプリミティブの関係をベクトル成分レベルで分析するシステムおよび方法を提供することによって行われてもよい。
【００１７】
別の態様において、開示されるシステムおよび方法は、出力のさらなる編集を可能にするオンライン幾何学的形状認識システムおよび方法を提供する。これは、特定の入力編集ジェスチャを認識するシステムおよび方法を提供することによって行われてもよい。
【００１８】
本発明のシステムおよび方法は、図面と併せて、その例の以下の詳細な説明を読めばさらに深く理解されるであろう。
【図面の簡単な説明】
【００１９】
【図１】本発明のシステムの例によるコンピューティングデバイスを示すブロック図である。
【図２】本発明のシステムの例によるオンライン幾何学的形状認識のためのシステムを示すブロック図である。
【図３Ａ】本発明のシステムの例による可能な直角の制約を示す図形表現図である。
【図３Ｂ】本発明のシステムの例による可能な長さの等価の制約を示す図形表現図である。
【図３Ｃ】本発明のシステムの例による可能な角度の等価の制約を示す図形表現図である。
【図３Ｄ】本発明のシステムの例による可能な平行性の制約を示す図形表現図である。
【図３Ｅ】本発明のシステムの例による直線セグメントの端部を伴う可能な接点の制約を示す図形表現図である。
【図３Ｆ】本発明のシステムの例による直線セグメントの端部および直線セグメントを伴う可能な接点の制約を示す図形表現図である。
【図３Ｇ】本発明のシステムの例による直線セグメントおよび円の一部を伴う可能な接点の制約を示す図形表現図である。
【図４Ａ】本発明のシステムの例による可能なユーザ入力を示す図形表現図である。
【図４Ｂ】本発明のシステムの例による可能な出力を示す図形表現図である。
【図４Ｃ】本発明のシステムの例による可能な追加のユーザ入力を伴う可能な出力を示す図形表現図である。
【図４Ｄ】本発明のシステムの例による可能な出力を示す図形表現図である。
【図４Ｅ】本発明のシステムの例による可能な追加のユーザ入力を伴う可能な出力を示す図形表現図である。
【図４Ｆ】本発明のシステムの例による可能な出力を示す図形表現図である。
【図５Ａ】本発明のシステムの例による可能なユーザ入力を示す図形表現図である。
【図５Ｂ】本発明のシステムの例による可能な追加のユーザ入力を伴う可能な出力を示す図形表現図である。
【図５Ｃ】本発明のシステムの例による可能な出力を示す図形表現図である。
【発明を実施するための形態】
【００２０】
以下の詳細な説明において、関連する教示を十分に理解できるようにするために、多数の具体的な詳細が例を用いて示される。しかし、本発明の教示が、そのような詳細を伴うことなく実施され得ることは、当業者には明らかである。その他の例において、よく知られている方法、手順、コンポーネント、および／または回路については、本発明の教示の態様を必要以上に不明瞭にすることを避けるため、比較的高レベルにおいて、詳細を伴うことなく説明されている。
【００２１】
本明細書において説明されるさまざまな技術は、概して、オンライン幾何学的形状認識に関する。本明細書において説明されるシステムおよび方法は、プリミティブ認識および制約解決のプロセスを通じてユーザの自然な描画スタイル入力を認識するために使用されてもよい。制約解決のプロセスは、ベクトル成分レベルにおけるプリミティブおよび制約の分解および比較を含むことができる。
【００２２】
図１は、例示的なコンピューティングデバイス１００を示すブロック図である。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップ、タブレットＰＣ、ｅブックリーダー、携帯電話、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム（ＧＰＳ）ユニット、エンタープライズデジタルアシスタント（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどであってもよい。デバイス１００は、少なくとも１つの処理要素、何らかの形態のメモリ、ならびに入力および／または出力（Ｉ／Ｏ）デバイスを含む。コンポーネントは、コネクタ、配線、バス、ケーブル、バッファ、電磁リンク、ネットワーク、モデム、変換器、ＩＲポート、アンテナ、または当業者に知られているその他のもののような、入力および出力を通じて相互に通信する。
【００２３】
デバイス１００は、少なくとも１つの入力表面１０４を含む。入力表面１０４は、抵抗性、弾性表面波、容量性、赤外線グリッド、赤外線アクリルプロジェクション、光学イメージング、分散信号技術、音響パルス認識、または当業者に知られている任意の他の適切な技術のような技術を採用することができる。入力表面１０４は、その境界を明確に識別する永続的またはビデオ生成の境界によって領域が定められてもよい。
【００２４】
入力表面１０４に加えて、デバイス１００は、ローカルインターフェイスを介して通信可能に結合される１つまたは複数の追加の入出力デバイス（または周辺機器）を含むことができる。ローカルインターフェイスは、コントローラ、バッファ（キャッシュ）、ドライバ、リピータ、および受信器のような、通信を可能にするための追加要素を有することができ、これらは簡略にするために省略されているが当業者には知られている。さらに、ローカルインターフェイスは、その他のコンピュータコンポーネント間の適切な通信を可能にするために、アドレス、制御、および／またはデータ結合を含むことができる。
【００２５】
１つのそのような入出力デバイスは、画像、テキスト、およびビデオのようなデータを、コンピューティングデバイスから出力するための、少なくとも１つのディスプレイ１０２であってもよい。ディスプレイ１０２は、ＬＣＤ、プラズマ、ＣＲＴ、または当業者に知られている任意の他の適切な技術を使用することができる。ディスプレイ１０２の少なくとも一部または全部は、入力表面１０４と共同設置されてもよい。その他の追加の入出力デバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダー、レーザーリーダー、無線周波数デバイスリーダー、または当業者に知られている任意の他の適切な技術のような入力デバイスを含むことができる。さらに、入出力デバイスはまた、プリンタ、バーコードプリンタ、または当業者に知られている任意の他の適切な技術のような出力デバイスを含むことができる。最後に、入出力デバイスは、変調器／復調器（モデム：別のデバイス、システム、またはネットワークにアクセスするため）、無線周波数（ＲＦ）またはその他の送受信機、電話インターフェイス、ブリッジ、ルータ、または当業者に知られている任意の他の適切な技術のような、入力および出力を通信するデバイスをさらに含むことができる。
【００２６】
デバイス１００はまた、プロセッサ１０６を含むが、これはソフトウェア、特にメモリ１０８に格納されているソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、任意のカスタムメードまたは市販の汎用プロセッサ、中央演算処理装置（ＣＰＵ）、半導体ベースのマイクロプロセッサ（マイクロチップまたはチップセットの形態）、マクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特殊用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、状態マシン、または当業者に知られているソフトウェア命令を実行するように設計されたこれらの任意の組合わせであってもよい。適切な市販のマイクロプロセッサの例は、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  ＣｏｍｐａｎｙのＰＡ−ＲＩＳＣシリーズマイクロプロセッサ、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎの８０×８６またはＰｅｎｔｉｕｍシリーズマイクロプロセッサ、ＩＢＭのＰｏｗｅｒＰＣマイクロプロセッサ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、Ｉｎｃ．のＳｐａｒｃマイクロプロセッサ、Ｍｏｔｏｒｏｌａ  Ｃｏｒｐｏｒａｔｉｏｎの６８ｘｘｘシリーズマイクロプロセッサ、ＤＳＰマイクロプロセッサ、またはＡＲＭマイクロプロセッサである。
【００２７】
メモリ１０８は、揮発性メモリ素子（たとえば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどのような、ＲＡＭ））、および不揮発性メモリ素子（たとえば、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気または光テープ、メモリレジスタ、ＣＤ−ＲＯＭ、ＷＯＲＭ、ＤＶＤ、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）、さらに直接アクセスストレージデバイス（ＤＡＳＤ）など）の任意の１つまたは組み合わせを含むことができる。さらに、メモリ１０８は、電子、磁気、光学、および／またはその他のタイプのストレージ媒体を組み入れることができる。メモリ１０８は、さまざまなコンポーネントが相互に離れて位置しているがプロセッサ１０６によってもアクセスされ得る分散アーキテクチャを有することができる。メモリ１０８は、プロセッサ１０６に結合されて、プロセッサ１０６がメモリ１０８から情報を読み取り、メモリ１０８に情報を書き込むことができるようになっている。代替策において、メモリ１０８は、プロセッサ１０６に内蔵型であってもよい。別の例において、プロセッサ１０６およびメモリ１０８はいずれも、単一のＡＳＩＣまたはその他の集積回路に属してもよい。
【００２８】
メモリ１０８内のソフトウェアは、オンライン幾何学的形状認識コンピュータプログラムを含み、これは１つまたは複数の別個のプログラムを含むことができ、プログラムの各々は論理機能を実施するための実行可能命令の順序付きリストを備える。オペレーティングシステム１１０は、オンライン幾何学的形状認識コンピュータプログラムの実行を制御する。オペレーティングシステム１１０は、ＷＥＢＯＳ、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣおよびＩＰＨＯＮＥ  ＯＳ（登録商標）、ＬＩＮＵＸ、ならびにＡＮＤＲＯＩＤ（登録商標）のような、任意の専有オペレーティングシステムまたは市販のオペレーティングシステムであってもよい。その他のオペレーティングシステムもまた、本明細書において開示されるシステムおよび方法の精神を逸脱することなく利用されてもよいことが理解されよう。
【００２９】
メモリ１０８は、本明細書において説明される幾何学的形状認識、全く異なる機能、またはその両方に関連するその他のアプリケーションプログラム１１２を含むことができる。アプリケーション１１２は、製造時にデバイス１００に提供されているプログラムを含み、製造後にデバイス１００にダウンロードされるプログラムをさらに含むことができる。一部の例は、テキストエディタ、電話ダイアラー、コンタクトディレクトリ、インスタントメッセージング機能、コンピュータ支援設計（ＣＡＤ）プログラム、電子メールプログラム、ワードプロセッシングプログラム、Ｗｅｂブラウザ、およびカメラを含む。
【００３０】
サポートおよび準拠の機能を伴うオンライン幾何学的形状認識コンピュータプログラムは、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプト、または実行されるべき命令のセットを備える任意の他のエンティティであってもよい。ソースプログラムの場合、プログラムは、オペレーティングシステムに関連して適切に動作するように、メモリ内に含まれることも含まれないこともある、コンパイラ、アセンブラ、インタープリタなどを介して解釈される必要がある。さらに、サポートおよび準拠の機能を伴うオンライン幾何学的形状認識コンピュータプログラムは、（ａ）データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、（ｂ）ルーチン、サブルーチン、および／または関数を有するプロシージャ型プログラミング言語、たとえばＣ、Ｃ＋＋、Ｐａｓｃａｌ、Ｂａｓｉｃ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、Ｐｅｒｌ、Ｊａｖａ（登録商標）、およびＡｄａ（ただし、これらに限定されることはない）、または（ｃ）関数型プログラミング言語、たとえばＨｏｐｅ、Ｒｅｘ、Ｃｏｍｍｏｎ  Ｌｉｓｐ、Ｓｃｈｅｍｅ、Ｃｌｏｊｕｒｅ、Ｒａｃｋｅｔ、Ｅｒｌａｎｇ、ＯＣａｍｌ、Ｈａｓｋｅｌｌ、およびＦ＃（ただし、これらに限定されることはない）、として書かれてもよい。
【００３１】
システムは、プロセッサ１０６が、入力表面１０４を介してユーザが入力したストロークを検出すると、開始されてもよい。ユーザは、指またはペンもしくはスタイラスのような何らかの器具でストロークを入力することができる。入力表面１０４上の動きを感知する技術が使用されている場合、ユーザはまた、入力表面１０４の上でジェスチャを行うことによってストロークを入力することができる。ストロークは、少なくともストローク開始位置、ストローク終了位置、およびユーザがストローク開始および終了位置を接続するパスによって特徴付けられる。
【００３２】
図２は、本発明のシステムの例によるオンライン幾何学的形状認識のためのシステムを示す概略図である。少なくとも１つの入力ストローク１１３で開始されると、システムはストロークを前処理する１１４。前処理１１４は、入力を平滑化するためにＢスプライン近似のようなサイズ正規化および／または方法を適用することによって、ストローク開始および終了位置を接続するパスを正規化するステップを含むことができる。
【００３３】
前処理後、システムは、既存の描画のコンテキストにおいてストロークがジェスチャであるかどうかを決定する。ジェスチャは、既存の描画に関する追加情報を提供する入力ストロークである。ジェスチャ決定１１６がジェスチャを認識する場合、システムは、入力をジェスチャ認識１２０に渡す。次いで、システムは、ユーザが既存の幾何学的形状に課したいと望む明示的な制約を定義する注記として、入力を認識することができる。１つの実施形態において、ジェスチャ認識１２０は、プリミティブと比較したジェスチャストロークおよびそれらの位置のポリライン近似に基づいて手動で調整されたヒューリスティックを使用して、ジェスチャを検出し、既存の描画のコンテキストにおいてそれらを区別することができる。しかし、当業者に知られている任意のジェスチャ認識１２０が使用されてもよい。認識されたジェスチャは、制約解決の方法１２２に渡される。制約解決の方法１２２は、後段において説明される。ジェスチャはまた、フィル、シェーディング、または削除命令のような、グラフィック編集命令に関連付けられてもよい。この場合、ジェスチャは、グラフィック編集１２４に渡される。
【００３４】
グラフィック編集１２４は、既存の出力１２６を編集するための、当業者に知られている任意の方法であってもよい。そのようなグラフィック編集１２４は通常、ジェスチャ認識１２０および出力１２６からの情報を使用して、現在の描画を、消去し、パターンまたは色で形状内を塗りつぶし、濃さを変更するかもしくは特定の先をハイライトするか、または現在の出力１２６を当業者に知られている方法で編集することによって、現在の描画を調整する。
【００３５】
ジェスチャ決定１１６がジェスチャを検出しない場合、入力は、プリミティブ認識１１８に渡される。プリミティブは、基本幾何学的形状（たとえば、線セグメント、円、楕円、円の弧、楕円の弧、および点）または加えてさらに複雑な形状（たとえば、正弦曲線、スプライン、ベジエ、およびパラメトリック関数プロット）を含むことができる。システムはまた、「ジャンク」プリミティブを定義することもでき、これはシステムに入力を未認識のプリミティブとして廃棄させる。システムで定義されているプリミティブの数に応じて、プリミティブ認識１１８は、各ストロークを処理すべき別個のプリミティブとして扱うシングルストロークプリミティブ認識を含むことができる。プリミティブ認識１１８はまた、複数の連続する入力ストロークを単一のプリミティブとして扱うマルチストローク認識を含むこともできる。
【００３６】
システムは、当業者に知られているシングルおよびマルチストローク認識の方法の任意の組み合わせを採用して、どのプリミティブが入力１１３に最も密接に一致するかを決定することができる。プリミティブ認識１１８の１つの例は、入力１１３にすべてのプリミティブをフィットさせ、各フィッティングの試行ごとにスコアを与えることである。次いで、最善の全フィッティングスコアに基づいて入力ストロークのすべてを網羅するようにプリミティブの最善セットを選択するために、動的プログラミングが使用されてもよい。プリミティブの最善セットが選択されると、プリミティブのセットは、制約解決の方法１２２に送信される。
【００３７】
制約解決の方法１２２は、プリミティブ認識１１８、ジェスチャ認識１２０、および／または出力１２６からの入力を受信することができる。制約は、プリミティブをリンクする（たとえば、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性）。図３Ａ〜図３Ｇは、可能な制約の図形表現図である。各事例において、左端の図は入力１１３であり、右端の図は出力１２６である。中央の図は、制約解決の方法１２２による制約の適用である。制約は、プリミティブ認識１１８によって提供されるプリミティブに応じて制約解決の方法１２２により推論される、暗黙的なものであってもよいか、またはジェスチャを通じてユーザによって定義される、明示的なものであってもよい。たとえば、制約解決の方法１２２は、図３Ａにおいてユーザによって入力された２つの線セグメントが垂直となるよう意図されたと推論し、自動的に直角性の制約を適用して、図３Ａの右端の図を出力する１３２。この例において、中央の図１３０は、直角性の制約を内部に追加する制約解決の方法１２２を表す。
【００３８】
別の例において、制約解決の方法１２２は、図３Ａにおいてユーザが２つの垂直の線セグメントを意図していたことを検出しない場合があり、中央の図１３０で非垂直の線セグメントを出力する。次いで、ユーザは、２つの線セグメントの接点に正方形１３４の注記を付け、これをシステムはジェスチャと認識する。ジェスチャ認識１２０は、このジェスチャを制約解決の方法１２２に渡し、これは図３Ａの右端の図の出力１３２に見られるように、出力を２つの垂直な線セグメントとなるように調整する。
【００３９】
図３Ａ〜図３Ｇにおいて、制約は、制約解決の方法１２２によって推論されるか、またはユーザによって明示的に注記を付けられてもよい。これらの図の注記（つまり、図３Ａの直角性についての正方形１３４、図３Ｂの長さの等価についての２つの短い線セグメント１３６、図３Ｃの角度の等価に対する２つの弧１３８、図３Ｄの平行性についての２つの矢印１４０、図３Ｅの接点を形成する線セグメントの端部を囲む円１４２、図３Ｆの接点を形成する線セグメントの端部と線セグメントを囲む円１４４、および図３Ｇの接点または接点についての線セグメントと円の一部を囲む円１４６）は、１つの実施形態であり、本発明のシステムおよび方法は、これらの制約およびその他の制約についての任意のジェスチャを使用することができる。さらに、プリミティブに本来関連付けられている制約は、制約解決の方法１２２に先立って、プリミティブ認識１１８によって推論されてもよい。たとえば、プリミティブ認識１１８は、入力から正方形を認識し、また４つの等しい辺、４つの直角内角、および平行な対辺という制約を適用することができる。プリミティブ認識１１８が、ポリラインを認識する場合、これはまた、線が交差する接点の制約を適用することができる。しかし、明確にするため、本明細書では制約解決の方法１２２のみを参照するが、たとえプリミティブ認識１１８が場合によってはこの機能を処理することができると想定されるとしても、すべての制約を適用するものとする。
【００４０】
制約解決の方法１２２は、プリミティブレベルではなく、ベクトル成分レベルにおいて制約およびプリミティブを定義するステップを含む。プリミティブレベルにおいて制約を定義する場合、制約は固有のプリミティブに関連付けられる。しかし、制約をベクトル成分レベルで定義することにより、ユーザは、作業を飛躍的に追加することなく、追加の制約およびプリミティブを追加することができる。たとえば、接点の制約が２つの線セグメントによりプリミティブレベルにおいて定義されて適用される場合、これは線セグメントの始点または終点に最初に関連付けられる必要がある。円のプリミティブが本発明のシステムおよび方法に追加されると、接点の制約はまた、その他の線セグメントの外在性と共に円中心に関連付けられる必要がある。この制約は、楕円およびその他のより複雑なプリミティブが本発明のシステムおよび方法に追加されると、たとえ制約が単に２点の間の接点を定義するだけであったとしても、さらにいっそう複雑なものになる。
【００４１】
複雑さのこの飛躍的な増大を回避するため、制約解決の方法１２２は、方法が点の間の関係に注目するように、プリミティブおよび制約の両方をベクトル成分レベルにおいて分解する。１つの実施形態において、制約解決の方法１２２は、点、長さ、および傾斜角という少なくとも３つの項目を定義することができる。プリミティブを項目として定義するため、制約解決の方法１２２は、プリミティブをこれらの項目に分解することができる。たとえば、線セグメントプリミティブは、２つの先端点、傾斜、および長さによって定義されてもよい。別の例は、中央点および半径長さによって定義される円のプリミティブである。プリミティブを項目に分解することで、制約解決の方法１２２は、ベクトル成分の制約を適用する。たとえ制約解決の方法１２２がプリミティブをそれらのベクトル成分項目に分解するステップを含むことができる場合であっても、その他の実施形態において、プリミティブ認識１１８は、情報を制約解決の方法１２２に渡すステップに先立って、プリミティブをベクトル成分に分解することができる。この代替の実施形態において、プリミティブ認識１１８からのプリミティブ項目は、引き続き、制約解決の方法１２２によってそれらに適用される制約を有する。
【００４２】
プリミティブレベルで定義される制約とは異なり、ベクトル成分レベルにおいて定義される制約は、項目をリンクする。ベクトル成分の制約は、以下の事項を含むことができる。
−  ２つの点と１つの傾斜角の間で定義される傾斜角の制約
−  ｜｜ＡＢ｜｜＝Ｌとなるように２つの点（Ａ，Ｂ）と１つの長さ（Ｌ）の間で定義される長さの制約
−  Ｂが距離（Ｌ）における傾斜（ｓ）をたどるＡの射影である、およびその逆であるように、２つの点（Ａ，Ｂ）、長さ（Ｌ）、および傾斜（ｓ）の間で定義される射影の制約
−  Ａ＝Ｂであるように２つの点（Ａ，Ｂ）の間で定義される接点の制約
−  ｓ２−ｓ１＝ｖとなるように２つの傾斜角（ｓ１，ｓ２）と所与の値（ｖ）の間で定義される傾斜角の差の制約
−  Ｌ１／Ｌ２＝ｒとなるように２つの長さ（Ｌ１，Ｌ２）と所与の値（ｒ）の間で定義される長さ比率の制約
−  ||ＡＣ||＋||ＢＣ||＝Ｌとなるように３つの点（Ａ，Ｂ，Ｃ）と１つの長さ（Ｌ）の間で定義される長さ合計の制約
−  任意の点について定義され、孤立して他のどの制約によってもリンクされない場合に有用である、存在の制約
【００４３】
その他の制約は、当業者に知られているような同様の方法で定義されてもよい。さらに、任意の制約は、ベクトル成分制約の組み合わせとして定義されてもよい。ベクトル成分の制約を使用する１つの利点は、制約解決の方法１２２が、その他の項目の一部が既知である場合に項目の値を推論できることである。例として、長さの制約は、２つの点の項目（Ａ、Ｂ）を長さの項目Ｌにリンクする。したがって、ＡおよびＢが既知である場合、Ｌの値は決定されてもよい。逆に、ＡおよびＬが既知である場合、Ｂは、Ａを中心とする半径Ｌの円上のものとして定義されてもよく、この情報はＢの交差パラメータに追加される。ＡとＢを置き換える場合に、同様のことが適用される。プリミティブと制約の両方をベクトル成分レベルで分解することにより、本発明のシステムおよび方法は、さらに多くの状況を解決することができるようになる。
【００４４】
制約解決の方法１２２がプリミティブを項目に分解すると、制約解決の方法１２２は、すべての可能な制約をプリミティブに適用することができるか、または優先度に基づいて固有の制約のリストを構築することができる。制約を階層に配置することにより、制約解決の方法１２２は、相反する制約を適用することを回避する。たとえば、プリミティブの整合性を保持する制約は、高優先度であってもよい。これは、プリミティブがそれらの本来の形状を変更しない（たとえば、円は引き続き点および半径である）ことを保証する。第２の優先度は、制約解決の方法１２２が、ポリラインの接点のようなプリミティブで暗示する制約であってもよい。その他の下位の制約は、ユーザによって明示的に定義されるもの（たとえば、ユーザ定義の平行性）であるか、またはプリミティブのペアについてのもの（たとえば、円に正接交差する線セグメント）であってもよい。しかし、この階層は１つの例に過ぎず、本発明のシステムおよび方法は、当業者が必要とするであろう方法で制約を優先順位付けすることができる。制約解決の方法１２２が適切な制約をプリミティブに適用した後、これはプリミティブを、それらのベクトル成分レベルから再構築して、平滑な幾何学的形状の形態で出力１２６を生成する。
【００４５】
図４Ａ〜図４Ｆは、本発明のシステムの例による長方形およびポリラインに関連する可能な入力および出力を示す図形表現図である。図４Ａは、長方形の入力を示す概略図である。前処理１１４の後、ジェスチャ決定１１６は、この入力をジェスチャとして定義せず、入力をプリミティブ認識１１８に渡す。プリミティブ認識１１８が入力は長方形であると決定した後、情報は、制約解決の方法１２２に渡される。制約解決の方法１２２は、長方形について知られている制約（たとえば、４つの内角において直角で交差し、対辺が平行で等しい長さである４つの線セグメント）を適用する。これは、図４Ｂに示される長方形を出力として生成する。
【００４６】
ユーザは、図４Ｃに示される入力を長方形にさらに追加することができる。プリミティブ認識１１８は、これをポリラインプリミティブとして認識する。制約解決メカニズム１２２はまた、直角である新しいポリラインの中央の接点、および以前の長方形の角との接点を検出する。これは、図４Ｄに示される新しい出力を生成する。ユーザは、検出されていないもう１つの接点を求めて、図４Ｅに示されるように注記１４８を出力に追加することができる。この注記１４８は、ジェスチャとして処理され、接合部を指示するためにジェスチャとして認識され、制約解決の方法１２２に渡される。制約解決の方法は、このジェスチャおよびすべての他の関連する制約と共に出力を取り込み、図４Ｆに示される新しい出力を生成する。
【００４７】
図５Ａ〜図５Ｃは、本発明のシステムの例によるよびポリラインに関連する可能な入力および出力を示す図形表現図である。図５Ａは、ポリラインの入力を示す概略図である。前処理１１４の後、ジェスチャの決定１１６は、この入力をジェスチャとして定義せず、入力をプリミティブ認識１１８に渡す。プリミティブ認識１１８が入力はポリラインであると決定した後、情報は、制約解決の方法１２２に渡される。制約解決の方法１２２は、３つの線セグメント間の２つの接点、第１および第３の線セグメントの間の平行性、２つの角の間の対応する角度の品質、ならびに第１および第２の線セグメントの間の長さの等価、というプリミティブポリラインによって検出された制約を適用する。これは、図５Ｂに示されるポリライン出力を出力として生成する。ユーザは、図５Ｂに示される第２の角度上に追加の小さいボックス注記１５０で示されるように直角性をさらに指示することができる。この注記１５０は、ジェスチャとして処理され、直角性を指示するためにジェスチャとして認識され、制約解決の方法１２２に渡される。制約解決の方法は、このジェスチャおよびすべての他の関連する制約と共に出力を取り込み、図５Ｃに示される新しい出力を生成する。
【００４８】
本発明のオンライン幾何学的形状認識のシステムおよび方法を通じ、プリミティブおよび制約をベクトル成分レベルで分解することにより、ユーザ入力描画の認識に最善の結果が提供される。制約をベクトル成分レベルでプリミティブに適用し、改変されたプリミティブを出力のために再構築することにより、本発明のオンライン幾何学的形状認識のシステムおよび方法は、問題を飛躍的に増大させることなくさらに多くのプリミティブおよび制約を処理することができる。
【００４９】
前述の説明は、最良の形態および／またはその他の例と見なされるものを説明してきたが、さまざまな変更がこれに行われてもよく、本明細書において開示される主題は、さまざまな形態および例示において実施されてもよく、これらが多数のその他の用途、組み合わせ、および環境において適用されてもよく、その一部のみが本明細書において説明されていることを理解されたい。当業者であれば、開示される態様が、主題の真の精神および範囲を逸脱することなく改変または修正されてもよいことを理解するであろう。したがって、主題は、この説明における固有の詳細、添付書類、および示される例に限定されることはない。本明細書において開示される有利な概念の真の範囲に含まれる任意のならびにすべての改変および変形を保護することが意図される。
【図１】
2018503179.tif 000003
【図２】
2018503179.tif 000004
【図３Ａ】
2018503179.tif 000005
【図３Ｂ】
2018503179.tif 000006
【図３Ｃ】
2018503179.tif 000007
【図３Ｄ】
2018503179.tif 000008
【図３Ｅ】
2018503179.tif 000009
【図３Ｆ】
2018503179.tif 000010
【図３Ｇ】
2018503179.tif 000011
【図４Ａ】
2018503179.tif 000012
【図４Ｂ】
2018503179.tif 000013
【図４Ｃ】
2018503179.tif 000014
【図４Ｄ】
2018503179.tif 000015
【図４Ｅ】
2018503179.tif 000016
【図４Ｆ】
2018503179.tif 000017
【図５Ａ】
2018503179.tif 000018
【図５Ｂ】
2018503179.tif 000019
【図５Ｃ】
2018503179.tif 000020
【手続補正書】
【提出日】平成29年6月21日(2017.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ読取可能プログラムコードが具現された非一時的コンピュータ読取可能媒体であって、前記コンピュータ読取可能プログラムコードは、少なくとも１つの入力ストロークの幾何学的形状認識を提供する方法を実施するために実行されるよう適合され、前記方法は、
少なくとも１つの入力ストロークに対応する少なくとも１つの形状のプリミティブを認識するステップと、
前記少なくとも１つの形状のプリミティブを複数のベクトル成分として定義するステップと、
少なくとも１つのベクトルレベル成分の制約を前記ベクトル成分に適用するステップであって、前記少なくとも１つの制約は、前記ベクトル成分の少なくとも２つを幾何学的にリンクする、ステップと、
前記少なくとも１つの制約の前記ベクトル成分への適用に基づいて出力を提供するステップとを備えることを特徴とする非一時的コンピュータ読取可能媒体。
【請求項２】
前記複数のベクトル成分は、少なくとも１つの点、長さ、または傾斜角から選択される成分を含むことを特徴とする請求項１に記載の非一時的コンピュータ読取可能媒体。
【請求項３】
前記少なくとも１つのベクトル成分レベルの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして定義されることを特徴とする請求項１または２に記載の非一時的コンピュータ読取可能媒体。
【請求項４】
前記少なくとも１つのベクトル成分レベルの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項１から３のいずれか一項に記載の非一時的コンピュータ読取可能媒体。
【請求項５】
前記出力を提供するために適用される前記少なくとも１つのベクトル成分レベルの制約を有する前記ベクトル成分から前記認識された少なくとも１つの形状のプリミティブを再構築するステップを備えることを特徴とする請求項１から４のいずれか一項に記載の非一時的コンピュータ読取可能媒体。
【請求項６】
コンピューティングデバイスにおいて少なくとも１つの入力ストロークの幾何学的形状認識を提供するための方法であって、前記コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下にある少なくとも１つの非一時的コンピュータ読取可能媒体とを備え、前記方法は、
前記少なくとも１つの非一時的コンピュータ読取可能媒体により、少なくとも１つの入力ストロークに対応する少なくとも１つの形状のプリミティブを認識するステップと、
前記少なくとも１つの非一時的コンピュータ読取可能媒体により、前記少なくとも１つの形状のプリミティブを複数のベクトル成分として定義するステップと、
前記少なくとも１つの非一時的コンピュータ読取可能媒体により、少なくとも１つのベクトル成分レベルの制約を前記ベクトル成分に適用するステップであって、前記少なくとも１つのベクトル成分レベルの制約は、前記ベクトル成分の少なくとも２つを幾何学的にリンクする、ステップと、
前記少なくとも１つの非一時的コンピュータ読取可能媒体により、前記少なくとも１つのベクトル成分レベルの制約の前記ベクトル成分への適用に基づいて出力を提供するステップとを備えることを特徴とする方法。
【請求項７】
前記複数のベクトル成分は、少なくとも１つの点、長さ、または傾斜角から選択される成分を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記少なくとも１つのベクトル成分レベルの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして定義されることを特徴とする請求項６または７に記載の方法。
【請求項９】
前記少なくとも１つのベクトル成分レベルの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項６から８のいずれか一項に記載の方法。
【請求項１０】
前記出力を提供するために適用される前記少なくとも１つのベクトル成分レベルの制約を有する前記ベクトル成分から前記認識された少なくとも１つの形状のプリミティブを再構築するステップを備えることを特徴とする請求項６から９のいずれか一項に記載の方法。
【請求項１１】
コンピューティングデバイスに実装された、該コンピューティングデバイス上で少なくとも１つの入力ストロークの幾何学的形状認識を提供するためのシステムであって、
少なくとも１つの入力ストロークに対応する少なくとも１つの形状のプリミティブを認識する手段と、
前記少なくとも１つの形状のプリミティブを複数のベクトル成分として定義する手段と、
少なくとも１つのベクトル成分レベルの制約を前記ベクトル成分に適用する手段であって、前記少なくとも１つのベクトル成分レベルの制約は、前記ベクトル成分の少なくとも２つを幾何学的にリンクする、手段と、
前記少なくとも１つのベクトル成分レベルの制約の前記ベクトル成分への適用に基づいて出力を提供する手段とを備えることを特徴とするシステム。
【請求項１２】
前記複数のベクトル成分は、少なくとも１つの点、長さ、または傾斜角から選択される成分を含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記少なくとも１つのベクトル成分レベルの制約は、少なくとも１つの点、長さ、または傾斜角に適用するものとして定義されることを特徴とする請求項１１または１２に記載のシステム。
【請求項１４】
前記少なくとも１つのベクトル成分レベルの制約は、長さの等価、角度の等価、平行性、対称性、アライメント、接点、結合、および直角性のうちの少なくとも１つを備えることを特徴とする請求項１１から１３のいずれか一項に記載のシステム。
【請求項１５】
前記出力を提供するために適用される前記少なくとも１つのベクトル成分レベルの制約を有する前記ベクトル成分から前記認識された少なくとも１つの形状のプリミティブを再構築する手段を備えることを特徴とする請求項１１から１４のいずれか一項に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
図５Ａ〜図５Ｃは、本発明のシステムの例によるよびポリラインに関連する可能な入力および出力を示す図形表現図である。図５Ａは、ポリラインの入力を示す概略図である。前処理１１４の後、ジェスチャの決定１１６は、この入力をジェスチャとして定義せず、入力をプリミティブ認識１１８に渡す。プリミティブ認識１１８が入力はポリラインであると決定した後、情報は、制約解決の方法１２２に渡される。制約解決の方法１２２は、３つの線セグメント間の２つの接点、第１および第３の線セグメントの間の平行性、２つの角の間の対応する角度の等価、ならびに第１および第２の線セグメントの間の長さの等価、というプリミティブポリラインによって検出された制約を適用する。これは、図５Ｂに示されるポリライン出力を出力として生成する。ユーザは、図５Ｂに示される第２の角度上に追加の小さいボックス注記１５０で示されるように直角性をさらに指示することができる。この注記１５０は、ジェスチャとして処理され、直角性を指示するためにジェスチャとして認識され、制約解決の方法１２２に渡される。制約解決の方法は、このジェスチャおよびすべての他の関連する制約と共に出力を取り込み、図５Ｃに示される新しい出力を生成する。
【国際調査報告】
2018503179.tif 000021
2018503179.tif 000022