(57)【要約】【課題】ユーザが意図する文字認識結果を識別できるように表示することを目的とする。【解決手段】軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成手段と、前記作成手段により作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得手段と、前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出手段と、前記文字データ取得手段により取得された文字データを前記作成手段により作成された候補文字列毎に前記確信度算出手段により算出された確信度に応じて、表示する表示制御手段とを有することを特徴とする。【選択図】図３
2010039769.tif 000002
【特許請求の範囲】
【請求項１】
軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成手段と、
前記作成手段により作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得手段と、
前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出手段と、
前記文字データ取得手段により取得された文字データを前記作成手段により作成された候補文字列毎に前記確信度算出手段により算出された確信度に応じて、表示する表示制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記表示制御手段は、前記文字データ取得手段により取得された文字データを前記作成手段により作成された候補文字列毎に前記確信度算出手段により算出された確信度に応じて、多階層で表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、前記文字データ取得手段により取得された文字データを前記作成手段により作成された候補文字列毎に前記確信度算出手段により算出された確信度に応じて、不透明度を設定して表示することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記表示制御手段は、前記確信度算出手段により算出された確信度のうち、所定の確信度の文字データを表示することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記表示制御手段は、前記文字データ取得手段により取得された文字データと共に前記軌跡データを表示することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記確信度算出手段は、前記分割された軌跡データと辞書データとの類似度から、前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記候補文字列を構成する前記分割された軌跡データの文字認識の確信度が閾値より小さいか否かを判定する判定手段と、
前記判定手段において、確信度が閾値より小さいと判定した場合、対象とする軌跡データを回転させる回転手段とを更に有し、
前記文字データ取得手段は、前記回転手段により回転された軌跡データの文字認識を行うことを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記表示制御手段により表示された複数の候補文字列の文字データのうち、ユーザによって選択された文字データを検出する選択検出手段と、
前記選択検出手段により検出された文字データを組み合わせて複数の文字列を作成する文字列作成手段とを更に有し、
前記表示制御手段は、前記文字列作成手段により作成された複数の文字列を表示することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記文字列作成手段により作成された文字列の文字データを検索キーワードとして、記憶装置に記憶されたデータを検索する検索手段を更に有することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記作成手段は、ユーザによって入力された縦、横又は斜めの手書き軌跡データを、前記分割の仕方に応じて複数の候補文字列を作成することを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成ステップと、
前記作成ステップにより作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得ステップと、
前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出ステップと、
前記文字データ取得ステップにより取得された文字データを前記作成ステップにより作成された候補文字列毎に前記確信度算出ステップにより算出された確信度に応じて、表示する表示制御ステップと
を有することを特徴とする情報処理方法。
【請求項１２】
軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成ステップと、
前記作成ステップにより作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得ステップと、
前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出ステップと、
前記文字データ取得ステップにより取得された文字データを前記作成ステップにより作成された候補文字列毎に前記確信度算出ステップにより算出された確信度に応じて、表示する表示制御ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、軌跡データを処理する情報処理装置、情報処理方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来から、画像データから文字を認識する文字認識装置が知られている。文字認識装置は、通常、画像データから１つ１つの文字を分割する文字切りを行い、分割した文字を認識する処理を行う。また、例えば特許文献１に開示された文字認識装置によれば、画像データに対して文字認識を行い、文字認識結果の確からしさを示す確信度に応じて、文字認識を行った文字候補の表示の強調度合を決定し、強調度合に基づいて文字候補を濃淡等にして表示する。したがって、ユーザは強調表示の度合に応じた注目度で認識結果に対して誤認検出を行うことができる。
【０００３】
【特許文献１】特開平６−１３１４９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した文字認識装置は、ユーザが誤認検出を行うことを前提としたものである。すなわち、この文字認識装置は、文字認識を行った結果、複数の文字候補がある場合であっても、文字候補を１つに決定してしまう。したがって、文字認識や文字切り位置がユーザの意図するものと異なる場合、ユーザは文字や文字切りを訂正しなければならない。特に、手書き文字を処理する場合は、誤認識が多くなりユーザの訂正する作業が増大してしまう。
本発明は、上述したような問題点に鑑みてなされたものであり、ユーザが意図する文字認識結果を識別できるように表示することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成手段と、前記作成手段により作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得手段と、前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出手段と、前記文字データ取得手段により取得された文字データを前記作成手段により作成された候補文字列毎に前記確信度算出手段により算出された確信度に応じて、表示する表示制御手段とを有することを特徴とする。
本発明の情報処理方法は、軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成ステップと、前記作成ステップにより作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得ステップと、前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出ステップと、前記文字データ取得ステップにより取得された文字データを前記作成ステップにより作成された候補文字列毎に前記確信度算出ステップにより算出された確信度に応じて、表示する表示制御ステップとを有することを特徴とする。
本発明のプログラムは、軌跡データを分割し、前記分割の仕方に応じて複数の候補文字列を作成する作成ステップと、前記作成ステップにより作成された複数の候補文字列毎に、候補文字列を構成する前記分割された軌跡データ毎の文字認識を行い、文字データを取得する文字データ取得ステップと、前記候補文字列を構成する前記分割された軌跡データ毎の文字認識の確信度を算出する確信度算出ステップと、前記文字データ取得ステップにより取得された文字データを前記作成ステップにより作成された候補文字列毎に前記確信度算出ステップにより算出された確信度に応じて、表示する表示制御ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００６】
本発明によれば、ユーザが意図する文字認識結果をユーザがすぐに識別できるように表示することができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、本発明の実施形態について説明する。
（第１の実施形態）
図１は本実施形態に係る情報処理システムの構成の一例を示す図である。
情報処理システム１００は、デジタルテレビ１と、メディアサーバ３と、情報機器４とを含んで構成される。デジタルテレビ１とメディアサーバ３とは、ローカルエリアネットワーク２等により接続されている。また、メディアサーバ３と情報機器４とは、ローカルエリアネットワーク２等により接続されている。なお、情報処理システム１００では、デジタルテレビ１、メディアサーバ３又は情報機器４にハードディスクレコーダ等の記録蓄積装置等と接続して静止画や動画等のコンテンツデータを送受信できるように構成してもよい。また、情報処理システム１００では、デジタルテレビ１、メディアサーバ３又は情報機器４に他のコンピュータ等と接続して後述する軌跡データ、文字データ及び画像データ等を送受信できるように構成してもよい。
【０００８】
デジタルテレビ１には、座標入力部、液晶表示部、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤ、記録メディアを差し込むスロット、他のネットワーク接続機能をもったパーソナルコンピュータと接続するネットワークインターフェイス部等を含んで構成される。デジタルテレビ１のＲＯＭやＨＤ等には、他のネットワーク上にある静止画や動画等のコンテンツデータを表示再生するソフトウェアが記憶されている。なお、図１に示すデジタルテレビ１の液晶表示部に表示されているのは、ユーザによって入力された手書き軌跡データである。
【０００９】
メディアサーバ３は静止画や動画等のコンテンツデータが記録されている。メディアサーバ３はデジタルテレビ１又は情報機器４から送信されるデータの送信要求に応じて、静止画や動画等のコンテンツデータを送信する。
【００１０】
情報機器４は入力された手書き軌跡データを処理することができる手書き文字処理装置である。情報機器４は液晶表示部と、液晶表示部上に設けられている透明抵抗膜デジタイザと、ＣＰＵと、メモリと、無線ＬＡＮチップとを含んで構成される。ユーザは抵抗膜デジタイザ用のペン５を用いて、液晶表示部上に自由に手書き軌跡を入力することができる。以下では、情報機器４を用いて、情報機器４の液晶表示部上に入力された軌跡データを処理する場合ついて説明するが、デジタルテレビ１を用いてデジタルテレビ１の液晶表示部上に入力された軌跡データを処理してもよい。このとき、デジタルテレビ１の液晶表示部上にデジタイザを設けることで、ユーザは黒板のように軌跡を入力することで液晶表示部に入力した軌跡データが表示される。
【００１１】
図２は情報機器の構成の一例を示すブロック図である。
情報機器４は情報処理装置の一例であり、位置座標入力部６と、表示部７と、ＣＰＵ８と、ＲＡＭ９と、ＲＯＭ１０と、フラッシュメモリ１１と、無線ＬＡＮ１３とを含んで構成される。また、情報機器４の各構成要素はシステムバス１２によって接続されている。
位置座標入力部６は表示部７上に設けられ、一般的な透明抵抗膜デジタイザで構成されている。ユーザがペン５を用いて表示部７の表面上を押下すると、位置座標入力部６は押下された位置のＸＹ座標データをＣＰＵ８に送信する。なお、ＣＰＵ８は送信された位置座標データをＲＡＭ９の特定領域に記憶する。
【００１２】
表示部７は液晶表示素子と、液晶制御回路と、表示メモリとを含んで構成されている。表示部７では、ＣＰＵ８の指示により軌跡データや文字データ等を表示する。
ＣＰＵ８は情報機器４の構成要素を制御する。また、ＣＰＵ８はＲＯＭ１０等に記憶されているプログラムを実行することにより、後述する処理を実現する。
【００１３】
ＲＡＭ９はＣＰＵ８のワーク領域である。ＣＰＵ８は処理中のデータを一時的にＲＡＭ９に記憶する。
ＲＯＭ１０はＣＰＵ８に後述する処理を実行させるためのプログラムが記憶されている。記憶されているプログラムには、例えば手書き文字認識処理のプログラム等が含まれている。
【００１４】
フラッシュメモリ１１はローカルな手書き軌跡データ、テキストデータ及び設定情報等が記憶されている。また、フラッシュメモリ１１には、後述する手書き文字認識辞書や後処理辞書等が記憶されている。なお、手書き文字認識辞書や後処理辞書等はＲＯＭ１０に記憶されていてもよい。
無線ＬＡＮ１３は他のパーソナルコンピュータと通信を行う。
【００１５】
図３は、情報機器の機能構成の一例を示す図である。図３に示す機能構成は、ＣＰＵ８がＲＯＭ１０に記憶されたプログラムを実行することにより実現される。なお、図３には、各機能構成の処理が容易に理解できるように情報機器４の構成要素である位置座標入力部６と表示部７とが示されている。ここで、位置座標入力部６と表示部７とは、上述した図２と同一であり、その説明は省略する。
【００１６】
情報機器４は文字切り候補作成部１４と、認識部１５と、表示制御部１７と含んで構成される。また、図３にはフラッシュメモリ１１に記憶されている手書き文字認識辞書１６が示されている。手書き文字認識辞書１６は入力された手書き文字の軌跡データと比較するための登録データとして特徴情報及び文字コード等が、筆数順、文字コード順に記録されている辞書である。
【００１７】
文字切り候補作成部１４は手書き文字の文字列を分割して文字切りの位置が異なる候補文字列を複数、作成する処理を行う。より具体的に説明すると、文字切り候補作成部１４は位置座標入力部６から送信される１文字列の軌跡データのＸＹ座標データ群から１文字毎に軌跡データを分割する処理を行う。これは文字列によっては、複数の分割の仕方が求められる場合も存在するためである。文字切り候補作成部１４は文字切り処理を行った複数の候補文字列を認識部１５に送信する。
【００１８】
認識部１５は分割された１文字単位で手書き文字を文字認識する処理を行う。より具体的に説明すると、認識部１５は１文字分の軌跡データ毎に正規化し、軌跡データの特徴情報を抽出し、手書き文字認識辞書１６の特徴情報とのマッチング処理を行い、一番近い文字コードを認識結果として出力する。認識部１５は出力された認識結果の文字コード、その文字の位置情報及びマッチング結果の確信度を表示制御部１７に送信する。
表示制御部１７は複数の候補文字列を多階層に出力する処理を行う。より具体的に説明すると、表示制御部１７は送信された候補文字列の確信度に応じて文字フォントの不透明度等を設定し、確信度が高い文字フォントは１００％の不透明度で表示し、確信度が低い文字フォントは３０％等の低い不透明度で表示する。なお、表示制御部１７は、第一候補である候補文字列の確信度が低い場合には入力された軌跡データを表示部７に表示する処理を行う。
【００１９】
次に、ユーザが位置座標入力部６に入力した手書き文字の一例について図４を参照して説明する。図４はＣＰＵ８の指示により、入力された手書き文字の軌跡データを表示画面１８に表示した状態の一例を示す図である。表示画面１８には、文字列１９〜２２が表示されている。文字列１９は「特許アイデア会議」である。文字列２０は「１２月１１日」である。文字列２１は「アイデア１：」である。文字列２２は「自動◎△コンバート」である。
【００２０】
次に、手書き文字の文字列の軌跡データを分割する文字切り処理について図５に示すフローチャートを参照して説明する。図５に示すフローチャートは、図３に示す文字切り候補作成部１４が行う動作処理である。なお、図５に示すフローチャートの文字切りのアルゴリズムは一例であって、従来から行われている他のアルゴリズムを用いてもよい。
【００２１】
図５に示すフローチャートは、ユーザがペン５を用いて手書きの文字列の軌跡を情報機器４の画面上に入力することにより開始される。より具体的に説明すると、文字切り候補作成部１４が１画面分の軌跡データ及び入力時間等をＲＡＭ９等の記憶部の特定領域に記憶した状態で以下のステップが開始される。なお、特定領域に記憶される軌跡データは、ペン５が押下されてから移動した連続するＸＹ座標データのことである。まず、ステップＳ９０１では、文字切り候補作成部１４は記憶部のワーク領域等の初期化を行う。
【００２２】
ステップＳ９０２において、文字切り候補作成部１４は未処理の全入力軌跡データをＲＡＭ９のワーク領域に読み出す処理を行う。読み出す軌跡データは上述したように、ＸＹ座標データであり、例えば１秒間に１００点のサンプリングレートでペンが押下されて移動した軌跡がＸＹ座標でデータとして記憶されている。なお、１筆のＸＹ座標データには入力開始時間及び終了時間等が記録されている。
【００２３】
ステップＳ９０３において、文字切り候補作成部１４は全軌跡データの外接枠を求める処理を行う。文字切り候補作成部１４はステップＳ９０２で読み出した全ＸＹ座標データのうち、最大のＸ座標値及びＹ座標値と、最小のＸ座標値及びＹ座標値とを取得することにより、外接枠の位置座標を算出することができる。
【００２４】
ステップＳ９０４において、文字切り候補作成部１４は外接枠から仮想文字枠を求める処理を行う。ここで、入力された軌跡が横書き又は縦書きの１行の文字列であるとする。文字切り候補作成部１４は外接枠の縦の長さと横の長さとを比較し、縦の長さが長ければ縦書きであると判断し、逆に横の長さが長ければ横書きであると判断する。文字切り候補作成部１４は縦書きであると判断した場合は、外接枠の横幅を基準にして１文字分の仮想文字枠を決定する。また、文字切り候補作成部１４は横書きであると判断した場合は、外接枠の高さを基準に仮想文字枠を決定する。
【００２５】
ステップＳ９０５において、文字切り候補作成部１４は軌跡データを仮想文字枠で１文字分切り分ける処理を行う。
ここで、図４に示す文字列１９「特許アイデア会議」の手書き軌跡データを参照して、より具体的に説明する。ステップＳ９０４において、文字切り候補作成部１４は文字列１９の外接枠の縦の長さと横の長さとを比較することで、横書きであると判断する。ユーザが文字列１９を普通に入力する場合、「特」を入力した後に、「許」を入力する。この場合、軌跡データも入力順に記憶されている。したがって、文字切り候補作成部１４は文字列１９の左端に仮想文字枠を設定する。続いて、文字切り候補作成部１４は順次、記憶している１筆分の軌跡データが仮想文字枠内に入っているか否かを判定する。仮想文字枠内に入っている場合、文字切り候補作成部１４は判定した１筆分の軌跡データを順次、記憶する。次の１筆分の軌跡データが仮想文字枠外であるときに、文字切り候補作成部１４はいままで記憶した軌跡データを１文字分の軌跡データとして確定する。
【００２６】
ステップＳ９０６において、文字切り候補作成部１４は文字切り処理した軌跡データで認識処理を行う。より具体的に説明すると文字切り候補作成部１４はステップＳ９０５で文字切り処理した１文字分の軌跡データを正規化し、特徴点を抽出する。次に、文字切り候補作成部１４は同様なアルゴリズムで処理された手書き文字認識辞書の辞書データとマッチング処理を行い、一番近い辞書データの文字コード（文字データ）を認識結果として出力する。また、文字切り候補作成部１４は出力した文字コードと軌跡データとの類似度を評価値として出力する。なお、ステップＳ９０６における文字認識アルゴリズムは、従来の文字認識アルゴリズムであってもよい。
【００２７】
ステップＳ９０７において、文字切り候補作成部１４は認識結果の文字コードが存在し、かつ評価値から算出される確信度が閾値以上であるか否かを判定する。認識結果の文字コードが存在し、かつ確信度が閾値以上であれば、文字切り候補作成部１４はステップＳ９０９に処理を進める。一方、認識結果の文字コードが存在しない場合や、確信度が閾値以上でない場合、文字切り候補作成部１４はステップＳ９０８に処理を進める。
ここで、辞書データと同じ形状の軌跡データであれば確信度が高い。一方、文字切り処理したときの仮想文字枠が適切な大きさではない場合は文字切り処理された軌跡データは１文字分より少なかったり多かったりする。したがって、辞書データとのマッチング処理において、認識結果の文字コードが存在しなかったり、確信度が低かったりする。
【００２８】
ステップＳ９０８において、文字切り候補作成部１４は仮想文字枠の探索アルゴリズムを変更する処理を行う。ここでは、文字切り候補作成部１４は例えば仮想文字枠の大きさを小さくする処理を行い、ステップＳ９０５に処理を戻す。ステップＳ９０５では、文字切り候補作成部１４は再度最初から文字切り処理を行う。例えば、最初に仮想文字枠を全角に設定していた場合、文字切り候補作成部１４は次に仮想文字枠を半角に設定する。このとき、文字切り候補作成部１４は誤差を考慮し、誤差の範囲で数種類のパターンを試すようにしてもよい。
【００２９】
ステップＳ９０９において、文字切り候補作成部１４はステップＳ９０５において設定した仮想文字枠で残りの全軌跡データの文字切り処理を行う。例えば図４に示す文字列１９「特許アイデア会議」の軌跡データの場合、ステップＳ９０５で、「特」が文字切り処理されているので、文字切り候補作成部１４は「許」を文字切り処理し、次に「ア」を文字切り処理し、最後に「議」を文字切り処理する。
【００３０】
ステップＳ９１０において、文字切り候補作成部１４は全文字切りデータを記憶する処理を行う。文字切り候補作成部１４はステップＳ９０９により例えば文字列１９「特許アイデア会議」の軌跡データを８文字分に文字切り処理をした場合、８文字分の軌跡データを記憶部の特定領域に記憶する。この時点で、文字切り候補作成部１４は文字切り処理を行った１つの候補文字列を作成したことになる。この処理は作成手段の一例に対応する。
【００３１】
ステップＳ９１１において、文字切り候補作成部１４は文字切り処理を行った候補文字列の数をカウントする。ここで、候補文字列の数をカウントすることにより所定の数のパターンで文字切り処理を行った候補文字列を作成することができる。理想的には１種類の文字切りパターンでよいが、あいまいな入力であった場合、複数のパターンで文字切り処理を行ったほうが誤認識を防止することができる。文字切り候補作成部１４は最初に文字切り処理を行い、候補文字列を作成した場合、カウントされる候補文字列の数は１である。
【００３２】
ステップＳ９１２において、文字切り候補作成部１４は候補文字列の数が所定数以下であるか否かを判定する。所定数以下の場合、文字切り候補作成部１４はステップＳ９１３に処理を進める。また、所定数より多い場合、文字切り候補作成部１４はステップＳ９１４に処理を進める。ここでは、所定数を３とし、文字切り候補作成部１４は候補文字列の数が３以下であるか否かを判定する。
【００３３】
ステップＳ９１３において、文字切り候補作成部１４は仮想文字枠の探索アルゴリズムのパラメータを変更する処理を行う。ここでは、文字切り候補作成部１４は例えばステップＳ９０４において最初に設定した仮想文字枠の高さに０．９を乗じ、幅に０．４を乗じるようにパラメータを変更する。次に、この処理を行うときは、文字切り候補作成部１４は例えば最初に設定した仮想文字枠の高さに１．１を乗じ、幅に０．６を乗じるようにパラメータを変更する。
【００３４】
ステップＳ９１４において、文字切り候補作成部１４は手書き文字の文字列の文字切り処理を終了する。ステップＳ９１４の処理までに、文字切り候補作成部１４は３種類のパターンで区切られた文字切り結果を記憶部に記憶している。なお、本実施形態では、文字切り候補を３種類作成する場合について説明したがこの場合に限られず、例えば２種類であっても、４種類以上であってもよい。
【００３５】
次に、手書き文字の文字認識処理について図６に示すフローチャートを参照して説明する。図６に示すフローチャートは、図３に示す認識部１５が行う動作処理である。認識部１５は図５に示すフローチャートにおいて文字切り処理された候補文字列について、文字認識処理を行う。
まず、ステップＳ１００１では、認識部１５は記憶部のワーク領域等を確保し、初期化を行う。
【００３６】
ステップＳ１００２において、認識部１５は文字切り処理を行った候補文字列のうち１文字列分の軌跡データをワーク領域に記憶する。
ステップＳ１００３において、認識部１５はワーク領域に記憶した候補文字列から、１文字分の軌跡データを読み出す。認識部１５は最初、第一候補文字列の１文字目の軌跡データを読み出す処理を行う。認識部１５は順次、後述するステップＳ１００７から処理が戻されることで、最後の候補文字列の最後の文字の軌跡データまで読み出す処理をする。
【００３７】
ステップＳ１００４において、認識部１５は読み出した１文字分の軌跡データを正規化し、その正規化した軌跡データから特徴点を抽出する処理を行う。軌跡データが８筆以上の文字から構成されている場合、認識部１５は始点、終点及び中点を特徴点とする。なお、特徴点の抽出は従来から行われている他の認識アルゴリズムによるものであってもよい。
【００３８】
ステップＳ１００５において、認識部１５は抽出した軌跡データの特徴点と辞書データとのマッチング処理を行う。例えば、軌跡データの始点及び終点を特徴点（特徴データ）とする場合、認識部１５は読み出した軌跡データの筆数と同じ筆数の辞書データとでマッチング処理を行う。認識部１５は軌跡データの１筆目の軌跡始点から終点までの距離と、辞書データにおける軌跡データの始点から終点までの距離との差を順次カウントし、一番距離差がない辞書データの文字コード（文字データ）を認識結果として出力する。この処理は文字データ取得手段の一例に対応する。
【００３９】
また、認識部１５は上述した距離差に応じて評価値を算出し、算出した評価値から確信度を算出する。この処理は確信度算出手段の一例に対応する。確信度は最小０から最大１００までに区分けされていて、例えば確信度が１００の場合、認識結果は１００の確率で正解である。例えば、辞書データと同じ形状の軌跡データであれば上述した距離差は０になり、認識部１５は確信度を１００として算出する。認識部１５は確信度を試験用データ等で統計的に処理し、距離差に応じた認識率を出して、その変換関数を作成して、確信度を算出する。
【００４０】
ステップＳ１００６において、認識部１５は認識結果の文字コード、確信度及び位置情報を記憶する処理を行う。このとき、認識部１５は文字認識した軌跡データの候補文字列の番号及び何文字目かを記憶部に記憶する。なお、認識部１５は文字コードとして一般的なＪＩＳコード等を記憶する。また、認識部１５は確信度として０から１００までの値を記憶する。また、認識部１５は位置情報として候補文字列の外接枠のＸＹ座標データを基に、最小のＸＹ座標データと外接矩形の高さと幅とを記憶する。
【００４１】
ここで、記憶されるデータ構造について図７を参照して説明する。図７に示すデータ構造７０は認識部１５が図４の文字列１９「特許アイデア会議」を「特許アイヂア全議」と文字認識した場合のデータ構造である。図７に示すように、１文字の軌跡データについてそれぞれ最小のＸ座標データ７１、最小のＹ座標データ７２、高さ７３、幅７４、文字コード７５及び確信度７６が記憶される。
【００４２】
次に、ステップＳ１００７において、認識部１５は文字認識を行っている候補文字列において未処理の軌跡データがあるか否かを判定する。全ての軌跡データについて処理されていれば、認識部１５はステップＳ１００８に処理を進める。未処理の軌跡データがある場合、認識部１５はステップＳ１００３に処理を戻す。ステップＳ１００３では、認識部１５は次の一文字分の軌跡データを読み出して、マッチング処理を行う。
【００４３】
ステップＳ１００８において、認識部１５はステップＳ１００６において文字認識を行った認識結果の文字コードに対して後処理辞書（遷移確率辞書）に基づいてマッチング修正作業を行う。例えば、ある軌跡データの認識結果の第一候補が「ニ個」（カタカナの「ニ」）であり、第二候補が「二個」（漢字の「二」）であったとする。認識部１５は軌跡データの形状から「ニ」と「二」とを判別することは困難であり、文字列の遷移確率辞書に基づいて認識結果を修正する。すなわち、後に「個」が続く場合、認識部１５は軌跡データの認識結果をカタカナの「ニ」から漢字の「二」の文字コードに修正して、第一候補を「二個」として、第二候補を「ニ個」する処理を行う。なお、修正する認識結果は、カタカナの「ニ」、漢字の「二」に限られず、例えばひらがなの「り」とカタカナの「リ」とを修正する場合等も含まれる。又は数字の「３」と平仮名の「ろ」もユーザによっては似た形状を書く場合もあるのでその場合は後処理で判別される。
【００４４】
ステップＳ１００９において、認識部１５は全ての候補文字列について文字認識処理を行ったか否かを判定する。全ての候補文字列を処理した場合、認識部１５はステップＳ１０１０に処理を進める。未処理の候補文字列がある場合、認識部１５はステップＳ１００２に処理を戻し、次の候補文字列の軌跡データを読み出す。
【００４５】
ステップＳ１０１０において、認識部１５は文字認識の処理を終了する。ステップＳ１０１０まで処理が行われることにより、認識部１５は３種類の候補文字列に対する認識結果を出力している。例えば、図４に示す文字列１９「特許アイデア会議」について文字認識した結果、第１候補文字列は図８に示す「特許アイヂア全議」２４である。また、第２候補文字列は、図９に示す「牛寺言牛アイデア会議」２５である。また、第３候補文字列は、図１０に示す「特許化デア会議」２６である。また、認識部１５は図７に示すデータ構造７０を３種類の候補文字列毎に記憶部に記憶して管理する。
【００４６】
次に、候補文字列を表示する処理について図１１に示すフローチャートを参照して説明する。図１１に示すフローチャートは、図３に示す表示制御部１７が行う動作処理である。
まず、ステップＳ１１０１において、表示制御部１７は候補文字列の表示処理を行うために、記憶部のワーク領域を確保、初期化を行う。また、表示制御部１７は表示した軌跡データを消去して画面をクリアし、認識結果を表示する準備を行う。
【００４７】
ステップＳ１１０２において、表示制御部１７は記憶された各候補文字列のデータを読み出す。すなわち、表示制御部１７は図６に示すフローチャートのステップＳ１００６において記憶された候補文字列を順次、ワーク領域に読み出す処理を行う。
ステップＳ１１０３において、表示制御部１７は図７に示すデータ構造７０に記憶されている確信度７６に基づいて候補文字列全体の不透明度を設定する。例えば、各文字データの確信度が９０から１００であれば、不透明度を１００に設定する。不透明度が１００に設定された候補文字列を表示する場合、表示制御部１７は通常の濃さで候補文字列の文字データを表示する。また、不透明度１０に設定された候補文字列の文字データを表示する場合、表示制御部１７は非常に薄く表示する。表示制御部１７は候補文字列全体の不透明度を各文字データの確信度の平均を取り、その値で不透明度を設定してもよく、所定の文字コード（例えば１文字目）の確信度から不透明度を設定してもよい。また、表示制御部１７はユーザが設定した所定の確信度（例えば確信度９０以上）のみに不透明度を設定してもよい。
【００４８】
ステップＳ１１０４において、表示制御部１７は候補文字列の各文字コード（文字データ）を設定した不透明度で１文字ずつ表示部７に表示する。このとき、表示制御部１７は各候補文字列をそれぞれ設定した不透明度で多階層に（重ねて）表示する。なお、表示制御部１７は、文字コードを表示部７に表示するとき、文字コードをベクタグラフィックデータとして表示する。このとき、表示制御部１７はユーザによって入力された文字列の軌跡データをそのまま表示してもよい。入力された文字列の軌跡データをそのまま表示する場合、表示制御部１７は軌跡データに対して不透明度を２０等として第一候補文字列の不透明度より低く設定して表示する。
【００４９】
ここで、図１２を参照して、表示制御部１７が表示部７に表示した候補文字列の表示例について説明する。図１２は、表示制御部１７が例えば、第一候補文字列「特許アイヂア全議」を不透明度１００で表示し、入力された軌跡データを不透明度３０で表示している画面２８の一例である。なお、図１２では不透明度が低い軌跡データを鎖線で示している。
【００５０】
次に、表示制御部１７において表示される各候補文字列の表示データ形式について以下に示す。例えば、第一候補文字列の「特許アイヂア全議」は、
＜text x="20" y="05" height="20" width="20" opacity="100" >特</text>
＜text x="41" y="06" height="20" width="20" opacity ="100" >許</text>
＜text x="61" y="06" height="20" width="20" opacity ="100" >ア</text>
＜text x="80" y="06" height="20" width="20" opacity ="100" >イ</text>
＜text x="99" y="05" height="20" width="20" opacity ="100" >ヂ</text>
＜text x="120" y="07" height="20" width="20" opacity ="100" >ア</text>
＜text x="141" y="06" height="20" width="20" opacity ="100" >全</text>
＜text x="162" y="06" height="20" width="20" opacity ="100" >議</text>
のようになる。
【００５１】
また、第二候補文字列の「牛寺言牛アイデア会議」は、
＜text x="20" y="05" height="20" width="10" opacity ="50" >牛</text>
＜text x="30" y="05" height="20" width="10" opacity ="40" >寺</text>
＜text x="41" y="06" height="20" width="10" opacity ="100" >言</text>
＜text x="50" y="05" height="20" width="10" opacity ="100" >牛</text>
＜text x="61" y="06" height="20" width="20" opacity ="100" >ア</text>
＜text x="80" y="06" height="20" width="20" opacity ="100" >イ</text>
＜text x="99" y="05" height="20" width="20" opacity ="100" >デ</text>
＜text x="120" y="07" height="20" width="20" opacity ="100" >ア</text>
＜text x="141" y="06" height="20" width="20" opacity ="100" >会</text>
＜text x="162" y="06" height="20" width="20" opacity ="100" >議</text>
のようになる。
【００５２】
また、入力された軌跡データを表示する場合は、
＜pen x="20" y="05" height="20" width="20" opacity ="30" >
<stroke no.="1" x="x1" y="y1"  x="x2" y="y2"  x="x3" y="y3"  x="x4" y="y4"  x="x5" y="y5"  x="x6" y="y6"  x="x7" y="y7" </stroke>
<Stroke no.="2" x="x1" y="y1"  x="x2" y="y2"  x="x3" y="y3"  x="x4" y="y4"  x="x5" y="y5"  x="x6" y="y6"  x="x7" y="y7" </stroke>
<Stroke no.="3" x="x1" y="y1"  x="x2" y="y2"  x="x3" y="y3"  x="x4" y="y4"  x="x5" y="y5"  x="x6" y="y6"  x="x7" y="y7" </stroke>
・・・・・・
</pen>
のようになる。
【００５３】
ステップＳ１１０５において、表示制御部１７は未処理の候補文字列があるか否かを判定する。全候補文字列について処理が終了していれば表示制御部１７はステップＳ１１０６に処理を進める。未処理の候補文字列がある場合、表示制御部１７はステップＳ１１０２に処理を進める。
ステップＳ１１０６において、表示制御部１７は候補文字列の表示処理を終了する。
【００５４】
なお、上述した説明では、文字切り候補作成部１４が作成した候補文字列を全て表示する場合について説明したが、この場合に限られず、ユーザ操作によって設定された候補文字列の文字データのみを表示してもよい。例えば、表示制御部１７は第一候補文字列から第三候補文字列のうち少なくとも１つ以上設定された候補文字列を表示してもよい。このとき、表示制御部１７は入力された軌跡データも表示することにより認識結果の確信度が低い場合、ユーザは実際に入力された軌跡データと候補文字列とを同時に確認することができる。
このように、表示制御部１７は確信度に応じて、候補文字列全体が異なる濃淡の多階層で表示するために、ユーザは意図する認識結果の文字データをすぐに識別することができる。
【００５５】
また、上述した説明では、表示制御部１７は文字の不透明度を変えて多階層で表示する表示方法のみについて説明したが、この場合に限られない。例えば、表示制御部１７は文字の色を変更する表示方法にしてもよく、３次元表示を行う系であればＺ軸の高さを変更して多階層で表示するようにしてもよい。
また、手書き入力された文字についてのみ説明したが、この場合に限られず、例えばスキャナで読み込んだ画像データを認識するようにしてもよい。また、本実施形態でいう文字とは、○、◎、△等の記号を含むものとする。
【００５６】
このように本実施形態によれば、表示制御部１７は作成された複数の候補文字列を確信度に応じた表示方法により表示するために、ユーザは表示された複数の候補文字列から意図する文字認識結果をすぐに識別することができる。
また、文字切り候補作成部１４は軌跡データを分割して複数の候補文字列を作成する。したがって、例えば手書き文字のようにユーザ毎に異なる大きさの文字が入力された場合であっても、ユーザが意図する文字列の軌跡データに分割することができる。
【００５７】
（第２の実施形態）
第１の実施形態では、手書き文字の軌跡データを文字認識して文字データとして表示する場合について説明した。第２の実施形態は、認識結果を入力情報として利用する場合の実施形態である。より具体的に説明すると、第２の実施形態に係る情報機器は文字認識を行った認識結果としての文字データを検索キーワードとして検索を行うことができるものである。第２の実施形態に係る情報機器４の構成を示すブロック図は第１の実施形態と同一であるため、その説明は省略する。
第２の実施形態に係る情報機器の機能構成は第１の実施形態の構成に加え、後述するようにユーザによる選択を検出する選択検出部２９と、選択された文字データから検索文字列を作成する文字列作成部３０とを有している。なお、本実施形態では表示された文字データのことを多階層データというものとする。
【００５８】
図１３は、第２の実施形態に係る情報機器の機能構成の一例を示す図である。なお、第１の実施形態と同一構成については同一符号を付してその説明を省略する。
情報機器４は選択検出部２９と、文字列作成部３０とを含んで構成される。
選択検出部２９は例えばユーザによりペン５を介して位置座標入力部６に入力された範囲を検出する。選択検出部２９は多階層で表示された候補文字列の多階層データのうちユーザによって選択された範囲の多階層データを検出する。
文字列作成部３０は選択された範囲の多階層データから新たな文字列を作成する。文字列作成部３０は表示された領域が異なる多階層データから正しい組み合わせの文字列を作成する。
【００５９】
次に、表示された候補文字列の選択検出処理について図１４に示すフローチャートを参照して説明する。図１４に示すフローチャートは、図１３に示す選択検出部２９が行う動作処理であり、図１２に示すように、候補文字列の多階層データが表示された後、ユーザが多階層データの範囲を選択できる指示モードに変更することにより開始される。なお、ユーザによるペンジェスチャー等と組み合わせて開始されるように構成されていてもよい。
【００６０】
まず、ステップＳ１４０１において、選択検出部２９は記憶部のワーク領域等を確保し、初期化を行う。
ステップＳ１４０２において、ユーザはペン５を介して位置座標入力部６に表示された候補文字列の多階層データの範囲を選択する操作を行う。このとき、ユーザは例えばペン５により第一の地点と第二の地点とを選択することにより、第一の地点と第二の地点とを対角で繋ぐ矩形の範囲を選択することができる。選択検出部２９はユーザによって選択された矩形領域の範囲を検出する。また、選択検出部２９は検出した矩形領域を入力座標点として記憶する。すなわち、選択検出部２９は矩形領域のうち、最小のＸＹ座標データ（Ｘ１、Ｙ１）と最大のＸＹ座標データ（Ｘ２、Ｙ２）とを記憶する。
【００６１】
ステップＳ１４０３において、選択検出部２９は画面上に表示された候補文字列の多階層データの全てをワーク領域に読み出す。例えば、図１２に示す候補文字列が画面２８に表示されている場合、選択検出部２９は選択されている範囲に関わらず表示されている全ての候補文字列の多階層データが読み出す。
【００６２】
ステップＳ１４０４において、１文字分の多階層データのＸ座標データ、Ｙ座標データ、高さ及び幅を読み出す。
例えば、１文字の多階層データが第１の実施形態で説明したように、
＜text x="20" y="05" height="20" width="20" opacity ="100" >特</text>
であるとする。この場合、１文字分の多階層データのＸ座標データ、Ｙ座標データ、高さ及び幅はそれぞれｘ、ｙ、ｈｅｉｇｈｔ及びｗｉｄｔｈの値に対応する。
【００６３】
ステップＳ１４０５において、選択検出部２９は多階層データがステップＳ１４０２において、検出した選択範囲内であるか否かを判定する。すなわち、選択検出部２９は最小のＸＹ座標データ（Ｘ１、Ｙ１）と最大のＸＹ座標データ（Ｘ２、Ｙ２）とから特定される範囲内に、１文字分の多階層データのＸ座標データ、Ｙ座標データ、高さ及び幅から１文字分の多階層データがあるか否かを判定する。多階層データが選択範囲内であれば、選択検出部２９はステップＳ１４０６に処理を進める。多階層データが選択範囲外であれば、選択検出部２９はステップＳ１４０４に処理を戻し、次の多階層データについて選択範囲内か否かを判定する。
【００６４】
ステップＳ１４０６において、選択検出部２９は１文字分の多階層データの確信度が閾値以上か否かを判定する。確信度が閾値より低い場合、認識結果として信頼できないため、選択検出部２９は対象の多階層データを以降のステップでは適用せず、無視する。確信度が閾値以上であれば選択検出部２９はステップＳ１４０７に処理を進める。確信度が閾値以上でなければ選択検出部２９はステップＳ１４０４に処理を戻し、次の１文字分の多階層データを読み出す。
【００６５】
ステップＳ１４０７において、選択検出部２９は確信度が閾値以上であった１文字分の多階層データを記憶する処理を行う。上述したような処理を行うことにより、選択検出部２９は多階層データのうち選択範囲内に存在し確信度が閾値以上である１文字分の多階層データを記憶する。
ステップＳ１４０８において、選択検出部２９は全ての多階層データについて処理を行ったか否かを判定する。選択検出部２９は表示されている全ての多階層データについて記憶順に処理することにより、最終の多階層データは容易に判断することができる。全ての多階層データを処理している場合、選択検出部２９はステップＳ１４０９に処理を進める。未処理の多階層データがある場合、選択検出部２９はステップＳ１４０４に処理を戻し、次の１文字分の多階層データを処理する。
【００６６】
ステップＳ１４０９において、選択検出部２９は候補文字列の選択検出処理を終了する。なお、選択検出部２９はステップＳ１４０７において記憶した１文字分の多階層データを出力結果として、文字列作成部３０に受け渡す。
【００６７】
次に、記憶された多階層データから文字列を作成する処理について図１５のフローチャートを参照して説明する。図１５に示すフローチャートは、図１３に示す文字列作成部３０が行う動作処理であり、図１４に示すフローチャートが終了したときに、開始される。なお、以下では、多階層データのうち図１４に示すフローチャートのステップＳ１４０７において、記憶した多階層データを選択データという。
まず、ステップＳ１５０１において、文字列作成部３０は記憶部のワーク領域等を確保し、初期化を行う。
【００６８】
ステップＳ１５０２において、文字列作成部３０は全選択データを記憶部に読み出す。一文字分の選択データは、例えば、
＜text x="20" y="05" height="20" width="20" opacity ="100" >特</text>
である。選択データが集合することで、一つの候補文字列を構成し、その候補文字列が複数存在している。
【００６９】
ステップＳ１５０３において、文字列作成部３０は１つの候補文字列全体の選択データを読み出す。
ステップＳ１５０４において、文字列作成部３０は読み出した候補文字列全体の選択データから１文字の選択データを読み出す。これにより文字列作成部３０は各候補文字列の１文字を処理していく。ここで、文字列作成部３０は読み出した１文字の選択データのＸ座標データ、Ｙ座標データ、高さ及び幅、すなわちＸ、Ｙ、ｈｅｉｇｈｔ及びｗｉｄｔｈの値をそれぞれＸ、Ｙ、ＤＸ及びＤＹに記憶する。
【００７０】
ステップＳ１５０５において、文字列作成部３０は他の候補文字列全体の選択データを読み出す。ここでは、文字列作成部３０はステップＳ１５０３で読み出した１つの候補文字列以外の候補文字列を読み出す。例えば、ステップＳ１５０３において、第一候補文字列を読み出した場合、文字列作成部３０は第二候補文字列又は第三候補文字列の選択データを読み出す。
【００７１】
ステップＳ１５０６において、文字列作成部３０は他の候補文字列から１文字分の選択データを読み出す。文字列作成部３０は読み出した選択データのＸ座標データ、Ｙ座標データ、高さ及び幅、すなわちＸ、Ｙ、ｈｅｉｇｈｔ及びｗｉｄｔｈの値をそれぞれＸ２、Ｙ２、ＤＸ２、ＤＹ２に記憶する。
【００７２】
ステップＳ１５０７において、文字列作成部３０はステップＳ１５０４において読み出した選択データがステップＳ１５０６において読み出した選択データと同一領域であるか否かを判定する。より具体的に説明すると、文字列作成部３０はステップＳ１５０４において記憶したＸ、Ｙ、ＤＸ及びＤＹと、ステップＳ１５０６において記憶したＸ２、Ｙ２、ＤＸ２、ＤＹ２とを比較することにより、同一領域の選択データであるか否かを判定する。同一領域であれば、文字列作成部３０はステップＳ１５０８に処理を進める。同一領域でなければ、文字列作成部３０はステップＳ１５０６に処理を戻す。
【００７３】
ステップＳ１５０８において、文字列作成部３０は同一領域にある選択データを記憶する。
ステップＳ１５０９において、文字列作成部３０は次の選択データがあるか否かを判定する。次の選択データがあれば、文字列作成部３０はステップＳ１５０６に処理を戻す。次の選択データがなければ、対象としている候補文字列の処理は終了したため、文字列作成部３０はステップＳ１５１０に処理を進める。
【００７４】
ステップＳ１５１０において、文字列作成部３０は次の候補文字列があるか否かを判定する。次の候補文字列がある場合、文字列作成部３０はステップＳ１５０５に処理を戻し、次の候補文字列を読み出す。次の候補文字列がない場合、文字列作成部３０はステップＳ１５１１に処理を進める。
【００７５】
ステップＳ１５１１において、文字列作成部３０は対象としている候補文字列のうち、次の選択データがあるか否かを判定する。次の選択データがある場合、文字列作成部３０はその選択データを読み出すためにステップＳ１５０４に処理を戻す。次の選択データがない場合、文字列作成部３０はステップＳ１５１２に処理を進める。
【００７６】
ステップＳ１５１２において、文字列作成部３０は対象とする次の候補文字列があるか否かを判定する。対象とする次の未処理の候補文字列がある場合、文字列作成部３０はステップＳ１５０３に処理を戻す。対象とする次の未処理の候補文字列がない場合、文字列作成部３０はステップＳ１５１３に処理を進める。
ステップＳ１５１３において、文字列作成部３０は検索文字列を作成する処理を終了する。
このように、文字列作成部３０は対象とする候補文字列の１文字分の選択データ（文字データ）に、他の候補文字列の同じ領域の選択データ（文字データ）を組み合わせて記憶している。
【００７７】
次に、作成した文字列について図１６を参照して説明する。図１６は文字列作成部３０が作成した文字列の一例を示す図である。図１６に示す検索文字列は、文字列作成部３０が図５、図６及び図７に示す候補文字列の同一領域文字同士を組み合わせることにより作成したものである。
その後、表示制御部１７は作成した複数の文字列を図１６に示すように画面に表示してユーザが選択できるようにする。ユーザが表示された文字列のうち１つを選択することで、情報機器４は選択された文字列を検索キーワードとして、例えばフラッシュメモリ１１やメディアサーバ３に記憶されているコンテンツデータ等から文字列と一致又は一部一致するものを検索する。この処理は検索手段の一例に対応する。
【００７８】
なお、上述では選択された文字列を検索キーワードとして用いる場合について説明したが、この場合に限られない。例えば、ユーザが複数の文字列から選択することで、情報機器４は認識結果としての文字データを確定させるようにしてもよく、他のソフトウェアに貼り付けたりして使用できるようにしてもよい。
このように本実施形態によれば、文字列作成部３０は複数の候補文字列の文字データを入れ替えて組み合わされた全ての文字列を作成することができる。したがって、文字列作成部３０はユーザが意図する文字列を確実に作成することができる。
また、ユーザはコンテンツデータ等の検索を行うとき、各候補文字列をそのまま検索キーワードとして入力することができるため、検索の操作を簡単に行うことができる。また、認識結果に確信度が低い候補文字列が含まれている場合であっても、候補文字列内にユーザが意図する認識結果が存在すれば、検索キーワードとして正しい候補文字列が入力されるため、検索処理を効率よく行うことができる。
【００７９】
（第３の実施形態）
第１及び第２の実施形態では、入力する手書き文字として横書きの文字列を処理する場合について説明した。第３の実施形態では、入力する手書き文字として横書き、縦書き及び斜め書きの文字列についても文字認識を行う場合について説明する。なお、第３の実施形態に係る情報機器４の構成を示すブロック図は第１の実施形態と同一であるために、その説明は省略する。第３の実施形態に係る情報機器の機能構成は第１の実施形態の構成に加え、後述するようにユーザによる選択を検出する縦横対応選択検出部３２と、選択された文字データから検索文字列を作成する縦横対応文字列作成部３３とを有している。また、第１の実施形態の文字切り候補作成部１４に代えて縦横文字切り候補作成部３１を有している。なお、以下では画面に表示される文字データを多階層データというものとする。
【００８０】
図１７は、第３の実施形態に係る情報機器の機能構成の一例を示す図である。なお、第１の実施形態と同一構成については同一符号を付してその説明を省略する。
縦横文字切り候補作成部３１は入力された文字列の対象が縦、横又は斜めの文字列である場合、その文字列を分割して文字切りの位置が異なる複数の候補文字列を作成する処理を行う。
縦横対応選択検出部３２は縦、横及び斜めが混在する多階層データについて例えばユーザによりペン５を介して位置座標入力部６に入力された範囲を検出する。縦横対応選択検出部３２は、検出された範囲から表示されている手書き文字の認識結果に基づき、多階層データを検出する。
縦横対応文字列作成部３３は多階層データから文字列を作成する。
【００８１】
次に、位置座標入力部６に入力した手書き文字の一例について図１８を参照して説明する。図１８はＣＰＵ８の指示により、入力された手書き文字の軌跡データを表示画面３４に表示した状態の一例を示す図である。表示画面３４には、文字列４１〜４４が表示されている。文字列４１は横書きで「ソフトの完成日９月９日」である。文字列４２は縦書きで「統合テスト」である。文字列４３は横書きで「開始１０月」である。文字列４４は斜め書きで「ハードの完成８月１５日」である。
【００８２】
次に、文字切り処理について図１９に示すフローチャートを参照して説明する。図１９に示すフローチャートは、図１７に示す縦横文字切り候補作成部３１が行う動作処理である。図１９に示すフローチャートは、ユーザがペン５を用いて手書きの文字列の軌跡を情報機器４の画面上に入力することにより開始される。
まず、ステップＳ２２０１において、縦横文字切り候補作成部３１は記憶部のワーク領域等の初期化を行う。
【００８３】
ステップＳ２２０２において、縦横文字切り候補作成部３１は画面上の入力された全ての軌跡データを記憶部に読み出す処理を行う。
ステップＳ２２０３において、縦横文字切り候補作成部３１はｄｘ及びｄｙに最小の文字の大きさを設定して仮想文字枠を決定する。
【００８４】
ステップＳ２２０４において、縦横文字切り候補作成部３１は設定した仮想文字枠を用いて入力軌跡の時間順に１文字分の軌跡データの文字切り処理を行うことができるか否かを判定する。ここで、ユーザによって入力される文字の大きさは自由であるために、まず、縦横文字切り候補作成部３１は最小の文字の大きさを設定して文字切り処理を行う。文字切り処理を行うことができる場合、縦横文字切り候補作成部３１はステップＳ２２０６に処理を進める。文字切り処理を行うことができない場合、縦横文字切り候補作成部３１はステップＳ２２０５に処理を進める。
【００８５】
ステップＳ２２０５において、縦横文字切り候補作成部３１は仮想文字枠の大きさを徐々に広げていく処理を行う。ここでは縦横文字切り候補作成部３１は所定値を仮想文字枠のｄｘ及びｄｙに加算する。なお、このアルゴニズムは軌跡データの文字の大きさを検出するための一例であって、他のアルゴニズムであってもよい。
【００８６】
ステップＳ２２０６において、縦横文字切り候補作成部３１は文字切り処理した軌跡データで文字認識処理を行う。縦横文字切り候補作成部３１は第１の実施形態において説明した認識アルゴニズムの処理によって、辞書データの文字コード（文字データ）を認識結果として出力する。また、縦横文字切り候補作成部３１は出力した文字コード（辞書データ）と軌跡データとの類似度を評価値として算出し、算出した評価値から確信度を算出する。なお、ステップＳ２２０６における認識アルゴニズムは、従来の認識アルゴリズムであってもよい。
【００８７】
ステップＳ２２０７において、縦横文字切り候補作成部３１は算出した確信度が設定された閾値以上であるか否かを判定する。確信度が閾値以上でない場合、縦横文字切り候補作成部３１はステップＳ２２０８に処理を進める。確信度が閾値以上である場合、縦横文字切り候補作成部３１はステップＳ２２０９に処理を進める。
【００８８】
ステップＳ２２０８において、縦横文字切り候補作成部３１は軌跡データの回転処理を行う。例えば、縦横文字切り候補作成部３１が図１８に示す文字列４３「ハードの完成８月１５日」について文字認識を行う場合、文字列４３は斜め書きであるため低い確信度が算出されてしまう。したがって、縦横文字切り候補作成部３１は軌跡データを辞書データと一致させるように回転させることで、正しい認識結果を取得することができる。ここでは、縦横文字切り候補作成部３１は例えば１５度単位で回転させて、確信度が閾値以上でない場合、更に回転させる処理を行う。
【００８９】
ステップＳ２２０９において、縦横文字切り候補作成部３１は認識結果を記憶する。
ステップＳ２２１０において、縦横文字切り候補作成部３１は次の軌跡データがあるか否かを判定する。未処理の軌跡データがある場合、縦横文字切り候補作成部３１はステップＳ２２０４に処理を戻し、文字切り処理を行う。未処理の軌跡データがない場合、縦横文字切り候補作成部３１はステップＳ２２１１に処理を進める。
ステップＳ２２１１において、縦横文字切り候補作成部３１は処理を終了する。
このように、縦横文字切り候補作成部３１は確信度が低い軌跡データを回転させる処理を行うことで斜めの手書き文字であっても、文字切り処理を行うと共に文字認識を行うことができる。
【００９０】
次に、上述したステップＳ２２０３において文字切り処理により仮想文字枠を設定した結果の一例について図２０を参照して説明する。図２０に示す表示画面３９には各文字列の１文字分の軌跡を囲んだ矩形文字枠を仮想的に表示している。文字によっては、矩形文字枠同士が一部重なっているところがある。また、文字切り処理によっては、文字列４２の「統」が「糸」と「充」とに分割されて区切られる場合と、文字列４２の「統」として文字切り処理される場合との２つの候補文字列が抽出される場合がある。
【００９１】
なお、上述した文字認識処理による認識結果の一例について図２１〜図２４を参照して説明する。
図２１は、図１８に示す手書き文字列のうち文字列４１を認識した結果の一例を示す表示画面３４である。表示画面３４に示すように、縦横文字切り候補作成部３１は文字データとして文字列３５「ソフト完成日９月９日」を文字認識している。
図２２は、図１８に示す手書き文字列のうち文字列４４を認識した結果の一例を示す表示画面３４である。表示画面３４に示すように、縦横文字切り候補作成部３１は文字データとして文字列３６「ハードの完成８月１５日」を文字認識している。
【００９２】
図２３は、図１８に示す手書き文字列のうち文字列４２を認識した結果の一例を示す表示画面３４である。表示画面３４に示すように、縦横文字切り候補作成部３１は文字データとして文字列３７「統合テスト」を文字認識している。
図２４は、手書き文字列の文字列４１〜４４を文字認識した結果の一例を示す表示画面３８である。表示画面３８に示すように、縦横文字切り候補作成部３１は文字データとして文字列３５「ソフト完成日９月９日」、文字列３６「ハードの完成８月１５日」、文字列３７「統合テスト」及び文字列３９「開始日１０月」を文字認識している。
【００９３】
次に、表示された候補文字列の選択検出処理について図２５に示すフローチャートを参照して説明する。図２５に示すフローチャートは、図１７に示す縦横対応選択検出部３２が行う動作処理であり、候補文字列の多階層データが表示された後、ユーザが多階層データを選択できる指示モードに変更されることにより開始される。
【００９４】
まず、ステップＳ２４０１において、縦横対応選択検出部３２は記憶部のワーク領域等を確保し、初期化を行う。
ステップＳ２４０２において、ユーザはペン５を介して位置座標入力部６に表示された候補文字列の多階層データを選択するために軌跡を入力する操作を行う。縦横対応選択検出部３２はユーザによって入力された軌跡のＸＹ座標データを検出する。後述するように、入力された軌跡上の多階層データが選択の対象となる。
【００９５】
ステップＳ２４０３において、縦横対応選択検出部３２は画面上に表示された候補文字列の全ての多階層データを記憶部に読み出す。
ステップＳ２４０４において、縦横対応選択検出部３２は記憶部に読み出した全ての多階層データのうち１文字分の多階層データのＸ座標データ、Ｙ座標データ、高さ及び幅を読み出す。
【００９６】
ステップＳ２４０５において、縦横対応選択検出部３２は１文字分の多階層データがステップＳ２４０２において入力された軌跡上に存在するか否かを判定する。より具体的に説明すると、縦横対応選択検出部３２は読み出した１文字分の多階層データのＸ座標データ、Ｙ座標データ、高さ及び幅に入力された軌跡のＸＹ座標データが存在するか否かを判定する。存在する場合、縦横対応選択検出部３２はステップＳ２４０６に処理を進める。存在しない場合、縦横対応選択検出部３２はステップＳ２４０４に処理を戻す。
【００９７】
ステップＳ２４０６において、縦横対応選択検出部３２は軌跡上に存在する多階層データの確信度が閾値以上か否かを判定する。確信度が閾値以上であれば、縦横対応選択検出部３２はステップＳ２４０７に処理を進める。確信度が閾値以上でなければ、縦横対応選択検出部３２はステップＳ２４０４に処理を戻し、次の１文字分の多階層データを読み出す。
【００９８】
ステップＳ２４０７において、縦横対応選択検出部３２は確信度が閾値以上であった１文字分の多階層データを記憶する処理を行う。
ステップＳ２４０８において、縦横対応選択検出部３２は全ての多階層データについて処理を行ったか否かを判定する。全ての多階層データを処理している場合、縦横対応選択検出部３２はステップＳ２４０９に処理を進める。未処理の多階層データがある場合、縦横対応選択検出部３２はステップＳ２４０４に処理を戻し、次の１文字分の多階層データを処理する。
【００９９】
ステップＳ２４０９において、縦横対応選択検出部３２は候補文字列の選択検出処理を終了する。この時点で、選択された候補文字列の多階層データが記憶されている。
このように、縦横対応選択検出部３２は指示された軌跡上に存在する多階層データ（文字データ）を読み出すことができる。
【０１００】
次に、記憶された多階層データから文字列を作成する処理について図２６のフローチャートを参照して説明する。図２６に示すフローチャートは、図１７に示す縦横対応文字列作成部３３が行う動作処理であり、図２５に示すフローチャートが終了したときに開始される。以下では、多階層データのうち図２５に示すフローチャートのステップＳ２４０７において、記憶した多階層データを選択データという。
まず、ステップＳ２５０１において、縦横対応文字列作成部３３は記憶部のワーク領域等を確保し、初期化を行う。
【０１０１】
ステップＳ２５０２において、縦横対応文字列作成部３３は全選択データを記憶部に読み出す。
ステップＳ２５０３において、縦横対応文字列作成部３３は選択データの方向を検出する。すなわち縦横対応文字列作成部３３は選択データが縦、横及び斜めの何れであるかを判定する。例えば、図２２に示す文字列３６が選択されていれば候補文字列は斜めである。また、図２３に示す文字列３７が選択されていれば候補文字列は縦である。
【０１０２】
ステップＳ２５０４において、縦横対応文字列作成部３３は選択データの記憶順と方向性とが同一であるか検出し、異なっている場合、候補文字列の方向順に選択データをソートする。すなわち、通常通りに入力されている場合、例えば左から右に入力したとすると選択データも左から右に配列されているため、記憶順と方向性とは同一である。一方、後から文字を書き加えた場合等は記憶順と方向性とが異なるため、縦横対応文字列作成部３３は選択データをソートする必要がある。
【０１０３】
ステップＳ２５０５において、縦横対応文字列作成部３３は１つの候補文字列全体の選択データを読み出す。
ステップＳ２５０６において、縦横対応文字列作成部３３は読み出した候補文字列全体の選択データから１文字分の選択データを読み出す。ここでは、縦横対応文字列作成部３３は１文字の選択データのＸ座標データ、Ｙ座標データ、高さ及び幅の値をそれぞれＸ、Ｙ、ＤＸ及びＤＹに記憶する。
【０１０４】
ステップＳ２５０７において、縦横対応文字列作成部３３は他の候補文字列全体の選択データを読み出す。
ステップＳ２５０８において、縦横対応文字列作成部３３は他の候補文字列から１文字分の選択データを読み出す。縦横対応文字列作成部３３は読み出した選択データのＸ座標データ、Ｙ座標データ、高さ及び幅の値をそれぞれＸ２、Ｙ２、ＤＸ２、ＤＹ２に記憶する。
【０１０５】
ステップＳ２５０９において、縦横対応文字列作成部３３はステップＳ２５０６で読み出した選択データがステップＳ２５０８で読み出した選択データと同一領域であるか否かを判定する。同一領域であれば、縦横対応文字列作成部３３はステップＳ２５１０に処理を進める。同一領域でなければ、縦横対応文字列作成部３３はステップＳ２５０８に処理を戻す。
【０１０６】
ステップＳ２５１０において、縦横対応文字列作成部３３は同一領域にある選択データを記憶する。
ステップＳ２５１１において、縦横対応文字列作成部３３は次の選択データがあるか否かを判定する。次の選択データがあれば、縦横対応文字列作成部３３はステップＳ２５０８に処理を戻す。次の選択データがなければ、縦横対応文字列作成部３３はステップＳ２５１２に処理を進める。
【０１０７】
ステップＳ２５１２において、縦横対応文字列作成部３３は次の候補文字列があるか否かを判定する。次の候補文字列がある場合、縦横対応文字列作成部３３はステップＳ２５０７に処理を戻し、次の候補文字列を読み出す。次の候補文字列がない場合、縦横対応文字列作成部３３はステップＳ２５１３に処理を進める。
【０１０８】
ステップＳ２５１３において、縦横対応文字列作成部３３は対象としている候補文字列のうち、次の選択データがあるか否かを判定する。次の選択データがある場合、縦横対応文字列作成部３３はステップＳ２５０６に処理を戻す。次の選択データがない場合、縦横対応文字列作成部３３はステップＳ２５１４に処理を進める。
【０１０９】
ステップＳ２５１４において、縦横対応文字列作成部３３は対象とする次の候補文字列があるか否かを判定する。対象とする次の未処理の候補文字列がある場合、縦横対応文字列作成部３３はステップＳ２５０５に処理を戻す。対象とする次の未処理の候補文字列がない場合、縦横対応文字列作成部３３はステップＳ２５１５に処理を進める。
ステップＳ２５１５において、縦横対応文字列作成部３３は文字列を作成する処理を終了する。
【０１１０】
その後、表示制御部１７は作成した複数の文字列を画面に表示してユーザが選択できるようにする。ユーザが表示された文字列のうち１つを選択することで、情報機器４は選択された文字列を検索キーワードとして、例えばフラッシュメモリ１１やメディアサーバ３に記憶されているコンテンツデータ等から文字列と一致又は一部一致するものを検索する。
【０１１１】
なお、上述では選択された文字列を検索キーワードとして用いる場合について説明したが、この場合に限られない。例えば、ユーザが複数の文字列から選択することで、情報機器４は認識結果としての文字データを確定させるようにしてもよく、他のソフトウェアに貼り付けたりして使用できるようにしてもよい。
【０１１２】
このように本実施形態によれば、縦横対応文字列作成部３３は縦、横及び斜めに入力された手書き文字に対して作成された複数の候補文字列の文字データを入れ替えて組み合わされた全ての文字列を作成することができる。したがって、縦横対応文字列作成部３３はユーザが意図する文字列を確実に作成することができる。
また、ユーザはコンテンツデータ等の検索を行うとき、各候補文字列をそのまま検索キーワードとして入力することができるため、検索の操作を簡単に行うことができる。また、認識結果に確信度が低い候補文字列が含まれている場合であっても、候補文字列内にユーザが意図する認識結果が存在すれば、検索キーワードとして正しい候補文字列が入力されるため、検索処理を効率よく行うことができる。
【０１１３】
上述した本発明の実施形態における情報処理装置を構成する各手段、並びに情報処理方法の各ステップは、コンピュータのＲＡＭやＲＯＭ等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１１４】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、一つの機器からなる装置に適用してもよい。
【０１１５】
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム又は装置に直接、又は遠隔から供給する。そして、そのシステム又は装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１１６】
従って、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。更に、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１１８】
更に、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１１９】
【図１】情報処理システムの構成の一例を示す図である。
【図２】情報機器の構成の一例を示すブロック図である。
【図３】第１の実施形態に係る情報機器の機能構成の一例を示す図である。
【図４】第１の実施形態に係る手書き文字の軌跡データを表示画面に表示した一例を示す図である。
【図５】第１の実施形態に係る文字切り処理の一例を示すフローチャートである。
【図６】第１の実施形態に係る文字認識処理の一例を示すフローチャートである。
【図７】候補文字列のデータ構造の一例を示す図である。
【図８】第１候補文字列の一例を示す図である。
【図９】第２候補文字列の一例を示す図である。
【図１０】第３候補文字列の一例を示す図である。
【図１１】第１の実施形態に係る候補文字列の表示処理の一例を示すフローチャートである。
【図１２】認識結果の候補文字列を表示画面に表示した一例を示す図である。
【図１３】第２の実施形態に係る情報機器の機能構成の一例を示す図である。
【図１４】第２の実施形態に係る選択検出処理一例を示すフローチャートである。
【図１５】第２の実施形態に係る検索文字列の作成処理の一例を示すフローチャートである。
【図１６】文字列作成部が作成した検索文字列の一例を示す図である。
【図１７】第３の実施形態に係る情報機器の機能構成の一例を示す図である。
【図１８】第３の実施形態に係る手書き文字の軌跡データを表示画面に表示した一例を示す図である。
【図１９】第３の実施形態に係る文字切り処理の一例を示すフローチャートである。
【図２０】文字切り処理により矩形文字枠を示した結果の一例を示す図である。
【図２１】文字列を認識した結果の一例を示す図である。
【図２２】文字列を認識した結果の一例を示す図である。
【図２３】文字列を認識した結果の一例を示す図である。
【図２４】文字列を認識した結果の一例を示す図である。
【図２５】第３の実施形態に係る選択検出処理一例を示すフローチャートである。
【図２６】第３の実施形態に係る検索文字列の作成処理の一例を示すフローチャートである。
【符号の説明】
【０１２０】
１００  情報処理システム
１      デジタルテレビ
３      メディアサーバ
４      情報機器
６      位置座標入力部
７      表示部
８      ＣＰＵ
９      ＲＡＭ
１０    ＲＯＭ
１１    フラッシュメモリ
１２    無線ＬＡＮ
１４    文字切り候補作成部
１５    認識部
１７    表示制御部
２９    選択検出部
３０    文字列作成部
３２    縦横対応選択検出部
３３    縦横対応検索文字列作成部
【図１】
2010039769.tif 000003
【図２】
2010039769.tif 000004
【図３】
2010039769.tif 000005
【図４】
2010039769.tif 000006
【図５】
2010039769.tif 000007
【図６】
2010039769.tif 000008
【図７】
2010039769.tif 000009
【図８】
2010039769.tif 000010
【図９】
2010039769.tif 000011
【図１０】
2010039769.tif 000012
【図１１】
2010039769.tif 000013
【図１２】
2010039769.tif 000014
【図１３】
2010039769.tif 000015
【図１４】
2010039769.tif 000016
【図１５】
2010039769.tif 000017
【図１６】
2010039769.tif 000018
【図１７】
2010039769.tif 000019
【図１８】
2010039769.tif 000020
【図１９】
2010039769.tif 000021
【図２０】
2010039769.tif 000022
【図２１】
2010039769.tif 000023
【図２２】
2010039769.tif 000024
【図２３】
2010039769.tif 000025
【図２４】
2010039769.tif 000026
【図２５】
2010039769.tif 000027
【図２６】
2010039769.tif 000028