(57)【要約】      （修正有）【課題】マスター画像と検査対象画像とのマッチング処理の効率化、高速化を図る。【解決手段】マスター画像と検査対象画像Ｇ３とを複数のブロックに分割し、検査対象画像Ｇ３の少なくとも２個以上の各ブロックＧ３（ｎ＋１、ｍ）、Ｇ３（ｎ＋２、ｍ）について、その検査対象画像Ｇ３の各ブロックの始点座標（ｎ＋１、ｍ）、（ｎ＋２、ｍ）とその各ブロックに対応するマスター画像の各ブロックの始点座標とのずれ量を演算により求め、検査対象画像Ｇ３の各ブロックデータを同時並列計算対象空間にメモリマッピングする際に、検査対象画像Ｇ３の始点座標をずれ量に対応する分だけずらした座標をロード開始アドレス（ｎ＋１’、ｍ’）、（ｎ＋２’、ｍ’）とし、このロード開始アドレスから検査対象画像Ｇ３の各ブロックの画素のデータをロードする。ついで各ブロック内の画素のデータについてマッチング処理を同時に行う。【選択図】図６
2015005233.tif 000002
【特許請求の範囲】
【請求項１】
マスター画像の全体の画像領域とフレームメモリに格納されている検査対象画像の全体の画像領域とを複数のブロックに等分割し、検査対象画像の少なくとも２個以上の各ブロックについて、その検査対象画像の各ブロックの始点座標とその各ブロックにそれぞれ対応するマスター画像の各ブロックの始点座標とのずれ量を演算により求める演算ステップと、
前記フレームメモリから前記検査対象画像の各ブロックの画素のデータを並列計算機の同時並列計算対象空間にメモリマッピングする際に、前記検査対象画像の各ブロックの始点座標をずれ量に対応する分だけずらした位置座標をロード開始アドレスとして、このロード開始アドレスから検査対象画像の各ブロックの画素のデータをロードし、検査対象画像の少なくとも２個以上のブロック内の画素のデータについて前記マスター画像の対応する各ブロック内の画素のデータとのマッチング処理を同時に行うマッチング処理ステップと、を含むことを特徴とする画像データのマッチング処理方法。
【請求項２】
前記マッチング処理ステップは、演算ステップにより求められた前記検査対象画像の各ブロックの位置ずれ量から各ブロック毎に同時並列計算対象空間にロードする際に位置ずれ補正後のロード開始アドレスを演算するアドレス演算ステップと、前記検査対象画像の１個のブロックを前記同時並列計算対象空間にメモリマッピングするメモリマッピングステップと、続けて別のブロックを前記同時並列計算対象空間にメモリマッピングできるか否かを判断して、前記別のブロックを前記同時並列計算対象空間にメモリマッピングできるときには当該メモリマッピングを続けて実行する実行ステップとを含み、前記アドレス演算ステップと前記実行ステップとを実行後、該実行ステップにおいて前記別のブロックをメモリマッピングできないと判断されたときには前記同時並列計算対象空間にすでにメモリマッピングされている各ブロックの画素のデータについて同時にマッチング処理を行うことを特徴とする請求項１に記載の画像データのマッチング処理方法。
【請求項３】
前記並列計算機がＳＩＭＤ構造であることを特徴とする請求項２に記載の画像データのマッチング処理方法。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の画像データのマッチング処理方法を実行可能な処理装置。
【請求項５】
請求項１ないし請求項３の画像データの処理方法を用いた画像検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理、画像照合、パターンマッチング、画像検査等に用いる画像データのマッチング処理方法及びその処理装置及び画像検査装置に関する。
この技術は画像検査装置、印刷物検査装置、ＷＥＢ検査装置、液晶検査装置、半導体検査装置等に適用可能である。
【背景技術】
【０００２】
印刷物、半導体等の検査対象を撮像し、その検査対象画像をマスター画像と比較して、検査対象画像の各画素のデータとマスター画像の対応する各画素のデータとがマッチングするか否かをデータ処理により行う画像データのマッチング処理方法が知られている。
【０００３】
この種の画像データのマッチング処理では、マスター画像と、検査対象画像との位置合わせを行う必要がある。例えば、マスター画像と検査対象画像とを四角形の画像として、これらの縦と横の四隅の位置を合わせて、対比する画像同士の各画素毎にデータが一致するか否かを検査する必要がある。
【０００４】
しかしながら、マスター画像の一隅と検査対象画像の一隅とを位置合わせしたとしても、残りの三隅は一致しないことが多い。
これは、マスター画像と検査対象画像との間には、検査対象画像の伸び、縮み、歪み等に起因するサイズの相違や、撮像時等の撮影距離の変動に伴って、検査対象画像の大きさが変化するからである。
【０００５】
そこで、マスター画像の全体の画像領域と検査対象画像の全体の画像領域とを互いに対応する複数個のブロックに等分割して、そのブロック毎にマスター画像の各画素のデータと検査対象画像の各画素のデータとのマッチング処理を行う技術が開発されている（特許文献１、特許文献２、特許文献３参照。）。
【０００６】
この特許文献１ないし特許文献３では、検査対象画像のマスター画像に対する全体の位置ずれを、各ブロック毎の位置ずれに変換し、ブロック内の各画素の位置ずれ量は等しいと仮定して、並列処理を行うことにより、各画素のデータのマッチング処理を行っている。
【０００７】
これらの技術によれば、マスター画像と検査対象画像との全体の位置ずれを解消するために、全体の画像領域を複数の画像領域にブロック化して、ブロック毎の位置ずれ量を並列計算機で一括処理して補正しているので、検査処理全体の効率化、高速化を行うことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、実際に利用される並列計算機（例えば、ＳＩＭＤプロセッサ）の同時並列計算対象空間の大きさは有限である。これは、同時並列計算対象空間の大きさがＬＳＩとして実現されているため、同時並列計算対象空間の大きさがほとんど固定化されているからである。
【０００９】
例えば、ＳＩＭＤプロセッサのプロセッサエレメント（ＰＥ）の個数が３５２個であるとして、マスター画像と検査対象画像の検査の精度の考察上、各ブロックの横方向の画素の個数（主走査方向の画素の個数）が、１５０画素と定義されていたとする。
【００１０】
この場合、ＳＩＭＤプロセッサの同時並列計算対象空間の大きさ、すなわち、ＳＩＭＤプロセッサのプロセッサエレメント（ＰＥ）の個数が３５２個であっても、ブロック毎の位置ずれが異なるため、少なくとも２個以上のブロック内の画素のデータを同時並列計算対象空間にメモリマッピングして同時に演算を行うことができない。
【００１１】
というのは、ブロック毎に位置ずれが異なると、同時並列計算対象空間内で同時に各ブロックに同一の演算処理を施すことができず、一回の計算では同時に１５０画素分しか並列演算を行うことができないからである。
【００１２】
なお、ＳＩＭＤとは、１つの命令で複数のデータを処理する手法をいい、ＳＩＭＤプロセッサとはそのような処理を行う並列計算機の一つをいう。
また、メモリマッピングとは、仮想アドレス空間を物理アドレス空間に対応付けるコンピュータ処理の一つをいう
【００１３】
一般に、Ｎ個のプロセッサエレメント（ＰＥ）を有するＳＩＭＤプロセッサの同時並列計算処理では、Ｎ個のプロセッサエレメント（ＰＥ）を利用でき、この場合の利用効率が１００％である。
【００１４】
しかし、上述のような場合、３５２個のプロセッサエレメント（ＰＥ）のうち１５０個のプロセッサエレメント（ＰＥ）しか利用していないため、利用効率は、１５０/３５２≒０.４３、すなわち、４３％程度しか利用していないことになり、マッチング処理の効率化及び高速化のネックとなる。
【００１５】
本発明は、マスター画像の全体の画像領域と検査対象画像の全体の画像領域とを複数のブロックに等分割して、ブロック毎にマスター画像と検査対象画像とのマッチング処理の効率化及び高速化を図ることのできる画像データのマッチング処理方法を提供することにある。
【課題を解決するための手段】
【００１６】
本発明に係る画像データのマッチング処理方法は、マスター画像の全体の画像領域とフレームメモリに格納されている検査対象画像の全体の画像領域とを複数のブロックに等分割し、検査対象画像の少なくとも２個以上の各ブロックについて、その検査対象画像の各ブロックの始点座標とその各ブロックにそれぞれ対応するマスター画像の各ブロックの始点座標とのずれ量を演算により求めるステップと、
前記フレームメモリから前記検査対象画像の各ブロックの画素のデータを並列計算機の同時並列計算対象空間にメモリマッピングする際に、前記検査対象画像の各ブロックの始点座標をずれ量に対応する分だけずらした座標をロード開始アドレスとして、このロード開始アドレスから検査対象画像の各ブロックの画素のデータをロードし、検査対象画像の少なくとも２個以上のブロック内の画素のデータについて前記マスター画像の対応する各ブロック内の画素のデータとのマッチング処理を同時に行うステップと、を含むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、検査対象画像の複数個のブロックを同時並列計算対象空間にロードする際に、ブロック毎のロード開始アドレスをそのブロック毎のずれ量に対応したアドレスにシフトさせたので、同時並列計算対象空間に検査対象画像の各ブロック内の画素のデータのメモリマッピングが終わった時点で、マスター画像の各ブロックに対する検査対象画像の対応する各ブロックの位置ずれが解消される。
【図面の簡単な説明】
【００１８】
【図１】図１は本発明に係る画像データのマッチング処理方法に用いる処理装置のブロック図であって、印刷物の画像を検査する画像検査装置を有するプリンタを示している。
【図２】図２はプリンタによって印刷された検査対象画像の一例を示す説明図である。
【図３】図３は図２に示す検査対象画像の画像領域を横方向（主走査方向）を８ブロックに等分割し、縦方向（副走査方向）を１８ブロックに等分割した例を示す説明図である。
【図４】図４は検査対象画像のマスター画像に対する位置ずれを概念的に示す説明図である。
【図５】図５は、従来の画像データのマッチング処理方法に用いる検査対象画像の各ブロックについてマスター画像の各ブロックに対する位置ずれ補正を概念的に示す説明図である。
【図６】図６は本発明に係る画像データのマッチング処理方法に用いる検査対象画像の各ブロックについて、マスター画像のブロックに対する位置ずれ補正を概念的に示す説明図であって、同時並列計算対象空間へ検査対象画像のブロック内の画素データをロードすることによるメモリマッピングを概念的に示す説明図である。
【図７】図７は本発明に係る画像データのマッチング処理方法に用いる検査対象画像の各ブロックの位置ずれ補正を概念的に示す説明図であって、マスター画像のブロックの始点座標と検査対象画像の始点座標との関係を模式的に示す概念図である。
【図８】図８は従来の画像データのマッチング処理方法の一例を示すフローチャート図である。
【図９】図９は本発明の画像データのマッチング処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【実施例】
【００１９】
以下に、本発明に係る画像データのマッチング処理方法に用いる処理装置を図１に示すプリンタを参照しつつ説明する。
その図１において、符号１は、プリンタ本体である。このプリンタ本体１は、プリンタ制御部２、プリントエンジン３、メカニカル機構（図示を略す）を備えている。
【００２０】
プリンタ本体１のプリンタ制御部２には、原画像データＧ１が入力され、プリンタ制御部２は、原画像データＧ１をプリントエンジン３によって描画されるプリントデータｐｒｄに変換する。このプリントデータｐｒｄにより、紙に画像が印刷されて、印刷物５が製作される。
【００２１】
そのプリンタ本体１には画像検査装置６が接続されている。画像検査装置６は、マスター画像生成部７、印刷画像読み取り部８、バッファメモリ９、比較検査部１０を有している。その印刷画像読み取り部８にはフレームメモリ８’が設けられている。その比較検査部１０は、並列計算機としてのＳＩＭＤ計算機を有している。
【００２２】
プリントデータｐｒｄは画像検査装置６のマスター画像生成部７に送られる。マスター画像生成部７は、マスター画像Ｇ２と後述する基準点座標の集合としての基準点情報Ｒｅｆと位置合わせマークとを生成する。このマスター画像Ｇ２と基準点情報Ｒｅｆとはバッファリング（一時保存）される。
【００２３】
その印刷物５は印刷画像読み取り部８によりスキャンされる。このスキャンデータが検査対象画像Ｇ３として用いられる。
【００２４】
この検査対象画像Ｇ３とバッファリングされかつ印刷物５のページと同期されたマスター画像Ｇ２とは比較検査部１０において照合検査される。このマスター画像Ｇ２と検査対象画像Ｇ３との不一致のデータが検査結果として、例えば、「欠陥」として出力される。
【００２５】
図２はその印刷物５に印刷された四角形状の検査対象画像Ｇ３を示している。その検査対象画像Ｇ３の四隅にはいわゆる「トンボ」等の位置あわせマーク１１が印刷されている。この位置合わせマーク１１を用いて検査対象画像Ｇ３とマスター画像Ｇ２との位置合わせが行われる。
【００２６】
図３はその検査対象画像Ｇ３の全体の画像領域を横方向（主走査方向）に８個に等分割し、縦方向（副走査方向）に１８個に等分割している。その検査対象画像Ｇ３の主走査方向の全画素数は例えば１２００個、副走査方向の全画素数例えば１８００個である。従って、各ブロックＧ３（ｉ、ｊ）のサイズは１５０×１００画素である。ここで、符号ｉは１から８までの正の整数、符号ｊは１から１８までの正の整数である。
【００２７】
検査対象画像Ｇ３は、図４に示すように、マスター画像Ｇ２に対してその位置がずれている。例えば、符号１１’をマスター画像Ｇ２の位置合わせマークとすると、検査対象画像Ｇ３の位置合わせマーク１１は、左上隅の位置合わせマーク１１と位置合わせマーク１１’との位置を合わせたとしても、検査対象画像Ｇ３の歪み等により徐々にずれる。
【００２８】
図４には、検査対象画像Ｇ３が左上隅から右下隅に向かうに伴って伸長する方向にずれた状態が概念的に示されている。
この検査対象画像Ｇ３の全体に対する各ブロックＧ３（ｉ、ｊ）の位置ずれは線形であると仮定できる。従って、マスター画像Ｇ２の対応する各ブロックＧ２（ｉ、ｊ）に対する位置ずれはこのブロックＧ２（ｉ、ｊ）に対応する検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）を線形的にずらすことにより補正できる。すなわち、この検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）をマスター画像Ｇ２の対応するブロックＧ２（ｉ、ｊ）と合致させることができる。
【００２９】
その図４において、符号Ｇ３（３、５）、Ｇ３（４、５）、Ｇ３（５、５）、Ｇ３（６、５）は、検査対象画像Ｇ３の中央部分のブロックを示している。この例では、左から右に向かうに伴って、マスター画像Ｇ２の対応する各ブロックＧ２（３、５）、Ｇ２（４、５）、Ｇ２（５、５）、Ｇ２（６、５）に対する位置ずれが徐々に大きくなっていることを示している。
【００３０】
また、その図４において、符号Ｇ２（１、１）、Ｇ３（１、１）、Ｇ２（８、１）、Ｇ３（８、１）、Ｇ２（１、１８）、Ｇ３（１、１８）、Ｇ２（８、１８）、Ｇ３（８、１８）は位置合わせマーク１１を有する四隅のブロックを示している。
【００３１】
検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）のマスター画像Ｇ２の対応するブロックＧ２（ｉ、ｊ）に対する位置ずれは、例えば、以下の式により算出できる。
横方向をＸ軸、縦方向をＹ軸として、例えば、Ｘ軸方向のマスター画像Ｇ２のブロックＧ２（１、１）の基準点座標（基準点情報）を（ｘ１、ｙ１）、ブロックＧ２（８、１）の基準点座標を（ｘ２、ｙ１）、ブロックＧ２（１、１８）の基準点座標を（ｘ１、ｙ２）、ブロックＧ２（８、１８）の基準点座標を（ｘ２、ｙ２）とする。
【００３２】
これに対して、例えば、検査対象画像Ｇ３のブロックＧ３（１、１）のｘ方向のずれ量をｕ１、ブロックＧ３（８、１）のｘ方向のずれ量をｕ２、ブロックＧ３（１、１８）のｘ方向のずれ量をｕ３、ブロックＧ３（８、１８）のｘ方向のずれ量をｕ４とする。
【００３３】
ここで、Δ（ｘ、ｙ）を座標位置（ｘ、ｙ）におけるｘ方向の位置ずれ量として、
第１番目の行の位置ｘにおける位置ずれ量Δ(ｘ、ｙ１)は、位置ずれが線形であると仮定する。
すると、位置ずれ量Δ(ｘ、ｙ１)は、
Δ(ｘ、ｙ１)=｛(ｕ２―ｕ１)/(ｘ２−ｘ１)｝*(ｘ−ｘ１)＋ｕ１＝ｆ１(ｘ)
第１８番目の行の位置ｘにおける位置ずれ量Δ(ｘ、ｙ２)は、同様に、
Δ(ｘ、ｙ２)=｛(ｕ４―ｕ３)/(ｘ２−ｘ１)｝*(ｘ−ｘ１)＋ｕ３＝ｆ２(ｘ)
【００３４】
従って、ｘ位置におけるｘ方向の位置ずれ量は、
Δ（ｘ、ｙ）＝［{ｆ２（ｘ）―ｆ１（ｘ）)}/（ｙ２−ｙ１）］*（ｙ―ｙ１)＋ｆ１(ｘ)
なお、符号「＊」は掛け算を意味する。
【００３５】
これに対して、ｙ位置におけるｙ方向の位置ずれ量は、同様にして以下のようにして求める。検査対象画像Ｇ３のブロックＧ３（１、１）のｙ方向のずれ量をｖ１、ブロックＧ３（８、１）のｙ方向のずれ量をｖ２、ブロックＧ３（１、１８）のｙ方向のずれ量をｖ３、ブロックＧ３（８、１８）のｙ方向のずれ量をｖ４とする。
【００３６】
第１番目の列の位置ｙにおける位置ずれ量は、位置ずれが線形であると仮定すると、
Δ(ｘ１、ｙ)=｛(ｖ２―ｖ１)/(ｙ２−ｙ１)｝*(ｙ−ｙ１)＋ｖ１＝ｆ１(ｙ)
第１０番目の行の位置ｘにおける位置ずれ量は、同様に、
Δ(ｘ２、ｙ)=｛(ｖ４―ｖ３)/(ｙ２−ｙ１)｝*(ｙ−ｙ１)＋ｖ２＝ｆ２(ｙ)
従って、ｙ位置におけるｙ方向の位置ずれ量は、
Δ（ｘ、ｙ）＝［{ｆ２（ｙ）―ｆ１（ｙ）)}/（ｘ２−ｘ１）］*（ｘ―ｘ１)＋ｆ１(ｙ)
【００３７】
この線形補間式は、位置合わせマーク１１を有しない検査対象画像Ｇ３の各ブロックのｘ方向、ｙ方向の位置ずれ量を求める際に用いられる。
すなわち、マスター画像Ｇ２の四隅の基準点座標（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３）、（ｘ４、ｙ４）を位置合わせマーク１１を有する四隅のブロックＧ２（１、１）、Ｇ２（８、１）、Ｇ（１、１８）、Ｇ２（８、１８）について求め、印刷物である検査対象画像Ｇ３の四隅の基準点座標を位置合わせマーク１１を有するブロックＧ３（１、１）、Ｇ３（８、１）、Ｇ３（１、１８）、Ｇ３（８、１８）について求めることにより、ｘ方向の位置ずれ量ｕ１、ｕ２、ｕ３、ｕ４、ｙ方向の位置ずれ量ｖ１、ｖ２、ｖ３、ｖ４を求める。
その後、ｘ方向の位置ずれ量を求める線形補間式、ｙ方向の位置ずれ量を求める線形補間式を用いて、位置合わせマーク１１を有しない検査対象画像Ｇ３の各ブロックについてのｘ方向の位置ずれ量、ｙ方向の位置ずれ量を求める。
この位置ずれ補正を伴ったマッチング処理は、各画素に対して同じ処理の繰り返しであるので、ＳＩＭＤ構造のプロセッサ等の並列計算機を用いて効率よく実行可能である。
図５は検査対象画像Ｇ３の一部のずれとその位置ずれに対する処理の従来例を概念的に示している。
【００３８】
各画素のずれ量Δ（ｘ、ｙ）は、同一の検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）内の画素では同じと仮定できる。これは、そのずれ量が同じと仮定できるような大きさのブロックを定義することによって成立する。同一のブロックＧ３（ｉ、ｊ）内での画素の位置ずれが等しいなら同時並列計算を行うことができる。
【００３９】
従来、この並列計算処理を以下の処理手順で行って、画像データのマッチング処理を行っていた。
すなわち、並列計算機の同時並列計算対象空間（レジスターファイル、プロセッサエレメント）に、マスター画像Ｇ２の始点座標（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３）、（ｘ４、ｙ４）のアドレスに対応する検査対象画像Ｇ３のアドレスをロード開始アドレスとして1ブロック分の画素のデータをロードする（図８のＳ.１’参照）。
【００４０】
ついで、同時並列計算対象空間内で、図５に概念的に示すように、その検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）、Ｇ３（ｉ＋１、ｊ）、Ｇ３（ｉ＋２、ｊ）、Ｇ３（ｉ＋３、ｊ）の位置ずれ量（Δｘ１、Δｙ１）、（Δｘ２、Δｙ２）、（Δｘ３、Δｙ３）、（Δｘ４、Δｙ４）に対応する分だけ画素データをｘ、ｙ方向に１ブロック毎にシフトさせる（図８のＳ.２’参照）。
【００４１】
ついで、検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）、Ｇ３（ｉ＋１、ｊ）、Ｇ３（ｉ＋２、ｊ）、Ｇ３（ｉ＋３、ｊ）の各画素のデータとマスター画像Ｇ２の対応するブロックＧ２（ｉ、ｊ）、Ｇ２（ｉ＋１、ｊ）、Ｇ２（ｉ＋２、ｊ）、Ｇ２（ｉ＋３、ｊ）の対応する各画素のデータとを１ブロック毎にマッチング計算する（図８のＳ３’）。
【００４２】
画素のデータのマッチング処理の手法には、単純差分法、画素中心の小領域を用いた相関計算法等の各種の手法があるが、ここでは、その説明は割愛する。
そのブロックＧ３（ｉ、ｊ）内の画素のデータのマッチング結果の集積がそのブロックＧ３（ｉ、ｊ）内の画像全体に対する検査結果である。マスター画像Ｇ２と検査対象画像Ｇ３の差分が所定値以上であれば、検査失格という判定を行う。
【００４３】
この従来の画像データのマッチング処理方法では、図５に示すように、検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）毎にマスター画像Ｇ２の対応する各ブロックＧ２（ｉ、ｊ）に対する位置ずれ量が異なっている。
【００４４】
例えば、マスター画像Ｇ２のブロックＧ２（ｉ、ｊ）の始点座標（ｘ１、ｙ１）に対する検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）の始点座標は（ｘ１＋Δｘ１、ｙ１＋Δｙ１）である。
【００４５】
また、例えば、マスター画像Ｇ２の隣接するブロックＧ２（ｉ＋１、ｊ）の始点座標（ｘ２、ｙ２）に対する検査対象画像Ｇ３のブロックＧ３（ｉ＋１、ｊ）の始点座標は（ｘ２＋Δｘ２、ｙ２＋Δｙ２）である。
【００４６】
同様に、マスター画像Ｇ２のブロックＧ２（ｉ＋２、ｊ）の始点座標（ｘ３、ｙ３）に対する検査対象画像Ｇ３のブロックＧ３（ｉ＋２、ｊ）の始点座標は（ｘ３＋Δｘ３、ｙ３＋Δｙ３）である。
【００４７】
マスター画像Ｇ２のブロックＧ２（ｉ＋３、ｊ）の始点座標（ｘ４、ｙ４）に対する検査対象画像Ｇ３のブロックＧ３（ｉ＋３、ｊ）の始点座標は（ｘ４＋Δｘ４、ｙ４＋Δｙ４）である。すなわち、検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）毎に位置ずれ量（Δｘ１、Δｙ１）、（Δｘ２、Δｙ２）、（Δｘ３、Δｙ３）、（Δｘ４、Δｙ４）が異なっている。
【００４８】
このため、プロセッサエリメント（ＰＥ）の要素数Ｎに対してロードする検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）の画素のデータがＮ/２よりも小さい場合に、検査対象画像Ｇ３から位置ずれ量が互いに異なる少なくとも二個のブロックＧ２（ｉ、ｊ）の画素のデータを同時並列計算対象空間にロードして、同時並列計算対象空間内で位置ずれ量が互いに異なる二個のブロックＧ３（ｉ、ｊ）に同時に同じ計算処理を施そうとしても、その計算処理を行うことができない。
【００４９】
すなわち、プロセッサエリメント（ＰＥ）の要素数Ｎに対してロードする検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）の画素のデータがＮ/２よりも小さい場合に、その同時並列計算対象空間の利用効率が図れない。
【００５０】
これに対して、本発明に係る実施例では、例えば、カメラ等の撮像装置ＣＡＭにより検査対象画像Ｇ３を撮像する。その画像データはいったん図６に示すようにフレームメモリ８’にブロックＧ３（ｉ、ｊ）毎に格納される。
【００５１】
その図６においては、フレームメモリ８’に各ブロックＧ３（ｉ、ｊ）が連続して格納されているが、各ブロックＧ３（ｉ、ｊ）のアドレスがわかれば、各ブロックＧ３（ｉ、ｊ）を関連付けることができるので、格納順序はこれに限られないものである。
【００５２】
フレームメモリ８’に格納されている検査対象画像Ｇ３をブロック管理するときに、各ブロックＧ３（ｉ、ｊ）にはマスター画像Ｇ２のブロック分けに対応する開始アドレス（始点座標）が付与される。フレームメモリ８’の大きさ、画像の縦横の画素の個数が決定しているため、開始アドレスの計算は事前に行うことが可能である。
【００５３】
これに対して、検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）に対して生じる位置ずれΔ（ｘ、ｙ）を各ブロックＧ３（ｉ、ｊ）毎に事前に別途計算する。その計算方法は、既述した通りである。この計算により求めた各ブロックＧ３（ｉ、ｊ）のブロックＧ２（ｉ、ｊ）に対する位置ずれΔ（ｘｉ、ｘｊ）から、各ブロックＧ３（ｉ、ｊ）の位置ずれ後の開始アドレスを計算により求めることができる。
【００５４】
マッチング処理の際にＳＩＭＤプロセッサのプロセッサエレメントＰＥの同時計算対象空間にこのブロックＧ３（ｉ、ｊ）をロードするとき、この位置ずれ補正後の開始アドレスから読み込んでロードする。これにより、同時並列計算対象空間に画素のデータをメモリマッピングすれば、メモリマッピング終了時点で、ブロックＧ３（ｉ、ｊ）の位置ずれを補正し終わった位置にロードできる。
【００５５】
この場合、ＳＩＭＤ空間に検査対象画像Ｇ３のもう１個別のブロックＧ３（ｉ、ｊ）をロードできる分のプロセッサエリメント（ＰＥ）の空き空間が存在すれば、続けて別のブロックＧ３（ｉ＋１、ｊ）をロードできる。
【００５６】
この別のブロックＧ３（ｉ＋１、ｊ）をロードするとき、位置ずれ補正後のロード開始アドレスから読み込めば、このブロックＧ（ｉ＋１、ｊ）についても位置ずれを解消した位置でロードを完了できる。
【００５７】
その後、マスター画像Ｇ２のブロックＧ２（ｉ、ｊ）内の画素のデータと検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）内の画素のデータとをマッチング処理する。これと同時に、マスター画像Ｇ２の別のブロックＧ２（ｉ＋１、ｊ）内の画素のデータと検査対象画像Ｇ３の別のブロックＧ３（ｉ；１、ｊ）内の画素のデータとをマッチング処理する。
【００５８】
これにより、処理すべき画素の要素数がＮ/２以下の場合に、少なくとも２個以上のブロックに同時にマッチング処理を行うことができるので、並列計算機の利用効率、高速化を図ることができる。
【００５９】
以下に、その処理手順を詳細に説明する。
まず、マスター画像Ｇ２のブロック分けに対応して検査対象画像Ｇ３のブロック分けを行って、マスター画像Ｇ２の各ブロックＧ２（ｉ、ｊ）の開始アドレス（始点座標）と検査対象画像Ｇ３の開始アドレスＧ２（ｉ、ｊ）との対応付けを行う。
【００６０】
図６には、マスター画像Ｇ２のブロックＧ２（ｎ＋１、ｍ）、Ｇ２（ｎ＋２、ｍ）の始点座標（ｎ＋１、ｍ）、（ｎ＋２、ｍ）にそれぞれ対応する検査対象画像Ｇ３のブロックＧ３（ｎ＋１、ｍ）、Ｇ３（ｎ＋２、ｍ）の始点位置座標（ｎ＋１、ｍ）、（ｎ＋２、ｍ）が示されている。
【００６１】
ついで、検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）のマスター画像Ｇ２の対応するブロックＧ２（ｉ、ｊ）に対する位置ずれ量Δ（ｘｉ、ｘｊ）を演算する（図９のＳ１参照）。
【００６２】
ステップＳ１により求められた検査対象画像Ｇ３の各ブロックＧ３（ｉ、ｊ）の位置ずれ量Δ（ｘｉ、ｘｊ）から各ブロック毎に同時並列計算対象空間にロードする際のロード開始アドレスを演算する（図９のＳ２参照）。
【００６３】
図７は、その位置ずれ量補正後のロード開始アドレスの一例を示している。
その図７においては、マスター画像Ｇ２のブロックＧ２（ｉ、ｊ）の始点座標（ｘ１、ｙ１）に対応する検査対象画像Ｇ３のブロックＧ３（ｉ、ｊ）の始点座標（ｘ１’＝ｘ１＋Δ（ｘ１、ｙ１）、ｙ１’＝ｙ１＋Δ（ｙ１、ｘ１））、ブロックＧ２（ｉ＋１、ｊ）の始点座標（ｘ２、ｙ２）に対応する検査対象画像Ｇ３のブロックＧ３（ｉ＋１、ｊ）の始点座標（ｘ２’＝ｘ２＋Δ（ｘ２、ｙ２）、ｙ２’＝ｙ２＋Δ（ｙ２、ｘ２））、マスター画像Ｇ２のブロックＧ（ｉ＋２、ｊ）の始点座標（ｘ３、ｙ３）に対応する検査対象画像Ｇ３の始点座標（ｘ３’＝ｘ３＋Δ（ｘ３、ｙ３）、ｙ３’＝ｙ３＋Δ（ｙ３、ｘ３））、マスター画像Ｇ２のブロックＧ２（ｉ＋３、ｊ）の始点座標（ｘ４、ｙ４）に対応する検査対象画像Ｇ３のブロックＧ３（ｉ＋１、ｊ）の始点座標（ｘ４’＝ｘ４＋Δ（ｘ４、ｙ４）、ｙ４’＝ｙ４＋Δ（ｙ４、ｘ４））である。
【００６４】
ついで、検査対象画像Ｇ３の１個のブロックＧ（ｉ、ｊ）を同時並列計算対象空間にロード開始アドレスからロードしてメモリマッピングする（図９のＳ３参照）。
続けて別のブロックＧ３（ｉ＋１、ｊ）を同時並列計算対象空間にマッピングできるか否かを判断する（図９のＳ４参照）。別のブロックＧ３（ｉ＋１、ｊ）を同時並列計算対象空間にマッピングできるときにはこのマッピングを続けて実行する（図９のＳ５参照）。
【００６５】
ステップＳ５を実行した後、ステップＳ４により別のブロックＧ３（ｉ＋１、ｊ）をマッピングできないと判断されたときには同時並列計算対象空間にマッピングされている２個以上の各ブロックＢＧ（ｉ、ｊ）の画素データについて同時にマッチング処理を行う（図９のＳ６参照）。
【００６６】
この実施例では、ＳＩＭＤのプロセッサエリメント（ＰＥ数）が３５２個であるのに対して、検査対象画像Ｇ３の１ブロックＧ３（ｉ、ｊ）の主走査幅が１５０個であるので、図６に示すように２個のブロックＧ３（ｎ＋１、ｍ）、Ｇ３（ｎ＋２、ｍ）を同時並列計算対象空間にメモリマッピングできる。
【００６７】
２個のブロックの画素のデータを同時並列計算対象空間にメモリマッピングしても３００個の画素のデータであり、プロセッサエリメントＰＥの個数３５２個よりも少ないからである。
【００６８】
このように、従来のマッチング処理では、ＳＩＭＤの計算処理効率が約４３％だったのに対し、この実施例によれば、検査対象画像Ｇ３の２個のブロックＧ３（ｉ、ｊ）を同時にマッチング処理できるため、その処理効率は８５％程度となり、有効に並列計算処理による高速化ができる。
【００６９】
この実施例によれば、検査対象画像Ｇ３の複数個のブロックＧ３（ｉ、ｊ）をＳＩＭＤプロセッサのプロセッサエリメントＰＥにロードする際に、ブロックＧ３（ｉ、ｊ）の開始アドレスをそのブロックＧ３（ｉ、ｊ）ごとのずれ量に応じた位置にシフトした。
【００７０】
このため、メモリマッピングが終わった時点で、マスター画像Ｇ２のブロックＧ２（ｉ、ｊ）に対応する位置ずれが解消していることになり、その後の画素ごとにデータのマッチング処理を同時に行うことができる。
つまり、ブロック毎の画素のデータのマッチングを少なくとも検査対象画像の２個以上のブロックについて同時に行うことができ、マッチング処理の効率化、高速化を図ることができる。
【符号の説明】
【００７１】
８’…フレームメモリ
Ｇ２…マスター画像
Ｇ３…検査対象画像
Ｇ２（ｉ、ｊ）、Ｇ３（ｉ、ｊ）…ブロック
（ｎ＋１、ｍ）、（ｎ＋２、ｍ）、（ｎ＋１’、ｍ’）、（ｎ＋２’、ｍ’）…始点座標
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開２００１−５６３０１号公報
【特許文献２】特開２００１−５６３０２号公報
【特許文献３】特許３２９９０６６号
【図１】
2015005233.tif 000003
【図２】
2015005233.tif 000004
【図３】
2015005233.tif 000005
【図４】
2015005233.tif 000006
【図５】
2015005233.tif 000007
【図６】
2015005233.tif 000008
【図７】
2015005233.tif 000009
【図８】
2015005233.tif 000010
【図９】
2015005233.tif 000011