(57)【要約】【課題】手書き文字を収集し、手書き文字のストロークから計算したパラメータに基づいて手書き文字認識を実施する方法、コンピュータ・プログラム、およびデータ処理システムを提供すること。【解決手段】ストローク開始イベントおよびストローク終了イベントを識別し、ストローク開始イベントおよびストローク終了イベントの座標からストローク・パラメータを計算する。ストローク・パラメータに基づいて１つまたは複数の候補文字を識別する。【選択図】図４
2005202962.tif 000002
【特許請求の範囲】
【請求項１】
手書き文字認識を実施するデータ処理システムにおける方法であって、
コンピュータ・インターフェースを介して入力されたポインティング・デバイスへのユーザ入力に応答して、ストローク開始イベントおよびストローク終了イベントを識別する、コンピュータ実施ステップと、
前記ストローク開始イベントおよび前記ストローク終了イベントからストローク・パラメータを導出する、コンピュータ実施ステップと、
前記ストローク・パラメータをサーバに送信する、コンピュータ実施ステップと、
前記ストローク・パラメータに基づく候補文字を前記サーバから受信する、コンピュータ実施ステップと
を有する方法。
【請求項２】
前記ストローク開始イベントがポインティング・デバイス・ボタンの押下であり、前記ストローク終了イベントが前記ポインティング・デバイス・ボタンの解放である、請求項１に記載の方法。
【請求項３】
前記識別するステップが、
前記ストローク開始イベントの識別時にポインティング・デバイス・アイコンの座標を決定するステップと、
前記ストローク終了イベントの識別時に前記ポインティング・デバイス・アイコンの座標を決定するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記導出するステップが、
前記ストローク開始イベントおよび前記ストローク終了イベントから複数のストローク・パラメータを計算するステップ
を含む請求項１に記載の方法。
【請求項５】
前記導出するステップが、
前記ストローク・パラメータに関するストローク長、ストローク角、およびストローク中心のうち少なくとも１つを計算するステップ
を含む請求項１に記載の方法。
【請求項６】
前記サーバからウェブ・ページをダウンロードするステップ
をさらに有する、請求項１に記載の方法。
【請求項７】
前記候補文字が前記コンピュータ・インターフェースに入力された文字に一致することを示す突き合わせ確認入力を受信するステップと、
前記突き合わせ確認入力を前記サーバに通信するステップと
をさらに有する請求項６に記載の方法。
【請求項８】
前記候補文字を決定するのに応答して、前記候補文字を第１コンピュータに送信するステップ
をさらに有する、請求項７に記載の方法。
【請求項９】
手書き文字認識を実施するコンピュータ可読媒体内のコンピュータ・プログラムであって、
コンピュータ・インターフェース内に収集エリアを表示し、前記収集エリア内に対するストローク入力の始点および終点を求めるように適合された第１命令であって、前記始点および前記終点を決定するのに応答して、前記ストロークの属性を記述するストローク・パラメータ・セットを計算する第１命令と、
基準文字をそれぞれ定義する複数のレコードを含む基準文字辞書と、
前記ストローク・パラメータ・セットの、前記複数のレコードとの比較に応答して、少なくとも１つの基準文字を候補文字と識別する第２命令と
を含むコンピュータ・プログラム。
【請求項１０】
前記コンピュータ・インターフェースが、前記第２命令で識別された前記候補文字を表示する候補ディスプレイを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
前記候補ディスプレイ内に表示された前記候補文字が、ユーザによって選択可能であり、前記第１命令が、前記候補文字の選択を前記第２命令に通信する、請求項９に記載のコンピュータ・プログラム。
【請求項１２】
前記ストローク・パラメータ・セットが、長さパラメータ、角度パラメータ、および中心パラメータを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１３】
前記複数のレコードのそれぞれが、長さパラメータ、角度パラメータ、および中心パラメータを有する少なくとも１つの基準パラメータ・セットを含み、前記比較が、前記ストローク・パラメータ・セットの前記長さパラメータ、前記角度パラメータ、および前記中心パラメータを前記複数のレコードの前記長さパラメータ、前記角度パラメータ、および前記中心パラメータとそれぞれ比較するステップを含む、請求項１２に記載のコンピュータ・プログラム。
【請求項１４】
前記第１命令が、少なくとも軌跡しきい値における前記収集エリアへの前記ストローク入力の軌跡の変化に応答して、区分点と、前記始点および前記区分点から計算される第１ストローク・パラメータ・セットと、前記区分点および前記終点から計算される第２ストローク・パラメータ・セットとを求める、請求項９に記載のコンピュータ・プログラム。
【請求項１５】
前記少なくとも１つの候補文字の識別が、前記第１ストローク・パラメータ・セットおよび前記第２ストローク・パラメータ・セットと前記複数のレコードとの比較によって行われる、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
ポインティング・デバイスと、
ディスプレイと、
１組の命令を含むメモリと、
前記１組の命令の実行に応答して、前記ポインティング・デバイスに入力された手書き文字ストロークの始点および終点を識別するコンピュータ・インターフェースを提供する処理装置であって、前記始点および前記終点の識別に応答して、第１ストローク・パラメータ・セットが計算される、処理装置と
を備えるデータ処理システム。
【請求項１７】
前記データ処理システムをネットワーク・コンピュータに接続するネットワーク・アダプタをさらに備え、前記データ処理システムを前記ネットワーク・コンピュータに接続することに応答して、前記１組の命令が前記データ処理システムに通信される、請求項１６に記載のデータ処理システム。
【請求項１８】
前記第１ストローク・パラメータ・セットが、長さパラメータ、角度パラメータ、および中心パラメータを含む、請求項１６に記載のデータ処理システム。
【請求項１９】
前記処理装置が、少なくとも軌跡しきい値における前記ポインティング・デバイスの軌跡の変化に応答して、第２ストローク・パラメータ・セットを計算する、請求項１６に記載のデータ処理システム。
【請求項２０】
前記コンピュータ・インターフェースが、前記第１ストローク・パラメータ・セットと基準文字辞書の基準パラメータ・セットとの比較で識別された候補文字を表示するための候補ディスプレイを含む、請求項１６に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には改良型のデータ処理システムに関し、より詳細には手書き文字認識を実施する方法および装置に関する。さらに詳細には、本発明は、クライアントによってサーバに供給されるストロークの始点および終点から計算される文字ストローク・パラメータに基づいてサーバが手書き標本を効率的に識別することを可能にする方法および装置を提供する。
【背景技術】
【０００２】
本願は、参照により本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の「METHODAND APPARATUS FOR REDUCING REFERENCE CHARACTER DICTIONARY COMPARISONS DURINGHANDWRITING RECOGNITION」という名称の米国特許出願（整理番号ＡＵＳ９２００３１０３８ＵＳ１）、および本願の譲受人に譲渡された同時係属の「METHODAND APPARATUS FOR SCALING HANDWRITTEN CHARACTER INPUT FOR HANDWRITINGRECOGNITION」という名称の米国特許出願（整理番号ＡＵＳ９２００３１０４５ＵＳ１）に関連する。
【０００３】
手書き文字認識の分野では、手書きサンプルのより正確な認識を実現するためにソフトウェア・ベンダによって様々な手法が取られてきた。大規模な文字セットを有する文字言語、例えば中国語や韓国語には、ソフトウェア・ベンダが効率的な手書き文字認識アルゴリズムを開発するのに特に問題がある。例えば中国語は数千の文字を含む。したがって、中国語の手書き文字認識を実施するための基準文字辞書は、必然的に数千のエントリを含む。基準辞書内に維持される文字のデータ・サイズにより、手書きの中国語文字の手書き文字分析を実施する効率が制限される。
【０００４】
現在の手書き文字認識の解決策では、手書き文字ストロークの入力全体にわたって手書き文字ストロークをサンプリングすることが必要となる。例えば、多くの手書き文字認識アルゴリズムでは、基準文字辞書への照会のために、ビットマップなどの手書き文字のイメージの構築が必要となる。手書き文字のビットマップ・イメージの構築では、文字の入力中に手書き入力の多数のサンプルを取ることが必要となる。こうした技法はデータ集約的であり、ユーザ入力から大量のサンプル・データを収集することが必要となる。
【０００５】
手書き文字認識アルゴリズムはしばしば、携帯情報端末（ＰＤＡ）などのポータブル計算装置上に導入される。そうした装置の記憶能力および計算能力は限られているため、比較的単純な手書き文字認識アルゴリズムが必要となる。計算能力が限られている装置上で手書き文字認識を実施するのに必要なデータ量を低減させることが望ましい。
【０００６】
手書きユーザ入力を処理する手書き文字認識アルゴリズムをインターネット上のウェブ・サイトに導入することが望ましい。手書きユーザ入力を受け取る能力は、ｅコマース・ウェブ・サイト、遠距離学習ウェブ・サイトなどに導入するのに有利である可能性がある。多数のクライアントに対して同時にサービスすることを可能にするため、手書き分析を実施するのに必要なデータ量を最小限に抑えて、クライアントから手書き分析を実施するサーバへの手書きデータの送達に関連する待ち時間の効果を低減する必要がある。
【特許文献１】米国特許出願（整理番号ＡＵＳ９２００３１０３８ＵＳ１）
【特許文献２】米国特許出願（整理番号ＡＵＳ９２００３１０４５ＵＳ１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
手書き分析を実施するのに必要なデータを最小限に抑えることができれば有利となる。さらに、手書き文字認識のために必要なデータ量を低減するような、手書き文字データの収集およびデータの分析のための改良型の方法、装置、およびコンピュータ命令を有することができれば有利となる。手書き文字の収集を実施する装置から、リモートに手書き文字認識アルゴリズムを実行することを可能にする技法を提供することができれば、さらに有利となる。
【課題を解決するための手段】
【０００８】
本発明は、手書き文字を収集し、手書き文字のストロークから計算したパラメータに基づいて手書き文字認識を実施する方法、コンピュータ・プログラム、およびデータ処理システムを提供する。ストローク開始イベントおよびストローク終了イベントを識別し、ストローク開始イベントおよびストローク終了イベントの座標からストローク・パラメータを計算する。ストローク・パラメータに基づいて１つまたは複数の候補文字を識別する。
【０００９】
本発明の特徴と考えられる新規な機能を特許請求の範囲で説明する。しかし、本発明自体、ならびに本発明の好ましい使用の形態、別の目的、および別の利点は、図面と共に以下の例示的実施形態の詳細な説明を参照することによって最良に理解されることになる。
【発明を実施するための最良の形態】
【００１０】
ここで図を参照すると、図１は、本発明を実施することができるデータ処理システムのネットワークの図的表現を示す。ネットワーク・データ処理システム１００は、本発明を実施することができるコンピュータのネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含む。ネットワーク１０２は、ネットワーク・データ処理システム１００内で互いに接続された様々な装置およびコンピュータ間の通信リンクを提供するのに使用される媒体である。ネットワーク１０２は、ワイヤ、ワイヤレス通信リンク、光ファイバ・ケーブルなどの接続を含むことができる。
【００１１】
図示する例では、サーバ１０４が記憶装置１０６と共にネットワーク１０２に接続される。加えて、クライアント１０８、１１０、および１１２がネットワーク１０２に接続される。こうしたクライアント１０８、１１０、および１１２は、例えばパーソナル・コンピュータやネットワーク・コンピュータでよい。図示する例では、サーバ１０４は、ＨＴＭＬ文書および添付されたスクリプト、アプレット、またはその他のアプリケーションなどのデータをクライアント１０８、１１０、および１１２に提供する。クライアント１０８、１１０、および１１２はサーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示していない追加のサーバ、クライアント、およびその他の装置を含むことができる。
【００１２】
図示する例では、ネットワーク・データ処理システム１００は、プロトコルの伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）群を使用して互いに通信するネットワークおよびゲートウェイの世界的な集合を表すネットワーク１０２を伴ったインターネットである。インターネットの中心部は、データおよびメッセージを経路指定する数千の商用コンピュータ・システム、政府コンピュータ・システム、教育コンピュータ・システム、およびその他のコンピュータ・システムを含む大ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンである。もちろん、ネットワーク・データ処理システム１００は、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）などのいくつかの異なるタイプのネットワークとして実装することもできる。図１は一例であり、本発明のアーキテクチャ上の制限ではない。図示するサーバ１０４はウェブ・サーバであり、ＨＴＴＰサーバとも呼ばれ、ウェブ・ブラウザなどのクライアントから要求を受けたとき、ＨＴＴＰを使用してＨＴＭＬ文書および何らかの関連ファイル／スクリプトを供給するサーバ・ソフトウェアを含む。クライアントとサーバの間の接続は通常、要求された文書またはファイルを供給した後に切断される。ＨＴＴＰサーバはウェブ・サイトおよびイントラネット・サイト上で使用される。
【００１３】
図２を参照すると、本発明の好ましい実施形態による、図１のサーバ１０４などのサーバとして実装することのできるデータ処理システムのブロック図が示されている。データ処理システム２００は、クライアント１０８、１１０、および１１２のうち１つまたは複数から得られた手書き文字ストロークから計算されるパラメータを解析するのに使用することのできるコンピュータの一例である。より具体的には、データ処理システム２００は、クライアントで処理されてディスプレイ装置上にコンピュータ・インターフェースを提供するデータを供給し、そのコンピュータ・インターフェースにより、クライアントのユーザは、ポインティング・デバイスを使用することによって手書き文字入力を与える。図示する例では、データ処理システム２００によってクライアントに提供されるアプリケーションが、ユーザが入力した文字ストロークからパラメータを導出し、パラメータをデータ処理システム２００に通信する。パラメータの受信に応答して、データ処理システム２００は、１つまたは複数の候補文字を識別し、その候補文字をクライアントに通信する。
【００１４】
ストローク・パラメータは、ユーザが入力したストロークの属性を定義し、サーバにより、基準文字辞書内の基準文字のストロークの対応する属性と比較される。例えば、ユーザが入力した手書き文字ストロークの長さの数値的尺度を与えるストローク長パラメータをクライアントで求めることができる。ストローク長パラメータをサーバに通信し、基準文字ストロークの基準長パラメータと比較し、手書き文字ストロークの長さと基準文字ストロークの長さとの間の対応量を示す数値的尺度が得られる。手書き文字ストロークが入力された軌跡の数値的尺度を与えるストローク角パラメータをクライアントで求めることができる。ストローク角パラメータをサーバに通信し、基準文字ストロークの基準角パラメータと比較し、手書き文字ストロークの角度と基準文字ストロークの角度との間の対応量を示す数値的尺度が得られる。手書き文字ストロークの中心点の位置または座標を識別する中心パラメータをクライアントで求めることができる。中心パラメータをサーバに通信し、それを手書き文字ストロークの他の中心パラメータと比較して、ストローク間の位置関係を求めることができる。ストローク中心パラメータの比較に基づく手書き文字ストロークの位置尺度を基準文字ストローク間の中心パラメータの関係と比較して、手書き文字ストロークの相対位置と基準文字ストロークの相対位置との間の数値的対応を求めることができる。本明細書では角度パラメータ、長さパラメータ、および中心パラメータをストローク・パラメータ・セットと総称する。
【００１５】
次いで、長さパラメータ、角度パラメータ、および中心パラメータの比較結果を評価して、手書き文字ストロークと基準ストロークとの間の対応を求める。このプロセスを基準文字辞書の残りの基準文字についてサーバで反復する。基準文字のうち１つまたは複数を、入力である文字との潜在的マッチと識別し、それをクライアントに通信する。
【００１６】
データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を含む対称型マルチプロセッサ（ＳＭＰ）システムである場合がある。あるいは、単一プロセッサ・システムが使用される場合もある。システム・バス２０６には、ローカル・メモリ２０９に対するインターフェースを提供するメモリ・コントローラ／キャッシュ２０８も接続される。Ｉ／Ｏバス・ブリッジ２１０がシステム・バス２０６に接続され、Ｉ／Ｏバス２１２に対するインターフェースを提供する。メモリ・コントローラ／キャッシュ２０８とＩ／Ｏバス・ブリッジ２１０は、図示するように一体化することができる。
【００１７】
Ｉ／Ｏバス２１２に接続されたＰＣＩ（Peripheral ComponentInterconnect）バス・ブリッジ２１４が、ＰＣＩローカル・バス２１６に対するインターフェースを提供する。いくつかのモデムをＰＣＩローカル・バス２１６に接続することができる。典型的なＰＣＩバス実装は、４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。図１のクライアント１０８、１１０、および１１２に対する通信リンクは、アドイン・ボードを介してＰＣＩローカル・バス２１６に接続されたモデム２１８およびネットワーク・アダプタ２２０を介して設けることができる。
【００１８】
追加のＰＣＩバス・ブリッジ２２２および２２４が、追加のモデムまたはネットワーク・アダプタをサポートすることができる追加のＰＣＩローカル・バス２２６および２２８に対するインターフェースを提供する。このようにして、データ処理システム２００により、複数のネットワーク・コンピュータに対する接続が可能となる。図示するように、メモリ・マップされたグラフィックス・アダプタ２３０およびハード・ディスク２３２も直接的または間接的にＩ／Ｏバス２１２に接続することができる。以下でより完全に説明するように、システム２００は、本発明の一実施形態による手書き文字認識アルゴリズムを実行する。
【００１９】
図２に示すハードウェアは変化する可能性があることを当業者は理解されよう。例えば、光ディスク・ドライブなどの他の周辺装置を、図示するハードウェアに加えて、またはその代わりに使用することもできる。図示する例は、本発明に関するアーキテクチャ上の制限を示唆するものではない。
【００２０】
図２に示すデータ処理システムは、例えば、ＡＩＸ（AdvancedInteractive Executive）オペレーティング・システムまたはＬＩＮＵＸオペレーティング・システムが動作する、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポーレーションの製品であるIBMeServer pSeries Systemの場合がある。
【００２１】
次に図３を参照すると、本発明を実施することのできるデータ処理システムを示すブロック図が示されている。データ処理システム３００は、図１のクライアント１０８などのクライアント・コンピュータの一例であり、ユーザから手書き文字を受け取るため、および手書き文字のストローク・パラメータを計算するために使用することができる。より具体的には、データ処理システム３００は、システム２００からウェブ・ページ・ダウンロードを受信し、ウェブ・ページ・ダウンロードの処理に応答して、手書き文字入力用のコンピュータ・インターフェースを表示する。手書き文字の各文字ストロークが、ストローク開始イベントおよびストローク終了イベントについて評価される。データ処理システム３００は、ストローク開始イベントおよびストローク終了イベントの判定の際に、１つまたは複数のストローク・パラメータを計算する。
【００２２】
ストローク・パラメータの計算に応答して、データ処理システム３００は、ストローク・パラメータをデータ処理システム２００に通信して、システム２００で実行される手書き文字認識アルゴリズムに提示する。システム２００で識別した候補文字は、データ処理システム３００に通信し、ユーザは、クライアント・コンピュータ・インターフェースに供給される文字と、システム２００で識別された候補文字との間の一致を確認することができる。ユーザが文字ストロークをクライアント・コンピュータ・インターフェースに引き続き供給するとき、追加のストローク・パラメータが計算され、候補文字がデータ処理システム３００のユーザによって一致と確認されるまで、さらに手書き文字分析を行うために追加のストローク・パラメータがシステム２００に通信される。
【００２３】
データ処理システム３００は、ＰＣＩ（Peripheral ComponentInterconnect）ローカル・バス・アーキテクチャを使用する。図示する例ではＰＣＩバスを使用しているが、ＡＧＰ（Accelerated GraphicsPort）やＩＳＡ（Industry Standard Architecture）などの他のバス・アーキテクチャも使用することができる。プロセッサ３０２およびメイン・メモリ３０４は、ＰＣＩブリッジ３０８を介してＰＣＩローカル・バス３０６に接続される。ＰＣＩブリッジ３０８はまた、プロセッサ３０２用の統合メモリ・コントローラ／キャッシュ・メモリも含むことができる。直接構成要素相互接続またはアドイン・ボードを介してＰＣＩローカル・バス３０６への追加の接続を行うことができる。図示する例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、および拡張バス・インターフェース３１４が、直接構成要素接続によってＰＣＩローカル・バス３０６に接続される。一方、オーディオ・アダプタ３１６、グラフィックス・アダプタ３１８、およびオーディオ／ビデオ・アダプタ３１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス３０６に接続される。グラフィックス・アダプタ３１８は、コンピュータ・インターフェースすなわちＧＵＩを提供するディスプレイ装置１０７を駆動し、ユーザが提供した手書き文字を表示する。拡張バス・インターフェース３１４は、キーボード／マウス・アダプタ３２０、モデム３２２、および追加のメモリ３２４に対する接続を提供する。マウス１０９などのポインティング・デバイスがアダプタ３２０に接続され、それにより、ユーザによるシステム３００へのポインタ入力の供給が可能となる。ＳＣＳＩ（SmallComputer System Interface）ホスト・バス・アダプタ３１２は、ハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、およびＣＤ−ＲＯＭドライブ３３０に対する接続を提供する。典型的なＰＣＩローカル・バス実装は、３つまたは４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。
【００２４】
「マウス」という用語は、この文書で使用する際には、限定はしないが、マウス、トラック・ボール、ライト・ペン、スタイラス、タッチ・スクリーンまたはタッチ・パッドなどを含む、オペレーティング・システムがサポートする任意のタイプのグラフィカル・ポインティング・デバイスを指す。ポインティング・デバイスは通常、データ処理システムのユーザがデータ処理システムのＧＵＩと対話するのに使用される。「ポインタ」とは、マウスやその他のそうした装置で制御されるアイコン・イメージであり、選択または操作することのできるアイコンやメニューなどを視覚的にユーザに示すためにデータ処理システムのビデオ・ディスプレイ装置上に表示される。
【００２５】
オペレーティング・システムはプロセッサ３０２上で動作し、図３のデータ処理システム３００内の様々な構成要素の制御を調整および提供するのに使用される。オペレーティング・システムは、マイクロソフト・コーポレーションから入手可能なＷｉｎｄｏｗｓ  ＸＰなどの市販のオペレーティング・システムでよい。Ｊａｖａなどのオブジェクト指向プログラミング・システムがオペレーティング・システムと共に動作することができ、データ処理システム３００上で実行中のＪａｖａプログラムまたはアプリケーションからオペレーティング・システムへの呼出しを実現する。「Ｊａｖａ」はサン・マイクロシステムズＩｎｃ．の商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令は、ハード・ディスク・ドライブ３２６などの記憶装置上に配置され、メイン・メモリ３０４にロードしてプロセッサ３０２で実行することができる。
【００２６】
データ処理システム３００は、本発明の一実施形態による文字ストローク収集アルゴリズムを実行するように適合されたウェブ・ブラウザを実行する。好ましくは、ブラウザが文書、例えばＨＴＭＬで符号化されたウェブ・ページをシステム２００からダウンロードしたときに、ストローク収集アルゴリズムがＪａｖａアプレットとしてシステム３００に配布される。したがって、データ処理システム３００で実行されるブラウザは、Microsoft Explorer、Netscape NavigatorなどのＪａｖａが使用可能な様々な周知のウェブ・ブラウザのいずれかとして実装することができる。
【００２７】
図３のハードウェアは実装に応じて変化することを当業者は理解されよう。フラッシュ読取り専用メモリ（ＲＯＭ）、同等の不揮発性メモリ、光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺装置を、図３に示すハードウェアに加えて、またはその代わりに使用することができる。さらに、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
【００２８】
別の例として、データ処理システム３００は、オペレーティング・システム・ファイルおよび／またはユーザ生成データを格納する不揮発性記憶を提供するためにＲＯＭおよび／またはフラッシュＲＯＭと共に構成された携帯情報端末（ＰＤＡ）装置である場合がある。
【００２９】
図３に示す例および上述の例はアーキテクチャ上の制限を示唆するものではない。例えば、データ処理システム３００は、ＰＤＡの形態を取ることに加えて、ノートブック・コンピュータまたはハンドヘルド・コンピュータでもよい。データ処理システム３００はキオスクまたはウェブ・アプライアンスでもよい。
【００３０】
図４に、クライアントが本発明の好ましい実施形態によるサーバ１０４と接続するときにディスプレイ装置１０７上に出力されるＧＵＩ４００を示す。ＧＵＩ４００は、クライアントがサーバ１０４から通信されたウェブ・ページを処理したことに応答して表示される。ＧＵＩ４００は、ウェブ・ブラウザ・インターフェース４０８のウィンドウ４０４内に表示されることが好ましい。図４に示すように、ＧＵＩ４００は、クライアントに供給された手書き文字と、本発明の実施形態によるデータ処理システム２００によって識別されデータ処理システム３００に通信された候補文字とを表示するキャプチャ・エリア４０２を含む。ユーザは、マウス１０９などのポインティング・デバイスを介して手書き文字をキャプチャ・エリア４０２に供給する。加えて、ＧＵＩ４００は、最後に判定した候補文字を表示し、ユーザによる候補文字一致の確認を受ける候補文字ディスプレイ４１０を含む。
【００３１】
図示する例では、キャプチャ・エリア４０２に入力された完全な中国語文字４０６が示されている。文字４０６の入力はいくつかのハンド・ストロークを必要とする。図示した特定の文字は、３つのストローク４１２、４１４、および４１６の入力を必要とする。クライアントで実行されるストローク収集アルゴリズムは、キャプチャ・エリア４０２に供給される各文字ストロークの開始および終了を検出する。ストロークの完了を検出したとき、検出したストロークからストローク・パラメータを計算する。以下でより完全に説明するように、ストローク・パラメータをデータ処理システム２００に通信し、ユーザ入力に一致する可能性のある１つまたは複数の候補文字を識別する。
【００３２】
図５は、本発明の好ましい実施形態によるクライアントで実行されるストローク収集アルゴリズムで実施される処理の流れ図である。ストローク収集アルゴリズムを開始し（ステップ５０２）、ストローク開始イベントのポーリング（ステップ５０４）に進む。図示する例では、ストローク開始イベントは、マウス・ボタンの押下などのポインティング・デバイス「ダウン」イベントである。ストローク開始イベントの検出時に、ストローク収集アルゴリズムは、ストローク開始イベントの座標を一時的に記録し（ステップ５０６）、ストローク終了イベントのポーリング（ステップ５０８）に進む。図示する例では、ストローク終了イベントは、マウス・ボタンの解放などのポインティング・デバイス「アップ」イベントである。
【００３３】
ストローク終了イベントの検出時に、ストローク終了イベントの座標を読み取り（ステップ５１０）、ストローク・パラメータを計算する（ステップ５１２）。ストローク・パラメータを、手書き文字認識アルゴリズムで分析するためにデータ処理システム２００に通信する（ステップ５１４）。続行するかどうかについての評価を行い（ステップ５１６）、ルーチンはストローク開始イベントのポーリングに戻る。そうでない場合はルーチンは終了する（ステップ５１８）。
【００３４】
図６は、本発明の実施形態によるストローク収集アルゴリズムで実施される処理の流れ図５００である。図６に図示し説明する処理ステップは、図５のステップ５１２に対応する。ストローク開始イベントと後続のストローク終了イベントの検出時にストローク・パラメータの計算を開始する（ステップ５５２）。ストローク開始座標およびストローク終了座標からストローク長パラメータを計算する（ステップ５５４）。例えば、ストローク開始イベントおよびストローク終了イベントに対応するポインタ・アイコン座標を代数的に処理して、ストロークの始点と終点の間の直線的「長さ」の尺度を求めることができる。加えて、例えばストローク開始座標とストローク終了座標の三角関数的関係によってストローク角パラメータを計算する。そのストローク角パラメータはストロークの方向性尺度を与える（ステップ５５６）。ストローク中心パラメータを計算する（ステップ５５８）ことが好ましく、そのストローク中心パラメータは、ストローク長パラメータおよびストローク角パラメータ、ならびにストローク開始イベント座標とストローク終了イベント座標の一方から導出することができる。ストローク・パラメータを計算すると、ストローク・パラメータ計算アルゴリズムは終了する（ステップ５６０）。
【００３５】
図７は、本発明の好ましい実施形態によるストローク収集アルゴリズムによるストローク・パラメータの計算を示す図である。マウス１０９などのポインティング・デバイスに与えられる適切なコマンドに応答して、ストローク開始イベントを検出する。例えば、ストローク開始イベントは、マウス・ポインタが収集エリア４０２内に位置する間に、マウス「ダウン」イベント、またはマウス１０９ボタンの押下によるマウス・ドラッグ操作の開始に応答して検出することができる。あるいは、タッチ・パッドに手書き文字が与えられる場合、タッチ・パッド上で検出したスタイラス・ダウン・イベントに応答してストローク開始イベントを判定することができる。ストローク４１２の始点４２０を識別する。始点４２０は、ストローク開始イベントを検出したときのマウス位置に対応する。あるいは、始点４２０は、ストローク開始イベントを検出したときのタッチ・パッド上のスタイラス位置に対応する。マウス１０９が移動するとき、ユーザが供給するマウスの移動に従ってキャプチャ・エリア４０２内にストローク４１２を表示する。マウス「アップ」やボタン解放イベントなどのマウス１０９に与えられる適切なコマンドに応答して、ストローク終了イベントを検出する。あるいは、手書き文字がタッチ・パッドに与えられる場合、タッチ・パッド上で検出したスタイラス・アップ・イベントに応答してストローク終了イベントを検出することができる。ストローク４１２の終点４２２を識別する。終点は４２２は、ストローク終了イベントを検出したときのマウス位置またはスタイラス位置に対応する。
【００３６】
マウスの位置を追跡し、それぞれの座標を始点４２０および終点４２２と関連付けるのに、座標系、例えばデカルト座標系を使用する。この例では、ストローク４１２は、ｘ座標７およびｙ座標１０の始点４２０を有する。ストローク４１２は、ｘ座標７およびｙ座標３の終点を有する。ストローク４１２の始点と終点の対を検出した後、始点座標および終点座標から１つまたは複数のストローク・パラメータを導出し、データ処理システム２００上で動作する手書き文字認識アルゴリズムに提示する。本発明の好ましい実施形態によれば、始点座標および終点座標からストローク長パラメータ（Ｌ）、ストローク角パラメータ（θ）、およびストローク中心パラメータ（Ｃ）を計算する。例えば、ストローク長は、始点座標および終点座標の代数的操作によって計算することができる。例えばストロークの始点４２０および終点４２２の座標間の、コンピュータで実施された三角関数的関係により、始点座標および終点座標からストローク角パラメータを導出する。
【００３７】
加えて、始点座標と終点座標の一方、ストローク長パラメータ、ならびにストローク角パラメータをオペランドとして使用する、コンピュータで実施される三角関数計算により、ストローク中心パラメータを計算する。ストローク中心パラメータは、計算したストローク４１２の中心点の座標である。好ましい実施形態では、ストローク・パラメータは、ストロークを直線運動として近似することによって計算される。したがって、すべてのストローク・パラメータは、ストロークの始点座標および終点座標だけを使用して導出することができる。本明細書で集合的にストローク・パラメータ・セットと呼ぶ、ストローク座標から計算したストローク・パラメータを、ネットワーク１０２によってデータ処理システム２００に送信する。
【００３８】
特に、クライアント・システム３００上で動作するストローク収集アルゴリズムは、ユーザが入力する文字を識別しようと試みる前に、ユーザによる文字の完了まで待機しない。したがって、あるストローク入力から導出されたストローク・パラメータ・セットの通信を、ユーザによる後続のストロークの供給と同時に、データ処理システム２００に対して行うことができる。図５〜７に関連して説明したストローク収集アルゴリズムは、データ処理システム２００がデータ処理システム３００と接続するときにウェブ・ページの添付としてダウンロードされるＪａｖａアプレットとして実装することが好ましい。
【００３９】
図８は、本発明の好ましい実施形態によるデータ処理システム２００で実行される手書き文字認識アルゴリズムで実施される処理の流れ図６００である。手書き文字認識アルゴリズムは、クライアント・システムからストローク・パラメータ・セットを受信したときに開始する（ステップ６０２）。ストローク・パラメータ・セットの受信に応答して、基準文字辞書ルックアップを実施する（ステップ６０４）。基準文字辞書は、例えばテーブル、ファイル・システム、または別の適切なデータ構造として実装することができる。一般には、基準文字辞書は、ユーザ供給の手書き文字ストロークから計算されたストローク・パラメータと突き合わせることができる辞書の各文字の属性を含む。
【００４０】
より具体的には、基準文字辞書は、ストローク長パラメータ、ストローク角パラメータ、ストローク中心パラメータなどの各ストロークの属性を含む。本明細書では、基準文字ストロークのストローク長、角度、および中心パラメータを基準パラメータ・セットと総称する。特定の基準文字エントリに関する基準文字辞書で維持される基準パラメータを、クライアントによってサーバに通信されたストローク・パラメータ・セットの対応するストローク・パラメータと比較する。ストローク・パラメータ・セットと基準パラメータ・セットとの間の対応の数値的尺度、すなわち一致確率を、基準文字辞書で定義される基準文字のうちの１つまたは複数について生成する。
【００４１】
Ｎ個の可能な文字一致、すなわち候補文字を基準文字辞書から取り出し、システム３００に通信する（ステップ６０６）。基準文字辞書から取り出す候補文字の数を手書き文字認識アルゴリズム内に符号化することができ、またはクライアントによって提供することができる。
【００４２】
あるいは、事前定義したしきい値を超える一致確率が得られるそれぞれの基準パラメータを有する基準文字辞書の文字エントリを、クライアントに通信する候補文字として選択することもできる。データ処理システム２００はクライアントからの応答を待つ（ステップ６０８）。クライアントが候補文字のいずれかを、入力した文字との一致として確認するかどうかについて評価を行う（ステップ６１０）。
【００４３】
Ｎ個の候補文字のいずれも、入力した手書き文字に対応しないとクライアントが応答を与えた場合、またはクライアントが候補文字一致を確認することができなかった場合、手書き文字認識処理は追加のストローク・パラメータ・セットの受信を待機するステップに進む（ステップ６１２）。追加のストローク・パラメータ・セットの受信時に、基準文字辞書の別の照会を実施する。
【００４４】
クライアント応答がＮ個の候補文字のうちの１つを手書き文字に対応する文字一致と確認した場合、手書き文字認識処理は終了する（ステップ６１４）。したがって、基準文字辞書照会は、ユーザが供給した文字の各ストロークについて、手書き文字認識アルゴリズムで得られる候補文字がユーザによって一致と確認されるまで続行する。図８を参照しながら例示および説明した手書き文字認識アルゴリズムをＪａｖａサーブレットとして実装することが好ましい。
【００４５】
図９は、基準文字辞書７００のレコード７２０〜７２５の図である。通常、中国語文字の基準文字辞書は数千のレコードを有することになる。図示し説明するレコードは、本発明の理解を容易にするためだけに選んだものである。基準文字辞書７００は、各フィールド７１０〜７１９内にデータ要素をそれぞれ含むレコード７２０〜７２５を有するテーブルとして実装されるが、適宜他のデータ構造を代用することもできる。フィールド７１０〜７１９は通常、挿入、削除、問合せ、および辞書７００のその他のデータ・オペレーションまたは操作の処理を容易にする名前または識別子を有する。図示する例では、フィールド７１０、７１１、および７１２は、それぞれ文字番号、文字、およびストロークというラベルを有する。フィールド７１３〜７１７は、それぞれ基準パラメータ・セット１〜基準パラメータ・セット５とラベルが付けられる。フィールド７１８および７１９は、この例ではそれぞれオーディオおよび頻度というラベルを有する。基準パラメータ・セット・フィールド７１４〜７１７は、各レコード７２０〜７２５についての基準パラメータ・セットを含む。
【００４６】
各レコード７２０〜７２５は、特定のレコードをその他の辞書７００のエントリと区別するために、キー・フィールド７１０内に固有の索引番号を含む。本明細書では、関連するキー・フィールド７１０の値を介して特定のレコードをアドレッシングすることをレコードのインデックス化と呼ぶ。文字フィールド７１１は、それぞれのレコード７２０〜７２５で定義される基準文字のイメージ・データを含む。例えば、レコード７２３は、図４を参照しながら説明したコンピュータ・インターフェースに供給される手書き文字に対応する文字フィールド７１１内に、イメージ・ファイル、またはイメージ・ファイルのアドレスといったイメージ・ファイルへの参照を有する。
【００４７】
ストローク・フィールド７１２は、それぞれのレコード７２０〜７２５で定義される文字の文字ストロークの数を含む。例えば、レコード７２３で定義される属性を有する文字は、１つの垂直ストロークおよび２つの水平ストロークからなり、したがってストローク・フィールド７１２はレコード７２３内に値３を含む。
【００４８】
基準パラメータ・セット・フィールド７１３〜７１７は、それぞれのレコード７２０〜７２５に記載の文字の各ストロークについての基準パラメータ・セットを含む。例えばレコード７２３の基準パラメータ・セット・フィールド７１３〜７１５は、レコード７２３で定義される文字のストロークの基準パラメータ・セットをそれぞれ含み、基準パラメータ・セット・フィールド７１６および７１７は無効にされる。
【００４９】
それぞれのレコード７２０〜７２５で定義される文字の正確な発音の音声記録であるオーディオ・ファイルを含むまたは参照するオーディオ・フィールド７１８を辞書７００に含めることができる。加えて、フィールド７１９のオーディオ・ファイルは、それぞれの文字の正しい語法の音声記録を含むことができ、または参照することができる。例えば、中国語辞書の文字は、単語または単語の一部を形成することができる。オーディオ・フィールド７１８のオーディオ・ファイルは、単語または文で使用される関連する中国語文字の音声記録を含むことができる。
【００５０】
頻度フィールド７１９は、各レコード７２０〜７２５で定義される文字の使用頻度を識別するデータ要素を含む。例えば、様々な文献を調査することによって個々の文字の出現頻度を得ることができ、出現頻度を示す数値データ要素を各レコード７２０〜７２５の頻度フィールド７１９に入力する。２つ以上の候補文字が同様の比較結果を有するとき、すなわち２つ以上の候補文字パラメータ・セットとストローク・パラメータ・セットとの比較の結果として、事前定義したしきい値以内または互いの指定の量以内の一致確率が得られたとき、頻度フィールド７１９の頻度データ要素を比較基準として手書き認識アルゴリズムで使用することができる。図示する例では、レコード７２０〜７２５で定義される文字は、それぞれ頻度値８、１３、１２、２３、２４、および２０を有する。手書き文字認識アルゴリズムは、候補文字を識別してクライアントに通信するとき、頻度フィールドの文字頻度値を比較基準として使用することができる。
【００５１】
ストローク・パラメータ・セットを受信したとき、システム２００は基準辞書に照会する。一般には、手書き文字認識アルゴリズムは、辞書７００の各エントリを循環し、ストローク・パラメータ・セットのストローク・パラメータを、対応する基準パラメータ・セットのパラメータと比較する。例えば、ストローク・パラメータ・セットの長さパラメータを、基準文字辞書の基準パラメータ・セットの長さパラメータと比較する。同様に、ストローク・パラメータ・セットの角度パラメータおよび中心パラメータを、それぞれ基準パラメータ・セットの角度パラメータおよび中心パラメータと比較する。ストローク・パラメータ・セットと基準パラメータ・セットとの比較に応答して一致確率を生成する。一致確率の評価に応答して、１つまたは複数の候補文字をサーバで選択し、データ処理システム３００に返して、候補文字ディスプレイ４１０内に表示する。例えば、データ処理システム２００は、辞書照会から得られる最高の一致確率を有する３つの基準文字辞書エントリの文字フィールド７１１で識別されるイメージをクライアントに通信することができる。加えて、候補文字イメージと共に候補文字のオーディオ・ファイルをクライアントに通信することができる。
【００５２】
次に図１０を参照すると、ユーザが文字４０６の第１ストローク４１２を入力した後のキャプチャ・エリア４０２および候補ディスプレイ４１０の図が示されている。ストローク４１２についてのストローク・パラメータ・セットがクライアントで計算され、データ処理システム２００に通信され、候補文字を識別する。データ処理システム２００は、ストローク・パラメータ・セットを用いて基準文字辞書に照会し、ストローク・パラメータ・セットとレコード７２０〜７２５の基準パラメータ・セットとの比較に基づいて１つまたは複数の候補文字を識別する。データ処理システム２００で識別した候補文字をクライアントに通信し、候補ディスプレイ４１０内に出力する。図示する例では、３つの候補文字４３０、４３２、および４３４が識別され、候補ディスプレイ４１０内に表示されている。システム２００で識別された候補文字がクライアントに入力した文字と一致する場合、ユーザは、候補ディスプレイ４１０内の正しい候補文字を選択することができる。この例では、ストローク４１２の入力後に識別した候補文字のいずれもユーザが書く文字４０６と一致しない。
【００５３】
次に図１１を参照すると、文字４０６の第１ストローク４１２および第２ストローク４１４をユーザが入力した後のキャプチャ・エリア４０２および候補ディスプレイ４１０の図が示されている。ストローク４１４についてのストローク・パラメータ・セットがクライアントで計算され、システム２００に通信され、基準文字辞書７００にさらに照会する。データ処理システム２００は、クライアントがストローク４１４から計算したストローク・パラメータ・セットを用いて基準文字辞書７００に照会し、１つまたは複数の候補文字を識別する。データ処理システム２００で識別した候補文字をクライアントに通信し、候補ディスプレイ４１０内に出力する。図示する例では、基準文字辞書の２回目の照会後に候補文字４３０および４３２が候補としては除外されており、新しい候補文字４３６および４３８が識別され、クライアントに通信され、候補ディスプレイ４１０内に表示されている。候補文字４３６が、キャプチャ・エリア４０２に供給された文字と一致する。ユーザは、例えばポインタを候補文字４３６の表示エリア内に配置して入力をマウスに与えることにより、候補文字４３６が入力した文字と一致することを確認する。あるいは、ストローク収集アルゴリズムで実施されるクイック選択機能を介してユーザが候補文字４３４、４３６、および４３８を選択することもできる。例えば、候補ディスプレイ４１０内に表示される候補文字をストローク収集アルゴリズムによってキーボード・キーと論理的に関連付けることができる。キーボード・キー、例えば候補文字４３４、４３６、および４３８にそれぞれ関連付けられる数字キー「１」、「２」、および「３」を選択する結果として、入力された文字と候補文字とが一致することが確認される。候補文字と入力された文字との一致を確認するその他の機構を適宜代用することもできる。クライアントは、ユーザによる確認入力が供給されたとき、確認メッセージをシステム２００に与える。次いで、候補ディスプレイ４１０からユーザが選択した候補文字を収集エリア４０２内に表示し、選択した文字のオーディオ再生をデータ処理システム２００で出力することが好ましい。次いでユーザは、キャプチャ・エリア４０２内で追加の文字の入力を開始することができる。
【００５４】
本発明の別の実施形態によれば、ストローク収集アルゴリズムは、本発明の好ましい実施形態に従って、単一ストロークの向きの変化を検出し、そのストロークを複数の論理ストロークに区分することができる。本明細書では、論理ストロークとは、単一の物理ストロークから区分され、そのストローク区分があたかも完全な手書きストロークであるかのように分析されるストロークの一部またはセグメントを指す。図１２は、適切に書かれたときに３つの構成ストローク８０２、８０４、および８０６を必要とする中国語文字８００である。ストローク８０４および８０６の直角により、ストロークの始点および終点の分析による名目上の長さ／角度／中心パラメータ計算が容易とはならない。例えば、ストローク８０４の始点および終点に従って行った長さパラメータ計算では、望ましいストローク長さの推定が得られない。加えて、中国語に広く通じていないユーザは、ストローク８０４および８０６を誤ってそれぞれ２つのストロークを含むように書く可能性がある。別のユーザは、誤ってストローク８０４および８０６を一緒に単一の物理ストロークとして書く可能性がある。
【００５５】
次に、図１３に、単一の物理ストロークとしてキャプチャ・エリア４０２に入力されたストローク８０４を示す。本発明の一実施形態によれば、ストロークの入力中にポインティング・デバイスの方向性運動がしきい値、例えば９０度以上の量だけ変化するストロークが、複数の論理ストロークに分割される。
【００５６】
図１４に、本発明の好ましい実施形態に従って実施されたストローク８０４の例示的区分を示す。ストローク始点８２０および終点８２２を識別し、始点８２０および終点８２２のそれぞれについて座標を得る。加えて、ストローク収集アルゴリズムは、ストローク軌跡の変化を検出し、ストローク８０４を複数の論理ストローク８１０および８１２に区分する。図示する例では、事前定義した軌跡しきい値９０度と等しい軌跡の変化φを検出する。ストローク収集アルゴリズムにより、ストローク８０４は論理ストローク８１０および８１２に区分される。
【００５７】
軌跡しきい値以上のポインタ軌跡変化の検出に応答して、各論理ストローク８１０および８１２についてストローク・パラメータを計算する。ストローク８０４が論理ストローク８１０および８１２を含むと識別したことに従って、ストローク軌跡が軌跡しきい値以上となるストローク位置に区分点８２４を割り当てる。区分点８２４を、論理ストローク８１０の終点および論理ストローク８１２のストローク始点として割り当てる。したがって、ストローク始点８２０および区分点８２４に基づいて、論理ストローク８１０についての長さパラメータ（ＬＡ）、角度パラメータ（ΘＡ）、および中心パラメータ（ＣＡ）を計算する。同様に、論理ストローク８１２の始点として割り当てた区分点８２４と論理ストローク８１２のストローク終点８２２とに基づいて、論理ストローク８１２についての長さパラメータ（ＬＢ）、角度パラメータ（ΘＢ）、および中心パラメータ（ＣＢ）を計算する。同様に、ユーザがストローク８０６を収集エリア４０２内に入力したとき、ストローク８０６は２つの論理ストロークに区分される。
【００５８】
図１２〜１４の例はストローク８０４が２つの論理ストローク８１０および８１２に区分されることを示しているが、図示し説明した区分例は例に過ぎない。単一の物理ストロークを任意の数の論理ストロークに区分することができる。ストロークを区分する論理ストロークの数は、軌跡しきい値と、キャプチャ・エリア４０２に供給されるストロークの軌跡の変化とに依存する。
【００５９】
手書き文字ストロークを複数の論理ストロークに区分することが可能となることに従って、基準文字辞書７００の基準パラメータ・セットは、適切なときに論理ストロークの属性を記述することができる。例えば、レコード７２５は、図１２に示す文字についての基準文字辞書の例示的文字エントリである。特に、ストローク・フィールド内に維持されるストローク数は、論理ストロークを含むストローク・カウントである。レコード７２５で定義され図１２に記載の文字は、適切に書かれたとき３つの手書きストロークを必要とする。しかし、レコード７２５のストローク数は、５回のストローク・カウントを規定する。基準文字辞書のストローク・フィールド７１２のストローク・カウントは、軌跡しきい値以上の軌跡の変化を必要としない特定の基準文字ストロークと、軌跡しきい値以上の軌跡変化を必要とする物理ストロークについての論理ストローク数との和である。
【００６０】
したがって、文字エントリ７２５は、５つの基準パラメータ・セットである、物理ストロークを記述する１つの基準パラメータ・セットと、論理ストロークを記述する４つの基準パラメータ・セットとを有する。各ストロークは、物理ストロークであっても論理ストロークであっても、基準ストローク・パラメータ・セットを有する対応する基準パラメータ・セット・フィールドを含み、基準ストローク・パラメータ・セットは、クライアントで計算されるストローク・パラメータ・セットと比較される。
【００６１】
文字ストロークを論理ストロークに区分することにより、正しい候補文字を識別する能力が向上する。例えば、正しくは３つのストローク８０２、８０４、および８０６として書かれる文字８００を合計５ストロークに区分し、物理ストロークおよび論理ストロークのそれぞれについて、対応するストローク・パラメータ・セットを計算する。さらに、文字８００は２ストロークまたは５ストロークで不適切に書かれる可能性がある。それぞれの場合、合計５ストロークをクライアントで識別し、５ストロークのそれぞれについてストローク・パラメータ・セットを計算する。したがって、手書き文字のストロークを論理ストロークに区分することにより、文字が適切または不適切に書かれたときに正確な候補文字の識別が容易となる。
【００６２】
上記のように、本発明は、ユーザが入力した文字ストロークからストローク・パラメータを導出する技法を提供する。ストロークの始点および終点からストローク・パラメータを計算し、それによって手書き分析を実施するのに必要なストローク・データ量が低減する。ストローク・パラメータは、基準文字辞書照会を指示するのに必要な手書きサンプル・データよりも小さいデータ・セット内に含めることができる。手書きストロークを論理ストロークに区分し、論理ストロークについてストローク・パラメータを求める。所定の軌跡しきい値を超える軌跡変化を有するストロークを論理ストロークに区分することにより、ストローク・パラメータの計算が容易になる。手書き認識を実施するのに必要なデータ量を低減することにより、ネットワーク・ベースの手書き認識実装が容易になる。
【００６３】
完全に機能するデータ処理システムの状況で本発明を説明したが、本発明のプロセスをコンピュータ可読媒体の形態の命令および様々な形態として配布することができ、その配布を実施するのに実際に使用される特定のタイプの信号運搬媒体の如何にかかわらず本発明が等しく当てはまることを、当業者なら理解するであろうことに留意されたい。コンピュータ可読媒体の例には、フロッピィ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能型媒体や、デジタル／アナログ通信リンク、例えば無線周波数／光波伝送などの伝送形式を使用する有線／ワイヤレス通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するために復号化されるコード化フォーマットの形態を取ることができる。
【００６４】
例示および説明の目的で本発明の説明を提示したが、本発明の説明は網羅的なものではなく、開示の形態の発明に限定されない。多数の修正形態および変形形態が当業者には明らかであろう。本発明の原理、実際的な応用例を最も良く説明するため、および企図される特定の使用法に適する様々な修正形態を有する様々な実施形態に関して本発明を当業者が理解できるように、実施形態を選び説明した。
【図面の簡単な説明】
【００６５】
【図１】本発明を実施することができるデータ処理システムのネットワークの図的表現である。
【図２】本発明の好ましい実施形態によるサーバとして実装することのできるデータ処理システムのブロック図である。
【図３】本発明を実施することのできるデータ処理システムを示すブロック図である。
【図４】本発明の好ましい実施形態による、手書き文字入力を受諾し、候補文字を表示するコンピュータ・インターフェースの図である。
【図５】本発明の好ましい実施形態による、手書き文字ストロークを収集するためにクライアントで実施される処理の流れ図である。
【図６】本発明の好ましい実施形態による、クライアントで実施されるストローク・パラメータ計算の流れ図である。
【図７】本発明の好ましい実施形態による、クライアントによるストローク・パラメータの計算を示す図である。
【図８】本発明の好ましい実施形態による、サーバで実行される手書き文字認識アルゴリズムで実施される処理の流れ図である。
【図９】本発明の好ましい実施形態による、候補文字を識別するのに使用される基準文字辞書レコードの図である。
【図１０】本発明の好ましい実施形態による、第１文字ストロークのユーザ入力後のコンピュータ・インターフェース内のキャプチャ・エリアおよび候補ディスプレイを示す図である。
【図１１】本発明の好ましい実施形態による、第２文字ストロークのユーザ入力後の図１０に記載のキャプチャ・エリアおよび候補ディスプレイを示す図である。
【図１２】本発明の好ましい実施形態による、適切に書かれたときに３つの構成ストロークを必要とする文字の図である。
【図１３】本発明の好ましい実施形態による、コンピュータ・インターフェースのキャプチャ・エリアに入力された図１２に記載の文字のストロークを示す図である。
【図１４】本発明の好ましい実施形態による、図１３に記載のストロークの区分を示す図である。
【符号の説明】
【００６６】
１００  ネットワーク・データ処理システム
１０２  ネットワーク
１０４  サーバ
１０６  記憶装置
１０７  ディスプレイ装置
１０８  クライアント
１０９  マウス
１１０  クライアント
１１２  クライアント
２００  データ処理システム
２０２  プロセッサ
２０４  プロセッサ
２０６  システム・バス
２０８  メモリ・コントローラ／キャッシュ
２０９  ローカル・メモリ
２１０  Ｉ／Ｏバス・ブリッジ
２１２  Ｉ／Ｏバス
２１４  ＰＣＩバス・ブリッジ
２１６  ＰＣＩローカル・バス
２１８  モデム
２２０  ネットワーク・アダプタ
２２２  ＰＣＩバス・ブリッジ
２２４  ＰＣＩバス・ブリッジ
２２６  ＰＣＩローカル・バス
２２８  ＰＣＩローカル・バス
２３０  メモリ・マップ・グラフィックス・アダプタ
２３２  ハード・ディスク
３００  データ処理システム
３０２  プロセッサ
３０４  メイン・メモリ
３０６  ＰＣＩローカル・バス
３０８  ＰＣＩブリッジ
３１０  ローカル・エリア・ネットワーク・アダプタ
３１２  ＳＣＳＩホスト・バス・アダプタ
３１４  拡張バス・インターフェース
３１６  オーディオ・アダプタ
３１８  グラフィックス・アダプタ
３１９  オーディオ／ビデオ・アダプタ
３２０  キーボード／マウス・アダプタ
３２２  モデム
３２４  メモリ
３２６  ハード・ディスク・ドライブ
３２８  テープ・ドライブ
３３０  ＣＤ−ＲＯＭドライブ
４００  ＧＵＩ
４０２  キャプチャ・エリア
４０４  ウィンドウ
４０６  文字
４０８  ウェブ・ブラウザ・インターフェース
４１０  候補ディスプレイ
４１２  ストローク
４１４  ストローク
４１６  ストローク
４２０  始点
４２２  終点
４３０  候補文字
４３２  候補文字
４３４  候補文字
４３６  候補文字
４３８  候補文字
４４０  入力エリア
４４２  ウィンドウ
７００  基準文字辞書
７１０  フィールド
７１１  フィールド
７１２  フィールド
７１３  フィールド
７１４  フィールド
７１５  フィールド
７１６  フィールド
７１７  フィールド
７１８  フィールド
７１９  フィールド
７２０  レコード
７２１  レコード
７２２  レコード
７２３  レコード
７２４  レコード
７２５  レコード
８００  基準文字
８０２  基準文字ストローク
８０４  ストローク
８０５  基準エリア
８０６  ストローク
８１０  手書き文字
８１２  手書きストローク
８２０  手書き文字
８２２  手書きストローク
【図１】
2005202962.tif 000003
【図２】
2005202962.tif 000004
【図３】
2005202962.tif 000005
【図４】
2005202962.tif 000006
【図５】
2005202962.tif 000007
【図６】
2005202962.tif 000008
【図７】
2005202962.tif 000009
【図８】
2005202962.tif 000010
【図９】
2005202962.tif 000011
【図１０】
2005202962.tif 000012
【図１１】
2005202962.tif 000013
【図１２】
2005202962.tif 000014
【図１３】
2005202962.tif 000015
【図１４】
2005202962.tif 000016