JP4041496B2 - 手書き文字認識のために手書き文字入力をスケーリングする方法および装置 - Google Patents

手書き文字認識のために手書き文字入力をスケーリングする方法および装置 Download PDF

Info

Publication number
JP4041496B2
JP4041496B2 JP2005005074A JP2005005074A JP4041496B2 JP 4041496 B2 JP4041496 B2 JP 4041496B2 JP 2005005074 A JP2005005074 A JP 2005005074A JP 2005005074 A JP2005005074 A JP 2005005074A JP 4041496 B2 JP4041496 B2 JP 4041496B2
Authority
JP
Japan
Prior art keywords
stroke
area
character
input
handwritten character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005005074A
Other languages
English (en)
Other versions
JP2005202959A (ja
Inventor
イェン・フー・チェン
ジョン・ダブリュー・ダンスモア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005202959A publication Critical patent/JP2005202959A/ja
Application granted granted Critical
Publication of JP4041496B2 publication Critical patent/JP4041496B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/16Image preprocessing
    • G06V30/166Normalisation of pattern dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Description

本発明は、一般には改良型のデータ処理システムに関し、より詳細には、手書き文字認識を実行する方法および装置に関する。さらに詳細には、本発明は、手書き文字認識を容易にするために手書き文字入力をスケーリングする方法および装置を提供する。
本願は、2004年1月14日付けの米国特許出願第10/756918号および同第10/756919号に関連している。
手書き文字認識の分野では、手書きサンプルのより正確な認識を実現するためにソフトウェア・ベンダによって様々な手法が取られてきた。大規模な文字セットを有する文字言語、例えば中国語や韓国語には、ソフトウェア・ベンダが効率的な手書き文字認識アルゴリズムを開発するのに特に問題がある。例えば中国語は数千の文字を含む。したがって、中国語の手書き文字認識を実施するための基準文字辞書は、必然的に数千のエントリを含む。基準辞書内に維持される文字のデータ・サイズにより、手書きの中国語文字の手書き文字分析を実行する効率が制限される。
手書き文字認識の解決策では、手書き文字ストロークの入力中にストロークをサンプリングし、サンプルを、基準文字辞書内に維持される基準文字と比較することが必要となる。例えば、多くの手書き文字認識アルゴリズムでは、基準文字辞書への照会のために、ビットマップなどの手書き文字のイメージの構築が必要となる。大規模な文字セットを含む言語では、潜在的マッチを識別するのに数千の比較が行われる可能性がある。こうした技法は大量のデータを扱うため、手書き文字認識アルゴリズムを効果的に実装するには大きな処理能力が必要となる。
手書き文字と基準文字辞書の文字との比較中に直面する具体的な問題は、ユーザによって入力される文字サイズが変動する結果として生じる。例えば、ユーザによっては、入力装置のキャプチャ・エリアの大部分を占める文字を書いたり、あるいは、キャプチャ・エリアの一部だけを占めるサイズで同一の文字を書いたりすることがある。基準文字辞書の文字データは、一様なサイズの文字セットから導出される。したがって、手書き文字と基準文字辞書の文字との比較結果は、文字入力サイズの変動のためにしばしば異なる文字マッチとなる。
米国特許出願第10/756918号 米国特許出願第10/756919号
文字入力をスケーリングして、手書き文字と基準文字辞書の文字との比較結果を改善する手書き文字認識技法を提供できれば有利であろう。手書きストロークが供給された入力エリアを画定し、その入力エリアに従って手書き文字ストローク・パラメータをスケーリングする手書き文字認識技法を提供できればさらに有利であろう。後続の手書き文字ストロークの入力後に、再画定した入力エリアに従って手書きストローク・パラメータを再スケーリングできればさらに有利であろう。
本発明は、手書き文字入力をスケーリングして手書き文字認識を実行する方法、コンピュータ・プログラム、およびデータ処理システムを提供する。ストローク・パラメータが手書き文字ストロークから導出され、手書き文字ストロークが供給された入力エリアが画定される。ストローク・パラメータは、入力エリアに従ってスケーリングされる。
本発明の特徴と考えられる新規な機能は添付の特許請求の範囲に示されている。しかし、本発明自体、ならびに本発明の好ましい使用の形態、別の目的、および別の利点は、添付の図面と共に以下の例示的実施形態の詳細な説明を参照することによって最良に理解されよう。
ここで図を参照すると、図1は、本発明を実施することができるデータ処理システムのネットワークを示す。ネットワーク・データ処理システム100は、本発明を実施することができるコンピュータのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含む。ネットワーク102は、ネットワーク・データ処理システム100内で互いに接続された様々な装置およびコンピュータ間の通信リンクを提供するのに使用される媒体である。ネットワーク102は、ワイヤ、ワイヤレス通信リンク、光ファイバ・ケーブルなどの接続を含むことができる。
図示する例では、サーバ104が記憶装置106と共にネットワーク102に接続される。加えて、クライアント108、110、および112がネットワーク102に接続される。こうしたクライアント108、110、および112は、例えばパーソナル・コンピュータやネットワーク・コンピュータでよい。図示する例では、サーバ104は、HTML文書のようなデータ、および添付されたスクリプト、アプレット、またはその他のアプリケーションをクライアント108、110、および112に提供する。クライアント108、110、および112はサーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示していない追加のサーバ、クライアント、およびその他の装置を含むことができる。
図示する例では、ネットワーク・データ処理システム100は、ネットワーク102が、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)を使用して互いに通信するネットワークおよびゲートウェイの世界的な集合を表すインターネットである。インターネットの中心部は、データおよびメッセージを経路指定する、数千の商用コンピュータ・システム、政府コンピュータ・システム、教育コンピュータ・システム、およびその他のコンピュータ・システムを含むメジャー・ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンである。もちろん、ネットワーク・データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)などのいくつかの異なるタイプのネットワークとして実装することもできる。図1は一例であり、本発明のアーキテクチャ上の制限ではない。図示するサーバ104はウェブ・サーバであり、HTTPサーバとも呼ばれ、ウェブ・ブラウザなどのクライアントから要求を受けたとき、HTTPを使用してHTML文書および何らかの関連ファイル/スクリプトを供給するサーバ・ソフトウェアを含む。クライアントとサーバの間の接続は通常、要求された文書またはファイルを供給した後に切断される。HTTPサーバはウェブ・サイトおよびイントラネット・サイト上で使用される。
図2を参照すると、本発明の好ましい実施形態による、図1のサーバ104などのサーバとして実装することのできるデータ処理システムのブロック図が示されている。データ処理システム200は、クライアント108、110、および112のうち1つまたは複数から得られた手書き文字ストロークから計算されるパラメータを解析するのに使用することのできるコンピュータの一例である。より具体的には、データ処理システム200は、クライアントで処理されてディスプレイ装置上にコンピュータ・インターフェースを提供するデータを供給し、そのコンピュータ・インターフェースにより、クライアントのユーザは、ポインティング・デバイスを使用することによって手書き文字入力を与える。図示する例では、データ処理システム200によってクライアントに提供されるアプリケーションが、ユーザが入力した文字ストロークからパラメータを導出する。入力エリアを画定し、その入力エリアおよび基準エリアに関してストローク・パラメータをスケーリングする。入力エリアは、ユーザが入力した1つまたは複数の文字ストロークから画定または再画定される。基準エリアは、基準文字辞書の基準文字のサイズを示す。スケーリング因子は、画定した入力エリアおよび基準エリアから導出される。例えば、スケーリング因子は、入力エリアに対する基準エリアの比(例えば面積比)として計算することができる。ストローク・パラメータは、スケーリング因子に基づいて調整される。次いでクライアント・アプリケーションが、スケーリングしたストローク・パラメータを含むストローク・パラメータをデータ処理システム200に通信する。追加のストロークが入力されたとき、入力エリアおよびスケーリング因子を調整することができる。パラメータの受信に応答して、データ処理システム200は、1つまたは複数の候補文字を識別し、その候補文字をクライアントに通信する。
ストローク・パラメータは、ユーザが入力したストロークの属性を定義し、サーバにより、基準文字辞書内の基準文字のストロークの対応する属性と比較される。例えば、ユーザが入力した手書き文字ストロークの長さの数値的尺度を与えるストローク長パラメータをクライアントで求めることができる。ストローク長パラメータをサーバに通信し、基準文字ストロークの基準長パラメータと比較することにより、手書き文字ストロークの長さと基準文字ストロークの長さとの間の一致の程度を示す数値的尺度が得られる。手書き文字ストロークが入力された軌跡の数値的尺度を与えるストローク角パラメータをクライアントで求めることができる。ストローク角パラメータをサーバに通信し、基準文字ストロークの基準角パラメータと比較することにより、手書き文字ストロークの角度と基準文字ストロークの角度との間の一致の程度を示す数値的尺度が得られる。手書き文字ストロークの中心点の位置または座標を識別する中心パラメータをクライアントで求めることができる。中心パラメータをサーバに通信し、それを手書き文字ストロークの他の中心パラメータと比較して、ストローク間の位置関係を求めることができる。ストローク中心パラメータの比較に基づく手書き文字ストロークの位置尺度を基準文字ストローク間の中心パラメータの関係と比較して、手書き文字ストロークの相対位置と基準文字ストロークの相対位置との間の数値的対応を求めることができる。本明細書では角度パラメータ、長さパラメータ、および中心パラメータをストローク・パラメータ・セットと総称する。
次いで、長さパラメータ、角度パラメータ、および中心パラメータの比較結果を評価して、手書き文字ストロークと基準ストロークとの間の対応を求める。このプロセスを基準文字辞書の残りの基準文字についてサーバで反復する。基準文字のうち1つまたは複数を、入力である文字との潜在的マッチとして識別し、それをクライアントに通信する。
データ処理システム200は、システム・バス206に接続された複数のプロセッサ202および204を含む対称型マルチプロセッサ(SMP)システムでよい。あるいは、単一プロセッサ・システムを使用してもよい。システム・バス206には、ローカル・メモリ209に対するインターフェースを提供するメモリ・コントローラ/キャッシュ208も接続される。I/Oバス・ブリッジ210がシステム・バス206に接続され、I/Oバス212に対するインターフェースを提供する。メモリ・コントローラ/キャッシュ208とI/Oバス・ブリッジ210は、図示するように一体化することができる。
I/Oバス212に接続されたPCIバス・ブリッジ214が、PCIローカル・バス216に対するインターフェースを提供する。いくつかのモデムをPCIローカル・バス216に接続することができる。典型的なPCIバス実装は、4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。図1のクライアント108、110、および112に対する通信リンクは、アドイン・ボードを介してPCIローカル・バス216に接続されたモデム218およびネットワーク・アダプタ220を介して設けることができる。
追加のPCIバス・ブリッジ222および224が、追加のモデムまたはネットワーク・アダプタをサポートすることができる追加のPCIローカル・バス226および228に対するインターフェースを提供する。このようにして、データ処理システム200により、複数のネットワーク・コンピュータに対する接続が可能となる。図示するように、メモリ・マップ・グラフィックス・アダプタ230およびハード・ディスク232も直接的または間接的にI/Oバス212に接続することができる。以下でより完全に説明するように、システム200は、本発明の一実施形態による手書き文字認識アルゴリズムを実行する。
図2に示すハードウェアは変更可能である。例えば、光ディスク・ドライブなどの他の周辺装置を、図示するハードウェアに加えて、またはその代わりに使用することもできる。図示する例は、本発明に関するアーキテクチャ上の制限を示唆するものではない。
図2に示すデータ処理システムは、例えば、AIXオペレーティング・システムまたはLINUXオペレーティング・システムが動作する、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポーレーションの製品であるIBM eServer pSeriesシステムでよい。
次に図3を参照すると、本発明を実施することのできるデータ処理システムを示すブロック図が示されている。データ処理システム300は、図1のクライアント108などのクライアント・コンピュータの一例であり、ユーザから手書き文字を受け取るため、および手書き文字のストローク・パラメータを計算するために使用することができる。より具体的には、データ処理システム300は、システム200からウェブ・ページ・ダウンロードを受信し、ウェブ・ページ・ダウンロードの処理に応答して、手書き文字入力用のコンピュータ・インターフェースを表示する。手書き文字の各文字ストロークが、ストローク開始イベントおよびストローク終了イベントについて評価される。データ処理システム300は、ストローク開始イベントおよびストローク終了イベントの判定の際に、入力エリアおよび1つまたは複数のストローク・パラメータを計算する。
データ処理システム300は、計算したストローク・パラメータのうち1つまたは複数をスケーリングし、ストローク・パラメータをデータ処理システム200に通信して、データ処理システム200で実行される手書き文字認識アルゴリズムにサブミットする。データ処理システム200で識別した候補文字は、データ処理システム300に通信し、ユーザは、クライアント・コンピュータ・インターフェースに供給される文字と、データ処理システム200で識別された候補文字との間のマッチを確認することができる。ユーザが文字ストロークをクライアント・コンピュータ・インターフェースに引き続き供給するとき、追加のストローク・パラメータを計算する。追加のストロークが入力されるとき、入力エリアを調整し、入力エリアの調整に応答してストローク・パラメータのうち1つまたは複数をスケーリングする。候補文字がデータ処理システム300のユーザによってマッチと確認されるまで、さらに手書き文字分析を行うためにストローク・パラメータをシステム200に通信する。
データ処理システム300は、PCIローカル・バス・アーキテクチャを使用する。図示する例ではPCIバスを使用しているが、AGPやISAなどの他のバス・アーキテクチャも使用することができる。プロセッサ302およびメイン・メモリ304は、PCIブリッジ308を介してPCIローカル・バス306に接続される。PCIブリッジ308はまた、プロセッサ302用の統合メモリ・コントローラ/キャッシュ・メモリも含むことができる。直接コンポーネント相互接続またはアドイン・ボードを介してPCIローカル・バス306への追加の接続を行うことができる。図示する例では、ローカル・エリア・ネットワーク(LAN)アダプタ310、SCSIホスト・バス・アダプタ312、および拡張バス・インターフェース314が、直接コンポーネント接続によってPCIローカル・バス306に接続される。一方、オーディオ・アダプタ316、グラフィックス・アダプタ318、およびオーディオ/ビデオ・アダプタ319は、拡張スロットに挿入されたアドイン・ボードによってPCIローカル・バス306に接続される。グラフィックス・アダプタ318は、コンピュータ・インターフェースすなわちGUIを提供するディスプレイ装置107を駆動し、ユーザが提供した手書き文字を表示する。拡張バス・インターフェース314は、キーボード/マウス・アダプタ320、モデム322、および追加のメモリ324に対する接続を提供する。マウス109などのポインティング・デバイスがアダプタ320に接続され、それにより、ユーザによるシステム300へのポインタ入力の供給が可能となる。SCSIホスト・バス・アダプタ312は、ハード・ディスク・ドライブ326、テープ・ドライブ328、およびCD−ROMドライブ330に対する接続を提供する。典型的なPCIローカル・バス実装は、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。
「マウス」という用語は、本明細書で使用する際には、限定はしないが、マウス、トラック・ボール、ライト・ペン、スタイラス、タッチ・スクリーンまたはタッチ・パッドなどを含む、オペレーティング・システムがサポートする任意のタイプのグラフィカル・ポインティング・デバイスを指す。ポインティング・デバイスは通常、データ処理システムのユーザがデータ処理システムのGUIと対話するのに使用される。「ポインタ」とは、マウスやその他のそうした装置で制御されるアイコン・イメージであり、選択または操作することのできるアイコンやメニューなどを視覚的にユーザに示すためにデータ処理システムのビデオ・ディスプレイ装置上に表示される。
オペレーティング・システムはプロセッサ302上で動作し、図3のデータ処理システム300内の様々なコンポーネントの制御を調整および提供するのに使用される。オペレーティング・システムは、マイクロソフト・コーポレーションから入手可能なWindows XPなどの市販のオペレーティング・システムでよい。Javaなどのオブジェクト指向プログラミング・システムがオペレーティング・システムと共に動作することができ、データ処理システム300上で実行中のJavaプログラムまたはアプリケーションからオペレーティング・システムへの呼出しを実現する。「Java」はサン・マイクロシステムズ社の商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令は、ハード・ディスク・ドライブ326などの記憶装置に配置され、メイン・メモリ304にロードしてプロセッサ302で実行することができる。
データ処理システム300は、本発明の一実施形態による文字ストローク収集アルゴリズムを実行するように適合されたウェブ・ブラウザを実行する。好ましくは、ブラウザが文書、例えばHTMLで符号化されたウェブ・ページをシステム200からダウンロードしたときに、ストローク収集アルゴリズムがJavaアプレットとしてシステム300に配布される。したがって、データ処理システム300で実行されるブラウザは、Internet Explorer、Netscapeなどの、Javaが使用可能な様々な周知のウェブ・ブラウザのいずれかとして実装することができる。
図3のハードウェアは実装に応じて変更可能である。フラッシュ読取り専用メモリ(ROM)、同等の不揮発性メモリ、光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺装置を、図3に示すハードウェアに加えて、またはその代わりに使用することができる。さらに、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
別の例として、データ処理システム300は、オペレーティング・システム・ファイルやユーザ生成データを格納する不揮発性記憶を提供するためのROMやフラッシュROMと共に構成された携帯情報端末(PDA)装置でよい。
図3に示す例および上述の例はアーキテクチャ上の制限を示唆するものではない。例えば、データ処理システム300は、PDAの形態を取ることに加えて、ノートブック・コンピュータまたはハンドヘルド・コンピュータでもよい。データ処理システム300はキオスクまたはウェブ・アプライアンスでもよい。
図4に、クライアントが本発明の好ましい実施形態によるサーバ104と接続するときにディスプレイ装置107上に出力されるGUI400を示す。GUI400は、クライアントがサーバ104から通信されたウェブ・ページを処理したことに応答して表示される。GUI400は、ウェブ・ブラウザ・インターフェース408のウィンドウ404内に表示されることが好ましい。図4に示すように、GUI400は、クライアントに供給された手書き文字と、本発明の実施形態によるデータ処理システム200によって識別されデータ処理システム300に通信された候補文字とを表示するキャプチャ・エリア402を含む。ユーザは、マウス109などのポインティング・デバイスを介して手書き文字をキャプチャ・エリア402に供給する。加えて、GUI400は、最後に決定した候補文字を表示し、ユーザによる候補文字マッチの確認を受ける候補文字ディスプレイ410を含む。
GUI400はまた、キャプチャ・エリア402に供給されたスケーリング後の手書き文字または手書き文字ストロークを出力するウィンドウ442も含むことができる。スケーリング・ウィンドウ442のグラフィック出力は、ユーザがキャプチャ・エリア402に入力した手書き文字ストロークに対応する拡大文字ストロークまたは縮小文字ストロークを含むことができる。図示する例では、スケーリング・ウィンドウ442は、文字406を所定量だけスケーリングすることによって文字406から導出されるスケーリング済み文字407を出力する。具体的には、スケーリング済み文字407は、ユーザがキャプチャ・エリア402に入力したストローク412、414、および416にそれぞれ対応するスケーリング済み文字ストローク413、415、および417からなる。スケーリング・ウィンドウ442は、一貫したサイズを有する視覚出力を提供し、入力した手書き文字データの一様な視覚フィードバックをユーザに提供する機構を提供する。
スケーリング・ウィンドウ442は、GUI400の事前定義エリアに設定した固定の寸法でよい。さらに、スケーリング・ウィンドウ442内に表示されるスケーリング済みストロークは、ユーザによる後続の手書きストロークの入力後に再スケーリングすることができる。例えば、ストローク412がユーザによって入力された文字406の第1ストロークであると仮定する。スケーリング済みストローク413は、スケーリング・ウィンドウ442内に収まるように手書き文字ストローク413をスケーリングすることによって導出される。さらに、ストローク414がユーザによって入力された文字406の第2ストロークであると仮定する。スケーリング済みストローク415はストローク414をスケーリングすることによって導出される。スケーリング済みストローク413および415がどちらもスケーリング・ウィンドウ442内に収まるように、スケーリング済みストローク415に比例してスケーリング済みストローク413を再スケーリングすることが好ましい。追加の手書き文字ストロークがキャプチャ・エリア402に入力されたとき、対応するスケーリング済みストロークを手書き入力から導出し、先にスケーリングしたストロークを互いに比例するように再スケーリングしてスケーリング・ウィンドウ442内に表示することができる。本発明の好ましい実施形態によれば、スケーリング・ウィンドウ442内に表示されるスケーリング済みストロークは、キャプチャ・エリアの一部である入力エリアに従ってスケーリングされる。入力エリアの面積は、手書きストロークの極値から計算される。入力エリアの画定および面積の計算は以下でより完全に説明する。
図示する例では、キャプチャ・エリア402に入力された完全な中国語文字406が示されている。文字406の入力はいくつかのハンド・ストロークを必要とする。図示した特定の文字は、3つのストローク412、414、および416の入力を必要とする。クライアントで実行されるストローク収集アルゴリズムは、キャプチャ・エリア402に供給される各文字ストロークの開始および終了を検出する。ストロークの完了を検出したとき、検出したストロークから入力エリアおよびストローク・パラメータ・セットを計算する。以下でより完全に説明するように、入力エリアに従ってストローク・パラメータのうち1つまたは複数をスケーリングする。次いでストローク・パラメータをデータ処理システム200に通信し、ユーザ入力にマッチする可能性のある1つまたは複数の候補文字を識別する。
図5は、本発明の好ましい実施形態によるクライアントで実行されるストローク収集アルゴリズムの処理の流れ図である。ストローク収集アルゴリズムを開始し、ストローク・カウンタiをゼロに初期化する(ステップ502)。ストローク収集アルゴリズムは、ストローク開始イベントのポーリング(ステップ504)に進む。図示する例では、ストローク開始イベントは、マウス・ボタンの押下などのポインティング・デバイス「ダウン」イベントである。ストローク開始イベントの検出時に、ストローク収集アルゴリズムは、ストローク開始イベントの座標を一時的に記録し(ステップ506)、ストローク終了イベントのポーリング(ステップ508)に進む。図示する例では、ストローク終了イベントは、マウス・ボタンの解放などのポインティング・デバイス「アップ」イベントである。
ストローク終了イベントの検出時に、ストローク終了イベントの座標を読み取り(ステップ510)、ストローク・カウンタiを増分する(ステップ511)。ストローク開始座標およびストローク終了座標からストローク・パラメータ・セットiを計算し(ステップ512)、計算したストローク・パラメータのうち1つまたは複数をクライアントによって格納することができる(ステップ513)。加えて、ストローク開始座標およびストローク終了座標から、または計算したストローク・パラメータのうち1つまたは複数から入力エリアiを画定し、その面積を計算する(ステップ514)。次いで、入力エリアおよび基準エリアからスケーリング因子を導出し、ストローク・パラメータのうち1つまたは複数をスケーリング因子に従って調整する(ステップ515)。次いで、スケーリングしたストローク・パラメータを含むストローク・パラメータ・セットiを、手書き文字認識アルゴリズムで分析するためにデータ処理システム200に通信する(ステップ516)。続行するかどうかについての評価を行い(ステップ517)、ルーチンはステップ504に戻って別のストローク開始イベントをポーリングする。そうでない場合はルーチンは終了する(ステップ518)。
手書き文字ストロークから他のストローク・パラメータを導出することができ、ここで説明したストローク・パラメータと共に、またはその代わりにデータ処理システム200に通信することができる。例えば、クライアントは、所定の時間間隔で供給されたストローク・ピクセル間の距離を計算することにより、ストローク速度を測定することができる。加えて、ストローク比の測定をクライアントで行うことができる。様々な他のストローク・パラメータをユーザ入力から導出することができる。さらに、クライアントは、追加のストローク・パラメータを計算し、その追加のストローク・パラメータを一時的に格納することができる。一部のストローク・パラメータは、データ処理システム300に格納して、必要に応じてデータ処理システム200に通信することができる。すなわち、手書き文字認識アルゴリズムは、クライアントによる計算後にサーバに送られたストローク・パラメータに基づいて候補文字の識別を試みるように構成することができる。サーバは、例えばストローク・パラメータと基準パラメータの比較結果をより良いものにするために、必要ならクライアントに追加のストローク・パラメータを要求することができる。
図6は、本発明の好ましい実施形態によるストローク収集アルゴリズムのストローク・パラメータ計算サブルーチンで実行される処理の流れ図550である。図6に図示し説明する処理ステップは、図5のステップ512に対応する。ストローク開始イベントに続いてストローク終了イベントを検出すると、ストローク・パラメータ・セットiの計算を開始する(ステップ552)。ストローク開始座標およびストローク終了座標からストローク長パラメータを計算する(ステップ554)。例えば、ストローク開始イベントおよびストローク終了イベントに対応するポインタ・アイコン座標を代数的に処理して、ストロークの始点と終点の間の直線的「長さ」を求めることができる。加えて、例えばストローク開始座標とストローク終了座標の三角関数的関係によってストローク角パラメータを計算する(ステップ556)。ストローク角パラメータはストロークの方向を示す。ストローク中心パラメータを計算する(ステップ558)ことが好ましく、そのストローク中心パラメータは、ストローク長パラメータ、ストローク角パラメータ、およびストローク開始イベント座標またはストローク終了イベント座標から導出することができる。ストローク・パラメータを計算すると、ストローク・パラメータ計算サブルーチンは終了する(ステップ560)。
図7は、本発明の好ましい実施形態によるストローク収集アルゴリズムによるストローク・パラメータの計算を示す図である。マウス109などのポインティング・デバイスに与えられる適切なコマンドに応答して、ストローク開始イベントを検出する。例えば、ストローク開始イベントは、マウス・ポインタがキャプチャ・エリア402内に位置する間に、マウス「ダウン」イベント、またはマウス・ボタンの押下によるマウス・ドラッグ操作の開始に応答して検出することができる。あるいは、タッチ・パッドに手書き文字が与えられる場合、タッチ・パッド上で検出したスタイラス・ダウン・イベントに応答してストローク開始イベントを判定することができる。ストローク412の始点420を識別する。始点420は、ストローク開始イベントを検出したときのマウス位置に対応する。あるいは、始点420は、ストローク開始イベントを検出したときのタッチ・パッド上のスタイラス位置に対応する。ユーザがマウス109を移動するとき、その移動に従ってキャプチャ・エリア402内にストローク412を表示する。マウス「アップ」やボタン解放イベントなどのマウス109に与えられる適切なコマンドに応答して、ストローク終了イベントを検出する。あるいは、手書き文字がタッチ・パッドに与えられる場合、タッチ・パッド上で検出したスタイラス・アップ・イベントに応答してストローク終了イベントを検出することができる。ストローク412の終点422を識別する。終点422は、ストローク終了イベントを検出したときのマウス位置またはスタイラス位置に対応する。
マウスの位置を追跡し、それぞれの座標を始点420および終点422と関連付けるのに、座標系、例えばデカルト座標系を使用する。この例では、ストローク412は、x座標7およびy座標10の始点420と、x座標7およびy座標3の終点422を有する。ストローク412の始点と終点の対を検出した後、始点座標および終点座標から1つまたは複数のストローク・パラメータを導出し、データ処理システム200上で動作する手書き文字認識アルゴリズムにサブミットする。本発明の好ましい実施形態によれば、始点座標および終点座標からストローク長パラメータ(L)、ストローク角パラメータ(θ)、およびストローク中心パラメータ(C)を計算する。例えば、ストローク長は、始点座標および終点座標の代数的操作によって計算することができる。また例えば、ストロークの始点420および終点422の座標間の三角関数的関係により、始点座標および終点座標からストローク角パラメータを導出する。
加えて、始点座標と終点座標の一方、ストローク長パラメータ、ならびにストローク角パラメータをオペランドとして使用する三角関数計算により、ストローク中心パラメータを計算する。ストローク中心パラメータは、ストローク412の中心点の座標である。好ましい実施形態では、ストローク・パラメータは、ストロークを直線運動として近似することによって計算される。したがって、すべてのストローク・パラメータは、ストロークの始点座標および終点座標だけを使用して導出することができる。ストローク・パラメータのうち1つまたは複数がスケーリングされ、ネットワーク102によりデータ処理システム200に送信される。
特に、クライアント・システム300上で動作するストローク収集アルゴリズムは、ユーザが手書き入力を完了する前に、ユーザが入力している文字を識別しようと試みる。したがって、あるストローク入力から導出されたストローク・パラメータ・セットの通信を、ユーザによる後続のストロークの供給と同時に、データ処理システム200に対して行うことができる。図5〜7に関連して説明したストローク収集アルゴリズムは、データ処理システム200がデータ処理システム300と接続するときにウェブ・ページの添付ファイルとしてダウンロードされるJavaアプレットとして実装することが好ましい。
図8は、本発明の好ましい実施形態によるデータ処理システム200で実行される手書き文字認識アルゴリズムの処理の流れ図600である。手書き文字認識アルゴリズムは、クライアント・システムからストローク・パラメータ・セットを受信したときに開始する(ステップ602)。ストローク・パラメータ・セットの受信に応答して、基準文字辞書の検索を実行する(ステップ604)。基準文字辞書は、例えばテーブル、ファイル・システム、または別の適切なデータ構造として実装することができる。一般には、基準文字辞書は、ユーザの手書き文字ストロークから計算されたストローク・パラメータと突き合わせることができる各文字の属性を含む。
より具体的には、基準文字辞書は、ストローク長パラメータ、ストローク角パラメータ、ストローク中心パラメータなどの各ストロークの属性を含む。本明細書では、基準文字ストロークのストローク長パラメータ、ストローク角パラメータ、およびストローク中心パラメータを基準パラメータ・セットと総称する。基準文字辞書に維持される特定の基準文字エントリに関する基準パラメータを、クライアントからサーバに通信されたストローク・パラメータ・セットの対応するストローク・パラメータと比較する。ストローク・パラメータ・セットと基準パラメータ・セットとの間の対応の数値的尺度、すなわちマッチ確率を、基準文字辞書で定義される基準文字のうちの1つまたは複数について生成する。
N個の可能な文字マッチ、すなわち候補文字を基準文字辞書から取り出し、システム300に通信する(ステップ606)。基準文字辞書から取り出す候補文字の数を手書き文字認識アルゴリズム内に符号化することができ、またはクライアントによって提供することができる。
あるいは、所定のしきい値を超えるマッチ確率が得られるそれぞれの基準パラメータを有する基準文字辞書の文字エントリを、クライアントに通信する候補文字として選択することもできる。データ処理システム200はクライアントからの応答を待つ(ステップ608)。クライアントが候補文字のいずれかを、入力した文字とのマッチとして確認するかどうかについて評価を行う(ステップ610)。
N個の候補文字のいずれも、入力した手書き文字に対応しないとクライアントが応答を与えた場合、またはクライアントが候補文字マッチを確認することができなかった場合、手書き文字認識処理は追加のストローク・パラメータ・セットの受信を待つ(ステップ612)。追加のストローク・パラメータ・セットの受信時に、基準文字辞書の別の照会を実行する。
クライアント応答がN個の候補文字のうちの1つを手書き文字に対応する文字マッチと確認した場合、手書き文字認識処理は終了する(ステップ614)。したがって、基準文字辞書照会は、ユーザが供給した文字の各ストロークについて、手書き文字認識アルゴリズムで得られる候補文字がユーザによってマッチと確認されるまで続行する。図8を参照しながら例示および説明した手書き文字認識アルゴリズムをJavaサーブレットとして実装することが好ましい。手書き文字認識アルゴリズムのより詳細の処理の説明は、図18を参照しながら述べる。
図9は、基準文字辞書700のレコード720〜725の図である。通常、中国語文字の基準文字辞書は数千のレコードを有することになる。図示し説明するレコードは、本発明の理解を容易にするためだけに選んだものである。基準文字辞書700は、各フィールド710〜718内にデータ要素をそれぞれ含むレコード720〜725を有するテーブルとして実装されるが、適宜他のデータ構造を代用することもできる。フィールド710〜718は通常、挿入、削除、クエリ、および辞書700のその他のデータ・オペレーションまたは操作の処理を容易にする名前または識別子を有する。図示する例では、フィールド710、711、および712は、それぞれ文字番号、文字、およびストロークというラベルを有する。フィールド713〜717は、それぞれ基準パラメータ・セット1〜基準パラメータ・セット5とラベルが付けられる。この例では、フィールド718はオーディオというラベルを有する。基準パラメータ・セット・フィールド714〜717は、各レコード720〜725についての基準パラメータ・セットを含む。
各レコード720〜725は、特定のレコードを辞書700のその他のエントリと区別するために、キー・フィールド710内に固有の索引番号を含む。本明細書では、関連するキー・フィールド710の値を介して特定のレコードをアドレス指定することをレコードの索引付けと呼ぶ。文字フィールド711は、それぞれのレコード720〜725で定義される基準文字のイメージ・データを含む。例えば、レコード723は、図4を参照しながら説明したコンピュータ・インターフェースに供給される手書き文字に対応するイメージ・ファイル、またはイメージ・ファイルへの参照(イメージ・ファイルのアドレスなど)を文字フィールド711内に有する。
ストローク・フィールド712は、それぞれのレコード720〜725で定義される基準文字の構成文字ストロークの数を指定する値を有するデータ要素を含む。例えば、レコード723で定義される属性を有する文字は、1つの垂直ストロークおよび2つの水平ストロークからなり、したがってストローク・フィールド712はレコード723内に値3を含む。基準パラメータ・セット・フィールド713〜717は、それぞれのレコード720〜725に記載の文字の各ストロークについての基準パラメータ・セットを含む。例えばレコード723の基準パラメータ・セット・フィールド713〜715は、レコード723で定義される文字のストロークの基準パラメータ・セットをそれぞれ含み、基準パラメータ・セット・フィールド716および717はヌルに設定される。基準パラメータ・セット・フィールド713〜717に格納される基準パラメータは、固定の基準文字サイズまたは基準エリアに従って導出することが好ましい。例えば、基準パラメータが導出される基準文字のサイズは、固定のピクセル・ボリュームまたはエリアでよい。加えて、それぞれのレコード720〜725で定義される文字の正確な発音の音声記録であるオーディオ・ファイルを含むまたは参照するオーディオ・フィールド718を辞書700に含めることができる。
ストローク・パラメータ・セットを受信したとき、システム200は基準辞書に照会する。一般には、手書き文字認識アルゴリズムは、辞書700の各エントリを循環し、ストローク・パラメータ・セットのストローク・パラメータを、対応する基準パラメータ・セットのパラメータと比較する。例えば、ストローク・パラメータ・セットの長さパラメータを、基準文字辞書の基準パラメータ・セットの長さパラメータと比較する。同様に、ストローク・パラメータ・セットの角度パラメータおよび中心パラメータを、それぞれ基準パラメータ・セットの角度パラメータおよび中心パラメータと比較する。ストローク・パラメータ・セットと基準パラメータ・セットとの比較に応答して、マッチ確率を生成する。マッチ確率の評価に応答して、1つまたは複数の候補文字をサーバで選択し、データ処理システム300に返して、候補文字ディスプレイ410内に表示する。例えば、データ処理システム200は、辞書照会から得られる最高のマッチ確率を有する3つの基準文字辞書エントリの文字フィールド711で識別されるイメージをクライアントに通信することができる。加えて、候補文字イメージと共に候補文字のオーディオ・ファイルをクライアントに通信することができる。
次に図10を参照すると、ユーザが文字406の第1ストローク412を入力した後のキャプチャ・エリア402および候補ディスプレイ410の図が示されている。ストローク412についてのストローク・パラメータ・セットをクライアントで計算する。次いで、以下でより完全に説明するように、入力エリアを画定し、計算したストローク・パラメータのうちの少なくとも1つを、入力エリアおよび基準エリアに関してスケーリングする。次いでスケーリング済みストローク・パラメータを含むストローク・パラメータ・セットをデータ処理システム200に通信し、候補文字を識別する。データ処理システム200は、ストローク・パラメータ・セットを用いて基準文字辞書に照会し、ストローク・パラメータ・セットとレコード720〜725の基準パラメータ・セットとの比較に基づいて1つまたは複数の候補文字を識別する。データ処理システム200で識別した候補文字をクライアントに通信し、候補ディスプレイ410内に出力する。図示する例では、3つの候補文字430、432、および434が識別され、候補ディスプレイ410内に表示されている。システム200で識別された候補文字がクライアントに入力した文字とマッチする場合、ユーザは、候補ディスプレイ410内の正しい候補文字を選択することができる。この例では、第1ストローク412の入力後に識別した候補文字のいずれもユーザが書く文字406とマッチしない。
次に図11を参照すると、文字406の第1ストローク412および第2ストローク414をユーザが入力した後のキャプチャ・エリア402および候補ディスプレイ410の図が示されている。ストローク414についてのストローク・パラメータ・セットを計算し、第1ストローク412および第2ストローク414に従って入力エリアを調整または再画定することができる。第2ストローク414について計算したストローク・パラメータのうち少なくとも1つを調整済み入力エリアに従ってスケーリングすることができる。次いで第2ストローク414のストローク・パラメータ・セットをシステム200に通信し、基準文字辞書700にさらに照会する。加えて、クライアントで格納した第1ストローク412のストローク・パラメータ・セットを取り出して、第2ストローク414の入力後に計算した入力エリアに従って再スケーリングすることができる。第1ストローク412の再スケーリング済みストローク・パラメータ・セットを、第2ストローク414のスケーリング済みストローク・パラメータ・セットと共にデータ処理システム200に通信する。データ処理システム200は、クライアントがストローク414から計算したストローク・パラメータ・セットを用いて基準文字辞書700に照会し、1つまたは複数の候補文字を識別する。データ処理システム200で識別した候補文字をクライアントに通信し、候補ディスプレイ410内に出力する。図示する例では、基準文字辞書の2回目の照会後に候補文字430および432が候補としては除外されており、新しい候補文字436および438が識別され、クライアントに通信され、候補ディスプレイ410内に表示されている。候補文字436が、キャプチャ・エリア402に供給された文字とマッチする。ユーザは、例えばポインタを候補文字436の表示エリア内に配置して入力をマウスに与えることにより、候補文字436が入力した文字とマッチすることを確認する。クライアントは、ユーザによる確認入力が供給されたとき、確認メッセージをシステム200に与える。次いで、候補ディスプレイ410からユーザが選択した候補文字をキャプチャ・エリア402内に表示し、選択した文字のオーディオ再生をデータ処理システム200で出力することが好ましい。次いでユーザは、キャプチャ・エリア402内で追加の文字の入力を開始することができる。
本発明の好ましい実施形態によれば、ストローク・パラメータ・セットのストローク・パラメータのうち少なくとも1つが、ユーザがその中に手書き文字ストロークを供給する入力エリアに従ってスケーリングされる。ストロークの始点および終点から導出される長さパラメータを、ユーザが手書き文字ストロークを供給する入力エリアに従ってスケーリングすることが好ましい。本明細書での入力エリアとは、ストローク座標極値に文字ストロークの境界を定めるエリアである。入力エリアは、ストロークの始点および終点の座標により画定される。ストローク・パラメータのスケーリングは、画定した入力エリアおよび基準エリアから導出されるスケーリング因子を求めることによって実行される。
例示的実施形態では、スケーリング因子は、最後に画定した入力エリアに対する基準エリアの比である。例えば、図9の基準文字辞書700のレコード723で定義される基準文字800の図を示す図12を考慮する。基準文字800の属性、具体的には長さ、角度、および中心の基準パラメータが、基準パラメータ・フィールド713〜715で指定される。例えば、基準文字ストローク802の属性が、レコード723のフィールド713に格納された基準パラメータ・セットで定義されると仮定する。したがって、基準長パラメータL6は、基準文字800の一番上の水平ストロークの長さを表し、ユーザが入力したストロークの長さと基準文字800の一番上の水平ストロークとの間の対応、または対応の欠如を識別するための基盤を提供する。
ユーザが入力した手書き文字ストロークから導出されるパラメータとレコード720〜725の基準パラメータとの間の対応を求めることにより、入力された手書き文字と基準文字との間の潜在的文字マッチを行う。したがって、ユーザが文字を入力するサイズにより、手書き文字識別が変化する可能性がある。例えば、図13および14は、基準文字800に対応する2つの正しく書かれた手書き文字810および820の図である。すなわち、文字810および820のストローク間のストローク長の比、方向、および相対位置は、概して基準文字800に一致する。しかし、手書き文字810は、手書き文字820よりもずっと小さいフォント・サイズで書かれている。したがって、基準文字ストロークの長さパラメータを、手書き文字810および820の手書きストローク812または822などの長さパラメータと比較するとき、基準文字パラメータが導出されるサイズとは異なるサイズでユーザがストロークを供給することにより、マッチが適切に識別されない可能性がある。したがって、本発明は、文字が入力される入力エリアに従って入力ストロークをスケーリングする技法を提供する。
本発明は、基準文字辞書700で定義される基準文字に関連する基準エリア805を使用することにより、基準文字サイズとユーザが入力する文字のサイズとの間の関係を数値化する。本明細書では、基準エリアは、基準文字辞書の各基準文字を含めることができる事前定義エリアである。
次に図15を参照すると、本発明の好ましい実施形態による手書き文字ストロークの第1ストローク412の入力後の入力エリア440の画定の図が示されている。入力エリア440を破線で例示的に示すが、入力エリア440は、コンピュータ・インターフェースのキャプチャ・エリア内に表示されても、されなくてもよい。ユーザが入力する任意のストロークのx座標およびy座標の極値が境界になるように入力エリア440を画定することが好ましい。第1ストローク412は、座標(x,y)および(x,y)をそれぞれ有する始点420および終点422を有する。ストローク412の長さパラメータLは、例えば式1に示すピタゴラスの定理の計算によって得られる。
Figure 0004041496
単一のストロークの入力後、入力エリア440の面積Ac1を計算する。図示する例では、入力エリア440は、ストローク412の座標極値にその境界を定め、第1ストローク412の長さパラメータLに等しい辺の長さHおよびWを有する正方形である。すなわち、その面積は式2のようになる。
式2: Ac1=(x−x+(y−y
次いで、入力エリアおよび基準エリアから導出されたスケーリング因子に従って長さパラメータLをスケーリングする。データ処理システム200との接続時に基準エリアをデータ処理システム300に通信することが好ましい。すなわち、基準エリアは、クライアントに送られるストローク収集アルゴリズム内に符号化される。長さパラメータの例示的スケーリング計算は、以下に従って計算される。
式3: LS1=(A/Ac1)L
上式で、LS1は、第1ストローク412のスケーリング済み長さパラメータであり、Aは事前定義した基準エリアの面積であり、Lは第1ストローク412の長さパラメータであり、Ac1は第1ストローク412の入力後に計算した入力エリアの面積である。入力エリアの面積に対する基準エリアの面積の比A/Ac1はスケーリング因子である。
したがって、大き過ぎる入力ストロークから計算した長さパラメータは、スケーリング因子に比例して小さい値に調整される。小さ過ぎる入力ストロークから計算した長さパラメータは、スケーリング因子だけ大きい値に調整される。
スケーリング済み長さパラメータを含むストローク412に関するストローク・パラメータ・セットをデータ処理システム200に通信し、前述のように候補文字を識別する。
例えば、データ処理システム200で識別される候補文字のいずれも、ユーザが入力した文字とマッチしないと仮定する。ここで図16を参照すると、本発明の好ましい実施形態による手書き文字の第2ストローク414をユーザが入力した後の入力エリア画定の図が示されている。ユーザが2つ以上のストロークを入力したとき、x座標およびy座標のストローク極値に基づいて入力エリアを画定し、その面積を計算することが好ましい。ユーザが2つ以上のストロークを入力したときの入力エリア面積の例示的計算を以下で与える。
式4: Aci=(xmax−xmin)×(ymax−ymin
上式で、Aciは、iが少なくとも2で始まるi番目のストロークの入力後に計算した入力エリア面積であり、xmaxは、ユーザが入力したストロークの任意の始点または終点の最も右側のx座標であり、xminは、ユーザが入力したストロークの任意の始点または終点の最も左側のx座標であり、yminは、ユーザが入力したストロークの任意の始点または終点の最低のy座標であり、ymaxは、ユーザが入力したストロークの任意の始点または終点の最高のy座標である。
図示する例では、第2ストローク414は、x座標およびy座標がそれぞれ(x,y)および(x,y)である始点424および終点426を有する。ストローク収集アルゴリズムは、第1ストローク412および第2ストローク414の始点座標および終点座標を評価する。図示する例では、最も左側のx座標を第2ストローク414の始点424と識別し、最も右側のx座標を第2ストローク414の終点426と識別する。同様に、入力エリア440の最低のy座標を第1ストローク412の終点422のy座標と識別し、最高のy座標を第1ストローク412の始点420のy座標と識別する。したがって、図示する例の入力エリア面積は以下のように計算される。
c2=(x−x)×(y−y
次いでストローク414の長さパラメータを、新しく計算した入力エリア面積に対する基準エリア面積の比に従い、以下の式に従ってスケーリングする。
S2=(A/Ac2)L
上式でLS2は、第2ストローク414のスケーリング済み長さパラメータであり、AC2は、第2ストローク414の入力後に計算した入力エリア面積であり、Lは第2ストローク414の長さパラメータである。スケーリング済み長さパラメータLS2を含むストローク・パラメータ・セットをデータ処理システム200に通信し、基準文字辞書700に照会する。
データ処理システム200でマッチを識別し、データ処理システム300でマッチを確認するまで、データ処理システム300が、文字ストロークから計算した各長さパラメータを一時的に格納することが好ましい。加えて、先のストローク入力から計算した長さパラメータを、最後に計算した入力エリアの面積に従ってスケーリングし、最後のストローク・パラメータ・セットと共にデータ処理システム200に通信することが好ましい。例えば、第1ストローク412から計算した長さパラメータLは、第2ストローク414の入力後に計算した入力エリア面積AC2に従って再スケーリングすることができる。次いで、第1ストローク412についての再スケーリング済み長さパラメータを、第2ストローク414のストローク・パラメータ・セットと共にデータ処理システム200に通信する。したがって、手書き文字認識アルゴリズムは、最後に計算した入力エリアの面積に従ってスケーリングした複数のストロークの長さパラメータを用いて基準文字辞書に照会することができる。
次に図17を参照すると、流れ図900が、本発明の好ましい実施形態によるデータ処理システム300で実行されるストローク収集アルゴリズムで実施される処理を示している。ストローク収集アルゴリズムを起動し、ストローク・カウンタ・インデックスiを1に初期化する(ステップ902)。ストロークiの入力を検出し(ステップ904)、ストロークiについてストローク座標を求める(ステップ906)。長さパラメータL、角度パラメータΘ、中心パラメータCを含むストローク・パラメータ・セットiを計算する。入力ストロークiに従って入力エリアiを画定して、その面積を計算し(ステップ910)、計算したストローク長パラメータLを一時的に格納することができる(ステップ912)。次に、スケーリング後の長さパラメータLsiを前述と同様に計算する(ステップ914)。
インデックスjを現ストローク・カウントにセットし(ステップ916)、評価を行って、現ストローク・パラメータ・セットが第1ストローク入力から導出されるかどうかを判定する(ステップ918)。現ストローク・パラメータ・セットが第1ストロークから導出されない場合、すなわちインデックスjが1より大きい場合、インデックスjを減分し(ステップ920)、先の長さパラメータLを取り出し、最新の入力エリアiの面積に従ってスケーリングする(ステップ922)。次いで処理はステップ918に戻る。ストローク収集アルゴリズムは、第1ストローク・パラメータLを最新の入力エリアiの面積に従って再スケーリングするまで、先に受け取ったストローク長パラメータの再スケーリングを続行する。
次いでストローク収集アルゴリズムは、現ストロークから計算したスケーリング済みパラメータ・セットiをクライアントに送信する(ステップ924)。スケーリング済みパラメータ・セットiは、ストロークiの始点および終点から計算した角度パラメータΘおよび中心パラメータC、ならびにスケーリング済み長さパラメータLsiを含む。加えて、ストローク収集アルゴリズムは、任意の再スケーリング済み長さパラメータをクライアントに送信する(ステップ926)。スケーリング済み長さパラメータ・セットiおよび任意の再スケーリング済み長さパラメータLsj〜Ls(i−1)は、単一のデータ・パッケージ、例えばデータ処理システム300とデータ処理システム200の間の単一のHTTPセッションとしてデータ処理システム200に通信することが好ましい。
次いでストローク収集アルゴリズムは、追加のストローク入力が行われたかどうかを評価する(ステップ928)。追加のストロークが入力された場合、ストローク・インデックス・カウンタiを増分し(ステップ930)、ストローク収集アルゴリズムはステップ906に戻る。そうでない場合、ストローク収集アルゴリズムは終了する(ステップ932)。
再び図12〜14を参照すると、ユーザが供給する入力文字のサイズと基準ストローク・パラメータを導出する基準エリアとの違いのために、ストローク長パラメータのスケーリングを行わないストローク長パラメータと基準長パラメータとの比較によって望ましくない比較結果が生成される可能性があることについて先に触れた。
しかし、特に手書き文字ストロークから行われる角度パラメータの計算は、文字の入力サイズに依存しない。例えば、手書き文字810および820は2つの異なるサイズであるが、手書き文字810および820のそれぞれのストローク812および822により、それぞれのストロークについて等しい角度パラメータが得られる。入力される文字の追加のストロークがユーザによって入力されたとき、再画定された入力エリアは、ユーザが文字を供給しているエリアについてのより正確な表示となることにも留意されたい。
本発明の別の実施形態によれば、入力ストローク・サイズに依存しないストローク属性の尺度としての角度パラメータの信頼性により、サーバは、基準角度パラメータとストローク角パラメータの間の最初の比較、または最初の1組の比較に対してより高い重みを加える。
次に図18を参照すると、流れ図1000は、本発明の好ましい実施形態による基準文字辞書700への照会のためにデータ処理システム200で実行されるサーバ側手書き文字認識処理を示している。手書き文字認識アルゴリズムを起動する。ストローク・カウンタiを1に初期化し、レコード・インデックス・カウンタkをゼロに初期化する(ステップ1002)。スケーリング済みストローク・パラメータ・セットiをクライアントから受け取り(ステップ1004)、基準文字辞書700のレコードkの基準パラメータ・セットと比較する(ステップ1006)。ストローク・パラメータ・セットiのストローク角パラメータとレコードkの基準角度パラメータとの間の比較結果を、ストローク数の関数として、すなわちiの関数として重み付けする(ステップ1008)。
好ましくは、ストローク角パラメータと基準角度パラメータの間で行った比較結果を、最初のストローク・パラメータ・セットについて最も重く重み付けし、次いで後続のストローク・パラメータ・セットの比較について減少させる。ストローク角パラメータは、ユーザが提供するストロークの入力サイズの如何にかかわらず正確なストローク属性の尺度を与えるので、手書き文字の最初に入力したストロークについて、ストローク角パラメータと基準角度パラメータの比較結果を重み付けする利点が得られる。候補文字を決定する際の角度パラメータ比較の重みを、最初のストローク・パラメータ・セットの比較後に1つまたは複数の後続のストロークについて減少させることが好ましい。
次いで手書き文字認識アルゴリズムは、現ストローク・パラメータ・セットiと比較するための追加のレコードが基準文字辞書700内に残っているかどうかについての評価に進む(ステップ1010)。現ストローク・パラメータ・セットiと比較するための追加のレコードが残っている場合、レコード・インデックス・カウンタkを増分し(ステップ1012)、処理はステップ1006に戻り、ストローク・パラメータ・セットiを次の基準文字辞書レコードと比較する。あるいは、手書き文字認識アルゴリズムは、ストローク・パラメータ・セットiと基準文字辞書レコードの基準パラメータ・セットとの間の比較結果に基づく候補文字の識別に進む(ステップ1014)。次いで候補文字をクライアントに送り(ステップ1016)、候補文字とクライアントで入力された文字とがマッチするかどうかについて評価を行う(ステップ1018)。マッチが確認されない場合、手書き文字認識アルゴリズムは、ストローク・カウンタiの増分に進み(ステップ1020)、次のストローク・パラメータ・セットの受信を待つ(ステップ1021)。あるいは、手書き文字認識アルゴリズムは終了する(ステップ1022)。
記載のように、本発明は、手書き文字ストロークが供給される入力エリアに従って手書き文字ストローク・パラメータをスケーリングする方法およびコンピュータ・プログラムを提供する。検出した手書き文字ストロークの始点および終点からストローク長パラメータおよび入力エリアを計算する。基準文字パラメータが導出される基準文字サイズの関係尺度を与える入力エリアおよび基準エリアに従ってストローク長パラメータをスケーリングする。スケーリング済みストローク長パラメータを手書き文字認識アルゴリズムに供給し、それを使用して、クライアントで入力された文字とマッチする可能性のある候補文字を識別する。したがって、ストローク・パラメータと基準文字辞書の基準パラメータとの間の比較結果が改善される。
本発明を完全に機能するデータ処理システムの状況で説明したが、本発明のプロセスをコンピュータ可読媒体の形態の命令および様々な形態として配布することができ、また本発明は、その配布のために使用される信号担持媒体のタイプに関係なく等しく適用される。コンピュータ可読媒体の例には、フレキシブル・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体や、デジタル/アナログ通信リンク、例えば無線周波数/光波伝送などの伝送形式を使用する有線/ワイヤレス通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するために復号化されるコード化フォーマットの形態を取ることができる。
例示の目的で本発明を説明してきたが、上述の説明は網羅的なものではなく、本発明は開示の形態の発明に限定されない。多数の修正形態および変形形態が当業者には明らかであろう。
本発明を実施することができるデータ処理システムのネットワークを示す図である。 本発明の好ましい実施形態によるサーバとして実装することのできるデータ処理システムのブロック図である。 本発明を実施することのできるデータ処理システムを示すブロック図である。 本発明の好ましい実施形態による手書き文字入力を受諾し、候補文字を表示するコンピュータ・インターフェースの図である。 本発明の好ましい実施形態による手書き文字ストロークを収集するためにクライアントで実行される処理の流れ図である。 本発明の好ましい実施形態によるクライアントで実行されるストローク・パラメータ計算の流れ図である。 本発明の好ましい実施形態によるクライアントによるストローク・パラメータの計算を示す図である。 本発明の好ましい実施形態によるサーバで実行される手書き文字認識アルゴリズムの処理の流れ図である。 本発明の好ましい実施形態による候補文字を識別するのに使用される基準文字辞書レコードの図である。 本発明の好ましい実施形態による第1文字ストロークのユーザ入力後のコンピュータ・インターフェース内のキャプチャ・エリアおよび候補ディスプレイを示す図である。 本発明の好ましい実施形態による第2文字ストロークのユーザ入力後の図10に記載のキャプチャ・エリアおよび候補ディスプレイを示す図である。 本発明の好ましい実施形態による基準文字辞書のレコードで定義される基準文字の図である。 図12に記載の基準文字に対応する正確に書かれた手書き文字の図である。 図12に記載の基準文字に対応する正確に書かれた手書き文字の図である。 本発明の好ましい実施形態による文字の第1ストロークの入力後の入力エリアの計算の図である。 本発明の好ましい実施形態による文字の第2ストロークの入力後の入力エリアの画定および面積計算の図である。 本発明の好ましい実施形態によるストローク収集アルゴリズムで実行される処理を示す流れ図である。 本発明の好ましい実施形態に従って処理されるサーバ側手書き文字認識処理を示す流れ図である。
符号の説明
100 ネットワーク・データ処理システム
102 ネットワーク
104 サーバ
106 記憶装置
107 ディスプレイ装置
108 クライアント
109 マウス
110 クライアント
112 クライアント
200 データ処理システム
202 プロセッサ
204 プロセッサ
206 システム・バス
208 メモリ・コントローラ/キャッシュ
210 I/Oバス・ブリッジ
212 I/Oバス
214 PCIバス・ブリッジ
216 PCIローカル・バス
218 モデム
220 ネットワーク・アダプタ
222 PCIバス・ブリッジ
224 PCIバス・ブリッジ
226 PCIローカル・バス
228 PCIローカル・バス
230 メモリ・マップ・グラフィックス・アダプタ
232 ハード・ディスク
300 データ処理システム
302 プロセッサ
304 メイン・メモリ
306 PCIローカル・バス
308 PCIブリッジ
310 ローカル・エリア・ネットワーク・アダプタ
312 SCSIホスト・バス・アダプタ
314 拡張バス・インターフェース
316 オーディオ・アダプタ
318 グラフィックス・アダプタ
319 オーディオ/ビデオ・アダプタ
320 キーボード/マウス・アダプタ
322 モデム
324 メモリ
326 ハード・ディスク・ドライブ
328 テープ・ドライブ
330 CD−ROMドライブ
400 GUI
402 キャプチャ・エリア
404 ウィンドウ
406 文字
408 ウェブ・ブラウザ・インターフェース
410 候補文字ディスプレイ
412 ストローク
413 文字ストローク
414 ストローク
415 文字ストローク
416 ストローク
417 文字ストローク
420 始点
422 終点
424 始点
426 終点
430 候補文字
432 候補文字
436 候補文字
438 候補文字
440 入力エリア
442 ウィンドウ
700 基準文字辞書
710 フィールド
711 フィールド
712 フィールド
713 フィールド
714 フィールド
715 フィールド
716 フィールド
717 フィールド
718 フィールド
720 レコード
721 レコード
722 レコード
723 レコード
724 レコード
725 レコード
800 基準文字
802 基準文字ストローク
805 基準エリア
810 手書き文字
812 手書きストローク
820 手書き文字
822 手書きストローク

Claims (10)

  1. 手書き文字認識のために、コンピュータで手書き文字入力をスケーリングする方法であって、
    キャプチャ・エリアに供給された第1手書き文字ストロークからストローク・パラメータを導出するステップと、
    前記第1手書き文字ストロークが供給された前記キャプチャ・エリアにおいて、当該文字ストロークの座標極値に基づいて入力エリアを画定するステップであって、第2手書き文字ストロークが供給されることに応答して、前記第1手書き文字ストロークおよび前記第2手書き文字ストロークの座標極値に基づいて前記入力エリアを再画定するものと、
    前記入力エリアと基準エリアとの面積の比に従って前記ストローク・パラメータをスケーリングするステップと
    を含む方法。
  2. 手書き文字ストロークから導出されるパラメータをスケーリングするためのコンピュータ・プログラムであって、コンピュータに、
    コンピュータ・インターフェースに入力された第1ストロークの始点および終点を求め、前記始点および前記終点の決定に応答して前記第1ストロークのストローク長パラメータを計算する第1ステップと、
    前記第1ストロークが供給された前記コンピュータ・インターフェースにおいて、当該文字ストロークの座標極値に基づいて入力エリアを画定し、前記第1ストロークのストローク長パラメータを前記入力エリアと基準エリアとの面積の比に従ってスケーリングする第2ステップとを実行させ、
    前記コンピュータ・インターフェースに第2ストロークが入力されることに応答して、前記第1ステップが、前記第2ストローク入力の始点および終点を求め、前記第2ステップが、前記入力エリアを再画定する、コンピュータ・プログラム。
  3. 前記第1ステップが、前記第2ストロークのストローク長パラメータを計算する請求項に記載のコンピュータ・プログラム。
  4. 前記第2ステップが、再画定した入力エリアに従って、前記第2ストロークの前記ストローク長パラメータを再スケーリングする請求項に記載のコンピュータ・プログラム。
  5. 前記第2ステップが、再画定した前記入力エリアに従って前記第1ストロークの前記ストローク長パラメータを再スケーリングする請求項4に記載のコンピュータ・プログラム。
  6. キャプチャ・エリアに供給された第1手書き文字ストロークおよび第2手書き文字ストロークを受け取るポインティング・デバイスと、
    1組の命令を含むメモリと、
    前記1組の命令の実行に応答して、前記第1手書き文字ストロークの始点および終点を求め、前記始点および前記終点からストローク長パラメータを計算し、前記始点および前記終点の決定に応答して、前記第1手書き文字ストロークが供給されたキャプチャ・エリアにおいて、当該文字ストロークの座標極値に基づいて入力エリアを画定し、計算した前記ストローク長パラメータを、前記入力エリアと基準エリアとの面積の比に従ってスケーリングする処理装置であって、第2手書き文字ストロークの始点および終点の決定に応答して、前記第1手書き文字ストロークおよび前記第2手書き文字ストロークの座標極値に境界を定めるように前記入力エリアを再画定するものと
    を備えるデータ処理システム。
  7. 前記処理装置が、前記入力エリアの再画定に応答して、前記ストローク長パラメータを再スケーリングする請求項に記載のデータ処理システム。
  8. 前記処理装置が、前記第2手書き文字ストロークの前記始点および前記終点の決定に応答して、前記第2手書き文字ストロークのストローク長パラメータを計算し、再画定した前記入力エリアに関して前記第2手書き文字ストロークの前記ストローク長パラメータをスケーリングする請求項に記載のデータ処理システム。
  9. 手書き文字ストロークから導出されるパラメータをスケーリングするためのコンピュータ・プログラムであって、コンピュータに、
    入力された第1ストロークを表示するように適合されたコンピュータ・インターフェースにキャプチャ・エリアを表示する第1ステップと、
    前記第1ストロークが供給されたキャプチャ・エリアにおいて、当該文字ストロークの座標極値に基づいて入力エリアを画定し、前記ストロークを前記入力エリアと基準エリアとの面積の比に従ってスケーリングする第2ステップと、
    前記コンピュータ・インターフェースのウィンドウ内にスケーリングした前記ストロー
    クを表示する第3ステップと
    第2ストロークの入力に応答して、前記入力エリアを再画定し、再画定した前記入力エリアに従って前記第2ストロークをスケーリングし、再画定した前記入力エリアに従って前記第1ストロークを再スケーリングするステップと
    を実行させるためのコンピュータ・プログラム。
  10. 前記第3ステップが、再スケーリングした前記第1ストロークおよびスケーリングした前記第2ストロークを前記ウィンドウ内に表示する請求項に記載のコンピュータ・プログラム。
JP2005005074A 2004-01-14 2005-01-12 手書き文字認識のために手書き文字入力をスケーリングする方法および装置 Active JP4041496B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/756,930 US7298904B2 (en) 2004-01-14 2004-01-14 Method and apparatus for scaling handwritten character input for handwriting recognition

Publications (2)

Publication Number Publication Date
JP2005202959A JP2005202959A (ja) 2005-07-28
JP4041496B2 true JP4041496B2 (ja) 2008-01-30

Family

ID=34739941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005005074A Active JP4041496B2 (ja) 2004-01-14 2005-01-12 手書き文字認識のために手書き文字入力をスケーリングする方法および装置

Country Status (3)

Country Link
US (1) US7298904B2 (ja)
JP (1) JP4041496B2 (ja)
CN (1) CN100385454C (ja)

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7490033B2 (en) * 2005-01-13 2009-02-10 International Business Machines Corporation System for compiling word usage frequencies
US7672512B2 (en) 2005-03-18 2010-03-02 Searete Llc Forms for completion with an electronic writing device
US8290313B2 (en) * 2005-03-18 2012-10-16 The Invention Science Fund I, Llc Electronic acquisition of a hand formed expression and a context of the expression
US7873243B2 (en) 2005-03-18 2011-01-18 The Invention Science Fund I, Llc Decoding digital information included in a hand-formed expression
US8229252B2 (en) 2005-03-18 2012-07-24 The Invention Science Fund I, Llc Electronic association of a user expression and a context of the expression
US8340476B2 (en) 2005-03-18 2012-12-25 The Invention Science Fund I, Llc Electronic acquisition of a hand formed expression and a context of the expression
US8232979B2 (en) 2005-05-25 2012-07-31 The Invention Science Fund I, Llc Performing an action with respect to hand-formed expression
US8823636B2 (en) 2005-03-18 2014-09-02 The Invention Science Fund I, Llc Including environmental information in a manual expression
US7809215B2 (en) 2006-10-11 2010-10-05 The Invention Science Fund I, Llc Contextual information encoded in a formed expression
US20060212430A1 (en) 2005-03-18 2006-09-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Outputting a saved hand-formed expression
US8787706B2 (en) 2005-03-18 2014-07-22 The Invention Science Fund I, Llc Acquisition of a user expression and an environment of the expression
US20060221056A1 (en) * 2005-03-31 2006-10-05 Inventec Corporation Method and system for inputting single-stroke code
US7961943B1 (en) * 2005-06-02 2011-06-14 Zeevi Eli I Integrated document editor
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
PT1994012E (pt) * 2006-02-10 2010-01-18 Janssen Pharmaceutica Nv Novas di-hidropirazinas tricíclicas como agentes de abertura do canal de potássio
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US7502017B1 (en) 2007-11-20 2009-03-10 International Business Machines Corporation Handwriting recognizer user interface methods
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8683582B2 (en) 2008-06-16 2014-03-25 Qualcomm Incorporated Method and system for graphical passcode security
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
TW201019170A (en) * 2008-11-10 2010-05-16 Avermedia Information Inc A method and apparatus to define word position
US9501694B2 (en) 2008-11-24 2016-11-22 Qualcomm Incorporated Pictorial methods for application selection and activation
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8930360B2 (en) * 2010-05-28 2015-01-06 Yahoo! Inc. System and method for online handwriting recognition in web queries
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
CN102081803B (zh) * 2011-01-20 2012-10-10 北京壹人壹本信息科技有限公司 一种手写原笔迹的笔锋实现方法
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8989492B2 (en) * 2011-06-03 2015-03-24 Apple Inc. Multi-resolution spatial feature extraction for automatic handwriting recognition
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US20130093668A1 (en) * 2011-10-12 2013-04-18 Samsung Electronics Co., Ltd. Methods and apparatus for transmitting/receiving calligraphed writing message
US9620122B2 (en) * 2011-12-08 2017-04-11 Lenovo (Singapore) Pte. Ltd Hybrid speech recognition
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US20140085311A1 (en) * 2012-09-24 2014-03-27 Co-Operwrite Limited Method and system for providing animated font for character and command input to a computer
US10254952B2 (en) 2012-09-26 2019-04-09 Google Llc Progress display of handwriting input
EP2954514B1 (en) 2013-02-07 2021-03-31 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101809808B1 (ko) 2013-06-13 2017-12-15 애플 인크. 음성 명령에 의해 개시되는 긴급 전화를 걸기 위한 시스템 및 방법
JP6094400B2 (ja) * 2013-06-25 2017-03-15 ソニー株式会社 情報処理装置、情報処理方法、および情報処理プログラム
KR102207443B1 (ko) 2013-07-26 2021-01-26 삼성전자주식회사 그래픽 유저 인터페이스 제공 방법 및 장치
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
AU2015266863B2 (en) 2014-05-30 2018-03-15 Apple Inc. Multi-command single utterance input method
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10416877B2 (en) * 2015-08-25 2019-09-17 Myscript System and method of guiding handwriting input
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
JP2017215833A (ja) * 2016-06-01 2017-12-07 株式会社リコー 情報処理システム、情報処理方法、情報処理装置およびプログラム
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10607606B2 (en) 2017-06-19 2020-03-31 Lenovo (Singapore) Pte. Ltd. Systems and methods for execution of digital assistant
SG10201707094VA (en) * 2017-08-30 2019-03-28 Mastercard International Inc System and Method for Transmitting Payment Card Information, and Payment Card

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55138172A (en) 1979-04-17 1980-10-28 Fujitsu Ltd Online character feature extractor
JPS57121770A (en) 1981-01-22 1982-07-29 Oki Electric Ind Co Ltd On-line handwriting character recognizing method
JPS59144983A (ja) 1983-02-04 1984-08-20 Canon Inc 文字認識装置
JPH0776980B2 (ja) 1987-02-25 1995-08-16 沖電気工業株式会社 文字認識方法
US4897638A (en) * 1987-02-27 1990-01-30 Hitachi, Ltd. Method for generating character patterns with controlled size and thickness
JPH02110796A (ja) 1988-10-20 1990-04-23 Fujitsu Ltd 手書き文字の認識辞書作成方式
US5325447A (en) * 1991-10-02 1994-06-28 Environmental Research Institute Of Michigan Handwritten digit normalization method
US5329625A (en) * 1992-04-15 1994-07-12 International Business Machines Corp. System to service processor interface for a tablet computer
JPH06295356A (ja) 1993-04-07 1994-10-21 Oki Electric Ind Co Ltd オンライン文字認識装置
JP2939119B2 (ja) 1994-05-16 1999-08-25 シャープ株式会社 手書き文字入力表示装置および方法
IL111039A (en) * 1994-09-22 1998-08-16 Advanced Recognition Tech Handwriting recognition system
JPH08194780A (ja) * 1994-11-18 1996-07-30 Ricoh Co Ltd 特徴抽出方法
JP3445680B2 (ja) 1995-03-10 2003-09-08 シャープ株式会社 手書き認識装置
JPH10143610A (ja) 1996-11-08 1998-05-29 Hitachi Ltd 文字認識装置
US6288725B1 (en) * 1997-02-24 2001-09-11 Zining Fu Representation and restoration method of font information
JP3639126B2 (ja) * 1998-01-22 2005-04-20 富士通株式会社 住所認識装置及び住所認識方法
US6226403B1 (en) * 1998-02-09 2001-05-01 Motorola, Inc. Handwritten character recognition using multi-resolution models
CN1156741C (zh) * 1998-04-16 2004-07-07 国际商业机器公司 手写汉字识别方法及装置
US6694056B1 (en) * 1999-10-15 2004-02-17 Matsushita Electric Industrial Co., Ltd. Character input apparatus/method and computer-readable storage medium
JP4536239B2 (ja) * 1999-10-15 2010-09-01 パナソニック株式会社 文字入力装置及び方法並びにコンピュータ読み取り可能な記録媒体
CN1302010A (zh) 1999-12-29 2001-07-04 陈青 高度压缩的基于笔划的手写文字处理技术
JP2001236466A (ja) 2000-02-22 2001-08-31 Sharp Corp オンライン手書文字認識装置、オンライン手書文字認識方法、およびその方法を実現するプログラムを記憶した記録媒体
JP3974359B2 (ja) * 2000-10-31 2007-09-12 株式会社東芝 オンライン文字認識装置及び方法並びにコンピュータ読み取り可能な記憶媒体及びオンライン文字認識プログラム
US6912308B2 (en) * 2000-12-01 2005-06-28 Targus Communications Corp. Apparatus and method for automatic form recognition and pagination
JP2003162687A (ja) * 2001-11-28 2003-06-06 Toshiba Corp 手書き文字入力装置、手書き文字認識プログラム
US7385595B2 (en) * 2001-11-30 2008-06-10 Anoto Ab Electronic pen and method for recording of handwritten information

Also Published As

Publication number Publication date
US20050152602A1 (en) 2005-07-14
CN1707512A (zh) 2005-12-14
JP2005202959A (ja) 2005-07-28
CN100385454C (zh) 2008-04-30
US7298904B2 (en) 2007-11-20

Similar Documents

Publication Publication Date Title
JP4041496B2 (ja) 手書き文字認識のために手書き文字入力をスケーリングする方法および装置
JP4410690B2 (ja) ストロークの始点および終点の分析によって手書き文字認識を実施する方法および装置
JP3004495B2 (ja) 手書き記号の認識方法
JP3931519B2 (ja) 手書きノート用インデックス発生方法、及びコンピュータリーダブル媒体
US8751972B2 (en) Collaborative gesture-based input language
US8341558B2 (en) Gesture recognition on computing device correlating input to a template
US9304681B2 (en) Recognizing handwriting input using rotatable support lines
JP3131287B2 (ja) パターン認識装置
KR101502659B1 (ko) 제스쳐 인식 방법과, 이러한 방법을 구현하는 터치 시스템
JPH0773190A (ja) ペンベースコンピューターシステム用絵文字ネーミング
JPH07334296A (ja) システム動作方法及びプロセッサ制御システム
US7756337B2 (en) Method and apparatus for reducing reference character dictionary comparisons during handwriting recognition
JP2019508770A (ja) デジタルインクを美しくするためのシステム及び方法
JP2007213416A (ja) 手書き文字列検索装置、手書き文字列検索方法及びプログラム
JP5694236B2 (ja) 文書検索装置、方法およびプログラム
US6970581B2 (en) Information processing apparatus and method, computer-readable memory, and program
EP2009579B1 (en) Analysis alternates in context trees
JP2007220145A (ja) オンライン文字認識装置
JP2002515144A (ja) 手書き入力ストローク分割方法
JP3192468B2 (ja) オンライン手書き文字認識装置及び認識方法
TW201248456A (en) Identifying contacts and contact attributes in touch sensor data using spatial and temporal features
JPH01270185A (ja) 文字認識方法及びその装置
JP3514085B2 (ja) 文字列入力方法及び装置、並びに、文字列入力プログラムを格納した記憶媒体
JP2000132555A (ja) キーワード検索方法及び装置並びにキーワード検索プログラムを記録した記録媒体
JPH09245122A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4041496

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250