本発明の方法、システム、およびコンピュータプログラム製品の例は、本明細書において、コンピューティングデバイスへの複数のオブジェクトの入力の認識をもたらすものとして後段において説明され、コンピューティングデバイスは、プロセッサと、プロセッサの制御の下に入力を認識するための少なくとも1つの方法またはシステムを有する。
開示される方法、システム、およびコンピュータプログラム製品の態様において、開示されるシステムおよび方法は、入力の複数の要素の少なくとも1つの幾何学的特徴を決定し、少なくとも1つの幾何学的特徴を少なくとも1つのあらかじめ定められた幾何学的しきい値と比較して、正または負の結果を決定する。比較が負の結果をもたらす場合、開示される方法またはシステムは、要素が入力の認識において1つのオブジェクトに属するものと見なす。比較が正の結果をもたらす場合、方法またはシステムは、要素が入力の認識において複数のオブジェクトに属するものと見なす。
少なくとも1つの幾何学的特徴は、複数の要素のうちのペアの要素の間の1つまたは複数の距離を含むことができる。1つまたは複数の距離は、各ペアの要素の各要素の内容の1つまたは複数の因子の間であってもよい。1つまたは複数の因子は、各ペアの要素の要素に共通の因子、および、各要素を含む幾何学的境界のうちの少なくとも1つを含むことができる。
各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、ここで共通の因子は、1つまたは複数のストロークの重心であり、少なくとも1つのあらかじめ定められた幾何学的しきい値は、重心距離しきい値であり、比較は、ペアの要素について決定された重心距離が重心距離しきい値よりも大きい場合、正の結果をもたらし、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。
少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値であってもよく、ここで比較は、ペアの要素について決定された幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、正の結果をもたらし、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。
比較は、各ペアの要素について第1の距離を第1のあらかじめ定められた距離しきい値と比較し、第2の距離を第2のあらかじめ定められた距離しきい値と比較するステップを含むことができる。この場合、比較は、第1および第2の距離がいずれも、それぞれ第1および第2のあらかじめ定められた距離しきい値よりも大きい場合、ペアの要素について正の結果をもたらし、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。各ペアの要素について、第1の距離は要素の共通因子の間の距離であってもよく、第2の距離は要素の幾何学的境界の間の距離であってもよく、ここで第1のあらかじめ定められた距離しきい値は共通因子距離しきい値であり、第2のあらかじめ定められた距離しきい値は幾何学的境界しきい値である。
各ペアの要素の要素は、幾何学的に隣接していてもよく、方法またはシステムは、複数の要素のうちの要素の入力の位置的順序および時間的順序のうちの少なくとも1つを決定するように構成されてもよい。
少なくとも1つの幾何学的しきい値は、要素の入力の決定された時間的順序を考慮してあらかじめ定められてもよい。
ペアの要素のうちの少なくとも1つのペアについて、方法またはシステムは、少なくとも1つのペアの1つの要素との第1の位置的順序関係を有する第1の要素、および、少なくとも1つのペアのもう1つの要素との第2の位置的順序関係を有する第2の要素を各々含むペアの要素の間の幾何学的境界距離を決定し、決定された幾何学的境界距離の最小距離を決定することにより、少なくとも1つの幾何学的特徴を決定するように構成されてもよい。この場合、少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値を含み、ここで比較は、決定された最小幾何学的境界距離を幾何学的境界距離しきい値と比較するステップを含み、比較は、決定された最小幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、正の結果をもたらし、ここで少なくとも1つのペアの要素は、異なるオブジェクトに属するものと見なされる。
位置的順序は、方向的であってもよく、第1および第2の方向的関係がそれぞれ、少なくとも1つのペアの要素からの第1および第2の方向である。
第1および第2の要素のペアは、第2の要素の幾何学的領域内に第1の要素を含むことができる。この場合、各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表し、幾何学的領域は、1つまたは複数の手書きのストロークの特性に基づく。
複数のオブジェクトは、1つまたは複数の幾何学的な別個の手書きの数学計算式であってもよく、要素は、複数の数学計算式の各々の手書きの文字、記号、および演算子である。
開示される方法およびシステムのもう1つの態様において、コンピューティングデバイスへの複数のオブジェクトの入力を決定するためのシステムであって、コンピューティングデバイスは、プロセッサと、プロセッサの制御の下に入力を認識するための少なくとも1つのアプリケーションとを備え、少なくとも1つのシステムアプリケーションは、複数の要素の入力を受信し、複数の要素の少なくとも1つの幾何学的特徴を決定し、決定された少なくとも1つの幾何学的特徴を、あらかじめ定められた幾何学的しきい値と比較して、要素が1つのオブジェクトまたは複数のオブジェクトに属するかどうかを決定するように構成されてもよい。
少なくとも1つのアプリケーションは、複数の要素のうちのペアの要素の間の1つまたは複数の距離を、少なくとも1つの幾何学的特徴として計算するように構成されてもよい。1つまたは複数の距離は、各ペアの要素の各要素の内容の1つまたは複数の因子の間であってもよい。1つまたは複数の因子は、各ペアの要素の要素に共通の因子、および、各要素を含む幾何学的境界のうちの少なくとも1つを含むことができる。
各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、共通因子は、1つまたは複数のストロークの重心であってもよく、少なくとも1つのあらかじめ定められた幾何学的しきい値は、重心距離しきい値であってもよく、少なくとも1つのアプリケーションは、ペアの要素について決定された重心距離が重心距離しきい値よりも大きい場合、ペアの要素の要素が異なるオブジェクトに属するものと見なされることを決定するように構成される。
少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値であってもよく、少なくとも1つのアプリケーションは、ペアの要素について決定された幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、ペアの要素の要素が異なるオブジェクトに属するものと見なされることを決定するように構成されてもよい。
少なくとも1つのアプリケーションは、各ペアの要素について第1の距離を第1のあらかじめ定められた距離しきい値と比較し、第2の距離を第2のあらかじめ定められた距離しきい値と比較するように構成されてもよい。少なくとも1つのアプリケーションは、第1および第2の距離がいずれも、それぞれ第1および第2のあらかじめ定められた距離しきい値よりも大きい場合、ペアの要素の要素が異なるオブジェクトに属するものと見なされることを決定するように構成されてもよい。
各ペアの要素について、第1の距離は要素の共通因子の間の距離であってもよく、第2の距離は要素の幾何学的境界の間の距離であってもよく、第1のあらかじめ定められた距離しきい値は共通因子距離しきい値であってもよく、第2のあらかじめ定められた距離しきい値は幾何学的境界しきい値であってもよい。各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、共通因子は、1つまたは複数のストロークの重心であってもよい。
少なくとも1つのアプリケーションは、複数の要素のうちの要素の入力の位置的順序および時間的順序のうちの少なくとも1つを決定するように構成されてもよい。少なくとも1つの幾何学的しきい値は、要素の入力の決定された時間的順序を考慮してあらかじめ定められてもよい。
ペアの要素のうちの少なくとも1つのペアについて、少なくとも1つのアプリケーションは、少なくとも1つのペアの1つの要素との第1の位置的順序関係を有する第1の要素、および、少なくとも1つのペアのもう1つの要素との第2の位置的順序関係を有する第2の要素を各々含むペアの要素の間の幾何学的境界距離を決定し、決定された幾何学的境界距離の最小距離を決定することにより、少なくとも1つの幾何学的特徴を決定するように構成されてもよく、少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値を含むことができ、少なくとも1つのアプリケーションは、決定された最小幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、少なくとも1つのペアの要素の要素が異なるオブジェクトに属するものと見なされることを決定するように構成されてもよい。
位置的順序は、方向的であってもよく、第1および第2の方向的関係がそれぞれ、少なくとも1つのペアの要素からの第1および第2の方向である。第1および第2の要素のペアは、第2の要素の幾何学的領域内に第1の要素を含むことができる。各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、幾何学的領域は、1つまたは複数の手書きのストロークの特性に基づいてもよい。
複数のオブジェクトは、1つまたは複数の幾何学的な別個の手書きの数学計算式であってもよく、要素は、複数の数学計算式の各々の手書きの文字、記号、および演算子である。
開示される方法およびシステムのもう1つの態様において、コンピュータ可読プログラムコードがそこに具現された非一時的コンピュータ可読媒体であって、前記コンピュータ可読プログラムコードは、コンピューティングデバイスへの複数のオブジェクトの入力を認識するための方法を実施するために実行されるように適合され、コンピューティングデバイスは、プロセッサと、プロセッサの制御の下に入力を認識するための少なくとも1つのアプリケーションとを備え、アプリケーションを用いて、入力の複数の要素の少なくとも1つの幾何学的特徴を決定するステップと、アプリケーションを用いて、決定された少なくとも1つの幾何学的特徴を、少なくとも1つのあらかじめ定められた幾何学的しきい値と比較して、正または負の結果を決定するステップと、比較が負の結果をもたらす場合、要素が入力の認識において1つのオブジェクトに属するものと見なすステップと、比較が正の結果をもたらす場合、要素が入力の認識において複数のオブジェクトに属するものと見なすステップとを含むことができる。
少なくとも1つの幾何学的特徴は、複数の要素のうちのペアの要素の間の1つまたは複数の距離を含むことができる。1つまたは複数の距離は、各ペアの要素の各要素の内容の1つまたは複数の因子の間であってもよい。1つまたは複数の因子は、各ペアの要素の要素に共通の因子、および、各要素を含む幾何学的境界のうちの少なくとも1つを含むことができる。
各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、共通因子は、1つまたは複数のストロークの重心であってもよく、少なくとも1つのあらかじめ定められた幾何学的しきい値は、重心距離しきい値であってもよく、比較は、ペアの要素について決定された重心距離が重心距離しきい値よりも大きい場合、正の結果をもたらすことができ、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値であってもよく、比較は、ペアの要素について決定された幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、正の結果をもたらすことができ、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。
比較は、各ペアの要素について第1の距離を第1のあらかじめ定められた距離しきい値と比較し、第2の距離を第2のあらかじめ定められた距離しきい値と比較するステップを含むことができる。比較は、第1および第2の距離がいずれも、それぞれ第1および第2のあらかじめ定められた距離しきい値よりも大きい場合、ペアの要素について正の結果をもたらし、ここでペアの要素の要素は、異なるオブジェクトに属するものと見なされる。
各ペアの要素について、第1の距離は要素の共通因子の間の距離であってもよく、第2の距離は要素の幾何学的境界の間の距離であってもよく、第1のあらかじめ定められた距離しきい値は、共通因子距離しきい値であってもよく、第2のあらかじめ定められた距離しきい値は、幾何学的境界しきい値であってもよい。
各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、共通因子は、1つまたは複数のストロークの重心であってもよい。各ペアの要素の要素は、幾何学的に隣接していてもよい。非一時的コンピュータ可読媒体は、アプリケーションを用いて、複数の要素のうちの要素の入力の位置的順序および時間的順序のうちの少なくとも1つを決定するステップをさらに含むことができる。
少なくとも1つの幾何学的しきい値は、要素の入力の決定された時間的順序を考慮してあらかじめ定められてもよい。
ペアの要素のうちの少なくとも1つのペアについて、少なくとも1つの幾何学的特徴を決定するステップは、アプリケーションを用いて、少なくとも1つのペアの1つの要素との第1の位置的順序関係を有する第1の要素、および、少なくとも1つのペアのもう1つの要素との第2の位置的順序関係を有する第2の要素を各々含むペアの要素の間の幾何学的境界距離を決定するステップと、アプリケーションを用いて、決定された幾何学的境界距離の最小距離を決定するステップとを含むことができ、少なくとも1つのあらかじめ定められた幾何学的しきい値は、幾何学的境界距離しきい値を含むことができ、比較は、決定された最小幾何学的境界距離を幾何学的境界距離しきい値と比較するステップを含むことができ、比較は、決定された最小幾何学的境界距離が幾何学的境界距離しきい値よりも大きい場合、正の結果をもたらすことができ、ここで少なくとも1つのペアの要素は、異なるオブジェクトに属するものと見なされる。
位置的順序は、方向的であってもよく、第1および第2の方向的関係がそれぞれ、少なくとも1つのペアの要素からの第1および第2の方向である。第1および第2の要素のペアは、第2の要素の幾何学的領域内に第1の要素を含むことができる。
各ペアの要素の各要素は、1つまたは複数の手書きのストロークを表すことができ、幾何学的領域は、1つまたは複数の手書きのストロークの特性に基づく。
複数のオブジェクトは、1つまたは複数の幾何学的な別個の手書きの数学計算式であってもよく、要素は、複数の数学計算式の各々の手書きの文字、記号、および演算子である。
以下の詳細な説明において、関連する教示の十分な理解を提供するために、多数の具体的な詳細が例として説明される。しかし、本発明の教示が、そのような詳細を伴うことなく実施され得ることは、当業者には明らかである。その他の例において、よく知られている方法、手順、コンポーネント、および/または回路については、本発明の教示の態様を必要以上に不明瞭にすることを避けるため、比較的高レベルにおいて、詳細を伴うことなく説明されている。上に、下に、上方、下方、最低、最高、横、縦などのような、方向的特徴の参照および説明は、認識されるべき入力が行われる入力面に適用されるデカルト座標系に関して行われる。
本明細書において説明されるさまざまな技術は、概して、複数の手書きオブジェクト認識に関する。本明細書において説明されるシステムおよび方法は、前処理および認識のプロセスを通じてコンピューティングデバイスへのユーザの自然な筆記および描画スタイル入力を認識するために使用されてもよい。コンピューティングデバイスへのユーザの入力は、コンピューティングデバイスに接続されたもしくはコンピューティングデバイスのタッチセンサー式の画面のような入力面を介して、または、コンピューティングデバイスに接続されたデジタルペンもしくはマウスのような入力デバイスを介して行われてもよい。さまざまな例が、いわゆるオンライン認識技法を使用する手書き入力の認識に関して説明されているが、デジタルインクではなく画像が認識されるオフライン認識(ICR)のような、認識のためのその他の形態の入力への適用も可能であることを理解されたい。
図1は、例示のコンピューティングデバイス100のブロック図を示す。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップ、タブレットPC、eブックリーダー、携帯電話、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、インタラクティブホワイトボード、全地球測位システム(GPS)ユニット、エンタープライズデジタルアシスタント(EDA)、携帯情報端末(PDA)、ゲームコンソールなどであってもよい。コンピューティングデバイス100は、少なくとも1つの処理要素、何らかの形態のメモリ、ならびに入力および/または出力(I/O)デバイスを含む。コンポーネントは、コネクタ、配線、バス、ケーブル、バッファ、電磁リンク、ネットワーク、モデム、変換器、IRポート、アンテナ、または当業者に知られているその他のもののような、入力および出力を通じて相互に通信する。
コンピューティングデバイス100は、画像、テキスト、およびビデオのようなデータを、コンピューティングデバイスから出力するための、少なくとも1つのディスプレイ102を有する。ディスプレイ102は、LCD、プラズマ、LED、iOLED、CRT、または当業者に知られているタッチセンシティブであるかまたはそれ以外の任意の他の適切な技術を使用することができる。ディスプレイ102の少なくとも一部は、少なくとも1つの入力面104と共同設置される。入力面104は、抵抗性、弾性表面波、容量性、赤外線グリッド、赤外線アクリルプロジェクション、光学イメージング、分散信号技術、音響パルス認識、またはユーザ入力を受信するための当業者に知られている任意の他の適切な技術のような技術を採用することができる。入力面104は、その境界を明確に識別する永続的またはビデオ生成の境界によって領域が定められてもよい。
入力面104に加えて、コンピューティングデバイス100は、ローカルインターフェイスを介して通信可能に結合される1つまたは複数の追加の入出力デバイス(または周辺機器)を含むことができる。追加の入出力デバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダー、レーザーリーダー、無線周波数デバイスリーダー、または当業者に知られている任意の他の適切な技術のような入力デバイスを含むことができる。さらに、入出力デバイスは、プリンタ、バーコードプリンタ、または当業者に知られている任意の他の適切な技術のような出力デバイスを含むことができる。さらに、入出力デバイスは、変調器/復調器(別のデバイス、システム、またはネットワークにアクセスするための、モデム)、無線周波数(RF)またはその他の送受信機、電話インターフェイス、ブリッジ、ルータ、または当業者に知られている任意の他の適切な技術のような、入力および出力の両方を通信する通信デバイスを含むことができる。ローカルインターフェイスは、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信器のような、通信を可能にするための追加要素を有することができ、これらは簡略にするために省略されているが当業者には知られている。さらに、ローカルインターフェイスは、その他のコンピュータコンポーネント間の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含むことができる。
コンピューティングデバイス100はまた、プロセッサ106を含むが、これはソフトウェア、特にメモリ108に格納されているソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、任意のカスタムメードまたは市販の汎用プロセッサ、中央演算処理装置(CPU)、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態)、マクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、状態マシン、または当業者に知られているソフトウェア命令を実行するように設計されたこれらの任意の組合わせであってもよい。適切な市販のマイクロプロセッサの例は、Hewlett−Packard CompanyのPA−RISCシリーズマイクロプロセッサ、Intel Corporationの80×86またはPentiumシリーズマイクロプロセッサ、IBMのPowerPCマイクロプロセッサ、Sun Microsystems,Inc.のSparcマイクロプロセッサ、Motorola Corporationの68xxxシリーズマイクロプロセッサ、DSPマイクロプロセッサ、またはARMマイクロプロセッサである。
メモリ108は、揮発性メモリ素子(たとえば、ランダムアクセスメモリ(DRAM、SRAM、またはSDRAMのような、RAM))、および不揮発性メモリ素子(たとえば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気または光テープ、メモリレジスタ、CD−ROM、WORM、DVD、Redundant Array of Inexpensive Disks(RAID)、さらに直接アクセスストレージデバイス(DASD))の任意の1つまたは組み合わせを含むことができる。さらに、メモリ108は、電子、磁気、光学、および/またはその他のタイプのストレージ媒体を組み入れることができる。メモリ108は、さまざまなコンポーネントが相互に離れて位置しているがプロセッサ106によってもアクセスされ得る分散アーキテクチャを有することができる。さらに、メモリ108は、コンピューティングデバイス100によってリモートにアクセス可能な、サーバまたはクラウドベースシステムにおけるように、デバイスから離れていてもよい。メモリ108は、プロセッサ106に結合されて、プロセッサ106がメモリ108から情報を読み取り、メモリ108に情報を書き込むことができるようになっている。代替策において、メモリ108は、プロセッサ106に内蔵型であってもよい。もう1つの例において、プロセッサ106およびメモリ108はいずれも、単一のASICまたはその他の集積回路に属してもよい。
メモリ108内のソフトウェアは、オペレーティングシステム110、アプリケーション112、および手書き認識(HWR)システム114を含み、これらは各々1つまたは複数の別個のコンピュータプログラムを含むことができ、各々のプログラムは論理機能を実施するための実行可能命令の順序付きリストを備える。オペレーティングシステム110は、アプリケーション112およびHWRシステム114の実行を制御する。オペレーティングシステム110は、WEBOS、WINDOWS(登録商標)、MACおよびIPHONE OS(登録商標)、LINUX、ならびにANDROIDのような、任意の専有オペレーティングシステムまたは市販のオペレーティングシステムであってもよい。その他のオペレーティングシステムもまた使用されてもよいことを理解されたい。
アプリケーション112は、本明細書において説明される手書き認識、異なる機能、またはその両方に関連してもよい。アプリケーション112は、製造時にコンピューティングデバイス100に提供されているプログラムを含み、製造後にコンピューティングデバイス100にアップロードまたはダウンロードされるプログラムをさらに含むことができる。一部の例は、テキストエディタ、電話ダイアラー、コンタクトディレクトリ、インスタントメッセージング機能、コンピュータ支援設計(CAD)プログラム、電子メールプログラム、ワードプロセッシングプログラム、Webブラウザ、およびカメラを含む。
サポートおよび準拠の機能を伴う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の前述の通信入出力デバイスを使用する通信リンクを通じてコンピューティングデバイス100によってリモートにアクセス可能である。
入力面104上、または入力面104を介して入力されたストロークは、デジタルインクとしてプロセッサ106によって処理される。ユーザは、指または、入力面での使用に適したペンもしくはスタイラスのような何らかの器具でストロークを入力することができる。ユーザはまた、入力面104付近の動きを感知する技術が使用されている場合、入力面104の上でジェスチャーを行うことによって、またはマウスもしくはジョイスティックのようなコンピューティングデバイス100の周辺デバイスを用いて、ストロークを入力することができる。ストロークは、少なくともストローク開始位置、ストローク終了位置、およびストローク開始と終了位置を結ぶ軌道によって特徴付けられる。異なるユーザが、同じオブジェクト、たとえば文字、形状、または記号を、わずかに変形させて自然に書くこともあるので、本発明のシステムは、各オブジェクトが入力され、しかも正しいかまたは所望のオブジェクトとして認識され得る多種多様な方法に対処する。
図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によって抽出される特徴の分類をもたらし、セグメンテーショングラフの各ノードの確率または認識スコアを伴う要素候補のリストを出力する。この認識タスクに対処するために使用され得る多くのタイプの分類子があり、たとえばサポートベクターマシン(Support Vector Machine)、隠れマルコフモデル(Hidden Markov Model)、または多層パーセプトロン(Multilayer Perceptron)、深層(Deep)、畳み込み(Convolutional)もしくは再帰型(Recurrent)ニューラルネットワークのようなニューラルネットワークがある。選択は、タスクに所望される複雑性、精度、および速度に依存する。
言語エキスパート126は、言語モデル(たとえば、文法またはセマンティクス)を使用してセグメンテーショングラフのさまざまな軌道について言語的意味を生成する。エキスパート126は、言語情報130に従ってその他のエキスパートによって提案された候補をチェックする。言語情報130は、用語集、正規表現などを含むことができる。言語エキスパート126は、最善の認識軌道を見出すことを目指す。1つの例において、言語エキスパート126は、言語情報130の内容を表す最終状態オートマトン(決定性FSA)のような言語モデルを探索することによってこれを行う。用語集の制約に加えて、言語エキスパート126は、要素の所与のシーケンスが指定された言語にどの程度頻繁に出現するか、または固有のユーザによって使用されるかをモデリングする統計情報を使用して、セグメンテーショングラフの所与の軌道の解釈の言語学的尤度を評価することができる。
本明細書において説明されるシステムおよび方法は、多数の計算式を認識するためにHWRシステム114を使用する。多数の計算式は、1つまたは複数のページ上の複数の計算式の配置として定義される。計算式は、リンクされてもよいか(たとえば、証明の異なる段階を示す、数列または連立計算式)、リンクされなくてもよい(たとえば、トピックのいくつかの課題)。
図4は、手書きの数学計算式または式401〜404の縦方向リスト400の例を示すが、これは入力面104を介して入力されたものである。各計算式は、別々のライン405〜408上に記述されている(これらのラインはユーザ入力を導くためにディスプレイ102に実際に表示されてもよいが、これは必須ではない)。各計算式は、その他の計算式とは無関係であり、完全な関連性のない演算である。さらに、各計算式は、比較的単純であり、単一数値の結果を伴う2つの数値の除算または乗算演算である。
最初の手書きの計算式401が存在した場合に限り、たとえば、認識段階118は、そのエキスパートを使用して複数の仮説を作成しテストするであろう。計算式401内の各要素、つまり「3」、「5」、「÷」、「7」、「=」および「5」の候補は、検討されて、評点がつけられて、要素の認識された活字バージョンの出力120、つまり「35÷7=5」をもたらす。仮説を作り出すために、各要素の個々のセグメント化されたストロークのさまざまな連結を含む、多数の候補が検討される。
しかし、後続の手書きの計算式402〜404が、複数の式があるという明示的な認識、または特定の数学演算子の検出もなく図4の例に存在しているので、認識段階118は、そのエキスパートを使用して、第1の計算式401内の要素だけではなく、4つの計算式すべての要素について複数の仮説を作り出してテストすることが必要となり、それは処理のレベルを増大させて、可能な認識精度に影響を及ぼすことになる。この余計な処理は、数学または算術計算式が2次元(2D)、たとえば横方向と縦方向であるので、必要となる。これはテキストとは異なっており、テキストの各行はほぼ1次元(1D)、たとえば横方向であり(たとえば、言語エキスパートによって処理され得る上付き文字および下付き文字は例外である)、数行にわたり分割される(たとえばハイフネーション)語句の存在下でテキスト認識中に行間挿入の仮説のみが作成されてテストされるようになっている。したがって、単に複数行があるからといって、複数の計算式が存在するとは想定され得ない。たとえば、計算式401は、「35」を分子として、「7」を分母として、「÷」記号を境界線として記述されている場合もある。次いで、計算式401が、その形式で複数の縦行を占有することになる。
図5は、複数の手書きの計算式の縦方向リスト500を示し、複数の計算式502〜504にわたる初期計算式501の再表示が入力である。分かるように、各計算式501〜504は、横方向にずれている要素および縦方向にずれている要素を共に含む。
これはまた、図面、幾何学的スケッチ、チャート、グラフ、ダイアグラム、テーブル、回路、音楽、化学式などのような、オブジェクトの2D系の任意の手書きの入力に適用され、ここで複数のオブジェクトが入力され、別個に認識される必要がある。したがって、無関係な仮説を作り出す前に複数の2Dオブジェクトの存在を検出することは、認識処理オーバーヘッドの低減(たとえば、時間およびメモリリソース)、および認識精度の増大(たとえば、意図されていないが、それ以外の場合エキスパートモデルに基づく推定される候補がテストされない)を支援する。
複数の入力オブジェクトを検出する1つの方法は、固有のユーザアクションが必要になるものであるが、新しい書き込み領域を作成すること、新しいオブジェクト/行の物理または仮想ボタンをタップすること、特定の手書きのジェスチャー、たとえば下方ストローク、を入力すること、またはその他の対話、たとえばオブジェクトの入力の終了を指示するための入力面のタップのようなものがある。しかし、そのような固有のユーザアクションは、自然の手書きには含まれていないものなので、ユーザにとって満足なエクスペリエンスをもたらすことはない。複数の2Dオブジェクトの認識プロセスは、システムのユーザエクスペリエンスを低下させるか、または認識される入力のタイプに制約を課すような方法で影響を及ぼされてはならない。たとえば、図4および図5の等号「=」のような、計算式内の数学演算子の記号の認識は、複数の計算式の入力を検出するために使用されてもよい。しかし、この想定は、ユーザが1行に複数の計算式を使用すること、たとえば(x+1)(x+2)=x2+2x+x+2=x2+3x+2、または演算子で計算式を始めること、たとえば論証の展開もしくは問題の解決における第1の要素として「=」を記述すること、または前の行に記述された計算式の続きとして第1の要素として「+」を記述すること、を制限することになる。
縦方向リストとして複数の2Dオブジェクト入力を検出するための認識段階118のもう1つの例は、入力オブジェクトの要素の幾何学的特徴を使用して縦方向にずれている手書きのオブジェクトの間の縦方向空きスペース(つまり、手書きのストロークが入力されない入力面104のスペース)を決定することを含む。あらかじめ定められたサイズ、たとえばしきい値よりも大きい縦方向空きスペースが検出される。これは、入力をセクションに「切り分け」て、しきい値を超える切片を、計算式のような個々のオブジェクトの間のスペースであるとして、分類またはフィルタリングするプロセスである。複数の行にわたるすべての要素は、認識段階118のエキスパートによって、後続の処理において同じ計算式に属するものとは見なされない。これは、作成されテストされる仮説の数を大幅に低減する。分類は、1つまたは複数の幾何学的コストを割り振ることによって実行される。しきい値は、(縦方向)幾何学的コストを含み、これは相当数の誤検知を返すことなく複数のオブジェクト検出を最適化する適切なしきい値レベルを決定するようにフィルタリングプロセスを最適化またはトレーニングするために、フィルタリングが実行され得るように調整可能である。この例は、同様に、横方向に適用可能である。
図6は、入力面104の縦方向にずれている複数のオブジェクト入力600の例を示し、図7は、複数のオブジェクト入力600を認識するための例示の方法700の流れ図である。複数のオブジェクト入力600は、入力された1つまたは複数の手書きのストロークを含むボックスとして示されている複数の要素601〜609を含む。ボックスは、要素の各ストロークまたはストロークのセットの範囲を囲む境界ボックスであってもよい。各々の要素601〜609は、その他の各々の要素601〜609に関して横方向(「x」方向と指定される)および/または縦方向(「y」方向と指定される)のずれを伴って記述されている。しかし、要素601〜604は概して、第1の横方向グループ610に(つまり、破線の横線aに沿って)記述され、要素605〜609は概して、第2の横方向グループ611(つまり、破線の横線a’に沿って)記述され、線aは線a’から縦方向にずれている。要素の第1のグループは、第1の計算式を表すことができ、要素の第2のグループは第2の計算式を表すことができる。
手書きのストロークの入力は受信され(ステップ701)、要素が決定される(ステップ702)。次いで、要素のグループが確立され得るかどうかが決定される(ステップ703)。確立され得ない場合、すべての入力ストロークを使用して仮説を作成するために、要素は次の段階に送信される(ステップ704)。要素がグループ化され得る場合、境界ボックスが各グループの周囲に確立される(ステップ705)。図6において、第1の境界ボックス612は、要素の第1のグループ610の周囲に確立され、第2の境界ボックス613は、要素の第2のグループ611の周囲に確立される。これらのグループ化および境界ボックスは、さらに多くのストロークが受信される場合に再評価および調整される(ステップ706)。
次いで、隣接するグループが存在するかどうかが決定される(ステップ707)。存在する場合、隣接する境界ボックスの辺に「カット」ラインが、アプリケーションに応じてyおよび/またはx方向に確立される(ステップ708)。図6において、見込まれる第1の横方向カットラインbは、境界ボックス612の最底辺(つまり、y方向の)に確立され、見込まれる第2の横方向カットラインb’は、境界ボックス613の最高辺(つまり、y方向の)に確立される。隣接するカットラインの間の距離の幾何学的特徴は、次の認識段階において使用する幾何学的コストを決定するために計算/測定されて、ピクセルカウントにより行われてもよい(ステップ709)。次いで、計算された距離は、あらかじめ定められたしきい値距離と比較され(ステップ710)、ここでしきい値の事前決定は、入力面104のピクセル解像度を考慮して行われてもよい。図6において、たとえば、カットラインbとb’の間の距離cは、2つの要素グループの間の空きスペースの高さが、2つのグループの間の最も近い縦方向距離であることを表し、これは第1のグループ610の最下位の要素、つまり要素603と、第2のグループ611の最上位の要素、つまり要素607との間の距離である。
幾何学的コストがしきい値を上回る場合、第1および第2のグループは、2つの計算式のような、2つの別個の2Dオブジェクトを表し、次の認識段階の仮説では、作成またはテストされている隣接する複数のオブジェクトの要素を伴わない(ステップ711)。これは、認識を簡略化して、認識速度を高める。一方、幾何学的コストがしきい値を下回る場合、決定されているグループのすべての要素の仮説が、次の認識段階によって作成およびテストされる必要がある(ステップ712)。
図7に示されている例は、手書きのストロークが入力される際に実行され得る反復プロセスである。あるいは、プロセスは、前の入力情報で実行されてもよく、ステップ706が省略されて、ステップ707〜712の幾何学的コストテストを開始する前に、ステップ701〜705がすべてのストロークに対して実行されるようになっている。したがって、要素の位置的順序の決定を経由する、複数の要素の入力の決定および要素のグループ化は、複数のオブジェクト認識プロセスの前に実行される。
別個の縦方向にずれているオブジェクトを決定するために幾何学的コストのみが使用される場合、図6および図7において説明されているしきい値の設定は、高レベルの信頼性が達成されるように行われる。しかし、幾何学的コストしきい値は、アプリケーションまたは手書きの入力のタイプ、および必要とされる信頼性レベルに応じて調整可能である。たとえば、単一の計算式内の、数学記号の手書きの入力の場合、各ストローク/要素のサイズおよび相対的位置決めは大きく異なる可能性がある。図8におけるように、いくつかの要素の縦方向の重複が生じる可能性があり、複数行にわたる縦方向のずれも、生じる可能性がある。そのような場合、縦方向幾何学的コストのみを複数の計算式入力の標識として許容するために、信頼性レベルがより高い必要がある。幾何学的コストしきい値の調整は、ルックアップテーブルまたは類似のシステムを通じて提供されてもよく、そこで特定のしきい値が、アプリケーション、およびストロークのサイズ、ストロークの数などのようなその他の因子に基づいて事前定義される。
上記で説明されている例において、縦方向に分割された入力は、横方向にずれた要素のグループを確立することによって検索される。これらのグループは、最初に、横方向に隣接する要素の間の横方向の空きスペースの検索を、それ以上横方向に隣接する要素がなくなるまで実行することによって確立されてもよい。それらの要素は、グループと見なされ、境界ボックスは、xおよびy方向の両方にすべての要素を含むようにその境界の周囲に確立される。このグループ化は、横方向距離しきい値または横方向幾何学的コストを設定することにより、詳細化されてもよく、大きい距離をあけて横方向にずれている要素または要素のグループが一緒にグループ化されない。たとえば、数学計算式は、単一の式で大きな隙間を有することはないと予想され得るが、図面の入力において図面要素間の大きい隙間は、幾何学的情報を目的とすることがある。
グループ化はまた、縦方向に重複する横方向にずれた要素、たとえば要素601〜604の横方向の関係を含む縦方向の関係ではなく、位置的関係、または幾何学的特徴のような一般的な位置的相対性に基づいて行われてもよい。このグループ化は、共通のトレンドライン、またはy方向の仮想重心を共有する要素に基づいてもよい。これは、ストローク自体の共通幾何学的特徴(たとえば、重心)または要素の共通もしくは非共通幾何学的特徴(たとえば、境界ボックスの辺、各境界ボックスのy方向範囲の平均中心線、図6の横線aおよびa’、または要素自体のさまざまな辺)に基づいてもよい。さらに、幾何学的コストまたは複数の幾何学的コストを確立するために、共通線aとa’の間の縦方向距離dが、縦方向距離cの代わりに、またはこれに加えて使用されてもよい。
認識段階118の上記のステップは、手書きの入力を個々のオブジェクトに切断する可能性の数(および処理時間)を低減するという目的で、しきい値に基づく「前処理」または「フィルタリング」と見なされてもよい。したがって、このプロセスは、コンピュータデバイス100に応じて、前処理116または認識段階118のいずれにおいて実行されてもよい。このフィルタリングに適用される信頼性は、アプリケーション、および手書きの入力のタイプ、ならびに望ましい精度のレベルに依存する。さらに、このフィルタリングはまた、計算式の縦方向リストのような、複数のオブジェクトを認識するための意志決定プロセスの一部であってもよい。認識段階118は、たとえば文法および言語モデルを使用して、さまざまなセグメンテーション仮説を作成および探索するためにその他の因子を考慮して補足されてもよい。したがって、しきい値は、最適化のための幾何学的コスト以上のものを考慮に入れることができる。
たとえば、しきい値は、ストローク/要素の時間的または時間順序エントリを考慮に入れることができる。入力の時間順序を考慮に入れることによって、フィルタリングの成功が高められ、たとえば第1のグループから縦方向にずらされた1つまたは複数の要素の第2のグループが後に続く要素のグループの横方向の入力が、複数の計算式のような潜在的な複数のオフジェクトエントリを示す。一方、第1のグループから横方向にずらされた1つまたは複数の要素の入力が後に続く要素のグループの縦方向の入力が、縦方向の関数、たとえば除算を有する単一の計算式を示すことができる。
図9は、時間順序を使用する図6の入力600を示す。要素601〜609は、それぞれ、時間順序t1〜t9の入力である。入力タイミングの決定は、当業者には知られており、オペレーティングシステム110のシステムクロックから決定される、たとえばペンアップのような、ストロークの完了のタイムスタンプの監視および格納を含むことができる。この時間順序から、時間コストは、認識段階118の次のステップの幾何学的コストで補足されてもよい。
たとえば、要素604は、要素605から縦方向にずれており、要素604は、要素605から比較的大きい横方向距離だけ横方向にずれている。同様の横方向距離が、要素601と604の間にあるが、そこには介在する要素602および603がある。この比較的幾何学的な情報のすべては、要素605が新しいオブジェクトに属するか、または少なくとも要素グループ610には属していないかどうかを決定するために使用されてもよい。しかし、幾何学的コストは、幾何学的コストしきい値を下回るが、近似している場合もあり、システムは複数の計算式の検出を確信してはいない。システムが時間順序情報を使用して要素604が時間t5における要素605の入力の直前の時間t4における入力であったと決定する場合、時間コストである時間順序の差は、幾何学的コストが幾何学的コストしきい値を超えるように押し上げるために使用されてもよい。幾何学的コストと時間コストが比較される結合されたしきい値が設定されてもよい。重み付けしきい値もまた、時間順序に基づいてさまざまな重み付けを幾何学的コストしきい値に適用するために使用されてもよい。
その他の因子もまた、結合されたしきい値の設定および/またはしきい値との比較のための計算されたコストの調整を通じて複数のオブジェクト検出を洗練するために使用されてもよい。これらの因子は、要素の絶対および相対位置(たとえば、隣接する要素の間の重心または相対距離の決定)を含み、これは時間順序が位置順序とそろわない場合に非常に有用となり得る(たとえば、図9において、要素604が要素602および603よりも先に入力された場合であり、これは取り込まれる演算および公式のタイプに起因して手書きの計算式入力において頻繁に生じる)。さらに、言語エキスパートの言語モデルは、特定の要素の入力およびその他の要素に対するそれらの相対的な配置が、単一または複数のオブジェクトを示すかどうかを決定するために使用されてもよく、たとえば、数学または算術言語モデルは、1つまたは複数の隣接する要素から縦方向にずれている長い横方向要素(たとえば、単一のストローク)を、複数の計算式ではなく除算を示すものとして解釈することができる。さらに、個々の隣接する/グループ化された要素におけるストロークの数もまた、単独もしくは言語モデルを配慮して考慮されてもよい。たとえば、比較的少ない数のストロークは、単一オブジェクトの入力を示すことがあるが、比較的多い数のストロークは、複数のオブジェクトを示すことがある。
上記で説明されている、横方向にずれた要素のグループ化に基づくオブジェクトの縦方向リストの認識は、後続の認識処理における認識の仮説を作成するときにすべての縦方向に分離されたオブジェクトの間の幾何学的関係を考慮しないことを通じて処理を低減する目的を有する。処理速度はユーザエクスペリエンスにとって重要であるが、認識の精度も同様に重要である。通常、手書き認識システムは、速度と精度との間で妥協するものであり、精度を高めることで通常、処理時間を増大させ、処理時間を短縮することで通常、精度が低下する。効果的なシステムを提供するために、これらの因子の間のバランスが見出される必要がある。代替策において、以下の例は、複数の幾何学的コストを含み、時間と精度の間のより良好なバランスをもたらす。
図10A〜図10Cは、縦方向にずれている複数のオブジェクト入力1000の例示の認識段階118におけるステップを示す。図11A〜図11Dは、入力1000のもう1つの要素に適用される例示の認識段階におけるステップを示す。図12Aおよび図12Bは、図11の要素に適用される代替的な例示の認識システムおよび方法におけるステップを示す。
入力1000は、1つまたは複数の手書きの入力ストロークを含むボックスとして示されている複数の要素1001〜1006を含む。ボックスは、要素の各ストロークまたはストロークのセットの範囲を囲む境界ボックスであってもよい。各々の要素1001〜1006は、その他の各々の要素1001〜1006に関して横方向(「x」方向と指定される)および/または縦方向(「y」方向と指定される)ずれを伴って記述されている。要素1001〜1006が1つまたは複数の縦方向にずれているオブジェクトに属するかどうかを認識するために、プロセス1300は、図13の流れ図に示されるように実行される。
このプロセスは、複数の手書きのストロークの入力を表す、存在する要素の数n(つまり、現在の例においてn=6)を決定することから開始する(ステップ1301)。これらのn個の要素のy順序は、y方向のエントリの位置的または方向的順序であり、次いでY1からYnとして決定される(ステップ1302)。図10Aに示される現在の例において、要素1001〜1006はそれぞれ、y順序Y1〜Y6を有するものと決定される。要素1001はy順序Y1を有し、要素1006はy順序Y6を有する。次いで、増分パラメータiは、後に使用するため1に設定される(ステップ1303)。次いで、2つのテスト、テスト1(ステップ1304)およびテスト2(ステップ1305)が、y順序の要素に実行される。図13において、テスト1およびテスト2は、並行して実行されるように示されているが、これらは任意の順序で逐次に実行されてもよい。これらの複数のテストの目的は、n個の要素のさまざまな幾何学的関係についてさまざまな幾何学的コストを決定すること、および複数のオブジェクトが存在するかどうかの決定を容易にするためにさまざまなしきい値に対してこれらのコストをテストすることであり、ここでシステムによる幾何学的コストの決定はさまざまな速度および精度のレベルを伴う。テスト1(1304)は、流れ図の図14を参照して後段においてさらに詳細に説明され、テスト2(1305)は、流れ図の図15を参照して後段においてさらに詳細に説明される。
テスト1およびテスト2は、(ステップ1303によって指定された、第1の要素、たとえばY1で始まる)各々連続するy順序要素について繰り返し実行される。テスト1およびテスト2の幾何学的コストの決定は、現在のy順序要素の最底辺(y方向)、つまりその要素とその下の要素の間に、「カット」ラインが作成されるべきかどうかについて決定できるようにするために、併せて考慮され(ステップ1306)、それにより縦方向にずれているオブジェクトの間の境界を定義する(ステップ1307)。このカットラインの作成は、同じオブジェクトにおそらくは属すと見られる要素を囲む境界ボックスを定義するステップを含むことができ、それによりさまざまな幾何学的コストが逐次y順序の反復における対応する信頼性しきい値を下回ると決定された要素をグループ化する。この決定が行われると、パラメータiはi+1に増分され(ステップ1308)、処理は、入力の最後の要素がテストされるまで、次の連続する要素についてテスト1およびテスト2を実施するように戻る。
テスト1は、(第1の)幾何学的コストが(第1の)あらかじめ定められたしきい値よりも大きいかどうかを決定するステップを伴う。図14に示されているように、これはテストされているy順序要素(つまりYi)の後に次の連続するy順序要素(つまりYi+1)が存在するかどうかを最初に決定することによって行われる(ステップ1401)。存在しない(つまり、最後の要素がテストされている)場合、(前)処理は終了し(ステップ1402)、認識段階118は、要素の実際の内容を認識する次のステップへと進む。さらなるy順序要素が存在する場合、現在のy順序要素(Yi)および次の連続するy順序要素(Yi+1)の重心の間の(第1の)縦方向距離eiが決定される(ステップ1403)。この距離は、第1の幾何学的コストを表し、ピクセルカウントによって計算または測定されてもよく、ここで第1のしきい値の事前決定は入力面104のピクセル解像度を考慮して行われてもよい。たとえば、図10Bにおいて、要素1002および要素1003の重心の間の縦方向距離e2が考慮されており、図11Aにおいて、要素1003および要素1004の重心の間の縦方向距離e3が考慮されている。
次いで、複数のオブジェクトがあることの信頼性の第1のテストとして、現在の第1の幾何学的コストeiが、(第1の)あらかじめ定められた(重心)しきい値距離と比較される(ステップ1404)。このステップの結果は、「はい」または「いいえ」の決定である。連続する要素の大きい重心分離が存在する場合、高レベルの信頼性が達成されるように第1のしきい値の設定が行われてもよい。たとえば、図10Bにおいて、要素1002および1003は、y方向に重複し、これらの要素の間の距離e2は比較的小さい。これらの要素が別個の縦方向にずれているオブジェクトに属することの信頼性は皆無かそれに近いはずである(距離eiが絶対値と見なされることに留意されたい、さもなければ図10Bにおいて距離e2が負の値をとることになる)。これに対して図11Aにおいて、要素1003および1004は多少の余白によりy方向に重複しておらず、これらの要素の間の重心距離e3は比較的大きい。これらの要素が別個の縦方向にずれているオブジェクトに属することの、少なくとも妥当な量の信頼性があるはずである。ステップ1404の決定、たとえば「はい」または「いいえ」、および第1の幾何学的コスト値eiは、ステップ1306における複数のテストプロセスによる処理のためにテスト1によって出力される(ステップ1405)。
テスト2は、(第2の)幾何学的コストが(第2の)あらかじめ定められたしきい値よりも大きいかどうかを決定するステップを伴う。図15に示されているように、これはテストされているy順序要素(つまりYi)の後に次の連続するy順序要素(つまりYi+1)が存在するかどうかを最初に決定することによって行われる(ステップ1501)。存在しない(つまり、最後の要素がテストされている)場合、(前)処理は終了し(ステップ1502)、認識段階118は、要素の実際の内容を認識する次のステップへと進む。これは、テスト1のステップ1401と類似しており、このステップは、所与の要素におけるテスト1およびテスト2のパフォーマンスのための必須条件のステップとして結合されてもよい。さらなるy順序要素が存在する場合、現在のy順序要素(Yi)と次の連続するその後のy順序要素(Yi+1からYn)について定義された境界ボックスとの間の(第2の)縦方向距離fiが決定される(ステップ1503)。この(幾何学的境界)距離は、第2の幾何学的コストを表し、ピクセルカウントによって計算または測定されてもよく、ここで第2のしきい値の事前決定は入力面104のピクセル解像度を考慮して行われてもよい。
たとえば、図10Cにおいて、要素1002の最底辺(つまり、y方向)と要素1003〜1006を囲む境界ボックス1007の最高辺との間の縦方向距離f2が考慮されている。図11Bにおいて、要素1003の最底辺と要素1004〜1006を囲む境界ボックス1107の最高辺との間の縦方向距離f3が考慮されている。距離の計算に、要素の代替のy定義の辺および境界ボックスが使用されてもよいことに留意されたい。さらに、境界ボックスは作成される必要はない。逆に、考慮中のy順序要素(Yi)のy定義の辺において「カット」ラインが作成されてもよく、次の連続するy順序要素のy定義の辺までの距離が、第2の幾何学的コストを決定するために計算されてもよい。
次いで、複数のオブジェクトについての信頼性の第2のテストとして、現在の第2の幾何学的コストfiが、(第2の)あらかじめ定められた(隙間)しきい値と比較される(ステップ1504)。このステップの結果は、「はい」または「いいえ」の決定である。連続する要素の間に大きい隙間が存在する場合、高レベルの信頼性が達成されるように第2のしきい値の設定が行われてもよい。たとえば、図10Cにおいて、要素1002および1003は、y方向に重複し、これらの要素の間の距離f2は比較的小さい。これらの要素が別個の縦方向にずれているオブジェクトに属することの信頼性は皆無かそれに近いはずである。これに対して図11Bにおいて、要素1003および1004は多少の余白によりy方向に重複しておらず、これらの要素の間の距離f3は比較的大きい。ここで、これらの要素が別個の縦方向にずれているオブジェクトに属することの、少なくとも妥当な量の信頼性があるはずである。ステップ1504の決定、たとえば「はい」または「いいえ」、および第2の幾何学的コスト値fiは、ステップ1306における複数のテストプロセスによる処理のためにテスト2によって出力される(ステップ1505)。
図13に戻ると、ステップ1306において、テスト1およびテスト2の決定の出力は、複数の計算式のような、複数のオブジェクトが存在するかどうかについて決定が行われ得るようにするために結合される。「カット」ラインが要素1002の下に作成されるべきかどうかの信頼性がテストされる図10Bおよび図10Cの例について、テスト1の結果は、第1の幾何学的コストが第1のしきい値よりも大きくないことであってもよく、たとえばステップ1404は「いいえ」を返し、テスト2の結果は、第2の幾何学的コストが第2のしきい値よりも大きくないことであってもよく、たとえばステップ1504は「いいえ」を返した。両方のテストが「いいえ」を返したので、ステップ1307において「カット」の決定は、要素1002の下に「カット」を作成せず、図10Aに示されるようにカットは全くない。
これに反して、「カット」ラインが要素1003の下に作成されるべきかどうかの信頼性がテストされる図11Aおよび図11Bの例について、テスト1の結果は、第1の幾何学的コストが第1のしきい値よりも大きいことであってもよく、たとえばステップ1404は「はい」を返し、テスト2の結果は、第2の幾何学的コストが第2のしきい値よりも大きいことであってもよく、たとえばステップ1504は「はい」を返した。両方のテストが「はい」を返したので、ステップ1307において「カット」の決定は、要素1003の下に「カット」を作成することである。要素1001および1002の以前のテストの結果は、「カット」が作成されないというものであるので、境界ボックス1108は、ステップ1307において図11Cに示されるように要素1001〜1003の周囲に配置されるが、これはオブジェクト1108が後のy順序要素を含む任意のオブジェクトとは別個のオブジェクトであることをシステムが確信しているからである。たとえば、入力1000について、各々の要素1004〜1006が相互にy方向に重複しているので、これらの要素のテストもまた、カットが作成されるという結果にはならないことを、継続する処理は決定する。後続の認識処理中に、要素1004〜1006は、第2のオブジェクトに属するものと見なされる。
入力に応じて、図10〜図15の例は、テスト1が「いいえ」を出力するがテスト2が「はい」を出力する、およびその逆となる特定の要素についての結果を返すことができる。たとえば、重心距離(第1の幾何学的コスト)は比較的大きいこともあるが、要素間の隙間(第2の幾何学的コスト)は比較的小さいこともあり、これは図8におけるような総和演算により生じる場合がある。そのような状況において、本発明のシステムは、それらの要素の境界において定義されている複数のオブジェクトがあるという信頼性はないと単に見なすことができる。実際、これは、比較的不正確な測定もあれば、比較的正確な測定もあることを示すことができる。あるいは、しきい値を調整または洗練するため、もしくは例外を許容するために、その他の因子が考慮に入れられてもよい。これはまた、両方のテストが「いいえ」の出力をもたらす場合であってもよい。
たとえば、膨大数の要素が存在する場合、つまり、ステップ1301がnは比較的大きい数であると決定するが、要素のすべて(または統計的に関連する数)にテストを実行した後にカットはほとんどまたは全く作成されない場合である。本発明のシステムは、特に要素のy方向範囲および要素の相対的サイズもまた考慮される場合、複数のオブジェクトの存在を示すことができる膨大数の要素があることにより、さらに多くのカットが作成されるべきであったと見なすことができる。次いで、本発明のシステムは、重心および隙間しきい値の1つまたは両方を調整して、さらに多くの正の結果が生じるようにすることができる。このプロセスは、多大な誤検知を返すことが次の段階における不正確な認識につながってしまうため、慎重に実行される必要がある。そのような調整の決定は、しきい値を設定するために初期化作業において統計的に多数の入力サンプルを使用する本発明のシステムのトレーニングを通じて支援されてもよい。このトレーニングはまた、特にHWRシステム114がリモートサーバでホスティングされる場合に、継続的なものであってもよい。
ステップ1405および1505に関連して上記で説明されているように、測定された/計算された第1および第2の幾何学的コストはまた、別個のテストによって出力されてもよい。図13に示されているように、これらの実際の距離/コストは、「カット」の決定を行う際にステップ1307において考慮されてもよい。1つの例において、「いいえ」の決定を出力するテストの幾何学的コストの実際の値は、そのテストのしきい値と比較されて、差が特定の許容度/割合の範囲内であるかどうかを確認し、コストが許容度の範囲内である場合に結果の「いいえ」が「はい」に変更されるようになっている。もう1つの例において、「いいえ」の決定を出力するテストの幾何学的コストの実際の値は、要素の実際の平均または中間サイズと比較されて、要素サイズと比較してコストが相対的に大きいかどうかを確認し、コストが特定の割合だけ要素サイズよりも大きい場合に結果の「いいえ」が「はい」に変更されるようになっている。
上記で説明されているように、さらなる考慮事項は、別個のテストの結果が、速度と精度の間のバランスにどのように影響を及ぼすかを決定することである。現在の例において、第1のテスト(テスト1)は、連続するy順序要素の間の重心距離を考慮する。ストローク重心、または代替的もしくは追加的にその他のストローク因子の決定、およびその間の距離の測定/計算は、たとえばマイクロ秒単位内など、比較的高速に実行される。しかし、重心のずれのような、ストローク因子だけでは複数のオブジェクトの正確な標識ではないので、どこで「カット」するかを決定するために単にこれらの距離を考慮することは、多くの誤検知をもたらすことがあり、たとえば図16におけるように、単一計算式内のストロークは多種多様なサイズを有することができ、隣接するストロークの重心は幅広く分散されるが、ストロークの間の隙間は比較的小さい。したがって、テスト1は、比較的高い処理速度であるが、比較的低い認識精度をもたらすものと見なされてもよい。
一方、第2のテスト(テスト2)は、連続するy順序要素の間の隙間または要素間距離を考慮し、境界ボックスまたはストロークのその他のグループ化メカニズムの間の距離のその使用は、複数のオブジェクトの適度に正確な標識をもたらす。しかし、それらのグループの確立は、たとえば数十から数百マイクロ秒の範囲など、比較的遅く実行される場合がある。したがって、テスト2は、比較的高い認識精度であるが、比較的低い処理速度をもたらすものと見なされてもよい。そのようなものとして、2つのテストを組み合わせることで、速度と精度の間のバランスをとることができ、このバランスは、たとえば速度が精度よりも望ましい、またはその逆など、システムのニーズに基づいて(たとえば、対応するしきい値を調整または重み付けすることによって)調整されてもよい。
さらに正確には、たとえばストロークの重心など、要素の内容の共通する幾何学的特徴のずれを決定して比較するテストは、結果として比較的高いカット数をもたらすが、それらの許容不可能な部分が誤検知である可能性もあり、不正確さを増すことにつながる。これに対して、たとえば要素の境界ボックスの同一または異なる辺など、要素自体の共通または非共通の幾何学的特徴のずれを決定して比較するテストは、比較的低い誤検知数をもたらすが、十分なカットを行わないので、より長い処理時間につながる。
精度のさらなる向上は、図12A〜図12Cに示されている、第2の幾何学的テスト1305の代替的な例によってもたらされてもよい。図11の第2のテストの例と同様に、この代替的な第2のテスト(テスト2)は、第2の幾何学的コストが第2のあらかじめ定められたしきい値よりも大きいかどうかを決定するステップを伴い、ここで第2の幾何学的コストは、y順序要素の間の(第2の)距離から決定される。しかし、以前のテスト2の例とは異なり、第2の(隙間)距離は、連続するy順序要素の間だけではなく、y順序で最も近い近傍要素を考慮することから決定される。この代替的なテストはこれ以降、例示の流れ図の図17を参照して説明される。
最初に、非増分パラメータjは、後のステップで使用するためにiに設定され(ステップ1701)、増分パラメータiは、反復を可能にするためにi+1に設定される(ステップ1702)。これらの初期化の後、テストされているy順序要素(つまりYj、パラメータjの設定による)から次の連続するy順序要素(つまりYi、パラメータiの増分による)が存在するかどうかが決定される(ステップ1703)。さらなる要素が見出される限り、検索ゾーンとしての幾何学的領域は、次の連続するy順序要素Yiについて決定される(ステップ1704)。この検索ゾーンの範囲は、調整可能であり、(y順序の)次の要素、および考慮中の現在の要素(つまりYj)、およびy順序の任意の前の要素(つまりY1〜Yj-1)の間の最小距離を決定して、第2の幾何学的コストを決定するために使用される。
図12Aは、(図11に示される)現在の要素1003から次の連続するy順序要素である、要素1004の上(つまり、y方向)に確立された検索ゾーン1201を示す。図12Bは、要素1004から次の連続するy順序要素である、要素1005の上に確立された検索ゾーン1202を示す。検索ゾーンは、検索の要素の幅xの3倍である幅を有する領域に(つまり、x方向)確立され、この領域はその要素を中心としており、たとえば図12Aにおいて、領域は幅3x4を有し、ここでx4は要素1004の幅であり、図12Bにおいて、領域は幅3x5を有し、ここでx5は要素1005の幅である。潜在的な「カット」位置における要素間の分離の最接近ポイントを決定するために前述のy順序要素を検索するこの幾何学的領域は、要素に関して「パディング」を提供するために使用されて、十分な有意義な数の分離された要素の間の距離の考慮が行われるようにする。パディングの量は調整可能であり、ここで要素の別の整数または小数の幅が使用されてもよく、要素の幅とは無関係の一部その他の因子に基づいてもよい。たとえば、パディングは、手書きの文字、記号などの認識処理において認識器によって使用されるスケール推定値のような、手書きのストロークの特性を適用することによって提供されてもよい。したがって、図12において、検索ゾーンは、要素の各(横方向)辺のスケール推定値の3倍(またはその他の係数)のパディング量で、要素1004〜1006の各々を中心とする領域を確立することによって提供されてもよい。当業者であれば、統計的文字確率分析を行うための、スケール推定値のような、ストローク特性を理解するであろう。
検索ゾーンを確立すると、テストされている現在の要素および検索ゾーン内の前の要素(つまり、Y1〜Yj)からの要素があるかどうかが決定される(ステップ1705)。検索ゾーン内にy順序要素Y1〜Yjがない場合、処理はステップ1702に戻り、検索される次の要素に対して反復を行う。y順序要素Y1〜Yjの少なくとも1つが検索ゾーン内にある場合、その要素の上の要素Y1〜Yjの現在の次の要素任意の各々の間の縦方向距離fim(ただし、m=検索ゾーン内の要素Y1〜Yjの数)が計算され/測定され、これらの距離の最小値が決定される(ステップ1706)。たとえば、図12Aにおいて、要素1002のみが検索ゾーン1201にあり(ただし、要素1003は現在テストされている)、ここで要素1004と要素1002の間の距離f41が要素1004の最小(隙間)距離として返される。検索ゾーンは、テストされている要素の底辺の上(つまり、y方向)の要素との位置的関係を決定するために、テストされている要素の下の要素に対して確立されるものと説明されているが、当業者であれば、たとえば、テストされている要素の底辺の下の要素との位置的関係を決定するために、検索ゾーンが、テストされている要素の上の要素に対して同等に確立されてもよいことを理解するであろう。
この最小距離が、(後段において説明される)後の処理において第2の幾何学的コストとして見なされるべきであるかどうかを決定するため、最初に、最小距離fが以前、たとえばメモリ108に格納されているかどうかが決定される(ステップ1707)。格納されている場合、決定された最小距離は、この以前格納されている最小距離fと比較され(ステップ1708)、格納されていない場合、決定された最小距離は、最小距離fとして格納される(ステップ1709)。たとえば、図12Aの要素1004の処理において、以前格納されている最小距離はないので、要素1004の最小距離が格納される。いずれのテストされた要素の検索ゾーンにもy順序要素が存在しないか、またはテストされている要素の下に要素がない(つまり、最後の要素)ので、最小距離がまったく決定されない入力のシナリオがあってもよい。これについては、この例の後のステップにおいて説明されるが、このシナリオに対処するその他の方法は、少なくとも1つの最小距離が確実に計算されるようにするために検索ゾーンの調整を行うこと、またはたとえば無限大に近付く(疑似)ランダムに生成されたコスト値のような、任意の第2の幾何学的コストが初期化段階において設定されてもよいことを含む。
ステップ1708の比較において、現在の最小距離が格納されている最小距離よりも大きい場合、これは廃棄されて処理はステップ1702に戻るが、その理由は、現在考慮中の要素よりも潜在的第1のオブジェクトに近い別の要素が存在することを意味するからである。一方、現時決定されている最小距離が、格納されている最小距離よりも小さい場合、処理はステップ1709に進んで、現在決定されている最小距離が現在格納されている最小距離fに代わって格納されるようにし、次いで処理はステップ1702に戻る。たとえば、図12Aおよび図12Bから、要素1004とその検索ゾーン1201内の要素1002との間よりも、要素1005とその検索ゾーン1202内の要素1003との間のほうが近いことが分かる。したがって、要素1005の最小距離(距離f52よりも小さい距離f51である)が、より大きい要素1004の以前格納されている最小距離f42に代わって格納される。
現在のテスト要素(たとえば、図12の要素1003)の下のすべての要素が考慮された後、ステップ1703は「いいえ」を返し、処理は、代替的な第2のテストの最終段階に進む。この段階において、増分パラメータiは、次の連続する要素の第2のテストで使用するために最初にリセットされる(ステップ1710)(このステップはこの段階のその他のステップの後に続いてもよい)。最小距離fがメモリ108に格納されているかどうかが再度決定され(ステップ1711)、格納されていない場合、第2の幾何学的コストが第2のしきい値よりも大きいことに関して「いいえ」の決定がステップ1306に出力される(ステップ1712)。このステップは、ステップ1707と類似しており、最小距離がこの代替的なテスト2においてまったく決定および格納されない上記で説明されているシナリオを説明するためにこのステップにおいて繰り返される。第2の幾何学的コストとなる、格納されている最小距離がある場合、この値は、信頼性の第2のテストとして、(第2の)隙間しきい値距離と比較される(ステップ1713)。テスト2の上記の例と同様に、この代替的な方法における第2のしきい値の設定は、テストされる要素の間の大きい隙間が存在する場合に高レベルの信頼性が達成されるように行われてもよい。このステップの結果は、「はい」または「いいえ」の決定であり、第2の幾何学的コスト値fは、ステップ1306における処理のためにテスト2によって出力される(ステップ1714)。
テスト1の結果は、第1の幾何学的コストが第1のしきい値よりも大きいことであってもよく、テスト2の結果は、第2の幾何学的コストが第2のしきい値よりも大きいことであってもよく、ここでステップ1307の「カット」の決定は要素1003の下に「カット」を作成することが、図11Aおよび図11Bに関連して上記で説明された。しかし、第2のしきい値は、テスト2について設定されてもよく、ここでこの例において、隙間距離f3が最小距離f51よりも小さいので、しきい値は、図14の例示的な方法において決定された第2の幾何学的コスト(つまり、図11Bの隙間距離f3)と、図17の代替的な方法において決定された第2の幾何学的コスト(つまり図12Bの最小距離f51)との間になる。
この状況において、テストされている要素の下のすべての要素の境界ボックスが、第2の幾何学的コストを作成するために使用される第1の例のより単純なテスト2は、「いいえ」の決定をもたらす。この場合、「カット」は、要素1003の下に続いて作成されない。これは図11Dに示されているように、境界ボックス1109が、要素1001〜1006のすべてを囲んで定義されることにつながるが、それは要素1004〜1006が同じオブジェクトに属することを継続する処理が決定するからである。一方、テストされている要素の下の各要素が、第2の幾何学的コストを作成するために個々に使用される第2の例のより複雑なテスト2は、「はい」の決定をもたらす。この場合、「カット」は、要素1003の下に続いて作成される。これは、図11Cに示されているように、境界ボックス1108が要素1001〜1003を囲んで定義されることにつながる。
代替的なテストは結果として、例示の入力1000において別個の2Dオブジェクトがあることのさらに正確な決定をもたらすことができる。そのようなものとして、第2の幾何学的コストの代替的なテストは共に、テスト2から返された結果の調整および/または第1および第2の幾何学的コストしきい値の調整をもたらすように実行されてもよい。
図6および図7に関して説明されている前述の例のように、ストローク/要素の時間的または時間順序エントリはまた、図10〜図17に関連して説明されている例の第1および第2の幾何学的コストを調整するために、考慮に入れられてもよい。
上記で説明されている例は、計算式のストロークのような、複数のオブジェクト要素の増分認識中に実行される認識を含むことができ、ここでHWRシステム114は、インクリメンタのようなデバイスを含み、インクリメンタは、入力されると(または入力後わずかに遅れて、通常ストロークによって測定される)、(前処理がある場合はその後に)認識エンジンに入力ストローク/要素を継続的に解析して、ストロークの認識が実行され、認識された要素がメモリ108に格納(キャッシュ)されるようにする。このようにして、複数のオブジェクトテストは、別個のオブジェクトが決定されると直ちに認識と並行して実行されてもよく、そのオブジェクト内のストロークの認識処理は、これらのストロークが次およびそれに続くオブジェクトを処理するときに再度処理される(つまり、再認識される)必要がないように、すでに実行されており、それにより認識プロセスの速度をさらに最適化することができる。
本明細書において説明される方法およびシステムの上記で説明されている例示のアプリケーションは、数学計算式のような、縦方向にずれているオブジェクトの手書きの入力を対象としている。前述のように、複数のオブジェクトが入力されて個別に認識される必要がある、図面、ダイアグラム、音楽、化学式などのような、オブジェクトの2Dシステムの任意の手書きの入力もまた、説明されている方法およびシステムが任意の方向で複数のテキスト、記号、およびオブジェクトの認識を行うので、適用可能である。さらに、前述のように、たとえば縦方向リストだけが認識され得るのではなく、説明されている方法およびシステムはまた横方向リストおよび任意に配置されたオブジェクトの認識も提供する。
さらに、前述のように、本明細書において説明されるさまざまな例は、デジタルインクではなく画像が認識されるオフライン認識のような、手書き以外の認識のための入力の形態に適用されてもよく、たとえば要素は、紙またはホワイトボード上の書き込みの写真として取り込まれた画像、インタラクティブスマートボード上でデジタルに取り込まれた画像などとして入力されてもよい。
説明されている方法およびシステムは、複数のオブジェクト認識がオブジェクト自体の認識とは無関係に実行されるので、複数の数学計算式の縦方向リストのような、複数のオブジェクトの処理および認識速度を高める。さらに、抽象的な算術計算式の複雑系のような、複雑な複数のオブジェクト入力が、紛らわしい認識結果を生じることなく可能になる。さらに、計算式のような、複数のオブジェクトの記述は、新しい書き込み領域を作成する、改行ボタンをタップするなどのような、認識のための特定のユーザアクションを必要とはしない。さらになお、テーブルのような、人為的な構造にストローク/要素を適合させることは、複数のオブジェクトの認識には要求されない。さらに、アルゴリズムの学習またはトレーニングは必要とされないが、これは結果を向上させるために実行され得る。
前述の説明は、最良の形態および/またはその他の例と見なされるものを説明してきたが、さまざまな変更がこれに行われてもよく、本明細書において開示される主題は、さまざまな形態および例示において実施されてもよく、これらが多数のその他の用途、組み合わせ、および環境において適用されてもよく、その一部のみが本明細書において説明されていることを理解されたい。当業者であれば、開示される態様が、主題の真の精神および範囲を逸脱することなく改変または修正されてもよいことを理解するであろう。したがって、主題は、この説明における固有の詳細、添付書類、および示される例に限定されることはない。本明細書において開示される有利な概念の真の範囲に含まれる任意のならびにすべての改変および変形を保護することが意図される。