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