(57)【特許請求の範囲】
【請求項１】
ビジョンシステムを作動させ、物体のエッジ形状に沿った複数のエッジポイントのひと組の座標値を決定する方法であって、前記複数のエッジポイントが前記エッジ形状の画像の視野深度よりも大きい深度範囲に亘って延伸するものにおける方法において、
少なくとも最後の前回エッジポイント画像における少なくとも最後の前回エッジポイントの座標値を決定する第１のステップと、
前記最後の前回エッジポイントのＸＹ位置に少なくとも部分的に基づいて、次回エッジポイントＸＹ試し位置を自動的に決定する第２のステップと、
前記次回エッジポイントＸＹ試し位置と以前に獲得されたデータとに基づいて、所望の次回エッジポイント原画像を決定する第３のステップと、
前記所望の次回エッジポイント原画像における次回エッジポイントを探索する第４のステップと
を有することを特徴とするエッジ形状決定方法。
【請求項２】
前記以前に獲得されたデータは、複数の対応する焦点位置で獲得された複数の画像で構成され、前記第３のステップは、前記次回エッジポイントＸＹ試し位置の近傍で最良の合焦状態をもつべく決定された前記複数の画像の１つを選択するステップから成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項３】
前記以前に獲得されたデータは、前記最後の前回エッジポイント及び該最後の前回エッジポイントの前の前回エッジポイントにおける前記決定された座標値から構成され、前記第３のステップは、
前記最後の前回エッジポイント及び該最後の前回エッジポイントの前の前記前回エッジポイントにおける前記決定された座標値を通過するラインを決定するステップと、
前記次回エッジポイントＸＹ試し位置の近傍における前記ライン上の補外されたＺ座標値を決定するステップと、
前記決定されたＺ座標値に基づいた焦点位置で、前記所望の次回エッジポイント原画像を獲得するステップと
から成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項４】
前記以前に獲得されたデータは、複数の対応する焦点位置で獲得された複数の画像で構成され、前記第３のステップは、
前記複数の画像の少なくともいくつかにおける前記次回エッジポイントＸＹ試し位置の近傍での焦点特徴（a focus characterization）を決定するステップと、
前記対応する焦点位置の関数として、曲線を前記決定された焦点特徴に適合させるステップと、
前記適合された曲線のピークに対応する最良の焦点位置を決定するステップと、
前記決定された最良の焦点位置に基づいて所望の次回エッジポイント原画像を獲得するステップと
から成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項５】
前記焦点特徴はコントラスト値から成ることを特徴とする請求項４記載のエッジ形状決定方法。
【請求項６】
前記コントラスト値は、前記複数の画像の前記少なくともいくつかにおける走査ラインに沿って決定されるピーク勾配値（a peak-gradient value）から成ることを特徴とする請求項５記載のエッジ形状決定方法。
【請求項７】
前記第３のステップは、
前記次回エッジポイントＸＹ試し位置及び前記以前に獲得されたデータに基づいて所望の次回エッジポイント焦点位置を決定するステップと、
前記所望の次回エッジポイント焦点位置に基づいて所望の次回エッジポイント原画像を決定するステップと
から成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項８】
前記以前に獲得されたデータは、前記最後の前回エッジポイントのＺ座標値で構成され、前記第３のステップは、
前記最後の前回エッジポイントの前記Ｚ座標値に少なくとも部分的に基づいて複数の焦点位置を決定するステップと、
前記決定された複数の焦点位置に対応するとともに、前記次回エッジポイントＸＹ試し位置を含む複数の画像を獲得するステップと、
前記獲得された複数の画像に基づき所望の次回エッジポイント原画像を決定するステップと
から成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項９】
前記第４のステップが前記次回エッジポイントの座標値を決定するとき、前記エッジ形状決定方法では更に、
前記決定された次回エッジポイントが前記最後の前回エッジポイントになり、
前記所望の次回エッジポイント画像が前記最後の前回エッジポイント画像になり、
前記エッジ形状決定方法が、前記第２のステップを反復的に実行し続ける
ことを特徴とする請求項１記載のエッジ形状決定方法。
【請求項１０】
前記第４のステップは、
前記最後の前回エッジポイントから現在の走査ラインサンプリング間隔だけ離れて位置する走査ラインであって、前記所望の次回エッジポイント原画像内の前記次回エッジポイントＸＹ試し位置と一致する走査ラインに沿って、少なくとも１つのエッジ検出処理を行うステップ
から成ることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項１１】
前記次回エッジポイントＸＹ試し位置と一致する走査ラインに沿った前記少なくとも１つのエッジ検出処理が、エッジポイントを検出できないならば、前記最後の前回エッジポイントから前記現在の走査ラインサンプリング間隔の１／２だけ離れて位置する新走査ラインを定義し、該新走査ラインと一致する新次回エッジポイントＸＹ試し位置を確立し、前記第３のステップ及び前記第４のステップの実行を繰り返すことを特徴とする請求項１０記載のエッジ形状決定方法。
【請求項１２】
前記現在の走査ラインサンプリング間隔の前記１／２が所定の最小走査ラインサンプリング間隔よりも小さいとき、前記第４のステップは更に、
前記現在の走査ラインサンプリング間隔より大きい新走査ラインサンプリング間隔を定義するステップと、
前記最後の前回エッジポイントに中心を置き、前記新走査ラインサンプリング間隔に等しい半径をもつ円パターンに接するところの多数の方向において決定される走査ラインに沿って、エッジポイントが検出されるまで、エッジ検出処理を実行するステップと
から成ることを特徴とする請求項１１記載のエッジ形状決定方法。
【請求項１３】
前記エッジ形状決定方法は、学習モード処理の間にビジョンシステムを作動させるために使用されることを特徴とする請求項１記載のエッジ形状決定方法。
【請求項１４】
前記エッジ形状決定方法は、ランモード処理の間にビジョンシステムを作動させるために使用されることを特徴とする請求項１記載のエッジ形状決定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物体を光学的及び電子的に走査し測定するエッジ形状決定方法及び装置に関し、特に、３次元物体のエッジを自動的に決定するエッジ形状決定方法に関する。
【０００２】
【従来の技術】
走査物体の高精度な寸法測定値を得るためにコンピュータビジョンシステムを利用することができる。こうしたシステムは、コンピュータと、カメラ及びステージを備えた光学システムとを含み、このステージは、カメラが走査対象物体のエッジ形状に沿って移動することを可能にするべく動作する。市販されている従来システムの一例は、米国イリノイ州オーロラにある Mitutoyo America Corporation (MAC) から提供されるビジョン検査機の QUICK VISION（登録商標）シリーズ及び QVPAK（登録商標）ソフトウエアである。この製品は、物体の連続エッジ形状に沿ってポイントを検出するように設計され、単一のビデオ画像の限度を超えた形状に沿って必要に応じてステージを自動的に動かす２次元自動トレースエッジ検出ツールを含む。単一のビデオ画像には、そうしたシステムの所望の倍率、測定解像度及び物理的サイズの限度を与えられた走査対象物体の一部分だけの画像がしばしば含まれる。２次元自動トレースエッジ検出ツールは、ビジョンシステムが「学習」モードで作動しているとき、時間の節約に役立つ。なお「学習」モードでは、多数のビデオ画像に亘るかもしれない比較的長いエッジ形状の各種特性を測定することが継続的にプログラムされている。このツールは、ランタイムにおける特定サンプルのエッジ形状情報に基づき、そのトレース経路を決定する又は変更する能力を有するので、固定された位置及び予めプログラムされたエッジ形状に頼るエッジツールで発生するランタイム不足を回避することにも役立つ。
【０００３】
２次元自動トレースエッジ検出ツールは、図１１（Ａ）〜（Ｃ）を参照して以下に詳述するように、自動トレースアルゴリズムに従って作動する。自動トレースアルゴリズムの開始時には、ユーザがツールを定義する。この最初のツール定義には、例えばツール位置、ツール走査方向、及び走査ラインサンプリング間隔が含まれる。各種エッジ検出閾値及び走査方向の極性並びにトレースされるべきエッジのエッジ遷移が、周知の方法に従って自動的に学習される。エッジ遷移の極性は、所期のエッジが、定義された走査方向に沿った暗から明への強度増加を示すか、または定義された走査方向に沿った明から暗への強度減少を示すかを表すものである。上述の情報のいくつか又は全てを使って、図１１（Ａ）に示すように、２つのエッジポイントが検出される。図１１（Ａ）では、２つの走査ラインＳ１Ａ及びＳ２Ａが、対象物体ＴＧのエッジに沿った２つのエッジポイントＡ１及びＡ２に位置する。それらの走査ラインは当初、デフォルト距離Ｄ１２だけ離れて配置される。ここでは走査ライン間の距離を、より一般的に走査ラインサンプリング間隔と呼ぶ。
【０００４】
自動トレースアルゴリズムによって、一旦エッジポイントＡ１及びＡ２の位置が決められると、次に処理されるべきエッジ位置が、エッジポイントＡ１及びＡ２の位置に基づき、線形補外（linear extrapolation）を使って決定される。図１１（Ａ）に示されるように、エッジポイントＡ１及びＡ２を通る補外ラインＥ１Ａが決定される。第３の走査ラインＳ３Ａが、エッジポイントＡ２から線形補外ラインＥ１Ａに沿って距離Ｄ１２の位置で、補外ラインＥ１Ａに対して垂直に配置される。第３の走査ラインＳ３Ａは、第３のエッジポイントＡ３に位置する。そしてエッジポイントＡ３は、エッジポイントＡ２及びＡ３を通る新しい線形補外ラインＥ２Ａを形成するために使用され、線形補外ラインＥ２Ａは新しいエッジポイントを探すために使用される。この処理を続けて実行しているとき、上記の線形補外方法では新しいエッジポイントを見出し得ない場合、図１１（Ｂ）を参照して以下に詳述するように、付加的な線形補外手順を実行する。
【０００５】
図１１（Ｂ）は、図１１（Ａ）に示す手順ではエッジポイントを見出し得ない場合に実施される付加的な線形補外手順を示す。図１１（Ｂ）によれば、２つの走査ラインＳ１Ｂ及びＳ２Ｂが、２つのエッジポイントＢ１及びＢ２に位置するように示され、線形補外ラインＥ１Ｂが、エッジポイントＢ１及びＢ２を通過するように示され、第３の走査ラインＳ３Ｂが、補外ラインＥ１Ｂの途中に示される。図示のように、走査ラインＳ３Ｂ上には新しいエッジポイントが存在しない。
【０００６】
走査ラインＳ３Ｂ上に新しいエッジポイントが存在しないので、前に検出された２つのエッジポイントＢ１及びＢ２がなお、つぎのエッジポイントの試し位置を決定するために使用される。補外するために使用される走査ラインサンプリング間隔が半減されるが、同じ補外手順が適用される。かくして、走査ラインサンプリング間隔を半減することによって、新しい走査ラインＳ４Ｂの位置が決定される。しかし走査ラインＳ４Ｂ上にエッジポイントが存在しないので、走査ラインＳ５Ｂの位置で図示されるように、走査ラインサンプリング間隔をさらに半減させて処理が再度繰り返される。この結果図示のごとく、走査ラインＳ５Ｂ上にエッジポイントＢ３が見出される。新しいエッジポイントが見出されたので、エッジポイントＢ３が、現在のエッジポイントの試し位置を決定するために使用されたエッジポイントＢ１と入れ替わり、探索処理が図１１（Ａ）の手順に置き直される。これにより、エッジポイントＢ２及びＢ３を通過する新たな補外ラインＥ２Ｂが示される。
【０００７】
図１１（Ｂ）に図示された半減処理は、所定の最小走査ラインサンプリング間隔に至るか、またはエッジポイントが見出されるかするまで繰り返される。最小走査ラインサンプリング間隔に至り、エッジポイントが見出されない場合には、図１１（Ｃ）を参照して以下に詳述するように、回転探索が実施される。
【０００８】
図１１（Ｃ）は回転探索を図示する。図１１（Ｃ）において、３つのエッジポイントＣ１，Ｃ２、及びＣ３が、対象物体ＴＧのエッジに沿って示される。エッジポイントＣ２及びＣ３を通過する補外ラインＥ１Ｃが示される。またエッジポイントＣ３を通過する走査ラインＳ１Ｃが示される。ここで、図１１（Ａ）及び図１１（Ｂ）を参照して上述した方法を試みたが、エッジポイントＣ３の次となるエッジポイントを見出し得なかったと仮定する。
【０００９】
図１１（Ｃ）の手順によれば、これまでに検出された２つのエッジポイントＣ２及びＣ３が、エッジ形状に沿ったこれまでの探索方向と反対方向に１つのエッジポイント試し位置を補外するために使用される。概念的には、エッジ位置決めツール／手順の全てがまるで、最後に位置決めされたエッジポイントの周囲の画像面において旋回されるようなものである。全ツールが「旋回」（pivoted）されるので、ツールエッジ走査の極性が今度は、既に検出されているエッジ形状の部分に対して反対方向になるということに留意されたい。かくして、所期のエッジ遷移の予め学習／定義された極性により、前もって検出されたエッジは再度検出されることはない。したがって、第２の走査ラインＳ２Ｃが、エッジ形状のこれまでの探索方向と反対の方向で、補外ラインＥ１Ｃの途中に示される。図１１（Ｃ）に示されるケースでは、ツール走査の極性は、探索が物体（暗）から背景（明）への変化に対するように定義されており、一方、このケースでの遷移は明から暗へとなっているので、走査ラインＳ２Ｃ上にはエッジポイントを見出せないということに注目されたい。
【００１０】
走査ラインＳ２Ｃ上にはエッジポイントを見出せないので、ツール走査の方位が、１つの走査ラインの終端と所定の角度増加量だけ回転して得られた次の走査ラインの始端との間にエッジが位置することが不可能となるような回転の半径（すなわち走査ラインサンプリング間隔）及び走査ラインの長さに基づき、所定の角度増加量だけ回転される。この処理が、エッジポイントが検出されるか、またはツール走査が元の位置まで戻るかのいずれかになるまで繰り返される。すなわち、図１１（Ｃ）に図示されるように、ツール走査の方位が所定の角度増加量だけ回転され、まず走査ラインＳ３Ｃが生成される。この処理が繰り返され、走査ラインＳ４Ｃ，Ｓ５Ｃ、及びＳ６Ｃが得られる。なお、それの走査ラインの回転は、円回転Ｒ１Ｃに接している。図示するように、走査ラインＳ６Ｃ上に第４のエッジポイントＣ４が見出される。
【００１１】
その後、エッジポイントＣ４がエッジポイントＣ２と入れ替わり、探索処理が図１１（Ａ）の手順に置き直される。これにより、エッジポイントＣ３及びＣ４を通過する新たな補外ラインＥ２Ｃが示される。ツール走査が元の位置に戻る前に、新たなエッジポイントが見出されない場合には、アルゴリズムが不成功を通知する。
【００１２】
【発明が解決しようとする課題】
図１１（Ａ）〜（Ｃ）を参照して説明した従来の上記手順は、隅々まで合焦された２次元画像における画像エッジを自動的にトレースする場合には効果的である。しかしながら、現実には、走査を望まれる物体の大きさによっては、２又はそれ以上の画像フレームに跨るような比較的長い外形に沿ったエッジを測定する、及び／又は複雑な形状の部品のエッジを測定する似通ったタイプの自動トレースツールを提供することが望まれる。そうしたケースで、画像システムの焦点面に対する外形に沿った著しい高さ変化がしばしば存在する。そうした高さ変化が、画像システムの視野の深さ方向に対して概ね平行な方向に発生するので、その変化をここでは深さ変化と呼ぶ。これらの高さ／深さの変化は、焦点ボケ及びエッジコントラストの不足をもたらす可能性がある。エッジコントラストの不足は、信頼できるエッジ測定をサポートできないような画像が、エッジ検出処理の失敗すなわちエラー通知を引き起こすのと同じように、こうしたことを引き起こす。本願発明者は、従来の２次元エッジツールに従来の自動焦点調整処理を単に加えることが、特にランモードアプリケーションでは、著しく遅いエッジトレース動作に帰結する点に注目した。このように、有効な自動カメラ高さ調整装置によって既知の問題を解決する現存のツールには、その有用性に限度がある。本発明は、ツールが３次元空間でエッジ形状をトレースするとき、高さ及び焦点における（例えばＺ軸に沿っての）所要の変化を決定するための高速で効果的なシステム及び方法を定義することによって、及びビジョンシステムの時間消費動作を最小化できるようにできるだけ多くのデータを再利用することによって、上記方法の改善を図るようにしている。
【００１３】
以上のように本発明はこのような問題点に鑑みてなされたものであって、エッジ形状測定システムの焦点深度に対して被測定物体のエッジ形状が該深度方向に著しく変化しても、高速で効果的にエッジ形状を検出することを可能にしたエッジ形状決定方法を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、３次元空間における物体のエッジ形状をトレースするための方法及び装置が提供される。前述したように、マシンビジョンシステムの動作処理は特に時間がかかる。この処理として、自動焦点調整処理、開ループ焦点調整処理、及びステージ（台座）動作処理が含まれる。そのため、本発明に係るシステム及び方法における各種の実施の形態において可能な最大限度までこれらの各処理の実行を避ける試みを、取り分けランモード適用例において行う。また、動作時間及び画像獲得時間の双方を最小化するために、自動焦点調整処理に優先して開ループ焦点調整処理を使用する試み、及びできるだけ多くの処理及び動作の基礎を、前もって獲得したデータに置く試みを行う。さらに、画像処理時間を最小化するために、決定されるべき次のエッジポイントを囲う小さな領域に、画像処理を限定する試みを行う。
【００１５】
本発明の一様相によれば、自動トレース測定の間での焦点調整時間を節約するために、多数の画像を各種の高さ位置で収集し、必要に応じてＸＹステージの特定位置のために保存するようにしてもよい。これらの保存された画像を、同一のＸＹエリアの各エッジポイント試し位置における同じ焦点位置でエッジポイントを算出するために後刻使用するようにする。これは、ステージのＺ方向への物理的反復動作をある環境条件下で避けることができるという点、及び保存した画像の再利用が、顕著な量の機械動作および信号処理時間を節約できるという点において都合のよいことである。かくして、ビジョンシステムの全体に亘るスループットが増大される。
【００１６】
本発明の別の様相によれば、前に位置づけられたエッジポイントに関連する情報を使ってＺ高さ補外を得ることができる。多数の適用例にとって、形状のＺ高さ変化は、緩やかであり予測できるものである。この特性に基づいて、特定位置の画像スタックが利用できないとき、Ｚ高さ補外を、２つの前回エッジポイントのＺ高さを使って算出することができる。この方法は、探索処理を著しくスピードアップし、徐々に変化するエッジ形状をもつ測定適用例に対して非常に効率的である。
【００１７】
本発明の別の様相によれば、ユーザが最初に、ツール位置、ツール走査方向、及び走査ラインサンプリング間隔の点から、エッジトレース及び／又は測定ツールを定義する。またユーザはＺ探索範囲を定義してもよい。或いは、Ｚ探索範囲、ツール走査方向及び走査ラインサンプリング間隔の値をシステムによって自動的に選択したり、または該値を、ツールと関連するデフォルト値に設定するようにしてもよい。Ｚ探索範囲が、２つの隣接する如何なるエッジポイントの間でも期待される高さ／深さ変化における最も大きいステップよりも大きくなるように、該Ｚ探索範囲を選択してもよい。上記の情報で、予め定義されたＺ探索範囲内の最初の画像スタックを収集し、開始位置のために保存するようにしてもよい。
【００１８】
本発明の別の様相によれば、第１の２つのエッジポイントの各々のＺ位置を、画像スタックから、画像が最大コントラスト値をそれらのエッジポイントで示すように選択された原画像を基にして、スタック内の他の画像に比較して決定する。ステージを、最大コントラスト値を与えるＺ位置に物理的に移動して今後のエッジ検出に備えて新たな画像を得るようにする選択肢と、算出されたＺ位置に最も近接している画像スタックから画像を単に選択する選択肢とのうちいずれか一方が存在する。第１の選択肢は、より良好な画像結果、良好なＸＹ測定精度、及び良好なＺ測定精度を提供し、一方、第２の選択肢は、良好なＸＹ測定精度を保持し、また、新しいＺ位置で新しい原画像を獲得しないことにより、またはＺ測定精度を改善することによって、測定時間を節約する。何れの選択肢を使用するかに関する判断は、精度又は速度要求に基づいて行うことができる。
【００１９】
本発明の別の様相によれば、エッジポイント試し位置の探索を行う前に、該位置が現在のビデオウィンドウ内に存在することを確かめるために該位置をチェックする。この位置が現在のビデオウィンドウ内に存在しないならば、ステージを、算出された位置に移動することができる。
【００２０】
本発明の別の様相によれば、２次元自動トレース方法が先ず、次回エッジポイント試し位置を補外するために使用される。ここではまた、この次回エッジポイント試し位置が、次回エッジポイントＸＹ試し位置として参照される。次回エッジポイントＸＹ試し位置の最大コントラストピークを示す画像又はＺ位置を見つけ出すために、画像スタックを使用する。画像スタックからの保存画像を使って行われる最大コントラストピーク探索のために必要とされる物理的動作又は付加的な画像獲得が存在しないということに留意されたい。この処理手順がうまくいけば、新エッジポイントが決定され保存され、探索処理が継続する。エッジポイントが見出されなければ、エッジポイント試し位置のＺ高さに対する推定値が、前の２つのエッジポイントのＺ高さを使って補外することにより決定され得る。依然としてエッジポイントが見出されなければ、最後に検出されたエッジポイントのＺ高さを中心として使って、新しい画像スタックを取得し、そして探索処理を、自動トレース方法の最初の部分から再度開始する。まだエッジポイントが見出されなければ、半減処理を実行する。
【００２１】
本発明の別の様相によれば、見出されるべきエッジポイントのＸ，Ｙ及びＺ位置が、スタックに含まれる画像内に位置することを適当に期待されるときはいつでも、予め決定された如何なる画像スタックをも再利用してよい。これは例えば、トレースされるべきエッジ形状がビデオウィンドウに比べ小さいとき、エッジ形状が比較的小さい深度を示すとき、走査ラインサンプリング間隔がビデオウィンドウに比べ小さいとき、そして、閉じたエッジ形状の終了ポイント近くでのトレースが、この閉じたエッジ形状の既に決定された開始ポイントに近づくときに、通例発生するかもしれない。
【００２２】
本発明の別の様相によれば、半減処理が、補外用の走査ラインサンプリング間隔を半減する手順を含む。そして探索処理が、自動トレース方法の最初の部分に再度向けられる。新しいエッジポイントが見出されるならば、新しいエッジポイントは保存され、探索処理が継続して実行される。新しいエッジポイントが見出されないならば、走査ラインサンプリング間隔が再度半減される。そして、この処理が、新しいエッジポイントが見出されるまで、または走査ラインサンプリング間隔が所定の基準値に到達するまで繰り返される。一旦基準値に到達すると、回転探索処理が実行される。
【００２３】
本発明の別の様相によれば、回転探索処理において、最後に検出されたエッジポイントで画像スタックが取得されない場合、アルゴリズムが先ず、最後に検出されたエッジポイントのＺ高さをＺ走査中心と見做して新しい画像スタックを獲得する。そして、探索処理が、多数のエッジポイント試し位置及び最後に検出されたエッジポイントを中心とする円の円周に接する方向に対して繰り返される。その円の半径は操作ラインサンプリング間隔に等しい。この処理の間、ある一つの実施の形態では、正しくないエッジポイントを拾い上げてしまうような多数の間違いを最小化しようと努力して、前のＺ高さを使用したＺ補外を適用しないようにする。
【００２４】
ここに開示した３次元エッジ形状をトレースする方法は、たとえ物体のエッジが著しい高さ／深さの変化を持っていても、その物体のエッジを正確にトレースすることができるという利点を有することを認識されたい。そうした高さ変化は、平坦な物体においても、その物体が大きかったり、画像拡大されていたり、ＸＹ平面に対して適切に配置されていなかったり、或いはまた、Ｚ方向に不規則性を持っていたりすることにより、現実にはしばしば発生する。さらにまた、ここに開示された方法は、時間のかかる自動焦点調整処理を使うことを試すよりも、保存された画像スタック及び／又は補外Ｚ位置を、エッジ検出処理を行うための原画像の基礎として有利に使う。このため、本発明のシステム及び方法は、他の方法に比べ、多量の動作及び処理時間を節約する。加えて、エッジポイントの最精密なＺ測定が本方法の目的ではないとき、例えば比較的平坦であるが、Ｚ軸方向で１視野深度よりも大きな凹凸を持つ部分の座標が測定されるべきとき、存在する画像に基づいてエッジポイントの最大コントラストＺ位置を評価することは、エッジ検出及びエッジポイント位置決定の処理速度を著しく高める。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
【００２６】
図１（Ａ），（Ｂ）及び図２は、Ｚ高さ変化を伴うエッジ形状を有した物体を図示する。本発明は、そうしたエッジ形状を処理することに効果を発揮する。図１（Ａ）は、物体Ｔ１の一つの平面で、ビジョンシステムのＸＹ平面にぴったりとは一致していない平面に含まれるエッジ形状Ｐ１を有した物体Ｔ１を図示する。この例では、ＸＹ平面が測定機械のステージ（台座）面である。この図は、比較的大きな物体を測定するときに発生する事態を示している。このタイプの一致調整エラーが発生したとき、エッジ形状が測定機械の当初の焦点深度を越えてしまうならば、自動トレースツールが、測定機械の当初の焦点深度を越えたエッジ形状部分の位置を決定するための補足画像を獲得し使用する手段を備えねばならない。
【００２７】
図１（Ｂ）は、Ｚ方向に不規則部分を持つ物体Ｔ２のエッジ形状Ｐ２を図示する。これらのタイプの不規則部分も比較的大きく、測定機械の当初の焦点深度を越える可能性がある。そのため、自動トレースツールが、測定機械の当初の焦点深度を越えたエッジ形状部分の位置を決定するための補足画像を獲得し使用する手段を備えねばならない。
【００２８】
図２は、破線で示す傘歯車（歯車本体は詳しく示さず）である物体Ｔ３の外側エッジ形状Ｐ３を図示する。このタイプの物体は本来、単一平面内には位置しないエッジ形状を有するように設計されている。そうした物体では概して、エッジ形状が、ビジョンシステム機械の焦点深度を越える。外側エッジ形状Ｐ３は、本発明に係るシステム及び方法の実施の形態により決定される。以下に詳述するように、本発明は、図１（Ａ），（Ｂ）及び図２に示すエッジ形状のような３次元エッジ形状を正確にトレースする方法に向けられている。
【００２９】
図３は、画像スタックを獲得すべきか否かを決定する通常の方法を示す流れ図である。本発明によれば、自動トレース及び測定処理の間の焦点調整時間を節約するために、いろいろな高さ位置で多数の画像が時々収集され、必要に応じてＸＹステージ（台座）の特定な位置のために蓄えられる。これらの蓄えられた画像は、同じＸＹエリアでの各エッジポイント試し位置における焦点位置を算出するために後刻使用され得る。換言すれば、ステージが物理的にＺ方向へ移動することは要求されず、また蓄えられた画像を再利用することによって、時間の顕著な節約が可能となる。
【００３０】
図３に示すように、ブロック５０では、選択位置で画像スタックを獲得すべきか否かを決定するために、ＸＹステージ（台座）位置及び現在定義されている測定処理を評価する。例えば、現在の処理が一連の自動トレース及び測定処理のうちの最初の処理であるならば、開始ＸＹ位置で画像スタックを獲得する。現在のＸＹ位置での画像スタックが既に存在し、かつ要求された位置でエッジ検出をサポートすることができないならば、新らたな画像スタックを獲得することなしに、Ｚ補外がこの次に実行される。最終的に、補外されたＺ位置に基づき獲得された画像が、要求された位置でのエッジ検出をサポートすることができないならば、新たな画像スタックを、それが既に存在しない限り、最後に検出されたエッジポイントのＺ位置で設定される中央Ｚ位置とともに獲得する。判別ブロック５２では、画像スタックを獲得すべきか否かを判別する。画像スタックを獲得しないならば、本処理を終了し元に戻る。画像スタックを獲得するならば、ブロック５４へ進む。ブロック５４では、画像スタックを獲得し、選択されたＸＹエリアでのエッジポイント試し位置における焦点位置の算出に使用するためにそれを蓄える。その後、本処理を終了し元に戻る。
【００３１】
図４は、Ｚ高さ補外を利用すべきか否かを決定する通常の方法を示す流れ図である。一般に、多くの適用例において、外形のＺ高さ変化は緩やかであり、予測できるものである。これは、それまでに得られているエッジポイントの情報を使うことによって、良好なＺ高さ補外を得ることができることを意味する。この解析に基づき、次のエッジポイントＸＹ試し位置のために画像スタックが利用できないとき、それまでに得られている２又はそれ以上のエッジポイントのＺ高さを使って、Ｚ高さ補外を算出することができる。この方法は、探索処理を著しくスピードアップし、緩やかに変化するエッジ形状を有した測定適用例において非常に効率的である。
【００３２】
図４に示すように、ブロック７０では、画像獲得のために新たなＺ高さを設定するように、Ｚ高さ補外を次のエッジポイントＸＹ試し位置のために利用すべきか否かを評価する。例えば、現在の処理が、一連の自動トレース及び測定処理のうちの最初の処理であるならば、Ｚ高さ補外用の基となるものは存在せず、それを使用しない。次のエッジポイントＸＹ試し位置のために画像スタックが既に存在するならば、それを使用する。しかし、次のエッジポイントＸＹ試し位置で画像スタックがエッジ検出を既にサポートできなかった場合、または前のエッジポイントが補外Ｚ高さに基づいて決定されていた場合、次のエッジポイントＸＹ試し位置用に新たな原画像を獲得するための基礎として、Ｚ高さ補外が行われる。判別ブロック７２では、Ｚ高さ補外が利用されるか否かを判別する。Ｚ高さ補外が利用されないならば、本処理を終了し元に戻る。Ｚ高さ補外が利用されるならば、ブロック７４へ進む。ブロック７４では、前のエッジポイントのＺ高さを利用して、探索されるべきエッジポイントのＺ高さの補外を算出する。そして本処理を終了し元に戻る。
【００３３】
図５〜図１０は、本発明における３次元エッジ形状をトレースするための詳細な方法を示す。概要を説明すると、開始点でユーザ又はパートプログラムが、ツール位置及びツール走査方向に関してのエッジツールを定義し、そしてこれらが自動的に決定されないならば操作ラインサンプリング間隔を定義する。Ｚ探索範囲は、ユーザまたはデフォルト値によって定義される。Ｚスタックが現在のステージ位置で獲得され、最初の２つのエッジポイントの探索において利用される。どのエッジポイント試し位置における他の全ての探索においても、探索位置が現在のビデオウィンドウ内に存在するか否かが決定される。なお存在しない場合、次のエッジポイントＸＹ試し位置に基づき算出される位置に従い、必要に応じてステージが移動される。
【００３４】
新たなエッジポイントの探索においては、図１１（Ａ）〜図１１（Ｃ）を参照して前述した処理に類似する２次元処理が行われ、最後に決定されたエッジポイント位置のために使用された画像に基づき、次のエッジポイントＸＹ試し位置のＸＹ座標を決定する。そして、現在の画像スタックが、所期のエッジポイントにとって最良の合焦を提供する原画像、すなわちエッジポイント試し位置の近傍で最大のコントラストピークを提供する画像を見出すために使用される。ここで用語「原画像」は通常、エッジトレース及び測定処理を行う際に使用される又は役立つところのビジョンシステムによって獲得された画像を引用するために使用する。その後、新しいエッジポイントがその原画像において首尾よく見出されたならば、それを保存し、そして探索処理を継続して実行する。最大コントラストピークが発見されない場合、すなわち新しいエッジポイントが発見されない場合、前の２つのエッジポイントのＺ高さを使ってエッジポイント試し位置用のＺ高さを補外することによって、エッジポイント試し位置用のＺ高さを評価する。新しいエッジポイントが依然として見出されない場合には、最後に検出されたエッジポイントのＺ高さを新しい画像スタックの中心として見做すことによって、新しい画像スタックを得るようにする。
【００３５】
新しいエッジポイントが依然として見出されない場合、補外用の走査ラインサンプリング間隔を半減し、新しいエッジポイントが見出されるまで、または走査ラインサンプリング間隔が所定の臨界値に到達するまで繰返す半減処理を実施する。新しいエッジポイントが依然として見出されない場合、回転探索を実施する。回転探索では、探索処理が、多数のエッジポイント試し位置および最後に検出されたエッジポイントを中心とする円の円周に接した方向において繰り返される。こうした上述の処理手順は、迅速かつ効率的なやり方で３次元エッジ形状に沿ってエッジポイントの位置を効果的に決定する。
【００３６】
図５は、３次元空間においてエッジ形状をトレースするための詳細な自動トレース方法の開始部を示す流れ図であり、該方法は、最初の２つのエッジポイントを見つけ出すための手順を含む。まずユーザが、ツール位置、必要ならばツール操作方向及び走査ラインサンプリング間隔を含むエッジツールを定義する。Ｚ探索範囲を、ユーザによって又はデフォルト値によって定義する。ある一つの実施の形態では、ユーザがエッジツール位置の近傍におけるエッジポイントにビジョンシステムの焦点を定め、予め定義されたＺ探索範囲におけるデフォルト値を、ビジョンシステムの現在の倍率に対応する±５視野深度単位に設定する。図５に示すように、ブロック１０２では、最初の２つの走査ラインをＺ探索範囲と一緒に特定する。トレースされるべきエッジの閾値及び極性が自動的に学習される。この情報で、予め定義されたＺ探索範囲（すなわち画像スタック）における一連の画像が収集され、開始ＸＹ位置用に格納される。ある一つの実施の形態では、スタックにおける画像間のＺ間隙が、現在の倍率での視野深度に等しいデフォルトＺ間隙で設定される。かくしてブロック１０４では、探索範囲内の画像のスタックを獲得し保存する。そしてブロック１０６へ進む。
【００３７】
ブロック１０６では、その画像スタックが、最初の２つのエッジポイントの各々におけるＺ位置を見つけるべく使用される。画像スタック内の最大コントラスト値が、最初の２つのエッジポイントのＺ位置を決定するために使用される。ある一つの実施の形態では、画像スタック内の各画像を現在の走査ラインに沿って評価し、画像スタック内の画像毎にピーク勾配（peak-gradient）を決定する。すなわち、この実施の形態では、画像スタック内の各画像におけるピーク勾配は、その画像におけるコントラスト値となる。現在の走査ラインは例えば、次のエッジポイントの決定に使用するために定義される走査ラインである。走査ラインに沿ったピーク勾配の決定は、多くのエッジポイント位置決めアルゴリズムで行われる最初の又は初期の処理であり、したがって、各種の実施の形態において差し障りなく行われることを認識されたい。最初の２つのエッジポイント試し位置の各々に対応する最大コントラスト値を備えた画像は、最初の２つのエッジポイントのＺ位置に対して使用されるべき原画像として、及び最初の２つのエッジポイントＸＹエッジ位置の各々を決定するために使用されるべき原画像として選択される。
【００３８】
ある一つの実施の形態では、選択された原画像におけるＸＹエッジ位置が、既知のピーク勾配タイプのエッジ検出処理及び走査ラインに沿った他の補足的処理に従って決定され、その上さらに、トレースされるべきエッジの閾値及び極性が自動的に学習される。なお、既知の又は今後開発される如何なる別のエッジポイント位置決めアルゴリズムも、本発明に係るシステム及び方法の各種実施の形態において使用することができることを認識されたい。
【００３９】
かくしてブロック１０６では、画像スタックが、最大コントラスト値によって表される最良の合焦エッジポイントを示す１つ又はそれ以上の原画像において最初の２つのエッジポイントを測定するために使用される。この後、処理はフロー接続点Ａに進み、図６へ移る。ステージ（台座）を、最大コントラスト値を与えるＺ位置に物理的に移動して今後のエッジ検出に備えて新たな原画像を得るようにする選択肢と、算出されたＺ位置に最も近接している画像スタックから原画像を単に選択する選択肢とのうちいずれか一方が存在することに留意されたい。第１の選択肢は、より高い精度を提供し、一方、第２の選択肢は測定時間を節約する。この選択肢に関する判別は、精度又は速度要求に基づいて行うことができる。そのため、上述の実施の形態では、走査ラインに沿ったピーク勾配の最大値を示す原画像は、最大コントラスト値を与える画像として選択される。最初の２つのエッジポイントのＺ位置は、選択された原画像に対応して決定され、その後、原画像に対して走査ラインに沿ったＸＹエッジ検出処理を実行するように処理手順が進む。この実施の形態では速度が重視される。
【００４０】
第２の実施の形態では、概念として、ここで述べた各種ピーク勾配が、画像スタック内の対応画像のＺ位置の値に対して図表化される。これによって、ピーク勾配値の図表、又はもっと一般的に、Ｚ位置の関数としてのコントラスト値の図表が作成される。二次曲線のような曲線を、これらの図示される値に適合させる。この曲線および如何なる類似の曲線も以後、次のエッジポイント試し位置用のピークコントラスト曲線と呼ぶ。このピークコントラスト曲線のピークは、走査ラインに沿ったおおよそのピーク勾配位置に対応するＸＹ位置用の最良の合焦画像を生成するＺ位置に対応する。最初の２つのエッジポイントのＺ位置は、選択された原画像に対応して決定され、その後、原画像に対して走査ラインに沿ったＸＹエッジ検出処理を実行するように処理手順が進む。この実施の形態では、精度が重視されるものの、比較的に高速度が維持される。
【００４１】
図６は、ある位置が現在のビデオウィンドウ内に存在することを確認すべく該位置をチェックするための手順を含む流れ図である。自動トレースエッジ検出手順において、どのエッジポイント試し位置に対して探索を行う前にも、その位置が現在のビデオウィンドウ内に存在することを確認すべく該位置をチェックすることは必要である。その位置が現在のビデオウィンドウ内に存在しない場合、本手順は、ステージ（台座）を、計算された位置に移動する機能を実行する。
【００４２】
図６に示されるように、図５又は図８からフロー接続点Ａに手順が継続する。判別ブロック１１０では、終了ポイントが発見されたか否かを判別する。この終了ポイントは、そこに至ると処理手順が停止するエッジ位置として本処理では定義する。かくして、判別ブロック１１０で、終了ポイントが発見されたと判別されたならば、処理は停止する（ブロック１１２）。終了ポイントが発見されないならば、ブロック１１４へ進む。なおブロック１１４へは、図９又は図１０からフロー接続点Ｂを経て処理手順が到達する。
【００４３】
ブロック１１４では、次の走査ラインを算出する。判別ブロック１１６では、次の走査ラインが現在のビデオウィンドウ内に存在するか否かを決定する。前に述べたように、ある一つの実施の形態では、次の走査ラインが、図１（Ａ）に示す補外されたラインＥ１Ａに類似する補外ラインに垂直に、かつ現在の走査ラインサンプル間隙またはサンプリング間隔に等しい補外ラインに沿った距離で、配置される。ある一つの実施の形態では、デフォルト又は所定の初期走査ラインサンプリング間隔が、現在画像の画素ピッチの２０倍に等しい値で設定される。次の走査ラインが現在のビデオウィンドウ内に存在するならば、判別ブロック１２６へ進む。判別ブロック１２６では、回転モードが設定されているか否かを判別する。回転モードが設定されているならば、フロー接続点Ｄに進み、図１０へ移る。回転モードが設定されていないならば、フロー接続点Ｃに進み、図７へ移る。
【００４４】
判別ブロック１１６に戻って、現在の走査ラインが現在のビデオウィンドウ内に存在しないならば、ブロック１１８へ進む。ブロック１１８では、Ｘ及びＹ座標での動きを計算し、その後、ステージ（台座）を移動する。ある一つの実施の形態では、新ビデオウィンドウの座標フレーム内で最後に決定された２つのエッジポイントを接続する仮想ラインが、新ビデオウィンドウの中心を通ってほぼ延伸するように、かつ、次のエッジポイント試し位置に対応する次の予想される走査ラインの両端が、予想されるビデオウィンドウの縁からほぼ５〜１０画素距離、少なくとも５画素距離だけ離れて位置するように、ステージを移動する。すなわちエッジが、現在の線形に補外された曲線に沿って継続するならば、エッジは、ビデオウィンドウの１つの縁の近くの安全な余白部から始まり、次のビデオ画像の中心に向かって行く。そのようなステージ（台座）の位置移動は、将来のＸＹステージ移動の必要性を最小化し、また本発明に係るシステム及び方法の各種実施の形態においてエッジトレース及び測定処理に要する時間を減少させることに役立つ。判別ブロック１２０では、ステージが正しく移動されたか否かを判別する。ステージが正しく移動されていない場合、ブロック１２２へ進んで、エラー通知が行われ、処理が停止する。ステージが正しく移動されていれば、判別ブロック１２４へ進む。
【００４５】
判別ブロック１２４では、回転モードに設定されているか否かを判別する。回転モードが設定されているならば、フロー接続点Ｅに進み、図１０へ移る。回転モードが設定されていないならば、フロー接続点Ｃに進み、図７へ移る。
【００４６】
図７は、エッジポイント試し位置を補外し、エッジポイントを見出すための手順を含む流れ図である。概説すれば、図７の処理は、次のエッジポイントＸＹ試し位置用の、前述した最大ピーク勾配のようなコントラストピークを探し出すために画像スタックを使うことによって開始される。コントラストピークを探し出せれば、対応する原画像が選択され、新しいエッジポイントが見出されて保存され、そしてエッジ探索処理が継続される。コントラストピークを探し出せず、Ｚ補外がまだ実行されていないならば、次のエッジポイントＸＹ試し位置用のＺ高さが補外され、原画像が獲得され、その原画像におけるエッジポイントが再度探索される。新たなエッジポイントが依然見出されないならば、かつ、画像スタックがまだ前のエッジポイントのＺ高さで取得されないならば、最後に検出されたエッジポイントのＺ高さを中心と見做して新たな画像スタックが獲得される。新たなエッジポイントが依然見出されないならば、図９を参照して後述するように、半減処理が実行される。
【００４７】
図７に示すように、図６又は図９からフロー接続点Ｃに手順が継続する。まず、最後に決定したエッジポイントの画像平面において２次元自動トレース方法を利用し、図１１（Ａ）〜図１１（Ｃ）を参照して説明したように、次のエッジポイントＸＹ試し位置を補外する。判別ブロック１３０では、画像スタックが次のエッジポイントＸＹ試し位置のために利用できるか否か、そして画像スタックがまだ試されていないか否かを判別する。画像スタックが次のエッジポイントＸＹ試し位置のために利用できないか、または画像スタックが既に試されているならば、判別ブロック１３８へ進む。これについては、以下に詳述する。判別ブロック１３０で、画像スタックが次のエッジポイントＸＹ試し位置のために利用でき、かつ画像スタックがまだ試されていないならば、ブロック１３２へ進む。
【００４８】
ブロック１３２では、画像スタックを使用し、次のエッジポイントＸＹ試し位置のための最大コントラスト値を見つけ出す。次のエッジポイントＸＹ試し位置のためのピークコントラスト曲線を使用する処理は以前に説明したので、ここでは詳しい説明を省略する。画像スタックを使用するこの処理は、最良の合焦位置を確立するが、物理的な動作を要求しないため、処理時間の大幅な節約ができることに留意されたい。
【００４９】
判別ブロック１３４では、コントラストピークが見つけ出されたか否かを判別する。コントラストピークが見つけ出されたならば、ブロック１３６へ進む。ブロック１３６では、ツール走査を行い、ピークコントラストを示す原画像内のエッジポイントを得る。その後、フロー接続点Ｆに進み、図８へ移る。
【００５０】
判別ブロック１３４で、最大コントラスト値を発見できなかったと判別されたならば、判別ブロック１３８へ進む。判別ブロック１３８では、Ｚ補外が実行されたか否かを判別する。Ｚ補外が実行されたならば、判別ブロック１４６へ進む。これについては以下に詳述する。判別ブロック１３８で、Ｚ補外が実行されなかったと判別されたならば、ブロック１４０へ進む。ブロック１４０では、Ｚ補外を実行する。好ましい実施の形態では、次のエッジポイントＸＹ試し位置用のＺ高さを評価し、前の２つのエッジポイントのＺ高さ及びＸＹ位置を使ってそれを補外することによってＺ補外を実行することができる。すなわち、補外されたＺ高さは、決定されるべき次のエッジポイントの予想ＸＹ位置に基づく、前に最後に決定された２つのエッジポイントのＸＹＺ座標から得られる線形補外である。新しい画像が、補外されたＺ位置で獲得され、それは、次のエッジポイント試し位置を決めるための予想ＸＹ位置を含む。その後、処理はブロック１４２へ進む。
【００５１】
ブロック１４２では、ツール走査を行い、エッジポイントを得る。判別ブロック１４４では、エッジポイントが見つけ出されたかを判別する。エッジポイントが見つけ出されたならば、フロー接続点Ｇに進み、図８に移る。エッジポイントが見つけ出されないならば、判別ブロック１４６に進む。
【００５２】
判別ブロック１４６では、現在位置で取得される画像スタックであり、かつ最後に検出されたエッジポイントのＺ高さを中心にしている画像スタックが既に取得されたか否かを判別する。好ましい実施の形態では、現在位置が、次のエッジポイント試し位置の予想ＸＹ位置である。現在位置で取得される画像スタックであり、かつ最後に検出されたエッジポイントのＺ高さを中心にしている画像スタックが既に取得されたならば、フロー接続点Ｈに進み、図９に移る。画像スタックが現在位置でまだ取得されておらず、画像スタックが、最後に検出されたエッジポイントのＺ高さを中心にしていると判別されたならば、ブロック１４８へ進む。ブロック１４８では、中心として最後に検出されたエッジポイントのＺ高さを使って新たな画像スタックを獲得する。そして判別ブロック１３０へ進む。
【００５３】
図８は、エッジポイントバッファを更新し、探索モードを再設定するための手順を含む流れ図である。図７又は図１０からフロー接続点Ｆに、または図７からフロー接続点Ｇに手順が継続する。ブロック１５０では、ポイントバッファを更新する。ポイントバッファは一般に、現在のエッジトレース処理の決定された全部のエッジポイントにおける決定された全部の座標値を含む。ブロック１５２では、エッジトレース探索モードを再設定する。その後、フロー接続点Ａに進み、図６に移る。
【００５４】
図９は、補外ライン用の走査ラインサンプリング間隔を半減する手順を含む流れ図である。概説すれば、この手順では先ず、補外ライン用の走査ラインサンプリング間隔を半減する。そして、エッジトレース処理が、図７の初めに戻される。これが継続して発生すると、探索処理が図７の初めに戻され、補外間隔が所定の値に再設定される。こうならない場合には、走査ラインサンプリング間隔が所定の基準値に到達するまで処理が繰り返される。走査ラインサンプリング間隔が所定の基準値に到達した場合、図１０を参照して以下に詳述するように、探索モードが回転モードに設定される。
【００５５】
図９に示すように、図７からフロー接続点Ｈに手順が継続する。判別ブロック１６０では、走査ラインサンプリング間隔が小さくなって、間隔基準値、すなわち走査ライン間で許容される最小の距離に到達したか否かを判別する。間隔基準値に到達したならば、ブロック１６２へ進む。ブロック１６２では、探索モードが回転モードに設定される。そしてフロー接続点Ｂに進み、図６に移る。ブロック１６０で、間隔基準値に到達していないと判別されたならば、ブロック１６４へ進む。ブロック１６４では、補外用の走査ラインサンプリング間隔を半減する。その後、フロー接続点Ｃに進み、図７へ移る。
【００５６】
図１０は、回転モードを利用する手順を含む流れ図である。概説すると、検出された隣接のエッジポイントで取得された画像スタックが存在しないならば、最後に検出されたポイントのＺ高さをＺ走査中心と見做して新しい画像スタックをまず獲得する。前述の２次元の従来方法での円探索と同様に、最後に検出されたエッジポイントを中心とする円の円周に接する多数のエッジポイント試し位置／方向に対して探索処理を繰り返す。その円の半径は初めのうち、最初の操作ラインサンプリング間隔に等しい。本手順のある一つの実施の形態では、回転モードというものが本来、エッジの不連続性に遭遇した場合の処理モードを示しているので、前に検出された２つのエッジポイントを使うＺ補外は適用されない。未知の部分の不連続性が存在するような条件下では、補外は、誤ったエッジポイントの検出を行ってしまうかもしれない。
【００５７】
図１０に示すように、図６からフロー接続点Ｄに手順が継続する。判別ブロック１７０では、画像スタックが、最後に検出された隣接のエッジポイントで既に取得されたか否かを判別する。最後に検出された隣接のエッジポイントは、現在の一連の回転処理における前述の「旋回」（pivot）ポイントであるということに留意されたい。最後に検出された隣接のエッジポイントが、補外されたＺ位置を基に獲得された単一の原画像に基づいていたということが可能である。したがって、未知の不連続の存在の下で、画像スタックを獲得して、ロバスト性のある回転エッジ検出処理をサポートする。画像スタックが、最後に検出された隣接のエッジポイントで取得されたならば、ブロック１７４へ進む。これについては以下に詳述する。ブロック１７０で、画像スタックが、最後に検出された隣接のエッジポイントで取得されていなければ、ブロック１７２へ進む。
【００５８】
ブロック１７２では、新しい画像スタックを獲得する。なおブロック１７２には、図６からフロー接続点Ｅを介して接続されることもあり得る。ブロック１７４では、前述したように、画像スタックを使用して最大コントラスト値を見つける。判別ブロック１７６では、最大コントラスト値が発見されたか否かを判別する。最大コントラスト値が発見されなかった場合、判別ブロック１７８へ進む。これについては以下に詳述する。判別ブロック１７６で、最大コントラスト値が発見されたと判別された場合、ブロック１８０へ進んで、エッジポイントを得るためにツール走査を行う。その後、フロー接続点Ｆに進んで、図８へ移る。
【００５９】
判別ブロック１７８では、全部の回転、すなわち回転増量が実行されたか否かを判別する。全部の回転はまだ実行されていない場合、フロー接続点Ｂに進み、図６へ移る。判別ブロック１７８で、全部の回転が実行されたと判別された場合、ブロック１８２へ進んで、エラー通知を行い、処理を停止する。
【００６０】
図３〜図１０に示す方法は、外来の処理を必要とせずに、特にビジョンシステムの物理的動きを必要とせずに、物体の３次元エッジ形状を正確にトレースできる点で有用であることを認識されたい。図１（Ａ），（Ｂ）及び図２に示すように、ＸＹ平面に対する不適切な面合わせ、Ｚ方向における不規則性、現実には３次元となる設計事情のような多くの理由から、物体が３次元エッジ形状をもつ。この開示された方法は、時間のかかる自動焦点調節処理を実行するよりも、保存された画像のスタック及び／又は補外されたＺ位置を、エッジ検出処理を行うための原画像の基礎として有利に使う。このため、本発明に係るシステム及び方法は、他の方法に比べ、多量の動き及び処理時間を節約する。加えて、エッジポイントの最も精密なＺ測定が該方法の目的ではないとき、例えば比較的平坦であるが、Ｚ軸方向で１視野深度よりも大きな凹凸を持つ部分の座標が測定されるべきとき、存在する画像に基づいてエッジポイントの最大コントラストＺ位置を評価することは、エッジ検出及びエッジポイント位置決定の処理速度を著しく高める。
【００６１】
本発明に係る３次元自動トレースエッジ検出処理の各種実施の形態は、「学習」モードで作動されているとき時間を節約する。なおこの「学習」モードでは、比較的長く、深さ方向に延伸し、多数のビデオ画像に跨るエッジ形状の各種特性をビジョンシステムが測定することがプログラムされている。さらに、これらの処理は、ランタイムにおける特定サンプルのエッジ形状情報に基づき、そのトレース経路を決定する又は変更する能力を有するので、固定された位置及び予めプログラムされたエッジ形状に頼るエッジツールで発生するランタイム不足を回避することにも役立つ。
【００６２】
上述の方法ステップの全てを、汎用コンピュータ上で都合よく実行することができ、また、ゲートアレイ、応用特定の集積回路、または注文製造の集積回路チップのような、特殊専門ハードウェア上で都合よく実行することができるということを認識されたい。また、本発明は、ここで説明されクレームされ、コンピュータが読み取れる命令として表現され、そして磁気的又は光学的記憶媒体に格納されて、本発明を具現化する製造物を提供する方法ステップを含む。
【００６３】
さらに、前述のブロック、処理、及びステップに代わる多く構成が可能であり、それらは当業者にとって自明であることを認識されたい。以上、本発明の好ましい実施の形態及び各種の別の実施の形態を図示し説明したが、各種の変更を、本発明の精神及び範囲を逸脱することなく、ここに行うことができる。
【００６４】
【発明の効果】
以上詳述したように本発明の一様相によれば、自動トレース測定の間での焦点調整時間を節約するために、多数の画像を各種の高さ位置で収集し、必要に応じてＸＹステージの特定位置のために保存する。これらの保存された画像を、同一のＸＹエリアの各エッジポイント試し位置における同じ焦点位置でエッジポイントを算出するために後刻使用する。これは、ステージのＺ方向への物理的反復動作をある環境条件下で避けることができるという点、及び保存した画像の再利用が、顕著な量の機械動作および信号処理時間を節約できるという点において都合のよいことである。かくして、ビジョンシステムの全体に亘るスループットが増大される。
【００６５】
本発明の別の様相によれば、前に位置づけられたエッジポイントに関連する情報を使ってＺ高さ補外を得る。多数の適用例にとって、形状のＺ高さ変化は、緩やかであり予測できるものである。この特性に基づいて、特定位置の画像スタックが利用できないとき、Ｚ高さ補外を、２つの前回エッジポイントのＺ高さを使って算出する。この方法は、探索処理を著しくスピードアップし、徐々に変化するエッジ形状をもつ測定適用例に対して非常に効率的である。
【００６６】
本発明の別の様相によれば、第１の２つのエッジポイントの各々のＺ位置を、画像スタックから、画像が最大コントラスト値をそれらのエッジポイントで示すように選択された原画像を基にして、スタック内の他の画像に比較して決定する。ステージを、最大コントラスト値を与えるＺ位置に物理的に移動して今後のエッジ検出に備えて新たな画像を得るようにする選択肢と、算出されたＺ位置に最も近接している画像スタックから画像を単に選択する選択肢とのうちいずれか一方が存在する。第１の選択肢は、より良好な画像結果、良好なＸＹ測定精度、及び良好なＺ測定精度を提供し、一方、第２の選択肢は、良好なＸＹ測定精度を保持し、また、新しいＺ位置で新しい原画像を獲得しないことにより、またはＺ測定精度を改善することによって、測定時間を節約する。何れの選択肢を使用するかに関する判断は、精度又は速度要求に基づいて行うことができる。
【００６７】
本発明に係る３次元エッジ形状をトレースする方法は、たとえ物体のエッジが著しい高さ／深さの変化を持っていても、その物体のエッジを正確にトレースすることができるという利点を有する。そうした高さ変化は、平坦な物体においても、その物体が大きかったり、画像拡大されていたり、ＸＹ平面に対して適切に配置されていなかったり、或いはまた、Ｚ方向に不規則性を持っていたりすることにより、現実にはしばしば発生する。さらにまた、本発明に係る方法は、時間のかかる自動焦点調整処理を使うことを試すよりも、保存された画像スタック及び／又は補外Ｚ位置を、エッジ検出処理を行うための原画像の基礎として有利に使う。このため、本発明のシステム及び方法は、他の方法に比べ、多量の動作及び処理時間を節約できる。加えて、エッジポイントの最精密なＺ測定が本方法の目的ではないとき、例えば比較的平坦であるが、Ｚ軸方向で１視野深度よりも大きな凹凸を持つ部分の座標が測定されるべきとき、存在する画像に基づいてエッジポイントの最大コントラストＺ位置を評価することは、エッジ検出及びエッジポイント位置決定の処理速度を著しく高めることになる。
【図面の簡単な説明】
【図１】３次元エッジ形状を持つ物体を示す図であり、（Ａ）は、物体の一つの平面で、ビジョンシステムのＸＹ平面にぴったりとは一致していない平面に含まれるエッジ形状を有した物体を示し、（Ｂ）は、Ｚ方向に不規則部分を持つ物体のエッジ形状を示す。
【図２】３次元エッジ形状を持つ物体を示す図であり、傘歯車である物体の外側エッジ形状を示す。
【図３】画像スタックを獲得すべきか否かを決定する通常の方法を示す流れ図である。
【図４】Ｚ高さ補外を利用すべきか否かを決定する通常の方法を示す流れ図である。
【図５】３次元空間においてエッジ形状をトレースするための詳細な自動トレース方法の開始部を示す流れ図であり、２つのエッジポイントを見つけ出すための手順を示す。
【図６】詳細な自動トレース方法の一部を示す流れ図であり、ある位置が現在のビデオウィンドウ内に存在することを確認すべく該位置をチェックするための手順を示す。
【図７】詳細な自動トレース方法の一部を示す流れ図であり、エッジポイント試し位置を補外し、エッジポイントを見出すための手順を示す。
【図８】詳細な自動トレース方法の一部を示す流れ図であり、エッジポイントバッファを更新し、探索モードを再設定するための手順を示す。
【図９】詳細な自動トレース方法の一部を示す流れ図であり、補外ライン用の走査ラインサンプリング間隔を半減する手順を示す。
【図１０】詳細な自動トレース方法の一部を示す流れ図であり、回転モードを利用する手順を示す。
【図１１】２次元空間におけるエッジ形状をトレースする従来の方法を示す図である。
【符号の説明】
Ｐ１  エッジ形状
Ｐ２  エッジ形状
Ｐ３  外側エッジ形状
Ｔ１  物体
Ｔ２  物体
Ｔ３  物体
【図１】
0004009525.tif 000002
【図２】
0004009525.tif 000003
【図３】
0004009525.tif 000004
【図４】
0004009525.tif 000005
【図５】
0004009525.tif 000006
【図６】
0004009525.tif 000007
【図７】
0004009525.tif 000008
【図８】
0004009525.tif 000009
【図９】
0004009525.tif 000010
【図１０】
0004009525.tif 000011
【図１１】
0004009525.tif 000012