(57)【特許請求の範囲】
【請求項１】
コンピュータ読み取り可能なプログラムコードを有する非一時的なコンピュータ読み取り可能な記録媒体であって、前記コンピュータ読み取り可能なプログラムコードは、入力ストロークの、少なくとも一部が他と重なった複数の断片についての手書き入力認識を提供する方法を実施するためにコンピュータが実行するように適合され、前記方法は、
前記入力ストロークの少なくとも２つの連続する断片についての入力ストロークの相対位置を検出するステップと、
前記少なくとも２つの連続する断片についての前記入力ストロークの形状を検出するステップと、
前記検出した相対位置から、前記入力ストロークのセグメントの重なりを決定し、そして、前記検出した形状から、前記重なったセグメントがもっともらしく文字を形成するかを判断するステップと、
前記もっともらしいと判断した文字に基づいて前記断片を分類するステップと、
前記分類した断片を、前記分類した断片に基づく文字仮説の評価のための認識エンジンに提供するステップと、を含み、
前記認識エンジンの中で、前記方法は、
前記分類した断片のストロークに基づく分割グラフを生成するステップであって、前記分割グラフは、文字仮説に対応するノードからなる、ステップと、
パターン分類法に基づいて前記分割グラフの各ノードに認識スコアを割り当てるステップと、
前記認識スコア及び言語モデルに基づいて前記入力ストロークの言語学的意味を生成するステップと、
前記分割グラフ、前記認識スコア、及び前記言語モデルの同時分析に基づく出力を提供するステップと、
を含む、コンピュータ読み取り可能な記録媒体。
【請求項２】
前記入力ストロークは前処理され、前記前処理は、少なくとも前記入力ストロークの正規化及び平滑化を含む、
請求項１に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項３】
前記分類した断片のそれぞれは、１つ又は複数の入力断片の前記入力ストロークによって形成される完全な文字を含むように定義される
請求項１に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項４】
重なりのある入力ストロークについての手書き入力認識を提供する方法であって、前記方法は、
前記入力ストロークの少なくとも２つの連続する断片についての入力ストロークの相対位置を検出するステップと、
前記少なくとも２つの連続する断片についての前記入力ストロークの形状を検出するステップと、
前記検出した相対位置から、前記入力ストロークのセグメントの重なりを決定し、そして、前記検出した形状から、前記重なったセグメントがもっともらしく文字を形成するかを判断するステップと、
前記もっともらしいと判断した文字に基づいて前記断片を分類するステップと、
前記分類した断片を、前記分類した断片に基づく文字仮説の評価のための認識エンジンに提供するステップと、を含み、
前記認識エンジンの中で、前記方法は、
前記分類した断片のストロークに基づく分割グラフを生成するステップであって、前記分割グラフは文字仮説に対応するノードからなる、ステップと、
パターン分類法に基づいて前記分割グラフの各ノードに認識スコアを割り当てるステップと、
前記認識スコア及び言語モデルに基づいて前記入力ストロークの言語学的意味を生成するステップと、
前記分割グラフ、前記認識スコア、及び前記言語モデルの同時分析に基づく出力を提供するステップと、
を含む、方法。
【請求項５】
前記入力ストロークは前処理され、前記前処理は、少なくとも前記入力ストロークの正規化及び平滑化を含む、
請求項４に記載の方法。
【請求項６】
前記分類した断片のそれぞれは、１つ又は複数の入力断片の前記入力ストロークによって形成される完全な文字を含むように定義される
請求項４に記載の方法。
【請求項７】
前記少なくとも２つの連続する断片についての前記入力ストロークの前記検出した相対位置は、前記入力ストロークの空間的な及び時間的な情報から検出される
請求項１に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項８】
前記分割グラフは、さらに、前記分類された断片に基づく前記文字仮説の間の空間仮説に対応するノードを含む、
請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記少なくとも２つの連続する断片についての前記入力ストロークの前記検出した相対位置は、前記入力ストロークの空間的及び時間的な情報から検出される
請求項１に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記分割グラフは、さらに、前記分類した断片に基づく前記文字仮説の間の空間仮説に対応するノードを含む、
請求項１に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、様々な文字からなるユーザの手書き入力を認識できるようにするコンピューティングデバイスのインターフェースについての分野に関する。
【０００２】
関連出願の相互参照
本出願は、２０１５年５月１５日に出願された欧州特許出願第１５２９０１２９．４号、２０１６年５月１３日に出願された国際特許出願ＰＣＴ／２０１６／０００７９９の優先権の利益を主張するものであり、その全体が、参照によって本明細書に組み込まれている。
【背景技術】
【０００３】
コンピューティングデバイスは日常生活に浸透し続けている。それらは、デスクトップコンピュータ、ラップトップ、タブレットＰＣ、電子ブック（e-Book）リーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、ＧＰＳ（global positioning system）ユニット、ＥＤＡ（enterprise digital assistants）、ＰＤＡ（personal digital assistants）、ゲームコンソールなどの形をとる。さらに、コンピューティングデバイスは、自動車、トラック、農業機械、産業機械、ビル環境制御（例えば、照明、ＨＶＡＣ）、家庭及び商業設備にも組み込まれている。
【０００４】
コンピューティングデバイスは、概して、ＣＰＵ（central processing unit）のような少なくとも１つの演算要素と、いくつかの形態のメモリと、入出力デバイスとを含む。様々なコンピューティングデバイス及びそれらの継続的な使用には、様々な入力デバイスを必要とする。そうした入力デバイスの１つは、タッチスクリーン又はタッチパッドのようなタッチセンサ面（touch sensitive surface）である。ユーザ入力は、ユーザの指又はペン若しくはスタイラスのような道具と、タッチセンサ面との間の接触を通じて受信される。他の入力デバイスは、入力面上のユーザによるジェスチャを感知する入力面である。これらの入力方法のいずれもが、一般に描画又はテキストの入力に使用されうる。ユーザ入力がテキストであるとき、コンピューティングデバイスは、オンライン手書き入力認識システム又は方法を使用してユーザの手書き入力（handwriting）を解釈しなければならない。
【０００５】
概して、オンライン手書き入力認識システム又は方法は、ユーザがタッチセンサ面に接触したとき（ペンダウン）のようなストロークの開始、ユーザがタッチセンサ面の接触を停止したときのようなストロークの終了（ペンアップ）、及び、ユーザが、ストロークの開始から終了までの間に、彼らの指又はペンで作り出すあらゆる動き（ジェスチャ又はストローク）を監視する。
【０００６】
オンライン手書き入力認識システム又は方法は、通常、プリプロセッシング段階、分割（segmentation）段階、認識段階、及び解釈段階で構成される。一般に、プリプロセッシング段階は、不適切な入力データを排除して正規化すること、サンプリングすること、適切なデータからノイズを除去することを含む。分割段階は、入力データを個別の文字及び単語に分割する異なる方法を特定する。認識は、通常、異なる入力セグメントを特徴付ける特徴抽出段階、及び、セグメントと利用可能な文字候補とを対応付ける分類段階を含む。最後に、解釈段階は、通常、文字候補に対応付けられた文字及び／又は単語を識別することを含む。実際には、オンライン手書き入力認識システム又は方法は、追加的な段階に加えてこれらの段階を含む。さらに、オンライン手書き入力認識システム又は方法は、各段階を明らかに記述しなくてもよい。
【０００７】
オンライン手書き入力認識システム又は方法は、シングルストローク（一筆）又はマルチストローク（複数筆）でありうる。シングルストローク認識は、アルファベットの各文字に対してシングルストロークの簡易表現を使用する（例えば、Palm, Inc.のGraffiti）。これらのシステム又は方法は、入力エラーをより少なくするが、全アルファベットについてユーザに新たなストロークパターンを記憶するよう求める。マルチストローク認識は、自然な手書き入力を認識でき、日本語又は中国語の文字のようにシングルストロークには容易に縮小できない文字を含む言語を伴うオンライン手書き入力認識システムを使用するときによく必要とされる。
【０００８】
また、コンピューティングデバイスのタイプは、手書き入力認識システム又は方法の種類を決定しうる。例えば、もし入力面が（タブレットのように）十分に大きいならば、ユーザは、まるで紙片に書くように、その入力面上のどこにでもテキスト又はデータを入力しうる。
デバイスが小さくなるにつれ、マルチボックス又はシングルボックスのような異なるシステム又は方法が発展した。マルチボックスシステム又は方法は、入力面を３つのボックスのような複数の領域に分割する。ユーザは、各ボックスの中に各文字を次々と入力する。文字分割が最小になるか、不要になるため、これらは有利である。それらはまた、分離文字認識技術で解析できるマルチストローク文字を許容する。
【０００９】
さらにより小さなデバイスでは、入力面は、マルチボックスのために十分な大きさでないかもしれない。だから、その面は、基本的にシングルボックス書き込みインターフェースになる。この例では、１つの文字だけが一度に書かれる。シングルボックスインターフェースはシングルストローク認識システムに加えられるけれども、日本語又は中国語のような特定の言語はマルチストローク文字を有し、それはシングルストロークの簡易表現には容易に縮小されない。さらに、自然な手書き入力のほとんどは、言語によらずマルチストローク文字を含む。
【００１０】
マルチストロークシステム又は方法を使用するシングルボックスインターフェースは、文字の始点と終点とを判断すること、及び、入力文字のイメージを明確に表示することを含む追加的な問題を生じさせる。文字の始点及び終点を判断する一つの方法は、ユーザに対して各文字の間で明示的な停止を要求することである。しかし、これは最善ではない。なぜなら、それはユーザのデータ入力を遅くさせるからである。シングルボックスシステム又は方法であって、ユーザが連続的に、停止することなく文字を入力することができるものでは、入力文字は、互いに覆われていたり、重なっていたりするだろう。これは、重畳手書き入力（superimposed handwriting）、被覆手書き入力（overlaid handwriting）、又は“オントップライティング（on-top-writing）”と呼ばれる。
【００１１】
本オンライン重畳手書き入力認識システム及び方法は、断片化、分割、認識、及び解釈を連続的にというよりは同時に実行することによって、ユーザの手書き入力の認識についての改善された結果を提供する。本システム及び方法は、認識精度及び速度を向上するために断片化又は断片の分類を実行する。本システム及び方法は、分割、認識、及び解釈を、それらステップを階層的に適用するよりむしろ、同レベルで実行する。分割、認識、及び解釈が協調的に生じることで、本システムは、ユーザに対し、ユーザ入力に基づいて、最良の可能な文字、単語、及び文の候補を提供する。
【発明の概要】
【００１２】
以下で記述される本発明の例は、ユーザの自然な手書き入力スタイルを解釈しうるオンライン重畳手書き入力認識において使用される方法、システム、及びソフトウェアを提供する。これらは、ユーザに対し、彼らが自然な手書き入力を使用し、あらゆる明示的な文字間の分離をせずにコンピューティングデバイスに文字を入力することを可能にする。本手書き入力認識システム及び方法は、入力面の形をなす入力デバイスに接続されるコンピューティングデバイスを含む。ユーザは、彼らの指、又は、スタイラス若しくはペンのような道具を使用して、その入力面に圧力を加えるか、その上でジェスチャーをすることで入力を提供できる。本システム及び方法は、入力ストロークを監視する。
【００１３】
開示のシステム及び方法の一側面は、分割エキスパートを提供する。分割エキスパートは、断片の少なくとも連続するものについての入力ストロークの相対位置を検出し、少なくとも連続する断片の入力ストロークの形状を検出し、検出した相対位置から、入力ストロークのセグメントの重なりを判断し、検出した形状から、重なったセグメントがもっともらしく文字を形成するかを決定し、決定したもっともらしい文字に基づいて断片を分類し、分類した断片を、分類された断片に基づいて文字仮説の評価のための認識エンジンに提供する。
【００１４】
開示のシステム及び方法の他の側面は、少なくとも１つのコンピュータ読み取り可能な非一過性の媒体を提供する。非一過性の媒体は、少なくとも１つの文字をもっともらしく形成するように、少なくとも連続する断片の第１の断片についての少なくとも１つの入力ストロークの少なくとも１つのセグメントと、少なくとも連続する断片の第２の断片についての少なくとも１つの入力ストロークの少なくとも１つのセグメントとを結合するかどうかを判断することにより、もっともらしい文字を決定する。
【００１５】
開示のシステム及び方法の他の側面によれば、分類された断片のそれぞれは、１つ又は複数の入力断片の入力ストロークで形成される完全な文字を含むように定義される。
【００１６】
開示のシステム及び方法の他の側面によれば、少なくとも連続する断片の入力ストロークの相対位置は、入力ストロークの空間的及び時間的な情報から検出される。
【００１７】
開示のシステム及び方法の他の側面によれば、認識エンジンは、分類された断片のストロークに基づいて分割グラフを生成する。その分割グラフは、文字仮説に対応するノードを含む。認識エンジンは、パターン分類器に基づいて認識スコアを分割グラフの各ノードに割り当て、認識スコア及び言語モデルに基づいて入力ストロークの言語学的な意味を生成し、分割グラフの同時分析及び認識スコアに基づく出力を提供する。
【００１８】
開示のシステム及び方法の他の側面によれば、分割グラフは、さらに、分類された断片に基づく文字仮説の間の空間仮説に対応するノードを含む。
【００１９】
本システム及び方法は、以下で図面と共に詳細に述べる例示からさらに全容が理解されるであろう。
【図面の簡単な説明】
【００２０】
【図１】本システムの例に係るコンピューティングデバイスを示したブロック図である。
【図２】本システムの例に係るオンライン手書き入力認識のためのシステムを示したブロック図である。
【図３Ａ】本システムの例に係る分割グラフを模式的に示した図である。
【図３Ｂ】本システムの例に係る分割グラフを模式的に示した図である。
【図４】本システムの例に係る続け書きユーザ入力の利用可能なユーザ入力を模式的に示した図である。
【図５】本システムの例に係る続け書きユーザ入力の分割を模式的に示した図である。
【図６】本システムの例に係る認識エキスパートを模式的に示した図である。
【図７】本システムの例に係る言語オートマトンを模式的に示した図である。
【図８】本システムの追加の例に係るオンライン手書き入力認識のためのシステムを示したブロック図である。
【図９Ａ】本システムの例に係る可能なユーザ入力を描写した図である。
【図９Ｂ】図９Ａのユーザ入力についてのタイミングを描写した図である。
【図１０Ａ】本システムの例に係る利用可能なユーザ入力を描写した図である。
【図１０Ｂ】図１０Ａのユーザ入力についてのタイミングを描写した図である。
【発明を実施するための形態】
【００２１】
詳細な説明
以下の詳細な記載において、好適な技術の徹底した理解を提供するために例示をもって様々な具体的な詳細が明らかにされる。しかし、本技術がそうした詳細なしに実施されうることは当業者にとって明らかであろう。他の例によれば、周知の方法、処理工程、構成要素、及び／又は、回路は相対的に高いレベルで記述され、詳細は省略され、本技術を不必要に不明瞭にする側面を回避する。
【００２２】
様々な技術が以下で記述され、概して、それはオンライン手書き入力認識に関し、そして、より具体的には様々なコンピューティングデバイスにおける重畳手書き入力認識のためのシステム及び方法に関する。以下で述べるシステム及び方法は、最良の可能な文字、単語、及び文の候補を提供するための分割、認識、及び解釈の同時処理を通じてユーザの自然な手書き入力を認識するために使用されうる。
【００２３】
図１は、コンピューティングデバイス１００のブロック図を示す。このコンピューティングデバイスは、デスクトップコンピュータ、ラップトップ、タブレットＰＣ、電子ブック（e-book）リーダ、モバイルフォン、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、ＧＰＳ（global positioning system）ユニット、ＥＤＡ（enterprise digital assistant）、ＰＤＡ（personal digital assistant）、又はゲームコンソールでありうる。デバイス１００は、少なくとも１つの演算要素、いくつかの形態のメモリ、及びＩ／Ｏ（input and/or output）デバイスを含む。それら要素は、コネクタ、信号線、バス、ケーブル、バッファ、電磁リンク、ネットワーク、モデム、変換器、ＩＲポート、アンテナ、又は当業者に知られた他の手段のような入出力手段を通じて互いに通信する。
【００２４】
デバイス１００は、少なくとも１つの入力面１０４を有する。入力面１０４は、抵抗（resistive）、ＳＡＷ（surface acoustic wave）、容量（capacitive）、赤外線グリッド（infrared grid）、赤外線アクリル投影（infrared acrylic projection）、光学イメージング（optical imaging）、分散信号技術（dispersive signal technology）、音響パルス認識（acoustic pulse recognition）、又は、当業者に知られた他の好適な技術のような技術を採用しうる。入力面１０４は、永続的な又は映像により生成された境界であって、その境目が明確に認識される境界によって仕切られうる。
【００２５】
入力面１０４に加え、デバイス１００は、ローカルインターフェースを介して通信可能に接続された１つ又は複数の追加的なＩ／Ｏデバイス（又は周辺機器）を含んでもよい。ローカルインターフェースは、コントローラ、バッファ（キャッシュ）、ドライバ、中継装置（repeaters）、及び受信機のような通信を可能にする追加的な要素を有してもよい。これらは当業者により知られているものとして簡単のために説明を省略する。さらに、ローカルインターフェースは、他のコンピュータ要素との間で好適な通信を可能にするためのアドレス、制御、及び／又はデータ接続を含みうる。
【００２６】
１つのそうしたＩ／Ｏデバイスは、画像、テキスト、及び映像のような、コンピューティングデバイスからのデータを出力するための少なくとも１つのディスプレイ１０２であってもよい。ディスプレイ１０２は、ＬＣＤ、プラズマ、ＣＲＴ、又は当業者に知られたあらゆる他の好適な技術を使用してもよい。少なくともいくつかのディスプレイ１０２は、入力面１０４と一体に設置されてもよい。他の追加的なＩ／Ｏデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザリーダ、無線周波数デバイスリーダ、又は当業者に知られたあらゆる他の好適な技術のような入力デバイスを含んでいてもよい。さらに、Ｉ／Ｏデバイスは、また、プリンタ、バーコードプリンタ、又は、当業者において知られたあらゆる他の好適な技術のような出力デバイスを含んでいてもよい。最後に、Ｉ／Ｏデバイスは、さらに、変調器／復調器（モデム；他のデバイス、システム、又はネットワークにアクセスする）、ＲＦ（radio frequency）又は他の送受信機、電話インターフェース、ブリッジ、ルータ、又は当業者において知られたあらゆる他の好適な技術のような入力及び出力の両方と通信するデバイスを含んでいてもよい。
【００２７】
デバイス１００は、また、ソフトウェアを実行するためのハードウェアデバイスであるプロセッサ１０６を含み、特に、ソフトウェアはメモリ１０８に格納される。プロセッサは、任意に特注で製造されたものでもよいし、商業的に入手可能な汎用目的のプロセッサでもよいし、ＣＰＵ（central processing unit）、半導体ベースのマイクロプロセッサ（マイクロチップ又はチップセットの形態）、マクロプロセッサ、マイクロコントローラ、ＤＳＰ（digital signal processor）、ＡＳＩＣ（application specific integrated circuit）、ＦＰＧＡ（field programmable gate array）、又は、他のプログラム可能な論理デバイス、分離ゲート又はトランジスタ論理、分離ハードウェア要素、状態マシン、又は、当業者において知られたソフトウェア命令を実行するために設計されたものの任意の組み合わせでありうる。商業的に入手可能な好適なマイクロプロセッサの例としては次のようなものがある。ヒューレットパッカード社のＰＡ−ＲＩＳＣシリーズマイクロプロセッサ、インテル社の８０ｘ８６又はＰｅｎｔｉｕｍシリーズマイクロプロセッサ、ＩＢＭのＰｏｗｅｒＰＣマイクロプロセッサ、サンマイクロシステムズ社のＳｐａｒｃマイクロプロセッサ、モトローラ社の６８ｘｘｘシリーズマイクロプロセッサ、ＤＳＰマイクロプロセッサ、又はＡＲＭマイクロプロセッサがある。
【００２８】
メモリ１０８は、揮発性メモリ要素（例えば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどのＲＡＭ））及び不揮発性メモリ要素（例えば、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気又は光学テープ、メモリレジスタ、ＣＤ−ＲＯＭ、ＷＯＲＭ、ＤＶＤ、ＲＡＩＤ（redundant array of inexpensive disks）、他のＤＡＳＤ（direct access storage device）など）の任意の１つ又は組み合わせを含みうる。さらに、メモリ１０８は、電気、磁気、光学、及び／又は他のタイプの記録媒体を組み合わせうる。メモリ１０８は、様々なコンポーネントが互いに離隔して配置されるが、プロセッサ１０６によりアクセスされる分散型のアーキティクチャを有しうる。メモリ１０８は、プロセッサ１０６に接続されており、そのため、プロセッサ１０６は、メモリ１０８から情報を読み出すことができ、メモリ１０８に情報を書き込むことができる。別の例では、メモリ１０８は、プロセッサ１０６に組み込まれていてもよい。他の例としては、プロセッサ１０６及びメモリ１０８が両方、１つのＡＳＩＣ又は他のＩＣ（integrated circuit）に備えられてもよい。
【００２９】
メモリ１０８内のソフトウェアは、オンライン手書き入力コンピュータプログラムを含む。そのオンライン手書き入力コンピュータプログラムは、１つ又は複数の個別のプログラムを含んでいてもよい。その個別のプログラムのそれぞれは、順序付けられた、論理機能を実施するための実行命令のリストで構成される。オペレーティングシステム１１０は、オンライン手書き入力コンピュータプログラムの実行を制御する。オペレーティングシステム１１０は、ＰＡＬＭ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣ及びＩＰＨＯＮＥ  ＯＳ（登録商標）、ＬＩＮＵＸ（登録商標）、ＡＮＤＲＯＩＤ（登録商標）などのようなプロプライエタリ（proprietary）なオペレーティングシステム、又は、商業的に入手可能なオペレーティングシステムであってもよい。理解されるように、以下で開示するシステム及び方法の思想から外れることなく、他のオペレーティングシステムが利用されうる。
【００３０】
メモリ１０８は、以下で述べる手書き入力認識に関する他のアプリケーションプログラム１１２、全般的に異なる機能、及びそれら両方を含んでいてもよい。アプリケーション１１２は、製造時にデバイス１００に提供されるプログラムを含む。そして、アプリケーション１１２は、さらに、製造後にデバイス１００にダウンロードされるプログラムを含んでもよい。いくつかの例は、テキストエディタ、電話ダイヤラ（telephone dialer）、連絡先ディレクトリ（contacts directory）、インスタントメッセージング手段（instant messaging facility）、電子メールプログラム、ワードプロセッシングプログラム、ウェブブラウザ、カメラなどを含む。
【００３１】
サポート及びコンプライアンス（compliance）能力を有するオンライン手書き入力認識コンピュータプログラムは、ソースプログラム、実行プログラム（オブジェクトコード）、スクリプト、又は、実行される命令セットで構成される任意の他のエンティティでありうる。ソースプログラムである場合、そのプログラムは、コンパイラ、アセンブラ、インタープリタ、又はこれらに類するものであって、メモリに含まれてもよいし、含まれなくてもよいものを介して翻訳され、オペレーティングシステムに関する操作が正しく行われるようにする必要がある。さらに、サポート及びコンプライアンスを有するオンライン手書き入力認識コンピュータプログラムは、（ａ）データクラス及びメソッドを有するオブジェクト指向プログラミング言語、（ｂ）ルーチン、サブルーチン、及び／又は関数を有するプロシージャ型プログラミング言語のように記述されうる。例としては、これに限定されないが、Ｃ、Ｃ＋＋、Ｐａｓｃａｌ、Ｂａｓｉｃ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、Ｐｅｒｌ、Ｊａｖａ、及びＡｄａがある。
【００３２】
システムは、プロセッサ１０６が、ユーザにより入力されたストロークを入力面１０４を介して検出したときに開始する。ユーザは、指、又は、ペン又はスタイラスのようないくつかの道具でストロークを入力してもよい。ストロークは、少なくともストローク開始位置、ストローク終了位置、及び、ユーザがストローク開始位置とストローク終了位置とを結んだパスにより特徴付けられる。異なるユーザが、わずかな変化を伴う同じ文字（字体）を自然に書きうるため、本システムは、各文字を入力しうる様々な方法に適応する。
【００３３】
図２は、本システムの例に係るオンライン手書き入力認識のためのシステムを模式的に示した図である。少なくとも１つの入力ストロークが開始されると、システムは、そのストロークをプリプロセッシング１１４する。プリプロセッシング１１４は、サイズ正規化及び／又はＢスプライン近似のような入力を平滑化する方法を適用することでストローク開始及び終了の位置を結ぶパスを正規化することを含みうる。入力ストロークは、次に、３つのエキスパート（分割エキスパート１１６、認識エキスパート１１８、及び言語エキスパート１２０）に渡される。これら３つのエキスパートは、文字、単語、及び文のレベルで出力候補１２４を生成する動的プログラミングを通して協働する。
【００３４】
分割エキスパート１１６は、入力ストロークを単語及び個別の文字仮説に分割する異なる方法を定義する。文字仮説を形成するために、分割エキスパート１１６は、オリジナルの入力の連続するストロークをグループ化する。これは分割グラフという結果になる。分割グラフにおいて、各ノードは少なくとも１つの文字仮説に対応し、そして、文字間の隣接制約（adjacency constraints）はノード接続によって扱われる。もし対応する仮説が共通のストロークを有さず、そのストロークがオリジナルの入力において連続している場合に、ノードが隣接している、と考える。図３Ａは、本システムの例に係る単語ＢＥＡＮの考えられうるユーザ入力を示している。特に、この図は、マルチストローク文字を有する重ね書きの例を示している。図３Ｂは、本システムの例に従い作成された図３Ａの入力の考えられうる分割グラフを示している。
【００３５】
重畳手書き入力認識システム及び方法は、どこで単語が終わり、他のどこで単語が始まるかも決定しなくてはならない。本システム及び方法は、単語の境界を取得する複数の実施形態を可能にする。１つの実施形態においては、ユーザに対して各単語の後に特定のジェスチャーを入力するように要求する。この実施形態では、特定のジェスチャーをスペース文字（space character）として出力する。この実施形態は、分割工程にさらなる堅牢性をもたらす。なぜなら、それが、入力ストロークを単語及び個別の文字仮説に分割する異なるやり方を減少させるからである。しかし、この実施形態は、ユーザに対し、各単語の終わりを示す特定のジェスチャーを加えることを強制する。特定のジェスチャーは、いくらかのユーザにおいて間違われるかもしれない。
【００３６】
代替となる実施形態は、単語を分ける特定のジェスチャーを要求しない。代わりに、オンライン手書き入力認識コンピュータプログラムが、以下で詳述する認識エキスパート１１８及び／又は言語エキスパート１２０の補助を伴って自動的に単語の境界を検出する。例えば、言語エキスパート１２０は、とりわけ、Ｎ−ｇｒａｍモデル、構文解析、意味解析などの、語彙知識、及び所定の言語における連続する単語列の尤度をモデル化する技術に基づいて単語境界を取得するための言語情報１３０を利用する。
【００３７】
例えば、ユーザは、英語から抽出された言語情報１３０に基づく実施形態において重ね書きを伴う文字列“ｗｈａｔｔｉｍｅｉｓｉｔ？”を入力しうる。この代替実施形態は、入力ストロークに対する全体的な意味を与え、言語情報１３０に基づく単語境界を取り戻す単語分割“ｗｈａｔ  ｔｉｍｅ  ｉｓ  ｉｔ？”を出力する。この実施形態は、ユーザに対し、各単語間に特定のジェスチャーを挿入することなく単語列の入力を許容するという利点を有する。
【００３８】
他の実施形態においては、前述の２つの方法が組み合わされうる。このケースでは、単語境界を検出することをより堅牢にするためにユーザが各単語の後に特定のジェスチャーを挿入しうる。しかし、ユーザがジェスチャーの挿入を無視したときはいつでも、手書き入力認識システムは、認識エキスパート１１８及び／又は言語エキスパート１２０の補助を伴って単語境界を検出できる。
【００３９】
１つの例において、分割エキスパートは、図３Ａ及び図３Ｂに示すような、個別文字のそれぞれが、ペンアップ（pen-up）を伴ってその隣接する文字から分離されるハンドプリントライティング入力（handprint writing input）に限定されない。本システムの分割エキスパート１１６は、また、一方が他方の上に重なるように、続け書きの文字が書かれる続け書きも処理できる。図４は、単語“ｂｅ”及び“ａｎ”の続け書きのユーザ入力を示している。続け書きのユーザ入力を解釈するとき、分割エキスパート１１６は、ストロークを、それを構成するセグメントに分割するための場所を定義する特定ポイントの検出に基づいて各ストロークを分割する。図５は、それを構成するセグメントに分割された続け書き“ａｎ”の例を示している。ストロークを、それを構成するセグメントに分割するための特定ポイントは、交差する点、ストロークパスの傾斜変化などによって定義されうる。これらの構成セグメントは、分割グラフを構築するために利用される。
【００４０】
認識エキスパート１１８は、文字候補のリストと、分割グラフの各ノードに対する確率又は認識スコアとを対応付ける。これらの確率又は認識スコアは、言語認識情報１２２に基づいている。言語認識情報は、全ての異なる文字、及び、特定の言語の基礎をなすアルファベットのシンボルを定義する。この情報は、言語依存であり、アルファベットを記述するための様々な個別の様式を認識する能力と共に一般的なアルファベットの違いを含む。例えば、個人が“７”を記載する方法は、その個人が米国出身か、仏国出身か、或いはさらに韓国出身かによっても全く異なりうる。図３Ａ及び図３Ｂで与えられる例を続けると、図６は、２つの段階を含む認識エキスパート１１８の実施形態を示している。認識エキスパート１１８の第１の段階である特徴抽出１２６は、動的又は静的な特徴の組み合わせに基づいている。例えば、動的な特徴は、入力ストロークの軌道から抽出でき、入力ストロークの位置、方向、曲率のような情報に基づいている。静的な性質は、入力ストロークのビットマップ表現から抽出でき、投影画（projections）及びヒストグラムに基づきうる。
【００４１】
本実施形態の認識エキスパート１１８の第２の段階は、ニューラルネットワーク１２８のようなパターン分類器により抽出された特徴の分類である。本実施形態では、ニューラルネットワークがシンプルな多層パーセプトロン（perceptron）になりうる。ニューラルネットワークは、また、ニューラルネットワークが、悪く分割された文字に対応するノード仮説を拒否できるようにする拡張クラスを含む。認識エキスパート１１８は、分割グラフの各ノードに対する確率又は認識スコアを有する文字候補のリストを出力する。代替実施形態は、ＤＮＮ（Deep Neural Network）、ＣＮＮ（Convolutional Neural Network）、又は、ＲＮＮ（Recurrent Neural Network）などの他の種類のニューラルネットワークを使用してもよい。さらに一般化すれば、任意の種類のパターン分類器がこの認識タスク（例えば、ＳＶＭ（Support Vector Machine）、ＨＭＭ（Hidden Markov Model））を処理するために使用されうる。
【００４２】
言語エキスパート１２０は、分割グラフにおける異なるパスについて言語学的意味を生成する。それは、言語情報１３０に応じて利用可能な他のエキスパートにより提案される候補をチェックする。この言語情報１３０は、語彙、通常表現などを含みうる。言語エキスパート１２０は、最良の認識パスを見つけることを目的とする。１つの実施形態において、言語エキスパート１２０は、最終状態オートマトン（決定論的ＦＳＡ）のような言語情報１３０の内容を表す言語モデルを探索することによって、これを行う。図７は、図３Ａ、図３Ｂ、及び図６の例について構築されており、単語ＢＥＡＮ、ＢＹ、ＣＡＲ、ＣＡＴ、及びＣＯＷのみを含む語彙を有する言語オートマトンを示している。さらに、図７は、単語境界を定義するためにユーザにダッシュ１３２の挿入を規定する言語エキスパートの実施形態を表している。
【００４３】
語彙制約に加え、言語エキスパート１２０は、特定の言語においてどのくらいの頻度で単語又は所定の単語列が現れるか、又は、特定のユーザに使用されるかをモデル化する統計情報を使用してもよい。例えば、単語トリグラム言語モデル（word trigram language model）は、分割グラフにおける所定のパスの解釈の言語的尤度を評価するために使用されうる。
【００４４】
分割エキスパート１１６、認識エキスパート１１８、及び言語エキスパート１２０は、入力ストロークを処理し、文字、単語、及び文のレベルで出力候補１２４を生成する動的プログラミングを通じて協調的に動作する。１つの実施形態において、動的プログラミングは、分割グラフ及び言語モデルの両方で最良のパスを検索するビーム検索技術に基づいている。この例において、最良のパスは、最小コストに対応するパスである。最小コストのパスは、以下のコストの合計として定義される。  
・分割グラフの対応するパスで遭遇する全ての文字候補のコスト。これらのコストは、分割グラフ内のこのパスに属する各ノードの確率又は認識スコアから評価されうる。１つの実施形態において、そのコストは、対数非線形関数（log non-linear function）を適用することによりニューラルネットワーク確率から評価される。  
・言語モデルの対応するパスで遭遇する全ての単語のコスト。これらのコストは、言語エキスパート１２０からのＮ−ｇｒａｍ確率から評価されうる。１つの実施形態において、そのコストは、対数非線形関数（log non-linear function）を適用することにより、言語エキスパート１２０からのＮ−ｇｒａｍ確率から評価される。
【００４５】
本オンライン手書き入力認識コンピュータプログラムの全体トレーニングのために、分類器（例えば、ニューラルネットワーク）１２８についての全てのパラメータ及びシステムのあらゆるメタパラメータの自動学習を伴うグローバル判別子トレーニング手法がテキストレベルで使用でき、けれども、他のトレーニングシステム及び方法も使用されうる。本オンライン重畳手書き入力認識システム及び方法を通じて、分割、認識、及び解釈が、連続的又は階層的というよりは同時に実行されることでユーザ入力の手書き入力認識の最良の結果が提供される。
【００４６】
図４について議論したように、本システムの分割エキスパート１１６は、単独の文字というよりは、一方が他方に重なるようにつながった多数の文字が入力として記載される続け書きを処理できる。図８は、本システムのさらなる例に係るオンライン手書き入力認識についてのシステムを模式的に示した図である。このさらなる例示的なシステムは、図２のシステム例と同様に、終局的には、文字、単語、及び文のレベルで出力候補１２４を協調的に生成する分割エキスパート１１６、認識エキスパート１１８、及び言語エキスパート１２０へと投入されるストロークをプリプロセッシング１１４する。分割エキスパート１１６、認識エキスパート１１８、及び言語エキスパート１２０は、主に、少なくとも認識エンジン９００の一部を形成する。プリプロセッシング１１４後のストロークを、続け書き入力の効率的な認識処理のための認識エンジン９００へ提供するために、本例のシステムは、さらに、プリプロセッシング１１４後の入力に対する重畳分類９０２を採用する。重畳分類９０２は、入力における続け書き、非続け書き、文字の重なりを分類する。そして、この分類された入力を認識エンジン９００へと渡す。同様の参照数字は、同様の機能的及び構造的な特徴を有する要素を表すものと理解されよう。
【００４７】
ここで重畳分類エキスパート９０２の動作を図８〜図１０を参照しながら議論する。続け書きユーザ入力はつながった文字を含み、そこでは全ての文字又はいくつかの文字のみがつながっている。重なるような方法で手書き入力をするとき、単語及び文の書き込みは、入力面の同じスペースに、ある時間的作法（time-wise manner）で、それら単語及び文についての複数の断片が覆われるように行われる。例えば、異なる時間に、少なくともいくつかの同じ空間を複数の断片が占めるように行われる。各断片は、１つ又は複数の完全な文字を含みうる。例えば、前にある及び／又は後に続く断片を結合したものが完全な単語を形成するような文字（letters）を含みうる。しかし、後述するように、各断片は、また、１つ又は複数の不完全な文字を含みうる。例えば、第１の断片は、一例として、文字“ｔ”又は“ｉ”の根元部分（root）を含みうる。そして、第２（次）の断片は、文字“ｔ”の‘横棒（bar）’又は文字“ｉ”の‘点（dot）’を含みうる。それらは、前にある及び／又は後に続く断片を結合したものが不完全な文字を形成し、断片を分類する上で特有の課題を提供する。
【００４８】
そのような重なりは、明らかに多くの考えられうる解釈を導き、認識エンジンの処理時間及び精度に影響する。本システムは、しかし、認識エンジンによりテストされる仮説数の減少を通して処理時間を改善し、及び、考えられうる仮説の制約を通して処理精度を改善する重畳入力のメカニズムを使用する。これらは有効なようである。これは次のようにして達成される。
【００４９】
図９Ａは、断片“ｈｅｌ”及び“ｌｏ”の重畳入力としての単語“ｈｅｌｌｏ”の続け書きユーザ入力を示す。図９Ｂは、ある時間的作法でのこの入力を示している。理解されうるように、第１の断片９０４は、完全な文字“ｈ”及び“ｅ”を含み、それらは続け書きの手書き入力（例えば、シングルストロークのような書き込み又は入力）の中でつながっている。そして、続け書きの手書き入力の中で完全な文字“ｌ”を含み、しかし、それは他の文字から離れている（例えば、分離されている、又はつながっていない）。さらに、第２の断片９０６は、続け書きの手書き入力の中で完全な文字“ｌ”及び“ｏ”を含み、それは他から離れている。これは単なる一例であり、そして、全ての文字がつながる及び／又は続け書きの筆跡になることもあるし、又は、いずれの文字もそのようにならないこともある。先に記述した本システムの例において、認識エンジンは、全ての文字を、断片それ自体に関係しない多くの仮説の処理を許容する分割グラフを構築するための断片にも分割する。本例では、重畳分類エキスパート９０２は、認識エンジン９００によって生成され、従って、テストされうる断片であって、仮説の数を制限する断片に関する入力を処理するように構成される。ゆえに、処理時間が低減され、そして、認識精度が向上する。
【００５０】
重畳分類エキスパート又は分類器９０２は、少なくとも部分的に、現在の及び隣接するストロークに基づいて、入力についての現在のストロークが新しい断片の開始であるかを検出し、それに応じてストロークを分類する。例えば、図９Ｂでは、第１の断片（鎖線で示されている）の中のつながった文字“ｈｅ”を形成するストロークが、断片の開始として分類器９０２により検出される。そして、第２の断片（鎖線で示されている）の中の分離した文字“ｌ”を形成するストロークが、他の断片の開始として分類器９０２により検出される。分類器９０２は、ゆえに、２つの分類された断片内の入力を分類し、その入力のいずれのストロークがいずれの分類された断片に属するのかを知る。そのストロークの入力についての時間情報を考慮し、分類器は、第１の分類された断片内の文字“ｌ”を形成する最終的なストロークがそれに続く第２の分類された断片内の第１の文字“ｌ”を形成するストロークの一部でないと分類しうる。この分類は分析されて認識エンジン９００に伝えられ、そのため、分割エキスパート１１６は、すでに、これら特定のストロークについての分割及び認識処理のための分割ポイントを知っている。
【００５１】
断片の開始を検出するために、分類器９０２は、情報部分の一つだけというよりむしろ、又は、ペンアップ及びペンダウンの情報だけというよりむしろ、入力ストロークの空間的、時間的、及び形状的な情報を使用する。つまり、もし時間的な情報だけが使用されると、認識エンジンは、時間に基づいてストローク断片についての推定をするか、分割にかかわらず全てのストロークについての仮説を進展させるかのいずれかを強制されるだろう。なぜなら、文字のストローク及び直前のストロークが同じ文字に属するかどうかを知る方法がないと思われるからである。さらに、もし、ペンアップ及びペンダウンの情報だけが分割を決定するのに使用された場合（単一文字重畳入力法のケースのような）、次に、第１の断片９０４における“ｈｅ”と“ｌ”との間のペンアップ及びペンダウンのイベントは、明らかに不正確であるが、分割イベントとして解釈されるであろう。さらに、もし、空間的な情報だけが分割の決定に使用された場合、例えば、例示されているように左から右への文字入力のケースにおいて（他の方向の入力、例えば、右から左、上から下など、についてもまた適用可能であることは理解されよう）、ペンダウンの位置が直前のペンアップの位置の左であるときの検出においては、認識エンジンを正しくない認識に導くことにより、不完全な文字が結合されないだろう。
【００５２】
図１０Ａは、断片“ｌｈｅ”及び“−”の重畳入力としての単語“ｔｈｅ”の続け書きユーザ入力を示している。図１０Ｂは、ある時間的作法でのこの入力を表している。理解されるように、第１の断片９０８は、互いにつながりがある文字“ｌ”及び“ｈ”と、続け書きの手書き入力でそれらから分離している文字“ｅ”とを含んでいる。第２の断片９１０は、完全な文字“−”を含んでいる。これは単なる一例であり、全ての文字がつながりうる及び／又は続け書きの手書き入力になりうる、又はそのような文字が全くないこともありうる。明らかに、この入力の中で、第２の断片の遅延ストローク“−”は、第１の断片の中の“ｔ”の‘横棒’として意図されたものである。しかし、もし、分類器９０２がこの入力の断片（例えば、分割されたもの）を時間的なもの、空間的なもの、又はペンアップ・ペンダウン行動だけに基づいて分類したならば、遅延ストローク“−”は、新たに分類される断片の開始として分類されるだろうし、ゆえに、認識エンジン９００が、２つの仮説“ｌｈｅ  −”及び“ｌｈｅ−”を正しくないという認識に導く要因になるだろう。これらの仮説はいずれもユーザ入力を反映していない。分類器９０２は、しかし、ストロークを断片に分類するために空間的な（及び時間的な）情報と共にストロークの形状を利用する。時間的な情報は、入力ストロークの時間的な順序についての知識を提供する。空間的な情報は、前の断片における最後のストロークと、重畳入力イベントを示す次の断片の最初のストロークとの相対位置の知識を提供するだけでなく、これらの断片の中の全てのストロークの相対位置の情報をも提供する。形状情報は、重畳ストロークが単一文字に属していそうか否かを考慮することを分類器９０２に許容する。例えば、隣接する又は直前の使用可能な不完全な断片が、まとまって、これら断片の任意の１つにおける完全な文字を形成するか否か、の考慮を許容する。
【００５３】
つまり、図１０Ｂの例において、分類器９０２は、空間的な（及び時間的な）情報に基づいて、遅延ストローク“−”がストローク“ｌｈｅ”に対する相対位置を有することを検出する。それはストローク“−”が完全なストローク“ｌｈｅ”のストロークセグメント“ｌ”に重なることを意味する。そして、分類器９０２は、これらの重なったストロークの形状情報に基づいて、もっともらしい単一の又は完全な文字を生成するために、これらの重なったストロークが結合されうると検出する。結果として、重畳分類エキスパート９０２は、新たな断片の開始として遅延ストロークを分類せず（すなわち、ストローク“−”は図１０Ｂにおいて鎖線で示されておらず、ストローク“ｌｈ”がそれで示されている）、単一の分類された断片を認識エンジンに提供する。よって、認識エンジンに２つの仮説“ｔｈｅ”及び“ｌｈｅ−”を評価させ、それは、明らかに正しいという認識結果を導くだろう。この方法で、重畳分類エンジン９０２は、ルールを実施する。そのルールは、分類された断片が完全な文字だけを含む、及び、不完全な文字を含んだ入力デジタルインクの隣接又は直近の断片が、既知の形状情報により定義されるように、単一の分類された断片として分類される、というものである。
【００５４】
さらに分割又は断片の分類に利用可能な基準は、文字の間のスペースの存在である。しかし、さらなる基準なしに、これは正しくない及び時間コストのかかる認識を導きうる。これは、入力面のサイズに依存し（例えば、手書き入力のためのデバイスの幅）、単語間にスペースがある文字列より長い文字列が重畳するやり方又はモードで入力されうることに理由がある。すなわち、単語、文、段落の断片が互いに重なることに理由がある。そうしたケースにおいて、文字間のスペースは、入力断片の指標というよりむしろ、認識される入力の一部である。一方、分類器による新しい断片の検出及び分類は、認識エンジンに、隣接する分類された断片の最後及び最初の文字の間のスペースの仮説を、考えられうる仮説の評価に含めさせるために使用されうる。
【００５５】
図８〜図１０の例の記載は、続け書きの手書き入力の中の重なった断片のそれぞれに挿入された多数の文字について作成されたものであるが、当業者であれば理解されるように、形状及び空間の情報の使用、又は、形状の、空間的な、時間的な（及び／又は、ペンアップ・ペンダウン）情報は、単一又は複数の非続け書きストロークの文字、例えば、印刷物の文字を断片に分類するために使用されうる。さらに、分類器は、全てのストロークを、新たな断片のもっともらしい生成というイベントが検出されるまで、同じ断片に属するとして扱うデフォルトの分類を提供するように構成されると考えてもよい。しかし、当業者において理解されるように、重畳分類は、重畳ストロークを、不完全なストロークの完成などの例外が検出されるまで、異なる断片に属するものとして扱うデフォルトの分類を提供する結合ストローク情報を使用しうる。形状情報を適用するために、分類器９０２は、分類器又はシステムのメモリに記憶されているもっともらしい文字について、ストロークの形状及びそれら互いの関係についてのデータベース、リスト、テーブル、又は辞書などを参照してもよい。さらに、重畳分類エキスパートは、断片を分類するために、直後の、すぐ後に続く、又は直接隣り合う断片だけ、又は、連続する入力断片の列についての、相対的な形状の及び位置の（及び時間の）情報を比較するように構成されうる。例えば、もし３つの連続する入力断片について述べるなら、もし分類器が、第１の及び第３の断片が完全な文字を含むらしいと検出したなら、分類器は、この情報を、全ての３つの入力断片のストロークを含む単一の断片を分類するために使用してもよい。その不完全な文字は、結合したものが完全な文字を形成するものであり、例えば、第１の断片の中の“ｔ”の根元部分‘ｌ’及び第３の断片の中の“ｔ”の横棒‘−’がある。
【００５６】
これまで記述されたものは最良の形態と考えられるもの及び／又は他の例である一方で、様々な修正がこれにされうるし、そして、ここで開示された構成は様々な形式及び例において実施されうるし、また、これらは多くの他の応用、組み合わせ、及び環境において適用されうるし、ここで記述されたことのいくつかだけが実施されてもよいということが理解されよう。当業者であれば開示された側面がその構成についての真の思想及び目的から外れることなく変形又は修正されうることは認識されるであろう。従って、その構成は、具体化された詳細、提示、及びこの明細書における記載例に限定されない。ここで開示された先進的な思想の真の範囲に含まれる任意の及び全ての修正及び変形が保護されることを目的とする。
【図１】
0006735775.tif 000002
【図２】
0006735775.tif 000003
【図３Ａ】
0006735775.tif 000004
【図３Ｂ】
0006735775.tif 000005
【図４】
0006735775.tif 000006
【図５】
0006735775.tif 000007
【図６】
0006735775.tif 000008
【図７】
0006735775.tif 000009
【図８】
0006735775.tif 000010
【図９Ａ】
0006735775.tif 000011
【図９Ｂ】
0006735775.tif 000012
【図１０Ａ】
0006735775.tif 000013
【図１０Ｂ】
0006735775.tif 000014