(57)【特許請求の範囲】
【請求項１】
検査対象物が撮像されたビットマップ形式の画像データから当該検査対象物上の所望の図形の輪郭線に関するデータを生成する処理を、演算処理装置により実行するデータ生成方法であって、
前記検査対象物を生成するのに用いられた設計データから生成された、前記所望の図形に対応する設計上の図形を貫く中心線を、前記画像データにおけるビットマップ画像に重ね合わせる重ね合わせステップと、
前記中心線が重ね合わされた前記ビットマップ画像上において、前記中心線上に位置するビットである各探索基準点について、当該探索基準点から所定の探索方向に向かって、前記中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを輪郭候補点とする探索ステップと、
各前記探索基準点に対して、前記輪郭候補点の中から当該探索基準点からの距離が最短となるもの抽出し、抽出した点を前記所望の図形の輪郭を構成する輪郭点として確定する確定ステップと、
対応する前記探索基準点の配列順に、前記輪郭点と該輪郭点に隣接する前記第１の色を有するビットとの接点、を結線して得られるラインを、前記所望の図形の輪郭線として確定し、該輪郭線に関するデータを出力する出力ステップと、
を備えることを特徴とするデータ生成方法。
【請求項２】
前記所定の探索方向は、前記中心線が重ね合わされた前記ビットマップ画像上の、前記探索基準点を中心とした２ｎ方向（ただし、ｎは整数）である請求項１に記載のデータ生成方法。
【請求項３】
前記探索ステップおよび前記確定ステップは、各前記探索基準点のうちのいくつかの探索基準点に割り当てられた前記演算処理装置中の演算プロセッサごとに独立して実行される請求項１または２に記載のデータ生成方法。
【請求項４】
前記探索ステップは、
前記中心線が重ね合わされた前記ビットマップ画像上において、各前記探索基準点について、当該探索基準点から所定の探索方向に向かって探索し、前記中心線上に位置するビットの前記第１の色とは異なる前記第２の色を有するビットを検出するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて前記第２の色のビットを検出したと判定した場合、検出した前記第２の色のビットから前記所定の探索方向に向かってさらに探索し、前記第１の色を有するビットを検出するか否かを判定する第２の判定ステップと、
前記第２の判定ステップにおいて前記第１の色のビットを検出しないと判定した場合、直前に検出していた前記第２の色のビットを、前記輪郭候補点として確定する候補点確定ステップと、
前記第２の判定ステップにおいて前記第１の色のビットを検出したと判定した場合、検出した前記第１の色のビットから前記所定の探索方向に向かってさらに探索し、前記第２の色を有するビットを検出するか否かを判定する第３の判定ステップと、
を有し、
前記第３の判定ステップにおいて前記第２の色のビットを検出したと判定した場合、前記第２の判定ステップにおける探索および判定処理をさらに実行し、
前記第３の判定ステップにおいて前記第２の色のビットを検出しないと判定した場合、前記候補点確定ステップにおける候補点確定処理を実行する請求項１〜３のいずれか一項に記載のデータ生成方法。
【請求項５】
請求項１〜４のいずれか一項に記載のデータ生成方法が演算処理装置によって実行されることによって出力された前記所望の図形の輪郭線に関するデータと、設計上の図形についての設計輪郭線に関するデータと、を用いて、前記所望の図形の輪郭線と前記設計輪郭線とを照合して、前記検査対象物が前記設計データどおりに生成されたか否かを検査する検査ステップを備えることを特徴とする画像検査方法。
【請求項６】
前記設計データにおける前記設計上の図形において、各前記探索基準点について、当該探索基準点から所定の探索方向に向かって、前記中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを設計輪郭候補点とする設計データ用探索ステップと、
各前記探索基準点に対して、前記設計輪郭候補点の中から当該探索基準点からの距離が最短となるものを抽出し、抽出した点を前記設計上の図形の輪郭を構成する設計輪郭点として確定する設計データ用確定ステップと、
対応する前記探索基準点の配列順に、前記設計輪郭点と該設計輪郭点に隣接する前記第１の色を有するビットとの接点、を結線して得られるラインを、前記設計上の図形についての設計輪郭線として確定し、該設計輪郭線に関するデータを出力する設計データ用輪郭線ステップと、
を備える請求項５に記載の画像検査方法。
【請求項７】
検査対象物が撮像されたビットマップ形式の画像データから当該検査対象物上の所望の図形の輪郭線に関するデータを生成する処理を、演算処理装置により実行するデータ生成方法であって、
前記検査対象物を生成するのに用いられた設計データから生成された、前記所望の図形に対応する設計上の図形を貫く中心線を、前記画像データにおけるビットマップ画像に重ね合わせる重ね合わせステップと、
前記中心線が重ね合わされた前記ビットマップ画像上において、前記中心線上の各ビットの位置における前記中心線の法線を算出する法線算出ステップと、
前記法線の方向パラメータを、前記中心線上の各前記ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する加重平均ステップと、
加重平均された前記方向パラメータで規定された直線である探索線それぞれについて、当該探索基準点から当該探索線上に沿って、前記中心線上に位置するビットの前記第１の色とは異なる前記第２の色が出現するビットを探索し、検出したビットを、前記所望の図形の輪郭を構成する輪郭点として確定する確定ステップと、
対応する前記探索基準点の配列順に、前記輪郭点と該輪郭点に隣接する前記第１の色を有するビットとの接点、を結線して得られるラインを、前記所望の図形の輪郭線として確定し、該輪郭線に関するデータを出力する出力ステップと、
を備えることを特徴とするデータ生成方法。
【請求項８】
前記加重平均ステップは、
前記中心線上の各前記ビットを、前記探索基準点として順次設定するステップと、
前記中心線上において前記探索基準点を中心に所定の個数の前記ビットが連続する区間を設定する処理を、各前記探索基準点について実行するステップと、
前記区間内に存在する各前記法線の方向パラメータと、当該区間に対応する前記探索基準点の位置で最大となる前記重み付け係数と、を乗算する処理を、各前記区間について実行する乗算ステップと、
前記重み付け係数が乗算された各前記方向パラメータの総和を算出する加算ステップと、
前記総和を前記所定の個数で除算することにより、前記加重平均された方向パラメータを算出する除算ステップと、
を有する請求項７に記載のデータ生成方法。
【請求項９】
前記重み付け係数は、当該探索基準点の位置で最大の確率密度となる正規分布に従う値である請求項７または８に記載のデータ生成方法。
【請求項１０】
前記法線算出ステップにおいて、前記ビットの位置における前記中心線の法線は、当該ビットに隣接する前記中心線上の２つのビットを結線した線分に対する法線である請求項７に記載のデータ生成方法。
【請求項１１】
前記方向パラメータは、当該探索基準点に隣接する前記中心線上の２つのビットを結線した線分を基準方向として規定される角度もしくは方向ベクトルである請求項７〜１０のいずれか一項に記載のデータ生成方法。
【請求項１２】
前記確定ステップは、各前記探索基準点のうちのいくつかの探索基準点に割り当てられた前記演算処理装置中の演算プロセッサごとに独立して実行される請求項７〜１１のいずれか一項に記載のデータ生成方法。
【請求項１３】
前記確定ステップは、
前記中心線が重ね合わされた前記ビットマップ画像上において、各前記探索線について、当該探索基準点から当該探索線上に沿って、当該探索基準点から当該探索線上に沿って探索し、前記中心線上に位置するビットの前記第１の色とは異なる前記第２の色を有するビットを検出するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて前記第２の色のビットを検出したと判定した場合、検出した前記第２の色のビットから当該探索線上に沿ってさらに探索し、前記第１の色を有するビットを検出するか否かを判定する第２の判定ステップと、
前記第２の判定ステップにおいて前記第１の色のビットを検出しないと判定した場合、直前に検出していた前記第２の色のビットを、前記輪郭点として確定する輪郭点確定ステップと、
前記第２の判定ステップにおいて前記第１の色のビットを検出したと判定した場合、検出した前記第１の色のビットから当該探索線上に沿ってさらに探索し、前記第２の色を有するビットを検出するか否かを判定する第３の判定ステップと、
を有し、
前記第３の判定ステップにおいて前記第２の色のビットを検出したと判定した場合、前記第２の判定ステップにおける探索および判定処理をさらに実行し、
前記第３の判定ステップにおいて前記第２の色のビットを検出しないと判定した場合、前記輪郭点確定ステップにおける輪郭点確定処理を実行する請求項７〜１２のいずれか一項に記載のデータ生成方法。
【請求項１４】
前記検査対象物を生成するのに用いられた設計データを用いて前記中心線を生成する中心線生成ステップをさらに備える請求項１または７に記載のデータ生成方法。
【請求項１５】
前記輪郭線に関するデータに基づく画像を、ディスプレイ装置の画面上に表示させる表示ステップをさらに備える請求項１または７に記載のデータ生成方法。
【請求項１６】
前記重ね合わせステップは、前記設計データにおける設計上のビットマップ画像と、前記画像データにおけるビットマップ画像と、を前記設計データ上に定義された所定のマークを基準に位置合わせする位置合わせステップを有する請求項１または７に記載のデータ生成方法。
【請求項１７】
前記検査対象物は、配線が形成された基板であり、前記検査対象物上の前記所望の図形は、撮像画像中における前記基板上の前記配線である請求項１〜４また７〜１６のいずれか一項に記載のデータ生成方法。
【請求項１８】
請求項７〜１３のいずれか一項に記載のデータ生成方法が演算処理装置によって実行されることによって出力された前記所望の図形の輪郭線に関するデータと、設計上の図形についての設計輪郭線に関するデータと、を用いて、前記所望の図形の輪郭線と前記設計輪郭線とを照合して、前記検査対象物が前記設計データどおりに生成されたか否かを検査する検査ステップを備えることを特徴とする画像検査方法。
【請求項１９】
前記設計上の図形を貫く設計中心線が重ね合わされた前記設計データ用ビットマップ画像上において、前記設計中心線上の各ビットの位置における前記設計中心線の設計法線を算出する設計データ用法線算出ステップと、
前記設計法線の方向パラメータを、前記設計中心線上の各前記ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する設計データ用加重平均ステップと、
加重平均された前記方向パラメータで規定された直線である設計探索線それぞれについて、当該探索基準点から当該設計探索線の方向に向かって、前記中心線上に位置するビットの前記第１の色とは異なる前記第２の色が出現するビットを探索し、検出したビットを、前記設計上の図形の輪郭を構成する設計輪郭点として確定する設計データ用確定ステップと、
対応する前記探索基準点の配列順に、前記設計輪郭点と該設計輪郭点に隣接する前記第１の色を有するビットとの接点、を結線して得られるラインを、前記設計上の図形についての設計輪郭線として確定し、該設計輪郭線に関するデータを出力する設計データ用出力ステップと、
を備える請求項１８に記載の画像検査方法。
【請求項２０】
前記検査対象物は、配線が形成された基板であり、前記検査対象物上の前記所望の図形は、撮像画像中における前記基板上の前記配線であり、
前記検査ステップでは、前記所望の図形の輪郭線で画定される配線の線幅と前記設計輪郭線で画定される配線の線幅とが一致するか否かに基づき、前記検査対象物が前記設計データどおりに生成されたか否かを判定する請求項５、６、１８または１９のいずれか一項に記載の画像検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２値化された画像における図形の輪郭を抽出して輪郭線に関するデータを生成するデータ生成方法および、このデータ生成方法を用いた画像検査方法に関する。
【背景技術】
【０００２】
検査対象物をカメラにより撮像して得られた画像を用いて検査対象物を検査する画像検査では、ビットマップ形式の２値化された画像から、所望の図形の輪郭を抽出して輪郭線に関するデータを生成し、当該検査対象物を生成するのに用いられた設計データ（設計ルール）と比較して欠陥を検出する処理が行われる。
【０００３】
図２５は、配線が形成された基板についてのビットマップ画像の一例を示す図である。配線（すなわち導体）が形成された基板が撮像されたビットマップ形式の画像では、図２５に示すように、基板は「黒」、基板上の配線は「白」といったように２値化される。
【０００４】
ビットマップ画像における図形の輪郭を抽出する方法として、ビットマップ画像上のある画素（ビット）が輪郭であるときに、この点を基点として次の輪郭点を探していく方法がある（例えば、特許文献１参照。）。
【０００５】
図２６は、従来技術によるビットマップ画像から図形の輪郭を抽出する方法の一例を説明する図である。図２６に示すような白および黒の２値で表わされるビットマップ画像において「白」で構成される図形の輪郭を抽出する場合について説明すると次のとおりである。「白」および「黒」の２値ビットマップ画像の全体のビットの中から、「黒」が隣接する任意の「白」の点（ビット）を開始点として１つ選択し、当該開始点を基点に設定する。次いで、例えば図中矢印の方向で示される右回りに、この基点に隣接しかつ「黒」が隣接する「白」の点を探索し、検出した点を新たなる基点に設定する。このような処理を一番最初に基点に設定した「白」の点に戻るまで繰り返し実行すると、基点の配列が得られる。このような基点の配列が、「白」で構成される図形の輪郭線を構成する。なお、図２６では、輪郭を抽出すべき「白」で構成される図形の一部を示したが、上記処理により得られる輪郭線は閉じた曲線となる。
【０００６】
この他にも、画像を微分することにより輝度勾配が最大となる点の集合が抽出されたビットマップ画像から、当該最大となる点の配列を追跡してこれを輪郭線とする方法もある。
【０００７】
また、画像検査では、上述のようにして得られた検査対象物の輪郭線に関するデータを生成し、当該検査対象物を生成するのに用いられた設計データと比較して欠陥を検出する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−２２３１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ある基点に隣接しかつ「黒」が隣接する「白」の点を探索することで検出した点を新たなる基点に設定し、得られた基点の配列を輪郭線とする上述の従来技術では、開始点となる基点を設定する際に、開始点の候補となり得るビットをビットマップ画像の全体の中から探索しなければならないので、演算処理に時間がかかる。また、ある基点が設定されない限りは次の基点を設定することはできないので、１つのビットマップ画像に対して複数の演算プロセッサを適用することはできず、したがって並列処理による高速化は不可能である。また、例えば配線が形成された基板のビットマップ画像の場合には、配線の線幅がゼロ（０）である箇所では、基点に対して隣接する「白」のビットを検出することができないので、上記「次の基点」を検出することができない。このため、実際には配線は途切れていないにもかかわらず、２つの閉曲線が生成されて別々の配線であるとみなされてしまうといった問題も生じる。
【００１０】
従って本発明の目的は、上記問題に鑑み、ビットマップ画像における図形の輪郭線に関するデータを高速かつ正確に生成するデータ生成方法および、このデータ生成方法を用いた画像検査方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を実現するために、本発明の第１の態様においては、検査対象物が撮像されたビットマップ形式の画像データから当該検査対象物上の所望の図形の輪郭線に関するデータを生成する処理を演算処理装置により実行するデータ生成方法は、検査対象物を生成するのに用いられた設計データから生成された、所望の図形に対応する設計上の図形を貫く中心線を、画像データにおけるビットマップ画像に重ね合わせる重ね合わせステップと、中心線が重ね合わされたビットマップ画像上において、中心線上に位置するビットである各探索基準点について、当該探索基準点から所定の探索方向に向かって、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを輪郭候補点とする探索ステップと、各探索基準点に対して、輪郭候補点の中から当該探索基準点からの距離が最短となるものを抽出し、抽出した点を所望の図形の輪郭を構成する輪郭点として確定する確定ステップと、対応する探索基準点の配列順に、輪郭点とこの輪郭点に隣接する第１の色を有するビットとの接点、を結線して得られるラインを、所望の図形の輪郭線として確定し、この輪郭線に関するデータを出力する出力ステップと、を備える。
【００１２】
また、本発明の第２の態様においては、画像検査方法は、上述の第１の態様によるデータ生成方法を用いて生成された図形の輪郭線に関するデータを用いて検査対象物を検査する。すなわち、本発明の第２の態様による画像検査方法は、上述のデータ生成方法が演算処理装置によって実行されることによって出力された図形の輪郭線に関するデータと、設計上の図形についての設計輪郭線に関するデータと、を用いて、図形の輪郭線と設計輪郭線とを照合して、検査対象物が設計データどおりに生成されたか否かを検査する。
【００１３】
本発明の第２の態様による画像検査方法は、上記設計輪郭線に関するデータ生成する処理として、設計データにおける設計上の図形において、各探索基準点について、当該探索基準点から所定の探索方向に向かって、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを設計輪郭候補点とする設計データ用探索ステップと、各探索基準点に対して、設計輪郭候補点の中から当該探索基準点からの距離が最短となるものを抽出し、抽出した点を設計上の図形の輪郭を構成する設計輪郭点として確定する設計データ用確定ステップと、対応する探索基準点の配列順に、設計輪郭点とこの設計輪郭点に隣接する第１の色を有するビットとの接点、を結線して得られるラインを、設計上の図形についての設計輪郭線として確定し、この設計輪郭線に関するデータを出力する設計データ用出力ステップと、上述のデータ生成方法が演算処理装置によって実行されることによって出力された図形の輪郭線に関するデータと、設計データ用出力ステップにより出力される設計輪郭線に関するデータとを用いて、図形の輪郭線と設計輪郭線とを照合して、検査対象物が設計データどおりに生成されたか否かを検査する検査ステップと、を備える。
【００１４】
本発明の第３の態様においては、検査対象物が撮像されたビットマップ形式の画像データから当該検査対象物上の所望の図形の輪郭線に関するデータを生成する処理を演算処理装置により実行するデータ生成方法は、検査対象物を生成するのに用いられた設計データから生成された、所望の図形に対応する設計上の図形を貫く中心線を、画像データにおけるビットマップ画像に重ね合わせる重ね合わせステップと、中心線が重ね合わされたビットマップ画像上において、中心線上の各ビットの位置における中心線の法線を算出する法線算出ステップと、法線の方向パラメータを、中心線上の各ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する加重平均ステップと、加重平均された方向パラメータで規定された直線である探索線それぞれについて、当該探索基準点から当該探索線上に沿って、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを、所望の図形の輪郭を構成する輪郭点として確定する確定ステップと、  対応する探索基準点の配列順に、輪郭点とこの輪郭点に隣接する第１の色を有するビットとの接点、を結線して得られるラインを、所望の図形の輪郭線として確定し、この輪郭線に関するデータを出力する出力ステップと、を備える。
【００１５】
また、本発明の第４の態様においては、画像検査方法は、上述の第３の態様によるデータ生成方法を用いて生成された図形の輪郭線に関するデータを用いて検査対象物を検査する。すなわち、本発明の第４の態様による画像検査方法は、上述のデータ生成方法が演算処理装置によって実行されることによって出力された図形の輪郭線に関するデータと、設計上の図形についての設計輪郭線に関するデータと、を用いて、図形の輪郭線と設計輪郭線とを照合して、検査対象物が設計データどおりに生成されたか否かを検査する。
【００１６】
本発明の第４の態様による画像検査方法は、上記設計輪郭線に関するデータ生成する処理として、設計中心線が重ね合わされた設計データ用ビットマップ画像上において、設計中心線上の各ビットの位置における設計中心線の設計法線を算出する設計データ用法線算出ステップと、設計法線の方向パラメータを、設計中心線上の各ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する設計データ用加重平均ステップと、加重平均された方向パラメータで規定された直線である設計探索線それぞれについて、当該探索基準点から当該設計探索線の方向に向かって、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを、設計上の図形の輪郭を構成する設計輪郭点として確定する設計データ用確定ステップと、対応する探索基準点の配列順に、設計輪郭点とこの設計輪郭点に隣接する第１の色を有するビットとの接点、を結線して得られるラインを、設計上の図形についての設計輪郭線として確定し、この設計輪郭線に関するデータを出力する設計データ用出力ステップと、を備える。
【００１７】
なお、上述の各ステップは、コンピュータ等の演算処理装置が実行することができるコンピュータプログラムの形式で実現できる。以上の処理を実施する装置や、以上の処理をコンピュータに実行させるコンピュータプログラムを作成することは、以下の説明を理解した当業者には容易に実施できる事項である。また、以上の処理をコンピュータにより実行させるコンピュータプログラムを記録媒体に格納するという事項も当業者には自明である。
【発明の効果】
【００１８】
本発明によれば、コンピュータなどの演算処理装置により、ビットマップ画像における図形の輪郭線に関するデータを高速かつ正確に生成することができる。上述した基点を順次追跡していく従来技術とは異なり、複数の探索基準点のうちのいくつかに演算処理装置を割り当てて並列処理（いわゆるマルチプロセッサ並列処理）を実現することができるので、ビットマップ画像における図形の輪郭線に関するデータを高速に生成することが可能である。
【００１９】
また、上述のデータ生成方法を用いれば、検査対象物を撮像した画像データに基づいて画像検査を行う画像検査方法についても、高速化を図ることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施例によるデータ生成方法の動作フローを示すフローチャートである。
【図２】本発明の第１の実施例によるデータ生成方法において実行される並列処理の動作フローを示すフローチャートである。
【図３】本発明の第１および第３の実施例において生成される中心線の一例を示す図である。
【図４】本発明の第１の実施例において実行される輪郭候補点の探索および輪郭点の確定を説明する図である。
【図５】本発明の第１の実施例によるデータ生成方法により生成された図形の輪郭線を例示する図（その１）である。
【図６】本発明の第１の実施例によるデータ生成方法により生成された図形の輪郭線を例示する図（その２）である。
【図７】本発明の第１の実施例によるデータ生成方法により生成された図形の輪郭線を例示する図（その２）である。
【図８】ノイズに起因する探索方向の輝度レベルの変化を例示する図である。
【図９】本発明の第１の実施例における輪郭候補点の探索処理における補正処理を示すフローチャートである。
【図１０】本発明の第２の実施例による画像検査方法の動作フローを示すフローチャートである。
【図１１】本発明の第３の実施例によるデータ生成方法の動作フローを示すフローチャートである。
【図１２】本発明の第３の実施例において生成される中心線の法線を説明する図である。
【図１３】本発明の第３の実施例によるデータ生成方法において実行される並列処理の動作フローを示すフローチャートである。
【図１４】本発明の第３の実施例によるデータ生成方法における方向パラメータを説明する図である。
【図１５】本発明の第３の実施例によるデータ生成方法における重み付け係数を例示ずる図（その１）である。
【図１６】本発明の第３の実施例によるデータ生成方法における重み付け係数を例示ずる図（その２）である。
【図１７】本発明の第３の実施例によるデータ生成方法における、加重平均された方向パラメータの算出について説明する図である。
【図１８】本発明の第３の実施例によるデータ生成方法における、輪郭点の確定について説明する図である。
【図１９】本発明の第３の実施例における輪郭候補点の探索処理における補正処理を示すフローチャートである。
【図２０】本発明の第４の実施例による画像検査方法の動作フローを示すフローチャートである。
【図２１】本発明の第１の実施例による、配線幅方向に凸部および凹部がある配線の輪郭線の抽出について説明する図である。
【図２２】本発明の第３の実施例による、配線幅方向に凸部および凹部がある配線の輪郭線の抽出について説明する図である。
【図２３】本発明の第３の実施例による、配線幅方向に凸部および凹部がある配線の輪郭線の抽出について説明する図（その２）である。
【図２４】第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法に係るコンピュータプログラムが動作するコンピュータの構成を示すブロック図である。
【図２５】配線が形成された基板についてのビットマップ画像の一例を示す図である。
【図２６】従来技術によるビットマップ画像から図形の輪郭を抽出する方法の一例を説明する図である。
【発明を実施するための形態】
【００２１】
図１は、本発明の第１の実施例によるデータ生成方法の動作フローを示すフローチャートである。本発明の第１の実施例によれば、データ生成処理は、オフライン処理とオンライン処理の２つの段階に分けて、コンピュータなどの演算処理装置によって実行される。オフライン処理は、オンライン処理の実行に先立ち予め実行されるものであり、検査対象物を生成するのに用いられる設計データに対して実行される。一方、オンライン処理は、カメラによって撮像された検査対象物のビットマップ形式の画像データに対して実行される。本実施例では、検査対象物を配線が形成された基板とし、輪郭線を抽出すべき検査対象物上の図形を撮像画像中における基板上の配線とする。なお、検査対象物が形成された基板以外のものであっても、本発明は適用可能である。
【００２２】
まず、オンライン処理が実行される前すなわちオフライン処理の段階で、ステップＳ１０１において、検査対象物を生成するのに用いられた設計データから生成された、「検査対象物が撮像されたビットマップ画像において輪郭線を抽出すべき図形」に対応する「設計上の図形」を貫く中心線に関するデータを作成する。図３は、本発明の第１および第３の実施例において生成される中心線の一例を示す図である。例えば、設計上の図形が参照符号Ａで示される実線で囲まれる領域である場合、図３の一点鎖線で示される中心線Ｍが、設計上の図形Ａについて生成される。
【００２３】
オフライン処理であるステップＳ１０１において、設計上の図形を貫く中心線を予め生成した後、オンライン処理の実行に移行する。なお、オフライン処理であるステップＳ１０１は、たとえ輪郭線を抽出すべき図形が複雑であっても、当該図形に対して１回の処理で中心線を生成できるので、膨大な時間を費やすことはない。また、ステップＳ１０１は、コンピュータなどの演算処理装置で実行されるが、例えば、設計データを処理するＣＡＤシステムを用いて実行してもよい。
【００２４】
オンライン処理としては、まず、ステップＳ２０１において、カメラによって撮像された検査対象物のビットマップ形式の画像データが、本発明の第１の実施例によるデータ処理方法を実行するコンピュータなどの演算処理装置に入力される。以下のステップＳ２０１〜Ｓ２０５の処理は、この演算処理装置によって実行されるが、特に、この演算処理装置には複数の演算プロセッサが設けられているものを用いて、各演算プロセッサの処理を独立に実行させれば、ステップＳ３００におけるマルチプロセッサ並列処理が可能である。
【００２５】
ステップＳ２０２では、検査対象物を生成するのに用いられた設計データにおける設計上のビットマップ画像と、カメラによって撮像された検査対象物のビットマップ形式の画像データにおけるビットマップ画像と、を設計データ上に定義された所定のマークを基準に、仮想平面上において位置合わせされた上で、オフライン処理であるステップＳ１０１において予め生成された設計上の図形を貫く中心線を、画像データにおけるビットマップ画像に重ね合わせる。
【００２６】
次いで、並列処理Ｓ３００が実行される。図２は、本発明の第１の実施例によるデータ生成方法において実行される並列処理の動作フローを示すフローチャートである。ステップＳ３０１において、中心線が重ね合わされたビットマップ画像上において、中心線上に位置するビットの中から探索基準点を設定する。探索基準点は、輪郭候補点を探索するための基準点となるものである。後述するステップＳ３０４の処理を介して、中心線上に位置するビット全てについて、必ず１回、探索基準点として採用されることになる。上述のように本実施例では、演算処理装置内に複数の演算プロセッサが設けられるので、これら演算プロセッサを、中心線上に複数存在する探索基準点のうちにいくつかに割り当てることによって、並列処理Ｓ３００における探索基準点を基準に輪郭候補点を探索する処理（ステップＳ３０１および後述するステップＳ３０２〜Ｓ３０４までの一連の処理）を、各演算プロセッサごとに実行することができる。なお、図１に示すフローチャートでは、図２に示すステップＳ３０１〜Ｓ３０４までの処理をひとまとめにしてステップＳ３００で表わしている。例えば、１００個の演算プロセッサが設けられる演算処理装置で、中心線上に１万個の探索基準点に対して処理を実行する場合、１つの演算プロセッサに対しては１００個の探索基準点が割り当てられる。この結果、１つの演算プロセッサで１万個の探索基準点に対して処理を実行する場合に比べて、演算処理時間を１００分の１に短縮することができる。このように、本実施例によれば、ステップＳ３０１〜Ｓ３０４までの一連の処理については複数の演算プロセッサで並列に実行されるので、演算処理時間を大幅に短縮することができる。
【００２７】
ステップＳ３０２は、中心線が重ね合わされたビットマップ画像上において、ステップＳ３０１において設定した各探索基準点について、当該探索基準点から所定の探索方向に向かって、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索する。検出したビットを輪郭候補点とし、当該輪郭候補点に関するデータをメモリに一旦記憶する。ステップＳ３０２における上記「所定の探索方向」は、中心線が重ね合わされたビットマップ画像上の、探索基準点を中心とした２ｎ方向（ただし、ｎは整数）である。ｎの大きさが大きければ大きいほど、探索の精度が上がる。
【００２８】
図４は、本発明の第１の実施例において実行される輪郭候補点の探索および輪郭点の確定を説明する図である。例えば、検査対象物が撮像されたビットマップ画像における輪郭線を抽出すべき図形が参照符号Ｂで示される実線で囲まれる領域である場合、図４の一点鎖線で示される中心線Ｍが、図形Ｂに重ね合わされた場合を例にとると次の通りである。図示の例ではｎ＝８としており、すなわち探索方向は、図中点線の矢印で示される１６方向である。本実施例では、検査対象物を配線が形成された基板とし、輪郭線を抽出すべき検査対象物上の図形を撮像画像中における基板上の配線する場合、ビットマップ画像上では、例えば基板は「黒」（上記「第２の色」に相当）、配線は「白」（上記「第１の色」に相当）といったように２値で表わされる。図４に示す例では、中心線Ｍ上に２つの探索基準点Ｐ１およびＰ２を設定し、探索基準点Ｐ１およびＰ２にそれぞれ別の演算プロセッサを割り当てて並列処理される場合を示している。このとき、探索基準点Ｐ１およびＰ２は、輪郭線を抽出すべき検査対象物上の図形に対応する設計上の図形を貫く中心線上に位置するので、ビットの色は「白」である。図４に示す例では、ステップＳ２０５における輪郭候補点Ｐ１およびＰ２の探索処理においてそれぞれ、当該探索基準点Ｐ１およびＰ２から１６方向の探索方向に向かって、隣接するビットを順次探索していき、中心線上に位置するビットの第１の色である「白」とは異なる第２の色である「黒」が出現するビットを見つけ出す。この探索方向の直線を「探索線」と称する。当該「黒」がはじめて出現したときのビットを輪郭候補点とする。したがって、１つの探索基準点に対して２ｎ方向（ただし、ｎは整数、図４の場合はｎ＝８）に存在する輪郭候補点は、２ｎ個検出されることになる。
【００２９】
図２のステップＳ３０３では、各探索基準点に対して、ステップＳ３０２で検出されメモリに一旦記憶されていた複数の輪郭候補点の中から、当該探索基準点からの距離が最短となるもの抽出し、抽出した点を図形の輪郭を構成する輪郭点として確定する。探索基準点からの距離が最短となる輪郭候補点は１つのみであるが、当該最短距離の輪郭候補点と、当該最短距離の輪郭候補点とは探索基準点を基準にして１８０度の方向（すなわち当該当該最短距離の輪郭候補点を検出したときの探索方向とは正反対の方向）に位置する輪郭候補点と、の間の距離は、当該探索基準点における「配線の最短幅」を構成することになる。したがって、これら２つの輪郭候補点を、図形（すなわち配線）の輪郭を構成する輪郭点として確定する。図４に示す例では、探索基準点Ｐ１に対しては輪郭点Ｑ１およびＱ２が、探索基準点Ｐ２に対しては輪郭点Ｑ３およびＱ４が、それぞれ確定される。
【００３０】
ステップＳ３０４では、全ての探索基準点について、ステップＳ３０１〜Ｓ３０３の処理が実行されたか否かが判定される。処理が未だ実行されていない探索基準点がある場合はステップＳ３０１へ戻り、全ての探索基準点について処理が実行された場合はステップＳ２０３へ進む。なお、上述のように、ステップＳ３０１〜ステップＳ３０４までの一連処理は、複数の演算プロセッサで並列処理として実行されるので、ステップＳ３０４において判定される「全ての探索基準点」とは、１つの演算プロセッサに対し割り当てられた複数の探索基準点を意味する。
【００３１】
ステップＳ２０３では、仮想平面上において、対応する探索基準点の配列順に、ステップＳ２０５で生成された輪郭点とこの輪郭点に隣接する「白」のビットとの接点、を並べ替え、これら接点を結線する。上述のように、ステップＳ３０１〜ステップＳ３０４までの一連の処理は、複数の演算プロセッサで並列処理として実行されるので、生成された輪郭点全てを、このステップＳ２０３において、改めて探索基準点の配列順に並べ替える必要がある。
【００３２】
ステップＳ２０４では、ステップＳ２０３において接点間を結線して得られたラインを、輪郭線として確定し、この輪郭線に関するデータを出力する。なお、輪郭点として「白」のビットのみを抽出し、探索線と抽出された「白」のビットの円周とが交わる点の内、探索基準点から遠いほうの点同士を結んだもの、を輪郭線としても良い。あるいは、輪郭点として「黒」のビットのみを抽出し探索線と抽出された「黒」のビットの円周とが交わる点の内、探索基準点に近いほうの点同士を結んだもの、を輪郭線としても良い。出力された輪郭線に関するデータは、例えば、ディスプレイ装置の画面上に表示するために用いられてもよく、またあるいは、後述する第２の実施例として説明する画像検査方法に用いられてもよい。
【００３３】
図５〜７は、本発明の第１の実施例によるデータ生成方法により生成された図形の輪郭線を例示する図である。図５〜７においては、検査対象物が撮像されたビットマップ画像における輪郭線を抽出すべき図形を参照符号Ｂで示される実線で囲まれる領域とし、当該ビットマップ画像に重ね合わされた設計上の図形を貫く中心線Ｍを一点鎖線で表わす。また、図中、黒塗りの四角は、ビットを表わす。したがって、中心線Ｍ上に存在する黒塗りの四角は、探索基準点であるビットを意味する。参照符号Ｂで示される実線上に位置する黒塗りの四角は、確定した輪郭点であるビットである。輪郭点（黒）とこの輪郭点に隣接する「白」のビットとの接点を求め、これら接点を結線すれば、図形Ｂの輪郭線が得られる。
【００３４】
なお、図５に示すように、配線がカーブしている箇所では、輪郭点は等間隔には並ばないことになるが、探索基準点のピッチが十分に短い場合には、精度上の問題はない。
【００３５】
また、図６に示すように、図形Ｂである配線の一部分の線幅が０（ゼロ）になっていても、設計データから生成される設計上の図形においては、線幅が０（ゼロ）の箇所も中心線Ｍが貫くことになるので、図６の線幅が０（ゼロ）の箇所を挟む配線が、従来技術の場合のように別々の配線とみなされることはない。
【００３６】
また、図７に示すように、図形Ｂである配線の端部についても、探索基準点のピッチが十分に短いほど、高精度に輪郭線を抽出することができる。
【００３７】
上述のように、ステップＳ２０５における輪郭候補点の探索処理によれば、探索基準点から所定の探索方向に向かって探索線上において、隣接するビットを順次探索していき、中心線上に位置するビットの第１の色である「白」とは異なる第２の色である「黒」が出現するビットを見つけ出し、当該「黒」がはじめて出現したときのビットを輪郭候補点としている。一般に、白および黒の２値で表わされるビットマップ画像上では、輝度レベルを検知することによりビットが白であるか黒であるかを判別することができる。すなわち、ビットが有する輝度レベルには白であるか黒であるかを切り分ける境界となるレベルが存在する。しかしながら、検査対象物を撮像する際に何らかのノイズによりビットマップ画像に輝度レベルのバラツキが発生した場合には、次のような理由によりビットが白であるか黒であるかを正確に判別することができないことがある。
【００３８】
図８は、ノイズに起因する探索方向の輝度レベルの変化を例示する図である。図８において、横軸は輪郭候補点の探索処理における探索線上の探索方向の位置を示すものであり、その座標を「ｘ」で表わす。図形の中心線（図中、一点鎖線で表わす。）のビットは座標ｘ2に位置するとする。また、図８において、縦軸は輝度レベルｌを示すものであり、白と黒と間の輝度レベルの境界をｌthで表わす。ここでは、撮像したビットマップ画像において、座標ｘ1と座標ｘ5との間のビットの色は本来は「白」でありしたがって図形の正しい輪郭候補点が座標ｘ1およびｘ5に位置するにもかかわらず、座標ｘ3と座標ｘ4との間にノイズが存在することで輝度レベルが境界レベル以下となった場合を例にとって説明する。
【００３９】
輪郭候補点の探索処理においては、座標ｘ2から、−ｘ方向および＋方向の２方向が探索方向として設定され、その探索方向に沿って、座標ｘ2に位置するビットの色である「白」とは異なる「黒」が出現するビットを見つけ出す処理が実行される。座標ｘ2から−ｘ方向に向けて探索処理を実行し輝度レベルを検知していくと、座標ｘ1の位置で輝度レベルが境界レベルｌth以下となるので、黒のビットが出現したと認識され、この結果、輪郭候補点が座標ｘ1に位置するものと確定される。一方、座標ｘ2から＋ｘ方向に向けて探索処理を実行し輝度レベルを検知していくと、座標ｘ3の位置で輝度レベルが境界レベルｌth以下となるので、黒のビットが出現したと認識されてしまい、この結果、輪郭候補点は、正しくは座標ｘ5に位置すべきものであるにもかかわらず、座標ｘ2に位置するものと確定されてしまう。このような輪郭候補点の誤った確定は、結果として図形の輪郭線の誤認識につながる。
【００４０】
そこで、このような輪郭線の誤認識を防ぐために、本実施例では、輪郭候補点の探索処理において以下のような補正処理を実行するのが好ましい。図９は、本発明の第１の実施例における輪郭候補点の探索処理における補正処理を示すフローチャートである。本発明の第１の実施例における輪郭候補点の探索処理については、図２および４を参照して説明したとおりであり、中心線が重ね合わされたビットマップ画像上において各探索基準点ごとに実行される。補正処理は、この探索処理における一連の処理の一部として実行される。
【００４１】
まず、ステップＳ４０１において、中心線が重ね合わされたビットマップ画像上において、ある探索基準点について、当該探索基準点から、探索線上において所定の探索方向に向かってビットの色を探索していく。そしてステップＳ４０２において、中心線上に位置するビットの第１の色である「白」とは異なる第２の色である「黒」を有するビットを検出するか否かを判定する。
【００４２】
ステップＳ４０２において第２の色である「黒」のビットを検出したと判定した場合は、当該検出した第２の色である「黒」のビットの位置座標に関する情報をメモリに保持し、ステップＳ４０３へ進む。ステップＳ４０２において第２の色である「黒」のビットを検出しなかった場合はステップＳ４０１へ戻り、第２の色である「黒」のビットを検出するまで、ステップＳ４０２およびＳ４０１の処理が繰り返し実行される。
【００４３】
ステップＳ４０３では、当該検出した第２の色のビットのの位置から、探索線上において所定の探索方向に向けてビットの色をさらに探索していく。そしてステップＳ４０４において、第１の色である「白」を有するビットを検出するか否かを判定する。
【００４４】
ステップＳ４０４において第１の色である「白」のビットを検出しないと判定した場合は、ステップＳ４０５へ進み、位置座標に関する情報についてメモリに保持していた第２の色である「黒」のビットを、輪郭候補点として確定し、これをメモリに保持する。
【００４５】
一方、ステップＳ４０４において第１の色である「白」のビットを検出したと判定した場合は、当該検出した第１の色である「白」のビットの位置座標に関する情報をメモリに保持し、ステップＳ４０６へ進む。ステップＳ４０６では、当該検出した第１の色である「白」のビットの位置から、探索線上において所定の探索方向に向けてビットの色を探索していく。そして、ステップＳ４０７において、第２の色である「黒」を有するビットを検出するか否かを判定する。
【００４６】
ステップＳ４０６において第２の色である「黒」のビットを検出したと判定した場合は、当該検出した第２の色である「黒」のビットの位置座標に関する情報をメモリに保持し、ステップＳ４０３へ戻る。ステップＳ４０３では、当該検出した第２の色である「黒」のビットの位置から、所定の探索方向に向けてさらに探索し、探索線上において所定の探索方向に向かってビットの色を探索していく。このステップＳ４０３以降は上述の一連の処理を再度実行する。
【００４７】
一方、ステップＳ４０６において第２の色である「黒」のビットを検出しないと判定した場合は、ステップＳ４０５へ進み、ステップＳ４０２において検出し位置座標に関する情報を保持していた第２の色である「黒」のビットを、輪郭候補点として確定し、これをメモリに保持する。
【００４８】
輪郭候補点の探索処理において、上述の補正処理を実行することにより、撮像したビットマップ画像上にノイズが存在していたとしても、輪郭線の誤認識を防ぐことができる。
【００４９】
例えば、図８に示すような輝度レベルの変化が探索線上に存在する場合において、＋方向の探索方向に補正処理を適用すると、座標ｘ2に位置する探索基準点について、この探索基準点から、探索線上において＋方向の探索方向に沿って、ビットの色を探索していくと（ステップＳ４０１）、座標ｘ2に位置するビットの色である「白」とは異なる「黒」を有するビットを、座標ｘ3の位置で検出する（ステップＳ４０２）。当該「黒」を有するビットについての座標ｘ3の位置情報はメモリに保持される。そして、この座標ｘ3の位置から、探索線上において＋方向の探索方向に沿って、ビットの色を探索していくと（ステップＳ４０３）、「白」を有するビットを、座標ｘ4の位置で検出する（ステップＳ４０４）。このように「白」を有するビットを座標ｘ4の位置で検出したので、輪郭候補点については未だ確定せずに、当該検出した「白」を有するビットについての座標ｘ4の位置情報をメモリに保持する。次いで、この座標ｘ4の位置から、探索線上において＋方向の探索方向に沿って、ビットの色を探索していくと（ステップＳ４０６）、「黒」を有するビットを、座標ｘ5の位置で検出する（ステップＳ４０７）。当該検出した「黒」を有するビットについての座標ｘ5の位置情報は、既に検出されメモリに保持されていた「黒」を有するビットについての座標ｘ3の位置情報に代えて、新たにメモリに保持され、この座標ｘ5の位置から、探索線上において＋方向の探索方向に沿って、ビットの色を探索していく（ステップＳ４０３）。図８に示す例では、探索線上において＋方向の探索方向にこれ以上の「白」を有するビットは存在しないので（ステップＳ４０４）、メモリに保持されていた座標ｘ5に位置する「黒」を有するビットを、輪郭候補点として確定する（ステップＳ４０５）。これにより、＋方向の探索方向の輪郭候補点は確定する。
【００５０】
一方、図８に示すような輝度レベルの変化が探索線上に存在する場合において、−方向の探索方向に補正処理を適用すると、座標ｘ2に位置する探索基準点について、この探索基準点から、探索線上において−方向の探索方向に沿って、ビットの色を探索していくと（ステップＳ４０１）、座標ｘ2に位置するビットの色である「白」とは異なる「黒」を有するビットを、座標ｘ1の位置で検出する（ステップＳ４０２）。当該「黒」を有するビットについての座標ｘ1の位置情報はメモリに保持される。図８に示す例では、探索線上において−方向の探索方向にこれ以上の「白」を有するビットは存在しないので（ステップＳ４０４）、メモリに保持されていた座標ｘ1に位置する「黒」を有するビットを、輪郭候補点として確定する（ステップＳ４０５）。これにより、−方向の探索方向の輪郭候補点は確定する。
【００５１】
このように、本発明の第１の実施例によれば、複数の探索基準点のうちのいくつかに演算処理装置を割り当ててマルチプロセッサ並列処理を実現することができるので、ビットマップ画像における図形の輪郭線に関するデータを高速に生成することが可能である。また、輪郭候補点の探索処理において補正処理を実行すれば、輪郭線の誤認識を防ぐことができる。
【００５２】
図１０は、本発明の第２の実施例による画像検査方法の動作フローを示すフローチャートである。本発明の第２の実施例による画像検査方法は、上述の第１の実施例によるデータ生成方法を用いて生成された図形の輪郭線に関するデータを用いて、検査対象物を検査するものである。本発明の第２の実施例によれば、データ生成処理および画像検査処理は、第１の実施例と同様、オフライン処理とオンライン処理の２つの処理に分けて、コンピュータなどの演算処理装置によって実行される。
【００５３】
図１０において、ステップＳ１０１およびＳ２０１〜Ｓ２０４ならびに並列処理Ｓ３００内のステップＳ３０１〜Ｓ３０４における各処理は、図１を参照して説明した第１の実施例によるデータ生成方法におけるステップＳ１０１およびＳ２０１〜Ｓ２０４ならびに並列処理Ｓ３００内のステップＳ３０１〜Ｓ３０４の処理と同じであるので、説明は省略する。
【００５４】
本実施例では、オンライン処理が実行される前すなわちオフライン処理の段階で、検査対象物を生成するのに用いられた設計データに対して、設計上の図形の輪郭線を、カメラによって撮像された検査対象物のビットマップ形式の画像データのオンライン処理と同様のアルゴリズムに従って、ステップＳ１０２〜ステップＳ１０７が実行される。同様のアルゴリズムを用いることによって、画像検査の正確性が確保される。なお、オフライン処理であるステップＳ１０１〜Ｓ１０７は、輪郭線を抽出すべき図形が複雑であっても、当該図形に対して１回の処理を実行すればよいので、多くの時間を費やすことはない。また、ステップＳ１０１〜Ｓ１０７は、コンピュータなどの演算処理装置で実行されるが、例えば、設計データを処理するＣＡＤシステム上の新規の機能として実現してもよい。
【００５５】
ステップＳ１０２では、設計データにおける設計上の図形において、中心線上に位置するビットの中から探索基準点を設定する。なお、オフライン処理におけるステップＳ１０２〜Ｓ１０５までの処理に用いられる探索基準点については、オンライン処理におけるステップＳ３０１〜Ｓ３０４までの処理に用いられる探索基準点と同一のものである。
【００５６】
ステップＳ１０３では、設計データにおける設計上の図形において、ステップＳ１０２で設定した各探索基準点について、当該探索基準点から所定の探索方向に向かって、中心線上に位置するビットの第１の色（すなわち「白」）とは異なる第２の色（すなわち「黒」）が出現するビットを探索する。検出したビットを設計輪郭候補点とし、当該設計輪郭候補点に関するデータをメモリに一旦記憶する。ステップＳ１０３における上記「所定の探索方向」は、ステップＳ３０２における上記「所定の探索方向」と同一である。
【００５７】
次いで、ステップＳ１０４において、各探索基準点に対して、ステップＳ１０３で検出されメモリに一旦記憶されていた複数の設計輪郭候補点の中から、当該探索基準点からの距離が最短となるもの抽出し、抽出した点を設計上の図形の輪郭を構成する設計輪郭点として確定する。探索基準点からの距離が最短となる設計輪郭候補点は１つのみであるが、当該最短距離の設計輪郭候補点と、当該最短距離の設計輪郭候補点とは探索基準点を基準にして１８０度の方向（すなわち当該当該最短距離の設計輪郭候補点を検出したときの探索方向とは正反対の方向）に位置する設計輪郭候補点と、の間の距離は、当該探索基準点における「配線の最短幅」を構成することになる。したがって、これら２つの輪郭候補点を、図形（すなわち配線）の輪郭を設計構成する輪郭点として確定する。このように、ステップＳ１０４の処理も、ステップＳ３０３の処理と同一のアルゴリズムに従っている。
【００５８】
ステップＳ１０５では、全ての探索基準点について、ステップＳ１０２〜Ｓ１０４の処理が実行されたか否かが判定される。未だ処理が実行されていない探索基準点がある場合はステップＳ１０２へ戻り、全ての探索基準点について処理が実行された場合はステップＳ１０６へ進む。このように、ステップＳ１０５の処理も、ステップＳ３０４の処理と同一のアルゴリズムに従っている。
【００５９】
ステップＳ１０６では、仮想平面上において、対応する探索基準点の配列順に、ステップＳ１０４で生成された設計輪郭点とこの設計輪郭点に隣接する「白」のビットとの接点、を並べ替え、これら接点を結線する。このように、ステップＳ１０６の処理も、ステップＳ２０３の処理と同一のアルゴリズムに従っている。
【００６０】
ステップＳ１０７では、ステップＳ１０６おいて輪郭点間を結線して得られたラインを、図形（すなわち配線）の設計輪郭線として確定し、この設計輪郭線に関するデータを出力する。このように、ステップＳ１０７の処理も、ステップＳ２０４の処理と同一のアルゴリズムに従っている。
【００６１】
ステップＳ１０７により出力された設計データにおける設計上の図形についての設計輪郭線に関するデータと、ステップＳ２０４により出力された検査対象物の画像データにおける図形の輪郭線に関するデータと、を用いて、ステップＳ２０５における検査処理が実行される。
【００６２】
ステップＳ２０５では、検査対象物の画像データにおける図形の輪郭線と設計上の図形についての設計輪郭線とを、同一の探索基準点ごとに照合して、検査対象物が設計データどおりに生成されたか否かを検査する。例えば、検査対象物が、配線が形成された基板であり、検査対象物上の輪郭線を抽出すべき図形が、撮像画像中における基板上の配線であるとすると、ステップＳ２０５では、同一の探索基準点において、検査対象物の画像データにおける図形の輪郭線で画定される配線の線幅と設計輪郭線で画定される配線の線幅と、が一致するか否かに基づき、検査対象物が設計データどおりに生成されたか否かを判定する。これら線幅が一致すると判定された場合、検査対象物が設計データどおりに生成されたということになり、線幅が一致しないと判定された場合、検査対象物が設計データどおりに生成されていないのでエラーとみなされる。この検査結果については、例えばディスプレイ装置の画面上に表示される。
【００６３】
このように、本発明の第２の実施例によれば、輪郭線に関するデータの生成については複数の探索基準点のうちのいくつかに演算処理装置を割り当ててマルチプロセッサ並列処理を実現して演算処理時間を短縮するので、検査対象物を撮像した画像データに基づいて画像検査を行う画像検査方法についても、高速化を図ることができる。例えば、検査対象物が、配線が形成された基板であり、検査対象物上の図形が、撮像画像中における基板上の配線である場合、画像検査処理では、図形の輪郭線で画定される配線の線幅と設計輪郭線で画定される配線の線幅とが一致するか否かに基づき、検査対象物である配線が形成された基板が、設計データどおりに生成されたか否かを判定する。
【００６４】
続いて、本発明の第３の実施例によるデータ処理方法について説明する。図１１は、本発明の第３の実施例によるデータ生成方法の動作フローを示すフローチャートである。本発明の第３の実施例によれば、第１の実施例同様、データ生成処理は、オフライン処理とオンライン処理の２つの段階に分けて、コンピュータなどの演算処理装置によって実行される。オフライン処理は、オンライン処理の実行に先立ち予め実行されるものであり、検査対象物を生成するのに用いられる設計データに対して実行される。一方、オンライン処理は、カメラによって撮像された検査対象物のビットマップ形式の画像データに対して実行される。本実施例では、検査対象物を配線が形成された基板とし、輪郭線を抽出すべき検査対象物上の図形を撮像画像中における基板上の配線とする。なお、検査対象物が形成された基板以外のものであっても、本発明は適用可能である。
【００６５】
すなわち、図１１に示すように、まず、オンライン処理が実行される前すなわちオフライン処理の段階で、ステップＳ１０１において、検査対象物を生成するのに用いられた設計データから生成された、「検査対象物が撮像されたビットマップ画像において輪郭線を抽出すべき図形」に対応する「設計上の図形」を貫く中心線に関するデータを作成する。中心線に関するデータの作成処理は、図１および３を参照して説明した第１の実施例の場合と同様である。オフライン処理であるステップＳ１０１において、設計上の図形を貫く中心線を予め生成した後、オンライン処理の実行に移行する。なお、第１の実施例同様、ステップＳ１０１は、コンピュータなどの演算処理装置で実行されるが、例えば、設計データを処理するＣＡＤシステムを用いて実行してもよい。
【００６６】
オンライン処理としては、まず、ステップＳ２０１において、カメラによって撮像された検査対象物のビットマップ形式の画像データが、本発明の第３の実施例によるデータ処理方法を実行するコンピュータなどの演算処理装置に入力される。以下のステップＳ２０１〜Ｓ２０４およびＳ２０６の処理は、この演算処理装置によって実行されるが、特に、この演算処理装置には複数の演算プロセッサが設けられているものを用いて、各演算プロセッサの処理を独立に実行させれば、ステップ５００におけるマルチプロセッサ並列処理が可能である。
【００６７】
ステップＳ２０２では、検査対象物を生成するのに用いられた設計データにおける設計上のビットマップ画像と、カメラによって撮像された検査対象物のビットマップ形式の画像データにおけるビットマップ画像と、を設計データ上に定義された所定のマークを基準に、仮想平面上において位置合わせされた上で、オフライン処理であるステップＳ１０１において予め生成された設計上の図形を貫く中心線を、画像データにおけるビットマップ画像に重ね合わせる。
【００６８】
次いで、ステップＳ２０６において、中心線が重ね合わされたビットマップ画像上において、中心線上の各ビットの位置における中心線の法線を算出する。図１２は、本発明の第３の実施例において生成される中心線の法線を説明する図である。ビットマップデータはディジタルデータであるので、中心線上におけるビットの位置は同一ライン上に乗るものではなく、離散的な値となる。したがって、本実施例では、まず当該ビットに隣接する中心線上の２つのビットを結線した線分を求め、そしてこの線分に対する法線を求めてこれを中心線上のビットの位置における中心線の法線とする。例えば、図１２に示すように、中心線Ｍ上にビットＰ１、Ｐ２、Ｐ３、Ｐ４およびＰ５が存在する場合において、ビットＰ２、Ｐ３およびＰ４の位置における中心線の法線を求める場合は次のようになる。ビットＰ２の位置における中心線Ｍの法線については、ビットＰ２に隣接するビットＰ１とビットＰ３とを結線した線分Ｔ２に垂直な直線Ｒ２として得られる。また、ビットＰ３の位置における中心線Ｍの法線については、ビットＰ３に隣接するビットＰ２とビットＰ４とを結線した線分Ｔ３に垂直な直線Ｒ３として得られる。また、ビットＰ４の位置における中心線Ｍの法線については、ビットＰ４に隣接するビットＰ３とビットＰ５とを結線した線分Ｔ４に垂直な直線Ｒ４として得られる。
【００６９】
次いで、並列処理Ｓ５００が実行される。図１３は、本発明の第３の実施例によるデータ生成方法において実行される並列処理の動作フローを示すフローチャートである。図１３に示すように、並列処理Ｓ５００は、ステップＳ５０１とステップＳ５０２とからなる。
【００７０】
ステップＳ５０１では、法線の方向パラメータを、中心線上の各ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する処理（いわゆる「重み付け平均処理」）を実行する。この加重平均処理は次のステップＳ５０１−１〜Ｓ５０１−６からなる。
【００７１】
ステップＳ５０１−１では、中心線が重ね合わされたビットマップ画像上において、中心線上に位置するビットの中から探索基準点を設定する。探索基準点は、輪郭点を探索するための基準点となるものである。後述するステップＳ５０１−４の処理を介して、中心線上に位置するビット全てについて、必ず１回、探索基準点として採用されることになる。上述のように本実施例では、演算処理装置内に複数の演算プロセッサが設けられるので、これら演算プロセッサを、中心線上に複数存在する探索基準点のうちにいくつかに割り当てることによって、並列処理Ｓ５００における探索基準点を基準に候補点を探索する処理（ステップＳ５０１および後述するステップＳ３５０２の一連の処理）を、各演算プロセッサごとに実行することができる。なお、図１１に示すフローチャートでは、図１３に示すステップＳ５０１（Ｓ５０１−１〜Ｓ５０１−６）およびＳ５０２の処理をひとまとめにしてステップＳ５００で表わしている。例えば、１００個の演算プロセッサが設けられる演算処理装置で、中心線上に１万個の探索基準点に対して処理を実行する場合、１つの演算プロセッサに対しては１００個の探索基準点が割り当てられる。この結果、１つの演算プロセッサで１万個の探索基準点に対して処理を実行する場合に比べて、演算処理時間を１００分の１に短縮することができる。このように、本実施例によれば、第１の実施例と同様、ステップＳ５０１（Ｓ５０１−１〜Ｓ５０１−６）およびＳ５０２の一連の処理については複数の演算プロセッサで並列に実行されるので、演算処理時間を大幅に短縮することができる。
【００７２】
次いで、ステップＳ５０１−２において、中心線上において探索基準点を中心に所定の個数のビットが連続する区間を設定する処理する。例えば、図１２に示す例において、区間内に連続するビットの個数を例えば５個に設定したとき、探索基準点がビットＰ３であるとすると、ビットＰ１からビットＰ５までの区間が設定される。なお、区間内に設定するビットの個数を５個としたのはあくまでも一例であり、例えば１０個や２０個などといったような、その他の個数であってもよい。ステップＳ５０１−２の処理は、後述するステップＳ５０１−４の処理を介して、設定された全ての探索基準点に対して実行されることになる。
【００７３】
次いで、ステップＳ５０１−３において、区間内に存在する各法線の方向パラメータと、当該区間に対応する探索基準点の位置で最大となる重み付け係数と、を乗算する。上述のステップＳ２０６では、中心線が重ね合わされたビットマップ画像上において、中心線上の各ビットの位置における中心線の法線を算出しているので、ステップＳ５０１−２において設定された区間内にある中心線上の全てのビットの位置において、中心線に対する法線が算出されている。ステップＳ５０１−３では、中心線に対するこれら各法線について、その方向パラメータと、当該区間に対応する探索基準点の位置で最大となる重み付け係数とで乗算する。ステップＳ５０１−３の処理は、後述するステップＳ５０１−４の処理を介して、設定された全ての探索基準点に対して実行されることになる。
【００７４】
法線の方向パラメータは、角度もしくは方向ベクトルで表わすことができる。図１４は、本発明の第３の実施例によるデータ生成方法における方向パラメータを説明する図である。本実施例では、法線の方向パラメータについて、その基準となるべき方向（以下、「基準方向」と称する。）を、探索基準点に隣接する中心線上の２つのビットを結線した線分に設定する。例えば、図１４に示す例において、探索基準点をビットＰ３に設定したとき、法線の方向パラメータの基準方向は、探索基準点であるビットＰ３に隣接する中心線Ｍ上の２つのビットＰ２およびＰ４を結線した線分Ｔ３となる。上述のように区間内にある中心線上の全てのビットの位置において中心線に対する法線が算出されるが、図１４に示す例では、法線Ｒ３およびＲ４の各方向パラメータは、線分Ｔ３を基準方向として、角度もしくは方向ベクトルで表わされる。図１４において、探索基準点であるビットＰ３の位置における中心線Ｍの法線はＲ３であるが、ビットＰ４の位置における中心線Ｍの法線Ｒ４は、法線Ｒ３（もしくはこれに並行な線分Ｒ３’）に対して角度αだけずれていることになる。
【００７５】
ステップＳ５０１−３の処理で用いられる重み付け係数は、探索基準点で最大となり当該探索基準点から離れるに従って減少する値とする。図１５および１６は、本発明の第３の実施例によるデータ生成方法における重み付け係数を例示ずる図である。図１５および１５においては、区間内に連続するビットの個数を例えば５個に設定し、探索基準点をビット３に設定している。重み付け係数は、例えば、図１５に示すような探索基準点であるビットＰ３の位置で最大の確率密度となる正規分布に従う値であり、図１６に示すような探索基準点であるビットＰ３の位置で最大の確率密度となる三角状の関数に従う値である。すなわち、配線の輪郭線を抽出する場合、配線進行方向の位置ｘに対し、重み付け係数は関数ｆ（ｘ）で表わされる。このような重み付け係数を各探索基準点ごとに設定し、当該探索基準点に対応する区間内に存在する各法線の方向パラメータ（角度もしくは方向ベクトル）に乗算する。
【００７６】
ステップＳ５０１−４では、全ての探索基準点について、ステップＳ５０１−１〜Ｓ５０１−３の処理が実行されたか否かが判定される。処理が未だ実行されていない探索基準点がある場合はステップＳ５０１−１へ戻り、全ての探索基準点について処理が実行された場合はステップＳ５−１−５へ進む。なお、上述のように、ステップＳ５０１（Ｓ５０１−１〜Ｓ５０１−６）およびステップＳ５０１の一連処理は、複数の演算プロセッサで並列処理として実行されるので、ステップＳ５０１−４において判定される「全ての探索基準点」とは、１つの演算プロセッサに対し割り当てられた複数の探索基準点を意味する。
【００７７】
ステップＳ５０１−５では、ステップＳ５０１−３において重み付け係数が乗算された各法線の方向パラメータの総和を算出する。次いで、ステップＳ５０１−６において、ステップＳ５０１−５において算出された総和を、区間内に存在するビットの個数で除算することにより、加重平均された方向パラメータを算出する。図１７は、本発明の第３の実施例によるデータ生成方法における、加重平均された方向パラメータの算出について説明する図である。図１７に示す例では、区間内に連続するビットの個数を例えば５個に設定し、重み付け係数を探索基準点である位置で最大の確率密度となる正規分布に従う値とした場合について説明する。上述のようにＳ５０１−１〜Ｓ５０１−４の処理が実行されることにより、中心線上に位置するビット全てについて、必ず１回、探索基準点として採用され、各探索基準点ごとに、対応する重み付け係数が乗算された各法線の方向パラメータの一群が算出される。例えばビットＰ３の位置における法線についていえば、その方向パラメータは、探索基準点をビットＰ１に設定した場合における正規分布Ｄ１に従う重み付け係数、探索基準点をビットＰ２に設定した場合における正規分布Ｄ２に従う重み付け係数、探索基準点をビットＰ３設定した場合における正規分布Ｄ３に従う重み付け係数、探索基準点をビットＰ４に設定した場合における正規分布Ｄ４に従う重み付け係数、および探索基準点をビットＰ５に設定した場合における正規分布Ｄ５に従う重み付け係数が、ステップＳ５０１−３においてそれぞれ乗算され、次いでこれら５種類の乗算結果はステップＳ５０１−５において加算されて総和が算出されることから、ステップＳ５０１−６において、区間内に連続するビットの個数である「５」で、ステップＳ５０１−５において算出された総和を除算する。これにより、ビットＰ３について、加重平均された方向パラメータが算出される。このように、ステップＳ５０１−６では、ステップＳ５０１−５において算出された総和を、区間内に存在するビットの個数で除算する。図１７の例では区間内に存在するビットの個数を５個に設定したので「５」で除算したが、例えば、区間内に存在するビットの個数を１０個に設定すれば「１０」で除算し、区間内に存在するビットの個数を２０個に設定すれば「２０」で除算する。
【００７８】
このように、ステップＳ５０１−６において生成された加重平均された各法線の方向パラメータで規定された直線は、ステップＳ５０２において輪郭点を確定するため「探索線」として用いられる。ステップＳ５０２では、加重平均された各法線の方向パラメータで規定された直線である探索線それぞれについて、当該探索基準点から当該探索線上に沿って、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを、所望の図形の輪郭を構成する輪郭点として確定する。
【００７９】
図１８は、本発明の第３の実施例によるデータ生成方法における、輪郭点の確定について説明する図である。例えば、検査対象物が撮像されたビットマップ画像における輪郭線を抽出すべき図形が参照符号Ｂで示される実線で囲まれる領域である場合、図１８の一点鎖線で示される中心線Ｍが、図形Ｂに重ね合わされた場合を例にとると次の通りである。ビットＰ２およびＰ３の各位置における中心線Ｍの法線はそれぞれＲ２およびＲ３である。本実施例では、ステップＳ５０１（ステップＳ５０１−１〜Ｓ５０１−６）の法線の方向パラメータについての加重平均（重み付け平均）処理により、中心線ＭのビットＰ２の位置における法線Ｒ２はＲ２”に、中心線ＭのビットＰ３の位置における法線Ｒ３はＲ３”に、それぞれ直線の向きが変更される。中心線Ｍが急激に折れ曲がっている場合、中心線上のビットの当該位置における法線の向きはその近傍の法線の向きと比べて急激に変化したものとなるが、本実施例では、ステップＳ５０１（ステップＳ５０１−１〜Ｓ５０１−６）の法線の方向パラメータを加重平均するので、互いに隣接する探索線間でその方向が急激に変化することにはならない。
【００８０】
本実施例では、第１の実施例同様、検査対象物を配線が形成された基板とし、輪郭線を抽出すべき検査対象物上の図形を撮像画像中における基板上の配線する場合、ビットマップ画像上では、例えば基板は「黒」（上記「第２の色」に相当）、配線は「白」（上記「第１の色」に相当）といったように２値で表わされる。例えば、図１８に示すように、ビットＰ１、Ｐ２、Ｐ３およびＰ４から、それぞれ対応する探索線Ｒ１、Ｒ２”、 Ｒ３”およびＲ４の方向に向かって、隣接するビットを順次探索していき、中心線上に位置するビットの第１の色である「白」とは異なる第２の色である「黒」が出現するビットを見つけ出す。当該「黒」がはじめて出現したときのビットを輪郭点とする。
【００８１】
ステップＳ５０２において輪郭点が生成された後、図１１のステップＳ２０３へ進む。ステップＳ２０３では、仮想平面上において、対応する探索基準点の配列順に、ステップＳ５０２で生成された輪郭点とこの輪郭点に隣接する「白」のビットとの接点、を並べ替え、これら接点を結線する。上述のように、ステップＳ５０１（すなわちステップＳ５０１−１〜Ｓ５０１−６）およびステップＳ３０２の一連の処理は、複数の演算プロセッサで並列処理として実行されるので、生成された輪郭点全てを、このステップＳ２０３において、改めて探索基準点の配列順に並べ替える必要がある。
【００８２】
ステップＳ２０４では、ステップＳ２０３において接点間を結線して得られたラインを、輪郭線として確定し、この輪郭線に関するデータを出力する。なお、輪郭点として「白」のビットのみを抽出し、探索線と抽出された「白」のビットの円周とが交わる点の内、探索基準点から遠いほうの点同士を結んだもの、を輪郭線としても良い。あるいは、輪郭点として「黒」のビットのみを抽出し探索線と抽出された「黒」のビットの円周とが交わる点の内、探索基準点に近いほうの点同士を結んだもの、を輪郭線としても良い。出力された輪郭線に関するデータは、例えば、ディスプレイ装置の画面上に表示するために用いられてもよく、またあるいは、後述する第４の実施例として説明する画像検査方法に用いられてもよい。
【００８３】
本発明の第３の実施例においても、第１の実施例の場合と同様、ビットマップ画像にノイズが存在することによる輪郭線の誤認識を防ぐために、輪郭点の探索処理において以下のような補正処理を実行するのが好ましい。図１９は、本発明の第３の実施例における輪郭点の探索処理における補正処理を示すフローチャートである。本発明の第３の実施例における輪郭点の探索処理については、図１１〜１８を参照して説明したとおりであり、中心線が重ね合わされたビットマップ画像上において各探索基準点ごとに実行される。補正処理は、この探索処理における一連の処理の一部として実行される。
【００８４】
まず、ステップＳ６０１において、中心線が重ね合わされたビットマップ画像上において、ある探索基準点について、当該探索基準点から、探索線上において探索線に沿う方向に向けてビットの色を探索していく。そしてステップＳ６０２において、中心線上に位置するビットの第１の色である「白」とは異なる第２の色である「黒」を有するビットを検出するか否かを判定する。
【００８５】
ステップＳ６０２において第２の色である「黒」のビットを検出したと判定した場合は、当該検出した第２の色である「黒」のビットの位置座標に関する情報をメモリに保持し、ステップＳ６０３へ進む。ステップＳ６０２において第２の色である「黒」のビットを検出しなかった場合はステップＳ６０１へ戻り、第２の色である「黒」のビットを検出するまで、ステップＳ６０２およびＳ６０１の処理が繰り返される。
【００８６】
ステップＳ６０３では、当該検出した第２の色のビットの位置から、探索線上において探索線に沿う方向に向けてビットの色をさらに探索していく。そしてステップＳ６０４において、第１の色である「白」を有するビットを検出するか否かを判定する。
【００８７】
ステップＳ６０４において第１の色である「白」のビットを検出しないと判定した場合は、ステップＳ６０５へ進み、位置座標に関する情報についてメモリに保持していた第２の色である「黒」のビットを、輪郭点として確定し、これをメモリに保持する。
【００８８】
一方、ステップＳ６０４において第１の色である「白」のビットを検出したと判定した場合は、当該検出した第１の色である「白」のビットの位置座標に関する情報をメモリに保持し、ステップＳ６０６へ進む。ステップＳ６０６では、当該検出した第１の色である「白」のビットの位置から、探索線に沿う方向に向けてさらに探索し、探索線上において所定の探索方向に向かってビットの色を探索していく。そして、ステップＳ６０７において、第２の色である「黒」を有するビットを検出するか否かを判定する。
【００８９】
ステップＳ６０６において第２の色である「黒」のビットを検出したと判定した場合は、当該検出した第２の色である「黒」のビットの位置座標に関する情報をメモリに保持し、ステップＳ６０３へ戻る。ステップＳ６０３では、当該検出した第２の色である「黒」のビットの位置から、探索線に沿う方向に向けてさらに探索し、探索線上において所定の探索方向に向かってビットの色を探索していく。このステップＳ６０３以降は上述の一連の処理を再度実行する。
【００９０】
一方、ステップＳ６０６において第２の色である「黒」のビットを検出しないと判定した場合は、ステップＳ６０５へ進み、ステップＳ６０２において検出し位置座標に関する情報を保持していた第２の色である「黒」のビットを、輪郭点として確定し、これをメモリに保持する。
【００９１】
輪郭点の探索処理において、上述の補正処理を実行することにより、撮像したビットマップ画像上にノイズが存在していたとしても、輪郭線の誤認識を防ぐことができる。この補正処理の具体例については図８を参照して説明したとおりである。
【００９２】
このように、本発明の第３の実施例によれば、複数の探索基準点のうちのいくつかに演算処理装置を割り当ててマルチプロセッサ並列処理を実現することができるので、ビットマップ画像における図形の輪郭線に関するデータを高速に生成することが可能である。また、輪郭点の探索処理において補正処理を実行すれば、輪郭線の誤認識を防ぐことができる。
【００９３】
図２０は、本発明の第４の実施例による画像検査方法の動作フローを示すフローチャートである。本発明の第４の実施例による画像検査方法は、上述の第３の実施例によるデータ生成方法を用いて生成された図形の輪郭線に関するデータを用いて、検査対象物を検査するものである。本発明の第４の実施例によれば、データ生成処理および画像検査処理は、第３の実施例と同様、オフライン処理とオンライン処理の２つの処理に分けて、コンピュータなどの演算処理装置によって実行される。
【００９４】
図２０において、ステップＳ１０１、Ｓ２０１〜Ｓ２０４およびＳ２０６ならびに並列処理Ｓ５００内のステップＳ５０１（Ｓ５０１−１〜Ｓ５０１−６）およびＳ５０２における各処理は、図１１および１３を参照して説明した第３の実施例によるデータ生成方法におけるステップＳ１０１、Ｓ２０１〜Ｓ２０４およびＳ２０６ならびに並列処理Ｓ５００内のステップＳ５０１（Ｓ５０１−１〜Ｓ５０１−６）およびＳ５０２の処理と同じであるので、説明は省略する。
【００９５】
本実施例では、オンライン処理が実行される前すなわちオフライン処理の段階で、検査対象物を生成するのに用いられた設計データに対して、設計上の図形の輪郭線を、カメラによって撮像された検査対象物のビットマップ形式の画像データのオンライン処理と同様のアルゴリズムに従って、ステップＳ１０２およびＳ１０６〜ステップＳ１１０が実行される。同様のアルゴリズムを用いることによって、画像検査の正確性が確保される。なお、オフライン処理であるステップＳ１０１、１０２およびＳ１０６〜ステップＳ１１０は、輪郭線を抽出すべき図形が複雑であっても、当該図形に対して１回の処理を実行すればよいので、多くの時間を費やすことはない。また、ステップＳ１０１、１０２およびＳ１０６〜ステップＳ１１０は、コンピュータなどの演算処理装置で実行されるが、例えば、設計データを処理するＣＡＤシステム上の新規の機能として実現してもよい。
【００９６】
ステップＳ１０２では、設計データにおける設計上の図形において、中心線上に位置するビットの中から探索基準点を設定する。なお、オフライン処理におけるステップＳ１０２、Ｓ１０８、Ｓ１０９およびＳ１１０の処理に用いられる探索基準点については、オンライン処理におけるステップＳ５０１−１〜Ｓ５０１−４までの処理に用いられる探索基準点と同一のものである。
【００９７】
次いでステップＳ１０８において、設計上の図形を貫く設計中心線が重ね合わされた設計データ用ビットマップ画像上において、設計中心線上の各ビットの位置における設計中心線の設計法線を算出する。この設計法線の算出処理は、ステップＳ２０６における法線の算出の処理を同一のアルゴリズムに従う。
【００９８】
次いでステップＳ１０９において、設計法線の方向パラメータを、設計中心線上の各ビットについて設定される探索基準点で最大となり当該探索基準点から離れるに従って減少する重み付け係数を用いて、加重平均する。この加入平均処理は、ステップＳ５０１における加重平均処理を同一のアルゴリズムに従う。
【００９９】
次いでステップＳ１１０において、加重平均された設計法線の方向パラメータで規定された直線である設計探索線それぞれについて、当該探索基準点から当該設計探索線の方向に向かって、中心線上に位置するビットの第１の色とは異なる第２の色が出現するビットを探索し、検出したビットを、設計上の図形の輪郭を構成する設計輪郭点として確定する。この設計輪郭線の確定処理は、ステップＳ５０２における輪郭点の確定処理を同一のアルゴリズムに従う。
【０１００】
ステップＳ１０６では、仮想平面上において、対応する探索基準点の配列順に、ステップＳ１１０で確定された設計輪郭点とこの設計輪郭点に隣接する「白」のビットとの接点、を並べ替え、これら接点を結線する。このように、ステップＳ１０６の処理も、ステップＳ２０３の処理と同一のアルゴリズムに従っている。
【０１０１】
ステップＳ１０７では、ステップＳ１０６おいて輪郭点間を結線して得られたラインを、図形（すなわち配線）の設計輪郭線として確定し、この設計輪郭線に関するデータを出力する。このように、ステップＳ１０７の処理も、ステップＳ２０４の処理と同一のアルゴリズムに従っている。
【０１０２】
ステップＳ１０７により出力された設計データにおける設計上の図形についての設計輪郭線に関するデータと、ステップＳ２０４により出力された検査対象物の画像データにおける図形の輪郭線に関するデータと、を用いて、ステップＳ２０５における検査処理が実行される。
【０１０３】
ステップＳ２０５では、検査対象物の画像データにおける図形の輪郭線と設計上の図形についての設計輪郭線とを、同一の探索基準点ごとに照合して、検査対象物が設計データどおりに生成されたか否かを検査する。例えば、検査対象物が、配線が形成された基板であり、検査対象物上の輪郭線を抽出すべき図形が、撮像画像中における基板上の配線であるとすると、ステップＳ２０５では、同一の探索基準点において、検査対象物の画像データにおける図形の輪郭線で画定される配線の線幅と設計輪郭線で画定される配線の線幅と、が一致するか否かに基づき、検査対象物が設計データどおりに生成されたか否かを判定する。これら線幅が一致すると判定された場合、検査対象物が設計データどおりに生成されたということになり、線幅が一致しないと判定された場合、検査対象物が設計データどおりに生成されていないのでエラーとみなされる。この検査結果については、例えばディスプレイ装置の画面上に表示される。
【０１０４】
このように、本発明の第４の実施例によれば、輪郭線に関するデータの生成については複数の探索基準点のうちのいくつかに演算処理装置を割り当ててマルチプロセッサ並列処理を実現して演算処理時間を短縮するので、検査対象物を撮像した画像データに基づいて画像検査を行う画像検査方法についても、高速化を図ることができる。例えば、検査対象物が、配線が形成された基板であり、検査対象物上の図形が、撮像画像中における基板上の配線である場合、画像検査処理では、図形の輪郭線で画定される配線の線幅と設計輪郭線で画定される配線の線幅とが一致するか否かに基づき、検査対象物である配線が形成された基板が、設計データどおりに生成されたか否かを判定する。
【０１０５】
続いて、第１の実施例と第３の実施例の対比について説明する。図２１は、本発明の第１の実施例による、配線幅方向に凸部および凹部がある配線の輪郭線の抽出について説明する図である。また、図２２および２３は、本発明の第３の実施例による、配線幅方向に凸部および凹部がある配線の輪郭線の抽出について説明する図である。図２１に示すように、配線の幅方向に凹部がある場合については、本発明の第１の実施例および第３の実施例ともに配線の輪郭線を抽出することはできる。しかしながら、本発明の第１実施例では、複数の方向に探索方向を設けてこれに沿って輪郭候補点を探索し、最短距離を構成する輪郭候補点を輪郭点に確定して輪郭線を抽出するので、配線の凸部の配線進行方向（長手方向）の幅が特に細い場合は、探索方向の選ばれ方によっては図２１に示すように正確に輪郭線を抽出することができないことがある。一方、第３の実施例によれば、中心線の法線を加重平均（重み付け平均）することにより求められた探索線を輪郭点の探索に用いて輪郭線を確定するので、配線の凸部の配線進行方向（長手方向）の幅が細くても、図２２に示すように正確に輪郭線を抽出することができる。また、図２３に示すように、配線幅方向に凸部および凹部がある配線の輪郭線の抽出する場合において中心線Ｍのビットが配線幅方向にずれて位置していても正確に輪郭線を抽出することができる。
【０１０６】
上述した第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法における各ステップは、コンピュータなどの演算処理装置が実行することができるコンピュータプログラムの形式で実現される。図２４は、第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法に係るコンピュータプログラムが動作するコンピュータの構成を示すブロック図である。
【０１０７】
上記コンピュータプログラムは、図２４に示すように、記憶媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等の外部記憶媒体）１０に格納されており、例えば、次に説明するような構成によるコンピュータにインストールされて第１の実施例によるデータ生成方法もしくは第２の実施例による画像検査方法が動作する。
【０１０８】
ＣＰＵ１１は、コンピュータ全体を制御する。このＣＰＵ１１に、バス１２を介してＲＯＭ１３、ＲＡＭ１４、ＨＤ（ハードディスク装置）１５、マウスやキーボード等の入力装置１６、外部記憶媒体ドライブ装置１７およびＬＣＤ、ＣＲＴ、プラズマディスプレイ、有機ＥＬ等のディスプレイ装置１８が接続されている。なお、ＣＰＵ１１の制御プログラムはＲＯＭ１３に格納されている。
【０１０９】
第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法に係るコンピュータプログラムは、記憶媒体１０からＨＤ１５にインストールされる。また、ＲＡＭ１４には、各種演算処理をＣＰＵ１１が実行する際の作業領域が確保されている。また、ＨＤ１５には、入力データ、最終データ、さらにＯＳ（オペレーティングシステム）等が予め記憶される。
【０１１０】
まず、コンピュータの電源を投入すると、ＣＰＵ１１がＲＯＭ１０から制御プログラムを読み出し、さらにＨＤ１５からＯＳを読み込み、このＯＳを起動させる。これによりコンピュータは、第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法に係るコンピュータプログラムを記憶媒体１０からインストール可能な状態となる。
【０１１１】
次に、記憶媒体１０を外部記憶媒体ドライブ装置１７に装着し、入力装置１６から制御コマンドをＣＰＵ１１に入力し、記憶媒体１０に格納された上記コンピュータプログラムを読み取ってＨＤ１５等に記憶する。つまり上記コンピュータプログラムがコンピュータにインストールされる。
【０１１２】
その後は、上記コンピュータプログラムを起動させると、コンピュータは第１および第３の実施例によるデータ生成方法ならびに第２および第４の実施例による画像検査方法における各処理を実行する。処理の結果得られた「輪郭線に関するデータ」もしくは「検査対象物を撮像した画像データについてした画像検査の結果」は、例えば、ＨＤ１５に記憶しておいて後日利用できるようにしたり、あるいは、処理結果をディスプレイ装置１８に視覚的に表示するのに用いてもよい。
【０１１３】
なお、図２４のコンピュータでは、記憶媒体１０に記憶されたコンピュータプログラムをＨＤ１５にインストールするようにしたが、これに限らず、ＬＡＮ等の情報伝送媒体を介して、コンピュータにインストールされてもよいし、コンピュータに内蔵のＨＤ１５に予めインストールされておいてもよい。
【産業上の利用可能性】
【０１１４】
本発明は、検査対象物をカメラにより撮像して得られたビットマップ画像中の所望の図形の輪郭線を抽出する技術、および検査対象物をカメラにより撮像して得られたビットマップ画像を用いて検査対象物を検査する技術に利用することができる。検査対象物としては、配線が形成された基板などがある。
【符号の説明】
【０１１５】
１０    記録媒体
１１    ＣＰＵ
１２    バス
１３    ＲＯＭ
１４    ＲＡＭ
１５    ハードディスク装置
１６    入力装置
１７    外部記憶媒体ドライブ装置
１８    ディスプレイ装置
【図１】
0005566257.tif 000002
【図２】
0005566257.tif 000003
【図３】
0005566257.tif 000004
【図４】
0005566257.tif 000005
【図５】
0005566257.tif 000006
【図６】
0005566257.tif 000007
【図７】
0005566257.tif 000008
【図８】
0005566257.tif 000009
【図９】
0005566257.tif 000010
【図１０】
0005566257.tif 000011
【図１１】
0005566257.tif 000012
【図１２】
0005566257.tif 000013
【図１３】
0005566257.tif 000014
【図１４】
0005566257.tif 000015
【図１５】
0005566257.tif 000016
【図１６】
0005566257.tif 000017
【図１７】
0005566257.tif 000018
【図１８】
0005566257.tif 000019
【図１９】
0005566257.tif 000020
【図２０】
0005566257.tif 000021
【図２１】
0005566257.tif 000022
【図２２】
0005566257.tif 000023
【図２３】
0005566257.tif 000024
【図２４】
0005566257.tif 000025
【図２５】
0005566257.tif 000026
【図２６】
0005566257.tif 000027