(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
以下、図面を用いて本発明の実施形態を説明する。
【0019】
図1は、本発明の実施形態の文字認識装置101のハードウェア構成を示すブロック図である。
【0020】
文字認識装置101は、入力装置102、表示装置103、イメージ取得装置104、通信装置105、演算装置106、及び外部記憶装置107を備える。
【0021】
入力装置102は、演算装置106によって実行されるプログラムを制御するためのコマンド、及び、文字認識装置101に接続される外部機器(図示省略)を制御するためのコマンド等を入力するための装置である。入力装置102は、例えば、キーボード又はマウス等である。
【0022】
表示装置103は、処理内容等を適宜表示するディスプレイ装置等である。
【0023】
イメージ取得装置104は、例えば光学スキャナのような、イメージ取得用の装置である。取得したイメージは、例えば、外部記憶装置107等に記憶される。
【0024】
通信装置105は、文字認識装置101に接続される外部機器(例えばPC(Personal Computer)又はサーバ等、図示省略)とデータを通信する。通信装置105は、例えば、外部機器からユーザによって入力された実行コマンド、画像データ及びテキストデータ等を受信する。さらに、通信装置105は、文字認識装置101による処理内容及び文字認識結果等を外部機器に送信してもよい。
【0025】
演算装置106は、外部記憶装置107に記憶されるプログラム等に従って、文字認識等を実行するCPU(Central Processing Unit)である。
【0026】
外部記憶装置107は、HDD(Hard Disk Drive)及びメモリ等の外部記憶装置である。外部記憶装置107には、イメージ取得装置104によって取得された画像データ、演算装置106によって実行されるプログラム、及び、演算装置106によって実行される処理の結果として生成されるデータ等が記憶される。さらに、外部記憶装置107には、演算装置106によって実行される処理の途中で生成されるデータ等も一時的に記憶される。
【0027】
なお、文字認識装置101は、少なくとも演算装置106及び外部記憶装置107を備えていればよく、入力装置102、表示装置103、イメージ取得装置104及び通信装置105の全てを備えなくてもよい。
【0028】
文字認識装置101は、入力装置102を備えない場合、外部機器から通信装置105を介して受けた指示に従って処理を開始してもよいし、指定された時刻に処理を自動的に開始してもよい。
【0029】
文字認識装置101は、表示装置103を備えない場合、通信装置105を介して処理結果を外部機器に送信してもよいし、外部記憶装置107に処理結果を記憶してもよい。
【0030】
処理を実行するモジュール(後述)への入出力は、外部記憶装置107を介して行われてもよい。例えば、処理部1(図示省略)が処理結果を出力し、その処理結果が処理部2(図示省略)に入力される場合、処理部1が処理結果を外部記憶装置107に出力し、外部記憶装置107がその処理結果を記憶し、処理部2が外部記憶装置107に記憶された処理結果を入力として取得してもよい。
【0031】
ユーザは、入力装置102を介して、処理を実行するモジュールを制御することができる。
【0032】
図7は、本発明の実施形態の文字認識装置101が実行する文字認識処理の手順を示すフローチャートである。
【0033】
図7のフローチャートは、文字認識装置101が実行する文字認識処理の概要を示す。各部が実行する具体的な処理内容については
図3等を参照して後述する。
【0034】
文字認識装置101は、伝票、帳票又は一般文書等の文書を入力されると、最初に文書を画像化する(ステップ701)。この処理は、イメージ取得装置104によって行われる。次に、文字認識装置101の前処理部201(後述)が前処理(ステップ702)を実行する。次に、文字列切出部202(後述)がレイアウト解析(ステップ703)及び文字列抽出(ステップ704)を実行する。次に、文字列認識部300(後述)が文字列認識(ステップ705)を実行する。次に、リトライ判定部316(後述)が処理を再試行するか否かを判定し、再試行すると判定された場合は、前処理部201、文字列切出部202及び文字列認識部300の少なくとも一つと、それに続く処理がリトライ(再試行)処理(ステップ706)を実行する。次に、認識結果記録部317及び文書分類部319(後述)が認識後の処理(ステップ707)を実行する。
【0035】
なお、従来の文字認識装置(
図2参照)が実行する処理の手順も、
図7と同様である。ただし、既に説明したように、少なくともステップ705及び706における本実施形態の文字認識装置101の具体的な処理内容は、従来の処理内容と異なる。
【0036】
図2は、従来の文字認識装置が実行する処理の流れを示す機能ブロック図である。
【0037】
従来の文字認識装置は、画像入力部200、前処理部201、文字列切出部202、文字列認識部203、リトライ判定部210、認識結果記録部211、認識結果データベース(DB)212、文書分類部213及び認識用辞書生成部214を備える。文字列認識部203は、文字特徴抽出部204、類似度算出部205、文字認識用辞書206、棄却判定部207、文字列認識部208及び文字列辞書209を含む。認識用辞書生成部214は、文字特徴抽出部204、認識学習用DB216及び認識用辞書生成部217を含む。
【0038】
図2に示す文字認識装置が本実施形態と同様のハードウェア(
図1)によって実現される場合、上記の辞書及びDBは、外部記憶装置107に格納される。一方、上記のうち辞書及びDB以外の各部は、外部記憶装置107に記憶されたプログラムを演算装置106が実行し、必要に応じて入力装置102、表示装置103、イメージ取得装置104、通信装置105、外部記憶装置107及び外部機器(図示省略)等を制御することによって実現される。したがって、以下の説明において上記の各部が実行する処理は、実際には、演算装置106によって実行される。
【0040】
画像入力部200は、イメージ取得装置104として設けられたスキャナ等を用いて、一般文書、帳票又は伝票等の文書を光学的に走査することによって、文書画像イメージを取得する。取得される画像イメージは、カラー画像、グレー画像又は白黒画像等である。さらに、画像入力部200は、特定の色(背景色)等を除去するための処理を実行してもよい。
【0041】
前処理部201は、文書画像の二値化(白黒画像化)、ノイズ除去及び背景処理等を行う。二値化等は公知の方法によって行うことができるため、詳細な説明は省略する。その一例が非特許文献1に記載されている。
【0042】
文字列切出部202は、文書画像中の文字列を探索し、文字列画像を切り出す。一般文書からの文字列探索方法については、例えば非特許文献2に記載されている。帳票からの文字列の探索については、例えば、特許文献1、特許文献2及び非特許文献3に記載されている。例えば、帳票の場合、文字列切出部202は、まず、枠線を探索し、枠線で囲まれた矩形部分を文字列として切り出してもよい。
【0043】
文字列認識部203は、文字列画像から個々の文字の画像を切り出し、それぞれの文字を認識することによって、文字列を文字コード(又は文字を表すコード)の列として出力する。ただし、後述するように、所定の条件が満たされる場合には、文字列認識部203は、文字の認識が困難であると判定し、認識結果を棄却する。この場合、当該文字は「不読」として扱われる。このような文字の認識は公知の方法(例えば非特許文献1参照)によって行うことができる。詳細な処理は、文字特徴抽出部204、類似度算出部205、棄却判定部207及び文字列認識部208によって行われる。
【0044】
文字列辞書209には、読み取り対象となる文字列の辞書が保存され、認識結果は、文字列辞書209に入っている文字列の中から選択される。読み取り対象の例は、住所、日付又は金額等である。例えば住所の場合、読取対象とする全ての住所を表示する文字列が文字列辞書209に格納され、文字列認識部208は、格納された住所を表示する文字列のいずれかを認識結果として選択する。
【0045】
図4は、本発明の実施形態における文字認識の処理の流れの具体例の説明図である。
【0046】
例えば、文書画像として給与明細書等の帳票画像401が入力されると、文字列切出部202が読み取り対象である金額欄401Aの文字列画像402を切り出す。例えば、文字列切出部202は、金額欄401Aの周囲の枠線を探索し、その枠線で囲まれた矩形部分の文字列画像402を切り出す。続いて、文字列認識部203が文字列画像402から個々の文字の画像(例えば文字画像403A)を切り出す。この切り出し(分割)の方法については後述する(
図10等参照)。続いて、文字列認識部203が個々の文字画像に含まれる文字を認識し、電子化された文字列404、例えば金額を表す文字列「7,890,123」が得られる。この認識の方法については後述する(
図13、
図5等参照)。
【0047】
次に、文字列認識部208の処理の例を、
図10を参照しながら説明する。
【0048】
図10は、本発明の実施形態の文字列認識部が実行する文字列の分割の説明図である。
【0049】
文字列認識部208は、文字列画像を文字単位の画像に分割するために、まず、文字列画像を複数のパターンに分割する。
【0050】
図10の文字列1001は、文字列切出部202によって分割され、文字列認識部203に入力された文字列画像の例である。
【0051】
分割結果1002は、文字列1001の分割結果の一例である。ノード1002A〜1002Eは文字列1001の分割点であり、分割結果1002は文字列1001が四つの部分(以下、「パターン」とも記載する)1002F〜1002Iに分割された例を示す。これらの四つのパターンの各々、及び、隣接する複数のパターンを合成することによって得られたパターン(以下、「合成パターン」とも記載する)が文字画像候補となる。
【0052】
各パターン(合成パターンを含む)は、それぞれの先頭に対応するノードと、末尾に対応するノードとの組によって表すことができる。
図10の例では、二つのノードの組が
5C
2=10通り存在するため、10個のパターン(うち6個は合成パターン)が存在する。長い文字列が入力された場合には、分割点の個数が多いために合成パターンの数が膨大になる。この場合、合成パターンの個数を制限することによってその数が膨大になることを防いでもよい。
【0053】
文字候補パターン1003は、上記の四つのパターン1002F〜1002Iに二つの合成パターン1002J〜1002Kを加えた文字候補ネットワークを示す。合成パターン1002Jはパターン1002F及び1002Gの合成であり、合成パターン1002Kはパターン1002G及び1002Hの合成である。
図10の例では存在しうる6個の合成パターンのうち二つのみを示したが、他の合成パターンがさらに追加されてもよい。
【0054】
図10に例示する文字候補パターン1003は、6個の文字候補パターン(すなわちパターン1002F〜1002K)を含む。文字列認識部203は、これらの文字候補パターンの各々について文字認識を行うことによって、正解候補となる文字列を選択する。この文字認識は、文字特徴抽出部204、類似度算出部205及び棄却判定部207によって実行され、その際に文字認識用辞書206が参照される。
【0055】
図11は、本発明の実施形態の文字列認識部によって扱われる文字列正解候補ネットワークの説明図である。
【0056】
図11に示す文字列正解候補ネットワークは、
図10に示す文字候補パターン1003に文字認識の結果を付け加えたものである。例えば、パターン1002Fは、「t」又は「l」と認識される。
【0057】
この文字列正解候補ネットワークの左端のノード1002Aから右端のノード1002Eに到達する各ルートが一つの正解候補文字列となる。例えば、パターン1002F、1002G、1002H及び1002Iをそれぞれ「t」、「l」、「r」及び「l」と認識した場合の文字列「tlrl」、パターン1002F、1002K及び1002Iをそれぞれ「t」、「h」及び「e」と認識した場合の文字列「the」等が正解候補文字列となる。
【0058】
文字列認識部208は、正解候補文字列のうち、文字列辞書209に保存されている文字列の形式に合致するものから、文字認識結果の類似度に基づいて、尤もらしい正解候補文字列を最終的な正解候補として選択する。ただし、文字認識結果の類似度が所定の値より小さい、又は、いずれの正解候補文字列も文字列辞書209に保存された文字列形式に合致しない、等の所定の条件が満たされる場合には、文字認識の結果が棄却され、文字列は不読として扱われる。
【0059】
図12は、本発明の実施形態の文字列辞書209の説明図である。
【0060】
文字列辞書209には、読み取り対象となる文字列を同定するための情報が保存される。しかし、例えば住所に関する辞書において、出現しうる全ての住所の文字列を保存しようとすると、そのデータ量は莫大となるため、トライ型の辞書構造が広く用いられる。
図12には、一例として、英語の曜日を表す7個の単語の辞書を示す。左端のノードから右方向のノードを順次辿って得られる単語が辞書に保存された単語である。同一の文字列を含む部分(例えば「day」)を共有することによって容量が削減される。
【0061】
次に、分割結果として得られた個々のパターン1002F〜1002Kを認識するためのモジュールである文字特徴抽出部204、類似度算出部205、文字認識用辞書206及び棄却判定部207について説明する。
【0062】
文字特徴抽出部204は、文字画像に含まれる文字の特徴をベクトル値x=(x1,x2,・・・,xn)に変換することによって数値化する。画像から特徴を抽出する方法として、画素特徴抽出法、輪郭特徴抽出法又は勾配特徴抽出法等が広く用いられる(非特許文献1参照)。本実施形態ではどのような文字特徴抽出方法が用いられてもよい。最も簡単な文字特徴抽出の例を、
図13を参照しながら説明する。
【0063】
図13は、本発明の実施形態の文字特徴抽出部204による文字特徴抽出方法の説明図である。
【0064】
文字特徴抽出部204は、まず、入力文字画像1301を、所定のサイズの画像1302に正規化する。正規化の方法としては、線形正規化法、モーメント正規化法、非線形正規化法などがあり(非特許文献1参照)、どれを使用してもよい。最も単純な線形正規化法を用いた場合、入力文字画像1301を拡大又は縮小することによって、所定のサイズの正規化画像1302を生成する。
【0065】
次に、文字特徴抽出部204は、正規化画像1302をベクトル値に変換する。変換方法としては、チェインコードを用いた輪郭特徴抽出法、勾配特徴抽出法、画素特徴抽出法などがあり(非特許文献1参照)、どれを使用してもよい。ここでは、最も単純な画素特徴抽出法について説明する。文字特徴抽出部204は、正規化画像1302を、部分矩形小領域1303に分割し、各小領域の画素値の総和をベクトルの要素として算出する。
図13の例では、正規化画像1302が8×8=64の部分矩形小領域1303に分割され、64個の数値がベクトルの要素として算出される。このため、文字の特徴を表すベクトルの次元数は64となる。
【0066】
類似度算出部205は、文字特徴抽出部204から上記のようにして算出されたベクトルが入力された場合、文字認識用辞書206を参照し、文字候補パターンの各読み取り対象文字種に対する、入力されたベクトル(以下、入力ベクトルxと記載する)の類似度を算出する。文字認識用辞書206には、認識対象となる文字種ごとに、入力ベクトルxの当該文字種に対する類似度を計算するための関数が保存されている。
【0067】
例えば、「0」から「9」までの10種の数字が認識対象である場合、文字認識用辞書206には、入力がn次元ベクトル、出力が実数値となる10個の関数
f0(x)
f1(x)
f2(x)
・・・
f9(x)
が保存されている。関数fi(x)は、ベクトルxの数字iに対する類似度を出力する。文字認識用辞書206は、認識用辞書生成部214によって予め生成される。類似度算出結果の例について、
図5を参照して説明する。
【0068】
図5は、本発明の実施形態の類似度算出部による類似度算出結果の説明図である。
【0069】
図5の例では、入力ベクトルxとの類似度が高い順に、各読み取り対象文字種が候補文字種として表示される。列501には、入力ベクトルxに対応する文字画像が表示される。
【0070】
例えば、入力ベクトルxが文字画像403A(
図4参照)の特徴を表すベクトルである場合、1位候補文字種(列502)、1位候補文字類似度(列503)、2位候補文字種(列504)及び2位候補文字類似度(列505)はそれぞれ「7」、「93」、「1」及び「68」である。これは、文字画像403Aの特徴を表すベクトルxについて上記のf0(x)〜f9(x)を計算した結果、f7(x)の値(すなわち文字画像403Aと数字「7」との類似度)が最も大きい「93」であり、f1(x)の値が2番目に大きい「68」であることを示す。
【0071】
類似度算出部205は、上記のようにして算出された1位候補文字種、1位候補文字類似度、2位候補文字種及び2位候補文字類似度を出力する。
図5では省略されているが、類似度算出部205は、同様にして、3位以下の候補文字列及びその類似度も算出し、出力する。
【0072】
棄却判定部207は、類似度算出部205による計算結果に基づいて、認識結果を棄却するか否かを判定する。ここで、従来の棄却判定方法について説明する。
【0073】
上記のように、類似度算出部205は、切り出された各文字画像について、各読み取り対象文字種との類似度を算出する。このため、最も類似度が高い文字種を、認識結果として出力することもできる。しかし、実際には、例えば、著しく劣化した文字画像が入力されること、誤った位置で切り出された文字画像が入力されること、又は、非文字が文字として誤って切り出されて入力されること、などが起こりうる。このような文字画像を正しく認識することは困難又は不可能である。このような場合にも、類似度を計算することはできるため、その類似度に基づいて強制的にいずれかの文字として認識することはできる。しかし、認識の精度(信頼性)がある程度低い(言い換えると誤読の可能性がある程度高い)と予測される場合には無理に認識せずにその認識結果を棄却し、その文字を不読文字として扱うことが望ましい場合もある。
【0074】
例えば、1位候補文字類似度と2位候補文字類似度とがほぼ同じであれば、認識結果が曖昧であるため、認識の精度が低いと予測される。あるいは、1位候補文字類似度が著しく低い場合にも認識の精度が低いと予測される。棄却判定部207は、このような場合に認識結果を棄却することができる。
【0075】
以下、棄却について具体的に説明する。以下の説明において、1位候補文字種をm1、2位候補文字種をm2と記載する。
【0076】
1位候補文字類似度と2位候補文字類似度との差が、予め定められた閾値h1より小さい場合、すなわち、
fm1(x)−fm2(x)<h1
となる場合、棄却判定部207は、認識結果に曖昧性があるために認識の精度が低いと判定して、その認識結果を棄却する。
【0077】
また、1位候補文字類似度が、予め定められた閾値h2より小さい場合、すなわち、
fm1(x)<h2
となる場合、棄却判定部207は、1位候補文字類似度が低い(すなわち、認識の精度が低い)と判定して、その認識結果を棄却する。
【0078】
リトライ判定部210は、認識に失敗した(すなわち認識結果が棄却された)場合、又は認識結果の信頼性が低い場合に、パラメータ等を変更して処理を再試行するか否かを判定する。再試行すると判定された場合、前処理部201以降のいずれかの処理、及びそれに続く処理が再度実行される。
【0079】
例えば、文字列認識部203の棄却判定部207によって認識結果が棄却され、不読と判定された場合に、リトライ判定部210は、処理を再試行すると判定してもよい。前処理部201及びそれに続く処理が再試行される場合、前処理部201において、例えば、前回の試行のときと異なる二値化のパラメータが使用されてもよいし、異なるノイズ除去方法が使用されてもよい。このようにパラメータ等を変更することによって、前回とはことなる画像を得ることができ、その結果、認識に成功する場合もある。
【0080】
認識結果記録部211は、認識結果を認識結果DB212に保存する。認識結果とともに入力画像を保存してもよい。具体的には、例えば、
図5に示す情報がそのまま認識結果DB212に保存されてもよい。すなわち、列501に入力画像が、列502以降に、それぞれの順位の候補文字種及びその類似度が保存される。
【0081】
文書分類部213は、認識結果に基づいて文書を分類する。例えば、文書分類部213は、認識結果として得られた金額の大小、認識されたID又は住所等に基づいて文書を分類してもよい。また、棄却された文字を含む文書は、後のリトライのために、他の文書と区別するように分類してもよい。
【0082】
認識用辞書生成部214は、認識学習用DB216を用いて、文字列認識部203によって用いられる文字認識用辞書206を生成する。
【0083】
認識学習用DB216には、文字種ラベル付きの文字画像が保存されている。保存される文字画像の例については後述する(
図8参照)。一般に、保存される文字画像は多いほどよく、例えば読み取り対象文字種ごとに1000個以上の画像が保存されていることが望ましい。
【0084】
認識用辞書生成部214内の文字特徴抽出部204は、文字列認識部203内の文字特徴抽出部204と同様の処理を実行する。すなわち、認識用辞書生成部214内の文字特徴抽出部204は、認識学習用DB216に保存されている各文字画像をベクトル値に変換する。変換されたベクトル値とそれに対応する文字種ラベルとのセットの集合は、認識用辞書生成部217によって、読み取り対象文字種ごとの類似度を計算するための関数を生成するために用いられる。
【0085】
認識用辞書生成部217は、認識用辞書生成部214によって計算されたベクトル値と文字種ラベルとのセットの集合を用いて、文字種ごとの類似度を計算するための関数を生成する。例えば文字種数がC個である場合、C個の関数
f1(x)
f2(x)
・・・
fC(x)
が生成される。fi(x)は、i番目の文字種を表す文字画像から抽出されたベクトルxが入力された場合に高い値を出力するように、学習によって生成された関数である。この学習は、公知の方法によって行われる。
【0086】
次に、本発明の実施形態の文字認識装置101について説明する。
【0087】
図3は、本発明の実施形態の文字認識装置101が実行する処理の流れを示す機能ブロック図である。
【0088】
本実施形態の文字認識装置101は、画像入力部200、前処理部201、文字列切出部202、文字列認識部300、リトライ判定部316、認識結果記録部317、認識結果DB318、文書分類部319及び辞書生成部320を備える。
【0089】
文字列認識部300は、文字特徴抽出部301、類似度算出部302、文字認識用辞書303、棄却判定部313、類別1特徴抽出部304、類別1劣化度算出部305、類別1劣化判定用辞書306、類別2特徴抽出部307、類別2劣化度算出部308、類別2劣化判定用辞書309、類別N特徴抽出部310、類別N劣化度算出部311、類別N劣化判定用辞書312、文字列認識部315及び文字列辞書209を含む。
【0090】
辞書生成部320は、文字特徴抽出部301、認識学習用DB321、認識用辞書生成部322、類別1劣化学習用DB323、類別1特徴抽出部304、類別1劣化判定用辞書生成部324、類別N劣化学習用DB325、類別N特徴抽出部310、類別N劣化判定用辞書生成部326及び棄却制御用辞書生成部327を含む。
【0091】
なお、
図3にはその全てが記載されていないが、実際には、文字列認識部300は、1からNまでの各類別について、特徴抽出部、劣化度算出部及び劣化判定用辞書を含み、辞書生成部320は、1からNまでの各類別について、劣化学習用DB、特徴抽出部及び劣化判定用辞書生成部を含む。以下の説明において、類別k(kは1からNのいずれか)に関する特徴抽出部、劣化度算出部、劣化判定用辞書、劣化学習用DB及び劣化判定用辞書生成部を、それぞれ、類別k特徴抽出部、類別k劣化度算出部、類別k劣化判定用辞書、類別k劣化学習用DB及び類別k劣化判定用辞書生成部とも記載する。なお、類別(すなわち劣化又は非文字の種類)については後述する。
【0092】
図3に示す文字認識装置101のハードウェア構成は、
図1に示したとおりである。したがって、上記の辞書及びDBは、外部記憶装置107に格納される。一方、上記のうち辞書及びDB以外の各部は、外部記憶装置107に記憶されたプログラムを演算装置106が実行し、必要に応じて入力装置102、表示装置103、イメージ取得装置104、通信装置105、外部記憶装置107及び外部機器(図示省略)等を制御することによって実現される。したがって、以下の説明において上記の各部が実行する処理は、実際には、演算装置106によって実行される。
【0093】
図3に示す各部のうち、画像入力部200、前処理部201、文字列切出部202、及び、文字列認識部300内の文字列辞書209は、それぞれ
図2に示した画像入力部200、前処理部201、文字列切出部202及び文字列辞書209と同様であるため、これらについての説明は省略する。また、
図10〜
図13等を参照する従来の文字列認識部203の基本的な機能に関する説明は、本実施形態の文字列認識部300にも適用される。以下、文字列認識部300が実行する処理のうち、文字列認識部203と共通する部分については説明を省略し、文字列認識部203と相違する部分について説明する。
【0094】
本実施形態では、まず、入力された文字画像に文字の認識を困難とするような劣化が発生している場合、又は、切り出された文字列が非文字を含んでいる場合に、その劣化又は非文字の種類が分類される。劣化の種類としては、例えば文字のかすれ及びつぶれ等が挙げられる。一方、非文字の種類としては、次のような例が挙げられる。
【0095】
帳票等の文書の画像が入力された場合、特定の種類の非文字が頻繁に出現する。例えば、文字が罫線と接触したために罫線を含む画像が文字画像として切り出された場合、複数の文字の重なりを含む画像が文字画像として切り出された場合、読み取り対象でない文字の画像が切り出された場合、隣接する複数の文字が接触したためにそれらの文字の画像(又はその一部)が一つの文字画像として切り出された場合、等に、それらの文字画像が非文字として扱われる。ここで、読み取り対象でない文字とは、例えば数字が記入されるはずの欄に記入された漢字等である。隣接する文字の接触の一例は、文字「t」の全体と「h」の一部とが接触することによって出現した
図10の合成パターン1002Jである。
【0096】
本実施形態において、文字の劣化の種類として特に「かすれ」及び「つぶれ」を例示するが、それらの例示は非文字を排除するものではない。すなわち、本実施形態における劣化の種類に関する記述は、上記のような非文字の種類(言い換えると罫線との接触等に起因する文字の劣化の種類)にも適用することができ、類別k特徴抽出部、類別k劣化度算出部、類別k劣化判定用辞書、類別k劣化学習用DB及び類別k劣化判定用辞書生成部の「類別」は、非文字の種類を含んでもよい。
【0097】
図9は、本発明の実施形態において分類される文字画像の劣化の種類の説明図である。
【0098】
本実施形態では、文字画像の劣化がかすれ901とつぶれ902に分類される。例えば白い背景に黒い文字が表示される白黒文字画像において、本来文字の一部であるはずの画素が白くなり、背景と同化するような劣化が「かすれ」、本来背景の一部であるはずの画素が黒くなり、文字と同化するような劣化が「つぶれ」と呼ばれる。このような劣化は、例えば、フォント、紙質、スキャナの種類、スキャナの設定、前処理時の二値化の方法、又は二値化のパラメータなどの影響によって発生する。
【0099】
図9には、かすれ901の例としてかすれ文字901A〜901Cを、つぶれ902の例としてつぶれ文字902A〜902Cを示す。かすれ文字901A〜901Cは、それぞれ、「岩」、「宇」及び「業」が劣化したものであり、かすれによって線の途切れ等が発生している。つぶれ文字902A〜902Cは、それぞれ、「書」、「5」及び「3」が劣化したものであり、つぶれによって、線に囲まれた空白部分の消滅、線の連結等が発生している。
【0100】
図9には、劣化の種類の例としてかすれ901とつぶれ902の2種類を示したが、本実施形態では、文字画像の劣化がそれ以外の種類に分類されてもよい。以下、文字画像の劣化がN個の種類(すなわち類別1、類別2、・・・、類別N)に分類される例を説明する。それらのうち一つがかすれ901であり、別の一つがつぶれ902であってもよい。
【0101】
文字列認識部300は、文字列画像から個々の文字の画像を切り出し、それぞれの文字を認識することによって、文字列を文字コード(又は文字を表すコード)の列として出力する。所定の条件が満たされる場合には、文字列認識部300は、文字の認識が困難であると判定し、認識結果を棄却する。この場合、当該文字は「不読」として扱われる。
【0102】
さらに、本実施形態の文字列認識部300は、切り出された個々の文字画像について、劣化の種類ごとの劣化度を出力する。この劣化度は、後の処理の制御に用いられる。
【0103】
以下、文字列認識部300の内部モジュールの処理について説明する。
【0104】
文字列認識部315は、文字列画像から個々の文字の画像を切り出し、それぞれの文字を認識することによって、文字列を文字コードの列として出力する。文字列辞書209には、読み取り対象となる文字列の辞書が保存され、文字列認識部315は、文字列辞書209に入っている文字列いずれかを認識結果として選択する。読み取り対象の例は、住所、日付又は金額等である。所定の条件が満たされる場合には、文字列認識部300は、文字の認識が困難であると判定し、認識結果を棄却する。この場合、当該文字は「不読」として扱われる。さらに、文字列認識部300は、個々の文字画像について、劣化の種類ごとの劣化度を出力する。これらの処理の詳細を説明する。
【0105】
文字列認識部315は、まず、文字列画像を文字候補パターン1003(
図10参照)のように分割する。文字特徴抽出部301は、分割された各パターンの特徴を表すベクトルを算出し、類似度算出部302は、文字認識用辞書303を参照して、算出されたベクトルの各読み取り対象文字種に対する類似度を算出する。これらの処理は、
図2の文字特徴抽出部204及び類似度算出部205が文字認識用辞書206を参照して行う処理と同様であってよい。
【0106】
さらに、類別1特徴抽出部304が、分割された各パターンの特徴を表すベクトルを算出し、類別1劣化度算出部305が、類別1劣化判定用辞書306を参照して、各パターンにおける第1の種類の劣化の程度(すなわち類別1劣化度)を算出する。同様に、類別2特徴抽出部307が、分割された各パターンの特徴を表すベクトルを算出し、類別2劣化度算出部308が、類別2劣化判定用辞書309を参照して、各パターンにおける類別2劣化度を算出する。類別N特徴抽出部310が、分割された各パターンの特徴を表すベクトルを算出し、類別N劣化度算出部311が、類別N劣化判定用辞書312を参照して、各パターンにおける類別N劣化度を算出する。
【0107】
例えば第1の種類の劣化が「かすれ」、第2の種類の劣化が「つぶれ」によるものであってもよい。類別k特徴抽出部(kは1からNのいずれであってもよい、以下同様)は、文字特徴抽出部301と同様の方法で各パターンの特徴を表すベクトルを算出してもよいが、それぞれの種類の劣化度(類別k劣化度)の算出に適した方法を使用してもよい。
【0108】
文字列認識部315は、あるパターンの認識結果が棄却された後、リトライ判定部316によって処理を再試行すると判定された場合、当該パターンの類別k劣化度及び当該パターンの各文字種に対する類似度に基づいて、処理の方法を変更し、類似度及び劣化度を再計算することができる。これについて例を挙げて説明する。
【0109】
いずれかの文字候補パターンの認識結果が棄却判定部313によって棄却された場合、文字列認識部315は、劣化の種類ごとの劣化度に基づいて、文字候補パターンの認識処理を再試行してもよい。
【0110】
例えば、かすれに起因する劣化度が大きい場合には、かすれた文字に適した方法で、当該文字候補パターンの画像の前処理(二値化、ノイズ除去等)を行うことによって、よりきれいな(すなわち正しく認識しやすい)文字候補パターンの画像を得ることができる場合がある。例えば、かすれの場合には、前処理部201が、孤立点ノイズ除去処理を弱める(又はなくす)、黒と判定されやすいように二値化の閾値を変更する、などの処理を行ってもよい。これによって、かすれの影響の少ない文字候補パターンの画像を得られる場合がある。
【0111】
同様に、つぶれに起因する劣化度が大きい場合には、つぶれの影響が少ない文字候補パターンを得やすい前処理を実行することができる。
【0112】
このようにして得られた文字候補パターン画像に対して、類似度算出部302及び類別k劣化度算出部が類似度及び劣化度を再計算する。
【0113】
なお、認識結果が棄却されなかった場合であっても、ある種類の劣化度が大きい場合には、その種類の劣化の影響が少なくなる方法によって前処理を実行することができる。
【0114】
上記と同様に、ある種類の劣化が原因で文字候補パターンの認識結果が棄却された場合、又は棄却はされなくてもある種類の劣化度が大きい場合に、その種類の劣化に適した方法で類似度算出部302が各読み取り対象文字種に対する類似度を算出する。この場合、文字特徴抽出部301、類似度算出部302及び文字認識用辞書303は、当該種類の劣化が発生した文字の認識に適した特徴抽出方法、類似度算出方法及び認識用辞書を備える。
【0115】
文字特徴抽出部301は、文字画像に含まれる文字の特徴をベクトル値x=(x1,x2,・・・,xn)に変換することによって数値化する。画像から特徴を抽出する方法として、画素特徴抽出法、輪郭特徴抽出法、勾配特徴抽出法又はガボール特徴抽出法等を用いることができる。それぞれの方法に基づく特徴量の抽出処理は、文字特徴抽出部204(
図2参照)が実行するものと同様であってよい。
【0116】
本実施形態の文字特徴抽出部301は、さらに、劣化の種類に応じて、それに適した特徴抽出方法を選択して適用してもよい。例えば、文字列認識部315による文字候補パターンの認識が再試行される場合に、判定された劣化の種類に応じて適切な特徴抽出方法が選択される。
【0117】
例えば、ガボール特徴抽出法は、計算量が多いが、かすれた文字の認識に適していることが知られている。このため、通常時は計算量の少ない勾配特徴抽出法又は輪郭特徴抽出法等を用い、文字列認識部315においてかすれに起因する文字候補パターンの劣化が大きいと判定され、認識が再試行される場合には、ガボール特徴抽出法を用いてもよい。
【0118】
類似度算出部302は、文字特徴抽出部301から上記のようにして算出されたベクトルが入力された場合、文字認識用辞書303を参照し、文字候補パターンの各読み取り対象文字種に対する、入力されたベクトル(入力ベクトルx)の類似度を算出する。文字認識用辞書303には、認識対象となる文字種ごとに、入力ベクトルxの当該文字種に対する類似度を計算するための関数が保存されている。このような類似度の算出処理は、類似度算出部205(
図2参照)が実行するものと同様であってよい。
【0119】
本実施形態の類似度算出部302は、さらに、劣化の種類に応じて、それに適した類似度算出方法を選択して適用してもよい。例えば、文字列認識部315による文字候補パターンの認識が再試行される場合に、判定された劣化の種類に応じて適切な類似度算出方法が選択される。
【0120】
劣化の種類に応じた類似度算出の一例を説明する。文字認識用辞書303に、認識学習用DBに格納された高品質の文字パターンを用いて学習された類似度計算用の関数と、劣化した文字(例えばかすれた文字又はつぶれた文字)を用いて学習された類似度計算用の関数とが保存される。例えば、認識対象の文字種ごとに、かすれた文字と入力ベクトルxとの類似度を計算するための関数が保存される。類似度算出部302は、通常時には、高品質の文字パターンを用いて学習された関数を用いて類似度を算出し、かすれに起因する劣化が大きいと判定され、認識が再試行される場合には、かすれた文字を用いて学習された関数を用いて類似度を算出する。
【0121】
類別k特徴抽出部(すなわち、類別1特徴抽出部304、類別2特徴抽出部307及び類別N特徴抽出部310等)は、文字画像に含まれる文字の特徴をベクトル値x=(x1,x2,・・・,xn)に変換することによって数値化する。画像から特徴を抽出する方法として、画素特徴抽出法、輪郭特徴抽出法、勾配特徴抽出法又はガボール特徴抽出法等を用いることができる。この方法は、文字特徴抽出部301によって使用されるものと同様であってもよい。ただし、ここで算出される特徴は、後述するように劣化度の算出に用いられるため、劣化を低減するためのぼかし処理等は実行しないことが望ましい。
【0122】
類別k劣化度算出部(すなわち、類別1劣化度算出部305、類別2劣化度算出部308及び類別N劣化度算出部311等)は、類別k劣化判定用辞書(すなわち、類別1劣化判定用辞書306、類別2劣化判定用辞書309及び類別N劣化判定用辞書312等)を参照して、文字候補パターンの類別k劣化度を算出する。類別k劣化判定用辞書には、入力ベクトルxの類別k劣化度を計算するための関数が保存されている。
【0123】
読み取り対象文字種ごとに劣化度を計算する関数が用意されてもよいし、全読み取り対象文字種に共通の関数が使用されてもよい。
【0124】
例えば、「0」〜「9」の10種の数字が認識対象であり、読み取り対象文字種ごとに劣化度を算出する関数が用意される場合、類別k劣化判定用辞書には、入力がn次元ベクトル、出力が実数値となる10個の関数
g0(x)
g1(x)
g2(x)
・・・
g9(x)
が保存されている。関数gi(x)は、ベクトルxの数字iに対する類別k劣化度を出力する。
【0125】
一方、全読み取り対象文字種に共通の関数が使用される場合、類別k劣化判定用辞書には、入力がn次元ベクトル、出力が実数値となる1個の関数
g(x)
が保存されている。
【0126】
ここで、類別k劣化度の計算について説明する。読み取り対象文字種ごとに劣化度を算出する関数が用意される場合、類別k劣化度算出部は、ベクトルxとの類似度が最も高い文字種cについて、gc(x)を計算することによって、類別k劣化度を算出する。例えば、
図5に示すように、画像403Aの特徴を表すベクトルxとの類似度が最も高い文字種が「7」であった場合、類別k劣化度算出部は、g7(x)を類別k劣化度として計算する。一方、全読み取り対象文字種に共通の関数が使用される場合、類別k劣化度算出部は、g(x)を計算することによって、類別k劣化度を算出する。
【0127】
棄却判定部313は、読み取り対象文字種ごとの類似度及び劣化の種類ごとの劣化度に基づいて、認識結果を棄却するか否かを判定する。棄却制御用辞書314には、類似度及び劣化度に基づいて棄却判定を行うために参照される情報が保存されている。具体的には、棄却制御用辞書314には、読み取り対象文字種ごとの類似度及び劣化の種類ごとの劣化度を入力されると、棄却スコア(実数値)を出力する関数pと、棄却スコアに基づいて棄却するか否かを判定するための閾値と、が保存されている。閾値は、文字種ごとに異なっていてもよいし、全文字種に共通であってもよい。
【0128】
棄却スコアは、類似度及び劣化度を引数としてpの値を計算することによって得られる。棄却の判定は、例えば次のように行われる。文字種ごとに異なる閾値が用いられる場合、文字種iの閾値をhi、1位候補文字種をmとすると、棄却判定部313は、p>hmの場合に認識結果を棄却し、それ以外の場合に認識結果を棄却しないと判定する。一方、全文字種に共通の閾値hが用いられる場合、棄却判定部313は、p>hの場合に認識結果を棄却し、それ以外の場合に認識結果を棄却しないと判定する。
【0129】
例えば、かすれに起因する劣化度の影響を受けやすい(すなわちかすれに起因する劣化度の大きさに応じて出力が大きくなりやすい)関数pを使用すれば、かすれた文字が棄却されやすくなり、それによって文字のかすれによる誤読を防ぐことができる。
【0130】
リトライ判定部316は、認識に失敗した(すなわち認識結果が棄却された)場合、又は、認識に失敗していなくても、認識結果の信頼性がある程度低い場合に、パラメータ等を変更して処理を再試行するか否かを判定する。再試行すると判定された場合、前処理部201、文字列切出部202及び文字列認識部300のいずれかの処理、及びそれに続く処理が再度実行される。
【0131】
リトライ判定部316は、リトライ判定部210(
図2参照)と同様に、処理を再試行するか否かを判定してもよい。ただし、リトライ判定部316は、さらに、文字画像の劣化の種類に応じて、再試行の方法(具体的には、どの処理を再試行するか、及び、再試行の際に使用するパラメータ等)を制御する。
【0132】
例えば、文字列認識部300の棄却判定部313によって認識結果が棄却された場合に、リトライ判定部316は、前処理部201以降の処理を再試行すると判定してもよい。このとき、リトライ判定部316は、劣化の種類ごとの劣化度に基づいて、処理の方法を制御してもよい。例えば、かすれによる劣化度が大きい場合には、かすれに適した方法で文字画像の前処理(二値化及びノイズ除去等)を行うように前処理部201を制御してもよい。
【0133】
例えば、前処理部201は、かすれによる劣化度が大きい(例えば所定の閾値より大きい)場合に、孤立点ノイズ除去処理を弱める(又は実行しない)、又は、二値化の閾値を、黒と判定されやすい方向に変更する、などのパラメータ等の変更を行った上で、前処理を実行する。これによって、かすれの影響の少ない二値画像が得られ、その結果、認識に成功する場合がある。逆に、つぶれによる劣化度が大きい場合に、前処理部201は、孤立点ノイズ除去処理を強める、又は、二値化の閾値を、白と判定されやすい方向に変更する、などのパラメータ等の変更を行った上で、前処理を実行してもよい。
【0134】
同様に、認識結果が棄却されない場合でも、いずれかの種類の劣化度が大きい場合には、その劣化の種類に適した方法で前処理が行われる。
【0135】
認識結果記録部317は、認識結果DB318に認識の結果を記録する。ただし、認識結果が棄却された場合には、認識結果が棄却されたことを示す情報、及び、棄却の要因を示す情報(具体的には、例えば類別k劣化度等)を記録してもよい。
【0136】
例えば、認識結果記録部317は、認識結果として
図5に示したものと同様の情報を記録し、さらに、
図6に示す情報を記録してもよい。
【0137】
図6は、本発明の実施形態の認識結果DB318に記録される文字認識結果の説明図である。
【0138】
列601は、
図5の列501と同様であり、入力された文字画像が記録される。
【0139】
列602には、各文字画像の認識結果の曖昧度を示す値が記録される。例えば、1位候補文字類似度(
図5の列503)と2位候補文字類似度(
図5の列505)との差が小さいほど大きくなるように計算された値が曖昧度として列602に記録されてもよい。
【0140】
列603には、各文字画像の類似度及び類別1劣化度に基づいて前述の関数pによって計算された棄却スコアが記録される。また、列604には、各文字画像の類別1劣化度が記録される。
図6では省略されているが、さらに、類別2劣化度から類別N劣化度が同様に認識結果DB318に記録される。
【0141】
文書分類部319は、
図2に示した文書分類部213と同様に、認識結果に応じて文書を分類する。ただし、文書分類部319は、棄却された文字を含む文書を、棄却の要因に応じて分類してもよい。具体的には、文書分類部319は、劣化度に基づいて、文書を、それに含まれる文字の劣化の種類ごとに分類してもよいし、劣化の程度のランクごとに分類してもよい。
【0142】
なお、本実施形態の文字認識装置101は、計算された劣化度又はそれに基づいて行われた棄却の判定結果を、表示装置103を介して出力してもよい。例えば、文字認識装置101は、棄却すると判定された文字について、認識結果の文字種の代わりに、その文字が棄却されたことを示す記号等を表示してもよいし、さらに、その棄却の原因となった劣化の種類及び劣化度等を表示してもよい。棄却の原因となった劣化の種類とは、例えば、類別1劣化度から類別N劣化度のうち所定の閾値を超えるものに対応する劣化の種類であってもよいし、類別1劣化度から類別N劣化度のうち最大のものに対応する劣化の種類であってもよい。
【0143】
次に、本実施形態において使用される辞書の生成について説明する。
【0144】
辞書生成部320は、認識学習用DB321及び類別k劣化学習用DB(すなわち類別1劣化学習用DB323及び類別N劣化学習用DB325等)を用いて、文字認識用辞書303、類別k劣化判定用辞書(すなわち類別1劣化判定用辞書306、類別2劣化判定用辞書309及び類別N劣化判定用辞書312等)及び棄却制御用辞書314を生成する。生成された辞書は、文字列認識部300において、文字列認識及び棄却判定等のために参照される。
【0145】
認識用辞書生成部322は、認識学習用DB321を用いて、文字列認識部300によって用いられる文字認識用辞書303を生成する。その生成方法は、
図2の認識用辞書生成部217が実行するものと同様であってよい。
【0146】
認識学習用DB321には、
図2の認識学習用DB216と同様に、文字種ラベル付きの文字画像が保存されている。ただし、後述するように、本実施形態の認識学習用DB321には、高品質な文字画像に加えて、劣化した文字画像が保存されてもよい。
【0147】
辞書生成部320内の文字特徴抽出部301は、文字列認識部300内の文字特徴抽出部301と同様の処理を実行する。すなわち、辞書生成部320内の文字特徴抽出部301は、認識学習用DB321に保存されている各文字画像をベクトル値に変換する。変換されたベクトル値とそれに対応する文字種ラベルとのセットの集合は、認識用辞書生成部322によって、読み取り対象文字種ごとの類似度を計算するための関数を生成するために用いられる。
【0148】
さらに、認識用辞書生成部322は、全て又は一部の劣化の種類に適した、類似度を算出するための関数を生成してもよい。この関数は、文字列認識部315が、文字候補パターンの認識を、劣化の種類に応じて再試行するために使用される。その場合、認識用辞書生成部322は、劣化した文字について、認識対象の文字種ごとに、入力ベクトルxの当該文字種に対する類似度を計算するための関数を生成する。
【0149】
例えば、認識学習用DB321に、高品質な(すなわち劣化していないか、又は劣化の少ない)文字画像と、劣化した文字画像とが保存され、認識用辞書生成部322は、通常の文字認識の際に類似度を算出するために使用される関数を生成する場合には、高品質な文字画像のみを学習に使用し、劣化した文字画像の認識の際(例えば認識が再試行されるとき)に使用される関数を生成する場合には、劣化した文字画像のみを学習に使用してもよい。
【0150】
具体的には、例えば、認識学習用DB321に、
図8の文字画像802に示すようなサンプルが高品質文字画像として、文字画像803及び804に示すようなサンプルが劣化文字画像として保存されてもよい。この場合、文字特徴抽出部301が文字画像802などの高品質文字画像の各々から、その特徴を表すベクトルxを抽出し、認識用辞書生成部322が、高品質な文字画像に関して文字種ごとの類似度を計算するための関数fi(x)を生成し、文字認識用辞書303に保存する。関数fiは、i番目の文字種を表す高品質文字画像から抽出されたベクトルxが入力された場合に高い値を出力するように、サポートベクトルマシンなどのアルゴリズムによって、学習により生成される。さらに、文字特徴抽出部301が文字画像803又は804などの劣化文字画像の各々から、その特徴を表すベクトルxを抽出し、認識用辞書生成部322が、劣化文字画像に関して文字種ごとの類似度を計算するための関数fi(x)を生成し、文字認識用辞書303に保存する。
【0151】
例えば、類似度算出部302は、通常、高品質な文字画像に関する類似度を計算するための関数fi(x)を使用して、入力された文字画像の各文字種との類似度を計算し、リトライ判定部316が処理を再試行すると判定した場合において、かすれによる劣化度が所定の閾値を超えると判定された場合には、かすれによる劣化度が1又は2の文字画像803又は804に関する類似度を計算するための関数fi(x)を使用して、入力された文字画像の各文字種との類似度を計算する。
【0152】
類別k劣化判定用辞書生成部(すなわち類別1劣化判定用辞書生成部324及び類別N劣化判定用辞書生成部326等)は、類別k劣化学習用DB(すなわち類別1劣化学習用DB323及び類別N劣化学習用DB325等)を用いて、文字列認識部300によって使用される類別k劣化判定用辞書(すなわち類別1劣化判定用辞書306及び類別N劣化判定用辞書312等)を生成する。類別k劣化判定用辞書には、入力ベクトルxの類別k劣化度を計算するための関数が保存されている。劣化度を計算する関数は、読み取り対象文字種ごとに用意されてもよいし、全読み取り対象文字種に共通の一つの関数が用いられてもよい。
【0153】
以下、全読み取り対象文字種に共通の一つの関数が用いられる場合の、劣化度を計算する関数の生成方法を説明する。読み取り対象文字種ごとに関数を生成する場合には、以下の手順を文字種ごとに行えばよい。
【0154】
類別k劣化学習用DBには、劣化した文字画像が、その劣化の度合いを示す数値と共に保存される。例えば、類別1が「かすれ」である場合、かすれによって劣化した文字画像が類別1劣化学習用DB323に保存される。
【0155】
図8は、本発明の実施形態において扱われる劣化した文字画像の説明図である。
【0156】
文字画像801は、劣化した文字画像の例であり、例えば、「納期限 平成」の文字列のうち、「納期限」の文字画像には、かすれのためにいくつかの線の消滅及び線の途切れ等が発生している。一方、「平成」の文字画像にはかすれ、つぶれ等の劣化は発生していない。
【0157】
文字画像802〜804は、劣化学習用DBに保存される文字画像の例を示す。
【0158】
文字画像802は、劣化度が小さい(又は劣化していない)文字画像の例である。例えば、文字画像802Aは、文字種「7」の画像であり、文字種ラベル802Bは、文字画像802Aが文字種「7」の画像であることを示す。
【0159】
文字画像803及び804は、かすれによる劣化が発生した文字画像の例である。文字画像802の劣化度より文字画像803の劣化度が大きく、文字画像804の劣化度はさらに大きい。ここでは、文字画像802、803及び804の劣化度を、それぞれ0、1及び2と記載する。劣化度を示す情報も類別k劣化学習用DBに保存される。
【0160】
なお、文字画像802、803及び804と同様の文字画像及び劣化度を示す情報が、認識学習用DB321にも保存されてよい。文字画像802が劣化していない文字画像である場合、類別k劣化学習用DBは文字画像802を含まなくてもよい。
【0161】
同様に、つぶれ等、他の種類の劣化が発生した文字画像も、それぞれの種類に対応する類別k劣化学習用DBに格納される。
【0162】
入力ベクトルxの劣化度を計算するための関数g(x)は、劣化度を目的変数、類別k特徴抽出部によって抽出されたベクトルxを説明変数として、類別k劣化学習用DBを用いて回帰学習を行うことによって生成される。その結果、g(x)は、学習に用いた文字画像と同じ種類の劣化が大きいほど大きい値を出力する傾向を持つ関数となる。
【0163】
例えば、類別1が「かすれ」である場合、類別1特徴抽出部304は、文字画像803(又は804)の特徴を表すベクトルxを抽出する。類別1劣化判定用辞書生成部324は、類別1劣化度を目的変数、上記の抽出されたベクトルxを説明変数として回帰学習を行うことによって、類別1劣化度を計算するための関数g(x)を生成し、類別1劣化判定用辞書306に保存する。
【0164】
同様に、例えば類別2が「つぶれ」である場合、類別2特徴抽出部307は、つぶれによる劣化が発生した文字画像(図示省略)の特徴を表すベクトルxを抽出する。類別2劣化判定用辞書生成部(図示省略)は、類別2劣化度を目的変数、上記の抽出されたベクトルxを説明変数として回帰学習を行うことによって、類別2劣化度を計算するための関数g(x)を生成し、類別2劣化判定用辞書309に保存する。
【0165】
その後、画像入力部200に入力された文書から切り出された文字画像について(具体的には、例えばその文字画像の1位候補文字種について)、関数g(x)が計算される。入力された文字画像がかすれている場合には、類別1劣化度を計算するための関数g(x)が類別2劣化度を計算するための関数g(x)の値より大きくなり、入力された文字画像がつぶれている場合には、類別2劣化度を計算するための関数g(x)が類別1劣化度を計算するための関数g(x)の値より大きくなる。これによって、入力された文字画像に発生している劣化の種類及びその劣化の程度を特定することができる。
【0166】
棄却制御用辞書生成部327は、棄却判定部313によって用いられる棄却制御用辞書314を生成する。棄却制御用辞書314には、読み取り対象文字種ごとの類似度及び類別ごとの劣化度が入力されると棄却スコア(実数値)を出力する関数pと、認識結果を棄却するか否かを判定するために使用される閾値と、が保存される。閾値は、文字種ごとに異なる値であってもよいし、全文字種に共通であってもよい。棄却スコアの計算及び棄却判定の方法は、棄却判定部313に関する説明として記載した通りである。
【0167】
棄却の判定に使用される関数p及び閾値は、どのような場合に認識結果を棄却するかを定めるものであり、ユーザの設定に従って生成される。例えば、多少の誤読が許容される場合は、劣化度が大きくなってもあまり大きい値を出力しないような関数pを生成してもよいし、つぶれによる誤読よりかすれによる誤読を防ぎたい場合には、かすれによる劣化度が大きくなったときに出力が大きくなりやすく、つぶれによる劣化度が大きくなったときには出力があまり大きくならないような関数pを生成してもよいし、かすれによる誤読よりつぶれによる誤読を防ぎたい場合には、つぶれによる劣化度が大きくなったときに出力が大きくなりやすく、かすれによる劣化度が大きくなったときには出力があまり大きくならないような関数pを生成してもよい。
【0168】
上記の本発明の実施形態によれば、認識結果を高精度に棄却することができ、さらに、その棄却の結果を、文字認識の高精度化に利用することができる。
【0169】
例えば、
図8に示す帳票の一部分801のように、文書画像に同一の前処理(二値化処理など)を施すと、フォントの違い、色の違い、文字の大きさの違い、紙質の違い、などの原因で、様々な劣化文字(かすれ、つぶれなど)が混在する場合がある。文字画像801は、かすれが生じた文字列画像「納期限」と、かすれが生じていない文字列画像「平成」とを含む。そのため、帳票の位置によって、前処理の方法を変える必要がある。このような場合でも、劣化度に基づいて、文字ごとに、前処理方法及び特徴抽出処理を変えることができるため、劣化文字を高精度に認識することができる。また、文字の劣化度によって、リトライの際の処理方法を制御できるため、劣化文字を高精度に認識することができる。
【0170】
さらに、非文字及び劣化文字の種類ごとに、その棄却に特化した棄却方式を備えるため、従来法と比較して、精緻な棄却を行うことができる。さらに、棄却の強さを非文字、劣化文字の類別毎に調整できるようにする。
【0171】
さらに、非文字及び劣化文字の種類ごとに、劣化判定方式を備えることによって、棄却の原因を識別することができ、後の(例えばリトライ時の)制御に用いることができる。