説明

携帯端末における文字認識のための方法およびプログラム

【課題】利用者が文字列の方向を指定しなくても、縦書きと横書きが混在する日本語のような言語の文字列を、CPUの処理能力が低くかつ使用できるメモリが少ない携帯端末でリアルタイムに読取ることが課題である。
【解決手段】携帯端末における文字認識の前処理として文字行方向自動判定手段を設ける。この文字行方向自動判定手段には、図や写真や罫線や空白を検知してこれらを除いた画像の領域を読取領域として抽出する読取領域抽出手段を設ける。また、文字行方向判定手段では、高速かつ省メモリで動作するように、読取る文字列を撮像する際に指定する位置を中心とした上下左右に所定の範囲で広げた領域で文字行方向判定を行うようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラを有する携帯型の端末、および、そのユーザーインターフェース、および、文字認識の技術に関する。
【背景技術】
【0002】
近年、小型の携帯電話やPDA(Personal Digital Assistance)等(以下、これらをまとめて携帯端末と呼ぶ)が広く普及している。携帯端末では、メール作成やアドレス登録、メモ書き、スケジュール登録などで、文字の入力が必要な場合が多い。文字を入力する手段としてキーを用いるのが一般的である。しかし、小型の携帯端末でのキー入力では、キーを何度も押さなければならないため、利用者の負担が大きい。
【0003】
キー入力に代わる手段として、文字認識を利用する方式が特開2003−78640号公報(特許文献1)で述べられている。これは入力したい文字列を付属のカメラで画像として撮り込み、読取りたい文字列を指定して、その文字列を文字認識の技術を用いて読取り、読取った文字列を入力するというものである。
【0004】
【特許文献1】特開2003−78640号公報 しかし、日本語では縦書きと横書きの両方が用いられる。そのため、文字認識に先立って縦書き文字列を読取るのか横書き文字列を読取るのか、文字列の方向を予め指定する必要があった。
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のように、利用者が文字列の方向を指定しなくても、縦書きと横書きが混在する日本語のような言語の文字列を、CPUの処理能力が低くかつ使用できるメモリが少ない携帯端末でリアルタイムに読取ることが課題である。従来から、文著が縦書きか横書きかを画像から判定する技術はあった。しかし、従来手法では、広範囲の画像を処理する必要があり、メモリ容量や処理能力が限られている携帯端末への適用は困難であった。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明では、携帯端末における文字認識の前処理として文字行方向自動判定手段を設ける。この文字行方向自動判定手段には、図や写真や罫線や空白を検知してこれらを除いた画像の領域を読取領域として抽出する読取領域抽出手段を設ける。
【0007】
また、前記文字行方向判定手段は、高速かつ省メモリで動作するように、読取る文字列を撮像する際に指定する位置を中心とした上下左右に所定の範囲で広げた領域で文字行方向判定を行うようにした。指定する位置は、特開2003−78640号公報(特許文献1)に示すように読取る文字列の位置にマーカーを合わせることによって指定される。
【0008】
さらに、前記文字行方向自動判定手段は、指定する位置から所定の範囲に広げた領域と前記読取領域抽出手段で抽出した読取領域の一致している領域を用いることで、より使用メモリが少なくなり、処理速度も速くすることができる。
【0009】
前記読取領域抽出手段と前記文字行方向自動判定手段を設けることで、CPUの処理能力が低くかつ使用できるメモリが少ない携帯端末で高速かつ省メモリで縦書き横書きが混在する日本語のような言語の文字列をリアルタイムに読取ることができる。
【発明の効果】
【0010】
本発明によれば、CPUパワーが小さくかつ使用できるメモリが少ない携帯端末で、縦書き横書きの両方が用いられる日本語のような言語の文字列を、読取る文字列の方向を予め設定しなくても、高速かつ省メモリで文字列の方向を自動で判定し、文字列認識することができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態を図面により詳細に説明する。
図1は本発明を適用した携帯端末の実施の形態を示すデータフローである。本発明のプログラム101は、携帯端末に搭載されたカメラからの画像を入力とし、画像中に写された文書中の単語を読取り、その結果を表示する。読取領域抽出モジュール102は、入力画像を入力して入力画像中の図や写真や罫線や空白の領域を検知して読取る領域のみを抽出して、抽出した領域座標を出力する。文字行方向判定モジュール103は、入力画像と読取領域を入力して文字行が縦書きか横書きかを判定し、その判定結果である縦書きか横書きかの情報を出力する。文字行抽出モジュール104は、入力画像と文字行方向と読取領域座標を入力して文字行を抽出し、その文字行領域を出力する。文字行表示モジュール105は、入力画像と文字行方向と文字行領域を入力しディスプレイに表示する。文字列読取モジュール106は、利用者から入力画像に対して文字行方向および文字行領域が正しいことを確認する入力があった場合は、文字行領域を入力して文字列を認識し、その読取った結果を出力する。ここで、文字行表示モジュール105で表示した文字行方向および文字行領域が利用者の読取りたい文字列であるとき、その文字行に対して文字列認識を行うという指示を利用者が指示する。表示モジュール107は、入力画像と文字列読取結果を入力し、それをディスプレイに表示する。
【0012】
図2は、ハードウェアの構成を示すブロック図である。携帯端末201は、読取対象文字列を撮像するカメラ202と本発明のプログラムの処理演算を行うCPU203とカメラ202で撮像した画像、本発明のプログラムおよび文字識別用の辞書および文字列照合用の文字列辞書を記憶するメモリ204と読取対象文字列の表示および文字行抽出結果の表示および文字列認識結果の表示を行うディスプレイ205とカメラ202の撮像の決定および文字行抽出結果の確認および文字列認識結果の確認をプログラムに伝えるボタン206で構成される。
【0013】
図3は、図1で示した文字認識プログラムの概略処理手順を示すフローチャートである。画像入力処理301ではカメラ撮像した画像を内部メモリに取り込む。画像表示処理302では画像入力処理301で取り込んだ画像をディスプレイに表示する。読取領域抽出処理303では画像入力処理301で取り込んだ画像から図や写真や罫線や空白を検知してこれらの領域を除いた読取領域のみを抽出する。文字行方向判定処理304では読取領域抽出処理303で抽出した読取領域から文字行が縦書きなのか横書きなのか文字行方向を判定する。
【0014】
文字行抽出処理305では読取領域抽出処理で抽出した読取領域と文字行方向判定処理304で判定された文字行方向に基づいて文字行を抽出する。文字行領域表示処理306では画像表示処理302で表示した画像に文字行抽出処理305で抽出した文字行領域を矩形でディスプレイに表示する。このとき、縦書きと横書きのどちらの文字行方向なのか明確にするため、縦書きの場合と横書きの場合で文字行領域の矩形の色を変えるとよい。文字行決定判断307では文字行領域表示処理306で表示した文字行領域が利用者の読取りたい文字列であるか否かの入力を受け付け、利用者の読取りたい文字列であれば文字列読取処理307を行う。そうでなければ画像入力処理301へ戻る。文字列読取り処理308では、文字行抽出処理305で抽出した文字行から文字列を読取る。文字行抽出処理305および文字列読取り処理307については、利用者が指定する位置から文字行方向判定処理で判定された文字行方向に基づいて例えば特許文献1に示す方法を用いることで実現できる。読取り結果表示処理309では文字列読取り処理308で読取った文字列をディスプレイに表示する。決定または終了判定310では画像表示処理302で表示した入力画像と読取り文字行表示処理306で表示した文字行領域と文字列読取結果表示処理309で表示した文字列を利用者が確認して読取った文字列を決定または文字認識プログラムの終了を選択した場合に終了とする。そうでない場合は次の画像入力処理301に戻る。
【0015】
図4は、読取領域抽出処理の詳細を示す図である。401は入力画像であり、402は読取領域をユーザが指定する際に画像に重ねて表示されるマーカーであり、このマーカーと座標が同一になる部分が読取領域の仮中心として決定される。403のように、入力画像401から図や写真を検出して読取領域から除外する。また、403のように、指定座標側の画像の領域404から罫線405を検出して読取領域から除外する。また、405のように、指定座標側の画像の領域406から空白407を検出して読取領域から除外する。このようにして読取領域408が決定される。なお、読取領域から除外すべき項目としては、上述の総てを利用する必要はなく、また、これ以外の条件を合わせて用いてもよい。
【0016】
図5は読取領域抽出処理の詳細なデータフローの一例である。図・写真検出501で入力画像から図や写真の領域を検出する。図や写真などを検出は、例えば画素の連結成分の外接矩形を用いて、外接矩形の大きさがある大きさ以上の連結成分を検出すればよい。ただし、指定座標に近い連結成分は図や写真として扱わないとする。罫線検出502では入力画像から図・写真検出501で検出した領域以外の領域において長い罫線を検出する。罫線の検出は、例えば画素の連結成分の外接矩形の縦横比がある大きさ以上である連結成分を検出すればよい。検出した罫線より画像の外側の領域は読取領域外とする。空白検出503では入力画像から図・写真検出で検出された図や写真の領域以外の領域と罫線検出502で検出した罫線の領域以外から空白領域を検出する。ここで、以上の3つの検出は順番が変わってもよいとする。
【0017】
図6は、文字行方向判定処理の詳細なデータフローの一例である。文字行方向判定を高速かつ省メモリで行うために、文字行方向判定用領域限定処理601では、読取位置指定座標から所定の範囲で上下左右の少なくともいずれかの方向に広げた領域を入力画像から取り出す。さらに所定の範囲で上下左右の少なくともいずれかの方向に広げた領域で読取領域の座標の方が読取位置指定座標に近い方の座標については読取領域の座標を用いる。読取位置指定座標から上下左右に広げる所定の範囲としては、入力画像の大きさに対して十分に小さい(全体を処理対象とするのと比較して十分な処理演算量の削減が見込める程度)、一定の割合(例えば4文字程度が3行程度あればよい。取り込む際に10行が画像に入るとして、4文字程度が3行程度の領域であれば、入力画像に対して縦横それぞれ4分の1の大きさ)とすることが考えられる。
【0018】
ヒストグラム生成処理602では、文字行方向判定用領域限定処理601で限定された領域について縦方向、および横方向に画素のヒストグラムを生成する。ここで、ヒストグラムの生成には画素でなく連結成分の外接矩形の座標を用いてもよい。その場合は、縦方向のヒストグラムであれば連結成分の外接矩形の高さの値を加算し、横方向のヒストグラムであれば連結成分の外接矩形の幅の値を加算していく。文字行方向判定処理603は、縦および横方向のヒストグラムと指定座標から文字行が縦方向なのか横方向なのかを判定する。
【0019】
方向の判定の基準は、以下の条件順位に従う。なお、以下の条件の中にあるヒストグラムの谷間とは、ヒストグラム中の値が閾値以下の箇所である。閾値は入力画像中のノイズの多さにより変動する。
【0020】
(1)縦方向のヒストグラムにおける画素の最大値をwMax、横方向のヒストグラムにおける画素の最大値をhMaxとすると、
wMax > hMax × a の時は縦方向文字行 、
hMax > wMax × a の時は横方向文字行 、
とする。ここで、aは任意の値として、例えば1.3とする。
【0021】
(2)縦方向のヒストグラムの谷間の幅の平均をwWAve、横方向のヒストグラムの谷間の幅の平均をhWAveとすると、
wWAve > hWAve の時は縦方向文字行 、
hWave > wWAve の時は横方向文字行 、
とする。
【0022】
(3)縦方向のヒストグラムの谷間の数をwNum、横方向のヒストグラムの谷間の数をhNumとすると、
wNum < hNum の時は縦方向文字行 、
hNum < wNum の時は横方向文字行 、
ここで、従来手法では、カメラで取り込んだ文書画像全体を文字認識の対象とするため、文書画像全体を段落や段組などのいわゆる文書レイアウトを解析してそれぞれの文字行ごとに方向を判定する必要があるが、本発明で想定する処理では、利用者が指定する文字列のみの方向さえわかればよい。そのため、文書画像全体を解析する必要はなく、読取指定位置付近のみで文字行方向判定を行えばよい。文字行方向の判定には4文字程度の文字行が3行程度あれば十分な精度で文字行方向を判定することができる。入力画像に10行程度の文字行が入るとすると、入力画像の縦横それぞれ4分の1程度の大きさであれば4文字3行程度が入ると考えられる。これにより従来手法よりも、少ないメモリ容量または演算処理能力しか持たない携帯端末においても、文字行方向判定および文字認識を精度よく行うことができる。
【0023】
また、上記条件のいずれでも判定できない場合、文字行方向判定用領域限定処理601に戻り、読取位置指定座標から上下左右の少なくともいずれかに広げる領域をさらに広げて、ヒストグラム生成処理602および文字行方向判定処理603を繰り返す。繰り返す回数はCPUパワーの大きさによって変更する。読取位置指定座標から上下左右の少なくともいずれかに広げる大きさとしては、判定できなかった領域に対して例えば1.5倍程度大きくする。
【0024】
図7は、図6が示す文字行方向判定処理を示す図である。701は入力画像である。702は読取領域抽出処理で得られた読取領域である。703は利用者が読取りたい文字列を指定した読取文字列指定位置である。704は703で指定した読取文字列の位置から上下左右に一定に広げた文字行判定用限定領域である。705は読取領域702と文字行判定用限定領域704のそれぞれの領域の座標で、読取文字列指定位置703のAND領域である。この705の領域に対してヒストグラムを取る。706は705の領域に対して横方向に画素のヒストグラムを取った結果である。707は705の領域に対して縦方向に画素のヒストグラムを取った結果である。入力画像701においては、ヒストグラム706および707から、図6の603の説明における条件の例えば(2)を用いた結果によると、707の方が平均の谷間の幅が広いため、縦書きであると判定される。
【0025】
図8は、縦書きの文字列読取結果の表示例1である。ディスプレイ801に画像と文字行802を表示する。文字列読取の結果表示803は文字行方向判定で縦書きと判断された場合は縦書きに表示する。
【0026】
図9は、縦書きの文字列読取結果の表示例2である。ディスプレイ901に画像と文字行902を表示する。文字列読取の結果表示903は文字行方向判定で縦書きと判断された場合でも横書きに表示する。また、横書きの文字行読取結果と区別するために、縦書きの文字列読取の場合と横書きの文字列読取の場合で文字行902の色を変える。
【0027】
図10は、横書きの文字列読取結果の表示例である。ディスプレイ1001に画像と文字行1002と文字列読取の結果表示1003を表示する。
【図面の簡単な説明】
【0028】
【図1】本発明のプログラムのデータの流れを示すデータフローである。
【図2】ハードウェアの構成図である。
【図3】図1のプログラムにおける概略処理手順を示すフローチャートである。
【図4】読取領域抽出処理を示す図である。
【図5】読取領域抽出処理のデータフローの一例である。
【図6】文字行方向判定処理のデータフローの一例である。
【図7】図6が示す文字行方向判定処理を示す図である。
【図8】縦書きの文字列読取結果の表示例1である。
【図9】縦書きの文字列読取結果の表示例2である。
【図10】横書きの文字列読取結果の表示例である。
【符号の説明】
【0029】
102:読取領域抽出モジュール、103文字行方向判定モジュール、104:文字行抽出モジュール、105:文字行表示モジュール、106:文字列読取モジュール、107:処理結果表示モジュール。

【特許請求の範囲】
【請求項1】
文書画像の電子データを入力するカメラと、該入力された文書画像および該文書画像の処理結果を表示する表示部と、処理演算部とを有する文字認識装置において実行されるプログラムであり、該処理演算部に、
文書の紙面を撮像した文書画像とユーザに指定された読取位置とを入力とし、文書画像中から読取対象領域を抽出するする読取領域抽出処理と、読取対象領域中の文字行の方向を判定する文字行方向判定処理と、文字行方向判定結果にしたがって読取対象領域中から文字行を抽出する文字行抽出処理と、抽出した文字行中の文字を読取る文字列読取処理を実行させ、
前記文字行方向判定処理において、前記ユーザに指定された読取位置の周辺で文字行方向を判定するに十分な領域を抽出して処理を行うことを特徴とする文字認識プログラム。
【請求項2】
前記読取対象抽出処理が、画像中の空白部に基づき画像を分割した後、読取位置を含む分割領域を選択することである請求項1の文字認識プログラム。
【請求項3】
前記読取対象抽出処理が、画像中の直線成分で画像を分割後、読取位置を含む分割領域を選択することである請求項1の文字認識プログラム。
【請求項4】
請求項1の構成に加えて、文字行抽出結果を文書画像に重ねて表示する文字行抽出結果表示処理を有し、読取指示がない場合には画像入力と読取領域抽出処理と文字行方向判定処理と文字行抽出処理と文字行抽出結果表示を繰り返し、読取指示がある場合には文字列読取処理を実行することを特徴とする文字認識プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate