(57)【要約】【課題】  閉塞特徴によって閉塞された被閉塞特徴を高精度に検査するための画像検査方法を提供すること。【解決手段】  閉塞特徴としてのグリッド３０４と、被閉塞特徴としてのトレース３２０，３３０とを含む原画像に形態学的フィルタを適用して、グリッド３０４が除去されたフィルタ画像を適用する。フィルタ画像についてラインツール６１０を用いたエッジ検出を行い、エッジのおおよその位置を検出する。続いて、原画像に戻り、ラインツール６１０を用いたエッジ位置検出を行う。この際、ラインツール６１０は、フィルタ画像におけるエッジ検出に利用されたときよりも短くされており、エッジ検出対象範囲が、フィルタ画像について検出されたおおよそのエッジ位置の近傍に絞られている。これにより、ラインツール６１０は、グリッド３０４の影響を受けることなく、高精度にエッジ検出を行うことができる。【選択図】  図４
2006048675.tif 000002
【特許請求の範囲】
【請求項１】
画像検査システムにより取得されるワークの画像検査方法であって、
前記画像検査システムによって前記ワークの原画像を取得する工程と、
前記原画像に対してフィルタリング操作を行ってフィルタ画像を生成する工程と、
前記フィルタ画像において前記ワークのエッジ点を検出する工程と、
前記フィルタ画像において検出されたエッジ点の位置を利用して、前記原画像において前記ワークのエッジ点を検出する工程と、
を備えることを特徴とする画像検査方法。
【請求項２】
請求項１に記載の画像検査方法において、
前記フィルタリング操作は、形態学的フィルタによって実行される、
ことを特徴とする画像検査方法。
【請求項３】
請求項２に記載の画像検査方法において、
前記形態学的フィルタは、閉じたフィルタあるいは開いたフィルタであり、３×３の矩形状マスクおよび５×５の円板状マスクの少なくともいずれかを備えている、
ことを特徴とする画像検査方法。
【請求項４】
請求項１から請求項３のいずれかに記載の画像検査方法において、
前記原画像は閉塞特徴を含み、
前記フィルタリング操作では、前記原画像から前記閉塞特徴が除去されて前記フィルタ画像が生成される、
ことを特徴とする画像検査方法。
【請求項５】
請求項４に記載の画像検査方法において、
前記閉塞特徴は、グリッド状の特徴である、
ことを特徴とする画像検査方法。
【請求項６】
請求項５に記載の画像検査方法において、
前記グリッド状の特徴は、フラットパネルディスプレイのスクリーンマスクのオーバーレイグリッドによって形成されている、
ことを特徴とする画像検査方法。
【請求項７】
請求項１から請求項６のいずれかに記載の画像検査方法において、
前記原画像におけるエッジ点検出は、前記フィルタ画像において検出されたエッジ点の近傍に範囲が限定されて行われる、
ことを特徴とする画像検査方法。
【請求項８】
請求項７に記載の画像検査方法において、
前記原画像において検出されたエッジ点は、測定対象のエッジのフィッティングに用いられる、
ことを特徴とする画像検査方法。
【請求項９】
請求項１から請求項８のいずれかに記載の画像検査方法において、
前記フィルタ画像におけるエッジ検出は、第１の走査線を用いて行われ、
前記原画像における対応するエッジ検出は、第２の走査線を用いて行われ、
前記第２の走査線は、前記第１の走査線よりも短い、
ことを特徴とする画像検査方法。
【請求項１０】
請求項９に記載の画像検査方法において、
前記第２の走査線は、前記第１の走査線と同じ向きで同じ位置に配置される、
ことを特徴とする画像検査方法。
【請求項１１】
請求項１から請求項１０のいずれかに記載の画像検査方法において、
トレーニングモードにてツールをトレーニングする工程が設けられ、
当該工程後には、前記ツールが実行モードにて使用される、
ことを特徴とする画像検査方法。
【請求項１２】
請求項１から請求項１１のいずれかに記載の画像検査方法において、
ラーニングモードでは、前記フィルタ画像におけるエッジ点検出を通じてエッジ検出パラメータの第１の組が設定され、前記原画像におけるエッジ点検出を通じてエッジ検出パラメータの第２の組が設定される、
ことを特徴とする画像検査方法。
【請求項１３】
請求項１２に記載の画像検査方法において、
前記ラーニングモード中に設定される前記エッジ検出パラメータは、実行モードにおけるエッジ検出に利用される、
ことを特徴とする画像検査方法。
【請求項１４】
請求項１２または請求項１３に記載の画像検査方法において、
前記エッジ検出パラメータは、少なくとも静的な閾値とエッジ強度閾値とを含んでいる、
ことを特徴とする画像検査方法。
【請求項１５】
請求項１４に記載の画像検査方法において、
前記エッジ検出パラメータは、さらに、動的な閾値を含んでいる、
ことを特徴とする画像検査方法。
【請求項１６】
画像検査システムにより取得されるワークの画像検査装置であって、
前記画像検査システムによって前記ワークの原画像を取得する手段と、
前記原画像に対してフィルタリング操作を行ってフィルタ画像を生成する手段と、
前記フィルタ画像において前記ワークのエッジ点を検出する手段と、
前記フィルタ画像において検出されたエッジ点の位置を利用して、前記原画像において前記ワークのエッジ点を検出する手段と、
を備えることを特徴とする画像検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像検査方法および画像検査装置に関する。
【背景技術】
【０００２】
従来、ワークの画像を取得して、これに基づいてワークの寸法や形状などを検査する画像検査システムが知られている。画像検査システムには、コンピュータ，ユーザインターフェイス，照明システム，カメラ／光学システム，ステージなどが含まれている。ここで、ワークが載置されるステージは、複数の方向に沿って移動可能に設けられている。そして、ステージを移動させてカメラとの相対位置を調整することにより、ステージに載置されたワークの各箇所をカメラによって簡単に撮像することができる。ユーザインターフェイスは、ワーク画像上に配置可能なビデオツールを含んでいる。ユーザは、ビデオツールを操作することにより、画像処理に関する知識を持っていなくても、検査に関連する画像処理を簡単に行うことができる。
【０００３】
このような画像検査システムとして、イリノイ州オーロラのミツトヨ・アメリカ社（ＭＡＣ）が提供している画像検査装置のQUICK Vision（商標）シリーズや、QVPAK（商標）ソフトウェアが知られている。QUICK VisionシリーズおよびQVPAKソフトウェアについては、例えば、２００３年１月発行のQVPAK 3D CNC Vision Measuring Machine Users Guideや、１９９６年９月発行のQVPAK 3D CNC Vision Measuring Machine Operation Guideにおいて一般的な説明が行われている。これらの製品は、様々な倍率のワーク画像を提供するために顕微鏡タイプの光学システムを使用している。
【０００４】
このような画像検査システムは汎用性に特徴があり、様々なタイプのワークや、一つのワークにおける様々な側面について多種多様な検査タスクを行うために、画像検査システムの設定や画像パラメータを、ユーザや自動化されたプログラムが迅速に変更することができるようになっている。
【０００５】
QUICK VISIONシステムのような画像検査システムは、プログラム化可能であり、自動画像検査を行うことができる。このような画像検査システムは、未熟なオペレータであっても信頼性の高い操作やプログラミングを行うことができるように、操作やプログラミングを簡素化するツールなどを備えることが好ましい。
【０００６】
以上のような画像検査システムは、一般に、個々のワーク形状についてユーザが自動検査イベントシーケンスを定義することを可能にするプログラミング機能を有している。このプログラミング機能は、検査の結果を記憶／出力する機能も含んでいる。このようなプログラミングは、テキストベースプログラミングのような慎重な方法で実行することもできるし、ユーザが行う検査シーケンスに対応する制御指令のシーケンスを記憶することによって検査イベントシーケンスを徐々に学習するレコーディングモードを通じて実行することもできるし、これらの２つの方法を組み合わせて実行することもできる。このようなレコーディングモードは、ラーニングモード，トレーニングモード，ティーチングモードなどと呼ばれている。
【０００７】
以上のような画像検査システムでは、制御指令が、個々のワーク形状に固有のパートプログラムとして記憶されている。パートプログラムを、実行（run）モード中に所定の検査シーケンスを自動的に行わせる指令とともに生成する機能は、様々な利益、例えば、検査の反復性の向上などの利益を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、以上のような従来の画像検査システムにおいては、閉塞の問題、すなわち、フォアグラウンド（前景）物体によってバックグラウンド（背景）物体の視認性が阻害され、当該バックグラウンド物体の検査が妨げられるという問題が発生することがある。しかしながら、ワーク検査用の画像検査システムの分野においては、閉塞の問題の解決への取り組みが十分になされてこなかった。そのため、従来は、閉塞物体や影を回避するために、ユーザの判断に基づいてツールの大きさや位置を慎重に調整しなければならなかった。この場合、互いに近接しているフォアグラウンド特徴およびバックグラウンド特徴（例えば、エッジ特徴）を有する画像の検査の際には、ツールを慎重に配置してトレーニングしたとしても、ワーク，照明，影のほんのわずかな変化が原因で間違った結果が生成されてしまうおそれがある。
【０００９】
そこで、カスタムデザインされた領域や境界の『成長』および『結合』プロセスが、バックグラウンド特徴の『再構成』に利用されている。しかしながら、このような方法は、実行するのに時間がかかり、ある程度の知識も必要とされる。さらに、このような方法では、画像における『真の』情報を増やすことなしに、人工的にバックグラウンド特徴を形成している。このため、このような方法では、原画像に存在していた『真の』特徴ではなく、人工的に形成された特徴に主として基づいて検査が行われてしまう可能性があるので、検査精度が悪化する危険性がある。
【００１０】
また、検査にとって好ましくない被閉塞特徴を除去するための画像フィルタリングプロセスが専門家によってカスタムデザインされている。しかしながら、このようなフィルタリングプロセスでは、検査にとって好ましい画像特徴もフィルタリングされてしまうので、その特性が変化してしまう。このため、ワーク特徴の検査精度が悪化してしまうおそれがある。
【００１１】
このようなフィルタリングプロセスとして、好ましくない画像特徴を除去するための形態学的フィルタを原画像に適用してフィルタ画像を生成するものがあり、ここで得られたフィルタ画像において標準的なエッジ検出ツールによるエッジ検出などが行われている。しかしながら、形態学的フィルタ（閉じたフィルタでも開いたフィルタでもよい）によれば好ましくない画像特徴を効果的に除去することはできるものの、フィルタリング操作によってエッジ位置が変化してしまうおそれがある。このため、フィルタ画像に基づいてエッジ検出を行ったとしても、所望の検出精度が実現できないおそれがある。このように、以上で説明した画像検査システムでは、品質管理の劣悪化や検査精度の低下を招く危険性がある。そして、このような危険性は、特に、信頼性の高い作業や、比較的簡単なプログラミング環境を比較的未熟なオペレータに提供することを目的とする画像検査システムにとっては致命的である。
【００１２】
本発明は、以上の欠点を克服する画像検査方法および画像検査装置を対象としている。詳細には、本発明は、被閉塞特徴を高精度に検査するための画像検査方法および画像検査装置を対象としている。
【課題を解決するための手段】
【００１３】
本発明は、閉塞特徴により閉塞された被閉塞特徴を高精度に検査するための画像検査方法および画像検査装置に係る。本発明の画像検査方法では、最初に、フィルタ画像に基づいて検査対象のエッジ点のおおよその位置を検出する。フィルタ画像は、外来物体（例えば、閉塞グリッド）を原画像から除去する形態学的フィルタによるフィルタリングによって生成することが好ましい。フィルタ画像に基づいておおよそのエッジ位置が分かると、フィルタリング前の原画像に戻って再度エッジ検出を行う。ここで、原画像におけるエッジ検出は、フィルタ画像において検出されたおおよそのエッジ位置の近傍に範囲を限定して行われるので、エッジ検出精度を向上させることができる。また、最終的に原画像に基づいてエッジ検出を行っているので、フィルタリングを行うことによる検出精度の悪化も生じない。検出されたエッジは、画像特徴へのフィッティングに用いられ、精度の高いワークの測定や検査を可能にする。本発明の画像検査方法のメリットは、迅速に行うことができる点，検出精度がフィルタの選択によって影響を受けにくい点，フィルタ画像のみに基づくエッジ点検出よりも検出精度が高い点，従来の公知のシステムで用いられていたものと同一のユーザパラメータを用いて従来通りの入力操作に基づいて使用可能であるなどユーザフレンドリーである点などが挙げられる。
【００１４】
また、本発明では、ラーニング／トレーニング／ティーチングモードを利用することができる（なお、ラーニングモード，トレーニングモード，ティーチングモードの各語は、互いに略同義の語として用いることにする）。ラーニング／トレーニング／ティーチングモードは、画像の取得と、従来の画像検査システムにおけるものと同様の制御ツール，画像処理ツールの使用とによって開始される。例えば、ユーザは、ボックスツールなどのエッジ検出ツールをワークにおける検査対象部分に配置することによって関心領域を定義することができる。なお、形態学的フィルタのパラメータ、例えば、形，大きさ，フィルタ画像を生成するための繰り返し回数などは、デフォルトとして設定されたり、自動分析に基づいて設定されたり、ユーザの入力操作に基づいて設定されたりする。各パラメータが設定されると、フィルタは入力された原画像の関心領域に対して適用されてフィルタ画像を生成する。続いて、『予備的な』エッジ検出が、フィルタ画像の関心領域において行われる。ここで、エッジ検出は、例えば、エッジ検出ツールに設けられている走査線を利用して行うことができる。そして、形態学的フィルタのパラメータや、検出されたエッジ点のパラメータなどの各種のパラメータが保存される。続いて、フィルタ画像にて検出されたエッジ点の位置に基づいて、エッジ検出ツールが修正される。具体的には、フィルタ画像にて検出されたエッジ点について、エッジ検出ツールに新たな走査線（第２の走査線）が設定される。新たな走査線は、元の走査線（第１の走査線：フィルタ画像におけるエッジ検出に用いられた走査線）と同じ向きで同じ位置に配置されるが、当該第１の走査線に比べてフィルタ画像にて検出されたエッジ点の位置周りのより限定された範囲に配置される。なお、この時点で、検出すべきエッジ点が、フィルタ画像にて検出されたエッジ点の位置近傍に存在することが明らかになっているので、第１の走査線の長さがツールに適切な動作を行わせるために必要とされる長さよりも大きく設定されていた場合には、第２の走査線の長さを第１の走査線の長さよりも短くしてエッジ検出対象の範囲を絞り込み、より高い精度でエッジ検出を行うことができる。このような短い第２の走査線を用いる目的は、フィルタ画像にて検出されたエッジ点の位置近傍にエッジ検出対象の範囲を絞り込むことによって、原画像に存在する外来特徴（閉塞特徴）の影響を受けることのない高精度なエッジ検出を可能とすることである。このような操作は、必ずしも行う必要があるものではないが、これを行えば、これに引き続く操作を簡単化することができるとともに、エッジ検出の信頼性を高めることができる。さて、エッジ検出は、第２の走査線を用いて原画像において行われる。エッジ検出が成功すると、当該エッジを特徴付けるエッジ検出パラメータが結果として得られ、保存される。ここで保存されたエッジ検出パラメータは、同種のワークの対応するエッジ検出に用いられるエッジ検出ツールを自動的に動かすために利用される。なお、必ずしも必要なことではないが、フィルタ画像におけるエッジを特徴付ける同様のエッジ検出パラメータをさらに保存するようにしてもよい。ここで保存されたエッジ検出パラメータは、フィルタ画像のエッジ検出に用いられるエッジ検出ツールを自動的に動かすために利用することができる。このような操作によれば、後に行われる自動検査において、エッジ検出を迅速化および簡単化することができるとともに、エッジ検出の信頼性を向上させることができる。
【００１５】
また、本発明では、ラーニング／トレーニング／ティーチングモードが行われた後、実行モード（高速自動モード）が行われることが好ましい。実行モードでは、まず、画像の取得が行われ、プログラム化されたツールおよびパラメータの使用が開始される。続いて、ティーチングモードにて定義されて使用されたフィルタが取得された画像に適用され、フィルタ画像が生成される。次に、ラーニング／トレーニング／ティーチングモードにて記憶されたフィルタ画像用のエッジ検出パラメータを用いたエッジ検出がフィルタ画像において行われ、エッジ点が検出される。続いて、ラーニング／トレーニング／ティーチングモードと同様に、検出されたエッジ点について、元の走査線と同じ向きで同じ位置に配置されるとともに、検出されたエッジ点近傍に範囲が限定されて、元の走査線よりも短い新たな走査線が設定される。それから、新たな走査線と、ラーニング／トレーニング／ティーチングモードにおいて記憶されたエッジ検出パラメータとを用いたエッジ検出が原画像において行われる。ここで検出された原画像におけるエッジ点の位置は、被閉塞特徴の分析や検査に利用される。
【００１６】
本発明の画像検査方法は、カスタム操作を要求することなく、標準的なタイプのビデオツールをそのまま利用することができるという点で、ユーザの操作を簡単化することができる。言い換えれば、閉塞特徴を回避するためのカスタム操作を実行するためのスクリプト言語の使用がユーザに求められることがない。その代わりに、本発明では、未熟なユーザであっても最小限のトレーニングで使用することができるように、予めプログラミングされたアイコンなどを設けることができる。なお、既存の画像検査システムは、最小限の改装を行うだけで、あるいは、何らの改装を行わなくても、本発明に基づく画像検査方法を実施することができる。場合によっては、本発明の原理にしたがう画像検査ソフトウェア（プログラム）を既存の画像検査システムに読み込ませるだけで改装を完了することもできる。
【発明を実施するための最良の形態】
【００１７】
続いて、本発明の実施形態を図面に基づいて説明する。
図１は、本発明に係る画像検査システム１０の一実施形態を示す斜視図である。画像検査システム１０は、データ交換および信号制御のために相互に接続された制御システム１００および画像測定機２００を含む。また、画像検査システム１０には、データ交換および信号制御のために、１つ以上のモニタ１１１，プリンタ１１２，ジョイスティック１１３，キーボード１１４，マウス１１５が接続されている。画像測定機２００は、可動ワークステージ２１０と、画像を様々な倍率で拡大するズームレンズや多数の交換レンズなどが含まれる光学画像システム２０５を備える。
【００１８】
ジョイスティック１１３は、Ｘ方向およびＹ方向に沿った可動ワークステージ２１０の移動と、Ｚ方向（焦点方向）に沿った光学画像システム２０５の移動を制御するために使用することができる。Ｘ方向およびＹ方向は、光学画像システム２０５の焦点面に平行であるのが一般的である。なお、ジョイスティック１１３のハンドルまたはノブを回転させることにより、光学画像システム２０５をＺ方向に沿って移動させることができる。なお、図示のジョイスティック１１３によってＸＹＺ移動制御を行う代わりに、モニタ１１１に表示させた仮想的なＸＹＺ移動制御手段を、マウス１１５等の外部装置によって操作することによってＸＹＺ移動制御を行わせてもよい。なお、制御システム１００および画像測定機２００の詳細については、米国特許出願第10/808,948号（2004年3月25日出願）において記述されている。
【００１９】
図２は、検査対象のワークが表示されている画像検査システム１０の表示エリア３００の一部分を示した図である。この表示エリア３００には、フラットパネルディスプレイスクリーンマスクのオーバーレイグリッドが含まれている。図２に示したように、表示エリア３００は標準６４０×４８０カメラフォーマットであり、フラットパネルディスプレイスクリーンマスクの反復グリッドパターン３０４がオーバーレイされている。グリッド３０４の下側にも、基板、パターン化フィルムなどからなるバックグラウンド層３０２があり、検査作業上重要ではない情報を含んでいる。ワークはトレース３２０および３３０を含んでいるが、これらについては以下でさらに詳細に説明する。また、以下でもさらに詳細に説明するが、グリッドパターン３０４は、トレース３２０および３３０のエッジ部分の決定および評価を複雑にするような顕著に込み入ったエッジ特徴を有するために、検査作業を複雑化してしまう。
【００２０】
図３は、図２と同様の表示エリア３００Ａを示す図であり、特に、ワークにおけるいくつかのエッジ部分が円や楕円によって囲まれている。トレース３２０，３３０およびこれらのエッジを一層強調するために、表示エリア３００Ａにおけるトレース３２０，３３０は人工的に照明されている。バックグラウンド層３０２は、グリッド３０４の開口部を通じて視認可能になっている。なお、ここでは一例としてグリッドタイプの外来物体３０４について検討するが、本発明の方法はあらゆるタイプの外来フォアグランド（前景）物体、外来バックグラウンド（後景）物体に適用可能であることは当然である。グリッド部分３０４Ａはバックグラウンド層３０２のセクションの上方に位置しており、一方、別のグリッド部分３０４Ｂはトレース３２０のセクションの上方に位置している。一連の大きな楕円３４０はトレース３２０および３３０のエッジ部分を囲んでいる。これらの大きな楕円３４０は、トレース３２０および３３０のエッジ部分を強調する小さな円３４２を含んでいる。ここで、トレース３２０および３３０のエッジは、当該トレース３２０および３３０を覆うグリッド３０４の開口部を通して視認可能になっている。円３５０は、トレース３３０の円形端部を囲んでいる。円３５０は、トレース３３０のエッジ部分を囲んで強調する小さな円３５２を含んでいる。ここで、トレース３３０の円形端部におけるエッジは、当該トレース３３０を覆うグリッド３０４の開口部を通して視認可能になっている。なお、小さな円３５２は、トレース３３０の円形端部のエッジ位置を決定するような作業（例えば、円弧の半径又はトレース３３０の円形端部の直径を決定する作業の一部）に用いることができる。
【００２１】
トレース３２０のエッジの間の間隔（すなわち、幅）の決定作業などのために、トレース３２０の両側の２つの大きな楕円３４０内の画像情報を用いることができる。円３４２は、これらの作業を行うための有効なデータを含む領域を例示的に示している。このように、円３４２は利用可能な有効データ領域を示しているが、楕円３４０内にはその他の有効データ領域が存在することもある。以下でさらに詳細に検討するが、トレースの不可視部分（グリッド３０４に覆われた部分）の位置の再構成を試みることは好ましくない場合が多く、その代わりに、入手可能な有効データ領域から精密な測定値を得ることの方が好ましい。すなわち、トレースの可視部分を外挿して不可視部分を補完するなどして完全な物体の再構成を試みることは、場合によっては物体のエッジが不正確になる可能性があるので高い測定精度を実現する上では好ましくない。
【００２２】
図４は、図３の拡大図であり、表示エリア３００Ｃを示すものである。この図には、ワーク画像におけるエッジの位置を決定するために使用可能なラインツールが示されている。なお、ラインツールは、後述するボックスタイプのエッジツールの基礎となるものである。
図５は、図４のワーク画像に形態学的フィルタを適用して得られる画像データを示している。この図に示されるように、表示エリア３００Ｃ’では、詳細については後述するが、形態学的フィルタによってグリッド３０４が効果的に除去されている。なお、表示エリア３００Ｃ’については、モニタ１１１などによってユーザに対して表示されるようにしてもよいし、表示されないようにしてもよい。いずれにせよ、表示エリア３００Ｃ’を示す図５は、表示エリア３００Ｃを示す図４と併せて、本発明の方法を説明する上で有用である。
【００２３】
マニュアル測定モードやトレーニングモード中には、形態学的フィルタを適用する前のワーク画像（図４）が、モニタ１１１などによってユーザに対して表示される。図４では、セレクタ６１２を有するラインツール６１０が、閉塞特徴（具体的には、ワーク画像を覆うグリッド３０４）を避けるように、トレース３３０の左側の有効エッジ部分６５０上に配置されている。作業に当たっては、ユーザがラインツール６１０を選択し、続いて、ラインツール６１０をドラッグして表示エリア３００Ｃ上を移動させ、セレクタ６１２を有効エッジ部分６５０におけるトレース３３０のエッジにできる限り近づける。そして、詳細については後述する形態学的フィルタは、手動，半自動，自動のいずれかによって定義された後、図４のワーク画像に適用されて、グリッドパターン３０４を除去して図５に示される画像を生成する。
【００２４】
形態学的フィルタを図４に適用することにより得られる図５では、ラインツール６１０およびセレクタ６１２が図４と同じ位置（すなわち、同じ座標を有する位置）に配置されているが、この図５に示されるように、形態学的フィルタとしては、当該フィルタを適用することによって生じるエッジの変位が多くとも数画素程度に抑えられるものを採用するのが好ましい。例えば、公知のフィルタ技術によれば、フィルタを適用することによるエッジの変位が４，５画素あるいはそれ以下になると合理的に期待される。ここで、フィルタが適用されて得られる画像におけるエッジ位置の変位は種々の要因、例えば、フィルタにおけるマスクのサイズ，フィルタと検出対象エッジとの相対向きなどに応じて起こりうる。ここで、フィルタとして３×３のマスクを有するもの用いた場合、検出対象エッジをフィルタに対して回転させたとしても、エッジの変位は４，５画素あるいはそれ以下になるので、十分に良好なフィルタリング精度を実現することができる。図４および図５の例では、フィルタにおける３×３マスクが検出対象エッジと同じ向きにされており、両者の境界線が互いに略平行になっているので、エッジの変位を１画素以下に抑えることができる。
【００２５】
このような形態学的なフィルタリング操作においては、特に、３×３マスク領域における最大画素値によって、当該３×３マスク領域における中心の着目画素の画素値を置換する膨張操作が、図４の画像に対して繰り返し行われて、グリッド３０４が除去されるようになっている。一般に、閉塞特徴（すなわち、グリッド３０４）を十分に除去するための膨張操作の繰り返し回数は、閉塞特徴の最大寸法、例えば、グリッド３０４におけるバーのフィルタの向きに沿った長さ寸法によって決まる。図４および図５の例では、グリッド３０４のバーは、１０〜１５画素分の幅寸法を有している。しかしながら、グリッド３０４のバーの向きは、３×３マスクの向き（トレース３３０の長さ方向。図４および図５においては上下方向）に対して傾斜しているので、グリッド３０４のバーの３×３マスクの向きに沿った最大長さ寸法は、当該バーの幅寸法（１０〜１５画素分）よりも大きくなっている。以上のことを勘案して、３×３フィルタを用いた膨張操作を図４の画像に対して２７回繰り返し行い、グリッド３０４を除去した。
【００２６】
また、上記の形態学的なフィルタリング操作においては、３×３マスク領域における最小画素値によって、当該３×３マスク領域における中心の着目画素の画素値を置換する縮退操作が、前記の膨張操作の繰り返しの後に、当該膨張操作と同じ回数繰り返し行われる。これにより、フィルタリング操作後の画像におけるエッジ位置を、フィルタリング操作前のエッジ位置に略等しくさせることができる。
【００２７】
図４および図５の例では、閉塞特徴（グリッド３０４）が測定対象としての被閉塞特徴（トレース３２０，３３０）よりも暗い、つまり、画素値が小さいため、膨張操作によって閉塞特徴を除去し、かつ、縮退操作によって被閉塞特徴のエッジ位置を調整することができたところ、この例とは逆に、閉塞特徴が測定対象としての被閉塞特徴よりも明るい、つまり、画素値が大きい場合には、縮退操作によって閉塞特徴を除去し、かつ、膨張操作によって被閉塞特徴のエッジ位置を調整することができる。なお、この場合の膨張操作と縮退操作の順序は、図４および図５の例における順序とは逆になっている。
【００２８】
膨張操作および縮退操作からなる上記のフィルタリング操作の後、図５の画像についてラインツール６１０を用いることによって、回路トレース３３０のエッジの位置をおおよそ（あるいは、近似的に）検出することができる。ここで検出されるエッジ位置は、この時点では近似的なものに過ぎない。なぜなら、前述したように、上記のフィルタリング操作を行うことによって、回路トレース３２０，３３０のエッジ位置はある程度変化してしまい、完全に正確なエッジ位置検出はできないからである。
【００２９】
そして、図５に示されるフィルタリング操作後の画像からおおよそのエッジ位置が検出された後は、本発明の方法における次のステップにしたがって、図４に示されるフィルタリング操作前の原画像に戻り、図５で検出されたおおよそのエッジ位置に合わせてエッジ検出用のラインツール６１０の操作パラメータを調整する。具体的には、エッジ検出作業が図５で検出されたおおよそのエッジ位置の近傍のみを対象として高精度に行われるように、セレクタ６１２を図５での検出エッジ位置に配置し直すとともに、ラインツール６１０の走査線の長さを短くする。その他の点では、ラインツール６１０は、図４の原画像上において、通常のエッジ検出プロセス（後述）にしたがって動作する。なお、以上のような一連の操作を行うことの利点については、図６および図７を参照して後に説明する。
【００３０】
ラインツール６１０は、長さ方向に沿って一連のデータ点（例えば、画素）上を走査する。詳細については図１４，図１５に関して後述するが、エッジ位置検出のためのデータ点走査は、フィルタリング操作後の画像（図５）についておおよそのエッジ位置を検出するためにも行われるし、また、より正確なエッジ位置検出のためにフィルタリング操作前の原画像（図４）についても行われる。上で概説したように、最終的により正確なエッジ位置検出のために原画像（図４）について使用される走査線の長さは、図５にて検出されたおおよそのエッジ位置の近傍に制限されているので、最終的に使用される走査線は、通常の場合、あるいは、フィルタリング操作後の画像（図５）についておおよそのエッジ位置を検出する場合などよりも短くなっている。
【００３１】
図６は、図４においてラインツール６１０の走査線に沿って得られる画像強度値７２５（グレイ値）のグラフ７００を示す図である。図７は、図５においてラインツール６１０の走査線に沿って得られるフィルタ画像強度値７２５’（グレイ値）のグラフ７００’を示す図である。図６および図７には、画像強度値７２５および７２５’から算出される勾配７２６および７２６’も示されている。図６および図７において、ラインツール６１０に沿ったデータ点は、グラフの横軸に沿って割り当てられた０〜５０の画素番号によって表されている。図７では、データ点０を始点として見ていくと、データ点０〜データ点２３あたりでは画像強度値７２５’が比較的暗い領域にあり、データ点２３〜データ点５０あたりでは画像強度値７２５’が比較的明るい領域にあることが分かる。
【００３２】
多くのアルゴリズムが、画像強度データにおいて勾配が極大の点をエッジ位置として検出している。画像強度データにおいて勾配が大きい点が複数あった場合（例えば、表示エリアからグリッド３０４が除去されていない図６のような場合や、本発明の方法における後半部分でより正確なエッジ位置評価を行う場合など）には、アルゴリズムは、セレクタ６１２の位置を参照して、どの点が所望のエッジ位置に対応しているかを判断する。また、ラインツール６１０の向きなどの表示は、上がる（画像強度値が増加する）エッジおよび下がる（画像強度値が減少する）エッジのいずれを探せばよいのかをアルゴリズムに判断させる助けとなる。図７では、極大勾配点がデータ点２３であることが明瞭であるので、エッジ位置はデータ点２３に略一致することが簡単に分かる。ここで、図４におけるグリッド３０４のエッジやその他の影に由来して図６に現れているような画像強度値７２５の複雑な変化が、フィルタリング操作によって得られる画像（図５）についての画像強度値７２５’（図７）には現れていないことには注目すべきである。このように、フィルタリング操作によって得られる画像におけるエッジ位置検出は簡単であり、かつ、信頼性が高いものになっている。また、図７では、画像強度値７２５’において、ラインツール６１０の矢印の方向（図７においては、左方から右方に向かう方向）に行くにつれて上がるエッジも現れている。
【００３３】
続いて、図６に戻る。フィルタリング操作（図４→図５）によって生じるエッジ位置の変位が±４，５画素程度であると見込み、かつ、画像強度データにおける極大勾配点に基づく前記のエッジ位置検出技術を用いて十分な精度でエッジ位置を検出するためには当該エッジ位置の両側に４，５画素程度分の画像強度データが有ることが好ましいとの想定の下で、本実施形態では、図４におけるラインツール６１０の走査線の長さを、フィルタリング操作後の画像（図５）について検出されたエッジ位置（画素番号２３：図７）の周りの±１０画素程度に制限することができる。したがって、フィルタリング操作前の原画像（図４）においては、画素番号が略１３〜３３である画素に対応するデータのみが取得されて分析されるようになっており、また、ラインツール６１０のパラメータもこれに応じて修正される。ここで、図６では、画素番号１３〜３３の間において２つの上がるエッジが存在しており、当該２つの上がるエッジは極大勾配を有する画素番号１３および画素番号２３に対応していることが分かる。しかしながら、前述の通り、エッジ位置は、フィルタリング操作前の原画像（図４および図６）とフィルタリング操作後の画像（図５および図７：エッジ位置は画素番号２３）との間で相違が多くても４，５画素程度であると言えるので、番号１３の画素は真のエッジを示すものではないと判断することができ、真のエッジ位置は番号２３の画素近傍にあると判断することができる。
【００３４】
なお、エッジ位置（画像強度データにおける極大勾配位置）は、実際には、サブピクセルレベル（ピクセル＝画素）の精度で検出することができる。具体的には、ピクセルレベルで取得された画像強度データ７２５あるいは勾配データ７２６（図６）を補完してサブピクセルレベルのデータに補正し、当該補正後のデータに基づいてエッジ位置をサブピクセルレベルで高精度に検出する。このような補完は公知の技術、例えば、曲線フィッティング技術や、極大勾配点を含む勾配カーブの重心を見つける重心特定技術などを利用して行うことができる。また、トレーニングモードにおいては、画素番号２３近傍のエッジの種々の特性データが測定されて保存される。ここで保存された特性データは、後の実行（ｒｕｎ）モードにおいて、同種のエッジ部分におけるエッジ位置の選択および決定に利用され、より信頼性の高いエッジ位置検出を可能とする。ここで、測定・保存されるエッジの特性データとしては、画像強度データ７２５のエッジ位置（≒画素番号２３）近傍（例えば、極小画素２０〜極大画素２６）における強度変化や、エッジ位置における画像強度値や、極小画素２０と極大画素２６との比などが例示される。
【００３５】
図８は、図３のワーク画像に対して前記の形態学的なフィルタリング操作を行って得られたワーク画像を表示する表示エリア３００Ｄを示す図である。なお、前述の図５に示されていたワーク画像は、図８のワーク画像の一部分を拡大したものである。図８には、ワーク画像とともに、エッジ位置検出用のボックスツール，アーク（円弧）ツール，ポイント（点）ツールを表すＧＵＩ（Graphical User Interface）が示されている。これらのＧＵＩは、図５におけるラインツール６１０と同様にフィルタリング操作後の画像に対して重ねられて表示されている。表示エリア３００Ｄには、ボックスツール８１０Ａおよび８１０Ｂ，ラインツール８２０，アークツール８３０が表示されている。これらのビデオツール８１０〜８３０は、図４および図５に関連して説明したラインツール６１０と同様に、ユーザによってフィルタリング操作前の原画像（図３）上に配置された後、事前に定義されたデフォルト設定に基づいてフィルタリング操作後の画像（図８）において使用され、最後にフィルタリング操作前の原画像（図３）において使用されるようになっている。なお、ビデオツール８１０〜８３０のデフォルト設定はユーザが調整または再定義することができるが、調整または再定義しなくてもビデオツール８１０〜８３０を使用することは可能である。また、ビデオツール８１０〜８３０には、事前に定義された選択可能な複数の設定が設けられている。なお、エッジ検出ツールとしての各ＧＵＩの動作特性については、QVPAK 3D CNC Vision Measuring Machine Users GuideおよびQVPAK 3D CNC Vision Measuring Machine Operation Guideにおいて一般的な説明が行われている。
【００３６】
ボックスツール８１０Ａおよび８１０Ｂは、互いに平行な１対の対向辺に沿ってそれぞれ設けられる１対の矢印と、当該一対の矢印の間に設けられるセレクタとを備えた矩形状のツールである。ボックスツール８１０Ａおよび８１０Ｂは、当該ボックスツール８１０Ａおよび８１０Ｂによってエッジ位置検出を行う関心領域が過不足なく含まれ、かつ、矢印によって位置検出対象のエッジが指し示されるまで、オペレータによって形，位置，回転角などが調整される。ボックスツール８１０Ａおよび８１０Ｂは、関心領域に含まれるエッジの各部分における画像強度データの勾配データを用い、マニュアルモードあるいはトレーニングモードにおいて設定されたセレクタの位置と、前記１対の矢印が設けられている１対の対向辺に平行な複数の走査線に沿った勾配データの極値（極大値あるいは極小値）とに基づいてエッジ位置の検出を行う。なお、ボックスツール８１０Ａおよび８１０Ｂにおける矢印の方向は、画像強度データの勾配に関連する参照方向あるいは極性を定義している。
ラインツール８２０は、図４および図５に関連して説明したラインツール６１０と同様に働くツールである。
アークツール８３０は、ワーク画像における曲線を規定しているエッジ位置を検出するツールである。
【００３７】
外来・閉塞特徴（すなわち、グリッド３０４）を除去した『マスクモード』（フィルタリング操作後の図８の画像に基づく処理を行うモード）では、ボックスツール８１０Ａ，８１０Ｂあるいはアークツール８３０が規定する関心領域（当該各ツールの境界線によって囲まれた領域）の全体に渡って利用される基本的なエッジ特性データが、セレクタ（図８においては、『＋』で表示）の位置を通る基本走査線に基づいて取得されるという点で、当該各ツール８１０Ａ，８１０Ｂ，８３０がラインツール６１０（またはラインツール８２０）と同様に動作する。したがって、ラーニングモード，トレーニングモード，ティーチングモードにおいては、ユーザは各ツールのセレクタを、図４における有効エッジ部分６５０のような有効エッジ部分に沿って配置しなければならない。図１０に関連して以下で詳細に説明するが、手動測定モードや実行モードでは、ボックスツール８１０Ａ，８１０Ｂあるいはアークツール８３０は、多数の走査線に基づいて動作する。ここで、個々の走査線は、それぞれ、ラインツール６１０，８２０と同様に動作する。ラーニングモード，トレーニングモード，ティーチングモードにおいてセレクタの位置を通る１本の基本走査線に沿って取得されたエッジスクリーニング（screening）パラメータを、全ての走査線についてのエッジスクリーニングパラメータとして、前記の極大勾配に基づく判断基準と併せて、ボックスツール８１０Ａ，８１０Ｂあるいはアークツール８３０は、エッジ位置の検出を行う。
【００３８】
図９は、ボックスツール８１０Ａおよび８１０Ｂをより詳細に説明するために図８を拡大したものであり、表示エリア３００Ｅを示している。なお、図８は、フィルタリング操作後の画像を示しているが、図９は、フィルタリング操作前の画像を示している。ボックスツール８１０Ａおよび８１０Ｂは、ラインツール６１０における矢印に対応する矢印９１２Ａおよび９１２Ｂを有している。セレクタ９１４Ａおよび９１４Ｂは、ラインツール６１０におけるセレクタ６１２と同様の働きをする。また、前述したように、セレクタ９１Ａおよび９１４Ｂは、それぞれ、各ボックスツール８１０Ａ，８１０Ｂの関心領域の全体に渡って使用される種々のエッジパラメータを取得するために用いられる基本走査線を規定する（基本走査線はセレクタの位置を通るように規定される）。なお、ユーザのリクエストに応じて１または複数の追加的なセレクタをボックスツール８１０Ａ，８１０Ｂに設け、当該追加的なセレクタを有効エッジ部分に沿った位置に沿って配置させることができるようにしてもよい。この場合、複数のセレクタに関する複数の基本走査線に基づいて複数のエッジパラメータが取得されるが、これらの各エッジパラメータを平均し、あるいは、他の方法で適当に結合することでエッジパラメータを１つにまとめることができ、ここでまとめられた１つのエッジパラメータを関心領域全体に渡って使用される基本エッジパラメータとして採用することができる。このような平均操作を行うことにより、基本エッジパラメータが、関心領域のエッジに沿った局所的な変化の影響を受けにくくすることができる。したがって、ボックスツールの動作の信頼性を向上させることができる。
【００３９】
図１０は、複数の走査線を用いても閉塞グリッド３０４の影響を効果的に排除することができるボックスツール８１０Ａ，８１０Ｂの動作をより詳細に説明するための図であり、図９と同じ表示エリア３００Ｅを示している。このような複数の走査線を設ける場合、走査線間の間隔や、各走査線を構成する画素数などを考慮する必要がある。ここで、走査線間の間隔は、カスタマイズ可能なデフォルトとしてプログラム化されてもよいし、ユーザが間隔調整用のサブメニューを用いて個々の場合に応じて設定するようにしてもよい。
【００４０】
表示エリア３００Ｅでは、有効データ領域（グリッド３０４によって覆われていない領域）が少ないので、走査線の間隔を比較的小さくする（例えば、１，２画素置きに走査線を設ける）ことが好ましい。図１０において、有効なエッジ部分の上に配置されている走査線の先端に『矢』（矢印の先端）を表示し、また、有効なエッジ部分の上に配置されていない走査線の先端に『×』を表示する。いずれの走査線に沿うエッジ候補も、フィルタリング操作後の画像において検出されたエッジ位置に十分に合うこと（前述）、および、極大勾配に基づく判断基準を満たすこと（前述）に加えて、トレーニングモードやラーニングモード時にセレクタの位置を通る基本走査線に沿って検出されたエッジについて取得された基本エッジパラメータに合うようなものでなければならない。これらの諸条件によって、閉塞特徴（グリッド３０４）や影などに由来する偽のエッジが効果的に排除されるようになっている。
【００４１】
図１１は、ワークにおける関心領域検査用のパートプログラムを生成・使用するためのルーチン１１００を示すフローチャートである。ブロック１１１０では、ワークにおける関心領域を検査するためのパートプログラムが生成される。ブロック１１２０では、生成されたパートプログラムが実行される。ブロック１１３０では、パートプログラムの生成に用いたワーク、および、当該ワークと同種の他のワークが、ブロック１１１０にて生成されたパートプログラムによって検査される。
【００４２】
図１２は、外来特徴（グリッド３０４）によって閉塞されたワーク特徴を検査するためのルーチン１２００を示すフローチャートである。ブロック１２１０では、画像（以下、原画像という）が取得される。ここで取得される原画像には、外来閉塞特徴（グリッド３０４）と、当該外来閉塞特徴によって閉塞された検査対象としてのワーク特徴とが含まれている。ブロック１２２０では、フィルタ（例えば、形態学的フィルタ）が原画像に適用されて外来閉塞特徴が除去される。そして、外来閉塞特徴が除去されたフィルタリング操作後の画像に基づいてワーク特徴におけるおおよそのエッジ位置が検出される。ここで、形態学的フィルタは、いわゆる閉じたフィルタ（後述）でもよいし、いわゆる開いたフィルタ（後述）でもよい。このような形態学的フィルタとしては、３×３の矩形状マスクや５×５の円板状マスクを有するものを採用することができる。このようなタイプのフィルタを採用することによって、本発明に係る方法が比較的良好に実施される。ブロック１２３０では、フィルタリング操作前の原画像に戻って、ブロック１２２０にて検出されたおおよそのエッジ位置近傍においてより精密なエッジ位置検出を行うことにより、エッジ位置の検出精度が高められる。ブロック１２４０では、高精度に検出されたエッジ位置に基づいて、ワークに関するフィッティング，検査，位置調整などが行われる。詳細については後述するが、図１２のルーチン１２００は、トレーニングモードにおいても実行モードにおいても使用される。
【００４３】
ユーザが、自ら認識した被閉塞特徴（検査対象）におけるエッジ位置に複数のポイントツールなどを注意深く配置する必要があった公知のシステムと対照的に、本実施形態のシステムは簡単に使用することができる。また、本実施形態では、ボックスツールや、これに類する他の多点ツールを、被閉塞特徴（ワーク特徴）および閉塞特徴（グリッド３０４）の両者を含む領域上に配置することができる。したがって、ユーザは、画像中に存在する閉塞特徴のことを特に考慮することなく、通常の方法で多点ツールを利用することができる。
【００４４】
図１３は、ボックスツールＧＵＩ１５１０と、トレーニングモードやマニュアルモードにおいて、被閉塞特徴のエッジ検出の際に閉塞特徴のエッジを効果的に除去するマスクモードのオン／オフ切替を行う制御ツール１５２０とを示している。詳細については後述するが、マスクモードが選択されると（オン）、本発明に基づく被閉塞特徴の測定方法が実行される。制御ツール１５２０は、オンボタン１５２２と、オフボタン１５２４とを含んでいる。オンボタン１５２２がマウス１１５のクリックなどによって選択されると、図１２のルーチン１２００によって示される被閉塞特徴の測定作業が自動的に開始される。なお、ボックスツール１５１０以外のツールについても、制御ツール１５２０と同様の制御ツールを設けることができる。当然ながら、制御ツール１５２０は、その他の形態、例えば、分割された形態，複雑な多機能ツールに含まれた形態，ビデオツールの表示に直接的に含まれた形態などで実現することが可能である。要するに、制御ツール１５２０の本質は、ルーチン１２００に示されているような被閉塞特徴の測定モードの起動／停止を行うことができるという点にある。
【００４５】
なお、被閉塞特徴の測定に関するデモンストレーションモード（中間処理のプレビューなどを伴う画像処理の確認モード）を設けてもよい。この場合、マウス１１５のクリックなどによって制御ツール１５２０のオンボタン１５２２が選択されると、ラーニングモードやトレーニングモードのデモンストレーションが自動的に開始されるようにしてもよい。ここで、デモンストレーションにおいては、フィルタリング操作後の画像が評価用に表示され、あるいは、実行モードの結果のプレビューなどが表示される。このようなデモンストレーション結果に基づいて、マシンオペレータは、デモンストレーション自体の有効性やデモンストレーションに関連するプログラミングのパラメータ，指令などの妥当性を判断することができ、結果が好ましくなかった場合は、パラメータや指令などを適宜修正することができる。
【００４６】
また、被閉塞特徴の測定モード中にマウス１１５のクリックなどによって制御ツール１５２０のオンボタン１５２２が選択された場合、十分に定義され、あるいは、十分にトレーニングされた被閉塞特徴測定のための設定が自動的に適用されるようにしてもよいし、トレーニングモードのデモンストレーションが行われずにそのまま測定が続行されるようにしてもよいし、トレーニングモードのデモンストレーションによって表示される評価用画像の示す結果が測定結果としてそのまま受け入れられるようにしてもよいし、追加的なトレーニングモードに自動的に移行されるようにしてもよい。言い換えれば、制御ツール１５２０の動作が、より高いレベルの指令があるか、あるいは、バックグラウンドの指令があるかに依存するようにしてもよい。例えば、外来特徴が、検査対象としての複数の特徴や領域を含む画像のほとんど、あるいは、全てを覆ってしまっている場合（例えば、反復グリッドパターン３０４が外来特徴として画像中に存在している場合）には、このようなモードが適切である。なお、以上に説明した各ツールは、個別に利用することもできるし、組み合わせて利用することもできる。また、ＧＵＩや制御ツールは、以上で説明した形態に限定されることはなく、他の形態をとることもできる。
【００４７】
図１４は、被閉塞特徴の測定モードの選択に用いられるマスクモードセレクタ１６１０を含むＧＵＩツールバーウインドウ１６００を示している。なお、ツールバーウインドウ１６００のその他の部分は、前記のQVPAKソフトウェアにおいて提供されているものと同じである。マスクモードセレクタ１６１０は、グローバルマスクモードのために画像上にドラッグすることもできるし、ツール固有マスクモードのために個々のツール上にドラッグすることもできる。ツールに、マスクモード時に反射する仕掛けを設けてもよい。また、マスクモードセレクタ１６１０は、ツールバー１６００上に留まってトグリング機能を提供するようにしてもよい。マスクモードセレクタ１６１０のトグリング機能がオンになった場合には、ビデオツールがドラッグによりツールバーウインドウ１６００から引き離されてマスクモードになる。このとき、ビデオツールの視覚的特徴によって、ビデオツールがマスクモードにあることを示すようにしてもよい。ユーザインターフェイスは、被閉塞特徴の半自動測定モードを補助するために用いることができる。ここで、半自動測定モードでは、マスクモードが起動されると、ユーザに半自動技術を選択するかをツールが問い合わせるようにしてもよいし、ユーザが選択可能ないくつかの代替案をツールが表示するようにしてもよい。
【００４８】
図１５は、マスクモードツールを用いてラーニングモードを実行するためのルーチン１７００を示すフローチャートである。ブロック１７１０では、ラーニング／トレーニング／ティーチングモードが入力される。ブロック１７１２では、マスクモード中に被閉塞特徴を測定するための１または複数の作業が行われる。ブロック１７１４では、関心領域においてモードを設定するために用いられるマスクモード起動／停止ツール（図１３および図１４に関して説明したもの）が提供される。
【００４９】
ブロック１７２０では、画像が取得される。ブロック１７２２では、ツールがトレーニングのためにセットアップされる。判断ブロック１７２４では、マスクモードが選択されているか否かの判断が行われる。ここで、マスクモードが選択されていない場合（No）には、ルーチン１７００はブロック１７４０に進み、ツールが被閉塞特徴の測定方法を用いずにトレーニングされる。また、マスクモードが選択されている場合（Yes）には、ルーチン１７００はブロック１７３０に進み、被閉塞特徴ラーニング／トレーニング／ティーチングモードが実行される。なお、ブロック１７３０については、図１６〜図１８を用いて以下で詳細に説明する。
【００５０】
ブロック１７３０またはブロック１７４０に続いて、ルーチン１７００はブロック１７４２に進み、トレーニングされたツールの作業結果が表示される。判断ブロック１７４４では、表示された作業結果が許容できるか否かの判断が行われる。ここで、許容できる場合としては、例えば、想定していたエッジが見つかった場合や、見つかったエッジの位置が略期待通りだった場合などが挙げられる。作業結果が許容できない場合（No）には、ルーチン１７００はブロック１７２２に戻る。作業結果が許容できる場合（Yes）には、ルーチン１７００は判断ブロック１７４６に進む。
【００５１】
判断ブロック１７４６では、更なるトレーニング作業が必要か否かが判断される。更にトレーニング作業が行われる場合（Yes）には、ルーチン１７００はブロック１７２０に戻る。更にトレーニング作業が行われない場合（No）には、ルーチン１７００はブロック１７４８に進み、パートプログラムが保存され、ラーニングモードが終了する。
【００５２】
図１６〜図１８は、ラーニング／トレーニング／ティーチングモードにおいて被閉塞特徴を検出するためのルーチン２０００を示すフローチャートである。ルーチン２０００は、図１６においてはルーチン２０００Ａと、図１７においてはルーチン２０００Ｂと、図１８においてはルーチン２０００Ｃと表示される。なお、前述したように、ルーチン２０００は、図１５におけるブロック１７３０にて実行される。図１６に示されるように、ブロック２０１４では、関心領域（ROI：Region Of Interest）が設定されている画像（Image）IMG0およびＧＵＩにて表現されたツールの範囲内において、ユーザが測定対象特徴の境界内部において点P0を選択する。ブロック２０１６では、点P0および関心領域に基づいて走査線（Scan Line）SL0（第１の走査線）が設定される。走査線SL0の長さは、変数SL0_LENGTHとして表現される。
【００５３】
ブロック２０１８では、ユーザが形態学的フィルタF0のパラメータを設定する。ここで、形態学的フィルタF0のパラメータには、当該フィルタF0が閉じたフィルタであるか開いたフィルタであるか，マスクのタイプ，マスクの大きさなどが含まれる。一般的に、『閉じたフィルタ』とは、暗い背景上に明るい部分が形成されたフィルタのことを言い、『開いたフィルタ』とは、明るい背景上に暗い部分が形成されたフィルタのことを言う。本実施形態では、マスクとして、３×３の矩形状タイプのものや５×５の円板状タイプのものを用いている。判断ブロック２０２０では、ユーザが繰り返し回数（形態学的フィルタを用いたフィルタリング操作における膨張操作および縮退操作の繰り返し回数）の自動設定オプションを選択しているか否かが判断される。ユーザが繰り返し回数の自動設定オプションを選択している場合（Yes）には、ルーチン２０００Ａはブロック２０２２に進み、ユーザが入力するグリッドD0の寸法に基づいて繰り返し回数N0が自動的に設定される。ユーザが繰り返し回数の自動設定オプションを選択していない場合（No）には、ルーチン２０００Ａはブロック２０２４に進み、ユーザがフィルタF0に適用される繰り返し回数N0を入力する。そして、ルーチン２０００Ａは点Ａに進み、図１７に続く。
【００５４】
図１７では、点Ａから続くルーチン２０００Ｂがブロック２０３０に進み、フィルタF0が関心領域において画像IMG0にN0回繰り返し適用される。これによってフィルタ画像IMG1が生成される。ブロック２０３２では、フィルタ画像IMG1において走査線SL0を用いたエッジ検出が実行される。判断ブロック２０３４では、エッジ点が検出されたか否かの判断が行われる。エッジ点が検出されなかった場合（No）には、ルーチン２０００Ｂはブロック２０３６に進み、エッジ検出プロセスが停止される。続いて、ルーチン２０００Ｂは点Ｃに進んで図１６のブロック２０１４に戻り、エッジ検出プロセスを再度試みるためにユーザが他の点P0を選択することができる。判断ブロック２０３４において、エッジ点が検出されたと判断された場合（Yes）には、ルーチン２０００Ｂはブロック２０３８に進み、エッジ閾値TH，THR，THSを含むエッジ検出パラメータ（Edge Detection Parameters）EDP0が記憶される。その後、ルーチン２０００Ｂは点Ｂに進み、図１８に続く。
【００５５】
エッジ閾値TH，THR，THSを含むエッジ検出パラメータEDP0は、静的なもの（ランタイム中に更新されないもの）であってもよいし、動的なもの（ランタイム中に更新されるもの）であってもよい。閾値THは、最初のエッジ位置特定やスクリーニングに用いられる静的な画像強度閾値である。閾値THSは、エッジをまたぐ前後における画像強度の変化についてのエッジ強度閾値であり、閾値TH適用後の更なるエッジ位置特定やスクリーニングに用いられる。閾値THRは、THとTHSとの比であり、照明やワーク特性の変化などが原因で画像全体に渡って生じる強度変化を補償するために、ランタイム中にTHおよびTHSを更新するために用いられる動的な閾値である。
【００５６】
ここで、ブロック２０３２〜２０３８のプロセスが、原画像IMG0に対して行われるのではなく、フィルタ画像IMG1に対して行われるということに注意すべきである。これにより、プロセスの信頼性および迅速性が確保される。前述したように、ブロック２０３２〜ブロック２０３８のプロセスによってフィルタ画像IMG1に関してエッジ点のおおよその位置を見出し、続いて、後述するように、より精度の高いエッジ位置検出プロセスをエッジ点が存在すると判断された範囲に絞って原画像IMG0について行うことによって、プロセスの迅速化が図ることができるとともに、検出精度を高め、信頼性を向上させることができる。
【００５７】
図１８に示されるように、点Ｂから続くルーチン２０００Ｃがブロック２０５０に進み、新たな走査線SL1（第２の走査線）が設定される。走査線SL1は、原走査線SL0と同じ向きで同じ位置に配置されるが、原走査線SL0よりも短い。ここで、原走査線SL0よりも短い走査線SL1を使用するのは、エッジ点の近傍をより精密に分析するためである。本実施形態では、短い走査線SL1は、画素２１個分の長さを有している。ブロック２０５２では、走査線SL1および原画像IMG0に基づいてエッジ検出が実行される。判断ブロック２０５４では、エッジ点が検出されたか否かの判断が行われる。エッジ点が検出されなかった場合（No）には、ルーチン２０００Ｃはブロック２０５６に進み、エッジ検出プロセスが停止される。続いて、ルーチン２０００Ｃは点Ｃに進んで図１６のブロック２０１４に戻り、エッジ検出プロセスを再度試みるためにユーザが他の点P0を選択することができる。判断ブロック２０５４において、エッジ点が検出されたと判断された場合（Yes）には、ルーチン２０００Ｃはブロック２０５８に進み、エッジ閾値TH，THR，THSを含むエッジ検出パラメータEDP1が記憶される。
【００５８】
ブロック２０５０において設定される走査線SL1の長さは、検出したいエッジ点が当該走査線SL1上に乗るか当該走査線SL1上から外れるかを左右する決定的な要素である。ここで、走査線SL1の長さは一定としてもよいし、当初は一定長さだったものを走査線の分析に基づいて修正してもよい。例えば、エッジが『上がるエッジ』である場合、走査線SL1に沿ってエッジに対応する部分において画素の明暗パターンに変化が生じて暗い画素群に続く明るい画素群がエッジ位置に対応する部分において現れるが、エッジから離れた部分における画素群は、このような明暗パターンに従わずエッジ検出に有用な情報を持たないので、走査線SL1の長さを修正することにより除外するべきである。また、各エッジ点の２次元分析を行って、当該各エッジ点が走査線SL1上に乗るか走査線SL1上から外れるかを調べることもできる。
【００５９】
図１９および図２０は、被閉塞特徴実行モードを行うためのルーチン２１００を示すフローチャートである。図１９に示されるように、ブロック２１１０では、画像IMG0が読み出され、あるいは、取得される。ブロック２１１２では、ツールがＧＵＩにて表現され、関心領域ROIが設定され、走査線SLi（ｉ＝１，・・・，ｎ）が設定される。ブロック２１１４では、フィルタF0（図１６のラーニングモードにおいて選択されたもの）が画像IMG0の関心領域ROIに適用され、フィルタ画像IMG1が取得される。フィルタF0およびそのパラメータ（フィルタのタイプや繰り返し回数を含む）は、図１６および図１７のラーニングモードにおいて設定されたものである。ブロック２１１６では、図１６および図１７のラーニングモードにおいて設定されたエッジ検出パラメータEDP0に基づいて、フィルタ画像IMG1について走査線SLiに沿ったエッジ検出が実行される。ブロック２１１８では、走査線SLkに沿ったエッジ点EdgePtsk（ｋ＝１，・・・，ｍ：但し、ｍ≦ｎ）が検出される。その後、ルーチン２１００Ａは点Ｄに進み、図２０に続く。
【００６０】
図２０に示されるように、点Ｄから続くルーチン２１００Ｂがブロック２１３０に進み、各走査線SLkに沿って検出された各エッジ点EdgePtskについて、新たな走査線SL’kが設定される。ここで、走査線SL’kは、走査線SLkと同じ向きで同じ位置に配置されるが、走査線SLkよりも短く、中心がエッジ位置EdgePtskに一致されている。ブロック２１３２では、図１８のラーニングモードにおいて設定されたエッジ検出パラメータEDP1に基づいて、原画像IMG0について走査線SL’kに沿ったエッジ検出が実行される。ブロック２１３４では、エッジ点EdgePtskk（ｋｋ＝１，・・・，ｍｍ：但し、ｍｍ＜ｍ）が検出される。ブロック２１３６では、エッジ点EdgePtskkが測定対象の特徴（例えば、線，円，円弧など）のフィッティングに使用される。ブロック２１３８では、アウトライアー（outlier）エッジ点が除去される。アウトライアーエッジ点の除去プロセスとしては、以下のものを例示することができる。
【００６１】
（１）検出されたデータ点を特徴（線，円，・・・）のフィッティングに使用する。
（２）フィッティングの際の各データ点の誤差を計算する。ここで、各データ点についての誤差は、当該各データ点とフィッティング対象特徴との間の最小距離に相当する。
（３）誤差の最大値（max_error）に着目する。
（４）max_error ＞ OUTLIER_THRESHOLD であれば、max_errorに対応するデータ点はアウトライアーであって除去される。そして、除去されたデータ点を対象から外した上で、アルゴリズム（１）〜（４）が再度開始される。アルゴリズムは、除去するデータ点がなくなるまで（max_error ≦ OUTLIER_THRESHOLD となるまで）繰り返し行われる。
【００６２】
アウトライアーを除去に関わるOUTLIER_THRESHOLDの値は重要である。OUTLIER_THRESHOLDの値が小さくなればなるほど、より多くのデータ点が除去されるようになる。OUTLIER_THRESHOLDの値の決め方は様々ある。一般的な方法は、全てのデータ点の誤差（ステップ（２）参照）のガウス分布特性を求め、当該分布の標準偏差に所望の数を掛け、得られた値に±を付した数によって規定される範囲内においてアウトライアーの上下限を設定する方法である。標準偏差に掛ける数としては２が一般的であり、これによれば、判断対象のデータ点の誤差を、他の全てのデータ点の誤差とそれぞれ比較した場合に、当該判断対象のデータ点の誤差が、全データ点の９５．４５％のデータ点の誤差よりも大きかった場合に当該判断対象のデータ点がアウトライアーと判断されることになる。
【００６３】
ブロック２１３０において設定される走査線SL’kの長さは、検出対象のエッジ点を絞り込む上で重要である。なお、ツールにおいて複数の走査線SL’kが設けられる場合、各走査線SL’kの長さは揃っている必要はなく、各走査線SL’kの長さが異なっていてもよい（例えば、グリッドの近くに設けられる走査線は、グリッドを避けるために短くなければならない）。ここで、走査線SL’kの長さは一定としてもよいし、当初は一定長さだったものを走査線の分析に基づいて修正してもよい。例えば、エッジが『上がるエッジ』である場合、走査線SL’kに沿ってエッジに対応する部分において画素の明暗パターンに変化が生じて暗い画素群に続く明るい画素群がエッジ位置に対応する部分において現れるが、エッジから離れた部分における画素群は、このような明暗パターンに従わずエッジ検出に有用な情報を持たないので、走査線SL’kの長さを修正することにより除外するべきである。ブロック２１３４では、検出されるべきエッジ点が走査線上にきちんと乗っているか否かを判断するための種々の判断基準を利用することができる。このような判断基準の１つとして、エッジ検出パラメータEDP1を利用するものが挙げられる（データ点は、EDP1における閾値THSとの関係を満足しないと、エッジ点として検出されない）。また、他の判断基準として、走査線上におけるデータ点との近接画素を分析するものや、２次元的近傍の画素を分析するものが挙げられる。また、検出すべきエッジ点を良好なエッジ点として保持するための『許容強度』を規定するロバストネス（robustness）基準をツールに課してもよい。
【００６４】
本実施形態における方法は、カスタム操作を要求することなく、標準的なタイプのビデオツールをそのまま利用することができるという点で、ユーザの操作を簡単化することができる。言い換えれば、カスタム操作を実行するためのスクリプト言語の使用がユーザに求められることがない。その代わりに、本実施形態では、未熟なユーザであっても最小限のトレーニングで使用することができるように、予めプログラミングされたアイコンなどが設けられている。さらに、前述したように、関心領域は被閉塞特徴および閉塞特徴の双方を囲むことができる。これにより、ユーザは、個々のポイントツールを、閉塞特徴を避けながら被閉塞特徴上に個々に配置するという煩雑な操作を行う必要がなくなる。
【００６５】
既存の画像検査システムは、最小限の改装を行うだけで、あるいは、何らの改装を行わなくても、本発明に基づく方法を実施することができる。ここで、本発明の原理にしたがう画像検査ソフトウェア（プログラム）を既存の画像検査システムに読み込ませることも『改装』に相当する。
【００６６】
以上、本発明の実施形態について説明を行ったが、本実施形態に関する代替物，修正，変更，改良，実質的均等物は、公知のものであれ未公知のものであれ、本発明の技術的範囲に属することは当業者にとって明白である。このように、本発明の実施形態は、例示を目的としたものであって、本発明の限定を目的としたものではない。そのため、本発明の精神および範囲から逸脱することなく、様々な変更を行うことができる。
【産業上の利用可能性】
【００６７】
本発明は、画像検査に利用することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態に係る画像検査システムを示す斜視図である。
【図２】検査対象のワークが表示されている画像検査システムの表示エリアの一部分を示した図である。
【図３】図２と同様の表示エリアを示す図である。
【図４】図３の拡大図である。
【図５】図４のワーク画像に形態学的フィルタを適用して得られる画像データを示す図である。
【図６】図４においてラインツールの走査線に沿って得られる画像強度値のグラフを示す図である。
【図７】図５においてラインツールの走査線に沿って得られるフィルタ画像強度値のグラフを示す図である。
【図８】図３のワーク画像に対して形態学的なフィルタリング操作を行って得られたワーク画像を表示する表示エリアを示す図である。
【図９】ボックスツールをより詳細に説明するために図８を拡大した図である。
【図１０】複数の走査線を用いても閉塞グリッドの影響を効果的に排除することができるボックスツールの動作をより詳細に説明するための図である。
【図１１】ワークにおける関心領域検査用のパートプログラムを生成・使用するためのルーチンを示すフローチャートである。
【図１２】外来特徴によって閉塞されたワーク特徴を検査するためのルーチンを示すフローチャートである。
【図１３】ボックスツールＧＵＩと、トレーニングモードやマニュアルモードにおいて、被閉塞特徴のエッジ検出の際に閉塞特徴のエッジを効果的に除去するマスクモードのオン／オフ切替を行う制御ツールとを示す図である。
【図１４】被閉塞特徴の測定モードの選択に用いられるマスクモードセレクタを含むＧＵＩツールバーウインドウを示す図である。
【図１５】マスクモードツールを用いてラーニングモードを実行するためのルーチンを示すフローチャートである。
【図１６】ラーニング／トレーニング／ティーチングモードにおいて被閉塞特徴を検出するためのルーチンを示すフローチャートである。
【図１７】ラーニング／トレーニング／ティーチングモードにおいて被閉塞特徴を検出するためのルーチンを示すフローチャートである。
【図１８】ラーニング／トレーニング／ティーチングモードにおいて被閉塞特徴を検出するためのルーチンを示すフローチャートである。
【図１９】被閉塞特徴実行モードを行うためのルーチンを示すフローチャートである。
【図２０】被閉塞特徴実行モードを行うためのルーチンを示すフローチャートである。
【符号の説明】
【００６９】
１０…画像検査システム
１００…制御システム
２００…画像測定機
３０４…グリッド
６１０，８２０…ラインツール
８１０Ａ，８１０Ｂ，１５１０…ボックスツール
８３０…アークツール
【図１】
2006048675.tif 000003
【図２】
2006048675.tif 000004
【図３】
2006048675.tif 000005
【図４】
2006048675.tif 000006
【図５】
2006048675.tif 000007
【図６】
2006048675.tif 000008
【図７】
2006048675.tif 000009
【図８】
2006048675.tif 000010
【図９】
2006048675.tif 000011
【図１０】
2006048675.tif 000012
【図１１】
2006048675.tif 000013
【図１２】
2006048675.tif 000014
【図１３】
2006048675.tif 000015
【図１４】
2006048675.tif 000016
【図１５】
2006048675.tif 000017
【図１６】
2006048675.tif 000018
【図１７】
2006048675.tif 000019
【図１８】
2006048675.tif 000020
【図１９】
2006048675.tif 000021
【図２０】
2006048675.tif 000022