以下、図面に従って本発明の実施形態を説明する。図1は、帳票読取システム1の構成例を示す図である。帳票読取システム1は、イメージ情報(文字画像)から帳票への記載内容を読取る情報処理装置10と、帳票を読取りイメージ情報を情報処理装置10に出力するスキャナ20を有する。情報処理装置10は、汎用のパーソナルコンピュータでもよい。情報処理装置10が、文字認識装置を実現する。
スキャナ20は、ライン状の撮像素子あるいは2次元撮像素子を備え、撮像素子で読取った帳票等のイメージ情報を情報処理装置10に出力する。イメージ情報は、カラーあるいはモノクロいずれでもよい。以下では、イメージ情報はカラーとする。
図2は、情報処理装置10のハードウェア構成を示す図である。情報処理装置10は、CPU(Central Processing Unit)500、RAM(Random Access Memory)502、ROM(Read Only Memory)504、表示処理部506、入出力IF(Interface)508、外部機器IF(Interface)510、モニタ512及びキーボード514等を有する。
CPU500は、OS(Operating System)のプログラムやアプリケーションプログラムを読込み、読込んだプログラムに従って処理を実行して、情報処理装置10全体を統括的に制御する。RAM502は、CPU500に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU500による処理に必要な各種データが格納される。ROM504は、OSのプログラムやアプリケーションプログラムを不揮発的に記憶する。また、ROM504は、各種データやテーブルを不揮発的に記憶する。
表示処理部506には、CPU500からの命令にしたがって、画像をモニタ512の画面に表示させる。入出力IF508は、キーボード514やマウス(不図示)が接続され、キーボード514等からの入力操作の信号をCPU500に通知する。外部機器IF510は、例えば、USB(Universal Serial Bus)規格により、スキャナ等の外部機器とデータの送受信を行う。モニタ512は、LCD(Liquid Crystal Display)や有機EL(Electroluminescent)等を用いた表示装置である。キーボード514は、入力操作を受け付ける。CPU500、RAM502、ROM504等は、バス516で接続される。
図3は、情報処理装置10における文字認識処理に係る機能ブロック図である。情報処理装置10は、制御部100、スキャナ制御部110、帳票処理部120及び記憶部150を有する。制御部100は、情報処理装置10全体を制御する。スキャナ制御部110は、スキャナ20を制御して、帳票の読取りを行わせ、読み取られたカラーのイメージ情報を取得する。
帳票処理部120は、スキャナ20から取得した帳票のカラーのイメージ情報を処理し、文字を認識して出力する。帳票処理部120は、項目処理部130を有する。
項目処理部130は、認識項目の位置を特定し、特定した認識項目で項目解析処理を行う。項目処理部130は、特定した認識項目が、明朝体で記載される可能性がある項目の場合、明朝体の横線のかすれを修正した画像を作成し文字認識する。
項目処理部130は、背景除去部131、記入枠除去部132、グレーイメージ作成部133、明朝体強調処理部134、二値イメージ作成部135、文字認識部136を有する。
背景除去部131は、スキャナ20から出力された帳票のカラーのイメージ情報から、背景情報を取り除く処理をする。記入枠除去部132は、背景情報が除去されたイメージ情報から、例えば罫線の色情報に基づき、罫線を除去する。グレーイメージ作成部133は、罫線が除去されたカラーのイメージ情報を、モノクロの多値画像であるグレーイメージに変換する。
明朝体強調処理部134は、グレーイメージで、明朝体を強調する処理を行う。すなわち、明朝体強調処理部134は、文字画像の特定方向でかすれが発生しているかを所定の判定条件に基づき判定処理を行い、かすれが発生していると判定した箇所を強調処理する。
より具体的には、明朝体強調処理部134は、文字画像を構成する画素において、判定の基準とする比較元画素と、比較元画素から特定方向に沿った所定の位置に判定箇所を設け、判定箇所に属する複数の画素の画素値に基づき、比較元画素の特定方向に隣接する隣接画素でかすれが発生しているかを判定する判定処理を行う。さらに、明朝体強調処理部134は、隣接画素でかすれが発生と判定した場合に、隣接画素の画素値を、比較元画素の画素値に基づき、強調処理を行う。明朝体強調処理部134は、強調処理部とも呼ぶ。
二値イメージ作成部135は、明朝体強調処理されたグレーイメージを二値化して、二値イメージを生成する。文字認識部136は、二値イメージに基づき、文字認識を行い、認識結果を出力する。
記憶部150は、キーワードテーブルや強調判定テーブルを格納する。キーワードテーブルは、認識項目の位置を特定する際に参照されるもので、図6で後述する。強調判定テーブルは、明朝体強調処理時のかすれ判定処理で参照されるもので、図11で後述する。記憶部150は、ROM504により構成される。
また、制御部100、スキャナ制御部110、帳票処理部120及び項目処理部130は、制御プログラムを読み込んだCPU500によるソフトウェア処理により実現される。
図4は、帳票処理部120による帳票読取処理の手順を説明するフローチャートである。また、図5は、帳票読取処理で処理される帳票の内容である。
帳票処理部120は、帳票のイメージ情報から罫線を抽出する(ステップS10)。すなわち、帳票処理部120は、帳票全体から罫線を抽出する。図5(A)は、抽出された帳票の罫線の例である。
帳票処理部120は、帳票のイメージ情報からセルを抽出する(ステップS12)。すなわち、帳票処理部120は、罫線で囲まれた枠をセルとしてセルIDを付与し、変数セルMAXにセル数を保持する。図5(B)は、帳票から抽出されたセルの例である。
帳票処理部120は、各セルから文字を抽出する(ステップS14)。すなわち、帳票処理部120は、セル毎に文字を抽出し、セル内の文字数及び各文字の座標を保持する。図5(C)は、セル毎に抽出された文字の例を示す図である。
帳票処理部120は、見出しを抽出する(ステップS16)。すなわち、帳票処理部120は、各項目の位置特定に必要な見出しを、記憶部150のキーワードテーブルの見出し文字に登録された文字から、抽出する。図6は、キーワードテーブルの例である。図5(D)は、見出しとして「科目」と「納期限」が抽出された例である。
帳票処理部120は、セル数分だけ、ステップS18aからステップS18bの間の処理を繰り返す。帳票処理部120は、見出しが含まれるセルであるかを判断する(ステップS20)。帳票処理部120は、見出しが含まれるセルでないと判断すると(ステップS20のNo)、ステップS18bに進む。
帳票処理部120は、見出しが含まれるセルであると判断すると(ステップS20のYes)、見出しに対して認識項目の候補を最大4候補作成する(ステップS22)。見出しが含まれるセル、見出しの下のセル、見出しの右側のセル、見出しの右下のセルが各候補となる。図5(E)で、見出し「納期限」に対する候補のセルをグレーで示す。
帳票処理部120は、候補数分だけ、ステップS24a〜ステップS24bの処理を繰り返す。帳票処理部120は、候補位置に対して項目解析を行う(ステップS26)。項目解析は、図7で後述する。
帳票処理部120は、候補数分のループの後、候補位置の文字認識結果を最終決定する(ステップS28)。帳票処理部120は、セル数分の繰り返しが終了したら、認識結果を通知する(ステップS30)。図5の例では、納期限=平成28年1月21日、科目=普通 が認識結果として通知される。
図7は、ステップS26の候補位置に対する項目解析の手順を示すサブルーチンである。図8は、項目解析により処理される文字の例を順に示す図である。図8を参照して、図7のサブルーチンを説明する。
項目処理部130は、候補位置の画像に対して項目解析を行う。項目処理部130は、認識項目で切り出されたカラーのイメージ情報(認識依頼画像)について、以下の処理を行う。
ここで、文字を図8(A)に示す「平成28年1月21日」とする。図8(A)は、かすれのない状態での文字である。背景除去部131は、認識依頼画像から背景を除去する処理を行う(ステップS100)。図8(B)は、背景除去処理後の画像である。認識依頼画像は、「日」の3本の横線が、右端の拡大図に示すようにかすれているとする。
記入枠除去部132は、認識依頼画像から記入枠を除去する処理を行う(ステップS102)。図8(C)に示すように、記入枠が除去される。グレーイメージ作成部133は、記入枠が除去されたカラーの認識依頼画像から、多値のグレーイメージを作成する(ステップS104)。グレーイメージは、例えば、0〜255の階調である。図8(D)は、グレーイメージである。
明朝体強調処理部134は、明朝体で印字される可能性のある項目であるかを判断する(ステップS106)。明朝体強調処理部134は、図6のキーワードテーブルを元に判定を行う。例えば、明朝体強調処理部134は、キーワードテーブルから、項目名が納期限の場合に、見出し文字が「納付期限、納期限、お支払期限」である場合には、明朝体の可能性有りと判断する。
明朝体強調処理部134は、項目が明朝体で印字される可能性のある項目ではないと判断すると(ステップS106のNo)、ステップS110に進む。
明朝体強調処理部134は、項目が明朝体で印字される可能性のある項目であると判断すると(ステップS106のYes)、明朝体強調処理を行う(ステップS108)。図8(E)は、明朝体強調処理後の、グレーイメージである。図8(B)かすれていた「日」の横線が、明朝体強調処理により復活される。明朝体強調処理は、図9以降で説明する。
二値イメージ作成部135は、多値のグレーイメージから二値イメージを作成する(ステップS110)。図8(F)は、二値イメージである。二値イメージ作成部135は、グレーイメージの画素値を所定の閾値と比較して、画素を白または黒に変換する。
図9は、二値化の閾値を説明する図である。図9(A)は、固定閾値の例で、グレースケール上に設定された固定閾値の位置を示す図である。図9(B)は、動的閾値を説明する図である。図9(B)は、グレーイメージの画素数と濃度のヒストグラムである。ヒストグラムで、記入文字のグループの山と背景のグループの山が分けられるので、谷の位置に閾値が設定することができる。動的閾値によれば、取得されたグレーイメージに応じてより適切な閾値を設定することができる。文字認識部136は、二値イメージに基づき、文字認識を行う(ステップS112)。
図10A〜図10Dは、ステップS108の明朝体の強調処理の手順を説明するサブルーチンである。また、図11〜図19は、明朝体の強調処理を説明するための図である。
明朝体強調処理部134は、スキャナ20の解像度、帳票の認識項目の高さによって、記憶部150の明朝体強調判定テーブルから、適切なパラメータを取得する(ステップS200)。
図11は、明朝体強調判定テーブルの例である。スキャナ20の解像度に応じたパラメータが設定される。スキャナ20の解像度に応じて、判定箇所のサイズ、判定条件、判定箇所の位置が予め設定されている。図11では、2つの解像度の例を示し、項目No1は、解像度が240DPIの場合のパラメータで、項目No2は、解像度が300DPIの場合のパラメータである。
明朝体強調判定テーブルの判定条件は、かすれが発生しているかを判定する条件である。比較元の画素と、比較元画素から特定方向に沿った所定の位置にある判定箇所の画素がそれぞれ設定され、比較元の画素の画素値と判定箇所の画素の画素値から、かすれが発生しているかが判定される。
判定条件は、第1の条件と第2の条件の2つの条件があり、2つの条件の両方が満足された場合に、かすれが発生していると判定される。第1の条件は、判定箇所の縦方向の画素の分散値が所定値以上である場合である。縦方向の画素の分散値とは、判定箇所の縦方向の画素値のばらつき度合いである。
第2の条件は、判定箇所の画素の画素値が、比較元の画素の画素値に所定係数を乗じた値より小さい場合である。所定係数は判定箇所の行によって異なる。
図11の「判定箇所の位置」は、比較元の画素と判定箇所の位置関係を示す図である。なお、図11で示す「判定箇所の位置」は、後述する右方向走査の場合の例であって、左方向走査の場合には、注目画素と判定箇所の関係が左右逆になる。
図11の「判定箇所の位置」で、「○」で示す画素が比較元画素で、斜線で示す画素が判定箇所の画素である。解像度が240DPIの場合には、判定箇所は横2×縦3の領域の画素になる。解像度が300DPIの場合には、判定箇所は横2×縦5の領域の画素になる。なお、以下の説明では、特に断りがない限り、スキャナ20の解像度を240DPIとし、判定条件は図11の項目No1に従った条件とする。
明朝体強調処理部134は、強調処理を右方向走査と左方向走査に分けて行う。右方向走査とは、右方向に向かって走査してかすれの発生を検出して強調(補正)する処理である。左方向走査は、逆に左方向に向かって走査してかすれの発生を検出して強調(補正)する処理である。右方向走査から説明する。
明朝体強調処理部134は、探索位置(x,y)を初期化する(ステップS202)。図12は、右方向方走査時の、認識項目に対する探索範囲と探索方向を示す図である。認識項目の幅Dx、認識項目の高さDyとする。右方向走査では、左上隅が探索開始位置 (x,y)=(0,0)となる。探索開始位置から、右方向に向かって走査がされ、右下隅が探索終了位置になる。右下隅は例えば(200,16)である。また、以下では、強調処理の対象として、「平成28年1月21日」の「日」を例にする。
図13(A)は、図8(D)と同じ「平成28年1月21日」のグレーイメージである。図13(B)は、「日」の領域を拡大した拡大図である。図13(B)での最小区画を1画素とする。画素値を0(黒)〜255(白)とし、便宜上5段階での階調を示す。
図13(C)は、図13(B)の左上のP領域(横4×縦5)の拡大図である。#1と#2は、それぞれ比較元となる画素の位置とする。また、比較元#1に対応する判定箇所を判定箇所(#1)、比較元#2に対応する判定箇所を判定箇所(#2)とする。
明朝体強調処理部134は、ステップS204a〜ステップS204bで、認識項目の高さ分(Dy)のループを行う。すなわち、明朝体強調処理部134は、y=1から、繰り返しごとにyを+1して、|y|<=認識項目の高さ(Dy)に達したら処理を終了する。
明朝体強調処理部134は、ステップS206a〜ステップS206bで、認識項目の幅分(Dx)のループを行う。すなわち、明朝体強調処理部134は、x=1から、繰り返しごとにxを+1して、|x|<=認識項目の幅(Dx)に達したら処理を終了する。
明朝体強調処理部134は、ステップS208aからステップS208bの間で、判定箇所の幅分(Δx´)のループを行う。すなわち、明朝体強調処理部134は、x´=1から、繰り返しごとにx´を+1して、x´<=判定箇所の幅(Δx´)に達したら処理を終了する。(x´,y´)は、判定箇所における座標である。本例では、x´=1,2、y´=1,2,3、Δx´=2である。
図14(A)は、比較元画素(○印)と判定箇所の拡大図である。判定箇所の画素を、図14(A)のように、画素a、b、c、d、e、fとする。x´=1の列(a,b,c)について、縦方向の分散値(第1の条件)の判定が行われ、続いて比較元画素との画素値の比較判定(第2の条件)が行われる。次に、x´=2の列(d,e,f)について、縦方向の分散値(第1の条件)の判定が行われ、続いて比較元画素との画素値の大小判定(第2の条件)が行われる。
まず、明朝体強調処理部134は、縦方向の分散値の条件(第1の条件)について判定を行う。明朝体強調処理部134は、平均値格納変数AVEを0で初期化する(ステップS210)。
明朝体強調処理部134は、ステップS212aからステップS212bの間で、判定箇所の高さ分(Δy´)のループを行う。すなわち、明朝体強調処理部134は、y´=1から、繰り返しごとにy´を+1して、y´<=判定箇所の高さに達したら処理を終了する。
明朝体強調処理部134は、平均値格納変数AVEに(x´,y´)の値を加える(ステップS214)。明朝体強調処理部134は、平均値格納変数AVEを判定箇所の高さ(本例ではy´=3)で割る(ステップS216)。なお、以下で、a、b、cの画素値をVa、Vb、Vcとし、Va+Vb+Vc→AVE、更に、AVE/3→AVE とする。
明朝体強調処理部134は、分散値格納変数VARを0で初期化する(ステップS218)。明朝体強調処理部134は、ステップS220aからステップS220bの間で、判定箇所の高さ分(Δy´)のループを行う。すなわち、明朝体強調処理部134は、y´=1から、繰り返しごとにy´を+1して、y´<=判定箇所の高さ に達したら処理を終了する。
明朝体強調処理部134は、分散値格納変数VARに(AVE-(x′,y´))^2の値を加える(ステップS222)。図10Bに進む。明朝体強調処理部134は、分散値格納変数VARを判定箇所の高さ(本例では3)で割り、分散値を算出する(ステップS224)。すなわち。分散値=((AVE−Va)^2+(AVE−Vb)^2+(AVE−Vc)^2)/3 となる。
明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値以上であるかを判定する(ステップS230)。明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値(500)以上と判定しない場合には(ステップS230のNo)、第1の条件が満足されないとしてステップS206bに進む。なお、この場合には、x´=2についての判定は行われない。明朝体強調処理部134は、ステップS206bからステップS206aに戻り、比較元画素を、右方向に1つ移動させる。
明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値以上と判定すると(ステップS230のYes)、第1の条件が満足されたとして、続いて、第2の条件で判定を行う。
明朝体強調処理部134は、ステップS232aからステップS232bの間で、判定箇所の高さ分(Δy´)のループを行う。すなわち、明朝体強調処理部134は、y´=1から、繰り返しごとにy´を+1して、y´<=判定箇所の高さに達したら処理を終了する。
明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルであるかを判定する(ステップS234)。
本例では、Va<比較元画素の画素値×3.8
Vb<比較元画素の画素値×2.5
Vc<比較元画素の画素値×3.8 である。
明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルであると判定すると(ステップS234のYes)、ステップS232bに進む。ステップS232bからステップS208bに進むと、ステップS208aに戻り、x´=2で、同様に第1の条件と第2の条件が判定される。判定箇所の幅分の全て(Δx´)で、第1の条件と第2の条件が満足されると、ステップS236に進む。
明朝体強調処理部134は、(x+1,y)に(x,y)の値を格納する(ステップS236)。すなわち、明朝体強調処理部134は、比較元画素の右隣接画素がかすれ画素であると判定して、比較元画素の右隣接画素に、比較元画素の画素値を格納する。明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルでないと判定すると(ステップS234のNo)、ステップS206bに進み、ステップS206aに戻る。
明朝体強調処理部134は、認識項目の全幅・全高さで右方向走査が終了したら、ステップS250に進み、左方向走査の処理を開始する。
以上の右方向走査処理の具体例を説明する。図14(B)、図14(C)は、それぞれ、図13の画素#1、#2を比較元画素にした場合の例である。図14(B)、図14(C)の各画素に示す数値は、画素値である。
比較元画素(#1)について説明する(図14(B))。比較元画素(#1)=150、Va =180、Vb=190、Vc=90、Vd=170、Ve=190、Vf=140とする。
x´=1では、AVE/3=153、VAR=6067、分散値=2022になり、第1の条件(分散値≧500)を満足する。x´=2では、AVE/3=167、VAR=1261、分散値=422になり、第1の条件を満足しない。すなわち、比較元#1の右隣は、かすれ画素ではないと判定される。
次に、比較元画素(#2)について説明する(図14(C))。比較元画素(#2)=60、Va =190、Vb=90、Vc=190、Vd=190、Ve=140、Vf=60とする。
x´=1で、AVE/3≒167、VAR=(167−190)2×2+(167−90)2=6487より、分散値=VAR/3≒2329になる。第1の条件(分散値≧500)は満足される。次に、x´=1で、第2の判定を行う。比較元画素(#2)=60であるので、比較元画素(#2)×3.8=228、比較元画素(#2)×2.5=150となる。Va =190、Vb=90、Vc=190であるから、図11のテーブルにより、第2の条件も満足される。
同様に、x´=2で、分散値=VAR/3≒2867になり、第1の条件は満足される。x´=2でも、第2の条件も満足される。以上から、比較元画素(#2)では、第1の条件及び第2の条件共に満足される。
図15は、比較元#2の右側に隣接する隣接画素bが強調処理される様子である。隣接画素bの画素値が、比較元#2の画素値(60)に置き換えられ(図15(A))、隣接画素bの画素値は、90→60に変わる。図15(B)は、文字「日」で、比較元#2の隣接画素bが、比較元#2の画素値(30)に置き換えられた状態を示す。
図16は、図8(D)で示した文字画像が、右方向走査で強調処理された状態を示す図である。文字「日」では、右方向走査の強調処理によって、横線のかすれが強調処理されて、横線が明瞭になる。しかし、図16(B)の左に示すように、右方向走査の強調処理によっては、文字「日」の横線のかすれは改善されるが、文字「平」の左側の横線のかすれは改善されない場合もある。
〈左方向走査〉
図10Cに進む。明朝体強調処理部134は、右方向走査の終了後、左方向走査を行う。明朝体強調処理部134は、探索位置(x,y)を初期化する(ステップS250)。図17(A)は、左方向走査時の認識項目に対する探索範囲と探索方向を示す図である。左方向走査では、右上隅が探索開始位置 (x,y)=(0.0)となる。探索開始位置から、左方向に向かって走査がされ、左下隅が探索終了位置になる。明朝体強調処理部134は、左方向走査時においても、基本的には前述の右方向走査と同じ処理を行う。右方向走査と同様な内容については、以下、説明を簡略する。
明朝体強調処理部134は、ステップS252a〜ステップS252bで、認識項目の高さ分(Dy)のループを行う。前述したステップS204a〜ステップS204bと同様な処理である。明朝体強調処理部134は、ステップS254a〜ステップS254bで、認識項目の幅分(Dx)のループを行う。前述したステップS206a〜ステップS206bと同様な処理である。明朝体強調処理部134は、ステップS256a〜ステップS256bの間で、判定箇所の幅分(Δx´)のループを行う。前述したステップS208a〜ステップS208bと同様な処理である。
図17(B)は、比較元画素(○印)と判定箇所の拡大図である。判定箇所の画素を、図14(A)と同様に、画素a、b、c、d、e、fとする。
まず、明朝体強調処理部134は、縦方向の画素の分散値(第1の条件)について判定を行う。明朝体強調処理部134は、判定箇所の画素の高さ分(Δy´)のループを行い、縦方向の平均値を求め(ステップS258)、縦方向の分散値を求める(ステップS260)。右方向走査時と同様である。
図10Dに進む。明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値以上であるかを判定する(ステップS262)。
明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値以上と判定しない場合には(ステップS262のNo)、第1の条件が満足されないとしてステップS254bに進む。
明朝体強調処理部134は、分散値が明朝体強調判定テーブルの値以上と判定すると(ステップS262のYes)、第1の条件が満足されたとして、続いて、第2の条件で判定を行う。
明朝体強調処理部134は、ステップS264aからステップS264bの間で、判定箇所の高さ分(Δy´)のループを行う。前述したステップS232a〜ステップS232bと同様な処理である。
明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルであるかを判定する(ステップS266)。明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルでないと判定すると(ステップS266のNo)、ステップS254bに進む。
明朝体強調処理部134は、(x´,y´)の画素値<(x,y)×明朝体強調判定テーブルであると判定すると(ステップS266のYes)、ステップS264bに進む。判定箇所の幅分の全て(Δx´)で、第1の条件と第2の条件が満足されると、ステップS268に進む。
明朝体強調処理部134は、(x―1,y)に(x,y)の値を格納する(ステップS268)。すなわち、比較元画素の左隣接画素でかすれが発生していると判定して、比較元画素の左隣接画素に、比較元画素の画素値を格納する。
明朝体強調処理部134は、認識項目の全幅・全高さで左方向走査が終了したら、明朝体強調処理を終了して、図7のステップS110に進む。
図17(C)、図17(D)は、それぞれ、画素#3、#4を比較元画素にした場合の例である。画素#3、#4は、例えば、図16Bで説明した「平」の一部である。
比較元画素(#3)から、説明する(図17(C))。比較元画素(#3)=190、Va =190、Vb=190、Vc=190、Vd=180、Ve=190、Vf=180とする。
x´=1で分散値=0で、第1の条件が満足されない。従って、比較元画素(#3)では、強調処理は行われない。
比較元画素(#4)について説明する(図17(C))。比較元画素(#4)=40、Va =110、Vb=90、Vc=40、Vd=30、Ve=90、Vf=110とする。比較元画素(#4)では、x´=1及びx´=2で、分散値>500で、第1の条件が満足される。また、第2の条件も満足される。
これにより、比較元画素(#4)について、左に隣接する画素bについて、強調処理が行われる。図18(A)は、強調処理として、比較元画素(#4)の左に隣接する画素bが、比較元画素(#4)の画素値に置換えられた状態を示す図である。このように、左方向走査によって、左方向に伸びる横線のかすれを改善することができる。図18(A)は、左方向走査によって、文字「平」の左方向に伸びる横線のかすれが改善された様子を示す図である。
図19は、グレーイメージと、グレーイメージから作成された二値化イメージを示す図である。文字「日」を例にする。図19は、従来の二値化イメージと強調処理がされた二値化イメージを対比した図である。
図19(A)は、明朝体強調処理部134による強調処理がされていない場合の、グレーイメージと二値化イメージである。「日」の横線が、基になるグレーイメージのかすれた状態であるため、二値化イメージも同様に、横線がかすれた状態となってしまう。
図19(B)が、明朝体強調処理部134による明朝体強調がされた場合の、二値化イメージである。強調処理がされることによって、基になるグレーイメージで横線が明瞭になるため、二値化イメージの横線もはっきり再現される。
〈第2の判定処理〉
文字のかすれを判定する処理は、図10A〜図10Dで説明した判定処理(第1の判定処理)には限らない。第1の判定処理とは異なる第2の判定処理を、図20と図21を用いて説明する。なお、第2の判定処理の文字認識処理に係る機能ブロック図は、第1の判定処理(図3)と同様であるので、説明は省略する。第2の判定処理は、明朝体強調処理部134により実行される。
第2の判定処理は、文字と判断できる黒画素(濃いグレー)の近傍でかすれる可能性が高いため、濃いグレーを起点とし、左右の隣接画素がかすれているか判定し、左右の隣接画素がかすれと判断できるような薄いグレーの場合、黒画素(濃いグレー)に置き換える処理である。
具体的には、第2の判定処理では、比較元画素と判定箇所を設定し、1画素ずつループしながら下記の条件i)及び条件ii)で判定を行う。なお、判定箇所は、第1の判定処理と同様に、スキャナ20の解像度に応じて設定してもよい。
i)比較元画素が黒であるか。
ii)右方向走査時には、右側+1、右+2の画素及びその上下の画素がかすれの可能性がある階調であるか。
第2の判定処理では、右方向走査時には、上記条件i)及びii)を全て満たした場合、比較元の右隣接画素の画素値を比較元画素の画素値に変更する。
図20は、右方向走査時の、第2の判定処理の例を説明する図である。図20(A)は、「日」のグレーイメージを拡大した図である。階調を第1階調〜第5階調の5段階で表現してある。ここで、第1階調〜第3階調を黒の階調、第4階調をかすれの可能のある階調、第5階調を白の階調とする。また、以下の説明で用いられる比較元の画素を、#1〜#4で示す。
図20(B)は、比較元#1の判定処理を説明する図である。比較元#1が黒の階調であるので、i)の条件は満足される。また、右側+1及び右側+2の画素及びその上下の画素がかすれの可能性のある階調であるので、ii)の条件もクリアされる。すなわち、比較元#1で、かすれの可能性ありと判定される。そして、比較元#1の右側+1の画素(隣接画素)が、比較元#1の画素値に変更され、強調処理がされる(図20(B)の左図)。
図20(C)は、比較元#2の判定処理を説明する図である。比較元#2が黒の階調ではないため、i)の条件が満足されない。すなわち、比較元#2の右隣接画素には強調処理はされない。
図20(D)は、比較元#3の判定処理を説明する図である。比較元#3が黒の階調であるので、i)の条件を満足する。しかし、判定箇所の画素にかすれの可能のある階調でない画素が含まれているので、ii)の条件が満足されない。すなわち、比較元#3の右隣接画素には強調処理はされない。
図21は、左方向走査時の比較元#4の処理である。比較元#4が黒の階調で、i)の条件はクリアされる。また、左側+1、左側+2の画素及びその上下の画素がかすれの可能性のある階調であるので、ii)の条件もクリアされる。すなわち、比較元#4で、かすれの可能性ありと判定される。そして、比較元#4の左側+1の画素(隣接画素)が、比較元#4の画素値に変更され、強調処理がされる。
〈効果〉
・明朝体文字のような細線が含まれる文字の画像で、細線のかすれが強調(補正)されるので、正確な文字認識ができるようになる。
・かすれ判定をして、かすれ発生箇所に強調(補正)処理を行うので、無用に線が太くなることが防止される。
・かすれ発生画素の画素値を隣接する画素(比較元画素)の画素値に置き換えていくので、強調処理後に、線の濃度変化が不連続になってしまうことが防止される。
・右方向走査と左方向走査をそれぞれ別々に行って、強調処理するので、左右いずれの向きに伸びる線であっても、確実にかすれが補正される。
・スキャナの解像度に応じて、判定条件を変えるので、適切なかすれ判定ができる。
・明朝体の文字と判定した場合に、強調処理を行うようにしたので、ゴシック体等の細線を含まない文字の処理で、文字認識処理の時間を節約することができる。
・グレーイメージで、強調処理を行うので、的確なかすれ判定を行うことができる。
<変形例>
上記実施形態では、明朝体文字に適用した例を説明したが、細線が含まれる字体であれば、明朝体以外の文字へも適用可能である。また、日本語に限るのもではなく、他の言語の文字に適用してもよい。
また、強調処理部は、CPUによるソフトウェア処理で実現されるものに限らない。強調処理部は、一部あるいは全部を、ゲートアレイ等のハードウェア回路で実現するようにしてもよい。
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用ができることはもちろんである。