関連出願の相互参照
本出願は、参照によってそれらの全体が本明細書に組み込まれ、その一部をなしている、2016年1月20日に出願された欧州特許出願第16290015.3号明細書および2016年5月12日に出願された米国特許出願第15/152,762号明細書に対する優先権を主張する。
本明細書は概して、コンピューティングデバイスを使って、構造内の複数の手書きされたオブジェクトの入力を認識する分野に関する。本明細書は、より詳細には、入力コンテンツの位置関係および入力コンテンツの手書き文字認識の考慮により、手書きされたコンテンツについての2次元構造を検出することに関する。
コンピューティングデバイスは、日常生活にとってより見かけるようになり続けている。それらは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ(2−in−1)、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ(スマートウォッチ、スマートグラス/ヘッドセットを含む)、全地球測位システム(GPS)ユニット、企業向け情報端末(EDA)、携帯情報端末(PDA)、ゲームコンソールなどの形をとる。さらに、コンピューティングデバイスは、車、トラック、農場機器、製造機器、建物環境制御(たとえば、照明、HVAC)、ならびに家庭および商用器具などの、車両および機器に組み込まれつつある。
コンピューティングデバイスは概して、中央処理ユニット(CPU)、何らかの形のメモリ、ならびに入力および出力デバイスなど、少なくとも1つの処理要素からなる。多種多様なコンピューティングデバイスおよびそれらの後続使用は、様々なインタフェースおよび入力デバイスを必要とする。1つのそのような入力デバイスが、タッチスクリーンまたはタッチパッドなどのタッチセンシティブ表面であり、ユーザ入力は、ユーザの指またはペンもしくはスタイラスなどの用具と、タッチセンシティブ表面との間の接触を通して受信される。別の入力デバイスは、入力表面の上方でユーザによって行われたジェスチャーを検知する入力表面である。さらなる入力デバイスは、非タッチ式物理的または仮想表面との、タッチまたは非タッチ式対話のいずれかの相対的位置を検出する位置検出システムである。これらの入力の方法のいずれも、概して、テキストを描き、または入力するために使われ得る。ユーザの手書きは、手書き文字認識システムまたは方法を使って解釈される。コンピューティングデバイスへの手書き入力のための他のシステムは、Anoto AB.、Leapfrog Enterprises,Inc.、およびLivescribe,Inc.によって提供されるシステムなどのコンピューティングデバイスによって、表面に相対した、電子またはデジタルペンの動きを追跡させる、紙、符号化表面またはデジタル化表面と対話する電子またはデジタルペンを含む。
使われる入力方法にかかわらず、手書き文字認識システムおよび方法は通常、タッチセンシティブ表面との最初の接触が行われるとき(ペン下げイベント)など、デジタルインクストロークの始動、タッチセンシティブ表面との接触が止められたとき(ペン上げイベント)など、ストロークの終了、ならびにストローク始動と終了との間に行われた任意の動き(ジェスチャーまたはストローク)を判断することを伴う。これらの判断されたストロークは、入力を認識し、解釈するために処理される。コンピューティングデバイスまたは入力表面のタイプは、使用される手書き文字認識システムまたは方法のタイプを判断する場合もある。たとえば、入力表面が十分に大きい(タブレットなど)場合、ユーザは、ユーザが紙の上で書いているかのように、入力表面の上または上方のどこでも入力を手書きしてよい。ただしこれは、認識タスクに複雑さを加え、というのは、認識されるべき別々の要素は、要素の相対的位置に依存して関係がある場合も、それらの相対的位置に依存せずに無関係な場合もあるからである。
たとえば、数学的方程式、テーブルおよび行列など、構造化されたコンテンツ用に、手書きされた要素の相対的な位置決めが、構造を定義するために必要である。数学的行列の認識を扱うための、いくつかのシステム、たとえば、米国特許第7,447,360号明細書および米国特許第8,121,412号明細書が用意されている。これらのシステムは、たとえば、行および列内の、括弧または空間的整列など、認識のための指示的要素に依拠し、したがって、コンテンツ自体を顧みずに、構造を認識するだけである。そのような認識は、比較的単純であり整合された行列には適用可能であるが、それらは、たとえば、方程式、部分行列、誤整列された行列要素などのような複雑な要素を含む、より複雑な行列、または空の要素セル、たとえば、行および列位置を有する行列を扱うことはできない。さらに、これらの特許の記載されるシステムは、これらの構造の絶対的認識を提供し、そうすることによって、コンテンツ自体の認識に影響する。
要求されているのは、特定の指定要素またはジェスチャーの入力に依拠せず、それら自体の認識に対する処理時間または複雑さを大幅に増大しないと同時に、十分な認識の正確さを保持する、行列および同様の複雑なコンテンツ構造を認識するシステムである。
本明細書において以下で記載される本発明の例は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムおよびシステムを提供するための方法を提供する。一例では、コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つの非一時的コンピュータ可読媒体とを含み得る。非一時的コンピュータ可読媒体は、媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断し、媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るように構成され得る。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
少なくとも1つの非一時的コンピュータ可読媒体は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するようにも構成され得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってもよい。
別の例では、本発明は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法を含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つの非一時的コンピュータ可読媒体とを備え得る。方法は、(i)媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断するステップと、(ii)媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るステップとを備え得る。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
方法は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
別の例では、本発明は、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体を含む。コンピュータ可読プログラムコードは、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実装するために実行されるように適合され得る。コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つのシステム非一時的コンピュータ可読媒体とを備え得る。方法は、(i)媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断すること、および(ii)媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振ることを備える。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
方法は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
本システムおよび方法は、図面と併せて、それらの例の以下の詳細な説明から、より十分に理解されよう。図面において、同じ参照番号は同じ要素を示す。
本システムおよび方法の例によるコンピューティングデバイスのブロック図である。
本システムおよび方法の例による手書き文字認識のためのシステムのブロック図である。
本システムおよび方法の例による、図2の手書き文字認識システムの詳細を示すブロック図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
図4Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、2×3行列の形での、手書きされた入力の例を示す図である。
図5Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、4×4行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、3×3行列の形での、手書きされた入力の例を示す図である。
図11Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、3×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の別の例を示す図である。
図14Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、手書きされた入力のさらに別の例を示す図である。
本システムによる、入れ子行列をもつ3×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、1×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、3×1行列の形での、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
以下の詳細な説明において、適切な教示の完全な理解を提供するために、いくつかの具体的な詳細が例として説明される。ただし、本教示がそのような詳細なしに実践され得ることが、当業者には明らかなはずである。他の事例では、よく知られている方法、手続き、構成要素、および/または回路機構が、本教示の態様を不必要に不明瞭にするのを避けるために、詳細なしで、比較的高水準で記載されている。上、下、上方、下方、最も低い、最も高い、水平、垂直などのような、方向性特徴の参照およびそれらの考察が、認識されるべき入力がその上で行われる入力表面に適用されるデカルト座標系に関して行われる。
本明細書において記載される様々な技術は概して、キャプチャ、コンテンツの入力されたスタイルを保持するとともに、そのコンテンツの忠実な植字または美化されたバージョンへの変換を可能にするような、ポータブルおよび非ポータブルコンピューティングデバイス上での手描きおよび手書きされたコンテンツの処理および管理に関する。本明細書において記載されるシステムおよび方法は、コンピューティングデバイスに接続された、もしくはそのタッチセンシティブスクリーンなどの入力表面を介して、またはコンピューティングデバイスに接続されたデジタルペンもしくはマウスなどの入力デバイスを介して、または位置検出システムによって監視される物理的もしくは仮想表面を介して、コンピューティングデバイスに入力された、ユーザの自然な書写および描画スタイルの認識を使用し得る。いわゆるオンライン認識技法を使う手書き入力の認識に関して様々な例が記載されるが、デジタルインクよりもむしろ画像が認識されるオフライン認識などの認識のための他の形の入力への適用が可能であることが理解されよう。手描きおよび手書きという用語は、本明細書では、デジタルもしくはデジタルに接続された媒体上に直接的に、またはハンドヘルドスタイラスなどの入力ツールを介してのいずれかで、手の使用を通した、ユーザによるデジタルコンテンツの作成を定義するために互換的に使われる。「手」という用語は、本明細書では、入力技法の簡潔な記述を提供するのに使われるが、足、口および目など、同様の入力のためのユーザの体の他の部分の使用が、この定義に含まれる。
図1は、コンピューティングデバイス100の例のブロック図を示す。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム(GPS)ユニット、企業向け情報端末(EDA)、携帯情報端末(PDA)、ゲームコンソールなどであってよい。コンピューティングデバイス100は、少なくとも1つの処理要素、何らかの形のメモリならびに入力および/または出力(I/O)デバイスの構成要素を含む。構成要素は、当業者に知られているコネクタ、ライン、バス、ケーブル、バッファ、電磁気リンク、ネットワーク、モデム、トランスデューサ、IRポート、アンテナ、またはそれ以外などの入力および出力を通して互いと通信する。
コンピューティングデバイス100の図示される例は、画像、テキスト、およびビデオなどのデータをコンピューティングデバイスから出力するための少なくとも1つのディスプレイ102を有する。ディスプレイ102は、当業者に知られている、タッチセンシティブであるか、またはそうでないLCD、プラズマ、LED、iOLED、CRT、または他のどの適切な技術を使ってもよい。ディスプレイ102のうちの少なくとも一部が、少なくとも1つの入力表面104と共置される。入力表面104は、抵抗性、表面音響波、容量性、赤外線グリッド、赤外線アクリル投影、光学撮像、分散信号技術、音響パルス認識、または当業者に知られている他の任意の適切な技術などの技術を、ユーザ入力を受信するのに利用し得る。入力表面104は、その境界を明白に識別する永久またはビデオ生成ボーダーによって境界され得る。搭載ディスプレイの代わりに、またはそれに加えて、コンピューティングデバイス100は、投影型ディスプレイ能力を有する場合がある。あるいは、コンピューティングデバイスは、ディスプレイに依存しないか、またはディスプレイなしの入力表面を含み得る。ディスプレイをもたないデバイスのケースでは、入力表面を介して行われた入力は、コンピューティングデバイスによって表示されず、むしろデバイスは、たとえば、制御入力のために使われるか、または接続されたデバイスもしくは専用表示デバイス上でコンテンツとして表示される、認識された入力(後で論じられる)のみをもつ入力デバイスとして作用する。
コンピューティングデバイス100は、ローカルインタフェースを介して通信可能に結合されている1つまたは複数の追加I/Oデバイス(または周辺装置)を含み得る。追加I/Oデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザーリーダ、無線周波数デバイスリーダ、または当業者に知られている他の任意の適切な技術などの入力デバイスを含み得る。さらに、I/Oデバイスは、プリンタ、バーコードプリンタ、または当業者に知られている他の任意の適切な技術などの出力デバイスを含み得る。さらに、I/Oデバイスは、変調器/復調器(モデムであって、別のデバイス、システム、もしくはネットワークにアクセスするため)、無線周波数(RF)もしくは他のトランシーバ、電話インタフェース、ブリッジ、ルータ、または当業者に知られている他の任意の適切な技術など、入力と出力の両方を通信する通信デバイスを含み得る。ローカルインタフェースは、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機など、通信を可能にするための追加要素を有してよく、これらは、簡単のために省かれているが、当業者には知られている。さらに、ローカルインタフェースは、他のコンピュータ構成要素の間での適切な通信を可能にするためのアドレス、制御、および/またはデータ接続を含み得る。
コンピューティングデバイス100はプロセッサ106も含み、これは、ソフトウェア、特に、メモリ108中に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、どのカスタムメイドまたは市販の汎用プロセッサ、中央処理ユニット(CPU)、(マイクロチップもしくはチップセットの形の)半導体ベースのマイクロプロセッサを含む市販のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)もしくは他のプログラム可能論理素子、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、状態マシン、または当業者に知られている、ソフトウェア命令を実行するために設計された、それらのどの組合せであってもよい。
メモリ108は、揮発性メモリ要素(たとえば、ランダムアクセスメモリ(DRAM、SRAM、もしくはSDRAMなどのRAM))および不揮発性メモリ要素(たとえば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気もしくは光学テープ、メモリレジスタ、CD−ROM、ワーム、DVD、安価ディスクの冗長アレイ(RAID)、別の直接アクセス記憶デバイス(DASD)、または他の任意の磁気、抵抗性もしくは位相変化不揮発性メモリ)のうちのどの1つまたは組合せを含んでもよい。その上、メモリ108は、電子、磁気、光学、および/または他のタイプの記憶媒体を組み込み得る。メモリ108は、様々な構成要素が互いから離れて位置するが、プロセッサ106によってアクセスされることも可能な分散型アーキテクチャを有し得る。さらに、メモリ108は、たとえば、コンピューティングデバイス100によってリモートにアクセス可能であるサーバまたはクラウドベースのシステムにおいて、デバイスから離れていてもよい。メモリ108はプロセッサ106に結合されるので、プロセッサ106は、メモリ108から情報を読み取り、そこに情報を書き込むことができる。代替として、メモリ108は、プロセッサ106と一体である場合がある。別の例では、プロセッサ106およびメモリ108は両方とも、単一のASICまたは他の集積回路中に存在する場合がある。
メモリ108中のソフトウェアは、オペレーティングシステム110、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体の形のアプリケーション112、および手書き文字認識(HWR)システム114を含み、これらは各々、1つまたは複数の別個のコンピュータプログラムを含むことができ、これらの各々は、論理関数を実装するための実行可能命令の順序付き列挙を有する。オペレーティングシステム110は、アプリケーション112およびHWRシステム114の実行を制御する。オペレーティングシステム110は、WEBOS、WINDOWS(登録商標)、MAC and IPHONE OS(登録商標)、LINUX、およびANDROIDなど、どの固有オペレーティングシステムまたは市販もしくは無料入手可能なオペレーティングシステムであってもよい。他のオペレーティングシステムが使用されてもよいことが理解されよう。あるいは、本システムおよび方法のアプリケーション112は、オペレーティングシステムの使用なしで提供され得る。
アプリケーション112は、本明細書において記載される手書き文字認識、異なる機能、または両方に関連し得る。アプリケーション112は、製造時にコンピューティングデバイス100とともに提供されるプログラムを含み、製造後にコンピューティングデバイス100にアップロードまたはダウンロードされたプログラムをさらに含み得る。いくつかの例は、テキストエディタ、テレフォンダイアラ、連絡先ディレクトリ、インスタントメッセージング機構、コンピュータ支援設計(CAD)プログラム、電子メールプログラム、文書処理プログラム、ウェブブラウザ、およびカメラを含む。
サポートおよびコンプライアンス能力をもつHWRシステム114は、ソースプログラム、実行可能プログラム(オブジェクトコード)、スクリプト、アプリケーション、または実施されるべき命令のセットを有する他のどのエンティティであってもよい。ソースプログラムのとき、プログラムは、オペレーティングシステムとともに正しく動作するように、メモリ内に含まれる場合も含まれない場合もあるコンパイラ、アセンブラ、インタープリタなどを介して翻訳される必要がある。さらに、サポートおよびコンプライアンス能力をもつ手書き文字認識システムは、(a)データのクラスおよびメソッドを有するオブジェクト指向プログラミング言語、(b)たとえばC、C++、Pascal、Basic、Fortran、Cobol、Perl、Java、Objective C、Swift、およびAdaだが、それらに限定されない、ルーチン、サブルーチン、および/もしくは関数を有する手続きプログラミング言語、または(c)たとえばHope、Rex、Common Lisp、Scheme、Clojure、Racket、Erlang、OCaml、Haskell、Prolog、およびF#だが、それらに限定されない関数型プログラミング言語として書かれてよい。あるいは、HWRシステム114は、サーバまたはクラウドベースのシステムなど、デバイスとはリモートであるが、コンピューティングデバイス100の上述の通信I/Oデバイスを使って、通信リンクを通してコンピューティングデバイス100によってリモートにアクセス可能である手書き文字認識システムとの通信のための方法またはシステムであってよい。さらに、アプリケーション112およびHWRシステム114は、一緒に動作するか、または単一のアプリケーションとして組み合わされてよい。さらに、アプリケーション112および/またはHWRシステム114は、オペレーティングシステム110内に統合されてよい。
入力表面104上で、またはそれを介して入れられたストロークは、デジタルインクとしてプロセッサ106によって処理される。ユーザは、指または入力表面との使用に適したペンもしくはスタイラスなど、何らかの用具でストロークを入れることができる。ユーザは、入力表面104の付近での動きを検知する技術が使われている場合、入力表面104の上方でジェスチャーを行うことによって、またはマウスもしくはジョイスティックなど、コンピューティングデバイス100の周辺デバイスを用いて、ストロークを入れることもできる。ストロークは、少なくともストローク始動ロケーション、ストローク終了ロケーション、ならびにアプリケーション112および/またはHWRシステム114によってキャプチャされたストローク始動および終了ロケーションを接続する軌道によって特徴づけられる。軌道に沿ったいくつかのサンプル点におけるタイミング、圧力、角度など、さらなる情報が、ストロークのより深い詳細を提供するためにキャプチャされてもよい。異なるユーザが、当然ながら同じオブジェクト、たとえば、文字、形状、または記号を、わずかな変形を有して書く場合があるので、本システムは、各オブジェクトが正しいまたは意図されたオブジェクトとして認識されながら入れられ得る様々なやり方を受け入れる。
図2は、HWRシステム114の例の概略描写である。HWRシステム114は、前処理116、認識118および出力120などの段階を含む。前処理段階116は、より高い正確さを達成するように、デジタルインクを処理し、認識段階118中の処理時間を削減する。この前処理は、入力を滑らかにするためのBスプライン近似などのサイズ正規化および/または方法を適用することによって、ストローク始動および終了ロケーションを接続する軌道の正規化を含み得る。前処理されたストロークは次いで、認識段階118に渡され、これは、ストロークを処理して、そうすることによって形成されたオブジェクトを認識する。認識されたオブジェクトは次いで、概して、手書きされた要素/文字の植字されたバージョンとして、ディスプレイ102に出力120される。
認識段階118は、異なる処理要素またはエキスパートを含み得る。図3は、認識段階118の概略的詳細を示す、図2の例の概略描写である。出力120を生成するために動的プログラミングを通して協力する3つのエキスパート(セグメント化エキスパート122、認識エキスパート124、および言語エキスパート126)が、図示されている。
セグメント化エキスパート122は、式、たとえば、数学方程式、単語、または形状のグループを形成するために、入力ストロークを個々の要素仮定、たとえば、英数字および数学演算子、テキスト文字、個々の形状、または副次式にセグメント化するための異なるやり方を定義する。たとえば、セグメント化エキスパート122は、各ノードが少なくとも1つの要素仮定に対応し、要素の間の隣接制約がノード接続によって扱われるセグメント化グラフを取得するように元の入力の連続するストロークをグループ化することによって、要素仮定を形成し得る。
認識エキスパート124は、分類器128によって抽出された特徴の分類を提供し、セグメント化グラフの各ノードについての確率または認識スコアをもつ要素候補のリストを出力する。この認識タスクを対処するのに使われてもよい多くのタイプの分類器、たとえば、サポートベクターマシン、隠れマルコフモデル、または多層パーセプトロン、深層、畳込みもしくは再帰型ニューラルネットワークなどのニューラルネットワークが存在する。選択は、タスク用に所望される複雑さ、正確さ、および速度に依存する。
言語エキスパート126は、言語モデル(たとえば、文法またはセマンティクス)を使って、セグメント化グラフ中の異なる軌道についての言語的意味を生成する。エキスパート126は、言語的情報130に従って、他のエキスパートによって提案された候補をチェックする。言語的情報130は、レキシコン、正規表現などを含んでよく、言語エキスパート126によって言語モデルを実行するのに使われるすべての静的データのための記憶である。言語モデルは、所与の言語についての統計的情報に依拠し得る。言語的情報130は、認識およびユーザ対話の結果による適応ありまたはなしで、オフラインで計算され、言語的エキスパート126に提供される。言語エキスパート126は、最良の認識軌道を見つけることを目指す。一例では、言語エキスパート126は、言語的情報130のコンテンツを表す最終状態オートマトン(FSA)などの言語モデルを調査することによって、これを行う。レキシコン制約に加え、言語エキスパート126は、要素の所与のシーケンスがどれだけ頻繁に、指定された言語において現れ、または特定のユーザによってセグメント化グラフの所与の軌道の翻訳の言語的尤度を評価するのに使われるかについての統計的情報モデリングを用いる言語モデルを使うことができる。
本明細書において記載されるシステムおよび方法は、デバイス100への手書きされた入力を認識するために、HWRシステム114を利用する。特に、本システムおよび方法は、行列などの構造内でのコンテンツ入力を認識する。行列とは、本明細書において、たとえば、テーブルには存在し得るラインおよびヘッダ、またはリストには存在し得るドット点および数字のような行および/または列指定子を使用しない、1つまたは複数の行および列中の、概して関係がある、通常は数字、文字、記号、数学的式であるいくつかの要素のレイアウトとして定義される。そのような行列は通常、数学的演算において使われ、情報をキャプチャし、かつ/またはそのような演算を実践するために、手書きのプロセスを通して手動で、または、たとえば、数学的ソリューション(後で論じられる)を提供するためのアプリケーション112の能力を通して自動的に、のいずれかで、デバイス100の1人または複数のユーザによって入力され得る。
行列などの構造化された入力を認識するための、上で論じられた知られているシステムとは異なり、本システムおよび方法は、認識を可能にするために、括弧などの特定のコンテンツを入力することをユーザに要求することもなく、方程式、部分行列、誤整列された要素および欠けている要素のような、より複雑な要素を有する行列を認識することができないプロセスを使うこともない。さらに、知られているシステムは、幾何学的投影を使って、行および列を検出し、認識のために構造全体を処理するだけであるが、本システムおよび方法は、投影なしで、すべての要素の漸進的認識および幾何学的関係を使うことができる。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
図4から20は、手書きまたは手描きされた行列の様々な例を示し、いくつかが、植字バージョンでも示されている。図4Aは、たとえば、2かける2(または2×2であるが、本明細書では、「行の数」×「列の数」という標準用法が使われる)のデジタルインク行列400としてレンダリングされた、デバイス100の入力表面104上へ行われた手書きされた入力を示す。行列400は、4つのコンテンツ要素、「3」である402、「2」である404、「7」である406および「1」である408を有する。要素402および404は、第1のほぼ水平なラインまたは行410に置かれ、要素406および408は、第2のほぼ水平なラインまたは行412に置かれ、要素402および406は、第1のほぼ垂直なラインまたは列414に置かれ、要素404および408は、第2のほぼ垂直なラインまたは列416に置かれる。これらのコンテンツ要素は、第1のほぼ垂直な括弧またはフェンス要素418(たとえば、第1の列414の左手側にある)および第2のほぼ垂直括弧またはフェンス要素420(たとえば、第2の列414の右手側にある)内に含まれる。1つまたは複数の行および1つまたは複数の列におけるコンテンツ要素の相対的位置は、入力の認識された要素のうちの少なくとも1つの幾何学的関係に基づく、行列400の第1の特性を提供し、1つまたは複数のフェンス要素内でのコンテンツ要素の包含は、行列400の第2の特性を提供する。
本システムおよび方法のアプリケーション112は、HWRシステム114によって入力400が行列であると判断するために実施される手書き文字認識と併せて、第1の特性を単独で、または第2の特性と組み合わせて、のいずれかで検出し、所定の、および/または、たとえば、デバイス100上のユーザインタフェース(UI)を介してユーザ設定可能なフォーマット化を適用して、図4Bに示すような植字行列400’を出力する。見るとわかるように、植字行列400’は、行410、412および列414、416に依然として配置されている、それぞれ、デジタルインクコンテンツ要素402から408の植字バージョン402’から408’、ならびに、それぞれデジタルインクフェンス要素418および420の植字バージョン418’および420’を有する。したがって、本システムおよび方法は、認識された行列400を、たとえば、行列のデジタルバージョン用にユーザによって期待されるフォーマットで表示する。認識された行列の表示フォーマットは、異なるようにされてよく、必ずしも「植字インク」ではなく、「美化された」デジタルインクであってよく、つまり、デジタルインクの表示は保持されるが、手書きの自然な変形が、要素の相対的位置を修正し、文字自体などのようなインク要素を滑らかにし、かつ/または正規化することによって、やわらげられるか、または正規化されることが理解されよう。美化が、デジタルインクもしくは植字インク(たとえば、行列要素の相対的位置が整列される)、または両方で実践されようとも、まだ入力されていない場合は括弧の表示など、認識結果またはその要素のプレビューを通すなどして、ユーザは、行列およびそのコンテンツの認識についてのフィードバックを提供され得る。
図4の入力は、行および列に比較的良好に整列されたコンテンツ要素として1桁の数字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図5Aは、手書きされた入力からレンダリングされた、同様に単純な、ただしアルファベットコンテンツ要素をもつ2×3デジタルインク行列を示す。図5Bは、本システムおよび方法の認識された出力を、植字行列として示す。図4のように、図5の入力は、行および列に比較的良好に整列されたコンテンツ要素として単一アルファベット文字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図6は、行および列に比較的良好に整列されているが、異なる形をしたフェンス要素によって囲まれるか、または含まれるコンテンツ要素として1桁の数字をもつ、手書きされた入力からレンダリングされた、同様に単純な2×2デジタルインク行列を示し、たとえば、角括弧ではなく丸括弧が使われる。本システムおよび方法は、行列入力の検出を支援するために、これらの異なる、および他の、フェンス形を認識するように構成される。フェンス要素は行列の2次特性であるが、行および/または列中にコンテンツの1次特性を有する他の構造が、たとえば、テーブル中に垂直および/または水平ラインに描かれたような同様の2次特性を有することに留意されたい。さらに、後で詳しく記載されるように、第2の特性を考慮しない(たとえば、フェンス要素が存在しない場合さえある)、入力行列の第1の特性の認識のみで、そのような検出に十分である場合がある。
手書きされた行列のわずかにより複雑な例が図7に示され、ここで、入力2×2行列は、2桁の数字を、たとえば、左手列に、少なくとも1つのわずかに不整列の列をもつコンテンツ要素として有する。各2桁の要素の数字の間の空間と結合された、このわずかな不整列は、2×2行列である行列の正しい認識のための難題を提供し、というのは、空間のうちの1つまたは複数は、2桁の構成要素の間よりもむしろ、列の間の空間と見なされ場合があり、したがって、堅牢な認識規則なしでは、図7の行列は、1桁の要素の2×5行列として検出される可能性があると想定されるからである(たとえば、「11」の「1」、「12」の「1」および「2」、「13」の「1」および「3」ならびに「14」の「1」および「4」は、第1の列に割り振られた「11」の第1の「1」、第2の列に割り振られた「11」の第2の「1」および「13」の「1」、第3の列に割り振られた「13」の「3」、第4の列に割り振られた「12」の「1」および「14」の「1」、ならびに第5の列に割り振られた「12」の「2」および「14」の「4」と別個に取り扱われる。同様の結果が、当然ながら、より大きい数について起こり得る。このような不正確な認識が行われた場合、認識の、結果としての美化された出力は、ユーザによって意図されたものと大きく異なる、認識された行列および/またはデータreの任意の後続使用を表示することになる)。本方法およびシステムは、行列に適用可能であるよりも多くの列を戻す、コンテンツ要素の過剰セグメント化によって引き起こされる、そのような不正確な行列認識の出現を最小限にするための基準を利用するが、これは後で詳しく記載される。
他のコンテンツ要素形も、明らかな不整列ありまたはなしの難題を提供する。たとえば、図8は、いくつかが指定子、たとえば、それらのコンテンツ要素に対して数学的意味を指定するマイナス符号を有する、1桁の数字としてのコンテンツ要素を有する、手書きされた行列を示す。そのような指定子は、非常に様々な記号、マークまたは文字によって形成されてよく、図7の大きい(より大きい)数の例についてと同じように、コンテンツ要素の過剰セグメント化の結果、これらの指定子は、それらが指定するコンテンツとは別個の列に割り振られることになる。同様の問題が、図9の例示的行列に示す小数、および図10の例示的行列に示す分数を伴う数的コンテンツ要素にも当てはまる。
そのような行列入力についての不正確な認識の最小限化が、コンテンツ要素自体の認識をアプリケーション112の行列検出プロセスの考慮に入れることによって、本システムおよび方法によって提供される。つまり、図8の例示的行列について、HWRシステム114は、指定子を、アプリケーション112がこれらを各々、単一のコンテンツ要素として取り扱うように、たとえば、「−1」、「−2」および「−3」を形成する、そのすぐ右手側で数字に接続されたマイナス符号として認識し、図9の例示的行列について、HWRシステム114は、たとえば、「3.5」を形成する隣接数字の間の小数点を、アプリケーション112がこれを単一のコンテンツ要素として取り扱うように認識し、図10の例示的行列について、HWRシステム114は、たとえば、分数「1/4」を形成する隣接数字の間の仕切りラインを、アプリケーション112がこれを単一のコンテンツ要素として取り扱うように認識する。本システムおよび方法がコンテンツ構造検出のために認識結果を考慮に入れるやり方が、後で詳しく記載される。
他の行列タイプは、数字またはアルファベット文字などのコンテンツ要素タイプの混合物を含み、さらに他の行列コンテンツ要素タイプは、下付き文字および上付き文字など、抽象的な数学的形を含む。たとえば、図11Aは、「0」である数的コンテンツ要素と、下付き数字で指定されたアルファベット文字を有する英数字コンテンツ要素の両方を有する、手書きされた行列を示す。上述した図8から10の指定子例と同様、認識されたコンテンツを考慮に入れることによって、たとえば、HWRシステム114は、「a11」、「a22」および「a33」を形成する、数字のすぐ左手側でそれに接続された下付き文字を認識し、アプリケーション112は、植字インクで表示される、図11Bに示される認識された行列を提供し、というのは、下付き文字は、コンテンツ要素全体自体としてではなく、より大きいコンテンツ要素の一部として取り扱われるからである。
図12は、下付き文字を含むコンテンツ要素をもつ同様の例示的入力行列を示す。ただし、前の例とは異なり、図12の行列は、空のコンテンツ要素位置またはセルも含む。つまり、各行および列位置は、第1の行(たとえば、行0として識別される)および第1の列(たとえば、列0として識別される)におけるコンテンツ要素位置が、たとえば「セル0,0」に対応するように、セルと見なされる。ただし、他の形の識別用行列要素位置が可能である。さらに、アプリケーション112および/またはHWRシステム114は、そのような識別子を、たとえば、デバイス100のメモリ108中に記憶された、データタグなどの位置データとして、認識されたコンテンツに適用してよい。そのような空のセルの存在は、行列など、2次元の構造化されたコンテンツの正しい認識のための別の難題を引き起こす場合があり、というのは、構造の行および列の識別は、考えられるところでは、考慮されている要素の同じ行および/または列内からではなく、他の行および/または列からの要素の考慮により確かめられるだけだからである。たとえば、さもなければ空の行(または列)中の要素は、他のどの要素とも整列されず、したがって、行(または列)の識別は、整列されていない要素を検討することによって行われる。本システムおよび方法は、後で詳しく記載されるように、そのようなコンテンツシナリオにおいてさえも、堅牢な行列検出を提供する。
前に記載されたように、フェンス要素の存在は、特に空のセルが存在するとき、行列の認識を支援するのに使われ得る。これは、フェンス要素の存在が、(たとえば、単一のフェンスシナリオにおいて)フェンス要素(1つまたは複数)に囲まれ、含まれ、またはそうでなければ隣接するコンテンツが、1つまたは複数の行および1つまたは複数の列中にレイアウトされることを意味すると解釈される場合、空のセルは、非コンテンツとしてではなく、そのような行(1つもしくは複数)および/または列(1つもしくは複数)の一部と見なされるからである。ただし、やはり前に記載されたように、本システムおよび方法は、行列用のフェンス要素などの構造的インジケータの存在または助けなしで、2次元のコンテンツ構造を認識することが可能である。たとえば、図13は、図12の例のように、空のセルをもつ例示的入力行列を示すが、図12とは異なり、フェンス要素が存在しない。本システムおよび方法は依然として、図13の行および列構造を正確に識別するが、認識結果は、行列として識別される場合も、されない場合もある。つまり、それは、2次元構造として識別されるだけであってよく、これは、認識結果の任意の後続使用に依存して、いかなる現実的な結果としての影響も持たない場合がある。このようなケースにおいてさえも、ユーザによる、認識された構造を行列として指定するための選択が、UIなどを介して、および/またはたとえば、表示されるコンテンツ要素についての、生成されたデジタルもしくは植字インクフェンス要素の表示など、認識結果のフィードバックもしくはプレビューを通して提供され得る。本システムおよび方法のそのような特徴が、後で詳しく記載される。
2次元構造におけるさらなる複雑さが可能である。図14Aは、追加入力をもつ、図5Aの例示的な2×3デジタルインク行列を示す。具体的には、3*2の手書きされた行列が、2×3行列のすぐ右に入力され、イコール符号、すなわち「=」、および2つの数学的方程式を含むさらなる行列が続く。見るとわかるように、最も右の行列は、最初の2つの行列の乗算の部分的結果を含み、これは、2×3行列の行0と3×2行列の列0の積、および2×3行列の行1と3×2行列の列1の積であり、ここで、全結果が、期待される2×2行列を形成することになる。図14Bは、認識された出力を植字形で示し、見るとわかるように、第3の行列の方程式は、2×2行列のセル0,0およびセル1,1に属すものとして正しく認識される。この認識は、図14Aに示すように、手書きされた方程式の比較的重大な重なりにかかわらず生じる。前に記載されたように、この認識は、第3の行列の行内の方程式の認識の考慮により本システムおよび方法によって達成され、全体の認識されたコンテンツ、たとえば、2×3行列と3×2行列の積から生じる、期待される2×2行列の考慮により認識されてもよい。これらの特徴は、後で詳しく記載される。
コンテンツ要素を、セル割振りを判断するために個々の入力要素を個々に取り扱うよりもむしろ、HWRシステム114からの認識結果に基づく各コンテンツ要素の1つまたは複数の認識された要素に関する2次元構造のセルに属すものとして取り扱うことによって、本システムおよび方法は、より複雑な行列形でさえもほぼ正確に検出することができる。たとえば、図15は、上で記載されたコンテンツ特徴、たとえば、アルファベット文字、単語、数字、上付き文字、括弧、記号、ならびにマイナス符号および仕切りラインなどの指定子のうちの多くを組み合わせる比較的複雑な数学関数を含む各コンテンツ要素をもつ例示的な手書きされた2×2行列を示す。ただし、この複雑さにかかわらず、本システムおよび方法は、各認識された関数の認識された複合部分が、対応する行列セルに属す単一のコンテンツ要素として取り扱われるので、2×2行列を検出する。さらに、図16は、入れ子行列を含む、例示的な手書きされた3×3行列を示し、たとえば、セル0,0は2×2部分行列を含み、セル1,1は2×3部分行列を含み、セル2,2は2×3部分行列を含む。
比較的複雑な行列は、検出および認識のための難題を提示するが、単一の行または単一の列の行列など、過度に単純な行列も、難題を提示する。図17は、例示的な1×3の手書きされた行列を示し、図18は、例示的な3×1の手書きされた行列を示す。いずれのケースでも、(前に論じられた空のセル問題と同様)1×3行列についての行間関係も、3×1行列についての列間関係もないので、複数の列(または行)の存在を判断するのは困難であり得る。これは、その行または列自体の中のコンテンツ要素のみが、列または行を判断するために検討すべきであり、したがって、列または行判断のための閾値などを設定するための、関係しているそれらの要素の間の距離または空間の値が、その判断には重大だからである。基本的に、判断がより不確定になるような、比較的少ない情報が入手可能である。
たとえば、図17では、列判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「3」、「7」および「2」をもつ1×3行列、もしくはコンテンツ要素「3」および「72」をもつ1×2行列として認識されるか、またはコンテンツ「372」をもつ、行列ではまったくないと認識され得る。同様に、図18では、行判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「4」、「1」および「8」をもつ3×1行列、もしくはコンテンツ要素「4」および「18」をもつ2×1行列として認識されるか、または(垂直に配列された)コンテンツ「418」をもつ、行列ではまったくないと認識され得る。前に論じられたように、フェンス要素(1つまたは複数)の2次特性は、いかなる行列結果も起こらないように、行列検出そのものを支援し得るが、これは、行列の内部構造に関して、アプリケーション112に知らせない。本システムおよび方法では、さらなるもの(または第3もしくは3次特性)が、この判断を支援するために、いくつかのコンテンツタイプに関して検討され得る。たとえば、列識別のための、数字などの入力要素の間に要求される空間は、たとえば、アルファベット文字など、他の入力要素に対してよりも小さくなるように設定されてよい。これは、数字の場合、それらは、多桁数字が指定されるとき、互いと適度に接近して書かれるべきであると見なされるからである。このような基準は、図7の例におけるような、より複雑な行列検出も支援することができる。代替的、または追加の特性も、そのような単純な行列ならびにより複雑な行列を正しく検出するために考慮に入れられるが、それらは、後で詳しく論じられる。
さらに、前に論じられたように、他の形の2次元構造も、本システムおよび方法によって認識可能である。たとえば、図19は、行列のように基本セルの行および列を有する、行列の行列式を伴う数学関数を示す。図20は、行列内に入れ子にされた、そのような行列式を示す。さらに、見るとわかるように(前の例のうちのいくつかのように)、数学演算子および関数など、2次元構造の外部の追加要素が存在してもよい。そのような追加要素は、たとえば、行列のコンテンツとは別個に認識されるが、それらは、たとえば上述したように、行列コンテンツおよび行列の構造の認識をガイドするために、アプリケーション112および/またはHWRシステム114によってコンテキストとして使われ得る。
上で記載された例からわかるように、手描きされた行列における自然な変化は広く、したがって、これらの行列のような構造的関係を確固として判断するシステムは概して、この広範囲の変形にわたって検出および認識を実施することが可能でなければならない。当然ながら、たとえば、一般定義が遵守されるように、いくつかの制限が、何が行列として正確に認識されるべきかに関して当てはまる。本システムおよび方法はしたがって、以下で説明されるように、行列構造の正しい検出のための、基準と、認識の結果とを使う。通常、手書き文字認識は、それらの要素が入力される構造ではなく、認識された要素の幾何学的関係を、これらの要素自体の認識のために考慮に入れるだけであることに留意されたい。したがって、本システムおよび方法は、行および列候補の粗いフィルタリングを提供するために幾何学的および言語モデル特徴を考慮に入れる確率ベースの手法を使ってこの認識を提供するのに、さらなる情報を使う。これらの粗くフィルタリングされた行列セル候補は次いで、実際の行列を認識するために、認識プロセスの結果を使って、精細フィルタリングされ得る。このようにして、本システムおよび方法は、行列要素候補をプロ処理することによって行列を検出するために、認識を効率的に使用する。本システムおよび方法は、コンテンツが概して、テーブル、リストなどのような(水平または非水平、たとえば、対角線)行および(垂直または非垂直、たとえば、対角線)列に整列される、手書きされたコンテンツの他の構造的関係の認識に適用可能であり、というのは、構造の認識は、構造用に具体的に入力されたインジケータには依拠せず、むしろ認識されたコンテンツ自体の相対ジオメトリに依拠するからであることが理解されよう。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
図21から37に示される例の以下の説明は、行列認識を対象とするが、同様の記述が、上述したような他の構造の認識に当てはまる。さらに、以下の説明は、入力行列内での列検出に関連するが、明らかなように、同じプロセスが、行列のセルが検出されるように、行を検出するのにも使われてよい。いずれのケースでも、プロセスは概して、行列の可能な列または行の検出および要素自体の認識を提供するために、ほぼ水平および垂直方向(または書く方向に基づく他の方向)での要素の整列を、それらの整列に属す要素の認識を使って検出することを伴う。行検出のプロセスは、行列セル検出、およびしたがって行列の全体的検出を提供するために、列検出の前に実施される。以下に記載される例において、整列は、候補行列の列および行を検出することの一部として検出され、次いで、候補列および行は、認識されたコンテンツに基づいて分析されて、認識された行列出力が提供される。あるいは、垂直および/または水平整列のいずれかの検出は、行列行および/または列仮定化とは別個の、異なる方式で、たとえば、複数ラインを検出するプロセス、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「System for Recognizing Multiple Object Input and Method and Product for Same」と題する米国特許出願第14/870,735号明細書に記載されている多重方程式によって実施され得る。
図21は、複数の入力インクオブジェクト2102から2116の例示的配置2100を示す。インクオブジェクトは、たとえば、デバイス100の入力表面104に入力され、その上にデジタルインクとしてレンダリングされた、手書きされた入力要素(たとえば、1つまたは複数の文字、記号などを形成する1つまたは複数のストローク)を表す。インクオブジェクトは概して、手書きされた要素の限度に対応する矩形として示されており、したがって、HWRシステム114によって認識される要素の境界ボックスを表し得る。行列検出プロセスのこの点において、インクオブジェクト自体のコンテンツは必ずしも重要でなく、むしろそれは、プロセスによって使われる、認識された要素とのインクオブジェクトの対応である。HWRシステム114の認識プロセスにおいて、認識結果は、利用される言語モデルに基づく、各ストロークおよびストロークのグループについての認識候補の階層的判断を含むことに留意されたい。図示されるインクオブジェクトは、各認識された要素の最も有望な候補に関するが、実際の認識されたコンテンツ、およびしたがって認識された要素は、たとえば、ユーザによってUIなどを通して、異なる候補が選択された場合は、配置自体が変わるように変わり得る。このようなケースでは、行列検出プロセスは、変更された配置に適応するように、少なくとも部分的に、たとえば、変更される配置の少なくともその部分のために再度使われる。
見るとわかるように、配置2100において、インクオブジェクト2102、2104および2106は概して、互いと水平に整列され、インクオブジェクト2108および2110は概して、互いと水平に整列され、インクオブジェクト2112、2114および2116は概して、互いと水平に整列される。したがって、これらの水平整列は、前に記載されたようにして本システムおよび方法によって検出され、図示される例では、整列の要素の間の重なりが存在しないので、潜在的行列行に対応すると判断される見込みが最もある。さらに、インクオブジェクト2102、2108および2112は概して、互いと垂直に整列され、インクオブジェクト2104、2110および2114は概して、互いと垂直に整列され、インクオブジェクト2106および2116は概して、互いと垂直に整列される。したがって、これらの垂直整列は、本システムおよび方法によって検出されてよく、図示される例では、潜在的行列列に対応すると判断され得る。したがって、配置2100は、たとえば、3×3行列に対応すると検出され得る。このような行列の潜在的列は、図22から31の以下の例でのように検出される。
図22に示すように、オブジェクト2102、2104および2106は、ほぼ水平に整列されていることが知られ、HWRシステム114の認識結果から、オブジェクトは別々のコンテンツ要素である(見込みがある)ことが知られている。したがって、オブジェクト2102、2104および2106は、アプリケーション112によって、それぞれ、別個の潜在的な第1、第2および第3の列C0、C1およびC2中に割り振られる。これらの列割振りの仮定は、次の水平整列における(本例では、下向き方向の)いずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによってテストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト2102、2104および2106の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト2108および2110がインクオブジェクト2102、2104および2106と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図22において、これは、インクオブジェクト2102、2104および2106の境界ボックスの右手および左手境界の破線投影によって示される。見るとわかるように、インクオブジェクト2108はインクオブジェクト2102と重なるが、インクオブジェクト2110はインクオブジェクト2102、2104および2106のうちのいずれとも重ならないと判断される。したがって、図23では、インクオブジェクト2108が、インクオブジェクト2102とともに第1の列C0中に割り振られ、インクオブジェクト2104は第2の列C1中に割り振られたままであり、インクオブジェクト2110は、第3の列C2中に割り振られ(図22に示される割振りから調節される)、インクオブジェクト2106は第4の列C3中に割り振られていることが示されている。
次に、これらの列割振りの仮定は、次の水平整列におけるいずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによって再度テストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト2108、2104、2110および2106の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト2112、2114および2116がインクオブジェクト2102、2104および2106と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図23において、これは、インクオブジェクト2108、2104、2110および2106の境界ボックスの右手および左手境界の破線投影によって示される。図23に見られ得るように、インクオブジェクト2112はインクオブジェクト2108と重なり、インクオブジェクト2114はインクオブジェクト2104および2110の両方と重なり、インクオブジェクト2116はインクオブジェクト2106と重なると判断される。したがって、図24には、インクオブジェクト2112はインクオブジェクト2102および2108とともに第1の列C0中に割り振られ、インクオブジェクト2114はインクオブジェクト2104とともに第2の列C1中に割り振られ、インクオブジェクト2110も第2の列C1中に再割振りされ、インクオブジェクト2116は、図23に示される第4の列からのインクオブジェクト2106の再割振りとともに、第3の列C2中に割り振られることが示されている。見込みがある列のこの認識結果は図25に示され、ここで、3つの列C0、C1およびC2のそれぞれの境界は、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスとして示されている。
図24に示される列の再割振りは基本的に、本システムおよび方法の列検出の精細フィルタリングのタイプを表し、ここで、列の検出は、益々間隔の狭いコンテンツ要素が行ごとに検討されると、収束する。このフィルタリングは、この段階で実施されなくてよいが、各ステップにおいて見つけられたすべての潜在的列は、後続フィルタリングステップまで保持されてよく、これは、いずれかの列がマージされるべきかどうかをチェックする。そのような処理は、後で詳しく記載される。
すべての可能な仮定が判断され、テストされると、アプリケーション112は、インクオブジェクトについて認識された行および列割振り、たとえば、セル割振りを示すタグなどの(メタ)データを、インクオブジェクトに提供してよく、そのようなデータは、たとえば、インクオブジェクトとともにデバイス100のメモリ108中に記憶される。このようにして、植字または編集など、インクオブジェクトとのいずれの後続対話においても、オブジェクトの間の位置関係が考慮に入れられ得る。
列割振りを行ごとに、およびそれらの行中の空間的に隣接するコンテンツ要素の考慮により仮定化し、テストする、上で記載された反復手法は、潜在的列を見つけるために、配置全体にわたるオブジェクトの2×2配置を反復して検討することに基本的に対応する。つまり、第1の行中の2つの隣接するコンテンツ要素の相対的位置は、列割振りを判断する(かつ、調節する)ために、次の(第2の)行中の2つの隣接するコンテンツ要素と比較される。これは、いくつかのやり方で実施されてよい。一例では、コンテンツ要素の特徴の間の相対距離が、要素が異なる列に潜在的に分離されるかどうかを判断するために、閾値と比較される。つまり、これらの要素の間で、適切な列間隔が探し求められる。
たとえば、本ケースでは、テストされる第1の列仮定は、インクオブジェクト2102が第1の列の中にあり、その行の次のインクオブジェクト、すなわち、インクオブジェクト2104が第2の列の中にあるというものであり、テストされる第2の列仮定は、インクオブジェクト2102が第1の列の中にあり、次の行の最も左のインクオブジェクト、すなわち、インクオブジェクト2108が第2の列の中にあるというものである。これは、インクオブジェクト2102の境界ボックスの右手境界と、インクオブジェクト2104および2108の境界ボックスの左手境界との間の水平距離が、たとえば、(第1の)閾値よりも大きいかどうかを検討することによって行われ得る。それの最も単純なものにおける第1の閾値は、ゼロ、または何らかの非ゼロ(たとえば、正の)値に設定され、そうすることによって、考慮されているオブジェクトと垂直に重なるどのオブジェクトも、負の距離を戻す。つまり、オブジェクト2102および2014の間の距離のような、測定された距離は、第1の閾値よりも大きい正の値を産し、インクオブジェクト2102および2108の間の距離のような、測定された距離は、第1の閾値よりも小さい負の値を産する。したがって、アプリケーション112は、インクオブジェクト2102および2104が異なる列に属し、インクオブジェクト2102および2108が異なる列に属さない見込みがあると正確に判断する。
行内比較は基本的に、前に記載された水平ライン判断であり、行間比較は基本的に、前に記載された、より高い最も左のオブジェクトの、次の連続水平ライン上への投影であり、この投影は本質的に、テストされる2×2配置の第4の要素を形成する。インクオブジェクトは、ストローク自体の限度、各要素を作り上げるストロークの平均中心または重心などのような、境界ボックスとは異なる特性によって定義され得ることが理解されよう。さらに、距離は、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「System and Method of Digital Note Taking」と題する米国特許出願第14/886,195号明細書に記載されている入力ラインパターンなどのような、書くためのガイドのような、入力表面104の何らかの他のパラメータに応じて、ピクセルで、文字などのような手書きされたオブジェクトのアベレージもしくは平均寸法のような、入力自体の特性、境界ボックス、またはそのような特徴の組合せなどで測定され得る。さらに、反復手法は、上述したように、空間順よりもむしろ、ストローク/要素のエントリの時間順、またはそれらの何らかの組合せに基づき得ることが理解されよう。
したがって、オブジェクトの反復する2×2配置が、潜在的列を見つけるために、配置全体にわたって検討される。このようにして、配置の手書きされた要素における局地化された変形が、それらが配置全体にわたる全体的列検出に影響しないようにローカルに検討される。つまり、本出願人は、2次元構造の手書きされた入力、このような行列のためのデジタルアプリケーションのユーザは、特に、たとえば、要素が同じタイプである正規行列において、構造の寸法が増大すると、構造要素の間隔をずらす傾向があることに気づいた。たとえば、単純な2×2行列の場合、要素の相対間隔およびサイズ決定は、たとえば、図4でのように適度に一貫性があるが、行列が大きくなると、要素間隔の一定のローカル圧縮または拡張が、たとえば、図8でのように生じる場合があり、ここで、書き始めの位置である、行列の左上隅の要素と比較して、右上隅に向かう要素の間隔は拡大され、下方中心における要素の間隔はわずかに圧縮され、水平には不整列である。
上で記載された空間順手法は概して、入力の後処理に適用可能であり、つまり、ユーザが、行列のすべての意図された入力を手書きすると、行列を認識するための処理が、メニューボタンのような制御要素の手動選択、もしくはダブルタップなど、インタフェース表面上での多地点タッチのようなジェスチャーの入力を通して、または入力後の、設定された量の時間、たとえば、約0.5秒から約2秒の経過のような自動処理を通して実施される。このような空間的手法はまた、そのようなトリガを使うことによって、入力中の処理、いわゆる漸進的認識に適用可能である。時間的手法はまた、漸進的または事後認識処理のいずれかに適用可能である。空間的および/または時間的検討を使う漸進的手法は、たとえば、植字への変換が所望されることをユーザが示すとき、または最後の入力からの設定された時間経過の後、処理の大部分が入力中に実施されたので、入力の最終的認識のための処理時間を減少させ得ることに留意されたい。
上で記載された例から、見込みがある列を判断するために、前の行のコンテンツ要素を以降の行に投影することによって、空のセルの存在は、列の検出に影響せず、実際に、空のセルは、列内で正確に割り振られ、たとえば、インクオブジェクト2106および2116の間の空のセルは第3の列C2内で割り振られることがわかり得る。ただしこれは、図12の例示的行列でのように、単一のコンテンツ要素のみが列内にある入力状況においても成り立つ。たとえば、図26は、代替的例示的配置2600を示し、これは、配置2100と同じであるが、インクオブジェクト2114が存在しない。したがって、上述した本システムおよび方法の認識プロセスを通して、4つの列C0、C1、C2およびC3が、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスによって示されるように存在すると判断され得る。これは、配置2100の前の例とは異なり、インクオブジェクト2114は、インクオブジェクト2104および2110の両方とは重ならず、したがって、これらは、前の例において図23の段階において判断されたように、第2および第3の列に割り振られたままであるからである。したがって、この代替的例において、オブジェクト2104および2110の各々は、それらのそれぞれの列内で唯一のオブジェクトとして割り振られ、これらのオブジェクトの周りの空のセルも、それらの列の中に割り振られる。
上で記載された例示的な「粗い」列検出プロセスは、図4から20の例に様々に示されるように、(手書きの不均一性からの)不整列の要素、整列されていない要素(符号指定子、たとえば、プラスおよびマイナスなど)、ならびに複雑な要素(部分行列、方程式など)により、超過垂直整列の検出を引き起こす場合がある。したがって、前に記載されたように、本システムおよび方法は、検出された可能な列のうちのいくつかがマージされるべきであるかどうかが判断される精細検出プロセスを用いて、粗い検出結果も処理することができる。そのようなさらなる処理の例が、図27から31に関してここで記載される。
前に記載されたように、第1の閾値は正の値に設定され得る。このような設定は基本的に、各インクオブジェクトについての一定の量のパディングを提供させ、そうすることによって、検出のために列の間で要求される間隔を増す。そのようなパディングは、初回の「粗い」フィルタリング内で、または後続の「精細」フィルタリング中で、間隔が狭い列をマージするための機構を提供するのに使われ得る。たとえば、図27は、図22の前の例の段階におけるプロセスを示すが、一定の量のパディングp(図27の円で指定される)が、図26の代替的配置2600のためのインクオブジェクト2102、2104および2106に適用される。この例では、第1の閾値の値は、パディングpが、インクオブジェクト2110をインクオブジェクト2104と垂直に重ならせるように設定される。したがって、本システムおよび方法の列検出プロセスは、図28に示す列割振りを生じ、ここで、オブジェクト2104および2110は、配置2100の例でのように、3列レイアウトにおいて同じ列に再度割り振られる。第1の閾値の値は、任意に設定されて(および、たとえば、UIを通してユーザによってリセット可能であって)よく、または、本システムおよび方法によって、たとえば、文字など、手書きされたオブジェクトのアベレージもしくは平均寸法のような、手書きの特性との関係において自動的に定義されてよい。
列割振りを精細フィルタリングするための代替的または追加の機構は、認識された2次元構造にわたる要素の相対間隔を考慮に入れるものである。これは、いくつかのやり方で行われてよい。図29は、図示されるインクオブジェクト2102から2116の各々の間に水平距離をもつ配置2100を示す。つまり、オブジェクト2102および2104の間の距離d1、オブジェクト2108および2110の間の距離d2、オブジェクト2112および2114の間の距離d3、オブジェクト2104および2106の間の距離d4ならびにオブジェクト2114および2116の間の距離d5である。これらの距離から、各列のコンテンツ要素の間の平均、アベレージ、最小および最大距離が判断され得る。たとえば、列C0およびC1の間の平均距離dm1は距離d1、d2およびd3の平均であり、列C1およびC2の間の平均距離dm2は距離d4およびd5の平均である。粗く割り振られた列の、そのような正規化された距離は、割振りのチェックを提供するために、入力配置の他のパラメータと比較されてよく、それらは、列検出のための別の(第2の)閾値として提供される。
第2の閾値としてのこのようなパラメータの例は、検出された潜在的列の間の間隔である。この間隔は、たとえば図25、26および28において、列C0からC3の各々についての下付き文字に「nL」および「nR」として示される、列境界ボックスの右および左手境界の間で測定される距離dg1、dg2およびdg3として様々に示され、「n」は、列の数、たとえば、0から3である。たとえば、列をマージするためのこのパラメータに対して設定された第2の閾値は、たとえば、手書きにおける自然な変形を提供するために、約0.1から約0.7、および通常は約0.3など、所定の定数値だけスケールダウンされる、図25におけるdg2などの最大正間隔であってよく、それは、各列の平均距離、たとえば、平均距離dm1およびdm2と比較するのに使われる。この比較に基づいて、平均距離がこの第2の閾値値よりも小さい場合、列はマージされる。このようにして、列である見込みが高いと見なされる、間隔が最も大きい列よりもはるかに適度に間隔が小さい、検出された列は、列を構成しない見込みがあるので、マージされる。
第2の閾値としてのこのようなパラメータの別の例は、いくつかのコンテンツ要素の間の間隔である。アルファベット文字、単語、数字、上付き文字、下付き文字、括弧、記号、ならびにマイナスおよびプラス符号ならびに仕切りラインなどの指定子のようなコンテンツ特徴の間の間隔などである。たとえば、図30は、距離dc1だけ分離される2つの要素3000および3002によって構成されたインクオブジェクト2106を示す。たとえば、要素3000はマイナス符号などの指定子であってよく、要素3002は数字であってよい。本システムおよび方法は、HWRシステム114によって認識されたような隣接要素を、アプリケーション112において設定された規則に基づいて、単一のコンテンツ要素として取り扱うことができ、またはHWRシステム114自体が、このようにして、たとえば、図8、9および10に関して前に記載されたように、インクオブジェクトを戻してよい。たとえば、列をマージするための、このパラメータに対して設定された第2の閾値は、たとえば、手書きの自然な変形を提供するために、約1.1から約1.7、および通常は約1.4など、所定の定数値だけスケールアップされる、そのような要素の間の最大間隔であり、この値を各列の平均距離と比較すればよい。この比較に基づいて、平均距離がこの第2の閾値値よりも小さい場合、列は、図31に示すようにマージされ、図25の第1の列および第2の列は、距離dg1が、たとえば、スケーリングされた距離dc1よりも小さいので、マージされ、そうすることによって、2つの割振りし直された列C0およびC1が残る。このようにして、マイナスおよびプラス符号付きの数字のような、間隔が最も大きい接続された要素よりも小さく、適度に間隔を空けられた、検出された列は、列が要素間間隔よりも広く間隔を空けられることが期待されるので、列を構成しない見込みがあるとき、マージされる。
認識された構造の大域および極大特徴に基づく、上で記載されたマージ動作における、平均、または他の共通値の使用、各粗く検出された列の中のインクオブジェクトの間隔は、構造内のローカル変形による、構造のどの可能な過剰セグメント化の比較的堅牢な評価も提供する。
前に記載されたように、列検出の、上で記載された例は、行検出にも当てはまることができ、ここで、垂直整列は、HWRシステム114から知られ、アプリケーション112によって、行を判断するのに使われる。さらに、粗い、および精細な2次元構造検出の、上で記載された例において、検出結果は、各検出された列および行についての1つまたは複数の確率スコアとして提供されてよく、これらは、たとえばその確率結果についての幾何学的コストによって算出される。つまり、記載される第1の閾値および第2の閾値は、手書きされた入力の認識されたコンテンツの幾何学的関係と、行および列など、特定の構造にある、その認識されたコンテンツの幾何学的コストを判断するために比較されるパラメータである。このコストは、HWRシステム114からの実際の認識結果および/またはアプリケーション112の構造検出結果に重み付けとして、たとえば、手書き文字認識結果を通して生じられた確率に補足されてよい。このようにして、構造要素への後続割振りに対するいくつかの認識されたコンテンツの影響が容易になされてよく、たとえば、前に記載されたように数字用にはより狭い間隔を、列および/または行のマージを認め、コンテンツ、たとえば、すべての数字、文字、方程式の類似に基づいて行列の確率を増し、括弧またはフェンス要素がコンテンツ要素に近接して検出された場合は行列についての確率スコアを増す。
本明細書において記載された様々な例は、デジタルインクよりもむしろ画像が認識されるオフライン認識など、手書き以外の、認識のための入力の形に適用されてよく、たとえば、要素は、紙またはホワイトボード上に書く写真としてキャプチャされ、対話型スマートボード上でデジタルにキャプチャされる、などの画像として入力されてよい。
記載された方法およびシステムは、構造認識がオブジェクト自体の認識を考慮して実施されるとき、数字、文字、数学関数または方程式、およびそれらの組合せの行列など、2次元構造での複数のオブジェクトの処理および認識速度を増大する。さらに、行列などの構造の書写は、新たな書写エリアを作成し、行列ボタンをタップし、括弧を描くことなどのような、認識のための特定のユーザ操作を要求しない。さらに、アルゴリズムのいかなる学習またはトレーニングも要求されないが、これは、結果を向上するために実施される場合がある。
上記は、最良モードであると見なされるものおよび/または他の例を記載したが、そこでは様々な修正が行われてよいこと、および本明細書で開示された主題は、様々な形および例で実装されてよいこと、ならびにそれらは、多数の他のアプリケーション、組合せ、および環境において適用されてよく、それらのうちのいくつかのみが、本明細書において記載されたことが理解されよう。開示された態様は、本主題の真の趣旨および範囲から逸脱することなく、改変または補正されてよいことが、当業者には認識されよう。したがって、本主題は、本説明における具体的な詳細、陳列、および図示される例に限定されない。本明細書で開示された有利な概念の真の範囲内であるあらゆる修正および変形を保護することが意図される。
関連出願の相互参照
本出願は、参照によってそれらの全体が本明細書に組み込まれ、その一部をなしている、2016年1月20日に出願された欧州特許出願第16290015.3号明細書および2016年5月12日に出願された米国特許出願第15/152,762号明細書に対する優先権を主張する。
本明細書は概して、コンピューティングデバイスを使って、構造内の複数の手書きされたオブジェクトの入力を認識する分野に関する。本明細書は、より詳細には、入力コンテンツの位置関係および入力コンテンツの手書き文字認識の考慮により、手書きされたコンテンツについての2次元構造を検出することに関する。
コンピューティングデバイスは、日常生活にとってより見かけるようになり続けている。それらは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ(2−in−1)、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ(スマートウォッチ、スマートグラス/ヘッドセットを含む)、全地球測位システム(GPS)ユニット、企業向け情報端末(EDA)、携帯情報端末(PDA)、ゲームコンソールなどの形をとる。さらに、コンピューティングデバイスは、車、トラック、農場機器、製造機器、建物環境制御(たとえば、照明、HVAC)、ならびに家庭および商用器具などの、車両および機器に組み込まれつつある。
コンピューティングデバイスは概して、中央処理ユニット(CPU)、何らかの形のメモリ、ならびに入力および出力デバイスなど、少なくとも1つの処理要素からなる。多種多様なコンピューティングデバイスおよびそれらの後続使用は、様々なインタフェースおよび入力デバイスを必要とする。1つのそのような入力デバイスが、タッチスクリーンまたはタッチパッドなどのタッチセンシティブ表面であり、ユーザ入力は、ユーザの指またはペンもしくはスタイラスなどの用具と、タッチセンシティブ表面との間の接触を通して受信される。別の入力デバイスは、入力表面の上方でユーザによって行われたジェスチャーを検知する入力表面である。さらなる入力デバイスは、非タッチ式物理的または仮想表面との、タッチまたは非タッチ式対話のいずれかの相対的位置を検出する位置検出システムである。これらの入力の方法のいずれも、概して、テキストを描き、または入力するために使われ得る。ユーザの手書きは、手書き文字認識システムまたは方法を使って解釈される。コンピューティングデバイスへの手書き入力のための他のシステムは、Anoto AB.、Leapfrog Enterprises,Inc.、およびLivescribe,Inc.によって提供されるシステムなどのコンピューティングデバイスによって、表面に相対した、電子またはデジタルペンの動きを追跡させる、紙、符号化表面またはデジタル化表面と対話する電子またはデジタルペンを含む。
使われる入力方法にかかわらず、手書き文字認識システムおよび方法は通常、タッチセンシティブ表面との最初の接触が行われるとき(ペン下げイベント)など、デジタルインクストロークの始動、タッチセンシティブ表面との接触が止められたとき(ペン上げイベント)など、ストロークの終了、ならびにストローク始動と終了との間に行われた任意の動き(ジェスチャーまたはストローク)を判断することを伴う。これらの判断されたストロークは、入力を認識し、解釈するために処理される。コンピューティングデバイスまたは入力表面のタイプは、使用される手書き文字認識システムまたは方法のタイプを判断する場合もある。たとえば、入力表面が十分に大きい(タブレットなど)場合、ユーザは、ユーザが紙の上で書いているかのように、入力表面の上または上方のどこでも入力を手書きしてよい。ただしこれは、認識タスクに複雑さを加え、というのは、認識されるべき別々の要素は、要素の相対的位置に依存して関係がある場合も、それらの相対的位置に依存せずに無関係な場合もあるからである。
たとえば、数学的方程式、テーブルおよび行列など、構造化されたコンテンツ用に、手書きされた要素の相対的な位置決めが、構造を定義するために必要である。数学的行列の認識を扱うための、いくつかのシステム、たとえば、米国特許第7,447,360号明細書および米国特許第8,121,412号明細書が用意されている。これらのシステムは、たとえば、行および列内の、括弧または空間的整列など、認識のための指示的要素に依拠し、したがって、コンテンツ自体を顧みずに、構造を認識するだけである。そのような認識は、比較的単純であり整合された行列には適用可能であるが、それらは、たとえば、方程式、部分行列、誤整列された行列要素などのような複雑な要素を含む、より複雑な行列、または空の要素セル、たとえば、行および列位置を有する行列を扱うことはできない。さらに、これらの特許の記載されるシステムは、これらの構造の絶対的認識を提供し、そうすることによって、コンテンツ自体の認識に影響する。
要求されているのは、特定の指定要素またはジェスチャーの入力に依拠せず、それら自体の認識に対する処理時間または複雑さを大幅に増大しないと同時に、十分な認識の正確さを保持する、行列および同様の複雑なコンテンツ構造を認識するシステムである。
本明細書において以下で記載される本発明の例は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するためのシステムおよびシステムを提供するための方法を提供する。一例では、コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つの非一時的コンピュータ可読媒体とを含み得る。非一時的コンピュータ可読媒体は、媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断し、媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るように構成され得る。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
少なくとも1つの非一時的コンピュータ可読媒体は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するようにも構成され得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってもよい。
別の例では、本発明は、コンピューティングデバイス上の複数のオブジェクトの配置を認識するための方法を含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つの非一時的コンピュータ可読媒体とを備え得る。方法は、(i)媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断するステップと、(ii)媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振るステップとを備え得る。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
方法は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
別の例では、本発明は、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体を含む。コンピュータ可読プログラムコードは、コンピューティングデバイスに入力された複数のオブジェクトの配置を認識するための方法を実装するために実行されるように適合され得る。コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を認識するための少なくとも1つの非一時的コンピュータ可読媒体とを備え得る。方法は、(i)媒体を用いて、入力の、複数の認識された要素の間の少なくとも1つの幾何学的関係を判断すること、および(ii)媒体を用いて、それらの間の少なくとも1つの幾何学的関係を有する認識された要素を、認識された要素の配置の対応する位置に割り振ることを備える。配置の位置は、認識された要素の2次元構造のセルであってよい。少なくとも1つの幾何学的関係は、配置の1つまたは複数の方向での、複数の認識された要素の重なりであってよい。
方法は、複数の認識された要素の、1つまたは複数の幾何学的特徴の間の方向距離と、少なくとも1つの幾何学的閾値との比較に基づいて、重なりを判断するステップをさらに備え得る。少なくとも1つの幾何学的閾値は、認識された要素のうちの少なくともいくつかの、少なくとも1つの幾何学的間隔に基づき得る。少なくとも1つの幾何学的間隔は、認識された要素のうちの少なくともいくつかの、構成要素の間の最大間隔であってよい。
本システムおよび方法は、図面と併せて、それらの例の以下の詳細な説明から、より十分に理解されよう。図面において、同じ参照番号は同じ要素を示す。
本システムおよび方法の例によるコンピューティングデバイスのブロック図である。
本システムおよび方法の例による手書き文字認識のためのシステムのブロック図である。
本システムおよび方法の例による、図2の手書き文字認識システムの詳細を示すブロック図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
図4Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、2×3行列の形での、手書きされた入力の例を示す図である。
図5Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、4×4行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、2×2行列の形での、手書きされた入力の例を示す図である。
本システムによる、3×3行列の形での、手書きされた入力の例を示す図である。
図11Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、3×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の別の例を示す図である。
図14Aの手書きされた入力の認識された出力の例を示す図である。
本システムによる、手書きされた入力のさらに別の例を示す図である。
本システムによる、入れ子行列をもつ3×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、1×3行列の形での、手書きされた入力の例を示す図である。
本システムによる、3×1行列の形での、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる、手書きされた入力の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
本システムによる行列認識の例を示す図である。
以下の詳細な説明において、適切な教示の完全な理解を提供するために、いくつかの具体的な詳細が例として説明される。ただし、本教示がそのような詳細なしに実践され得ることが、当業者には明らかなはずである。他の事例では、よく知られている方法、手続き、構成要素、および/または回路機構が、本教示の態様を不必要に不明瞭にするのを避けるために、詳細なしで、比較的高水準で記載されている。上、下、上方、下方、最も低い、最も高い、水平、垂直などのような、方向性特徴の参照およびそれらの考察が、認識されるべき入力がその上で行われる入力表面に適用されるデカルト座標系に関して行われる。
本明細書において記載される様々な技術は概して、キャプチャ、コンテンツの入力されたスタイルを保持するとともに、そのコンテンツの忠実な植字または美化されたバージョンへの変換を可能にするような、ポータブルおよび非ポータブルコンピューティングデバイス上での手描きおよび手書きされたコンテンツの処理および管理に関する。本明細書において記載されるシステムおよび方法は、コンピューティングデバイスに接続された、もしくはそのタッチセンシティブスクリーンなどの入力表面を介して、またはコンピューティングデバイスに接続されたデジタルペンもしくはマウスなどの入力デバイスを介して、または位置検出システムによって監視される物理的もしくは仮想表面を介して、コンピューティングデバイスに入力された、ユーザの自然な書写および描画スタイルの認識を使用し得る。いわゆるオンライン認識技法を使う手書き入力の認識に関して様々な例が記載されるが、デジタルインクよりもむしろ画像が認識されるオフライン認識などの認識のための他の形の入力への適用が可能であることが理解されよう。手描きおよび手書きという用語は、本明細書では、デジタルもしくはデジタルに接続された媒体上に直接的に、またはハンドヘルドスタイラスなどの入力ツールを介してのいずれかで、手の使用を通した、ユーザによるデジタルコンテンツの作成を定義するために互換的に使われる。「手」という用語は、本明細書では、入力技法の簡潔な記述を提供するのに使われるが、足、口および目など、同様の入力のためのユーザの体の他の部分の使用が、この定義に含まれる。
図1は、コンピューティングデバイス100の例のブロック図を示す。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム(GPS)ユニット、企業向け情報端末(EDA)、携帯情報端末(PDA)、ゲームコンソールなどであってよい。コンピューティングデバイス100は、少なくとも1つの処理要素、何らかの形のメモリならびに入力および/または出力(I/O)デバイスの構成要素を含む。構成要素は、当業者に知られているコネクタ、ライン、バス、ケーブル、バッファ、電磁気リンク、ネットワーク、モデム、トランスデューサ、IRポート、アンテナ、またはそれ以外などの入力および出力を通して互いと通信する。
コンピューティングデバイス100の図示される例は、画像、テキスト、およびビデオなどのデータをコンピューティングデバイスから出力するための少なくとも1つのディスプレイ102を有する。ディスプレイ102は、当業者に知られている、タッチセンシティブであるか、またはそうでないLCD、プラズマ、LED、iOLED、CRT、または他のどの適切な技術を使ってもよい。ディスプレイ102のうちの少なくとも一部が、少なくとも1つの入力表面104と共置される。入力表面104は、抵抗性、表面音響波、容量性、赤外線グリッド、赤外線アクリル投影、光学撮像、分散信号技術、音響パルス認識、または当業者に知られている他の任意の適切な技術などの技術を、ユーザ入力を受信するのに利用し得る。入力表面104は、その境界を明白に識別する永久またはビデオ生成ボーダーによって境界され得る。搭載ディスプレイの代わりに、またはそれに加えて、コンピューティングデバイス100は、投影型ディスプレイ能力を有する場合がある。あるいは、コンピューティングデバイスは、ディスプレイに依存しないか、またはディスプレイなしの入力表面を含み得る。ディスプレイをもたないデバイスのケースでは、入力表面を介して行われた入力は、コンピューティングデバイスによって表示されず、むしろデバイスは、たとえば、制御入力のために使われるか、または接続されたデバイスもしくは専用表示デバイス上でコンテンツとして表示される、認識された入力(後で論じられる)のみをもつ入力デバイスとして作用する。
コンピューティングデバイス100は、ローカルインタフェースを介して通信可能に結合されている1つまたは複数の追加I/Oデバイス(または周辺装置)を含み得る。追加I/Oデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザーリーダ、無線周波数デバイスリーダ、または当業者に知られている他の任意の適切な技術などの入力デバイスを含み得る。さらに、I/Oデバイスは、プリンタ、バーコードプリンタ、または当業者に知られている他の任意の適切な技術などの出力デバイスを含み得る。さらに、I/Oデバイスは、変調器/復調器(モデムであって、別のデバイス、システム、もしくはネットワークにアクセスするため)、無線周波数(RF)もしくは他のトランシーバ、電話インタフェース、ブリッジ、ルータ、または当業者に知られている他の任意の適切な技術など、入力と出力の両方を通信する通信デバイスを含み得る。ローカルインタフェースは、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機など、通信を可能にするための追加要素を有してよく、これらは、簡単のために省かれているが、当業者には知られている。さらに、ローカルインタフェースは、他のコンピュータ構成要素の間での適切な通信を可能にするためのアドレス、制御、および/またはデータ接続を含み得る。
コンピューティングデバイス100はプロセッサ106も含み、これは、ソフトウェア、特に、メモリ108中に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、どのカスタムメイドまたは市販の汎用プロセッサ、中央処理ユニット(CPU)、(マイクロチップもしくはチップセットの形の)半導体ベースのマイクロプロセッサを含む市販のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)もしくは他のプログラム可能論理素子、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、状態マシン、または当業者に知られている、ソフトウェア命令を実行するために設計された、それらのどの組合せであってもよい。
メモリ108は、揮発性メモリ要素(たとえば、ランダムアクセスメモリ(DRAM、SRAM、もしくはSDRAMなどのRAM))および不揮発性メモリ要素(たとえば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気もしくは光学テープ、メモリレジスタ、CD−ROM、ワーム、DVD、安価ディスクの冗長アレイ(RAID)、別の直接アクセス記憶デバイス(DASD)、または他の任意の磁気、抵抗性もしくは位相変化不揮発性メモリ)のうちのどの1つまたは組合せを含んでもよい。その上、メモリ108は、電子、磁気、光学、および/または他のタイプの記憶媒体を組み込み得る。メモリ108は、様々な構成要素が互いから離れて位置するが、プロセッサ106によってアクセスされることも可能な分散型アーキテクチャを有し得る。さらに、メモリ108は、たとえば、コンピューティングデバイス100によってリモートにアクセス可能であるサーバまたはクラウドベースのシステムにおいて、デバイスから離れていてもよい。メモリ108はプロセッサ106に結合されるので、プロセッサ106は、メモリ108から情報を読み取り、そこに情報を書き込むことができる。代替として、メモリ108は、プロセッサ106と一体である場合がある。別の例では、プロセッサ106およびメモリ108は両方とも、単一のASICまたは他の集積回路中に存在する場合がある。
メモリ108中のソフトウェアは、オペレーティングシステム110、コンピュータ可読プログラムコードがその中に組み入れられた非一時的コンピュータ可読媒体の形のアプリケーション112、および手書き文字認識(HWR)システム114を含み、これらは各々、1つまたは複数の別個のコンピュータプログラムを含むことができ、これらの各々は、論理関数を実装するための実行可能命令の順序付き列挙を有する。オペレーティングシステム110は、アプリケーション112およびHWRシステム114の実行を制御する。オペレーティングシステム110は、WEBOS、WINDOWS(登録商標)、MAC and IPHONE OS(登録商標)、LINUX、およびANDROIDなど、どの固有オペレーティングシステムまたは市販もしくは無料入手可能なオペレーティングシステムであってもよい。他のオペレーティングシステムが使用されてもよいことが理解されよう。あるいは、本システムおよび方法のアプリケーション112は、オペレーティングシステムの使用なしで提供され得る。
アプリケーション112は、本明細書において記載される手書き文字認識、異なる機能、または両方に関連し得る。アプリケーション112は、製造時にコンピューティングデバイス100とともに提供されるプログラムを含み、製造後にコンピューティングデバイス100にアップロードまたはダウンロードされたプログラムをさらに含み得る。いくつかの例は、テキストエディタ、テレフォンダイアラ、連絡先ディレクトリ、インスタントメッセージング機構、コンピュータ支援設計(CAD)プログラム、電子メールプログラム、文書処理プログラム、ウェブブラウザ、およびカメラを含む。
サポートおよびコンプライアンス能力をもつHWRシステム114は、ソースプログラム、実行可能プログラム(オブジェクトコード)、スクリプト、アプリケーション、または実施されるべき命令のセットを有する他のどのエンティティであってもよい。ソースプログラムのとき、プログラムは、オペレーティングシステムとともに正しく動作するように、メモリ内に含まれる場合も含まれない場合もあるコンパイラ、アセンブラ、インタープリタなどを介して翻訳される必要がある。さらに、サポートおよびコンプライアンス能力をもつ手書き文字認識システムは、(a)データのクラスおよびメソッドを有するオブジェクト指向プログラミング言語、(b)たとえばC、C++、Pascal、Basic、Fortran、Cobol、Perl、Java、Objective C、Swift、およびAdaだが、それらに限定されない、ルーチン、サブルーチン、および/もしくは関数を有する手続きプログラミング言語、または(c)たとえばHope、Rex、Common Lisp、Scheme、Clojure、Racket、Erlang、OCaml、Haskell、Prolog、およびF#だが、それらに限定されない関数型プログラミング言語として書かれてよい。あるいは、HWRシステム114は、サーバまたはクラウドベースのシステムなど、デバイスとはリモートであるが、コンピューティングデバイス100の上述の通信I/Oデバイスを使って、通信リンクを通してコンピューティングデバイス100によってリモートにアクセス可能である手書き文字認識システムとの通信のための方法またはシステムであってよい。さらに、アプリケーション112およびHWRシステム114は、一緒に動作するか、または単一のアプリケーションとして組み合わされてよい。さらに、アプリケーション112および/またはHWRシステム114は、オペレーティングシステム110内に統合されてよい。
入力表面104上で、またはそれを介して入れられたストロークは、デジタルインクとしてプロセッサ106によって処理される。ユーザは、指または入力表面との使用に適したペンもしくはスタイラスなど、何らかの用具でストロークを入れることができる。ユーザは、入力表面104の付近での動きを検知する技術が使われている場合、入力表面104の上方でジェスチャーを行うことによって、またはマウスもしくはジョイスティックなど、コンピューティングデバイス100の周辺デバイスを用いて、ストロークを入れることもできる。ストロークは、少なくともストローク始動ロケーション、ストローク終了ロケーション、ならびにアプリケーション112および/またはHWRシステム114によってキャプチャされたストローク始動および終了ロケーションを接続する軌道によって特徴づけられる。軌道に沿ったいくつかのサンプル点におけるタイミング、圧力、角度など、さらなる情報が、ストロークのより深い詳細を提供するためにキャプチャされてもよい。異なるユーザが、当然ながら同じオブジェクト、たとえば、文字、形状、または記号を、わずかな変形を有して書く場合があるので、本システムは、各オブジェクトが正しいまたは意図されたオブジェクトとして認識されながら入れられ得る様々なやり方を受け入れる。
図2は、HWRシステム114の例の概略描写である。HWRシステム114は、前処理116、認識118および出力120などの段階を含む。前処理段階116は、より高い正確さを達成するように、デジタルインクを処理し、認識段階118中の処理時間を削減する。この前処理は、入力を滑らかにするためのBスプライン近似などのサイズ正規化および/または方法を適用することによって、ストローク始動および終了ロケーションを接続する軌道の正規化を含み得る。前処理されたストロークは次いで、認識段階118に渡され、これは、ストロークを処理して、そうすることによって形成されたオブジェクトを認識する。認識されたオブジェクトは次いで、概して、手書きされた要素/文字の植字されたバージョンとして、ディスプレイ102に出力120される。
認識段階118は、異なる処理要素またはエキスパートを含み得る。図3は、認識段階118の概略的詳細を示す、図2の例の概略描写である。出力120を生成するために動的プログラミングを通して協力する3つのエキスパート(セグメント化エキスパート122、認識エキスパート124、および言語エキスパート126)が、図示されている。
セグメント化エキスパート122は、式、たとえば、数学方程式、単語、または形状のグループを形成するために、入力ストロークを個々の要素仮定、たとえば、英数字および数学演算子、テキスト文字、個々の形状、または副次式にセグメント化するための異なるやり方を定義する。たとえば、セグメント化エキスパート122は、各ノードが少なくとも1つの要素仮定に対応し、要素の間の隣接制約がノード接続によって扱われるセグメント化グラフを取得するように元の入力の連続するストロークをグループ化することによって、要素仮定を形成し得る。
認識エキスパート124は、分類器128によって抽出された特徴の分類を提供し、セグメント化グラフの各ノードについての確率または認識スコアをもつ要素候補のリストを出力する。この認識タスクを対処するのに使われてもよい多くのタイプの分類器、たとえば、サポートベクターマシン、隠れマルコフモデル、または多層パーセプトロン、深層、畳込みもしくは再帰型ニューラルネットワークなどのニューラルネットワークが存在する。選択は、タスク用に所望される複雑さ、正確さ、および速度に依存する。
言語エキスパート126は、言語モデル(たとえば、文法またはセマンティクス)を使って、セグメント化グラフ中の異なる軌道についての言語的意味を生成する。エキスパート126は、言語的情報130に従って、他のエキスパートによって提案された候補をチェックする。言語的情報130は、レキシコン、正規表現などを含んでよく、言語エキスパート126によって言語モデルを実行するのに使われるすべての静的データのための記憶である。言語モデルは、所与の言語についての統計的情報に依拠し得る。言語的情報130は、認識およびユーザ対話の結果による適応ありまたはなしで、オフラインで計算され、言語エキスパート126に提供される。言語エキスパート126は、最良の認識軌道を見つけることを目指す。一例では、言語エキスパート126は、言語的情報130のコンテンツを表す最終状態オートマトン(FSA)などの言語モデルを調査することによって、これを行う。レキシコン制約に加え、言語エキスパート126は、要素の所与のシーケンスがどれだけ頻繁に、指定された言語において現れ、または特定のユーザによってセグメント化グラフの所与の軌道の翻訳の言語的尤度を評価するのに使われるかについての統計的情報モデリングを用いる言語モデルを使うことができる。
本明細書において記載されるシステムおよび方法は、デバイス100への手書きされた入力を認識するために、HWRシステム114を利用する。特に、本システムおよび方法は、行列などの構造内でのコンテンツ入力を認識する。行列とは、本明細書において、たとえば、テーブルには存在し得るラインおよびヘッダ、またはリストには存在し得るドット点および数字のような行および/または列指定子を使用しない、1つまたは複数の行および列中の、概して関係がある、通常は数字、文字、記号、数学的式であるいくつかの要素のレイアウトとして定義される。そのような行列は通常、数学的演算において使われ、情報をキャプチャし、かつ/またはそのような演算を実践するために、手書きのプロセスを通して手動で、または、たとえば、数学的ソリューション(後で論じられる)を提供するためのアプリケーション112の能力を通して自動的に、のいずれかで、デバイス100の1人または複数のユーザによって入力され得る。
行列などの構造化された入力を認識するための、上で論じられた知られているシステムとは異なり、本システムおよび方法は、認識を可能にするために、括弧などの特定のコンテンツを入力することをユーザに要求することもなく、方程式、部分行列、誤整列された要素および欠けている要素のような、より複雑な要素を有する行列を認識することができないプロセスを使うこともない。さらに、知られているシステムは、幾何学的投影を使って、行および列を検出し、認識のために構造全体を処理するだけであるが、本システムおよび方法は、投影なしで、すべての要素の漸進的認識および幾何学的関係を使うことができる。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
図4から20は、手書きまたは手描きされた行列の様々な例を示し、いくつかが、植字バージョンでも示されている。図4Aは、たとえば、2かける2(または2×2であるが、本明細書では、「行の数」×「列の数」という標準用法が使われる)のデジタルインク行列400としてレンダリングされた、デバイス100の入力表面104上へ行われた手書きされた入力を示す。行列400は、4つのコンテンツ要素、「3」である402、「2」である404、「7」である406および「1」である408を有する。要素402および404は、第1のほぼ水平なラインまたは行410に置かれ、要素406および408は、第2のほぼ水平なラインまたは行412に置かれ、要素402および406は、第1のほぼ垂直なラインまたは列414に置かれ、要素404および408は、第2のほぼ垂直なラインまたは列416に置かれる。これらのコンテンツ要素は、第1のほぼ垂直な括弧またはフェンス要素418(たとえば、第1の列414の左手側にある)および第2のほぼ垂直括弧またはフェンス要素420(たとえば、第2の列416の右手側にある)内に含まれる。1つまたは複数の行および1つまたは複数の列におけるコンテンツ要素の相対的位置は、入力の認識された要素のうちの少なくとも1つの幾何学的関係に基づく、行列400の第1の特性を提供し、1つまたは複数のフェンス要素内でのコンテンツ要素の包含は、行列400の第2の特性を提供する。
本システムおよび方法のアプリケーション112は、HWRシステム114によって入力400が行列であると判断するために実施される手書き文字認識と併せて、第1の特性を単独で、または第2の特性と組み合わせて、のいずれかで検出し、所定の、および/または、たとえば、デバイス100上のユーザインタフェース(UI)を介してユーザ設定可能なフォーマット化を適用して、図4Bに示すような植字行列400’を出力する。見るとわかるように、植字行列400’は、行410、412および列414、416に依然として配置されている、それぞれ、デジタルインクコンテンツ要素402から408の植字バージョン402’から408’、ならびに、それぞれデジタルインクフェンス要素418および420の植字バージョン418’および420’を有する。したがって、本システムおよび方法は、認識された行列400を、たとえば、行列のデジタルバージョン用にユーザによって期待されるフォーマットで表示する。認識された行列の表示フォーマットは、異なるようにされてよく、必ずしも「植字インク」ではなく、「美化された」デジタルインクであってよく、つまり、デジタルインクの表示は保持されるが、手書きの自然な変形が、要素の相対的位置を修正し、文字自体などのようなインク要素を滑らかにし、かつ/または正規化することによって、やわらげられるか、または正規化されることが理解されよう。美化が、デジタルインクもしくは植字インク(たとえば、行列要素の相対的位置が整列される)、または両方で実践されようとも、まだ入力されていない場合は括弧の表示など、認識結果またはその要素のプレビューを通すなどして、ユーザは、行列およびそのコンテンツの認識についてのフィードバックを提供され得る。
図4の入力は、行および列に比較的良好に整列されたコンテンツ要素として1桁の数字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図5Aは、手書きされた入力からレンダリングされた、同様に単純な、ただしアルファベットコンテンツ要素をもつ2×3デジタルインク行列を示す。図5Bは、本システムおよび方法の認識された出力を、植字行列として示す。図4のように、図5の入力は、行および列に比較的良好に整列されたコンテンツ要素として単一アルファベット文字をもつ、およびそのコンテンツの周りに比較的明快なフェンスをもつ、行列の比較的単純な例である。図6は、行および列に比較的良好に整列されているが、異なる形をしたフェンス要素によって囲まれるか、または含まれるコンテンツ要素として1桁の数字をもつ、手書きされた入力からレンダリングされた、同様に単純な2×2デジタルインク行列を示し、たとえば、角括弧ではなく丸括弧が使われる。本システムおよび方法は、行列入力の検出を支援するために、これらの異なる、および他の、フェンス形を認識するように構成される。フェンス要素は行列の2次特性であるが、行および/または列中にコンテンツの1次特性を有する他の構造が、たとえば、テーブル中に垂直および/または水平ラインに描かれたような同様の2次特性を有することに留意されたい。さらに、後で詳しく記載されるように、第2の特性を考慮しない(たとえば、フェンス要素が存在しない場合さえある)、入力行列の第1の特性の認識のみで、そのような検出に十分である場合がある。
手書きされた行列のわずかにより複雑な例が図7に示され、ここで、入力2×2行列は、2桁の数字を、たとえば、左手列に、少なくとも1つのわずかに不整列の列をもつコンテンツ要素として有する。各2桁の要素の数字の間の空間と結合された、このわずかな不整列は、2×2行列である行列の正しい認識のための難題を提供し、というのは、空間のうちの1つまたは複数は、2桁の構成要素の間よりもむしろ、列の間の空間と見なされ場合があり、したがって、堅牢な認識規則なしでは、図7の行列は、1桁の要素の2×5行列として検出される可能性があると想定されるからである(たとえば、「11」の「1」、「12」の「1」および「2」、「13」の「1」および「3」ならびに「14」の「1」および「4」は、第1の列に割り振られた「11」の第1の「1」、第2の列に割り振られた「11」の第2の「1」および「13」の「1」、第3の列に割り振られた「13」の「3」、第4の列に割り振られた「12」の「1」および「14」の「1」、ならびに第5の列に割り振られた「12」の「2」および「14」の「4」と別個に取り扱われる。同様の結果が、当然ながら、より大きい数について起こり得る。このような不正確な認識が行われた場合、認識の、結果としての美化された出力は、ユーザによって意図されたものと大きく異なる、認識された行列および/またはデータ表現の任意の後続使用を表示することになる)。本方法およびシステムは、行列に適用可能であるよりも多くの列を戻す、コンテンツ要素の過剰セグメント化によって引き起こされる、そのような不正確な行列認識の出現を最小限にするための基準を利用するが、これは後で詳しく記載される。
他のコンテンツ要素形も、明らかな不整列ありまたはなしの難題を提供する。たとえば、図8は、いくつかが指定子、たとえば、それらのコンテンツ要素に対して数学的意味を指定するマイナス符号を有する、1桁の数字としてのコンテンツ要素を有する、手書きされた行列を示す。そのような指定子は、非常に様々な記号、マークまたは文字によって形成されてよく、図7の大きい(より大きい)数の例についてと同じように、コンテンツ要素の過剰セグメント化の結果、これらの指定子は、それらが指定するコンテンツとは別個の列に割り振られることになる。同様の問題が、図9の例示的行列に示す小数、および図10の例示的行列に示す分数を伴う数的コンテンツ要素にも当てはまる。
そのような行列入力についての不正確な認識の最小限化が、コンテンツ要素自体の認識をアプリケーション112の行列検出プロセスの考慮に入れることによって、本システムおよび方法によって提供される。つまり、図8の例示的行列について、HWRシステム114は、指定子を、アプリケーション112がこれらを各々、単一のコンテンツ要素として取り扱うように、たとえば、「−1」、「−2」および「−3」を形成する、そのすぐ右手側で数字に接続されたマイナス符号として認識し、図9の例示的行列について、HWRシステム114は、たとえば、「3.5」を形成する隣接数字の間の小数点を、アプリケーション112がこれを単一のコンテンツ要素として取り扱うように認識し、図10の例示的行列について、HWRシステム114は、たとえば、分数「1/4」を形成する隣接数字の間の仕切りラインを、アプリケーション112がこれを単一のコンテンツ要素として取り扱うように認識する。本システムおよび方法がコンテンツ構造検出のために認識結果を考慮に入れるやり方が、後で詳しく記載される。
他の行列タイプは、数字またはアルファベット文字などのコンテンツ要素タイプの混合物を含み、さらに他の行列コンテンツ要素タイプは、下付き文字および上付き文字など、抽象的な数学的形を含む。たとえば、図11Aは、「0」である数的コンテンツ要素と、下付き数字で指定されたアルファベット文字を有する英数字コンテンツ要素の両方を有する、手書きされた行列を示す。上述した図8から10の指定子例と同様、認識されたコンテンツを考慮に入れることによって、たとえば、HWRシステム114は、「a11」、「a22」および「a33」を形成する、数字のすぐ左手側でそれに接続された下付き文字を認識し、アプリケーション112は、植字インクで表示される、図11Bに示される認識された行列を提供し、というのは、下付き文字は、コンテンツ要素全体自体としてではなく、より大きいコンテンツ要素の一部として取り扱われるからである。
図12は、下付き文字を含むコンテンツ要素をもつ同様の例示的入力行列を示す。ただし、前の例とは異なり、図12の行列は、空のコンテンツ要素位置またはセルも含む。つまり、各行および列位置は、第1の行(たとえば、行0として識別される)および第1の列(たとえば、列0として識別される)におけるコンテンツ要素位置が、たとえば「セル0,0」に対応するように、セルと見なされる。ただし、他の形の識別用行列要素位置が可能である。さらに、アプリケーション112および/またはHWRシステム114は、そのような識別子を、たとえば、デバイス100のメモリ108中に記憶された、データタグなどの位置データとして、認識されたコンテンツに適用してよい。そのような空のセルの存在は、行列など、2次元の構造化されたコンテンツの正しい認識のための別の難題を引き起こす場合があり、というのは、構造の行および列の識別は、考えられるところでは、考慮されている要素の同じ行および/または列内からではなく、他の行および/または列からの要素の考慮により確かめられるだけだからである。たとえば、さもなければ空の行(または列)中の要素は、他のどの要素とも整列されず、したがって、行(または列)の識別は、整列されていない要素を検討することによって行われる。本システムおよび方法は、後で詳しく記載されるように、そのようなコンテンツシナリオにおいてさえも、堅牢な行列検出を提供する。
前に記載されたように、フェンス要素の存在は、特に空のセルが存在するとき、行列の認識を支援するのに使われ得る。これは、フェンス要素の存在が、(たとえば、単一のフェンスシナリオにおいて)フェンス要素(1つまたは複数)に囲まれ、含まれ、またはそうでなければ隣接するコンテンツが、1つまたは複数の行および1つまたは複数の列中にレイアウトされることを意味すると解釈される場合、空のセルは、非コンテンツとしてではなく、そのような行(1つもしくは複数)および/または列(1つもしくは複数)の一部と見なされるからである。ただし、やはり前に記載されたように、本システムおよび方法は、行列用のフェンス要素などの構造的インジケータの存在または助けなしで、2次元のコンテンツ構造を認識することが可能である。たとえば、図13は、図12の例のように、空のセルをもつ例示的入力行列を示すが、図12とは異なり、フェンス要素が存在しない。本システムおよび方法は依然として、図13の行および列構造を正確に識別するが、認識結果は、行列として識別される場合も、されない場合もある。つまり、それは、2次元構造として識別されるだけであってよく、これは、認識結果の任意の後続使用に依存して、いかなる現実的な結果としての影響も持たない場合がある。このようなケースにおいてさえも、ユーザによる、認識された構造を行列として指定するための選択が、UIなどを介して、および/またはたとえば、表示されるコンテンツ要素についての、生成されたデジタルもしくは植字インクフェンス要素の表示など、認識結果のフィードバックもしくはプレビューを通して提供され得る。本システムおよび方法のそのような特徴が、後で詳しく記載される。
2次元構造におけるさらなる複雑さが可能である。図14Aは、追加入力をもつ、図5Aの例示的な2×3デジタルインク行列を示す。具体的には、3*2の手書きされた行列が、2×3行列のすぐ右に入力され、イコール符号、すなわち「=」、および2つの数学的方程式を含むさらなる行列が続く。見るとわかるように、最も右の行列は、最初の2つの行列の乗算の部分的結果を含み、これは、2×3行列の行0と3×2行列の列0の積、および2×3行列の行1と3×2行列の列1の積であり、ここで、全結果が、期待される2×2行列を形成することになる。図14Bは、認識された出力を植字形で示し、見るとわかるように、第3の行列の方程式は、2×2行列のセル0,0およびセル1,1に属すものとして正しく認識される。この認識は、図14Aに示すように、手書きされた方程式の比較的重大な重なりにかかわらず生じる。前に記載されたように、この認識は、第3の行列の行内の方程式の認識の考慮により本システムおよび方法によって達成され、全体の認識されたコンテンツ、たとえば、2×3行列と3×2行列の積から生じる、期待される2×2行列の考慮により認識されてもよい。これらの特徴は、後で詳しく記載される。
コンテンツ要素を、セル割振りを判断するために個々の入力要素を個々に取り扱うよりもむしろ、HWRシステム114からの認識結果に基づく各コンテンツ要素の1つまたは複数の認識された要素に関する2次元構造のセルに属すものとして取り扱うことによって、本システムおよび方法は、より複雑な行列形でさえもほぼ正確に検出することができる。たとえば、図15は、上で記載されたコンテンツ特徴、たとえば、アルファベット文字、単語、数字、上付き文字、括弧、記号、ならびにマイナス符号および仕切りラインなどの指定子のうちの多くを組み合わせる比較的複雑な数学関数を含む各コンテンツ要素をもつ例示的な手書きされた2×2行列を示す。ただし、この複雑さにかかわらず、本システムおよび方法は、各認識された関数の認識された複合部分が、対応する行列セルに属す単一のコンテンツ要素として取り扱われるので、2×2行列を検出する。さらに、図16は、入れ子行列を含む、例示的な手書きされた3×3行列を示し、たとえば、セル0,0は2×2部分行列を含み、セル1,1は2×3部分行列を含み、セル2,2は2×3部分行列を含む。
比較的複雑な行列は、検出および認識のための難題を提示するが、単一の行または単一の列の行列など、過度に単純な行列も、難題を提示する。図17は、例示的な1×3の手書きされた行列を示し、図18は、例示的な3×1の手書きされた行列を示す。いずれのケースでも、(前に論じられた空のセル問題と同様)1×3行列についての行間関係も、3×1行列についての列間関係もないので、複数の列(または行)の存在を判断するのは困難であり得る。これは、その行または列自体の中のコンテンツ要素のみが、列または行を判断するために検討すべきであり、したがって、列または行判断のための閾値などを設定するための、関係しているそれらの要素の間の距離または空間の値が、その判断には重大だからである。基本的に、判断がより不確定になるような、比較的少ない情報が入手可能である。
たとえば、図17では、列判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「3」、「7」および「2」をもつ1×3行列、もしくはコンテンツ要素「3」および「72」をもつ1×2行列として認識されるか、またはコンテンツ「372」をもつ、行列ではまったくないと認識され得る。同様に、図18では、行判断のために設定された閾値に依存して、コンテンツは、コンテンツ要素「4」、「1」および「8」をもつ3×1行列、もしくはコンテンツ要素「4」および「18」をもつ2×1行列として認識されるか、または(垂直に配列された)コンテンツ「418」をもつ、行列ではまったくないと認識され得る。前に論じられたように、フェンス要素(1つまたは複数)の2次特性は、いかなる行列結果も起こらないように、行列検出そのものを支援し得るが、これは、行列の内部構造に関して、アプリケーション112に知らせない。本システムおよび方法では、さらなる(または第3もしくは3次)特性が、この判断を支援するために、いくつかのコンテンツタイプに関して検討され得る。たとえば、列識別のための、数字などの入力要素の間に要求される空間は、たとえば、アルファベット文字など、他の入力要素に対してよりも小さくなるように設定されてよい。これは、数字の場合、それらは、多桁数字が指定されるとき、互いと適度に接近して書かれるべきであると見なされるからである。このような基準は、図7の例におけるような、より複雑な行列検出も支援することができる。代替的、または追加の特性も、そのような単純な行列ならびにより複雑な行列を正しく検出するために考慮に入れられるが、それらは、後で詳しく論じられる。
さらに、前に論じられたように、他の形の2次元構造も、本システムおよび方法によって認識可能である。たとえば、図19は、行列のように基本セルの行および列を有する、行列の行列式を伴う数学関数を示す。図20は、行列内に入れ子にされた、そのような行列式を示す。さらに、見るとわかるように(前の例のうちのいくつかのように)、数学演算子および関数など、2次元構造の外部の追加要素が存在してもよい。そのような追加要素は、たとえば、行列のコンテンツとは別個に認識されるが、それらは、たとえば上述したように、行列コンテンツおよび行列の構造の認識をガイドするために、アプリケーション112および/またはHWRシステム114によってコンテキストとして使われ得る。
上で記載された例からわかるように、手描きされた行列における自然な変化は広く、したがって、これらの行列のような構造的関係を確固として判断するシステムは概して、この広範囲の変形にわたって検出および認識を実施することが可能でなければならない。当然ながら、たとえば、一般定義が遵守されるように、いくつかの制限が、何が行列として正確に認識されるべきかに関して当てはまる。本システムおよび方法はしたがって、以下で説明されるように、行列構造の正しい検出のための、基準と、認識の結果とを使う。通常、手書き文字認識は、それらの要素が入力される構造ではなく、認識された要素の幾何学的関係を、これらの要素自体の認識のために考慮に入れるだけであることに留意されたい。したがって、本システムおよび方法は、行および列候補の粗いフィルタリングを提供するために幾何学的および言語モデル特徴を考慮に入れる確率ベースの手法を使ってこの認識を提供するのに、さらなる情報を使う。これらの粗くフィルタリングされた行列セル候補は次いで、実際の行列を認識するために、認識プロセスの結果を使って、精細フィルタリングされ得る。このようにして、本システムおよび方法は、行列要素候補を前処理することによって行列を検出するために、認識を効率的に使用する。本システムおよび方法は、コンテンツが概して、テーブル、リストなどのような(水平または非水平、たとえば、対角線)行および(垂直または非垂直、たとえば、対角線)列に整列される、手書きされたコンテンツの他の構造的関係の認識に適用可能であり、というのは、構造の認識は、構造用に具体的に入力されたインジケータには依拠せず、むしろ認識されたコンテンツ自体の相対ジオメトリに依拠するからであることが理解されよう。本システムおよび方法のこれらおよび他の特徴が、ここで論じられる。
図21から31に示される例の以下の説明は、行列認識を対象とするが、同様の記述が、上述したような他の構造の認識に当てはまる。さらに、以下の説明は、入力行列内での列検出に関連するが、明らかなように、同じプロセスが、行列のセルが検出されるように、行を検出するのにも使われてよい。いずれのケースでも、プロセスは概して、行列の可能な列または行の検出および要素自体の認識を提供するために、ほぼ水平および垂直方向(または書く方向に基づく他の方向)での要素の整列を、それらの整列に属す要素の認識を使って検出することを伴う。行検出のプロセスは、行列セル検出、およびしたがって行列の全体的検出を提供するために、列検出の前に実施される。以下に記載される例において、整列は、候補行列の列および行を検出することの一部として検出され、次いで、候補列および行は、認識されたコンテンツに基づいて分析されて、認識された行列出力が提供される。あるいは、垂直および/または水平整列のいずれかの検出は、行列行および/または列仮定化とは別個の、異なる方式で、たとえば、複数ラインを検出するプロセス、たとえば、本出願人および譲受人の名前で出願され、その内容全体が参照によって本明細書に組み込まれている、「System for Recognizing Multiple Object Input and Method and Product for Same」と題する米国特許出願公開第2017/0011262号明細書に記載されている多重方程式によって実施され得る。
図21は、複数の入力インクオブジェクト2102から2116の例示的配置2100を示す。インクオブジェクトは、たとえば、デバイス100の入力表面104に入力され、その上にデジタルインクとしてレンダリングされた、手書きされた入力要素(たとえば、1つまたは複数の文字、記号などを形成する1つまたは複数のストローク)を表す。インクオブジェクトは概して、手書きされた要素の限度に対応する矩形として示されており、したがって、HWRシステム114によって認識される要素の境界ボックスを表し得る。行列検出プロセスのこの点において、インクオブジェクト自体のコンテンツは必ずしも重要でなく、むしろそれは、プロセスによって使われる、認識された要素とのインクオブジェクトの対応である。HWRシステム114の認識プロセスにおいて、認識結果は、利用される言語モデルに基づく、各ストロークおよびストロークのグループについての認識候補の階層的判断を含むことに留意されたい。図示されるインクオブジェクトは、各認識された要素の最も有望な候補に関するが、実際の認識されたコンテンツ、およびしたがって認識された要素は、たとえば、ユーザによってUIなどを通して、異なる候補が選択された場合は、配置自体が変わるように変わり得る。このようなケースでは、行列検出プロセスは、変更された配置に適応するように、少なくとも部分的に、たとえば、変更される配置の少なくともその部分のために再度使われる。
見るとわかるように、配置2100において、インクオブジェクト2102、2104および2106は概して、互いと水平に整列され、インクオブジェクト2108および2110は概して、互いと水平に整列され、インクオブジェクト2112、2114および2116は概して、互いと水平に整列される。したがって、これらの水平整列は、前に記載されたようにして本システムおよび方法によって検出され、図示される例では、整列の要素の間の重なりが存在しないので、潜在的行列行に対応すると判断される見込みが最もある。さらに、インクオブジェクト2102、2108および2112は概して、互いと垂直に整列され、インクオブジェクト2104、2110および2114は概して、互いと垂直に整列され、インクオブジェクト2106および2116は概して、互いと垂直に整列される。したがって、これらの垂直整列は、本システムおよび方法によって検出されてよく、図示される例では、潜在的行列列に対応すると判断され得る。したがって、配置2100は、たとえば、3×3行列に対応すると検出され得る。このような行列の潜在的列は、図22から31の以下の例でのように検出される。
図22に示すように、オブジェクト2102、2104および2106は、ほぼ水平に整列されていることが知られ、HWRシステム114の認識結果から、オブジェクトは別々のコンテンツ要素である(見込みがある)ことが知られている。したがって、オブジェクト2102、2104および2106は、アプリケーション112によって、それぞれ、別個の潜在的な第1、第2および第3の列C0、C1およびC2中に割り振られる。これらの列割振りの仮定は、次の水平整列における(本例では、下向き方向の)いずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによってテストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト2102、2104および2106の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト2108および2110がインクオブジェクト2102、2104および2106と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図22において、これは、インクオブジェクト2102、2104および2106の境界ボックスの右手および左手境界の破線投影によって示される。見るとわかるように、インクオブジェクト2108はインクオブジェクト2102と重なるが、インクオブジェクト2110はインクオブジェクト2102、2104および2106のうちのいずれとも重ならないと判断される。したがって、図23では、インクオブジェクト2108が、インクオブジェクト2102とともに第1の列C0中に割り振られ、インクオブジェクト2104は第2の列C1中に割り振られたままであり、インクオブジェクト2110は、第3の列C2中に割り振られ(図22に示される割振りから調節される)、インクオブジェクト2106は第4の列C3中に割り振られていることが示されている。
次に、これらの列割振りの仮定は、次の水平整列におけるいずれかのインクオブジェクトが、列のインクオブジェクトと垂直に重なるかを検討することによって再度テストされる。つまり、いずれかのインクオブジェクトが、インクオブジェクト2108、2104、2110および2106の各々の幅と重なるかが、これらのオブジェクトの限度を次の水平ラインまたは行中に投影することによって判断される。これは、インクオブジェクト2112、2114および2116がインクオブジェクト2102、2104および2106と垂直方向で重なるかどうかをチェックすることと基本的に一致する。図23において、これは、インクオブジェクト2108、2104、2110および2106の境界ボックスの右手および左手境界の破線投影によって示される。図23に見られ得るように、インクオブジェクト2112はインクオブジェクト2108と重なり、インクオブジェクト2114はインクオブジェクト2104および2110の両方と重なり、インクオブジェクト2116はインクオブジェクト2106と重なると判断される。したがって、図24には、インクオブジェクト2112はインクオブジェクト2102および2108とともに第1の列C0中に割り振られ、インクオブジェクト2114はインクオブジェクト2104とともに第2の列C1中に割り振られ、インクオブジェクト2110も第2の列C1中に再割振りされ、インクオブジェクト2116は、図23に示される第4の列からのインクオブジェクト2106の再割振りとともに、第3の列C2中に割り振られることが示されている。見込みがある列のこの認識結果は図25に示され、ここで、3つの列C0、C1およびC2のそれぞれの境界は、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスとして示されている。
図24に示される列の再割振りは基本的に、本システムおよび方法の列検出の精細フィルタリングのタイプを表し、ここで、列の検出は、益々間隔の狭いコンテンツ要素が行ごとに検討されると、収束する。このフィルタリングは、この段階で実施されなくてよいが、各ステップにおいて見つけられたすべての潜在的列は、後続フィルタリングステップまで保持されてよく、これは、いずれかの列がマージされるべきかどうかをチェックする。そのような処理は、後で詳しく記載される。
すべての可能な仮定が判断され、テストされると、アプリケーション112は、インクオブジェクトについて認識された行および列割振り、たとえば、セル割振りを示すタグなどの(メタ)データを、インクオブジェクトに提供してよく、そのようなデータは、たとえば、インクオブジェクトとともにデバイス100のメモリ108中に記憶される。このようにして、植字または編集など、インクオブジェクトとのいずれの後続対話においても、オブジェクトの間の位置関係が考慮に入れられ得る。
列割振りを行ごとに、およびそれらの行中の空間的に隣接するコンテンツ要素の考慮により仮定化し、テストする、上で記載された反復手法は、潜在的列を見つけるために、配置全体にわたるオブジェクトの2×2配置を反復して検討することに基本的に対応する。つまり、第1の行中の2つの隣接するコンテンツ要素の相対的位置は、列割振りを判断する(かつ、調節する)ために、次の(第2の)行中の2つの隣接するコンテンツ要素と比較される。これは、いくつかのやり方で実施されてよい。一例では、コンテンツ要素の特徴の間の相対距離が、要素が異なる列に潜在的に分離されるかどうかを判断するために、閾値と比較される。つまり、これらの要素の間で、適切な列間隔が探し求められる。
たとえば、本ケースでは、テストされる第1の列仮定は、インクオブジェクト2102が第1の列の中にあり、その行の次のインクオブジェクト、すなわち、インクオブジェクト2104が第2の列の中にあるというものであり、テストされる第2の列仮定は、インクオブジェクト2102が第1の列の中にあり、次の行の最も左のインクオブジェクト、すなわち、インクオブジェクト2108が第2の列の中にあるというものである。これは、インクオブジェクト2102の境界ボックスの右手境界と、インクオブジェクト2104および2108の境界ボックスの左手境界との間の水平距離が、たとえば、(第1の)閾値よりも大きいかどうかを検討することによって行われ得る。それの最も単純なものにおける第1の閾値は、ゼロ、または何らかの非ゼロ(たとえば、正の)値に設定され、そうすることによって、考慮されているオブジェクトと垂直に重なるどのオブジェクトも、負の距離を戻す。つまり、オブジェクト2102および2104の間の距離のような、測定された距離は、第1の閾値よりも大きい正の値を産し、インクオブジェクト2102および2108の間の距離のような、測定された距離は、第1の閾値よりも小さい負の値を産する。したがって、アプリケーション112は、インクオブジェクト2102および2104が異なる列に属し、インクオブジェクト2102および2108が異なる列に属さない見込みがあると正確に判断する。
行内比較は基本的に、前に記載された水平ライン判断であり、行間比較は基本的に、前に記載された、より高い最も左のオブジェクトの、次の連続水平ライン上への投影であり、この投影は本質的に、テストされる2×2配置の第4の要素を形成する。インクオブジェクトは、ストローク自体の限度、各要素を作り上げるストロークの平均中心または重心などのような、境界ボックスとは異なる特性によって定義され得ることが理解されよう。さらに、距離は、たとえば、本出願人および譲受人の名前で2015年8月25日の優先日を主張して出願され、その内容全体が参照によって本明細書に組み込まれている、「System and Method of Digital Note Taking」と題する米国特許出願公開第2017/0060819号明細書に記載されている入力ラインパターンなどのような、書くためのガイドのような、入力表面104の何らかの他のパラメータに応じて、ピクセルで、文字などのような手書きされたオブジェクトのアベレージもしくは平均寸法のような、入力自体の特性、境界ボックス、またはそのような特徴の組合せなどで測定され得る。さらに、反復手法は、上述したように、空間順よりもむしろ、ストローク/要素のエントリの時間順、またはそれらの何らかの組合せに基づき得ることが理解されよう。
したがって、オブジェクトの反復する2×2配置が、潜在的列を見つけるために、配置全体にわたって検討される。このようにして、配置の手書きされた要素における局地化された変形が、それらが配置全体にわたる全体的列検出に影響しないようにローカルに検討される。つまり、本出願人は、行列のような、2次元構造の手書きされた入力のためのデジタルアプリケーションのユーザは、特に、たとえば、要素が同じタイプである正規行列において、構造の寸法が増大すると、構造要素の間隔をずらす傾向があることに気づいた。たとえば、単純な2×2行列の場合、要素の相対間隔およびサイズ決定は、たとえば、図4でのように適度に一貫性があるが、行列が大きくなると、要素間隔の一定のローカル圧縮または拡張が、たとえば、図8でのように生じる場合があり、ここで、書き始めの位置である、行列の左上隅の要素と比較して、右上隅に向かう要素の間隔は拡大され、下方中心における要素の間隔はわずかに圧縮され、水平には不整列である。
上で記載された空間順手法は概して、入力の後処理に適用可能であり、つまり、ユーザが、行列のすべての意図された入力を手書きすると、行列を認識するための処理が、メニューボタンのような制御要素の手動選択、もしくはダブルタップなど、インタフェース表面上での多地点タッチのようなジェスチャーの入力を通して、または入力後の、設定された量の時間、たとえば、約0.5秒から約2秒の経過のような自動処理を通して実施される。このような空間的手法はまた、そのようなトリガを使うことによって、入力中の処理、いわゆる漸進的認識に適用可能である。時間的手法はまた、漸進的または事後認識処理のいずれかに適用可能である。空間的および/または時間的検討を使う漸進的手法は、たとえば、植字への変換が所望されることをユーザが示すとき、または最後の入力からの設定された時間経過の後、処理の大部分が入力中に実施されたので、入力の最終的認識のための処理時間を減少させ得ることに留意されたい。
上で記載された例から、見込みがある列を判断するために、前の行のコンテンツ要素を以降の行に投影することによって、空のセルの存在は、列の検出に影響せず、実際に、空のセルは、列内で正確に割り振られ、たとえば、インクオブジェクト2106および2116の間の空のセルは第3の列C2内で割り振られることがわかり得る。ただしこれは、図12の例示的行列でのように、単一のコンテンツ要素のみが列内にある入力状況においても成り立つ。たとえば、図26は、代替的例示的配置2600を示し、これは、配置2100と同じであるが、インクオブジェクト2114が存在しない。したがって、上述した本システムおよび方法の認識プロセスを通して、4つの列C0、C1、C2およびC3が、それらの列の中に割り振られたインクオブジェクトを囲む破線境界ボックスによって示されるように存在すると判断され得る。これは、配置2100の前の例とは異なり、インクオブジェクト2114は、インクオブジェクト2104および2110の両方とは重ならず、したがって、これらは、前の例において図23の段階において判断されたように、第2および第3の列に割り振られたままであるからである。したがって、この代替的例において、オブジェクト2104および2110の各々は、それらのそれぞれの列内で唯一のオブジェクトとして割り振られ、これらのオブジェクトの周りの空のセルも、それらの列の中に割り振られる。
上で記載された例示的な「粗い」列検出プロセスは、図4から20の例に様々に示されるように、(手書きの不均一性からの)不整列の要素、整列されていない要素(符号指定子、たとえば、プラスおよびマイナスなど)、ならびに複雑な要素(部分行列、方程式など)により、超過垂直整列の検出を引き起こす場合がある。したがって、前に記載されたように、本システムおよび方法は、検出された可能な列のうちのいくつかがマージされるべきであるかどうかが判断される精細検出プロセスを用いて、粗い検出結果も処理することができる。そのようなさらなる処理の例が、図27から31に関してここで記載される。
前に記載されたように、第1の閾値は正の値に設定され得る。このような設定は基本的に、各インクオブジェクトについての一定の量のパディングを提供させ、そうすることによって、検出のために列の間で要求される間隔を増す。そのようなパディングは、初回の「粗い」フィルタリング内で、または後続の「精細」フィルタリング中で、間隔が狭い列をマージするための機構を提供するのに使われ得る。たとえば、図27は、図22の前の例の段階におけるプロセスを示すが、一定の量のパディングp(図27の円で指定される)が、図26の代替的配置2600のためのインクオブジェクト2102、2104および2106に適用される。この例では、第1の閾値の値は、パディングpが、インクオブジェクト2110をインクオブジェクト2104と垂直に重ならせるように設定される。したがって、本システムおよび方法の列検出プロセスは、図28に示す列割振りを生じ、ここで、オブジェクト2104および2110は、配置2100の例でのように、3列レイアウトにおいて同じ列に再度割り振られる。第1の閾値の値は、任意に設定されて(および、たとえば、UIを通してユーザによってリセット可能であって)よく、または、本システムおよび方法によって、たとえば、文字など、手書きされたオブジェクトのアベレージもしくは平均寸法のような、手書きの特性との関係において自動的に定義されてよい。
列割振りを精細フィルタリングするための代替的または追加の機構は、認識された2次元構造にわたる要素の相対間隔を考慮に入れるものである。これは、いくつかのやり方で行われてよい。図29は、図示されるインクオブジェクト2102から2116の各々の間に水平距離をもつ配置2100を示す。つまり、オブジェクト2102および2104の間の距離d1、オブジェクト2108および2110の間の距離d2、オブジェクト2112および2114の間の距離d3、オブジェクト2104および2106の間の距離d4ならびにオブジェクト2114および2116の間の距離d5である。これらの距離から、各列のコンテンツ要素の間の平均、アベレージ、最小および最大距離が判断され得る。たとえば、列C0およびC1の間の平均距離dm1は距離d1、d2およびd3の平均であり、列C1およびC2の間の平均距離dm2は距離d4およびd5の平均である。粗く割り振られた列の、そのような正規化された距離は、割振りのチェックを提供するために、入力配置の他のパラメータと比較されてよく、それらは、列検出のための別の(第2の)閾値として提供される。
第2の閾値としてのこのようなパラメータの例は、検出された潜在的列の間の間隔である。この間隔は、たとえば図25、26および28において、列C0からC3の各々についての下付き文字に「nL」および「nR」として示される、列境界ボックスの右および左手境界の間で測定される距離dg1、dg2およびdg3として様々に示され、「n」は、列の数、たとえば、0から3である。たとえば、列をマージするためのこのパラメータに対して設定された第2の閾値は、たとえば、手書きにおける自然な変形を提供するために、約0.1から約0.7、および通常は約0.3など、所定の定数値だけスケールダウンされる、図25におけるdg2などの最大正間隔であってよく、それは、各列の平均距離、たとえば、平均距離dm1およびdm2と比較するのに使われる。この比較に基づいて、平均距離がこの第2の閾値値よりも小さい場合、列はマージされる。このようにして、列である見込みが高いと見なされる、間隔が最も大きい列よりもはるかに適度に間隔が小さい、検出された列は、列を構成しない見込みがあるので、マージされる。
第2の閾値としてのこのようなパラメータの別の例は、いくつかのコンテンツ要素の間の間隔である。アルファベット文字、単語、数字、上付き文字、下付き文字、括弧、記号、ならびにマイナスおよびプラス符号ならびに仕切りラインなどの指定子のようなコンテンツ特徴の間の間隔などである。たとえば、図30は、距離dc1だけ分離される2つの要素3000および3002によって構成されたインクオブジェクト2106を示す。たとえば、要素3000はマイナス符号などの指定子であってよく、要素3002は数字であってよい。本システムおよび方法は、HWRシステム114によって認識されたような隣接要素を、アプリケーション112において設定された規則に基づいて、単一のコンテンツ要素として取り扱うことができ、またはHWRシステム114自体が、このようにして、たとえば、図8、9および10に関して前に記載されたように、インクオブジェクトを戻してよい。たとえば、列をマージするための、このパラメータに対して設定された第2の閾値は、たとえば、手書きの自然な変形を提供するために、約1.1から約1.7、および通常は約1.4など、所定の定数値だけスケールアップされる、そのような要素の間の最大間隔であり、この値を各列の平均距離と比較すればよい。この比較に基づいて、平均距離がこの第2の閾値値よりも小さい場合、列は、図31に示すようにマージされ、図25の第1の列および第2の列は、距離dg1が、たとえば、スケーリングされた距離dc1よりも小さいので、マージされ、そうすることによって、2つの割振りし直された列C0およびC1が残る。このようにして、マイナスおよびプラス符号付きの数字のような、間隔が最も大きい接続された要素よりも小さく、適度に間隔を空けられた、検出された列は、列が要素間間隔よりも広く間隔を空けられることが期待されるので、列を構成しない見込みがあるとき、マージされる。
認識された構造の大域および極大特徴に基づく、上で記載されたマージ動作における、平均、または他の共通値の使用、各粗く検出された列の中のインクオブジェクトの間隔は、構造内のローカル変形による、構造のどの可能な過剰セグメント化の比較的堅牢な評価も提供する。
前に記載されたように、列検出の、上で記載された例は、行検出にも当てはまることができ、ここで、垂直整列は、HWRシステム114から知られ、アプリケーション112によって、行を判断するのに使われる。さらに、粗い、および精細な2次元構造検出の、上で記載された例において、検出結果は、各検出された列および行についての1つまたは複数の確率スコアとして提供されてよく、これらは、たとえばその確率結果についての幾何学的コストによって算出される。つまり、記載される第1の閾値および第2の閾値は、手書きされた入力の認識されたコンテンツの幾何学的関係と、行および列など、特定の構造にある、その認識されたコンテンツの幾何学的コストを判断するために比較されるパラメータである。このコストは、HWRシステム114からの実際の認識結果および/またはアプリケーション112の構造検出結果に重み付けとして、たとえば、手書き文字認識結果を通して生じられた確率に補足されてよい。このようにして、構造要素への後続割振りに対するいくつかの認識されたコンテンツの影響が容易になされてよく、たとえば、前に記載されたように数字用にはより狭い間隔を、列および/または行のマージを認め、コンテンツ、たとえば、すべての数字、文字、方程式の類似に基づいて行列の確率を増し、括弧またはフェンス要素がコンテンツ要素に近接して検出された場合は行列についての確率スコアを増す。
本明細書において記載された様々な例は、デジタルインクよりもむしろ画像が認識されるオフライン認識など、手書き以外の、認識のための入力の形に適用されてよく、たとえば、要素は、紙またはホワイトボード上に書く写真としてキャプチャされ、対話型スマートボード上でデジタルにキャプチャされる、などの画像として入力されてよい。
記載された方法およびシステムは、構造認識がオブジェクト自体の認識を考慮して実施されるとき、数字、文字、数学関数または方程式、およびそれらの組合せの行列など、2次元構造での複数のオブジェクトの処理および認識速度を増大する。さらに、行列などの構造の書写は、新たな書写エリアを作成し、行列ボタンをタップし、括弧を描くことなどのような、認識のための特定のユーザ操作を要求しない。さらに、アルゴリズムのいかなる学習またはトレーニングも要求されないが、これは、結果を向上するために実施される場合がある。
上記は、最良モードであると見なされるものおよび/または他の例を記載したが、そこでは様々な修正が行われてよいこと、および本明細書で開示された主題は、様々な形および例で実装されてよいこと、ならびにそれらは、多数の他のアプリケーション、組合せ、および環境において適用されてよく、それらのうちのいくつかのみが、本明細書において記載されたことが理解されよう。開示された態様は、本主題の真の趣旨および範囲から逸脱することなく、改変または補正されてよいことが、当業者には認識されよう。したがって、本主題は、本説明における具体的な詳細、陳列、および図示される例に限定されない。本明細書で開示された有利な概念の真の範囲内であるあらゆる修正および変形を保護することが意図される。