(57)【要約】【課題】利用者が文字列の方向を指定しなくても、縦書きと横書きが混在する日本語のような言語の文字列を、ＣＰＵの処理能力が低くかつ使用できるメモリが少ない携帯端末でリアルタイムに読取ることが課題である。【解決手段】携帯端末における文字認識の前処理として文字行方向自動判定手段を設ける。この文字行方向自動判定手段には、図や写真や罫線や空白を検知してこれらを除いた画像の領域を読取領域として抽出する読取領域抽出手段を設ける。また、文字行方向判定手段では、高速かつ省メモリで動作するように、読取る文字列を撮像する際に指定する位置を中心とした上下左右に所定の範囲で広げた領域で文字行方向判定を行うようにする。【選択図】図１
2006227768.tif 000002
【特許請求の範囲】
【請求項１】
文書画像の電子データを入力するカメラと、該入力された文書画像および該文書画像の処理結果を表示する表示部と、処理演算部とを有する文字認識装置において実行されるプログラムであり、該処理演算部に、
文書の紙面を撮像した文書画像とユーザに指定された読取位置とを入力とし、文書画像中から読取対象領域を抽出するする読取領域抽出処理と、読取対象領域中の文字行の方向を判定する文字行方向判定処理と、文字行方向判定結果にしたがって読取対象領域中から文字行を抽出する文字行抽出処理と、抽出した文字行中の文字を読取る文字列読取処理を実行させ、
前記文字行方向判定処理において、前記ユーザに指定された読取位置の周辺で文字行方向を判定するに十分な領域を抽出して処理を行うことを特徴とする文字認識プログラム。
【請求項２】
前記読取対象抽出処理が、画像中の空白部に基づき画像を分割した後、読取位置を含む分割領域を選択することである請求項１の文字認識プログラム。
【請求項３】
前記読取対象抽出処理が、画像中の直線成分で画像を分割後、読取位置を含む分割領域を選択することである請求項１の文字認識プログラム。
【請求項４】
請求項１の構成に加えて、文字行抽出結果を文書画像に重ねて表示する文字行抽出結果表示処理を有し、読取指示がない場合には画像入力と読取領域抽出処理と文字行方向判定処理と文字行抽出処理と文字行抽出結果表示を繰り返し、読取指示がある場合には文字列読取処理を実行することを特徴とする文字認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラを有する携帯型の端末、および、そのユーザーインターフェース、および、文字認識の技術に関する。
【背景技術】
【０００２】
近年、小型の携帯電話やＰＤＡ（Personal Digital Assistance）等（以下、これらをまとめて携帯端末と呼ぶ）が広く普及している。携帯端末では、メール作成やアドレス登録、メモ書き、スケジュール登録などで、文字の入力が必要な場合が多い。文字を入力する手段としてキーを用いるのが一般的である。しかし、小型の携帯端末でのキー入力では、キーを何度も押さなければならないため、利用者の負担が大きい。
【０００３】
キー入力に代わる手段として、文字認識を利用する方式が特開２００３−７８６４０号公報（特許文献１）で述べられている。これは入力したい文字列を付属のカメラで画像として撮り込み、読取りたい文字列を指定して、その文字列を文字認識の技術を用いて読取り、読取った文字列を入力するというものである。
【０００４】
【特許文献１】特開２００３−７８６４０号公報  しかし、日本語では縦書きと横書きの両方が用いられる。そのため、文字認識に先立って縦書き文字列を読取るのか横書き文字列を読取るのか、文字列の方向を予め指定する必要があった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように、利用者が文字列の方向を指定しなくても、縦書きと横書きが混在する日本語のような言語の文字列を、ＣＰＵの処理能力が低くかつ使用できるメモリが少ない携帯端末でリアルタイムに読取ることが課題である。従来から、文著が縦書きか横書きかを画像から判定する技術はあった。しかし、従来手法では、広範囲の画像を処理する必要があり、メモリ容量や処理能力が限られている携帯端末への適用は困難であった。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明では、携帯端末における文字認識の前処理として文字行方向自動判定手段を設ける。この文字行方向自動判定手段には、図や写真や罫線や空白を検知してこれらを除いた画像の領域を読取領域として抽出する読取領域抽出手段を設ける。
【０００７】
また、前記文字行方向判定手段は、高速かつ省メモリで動作するように、読取る文字列を撮像する際に指定する位置を中心とした上下左右に所定の範囲で広げた領域で文字行方向判定を行うようにした。指定する位置は、特開２００３−７８６４０号公報（特許文献１）に示すように読取る文字列の位置にマーカーを合わせることによって指定される。
【０００８】
さらに、前記文字行方向自動判定手段は、指定する位置から所定の範囲に広げた領域と前記読取領域抽出手段で抽出した読取領域の一致している領域を用いることで、より使用メモリが少なくなり、処理速度も速くすることができる。
【０００９】
前記読取領域抽出手段と前記文字行方向自動判定手段を設けることで、ＣＰＵの処理能力が低くかつ使用できるメモリが少ない携帯端末で高速かつ省メモリで縦書き横書きが混在する日本語のような言語の文字列をリアルタイムに読取ることができる。
【発明の効果】
【００１０】
本発明によれば、ＣＰＵパワーが小さくかつ使用できるメモリが少ない携帯端末で、縦書き横書きの両方が用いられる日本語のような言語の文字列を、読取る文字列の方向を予め設定しなくても、高速かつ省メモリで文字列の方向を自動で判定し、文字列認識することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面により詳細に説明する。
図１は本発明を適用した携帯端末の実施の形態を示すデータフローである。本発明のプログラム１０１は、携帯端末に搭載されたカメラからの画像を入力とし、画像中に写された文書中の単語を読取り、その結果を表示する。読取領域抽出モジュール１０２は、入力画像を入力して入力画像中の図や写真や罫線や空白の領域を検知して読取る領域のみを抽出して、抽出した領域座標を出力する。文字行方向判定モジュール１０３は、入力画像と読取領域を入力して文字行が縦書きか横書きかを判定し、その判定結果である縦書きか横書きかの情報を出力する。文字行抽出モジュール１０４は、入力画像と文字行方向と読取領域座標を入力して文字行を抽出し、その文字行領域を出力する。文字行表示モジュール１０５は、入力画像と文字行方向と文字行領域を入力しディスプレイに表示する。文字列読取モジュール１０６は、利用者から入力画像に対して文字行方向および文字行領域が正しいことを確認する入力があった場合は、文字行領域を入力して文字列を認識し、その読取った結果を出力する。ここで、文字行表示モジュール１０５で表示した文字行方向および文字行領域が利用者の読取りたい文字列であるとき、その文字行に対して文字列認識を行うという指示を利用者が指示する。表示モジュール１０７は、入力画像と文字列読取結果を入力し、それをディスプレイに表示する。
【００１２】
図２は、ハードウェアの構成を示すブロック図である。携帯端末２０１は、読取対象文字列を撮像するカメラ２０２と本発明のプログラムの処理演算を行うＣＰＵ２０３とカメラ２０２で撮像した画像、本発明のプログラムおよび文字識別用の辞書および文字列照合用の文字列辞書を記憶するメモリ２０４と読取対象文字列の表示および文字行抽出結果の表示および文字列認識結果の表示を行うディスプレイ２０５とカメラ２０２の撮像の決定および文字行抽出結果の確認および文字列認識結果の確認をプログラムに伝えるボタン２０６で構成される。
【００１３】
図３は、図１で示した文字認識プログラムの概略処理手順を示すフローチャートである。画像入力処理３０１ではカメラ撮像した画像を内部メモリに取り込む。画像表示処理３０２では画像入力処理３０１で取り込んだ画像をディスプレイに表示する。読取領域抽出処理３０３では画像入力処理３０１で取り込んだ画像から図や写真や罫線や空白を検知してこれらの領域を除いた読取領域のみを抽出する。文字行方向判定処理３０４では読取領域抽出処理３０３で抽出した読取領域から文字行が縦書きなのか横書きなのか文字行方向を判定する。
【００１４】
文字行抽出処理３０５では読取領域抽出処理で抽出した読取領域と文字行方向判定処理３０４で判定された文字行方向に基づいて文字行を抽出する。文字行領域表示処理３０６では画像表示処理３０２で表示した画像に文字行抽出処理３０５で抽出した文字行領域を矩形でディスプレイに表示する。このとき、縦書きと横書きのどちらの文字行方向なのか明確にするため、縦書きの場合と横書きの場合で文字行領域の矩形の色を変えるとよい。文字行決定判断３０７では文字行領域表示処理３０６で表示した文字行領域が利用者の読取りたい文字列であるか否かの入力を受け付け、利用者の読取りたい文字列であれば文字列読取処理３０７を行う。そうでなければ画像入力処理３０１へ戻る。文字列読取り処理３０８では、文字行抽出処理３０５で抽出した文字行から文字列を読取る。文字行抽出処理３０５および文字列読取り処理３０７については、利用者が指定する位置から文字行方向判定処理で判定された文字行方向に基づいて例えば特許文献１に示す方法を用いることで実現できる。読取り結果表示処理３０９では文字列読取り処理３０８で読取った文字列をディスプレイに表示する。決定または終了判定３１０では画像表示処理３０２で表示した入力画像と読取り文字行表示処理３０６で表示した文字行領域と文字列読取結果表示処理３０９で表示した文字列を利用者が確認して読取った文字列を決定または文字認識プログラムの終了を選択した場合に終了とする。そうでない場合は次の画像入力処理３０１に戻る。
【００１５】
図４は、読取領域抽出処理の詳細を示す図である。４０１は入力画像であり、４０２は読取領域をユーザが指定する際に画像に重ねて表示されるマーカーであり、このマーカーと座標が同一になる部分が読取領域の仮中心として決定される。４０３のように、入力画像４０１から図や写真を検出して読取領域から除外する。また、４０３のように、指定座標側の画像の領域４０４から罫線４０５を検出して読取領域から除外する。また、４０５のように、指定座標側の画像の領域４０６から空白４０７を検出して読取領域から除外する。このようにして読取領域４０８が決定される。なお、読取領域から除外すべき項目としては、上述の総てを利用する必要はなく、また、これ以外の条件を合わせて用いてもよい。
【００１６】
図５は読取領域抽出処理の詳細なデータフローの一例である。図・写真検出５０１で入力画像から図や写真の領域を検出する。図や写真などを検出は、例えば画素の連結成分の外接矩形を用いて、外接矩形の大きさがある大きさ以上の連結成分を検出すればよい。ただし、指定座標に近い連結成分は図や写真として扱わないとする。罫線検出５０２では入力画像から図・写真検出５０１で検出した領域以外の領域において長い罫線を検出する。罫線の検出は、例えば画素の連結成分の外接矩形の縦横比がある大きさ以上である連結成分を検出すればよい。検出した罫線より画像の外側の領域は読取領域外とする。空白検出５０３では入力画像から図・写真検出で検出された図や写真の領域以外の領域と罫線検出５０２で検出した罫線の領域以外から空白領域を検出する。ここで、以上の３つの検出は順番が変わってもよいとする。
【００１７】
図６は、文字行方向判定処理の詳細なデータフローの一例である。文字行方向判定を高速かつ省メモリで行うために、文字行方向判定用領域限定処理６０１では、読取位置指定座標から所定の範囲で上下左右の少なくともいずれかの方向に広げた領域を入力画像から取り出す。さらに所定の範囲で上下左右の少なくともいずれかの方向に広げた領域で読取領域の座標の方が読取位置指定座標に近い方の座標については読取領域の座標を用いる。読取位置指定座標から上下左右に広げる所定の範囲としては、入力画像の大きさに対して十分に小さい（全体を処理対象とするのと比較して十分な処理演算量の削減が見込める程度）、一定の割合（例えば4文字程度が3行程度あればよい。取り込む際に10行が画像に入るとして、4文字程度が3行程度の領域であれば、入力画像に対して縦横それぞれ4分の1の大きさ）とすることが考えられる。
【００１８】
ヒストグラム生成処理６０２では、文字行方向判定用領域限定処理６０１で限定された領域について縦方向、および横方向に画素のヒストグラムを生成する。ここで、ヒストグラムの生成には画素でなく連結成分の外接矩形の座標を用いてもよい。その場合は、縦方向のヒストグラムであれば連結成分の外接矩形の高さの値を加算し、横方向のヒストグラムであれば連結成分の外接矩形の幅の値を加算していく。文字行方向判定処理６０３は、縦および横方向のヒストグラムと指定座標から文字行が縦方向なのか横方向なのかを判定する。
【００１９】
方向の判定の基準は、以下の条件順位に従う。なお、以下の条件の中にあるヒストグラムの谷間とは、ヒストグラム中の値が閾値以下の箇所である。閾値は入力画像中のノイズの多さにより変動する。
【００２０】
（１）縦方向のヒストグラムにおける画素の最大値をwMax、横方向のヒストグラムにおける画素の最大値をhMaxとすると、
wMax > hMax × a  の時は縦方向文字行  、
hMax > wMax × a  の時は横方向文字行  、
とする。ここで、ａは任意の値として、例えば1.3とする。
【００２１】
（２）縦方向のヒストグラムの谷間の幅の平均をwWAve、横方向のヒストグラムの谷間の幅の平均をhWAveとすると、
wWAve > hWAve  の時は縦方向文字行  、
hWave > wWAve  の時は横方向文字行  、
とする。
【００２２】
（３）縦方向のヒストグラムの谷間の数をwNum、横方向のヒストグラムの谷間の数をhNumとすると、
wNum < hNum  の時は縦方向文字行  、
hNum < wNum  の時は横方向文字行  、
ここで、従来手法では、カメラで取り込んだ文書画像全体を文字認識の対象とするため、文書画像全体を段落や段組などのいわゆる文書レイアウトを解析してそれぞれの文字行ごとに方向を判定する必要があるが、本発明で想定する処理では、利用者が指定する文字列のみの方向さえわかればよい。そのため、文書画像全体を解析する必要はなく、読取指定位置付近のみで文字行方向判定を行えばよい。文字行方向の判定には4文字程度の文字行が3行程度あれば十分な精度で文字行方向を判定することができる。入力画像に10行程度の文字行が入るとすると、入力画像の縦横それぞれ4分の1程度の大きさであれば4文字3行程度が入ると考えられる。これにより従来手法よりも、少ないメモリ容量または演算処理能力しか持たない携帯端末においても、文字行方向判定および文字認識を精度よく行うことができる。
【００２３】
また、上記条件のいずれでも判定できない場合、文字行方向判定用領域限定処理６０１に戻り、読取位置指定座標から上下左右の少なくともいずれかに広げる領域をさらに広げて、ヒストグラム生成処理６０２および文字行方向判定処理６０３を繰り返す。繰り返す回数はＣＰＵパワーの大きさによって変更する。読取位置指定座標から上下左右の少なくともいずれかに広げる大きさとしては、判定できなかった領域に対して例えば1.5倍程度大きくする。
【００２４】
図７は、図６が示す文字行方向判定処理を示す図である。７０１は入力画像である。７０２は読取領域抽出処理で得られた読取領域である。７０３は利用者が読取りたい文字列を指定した読取文字列指定位置である。７０４は７０３で指定した読取文字列の位置から上下左右に一定に広げた文字行判定用限定領域である。７０５は読取領域７０２と文字行判定用限定領域７０４のそれぞれの領域の座標で、読取文字列指定位置７０３のＡＮＤ領域である。この７０５の領域に対してヒストグラムを取る。７０６は７０５の領域に対して横方向に画素のヒストグラムを取った結果である。７０７は７０５の領域に対して縦方向に画素のヒストグラムを取った結果である。入力画像７０１においては、ヒストグラム７０６および７０７から、図６の６０３の説明における条件の例えば（２）を用いた結果によると、７０７の方が平均の谷間の幅が広いため、縦書きであると判定される。
【００２５】
図８は、縦書きの文字列読取結果の表示例１である。ディスプレイ８０１に画像と文字行８０２を表示する。文字列読取の結果表示８０３は文字行方向判定で縦書きと判断された場合は縦書きに表示する。
【００２６】
図９は、縦書きの文字列読取結果の表示例２である。ディスプレイ９０１に画像と文字行９０２を表示する。文字列読取の結果表示９０３は文字行方向判定で縦書きと判断された場合でも横書きに表示する。また、横書きの文字行読取結果と区別するために、縦書きの文字列読取の場合と横書きの文字列読取の場合で文字行９０２の色を変える。
【００２７】
図１０は、横書きの文字列読取結果の表示例である。ディスプレイ１００１に画像と文字行１００２と文字列読取の結果表示１００３を表示する。
【図面の簡単な説明】
【００２８】
【図１】本発明のプログラムのデータの流れを示すデータフローである。
【図２】ハードウェアの構成図である。
【図３】図１のプログラムにおける概略処理手順を示すフローチャートである。
【図４】読取領域抽出処理を示す図である。
【図５】読取領域抽出処理のデータフローの一例である。
【図６】文字行方向判定処理のデータフローの一例である。
【図７】図６が示す文字行方向判定処理を示す図である。
【図８】縦書きの文字列読取結果の表示例１である。
【図９】縦書きの文字列読取結果の表示例２である。
【図１０】横書きの文字列読取結果の表示例である。
【符号の説明】
【００２９】
１０２：読取領域抽出モジュール、１０３文字行方向判定モジュール、１０４：文字行抽出モジュール、１０５：文字行表示モジュール、１０６：文字列読取モジュール、１０７：処理結果表示モジュール。
【図１】
2006227768.tif 000003
【図２】
2006227768.tif 000004
【図３】
2006227768.tif 000005
【図４】
2006227768.tif 000006
【図５】
2006227768.tif 000007
【図６】
2006227768.tif 000008
【図７】
2006227768.tif 000009
【図８】
2006227768.tif 000010
【図９】
2006227768.tif 000011
【図１０】
2006227768.tif 000012