(58)【調査した分野】(Int.Cl.,DB名)
前記算出手段は、前記線分の組の2つからアフィン変換量を算出し、該アフィン変換量を用いた前記第1の画像と前記第2の画像の一致度に基づいて、前記歪みを示すアフィン変換量を選択する
ことを特徴とする請求項1に記載の画像処理装置。
前記一致度とは、前記第1の画像から検出される特徴点と前記第2の画像における特徴点について、前記アフィン変換量による変換後に、最近傍の関係にある組が、予め定められた距離内に収まっている個数であり、
前記特徴点とは、前記線分の端点又は前記線分どうしがなす交点である
ことを特徴とする請求項2に記載の画像処理装置。
前記第1の画像の特徴点と前記第2の画像の特徴点について、前記算出手段による算出処理後に、予め定められた距離内に収まっている最近傍の関係にある組から、最小2乗法によりアフィン変換量を算出する第2の算出手段
をさらに具備することを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
【発明を実施するための形態】
【0028】
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する画像処理装置について説明する。
文字等が記入された文書とその文書の雛型(以下、テンプレートともいう。文字が記入される前の状態の文書)とのマッチング処理に関する技術がある。例えば、文書として、主に帳票がある。特に、スキャンされた記入済みの帳票と、予め定められたレイアウト情報との位置ずれや回転、歪みの補正量を算出する技術に属する。
以下では、スキャン(撮影を含む概念である。以下、同様)された帳票の画像を受付画像と呼ぶ。
また、帳票の文字(レ点などのマークを含む概念である。以下、同様)認識の対象である領域の情報をレイアウト情報と呼ぶ。また、レイアウト情報を指示する枠線等が描かれた画像をテンプレート画像とする。テンプレート画像は、例えば、未記入の帳票の画像である。なお、レイアウト情報とテンプレート画像との歪み量はゼロ又は既知とする。また、受付画像に対応するテンプレート画像は既知とする。
受付画像は、テンプレート画像をプリントする場面や記入済みの情報をスキャンする場面において、レイアウト情報に対して位置ずれや回転、歪みが生じる。以下ではこれらを総称して歪み量と呼ぶ。本実施の形態における歪み量は、画像のアフィン変換量で表されるものとする。
画像のアフィン変換は数式1で表される。数式1において(x’,y’)
Tは変換前の座標、(x,y)
Tは変換後の座標を表す。画像のアフィン変換は平行移動・回転・拡大縮小を含み、6つのパラメータ(a,b,c,d,e,f)から成る。
【数1】
【0029】
帳票の運用では、予め文字の記入領域やその情報の属性のレイアウトを設計し、これを枠線などで指示したテンプレート画像を作成する。続いてテンプレート画像をプリントした紙媒体等を記入者に提示し、記入者はレイアウトに従って情報を記入し、記入済みの画像をスキャンする。さらに、これを受付画像としてレイアウト情報に従って記入内容を認識し、情報を収集しようとする。テンプレート画像200の例を
図2に示す。また、記入済みの受付画像300の例を
図3に示す。
この過程において、特にプリント、スキャンの機械的な処理(紙送り等の処理)のために、
図3の例に示すように受付画像とレイアウト情報の間に位置ずれや回転等の歪みが生じる。正しい情報を収集するためには歪み量を算出し、補正を行う必要がある。この様子を
図4、
図5の例に示す。
図4に示す例は、
図2の例に示したテンプレート画像200に対応付けられたレイアウト情報400である。分かりやすさのため1領域(対象領域410)のみの指定を図示しているが、複数領域あってもよい。原点を左上角の(x
0,y
0)として、対象領域410である四角形領域(x
nw,y
nw),(x
ne,y
ne),(x
sw,y
sw),(x
se,y
se)で囲まれた位置の情報を取得しようとしているが、歪みのために、
図5の例に示す記入済みの受付画像とレイアウト情報の重ね合わせ画像500のように、受付画像300において前記の位置は(x’
nw,y’
nw),(x’
ne,y’
ne),(x’
sw,y’
sw),(x’
se,y’
se)となり、レイアウト情報と一致していない。そこで、歪みのアフィン変換量を推定し、数式1によってレイアウト情報又は受付画像を補正し、所望の位置の情報を取得しようとする。既存の技術では、枠線やその端点・交点など、テンプレート画像と受付画像で共通の特徴的な図形に基づいて上記の歪み量を算出する。例えば、対応する線分の組から平行移動量を算出する。また、対応する特徴点の組からアフィン変換量を算出する。特徴点は線分の交点や端点、矩形の角などである。
【0030】
アフィン変換量を算出するには、テンプレート画像と受付画像の特徴点の組が(最低でも3組)必要である。しかし、一般に、テンプレート画像と受付画像の特徴点の組は未知である。アフィン変換の範囲においてその候補数は非常に多く、全ての組み合わせを検証する場合、莫大な処理時間を要する。
この問題に対して、レイアウト情報と受付画像の論理構造を利用する、特許文献3に示されるような既存の技術がある。しかし実環境においては、受付画像から検出される線分や特徴点には誤抽出や見逃しがあるため、これらの論理構造は必ずしも一致しない。線分の検出に誤検出がある例を
図6に示す。この例では、受付画像600内に線分610のように、大きなレ点があるため、誤検出のレイアウトにおける線分として検出してしまう。
【0031】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図1は、本実施の形態(以下に示す第1の実施の形態〜第6の実施の形態)を実現するための構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0032】
本実施の形態である画像処理装置100は、第2の画像に対する第1の画像の歪みを算出するものであって、
図1の例に示すように、画像読取装置110、テンプレート情報120、出力装置130と接続されている。
画像読取装置110は、画像処理装置100と接続されている。画像読取装置110は、テンプレートに文字等が記入された画像を読み取る機能を有している。例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む)等に記憶されている画像を読み出すこと等が含まれる。画像は、2値画像、多値画像(カラー画像を含む)であってもよい。受け付ける画像は、1枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる帳票等の文書等であって、テンプレートがあるものである。例えば、表、枠線、下線、トンボ等が含まれている文書であって、それら表等に関する情報がテンプレート情報になる。以下、表が含まれている文書を例示して説明する。
テンプレート情報120は、画像処理装置100と接続されている。テンプレート情報120は、テンプレートに関する情報(例えば、テンプレート線分727、テンプレート特徴点777、テンプレート画像905等)を画像処理装置100に渡す。
【0033】
画像処理装置100は、後述する第1の実施の形態〜第6の実施の形態が含まれている。画像処理装置100の処理の概要を説明する。検出した枠線について、長さに基づいた候補の絞り込みを行うものである。例えば、現実的な処理時間で大きな歪み量に対応する。本実施の形態の処理フロー例を以下に示す。
−−−−− −−−−− −−−−−
step1.テンプレート画像の枠線を検出する。
step2.受付画像の枠線を検出する。
step3.受付画像の枠線を長い順にN個選択する。
step4.上記のように選択したN個の線分それぞれについて、テンプレート画像の枠線をM個選択し、テンプレート画像の線分と受付画像の線分の組を作成する。
step5.上記のように作成されたNM個のテンプレート画像とテンプレート画像の線分の組からさらに2つの組を選択し、アフィン変換量を算出する。
step6.上記のように作成されたN(N−1)M(M−1)個のアフィン変換量のうち、最適なものを選択する。
step7.上記のように選択されたアフィン変換量でテンプレート画像と受付画像の特徴点を対応付ける。
step8.上記のように対応付けられた対応点群からアフィン変換量を求め、これを歪み量とする。
−−−−− −−−−− −−−−−
なお、step4においてMとは、テンプレート画像から検出された線分の数である。また、step7において特徴点とは、線分の端点や交点である。また、step6において最適とは、テンプレート画像又は受付画像の特徴点を候補アフィン変換量で変換したとき、特徴点の配置の一致度が高いことを表す。
【0034】
本実施の形態は、まず、テンプレート画像と受付画像から検出される線分の組により荒いアフィン変換量を算出する。荒いアフィン変換量は特徴点の組を作成できればよく、より正確なアフィン変換量は、全ての特徴点の組から算出する。
本実施の形態は、歪み量の範囲を仮定しない。その代わりに、テンプレート画像と受付画像の線分の組を限定することにより、処理時間の短縮を達成している。
一般に“線らしさ”とは長く細く湾曲が少ないほど高いと考えることができる。ゆえに、線らしさに基づいて線分を検出する技術は、一般に長細い線分ほど正確に検出する。受付画像から検出される線分は、誤抽出と見逃しの可能性があるが、長い線分であるほど正確に検出されていると期待できる。よって、歪み量を限定することなく高速化を達成するために、本実施の形態は、線分の長さに基づいて絞り込みを行う。
また、より遠い特徴点どうしからアフィン変換量を算出する方がよい。なぜならば、検出の微小な誤差の影響を線分の長さによって低減することができるためである。より長い線分の端点はより離れており、より正確なアフィン変換量が算出されると期待できる。
【0035】
なお、step1、step2の線分の検出は、既存の技術を利用すればよい。
また、step5におけるアフィン変換量は、2つの線分の組から算出する。アフィン変換量を求めるには、最低3つの点の組が必要である。2つの線分の組には、最小で3つ、最大で5つの点の組があり、ここから任意の3組を選択すればよい。
また、step6における最適の評価は、以下に示すような例がある。まず、候補アフィン変換量でテンプレート画像の特徴点座標を変換する。続いて、受付画像の特徴点と変換後のテンプレート画像の特徴点について、互いに最近傍である特徴点の組を作成する。続いて、予め定められた値以上の距離を持つ組を棄却する。最後に組の総数を評価値とする。又は、組の距離の和の逆数を評価値とする。
【0036】
また、step8におけるアフィン変換量は、前述のように作成された特徴点の組から算出する。特徴点検出のノイズの影響を低減するために、例えば、最小2乗法を利用してアフィン変換量を求める。
なお、step3、step4において受付画像とテンプレート画像を入れ替えても同様の効用が得られる。また、step3において、短すぎる、傾きすぎる、距離が遠すぎるといった異常値を棄却してもよい。また、step4において、テンプレート画像の線分についてもまた長い順に絞り込みを行ってもよい。step5において、アフィン変換量が異常値となるような組み合わせは棄却して、step6以降の処理を軽減させてもよい。ここで、異常値とは、反転などの実環境では物理的に想定しえない拡縮や平行移動を示すアフィン変換量を指す。
また、前述の選択するN、Mは、文書毎(帳票毎)に設定可能としてもよい。また、Nは、Mに予め定められた1以上の計数を乗算した値としてもよい。Nは、Mと同数であることが理想的ではあるが、受付画像の線分数はテンプレート画像の線分数よりも多くなることが一般的であるからである。
【0037】
出力装置130は、画像処理装置100と接続されている。出力装置130は、画像処理装置100による処理結果(アフィン変換量775、領域画像1295、文字認識結果1395)を出力する。例えば、ディスプレイ等の表示装置に表示すること、ハードディスク等の記憶装置に記憶すること、その処理結果を用いる他の情報処理装置へ渡すこと等が含まれる。
【0038】
図7は、第1の実施の形態の構成例についての概念的なモジュール構成図である。
図1の例に示した画像処理装置100の内容を示したものであり、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770を有している。
処理の概要は、前述した画像処理装置100の処理と同様である。ただし、テンプレート画像から線分と特徴点を検出するのではなく、予めテンプレートの線分と特徴量の情報を抽出したものを使用している。
【0039】
線分検出モジュール710は、線分選択モジュール720と接続されており、受付画像705を受け付け、線分選択モジュール720に受付画像線分715を渡す。つまり、線分検出モジュール710は、受付画像705から受付画像線分715を検出する。
線分選択モジュール720は、線分検出モジュール710、線分ペア選択モジュール730と接続されており、線分ペア選択モジュール730に受付画像線分725を渡す。線分選択モジュール720は、受付画像線分715のうち、長さ順で上位から予め定められた数の線分を選択し、その選択した線分を受付画像線分725として、線分ペア選択モジュール730に渡す。ここで、「長さ順」とは、長さの長い線分を上位とすることであり、いわゆる降順にソートすることに該当する。つまり、全ての検出された線分(受付画像線分720)からN個の線分(受付画像線分725)を選択する。
【0040】
線分ペア選択モジュール730は、線分選択モジュール720、アフィン変換量算出Aモジュール750と接続されており、テンプレート線分727を受け付け、アフィン変換量算出Aモジュール750に線分ペア735を渡す。線分ペア選択モジュール730は、受付画像線分725とテンプレート線分727との組(ペア)を選択する。テンプレート線分727は、受付画像705の雛型となるテンプレート画像における線分である。つまり、線分ペア選択モジュール730は、受付画像線分725に対してテンプレート線分727を対応付けた線分の組(線分ペア735)を作成する。
特徴点検出モジュール740は、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760と接続されており、受付画像705を受け付け、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760に受付画像特徴点745を渡す。特徴点検出モジュール740は、既存の技術を用いて受付画像705内の特徴点を抽出し、その特徴点を受付画像特徴点745として出力する。ここで、特徴量とは、線分の端点又は線分どうしがなす交点である。
【0041】
アフィン変換量算出Aモジュール750は、線分ペア選択モジュール730、特徴点検出モジュール740、特徴点ペア探索モジュール760と接続されており、テンプレート特徴点777を受け付け、特徴点ペア探索モジュール760にアフィン変換量755を渡す。アフィン変換量算出Aモジュール750は線分ペア735を用いて、テンプレート画像に対する受付画像705の歪みを算出する。つまり、アフィン変換量算出Aモジュール750は、2つの線分の組(線分ペア735)からアフィン変換量755を算出し、最も受付画像特徴点745とテンプレート特徴点777の一致度が高いアフィン変換量755を出力する。ここで、線分のペアの2つからアフィン変換量を算出し、そのアフィン変換量を用いた受付画像705とテンプレート画像の一致度に基づいて、歪みを示すアフィン変換量を選択するようにしてもよい。ここで、一致度とは、受付画像705から検出される受付画像特徴点745とテンプレート画像におけるテンプレート特徴点777について、アフィン変換量による変換後に、最近傍の関係にある組が、予め定められた距離内に収まっている個数である。
【0042】
特徴点ペア探索モジュール760は、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、アフィン変換量算出Bモジュール770と接続されており、テンプレート特徴点777を受け付け、アフィン変換量算出Bモジュール770に特徴点ペア765を渡す。特徴点ペア探索モジュール760は、アフィン変換量755に基づいて、特徴点の対応付けを行い特徴点の組(特徴点ペア765)を作成する。
アフィン変換量算出Bモジュール770は、特徴点ペア探索モジュール760と接続されており、アフィン変換量775を出力する。アフィン変換量算出Bモジュール770は、特徴点の組(特徴点ペア765)からアフィン変換量775を算出する。受付画像705の受付画像特徴点745とテンプレート画像のテンプレート特徴点777について、アフィン変換量算出Aモジュール750による算出処理後に、予め定められた距離内に収まっている最近傍の関係にある組から、最小2乗法によりアフィン変換量を算出する。
【0043】
図8は、第1の実施の形態による処理例を示すフローチャートである。線分ペア選択モジュール730とアフィン変換量算出Aモジュール750における処理フローの例を示している。
受付画像の線分は、長さ順にソートされ、高々上位N個までしか参照されない。なお、n
1,n
2は、受付画像の線分のインデックスである。また、m
1,m
2はテンプレートの線分のインデックスである。また、アフィン変換量Aは、前述の数式1における6つのパラメータ(a,b,c,d,e,f)である。
歪み量であるアフィン変換量が分かることで、例えば、大量のスキャン投入の際に異常な姿勢の設置があれば、これを自動で検知・警告するようにしてもよい。
【0044】
ステップS802では、受付画像の線分を長さ順にソートする。
ステップS804では、アフィン変換量Aに(0,0,0,0,0,0)を代入する。
ステップS806では、変数Sに0を代入する。
ステップS808では、変数n
1に0を代入する。
ステップS810では、n
1<Nであるか否かを判断し、n
1<Nである場合はステップS812へ進み、それ以外の場合は処理を終了する(ステップS899)。
ステップS812では、変数n
2にn
1+1を代入する。
ステップS814では、n
2<Nであるか否かを判断し、n
2<Nである場合はステップS816へ進み、それ以外の場合はステップS844へ進む。
【0045】
ステップS816では、変数m
1に0を代入する。
ステップS818では、m
1<Mであるか否かを判断し、m
1<Mである場合はステップS820へ進み、それ以外の場合はステップS842へ進む。
ステップS820では、変数m
2に0を代入する。
ステップS822では、m
2<Mであるか否かを判断し、m
2<Mである場合はステップS824へ進み、それ以外の場合はステップS840へ進む。
ステップS824では、m
2≠m
1であるか否かを判断し、m
2≠m
1である場合はステップS826へ進み、それ以外の場合はステップS838へ進む。
ステップS826では、アフィン変換量算出を行う。(n
1,m
1)、(n
2,m
2)の線分ペアからアフィン変換量Aを算出する。
【0046】
ステップS828では、特徴点対応付けを行う。アフィン変換量Aから特徴点の対応付けを行う。
ステップS830では、一致度算出を行う。対応する特徴点から一致度Sを算出する。
ステップS832では、S
selected<Sであるか否かを判断し、S
selected<Sである場合はステップS834へ進み、それ以外の場合はステップS838へ進む。
ステップS834では、A
selectedにAを代入する。
ステップS836では、S
selectedにSを代入する。
ステップS838では、m
2にm
2+1を代入する。
ステップS840では、m
1にm
1+1を代入する。
ステップS842では、n
2にn
2+1を代入する。
ステップS844では、n
1にn
1+1を代入する。
【0047】
図9は、第2の実施の形態の構成例についての概念的なモジュール構成図である。第2の実施の形態における画像処理装置100は、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、線分検出モジュール910、特徴点検出モジュール920を有している。なお、第1の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。第2の実施の形態は、テンプレート画像を入力するものである。
テンプレート画像905も受付画像705と同様のスキャンやコピーのプロセスにより作成することで、受付画像705とテンプレート画像905で同様の劣化が生じる。これにより、線分の誤検出・見逃しを含んだより一致度の高い線分と特徴点の対応をとることとなる。
【0048】
線分ペア選択モジュール730は、線分選択モジュール720、アフィン変換量算出Aモジュール750、線分検出モジュール910と接続されており、アフィン変換量算出Aモジュール750に線分ペア735を渡す。
アフィン変換量算出Aモジュール750は、線分ペア選択モジュール730、特徴点検出モジュール740、特徴点ペア探索モジュール760、特徴点検出モジュール920と接続されており、特徴点ペア探索モジュール760にアフィン変換量755を渡す。
特徴点ペア探索モジュール760は、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、アフィン変換量算出Bモジュール770、特徴点検出モジュール920と接続されており、アフィン変換量算出Bモジュール770に特徴点ペア765を渡す。
線分検出モジュール910は、線分ペア選択モジュール730と接続されており、テンプレート画像905を受け付け、線分ペア選択モジュール730にテンプレート線分727を渡す。線分検出モジュール910は、テンプレート画像905からテンプレート線分727を検出する。ここで、テンプレート画像905は、レイアウト情報を指示する枠が描かれており、その枠内は未記入の画像である。つまり、受付画像705の記入前の画像である。線分検出モジュール710と同等の処理を行う。
特徴点検出モジュール920は、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760と接続されており、テンプレート画像905を受け付け、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760にテンプレート特徴点777を渡す。特徴点検出モジュール740と同等の処理を行う。
【0049】
図10は、第3の実施の形態の構成例についての概念的なモジュール構成図である。第3の実施の形態における画像処理装置100は、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、線分検出モジュール910、特徴点検出モジュール920、線分選択モジュール1020を有している。テンプレート線分の選択を行う例である。
線分ペア選択モジュール730は、線分選択モジュール720、アフィン変換量算出Aモジュール750、線分選択モジュール1020と接続されており、アフィン変換量算出Aモジュール750に線分ペア735を渡す。
線分検出モジュール910は、線分選択モジュール1020と接続されており、テンプレート画像905を受け付け、線分選択モジュール1020にテンプレート線分1015を渡す。
線分選択モジュール1020は、線分検出モジュール910、線分ペア選択モジュール730と接続されており、線分ペア選択モジュール730にテンプレート線分727を渡す。線分選択モジュール1020は、テンプレート画像905のテンプレート線分1015として、長さ順で上位から予め定められた数の線分を利用する。つまり、テンプレート線分1015から長さの長いものを選択して、その選択した線分をテンプレート線分727として出力する。テンプレート線分1015に対しても長さに基づいた取捨選択を行うものであり、線分選択モジュール720と同等の処理を行う。
【0050】
図11は、第4の実施の形態の構成例についての概念的なモジュール構成図である。第4の実施の形態における画像処理装置100は、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、線分検出モジュール910、特徴点検出モジュール920、線分選択モジュール1020、アフィン変換量算出Cモジュール1150を有している。異常な線分の組み合わせを棄却する例である。
線分ペア選択モジュール730は、線分選択モジュール720、線分選択モジュール1020、アフィン変換量算出Cモジュール1150と接続されており、アフィン変換量算出Cモジュール1150に線分ペア735を渡す。
アフィン変換量算出Cモジュール1150は、線分ペア選択モジュール730、特徴点検出モジュール740、特徴点ペア探索モジュール760、特徴点検出モジュール920と接続されており、変換範囲1135を受け付け、特徴点ペア探索モジュール760にアフィン変換量755を渡す。アフィン変換量算出Cモジュール1150は、線分ペア735から算出されるアフィン変換量が異常値である場合、一致度の評価における特徴点のペアの探索を行わない。つまり、アフィン変換量算出Cモジュール1150は、特徴点による一致度を評価する前に、変換範囲1135に収まらないアフィン変換量を異常値と判定し棄却する。
図8に示したフローチャート例における、特徴点対応付け処理(ステップS828)の直前で棄却を行えばよい。
特徴点ペア探索モジュール760は、特徴点検出モジュール740、アフィン変換量算出Cモジュール1150、アフィン変換量算出Bモジュール770、特徴点検出モジュール920と接続されており、アフィン変換量算出Bモジュール770に特徴点ペア765を渡す。
【0051】
図12は、第5の実施の形態の構成例についての概念的なモジュール構成図である。第5の実施の形態における画像処理装置100は、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、アフィン変換モジュール1280、領域切り出しモジュール1290を有している。レイアウト情報の補正を行う例である。
アフィン変換量算出Bモジュール770は、特徴点ペア探索モジュール760、アフィン変換モジュール1280と接続されており、アフィン変換モジュール1280にアフィン変換量775を渡す。
アフィン変換モジュール1280は、アフィン変換量算出Bモジュール770、領域切り出しモジュール1290と接続されており、レイアウト情報1277を受け付け、領域切り出しモジュール1290にレイアウト情報1285を渡す。アフィン変換モジュール1280は、アフィン変換量算出Bモジュール770が算出したアフィン変換量775によって、レイアウト情報1277の位置情報を補正する。補正は数式1の通りである。実環境で発生した歪みを補正したレイアウト情報1285が得られる。
領域切り出しモジュール1290は、アフィン変換モジュール1280と接続されており、レイアウト情報1285を受け取って、領域画像1295を出力する。つまり、補正されたレイアウト情報1285に基づいて、領域を切り出すことで、所望の位置の領域画像1295(記入情報)が得られる。受付画像705ではなく、レイアウト情報1285を補正することで、画像編集による誤差がなく、また、補正すべき点数が少なくなる。
【0052】
図13は、第6の実施の形態の構成例についての概念的なモジュール構成図である。第6の実施の形態における画像処理装置100は、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、アフィン変換モジュール1280、領域切り出しモジュール1290、文字認識モジュール1390を有している。文字認識を行う例である。
領域切り出しモジュール1290は、アフィン変換モジュール1280、文字認識モジュール1390と接続されており、文字認識モジュール1390に領域画像1295を渡す。
文字認識モジュール1390は、領域切り出しモジュール1290と接続されており、文字認識結果1395を出力する。文字認識モジュール1390は、補正されたレイアウト情報1285に基づいて文字認識を行う。つまり、文字認識モジュール1390は、領域画像1295に対して文字認識を行い、文字認識結果1395を出力する。文字認識は、既存の技術を利用すればよい。
なお、
図12、
図13に示した例は、第1の実施の形態にモジュール(アフィン変換モジュール1280、領域切り出しモジュール1290、文字認識モジュール1390)を付加しているが、第2の実施の形態等に対して、同様にモジュールを付加してもよい。
【0053】
図14を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。
図14に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1417と、プリンタなどのデータ出力部1418を備えたハードウェア構成例を示している。
【0054】
CPU(Central Processing Unit)1401は、前述の実施の形態において説明した各種のモジュール、すなわち、線分検出モジュール710、線分選択モジュール720、線分ペア選択モジュール730、特徴点検出モジュール740、アフィン変換量算出Aモジュール750、特徴点ペア探索モジュール760、アフィン変換量算出Bモジュール770、線分検出モジュール910、特徴点検出モジュール920、線分選択モジュール1020、アフィン変換量算出Cモジュール1150、アフィン変換モジュール1280、領域切り出しモジュール1290、文字認識モジュール1390等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0055】
ROM(Read Only Memory)1402は、CPU1401が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1403は、CPU1401の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1404により相互に接続されている。
【0056】
ホストバス1404は、ブリッジ1405を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1406に接続されている。
【0057】
キーボード1408、マウス等のポインティングデバイス1409は、操作者により操作される入力デバイスである。ディスプレイ1410は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0058】
HDD(Hard Disk Drive)1411は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1401によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受付画像705、テンプレート線分727、テンプレート特徴点777、アフィン変換量775、領域画像1295、文字認識結果1395などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0059】
ドライブ1412は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1413に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1407、外部バス1406、ブリッジ1405、及びホストバス1404を介して接続されているRAM1403に供給する。リムーバブル記録媒体1413も、ハードディスクと同様のデータ記録領域として利用可能である。
【0060】
接続ポート1414は、外部接続機器1415を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1414は、インタフェース1407、及び外部バス1406、ブリッジ1405、ホストバス1404等を介してCPU1401等に接続されている。通信部1416は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部1417は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1418は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0061】
なお、
図14に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図14に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに
図14に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0062】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。