(57)【要約】【課題】  迅速にパターン欠陥検出装置等の検出装置で用いられるマスターパターンを作成する。【解決手段】  作製パターンでを撮像し２値化し（２００、２０２）、１画素毎に２値化データを読み取ってランレングスコードを作製する（２０４）。全画素についてランレングス処理が終了すると（２０６）、ランレングスコードを記憶する（２０８）。所定数の処理が終了したのち（２１０）、１つの作製パターンを仮マスターパターンとして設定し（２１２）、異なる作製パターンをマッチング用として設定し（２１４）、仮マスターパターンとマッチング用作製パターンとの間の相関関係を求めるマッチング処理する（２１６）。全ての相関関係を求めた後に（２１８）、作製パターン間で相関関係が高いランレングスコードを設定することによりマスターパターンを生成する（２２０）。【選択図】        図３
2006126946.tif 000002
【特許請求の範囲】
【請求項１】
縦横複数の画素に分割して物体を撮像する撮像手段と、
撮像画像を画素毎に、該画素の濃度に基づいて予め定めた数値を該画素の画素値として設定する画素値設定手段と、
各画素の画素値が設定された前記撮像画像を順次１画素の画素値を読み取って所定方向に同一の画素値が連続する長さを、該同一の画素値が連続する画素数で表したランレングスコードを生成する生成手段と、
前記物体の複数の各々について前記生成手段で生成されたランレングスコードに基づいて、前記物体の複数の各々の間におけるランレングスコードの位置及び長さの相関関係を求める相関関係演算手段と、
求めた相関関係が所定値以上のランレングスコードをマスターパターンのデータとして設定するマスター設定手段と、
を備えたマスターパターン作成装置。
【請求項２】
前記画素値設定手段は、画素の濃度を予め定めた所定濃度未満を白または該所定濃度以上を黒の何れかに分類する２値化によって画素毎に白データを表す画素値または黒データを表す画素値を設定することを特徴とする請求項１に記載のマスターパターン作成装置。
【請求項３】
前記相関関係演算手段は、前記所定方向のライン毎の同一画素値の総和の特性をＸ相関として求めると共に、求めたＸ相関の一致度が大きいラインについて、前記複数の物体の間におけるランレングスコードの位置及び長さの相関関係を求めることを特徴とする請求項１または２に記載のマスターパターン作成装置。
【請求項４】
前記相関関係演算手段は、前記Ｘ相関の一致度が大きいラインについて、前記所定方向のライン毎の同一画素値の総和の特性をＹ相関として求めると共に、求めたＹ相関の一致度が大きいランレングスコードの各々の位置及び長さの相関関係を求めることを特徴とする請求項３に記載のマスターパターン作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスターパターン作成装置にかかり、特に、画像処理を用いて基板等のパターンの欠陥を検出するパターン欠陥検出装置等の検出装置で用いられるマスターパターンを作成するマスターパターン作成装置に関する。
【背景技術】
【０００２】
ＩＣ等の電気素子を積載するための基板等には各電気素子の端子間や他の機器とを電気的に接続するためにパターンが形成されている。このようなパターンを有する基板等は同一のものを多数作製するが、製造条件や環境条件によって同一のものが作製されないことがある。例えば、所定幅でかつ所定長さのパターンを作製した場合に、パターンの一部が欠けたりパターンの一部が膨らんだりした欠陥を有するパターンが作製されることがある。
【０００３】
このため、従来は基準とするマスターパターンを予め用意してそのマスターパターンと作製した作製パターンとを比較することによって、一致しているか否かを判定していた。この比較は、画像処理を用いて、マスターパターンを撮像した画像データと作製パターンを撮像した画像データとを比較するマッチング法が知られている。このマッチング法は、マスターパターンを撮像したときの各画素と作製パターンを撮像したときの各画素とを画素毎に２値化した画像データを比較してパターン同士が一致しているか否かを判定する。また、マスターパターンをテンプレートとして一つの作製パターンの中の複数のパターンを比較することもできる。このように比較することによって、作製パターンの欠陥を検出することができる。このような技術として、パターン欠陥検出装置が知られている（特許文献１参照）。
【０００４】
ところが、欠陥を検出するために用いるマスターパターンの作成は、検出の基準となるため、検出精度が高いものを予め用意しなければならなかった。このため、設計図や製作図等の図面からマスターパターンを作成し、用いていた。
【特許文献１】特開平１０−８３４５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のように、マスターパターンを図面から作成する場合には、製造上の誤差を考慮しなければならず、煩雑な作業を必要としていた。また、マスターパターンの画像データは全ての画素について予め記憶しなければならないため、マスターパターンの作成に膨大な処理を必要としていた。
【０００６】
本発明は、上記事実を考慮して、迅速にパターン欠陥検出装置等の検出装置で用いられるマスターパターンを作成することができるマスターパターン作成装置を得ることが目的である。
【課題を解決するための手段】
【０００７】
上記目的を達成するために請求項１に記載の発明のマスターパターン作成装置は、縦横複数の画素に分割して物体を撮像する撮像手段と、撮像画像を画素毎に、該画素の濃度に基づいて予め定めた数値を該画素の画素値として設定する画素値設定手段と、各画素の画素値が設定された前記撮像画像を順次１画素の画素値を読み取って所定方向に同一の画素値が連続する長さを、該同一の画素値が連続する画素数で表したランレングスコードを生成する生成手段と、前記物体の複数の各々について前記生成手段で生成されたランレングスコードに基づいて、前記物体の複数の各々の間におけるランレングスコードの位置及び長さの相関関係を求める相関関係演算手段と、求めた相関関係が所定値以上のランレングスコードをマスターパターンのデータとして設定するマスター設定手段と、を備えている。
【０００８】
請求項２の発明は、請求項１に記載のマスターパターン作成装置において、前記画素値設定手段は、画素の濃度を予め定めた所定濃度未満を白または該所定濃度以上を黒の何れかに分類する２値化によって画素毎に白データを表す画素値または黒データを表す画素値を設定することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載のマスターパターン作成装置において、前記相関関係演算手段は、前記所定方向のライン毎の同一画素値の総和の特性をＸ相関として求めると共に、求めたＸ相関の一致度が大きいラインについて、前記複数の物体の間におけるランレングスコードの位置及び長さの相関関係を求めることを特徴とする。
【００１０】
請求項４に記載の発明は、請求項３に記載のマスターパターン作成装置において、前記相関関係演算手段は、前記Ｘ相関の一致度が大きいラインについて、前記所定方向のライン毎の同一画素値の総和の特性をＹ相関として求めると共に、求めたＹ相関の一致度が大きいランレングスコードの各々の位置及び長さの相関関係を求めることを特徴とする。
【００１１】
本発明では、撮像手段によって物体が縦横複数の画素に分割されて撮像される。この撮像画像は画素値設定手段によって画素毎に画素値が設定される。撮像画像を画素の濃度は、白色等の最低濃度から黒色等の最高濃度までの連続的な濃度範囲内に存在する。そこで、最低濃度から黒色等の最高濃度までの連続的な濃度範囲を複数に分類して分類された濃度範囲の各々に予め定めた数値を対応させる。従って、各画素は、画素の濃度に基づいて予め定めた数値が該画素の画素値として設定される。これによって、撮像画像は画素毎に画素値による多値化されたデータで表される。
【００１２】
この画素値設定手段は、請求項２に記載したように、画素の濃度を予め定めた所定濃度未満を白または該所定濃度以上を黒の何れかに分類する２値化によって画素毎に白データを表す画素値または黒データを表す画素値を設定する２値化手段で構成することができる。この２値化手段によって、画素のデータは白データまたは黒データに２値化できる。撮像手段によって撮像された物体は多値化され、生成手段によって、順次１画素づつデータが読み取られ、所定方向に同一の画素値が連続する長さを、該同一の画素値が連続する画素数で表したランレングスコードが生成される。
【００１３】
撮像手段では、複数の物体が撮像され、各々の物体は、生成手段によりランレングスコードが生成される。例えば、２値化された物体の画像は所定方向に白データまたは黒データが連続する画素数で表したランレングスコードとして生成される。従って、撮像手段によって撮像される物体の画像の所定方向の長さは、所定方向に同一の画素値が連続する画素数で表される。これら複数の物体の各々のランレングスコードに基づいて、相関関係演算手段によって、複数の各物体の間におけるランレングスコードの位置及び長さの相関関係が求められる。すなわち、複数の物体の各々のランレングスコードの間で相関関係が求められる。
【００１４】
上記の相関関係は、ランレングスコードの位置及び長さに対する一致度で表すことができ、ランレングスコードの位置及び長さが一致する、すなわち画像として重ねたときに重複する領域が大きくなる程、大きくなる値となる。求められた相関関係が所定値以上のランレングスコードは、マスターパターンのデータとしてマスター設定手段により設定される。略同一であることが望まれる複数の物体について、そのランレングスコードの位置及び長さの相関関係が高い（相関関係が所定値以上）ということは、複数の物体の間で、標準的なランレングスコードであるということを表している。従って、相関関係が高いランレングスコードをマスターパターンのデータとすれば、複数の物体そのものから、煩雑な作業や膨大な処理を必要とすることなく、マスタパターンを作成することができる。
【００１５】
パターン欠陥検出装置等の検出装置では、作成したマスターパターンのランレングスコードを用いて、撮像した物体の画像から生成されたランレングスコードを比較することができる。その比較結果に基づいて、すなわち、比較したランレングスコードが異なる場合には、同一の画素値連続する画素の数、すなわち長さが異なることになり、長さが短いまたは長い物体を撮像したことに相当し、不良であると判定できる。
【００１６】
複数の物体の各々の間で相関関係を求めるとき、撮像時の位置ずれや製造時の誤差等の位置状態により、同一のパターンであっても各々の物体間で位置ずれが生じていることがある。また、撮像時の誤差等で僅かな拡大縮小が生じることもある。このため、請求項３にも記載したように、前記相関関係演算手段が、所定方向のライン毎の同一画素値の総和の特性をＸ相関として求めると共に、求めたＸ相関の一致度が大きいラインについて、複数の物体の間におけるランレングスコードの位置及び長さの相関関係を求めることができる。このようにすれば、所定方向のライン毎に相関関係を求めることができ、位置ずれや拡大縮小時のずれを解消して相関関係を、求めることができる。
【００１７】
また、所定方向のライン毎に相関関係を求めることができた場合であっても、そのライン上の画素が連続する方向、すなわち所定方向に位置ずれがあった場合には、これを解消できない。このため、請求項４に記載したように、相関関係演算手段が、Ｘ相関の一致度が大きいラインについて、所定方向のライン毎の同一画素値の総和の特性をＹ相関として求めると共に、求めたＹ相関の一致度が大きいランレングスコードの各々の位置及び長さの相関関係をさらに求めることが好ましい。このようにすれば、所定方向のライン毎に相関関係を求めることができると共に、そのライン上でのずれを解消することにより、精度よく位置ずれや拡大縮小時のずれを解消して相関関係を求めることができる。
【発明の効果】
【００１８】
以上説明したように本発明によれば、生成手段により所定方向に連続する同一画素値の画素数で表したランレングスコードが複数の物体の各々について生成され、相関関係演算手段により複数の各物体の間におけるランレングスコードの位置及び長さの相関関係が求められ、相関関係が所定値以上のランレングスコードがマスターパターンのデータとしてマスター設定手段により設定されるので、複数の物体そのものから、煩雑な作業や膨大な処理を必要とすることなく、マスタパターンを作成することができる、という効果がある。
【００１９】
また、相関関係演算手段が、所定方向のライン毎の同一画素値の総和の特性をＸ相関として求めると共に、求めたＸ相関の一致度が大きいラインについて、複数の物体の間におけるランレングスコードの位置及び長さの相関関係を求めることにより、所定方向のライン毎に相関関係を求めることができ、位置ずれや拡大縮小時のずれを解消して相関関係を求めることができる、という効果がある。
【００２０】
さらに、相関関係演算手段が、Ｘ相関の一致度が大きいラインについて、所定方向のライン毎の同一画素値の総和の特性をＹ相関として求めると共に、求めたＹ相関の一致度が大きいランレングスコードの各々の位置及び長さの相関関係をさらに求めることにより、所定方向のライン毎に相関関係を求めることができると共に、そのライン上でのずれを解消することにより、精度よく位置ずれや拡大縮小時のずれを解消して相関関係を求めることができる、という効果がある。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。本実施の形態はＩＣ基板上に作製されたパターン（作製パターン）の欠陥を検出する欠陥検出装置に本発明を適用したものである。
【００２２】
図１に示すように、本実施の形態の欠陥検出装置１０は、ＩＣ基板を撮像するためのカメラ１２、カメラ１２からの出力信号であるアナログ信号をデジタル信号に変換するＡ／Ｄ変換装置１４、ＩＣ基板をカメラ１２対してＩＣ基板の面に沿う方向に移動させるためのモータ１６、ドライバ１８、少なくとも画像を表示することが可能なモニタ２０、及び演算装置２２から構成されている。演算装置２０は、ＣＰＵ２４，ＲＡＭ２６，ＲＯＭ２８及び入出力ポート（Ｉ／Ｏ）３０からなるマイクロコンピュータで構成され、各々はコマンドやデータの授受が可能なようにバス３２によって接続されている。なお、ＲＯＭ２８には、後述する処理ルーチンが記憶されている。入出力ポート３０には、Ａ／Ｄ変換装置１４を介してカメラ１２が接続されると共に、ドライバ１８を介してモータ１６が接続されている。また、入出力ポート３０にはモニタ２０が接続されると共に、データやコマンド等を入力するためのキーボード３４が接続されている。
【００２３】
なお、Ａ／Ｄ変換装置１４は、カメラ１２から出力されたアナログ信号を２値のデジタル信号に変換するためのものであるが、カメラ１２から出力されたアナログ信号を２値化したデジタル信号（２値化データ）を出力するようにしてもよい。すなわち、カメラ１２からの出力信号であるアナログ信号を２値のデジタル信号に変換するための２値化装置として構成してもよい。
【００２４】
次に、本実施の形態の作用を説明する。
【００２５】
演算装置２２では電源が投入されると図２の処理ルーチンが実行され、ステップ１００へ進む。
【００２６】
図２のステップ１００では、作製パターン設置処理が実行される。この作製パターン設置処理は、カメラ１２に対して複数の作製パターンをサンプルとして撮像する位置を定めるための処理である。すなわち、作製パターンが有する形状（長さや幅、角度や位置のデータ）を得るために、少なくとも各作製パターンの全てをカメラ１２で撮像しなければならない。従って、その各作製パターンを撮像できるカメラ１２と作製パターンの相対位置（カメラ１２の倍率も含む）を設定しかつ記憶する。これにより、複数の作製パターンの各々が有する形状（長さや幅、角度や位置のデータ）を計測する場合に、作製パターンが形成されたＩＣ基板の位置の設定が容易となる。
【００２７】
例えば、図８（１）に示すように、パターン４０を撮像した画像５０を得る設置位置を記憶する。この設置位置はモータ１６にエンコーダを取り付けて、エンコーダによって表されたデータを位置データとして記憶すればよい。  なお、本実施の形態では、全ての作製パターンのうち複数（予め定めた数）の作製パターンをサンプルとして設定しているが、全ての作製パターンをサンプルとして設定してもよい。
【００２８】
次のステップ１０２では、上記設置位置が記憶されたサンプルを用いて、作製パターンの欠陥を検出するための基準となるマスターパターンの作製処理が実行される。このマスター作製処理は、後述するように、作製パターンを用いて統計的に縦横についてのランレングスコードによって生成されたマスターデータにより構成されるマスターパターンを作製する（詳細は後述、図３参照）。
【００２９】
次のステップ１０４では、作製パターン設置処理が実行される。この作製パターン設置処理は、欠陥を検出する作製パターンを撮像する位置に定めるための処理である。次のステップ１０６では、作製パターンに関する縦横についてのランレングスコードを生成すると共に、生成されたデータとマスターデータとを比較することによって作製パターンの欠陥を検出する（詳細は後述、図７参照）。
【００３０】
次のステップ１０８では、欠陥検出を行う作製パターンが残存するか否かを判定し、残存するときはステップ１０８で肯定判定されステップ１０４へ戻って再度上記処理を繰り返し、欠陥を検出する。一方、全ての作製パターンについて欠陥検出が終了したときはステップ１０８で否定判定され、本ルーチンを終了する。このステップ１０８の判定は予め作製パターンの個数によって定められてもよく、キーボード３４で入力するようにしてもよい。
【００３１】
次に、図２のステップ１０２の詳細を説明する。図２のステップ１０２において、マスター作製処理が実行されると、図３のデータ作製ルーチンが実行され、ステップ２００へ進む。
【００３２】
図３のステップ２００では、カメラ１２から出力された信号をＡ／Ｄ変換装置１４が変換したデジタル信号を読み取ることによって作製パターンであるサンプル４０を撮像してサンプル画像５０を得る（図８（１）参照）。次のステップ２０２ではサンプル画像５０を２値化する。次のステップ２０４では、１画素毎に２値化データを読み取ってランレングスコードを作製するランレングス処理を行う（詳細は後述、図４参照）。次のステップ２０６ではサンプル画像５０の全画素についてランレングス処理が終了したか否かを判断し、サンプル画像５０の全画素についてランレングス処理が終了したときにランレングス処理で得られたランレングスコードをサンプルデータｉ（ｉ＝１，２，・・・）として次のステップ２０８において記憶して、次のステップ２１０において所定数のサンプルについての上記処理が終了したか否かを判断する。否定判断の場合は、ステップ２００へ戻り、次のサンプルを設定し、上記処理を繰り返す。
【００３３】
一方、ステップ２１０で肯定判断の場合には、ステップ２１２へ進む。このステップ２１２では、上記のようにしてランレングス処理が施された所定数のサンプルのうち１つのサンプルを仮マスターパターンとして設定する。すなわち、作製パターンのサンプルの１つを仮マスターパターンとして設定する。
【００３４】
次に、ステップ２１４において、仮マスターパターンとして設定したサンプルと異なるサンプルをマッチング用のサンプルｊ（ｊ＝１，２，・・・，ｊ≠ｉ）として設定し、次のステップ２１６においてマッチング処理を行う。このマッチング処理は、詳細は後述するが、仮マスターパターンとして設定したサンプルと、マッチング用のサンプルｊとの間の相関関係を求める処理である（図５参照）。
【００３５】
次のステップ２１８では、相関関係を求めるマッチング処理が所定数のサンプル全てについて終了したか否かを判断し、未だサンプルが残存するときは否定され、ステップ２１４へ戻る。一方、全てのサンプルについてマッチング処理が終了した場合にはステップ２２０へ進み、マスターパターンが生成される。マスターパターンは、所定数のサンプルの間で相関関係が高いランレングスコードを設定することにより生成される。このステップ２２０のマスター作製処理は、マッチング処理の説明の後に詳細を説明する。
【００３６】
なお、上記サンプル画像５０は、階調画像としてモニタ２０に表示してもよく、２値化画像として表示するようにしてもよい。
【００３７】
次に、図３のステップ２０４の詳細を説明する。図３のステップ２０４において、ランレングス処理が実行されると、図４のランレングス処理ルーチンが実行される。
【００３８】
ランレングス処理を説明するにあたり、本実施の形態におけるランレングスコードの定義について説明する。
【００３９】
図９に示すように、サンプル画像５０の１隅付近（図８（１）の左上隅付近）には、黒データから構成されるパターン４０を構成する部分パターン６０の先端部分が位置している。このサンプル画像５０は一方向（水平方向、図９では横方向）に画素数Ｈ0 、一方向と交差する方向（垂直方向、図９では縦方向）に画素数Ｖ0 からなる画像で構成される。なお、以下の説明では、水平方向の位置を画素の位置ｉ（１≦ｉ≦Ｈ0 ）で表し、垂直方向の位置を画素の位置ｊ（１≦ｊ≦Ｖ0 ）で表すと共に、画像上の画素の位置を（ｉ，ｊ）で表す。
【００４０】
サンプル画像５０は２値化されたデータであるため、各画素データは白データまたは黒データである。本実施の形態では、各画素データである白データまたは黒データが連続する画素数をランレングスコードとする。例えば、図９の例で垂直方向に８番目の画素（ｊ＝８）を水平方向に連続した領域６２のデータは、水平方向に８番目の画素（ｉ＝８）まで白データが連続し、９番目の画素から１２番目の画素まで黒データが連続し、１３番目以降は白データとなる。従って、この領域６２のデータは、白データまたは黒データの連続する画素の個数で、「８，５，・・・」と表すことができる。これによって、白データを「０」黒データを「１」として、領域６２のデータは、「０：８，１：５，０：ｎ・・・」と表すことができ、白データまたは黒データの連続する１群の画素について「ｋ：ｎ」（ｋは０または１、ｎは個数）で圧縮表現できる。この水平方向に関する画素データの連続は、水平方向（図９の矢印Ｓ方向）に順次読みだした後に垂直方向に順次（所謂、走査線毎に）読みだすようにすれば、（１，１）の位置の画素から（Ｈ0 ，Ｖ0 ）の位置までの画素により、１群の画素についての「ｋ：ｎ」で表したランレングスコードで水平方向に関して１画像を表すことができる。このデータを水平ランレングスコードＤH とする。
【００４１】
水平方向と同様に、図９の例で水平方向に９番目の画素（ｉ＝９）を垂直方向に連続した領域６４のデータは、垂直方向に６番目の画素（ｉ＝６）まで白データが連続し、７番目の画素以降は黒データとなる。従って、この領域６４のデータは、白データまたは黒データの連続する画素の個数で、「６，・・・」と表すことができる。これによって、領域６４のデータは、「０：６，１：ｍ，・・・」と表すことができ、白データまたは黒データの連続する１群の画素について「ｇ：ｍ」（ｇは０または１、ｍは個数）で圧縮表現できる。なお、垂直方向には、読みだす画素の位置を特定しなければならないため、水平方向の画素の位置ｉを付加する必要がある。このため、本実施の形態では、領域６４のデータは、最初に水平方向の画素の位置ｉを付加し、「９，０：６，１：ｍ，・・・」と表す。すなわち、縦方向に１画素づつ切り出した領域毎にランレングスコードを生成し、水平方向の画素の位置ｉを付加したデータを垂直ランレングスコードＤV とする。
【００４２】
このように、本実施の形態では、白データまたは黒データが連続する画素数をデータとする水平ランレングスコード及び垂直ランレングスコードによりランレングスコードを構成する。
【００４３】
なお、以下の説明では、（ｉ，ｊ）＝（１，１）の位置の画素から水平方向（図９の矢印Ｓ方向）に順次読みだした後に垂直方向（図９の矢印ｔ方向）に順次（所謂、走査線毎に）、（Ｈ0 ，Ｖ0 ）の位置の画素までの画素データを順次読みだすものとする。
【００４４】
まず、図４のステップ１２０では、本ルーチンが最初に実行された場合か否かを判断し、最初に実行された場合は次のステップ１２２で初期化処理を行う。すなわち、水平方向の画素の位置ｉ、及び垂直方向の位置を画素の位置ｊを「１」に設定し、白データまたは黒データが水平方向に連続する画素群の個数ｎ、及び垂直方向に連続する画素群の個数ｍを「１」に設定する。
【００４５】
次のステップ１２４では、１画素データを読み取り、この読み取った画素データが水平方向について前回の画素データ（白データまたは黒データ）と一致するか否かを次のステップ１２６で判断し、一致の場合は肯定判断されステップ１３２へ進む。不一致の場合はステップ１２６で否定判断され、ステップ１２８において前回までの水平ランレングスコードＤH （ｎ）を記憶したのち、ステップ１３０において水平方向に連続する画素群の個数ｎをインクリメントすると共に水平ランレングスコードＤH （ｎ）をリセットする。
【００４６】
次のステップ１３２では、ステップ１２４で読み取った画素データが垂直方向について前回の画素データ（白データまたは黒データ）と一致するか否かを判断し、一致の場合は肯定判断されステップ１３２へ進む。不一致の場合はステップ１３２で否定判断され、ステップ１３４において前回までの垂直ランレングスコードＤV （ｉ，ｍ）を記憶したのち、ステップ１３６において垂直方向に連続する画素群の個数ｍをインクリメントすると共に垂直ランレングスコードＤV （ｉ，ｍ）をリセットする。
【００４７】
次のステップ１３８では、水平ランレングスコードＤH （ｎ）、及び垂直ランレングスコードＤV （ｉ，ｍ）をインクリメントする。これによって、水平ランレングスコードＤH （ｎ）、及び垂直ランレングスコードＤV （ｉ，ｍ）の各々は白データまたは黒データが連続する個数を表すデータとなる。
【００４８】
次のステップ１４０では、ｉ＝Ｈ0 か否かを判断することによって読みだした画素数が水平画素数に到達したか否かを判断し、肯定判断の場合には、次のステップ１４４において水平方向の画素の位置ｉをリセット（ｉ＝１）すると共に垂直方向の位置を画素の位置ｊをインクリメントする。一方、ステップ１４０で否定判断の場合には、まだ水平方向に画素が残存するため、水平方向の画素の位置ｉをインクリメントする。
【００４９】
次のステップ１４６では、ｊ＜Ｖ0 か否かを判断することによって読みだした画素数が垂直画素数未満か否かを判断し、肯定判断の場合には、次回の処理のため、次のステップ１４８において現在のデータを記憶し本ルーチンを終了する。一方、ステップ１４６で否定判断の場合には、垂直方向について全画素の処理が終了したため、全画素について処理が終了したことを表す終了フラグをセットして本ルーチンを終了する。
【００５０】
以上のようにして、１画素づつ読みだして水平ランレングスコード及び垂直ランレングスコードを生成する。
【００５１】
次に、図３のステップ２１６の詳細を説明する。図３のステップ２１６において、マッチング処理が実行されると、図５のマッチング処理ルーチンが実行される。まずステップ２３０では、仮マスターパターンとマッチング用のサンプルｊの各々の所定方向（図１０の矢印Ａ方向）のライン毎の相関関係を表すＸ相関を求める。なお、本実施の形態では、ラインは、カメラ１２の走査線に相当する。２次元ＣＣＤセンサやラインＣＣＤセンサをカメラ１２として用いる場合には、画素を構成する最小セル（素子）が一方に連続する方向に並べられたセル群を対応させることができる。このラインＣＣＤセンサを用いるときには２次元画像を得るため、ラインＣＣＤセンサの素子が連続する方向と交差する方向にパターン及びカメラを移動させながら撮像させる必要がある。上記のＸ相関は、ライン内に含まれる黒に対応する画素の総数を各ライン毎に求め、所定方向と交差する方向（図１０の矢印Ａと交差する方向）の特性を表すものである。
【００５２】
なお、このＸ相関は、画素毎の画素値を用いて求めれもよく、またランレングスを用いてもよい。ランレングスコードを用いる場合には、そのままランレングスコードを用いてもよく、ランレングスコードを画素値に変換してもよい。
【００５３】
図１０には、略一致するパターンが僅かにずれた画像（サンプル画像５０、５２）の各々を示した。図１０（１）には、仮マスターパターンに設定したサンプル画像５０上のラインを概念イメージとして示し、図１０（１）の紙面右方に、Ｘ相関によって求めた特性７０を示した。また、図１０（２）には、マッチング用のサンプル画像５２上のラインを概念イメージとして示し、図１０（２）の紙面右方に、Ｘ相関によって求めた特性７２を示した。図１０（１）、（２）の各々のＸ相関の特性７０、７２から理解されるように、各特性は略一致し、図１０の矢印Ａと交差する方向にずれた関係にある。
【００５４】
図１１には、サンプル画像５０と、サンプル画像５０に略一致するパターンが僅かに縮小したマッチング用のサンプル画像５４とを示した。図１１（２）の紙面右方のＸ相関の特性７４から、各特性は略相似関係にある事が理解される。これにより、ラインに沿う方向と交差する方向にずれたラインが対応される。
【００５５】
次のステップ２３２では、仮マスターパターンとマッチング用のサンプルｊの各々の所定方向と交差する方向（図１０の矢印Ａ方向と交差する方向）の相関関係を表すＹ相関を求める。このＹ相関は、上記ラインと交差する方向の黒に対応する画素の総数を所定方向について各々求め、所定方向（図１０の矢印Ａ方向）の特性を表すものである。図１０（１）の紙面下方には仮マスターパターンに設定したサンプル画像５０についてＹ相関によって求めた特性７６を示し、図１０（２）の紙面下方にはマッチング用のサンプル画像５２についてＹ相関によって求めた特性７８を示した。図１０（１）、（２）の各々のＹ相関の特性７６、７８から理解されるように、各特性は略一致し、図１０の矢印Ａ方向にずれた関係にある。
【００５６】
次のステップ２３４では、仮マスターパターンとマッチング用のサンプルｊの各々の間で対応するラインを設定する。すなわち、上記ステップ２３０でＸ相関の特性で最も一致度が高い位置のラインを、仮マスターパターンとマッチング用のサンプルとの間で対応させる。図１０の例では、各々の間で相対的に位置関係のみが異なるのであるため、各ラインはその全てが１対１に対応できる。また、図１１の例では、マッチング用のサンプル画像５４は僅かに縮小されているので、１対１の位置のラインに対応されない。すなわち、ライン数が同一であるときは、仮マスターパターンの画像５０のライン８０は、マッチング用のサンプル画像５４のライン８２に対応されるべきであるが、Ｘ相関の特性から縮小方向のライン８４が対応されることになる。
【００５７】
次に、ステップ２３８では、Ｙ相関の特性の特性を用いてライン方向の大まかな位置合わせを行って、上記ステップ２３６で設定されたラインについてマッチング検査をするランレングスコードを設定する。次のステップ２４０では、設定したランレングスコードについて、仮マスターパターンとサンプルとの間の重複領域を導出する。この重複領域とは、設定したライン上のランレングスコードを、仮マスターパターンとサンプルとについて重ねたときに重複する領域をいう。すなわち、このステップ２４０は、ライン上でマッチングすべきランレングスコードには重複領域が存在するということを想定しているためである。
【００５８】
次のステップ２４２では、導出した重複領域が存在するか否かを判断し、重複領域が存在しない（図１２（２）参照）ときは、仮マスターパターンとサンプルとの間で一致したランレングスコードが存在しないと判断し（ステップ２４２で否定判断）、ステップ２４６へ進みマッチングＮＧと決定する。一方、重複領域が存在するときは、ステップ２４２で肯定判断され、次のステップ２４４において仮マスターパターンに対してサンプルが複数の重複領域が存在するか否かを判断する。複数の重複領域が存在するときはステップ２４４で肯定され、ステップ２４６へ進む。仮マスターパターンに対してサンプルが複数の重複領域が存在する場合とは、図１２（３）に示すように、仮マスターパターンの１つのランレングスコードに対して複数のランレングスコードが属するということである。すなわち、本来１対１に対応すべきランレングスコードに複数のランレングスコードが対応するので、マッチングはなされていない。このため、ステップ２４６でマッチングＮＧと決定する。
【００５９】
一方、図１２（１）に示すように、唯一の重複領域が存在するときは、ステップ２４４で否定され、ステップ２４８でマッチング度を演算する。このマッチング度は、ランレングスコードによる長さの一致度であり、本実施の形態では仮マスターパターンの長さに対するサンプルの長さの比を用いている。マッチング度の演算が終了すると、ステップ２５０へ進み、全てのランレングスコードについて上記処理が終了したか否かを判断する。全ランレングスコードについて処理が終了していないときはステップ２５０で否定され、ステップ２３８へ戻り、上記処理を繰り返す。一方、全ランレングスコードについて処理が終了したときは、ステップ２５０で肯定され、次のステップ２５２へ進み、全てのラインについて上記マッチング処理が終了したか否かを判断する。未だラインが残存するときは、ステップ２５２で否定され、ステップ２３６へ戻り、上記処理を繰り返し実行する。一方、全てのラインについて終了したときは、ステップ２５２で肯定され、次のステップ２５４で、マッチング度を記憶して本ルーチンを終了する。
【００６０】
このようにして所定数のサンプルについてマッチング処理が終了すると、各サンプルについてのマッチング度が求められることになる。これらの複数のマッチング度を用いて、マスターパターンが生成される（図３のステップ２２０）。
【００６１】
次に、このマスターパターンの生成処理（図３のステップ２２０）の詳細を説明する。図３のステップ２２０が開始されると、図６のマスターデータ決定ルーチンが実行される。まず、ステップ２６０では、仮マスターパターンとして設定したサンプルのランレングスコードのうちマスターデータとして決定するためのランレングスコードを設定する。次のステップ２６２では、設定した仮マスターパターンのランレングスコードｘ０、及びランレングスコードｘ０に対する各サンプルのランレングスコードｘ１，ｘ２，・・・，ｘｊを読み取って（図１３参照）、次のステップ２６４で各々のマッチングのばらつきを求める。ばらつきは標準偏差等の統計処理によって求めることができる。なお、上記マッチング度の演算（図５のステップ２４８）では、長さの比が求められているので、この長さの比を用いて、ばらつきを求めてもよい。求めたばらつきから仮マスターパターンとして設定したサンプルのランレングスコードｘ０の信頼性が判断できる。すなわち、ばらつきが大きければ信頼性が低く、ばらつきが小さければ信頼性が高い。
【００６２】
次のステップ２６６では、上記ステップ２６４で求めたばらつきの値が予め定めた所定値未満の値か否かを判断することによって、ばらつきが小さいか否かを判断し、ばらつきの値が所定値以上の値のときは信頼性が低いためステップ２６６で否定され、ステップ２７２へ進む。ステップ２７２では仮マスターパターンとして設定したサンプルのランレングスコードをマスターデータとして決定することなく、すなわち、未決定状態（図１４参照）でステップ２７６へ進む。
【００６３】
一方、ばらつきの値が所定値未満の値でありステップ２６６で肯定されたときには、ステップ２６８へ進み、統計処理によって仮マスターパターンとして設定したサンプルのランレングスコードをマスターデータとして決定し、次のステップ２７０で記憶する。この統計処理は、全ランレングスコードの平均値や特定のランレングスコードを抽出したものの平均値を用いることができる。特定のランレングスコードの抽出は、ばらつきが小さいものの中から所定部分、例えば中心分布から１／２や１／３のランレングスコードを抽出することが好ましい。
【００６４】
ステップ２７４では、全てのランレングスコードについて上記処理が終了したか否かを判断し、未だ未処理のランレングスコードが存在するときはステップ２７４で否定され、ステップ２６０へ戻り上記処理を繰り返す。一方、全てのランレングスコードについて上記処理が終了したときにはステップ２７４で肯定され、次のステップ２７６で設定されていないランレングスコードが存在するか否かを判断する。設定されていないランレングスコードが存在しないときは、全てのランレングスコードについて、マスターデータが設定されているので、ステップ２７６で否定され、本ルーチンを終了する。
【００６５】
設定されていないランレングスコードが存在するときは、ステップ２７６で肯定され、次のステップ２７８へ進む。ステップ２７８では、未設定の仮マスターパターンのランレングスコードに対応するデータを統計処理によって求めて、マスターデータとして決定し、次のステップ２８０で更新する。ステップ２７８の統計処理は、仮マスターパターンのランレングスコードｘ０を除いた、各サンプルのランレングスコードｘ１，ｘ２，・・・，ｘｊについてなされる。まず、ランレングスコードｘ１，ｘ２，・・・，ｘｊのばらつき（標準偏差等）を求め、ばらつきが小さいときには仮マスターパターンのランレングスコードｘ０が不良であるとして、ランレングスコードｘ１，ｘ２，・・・，ｘｊの平均値や特定のランレングスコードを抽出したものの平均値をマスターデータとして決定する。一方、求めたばらつきが大きいときには、対象となるランレングスコードをマスターデータから外して、そのランレングスコードはサンプル全てについて変動がおおきいため、マスターデータ作製不可能として不良であることを表すデータを出力する。なお、対象となるランレングスコードをマスターデータから外したときには、後述する比較処理にそのマスターデータを用いずに比較対象からも外す。また、この場合、他のサンプルを仮マスターパターンとして再度マスター作製を行ってもよい。
【００６６】
次に、図２のステップ１０６の詳細を説明する。図２のステップ１０６において、比較処理が実行されると、図７の比較処理ルーチンが実行される。
【００６７】
図７のステップ１５０では、上記作製されたマスターデータを読み取る（図３参照）。次のステップ１５２では、設置された作製パターン５２（図８（２）参照）を撮像した画像データを読み取り、次のステップ１５４で２値化する。
【００６８】
次のステップ１５６では、作製パターンを撮像した画像５２の１画素について上記説明したランレングス処理を行い（図４参照）、作製パターンを撮像した画像５２についてのランレングスコードとマスターデータのランレングスコードとを次のステップ１５８で比較する。
【００６９】
例えば、図８（１）に示すように、マスターデータ４０として記憶された画像では垂直方向の画素の位置Ｖ1 について、水平ランレングスコードＤH （ｎ）で表される長さは、最初の白データの連続する群をｕとすると、ＤH （ｕ）＝Ａ1 ，ＤH （ｕ＋１）＝Ａ2 ，ＤH （ｕ＋２）＝Ａ3 ，ＤH （ｕ＋３）＝Ａ4 ，ＤＨ（ｕ＋４）＝Ａ5 になる。作製パターン４２について同様に垂直方向の画素の位置Ｖ1 について、水平ランレングスコードＤH （ｎ）で表される長さは、ＤH （ｕ）＝ａ1 ，ＤH （ｕ＋１）＝ａ2 ，ＤH （ｕ＋２）＝ａ3 ，ＤH （ｕ＋３）＝ａ4 ，ＤH （ｕ＋４）＝ａ5 になる。これにより、長さの対応関係は、Ａ1 ≒ａ1 ，Ａ2 ≒ａ2 ，Ａ3 ＞ａ3 ，Ａ4 ＜ａ4 ，Ａ5 ≒ａ5 になる。従って、上記ステップ１５８では、これらの長さを比較する。例えば、マスターデータから作製パターンの長さを減算する。この減算値を比較結果とする。図８から理解されるように、長さの対応関係で、Ａ3 ＞ａ3 ，Ａ4 ＜ａ4 の部分に欠陥が検出できる。この部分は減算値に所定値以上の値が求まり、予め許容範囲を定め、これを越えた値を欠陥とすれば、欠陥を検出できる。
【００７０】
また、マスターデータ４０として記憶された画像では水平方向の画素の位置Ｈ1 について、垂直ランレングスコードＤV （Ｈ1 ，ｍ）で表される長さは、ＤＶ（Ｈ1 ，１）＝Ｂ1 ，ＤV （Ｈ1 ，２）＝Ｂ2 ，ＤV （Ｈ1 ，３）＝Ｂ3 になる。作製パターン４２について同様に水平方向の画素の位置Ｈ1 について、垂直ランレングスコードＤV （Ｈ1 ，ｍ）で表される長さは、ＤV （Ｈ1 ，１）＝ｂ１のみになる。これにより、長さの対応関係は、Ｂ1 ＜ｂ1 のみが対応しＢ2 ，Ｂ3 に対応するデータが未検出になる。従って、マスターデータから作製パターンの長さを減算した減算値を比較結果とすればＢ1 ，Ｂ2 ，Ｂ3 の各部分に欠陥が検出できる。なお、この場合、対象となるデータが無いときはパターンの欠落を推定することもできる。
【００７１】
そこで、図７のステップ１６０では、減算値の絶対値が所定値（許容範囲）を越えたか否かによって欠陥があるか否かを判断し、肯定判断の場合にはモニター２０に「欠陥あり」と表示し、ステップ１５６へ戻る。一方、否定判断の場合には欠陥は検出されていないので、全画素についてランレングス処理が終了するまで（ステップ１６４で肯定判断されるまで）、上記処理を繰り返し実行する。
【００７２】
ステップ１６４で肯定判断され、全画素についてランレングス処理が終了すると、次のステップ１６６で欠陥が存在した否かを判断し、１つ以上の欠陥が存在したときはステップ１７０で全ての欠陥を表示して本ルーチンを終了する。一方、欠陥が検出されないときは作製パターンがマスターデータに相当するものが作製されたことを表す欠陥無の表示をステップ１６８で行い本ルーチンを終了する。
【００７３】
なお、本実施の形態では、マスターパターン（マスターデータ）と作製パターン（ランレングスコード）を、２値化処理後に求めたランレングスコードそのものを用いて比較して欠陥を検出する場合について説明したが、マスターパターン（マスターデータ）を作製するときの処理を用いてもよい。すなわち、図３の処理に適用し、ステップ２１２の仮マスターパターンの設定を、マスターパターンの設定に置き換える。また、ステップ２２０のマスター生成処理を判定処理に置き換える。この判定処理は、図５のステップ２４６で設定されたマッチングＮＧまたはステップ２４８で求められるマッチング度を用いて、マスターパターン（マスターデータ）と作製パターン（ランレングスコード）とが略一致するか否かを判定する。判定は、マッチング度が予め定めた値以上のときにマッチングがＯＫとし、予め定めた値未満またはマッチングＮＧのときにマッチングＮＧとし、マッチングＮＧのときに欠陥有りと検出ものとすればよい。
【００７４】
このように、本実施の形態では、作製パターンそのものを用いてマスタパターンのマスターデータを生成している。従って、生成されたマスターデータは、製造時点の誤差や許容範囲が反映されて製造された作製パターンから、作製パターンを検査するに最適なマスターデータが作製される。このため、設計図等から生成したマスターデータを誤差や許容範囲のデータで再度調整するという煩雑な処理が不要となる。このため、マスターデータの生成が容易となる。
【００７５】
なお、本実施の形態では、マスタパターンについてランレングスコード（マスターデータ）を作製し、欠陥検出の対象となる作製パターンについて１画素毎にランレングスコードを作製しながらマスターパターンのランレングスコードと比較することによって欠陥検出を行っている。従って、マスターデータはランレングスコードとして記憶することによって圧縮されるので、１画素毎に画素データを比較して欠陥検出する方法に比べて、少ない容量で記憶することができ、ＲＯＭやＲＡＭ等の記憶装置の容量を小さくすることができる。
【００７６】
また、１画素の画素データを読み取る毎にランレングスコードを作製または更新している。このため、欠陥検出するときには、ランレングスコード同士で比較すればよく、高速な判定が可能となる。
【００７７】
さらに、ランレングスコードは水平方向と垂直方向の両方のランレングスコードが１画素毎に作製または更新される。従って、１画素の画素データを読み取る毎に水平方向と垂直方向との両方の欠陥を同時に検出することができる。
【００７８】
上記実施の形態では、垂直方向（縦方向）と水平方向（横方向）の直角２方向のランレングスコードを生成し使用した場合を説明した。パターンの欠陥検出は、上記のように、水平方向と垂直方向の両方のランレングスコードのみによって、どのような形状のパターンであっても検出が可能である。例えば、図８（１）に示したマスターパターン４０において、一定幅の部分パターン６０は中腹部分で４５度方向に折れ曲がっている。このため、従来、パターン幅を検出する場合には幅計測の軸をパターンの形状に合わせて傾斜させなければならなかった。本実施の形態では、水平ランレングスコード及び垂直ランレングスコードによって全ての方向の成分を含んでいることになり、パターンの幅を検出することができる。
【００７９】
例えば、図８（１）に示すように、マスターデータ４０として記憶された画像では垂直方向の画素の位置Ｖ2 については、４５度方向に折れ曲がった部分パターンを含んでいる。本実施の形態では、上記で説明した垂直方向の画素の位置Ｖ1 の場合と同様に比較することができる。すなわち、水平の長さは、マスターパターンについてはＥ1 ，Ｅ2 ，Ｅ3 ，Ｅ4 ，Ｅ5 ，Ｅ6 ，・・・になり、作製パターン４２についてはｅ1 ，ｅ2 ，ｅ3 ，ｅ4 ，ｅ5 ，ｅ6 ，・・・になる。これにより、長さの対応関係は、Ｅ1 ≒ｅ1 ，Ｅ2 ≒ｅ2 ，Ｅ3 ≒ｅ3 ，Ｅ4 ≒ｅ4 ，Ｅ5 ＞ｅ5 ，Ｅ6 ＜ｅ6 になる。従って、これらの長さを、マスターデータから作製パターンの長さを減算した減算値から欠陥が検出できる。
【００８０】
また、上記実施の形態では、マスターパターンを含んだ基板と作製パターンを含んだ基板の位置を最初に位置合わせした場合を説明したが、上記のように縦横のランレングスコードで長さを比較するときには、画像の横ずれや伸縮に対して効果的な検出方法となる。すなわち、１画素毎に画素データを比較する場合にはマスターパターンと作製パターンとの位置合わせが必須となる。１画素でも画像がずれた場合や画像が伸縮して大きさが変化した場合には同一のパターンであっても欠陥として検出されてしまう。本実施の形態では、水平方向と垂直方向との直角２方向のランレングスコードを生成しこれらのランレングスコードを比較している。このため、各ランレングスコードの許容範囲を有するようにすれば、画像取り込み時の横ずれ、画像の伸縮が生じた場合に、精度よく欠陥を検出できる。また、パターンのみを比較するように、すなわち、例えば黒データのみによるランレングスコードを比較するようにすれば、白データ中のパターンを相対的な位置として扱うことができ、画像取り込み時の横ずれを考慮しなくてもよいことになる。
【００８１】
なお、上記実施の形態では、撮像画像を２値化した２値化画像を用いてランレングスコードを生成する場合を説明したが、本発明は２値化に限定されるものではなく、３値またはそれ以上の値による多値画像に変換するようにしてもよい。例えば、白データ及び黒データの２値のデータに対して、それらの中間データとして灰色データを加えた３値化することができる。この３値は白データ、灰色データ及び黒データの各々について、そもそもの画像データ（アナログデータでもよくデジタルデータでもよい）を最低濃度から最高濃度までを３つに分類し、分類濃度範囲の各々に画素値を定め、画素の濃度が含まれる分類濃度範囲の画素値を、その画素の画素値と設定すればよい。一般化すれば、画像データ（アナログデータでもよくデジタルデータでもよい）を最低濃度から最高濃度までをｎ個に分類し、分類濃度範囲の各々に画素値ｍを定め、画素の濃度が含まれる分類濃度範囲の画素値を、その画素の画素値と設定すればよい。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態にかかる、欠陥検出装置の概略構成を示すブロック図である。
【図２】欠陥検出装置の処理の流れを示すフローチャートである。
【図３】マスターデータ作製処理の流れを示すフローチャートである。
【図４】ランレングス処理の流れを示すフローチャートである。
【図５】マッチング処理の流れを示すフローチャートである。
【図６】マスター生成処理の流れを示すフローチャートである。
【図７】比較処理の流れを示すフローチャートである。
【図８】撮像画像を示したイメージ図であり、（１）はマスターパターン含んだ基準画像を示し、（２）は作製パターンを含んだ作製画像を示している。
【図９】ランレングスコードを説明するための説明図である。
【図１０】仮マスターパターンと作製パターンとの各々のイメージ図、Ｘ相関の特性及びＹ相関の特性を示す線図である。
【図１１】仮マスターパターンと図１１と異なる作製パターンとの各々のイメージ図、Ｘ相関の特性及びＹ相関の特性を示す線図である。
【図１２】ランレングスコードのマッチングを説明するための説明図である。
【図１３】仮マスターパターンのランレングスコードと複数の作製パターンのランレングスコードとの対応関係を示すイメージ図である。
【図１４】仮マスターパターンの中で設定されないランレングスコードを示すイメージ図である。
【符号の説明】
【００８３】
１０    欠陥検出装置
１２    カメラ
１４    Ａ／Ｄ変換装置
２２    演算装置
【図１】
2006126946.tif 000003
【図２】
2006126946.tif 000004
【図３】
2006126946.tif 000005
【図４】
2006126946.tif 000006
【図５】
2006126946.tif 000007
【図６】
2006126946.tif 000008
【図７】
2006126946.tif 000009
【図８】
2006126946.tif 000010
【図９】
2006126946.tif 000011
【図１０】
2006126946.tif 000012
【図１１】
2006126946.tif 000013
【図１２】
2006126946.tif 000014
【図１３】
2006126946.tif 000015
【図１４】
2006126946.tif 000016