(57)【特許請求の範囲】
【請求項１】
測定対象物の少なくとも一部の形状に係る３次元位置座標を含む複数の測定点のデータを入力する入力部と、
前記測定対象物の少なくとも一部の基準形状に係る３次元位置座標を含む複数の基準点のデータを格納する格納部と、
間引き測定点群のデータを生成する生成部と、
測定点と基準点との間の位置合わせを行うためのパラメータを生成する収束評価部と、
前記パラメータを用いて測定点を移動させる点群変換部とを具備する欠陥抽出装置であって、
前記生成部は、
全ての測定点の各点の勾配強度を算出し、
全ての測定点に対する勾配強度と測定点の点数とのヒストグラムを作成し、
前記ヒストグラムのビンの中から、最も大きい勾配強度を有する測定点が含まれるビンから降順に、測定点の点数が第１の閾値以上かつ前記第１の閾値より大きい第２の閾値以下になるまでビンを加算し、
全ての測定点の中から前記加算したビンに含まれる測定点以外の測定点を間引くことにより、前記加算したビンに含まれる測定点からなる間引き測定点群を生成し、
前記収束評価部は、間引き測定点群の各点とそれに対応する基準点との間の距離を収束させて、第１のパラメータを生成し、
前記点群変換部は、前記第１のパラメータを用いて全ての測定点を移動させ、
前記収束評価部は、前記移動させた全ての測定点の各点とそれに対応する基準点との間の距離を収束させて、第２のパラメータを生成し、
前記点群変換部は、前記第２のパラメータを用いて、前記移動させた全ての測定点をさらに移動させる、
欠陥抽出装置。
【請求項２】
前記第２のパラメータを用いて移動させた全ての測定点の中から、対応する基準点との間で第３の閾値よりも大きい距離を有する測定点の集合を抽出し、
前記集合ごとに特徴量を算出し、
第４の閾値よりも大きい特徴量を有する集合を欠陥と判定する欠陥判定部をさらに具備する請求項１に記載の欠陥抽出装置。
【請求項３】
前記加算したビンに含まれる測定点の点数が前記第１の閾値以上かつ前記第２の閾値より大きい場合、前記生成部は、最終的に加算されたビンに含まれる測定点に対して、ビンの分解能を上げた局所的ヒストグラムを作成し、前記局所的ヒストグラムのビンの中から、最も大きい勾配強度を有する測定点が含まれるビンから降順に、測定点の点数が前記第１の閾値以上かつ前記第２の閾値以下になるまでビンを加算する、請求項１又は２に記載の欠陥抽出装置。
【請求項４】
測定対象物の少なくとも一部の形状に係る３次元位置座標を含む複数の測定点のデータを入力するステップと、
全ての測定点の各点の勾配強度を算出するステップと、
勾配強度と測定点の点数とのヒストグラムを作成するステップと、
前記ヒストグラムのビンの中から、最も大きい勾配強度を有する測定点が含まれるビンから降順に、測定点の点数が第１の閾値以上かつ前記第１の閾値より大きい第２の閾値以下になるまでビンを加算するステップと、
全ての測定点の中から前記加算したビンに含まれる測定点以外の測定点を間引くことにより、前記加算したビンに含まれる測定点からなる測定点群を生成するステップと、
前記測定点群の各点とそれに対応する基準点との間の距離を収束させて、第１のパラメータを生成するステップであって、前記基準点は、前記測定対象物の少なくとも一部の基準形状に係る３次元位置座標を含む、ステップと、
前記第１のパラメータを用いて全ての測定点を移動させるステップと、
前記移動させた全ての測定点の各点とそれに対応する基準点との間の距離を収束させて、第２のパラメータを生成するステップと、
前記第２のパラメータを用いて、前記移動させた全ての測定点をさらに移動させるステップとを具備する欠陥抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、欠陥抽出装置及び欠陥抽出方法に関し、より詳細には、測定対象物の形状に対応する多数の測定点とこの測定点に対応する多数の基準点とを位置合わせした後、測定対象物の欠陥を抽出する欠陥抽出装置及び欠陥抽出方法に関する。
【背景技術】
【０００２】
従来より、測定対象物から得られる測定点群と当該測定対象物の基準形状（モデル）に対応する基準点群とを位置合わせ（マッチング）することで、測定対象物に存在する欠陥（切粉残り、バリ、剥がれ、傷、窪み、歪み、撓み、誤形状等）を評価する技術が知られている。特許文献１にて提案されている測定対象物の形状を評価する技術は、基準点と対応する測定点との間の距離を逐次収束させて、測定点と基準点との位置合わせを行い、当該位置合わせ処理後の測定点データと基準点データとを比較することにより、測定対象物の形状を評価するものである。
【０００３】
特許文献１の技術は、測定対象物をスリット光で照射し、そこからの反射光をカメラにより受光し、測定対象物の３次元断面形状に対応する測定点に関する測定点データを取得する。ＩＣＰ（Iterative Closest Point）法を用いて、測定点群を基準点群に近づけで位置合わせを行う。そして、基準点群に対応する測定点群を位置合わせするための合同変換パラメータ（Ｒ、ｔ）（Ｒ：回転行列、ｔ：並進移動ベクトル）を求め、当該合同変換パラメータを用いて、測定点群を基準点に近づける位置合わせを行う。このように、特許文献１では、比較的明確な実態的形状を表している測定対象物のエッジの情報を用いて全測定点群と全基準点群との位置合わせが行われている。
【０００４】
また、特許文献１の技術は、測定点群又は基準点群に属する各点とそれに隣接する点との間の距離（「隣接点間距離」という。）に基づいて、重み係数を割り当てる。当該重み係数は、基準点と対応する測定点との間の距離を逐次収束させる逐次収束処理（即ち、位置合わせ処理）における逐次収束評価値を求める際に用いられ、隣接する点における隣接点間距離によって逐次収束評価値に及ぼす影響度が調整される。
【０００５】
また、特許文献１の欠陥評価技術は、全ての基準点に関して、各基準点が有する３次元位置座標（Ｘ、Ｙ、Ｚ）と、当該各基準点に対応する測定点の位置合わせ後の３次元位置座標（Ｘ、Ｙ、Ｚ）とに基づき、各測定点に係るユークリッド距離を算出する。そして、当該各測定点に係る対応点間距離と所定の閾値と比較することにより、当該閾値以上の対応点間距離を有する測定点を抽出する。ここで、当該抽出された測定点群は、欠陥に対応した測定点を含むと推定された誤対応領域である。その後、当該誤対応領域に属する測定点の各々について、隣接する測定点間の３次元位置座標に基づく距離（測定点に係る隣接点間距離）を算出し、算出された隣接点間距離と所定の閾値とを比較して、当該所定の閾値よりも小さい隣接点間距離を有する測定点を近傍測定点として抽出し、当該誤対応領域に属する測定点の分布密度を算出する。さらに、当該近傍測定点の数と所定の閾値とを比較して、当該近傍測定点の数が当該所定の閾値以上の場合、当該近傍測定点にて規定される領域を欠陥として判定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０７３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩＣＰ法による３次元の位置合わせ手法は、測定点の各点とそれに対応する基準点（マスターデータ）との間の対応点間距離の平均値を基本的な評価値として用い、Ｍ−ＩＣＰ法は、これに重み付けを行い評価値に変化を付ける手法である。ＩＣＰでは、合同変換パラメータを繰り返し作成し、最も評価値の良かった位置を解と判定して、位置合わせ処理が終了する。
【０００８】
しかしながら、ＩＣＰ法において、測定点群と基準点群との間の位置合わせ処理が上手くいかず、測定点群が基準点群からずれた状態で合同変換パラメータが生成されてしまうことがある。つまり、装置が良好な位置合わせが行われたと判定しても、実際には位置合わせ後の測定点が基準点からズレた状態となっていることがある。
【０００９】
図１７に示すように、従来技術において、表面に深溝等のエッジが形成されておらず緩やかな面を有する測定対象物に係る基準点群１７０１と測定点群１７０２とに同じデータ情報を持たせ、測定点群１７０２を任意にＸ，Ｙ，Ｚ，θ（θｘ，θｙ，θｚ）方向に位置ずれさせて、ＩＣ法による逐次収束処理（位置合わせ処理）させるとする。このような測定対象物に係る測定点群に対する位置合わせ処理では、大きい面積を有する測定対象物の円弧の部位に係る測定点と基準点との重なる割合が多い（よく一致している）が、測定対象物の端部（勾配強度の大きい部分）等に係る基準点１７０１ａと測定点１７０２ａとの間では比較的ずれが大きい状態となっている。このような状態で、対応点間距離の平均値を算出すると、重なる割合の大きい部分の影響が強く出るため、一見すると評価値が良くなっているため、その結果位置合わせ処理が終了してしまう問題がある。このように一部がずれた状態で、測定点群と基準点群との差を抽出し、欠陥判定を行うと、欠陥で無い部位も欠陥と判定してしまう虞があり、検査機としての信頼性の低下につながる問題がある。
【００１０】
このような問題に鑑み、本発明は、測定対象物に係る測定点群と基準点群とを位置合わせする技術において、測定点群と基準点群との間の位置ずれの状態によらず、より正確に位置合わせを行うことが可能な欠陥抽出装置及び欠陥抽出方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態は、測定対象物の少なくとも一部の形状に係る３次元位置座標を含む複数の測定点のデータを入力する入力部と、測定対象物の少なくとも一部の基準形状に係る３次元位置座標を含む複数の基準点のデータを格納する格納部と、間引き測定点群のデータを生成する生成部と、測定点と基準点との間の位置合わせを行うためのパラメータを生成する収束評価部と、当該パラメータを用いて測定点を移動させる点群変換部とを具備する欠陥抽出装置であって、生成部は、全ての測定点の各点の勾配強度を算出し、全ての測定点に対する勾配強度と測定点の点数とのヒストグラムを作成し、ヒストグラムのビンの中から、最も大きい勾配強度を有する測定点が含まれるビンから降順に、測定点の点数が第１の閾値以上かつ第１の閾値より大きい第２の閾値以下になるまでビンを加算し、全ての測定点の中から加算したビンに含まれる測定点以外の測定点を間引くことにより、加算したビンに含まれる測定点からなる間引き測定点群を生成し、収束評価部は、間引き測定点群の各点とそれに対応する基準点との間の対応点間距離を逐次収束させて、第１のパラメータを生成し、点群変換部は、第１のパラメータを用いて全ての測定点を移動させ、収束評価部は、移動させた全ての測定点の各点とそれに対応する基準点との間の対応点間距離を逐次収束させて、第２のパラメータを生成し、点群変換部は、第２のパラメータを用いて、移動させた全ての測定点をさらに移動させる、欠陥抽出装置を提供する。
【発明の効果】
【００１２】
エッジのような輪郭的特徴を有しないワークに関しては、勾配強度の大きい測定点の数は、全数に対して非常に少ない。そのため、全測定点のみを用いて位置合わせ処理を行っても、そのような少ない数の測定点の影響は無視され、大きい勾配強度を有する測定点に対する位置合わせ精度が比較的低減しやすい問題がある。本発明は、勾配強度の大きい方から所定数の測定点を間引き測定点群として採用し、間引き測定点群に対する位置合わせ処理を最初に行うようにしているため、そのような問題をも解決する。その結果、全測定点に対する位置合わせの精度が向上し、ひいては欠陥抽出の精度も向上するとの技術的効果を提供することが出来る。
本発明の一実施形態に係る欠陥抽出装置及び欠陥抽出方法は、測定対象物の形状に係る測定点群と基準点群とを位置合わせする際に、間引き測定点群に対する第１の合同変換パラメータを生成し、第１の合同変換パラメータを用いて全測定点を移動させ、移動させた全測定点に対する第２の合同変換パラメータを生成し、最終的に全測定点を第２の合同変換パラメータを用いて移動させる。１段階目の位置合わせ処理では、大きな位置ずれが生じやすい勾配強度の大きい測定点を、対応する基準点に少ないデータ量で高速に位置合わせさせることができ、２段階目の位置合わせ処理では、１段階目で合わせた測定点群を最終的に微調整することができ、より正確な位置合わせが可能となる。
【図面の簡単な説明】
【００１３】
【図１】欠陥抽出装置の概略構成図である。
【図２】測定ヘッドの概略構成図である。
【図３】評価モジュールの概略構成図である。
【図４】測定ブロックの例を示す模式図である。
【図５】本発明と従来例との比較を示すグラフの例である。
【図６Ａ】欠陥抽出方法のフローチャートである。
【図６Ｂ】欠陥抽出方法のフローチャートである。
【図７】勾配強度算出ルーチンのフローチャートである。
【図８】勾配強度の模式図である。
【図９】勾配強度と測定点の点数とのヒストグラムの模式図である。
【図１０】間引き測定点群に対する位置合わせルーチンのフローチャートである。
【図１１】全測定点に対する位置合わせルーチンのフローチャートである。
【図１２】欠陥判定ルーチンのフローチャートである。
【図１３】第１の型修正による形状違い判定ルーチンのフローチャートである。
【図１４】第２の型修正による形状違い判定ルーチンのフローチャートである。
【図１５】欠陥・型修正箇所判定ルーチンのフローチャートである。
【図１６】基準点データ変更ルーチンのフローチャートである。
【図１７】比較説明のための模式図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しながら説明する。ただし、以下の実施形態で説明される寸法、材料、形状、構成要素の相対的な位置等は任意であり、本発明が適用される装置の構造又は様々な条件に応じて変更される。また、特別な記載がない限り、本発明の範囲は、以下に説明される実施形態で具体的に記載された形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【００１５】
図１は、本発明の一実施形態に係る欠陥抽出装置１の概略構成図である。欠陥抽出装置１は、測定対象物としてのワーク５０の表面の欠陥（バリ、剥がれ、傷、窪み、歪み、撓み、誤形状等）を抽出する。なお、ワーク５０は、表面に凹凸構造（溝等）が形成された構造のものであってもよいし、凹凸構造が形成されていない構造のものであってもよい。
【００１６】
＜欠陥抽出装置の構成＞
欠陥抽出装置１は、基台２、門形フレーム３、昇降機構４、Ｘステージ５、Ｙステージ６、回転テーブル７、測定ヘッド１０及びコントローラ３０を備える。門形フレーム３は、基台２上に立設され、門形フレーム３の中央部分には測定ヘッド１０を昇降可能に支持する昇降機構４が設けられている。また、基台２上に設けられたＸステージ５、Ｙステージ６及び回転テーブル７は、ワーク５０を把持し、Ｘ−Ｙ平面上で平行移動及び回転移動させる機構である。そして、昇降機構４、Ｘステージ５、Ｙステージ６、回転テーブル７及び測定ヘッド１０の作動は、コントローラ３０により制御される。
【００１７】
ここで、図１に示すように、Ｘ軸方向及びＹ軸方向をワーク５０の加工面の面内方向（即ち、後述するスリット光ＳＬの光軸に垂直な平面の面内方向）に設定し、Ｚ軸方向をワーク５０の厚さ方向（即ち、スリット光ＳＬの光軸に沿う方向）に設定する。
【００１８】
図２に示すように、測定ヘッド１０は、スリット光源ユニット１１及び撮像ユニット１２を備え、それらは一体的に組み付けられている。スリット光源ユニット１１は、レーザスリット投光器１３及びシリンドリカルレンズ１４を含み、レーザスリット投光器１３から出射されたスリット光は、シリンドリカルレンズ１４によりその光軸に平行なスリット光ＳＬに変換される。スリット光ＳＬは、ワーク５０の表面に照射され、照射されたワーク５０の表面上には光切断線Ｓが生じる。なお、図２では、光切断線Ｓを見易くするために、ワーク５０の一部を断面で示し、ワーク５０の表面に溝が形成されている例を示している。
【００１９】
撮像ユニット１２は、偏光板１５、テレセントリック系レンズ１６及びカメラ１７を備え、カメラ１７は、撮像素子１８を備える。ワーク５０に照射されたスリット光ＳＬの一部は、撮像ユニット１２の撮像光軸に沿って反射し、その反射光ＲＬは、偏光板１５及びシリンドリカル系レンズ１６を通じて撮像素子１８に入射する。偏光板１５は、撮像素子１８のカバーガラスの裏面での反射により発生するノイズ光を除去するために撮像光軸上に配置されており、テレセントリック系レンズ１６は、画角ゼロでワーク５０の表面を撮像するために撮像光軸上に配置されている。カメラ１７は、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）やＣＣＤ（Charge-Coupled Device）等のデジタルカメラであり、光切断線Ｓに係るワーク５０の画像データをコントローラ３０に出力する。
【００２０】
なお、撮像素子１８の受光面を撮像ユニット１２の撮像光軸に対して所定のあおり角だけ傾けて、あおり撮影の原理でテレセントリック系レンズ１６の被写界深度を稼ぐようにしてもよい。この場合、当該あおり角は、当該撮像光軸と撮像素子１８の表面（その法線）との間の角度にほぼ等しいことが好ましく、偏光板１５をＰ偏光板とすることが好ましい。これにより、被写界深度の拡張効果を得つつ、撮像素子１８のカバーガラスの裏面における反射に起因するノイズを低減することができる。
【００２１】
コントローラ３０は、不図示の入出力インターフェース、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）及び記憶装置等を備えるコンピュータユニットとして構成され、キーボードやディスプレイ等の入力又は出力デバイス４０に接続されている。コントローラ３０は、本発明に関係する機能部として、光源制御部３１、画像メモリ３２、画像処理部３３、３次元測定点データ演算部３４、評価モジュール１００、昇降機構制御部３６、回転テーブル制御部３７、Ｘステージ制御部３８及びＹステージ制御部３９を備える。コントローラ３０のＣＰＵが、記憶装置等に格納された所定のプログラムを読み出し、それを実行することによって、各機能部の作用・機能は実現される。
【００２２】
光源制御部３１は、レーザスリット投光器１３を制御し、スリット光ＳＬの投光強度を調整する。カメラ１７からコントローラ３０に送られてきた画像データは、画像メモリ３２に展開される。画像処理部３３は、画像メモリ３２に展開された画像データに対し、必要に応じて座標変換、レベル補正及びエッジ検出等の画像処理を施し、当該画像データの中から、スリット光ＳＬによる光切断線Ｓに対応するデータを抽出する。
【００２３】
スリット光ＳＬの照射点及び照射角度並びにスリット光ＳＬの光軸と撮像ユニット１２の撮像光軸とのなす角度が既知であるため、３次元測定点データ演算部３４は、画像処理部３３で検出された光切断線Ｓに係る座標値から三角測量法に基づいて演算することで、光切断線Ｓ（言い換えると、ワーク５０の表面に生成された光切断線Ｓに係る３次元表面形状）に対応する測定点データ（又は距離画像）を生成する。ここで、測定点データとは、測定点としての各画素に、ワーク５０表面の光切断線Ｓに係る３次元位置座標（Ｘ，Ｙ，Ｚ）を割り当てたデータのことである。言い換えると、複数の測定点からなる測定点群の各点は、ワーク５０の表面の測定領域の形状を示す３次元位置座標（Ｘ，Ｙ，Ｚ）のデータを有する。なお、三角測量法に基づく演算に代えて、その演算結果を予め格納したテーブルを用いて当該距離画像を生成するようにしてもよい。
【００２４】
昇降機構制御部３６は、昇降機構４を制御し、測定ヘッド１０のＺ軸方向の高さ位置を調整する。回転テーブル制御部３７は、回転テーブル７を制御し、ワーク５０をＸＹ平面内で回転させ、その傾きを調整する。Ｘステージ制御部３８は、Ｘステージ５を制御し、ワーク５０をＸ軸方向に移動させる。Ｙステージ制御部３９は、Ｙステージ６を制御し、ワーク５０をＹ軸方向に移動させる。すなわち、回転テーブル制御部３７、Ｘステージ制御部３８及びＹステージ制御部３９は、それぞれ回転テーブル７、Ｘステージ５及びＹステージ６の作動を制御し、ワーク５０の表面の測定領域全体を測定できるようにワーク５０を移動及び回転させる。
【００２５】
３次元測定点データ演算部３４により生成された測定点データは評価モジュール１００に送られる。評価モジュール１００は、図３に示すように、表面評価モジュール１１０、欠陥評価モジュール１２０及び基準データ変更モジュール１３０を備える。
【００２６】
表面評価モジュール１１０は、測定点データに所定の位置合わせアルゴリズム（ＩＣＰ法）を適用することにより、測定点群及び基準点群間の位置合わせ処理を行い、ワーク５０の表面形状を評価するモジュールである。欠陥評価モジュール１２０は、表面評価モジュール１１０から出力された測定点群及び基準点群間の位置合わせ処理の結果に基づいて、ワーク５０の表面の欠陥を評価する。
【００２７】
基準データ変更モジュール１３０は、測定された所定の数のワーク５０ごとに、欠陥評価モジュール１２０において良判定（欠陥が無い又は所定数以下と判定）された測定点データを基に、基準点データを変更する。なお、表面評価モジュール１１０及び欠陥評価モジュール１２０それぞれにおける評価処理をワーク５０において所定の数区分けされた測定ブロックごとに行うことで、欠陥抽出処理の効率化等の利点がある。ただし、本実施形態は、測定ブロックごとに評価を行う場合に限定されるものではなく、ワーク５０表面の測定領域全体に対して評価を行うようにしてもよい。
【００２８】
ここで、基準点の集合である基準点群の各点は、理想的な仕上がり形状を有する測定対象物の表面を示す３次元位置座標（Ｘ，Ｙ，Ｚ）を有し、ワーク５０の設計データから導出してもよいし、表面に欠陥が無い理想的な仕上がりを有する測定対象物（「マスタ」ともいう。）を測定して得られるデータを用いてもよい。また、基準点データは、後述するように、基準点データ変更モジュール１３０により、適宜変更できるようにしておいてもよい。
【００２９】
また、ワーク５０の表面の測定領域（欠陥検査をする領域）中に所定の数区分けされた測定ブロックについての一例を挙げる。図４（ａ）に示すように、ワーク５０が、表面に直線状の溝が形成された長方形のプレートであり、当該溝が形成された表面を測定領域５１とし、測定領域５１の面積が４００ｍｍ（Ｘ軸長さ）×３００ｍｍ（Ｙ軸長さ）程度であるとすると、測定領域５１は、１００ｍｍ（Ｘ軸長さ）×１５ｍｍ（Ｙ軸長さ）の複数の測定ブロック５２に区分けされる。そして、１回のＸ軸方向の走査で４つの測定ブロック５２に対して測定が行われ、測定ブロック５２ごとに、走査ピッチ及び画像の解像度に基づき規定される単位で、ワーク５０の表面に関する測定点データ（３次元位置座標）が取得され、測定ブロック５２に関連付けられ画像メモリ３２に展開される。このようなＸ軸方向の走査とＹ軸方向の移動とが繰り返され、ワーク５０の測定領域５１全体に対して測定点データが取得される。
【００３０】
なお、図４（ｂ）は、表面に比較的平らな部分を多く有する形状のワーク５０を示し、その測定領域５１はワーク５０の表面全体である。また、図４では、測定ヘッド１０が移動するように描かれているが、Ｘステージ５、Ｙステージ６及び回転ステージ７が移動・回転することにより、ワーク５０が測定ヘッド１０に対して動く。本実施形態はこの例に限定されるものではない。
【００３１】
表面評価モジュール１１０は、表面評価に係る機能部として、入力部１１１、格納部１１２、点群対応付け部１１３、重み演算部１１４、収束評価部１１５、点群変換部１１６及び生成部１１７を有する。なお、点群対応付け部１１３、重み演算部１１４、収束評価部１１５及び点群変換部１１６を合わせて「位置合わせ手段」といい、位置合わせ手段は、測定点と基準点とを位置合わせする。
【００３２】
入力部１１１は、３次元測定点データ演算部３４からの測定点データを取得し、格納部１１２は、ワーク５０の基準となる表面形状を表す基準点データを格納している。ワーク５０表面の欠陥評価を測定ブロック５２（図４）ごとに行う場合には、基準点データは、ワーク５０の測定領域５１の予め区分けされた測定ブロック５２ごとに対応するように、区分けされていてもよい。また、後述するように、格納部１１２には、間引き測定点群の各測定点に対応する基準点からなる間引き基準点群のデータも格納される。
【００３３】
点群対応付け部１１３は、Ｋ−Ｄtree等を用いて、各測定点が最も小さい対応点間距離（測定点と対応する基準点との間の距離）を有するように、測定点と基準点とを対応付ける。また、点群対応付け部１１３は、基準点と測定点とを対応付けた後に、各測定点間の隣接点間距離（測定点に係る隣接点間距離）及び／又は各基準点間の隣接点間距離（基準点に係る隣接点間距離）を算出する。
【００３４】
ここで、本実施形態では、所定の位置合わせアルゴリズムを用いて、測定ブロック５２ごとに、各測定点とそれに対応する基準点との間の距離（対応点間距離）を逐次収束させて、測定ブロック５２に含まれる複数の基準点（基準点群）と複数の測定点（測定点群）との位置合わせ処理を行う。所定の位置合わせアルゴリズムとしては、ＩＣＰ（Iterative Closest Point）アルゴリズムが用いられる。ＩＣＰアルゴリズムは、対応点間距離の２乗和を最小とする合同変換パラメータ（Ｒ，ｔ）を推定し、逐次収束させていくアルゴリズムである。ここで、Ｒは回転行列、ｔは平行移動ベクトルである。
【００３５】
重み演算部１１４は、点群対応付け部１１３により算出された基準点ｍｉに係る隣接点間距離（又は測定点ｓｉに係る隣接点間距離）ｄｉに基づいて、基準点ｍｉに係る隣接点間距離の重み係数（又は測定点ｓｉに係る隣接点間距離重み係数）γｉを算出する。ここで、ｉは、基準点（又は測定点）の点番号であって１≦ｉ≦ｋであり、ｋは、基準点（又は測定点）の総数（測定ブロック５２ごとに欠陥の評価を行う構成では、測定ブロック５２に含まれる基準点（又は測定点）の総数）である。
【００３６】
３次元位置座標（ｘｉ，ｙｉ，ｚｉ）を有する基準点ｍｉの隣接点間距離ｄｉは、三平方の定理より、
ｄｉ２＝ｘｉ２＋ｙｉ２＋ｚｉ２
となり、基準点に係る隣接点間距離の重み係数γｉは、重み関数をΓとすると、
γｉ＝Γ（ｄｉ２）
で求められる。例えば、重み関数Γを、ｄｉ２が所定の閾値以上のとき、γｉ＝０．０１となり、ｄｉ２が所定の閾値未満のとき、γｉ＝１となる関数としてもよい。当該所定の閾値は、基準点群や測定点群の特性により適切に決定することにより、想定している位置座標と実際の位置座標との誤差が大きいことが予想される測定点とそれに対応する基準点とが逐次収束評価に及ぼす影響を低減することができる。
【００３７】
このようなＩＣＰアルゴリズムを用いる位置合わせ処理において、Ｍ推定を導入し、対応点間距離に基づいて決定された対応点間距離の重み係数を逐次収束処理における逐次収束評価に用いる。例えば、測定点ｓｉ（又は対応する基準点ｍｉ）に係る対応点間距離をｅｉとすると、対応点間距離の重み係数ρｉは、重み関数をＰとすると、
ρｉ＝Ｐ（ｅｉ)
で求められる。ここで、重み関数Ｐを次のようなしきい値関数としてもよい。
｜ｅｉ｜が設定幅Ｂｉ以下の場合、
ρｉ＝(Ｂｉ２／２ ）(１−(１−(ｅｉ／Ｂｉ）２）
｜ｅｉ｜が設定幅Ｂｉを越える場合、
ρｉ＝(Ｂｉ２／２ ）。
【００３８】
逐次収束処理における逐次収束評価値Ｊは、全点数をＮとすれば、対応点間距離ｅｉ、対応点間距離の重み係数ρｉ及び隣接点間距離の重み係数γｉをパラメータとする評価関数Ｈを用いて以下の式より導出することができる。
Ｊ＝(１／Ｎ)ΣＨ(ｅｉ，ρｉ，γｉ）  …（１）
演算を簡単化するために、トータル重み係数ｗｉを各重み係数の乗算とし、
Ｊ＝(１／Ｎ)ΣＨ(ｅｉ，ｗｉ）、ｗｉ＝ρｉ×γｉ  …（２）
となる。
【００３９】
収束評価部１１５は、測定点群と基準点群とを位置合わせするための合同変換パラメータ（単に「パラメータ」ともいう。）を算出し、合同変換パラメータを用いて測定点群を基準点群に収束移動させようとする際に式（２）を用いて、その逐次収束評価値を算出し、測定点群の移動が基準点群に逐次収束していくかどうかを評価する。
【００４０】
点群変換部１１６は、収束評価部１１５によって収束すると判定された合同変換パラメータを用いて測定点群の位置座標を変換する。言い換えると、点群変換部１１６は、当該合同変換パラメータを用いて、測定点群を基準点群に向けて移動させる。また、点群変換部１１６は、各測定点に係る対応点間距離及びその平均値（平均対応点間距離）も算出する。
【００４１】
生成部１１７は、詳細には後述するが、各測定点に係る勾配強度を算出し、勾配強度とその点数に関するヒストグラムを作成する。そして、生成部１１７は、当該ヒストグラムの中から大きい勾配強度を有するビン（縦棒）から順にビンを加算していき、加算したビンに含まれていない測定点を全測定点から間引くことにより、間引き測定点群を生成する。
【００４２】
欠陥評価モジュール１２０は、誤対応測定点群抽出部１２１、欠陥判定部１２２、型修正による形状違い判定部１２３及び欠陥・型修正箇所判定部１２４を有する。誤対応測定点群抽出部１２１は、後述する表面欠陥の判定アルゴリズムに基づいて、欠陥に対応した測定点を含むと推定された領域である誤対応領域（欠陥の候補点）を抽出する。欠陥判定部１２２は、誤対応測定群抽出部１２１にて抽出された誤対応領域が欠陥であるか否かを判定する。
【００４３】
さて、測定対象物が金型製作されるような製品の場合、ロット生産の途中で金型の一部を修正した場合、金型修正後の正常に製作された製品の形状と、金型修正前の基準点データによる形状が一致しなくなり、その不一致を欠陥とみなしてしまう問題が生じる。後述する、型修正による形状違い判定ルーチンＳ６１３Ａ、Ｓ６１３Ｂ及び欠陥・型修正箇所判定ルーチンＳ６１８は、この問題を解決すべく、欠陥判定部１２２によって判定された欠陥がワーク５０に係る金型の修正により生じたものであるかどうかを欠陥情報を参照して判定する。
【００４４】
そこで、型修正による形状違い判定部１２３は、ワーク５０に係る金型に修正の可能性がある場合、金型の修正（「型修正」という。）があったか否かを判定する。また、欠陥・型修正箇所判定部１２４は、ワーク５０に係る金型に型修正の可能性がある場合、型修正があったか否かを判定した上で、その判定対象となる測定対象物に欠陥があるか否かも判定する。
【００４５】
なお、限定されないが、表面評価モジュール１１０及び欠陥評価モジュール１２０は、それぞれの評価をワーク５０において予め区分けされた測定ブロック５２ごとに行う。
【００４６】
ワーク５０が金型を用いて製作される場合、所定数の製品が製作されると磨耗等によって金型に寸法変動が生じることがある。このような寸法変動は、製品が正常に製作されているにもかかわらず、その測定点データと基準点データとの間のずれが生じることがある。このずれを欠陥と判定することを避けるためには、そのようなずれが生じるおそれのある領域の基準点データを正常に製作された製品の測定点データを基に修正することが好ましい。そこで、基準点データ変更モジュール１３０が設けられている。
【００４７】
基準点データ変更モジュール１３０は、入力部１３１、測定点データ形状判定部１３２及び基準点データ変更部１３３を有する。入力部１３１は、表面評価モジュール１１０で生成された測定点データと、測定対象物であるワーク５０の設計データである形状データとを入力し、内部処理可能な形式に変換した後、測定点データ形状判定部１３２に送る。測定点データ形状判定部１３２は、測定点データと設計データとを比較して、ワーク５０の形状が設計寸法の許容範囲内にあるかどうか判定する。そして、基準点データ変更部１３３は、格納部１１２にアクセスして、この測定点データで基準点データを変更する。
【００４８】
＜欠陥抽出方法＞
次に、本実施形態に係る欠陥抽出装置１を用いた、ワーク５０の欠陥抽出方法について説明する。
【００４９】
図５に示すように、従来技術では、対応点間距離の収束に時間がかかり、かつ、最終的に測定点と基準点との間の対応点間距離が０．１（ｍｍ）から小さくならない等、位置合わせ精度があまり良いものではなかったが、本実施形態に係る欠陥抽出方法は、収束速度を向上させ、かつ、最終的な測定点と基準点との間の対応点間距離が０．０００１（ｍｍ）となったように位置合わせ精度を向上させることができる。
【００５０】
ここで、限定されるものではないが、前述のようにワーク５０の表面の測定領域５１は所定の数の測定ブロック５２に区分けされている。１回のＸ軸方向走査で所定の数の測定ブロックを走査して、走査ピッチと撮像解像度によって規定される測定単位で光切断線Ｓに係るワーク５０表面の３次元表面形状を示す測定点データを取得して、測定ブロックごとにＲＡＭに格納する。１回のＸ軸方向走査が完了するとＹ軸方向移動を行い、次の測定ブロックに対するＸ軸方向走査を逆方向で行う。このような、Ｘ軸方向走査とＹ軸方向移動を繰り返すことで、ワーク５０表面の測定領域５１全体の測定点データを取得する。なお、測定死角の発生を考慮して、ワーク５０を９０度回転させた状態で、再度当該測定領域５１に対して測定を行うようにしてもよい。また、本実施形態では、ワーク５０の表面の欠陥検査は、測定ブロック５２単位で行われ、測定ブロック５２単位での欠陥判定結果をまとめて、最終的な欠陥判定が行われるが、これに限定されるものではない。
【００５１】
まず、ステップＳ６０１で、ユーザ又は搬送装置（不図示）によってワーク５０が回転テーブル７上にセットされる。ステップＳ６０２で、光源制御部３１は、レーザスリット投光器１３を制御して、スリット光ＳＬをワーク５０に照射させる。ステップＳ６０３で、Ｘステージ制御部３８、Ｙステージ制御部３９及び回転テーブル制御部３７は、測定開始ポイントである最初の測定ブロックがスリット光ＳＬで照射されるように、Ｘステージ５、Ｙステージ６及び回転テーブル７を作動させる。
【００５２】
ステップＳ６０４で、Ｘステージ制御部３８は、Ｘステージ５を制御して、Ｘステージ５をＸ軸正の方向に定速移動させる（Ｘ軸方向走査）。ステップＳ６０５で、Ｘ軸方向走査の間、カメラ１７は、ワーク５０を撮像して取得された画像データをコントローラ３０に送信し、送られてきた画像データは、対応する測定ブロック５２と関連付けられ画像メモリ３２に展開される。Ｘ軸方向走査及び画像データの取得は、スリット光ＳＬがワーク５０の測定領域５１のＸ軸側端に到達するまで行われる。
【００５３】
ステップＳ６０６で、コントローラ３０は、スリット光ＳＬがワーク５０の測定領域５１のＸ軸端に到達したかどうか判定する。到達した場合に（Ｓ６０６でＹｅｓ）、ステップＳ６０７で、Ｘステージ制御部３８は、Ｘステージ５の移動を停止させ、画像処理部３３は、画像メモリ３２に展開された画像データに対し、必要に応じて座標変換、レベル補正及びエッジ検出等の画像処理を施し、当該画像データの中から、スリット光ＳＬによる光切断線Ｓに対応するデータを抽出する。そして、３次元測定点データ演算部３４は、画像処理部３３で生成された光切断線Ｓに係る座標値から三角測量法に基づいて演算することで、ワーク５０表面の光切断線Ｓに対応する測定点群の各点について３次元位置座標（Ｘ，Ｙ，Ｚ）のデータ（測定点データ）を算出する。なお、前述のように、テーブルを用いて測定点データを算出するようにしてもよいし、測定ブロック５２に対する測定が終了するたびに、測定点データを算出するようにしてもよい。
【００５４】
ステップＳ６０８で、コントローラ３０は、全測定点から最初の位置合わせ処理に用いる測定点以外の測定点を間引くために用いる勾配強度を算出するために、勾配強度算出ルーチンを実行する。図７を用いて、勾配強度算出ルーチンＳ６０８について説明する。
【００５５】
ステップＳ７０１で、生成部１１７は、全測定点のデータを読み出す。ステップＳ７０２で、生成部１１７は、図８に示すように、ある測定点ｓ５について、それに隣接する測定点ｓ１〜ｓ４、ｓ６〜ｓ９の３次元位置座標（ｘ，ｙ，ｚ）を基に、ｘ方向の近傍については式（３）を用い測定点ｓ５の左右側として加重平均値ｘｌｗ及びｘｒｗを算出し、ｙ方向の近傍については式（４）を用い測定点ｓ５の上下側として荷重平均値ｙｕｗ及びｙｂｗを算出する。なお、ｚｌ０＝ｚｕ０、ｚｒ０＝ｚｕ２、ｚｌ２＝ｚｂ０、及びｚｒ２＝ｚｂ２である。
【数１】
0006384171.tif 000002
【数２】
0006384171.tif 000003
【００５６】
ステップＳ７０３で、生成部１１７は、式（５）及び（６）を用いて、ｘ領域の補間したｚ値及びｙ領域の補間したｚ値を線形補間により算出する。ここで、式（５）及び（６）において、ｘ０、ｘ１、ｚ０、ｚ１及びｙ０、ｙ１、ｚ０、ｚ１は、それぞれ加重平均値の線形上にある近傍座標を示す。
【数３】
0006384171.tif 000004
【数４】
0006384171.tif 000005
【００５７】
ステップＳ７０３で、さらに、生成部１１７は、ｘ方向の微分量及びｙ方向の微分量を、式（７）を用いて算出し、最終的に式（８）を用いて測定点ｓ５に係る勾配強度Ｉを算出する。このようにして、生成部１１７は、全測定点の各点に対して勾配強度を算出する。なお、勾配強度は、測定点と関連付けて、言い換えると測定点がどの程度の勾配強度を有しているかが分かるようにコントローラ３０のＲＡＭに記憶される。
【数５】
0006384171.tif 000006
【数６】
0006384171.tif 000007
【００５８】
ステップＳ７０４で、生成部１１７は、全測定点の各点に係る勾配強度を標準化する。例えば、全測定点のうち最大の勾配強度を有する測定点の勾配強度が１となるように、その他の測定点の勾配強度を、当該最大の勾配強度で割ることにより標準化する。
【００５９】
生成部１１７は、ステップＳ７０５で予め設定された点数閾値Ｔｐを読み出し、ステップＳ７０６で予め設定された点数閾値に係る許容値Δを読み出す。なお、限定されないが、点数閾値Ｔｐは全測定点の数の１００分の１程度であり、許容値Δは、０であってもよいし、点数閾値Ｔｐの１０％程度であってもよい。
【００６０】
ステップＳ７０７で、生成部１１７は、全測定点に係る標準化された勾配強度のヒストグラムを作成する。ヒストグラムのビン（縦棒）の幅を、例えば勾配強度０．１ごとに点数（測定点の数）を積み上げるように設定してもよい。
【００６１】
ステップＳ７０８で、生成部１１７は、当該ヒストグラムの中で最も大きい勾配強度（＝１．０）を有する測定点が含まれるビンから降順に、ビンを加算していく。ビンを加算した結果、合計の加算点数が点数閾値Ｔｐから許容値Δを引いた数（Ｔｐ−Δ）未満であれば（Ｓ７０９でＮｏ）、ステップＳ７０８が繰り返される。
【００６２】
ビンを加算していった結果、合計の加算点数が点数閾値から許容値を引いた数（Ｔｐ−Δ）以上である場合（Ｓ７０９でＹｅｓ）、ステップＳ７１０で、生成部１１７は、当該加算点数が点数閾値Ｔｐに許容値Δを加えた数（Ｔｐ＋Δ）以下であるかどうか判定する。言い換えると、点数閾値Ｔｐから許容値Δを引いた数（Ｔｐ−Δ）を第１の閾値とし、点数閾値Ｔｐから許容値Δを加えた数（Ｔｐ＋Δ）を第２の閾値とすると、ステップＳ７０９及びＳ７１０の条件を満たす範囲は、第１の閾値≦加算点数≦第２の閾値である。
【００６３】
加算点数が点数閾値Ｔｐに許容値Δを加えた数（Ｔｐ＋Δ）より大きい場合（Ｓ７１０でＮｏ）、ステップＳ７１１で、生成部１１７は、Ｔｐ＋Δを超えてしまう原因となったビンを加算する前の値に加算点数を戻し、その原因となったビンの分解能を１０倍に上げ（言い換えると、ステップＳ７０７で作成したヒストグラムの当該ビンの幅を１０分の１に狭め）、局所的に分解能を上げたヒストグラムを作成する。なお、１０倍に限定されるものではなく、５倍であってもよいし、２倍であってもよい。
【００６４】
加算点数が点数閾値Ｔｐに許容値Δを加えた数（Ｔｐ＋Δ）以下の場合（Ｓ７１０でＹｅｓ）、ステップＳ７１２で、生成部１１７は、加算したビンに含まれる測定点以外の測定点を全測定点の中から間引き（取り除き）、加算したビンに含まれる測定点（言い換えると、全測定点の中で勾配強度が大きいほうから所定数の測定点）からなる測定点群（「間引き測定点群」という。）のデータを生成する。
【００６５】
例えば、図９に示すように、全測定点の勾配強度についてヒストグラム９００が得られたとする。最も大きい勾配強度を有する測定点が含まれるビン９０１から降順に、その次のビン９０２、９０３、９０４…といった具合にビンを積み上げ、最終的にビン９１０まで加算したときに、ステップＳ７０９及びＳ７１０の条件を満たしたとする。そして、加算したビン９０１〜９１０に含まれる測定点以外の測定点を全測定点の中から間引き、加算したビン９０１〜９１０に含まれる測定点からからなる間引き測定点群９２０のデータを生成する。
【００６６】
図６Ａの説明に戻って、同種のワーク５０に対する追加の基準点データが無い場合（つまり型修正後の基準点データが無い場合）(Ｓ６０９でＮｏ)、ステップＳ６１０で、表面評価モジュール１１０は、ＩＣＰアルゴリズムを用いて、間引き測定点群と対応する基準点群（「間引き基準点群」という。）との間の位置合わせ処理を行う（間引き測定点群に対する位置合わせルーチン）。このステップは、言わば、測定点と基準点との間の高速位置合わせ処理である。
【００６７】
図１０を用いて、間引き測定点群に対する位置合わせルーチンＳ６１０について説明する。まず、表面評価モジュール１１０の入力部１１１は、ステップＳ１００１で、間引き測定点群のデータを読み出し、ステップＳ１００２で、当該間引き測定点群の各測定点に対応する基準点（間引き基準点群）のデータを格納部１１２から読み出す。
【００６８】
ステップＳ１００３で、点群対応付け部１１３は、Ｋ−Ｄtree等を用いて、間引き測定点群の各測定点が最も小さい対応点間距離を有するように測定点と基準点とを対応付ける。また、点群対応付け部１１３は、各測定点間の隣接点間距離及び各基準点間の隣接点間距離も算出する。
【００６９】
ステップＳ１００４で、重み演算部１１４は、間引き測定点群の測定点ｓｉに関する対応点間距離に基づく重み係数ρｉと、基準点（又は測定点）に係る隣接点間距離に基づく重み係数γｉを算出し、これらを掛けあわせてトータル重み係数ｗｉ（＝ρｉ×γｉ）を算出する。
【００７０】
ステップＳ１００５で、収束評価部１１５は、式（２）を用いて、逐次収束評価値を算出する。ステップＳ１００６で、収束評価部１１５は、算出された逐次収束評価値に基づいてこの対応付けられた対応点群が逐次収束しているかどうか判定する。収束しない場合（Ｓ１００６でＮｏ）、ステップＳ１００３に戻る。
【００７１】
収束する場合（Ｓ１００６でＹｅｓ）、ステップＳ１００７で、収束評価部１１５は、間引き測定点群と間引き基準点群とができる限り一致するような合同変換パラメータ（Ｒ，ｔ）（「第１のパラメータ」ともいう。）を生成する。ここで、Ｒは回転行列、ｔは並進移動ベクトルである。
【００７２】
ステップＳ１００８で、点群変換部１１６は、ステップＳ１００７で生成された合同変換パラメータを用いて、間引き測定点群の各測定点の位置座標を変換し、間引き測定点群を移動させる。また、ステップＳ１００９で、点群変換部１１６は、当該合同変換パラメータを用いて、全測定点の位置座標を変換し、全測定点を移動させる。なお、変換された位置座標を有する全測定点のデータは、後述する全点位置合わせルーチンＳ６１１で使用されるため、コントローラ３０のＲＡＭに一時的に保存される。
【００７３】
ステップＳ１０１０で、点群変換部１１６は、移動後の間引き測定点群の各測定点について対応する基準点との間の対応点間距離を算出し、その平均値も算出する。
【００７４】
ステップＳ１０１１で、表面評価モジュール１１０は、移動後の間引き測定点群に係る対応点間距離の平均値と予め設定された閾値とを比較し、終了条件が満たされたかどうか（言い換えると、対応点間距離の平均値が当該所定の閾値以下であるかどうか）を判定する。なお、この判定ステップＳ１０１１において、上限の繰り返し回数を付加的に設定しておくと好都合である。終了条件が満たされていない場合（Ｓ１０１１でＮｏ）、ステップＳ１００３に戻る。終了条件が満たされた場合（Ｓ１０１１でＹｅｓ）、この間引き測定点群に対する位置合わせルーチンは終了する。
【００７５】
図６Ａの説明に戻り、間引き測定点群に対する位置合わせルーチンＳ６１０が終了すると、ステップＳ６１１で、ステップＳ１００９において移動させた全測定点に対する位置合わせルーチンが行われる。このステップは、言わば、位置合わせの最終的な微調整処理である。図１１を用いて、間引き測定点群に対する位置合わせルーチンＳ６１１について説明する。
【００７６】
まず、入力部１１１は、ステップＳ１１０１で、ステップＳ１００９において移動させた全測定点のデータ（移動後の全測定点の各点に係る変換後の位置座標のデータ）を読み出し、ステップＳ１１０２で、全基準点のデータを格納部１１２から読み出す。
【００７７】
ステップＳ１１０３で、点群対応付け部１１３は、Ｋ−Ｄtree等を用いて、全測定点の各点が最も小さい対応点間距離を有するように測定点と基準点とを対応付ける。また、点群対応付け部１１３は、各測定点間の隣接点間距離及び各基準点間の隣接点間距離も算出する。
【００７８】
ステップＳ１１０４で、重み演算部１１４は、測定点ｓｉに関する対応点間距離に基づく重み係数ρｉと、基準点（又は測定点）に係る隣接点間距離に基づく重み係数γｉを算出し、これらを掛けあわせてトータル重み係数ｗｉ（＝ρｉ×γｉ）を算出する。
【００７９】
ステップＳ１１０５で、収束評価部１１５は、式（２）を用いて、逐次収束評価値を算出する。ステップＳ１１０６で、収束評価部１１５は、算出された逐次収束評価値に基づいてこの対応付けられた対応点群が逐次収束しているかどうか判定する。収束しない場合（Ｓ１１０６でＮｏ）、ステップＳ１１０３に戻る。
【００８０】
収束する場合（Ｓ１１０６でＹｅｓ）、ステップＳ１１０７で、収束評価部１１５は、全測定点と全基準点とができる限り一致するような合同変換パラメータ（Ｒ，ｔ）（「第２のパラメータ」ともいう。）を生成する。
【００８１】
ステップＳ１１０８で、点群変換部１１６は、ステップＳ１１０７で生成された合同変換パラメータを用いて、全測定点の位置座標を変換し、全測定点を移動させる。ステップＳ１１０９で、点群変換部１１６は、移動後の全測定点の各点について対応する基準点との間の対応点間距離を算出し、その平均値も算出する。
【００８２】
ステップＳ１１１０で、表面評価モジュール１１０は、算出された対応点間距離の平均値と予め設定された閾値とを比較し、終了条件が満たされたかどうか（言い換えると、対応点間距離の平均値が当該所定の閾値以下であるかどうか）を判定する。ここで、ステップＳ１１１０における当該閾値は、ステップＳ１０１１における閾値よりも小さい値に設定し、ステップＳ１１１０では、ステップＳ１０１１よりも高い位置合わせ精度が要求されるようにしてもよい。なお、この判定ステップＳ１１１０において、上限の繰り返し回数を付加的に設定しておくと好都合である。終了条件が満たされていない場合（Ｓ１１１０でＮｏ）、ステップＳ１１０３に戻る。終了条件が満たされた場合（Ｓ１１１０でＹｅｓ）、この間引き測定点群に対する位置合わせルーチンは終了する。
【００８３】
図６Ａの説明に戻り、ステップＳ６１２で、欠陥評価モジュール１２０は、表面欠陥領域の検出を行う欠陥判定ルーチンを実行する。図１２を用いて、欠陥判定ルーチンＳ６１２について説明する。
【００８４】
ステップＳ１２０１で、対応測定群抽出部１２１は、対応点間距離に係る閾値を用いて、対応する基準点との間の対応点間距離が所定の閾値以上となる測定点の集合体（「特定測定点群」という。）を誤対応領域として抽出する処理を実行する。
【００８５】
誤対応領域が抽出されなかった場合（Ｓ１２０２でＮｏ）、この欠陥判定ルーチンは終了する。誤対応領域が抽出された場合（Ｓ１２０２でＹｅｓ）、ステップＳ１２０３で、欠陥判定部１２２は、当該誤対応領域に含まれている測定点それぞれの間の隣接点間距離が予め設定されている閾値以下となる集合をひと塊として、当該集合ごとに番号を付けるラベリング処理を行う。
【００８６】
ステップＳ１２０４で、欠陥判定部１２２は、当該集合ごとに特徴量（重心、等価楕円体長軸長、等価楕円体長軸角度、フェレ径等）を算出する。欠陥判定部１２２は、その特徴量が所定の設定値よりも大きい場合（Ｓ１２０５でＹｅｓ）、当該集合を欠陥と判定し、その情報をコントローラ３０の記憶装置に記憶させる。なお、欠陥判定部１２２は、特徴量が設定値以下である場合（Ｓ１２０５でＮｏ）、欠陥と判定せずその情報を記録せず、このルーチンは終了する。
【００８７】
図６Ａの説明に戻り、欠陥判定ルーチンＳ６１２が終了すると、次のステップで、欠陥評価モジュール１２０は、型修正による形状違い判定ルーチンを実行する。このルーチンでは、以下図１３及び１４を用いて説明する２種類の型修正による形状違い判定ルーチンＳ６１３Ａ、Ｓ６１３Ｂのいずれかが実行される。いずれのルーチンを使用するかはワーク５０の種類等に応じて変更してもよい。例えば、深溝等のエッジを抽出できるワーク５０に対しては、型修正による形状違い判定ルーチンＳ６１３Ｂを使用し、そうでないワーク５０に対しては型修正による形状違い判定ルーチンＳ６１３Ａを使用するようにすればよい。
【００８８】
まず、図１３に示す第１の型修正による形状違い判定ルーチンＳ６１３Ａでは、ワーク５０に係る金型の型修正による形状違いの影響が、型修正後の異なるワーク５０同士で同じ位置・同じ場所に発生することを利用するものである。
【００８９】
型修正による形状違い判定部１２３は、ステップＳ１３０１で前回の測定対象物（ワーク５０）の欠陥の特徴量を読み出し、ステップＳ１３０２で今回の測定対象物の欠陥の特徴量を読み出す。
【００９０】
次に、型修正による形状違い判定部１２３は、前回と今回の欠陥の特徴量（重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等）の差が所定の範囲内にあれば（Ｓ１３０３でＹｅｓ）、ステップＳ１３０４で型修正箇所有りと判定し、当該所定の範囲外ならば（Ｓ１３０３でＮｏ）、ステップＳ１３０５で型修正箇所無しと判定する。
【００９１】
次に、図１４に示す第２の型修正による形状違い判定ルーチンＳ６１３Ｂでは、ワーク５０の型修正による形状違いが型修正前の形状と類似していることを利用するものである。
【００９２】
ステップＳ１４０１で、型修正による形状違い判定部１２３は、基準点データを読み出す。エッジに係る測定点（エッジ測定点）の抽出が比較的可能な深溝等を有するワーク５０に対する処理の場合には、当該基準点データには、全基準点のデータに加えて、当該ワークのエッジに係るエッジ基準点のデータも含まれる。
【００９３】
ステップＳ１４０２で、型修正による形状違い判定部１２３は、今回の測定対象物の欠陥の特徴量を読み出す。ステップＳ１４０３で、型修正による形状違い判定部１２３は、読み出した基準点データと特徴量とから、当該欠陥がワーク５０の垂直な側面部又は底面部（若しくは上面）に対応するものであるのか判定する。
【００９４】
垂直な側面部に対応する場合（Ｓ１４０３でＹｅｓ）、型修正による形状違い判定部１２３は、ステップＳ１４０４で当該欠陥と同程度の領域をエッジ基準点データから抽出し、ステップＳ１４０５で、当該欠陥に係る測定点とエッジ基準点とで位置合わせ処理を行う。この位置合わせ処理は、ステップＳ６１０と同様であり、説明を省略する。
【００９５】
垂直な側面部に対応しない場合（Ｓ１４０３でＮｏ）、型修正による形状違い判定部１２３は、ステップＳ１４０６で当該欠陥と同程度の領域を全基準点データから抽出し、ステップＳ１４０７で、当該欠陥に係る測定点と全基準点とで位置合わせ処理を行う。この位置合わせ処理は、ステップＳ６１０と同様であり、説明を省略する。
【００９６】
ステップＳ１４０８で、型修正による形状違い判定部１２３は、当該欠陥に係る測定点が示すワーク５０の形状と基準形状との類似度を算出する。当該類似度は、特徴量（例えば等価楕円長軸長）を対応点間距離の平均値で割った値とする。
【００９７】
ステップＳ１４０９で、型修正による形状違い判定部１２３は、類似度が所定の閾値よりも高いか否か判定する。高い場合（Ｓ１４０９でＹｅｓ）、型修正による形状違い判定部１２３は、型修正箇所が有ると判定し、低い場合（Ｓ１４０９でＮｏ）、型修正による形状違い判定部１２３は、型修正箇所が無いと判定する。
【００９８】
図６Ａの説明に戻り、型修正による形状違い判定ルーチンＳ６１３Ａ又はＳ６１３Ｂが終了し、型修正箇所がある場合（Ｓ６１４でＹｅｓ）には、欠陥評価モジュール１２０は、その測定ブロック５２に関する基準点データを新たに型修正後の基準点データとして追加し(Ｓ６１５)、型修正箇所が無ければ（Ｓ６１４でＮｏ）追加しない。
【００９９】
ステップＳ６０９の説明に戻り、同種のワーク５０（測定対象物）について追加の基準点データが有る場合（つまり型修正後の基準点データが有る場合）(Ｓ６０９でＹｅｓ)、ステップＳ６１６で、表面評価モジュール１１０は、上述したＩＣＰアルゴリズムを用いて、間引き測定点群と型修正前の基準点群との間の位置合わせ処理、及び間引き測定点群と型修正後の基準点群との間の位置合わせ処理を行う位置合わせルーチンを実行する。位置合わせルーチンＳ６１６の詳細は、位置合わせルーチンＳ６１０と同様であり、説明を省略する。
【０１００】
また、ステップＳ６１７で、表面評価モジュール１１０は、上述したＩＣＰアルゴリズムを用いて、全測定点群と型修正前の基準点群との間の位置合わせ処理、及び全測定点群と型修正後の基準点群との間の位置合わせ処理を行う位置合わせルーチンを実行する。位置合わせルーチンＳ６１７の詳細は、位置合わせルーチンＳ６１１と同様であり、説明を省略する。
【０１０１】
位置合わせルーチンＳ６１７が終了すると、ステップＳ６１８で、欠陥評価モジュール１２０は、ワーク５０に係る金型の型修正前と型修正後のワーク５０が混在しても、基準点群からずれた測定点群が欠陥なのか、あるいは型修正箇所なのかを判定する欠陥・型修正箇所判定ルーチンを実行する。図１５を用いて、この判定ルーチンＳ６１８を説明する。
【０１０２】
まず、ステップＳ１５０１で、誤対応測定群抽出部１２１は、型修正前の基準点データを基に、所定の閾値以上の対応点間距離を有する測定点の集合（つまり、特定測定点群）を誤対応領域として抽出する。誤対応領域が抽出されなかった場合（Ｓ１５０１でＮｏ）、ステップＳ１５０７に進む。
【０１０３】
誤対応領域が抽出された場合（Ｓ１５０１でＹｅｓ）、欠陥判定部１２２は、ステップＳ１５０３で、当該誤対応領域に含まれている測定点のうち、予め設定され閾値以下の隣接点間距離を有する測定点の集合をひと塊として、当該集合ごとに番号を付けるラベリング処理を行い、ステップＳ１５０４で、当該集合ごとに特徴量（重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等）を算出する。
【０１０４】
ある集合に係る特徴量が所定の設定値よりも大きい場合（Ｓ１５０５でＹｅｓ）、ステップＳ１５０６で、欠陥判定部１２２は、当該特徴量を有する当該集合を欠陥と判定し、その情報を第１の欠陥情報としてコントローラ３０のＲＡＭに記録する。全ての集合に係る特徴量が所定の設定値以下である場合（Ｓ１５０５でＮｏ）、欠陥判定部１２２は、全ての集合に欠陥が無いと判定し、その情報を記録しない。
【０１０５】
ステップＳ１５０７で、誤対応測定群抽出部１２１は、型修正後の基準点データを基に、所定の閾値以上の対応点間距離を有する測定点の集合（つまり、特定測定点群）を誤対応領域として抽出する。誤対応領域が抽出されなかった場合（Ｓ１５０８でＮｏ）、ステップＳ１５１３に進む。
【０１０６】
誤対応領域が抽出された場合（Ｓ１５０８でＹｅｓ）、欠陥判定部１２２は、ステップＳ１５０９で、当該誤対応領域に含まれている測定点のうち、予め設定され閾値以下の隣接点間距離を有する測定点の集合をひと塊りとして、当該集合ごとに番号を付けるラベリング処理を行い、ステップＳ１５１０で、当該集合ごとに特徴量（重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等）を算出する。
【０１０７】
ある集合に係る特徴量が所定の設定値よりも大きい場合（Ｓ１５１１でＹｅｓ）、ステップＳ１５０６で、欠陥判定部１２２は、当該特徴量を有する当該集合を欠陥と判定し、その情報を第２の欠陥情報としてコントローラ３０のＲＡＭに記録する。全ての集合に係る特徴量が所定の設定値以下である場合（Ｓ１５１１でＮｏ）、欠陥判定部１２２は、全ての集合に欠陥が無いと判定し、その情報を記録しない。
【０１０８】
次に、ステップＳ１５０１〜Ｓ１５１２にて抽出された欠陥が、ワーク５０に係る金型の型修正による形状違いによるものではなく、本当の欠陥なら、型修正前と型修正後の両方の基準点データを基にした評価において欠陥として抽出されると考えられる。そこで、欠陥・型修正箇所判定部１２４は、第１の欠陥情報及び第２の欠陥情報の両方に欠陥として判定された共通の集合（塊）がある場合（Ｓ１５１３でＹｅｓ）、ステップＳ１５１４で、それら共通の集合（塊）を欠陥として判定する。そうでない場合は、欠陥ではない判定する（Ｓ１５１３でＮｏ）。
【０１０９】
次に、Ｓ１５０１〜Ｓ１５１２にて抽出された欠陥が型修正前の基準点データからのみを検出した場合（言い換えると、第１の欠陥情報は得られたが、第２の欠陥情報は得られなかった場合）（Ｓ１５１５でＹｅｓ）、ステップＳ１５１６で、欠陥・型修正箇所判定部１２４は、第１の欠陥情報が欠陥によるものではなく、金型の型修正に起因するものであると判定し、第１の欠陥情報を、型修正箇所とみなし、型修正後のワーク５０（測定対象物）の数をカウントする。第２の欠陥情報のみ取得された場合、又は第１及び第２の欠陥情報が取得されない場合（Ｓ１５１５でＮｏ）、欠陥・型修正箇所判定ルーチンＳ６１８は終了する。
【０１１０】
図６Ａの説明に戻り、欠陥・型修正箇所判定ルーチンＳ６１８が終了すると、ステップＳ６１９で、欠陥評価モジュール１２０は、型修正後のワーク５０（測定対象物）の数が所定の設定値以下か否かを判定し、型修正前と型修正後の測定対象物が混在しているかどうか判定する。
【０１１１】
型修正後のワーク５０の数が所定の設定値以下なら型修正前後のワーク５０が混載していると判定され（Ｓ６１９でＹｅｓ）、ステップＳ６２２に進む。他方、型修正後のワーク５０の数が所定の設定値より多い場合は型修正前のワーク５０が無いと判定され（Ｓ６１９でＮｏ）、欠陥評価モジュール１２０は、ステップＳ６２０で型修正前の基準点データを消去し、ステップＳ６２１で型修正後のワーク５０の数のカウントをリセットする。
【０１１２】
なお、ステップＳ６０６でＸ軸方向走査を停止すると、ステップＳ６０７からＳ６２１が行われると同時に、Ｙステージ制御部３９は、ステップＳ６２２で、Ｙステージ６を動作させ、所定のピッチでワーク５０をＹ軸方向にシフトさせる。ステップＳ６０７からＳ６２１の処理及びＹ軸方向のシフト処理Ｓ６２２が終了すると、ステップＳ６２４で、コントローラ３０は、Ｘ軸方向走査をすべきワーク５０上の測定領域がまだ残っているかどうか判定する（図６Ｂ）。
【０１１３】
Ｘ軸方向走査をすべき測定領域が残っている場合（Ｓ６２４でＹｅｓ）、ステップＳ６２３で、Ｘステージ制御部３８は、Ｘ軸方向走査の方向が反転するようにＸステージ５を作動させる。そして、ステップＳ６０４〜Ｓ６２４まで同様の処理が行われる。Ｘ軸方向走査をすべき測定領域が残っていない場合（Ｓ６２４でＮｏ）、ステップＳ６２５で、光源制御部３１は、レーザスリット投光器１３の電源を落とし、スリット光ＳＬの照射が停止される。
【０１１４】
ステップＳ６２６で、コントローラ３０は、測定死角の発生に伴う測定不能箇所の測定データを補完するために、回転テーブル７を９０度回転させる必要があるかどうか判定する。当該判定の基準は、予めワーク５０の形状等に応じて予めユーザが指定しておいてもよいし、コントローラ３０が測定点データの取得状況を考慮して自ら判定してもよい。
【０１１５】
回転テーブル７を９０度回転させる必要がある場合（Ｓ６２６でＹｅｓ）、回転テーブル制御部３７は、回転テーブル７を９０度回転させる。次いで、再びステップＳ６０２に戻り、同様の処理が繰り返される。なお、この９０度の追加回転で不十分な場合には、最初の姿勢位置に対する１８０度位置と２７０度位置を行うようにしてもよい。
【０１１６】
回転テーブル７を９０度回転させる必要がない場合は（Ｓ６２６でＮｏ）、ステップＳ６２７で、コントローラ３０は、全ての測定ブロックにおける欠陥評価の結果に基づいて総合判定を行う。この総合判定において、ワーク５０の全体を示す全体図の上で欠陥の位置をマーキングした欠陥位置表示図が入出力デバイス４０（モニタ等）を通じて出力される。
【０１１７】
次に、ワーク５０に係る金型の摩耗に起因する形状違いによる誤判定を防止するために、基準点データ変更部１３３は、基準点データを所定の頻度で変更する基準点データ変更ルーチンＳ６２８を実行する。図１６を用いて、基準点データ変更ルーチンＳ６２８について説明する。
【０１１８】
ステップＳ１６０１で、基準点データ変更部１３３は、ワーク５０の数をカウントし、その数が所定の設定数以下なら（Ｓ１６０２でＮｏ）、このルーチンは終了する。ワーク５０の数が所定の設定数よりも大きいと（Ｓ１６０２でＹｅｓ）、ステップＳ１６０３で、基準データ変更部１３３は、そのワーク５０に欠陥有りかどうか判定する。ワーク５０に欠陥がある場合には（Ｓ１６０３でＹｅｓ）、このルーチンは終了する。欠陥が無い場合（Ｓ１６０３でＮｏ）、ステップＳ１６０５で、測定点データ形状判定部１３２は、入力部１３１が読み出した測定点データからワーク５０の形状が設計寸法どおりに形成されているか判定するする。形状がＮＧの場合（言い換えると、測定点データから推定されるワーク５０の形状が設計寸法どおりの形状でない場合）（Ｓ１６０５でＮｏ）、このルーチンは終了し、ＯＫの場合（言い換えると、測定点データから推定されるワーク５０の形状が設計寸法どおりの形状である場合）（Ｓ１６０５でＹｅｓ）、ステップＳ１６０６で、基準点データ変更部１３３は、測定点データを基準点データに変更する。
【０１１９】
このようにして、本実施形態に係る欠陥抽出装置１は、全測定点の中からから大きい勾配強度を有する測定点（間引き測定点群）と対応する基準点との間の位置合わせ処理を行った後、全測定点と全基準点との間の位置合わせ処理を行う。このように、最初の位置合わせ処理で、位置合わせ処理すべき測定点の数を大幅に（約１００分の一程度に）減らして基準点との位置合わせを少ないデータ量で高速に行うことができ、その後の全測定点に対する位置合わせ処理でより高精度に位置合わせするために微調整することができる。これにより、全ての測定点のみに対する位置合わせ処理を行う従来の場合に比べて、測定点と基準点との位置合わせ処理に費やす時間を大幅に（約３００分の一に）低減するとともに、位置合わせ精度も大幅に（約１０００倍に）向上し、製造現場における検査ラインにも十分に用いることが可能となる。
【０１２０】
また、エッジのような輪郭的特徴を有しないワークに関しては、勾配強度の大きい測定点の数は、図９のヒストグラムに示すように全数に対して非常に少ない。そのため、全測定点のみを用いて位置合わせ処理を行っても、そのような少ない数の測定点の影響は無視され、大きい勾配強度を有する測定点に対する位置合わせ精度が比較的低減しやすい問題があるが、本発明は、勾配強度の大きい方から所定数の測定点を間引き測定点群として採用し、間引き測定点群に対する位置合わせ処理を最初に行うようにしているため、そのような問題をも解決する。その結果、全測定点に対する位置合わせの精度が向上し、ひいては欠陥抽出の精度も向上する。
【０１２１】
（その他）
なお、本発明の欠陥抽出処理に係るコントローラ３０の各部が有する作用・機能は、別の部にその作用・機能を持たせても良い。例えば、収束評価部１１５が点群変換部１１６や生成部の機能を有していてもよいし、欠陥判定部１２２が誤対応測定点群抽出部１２１の機能を有していてもよい。
【符号の説明】
【０１２２】
１：欠陥抽出装置、３０：コントローラ、１００：評価モジュール、１１１：入力部、１１２：格納部、１１５：収束評価部、１１６：点群変換部、１１７：生成部、１２１：誤対応測定点群抽出部、１２２：欠陥判定部
【図１】
0006384171.tif 000008
【図２】
0006384171.tif 000009
【図３】
0006384171.tif 000010
【図４】
0006384171.tif 000011
【図５】
0006384171.tif 000012
【図６Ａ】
0006384171.tif 000013
【図６Ｂ】
0006384171.tif 000014
【図７】
0006384171.tif 000015
【図８】
0006384171.tif 000016
【図９】
0006384171.tif 000017
【図１０】
0006384171.tif 000018
【図１１】
0006384171.tif 000019
【図１２】
0006384171.tif 000020
【図１３】
0006384171.tif 000021
【図１４】
0006384171.tif 000022
【図１５】
0006384171.tif 000023
【図１６】
0006384171.tif 000024
【図１７】
0006384171.tif 000025