(57)【要約】【課題】手書き文字や文字の一部の縦幅が小さい場合でも、前方又は後方に位置する文字の縦幅内に収まるように補正する。【解決手段】ストロークのグループの位置の基準をベースラインとして設定し、ベースラインを基準として、各ストロークのグループの外接矩形の底辺レベルをベースラインに近くなるように当該ストロークのグループの位置を補正する高さ補正機能部１４Ａ（補正手段）を備え、高さ補正機能部１４Ａ（補正手段）は、当該ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正する。【選択図】図４
2015059970.tif 000002
【特許請求の範囲】
【請求項１】
手書き入力されたストローク列をグループに分類し、該ストロークのグループを整列して出力するストローク処理装置であって、
前記ストロークのグループの位置の基準をベースラインとして設定し、前記ベースラインを基準として、各ストロークのグループの外接矩形の底辺レベルを前記ベースラインに近くなるように当該ストロークのグループの位置を補正する補正手段を備え、
前記補正手段は、当該ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正することを特徴とするストローク処理装置。
【請求項２】
前回の処理対象となっていた行と新たに入力されるストロークのグループの外接矩形との位置関係を順次判定することで行の区切れ目を判別する一行切り出し判定手段を備え、
前記補正手段による補正処理を一行単位で行い、ストロークのグループの高さを補正することを特徴とする請求項１記載のストローク処理装置。
【請求項３】
前記補正手段は、
前記他のストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの外接矩形と同方向かつ近い距離で移動することを特徴とする請求項１に記載のストローク処理装置。
【請求項４】
前記補正手段は、
前記手書き入力されたストローク列から、１つのストロークを順次に切り出す切り出し手段と、
１つ又は複数の前記ストロークのうちｘ座標が重なっているストロークを１つのグループに属する１つの文字として設定するストロークグループ化手段と、を備え、
前記ベースラインを基準に１つの前記グループ内に含まれる外接矩形の底辺レベルを補正することを特徴とする請求項１に記載のストローク処理装置。
【請求項５】
前記ストロークグループ化手段は、
前記切り出し手段により新たに切り出された１つのストロークの外接矩形の縦幅が所定値よりも大きい場合に、当該ストロークとｘ座標が重なっているグループを求め、当該ストロークを前記グループに併合することにより１つの文字として扱うことを特徴とする請求項４に記載のストローク処理装置。
【請求項６】
前記切り出し手段により新たに切り出された１つのストロークの外接矩形の縦幅が所定値よりも小さい場合に、
前回のストロークが終了してから今回のストロークが開始されるまでの時間が所定時間よりも大きいときか、
或いは当該ストロークのｙ座標が処理中の行に含まれる文字の外接矩形のｙ座標と重なっていときか、
或いは当該ストロークのｘ座標が前記ストロークグループ化手段により設定された最後のグループのｘ座標から所定距離よりも大きく隔離されているか、
或いは前記切り出し手段により新たに切り出された１つのストロークの外接矩形の横幅が所定値よりも大きいときに、
前記切り出し手段により新たに切り出された１つのストロークを行の切れ目として判定する一行切り出し判定手段を備えることを特徴とする請求項４に記載のストローク処理装置。
【請求項７】
前記一行切り出し判定手段は、前記切り出し手段により新たに切り出された１つのストロークが行の切れ目として判定された場合は、前記ストロークグループ化手段により設定された最後のグループまでの群を一行として切り出し、
前記ストロークグループ化手段は、前記切り出し手段により新たに切り出された１つのストロークを次の行の最初のグループとすることを特徴とする請求項４に記載のストローク処理装置。
【請求項８】
前記補正手段は、
最初の数グループの外接矩形の底辺を基準に前記ベースラインを設定することを特徴とする請求項１又は４に記載のストローク処理装置。
【請求項９】
手書き装置からの座標列を前記ストロークとして入力することを特徴とする請求項１乃至８の何れか一項に記載のストローク処理装置。
【請求項１０】
手書き入力されたストローク列をグループに分類し、該ストロークのグループを整列して出力するストローク処理方法であって、
前記ストロークのグループの位置の基準をベースラインとして設定し、前記ベースラインを基準として、各ストロークのグループの外接矩形の底辺レベルを前記ベースラインに近くなるように当該ストロークのグループの位置を補正する補正ステップを備え、
前記補正ステップは、当該ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正することを特徴とするストローク処理方法。
【請求項１１】
請求項１０に記載のストローク処理方法の各ステップをプロセッサに実行させるためのストローク処理プログラム。
【請求項１２】
請求項１１に記載のストローク処理プログラムをコンピュータが読取可能に記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き入力された文字列を処理することにより各文字を整列するのに好適なストローク処理装置、ストローク処理方法、ストローク処理プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
従来、タッチパネルを用いた電子的な手書き装置として、電子黒板やタブレット型パソコン等が実用化されている。
ところで、人間の手の構造上、筆記者によっては書き進むほど文字位置が次第に斜めに下降する場合があった。
また、人間には書かれている文字列に含まれる文字の夫々の底辺同士が揃っていると、目視確認が容易になるという性質がある。逆に、文字列が斜めに下降している場合は目視確認が難しくなる傾向にある。
このため、従来の手書き装置にあっては、手書きされる文字列が斜めに下降している場合、描画面上のスペースを広く使用することになり、不要なスペースが生じるといった問題があった。
このような問題を解消するための技術として、特許文献１には、手書きの文字をきれいに見せる目的で、文字認識の技術を用いて、一文を一文字ごとに分離し、文字が重ならないように左右の位置を再配置する技術について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
特許文献１にあっては、文字の上下方向の位置を修正するために、１文字ごとに切り出す必要があった。そして、縦幅の小さい文字として例えば「・」や「−」等を扱う際に、切り出した縦幅の小さい文字の底辺をベースラインに揃えるように当該文字を縦方向に移動していた。
この結果、「・」や「−」等の文字の外接矩形の底辺をベースラインに揃えただけでは、縦幅が大きい文字と比べ、「・」や「−」等の文字がベースライン上に移動されるので、「．」「＿」という文字に見え、誤認識されるといった問題があった。
また、従来の手書き装置から出力される文字を対象に文字認識を行う場合、誤認識する虞があり、例えば「お」という文字の場合、「お」に含まれる点のみの部分が「、」のようにベースラインに揃うように移動される虞があるため、誤認識の要因となるといった問題は解決されていない。
そこで、手書き文字の縦幅が小さい場合でも、その前方又は後方に位置する文字の縦幅内に収まるように補正することが切望されている。
本発明は、上記に鑑みてなされたもので、その目的としては、手書き文字や文字の一部の縦幅が小さい場合でも、当該文字の前方又は後方に位置する文字の縦幅内に収まるように補正することができるストローク処理装置、ストローク処理装置、ストローク処理プログラム、及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００４】
請求項１記載の発明は、上記課題を解決するため、手書き入力されたストローク列をグループに分類し、該ストロークのグループを整列して出力するストローク処理装置であって、前記ストロークのグループの位置の基準をベースラインとして設定し、前記ベースラインを基準として、各ストロークのグループの外接矩形の底辺レベルを前記ベースラインに近くなるように当該ストロークのグループの位置を補正する補正手段を備え、前記補正手段は、当該ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正することを特徴とする。
【発明の効果】
【０００５】
本発明によれば、ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正することで、手書き文字の縦幅が小さい場合でも、当該文字の前方又は後方に位置する文字の縦幅内に収まるように補正することができる。
【図面の簡単な説明】
【０００６】
【図１】本発明の第１実施形態に係るストローク処理装置のハード構成を示すブロック図である。
【図２】図１に示す文字列高さ補正装置内の制御部の構成を示す図である。
【図３】（Ａ）−（ａ）は、行の切り出しを説明するための図であり、（Ａ）−（ｂ）は、グループ化を説明するための図であり、（Ａ）−（ｃ）は、高さ補正を説明するための図であり、（Ａ）−（ｄ）は、高さ補正を説明するための図であり、（Ｂ）−（ａ）はストローク列を処理する前のストローク列の図であり、（Ｂ）−（ｂ）はストローク列を処理した後のストローク列の図である。
【図４】本発明の第２実施形態に係るストローク処理装置に適用可能な文字列高さ補正装置の構成を示す機能ブロック図である。
【図５】一ストローク受付待ち機能部、及び一行切り出し判定機能部の動作を説明するためのフローチャートである。
【図６】ストロークグループ化機能部の動作を説明するためのフローチャートである。
【図７】高さ補正機能部の動作を説明するためのフローチャートである。
【図８】設定するベースラインに対して右下がりになる様子を示す図である。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態について図面を参照して説明する。
＜第１実施形態＞
図１は、本発明の第１実施形態に係るストローク処理装置のハード構成を示すブロック図である。
ストローク処理装置１００は、手書き装置１、二値化装置３、及び文字列高さ補正装置５を備えている。
手書き装置１は、電子黒板やタブレット型パソコン等であり、手書き操作によるタッチが開始されてから終了するまでの時系列の座標データを出力する。
二値化装置３は、手書き装置１から入力した座標データを二値化して文字列高さ補正装置５に出力する。
文字列高さ補正装置５は、例えばパーソナルコンピュータ（ＰＣ）等により構成され、コンピュータ上のソフトウェアとして実装される。例えば、文字列高さ補正装置５は、ＲＯＭ６、制御部７、表示部８、及びＲＡＭ１０により構成される。
【０００８】
ＲＯＭ６は、ストローク処理を行うためのプログラムを格納する。制御部７は、ＣＰＵにより構成され、ＲＯＭ６に格納されたプログラムに従ってストローク処理を実行する。表示部８は、制御部７により処理された画像を表示する。また、ＲＡＭ１０は制御部７により読み書きされるワークメモリとして機能する。
制御部７は、ＲＯＭからオペレーティングシステムＯＳを読み出してＲＡＭ１０上に展開してＯＳを起動し、ＯＳ管理下において、ＲＯＭ６からプログラムを読み出し、ストローク処理を実行する。制御部７は、現在時刻を計時するタイマを有している。
なお、本稿でストロークとは、たとえば、（１）タブレット上でのペンの軌跡を座標列で表し、ペンがタブレットにタッチしてから離れるまでを一つの区切りとしたもの、（２）手書きの文字を写真やスキャン画像から連結成分ごとで切り出して、書かれた時間順で並べたもの等、外接矩形が定義できる手書きのデータの配列を意味する。
【０００９】
文字列高さ補正装置５は、手書き装置１上で書かれた手書き文字の座標列、または二値化装置３で画像データを二値化した際の黒画素の連結領域のデータを受け取り、文字の外接矩形の底辺レベルを補正することにより整列し、文字の時系列データを出力する。
ここで、手書き装置１から順次に出力される手書き文字の列を文字列と呼ぶ。また、手書き装置１上に書かれた文字について、手書き装置１上への手書き操作によるタッチが開始されてから終了するまでの時系列の座標データを座標列２と呼ぶ。また、二値化装置３において、画像を二値化した際の黒画素が連結状態にある部分をストローク４と呼ぶ。
【００１０】
ストローク処理装置１００は、ストローク処理機能を実現するためのソフトウェアのプログラムコードを記録した記録媒体を、システムまたは装置に供給する。そのシステムまたは装置のコンピュータ（または、ＣＰＵ、ＭＰＵ、ＤＳＰ）が記録媒体に格納されたプログラムコードを読み出して実行する。
この場合、記録媒体から読み出されたプログラムコード自体が前述したストローク処理装置１００の機能を実現する。プログラムコードを供給するための記録媒体としては、ＦＤ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリ、ＲＯＭなどの光記録媒体、磁気記録媒体、光磁気記録媒体、半導体記録媒体がある。
【００１１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述したストローク処理装置１００の機能が実現される。
これに加えて、そのプログラムコードの命令に基づいて、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述したストローク処理装置１００の機能が実現される場合も含まれる。
また、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの命令に基づいて実行する。そして、そこに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述したストローク処理装置１００の機能が実現される場合も含まれることは言うまでもない。
【００１２】
次に、図２は図１に示す文字列高さ補正装置内の制御部７の構成を示す機能ブロック図である。同じ構成要素には図１と同じ符号を付して説明する。
制御部７は、一ストローク受付待ち部１２、一行切り出し判定部１３、高さ補正部１４、及びストロークグループ化部１５を備えている。
一ストローク受付待ち部１２は、二値化装置３から出力されるストローク４から一つのストロークを切り出し、このストローク４を次処理に渡す。
一行切り出し判定部１３は、手書きされた文字列の行の切れ目を判定する。
ストロークグループ化部１５は、新たに入力されるストローク毎に一時的にグループを設定しており、順次に入力される１つのストロークの外接矩形のｘ座標が重なっているグループを求め、新たなストロークをこのグループに併合することにより１つの文字として扱う。
【００１３】
高さ補正部１４は、文字の底辺レベルの高さを揃えるための基準となるベースライン２１（図３参照）を設定し、このベースライン２１を基準に各グループ内に含まれる文字の外接矩形２０（図３参照）の底辺レベルを補正する。
詳しくは、高さ補正部１４は、文字列の先頭文字を含めた複数の基準文字の各外接矩形の底辺の平均レベル又は各底辺の最低レベルをベースラインとして設定しておく。さらに、高さ補正部１４は、ベースラインの位置レベルを参照し、このベースラインを基準に基準文字よりも後方に位置する他の文字の外接矩形の底辺レベルを補正する。
高さ補正部１４は、文字の外接矩形の縦幅が一定値よりも小さい文字を、当該文字の前方又は後方に位置する文字の外接矩形の縦幅内、又は平均値内、又は中央値に収まるように補正する。
【００１４】
図３はストローク処理の概念を示す図である。図３において、紙面の縦方向をｙ軸、紙面の横方向をｘ軸として扱うこととする。
図３（Ａ）−（ａ）は、行の切り出し処理について説明するための図であり、外接矩形２０により囲まれた文字を含む文字列「⇒参考にするかは」１６が１行目であることを示す。
図３（Ａ）−（ｂ）は、グループ化処理について説明するための図であり、入力される新たなストロークを順次にグルーピング処理する。この際に、文字の外接矩形の縦幅が小さいグループに属する文字「か」に含まれる点は、その前後のグループに併合してグループ１７として設定されることを示す。
図３（Ａ）−（ｃ）は、高さ補正処理について説明するための図であり、ベースライン２１を設定して、ベースラインの位置レベルを参照し、このベースライン２１を基準にストローク列９の外接矩形２０の底辺レベルを合わせることを示す。
図３（Ａ）−（ｄ）は、高さ補正処理について説明するための図であり、外接矩形の縦幅が小さい文字１８ａ、１８ｂの底辺レベルをベースライン２１に揃えていない例を示す。ここでは、当該文字１８ａ、１８ｂの前方又は後方の文字の外接矩形の縦幅の平均値レベルの位置又は中央値レベルの位置に揃えるように補正することを示す。
【００１５】
ここで、中央値について詳しく説明する。
上述したグループ化処理では、１つ又は複数のストロークのうちｘ座標が重なっているストロークを１つのグループとし、このグループに属する外接矩形の中で対向する２つの角部の座標を始点（ｘｓ、ｙｓ）、終点（ｘｅ、ｙｅ）とする。図３（Ａ）−（ｂ）に示す例では、最終的に９個のグループが生成されており、夫々のグループの外接矩形は始点及び終点の組を有し、各グループの外接矩形の始点及び終点、縦幅値の組を外接矩形リストＢとしてＲＡＭ１０に記憶している。なお、文字列高さ補正装置５に電源が投入された時点では、デフォルト値として０が設定されていることとする。
ここで、外接矩形リストＢの一例を表１に示す。
【００１６】
【表１】
2015059970.tif 000003
【００１７】
例えば、図３（Ａ）−（ｂ）に示す先頭文字は３つのストロークで構成されているが、上述した併合処理を行うことで、３つのストロークが最終的に１つのグループに併合される。また、表１では各グループにおいて外接矩形の始点及び終点を１組だけ記載しているが、手書き文字に例えばｋ個のストロークが含まれている場合は外接矩形の始点及び終点をｋ組だけ記憶するように構成してもよい。
上述したグループ化処理では、各グループ内の外接矩形の始点及び終点で示されるｙ座標の縦幅値を夫々に計算し、縦幅値が大きいものから小さいものに向かって順に並べたときに、並び順位が中央になる値を中央値と呼ぶ。
これにより、外接矩形の縦幅が小さい文字１８ａ、１８ｂ（図３）を当該文字１８ａ、１８ｂの前方又は後方の文字の外接矩形の縦幅の中央値レベルの位置に揃えるように補正することができる。
【００１８】
図３（Ｂ）は、ストローク列の例を示す図である。図３（Ｂ）−（ａ）は、ストローク列１６に高さ補正処理を行う以前の文字のレベルを示す図である。図３（Ｂ）−（ｂ）は、高さ補正処理した後のストローク列９の文字の外接矩形のレベルを示す図である。図３（Ｂ）−（ｂ）に示すように、ベースライン２１を基準に処理後のストローク列９の各文字の底辺レベルが合っていることが理解できる。
これにより、ベースラインの位置レベルを参照し、文字列の底辺レベルがベースラインの位置レベルに揃うように補正することができるので、目視確認を容易に行うことができる。
【００１９】
＜第２実施形態＞
図４は、本発明の第２実施形態に係るストローク処理装置に適用可能な文字列高さ補正装置の構成を示す機能ブロック図である。
文字列高さ補正装置７Ａは以下の４つの機能ブロックから構成されている。なお、図１に示す文字列高さ補正装置５内に備えられた制御部７の構成（図２）との対応関係を明確にするために、図２に示すハードウェアに対応する機能ブロックは同じ符号の末尾に「Ａ」を付して説明する。
一ストローク受付待ち機能部１２Ａは、二値化装置３から入力される新たな一つのストロークを切り出し、以降の機能ブロックに出力する。一ストローク受付待ち機能部１２Ａが、同時に複数のストロークを受け取った場合でもストロークを一つずつ順次に以降の機能ブロックに出力する。
一行切り出し判定機能部１３Ａは、手書きされた文字列の行の切れ目を判定する。
ストロークグループ化機能部１５Ａは、新たに入力されるストロークを順次にグルーピングする。この際、文字の外接矩形の縦幅が一定値よりも小さいグループは、前方又は後方のグループに併合する。
また、ストロークグループ化機能部１５Ａでは、ストロークごとに順次にグルーピングを行なうので、ストローク処理における処理速度を高めることができる。
【００２０】
高さ補正機能部１４Ａは、ベースライン２１を設定し、ベースラインの位置レベルを参照し、文字の外接矩形の底辺レベルをベースライン２１の位置レベルに合わせる。ベースライン２１は、人間の手の構造を考慮（手書き時の人の手は、右方向に書き進むほど下方向に下がる）（図８参照）する必要がある。
高さ補正機能部１４Ａは、手書き操作を開始してから先頭の数文字の範囲の外接矩形の底辺レベルｙｂ（ｙ座標）から求めた平均値ｙｂａｖレベル、又は各底辺レベルｙｂ内の最低値ｙｂｍｉｎレベルにベースライン２１を設定する。
詳しくは、最初（先頭）の１文字目の外接矩形の底辺のｙ座標をｙｂ１、ｎ文字目の外接矩形の底辺のｙ座標をｙｂｎとした場合、１文字目から数文字の範囲の外接矩形の底辺位置ｙｂ（ｙ座標）の平均値ｙｂａｖは、
ｙｂａｖ＝（ｙｂ１＋ｙｂ２＋・・・＋ｙｂｎ）／ｎ              （１）
となる。
また、ｙｂ１、ｙｂ２、・・・、ｙｂｎの中で最低値をｙｂｍｉｎとする。
これにより、ベースレベルを先頭から数文字の範囲の比較的斜め方向に傾きのないラインに設定することができる。
【００２１】
次に、図５は一ストローク受付待ち機能部１２Ａ、及び一行切り出し判定機能部１３Ａの動作を説明するためのフローチャートである。
なお、本実施形態では、新たなストロークが入力された場合、図５〜図７に示すフローチャート上の何れかの判断ステップのルートを経由して一ストローク受付待ち機能部１２Ａでのストローク受付待ち処理に戻ることとして説明する。
一ストローク受付待ち機能部１２Ａは、手書き装置１から手書きされたストローク４Ａを入力すると（Ｓ１）、ストローク４を一つ受け取り、このストローク４を一行切り出し判定機能部１３Ａに渡す（Ｓ２）。このとき、一ストローク受付待ち機能部１２Ａは、タイマから読み出したストロークが書かれた時刻データをストロークの座標データとともにＲＡＭ１０に記憶する。
【００２２】
一行切り出し判定機能部１３Ａは、ステップＳ１で受け付けた新しいストローク（ストロークＡ）と、現行の行に含まれる各グループの外接矩形リストＢと、前回のストロークが書かれた時刻データとをＲＡＭ１０から読み込む。同時に、一行切り出し判定機能部１３Ａは、タイマから現在の時刻を入力する（Ｓ３）。
次に、一行切り出し判定機能部１３Ａは、ストロークＡが行の最初のｍストロークであり、ストロークＡの外接矩形の縦幅ｈ（ｈはｙ方向の画素数を表す）が一定値以下か否かを判定する（Ｓ４）。
ここで、最初の数ストロークは縦幅ｈが小さく書かれる可能性があり、ストロークＡの縦幅ｈに基づいて様々な判断をすると動作が不安定になる可能性が高くなる。このため、最初の数ストローク（例えば、３ストローク）は行の判定処理を行わないこととする。
【００２３】
上述したステップＳ４において、ストロークＡの外接矩形の縦幅ｈが一定値ｈｒｆ以下である場合（Ｓ４でＹ）、一行切り出し判定機能部１３Ａは以下［１］〜［４］の何れかを満たすか否か判断する（Ｓ５）。また、ステップＳ４でストロークＡの外接矩形の縦幅ｈが一定値ｈｒｆ以下ではない場合（Ｓ４でＮ）、図６に示すストロークグループ化機能部１５Ａにおける処理に進む。
ステップＳ５において、一行切り出し判定機能部１３Ａは、下記の［１］〜［４］により新たに入力されたストロークＡについて、前回まで処理していた行から別の行に変わっているか否かを判定する。
【００２４】
［１］ＲＡＭ１０から読み出した前回のストロークからの経過時間ｔ（ｔは時間を表す）が一定時間ｔｒｆ以上経過している。
［２］外接矩形リストＢ内の外接矩形の全てのｙ方向の位置（ｙ座標）と比較し、新たに入力されたストロークＡのｙ方向の外接矩形の位置ｙが重なっている。
［３］ストロークＡのｘ方向の位置ｘ（ｘ座標）が最後のグループの位置（ｘ座標）から一定値Ｄｒｆ以上隔離している。
［４］ストロークＡの外接矩形の横幅ｗが一定値ｗｒｆより大きい。又はストロークＡの縦幅ｈが一定値ｈｒｆより大きい。
一行切り出し判定機能部１３Ａは、新たに入力されたストロークＡが上記の［１］〜［４］の１つ又は複数に該当しているか否かを判断する。
これにより、前回の処理対象となっていた行と新たに切り出されたストロークのグループの外接矩形との位置関係を順次判定することができ、一行単位でストロークのグループの高さを補正することができ、縦幅が小さいストロークに対する処理精度を向上することができる。
【００２５】
これらのフローでは簡単のためにどれかの値が閾値を超えていたら行が変わったと判定することにしている。しかし、これらを予め学習したサポートベクターマシンＳＶＭ（Support vector machine）やニューラルネットワークのような認識器へストロークＡを入力して行が変わったかどうか判定してもよい。
なお、サポートベクターマシンＳＶＭは、線形入力素子を利用して２クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという基準（超平面分離定理）で線形入力素子のパラメータを学習する。
一方、ニューラルネットワーク（Neural network  神経回路網）は、脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルである。シナプスの結合によりネットワークを形成した人工ニューロン（ノード）が、学習によってシナプスの結合強度を変化させ、問題解決能力を持つようなモデル全般を指す。
【００２６】
また、一行切り出し判定機能部１３Ａは、新たに入力されたストロークＡの外接矩形の横幅ｗが一定値ｗｒｆより大きい場合、又は、この外接矩形の縦幅ｈが一定値ｈｒｆ以上の場合、アンダーラインや図表であるとみなす判断を行い、行が変わったことと同様であると仮定する。本処理も、事前に統計を取っておき、どの程度が文字の範囲内で、どこからが図表の範囲内なのかを閾値として取得しておくことが好ましい。
次に、ステップＳ５において、上記４つの何れかの条件を満たした場合（Ｓ５でＹ）、一行切り出し判定機能部１３Ａは、外接矩形リストＢに対応するグループの集合を一行として切り出す。同時に、ストロークグループ化機能部１５ＡはストロークＡを次の行の最初のグループとする（Ｓ６）。
これにより、新たに切り出された縦幅が小さいストロークが属するべき行グループを確定することができる。
【００２７】
そして、一行切り出し判定機能部１３Ａは、ＲＡＭ１０から読み出した外接矩形リストＢの最後の文字の外接矩形の縦幅ｈが、外接矩形リストＢ中の外接矩形の縦幅の全ての中央値ｈｃの一定の割合値％以下の縦幅か否かを判定する（Ｓ７）。
一行切り出し判定機能部１３Ａは、外接矩形リストＢの最後の文字の外接矩形の縦幅ｈが、外接矩形リストＢ中の外接矩形の縦幅の全ての中央値ｈｃの一定の割合値％以下の縦幅である場合（Ｓ７でＹ）、最後の外接矩形に対応するグループを一つ前のグループに併合する（Ｓ８）。
一方、ステップＳ７で、外接矩形リストＢの最後の外接矩形の縦幅ｈが、外接矩形リストＢ中の外接矩形の縦幅の全ての中央値ｈｃの一定の割合値％以下の縦幅でない場合（Ｓ７でＮ）、図７に示す高さ補正処理に進む。
すなわち、行が変わった際に、前回まで処理対象となっていた行の最後のグループの外接矩形の縦幅がこれまでの外接矩形の縦幅と比較して小さい場合は、前回まで処理対象となっていた行の最後のグループの外接矩形に併合する。
【００２８】
図６はストロークグループ化機能部１５Ａの動作を説明するためのフローチャートである。
まず、ストロークグループ化機能部１５Ａは、図４に示す一ストローク受付待ち機能部１２Ａは、受け付けた新たなストロークＡと現在処理中の行のグループの外接矩形リストＢをＲＡＭ１０から読み出して入力する（Ｓ１１）。
次に、ストロークグループ化機能部１５Ａは、ＲＡＭ１０から読み出したストロークＡの外接矩形のｘ座標が、ＲＡＭ１０から読み出した外接矩形リストＢ中の外接矩形のうち一つ以上のｘ座標と重なっているか否かを判定する（Ｓ１２）。
ここで、両者のｘ座標が重なっていない場合（Ｓ１２でＹ）、ストロークグループ化機能部１５Ａは、条件を満たすグループに新たなストロークＡを併合して外接矩形リストＢに設定し、ＲＡＭ１０に記憶させ（Ｓ１３）、図５に示す一ストローク受付待ち機能部１２Ａに戻る。
この結果、外接矩形リストＢには新たなストロークＡの外接矩形が条件を満たすグループに併合されて記憶される。
【００２９】
ステップＳ１２で両者のｘ座標が重なっていない場合（Ｓ１２でＮ）、ストロークグループ化機能部１５Ａは、外接矩形リストＢの最後の外接矩形の縦幅ｈが、外接矩形リストＢ中の外接矩形の縦幅ｈの全ての中央値ｈｃの一定の割合値％以下の縦幅かを判定する（Ｓ１４）。
外接矩形リストＢ中の外接矩形の縦幅の全ての中央値ｈｃの一定の割合値％以下の縦幅である場合（Ｓ１４でＹ）、ストロークグループ化機能部１５Ａは、一つ前のグループを新たなストロークＡのグループに併合して外接矩形リストＢに記憶させる（Ｓ１５）。
一方、ステップＳ１４で一定の割合値％以下の縦幅でない場合（Ｓ１４でＮ）、図５に示す一ストローク受付待ち機能部１２Ａに戻る。
【００３０】
次に、図７は高さ補正機能部１４Ａの動作を説明するためのフローチャートである。
まず、高さ補正機能部１４Ａは、図４に示す一行切り出し判定機能部１４Ａで、新しく行と判定されたグループの集合（以下、グループリストＣという）をＲＡＭ１０から読み出して入力する（Ｓ２１）。
ここで、グループリストＣについて説明する。
グループリストＣは、表２に示す外接矩形リストＢの構成に加えて、夫々のグループに対応する１つ又は複数のストロークを含む文字画像が記憶されている。なお、表２に示す文字画像は、図３（Ａ）−（ｂ）に示す各グループ内の文字に対応している。
【００３１】
【表２】
2015059970.tif 000004
【００３２】
次いで、高さ補正機能部１４Ａは、グループリストＣの最初のＳ個のグループの外接矩形の最底辺レベルｙｂｍｉｎから直線ｙ＝ｙｂｍｉｎをベースラインとして定義する（Ｓ２２）。
すなわち、ステップＳ２２において、高さ補正機能部１４Ａは、最初の数グループ（例えば、３グループ）の文字の底辺のうち最下位の位置レベルｙｂｍｉｎからベースラインの位置レベルを割り出す。
これにより、ベースレベルを先頭から数文字の範囲の比較的斜め方向に傾きのないラインに設定することができる。
なお、外接矩形の底辺の中でも最下位レベルとなる底辺をベースラインとしているが、最初の数グループの外接矩形の縦幅ｈの平均値ｈａｖや中央値ｈｃを用いてもよい。
ここで、最初のグループの外接矩形の縦幅をｈ１、ｎグループ目の外接矩形の縦幅をｈｎとした場合、最初の数グループの外接矩形の縦幅ｈの平均値ｈａｖは、
ｈａｖ＝（ｈ１＋ｈ２＋・・・＋ｈｎ）／ｎ              （２）
となる。
また、上述したように中央値ｈｃは、各グループ内の外接矩形の縦幅値を夫々に計算し、縦幅値が大きいものから小さいものに向かって順に並べたときの中央の値である。
さらに、最初の数グループの外接矩形の縦幅ｈの底辺の中点を近似直線で結んでおき、傾きｍｂを有するベースラインとして設定してもよい。
【００３３】
次に、高さ補正機能部１４Ａは、グループリストＣの全グループの外接矩形の底辺の中点に基づいて近似直線を作成する（Ｓ２３）。
ここで、各グループの外接矩形の底辺の中点の座標をそれぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）、・・・、（ｘｎ，ｙｎ）とすると、これらの中点からの接線の長さが最短になる近似直線を最小二乗法などを用いて求める。
次に、高さ補正機能部１４Ａは、ベースラインの位置レベルを参照し、この近似直線の傾きｍｋとベースラインの直線の傾きｍｂとの差が一定値ｍｒｆ以上か否かを判定する（Ｓ２４）。
【００３４】
近似直線の傾きｍｋとベースラインの直線の傾きｍｂとの差が一定値ｍｒｆ以上でない場合（Ｓ２４でＮ）、高さ補正機能部１４Ａは、処理対象となる行の各グループの外接矩形の底辺レベルをベースラインの位置レベルまでそれぞれ移動し（Ｓ２５）する。次いで、図５に示す一ストローク受付待ち機能部１２Ａに戻る。
また、ステップＳ２４において、上記近似直線の傾きｍｋとベースラインの直線の傾きｍｂとの差が一定値ｍｒｆ以上の場合（Ｓ２４でＹ）、何も処理を行わずに、図５に示す一ストローク受付待ち機能部１２Ａに戻る。
図８は設定するベースラインに対して右下がりになる様子を示す図である。ここで、人間の手３２の構造を想定すると、設定するベースライン２１に対して文字のライン３１が右下がりに下降することが多い。この点を考慮し、近似直線の傾きとベースラインの傾きとの差が、上向き差となるか下向きの差となるかで上記一定値ｍｒｆを変更するように高さ補正機能部１４Ａを構成してもよい。
【００３５】
従来のストローク処理装置にあっては、本来「・」や「−」という文字が「．」や「＿」という文字に見える場合があった。
これに対して、本実施の形態によれば、「・」や「−」等の文字の底辺レベルをこれらの文字が属する行の各文字の外接矩形の縦幅の平均値レベルや中央値レベルまで移動するように補正することができるので、目視確認を容易に行うことが可能になる。これに加えて、このような処理結果となる文字データを文字認識装置に入力させることで、認識率の向上に寄与することができる。
【００３６】
以上のように、本実施形態によれば、手書き入力されたストローク列をグループに分類し、該ストロークのグループを整列して出力するストローク処理装置であって、ストロークのグループの位置の基準をベースラインとして設定し、ベースラインを基準として、各ストロークのグループの外接矩形の底辺レベルをベースラインに近くなるように当該ストロークのグループの位置を補正する高さ補正機能部１４Ａ（補正手段）を備え、高さ補正機能部１４Ａ（補正手段）は、当該ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正する。
これにより、ストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該ストロークのグループの位置を当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの位置とベースラインの位置を参照して補正することで、手書き文字の縦幅が小さい場合でも、当該文字の前方又は後方に位置する文字の縦幅内に収まるように補正することができる。
【００３７】
本実施形態によれば、前回の処理対象となっていた行と新たに入力されるストロークのグループとの外接矩形の位置関係を順次判定することで行の区切れ目を判別する一ストローク受付待ち機能部１２Ａ（一行切り出し判定手段）を備え、高さ補正機能部１４Ａ（補正手段）による補正処理を一行単位で行い、ストロークのグループの高さを補正する。
これにより、前回の処理対象となっていた行と新たに切り出されたストロークのグループの外接矩形との位置関係を順次判定することができ、一行単位でストロークのグループの高さを補正することができる。
【００３８】
本実施形態によれば、高さ補正機能部１４Ａ（補正手段）は、他のストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの外接矩形と同方向かつ近い距離で移動する。
これにより、他のストロークのグループの外接矩形の縦幅が所定値よりも小さい場合に、当該他のストロークのグループの前方又は後方に位置する一つのストロークのグループの外接矩形と同方向かつ近い距離で移動することができる。
【００３９】
本実施形態によれば、高さ補正機能部１４Ａ（補正手段）は、手書き入力されたストローク列から、画素が連結した状態にある１つのストロークを順次に切り出す一ストローク受付待ち機能部１２Ａ（切り出し手段）と、１つ又は複数のストロークのうちｘ座標が重なっているストロークを１つのグループに属する１つの文字として設定するストロークグループ化機能部１５Ａ（ストロークグループ化手段）と、を備え、ベースラインを基準に１つのグループ内に含まれる外接矩形の底辺レベルを補正する。
これにより、ベースラインを基準に１つのグループ内に含まれる外接矩形の底辺レベルを補正することができる。
【００４０】
本実施形態によれば、ストロークグループ化機能部１５Ａ（ストロークグループ化手段）は、一ストローク受付待ち機能部１２Ａ（切り出し手段）により新たに切り出された１つのストロークの外接矩形の縦幅が所定値よりも大きい場合に、当該ストロークとｘ座標が重なっているグループを求め、当該ストロークを前記グループに併合することにより１つの文字として扱う。
これにより、新たなストロークの外接矩形の縦幅が所定値よりも大きい場合に、当該ストロークをｘ座標が重なっているグループに併合することができ、１つの文字として扱うことができる。
【００４１】
本実施形態によれば、一行切り出し判定機能部１３Ａ（一行切り出し判定手段）は、一ストローク受付待ち機能部１２Ａ（切り出し手段）により新たに切り出された１つのストロークＡの外接矩形の縦幅が一定値ｈｒｆよりも小さい場合に、前回のストロークが終了してから今回のストロークＡが開始されるまでの経過時間ｔが一定時間ｔｒｆよりも大きいときか［１］、或いは当該ストロークのｙ座標が現在処理中の行に含まれる文字の外接矩形のｙ座標と重なっていときか［２］、或いは当該ストロークＡのｘ座標がストロークグループ化機能部１５Ａ（ストロークグループ化手段）により設定された最後のグループのｘ座標から一定値Ｄｒｆよりも大きく隔離されているか［３］、或いは一ストローク受付待ち機能部１２Ａにより新たに切り出された１つのストロークＡの外接矩形の横幅が一定値ｗｒｆよりも大きいときに［４］、一ストローク受付待ち機能部１２Ａにより新たに切り出された１つのストロークを行の切れ目として判定する。
これにより、新たに切り出された１つのストロークＡが前回の処理対象となっていた行か新たな行かを判定することができ、縦幅が小さいストロークに対する処理精度を向上することができる。
【００４２】
本実施形態によれば、一行切り出し判定機能部１３Ａ（一行切り出し判定手段）は、一ストローク受付待ち機能部１２Ａ（切り出し手段）により新たに切り出された１つのストロークＡが行の切れ目として判定された場合は、ストロークグループ化機能部１５Ａ（ストロークグループ化手段）により設定された最後のグループまでの群を一行として切り出し、ストロークグループ化機能部１５Ａは、一ストローク受付待ち機能部１２Ａにより新たに切り出された１つのストロークを次の行の最初のグループとする。
これにより、新たに切り出された縦幅が小さいストロークが属するべき行グループを確定することができる。
【００４３】
本実施形態によれば、高さ補正機能部１４Ａ（補正手段）は、最初の数グループの外接矩形の底辺を基準にベースラインを設定する。
これにより、ベースレベルを先頭から数文字の範囲の比較的斜め方向に傾きのないラインに設定することができる。
【００４４】
本実施形態によれば、手書き装置からの座標列をストロークとして入力する。これにより、電子黒板やタブレット型パソコン等の手書き装置から入力される手書き文字の縦幅が小さい場合でも、当該文字の前方又は後方に位置する文字の縦幅内に収まるように補正することができる。
【００４５】
本発明の他の実施形態に係るストローク処理装置において、高さ補正機能部１４Ａは、手書き装置１から得られた座標列に適用する。これにより、手書き装置１から得られた座標列に基づいて文字列の縦幅を補正するので、演算の正確性を高めることができる。また、文字に加えて、画像データに適用することにより、文字ばかりでなく他の画像データもベースラインの揃った画像として表示することができる。
【００４６】
本発明の他の実施形態に係るストローク処理装置において、ストロークとして、タブレットなどのセンサーから取得したペンの座標列を用いてもよい。また、ストロークとして、画像を連結成分単位で切り出して並べた配列を用いてもよい。
【符号の説明】
【００４７】
１…手書き装置、２…座標列、３…二値化装置、４…ストローク、５…文字列高さ補正装置、６…ＲＯＭ、７…制御部、８…表示部、９…ストローク列、１０…ＲＡＭ、１２…一ストローク受付待ち部、１３…一行切り出し判定部、１４…高さ補正部、１５…ストロークグループ化部、１６…文字列、１７…グループ、１２Ａ…一ストローク受付待ち機能部、１３Ａ…一行切り出し判定機能部、１４Ａ…高さ補正機能部、１５Ａ…ストロークグループ化機能部、２０…外接矩形、２１…ベースライン、３１…文字のライン、３２…人間の手、１００…ストローク処理装置
【先行技術文献】
【特許文献】
【００４８】
【特許文献１】特開平１０−１７１４３７号公報
【図１】
2015059970.tif 000005
【図２】
2015059970.tif 000006
【図３】
2015059970.tif 000007
【図４】
2015059970.tif 000008
【図５】
2015059970.tif 000009
【図６】
2015059970.tif 000010
【図７】
2015059970.tif 000011
【図８】
2015059970.tif 000012