(57)【要約】      （修正有）【課題】枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識（自由筆記文字列認識）を行う。【解決手段】入力文字列パターン入力部５により枠なしで自由な方向で入力された文字列のパターンが入力される。入力された文字列パターンに含まれる各文字は、文字サイズ推定処理部１１により、文字サイズを推定される。つぎに、文字切出し処理部１２は、例えば、改行、筆記方向変化点に基づいて文字列の筆記方向の推定を行う。さらに、文字切出し処理部１２は、推定された筆記方向に基づいて仮分割及び仮分割修正を行う。つぎに、最尤文字列探索処理部１３では、文字切出しの行われた文字列に対して、認識エンジン部１４及び最尤文字列探索部１５により文字認識を行うと共に、この文字認識の結果を認識結果出力部６に出力する。認識結果出力部６は、この認識結果をアプリケーション３の表示画面上に表示するために出力する。【選択図】図１
2007172639.tif 000002
【特許請求の範囲】
【請求項１】
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第１文字列構成要素へ分割する分割ステップと、
前記分割ステップにより分割された第１文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する文字方向推定ステップと、
前記文字方向推定ステップにより推定された文字方向が上向きになるように、該第１文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第１文字列構成要素を回転して、第２文字列構成要素を得る回転ステップと、
該第２文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと
を含む文字認識方法。
【請求項２】
文字方向に対する該第２文字列構成要素ごとの筆記方向を、少なくとも４方向に量子化する量子化ステップをさらに含む請求項１に記載の文字認識方法。
【請求項３】
前記量子化ステップにより量子化された筆記方向に沿って、文字列の仮分割を行う仮分割ステップと、
前記仮分割ステップにより仮分割候補とされた文字列の各文字要素を、各文字要素の重なり具合に応じて、分割又は統合を行う仮分割修正ステップと
をさらに含む請求項１又は２に記載の文字認識方法。
【請求項４】
前記文字サイズ推定ステップで求めた各文字要素の文字サイズに基づいて、第１文字列構成要素ごとに文字サイズを推定する文字サイズ詳細推定ステップと
をさらに含む請求項１乃至３のいずれかに記載の文字認識方法。
【請求項５】
該第２文字列構成要素ごとに平均文字サイズを求めるステップと、
平均文字サイズに近い出力文字フォントのポイント数を求めるステップと、
平均文字間隔を求めるステップと、
求められた平均文字サイズ、平均文字間隔、筆記方向及び文字方向に従い、文字フォント列を作成するステップと、
作成された文字フォント列をメモリに記憶された回転角だけ逆回転して、手書き文字に置き換え、又は、手書き入力文字に重ねて表示する表示ステップをさらに含む請求項１乃至４のいずれかに記載の文字認識方法。
【請求項６】
前記文字方向推定ステップは、
筆点座標の変動情報から方向別ヒストグラムを求めるステップと、
該方向別ヒストグラムのある基準ピークと、その基準ピークから９０°離れた付近にもうひとつのピークがあるような基準ピークを検出するステップと、
検出された基準ピークの逆方向を文字方向とするステップと
を含む請求項１乃至５のいずれかに記載の文字認識方法。
【請求項７】
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第１文字列構成要素へ分割する分割ステップと、
前記分割ステップにより分割された第１文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する文字方向推定ステップと、
前記文字方向推定ステップにより推定された文字方向が上向きになるように、該第１文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第１文字列構成要素を回転して、第２文字列構成要素を得る回転ステップと、
該第２文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと
をコンピュータに実行させるための文字認識プログラム。
【請求項８】
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第１文字列構成要素へ分割する分割ステップと、
前記分割ステップにより分割された第１文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する文字方向推定ステップと、
前記文字方向推定ステップにより推定された文字方向が上向きになるように、該第１文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第１文字列構成要素を回転して、第２文字列構成要素を得る回転ステップと、
該第２文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと
を含む文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体に係り、特に、キーボードを使用せず、記入枠（筆記枠）を設けることなく、自由な方向（例えば、縦、横及び斜め方向）で手書き入力された文字（文字列）を認識することのできる文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、表示装置を備えたコンピュータに文字を入力する際、キーボードを使用せず、マウス、タブレット等の適宜の卓上型のディジタイザ（座標読み取り装置）を使用して、設定された枠内に手書き入力を行い、この手書き入力された文字を文字認識する方法が知られている。ここで、手書き入力とは、ストローク入力（文字要素入力）とも呼ばれ、例えば、文字入力、描画の一筆、２点間の描線等、表現し得る文字や線等の入力をいう。この方法によれば、キーボード操作に不慣れな人々でも、コンピュータ等の表示装置上に所望の文字を入力し、種々の文章を作成することができるようになる。
【０００３】
また、従来の方法では、コンピュータのアプリケーション（応用ソフト）によっては、予め１文字ごとに記入すべき枠が設定されている場合があった。このような枠内の単一文字での認識（以後、単文字認識）は、本来、ＰＤＡ（携帯型情報端末）などの小型端末での文字入力の一手法として実用化されており、この認識能力は、実用に十分耐えうるものであって、既存のＰＤＡやノートＰＣ等の文字入力インタフェースとして定着している。
【０００４】
しかしながら、この単文字認識では、筆記者（ユーザ）が手書き入力をする際、記入位置がその枠内に限定され、書きにくくなったり、また、文字を一つの枠内に対して１文字しか手書き入力できないので、ユーザが連続した文章を作成する際、時間と手間とが必要となる場合が想定される。その結果として、この単文字認識では、文字記入枠内に１文字ずつ記入された文字を順次認識していくため、筆記者にとっては、文字を複数の文字列としてではなく個々の文字として入力することが、例えば、心理的負担となり、円滑な文字入力を期待できないことがある。
【０００５】
上述の事項を防止するためには、予め枠を設定しない、いわゆる「枠なし」文字列認識を提案すればよい。この枠なし文字列認識は、近年の「教育の情報化」に伴った学校教育における対話型電子黒板（通常、白板）の導入、ＰＤＡ及びペンＰＣに搭載される液晶画面の大型化に伴った記入及び描画スペースの拡大等により、例えば、ペンインタフェースを用いた文字入力時の自由度（所望の筆記方
向で文字入力すること）に関する要求に応じて注目を集めており、いわゆるオンライン手書き文字認識技術の流れは、枠内の単一文字での認識（以後、単文字認識）から、上述の文字記入枠という概念を取り払い、筆記者の意図する所望の文字列（フレーズ）を心理的負担なく入力する手法である、記入／描画スペースに入力された文字列を一括して認識できる枠なし文字列認識へと移行しつつある。
【０００６】
図１７は、従来の枠なし文字列認識及び単文字認識を開始した際の表示画面についての説明図である。
枠なし文字列認識の表示画面１００には、例えば、枠のない入出力表示画面（描画領域）１０１、機能入力部１０２とが表示される。また、筆記者が文字列（ここでは、「東京農工大学工学部電子情報工学科」）を記入すると、各文字の区切り位置を示す外接矩形１０３が表示され、文字列を一括認識し、例えば、この外接矩形１０３内に各文字の認識結果を表示することもできる。機能入力部１０２は、複数の機能に対応し、認識対象である手書き入力文字に対して、例えば、クリックして適宜の指示を実行すれば、手書き入力文字に対して最適な操作を行うように配置されている。機能入力部１０２は、例えば、認識ボタン、消去ボタン等を備える。
【０００７】
また、単文字認識の表示画面２００には、例えば、予め枠２０３を設定された入出力表示画面２０１、機能入力部２０２とが表示されている。また、筆記者が、例えば、電子ペン２０４を用いて枠２０３内に１文字ずつ記入すると（ここでは、「学」、「工」、「大」）、記入された文字は、単文字認識される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、枠なし文字認識における既存の研究では、横書きの文字列のみを認識対象としたものがほとんどであった。例えば、候補文字ラティスによる枠なし筆記文字列のオンライン認識（村瀬洋、若原徹、梅田三千雄：電子情報通信学会論文誌、ｖｏｌ．Ｊ６８，  ｎｏ．  ４，  ｐｐ．７６５−７７２  （１９８５）  ）では、枠なしだと偏と旁の間で文字を分離してしまうことがあるので、分離して認識した場合と、一緒にして認識した場合とでのそれぞれの文字認識の確からしさの高いほうを採用するような処理をしている。しかし、この手法では、言語処理を検証の部分にしか使っていないこと、文字切出しの確からしさは評価していないこと、評価関数のパラメータを経験的に設定していること等の認識率の向上を妨げる要因がある。
【０００９】
また、切出し・認識・言語の確信度を統合した枠なしオンライン文字列認識手法（仙田修司、濱中雅彦、山田敬嗣：信学技報、ＰＲＭＵ，  ｖｏｌ．９８−１３８，  ｎｏ．４８９，  ｐｐ．１７−２４  （１９９８．１２）．）では、筆記者によって記入された文字の文字サイズの確からしさを考慮していない。また、特願平８−２５０５５８号公報では、横書き、縦書きの混在した文字列は、認識の対象外であり、さらに、文字列の筆記方向をシステムに教えるために、筆記者がベースラインを記入する必要がある。
【００１０】
また、上述の手法では、特願平８−２５０５５８号公報以外は、すべて横書きの文字列を仮定した処理を示している。これらにおいては、例えば、文字列の座標軸であるｘ軸、ｙ軸を逆にすることによって、縦書きに対応する処理を行うことは、可能である。このような枠なし文字認識では、横書きに限らず、筆記方向を限定することによって、文字列に含まれる各文字要素の文字サイズ推定を容易とし、文字切出しの方向を横または縦方向に限定することにより過分割を防止し、文字種候補の絞込みを行うことができる。
【００１１】
しかしながら、筆記者が縦書きと横書きを混在させたり、横書きから続けて縦書きに移ったり、その反対に、縦書きから横書きに移ったりする場合、従来の方法では対応できず、十分な文字認識を行うことは困難であった。さらに、既存のシステムでは、筆記者による入力の自由度（筆記方向などの筆記時の自由度を指す）の損失が想定される。
【００１２】
すなわち、上述の筆記方向を限定した場合、いずれもシステム側にはある程度の利点があるが、この利点は、ユーザの要求を満たすものではない。枠なし文字認識において、ユーザにとって使いやすい認識システムとは、頭に思い浮かんだ文章を自然に筆記した状態で認識できるシステムであると考えられる。さらに、筆記時における自由度の損失は、少なからず筆記者の思考を妨げる原因にもなり
得る。
さらに、上述の枠なし文字列認識では、例えば、ひとり又は複数の筆記者が筆記面に対して、正面の横からや反対側から、縦書き、横書き、斜め書きすることも想定されるので、筆記時における自由度の損失である筆記制限を一層緩和する必要がある。加えて、近年の「教育の情報化」に伴った学校教育における対話型電子白板の導入や液晶画面の大型化などの各種状況に伴い、ペンインタフェースを用いた文字入力時の制限緩和に関する要求は、さらに高まると予想できる。
具体的な状況としては、例えば、銀行などの窓口業務などにおいては、受付者と顧客とが異なる方向（例えば、向かい合って）から書かれた文字列を認識する必要がある場合、電子白板に斜め書きされた場合、さらに、ＣＡＤなどを用いた開発の場面などで、例えば、平面設置された画面上に表示された図面を、複数の開発者などが取り囲んで、文字などを記入する場合、等の状況が想定される。
そこで、枠なし文字列認識では、例えば、文字入力として、ペンタブレット等を用いた自由な文字入力と、対話的あるいは協調的な文字入力と、同一タブレット等上での複数の筆記者からの文字入力とを考慮すると共に、電子白板上での板書、整形表示、保存、再利用を行えることが望ましい。
【００１３】
本発明は、以上の点に鑑み、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識（自由筆記文字列認識）を行うことを目的とする。
また、本発明は、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことを目的とする。また、本発明は、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことを目的とする。
【００１４】
また、本発明は、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することを目的とする。また、本発明は、例えば、筆記方向、文字方向、行ごとの文字の大きさ変動に依存しない枠なし文字認識を行うことを目的とする。
【課題を解決するための手段】
【００１５】
本発明の解決手段によると、
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第１文字列構成要素へ分割する分割ステップと、
前記分割ステップにより分割された第１文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する文字方向推定ステップと、
前記文字方向推定ステップにより推定された文字方向が上向きになるように、該第１文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第１文字列構成要素を回転して、第２文字列構成要素を得る回転ステップと、
該第２文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと
を含む文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【発明の効果】
【００１６】
本発明によると、以上説明した通り、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識（自由筆記文字列認識）を行うことができる。
【００１７】
また、本発明は、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことができる。また、本発明は、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことができる。
また、本発明は、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することができる。また、本発明は、例えば、筆記方向、文字方向、行ごとの文字の大きさ変動に依存しない枠なし文字認識を行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を用いて本発明の実施の形態を詳細に説明する。
（１）第１の実施の形態
図１は、本発明に関する筆記方向に依存しない枠なし文字認識装置を適用したオンライン枠なし文字認識システムの概略構成図である。
文字認識システム１は、自由筆記文字列認識のベースとなるものであり、例えば、文字列の入力・認識結果の出力を行う入力出力部４、及び枠なし手書き文字（文字列）の認識コントロール部１０を備え、ユーザ２から手書き文字列が入力され、アプリケーション３に認識結果が出力される。入力出力部４は、例えば、入力文字列パターン入力部５と、認識結果出力部６とを備える。
【００１９】
入力文字列パターン入力部５は、例えば、対話型電子白板、表示一体型タブレット、その他のタブレット等の適宜の卓上型のディジタイザ、マウス、トラックボール、電子ペン等のポインティングデバイスを用いて、ユーザ（筆記者）２により自由な方向（例えば、縦、横及び斜め方向）で入力された文字列のパターンを認識コントロール部１０に入力する。認識結果出力部６は、認識コントロール部１０から出力される文字列認識の認識結果をアプリケーション３に出力する。
【００２０】
認識コントロール部１０は、例えば、文字サイズ推定処理部１１、文字切出し処理部１２及び最尤文字列探索処理部１３を備える。文字サイズ推定処理部１１は、筆記者により入力された文字列に含まれる各文字のサイズを推定する。文字切出し処理部１２は、改行状況、筆記方向の変化状況に基づいた筆記方向の推定、ストローク（文字要素）間の幾何学的特徴評価に基づいた仮分割、仮分割修正等による文字の切れ目を検出する（詳細は後述する）と共に、文字候補の生成（文字切出し）を行う。最尤文字列探索処理部１３は、文字切出し後の文字列に含まれる各文字要素に対して、確からしい文字列の探索及び文字認識を行う。さらに、最尤文字列探索処理部１３は、例えば、枠なし文字列の文字認識を行う既存の認識エンジン部１４と、文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を行う最尤文字列探索部１５とを備える。
【００２１】
図２は、本発明に関する文字認識方法のフローチャートである。なお、説明の便宜上、ここでのフローチャートの説明は、概略的なものとし、具体的な説明は後述する。
まず、筆記方向を予め推定し、筆記方向別に切出しを行う、筆記方向推定による文字切出し方法について説明する。この筆記方向推定による文字切出し方法は、文字列を構成するストローク（文字要素）の特徴に基づいて、文字サイズ、筆記（運筆）方向の推定を行うと共に、この筆記方向別に仮分割及び仮分割修正を行うものである。
【００２２】
入力文字列パターン入力部５により、ユーザ２による枠なしで自由な方向で入力された文字列のパターンが入力される（Ｓ１０１）。入力された文字列パターンに含まれる各文字は、文字サイズ推定処理部１１により、文字サイズを推定される（Ｓ１０３）。次に、文字切出し処理部１２は、例えば、改行、筆記方向変化点に基づいて文字列の筆記方向（横、縦、斜め等）の推定を行う（Ｓ１０５）。さらに、文字切出し処理部１２は、推定された筆記方向に基づいて仮分割及び仮分割修正を行う（Ｓ１０７、Ｓ１０９）。
【００２３】
次に、最尤文字列探索処理部１３では、文字切出しの行われた文字列に対して、上述の認識エンジン部１４及び最尤文字列探索部１５により文字認識を行うと共に、この文字認識の結果を認識結果出力部６に出力する。認識結果出力部６は、この認識結果を、アプリケーション３の図示しない表示画面上に表示するために出力する（Ｓ１１１）。なお、既存のシステムを自由筆記文字列認識に対応させるには、どのような文字列に対しても文字候補の生成（文字切出し）が要求されるため、文字認識を行う認識エンジン部１４及び文脈処理等を行う最尤文字列探索部１５はそのまま使用し、文字切出し処理部１２でのステップＳ１０５、１０７及び１０９に対応する文字切出し処理を、筆記方向に依存しないで行う。
以下、上述のフローチャートの各ステップの処理について詳細に説明する。
【００２４】
（ステップＳ１０１について）
ユーザ２により入力出力部４を利用して手書き文字（文字列）が入力され、各文字要素に関する情報が記憶される。各文字要素に関する情報とは、例えば、始点、終点、その間の筆点座標位置、筆記方向、順序等である。
【００２５】
（ステップＳ１０３について）
図３は、文字サイズ推定処理についての説明図である。
まず、筆記者によって手書き入力された文字列が、例えば、横書き、縦書き、斜め書き等の文字列を含んでいる場合、文字サイズを推定するために、筆記方向を固定して射影を用いる手法を利用することは適切ではない。このため、文字列の各文字要素について、高さや幅の平均値を求めることにより、文字サイズを推定することが考えられる。
【００２６】
一方、例えば、画数が多く、細かい（短い）文字要素の集合である漢字等が文字列に含まれている場合では、推定文字サイズが真の文字サイズよりもかなり小さくなってしまうことがある。したがって、文字列に漢字等が含まれている場合では、細かい文字要素を無視すると共に、比較的大きな（長い）文字要素を、文字（例えば、漢字）を代表する文字要素として捉え、この比較的長い文字要素の平均を求めるようにすればよい。なお、この手法によれば、上述の射影を用いた手法よりも高速な処理を期待できる。
【００２７】
以下、具体的な手順を次に示す。
ここでは、一例として、総画数６の「曲」という漢字のサイズを推定する場合について説明する。
まず、総画数６の各ストロークサイズを測定する。各ストロークサイズは、ドット数、長さ等の適宜の単位を用いると、例えば、それぞれ３３、４０、５２、３５、４７、２０と表され、これらのストロークサイズの値を、例えば、「曲」の書き順に応じて図中のブロックに格納する。なお、ストロークサイズは、文字要素の幅、高さで大きい方のサイズである。この際、総ストロークサイズの平均値は、３８であって、この値が文字サイズ推定値（推定文字サイズ）となる。しかし、この推定文字サイズは、真の文字サイズと比べて著しく小さくなってしまう。
【００２８】
一方、上述の各ストロークサイズを降順にソートしてブロックに格納する（ここでは、５２、４７、４０、３５、３３、２０となる）。さらに、ブロックに格納された各ストロークサイズのうち上位（例えば、上半分、５２、４７、４０）の平均値を求める。この際、上位３つのストロークサイズの平均値は、４６であって、この値が文字サイズ推定値（推定文字サイズ）となる。この推定文字サイズは、真の文字サイズとある程度近くなる。なお、一例として、上位（例えば、上半分）の平均値×ｒ（ここでは、ｒ＝１）＝文字サイズ推定値と規定してもよい。
【００２９】
（ステップＳ１０５について）
ここでは、改行および筆記方向変化点を検出することによって、筆記方向を推定する文字列を特定し、さらに、この文字列の外接矩形の縦横比に基づいて筆記方向を判定する筆記方向推定処理について説明する。
【００３０】
まず、改行の検出について説明する。
図４は、文字要素間遷移分布を示す説明図である。
文字要素間隔は、例えば、文字列内の小さな遷移（文字列内遷移分布）と、改行による文字列間の大きな遷移（改行を示す分布）との２種類に区分できる。なお、図中の文字列内遷移分布、及び改行を示す分布を示す複数の点は、各文字要素間距離の分布を示している。なお、各文字要素間の距離は、例えば、各文字要素の始点、終点、重心等の適宜の値を用いて、始点間、終点間、ある文字要素の始点と他の文字要素の終点間、重心間等の距離により求めることができる。
【００３１】
筆記者によって手書き入力された文字列に改行が有るか否かを予め判別することができるならば、上述の２種類の遷移をクラスタリングすることにより、改行を検出することができる。ここで、いわゆるＬＢＧアルゴリズムを用いたクラスタリングの適用が考えられる。しかし、この方法では、微小ではあるが認識時間に体感的な差が出ることが想定されるため、クラスタリングをＬＢＧの初期化部分（セントロイドの決定、勢力圏の設定）のみで行うようにした。
【００３２】
まず、ステップＳ１０３によって推定された文字サイズに基づいて、改行のしきい値を決定すると共に、このしきい値以上の文字要素間距離を検出した場合に、厳密な改行の検出を行うようにした。この改行の検出では、文字要素間遷移の最小値及び最大値を、それぞれセントロイドの初期値とし、さらに、このセントロイドによって求められるクラスタを、それぞれ文字列内遷移を示すクラスタ（文字要素間遷移の最小値に基づく）と、改行を示すクラスタ（文字要素間遷移の最大値に基づく）と規定する。なお、この際、ＬＢＧの核となるループ部分を省いているが、明らかに改行がある場合にクラスタリングを行うようにしているので、このセントロイドによって求められる解は、準最適解に近く、上述の手法でも改行の検出精度に問題はない判断している。この処理は、単に文字要素間の距離で見ているので、Ｙ方向や斜め方向へ遷移を伴う改行も検出できる。
【００３３】
つぎに、筆記方向変化点の検出について説明する。
図５は、横書きと縦書きが混在する文字列を示す図である。
筆記者によって自由に手書き入力された文字列は、文字列の途中から直角に折れ曲がるなど様々なケースが想定される。ここでは、筆記者による文字列は、横書きの「今日の献立」と、この横書きの「今日の献立」から直角に折れ曲がり、改行だけでは区切れない縦書きの「カツ丼」と、縦書きのそれぞれ改行により区切られる「天丼」「うな丼」「親子丼」とを含む。
【００３４】
このため、上述の改行検出によって、文字列を特定した場合であっても、急激な筆記方向変化や異なる筆記方向の文字列が混在している場合、筆記方向の推定は困難となることが想定される。つまり、文字列としては区切れているのに、改行だけでは区切れない文字列が出てくる（ここでは、「今日の献立  カツ丼」に該当する）。したがって、このような場合には、筆記方向の変化している点を検出し、改行と同様に文字列を分割することが必要となる。
【００３５】
図６は、筆記方向変化点の検出を示す説明図である。
筆記方向変化点の検出は、文字列の始点と終点とを結ぶ直線からの最遠点を求めることによって行う。ただし、文字列の最遠点を単純に求めてしまうと、筆記方向変化のない文字列においても微小な変化を検出してしまうことが予想されるため、上述の文字サイズをしきい値とすることにより、比較的大きな筆記方向変化のみを検出することができる。なお、最遠点の代わりに比較的遠い点を求めて、適宜の筆記方向変化点を求めるようにしてもよい。
【００３６】
具体的には、ここでは、筆記者による文字列は、横書きの「今日の献立」と、この横書きの「今日の献立」から直角に折れ曲がり、改行だけでは区切れない縦書きの「カレーライス」とを含む。まず、この文字列の始点（ここでは「今」の第１ストロークの始点）と、文字列の終点（ここでは「ス」の第２ストロークの終点）とを結び直線Ａを作成する。この直線Ａからの距離ｄが上述の推定文字サイズより大きい点のうち最遠点を求め、この最遠点を文字列の筆記方向変化点とする（ここでは、「立」の第２ストロークの終点となる）。
【００３７】
図７は、最遠点を再帰的に求めた場合についての説明図である。
また、上述した方法では、筆記方向変化点を一箇所しか検出できない。ここでは、文字列に複数の筆記方向変化点が含まれる場合について説明する。この場合、最遠点を求める処理を再帰的に用いる（  Ｋ．Ｉｓｈｉｇａｋｉ，Ｔ．Ｍｏｒｉｓｈｉｔａ：”Ａ  Ｔｏｐ−ｄｏｗｎ  Ｏｎｌｉｎｅ  Ｈａｎｄｗｒｉｔｔｅｎ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｍｅｔｈｏｄ  ｖｉａ  ｔｈｅ  Ｄｅｎｏｔａｔｉｏｎ  ｏｆ  Ｖａｒｉａｔｉｏｎ，”Ｐｒｏｃ．  Ｉｎｔ‘ｌ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｎ  Ｃｈｉｎｅｓｅ  ａｎｄ  Ｏｒｉｅｎｔａｌ  Ｌａｎｇｕａｇｅｓ，Ｔｏｒｏｎｔ，ｐｐ１４１−１４５（１９８８．８）．）ことにより、筆記方向が複数回変化する文字列にも対応することができる。具体的には、３つの筆記方向変化点を含む文字列（ここでは、「曲がりくねった文字列」であり、図中、点線により簡略化されている）の始点Ｓ（ここでは「曲」の第１ストロークの始点）と終点Ｅ（ここでは「列」の第６ストロークの終点）とを直線で結び、上述した方法によって線分ＳＥからの最遠点Ｐ１（ここでは「文」の第１ストロークの始点）を求める。
【００３８】
つぎに、文字列の始点Ｓ（ここでは「曲」の第１ストロークの始点）とＰ１（ここでは「文」の第１ストロークの始点）とを直線で結び、上述した方法によって線分ＳＰ１からの最遠点Ｐ２（ここでは「り」の第２ストローク中で線分ＳＰ１からの最遠点）を求める。また、文字列のＰ１（ここでは「文」の第１ストロークの始点）と最遠点Ｐ２（ここでは「り」の第２ストローク中で線分ＳＰ１からの最遠点）とを直線で結び、上述した方法によって線分Ｐ１Ｐ２からの最遠点Ｐ３（ここでは「ね」の第２ストロークの始点）を求める。
このように、最遠点を再帰的に求めることにより、各種文字列の筆記方向変化点を検出することができる。
【００３９】
図８は、筆記方向変化が微小である場合について説明図である。
また、筆記方向変化が微小である場合、最遠点を求める際の条件である文字サイズ（しきい値）からもれる場合が想定される。具体的には、筆記者によって、検出できない１つの筆記方向変化点を含む文字列（ここでは、「明日は晴れるといいな」）が手書き入力された場合、文字列の始点Ｓ「明」と終点Ｅ「な」とを直線で結び、上述した方法によって線分ＳＥからの最遠点を求めようとしても、例えば、線分ＳＥからの距離（例えば、距離ｄ１隔てた「れ」、距離ｄ２隔てた「る」）が、いずれも推定文字サイズｔｈよりも小さいならば（例えば、ｄ２＜ｄ１＜ｔｈ）、最遠点を求めることができない。なお、推定文字サイズｔｈは、各文字サイズの平均、最大、最小からひとつ又は複数を除いた各文字サイズの平均、予め定めた値等、適宜定めることができる。
【００４０】
そこで、筆記方向変化が微小であった場合にもそのまま処理を進め、後述する仮分割処理を行う際、分割後の文字サイズ（ここでは、「れる」が１文字として仮分割されている）が推定文字サイズｔｈよりも明らかに大きい場合には、評価中の文字要素を分割する処理を行うようにする（ここでは、「れる」をそれぞれ「れ」「る」に分割する）。また、改行で区切られた各文字列について、この各文字列を筆記方向の変化点で区切ることにより、文字列を文字列構成要素へと分割する。これにより、筆記方向を文字列構成要素単位で推定することができる。
【００４１】
つぎに、筆記方向の推定について説明する。
図９は、筆記方向推定についての説明図である。
上述したように改行及び筆記方向変化点を検出したことで、筆記方向を推定する文字列（文字列構成要素）を特定することができる。具体的には、文字列構成要素は、それぞれ改行で分割されており、例えば、文字列構成要素１「今日は雨だけど」と、文字列構成要素２「明日は晴れるといいな」とを含む。また、これらの文字列構成要素１及び２の外接矩形の縦横比（例えば、横方向Ｘ、縦方向Ｙ）を検討し、Ｘ＞Ｙであれば、筆記方向を横方向と推定し、一方、Ｘ＜Ｙであれば、筆記方向を縦方向とそれぞれ推定する。また、文字列ごとに筆記方向を推定した後、さらに、各文字要素ごとに筆記方向情報を付加するようにしてもよい。なお、後述する仮分割では、筆記方向情報を用いて縦または横方向へ仮分割を行うことになる。また、一般に、文字列構成要素は、筆記方向と反対方向に筆が運ばれて筆記された場合、この２つの筆画の間は文字の区切りであることはほとんどない。筆記方向が推定されていると、これを利用して、改行、筆記方向変化点を検出することができる。さらに、この２つの筆画の間は、後述する分割、統合処理により確定することができる。
【００４２】
（ステップＳ１０７について）
つぎに、仮分割について説明する。
図１０は、筆記方向別の仮分割を示す説明図である。
仮分割では、上述したように、筆記方向情報に基づいて横書きならＸ方向、縦書きならＹ方向へそれぞれ仮分割を行う。具体的には、筆記方向が横書きならＸ方向に仮分割する（ここでは、横書きで「農」「工」）。筆記方向が縦書きならＹ方向に仮分割する（ここでは、縦書きで「農」「工」）。また、斜め書きの場合は、傾きが縦書き又は横書きのどちらか近いほうに仮定して分割する。なお、上述の方法による仮分割では、後述する分割可能な方向へ単純に分割していく方法に比べ、仮分割数を例えば、半分に抑えることもできる。
【００４３】
図１１は、分割時の評価についての説明図である。
仮分割処理では、文字要素間における幾何的特徴に基づいて、各文字要素に対して各種の評価を与える。具体的には、文字列「へのへのもへじ」のうち、各文字間（ここでは、６つ）を分割（ｄｉｖｉｄｅ）、文字「も」を構成する各文字要素を結合（ｃｏｍｂｉｎｅ）、文字「じ」を構成する各文字要素を分割候補（ｖａｇｕｅ）とそれぞれ評価する。
【００４４】
この分割判定（分割、結合、分割候補）は、文字要素に付加されている筆記方向情報に基づいており、例えば、上述のように横書きならＸ方向、縦書きならＹ方向の文字要素間の関係を評価する。また、この評価項目は、文字要素同士の重心間射影距離及び文字要素の外接矩形の重なり具合である。ここで、「も」の各文字要素を結合と判定するには、例えば、各文字要素の外接矩形の重なりをしきい値によって評価し、予め定められたしきい値以上の重なりであれば、結合と判定することができる。
【００４５】
（ステップＳ１０９について）
つぎに、仮分割修正について説明する。
図１２は、仮分割修正についての説明図である。
仮分割修正では、上述の仮分割と同様、筆記方向を見ながら、縦書きならＹ方向、横書きならＸ方向に文字構成要素同士を結合していく。また、仮分割処理の後、枠なし文字認識を実行する前の段階で、それ以前の処理とは独立にいくつかの判定を行うことにより、分割候補（ｖａｇｕｅ）と判定されている箇所を、分割（ｄｉｖｉｄｅ）又は統合（ｃｏｍｂｉｎｅ）に可能な限り確定し、文字認識段階での最尤文字列推定の探索空間を小さくする。
【００４６】
また、ここでは、文字構成要素同士の外接矩形の重なりをしきい値によって評価し、しきい値以上の重なりであれば、要素同士を統合に確定する処理を行う。具体的には、文字「道」の編と旁とがそれぞれ別々の文字構成要素となった場合、重なりの面積がしきい値（ｔｈ）以上の時に重なりと判断する（ここでは、Ｘ＊Ｙ＞ｔｈ）。つまり、ここでは、横方向の重なりと縦方向の重なりの面積で判断することになる。
【００４７】
（ステップＳ１１１について）
ステップＳ１０９による仮分割修正後、最尤文字列探索処理部１３では、最尤文字列探索部１５により各文字要素に対して文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を動的計画法に基づいて行われると共に、認識エンジン部１４により文字列の文字認識が行われる。この文字認識の結果は、認識結果出力部６に出力される。認識結果出力部６は、この認識結果をアプリケーション３の図示しない表示画面上に表示するために出力する。
【００４８】
これにより、上述した筆記方向推定による文字切出し方法は、ステップＳ１０５の改行、筆記方向変化点の検出に基づいて筆記方向を推定するという処理を含むが、筆記方向が正しく推定できれば正確な仮分割を行うことができる。また、この方法は、予め文字列の筆記方向を推定しておき、しきい値を用いて筆記方向へ文字列を分割していく方法であり、仮分割数を最小限に抑えることができる。この仮分割数を最小限に抑えることにより、認識文字列の候補数を小さくでき、さらに、上述の文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を動的計画法に基づいて行う最尤文字列探索部１５での最適経路を見出す手間を最小限とすることができる。
【００４９】
したがって、筆記方向推定による文字切出し方法では、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識（自由筆記文字列認識）を行うことができる。
また、筆記方向推定による文字切出し方法では、例えば、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことができる。また、この筆記方向推定による文字切出し方法を、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことができる。また、筆記方向推定による文字切出し方法では、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することができる。
【００５０】
（２）第２の実施の形態
つぎに、図２に示した文字認識方法のフローチャートにおいて、上述のステップＳ１０５の処理を簡略化して、文字列の筆記方向を考慮しない文字切出し方法について説明する。なお、上述の筆記方向推定による文字切出し方法と重複する部分は、説明が冗長とならない程度に省略する。
【００５１】
この方法は、文字サイズから得られたしきい値に基づいて、文字列を分割できる方向へ分割していく方法である。この筆記方向を考慮しない文字切出し方法は、筆記方向に関わりなく分割できる方向へ仮分割を行う方法であって、筆記方向に関わらず、ヒューリスティックに切出しを行う。
【００５２】
まず、上述の文字サイズ推定処理部１１では、文字サイズの推定が行われると共に、切出しや改行判定に用いるしきい値を決定する（上述のＳ１０３と同様）。つぎに、文字切出し処理部１２では、筆記者により入力された文字列の２つの文字要素間の評価を行い、Ｘ方向、Ｙ方向へしきい値以上の筆点座標の変位があった場合に分割点とし、文字列を求める（簡略化されたステップＳ１０５に対応する筆記推定ステップ）。
【００５３】
この文字列を分割できる方向へ仮分割を行う（上述のＳ１０７と同様）。また、文字切出し処理部１２では、ステップＳ１０７により仮分割された文字構成要素に対し、Ｘ方向、Ｙ方向への重なりを評価し、重なりの度合いがしきい値以上であれば結合させ、この結合した結果が推定文字サイズよりも大きくなってしまう場合は、結合を解除する仮分割修正を行う（上述のＳ１０９と同様）。
【００５４】
図１３は、重なりの評価を示す説明図である。
この重なりの評価については、２つの手法（重なりの評価１、２）が考えられる。
重なりの評価１では、Ｘ方向あるいはＹ方向どちらかが重なっていれば、それを重なりと判断する（Ｘ＞ｔｈ１、Ｙ＞ｔｈ１）。すなわち、一例として横書きの文字列を考えると、横方向へは重なっていないが、縦方向へ重なっていると判断することになる。
【００５５】
重なりの評価２では、重なりの面積がしきい値（ｔｈ２）以上の時に重なりと判断する（Ｘ＊Ｙ＞ｔｈ２、但し、しきい値は、ｔｈ１≠ｔｈ２）。つまり、ここでは、横方向の重なりと縦方向の重なりの面積で判断することになる。
【００５６】
これにより、上述の筆記方向を考慮しない文字切出し方法では、簡略化されたステップＳ１０５に対応する筆記推定ステップを行うことにより、文字列の状態によっては単純かつ高速な処理を行うことができる。
【００５７】
（３）実験および実験結果の考察
ここで、本発明による筆記方向推定による文字切出し方法を適用したシステムを用いて、オンライン文字パターンデータによる認識実験を行った。以下、本実験の概要、実験結果および実験の考察について述べる。
【００５８】
（実験の概要）
本実験では、本発明による筆記方向に依存しない文字切出し手法を用いたシステムでの各筆記方向のデータに対する自由筆記文字列認識のパフォーマンスを調べた。なお、枠なしの状態で書かれたデータベースには今のところ標準のものが存在しないため、実験用データとして、ある筆記者５名によって書かれたオンライン文字パターンデータを用いることにした。
表１にオンライン文字パターンデータの詳細を示す。
【００５９】
【表１】
2007172639.tif 000003
【００６０】
実験用データであるオンライン文字パターンデータは、筆記者数５名であって、データ筆記時には、この５名の筆記者に例文を与えた。筆記者には、この例文を横書き、縦書き、及び筆記方向自由（例えば、斜め方向）の３種類のパターンで手書き入力させ、これらのデータを収集した。また、このオンライン文字パターンデータは、総文字数３８４０文字であって、１人当たりの筆記文字数は、７８６文字である。また、このオンライン文字パターンデータは、１セット当たり１０ページ（２５６文字）からなり、１ページ平均約２５文字の文章となっているため、筆記者は、それぞれ３セット分（３０ページ、７８６文字）の文字の手書き入力を行った。
【００６１】
また、この実験では、ページごとに文字列が区切れるため、ページ単位での正認識率を算出し、１セットごとにその平均を求めることにする。
【００６２】
（実験の結果）
図１４は、実験用オンライン枠なし文字パターンデータを示す図である。
ここでのオンライン文字パターンデータは、例えば、筆記者の自由筆記（斜め方向）による「短期的に成功しても、」と、横書きによる「長期的には失敗する。」とを含む。
【００６３】
図１５は、正認識の例を示す図（１）である。
ここでは、オンライン文字パターンデータに含まれる自由筆記による「短期的に成功しても、」と、横書きによる「長期的には失敗する。」とは、それぞれ各文字要素ごと外接矩形に囲まれ、正しい文字認識が実行されている。認識結果は、“短期的に成長しても、長期的には失敗する。”である。
【００６４】
図１６は、正認識の例を示す図（２）である。
ここでのオンライン文字パターンデータは、例えば、筆記者の縦書きによる「入園料は小学生」「以上５９０円、」と、横書きによる「小学生未満無料。」とを含む。また、ここでは、オンライン文字パターンデータに含まれる縦書きによる「入園料は小学生」「以上５９０円、」と、横書きによる「小学生未満無料。」とは、それぞれ各文字要素ごと外接矩形に囲まれ、正しい文字認識が実行されている。認識結果は、“入園料は小学生以上５９０円、小学生未満無料。”である。
表２に筆記方向別認識率（％）を示す。
【００６５】
【表２】
2007172639.tif 000004
【００６６】
ここでは、各筆記者Ａ〜Ｅに対し、データセットごとのページ内の筆記方向別認識率（％）の平均を表している。なお、認識時間については、ページ内平均認識時間は、約２秒、１文字当たりの平均認識時間は、約０．０９秒であった。
【００６７】
（実験結果の考察）
上述の実験結果についての考察としては、横書きの文字列に対しては、文字間隔が狭いため、切出し精度の悪さが認識率に影響した。縦書きの場合、横書きに比べ文字間隔が広くなる傾向にあり、切出し精度および認識率が高かった。自由筆記文字列では横書き・縦書きの両方の特徴を併せ持つため、両者の間の結果となった。
【００６８】
これにより、仮分割時のしきい値を横書きと縦書きで変化させることによって、さらに高精度な切出しが実現できる。また、上述の細かな筆記方向変化のある文字列では、筆記方向変化点を抽出する代わりに、仮分割時に推定文字サイズで分割を打ち切ることで、切出しを行うことができる。
【００６９】
また、本発明では、筆記方向に依存しない文字切出し手法を用いた自由筆記文字列認識を、既存のシステムにおけるパフォーマンスをあまり落とすことなく、自由筆記文字列に対応した文字切出し、及び認識を行うことができる。さらに、分割時のしきい値を動的に設定することによって、切出し精度を向上させること、及びより細かな筆記方向変化への対応を行うことが期待できる。なお、上述の認識実験では、適宜の大規模なオンライン枠なし文字パターンデータベースを収集することができ、本発明による文字認識システムのさらに細かな性能評価を行うこともできる。
【００７０】
（４）第３の実施の形態
つぎに、文字列の筆記方向だけでなく文字方向をも考慮した、自由度の一層高い枠なし文字認識方法について説明する。なお、上述の第１及び２の実施の形態と重複する部分は、説明が冗長とならない程度に省略すると共に、新たに定義する概念については、詳細に説明する。また、文字認識システムの概略構成は、第１の実施の形態と同様である。
【００７１】
図１８は、筆点座標とストロークの説明図である。
ストロークとは、例えば、ユーザ２が適宜の筆記面に対して、接触から非接触に至る間に入力出力部４を利用してサンプリングされる接触座標（筆点座標）の系列をいう。ここでは、図示のように、「あ」に含まれる１つのストロークを用いて説明した。
【００７２】
図１９は、文字方向と筆記方向の説明図である。
文字方向とは、例えば、文字の底辺から上に向けた方向を指し、一方、筆記方向とは、文字列が筆記される方向をいう。また、上述のように、改行、筆記方向変化点、一定間隔以上の空白などで分離される文字列を、それぞれ文字列構成要素とする。文字列構成要素は、それぞれが筆記方向を持つ。ここでは、文字列構成要素である「今日の献立」「親子丼」「うな丼」「天丼」「カツ丼」の文字方向及び筆記方向を、それぞれ点線及び実線の矢印としてそれぞれ示している。
【００７３】
図２０は、本実施の形態に関する文字認識方法のフローチャートである。なお、説明の便宜上、ここでのフローチャートの説明は、概略的なものとし、具体的な説明は後述する。この文字認識方法は、例えば、ユーザ２による枠なしで自由な方向で入力された手書きストローク列に対し、文字方向および筆記方向に依存しない文字認識を行うものである。
入力文字列パターン入力部５により、ユーザ２による枠なしで自由な方向で入力されたストローク列が認識コントロール部１０に入力された後、入力された各ストローク列は、文字サイズ推定処理部１１により、文字サイズを推定される（文字サイズ推定処理：Ｓ２０１）。なお、ステップＳ２０１で推定された文字サイズは、例えば、改行検出に用いられると共に、仮分割処理や文字認識処理における評価ための要素にもなる。
【００７４】
文字サイズ推定処理部１１は、ステップＳ２０１での文字サイズの推定後、推定文字サイズおよびストローク間隔（例えば重心間距離）を基に、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、文字列構成要素へ分割する（文字列構成要素分割処理：Ｓ２０３）。なお、これら文字サイズの推定、改行の検出及び文字列構成要素の分割は、上述のステップＳ１０３、１０５での処理と同様である。
【００７５】
つぎに、文字サイズ推定処理部１１は、ステップＳ２０３により得られた文字列構成要素ごとで文字サイズが変動することを考慮して、文字列構成要素ごとに適当な（平均的な）文字サイズを詳細に推定し直す（文字サイズ詳細推定処理：Ｓ２０５）。なお、ここでの文字サイズ詳細推定処理は、ステップＳ２０１での文字サイズ推定処理と同じであるが、それを文字列構成要素ごとに適用することにより、文字サイズ推定の精度を向上させることができる。
【００７６】
次に、文字切出し処理部１２は、例えば、文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する（文字方向推定処理：Ｓ２０７）。また、文字切出し処理部１２は、文字列構成要素の筆記方向から良く現れる文字方向を仮定する（文字方向仮定処理：Ｓ２０９）。なお、ステップＳ２０９により仮定される文字方向としては、例えば、筆記方向の正負方向、この正負方向に垂直な２方向、入力装置（又は筆記面）の上下方向、左右方向のうち予め定められた方向のいずれか又は複数を仮定する。ここで、文字方向を求める処理は、ステップＳ２０７又はＳ２０９のいずれでもよいし、両方でもよい。なお、これらステップＳ２０７及びＳ２０９を両方行って、後述のステップＳ２２１の最適文字方向選択処理で最も高得点のものを選択するほうが認識精度は高くなる。
【００７７】
このように推定及び／又は仮定されたひとつ又は複数の文字方向の候補によって、各文字方向補正文字列構成要素に対して、それぞれ以下ステップＳ２１１〜Ｓ２１９の処理を行う。なお、各文字方向補正文字列構成要素について、各ステップで求められた文字方向の候補及び中間結果は、文字切出し処理部１２により適宜のメモリに対して書き込み又は読み出しが行われる。
また、文字切出し処理部１２は、ステップＳ２０７により推定された、および／または、ステップＳ２０９により仮定されたひとつ又は複数の文字方向の候補ごとに、その文字方向が上になるように内部データとして元の文字列構成要素を回転する（認識用文字方向補正回転処理：Ｓ２１１）。なお、文字列構成要素は、上述のように、筆点座標の系列で表現されているため、任意角度の回転処理は容易かつ高速に行うことができる。ここで、それぞれの回転後のパターン（文字列構成要素）を、文字方向補正文字列構成要素と呼ぶ。
【００７８】
つぎに、文字切出し処理部１２は、ステップＳ２１１で得られた文字方向補正文字列構成要素ごとの筆記方向を、少なくとも４方向（上下左右）に量子化する（筆記方向量子化処理：Ｓ２１３）。なお、８方向であれば、斜め方向も含むことができる。ここで、ステップＳ２１３以降の処理のうち、文字切出し処理部１２で行われる仮分割処理（Ｓ２１５）及び仮分割修正処理（Ｓ２１７）と、最尤文字列探索処理部１３で行われる文脈処理を伴った認識処理（Ｓ２１９）とは、上述のステップＳ１０７での仮分割処理及びステップＳ１０９での仮分割修正処理と、ステップＳ１１１での認識結果を出力する処理とそれぞれ同様である。
【００７９】
つぎに、最尤文字列探索処理部１３は、ステップＳ２０７とステップＳ２０９によって推定あるいは仮定された文字方向ごとに、ステップＳ２１１からステップＳ２１９までの処理で得られた、各文字方向による複数の文字方向補正文字列構成要素に対する認識結果のなかで最も高い認識の確からしさに関する得点の文字方向とその文字方向における文字方向補正文字列構成要素を選択する（最適文字方向選択処理：Ｓ２２１）。ここで、最尤文字列探索処理部１３は、各文字方向において文字方向補正文字列構成要素の筆記方向に対して、必要に応じて文脈を仮定して文字認識を行い、また、文字認識の確からしさ、文字分割の確からしさ、文字サイズの確からしさ、文脈の確からしさのうちいずれか又は複数を適宜加味して認識の確からしさを示す点数を求める。最尤文字列探索処理部１３は、この点数の高い文字方向を最適文字方向として選択する。なお、ステップＳ２０７及びＳ２０９でひとつの文字方向のみ推定・仮定されている場合は、ステップＳ２２１は省略される。また、最尤文字列探索処理部１３は、ステップＳ２２１により選択された文字方向補正文字列構成要素の回転以前の情報、メモリに記憶された回転角・回転中心等の情報から、元に筆記されたストローク列の筆記方向、文字方向、文字サイズ、文字ピッチなどを復元すると共に、この復元結果を認識結果として、認識結果出力部６を介して、アプリケーション３の画面上の表示に反映する（認識結果の整形表示処理：Ｓ２２３）。
【００８０】
以下、上述のフローチャートの各ステップの処理について詳細に説明する。なお、上述の第１及び第２の実施の形態と重複する処理については、冗長とならない程度に省略する。
（ステップＳ２０１：文字サイズ推定処理について）
文字サイズ推定処理部１１は、例えば、入力文字列パターン入力部５により画面上に記入されたストローク列から、個々の文字要素の文字サイズを推定する。ここで、推定された文字サイズは、改行や文字間隔の検出、仮分割処理および認識処理に用いられる。この文字サイズ推定処理では、画面上の全てのストロークに対して、そのストロークサイズから文字サイズを推定する。なお、文字サイズ推定処理は、上述のステップＳ１０３での文字サイズ推定処理と同様である（図３及びその説明箇所参照）。
【００８１】
（ステップＳ２０３：文字列構成要素分割処理について）
図２１は、文字列構成要素分割処理についての説明図である。
文字サイズ推定処理部１１は、ステップＳ２０３の文字サイズ推定処理で求められた推定文字サイズをもとに、改行検出および文字列間隔の検出をクラスタリングを用いて行なう（改行・文字列間検出：Ｓ２０３１）。なお、ここでの処理は、上述のステップＳ１０５での筆記方向推定（筆記推定）と同様である（図４及びその説明箇所参照）。また、文字サイズ推定処理部１１は、ステップＳ２０３１によって検出された改行・文字列間隔を元に図１９に示すように画面上のストローク列を文字列構成要素に分割する（Ｓ２０３２）。なお、ここでの処理は、上述のステップＳ１０５での筆記方向推定（筆記推定）に含まれる改行検出の処理と同様である（図５及びその説明箇所参照）。
【００８２】
つぎに、文字サイズ推定処理部１１は、筆記方向変化点を検出する（Ｓ２０３３）。ここでは、ステップＳ２０３２での行分割において、図１９に示すように、箇条書きなどにおいて、横書きで書いた見出しの後に縦書きの行を続けて書く場合や、適宜の図などに阻まれた画面上で筆記方向を変えて続けて書くといった場合には、改行や文字列間隔を検出するだけでは行として分割を行うことができず、筆記方向の推定が困難となる場合がある。そこで、ステップＳ２０３３によって、筆記方向が途中で急激に変化している箇所（上述の筆記方向変化点）を特定することで、文字列の分割や筆記方向の推定を正確に行なうことができる。
【００８３】
この筆記方向変化点の検出は、上述のように、対象となる文字列の始点と終点を結ぶ直線からの最遠点を求めることで実現できる。また、この手法を再帰的に用いることで、複数の筆記方向変化に対応できる。これらの筆記方向変化点により、文字列構成要素はさらに短い文字列構成要素に分割される。なお、ここでの処理は、上述のステップＳ１０５での筆記方向推定（筆記推定）に含まれる処理と同様である（図６、７、８及びその説明箇所参照）。つぎに、文字サイズ推定処理部１１は、文字列構成要素ごとに、最初のストロークの始点座標と最終ストロークの終点座標から筆記方向を求める（Ｓ２０３４）。
【００８４】
（ステップＳ２０５：文字サイズ詳細推定処理について）
図２２は、文字サイズ詳細推定処理の説明図である。
文字サイズ推定処理部１１は、図２２に示すように、文字列構成要素ごとで文字サイズが変動することを考慮して、文字列構成要素ごとに文字サイズを詳細に推定し直す。ここでの処理は、上述の文字サイズ推定処理と同様であるが、それを文字列構成要素ごとに適用することで、文字サイズ推定の精度を向上させる。例えば、文字列構成要素「今日の献立」の文字サイズは、それ以外の文字列構成要素の文字サイズよりも大きくなっている。具体的には、ステップＳ２０３で求められた文字要素ごとの文字サイズの平均、最大値・最小値を除いた平均等、適宜の手法で求めることができる。
【００８５】
この文字サイズ詳細推定処理を、ステップＳ２０３の後に挿入することにより、同一画面上で文字サイズの異なった文字列構成要素が存在している場合にも、文字サイズの推定がより正確に行なえるようになる。その結果、文字切出し処理部１２における、文字列認識の前処理である文字切出しでは、推定文字サイズを元に高精度な切出しを行うことができる。ただし、このステップＳ２０５の処理は、画面上の文字サイズが一定であると仮定できる場合、又は、すでに推定されている場合には、省略してもよい。
【００８６】
（ステップＳ２０７：文字方向推定処理について）
図２３は、文字方向と方向別筆点間距離累積ヒストグラムの説明図である。
ここで、文字方向について説明すると、文字を記入する際、ストローク間の変動を除いた筆点座標の変動は、文字底辺を下にとれば右方向か下方向への変動が顕著に見られる。これは、日本語（特に、漢字）が、右方向あるいは下方向に筆記するストロークを多く含むためである。このため、方向別に変動をヒストグラムに取ると、例えば、横書きの文字列であれば９０°程度離れたところに二つのピークが現れることになる。ここでは、それぞれ文字方向の異なる３つの文字列「農工大」の筆点座標の変動としては、概ね９０°離れた部分にピークが現れている。
【００８７】
したがって、文字列全体で見た場合、これらの筆点座標の変動を検出することで、文字方向を推定することができる。また、文字方向が推定できれば、文字方向を正方向（つまり、上向き）になるように文字列全体を回転させることによって、通常どおりの認識処理を行なうことができる。
図２４は、方向別筆点間距離累積ヒストグラムにおけるピークの検出についての説明図である。
文字切出し処理部１２では、文字方向の推定のためには、ストローク内の連続する二つの筆点について、その方向別にその筆点間の距離を累積するヒストグラムを取る。ここでのヒストグラムは、例えば、１６方向分割で累積されており、１６方向のなかで約９０°離れた２つの方向にピークを見出すことができる。この２つの方向でのピークが下方向と右方向からどれだけ回転しているかを求めることで、文字方向を特定することができる。なお、分割の程度は、８方向、４方向、３２方向等適宜の値とすることができる。
【００８８】
ここでは、入力パターンである文字列構成要素「あ」の文字方向を推定する場合を示しており、まず、文字切出し処理部１２は、各文字列構成要素ごとに筆点座標変動のヒストグラムをとり（ステップ１）、このヒストグラムのピークを検出する（ステップ２）。つぎに、文字切出し処理部１２は、検出したヒストグラムの２点以上のピークについてピーク間の角度を検出し（ステップ３）、ここで、あるピークを基準とし、反時計回りに約９０°のところに他のピークが現れたとき、基準としたピークの反対方向を文字方向（図中、ステップ４の点線の矢印）とする。
【００８９】
図２５は、ピークの検出を示すフローチャートである。
まず、文字切出し処理部１２は、筆点変動の方向別のヒストグラムを求め（Ｓ２０７１）、一つの基準となるピークを検出する（Ｓ２０７２）。文字切出し処理部１２は、ステップＳ２０７２で検出された基準となるピークから反時計回りにピークを走査し（Ｓ２０７３）、基準となるピークから９０°付近にもう一つのピークを検出できるか否かを判定する（Ｓ２０７４）。文字切出し処理部１２は、ステップＳ２０７４でもう一つのピークが検出できた場合、基準となるピークの逆方向を文字方向とし（Ｓ２０７６）、一方、もう一つのピークが検出できない場合、基準となる別のピークを検出して（Ｓ２０７５）、再び、ステップＳ２０７３に戻ってピークを走査する。
【００９０】
また、ピークの検出を用いて文字方向を特定する際の他の方法としては、例えば、角度θ方向へのヒストグラムの強度をｆ（θ）として、ｆ（θ）＊ｆ（θ＋π／２）のピークを探し、角度θの反対方向を文字方向とするようにしてもよい。より具体的には、さらに、いわゆるガウス関数ｇ（δ）＝ｅｘｐ（−δ２／σ２）を、上述のｆ（θ）＊ｆ（θ＋π／２）に畳み込んで、右上がりの文字のように文字の下方向と右方向の角度差がπ／２から多少ずれている場合でも、二つのピークを安定に抽出することもできる。
【００９１】
図２６は、文字方向が上下しかない場合でのピークの検出についての説明図である。
ここで、文字方向が下向きか上向きしかないと分かっている場合について説明すると、文字切出し処理部１２では、例えば、Ｙ座標（つまり、縦方向）の筆点座標変動から文字方向の推定を行なうことになる。ここでは、上下方向に記入方向を限定しているので、図２６に示すように、記入方向が画面上方向か画面下方向かどちらかに判定できればよい。この場合、横書き・縦書きに関わらず筆点間のＹ方向の差を加えていくことで文字方向を推定できる。すなわち、文字切出し処理部１２は、画面の座標系を、Ｘ軸を左右方向、Ｙ軸を上下方向とすることにより、文字列構成要素（ここでは、「今日の献立」）の筆点列のＹ座標変動の和が「負」の値であれば、文字方向が上方向、一方、「正」の値であれば、下方向とそれぞれ判断できる。
【００９２】
（ステップＳ２０９：文字方向仮定処理について）
図２７は、筆記方向から複数の文字方向を仮定する場合についての説明図である。なお、文字方向推定処理では、文字列構成要素のなかの文字数が少ないと正しく文字方向を推定できない場合が想定される。それを防ぐために、良く現れる文字方向を仮定して、認識候補に加えるのが文字方向仮定処理の目的のひとつである。
【００９３】
ここでの処理では、例えば、図示のように、文字列構成要素（ここでは、「今日の献立」）の筆記方向（図中、実線の矢印）から良く現れる文字方向（図中、点線の矢印）を仮定する。この文字方向としては、筆記方向の正負方向、それに垂直な２方向、及び、図２７のように、入力装置（又は筆記面）の上下方向、左右方向を仮定しているが、これらに限定するわけではない（ここでは、文字方向としては、筆記面の上下左右の方向を仮定している）。なお、文字方向の推定によって絞り込める場合は、これらの仮定の候補数を少なくしたり省略したりすることができる。なお、文字方向仮定処理は、図２６のように、文字方向が表示画面に対し上下方向に限られる場合には省略することができる。
【００９４】
（ステップＳ２１１：認識用文字方向補正回転処理について）
図２８は、認識用文字方向補正回転処理の説明図である。
文字切出し処理部１２は、例えば、ステップＳ２０７での文字方向推定処理によって推定された文字方向、および、ステップＳ２０９での文字方法仮定処理によって仮定された文字方向ごとに、文字列構成要素を内部データとして適宜の内部メモリにコピーし、その文字方向が上向きになるように回転する。ここでは、図中、表示画面上に表示された、文字方向がほぼ右向きの文字列構成要素「今日の献立」を回転することにより、文字方向が上向きである文字方向補正文字列構成要素を得ている。なお、文字切出し処理部１２は、回転後の文字列構成要素である文字方向補正文字列構成要素は、ステップＳ２２３での認識結果の整形表示処理で利用するため、文字方向補正文字列構成要素ごとに回転中心及び回転角を適宜の内部メモリに保持する。また、文字方向補正文字列構成要素ごとの回転角は、文字方向補正文字列構成要素に含まれる文字ごとにも適用される。
【００９５】
（ステップＳ２１３：筆記方向量子化処理について）
図２９は、筆記方向量子化処理を示すフローチャートである。
文字切出し処理部１２は、ここでは、ステップＳ２１１により得られた文字方向補正文字列構成要素ごとに、最初のストロークの始点座標と最終ストロークの終点座標から筆記方向を求め、それを一定の量子化区分に分割する。ここでの処理は、図９に示した筆記方向の推定をより精密化した処理であって、少なくとも４方向（上下左右）に量子化するものである。なお、水平右向きをＸの正方向、垂直下向きをＹの正方向とする。
【００９６】
まず、文字切出し処理部１２は、文字方向補正文字列構成要素の外接矩形の縦Ｙと横Ｘとの縦横比がＸ＞Ｙであるか否かを判定し（Ｓ２１３１）、Ｘ＞Ｙでなければ、文字方向補正文字列構成要素中の始点と終点とのＹ座標の差（始点Ｙ座標−終点Ｙ座標）が０より大きいか否かを判定する（Ｓ２１３２）。つぎに、文字切出し処理部１２は、ステップＳ２１３２でＹ座標の差が０より大きい場合、筆記方向を上向きと判定し、一方、Ｙ座標の差が０以下である場合、筆記方向を下向きと判定し、それぞれの判定結果である筆記方向をストローク内部情報として、文字方向補正文字列構成要素ごとに付加する（Ｓ２１３３）。
【００９７】
一方、文字切出し処理部１２は、ステップＳ２１３１において、Ｘ＞Ｙであれば、文字方向補正文字列構成要素中の始点と終点とのＸ座標の差が０より大きいか否かを判定する（Ｓ２１３４）。つぎに、文字切出し処理部１２は、ステップＳ２１３４でＸ座標の差（始点Ｘ座標−終点Ｘ座標）が０より大きい場合、筆記方向を左向きと判定し、一方、Ｘ座標の差が０以下である場合、筆記方向を右向きと判定し、それぞれの判定結果である筆記方向をストローク内部情報として、文字方向補正文字列構成要素ごとに付加する（Ｓ２１３３）。
【００９８】
このように、筆記方向量子化を少なくとも４方向で行うことは、不自然な過分割を防ぐためである。具体的には、例えば、横書き（さらに、右書き）の場合、そのなかでの左向きの運筆は文字の区切りでないことが多いために、それ以前のストロークをまとめる（結合する）という処理を行うことができ、その結果、細かな過分割が少なくなり認識率を向上することができる。
【００９９】
４方向以上にさらに細かく量子化すれば、斜めに書かれた文字列に対して、より安定に過分割を防止できる。しかし、現実的には４方向でほぼ十分である。今仮に、筆記方向が右下斜め方向の場合を考える。この場合、左上斜め方向への運筆によって文字をまとめることができる。筆記方向を４方向に量子化することにより、右下斜めへの筆記方向が右方向と判定される場合（ア）と、下方向と判定される場合（イ）を考える。（ア）の右方向と判定される場合、左上斜め方向への運筆が左方向と判定されれば、文字をまとめる情報として利用される。一方、この運筆が上方向と判定されると、文字をまとめる情報としては利用されないが、幾分過分割が増えるだけで、仮分割修正処理と文脈処理を伴った認識処理で、文字列はほぼ正しく分割および認識がなされる。（イ）の筆記方向が下方向と判定される場合、左上斜め方向への運筆が上方向と判定されれば、文字をまとめる情報として利用される。一方、この運筆が左方向と判定されると、文字をまとめる情報としては利用されないが、幾分過分割が増えるだけで、仮分割修正処理と文脈処理を伴った認識処理で、文字列はほぼ正しく分割および認識がなされる。今、右下斜め方向への筆記方向を取り上げたが、左下斜め方向、右上斜め方向、左上斜め方向も同様である。
【０１００】
（ステップＳ２１５：仮分割処理について）
ここでは、文字切出し処理部１２は、例えば、改行や文字列間隔などで区切られる文字列構成要素ごとに、文字サイズ、ストローク間の重心間距離（重心間射影距離）、ストロークの重なり具合などを考慮し、文字としての分割候補点の決定やストローク同士の結合などの判定を行なう。この仮分割処理は、上述のステップＳ１０７での仮分割処理と同様である（図１０、１１及びその説明箇所参照）。
【０１０１】
（ステップＳ２１７：仮分割修正処理について）
ここでの仮分割修正処理も、ステップＳ２１５での仮分割処理と同様に、上述のステップＳ１０９での仮分割修正処理と同様である（図１２及びその説明箇所参照）。すなわち、仮分割修正処理は、ステップＳ２１５での仮分割処理によって生成された文字候補同士を、文字サイズ、文字要素間の重心間距離（重心間射影距離）、文字要素同士の重なり具合などを考慮し、仮分割によって生成された文字要素をさらに評価し、要素同士の結合を行なっていく処理である。
【０１０２】
（ステップＳ２１９：文脈処理を伴った認識処理について）
ここでの文脈処理を伴った認識処理は、上述のステップＳ１１１での処理と同様であって、最尤文字列探索部１５により、文字サイズや文脈、認識結果などを統合して動的計画法に基づいて行われ、最終的な認識結果を求める処理である。なお、ステップＳ２１１での認識用文字方向補正回転処理からステップＳ２１９での文脈処理を伴った認識処理までは、上述のように、複数の文字方向補正文字列構成要素に対して適用されることになる。
【０１０３】
（ステップＳ２２１：最適文字方向選択処理について）
つぎに、最尤文字列探索処理部１３は、ステップＳ２０７とステップＳ２０９によって推定あるいは仮定された文字方向ごとに、ステップＳ２１１からステップＳ２１９までの処理で得られた複数の文字方向補正文字列構成要素のそれぞれに対する認識処理の結果としての認識スコアを求める。そして、最尤文字列探索処理部１３は、求められた認識スコアのなかで最も高い得点の文字方向と、その文字方向における文字方向補正文字列構成要素を選択する。
【０１０４】
（ステップＳ２２３：認識結果の整形表示処理について）
図３０は、認識結果の整形表示処理の前段階の認識結果を示す図（１）である。ここで、図中、上述のステップＳ２０１〜Ｓ２２１までの認識結果の一例を示す。
まず、認識前の文字列構成要素（２つの「農工大」）は、上述の各処理によって、それぞれの文字列構成要素の重心を中心にして文字方向が上向きになるように回転補正して認識されている。この回転補正された文字列構成要素は、文字方向補正文字列構成要素として、図３０の認識後の上側のウインドウ（筆記面）に表示される。また、文字方向補正文字列構成要素（２つの「農工大」）の認識結果は、図３０の認識後の筆記面の右下のウインドウ内に表示される。
【０１０５】
図３１は、認識結果の整形表示処理の前段階の認識結果を示す図（２）である。
まず、認識前の文字列構成要素（４つの「農工大」）は、上述の各処理によって、それぞれの文字列構成要素の重心を中心にして文字方向が上向きになるように回転補正して認識されている。この回転補正された文字列構成要素は、文字方向補正文字列構成要素として、図３１の認識後の上側のウインドウ（筆記面）に表示される。また、文字方向補正文字列構成要素（４つの「農工大」）の認識結果は、図３１の認識後の筆記面の右下のウインドウ内に表示される。なお、図３１の認識前の筆記面において上から逆向きに書かれた文字列構成要素「農工大」の認識結果の表示が、認識後の筆記面で傾いているのは、文字方向の推定がこの程度の誤差を伴うことを示している。しかしながら、最尤文字列探索処理部１３の認識エンジン部１４は、一般にこの程度の文字方向変動には対処できるので認識結果のコード列は、図３１の認識後の筆記面の右下のウインドウ内に表示されているように、正しい結果を得ることができる。
【０１０６】
つぎに、上述した認識結果の整形表示処理の前段階の処理を経た、認識結果の整形表示処理について説明する。なお、認識結果の整形表示処理としては、例えば、文字方向補正文字列構成要素毎に回転する場合と、文字方向補正文字列構成要素に含まれる各文字毎に回転する場合とがある。
図３２は、認識結果の整形表示処理についてのフローチャート（１）である。なお、ここでの処理は、例えば、上述した認識結果を利用して、最初の手書き文字列に近いレイアウト又は状況で認識結果表示を行う処理であって、筆記方向を推定した文字列構成要素ごとに、その筆記方向、文字方向、平均文字サイズ、平均文字間隔に従って、認識結果である文字フォント列を配置して表示する。
【０１０７】
最尤文字列探索処理部１３は、文字方向補正文字列構成要素ごとに手書き文字の平均サイズを求め（Ｓ２２３１）、この平均サイズに近い出力文字ポイント数（フォントの大きさ）を決めると共に（Ｓ２２３２）、手書き文字間の縦横それぞれの平均間隔を求める（Ｓ２２３３）。つぎに、最尤文字列探索処理部１３は、文字コード列に従い、ステップＳ２２３２での出力ポイント数、かつ、ステップＳ２２３３での平均間隔で、筆記方向に従って文字フォント列を内部バッファに配置する（Ｓ２２３４）。また、最尤文字列探索処理部１３は、ステップＳ２２３４により、内部バッファに配置された文字フォント列を、回転中心において回転角だけ逆回転して表示する（Ｓ２２３５）。すなわち、ここでの認識結果の整形表示処理は、文字列構成要素のフォントパターン列を内部バッファに配置し、それを回転することにより整形表示を実現している。
【０１０８】
なお、ステップＳ２２３５での文字フォントの表示方法としては、元の手書き文字の近くに配置したり、筆記文字に重ね書きすることもできる。なお、ステップＳ２２３１での文字サイズ、ステップＳ２２３３での平均間隔に伴う文字位置及びステップＳ２２３４で用いられる文字コードは、上述の図３０、３１での認識後の筆記面に示すように、認識結果の整形表示処理の前段階の処理又はそれ以前の処理により決定されている。
【０１０９】
図３３は、認識結果の整形表示処理において各文字毎に回転する場合の説明図である。図３４は、認識結果の整形表示処理についてのフローチャート（２）である。なお、ここでの処理は、文認識結果の整形表示面において、文字方向補正文字列構成要素に含まれる文字（ここでは、文字フォント）毎のフォント表示の基点を算出し、この基点に文字フォントを回転して配置する。
【０１１０】
最尤文字列探索処理部１３は、文字方向補正文字列構成要素ごとに手書き文字の平均サイズを求め（Ｓ２２３１）、この平均サイズに近い出力文字ポイント数を決めると共に（Ｓ２２３２）、手書き文字間の縦横それぞれの平均間隔を求める（Ｓ２２３３）。つぎに、最尤文字列探索処理部１３は、文字コード列に従い、ステップＳ２２３２での出力ポイント数、かつ、ステップＳ２２３３での平均間隔で、筆記方向に従って、ｉ番目の文字フォントを配置する場合の基点（Ｘｉ、Ｙｉ）を、回転中心を原点として計算する（Ｓ２２３６）。また、最尤文字列探索処理部１３は、認識結果の整形表示面において、次の数式１に従って、フォント表示の基点を求める（Ｓ２２３７）。
【０１１１】
【数１】
2007172639.tif 000005
【０１１２】
ただし、θは、この文字方向補正文字列構成要素に記録され、これを文字毎に適用するための回転角である。また、（ＸＣ、ＹＣ）は、表示画面における回転中心である。
また、最尤文字列探索処理部１３は、ｉ番目のフォントについて、フォントを−θだけ回転して、ステップＳ２２３７により得られた（Ｘｉ´、Ｙｉ´）を基点に配置する（Ｓ２２３８）。ここでは、図３３に示すように、文字方向補正文字列構成要素「農工大」に含まれる１番目のフォント「農」、２番目のフォント「工」、３番目のフォント「大」を、−θだけ回転してそれぞれ配置することにより、最初の手書き文字列に近い認識結果の表示を行っている。すなわち、ここでの認識結果の整形表示処理は、整形表示後の文字位置を文字ごとに計算して、それに合うようにフォントを回転して配置することにより整形表示を実現している。
【０１１３】
以下に、図３２、３４に示す認識結果の整形表示処理を行うことで示される認識結果の整形表示を示す。
図３５は、認識結果の整形表示を示す図（１）である。ここでの文字フォントは、手書き文字に置き換えて表示する例を示している。なお、図中左側が手書き入力、図中右側が手書き入力に対する整形表示後の出力を示している。
ここで、文字サイズ、文字位置、筆記方向及び文字方向の異なる、手書き入力された各文字列構成要素「今日の献立」「カツ丼」「天丼」「うな丼」「親子丼」は、整形表示後、それぞれ最初の手書き文字列に近い認識結果の表示が行われる。
【０１１４】
図３６は、認識結果の整形表示を示す図（２）である。なお、ここでは、図３６での手書き入力を示す図に対応するのは、図３１での認識前を示す図である。
ここで、文字サイズ、文字位置、筆記方向及び文字方向の異なる、手書き入力された各文字列構成要素（ここでは、４つの「農工大」）は、整形表示後、それぞれ最初の手書き文字列に近い認識結果の表示が行われる。なお、図３１に示す認識前の筆記面で上から逆向きに書かれた「農工大」の認識結果表示が、認識後の筆記面で傾いていたことにより、文字認識結果は正しいが、文字方向の推定に誤差が発生したことになり、その文字方向を復元した図３６での認識結果の整形表示では、文字フォントが多少傾いて表示されることになる。
【０１１５】
このように、本実施の形態によれば、キーボードに変わる（あるいは共存する）より自然な文字入力を可能とする文字入力手段や、マウスやキーボードが苦手な人のための文字入力手法及びペンインタフェースを用いることによる、思考を妨げない自然な文字入力手法を提供することができると共に、文字の筆記方向や文字の向いている文字方向に依存しない認識を行うことで、これまで困難であった、文字の傾きやあらゆる方向に書かれた文字列を認識することができる。
【０１１６】
なお、本発明の文字認識方法は、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体、文字認識プログラムを含みコンピュータの内部メモリにロード可能なプログラム製品、文字認識プログラムを含みコンピュータが使用可能な記録媒体にストアされたプログラム製品等により提供されることができる。
【産業上の利用可能性】
【０１１７】
本発明は、例えば、文字認識を用いる装置等に利用可能である。
【図面の簡単な説明】
【０１１８】
【図１】本発明に関する筆記方向に依存しない枠なし文字認識装置を適用したオンライン枠なし文字認識システムの概略構成図。
【図２】本発明に関する文字認識方法のフローチャート。
【図３】文字サイズ推定処理についての説明図。
【図４】文字要素間遷移分布を示す説明図。
【図５】横書きと縦書きが混在する文字列を示す図。
【図６】筆記方向変化点の検出を示す説明図。
【図７】最遠点を再帰的に求めた場合についての説明図。
【図８】筆記方向変化が微小である場合について説明図。
【図９】筆記方向推定についての説明図。
【図１０】筆記方向別の仮分割を示す説明図。
【図１１】分割時の評価についての説明図。
【図１２】仮分割修正についての説明図。
【図１３】重なりの評価を示す説明図。
【図１４】実験用オンライン枠なし文字パターンデータを示す図。
【図１５】正認識の例を示す図（１）。
【図１６】正認識の例を示す図（２）。
【図１７】従来の枠なし文字列認識及び単文字認識を開始した際の表示画面についての説明図。
【図１８】筆点座標とストロークの説明図。
【図１９】文字方向と筆記方向の説明図。
【図２０】本実施の形態に関する文字認識方法のフローチャート。
【図２１】文字列構成要素分割処理についての説明図。
【図２２】文字サイズ詳細推定処理の説明図。
【図２３】文字方向と方向別筆点間距離累積ヒストグラムの説明図。
【図２４】方向別筆点間距離累積ヒストグラムにおけるピークの検出についての説明図。
【図２５】ピークの検出を示すフローチャート。
【図２６】文字方向が上下しかない場合でのピークの検出についての説明図。
【図２７】筆記方向から複数の文字方向を仮定する場合についての説明図。
【図２８】認識用文字方向補正回転処理の説明図。
【図２９】筆記方向量子化処理を示すフローチャート。
【図３０】認識結果の整形表示処理の前段階の認識結果を示す図（１）。
【図３１】認識結果の整形表示処理の前段階の認識結果を示す図（２）。
【図３２】認識結果の整形表示処理についてのフローチャート（１）。
【図３３】認識結果の整形表示処理において各文字毎に回転する場合の説明図。
【図３４】認識結果の整形表示処理についてのフローチャート（２）。
【図３５】認識結果の整形表示を示す図（１）。
【図３６】認識結果の整形表示を示す図（２）。
【符号の説明】
【０１１９】
１  文字列認識システム
２  ユーザ
３  アプリケーション
４  入力出力部
５  入力文字列パターン入力部
６  認識結果出力部
１０  認識コントロール部
１１  文字サイズ推定処理部
１２  文字切出し処理部
１３  最尤文字列探索処理部
１４  認識エンジン部
１５  最尤文字列探索部
【図１】
2007172639.tif 000006
【図２】
2007172639.tif 000007
【図３】
2007172639.tif 000008
【図４】
2007172639.tif 000009
【図５】
2007172639.tif 000010
【図６】
2007172639.tif 000011
【図７】
2007172639.tif 000012
【図８】
2007172639.tif 000013
【図９】
2007172639.tif 000014
【図１０】
2007172639.tif 000015
【図１１】
2007172639.tif 000016
【図１２】
2007172639.tif 000017
【図１３】
2007172639.tif 000018
【図１４】
2007172639.tif 000019
【図１５】
2007172639.tif 000020
【図１６】
2007172639.tif 000021
【図１７】
2007172639.tif 000022
【図１８】
2007172639.tif 000023
【図１９】
2007172639.tif 000024
【図２０】
2007172639.tif 000025
【図２１】
2007172639.tif 000026
【図２２】
2007172639.tif 000027
【図２３】
2007172639.tif 000028
【図２４】
2007172639.tif 000029
【図２５】
2007172639.tif 000030
【図２６】
2007172639.tif 000031
【図２７】
2007172639.tif 000032
【図２８】
2007172639.tif 000033
【図２９】
2007172639.tif 000034
【図３０】
2007172639.tif 000035
【図３１】
2007172639.tif 000036
【図３２】
2007172639.tif 000037
【図３３】
2007172639.tif 000038
【図３４】
2007172639.tif 000039
【図３５】
2007172639.tif 000040
【図３６】
2007172639.tif 000041