(57)【特許請求の範囲】
【請求項１】
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正し、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する、
処理をコンピュータに実行させることを特徴とする手書き文字修正プログラム。
【請求項２】
前記文字画像は、
手書き入力により入力されたストロークのストローク画像毎に、前記手書き入力の入力に応じ、前記ストロークが入力された順番を示す値を前記ストローク画像に対応付けたラベル付き画像により生成される、
ことを特徴とする請求項１記載の手書き文字修正プログラム。
【請求項３】
前記更新する処理は、
前記記憶部に格納された、前記複数の文字の文字画像を形成する前記ラベル付き画像から、前記特定の文字のストローク画像から生成された前記ラベル付き画像を削除し、
前記置換文字のストローク画像から生成されたラベル付き画像を、削除した前記ラベル付き画像と対応する位置へ挿入する、
処理である請求項２記載の手書き文字修正プログラム。
【請求項４】
前記更新する処理は、
前記記憶部に記憶された前記複数の文字のストローク情報における前記特定の文字のストローク情報を、前記補正後の前記置換文字のストローク情報に置き換える、処理であることを特徴する請求項２又は３記載の手書き文字修正プログラム。
【請求項５】
前記補正する処理は、
前記置換文字の文字画像の外接枠の高さと幅を、前記特定の文字の文字画像の外接枠の高さと幅と一致させ、
前記置換文字の文字画像の外接枠の座標を、前記特定の文字の文字画像の外接枠の座標と一致させる、ことを特徴する請求項１乃至４の何れか一項に記載の手書き文字修正プログラム。
【請求項６】
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正する補正部と、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する更新部と、
を有することを特徴とする手書き文字修正装置。
【請求項７】
コンピュータによる手書き文字修正方法であって、該コンピュータが、
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正し、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する、
ことを特徴とする手書き文字修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き文字修正プログラム、手書き文字修正装置及び手書き文字修正方法に関する。
【背景技術】
【０００２】
従来の手書き文字認識では、個人の筆跡画像及びストロークの情報を認証情報として蓄積しておき、入力された文字との照合を行う技術が知られている。
【０００３】
サーバに蓄積された認証情報と照合する際は、照合対象となるストロークの手書き文字認識の結果と、認証情報に対応した認識がされた画像及びストロークとの照合がなされる。このため、サーバに登録される認証情報としての筆跡画像及びストロークの情報も、手書き文字認識において正しく認識されている必要がある。
【０００４】
認証情報の登録の際には、一部の文字の認識結果のみ誤認識された場合は、誤認識された文字のみ、登録内容を修正することが望ましい。
【０００５】
認識結果の一部を修正することに関連して、従来では、筆跡画像の一部の画像のみを置換する技術や、ストロークの位置及び時間の情報に基づき、文字画像がどの文字に対応するかを調べる技術等が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２５８１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の技術において、筆跡画像の一部の画像を置換する場合、隣接する文字と干渉が生じているときに、隣接する文字の一部を消去してしまう可能性がある。また、ストロークの情報に基づき分離された文字の画像は、文字同士が干渉する部分では、ストロークの太さ等が正確ではなくなり、認証に用いる筆跡画像に適していない。
【０００８】
１つの側面では、手書き文字の一部の修正による、他の文字の情報への影響を抑制する手書き文字修正プログラム、手書き文字修正装置及び手書き文字修正方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
開示の技術は、手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正し、前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する、処理をコンピュータに実行させる。
【００１０】
上記各部は、上記各部を実現するプログラム、各部を手順としてコンピュータにより実行させる方法、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１１】
手書き文字の一部の修正による、他の文字の情報への影響を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】第一の実施形態の主なプログラム構成を説明する図である。
【図２】認識結果の文字列の修正を説明する図である。
【図３】文字の画像同士の位置関係とサイズ比について説明する図である。
【図４】筆跡画像と文字画像の合成について説明する図である。
【図５】修正対象の文字の画像の削除について説明する第一の図である。
【図６】修正対象の文字の画像の削除について説明する第二の図である。
【図７】第一の実施形態の手書き文字修正装置のハードウェア構成の一例を説明する図である。
【図８】第一の実施形態の手書き文字修正装置の機能を説明する図である。
【図９】文字情報データベースの一例を説明する図である。
【図１０】手書き文字修正装置の有する各部の動作を示すシーケンス図である。
【図１１】アプリケーション実行部の処理を説明するフローチャートである。
【図１２】手書き文字修正処理部による処理を説明する第一のフローチャートである。
【図１３】ラベル付き画像生成部によるラベル付けを説明する図である。
【図１４】ストローク画像の交差について説明する図である。
【図１５】交差領域リストデータベースの一例を示す図である。
【図１６】認識処理部の処理を説明するフローチャートである。
【図１７】手書き文字修正処理部による処理を説明する第二のフローチャートである。
【図１８】交差領域リストの更新を説明する図である。
【図１９】ストローク画像の削除を説明する図である。
【図２０】ラベル付けの効果を説明する図である。
【図２１】外接枠サイズ変更部の処理を説明する図である。
【図２２】データベース更新部の処理を説明する図である。
【図２３】第二の実施形態の手書き文字修正装置を説明する図である。
【図２４】第三の実施形態の手書き文字修正装置を説明する図である。
【発明を実施するための形態】
【００１３】
（第一の実施形態）
以下に図面を参照して実施形態について説明する。図１は、第一の実施形態の主なプログラム構成を説明する図である。
【００１４】
本実施形態は、主なプログラムとして、アプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０を有する。
【００１５】
アプリケーション１０は、アプリケーション１０が実現可能な機能を提供する。本実施形態のアプリケーション１０は、機能をユーザに提供する際に、認証を要求するものであって良い。アプリケーション１０が要求する認証とは、例えばサーバからサービスの提供を受ける際のログイン処理等である。
【００１６】
また、本実施形態のアプリケーション１０は、認証の際に、手書きによるストロークの入力を受け付け、ストロークを示す情報を認識プログラム３０へ渡す。また、アプリケーション１０は、ストローク毎の画像を手書き文字修正プログラム２０に渡す。以下の説明では、ストロークを示す情報をストローク情報、ストローク毎の画像をストローク画像と呼ぶ。アプリケーション１０は、認識プログラム３０によるストロークの認識結果を表示させ、ストローク情報と認識結果の文字列とを文字情報として記憶部に蓄積させる。
【００１７】
手書き文字修正プログラム２０は、アプリケーション１０から受け付けたストローク画像を記憶部に蓄積させる。また、手書き文字修正プログラム２０は、ストロークを認識した文字列に対して修正指示がされた場合に、蓄積された文字情報を、修正指示に応じて更新する。
【００１８】
認識プログラム３０は、アプリケーション１０から受け付けたストローク情報から、入力されたストロークを認識し、認識結果の文字列を出力する。尚、認識プログラム３０は、文字を認識した際に、文字に外接する外接枠を示す座標情報を認識結果の文字列と共に出力する。以下の説明では、認識プログラム３０により認識された文字列を認識文字列と呼ぶ。尚、本実施形態の文字列は、１文字であっても良いし、複数の文字を含んでも良い。
【００１９】
本実施形態のアプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０は、それぞれが独立した装置に実装されていても良いし、それぞれが１つの装置に実装されていても良い。
【００２０】
以下の第一の実施形態の説明では、アプリケーション１０、手書き文字修正プログラム２０及び認識プログラム３０が、１つの装置に実装された場合について説明する。また、本実施形態の説明では、アプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０が実装された装置を「手書き文字修正装置」と呼ぶ。
【００２１】
以下に、本実施形態の手書き文字修正装置による認識文字列の修正について説明する。
【００２２】
本実施形態のアプリケーション１０は、ストローク情報と、ストローク画像を含む筆跡画像と、を認証情報として取得する。また、認証情報は、ストローク情報の認識文字列と対応付けられている。
【００２３】
このため、例えば認証情報の登録時に、ストローク情報からの文字認識が誤っていた場合には、誤った認識文字列がストローク情報及びストローク画像と対応付けられることになり、その後の認証が正しく行われなくなる。そのため、認証情報としてのストローク情報と筆跡画像は、正しい認識文字列と対応付けられている必要がある。
【００２４】
そこで、本実施形態では、認識文字列において、誤認識された文字のみを手書きにて再入力させ、誤認識された文字を、再入力されたストロークから認識された文字に置き換える。
【００２５】
また、本実施形態では、誤認識があったときの筆跡画像から、誤認識された文字の画像を削除し、再入力した手書きの文字の画像に置き換える。さらに、本実施形態では、筆跡画像において、誤認識された文字の画像を再入力された文字の画像に置き換えるとき、置き換え前の筆跡の特徴が損なわれないように文字の画像の置き換えを行う。
【００２６】
尚、アプリケーション１０が取得した認証情報は、例えばアプリケーション１０にサービスを提供するサーバに対して送信され、サーバにおいて認証処理が行われても良い。
【００２７】
図２は、認識結果の文字列の修正を説明する図である。図２（Ａ）は、ストロークの入力と認識結果の文字列の表示を説明する図である。図２（Ｂ）は、認識文字列に対する修正を説明する図である。図２（Ｃ）は、筆跡画像の修正を説明する図である。
【００２８】
本実施形態のアプリケーション１０は、認証情報が登録されていないユーザに対し、手書き入力による認証情報の登録を促す。具体的には、アプリケーション１０は、図２（Ａ）に示すように、手書き文字修正装置の画面２１に、手書き入力欄２２と、手書き入力されたストロークの認識結果を表示する認識結果表示欄２３とを表示させ、手書き入力欄２２に対する手書き入力を受け付ける。
【００２９】
図２（Ａ）では、手書き入力欄２２において、「富士池」なる文字列の手書き入力を受け付け、認識プログラム３０による認識結果として「富七池」という認識文字列を取得した場合を示している。図２（Ａ）では、手書き入力欄２２に手書き入力されたストロークのストローク情報と、ストローク画像を含む筆跡画像２４とが文字情報データベースに格納される。尚、文字情報データベースの詳細は後述する。
【００３０】
図２（Ａ）の例では、認識結果表示欄２３に表示された認識文字列において、手書き入力された文字「士」が文字「七」と誤認識されている。この場合、手書き文字修正装置は、認識結果表示欄２３において、誤認識された文字の選択を受けて、修正対象の文字を特定する。そして、手書き文字修正装置は、修正対象の文字を、手書き入力欄２２に入力されたストロークを認識した結果の文字と置き換える。
【００３１】
図２（Ｂ）に示す画面２１Ａは、認識結果表示欄２３において、誤認識された文字「七」が削除され、手書き入力欄２２に手書きにて文字「士」が再入力された状態を示している。また、本実施形態では、図２（Ｂ）の手書き入力欄２２に手書き入力された文字の画像を文字画像２５として取得する。
【００３２】
図２（Ｃ）は、図２（Ｂ）において、手書き入力された文字「士」が正しく認識され、認識文字列が「富七池」から「富士池」に修正されて、認識結果表示欄２３に表された状態を示している。
【００３３】
また、本実施形態では、筆跡画像２４から文字「士」の画像を削除し、削除した文字の画像を図２（Ｂ）で取得した文字画像２５に置き換え、筆跡画像２６としている。
【００３４】
本実施形態では、筆跡画像２４から削除された文字の画像を文字画像２５に置き換える際に、後述する点に着目し、筆跡画像２６においても、筆跡画像２４が有する筆跡の特徴が損なわれないように置き換える。
【００３５】
尚、本実施形態における筆跡の特徴とは、例えば隣接する文字同士のサイズ比や、文字同士の位置関係等である。
【００３６】
また、図２の例では、筆跡画像２４、２６及び文字画像２５は、手書き文字修正装置の画面には表示されないものとしたが、これらも手書き文字修正装置の画面上に表示されても良い。
【００３７】
以下に、本実施形態における文字の画像の置き換えについて説明する。図３は、文字の画像同士の位置関係とサイズ比について説明する図である。図３（Ａ）は、文字の画像同士の位置関係を説明する図であり、図３（Ｂ）は、文字の画像同士のサイズ比を説明する図である。
【００３８】
通常、ある文字を文字列の中の１文字として書く場合には、隣接する文字とのサイズ比や位置関係が筆跡の特徴として現れるが、１文字のみを書く場合には、隣接文字との関係性が考慮されないことが推定される。
【００３９】
したがって、本実施形態において、誤認識を修正する際に再入力される文字の画像は、筆跡画像における他の文字の画像との位置関係やサイズ比が考慮されていない可能性がある。
【００４０】
例えば図３（Ａ）では、筆跡画像２４から、誤認識された文字「士」の画像を削除した画像２４′の横軸と、再入力された文字画像２５の横軸とが一致していない場合を示している。図３（Ａ）では、画像２４′に含まれる「富」と「池」の２文字の外接枠のうち、下端から上端までの高さＨ１としたとき、高さＨ１を２分する線Ｙ１を画像２４′の横軸とした。また、文字画像２５の外接枠の高さＨ２を２分する線Ｙ２を文字画像２５の横軸Ｙ２とした。
【００４１】
このとき、画像２４′に文字画像２５を合成した画像２７では、文字画像２５は、隣接する文字「富」とほぼ同じ大きさとなり、さらに横軸Ｙ１より横軸Ｙ２が下にずれ、文字同士の位置関係が変わっていることがわかる。
【００４２】
また、図３（Ｂ）では、画像２４′における文字「富」と「池」との間隔ｓよりも、文字画像２５の外接枠の幅ｗの方が大きい。したがって、文字画像２５を画像２４′と合成した画像２８では、文字画像２５により画像２４′の文字「富」と「池」の一部が削除されていることがわかる。
【００４３】
本実施形態では、以上の点に着目し、画像２４′に文字画像２５を合成する際に、筆跡画像２４に合わせて文字画像２５の大きさを調整してから、画像２４′に合成する。また、本実施形態では、合成する際に、大きさを調整した文字画像２５と、他の２文字の画像との位置関係を維持するように配置する。
【００４４】
図４は、筆跡画像と文字画像の合成について説明する図である。本実施形態で、認識文字列において、修正対象となる文字「士」が選択されると、筆跡画像２４から、修正対象（再入力対象）となった文字「士」の画像を削除し、画像２４′とする。
【００４５】
次に、本実施形態では、再入力された文字画像２５を、削除した文字「士」の外接枠の大きさに合わせて変更した画像２５′とし、削除された文字「士」の外接枠と重なる位置に画像２５′を当てはめた筆跡画像２９を生成する。尚、図４に示す筆跡画像２４、２９は、後述するラベル付き画像に相当する。
【００４６】
本実施形態では、このように、修正対象となった文字の文字画像を補正することで、筆跡の特徴を損なわずに筆跡画像を変更できる。
【００４７】
また、本実施形態では、認識文字列において修正対象の文字が特定されたとき、筆跡画像から特定された文字の画像を削除するが、その際に以下の点に着目した。
【００４８】
図５は、修正対象の文字の画像の削除について説明する第一の図である。図５（Ａ）は、修正対象の文字の外接枠５１が、隣接する文字の外接枠５２、５３と重なっている場合を示している。図５（Ｂ）は、文字の画像（線）が重なっている場合を示している。
【００４９】
図５（Ａ）に示す筆跡画像４１では、修正対象である文字「士」の外接枠５１と、隣接する文字「富」と「池」のそれぞれの外接枠５２、５３とが重なっており、且つ文字の画像は重なっていない。この場合、修正対象の文字の画像を削除すると、文字「富」と「池」の画像のそれぞれにおいて、外接枠５１に含まれる画像の一部が削除されてしまう。
【００５０】
また、図５（Ａ）の筆跡画像４２では、修正対象の文字「士」の画像と、隣接する文字「池」の画像とが重なっており、さらに重なっている領域に独立した線が含まれている。この場合、修正対象の文字の画像を削除すると、外接枠５１と外接枠５２が重なる領域に含まれる線５４（「池」のさんずいの一画目）も削除されてしまう。また、重なっている領域内の独立した線は、外接枠と交差しないため、外接枠との交差の有無等を用いてどちらの外接枠の文字に含まれる線であるか否かを判定することができない。
【００５１】
また、図５（Ａ）の筆跡画像４３では、修正対象の文字「士」の画像と、隣接する文字「富」と「池」の画像のそれぞれとが重なっている。この場合も同様に、修正対象の文字の画像を削除すると、修正対象の文字「士」の外接枠に含まれる文字「富」と「池」の画像の一部が削除されてしまう。
【００５２】
さらに、図５（Ｂ）に示すように、筆跡画像４４において、修正対象の文字「区」の画像に含まれる線が、隣接する文字の画像の線と重なっていた場合、各文字の画像において重なっている部分の線の太さは、把握することが難しい。
【００５３】
本実施形態では、図５に示した点に着目し、修正対象の文字の画像と、修正対象の文字と隣接する文字の画像とが干渉していた場合でも、隣接する文字の画像に影響を及ぼさずに修正対象の文字を削除する。
【００５４】
図６は、修正対象の文字の画像の削除について説明する第二の図である。本実施形態では、手書き入力によりストロークが入力されると、ストローク画像毎に、ストローク画像を特定するラベルを付与し、ストローク画像とラベルとを対応付けて保持しておく。
【００５５】
そして、本実施形態では、修正対象の文字が特定されると、筆跡画像から修正対象の文字の画像を形成するストローク画像を削除する。
【００５６】
例えば、本実施形態では、筆跡画像４１において、修正対象の文字「士」が特定されると、文字「士」を形成するストローク画像６１、６２、６３を筆跡画像４１から削除する。尚、図６に示す筆跡画像４１は、後述するラベル付き画像に相当する。
【００５７】
本実施形態では、このようにストローク画像単位に筆跡画像４１から削除することで、文字「士」の画像に隣接する文字「富」の画像と、文字「池」の画像とに影響を及ぼさずに、修正対象の文字「士」を削除することができる。
【００５８】
以下に、上述した処理を実行する本実施形態の手書き文字修正装置について説明する。図７は、第一の実施形態の手書き文字修正装置のハードウェア構成の一例を説明する図である。
【００５９】
本実施形態の手書き文字修正装置１００は、それぞれバスＢで相互に接続されている表示操作装置１０１、ドライブ装置１０２、補助記憶装置１０３、メモリ装置１０４、演算処理装置１０５、及びインターフェース装置１０６を有する。
【００６０】
表示操作装置１０１は、例えばタッチパネル等であり、各種信号の入力と、各種信号の表示（出力）に用いられる。インターフェース装置１０６は、モデル、ＬＡＮカード等を含み、ネットワークに接続する為に用いられる。
【００６１】
アプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０は、手書き文字修正装置１００を制御する各種プログラムの少なくとも一部である。これらのプログラムは、例えば記録媒体１０７による配布やネットワークからのダウンロード等によって提供される。アプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０を記録した記録媒体１０７は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００６２】
また、アプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０を記録した記録媒体１０７がドライブ装置１０２にセットされると、各プログラムは記録媒体１０７からドライブ装置１０２を介して補助記憶装置１０３にインストールされる。ネットワークからダウンロードされた各プログラムは、インターフェース装置１０６を介して補助記憶装置１０３にインストールされる。
【００６３】
補助記憶装置１０３は、インストールされたアプリケーション１０、手書き文字修正プログラム２０、及び認識プログラム３０を格納すると共に、基本ソフトウェアであるＯＳ（Operating System）、必要なファイル、データ等を格納する。メモリ装置１０４は、各プログラムの起動時に補助記憶装置１０３にそれぞれのプログラムを読み出して格納する。そして、演算処理装置１０５は、メモリ装置１０４に格納された各プログラムに従って、後述するような各種処理を実現している。
【００６４】
次に、図８を参照し、本実施形態の手書き文字修正装置１００の機能について説明する。図８は、第一の実施形態の手書き文字修正装置の機能を説明する図である。
【００６５】
本実施形態の手書き文字修正装置１００は、アプリケーション実行部１１０、手書き文字修正処理部１２０、認識処理部１３０、記憶部１４０を有する。記憶部１４０は、文字情報データベース１５０と交差領域リストデータベース１６０とを格納する。
【００６６】
本実施形態のアプリケーション実行部１１０は、演算処理装置１０５がアプリケーション１０を実行することで実現される。本実施形態の手書き文字修正処理部１２０は、演算処理装置１０５が手書き文字修正プログラム２０を実行することで実現される。本実施形態の認識処理部１３０は、演算処理装置１０５が認識プログラム３０を実行することで実現される。本実施形態の記憶部１４０は、補助記憶装置１０３やメモリ装置１０４により実現される。
【００６７】
本実施形態のアプリケーション実行部１１０は、アプリケーション１０の起動時に、手書き入力欄を含む画面を表示させ、手書き入力によるストロークの入力を受け付ける。また、アプリケーション実行部１１０は、ストロークの入力を受け付けて、ストローク情報を認識処理部１３０へ渡す。また、アプリケーション実行部１１０は、ストロークの入力を受け付けて、ストローク画像を手書き文字修正処理部１２０へ渡す。
【００６８】
手書き文字修正処理部１２０は、アプリケーション実行部１１０から受け付けたストローク画像毎に、ストローク画像を特定するラベル（識別子）を付与したラベル付き画像を生成する。
【００６９】
すなわち、本実施形態のラベル付き画像は、筆跡画像に形成するストローク画像毎にラベル付けを行った画像であり、筆跡を示す筆跡画像の一種である。これに対し、以下の説明では、ストローク画像にラベルが付与されていない（ストローク画像毎に識別されていない）筆跡画像を単に筆跡画像と呼ぶ。
【００７０】
また、手書き文字修正処理部１２０は、認識文字列に対する修正指示を受けて、修正対象の文字をラベル付き画像から削除し、再入力された文字の画像の大きさを、削除前の修正対象の文字の大きさに合わせて補正する。また、手書き文字修正処理部１２０は、削除前の修正対象の文字があった位置に再入力された文字に挿入する。そして、手書き文字修正処理部１２０は、修正対象の文字を置き換えたラベル付き画像から、修正が反映された筆跡画像を生成する。
【００７１】
手書き文字修正処理部１２０の詳細は後述する。
【００７２】
認識処理部１３０は、アプリケーション実行部１１０から受け付けたストローク情報から文字を認識し、認識結果として文字を取得する。
【００７３】
以下に、本実施形態の手書き文字修正処理部１２０について、さらに説明する。本実施形態の手書き文字修正処理部１２０は、ストローク取得部１２１、ラベル付き画像生成部１２２、交差判定部１２３、交差領域リスト生成部１２４、ストローク画像削除部１２５、外接枠サイズ変更部１２６、文字画像置き換え部１２７、データベース更新部１２８、文字列修正部１２９を有する。
【００７４】
本実施形態のストローク取得部１２１は、アプリケーション実行部１１０から、ストローク画像を取得する。また、本実施形態のストローク取得部１２１は、認識文字列に対する修正指示を受け付けたとき、アプリケーション実行部１１０から、修正対象の文字と対応して再入力されたストロークのストローク情報及びストローク画像を取得する。
【００７５】
ラベル付き画像生成部１２２は、取得したストローク画像毎に、ストローク画像と対応付けられたラベルを付与し、ラベル付き画像を生成する。本実施形態のラベルは、手書き入力欄においてストロークが入力された際のストロークの画数であっても良い。ラベル付き画像生成部１２２の処理の詳細は後述する。
【００７６】
交差判定部１２３は、ストローク画像毎に、ストローク画像が他のストローク画像と交差しているか否かを判定する。
【００７７】
交差領域リスト生成部１２４は、交差判定部１２３による判定結果に応じて、後述する交差領域リストを生成する。交差領域リストは、交差領域リストデータベース１６０に格納されている。交差領域リストデータベース１６０の詳細は、後述する。
【００７８】
ストローク画像削除部１２５は、認識文字列において、修正指示を受けて、修正対象の文字が特定されると、ラベル付き画像から、修正対象の文字を形成するストローク画像を削除する。ストローク画像削除部１２５の詳細は後述する。
【００７９】
外接枠サイズ変更部１２６は、修正対象の文字と置き換えられる置き換え先の文字の外接枠の大きさを、修正対象の文字の外接枠の大きさに合わせるように変更する。以下の説明では、修正対象の文字と置き換えられる文字を、「置き換え先の文字」又は「置換文字」と呼ぶ。置き換え先の文字とは、アプリケーション実行部１１０が修正指示を受け付けた後に、手書き入力欄に再入力されたストロークにより認識された文字である。
【００８０】
文字画像置き換え部１２７は、外接枠サイズ変更部１２６により外接枠の大きさが変更された置き換え先の文字を、修正対象の文字の位置に合わせて、修正対象の文字と置き換える。より具体的には、文字画像置き換え部１２７は、修正対象の文字のストローク画像が削除されたラベル付き画像に、置き換え先の文字の画像を挿入し、修正対象の文字が置き換え先の文字に置き換えられたラベル付き画像を生成する。
【００８１】
すなわち、本実施形態の外接枠サイズ変更部１２６と、文字画像置き換え部１２７は、修正対象の置き換え先の文字のサイズと位置を合わせる補正を行う補正部である。
【００８２】
データベース更新部１２８は、文字情報データベース１５０を更新する。具体的には、データベース更新部１２８は、文字情報データベース１５０において、修正対象の文字に関連する情報を、置き換え先の文字に関連する情報に更新する。修正対象の文字及び置き換え先の文字に関連する情報とは、例えは各文字のストローク情報、外接枠の座標、筆跡画像等である。データベース更新部１２８の詳細は後述する。
【００８３】
文字列修正部１２９は、認識処理部１３０により認識された認識文字列において、誤認識された文字を、再入力されたストロークから認識された文字へ置き換えた修正文字列を生成する。
【００８４】
次に、図９を参照して本実施形態の文字情報データベース１５０について説明する。図９は、文字情報データベースの一例を説明する図である。
【００８５】
本実施形態の文字情報データベース１５０は、情報の項目として、文字列ＩＤ、認識文字列、筆跡画像、外接枠座標、ストローク情報、ラベル付き画像、交差領域リストＩＤを有する。
【００８６】
本実施形態の文字情報データベース１５０では、項目「文字列ＩＤ」に他の項目が対応付けられている。以下の説明では、項目「文字列ＩＤ」の値と、項目「文字列ＩＤ」の値及び項目「文字列ＩＤ」と対応付けられた他の項目の値とを含む情報を、文字情報と呼ぶ。
【００８７】
項目「文字列ＩＤ」の値は、認識処理部１３０により認識された認識文字列に対して付与される識別子である。項目「認識文字列」の値は、認識処理部１３０により認識された認識文字（テキスト）を示す。
【００８８】
項目「筆跡画像」の値は、ストローク画像を含む筆跡画像（画像ファイル）である。項目「外接枠座標」の値は、認識文字列に含まれる各文字の外接枠を示す座標である。本実施形態では、文字に外接する四角形の枠のことを外接枠と呼び、外接枠の左上の点と、右下の点との２点の座標を外接枠座標とした。
【００８９】
また、項目「外接枠座標」の値である外接枠の座標は、認識文字列における何文字目の外接枠であるかを示す値が対応付けられている。例えば図９に示すように、認識文字列が「富士池」の３文字であった場合、項目「外接枠座標」の値には、１文字目の外接枠座標、２文字目の外接枠座標、３文字目の外接枠座標の３つ外接枠座標が格納される。
【００９０】
項目「ストローク情報」の値は、認識文字列と対応したストローク情報を示す。つまり、項目「ストローク情報」の値には、認識文字列に含まれる文字の画数の合計と同じ個数のストローク情報が含まれる。本実施形態のストローク情報は、手書き入力により入力された１画分のストローク（筆跡）を示す情報であり、２以上の座標が含まれる。すなわち、本実施形態では、ストローク情報に含まれる２以上の座標を結ぶことにより、１画分のストロークが特定される。
【００９１】
尚、本実施形態における座標は、アプリケーション実行部１１０により表示される手書き入力欄２２（図２参照）の左上端を基準点（原点）とした座標とした。
【００９２】
また、以下の説明では、認識文字列に含まれる文字の画数と同数のストローク情報を、ストローク情報群と呼ぶ。また、本実施形態では、ストローク情報群において、ストローク情報は、認識文字列における画数と対応付けられている。具体的には、例えば認識文字列が「富士池」であった場合、文字「士」は、認識文字列における１３画目〜１５画目となる。したがって、文字「士」を形成する３つのストロークのストローク情報には、それぞれ、画数を示す１３〜１５という値が対応付けられている。
【００９３】
項目「ラベル付き画像」の値は、ラベル付き画像生成部１２２により生成されたラベル付き画像（画像ファイル）である。ラベル付き画像の詳細は後述する。
【００９４】
項目「交差領域リストＩＤ」の値は、交差領域リストが生成された際に交差領域リストに付与されるものあり、交差領域リストを識別するための識別子である。
【００９５】
以上のようにの、本実施形態の文字情報データベース１５０では、文字入力の際に、入力の区切れごとに、区切られた部分に対応する文字画像とストロークとを対応付けて記憶しておく。
【００９６】
次に、図１０を参照し、本実施形態の手書き文字修正装置１００の動作を説明する。図１０は、手書き文字修正装置の有する各部の動作を示すシーケンス図である。
【００９７】
はじめに、本実施形態の手書き文字修正装置１００において、認証情報となるストローク情報群と、筆跡画像とを文字情報データベース１５０に登録（格納）するときの動作について説明する。
【００９８】
本実施形態の手書き文字修正装置１００において、アプリケーション実行部１１０は、ユーザからの手書きのストロークの入力を受け付けて（ステップＳ１００１）、受け付けたストロークのストローク情報とストローク画像を取得し、ストローク画像を手書き文字修正処理部１２０へ渡す（ステップＳ１００２）。手書き文字修正処理部１２０は、受け付けたストローク画像にラベルを付与する（ステップＳ１００３）。本実施形態のアプリケーション実行部１１０と手書き文字修正処理部１２０は、ステップＳ１００１とステップＳ１００３の処理を、入力されたストロークの数分行う。
【００９９】
続いて、手書き文字修正処理部１２０は、アプリケーション実行部１１０からのストローク画像の入力が終了すると、取得したストローク画像から形成された筆跡画像と、ラベル付き画像と、交差領域リストとを記憶部１４０へ格納する（ステップＳ１００４）。具体的には、手書き文字修正処理部１２０は、筆跡画像と、ラベル付き画像と、交差領域リストＩＤとを記憶部１４０の文字情報データベース１５０へ格納し、交差領域リストを文字列ＩＤと対応付けて交差領域リストデータベース１６０へ格納する。
【０１００】
続いてアプリケーション実行部１１０は、ストロークの入力が完了すると、ストローク情報群を認識処理部１３０へ渡す（ステップＳ１００５）。認識処理部１３０は、取得したストローク情報群に基づき認識を行い（ステップＳ１００６）、認識文字列と、認識文字列に含まれる各文字の外接枠の外接枠座標とをアプリケーション実行部１１０へ渡す（ステップＳ１００７）。
【０１０１】
続いてアプリケーション実行部１１０は、取得したストローク情報群と、認識文字列と、外接枠座標とを記憶部１４０の文字情報データベース１５０に格納する（ステップＳ１００８）。尚、本実施形態のアプリケーション実行部１１０は、認識文字列を取得した際に、文字列ＩＤを認識文字列と、その他の項目の値とを対応付けても良い。また、アプリケーション実行部１１０は、認識文字列を取得すると、取得した認識文字列を表示させる（ステップＳ１００９）。
【０１０２】
以上が、手書き文字修正装置１００がストローク情報群と、筆跡画像とを登録するときの各部の動作である。
【０１０３】
次に、認識文字列に対する修正指示を受け付けたときの手書き文字修正装置１００の動作について説明する。
【０１０４】
アプリケーション実行部１１０は、表示された認識文字列において修正対象の文字が特定され、置き換え先の文字の手書きによるストロークの入力を受け付けると（ステップＳ１０１０）、ストローク情報とストローク画像とを取得し、ストローク画像を手書き文字修正処理部１２０へ渡す（ステップＳ１０１１）。手書き文字修正処理部１２０は、受け付けたストローク画像にラベルを付与する（ステップＳ１０１２）。本実施形態のアプリケーション実行部１１０と手書き文字修正処理部１２０は、ステップＳ１０１０とステップＳ１０１２の処理を、入力されたストロークの数分行う。
【０１０５】
このように、本実施形態では、置き換え先の文字のストローク画像に対してもラベル付けを行うことで、置き換え先の文字をさらに修正したい場合等に、後述する修正の処理を行うことができる。
【０１０６】
ステップＳ１０１３からステップＳ１０１５の処理は、ステップＳ１００５からステップＳ１００７の処理と同様であるから、説明を省略する。
【０１０７】
ステップＳ１０１５に続いてアプリケーション実行部１１０は、ステップＳ１０１５で取得した認識文字と外接枠座標を手書き文字修正処理部１２０へ渡す（ステップＳ１０１６）。
【０１０８】
続いて、手書き文字修正処理部１２０は、ステップＳ１０１２でラベル付けしたストローク画像と、置き換え先の文字と、置き換え先の文字の外接枠座標とを用いて、修正指示された認識文字列と対応する文字情報を修正する（ステップＳ１０１７）。続いて、手書き文字修正装置は、修正に基づく文字情報の変更を文字情報データベース１５０を反映させる（ステップＳ１０１８）。
【０１０９】
続いて手書き文字修正処理部１２０は、認識文字列において、修正対象の文字が置き換え先の文字に置き換えられた修正文字列を生成し、アプリケーション実行部１１０へ渡す（ステップＳ１０１９）。
【０１１０】
アプリケーション実行部１１０は、取得した修正文字列を表示させる（ステップＳ１０２０）。尚、修正対象の文字が置き換え先の文字に置き換えられた修正文字列を生成する処理は、アプリケーション実行部１１０が行っても良い。
【０１１１】
以上が、手書き文字修正装置１００が認識文字列に対する修正指示を受け付けたときの動作である。
【０１１２】
次に、手書き文字修正装置１００の有する各部の動作について説明する。図１１は、アプリケーション実行部の処理を説明するフローチャートである。
【０１１３】
本実施形態のアプリケーション実行部１１０は、手書きのストロークの入力を受け付けると（ステップＳ１１０１）、ストローク情報とストローク画像とを取得する（ステップＳ１１０２）。続いてアプリケーション実行部１１０は、ストローク情報を保持し、ストローク画像を手書き文字修正処理部１２０に渡す（ステップＳ１１０３）。
【０１１４】
続いてアプリケーション実行部１１０は、次のストロークの入力を受け付けたか否かを判定する（ステップＳ１１０４）。ステップＳ１１０４において、次のストロークの入力を受け付けた場合、アプリケーション実行部１１０は、ステップＳ１１０２へ戻る。
【０１１５】
ステップＳ１１０４において、次のストロークの入力を受け付けない場合、アプリケーション実行部１１０は、所定時間が経過したか否かを判定する（ステップＳ１１０５）。
【０１１６】
ステップＳ１１０５において、所定時間が経過していない場合、アプリケーション実行部１１０は、ステップＳ１１０４へ戻る。
【０１１７】
ステップＳ１１０５において所定時間が経過した場合、アプリケーション実行部１１０は、認識処理部１３０に、保持しているストローク情報群を渡す（ステップＳ１１０６）。
【０１１８】
続いてアプリケーション実行部１１０は、認識処理部１３０から、認識結果の認識文字列を受け取って表示させる（ステップＳ１１０７）。このとき、アプリケーション実行部１１０は、認識処理部１３０から、認識文字列に含まれる文字毎の外接枠座標も取得する。
【０１１９】
続いてアプリケーション実行部１１０は、ストローク情報群と、認識文字列と、認識文字列に含まれる文字毎の外接枠座標と、を記憶部１４０の文字情報データベース１５０へ格納する（ステップＳ１１０８）。尚、アプリケーション実行部１１０は、ステップＳ１１０８において、認識文字列に文字列ＩＤを割り振り、文字列ＩＤと、ストローク情報群、認識文字列、文字毎の外接枠座標とを対応付けて文字情報データベース１５０に格納しても良い。
【０１２０】
次に、手書き文字修正処理部１２０の処理について説明する。本実施形態の手書き文字修正処理部１２０は、文字情報データベース１５０に筆跡画像とストローク情報を登録する処理と、認識文字列に対する修正指示を受けて文字情報を修正する処理とを行う。
【０１２１】
より具体的には、手書き文字修正処理部１２０は、筆跡画像とストローク情報を登録する際には、ストローク画像のラベル付けを行ってラベル付き画像を生成する処理と、ストローク画像同士の交差の有無に応じて交差領域リストを生成する処理と、を行う。
【０１２２】
また、手書き文字修正処理部１２０は、認識文字列に対する修正指示がなされると、修正対象の文字を形成するストローク画像を削除し、置き換え先の文字のストローク画像を取得し、文字情報データベース１５０を更新する。さらに、手書き文字修正処理部１２０は、認識文字列における修正対象の文字を置き換え先の文字に置き換えた修正文字列を生成し、アプリケーション実行部１１０へ渡す。
【０１２３】
以下の図１２では、文字情報データベース１５０に筆跡画像とストローク情報を登録するときの処理について説明する。
【０１２４】
図１２は、手書き文字修正処理部による処理を説明する第一のフローチャートである。図１２の処理は、図１０のステップＳ１００２からステップＳ１００４までの処理の詳細である。また、図１２のステップＳ１２０１からステップＳ１２０６までの処理は、図１０のステップＳ１０１１もステップＳ１０１２の処理の詳細である。
【０１２５】
本実施形態の手書き文字修正処理部１２０は、ストローク取得部１２１により、アプリケーション実行部１１０から渡されるストローク画像を取得する（ステップＳ１２０１）。
【０１２６】
続いて手書き文字修正処理部１２０は、ラベル付き画像生成部１２２により、取得したストローク画像に対してラベルを付与する（ステップＳ１２０２）。具体的には本実施形態のラベル付き画像生成部１２２は、ストローク画像に対し、ストローク画像の入力が開始されてからストローク取得部１２１が取得された順番をラベルとして付与する。
【０１２７】
例えばストローク取得部１２１が最初に取得したストローク画像のラベルは、「１」である。また、ストローク取得部１２１が２番目に取得したストローク画像のラベルは「２」となる。すなわち、本実施形態では、ストローク画像に付与されるラベルは、入力されたストロークが何画目であるかを示す値である。また、本実施形態では、ストローク画像の階調値をラベルの値とすることで、ストローク画像にラベル付与している。ラベルの付与の詳細は後述する。
【０１２８】
続いて手書き文字修正処理部１２０は、交差判定部１２３により、既に取得したストローク画像と、ステップＳ１２０１で取得したストローク画像とが重なっているか否かを判定する（ステップＳ１２０３）。尚、本実施形態の交差判定部１２３は、このとき、例えばアプリケーション実行部１１０が保持しているストローク情報を参照した結果により判定を行っても良い。
【０１２９】
また、本実施形態では、筆跡画像とストローク情報を登録する処理では、手書き文字修正処理部１２０はストローク情報を受け取らないものとしたが、これに限定されない。本実施形態の手書き文字修正処理部１２０は、例えばステップＳ１２０１において、ストローク画像とストローク情報とをアプリケーション実行部１１０から受け取っても良い。
【０１３０】
ステップＳ１２０３において、ストローク画像が重なっている場合、手書き文字修正処理部１２０は、交差領域リスト生成部１２４により、交差領域リストを生成し（ステップＳ１２０４）、後述するステップＳ１２０５へ進む。
【０１３１】
ステップＳ１２０３において、ストローク画像が重なっていない場合、手書き文字修正処理部１２０は、次のストローク画像の入力を受け付けたか否かを判定する（ステップＳ１２０５）。ステップＳ１２０５において、ストローク画像の入力を受け付けた場合、手書き文字修正処理部１２０は、ステップＳ１２０２へ戻る。
【０１３２】
ステップＳ１２０５において、ストローク画像の入力を受け付けない場合、手書き文字修正処理部１２０は、所定時間が経過したか否かを判定する（ステップＳ１２０６）。
【０１３３】
ステップＳ１２０６において、所定時間が経過していない場合、手書き文字修正処理部１２０は、ステップＳ１２０５へ戻る。
【０１３４】
ステップＳ１２０６において所定時間が経過していた場合、手書き文字修正処理部１２０は、筆跡画像とラベル付き画像と、筆跡画像と、交差領域リストとを記憶部１４０へ格納する（ステップＳ１２０７）。
【０１３５】
具体的には、手書き文字修正処理部１２０は、ストローク画像を含む画像を、筆跡画像として文字情報データベース１５０に格納する。また、手書き文字修正処理部１２０は、ラベルが付与されたストローク画像を含む画像を、ラベル付き画像として文字情報データベース１５０に格納する。
【０１３６】
また、手書き文字修正処理部１２０は、交差領域リストに対して交差領域リストＩＤを付与し、交差領域リストＩＤと、筆跡画像とラベル付き画像とを対応付けて文字情報データベース１５０に格納する。交差領域リストＩＤと、筆跡画像とラベル付き画像は、アプリケーション実行部１１０から格納される文字列ＩＤ、認識文字列、ストローク情報群、外接枠座標と対応付けられる。
【０１３７】
さらに、手書き文字修正処理部１２０は、交差領域リストＩＤと、交差領域リストとを対応付けて、記憶部１４０の交差領域リストデータベース１６０に格納する。
【０１３８】
次に、図１３を参照し、本実施形態のラベル付き画像生成部１２２によるラベル付けについて説明する。尚、図１３、図１４に示す画像は、モノクロ画像とした。
【０１３９】
図１３は、ラベル付き画像生成部によるラベル付けを説明する図である。図１３（Ａ）は、ラベル付けされていない筆跡画像の例を示しており、図１３（Ｂ）は、ラベル付けされたラベル付き画像の例を示している。
【０１４０】
図１３（Ａ）では、筆跡画像１３１を８ビットの画像とし、背景領域１３２の階調値を２５５とした場合、ストローク画像の領域の階調値は、２５５以外の所定の値となる。
【０１４１】
例えば、最初に入力されたストロークのストローク画像、つまり、１画目のストローク画像の領域１３３の階調値は、背景領域の階調値以外の値であれば良い。また、２画目のストローク画像の領域１３４の階調値は、通常は領域１３３の階調値と同じ値とした。
【０１４２】
よって、筆跡画像１３１では、ストロークの入力が開始されてから終了するまでの間に、２１画のストロークが入力された場合、図１３（Ａ）に示すように、全てのストローク画像に対応する領域は、同じ階調値で示される画像となる。
【０１４３】
これに対し、ラベル付き画像生成部１２２は、図１３（Ｂ）に示すように、１画目のストローク画像の領域１３３における画素の階調値を、領域１３３に対応するストローク画像の画数を示す「１」とし、階調値である「１」を１画目のストローク画像のラベルとして用いる。
【０１４４】
同様に、ラベル付き画像生成部１２２は、２画目のストローク画像の領域１３４における画素の階調値を、領域１３４に対応するストローク画像の画数を示す「２」とし、階調値である「２」を２画目のストローク画像のラベルとして用いる。
【０１４５】
本実施形態のラベル付き画像生成部１２２は、以上のようにして、ストローク画像が入力される度に、ストローク画像が入力の開始から何番目に入力されたか否かを示す値をストローク画像の領域における画素の階調値とし、この階調値をストローク画像のラベルとする。したがって、図１３（Ｂ）に示すラベル付き画像１３５は、２１画全てのストローク画像の階調値が異なる画像となる。
【０１４６】
本実施形態のラベル付き画像１３５は、例えばビットマップ形式の画像として、文字情報データベース１５０に格納される。
【０１４７】
このように、本実施形態では、ストローク画像の画数を示す値を、ストローク画像の領域内の画素の階調値とし、且つこの階調値を、ストローク画像を識別するためのラベルとして用いる。よって、本実施形態では、ラベル付き画像におけるストローク画像のラベル（階調値）を参照することで、ラベルと対応するストローク画像が何画目のストロークであるかを判定することができる。
【０１４８】
尚、本実施形態では、筆跡画像を形成するストローク画像の階調値は同一の値としたが、これに限定されない。筆跡画像を形成するストローク画像は、例えば筆圧等に応じた濃淡があっても良い。
【０１４９】
次に、交差領域リストについて説明する。
【０１５０】
本実施形態の手書き文字修正処理部１２０は、交差判定部１２３により、ストローク画像が入力されると、ラベル付き画像生成部１２２によりラベル付けされたストローク画像が、他のストローク画像と重なっているかを判定する。言い換えれば、交差判定部１２３は、ラベル付けされたストローク画像が他のラベル付けされたストローク画像と交差しているか否かを判定している。
【０１５１】
そして、手書き文字修正処理部１２０は、交差判定部１２３により交差していると判定されると、交差領域リスト生成部１２４により、ストローク画像が交差している領域を特定する交差領域リストを生成する。尚、交差領域リストは、文字列ＩＤ毎に生成され、文字列ＩＤと対応付けられて交差領域リストデータベース１６０に格納される。
【０１５２】
図１４は、ストローク画像の交差について説明する図である。図１４において、交差判定部１２３は、１１番目のストローク画像が入力されたとき、１１番目に入力されたストローク画像（１１画目のストローク画像）が１０番目に入力されたストローク画像（１０画目のストローク画像）と交差していると判定する。
【０１５３】
より具体的には、交差判定部１２３は、１１画目のストローク画像を示す線領域１４１は、一部が１０画目のストローク画像を示す線領域１４２と重なっていると判定する。
【０１５４】
交差領域リスト生成部１２４は、２つのストローク画像が交差していると判定されると、線領域１４１と線領域１４２とが重なる領域１４３の座標を、代表座標として取得する。具体的には、交差領域リスト生成部１２４は、１１画目のストローク画像のストローク情報と、１０画目のストローク画像のストローク情報とにおいて、一致する座標を代表座標として取得しても良い。尚、以下の説明では、複数のストローク画像の領域が重なる領域を交差領域と呼ぶ。
【０１５５】
また、交差領域リスト生成部１２４は、線領域１４１と対応するストローク画像のラベルの値「１１」と、線領域１４２と対応するストローク画像のラベルの値「１０」とを取得し、２つのラベルの値の合計値を算出する。そして、交差領域リスト生成部１２４は、ラベルの値の合計値と、代表座標と、重なっているストローク画像のラベルとを対応付けて交差領域リストに格納する。
【０１５６】
同様に、交差判定部１２３は、１２番目に入力されたストローク画像が、９番目に入力されたストローク画像と重なると判定する。そこで、交差領域リスト生成部１２４は、１２画目のストローク画像を示す線領域１４４と、９画目のストローク画像を示す線領域１４５の交差領域１４６の代表座標を取得し、上述したように交差領域リストに格納する。
【０１５７】
また、交差判定部１２３は、１４番目のストローク画像が入力される、１４番目に入力されたストローク画像を示す線領域１４７が、１３番目に入力されたストローク画像を示す線領域１４８と重なると判定する。よって、交差領域リスト生成部１２４は、線領域１４７と線領域１４８との交差領域１４９の代表座標を取得し、上述したように交差領域リストに格納する。
【０１５８】
次に、図１５を参照し、本実施形態の交差領域リストデータベース１６０について説明する。図１５は、交差領域リストデータベースの一例を示す図である。
【０１５９】
本実施形態の交差領域リストデータベース１６０は、文字列ＩＤ毎に生成された交差領域リスト１６１、１６２、１６３を含む。尚、交差領域リストデータベース１６０には、任意の数の交差領域リストが含まれて良い。
【０１６０】
図１５に示す交差領域リスト１６１は、例えば図９に示す文字情報データベース１５０において、文字列ＩＤ「１」と対応けられた文字情報に含まれる交差領域リストＩＤ「１００」の交差領域リストである。
【０１６１】
交差領域リスト１６１は、情報の項目として、ラベル合計値、代表座標、ストローク画像のラベルを有する。交差領域リスト１６１において、項目「ラベル合計値」と、その他の項目とが対応付けられている。以下の説明では、項目「ラベル合計値」の値と、項目「ラベル合計値」の値と対応付けられたその他の項目の値と、を含む情報を交差領域情報と呼ぶ。
【０１６２】
項目「ラベル合計値」の値は、図１４で説明したように、交差領域に線領域の一部が含まれるストローク画像のラベルの値の合計値である。つまり、項目「ラベル合計値」の値は、交差領域において重なっているストローク画像のラベルの値の合計である。項目「代表座標」の値は、交差領域の位置を特定する座標である。
【０１６３】
尚、本実施形態では、項目「代表座標」の値は、１つの座標としたが、これに限定されない。例えば、交差領域の面積が広い場合には、交差領域の外郭を示す複数の座標等が、項目「代表座標」の値として格納されても良い。
【０１６４】
項目「ストローク画像のラベル」の値は、交差領域に領域の一部が含まれるストローク画像毎のラベルの値を示す。したがって、項目「ストローク画像のラベル」の値には、複数のストローク画像のラベルの値が含まれる。また、項目「ラベル合計値」の値は、項目「ストローク画像のラベル」の値に含まれるラベルの合計値である。
【０１６５】
図１６に示す交差領域リスト１６１では、ラベル合計値「２１」を含む交差領域情報は、代表座標（ｘ１，ｙ１）、ストローク画像のラベル「１０」，「１１」を含む。したがって、ラベル合計値「２１」を含む交差領域情報は、座標（ｘ１，ｙ１）において、１０番目に入力されたストローク画像と１１番目に入力されたストローク画像とが、重なっていることを示している。
【０１６６】
また、交差領域リスト１６１において、ラベル合計値「２１」を含む他の交差領域情報は、座標（ｘ２，ｙ２）において、９番目に入力されたストローク画像と１２番目に入力されたストローク画像とが、重なっていることを示している。このように、本実施形態では、ラベル合計値と代表座標とが対応付けられているため、ラベル合計値が同じ値であっても、異なる交差領域であることがわかる。
【０１６７】
また、交差領域リスト１６１において、ラベル合計値「２７」を含む交差領域情報は、座標（ｘ３，ｙ３）において、１３番目に入力されたストローク画像と１４番目に入力されたストローク画像とが、重なっていることを示している。
【０１６８】
次に、図１６を参照して本実施形態の認識処理部１３０の処理について説明する。図１６は、認識処理部の処理を説明するフローチャートである。図１６の処理は、図１０のステップＳ１００６及びステップＳ１０１４の処理の詳細を示している。
【０１６９】
本実施形態の認識処理部１３０は、アプリケーション実行部１１０からストローク情報群を取得する（ステップＳ１６１）。続いて、認識処理部１３０は、ストローク情報群から文字認識を行い、認識文字列と、認識文字列に含まれる各文字の外接枠座標とを取得する（ステップＳ１６２）。尚、本実施形態の外接枠座標には、認識文字列の何文字目の外接枠であるかを示す情報を含む。
【０１７０】
続いて認識処理部１３０は、認識文字列と、文字毎の外接枠座標と、をアプリケーション実行部１１０に渡す（ステップＳ１６３）。
【０１７１】
本実施形態では、アプリケーション実行部１１０は、認識文字列を受け取ると、手書き文字修正装置１００の画面の認識結果表示欄２３に、受け取った認識文字列を表示させる（図２参照）。
【０１７２】
次に、認識文字列に対する修正指示を受け付けた際の手書き文字修正処理部１２０の処理について説明する。
【０１７３】
本実施形態のアプリケーション実行部１１０は、認識結果表示欄２３に表示された認識文字列において、ユーザにより文字の選択を受け付けると、選択された文字を修正対象の文字に特定する。
【０１７４】
次に、アプリケーション実行部１１０は、文字の選択後に手書き入力欄２２に入力されたストロークにより認識処理部１３０が認識した結果の文字を、置き換え先の文字とする。そして、アプリケーション実行部１１０は、認識文字列の修正指示と共にも修正対象の文字の位置を示す情報と、置き換え先の文字と、置き換え先の文字と対応するストローク情報群と、外接枠座標とを、手書き文字修正処理部１２０に送る。尚、アプリケーション実行部１１０は、修正対象の位置を示す情報として、選択された文字が認識文字列の何文字の文字であるかを手書き文字修正処理部１２０に通知しても良い。
【０１７５】
以下の図１７では、認識文字列に対する修正指示を受け付けた際の手書き文字修正処理部１２０の処理について説明する。
【０１７６】
図１７は、手書き文字修正処理部による処理を説明する第二のフローチャートである。図１７の処理は、図１０のステップＳ１０１６からステップＳ１０１９までの処理の商才を示している。
【０１７７】
本実施形態の手書き文字修正処理部１２０は、アプリケーション実行部１１０から認識文字列の修正指示を受け付けたか否かを判定する（ステップＳ１７０１）。ステップＳ１７０１において、修正指示を受け付けない場合、手書き文字修正処理部１２０は、修正指示を受け付けるまで待機する。
【０１７８】
ステップＳ１７０１において、修正指示を受け付けた場合、手書き文字修正処理部１２０は、ストローク画像削除部１２５により、アプリケーション実行部１１０から、修正対象の文字の位置を示す情報と、置き換え先の文字と、置き換え先の文字と対応するストローク情報群と、外接枠座標とを、取得する（ステップＳ１７０２）。
【０１７９】
続いて、手書き文字修正処理部１２０は、ストローク画像削除部１２５により、文字情報データベース１５０を参照し、修正対象の文字の外接枠が、隣接する文字の外接枠の領域と重なっているか否かを判定する（ステップＳ１７０３）。
【０１８０】
ステップＳ１７０３において、隣接する文字の外接枠と重なっていない場合、ストローク画像削除部１２５は、後述するステップＳ１７０９へ進む。
【０１８１】
ステップＳ１７０３において、隣接する文字の外接枠と重なっている場合、ストローク画像削除部１２５は、文字情報データベース１５０において認識文字列と対応する文字列ＩＤと対応付けられたラベル付き画像と、交差領域リストデータベース１６０において同じ文字列ＩＤと対応付けられた交差領域リストと、を参照する（ステップＳ１７０４）。
【０１８２】
続いてストローク画像削除部１２５は、交差領域リストの項目「ストローク画像のラベル」の値に、修正文字に含まれるストローク画像のラベルの値が含まれるか否かを判定する（ステップＳ１７０５）。
【０１８３】
ステップＳ１７０５において、該当するラベルの値が含まれない場合、ストローク画像削除部１２５は、後述するステップＳ１７０９へ進む。
【０１８４】
ステップＳ１７０５において、該当するラベルの値が含まれる場合、手書き文字修正処理部１２０は、データベース更新部１２８により、ステップＳ１７０４で参照された交差領域リストを更新する。ステップＳ１７０６からステップＳ１７０８までの処理は、交差領域リストを更新する処理である。
【０１８５】
データベース更新部１２８は、交差領域リストから、項目「ストローク画像のラベル」の値に、修正文字に含まれるストローク画像のラベルの値が含まれる交差領域情報を抽出する（ステップＳ１７０６）。
【０１８６】
続いてデータベース更新部１２８は、抽出した交差領域情報のラベル合計値から、修正文字に含まれるストローク画像のラベルの値を減算する（ステップＳ１７０７）。そして、データベース更新部１２８は、抽出した交差領域情報の項目「ストローク画像のラベル」の値から、修正文字に含まれるストローク画像のラベルの値を削除する（ステップＳ１７０８）。以上が、交差領域リストを更新する処理である。
【０１８７】
続いて、手書き文字修正処理部１２０は、ストローク画像削除部１２５により、認識文字列と対応する文字列ＩＤと対応付けられたラベル付き画像から、修正対象の文字のストローク画像を削除する（ステップＳ１７０９）。
【０１８８】
続いて手書き文字修正処理部１２０は、外接枠サイズ変更部１２６により、ステップＳ１７０２で取得した認識文字の外接枠の大きさを、修正対象の文字の外接枠の大きさに調整する（ステップＳ１７１０）。すなわち、外接枠サイズ変更部１２６は、置き換え先の文字の画像の大きさを調整する。
【０１８９】
続いて手書き文字修正処理部１２０は、文字画像置き換え部１２７により、ラベル付き画像において、修正対象の文字の画像を削除した箇所に、ステップＳ１７１０で大きさが調整された文字の画像を挿入し、修正対象の文字の画像を置き換え先の文字の画像に置き換える（ステップＳ１７１１）。
【０１９０】
続いて手書き文字修正処理部１２０は、データベース更新部１２８により、文字情報データベース１５０と、交差領域リストデータベース１６０とを更新する（ステップＳ１７１２）。具体的には、データベース更新部１２８は、文字情報データベース１５０において、文字列ＩＤと対応する文字情報と交差領域リストとを更新する。
【０１９１】
続いて手書き文字修正処理部１２０は、認識文字列において、修正対象の文字を置き換え先の文字に置き換えた修正文字列をアプリケーション実行部１１０へ渡す（ステップＳ１７１３）。
【０１９２】
アプリケーション実行部１１０は、手書き文字修正処理部１２０から修正文字列を受け取ると、認識結果表示欄２３に修正文字列を表示させる（図１０のステップＳ１０２０参照）。
【０１９３】
以下に、本実施形態のストローク画像の削除と、交差領域リストの更新の処理を具体的に説明する。図１８は、交差領域リストの更新を説明する図である。図１８で説明する処理は、データベース更新部１２８が、図１７のステップＳ１７０６からステップＳ１７０８で行う処理を示している。
【０１９４】
図１８の例では、修正対象の文字「士」は、１３番目に入力されたストローク画像１４７、１４番目に入力されたストローク画像１４８、１５番目に入力されたストローク画像１４９を含む。
【０１９５】
よって、ストローク画像削除部１２５は、まず、交差領域リストにおいて、項目「重なっているストローク」の値に、ストローク画像１４７のラベル「１３」が含まれる交差領域情報を抽出する。
【０１９６】
図１８に示す交差領域リスト１６１では、ラベル合計値「２７」の交差領域情報１６２に、ラベル「１３」が含まれる。よって、ストローク画像削除部１２５は、ラベル合計値「２７」の交差領域情報１６２を抽出する。
【０１９７】
そして、ストローク画像削除部１２５は、ラベル合計値「２７」から、ストローク画像１４７のラベルの値「１３」を減算する。また、ストローク画像削除部１２５は、項目「重なっているストローク」の値から、ストローク画像１４７のラベルの値「１３」を削除する。
【０１９８】
本実施形態のデータベース更新部１２８は、この処理により、交差領域リスト１６１を更新する。
【０１９９】
次に、図１９を参照して、ストローク画像の削除についてさらに説明する。図１９は、ストローク画像の削除を説明する図である。図１９（Ａ）は、削除対象のストローク画像の検出を説明する図である。図１９（Ｂ）は、１３画目のストローク画像の削除を説明する図である。図１９（Ｃ）は、１４画目のストローク画像の削除を説明する図である。
【０２００】
図１９では、図１７のステップＳ１７０９においてストローク画像削除部１２５が行う処理を示している。
【０２０１】
本実施形態のストローク画像削除部１２５は、文字情報データベース１５０を参照し、修正対象の文字のストローク情報が示す座標から、ラベル付き画像において、修正対象の文字のストローク画像を示す線領域を検出する。そして、ストローク画像削除部１２５は、ラベル付き画像において、検出した線領域内の画素の階調値から、線領域と対応するストローク画像のラベルの値を減算することで、ストローク画像を削除する。
【０２０２】
図１９（Ａ）に示すように、ストローク画像削除部１２５は、文字情報データベース１５０の認識文字列「富士池」と対応するストローク情報から、まずは１３画目のストローク情報を取得する。そして、ストローク画像削除部１２５は、ラベル付き画像において、取得した１３画目のストローク情報に含まれる座標から、ストローク画像１４７の線領域を検出する。
【０２０３】
また、ストローク画像削除部１２５は、検出したストローク画像１４７の線領域内の画素の階調値から、ストローク画像１４７のラベルの値「１３」を減算する。
【０２０４】
本実施形態のラベル付き画像では、ストローク画像は、ストローク画像が入力された順番を示す値をストローク画像の階調値として描画している。
【０２０５】
よって、１３画目のストローク画像を示す線領域内の画素の階調値は、ラベルの値を減算すると０となり、図１９（Ｂ）に示すように、ストローク画像１４７が削除される。
【０２０６】
尚、本実施形態におけるストローク画像の削除（階調値が０）とは、削除対象のストローク画像内の画素の階調値を、ラベル付き画像の背景領域の階調値と同じ値にすることである。
【０２０７】
このとき、ストローク画像１４７とストローク画像１４８は、交差領域１４９において交差している。交差領域１４９は、交差領域情報１６２において、代表座標（ｘ３，ｙ３）で示される領域である。
【０２０８】
交差領域１４９の階調値は、線領域１４７の階調値と線領域１４８の階調値との合計値である。よって、交差領域１４９の階調値は、線領域１４７の階調値を減算することで線領域１４９の階調値となる。
【０２０９】
つまり、交差領域１４９の階調値は、交差領域情報１６２のラベル合計値「２７」からストローク画像１４７のラベルの値「１３」を減算した値「１４」となる。この値「１４」は、ストローク画像１４７と重なっていたストローク画像１４８の階調値であり、交差領域１４９において、ストローク画像１４８はそのまま残る。
【０２１０】
このように、本実施形態のストローク画像削除部１２５は、ストローク画像の線領域の階調値を減算してストローク画像を削除する。よって、本実施形態によれば、ストローク画像同士が重なっている交差領域において、削除対象のストローク画像を判別でき、削除対象ではないストローク画像をそのまま残すことができる。
【０２１１】
また、本実施形態では、ストロークが入力された際に、ストローク画像毎にラベル付けを行う。よって、本実施形態では、例えば二つのストローク画像がつながった状態であっても、それぞれのストローク画像を判別することができる。
【０２１２】
図２０は、ラベル付けの効果を説明する図である。図２０（Ａ）は、筆跡画像の一例を示しており、図２０（Ｂ）は、筆跡画像の一部を拡大した例である。
【０２１３】
本実施形態では、例えば筆跡画像４３の領域２０１に示されるように、複数のストローク画像が重なった場合でも、個々のストローク画像を判別することができる。
【０２１４】
例えば、図２０（Ａ）、（Ｂ）に示すように、ストローク画像２２１と、ストローク画像２２２とは、領域２０１において一部が重なった状態でつながっている。
【０２１５】
本実施形態では、ラベル付けを行う際に、ストローク画像２２１とストローク画像２２２とが重なっている領域を交差領域リストに登録することで、ストローク画像２２１とストローク画像２２２とを判別することができる。
【０２１６】
したがって、本実施形態では、例えば修正対象の文字のストローク画像の一部が、隣接する文字のストローク画像とつながっている場合でも、隣接する文字の画像に影響を及ぼさずに、修正対象の文字の画像のみを削除することができる。
【０２１７】
次に、本実施形態の外接枠サイズ変更部１２６の処理について説明する。図２１は、外接枠サイズ変更部の処理を説明する図である。図２１では、図１７のステップＳ１７１０において外接枠サイズ変更部１２６が行う処理と、ステップＳ１７１１で文字画像置き換え部１２７が行う処理と、を示している。
【０２１８】
本実施形態の外接枠サイズ変更部１２６は、置き換え先の文字の外接枠座標を取得する。図２１では、置き換え先の文字の外接枠座標を（ｘ２１，ｙ２１），（ｘ２２，ｙ２２）とした。
【０２１９】
そして、外接枠サイズ変更部１２６は、置き換え先の文字のラベル付き画像２５の外接枠の高さｈ２と幅ｗ２とを求める。外接枠の高さ（文字の高さ）ｈ２は、ｙ２２−ｙ２１により求められる。また、外接枠の幅（文字の幅）ｗ２は、ｘ２２−ｘ２１により求められる。
【０２２０】
次に、外接枠サイズ変更部１２６は、文字情報データベース１５０の外接枠座標を参照し、修正対象の文字の外接枠座標を求める。図２１の例では、修正対象の文字の外接枠座標を（ｘ１１，ｙ１１），（ｘ１２，ｙ１２）とした。したがって、修正対象の文字の外接枠の高さｈ１はｙ１２−ｙ１１であり、幅ｗ１はｘ１２−ｘ１１である。
【０２２１】
次に、外接枠サイズ変更部１２６は、ラベル付き画像２５の外接枠を、高さｈ２，幅ｗ２から高さｈ１，幅ｗ１へ変更する。
【０２２２】
本実施形態では、このように、外接枠の高さと幅を、修正対象の文字の外接枠の高さと幅に合わせた置き換え文字のラベル付き画像２５′を、文字画像置き換え部１２７により、修正対象の文字の画像が削除されたラベル付き画像２４′に合成する。
【０２２３】
このとき、本実施形態の文字画像置き換え部１２７は、ラベル付き画像２５′の外接枠座標が、修正対象の文字の外接枠と一致するように配置する。つまり、ラベル付き画像２５′の外接枠座標は、（ｘ１１，ｙ１１），（ｘ１２，ｙ１２）となる。
【０２２４】
本実施形態では、以上のようにして修正対象の文字の画像を置き換え先の文字の画像に置き換えることで、ラベル付き画像２９を生成する。
【０２２５】
本実施形態のラベル付き画像２９では、修正対象の文字が、修正対象の文字と同じ大きさの置き換え先の文字の画像が、修正対象の文字が配置された位置に配置されている。したがって、本実施形態によれば、修正前の筆跡の特徴を維持した状態で、ラベル付き画像の一部を変更することができる。
【０２２６】
次に、本実施形態のデータベース更新部１２８による文字情報データベース１５０の更新の処理について説明する。図２２は、データベース更新部の処理を説明する図である。
【０２２７】
図２２では、図１７のステップＳ１７１２においてデータベース更新部１２８が行う処理を示している。
【０２２８】
本実施形態のデータベース更新部１２８は、置き換え先の文字の画像が修正対象の文字の画像が削除されたラベル付き画像と合成されると、置き換え先の文字と対応するストローク情報群を、合成後の置き換え先の文字の画像と対応するストローク情報群に変換する。そして、データベース更新部１２８は、文字情報データベース１５０において、修正対象の文字のストローク情報群を変換後のストローク情報群に置き換える。
【０２２９】
本実施形態では、以下の式（１）により、修正対象の文字のストローク情報群に含まれる座標を、合成後の置き換え先の文字の画像と対応するストローク情報群に変換する。
【０２３０】
ｘ座標：ｘ＿ｎｅｗ＝（ｘ＿ｏｌｄ−ｘ２１）×ｗ１／ｗ２＋ｘ１１
ｙ座標：ｙ＿ｎｅｗ＝（ｙ＿ｏｌｄ−ｙ２１）×ｈ１／ｈ２＋ｙ１１    式（１）
尚、ｘ＿ｎｅｗ，ｙ＿ｎｅｗは、変換後の座標を示し、ｘ＿ｏｌｄ，ｙ＿ｏｌｄは修正対象の文字のストローク情報群に含まれる座標を示している。また、式（１）において、（ｘ２１，ｙ２１）は、置き換え先の文字の外接枠の左上の座標であり、（ｘ１１，ｙ１１）は、修正対象の文字の外接枠の左上の座標である。
【０２３１】
また、本実施形態のデータベース更新部１２８は、文字画像置き換え部１２７がラベル付き画像２４′にラベル付き画像２５′を合成したラベル付き画像２９を生成すると（図２１参照）、ラベル付き画像２９の複製を生成する。そして、データベース更新部１２８は、ラベル付き画像２９の複製に含まれるストローク画像の階調値を、筆跡画像と対応するストローク画像の階調値に変更し、ストローク画像毎のラベルがついていない筆跡画像とする。
【０２３２】
つまり、データベース更新部１２８は、修正対象の文字の画像が、置き換え先の文字の画像に置き換えられた筆跡画像を生成する。そして、データベース更新部１２８は、文字情報データベース１５０において、修正指示がなされる前の筆跡画像をラベル付き画像２９の複製から生成した筆跡画像に置き換える。
【０２３３】
本実施形態では、以上の処理により、筆跡画像も、修正指示が反映された筆跡画像に置き換えることができる。
【０２３４】
このように、本実施形態では、入力されたストロークの認識結果である認識文字列において、修正対象の文字が特定されると、認識文字列を含む文字情報のうち、修正対象の文字に関する情報のみを変更することができる。
【０２３５】
すなわち、本実施形態では、修正指示を受け付けた認識文字列を含む文字情報において、認識文字列と、筆跡画像と、外接枠座標と、ストローク情報群と、ラベル付き画像のそれぞれについて、修正対象の文字の部分のみを修正することができる。
【０２３６】
したがって、本実施形態によれば、文字情報の一部の文字を修正した場合に、他の文字の情報に影響を与えることなく該文字情報を修正するこができる。
【０２３７】
尚、本実施形態の手書き入力とは、ユーザの指による入力だけでなく、スタイラス等の棒状の筆記具等により入力されるものであっても良い。
【０２３８】
（第二の実施形態）
以下に図面を参照して第二の実施形態について説明する。第二の実施形態は、手書き文字修正装置に手書き文字修正プログラム２０と、認識プログラム３０とが実装されており、アプリケーション１０が他の装置に実装されている点が第一の実施形態と相違する。したがって、以下の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０２３９】
図２３は、第二の実施形態の手書き文字修正装置を説明する図である。本実施形態の手書き文字修正装置１００Ａは、手書き文字修正プログラム２０と、認識プログラム３０とを有する。また、手書き文字修正装置１００Ａは、ネットワークＮを介して端末装置２００と接続される。端末装置２００は、アプリケーション１０を有する。
【０２４０】
つまり、本実施形態の手書き文字修正装置１００Ａは、手書き文字修正処理部と、認識処理部を有し、端末装置２００はアプリケーション実行部を有する。
【０２４１】
本実施形態の手書き文字修正装置１００Ａ及び端末装置２００の有する各部の動作は、図１０に示した通りである。
【０２４２】
したがって、本実施形態では、第一の実施形態と同様の効果を得ることができる。また、本実施形態では、手書き文字修正プログラム２０による処理と、認識プログラム３０による処理が、アプリケーション１０による処理する端末装置２００とは別の装置で実行される。したがって、本実施形態によれば、アプリケーション１０を実行する端末装置２００の処理の負荷を軽減できる。
【０２４３】
（第三の実施形態）
以下に図面を参照して第三の実施形態について説明する。第三の実施形態は、手書き文字修正装置にアプリケーション１０と手書き文字修正プログラム２０とが実装されており、認識プログラム３０が他の装置に実装されている点が第一の実施形態と相違する。したがって、以下の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０２４４】
図２４は、第三の実施形態の手書き文字修正装置を説明する図である。本実施形態の手書き文字修正装置１００Ｂは、アプリケーション１０と、手書き文字修正プログラム２０とを有する。また、手書き文字修正装置１００Ａは、ネットワークＮを介してサーバ装置３００と接続される。サーバ装置３００は、認識プログラム３０を有する。
【０２４５】
つまり、本実施形態の手書き文字修正装置１００Ｂは、アプリケーション実行部と、手書き文字修正処理部とを有し、サーバ装置３００は、認識処理部を有する。
【０２４６】
本実施形態の手書き文字修正装置１００Ｂ及びサーバ装置３００の有する各部の動作は、図１０に示した通りである。
【０２４７】
したがって、本実施形態では、第一の実施形態と同様の効果を得ることができる。また、本実施形態では、手書き文字修正装置１００Ｂにおいて認識処理を行わず、サーバ装置３００において認識処理を実行する。したがって、本実施形態の手書き文字修正装置１００Ｂでは、処理の負荷を軽減することができる。
【０２４８】
開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正し、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する、
処理をコンピュータに実行させることを特徴とする手書き文字修正プログラム。
（付記２）
前記文字画像は、
手書き入力により入力されたストロークのストローク画像毎に、前記手書き入力の入力に応じ、前記ストロークが入力された順番を示す値を前記ストローク画像に対応付けたラベル付き画像により生成される、ことを特徴とする付記１記載の手書き文字修正プログラム。
（付記３）
前記対応付けは、
前記ストロークが入力された順番を示す値を、前記ストローク画像の階調値とする処理であることを特徴とする付記２記載の手書き文字修正プログラム。
（付記４）
複数のストローク画像が重なっているとき、
前記複数のストローク画像のそれぞれと対応付けられた前記値の合計値と、
前記複数のストローク画像が重なっている領域を示す座標と、
前記複数のストローク画像のそれぞれと対応付けられた複数の前記値と、を対応付けたリストを前記記憶部に格納する、
処理を前記コンピュータに実行させることを特徴とする付記２又は３記載の手書き文字修正プログラム。
（付記５）
前記更新する処理は、
前記記憶部に格納された、前記複数の文字の文字画像を形成する前記ラベル付き画像から、前記特定の文字のストローク画像から生成された前記ラベル付き画像を削除し、
前記置換文字のストローク画像から生成されたラベル付き画像を、削除した前記ラベル付き画像と対応する位置へ挿入する、
処理である付記２乃至４の何れか一項に記載の手書き文字修正プログラム。
（付記６）
前記更新する処理は、
前記記憶部に記憶された前記複数の文字のストローク情報における前記特定の文字のストローク情報を、前記補正後の前記置換文字のストローク情報に置き換える、ことを特徴する付記２乃至５の何れか一項に記載の手書き文字修正プログラム。
（付記７）
前記特定の文字の指定がなされると、
前記特定の文字の文字画像の外接枠が、前記特定の文字と隣接する文字の文字画像の外接枠と重なるか否かを判定し、
外接枠が重なるとき、
前記特定の文字のストローク画像と対応付けられた前記値が、前記リストの前記複数の前記値に含まれるか否かを判定し、
前記値が前記リストの前記複数の前記値に含まれるとき、
前記リストにおいて、
前記複数の前記値と対応付けられた前記合計値から、前記特定の文字のストローク画像と対応付けられた前記値を減算し、
前記複数の前記値から前記特定の文字のストローク画像と対応付けられた前記値を削除する、ことを特徴とする付記４記載の手書き文字修正プログラム。
（付記８）
前記補正する処理は、
前記置換文字の文字画像の外接枠の高さと幅を、前記特定の文字の文字画像の外接枠の高さと幅と一致させ、
前記置換文字の文字画像の外接枠の座標を、前記特定の文字の文字画像の外接枠の座標と一致させる、ことを特徴する付記１乃至６の何れか一項に記載の手書き文字修正プログラム。
（付記９）
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正する補正部と、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する更新部と、
を有することを特徴とする手書き文字修正装置。
（付記１０）
コンピュータによる手書き文字修正方法であって、該コンピュータが、
手書き入力により入力された複数の文字のうちの特定の文字の指定と、前記特定の文字を置換する置換文字の入力に応じ、記憶部に記憶された前記複数の文字の文字画像及び／又はストローク情報から生成された、前記特定の文字に対応する座標情報を参照して、前記置換文字の文字画像及び／又はストローク情報を補正し、
前記複数の文字の文字画像及び／又はストローク情報を、前記置換文字の補正後の文字画像及び／又はストローク情報を用いて更新する、ことを特徴とする手書き文字修正方法。
【０２４９】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から
逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２５０】
１０  アプリケーション
２０  手書き文字修正プログラム
３０  認識プログラム
１００、１００Ａ、１００Ｂ  手書き文字修正装置
１１０  アプリケーション実行部
１２０  手書き文字修正処理部
１２１  ストローク取得部
１２２  ラベル付き画像生成部
１２３  交差判定部
１２４  交差領域リスト生成部
１２５  ストローク画像削除部
１２６  外接枠サイズ変更部
１２７  文字画像置き換え部
１２８  データベース更新部
１３０  認識処理部
１５０  文字情報データベース
１６０  交差領域リストデータベース
２００  端末装置
３００  サーバ装置
【図１】
0006519361.tif 000002
【図２】
0006519361.tif 000003
【図３】
0006519361.tif 000004
【図４】
0006519361.tif 000005
【図５】
0006519361.tif 000006
【図６】
0006519361.tif 000007
【図７】
0006519361.tif 000008
【図８】
0006519361.tif 000009
【図９】
0006519361.tif 000010
【図１０】
0006519361.tif 000011
【図１１】
0006519361.tif 000012
【図１２】
0006519361.tif 000013
【図１３】
0006519361.tif 000014
【図１４】
0006519361.tif 000015
【図１５】
0006519361.tif 000016
【図１６】
0006519361.tif 000017
【図１７】
0006519361.tif 000018
【図１８】
0006519361.tif 000019
【図１９】
0006519361.tif 000020
【図２０】
0006519361.tif 000021
【図２１】
0006519361.tif 000022
【図２２】
0006519361.tif 000023
【図２３】
0006519361.tif 000024
【図２４】
0006519361.tif 000025