TOP > 国内特許検索 > 文字認識方法、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体及び文字認識装置 > 明細書

明細書 :文字認識方法、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体及び文字認識装置

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第3958003号 (P3958003)
公開番号 特開2002-175498 (P2002-175498A)
登録日 平成19年5月18日(2007.5.18)
発行日 平成19年8月15日(2007.8.15)
公開日 平成14年6月21日(2002.6.21)
発明の名称または考案の名称 文字認識方法、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体及び文字認識装置
国際特許分類 G06K   9/34        (2006.01)
G06K   9/20        (2006.01)
G06K   9/62        (2006.01)
FI G06K 9/34
G06K 9/20 320K
G06K 9/62 G
請求項の数または発明の数 11
全頁数 36
出願番号 特願2001-259576 (P2001-259576)
出願日 平成13年8月29日(2001.8.29)
新規性喪失の例外の表示 特許法第30条第1項適用 2000年6月16日 社団法人電子情報通信学会発行の「電子情報通信学会技術研究報告 信学技報 Vol.100 No.135」に発表
優先権出願番号 2000300214
優先日 平成12年9月29日(2000.9.29)
優先権主張国 日本国(JP)
審査請求日 平成16年1月20日(2004.1.20)
特許権者または実用新案権者 【識別番号】503360115
【氏名又は名称】独立行政法人科学技術振興機構
発明者または考案者 【氏名】中川 正樹
【氏名】稲村 祐一
【氏名】福島 貴弘
個別代理人の代理人 【識別番号】100107010、【弁理士】、【氏名又は名称】橋爪 健
審査官 【審査官】佐藤 実
参考文献・文献 特開平11-066238(JP,A)
特開昭57-161894(JP,A)
特開平09-044596(JP,A)
調査した分野 G06K 9/00~9/76
特許請求の範囲 【請求項1】
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字列の文字サイズを推定する文字サイズ推定ステップと、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定ステップと、
前記筆記方向推定ステップにより推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割ステップと、
前記仮分割ステップにより仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正ステップと
を含む文字認識方法。
【請求項2】
前記仮分割修正ステップにより修正された文字列に対して文字認識を行うと共に、該文字認識の認識結果を出力する認識結果出力ステップをさらに含む請求項に記載の文字認識方法。
【請求項3】
前記文字サイズ推定ステップでは、
文字の各文字要素の幅又は高さのうち大きい値をストロークサイズとし、該ストロークサイズから文字サイズを推定するようにした請求項1又は2に記載の文字認識方法。
【請求項4】
前記筆記方向推定ステップでは、
筆記方向変化の検出を再帰的に行い、筆記方向が複数回変化する文字列にも対応するようにした請求項1乃至3のいずれかに記載の文字認識方法。
【請求項5】
前記筆記方向推定ステップでは、
筆記方向を推定する際、特定された文字列構成要素の外接矩形の横の長さが縦の長さより大きければ筆記方向を横方向と推定し、及び、横の長さが縦の長さより小さければ筆記方向を縦方向と推定するようにした請求項1乃至4のいずれかに記載の文字認識方法。
【請求項6】
前記仮分割ステップでは、
文字列の筆記方向変化が所定値よりも小さく、かつ、分割後の文字サイズが推定文字サイズよりも大きければ、評価中の文字要素を仮分割するようにした請求項1乃至5のいずれかに記載の文字認識方法。
【請求項7】
記仮分割ステップでは、
文字列の各文字列構成要素の筆記方向情報に基づいて、横方向又は縦方向の文字要素同士の重心間射影距離、及び/又は、該文字要素の外接矩形の横方向又は縦方向の重なり具合を評価し、仮分割を行うようにした請求項1乃至6のいずれかに記載の文字認識方法。
【請求項8】
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字列の文字サイズを推定する文字サイズ推定ステップと、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定ステップと、
前記筆記方向推定ステップにより推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割ステップと、
前記仮分割ステップにより仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正ステップと
コンピュータに実行させるための文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項9】
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する入力文字列パターン入力部と、
前記入力文字列パターン入力部により入力された文字列の文字サイズを推定する文字サイズ推定処理部と、
前記文字列の切出し処理を行う文字切出し処理部と
を備え、
前記文字切出し処理部は、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定手段と、
前記筆記方向推定手段により推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割手段と、
前記仮分割手段により仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正手段と
を備えた文字認識装置。
【請求項10】
前記仮分割修正手段により修正された文字列に対して文字認識を行う認識エンジン部と、
前記認識エンジン部による認識結果を表示するアプリケーションと
をさらに備えた請求項に記載の文字認識装置。
【請求項11】
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字列の文字サイズを推定する文字サイズ推定ステップと、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定ステップと、
前記筆記方向推定ステップにより推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割ステップと、
前記仮分割ステップにより仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正ステップと
をコンピュータに実行させるための文字認識プログラム。
発明の詳細な説明 【0001】
【発明の属する技術分野】
本発明は、文字認識方法、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体及び文字認識装置に係り、特に、キーボードを使用せず、記入枠(筆記枠)を設けることなく、自由な方向(例えば、縦、横及び斜め方向)で手書き入力された文字(文字列)を認識することのできる文字認識方法、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体及び文字認識装置
に関する。
【0002】
【従来の技術】
近年、表示装置を備えたコンピュータに文字を入力する際、キーボードを使用せず、マウス、タブレット等の適宜の卓上型のディジタイザ(座標読み取り装置)を使用して、設定された枠内に手書き入力を行い、この手書き入力された文字を文字認識する方法が知られている。ここで、手書き入力とは、ストローク入力(文字要素入力)とも呼ばれ、例えば、文字入力、描画の一筆、2点間の描線等、表現し得る文字や線等の入力をいう。この方法によれば、キーボード操作に不慣れな人々でも、コンピュータ等の表示装置上に所望の文字を入力し、種々の文章を作成することができるようになる。
【0003】
また、従来の方法では、コンピュータのアプリケーション(応用ソフト)によっては、予め1文字ごとに記入すべき枠が設定されている場合があった。このような枠内の単一文字での認識(以後、単文字認識)は、本来、PDA(携帯型情報端末)などの小型端末での文字入力の一手法として実用化されており、この認識能力は、実用に十分耐えうるものであって、既存のPDAやノートPC等の文字入力インタフェースとして定着している。
【0004】
しかしながら、この単文字認識では、筆記者(ユーザ)が手書き入力をする際、記入位置がその枠内に限定され、書きにくくなったり、また、文字を一つの枠内に対して1文字しか手書き入力できないので、ユーザが連続した文章を作成する際、時間と手間とが必要となる場合が想定される。その結果として、この単文字認識では、文字記入枠内に1文字ずつ記入された文字を順次認識していくため、筆記者にとっては、文字を複数の文字列としてではなく個々の文字として入力することが、例えば、心理的負担となり、円滑な文字入力を期待できないことがある。
【0005】
上述の事項を防止するためには、予め枠を設定しない、いわゆる「枠なし」文字列認識を提案すればよい。この枠なし文字列認識は、近年の「教育の情報化」に伴った学校教育における対話型電子黒板(通常、白板)の導入、PDA及びペンPCに搭載される液晶画面の大型化に伴った記入及び描画スペースの拡大等により、例えば、ペンインタフェースを用いた文字入力時の自由度(所望の筆記方向で文字入力すること)に関する要求に応じて注目を集めており、いわゆるオンライン手書き文字認識技術の流れは、枠内の単一文字での認識(以後、単文字認識)から、上述の文字記入枠という概念を取り払い、筆記者の意図する所望の文字列(フレーズ)を心理的負担なく入力する手法である、記入/描画スペースに入力された文字列を一括して認識できる枠なし文字列認識へと移行しつつある。
【0006】
図17は、従来の枠なし文字列認識及び単文字認識を開始した際の表示画面についての説明図である。
枠なし文字列認識の表示画面100には、例えば、枠のない入出力表示画面(描画領域)101、機能入力部102とが表示される。また、筆記者が文字列(ここでは、「東京農工大学工学部電子情報工学科」)を記入すると、各文字の区切り位置を示す外接矩形103が表示され、文字列を一括認識し、例えば、この外接矩形103内に各文字の認識結果を表示することもできる。機能入力部102は、複数の機能に対応し、認識対象である手書き入力文字に対して、例えば、クリックして適宜の指示を実行すれば、手書き入力文字に対して最適な操作を行うように配置されている。機能入力部102は、例えば、認識ボタン、消去ボタン等を備える。
【0007】
また、単文字認識の表示画面200には、例えば、予め枠203を設定された入出力表示画面201、機能入力部202とが表示されている。また、筆記者が、例えば、電子ペン204を用いて枠203内に1文字ずつ記入すると(ここでは、「学」、「工」、「大」)、記入された文字は、単文字認識される。
【0008】
【発明が解決しようとする課題】
しかしながら、枠なし文字認識における既存の研究では、横書きの文字列のみを認識対象としたものがほとんどであった。例えば、候補文字ラティスによる枠なし筆記文字列のオンライン認識(村瀬洋、若原徹、梅田三千雄:電子情報通信学会論文誌、vol.J68, no. 4, pp.765-772 (1985) )では、枠なしだと偏と旁の間で文字を分離してしまうことがあるので、分離して認識した場合と、一緒にして認識した場合とでのそれぞれの文字認識の確からしさの高いほうを採用するような処理をしている。しかし、この手法では、言語処理を検証の部分にしか使っていないこと、文字切出しの確からしさは評価していないこと、評価関数のパラメータを経験的に設定していること等の認識率の向上を妨げる要因がある。
【0009】
また、切出し・認識・言語の確信度を統合した枠なしオンライン文字列認識手法(仙田修司、濱中雅彦、山田敬嗣:信学技報、PRMU, vol.98-138, no.489, pp.17-24 (1998.12).)では、筆記者によって記入された文字の文字サイズの確からしさを考慮していない。また、特願平8-250558号公報では、横書き、縦書きの混在した文字列は、認識の対象外であり、さらに、文字列の筆記方向をシステムに教えるために、筆記者がベースラインを記入する必要がある。
【0010】
また、上述の手法では、特願平8-250558号公報以外は、すべて横書きの文字列を仮定した処理を示している。これらにおいては、例えば、文字列の座標軸であるx軸、y軸を逆にすることによって、縦書きに対応する処理を行うことは、可能である。このような枠なし文字認識では、横書きに限らず、筆記方向を限定することによって、文字列に含まれる各文字要素の文字サイズ推定を容易とし、文字切出しの方向を横または縦方向に限定することにより過分割を防止し、文字種候補の絞込みを行うことができる。
【0011】
しかしながら、筆記者が縦書きと横書きを混在させたり、横書きから続けて縦書きに移ったり、その反対に、縦書きから横書きに移ったりする場合、従来の方法では対応できず、十分な文字認識を行うことは困難であった。さらに、既存のシステムでは、筆記者による入力の自由度(筆記方向などの筆記時の自由度を指す)の損失が想定される。
【0012】
すなわち、上述の筆記方向を限定した場合、いずれもシステム側にはある程度の利点があるが、この利点は、ユーザの要求を満たすものではない。枠なし文字認識において、ユーザにとって使いやすい認識システムとは、頭に思い浮かんだ文章を自然に筆記した状態で認識できるシステムであると考えられる。さらに、筆記時における自由度の損失は、少なからず筆記者の思考を妨げる原因にもなり得る。
さらに、上述の枠なし文字列認識では、例えば、ひとり又は複数の筆記者が筆記面に対して、正面の横からや反対側から、縦書き、横書き、斜め書きすることも想定されるので、筆記時における自由度の損失である筆記制限を一層緩和する必要がある。加えて、近年の「教育の情報化」に伴った学校教育における対話型電子白板の導入や液晶画面の大型化などの各種状況に伴い、ペンインタフェースを用いた文字入力時の制限緩和に関する要求は、さらに高まると予想できる。
具体的な状況としては、例えば、銀行などの窓口業務などにおいては、受付者と顧客とが異なる方向(例えば、向かい合って)から書かれた文字列を認識する必要がある場合、電子白板に斜め書きされた場合、さらに、CADなどを用いた開発の場面などで、例えば、平面設置された画面上に表示された図面を、複数の開発者などが取り囲んで、文字などを記入する場合、等の状況が想定される。
そこで、枠なし文字列認識では、例えば、文字入力として、ペンタブレット等を用いた自由な文字入力と、対話的あるいは協調的な文字入力と、同一タブレット等上での複数の筆記者からの文字入力とを考慮すると共に、電子白板上での板書、整形表示、保存、再利用を行えることが望ましい。
【0013】
本発明は、以上の点に鑑み、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識(自由筆記文字列認識)を行うことを目的とする。
また、本発明は、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことを目的とする。また、本発明は、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことを目的とする。
【0014】
また、本発明は、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することを目的とする。また、本発明は、例えば、筆記方向、文字方向、行ごとの文字の大きさ変動に依存しない枠なし文字認識を行うことを目的とする。
【0015】
本発明の第1の解決手段によると、
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字列の文字サイズを推定する文字サイズ推定ステップと、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定ステップと、
前記筆記方向推定ステップにより推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割ステップと、
前記仮分割ステップにより仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正ステップと
を含む文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【0016】
本発明の第2の解決手段によると、
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字列の文字サイズを推定する文字サイズ推定ステップと、
文字サイズに対応するしきい値以上の筆記点座標の変位に基づいて、文字列を特定する筆記推定ステップと、
前記筆記推定ステップにより求められた筆記推定文字列の仮分割を行う仮分割ステップと、
前記仮分割ステップにより仮分割候補とされた筆記推定文字列の各文字要素を、各文字要素の重なり具合に応じて、分割又は統合を行う仮分割修正ステップとを含む文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【0017】
本発明の第3の解決手段によると、
枠又は線なしで、かつ筆記方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する入力文字列パターン入力部と、
前記入力文字列パターン入力部により入力された文字列の文字サイズを推定する文字サイズ推定処理部と、
前記文字列の切出し処理を行う文字切出し処理部と
を備え、
前記文字切出し処理部は、
文字列に含まれる各文字要素間距離と、推定された文字サイズに対応する第1のしきい値とに基づいて、文字列の改行状況を検出して文字列を文字列構成要素に分割し、及び、改行で区切られた文字列構成要素について文字列の始点と終点を結ぶ直線から文字サイズ以上離れた最遠点を求めることにより前記最遠点を筆記方向の変化点として検出し、改行で区切られた各文字列構成要素を筆記方向の前記変化点でさらに分割し、及び、文字列構成要素の外接矩形の縦の長さ及び横の長さに基づき文字列構成要素毎に筆記方向を推定する筆記方向推定手段と、
前記筆記方向推定手段により推定された筆記方向に沿って、文字列仮分割して文字構成要素を求める仮分割手段と、
前記仮分割手段により仮分割された各文字構成要素に対し、各文字構成要素の外接矩形の重なり面積が第2のしきい値以上であれば該文字構成要素を統合する仮分割修正手段と
を備えた文字認識装置を提供する。
本発明の第4の解決手段によると、
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第1文字列構成要素へ分割する分割ステップと、
前記分割ステップにより分割された第1文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する文字方向推定ステップと、
前記文字方向推定ステップにより推定された文字方向が上向きになるように、該第1文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第1文字列構成要素を回転して、第2文字列構成要素を得る回転ステップと、
該第2文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと
を含む文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
本発明の第5の解決手段によると、
枠又は線なしで、かつ、文字サイズ、筆記方向及び文字方向を特定せずに手書き入力された文字列の各文字要素に関する情報を入力する文字列入力ステップと、
前記文字列入力ステップにより入力された文字要素の文字サイズを推定する文字サイズ推定ステップと、
前記文字サイズ推定ステップにより推定された推定文字サイズ及び文字を構成する隣接する各ストロークの間隔に基づいて、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、第1文字列構成要素へ分割する分割ステップと、
筆記方向の正負方向、それに垂直な2方向、所望の筆記面の上下左右方向のいずれか又は複数を、文字方向と仮定する文字方向仮定ステップと、
前記文字方向仮定ステップにより仮定された複数の文字方向に対して、それぞれ、文字方向が上向きになるように、該第1文字列構成要素毎の回転中心及び回転角を求めメモリに記憶し、該第1文字列構成要素を回転して、複数の第2文字列構成要素を得る回転ステップと、
それぞれの文字方向に対する該第2文字列構成要素の各文字要素に対して、文字認識を行う認識ステップと、
前記認識ステップにより文字認識されたそれぞれの文字方向に対する第2文字列構成要素のうち、認識の確からしさが高い文字方向及び第2文字列構成要素を選択する選択ステップと
を含む文字認識方法、文字認識プログラム及び文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【0018】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を詳細に説明する。
(1)第1の実施の形態
図1は、本発明に関する筆記方向に依存しない枠なし文字認識装置を適用したオンライン枠なし文字認識システムの概略構成図である。
文字認識システム1は、自由筆記文字列認識のベースとなるものであり、例えば、文字列の入力・認識結果の出力を行う入力出力部4、及び枠なし手書き文字(文字列)の認識コントロール部10を備え、ユーザ2から手書き文字列が入力され、アプリケーション3に認識結果が出力される。入力出力部4は、例えば、入力文字列パターン入力部5と、認識結果出力部6とを備える。
【0019】
入力文字列パターン入力部5は、例えば、対話型電子白板、表示一体型タブレット、その他のタブレット等の適宜の卓上型のディジタイザ、マウス、トラックボール、電子ペン等のポインティングデバイスを用いて、ユーザ(筆記者)2により自由な方向(例えば、縦、横及び斜め方向)で入力された文字列のパターンを認識コントロール部10に入力する。認識結果出力部6は、認識コントロール部10から出力される文字列認識の認識結果をアプリケーション3に出力する。
【0020】
認識コントロール部10は、例えば、文字サイズ推定処理部11、文字切出し処理部12及び最尤文字列探索処理部13を備える。文字サイズ推定処理部11は、筆記者により入力された文字列に含まれる各文字のサイズを推定する。文字切出し処理部12は、改行状況、筆記方向の変化状況に基づいた筆記方向の推定、ストローク(文字要素)間の幾何学的特徴評価に基づいた仮分割、仮分割修正等による文字の切れ目を検出する(詳細は後述する)と共に、文字候補の生成(文字切出し)を行う。最尤文字列探索処理部13は、文字切出し後の文字列に含まれる各文字要素に対して、確からしい文字列の探索及び文字認識を行う。さらに、最尤文字列探索処理部13は、例えば、枠なし文字列の文字認識を行う既存の認識エンジン部14と、文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を行う最尤文字列探索部15とを備える。
【0021】
図2は、本発明に関する文字認識方法のフローチャートである。なお、説明の便宜上、ここでのフローチャートの説明は、概略的なものとし、具体的な説明は後述する。
まず、筆記方向を予め推定し、筆記方向別に切出しを行う、筆記方向推定による文字切出し方法について説明する。この筆記方向推定による文字切出し方法は、文字列を構成するストローク(文字要素)の特徴に基づいて、文字サイズ、筆記(運筆)方向の推定を行うと共に、この筆記方向別に仮分割及び仮分割修正を行うものである。
【0022】
入力文字列パターン入力部5により、ユーザ2による枠なしで自由な方向で入力された文字列のパターンが入力される(S101)。入力された文字列パターンに含まれる各文字は、文字サイズ推定処理部11により、文字サイズを推定される(S103)。次に、文字切出し処理部12は、例えば、改行、筆記方向変化点に基づいて文字列の筆記方向(横、縦、斜め等)の推定を行う(S105)。さらに、文字切出し処理部12は、推定された筆記方向に基づいて仮分割及び仮分割修正を行う(S107、S109)。
【0023】
次に、最尤文字列探索処理部13では、文字切出しの行われた文字列に対して、上述の認識エンジン部14及び最尤文字列探索部15により文字認識を行うと共に、この文字認識の結果を認識結果出力部6に出力する。認識結果出力部6は、この認識結果を、アプリケーション3の図示しない表示画面上に表示するために出力する(S111)。なお、既存のシステムを自由筆記文字列認識に対応させるには、どのような文字列に対しても文字候補の生成(文字切出し)が要求されるため、文字認識を行う認識エンジン部14及び文脈処理等を行う最尤文字列探索部15はそのまま使用し、文字切出し処理部12でのステップS105、107及び109に対応する文字切出し処理を、筆記方向に依存しないで行う。
以下、上述のフローチャートの各ステップの処理について詳細に説明する。
【0024】
(ステップS101について)
ユーザ2により入力出力部4を利用して手書き文字(文字列)が入力され、各文字要素に関する情報が記憶される。各文字要素に関する情報とは、例えば、始点、終点、その間の筆点座標位置、筆記方向、順序等である。
【0025】
(ステップS103について)
図3は、文字サイズ推定処理についての説明図である。
まず、筆記者によって手書き入力された文字列が、例えば、横書き、縦書き、斜め書き等の文字列を含んでいる場合、文字サイズを推定するために、筆記方向を固定して射影を用いる手法を利用することは適切ではない。このため、文字列の各文字要素について、高さや幅の平均値を求めることにより、文字サイズを推定することが考えられる。
【0026】
一方、例えば、画数が多く、細かい(短い)文字要素の集合である漢字等が文字列に含まれている場合では、推定文字サイズが真の文字サイズよりもかなり小さくなってしまうことがある。したがって、文字列に漢字等が含まれている場合では、細かい文字要素を無視すると共に、比較的大きな(長い)文字要素を、文字(例えば、漢字)を代表する文字要素として捉え、この比較的長い文字要素の平均を求めるようにすればよい。なお、この手法によれば、上述の射影を用いた手法よりも高速な処理を期待できる。
【0027】
以下、具体的な手順を次に示す。
ここでは、一例として、総画数6の「曲」という漢字のサイズを推定する場合について説明する。
まず、総画数6の各ストロークサイズを測定する。各ストロークサイズは、ドット数、長さ等の適宜の単位を用いると、例えば、それぞれ33、40、52、35、47、20と表され、これらのストロークサイズの値を、例えば、「曲」の書き順に応じて図中のブロックに格納する。なお、ストロークサイズは、文字要素の幅、高さで大きい方のサイズである。この際、総ストロークサイズの平均値は、38であって、この値が文字サイズ推定値(推定文字サイズ)となる。しかし、この推定文字サイズは、真の文字サイズと比べて著しく小さくなってしまう。
【0028】
一方、上述の各ストロークサイズを降順にソートしてブロックに格納する(ここでは、52、47、40、35、33、20となる)。さらに、ブロックに格納された各ストロークサイズのうち上位(例えば、上半分、52、47、40)の平均値を求める。この際、上位3つのストロークサイズの平均値は、46であって、この値が文字サイズ推定値(推定文字サイズ)となる。この推定文字サイズは、真の文字サイズとある程度近くなる。なお、一例として、上位(例えば、上半分)の平均値×r(ここでは、r=1)=文字サイズ推定値と規定してもよい。
【0029】
(ステップS105について)
ここでは、改行および筆記方向変化点を検出することによって、筆記方向を推定する文字列を特定し、さらに、この文字列の外接矩形の縦横比に基づいて筆記方向を判定する筆記方向推定処理について説明する。
【0030】
まず、改行の検出について説明する。
図4は、文字要素間遷移分布を示す説明図である。
文字要素間隔は、例えば、文字列内の小さな遷移(文字列内遷移分布)と、改行による文字列間の大きな遷移(改行を示す分布)との2種類に区分できる。なお、図中の文字列内遷移分布、及び改行を示す分布を示す複数の点は、各文字要素間距離の分布を示している。なお、各文字要素間の距離は、例えば、各文字要素の始点、終点、重心等の適宜の値を用いて、始点間、終点間、ある文字要素の始点と他の文字要素の終点間、重心間等の距離により求めることができる。
【0031】
筆記者によって手書き入力された文字列に改行が有るか否かを予め判別することができるならば、上述の2種類の遷移をクラスタリングすることにより、改行を検出することができる。ここで、いわゆるLBGアルゴリズムを用いたクラスタリングの適用が考えられる。しかし、この方法では、微小ではあるが認識時間に体感的な差が出ることが想定されるため、クラスタリングをLBGの初期化部分(セントロイドの決定、勢力圏の設定)のみで行うようにした。
【0032】
まず、ステップS103によって推定された文字サイズに基づいて、改行のしきい値を決定すると共に、このしきい値以上の文字要素間距離を検出した場合に、厳密な改行の検出を行うようにした。この改行の検出では、文字要素間遷移の最小値及び最大値を、それぞれセントロイドの初期値とし、さらに、このセントロイドによって求められるクラスタを、それぞれ文字列内遷移を示すクラスタ(文字要素間遷移の最小値に基づく)と、改行を示すクラスタ(文字要素間遷移の最大値に基づく)と規定する。なお、この際、LBGの核となるループ部分を省いているが、明らかに改行がある場合にクラスタリングを行うようにしているので、このセントロイドによって求められる解は、準最適解に近く、上述の手法でも改行の検出精度に問題はない判断している。この処理は、単に文字要素間の距離で見ているので、Y方向や斜め方向へ遷移を伴う改行も検出できる。
【0033】
つぎに、筆記方向変化点の検出について説明する。
図5は、横書きと縦書きが混在する文字列を示す図である。
筆記者によって自由に手書き入力された文字列は、文字列の途中から直角に折れ曲がるなど様々なケースが想定される。ここでは、筆記者による文字列は、横書きの「今日の献立」と、この横書きの「今日の献立」から直角に折れ曲がり、改行だけでは区切れない縦書きの「カツ丼」と、縦書きのそれぞれ改行により区切られる「天丼」「うな丼」「親子丼」とを含む。
【0034】
このため、上述の改行検出によって、文字列を特定した場合であっても、急激な筆記方向変化や異なる筆記方向の文字列が混在している場合、筆記方向の推定は困難となることが想定される。つまり、文字列としては区切れているのに、改行だけでは区切れない文字列が出てくる(ここでは、「今日の献立 カツ丼」に該当する)。したがって、このような場合には、筆記方向の変化している点を検出し、改行と同様に文字列を分割することが必要となる。
【0035】
図6は、筆記方向変化点の検出を示す説明図である。
筆記方向変化点の検出は、文字列の始点と終点とを結ぶ直線からの最遠点を求めることによって行う。ただし、文字列の最遠点を単純に求めてしまうと、筆記方向変化のない文字列においても微小な変化を検出してしまうことが予想されるため、上述の文字サイズをしきい値とすることにより、比較的大きな筆記方向変化のみを検出することができる。なお、最遠点の代わりに比較的遠い点を求めて、適宜の筆記方向変化点を求めるようにしてもよい。
【0036】
具体的には、ここでは、筆記者による文字列は、横書きの「今日の献立」と、この横書きの「今日の献立」から直角に折れ曲がり、改行だけでは区切れない縦書きの「カレーライス」とを含む。まず、この文字列の始点(ここでは「今」の第1ストロークの始点)と、文字列の終点(ここでは「ス」の第2ストロークの終点)とを結び直線Aを作成する。この直線Aからの距離dが上述の推定文字サイズより大きい点のうち最遠点を求め、この最遠点を文字列の筆記方向変化点とする(ここでは、「立」の第2ストロークの終点となる)。
【0037】
図7は、最遠点を再帰的に求めた場合についての説明図である。
また、上述した方法では、筆記方向変化点を一箇所しか検出できない。ここでは、文字列に複数の筆記方向変化点が含まれる場合について説明する。この場合、最遠点を求める処理を再帰的に用いる( K.Ishigaki,T.Morishita:"A Top-down Online Handwritten Character Recognition Method via the Denotation of Variation,"Proc. Int'l Conf.on Computer Processing on Chinese and Oriental Languages,Toront,pp141-145(1988.8).)ことにより、筆記方向が複数回変化する文字列にも対応することができる。具体的には、3つの筆記方向変化点を含む文字列(ここでは、「曲がりくねった文字列」であり、図中、点線により簡略化されている)の始点S(ここでは「曲」の第1ストロークの始点)と終点E(ここでは「列」の第6ストロークの終点)とを直線で結び、上述した方法によって線分SEからの最遠点P1(ここでは「文」の第1ストロークの始点)を求める。
【0038】
つぎに、文字列の始点S(ここでは「曲」の第1ストロークの始点)とP1(ここでは「文」の第1ストロークの始点)とを直線で結び、上述した方法によって線分SP1からの最遠点P2(ここでは「り」の第2ストローク中で線分SP1からの最遠点)を求める。また、文字列のP1(ここでは「文」の第1ストロークの始点)と最遠点P2(ここでは「り」の第2ストローク中で線分SP1からの最遠点)とを直線で結び、上述した方法によって線分P1P2からの最遠点P3(ここでは「ね」の第2ストロークの始点)を求める。
このように、最遠点を再帰的に求めることにより、各種文字列の筆記方向変化点を検出することができる。
【0039】
図8は、筆記方向変化が微小である場合について説明図である。
また、筆記方向変化が微小である場合、最遠点を求める際の条件である文字サイズ(しきい値)からもれる場合が想定される。具体的には、筆記者によって、検出できない1つの筆記方向変化点を含む文字列(ここでは、「明日は晴れるといいな」)が手書き入力された場合、文字列の始点S「明」と終点E「な」とを直線で結び、上述した方法によって線分SEからの最遠点を求めようとしても、例えば、線分SEからの距離(例えば、距離d1隔てた「れ」、距離d2隔てた「る」)が、いずれも推定文字サイズthよりも小さいならば(例えば、d2<d1<th)、最遠点を求めることができない。なお、推定文字サイズthは、各文字サイズの平均、最大、最小からひとつ又は複数を除いた各文字サイズの平均、予め定めた値等、適宜定めることができる。
【0040】
そこで、筆記方向変化が微小であった場合にもそのまま処理を進め、後述する仮分割処理を行う際、分割後の文字サイズ(ここでは、「れる」が1文字として仮分割されている)が推定文字サイズthよりも明らかに大きい場合には、評価中の文字要素を分割する処理を行うようにする(ここでは、「れる」をそれぞれ「れ」「る」に分割する)。また、改行で区切られた各文字列について、この各文字列を筆記方向の変化点で区切ることにより、文字列を文字列構成要素へと分割する。これにより、筆記方向を文字列構成要素単位で推定することができる。
【0041】
つぎに、筆記方向の推定について説明する。
図9は、筆記方向推定についての説明図である。
上述したように改行及び筆記方向変化点を検出したことで、筆記方向を推定する文字列(文字列構成要素)を特定することができる。具体的には、文字列構成要素は、それぞれ改行で分割されており、例えば、文字列構成要素1「今日は雨だけど」と、文字列構成要素2「明日は晴れるといいな」とを含む。また、これらの文字列構成要素1及び2の外接矩形の縦横比(例えば、横方向X、縦方向Y)を検討し、X>Yであれば、筆記方向を横方向と推定し、一方、X<Yであれば、筆記方向を縦方向とそれぞれ推定する。また、文字列ごとに筆記方向を推定した後、さらに、各文字要素ごとに筆記方向情報を付加するようにしてもよい。なお、後述する仮分割では、筆記方向情報を用いて縦または横方向へ仮分割を行うことになる。また、一般に、文字列構成要素は、筆記方向と反対方向に筆が運ばれて筆記された場合、この2つの筆画の間は文字の区切りであることはほとんどない。筆記方向が推定されていると、これを利用して、改行、筆記方向変化点を検出することができる。さらに、この2つの筆画の間は、後述する分割、統合処理により確定することができる。
【0042】
(ステップS107について)
つぎに、仮分割について説明する。
図10は、筆記方向別の仮分割を示す説明図である。
仮分割では、上述したように、筆記方向情報に基づいて横書きならX方向、縦書きならY方向へそれぞれ仮分割を行う。具体的には、筆記方向が横書きならX方向に仮分割する(ここでは、横書きで「農」「工」)。筆記方向が縦書きならY方向に仮分割する(ここでは、縦書きで「農」「工」)。また、斜め書きの場合は、傾きが縦書き又は横書きのどちらか近いほうに仮定して分割する。なお、上述の方法による仮分割では、後述する分割可能な方向へ単純に分割していく方法に比べ、仮分割数を例えば、半分に抑えることもできる。
【0043】
図11は、分割時の評価についての説明図である。
仮分割処理では、文字要素間における幾何的特徴に基づいて、各文字要素に対して各種の評価を与える。具体的には、文字列「へのへのもへじ」のうち、各文字間(ここでは、6つ)を分割(divide)、文字「も」を構成する各文字要素を結合(combine)、文字「じ」を構成する各文字要素を分割候補(vague)とそれぞれ評価する。
【0044】
この分割判定(分割、結合、分割候補)は、文字要素に付加されている筆記方向情報に基づいており、例えば、上述のように横書きならX方向、縦書きならY方向の文字要素間の関係を評価する。また、この評価項目は、文字要素同士の重心間射影距離及び文字要素の外接矩形の重なり具合である。ここで、「も」の各文字要素を結合と判定するには、例えば、各文字要素の外接矩形の重なりをしきい値によって評価し、予め定められたしきい値以上の重なりであれば、結合と判定することができる。
【0045】
(ステップS109について)
つぎに、仮分割修正について説明する。
図12は、仮分割修正についての説明図である。
仮分割修正では、上述の仮分割と同様、筆記方向を見ながら、縦書きならY方向、横書きならX方向に文字構成要素同士を結合していく。また、仮分割処理の後、枠なし文字認識を実行する前の段階で、それ以前の処理とは独立にいくつかの判定を行うことにより、分割候補(vague)と判定されている箇所を、分割(divide)又は統合(combine)に可能な限り確定し、文字認識段階での最尤文字列推定の探索空間を小さくする。
【0046】
また、ここでは、文字構成要素同士の外接矩形の重なりをしきい値によって評価し、しきい値以上の重なりであれば、要素同士を統合に確定する処理を行う。具体的には、文字「道」の編と旁とがそれぞれ別々の文字構成要素となった場合、重なりの面積がしきい値(th)以上の時に重なりと判断する(ここでは、X*Y>th)。つまり、ここでは、横方向の重なりと縦方向の重なりの面積で判断することになる。
【0047】
(ステップS111について)
ステップS109による仮分割修正後、最尤文字列探索処理部13では、最尤文字列探索部15により各文字要素に対して文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を動的計画法に基づいて行われると共に、認識エンジン部14により文字列の文字認識が行われる。この文字認識の結果は、認識結果出力部6に出力される。認識結果出力部6は、この認識結果をアプリケーション3の図示しない表示画面上に表示するために出力する。
【0048】
これにより、上述した筆記方向推定による文字切出し方法は、ステップS105の改行、筆記方向変化点の検出に基づいて筆記方向を推定するという処理を含むが、筆記方向が正しく推定できれば正確な仮分割を行うことができる。また、この方法は、予め文字列の筆記方向を推定しておき、しきい値を用いて筆記方向へ文字列を分割していく方法であり、仮分割数を最小限に抑えることができる。この仮分割数を最小限に抑えることにより、認識文字列の候補数を小さくでき、さらに、上述の文字形状、文脈、文字分割、文字サイズに基づいて確からしいと思われる文字列の探索を動的計画法に基づいて行う最尤文字列探索部15での最適経路を見出す手間を最小限とすることができる。
【0049】
したがって、筆記方向推定による文字切出し方法では、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識(自由筆記文字列認識)を行うことができる。
また、筆記方向推定による文字切出し方法では、例えば、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことができる。また、この筆記方向推定による文字切出し方法を、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことができる。また、筆記方向推定による文字切出し方法では、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することができる。
【0050】
(2)第2の実施の形態
つぎに、図2に示した文字認識方法のフローチャートにおいて、上述のステップS105の処理を簡略化して、文字列の筆記方向を考慮しない文字切出し方法について説明する。なお、上述の筆記方向推定による文字切出し方法と重複する部分は、説明が冗長とならない程度に省略する。
【0051】
この方法は、文字サイズから得られたしきい値に基づいて、文字列を分割できる方向へ分割していく方法である。この筆記方向を考慮しない文字切出し方法は、筆記方向に関わりなく分割できる方向へ仮分割を行う方法であって、筆記方向に関わらず、ヒューリスティックに切出しを行う。
【0052】
まず、上述の文字サイズ推定処理部11では、文字サイズの推定が行われると共に、切出しや改行判定に用いるしきい値を決定する(上述のS103と同様)。つぎに、文字切出し処理部12では、筆記者により入力された文字列の2つの文字要素間の評価を行い、X方向、Y方向へしきい値以上の筆点座標の変位があった場合に分割点とし、文字列を求める(簡略化されたステップS105に対応する筆記推定ステップ)。
【0053】
この文字列を分割できる方向へ仮分割を行う(上述のS107と同様)。また、文字切出し処理部12では、ステップS107により仮分割された文字構成要素に対し、X方向、Y方向への重なりを評価し、重なりの度合いがしきい値以上であれば結合させ、この結合した結果が推定文字サイズよりも大きくなってしまう場合は、結合を解除する仮分割修正を行う(上述のS109と同様)。
【0054】
図13は、重なりの評価を示す説明図である。
この重なりの評価については、2つの手法(重なりの評価1、2)が考えられる。
重なりの評価1では、X方向あるいはY方向どちらかが重なっていれば、それを重なりと判断する(X>th1、Y>th1)。すなわち、一例として横書きの文字列を考えると、横方向へは重なっていないが、縦方向へ重なっていると判断することになる。
【0055】
重なりの評価2では、重なりの面積がしきい値(th2)以上の時に重なりと判断する(X*Y>th2、但し、しきい値は、th1≠th2)。つまり、ここでは、横方向の重なりと縦方向の重なりの面積で判断することになる。
【0056】
これにより、上述の筆記方向を考慮しない文字切出し方法では、簡略化されたステップS105に対応する筆記推定ステップを行うことにより、文字列の状態によっては単純かつ高速な処理を行うことができる。
【0057】
(3)実験および実験結果の考察
ここで、本発明による筆記方向推定による文字切出し方法を適用したシステムを用いて、オンライン文字パターンデータによる認識実験を行った。以下、本実験の概要、実験結果および実験の考察について述べる。
【0058】
(実験の概要)
本実験では、本発明による筆記方向に依存しない文字切出し手法を用いたシステムでの各筆記方向のデータに対する自由筆記文字列認識のパフォーマンスを調べた。なお、枠なしの状態で書かれたデータベースには今のところ標準のものが存在しないため、実験用データとして、ある筆記者5名によって書かれたオンライン文字パターンデータを用いることにした。
表1にオンライン文字パターンデータの詳細を示す。
【0059】
【表1】
JP0003958003B2_000002t.gif【0060】
実験用データであるオンライン文字パターンデータは、筆記者数5名であって、データ筆記時には、この5名の筆記者に例文を与えた。筆記者には、この例文を横書き、縦書き、及び筆記方向自由(例えば、斜め方向)の3種類のパターンで手書き入力させ、これらのデータを収集した。また、このオンライン文字パターンデータは、総文字数3840文字であって、1人当たりの筆記文字数は、786文字である。また、このオンライン文字パターンデータは、1セット当たり10ページ(256文字)からなり、1ページ平均約25文字の文章となっているため、筆記者は、それぞれ3セット分(30ページ、786文字)の文字の手書き入力を行った。
【0061】
また、この実験では、ページごとに文字列が区切れるため、ページ単位での正認識率を算出し、1セットごとにその平均を求めることにする。
【0062】
(実験の結果)
図14は、実験用オンライン枠なし文字パターンデータを示す図である。
ここでのオンライン文字パターンデータは、例えば、筆記者の自由筆記(斜め方向)による「短期的に成功しても、」と、横書きによる「長期的には失敗する。」とを含む。
【0063】
図15は、正認識の例を示す図(1)である。
ここでは、オンライン文字パターンデータに含まれる自由筆記による「短期的に成功しても、」と、横書きによる「長期的には失敗する。」とは、それぞれ各文字要素ごと外接矩形に囲まれ、正しい文字認識が実行されている。認識結果は、"短期的に成長しても、長期的には失敗する。"である。
【0064】
図16は、正認識の例を示す図(2)である。
ここでのオンライン文字パターンデータは、例えば、筆記者の縦書きによる「入園料は小学生」「以上590円、」と、横書きによる「小学生未満無料。」とを含む。また、ここでは、オンライン文字パターンデータに含まれる縦書きによる「入園料は小学生」「以上590円、」と、横書きによる「小学生未満無料。」とは、それぞれ各文字要素ごと外接矩形に囲まれ、正しい文字認識が実行されている。認識結果は、"入園料は小学生以上590円、小学生未満無料。"である。
表2に筆記方向別認識率(%)を示す。
【0065】
【表2】
JP0003958003B2_000003t.gif【0066】
ここでは、各筆記者A~Eに対し、データセットごとのページ内の筆記方向別認識率(%)の平均を表している。なお、認識時間については、ページ内平均認識時間は、約2秒、1文字当たりの平均認識時間は、約0.09秒であった。
【0067】
(実験結果の考察)
上述の実験結果についての考察としては、横書きの文字列に対しては、文字間隔が狭いため、切出し精度の悪さが認識率に影響した。縦書きの場合、横書きに比べ文字間隔が広くなる傾向にあり、切出し精度および認識率が高かった。自由筆記文字列では横書き・縦書きの両方の特徴を併せ持つため、両者の間の結果となった。
【0068】
これにより、仮分割時のしきい値を横書きと縦書きで変化させることによって、さらに高精度な切出しが実現できる。また、上述の細かな筆記方向変化のある文字列では、筆記方向変化点を抽出する代わりに、仮分割時に推定文字サイズで分割を打ち切ることで、切出しを行うことができる。
【0069】
また、本発明では、筆記方向に依存しない文字切出し手法を用いた自由筆記文字列認識を、既存のシステムにおけるパフォーマンスをあまり落とすことなく、自由筆記文字列に対応した文字切出し、及び認識を行うことができる。さらに、分割時のしきい値を動的に設定することによって、切出し精度を向上させること、及びより細かな筆記方向変化への対応を行うことが期待できる。なお、上述の認識実験では、適宜の大規模なオンライン枠なし文字パターンデータベースを収集することができ、本発明による文字認識システムのさらに細かな性能評価を行うこともできる。
【0070】
(4)第3の実施の形態
つぎに、文字列の筆記方向だけでなく文字方向をも考慮した、自由度の一層高い枠なし文字認識方法について説明する。なお、上述の第1及び2の実施の形態と重複する部分は、説明が冗長とならない程度に省略すると共に、新たに定義する概念については、詳細に説明する。また、文字認識システムの概略構成は、第1の実施の形態と同様である。
【0071】
図18は、筆点座標とストロークの説明図である。
ストロークとは、例えば、ユーザ2が適宜の筆記面に対して、接触から非接触に至る間に入力出力部4を利用してサンプリングされる接触座標(筆点座標)の系列をいう。ここでは、図示のように、「あ」に含まれる1つのストロークを用いて説明した。
【0072】
図19は、文字方向と筆記方向の説明図である。
文字方向とは、例えば、文字の底辺から上に向けた方向を指し、一方、筆記方向とは、文字列が筆記される方向をいう。また、上述のように、改行、筆記方向変化点、一定間隔以上の空白などで分離される文字列を、それぞれ文字列構成要素とする。文字列構成要素は、それぞれが筆記方向を持つ。ここでは、文字列構成要素である「今日の献立」「親子丼」「うな丼」「天丼」「カツ丼」の文字方向及び筆記方向を、それぞれ点線及び実線の矢印としてそれぞれ示している。
【0073】
図20は、本実施の形態に関する文字認識方法のフローチャートである。なお、説明の便宜上、ここでのフローチャートの説明は、概略的なものとし、具体的な説明は後述する。この文字認識方法は、例えば、ユーザ2による枠なしで自由な方向で入力された手書きストローク列に対し、文字方向および筆記方向に依存しない文字認識を行うものである。
入力文字列パターン入力部5により、ユーザ2による枠なしで自由な方向で入力されたストローク列が認識コントロール部10に入力された後、入力された各ストローク列は、文字サイズ推定処理部11により、文字サイズを推定される(文字サイズ推定処理:S201)。なお、ステップS201で推定された文字サイズは、例えば、改行検出に用いられると共に、仮分割処理や文字認識処理における評価ための要素にもなる。
【0074】
文字サイズ推定処理部11は、ステップS201での文字サイズの推定後、推定文字サイズおよびストローク間隔(例えば重心間距離)を基に、改行、行と行を分ける一定以上の間隔、筆記方向の変化点のいずれかを検出して、文字列構成要素へ分割する(文字列構成要素分割処理:S203)。なお、これら文字サイズの推定、改行の検出及び文字列構成要素の分割は、上述のステップS103、105での処理と同様である。
【0075】
つぎに、文字サイズ推定処理部11は、ステップS203により得られた文字列構成要素ごとで文字サイズが変動することを考慮して、文字列構成要素ごとに適当な(平均的な)文字サイズを詳細に推定し直す(文字サイズ詳細推定処理:S205)。なお、ここでの文字サイズ詳細推定処理は、ステップS201での文字サイズ推定処理と同じであるが、それを文字列構成要素ごとに適用することにより、文字サイズ推定の精度を向上させることができる。
【0076】
次に、文字切出し処理部12は、例えば、文字列構成要素ごとに、ストローク間の変動を除いたストローク内の筆点座標の変動情報から文字方向を推定する(文字方向推定処理:S207)。また、文字切出し処理部12は、文字列構成要素の筆記方向から良く現れる文字方向を仮定する(文字方向仮定処理:S209)。なお、ステップS209により仮定される文字方向としては、例えば、筆記方向の正負方向、この正負方向に垂直な2方向、入力装置(又は筆記面)の上下方向、左右方向のうち予め定められた方向のいずれか又は複数を仮定する。ここで、文字方向を求める処理は、ステップS207又はS209のいずれでもよいし、両方でもよい。なお、これらステップS207及びS209を両方行って、後述のステップS221の最適文字方向選択処理で最も高得点のものを選択するほうが認識精度は高くなる。
【0077】
このように推定及び/又は仮定されたひとつ又は複数の文字方向の候補によって、各文字方向補正文字列構成要素に対して、それぞれ以下ステップS211~S219の処理を行う。なお、各文字方向補正文字列構成要素について、各ステップで求められた文字方向の候補及び中間結果は、文字切出し処理部12により適宜のメモリに対して書き込み又は読み出しが行われる。
また、文字切出し処理部12は、ステップS207により推定された、および/または、ステップS209により仮定されたひとつ又は複数の文字方向の候補ごとに、その文字方向が上になるように内部データとして元の文字列構成要素を回転する(認識用文字方向補正回転処理:S211)。なお、文字列構成要素は、上述のように、筆点座標の系列で表現されているため、任意角度の回転処理は容易かつ高速に行うことができる。ここで、それぞれの回転後のパターン(文字列構成要素)を、文字方向補正文字列構成要素と呼ぶ。
【0078】
つぎに、文字切出し処理部12は、ステップS211で得られた文字方向補正文字列構成要素ごとの筆記方向を、少なくとも4方向(上下左右)に量子化する(筆記方向量子化処理:S213)。なお、8方向であれば、斜め方向も含むことができる。ここで、ステップS213以降の処理のうち、文字切出し処理部12で行われる仮分割処理(S215)及び仮分割修正処理(S217)と、最尤文字列探索処理部13で行われる文脈処理を伴った認識処理(S219)とは、上述のステップS107での仮分割処理及びステップS109での仮分割修正処理と、ステップS111での認識結果を出力する処理とそれぞれ同様である。
【0079】
つぎに、最尤文字列探索処理部13は、ステップS207とステップS209によって推定あるいは仮定された文字方向ごとに、ステップS211からステップS219までの処理で得られた、各文字方向による複数の文字方向補正文字列構成要素に対する認識結果のなかで最も高い認識の確からしさに関する得点の文字方向とその文字方向における文字方向補正文字列構成要素を選択する(最適文字方向選択処理:S221)。ここで、最尤文字列探索処理部13は、各文字方向において文字方向補正文字列構成要素の筆記方向に対して、必要に応じて文脈を仮定して文字認識を行い、また、文字認識の確からしさ、文字分割の確からしさ、文字サイズの確からしさ、文脈の確からしさのうちいずれか又は複数を適宜加味して認識の確からしさを示す点数を求める。最尤文字列探索処理部13は、この点数の高い文字方向を最適文字方向として選択する。なお、ステップS207及びS209でひとつの文字方向のみ推定・仮定されている場合は、ステップS221は省略される。また、最尤文字列探索処理部13は、ステップS221により選択された文字方向補正文字列構成要素の回転以前の情報、メモリに記憶された回転角・回転中心等の情報から、元に筆記されたストローク列の筆記方向、文字方向、文字サイズ、文字ピッチなどを復元すると共に、この復元結果を認識結果として、認識結果出力部6を介して、アプリケーション3の画面上の表示に反映する(認識結果の整形表示処理:S223)。
【0080】
以下、上述のフローチャートの各ステップの処理について詳細に説明する。なお、上述の第1及び第2の実施の形態と重複する処理については、冗長とならない程度に省略する。
(ステップS201:文字サイズ推定処理について)
文字サイズ推定処理部11は、例えば、入力文字列パターン入力部5により画面上に記入されたストローク列から、個々の文字要素の文字サイズを推定する。ここで、推定された文字サイズは、改行や文字間隔の検出、仮分割処理および認識処理に用いられる。この文字サイズ推定処理では、画面上の全てのストロークに対して、そのストロークサイズから文字サイズを推定する。なお、文字サイズ推定処理は、上述のステップS103での文字サイズ推定処理と同様である(図3及びその説明箇所参照)。
【0081】
(ステップS203:文字列構成要素分割処理について)
図21は、文字列構成要素分割処理についての説明図である。
文字サイズ推定処理部11は、ステップS203の文字サイズ推定処理で求められた推定文字サイズをもとに、改行検出および文字列間隔の検出をクラスタリングを用いて行なう(改行・文字列間検出:S2031)。なお、ここでの処理は、上述のステップS105での筆記方向推定(筆記推定)と同様である(図4及びその説明箇所参照)。また、文字サイズ推定処理部11は、ステップS2031によって検出された改行・文字列間隔を元に図19に示すように画面上のストローク列を文字列構成要素に分割する(S2032)。なお、ここでの処理は、上述のステップS105での筆記方向推定(筆記推定)に含まれる改行検出の処理と同様である(図5及びその説明箇所参照)。
【0082】
つぎに、文字サイズ推定処理部11は、筆記方向変化点を検出する(S2033)。ここでは、ステップS2032での行分割において、図19に示すように、箇条書きなどにおいて、横書きで書いた見出しの後に縦書きの行を続けて書く場合や、適宜の図などに阻まれた画面上で筆記方向を変えて続けて書くといった場合には、改行や文字列間隔を検出するだけでは行として分割を行うことができず、筆記方向の推定が困難となる場合がある。そこで、ステップS2033によって、筆記方向が途中で急激に変化している箇所(上述の筆記方向変化点)を特定することで、文字列の分割や筆記方向の推定を正確に行なうことができる。
【0083】
この筆記方向変化点の検出は、上述のように、対象となる文字列の始点と終点を結ぶ直線からの最遠点を求めることで実現できる。また、この手法を再帰的に用いることで、複数の筆記方向変化に対応できる。これらの筆記方向変化点により、文字列構成要素はさらに短い文字列構成要素に分割される。なお、ここでの処理は、上述のステップS105での筆記方向推定(筆記推定)に含まれる処理と同様である(図6、7、8及びその説明箇所参照)。つぎに、文字サイズ推定処理部11は、文字列構成要素ごとに、最初のストロークの始点座標と最終ストロークの終点座標から筆記方向を求める(S2034)。
【0084】
(ステップS205:文字サイズ詳細推定処理について)
図22は、文字サイズ詳細推定処理の説明図である。
文字サイズ推定処理部11は、図22に示すように、文字列構成要素ごとで文字サイズが変動することを考慮して、文字列構成要素ごとに文字サイズを詳細に推定し直す。ここでの処理は、上述の文字サイズ推定処理と同様であるが、それを文字列構成要素ごとに適用することで、文字サイズ推定の精度を向上させる。例えば、文字列構成要素「今日の献立」の文字サイズは、それ以外の文字列構成要素の文字サイズよりも大きくなっている。具体的には、ステップS203で求められた文字要素ごとの文字サイズの平均、最大値・最小値を除いた平均等、適宜の手法で求めることができる。
【0085】
この文字サイズ詳細推定処理を、ステップS203の後に挿入することにより、同一画面上で文字サイズの異なった文字列構成要素が存在している場合にも、文字サイズの推定がより正確に行なえるようになる。その結果、文字切出し処理部12における、文字列認識の前処理である文字切出しでは、推定文字サイズを元に高精度な切出しを行うことができる。ただし、このステップS205の処理は、画面上の文字サイズが一定であると仮定できる場合、又は、すでに推定されている場合には、省略してもよい。
【0086】
(ステップS207:文字方向推定処理について)
図23は、文字方向と方向別筆点間距離累積ヒストグラムの説明図である。
ここで、文字方向について説明すると、文字を記入する際、ストローク間の変動を除いた筆点座標の変動は、文字底辺を下にとれば右方向か下方向への変動が顕著に見られる。これは、日本語(特に、漢字)が、右方向あるいは下方向に筆記するストロークを多く含むためである。このため、方向別に変動をヒストグラムに取ると、例えば、横書きの文字列であれば90°程度離れたところに二つのピークが現れることになる。ここでは、それぞれ文字方向の異なる3つの文字列「農工大」の筆点座標の変動としては、概ね90°離れた部分にピークが現れている。
【0087】
したがって、文字列全体で見た場合、これらの筆点座標の変動を検出することで、文字方向を推定することができる。また、文字方向が推定できれば、文字方向を正方向(つまり、上向き)になるように文字列全体を回転させることによって、通常どおりの認識処理を行なうことができる。
図24は、方向別筆点間距離累積ヒストグラムにおけるピークの検出についての説明図である。
文字切出し処理部12では、文字方向の推定のためには、ストローク内の連続する二つの筆点について、その方向別にその筆点間の距離を累積するヒストグラムを取る。ここでのヒストグラムは、例えば、16方向分割で累積されており、16方向のなかで約90°離れた2つの方向にピークを見出すことができる。この2つの方向でのピークが下方向と右方向からどれだけ回転しているかを求めることで、文字方向を特定することができる。なお、分割の程度は、8方向、4方向、32方向等適宜の値とすることができる。
【0088】
ここでは、入力パターンである文字列構成要素「あ」の文字方向を推定する場合を示しており、まず、文字切出し処理部12は、各文字列構成要素ごとに筆点座標変動のヒストグラムをとり(ステップ1)、このヒストグラムのピークを検出する(ステップ2)。つぎに、文字切出し処理部12は、検出したヒストグラムの2点以上のピークについてピーク間の角度を検出し(ステップ3)、ここで、あるピークを基準とし、反時計回りに約90°のところに他のピークが現れたとき、基準としたピークの反対方向を文字方向(図中、ステップ4の点線の矢印)とする。
【0089】
図25は、ピークの検出を示すフローチャートである。
まず、文字切出し処理部12は、筆点変動の方向別のヒストグラムを求め(S2071)、一つの基準となるピークを検出する(S2072)。文字切出し処理部12は、ステップS2072で検出された基準となるピークから反時計回りにピークを走査し(S2073)、基準となるピークから90°付近にもう一つのピークを検出できるか否かを判定する(S2074)。文字切出し処理部12は、ステップS2074でもう一つのピークが検出できた場合、基準となるピークの逆方向を文字方向とし(S2076)、一方、もう一つのピークが検出できない場合、基準となる別のピークを検出して(S2075)、再び、ステップS2073に戻ってピークを走査する。
【0090】
また、ピークの検出を用いて文字方向を特定する際の他の方法としては、例えば、角度θ方向へのヒストグラムの強度をf(θ)として、f(θ)*f(θ+π/2)のピークを探し、角度θの反対方向を文字方向とするようにしてもよい。より具体的には、さらに、いわゆるガウス関数g(δ)=exp(-δ/σ)を、上述のf(θ)*f(θ+π/2)に畳み込んで、右上がりの文字のように文字の下方向と右方向の角度差がπ/2から多少ずれている場合でも、二つのピークを安定に抽出することもできる。
【0091】
図26は、文字方向が上下しかない場合でのピークの検出についての説明図である。
ここで、文字方向が下向きか上向きしかないと分かっている場合について説明すると、文字切出し処理部12では、例えば、Y座標(つまり、縦方向)の筆点座標変動から文字方向の推定を行なうことになる。ここでは、上下方向に記入方向を限定しているので、図26に示すように、記入方向が画面上方向か画面下方向かどちらかに判定できればよい。この場合、横書き・縦書きに関わらず筆点間のY方向の差を加えていくことで文字方向を推定できる。すなわち、文字切出し処理部12は、画面の座標系を、X軸を左右方向、Y軸を上下方向とすることにより、文字列構成要素(ここでは、「今日の献立」)の筆点列のY座標変動の和が「負」の値であれば、文字方向が上方向、一方、「正」の値であれば、下方向とそれぞれ判断できる。
【0092】
(ステップS209:文字方向仮定処理について)
図27は、筆記方向から複数の文字方向を仮定する場合についての説明図である。なお、文字方向推定処理では、文字列構成要素のなかの文字数が少ないと正しく文字方向を推定できない場合が想定される。それを防ぐために、良く現れる文字方向を仮定して、認識候補に加えるのが文字方向仮定処理の目的のひとつである。
【0093】
ここでの処理では、例えば、図示のように、文字列構成要素(ここでは、「今日の献立」)の筆記方向(図中、実線の矢印)から良く現れる文字方向(図中、点線の矢印)を仮定する。この文字方向としては、筆記方向の正負方向、それに垂直な2方向、及び、図27のように、入力装置(又は筆記面)の上下方向、左右方向を仮定しているが、これらに限定するわけではない(ここでは、文字方向としては、筆記面の上下左右の方向を仮定している)。なお、文字方向の推定によって絞り込める場合は、これらの仮定の候補数を少なくしたり省略したりすることができる。なお、文字方向仮定処理は、図26のように、文字方向が表示画面に対し上下方向に限られる場合には省略することができる。
【0094】
(ステップS211:認識用文字方向補正回転処理について)
図28は、認識用文字方向補正回転処理の説明図である。
文字切出し処理部12は、例えば、ステップS207での文字方向推定処理によって推定された文字方向、および、ステップS209での文字方法仮定処理によって仮定された文字方向ごとに、文字列構成要素を内部データとして適宜の内部メモリにコピーし、その文字方向が上向きになるように回転する。ここでは、図中、表示画面上に表示された、文字方向がほぼ右向きの文字列構成要素「今日の献立」を回転することにより、文字方向が上向きである文字方向補正文字列構成要素を得ている。なお、文字切出し処理部12は、回転後の文字列構成要素である文字方向補正文字列構成要素は、ステップS223での認識結果の整形表示処理で利用するため、文字方向補正文字列構成要素ごとに回転中心及び回転角を適宜の内部メモリに保持する。また、文字方向補正文字列構成要素ごとの回転角は、文字方向補正文字列構成要素に含まれる文字ごとにも適用される。
【0095】
(ステップS213:筆記方向量子化処理について)
図29は、筆記方向量子化処理を示すフローチャートである。
文字切出し処理部12は、ここでは、ステップS211により得られた文字方向補正文字列構成要素ごとに、最初のストロークの始点座標と最終ストロークの終点座標から筆記方向を求め、それを一定の量子化区分に分割する。ここでの処理は、図9に示した筆記方向の推定をより精密化した処理であって、少なくとも4方向(上下左右)に量子化するものである。なお、水平右向きをXの正方向、垂直下向きをYの正方向とする。
【0096】
まず、文字切出し処理部12は、文字方向補正文字列構成要素の外接矩形の縦Yと横Xとの縦横比がX>Yであるか否かを判定し(S2131)、X>Yでなければ、文字方向補正文字列構成要素中の始点と終点とのY座標の差(始点Y座標-終点Y座標)が0より大きいか否かを判定する(S2132)。つぎに、文字切出し処理部12は、ステップS2132でY座標の差が0より大きい場合、筆記方向を上向きと判定し、一方、Y座標の差が0以下である場合、筆記方向を下向きと判定し、それぞれの判定結果である筆記方向をストローク内部情報として、文字方向補正文字列構成要素ごとに付加する(S2133)。
【0097】
一方、文字切出し処理部12は、ステップS2131において、X>Yであれば、文字方向補正文字列構成要素中の始点と終点とのX座標の差が0より大きいか否かを判定する(S2134)。つぎに、文字切出し処理部12は、ステップS2134でX座標の差(始点X座標-終点X座標)が0より大きい場合、筆記方向を左向きと判定し、一方、X座標の差が0以下である場合、筆記方向を右向きと判定し、それぞれの判定結果である筆記方向をストローク内部情報として、文字方向補正文字列構成要素ごとに付加する(S2133)。
【0098】
このように、筆記方向量子化を少なくとも4方向で行うことは、不自然な過分割を防ぐためである。具体的には、例えば、横書き(さらに、右書き)の場合、そのなかでの左向きの運筆は文字の区切りでないことが多いために、それ以前のストロークをまとめる(結合する)という処理を行うことができ、その結果、細かな過分割が少なくなり認識率を向上することができる。
【0099】
4方向以上にさらに細かく量子化すれば、斜めに書かれた文字列に対して、より安定に過分割を防止できる。しかし、現実的には4方向でほぼ十分である。今仮に、筆記方向が右下斜め方向の場合を考える。この場合、左上斜め方向への運筆によって文字をまとめることができる。筆記方向を4方向に量子化することにより、右下斜めへの筆記方向が右方向と判定される場合(ア)と、下方向と判定される場合(イ)を考える。(ア)の右方向と判定される場合、左上斜め方向への運筆が左方向と判定されれば、文字をまとめる情報として利用される。一方、この運筆が上方向と判定されると、文字をまとめる情報としては利用されないが、幾分過分割が増えるだけで、仮分割修正処理と文脈処理を伴った認識処理で、文字列はほぼ正しく分割および認識がなされる。(イ)の筆記方向が下方向と判定される場合、左上斜め方向への運筆が上方向と判定されれば、文字をまとめる情報として利用される。一方、この運筆が左方向と判定されると、文字をまとめる情報としては利用されないが、幾分過分割が増えるだけで、仮分割修正処理と文脈処理を伴った認識処理で、文字列はほぼ正しく分割および認識がなされる。今、右下斜め方向への筆記方向を取り上げたが、左下斜め方向、右上斜め方向、左上斜め方向も同様である。
【0100】
(ステップS215:仮分割処理について)
ここでは、文字切出し処理部12は、例えば、改行や文字列間隔などで区切られる文字列構成要素ごとに、文字サイズ、ストローク間の重心間距離(重心間射影距離)、ストロークの重なり具合などを考慮し、文字としての分割候補点の決定やストローク同士の結合などの判定を行なう。この仮分割処理は、上述のステップS107での仮分割処理と同様である(図10、11及びその説明箇所参照)。
【0101】
(ステップS217:仮分割修正処理について)
ここでの仮分割修正処理も、ステップS215での仮分割処理と同様に、上述のステップS109での仮分割修正処理と同様である(図12及びその説明箇所参照)。すなわち、仮分割修正処理は、ステップS215での仮分割処理によって生成された文字候補同士を、文字サイズ、文字要素間の重心間距離(重心間射影距離)、文字要素同士の重なり具合などを考慮し、仮分割によって生成された文字要素をさらに評価し、要素同士の結合を行なっていく処理である。
【0102】
(ステップS219:文脈処理を伴った認識処理について)
ここでの文脈処理を伴った認識処理は、上述のステップS111での処理と同様であって、最尤文字列探索部15により、文字サイズや文脈、認識結果などを統合して動的計画法に基づいて行われ、最終的な認識結果を求める処理である。なお、ステップS211での認識用文字方向補正回転処理からステップS219での文脈処理を伴った認識処理までは、上述のように、複数の文字方向補正文字列構成要素に対して適用されることになる。
【0103】
(ステップS221:最適文字方向選択処理について)
つぎに、最尤文字列探索処理部13は、ステップS207とステップS209によって推定あるいは仮定された文字方向ごとに、ステップS211からステップS219までの処理で得られた複数の文字方向補正文字列構成要素のそれぞれに対する認識処理の結果としての認識スコアを求める。そして、最尤文字列探索処理部13は、求められた認識スコアのなかで最も高い得点の文字方向と、その文字方向における文字方向補正文字列構成要素を選択する。
【0104】
(ステップS223:認識結果の整形表示処理について)
図30は、認識結果の整形表示処理の前段階の認識結果を示す図(1)である。ここで、図中、上述のステップS201~S221までの認識結果の一例を示す。
まず、認識前の文字列構成要素(2つの「農工大」)は、上述の各処理によって、それぞれの文字列構成要素の重心を中心にして文字方向が上向きになるように回転補正して認識されている。この回転補正された文字列構成要素は、文字方向補正文字列構成要素として、図30の認識後の上側のウインドウ(筆記面)に表示される。また、文字方向補正文字列構成要素(2つの「農工大」)の認識結果は、図30の認識後の筆記面の右下のウインドウ内に表示される。
【0105】
図31は、認識結果の整形表示処理の前段階の認識結果を示す図(2)である。
まず、認識前の文字列構成要素(4つの「農工大」)は、上述の各処理によって、それぞれの文字列構成要素の重心を中心にして文字方向が上向きになるように回転補正して認識されている。この回転補正された文字列構成要素は、文字方向補正文字列構成要素として、図31の認識後の上側のウインドウ(筆記面)に表示される。また、文字方向補正文字列構成要素(4つの「農工大」)の認識結果は、図31の認識後の筆記面の右下のウインドウ内に表示される。なお、図31の認識前の筆記面において上から逆向きに書かれた文字列構成要素「農工大」の認識結果の表示が、認識後の筆記面で傾いているのは、文字方向の推定がこの程度の誤差を伴うことを示している。しかしながら、最尤文字列探索処理部13の認識エンジン部14は、一般にこの程度の文字方向変動には対処できるので認識結果のコード列は、図31の認識後の筆記面の右下のウインドウ内に表示されているように、正しい結果を得ることができる。
【0106】
つぎに、上述した認識結果の整形表示処理の前段階の処理を経た、認識結果の整形表示処理について説明する。なお、認識結果の整形表示処理としては、例えば、文字方向補正文字列構成要素毎に回転する場合と、文字方向補正文字列構成要素に含まれる各文字毎に回転する場合とがある。
図32は、認識結果の整形表示処理についてのフローチャート(1)である。なお、ここでの処理は、例えば、上述した認識結果を利用して、最初の手書き文字列に近いレイアウト又は状況で認識結果表示を行う処理であって、筆記方向を推定した文字列構成要素ごとに、その筆記方向、文字方向、平均文字サイズ、平均文字間隔に従って、認識結果である文字フォント列を配置して表示する。
【0107】
最尤文字列探索処理部13は、文字方向補正文字列構成要素ごとに手書き文字の平均サイズを求め(S2231)、この平均サイズに近い出力文字ポイント数(フォントの大きさ)を決めると共に(S2232)、手書き文字間の縦横それぞれの平均間隔を求める(S2233)。つぎに、最尤文字列探索処理部13は、文字コード列に従い、ステップS2232での出力ポイント数、かつ、ステップS2233での平均間隔で、筆記方向に従って文字フォント列を内部バッファに配置する(S2234)。また、最尤文字列探索処理部13は、ステップS2234により、内部バッファに配置された文字フォント列を、回転中心において回転角だけ逆回転して表示する(S2235)。すなわち、ここでの認識結果の整形表示処理は、文字列構成要素のフォントパターン列を内部バッファに配置し、それを回転することにより整形表示を実現している。
【0108】
なお、ステップS2235での文字フォントの表示方法としては、元の手書き文字の近くに配置したり、筆記文字に重ね書きすることもできる。なお、ステップS2231での文字サイズ、ステップS2233での平均間隔に伴う文字位置及びステップS2234で用いられる文字コードは、上述の図30、31での認識後の筆記面に示すように、認識結果の整形表示処理の前段階の処理又はそれ以前の処理により決定されている。
【0109】
図33は、認識結果の整形表示処理において各文字毎に回転する場合の説明図である。図34は、認識結果の整形表示処理についてのフローチャート(2)である。なお、ここでの処理は、文認識結果の整形表示面において、文字方向補正文字列構成要素に含まれる文字(ここでは、文字フォント)毎のフォント表示の基点を算出し、この基点に文字フォントを回転して配置する。
【0110】
最尤文字列探索処理部13は、文字方向補正文字列構成要素ごとに手書き文字の平均サイズを求め(S2231)、この平均サイズに近い出力文字ポイント数を決めると共に(S2232)、手書き文字間の縦横それぞれの平均間隔を求める(S2233)。つぎに、最尤文字列探索処理部13は、文字コード列に従い、ステップS2232での出力ポイント数、かつ、ステップS2233での平均間隔で、筆記方向に従って、i番目の文字フォントを配置する場合の基点(X、Y)を、回転中心を原点として計算する(S2236)。また、最尤文字列探索処理部13は、認識結果の整形表示面において、次の数式1に従って、フォント表示の基点を求める(S2237)。
【0111】
【数1】
JP0003958003B2_000004t.gif【0112】
ただし、θは、この文字方向補正文字列構成要素に記録され、これを文字毎に適用するための回転角である。また、(X、Y)は、表示画面における回転中心である。
また、最尤文字列探索処理部13は、i番目のフォントについて、フォントを-θだけ回転して、ステップS2237により得られた(X´、Y´)を基点に配置する(S2238)。ここでは、図33に示すように、文字方向補正文字列構成要素「農工大」に含まれる1番目のフォント「農」、2番目のフォント「工」、3番目のフォント「大」を、-θだけ回転してそれぞれ配置することにより、最初の手書き文字列に近い認識結果の表示を行っている。すなわち、ここでの認識結果の整形表示処理は、整形表示後の文字位置を文字ごとに計算して、それに合うようにフォントを回転して配置することにより整形表示を実現している。
【0113】
以下に、図32、34に示す認識結果の整形表示処理を行うことで示される認識結果の整形表示を示す。
図35は、認識結果の整形表示を示す図(1)である。ここでの文字フォントは、手書き文字に置き換えて表示する例を示している。なお、図中左側が手書き入力、図中右側が手書き入力に対する整形表示後の出力を示している。
ここで、文字サイズ、文字位置、筆記方向及び文字方向の異なる、手書き入力された各文字列構成要素「今日の献立」「カツ丼」「天丼」「うな丼」「親子丼」は、整形表示後、それぞれ最初の手書き文字列に近い認識結果の表示が行われる。
【0114】
図36は、認識結果の整形表示を示す図(2)である。なお、ここでは、図36での手書き入力を示す図に対応するのは、図31での認識前を示す図である。
ここで、文字サイズ、文字位置、筆記方向及び文字方向の異なる、手書き入力された各文字列構成要素(ここでは、4つの「農工大」)は、整形表示後、それぞれ最初の手書き文字列に近い認識結果の表示が行われる。なお、図31に示す認識前の筆記面で上から逆向きに書かれた「農工大」の認識結果表示が、認識後の筆記面で傾いていたことにより、文字認識結果は正しいが、文字方向の推定に誤差が発生したことになり、その文字方向を復元した図36での認識結果の整形表示では、文字フォントが多少傾いて表示されることになる。
【0115】
このように、本実施の形態によれば、キーボードに変わる(あるいは共存する)より自然な文字入力を可能とする文字入力手段や、マウスやキーボードが苦手な人のための文字入力手法及びペンインタフェースを用いることによる、思考を妨げない自然な文字入力手法を提供することができると共に、文字の筆記方向や文字の向いている文字方向に依存しない認識を行うことで、これまで困難であった、文字の傾きやあらゆる方向に書かれた文字列を認識することができる。
【0116】
なお、本発明の文字認識方法は、文字認識プログラム、文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体、文字認識プログラムを含みコンピュータの内部メモリにロード可能なプログラム製品、文字認識プログラムを含みコンピュータが使用可能な記録媒体にストアされたプログラム製品等により提供されることができる。
【0117】
【発明の効果】
本発明によると、以上説明した通り、枠なしで手書き入力された文字に対するより自由度の高い、筆記方向に依存しない枠なし文字認識(自由筆記文字列認識)を行うことができる。
【0118】
また、本発明は、改行によって区切られた文字列ごとに、この文字列の幾何的特徴に基づいて筆記方向を推定すると共に、文字切出し時に筆記方向に応じた仮分割を行うことができる。また、本発明は、例えば、既存の認識システムに適用することにより、筆記方向に依存しない枠なし文字認識、自由筆記文字列認識を行うことができる。
【0119】
また、本発明は、例えば、文字切出しの確からしさ、文字認識の確からしさ、文字サイズの確からしさ、及び文字連接の確からしさを、それぞれ総合的に判断することができる。また、本発明は、例えば、筆記方向、文字方向、行ごとの文字の大きさ変動に依存しない枠なし文字認識を行うことができる。
【図面の簡単な説明】
【図1】本発明に関する筆記方向に依存しない枠なし文字認識装置を適用したオンライン枠なし文字認識システムの概略構成図。
【図2】本発明に関する文字認識方法のフローチャート。
【図3】文字サイズ推定処理についての説明図。
【図4】文字要素間遷移分布を示す説明図。
【図5】横書きと縦書きが混在する文字列を示す図。
【図6】筆記方向変化点の検出を示す説明図。
【図7】最遠点を再帰的に求めた場合についての説明図。
【図8】筆記方向変化が微小である場合について説明図。
【図9】筆記方向推定についての説明図。
【図10】筆記方向別の仮分割を示す説明図。
【図11】分割時の評価についての説明図。
【図12】仮分割修正についての説明図。
【図13】重なりの評価を示す説明図。
【図14】実験用オンライン枠なし文字パターンデータを示す図。
【図15】正認識の例を示す図(1)。
【図16】正認識の例を示す図(2)。
【図17】従来の枠なし文字列認識及び単文字認識を開始した際の表示画面についての説明図。
【図18】筆点座標とストロークの説明図。
【図19】文字方向と筆記方向の説明図。
【図20】本実施の形態に関する文字認識方法のフローチャート。
【図21】文字列構成要素分割処理についての説明図。
【図22】文字サイズ詳細推定処理の説明図。
【図23】文字方向と方向別筆点間距離累積ヒストグラムの説明図。
【図24】方向別筆点間距離累積ヒストグラムにおけるピークの検出についての説明図。
【図25】ピークの検出を示すフローチャート。
【図26】文字方向が上下しかない場合でのピークの検出についての説明図。
【図27】筆記方向から複数の文字方向を仮定する場合についての説明図。
【図28】認識用文字方向補正回転処理の説明図。
【図29】筆記方向量子化処理を示すフローチャート。
【図30】認識結果の整形表示処理の前段階の認識結果を示す図(1)。
【図31】認識結果の整形表示処理の前段階の認識結果を示す図(2)。
【図32】認識結果の整形表示処理についてのフローチャート(1)。
【図33】認識結果の整形表示処理において各文字毎に回転する場合の説明図。
【図34】認識結果の整形表示処理についてのフローチャート(2)。
【図35】認識結果の整形表示を示す図(1)。
【図36】認識結果の整形表示を示す図(2)。
【符号の説明】
1 文字列認識システム
2 ユーザ
3 アプリケーション
4 入力出力部
5 入力文字列パターン入力部
6 認識結果出力部
10 認識コントロール部
11 文字サイズ推定処理部
12 文字切出し処理部
13 最尤文字列探索処理部
14 認識エンジン部
15 最尤文字列探索部
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13
【図15】
14
【図16】
15
【図17】
16
【図18】
17
【図19】
18
【図20】
19
【図21】
20
【図22】
21
【図23】
22
【図24】
23
【図25】
24
【図26】
25
【図27】
26
【図28】
27
【図29】
28
【図30】
29
【図31】
30
【図32】
31
【図33】
32
【図34】
33
【図35】
34
【図36】
35