(57)【要約】【課題】検査画像の姿勢を精度よく補正する。【解決手段】補正装置は、記憶部と、算出部と、補正部とを有する。記憶部は、少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する。算出部は、第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、当該第２の画像の回転量を算出する。補正部は、算出部によって算出された回転量に対応する位置ずれ量を記憶部から取得し、取得した位置ずれ量を用いて、第２のテンプレート領域の位置を補正する。【選択図】図１
2016170624.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を有し、
前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、当該第２の画像の回転量を算出する算出部と、
前記算出部によって算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する補正部と
を備えたことを特徴とする補正装置。
【請求項２】
前記算出部は、さらに、補正後の第２のテンプレート領域に基づいて、前記回転量を算出し、
前記補正部は、さらに、補正後に前記算出部によって算出された回転量が所定の閾値以下でないと判定した場合は、当該回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記補正後の第２のテンプレート領域の位置をさらに補正する
ことを特徴とする請求項１に記載の補正装置。
【請求項３】
前記補正部は、前記算出部によって算出された回転量が前記記憶部に記憶されていない場合には、前記記憶部に記憶された回転量に基づく近似曲線を用いて、前記算出部によって算出された回転量に対応する位置ずれ量を取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
ことを特徴とする請求項１または２に記載の補正装置。
【請求項４】
コンピュータが、
少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を参照し、前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、前記第２の画像の回転量を算出し、
算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
処理を実行することを特徴とする補正方法。
【請求項５】
コンピュータが、
少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を参照し、前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、前記第２の画像の回転量を算出し、
算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
処理を実行することを特徴とする補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補正装置、補正方法および補正プログラムに関する。
【背景技術】
【０００２】
近年、例えば、携帯電話等の小型機器のデザインが流麗になり、複雑な表面形状を形成するようになったため、より緻密に対象表面の欠陥等が検査されている。このような検査を画像を用いて行う場合、予め良品の画像を用意しておき、検査対象の画像（検査画像）を良品画像と比較することで検査対象の表面を検査する方法がある。
【０００３】
検査画像を良品画像と比較して検査する場合、良品画像と検査画像との位置決め処理が行われる。位置決め処理とは、検査画像の姿勢を良品画像に合わせ補正するものであり、一般的に、良品画像に対する検査画像の並進ずれと回転ずれに対して行われる。
【０００４】
例えば、回転ずれの補正処理では、テンプレートマッチング法を用いた位置決め処理が行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−３３０４０３号公報
【特許文献２】特開平１１−３４２９号公報
【特許文献３】国際公開第２００７／０７２６７８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来技術は、検査画像の姿勢を精度よく補正できるとは限らない。例えば、図１２は、従来技術を説明する図であり、テンプレートマッチング法を用いた位置決め処理を説明する図である。図１２では、ａｂｃｄを良品画像、ａ’ｂ’ｃ’ｄ’を検査対象の画像である検査画像とする。また、図１２に示すＡ１〜Ａ３は、良品画像ａｂｃｄに設定されたテンプレート領域である。図１２に示すＡ１’〜Ａ３’は、検査画像ａ’ｂ’ｃ’ｄ’に対して並進探索により位置決めされたテンプレート領域である。
【０００７】
従来技術では、テンプレート領域Ａ１とＡ１’およびテンプレート領域Ａ２とＡ２’において、線分ａｂと線分Ａ’Ｂ’が成す角度βを、良品画像ａｂｃｄに対する検査画像ａ’ｂ’ｃ’ｄ’の回転量として算出する。
【０００８】
ここで、線分ａｂと線分ａ’ｂ’が成す角度αが良品画像ａｂｃｄに対する検査画像ａ’ｂ’ｃ’ｄ’の実際の回転量であるのに対し、角度βは各テンプレート領域の相対的な位置変化から算出された疑似的な回転量である。このため、このように算出された疑似回転量に従って、検査画像ａ’ｂ’ｃ’ｄ’の姿勢を補正する従来技術では、検査画像の姿勢を精度よく補正できるとは限らない。
【０００９】
１つの側面では、検査画像の姿勢を精度よく補正することができる補正装置、補正方法および補正プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、補正装置は、記憶部と、算出部と、補正部とを有する。記憶部は、少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する。算出部は、前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、当該第２の画像の回転量を算出する。補正部は、前記算出部によって算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する。
【発明の効果】
【００１１】
一実施形態によれば、検査画像の姿勢を精度よく補正することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、補正装置の全体構成を示す図である。
【図２】図２は、補正テーブル記憶部の一例を示す図である。
【図３】図３は、良品画像に設定されたテンプレート領域の一例を示す図である。
【図４Ａ】図４Ａは、補正テーブルの生成処理を説明する図である。
【図４Ｂ】図４Ｂは、基準位置におけるテンプレート画像を示す図である。
【図４Ｃ】図４Ｃは、並進探索を模式的に示した図である。
【図５】図５は、補正テーブルに基づいて生成されたグラフを示す図である。
【図６】図６は、並進ずれ量および回転量の算出処理を説明する図である。
【図７】図７は、補正処理を説明する図である。
【図８】図８は、画像処理を模式的に示した図である。
【図９】図９は、補正テーブルの生成に関する全体的な処理の流れを示したフローチャートである。
【図１０】図１０は、補正に関する全体的な処理の流れを示したフローチャートである。
【図１１】図１１は、補正プログラムを実行するコンピュータを示す図である。
【図１２】図１２は、テンプレートマッチング法を用いた位置決め処理を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかる補正装置、補正方法および補正プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１４】
実施例１にかかる補正装置１００について説明する。図１は、補正装置１００の全体構成を示す図である。補正装置１００は、良品個体の画像と、検査対象の画像を比較することによって、検査対象表面の欠陥を検査する装置である。良品個体とは、予め欠陥等が無いことが判明している携帯電話等の機器であり、検査対象は、良品個体と同一機種で、欠陥の有無が未知であるものを示す。
【００１５】
補正装置１００は、例えば、パーソナルコンピュータやサーバコンピュータ等のコンピュータ等である。補正装置１００は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例１では、補正装置１００を１台のコンピュータとした場合を例として説明する。補正装置１００は、ＣＡＤ（Computer  Aided  Design）装置等の設計者による集積回路の設計を支援する回路設計ソフトウェアが動作する設計装置であってもよい。図１に示すように、補正装置１００は、通信部１１０、カメラ部１２０、入力部１３０、表示部１４０、記憶部１５０と、制御部１６０とを有する。
【００１６】
通信部１１０は、他の装置との間で通信制御を行うインタフェースである。通信部１１０は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信部１１０としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。
【００１７】
カメラ部１２０は、ステージ等に置かれた良品個体および検査対象の画像をユーザの操作に従って撮像し、撮像した画像のデータを画像データ記憶部１５１に格納する。そして、カメラ部１２０は、例えば、デジタルカメラ等の撮像装置に対応する。
【００１８】
入力部１３０は、キーボードやマウス等の入力装置に対応する。表示部１４０は、ディスプレイ等の表示装置に対応する。例えば、表示部１４０は、補正装置１００の処理結果や、カメラ部１２０が撮影した画像等を表示する。
【００１９】
記憶部１５０は、ハードディスク、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１５０は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。
【００２０】
記憶部１５０は、制御部１６０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。例えば、記憶部１５０は、画像の検査に用いる各種のプログラムを記憶する。さらに、記憶部１５０は、制御部１６０で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部１５０は、画像データ記憶部１５１と、補正テーブル１５２とを有する。
【００２１】
画像データ記憶部１５１は、カメラ部１２０によって撮影された画像のデータを記憶する記憶部である。例えば、画像データ記憶部１５１は、所定の良品個体の画像データと、かかる良品個体と同一機種である検査対象の画像データとを対応付けて記憶する。
【００２２】
補正テーブル記憶部１５２は、少なくとも２ヶ所以上のテンプレート領域が設定された良品画像を、所定の角度回転させたことによる回転量に伴う各テンプレート領域の位置ずれ量と、当該回転量とを対応付けた各補正テーブルを記憶した記憶部である。補正テーブルは、後述する生成部１６２によって作成される。ここで、図２は、補正テーブル記憶部１５２の一例を示す図である。図２に示すように、補正テーブル記憶部１５２は、「回転量」と、「Ｘ軸方向ずれ量」と、「Ｙ軸方向ずれ量」とを対応付けた補正テーブルを記憶する。「回転量」とは、所定の対象画像に対する回転に基づくずれ量を示す。「Ｘ軸方向ずれ量」は、所定の画像に対する対象画像のＸ軸方向（横方向）の位置ずれ量を示す。「Ｙ軸方向ずれ量」は、所定の画像に対する対象画像のＹ軸方向（縦方向）の位置ずれ量を示す。そして、以下の実施例では、「Ｘ軸方向ずれ量」および「Ｙ軸方向ずれ量」を「並進ずれ量」と表記する場合がある。
【００２３】
制御部１６０は、検査装置１００を制御するデバイスである。制御部１６０としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部１６０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１６０は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１６０は、領域設定部１６１と、生成部１６２と、算出部１６３と、補正部１６４と、画像処理部１６５と、検査部１６６とを有する。
【００２４】
領域設定部１６１は、ユーザの操作に従って、良品画像にテンプレート領域を設定する。例えば、ユーザは、表示部１４０（液晶ディスプレイ等）に表示された所定の良品画像に対し、入力部１３０（マウス等）を用いて、テンプレート領域となる矩形枠を設定する。そして、テンプレート領域は、１つの良品画像に対して、少なくとも２ヶ所以上設定される。ここで、図３を用いて実施例１にかかるテンプレート領域について説明する。図３は、良品画像に設定されたテンプレート領域の一例を示す図である。
【００２５】
図３では、領域設定部１６１によって、良品個体Ｓの良品画像ｅｆｇｈにテンプレート領域Ａ１１およびＡ１２が設定されている例を示す。図３の例では、テンプレート領域Ａ１１は、その領域内の一部に良品画像ｅｆｇｈを含むよう良品画像ｅｆｇｈの左上の角に設定され、テンプレート領域Ａ１２は、その領域内の一部に良品画像ｅｆｇｈを含むよう良品画像ｅｆｇｈの左下の角に設定されている。しかし、必ずしもこの例に限られない。例えば、テンプレート領域は、その領域内全体に良品画像を含むような位置に設定されてよい。そして、上述したように、設定される数は、２ヶ所以上であればいずれの数であってもよい。
【００２６】
図１に戻り、生成部１６２は、図２に示すような各補正テーブルを生成する。具体的には、生成部１６２は、良品画像に設定されたテンプレート領域の位置と、所定の角度回転させた後の良品画像に対して求めたテンプレート領域の位置との並進ずれ量を、テンプレート領域に予め設定する注目点に対して算出する。そして、生成部１６２は、算出した並進ずれ量と、良品画像を回転させた回転量とを対応付けて記憶してゆくことで補正テーブルを生成する。この点について、図４Ａを用いて説明する。
【００２７】
図４Ａは、生成部１６２による補正テーブルの生成処理を説明する図である。ここでは、図３で示した領域設定部１６１によりテンプレート領域が設定された良品画像ｅｆｇｈを用いて説明する。なお、図３では、良品画像ｅｆｇｈには、テンプレート領域Ａ１１およびＡ１２が設定される例を示したが、ここではテンプレート領域Ａ１１に着目して説明する。そして、テンプレート領域Ａ１１には、注目点であるテンプレート位置ｐ１が設定されるものとする。なお、後述するが、テンプレート領域Ａ１２には、テンプレート位置ｐ２が設定されるものとする。
【００２８】
このようなテンプレート位置は、領域設定部１６１によって設定されてもよいし、生成部１６２によって設定されてもよい。また、図４では、テンプレート領域Ａ１１の左上頂点にテンプレート位置ｐ１が設定されているが、設定位置は、例えば、補正装置１００の管理者等によって任意に決められてよい。
【００２９】
そして、図４Ａの（ａ）に示すように、生成部１６２は、良品画像ｅｆｇｈを一切回転させていない、すなわち、回転量「０ｄｅｇ」の状態を基準位置とする。生成部１６２は、この基準位置から良品画像ｅｆｇｈを所定の角度回転させる度に、その回転量に伴うテンプレート領域Ａ１１の並進ずれ量を取得する。
【００３０】
図４Ａの（ｂ）は、生成部１６２が良品画像ｅｆｇｈを時計回りに「１ｄｅｇ」回転させた状態を示す。すなわち、生成部１６２が良品画像ｅｆｇｈを回転させた回転量が「＋１ｄｅｇ」である場合の良品画像ｅｆｇｈの状態を示す。同様に、図４Ａの（ｃ）は、生成部１６２が良品画像ｅｆｇｈを時計回りに「２ｄｅｇ」回転させた状態を示す。図４Ａの（ｄ）は、生成部１６２が良品画像ｅｆｇｈを反時計回りに「１ｄｅｇ」回転させた状態を示す。図４Ａの（ｅ）は、生成部１６２が良品画像ｅｆｇｈを反時計回りに「２ｄｅｇ」回転させた状態を示す。以下では、生成部１６２による補正テーブル１５２の生成処理を図４Ａの（ｅ）を用いて説明する。
【００３１】
まず、生成部１６２は、画像データ記憶部１５１から良品画像ｅｆｇｈのデータを取得する。そして、生成部１６２は、回転中心を頂点ｅとして、基準位置から良品画像ｅｆｇｈを反時計方向に「２ｄｅｇ」回転させる画像処理を実行する。このときの、回転中心は、任意に設定されてよく、例えば、良品画像が有するいずれかの頂点が回転中心として設定されてもよいし、良品画像の重心が回転中心として設定されてもよい。
【００３２】
ここで、良品画像ｅｆｇｈの回転に伴って、テンプレート領域Ａ１１も回転する。図４Ａ（ｅ）に示す実線枠は、テンプレート領域Ａ１１の回転後の状態を示す。また、図４の（ｂ）、（ｃ）、（ｄ）についても同様である。例えば、回転量「−１ｄｅｇ」での実線枠は、生成部１６２によって良品画像ｅｆｇｈが、反時計方向に「１ｄｅｇ」回転されたことに伴い、テンプレート領域Ａ１１が回転した状態を示す。
【００３３】
次に、生成部１６２は、基準位置でのテンプレート領域Ａ１１内の画像であるテンプレート画像Ｇ１１を用いて、−２ｄｅｇ回転後の良品画像ｅｆｇｈに対するテンプレート領域を求める。具体的には、生成部１６２は、−２ｄｅｇ回転後の良品画像ｅｆｇｈ内において、テンプレート画像Ｇ１１を移動させる。この時の移動は、回転を考慮しない直線的な移動、すなわち、並進移動である。そして、生成部１６２は、−２ｄｅｇ回転後の良品画像ｅｆｇｈ内で、かかるテンプレート画像Ｇ１１と最も類似する部分画像を探索する（並進探索）。ここで、図４Ｂは、基準位置におけるテンプレート画像Ｇ１１を示す図である。また、図４Ｃは、並進探索を模式的に示した図である。
【００３４】
並進探索について具体的に説明する。例えば、生成部１６２は、−２ｄｅｇ回転後の良品画像ｅｆｇｈ内において、テンプレート画像Ｇ１１を１画素ずつずらして並進移動させる。そして、生成部１６２は、移動させる度にテンプレート画像Ｇ１１と、このときのテンプレート画像Ｇ１１に対するテンプレート領域Ａ１１内に位置する−２ｄｅｇ回転後の良品画像ｅｆｇｈとの類似度ＲＺＮＣＣを、下記の式（１）によって示される正規化相互関数を用いて算出する。
【数１】
2016170624.tif 000003
【００３５】
式（１）において、Ｔ（ｉ，ｊ）は、座標（ｉ，ｊ）でのテンプレート画像の輝度値に対応し、Ｉ（ｉ，ｊ）は、座標（ｉ，ｊ）での検査画像の輝度値に対応する。また、図４Ｂに示すように、テンプレート画像Ｇ１１の幅をＭ画素、高さをＮ画素とした場合、座標（ｉ，ｊ）は、左上を（０，０）、右下を（Ｍ−１，Ｎ−１）とする。また、Ｔａｖｇは、テンプレート画像におけるＭ×Ｎ画素領域の平均輝度値に対応し、Ｉａｖｇは、検査画像におけるＭ×Ｎ画素領域の平均輝度値に対応する。なお、ここでは、テンプレート画像がテンプレート画像Ｇ１１に対応し、検査画像が−２ｄｅｇ回転後の良品画像ｅｆｇｈにおいて、テンプレート領域Ａ１１内に位置する画像に対応する。
【００３６】
正規化相互関数から求められる類似度ＲＺＮＣＣは、−１〜１の値を取る。そして、類似度ＲＺＮＣＣの値が１に近いほど、互いの画像は類似しており、類似度ＲＺＮＣＣの値が１では、互いの画像が完全に一致することを示す。生成部１６２は、−２ｄｅｇ回転後の良品画像ｅｆｇｈ内にテンプレート画像Ｇ１１を移動させる度に、この類似度ＲＺＮＣＣを算出してゆき、類似度ＲＺＮＣＣが最も高くなる位置でのテンプレート領域Ａ１１の位置を特定する。図４Ｃにおいて−２ｄｅｇ回転後の良品画像ｅｆｇｈの左上に位置するテンプレート領域Ａ１１（点線枠）は、テンプレート画像Ｇ１１を移動させ、−２ｄｅｇ回転後の良品画像ｅｆｇｈ内の画像との類似度が最も高くなる位置でのテンプレート領域Ａ１１を示す。すなわち、テンプレート領域Ａ１１（点線枠）は、生成部１６２による並進探索で−２ｄｅｇ回転後の良品画像ｅｆｇｈに対して求められたテンプレート領域を示す。このようなテンプレート領域Ａ１１（点線枠）の位置は、基準位置でのテンプレート領域Ａ１１の位置とは微妙に異なる。また、図４Ａの（ｂ）、（ｃ）、（ｄ）に示すテンプレート領域Ａ１１（点線枠）も、生成部１６２による並進探索で求められたテンプレート領域Ａ１１を示す。また、ここで各回転量でのテンプレート位置ｐ１に対して、並進探索により求められたテンプレート領域Ａ１１（点線枠）でのテンプレート位置をｐ１ａとする。
【００３７】
生成部１６２は、良品画像ｅｆｇｈの回転に伴って移動したテンプレート領域Ａ１１（実線枠）と、並進探索により回転後の良品画像ｅｆｇｈに対して求めたテンプレート領域Ａ１１（点線枠）との位置ずれ量を算出する。具体的には、生成部１６２は、テンプレート位置ｐ１に対するテンプレート位置ｐ１ａのＸ軸方向への相対的な並進ずれ量、および、テンプレート位置ｐ１に対するテンプレート位置ｐ１ａのＹ軸方向への相対的な並進ずれ量を、各テンプレート位置の座標を基に算出する。例えば、生成部１６２は、図４（ｅ）において、テンプレート位置ｐ１に対するテンプレート位置ｐ１ａの並進ずれ量として、「Ｘ軸方向：１０．３２画素、Ｙ軸方向：−１１．０４画素」を算出したとする。
【００３８】
生成部１６２は、算出した並進ずれ量と、回転量とを対応付けて記憶してゆくことで、図２に示す補正テーブルを生成する。例えば、生成部１６２は、良品画像ｅｆｇｈを回転させた回転量「−２ｄｅｇ」と、Ｘ軸方向ずれ量「１０．３２」と、Ｙ軸方向ずれ量「−１１．０４」とを対応付けて格納する。
【００３９】
そして、生成部１６２は、上述してきた回転量「−２ｄｅｇ」についての処理を、例えば、図４Ａに示す全ての回転量について行うことで、補正テーブルを生成する。例えば、回転量−１ｄｅｇの場合でも同様に、まず、生成部１６２は、良品画像ｅｆｇｈを反時計回りに「１ｄｅｇ」回転させる。そして、生成部１６２は、テンプレート画像Ｇ１１を並進移動させ、回転後の良品画像ｅｆｇｈ内において、テンプレート画像Ｇ１１との類似度ＲＺＮＣＣが最も高くなる位置でのテンプレート領域Ｇ１１の位置を特定する。そして、生成部１６２は、回転に伴って移動したテンプレート領域Ａ１１と、並進探索により−１ｄｅｇ回転後の良品画像ｅｆｇｈに対して求めたテンプレート領域Ａ１１との並進ずれ量とを、テンプレート位置ｐ１、ｐ１ａから算出する。そして、生成部１６２は、算出した値と回転量「−１ｄｅｇ」とを対応付けて格納する。
【００４０】
また、生成部１６２は、良品画像に設定されたテンプレート領域毎に上記処理を実行し、各テンプレート領域に対応する補正テーブルを生成する。本実施形態では、領域設定部１６１によって良品画像ｅｆｇｈにテンプレート領域Ａ１１およびＡ１２が設定される例を示した。この場合、生成部１６２は、図２に示すように、テンプレート領域Ａ１１用の補正テーブルである補正テーブルＴ１１と、テンプレート領域Ａ１２用の補正テーブルである補正テーブルＴ１２とを生成する。
【００４１】
ここで、補正テーブルＴ１１に示す各回転量に対するＸ軸方向およびＹ軸方向ずれ量（画素）をプロットしたグラフを図５に示す。つまり、図５は、回転量に応じたテンプレート位置ｐ１に対するテンプレート位置ｐ１ａの相対的な並進ずれ量の変位を示す図である。例えば、補正テーブルＴ１１に基づいて、回転量「−２ｄｅｇ」に対し、Ｘ軸方向ずれ量「１０．３２」がプロットされ、Ｙ軸方向ずれ量「−１１．０４」がプロットされている。そして、補正テーブルＴ１１に示す各回転量に対し、対応する並進ずれ量をプロットすると、Ｘ軸方向およびＹ軸方向ずれ量の変位がおよそ直線として得られる。なお、図５に示すグラフは、一例であり、良品個体の形状や回転量に応じて、例えば、丸みを帯びた形状となったりする場合がある。なお、このようなグラフは、生成部１６２によって生成されてよい。また、後述するが、補正部１６４がかかるグラフを近似曲線として用いる場合があるため、補正部１６４によって生成されてもよい。
【００４２】
さて、生成部１６２による補正テーブルの生成処理について説明してきたが、生成部１６２による良品画像の回転量は本実施例で示した値に限定されるものではない。本実施例では、図２に示すように、生成部１６２が基準位置から時計回りまたは反時計回りに０．５ずつ回転量を増やす度に、並進探索に基づいて算出した相対的な並進ずれ量と、回転量とを対応づけて補正テーブルを作成する例を示した。しかしながら、必ずしも回転量「０．５」づつ、等間隔に増やす必要はなく、また、回転量の範囲も「−２〜＋２」の範囲である必要はなく任意に決定されてよいものである。
【００４３】
図１に戻り、算出部１６３は、良品画像に設定されたテンプレート領域と、検査画像に対して求められたテンプレート領域との位置ずれ量から、検査画像の回転量を算出する。具体的には、算出部１６３は、良品画像に設定されたテンプレート領域の位置と、当該テンプレート領域が検査画像内の画像であって、当該テンプレート領域内の画像と最も一致する画像を含む位置との並進ずれ量を算出する。つまり、算出部１６３は、上述した並進探索を用いて並進ずれ量を算出する。そして、算出部１６３は、良品画像に対する検査画像の回転量を、算出した並進ずれ量に基づいて算出する。この点について、図６に示す具体例を用いて説明する。
【００４４】
図６は、算出部１６３による並進ずれ量および回転量の算出処理を説明する図である。ここでは、良品個体Ｓの良品画像ｅｆｇｈと、良品個体Ｓと同一機種である検査対象Ｓ’の検査画像ｅ’ｆ’ｇ’ｈ’を用いて説明する。そして、良品画像ｅｆｇｈには、領域設定部１６１によりテンプレート領域Ａ１１とテンプレート位置ｐ１、および、テンプレート領域Ａ１２とテンプレート位置ｐ２が既に設定されている。また、上述したように、生成部１６２によりテンプレート領域毎の補正テーブルＴ１１およびＴ１２が既に生成されている。さらに、テンプレート領域Ａ１１内において良品画像ｅｆｇｈを含む画像をテンプレート画像Ｇ１１とし、テンプレート領域Ａ１２内において良品画像ｅｆｇｈを含む画像をテンプレート画像Ｇ１２とする。
【００４５】
まず、算出部１６３は、テンプレート画像Ｇ１１およびＧ１２を用いて、検査画像ｅ’ｆ’ｇ’ｈ’に対して並進探索を実行する。具体的には、算出部１６３は、検査画像ｅ’ｆ’ｇ’ｈ’内にテンプレート画像Ｇ１１を並進移動させる度に、テンプレート画像Ｇ１１と、このときテンプレート領域Ａ１１内に含まれる検査画像ｅ’ｆ’ｇ’ｈ’との類似度ＲＺＮＣＣを算出してゆく。ここで、図６に示すように、テンプレート画像Ｇ１１を並進移動させ、検査画像ｅ’ｆ’ｇ’ｈ’内の画像との類似度ＲＺＮＣＣが最も高くなる位置でのテンプレート領域Ａ１１をテンプレート領域Ａ１１’とする。すなわち、テンプレート領域Ａ１１’は、算出部１６３による並進探索で、検査画像ｅ’ｆ’ｇ’ｈ’に対して求められたテンプレート領域Ａ１１に対応する。また、テンプレート領域Ａ１１’において、テンプレート位置ｐ１と対応する位置をテンプレート位置ｐ１’とする。そして、算出部１６３は、テンプレート領域Ａ１１’の位置を特定する。すなわち、算出部１６３は、テンプレート位置ｐ１’の座標を特定する。
【００４６】
そして、算出部１６３は、テンプレート領域Ａ１１と、テンプレート領域Ａ１１’との並進ずれ量を算出する。具体的には、算出部１６３は、テンプレート位置ｐ１に対するテンプレート位置ｐ１’のＸ軸方向へのずれ量およびテンプレート位置ｐ１に対するテンプレート位置ｐ１’のＹ軸方向への位置ずれ量を、各テンプレート位置の座標を基に算出する。
【００４７】
また、算出部１６３は、テンプレート画像Ｇ１２についても並進探索を行う。ここで、図６に示すように、テンプレート画像Ｇ１２を並進移動させ、検査画像ｅ’ｆ’ｇ’ｈ’内の画像との類似度ＲＺＮＣＣが最も高くなる位置でのテンプレート領域Ａ１２を、テンプレート領域Ａ１２’とする。また、テンプレート領域Ａ１２’において、テンプレート位置ｐ２と対応する箇所をテンプレート位置ｐ２’とする。そして、算出部１６３は、テンプレート位置ｐ２’の座標を特定し、テンプレート領域Ａ１２と、テンプレート領域Ａ１２’との並進ずれ量を算出する。このような並進ずれ量が、良品画像ｅｆｇｈに設定されたテンプレート領域Ａ１１と、検査画像ｅ’ｆ’ｇ’ｈに対して求められたテンプレート領域Ａ１１’との位置ずれ量である。
【００４８】
次に、算出部１６３は、算出した並進ずれ量に基づく良品画像ｅｆｇｈに対する検査画像ｅ’ｆ’ｇ’ｈ’の回転量を算出する。具体的には、算出部１６３は、良品画像ｅｆｇｈの頂点ｅと頂点ｆを結ぶ線分ｅ−ｆと、テンプレート位置ｐ１’とテンプレート位置ｐ２’を結ぶ線分ｐ１’−ｐ２’とが成す角度β１を、良品画像ｅｆｇｈに対する検査画像ｅ’ｆ’ｇ’ｈ’の回転量として算出する。例えば、算出部１６３は、線分ｅ−ｆの傾きと線分ｐ１’−ｐ２’の傾きから角度β１を算出する。
【００４９】
ここで、線分ｅ−ｆと、検査画像ｅ’ｆ’ｇ’ｈ’の頂点ｅ’と頂点ｆ’を結ぶ線分ｅ’−ｆ’とが成す角度α１が、良品画像ｅｆｇｈに対する検査画像ｅ’ｆ’ｇ’ｈ’の実際の回転量である。これに対して、角度β１は、Ｘ軸方向およびＹ軸方向のずれ、すなわち、並進ずれ量から算出された疑似回転量であり、角度α１とは値が異なる。
【００５０】
そして、実際の回転量である角度α１を用いた回転ずれの補正処理には、並進ずれ量を用いた補正処理よりもコストがかかることが知られている。そこで、本実施形態において補正部１６４は、生成部１６２によって生成された補正テーブルを用いて、以下に示す補正処理を実行する。
【００５１】
補正部１６４は、良品画像に対する検査画像の位置ずれを補正する。具体的には、補正部１６４は、補正テーブルを用いて、並進探索により検査画像に対して求めたテンプレート領域の位置を補正する。この点について、図６の例を用いて説明する。例えば、算出部１６３によって、良品画像ｅｆｇｈに対する検査画像ｅ’ｆ’ｇ’ｈ’の回転量（角度β１）として、回転量「−１．５ｄｅｇ」が算出されたとする。
【００５２】
補正部１６４は、補正テーブル１５２を参照し、回転量「−１．５ｄｅｇ」に対応するＸ軸方向およびＹ軸方向ずれ量を取得する。ここで、良品画像ｅｆｇｈには、テンプレート領域Ａ１１およびＡ１２が設定されている。このため、補正部１６４は、テンプレート領域Ａ１１用の補正テーブルＴ１１、テンプレート領域Ａ１２用の補正テーブルＴ１２それぞれから、回転量「−１．５ｄｅｇ」に対応するＸ軸方向およびＹ軸方向ずれ量を取得する。図２の例では、補正部１６４は、補正テーブルＴ１１から、Ｘ軸方向ずれ量「７．９０ｐｉｘｅｌ」、Ｙ軸方向ずれ量「−８．１７ｐｉｘｅｌ」を取得する。また、補正部１６４は、補正テーブルＴ１２からも、同様に、回転量「−１．５ｄｅｇ」に対応する値を取得する。なお、補正部１６４が補正処理に用いる補正テーブルは、検査対象と同一機種の良品個体の画像から生成された補正テーブルでなければならない。
【００５３】
ここで、算出部１６３によって算出された回転量と一致する値が、補正テーブルの回転量の欄に記憶されていない場合がある。この場合、補正部１６４は、図５に示す補正テーブルに基づく近似曲線を用いる。具体的には、補正部１６４は、図５に示す近似曲線の式に回転量を代入することで、Ｘ軸方向およびＹ軸方向ずれ量を取得する。
【００５４】
次に、補正部１６４は、並進探索により検査画像に対して求めたテンプレート領域に補正テーブルから取得したＸ軸方向およびＹ軸方向ずれ量を適用することにより、検査画像に対して求めたテンプレート領域の位置を補正する。
【００５５】
ここで、図７は、補正部１６４による補正処理を説明する図である。補正部１６４は、テンプレート領域Ａ１１’のテンプレート位置ｐ１’の座標に、補正テーブルＴ１１から取得したＸ軸方向ずれ量「７．９０ｐｉｘｅｌ」、Ｙ軸方向ずれ量「−８．１７ｐｉｘｅｌ」を加算することで、テンプレート領域Ａ１１’の位置を補正する。図７に示すテンプレート領域Ａ１１ａ’は、テンプレート領域Ａ１１’の位置が補正された補正後の状態に対応する。また、補正部１６４は、テンプレート領域Ａ１２’のテンプレート位置ｐ２’の座標に、補正テーブルＴ１２から取得したＸ軸方向およびＹ軸方向ずれ量を加算することで、テンプレート領域Ａ１２’の位置を補正する。図７に示すテンプレート領域Ａ１２ａ’は、テンプレート領域Ａ１２’の位置が補正された補正後の状態を示す。
【００５６】
以上のことから、図２に示すＸ軸方向ずれ量は、検査画像の実際の回転量を考慮したＸ軸方向補正量といえる。また、Ｙ軸方向ずれ量は、検査画像の実際の回転量に応じたＹ軸方向補正量といえる。そして、このような補正量に基づいて補正されたテンプレート領域の位置は、並進ずれ量だけでなく実際の回転量も考慮されたものである。そして、かかる補正後のテンプレート領域を用いることで、並進ずれ量と回転量を考慮した高精度な位置決め処理が可能となる。
【００５７】
また、算出部１６３は、補正後のテンプレート領域に基づいて、良品画像に対する検査画像の回転量を算出する。そして、補正部１６４は、算出部１６３によって算出された回転量が所定の閾値以下であるか否かを判定する。補正部１６４は、算出された回転量が所定の閾値以下でないと判定した場合、当該回転量に対応する並進ずれ量を補正テーブルから取得し、取得した並進ずれ量を用いて、補正後のテンプレート領域の位置をさらに補正する。そして、補正部１６４は、回転量が所定の閾値以下となるまで、かかる補正処理を繰り返す。この点について、図７を用いて説明する。
【００５８】
図７は、補正処理を説明する図である。算出部１６３は、線分ｅ−ｆと、テンプレート領域Ａ１１ａ’のテンプレート位置ｐ１ａ’とテンプレート領域Ａ１２ａ’のテンプレート位置ｐ２ａ’とを結ぶ線分ｐ１ａ’−ｐ２ａ’とが成す角度β１’を算出する。ここで、補正部１６４は、算出部１６３によって算出された角度β１’が所定の閾値以下であるか否かを判定する。例えば、補正部１６４は、角度β１’が所定の閾値以下でないと判定した場合、角度β１’に対応するＸ軸方向およびＹ軸方向ずれ量を補正テーブルＴ１１およびＴ１２から取得する。
【００５９】
そして、補正部１６４は、テンプレート位置ｐ１ａ’の座標に、補正テーブルＴ１１か取得した並進ずれ量を加算することで、テンプレート領域Ａ１１ａ’の位置をさらに補正する。また、補正部１６４は、テンプレート位置ｐ２ａ’の座標に、補正テーブルＴ１２か取得した並進ずれ量を加算することで、テンプレート領域Ａ１２ａ’の位置をさらに補正する。
【００６０】
ここで、算出部１６３は、さらに補正した補正後のテンプレート領域Ａ１１ａ’およびＡ１２ａ’それぞれのテンプレート位置に基づく線分を用いて、再び回転量を算出する。補正部１６４は、算出部１６３によって算出された回転量が所定の閾値以下であるか否かを再び判定する。そして、補正部１６４は、回転量が所定の閾値以下となるまで上記補正処理を繰り返す。補正部１６４は、このように補正処理を繰り返すことで、以下に示す位置決め処理の精度を高めることができる。
【００６１】
図１に戻り、画像処理部１６５は、補正部１６４によって位置が補正されたテンプレート領域に基づいて、検査画像の姿勢を補正することにより、良品画像と検査画像との位置決めを行う。具体的には、画像処理部１６５は、補正後のテンプレート領域と、良品画像に設定されているテンプレート領域との位置を一致させるように画像演算処理を行う。この点について、図８を用いて説明する。
【００６２】
図８は、実施例にかかる画像処理を模式的に示した図である。図８には、上述してきた良品画像ｅｆｇｈ、検査画像ｅ’ｆ’ｇ’ｈ’、および、補正部１６４により補正されたテンプレート領域Ａ１１ａ’、テンプレート領域Ａ１２ａ’等が示されている。ここでは、補正部１６４は、角度β１’が所定の閾値以であると判定し、補正処理を終了したものとする。
【００６３】
画像処理部１６５は、テンプレート位置ｐ１ａ’と、テンプレート位置ｐ１とが一致するように、また、テンプレート位置ｐ２ａ’と、テンプレート位置ｐ２とが一致するように、検査画像ｅ’ｆ’ｇ’ｈ’の姿勢を補正する画像演算処理を行う。
【００６４】
画像処理部１６５は、このような画像演算処理として、例えば、アフィン変換を用いることができる。画像処理部１６５は、アフィン変換を用いた画像演算処理を行う場合、並進ずれ量、回転量からアフィン変換行列を生成する。そして、画像処理部１６５は、生成したアフィン変換行列の解に基づいて、画像演算処理を行う。図８において、画像演算処理前の図（ａ）に対し、画像演算処理後の図（ｂ）では、良品画像ｅｆｇｈにより一致するように検査画像ｅ’ｆ’ｇ’ｈ’の姿勢が補正されている。
【００６５】
図８の例では、画像処理部１６５は、テンプレート位置ｐ１に対するテンプレート位置ｐ１ａ’の並進ずれ量、テンプレート位置ｐ２ａに対するテンプレート位置ｐ２ａ’の並進ずれ量、および、良品画像ｅｆｇｈに対する検査画像ｅ’ｆ’ｇ’ｈ’の回転量β１’からアフィン変換行列を生成する。
【００６６】
図１に戻り、検査部１６６は、良品画像と検査画像との比較検査を行い、検査画像における表面欠陥を検出する。例えば、検査部１６６は、画像処理部１６５による画像演算処理によって位置決めされた良品画像ｅｆｇｈと検査画像ｅ’ｆ’ｇ’ｈ’の差分を取得することにより、良品画像ｅｆｇｈと検査画像ｅ’ｆ’ｇ’ｈ’違いを欠陥として検出する。
【００６７】
次に、本実施例にかかる補正装置１００による補正テーブルの生成処理の流れを図９を用いて説明する。図９は、補正テーブルの生成に関する全体的な処理の流れを示したフローチャートである。
【００６８】
領域設定部１６１は、例えば、ユーザ操作に応じて、画像データ記憶部１５１に所定の良品個体を撮像した良品画像が記憶されているか否かを判定する（Ｓ１０１）。領域設定部１６１は、かかる良品画像が記憶されていると判定した場合には（Ｓ１０１；Ｙｅｓ）、画像データ記憶部１５１からその良品画像を取得し、取得した良品画像に複数のテンプレート領域を設定する（Ｓ１０２）。領域設定部１６１は、例えば、ユーザによるマウス操作等に従って、テンプレート領域を設定する。一方、領域設定部１６１は、画像データが記憶されていないと判定した場合には（Ｓ１０１；Ｎｏ）、記憶されるまで待機する。
【００６９】
次に、生成部１６２は、領域設定部１６１によりテンプレート領域が設定された良品画像について、テンプレート領域毎の補正テーブルを生成する（Ｓ１０３）。具体的には、生成部１６２は、テンプレート領域内の画像であるテンプレート画像を並進移動させ、所定の角度回転後の良品画像内の画像との類似度が最も高くなる位置でのテンプレート領域（回転後の良品画像に対して求めたテンプレート領域）の位置を特定する。そして、生成部１６２は、良品画像の回転に伴って移動したテンプレート領域の位置に対する、並進探索により回転後の良品画像に対して求めたテンプレート領域の位置のＸ軸方向およびＹ軸方向のずれ量を算出する。そして、生成部１６２は、良品画像を回転させた回転量と、算出した並進ずれ量とを対応付けてゆくことで、補正テーブルを作成する。
【００７０】
そして、生成部１６２は、画像データ記憶部１５１に記憶されている全ての良品画像について、補正テーブルを生成したか否かを判定する（Ｓ１０４）。生成部１６２は、全ての良品画像について、補正テーブルを生成したと判定した場合には（Ｓ１０４；Ｙｅｓ）、処理を終了する。一方、生成部１６２は、全ての良品画像について、補正テーブルを生成していないと判定した場合には（Ｓ１０４；Ｎｏ）、補正テーブルが生成されていない良品画像について、領域設定部１６１によるテンプレート領域設定からの処理（Ｓ１０２）に戻る。
【００７１】
次に、本実施例にかかる補正装置１００による補正処理の流れを図１０を用いて説明する。図１０は、補正に関する全体的な処理の流れを示したフローチャートである。
【００７２】
まず、算出部１６３は、例えば、ユーザ操作に応じて、画像データ記憶部１５１に所定の検査対象を撮像した検査画像が記憶されているか否かを判定する（Ｓ２０１）。算出部１６３は、検査画像が記憶されていると判定した場合には（Ｓ２０１；Ｙｅｓ）、画像データ記憶部１５１からその検査画像と、その検査画像における検査対象と同一機種の良品個体の良品画像を取得する（Ｓ２０２）。この良品画像には、領域設定部１６１によって、既にテンプレート領域が設定されている。
【００７３】
次に、算出部１６３は、良品画像に設定されたテンプレート領域と、検査画像に対して求めたテンプレート領域との並進ずれ量を算出する（Ｓ２０３）。具体的には、算出部１６３は、良品画像に設定されたテンプレート領域の位置と、当該テンプレート領域が検査画像内の画像であって、当該テンプレート領域内の画像と最も一致する画像を含む位置との位置ずれ量を算出する。さらに具体的には、算出部１６３は、テンプレート画像を並進移動させる度に、かかるテンプレート画像と、このときテンプレート領域内に含まれる検査画像との類似度を算出してゆく。そして、算出部１６３は、類似度が最も高くなる位置でのテンプレート領域（検査画像に対して求めたテンプレート領域）の位置を特定する。そして、算出部１６３は、良品画像に設定されたテンプレート領域の位置に対する、検査画像に対して求めたテンプレート領域の位置の並進ずれ量を算出する。算出部１６３は、このような並進探索を設定されている各テンプレート領域について行う。
【００７４】
また、算出部１６３は、良品画像に対する検査画像の回転量（疑似回転量）を算出する（Ｓ２０４）。具体的には、算出部１６３は、図６に示すように、並進探索により検査画像に対して求めた各テンプレート領域から取得した線分に基づいて、良品画像に対する検査画像の回転量を算出する。
【００７５】
次に、補正部１６４は、補正テーブルを用いて、各種テンプレート領域の位置を補正する（Ｓ２０５）。例えば、補正部１６４は、算出部１６３による並進探索で検査画像に対して求められたテンプレート領域の位置を補正する。具体的には、補正部１６４は、処理対象の良品画像に対応する補正テーブルを参照し、Ｓ２０４で算出部１６３によって算出された回転量に対応するＸ軸方向およびＹ軸方向ずれ量を取得する。このとき、補正部１６４は、各テンプレート領域に対応する補正テーブルから、かかる回転量に対応するＸ軸方向およびＹ軸方向ずれ量を取得する。そして、補正部１６４は、取得した並進ずれ量を対応するテンプレート領域上の所定のテンプレート位置に加算することで、各テンプレート領域の位置を補正する。また、補正部１６４は、下記（Ｓ２０６；Ｎｏ）の場合に、補正後のテンプレート領域の位置を補正する。
【００７６】
ここで、補正部１６４は、補正後のテンプレート領域に基づいて算出された良品画像に対する検査画像の回転量が所定の閾値以下であるか否かを判定する（Ｓ２０６）。なお、このような回転量は、算出部１６３によって算出される。補正部１６４は、回転量が所定の閾値以下でないと判定した場合には（Ｓ２０６；Ｎｏ）、かかる回転量に対応するＸ軸方向およびＹ軸方向ずれ量を対応する補正テーブルから取得し、取得したずれ量を用いて補正後のテンプレート領域の位置をさらに補正する。そして、補正部１６４は、回転量が所定の閾値以下となるまでかかる処理を繰り返す。一方、補正部１６４は、回転量が所定の閾値以下であると判定した場合には（Ｓ２０６；Ｙｅｓ）、画像処理部１６５へ処理を移行する。
【００７７】
画像処理部１６５は、補正後のテンプレート領域の位置と、良品画像に設定されたテンプレート領域の位置とを一致させるように、検査画像の姿勢を補正する画像演算処理を行う（Ｓ２０７）。画像処理部１６５により画像演算処理終了後、検査部１６６は、良品画像と検査画像との比較検査を行い、検査画像における表面欠陥を検出する（Ｓ２０８）。そして、検査部１６６は、検査結果を、例えば、表示部１４０に表示させる。
【００７８】
ここで、検査部１６６は、検査処理を行った検査画像における検査対象と同一機種の検査画像のうち、未検査の検査画像が存在するか否かを判定する（Ｓ２０９）。検査部１６６は、未検査の検査画像が存在すると判定した場合には（Ｓ２０９；Ｙｅｓ）、かかる検査画像について、Ｓ２０３からの処理へ移行する。一方、検査部１６６は、未検査の検査画像が存在しないと判定した場合には（Ｓ２０９；Ｎｏ）、処理を終了する。
【実施例２】
【００７９】
実施例１では、補正装置１００における生成部１６２が補正テーブルを生成する例を示した。しかし、補正テーブルは、生成部１６２と同様の機能を有する他の装置によって生成されてもよい。この場合、補正装置１００は、かかる他の装置から補正テーブルを取得し、補正テーブル１５２に格納する。
【００８０】
また、実施例１では、補正装置１００が画像処理部１６５および検査部１６６を有することで、補正部１６４の補正結果に基づき、検査画像の位置決め処理および検査処理まで一貫して行う例を示した。しかし、検査画像の位置決め処理および検査処理は、補正装置１００以外の他の装置によって行われてもよい。
【００８１】
上述してきたように、補正装置１００は、補正テーブル記憶部１５２と、算出部１６３と、補正部１６４とを有する。補正テーブル記憶部１５２は、少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像（良品画像）を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けた補正テーブルを記憶する。算出部１６３は、第１の画像に設定された第１のテンプレート領域と、第２の画像（検査画像）に対して求められた第２のテンプレート領域との位置ずれ量から、当該第２の画像（検査画像）の回転量を算出する。補正部１６４は、算出部１６３によって算出された回転量に対応する位置ずれ量を、補正テーブル記憶部１５２に記憶される所定の補正テーブルから取得し、取得した位置ずれ量を用いて、第２のテンプレート領域の位置を補正する。
【００８２】
このように、補正装置１００は、第１の画像を実際に回転させた場合の回転量に応じた位置ずれ量（並進ずれ量）と、当該回転量とを対応付けた補正テーブルを予め作成しておく。そして、補正装置は、並進探索により第２の画像に対して求めたテンプレート領域を、かかる補正テーブルを用いて補正する。このため、補正装置１００は、実際の回転量に基づく並進ずれ量を用いて、第２の画像に対して求めたテンプレート領域の位置を補正することができるので、第２の画像の姿勢を精度よく補正することができる。また、補正装置１００は、補正テーブルを予め作成しておくことで、補正処理時には、かかる補正テーブルから必要な値を取得して、処理に用いるだけでよいため複雑な計算をする必要がない。このため、補正装置１００は、処理速度をより早めることができる。
【００８３】
また、補正装置１００において算出部１６３は、さらに、補正後の第２のテンプレート領域に基づいて、第１画像に対する第２の画像の回転量を算出する。補正部１６４は、さらに、補正後に算出部１６３によって算出された回転量が所定の閾値以下でないと判定した場合は、当該回転量に対応する位置ずれ量を補正テーブル記憶部１５２に記憶される所定の補正テーブルから取得する。そして、補正部１６４は、取得した位置ずれ量を用いて、補正後の第２のテンプレート領域の位置をさらに補正する。
【００８４】
このように、補正装置１００は、第２の画像の回転量が所定の閾値以下となるまで、第２の画像に対して求めたテンプレート領域の位置を補正する。これにより、補正装置１００は、第２の画像に対する姿勢の補正精度をより向上させることができる。
【００８５】
また、補正装置１００において補正部１６４は、算出部１６３によって算出された回転量が補正テーブルに記憶されていない場合には、補正テーブルに記憶された回転量に基づく近似曲線を用いて、第２のテンプレート領域の位置を補正する。
【００８６】
これにより、補正装置１００は、第２の画像の回転量がいずれの値であっても、その値に対応した位置ずれ量を取得することができる。
【００８７】
[補正プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１１は、補正プログラムを実行するコンピュータを示す図である。
【００８８】
図１１に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。
【００８９】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮する補正プログラム３２０ａが予め記憶される。例えば、上記実施例の領域設定部１６１、生成部１６２、算出部１６３、補正部１６４、画像処理部１６５、検査部１６６と同様の機能を発揮する補正プログラム３２０ａを記憶させる。なお、補正プログラム３２０ａについては、適宜分離しても良い。
【００９０】
ＨＤＤ３３０には、各種データを記憶する。例えば、ＨＤＤ３３０は、ＯＳや各種データを記憶する。
【００９１】
そして、ＣＰＵ３１０が、補正プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、補正プログラム３２０ａは、実施例の領域設定部１６１、生成部１６２、算出部１６３、補正部１６４、画像処理部１６５、検査部１６６と同様の動作を実行する。
【００９２】
なお、上記した補正プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。補正プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。
【００９３】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、Compact  Disk  Read  Only  Memory（ＣＤ−ＲＯＭ）、Digital  Versatile  Disk（ＤＶＤ）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００９４】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００９５】
以上、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９８】
（付記１）少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を有し、
前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、当該第２の画像の回転量を算出する算出部と、
前記算出部によって算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する補正部と
を備えたことを特徴とする補正装置。
【００９９】
（付記２）前記算出部は、さらに、補正後の第２のテンプレート領域に基づいて、前記回転量を算出し、
前記補正部は、さらに、補正後に前記算出部によって算出された回転量が所定の閾値以下でないと判定した場合は、当該回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記補正後の第２のテンプレート領域の位置をさらに補正する
ことを特徴とする付記１に記載の補正装置。
【０１００】
（付記３）前記補正部は、前記算出部によって算出された回転量が前記記憶部に記憶されていない場合には、前記記憶部に記憶された回転量に基づく近似曲線を用いて、前記算出部によって算出された回転量に対応する位置ずれ量を取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
ことを特徴とする付記１または２に記載の補正装置。
【０１０１】
（付記４）コンピュータが、
少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を参照し、前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、前記第２の画像の回転量を算出し、
算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
処理を実行することを特徴とする補正方法。
【０１０２】
（付記５）補正後の第２のテンプレート領域に基づいて、前記回転量をさらに算出し、
算出された回転量が所定の閾値以下でないと判定した場合は、当該回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記補正後の第２のテンプレート領域の位置をさらに補正する
ことを特徴とする付記４に記載の補正方法。
【０１０３】
（付記６）算出された回転量が前記記憶部に記憶されていない場合には、前記記憶部に記憶された回転量に基づく近似曲線を用いて、算出された回転量に対応する位置ずれ量を取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
ことを特徴とする付記４または５に記載の補正方法。
【０１０４】
（付記７）少なくとも２ヶ所以上のテンプレート領域が設定された第１の画像を、所定の角度回転させたことによる回転量に伴う当該各テンプレート領域の位置ずれ量と、当該回転量とを対応付けて記憶する記憶部を参照し、前記第１の画像に設定された第１のテンプレート領域と、第２の画像に対して求められた第２のテンプレート領域との位置ずれ量から、前記第２の画像の回転量を算出し、
算出された回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
処理を実行することを特徴とする補正プログラム。
【０１０５】
（付記８）補正後の第２のテンプレート領域に基づいて、前記回転量をさらに算出し、
算出された回転量が所定の閾値以下でないと判定した場合は、当該回転量に対応する位置ずれ量を前記記憶部から取得し、取得した位置ずれ量を用いて、前記補正後の第２のテンプレート領域の位置をさらに補正する
ことを特徴とする付記７に記載の補正プログラム。
【０１０６】
（付記９）算出された回転量が前記記憶部に記憶されていない場合には、前記記憶部に記憶された回転量に基づく近似曲線を用いて、算出された回転量に対応する位置ずれ量を取得し、取得した位置ずれ量を用いて、前記第２のテンプレート領域の位置を補正する
ことを特徴とする付記７または８に記載の補正プログラム。
【符号の説明】
【０１０７】
１００  補正装置
１５０  記憶部
１５１  画像データ記憶部
１５２  補正テーブル記憶部
１６０  制御部
１６１  領域設定部
１６２  生成部
１６３  算出部
１６４  補正部
１６５  画像処理部
１６６  検査部
【図１】
2016170624.tif 000004
【図２】
2016170624.tif 000005
【図３】
2016170624.tif 000006
【図４Ａ】
2016170624.tif 000007
【図４Ｂ】
2016170624.tif 000008
【図４Ｃ】
2016170624.tif 000009
【図５】
2016170624.tif 000010
【図６】
2016170624.tif 000011
【図７】
2016170624.tif 000012
【図８】
2016170624.tif 000013
【図９】
2016170624.tif 000014
【図１０】
2016170624.tif 000015
【図１１】
2016170624.tif 000016
【図１２】
2016170624.tif 000017