(57)【特許請求の範囲】
【請求項１】
重畳されたストローク入力について手書き文字認識を提供する方法を実施するために実行されるように適合されたコンピュータ読み取り可能なプログラムコードを含むコンピュータ読み取り可能な非一過性媒体であって、前記方法は、
複数の入力ストロークに基づいて、分割グラフを生成するステップであって、前記ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳されており、前記分割グラフは、前記少なくとも部分的に重畳されたストロークを考慮するように前記入力ストロークを分割することによって形成される文字の推測に対応するノードを含む、ステップと、
言語認識情報に基づいて、前記分割グラフの各ノードに認識スコアを割り当てるステップと、
前記認識スコアと言語モデルとに基づいて、前記入力ストロークの言語的意味を生成するステップであって、前記言語モデルに基づいて、前記重畳された入力における単語の境界を認識することを含む、ステップと、
前記分割グラフと前記認識スコアと前記言語モデルとにつき、同時に分析を行うことに基づいて、出力を提供するステップと
を含むことを特徴とするコンピュータ読み取り可能な非一過性媒体。
【請求項２】
前記入力ストロークは前処理され、前記前処理は、前記入力ストロークの正規化と平滑化とを少なくとも含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な非一過性媒体。
【請求項３】
前記分割グラフは、セグメントの構成要素に分けられた連続する入力ストロークに基づいていることを特徴とする請求項１または請求項２に記載のコンピュータ読み取り可能な非一過性媒体。
【請求項４】
認識スコアを前記割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含むことを特徴とする請求項１乃至請求項３のいずれか１項に記載のコンピュータ読み取り可能な非一過性媒体。
【請求項５】
前記ニューラルネットワークは、多層パーセプトロンであることを特徴とする請求項４に記載のコンピュータ読み取り可能な非一過性媒体。
【請求項６】
重畳された入力ストロークについて手書き文字認識を提供する方法であって、前記方法は、
複数の入力ストロークに基づいて、分割グラフを生成するステップであって、前記ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳されており、前記分割グラフは、前記少なくとも部分的に重畳されたストロークを考慮するように前記入力ストロークを分割することによって形成される文字の推測に対応するノードを含む、ステップと、
言語認識情報に基づいて、前記分割グラフの各ノードに認識スコアを割り当てるステップと、
前記認識スコアと言語モデルとに基づいて、前記入力ストロークの言語的意味を生成するステップであって、前記言語モデルに基づいて、前記重畳された入力における単語の境界を認識することを含む、ステップと、
前記分割グラフと前記認識スコアと前記言語モデルとにつき、同時に分析を行うことに基づいて、出力を提供するステップと
を含むことを特徴とする方法。
【請求項７】
前記入力ストロークは前処理され、前記前処理は、前記入力ストロークの正規化と平滑化とを少なくとも含む
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記分割グラフは、セグメントの構成要素に分けられた連続する入力ストロークに基づいていることを特徴とする請求項６または請求項７に記載の方法。
【請求項９】
認識スコアを前記割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含むことを特徴とする請求項６乃至請求項８のいずれか１項に記載の方法。
【請求項１０】
前記ニューラルネットワークは、多層パーセプトロンであることを特徴とする請求項９に記載の方法。
【請求項１１】
コンピュータデバイスへの重畳されたストローク入力について手書き文字認識を提供するシステムであって、前記コンピュータデバイスは、
プロセッサと、
前記プロセッサの制御のもとで前記入力を認識するための少なくとも１つのコンピュータ読み取り可能なプログラムとを含み、前記少なくとも１つのプログラムは、
複数の入力ストロークに基づいて、分割グラフを生成し、前記ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳され、前記分割グラフは、前記少なくとも部分的に重畳されたストロークを考慮するように前記入力ストロークを分割することによって形成される文字の推測に対応するノードを含み、
言語認識情報に基づいて、前記分割グラフの各ノードに認識スコアを割り当て、
前記認識スコアと言語モデルとに基づいて、前記入力ストロークの言語的意味を生成し、前記言語モデルに基づいて、前記重畳された入力における単語の境界を認識することを含み、
前記分割グラフと前記認識スコアと前記言語モデルとにつき、同時に分析を行うことに基づいて、出力を提供する、
ように構成されることを特徴とするシステム。
【請求項１２】
前記分割グラフは、セグメントの構成要素に分けられた連続する入力ストロークに基づいていることを特徴とする請求項１１に記載のシステム。
【請求項１３】
認識スコアを前記割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含むことを特徴とする請求項１１または請求項１２に記載のシステム。
【請求項１４】
前記ニューラルネットワークは、多層パーセプトロンであることを特徴とする請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１４年４月４日出願の米国特許出願１４／２４５,６０１号に対する優先権を主張するものであり、参照によりその全体が本明細書に組み込まれ、本明細書の一部を構成する。
【０００２】
本発明は、一般に、ユーザがインプットした様々な文字についての手書き文字を認識することが可能なコンピュータデバイスインターフェースの分野に関する。
【背景技術】
【０００３】
コンピュータデバイスは、ユビキタスになり続けている。それらは、デスクトップコンピュータや、ラップトップコンピュータや、タブレットＰＣや、電子書籍リーダーや、携帯電話や、スマートフォンや、ウェアラブルコンピュータや、全地球測位システム（ＧＰＳ）装置や、エンタプライズデジタルアシスタンツ（ＥＤＡｓ）や、携帯情報端末（ＰＤＡ）や、ゲームのコンソールなどの形態を取る。さらに、コンピュータデバイスは、自動車や、トラックや、農機具や、製造装置や、建物の環境制御（例、照明、ＨＶＡＣ）や、家庭用や商業用の電化製品に組み込まれる。
【０００４】
コンピュータデバイスは、一般に、中央処理装置（ＣＰＵ）、何らかの種類のメモリ、入力及び出力装置のような少なくとも１つの処理要素から構成される。さまざまなコンピュータデバイスとそれに伴う使用により、様々な入力装置が必要となる。そのような入力装置の１つには、ユーザの指、あるいはペン、またはスタイラスペンのような道具とタッチセンサー式の表面とでの接触を通じてユーザの入力が受け入れられるタッチスクリーンやタッチパッドのようなタッチセンサー式の表面がある。別の入力装置には、その上方でユーザによって行われたジェスチャーを感知する入力表面がある。これらの入力方法のどちらかを、描画または文章を入力するために、一般に用いることができる。ユーザによる入力が文章である場合、コンピュータデバイスはオンライン手書き文字認識システムあるいは方法を用いてユーザの手書き文字を解釈しなければならない。
【０００５】
一般に、ユーザがタッチセンサー式の表面に触れる場合（ペンダウン）のようなストロークの開始や、ユーザがタッチセンサー式の表面に触れるのをやめる場合（ペンアップ）のようなストロークの終了、及びユーザが、ストロークの開始と終了との間に彼または彼女の指で行うあらゆる動き（ジェスチャーまたはストローク）が、オンライン手書き文字認識システムあるいは方法によって、モニターされる。
【０００６】
オンライン手書き文字認識システムあるいは方法は、通常、前処理段階と分割段階と認識段階と解釈段階とから構成される。一般に、前処理段階では不適切な入力データを廃棄し、正規化し、サンプリングをし、さらに適切なデータからノイズを取り除く。分割段階では、入力データを個々の文字や単語に分解する様々な方法を規定する。認識には、一般に、特徴を抽出する段階を含み、それは様々な入力のセグメントの特性を明らかにするものである。認識は分類段階をも含み、それはセグメントを考えられる文字候補に関連付けるものである。最後に、解釈段階では、文字候補に関連付けられる文字及び／または単語を同定することを一般に含む。実際には、オンライン手書き文字認識システムまたは方法は、さらなる段階と共にこれらの段階を含み得る。さらに、オンライン手書き文字認識システムまたは方法は、それぞれの段階を明確に線引きしていないことがありうる。
【０００７】
オンライン手書き文字認識システムまたは方法は、単一ストロークまたは多数ストロークであることができる。単一ストローク認識では、アルファベットのそれぞれの文字について単一ストロークの省略表現を用いる（例、Ｐａｌｍ社のグラフティ文字）。これらのシステムまたは方法では、入力エラーがより少なくなるが、ユーザが新しいストロークのパターンをすべてのアルファベットについて記憶することが必要となる。多数ストローク認識は自然な手書き文字を認識でき、そして日本語や漢字のような、単一ストロークには簡単に単純化しない文字を含む言語でオンライン手書き文字認識システムを用いる場合に、しばしば必要となる。
【０００８】
コンピュータデバイスのタイプにより、利用される手書き文字認識システムまたは方法のタイプを決定することもできる。例えば、入力表面が充分に大きい場合（例えばタブレットなど）、ユーザは１枚の紙の上で書いているかのように、入力表面上、あるいは上方で、文章あるいはデータをどこででも入力することができる。装置が小さくなるにつれて、マルチボックスやシングルボックスのような様々なシステムあるいは方法が発達してくる。マルチボックスシステムまたは方法は、入力表面を、例として３つのボックスのような複数の領域に分割し、ユーザは、それぞれのボックスにそれぞれの文字を次々に入力していく。これらは、文字の分割が最小限度になるか、あるいは不必要となるため有利である。それらは、多数ストロークの文字に対しても用いることができ、それは、分離している文字を認識する技術を用いて分析されることができる。
【０００９】
さらに小さい装置については、入力表面は複数のボックスに対して充分な大きさでないこともあり得るため、その表面は、基本的にシングルボックスの筆記のインターフェースとなる。この例においては、一度に１文字だけ書くことができる。シングルボックスのインターフェースは、単一ストロークの認識システムに適しているが、日本語や中国語のようなある種の言語は、単一ストロークの省略表現へ簡単には単純化しない多数ストロークの文字を有する。さらに、言語にかかわらず、最も自然な手書き文字には、多数ストロークの文字が含まれる。
【００１０】
多数ストロークシステムまたは方法を用いるシングルボックスのインタフェースには、文字の始めと終わりを決定することと、入力文字の画像を明確に表示することとを含むさらなる問題が発生する。文字の始めと終わりとを決定するための一つの方法では、ユーザは、それぞれの文字の間を明確に区切ることを要求される。しかし、これはユーザがデータを入力する速度を落とすことになるため、最適とはならない。ユーザが連続して中断することなく文字を入力することができるシングルボックスシステムまたは方法において、入力文字は互いに重なっているかあるいは重畳していることがよくある。これは重畳手書き文字、重なり手書き文字またはオントップ筆記文字と呼ばれる。
【００１１】
現在のオンライン重畳手書き文字認識システム及び方法では、分割、認識及び解釈を連続というよりはむしろ同時に行うことによって、ユーザの入力手書き文字認識についての結果を改善している。現在のシステム及び方法では、工程に階層を設けるよりはむしろ同じレベルでこれらの処理過程を行なっている。分割、認識及び解釈を共同して存在させることにより、現在のシステムは、ユーザの入力に基づいて、最も考えられる文字、単語、及び文の候補をユーザに提供する。
【発明の概要】
【００１２】
以下で述べられる本発明の実例は、オンライン重畳手書き文字認識で使用される方法、システム及びソフトウェアを提供する。これらにより、ユーザは、文字の間を明確に区切ることなく、彼または彼女の自然な手書き文字によりコンピュータ装置に文字を入力することができる。現在の手書き文字認識システム及び方法には、入力表面の形態となっている入力装置に接続されるコンピュータ装置が含まれる。ユーザは、圧力を加えるか、彼または彼女の指、あるいはスタイラスペンやペンのような道具を用いて入力表面の上方でジェスチャーを行うことによって入力を行うことができる。本システム及び方法では、入力のストロークがモニターされる。入力のストロークの前処理を行った後、分割エキスパートと、認識エキスパートと、言語エキスパートとが、同時に入力データを分析する。入力のストロークを処理し、文字、単語、及び文のレベルでの候補を生成する動的プログラミングを通じて、これらの３つのエキスパートは、共同して作業する。
【００１３】
開示されているシステム及び方法の目的は、ユーザの自然な手書き文字の文体を解釈することのできるシステム及び方法を提供することである。これは、ユーザによる入力及び認識エキスパートと言語エキスパートとからの入力に基づき、分割グラフを生成する分割エキスパートと、文字候補のリストと分割グラフのそれぞれのノードの認識スコアとを関連付ける認識エキスパートと、分割グラフにおける様々なパスの言語的な意味を生成する言語エキスパートとが、動的プログラミングを通じて、全部で共同して動作するシステム及び方法を提供することにより実行することが可能となる。
【００１４】
開示されているシステム及び方法の別の目的は、連続した文字の間にあらゆる明確な区切りを設けずに、文字が重ねて書かれている重畳手書き文字を認識することができるオンライン手書き文字認識システム及び方法を提供することである。これは、動的プログラミングを通じて、分割エキスパートと認識エキスパートと言語エキスパートとが共同して作業して、文字、単語、及び文章の入力に対して最も適した候補を提供するシステム及び方法を提供することにより実行することが可能となる。
【００１５】
開示されているシステム及び方法のさらに別の目的は、多数ストローク文字を認識することができるオンライン手書き文字認識システム及び方法を提供することである。これは、分割エキスパートがユーザ入力に基づく分割グラフを生成し、認識エキスパート及び言語エキスパートが分割グラフを分析することを動的プログラミングが含むシステム及び方法を提供することにより実行することが可能となる。
【００１６】
開示されているシステム及び方法の別の目的は、くっついた文字が次々と重ねて書かれた筆記体文字を認識することのできるオンライン手書き文字認識システム及び方法を提供することである。これは、分割エキスパートがストロークをその構成要素となるセグメントに分けるための位置を定義する特定のポイントを検出するシステム及び方法を提供することにより実行することが可能となる。
【００１７】
開示されているシステム及び方法のさらなる目的は、具体的な入力ストロークか、または単語の境界を自動的に検出することに基づいて、単語の境界を提供するオンライン手書き文字認識システム及び方法を提供することである。これは、システムおよび方法を提供し、このシステムが分割エキスパートと認識エキスパートと言語エキスパートとを含み、これらのすべてが具体的な入力ストロークを予期し、入力文字を単語に分けること、すなわち３つのエキスパートが全ての入力文字を総合的に分析することによって単語の変わり目を自動的に追加することによって、実行できる。
【００１８】
いくつかの態様において、本開示は重畳されたストローク入力について手書き文字認識を提供する方法を実施するために実行されるように適合されたコンピュータ読み取り可能なプログラムコードを含むコンピュータ読み取り可能な非一過性媒体を提供し、方法は、複数の入力ストロークに基づいて分割グラフを生成するステップであって、ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳されており、分割グラフは、少なくとも部分的に重畳されたストロークを考慮するように入力ストロークを分割することによって形成される文字の推測に対応するノードを含むステップと、言語認識情報に基づいて分割グラフの各ノードに認識スコアを割り当てるステップと、認識スコアと言語モデルとに基づいて入力ストロークの言語的意味を生成するステップであって、言語モデルに基づいて重畳された入力における単語の境界を認識することを含むステップと、分割グラフと認識スコアと言語モデルとにつき、同時に分析を行うことに基づいて、出力を提供するステップとを含む。
【００１９】
入力ストロークは前処理されてもよく、前処理は、入力ストロークの正規化と平滑化とを少なくとも含む。
【００２０】
分割グラフは、セグメントの構成要素に分けられた連続した入力ストロークに基づいてもよい。
【００２１】
認識スコアを割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含んでもよい。
【００２２】
ニューラルネットワークは、多層パーセプトロンであってもよい。
【００２３】
いくつかの態様において、本開示は重畳された入力ストロークについて手書き文字認識を提供する方法を提供し、方法は、複数の入力ストロークに基づいて分割グラフを生成するステップであって、ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳されており、分割グラフは、少なくとも部分的に重畳されたストロークを考慮するように入力ストロークを分割することによって形成される文字の推測に対応するノードを含むステップと、言語認識情報に基づいて分割グラフの各ノードに認識スコアを割り当てるステップと、認識スコアと言語モデルとに基づいて入力ストロークの言語的意味を生成するステップであって、言語モデルに基づいて重畳された入力における単語の境界を認識することを含むステップと、分割グラフと認識スコアと言語モデルとにつき、同時に分析を行うことに基づいて出力を提供するステップとを含む。
【００２４】
入力ストロークは前処理されてもよく、前処理は、入力ストロークの正規化と平滑化とを少なくとも含んでもよい。
【００２５】
分割グラフは、セグメントの構成要素に分けられた連続した入力ストロークに基づいてもよい。
【００２６】
認識スコアを割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含んでもよい。
【００２７】
ニューラルネットワークは、多層パーセプトロンであってもよい。
【００２８】
いくつかの態様において、本開示はコンピュータデバイスへの重畳されたストローク入力について手書き文字認識を提供するシステムを提供し、コンピュータデバイスは、プロセッサと、プロセッサの制御のもとで入力を認識するための少なくとも１つのコンピュータ読み取り可能なプログラムとを含み、少なくとも１つのプログラムは、複数の入力ストロークに基づいて、分割グラフを生成し、ストロークのうちの少なくとも２つが互いに少なくとも部分的に重畳され、分割グラフは、少なくとも部分的に重畳されたストロークを考慮するように入力ストロークを分割することによって形成される文字の推測に対応するノードを含み、言語認識情報に基づいて分割グラフの各ノードに認識スコアを割り当て、認識スコアと言語モデルとに基づいて入力ストロークの言語的意味を生成し、言語モデルに基づいて重畳された入力における単語の境界を認識することを含み、分割グラフと認識スコアと言語モデルとにつき、同時に分析を行うことに基づいて出力を提供するように構成される。
【００２９】
分割グラフは、セグメントの構成要素に分けられた連続した入力ストロークに基づいてもよい。
【００３０】
認識スコアを割り当てることは、特徴抽出段階とニューラルネットワークによって抽出された特徴の分類とを含んでもよい。
【００３１】
ニューラルネットワークは、多層パーセプトロンであってもよい。
【００３２】
本システム及び方法は、その実例の以下の詳細な記述と、図面も共に考慮されることにより充分に理解されることになる。
【図面の簡単な説明】
【００３３】
【図１】図１は、本システムの一例によるコンピュータデバイスのブロック図を示す。
【図２】図２は、本システムの一例によるオンライン手書き文字認識のためのシステムのブロック図を示す。
【図３Ａ】図３Ａは、本システムの一例による考えられるユーザ入力の説明図を示す。
【図３Ｂ】図３Ｂは、本システムの一例による分割グラフの概略図を示す。
【図４】図４は、本システムの一例による筆記体のユーザ入力のうち、考えられるユーザ入力の概略図を示す。
【図５】図５は、本システムの一例による筆記体のユーザ入力の分割に関する概略説明図である。
【図６】図６は、本システムの一例による認識エキスパートの概略説明図を示す。
【図７】図７は、本システムの一例による言語オートマトンの概略説明図を示す。
【発明を実施するための形態】
【００３４】
以下の詳細な説明において、関連のある教示の完全な理解を提供するために、数多くの具体的な細部を実例の方法により説明する。しかしながら、これらの具体的な細部なしでも本教示を実施し得ることが、当業者には明らかであろう。他の例においては、本教示の態様を不必要に分かりにくくしないように、周知の方法、手続き、構成要素、及び／または回路を詳細なレベルではないが、相対的に高度なレベルで説明している。
【００３５】
ここで述べられる様々な技術は、一般に、オンライン手書き文字認識に関するものであり、より具体的には、様々なコンピュータデバイス上での重畳された手書き文字認識についてのシステムと方法とに関するものである。ここで述べられるシステムと方法は、最善と考えられる文字や単語や文章の候補を提供する分割と認識と解釈との同時の処理により、ユーザの自然な手書き文字入力を認識するために使用され得る。
【００３６】
図１は、コンピュータデバイス１００のブロック図を示す。このコンピュータデバイスは、デスクトップコンピュータや、ラップトップコンピュータや、タブレットＰＣや、電子書籍リーダーや、携帯電話や、スマートフォンや、ウェアラブルコンピュータや、デジタルウォッチや、全地球測位システム（ＧＰＳ）装置や、エンタプライズデジタルアシスタント（ＥＤＡ）や、携帯情報端末（ＰＤＡ）、またはゲームコンソールであることができる。コンピュータデバイス１００は、少なくとも１つの処理素子と、何らかの形態のメモリと、入力及び／または出力（Ｉ／Ｏ）装置とを含む。コネクタや、配線や、バスや、ケーブルや、バッファや、電磁気リンクや、ネットワークや、モデムや、トランスデューサや、ＩＲポートや、アンテナや、または当業者が知る他の手段のような、入力及び出力手段を通じて、構成要素は、互いに通信する。
【００３７】
コンピュータデバイス１００は、少なくとも１つの入力表面１０４を含む。入力表面１０４は、抵抗性、表面弾性波、容量性、赤外線グリッド、赤外線アクリル投影、光学イメージ、分散信号技術、アコースティックパルス認識、または当業者が知る他の適切な技術のような技術を用いても良い。入力表面１０４は、その周辺を明確に識別する、常設の境界、あるいは動画生成の境界によって接続されてもよい。
【００３８】
入力表面１０４に加えて、コンピュータデバイス１００は、ローカルインタフェースを介して通信的に結合される１つ以上の付加的なＩ／Ｏ装置（または周辺機器）を含んでもよい。ローカルインタフェースは、制御装置や、バッファ（キャッシュ）や、ドライバや、リピーターや、受信機のような、単純化するために除外されるが当業者に知られている、通信を可能にするための付加的な要素を有してもよい。さらに、ローカルインタフェースは、他のコンピュータ構成要素間で適切に通信できるようにするためのアドレスや、制御手段及び／またはデータ通信を含んでもよい。
【００３９】
そのようなＩ／Ｏデバイスの１つは、画像や、文章や、動画のようなコンピュータデバイスのデータを出力する少なくとも１つのディスプレイ１０２であってもよい。ディスプレイ１０２は、ＬＣＤや、プラズマや、ＣＲＴや、または当業者に知られているような他の適切な技術であってもよい。少なくとも、一部のディスプレイ１０２は、入力表面１０４と同じ場所に設置することもあり得る。他の付加的なＩ／Ｏ装置は、キーボードや、マウスや、スキャナや、マイクロフォンや、タッチパッドや、バーコードリーダーや、レーザーリーダや、無線装置リーダーや、当業者に知られている他のあらゆる適切な技術のような入力装置を含んでもよい。その上、Ｉ／Ｏ装置は、プリンタや、バーコードプリンタや、または当業者に知られている他のあらゆる適切な技術のような出力装置をも含んでもよい。最後に、Ｉ／Ｏ装置は、変調器／復調器（モデム；別の装置や、システムや、またはネットワークにアクセスするため）や、無線周波数（ＲＦ）あるいは他のトランシーバーや、電話インタフェースや、ブリッジや、ルーターや、または当業者に知られている他のあらゆる適切な技術のような入力と出力との双方を伝達する装置をさらに含んでもよい。
【００４０】
コンピュータデバイス１００は、プロセッサ１０６をも含み、それはソフトウェア、特に、メモリ１０８内に記憶されるソフトウェアを実行するためのハードウェア装置である。プロセッサは、あらゆるオーダーメイドの、または商業的に入手可能な一般目的のプロセッサや、中央処理装置（ＣＰＵ）や、半導体を主材料としたマイクロプロセッサや（マイクロチップ、またはチップセットの形態で）、マイクロプロセッサや、マイクロコントローラや、デジタルシグナルプロセッサ（ＤＳＰ）や、特定用途向け集積回路（ＡＳＩＣ）や、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）や、または他のプログラムで制御できる論理デバイスや、個別ゲートまたはトランジスタ論理や、個別ハードウェア構成要素や、ステートマシンや、または、当業者に知られるソフトウェア命令を実行するために設計されたこれらのあらゆる組み合わせであってもよい。商業的に入手可能な適切なマイクロプロセッサの例は以下の通りである：ヒューレート-パッカード社のＰＡ-ＲＩＳＣシリーズのマイクロプロセッサ、インテル社の８０ｘ８６、またはＰｅｎｔｉｕｍシリーズのマイクロプロセッサ、ＩＢＭのＰｏｗｅｒＰＣマイクロプロセッサ、サンマイクロシステム社のＳｐａｒｃマイクロプロセッサ、モトローラ社の６８ｘｘｘシリーズのマイクロプロセッサ、ＤＳＰマイクロプロセッサ、またはＡＲＭマイクロプロセッサ。
【００４１】
メモリ１０８は、揮発性のメモリ要素（例、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ等のようなＲＡＭ））と、不揮発性のメモリ要素（例、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気または光学テープ、メモリレジスタ、ＣＤ-ＲＯＭ、ＷＯＲＭ、ＤＶＤ、独立ディスク冗長アレイ（“ＲＡＩＤ”）や、別の直接アクセス記憶装置（“ＤＡＳＤ”など））とのうちのどれでも１つ、または組み合わせを含むことができる。さらに、メモリ１０８は、電子の、磁気の、光学の、及び／または他のタイプの記憶装置を組み入れてもよい。メモリ１０８は、様々な構成要素が互いに離れている状態にあるが、プロセッサ１０６によってアクセスされることもできる分散型のアーキテクチャを有することもできる。メモリ１０８は、プロセッサ１０６に連結されているため、プロセッサ１０６は、メモリ１０８から情報を読むことができ、さらにメモリ１０８に情報を書き込むことができる。別の方法では、メモリ１０８はプロセッサ１０６に不可欠であってもよい。別の例では、プロセッサ１０６とメモリ１０８とは両方とも単一のＡＳＩＣ内、または他の集積回路内に存在してもよい。
【００４２】
メモリ１０８内のソフトウェアは、オンライン手書き文字コンピュータプログラムを含み、それは１つ以上の分離したプログラムを含んでもよく、１つ以上の分離したプログラムのそれぞれは論理機能を実施するための実行可能命令の順序つきリストを構成する。オペレーティングシステム１１０は、プロプライエタリオペレーティングシステムや、または、ＰＡＬＭ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣ及びＩＰＨＯＮＥ ＯＳ（登録商標）、ＬＩＮＵＸ、ＡＮＤＲＯＩＤ（登録商標）などのような商業的に入手可能なオペレーティングシステムであってもよい。他のオペレーティングシステムも、ここで開示されているシステムと方法との趣旨から外れずに利用してもよいことは当然のことである。
【００４３】
メモリ１０８は、本明細書で述べられている手書き文字認識や、完全に異なる機能や、あるいは両者に関連する、他のアプリケーションプログラム１１２を含んでもよい。他のアプリケーションプログラム１１２は、製造時にコンピュータデバイス１００に提供されたプログラムを含み、製造後にコンピュータデバイス１００にダウンロードされたプログラムをさらに含んでもよい。いくつかの例では、テキストエディタ、電話自動ダイヤル装置、電話帳、インスタントメッセージ機能、メールプログラム、ワードプロセッサプログラム、ウェブブラウザ、カメラなどを含む。
【００４４】
サポート及びコンプライアンス機能を有する、オンライン手書き文字認識コンピュータプログラムは、ソースプログラムや、実行可能プログラム（オブジェクトコード）や、スクリプトや、または、実行される一連の命令を構成するあらゆる他のエンティティであってもよい。ソースプログラムである場合、プログラムは、それがメモリ内に含まれていてもいなくても、オペレーティングシステムと接続して適切に作動するために、コンパイラや、アセンブラや、インタープリタなどによって翻訳されることが必要となる。さらに、サポート及びコンプライアンス機能を有する、オンライン手書き文字認識コンピュータプログラムは、(a)クラスのデータとメソッドとを有するオブジェクト指向のプログラム言語として書かれることができ、または、（ｂ）ルーチン、サブルーチン、及び／または関数を有する手続き型プログラミング言語として書かれることができる。例としては、Ｃと、Ｃ++と、Ｐａｓｃａｌと、Ｂａｓｉｃと、Ｆｏｒｔｒａｎと、Ｃｏｂｏｌと、Ｐｅｒｌと、Ｊａｖａ（登録商標）と、Ａｄａとがあげられるが、これらに限定されるものではない。
【００４５】
システムは、入力表面１０４を介してユーザによって入力されたストロークを、プロセッサ１０６が検出したときに起動される。ユーザは、指や、または、ペンやスタイラスペンのような何らかの道具を用いてストロークを入力してもよい。ストロークは、少なくとも、ストローク開始の位置と、ストローク終了の位置と、ユーザがストロークの開始とストロークの終了位置とを接続するパスと、によって特徴付けられる。様々なユーザが自然に同じ文字を書くと、少し変化が生じるかもしれないので、本システムは、それぞれの文字が入力され得る様々な方法に対して順応する。
【００４６】
図２は、本システムの一例によるオンライン手書き文字認識システムの概略図である。いったん、少なくとも一つの入力ストロークで起動されると、システムは当該ストロークの前処理１１４を行う。サイズの正規化及び／または入力を平滑化するためのＢスプラインの近似値のような方法を施すことにより、前処理１１４はストロークの開始位置と、終了位置とにつながるパスを正規化することを含むことができる。次に、入力ストロークは、動的プログラミングを通じて協働する３つのエキスパート（分割エキスパート１１６と、認識エキスパート１１８と、言語エキスパート１２０）に渡されて、文字と、単語と、文のレベルとでの出力候補１２４を生成する。
【００４７】
分割エキスパート１１６は、入力ストロークを、単語仮説と、個々の文字仮説とに分割する様々な方法を定義する。文字仮説を形成するために、分割エキスパート１１６は、元の入力の連続したストロークをグループ化する。これは、各ノードが少なくとも１つの文字仮説に対応し、文字間の隣接性制約が、ノードの接続によって処理されるという分割グラフをもたらす。対応する仮説が共通したストロークを有さないが、ストロークが元の入力において連続している場合、ノードは隣接しているものとみなされる。図３Ａは、本システムの一例による、単語ＢＥＡＮの、考えられるユーザ入力を示す。具体的には、図は、多数ストローク文字を用いた重畳筆記文字の一例を表示する。図３Ｂは、本システムの一例によって作成された、図３Ａの入力の考えられる分割グラフを示す。
【００４８】
また、重畳手書き文字認識システム及び方法は、どこで一つの単語が終わり別の単語が始まるかを決定しなければならない。本システムと本方法とは、単語の境界を検索する複数の実施形態が可能となる。一実施形態においては、ユーザは、各単語の後に特有のジェスチャーを入れることが要求される。この実施形態においては、特有のジェスチャーは、スペース文字としての出力となる。この実施形態は、入力ストロークを単語の推測と個々の文字の推測とに分割する様々な方法を減らすため、分割プロセスにより強固さをもたらす。しかし、この実施形態は、各単語の終わりを示す特有のジェスチャーを加えることをユーザに強要し、それは、何人かのユーザによって忘れられるおそれがある。
【００４９】
別の実施形態では、単語を分ける特有のジェスチャーを要求しない。代わりに、オンライン手書き文字認識コンピュータプログラムでは、認識エキスパート１１８及び／または言語エキスパート１２０の支援をもって単語の境界を自動的に検出し、このことは、以下に詳細が述べられる。例えば、言語エキスパート１２０は、言語情報１３０を用いて、とりわけ、語彙の知識と、Ｎ-ｇｒaｍモデル、構文解析、意味解析などのような、所与の言語において一連の連続した単語の可能性をモデリングする技術とに基づいて、単語の境界を検出する。
【００５０】
例えばユーザは、英語の言語から抽出された言語情報１３０に基づく一実施形態として、重畳筆記で“Ｗｈaｔｔｉｍｅｉｓｉｔ？”という文字の並びを入力するかもしれない。この別の実施形態では、“Ｗｈaｔ ｔｉｍｅ ｉｓ ｉｔ？”と分割された単語を出力し、入力ストロークに対してグローバルな意味を構成し、言語情報１３０に基づいて単語の境界を検索する。この実施形態には、ユーザが、各単語の間に特有のジェスチャーを入れずに一連の単語を入力することを可能にするという有利な点がある。
【００５１】
別の実施形態では、前の二つの方法を結び付けることができる。その場合、ユーザは、単語の境界を検出することをより強固にするために、各単語の後に特有のジェスチャーを入れることができる。しかし、ユーザがジェスチャーを入れ忘れたときはいつも、手書き文字認識システムは、認識エキスパート１１８及び／または言語エキスパート１２０の支援をもって単語の境界を検出することができる。
【００５２】
一つの例において、図３Ａと、図３Ｂとで見られるように、分割エキスパートは、各個々の文字がペンアップにより隣接する文字と分けられた手書き活字式の文字入力に限定されていない。本システムの分割エキスパート１１６は、くっついた文字が次々と重ねて書かれる筆記体を処理することもできる。図４は、単語“ｂｅ”と、“ａｎ”との筆記体のユーザ入力を説明する。筆記体のユーザ入力を解釈する場合、分割エキスパート１１６は、ストロークをセグメントの構成要素に分けるための位置を定義する特定の点の検出に基づいて、各ストロークを分割する。図５は、筆記体の“ａｎ”がセグメントの構成要素に分割される一例を説明する。ストロークをセグメントの構成要素に分けるための特定の点は、交差する点、ストロークの軌跡の傾きにおける変化などによって定義される。これらのセグメントの構成要素は、分割グラフを構成するために使用される。
【００５３】
認識エキスパート１１８は、文字候補のリストを、分割グラフの各ノードに対する確率、または認識スコアに関連付ける。これらの確率、または認識スコアは、言語認識情報１２２に基づく。言語認識情報は、特定の言語に内在する字母表の全ての様々な文字と、シンボルとを定義する。この情報は、言語依存的であり、字母表の文字を書く様々な個人のスタイルを認識する能力はもちろん、字母表の文字における一般的な違いも構成する。例えば、個人が“７”を書く方法は、その個人が米国、フランス、または実に韓国出身であるかどうかに応じてかなり異なり得る。図３Ａ及び図３Ｂの例に続き、図６は、２つの段階を含む認識エキスパート１１８の実施形態を説明する。認識エキスパート１１８の第１の段階、特徴抽出１２６は、動的及び静的な特徴との組み合わせに基づく。例えば、動的な特徴は、入力ストロークの軌跡から抽出されることができ、入力ストロークの位置や方向や湾曲とのような情報に基づいている。静的な特徴は、入力ストロークのビットマップの表現から抽出することができ、射影とヒストグラムに基づくことができる。
【００５４】
本実施形態の認識エキスパート１１８の第２の段階は、ニューラルネットワーク１２８のようなパターン分類子によって抽出される特徴の分類である。本実施形態において、ニューラルネットワークは、単純な多層パーセプトロンとなりうる。ニューラルネットワークは、不当に分割された文字に対応するノード仮説を、ニューラルネットワークが拒否することをできるようにする追加のクラスを含むこともできる。認識エキスパート１１８は、分割グラフの各ノードに対する確率、または認識スコアを用いて、文字候補のリストを出力する。他に取りうる実施形態においては、ディープニューラルネットワークや、畳み込みニューラルネットワークや、または、リカレントニューラルネットワークのような、別の種類のニューラルネットワークを活用することができるかもしれない。より一般的には、あらゆる種類のパターン分類子がこの認識タスクに対処するために使用されることができる（例、サポートベクターマシーン、隠れマルコフモデル）。
【００５５】
言語エキスパート１２０は、分割グラフにおける様々なパスの言語的な意味を生成する。それは、利用できる言語情報１３０に応じた他のエキスパートによって示唆される候補をチェックする。この言語情報１３０は、語彙、正規の表現などを含むことができる。言語エキスパート１２０は、最上の認識パスを発見することを目指す。一実施形態において、言語エキスパート１２０は、言語情報１３０の内容を表す最終状態オートマトン（決定的ＦＳＡ）のような言語モデルを探索することによってこれを行う。図３Ａと、図３Ｂと、図６との例に基づいている図７は、単語ＢＥＡＮと、ＢＹと、ＣＡＲと、ＣＡＴと、ＣＯＷとを含むに過ぎない語彙を有する言語オートマトンを示す。さらに、図７は、ユーザが、単語の境界を定義するために、ダッシュ記号１３２を入れることを予期する言語エキスパートの実施形態を表す。
【００５６】
語彙の制約に加えて、言語エキスパート１２０は、ある単語、または所与の一連の単語がどれくらい頻繁に特定の言語に現れるか、または特定のユーザによって使用されるかについてモデリングする静的情報を使用してもよい。例えば、単語のトリグラムでの言語モデルは、分割グラフの所与のパスの解釈に関する言語的な可能性を評価するために用いられてもよい。
【００５７】
分割エキスパート１１６と、認識エキスパート１１８と、言語エキスパート１２０とは、動的プログラミングを通じて協働して、入力ストロークを処理し、文字と、単語と、文章レベルでの出力候補１２４を生成する。一の実施形態において、動的プログラミングは、分割グラフと言語モデルとの双方とにおいて最良のパスを探索するビーム探索法に基づく。この例において、最良のパスとは、最も低いコストに対応するパスである。最も低いコストのパスは、以下の総計として定義することができる。
・分割グラフにおける対応するパスで遭遇した全ての文字候補のコスト。これらのコストは、分割グラフでこのパスに属している各ノードの確率、または認識スコアから推定されることができる。一の実施形態において、対数非線形関数を適用することにより、コストは、ニューラルネットワークの確率から推定されることができる。
・言語モデルの対応するパスで遭遇した全ての単語のコスト。それらのコストは、言語エキスパート１２０によるＮグラム確率から推定されることができる。一の実施形態において、対数非線形関数を適用することにより、コストは、言語エキスパート１２０によるＮグラム確率から推定される。
【００５８】
本オンライン手書き文字認識コンピュータプログラムの総合的なトレーニングに関して、全てのパラメーターの分類子の自動的な学習についてのテキストレベルでの、グローバルな判別式トレーニングスキーム（例、ニューラルネットワーク１２８）と、システムのあらゆるメタパラメータとが使用されてもよいが、他のトレーニングシステムと方法とが使用されてもよい。本オンライン重畳手書き文字認識システムと方法とを通じて、ユーザ入力の手書き文字認識に対する最良の結果が、連続した、または階層的な性質よりもむしろ、分割と認識と解釈とを同時に行うことによって提供される。
【００５９】
前記において、ベストモード及び／または他の例であるとみなされるものを記述しているが、様々な変更が可能であることと、本明細書で開示されている主題が様々な形態と例とによって実施可能であること、及びそれらが、多数の他の出願は、組み合わせや、環境において適用可能であり、それらのうちのいくつかが、本明細書で開示されていることにすぎないことを理解されたい。当業者は、主題の真の精神や範囲から離れることなく、開示されている態様を変形したり補正できることについて認識するであろう。それゆえに、主題は、この明細書における特有の詳細と、添付書類と、説明された例とに限定されない。本明細書で開示される有利な概念の真の範囲となるあらゆる、そして全ての修正と変形とを保護することが意図される。
【図１】
0006542870.tif 000002
【図２】
0006542870.tif 000003
【図３Ａ】
0006542870.tif 000004
【図３Ｂ】
0006542870.tif 000005
【図４】
0006542870.tif 000006
【図５】
0006542870.tif 000007
【図６】
0006542870.tif 000008
【図７】
0006542870.tif 000009