説明

画像処理プログラム、画像処理方法及び画像処理装置

【課題】課題は、入力画像情報の位置ずれを精度よく補正した補正画像を簡単に得る方式の提供である。
【解決手段】本発明は、基準の形状となる基準画像情報を記憶する記憶部と、入力画像の形状のずれを補正する制御部とを有する画像処理装置を対象とする。本発明の第一の解決手段は、制御部が、基準画像の所定の領域となる複数の基準部分画像領域に対応するように入力画像を複数の部分画像領域に分割し、部分画像領域と基準部分画像領域との間のずれ量を算出し、第一の位置ずれ量を部分画像領域の所定の画素に関係付け、入力画像内の第一の位置ずれ量が関係付けられた複数の画素からの距離および複数の画素毎に対応付けられた第一のずれ量から入力画像内の各画素の位置ずれ量を算出し、各画素の位置ずれ量により各画素の位置を補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,画像情報の読取方式に関する。
【背景技術】
【0002】
画像情報をコンピュータに読み込む処理として光学文字認識(Optical Character Recognition(以下、OCRとする))技術がある。OCR技術は、画像上に書かれた形状から文字を検出し、コンピュータで扱うことが可能な文字コード情報を出力する技術である。OCR技術は種々の分野で利用される。OCR技術は、例えば、帳票の読取りに用いる。帳票では、文字が書かれるべき帳票上の領域が予め定められている。領域は、例えば帳票に書かれた枠線によって定められる。OCR技術は、文字が書かれる領域を正確に検出することが必要である。文字が書かれる領域を正確に検出するためには、枠線の位置、角度、大きさ等を正確に特定することが有効である。枠線の位置などを正確に特定するためには、予め保持する雛型となる帳票画像データの枠線情報と入力された帳票の画像データから得る枠線情報との間の位置ずれ量から特定する。
【0003】
帳票の枠線情報等は、複数の色情報によって構成される場合、あるいは複数の濃度の段階によって構成される場合がある(以下、カラー帳票という)。カラー帳票に対してOCR技術を適用する場合、まず、読み込んだカラー帳票画像情報の予め定めた色情報を削除する。色情報を削除した後の帳票画像データから文字情報を検出する。カラー帳票から色情報を削除するとき、帳票画像情報の一部の枠線情報も削除すること、あるいは帳票画像情報の一部の不要なノイズ情報が残ることがある。さらに、帳票上の枠線情報は複雑になっている。
【0004】
雛型画像情報と入力画像情報との間の位置ずれ量を算出する方式として、一般化ハフ変換がある。一般化ハフ変換は、複雑かつ多様な構造を持つ帳票雛形を参照画像として保持する。一般化ハフ変換は、平行、回転、伸縮などの変形パラメータごとに投票空間を設定し、パラメータ毎に投票空間に投票することにより、入力画像の位置ずれ量を推定する。一般化ハフ変換は、複雑な構造を持つ帳票画像の場合で、かつ、枠線のノイズ・欠けがある場合でも、入力された帳票画像と雛型の帳票画像との間のずれ量を推定することができる。しかしながら、一般化ハフ変換は、投票空間の実装のための膨大なメモリ空間、および、投票のための膨大な処理時間を必要とする。そのため、一般化ハフ変換の技術をOCR技術にそのまま適用することは、実用的ではない
従来技術として以下の文献がある。
【特許文献1】特開平10−27208号公報
【特許文献2】特許第3756309号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の課題は、入力画像情報の位置ずれを精度よく補正した補正画像を簡単に得る方式の提供である。
【課題を解決するための手段】
【0006】
本発明は、以下によって課題を解決する。本発明は、基準の形状となる基準画像情報を記憶する記憶部と、入力画像の形状のずれを補正する制御部とを有する画像処理装置を対象とする。本発明の第一の解決手段は、制御部が、基準画像の所定の領域となる複数の基準部分画像領域に対応するように入力画像を複数の部分画像領域に分割し、部分画像領域と基準部分画像領域との間のずれ量を算出し、第一の位置ずれ量を部分画像領域の所定の画素に関係付け、入力画像内の第一の位置ずれ量が関係付けられた複数の画素からの距離および複数の画素毎に対応付けられた第一のずれ量から入力画像内の各画素の位置ずれ量を算出し、各画素の位置ずれ量により各画素の位置を補正する。
【0007】
第二の解決手段は、第一の解決手段でのずれ量を一般化ハフ変換により算出することである。
【0008】
第三の解決手段は、第一の解決手段でさらに、入力画像情報内の枠を検出し、検出された枠となる画素をずれ量の算出の対象とすることである。
【0009】
第四の解決手段は、第三の解決手段で更に、入力画像情報内の枠の垂直方向成分あるいは水平方向成分となる画素をずれ量の算出の対象とすることである。
【0010】
第五の解決手段は、第一の解決手段での部分画像領域の中心に位置する画素に第一の位置ずれ量を関係付ける。
【発明の効果】
【0011】
本発明により、入力画像情報の位置ずれを精度よく補正した補正画像を簡単に得ることが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施の形態を説明する。
【0013】
図1は、画像処理装置1のハードウェア構成図である。画像処理装置1は、制御部101、メモリ102、入力部103、記憶部104、出力部105を有し、それぞれがバス107に接続された構成である。
【0014】
制御部101は画像処理装置1の全体を制御する。例えば、中央処理装置(Central Processing Unit(CPU))である。また、制御部101はメモリ102に展開された画像処理プログラム108を実行する。画像処理プログラム108は制御部101を、輪郭点集合生成モジュール、部分画像投票モジュール、パラメータ絞込モジュール、部分画像貼合モジュール等として機能させる。また、制御部101は、入力画像情報17が帳票である場合、帳票に描かれた文字列画像をコンピュータで扱うことが可能な文字コード情報に変換する機能を有する。
【0015】
メモリ102は、記憶部104に格納された画像処理プログラム108が展開される記憶領域である。また、メモリ102は制御部101が画像処理プログラム108を実行する際に生成される種々の演算結果が格納される記憶領域である。メモリ102は例えばランダムアクセスメモリ(Random Access Memory(RAM))である。
【0016】
入力部103は利用者から制御部101に与える種々の命令あるいは画像の情報を受付ける。入力部103は、例えば、キーボード、マウス、タッチパネルである。また、入力部103はイメージスキャナ等である。記憶部104は例えばハードディスク装置である。記憶部104は、画像処理プログラム108、基準となる帳票画像である基準画像情報(以下、雛型画像情報とする)18、入力画像情報17等を記憶する。出力部105は、画像処理の結果情報を出力する。出力部105は、例えば、ディスプレイ(表示装置)等である。
【0017】
輪郭点集合生成モジュールは、入力画像情報17から画像内に描かれた形状の輪郭を抽出する。輪郭点集合生成モジュールは、入力画像情報17に含まれる枠線情報(ストローク)の輪郭を構成する点集合(入力画像輪郭点集合)を生成する。枠線は、帳票内の文字の入力領域を定めるため、あるいは帳票の特徴をわかりやすくするために描かれる。輪郭点集合生成モジュールは、雛型画像情報18に含まれる輪郭の点集合(雛形輪郭点集合)は、予め特定しておくことも可能である。例えば、輪郭点集合生成モジュールは、雛型画像情報18を登録するときに雛形輪郭点集合を設定する。輪郭点集合生成モジュールは、設定した雛形輪郭点集合を記憶部104に格納する。輪郭点集合生成モジュールは、入力画像情報17を格子状に分割した部分画像領域のそれぞれに対応する入力画像輪郭点集合および雛形輪郭点集合を求める。
【0018】
部分画像投票モジュールは、入力画像情報17を格子状に分割した各部分画像領域に対応する雛形輪郭点集合と入力画像輪郭点集合を用いて、一般化ハフ変換の原理に基づき、位置ずれパラメータを表す投票空間上への投票を行う。部分画像投票モジュールが投票をした結果、投票空間の中で投票頻度の領域が位置ずれパラメータの推定値となる。
【0019】
パラメータ絞込モジュールは、一般化ハフ変換の演算パラメータ(解像度)を粗いものから細かいものに段階的に変化させる。演算パラメータは、例えば、目標の精度が小数点以下第二位の精度を目標とするときに、一桁目の値とする。一桁目の候補を求めると、次に、演算パラメータは小数点以下第一位の値とする。このような処理を繰り返すことで、目標の精度での位置ずれパラメータを算出する。パラメータ絞込モジュールは、輪郭点数や位置ずれパラメータを表す投票空間の大きさを、膨大にならないように抑えつつ、位置ずれパラメータの候補を徐々に絞り込むことを可能とする。
【0020】
部分画像貼合モジュールは、画像を格子状に分割した領域のそれぞれから算出した位置ずれパラメータのうち、信頼度の高い位置ずれパラメータを抽出する。部分画像貼合モジュールは、入力画像情報17内の各画素に対する位置ずれパラメータを、各部分画像領域の位置ずれパラメータを補間することにより算出する。この結果、部分画像貼合モジュールは、各部分画像領域毎に異なる位置ずれパラメータである場合でも各部分画像領域を滑らかに貼り合わせることが可能となる。部分画像貼合モジュールは、入力画像情報17内の各画素に対応する位置ずれパラメータで位置を補正した補正画像を出力する。
【0021】
次に、本実施例の入力画像情報17を受付けてから補正画像を出力するまでの処理について説明する。図2は、入力画像情報17を受付けてから補正画像を出力するまでの処理のフローチャートである。制御部101は、入力画像情報17から輪郭点の集合を生成する(S01)。制御部101は、入力画像情報17を部分画像領域に分割する(S02)。制御部101は、予め定めた大きさの矩形で格子状に入力画像情報17を分割する。分割した矩形は部分画像領域という。制御部101は、各部分画像領域について一般化ハフ変換による投票処理を行う(S03)。制御部101は、S03で一般化ハフ変換を実行するときに投票処理の演算パラメータの絞込み処理を行う(S04)。全ての部分画像領域の投票結果を取得するまで(S05:No)、制御部101は、S03の部分画像の投票処理を実行する。全ての部分画像領域の投票結果を取得すると(S05:Yes)、制御部101は、部分画像の貼合わせ処理を実行する(S06)。以下、各ステップについて詳細に説明する。
【0022】
本実施例の入力画像情報17は、白黒2値の帳票、カラーの帳票、およびグレースケールの帳票である。図3は入力画像情報17の例である。入力画像情報17は枠線情報173−1、枠線情報173−2、および文字情報172を有する。枠線情報173−1は、文字が入力される枠である。枠線情報173−2は、文字が直接入力される領域ではないが、帳票の特徴が明らかとなる枠である。画像処理装置1は、文字情報172を精度よく検出するために、枠線情報173−1の位置を正確に特定した補正画像を得る。補正画像を得るために、画像処理装置1は、枠線情報173−1および枠線情報173−2を雛型画像情報に合わせる。173−3、173−4、および173−5等は、入力画像情報17の枠の内、色づけされている枠である。
【0023】
制御部101は、入力画像情報17に対してドロップアウト処理を行う。ドロップアウト処理は、帳票上に予め印刷もしくは印字されている罫線や文字の色のうち特定の色(ドロップアウトカラー)の部分を以降の画像処理において画像情報として扱わないことと設定する処理である。
【0024】
次に、S01の輪郭点集合生成処理について説明する。本実施例では、輪郭点集合生成モジュールは入力画像情報17がカラーの帳票、およびグレースケールの帳票の場合、ニブラック(以下Niblackとする)法によって入力画像を2値化する処理を行う。Niblack法は局所2値化処理法である。Niblack法は、求めたい画素に対して周辺の情報(一辺が5個の画素の大きさの矩形、一辺が7個の画素の大きさの矩形等)を設定して1画素ずつしきい値を求めていく2値化方法である。まず,背景分離処理として,矩形フィルタを設定する。矩形フィルタ内の濃度分散値から背景部か情報部を判別する。そして,背景と分離する閾値(σmin)を設定し,フィルタ内の計算結果がσmin以上であれば情報があると判定する。濃度分散値が閾値(σmin)以上であれば、注目画素kの濃度のしきい値を求め白画素か黒画素かを判定する。黒画素は以降の処理において、演算の対象となる画素である。黒画素は、枠線のエッジ線であり、文字情報である。輪郭点集合生成モジュールは、変換した2値画像情報中のストロークの輪郭点集合を生成する。
【0025】
図4は、雛型画像情報18である。雛型画像情報18は帳票を二値化した画像である。雛型画像情報18は、帳票の枠線の形状の基準となる。枠線の形状は、基準点からの距離、角度、枠線の伸縮の大きさ、枠線の伸縮の方向等によって特定される。となる帳票の場合、文字が入力される位置は特定される。雛型画像情報18の文字が入力される領域の座標情報が判明している場合、装置が文字データの読取り処理を行う時に文字形状情報を検出することが容易になる。したがって、入力画像情報17の枠線の位置回転角度、伸縮などの形状を雛型画像情報18の枠線の形状にあわせることで、枠線内の文字列を精度よく読み出すことが可能となる。
Niblackを使用するにあたって使用した設定値の例は以下である。局所的Niblackを行なうウィンドウの一辺の長さは「5」とした。Niblackの設定値は「−0.1」とした。設定値は、注目画素kの濃度と標準偏差との乗算を行った値に平均濃度差閾値を加えることで算出する。また、平均濃度差閾値は「8.0」とした。平均エッジ強さ閾値は「8.0」とした。エッジ数閾値は「6」とした。
【0026】
ここで、S02の輪郭点集合生成処理の他の方法を説明する。輪郭点集合生成モジュールは、ソベル(以下Sobelとする)のエッジフィルタにより、カラー・濃淡の画素値を持つ入力画像情報17から輪郭点の集合を抽出する。輪郭点集合生成モジュールは抽出した入力画像情報17の枠線を構成する画素の集合を生成する。
【0027】
輪郭点集合生成モジュールは、Sobelのエッジフィルタを用いて画像の領域分割を実行する。領域分割は入力画像情報17内の背景ではないストロークの画素を求める処理である。輪郭点集合生成モジュールは画素毎に検出したエッジの値と予め定めた閾値との比較によって背景の画素か否かを判別する。図5はSobelの水平方向のエッジフィルタの設定値21−1である。図6はSobelの垂直方向のエッジフィルタの設定値21−2である。輪郭点集合生成モジュールは、入力画像情報17の各画素に対してエッジ値を算出する。例えば、輪郭点集合生成モジュールは、エッジ値を255以下に統合した値となるように定める。例えば、濃度閾値が予め25に設定されている場合、輪郭点集合生成モジュールは、エッジ値が25未満のときに黒画素であると判別する。
【0028】
エッジ値は、帳票に応じて設定することが可能である。例えば、カラー帳票では背景色と抽出する文字色との色の差が小さい場合、エッジ値を低く設定することが必要である。一方、背景色と抽出する文字色との色の差が小さい場合、エッジ値を大きく設定しても抽出が可能である。水平方向の成分値をHとし、垂直方向の成分値をVとする。輪郭点集合生成モジュールは、エッジ値を以下の(数1)で算出する。
【0029】
【数1】

画像処理の対象が帳票画像である場合、水平方向成分のエッジ成分および垂直方向成分のエッジ成分のみを一般化ハフ変換の処理対象とすることが可能である。帳票画像の枠あるいは文字の形状は、一般的に帳票に対して縦(垂直)方向の線分あるいは横(水平)方向の線分が多いためである。一般化ハフ変換は黒画素の方向成分も考慮する。そこで、帳票画像の場合、輪郭点集合生成モジュールは取得された種々のエッジ成分の方向成分から水平成分のエッジ成分と垂直成分のエッジ成分とを抽出する。あるいは、輪郭点集合生成モジュールは取得された種々のエッジ成分の方向成分を水平成分のエッジ成分と垂直成分のエッジ成分とに分類する構成とすることが可能である。上記の構成は、一般化ハフ変換での比較要素が減少するため、部分画像投票モジュールでの位置ずれパラメータの算出に要する時間を減少させることを可能とする。
【0030】
また、帳票画像が対象である場合、水平方向成分のみのエッジ成分を一般化ハフ変換の処理対象とする方法、あるいは垂直方向成分のみのエッジ成分を一般化ハフ変換の処理対象とする方法もある。この場合、輪郭点集合生成モジュールは水平成分および垂直成分の内、何れかのみに対して一般化ハフ変換による位置ずれパラメータの算出処理を適用する。上記の構成は、一般化ハフ変換での比較要素が更に減少するため、部分画像投票モジュールでの位置ずれパラメータの算出に要する時間を減少させることが可能とする。輪郭点集合生成モジュールは、例えば、輪郭点集合生成モジュールは画素数が多い方向成分を一般化ハフ変換による位置ずれパラメータの算出処理の対象とする。
【0031】
次に、S02での入力画像情報17を部分画像領域に分割する処理について説明する。
【0032】
部分画像投票モジュールは、入力画像情報17を格子状に分割する。格子状に分割する範囲は予め定義する。分割する範囲は帳票の形状によって異なる。分割した範囲内は、帳票の画像内でユニークな要素の単位を含むように分割する。帳票を細かい範囲で分割すると一つの範囲での投票処理は少なくなるため部分画像投票モジュールの計算量は減少するメリットがある。一方、帳票を細かい範囲で分割すると一つの範囲での図形の特徴がなく、部分画像投票モジュールの処理結果の信頼性が下がるデメリットがある。そこで、帳票内の特徴となる部分を覆う領域を範囲として設定する。
【0033】
図7は、入力画像情報17を複数の部分画像領域に分割した図である。176は入力画像情報17を分割する線である。本実施例では、線176は入力画像情報17を格子状に分割する。例えば、格子形状が連続する表を複数の範囲に分割すると、格子の各交差点に対して位置ずれパラメータのピーク値が発生することとなる。一般化ハフ変換での偽のピークの発生は、表のまとまりを範囲として設定することにより防止することが可能である。図7では、部分画像投票モジュールは、入力画像情報17を横方向に3個および縦方向に3個とする9個の部分画像領域170に分割する。
【0034】
次に、S03での部分画像の投票処理について説明する。部分画像投票モジュールは、各部分画像領域に対応する雛形輪郭点集合と入力画像輪郭点集合とから位置ずれパラメータを算出する。部分画像投票モジュールは、位置ずれパラメータを一般化ハフ変換の原理によって算出する。一般化ハフ変換は、位置ずれパラメータを表す投票空間上への投票を行う。一般化ハフ変換は、投票空間の中で投票頻度の高いパラメータ部分画像領域からパラメータの推定値を出力する。
【0035】
投票空間は、部分画像投票モジュールがバケット法に基づき設定する。バケット法は計算幾何学の一手法である。バケット法は空間的な広がりを持つ対象を予め小領域に分割する。バケット法を適用することにより、部分画像領域毎に一般化ハフ変換を適用すればよいため、処理の高速化が可能となる。
【0036】
図8にバケット法の適用の説明図を示す。部分画像投票モジュールは、S02で格子状に分割した入力画像情報17の部分画像領域170を更に分割する。175は部分画像領域170を分割する格子線である。分割する格子線間の距離は、予め設定する。例えば、イメージスキャナ装置で発生すると予想される最大のずれ量を定義する。イメージスキャナ装置で発生するずれ量が1cmである場合、部分画像投票モジュールは、紙の場合の帳票の1cmに相当する間隔で格子線を作成する。183は入力画像情報17の部分画像領域170に対応する雛型画像情報18の領域である。部分画像投票モジュールは、領域183について囲む格子線175で囲まれる領域を雛型画像情報18の部分画像領域180とする。
【0037】
部分画像投票モジュールは、各部分画像領域に対して一般化ハフ変換の原理を適用して位置ずれパラメータを算出する。部分画像投票モジュールは、雛形輪郭点集合と入力画像輪郭点集合を用いて、投票空間の中で投票数が極大となるパラメータを位置ずれパラメータとして推定する。一般化ハフ変換は、ハフ(Hough)変換の応用である。ハフ変換は、元の(x,y)座標系から(r,θ)の極座標系に変換し、極座標系で直線の形状を検出する方式である。一般化ハフ変換は、直線だけでなく任意形状の図形に対する平行移動/回転/伸縮等のパラメータを抽出することが可能となる。本実施例では、一般化ハフ変換で算出したパラメータは、帳票の位置ずれパラメータとなる。一般化ハフ変換は、雛形輪郭点集合と入力画像輪郭点集合の座標の差分を投票し、最も投票されたパラメータを求めるべきパラメータとする。一般化ハフ変換は、投票数が極大となるパラメータの探査であるため、画像中にノイズあるいは欠けが存在しても精度よく検出することが可能である。
【0038】
本実施例での一般化ハフ変換の処理について説明する。部分画像投票モジュールは、以下の処理により位置ずれパラメータを表す投票空間上への投票を行う。
【0039】
部分画像投票モジュールは、雛型画像情報18の部分画像領域内の基準点、および雛型画像情報18の基準点から部分画像領域180上の各黒画素までのベクトルを設定する。図9は、雛型画像情報18の部分画像領域を示す。180は雛型画像情報18の部分画像領域である。181は部分画像領域180内の基準点である。基準点181は予め設定する。182は部分画像領域180内の雛形輪郭点集合である。
【0040】
部分画像投票モジュールは、基準点181を中心にベクトルを点対称とした比較ベクトルを設定する。図10は比較ベクトルの例である。190は比較ベクトルである。191は比較ベクトル190と部分画像領域180とが点対称となる対称の中心である。対象の中心191は基準点181に対応する。192は比較ベクトル190の雛形輪郭点集合である。比較ベクトル190と雛型輪郭点集合182とは点対称である。したがって、比較ベクトルの対象の中心191が雛型輪郭点集合182上にある場合、雛型輪郭点集合192は必ず基準点181を通過する。なお、一般化ハフ変換では、画素の重なりを考慮するだけでなく、画素の方向ベクトルの重なりについても考慮する方法がある。一般化ハフ変換のパラメータを増やすことで位置ずれ量の算出精度は上昇するが計算量が膨大となる。そこで画像処理装置1のハードウェアの処理能力に応じてパラメータの次元を設定する。
【0041】
部分画像投票モジュールは、以下の処理によって投票処理を実行する。図11は投票処理のフローチャートである。部分画像投票モジュールは、投票空間を生成する(S11)。投票空間は多次元空間となる。
【0042】
図12は投票空間の構成例である。30は投票空間のデータ構成図である。30−1乃至30−7は、それぞれ、横軸方向位置32および縦軸方向位置33の投票数を格納する領域である。30−1から30−7までは、例えば、比較ベクトル190の角度を1度ずつ回転させた場合の領域である。この他、線形伸縮の倍率、線形伸縮の方向によって空間は増加する。31は各パラメータに作成される投票数を格納するための領域である。
【0043】
部分画像投票モジュールは、横軸方向位置、縦軸方向位置、回転角度の大きさ、線形伸縮の倍率、線形伸縮の方向等のパラメータの種類、およびパラメータの精度によって投票空間の大きさを決定する(S12)。
【0044】
次に、部分画像投票モジュールは投票する対象を以下の手順で決定し、投票空間に投票する(S13)。なお、一般化ハフ変換では、輪郭線の方向ベクトルを考慮することも可能である。本実施例では、説明の簡単化のため輪郭線の方向ベクトルについては説明を省略する。
【0045】
図13は投票処理の概念図である。170は、入力画像情報17の部分画像領域である。171は部分画像領域170の基準点である。基準点171は、雛型画像情報18の部分画像領域180の基準点181に対して、横方向にx、縦方向にy、および回転角度θだけずれているものとする。
【0046】
部分画像投票モジュールは、比較ベクトル190の回転方向を現在の回転角度のパラメータで特定する。部分画像投票モジュールは回転させた比較ベクトル190の対象の中心191を横軸方向および縦軸方向をパラメータで特定した入力画像情報17の部分画像領域170の位置に重ね合わせる。部分画像投票モジュールは、比較ベクトル190の雛型輪郭点集合192に重なる部分画像領域170内の入力画像輪郭点集合173−1、173−2の横軸方向位置および縦軸方向位置に投票する。横方向x、縦方向y、および回転角度θのパラメータ値が位置ずれ量であった場合、入力画像輪郭点集合173−1、173−2上に対象の中心191を配置すると、雛型輪郭点集合192は必ず基準点171を通過する。部分画像投票モジュールは、特定のパラメータで極大値となる基準点が取得することが可能となる。
【0047】
部分画像投票モジュールは、部分画像領域170内の全ての画素について投票処理を実行する。なお、部分画像投票モジュールは、比較ベクトル190の対象の中心191を部分画像領域170の黒画素上のみに設定することも可能である。部分画像領域170の黒画素上のみに投票処理を実行することにより、部分画像領域170の全ての画素について投票処理を行うよりも投票に要する演算量が減少する効果がある。
【0048】
また、位置ずれパラメータを算出する対象が帳票の場合、入力画像情報17と雛型画像情報18との間の平行移動の値(x,y)、回転角度の値(θ)等は限られた範囲となる。そこで、本実施例での一般化ハフ変換は限定された回転角度の値θ毎に平行移動の値(x,y)の組を用いて投票を行い、最も投票数が多い回転角度の値θと平行移動の値(x,y)の組合せを位置ずれパラメータの結果として取得する。
【0049】
部分画像投票モジュールは、予め設定した全てのパラメータの組合せについて投票処理を実行するまで(S14:No)、S12およびS13の処理を繰り返す。部分画像投票モジュールは、予め設定した全てのパラメータの組合せについて投票処理を実行すると(S14:Yes)、部分画像投票モジュールは、得られた投票空間の分布図から極大となるパラメータを検出する。極大となるパラメータは雛型画像情報18の部分画像領域180と入力画像情報17の部分画像領域との間のアフィン(Affine)変換値と推測される。アフィン変換値が位置ずれパラメータとなる。
【0050】
本実施例で使用した入力画像情報17は、雛型画像情報18を位置ずれパラメータによってアフィン変換を行ったものと等しい。アフィン変換は平行移動、回転などの線形変換である。したがって、入力画像情報17に対して位置ずれパラメータにより逆変換を行うことで位置ずれを補正した補正画像を生成することが可能となる。
【0051】
部分画像投票モジュールは位置ずれパラメータとして、横軸移動距離としてTx、縦軸移動距離としてTy、および回転角度としてθを取得する。また、部分画像投票モジュールは線形伸縮の倍率、線形伸縮の方向についての投票処理を実行した場合は、線形伸縮の倍率、線形伸縮の方向のパラメータも取得する。位置ずれパラメータはアフィン変換値であり、入力画像情報と雛型帳票画像とが線形写像の関係となる。その変換式は(数2)となる。
【0052】
【数2】

(数2)の(x、y)は変換前の座標である。本実施例では、雛型画像情報18の画素の座標である。(x’、y’)は変換後の座標である。本実施例では、入力画像情報17の画素の座標である。Tx、Ty、θはアフィン変換値である。
(数2)から入力画像情報17から補正画像情報を求める式は(数3)となる。(x’’、y’’)は補正画像の画素の座標である。
【0053】
【数3】

次に、S04のパラメータ絞込み処理について説明する。本実施例では、画像処理に要する計算量を減少させるため、多重解像度による多段階処理を行う。本実施例での一般化ハフ変換によって求める画像情報の位置ずれパラメータは横軸方向、縦軸方向からなる平行移動の位置ずれ、回転移動の位置ずれ、線形伸縮方向、線形伸縮倍率等のパラメータである。一般化ハフ変換は、目標精度のパラメータ毎に投票結果を格納するメモリ領域が必要となる。投票空間の大きさはパラメータの種類の数の乗数のオーダーで増大する。したがって、最初から目標とする精度で三次元パラメータを求める演算を行うと、画像処理に要する処理時間、三次元パラメータを格納するメモリ容量ともに膨大なものとなる。
【0054】
そこで、パラメータ絞込モジュールは、位置ずれパラメータの粗い推定値をまず求め、粗い推定値の周辺のパラメータを精密に求める多段階処理を実行する。パラメータ絞込モジュールは部分画像領域の解像度を粗いものから細かいものに段階的に変化させる。多段階に解像度を変化させる結果、輪郭点数や位置ずれパラメータを表す投票空間の大きさを膨大にならないように抑えつつ、最適パラメータの候補を徐々に絞り込むことが可能となる。この結果、パラメータ絞込モジュールが実行する投票処理の計算量が減少し、かつ、精度の低下のない位置ずれパラメータを算出することが可能となる。例えば、推定値を求めるために設定する一般化ハフ変換の演算対象の変化量の大きさ(ステップ数)は、結果が画像処理装置1のメモリ領域内に収まりかつメモリ領域の全てを使用するように設定する。
【0055】
例えば、パラメータ絞込モジュールは以下の方式で投票空間のパラメータの刻みを設定する。パラメータ絞込モジュールは、各パラメータが取り得る範囲とメモリ領域の大きさとから、個々のパラメータの取り得るメモリ領域を算出する。平行移動(横方向、縦方向)と回転角度の場合、3次元であり、パラメータ絞込モジュールは、メモリ領域を3つに分ける。次にパラメータ絞込モジュールは、個々のパラメータの取り得る範囲、パラメータを格納する個々のメモリ量、および対象のパラメータに充てられたメモリ量から最適なパラメータの刻みの大きさを取得する。
【0056】
以下、角度パラメータを算出する例を記載する。部分画像投票モジュールが、仮に、一回の投票につきα(ms)の処理時間を必要し、評価角度数がβ個ある場合、アフィン変換値取得までに必要とされる処理時間はαβ(ms)となる。そこで、多重解像度によるパラメータ絞込モジュールはβ個の評価角度を段階にわけて絞り込む。
【0057】
パラメータ絞込モジュールは、一段階目の投票処理として、評価角度をn個の範囲に区切り、各範囲の中心角度を使用して最も投票が行われる角度を求める。一段階目の投票処理は角度範囲を絞り込むことを目的とした処理である。投票位置の正確さは必要としないため、パラメータ絞込モジュールは、入力画像情報17を縮小することで黒画素情報を減少させた画像を使用することで投票処理の対象となる黒画素数を減少させ、更なる処理時間の短縮をすることも可能である。
【0058】
また、偶然にも目的としない角度が最も投票される事態を救済するため、絞込みの結果として選出する角度は(数4)の条件を満たす角度とする。(数4)において、Bは任意の角度での投票数を示し、Bmは最大数が投票された角度の投票数を示し、aは予め指定した閾値である。
【0059】
【数4】

パラメータ絞込モジュールは、二段目の投票処理として、選出した角度範囲に存在する角度に対し投票を行う。パラメータ絞込モジュールは、最も投票された投票空間を持つ角度をアフィン変換値として取得する。アフィン変換値は位置ずれパラメータである。なお、投票に使用した黒画素数が信頼に値するだけの割合を持っている場合、パラメータ絞込モジュールは最大投票位置をアフィン変換値として取得することが可能である。また二段目の投票処理も角度特定を目的とした処理の場合、パラメータ絞込モジュールは三段目の投票処理を行う。三段目の投票処理では、パラメータ絞込モジュールは特定した角度の投票空間のみに対して投票処理を行う。ここでは最大投票位置の特定が目的であるため、使用する黒画素数は十分でなくてはならない。各段階の角度の範囲の大きさは、事前に設定する。
【0060】
また、部分画像投票モジュールは一般化ハフ変換による投票処理の対象となる画素の絞込みを行うことも可能である。部分画像投票モジュールは輪郭点の部分集合による投票処理の絞込みを行う。
【0061】
幅方向の画素数がW個、高さ方向の画素数がH個の画像において、画像内の全画素に対する黒画素がG%である場合、画像内の黒画素数は(G・W・H/100)個である。したがって、雛型画像情報18と入力画像情報の全黒画素に対して、一般化ハフ変換の投票処理を一回行うときの処理量をMとすると、全処理量はM・((G・W・H/100)の2乗)となる。
【0062】
一般化ハフ変換では、極大値(ピーク)となる投票位置が出現するか否かが重要となる。したがって、ピークが出現すればすべての黒画素について投票処理を実行する必要はない。投票処理の回数が少なければ、処理時間が短縮される。しかし、例えば、雛型画像情報18の黒画素数と入力画像情報の黒画素数とをF%に減らしてしまった場合、位置ずれパラメータの算出精度が悪くなる。具体的には、投票されるべき位置への投票率は、全黒画素で投票処理を実行した場合での投票率を100%とすると((Fの2乗)/100)%に減少する。
【0063】
そこで、本実施例では、入力画像情報17の黒画素数のみを減少させる。例えば、管理者が入力画像情報17の全黒画素数の内、補正画像の出力処理に使用する黒画素数の割合を予め指定する。入力画像情報17の黒画素数が少ない場合でも、雛型画像情報18によって投票する結果は、統計上精度の劣化が少ないためである。具体的には、入力画像情報17はノイズ情報を有する場合があるが、雛型画像情報18はノイズ情報がないためである。なお、雛型画像情報18の黒画素数を減少させて一般化ハフ変換の処理を実行する方式も可能である。しかし、雛型画像情報18の黒画素数を減少させた場合は、検出精度が落ちる。
【0064】
減少させる黒画素の数は、一般化ハフ変換を実行するコンピュータの処理能力に応じて適宜変更させることで対応する。以上より、部分画像投票モジュールは、投票処理に使用する入力画像情報17の黒画素の一部にのみ一般化ハフ変換の演算を実行することにより、処理時間を短縮することができる。
【0065】
次に、S06での部分画像投票モジュールが算出した部分画像領域のそれぞれの位置ずれパラメータから、部分画像貼合モジュールが入力画像情報の補正画像を出力する処理について説明する。
【0066】
一般化ハフ変換で必要とする計算量は変換パラメータの数に応じて増大する。一般化ハフ変換によって得られる結果を実用的な処理時間で得るとすると、位置ずれがアフィン変換の場合が限度である。したがって、局所的な伸縮(非線形な伸縮)を含む位置ずれがある場合、位置ずれパラメータを推定することは困難である。そこで、一般化ハフ変換を適用して、アフィン変換が可能な範囲での各部分画像領域に対する位置ずれパラメータを求めた後、部分画像貼合モジュールは部分画像領域間を画像変換パラメータの双線形補間により補間する。部分画像貼合モジュールは、アフィン変換だけでない局所的な伸縮歪みも補正することが可能となる。
【0067】
実際の入力画像情報17には、非線形な伸縮が生じる。非線形な伸縮は、例えば、イメージスキャナ装置によって帳票の画像情報を取得するときにオートフィーダの回転数の不均一により生じること、帳票の紙の折れにより生じる。
【0068】
部分画像投票モジュールは各部分画像領域の補正画像を算出する。各部分画像領域の位置ずれパラメータ値は異なる場合がある。したがって、各部分画像領域の補正画像をそのまま統合すると、領域の境界線上で非連続箇所が発生する。非連続個所を連続するように補正するパラメータを求めることができれば、局所的な伸縮歪みを補正した補正画像情報を出力することが可能となる。
【0069】
図14は各画素に対応する位置ずれパラメータの算出の説明図である。52は、入力画像情報17の各部分画像領域170で求められた位置ずれパラメータ値を対応付けた画素である。位置ずれパラメータ52は、例えば、部分画像領域170の中心の画素に対応付ける。
【0070】
部分画像貼合モジュールは、入力画像情報17の部分画像領域170内の各画素に対応する位置ずれパラメータ値を算出する。入力画像情報17の各画素に対応する補正パラメータ値は、例えば、各部分画像領域で求めた位置ずれパラメータ値を補間することで算出する。
【0071】
53は、入力画像情報17の外側に部分画像領域があった場合に部分画像領域の中心となる位置である。54は、制御部101が入力画像情報17の各画素の位置ずれパラメータ値を補間するための矩形領域である。矩形領域54の各頂点は画素52あるいは画素53である。入力画像情報17の外縁の外側には、入力画像情報17の各部分画像領域170の画素52がない。したがって、制御部101は矩形領域54を作成することができない。そこで、制御部101は入力画像情報17の外側に仮想の画素53を設定する。画素53の位置は、入力画像情報17内の画素52で形成される矩形領域54と同形状とするときの頂点である。制御部101は画素53の位置ずれパラメータ値として外縁の部分画像領域170の画素52の位置ずれパラメータ値を設定する。
【0072】
入力画像情報17がM個×N個の部分画像領域である場合、各画素の位置ずれパラメータ値を算出するための矩形領域54は(M+1)個×(N+1)個となる。次に部分画像貼合モジュールは、各画素に対応する位置ずれパラメータ値を算出する。
【0073】
図15は、図14の入力画像情報17の一部の領域55を示す図である。
【0074】
55は入力画像情報17の一部の領域である。52は、部分画像領域170毎に算出した位置ずれパラメータ値が対応づけられた画素である。画素52は、例えば、各部分画像領域の中心の位置の画素である。位置ずれパラメータ値Aは部分画像領域Aの中心の位置の画素52−1の位置ずれパラメータ値である。位置ずれパラメータ値Bは部分画像領域Bの中心の位置の画素52−2の位置ずれパラメータ値である。位置ずれパラメータ値Cは部分画像領域Cの中心の位置の画素52−3の位置ずれパラメータ値である。位置ずれパラメータ値Dは部分画像領域Dの中心の位置の画素52−4の位置ずれパラメータ値である。
【0075】
56は、求める対象の画素である。画素56の補正パラメータ値はEであるとする。57は、画素Eの横軸方向の位置を示す。横軸方向の位置57は、画素Eから画素52−1と画素52−3とを結ぶ直線に平行な直線と画素52−1と画素52−2とを結ぶ直線とが交わる点Xである。点Xは、画素52−1と画素52−2との間の距離を「1」とする場合に、画素52−1からの距離が「X」であり、画素52−2からの距離が「1−X」である位置にある。縦軸方向の位置58は、画素Eから画素52−1と画素52−2とを結ぶ直線に平行な直線と画素52−1と画素52−3とを結ぶ直線とが交わる点Yである。点Yは、画素52−1と画素52−3との間の距離を「1」とする場合に、画素52−1からの距離が「Y」であり、画素52−3からの距離が「1−Y」である位置にある。
【0076】
入力画像情報17での画素56の補正パラメータは、例えば、(数5)の双線形補間によって算出する。
【0077】
【数5】

部分画像貼合モジュールは、入力画像情報17の個々の画素を補正パラメ−タによって補正する。部分画像貼合モジュールは、補正した画像を補正画像として出力する。
【0078】
ここで、部分画像貼合モジュールが実行する他の例を説明する。部分画像貼合モジュールは、信頼度の高い位置ずれパラメータのみを用いて双線形補間による各画素の補正パラメータを算出することも可能である。各部分画像領域について実行した投票処理の結果得られるアフィン変換値が常に有効であるとは限らない。そこで、部分画像貼合モジュールは、投票処理で算出したデータ値と予め設定した閾値とを比較して、有効あるいは無効の判定を行う。この結果、部分画像貼合モジュールは有効な位置ずれパラメータのみを使用して画素の補正処理を実行するため、一般化ハフ変換で求めた全ての位置ずれパラメータ値をそのまま使用するよりも補正が正しく行われる。
【0079】
部分画像貼合モジュールは、各部分画像領域で算出したアフィン変換値が正しいか否かを(数6)の条件を満たすか否かで判別する。
【0080】
【数6】

EBは入力画像情報17の部分画像領域170の黒画素数である。MCは投票空間内の最大投票数である。CBは正常なアフィン変換値か否かを判別する閾値である。CBは、例えば、アフィン変換値が正常となる値を統計によって求める。部分画像貼合モジュールは(数6)の条件を満たす投票結果を、有効な領域のアフィン変換値と判定する。
【0081】
次に、無効なアフィン変換値であると判別された部分画像領域については、部分画像貼合モジュールは位置ずれパラメータを以下の処理で算出する。部分画像貼合モジュールは、有効なアフィン変換値を有する他の部分画像領域の位置ずれパラメータからの線形補間によって、無効なアフィン変換値の部分画像領域の位置ずれパラメータを算出する。
【0082】
本実施例では、部分画像貼合モジュールは、例えば、入力画像情報17の左上の部分画像領域から順番に判別処理を実行する。無効なアフィン変換値を有する部分画像領域170を検出した場合、部分画像貼合モジュールは無効なアフィン変換値を有する部分画像領域170の上下左右の部分画像領域170を検索する。上下左右の部分画像領域170が正常なアフィン変換値を有する部分画像領域の場合、部分画像貼合モジュールは無効なアフィン変換値を有する部分画像領域170の位置ずれパラメータを上下左右の正常な位置ずれパラメータによって線形補間する。部分画像貼合モジュールは、発見された上下左右の正常な部分画像領域の位置ずれパラメータが対応付けられたそれぞれの画素から無効なアフィン変換値を有する部分画像領域170の位置ずれパラメータを対応付ける画素までの距離、および上下左右の正常な部分画像領域のそれぞれの位置ずれパラメータ値によって線形補間を行う。
【0083】
部分画像貼合モジュールは、以上の線形補間の処理を、入力画像情報17の左上の部分画像領域170から検索する。そのため、入力画像情報における左から一列目(M×1)の領域、あるいは上から一行目(1×N)の領域がすべて無効なアフィン変換値を有する部分画像領域170であった場合、部分画像貼合モジュールは、線形補間を行う有効領域を発見できない。そこで、部分画像貼合モジュールは、2行目あるいは2列目の部分画像領域170によって1行目あるいは1列目の部分画像領域170を線形補間する処理を実行する。部分画像貼合モジュールは、入力画像情報17の全ての部分画像領域170を線形補間の処理によって求めるため、各部分画像領域170の位置ずれパラメータは有効なアフィン変換値となる。
【0084】
また、部分画像貼合モジュールは、位置ずれパラメータ値が有効か無効かを判定する処理を実行する。例えば、部分画像投票モジュールが実行する投票処理により、投票空間で極大値となるパラメータが特定される。部分画像投票モジュールは投票空間での極大値が最大となるパラメータを位置ずれパラメータ値に決定する。ここで、最大となるパラメータに対応する極大値が予め設定した値よりも大きいときに、部分画像貼合モジュールは、位置ずれパラメータ値が有効であると判定する。また、最大となるパラメータに対応する極大値が第二位の極大値よりも予め設定した値以上の差があるときに、部分画像貼合モジュールは、位置ずれパラメータ値が有効であると判定する。
【0085】
部分画像貼合モジュールは、位置ずれパラメータ値の有効性の判定処理の後、無効な位置ずれパラメータ値となった部分画像領域の位置ずれパラメータ値を、他の有効な位置ずれパラメータ値により線形補間処理を行う。したがって、位置ずれパラメータ値の有効性の判定処理と位置ずれパラメータ値の線形補間処理とは一連の処理となる。
【0086】
部分画像貼合モジュールが判定処理と線形補間処理とからなる一連の処理を実行すると、入力画像情報17の全部分画像領域は有効領域となる。しかし、局所的に問題のある複数の部分画像領域が存在する場合、一度の処理では完全に無効な位置ずれパラメータ値を有する部分画像領域を有効な位置ずれパラメータ値を有する部分画像領域とすることができない場合がある。したがって、部分画像貼合モジュールは、判定処理と線形補間処理とからなる一連の処理を数回実行する。
【0087】
部分画像貼合モジュールは、部分画像領域の中心に対応付けられる有効な位置ずれパラメータを取得する。なお、部分画像貼合モジュールは、有効な位置ずれパラメータ値のみを使用して無効領域の各画素に対応する補正パラメータを算出することは可能である。しかし、本実施例では、部分画像領域に対応する位置ずれパラメータを事前に補正する。この結果、補正パラメータを算出する処理が単純化される効果がある。
【0088】
以上によって、入力画像情報17の雛型画像からの平行移動、回転移動、線形伸縮、および非線形伸縮について補正した画像を出力することが可能となる。制御部101は、補正した画像内の文字列が格納された枠173−1から文字172の画像情報を検出し、コンピュータで扱うことが可能な文字コード情報に変換する。
【図面の簡単な説明】
【0089】
【図1】画像処理装置1のハードウェア構成図である。
【図2】入力画像情報17を受付けてから補正画像を出力するまでの処理のフローチャートである。
【図3】入力画像情報17の例である。
【図4】雛型画像情報18を二値化した画像である。
【図5】Sobelの水平方向のエッジフィルタの設定値21−1である。
【図6】Sobelの垂直方向のエッジフィルタの設定値21−2である。
【図7】入力画像情報17を複数の部分画像領域に分割した図である。
【図8】バケット法の適用の説明図である。
【図9】雛型画像情報18の部分画像領域である。
【図10】比較ベクトル190の例である。
【図11】投票処理のフローチャートである。
【図12】投票空間の構成例である。
【図13】投票処理の概念図である。
【図14】各画素に対応する位置ずれパラメータの算出の説明図である。
【図15】入力画像情報17の一部の領域55を示す図である。
【符号の説明】
【0090】
1 画像処理装置
101 制御部
102 メモリ
103 入力部
104 記憶部
105 出力部
107 バス
108 画像処理プログラム


【特許請求の範囲】
【請求項1】
基準の形状となる基準画像情報を記憶する記憶部と、入力画像の形状のずれを補正する制御部とを有する画像処理装置に実行させる画像処理プログラムであって、
該制御部に、
該基準画像の所定の領域となる複数の基準部分画像領域に対応するように該入力画像を複数の部分画像領域に分割するステップ、
該部分画像領域と該基準部分画像領域との間のずれ量を算出するステップ、
該第一の位置ずれ量を該部分画像領域の所定の画素に関係付けるステップ、
該入力画像内の該第一の位置ずれ量が関係付けられた該複数の画素からの距離および該複数の画素毎に対応付けられた該第一のずれ量から該入力画像内の各画素の位置ずれ量を算出するステップ、
該各画素の位置ずれ量により該各画素の位置を補正するステップ、
を実行させることを特徴とする画像処理プログラム。
【請求項2】
該ずれ量を一般化ハフ変換により算出することを特徴とする請求項1に記載の画像処理プログラム。
【請求項3】
該入力画像情報内の枠を検出するステップを更に実行させ、
検出された該枠となる画素を該ずれ量の算出の対象とすることを特徴とする請求項1に記載の画像処理プログラム。
【請求項4】
該入力画像情報内の枠の垂直方向成分あるいは水平方向成分となる画素を該ずれ量の算出の対象とすることを特徴とする請求項3に記載の画像処理プログラム。
【請求項5】
該部分画像領域の中心に位置する画素に該第一の位置ずれ量を関係付けることを特徴とする請求項1に記載の画像処理プログラム。
【請求項6】
基準の形状となる基準画像情報を記憶する記憶部と、入力画像の形状のずれを補正する制御部とを有する画像処理装置の画像処理方法であって、
該制御部が、該基準画像の所定の領域となる複数の基準部分画像領域に対応するように該入力画像を複数の部分画像領域に分割し、
該制御部が、該部分画像領域と該基準部分画像領域との間の平行移動、回転方向、線形伸縮、および線形伸縮の方向の内の少なくとも一つの形状のずれ量を算出し、
該制御部が、該第一の位置ずれ量を該部分画像領域の所定の画素に関係付け、
該制御部が、該入力画像内の該第一の位置ずれ量が関係付けられた該複数の画素からの距離および該複数の画素毎に対応付けられた該第一の位置ずれ量から該入力画像内の各画素の位置ずれ量を算出する、
ことを特徴とする画像処理方法。
【請求項7】
入力画像の形状のずれを補正する画像処理装置であって、
基準の形状となる基準画像情報を記憶する記憶部と、
該基準画像の所定の領域となる複数の基準部分画像領域に対応するように該入力画像を複数の部分画像領域に分割し、該部分画像領域と該基準部分画像領域との間の平行移動、回転方向、線形伸縮、および線形伸縮の方向の内の少なくとも一つの形状のずれ量を算出し、該第一の位置ずれ量を該部分画像領域の所定の画素に関係付け、該入力画像内の該第一の位置ずれ量が関係付けられた該複数の画素からの距離および該複数の画素毎に対応付けられた該第一の位置ずれ量から該入力画像内の各画素の位置ずれ量を算出し、該各画素の位置ずれ量により該各画素の位置を補正する制御部と
を有することを特徴とする画像処理装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−20613(P2009−20613A)
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【出願番号】特願2007−181393(P2007−181393)
【出願日】平成19年7月10日(2007.7.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】