(57)【要約】コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステム、方法、およびコンピュータプログラム。コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを含み得る。非一時的コンピュータ可読媒体は、媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断し、媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るように構成され得る。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
2019506672.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムであって、各コンピューティングデバイスは、プロセッサと、メモリと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを備え、前記少なくとも１つの非一時的コンピュータ可読媒体は、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断し、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振る
ように構成される、システム。
【請求項２】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項１に記載のシステム。
【請求項３】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項１または請求項２に記載のシステム。
【請求項４】
前記少なくとも１つの非一時的コンピュータ可読媒体は、前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するように構成される請求項３に記載のシステム。
【請求項５】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項４に記載のシステム。
【請求項６】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項５に記載のシステム。
【請求項７】
コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法であって、各コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを備える方法において、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振るステップと
を含む方法。
【請求項８】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項７に記載の方法。
【請求項９】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項７または請求項８に記載の方法。
【請求項１０】
前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するステップを備える請求項９に記載の方法。
【請求項１１】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項１１に記載の方法。
【請求項１３】
コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体であって、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実行するために、前記コンピュータ可読プログラムコードは実行されるように適合され、前記コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つのシステム非一時的コンピュータ可読媒体とを備え、前記方法は、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振るステップとを含む、非一時的コンピュータ可読媒体。
【請求項１４】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項１３または請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するステップを備える請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項１７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によってそれらの全体が本明細書に組み込まれ、その一部をなしている、２０１６年１月２０日に出願された欧州特許出願第１６２９００１５．３号明細書および２０１６年５月１２日に出願された米国特許出願第１５／１５２，７６２号明細書に対する優先権を主張する。
【０００２】
本明細書は概して、コンピューティングデバイスを使って、構造内の複数の手書きされたオブジェクトの入力を認識する分野に関する。本明細書は、より詳細には、入力コンテンツの位置関係および入力コンテンツの手書き文字認識の考慮により、手書きされたコンテンツについての２次元構造を検出することに関する。
【背景技術】
【０００３】
コンピューティングデバイスは、日常生活にとってより見かけるようになり続けている。それらは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ（２−ｉｎ−１）、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ（スマートウォッチ、スマートグラス／ヘッドセットを含む）、全地球測位システム（ＧＰＳ）ユニット、企業向け情報端末（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどの形をとる。さらに、コンピューティングデバイスは、車、トラック、農場機器、製造機器、建物環境制御（たとえば、照明、ＨＶＡＣ）、ならびに家庭および商用器具などの、車両および機器に組み込まれつつある。
【０００４】
コンピューティングデバイスは概して、中央処理ユニット（ＣＰＵ）、何らかの形のメモリ、ならびに入力および出力デバイスなど、少なくとも１つの処理要素からなる。多種多様なコンピューティングデバイスおよびそれらの後続使用は、様々なインタフェースおよび入力デバイスを必要とする。１つのそのような入力デバイスが、タッチスクリーンまたはタッチパッドなどのタッチセンシティブ表面であり、ユーザ入力は、ユーザの指またはペンもしくはスタイラスなどの用具と、タッチセンシティブ表面との間の接触を通して受信される。別の入力デバイスは、入力表面の上方でユーザによって行われたジェスチャーを検知する入力表面である。さらなる入力デバイスは、非タッチ式物理的または仮想表面との、タッチまたは非タッチ式対話のいずれかの相対的位置を検出する位置検出システムである。これらの入力の方法のいずれも、概して、テキストを描き、または入力するために使われ得る。ユーザの手書きは、手書き文字認識システムまたは方法を使って解釈される。コンピューティングデバイスへの手書き入力のための他のシステムは、Ａｎｏｔｏ  ＡＢ．、Ｌｅａｐｆｒｏｇ  Ｅｎｔｅｒｐｒｉｓｅｓ，Ｉｎｃ．、およびＬｉｖｅｓｃｒｉｂｅ，Ｉｎｃ．によって提供されるシステムなどのコンピューティングデバイスによって、表面に相対した、電子またはデジタルペンの動きを追跡させる、紙、符号化表面またはデジタル化表面と対話する電子またはデジタルペンを含む。
【０００５】
使われる入力方法にかかわらず、手書き文字認識システムおよび方法は通常、タッチセンシティブ表面との最初の接触が行われるとき（ペン下げイベント）など、デジタルインクストロークの始動、タッチセンシティブ表面との接触が止められたとき（ペン上げイベント）など、ストロークの終了、ならびにストローク始動と終了との間に行われた任意の動き（ジェスチャーまたはストローク）を判断することを伴う。これらの判断されたストロークは、入力を認識し、解釈するために処理される。コンピューティングデバイスまたは入力表面のタイプは、使用される手書き文字認識システムまたは方法のタイプを判断する場合もある。たとえば、入力表面が十分に大きい（タブレットなど）場合、ユーザは、ユーザが紙の上で書いているかのように、入力表面の上または上方のどこでも入力を手書きしてよい。ただしこれは、認識タスクに複雑さを加え、というのは、認識されるべき別々の要素は、要素の相対的位置に依存して関係がある場合も、それらの相対的位置に依存せずに無関係な場合もあるからである。
【０００６】
たとえば、数学的方程式、テーブルおよび行列など、構造化されたコンテンツ用に、手書きされた要素の相対的な位置決めが、構造を定義するために必要である。数学的行列の認識を扱うための、いくつかのシステム、たとえば、米国特許第７，４４７，３６０号明細書および米国特許第８，１２１，４１２号明細書が用意されている。これらのシステムは、たとえば、行および列内の、括弧または空間的整列など、認識のための指示的要素に依拠し、したがって、コンテンツ自体を顧みずに、構造を認識するだけである。そのような認識は、比較的単純であり整合された行列には適用可能であるが、それらは、たとえば、方程式、部分行列、誤整列された行列要素などのような複雑な要素を含む、より複雑な行列、または空の要素セル、たとえば、行および列位置を有する行列を扱うことはできない。さらに、これらの特許の記載されるシステムは、これらの構造の絶対的認識を提供し、そうすることによって、コンテンツ自体の認識に影響する。
【０００７】
要求されているのは、特定の指定要素またはジェスチャーの入力に依拠せず、それら自体の認識に対する処理時間または複雑さを大幅に増大しないと同時に、十分な認識の正確さを保持する、行列および同様の複雑なコンテンツ構造を認識するシステムである。
【発明の概要】
【０００８】
本明細書において以下で記載される本発明の例は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムおよびシステムを提供するための方法を提供する。一例では、コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを含み得る。非一時的コンピュータ可読媒体は、媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断し、媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るように構成され得る。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【０００９】
少なくとも１つの非一時的コンピュータ可読媒体は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するようにも構成され得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってもよい。
【００１０】
別の例では、本発明は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法を含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを備え得る。方法は、（ｉ）媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、（ｉｉ）媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るステップとを備え得る。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【００１１】
方法は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
【００１２】
別の例では、本発明は、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体を含む。コンピュータ可読プログラムコードは、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実装するために実行されるように適合され得る。コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つのシステム非一時的コンピュータ可読媒体とを備え得る。方法は、（ｉ）媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断すること、および（ｉｉ）媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振ることを備える。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【００１３】
方法は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
【図面の簡単な説明】
【００１４】
本システムおよび方法は、図面と併せて、それらの例の以下の詳細な説明から、より十分に理解されよう。図面において、同じ参照番号は同じ要素を示す。
【図１】本システムおよび方法の例によるコンピューティングデバイスのブロック図である。
【図２】本システムおよび方法の例による手書き文字認識のためのシステムのブロック図である。
【図３】本システムおよび方法の例による、図２の手書き文字認識システムの詳細を示すブロック図である。
【図４Ａ】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図４Ｂ】図４Ａの手書きされた入力の認識された出力の例を示す図である。
【図５Ａ】本システムによる、２×３行列の形での、手書きされた入力の例を示す図である。
【図５Ｂ】図５Ａの手書きされた入力の認識された出力の例を示す図である。
【図６】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図７】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図８】本システムによる、４×４行列の形での、手書きされた入力の例を示す図である。
【図９】本システムによる、２×３行列の形での、手書きされた入力の例を示す図である。
【図１０】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図１１Ａ】本システムによる、３×３行列の形での、手書きされた入力の例を示す図である。
【図１１Ｂ】図１１Ａの手書きされた入力の認識された出力の例を示す図である。
【図１２】本システムによる、３×３行列の形での、手書きされた入力の例を示す図である。
【図１３】本システムによる、手書きされた入力の例を示す図である。
【図１４Ａ】本システムによる、手書きされた入力の別の例を示す図である。
【図１４Ｂ】図１４Ａの手書きされた入力の認識された出力の例を示す図である。
【図１５】本システムによる、手書きされた入力のさらに別の例を示す図である。
【図１６】本システムによる、入れ子行列をもつ３×３行列の形での、手書きされた入力の例を示す図である。
【図１７】本システムによる、１×３行列の形での、手書きされた入力の例を示す図である。
【図１８】本システムによる、３×１行列の形での、手書きされた入力の例を示す図である。
【図１９】本システムによる、手書きされた入力の例を示す図である。
【図２０】本システムによる、手書きされた入力の例を示す図である。
【図２１】本システムによる行列認識の例を示す図である。
【図２２】本システムによる行列認識の例を示す図である。
【図２３】本システムによる行列認識の例を示す図である。
【図２４】本システムによる行列認識の例を示す図である。
【図２５】本システムによる行列認識の例を示す図である。
【図２６】本システムによる行列認識の例を示す図である。
【図２７】本システムによる行列認識の例を示す図である。
【図２８】本システムによる行列認識の例を示す図である。
【図２９】本システムによる行列認識の例を示す図である。
【図３０】本システムによる行列認識の例を示す図である。
【図３１】本システムによる行列認識の例を示す図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明において、適切な教示の完全な理解を提供するために、いくつかの具体的な詳細が例として説明される。ただし、本教示がそのような詳細なしに実践され得ることが、当業者には明らかなはずである。他の事例では、よく知られている方法、手続き、構成要素、および／または回路機構が、本教示の態様を不必要に不明瞭にするのを避けるために、詳細なしで、比較的高水準で記載されている。上、下、上方、下方、最も低い、最も高い、水平、垂直などのような、方向性特徴の参照およびそれらの考察が、認識されるべき入力がその上で行われる入力表面に適用されるデカルト座標系に関して行われる。
【００１６】
本明細書において記載される様々な技術は概して、キャプチャ、コンテンツの入力されたスタイルを保持するとともに、そのコンテンツの忠実な植字または美化されたバージョンへの変換を可能にするような、ポータブルおよび非ポータブルコンピューティングデバイス上での手描きおよび手書きされたコンテンツの処理および管理に関する。本明細書において記載されるシステムおよび方法は、コンピューティングデバイスに接続された、もしくはそのタッチセンシティブスクリーンなどの入力表面を介して、またはコンピューティングデバイスに接続されたデジタルペンもしくはマウスなどの入力デバイスを介して、または位置検出システムによって監視される物理的もしくは仮想表面を介して、コンピューティングデバイスに入力された、ユーザの自然な書写および描画スタイルの認識を使用し得る。いわゆるオンライン認識技法を使う手書き入力の認識に関して様々な例が記載されるが、デジタルインクよりもむしろ画像が認識されるオフライン認識などの認識のための他の形の入力への適用が可能であることが理解されよう。手描きおよび手書きという用語は、本明細書では、デジタルもしくはデジタルに接続された媒体上に直接的に、またはハンドヘルドスタイラスなどの入力ツールを介してのいずれかで、手の使用を通した、ユーザによるデジタルコンテンツの作成を定義するために互換的に使われる。「手」という用語は、本明細書では、入力技法の簡潔な記述を提供するのに使われるが、足、口および目など、同様の入力のためのユーザの体の他の部分の使用が、この定義に含まれる。
【００１７】
図１は、コンピューティングデバイス１００の例のブロック図を示す。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム（ＧＰＳ）ユニット、企業向け情報端末（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどであってよい。コンピューティングデバイス１００は、少なくとも１つの処理要素、何らかの形のメモリならびに入力および／または出力（Ｉ／Ｏ）デバイスの構成要素を含む。構成要素は、当業者に知られているコネクタ、ライン、バス、ケーブル、バッファ、電磁気リンク、ネットワーク、モデム、トランスデューサ、ＩＲポート、アンテナ、またはそれ以外などの入力および出力を通して互いと通信する。
【００１８】
コンピューティングデバイス１００の図示される例は、画像、テキスト、およびビデオなどのデータをコンピューティングデバイスから出力するための少なくとも１つのディスプレイ１０２を有する。ディスプレイ１０２は、当業者に知られている、タッチセンシティブであるか、またはそうでないＬＣＤ、プラズマ、ＬＥＤ、ｉＯＬＥＤ、ＣＲＴ、または他のどの適切な技術を使ってもよい。ディスプレイ１０２のうちの少なくとも一部が、少なくとも１つの入力表面１０４と共置される。入力表面１０４は、抵抗性、表面音響波、容量性、赤外線グリッド、赤外線アクリル投影、光学撮像、分散信号技術、音響パルス認識、または当業者に知られている他の任意の適切な技術などの技術を、ユーザ入力を受信するのに利用し得る。入力表面１０４は、その境界を明白に識別する永久またはビデオ生成ボーダーによって境界され得る。搭載ディスプレイの代わりに、またはそれに加えて、コンピューティングデバイス１００は、投影型ディスプレイ能力を有する場合がある。あるいは、コンピューティングデバイスは、ディスプレイに依存しないか、またはディスプレイなしの入力表面を含み得る。ディスプレイをもたないデバイスのケースでは、入力表面を介して行われた入力は、コンピューティングデバイスによって表示されず、むしろデバイスは、たとえば、制御入力のために使われるか、または接続されたデバイスもしくは専用表示デバイス上でコンテンツとして表示される、認識された入力（後で論じられる）のみをもつ入力デバイスとして作用する。
【００１９】
コンピューティングデバイス１００は、ローカルインタフェースを介して通信可能に結合されている１つまたは複数の追加Ｉ／Ｏデバイス（または周辺装置）を含み得る。追加Ｉ／Ｏデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザーリーダ、無線周波数デバイスリーダ、または当業者に知られている他の任意の適切な技術などの入力デバイスを含み得る。さらに、Ｉ／Ｏデバイスは、プリンタ、バーコードプリンタ、または当業者に知られている他の任意の適切な技術などの出力デバイスを含み得る。さらに、Ｉ／Ｏデバイスは、変調器／復調器（モデムであって、別のデバイス、システム、もしくはネットワークにアクセスするため）、無線周波数（ＲＦ）もしくは他のトランシーバ、電話インタフェース、ブリッジ、ルータ、または当業者に知られている他の任意の適切な技術など、入力と出力の両方を通信する通信デバイスを含み得る。ローカルインタフェースは、コントローラ、バッファ（キャッシュ）、ドライバ、リピータ、および受信機など、通信を可能にするための追加要素を有してよく、これらは、簡単のために省かれているが、当業者には知られている。さらに、ローカルインタフェースは、他のコンピュータ構成要素の間での適切な通信を可能にするためのアドレス、制御、および／またはデータ接続を含み得る。
【００２０】
コンピューティングデバイス１００はプロセッサ１０６も含み、これは、ソフトウェア、特に、メモリ１０８中に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、どのカスタムメイドまたは市販の汎用プロセッサ、中央処理ユニット（ＣＰＵ）、（マイクロチップもしくはチップセットの形の）半導体ベースのマイクロプロセッサを含む市販のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）もしくは他のプログラム可能論理素子、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、状態マシン、または当業者に知られている、ソフトウェア命令を実行するために設計された、それらのどの組合せであってもよい。
【００２１】
メモリ１０８は、揮発性メモリ要素（たとえば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、もしくはＳＤＲＡＭなどのＲＡＭ））および不揮発性メモリ要素（たとえば、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気もしくは光学テープ、メモリレジスタ、ＣＤ−ＲＯＭ、ワーム、ＤＶＤ、安価ディスクの冗長アレイ（ＲＡＩＤ）、別の直接アクセス記憶デバイス（ＤＡＳＤ）、または他の任意の磁気、抵抗性もしくは位相変化不揮発性メモリ）のうちのどの１つまたは組合せを含んでもよい。その上、メモリ１０８は、電子、磁気、光学、および／または他のタイプの記憶媒体を組み込み得る。メモリ１０８は、様々な構成要素が互いから離れて位置するが、プロセッサ１０６によってアクセスされることも可能な分散型アーキテクチャを有し得る。さらに、メモリ１０８は、たとえば、コンピューティングデバイス１００によってリモートにアクセス可能であるサーバまたはクラウドベースのシステムにおいて、デバイスから離れていてもよい。メモリ１０８はプロセッサ１０６に結合されるので、プロセッサ１０６は、メモリ１０８から情報を読み取り、そこに情報を書き込むことができる。代替として、メモリ１０８は、プロセッサ１０６と一体である場合がある。別の例では、プロセッサ１０６およびメモリ１０８は両方とも、単一のＡＳＩＣまたは他の集積回路中に存在する場合がある。
【００２２】
メモリ１０８中のソフトウェアは、オペレーティングシステム１１０、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体の形のアプリケーション１１２、および手書き文字認識（ＨＷＲ）システム１１４を含み、これらは各々、１つまたは複数の別個のコンピュータプログラムを含むことができ、これらの各々は、論理関数を実装するための実行可能命令の順序付き列挙を有する。オペレーティングシステム１１０は、アプリケーション１１２およびＨＷＲシステム１１４の実行を制御する。オペレーティングシステム１１０は、ＷＥＢＯＳ、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣ  ａｎｄ  ＩＰＨＯＮＥ  ＯＳ（登録商標）、ＬＩＮＵＸ、およびＡＮＤＲＯＩＤなど、どの固有オペレーティングシステムまたは市販もしくは無料入手可能なオペレーティングシステムであってもよい。他のオペレーティングシステムが使用されてもよいことが理解されよう。あるいは、本システムおよび方法のアプリケーション１１２は、オペレーティングシステムの使用なしで提供され得る。
【００２３】
アプリケーション１１２は、本明細書において記載される手書き文字認識、異なる機能、または両方に関連し得る。アプリケーション１１２は、製造時にコンピューティングデバイス１００とともに提供されるプログラムを含み、製造後にコンピューティングデバイス１００にアップロードまたはダウンロードされたプログラムをさらに含み得る。いくつかの例は、テキストエディタ、テレフォンダイアラ、連絡先ディレクトリ、インスタントメッセージング機構、コンピュータ支援設計（ＣＡＤ）プログラム、電子メールプログラム、文書処理プログラム、ウェブブラウザ、およびカメラを含む。
【００２４】
サポートおよびコンプライアンス能力をもつＨＷＲシステム１１４は、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプト、アプリケーション、または実施されるべき命令のセットを有する他のどのエンティティであってもよい。ソースプログラムのとき、プログラムは、オペレーティングシステムとともに正しく動作するように、メモリ内に含まれる場合も含まれない場合もあるコンパイラ、アセンブラ、インタープリタなどを介して翻訳される必要がある。さらに、サポートおよびコンプライアンス能力をもつ手書き文字認識システムは、（ａ）データのクラスおよびメソッドを有するオブジェクト指向プログラミング言語、（ｂ）たとえばＣ、Ｃ＋＋、Ｐａｓｃａｌ、Ｂａｓｉｃ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、Ｐｅｒｌ、Ｊａｖａ、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｓｗｉｆｔ、およびＡｄａだが、それらに限定されない、ルーチン、サブルーチン、および／もしくは関数を有する手続きプログラミング言語、または（ｃ）たとえばＨｏｐｅ、Ｒｅｘ、Ｃｏｍｍｏｎ  Ｌｉｓｐ、Ｓｃｈｅｍｅ、Ｃｌｏｊｕｒｅ、Ｒａｃｋｅｔ、Ｅｒｌａｎｇ、ＯＣａｍｌ、Ｈａｓｋｅｌｌ、Ｐｒｏｌｏｇ、およびＦ＃だが、それらに限定されない関数型プログラミング言語として書かれてよい。あるいは、ＨＷＲシステム１１４は、サーバまたはクラウドベースのシステムなど、デバイスとはリモートであるが、コンピューティングデバイス１００の上述の通信Ｉ／Ｏデバイスを使って、通信リンクを通してコンピューティングデバイス１００によってリモートにアクセス可能である手書き文字認識システムとの通信のための方法またはシステムであってよい。さらに、アプリケーション１１２およびＨＷＲシステム１１４は、一緒に動作するか、または単一のアプリケーションとして組み合わされてよい。さらに、アプリケーション１１２および／またはＨＷＲシステム１１４は、オペレーティングシステム１１０内に統合されてよい。
【００２５】
入力表面１０４上で、またはそれを介して入れられたストロークは、デジタルインクとしてプロセッサ１０６によって処理される。ユーザは、指または入力表面との使用に適したペンもしくはスタイラスなど、何らかの用具でストロークを入れることができる。ユーザは、入力表面１０４の付近での動きを検知する技術が使われている場合、入力表面１０４の上方でジェスチャーを行うことによって、またはマウスもしくはジョイスティックなど、コンピューティングデバイス１００の周辺デバイスを用いて、ストロークを入れることもできる。ストロークは、少なくともストローク始動ロケーション、ストローク終了ロケーション、ならびにアプリケーション１１２および／またはＨＷＲシステム１１４によってキャプチャされたストローク始動および終了ロケーションを接続する軌道によって特徴づけられる。軌道に沿ったいくつかのサンプル点におけるタイミング、圧力、角度など、さらなる情報が、ストロークのより深い詳細を提供するためにキャプチャされてもよい。異なるユーザが、当然ながら同じオブジェクト、たとえば、文字、形状、または記号を、わずかな変形を有して書く場合があるので、本システムは、各オブジェクトが正しいまたは意図されたオブジェクトとして認識されながら入れられ得る様々なやり方を受け入れる。
【００２６】
図２は、ＨＷＲシステム１１４の例の概略描写である。ＨＷＲシステム１１４は、前処理１１６、認識１１８および出力１２０などの段階を含む。前処理段階１１６は、より高い正確さを達成するように、デジタルインクを処理し、認識段階１１８中の処理時間を削減する。この前処理は、入力を滑らかにするためのＢスプライン近似などのサイズ正規化および／または方法を適用することによって、ストローク始動および終了ロケーションを接続する軌道の正規化を含み得る。前処理されたストロークは次いで、認識段階１１８に渡され、これは、ストロークを処理して、そうすることによって形成されたオブジェクトを認識する。認識されたオブジェクトは次いで、概して、手書きされた要素／文字の植字されたバージョンとして、ディスプレイ１０２に出力１２０される。
【００２７】
認識段階１１８は、異なる処理要素またはエキスパートを含み得る。図３は、認識段階１１８の概略的詳細を示す、図２の例の概略描写である。出力１２０を生成するために動的プログラミングを通して協力する３つのエキスパート（セグメント化エキスパート１２２、認識エキスパート１２４、および言語エキスパート１２６）が、図示されている。
【００２８】
セグメント化エキスパート１２２は、式、たとえば、数学方程式、単語、または形状のグループを形成するために、入力ストロークを個々の要素仮定、たとえば、英数字および数学演算子、テキスト文字、個々の形状、または副次式にセグメント化するための異なるやり方を定義する。たとえば、セグメント化エキスパート１２２は、各ノードが少なくとも１つの要素仮定に対応し、要素の間の隣接制約がノード接続によって扱われるセグメント化グラフを取得するように元の入力の連続するストロークをグループ化することによって、要素仮定を形成し得る。
【００２９】
認識エキスパート１２４は、分類器１２８によって抽出された特徴の分類を提供し、セグメント化グラフの各ノードについての確率または認識スコアをもつ要素候補のリストを出力する。この認識タスクを対処するのに使われてもよい多くのタイプの分類器、たとえば、サポートベクターマシン、隠れマルコフモデル、または多層パーセプトロン、深層、畳込みもしくは再帰型ニューラルネットワークなどのニューラルネットワークが存在する。選択は、タスク用に所望される複雑さ、正確さ、および速度に依存する。
【００３０】
言語エキスパート１２６は、言語モデル（たとえば、文法またはセマンティクス）を使って、セグメント化グラフ中の異なる軌道についての言語的意味を生成する。エキスパート１２６は、言語的情報１３０に従って、他のエキスパートによって提案された候補をチェックする。言語的情報１３０は、レキシコン、正規表現などを含んでよく、言語エキスパート１２６によって言語モデルを実行するのに使われるすべての静的データのための記憶である。言語モデルは、所与の言語についての統計的情報に依拠し得る。言語的情報１３０は、認識およびユーザ対話の結果による適応ありまたはなしで、オフラインで計算され、言語的エキスパート１２６に提供される。言語エキスパート１２６は、最良の認識軌道を見つけることを目指す。一例では、言語エキスパート１２６は、言語的情報１３０のコンテンツを表す最終状態オートマトン（ＦＳＡ）などの言語モデルを調査することによって、これを行う。レキシコン制約に加え、言語エキスパート１２６は、要素の所与のシーケンスがどれだけ頻繁に、指定された言語において現れ、または特定のユーザによってセグメント化グラフの所与の軌道の翻訳の言語的尤度を評価するのに使われるかについての統計的情報モデリングを用いる言語モデルを使うことができる。
【００３１】
本明細書において記載されるシステムおよび方法は、デバイス１００への手書きされた入力を認識するために、ＨＷＲシステム１１４を利用する。特に、本システムおよび方法は、行列などの構造内でのコンテンツ入力を認識する。行列とは、本明細書において、たとえば、テーブルには存在し得るラインおよびヘッダ、またはリストには存在し得るドット点および数字のような行および／または列指定子を使用しない、１つまたは複数の行および列中の、概して関係がある、通常は数字、文字、記号、数学的式であるいくつかの要素のレイアウトとして定義される。そのような行列は通常、数学的演算において使われ、情報をキャプチャし、かつ／またはそのような演算を実践するために、手書きのプロセスを通して手動で、または、たとえば、数学的ソリューション（後で論じられる）を提供するためのアプリケーション１１２の能力を通して自動的に、のいずれかで、デバイス１００の１人または複数のユーザによって入力され得る。
【００３２】
行列などの構造化された入力を認識するための、上で論じられた知られているシステムとは異なり、本システムおよび方法は、認識を可能にするために、括弧などの特定のコンテンツを入力することをユーザに要求することもなく、方程式、部分行列、誤整列された要素および欠けている要素のような、より複雑な要素を有する行列を認識することができないプロセスを使うこともない。さらに、知られているシステムは、幾何学的投影を使って、行および列を検出し、認識のために構造全体を処理するだけであるが、本システムおよび方法は、投影なしで、すべての要素の漸進的認識および幾何学的関係を使うことができる。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
【００３３】
図４から２０は、手書きまたは手描きされた行列の様々な例を示し、いくつかが、植字バージョンでも示されている。図４Ａは、たとえば、２かける２（または２×２であるが、本明細書では、「行の数」×「列の数」という標準用法が使われる）のデジタルインク行列４００としてレンダリングされた、デバイス１００の入力表面１０４上へ行われた手書きされた入力を示す。行列４００は、４つのコンテンツ要素、「３」である４０２、「２」である４０４、「７」である４０６および「１」である４０８を有する。要素４０２および４０４は、第１のほぼ水平なラインまたは行４１０に置かれ、要素４０６および４０８は、第２のほぼ水平なラインまたは行４１２に置かれ、要素４０２および４０６は、第１のほぼ垂直なラインまたは列４１４に置かれ、要素４０４および４０８は、第２のほぼ垂直なラインまたは列４１６に置かれる。これらのコンテンツ要素は、第１のほぼ垂直な括弧またはフェンス要素４１８（たとえば、第１の列４１４の左手側にある）および第２のほぼ垂直括弧またはフェンス要素４２０（たとえば、第２の列４１４の右手側にある）内に含まれる。１つまたは複数の行および１つまたは複数の列におけるコンテンツ要素の相対的位置は、入力の認識された要素のうちの少なくとも１つの幾何学的関係に基づく、行列４００の第１の特性を提供し、１つまたは複数のフェンス要素内でのコンテンツ要素の包含は、行列４００の第２の特性を提供する。
【００３４】
本システムおよび方法のアプリケーション１１２は、ＨＷＲシステム１１４によって入力４００が行列であると判断するために実施される手書き文字認識と併せて、第１の特性を単独で、または第２の特性と組み合わせて、のいずれかで検出し、所定の、および／または、たとえば、デバイス１００上のユーザインタフェース（ＵＩ）を介してユーザ設定可能なフォーマット化を適用して、図４Ｂに示すような植字行列４００’を出力する。見るとわかるように、植字行列４００’は、行４１０、４１２および列４１４、４１６に依然として配置されている、それぞれ、デジタルインクコンテンツ要素４０２から４０８の植字バージョン４０２’から４０８’、ならびに、それぞれデジタルインクフェンス要素４１８および４２０の植字バージョン４１８’および４２０’を有する。したがって、本システムおよび方法は、認識された行列４００を、たとえば、行列のデジタルバージョン用にユーザによって期待されるフォーマットで表示する。認識された行列の表示フォーマットは、異なるようにされてよく、必ずしも「植字インク」ではなく、「美化された」デジタルインクであってよく、つまり、デジタルインクの表示は保持されるが、手書きの自然な変形が、要素の相対的位置を修正し、文字自体などのようなインク要素を滑らかにし、かつ／または正規化することによって、やわらげられるか、または正規化されることが理解されよう。美化が、デジタルインクもしくは植字インク（たとえば、行列要素の相対的位置が整列される）、または両方で実践されようとも、まだ入力されていない場合は括弧の表示など、認識結果またはその要素のプレビューを通すなどして、ユーザは、行列およびそのコンテンツの認識についてのフィードバックを提供され得る。
【００３５】
図４の入力は、行および列に比較的良好に整列されたコンテンツ要素として１桁の数字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図５Ａは、手書きされた入力からレンダリングされた、同様に単純な、ただしアルファベットコンテンツ要素をもつ２×３デジタルインク行列を示す。図５Ｂは、本システムおよび方法の認識された出力を、植字行列として示す。図４のように、図５の入力は、行および列に比較的良好に整列されたコンテンツ要素として単一アルファベット文字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図６は、行および列に比較的良好に整列されているが、異なる形をしたフェンス要素によって囲まれるか、または含まれるコンテンツ要素として１桁の数字をもつ、手書きされた入力からレンダリングされた、同様に単純な２×２デジタルインク行列を示し、たとえば、角括弧ではなく丸括弧が使われる。本システムおよび方法は、行列入力の検出を支援するために、これらの異なる、および他の、フェンス形を認識するように構成される。フェンス要素は行列の２次特性であるが、行および／または列中にコンテンツの１次特性を有する他の構造が、たとえば、テーブル中に垂直および／または水平ラインに描かれたような同様の２次特性を有することに留意されたい。さらに、後で詳しく記載されるように、第２の特性を考慮しない（たとえば、フェンス要素が存在しない場合さえある）、入力行列の第１の特性の認識のみで、そのような検出に十分である場合がある。
【００３６】
手書きされた行列のわずかにより複雑な例が図７に示され、ここで、入力２×２行列は、２桁の数字を、たとえば、左手列に、少なくとも１つのわずかに不整列の列をもつコンテンツ要素として有する。各２桁の要素の数字の間の空間と結合された、このわずかな不整列は、２×２行列である行列の正しい認識のための難題を提供し、というのは、空間のうちの１つまたは複数は、２桁の構成要素の間よりもむしろ、列の間の空間と見なされ場合があり、したがって、堅牢な認識規則なしでは、図７の行列は、１桁の要素の２×５行列として検出される可能性があると想定されるからである（たとえば、「１１」の「１」、「１２」の「１」および「２」、「１３」の「１」および「３」ならびに「１４」の「１」および「４」は、第１の列に割り振られた「１１」の第１の「１」、第２の列に割り振られた「１１」の第２の「１」および「１３」の「１」、第３の列に割り振られた「１３」の「３」、第４の列に割り振られた「１２」の「１」および「１４」の「１」、ならびに第５の列に割り振られた「１２」の「２」および「１４」の「４」と別個に取り扱われる。同様の結果が、当然ながら、より大きい数について起こり得る。このような不正確な認識が行われた場合、認識の、結果としての美化された出力は、ユーザによって意図されたものと大きく異なる、認識された行列および／またはデータｒｅの任意の後続使用を表示することになる）。本方法およびシステムは、行列に適用可能であるよりも多くの列を戻す、コンテンツ要素の過剰セグメント化によって引き起こされる、そのような不正確な行列認識の出現を最小限にするための基準を利用するが、これは後で詳しく記載される。
【００３７】
他のコンテンツ要素形も、明らかな不整列ありまたはなしの難題を提供する。たとえば、図８は、いくつかが指定子、たとえば、それらのコンテンツ要素に対して数学的意味を指定するマイナス符号を有する、１桁の数字としてのコンテンツ要素を有する、手書きされた行列を示す。そのような指定子は、非常に様々な記号、マークまたは文字によって形成されてよく、図７の大きい（より大きい）数の例についてと同じように、コンテンツ要素の過剰セグメント化の結果、これらの指定子は、それらが指定するコンテンツとは別個の列に割り振られることになる。同様の問題が、図９の例示的行列に示す小数、および図１０の例示的行列に示す分数を伴う数的コンテンツ要素にも当てはまる。
【００３８】
そのような行列入力についての不正確な認識の最小限化が、コンテンツ要素自体の認識をアプリケーション１１２の行列検出プロセスの考慮に入れることによって、本システムおよび方法によって提供される。つまり、図８の例示的行列について、ＨＷＲシステム１１４は、指定子を、アプリケーション１１２がこれらを各々、単一のコンテンツ要素として取り扱うように、たとえば、「−１」、「−２」および「−３」を形成する、そのすぐ右手側で数字に接続されたマイナス符号として認識し、図９の例示的行列について、ＨＷＲシステム１１４は、たとえば、「３．５」を形成する隣接数字の間の小数点を、アプリケーション１１２がこれを単一のコンテンツ要素として取り扱うように認識し、図１０の例示的行列について、ＨＷＲシステム１１４は、たとえば、分数「１／４」を形成する隣接数字の間の仕切りラインを、アプリケーション１１２がこれを単一のコンテンツ要素として取り扱うように認識する。本システムおよび方法がコンテンツ構造検出のために認識結果を考慮に入れるやり方が、後で詳しく記載される。
【００３９】
他の行列タイプは、数字またはアルファベット文字などのコンテンツ要素タイプの混合物を含み、さらに他の行列コンテンツ要素タイプは、下付き文字および上付き文字など、抽象的な数学的形を含む。たとえば、図１１Ａは、「０」である数的コンテンツ要素と、下付き数字で指定されたアルファベット文字を有する英数字コンテンツ要素の両方を有する、手書きされた行列を示す。上述した図８から１０の指定子例と同様、認識されたコンテンツを考慮に入れることによって、たとえば、ＨＷＲシステム１１４は、「ａ11」、「ａ22」および「ａ33」を形成する、数字のすぐ左手側でそれに接続された下付き文字を認識し、アプリケーション１１２は、植字インクで表示される、図１１Ｂに示される認識された行列を提供し、というのは、下付き文字は、コンテンツ要素全体自体としてではなく、より大きいコンテンツ要素の一部として取り扱われるからである。
【００４０】
図１２は、下付き文字を含むコンテンツ要素をもつ同様の例示的入力行列を示す。ただし、前の例とは異なり、図１２の行列は、空のコンテンツ要素位置またはセルも含む。つまり、各行および列位置は、第１の行（たとえば、行０として識別される）および第１の列（たとえば、列０として識別される）におけるコンテンツ要素位置が、たとえば「セル０，０」に対応するように、セルと見なされる。ただし、他の形の識別用行列要素位置が可能である。さらに、アプリケーション１１２および／またはＨＷＲシステム１１４は、そのような識別子を、たとえば、デバイス１００のメモリ１０８中に記憶された、データタグなどの位置データとして、認識されたコンテンツに適用してよい。そのような空のセルの存在は、行列など、２次元の構造化されたコンテンツの正しい認識のための別の難題を引き起こす場合があり、というのは、構造の行および列の識別は、考えられるところでは、考慮されている要素の同じ行および／または列内からではなく、他の行および／または列からの要素の考慮により確かめられるだけだからである。たとえば、さもなければ空の行（または列）中の要素は、他のどの要素とも整列されず、したがって、行（または列）の識別は、整列されていない要素を検討することによって行われる。本システムおよび方法は、後で詳しく記載されるように、そのようなコンテンツシナリオにおいてさえも、堅牢な行列検出を提供する。
【００４１】
前に記載されたように、フェンス要素の存在は、特に空のセルが存在するとき、行列の認識を支援するのに使われ得る。これは、フェンス要素の存在が、（たとえば、単一のフェンスシナリオにおいて）フェンス要素（１つまたは複数）に囲まれ、含まれ、またはそうでなければ隣接するコンテンツが、１つまたは複数の行および１つまたは複数の列中にレイアウトされることを意味すると解釈される場合、空のセルは、非コンテンツとしてではなく、そのような行（１つもしくは複数）および／または列（１つもしくは複数）の一部と見なされるからである。ただし、やはり前に記載されたように、本システムおよび方法は、行列用のフェンス要素などの構造的インジケータの存在または助けなしで、２次元のコンテンツ構造を認識することが可能である。たとえば、図１３は、図１２の例のように、空のセルをもつ例示的入力行列を示すが、図１２とは異なり、フェンス要素が存在しない。本システムおよび方法は依然として、図１３の行および列構造を正確に識別するが、認識結果は、行列として識別される場合も、されない場合もある。つまり、それは、２次元構造として識別されるだけであってよく、これは、認識結果の任意の後続使用に依存して、いかなる現実的な結果としての影響も持たない場合がある。このようなケースにおいてさえも、ユーザによる、認識された構造を行列として指定するための選択が、ＵＩなどを介して、および／またはたとえば、表示されるコンテンツ要素についての、生成されたデジタルもしくは植字インクフェンス要素の表示など、認識結果のフィードバックもしくはプレビューを通して提供され得る。本システムおよび方法のそのような特徴が、後で詳しく記載される。
【００４２】
２次元構造におけるさらなる複雑さが可能である。図１４Ａは、追加入力をもつ、図５Ａの例示的な２×３デジタルインク行列を示す。具体的には、３＊２の手書きされた行列が、２×３行列のすぐ右に入力され、イコール符号、すなわち「＝」、および２つの数学的方程式を含むさらなる行列が続く。見るとわかるように、最も右の行列は、最初の２つの行列の乗算の部分的結果を含み、これは、２×３行列の行０と３×２行列の列０の積、および２×３行列の行１と３×２行列の列１の積であり、ここで、全結果が、期待される２×２行列を形成することになる。図１４Ｂは、認識された出力を植字形で示し、見るとわかるように、第３の行列の方程式は、２×２行列のセル０，０およびセル１，１に属すものとして正しく認識される。この認識は、図１４Ａに示すように、手書きされた方程式の比較的重大な重なりにかかわらず生じる。前に記載されたように、この認識は、第３の行列の行内の方程式の認識の考慮により本システムおよび方法によって達成され、全体の認識されたコンテンツ、たとえば、２×３行列と３×２行列の積から生じる、期待される２×２行列の考慮により認識されてもよい。これらの特徴は、後で詳しく記載される。
【００４３】
コンテンツ要素を、セル割振りを判断するために個々の入力要素を個々に取り扱うよりもむしろ、ＨＷＲシステム１１４からの認識結果に基づく各コンテンツ要素の１つまたは複数の認識された要素に関する２次元構造のセルに属すものとして取り扱うことによって、本システムおよび方法は、より複雑な行列形でさえもほぼ正確に検出することができる。たとえば、図１５は、上で記載されたコンテンツ特徴、たとえば、アルファベット文字、単語、数字、上付き文字、括弧、記号、ならびにマイナス符号および仕切りラインなどの指定子のうちの多くを組み合わせる比較的複雑な数学関数を含む各コンテンツ要素をもつ例示的な手書きされた２×２行列を示す。ただし、この複雑さにかかわらず、本システムおよび方法は、各認識された関数の認識された複合部分が、対応する行列セルに属す単一のコンテンツ要素として取り扱われるので、２×２行列を検出する。さらに、図１６は、入れ子行列を含む、例示的な手書きされた３×３行列を示し、たとえば、セル０，０は２×２部分行列を含み、セル１，１は２×３部分行列を含み、セル２，２は２×３部分行列を含む。
【００４４】
比較的複雑な行列は、検出および認識のための難題を提示するが、単一の行または単一の列の行列など、過度に単純な行列も、難題を提示する。図１７は、例示的な１×３の手書きされた行列を示し、図１８は、例示的な３×１の手書きされた行列を示す。いずれのケースでも、（前に論じられた空のセル問題と同様）１×３行列についての行間関係も、３×１行列についての列間関係もないので、複数の列（または行）の存在を判断するのは困難であり得る。これは、その行または列自体の中のコンテンツ要素のみが、列または行を判断するために検討すべきであり、したがって、列または行判断のための閾値などを設定するための、関係しているそれらの要素の間の距離または空間の値が、その判断には重大だからである。基本的に、判断がより不確定になるような、比較的少ない情報が入手可能である。
【００４５】
たとえば、図１７では、列判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「３」、「７」および「２」をもつ１×３行列、もしくはコンテンツ要素「３」および「７２」をもつ１×２行列として認識されるか、またはコンテンツ「３７２」をもつ、行列ではまったくないと認識され得る。同様に、図１８では、行判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「４」、「１」および「８」をもつ３×１行列、もしくはコンテンツ要素「４」および「１８」をもつ２×１行列として認識されるか、または（垂直に配列された）コンテンツ「４１８」をもつ、行列ではまったくないと認識され得る。前に論じられたように、フェンス要素（１つまたは複数）の２次特性は、いかなる行列結果も起こらないように、行列検出そのものを支援し得るが、これは、行列の内部構造に関して、アプリケーション１１２に知らせない。本システムおよび方法では、さらなるもの（または第３もしくは３次特性）が、この判断を支援するために、いくつかのコンテンツタイプに関して検討され得る。たとえば、列識別のための、数字などの入力要素の間に要求される空間は、たとえば、アルファベット文字など、他の入力要素に対してよりも小さくなるように設定されてよい。これは、数字の場合、それらは、多桁数字が指定されるとき、互いと適度に接近して書かれるべきであると見なされるからである。このような基準は、図７の例におけるような、より複雑な行列検出も支援することができる。代替的、または追加の特性も、そのような単純な行列ならびにより複雑な行列を正しく検出するために考慮に入れられるが、それらは、後で詳しく論じられる。
【００４６】
さらに、前に論じられたように、他の形の２次元構造も、本システムおよび方法によって認識可能である。たとえば、図１９は、行列のように基本セルの行および列を有する、行列の行列式を伴う数学関数を示す。図２０は、行列内に入れ子にされた、そのような行列式を示す。さらに、見るとわかるように（前の例のうちのいくつかのように）、数学演算子および関数など、２次元構造の外部の追加要素が存在してもよい。そのような追加要素は、たとえば、行列のコンテンツとは別個に認識されるが、それらは、たとえば上述したように、行列コンテンツおよび行列の構造の認識をガイドするために、アプリケーション１１２および／またはＨＷＲシステム１１４によってコンテキストとして使われ得る。
【００４７】
上で記載された例からわかるように、手描きされた行列における自然な変化は広く、したがって、これらの行列のような構造的関係を確固として判断するシステムは概して、この広範囲の変形にわたって検出および認識を実施することが可能でなければならない。当然ながら、たとえば、一般定義が遵守されるように、いくつかの制限が、何が行列として正確に認識されるべきかに関して当てはまる。本システムおよび方法はしたがって、以下で説明されるように、行列構造の正しい検出のための、基準と、認識の結果とを使う。通常、手書き文字認識は、それらの要素が入力される構造ではなく、認識された要素の幾何学的関係を、これらの要素自体の認識のために考慮に入れるだけであることに留意されたい。したがって、本システムおよび方法は、行および列候補の粗いフィルタリングを提供するために幾何学的および言語モデル特徴を考慮に入れる確率ベースの手法を使ってこの認識を提供するのに、さらなる情報を使う。これらの粗くフィルタリングされた行列セル候補は次いで、実際の行列を認識するために、認識プロセスの結果を使って、精細フィルタリングされ得る。このようにして、本システムおよび方法は、行列要素候補をプロ処理することによって行列を検出するために、認識を効率的に使用する。本システムおよび方法は、コンテンツが概して、テーブル、リストなどのような（水平または非水平、たとえば、対角線）行および（垂直または非垂直、たとえば、対角線）列に整列される、手書きされたコンテンツの他の構造的関係の認識に適用可能であり、というのは、構造の認識は、構造用に具体的に入力されたインジケータには依拠せず、むしろ認識されたコンテンツ自体の相対ジオメトリに依拠するからであることが理解されよう。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
【００４８】
図２１から３７に示される例の以下の説明は、行列認識を対象とするが、同様の記述が、上述したような他の構造の認識に当てはまる。さらに、以下の説明は、入力行列内での列検出に関連するが、明らかなように、同じプロセスが、行列のセルが検出されるように、行を検出するのにも使われてよい。いずれのケースでも、プロセスは概して、行列の可能な列または行の検出および要素自体の認識を提供するために、ほぼ水平および垂直方向（または書く方向に基づく他の方向）での要素の整列を、それらの整列に属す要素の認識を使って検出することを伴う。行検出のプロセスは、行列セル検出、およびしたがって行列の全体的検出を提供するために、列検出の前に実施される。以下に記載される例において、整列は、候補行列の列および行を検出することの一部として検出され、次いで、候補列および行は、認識されたコンテンツに基づいて分析されて、認識された行列出力が提供される。あるいは、垂直および／または水平整列のいずれかの検出は、行列行および／または列仮定化とは別個の、異なる方式で、たとえば、複数ラインを検出するプロセス、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「Ｓｙｓｔｅｍ  ｆｏｒ  Ｒｅｃｏｇｎｉｚｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｏｂｊｅｃｔ  Ｉｎｐｕｔ  ａｎｄ  Ｍｅｔｈｏｄ  ａｎｄ  Ｐｒｏｄｕｃｔ  ｆｏｒ  Ｓａｍｅ」と題する米国特許出願第１４／８７０，７３５号明細書に記載されている多重方程式によって実施され得る。
【００４９】
図２１は、複数の入力インクオブジェクト２１０２から２１１６の例示的配置２１００を示す。インクオブジェクトは、たとえば、デバイス１００の入力表面１０４に入力され、その上にデジタルインクとしてレンダリングされた、手書きされた入力要素（たとえば、１つまたは複数の文字、記号などを形成する１つまたは複数のストローク）を表す。インクオブジェクトは概して、手書きされた要素の限度に対応する矩形として示されており、したがって、ＨＷＲシステム１１４によって認識される要素の境界ボックスを表し得る。行列検出プロセスのこの点において、インクオブジェクト自体のコンテンツは必ずしも重要でなく、むしろそれは、プロセスによって使われる、認識された要素とのインクオブジェクトの対応である。ＨＷＲシステム１１４の認識プロセスにおいて、認識結果は、利用される言語モデルに基づく、各ストロークおよびストロークのグループについての認識候補の階層的判断を含むことに留意されたい。図示されるインクオブジェクトは、各認識された要素の最も有望な候補に関するが、実際の認識されたコンテンツ、およびしたがって認識された要素は、たとえば、ユーザによってＵＩなどを通して、異なる候補が選択された場合は、配置自体が変わるように変わり得る。このようなケースでは、行列検出プロセスは、変更された配置に適応するように、少なくとも部分的に、たとえば、変更される配置の少なくともその部分のために再度使われる。
【００５０】
見るとわかるように、配置２１００において、インクオブジェクト２１０２、２１０４および２１０６は概して、互いと水平に整列され、インクオブジェクト２１０８および２１１０は概して、互いと水平に整列され、インクオブジェクト２１１２、２１１４および２１１６は概して、互いと水平に整列される。したがって、これらの水平整列は、前に記載されたようにして本システムおよび方法によって検出され、図示される例では、整列の要素の間の重なりが存在しないので、潜在的行列行に対応すると判断される見込みが最もある。さらに、インクオブジェクト２１０２、２１０８および２１１２は概して、互いと垂直に整列され、インクオブジェクト２１０４、２１１０および２１１４は概して、互いと垂直に整列され、インクオブジェクト２１０６および２１１６は概して、互いと垂直に整列される。したがって、これらの垂直整列は、本システムおよび方法によって検出されてよく、図示される例では、潜在的行列列に対応すると判断され得る。したがって、配置２１００は、たとえば、３×３行列に対応すると検出され得る。このような行列の潜在的列は、図２２から３１の以下の例でのように検出される。
【００５１】
図２２に示すように、オブジェクト２１０２、２１０４および２１０６は、ほぼ水平に整列されていることが知られ、ＨＷＲシステム１１４の認識結果から、オブジェクトは別々のコンテンツ要素である（見込みがある）ことが知られている。したがって、オブジェクト２１０２、２１０４および２１０６は、アプリケーション１１２によって、それぞれ、別個の潜在的な第１、第２および第３の列Ｃ0、Ｃ1およびＣ2中に割り振られる。これらの列割振りの仮定は、次の水平整列における（本例では、下向き方向の）いずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによってテストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト２１０２、２１０４および２１０６の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト２１０８および２１１０がインクオブジェクト２１０２、２１０４および２１０６と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図２２において、これは、インクオブジェクト２１０２、２１０４および２１０６の境界ボックスの右手および左手境界の破線投影によって示される。見るとわかるように、インクオブジェクト２１０８はインクオブジェクト２１０２と重なるが、インクオブジェクト２１１０はインクオブジェクト２１０２、２１０４および２１０６のうちのいずれとも重ならないと判断される。したがって、図２３では、インクオブジェクト２１０８が、インクオブジェクト２１０２とともに第１の列Ｃ0中に割り振られ、インクオブジェクト２１０４は第２の列Ｃ1中に割り振られたままであり、インクオブジェクト２１１０は、第３の列Ｃ2中に割り振られ（図２２に示される割振りから調節される）、インクオブジェクト２１０６は第４の列Ｃ3中に割り振られていることが示されている。
【００５２】
次に、これらの列割振りの仮定は、次の水平整列におけるいずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによって再度テストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト２１０８、２１０４、２１１０および２１０６の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト２１１２、２１１４および２１１６がインクオブジェクト２１０２、２１０４および２１０６と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図２３において、これは、インクオブジェクト２１０８、２１０４、２１１０および２１０６の境界ボックスの右手および左手境界の破線投影によって示される。図２３に見られ得るように、インクオブジェクト２１１２はインクオブジェクト２１０８と重なり、インクオブジェクト２１１４はインクオブジェクト２１０４および２１１０の両方と重なり、インクオブジェクト２１１６はインクオブジェクト２１０６と重なると判断される。したがって、図２４には、インクオブジェクト２１１２はインクオブジェクト２１０２および２１０８とともに第１の列Ｃ0中に割り振られ、インクオブジェクト２１１４はインクオブジェクト２１０４とともに第２の列Ｃ1中に割り振られ、インクオブジェクト２１１０も第２の列Ｃ1中に再割振りされ、インクオブジェクト２１１６は、図２３に示される第４の列からのインクオブジェクト２１０６の再割振りとともに、第３の列Ｃ2中に割り振られることが示されている。見込みがある列のこの認識結果は図２５に示され、ここで、３つの列Ｃ0、Ｃ1およびＣ2のそれぞれの境界は、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスとして示されている。
【００５３】
図２４に示される列の再割振りは基本的に、本システムおよび方法の列検出の精細フィルタリングのタイプを表し、ここで、列の検出は、益々間隔の狭いコンテンツ要素が行ごとに検討されると、収束する。このフィルタリングは、この段階で実施されなくてよいが、各ステップにおいて見つけられたすべての潜在的列は、後続フィルタリングステップまで保持されてよく、これは、いずれかの列がマージされるべきかどうかをチェックする。そのような処理は、後で詳しく記載される。
【００５４】
すべての可能な仮定が判断され、テストされると、アプリケーション１１２は、インクオブジェクトについて認識された行および列割振り、たとえば、セル割振りを示すタグなどの（メタ）データを、インクオブジェクトに提供してよく、そのようなデータは、たとえば、インクオブジェクトとともにデバイス１００のメモリ１０８中に記憶される。このようにして、植字または編集など、インクオブジェクトとのいずれの後続対話においても、オブジェクトの間の位置関係が考慮に入れられ得る。
【００５５】
列割振りを行ごとに、およびそれらの行中の空間的に隣接するコンテンツ要素の考慮により仮定化し、テストする、上で記載された反復手法は、潜在的列を見つけるために、配置全体にわたるオブジェクトの２×２配置を反復して検討することに基本的に対応する。つまり、第１の行中の２つの隣接するコンテンツ要素の相対的位置は、列割振りを判断する（かつ、調節する）ために、次の（第２の）行中の２つの隣接するコンテンツ要素と比較される。これは、いくつかのやり方で実施されてよい。一例では、コンテンツ要素の特徴の間の相対距離が、要素が異なる列に潜在的に分離されるかどうかを判断するために、閾値と比較される。つまり、これらの要素の間で、適切な列間隔が探し求められる。
【００５６】
たとえば、本ケースでは、テストされる第１の列仮定は、インクオブジェクト２１０２が第１の列の中にあり、その行の次のインクオブジェクト、すなわち、インクオブジェクト２１０４が第２の列の中にあるというものであり、テストされる第２の列仮定は、インクオブジェクト２１０２が第１の列の中にあり、次の行の最も左のインクオブジェクト、すなわち、インクオブジェクト２１０８が第２の列の中にあるというものである。これは、インクオブジェクト２１０２の境界ボックスの右手境界と、インクオブジェクト２１０４および２１０８の境界ボックスの左手境界との間の水平距離が、たとえば、（第１の）閾値よりも大きいかどうかを検討することによって行われ得る。それの最も単純なものにおける第１の閾値は、ゼロ、または何らかの非ゼロ（たとえば、正の）値に設定され、そうすることによって、考慮されているオブジェクトと垂直に重なるどのオブジェクトも、負の距離を戻す。つまり、オブジェクト２１０２および２０１４の間の距離のような、測定された距離は、第１の閾値よりも大きい正の値を産し、インクオブジェクト２１０２および２１０８の間の距離のような、測定された距離は、第１の閾値よりも小さい負の値を産する。したがって、アプリケーション１１２は、インクオブジェクト２１０２および２１０４が異なる列に属し、インクオブジェクト２１０２および２１０８が異なる列に属さない見込みがあると正確に判断する。
【００５７】
行内比較は基本的に、前に記載された水平ライン判断であり、行間比較は基本的に、前に記載された、より高い最も左のオブジェクトの、次の連続水平ライン上への投影であり、この投影は本質的に、テストされる２×２配置の第４の要素を形成する。インクオブジェクトは、ストローク自体の限度、各要素を作り上げるストロークの平均中心または重心などのような、境界ボックスとは異なる特性によって定義され得ることが理解されよう。さらに、距離は、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｄｉｇｉｔａｌ  Ｎｏｔｅ  Ｔａｋｉｎｇ」と題する米国特許出願第１４／８８６，１９５号明細書に記載されている入力ラインパターンなどのような、書くためのガイドのような、入力表面１０４の何らかの他のパラメータに応じて、ピクセルで、文字などのような手書きされたオブジェクトのアベレージもしくは平均寸法のような、入力自体の特性、境界ボックス、またはそのような特徴の組合せなどで測定され得る。さらに、反復手法は、上述したように、空間順よりもむしろ、ストローク／要素のエントリの時間順、またはそれらの何らかの組合せに基づき得ることが理解されよう。
【００５８】
したがって、オブジェクトの反復する２×２配置が、潜在的列を見つけるために、配置全体にわたって検討される。このようにして、配置の手書きされた要素における局地化された変形が、それらが配置全体にわたる全体的列検出に影響しないようにローカルに検討される。つまり、本出願人は、２次元構造の手書きされた入力、このような行列のためのデジタルアプリケーションのユーザは、特に、たとえば、要素が同じタイプである正規行列において、構造の寸法が増大すると、構造要素の間隔をずらす傾向があることに気づいた。たとえば、単純な２×２行列の場合、要素の相対間隔およびサイズ決定は、たとえば、図４でのように適度に一貫性があるが、行列が大きくなると、要素間隔の一定のローカル圧縮または拡張が、たとえば、図８でのように生じる場合があり、ここで、書き始めの位置である、行列の左上隅の要素と比較して、右上隅に向かう要素の間隔は拡大され、下方中心における要素の間隔はわずかに圧縮され、水平には不整列である。
【００５９】
上で記載された空間順手法は概して、入力の後処理に適用可能であり、つまり、ユーザが、行列のすべての意図された入力を手書きすると、行列を認識するための処理が、メニューボタンのような制御要素の手動選択、もしくはダブルタップなど、インタフェース表面上での多地点タッチのようなジェスチャーの入力を通して、または入力後の、設定された量の時間、たとえば、約０．５秒から約２秒の経過のような自動処理を通して実施される。このような空間的手法はまた、そのようなトリガを使うことによって、入力中の処理、いわゆる漸進的認識に適用可能である。時間的手法はまた、漸進的または事後認識処理のいずれかに適用可能である。空間的および／または時間的検討を使う漸進的手法は、たとえば、植字への変換が所望されることをユーザが示すとき、または最後の入力からの設定された時間経過の後、処理の大部分が入力中に実施されたので、入力の最終的認識のための処理時間を減少させ得ることに留意されたい。
【００６０】
上で記載された例から、見込みがある列を判断するために、前の行のコンテンツ要素を以降の行に投影することによって、空のセルの存在は、列の検出に影響せず、実際に、空のセルは、列内で正確に割り振られ、たとえば、インクオブジェクト２１０６および２１１６の間の空のセルは第３の列Ｃ2内で割り振られることがわかり得る。ただしこれは、図１２の例示的行列でのように、単一のコンテンツ要素のみが列内にある入力状況においても成り立つ。たとえば、図２６は、代替的例示的配置２６００を示し、これは、配置２１００と同じであるが、インクオブジェクト２１１４が存在しない。したがって、上述した本システムおよび方法の認識プロセスを通して、４つの列Ｃ0、Ｃ1、Ｃ2およびＣ3が、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスによって示されるように存在すると判断され得る。これは、配置２１００の前の例とは異なり、インクオブジェクト２１１４は、インクオブジェクト２１０４および２１１０の両方とは重ならず、したがって、これらは、前の例において図２３の段階において判断されたように、第２および第３の列に割り振られたままであるからである。したがって、この代替的例において、オブジェクト２１０４および２１１０の各々は、それらのそれぞれの列内で唯一のオブジェクトとして割り振られ、これらのオブジェクトの周りの空のセルも、それらの列の中に割り振られる。
【００６１】
上で記載された例示的な「粗い」列検出プロセスは、図４から２０の例に様々に示されるように、（手書きの不均一性からの）不整列の要素、整列されていない要素（符号指定子、たとえば、プラスおよびマイナスなど）、ならびに複雑な要素（部分行列、方程式など）により、超過垂直整列の検出を引き起こす場合がある。したがって、前に記載されたように、本システムおよび方法は、検出された可能な列のうちのいくつかがマージされるべきであるかどうかが判断される精細検出プロセスを用いて、粗い検出結果も処理することができる。そのようなさらなる処理の例が、図２７から３１に関してここで記載される。
【００６２】
前に記載されたように、第１の閾値は正の値に設定され得る。このような設定は基本的に、各インクオブジェクトについての一定の量のパディングを提供させ、そうすることによって、検出のために列の間で要求される間隔を増す。そのようなパディングは、初回の「粗い」フィルタリング内で、または後続の「精細」フィルタリング中で、間隔が狭い列をマージするための機構を提供するのに使われ得る。たとえば、図２７は、図２２の前の例の段階におけるプロセスを示すが、一定の量のパディングｐ（図２７の円で指定される）が、図２６の代替的配置２６００のためのインクオブジェクト２１０２、２１０４および２１０６に適用される。この例では、第１の閾値の値は、パディングｐが、インクオブジェクト２１１０をインクオブジェクト２１０４と垂直に重ならせるように設定される。したがって、本システムおよび方法の列検出プロセスは、図２８に示す列割振りを生じ、ここで、オブジェクト２１０４および２１１０は、配置２１００の例でのように、３列レイアウトにおいて同じ列に再度割り振られる。第１の閾値の値は、任意に設定されて（および、たとえば、ＵＩを通してユーザによってリセット可能であって）よく、または、本システムおよび方法によって、たとえば、文字など、手書きされたオブジェクトのアベレージもしくは平均寸法のような、手書きの特性との関係において自動的に定義されてよい。
【００６３】
列割振りを精細フィルタリングするための代替的または追加の機構は、認識された２次元構造にわたる要素の相対間隔を考慮に入れるものである。これは、いくつかのやり方で行われてよい。図２９は、図示されるインクオブジェクト２１０２から２１１６の各々の間に水平距離をもつ配置２１００を示す。つまり、オブジェクト２１０２および２１０４の間の距離ｄ1、オブジェクト２１０８および２１１０の間の距離ｄ2、オブジェクト２１１２および２１１４の間の距離ｄ3、オブジェクト２１０４および２１０６の間の距離ｄ4ならびにオブジェクト２１１４および２１１６の間の距離ｄ5である。これらの距離から、各列のコンテンツ要素の間の平均、アベレージ、最小および最大距離が判断され得る。たとえば、列Ｃ0およびＣ1の間の平均距離ｄm1は距離ｄ1、ｄ2およびｄ3の平均であり、列Ｃ1およびＣ2の間の平均距離ｄm2は距離ｄ4およびｄ5の平均である。粗く割り振られた列の、そのような正規化された距離は、割振りのチェックを提供するために、入力配置の他のパラメータと比較されてよく、それらは、列検出のための別の（第２の）閾値として提供される。
【００６４】
第２の閾値としてのこのようなパラメータの例は、検出された潜在的列の間の間隔である。この間隔は、たとえば図２５、２６および２８において、列Ｃ0からＣ3の各々についての下付き文字に「ｎL」および「ｎR」として示される、列境界ボックスの右および左手境界の間で測定される距離ｄg1、ｄg2およびｄg3として様々に示され、「ｎ」は、列の数、たとえば、０から３である。たとえば、列をマージするためのこのパラメータに対して設定された第２の閾値は、たとえば、手書きにおける自然な変形を提供するために、約０．１から約０．７、および通常は約０．３など、所定の定数値だけスケールダウンされる、図２５におけるｄg2などの最大正間隔であってよく、それは、各列の平均距離、たとえば、平均距離ｄm1およびｄm2と比較するのに使われる。この比較に基づいて、平均距離がこの第２の閾値値よりも小さい場合、列はマージされる。このようにして、列である見込みが高いと見なされる、間隔が最も大きい列よりもはるかに適度に間隔が小さい、検出された列は、列を構成しない見込みがあるので、マージされる。
【００６５】
第２の閾値としてのこのようなパラメータの別の例は、いくつかのコンテンツ要素の間の間隔である。アルファベット文字、単語、数字、上付き文字、下付き文字、括弧、記号、ならびにマイナスおよびプラス符号ならびに仕切りラインなどの指定子のようなコンテンツ特徴の間の間隔などである。たとえば、図３０は、距離ｄc1だけ分離される２つの要素３０００および３００２によって構成されたインクオブジェクト２１０６を示す。たとえば、要素３０００はマイナス符号などの指定子であってよく、要素３００２は数字であってよい。本システムおよび方法は、ＨＷＲシステム１１４によって認識されたような隣接要素を、アプリケーション１１２において設定された規則に基づいて、単一のコンテンツ要素として取り扱うことができ、またはＨＷＲシステム１１４自体が、このようにして、たとえば、図８、９および１０に関して前に記載されたように、インクオブジェクトを戻してよい。たとえば、列をマージするための、このパラメータに対して設定された第２の閾値は、たとえば、手書きの自然な変形を提供するために、約１．１から約１．７、および通常は約１．４など、所定の定数値だけスケールアップされる、そのような要素の間の最大間隔であり、この値を各列の平均距離と比較すればよい。この比較に基づいて、平均距離がこの第２の閾値値よりも小さい場合、列は、図３１に示すようにマージされ、図２５の第１の列および第２の列は、距離ｄg1が、たとえば、スケーリングされた距離ｄc1よりも小さいので、マージされ、そうすることによって、２つの割振りし直された列Ｃ0およびＣ1が残る。このようにして、マイナスおよびプラス符号付きの数字のような、間隔が最も大きい接続された要素よりも小さく、適度に間隔を空けられた、検出された列は、列が要素間間隔よりも広く間隔を空けられることが期待されるので、列を構成しない見込みがあるとき、マージされる。
【００６６】
認識された構造の大域および極大特徴に基づく、上で記載されたマージ動作における、平均、または他の共通値の使用、各粗く検出された列の中のインクオブジェクトの間隔は、構造内のローカル変形による、構造のどの可能な過剰セグメント化の比較的堅牢な評価も提供する。
【００６７】
前に記載されたように、列検出の、上で記載された例は、行検出にも当てはまることができ、ここで、垂直整列は、ＨＷＲシステム１１４から知られ、アプリケーション１１２によって、行を判断するのに使われる。さらに、粗い、および精細な２次元構造検出の、上で記載された例において、検出結果は、各検出された列および行についての１つまたは複数の確率スコアとして提供されてよく、これらは、たとえばその確率結果についての幾何学的コストによって算出される。つまり、記載される第１の閾値および第２の閾値は、手書きされた入力の認識されたコンテンツの幾何学的関係と、行および列など、特定の構造にある、その認識されたコンテンツの幾何学的コストを判断するために比較されるパラメータである。このコストは、ＨＷＲシステム１１４からの実際の認識結果および／またはアプリケーション１１２の構造検出結果に重み付けとして、たとえば、手書き文字認識結果を通して生じられた確率に補足されてよい。このようにして、構造要素への後続割振りに対するいくつかの認識されたコンテンツの影響が容易になされてよく、たとえば、前に記載されたように数字用にはより狭い間隔を、列および／または行のマージを認め、コンテンツ、たとえば、すべての数字、文字、方程式の類似に基づいて行列の確率を増し、括弧またはフェンス要素がコンテンツ要素に近接して検出された場合は行列についての確率スコアを増す。
【００６８】
本明細書において記載された様々な例は、デジタルインクよりもむしろ画像が認識されるオフライン認識など、手書き以外の、認識のための入力の形に適用されてよく、たとえば、要素は、紙またはホワイトボード上に書く写真としてキャプチャされ、対話型スマートボード上でデジタルにキャプチャされる、などの画像として入力されてよい。
【００６９】
記載された方法およびシステムは、構造認識がオブジェクト自体の認識を考慮して実施されるとき、数字、文字、数学関数または方程式、およびそれらの組合せの行列など、２次元構造での複数のオブジェクトの処理および認識速度を増大する。さらに、行列などの構造の書写は、新たな書写エリアを作成し、行列ボタンをタップし、括弧を描くことなどのような、認識のための特定のユーザ操作を要求しない。さらに、アルゴリズムのいかなる学習またはトレーニングも要求されないが、これは、結果を向上するために実施される場合がある。
【００７０】
上記は、最良モードであると見なされるものおよび／または他の例を記載したが、そこでは様々な修正が行われてよいこと、および本明細書で開示された主題は、様々な形および例で実装されてよいこと、ならびにそれらは、多数の他のアプリケーション、組合せ、および環境において適用されてよく、それらのうちのいくつかのみが、本明細書において記載されたことが理解されよう。開示された態様は、本主題の真の趣旨および範囲から逸脱することなく、改変または補正されてよいことが、当業者には認識されよう。したがって、本主題は、本説明における具体的な詳細、陳列、および図示される例に限定されない。本明細書で開示された有利な概念の真の範囲内であるあらゆる修正および変形を保護することが意図される。
【図１】
2019506672.tif 000003
【図２】
2019506672.tif 000004
【図３】
2019506672.tif 000005
【図４Ａ】
2019506672.tif 000006
【図４Ｂ】
2019506672.tif 000007
【図５Ａ】
2019506672.tif 000008
【図５Ｂ】
2019506672.tif 000009
【図６】
2019506672.tif 000010
【図７】
2019506672.tif 000011
【図８】
2019506672.tif 000012
【図９】
2019506672.tif 000013
【図１０】
2019506672.tif 000014
【図１１Ａ】
2019506672.tif 000015
【図１１Ｂ】
2019506672.tif 000016
【図１２】
2019506672.tif 000017
【図１３】
2019506672.tif 000018
【図１４Ａ】
2019506672.tif 000019
【図１４Ｂ】
2019506672.tif 000020
【図１５】
2019506672.tif 000021
【図１６】
2019506672.tif 000022
【図１７】
2019506672.tif 000023
【図１８】
2019506672.tif 000024
【図１９】
2019506672.tif 000025
【図２０】
2019506672.tif 000026
【図２１】
2019506672.tif 000027
【図２２】
2019506672.tif 000028
【図２３】
2019506672.tif 000029
【図２４】
2019506672.tif 000030
【図２５】
2019506672.tif 000031
【図２６】
2019506672.tif 000032
【図２７】
2019506672.tif 000033
【図２８】
2019506672.tif 000034
【図２９】
2019506672.tif 000035
【図３０】
2019506672.tif 000036
【図３１】
2019506672.tif 000037
【手続補正書】
【提出日】平成30年9月21日(2018.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムであって、各コンピューティングデバイスは、プロセッサと、メモリと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読記録媒体とを備え、前記少なくとも１つの非一時的コンピュータ可読記録媒体は、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断し、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振る
ように構成される、システム。
【請求項２】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項１に記載のシステム。
【請求項３】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項１に記載のシステム。
【請求項４】
前記少なくとも１つの非一時的コンピュータ可読記録媒体は、前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するように構成される請求項３に記載のシステム。
【請求項５】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項４に記載のシステム。
【請求項６】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項５に記載のシステム。
【請求項７】
コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法であって、各コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読記録媒体とを備える方法において、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振るステップと
を含む方法。
【請求項８】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項７に記載の方法。
【請求項９】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項７に記載の方法。
【請求項１０】
前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するステップを備える請求項９に記載の方法。
【請求項１１】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項１１に記載の方法。
【請求項１３】
コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読記録媒体であって、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実行するために、前記コンピュータ可読プログラムコードは実行されるように適合され、前記コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読記録媒体とを備え、前記方法は、
前記媒体を用いて、前記入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、
前記媒体を用いて、それらの間の前記少なくとも１つの幾何学的関係を有する前記認識された要素を、前記認識された要素の配置の対応する位置に割り振るステップとを含む、非一時的コンピュータ可読記録媒体。
【請求項１４】
前記配置の前記位置は、前記認識された要素の２次元構造のセルである請求項１３に記載の非一時的コンピュータ可読記録媒体。
【請求項１５】
前記少なくとも１つの幾何学的関係は、前記配置の１つまたは複数の方向での、前記複数の認識された要素の重なりである請求項１３に記載の非一時的コンピュータ可読記録媒体。
【請求項１６】
前記方法は、前記複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、前記重なりを判断するステップをさらに含む請求項１５に記載の非一時的コンピュータ可読記録媒体。
【請求項１７】
前記少なくとも１つの幾何学的閾値は、前記認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づく請求項１６に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
前記少なくとも１つの幾何学的間隔は、前記認識された要素のうちの前記少なくともいくつかの、構成要素の間の最大間隔である請求項１７に記載の非一時的コンピュータ可読記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によってそれらの全体が本明細書に組み込まれ、その一部をなしている、２０１６年１月２０日に出願された欧州特許出願第１６２９００１５．３号明細書および２０１６年５月１２日に出願された米国特許出願第１５／１５２，７６２号明細書に対する優先権を主張する。
【０００２】
本明細書は概して、コンピューティングデバイスを使って、構造内の複数の手書きされたオブジェクトの入力を認識する分野に関する。本明細書は、より詳細には、入力コンテンツの位置関係および入力コンテンツの手書き文字認識の考慮により、手書きされたコンテンツについての２次元構造を検出することに関する。
【背景技術】
【０００３】
コンピューティングデバイスは、日常生活にとってより見かけるようになり続けている。それらは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ（２−ｉｎ−１）、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ（スマートウォッチ、スマートグラス／ヘッドセットを含む）、全地球測位システム（ＧＰＳ）ユニット、企業向け情報端末（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどの形をとる。さらに、コンピューティングデバイスは、車、トラック、農場機器、製造機器、建物環境制御（たとえば、照明、ＨＶＡＣ）、ならびに家庭および商用器具などの、車両および機器に組み込まれつつある。
【０００４】
コンピューティングデバイスは概して、中央処理ユニット（ＣＰＵ）、何らかの形のメモリ、ならびに入力および出力デバイスなど、少なくとも１つの処理要素からなる。多種多様なコンピューティングデバイスおよびそれらの後続使用は、様々なインタフェースおよび入力デバイスを必要とする。１つのそのような入力デバイスが、タッチスクリーンまたはタッチパッドなどのタッチセンシティブ表面であり、ユーザ入力は、ユーザの指またはペンもしくはスタイラスなどの用具と、タッチセンシティブ表面との間の接触を通して受信される。別の入力デバイスは、入力表面の上方でユーザによって行われたジェスチャーを検知する入力表面である。さらなる入力デバイスは、非タッチ式物理的または仮想表面との、タッチまたは非タッチ式対話のいずれかの相対的位置を検出する位置検出システムである。これらの入力の方法のいずれも、概して、テキストを描き、または入力するために使われ得る。ユーザの手書きは、手書き文字認識システムまたは方法を使って解釈される。コンピューティングデバイスへの手書き入力のための他のシステムは、Ａｎｏｔｏ  ＡＢ．、Ｌｅａｐｆｒｏｇ  Ｅｎｔｅｒｐｒｉｓｅｓ，Ｉｎｃ．、およびＬｉｖｅｓｃｒｉｂｅ，Ｉｎｃ．によって提供されるシステムなどのコンピューティングデバイスによって、表面に相対した、電子またはデジタルペンの動きを追跡させる、紙、符号化表面またはデジタル化表面と対話する電子またはデジタルペンを含む。
【０００５】
使われる入力方法にかかわらず、手書き文字認識システムおよび方法は通常、タッチセンシティブ表面との最初の接触が行われるとき（ペン下げイベント）など、デジタルインクストロークの始動、タッチセンシティブ表面との接触が止められたとき（ペン上げイベント）など、ストロークの終了、ならびにストローク始動と終了との間に行われた任意の動き（ジェスチャーまたはストローク）を判断することを伴う。これらの判断されたストロークは、入力を認識し、解釈するために処理される。コンピューティングデバイスまたは入力表面のタイプは、使用される手書き文字認識システムまたは方法のタイプを判断する場合もある。たとえば、入力表面が十分に大きい（タブレットなど）場合、ユーザは、ユーザが紙の上で書いているかのように、入力表面の上または上方のどこでも入力を手書きしてよい。ただしこれは、認識タスクに複雑さを加え、というのは、認識されるべき別々の要素は、要素の相対的位置に依存して関係がある場合も、それらの相対的位置に依存せずに無関係な場合もあるからである。
【０００６】
たとえば、数学的方程式、テーブルおよび行列など、構造化されたコンテンツ用に、手書きされた要素の相対的な位置決めが、構造を定義するために必要である。数学的行列の認識を扱うための、いくつかのシステム、たとえば、米国特許第７，４４７，３６０号明細書および米国特許第８，１２１，４１２号明細書が用意されている。これらのシステムは、たとえば、行および列内の、括弧または空間的整列など、認識のための指示的要素に依拠し、したがって、コンテンツ自体を顧みずに、構造を認識するだけである。そのような認識は、比較的単純であり整合された行列には適用可能であるが、それらは、たとえば、方程式、部分行列、誤整列された行列要素などのような複雑な要素を含む、より複雑な行列、または空の要素セル、たとえば、行および列位置を有する行列を扱うことはできない。さらに、これらの特許の記載されるシステムは、これらの構造の絶対的認識を提供し、そうすることによって、コンテンツ自体の認識に影響する。
【０００７】
要求されているのは、特定の指定要素またはジェスチャーの入力に依拠せず、それら自体の認識に対する処理時間または複雑さを大幅に増大しないと同時に、十分な認識の正確さを保持する、行列および同様の複雑なコンテンツ構造を認識するシステムである。
【発明の概要】
【０００８】
本明細書において以下で記載される本発明の例は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムおよびシステムを提供するための方法を提供する。一例では、コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを含み得る。非一時的コンピュータ可読媒体は、媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断し、媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るように構成され得る。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【０００９】
少なくとも１つの非一時的コンピュータ可読媒体は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するようにも構成され得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってもよい。
【００１０】
別の例では、本発明は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法を含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを備え得る。方法は、（ｉ）媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断するステップと、（ｉｉ）媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るステップとを備え得る。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【００１１】
方法は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
【００１２】
別の例では、本発明は、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体を含む。コンピュータ可読プログラムコードは、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実装するために実行されるように適合され得る。コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも１つの非一時的コンピュータ可読媒体とを備え得る。方法は、（ｉ）媒体を用いて、入力の、複数の認識された要素の間の少なくとも１つの幾何学的関係を判断すること、および（ｉｉ）媒体を用いて、それらの間の少なくとも１つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振ることを備える。配置の位置は、認識された要素の２次元構造のセルであってよい。少なくとも１つの幾何学的関係は、配置の１つまたは複数の方向での、複数の認識された要素の重なりであってよい。
【００１３】
方法は、複数の認識された要素の、１つまたは複数の幾何学的特徴の間の方向距離と、少なくとも１つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも１つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも１つの幾何学的間隔に基づき得る。少なくとも１つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
【図面の簡単な説明】
【００１４】
本システムおよび方法は、図面と併せて、それらの例の以下の詳細な説明から、より十分に理解されよう。図面において、同じ参照番号は同じ要素を示す。
【図１】本システムおよび方法の例によるコンピューティングデバイスのブロック図である。
【図２】本システムおよび方法の例による手書き文字認識のためのシステムのブロック図である。
【図３】本システムおよび方法の例による、図２の手書き文字認識システムの詳細を示すブロック図である。
【図４Ａ】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図４Ｂ】図４Ａの手書きされた入力の認識された出力の例を示す図である。
【図５Ａ】本システムによる、２×３行列の形での、手書きされた入力の例を示す図である。
【図５Ｂ】図５Ａの手書きされた入力の認識された出力の例を示す図である。
【図６】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図７】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図８】本システムによる、４×４行列の形での、手書きされた入力の例を示す図である。
【図９】本システムによる、２×３行列の形での、手書きされた入力の例を示す図である。
【図１０】本システムによる、２×２行列の形での、手書きされた入力の例を示す図である。
【図１１Ａ】本システムによる、３×３行列の形での、手書きされた入力の例を示す図である。
【図１１Ｂ】図１１Ａの手書きされた入力の認識された出力の例を示す図である。
【図１２】本システムによる、３×３行列の形での、手書きされた入力の例を示す図である。
【図１３】本システムによる、手書きされた入力の例を示す図である。
【図１４Ａ】本システムによる、手書きされた入力の別の例を示す図である。
【図１４Ｂ】図１４Ａの手書きされた入力の認識された出力の例を示す図である。
【図１５】本システムによる、手書きされた入力のさらに別の例を示す図である。
【図１６】本システムによる、入れ子行列をもつ３×３行列の形での、手書きされた入力の例を示す図である。
【図１７】本システムによる、１×３行列の形での、手書きされた入力の例を示す図である。
【図１８】本システムによる、３×１行列の形での、手書きされた入力の例を示す図である。
【図１９】本システムによる、手書きされた入力の例を示す図である。
【図２０】本システムによる、手書きされた入力の例を示す図である。
【図２１】本システムによる行列認識の例を示す図である。
【図２２】本システムによる行列認識の例を示す図である。
【図２３】本システムによる行列認識の例を示す図である。
【図２４】本システムによる行列認識の例を示す図である。
【図２５】本システムによる行列認識の例を示す図である。
【図２６】本システムによる行列認識の例を示す図である。
【図２７】本システムによる行列認識の例を示す図である。
【図２８】本システムによる行列認識の例を示す図である。
【図２９】本システムによる行列認識の例を示す図である。
【図３０】本システムによる行列認識の例を示す図である。
【図３１】本システムによる行列認識の例を示す図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明において、適切な教示の完全な理解を提供するために、いくつかの具体的な詳細が例として説明される。ただし、本教示がそのような詳細なしに実践され得ることが、当業者には明らかなはずである。他の事例では、よく知られている方法、手続き、構成要素、および／または回路機構が、本教示の態様を不必要に不明瞭にするのを避けるために、詳細なしで、比較的高水準で記載されている。上、下、上方、下方、最も低い、最も高い、水平、垂直などのような、方向性特徴の参照およびそれらの考察が、認識されるべき入力がその上で行われる入力表面に適用されるデカルト座標系に関して行われる。
【００１６】
本明細書において記載される様々な技術は概して、キャプチャ、コンテンツの入力されたスタイルを保持するとともに、そのコンテンツの忠実な植字または美化されたバージョンへの変換を可能にするような、ポータブルおよび非ポータブルコンピューティングデバイス上での手描きおよび手書きされたコンテンツの処理および管理に関する。本明細書において記載されるシステムおよび方法は、コンピューティングデバイスに接続された、もしくはそのタッチセンシティブスクリーンなどの入力表面を介して、またはコンピューティングデバイスに接続されたデジタルペンもしくはマウスなどの入力デバイスを介して、または位置検出システムによって監視される物理的もしくは仮想表面を介して、コンピューティングデバイスに入力された、ユーザの自然な書写および描画スタイルの認識を使用し得る。いわゆるオンライン認識技法を使う手書き入力の認識に関して様々な例が記載されるが、デジタルインクよりもむしろ画像が認識されるオフライン認識などの認識のための他の形の入力への適用が可能であることが理解されよう。手描きおよび手書きという用語は、本明細書では、デジタルもしくはデジタルに接続された媒体上に直接的に、またはハンドヘルドスタイラスなどの入力ツールを介してのいずれかで、手の使用を通した、ユーザによるデジタルコンテンツの作成を定義するために互換的に使われる。「手」という用語は、本明細書では、入力技法の簡潔な記述を提供するのに使われるが、足、口および目など、同様の入力のためのユーザの体の他の部分の使用が、この定義に含まれる。
【００１７】
図１は、コンピューティングデバイス１００の例のブロック図を示す。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム（ＧＰＳ）ユニット、企業向け情報端末（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどであってよい。コンピューティングデバイス１００は、少なくとも１つの処理要素、何らかの形のメモリならびに入力および／または出力（Ｉ／Ｏ）デバイスの構成要素を含む。構成要素は、当業者に知られているコネクタ、ライン、バス、ケーブル、バッファ、電磁気リンク、ネットワーク、モデム、トランスデューサ、ＩＲポート、アンテナ、またはそれ以外などの入力および出力を通して互いと通信する。
【００１８】
コンピューティングデバイス１００の図示される例は、画像、テキスト、およびビデオなどのデータをコンピューティングデバイスから出力するための少なくとも１つのディスプレイ１０２を有する。ディスプレイ１０２は、当業者に知られている、タッチセンシティブであるか、またはそうでないＬＣＤ、プラズマ、ＬＥＤ、ｉＯＬＥＤ、ＣＲＴ、または他のどの適切な技術を使ってもよい。ディスプレイ１０２のうちの少なくとも一部が、少なくとも１つの入力表面１０４と共置される。入力表面１０４は、抵抗性、表面音響波、容量性、赤外線グリッド、赤外線アクリル投影、光学撮像、分散信号技術、音響パルス認識、または当業者に知られている他の任意の適切な技術などの技術を、ユーザ入力を受信するのに利用し得る。入力表面１０４は、その境界を明白に識別する永久またはビデオ生成ボーダーによって境界され得る。搭載ディスプレイの代わりに、またはそれに加えて、コンピューティングデバイス１００は、投影型ディスプレイ能力を有する場合がある。あるいは、コンピューティングデバイスは、ディスプレイに依存しないか、またはディスプレイなしの入力表面を含み得る。ディスプレイをもたないデバイスのケースでは、入力表面を介して行われた入力は、コンピューティングデバイスによって表示されず、むしろデバイスは、たとえば、制御入力のために使われるか、または接続されたデバイスもしくは専用表示デバイス上でコンテンツとして表示される、認識された入力（後で論じられる）のみをもつ入力デバイスとして作用する。
【００１９】
コンピューティングデバイス１００は、ローカルインタフェースを介して通信可能に結合されている１つまたは複数の追加Ｉ／Ｏデバイス（または周辺装置）を含み得る。追加Ｉ／Ｏデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザーリーダ、無線周波数デバイスリーダ、または当業者に知られている他の任意の適切な技術などの入力デバイスを含み得る。さらに、Ｉ／Ｏデバイスは、プリンタ、バーコードプリンタ、または当業者に知られている他の任意の適切な技術などの出力デバイスを含み得る。さらに、Ｉ／Ｏデバイスは、変調器／復調器（モデムであって、別のデバイス、システム、もしくはネットワークにアクセスするため）、無線周波数（ＲＦ）もしくは他のトランシーバ、電話インタフェース、ブリッジ、ルータ、または当業者に知られている他の任意の適切な技術など、入力と出力の両方を通信する通信デバイスを含み得る。ローカルインタフェースは、コントローラ、バッファ（キャッシュ）、ドライバ、リピータ、および受信機など、通信を可能にするための追加要素を有してよく、これらは、簡単のために省かれているが、当業者には知られている。さらに、ローカルインタフェースは、他のコンピュータ構成要素の間での適切な通信を可能にするためのアドレス、制御、および／またはデータ接続を含み得る。
【００２０】
コンピューティングデバイス１００はプロセッサ１０６も含み、これは、ソフトウェア、特に、メモリ１０８中に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、どのカスタムメイドまたは市販の汎用プロセッサ、中央処理ユニット（ＣＰＵ）、（マイクロチップもしくはチップセットの形の）半導体ベースのマイクロプロセッサを含む市販のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）もしくは他のプログラム可能論理素子、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、状態マシン、または当業者に知られている、ソフトウェア命令を実行するために設計された、それらのどの組合せであってもよい。
【００２１】
メモリ１０８は、揮発性メモリ要素（たとえば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、もしくはＳＤＲＡＭなどのＲＡＭ））および不揮発性メモリ要素（たとえば、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気もしくは光学テープ、メモリレジスタ、ＣＤ−ＲＯＭ、ワーム、ＤＶＤ、安価ディスクの冗長アレイ（ＲＡＩＤ）、別の直接アクセス記憶デバイス（ＤＡＳＤ）、または他の任意の磁気、抵抗性もしくは位相変化不揮発性メモリ）のうちのどの１つまたは組合せを含んでもよい。その上、メモリ１０８は、電子、磁気、光学、および／または他のタイプの記憶媒体を組み込み得る。メモリ１０８は、様々な構成要素が互いから離れて位置するが、プロセッサ１０６によってアクセスされることも可能な分散型アーキテクチャを有し得る。さらに、メモリ１０８は、たとえば、コンピューティングデバイス１００によってリモートにアクセス可能であるサーバまたはクラウドベースのシステムにおいて、デバイスから離れていてもよい。メモリ１０８はプロセッサ１０６に結合されるので、プロセッサ１０６は、メモリ１０８から情報を読み取り、そこに情報を書き込むことができる。代替として、メモリ１０８は、プロセッサ１０６と一体である場合がある。別の例では、プロセッサ１０６およびメモリ１０８は両方とも、単一のＡＳＩＣまたは他の集積回路中に存在する場合がある。
【００２２】
メモリ１０８中のソフトウェアは、オペレーティングシステム１１０、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体の形のアプリケーション１１２、および手書き文字認識（ＨＷＲ）システム１１４を含み、これらは各々、１つまたは複数の別個のコンピュータプログラムを含むことができ、これらの各々は、論理関数を実装するための実行可能命令の順序付き列挙を有する。オペレーティングシステム１１０は、アプリケーション１１２およびＨＷＲシステム１１４の実行を制御する。オペレーティングシステム１１０は、ＷＥＢＯＳ、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣ  ａｎｄ  ＩＰＨＯＮＥ  ＯＳ（登録商標）、ＬＩＮＵＸ、およびＡＮＤＲＯＩＤなど、どの固有オペレーティングシステムまたは市販もしくは無料入手可能なオペレーティングシステムであってもよい。他のオペレーティングシステムが使用されてもよいことが理解されよう。あるいは、本システムおよび方法のアプリケーション１１２は、オペレーティングシステムの使用なしで提供され得る。
【００２３】
アプリケーション１１２は、本明細書において記載される手書き文字認識、異なる機能、または両方に関連し得る。アプリケーション１１２は、製造時にコンピューティングデバイス１００とともに提供されるプログラムを含み、製造後にコンピューティングデバイス１００にアップロードまたはダウンロードされたプログラムをさらに含み得る。いくつかの例は、テキストエディタ、テレフォンダイアラ、連絡先ディレクトリ、インスタントメッセージング機構、コンピュータ支援設計（ＣＡＤ）プログラム、電子メールプログラム、文書処理プログラム、ウェブブラウザ、およびカメラを含む。
【００２４】
サポートおよびコンプライアンス能力をもつＨＷＲシステム１１４は、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプト、アプリケーション、または実施されるべき命令のセットを有する他のどのエンティティであってもよい。ソースプログラムのとき、プログラムは、オペレーティングシステムとともに正しく動作するように、メモリ内に含まれる場合も含まれない場合もあるコンパイラ、アセンブラ、インタープリタなどを介して翻訳される必要がある。さらに、サポートおよびコンプライアンス能力をもつ手書き文字認識システムは、（ａ）データのクラスおよびメソッドを有するオブジェクト指向プログラミング言語、（ｂ）たとえばＣ、Ｃ＋＋、Ｐａｓｃａｌ、Ｂａｓｉｃ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、Ｐｅｒｌ、Ｊａｖａ、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｓｗｉｆｔ、およびＡｄａだが、それらに限定されない、ルーチン、サブルーチン、および／もしくは関数を有する手続きプログラミング言語、または（ｃ）たとえばＨｏｐｅ、Ｒｅｘ、Ｃｏｍｍｏｎ  Ｌｉｓｐ、Ｓｃｈｅｍｅ、Ｃｌｏｊｕｒｅ、Ｒａｃｋｅｔ、Ｅｒｌａｎｇ、ＯＣａｍｌ、Ｈａｓｋｅｌｌ、Ｐｒｏｌｏｇ、およびＦ＃だが、それらに限定されない関数型プログラミング言語として書かれてよい。あるいは、ＨＷＲシステム１１４は、サーバまたはクラウドベースのシステムなど、デバイスとはリモートであるが、コンピューティングデバイス１００の上述の通信Ｉ／Ｏデバイスを使って、通信リンクを通してコンピューティングデバイス１００によってリモートにアクセス可能である手書き文字認識システムとの通信のための方法またはシステムであってよい。さらに、アプリケーション１１２およびＨＷＲシステム１１４は、一緒に動作するか、または単一のアプリケーションとして組み合わされてよい。さらに、アプリケーション１１２および／またはＨＷＲシステム１１４は、オペレーティングシステム１１０内に統合されてよい。
【００２５】
入力表面１０４上で、またはそれを介して入れられたストロークは、デジタルインクとしてプロセッサ１０６によって処理される。ユーザは、指または入力表面との使用に適したペンもしくはスタイラスなど、何らかの用具でストロークを入れることができる。ユーザは、入力表面１０４の付近での動きを検知する技術が使われている場合、入力表面１０４の上方でジェスチャーを行うことによって、またはマウスもしくはジョイスティックなど、コンピューティングデバイス１００の周辺デバイスを用いて、ストロークを入れることもできる。ストロークは、少なくともストローク始動ロケーション、ストローク終了ロケーション、ならびにアプリケーション１１２および／またはＨＷＲシステム１１４によってキャプチャされたストローク始動および終了ロケーションを接続する軌道によって特徴づけられる。軌道に沿ったいくつかのサンプル点におけるタイミング、圧力、角度など、さらなる情報が、ストロークのより深い詳細を提供するためにキャプチャされてもよい。異なるユーザが、当然ながら同じオブジェクト、たとえば、文字、形状、または記号を、わずかな変形を有して書く場合があるので、本システムは、各オブジェクトが正しいまたは意図されたオブジェクトとして認識されながら入れられ得る様々なやり方を受け入れる。
【００２６】
図２は、ＨＷＲシステム１１４の例の概略描写である。ＨＷＲシステム１１４は、前処理１１６、認識１１８および出力１２０などの段階を含む。前処理段階１１６は、より高い正確さを達成するように、デジタルインクを処理し、認識段階１１８中の処理時間を削減する。この前処理は、入力を滑らかにするためのＢスプライン近似などのサイズ正規化および／または方法を適用することによって、ストローク始動および終了ロケーションを接続する軌道の正規化を含み得る。前処理されたストロークは次いで、認識段階１１８に渡され、これは、ストロークを処理して、そうすることによって形成されたオブジェクトを認識する。認識されたオブジェクトは次いで、概して、手書きされた要素／文字の植字されたバージョンとして、ディスプレイ１０２に出力１２０される。
【００２７】
認識段階１１８は、異なる処理要素またはエキスパートを含み得る。図３は、認識段階１１８の概略的詳細を示す、図２の例の概略描写である。出力１２０を生成するために動的プログラミングを通して協力する３つのエキスパート（セグメント化エキスパート１２２、認識エキスパート１２４、および言語エキスパート１２６）が、図示されている。
【００２８】
セグメント化エキスパート１２２は、式、たとえば、数学方程式、単語、または形状のグループを形成するために、入力ストロークを個々の要素仮定、たとえば、英数字および数学演算子、テキスト文字、個々の形状、または副次式にセグメント化するための異なるやり方を定義する。たとえば、セグメント化エキスパート１２２は、各ノードが少なくとも１つの要素仮定に対応し、要素の間の隣接制約がノード接続によって扱われるセグメント化グラフを取得するように元の入力の連続するストロークをグループ化することによって、要素仮定を形成し得る。
【００２９】
認識エキスパート１２４は、分類器１２８によって抽出された特徴の分類を提供し、セグメント化グラフの各ノードについての確率または認識スコアをもつ要素候補のリストを出力する。この認識タスクを対処するのに使われてもよい多くのタイプの分類器、たとえば、サポートベクターマシン、隠れマルコフモデル、または多層パーセプトロン、深層、畳込みもしくは再帰型ニューラルネットワークなどのニューラルネットワークが存在する。選択は、タスク用に所望される複雑さ、正確さ、および速度に依存する。
【００３０】
言語エキスパート１２６は、言語モデル（たとえば、文法またはセマンティクス）を使って、セグメント化グラフ中の異なる軌道についての言語的意味を生成する。エキスパート１２６は、言語的情報１３０に従って、他のエキスパートによって提案された候補をチェックする。言語的情報１３０は、レキシコン、正規表現などを含んでよく、言語エキスパート１２６によって言語モデルを実行するのに使われるすべての静的データのための記憶である。言語モデルは、所与の言語についての統計的情報に依拠し得る。言語的情報１３０は、認識およびユーザ対話の結果による適応ありまたはなしで、オフラインで計算され、言語エキスパート１２６に提供される。言語エキスパート１２６は、最良の認識軌道を見つけることを目指す。一例では、言語エキスパート１２６は、言語的情報１３０のコンテンツを表す最終状態オートマトン（ＦＳＡ）などの言語モデルを調査することによって、これを行う。レキシコン制約に加え、言語エキスパート１２６は、要素の所与のシーケンスがどれだけ頻繁に、指定された言語において現れ、または特定のユーザによってセグメント化グラフの所与の軌道の翻訳の言語的尤度を評価するのに使われるかについての統計的情報モデリングを用いる言語モデルを使うことができる。
【００３１】
本明細書において記載されるシステムおよび方法は、デバイス１００への手書きされた入力を認識するために、ＨＷＲシステム１１４を利用する。特に、本システムおよび方法は、行列などの構造内でのコンテンツ入力を認識する。行列とは、本明細書において、たとえば、テーブルには存在し得るラインおよびヘッダ、またはリストには存在し得るドット点および数字のような行および／または列指定子を使用しない、１つまたは複数の行および列中の、概して関係がある、通常は数字、文字、記号、数学的式であるいくつかの要素のレイアウトとして定義される。そのような行列は通常、数学的演算において使われ、情報をキャプチャし、かつ／またはそのような演算を実践するために、手書きのプロセスを通して手動で、または、たとえば、数学的ソリューション（後で論じられる）を提供するためのアプリケーション１１２の能力を通して自動的に、のいずれかで、デバイス１００の１人または複数のユーザによって入力され得る。
【００３２】
行列などの構造化された入力を認識するための、上で論じられた知られているシステムとは異なり、本システムおよび方法は、認識を可能にするために、括弧などの特定のコンテンツを入力することをユーザに要求することもなく、方程式、部分行列、誤整列された要素および欠けている要素のような、より複雑な要素を有する行列を認識することができないプロセスを使うこともない。さらに、知られているシステムは、幾何学的投影を使って、行および列を検出し、認識のために構造全体を処理するだけであるが、本システムおよび方法は、投影なしで、すべての要素の漸進的認識および幾何学的関係を使うことができる。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
【００３３】
図４から２０は、手書きまたは手描きされた行列の様々な例を示し、いくつかが、植字バージョンでも示されている。図４Ａは、たとえば、２かける２（または２×２であるが、本明細書では、「行の数」×「列の数」という標準用法が使われる）のデジタルインク行列４００としてレンダリングされた、デバイス１００の入力表面１０４上へ行われた手書きされた入力を示す。行列４００は、４つのコンテンツ要素、「３」である４０２、「２」である４０４、「７」である４０６および「１」である４０８を有する。要素４０２および４０４は、第１のほぼ水平なラインまたは行４１０に置かれ、要素４０６および４０８は、第２のほぼ水平なラインまたは行４１２に置かれ、要素４０２および４０６は、第１のほぼ垂直なラインまたは列４１４に置かれ、要素４０４および４０８は、第２のほぼ垂直なラインまたは列４１６に置かれる。これらのコンテンツ要素は、第１のほぼ垂直な括弧またはフェンス要素４１８（たとえば、第１の列４１４の左手側にある）および第２のほぼ垂直括弧またはフェンス要素４２０（たとえば、第２の列４１６の右手側にある）内に含まれる。１つまたは複数の行および１つまたは複数の列におけるコンテンツ要素の相対的位置は、入力の認識された要素のうちの少なくとも１つの幾何学的関係に基づく、行列４００の第１の特性を提供し、１つまたは複数のフェンス要素内でのコンテンツ要素の包含は、行列４００の第２の特性を提供する。
【００３４】
本システムおよび方法のアプリケーション１１２は、ＨＷＲシステム１１４によって入力４００が行列であると判断するために実施される手書き文字認識と併せて、第１の特性を単独で、または第２の特性と組み合わせて、のいずれかで検出し、所定の、および／または、たとえば、デバイス１００上のユーザインタフェース（ＵＩ）を介してユーザ設定可能なフォーマット化を適用して、図４Ｂに示すような植字行列４００’を出力する。見るとわかるように、植字行列４００’は、行４１０、４１２および列４１４、４１６に依然として配置されている、それぞれ、デジタルインクコンテンツ要素４０２から４０８の植字バージョン４０２’から４０８’、ならびに、それぞれデジタルインクフェンス要素４１８および４２０の植字バージョン４１８’および４２０’を有する。したがって、本システムおよび方法は、認識された行列４００を、たとえば、行列のデジタルバージョン用にユーザによって期待されるフォーマットで表示する。認識された行列の表示フォーマットは、異なるようにされてよく、必ずしも「植字インク」ではなく、「美化された」デジタルインクであってよく、つまり、デジタルインクの表示は保持されるが、手書きの自然な変形が、要素の相対的位置を修正し、文字自体などのようなインク要素を滑らかにし、かつ／または正規化することによって、やわらげられるか、または正規化されることが理解されよう。美化が、デジタルインクもしくは植字インク（たとえば、行列要素の相対的位置が整列される）、または両方で実践されようとも、まだ入力されていない場合は括弧の表示など、認識結果またはその要素のプレビューを通すなどして、ユーザは、行列およびそのコンテンツの認識についてのフィードバックを提供され得る。
【００３５】
図４の入力は、行および列に比較的良好に整列されたコンテンツ要素として１桁の数字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図５Ａは、手書きされた入力からレンダリングされた、同様に単純な、ただしアルファベットコンテンツ要素をもつ２×３デジタルインク行列を示す。図５Ｂは、本システムおよび方法の認識された出力を、植字行列として示す。図４のように、図５の入力は、行および列に比較的良好に整列されたコンテンツ要素として単一アルファベット文字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図６は、行および列に比較的良好に整列されているが、異なる形をしたフェンス要素によって囲まれるか、または含まれるコンテンツ要素として１桁の数字をもつ、手書きされた入力からレンダリングされた、同様に単純な２×２デジタルインク行列を示し、たとえば、角括弧ではなく丸括弧が使われる。本システムおよび方法は、行列入力の検出を支援するために、これらの異なる、および他の、フェンス形を認識するように構成される。フェンス要素は行列の２次特性であるが、行および／または列中にコンテンツの１次特性を有する他の構造が、たとえば、テーブル中に垂直および／または水平ラインに描かれたような同様の２次特性を有することに留意されたい。さらに、後で詳しく記載されるように、第２の特性を考慮しない（たとえば、フェンス要素が存在しない場合さえある）、入力行列の第１の特性の認識のみで、そのような検出に十分である場合がある。
【００３６】
手書きされた行列のわずかにより複雑な例が図７に示され、ここで、入力２×２行列は、２桁の数字を、たとえば、左手列に、少なくとも１つのわずかに不整列の列をもつコンテンツ要素として有する。各２桁の要素の数字の間の空間と結合された、このわずかな不整列は、２×２行列である行列の正しい認識のための難題を提供し、というのは、空間のうちの１つまたは複数は、２桁の構成要素の間よりもむしろ、列の間の空間と見なされ場合があり、したがって、堅牢な認識規則なしでは、図７の行列は、１桁の要素の２×５行列として検出される可能性があると想定されるからである（たとえば、「１１」の「１」、「１２」の「１」および「２」、「１３」の「１」および「３」ならびに「１４」の「１」および「４」は、第１の列に割り振られた「１１」の第１の「１」、第２の列に割り振られた「１１」の第２の「１」および「１３」の「１」、第３の列に割り振られた「１３」の「３」、第４の列に割り振られた「１２」の「１」および「１４」の「１」、ならびに第５の列に割り振られた「１２」の「２」および「１４」の「４」と別個に取り扱われる。同様の結果が、当然ながら、より大きい数について起こり得る。このような不正確な認識が行われた場合、認識の、結果としての美化された出力は、ユーザによって意図されたものと大きく異なる、認識された行列および／またはデータ表現の任意の後続使用を表示することになる）。本方法およびシステムは、行列に適用可能であるよりも多くの列を戻す、コンテンツ要素の過剰セグメント化によって引き起こされる、そのような不正確な行列認識の出現を最小限にするための基準を利用するが、これは後で詳しく記載される。
【００３７】
他のコンテンツ要素形も、明らかな不整列ありまたはなしの難題を提供する。たとえば、図８は、いくつかが指定子、たとえば、それらのコンテンツ要素に対して数学的意味を指定するマイナス符号を有する、１桁の数字としてのコンテンツ要素を有する、手書きされた行列を示す。そのような指定子は、非常に様々な記号、マークまたは文字によって形成されてよく、図７の大きい（より大きい）数の例についてと同じように、コンテンツ要素の過剰セグメント化の結果、これらの指定子は、それらが指定するコンテンツとは別個の列に割り振られることになる。同様の問題が、図９の例示的行列に示す小数、および図１０の例示的行列に示す分数を伴う数的コンテンツ要素にも当てはまる。
【００３８】
そのような行列入力についての不正確な認識の最小限化が、コンテンツ要素自体の認識をアプリケーション１１２の行列検出プロセスの考慮に入れることによって、本システムおよび方法によって提供される。つまり、図８の例示的行列について、ＨＷＲシステム１１４は、指定子を、アプリケーション１１２がこれらを各々、単一のコンテンツ要素として取り扱うように、たとえば、「−１」、「−２」および「−３」を形成する、そのすぐ右手側で数字に接続されたマイナス符号として認識し、図９の例示的行列について、ＨＷＲシステム１１４は、たとえば、「３．５」を形成する隣接数字の間の小数点を、アプリケーション１１２がこれを単一のコンテンツ要素として取り扱うように認識し、図１０の例示的行列について、ＨＷＲシステム１１４は、たとえば、分数「１／４」を形成する隣接数字の間の仕切りラインを、アプリケーション１１２がこれを単一のコンテンツ要素として取り扱うように認識する。本システムおよび方法がコンテンツ構造検出のために認識結果を考慮に入れるやり方が、後で詳しく記載される。
【００３９】
他の行列タイプは、数字またはアルファベット文字などのコンテンツ要素タイプの混合物を含み、さらに他の行列コンテンツ要素タイプは、下付き文字および上付き文字など、抽象的な数学的形を含む。たとえば、図１１Ａは、「０」である数的コンテンツ要素と、下付き数字で指定されたアルファベット文字を有する英数字コンテンツ要素の両方を有する、手書きされた行列を示す。上述した図８から１０の指定子例と同様、認識されたコンテンツを考慮に入れることによって、たとえば、ＨＷＲシステム１１４は、「ａ11」、「ａ22」および「ａ33」を形成する、数字のすぐ左手側でそれに接続された下付き文字を認識し、アプリケーション１１２は、植字インクで表示される、図１１Ｂに示される認識された行列を提供し、というのは、下付き文字は、コンテンツ要素全体自体としてではなく、より大きいコンテンツ要素の一部として取り扱われるからである。
【００４０】
図１２は、下付き文字を含むコンテンツ要素をもつ同様の例示的入力行列を示す。ただし、前の例とは異なり、図１２の行列は、空のコンテンツ要素位置またはセルも含む。つまり、各行および列位置は、第１の行（たとえば、行０として識別される）および第１の列（たとえば、列０として識別される）におけるコンテンツ要素位置が、たとえば「セル０，０」に対応するように、セルと見なされる。ただし、他の形の識別用行列要素位置が可能である。さらに、アプリケーション１１２および／またはＨＷＲシステム１１４は、そのような識別子を、たとえば、デバイス１００のメモリ１０８中に記憶された、データタグなどの位置データとして、認識されたコンテンツに適用してよい。そのような空のセルの存在は、行列など、２次元の構造化されたコンテンツの正しい認識のための別の難題を引き起こす場合があり、というのは、構造の行および列の識別は、考えられるところでは、考慮されている要素の同じ行および／または列内からではなく、他の行および／または列からの要素の考慮により確かめられるだけだからである。たとえば、さもなければ空の行（または列）中の要素は、他のどの要素とも整列されず、したがって、行（または列）の識別は、整列されていない要素を検討することによって行われる。本システムおよび方法は、後で詳しく記載されるように、そのようなコンテンツシナリオにおいてさえも、堅牢な行列検出を提供する。
【００４１】
前に記載されたように、フェンス要素の存在は、特に空のセルが存在するとき、行列の認識を支援するのに使われ得る。これは、フェンス要素の存在が、（たとえば、単一のフェンスシナリオにおいて）フェンス要素（１つまたは複数）に囲まれ、含まれ、またはそうでなければ隣接するコンテンツが、１つまたは複数の行および１つまたは複数の列中にレイアウトされることを意味すると解釈される場合、空のセルは、非コンテンツとしてではなく、そのような行（１つもしくは複数）および／または列（１つもしくは複数）の一部と見なされるからである。ただし、やはり前に記載されたように、本システムおよび方法は、行列用のフェンス要素などの構造的インジケータの存在または助けなしで、２次元のコンテンツ構造を認識することが可能である。たとえば、図１３は、図１２の例のように、空のセルをもつ例示的入力行列を示すが、図１２とは異なり、フェンス要素が存在しない。本システムおよび方法は依然として、図１３の行および列構造を正確に識別するが、認識結果は、行列として識別される場合も、されない場合もある。つまり、それは、２次元構造として識別されるだけであってよく、これは、認識結果の任意の後続使用に依存して、いかなる現実的な結果としての影響も持たない場合がある。このようなケースにおいてさえも、ユーザによる、認識された構造を行列として指定するための選択が、ＵＩなどを介して、および／またはたとえば、表示されるコンテンツ要素についての、生成されたデジタルもしくは植字インクフェンス要素の表示など、認識結果のフィードバックもしくはプレビューを通して提供され得る。本システムおよび方法のそのような特徴が、後で詳しく記載される。
【００４２】
２次元構造におけるさらなる複雑さが可能である。図１４Ａは、追加入力をもつ、図５Ａの例示的な２×３デジタルインク行列を示す。具体的には、３＊２の手書きされた行列が、２×３行列のすぐ右に入力され、イコール符号、すなわち「＝」、および２つの数学的方程式を含むさらなる行列が続く。見るとわかるように、最も右の行列は、最初の２つの行列の乗算の部分的結果を含み、これは、２×３行列の行０と３×２行列の列０の積、および２×３行列の行１と３×２行列の列１の積であり、ここで、全結果が、期待される２×２行列を形成することになる。図１４Ｂは、認識された出力を植字形で示し、見るとわかるように、第３の行列の方程式は、２×２行列のセル０，０およびセル１，１に属すものとして正しく認識される。この認識は、図１４Ａに示すように、手書きされた方程式の比較的重大な重なりにかかわらず生じる。前に記載されたように、この認識は、第３の行列の行内の方程式の認識の考慮により本システムおよび方法によって達成され、全体の認識されたコンテンツ、たとえば、２×３行列と３×２行列の積から生じる、期待される２×２行列の考慮により認識されてもよい。これらの特徴は、後で詳しく記載される。
【００４３】
コンテンツ要素を、セル割振りを判断するために個々の入力要素を個々に取り扱うよりもむしろ、ＨＷＲシステム１１４からの認識結果に基づく各コンテンツ要素の１つまたは複数の認識された要素に関する２次元構造のセルに属すものとして取り扱うことによって、本システムおよび方法は、より複雑な行列形でさえもほぼ正確に検出することができる。たとえば、図１５は、上で記載されたコンテンツ特徴、たとえば、アルファベット文字、単語、数字、上付き文字、括弧、記号、ならびにマイナス符号および仕切りラインなどの指定子のうちの多くを組み合わせる比較的複雑な数学関数を含む各コンテンツ要素をもつ例示的な手書きされた２×２行列を示す。ただし、この複雑さにかかわらず、本システムおよび方法は、各認識された関数の認識された複合部分が、対応する行列セルに属す単一のコンテンツ要素として取り扱われるので、２×２行列を検出する。さらに、図１６は、入れ子行列を含む、例示的な手書きされた３×３行列を示し、たとえば、セル０，０は２×２部分行列を含み、セル１，１は２×３部分行列を含み、セル２，２は２×３部分行列を含む。
【００４４】
比較的複雑な行列は、検出および認識のための難題を提示するが、単一の行または単一の列の行列など、過度に単純な行列も、難題を提示する。図１７は、例示的な１×３の手書きされた行列を示し、図１８は、例示的な３×１の手書きされた行列を示す。いずれのケースでも、（前に論じられた空のセル問題と同様）１×３行列についての行間関係も、３×１行列についての列間関係もないので、複数の列（または行）の存在を判断するのは困難であり得る。これは、その行または列自体の中のコンテンツ要素のみが、列または行を判断するために検討すべきであり、したがって、列または行判断のための閾値などを設定するための、関係しているそれらの要素の間の距離または空間の値が、その判断には重大だからである。基本的に、判断がより不確定になるような、比較的少ない情報が入手可能である。
【００４５】
たとえば、図１７では、列判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「３」、「７」および「２」をもつ１×３行列、もしくはコンテンツ要素「３」および「７２」をもつ１×２行列として認識されるか、またはコンテンツ「３７２」をもつ、行列ではまったくないと認識され得る。同様に、図１８では、行判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「４」、「１」および「８」をもつ３×１行列、もしくはコンテンツ要素「４」および「１８」をもつ２×１行列として認識されるか、または（垂直に配列された）コンテンツ「４１８」をもつ、行列ではまったくないと認識され得る。前に論じられたように、フェンス要素（１つまたは複数）の２次特性は、いかなる行列結果も起こらないように、行列検出そのものを支援し得るが、これは、行列の内部構造に関して、アプリケーション１１２に知らせない。本システムおよび方法では、さらなる（または第３もしくは３次）特性が、この判断を支援するために、いくつかのコンテンツタイプに関して検討され得る。たとえば、列識別のための、数字などの入力要素の間に要求される空間は、たとえば、アルファベット文字など、他の入力要素に対してよりも小さくなるように設定されてよい。これは、数字の場合、それらは、多桁数字が指定されるとき、互いと適度に接近して書かれるべきであると見なされるからである。このような基準は、図７の例におけるような、より複雑な行列検出も支援することができる。代替的、または追加の特性も、そのような単純な行列ならびにより複雑な行列を正しく検出するために考慮に入れられるが、それらは、後で詳しく論じられる。
【００４６】
さらに、前に論じられたように、他の形の２次元構造も、本システムおよび方法によって認識可能である。たとえば、図１９は、行列のように基本セルの行および列を有する、行列の行列式を伴う数学関数を示す。図２０は、行列内に入れ子にされた、そのような行列式を示す。さらに、見るとわかるように（前の例のうちのいくつかのように）、数学演算子および関数など、２次元構造の外部の追加要素が存在してもよい。そのような追加要素は、たとえば、行列のコンテンツとは別個に認識されるが、それらは、たとえば上述したように、行列コンテンツおよび行列の構造の認識をガイドするために、アプリケーション１１２および／またはＨＷＲシステム１１４によってコンテキストとして使われ得る。
【００４７】
上で記載された例からわかるように、手描きされた行列における自然な変化は広く、したがって、これらの行列のような構造的関係を確固として判断するシステムは概して、この広範囲の変形にわたって検出および認識を実施することが可能でなければならない。当然ながら、たとえば、一般定義が遵守されるように、いくつかの制限が、何が行列として正確に認識されるべきかに関して当てはまる。本システムおよび方法はしたがって、以下で説明されるように、行列構造の正しい検出のための、基準と、認識の結果とを使う。通常、手書き文字認識は、それらの要素が入力される構造ではなく、認識された要素の幾何学的関係を、これらの要素自体の認識のために考慮に入れるだけであることに留意されたい。したがって、本システムおよび方法は、行および列候補の粗いフィルタリングを提供するために幾何学的および言語モデル特徴を考慮に入れる確率ベースの手法を使ってこの認識を提供するのに、さらなる情報を使う。これらの粗くフィルタリングされた行列セル候補は次いで、実際の行列を認識するために、認識プロセスの結果を使って、精細フィルタリングされ得る。このようにして、本システムおよび方法は、行列要素候補を前処理することによって行列を検出するために、認識を効率的に使用する。本システムおよび方法は、コンテンツが概して、テーブル、リストなどのような（水平または非水平、たとえば、対角線）行および（垂直または非垂直、たとえば、対角線）列に整列される、手書きされたコンテンツの他の構造的関係の認識に適用可能であり、というのは、構造の認識は、構造用に具体的に入力されたインジケータには依拠せず、むしろ認識されたコンテンツ自体の相対ジオメトリに依拠するからであることが理解されよう。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
【００４８】
図２１から３１に示される例の以下の説明は、行列認識を対象とするが、同様の記述が、上述したような他の構造の認識に当てはまる。さらに、以下の説明は、入力行列内での列検出に関連するが、明らかなように、同じプロセスが、行列のセルが検出されるように、行を検出するのにも使われてよい。いずれのケースでも、プロセスは概して、行列の可能な列または行の検出および要素自体の認識を提供するために、ほぼ水平および垂直方向（または書く方向に基づく他の方向）での要素の整列を、それらの整列に属す要素の認識を使って検出することを伴う。行検出のプロセスは、行列セル検出、およびしたがって行列の全体的検出を提供するために、列検出の前に実施される。以下に記載される例において、整列は、候補行列の列および行を検出することの一部として検出され、次いで、候補列および行は、認識されたコンテンツに基づいて分析されて、認識された行列出力が提供される。あるいは、垂直および／または水平整列のいずれかの検出は、行列行および／または列仮定化とは別個の、異なる方式で、たとえば、複数ラインを検出するプロセス、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「Ｓｙｓｔｅｍ  ｆｏｒ  Ｒｅｃｏｇｎｉｚｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｏｂｊｅｃｔ  Ｉｎｐｕｔ  ａｎｄ  Ｍｅｔｈｏｄ  ａｎｄ  Ｐｒｏｄｕｃｔ  ｆｏｒ  Ｓａｍｅ」と題する米国特許出願公開第２０１７／００１１２６２号明細書に記載されている多重方程式によって実施され得る。
【００４９】
図２１は、複数の入力インクオブジェクト２１０２から２１１６の例示的配置２１００を示す。インクオブジェクトは、たとえば、デバイス１００の入力表面１０４に入力され、その上にデジタルインクとしてレンダリングされた、手書きされた入力要素（たとえば、１つまたは複数の文字、記号などを形成する１つまたは複数のストローク）を表す。インクオブジェクトは概して、手書きされた要素の限度に対応する矩形として示されており、したがって、ＨＷＲシステム１１４によって認識される要素の境界ボックスを表し得る。行列検出プロセスのこの点において、インクオブジェクト自体のコンテンツは必ずしも重要でなく、むしろそれは、プロセスによって使われる、認識された要素とのインクオブジェクトの対応である。ＨＷＲシステム１１４の認識プロセスにおいて、認識結果は、利用される言語モデルに基づく、各ストロークおよびストロークのグループについての認識候補の階層的判断を含むことに留意されたい。図示されるインクオブジェクトは、各認識された要素の最も有望な候補に関するが、実際の認識されたコンテンツ、およびしたがって認識された要素は、たとえば、ユーザによってＵＩなどを通して、異なる候補が選択された場合は、配置自体が変わるように変わり得る。このようなケースでは、行列検出プロセスは、変更された配置に適応するように、少なくとも部分的に、たとえば、変更される配置の少なくともその部分のために再度使われる。
【００５０】
見るとわかるように、配置２１００において、インクオブジェクト２１０２、２１０４および２１０６は概して、互いと水平に整列され、インクオブジェクト２１０８および２１１０は概して、互いと水平に整列され、インクオブジェクト２１１２、２１１４および２１１６は概して、互いと水平に整列される。したがって、これらの水平整列は、前に記載されたようにして本システムおよび方法によって検出され、図示される例では、整列の要素の間の重なりが存在しないので、潜在的行列行に対応すると判断される見込みが最もある。さらに、インクオブジェクト２１０２、２１０８および２１１２は概して、互いと垂直に整列され、インクオブジェクト２１０４、２１１０および２１１４は概して、互いと垂直に整列され、インクオブジェクト２１０６および２１１６は概して、互いと垂直に整列される。したがって、これらの垂直整列は、本システムおよび方法によって検出されてよく、図示される例では、潜在的行列列に対応すると判断され得る。したがって、配置２１００は、たとえば、３×３行列に対応すると検出され得る。このような行列の潜在的列は、図２２から３１の以下の例でのように検出される。
【００５１】
図２２に示すように、オブジェクト２１０２、２１０４および２１０６は、ほぼ水平に整列されていることが知られ、ＨＷＲシステム１１４の認識結果から、オブジェクトは別々のコンテンツ要素である（見込みがある）ことが知られている。したがって、オブジェクト２１０２、２１０４および２１０６は、アプリケーション１１２によって、それぞれ、別個の潜在的な第１、第２および第３の列Ｃ0、Ｃ1およびＣ2中に割り振られる。これらの列割振りの仮定は、次の水平整列における（本例では、下向き方向の）いずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによってテストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト２１０２、２１０４および２１０６の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト２１０８および２１１０がインクオブジェクト２１０２、２１０４および２１０６と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図２２において、これは、インクオブジェクト２１０２、２１０４および２１０６の境界ボックスの右手および左手境界の破線投影によって示される。見るとわかるように、インクオブジェクト２１０８はインクオブジェクト２１０２と重なるが、インクオブジェクト２１１０はインクオブジェクト２１０２、２１０４および２１０６のうちのいずれとも重ならないと判断される。したがって、図２３では、インクオブジェクト２１０８が、インクオブジェクト２１０２とともに第１の列Ｃ0中に割り振られ、インクオブジェクト２１０４は第２の列Ｃ1中に割り振られたままであり、インクオブジェクト２１１０は、第３の列Ｃ2中に割り振られ（図２２に示される割振りから調節される）、インクオブジェクト２１０６は第４の列Ｃ3中に割り振られていることが示されている。
【００５２】
次に、これらの列割振りの仮定は、次の水平整列におけるいずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによって再度テストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト２１０８、２１０４、２１１０および２１０６の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト２１１２、２１１４および２１１６がインクオブジェクト２１０２、２１０４および２１０６と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図２３において、これは、インクオブジェクト２１０８、２１０４、２１１０および２１０６の境界ボックスの右手および左手境界の破線投影によって示される。図２３に見られ得るように、インクオブジェクト２１１２はインクオブジェクト２１０８と重なり、インクオブジェクト２１１４はインクオブジェクト２１０４および２１１０の両方と重なり、インクオブジェクト２１１６はインクオブジェクト２１０６と重なると判断される。したがって、図２４には、インクオブジェクト２１１２はインクオブジェクト２１０２および２１０８とともに第１の列Ｃ0中に割り振られ、インクオブジェクト２１１４はインクオブジェクト２１０４とともに第２の列Ｃ1中に割り振られ、インクオブジェクト２１１０も第２の列Ｃ1中に再割振りされ、インクオブジェクト２１１６は、図２３に示される第４の列からのインクオブジェクト２１０６の再割振りとともに、第３の列Ｃ2中に割り振られることが示されている。見込みがある列のこの認識結果は図２５に示され、ここで、３つの列Ｃ0、Ｃ1およびＣ2のそれぞれの境界は、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスとして示されている。
【００５３】
図２４に示される列の再割振りは基本的に、本システムおよび方法の列検出の精細フィルタリングのタイプを表し、ここで、列の検出は、益々間隔の狭いコンテンツ要素が行ごとに検討されると、収束する。このフィルタリングは、この段階で実施されなくてよいが、各ステップにおいて見つけられたすべての潜在的列は、後続フィルタリングステップまで保持されてよく、これは、いずれかの列がマージされるべきかどうかをチェックする。そのような処理は、後で詳しく記載される。
【００５４】
すべての可能な仮定が判断され、テストされると、アプリケーション１１２は、インクオブジェクトについて認識された行および列割振り、たとえば、セル割振りを示すタグなどの（メタ）データを、インクオブジェクトに提供してよく、そのようなデータは、たとえば、インクオブジェクトとともにデバイス１００のメモリ１０８中に記憶される。このようにして、植字または編集など、インクオブジェクトとのいずれの後続対話においても、オブジェクトの間の位置関係が考慮に入れられ得る。
【００５５】
列割振りを行ごとに、およびそれらの行中の空間的に隣接するコンテンツ要素の考慮により仮定化し、テストする、上で記載された反復手法は、潜在的列を見つけるために、配置全体にわたるオブジェクトの２×２配置を反復して検討することに基本的に対応する。つまり、第１の行中の２つの隣接するコンテンツ要素の相対的位置は、列割振りを判断する（かつ、調節する）ために、次の（第２の）行中の２つの隣接するコンテンツ要素と比較される。これは、いくつかのやり方で実施されてよい。一例では、コンテンツ要素の特徴の間の相対距離が、要素が異なる列に潜在的に分離されるかどうかを判断するために、閾値と比較される。つまり、これらの要素の間で、適切な列間隔が探し求められる。
【００５６】
たとえば、本ケースでは、テストされる第１の列仮定は、インクオブジェクト２１０２が第１の列の中にあり、その行の次のインクオブジェクト、すなわち、インクオブジェクト２１０４が第２の列の中にあるというものであり、テストされる第２の列仮定は、インクオブジェクト２１０２が第１の列の中にあり、次の行の最も左のインクオブジェクト、すなわち、インクオブジェクト２１０８が第２の列の中にあるというものである。これは、インクオブジェクト２１０２の境界ボックスの右手境界と、インクオブジェクト２１０４および２１０８の境界ボックスの左手境界との間の水平距離が、たとえば、（第１の）閾値よりも大きいかどうかを検討することによって行われ得る。それの最も単純なものにおける第１の閾値は、ゼロ、または何らかの非ゼロ（たとえば、正の）値に設定され、そうすることによって、考慮されているオブジェクトと垂直に重なるどのオブジェクトも、負の距離を戻す。つまり、オブジェクト２１０２および２１０４の間の距離のような、測定された距離は、第１の閾値よりも大きい正の値を産し、インクオブジェクト２１０２および２１０８の間の距離のような、測定された距離は、第１の閾値よりも小さい負の値を産する。したがって、アプリケーション１１２は、インクオブジェクト２１０２および２１０４が異なる列に属し、インクオブジェクト２１０２および２１０８が異なる列に属さない見込みがあると正確に判断する。
【００５７】
行内比較は基本的に、前に記載された水平ライン判断であり、行間比較は基本的に、前に記載された、より高い最も左のオブジェクトの、次の連続水平ライン上への投影であり、この投影は本質的に、テストされる２×２配置の第４の要素を形成する。インクオブジェクトは、ストローク自体の限度、各要素を作り上げるストロークの平均中心または重心などのような、境界ボックスとは異なる特性によって定義され得ることが理解されよう。さらに、距離は、たとえば、本出願人および譲受人の名前で２０１５年８月２５日の優先日を主張して出願され、その内容全体が参照によって本明細書に組み込まれている、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｄｉｇｉｔａｌ  Ｎｏｔｅ  Ｔａｋｉｎｇ」と題する米国特許出願公開第２０１７／００６０８１９号明細書に記載されている入力ラインパターンなどのような、書くためのガイドのような、入力表面１０４の何らかの他のパラメータに応じて、ピクセルで、文字などのような手書きされたオブジェクトのアベレージもしくは平均寸法のような、入力自体の特性、境界ボックス、またはそのような特徴の組合せなどで測定され得る。さらに、反復手法は、上述したように、空間順よりもむしろ、ストローク／要素のエントリの時間順、またはそれらの何らかの組合せに基づき得ることが理解されよう。
【００５８】
したがって、オブジェクトの反復する２×２配置が、潜在的列を見つけるために、配置全体にわたって検討される。このようにして、配置の手書きされた要素における局地化された変形が、それらが配置全体にわたる全体的列検出に影響しないようにローカルに検討される。つまり、本出願人は、行列のような、２次元構造の手書きされた入力のためのデジタルアプリケーションのユーザは、特に、たとえば、要素が同じタイプである正規行列において、構造の寸法が増大すると、構造要素の間隔をずらす傾向があることに気づいた。たとえば、単純な２×２行列の場合、要素の相対間隔およびサイズ決定は、たとえば、図４でのように適度に一貫性があるが、行列が大きくなると、要素間隔の一定のローカル圧縮または拡張が、たとえば、図８でのように生じる場合があり、ここで、書き始めの位置である、行列の左上隅の要素と比較して、右上隅に向かう要素の間隔は拡大され、下方中心における要素の間隔はわずかに圧縮され、水平には不整列である。
【００５９】
上で記載された空間順手法は概して、入力の後処理に適用可能であり、つまり、ユーザが、行列のすべての意図された入力を手書きすると、行列を認識するための処理が、メニューボタンのような制御要素の手動選択、もしくはダブルタップなど、インタフェース表面上での多地点タッチのようなジェスチャーの入力を通して、または入力後の、設定された量の時間、たとえば、約０．５秒から約２秒の経過のような自動処理を通して実施される。このような空間的手法はまた、そのようなトリガを使うことによって、入力中の処理、いわゆる漸進的認識に適用可能である。時間的手法はまた、漸進的または事後認識処理のいずれかに適用可能である。空間的および／または時間的検討を使う漸進的手法は、たとえば、植字への変換が所望されることをユーザが示すとき、または最後の入力からの設定された時間経過の後、処理の大部分が入力中に実施されたので、入力の最終的認識のための処理時間を減少させ得ることに留意されたい。
【００６０】
上で記載された例から、見込みがある列を判断するために、前の行のコンテンツ要素を以降の行に投影することによって、空のセルの存在は、列の検出に影響せず、実際に、空のセルは、列内で正確に割り振られ、たとえば、インクオブジェクト２１０６および２１１６の間の空のセルは第３の列Ｃ2内で割り振られることがわかり得る。ただしこれは、図１２の例示的行列でのように、単一のコンテンツ要素のみが列内にある入力状況においても成り立つ。たとえば、図２６は、代替的例示的配置２６００を示し、これは、配置２１００と同じであるが、インクオブジェクト２１１４が存在しない。したがって、上述した本システムおよび方法の認識プロセスを通して、４つの列Ｃ0、Ｃ1、Ｃ2およびＣ3が、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスによって示されるように存在すると判断され得る。これは、配置２１００の前の例とは異なり、インクオブジェクト２１１４は、インクオブジェクト２１０４および２１１０の両方とは重ならず、したがって、これらは、前の例において図２３の段階において判断されたように、第２および第３の列に割り振られたままであるからである。したがって、この代替的例において、オブジェクト２１０４および２１１０の各々は、それらのそれぞれの列内で唯一のオブジェクトとして割り振られ、これらのオブジェクトの周りの空のセルも、それらの列の中に割り振られる。
【００６１】
上で記載された例示的な「粗い」列検出プロセスは、図４から２０の例に様々に示されるように、（手書きの不均一性からの）不整列の要素、整列されていない要素（符号指定子、たとえば、プラスおよびマイナスなど）、ならびに複雑な要素（部分行列、方程式など）により、超過垂直整列の検出を引き起こす場合がある。したがって、前に記載されたように、本システムおよび方法は、検出された可能な列のうちのいくつかがマージされるべきであるかどうかが判断される精細検出プロセスを用いて、粗い検出結果も処理することができる。そのようなさらなる処理の例が、図２７から３１に関してここで記載される。
【００６２】
前に記載されたように、第１の閾値は正の値に設定され得る。このような設定は基本的に、各インクオブジェクトについての一定の量のパディングを提供させ、そうすることによって、検出のために列の間で要求される間隔を増す。そのようなパディングは、初回の「粗い」フィルタリング内で、または後続の「精細」フィルタリング中で、間隔が狭い列をマージするための機構を提供するのに使われ得る。たとえば、図２７は、図２２の前の例の段階におけるプロセスを示すが、一定の量のパディングｐ（図２７の円で指定される）が、図２６の代替的配置２６００のためのインクオブジェクト２１０２、２１０４および２１０６に適用される。この例では、第１の閾値の値は、パディングｐが、インクオブジェクト２１１０をインクオブジェクト２１０４と垂直に重ならせるように設定される。したがって、本システムおよび方法の列検出プロセスは、図２８に示す列割振りを生じ、ここで、オブジェクト２１０４および２１１０は、配置２１００の例でのように、３列レイアウトにおいて同じ列に再度割り振られる。第１の閾値の値は、任意に設定されて（および、たとえば、ＵＩを通してユーザによってリセット可能であって）よく、または、本システムおよび方法によって、たとえば、文字など、手書きされたオブジェクトのアベレージもしくは平均寸法のような、手書きの特性との関係において自動的に定義されてよい。
【００６３】
列割振りを精細フィルタリングするための代替的または追加の機構は、認識された２次元構造にわたる要素の相対間隔を考慮に入れるものである。これは、いくつかのやり方で行われてよい。図２９は、図示されるインクオブジェクト２１０２から２１１６の各々の間に水平距離をもつ配置２１００を示す。つまり、オブジェクト２１０２および２１０４の間の距離ｄ1、オブジェクト２１０８および２１１０の間の距離ｄ2、オブジェクト２１１２および２１１４の間の距離ｄ3、オブジェクト２１０４および２１０６の間の距離ｄ4ならびにオブジェクト２１１４および２１１６の間の距離ｄ5である。これらの距離から、各列のコンテンツ要素の間の平均、アベレージ、最小および最大距離が判断され得る。たとえば、列Ｃ0およびＣ1の間の平均距離ｄm1は距離ｄ1、ｄ2およびｄ3の平均であり、列Ｃ1およびＣ2の間の平均距離ｄm2は距離ｄ4およびｄ5の平均である。粗く割り振られた列の、そのような正規化された距離は、割振りのチェックを提供するために、入力配置の他のパラメータと比較されてよく、それらは、列検出のための別の（第２の）閾値として提供される。
【００６４】
第２の閾値としてのこのようなパラメータの例は、検出された潜在的列の間の間隔である。この間隔は、たとえば図２５、２６および２８において、列Ｃ0からＣ3の各々についての下付き文字に「ｎL」および「ｎR」として示される、列境界ボックスの右および左手境界の間で測定される距離ｄg1、ｄg2およびｄg3として様々に示され、「ｎ」は、列の数、たとえば、０から３である。たとえば、列をマージするためのこのパラメータに対して設定された第２の閾値は、たとえば、手書きにおける自然な変形を提供するために、約０．１から約０．７、および通常は約０．３など、所定の定数値だけスケールダウンされる、図２５におけるｄg2などの最大正間隔であってよく、それは、各列の平均距離、たとえば、平均距離ｄm1およびｄm2と比較するのに使われる。この比較に基づいて、平均距離がこの第２の閾値値よりも小さい場合、列はマージされる。このようにして、列である見込みが高いと見なされる、間隔が最も大きい列よりもはるかに適度に間隔が小さい、検出された列は、列を構成しない見込みがあるので、マージされる。
【００６５】
第２の閾値としてのこのようなパラメータの別の例は、いくつかのコンテンツ要素の間の間隔である。アルファベット文字、単語、数字、上付き文字、下付き文字、括弧、記号、ならびにマイナスおよびプラス符号ならびに仕切りラインなどの指定子のようなコンテンツ特徴の間の間隔などである。たとえば、図３０は、距離ｄc1だけ分離される２つの要素３０００および３００２によって構成されたインクオブジェクト２１０６を示す。たとえば、要素３０００はマイナス符号などの指定子であってよく、要素３００２は数字であってよい。本システムおよび方法は、ＨＷＲシステム１１４によって認識されたような隣接要素を、アプリケーション１１２において設定された規則に基づいて、単一のコンテンツ要素として取り扱うことができ、またはＨＷＲシステム１１４自体が、このようにして、たとえば、図８、９および１０に関して前に記載されたように、インクオブジェクトを戻してよい。たとえば、列をマージするための、このパラメータに対して設定された第２の閾値は、たとえば、手書きの自然な変形を提供するために、約１．１から約１．７、および通常は約１．４など、所定の定数値だけスケールアップされる、そのような要素の間の最大間隔であり、この値を各列の平均距離と比較すればよい。この比較に基づいて、平均距離がこの第２の閾値値よりも小さい場合、列は、図３１に示すようにマージされ、図２５の第１の列および第２の列は、距離ｄg1が、たとえば、スケーリングされた距離ｄc1よりも小さいので、マージされ、そうすることによって、２つの割振りし直された列Ｃ0およびＣ1が残る。このようにして、マイナスおよびプラス符号付きの数字のような、間隔が最も大きい接続された要素よりも小さく、適度に間隔を空けられた、検出された列は、列が要素間間隔よりも広く間隔を空けられることが期待されるので、列を構成しない見込みがあるとき、マージされる。
【００６６】
認識された構造の大域および極大特徴に基づく、上で記載されたマージ動作における、平均、または他の共通値の使用、各粗く検出された列の中のインクオブジェクトの間隔は、構造内のローカル変形による、構造のどの可能な過剰セグメント化の比較的堅牢な評価も提供する。
【００６７】
前に記載されたように、列検出の、上で記載された例は、行検出にも当てはまることができ、ここで、垂直整列は、ＨＷＲシステム１１４から知られ、アプリケーション１１２によって、行を判断するのに使われる。さらに、粗い、および精細な２次元構造検出の、上で記載された例において、検出結果は、各検出された列および行についての１つまたは複数の確率スコアとして提供されてよく、これらは、たとえばその確率結果についての幾何学的コストによって算出される。つまり、記載される第１の閾値および第２の閾値は、手書きされた入力の認識されたコンテンツの幾何学的関係と、行および列など、特定の構造にある、その認識されたコンテンツの幾何学的コストを判断するために比較されるパラメータである。このコストは、ＨＷＲシステム１１４からの実際の認識結果および／またはアプリケーション１１２の構造検出結果に重み付けとして、たとえば、手書き文字認識結果を通して生じられた確率に補足されてよい。このようにして、構造要素への後続割振りに対するいくつかの認識されたコンテンツの影響が容易になされてよく、たとえば、前に記載されたように数字用にはより狭い間隔を、列および／または行のマージを認め、コンテンツ、たとえば、すべての数字、文字、方程式の類似に基づいて行列の確率を増し、括弧またはフェンス要素がコンテンツ要素に近接して検出された場合は行列についての確率スコアを増す。
【００６８】
本明細書において記載された様々な例は、デジタルインクよりもむしろ画像が認識されるオフライン認識など、手書き以外の、認識のための入力の形に適用されてよく、たとえば、要素は、紙またはホワイトボード上に書く写真としてキャプチャされ、対話型スマートボード上でデジタルにキャプチャされる、などの画像として入力されてよい。
【００６９】
記載された方法およびシステムは、構造認識がオブジェクト自体の認識を考慮して実施されるとき、数字、文字、数学関数または方程式、およびそれらの組合せの行列など、２次元構造での複数のオブジェクトの処理および認識速度を増大する。さらに、行列などの構造の書写は、新たな書写エリアを作成し、行列ボタンをタップし、括弧を描くことなどのような、認識のための特定のユーザ操作を要求しない。さらに、アルゴリズムのいかなる学習またはトレーニングも要求されないが、これは、結果を向上するために実施される場合がある。
【００７０】
上記は、最良モードであると見なされるものおよび／または他の例を記載したが、そこでは様々な修正が行われてよいこと、および本明細書で開示された主題は、様々な形および例で実装されてよいこと、ならびにそれらは、多数の他のアプリケーション、組合せ、および環境において適用されてよく、それらのうちのいくつかのみが、本明細書において記載されたことが理解されよう。開示された態様は、本主題の真の趣旨および範囲から逸脱することなく、改変または補正されてよいことが、当業者には認識されよう。したがって、本主題は、本説明における具体的な詳細、陳列、および図示される例に限定されない。本明細書で開示された有利な概念の真の範囲内であるあらゆる修正および変形を保護することが意図される。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2019506672.tif 000038
【国際調査報告】
2019506672.tif 000039
2019506672.tif 000040