以下に、本願の開示する文字認識装置、文字認識プログラムおよび文字認識方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
次に、本実施例2にかかる文字認識装置の構成について説明する。図2は、本実施例2にかかる文字認識装置の構成を示す図である。図2に示すように、この文字認識装置200は、文字列画像認識処理部210、マーク位置判定処理部220、記憶部230を有する。また、文字認識装置200は、入力装置200aおよび表示装置200bに接続する。
入力装置200aは、例えば、帳票などの紙媒体から文字列やマークなどが混在する画像を読取り、読取った画像データを文字認識装置200に出力する装置である。以下の説明において、入力装置200aが文字認識装置200に出力する画像データを文字列画像データと表記する。入力装置200aは、例えば、スキャナ等の画像読取装置に対応する。表示装置200bは、文字認識装置200の出力結果を表示する装置である。表示装置200bは、例えば、ディスプレイ等の表示装置に対応する。
文字列画像認識処理部210は、文字列画像データに含まれる文字を認識し、認識結果となる認識結果データを生成する。また、文字列画像認識処理部210は、認識結果データを基にして、文字列画像データに含まれるマークの画像データを示すマーク画像データと、文字列画像データ上のマークの座標等を含んだマーク連結成分データとを生成する。そして、文字列画像認識処理部210は、文字列画像データ、認識結果データ、マーク画像データ、マーク連結成分データをマーク位置判定処理部220に出力する。
なお、文字列画像認識処理部210は、文字抽出処理部210a、文字認識処理部210b、行生成部210c、マーク情報抽出処理部210dを有する。各処理部210a〜210dの説明は後述する。
ここで、上記の文字列画像データ、認識結果データ、マーク画像データ、マーク連結成分データについて順に説明する。図3は、文字列画像データの一例を示す図である。図3に示す文字列画像データ1は、「普通」、「当座」、「貯金」の文字列が含まれる。また、文字列「普通」、「当座」にマークが重畳している。
図4は、認識結果データのデータ構造の一例を示す図である。図4に示すように、認識結果データ30は、行ポインタデータ31、行データ32a〜32c、文字データ33a〜33fを有する。このうち、行ポインタデータ31は、行数と行データへのポインタとを有する。行数は、文字列画像データに含まれる文字列の行数である。例えば、文字列画像データが、図3に示す文字列画像データ1の場合には、文字列「普通」、「当座」、「貯金」が3行にて画像上に並んでいるため、行数は「3」となる。行データへのポインタは、行データ32a〜32cの位置を示すポインタである。
行データ32a〜32cは、各文字列に対応付けて生成されるデータであり、行座標と、マークフラグと、文字数とを有する。図4に示す例では、行データ32aが文字列「普通」に対応し、行データ32bが文字列「当座」に対応し、行データ32cが文字列「貯金」に対応する。
行データ32a〜32cの行座標は、文字列画像データに含まれる文字列の座標である。例えば、かかる座標は、文字列に外接する外接矩形の左端下側の座標と、外接矩形の右端上側の座標を含む。マークフラグは、対応する文字列にマークが付いているか否かを識別するフラグである。例えば、マークフラグが「0」の場合には、対応する文字列にマークが付いている旨を示す。マークフラグが「1」の場合には、対応する文字列にマークが付いていない旨を示す。例えば、行データ32aのマークフラグが「1」の場合には、対応する文字列「普通」にマークが付いている旨を示す。マークフラグの初期値は「0」である。文字数は、対応する文字列に含まれる文字の数を示す。文字データのポインタは、文字列に含まれる各文字に対応する文字データの位置を示すポインタである。
例えば、行データ32aは、文字列「普通」に対応している。このため、行データ32aの文字データのポインタは、「普」に対応する文字データ33aの位置と、「通」に対応する文字データ33bの位置とを示す。また、行データ32bは、文字列「当座」に対応している。このため、行データ32bの文字データのポインタは、「当」に対応する文字データ33cと、「座」に対応する文字データ33dの位置とを示す。また、行データ32cは、文字列「貯金」に対応している。このため、行データ32cの文字データのポインタは、「貯」に対応する文字データ33eと、「金」に対応する文字データ33fの位置とを示す。
文字データ33a〜33fは、文字列に含まれる文字に対応付けて生成されるデータであり、文字コードと、文字座標とを有する。文字コードは、該当する文字を一意に識別するデータである。文字座標は、文字コードに対応する文字の座標である。
図5は、マーク画像データの一例を示す図である。図5に示す例では、図3の文字列画像データ1からマークを抽出した場合のマーク画像データ2を示している。図5に示すマーク画像データ2は、マークの連結成分2a〜2cを含む。
図6は、マーク連結成分データのデータ構造の一例を示す図である。図6に示すように、マーク連結成分データ40は、連結成分ポインタデータ41と、連結成分座標テーブル42とを有する。連結成分ポインタデータ41は、連結成分数と連結成分座標テーブル42へのポインタを有する。連結成分数は、マーク画像データに含まれる連結成分の数である。例えば、図3のマーク画像データ2は、連結成分の数が「3」であるため、連結成分数は「3」となる。連結成分座標テーブル42のポインタは、連結成分座標テーブル42の位置を示す。連結成分座標テーブル42は、連結成分毎に連結成分座標を有する。連結成分座標は、連結成分の座標である。かかる座標は、例えば、連結成分に外接する外接矩形の左端下側の座標と、外接矩形の右端上側の座標を含む。
図2の説明に戻る。マーク位置判定処理部220は、認識結果データ30とマーク連結成分データ40とを基にして、どの文字列にマークが付いているのかを判定する。そして、マーク位置判定処理部220は、判定結果を表示装置200bに出力する。
ここで、マーク位置判定処理部220がマークの付いている文字列を判定する処理について具体的に説明する。まず、マーク位置判定処理部220は、認識結果データ30の行座標に外接する外接矩形を、文字列毎に生成する。以下において、認識結果データ30の行座標に外接する外接矩形を第1の外接矩形と表記する。また、マーク位置判定処理部220は、マーク連結成分データ40の連結成分座標に外接する外接矩形を生成する。以下において、連結成分座標に外接する外接矩形を第2の外接矩形と表記する。
マーク位置判定処理部220は、第1の外接矩形の領域と、第2の外接矩形の領域とを比較して、第1、2の外接矩形の領域が重複する重複領域の面積を第1の外接矩形毎に算出する。マーク位置判定処理部220は、第1の外接矩形に複数の第1の外接矩形の領域が重複している場合には、各重複領域の面積を合計し、合計した重複面積を第1の外接矩形に対応する面積として算出する。
図7は、マーク位置判定処理部の処理を説明するための図である。図7に示す例では、第1の外接矩形3aに、第2の外接矩形3b,3cが重複している。第1の外接矩形3aと第2の外接矩形3bとが重複する領域を重複領域3dとする。第1の外接矩形3aと第2の外接矩形3cとが重複する領域を重複領域3eとする。この場合、マーク位置判定処理部220は、重複領域3d,3eの面積を、第1の外接矩形3aに対応する面積とする。
マーク位置判定処理部220は、各第1の外接矩形に対応する重複領域の面積を比較し、面積が最大となる第1の外接矩形を判定する。そして、マーク位置判定処理部220は、判定した第1の外接矩形に外接する行座標を有する行データを判定し、判定した行データに含まれるマークフラグを「1」に設定する。そして、マーク位置判定処理部220は、マークフラグの値を更新した認証結果データ30を判定結果として出力する。
図2の説明に戻る。記憶部230は、文字列画像認識処理部210が文字の認識を実行する場合に利用する各種のデータを記憶する記憶部である。記憶部230は、辞書データ230a、文字登録テーブル230b、重なり矩形管理テーブル230cを記憶する。
辞書データ230aは、文字と、文字の特徴を表す特徴ベクトルとの組を有する。図8は、辞書データのデータ構造の一例を示す図である。図8に示すように、この辞書データ230aは、文字コードと特徴ベクトルと対応付ける。
文字登録テーブル230bは、文字コード、文字の座標などを含む。図9は、文字登録テーブルのデータ構造の一例を示す図である。図9に示すように、この文字登録テーブル230bは、文字ポインタデータ231と、文字データ232a〜232cとを有する。文字ポインタデータ231は、文字数と、文字データへのポインタを有する。文字数は、文字列画像データに含まれる文字の数である。文字データへのポインタは、文字データ232a〜232cの位置を示すポインタである。文字データ232a〜232cは、文字コードと、文字座標とを有する。
重なり矩形管理テーブル230cは、ラベルの座標などを含む。このラベルは、文字列画像データ上に存在する文字またはマークの連結部分に外接する矩形に対応する。ラベルに関する詳細な説明は後述する。図10は、重なり矩形管理テーブルのデータ構造の一例を示す図である。図10に示すように、重なり矩形管理テーブル230cは、重なり矩形ポインタデータ233と、重なり矩形データ234a〜234cとを有する。重なり矩形ポインタデータ233は、ラベル数と、重なり矩形データへのポインタとを有する。ラベル数は、文字列画像データに含まれるラベルの数である。重なり矩形データへのポインタは、重なり矩形データ234a〜234cの位置を示すポインタである。
また、図10に示すように、重なり矩形データ234a〜234cは、ラベル値と、ラベル座標とを有する。ラベル値には、ラベルの特性に応じてラベル値「−1〜3」の何れかが設定される。なお、ラベル値の初期値は「−1」となる。ラベル座標は、文字列画像データ上のラベルの座標である。
次に、図2に示した文字列画像認識処理部210が有する文字抽出処理部210a、文字認識処理部210b、行生成部210c、マーク情報抽出処理部210dについて具体的に説明する。
このうち、文字抽出処理部210aは、文字列画像データに含まれる各文字の領域を抽出する処理部である。例えば、文字抽出処理部210aは、図3に示した文字列画像データ1に対して各文字の領域を抽出すると、図11に示す各文字領域10a〜10fが抽出される。図11は、文字領域の抽出結果の一例を示す図である。文字抽出処理部210aは、図11に示すように、文字「普」に外接する領域10a、文字「通」に外接する領域10b、文字「当」に外接する領域10c、文字「座」に外接する領域10dを抽出する。また、文字抽出処理部210aは、文字「貯」に外接する領域10e、文字「金」に外接する領域10fを抽出する。
以下において、文字抽出処理部210aの処理を具体的に説明する。この文字抽出処理部210aは、文字列画像データから文字領域を抽出するために、文字認識処理、第1の文字推定処理、ラベリング処理、重なり統合処理、第2の文字推定処理、文字領域抽出処理を順に実行する。
まず、文字抽出処理部210aが実行する文字抽出処理について説明する。文字抽出処理部210aは、周知の文字抽出技術を利用して、文字列画像データに含まれる文字を抽出する。文字抽出処理部210aは、如何なる周知の文字抽出技術を利用しても良い。周知の文字抽出技術として、例えば、「鎌田洋、富士克仁、黒川浩司、秋元晴雄”圧縮文字特徴と原特徴を併用した高速かつ高精度な文書認識方式”社団法人 電子情報通信学会 信学技報」等がある。
ここで、文字抽出処理部210aが実行する文字抽出処理の一例について説明する。文字抽出処理部210aは、文字列画像データを2値化した2値画像データを生成し、2値画像データに含まれる白画素及び黒画素のうち、連結する黒画素に外接する外接矩形を切り出す。以下の説明において、文字抽出処理部210aが切り出した外接矩形を切出し矩形と表記する。
そして、文字抽出処理部210aは、切出し矩形の大きさを正規化した後に、切出し矩形を複数の部分矩形領域に分割し、各部分矩形領域に含まれる輪郭点の数に基づいて、切出し矩形の特徴量を算出する。ここで、輪郭点は、上下左右に黒画素が存在する白画素である。
続いて、文字抽出処理部210aは、所定の変換式に基づいて特徴量を特徴ベクトルに変換する。以下の説明において、所定の変換式に基づいて変換した特徴ベクトルを変換特徴ベクトルと表記する。文字抽出処理部210aは、変換特徴ベクトルと、辞書データ230aに含まれる特徴ベクトルとを比較する。文字抽出処理部210aは、変換特徴ベクトルに最も類似する特徴ベクトルを判定し、判定した特徴ベクトルに対応する文字コードを切出し矩形内の文字として識別することで、文字抽出処理を実行する。このように、文字抽出処理部210aは、文字列画像データに対して文字認識処理を実行することで、文字列画像データに含まれる文字を識別する。
図12は、文字抽出処理を説明するための図である。図12に示すように、文字抽出処理部210aが文字列画像データ1に対して文字抽出処理を実行することで、切出し矩形13a〜13cが切出され、各切出し矩形13a〜13c内の文字が認識される。ただし、文字抽出処理部210aは、文字列画像データ1に含まれるマークも文字の一部として文字認識を行うので、マークが重畳する文字を正確に切り分けることができない。例えば、図12において、「普」、「通」、「当」、「座」にマークが重畳しているので、文字抽出処理部210aは「普」、「通」、「当」、「座」とマークとを一つの文字として、切出し矩形13aを切り出す。なお、「貯」、「金」にはマークが重畳していない。このため、文字抽出処理部210aは、「貯」に対応する切出し矩形13bを切出し、「金」に対応する切出し矩形13cを切り出す。
切出し矩形13bに含まれる文字の抽出結果は文字コード「貯」となり、切出し矩形13cに含まれる文字の抽出結果は文字コード「金」となる。なお、切出し矩形13aに含まれる文字の抽出結果は、例えば、文字コード「雪」となる。
そして、文字抽出処理部210aは、抽出結果に基づいて、文字数と、文字データと、認識距離値を抽出する。ここで、文字数は、文字列画像データ内の切出し矩形の数である。文字データは、文字列画像データ内の切出し矩形内の文字コードと座標とを含む。認識距離値は、切出し矩形から求めた変換特徴ベクトルの距離と、この変換特徴ベクトルに最も類似する辞書データ230a中の特徴ベクトルの距離とのうち、短い方の距離に対応するものである。ここでは一例として、切出し矩形13aの認識距離値を「2000」とし、切出し矩形13bの認識距離値を「700」とし、切出し矩形13cの認識距離値を「720」とする。
次に、文字抽出処理部210aが実行する第1の文字推定処理について説明する。文字抽出処理部210aは、かかる第1の文字推定処理により、上記文字抽出処理により切り出した切出し矩形内の文字の抽出結果が正しいか否かを判定する。具体的に、文字抽出処理部210aは、認識距離値が所定の閾値よりも小さい場合に、切出し矩形内の文字の抽出結果が正しいと判定する。文字抽出処理部210aは、正しいと判定した文字の文字コードおよび文字座標を文字登録テーブル230bに登録する。また、文字抽出処理部210aは、正しいと判定した文字の文字数を文字登録テーブル230bに登録する。
なお、文字抽出処理部210aは、文字登録テーブル230bが更新されたか否かを識別するチェンジフラグを保持する。チェンジフラグの初期値は「0」である。文字抽出処理部210aは、文字登録テーブル230bを更新した場合に、チェンジフラグの値を「1」に設定する。
図13は、第1の文字推定処理を説明するための図である。文字抽出処理部210aは、各切出し矩形13a〜13cに対応する認識距離値と所定の閾値とを比較し、所定の閾値よりも小さい認識距離値に対応する切出し矩形を判定する。例えば、所定の閾値を1000とした場合、所定の閾値よりも小さい認識距離値の切出し矩形は、切出し矩形13b、13cとなる。この場合、文字抽出処理部210aは、切出し矩形13bの「貯」、切出し矩形13cの「金」の文字コードと座標とを文字登録テーブル230bに登録する。また、文字抽出処理部210aは、文字数「2」を文字登録テーブル230bに登録する。また、文字登録テーブル230bが更新されたので、文字抽出処理部210aは、チェンジフラグの値を「1」とする。
次に、文字抽出処理部210aが実行するラベリング処理について説明する。まず、文字抽出処理部210aは、文字列画像データを2値化する。例えば、文字列画像データを2値化すると、文字やマークに対応する部分は黒画素となり、その他の空白部分は白画素となる。そして、文字抽出処理部210aは、文字列画像データの黒画素部分の連結部分を抽出し、抽出した連結部分に外接する外接矩形を求めることで、ラベリング処理を実行する。以下の説明において、ラベリング処理により求められた外接矩形をラベルと表記する。図14は、ラベリング処理を説明するための図である。図14に示すように、文字列画像データ1に対してラベリング処理を実行すると、ラベル14a〜14nが求められる。
次に、文字抽出処理部210aが実行する重なり統合処理について説明する。文字抽出処理部210aは、上記ラベリング処理により求めた各ラベルの座標を比較し、座標が重複するラベルを抽出する。そして、文字抽出処理部210aは、座標が重複するラベルの大きさを比較し、矩形の大きさが大きいラベルに矩形の大きさが小さいラベルを統合することで、重なり統合処理を実行する。文字抽出処理部210aは、重なり統合処理を実行した後に、ラベル数、ラベル値、ラベル座標を重なり矩形管理テーブル230cに登録する。なお、各ラベル値の初期値は「−1」に設定される。
図15は、重なり統合処理を説明するための図である。図15の左側に示す例では、ラベル14a〜14hの座標が重複しており、ラベル14aの矩形の大きさが、ラベル14b〜14hの矩形の大きさよりも大きい。このため、文字抽出処理部210aは、ラベル14b〜14hをラベル14aに統合する。また、ラベル14l、14m、14nの座標が重複しており、ラベル14lの矩形の大きさが、ラベル14m、14nの矩形の大きさよりも大きい。このため、文字抽出処理部210aは、ラベル14l、14m、14nをラベル14lに統合する。文字抽出処理部210aが重なり統合処理を実行することで、図15の左側の文字列画像データ1は、図15の右側の文字列画像データ1となる。
次に、文字抽出処理部210aが実行する第2の文字推定処理について説明する。文字抽出処理部210aは、上記ラベリング処理および重なり統合処理で求めたラベルの座標と、文字登録テーブル230bの文字座標とを比較して、各ラベルに対応するラベル値を判定する。文字抽出処理部210aが判定するラベル値は、ラベル値「0」、「1」、「2」「3」のうち何れかの値となる。以下において、ラベル値「0」、「1」、「2」「3」となる条件を順に説明する。
文字抽出処理部210aが、ラベル値「0」と判定するラベルの条件について説明する。文字抽出処理部210aは、ラベルの座標と文字登録テーブル230bの各文字座標とを比較し、ラベルの座標と一致する文字座標が存在する場合に、該当ラベルのラベル値をラベル値「0」と判定する。または、文字抽出処理部210aは、ラベルと文字座標を含む矩形との重複面積を求める。そして、文字抽出処理部210aは、ラベルの面積に対する重複面積の割合が所定の閾値「Th1」以上の場合に、ラベル値「0」と判定する。
文字抽出処理部210aが、ラベル値「1」と判定するラベルの条件について説明する。ラベルの座標により特定される矩形が文字座標により特定される矩形に包含されている場合に、該当ラベルのラベル値をラベル値「0」と判定する。または、文字抽出処理部210aは、ラベルの面積に対する重複面積の割合が所定の閾値「Th1」を超え、文字座標の矩形の面積に対する重複面積の割合が所定の閾値「Th1」を超えない場合に、ラベル値「1」と判定する。
文字抽出処理部210aが、ラベル値「2」と判定するラベルの条件について説明する。文字抽出処理部210aは、ラベル値「0」またはラベル値「1」の条件を満たさずに、かつ、ラベルの長辺の長さが所定の閾値「Th2」以下の場合に、ラベル値「2」と判定する。例えば、所定の閾値「Th2」は、所定の閾値「Th1」の1.5倍の大きさとする。
文字抽出処理部210aが、ラベル値「3」と判定するラベルの条件について説明する。文字抽出処理部210aは、ラベル値「0」またはラベル値「1」の条件を満たさずに、かつ、ラベルの長辺の長さが所定の閾値「Th2」より大きい場合に、ラベル値「3」と判定する。文字抽出処理部210aは、ラベルに対応するラベル値を判定した場合に、判定結果を重なり矩形管理テーブル230cに登録する。
図15を利用して、第2の文字推定処理の説明を行う。ここで、前提条件として、文字「貯」、「金」の文字コードおよび文字座標は、文字登録テーブル230bに登録されているものとする。また、ラベル14aの長辺の長さは閾値「Th2」より大きいものとする。
図15のラベル14aのラベル値について説明する。文字登録テーブル230bには、ラベル14aの座標と一致する文字座標及び、ラベル14aを包含する文字座標の矩形は存在しない。更に、ラベル14aの長辺の長さは、所定の閾値「Th2」より大きい。このため、文字抽出処理部210aは、ラベル14aのラベル値をラベル値「3」と判定する。
図15のラベル14i、14j、14kのラベル値について説明する。文字登録テーブル230bには、ラベル14i、14j、14kを包含する文字コード「貯」の文字座標が存在する。このため、文字抽出処理部210aは、ラベル14i、14j、14kのラベル値をラベル値「1」と判定する。
図15のラベル14lのラベル値について説明する。文字登録テーブル230bには、ラベル14kの座標と一致する文字コード「金」の文字座標が存在する。このため、文字抽出処理部210aは、ラベル14lのラベル値をラベル値「0」と判定する。文字抽出処理部210aは、ラベル14a、14i、14j、14k、14lのラベル値を重なり矩形管理テーブル230cに登録する。
次に、文字抽出処理部210aが実行する文字領域抽出処理について説明する。この文字領域抽出処理は、細線化処理、グラフ化処理、辺削除処理、ラベリング処理、重なり統合処理、第3の文字推定処理、文字領域確定処理を含む。以下において、各処理の説明を順に説明する。
まず、文字抽出処理部210aが実行する細線化処理について説明する。文字抽出処理部210aは、重なり矩形管理矩形のラベル値を参照し、ラベル値「3」となるラベルを特定する。そして、文字抽出処理部210aは、ラベル値「3」のラベル内の画像データをスキャンし、ラベル内の線を所定の幅以下の線に変更する。図16は、細線化処理を説明するための図である。図16に示すように、文字抽出処理部210aは、ラベル14aに含まれる線を、図16の右側に示すように、所定の幅以下の線に変更する。
続いて、文字抽出処理部210aが実行するグラフ化処理について説明する。文字抽出処理部210aは、細線化した線の内、線の端部分または線の交点部分をノードとして抽出し、各ノードに挟まれる線を辺として抽出することでグラフ化を行う。図17は、グラフ化処理を説明するための図である。図17の左側に示す細線化された線は、グラフ化処理を実行されることで、図17の右側に示すものとなる。なお、ここでは説明の便宜上、細線化された文字のうち、「普通」の上側部分のグラフ化結果のみを示す。図17の右側において丸部分がノードに対応し、各ノードに挟まれた線が辺に対応する。
なお、上記の細線化処理およびグラフ化処理は、如何なる従来技術を利用しても構わない。例えば、特開2000−322514号公報に開示された技術を利用して、文字抽出処理部210aは、細線化処理およびグラフ化処理を実行しても良い。
次に、文字抽出処理部210aが実行する辺削除処理について説明する。かかる辺削除処理を実行することで、文字抽出処理部210aは文字に含まれる不要な辺を取り除く。文字抽出処理部210aは、文字から不要な辺が取り除かれるまで、繰り返し辺削除処理を実行する。文字抽出処理部210aは、辺の削除を行った回数を保持しており、かかる回数に応じて異なる方法で辺を削除する。具体的に、文字抽出処理部210aは、辺の削除の回数が「0回」の場合、すなわち、初回の場合には、辺の長さに基づいて辺削除処理を行う。文字抽出処理部210aは、辺の削除の回数が「1回」以上で、かつ、チェンジフラグが「1」の場合には、文字登録テーブル230bを利用して辺削除処理を行う。文字抽出処理部210aは、辺の削除の回数が「1回」以上で、かつ、チェンジフラグが「0」の場合には、ヒストグラムを利用して辺削除処理を行う。以下において、各辺削除処理の説明を順に説明する。
まず、文字抽出処理部210aが、辺の長さに基づいて行う辺削除処理について説明する。文字抽出処理部210aは、グラフ化した画像データの辺を抽出し、各辺の長さの平均値を算出する。そして、文字抽出処理部210aは、平均値に定数「c1」を乗算した値を示す辺基準値を求める。文字抽出処理部210aは、グラフ化した画像データの辺のうち、辺基準値以上の長さを有する辺を削除する。なお、文字抽出処理部210aは、辺基準値として、管理者に指定される固定値を用いても良いし、文字登録テーブル230bに登録された文字の辺の平均値を用いても良い。
次に、文字抽出処理部210aが、文字登録テーブル230bを利用して行う辺削除処理について説明する。まず、文字抽出処理部210aは、文字登録テーブル230bに登録された文字座標に基づいて文字列外領域を設定する。具体的に、文字抽出処理部210aは、文字登録テーブル230bに登録された文字座標を含む外接矩形を設定し、この外接矩形に接し幅が定数「c2」となる矩形領域を4つ設定し、設定した領域を文字列外領域とする。
図18は、文字列外領域を設定する処理を説明するための図である。ここでは一例として、文字登録テーブル230bに文字コード「貯」、文字座標「A」、「B」が登録されており、文字抽出処理部230bは、かかる文字コード、文字座標を用いて文字列外領域を設定するものとする。まず、文字抽出処理部210aは、図18の左側に示すように、文字座標A、Bを含む外接矩形20aを設定する。そして、文字抽出処理部210aは、外接矩形20aに接する文字列外領域21a〜21dを設定する。文字列外領域21a〜21dの幅は、定数「c2」とする。
文字列外領域を設定した後に、文字抽出処理部210aは、グラフ化した各辺と文字列外領域21a〜21dとを比較する。そして、文字抽出処理部210aは、文字列外領域21a〜21dの何れかと重畳する辺が存在する場合に、かかる辺を削除する。図18に示す例では、辺25aが文字列外領域21bと重畳するので、文字抽出処理部210aは、辺25aを削除する。また、辺25bが文字列外領域21bと重畳するので、文字抽出処理部210aは、辺25bを削除する。
次に、文字抽出処理部210aは、ヒストグラムを利用して辺削除処理を行う辺削除処理について説明する。文字抽出処理部210aは、ラベル値「3」のラベルに対し、縦軸と横軸へ黒画素に関する射影ヒストグラムをとる。そして、文字抽出処理部210aは、射影ヒストグラムの最小点を求め、ヒストグラムの最小点に射影される線上に存在する辺が存在する場合に、かかる辺を削除する。
ただし、文字抽出処理部210aは、最小点に射影される線上に存在する辺が複数ある場合には、削除する辺を1本のみとする。例えば、文字抽出処理部210aは、複数の辺の長さを比較し、最も長い辺を削除する。
文字抽出処理部210aが実行するラベリング処理、重なり統合処理は、図14、図15を用いて説明したラベリング処理、重なり統合処理と同様であるため、ここでは説明を省略する。
次に、文字抽出処理部210aが実行する第3の文字推定処理について説明する。文字列抽出処理部210aは、かかる第3の文字推定処理により、ラベル値「2」のラベルを統合し、統合したラベル値「2」に含まれる文字の文字コードを認識する。
具体的に、第3の文字推定処理について具体的に説明する。まず、文字抽出処理部210aは、上記第2の文字推定処理と同様にして、ラベリング処理および重なり統合処理で求めたラベルの座標と、文字登録テーブル230bの文字座標とを比較して、各ラベルに対応するラベル値を判定する。そして、文字抽出処理部210aは、ラベル値「2」となるラベルを一定の条件下で統合する。
具体的に、文字抽出処理部210aは、ラベル値「2」のラベルをy座標の小さい順番にソートする。ここで、ラベル値「2」のあるラベルをラベルAとし、このラベルAに最も近いラベル値「2」のラベルをラベルA’とする。文字抽出処理部210aは、ラベルAとラベルA’とを統合した場合の矩形の大きさが閾値「th」よりも小さいときに、ラベルAとラベルA’とを統合する。文字抽出処理部210aがラベルAとラベルA’とを統合する場合には、ラベルAの座標を、ラベルAとラベルA’とを統合した矩形の座標に置き換えた後、ラベルA’を削除する。文字抽出処理部210aは、統合した場合の矩形の大きさが閾値「th」よりも小さくなるラベル値「2」のラベルが存在しなくなるまで、上記処理を繰り返し実行する。
続いて、文字抽出処理部210aは、ラベル値「2」のラベルが下記に示す条件1および条件2を満たすか否かを判定する。
閾値「Th3」<ラベルの長辺<閾値「Th4」・・・条件1
ラベルの短辺/ラベルの長辺>閾値「Th5」・・・条件2
文字抽出処理部210aは、上記条件1および条件2をラベル値「2」のラベルが満たすと判定した場合には、かかるラベルの座標を文字登録テーブル230bの文字座標に新規に登録する。文字抽出処理部210aは、文字登録テーブル230bのデータを更新した場合には、チェンジフラグを「1」に設定する。
ここで、文字抽出処理部210aが辺削除処理および第3の文字推定処理を実行した場合の処理結果の一例について説明する。なお、辺削除処理と第3の文字推定処理との間に実行されるラベリング処理および重なり統合処理の説明は省略する。図19は、辺削除処理および第3の文字推定処理の処理結果を示す図である。なお、図19では説明の便宜上、辺基準値以上の辺が存在せず、辺の長さに基づいて行う削除処理は行われないものとする。また、「貯」および「金」に対応する文字コードおよび文字座標が文字登録テーブル230bに登録されているものとする。
図19(a)に示すように、文字抽出処理部210aは、文字コード「貯」の文字座標に外接する外接矩形20aを設定する。そして、図19(b)に示すように、文字抽出処理部210aは、外接矩形20aに接する文字列外領域21a〜21dを設定する。ここで、文字列外領域21bと辺25aとが重畳するので、文字抽出処理部210aは、辺25aを削除する。また、文字列外領域21bと辺25bとが重畳するので、文字抽出処理部210aは、辺25bを削除する。図19(b)に対して、文字抽出処理部210aが第3の文字推定処理を実行すると、「普」に対応するラベルと、「当」に対応するラベルとがラベル値2となる。このため、文字抽出処理部210aは、「普」、「当」のラベルに対応する文字座標を、文字登録テーブル230bに新規に登録する。なお、「通」および「座」は、辺「25c」で接続されている。このため、文字抽出処理部210aが第3の文字推定処理を実行すると、「通」および「座」に外接するラベルが設定され、かかるラベルのラベル値はラベル値「3」となる。
文字抽出処理部210aは、ラベル値「3」のラベルが残っている場合には、辺削除処理および第3の文字推定処理を再度実行する。図19(c)に示すように、文字コード「普」の文字座標に外接する外接矩形20bを設定する。また、文字抽出処理部210aは、外接矩形20bに接する文字列外領域22a〜22dを設定する。ここで、文字列外領域22cと辺25cとが重畳するので、文字抽出処理部210aは、辺25cを削除する。
続いて、文字抽出処理部210aは、図19(c)から辺25cを削除した図19(d)に対して第3の文字推定処理を実行する。そうすると、「通」に対応するラベルと、「座」に対応するラベルとのラベル値がラベル値「2」となる。このため、文字抽出処理部210aは、「通」、「座」のラベルに対応する文字座標を、文字登録テーブル230bに新規に登録する。
次に、文字抽出処理部210aが実行する文字領域確定処理について説明する。文字抽出処理部210aは、かかる文字領域確定処理を実行することで、文字列画像データに含まれる各文字の領域を確定する。具体的に、文字領域確定処理について説明する。まず、文字抽出処理部210aは、文字登録テーブル230bを参照し、ラベル値がラベル値「0、2、3」となるラベルを特定する。そして、文字抽出処理部210aは、ラベル値がラベル値「0、2、3」となるラベルをそのまま文字領域として確定する。
また、文字抽出処理部210aは、文字登録テーブル230bを参照し、ラベル値がラベル値「1」となるラベルを特定する。ラベル値「1」のラベルは、上記第1の文字推定処理により切り出した切出し矩形に包含されるラベルである。文字抽出処理部210aは、第1の文字推定処理により切り出した切出し矩形毎に、ラベル値「1」のラベルを統合する。そして、文字抽出処理部210aは、統合したラベルの領域を文字領域として確定する。
図20は、文字領域確定処理を説明するための図である。図20の左側に示すラベル16a〜16d、16hのラベル値をラベル値「2」とし、ラベル16e〜16gのラベル値をラベル値「1」とする。図20の右側に示すように、ラベル値「2」のラベル16a〜16d、16hの領域をそのまま文字領域として確定する。また、文字抽出処理部210aは、ラベル16e〜16gを統合し、ラベル16e’を設定する。そして、文字抽出処理部210aは、ラベル16e’の領域を文字領域として確定する。このように、6つの文字領域16a〜16hが確定する。
図2に戻り、文字認識処理部210bの処理について説明する。文字認識処理部210bは、上記文字抽出処理部210aが確定した文字領域のデータを取得する。この文字領域のデータは、文字列画像データ上の文字領域の座標を含む。文字認識処理部210bは、文字列画像データ上に文字領域を設定し、設定した文字領域毎に文字認識を実行する。文字認識処理部210bが実行する文字認識処理は、例えば、文字領域のうち、マークの含まれていない部分の特徴に基づいて、文字を認識する。このように、文字認識処理部210bが文字認識を実行することで、文字以外のマークが文字領域に含まれている場合でも、文字領域内の文字認識を高精度に行うことができる。
ここで、文字認識処理部210bの処理の一例を示す。まず、文字認識処理部210bは、文字領域を複数の部分画像に分割し、分割した部分画像の特徴が、どの文字のどの部分に類似しているのかを求める。文字認識処理部210bは、例えば、加重方向指数ヒストグラムを適用することで、部分画像の特徴を求めることができる。
続いて、文字認識処理部210bは、同一の文字の異なる部分にそれぞれ類似する複数の部分画像の位置関係を判定する。文字認識処理部210bは、判定した位置関係と、対応する文字の位置関係との間で整合性が取れている場合に、対応する文字を文字領域内の文字候補として抽出する。そして、文字認識処理部210bは、文字候補に、上記部分画像が所定数以上含まれている場合に、かかる文字候補を文字領域内の文字として認識する。文字認識処理部210bは、認識結果の文字の文字コードおよび文字座標を、図4に示した認識結果データ30の文字データに登録する。
図21は、文字認識処理の処理結果を説明するための図である。図21に示すように、文字認識処理部210bは、文字登録テーブル230bの文字座標に基づいて、文字列画像データ1上に、文字領域10a〜10fを設定する。そして、文字認識処理部210bは、各文字領域10a〜10fに対して、上記文字認識を行う。その結果、文字認識処理部210bは、文字領域10a内の文字を「普」と認識し、文字領域10b内の文字を「通」と認識し、文字領域10c内の文字を「当」と認識する。また、文字認識処理部210bは、文字領域10d内の文字を「座」と認識し、文字領域10e内の文字を「貯」と認識し、文字領域10f内の文字を「金」と認識する。
図2に戻り、行生成部210cの処理について説明する。行生成部210cは、文字列画像データ上の文字領域を連結することで第1の外接矩形を生成する。例えば、行生成部210cは、文字領域の縦辺をy座標に射影し、互いに重なる文字領域を判定する。そして、行生成部210cは、互いに重なる文字領域を結合することで第1の外接矩形を生成する。行生成部210cは、第1の外接矩形を生成した場合に、生成した第1の外接矩形の行座標、第1の外接矩形に含まれる文字数を図4の認識結果データ30に登録する。また、行生成部210cは、第1の外接矩形に含まれる文字の文字データと行データとを文字データへのポインタにより対応付ける。また、行生成部210cは、行数を認識結果データ30に登録し、行ポインタデータと行データとを行データへのポインタにより対応付ける。
図22は、行生成処理の処理結果を説明するための図である。図22に示すように、文字領域10aおよび10bが互いに重なる文字領域となる。このため、行生成部210cは、文字領域10aおよび10bを統合して、第1の外接矩形11aを生成する。また、文字領域10cおよび10dが互いに重なる文字領域となる。このため、行生成部210cは、文字領域10cおよび10dを統合して、第1の外接矩形11bを生成する。また、文字領域10eおよび10fが互いに重なる文字領域となる。このため、行生成部210cは、文字領域10eおよび10fを統合して、第1の外接矩形11cを生成する。
図2に戻り、マーク情報抽出処理部210dの処理について説明する。マーク情報抽出処理部210dは、文字登録テーブル230bの文字座標に基づいて、文字列画像データの文字領域を白く塗りつぶすことで、マーク画像データを生成する。そして、マーク情報抽出処理部210dは、マーク画像データに対してラベリング処理を行うことで、マークの連結部分に外接する第2の外接矩形を求める。マーク情報抽出処理部210dは、この第2の外接矩形の座標を、マーク連結成分データとして生成する。なお、マーク情報抽出処理部210dが塗りつぶす色は白に限られず、文字列画像データ1の背景の色であればどのような色でも構わない。
図23は、マーク情報抽出の処理結果を説明するための図である。図23に示すように、マーク情報抽出処理部210dは、文字列画像データ1上に、文字領域10a〜10fを設定する。そして、マーク情報抽出処理部210dは、文字領域10a〜10dを白く塗りつぶすことで、マーク画像データ2を生成する。そして、マーク情報抽出処理部210dがマーク画像データ2に対してラベリング処理を行うことで、第2の外接矩形12a、12b、12cが設定される。マーク情報抽出処理部210dは、各第2の外接矩形12a、12b、12cの各座標をマーク連結成分データ40に登録する。また、図23に示す例では、第2の外接矩形の数が「3」となるため、マーク情報抽出処理部210dは、連結成分数「3」をマーク連結成分データ40に登録する。
次に、文字認識装置200が文字列画像データに基づいて認識結果を出力するまでの処理手順について説明する。図24は、文字認識装置の処理手順を示すフローチャートである。図24に示すように、文字認識装置200は、文字列画像データを取得し(ステップS101)、文字抽出処理を実行する(ステップS102)。
続いて、文字認識装置200は、文字認識処理を実行し(ステップS103)、行生成処理を実行する(ステップS104)。そして、文字認識装置200は、マーク情報抽出処理を実行し(ステップS105)、認識結果を出力する(ステップS106)。
次に、図24のステップS102に示した文字抽出処理について説明する。図25は、文字抽出処理の処理手順を示すフローチャートである。図25に示すように、文字認識装置200は、文字認識処理を実行し(ステップS201)、第1の文字推定処理を実行する(ステップS202)。
続いて、文字認識装置200は、ラベリング処理を実行し(ステップS203)、重なり統合処理を実行する(ステップS204)。そして、文字認識装置200は、第2の文字推定処理を実行し(ステップS205)、文字領域抽出処理を実行する(ステップS206)。
次に、図25のステップS206に示した文字領域抽出処理について説明する。図26は、文字領域抽出処理の処理手順を示すフローチャートである。図26に示すように、文字認識装置200は、細線化処理を行い(ステップS301)、グラフ化処理を行う(ステップS302)。
続いて、文字認識装置200は、辺削除処理を行い(ステップS303)、ラベリング処理を行い(ステップS304)、重なり統合処理を行い(ステップS305)、第3の文字推定処理を行う(ステップS306)。
文字認識装置200は、辺削除処理を再度実行する場合には(ステップS307,No)、ステップS303に移行する。一方、文字認識装置200は、辺削除処理を再度実行しない場合には(ステップS307,Yes)、文字領域を確定する(ステップS308)。ここで、ステップS307において、文字認識装置200は、ラベル値「3」のラベルが残っている場合に、辺削除処理を再度実行すると判定するものとする。
次に、図26のステップS303に示した辺削除処理について説明する。図27は、辺削除処理の処理手順を示すフローチャートである。図27に示すように、文字認識装置200は、辺の削除回数が0回ではない場合には(ステップS401,No)、ステップS403に移行する。一方、文字認識装置200は、辺の削除回数が0回の場合には(ステップS401,Yes)、辺の長さに基づいて辺を削除し(ステップS402)、辺の削除回数に1を加算する(ステップS403)。
続いて、文字認識装置200は、チェンジフラグが1の場合には(ステップS404,Yes)、文字列外領域を設定する(ステップS405)。文字認識装置200は、文字列外領域に所定の画素数以上重複する辺を削除し(ステップS406)、辺の削除回数に1を加算する(ステップS407)。
一方、文字認識装置200は、チェンジフラグが0の場合には(ステップS404,No)、射影ヒストグラムをとり、ヒストグラムの最小点を判定する(ステップS408)。そして、文字認識装置200は、最小点に射影される線上に存在する辺を削除し(ステップS409)、ステップS407に移行する。
上述してきたように、本実施例2にかかる文字認識装置200は、簡易的な文字認識処理を実行し、正確に文字認識できた確度の高い文字を抽出し、この文字の外接矩形に基づいて文字列外領域を設定する。そして、文字認識装置200は、文字列外領域に含まれるその他の文字の辺を削除する。例えば、図3に示したように、文字列に含まれる文字の大きさがほぼ同じで、各文字が規則正しく配列しているとすれば、文字列外領域に含まれる文字の辺はマークであるため、かかる辺を削除することで、その他の文字の領域を正確に判別できる。文字の領域を正確に判別できれば、判別した領域に対して文字認識を実行することで、正確に文字を認識することができる。すなわち、本実施例2にかかる文字認識装置200は、文字列上にマークが重畳している場合でも、正確に文字を認識することができる。
また、本実施例2にかかる文字認識装置200は、文字列外領域に含まれる辺が文字列画像データに存在しなくなるまで、辺削除処理およびラベリング処理、重なり統合処理、第3の文字推定処理を繰り返し実行する。このため、文字認識装置200は、ある辺を削除したことにより、新たに正しい文字の領域を抽出できた場合に、かかる文字の領域を足がかりとして、他の文字の領域を正確に判定することができる。
また、本実施例2にかかる文字認識装置200は、分割した辺の長さが所定の長さ以上となる辺を削除する。このため、文字認識装置200は、余分なマークを簡易的な方法で削除することができる。
ところで、文字抽出処理部210aの辺削除処理は、上記のものに限られない。例えば、図18で説明したように、文字抽出処理部210aは、文字列外領域を縦方向および横方向に設定していたが、文字列外領域を縦横どちらか一方向に限定してもよい。
また、文字抽出処理部210aは、射影ヒストグラムをとる方向を縦軸または横軸に限定してもよい。このように、文字列外領域を縦横どちらか一方向に限定し、射影ヒストグラムをとる方向を縦軸または横軸に限定することで、例えば、上下の文字列で文字の位置が異なっている場合でも、マーク部分の切り分けを行うことができる。図29は、上下の文字列で文字の位置が異なるものの一例を示す図である。
文字抽出処理部210aのその他の処理について具体的に説明する。図30A〜図30Dは、文字抽出処理部のその他の処理の一例を示す図である。ここでは、文字登録テーブル230bに文字コード「東」、文字座標「C」、「D」が登録されているものとする。また、文字抽出処理部210aは、文字コード「東」の文字座標「C」、「D」を用いて文字列外領域を設定するものする。
図30Aに示すように、文字抽出処理部210aは、文字座標「C」、「D」を含む外接矩形50を設定する。その後、図30Bに示すように、文字抽出処理部210aは、外接矩形50に接し、かつ、横方向の文字列外領域51a,51bを設定する。
文字抽出処理部210aは、文字列外領域51a,51bを設定した後に、グラフ化した各辺と文字列外領域51a,51bとを比較する。文字抽出処理部210aは、文字列外領域51a,51bの何れかと重畳する辺が存在する場合には、重畳する辺を削除する。図30Bに示す例では、辺52aおよび辺52bが文字列外領域51bと重畳する。このため、文字抽出処理部210aは、辺52aおよび辺52bを削除する。文字抽出処理部210aは、横方向に設定した文字列外領域と重畳する辺がなくなるまで、上記処理を繰り返し実行する。
文字抽出処理部210aは、横方向に設定した文字列外領域と重畳する辺がなくなった後に、ヒストグラムを利用して、残る余分な辺を削除する。ここでは、文字抽出処理部210aが、該当箇所に対し横軸へ黒画素に関する射影ヒストグラムをとり、ヒストグラムの最小点に射影される線上に存在する辺を求める場合について説明する。
図30Cに示す例では、文字抽出処理部210aは、ラベル53に対し横軸へ黒画素に関する射影ヒストグラムをとり、最小点に射影される線上に存在する辺54a〜54cを求める。辺54a〜54cのうち、辺の最も長いものは、辺54aである。このため、文字抽出処理部210aは、辺54aを削除する。この結果、図30Cに示した文字列は、図30Dに示すものとなる。
図30A〜30Dに示したように、文字抽出処理部210aは、文字列外領域を横方向に限定し、射影ヒストグラムをとる方向を横軸に限定することで、上下の文字列で文字の位置が異なっている場合でも、マーク部分の切り分けを行うことができる。なお、左右の文字列で文字の位置が異なっている場合には、文字抽出処理部210aは、文字列外領域を縦方向に限定し、射影ヒストグラムをとる方向を縦軸に限定すればよい。
文字抽出処理部210aが文字列外領域を設定する方向および射影ヒストグラムをとる方向は、例えば、管理者が予め設定しておくものとする。
なお、図2に示した文字列画像認識処理部210およびマーク位置判定処理部220は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、上記文字列画像認識処理部210およびマーク位置判定処理部220は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。また、図2に示した記憶部230は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
ところで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図2に示した文字列画像認識処理部210の機能またはマーク位置判定処理部220の機能をサーバに持たせ、かかるサーバと文字認識装置200とが協働することで、文字列画像データに含まれる文字列およびマークの付いた文字列を抽出しても良い。
なお、文字認識装置200は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、画像処理装置100,200の各機能を搭載することによって実現することもできる。
図28は、本実施例にかかる文字認識装置200を構成するコンピュータのハードウェア構成を示す図である。図28に示すように、このコンピュータ300は、各種演算処理を実行するCPU(Central Processing Unit)301と、ユーザからのデータの入力を受け付ける入力装置302と、モニタ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る媒体読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置305を有する。また、コンピュータ300は、媒体から文字列画像を読み込むスキャナ306と、各種情報を一時記憶するRAM(Random Access Memory)307と、ハードディスク装置308を有する。各装置301〜308は、バス309に接続される。
そして、ハードディスク装置308には、図2に示した文字列画像認識処理部210と同様の機能を有する文字列画像認識プログラム308aとマーク位置判定処理部220と同様の機能を有するマーク位置判定処理プログラム308bとを記憶する。また、ハードディスク装置308は、図2に示した辞書データ230a、文字登録テーブル230b、重なり矩形管理テーブル230cに対応する各種データ308cを記憶する。
CPU301が文字列画像認識プログラム308aをハードディスク装置308から読み出してRAM307に展開することにより、文字列画像認識プログラム308aは、文字列画像認識プロセス307aとして機能する。また、CPU301がマーク位置判定処理プログラム308bをハードディスク装置308から読み出してRAM307に展開することにより、マーク位置判定処理プログラム308bは、マーク位置判定処理プロセス307bとして機能する。そして、CPU301が、ハードディスク装置308から各種データ308cを読み出して、RAM307に展開し、文字列画像認識プロセス307aおよびマーク位置判定処理プロセス307bが各種データ307cを利用して処理を実行する。
なお、上記の文字列画像認識プログラム308aおよびマーク位置判定処理プログラム308bは、必ずしもハードディスク装置308に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続される記憶装置このプログラムを記憶させておき、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数の文字と文字に重畳するマークとを含む画像データに対して文字認識をおこない、前記複数の文字の中から正しく認識できた確度の高い文字を示す高確度文字を抽出する文字抽出部と、
前記画像データに含まれる全画素のうち、マークおよび文字の部分に対応する画素を連結し、連結した画素の外接矩形を設定する外接矩形設定部と、
前記外接矩形設定部が複数設定した各外接矩形の座標位置に基づいて、重複する座標位置の各外接矩形を統合する外接矩形統合部と、
各外接矩形と前記高確度文字との座標位置に基づいて各外接矩形から前記高確度文字に対応する外接矩形を判別し、判別した外接矩形に外接する所定の幅の領域を示す文字列外領域を設定する文字列外領域設定部と、
座標位置が前記文字列外領域に含まれる外接矩形を判別し、判別した外接矩形に含まれる文字に対してグラフ化をおこなうことで当該文字を複数の辺に分割し、前記文字列外領域に含まれる辺を削除する辺削除部と、
前記辺削除部が文字列外領域に含まれる辺の削除をした前記外接矩形に含まれる文字に対して文字認識を行う文字認識部と
を有することを特徴とする文字認識装置。
(付記2)前記文字列外領域に含まれる辺が存在しなくなるまで、前記外接矩形設定部、前記外接矩形統合部、前記文字列外領域設定部、前記辺削除部は順に処理を繰り返し実行することを特徴とする付記1に記載の文字認識装置。
(付記3)前記辺削除部は、分割した辺の長さが所定の長さ以上となる辺を更に削除することを特徴とする付記1または2に記載の文字認識装置。
(付記4)前記文字列外領域設定部は、前記文字列外領域を縦方向または横方向に設定し、前記辺削除部は、前記文字列外領域に含まれる辺を削除した後に、縦軸方向または横軸方向にヒストグラムをとり、ヒストグラムをとった結果に基づいて辺を更に削除することを特徴とする付記1、2または3に記載の文字認識装置。
(付記5)前記辺削除部は、ヒストグラムをとった結果に基づいて、ヒストグラムの大きさが最小となる点に射影される線上に存在する辺を求め、求めた辺のうち、長さが最長となる辺を削除することを特徴とする付記4に記載の文字認識装置。
(付記6)コンピュータに、
複数の文字と文字に重畳するマークとを含む画像データに対して文字認識をおこない、前記複数の文字の中から正しく認識できた確度の高い文字を示す高確度文字を抽出する文字抽出手順と、
前記画像データに含まれる全画素のうち、マークおよび文字の部分に対応する画素を連結し、連結した画素の外接矩形を設定する外接矩形設定手順と、
前記外接矩形設定手順が複数設定した各外接矩形の座標位置に基づいて、重複する座標位置の各外接矩形を統合する外接矩形統合手順と、
各外接矩形と前記高確度文字との座標位置に基づいて各外接矩形から前記高確度文字に対応する外接矩形を判別し、判別した外接矩形に外接する所定の幅の領域を示す文字列外領域を設定する文字列外領域設定手順と、
座標位置が前記文字列外領域に含まれる外接矩形を判別し、判別した外接矩形に含まれる文字に対してグラフ化をおこなうことで当該文字を複数の辺に分割し、前記文字列外領域に含まれる辺を削除する辺削除手順と、
前記辺削除手順が文字列外領域に含まれる辺の削除をした前記外接矩形に含まれる文字に対して文字認識をおこなう文字認識手順と
を実行させることを特徴とする文字認識プログラム。
(付記7)前記文字列外領域に含まれる辺が存在しなくなるまで、前記外接矩形設定手順、前記外接矩形統合手順、前記文字列外領域設定手順、前記辺削除手順をコンピュータに順に繰り返し実行させることを特徴とする付記6に記載の文字認識プログラム。
(付記8)前記辺削除手順は、分割した辺の長さが所定の長さ以上となる辺を更に削除することを特徴とする付記6または7に記載の文字認識プログラム。
(付記9)前記文字列外領域設定手順は、前記文字列外領域を縦方向または横方向に設定し、前記辺削除手順は、前記文字列外領域に含まれる辺を削除した後に、縦軸方向または横軸方向にヒストグラムをとり、ヒストグラムをとった結果に基づいて辺を更に削除することを特徴とする付記6、7または8に記載の文字認識プログラム。
(付記10)前記辺削除手順は、ヒストグラムをとった結果に基づいて、ヒストグラムの大きさが最小となる点に射影される線上に存在する辺を求め、求めた辺のうち、長さが最長となる辺を削除することを特徴とする付記9に記載の文字認識プログラム。
(付記11)文字認識装置が、
複数の文字と文字に重畳するマークとを含む画像データに対して文字認識をおこない、前記複数の文字の中から正しく認識できた確度の高い文字を示す高確度文字を抽出する文字抽出ステップと、
前記画像データに含まれる全画素のうち、マークおよび文字の部分に対応する画素を連結し、連結した画素の外接矩形を設定する外接矩形設定ステップと、
前記外接矩形設定ステップが複数設定した各外接矩形の座標位置に基づいて、重複する座標位置の各外接矩形を統合する外接矩形統合ステップと、
各外接矩形と前記高確度文字との座標位置に基づいて各外接矩形から前記高確度文字に対応する外接矩形を判別し、判別した外接矩形に外接する所定の幅の領域を示す文字列外領域を設定する文字列外領域設定ステップと、
座標位置が前記文字列外領域に含まれる外接矩形を判別し、判別した外接矩形に含まれる文字に対してグラフ化をおこなうことで当該文字を複数の辺に分割し、前記文字列外領域に含まれる辺を削除する辺削除ステップと、
前記辺削除ステップが文字列外領域に含まれる辺の削除をした前記外接矩形に含まれる文字に対して文字認識をおこなう文字認識ステップと
を含むことを特徴とする文字認識方法。
(付記12)前記文字認識装置は、前記文字列外領域に含まれる辺が存在しなくなるまで、前記外接矩形設定ステップ、前記外接矩形統合ステップ、前記文字列外領域設定ステップ、前記辺削除ステップを順に繰り返し実行することを特徴とする付記11に記載の文字認識方法。
(付記13)前記辺削除ステップは、分割した辺の長さが所定の長さ以上となる辺を更に削除することを特徴とする付記11または12に記載の文字認識方法。
(付記14)前記文字列外領域設定ステップは、前記文字列外領域を縦方向または横方向に設定し、前記辺削除ステップは、前記文字列外領域に含まれる辺を削除した後に、縦軸方向または横軸方向にヒストグラムをとり、ヒストグラムをとった結果に基づいて辺を更に削除することを特徴とする付記11、12または13に記載の文字認識方法。
(付記15)前記辺削除ステップは、ヒストグラムをとった結果に基づいて、ヒストグラムの大きさが最小となる点に射影される線上に存在する辺を求め、求めた辺のうち、長さが最長となる辺を削除することを特徴とする付記14に記載の文字認識方法。