JP2011022938A - 文字認識装置、文字認識プログラムおよび文字認識方法 - Google Patents
文字認識装置、文字認識プログラムおよび文字認識方法 Download PDFInfo
- Publication number
- JP2011022938A JP2011022938A JP2009169451A JP2009169451A JP2011022938A JP 2011022938 A JP2011022938 A JP 2011022938A JP 2009169451 A JP2009169451 A JP 2009169451A JP 2009169451 A JP2009169451 A JP 2009169451A JP 2011022938 A JP2011022938 A JP 2011022938A
- Authority
- JP
- Japan
- Prior art keywords
- character
- region
- rectangle
- character recognition
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
【課題】文字認識を正確に実行すること。
【解決手段】文字認識装置100は、分類部162が入力画像に対して文字認識を実行することで確信度を求め、求めた確信度に基づいて文字領域とノイズ付文字領域を特定する。そして、仮行候補位置推定部163、行矩形補正部164が、文字領域とヒストグラムの頻度に基づいて、仮行候補矩形を特定し、文字矩形確定部165が、仮行候補矩形の重なる領域を文字領域として特定する。文字認識処理部166は、文字矩形特定部165に特定された文字領域に対して文字認識を実行する。
【選択図】図2
【解決手段】文字認識装置100は、分類部162が入力画像に対して文字認識を実行することで確信度を求め、求めた確信度に基づいて文字領域とノイズ付文字領域を特定する。そして、仮行候補位置推定部163、行矩形補正部164が、文字領域とヒストグラムの頻度に基づいて、仮行候補矩形を特定し、文字矩形確定部165が、仮行候補矩形の重なる領域を文字領域として特定する。文字認識処理部166は、文字矩形特定部165に特定された文字領域に対して文字認識を実行する。
【選択図】図2
Description
本発明は、文字の認識を行う文字認識装置等に関する。
従来、スキャナ等で読取った入力画像に含まれる文字を認識する文字認識システムが利用されている。かかる文字認識システムは、文字にノイズが含まれている場合、文字の認識精度が著しく低下する。したがって、どのようにして文字に含まれるノイズを除去するのか、また、どのようにノイズの影響を受けにくくするのか、という課題があり、この課題を解消するべく各種の技術が考案されている。
例えば、ノイズの影響で文字認識結果を誤った場合に、辞書の単語情報などを用いて、文字列を補正するという技術が存在する。また、認識対象となる文字の周囲の文字情報を用いることで、文字周辺に存在するノイズ要素を文字要素として認識対象にしないように制御するという技術も存在する。
しかし、上記の技術は、文字に重畳するノイズを考慮していない。したがって、例えば、文字列が丸印で囲まれていると、丸印で囲まれた文字列を一つの文字として誤認識し、文字認識を正確に実行することが出来ない。図42は、丸印で囲まれた文字列の一例を示す図である。例えば、図42に示すように、帳票上に記載された文字列「普通貯金」に丸印(ノイズ)が重畳していると、丸印の影響で「普通貯金」を一つの文字と誤認識し、例えば、文字認識結果が、
となってしまう。
となってしまう。
かかる難点を解消するためには、文字に重畳するノイズを取り除き、文字認識を実行すればよい。文字に重畳するノイズを取り除く技術としては、例えば、ノイズと文字の色情報、濃淡情報の違いを利用して文字からノイズを取り除く技術や、原画像とノイズの存在する画像とを比較して、ノイズを取り除く技術が存在する。また、予想されるノイズの形状を予め保持しておき、保持しておいたノイズの形状に基づいて、文字に重畳したノイズを取り除く技術も存在する。
しかしながら、上述した従来の技術では、ノイズを含む文字の認識を正確に実行するためには各種の制約があり、必ずしも、ノイズを含む文字の認識を正確に実行することができないという問題があった。
具体的に、ノイズと文字の色情報、濃淡情報の違いからノイズを取り除く技術では、各色情報、濃淡情報に違いが無い場合、ノイズを除去することが出来ない。また、原画像とノイズの存在する画像とを比較してノイズを除去する技術では、原画像が存在しない場合には、ノイズを除去することが出来ない。また、予め保持しておいたノイズの形状に基づいてノイズを除去する技術では、保持しておいたノイズ形状と一致しなければ、ノイズを除去することができない。
すなわち、文字とノイズの色情報、濃淡情報に違いが無く、原画像やノイズの形状を利用しなくても、ノイズを含む文字の認識を正確に実行することが重要になる。
さらに、図42に示した丸印は、ノイズである一方、丸印自体は選択項目等を示す情報として意味を持つものなので、単に、文字に重畳したノイズを取り除いて文字認識すればよいというものではない。
開示の技術は、上記に鑑みてなされたものであって、文字の認識を正確に実行することが出来る文字認識装置、文字認識プログラムおよび文字認識方法を提供することを目的とする。
本願の開示する文字認識装置は、文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部とを有することを要件とする。
この文字認識装置によれば、文字の認識を正確に実行することが出来る。
以下に、本願の開示する(発明の名称)の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1にかかる文字認識装置の構成について説明する。図1は、本実施例1にかかる文字認識装置の構成を示す図である。図1に示すように、この文字認識装置10は、文字認識部11と、重畳判定部12と、延伸処理部13と、集計部14と、座標位置特定部15と、文字領域判定部16と、出力部17を有する。
文字認識部11は、文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識した文字の確信度と文字の座標位置を取得する処理部である。重畳判定部12は、確信度に基づいて文字認識対象となった文字にノイズが重畳しているか否かを判定する処理部である。
延伸処理部13は、ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸する。そして、延伸処理部13は、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する処理部である。
集計部14は、ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する処理部である。
座標位置特定部15は、集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する処理部である。文字領域判定部16は、延伸した領域と重畳する領域から、座標位置特定部15が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する処理部である。出力部17は、文字領域判定部16が文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する処理部である。
このように、本実施例1にかかる文字認識装置10は、ノイズが重畳した文字と判定した領域と、ノイズが重畳していない文字の文字幅・文字高を延伸した領域との重畳する領域を判定し、判定した領域内の画素数に基づいて文字領域を判定する。そして、文字認識装置10は、判定した文字領域に対して文字認識を実行するので、文字の認識を正確に実行することができる。
次に、本実施例2にかかる文字認識装置について説明する。図2は、本実施例2にかかる文字認識装置の構成を示す図である。図2に示すように、この文字認識装置100は、入力部110と、画像入力部120と、出力部130と、通信制御部140と、入出力制御部145と、記憶部150と、制御部160を有する。
入力部110は、キーボードやマウス等の入力装置に接続される。ユーザは、キーボードやマウスを操作して、各種の情報を文字認識装置100に入力する。例えば、ユーザは、ディスプレイ(出力部130)に出力される画像を参照し、キーボードやマウスを操作して、文字の領域を指定する。
画像入力部120は、カメラやスキャナ等の撮影装置に接続される。画像入力部120は、撮影装置から取得した入力画像を制御部160に出力する。出力部130は、ディスプレイやプリンタなどに接続され、制御部160から出力される情報をディスプレイやプリンタ等に出力する。
通信制御部140は、LAN(local area network)、無線LAN等のネットワークを介して、他の端末装置に接続される。例えば、通信制御部140は、他の端末装置から入力画像を取得し、取得した入力画像を制御部160に出力する。
入出力制御部145は、入力部110と、画像入力部120と、出力部130と、通信制御部140と、記憶部150と、制御部160との間におけるデータの入出力を制御する処理部である。
記憶部150は、各種の情報を記憶する記憶部である。記憶部150は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。図2に示すように、この記憶部150は、ハッシュテーブル151と、文字矩形情報152と、仮行矩形情報153と、辞書情報154とを有する。記憶部150が記憶する各情報150〜154の説明は後述する。
制御部160は、画像入力部120または通信制御部140から入力画像を取得し、取得した入力情報に含まれる文字の領域を判定する。そして、制御部160は、文字の領域に対して文字認識を実行することで、入力画像に含まれる文字認識を実行する処理部である。制御部160は、例えば、ASIC(Application Specific Integrated Curcuit)や、PFGA(Field Programmable Gate Array)などの集積装置、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。図2に示すように、この制御部160は、ハッシュテーブル登録部161と、分類部162と、仮行候補位置推定部163と、行矩形特定部164と、文字矩形確定部165と、文字認識処理部166と、意味解析処理部167を有する。
ハッシュテーブル登録部161は、入力部110、画像入力部120、通信制御部140を介して取得した学習用の文字画像サンプルを用いてハッシュテーブル151を生成し、記憶部150に登録を行う処理部である。
ハッシュテーブル登録部161は、入力部110、画像入力部120、通信制御部140を介して学習用の文字画像サンプルを取得し、取得した文字画像をn×n(例えばn=5)でメッシュに分割する。そして、分割により得られた各メッシュをその文字画像の部分文字画像とし、メッシュごと(部分文字画像ごと)に特徴を算出する。
この特徴算出について種々の方法を適用することができ、例えば、加速方向指数ヒストグラム(電子情報通信学会論文誌D'87/7 Vol.J70-D No.7 pp1390-1397 ”加速方向指数ヒストグラム法による手書き漢字・ひらがな認識”等)を適用することができる。この加速方向指数ヒストグラムは、方向指数の個数分の次元を持つベクトルが特徴として得られるものであり、本実施例では4次元の特徴ベクトルを用いる場合を例に説明を行う。
図3に示した例では、ハッシュテーブル登録部22は、学習用の文字サンプルである「配」の文字画像を5×5で分割している。そして分割によって得られた各メッシュをi行j列の行列と見なし、各メッシュを「配」(1,1)〜「配」(5,5)と識別して各メッシュの特徴ベクトルを算出すると、「配」(1,1)の特徴ベクトルは(29,8,13,15)、「配」(1,2)の特徴ベクトルは(32,14,18,25)、「配」(2,1)の特徴ベクトルは(12,2,4,37)となっている。
さらに、同一文字カテゴリについて複数の学習用の文字サンプルがある場合、ハッシュテーブル登録部22は、同一文字カテゴリに属する学習用サンプル画像数分に関して平均をとることによって個々の文字画像に依存する特徴成分を除去し、文字カテゴリ自体の特徴ベクトルを求める。
その結果、1つの文字カテゴリに対して、n×nのメッシュ特徴ベクトルが得られる。また、このメッシュ特徴ベクトルの算出は、各文字カテゴリについてそれぞれ行なう。
次に、ハッシュテーブル登録部161は、メッシュ特徴ベクトルをハッシュ値に変換し、ハッシュ値から文字カテゴリとメッシュの位置を引けるようにする。メッシュ特徴ベクトルは方向指数の個数分の次元のベクトルであるが、値域を0から9の整数をとるように正規化を行う。この結果、メッシュ特徴ベクトルは10の方向指数の個数分(=4)の累乗(=10000)通りの値をとることになる。
正規化の方法は任意の方法を用いることができるが、類似の値が同一の値に変換される手法を採用することが好ましい。例えば、所定数で除算して整数商を求め、商が9を越える場合は強制的に9に置き換える、といった手法が好適である。
図3に示した例では、ハッシュテーブル登録部161は、特徴ベクトルの各次元の値を「4」で除算し、整数商を求めている。その結果、「配」(1,1)の特徴ベクトル(29,8,13,15)は(7,2,3,3)に正規化され、「配」(1,2)の特徴ベクトル(32,14,18,25)は(8,3,4,6)に正規化され、「配」(2,1)の特徴ベクトル(12,2,4,37)は(3,0,1,9)に正規化されている。
そして、ハッシュテーブル登録部161は、正規化したメッシュ特徴ベクトル値に対して、文字カテゴリ名、メッシュの位置(i, j)を対応付けて、ハッシュテーブル151に登録する。すなわち、メッシュ特徴ベクトル(va, vb, vc, vd)が与えられたとき、(va, vb, vc, vd)に正規化を行なって(Va, Vb, Vc, Vd)に変換し、H=Va×1000+Vb×100+Vc×10+Vdを求め、Hに(文字カテゴリ名, i, j)を記録する。
図3に示した例では、正規化した特徴ベクトルが(7,2,3,3)である「配」(1,1)はハッシュ値(7233)に対応付けられ、正規化した特徴ベクトルが(8,3,4,6)である「配」(1,2)はハッシュ値(8346)に対応付けられ、正規化した特徴ベクトルが(3,0,1,9)である「配」(2,1)はハッシュ値(3019)に対応付けられている。
ハッシュテーブル登録部161は、以上の処理を全て文字カテゴリについて行なうことで、ハッシュテーブル151を作成し、記憶部150に格納する。同図に示した例では、ハッシュ値(7233)には「配」(1,1)に加えて「酸」(1,1),「王」(3,2)などが対応付けて登録され、ハッシュ値(3019)には「配」(2,1)に加えて「酸」(2,1),「祖」(1,3)などが対応付けて登録され、ハッシュ値(8346)には「配」(1,2)に加えて「祖」(3,2),「酉」(1,3)などが対応付けて登録されている。
分類部162は、入力画像に対して文字認識を実行し、認識した文字の確信度を判定する。そして、分類部162は、判定した確信度に基づいて、入力画像内の、ノイズが含まれない文字の領域と、ノイズが含まれる文字の領域とを判定する。以下の説明において、ノイズが含まれない文字の領域を文字領域と表記し、ノイズが含まれる文字の領域をノイズ付文字領域と表記する。
以下において、分類部161の処理を具体的に説明する。まず、分類部161は、画像入力部120、通信制御部140を介して入力画像を取得し、入力画像に対してレイアウト解析を実行する。レイアウト解析は、二値化処理と、ラベリング処理が含まれる。
レイアウト解析において、分類部161は、入力画像を二値化し、二値化(白黒化)した画像のピクセルを走査して、ピクセル(黒色の画素)の塊を特定する。そして、分類部161は、ピクセルの塊をそれぞれ文字矩形として抽出する。図4は、入力画像に対するレイアウト解析結果を示す図である。図4の上段に示す入力画像は、図4の下段に示すようなレイアウト解析結果となる。図4に示す例では、レイアウト解析結果により、5個の文字矩形1a〜1eが抽出されている。
レイアウト解析を実行した後に、分類部162は、各文字矩形に含まれる文字の文字認識を実行し、認識結果に応じて確信度を特定する。ここで、分類部162による文字認識について説明する。
図5は、画像の特徴算出と文字カテゴリ検索について説明する図である。図5に示すように、分類部162は、文字矩形内の画像を取得し、取得した画像をメッシュに分割する。この時、メッシュの大きさは、画像内の1文字がn×nで分割される大きさを基準にして設定する。例えば、画像の解像度が400dpiのとき平均的な文字の大きさを縦横各40画素として、メッシュの大きさを縦横各8画素と設定すれば、一文字を5×5に相当する大きさでメッシュ分割することができる。その他の解像度の画像に対しては、解像度に比例してメッシュの大きさを設定すればよい。また、周辺の文字の大きさが認識可能である場合には、周辺の文字の大きさに基づいてメッシュの大きさを設定すればよい。
なお、分類部162は、画像のメッシュ分割によって得られたメッシュ(部分画像)について、それぞれ画像のどの位置から切出されたかを記憶部150に格納して記憶させる。
次に、分類部162は、切出された各メッシュについてそれぞれ特徴ベクトルを求める。この特徴ベクトルの算出には、ハッシュテーブル作成時と同様に、例えば加重方向指数ヒストグラムを用いる。図5に示した例では、入力画像から切出されたメッシュm43の特徴ベクトルは(13,1,5,62)、同じくメッシュm104の特徴ベクトルは(36,7,3,4)と求められている。
次に、分類部162は、特徴ベクトルをそれぞれ正規化する処理を行なう。この正規化についてもハッシュテーブル作成時と同様に行ない、例えば、所定数で除算して整数商を求め、商が9を越える場合は強制的に9に置き換える。
図5に示した例では、分類部162は、特徴ベクトルの各次元の値を「4」で除算し、整数商を求めている。その結果、メッシュm43の特徴ベクトル(13,1,5,62)は(3,0,1,9)に正規化され、メッシュm104の特徴ベクトル(36,7,3,4)は(9,2,1,1)に正規化されている。
次に、分類部162は、正規化された特徴ベクトルをキーとしてハッシュテーブル151を参照し、部分画像の各々について特徴量が類似する文字カテゴリの部分文字画像を検索する。
その結果、図5に示した例では、メッシュm43に類似する部分文字画像として、ハッシュ値(3019)に紐付けられた部分文字画像、すなわち文字カテゴリ「配」の(2,1)、文字カテゴリ「酸」の(2,1)、文字カテゴリ「祖」の(1,3)などが検索結果として得られる。同じく、メッシュm104に類似する部分文字画像として、ハッシュ値(9211)に紐付けられた部分文字画像、すなわち文字カテゴリ「祖」の(4,4)、文字カテゴリ「酸」の(5,3)などが検索結果として得られる。
分類部162は、画像から切出された全てのメッシュ、すなわち部分画像について類似する部分文字画像を検索した後、検索結果として得られた複数の部分文字画像を文字カテゴリ毎に集計する。
図6は、検索結果の文字カテゴリ毎の集計について説明する図である。同図に示した例では、メッシュm43,m104の検索結果を文字カテゴリの対応する位置に投票して集計している。具体的には、文字カテゴリ「配」について、(2,1)の位置にメッシュm43を投票し、(5,3)の位置にメッシュm104を投票している。同様に、文字カテゴリ「酸」の(2,1)にメッシュm43を投票し、文字カテゴリ「祖」の(1,3)にメッシュm43、文字カテゴリ「祖」の(4,4)にメッシュm104を投票している。
つぎに、分類部162は、各文字カテゴリに投票された部分画像について、画像での位置関係と文字カテゴリ内での位置関係とを比較し、その整合性を判定する。具体的に分類部162は、同一の文字カテゴリの各位置に投票された部分画像をノードとして、文字カテゴリのメッシュ間での関係と入力画像のメッシュ間の関係が保たれるノード同士をパスで結ぶことでグラフを生成する。
図7は、部分画像のグラフ化処理について説明する図である。同図に示した例では、画像から切出した部分画像であるメッシュm21、メッシュm43、メッシュm44、メッシュm104、メッシュm105、メッシュm108が全て文字カテゴリ「配」に投票されている。
ここで、メッシュm21は文字カテゴリ「配」の(1,1)に投票されている。同様に、メッシュm43は(2,1)に、メッシュm44は(2,2)に、メッシュm104は(5,4)に、メッシュm105は(5,5)に、メッシュm108は(4,4)に投票されている。
分類部162は、「配」に登録された全ての部分入力画像(メッシュm21、メッシュm43、メッシュm44、メッシュm104、メッシュm105、メッシュm108)をノードとし、ノード間の位置関係に基づいてパスを引く。
図8は、ノード間でのパス接続について説明する説明図である。同図を参照し、メッシュm43、メッシュm105、メッシュm108の位置関係を例にノード接続について説明する。
まず、メッシュm43とメッシュm105について考える。画像においては、メッシュm43に対して右下方向にメッシュm105が位置する。また、文字カテゴリ内においてもメッシュm43に対して右下方向にメッシュm105が位置する。このように、メッシュm43とメッシュm105との間では、画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れている(位置関係が保たれている)ので、分類部162は、メッシュm43とメッシュm105との間をパスで結ぶ(図7に示すグラフ参照。)。
つぎに、メッシュm105とメッシュm108について考える。画像においては、メッシュm105と同じ高さの右方向にメッシュm108が位置する。これに対し、文字カテゴリ内ではメッシュm105に対して左上方向にメッシュm108が位置する。このように、メッシュm105とメッシュm108との間では、入力画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れていないので、メッシュm105とメッシュm108との間にはパスを引かない(図7に示すグラフ参照。)。
さらに、メッシュm43とメッシュm108について考える。入力画像においては、メッシュm43に対して右下方向にメッシュm108が位置する。また、文字カテゴリ内においてもメッシュm43に対して右下方向にメッシュm108が位置する。このように、メッシュm43とメッシュm108との間では、画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れているので、メッシュm43とメッシュm108との間にパスを引く(図7に示すグラフ参照。)。
分類部162は、文字カテゴリごとに、投票されたメッシュのすべての2つの関係に対して位置の関係が満たされているかどうかを調べ、グラフを作成する。その後、分類部162は、作成したグラフから完全部分グラフであるクリークを抽出する処理を行なう。分類部162が抽出するクリークは、部分文字画像の位置関係と整合する部分画像の組み合わせであり、画像内における文字候補となる。グラフからクリークを抽出するアルゴリズムとしては、種々の方法を用いることができる(例えば、C.Bron and J.Kerbosch Algorithm 457. Finding all cliques of an undirected graph [H]. Comm. ACM. 16(9) (September 1973).など。)。
分類部162は、抽出したクリークを評価することで、文字カテゴリが認識対象領域のどことマッチングしたかを識別する。具体的には、クリークのノードの個数がある閾値以上の場合にその対応が正しいとみなして、ノードに対応する対象領域にその文字カテゴリが存在すると判定する。
図9は、クリークの抽出と評価について説明する図である。同図に示したように、メッシュm21、メッシュm43、メッシュm44、メッシュm104、メッシュm105、メッシュm108を有するグラフG1からクリークを抽出すると、メッシュm21、メッシュm43、メッシュm44、メッシュm104、メッシュm105の5つのノードを有するクリークG2、メッシュm21、メッシュm43、メッシュm44、メッシュm108の4つのノードを有するクリークG3とが得られる。
ここで、分類部162による判定閾値が5であるとすると、クリークG2は閾値以上のノード数を有するので、分類部162は、クリークG2の各ノードに対応する画像内の領域が文字カテゴリ「配」の文字が存在する文字領域であると判定する。一方、クリークG3のノード数は閾値に満たないため、分類部162は、クリークG3のノードの組み合わせは「配」の文字ではないと判定する。
分類部162は、閾値以上のノード数を有するクリークについて、各ノードに対応する部分画像に外接する矩形を求め、この外接矩形を文字領域と認識する。
図10は、文字領域の認識について説明する説明図である。図10に示した例では、分類部162は、クリークG2を構成するメッシュm21、メッシュm43、メッシュm44、メッシュm104、メッシュm105の外接矩形を文字領域A1として判定し、この文字領域A1に「配」の文字が存在すると認識する。
次に、分類部162は、認識した文字の確信度を特定する。例えば、分類部162は、認識した文字のクリークに含まれるノードの数を、予め定めた規定値で除算することで、確信度を特定する。図9において説明したように、認識した文字「配」のクリークG2に含まれるノード数は5である。そして、予め定めた規定値を例えば5とすると、認識した文字「配」の確信度は1となる。
分類部162は、特定した確信度が、閾値(例えば、0.9)を上回っている場合に、認識した文字に対応する文字領域を、文字領域またはノイズ付文字領域に分類する。例えば、上述した「配」の確信度は1であったため、かかる文字「配」の文字領域A1は、そのまま、文字領域となる。仮に、「配」の確信度が閾値以下の場合、かかる文字「配」の文字領域A1は、ノイズ付文字領域に分類される。
図11は、分類部162の分類結果の一例を示す図である。図11の左側に示す入力画像において、分類部162は、文字矩形1a〜1dを文字領域と判定し、文字矩形1eをノイズ付文字領域と判定する。図11の右側に示す入力画像において、分類部162は、文字矩形2a〜2eを文字領域と判定し、文字矩形2fをノイズ付文字領域と判定する。
ここまでの説明では、文字矩形内の画像と文字カテゴリでの位置関係を明確にすべく概念的な図面を用いて各処理部の動作を説明したが、各処理において実際に生成・使用されるデータは装置内での処理に適した形式で記憶部150に格納される。
例えば、図12は、分類部による検索結果から作成する投票結果データである。この投票結果データは、図6を参照して説明した分類部による集計の結果として得られたものであり、文字カテゴリ、カテゴリ内位置、入力画像メッシュ、の3つの項目を有する表の形式でデータを保持する。
図13は、分類部が作成するグラフデータである。このグラフデータでは、そのグラフが有する各ノード間について、パスを接続する場合には値「1」を、パスを接続しない場合には値「0」を持つ表の形式でデータを保持している。
また、分類部163は、特定した文字領域あるいはノイズ付文字領域の情報を、文字矩形情報152として記憶部150に格納する。図14は、文字矩形情報のデータ構造の一例を示す図である。図14に示すように、文字矩形情報152は、領域(文字領域あるいはノイズ付文字領域)を識別するID、領域の左上座標、領域の幅、領域の高さ、属性、含まれる画素情報、含まれる画素情報の数、行方向、認識結果、確信度を有する。
図15は、図14に示す文字矩形情報の生成元となった入力画像を示す図である。図15に示す入力画像には、文字「文字列」、図、ノイズが含まれている。図14のID「3」に対応する各情報は、図15の「文」を含む文字領域に対応する情報である。ID「4」に対応する各情報は、図15の「字」を含む文字領域に対応する情報である。ID「5」に対応する各情報は、図15の「列」を含む文字領域に対応する情報である。
図14において、属性は、該当領域に含まれる文字が、ノイズの重畳する文字であるのか、ノイズの重畳しない文字であるのかを識別する情報である。属性が「文字」であれば、ノイズの重畳する文字を示し、属性が「ノイズ付文字」であれば、ノイズの重畳しない文字を示す。ノイズの重畳しない文字は、確信度が閾値を上回る文字に対応する。ノイズの重畳する文字は、確信度が閾値未満の文字に対応する。
含まれる画素情報は、該当領域に含まれる文字において、画素が一続きになった部分を識別する番号を格納する。含まれる画素情報の数は、画素が一続きになった部分の数を格納する。例えば、文字「文」は、文字全体がつながっているので、含まれる画素情報の数は、「1」となる。文字「字」は、文字が2つに分かれているので、含まれる画素情報の数は「2」となる。文字「列」は、文字が3つに分かれているので、含まれる画素情報の数は「3」となる。
行方向は、入力画像に含まれる文字列の向きを示す。図14では、「文字列」が横に並んでいるので、行方向は「横」となる。なお、認識結果および確信度は、上記した処理にしたがって分類部が認識した文字の認識結果と確信度が登録される。
図2の説明に戻ると、仮行候補位置推定部163は、分類部162が判定した文字領域に基づいて、仮の行候補の領域を判定する。以下の説明において、仮の行候補の領域を仮行候補矩形と表記する。図16は、仮行候補位推定部の処理を説明するための図である。
仮行候補位置推定部163は、文字領域を一つ選択する。図16では一例として、仮行候補位置推定部163は、文字領域3aを選択する。仮行候補位置推定部163は、文字領域3aの枠の縦横の幅を所定の値だけ大きくすることで、文字領域3aよりも一回り大きな「行候補枠」を生成する。
仮行候補位置推定部163は、行候補枠の高さで横方向に延伸した領域と、行候補枠の幅で縦方向に延伸した領域を、仮行候補矩形として特定する。仮行候補位置推定部163は、残りの文字領域3b〜3dに対しても、文字領域3aの場合と同様にして、仮行候補矩形を特定する。図16の上段に示す文字領域3a〜3dから、図16の下段に示す仮行候補矩形が特定される。
図17は、その他の入力画像に対する仮行候補矩形の抽出結果を示す図である。図17の入力画像には、文字領域4a〜4eが含まれる。仮行候補位置推定部163は、図16の場合と同様にして、各文字領域4a〜4eから仮行候補矩形を特定すると、図17の右側のような仮行候補矩形が特定される。
仮行候補位置推定部163は、仮行候補矩形を特定した場合に、特定した仮行候補矩形の情報を、仮行矩形情報153として、記憶部150に格納する。図18は、仮行矩形情報153のデータ構造の一例を示す図である。
図18に示すように、この仮行矩形情報153は、仮行候補矩形を識別するID、仮行候補矩形の左上座標、仮行候補矩形の幅、仮行候補矩形の高さ、属性、含まれる画素情報、含まれる画素情報の数、行方向を有する。
図18において、属性は、仮行候補矩形である旨を示す「行」が登録されている。含まれる画素情報は、仮行候補矩形に含まれる文字領域を識別する情報が登録される。例えば、仮行候補矩形に、文字「文」、「字」、「列」の文字領域が含まれている場合には、含まれる画素情報は、文字「文」、「字」、「列」に対応するID「3,4,5」が登録される。例えば、図14、図15を参照。
含まれる画素情報の数は、仮行候補矩形に含まれる文字の数が登録される。行方向は、仮行候補矩形の向きが横方向であるか、縦方向であるかを識別する情報が登録される。行候補矩形の向きが横方向であれば、行方向は「横」となる。行候補矩形の向きが縦方向であれば、行方向は「縦」となる。
ところで、仮行候補位置推定部163は、行方向「横」の仮行候補矩形が重なりを持つ場合、左側の仮行候補矩形を優先して、同じ行方向の仮行候補矩形が重ならないように調整する。また、行方向「縦」の仮行候補矩形が重なりを持つ場合、上側の仮行候補矩形を優先して、同じ行方向の仮行候補矩形が重ならないように調整する。
ここで、仮行候補位置推定部163が、各仮行候補矩形の重なりを調整する処理について説明する。図19および図20は、仮行候補矩形の重なりを調整する処理を説明するための図である。図19の上段に示すように、文字領域5a〜5eが存在し、文字領域5a〜5dまでの仮行候補矩形が生成されているものとする。
図19の中段に示すように、仮行候補位置推定部163が、文字領域5eを選択し、文字領域5eの仮行候補矩形を生成する。すると、文字領域5d(5a〜5d)の仮行候補矩形と、文字領域5eの仮行候補矩形が重なる。
このような場合、仮行候補位置推定部163は、図19の下段に示すように、文字領域5eよりも左側の仮行候補矩形を、文字領域5dの仮行候補矩形とする。また、仮行候補位置推定部163は、文字領域5eを含む右側の仮行候補矩形を、文字領域5eの仮行候補矩形とする。
図20の説明に移行する。図20の上段に示すように、文字領域6a〜6dが存在し、文字領域6aの仮行候補矩形が生成されているものとする。図20の中段に示すように、仮行候補位置推定部163が、文字領域6bを選択し、文字領域6bの仮行候補矩形を生成する。すると、文字領域6bの仮行候補矩形と、文字領域6aの仮行候補矩形が重なり、更に、文字領域6bの仮行候補矩形が、文字領域6aの仮行候補矩形を完全に含む。
このような場合、仮行候補位置推定部163は、図20の下段に示すように、文字領域6aの仮行候補矩形を削除し、文字領域6bの仮行候補矩形を残す。
図2の説明に戻ると、行矩形補正部164は、仮行候補位置推定部163が判定した仮行候補矩形を補正する処理、および、新規に仮行候補矩形を特定する処理部である。以下において、行矩形補正部164の処理を具体的に説明する。まず、行矩形補正部164は、二値化された入力画像を走査し、位置毎の画素数の頻度を示すヒストグラムを特定する。図21は、行矩形補正部164が特定したヒストグラムの一例を示す図である。図21に示すように、画素が集中している箇所は、ヒストグラムの頻度が大きくなっている。
続いて、行矩形補正部164は、各仮行候補矩形のうち、ヒストグラムの射影方向と同じ方向の仮行候補矩形を抽出し、仮行候補矩形を補正する。図22〜図24は、行矩形補正部164の処理を説明するための図である。
図22に示すように、行矩形補正部164は、仮行候補矩形(行方向:縦)の外枠(端)から所定の範囲内において、ヒストグラムの頻度の最大値および最小値を抽出する。以下の説明において、ヒストグラムの頻度の最大値を最大頻度、頻度の最小値を最小頻度と表記する。
行矩形補正部164は、
最大頻度>文字サイズ×0.5・・・条件(1)
最小頻度<文字サイズ×0.5・・・条件(2)
最大頻度および最小頻度が、上記の条件(1)、(2)を満たすか否かを判定する。条件(1)、(2)に含まれる文字サイズは、例えば、文字領域の幅に対応する。
最大頻度>文字サイズ×0.5・・・条件(1)
最小頻度<文字サイズ×0.5・・・条件(2)
最大頻度および最小頻度が、上記の条件(1)、(2)を満たすか否かを判定する。条件(1)、(2)に含まれる文字サイズは、例えば、文字領域の幅に対応する。
行矩形補正部164は、上記の条件(1)および条件(2)を満たすと判定した場合、仮行候補矩形の外枠から内側に向かって順に、ヒストグラムの頻度を検出する。行矩形判定部164は、ヒストグラムの頻度の大きさが「文字サイズ×0.5」を超える位置を、仮行候補矩形の外枠の位置として判定する。一方、行矩形判定部164は、上記の条件(1)または条件(2)のどちらか一方の条件を満たさないと判定した場合、ヒストグラムの頻度が最小頻度となる位置を、仮行候補矩形の外枠の位置として判定する。行矩形補正部164は、判定結果に基づいて、仮行候補矩形(仮行矩形情報153)の幅または高さを補正する。
ところで、行矩形補正部164は、ノイズ付文字領域内において、ヒストグラムの射影方向と同じ行方向の仮行候補矩形が存在しない領域については、異なる行方向の仮行候補矩形の幅と、ヒストグラムの頻度に基づいて、仮行候補矩形を特定する。
図23では、ヒストグラムの射影方向(横)と同じ行方向の仮行候補矩形が存在せず、ヒストグラムの射影方向と異なる行方向の仮行候補矩形が存在しているものとする。行矩形補正部164は、異なる行方向の仮行候補矩形の幅を特定する。以下の説明において、異なる行方向の仮行候補矩形の幅を文字幅と表記する。
行矩形補正部164は、ノイズ付文字領域の範囲内で、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定する。行矩形補正部164は、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形を特定する。行矩形補正部164は、特定した文字幅の両端を所定値だけ広げ、広げた文字幅の両端の位置を、仮行候補矩形の両端としても良い。なお、仮行候補矩形を補正する処理は、図22にて説明した処理と同様である。
次に、処理対象となる画像をかえて、行矩形特定部の処理を説明する。図24の上段に示すように、行矩形補正部164は、仮行候補矩形(行方向:横)の外枠(端)から所定の範囲内において、ヒストグラムの最大頻度、最小頻度を抽出する。
そして、上記と同様にして、行矩形判定部164は、上記の条件(1)および条件(2)を満たすと判定した場合、仮行候補矩形の外枠から内側に向かって順に、ヒストグラムの頻度を検出する。行矩形判定部164は、ヒストグラムの頻度の大きさが「文字サイズ×0.5」を超える位置を、仮行候補矩形の外枠の位置として判定する。一方、行矩形判定部164は、上記の条件(1)または条件(2)のどちらか一方の条件を満たさないと判定した場合、ヒストグラムの頻度が最小頻度となる位置を、仮行候補矩形の外枠の位置として判定する。行矩形判定部164は、判定結果に基づいて、仮行候補矩形(仮行矩形情報153)の幅または高さを補正する。
続いて、行矩形補正部164は、図24の下段左側に示すように、異なる行方向の仮行候補矩形の文字幅を特定する。行矩形補正部164は、ノイズ付文字領域の範囲内で、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定する。行矩形補正部164は、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形とする。行矩形補正部164は、特定した文字幅の両端を所定値だけ広げ、広げた文字幅の両端の位置を、仮行候補矩形の両端としても良い。行矩形補正部164は、特定した仮行候補矩形の情報を、仮行矩形情報153に登録する。
また、行矩形補正部164は、図24の下段右側に示すように、ノイズ付文字領域内において、仮行候補矩形の領域を除いた残りの領域について、再度、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定し、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形を特定する。なお、仮行候補矩形の両端から仮行候補矩形を特定する処理は、図22にて説明した処理と同様である。
文字矩形確定部165は、ノイズ付文字領域と、仮行候補矩形に基づいて、ノイズ付文字領域の文字領域を確定する処理部である。以下において、文字矩形確定部165の処理を具体的に説明する。図25は、文字矩形確定部165の処理を説明するための図である。まず、文字矩形確定部165は、文字矩形情報152と仮行矩形情報153とを比較して、ノイズ付文字領域と重なりを持つ仮行候補矩形を特定する。図25に示す例では、ノイズ付文字領域と重なりを持つ仮行候補矩形は、仮行候補矩形A〜Eとなる。
文字矩形確定部165は、特定した各仮行候補矩形が交差する領域を新しい文字領域として判定する。図25の下段に示すように、文字矩形確定部165は、仮行候補矩形A〜Eが交差する領域を、文字領域a〜bとして特定する。文字矩形確定部165は、特定した文字領域の情報を、文字矩形情報152に登録する。
ここで、仮行候補位置推定部163は、文字矩形確定部165が特定した文字領域に基づいて、仮行候補矩形を生成し、生成した仮行候補矩形の情報を、仮行矩形情報153に登録してもよい。
図2の説明に戻ると、文字認識処理部166は、文字矩形特定部165が特定した文字領域および分類部162が特定した文字領域に対して文字認識を実行する処理部である。文字認証処理部166が実行する文字認識の処理は、上記の分類部162の文字認識と同様であるため、説明を省略する。
意味解析部167は、文字認識処理部166の文字認識結果を取得し、辞書情報154に基づいて、取得した文字認識結果を修正する処理部である。辞書情報154は、国語辞典に含まれる熟語や、適切な文字列の情報が含まれる。
意味解析処理部167は、例えば、文字認識結果として、「普通預金」を取得した場合には、普通預金が辞書情報154に含まれているか否かを判定する。「普通預金」は、辞書情報154に含まれているので、意味解析処理部167は、「普通預金」を認識結果として出力部130に出力する。
一方、意味解析部167は、文字認識結果として、例えば、「普通豫金」を取得した場合、「普通豫金」は、辞書情報154に含まれない。この場合、意味解析部167は、類似する文字列「普通預金」の前後関係等から、「普通豫金」の「豫」を「預」に修正して、「普通預金」を認識結果として出力部130に出力する。なお、意味解析部167が、誤った文字を正しい文字に修正する処理は、周知技術を用いて実行することが出来る。
次に、本実施例2にかかる文字認識装置100の処理手順について説明する。図26は、本実施例2にかかる文字認識装置100の処理手順を示すフローチャートである。図26に示すように、文字認識装置100は、分類部162が、分類処理を実行し(ステップS101)、仮行候補位置推定部163および行矩形補正部165が、第1の仮行候補生成処理を実行する(ステップS102)。
続いて、文字矩形確定部165が、文字枠の確定処理を実行し(ステップS103)、文字認識処理部166が、文字領域に基づいて文字認識を実行する(ステップS104)。そして、意味解析処理部167が、文字認識結果の文字修正を実行する(ステップS105)。
次に、図26のステップS101に示した分類処理の処理手順について説明する。図27は、分類処理の処理手順を示すフローチャートである。図27に示すように、分類部162は、レイアウト解析を実行する(ステップS151)。レイアウト解析は、上述したように、二値化処理とラベリング処理が含まれる。
分類部162は、未処理の文字矩形を選択し(ステップS152)、文字矩形内の画像に対して文字認識を実行する(ステップS153)。分類部162は、文字矩形内の文字認証結果に対する確信度が閾値以上か否かを判定する(ステップS154)。
分類部162は、確信度が閾値未満の場合(ステップS155,No)、該当文字矩形の属性をノイズ付文字に設定し(ステップS156)、ステップS158に移行する。一方、分類部162は、確信度が閾値以上の場合(ステップS155,Yes)、該当文字矩形の属性を文字に設定する(ステップS157)。
分類部162は、全ての文字矩形を選択したか否かを判定する(ステップS158)。分類部162は、全ての文字矩形を選択していない場合(ステップS159,No)、ステップS152に移行する。一方、分類部162は、全ての文字矩形を選択した場合(ステップS159,Yes)、分類処理を終了する。
次に、図26のステップS102に示した第1の仮行候補生成処理の処理手順について説明する。図28は、仮行候補生成処理の処理手順を示すフローチャートである。図28に示すように、仮行候補位置推定部163は、文字領域の左上座標で、文字領域を左上優先でソートし(ステップS201)、未処理の基準となる文字領域を選択する(ステップS202)。
仮行候補位置推定部163は、選択した文字領域が、既に存在する仮行候補矩形に包含されるか否かを判定する(ステップS203)。仮行候補位置推定部163は、既に存在する仮行候補矩形に包含される場合(ステップS204,Yes)、別の行方向の仮行候補矩形を作成できるか否かを判定する(ステップS205)。
仮行候補位置推定部163は、別の行方向の仮行候補矩形を作成できる場合(ステップS206、Yes)、第2の仮行候補生成処理を実行し(ステップS207)、ステップS209に移行する。ステップS207において、仮行候補位置推定部163は、縦方向の仮行候補矩形を生成可能な場合、縦方向の仮行候補矩形を生成する。一方、仮行候補位置推定部163は、横方向の仮行候補矩形を生成可能な場合、横方向の仮行候補矩形を生成する。
一方、ステップS206において、仮行候補位置推定部163は、別の行方向の仮行候補矩形を作成できない場合(ステップS206,No)、ステップS210に移行する。
ところで、仮行候補位置推定部163は、ステップS204において、既に存在する仮行候補矩形に包含されていない場合(ステップS204,No)、第2の仮行候補生成処理を実行する(ステップS208)。ステップS208において、仮行候補位置推定部163は、縦方向と横方向の仮行候補矩形を生成する。
仮行候補位置推定部163は、行候補同士の干渉を解決し(ステップS209)、仮行候補矩形に含まれる文字領域を、仮行矩形情報153に追加する(ステップS210)。仮行候補位置推定部163は、全ての文字領域を選択したか否かを判定する(ステップS211)。
全ての文字領域を選択していない場合(ステップS212,No)、仮行候補位置推定部163は、ステップS202に移行する。一方、全ての文字候補を選択した場合(ステップS212,Yes)、仮行候補位置推定部163は、第1の仮行候補生成処理を終了する。
次に、図28のステップS207、ステップS208に示した第2の仮行候補生成処理の処理手順について説明する。図29は、第2の仮行候補生成処理の処理手順を示すフローチャートである。図29に示すように、仮行候補位置推定部163は、文字領域よりも一回り大きな行候補枠を生成する(ステップS251)。
仮行候補位置推定部163は、対象領域(行候補枠)の幅と等しい大きさを設定して、横方向の仮行候補矩形を設定し(ステップS252)、対象領域の高さと等しい大きさを設定して、縦方向の仮行候補矩形を設定する(ステップS253)。図28のステップS207では、図209のステップS252、または、ステップS253のうちいずれか一方が実行される。図28のステップS207では、ステップS252、ステップS253の双方が実行される。
次に、図28のステップS209に示した行候補同士の干渉を解決する処理について説明する。図30は、行候補同士の干渉を解決する処理の処理手順を示すフローチャートである。図30に示すように、仮行候補位置推定部163は、未比較の他の仮行候補矩形を選択し(ステップS301)、作成した仮行候補矩形が、選択した仮行候補矩形と重なりを持つか否かを判定する(ステップS302)。
仮行候補位置推定部163は、重なりを持たない場合(ステップS303,No)、ステップS311に移行する。一方、仮行候補位置推定部163は、重なりを持つ場合(ステップS302,Yes)、各仮行候補矩形の行方向が同じであるか否かを判定する(ステップS304)。
仮行候補位置推定部163は、行方向が異なる場合(ステップS305,No)、ステップS311に移行する。一方、仮行候補位置推定部163は、行方向が同じ場合(ステップS305,Yes)、行方向に含まれる文字領域でも重なりを持つか否かを判定する(ステップS306)。
仮行候補位置推定部163は、行方向に含まれる文字領域で重なりを持たない場合(ステップS307,No)、ステップS311に移行する。一方、仮行候補位置推定部163は、行方向に含まれる文字領域で重なりを持つ場合(ステップS307,Yes)、作成した仮行候補矩形が、選択した仮行候補矩形を完全に含むか否かを判定する(ステップS308)。
仮行候補位置推定部163は、選択した仮行候補矩形を完全に含む場合(ステップS309,Yes)、含まれる仮行候補矩形に属する文字領域の情報を、作成した仮行候補矩形に移動して、含まれる仮行候補矩形を削除する(ステップS310)。
仮行候補位置推定部163は、全ての仮行候補矩形と比較したか否かを判定する(ステップS311)。仮行候補位置推定部163は、全ての仮行候補矩形と比較していない場合(ステップS312,No)、ステップS301に移行する。一方、仮行候補位置推定部163は、全ての仮行候補矩形と比較した場合(ステップS312,Yes)、行候補同士の干渉を解決する処理を終了する。
ところで、仮行候補位置推定部163は、ステップS309において、選択した仮行候補矩形を完全に含まない場合(ステップS309,No)、選択した仮行候補矩形の文字領域が、作成した仮行候補矩形の文字領域よりも左に存在するか否かを判定する(ステップS313)。
仮行候補位置推定部163は、右に存在する場合(ステップS314,No)、選択した仮行候補矩形の左辺の座標を、その仮行候補矩形に含まれる一番左の文字領域の左辺の座標に設定する(ステップS315)。仮行候補位置推定部163は、作成した仮行候補矩形の右辺の座標を、選択した仮行候補矩形に含まれる一番左の文字領域の左辺の座標から1を減算した値に設定し(ステップS316)、ステップS319に移行する。
一方、仮行候補位置推定部163は、左に存在する場合(ステップS314,Yes)、選択した仮行候補矩形の右辺の座標を、作成した仮行候補矩形に含まれる文字猟奇の左辺の座標から1を減算した値に設定する(ステップS317)。仮行候補位置推定部163は、作成した仮行候補矩形の左辺の座標を、基準とした文字領域の座標の座標に設定する(ステップS318)。
仮行候補位置推定部163は、また、他の仮行候補矩形と重なりを持つか否かを判定する(ステップS319)。仮行候補位置推定部163は、他の仮行候補矩形と重なりを持つ場合(ステップS320,Yes)、ステップS301に移行する。一方、仮行候補位置推定部163は、他の仮行候補矩形と重なりを持たない場合(ステップS320,No)、ステップS311に移行する。
次に、図26に示した文字枠の確定処理について説明する。図31は、文字枠の確定処理の処理手順を示すフローチャートである。図31に示すように、行矩形補正部164は、処理対象となるノイズ付文字領域を選択し(ステップS351)、縦方向の補正処理を実行する(ステップS352)。
行矩形補正部164は、横方向の補正処理を実行し(ステップS353)、ノイズ付文字領域内に、まだ仮行候補矩形を作成する余裕があるか否かを判定する(ステップS354)。
行矩形補正部164は、まだ仮行候補矩形を生成する余裕がない場合(ステップS355,No)、ステップS357に移行する。一方、行矩形補正部164は、まだ仮行候補矩形を生成する余裕がある場合(ステップS355,Yes)、仮行候補矩形追加処理を実行する(ステップS356)。そして、行矩形補正部164は、確定処理を実行し(ステップS357)、文字枠の確定処理を終了する。
次に、図31のステップS352に示した縦方向の補正処理について説明する。図32、図33は、縦方向の補正処理の処理手順を示すフローチャートである。図32に示すように、行矩形補正部164は、選択したノイズ付文字領域の射影ヒストグラム(縦)を求め(ステップS401)、選択したノイズ付文字領域と、重なりを持つ未処理の仮行候補矩形(縦)を選択する(ステップS402)。
行矩形補正部164は、重なりを持つ仮行候補矩形(縦)が存在するか否かを判定する(ステップS403)。行矩形補正部164は、重なりを持つ仮行候補矩形(縦)が存在しない場合(ステップS404,No)、仮行候補矩形追加処理を実行し(ステップS405)、図33のステップS416に移行する。
一方、行矩形補正部164は、重なりを持つ仮行候補矩形(縦)が存在する場合(ステップS404,Yes)、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さいか否かを判定する(ステップS406)。行矩形補正部164は、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さい場合(ステップS407,Yes)、図33のステップS416に移行する。
一方、行矩形補正部164は、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さくない場合(ステップS407,No)、選択した仮行候補とノイズ付文字領域との重なりを持つ範囲の仮行候補矩形(縦)を作成する(ステップS408)。
行矩形補正部164は、仮行候補矩形の(左右)両端に境界探索範囲を設定し(ステップS409)、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める(ステップS410)。
行矩形補正部164は、最大頻度と最小頻度が条件(1)、(2)を満たすか否かを判定する(ステップS411)。図33に移行し、行矩形補正部164は、条件(1)、(2)を満たさない場合(ステップS412,No)、最小頻度を示す位置を仮行候補矩形の座標として求め(ステップS413)、ステップS415に移行する。
一方、行矩形補正部164は、条件(1)、(2)を満たす場合(ステップS412,Yes)、各境界探索範囲について、仮行候補矩形の外側(左右)からみて最初に頻度が(文字サイズ×0.5)を超える位置(座標)を求める(ステップS414)。
行矩形補正部164は、仮行候補矩形の左右の座標を、求めた座標に変更し(ステップS415)、全ての仮行候補矩形(縦)を処理したか否かを判定する(ステップS416)。行矩形補正部164は、全ての仮行候補矩形(縦)を処理していない場合(ステップS417)、図32のステップS401に移行する。一方、行矩形補正部164は、全ての仮行候補矩形(縦)を処理した場合(ステップS417,Yes)、縦方向の補正処理を終了する。
次に、図31のステップS353に示した横方向の補正処理について説明する。図34、図35は、横方向の補正処理の処理手順を示すフローチャートである。図34に示すように、行矩形補正部164は、選択したノイズ付文字領域の射影ヒストグラム(横)を求め(ステップS451)、選択したノイズ付文字領域と、重なりを持つ未処理の仮行候補矩形(横)を選択する(ステップS452)。
行矩形補正部164は、重なりを持つ仮行候補矩形(横)が存在するか否かを判定する(ステップS453)。行矩形補正部164は、重なりを持つ仮行候補矩形(横)が存在しない場合(ステップS454,No)、仮行候補矩形追加処理を実行し(ステップS455)、図35のステップS466に移行する。
一方、行矩形補正部164は、重なりを持つ仮行候補矩形(横)が存在する場合(ステップS454,Yes)、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さいか否かを判定する(ステップS456)。行矩形補正部164は、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さい場合(ステップS457,Yes)、図33のステップS466に移行する。
一方、行矩形補正部164は、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さくない場合(ステップS457,No)、選択した仮行候補とノイズ付文字領域との重なりを持つ範囲の仮行候補矩形(横)を作成する(ステップS458)。
行矩形補正部164は、仮行候補矩形の(上下)両端に境界探索範囲を設定し(ステップS459)、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める(ステップS460)。
行矩形補正部164は、最大頻度と最小頻度が条件(1)、(2)を満たすか否かを判定する(ステップS461)。図35に移行し、行矩形補正部164は、条件(1)、(2)を満たさない場合(ステップS462,No)、最小頻度を示す位置を仮行候補矩形の座標として求め(ステップS463)、ステップS465に移行する。
一方、行矩形補正部164は、条件(1)、(2)を満たす場合(ステップS462,Yes)、各境界探索範囲について、仮行候補矩形の外側(上下)からみて最初に頻度が(文字サイズ×0.5)を超える位置(座標)を求める(ステップS464)。
行矩形補正部164は、仮行候補矩形の上下の座標を、求めた座標に変更し(ステップS465)、全ての仮行候補矩形(横)を処理したか否かを判定する(ステップS466)。行矩形補正部164は、全ての仮行候補矩形(横)を処理していない場合(ステップS467,No)、図34のステップS451に移行する。一方、行矩形補正部164は、全ての仮行候補矩形(横)を処理した場合(ステップS457,Yes)、横方向の補正処理を終了する。
次に、図31のステップS356、図32のステップS405、図34のステップS455に示した仮行候補矩形追加処理について説明する。図36は、仮行候補矩形追加処理の処理手順を示すフローチャートである。図36に示すように、行矩形補正部164は、選択対象となるノイズ付文字領域を選択し(ステップS501)、選択したノイズ付文字領域の射影ヒストグラムを求める(ステップS502)。
行矩形補正部164は、選択したノイズ付文字領域と、最も近い距離にある仮行候補矩形から文字サイズを求め(ステップS503)、ノイズ付文字領域の範囲で、推定した文字幅内の画素数が最も多くなる位置を求める(ステップS504)。
行矩形補正部164は、推定した位置と文字幅から仮行候補矩形を生成し、境界探索範囲を設定し(ステップS505)、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める(ステップS506)。
行矩形補正部164は、最大頻度と最小頻度が条件(1)、(2)を満たすか否かを判定する(ステップS507)。行矩形補正部164は、条件(1)、(2)を満たさない場合(ステップS508,No)、最小頻度を示す位置を仮行候補矩形の境界に設定し(ステップS509)、ステップS511に移行する。
一方、行矩形補正部164は、条件(1)、(2)を満たす場合(ステップS508,Yes)、仮行候補矩形の外側からみて、最初に頻度が(文字サイズ×0.5)を超える位置を仮行候補矩形の境界に設定する(ステップS510)。
行矩形補正部164は、文字の可能性のある領域が残っているか否かを判定する(ステップS511)。行矩形補正部164は、文字の可能性のある領域が残っている場合(ステップS512,Yes)、ステップS504に移行する。一方、行矩形補正部164は、文字の可能性のある領域が残っていない場合(ステップS512,No)、仮行候補矩形追加処理を終了する。
次に、図31のステップS357に示した確定処理の処理手順について説明する。図37は、確定処理の処理手順を示すフローチャートである。図37に示すように、文字矩形確定部165は、処理対象となるノイズ付文字領域(未選択のノイズ文字領域)を選択し(ステップS551)、選択したノイズ付文字領域と重なりを持つ仮行候補矩形を選択する(ステップS552)。
文字矩形確定部165は、選択した仮行候補矩形と重なりを持つ、仮行候補矩形を探し(ステップS553)、該当する仮行候補矩形が存在するか否かを判定する(ステップS554)。文字矩形確定部165は、該当する仮行候補矩形が存在しない場合(ステップS555,No)、ステップS551に移行する。
一方、文字矩形確定部165は、該当する仮行候補矩形が存在する場合(ステップS555,Yes)、仮行候補矩形同士が交差する領域を新しい文字領域として生成する(ステップS556)。
文字矩形確定部165は、新たに生成した文字領域を含む仮行候補矩形を探す(ステップS557)。行矩形補正部164は、検索対象の仮行候補矩形が存在しない場合(ステップS558,No)、文字領域を基に新しい仮行候補矩形を生成し(ステップS559)、ステップS561に移行する。
一方、文字矩形確定部165は、検索対象の仮行候補矩形が存在する場合(ステップS558,Yes)、検索対象の仮行候補矩形の下位要素として、生成した文字領域を登録する(ステップS560)。
文字矩形確定部165は、全ての仮行候補矩形を処理したか否かを判定する(ステップS561)。文字矩形確定部165は、全ての仮候補矩形を処理していない場合(ステップS562,No)、ステップS551に移行する。一方、文字矩形確定部165は、全ての仮行候補矩形を処理した場合(ステップS562,Yes)、仮行候補矩形を行に設定する(ステップS563)。
上述してきたように、本実施例2にかかる文字認識装置100は、文字認識結果の確信度に基づいて文字領域とノイズ付文字領域を特定する。そして、文字認識装置100は、文字領域とヒストグラムの頻度に基づいて、仮行候補矩形を特定し、ノイズ付文字領域内において、仮行候補矩形の重なる領域を文字領域として特定する。また、文字認識装置100は、特定した文字領域に対して文字認識を実行する。したがって、入力画像の文字にノイズが重畳している場合であっても、文字の認識を正確に実行することが出来る。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例1、2以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では実施例3として本発明に含まれる他の実施例を説明する。
(1)ヒストグラム以外による仮行候補矩形の補正について
例えば、図22等で説明したように、行矩形補正部164はヒストグラムの頻度に基づいて仮行候補矩形の境界を補正していたが、これに限定されるものではない。図38は、仮行候補矩形の境界を特定するその他の方法を説明するための図である。
例えば、図22等で説明したように、行矩形補正部164はヒストグラムの頻度に基づいて仮行候補矩形の境界を補正していたが、これに限定されるものではない。図38は、仮行候補矩形の境界を特定するその他の方法を説明するための図である。
図38に示すように、行矩形補正部164は、隣接する画素を比較し、白画素から黒画素に変化する回数のヒストグラムを求め、変化する回数が閾値以上となる位置を、仮行候補矩形の境界として判定しても良い。
図38において、左から1列目では、変化の回数が0となり、左から2列目では、変化の回数が1となり、左から3列目では、変化の回数が0となり、左から4列目では、変化の回数が6となり、左から5列目では、変化の回数が0となる。例えば、閾値を5とした場合、行矩形補正部164は、図38の横から4列目の位置を、仮行候補矩形の境界の位置として判定し、仮行候補矩形を補正する。
(2)文字領域を確定する処理について
例えば、図25等で説明したように、文字矩形確定部165は、ノイズ付文字領域において、仮行候補矩形が重なる領域を文字領域として特定していたが、これに限定されるものではない。例えば、文字矩形確定部165は、ノイズ付文字領域の情報を、モニタに表示させ、ノイズ付文字領域内に含まれる文字領域を、ユーザに指定させても良い。
例えば、図25等で説明したように、文字矩形確定部165は、ノイズ付文字領域において、仮行候補矩形が重なる領域を文字領域として特定していたが、これに限定されるものではない。例えば、文字矩形確定部165は、ノイズ付文字領域の情報を、モニタに表示させ、ノイズ付文字領域内に含まれる文字領域を、ユーザに指定させても良い。
図39は、文字領域を確定するその他の処理を説明するための図である。図39の上段に示すように、文字矩形確定部165は、文字領域と、ノイズ付文字領域をモニタに表示させる。そして、図39の下段に示すように、ユーザがマウス等を用いてノイズ付文字領域中の文字領域を指定した場合、指定された文字領域の情報を取得し、文字領域を確定する。
(3)文字の縦横比が異なる場合に仮行候補矩形を特定する場合について
例えば、図23等で説明したように、行矩形補正部164は、異なる行方向の仮行候補矩形の文字幅を特定し、特定した文字幅をそのまま利用して、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定していた。しかし、ノイズ付文字領域から所定の範囲内に既知の文字が存在している場合には、かかる文字の縦横比に合わせて、文字幅を調整しても良い。図40は、文字の縦横比が異なる場合に仮行候補矩形を特定する場合の処理を説明するための図である。
例えば、図23等で説明したように、行矩形補正部164は、異なる行方向の仮行候補矩形の文字幅を特定し、特定した文字幅をそのまま利用して、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定していた。しかし、ノイズ付文字領域から所定の範囲内に既知の文字が存在している場合には、かかる文字の縦横比に合わせて、文字幅を調整しても良い。図40は、文字の縦横比が異なる場合に仮行候補矩形を特定する場合の処理を説明するための図である。
例えば、図40に示すように、異なる行方向の仮行候補矩形が縦方向の仮行候補矩形であり、既知の文字が縦長の文字の場合には、文字幅を所定の割合大きくする。なお、異なる行方向の仮行候補矩形が横方向の仮行候補矩形であり、既知の文字が縦長の文字の場合には、文字幅を所定の割合小さくする。このように、文字幅を調整することで、より正確に文字領域を特定することができる。
(4)システムの構成など
本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、ハッシュテーブル登録部161が、ハッシュテーブル151を生成していたが、利用者が、予め作成しておいたハッシュテーブルを入力部110から入力し、記憶部150に登録してもよい。
本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、ハッシュテーブル登録部161が、ハッシュテーブル151を生成していたが、利用者が、予め作成しておいたハッシュテーブルを入力部110から入力し、記憶部150に登録してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
図41は、実施例にかかる文字認識装置を構成するコンピュータのハードウェア構成を示す図である。図41に示すように、このコンピュータ(文字認識装置)200は、入力装置201、モニタ202、RAM(Random Access Memory)203を有する。また、コンピュータ200は、ROM(Read Only Memory)204、他の装置と通信を行う通信制御装置205、記憶媒体からデータを読み取る媒体読取装置206、CPU(Central Processing Unit)207、HDD(Hard Disk Drive)208を有する。各装置201〜208は、バス209に接続する。
HDD208には、上記した文字認識装置100の機能と同様の機能を発揮する文字認識プログラム208bが記憶されている。CPU207が文字認識プログラム208bを読み出して実行することにより、文字認識プロセス207aが起動される。ここで、文字認識プロセス207aは、図2に示した、ハッシュテーブル登録部161と、分類部162と、仮行候補位置推定部163と、行矩形特定部164と、文字矩形確定部165と、文字認識処理部166と、意味解析処理部167に対応する。
また、HDD208は、記憶部150に記憶される情報に対応する各種データ208aを記憶する。CPU207は、HDD208に格納された各種データ208aを読み出して、RAM203に格納し、RAM203に格納された各種データ203aに基づいて、文字認識を実行する。
ところで、図41に示した文字認識プログラム208bは、必ずしも最初からHDD208に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータに接続される「他のコンピュータ(またはサーバ)」などに文字認識プログラム208bを記憶しておき、コンピュータがこれらから文字認識プログラム208bを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、
前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、
前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、
前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部と
を有することを特徴とする文字認識装置。
前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、
前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、
前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部と
を有することを特徴とする文字認識装置。
(付記2)前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値を超え、かつ、画素数の最小値が第2の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記1に記載の文字認識装置。
(付記3)前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値以下、または、画素数の最小値が第2の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記2に記載の文字認識装置。
(付記4)前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記2または3に記載の文字認識装置。
(付記5)コンピュータに、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識手順と、
前記文字認識手順が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定手順と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理手順と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計手順と、
前記集計手順が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定手順と、
前記延伸した領域と重畳する領域から、前記座標位置特定手順が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定手順と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力手順と
を実行させることを特徴とする文字認識プログラム。
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識手順と、
前記文字認識手順が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定手順と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理手順と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計手順と、
前記集計手順が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定手順と、
前記延伸した領域と重畳する領域から、前記座標位置特定手順が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定手順と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力手順と
を実行させることを特徴とする文字認識プログラム。
(付記6)前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値を超え、かつ、画素数の最小値が第2の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記5に記載の文字認識プログラム。
(付記7)前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値以下、または、画素数の最小値が第2の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記6に記載の文字認識プログラム。
(付記8)前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記6または7に記載の文字認識プログラム。
(付記9)文字認識装置が、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識ステップと、
前記文字認識ステップにおいて取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定ステップと、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理ステップと、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計ステップと、
前記集計ステップにおいて集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定ステップと、
前記延伸した領域と重畳する領域から、前記座標位置特定ステップが特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定ステップと
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力ステップと
を実行することを特徴とする文字認識方法。
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識ステップと、
前記文字認識ステップにおいて取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定ステップと、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理ステップと、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計ステップと、
前記集計ステップにおいて集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定ステップと、
前記延伸した領域と重畳する領域から、前記座標位置特定ステップが特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定ステップと
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力ステップと
を実行することを特徴とする文字認識方法。
(付記10)前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値を超え、かつ、画素数の最小値が第2の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記9に記載の文字認識方法。
(付記11)前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値以下、または、画素数の最小値が第2の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記10に記載の文字認識方法。
(付記12)前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記10または11に記載の文字認識方法。
10 文字認識装置
11 文字認識部
12 重畳判定部
13 延伸処理部
14 集計部
15 座標位置特定部
16 文字領域判定部
17 出力部
100 文字認識装置
110 入力部
120 画像入力部
130 出力部
140 通信制御部
145 入出力制御部
150 記憶部
151 ハッシュテーブル
152 文字矩形情報
153 仮文字矩形情報
154 辞書情報
160 制御部
161 ハッシュテーブル登録部
162 分類部
163 仮行候補位置推定部
164 行矩形補正部
165 文字矩形確定部
166 文字認識処理部
167 意味解析処理部
200 コンピュータ
201 入力装置
202 モニタ
203 RAM
203a,208a 各種データ
204 ROM
205 通信制御装置
206 媒体読取装置
207 CPU
207a 文字認識プロセス
208 HDD
208b 文字認識プログラム
209 バス
11 文字認識部
12 重畳判定部
13 延伸処理部
14 集計部
15 座標位置特定部
16 文字領域判定部
17 出力部
100 文字認識装置
110 入力部
120 画像入力部
130 出力部
140 通信制御部
145 入出力制御部
150 記憶部
151 ハッシュテーブル
152 文字矩形情報
153 仮文字矩形情報
154 辞書情報
160 制御部
161 ハッシュテーブル登録部
162 分類部
163 仮行候補位置推定部
164 行矩形補正部
165 文字矩形確定部
166 文字認識処理部
167 意味解析処理部
200 コンピュータ
201 入力装置
202 モニタ
203 RAM
203a,208a 各種データ
204 ROM
205 通信制御装置
206 媒体読取装置
207 CPU
207a 文字認識プロセス
208 HDD
208b 文字認識プログラム
209 バス
Claims (5)
- 文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、
前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、
前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、
前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部と
を有することを特徴とする文字認識装置。 - 前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値を超え、かつ、画素数の最小値が第2の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする請求項1に記載の文字認識装置。
- 前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第1の閾値以下、または、画素数の最小値が第2の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする請求項2に記載の文字認識装置。
- コンピュータに、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識手順と、
前記文字認識手順が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定手順と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理手順と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計手順と、
前記集計手順が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定手順と、
前記延伸した領域と重畳する領域から、前記座標位置特定手順が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定手順と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力手順と
を実行させることを特徴とする文字認識プログラム。 - 文字認識装置が、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識ステップと、
前記文字認識ステップにおいて取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定ステップと、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理ステップと、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計ステップと、
前記集計ステップにおいて集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定ステップと、
前記延伸した領域と重畳する領域から、前記座標位置特定ステップが特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定ステップと
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力ステップと
を実行することを特徴とする文字認識方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009169451A JP5347793B2 (ja) | 2009-07-17 | 2009-07-17 | 文字認識装置、文字認識プログラムおよび文字認識方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009169451A JP5347793B2 (ja) | 2009-07-17 | 2009-07-17 | 文字認識装置、文字認識プログラムおよび文字認識方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011022938A true JP2011022938A (ja) | 2011-02-03 |
JP5347793B2 JP5347793B2 (ja) | 2013-11-20 |
Family
ID=43632937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009169451A Expired - Fee Related JP5347793B2 (ja) | 2009-07-17 | 2009-07-17 | 文字認識装置、文字認識プログラムおよび文字認識方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5347793B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011146029A (ja) * | 2009-12-14 | 2011-07-28 | Fujitsu Ltd | 文字認識装置、文字認識プログラムおよび文字認識方法 |
JP2015204015A (ja) * | 2014-04-15 | 2015-11-16 | コニカミノルタ株式会社 | 電子文書生成システム、画像形成装置、通信端末およびプログラム |
KR102109855B1 (ko) * | 2019-03-06 | 2020-05-12 | 서울대학교산학협력단 | Sift 구분자를 활용한 실내도면 이미지에서의 텍스트 정보 구축 방법 |
US11361529B2 (en) * | 2019-01-24 | 2022-06-14 | Fujifilm Business Innovation Corp. | Information processing apparatus and non-transitory computer readable medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63129485A (ja) * | 1986-11-19 | 1988-06-01 | Sanyo Electric Co Ltd | 文字切出しにおける検出方式 |
JP2006338578A (ja) * | 2005-06-06 | 2006-12-14 | Mitsubishi Electric Corp | 文字認識装置 |
-
2009
- 2009-07-17 JP JP2009169451A patent/JP5347793B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63129485A (ja) * | 1986-11-19 | 1988-06-01 | Sanyo Electric Co Ltd | 文字切出しにおける検出方式 |
JP2006338578A (ja) * | 2005-06-06 | 2006-12-14 | Mitsubishi Electric Corp | 文字認識装置 |
Non-Patent Citations (2)
Title |
---|
CSNJ200810080065; 小澤憲秋 外3名: '信頼性の高い文字要素を利用した帳票画像からの行抽出処理' 電子情報通信学会2008年総合大会講演論文集 情報・システム2 , 20080305, 第65頁, 社団法人電子情報通信学会 * |
JPN6013035760; 小澤憲秋 外3名: '信頼性の高い文字要素を利用した帳票画像からの行抽出処理' 電子情報通信学会2008年総合大会講演論文集 情報・システム2 , 20080305, 第65頁, 社団法人電子情報通信学会 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011146029A (ja) * | 2009-12-14 | 2011-07-28 | Fujitsu Ltd | 文字認識装置、文字認識プログラムおよび文字認識方法 |
JP2015204015A (ja) * | 2014-04-15 | 2015-11-16 | コニカミノルタ株式会社 | 電子文書生成システム、画像形成装置、通信端末およびプログラム |
US11361529B2 (en) * | 2019-01-24 | 2022-06-14 | Fujifilm Business Innovation Corp. | Information processing apparatus and non-transitory computer readable medium |
KR102109855B1 (ko) * | 2019-03-06 | 2020-05-12 | 서울대학교산학협력단 | Sift 구분자를 활용한 실내도면 이미지에서의 텍스트 정보 구축 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP5347793B2 (ja) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896349B2 (en) | Text detection method and apparatus, and storage medium | |
CN107093172B (zh) | 文字检测方法及*** | |
JP5775225B2 (ja) | マルチレイヤ連結成分をヒストグラムと共に用いるテキスト検出 | |
JP4928310B2 (ja) | ナンバープレート認識装置、その制御方法、コンピュータプログラム | |
CN112036395B (zh) | 基于目标检测的文本分类识别方法及装置 | |
US8965127B2 (en) | Method for segmenting text words in document images | |
JP4694613B2 (ja) | 原稿方向判定装置、原稿方向判定方法、プログラムおよびその記録媒体 | |
WO2017031716A1 (zh) | 自然场景图像中手写体数学公式结构分析与识别方法 | |
US9171224B2 (en) | Method of improving contrast for text extraction and recognition applications | |
JP2014089626A (ja) | 画像検出装置及び制御プログラム並びに画像検出方法 | |
JP5974589B2 (ja) | 画像処理装置およびプログラム | |
US20150139559A1 (en) | System and method for shape clustering using hierarchical character classifiers | |
CN106796647A (zh) | 场景文本检测***和方法 | |
JP6160196B2 (ja) | 識別器更新装置、識別器更新プログラム、情報処理装置、および識別器更新方法 | |
JP5347793B2 (ja) | 文字認識装置、文字認識プログラムおよび文字認識方法 | |
CN112329786A (zh) | 一种翻拍图像检测方法、装置、设备及存储介质 | |
JP2014107685A (ja) | 画像処理装置 | |
KR101571681B1 (ko) | 동질 영역을 이용한 문서 구조의 분석 방법 | |
JP5027201B2 (ja) | テロップ文字領域検出方法,テロップ文字領域検出装置およびテロップ文字領域検出プログラム | |
JP5857634B2 (ja) | 単語間空白検出装置、単語間空白検出方法及び単語間空白検出用コンピュータプログラム | |
KR20160146355A (ko) | 이미지 내의 텍스트를 검출하는 방법 및 장치 | |
JP6686460B2 (ja) | 文書画像におけるマークの除去方法及び除去装置 | |
CN111814801A (zh) | 一种机械图中标注串的提取方法 | |
CN105354833A (zh) | 一种阴影检测的方法和装置 | |
US11611678B2 (en) | Image processing apparatus and non-transitory computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130710 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130805 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |