(57)【特許請求の範囲】
【請求項１】
原稿上の文字領域を判別し、該文字領域内の文字認識を行なう文字認識方法であって、
前記原稿上の領域を文字領域、および他の領域に分割する領域分割工程と、
前記文字領域内の各行単位に文字データを認識する文字認識工程と、
前記文字領域内の各行単位に文字の認識結果の確からしさを示す確信度を算出する確信
度算出工程と、
各行単位に、算出された前記確信度に基づいて文字認識結果の出力を調整する出力調整工程とを有し、
前記出力調整工程は、前記確信度の平均値が、所定の閾値であって、前記文字領域内の文字行が他の属性を有する領域と重なっている場合に大きな値へ変動する閾値より小さいとき、前記文字認識結果を消去することを特徴とする文字認識方法。
【請求項２】
前記調整は、行内の文字認識の結果を予め定めた所定の記号に置き換えて出力することを特徴とする請求項１に記載の文字認識方法。
【請求項３】
原稿上の文字領域を判別し、該文字領域内の文字認識を行なう文字認識装置であって、
前記原稿上の領域を文字領域、および他の領域に分割する領域分割手段と、
前記文字領域内の各行単位に文字データを認識する文字認識手段と、
前記文字領域内の各行単位に文字の認識結果の確からしさを示す確信度を算出する確信
度算出手段と、
各行単位に、算出された前記確信度に基づいて文字認識結果の出力を調整する出力調整手段とを備え、
前記出力調整手段は、前記確信度の平均値が、所定の閾値であって、前記文字領域内の文字行が他の属性を有する領域と重なっている場合に大きな値へ変動する閾値より小さいとき、前記文字認識結果を消去することを特徴とする文字認識装置。
【請求項４】
前記調整は、行内の文字認識の結果を予め定めた所定の記号に置き換えて出力することを特徴とする請求項３に記載の文字認識装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、文字認識をおこなう、より詳しくは、原稿の画像を読み取り文字データを出力する文字認識方法において、文字以外の認識結果の認識出力を防いでより精度の高い文字認識がおこなえる文字認識方法および文字認識装置に関する。
【０００２】
【従来の技術】
従来の文字認識方法としては、特許第２９９１７７９号に開示された技術のように、文字単体の確信度情報を用い、文字の認識段階の複数の情報を評価し、その文字の信頼度に相当する値を算出し運用するものがある。
【０００３】
この文字の確信度を利用する他の方法としては、特開平５−１８２０１４号公報に開示されているように、低い確信度情報が得られた文字認識結果に対し、ユーザーからの修正を促すような表示をおこなうなどの方法が知られている。
【０００４】
また、特開平７−２２００９１号公報に開示された技術は、各文字の情報だけでなく、領域の自動分割、識別を実行処理した後に、文字認識をおこない、その結果を利用して、属性の再判別をするものである。
【０００５】
さらに、特開平８−１０１８８０号公報に開示された技術は、特定の領域の確信度を文字の確信度から算出し、算出した結果に応じて表示の方法を変えるものである。また、特開平９−２８２４１６号公報に開示された技術では、領域だけに限らず、文書全体の確信度を求めることで、その画像の結果全体のリジェクト判定に応用するものである。以上のように、文字認識に確信度を利用した方法は、多数提案されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述した各従来技術に基づく文書自体の確信度でリジェクト判定する方法は、文書全体の文字認識の精度を極力向上させ、文字以外のものの認識結果を極力出力しないという方向を目指した場合においては、期待した効果を得ることができない。
【０００７】
領域単位に確信度を求めてなんらかの処理をする場合、非文字領域と文字領域を融合させた一つの領域として領域分割で切り出したとすると、当然非文字部分の確信度は低くなるため、非文字部分の混在率によって、領域の確信度が上下することになる。
【０００８】
領域の確信度が低い場合は、その文字領域を図に変更する処理などを実行すると、得られた文字認識結果が活かされずなくなることも考えられる。一方、文字単位で確信度が低いものを全てリジェクト（排除）すると、品質の悪い画像を認識した場合には、リジェクト結果が多数を占め、見苦しく使用できない文字認識結果が出力されることになる。品質の悪い画像としては、たとえば、ノイズが多い画像の他に、濃度が濃く文字がつぶれている画像や、逆に濃度が薄いかすれた画像がある。
【０００９】
ところで、自動で文字領域を判別する方法としては、本出願人による特開平７−０３７０３６号公報など、外接矩形を抽出し、そのサイズや内部の情報によって、外接矩形を分類し、文字矩形は文字矩形で統合して領域を生成していく方法などがある。このような、領域分割の方法で文字領域が取得できた後に、文字認識をおこない、文字コードや座標とその確信度を得る方法もある。この確信度を得る方法には、上記説明した特許第２９９１７７９号公報などの技術を用いる。しかし、この場合、文字領域の判別の精度に影響を受け上記同様に使用できない文字認識結果が出力されることになる。
【００１０】
この発明は、上述した従来技術による問題点を解消するため、文字以外の認識結果の認識出力を防いでより高精度で高信頼性を有する文字認識がおこなえる文字認識方法、および装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項１に係る文字認識方法は、原稿上の文字領域を判別し、該文字領域内の文字認識を行なう文字認識方法であって、前記原稿上の領域を文字領域、および他の領域に分割する領域分割工程と、前記文字領域内の各行単位に文字データを認識する文字認識工程と、前記文字領域内の各行単位に文字の認識結果の確からしさを示す確信度を算出する確信度算出工程と、各行単位に、算出された前記確信度に基づいて文字認識結果の出力を調整する出力調整工程とを有し、前記出力調整工程は、前記確信度の平均値が、所定の閾値であって、前記文字領域内の文字行が他の属性を有する領域と重なっている場合に大きな値へ変動する閾値より小さいとき、前記文字認識結果を消去する。
【００２９】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる文字認識方法および文字認識装置の好適な実施の形態を詳細に説明する。
【００３０】
図１は、本発明の文字認識装置の全体構成を示すブロック図である。文字認識装置１００は、スキャナ１０１が読み取った画像データを文字認識してディスプレイ１０２、およびプリンタ等の印字装置１０３にテキスト等の文字データを出力する。
【００３１】
文字認識装置１００は、スキャナ１０１の画像データを格納する画像メモリ１０４，画像メモリ１０４の画像データを文字認識処理するＣＰＵ１０５，ＣＰＵ１０５の文字認識処理プログラムが格納されたＲＯＭ１０６，ＣＰＵ１０５の文字認識処理時のデータのワークエリアとして用いられるＲＡＭ１０７，ＣＰＵ１０５の文字認識処理時に参照される辞書（辞書データ格納部）１０８によって構成されている。
【００３２】
ＲＯＭ１０６の文字認識処理プログラムは、画像データを文字認識処理時の単位に領域分割する領域分割部，ＯＣＲ（文字認識）部，確信度処理部，の各機能別プログラムによって大略構成されている。
【００３３】
図２は、文字認識装置１００が実行する文字認識処理の概要手順を示すフローチャートである。ＣＰＵ１０５は、スキャナ１０１から読み込まれ画像メモリ１０４に格納した原稿等の画像データを、ＲＯＭ１０６の文字認識処理プログラムによって文字認識する。
【００３４】
はじめに、領域分割部で画像データを文字認識処理する単位に領域分割する（ステップＳ２０１）。つぎに、ＯＣＲ部で領域分割された各領域毎に文字認識する（ステップＳ２０２）。つぎに、確信度処理部で文字認識結果に対する「確からしさ」である確信度を得て確信度別に文字認識結果の出力を調整する（ステップＳ２０３）。
【００３５】
図３は、文字認識装置１００が実行する文字認識処理で行確信度処理をおこなう手順を示すフローチャートである。ＣＰＵ１０５は、はじめに、領域分割部で画像データを文字認識処理する行単位に領域分割する（ステップＳ３０１）。以降、この分割された行単位で以降の処理を実行する（ステップＳ３０２）。つぎに、ＯＣＲ部は、領域分割された各領域のうち、文字領域に対する文字認識処理を実行する（ステップＳ３０３）。
【００３６】
つぎに、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度を得る（ステップＳ３０４）。つぎに、分割された全ての領域に対する文字認識処理が終了したか否か判断する（ステップＳ３０５）。未だ終了していなければ（ステップＳ３０５：Ｎｏ）、ステップＳ３０２に復帰してつぎの領域に対する文字認識処理を実行する。全ての領域に対する文字認識処理が終了すれば（ステップＳ３０５：Ｙｅｓ）、各行の文字認識結果と、行確信度の結果が出力される。
【００３７】
つぎに、図４は、文字認識装置１００が実行する平均確信度を用いた文字／非文字判定の手順を示すフローチャートである。はじめに、領域分割部には、文字認識後の結果が入力され、文字認識結果を行単位に領域分割する（ステップＳ４０１）。そして、分割された各行の行データ数をｉとして、行データ数ｉが領域内の全行数に至るまで以下の処理を継続させる（ステップＳ４０２）。まず、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度の平均値（行内平均確信度）を算出する（ステップＳ４０３）。つぎに、算出された行内平均確信度を比較用の閾値Ｔｈ１と比較する（ステップＳ４０４）。
【００３８】
行内平均確信度が閾値Ｔｈ１を超えていれば（ステップＳ４０４：Ｙｅｓ）、この行が文字と判定する（ステップＳ４０５）。一方、行内平均確信度が閾値Ｔｈ１を超えていなければ（ステップＳ４０４：Ｎｏ）、この行が非文字と判定する（ステップＳ４０６）。この後、ステップＳ４０２に復帰して全ての行に対する文字／非文字の判定をおこない、行確信度の判定結果を出力する（ステップＳ４０７）。
【００３９】
つぎに、図５は、文字認識装置１００が実行する平均確信度を用いた文字／非文字判定の手順を示すフローチャートである。はじめに、領域分割部には、文字認識後の結果が入力され、文字認識結果を行単位に領域分割する（ステップＳ５０１）。そして、分割された各行の行データ数をｉとして、行データ数ｉが領域内の分割された全行数に至るまで以下の処理を継続させる（ステップＳ５０２）。まず、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度の平均値（行内平均確信度）を算出する（ステップＳ５０３）。つぎに、算出された行内平均確信度を比較用の閾値Ｔｈ１と比較する（ステップＳ５０４）。
【００４０】
行内平均確信度が閾値Ｔｈ１を超えていれば（ステップＳ５０４：Ｙｅｓ）、この行が文字と判定する（ステップＳ５０５）。一方、行内平均確信度が閾値Ｔｈ１を超えていなければ（ステップＳ５０４：Ｎｏ）、この行が非文字と判定し（ステップＳ５０６）、この行をあらかじめ定めた所定のリジェクト文字に置き換える（ステップＳ５０７）。この後、ステップＳ５０２に復帰して全ての行に対する文字／非文字の判定、および非文字に対するリジェクト処理をおこない、行確信度の判定結果を出力する（ステップＳ５０８）。
【００４１】
この非文字としては、特殊文字、たとえば「＝」という文字や、ＯＣＲで通常使用しない（規定範囲外の）文字コードをリジェクト文字（リジェクトコード）に置き換える。リジェクト文字としては、なんらかの文字を割り当てておけばよく、文字認識後の後工程でリジェクト文字に対する処理が可能となる。なお、リジェクト文字としてスペースを割り当てると、認識前に文字が無かったと誤判断されるため、なんらかのかが表示される文字を用いることが望ましい。
【００４２】
上記の確信度処理部は、行確信度を閾値と比較して得た上で、行確信度を、確からしい／あるいは確からしくない、の２つのいずれかに判定し、その結果、確からしくないと判定した場合には、この行は文字領域でないと判定する構成としてもよい。
【００４３】
つぎに、図６は、文字認識装置１００が実行する文字／非文字判定によって領域種別を変更する手順を示すフローチャートである。はじめに、領域分割部には、各領域毎の文字認識結果が入力される。領域数Ｉｎは、０を初期値として原稿全体の領域数ｎまで増加する。つぎに、入力されたある領域の文字認識結果を行単位に領域分割する（ステップＳ６０１）。そして、分割された各行の行データ数をｉとして、行データ数ｉが領域内の分割された全行数に至るまで以下の処理を継続させる（ステップＳ６０２）。まず、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度の平均値（行内平均確信度）を算出する（ステップＳ６０３）。つぎに、算出された行内平均確信度を比較用の閾値Ｔｈ１と比較する（ステップＳ６０４）。
【００４４】
行内平均確信度が閾値Ｔｈ１を超えていれば（ステップＳ６０４：Ｙｅｓ）、この行が文字と判定する（ステップＳ６０５）。一方、行内平均確信度が閾値Ｔｈ１を超えていなければ（ステップＳ６０４：Ｎｏ）、この行が非文字と判定し（ステップＳ６０６）、この行が非文字行であるとして非文字行数をインクリメント（Ｉｎ++）する（ステップＳ６０７）。この後、ステップＳ６０２に復帰して全ての行に対する文字／非文字の判定、および非文字行数のカウントをおこない、１領域中の行確信度の判定結果を出力する。
【００４５】
この際、この結果出力時、得られた行確信度に基づき、１領域中の非文字行数が制限値ｎに達したか否かを判定する（ステップＳ６０８）。非文字行数が制限値ｎに達していない場合には（ステップＳ６０８：Ｎｏ）、この領域が文字領域であると判断し、行確信度の結果を出力する。一方、非文字行数が制限値ｎに達した場合には（ステップＳ６０８：Ｙｅｓ）、この処理中の領域が文字領域ではないと判断し、この領域の属性種別を他に変更する（ステップＳ６０９）。
【００４６】
図７は、原稿７００上における各領域の属性を示す図である。図示のように、領域分割時に領域の属性は、文字領域７０１，図領域７０２，表領域７０３，囲み枠領域７０４等として分類し属性が附される。文字領域７０１は、原稿７００上レイアウトに従い、文字認識する領域順１〜４（７０１ａ〜７０１ｅ）が附される。
【００４７】
上記ステップＳ６０９での領域属性の変更時には、たとえば文字領域７０１ｅがこれにあたる場合、この領域７０１ｅの属性種別を変更する。たとえば、図６記載の処理を再度実行する。また、この領域７０１ｅ自体を削除する。この他、この領域７０１ｅを図領域に変更する設定としてもよい。
【００４８】
つぎに、図８は、文字認識装置１００が実行する文字／非文字判定によって文字領域のサイズを変更する手順を示すフローチャートである。はじめに、領域分割部には、各領域毎の文字認識結果が入力される。領域数Ｉｎは、０を初期値として原稿全体の領域数ｎまで増加する。つぎに、入力されたある領域の文字認識結果を行単位に領域分割する（ステップＳ８０１）。そして、分割された各行の行データ数をｉとして、行データ数ｉが領域内の分割された全行数に至るまで以下の処理を継続させる（ステップＳ８０２）。まず、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度の平均値（行内平均確信度）を算出する（ステップＳ８０３）。つぎに、算出された行内平均確信度を比較用の閾値Ｔｈ１と比較する（ステップＳ８０４）。
【００４９】
行内平均確信度が閾値Ｔｈ１を超えていれば（ステップＳ８０４：Ｙｅｓ）、この行が文字と判定する（ステップＳ８０５）。一方、行内平均確信度が閾値Ｔｈ１を超えていなければ（ステップＳ８０４：Ｎｏ）、この行が非文字と判定し（ステップＳ８０６）、この行が非文字行であるとして非文字行数をインクリメント（Ｉｎ++）する（ステップＳ８０７）。この後、ステップＳ８０２に復帰して全ての行に対する文字／非文字の判定、および非文字行数のカウントをおこない、１領域中の行確信度の判定結果を出力する。
【００５０】
この際、この結果出力時、得られた行確信度に基づき、１領域中の非文字行数が制限値ｎに達したか否かを判定する（ステップＳ８０８）。非文字行数が制限値ｎに達していない場合には（ステップＳ８０８：Ｎｏ）、この領域が文字領域であると判断し、行確信度の結果を出力する。一方、非文字行数が制限値ｎに達した場合には（ステップＳ８０８：Ｙｅｓ）、この処理中の領域が文字領域ではないと判断し、この領域のサイズを変更する（ステップＳ８０９）。
【００５１】
図９は文字領域のサイズ変更例を示す図である。図９（ａ）に示すように、この文字領域７０１において連続して高確信度行９０１ａ〜９０１ｎが判断され、最下行に低確信度行９０１ｘが判断されたとする。この場合、図９（ｂ）に示すように、低確信度行９０１ｘを除く、高確信度行９０１ａ〜９０１ｎのみで文字領域７０１を形成するよう領域サイズを変更する。
【００５２】
図１０は、文字領域サイズの他の変更例を示す図である。図１０（ａ）に示すように、この文字領域７０１において連続する高確信度行９０１ａ〜９０１ｄ，９０１ｅ〜９０１ｇの間に、低確信度行９０１ｘが判断されたとする。図示の例では、低確信度行９０１ｘは複数行である。
【００５３】
この場合、図９（ｂ）に示すように、低確信度行９０１ｘを除く、一方のまとまりの高確信度行９０１ａ〜９０１ｄで分割された一方の文字領域７０１Ａを形成する。また、他方のまとまりの高確信度行９０１ｅ〜９０１ｇで分割された他方の文字領域７０１Ｂを形成する。
【００５４】
このように、文字領域７０１内における低確信度行９０１ｘの位置に応じて領域サイズの変更時に文字領域７０１自体を分割することもできる。この際、低確信度行９０１ｘの各行の領域属性を文字領域から図領域に変更することもできる。
【００５５】
つぎに、図１１は、本発明の低確信度処理の処理内容を示すフローチャートである。この低確信度処理では、認識した文字結果の確信度を参照して、行や領域単位の平均確信度が低い場合に文字認識結果を消去する処理を実行する。この際、処理条件を細かく分けることでなるべく正解文字を残し、文字らしくない認識結果を削除する構成である。
【００５６】
以下に説明する全ての低確信度処理は、行単位でおこなう。この低確信度処理で文字かそれ以外を判断する特徴として以下の６つを組み合わせて用いる。
【００５７】
１）行内平均確信度
２）高確信度文字数
３）高確信度文字数の比率
４）英数文字数
５）ユーザー設定閾値
６）図、表等との重なりなど
【００５８】
実際の文字認識結果では、１行の文字数が何文字であるかはデータを１行分（改行コードの位置まで）解析しないとわからない。そのため、改行位置をみつけるのと同時に特徴抽出をおこなうことで、行の領域座標値がわかる時点では上記の特徴は全て収拾済みと考えて良い。図１１に示すフローチャート上で、文字認識行が表領域と重なりがあるために除外する処理の前に特徴計算が入るのはそのためである。
【００５９】
はじめに、領域分割部には、各領域毎の文字認識結果が入力される。つぎに、入力されたある領域の文字認識結果を行単位に領域分割する（ステップＳ１１０１）。そして、分割された各行の行データ数をｉとして、行データ数ｉが領域内の分割された全行数に至るまで以下の処理を継続させる（ステップＳ１１０２）。まず、確信度処理部でこの行の文字認識結果に対する「確からしさ」である行確信度の平均値（行内平均確信度）を算出する（ステップＳ１１０３）。この際、高確信度文字数、たとえば、確信度８０以上の文字数を計数する。
【００６０】
つぎに、この行が表に包含されている（表内部の文字列）かどうかを判断する（ステップＳ１１０４）。包含されている行の場合は（ステップＳ１１０４：Ｙｅｓ）、低確信度処理はおこなわない（ステップＳ１１０２に復帰）。理由は、表の内部は数字列などが入る可能性が高く、そのような文字列は確信度が比較的小さめに出る傾向があるため、確信度の低いような数値データを削除しないためである。
【００６１】
ステップＳ１１０４で包含されていない行の場合には（ステップＳ１１０４：Ｎｏ）、つぎに、画像全体に対してある程度小さな図に、その行が重なっているかどうかを判断する（ステップＳ１１０５）。重なっている場合には（ステップＳ１１０５：Ｙｅｓ）、重なりフラグをＯＮにする（ステップＳ１１０６）。重なっていない場合には（ステップＳ１１０５：Ｎｏ）、重なりフラグをＯＦＦにする（ステップＳ１１０７）。
【００６２】
この「小さい図」という判定には閾値処理を使う。結果領域の存在する範囲を求め、縦横どちらか小さいほうの長さの１／２の値を閾値とし、図の縦横双方とも閾値以下である場合、小さい図として低確信度処理に用いる。そして、この図との重なりフラグによって、文字を削除するかどうかの条件を変えている。
【００６３】
この処理では、低確信度処理の閾値を５０に設定した場合（Ｔｈ１＝５０）の状態がもっとも効果がある場合の例である。そして、重なりフラグがＯＦＦ（ステップＳ１１０７）とされた後には、平均確信度が６０を越えたか判断し（ステップＳ１１０８）、越えていれば（ステップＳ１１０８：Ｙｅｓ）、ステップＳ１１０２に復帰する。越えていなければ（ステップＳ１１０８：Ｎｏ）、ステップＳ１１００に移行する。
【００６４】
重なりフラグがＯＮ（ステップＳ１１０６）とされた後には、平均確信度が７０を越えたか判断し（ステップＳ１１０９）、越えていれば（ステップＳ１１０９：Ｙｅｓ）、ステップＳ１１０２に復帰する。越えていなければ（ステップＳ１１０９：Ｎｏ）、ステップＳ１１１０に移行する。
【００６５】
ステップＳ１１１０では、行内文字数に対する高確信度文字数の割合を判断する。判断は、（高確信度文字数／行内文字数＞４０％）の算出式を用いる。割合が４０％を越えていれば（ステップＳ１１１０：Ｙｅｓ）、ステップＳ１１０２に復帰する。越えていなければ（ステップＳ１１１０：Ｎｏ）、高確信度文字数が存在し、かつ、この文字の平均確信度が閾値Ｔｈ１（５０）以上であるか判断する（ステップＳ１１１１）。いずれも満たしていれば（ステップＳ１１１１：Ｙｅｓ）、ステップＳ１１０２に復帰する。いずれか一方でも満たさなければ（ステップＳ１１１１：Ｎｏ）、ステップＳ１１１２に移行する。
【００６６】
つぎに、行内に英数文字が所定数（たとえば４つ）以上あり、かつこの文字の平均確信度が閾値Ｔｈ１以上であるか判断する（ステップＳ１１１２）。いずれも満たしていれば（ステップＳ１１１２：Ｙｅｓ）、ステップＳ１１０２に復帰する。いずれか一方でも満たさなければ（ステップＳ１１１２：Ｎｏ）、つぎに、この行について図との重なりフラグの状態を判断する（ステップＳ１１１３）。
【００６７】
この行が図と重なる（図との重なりフラグがＯＮ）場合には（ステップＳ１１１３：Ｙｅｓ）、ステップＳ１１１５に移行する。一方、この行が図と重ならない（図との重なりフラグがＯＦＦ）場合には（ステップＳ１１１３：Ｎｏ）、行内の高確信度文字が所定割合（たとえば１０％）を越え、かつ、この文字の平均確信度が閾値を越えたか判断する（ステップＳ１１１４）。越えていれば（ステップＳ１１１４：Ｙｅｓ）、ステップＳ１１０２に復帰する。いずれか一方でも満たさなければ（ステップＳ１１１４：Ｎｏ）、ステップＳ１１１５に移行する。ステップＳ１１１５では、行内の文字データ第１候補をスペースに置換し、ステップＳ１１０２に復帰する。
【００６８】
上記の確信度を得るための情報には言語処理を用いることが多い。先に領域識別で、文字領域となった領域に対して、文字行を切り出す。たとえば、射影などをとり黒画素の少ない部分で、行を切り出した後、文字を射影や、黒画素の外接矩形を利用して取り出す。この際、日本語では、１文字が１つの矩形になるとは限らないので、１つの文字について何種類かの切り出し方をしておいて、もっともよい結果を最終結果にするように文字を切り出す。
【００６９】
この後、後処理が実行される。切り出した文字列を形態素解析等の手法で単語単位に切り出し、この単語を言語辞書にある単語とマッチング処理する。そして、文法的に整合するような認識結果が得られた場合に高い確信度が得られる。このような、文章として確からしさが得られているような認識結果である場合、高い確信度を持った文字結果が多くなる。こうした場合、上記のステップＳ１１１０の処理のように、平均確信度よりも確実に認識できた文字の文字数は非常に有効となる。
【００７０】
後処理において、たとえば、「出入り口」という単語があって、単語辞書にもあったとする。しかし、認識されたのは「出人りロ」（でひとりろ）だったとする。「人」と「ロ」の認識の第二候補はそれぞれ「入」と「口」がある。このため、第二候補と第一候補を入れかえると単語辞書にもマッチングする言葉ができるので、これが正解であると判断する。このような、後処理は、上記の確信度に影響を有し、単語辞書とマッチングした認識結果は確信度も高くなる。
【００７１】
上記の低確信度処理では、行単位にスペースへの変換がおこなわれる。このため、仮にある領域の行が全てスペースに変換されたとすると、その領域を文字領域として多数のスペースを認識結果として出力することには無駄がある。そこで、領域中の行が全てスペースに置き換えられた場合には、文字領域サイズの変更処理（図８のステップＳ８０９の処理）を実行し、領域自体を結果から削除する（図９、図１０参照）。また、削除に限らず、この領域を図その他などに属性変更する処理も可能である。
【００７２】
また、上記処理では、行内文字を削除する際は、第一候補としてスペースコードを挿入し、第２候補以下には以前の候補文字を候補順位を下げる形で格納しておく。第一候補そのものをスペースに置き換える処理ではないため、認識処理用に生成され、別途格納される中間データを後ほど参照することによって、この後の処理で候補の再度の置き換えが可能である。
【００７３】
また、上記処理によれば、結果的に文字行が図との重なりがある場合は（ステップＳ１１０５：Ｙｅｓ）、以下に実行される各処理（ステップＳ１１０９，ステップＳ１１１４）で用いた対比用の値（平均確信度）が高いため、多めに文字が削除される設定となっている。
【００７４】
また、上記の処理では、低確信度処理の閾値（Ｔｈ１）を５０に設定したものであるが、この閾値を５０以上としたい場合には、Ｔｈ１に所望する値の閾値を設定して同様に処理が可能である。一方、ユーザー設定閾値が５０より低い場合は、確信度が低い文字も出力したい要望であるため、この場合には、上記フローチャートの各処理とは異なり、行内の平均確信度をユーザー設定閾値と対比し、高い、あるいは低いかを判断する処理を実行する。
【００７５】
また、ステップＳ１１１０の処理では、行全体の文字数の中に占める高確信度の文字の割合を判断している。これによって、たとえば、１行が５文字でこの中に３文字が高確信度の場合と、１行が４０文字でこの中に３文字が高確信度であった場合の信頼度の変動が防止できる。
【００７６】
また、行内の文字の確信度の平均とユーザー設定の閾値（Ｔｈ１）を比較する処理（ステップＳ１１１１，ステップＳ１１１４）によって、パラメーターをできるだけ少なくした簡素な処理手順にでき、ユーザーの意向を反映しやすくなる。
【００７７】
また、行内の文字数のうち、英数文字の行内に含まれる割合を比較する処理（ステップＳ１１１２）によって、英数文字による確信度への影響を低減させている。具体的に説明すると、英数文字では、たとえば、ｂと６、ｑと９、ｏと０、ｓとＳなど、類似している文字が比較的多く、数字に関してはほとんど言語処理が効かない構成上の理由に基づき、確信度は仮名漢字に比べて低めに出る傾向がある。そのため、英数字が行内に多く存在している場合は、平均確信度の判定基準をレベルダウンさせる処理が有効であり、これを用いている。
【００７８】
また、行内の確信度を算出する際に、文字の確信度ではなく、文字行の座標値と別属性の領域との位置重なりを使用する。特に、表領域との重なりを判定（ステップＳ１１０４）を用いている。表領域の内部にある文字行に対しては、以降の低確信度処理全てを実行しないことが有効である。表領域に対する文字認識の結果に、英数字が多く含まれていた場合には、数表を認識させた結果の可能性が高いため、以降の処理で確信度が低く文字を削除する処理を除外することが望ましい。
【００７９】
同様に、図や写真との重なりを判定（ステップＳ１１０５）することによって、図と重なっている文字領域中の１行全体の確信度平均が低いような場合は、図の一部を文字認識したことによるものと判断しやすくなる。ここで、全ての図領域を使うに限らず、たとえば、矩形で表示させたときに画像全面となるような図に対してのみ判定の対象から外す構成としてもよい。
【００８０】
以上説明した低確信度処理で文字かそれ以外を判断する特徴
１）行内平均確信度
２）高確信度文字数
３）高確信度文字数の比率
４）英数文字数
５）ユーザー設定閾値
６）図、表等との重なり
は、これら特徴の少なくとも１つ以上の情報を組み合わせて用い、行の確信度を求めることができる。
【００８１】
また、確信度情報を含む特徴と、文字行が含まれている（重なりのある）領域情報の特徴を使用する場合に、文字行が包含されている領域の種類によって、文字行の確信度情報を比較する閾値を変更させる構成とすることもできる。
【００８２】
なお、本実施の形態で説明した文字認識方法は、あらかじめ用意されたプログラムをパーソナル・コンピューターやワークステーション等のコンピュータで実行することによって実現することができる。このプログラムは、ハードディスク、フロッピー（Ｒ）ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、上記記録媒体を介して、インターネット等のネットワークを介して配布することができる。
【００８３】
【発明の効果】
以上説明したように、本発明によれば、より正確な文字認識結果を得ることが可能となる。
【図面の簡単な説明】
【図１】この発明の本実施の形態にかかる文字認識装置の構成を示すブロック図である。
【図２】この発明の本実施の形態にかかる文字認識装置の文字認識処理の概要手順を示すフローチャートである。
【図３】この発明の本実施の形態にかかる文字認識装置の文字認識処理で行確信度処理をおこなう手順を示すフローチャートである。
【図４】この発明の本実施の形態にかかる文字認識装置の平均確信度を用いた文字／非文字判定の手順を示すフローチャートである。
【図５】この発明の本実施の形態にかかる文字認識装置の平均確信度を用いた文字／非文字判定の手順を示すフローチャートである。
【図６】この発明の本実施の形態にかかる文字認識装置の文字／非文字判定によって領域種別を変更する手順を示すフローチャートである。
【図７】この発明の本実施の形態にかかる文字認識装置の原稿上における各領域の属性を示す図である。
【図８】この発明の本実施の形態にかかる文字認識装置の文字／非文字判定によって文字領域のサイズを変更する手順を示すフローチャートである。
【図９】この発明の本実施の形態にかかる文字認識装置の文字領域のサイズ変更例を示す図である。
【図１０】この発明の本実施の形態にかかる文字認識装置の文字領域のサイズの他の変更例を示す図である。
【図１１】この発明の本実施の形態にかかる文字認識装置の低確信度処理の処理内容を示すフローチャートである。
【符号の説明】
１００  文字認識装置
１０１  スキャナ
１０２  ディスプレイ
１０３  印字装置
１０４  画像メモリ
１０５  ＣＰＵ
１０６  ＲＯＭ
１０７  ＲＡＭ
１０８  辞書
７００  原稿
７０１（７０１ａ〜７０１ｅ，７０１Ａ，７０１Ｂ）  文字領域
７０２  図領域
７０３  表領域
７０４  囲み枠領域
９０１ａ〜９０１ｎ  高確信度行
９０１ｘ  低確信度行
【図１】
0004056745.tif 000002
【図２】
0004056745.tif 000003
【図３】
0004056745.tif 000004
【図４】
0004056745.tif 000005
【図５】
0004056745.tif 000006
【図６】
0004056745.tif 000007
【図７】
0004056745.tif 000008
【図８】
0004056745.tif 000009
【図９】
0004056745.tif 000010
【図１０】
0004056745.tif 000011
【図１１】
0004056745.tif 000012