図1は、画像処理システムの構成を示す図である。
図1の画像処理システム1は、帳票に押印された日付印に含まれる日付を文字認識により認識する処理を自動で行うシステムである。画像処理システム1は、画像処理装置2と、スキャナ装置3と、入力装置4と、表示装置5と、サーバ装置6とを含む。
画像処理装置2は、帳票の画像における日付印が押印された領域を特定し、該日付印に含まれる日付を文字認識により認識する。画像処理装置2は、例えば、スキャナ装置3から帳票の画像を取得する。スキャナ装置3は、帳票等の紙媒体をデジタルデータ(画像)に変換する装置である。
入力装置4は、画像処理装置2に各種情報を入力する装置である。入力装置4は、例えば、キーボード装置である。表示装置5は、画像処理装置2が行う処理の内容や処理の結果、入力装置4により入力された情報、帳票の画像等の、各種情報を表示する装置である。表示装置5は、例えば、液晶ディスプレイである。
サーバ装置6は、画像処理装置2が画像内の文字を認識する際に参照する文字認識辞書を保持する装置である。サーバ装置6は、ネットワーク7を介して画像処理装置2と通信可能に接続される。
画像処理装置2は、スキャナ装置3から帳票の画像を取得した後、まず、該画像内における日付印が押印された位置(領域)を特定する。その後、画像処理装置2は、画像内における日付印の傾きを算出し、該傾きが所定の角度以上である場合には日付印の向きが正立となるよう画像を補正する。そして、画像処理装置2は、画像内における日付印の向きが正立となった状態で文字認識を行い、日付印に含まれる日付を認識する。画像処理装置2は、帳票の画像及び認識した日付を表示装置5に表示させる。なお、画像処理システム1のオペレータは、例えば、表示装置5に表示された日付の認識結果と、帳票に押印された日付印の日付とが異なる場合には、入力装置4を操作して日付を修正することが可能である。
図2は、一実施形態に係る画像処理装置の機能的構成を示す図である。
図2に示すように、本実施形態に係る画像処理装置2は、スキャナ制御部210と、解析部220と、認識処理部230と、表示制御部240と、主制御部250とを含む。また、画像処理装置2は、図示していない記憶部を含む。
スキャナ制御部210は、スキャナ装置3から帳票の画像を取得する処理を制御する。
解析部220は、帳票の画像における日付印の位置及び傾きを解析し、画像内における日付印の向きが正立となるよう画像を補正する。解析部220は、変換部221と、斜度抽出部222と、ノイズ除去部223と、切出部224と、補正部225とを含む。
変換部221は、帳票の画像がカラー画像である場合に、該カラー画像をグレースケールの画像に変換する。
斜度抽出部222は、帳票の画像内における帳票の要素(線、文字、図形、及び日付印等)のそれぞれにおける、画像水平方向及び垂直方向となす角が所定の角度以上となる部分を抽出する。例えば、斜度抽出部222は、画像内に存在する帳票の要素のいずれかの一部を示す画素毎に、該画素の周囲の画素の濃度値と後述するフィルタとに基づいて斜度を算出し、算出した斜度が閾値以上となる画素を抽出する。斜度は、帳票の要素のうちの斜度を算出する画素及び周囲の画素が示す部分の延伸方向と画像水平方向及び画像垂直方向のそれぞれとのなす角の大きさに応じた値である。帳票の要素のうちの斜度を算出する画素及び周囲の画素が示す部分の延伸方向が画像水平方向及び画像垂直方向のいずれかと略平行である場合の斜度は、斜度を算出する画素及び周囲の画素が示す部分の延伸方向が画像水平方向及び画像垂直方向のそれぞれに対して斜め方向となる場合の斜度よりも小さな値となる。
ノイズ除去部223は、斜度抽出部222で抽出した斜度が閾値以上となる画素のうちの日付印とは異なる要素を示す画素を、ノイズとして日付印の一部を示す画素の候補から除外する。ノイズ除去部223は、画像内における日付印の外形及び寸法の特徴に基づいて、日付印とは異なる要素を示す画素を特定する。例えば、ノイズ除去部223は、斜度抽出部222で抽出した斜度が閾値以上となる画素を隣接して連続する複数の画素毎にグループ化し、縦横の寸法が閾値よりも小さいグループに含まれる画素を、ノイズとして日付印の一部を示す画素の候補から除外する。また、例えば、ノイズ除去部223は、縦横の寸法が閾値以上であるグループのうちの、距離が所定の範囲内となる他のグループが2組以上存在するグループに含まれる画素を、日付印の一部を示す画素として抽出する。言い換えると、ノイズ除去部223は、縦横の寸法が閾値以上であるグループのうちの、距離が所定の範囲内となる他のグループが1組しか存在しないグループ、及び1組も存在しないグループに含まれる画素を、ノイズとして日付印の一部を示す画素の候補から除外する。
切出部224は、斜度抽出部222で抽出した斜度が閾値以上となる画素のうちのノイズ除去部223により除外されなかったグループに含まれる画素の画像内での位置に基づいて、画像内の日付印が押印された領域を切り出す。切出部224は、例えば、画像内におけるノイズ除去部223により除外されなかったグループの全てを内包する矩形の領域を、日付印が押印された領域に特定し、該領域を切り出す。
補正部225は、切り出した領域内における日付印の画像水平方向に対する傾きが閾値以上である場合に、日付印の向きが正立となるよう切り出した領域を回転補正する。補正部225は、例えば、ハフ変換により、日付印における日付の上側に位置する第1の直線部及び日付の下側に位置する第2の直線部の画像水平方向に対する傾きを推定し、該傾きの推定結果に基づいて、日付印の向きが成立となるよう切り出した領域内の画素の位置(座標)を変換する。
認識処理部230は、解析部220の解析結果に基づいて、帳票の画像から切り出した日付印が押印された領域に含まれる日付を、文字認識により認識する。認識処理部230は、例えば、サーバ装置6が保持する文字認識辞書610を参照して、日付印が押印された領域(部分画像)における第1の直線部と第2の直線部との間となる領域に並んでいる数字や記号を認識する。なお、認識処理部230が参照する文字認識辞書610は、例えば、画像処理装置2が備える記憶部(図示せず)に記憶させておいてもよい。
表示制御部240は、表示装置5の表示を制御する。例えば、表示制御部240は、帳票の画像及び日付印の日付の認識結果を含む画面データを生成し、該画面データを表示装置5に表示させる。
主制御部250は、スキャナ制御部210、解析部220、認識処理部230、及び表示制御部240が協働して行う一連の処理を制御する。
このように、本実施形態の画像処理装置2は、帳票の画像における画像水平方向及び画像垂直方向のそれぞれとのなす角と対応した斜度と日付印の外形及び寸法の特徴とに基づいて帳票の画像における日付印が押印された位置を特定する解析部220を備える。このため、本実施形態の画像処理装置2では、帳票に押印された日付印の位置によらず、日付印全体を含む領域を特定することが可能となる。また、本実施形態の画像処理装置2における解析部220は、更に、帳票の画像内における日付印の傾きを算出し(推定し)、日付印の向きが正立となるよう補正する。このため、本実施形態の画像処理装置2では、日付印に含まれる日付の向きが正立となった状態で文字認識を行うことが可能となる。
図3は、一実施形態に係る画像処理を説明するフローチャートである。
本実施形態の画像処理装置2は、画像処理を開始すると、図3に示すように、まず、帳票の画像を取得する(ステップS1)。ステップS1の処理は、画像処理装置2のスキャナ制御部210が行う。スキャナ制御部210は、例えば、帳票のRGBカラー画像をスキャナ装置3から取得する。
次に、画像処理装置2は、取得した帳票の画像をグレースケールの画像に変換する(ステップS2)。ステップS2の処理は、画像処理装置2の解析部220における変換部221が行う。変換部221は、既知の変換方法に従って、RGBカラー画像を所定の階調のグレースケール画像に変換する。例えば、変換部221は、RGBカラー画像における各画素のRGB輝度値に基づいて、紙媒体である帳票における下地の濃度(階調)が、帳票における罫線、文字、日付印等の要素の濃度(階調)よりも高くなるよう、RGBカラー画像をグレースケール画像に変換する。なお、ステップS1で取得した帳票の画像がグレースケール画像、或いは二値化されたモノクロ画像である場合には、ステップS2の処理を省略してもよい。
次に、画像処理装置2は、帳票の画像内における日付印の位置の特定に用いる情報を取得する処理として、斜度抽出処理(ステップS3)及びノイズ除去処理(ステップS4)を行う。斜度抽出処理及びノイズ除去処理は、画像内の要素における画像水平方向及び画像垂直方向のそれぞれとなす角が閾値以上となる部分を日付印の候補として抽出する処理の一例である。
ステップS3の斜度抽出処理は、画像処理装置2の解析部220における斜度抽出部222が行う。斜度抽出部222は、画像内における線、文字、日付印等と対応する濃度が閾値以下の画素毎に、画像水平方向及び垂直方向のそれぞれとなす角と対応する斜度を算出し、算出した斜度が閾値以上となる画素を抽出する。ここで、斜度は、該斜度を算出する注目画素と隣接する画素の濃度と所定のフィルタとにより算出される値である。フィルタは、例えば、画像内で斜め方向に連続している複数の濃度が閾値以下である画素のいずれかを注目画素とした場合の斜度が、画像内で水平方向又は垂直方向に連続している複数の濃度が閾値以下である画素のいずれかを注目画素とした場合の斜度よりも大きな値となるように設定された係数の組である。
ステップS4のノイズ除去処理は、画像処理装置2の解析部220におけるノイズ除去部223が行う。ノイズ除去部223は、ステップS3で抽出した斜度が閾値以上である画素に含まれる、画像内における日付印に含まれる要素以外の要素(罫線や文字等)と対応する画素を、ノイズとして日付印の要素を示す画素の候補から除外する。ノイズ除去部223は、例えば、斜度が閾値以上である画素をグループ化し、画像内における日付印の外形の形状及び寸法の特徴に基づいて設定した条件を満たしていないグループに含まれる画素を、日付印の要素を示す画素の候補から除外する。
ステップS3及びS4の処理を終えると、画像処理装置2は、次に、日付印の位置を特定し、日付印が押印された領域を切り出す(ステップS5)。ステップS5の処理は、画像処理装置2の解析部220における切出部224が行う。切出部224は、ステップS3及びS4の処理により得られた、日付印の要素を示す画素の候補(グループ)の全てを内包する矩形領域を算出し、該矩形領域を帳票の画像から切り出す。
ステップS5の処理を終えると、画像処理装置2は、次に、切り出した画像に含まれる日付印の向きが正立となるよう補正する正立補正処理(ステップS6)を行う。ステップS6の正立補正処理は、画像処理装置2の解析部220における補正部225が行う。補正部225は、切り出した画像における日付印の傾きを算出し、該傾きが閾値以上である場合には傾き角に応じた角度だけ、切り出した画像を回転させる。補正部225は、既知の方法に従って日付印の傾き角θを算出した後、既知の方法に従って画像を-θだけ回転させる。例えば、補正部225は、ハフ変換により、日付印における日付の上側に位置する第1の直線部及び日付の下側に位置する第2の直線部を抽出し、該直線部の水平方向からの傾き角θを算出する。その後、補正部225は、切り出した画像全体を-θだけ回転させる。これにより、切り出し画像内の日付印における日付の上側に位置する第1の直線部及び日付の下側に位置する第2の直線部の延伸方向が水平方向と略一致し、日付の向きが正立した状態となる。
次に、画像処理装置2は、文字認識により日付印に含まれる日付を認識する(ステップS7)。ステップS7の処理は、画像処理装置2の認識処理部230が行う。認識処理部230は、日付印の向きが正立した状態となっている画像内の日付を示す領域を抽出し、該領域に対する文字認識を行って、日付を認識する。認識処理部230は、例えば、ステップS6で抽出した日付の上側に位置する第1の直線部及び日付の下側に位置する第2の直線部と、日付印の輪郭を示す線とで囲まれた領域を、日付を示す領域として抽出する。また、認識処理部230は、既知の認識方法に従って、日付を示す領域内に並んでいる数字及び記号を認識する。この際、認識処理部230は、例えば、サーバ装置6の文字認識辞書610を参照して、日付を示す領域内に並んでいる数字及び記号を認識する。なお、認識処理部230が参照する文字認識辞書610は、画像処理装置2が備える記憶部(図示せず)に記憶させておいてもよい。
ステップS7の処理を終えると、画像処理装置2は、認識結果を出力し(ステップS8)、一連の画像処理を終了する。ステップS8の処理は、画像処理装置2の表示制御部240が行う。表示制御部240は、例えば、ステップS1で取得した帳票の画像、ステップS6で補正した日付印の画像、及び日付の認識結果を含む画面データを作成し、表示装置5に表示させる。
このように、本実施形態に係る画像処理装置2は、斜度抽出処理及びノイズ除去処理を行って、画像内の日付印における画像水平方向及び画像垂直方向のそれぞれとなす角が閾値以上となる部分を抽出する。
図4は、斜度抽出処理の内容を説明するフローチャートである。
上記のように、斜度抽出処理(ステップS3)は、画像処理装置2の解析部220における斜度抽出部222が行う。斜度抽出部222は、斜度抽出処理として、図4に示したようなループ処理(ステップS301~S306)を行う。ループ処理は、帳票の画像における画素毎に行われる。
ループ処理の開始端(ステップS301)では、斜度抽出部222は、画像内の画素のなかから処理の対象とする画素を選択する。例えば、斜度抽出部222は、ラスタスキャンにより処理の対象とする画素を選択する。一方、ループ処理の終了端(ステップS306)では、斜度抽出部222は、帳票の画像における全ての画素で処理を行ったか否かを判定する。処理を行っていない画素がある場合、斜度抽出部222は、ループ処理(ステップS301~S306)を継続する。全ての画素で処理を行った場合、斜度抽出部222は、ループ処理(ステップS301~S306)を終了し、斜度抽出処理を終了する。
ステップS301で処理の対象とする画素を選択した後、斜度抽出部222は、選択した画素の濃度が閾値TH1以下であるか否かを判定する(ステップS302)。閾値TH1は、帳票のグレースケール画像における下地の濃度と、線、文字、日付印等の帳票の要素の濃度との間となる値に設定する。ステップS2において、帳票の画像を、帳票の下地の濃度が要素(線、文字、日付印等)の濃度よりも高いグレースケール画像に変換した場合、濃度が閾値TH1よりも高い画素は、帳票における下地を示す画素である。このため、選択した画素の濃度が閾値TH1よりも高い場合(ステップS302;YES)、斜度抽出部222は、ステップS303~S305の処理を省略し、ループ処理の終了端(ステップS306)においてループ処理を継続するか否かを判定する。
一方、選択した画素の濃度が閾値TH1以下である画素は、帳票における線、文字、及び日付印等を含む帳票の要素を示す画素である。このため、選択した画素の濃度が閾値TH1以下である場合(ステップS302;YES)、斜度抽出部222は、次に、該当画素の周囲の画素の濃度とフィルタとに基づいて該当画素の斜度を算出する(ステップS303)。ステップS303において、斜度抽出部222は、例えば、下記数式(1)により、画素Pu,vの斜度Su,vを算出する。
Su,v=a1・Du-1,v-1+a2・Du,v-1+a3・Du+1,v-1
+a4・Du-1,v+a5・Du+1,v
+a6・Du-1,v+1+a7・Du,v+1+a8・Du+1,v+1 ・・・(1)
なお、画素Pu,vは、帳票の画像における左上角部の画素を原点(u=0,v=0)とし、右方向を+u方向、下方向を+v方向としたときに座標(u,v)で指定される画素である。また、数式(1)におけるDu-1,v-1、Du,v-1、Du+1,v-1、Du-1,v、Du+1,v、Du-1,v+1、Du,v+1、及びDu+1,v+1は、それぞれ、画素Pu-1,v-1、Pu,v-1、Pu+1,v-1、Pu-1,v、Pu+1,v、Pu-1,v+1、Pu,v+1、及びPu+1,v+1の濃度である。また、数式(1)におけるa1~a8は、それぞれ、フィルタ係数である。本実施形態では、フィルタ係数a1~a8を、例えば、a1=a8=1、a2=a4=a5=a7=0、及びa3=a6=-1とする。
選択した画素の斜度を算出すると、斜度抽出部222は、次に、算出した斜度の絶対値が閾値TH2以上であるか否かを判定する(ステップS304)。閾値TH2は、帳票の要素(線、文字、日付印等)における水平方向及び垂直方向に対して斜めに延伸する部分を示す画素の平均的な斜度と、水平方向及び垂直方向に延伸する部分を示す画素の平均的な斜度との間となる値に設定する。数式(1)により算出される斜度Su,vは、選択した画素Pu,vが帳票の要素(線、文字、日付印等)における水平方向及び垂直方向に対して斜めに延伸する部分を示す画素である場合の絶対値が、水平方向及び垂直方向に延伸する部分を示す画素である場合の絶対値よりも大きくなる。すなわち、算出した斜度の絶対値が閾値TH2よりも小さい画素は、帳票の要素(線、文字、日付印等)における水平方向及び垂直方向に延伸する部分を示す画素である。このため、斜度が閾値TH2よりも小さい場合(ステップS304;NO)、斜度抽出部222は、ステップS305の処理を省略し、ループ処理の終了端(ステップS306)においてループ処理を継続するか否かを判定する。すなわち、斜度抽出部222は、濃度が閾値TH1以下である帳票の要素を示す画素のうちの、帳票の要素(線、文字、日付印等)における水平方向及び垂直方向に延伸する部分を示す画素を、斜度を抽出する画素から除外する。
一方、斜度が閾値TH2以上である画素は、帳票の要素(線、文字、日付印等)における水平方向及び垂直方向に対して斜め方向に延伸する部分を示す画素である。このため、斜度の絶対値が閾値TH2以上である場合(ステップS304;YES)、斜度抽出部222は、該当画素の斜度を保持する(ステップS305)。この後、斜度抽出部222は、ループ処理の終了端(ステップS306)においてループ処理を継続するか否かを判定する。
このように、斜度抽出処理では、帳票の画像における帳票の要素(線、文字、日付印等)のうちの水平方向及び垂直方向に対して斜め方向に延伸する部分を示す画素の斜度のみを抽出する。すなわち、斜度抽出処理を行うことにより、帳票の画像における帳票の要素(線、文字、日付印等)のうちの水平方向及び垂直方向に対して斜め方向に延伸する部分を示す画素が特定される。帳票の画像における罫線は、一般に、画像水平方向に延伸する直線及び画像垂直方向に延伸する直線である。これに対し、日付印は、後述するように、円形又は多角形の輪郭部を含み、画像水平方向及び画像垂直方向のそれぞれに対して斜め方向に延伸する部分が存在する。このため、斜度抽出処理を行うことにより、帳票の画像における日付印が押印された位置(領域)を絞り込むことが可能となる。
なお、帳票には、枠線の角部が円弧状であったり、画像水平方向及び画像垂直方向のそれぞれに対して斜め方向に延伸する部分を含む文字が記載されていたりするものがある。この種の帳票に対して斜度抽出処理を行うと、円弧状の角部を示す画素や文字の一部を示す画素の斜度が閾値TH2以上となり、該当画素の斜度が抽出される。このため、本実施形態に係る画像処理では、斜度抽出処理の後、ノイズ除去処理(ステップS4)を行い、斜度を抽出した画素のうちの、日付印の外形の形状及び寸法の特徴を示す条件を満たさない画素を、ノイズとして日付印を示す画像の候補から除外する。
図5は、ノイズ除去処理の内容を説明するフローチャートである。図6は、グループ化処理の内容を説明するフローチャートである。
上記のように、ノイズ除去処理(ステップS4)は、画像処理装置2の解析部220におけるノイズ除去部223が行う。ノイズ除去部223は、ノイズ除去処理として、図5のフローチャートに沿った処理を行う。
ノイズ除去部223は、まず、斜度抽出処理において斜度を抽出した画素をグループ化するグループ化処理(ステップS401)を行う。ノイズ除去部223は、グループ化処理として、例えば、図6のフローチャートに沿った処理を行う。
グループ化処理において、ノイズ除去部223は、まず、画素に付与するグループ番号GNを初期化する(ステップS401a)。ステップS401aでは、ノイズ除去部223は、GN=1とする。
次に、ノイズ除去部223は、ループ処理(ステップS401b~S401j)を行う。ループ処理は、帳票の画像における画素毎に行われる。
ループ処理の開始端(ステップS401b)では、ノイズ除去部223は、画像内の画素のなかから処理の対象とする画素を選択する。例えば、ノイズ除去部223は、ラスタスキャンにより処理の対象とする画素を選択する。一方、ループ処理の終了端(ステップS401j)では、ノイズ除去部223は、帳票の画像における全ての画素で処理を行ったか否かを判定する。処理を行っていない画素がある場合、ノイズ除去部223は、ループ処理(ステップS401b~S401j)を継続する。全ての画素で処理を行った場合、ノイズ除去部223は、ループ処理(ステップS401b~S401j)を終了し、グループ番号を更新する処理(ステップS401k)を行う。
ステップS401bで処理の対象とする画素を選択した後、ノイズ除去部223は、該当画素の斜度を保持しているか否かを判定する(ステップS401c)。該当斜度を保持していない場合(ステップS401c;NO)、ノイズ除去部223は、ステップS401d以降の処理を省略し、ループ処理の終了端(ステップS401j)においてループ処理を継続するか否かを判定する。
一方、該当画素の斜度を保持している場合(ステップS401c;YES)、ノイズ除去部223は、次に、該当画素の左上、上、右上、及び左の画素にグループ番号が振られているか否かを判定する(ステップS401d)。該当画素の左上、上、右上、及び左の画素のなかにグループ番号が振られていない画素がある場合(ステップS401d;NO)、ノイズ除去部223は、該当画素(ステップS401bで選択した画素)にグループ番号GNを割り振る(ステップS401h)。ステップS401hの処理の後、ノイズ除去部223は、グループ番号GNをGN+1に更新し(ステップS401i)、ループ処理の終了端(ステップS401j)においてループ処理を継続するか否かを判定する。
これに対し、該当画素の左上、上、右上、及び左の画素の全てにグループ番号が振られている場合(ステップS401d;YES)、ノイズ除去部223は、次に、各画素に振られたグループ番号のうちの最小の番号を該当画素(ステップS401bで選択した画素)に割り振る(ステップS401e)。
ステップS401eの処理を終えると、ノイズ除去部223は、次に、該当画素の左上、上、右上、及び左の画素のグループ番号が全て同じであるか否かを判定する(ステップS401f)。グループ番号が全て同じである場合(ステップS401d;YES)、ノイズ除去部223は、ステップS401gの処理を省略し、ループ処理の終了端(ステップS401j)においてループ処理を継続するか否かを判定する。
一方、該当画素の左上、上、右上、及び左の画素に振られたグループ番号が2通り以上である場合(ステップS401f;NO)、ノイズ除去部223は、左上、上、右上、及び左の画素に振られたグループ番号のうちの最小のグループ番号を置換テーブルに登録する(ステップS401g)。ステップS401gの処理において、ノイズ除去部223は、左上、上、右上、及び左の画素に振られた2通り以上のグループ番号のうちの、最小ではないグループ番号と、最小のグループ番号とを対応付ける。ステップS401gの処理を終えると、ノイズ除去部223は、ループ処理の終了端(ステップS401j)においてループ処理を継続するか否かを判定する。ループ処理を継続する場合、ノイズ除去部223は、ループ処理の開始端(ステップS401b)において、次のループ処理の対象とする画素を選択する。そして、全ての画素に対してループ処理を行うと、ノイズ除去部223は、ループ処理を終了し、次に、置換テーブルに基づいてグループ番号を更新する(ステップS401k)。ステップS401kの処理では、ノイズ除去部223は、置換テーブルを参照し、画素に振られたグループ番号のうちの、ステップS401gの処理により最小のグループ番号が対応付けられた画素のグループ番号を、該最小のグループ番号に置き換える。例えば、置換テーブルにおいて、グループ番号「3」が割り振られた画素に、最小のグループ番号「1」が対応付けられている場合、ノイズ除去部223は、該当画素のグループ番号を「3」から「1」に更新する。
ステップS401kの処理を終えると、ノイズ除去部223は、グループ化処理を終了する。すなわち、ステップS401kの処理を終えると、ノイズ除去部223は、図5のグループ化処理(ステップS401)を終了し、次に、第1のループ処理(ステップS402~S405)を行う。第1のループ処理は、グループ化処理により決定したグループ毎に行われる。
第1のループ処理の開始端(ステップS402)では、ノイズ除去部223は、グループ化処理により決定したグループのなかから処理の対象とするグループを選択する。例えば、図6のグループ化処理のようにグループ番号が1以上の整数となる場合、ノイズ除去部223は、グループ番号が小さいグループから順に選択する。一方、第1のループ処理の終了端(ステップS405)では、ノイズ除去部223は、全てのグループで処理を行ったか否かを判定する。処理を行っていないグループがある場合、ノイズ除去部223は、第1のループ処理(ステップS402~S405)を継続する。全てのグループで処理を行った場合、ノイズ除去部223は、第1のループ処理(ステップS402~S405)を終了し、第2のループ処理(ステップS406~S409)を行う。
ステップS402で処理の対象とするグループを選択した後、ノイズ除去部223は、該当グループの縦横の長さが閾値TH3以上であるか否かを判定する(ステップS403)。閾値TH3は、帳票の画像における各種日付印の輪郭部分を示す画素のうちの、グループ化処理(ステップS401)において1つのグループにグループ化される複数の画素の分布に基づいて、該当グループの縦横の長さよりも小さい値に設定される。また、閾値TH3は、上述した帳票の枠線における円弧状の角部や、文字における斜め方向に延伸する部分の縦横の長さとして考えられる値よりも大きい値に設定する。すなわち、縦横の長さが閾値TH3よりも短いグループに含まれる画素は、日付印の要素(輪郭や日付の上下に位置する直線部分)を示す画素ではない可能性が非常に高い。このため、該当グループの縦横の長さが閾値TH3よりも短い場合(ステップS403;NO)、ノイズ除去部223は、該当グループを無効なグループとして日付印の要素を示すグループの候補から除外する(ステップS404)。すなわち、ステップS404において、ノイズ除去部223は、斜め方向に延伸する部分の縦横の長さが閾値TH3よりも短いグループに含まれる画素を、ノイズとして、日付印の要素を示す画素の候補から除去する。ステップS404の処理を終えると、ノイズ除去部223は、第1のループ処理の終了端(ステップS405)において第1のループ処理を継続するか否かを判定する。
一方、該当グループの縦横の長さが閾値TH3以上である場合(ステップS403;YES)、ノイズ除去部223は、ステップS404の処理を省略し、第1のループ処理の終了端(ステップS405)において第1のループ処理を継続するか否かを判定する。
第1のループ処理を行っていないグループがある場合、ノイズ除去部223は、第1のループ処理(ステップS402~S405)を継続する。全てのグループで処理を行った場合、ノイズ除去部223は、第1のループ処理(ステップS402~S405)を終了し、第2のループ処理(ステップS406~S409)を行う。第2のループ処理は、グループ化処理により決定され、かつ第1のループ処理において除外(除去)されなかったグループ毎に行われる。
第2のループ処理の開始端(ステップS406)では、ノイズ除去部223は、第1のループ処理において除外されなかったグループ(有効なグループ)のなかから処理の対象とするグループを選択する。例えば、図6のグループ化処理のようにグループ番号が1以上の整数となる場合、ノイズ除去部223は、グループ番号が小さいグループから順に選択する。一方、第2のループ処理の終了端(ステップS409)では、ノイズ除去部223は、処理の対象となる全てのグループで処理を行ったか否かを判定する。処理を行っていないグループがある場合、ノイズ除去部223は、第2のループ処理(ステップS406~S409)を継続する。全てのグループで処理を行った場合、ノイズ除去部223は、第2のループ処理(ステップS406~S409)を終了し、ノイズ除去処理を終了する。
ステップS406で処理の対象とするグループを選択した後、ノイズ除去部223は、該当グループの周囲に有効なグループが2組以上存在するか否かを判定する(ステップS407)。有効なグループは、グループ化処理により決定したグループのうちの、第1のループ処理において除外されなかったグループである。ステップS407の処理では、ノイズ除去部223は、例えば、現在処理の対象に選択されているグループにおける所定の位置を中心とする所定の範囲内(領域内)で有効なグループに含まれる画素の有無を探索し、一部又は全部が含まれる他の有効なグループが2組以上存在するか否かを判定する。このとき、有効なグループに含まれる画素の探索範囲は、例えば、帳票の画像における日付印の外形寸法の最大値よりもわずかに大きい範囲とする。
日付印の外形形状は円形や多角形であるものが多く、これらの日付印の輪郭は、上下対称、及び左右対称であり対称性が高い。このため、グループ化処理(ステップS401)では、日付印の輪郭を示す画素のグループが2組以上抽出され、日付印の輪郭を示す複数のグループ同士の距離は、日付印の外形寸法に応じた距離となる。従って、現在処理の対象として選択されているグループを中心とする所定の範囲内に他の有効なグループが1組しか存在しない、又は1組も存在しない場合、選択されているグループに含まれる画素は、日付印の要素以外の要素を示す画素である可能性が非常に高い。このため、現在処理の対象として選択されているグループの周囲に存在する有効なグループが1組であるか又は有効なグループが存在しない場合(ステップS407;NO)、ノイズ除去部223は、選択されているグループを無効なグループとして日付印の要素を示すグループの候補から除外する(ステップS408)。すなわち、ステップS408において、ノイズ除去部223は、周囲に他の有効なグループが2組以上存在していないグループに含まれる画素を、ノイズとして、日付印の要素を示す画素の候補から除去する。ステップS408の処理を終えると、ノイズ除去部223は、第2のループ処理の終了端(ステップS409)において第2のループ処理を継続するか否かを判定する。
一方、周囲に他の有効なグループが2組以上存在している場合(ステップS407;YES)、ノイズ除去部223は、ステップS408の処理を省略し、第2のループ処理の終了端(ステップS409)において第2のループ処理を継続するか否かを判定する。
第2のループ処理を行っていないグループがある場合、ノイズ除去部223は、第2のループ処理(ステップS406~S409)を継続する。全てのグループで処理を行った場合、ノイズ除去部223は、第2のループ処理(ステップS406~S409)を終了し、ノイズ除去処理を終了する。
このように、本実施形態の画像処理装置2では、帳票の画像内における日付印の大部分は、輪郭部に画像水平方向及び画像垂直方向のそれぞれに対し斜め方向に延伸する部分が複数存在することを利用して、帳票の画像内における日付印の輪郭を示す画素を抽出する。また、本実施形態の画像処理装置2では、グレースケール画像における画素の濃度に基づいて算出した斜度を利用して、日付印の輪郭を示す画素を特定する。すなわち、本実施形態の画像処理装置2では、日付印の外形形状や色に基づくパターンマッチングとは異なる方法により、帳票の画像内における日付印の位置を特定する。このため、本実施形態の画像処理装置2では、輪郭が多角形(例えば、八角形)である日付印が押印された帳票の画像からも日付印の位置を容易に特定することが可能となる。また、本実施形態の画像処理装置2では、日付印の色によらず、日付印の位置を特定することが可能となる。更に、本実施形態の画像処理装置2では、日付印の位置が帳票上で指定されている領域からはみ出している場合のように日付印が押印された領域内に帳票の他の要素が存在する場合にも、日付印の位置を特定することが可能となる。よって、本実施形態の画像処理装置2では、オペレータによる操作を介さずに、自動的に帳票の画像から日付印の位置を特定することが可能となる。
しかも、本実施形態の画像処理装置2が行う画像処理は、図3のフローチャートに示したように、帳票の画像における日付印の向きが正立となるよう補正する正立補正処理(ステップS6)を含む。
図7は、正立補正処理の内容を説明するフローチャートである。
上記のように、正立補正処理(ステップS6)は、画像処理装置2の解析部220における補正部225が行う。補正部225は、正立補正処理として、図7のフローチャートに沿った処理を行う。
補正部225は、まず、帳票の画像から切り出した日付押印領域を二値化する(ステップS601)。日付押印領域は、図3のフローチャートにおけるステップS5の処理において、帳票の画像から切り出した日付印が押印された領域(部分画像)である。なお、日付押印領域を切り出す帳票の画像は、ステップS1で取得したカラー画像に限らず、ステップS2の変換処理により得たグレースケール画像であってもよい。ステップS601の処理では、補正部225は、日付押印領域内の画素のうちの下地(紙の色)を示す画素を「0」とし、帳票の要素(日付印、線、文字等)を示す画素を「1」とする。
次に、補正部225は、第1のループ処理(ステップS602~S608)を行う。第1のループ処理は、日付押印領域内の画素毎に行われる。
第1のループ処理の開始端(ステップS602)では、補正部225は、日付押印領域内の画素のなかから処理の対象とする画素を選択する。例えば、補正部225は、ラスタスキャンにより処理の対象とする画素を選択する。一方、第1のループ処理の終了端(ステップS608)では、補正部225は、日付押印領域内の全ての画素で処理を行ったか否かを判定する。処理を行っていない画素がある場合、補正部225は、第1のループ処理(ステップS602~S608)を継続する。全ての画素で処理を行った場合、補正部225は、第1のループ処理(ステップS602~S608)を終了し、日付印の傾き角を算出して日付押印領域を回転させる処理(ステップS609~S611)を行う。
ステップS602で処理の対象とする画素を選択した後、補正部225は、二値化する処理において該当画素に割り当てられた値が「0」であるか否かを判定する(ステップS603)。値が「0」である画素は、帳票の下地(紙の色)を示す画素である。このため、画素の値が「0」である場合(ステップS603;YES)、補正部225は、第2のループ処理(ステップS604~S607)を省略し、第1のループ処理の終了端(ステップS608)において第1のループ処理を継続するか否かを判定する。
一方、画素の値が「0」以外である場合(ステップS603;NO)、補正部225は、次に、第2のループ処理(ステップS604~S607)を行う。第2のループ処理は、0≦θ<2πの範囲内で選択された複数の角度θの組に含まれる角度θ毎に行われる。例えば、複数の角度θの組は、N通りの角度θn=(2π/100)・n{n=0,1,2,・・・,N-1}を含む。Nは任意の整数であり、例えば、N=100とする。
第2のループ処理の開始端(ステップS604)では、補正部225は、上記の複数の角度θの組のなかから処理の対象とする角度θを選択する。例えば、補正部225は、値が小さい角度θから順に選択する。一方、第2のループ処理の終了端(ステップS607)では、補正部225は、全ての角度θで処理を行ったか否かを判定する。処理を行っていない角度θがある場合、補正部225は、第2のループ処理(ステップS604~S607)を継続する。全ての角度θで処理を行った場合、補正部225は、第2のループ処理(ステップS604~S607)を終了し、第1のループ処理の終了端(ステップS608)において第1のループ処理を継続するか否かを判定する。
ステップS604で処理の対象とする角度θを選択した後、補正部225は、現在処理の対象になっている画素の座標(x,y)に対するρ=x・cosθ+y・sinθを算出し(ステップS605)、θ-ρ座標系に(θ,ρ)をプロットする(ステップS606)。ステップS605及びS606の処理を終えると、補正部225は、第2のループ処理の終了端(ステップS607)において第2のループ処理を継続するか否かを判定する。ステップS605及びS606の処理を行っていない角度θがある場合、補正部225は、第2のループ処理を継続する。そして、全ての角度θでステップS605及びS606の処理を行うと、補正部225は、第2のループ処理を終了し、第1のループ処理の終了端(ステップS608)において第1のループ処理を継続するか否かを判定する。処理を行っていない画素がある場合、補正部225は、第1のループ処理(ステップS602~S608)を継続する。全ての画素で処理を行った場合、補正部225は、第1のループ処理(ステップS602~S608)を終了し、日付印の傾き角を算出して日付押印領域を回転させる処理(ステップS609~S611)を行う。
第1のループ処理を終了すると、補正部225は、次に、第1のループ処理の結果に基づいて、θ-ρ座標系にプロットされた点(θ,ρ)のなかから、プロットされた頻度が高い順に点(θ1,ρ1)及び点(θ2,ρ2)を抽出する(ステップS609)。
次に、補正部225は、日付押印領域(部分画像)のx-y座標系においてρ1=x・cosθ1+y・sinθ1を満たす第1の直線上、及びρ2=x・cosθ2+y・sinθ2を満たす第2の直線上に、それぞれ、日付印における日付の上側に位置する第1の直線部、及び日付の下側に位置する第2の直線部があると認識する(ステップS610)。ステップS610において、補正部225は、例えば、第1の直線上に日付の上側に位置する第1の直線部があり、第2の直線上に日付の下側に位置する第2の直線部があると認識する。
次に、補正部225は、第1の直線部及び第2の直線部が画像内で水平となるよう、帳票の画像から切り出した日付押印領域全体を回転させる(ステップS611)。ステップS611の処理では、補正部225は、例えば、上記の角度θ1及びθ2の平均値θ=(θ1+θ2)/2を算出し、日付押印領域全体を角度-θだけ回転させる。ステップS611の処理を終えると、補正部225は、正立補正処理を終了する。
このように、本実施形態の画像処理装置2では、帳票の画像における日付印の位置を特定した後、画像内水平方向に対する日付印における直線部の傾きを算出し、当該傾きに基づいて画像内の日付印が押印された領域を回転させる。このため、本実施形態の画像処理装置2では、帳票に押印された日付印の向きが正立となっていない場合にも、オペレータの操作を介することなく、自動的に、日付印の向きを正立となる向きに補正して日付を認識する処理を行うことが可能となる。
図8は、帳票の例を示す図である。
図8には、帳票8の一例である電気料金振込通知票を示している。帳票8の上辺部には、帳票の種別を示す「電気料金振込通知票」等の文字列801が印刷されている。文字列801の下方には、お客様番号、適用期間、氏名等の顧客情報802が印刷されている。顧客情報802の下方には、お客様番号や振込金額等の情報を含む振込情報803が印刷されている。振込情報803の下方左側には、帳票8を発行した電力会社の情報804や、顧客に対するメッセージ805が印刷されている。また、振り込み情報803の下方右側には、振込手続を受け付けた日付を示す日付印を押印する領域を示す枠線806が印刷されている。
図8の帳票8を利用して電気料金の振込手続を行った場合、振込を受け付けた係員は、振込を受け付けた日付を示す日付印を帳票の枠線806で囲まれた領域内に押印する。本実施形態の画像処理装置2は、枠線806で囲まれた領域内に日付印が押印された帳票8の画像を取得し、日付印に含まれる日付を認識する。しかしながら、帳票8に日付印を押印する作業は係員が手作業で行っており、しかも、係員は印面が見えない状態で日付印を押印する。このため、帳票8に押印された日付印の向きや位置は、帳票毎に異なることが多い。
図9は、帳票に押印された日付印の例を示す図である。図10は、帳票に押印された日付印の別の例を示す図である。
図9の(a)には、帳票8の枠線806で囲まれた領域内の適切な位置に適切な向きで押印された日付印9の例を示している。日付印9は、一般に、輪郭部901で囲まれた領域が上下方向に並ぶ2本の直線部902,903により3つの領域に分割されており、該3つの領域のうちの上下方向中央の領域に日付904が表示される。また、日付904の上側に位置する領域には項目名905が表示され、日付904の下側に位置する領域には振込を受け付けた金融機関名906が表示される。
帳票8は、図8に示した向きが正立である。このため、帳票8に押印された日付印9は、図9の(a)に示したように、日付の上側に位置する第1の直線部902及び下側に位置する第2の直線部903の延伸方向が帳票8の上辺(及び下辺)と平行になる向きが正立となる。このように、帳票8に押印された日付印9の向きが正立となっていれば、帳票8の画像から日付印9の日付904を文字認識する際に、正しく認識することが可能である。
図9の(b)には、押印した位置は適切だが向きが正立ではない日付印9の例を示している。係員が手作業で日付印9を押印する場合、押印する位置は目視により調整可能であるが、印面の傾きを目視により調整することは困難である。このため、係員が手作業で日付印9を押印した場合、図9の(b)に示すように、日付の上側及び下側に位置する直線部902,903の延伸方向が、帳票8の上辺(及び下辺)に対して斜めになる場合がある。このように日付印の向きが斜めになっても、帳票8の上辺(及び下辺)と、日付の上側及び下側に位置する直線部902,903の延伸方向とのなす角が小さい場合には、文字認識により日付904を正しく認識することが可能である。しかしながら、図9の(b)に示したように、帳票8の上辺(及び下辺)と、日付の上側及び下側に位置する直線部902,903の延伸方向とのなす角が大きくなると、文字認識により日付904を正しく認識することは困難となる。
図9の(c)には、向きは正立だが押印する領域からはみ出している日付印9の例を示している。係員が手作業で日付印9を押印する場合、日付印9を押印する係員の癖や押印する際の状況(緊急性の有無等)等に応じて、押印する位置にずれ(ばらつき)が生じる。このため、例えば、図9の(c)に示すように、日付印9の一部分が枠線806で囲まれた領域外にはみ出してしまい、日付印9の輪郭部901で囲まれた領域内に、帳票8に印刷された枠線806の一部が含まれることがある。このような場合、例えば、帳票8の見出しや定義型に基づいて日付印9の位置を特定しようとすると、枠線806と日付印9の直線部902等が近接する或いは重なるため、位置の特定に失敗する。
また、図10には、日付印9の別の例として、輪郭部911で囲まれた領域が八角形となる日付印9を示している。日付印9における輪郭部901,911で囲まれた領域は、上下方向の中央部に日付904が表示されており、日付の上側又は下側に押印した係員(金融機関)を識別可能な情報が表示されていればよい。このため、日付印9における輪郭部で囲まれた領域の形状や外形形状等には自由度がある。すなわち、日付印9の外形形状に多様性があるため、パターンマッチングにより帳票8の画像から日付印9の位置を特定する場合、多数のパターン(定義)を用意する必要がある。
このような実状を鑑み、本実施形態の画像処理装置2では、外形形状や色が異なる多種の日付印に共通する特徴、すなわち日付印9の輪郭部901,911には画像水平方向及び画像垂直方向に対して斜め方向に延伸する部分が複数存在することを利用して、帳票8の画像内の日付印9の位置を特定する。このため、本実施形態の画像処理装置2は、図3のフローチャートに示した斜度抽出処理(ステップS3)及びノイズ除去処理(ステップS4)を行う。
図11は、斜度の算出方法を説明する図である。図12は、斜度の算出結果を示す図である。
図11には、日付印9が押印された帳票の画像10と、該帳票の画像10における2つの部分領域Q1,Q2を拡大した図と、フィルタ11とを示している。帳票の画像10における部分領域Q1は、帳票における画面垂直方向に延伸する直線(線分)1001と下地とを含む4画素×5画素の領域である。また、帳票の画像10における部分領域Q2は、日付印9の輪郭部901のうちの、右肩上がりの部分であって画面水平方向及び画面垂直方向のそれぞれに対して斜め方向に延伸している部分と、下地とを含む4画素×5画素の領域である。
拡大した部分領域Q1及びQ2のそれぞれにおける各マスに記載した数値は、それぞれ、グレースケール化した帳票の画像10における該当画素の濃度を示している。例えば、256階調のグレースケールに変換した帳票の画像10では、下地を示す画素の濃度は256に近い大きな値となり、帳票の要素(線、文字、日付印等)を示す画素の濃度は0に近い小さな値となる。
帳票の画像10に対し斜度抽出処理(ステップS3)を行う場合、画像処理装置2では、上記のように、画像10内の画素のうちの濃度が閾値TH1以上である画素は、斜度の算出を省略する(ステップS302;NO)。すなわち、部分領域Q1における左端の5個の画素及び右端の5個の画素、部分領域Q2における左上側の白い下地の画素及び右下側の白い下地の画素のそれぞれが処理の対象として選択されている場合、画像処理装置2は、斜度の算出を省略する。
また、黒い下地の画素のそれぞれが処理の対象として選択されている場合、画像処理装置2は、該当画素の周囲の隣接する8画素の濃度とフィルタ11とに基づいて、該当画素の斜度を算出する(ステップS303)。このとき、画像処理装置2は、上記のように、数式(1)により該当画素の斜度を算出する。例えば、図11の部分領域Q1における画素Pu1,v1(濃度10)の斜度Su1,v1は、下記数式(2)により算出する。
Su1,v1=a1・Du1-1,v1-1+a2・Du1,v1-1+a3・Du1+1,v1-1
+a4・Du1-1,v1+a5・Du1+1,v1
+a6・Du1-1,v1+1+a7・Du1,v1+1+a8・Du1+1,v1+1
=a1・240+a2・16+a3・28
+a4・250+a5・15
+a6・240+a7・17+a8・20 ・・・(2)
数式(2)における係数a1~a8は、それぞれ、フィルタ11により与えられる。図11のフィルタ11は、3×3の9マスのうちの中央のマスが現在処理対象となっている画素と対応している。すなわち、図11のフィルタ11は、画素Pu1,v1の左上の画素Pu1-1,v1-1に対する係数a1、及び画素Pu1,v1の右下の画素Pu1+1,v1+1に対する係数a8を「1」とすることを示している。同様に、図11のフィルタ11は、画素Pu1,v1の右上の画素Pu1-1,v1+1に対する係数a3、及び画素Pu1,v1の左下の画素Pu1-1,v1+1に対する係数a6を「-1」とすることを示している。更に、図11のフィルタ11は、画素Pu1,v1の上下左右の各画素Pu1,v1-1、Pu1,v+1、Pu-1,v1、及びPu1,v1+1に対する係数a2、a7、a4、及びa5を「0」とすることを示している。従って、数式(2)のa1~a8にフィルタ11で指定された値を入れて計算をすると、図11の部分領域Q1における画素Pu1,v1(濃度10)の斜度Su1,v1は、図12に示したように「-8」となる。
また、例えば、図11の部分領域Q2における画素Pu2,v2(濃度20)の斜度Su2,v2は、図12に示したように「440」となる。
更に、詳細な説明は省略するが、部分領域Q1及びQ2における他の黒い下地の画素についての斜度は、それぞれ、図12に示したような値となる。なお、図12の部分領域Q1及びQ2における「*」は、具体的な数値を省略する。
また、図11及び図12の部分領域Q2は、日付印9の輪郭部901における右上がりの部分を示す画素を含む領域である。このため、部分領域Q2内の画素に対して図11のフィルタ11を適用して算出される斜度は、正の値となっている。これに対し、詳細な説明は省略するが、日付印9の輪郭部901における右下がりの部分を示す画素に対して図11のフィルタ11を適用して斜度を算出した場合には、負の値となる。このため、斜度を算出する処理(ステップS303)の後に行うステップS304の判定処理では、算出した斜度の絶対値が閾値TH2以上であるか否かを判定する。
このように、帳票の画像10における帳票の要素(線、文字、日付印9等)を示す画素の斜度を算出した場合、帳票の要素のうちの延伸方向が画像10における水平方向又は垂直方向と略平行な部分を示す画素の斜度は、帳票の要素のうちの延伸方向が水平方向及び垂直方向のそれぞれとなす角が閾値以上となる部分を示す画素の斜度との間には明確な差が生じる。このため、本実施形態の画像処理装置2が行う斜度抽出処理(ステップS3)では、斜度を算出した画素のうちの、斜度の値が閾値TH2以上である画素のみを抽出し、該画素の情報を保持する(ステップS305)。従って、斜度抽出処理による斜度の抽出結果は、例えば、図13の抽出結果13のようになる。
図13は、斜度の抽出結果を示す図である。
図13の抽出結果13は、帳票の画像10における各画素のうちの斜度を保持している画素を黒色で示している。抽出結果13における右下角部に位置する4本の円弧状の曲線1301,1302,1303,及び1304は、それぞれ、日付印9の輪郭部901における斜度が閾値TH2以上となる画素の分布を示している。また、抽出結果13における右下角部に位置する2本の右上がりの直線1305及び1306は、それぞれ、日付印9の日付904の上側に位置する直線部902及び下側に位置する直線部903を示す画素の分布を示している(図11を参照)。
また、抽出結果13における下辺部に位置する4本の円弧状の曲線1307、1308、1309、及び1310は、それぞれ、帳票8の下辺部に位置するメッセージ804(図8を参照)を囲む枠線における角部を示す画素の分布を示している。更に、抽出結果13における他の部分に位置する4本の円弧状の曲線1311,1312,1313,及び1314、並びに他の円弧状の曲線は、それぞれ、帳票8における他の要素(枠線及び文字)のうちの、斜度が閾値TH2以上となる画素の分布を示している。すなわち、ステップS3の斜度抽出処理を行った場合、図13の抽出結果13のように、日付印9の輪郭部901や直線部902,903とは別の帳票の要素における、延伸方向が画像水平方向及び画像垂直方向に対して斜め方向となる部分を示す画素の斜度も抽出される。このため、本実施形態の画像処理装置2が行う画像処理では、上記のように、斜度抽出処理の後にノイズ除去処理(ステップS4)を行い、日付印9の要素(輪郭部901や直線部902,903等)以外の要素を示す画素を除外する。ノイズ除去処理では、上記のように、まず、抽出結果13において斜度を保持している複数の画素を連続する画素毎のグループにグループ化するグループ化処理(ステップS401)を行う。ここで、グループ化処理の具体例として、図13の抽出結果13における領域1320内の画素に対するグループ化について、図14A及び図14Bを参照しながら説明する。
図14Aは、画素をグループ化する方法を説明する図(その1)である。図14Bは、画素をグループ化する方法を説明する図(その2)である。
画像処理装置2は、グループ化処理として、例えば、図6のフローチャートに沿った処理を行う。このとき、画像処理装置2は、帳票の画像10における左上角部の画素から順にラスタスキャンをし、斜度を保持している画素にグループ番号を付与する。
図14Aの(a)には、帳票の画像10における図13の領域1320と対応する部分領域1320’内の画素Pu1,v1を処理の対象に選択した時点での、グループ番号の付与状況を示している。なお、図14Aの(a)では、白い下地のマスが斜度を保持している画素であり、網掛けを付したマスが斜度を保持していない画素である。処理の対象となる画素をラスタスキャンにより選択する場合、画素Pu1,v1の左側に位置する画素及び、画素Pu1,v1を含む画素列よりも上側の画素列に含まれる画素は、選択済みである。従って、画素Pu1,v1を選択した時点では、図14Aの(a)に示すように、画素Pu1,v1を含む画素列よりも上側の画素列に含まれる、斜度を保持している画素にはグループ番号が割り振られている。そして、画素Pu1,v1にグループ番号を割り振る際には、まず、画素Pu1,v1の左上、上、右上、及び左のいずれかにグループ番号が割り振られた画素が隣接しているか否かを判定する(ステップS401d)。図14Aの(a)に示した例では、画素Pu1,v1の左上の隣接する画素、及び右上の隣接する画素に、グループ番号が割り振られている。また、画素Pu1,v1の左上の隣接する画素のグループ番号は「1」であり、右上の隣接する画素のグループ番号は「3」である。このため、画像処理装置2は、図14Aの(b)に示すように、画素Pu1,v1に対し、最小のグループ番号である「1」を割り振る(ステップS401e)。
画素Pu1,v1に対してグループ番号を割り振った後、画像処理装置2は、画素Pu1,v1の左上の隣接する画素のグループ番号と、及び右上の隣接する画素のグループ番号とが同一であるか否かを判定する(ステップS401f)。図14Aの(b)に示した例では、2つの画素のグループ番号が異なる。このため、画像処理装置2は、図14Aの(c)に示すように、置換テーブル14に、グループ番号「3」に対する置換番号として「1」を登録する(ステップS401g)。
その後、詳細な説明は省略するが、グループ化処理におけるループ処理(図6のステップS401b~S401j)が終了すると、図14Bの(d)に示すように、斜度を保持している全ての画素に対しグループ番号が割り振られる。ループ処理(図6のステップS401b~S401j)を終了した後、画像処理装置2は、置換テーブル14に基づいて、画素に割り振ったグループ番号を更新する(ステップS401k)。置換テーブル14には、グループ番号「3」を「1」に置換する情報が含まれるため、画像処理装置1は、グループ番号が「3」である画素のグループ番号を「1」に更新する(図14Bの(e)を参照)。
斜度を保持している画素をグループ化するグループ化処理(ステップS401)を終了すると、画像処理装置2は、図5のフローチャートにおける第1のループ処理及び第2のループ処理を行って、グループ化処理により得られたグループのうちの、日付印の輪郭部が持つ条件を満たしていないグループを、日付印の輪郭部を示すグループの候補から除外する。
図15は、ノイズの除去方法を説明する図である。
図15の(a)には、斜度の抽出結果13に基づいてグループ化処理を行った場合の処理結果15を示している。処理結果15における右下角部に位置する4本の円弧状の曲線1501,1502,1503,及び1504は、それぞれ、日付印9の輪郭部901における斜度が閾値TH2以上となる画素のグループを示している。また、処理結果15における右下角部に位置する2本の右上がりの直線1505及び1506は、それぞれ、日付印9の日付904の上側に位置する直線部902及び下側に位置する直線部903を示す画素のグループを示している(図11を参照)。
また、処理結果15における下辺部に位置する4本の円弧状の曲線1507、1508、1509、及び1510は、それぞれ、帳票8の下辺部に位置するメッセージ804(図8を参照)を囲む枠線における角部を示す画素のグループを示している。更に、処理結果15における他の部分に位置する4本の円弧状の曲線1511,1512,1513,及び1514、並びに他の円弧状の曲線は、それぞれ、帳票8における他の要素(枠線及び文字)のうちの、斜度が閾値TH2以上となる画素のグループを示している。このような処理結果15に対し第1のループ処理(図5のステップS402~S405)を行うと、縦横の長さが閾値TH3よりも短いグループは、日付印の輪郭部を示すグループの候補から除外される。閾値TH3は、日付印の輪郭を示すグループにおける縦横の長さよりも短い値とする。このため、第1のループ処理を行うと、例えば、図15の(b)に示すように、帳票における枠線の角部を示す画素のグループ1511、1512、1513、及び1514が、日付印の輪郭を示すグループの候補から除外される。
第1のループ処理が終了すると、画像処理装置2は、第2のループ処理(図5のステップS406~S409)を行う。第2のループ処理では、グループ毎に、周囲に有効なグループが2組以上存在するか判定し(ステップS407)、有効なグループが1組しか存在しないグループ或いは存在しないグループを、日付印の輪郭部を示すグループの候補から除外する(ステップS408)。ステップS407の判定処理では、上記のように、日付印の輪郭部を示す複数のグループ同士の距離に基づいて設定される探索領域内に一部又は全部が含まれる他の有効なグループを探索する。従って、例えば、図15の(b)における帳票の枠線と対応するグループ1507の周囲に存在する他の有効なグループは、グループ1510の1組のみとなる。同様に、帳票の枠線と対応するグループ1508、1509、及び1510の周囲に存在する他の有効なグループは、それぞれ、1組となる。これに対し、日付印の輪郭部と対応するグループ1501,1502,1503,及び1504、並びに直線部と対応するグループ1505及び1506は、それぞれ、周囲に存在する他の有効なグループが2組以上となる。従って、第2のループ処理を行うことにより、帳票の枠線と対応するグループ1507、1508、1509、及び1510が、日付印の輪郭部を示すグループの候補から除外される。すなわち、ノイズ除去処理が終了すると、図15の(b)における日付印の輪郭部と対応するグループ1501,1502,1503,及び1504、並びに直線部と対応するグループ1505及び1506のみが、日付印の輪郭を示すグループの候補として残る。よって、本実施形態の画像処理装置2では、斜度抽出処理及びノイズ除去処理を行うことにより得られたグループの画像内における位置に基づいて、自動的に、帳票に押印された日付印の位置を特定することが可能となる。
更に、本実施形態の画像処理装置2では、帳票の画像10における日付印の位置を特定した後、日付印の向きが正立となるよう日付印の傾きを補正する。
図16は、日付印の傾きを算出する方法を説明する図である。
図16の(a)には、帳票の画像10から切り出した日付印9における第1の直線部902を示す複数の画素のうちの3つの画素r1、r2、及びr3のx-y座標系での座標を示している。x-y座標系におけるx方向は、画像内におけるu方向と平行であり、かつ正の方向がu方向と同一である。一方、x-y座標系におけるy方向は、画像内におけるv方向と平行であり、かつ正の方向がv方向とは反対の方向である。
日付印の傾きを算出する際には、上記のように、帳票の画像10から切り出した領域(部分画像)内における日付印9の要素を示す画素に対する、ハフ変換を行う。ハフ変換では、日付印9の要素を示す画素毎に、0≦θ<2πの範囲内において下記数式(3)を満たすρの分布を算出する。
ρ=x・cosθ+y・sinθ (3)
数式(3)におけるx及びyは、それぞれ、処理の対象に選択された画素のx-y座標系におけるx座標及びy座標である。例えば、図16の(a)における座標(x1,y1)の画素r1を処理の対象に選択した場合、画像処理装置2は、0≦θ<2πの範囲内において下記数式(4)を満たすρの分布を算出する。
ρ=x1・cosθ+y1・sinθ (4)
数式(4)により算出される画素r1の座標(x1,y1)についてのθとρとの関係をθ-ρ座標系にプロットすると、例えば、図16の(b)に示したような曲線となる。また、詳細な説明は省略するが、画素r2の座標(x2,y2)についてのθとρとの関係、及び画素r3の座標(x3,y3)についてのθとρとの関係を、θ-ρ座標系にプロットすると、それぞれ、例えば、図16の(b)に示したような曲線となる。ここで、θ-ρ座標系における3本の曲線の交点となる点(θ1,ρ1)を抽出し、下記数式(5)を生成すると、x-y座標系において数式(5)を満たす直線は、3つの画素r1、r2、及びr3を通る直線となる。
ρ1=x・cosθ1+y・sinθ1 (5)
また、数式(5)は、数式(6)のように書き換えられる。
y=(-cosθ1/sinθ1)・x+(ρ1/sinθ1)
すなわち、ハフ変換により数式(5)を導出することにより、図16の(b)に示したように、日付印9における日付904の上側に位置する第1の直線部902の、x方向に対する傾き角を算出することが可能となる。
また、同様の手順により、日付印9における日付904の下側に位置する第2の直線部903上の各点を含む直線を示す式ρ2=x・cosθ2+y・sinθ2を導出することにより、第2の直線部の、x方向に対する傾き角を算出することが可能となる。なお、日付印9における第1の直線部902と第2の直線部903とは略平行であるため、ハフ変換を利用した算出した2つの数式における傾きを示す値は、略同一となる。
このように、ハフ変換に基づいて、日付印9の向きが正立である場合に水平方向に延伸する第1の直線部902及び第2の直線部903の傾き角を算出することにより、日付印9の傾き角θがわかる。よって、帳票の画像10から切り出した日付印を-θだけ回転させることにより、第1の直線部902及び第2の直線部903の傾き角が0度となり、日付印の向きが正立となる。
図17は、日付印が正立補正される様子を説明する図である。
図17の(a)には、帳票の画像10から日付印9が押印された領域を切り出す際の領域Q3の例を示している。領域Q3は、例えば、斜度抽出処理及びノイズ除去処理により得られた、日付印の輪郭部を示す画素を含むグループの全てを内包する寸法の矩形領域とする。
帳票の画像10から領域Q3を切り出した後、画像処理装置2は、ハフ変換を利用し、日付印9における第1の直線部902を含む直線を示す数式ρ1=x・cosθ1+y・sinθ1、及び第2の直線部903を含む直線を示す数式ρ2=x・cosθ2+y・sinθ2を導出する。その後、画像処理装置2は、図17の(b)に示すように、導出した2つの数式に基づいて、切り出した領域Q3における日付印の傾き角θを算出する。
傾き角θを算出した後、画像処理装置2は、図17の(c)に示すように、切り出した領域Q3を角度-θだけ回転させる変換処理を行う。これにより、日付印9の向きが正立となる。従って、日付印9における第1の直線部902、第2の直線部903、及び輪郭部901により囲まれた領域に対する文字認識を行うことにより、日付印9の日付904を正しく認識することが可能となる。
以上説明したように、本実施形態に係る画像処理装置2は、帳票の画像10における日付印9には画像水平方向及び画像垂直方向のそれぞれとなす角が閾値以上となる部分が複数存在することを利用して、画像10における日付印9の位置を特定する。このため、本実施形態の画像処理装置2では、帳票の画像10における日付印9の輪郭(外形形状)、寸法、及び色等の組み合わせによらず、自動的に日付印9の位置を特定することが可能となる。すなわち、本実施形態の画像処理装置2によれば、日付印の多様化に迅速かつ柔軟に対応することが可能となる。従って、例えば、画像処理装置2(画像処理システム1)のオペレータは、多様化する日付印のパターンを定義する作業や、帳票の画像10における日付印が押印された領域を選択する作業から解放される。
更に、本実施形態に係る画像処理装置2は、帳票の画像10における日付印の傾き角θを算出し、該傾き角θに基づいて日付印の向きが正立となるよう日付印の向きを補正する。このため、画像処理装置2では、文字認識により日付印に含まれる日付を認識する際の、日付印の傾きによる誤認識を低減することが可能となる。従って、例えば、画像処理装置2(画像処理システム1)のオペレータは、日付印の向きを補正する作業や誤認識された日付を修正する作業から解放される。
なお、図3のフローチャートは、本実施形態に係る画像処理装置2が行う画像処理の一例に過ぎない。本実施形態の画像処理装置2が行う画像処理は、本実施形態で説明した要旨を逸脱しない範囲において、適宜変更可能である。例えば、本実施形態の画像処理装置2が行う画像処理は、日付印の日付を文字認識するだけでなく、帳票8における文字列の一部又は全部を文字認識する処理を含むものであってもよい。また、本実施形態の画像処理装置2が行う画像処理は、例えば、日付印の傾きを補正した場合には補正後の日付印を帳票の画像10に合成した画像を生成して保持する処理を含むものであってもよい。
また、図4のフローチャートは、斜度抽出処理の一例に過ぎない。斜度抽出処理は、図4のフローチャートに沿った処理に限らず、本実施形態で説明した要旨を逸脱しない範囲において、適宜変更可能である。例えば、斜度抽出処理は、帳票における直線のうち水平方向及び垂直方向のそれぞれとのなす角が所定の角度以上(例えば15度以上)となる部分と、帳票における曲線のうち接線の方向と水平方向及び垂直方向のそれぞれとのなす角が所定の角度以上となる部分とを抽出する処理であってもよい。
また、図5及び図6のフローチャートは、ノイズ除去処理の一例に過ぎない。ノイズ除去処理は、図5及び図6のフローチャートに沿った処理に限らず、本実施形態で説明した要旨を逸脱しない範囲において、適宜変更可能である。更に、図7のフローチャートは、正立補正処理の一例に過ぎない。正立補正処理は、図7のフローチャートに沿った処理に限らず、本実施形態で説明した要旨を逸脱しない範囲において、適宜変更可能である。
また、本実施形態に係る画像処理装置2の機能構成は、図2に示した構成に限らず、適宜変更可能である。例えば、認識処理部230が参照する文字認識辞書601は、画像処理装置2が備える記憶部(図示せず)に記憶させておいてもよい。また、例えば、スキャナ装置3が出力する帳票の画像10がグレースケールの画像或いは二値画像である場合には、解析部220における変換部221を省略することが可能である。また、例えば、解析部220における斜度抽出部222及びノイズ除去部223は、斜度抽出処理(ステップS3)及びノイズ除去処理(ステップS4)を一連の1つの処理として行う1つの処理部であってもよい。更に、本実施形態に係る画像処理装置2は、例えば、メモリカードや光ディスク等の可搬型記録媒体、或いはネットワークを介して提供される帳票の画像10を取得して上記の画像処理を行えるようにしてもよい。
加えて、本実施形態に係る画像処理装置2は、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、コンピュータとプログラムとにより実現される画像処理装置2について、図18を参照して説明する。
図18は、コンピュータのハードウェア構成を示す図である。
図18に示すように、コンピュータ20は、CPU(Central Processing Unit)2001と、メモリ2002と、補助記憶装置2003と、入力装置2004と、表示装置2005とを備える。また、コンピュータ20は、入出力インタフェース2006と、通信制御装置2007と、媒体駆動装置2008とを備える。コンピュータ20におけるこれらの要素2001~2008は、バス2010により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
CPU 2001は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ20の全体の動作を制御する。例えば、CPU 2001は、図3に示したステップS1~S8の各ステップの処理を含む画像処理プログラムを実行する。CPU 2001が実行する画像処理プログラムにおける斜度抽出処理は、例えば、図4のフローチャートに示した各ステップの処理を含む処理としてサブルーチン化されている。また、CPU 2001が実行する画像処理プログラムにおけるノイズ抽出処理は、例えば、図5及び図6のフローチャートに示した各ステップの処理を含む処理としてサブルーチン化されている。更に、CPU 2001が実行する画像処理プログラムにおける正立補正処理は、例えば、図7のフローチャートに示した各ステップの処理を含む処理としてサブルーチン化されている。
メモリ2002は、図示しないROM(Read Only Memory)及びRAM(Random Access Memory)を含む。メモリ2002のROMには、例えば、コンピュータ20の起動時にCPU 2001が読み出す所定の基本制御プログラム等が予め記録されている。また、メモリ2002のRAMは、CPU 2001が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。メモリ2002のRAMは、例えば、帳票の画像、斜度、グループ番号、正立補正処理で算出する(θ,ρ)等の一時的な記憶に利用可能である。
補助記憶装置2003は、例えば、HDD(Hard Disk Drive)等の磁気ディスク、及びフラッシュメモリ等の不揮発性メモリである。補助記憶装置2003には、CPU 2001によって実行される各種のプログラムや各種のデータ等を記憶させることができる。補助記憶装置2003は、例えば、図3に示したステップS1~S8の各ステップの処理を含む画像処理プログラム等の記憶に利用可能である。また、補助記憶装置2003は、例えば、帳票の画像10、日付印の日付の認識結果等の記憶に利用可能である。
入力装置2004は、例えば、キーボード装置、マウス装置、及びタッチパネル装置等である。コンピュータ20のオペレータが入力装置2004に対し所定の操作を行うと、入力装置2004は、その操作内容に対応付けられている入力情報をCPU 2001に送信する。入力装置2004には、図1の画像処理システム1における入力装置4に相当する。
表示装置2005は、例えば、液晶表示装置である。表示装置2005は、例えば、コンピュータ20の動作状態や、帳票の画像10、日付印の日付の認識結果等の表示に利用可能である。表示装置2005は、図1の画像処理システム1における表示装置5に相当する。
入出力インタフェース2006は、コンピュータ20と、電子部品や他の電子装置(例えばスキャナ装置3)等とを接続する。入出力インタフェース2006は、例えば、USB(Universal Serial Bus)規格のコネクタを備えたフラッシュメモリの接続にも利用可能である。
通信制御装置2007は、コンピュータ20をネットワークに接続し、ネットワークを介したコンピュータ20と他の電子機器との各種通信を制御する装置である。通信制御装置2008は、例えば、図1の画像処理システム1におけるサーバ装置6が保持している文字認識辞書を参照することに利用可能である。
媒体駆動装置2008は、可搬型記憶媒体21に記録されているプログラムやデータの読み出し、補助記憶装置2003に記憶されたデータ等の可搬型記憶媒体21への書き込みを行う。可搬型記憶媒体21としては、例えば、Secure Digital(SD)規格のメモリカード(フラッシュメモリ)がある。可搬型記録媒体21は、上記の画像処理プログラム、帳票の画像10、日付の認識結果等の記憶に利用可能である。また、コンピュータ20が媒体駆動装置2008として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体21として利用可能である。可搬型記録媒体21として利用可能な光ディスクには、例えば、Compact Disc(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等がある。
コンピュータ20は、オペレータが入力装置2004を操作して画像処理プログラムの開始命令を入力すると、CPU 2001が補助記憶装置2003等から図3のステップS1~S8の各ステップの処理を含む画像処理プログラムを読み出して実行する。画像処理プログラムを実行している間、CPU 2001は、図2に示した画像処理装置2における解析部220、認識処理部230、及び表示制御部240として機能(動作)する。また、帳票の画像10をスキャナ装置3から取得する場合、CPU 2001及び入出力インタフェース2006は、図2に示した画像処理装置2におけるスキャナ制御部210として機能する。更に、コンピュータ20とは別のサーバ装置6等が保持している文字認識辞書610を参照して文字認識を行う場合、通信制御装置2007が認識処理部230の持つ機能の一部を担う。
なお、画像処理装置2として動作させるコンピュータ20は、図18に示した要素2001~2008の全てを含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ20は、媒体駆動装置2008や通信制御装置2007が省略されたものであってもよい。