(57)【要約】【課題】余白および罫線などの検出誤りがある場合、ならびに、画像内に特性の異なる文字が存在する場合でも、高精度に文字列を抽出できる文字認識装置および文字認識方法を提供する。【解決手段】領域検出部３が、画像データから罫線および空白などで囲まれた領域を検出する。文字列抽出部４が、領域内からラベルを検出し、ラベルからの距離に応じて重みづけしたエネルギ関数を生成し、領域内の最適化処理によりラベルを統合する。文字認識部５は、統合されたラベル内の文字列を認識処理する。【選択図】図１
2014164320.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データから所定の領域を検出する領域検出部と、
前記領域検出部の検出した領域から文字列を抽出する文字列抽出部と、
前記文字列抽出部の抽出した文字列を認識する文字認識部とを備え、
前記文字列抽出部は、
前記領域内から非余白領域を検出するラベル検出部と、
前記ラベル検出部の検出した非余白領域からの距離に応じて重みづけしたエネルギ関数を生成する統合エネルギ関数生成部と、
前記統合エネルギ関数生成部の生成したエネルギ関数に基づく最適化関数を用いて最適化処理を行い、最適化結果に従って前記領域内の前記非余白領域を統合して文字列として抽出する最適化処理部とを有することを特徴とする文字認識装置。
【請求項２】
前記統合エネルギ関数生成部は、前記領域内から特定のパターンを検出し、前記エネルギ関数に対して当該パターンに対応する重みを加えることを特徴とする請求項１記載の文字認識装置。
【請求項３】
前記所定の領域は、連続する黒画素で囲まれた領域、連続する白画素で囲まれた領域、および予め決められた形状のシンボルの特定領域のうちの少なくとも１つの領域であることを特徴とする請求項１記載の文字認識装置。
【請求項４】
入力された画像データから所定の領域を検出する領域検出ステップと、
前記領域検出ステップで検出した領域から文字列を抽出する文字列抽出ステップと、
前記文字列抽出ステップで抽出した文字列を認識する文字認識ステップとを備え、
前記文字列抽出ステップは、
前記領域内から非余白領域を検出するラベル検出ステップと、
前記ラベル検出ステップで検出した非余白領域からの距離に応じて重みづけしたエネルギ関数を生成する統合エネルギ関数生成ステップと、
前記統合エネルギ関数生成ステップで生成したエネルギ関数に基づく最適化関数を用いて最適化処理を行い、最適化結果に従って前記領域内の前記非余白領域を統合して文字列として抽出する最適化処理ステップとを有することを特徴とする文字認識方法。
【請求項５】
前記統合エネルギ関数生成ステップは、前記領域内から特定のパターンを検出し、前記エネルギ関数に対して当該パターンに対応する重みを加えることを特徴とする請求項４記載の文字認識方法。
【請求項６】
前記所定の領域は、連続する黒画素で囲まれた領域、連続する白画素で囲まれた領域、および予め決められた形状のシンボルの特定領域のうちの少なくとも１つの領域であることを特徴とする請求項４記載の文字認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データの中から文字を認識する文字認識装置および文字認識方法に関するものである。
【背景技術】
【０００２】
従来の文字認識装置は、主に、二値化処理部、余白検出部、文字列抽出部、および文字認識部から構成されていた。先ず、二値化処理部が画像データの二値化処理を行う。続いて、余白検出部が、二値化後の画像に対して余白の検出を行い、非余白領域を抽出する。続いて、文字列抽出部が、非余白領域において黒画素の連結状態を調べ、黒画素が連結しているかたまりをラベルにし、各ラベルを統合して文字列の領域を決定する。最後に、文字認識部が、統合したラベルの文字認識を行い、認識結果を出力する。
【０００３】
ラベル統合方法として、例えば特許文献１ではラベルの膨張処理を行い、膨張させたラベルが重なった場合、重なったラベルを統合するという手法が開示されている。この際、膨張結果が罫線を超えないような制御がされている。
【０００４】
また、特許文献２では、周囲のラベルを探索し、ラベル間の距離に応じて統合するかどうかを決定する手法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１４１５９７号公報
【特許文献２】特開２００７−２６４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の文字認識装置は以上のように構成されているので、ラベル生成前の余白および罫線などの非余白領域の検出結果に基づき、余白および罫線などを超えないようなラベル統合を行っていた。しかし、余白および罫線などの検出は、画像のノイズ成分およびレイアウト構成などに影響を受けて検出誤りが起きることがある。そのため、検出誤りが起きた場合に、ラベルの統合がうまくいかず、文字列抽出に失敗するという課題があった。
【０００７】
また、統合する際の膨張範囲は画像の大きさなどに応じて決定され、画像ごとに固定であるため、画像の局所性に対応できないという課題があった。
【０００８】
この発明は、上記のような課題を解決するためになされたもので、余白および罫線などの検出誤りがある場合、ならびに、画像内に特性の異なる文字が存在する場合でも、高精度に文字列を抽出できる文字認識装置および文字認識方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る文字認識装置は、領域内から非余白領域を検出するラベル検出部と、ラベル検出部の検出した非余白領域からの距離に応じて重みづけしたエネルギ関数を生成する統合エネルギ関数生成部と、統合エネルギ関数生成部の生成したエネルギ関数に基づく最適化関数を用いて最適化処理を行い、最適化結果に従って領域内の非余白領域を統合して文字列として抽出する最適化処理部とを有するものである。
【００１０】
この発明に係る文字認識方法は、領域内から非余白領域を検出するラベル検出ステップと、ラベル検出ステップで検出した非余白領域からの距離に応じて重みづけしたエネルギ関数を生成する統合エネルギ関数生成ステップと、統合エネルギ関数生成ステップで生成したエネルギ関数に基づく最適化関数を用いて最適化処理を行い、最適化結果に従って領域内の非余白領域を統合して文字列として抽出する最適化処理ステップとを有するものである。
【発明の効果】
【００１１】
この発明によれば、領域内の最適化処理により非余白領域（即ち、ラベル）を統合するようにしたので、余白および罫線などの検出誤りがある場合、ならびに、画像内に特性の異なる文字が存在する場合でも、高精度に文字列を抽出でき、文字認識精度を向上させた文字認識装置を提供することができる。
【００１２】
この発明によれば、領域内の最適化処理により非余白領域（即ち、ラベル）を統合するようにしたので、余白および罫線などの検出誤りがある場合、ならびに、画像内に特性の異なる文字が存在する場合でも、高精度に文字列を抽出でき、文字認識精度を向上させた文字認識方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１に係る文字認識装置の構成を示すブロック図である。
【図２】実施の形態１に係る文字認識装置の領域検出部が検出する領域の例を示す図である。
【図３】領域の別の例を示す図である。
【図４】実施の形態１に係る文字認識装置の領域検出部の動作を示すフローチャートである。
【図５】実施の形態１に係る文字認識装置の文字列抽出部の内部構成を示すブロック図である。
【図６】実施の形態１に係る文字認識装置の統合エネルギ関数生成部が生成するエネルギ関数の一例を説明する図である。
【図７】エネルギ関数の別の例を説明する図であり、エネルギ関数が重なる場合を示す。
【図８】エネルギ関数の別の例を説明する図であり、罫線が存在する場合を示す。
【図９】実施の形態１に係る文字認識装置の文字列抽出部の動作を示すフローチャートである。
【図１０】実施の形態１に係る文字認識装置の最適化処理部による最適化処理を説明する図である。
【図１１】実施の形態１に係る文字認識装置の複数のエネルギ関数の例を説明する図である。
【図１２】実施の形態１に係る文字認識装置において、複数のエネルギ関数を用いた場合の統合結果の決定方法を説明する図である。
【図１３】実施の形態１に係る文字認識装置の重み定数のテーブルの例を示す図である。
【図１４】図１３に示すテーブルの重み定数に基づいて作成されたエネルギ関数を示す図である。
【図１５】実施の形態１に係る文字認識装置においてグレースケール画像から領域を検出する例を説明する図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１に示すように、本実施の形態１に係る文字認識装置１は、二値化処理部２と、領域検出部３と、文字列抽出部４と、文字認識部５とから構成される。これら二値化処理部２、領域検出部３、文字列抽出部４および文字認識部５を各種電子回路でハードウェアとして構成してもよいし、文字認識装置１をコンピュータで構成して、ＣＰＵを二値化処理部２、領域検出部３、文字列抽出部４および文字認識部５として機能させるためのプログラムをメモリ等に格納し、ＣＰＵがそのプログラムを実行するようにしてもよい。
【００１５】
この文字認識装置１において、先ず、画像データが二値化処理部２に入力されると、二値化処理部２が画像データの二値化処理を行い、二値化処理後の画像データ（以下、二値画像データ）を領域検出部３、文字列抽出部４および文字認識部５に出力する。
以下の説明では、画像データの余白（背景など）が二値化処理によって白画素に変換され、余白以外（文字、罫線、シンボル図形など）が黒画素に変換されたものとする。
【００１６】
領域検出部３は、二値画像データから文字列抽出対象となる領域を検出し、領域検出結果を文字列抽出部４へ出力する。領域検出部３の検出する領域は、何かしらの線で閉じられた領域と定義する。
【００１７】
文字列抽出部４は、二値化処理部２の二値画像データと領域検出部３の領域検出結果を用いて文字列を抽出し、文字列抽出結果を文字認識部５に出力する。文字認識部５は、二値化処理部２の二値画像データと文字列抽出部４の文字列抽出結果を用いて文字認識処理を行い、文字認識結果を出力する。
【００１８】
ここで、図２および図３に、領域検出部３が検出する領域の例を示す。例えば、図２（ａ）に示すように、罫線で囲まれた部分（即ち、連続する黒画素で閉じられた領域）をそれぞれ領域＃１〜＃３としてもよいし、図２（ｂ）に示すように、空白で囲まれた部分（即ち、連続する白画素で閉じられた領域）をそれぞれ領域＃１〜＃９としてもよい。また、画像中の特定の形状のシンボルを検出し、そのシンボルの特定部分を領域＃１としてもよい。図２（ｃ）の例では、円形の図形をシンボルとして検出し、円の内側を領域＃１として検出している。
【００１９】
また、図３（ａ）に示すように、大きい領域＃１の中に小さい領域＃２が存在する可能性がある。この場合、領域検出部３は、小さい領域＃２を領域として検出しないことで、後工程を二重に行わず、処理を削減できる。
あるいは、領域＃１，＃２を両方とも領域として検出してもよい。この場合、領域の分割数は増えるが、より局所性を考慮した処理が可能となる。また、図３（ｂ）のように、領域を階層化（領域ａ，ｂ）する場合が考えられる。階層化することで、データ構造は複雑になるが後工程の処理を増やさずに領域の局所性を考慮した処理が可能となる。
【００２０】
また、領域内に領域が存在するパターンとして、図３（ｃ）に示すように、画像が罫線などによって複数の領域＃１〜＃３に区切られている場合も考えられる。この場合、領域検出部３は、区切られた１つ１つを領域＃１〜＃３として検出し、大枠の領域＃４は領域から外すことで、画像の局所性に対応することが可能となる。
【００２１】
なお、領域検出部３は、上位で明示的にシグナリングされた指示に従って領域＃２，＃４の検出可否を決定してもよいし、領域検出部３に検出可否を判断する閾値を設定しておき、領域＃２，＃４の面積が閾値以下の場合は検出しない等の判断処理を行ってもよい。
【００２２】
図４は、領域検出部３の動作を示すフローチャートである。領域検出部３は、先ず、罫線、空白、シンボルといった、領域決定に必要な要素を二値画像データから検出する（ステップＳＴ１）。罫線検出および空白検出の手法は、例えば下記参考文献１の手法が、シンボル検出には下記参考文献２の手法が考えられる。
参考文献１：平野敬、岡田康裕、依田文夫、“文書画像からの罫線抽出方式”、電子情報通信学会総合大会、１９９８年３月
参考文献２：米山昇吾、平野敬、岡田康裕、“図面画像内シンボル抽出方式の検討”、電子情報通信学会総合大会、２００６年３月
【００２３】
領域検出部３は、要素抽出後、領域候補を抽出する（ステップＳＴ２）。図２に示したように、罫線で囲まれた領域、空白で囲まれた領域、またはシンボルの特定領域を候補とする。続いて領域検出部３は、抽出した領域候補から、図３に示したような領域の重なりを考慮し、最終的な領域を決定する（ステップＳＴ３）。
【００２４】
次に、本発明のポイントである文字列抽出部４の詳細を説明する。
図５は、文字列抽出部４の内部構成を示すブロック図である。文字列抽出部４において、先ず、二値化処理部２の二値画像データと領域検出部３の領域検出結果をラベル検出部４１に入力する。ラベル検出部４１は、二値画像データの対象領域において黒画素のかたまりを検出してラベルを生成する。ラベル検出部４１のラベル検出は従来技術と同様の処理を行えばよいため説明は割愛する。
【００２５】
統合エネルギ関数生成部４２は、ラベル検出部４１の検出したラベルに基づいて、領域を統合するために用いるエネルギ関数を生成する。
図６は、統合エネルギ関数生成部４２の生成するエネルギ関数を説明する図であり、二値画像データの領域＃１においてラベル＃１とその周辺部分に付与された重みのうち、画素列Ａの各画素に付与された重みを、一次元のグラフとして示す。グラフの縦軸が重み、横軸が画素位置である。重みは、ラベルの統合される確率を示しており、重みが大きいほど統合確率が高いことを示す。そのため、すでにラベルが検出された領域（図中のラベル＃１）は統合確率が高い。一般的に、ラベル間の距離が近いほど同じ文字列である確率が高く、離れるほど低くなる。そのため、重みはラベルからの距離に応じた関数とする。図中では、重みが大きいほど濃い色で表す。
【００２６】
各ラベルからの距離に応じた重みを考えた場合、図７のようにラベル＃１，＃２の距離が近く、ラベル＃１のエネルギ関数とラベル＃２のエネルギ関数が重なる場合が考えられる。この場合、重なった領域においてラベル＃１の重みα１とラベル＃２の重みα２を加算することが考えられる。
【００２７】
また、領域検出部３が罫線および空白などの検出に失敗した場合などには、図８（ａ）のように、領域内であるにもかかわらずラベル＃１とラベル＃２の間に罫線（または空白）が存在する可能性がある。この場合、罫線はラベルに統合されない可能性が高いため、重みを下げることが考えられる。
罫線が存在する場合に重みを小さくする方法は、下式（１）で示すように重みαから重み定数βを減算してもよいし、下式（２）で示すように重みαに重み定数λを乗算してもよい。
【００２８】
重み（罫線）＝α−β      （１）
重み（罫線）＝α×λ      （２）
【００２９】
これにより、図８（ｂ）に示すように罫線の重みが下がり、後工程において罫線がラベルに統合されにくくなる。
【００３０】
最適化処理部４３は、統合エネルギ関数生成部４２で作成されたエネルギ関数から、予め定義された最適化関数を元に最適化処理を行ってラベルを統合し、統合した結果を文字列抽出結果とする。
【００３１】
最適化関数Ｆとしては、例えば下式（３）が考えられる。
2014164320.tif 000003
【００３２】
ここで、Ｌｅｎｇｔｈ（Ｃ）は境界Ｃの周囲長を、（ｘ，ｙ）は座標を、ｕ０（ｘ，ｙ）は座標（ｘ，ｙ）におけるエネルギを示す。ｃ１は境界Ｃの内側におけるエネルギの平均値を、ｃ２は外側の平均値を示す。φ（ｘ，ｙ）は境界Ｃのエネルギを０としたときの、（ｘ，ｙ）の相対値を示す。Ｈ（φ）は抽出結果の内側かどうかを示すものとし、上記式で定義される。μ，λ１，λ２は各パラメータの重みを示す。
【００３３】
上式（３）の最適化関数Ｆの第一項は、領域の周囲長を示しており、領域を細かく分割するよりも統合したほうが周囲長は短くなる性質がある。一方、第二項、第三項は、領域内の分散を示しており、領域を分割して細かい単位で計算することで分散が小さくなる性質がある。周囲長と分散を組み合わせることで、統合と分割のバランスをとる効果がある。
【００３４】
図９は、文字列抽出部４の動作を示すフローチャートである。文字列抽出部４は、領域検出部３の検出した領域ごとに処理を行う。
先ず、ラベル検出部４１が、領域内の黒画素を検出し（ステップＳＴ１１）、検出した黒画素を連結させる（ステップＳＴ１２）。黒画素の連結処理は、例えば処理対象の黒画素の周囲８方向を見て、黒画素が存在している場合は連結し、そうでない場合は連結しない処理が考えられる。黒画素の連結後、連結した黒画素を囲むような矩形領域をラベルとして生成する（ステップＳＴ１３）。
【００３５】
ラベル生成後、統合エネルギ関数生成部４２がエネルギ関数Ｅの生成を行う（ステップＳＴ１４）。エネルギ関数は、ラベルからの距離に応じて、下式（４）のような関数で示される。
Ｅ（ｘ，ｙ）＝Ｍ−λｍａｘ（｜（ｘ０−ｘ）｜，｜（ｙ０−ｙ）｜）  （４）
ここで、（ｘ０，ｙ０）はラベルの位置を示し、λは重み定数を示す。Ｍは重みの上限値とする。
【００３６】
Ｅ（ｘ，ｙ）は、罫線および空白による重みをつけることが可能である。この場合、式（５）のような関数で表せる。
Ｅ（ｘ，ｙ）＝Ｍ−λｍａｘ（｜ｘ０−ｘ）｜，｜（ｙ０−ｙ）｜）
−β×φ（ｘ，ｙ）                                  （５）
ここで、φ（ｘ，ｙ）は座標（ｘ，ｙ）における罫線および空白の存在有無を示し、βは罫線および空白にかかる重み定数を示す。
【００３７】
エネルギ関数生成後、最適化処理部４３がエネルギ関数の最適化処理を行い（即ち、上式（３）を最小化するような値を求め）、最適化結果に従って領域内のラベルを統合し、文字列を抽出する（ステップＳＴ１５）。二値画像データから検出された領域が他にも存在する場合は（ステップＳＴ１６“ＮＯ”）、ステップＳＴ１１に戻り、次の領域の処理に移る。二値画像データから検出された全ての領域について処理を終えると（ステップＳＴ１６“ＮＯ”）、文字列抽出部４の一連の処理を終了する。
【００３８】
図１０に、最適化処理部４３の最適化処理を説明する図を示す。この図１０では、図６に示した二値画像データの領域＃１において、ラベル＃１の画素列Ａのエネルギ関数Ｅを、一次元のグラフとして示す。グラフの縦軸がエネルギ関数Ｅの値、横軸が画素位置である。図１０のグラフに示すように、Ｅ（ｘ，ｙ）を閾値Ｔｈでみた断面を考え、ＴｈよりもＥ（ｘ，ｙ）が大きい画素を内側（文字列）、小さい画素を外側と定義する。最適化処理部４３は、Ｔｈを移動させ、最適化関数Ｆ（ｃ，ｕ0）が最小となる閾値Ｔｈを求める。
【００３９】
なお、最適化処理部４３が最適な閾値Ｔｈを求める際、Ｅの取り得るすべての値で反復処理を行ってもよいし、Ｆ（ｃ，ｕ0）がある一定の値を下回るまで繰り返し処理を行ってもよい。
【００４０】
2014164320.tif 000004
【００４１】
文字列抽出部４の文字列抽出後、文字認識部５が文字列の文字認識処理を行う。文字認識の手法は、例えば下記参考文献３の手法が考えられる。
参考文献３：森稔、澤木美奈子、萩田紀博、村瀬洋、武川直樹、“ランレングス補正を用いた画像劣化にロバストな特徴抽出”、電子情報通信学会論文誌、Ｖｏｌ．Ｊ８６−Ｄ２、Ｎｏ．７、ｐｐ．１０４９−１０５７、２００３年７月
【００４２】
このように、罫線および空白を０ではなく、ある重みに基づくエネルギ関数Ｅとして評価するようにしたので、領域内に存在する罫線および空白をまたいでラベルを統合することができる。そのため、仮に罫線および空白などの検出に失敗したとしても、Ｅの最適化処理により、文字領域を正しく検出することができる。
【００４３】
なお、上記例のエネルギ関数は、図６等に示したようにラベルからの距離に応じて直線状に重み付けしたが、これに限定されるものではなく、例えばガウスフィルタなどを用い、正規分布として表現してもよい。この場合、文字列抽出部４の処理量は増えるが、確率分布として適切な分布となるため、統合精度の向上に寄与する。
ちなみに、ガウスフィルタは下式（６）で表せる。
2014164320.tif 000005
【００４４】
また、上記例では、１つのラベルに１つのエネルギ関数を生成したが、これに限定されるものではなく、統合エネルギ関数生成部４２が１つのラベルに複数のエネルギ関数を生成し、最適化処理部４３が各エネルギ関数について反復計算を行い、反復計算結果を照合して最適な統合を探してもよい。
【００４５】
図１１に、複数のエネルギ関数例を示す。図１１（ａ）はラベルからの距離が近いところのみに重みをつける場合、図１１（ｂ）はラベルからの距離がやや離れたところに重みをつける場合、図１１（ｃ）はラベルからの距離が一番遠いところに重みをつける場合の例である。統合エネルギ関数生成部４２が、ラベルごとに範囲の異なるエネルギ関数を複数用意し、最適化処理部４３がこれらのエネルギ関数それぞれについて最適化処理を行い、最適な統合結果を探すことが考えられる。
ちなみに、重み付けにガウスフィルタを用いる場合は、上式（６）のσを変更することでエネルギ関数を変更することができる。
【００４６】
なお、複数のエネルギ関数の最適化結果から統合結果を得る場合、それぞれの最適化関数の値が一番小さくなる場合を統合結果としてもよいし、図１２に示すように、複数の最適化結果の重なり具合を考慮して統合結果を得てもよい。
図１２（ａ）は、複数のエネルギ関数それぞれの統合結果＃１〜＃７を示す。統合結果＃１〜＃３は、図１１（ａ）のようにラベルからの距離が近いところのみに重みをつけたエネルギ関数の最適化結果、統合結果＃４，＃５は、図１１（ｂ）のようにラベルからの距離がやや離れたところに重みをつけたエネルギ関数の最適化結果、統合結果＃６，＃７は、図１１（ｃ）のようにラベルからの距離が一番遠いところに重みをつけたエネルギ関数の最適化結果を表している。このとき、統合結果＃４および統合結果＃６は、統合結果＃１，＃２を１つに統合しているため、多数決処理により、統合結果＃１，＃２の領域を統合した統合結果＃４を最終的な統合結果にしている（図１２（ｂ））。また、統合結果＃４と同じ種類のエネルギ関数の統合結果＃５も最終的な統合結果として選択されている。
【００４７】
図１２（ａ）の場合、多数決処理によって統合結果＃４，＃５および統合結果＃６，＃７のどちらを最終的な統合結果として選択してもよいが、図１２（ｂ）では、より範囲が狭い統合結果＃４，＃５を選択することにより、文字列切り出し後の文字認識処理を行う際に処理する画素を少なくして処理を速くしている。
【００４８】
また、上記例では、重みαの定数λのバリエーションは各領域で同じとしたが、これに限定されるものではなく、領域の大きさに応じて切り替えてもよい。例えば下式（７），（８）のように領域の縦と横の長さＨｅｉｇｈｔ，Ｗｉｄｔｈに応じて重み定数λｈｅｉｇｈｔ，λｗｉｄｔｈを切り替えることが考えられる。
λｗｉｄｔｈ＝α×Ｗｉｄｔｈ          （７）
λｈｅｉｇｈｔ＝α×Ｈｅｉｇｈｔ      （８）
【００４９】
また、上記例では、重み定数λ，βを固定値にしたが、これに限定されるものではなく、罫線および空白など、特定のパターンの種類に応じて適応的に切り替えてもよい。例えば、図１３に示すように、罫線、点線、空白、二重線といったパターンごとに重み定数を設定したテーブルを用意しておく。統合エネルギ関数生成部４２は、領域内からこれらのパターンを検出し、検出したパターンに対応する重み定数をテーブルから選択して重みづけすることにより、図１４に示すように、エネルギ関数をパターンに応じて強い重みにしたり弱い重みにしたりすることが考えられる。
なお、統合エネルギ関数生成部４２による特定のパターン抽出の手法は、例えば上述の参考文献１の手法が考えられる。
【００５０】
また、上記例では、先ず二値化処理部２により画像データの二値化を行ってから、文字列抽出部４による文字列抽出処理を行う構成にしたが、これに限定されるものではない。例えば、二値化処理部２の処理を行わず、グレースケール画像データを用いて領域検出部３、文字列抽出部４および文字認識部５が各処理を行う構成が考えられる。この構成の場合、領域検出部３は、図１５のようにグレースケール画像の輝度差などからエッジを検出し、エッジにより囲まれた部分を領域としてもよい。また、文字列抽出部４は、上記エッジに対して重み定数λを定義して、エネルギ関数のエッジ部分を重みづけしてもよい。
【００５１】
また、二値化処理部２の処理を行わず、カラー画像データを用いて領域検出部３、文字列抽出部４および文字認識部５が各処理を行う構成にしてもよい。この場合、領域検出部３はカラー画像の色の違いにより領域を区切ることが考えられる。
【００５２】
以上より、実施の形態１によれば、文字認識装置１の文字列抽出部４は、領域検出部３の検出した領域内から非余白領域（即ち、ラベル）を検出するラベル検出部４１と、ラベル検出部４１の検出したラベルからの距離に応じて重みづけしたエネルギ関数を生成する統合エネルギ関数生成部４２と、統合エネルギ関数生成部４２の生成したエネルギ関数に基づく最適化関数を用いて最適化処理を行い、最適化結果に従って領域内のラベルを統合して文字列として抽出する最適化処理部４３とを有する構成にした。このため、余白および罫線の検出誤りがある場合、ならびに、画像内に存在する文字の特性（例えば、文字の大きさ）が違う場合であっても、高精度に文字列を抽出でき、文字認識精度を向上させる効果を奏する。
【００５３】
また、実施の形態１によれば、統合エネルギ関数生成部４２は、領域検出部３の検出した領域内から特定のパターンを検出し、エネルギ関数に対して当該パターンに対応する重みを加えるように構成した。このため、余白および罫線などに対応して重みを変化させることができ、余白および罫線の検出誤りがあった場合でも適切な領域を取得することができる。
【００５４】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００５５】
１  文字認識装置、２  二値化処理部、３  領域検出部、４  文字列抽出部、５  文字認識部、４１  ラベル検出部、４２  統合エネルギ関数生成部、４３  最適化処理部。
【図１】
2014164320.tif 000006
【図２】
2014164320.tif 000007
【図３】
2014164320.tif 000008
【図４】
2014164320.tif 000009
【図５】
2014164320.tif 000010
【図６】
2014164320.tif 000011
【図７】
2014164320.tif 000012
【図８】
2014164320.tif 000013
【図９】
2014164320.tif 000014
【図１０】
2014164320.tif 000015
【図１１】
2014164320.tif 000016
【図１２】
2014164320.tif 000017
【図１３】
2014164320.tif 000018
【図１４】
2014164320.tif 000019
【図１５】
2014164320.tif 000020