(57)【要約】【課題】従来の２次元画像処理装置と同様に、利用可能な処理項目を提示して３次元計測の処理のシーケンスを作成させるユーザインタフェースを持つ画像処理装置を提供する。【解決手段】２次元画像処理の複数の項目、および３次元計測処理の少なくとも１つの項目が登録された画像処理装置において、ユーザによる処理項目の選択に応じて２つの画像Ａ０，Ａ１を用いた処理のシーケンスを設定して実行する。２次元画像処理の項目には、画像Ａ０に対し、あらかじめ登録されたモデル画像との一致の程度が高い領域７１の代表位置を特定する処理項目が含まれる。この処理項目を含むシーケンスに組み込まれる３次元計測用の項目は、画像Ａ１に対し、上記のモデル画像との一致の程度が高い領域８１の代表位置を特定する処理と、各領域７１，８１の代表位置を用いて３次元計測用の演算処理を実行する処理とを実行するように設計される。【選択図】図２３
2011191312.tif 000002
【特許請求の範囲】
【請求項１】
対象物を互いに異なる方向から撮影するように配置された第１のカメラおよび第２のカメラによりそれぞれ撮影された画像に基づく第１の画像および第２の画像を用いた処理を行う画像処理装置であって、
処理項目のシーケンスを設定するシーケンス設定手段と、
設定されたシーケンスを実行するシーケンス実行手段とを備え、
シーケンス設定手段は、ユーザの選択によりシーケンスの要素とすることができる処理項目として、２次元画像処理の複数の項目、および３次元計測処理の少なくとも１つの項目を提供し、
提供される２次元画像処理の項目の中には、あらかじめ登録されたモデル画像との一致の程度が高い第１の画像上の領域の代表位置を特定する第１画像上位置特定処理の項目が、少なくとも１つ含まれており、
前記３次元計測処理に提供される処理項目の少なくとも１つは、前記第１画像上位置特定処理の項目と同じシーケンスに組み込まれて、前記モデル画像との一致の程度が高い第２の画像上の領域の代表位置を特定する第２画像上位置特定処理と、前記第１画像上位置特定処理により特定された第１の画像における代表位置と前記第２画像上位置特定処理により特定された第２の画像における代表位置とを用いた３次元計測用の演算処理とを実行するように設計されている、画像処理装置。
【請求項２】
対象物を互いに異なる方向から撮影するように配置された第１のカメラおよび第２のカメラによりそれぞれ撮影された画像に基づく第１の画像および第２の画像を用いた処理を行う画像処理装置であって、
処理項目のシーケンスを設定するシーケンス設定手段と、
設定されたシーケンスを実行するシーケンス実行手段とを備え、
シーケンス設定手段は、ユーザの選択によりシーケンスの要素とすることができる処理項目として、２次元画像処理の複数の項目、および３次元計測処理の少なくとも１つの項目を提供し、
提供される２次元画像処理の項目の中には、第１の画像上にユーザの指示に基づき計測対象領域を設定して、この計測対象領域の代表位置を特定すると共に計測対象領域内の画像をモデル画像として取得する第１画像上位置特定処理の項目が、少なくとも１つ含まれており、
前記３次元計測処理に提供される処理項目の少なくとも１つは、前記第１画像上位置特定処理の項目と同じシーケンスに組み込まれて、前記第１画像上位置特定処理で取得したモデル画像との一致の程度が高い第２の画像上の領域の代表位置を特定する第２画像上位置特定処理と、前記第１画像上位置特定処理により特定された第１の画像における代表位置と前記第２画像上位置特定処理により特定された第２の画像における代表位置とを用いた３次元計測用の演算処理とを実行するように設計されている、画像処理装置。
【請求項３】
第２画像上位置特定処理は、第１のカメラと第２のカメラとの位置関係および第１画像上位置特定処理において特定された代表位置に基づいて第２の画像上にサーチ領域を設定し、サーチ領域内において前記モデル画像と一致の程度が高い領域の代表位置を特定するものである、請求項１または２に記載の画像処理装置。
【請求項４】
前記サーチ領域は、さらに、３次元計測の対象範囲としてユーザに指定された第１のカメラの光軸に沿う範囲に基づいて設定される、請求項３に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、対象物を互いに異なる方向から撮影するように配置された複数のカメラによりそれぞれ撮影された画像に基づいて３次元計測を行う装置に関する。
【背景技術】
【０００２】
従来より、対象物の形状や表面パターンについて、２次元画像処理による計測を行う装置が、種々の製品の製造現場において広く用いられている。これら２次元の画像処理装置では、対象物を代表する面（例えば対象物の底面）または対象物の計測対象面（検査対象面を含む。）を、その面に垂直な方向、すなわちその面を正面視する方向から撮像した画像に基づき、計測（検査を目的とする計測を含む。以下、この明細書では、検査の過程で何らかの計測が行われることを踏まえ、単に「計測」という場合には「検査を目的とする計測」を行う場合を含むものとする。）を行うようにしている。
【０００３】
このような２次元画像処理装置は、同じ装置がさまざまな計測目的に適用できるように、多様な処理項目のメニューを備え、使用する処理項目とその実行順序をユーザが指定して処理項目のシーケンスを組み立てることができるようになっている場合が多い。例えば特許文献１の図９には、ユーザに利用可能な処理項目を提示して、処理項目の実行手順を指定させる画像処理装置が記載されている。
【０００４】
一方、複数のカメラを用いた立体視の原理に基づく三次元計測の手法が知られており、そのような手法は例えば特許文献２に記載されている。しかし、３次元計測を行う装置は、対象物の種類や性質を限定し、与えられたその対象物の特徴を利用して計測するための計測アルゴリズムを備えた上で、その対象物に専用化された装置として実用化されているのが実状である。例えば、特許文献２には、回転対称な形状を有する対象物を３次元計測するための画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１６７６７８号公報
【特許文献２】特開２００２−９９９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
種々の製品の製造現場においても、対象物の３次元計測が可能であれば、従来の２次元画像処理装置ではできなかった計測が可能になったり、従来よりも計測精度や使い勝手が向上したりすると考えられる状況は存在する。しかし、種々の製品の製造現場において汎用的に使用できる３次元計測装置は知られていなかった。
【０００７】
このような状況において、発明者らは、従来一般的であった３次元計測に特化した画像処理装置を開発するのではなく、従来の２次元画像処理装置としての機能を継承しつつ、これに３次元計測機能を付加する方向で装置を開発することにより、３次元計測が可能でしかも汎用性の高い、新たなタイプの画像処理装置を創出することにした。このような方針のもと、発明者らが設定した課題の一つは、従来の２次元画像処理装置と同様に、利用可能な処理項目を提示して処理項目のシーケンスを作成させるようなユーザインタフェースによって３次元計測のシーケンスを指定できるようにすることである。
【０００８】
発明者らが設定した他の課題は、従来の２次元画像処理装置においても用いられていた処理の一部を３次元計測にも活用することである。
【課題を解決するための手段】
【０００９】
従来の２次元画像処理装置と同様に、利用可能な処理項目を提示して処理項目のシーケンスを作成させるようなユーザインタフェースによって３次元計測のシーケンスを指定させるのに好適な処理項目を提供する画像処理装置は、対象物を互いに異なる方向から撮影するように配置された第１のカメラおよび第２のカメラによりそれぞれ撮影された画像に基づく第１の画像および第２の画像を用いた処理を行うもので、処理項目のシーケンスを設定するシーケンス設定手段と、設定されたシーケンスを実行するシーケンス実行手段とを備える。シーケンス設定手段は、ユーザの選択によりシーケンスの要素とすることができる処理項目として、２次元画像処理の複数の項目、および３次元計測処理の少なくとも１つの項目を提供する。
【００１０】
第１の画像処理装置では、提供される２次元画像処理の項目の中に、あらかじめ登録されたモデル画像との一致の程度が高い第１の画像上の領域の代表位置を特定する第１画像上位置特定処理の項目が、少なくとも１つ含まれる。また３次元計測処理に提供される処理項目の少なくとも１つは、第１画像上位置特定処理の項目と同じシーケンスに組み込まれて、前記モデル画像との一致の程度が高い第２の画像上の領域の代表位置を特定する第２画像位置特定処理と、第１画像上位置特定処理により特定された第１の画像における代表位置と第２画像上位置特定処理により特定された第２の画像における代表位置とを用いた３次元計測用の演算処理とを実行するように設計される。
【００１１】
上記の構成によれば、あらかじめ登録されたモデルと一致の程度が高い対象物上の領域の代表位置を３次元的に計測することができる。
【００１２】
第２の画像処理装置では、提供される２次元画像処理の項目の中に、第１の画像上にユーザの指示に基づき計測対象領域を設定して、この計測対象領域の代表位置を特定すると共に計測対象領域内の画像をモデル画像として取得する第１画像上位置特定処理の項目が、少なくとも１つ含まれる。また３次元計測処理に提供される処理項目の少なくとも１つは、第１画像上位置特定処理の項目と同じシーケンスに組み込まれて、第１画像上位置特定処理で取得したモデル画像との一致の程度が高い第２の画像上の領域の代表位置を特定する第２画像上位置特定処理と、第１画像上位置特定処理により特定された第１の画像における代表位置と第２画像上位置特定処理により特定された第２の画像における代表位置とを用いた３次元計測用の演算処理とを実行するように設計される。
【００１３】
この構成によれば、第１の画像から取得されたモデルと一致の程度が高い対象物上の領域の代表位置を３次元的に計測することができる。実際に計測処理の対象とする画像からモデルを取得するので、計測の対象とする表面の文字や模様が対象物毎に変化する場合でも３次元計測を行うことができる。また、対象物の複数の領域を個別に計測するようにすれば、対象物の３次元形状（対象物表面の３次元座標の分布）を得ることもできる。
【００１４】
第１および第２の画像処理装置のいずれにおいても、使用するカメラの数は３以上としてもよい。その場合は、そのうちの２台が第１のカメラ、第２のカメラとなる。
第１の画像、第２の画像は、それぞれ第１のカメラ、第２のカメラで撮影された画像そのものでもよいし、さらに何らかの処理が施された画像でもよい。例えば、第２のカメラで撮影された斜視画像を正面視の画像に変換した画像を第２の画像として用いてもよい。
第１画像上位置特定処理は、その処理自体の仕様としては、設定によって第２の画像を対象とすることも可能な汎用的な処理（プログラム）であることを妨げない。
【００１５】
第１および第２の画像処理装置は、いずれも３次元計測のために第１の画像上で位置を特定する処理が２次元画像処理の複数の項目の中から選ばれるようになっている。このため、この画像処理装置によれば、３次元計測が可能であるにもかかわらず、従来の２次元画像処理装置との統一性が高く、ユーザにとって装置を使用するための学習量が少なくて済む。したがって、ユーザによる装置の使いこなしが容易である。
また第２の画像上で代表位置を特定する処理と３次元計測用の演算処理とが１つの処理項目とされているので、ユーザは少ない指示で３次元計測全体のシーケンスを完成させることができ、ユーザによる装置の使いこなしがいっそう容易である。
【００１６】
以下、第１、第２の画像処理装置に適用される実施形態を説明する。
まず、第１画像上位置特定処理として、他の観点により第１の画像における対象物上の位置を特定する処理を含む複数種の第１画像上位置特定処理を提供してもよい。３次元計測処理の項目についても、複数種類を提供してもよい。
この構成により３次元計測の処理内容を選択することができるようになる。さらに、選択により１つの第１画像上位置特定処理の項目と対にすることが可能な３次元計測処理の項目が複数ある場合、および、選択により１つの３次元計測処理の項目と対にすることが可能な第１画像上位置特定処理の項目が複数ある場合には、項目の組み合わせにより項目自体の選択肢の数よりも多くの種類の３次元計測のシーケンスを、作成することが可能になる。
【００１７】
この画像処理装置は、少なくとも１つの第１画像上位置特定処理の項目と少なくとも１つの３次元計測処理の項目とを含む、３次元計測の基本シーケンスを、ユーザの選択により利用可能に提供するものとしてもよい。この構成によれば、３次元計測のシーケンスに不慣れなユーザであっても、装置の３次元計測機能をよりいっそう容易に利用することができる。
【００１８】
第２画像上位置特定処理は、第１のカメラと第２のカメラとの位置関係および第１画像上位置特定処理において特定された代表位置に基づいて第２の画像上にサーチ領域を設定し、サーチ領域内においてモデル画像と一致の程度が高い領域の代表位置を特定するものとしてもよい。このようにすれば、第２の画像において計測対象の領域が存在する可能性のある範囲にサーチ領域を限定することができるので、第２画像上位置特定処理の演算量を少なくできるとともに、第２の画像上の計測対象ではない領域がモデル画像と一致してしまうことによる誤動作を少なくすることができる。
【００１９】
上記のサーチ領域は、さらに、３次元計測の対象範囲としてユーザに指定された第１のカメラの光軸に沿う範囲に基づいて設定されるようにしてもよい。このようにすれば、計測対象の領域が存在するとユーザが想定する範囲に対応する限定された範囲にサーチ領域を設定できるため、第２画像上位置特定処理の演算量をより少なくできるとともに、第２の画像上の計測対象ではない領域がモデル画像と一致してしまうことによる誤動作をより少なくすることができる。
【発明の効果】
【００２０】
上記によれば、従来の２次元画像処理との統一性が高い装置または方法により３次元計測を行うことができるので、ユーザが３次元計測機能を使いこなすことが容易である。
【図面の簡単な説明】
【００２１】
【図１】この発明が適用された検査装置の撮像部の構成を設置例とともに示す斜視図である。
【図２】各カメラで生成された画像の例を示す説明図である。
【図３】検査装置のブロック図である。
【図４】シーケンス設定のためのシステム構成を示す機能ブロック図である。
【図５】処理項目テーブルのデータ構成例を示す説明図である。
【図６】シーケンスのメニュー表示例を示す説明図である。
【図７】『エッジ位置』のシーケンスとその流れを示すフローチャートとを対応づけて示す説明図である。
【図８】『パターン』のシーケンスとその流れを示すフローチャートとを対応づけて示す説明図である。
【図９】基本シーケンスに他の処理項目を追加する場合の操作手順を示す説明図である。
【図１０】基本シーケンスに２次元計測に関する処理項目を加えた例を示す説明図である。
【図１１】検査装置のブロック図である。
【図１２】ＩＣの検査にかかる手順を示すフローチャートである。
【図１３】検出領域の設定例を示す説明図である。
【図１４】ティーチング処理の手順を示すフローチャートである。
【図１５】位置決め領域の設定例を示す説明図である。
【図１６】リード検査の詳細な手順を示すフローチャートである。
【図１７】検査時の正面視画像中のワークに対する位置決め領域および検出領域の関係を示す説明図である。
【図１８】各画像間の対応点の関係を示す説明図である。
【図１９】検出領域の設定方法を示す説明図である。
【図２０】高さの範囲と検出領域との関係を示す説明図である。
【図２１】良品であるワーク上の検査対象部位をモデル登録する例を示す説明図である。
【図２２】文字キーの検査にかかる手順を示すフローチャートである、
【図２３】検査対象の画像に対し、計測対象領域およびサーチ領域を設定した例を示す説明図である。
【図２４】円形の表示領域を有するワークにかかる正面視画像および斜視画像を示す説明図である。
【図２５】ワークに対する計測対象領域の指定結果を示す説明図である。
【図２６】図１６のワークの高さ検査を行う場合の手順を示すフローチャートである。
【図２７】計測対象領域およびサーチ領域がワークの位置変化に追随する例を示す説明図である。
【発明を実施するための形態】
【００２２】
図１は、この発明が適用された検査装置（画像処理装置）の撮像部の構成を、その設置例とともに示す。
この実施例の検査装置は、３次元および２次元の双方の計測処理機能を有するもので、工場の検査ラインＬを搬送される検査対象物Ｗ（以下、「ワークＷ」という。）を、撮像部１により順に撮像して、種々の検査目的に応じた計測処理や判別処理を実行する。
撮像部１は、筐体１５内に２台のカメラＣ０，Ｃ１を組み込んだ構成のもので、検査ラインＬの上方に設置される。一方のカメラＣ０は、その光軸を鉛直方向に向けた状態（ワークＷに対して正面視の状態）で設置される。他方のカメラＣ１は、カメラＣ０と視野が重なるようにして、光軸を傾斜させた状態で設置される。カメラＣ０およびカメラＣ１の視野の範囲を規定する撮像面は矩形であり、カメラＣ１はカメラＣ０に対して、カメラＣ０の視野の範囲の横方向（図２の画像Ａ０のｘ軸方向に対応する。）に沿って並ぶように配置されている。
【００２３】
図２は、各カメラＣ０，Ｃ１により生成されたワークＷの画像の例を示す。図中のＡ０（第１の画像に相当）がカメラＣ０からの画像であり、Ａ１（第２の画像に相当）がカメラＣ１からの画像である。
この図２および後記する図１３等のワークＷの画像を例示する図では、各画像Ａ０，Ａ１中のワークについても、図１と同様にＷを用いて示す。また、画像Ａ０の横方向（水平方向）をｘ軸方向、縦方向（垂直方向）をｙ軸方向とする。
【００２４】
カメラＣ０は光軸を鉛直方向に向けて設置されているので、画像Ａ０は、ワークＷの上面を正面から見た状態を示すものとなる。これに対し、カメラＣ１は光軸を斜めに向けて設置されているので、画像Ａ１には、斜めから見た状態のワークＷが現れる。このような画像の特徴に着目して、この検査装置では、まず画像の歪みが小さい（ワークＷの平面図に近い）カメラＣ０側の画像Ａ０を用いて計測対象位置を特定し、つぎにカメラＣ１側の画像Ａ１上で、画像Ａ０上の計測対象位置に対応する位置を特定するようにしている。
【００２５】
図３は、検査装置の全体構成を示すブロック図である。この検査装置は、撮像部１のほか、本体部２、モニタ３、コンソール４などにより構成される。本体部２には、各カメラＣ０，Ｃ１に対する画像入力部２０，２１、カメラ駆動部２２、画像メモリ２３、処理部２４、メモリ２５、表示制御部２６、出力部２７などが設けられる。
【００２６】
カメラ駆動部２２は、図示しないワーク検出用のセンサからの検知信号を受けて各カメラＣ０，Ｃ１を同時に駆動する。画像入力部２０，２１は、Ａ／Ｄ変換回路や画像バッファなどを含むもので、各カメラＣ０，Ｃ１により生成された画像信号は、それぞれの画像入力部２０，２１でディジタル変換され、カメラ毎に計測処理用のディジタル画像（画像Ａ０，Ａ１）が生成される。これらの画像Ａ０，Ａ１は、画像入力部２０，２１の画像バッファに保存された後、処理部２４からの指令に応じて読み出され、画像メモリ２３に格納される。
【００２７】
処理部２４は、ＣＰＵやその周辺回路を含むものである。メモリ２５は、ＥＥＰＲＯＭなどの不揮発性メモリであって、プログラム（装置の動作を統括するプログラム、各画像処理項目を実行するプログラム、画像処理のシーケンスなど）、３次元計測のためのパラメータ（３次元座標算出の演算式の係数にあたるもの）、その他、計測に必要な種々のデータファイルが保存される。処理部２４は、画像メモリ２３に格納された画像Ａ０，Ａ１に対し、後記するシーケンスに従った処理を実行して、ワークＷの計測や判別処理を実行する。
【００２８】
表示制御部２６は、画像入力部２０，２１から画像Ａ０，Ａ１の供給を受けて、これらの画像を含む表示用画面を生成し、これをモニタ３に表示させる。処理部２４は、適宜、表示制御部２６を制御して、画像Ａ０，Ａ１とともに計測結果や検査結果を表示させ、また、後記する設定用の画面を表示させる。
【００２９】
出力部２７は、計測処理や判定処理の結果を、ＰＬＣなどの外部機器に出力するための出力用インターフェースである。
【００３０】
この実施例の検査装置では、計測や検査のために実行される各種の処理について、複数種の処理項目を用意し、これらの処理項目およびその実行順序をユーザーに選択させることによって、画像入力から処理結果を出力する処理までの一連のシーケンスを組み立てられるようにしている。
【００３１】
図４は、シーケンスの設定に関するシステム構成を示す。
このシステムは、処理項目テーブル２０１、シーケンス保存部２０２、プログラム記憶部２０３、指定操作受付部２０４、シーケンス組立部２０５、シーケンス実行部２０６、処理結果出力部２０７などにより構成される。ここで、処理項目テーブル２０１、シーケンス保存部２０２、プログラム記憶部２０３は、メモリ２５にファイルとして保存されるものであり、その他の構成は、メモリ２５に記憶されている装置の動作を統括するプログラムにより処理部２４に設定される機能である。
【００３２】
処理項目テーブル２０１には、処理の目的毎に複数の処理項目が登録される。図５は、この処理項目テーブルの一例を示すもので、『画像入力関連』、『位置修正関連』、『一般計測関連』などの処理の種類毎に、それぞれ具体的な処理項目が設定されている。
【００３３】
このテーブルにおいて、『画像入力関連』に属する各処理項目は、処理対象の画像を取得するという目的に対応する。『位置修正関連』に属する各処理項目は、画像中のワーク上の計測対象部位の位置ずれを修正することにより、計測対象部位が画像中の一定の位置にあるようにするという目的に対応する。
【００３４】
また『一般計測関連』に属する各処理項目は、計測対象部位について計測を行うという目的に対応するもので、さらに『位置決め』と『計測』という２種類の処理に区別される。このうち、『位置決め』は、画像Ａ０上で計測対象位置を特定することを目的にした処理である。
『位置決め』に属する処理項目を実行することにより特定される位置は、３次元計測のために用いることができるが、画像Ａ０上での２次元的な位置計測自体を目的として、『位置決め』に属する処理項目が実行される場合もある。計測された２次元的な位置は、画像Ａ０上の２点間の寸法の算出などに用いることもできる。
【００３５】
『計測』は、３次元計測を行う場合には、画像Ａ１上で、画像Ａ０側で特定された計測対象位置に対応する位置を見つけ、その計測対象位置の３次元座標を算出することを目的とする処理である。また、画像Ａ０を対象として、計測対象部位の面積を求める処理や平均濃度を求める処理のような２次元計測を目的とする処理も、『計測』に属する処理項目に設定される。
【００３６】
図４に戻って、プログラム記憶部２０３には、処理項目テーブル２０１に登録された処理項目毎に、それぞれその項目の処理を実行するためのプログラムが格納される。
指定操作受付部２０４は、処理項目テーブル２０１から各種処理項目を読み出してモニタ３に表示し、コンソール４による指定操作を受け付ける。この指定操作は、使用する処理項目を選択するとともに、その実行順序を指定するものである。
【００３７】
シーケンス組立部２０５は、指定操作受付部２０４から受け付けた指定内容を渡されて、その指定に応じたシーケンスを組み立てる。組み立てられたシーケンスは、シーケンス保存部２０２に登録される。シーケンスは、具体的には、指定された処理項目に対応するコード情報を指定された順番に配列したデータ構成となる。
処理項目テーブル２０１、シーケンス保存部２０２、指定操作受付部２０４、シーケンス組立部２０５は、シーケンス設定手段に相当し、シーケンス実行部２０６は、シーケンス実行手段に相当する。
【００３８】
シーケンス実行部２０６は、シーケンス組立部２０５に保存されたシーケンスを読み出した後、プログラム記憶部２０３からそのシーケンスを構成する処理項目に対応するプログラムを順次読み出して実行する。処理結果出力部２０７は、このシーケンスの実行により最終的に得られた処理結果を出力する。
【００３９】
また、シーケンス保存部２０２には、よく利用される複数の計測目的について、それぞれ画像入力から２次元計測や３次元計測までの流れを示す処理項目のシーケンスがあらかじめ登録されている。以下では、これらを「基本シーケンス」という。
【００４０】
指定操作受付部２０４は、シーケンス保存部２０２に登録されている各種のシーケンス（基本シーケンスを含む。）を呼び出して表示し、選択操作を受け付けることもできる。ここでひとつのシーケンスが選択され、これを実行するように指定された場合には、指定操作受付部２０４からシーケンス実行部２０６に処理が移り、選択されたシーケンスが実行される。
【００４１】
指定操作受付部２０４では、シーケンスの選択後に、処理項目を追加する操作や、一部の処理項目を差し替える操作などを受け付けることもできる。この場合には、シーケンスの選択結果やその後の操作内容はシーケンス組立部２０５に渡され、選択されたシーケンスの編集処理が行われる。基本シーケンスについても、処理項目の追加、変更、削除などを自由に行うことができる。
編集されたシーケンスは、前のシーケンスに置き換えて登録されるが、新たなシーケンスとして登録することもできる。
【００４２】
図６は、シーケンス保存部２０２に登録されたシーケンスのメニュー表示例を示す。ここでは、メニュー中の各シーケンスはシーンと呼ばれ、それぞれ個別の「シーン名」（『エッジ位置』など）が付与されている。図６の表示例では、０〜３の各欄に３次元計測の基本シーケンスが登録されているが、４〜７の欄は未登録であり、「シーン４」等の初期名称が表示されている。基本シーケンス以外のシーケンスが登録されると、この画面の４欄以降に、新たなシーン名が表示される。
【００４３】
ここで図６に示されている３次元計測の基本シーケンスについて、簡単に説明する。
『エッジ位置』は、計測対象部位のエッジ点の３次元座標を計測する場合に適用されるもので、各画像Ａ０，Ａ１上で計測対象とするエッジ点の位置を特定し、このエッジ点の３次元座標を算出する。
『パターン』は、文字、図柄など一定のパターンが含まれる部位を計測する場合に適用されるもので、画像Ａ０，Ａ１からあらかじめ登録されたモデルのパターン（以下、単に「モデル」という。）に対応する領域の代表位置を特定し、この代表位置の３次元座標を算出する。
【００４４】
『高さ計測』は、計測対象部位のパターンが一定でない（ワークごとに異なる）ような場合に適用されるもので、あらかじめ指定された位置情報に基づき画像Ａ０中の計測対象領域とその代表位置を特定し、その領域内のパターンを取得した後、画像Ａ１上で、画像Ａ０から取得したパターンに対応する領域を探索してその代表位置を特定し、両画像における代表位置からその代表位置の３次元座標を算出する。この処理項目は、カメラＣ０を正面視（垂直視）の配置にして高さ情報（Ｚ座標）を取得することを目的にすることが多いことから、高さ計測とよばれている。
『多点高さ計測』は、基本的には『高さ計測』と同様のものであるが、指定された領域内の複数点の高さを計測する目的で使用される。
【００４５】
上記の表示メニューからいずれかのシーケンスが選択されると、モニタの画面は、その選択されたシーケンスの内容を示す表示に切り替えられる。
【００４６】
図７（１）は、図６の『エッジ位置』が選択された場合の表示画面を示すもので、実行すべき処理項目が実行順序を示す数字（０，１，２，３）とともに表示されている。図７（２）は、この表示されているシーケンスをフローチャートに置き換えて表したもので、ステップ０〜３は、それぞれ実行順序を表す数字に対応する。以下、このフローチャートを用いて、『エッジ位置』の処理の流れを説明する。
【００４７】
まず、最初のステップ０（ステレオカメラ画像入力）では、各カメラＣ０，Ｃ１を駆動して画像Ａ０，Ａ１を生成し、そのうちの画像Ａ０を画像メモリ２３に格納する。画像Ａ１も画像入力部１１の画像バッファ内に保持される。
【００４８】
つぎのステップ１（濃淡エッジ位置）では、画像Ａ０における計測対象領域内について２値化および投影処理を実行することにより、エッジの位置のｘ，ｙ座標を特定する。
つぎのステップ２（カメラ切替）では、カメラＣ１に対応する画像入力部１１の画像バッファから画像Ａ１を読み出して、この画像により画像メモリ２３を書き替える。
【００４９】
つぎのステップ３（ステレオエッジ位置）では、画像Ａ１を処理対象として、カメラＣ０，Ｃ１間のカメラ座標系の関係に基づき、ステップ１で特定したエッジ位置に対応する位置を特定する。そして、画像Ａ０上で特定した位置と画像Ａ１上で特定した位置とを用いて３次元座標を算出する。
【００５０】
図８（１）は、図６のメニュー表示中の『パターン』が選択された場合のモニタ３の表示例を示し、図８（２）は、この表示画面に表される処理内容をフローチャートに置き換えて示す。以下、このフローチャートに沿って、『パターン』の処理の流れを説明する。
【００５１】
最初のステップ０（ステレオカメラ画像入力）では、『エッジ位置』のステップ０と同様に、各カメラＣ０，Ｃ１を駆動して画像Ａ０，Ａ１を生成し、そのうちの画像Ａ０を画像メモリ２３に格納する。
【００５２】
つぎのステップ１（高精度ＥＣＭ（Edge Code Model ）サーチ）では、画像Ａ０を対象として、あらかじめ登録したモデル画像との一致の程度が高い（モデル画像とマッチングする）領域の代表位置（例えば領域の中心位置）を特定する。この処理は、画像Ａ０を微分処理して濃度の微分値が一定値以上の点を抽出し、さらにそれらの点における濃度勾配の方向（角度データＥＣ（Edge Code ）として表される。）を算出した後、角度データＥＣの分布パターンをモデル画像における角度データＥＣの分布パターンと照合する方法により行われる。詳しい処理方法については、特開２００２−２３０５４９号公報を参照されたい。
【００５３】
つぎのステップ２（カメラ切替）では、『エッジ位置』のステップ２と同様に、カメラＣ１側の画像Ａ１により画像メモリ２３を書き替える。
つぎのステップ３（ステレオ高精度ＥＣＭサーチ）では、画像Ａ１を処理対象として、画像Ａ０に対して実行したのと同様の方法でモデル画像との一致の程度が高い領域の代表位置（例えば領域の中心位置）を特定する。そして、画像Ａ０上で特定した位置と画像Ａ１上で特定した位置とを用いて３次元座標を算出する。
【００５４】
その他の３次元計測の基本シーケンスも同様に、まずカメラＣ０側の画像Ａ０を処理対象として、３次元計測の対象となる点の位置または領域の代表位置を特定する処理を実行した後、画像Ａ１に処理対象を切り替えて、画像Ａ０側で特定した位置に対応する点の位置または領域の代表位置を求め、３次元座標またはＺ座標の算出処理を実行するように設定されている。
【００５５】
図５に示した処理項目テーブル２０１によれば、図７，８のステップ０およびステップ２は、画像入力関連の処理項目に相当する。また、ステップ１は、位置決め関連の処理項目に相当し、ステップ３は計測関連の処理項目に相当する。この実施例の検査装置の構成で３次元計測を実施するには、このステップ０〜３に対応する処理項目を選択することを要する（ただし、画像メモリに双方の画像Ａ０，Ａ１を格納できるならば、ステップ２は不要となる。）。
【００５６】
３次元計測の基本シーケンスでは、上記ステップ０〜３の各処理に対応する処理項目が既に選択されているので、ユーザーは、ワークＷの被検査部位の位置を特定するための条件や計測目的に適した基本シーケンスを選択することにより、その目的に応じた計測処理を行うことができる。
【００５７】
１つのシーケンスの中で、位置決め関連の処理項目および計測関連の処理項目をそれぞれ複数選択することも可能である。たとえば、位置決め関連として、『エッジ位置』と『高精度ＥＣＭサーチ』とを選択し、計測関連として『ステレオエッジ位置』と『ステレオ高精度ＥＣＭサーチ』とを選択することができる。この場合には、『エッジ位置』の処理で特定された位置が『ステレオエッジ位置』の処理に与えられて『ステレオエッジ位置』の処理で対応位置の特定と３次元座標算出が行われ、また、『高精度ＥＣＭサーチ』の処理で特定された位置が『ステレオ高精度ＥＣＭサーチ』の処理に与えられて『ステレオ高精度ＥＣＭサーチ』の処理で対応位置の特定と３次元座標算出が行われる。
【００５８】
さらに、１つのシーケンスの中で、同種の処理を複数設定することも可能である。たとえば、同じ『高精度ＥＣＭサーチ』の処理を複数設定し、それと同数の『ステレオ高精度ＥＣＭサーチ』の処理を設定することもできる。この場合、対となる『高精度ＥＣＭサーチ』（位置決め）の処理と『ステレオ高精度ＥＣＭサーチ』（計測）の処理ごとに、３次元座標が算出される。
【００５９】
どの位置決め処理（第１画像上位置特定処理）とどの計測処理（第２画像上位置特定処理）とを対にして３次元計測を行うのかは、特定される必要がある。具体的には、各計測処理についての設定事項の中に、それぞれその処理に対応する位置決め処理がシーケンス中の何番目の処理であるかを示す数値が含められる。
【００６０】
また、他の実施形態として、画像メモリ２３に画像Ａ０と画像Ａ１とを同時に格納できるようにした場合には、「カメラ切替」のステップを設ける必要がないので、シーケンスの中で位置決め処理と３次元計測処理とがこの順序で連続して設定されたときに、これらの処理を対として扱うようにしてもよい。
【００６１】
図７、図８の基本シーケンスには、３次元計測に必須の処理項目しか設定されていないが、必要に応じてその他の処理項目を追加することもできる。
図９は、図７の『エッジ位置』の基本シーケンスに位置修正関連の処理項目を追加する例を示す。以下、この図９の流れに沿って、処理項目を追加する場合のユーザーの操作の手順を説明する。
【００６２】
まず、ユーザーは、新たに加える処理の直後に実行される処理項目にカーソル３１を合わせ（図９の（Ａ））、編集操作を行う（この例では、シフトキーとエンターキーとを同時に操作する）。この編集操作が行われると、表示画面には、図９（Ｂ）に示すように、選択ボックス３２が設定され、その内部に編集方法を示すワード（変更、挿入など）が表示される。
【００６３】
ここでユーザーが選択ボックス３２中の『挿入』を選択すると、図９（Ｃ）に示すように、選択ボックス３２の表示が切り替えられ、処理項目テーブル２０１の種別欄に設定された項目が表示される。この表示に対し、ユーザーが所定の項目（図示例では『位置修正関連』）を選択すると、図９（Ｄ）に示すように、新たな選択ボックス３３が設定されて、その内部に選択された種別に含まれる処理項目が表示される。この中からユーザーが所望の項目（図示例では『モデル位置修正』）を選択すると、図９（Ｅ）に示すように、基本シーケンス中のカーソル３１で指定された位置に、選択された処理項目が挿入される。
【００６４】
図９（Ｂ）の選択ボックス３２において、『変更』を選択すると、現在選択中の処理項目（濃淡エッジ位置）を他の処理項目に置き換えることができる。また『削除』を選択することにより、選択中の処理項目を削除することができる。また『コピー』を選択することにより、選択中の処理項目を記憶して、他のステップに同じ項目を設定することが可能になる。このコピー機能は、図１，２に示したワークＷのように、複数の計測対象部位（ＩＣのリード）が存在し、これらの計測対象部位毎に計測位置を特定しなければならないような場合に利用することができる。
【００６５】
さらに、上記では、基本シーケンスを編集する例について説明したが、基本シーケンスに頼らずに、処理項目テーブル２０１から直接必要な処理項目を読み出してシーケンスの完全マニュアル設定を行う場合にも、図９と同様の選択ボックス３２，３３が表示されるので、ユーザーは、必要な処理項目を迷わずに選択することができる。
【００６６】
さらに、処理項目テーブル２０１には、３次元計測のための処理に限らず、２次元計測用の処理項目も登録されている。たとえば、ワークＷに記された文字の印字状態を検査するための処理項目として、パターンマッチング処理が登録されていたり、キズや欠けなどの不良を検出するための処理項目として、濃度平均値や濃度偏差の算出処理が登録されていたりする。これらの処理項目についても、３次元計測の処理項目とともにシーケンス内に組み込むことにより、２次元および３次元の計測処理を効率良く実行することができる。
【００６７】
図１０は、図７の『エッジ位置』の基本シーケンスに２次元計測のための処理を加えた例を示す。この例では、ステップ０の『ステレオカメラ画像入力』の後に２次元計測に関する処理項目として『濃度平均／偏差』が設定され、以下、基本シーケンスと同様の処理項目が設定されている。
【００６８】
編集されたこのシーケンスによれば、先に画像メモリ２３に格納された画像Ａ０を処理対象として、濃度平均および偏差を算出する処理が実行された後、同じ画像Ａ０を用いて３次元計測の対象位置が特定され、その後に画像Ａ１に対する処理に移行するから、２次元計測にも３次元計測と同じ画像を使用することができる。また、画像メモリ２３に対する書き替え回数を、基本シーケンスと同様に１回にできるから、処理の遅延を防止することができる。
【００６９】
ここからは、今まで述べてきた実施例についてさらに詳細に説明する。以下では、カメラＣ０からの画像Ａ０を「正面視画像Ａ０」といい、カメラＣ１からの画像Ａ１を「斜視画像Ａ１」という。
【００７０】
図１１は、検査装置の全体構成を示すブロック図であり、図３の内容をさらに詳細に示すものである。図３と重複する部分については説明を省略する。この検査装置には、装置内コンピュータ２００が設けられている。
【００７１】
装置内コンピュータ２００は、カメラＣ０，Ｃ１毎の画像を用いた計測処理を実行した後、その処理結果からワークＷの適否を判定する。装置内コンピュータ２００には、画像Ａ０，Ａ１を格納するための画像メモリ２３のほか、画像処理部４１、計測処理部４２、判定部４３、表示制御部２６、パラメータ算出部４４、パラメータ記憶部４５などが設けられる。画像メモリ２３およびパラメータ記憶部４５以外の各部は、専用のプログラムにより装置内コンピュータ２００に設定された機能である。画像メモリ２３やパラメータ記憶部４５は、装置内コンピュータ２００のメモリ（ＲＡＭ、ＥＥＰＲＯＭなど）に設定される。
【００７２】
上記構成のうち、画像処理部４１，計測処理部４２，判定部４３，パラメータ算出部４４，パラメータ記憶部４５は、図３の処理部２４に対応する。また図１１には示していないが、装置内コンピュータ２００には、検査に必要な情報（検査領域の設定条件やモデルの画像など）を登録するためのメモリ（図３のメモリ２５に対応する。）も設けられる。この登録用メモリへの登録処理や、装置内コンピュータ２００の各部が実行する処理の設定または変更は、適宜、コンソール４の操作に応じて行うことができる。
【００７３】
画像処理部４１は、２値化、エッジ抽出、パターンマッチングなどにより、ワークＷの検査対象部位の構成点を抽出する。計測処理部４２は、画像処理部４１により抽出された検査対象部位につき、位置や大きさなどを計測する処理を実行する。画像処理部４１および計測処理部４２は、２次元および３次元の処理を選択して実行できるように設定されている。
【００７４】
判定部４３は、計測処理部４２の計測結果を所定のしきい値と比較するなどして、ワークＷの良否を判定する。この計測結果や判定結果は出力部２７および表示制御部２６に出力される。
表示制御部２６は、モニタ３の表示動作を制御するためのもので、画像入力部２０，２１で生成された正面視画像Ａ０，斜視画像Ａ１を一画面内に並列表示させることができる。さらに、適宜、画像処理部４１、計測処理部４２、判定部４３の処理結果を受け取って、画像とともに表示させることができる。
【００７５】
パラメータ記憶部４５には、３次元計測のための演算式に含まれる各種係数が保存される。これらの係数の値は、各カメラＣ０，Ｃ１により構成されるステレオ座標系と実際の空間における位置を表す空間座標系との関係（各座標間の原点間の距離、空間座標系に対するステレオ座標系の回転ずれ量など）に応じて変動する（以下、これらの係数を「パラメータ」という。）。これらのパラメータは、検査に先立ち、画像処理部４１およびパラメータ算出部４４により算出され、パラメータ記憶部４５に格納される。このパラメータを算出する処理では、複数の特徴点を有するキャリブレーション用ワークが使用される。
さらに、パラメータ記憶部４５には、後記する演算式（１）のホモグラフィ行列を構成するパラメータも登録される。
【００７６】
この実施例の検査装置は、ユーザーに複数種の検査メニュー（処理項目や登録済みの処理項目のシーケンス）を提示して選択操作を受け付けることにより、検査のアルゴリズム（シーケンス）を組み立てることが可能である。また、検査対象の部位に応じて、２次元の計測処理による検査と３次元の計測処理による検査とを、選択して実行することができる。２次元の計測処理による検査では、カメラＣ０からの正面視画像Ａ０を対象として、パターンマッチング処理、２値化処理、エッジ抽出処理などを実行し、ワーク全体またはワーク中の検査対象部位を抽出する。
【００７７】
さらに、この実施例では、３次元の計測処理による検査にも、カメラＣ０からの正面視画像Ａ０を有効活用することにより、３次元計測処理を高速化できるようにしている。この点については、後で詳細に説明する。
【００７８】
以下、上記の検査装置によりＩＣの検査を行う場合を例にして、検査にかかる処理を詳細に説明する。
図１２は、ワークＷがＩＣである場合に実施される検査の手順を示すものである。この手順は、ワーク検出用のセンサからの検知信号を受けて開始される。最初のＳＴ１（ＳＴは「ステップ」の略である。以下も同じ。）では、カメラ駆動部１２により、カメラＣ０，Ｃ１を同時に駆動して、正面視画像Ａ０，斜視画像Ａ１を生成する。
【００７９】
つぎのＳＴ２では、ＩＣのパッケージ部分に印刷された文字を対象とした検査を実行する。この検査では、正面視画像Ａ０のみを用いた２次元の画像処理を実行する。たとえば、パターンマッチング処理により文字の印刷領域を抽出し、そのマッチング時の相関度やマッチング位置から文字の印刷状態の適否を判別する。
【００８０】
つぎのＳＴ３では、ＩＣの両側のリードを検査対象とする。この検査では、正面視画像Ａ０および斜視画像Ａ１の双方を用いた３次元計測処理により各リードの先端部の３次元座標を求め、その算出値から各リードの先端部に浮きや曲がりなどの異常がないかどうかを判別する。
【００８１】
ＳＴ２，３の検査が終了すると、ＳＴ４では、各検査の結果を外部機器やモニタ３に出力する。さらに、ワーク検出用のセンサによりつぎのＩＣが検出されると、ＳＴ１に戻り、上記と同様の手順を実行する。
【００８２】
このように、２台のカメラＣ０，Ｃ１によりそれぞれワークＷを１回撮像することにより、２次元計測による検査と３次元計測による検査とを連続で実行することができる。２次元の計測処理では正面視画像Ａ０を使用するから、文字の歪みのない画像を用いて精度の良い計測処理を行うことが可能になる。
【００８３】
３次元計測処理を行う際には、正面視画像Ａ０と斜視画像Ａ１との間で対応する計測対象の点を特定し、その３次元座標を三角測量の原理に基づく演算式にあてはめることにより算出する。
【００８４】
図１３は、正面視画像Ａ０における検出領域および斜視画像Ａ１における検出領域の設定例を示す。この例でも、図２と同様に、画像の縦方向（正面視画像Ａ０ではリードの配列に沿う方向となる。）をｙ方向とし、横方向（正面視画像Ａ０ではリードの長さに沿う方向となる。）をｘ方向とする。正面視画像Ａ０には、リード６毎に個別の検出領域７が設定され、検出領域７毎に、リードの先端に該当するエッジ点が１点特定される。
【００８５】
すなわち、ここではカメラＣ０、Ｃ１がｘ方向に並んでいるので、視差は主にｘ方向に発生する。そこで、検出領域７内の画像を２値化し、得られた２値画像をｙ方向に沿って投影することによって、ｘ方向を横軸、投影された「明」画素数または「暗」画素数を縦軸とするヒストグラムを作る。そして、ヒストグラムの値が急変する箇所のｘ座標をリード６の先端のｘ座標とする。一方、リード６の先端のｙ座標については、検出領域７のｙ方向の中点のｙ座標をあてる。ここでは検出領域７内の画像を２値化したが、これに限らず、検出領域７内の画像を濃淡画像のまま各画素の濃度をｙ方向に積分し、そのようにして得られた積分濃度分布の値がｘ方向に沿って急変する箇所（たとえばしきい値を横切る箇所）のｘ座標を求めるようにしてもよい。
このように、検出領域７においては、特定の一方向がエッジの検出対象となる。図１３の例では、ｘ方向がエッジの検出方向である。ここでは、正面視画像Ａ０に検出領域７を設定した後に、その検出領域７に対してエッジの検出方向を指定するようにしている。しかし、これに限らず、もともと固有のエッジの検出方向を備える検出領域７を設定するようにしてもよいし、先に検出領域７のエッジ検出方向を指定し、その後、正面視画像Ａ０に検出領域７を設定するようにしてもよい。
【００８６】
斜視画像Ａ１でも、リード６毎に検出領域８が設定される。これらの検出領域８は一方の画像上の一点を他方の画像上の一点に変換するための演算式（後記する（１）式）に基づき、正面視画像Ａ０の各検出領域７で特定されたエッジ点の座標やユーザーにより指定された高さ範囲（検査対象部位の高さの取り得る範囲）などを用いて設定される。高さ範囲は、カメラＣ０の光軸に沿った３次元計測の対象範囲である。
【００８７】
図１３では、ワークＷの右側のリードに対する領域設定のみを示しているが、左側のリードに対しても同様の設定が行われる（以下の図でも同様である。）。
【００８８】
図１４は、ＩＣのリード検査のためのティーチング処理の手順を示す。この手順は、図４のＩＣ検査を始める前に実行される。
この手順の最初のステップであるＳＴ１１では、検査対象のワークＷ（この例ではＩＣ）について、リード６の長さやリード６間のピッチなどを入力する。ここで入力されたデータは、作業用のメモリに登録され、後記するＳＴ１５で使用される。
【００８９】
つぎのＳＴ１２では、撮像対象位置に良品のワークを設置して、これをカメラＣ０，Ｃ１により撮像する。ティーチング処理では、カメラＣ０からの正面視画像Ａ０が生成されれば足りるが、この実施例では、ティーチング処理時にも各カメラＣ０，Ｃ１を同時駆動し、生成された２枚の画像をモニタ３に並べて表示するようにしている。
【００９０】
つぎのＳＴ１３では、正面視画像Ａ１で位置決め領域の指定操作を受け付ける。図１５はこの指定操作時の正面視画像Ａ１の表示例を示すもので、図中の９が位置決め領域である。
この位置決め領域９は、一列に並んだリード６のうちの一番端のリード（図示例では最上端のリード６ａである。以下、これを「先頭リード６ａ」という。）を抽出するのに用いられる。図７の例では、先頭リード６ａのみが含まれるような正方形状の領域９を設定している。位置決め領域９は、ワークＷが想定される程度に位置ずれしても、位置決め領域９の中に先頭リード６ａを撮像することができるように、その大きさが調整される。また、位置決め領域９は、その下半分の範囲に先頭リード６ａが撮像されるように設定される。これにより、位置決め領域９の上半分の範囲にはリードが撮像されていないことをもって、位置決め領域９の下半分の範囲に撮像されているのが先頭リード６ａであると確認できる。
【００９１】
図１４に戻って、位置決め領域９が指定されると、つぎのＳＴ１４では、この位置決め領域９から先頭リード６ａを抽出する。この抽出処理では、たとえば、位置決め領域９内の画像を２値化し、２値化後の画像をｘ軸方向に沿って投影する方法により、先頭リード６ａのｙ座標を求める。または、位置決め領域９内のエッジやその濃度勾配方向を抽出することにより、リードの輪郭線を抽出し、さらにリードの中心線のｙ座標を求めるようにしてもよい。
【００９２】
ＳＴ１５では、先頭リード６ａのｙ座標およびＳＴ１１で入力されたデータに基づき、各リード６に検出領域７を設定する。この実施例では、ＳＴ１１で入力されたデータ、カメラＣ０のピクセル数、倍率などを用いて、画像上におけるリード６の長さやリード６間のピッチを算出し、その算出値に基づき、各検出領域７の大きさや領域間の間隔を決定する。さらに、先頭リード６ａの位置を基準に、このリード６ａを含む各リード６に対し、決定した間隔毎に決定した大きさの検出領域７を設定する。
このような方法をとることができるのは、ワークＷの検査対象部位の特性（各リードの長さが等しい、リード間のピッチが等しいなど）がそのまま反映された正面視画像Ａ０を使用するからである。したがって、先端リード６ａが抽出できれば、他のリード６を抽出しなくとも、全てのリード６に検出領域を設定することが可能になり、処理効率を大幅に向上することができる。
【００９３】
ＳＴ１６では、ＳＴ１３で指定された位置決め領域９の設定条件（領域の位置および大きさ）と、ＳＴ１５で設定された検出領域７の設定条件を登録用メモリに登録する。さらに、ＳＴ１７では、位置決め領域９内の画像をモデルとして登録用メモリに登録する。これにより一連のティーチング処理は終了となる。
ＳＴ１６を実行する前には、検出領域７の設定結果を示す画像をモニタ３に表示し、ユーザーの確認操作に応じて登録を行うのが望ましい。また、この際に、検出領域７の位置や大きさを微調整できるようにしてもよい。
【００９４】
図１６は、ＩＣのリード検査（図１２のＳＴ３）にかかる詳細な手順を示す。
この手順のＳＴ２１からＳＴ２４までの処理は、正面視画像Ａ０に対して行われるものである。まず、ＳＴ２１では、ティーチングで登録された設定条件に基づき、正面視画像Ａ１に位置決め領域９を設定する。つぎのＳＴ２２では、この位置決め領域９内の画像とティーチング処理のＳＴ１７において登録したモデルとを照合して、モデルに対するずれ量を抽出する（この処理には、たとえばパターンマッチングの手法を応用することができる。）。
ＳＴ２１とＳＴ２２は、処理項目テーブル２０１中の『モデル位置修正』の処理項目に相当する。
【００９５】
ＳＴ２３では、ティーチング時に登録した検出領域の設定条件をＳＴ２２で抽出されたずれ量に基づき調整し、その調整後の設定条件により各リードの検出領域７を設定する。正面視画像Ａ０によれば、画像上のワークＷの歪みを考慮しなくてよいから、位置決め領域９のずれ量をそのまま各検出領域７に適用することができ、各リード６に対し、ティーチング処理時と同様の位置関係をもって検出領域７を設定することが可能になる。
【００９６】
図１７は、検査時の正面視画像Ａ０の一例を示す。この例でのワークＷは、図７に示したティーチング時の画像Ａ０より右側にずれているため、リード６の先端が位置決め領域９からはみ出した状態になっている。しかし、検出領域７については、上記した調整処理が行われるため、いずれのリード６にも図４に示したのと同様の条件で検出領域７が設定されている。
【００９７】
このようにしてリード毎に検出領域７が設定されると、つぎのＳＴ２４では、各検出領域７毎に、リードの先端のｘ，ｙ座標を算出する。ＳＴ２３とＳＴ２４は、処理項目テーブル２０１中の『濃淡エッジ位置』の処理項目に相当する。この処理項目はリードの数だけ繰り返し設定されている。また、図示を省略するが、この処理項目の後には、『カメラ切替』の処理項目が実行される。
【００９８】
つぎのＳＴ２５では、斜視画像Ａ１上に、各リードの先端部に対する検出領域８を設定する。さらにＳＴ２６では、設定された検出領域８においてＳＴ２４と同様の処理を実行し、リードの先端のｘ，ｙ座標を算出する。
【００９９】
この後、ＳＴ２７では、各先端につき、それぞれＳＴ２４，２６で算出された座標を用いて３次元座標を算出する。さらに、ＳＴ２８では、算出された３次元座標をあらかじめ登録された基準値と比較するなどして、各リード先端部の良否を判別する。たとえば、所定の先端部に浮きがあれば、高さを表すＺ座標が基準値を超える値となり、その先端部は不良であると判定されることになる。ＳＴ２５からＳＴ２７までは、『ステレオエッジ位置』の処理項目に相当する。この処理項目も、リードの数だけ繰り返し設定されている。
【０１００】
つぎに、ＳＴ２５での検出領域８の設定について、詳細に説明する。
図１８は、空間内の任意の高さ位置にある平面Ｄ上の一点ＰがカメラＣ０，Ｃ１の撮像面Ｆ０，Ｆ１上の点ｐ０，ｐ１にそれぞれ結像した状態を示している。図１８において、Ｘ，Ｙ，Ｚは３次元空間を表す座標軸であり、平面Ｄは、ＸＹ平面に平行である。また撮像面Ｆ０には、ｘ０，ｙ０の軸による２次元座標系が、撮像面Ｆ１には、ｘ１，ｙ１の軸による２次元座標系が、それぞれ設定されている。図１０では、たまたま、両撮像面の原点に結像される平面Ｄ上の点がＰとされているが、これに限らず、点Ｐの位置は平面Ｄ上で任意である。
【０１０１】
撮像面Ｆ０における点Ｐの結像位置（点ｐ０）の座標を（ｘｃａｍ０，ｙｃａｍ０）、撮像面Ｆ１における点Ｐの結像位置（点ｐ１）の座標を（ｘｃａｍ１，ｙｃａｍ１）とすると、点ｐ０，ｐ１間の関係は、つぎの（１）式のようになる。
【０１０２】
【数１】
2011191312.tif 000003
【０１０３】
（１）式において、ＨＺは、高さＺの平面Ｄ上の点について、撮像面Ｆ０上の結像位置と撮像面Ｆ１上の結像位置との関係を表す３×３のホモグラフィ行列であり、λは定数である。行列ＨＺは、あらかじめ平面Ｄ上の既知の座標を用いたキャリブレーションにより求めることができる（キャリブレーションの詳細については、下記の非特許文献１を参照されたい。）。
見市  伸裕，和田  俊和，松山  隆司  「プロジェクタ・カメラシステムのキャリブレーションに関する研究」、［平成１７年６月１日検索］、インターネット＜ＵＲＬ：http://vision.kuee.kyoto-u.ac.jp/Research/Thesis/Thesis_PDF/Miichi_2002_P_147.pdf＞
【０１０４】
よって、正面視画像Ａ０の各検出領域７で抽出されたリードの先端を点ｐ０と考えて、その座標を（１）式の（ｘｃａｍ０，ｙｃａｍ０）に代入した場合、算出された（ｘｃａｍ１，ｙｃａｍ１）は、斜視画像Ａ１におけるリード先端の位置に相当すると考えることができる。しかし、リード先端の高さが変動すると、平面Ｄの高さＺもそれに応じて変動し、それに応じてホモグラフィ行列ＨＺが変化し、（ｘｃａｍ１，ｙｃａｍ１）の値も変化することになる。
【０１０５】
ＳＴ２５では、この原理に基づき、想定される高さ範囲（カメラＣ０の光軸に沿った３次元計測の対象範囲）の上限値を平面Ｄの高さＺとしたときと、下限値を高さＺとしたときとについて、それぞれその高さＺに応じたホモグラフィ行列ＨＺを用いて（１）式を実行することにより、（ｘｃａｍ１，ｙｃａｍ１）として図１９に示す２点ｅ，ｆの座標を得る。そして、斜視画像Ａ１において、図１９に示すように、線分ｅｆを正面視画像Ａ０側の検出領域７の半値幅ｋだけ線分ｅｆと垂直方向の各側に平行移動させた線分ｇｈおよび線分ｇ’ｈ’を設定し、これら４点を結ぶ矩形領域ｇｈｈ’ｇ’を検出領域８とする。
【０１０６】
図２０は、図１３と同様の斜視画像Ａ１について、リード６の取り得る高さ範囲を０〜５mmとした場合と、高さ範囲を−１５〜１５mmとした場合とでの検出領域８の大きさを対比させて示したものである。この例から明らかなように、検出領域８は、高さ範囲の変動幅が小さいほど小さくなる。図２０では簡略化して各検出領域８を互いに平行に描いているが、実際には、斜視画像Ａ１には遠近法の効果によって矩形の対象物が台形に撮像されるような歪が生じるため、各検出領域８は、それらの中心線（線分ｅｆ）同士の間隔が図の右方ほど大きくなるような非平行の配置となる。各検出領域８において、エッジ先端位置を求めるための２値化画像の投影は、検出領域８の中心線と垂直な方向に行う。
【０１０７】
上記の実施例では、基準画像Ａ０において、リードの先端位置を特定するために各リード６に対応する検出領域７を設定したので、リードの数だけ処理項目の設定が必要であったが、これに代えて、各リードの先端を含むようにｙ軸方向に長い１つの検出領域を設定し、この領域内で各リードの先端位置を個別に求めることができるような処理項目を設けてもよい。
【０１０８】
つぎに、押釦式の文字キーが配設されたワーク（リモコン、電話機など）を検査対象として、各キーの高さを検査する場合について、説明する。この場合、検査に先立ち、図２１に示すように、良品のワークＷを撮像して得られた正面視画像Ａ０を用いて、各キー６０毎に、そのキー６０に描かれた文字を含む領域７０を指定し、その領域７０内の画像をモデルとして登録しておく。
【０１０９】
図２２は、検査の手順を示す。まずＳＴ３１において、各カメラＣ０，Ｃ１を同時駆動して画像を生成する。このＳＴ３１は、処理項目テーブル２０１中の『ステレオカメラ画像入力』の処理項目に相当する。つぎのＳＴ３２では、正面視画像Ａ０について、検査前に登録されたモデルを用いたパターンマッチング処理を実行し、モデルと最もよく一致する領域を特定して計測対象領域とする。この処理は各キー６０に対応するモデル毎に行われるが、ここでは説明を簡単にするため、一つのモデルに限定して説明する。
【０１１０】
計測対象領域が特定されると、つぎのＳＴ３３では、この領域の代表点（たとえば領域の中心点）の座標を特定する。代表点は複数特定することもできる（たとえば、あらかじめ定めたモデル上の複数の特徴点に対応する点）。
ＳＴ３２とＳＴ３３は、処理項目テーブル２０１中の『高精度ＥＣＭサーチ』の処理項目に相当する。この処理項目の実行後には、図示しない『カメラ切替』の処理項目が実行され、ＳＴ３４に進む。
【０１１１】
ＳＴ３４では、代表点の座標に基づき、斜視画像Ａ１上にサーチ領域を設定する。この場合にも、前述のリード検査で検出領域８を設定した場合と同様に、あらかじめ指定された高さ範囲の上限値および下限値を高さＺとしてホモグラフィ行列ＨＺを設定し、代表点の座標と高さ範囲の上限値および下限値を用いて２回の演算を実行することにより、画像Ａ１上で代表点の存在し得る範囲を求め、その範囲にモデルの大きさを加味した領域をサーチ領域としている。
【０１１２】
ＳＴ３５では、サーチ領域において、モデルとの間のパターンマッチング処理を実行して、計測対象領域とその領域内の代表点の位置とを特定する。さらにＳＴ３６では、正面視、斜視の各画像Ａ０，Ａ１における計測対象領域の代表点の座標を用いて、３次元座標を算出する。ついで、ＳＴ３７では、算出された３次元座標のうちのＺ座標を所定のしきい値と比較することにより、キーの高さの適否を判別する。そして、ＳＴ３８において、判別結果を出力し、処理を終了する。ＳＴ３５からＳＴ３８までは、『ステレオ高精度ＥＣＭサーチ』の処理項目に相当する。
【０１１３】
基準画像Ａ０上で、モデルに定めた特徴点に対応する点を代表点として特定した場合には、ＳＴ３６においても、同様に、モデル上の対応点を特定することができる。また、ＳＴ３５では、指定された高さ範囲内の所定高さ（たとえばワークが正常であるときの標準となる高さ）に対応するホモグラフィ行列を用いてモデルを斜視カメラＣ１に撮像されるはずの形状に変換し、その変換後のモデルを用いて計測対象領域を特定するようにしてもよい。
【０１１４】
図２３は、上記の検査において、正面視画像Ａ０上でキー６０に関して特定された計測対象領域７１、この領域７１の位置と大きさに基づいて設定された斜視画像Ａ１側のサーチ領域８０、およびサーチ領域８０において特定された計測対象領域８１を示す。
【０１１５】
図２２に示した手順では、３次元計測処理による検査のみを行っているが、この検査でも、正面視画像Ａ０を用いた２次元計測処理により、各キーの文字の印刷状態などの検査を行うことができる。
【０１１６】
つぎの実施例は、中央部に円形状の表示領域を有するワークについて、その表示領域内の高さの適否を検査するものである。
図２４は、各カメラＣ０，Ｃ１により生成されたワークＷの画像Ａ０，Ａ１を示す。図中、Ｓが検査対象の表示領域である。正面視画像Ａ０では、先の実施例と同様に、ワークＷの正面像が現れているため、表示領域Ｓの輪郭線７２も円形状になっている。これに対し、斜視画像Ａ１では、ワークＷに歪みが生じているため、表示領域Ｓの大きさや輪郭線７２の形状も正面視画像Ａ０とは異なるものになり、表示領域Ｓ内の文字の配置状態にも歪みが生じている。
【０１１７】
この実施例では、検査に先立ち、ワークＷの良品モデルを撮像し、得られた正面視画像Ａ０上で、ユーザーに表示領域Ｓの半径や計測対象領域を指定させる。このとき、画像処理部２２では、正面視画像Ａ０から表示領域Ｓの中心点の位置を求める処理を実行し、この中心点に対する計測対象領域の相対位置を登録用メモリに登録する。
【０１１８】
図２５は、正面視画像Ａ０中の表示領域Ｓを拡大して示す。図中、７３がユーザーにより指定された計測対象領域であり、７４が表示領域Ｓの中心点である。この中心点７４の位置は、正面視画像Ａ０から円形パターンを抽出する処理を実行し、その抽出結果の中からユーザーにより指定された大きさの円（位置修正用モデル）に最もよく合致する輪郭線７２を特定して、求めたものである。
【０１１９】
図２６は、図２４のワークＷに対する高さ検査の手順を示す。
ＳＴ４１では、先の実施例と同様に、各カメラＣ０，Ｃ１を同時駆動して、正面視画像Ａ０および斜視画像Ａ１を生成する。このＳＴ４１は、処理項目テーブル２０１中の『ステレオカメラ画像入力』の処理項目に相当する。ＳＴ４２では、正面視画像Ａ０から上記の処理により、表示領域Ｓの中心点７４の位置を求める。ＳＴ４２は、『モデル位置修正』の処理項目に相当する。
【０１２０】
つぎのＳＴ４３では、ＳＴ４２で求められた中心点７４の座標を基準に、あらかじめ登録された相対位置に基づき計測対象領域７３を設定する。そして、続くＳＴ４４において、計測対象領域７３の画像をサーチ用のモデル画像として登録し、さらに計測対象領域７３の代表点位置（たとえば、領域内の中心点位置）も登録する。
ＳＴ４４は、『ステレオ領域設定』の処理項目に相当する。図２６では図示を省略しているが、この処理項目の実行後には『カメラ切替』の処理項目が実行される。
【０１２１】
ＳＴ４５では、斜視画像Ａ１上にサーチ領域８２（図２７に示す。）を設定する。この実施例でも、ＳＴ４４で登録された代表点の座標を（１）式に代入し、あらかじめ指定された高さ範囲の上限値および下限値に応じたホモグラフィ行列ＨＺを用いて（１）式を実行することにより、サーチ領域８２の位置や大きさを決定している。
【０１２２】
ＳＴ４６では、正面視画像Ａ０の計測対象領域７３についてＳＴ４４で登録した画像を用いて、サーチ領域８２において相関マッチング処理を実行する。そして、登録した画像に最も類似する領域を特定し、これを斜視画像Ａ１側の計測対象領域とする。ＳＴ４７では、斜視画像Ａ１側の計測対象領域について、代表点の座標を求め、この座標と正面視画像Ａ０側の代表点の座標とを用いて３次元座標を算出する。続くＳＴ４８では、求められたＺ座標の適否を判定する。そして、ＳＴ４９において、判定結果を出力し、しかる後に処理を終了する。
ＳＴ４５からＳＴ４９までの処理は、処理項目テーブル２０１中の「ステレオ高さ計測」の処理項目に相当する。
【０１２３】
図２７（１）（２）は、それぞれ１組の正面視画像Ａ０と斜視画像Ａ１について、正面視画像Ａ０における計測対象領域７３、斜視画像Ａ１におけるサーチ領域８２および計測対象領域８３を示す。また、正面視画像Ａ０においては、表示領域Ｓの輪郭線７２を太線にして示すとともに、表示領域Ｓの中心点７４の求められた位置を示してある。図２７の（１）の画像と（２）の画像とでは、ワークＷの位置が異なるが、どちらの場合も計測対象領域７３は、その中に目標とする文字が収まるように正しく設定されている。
【０１２４】
図２６に示した検査の手順によれば、検査対象のワークＷごとにそのワークＷからサーチ用のモデル画像を取得するので、３次元計測の対象とする文字などの表面パターンがワークＷごとに異なる場合でも、同一のシーケンスを適用して３次元計測を行うことができる。ここでは、表面パターンはワークＷごとに異なるかもしれないが、ワークＷの形状とワークＷの形状を基準とした計測対象領域の位置はどのワークＷにおいても共通であることを利用して、計測対象領域を設定している。
【０１２５】
図２６の手順においても、登録したサーチ用のモデル画像をホモグラフィ行列Ｈｚを用いて斜視カメラＣ１に撮像されるはずの形状に変換し、変換後の画像を用いて計測対象領域８３を特定するようにしてもよい。
さらに、図２６の手順にも、正面視画像Ａ０を用いて表示領域Ｓ内の文字の印刷状態を検査する処理を組み込むことができる。
【符号の説明】
【０１２６】
１  撮像部
２  本体部
３  モニタ
４  コンソール
７，８  検出領域
２４  処理部
２５  メモリ
４１  画像処理部
４２  計測処理部
８０，８２  サーチ領域
２００  装置内コンピュータ
２０１  処理項目テーブル
２０２  シーケンス保存部
２０３  プログラム記憶部
２０４  指定操作受付部
２０５  シーケンス組立部
２０６  シーケンス実行部
Ａ０  正面視画像
Ａ１  斜視画像
Ｃ０，Ｃ１  カメラ
Ｗ  ワーク
【図１】
2011191312.tif 000004
【図２】
2011191312.tif 000005
【図３】
2011191312.tif 000006
【図４】
2011191312.tif 000007
【図５】
2011191312.tif 000008
【図６】
2011191312.tif 000009
【図７】
2011191312.tif 000010
【図８】
2011191312.tif 000011
【図９】
2011191312.tif 000012
【図１０】
2011191312.tif 000013
【図１１】
2011191312.tif 000014
【図１２】
2011191312.tif 000015
【図１３】
2011191312.tif 000016
【図１４】
2011191312.tif 000017
【図１５】
2011191312.tif 000018
【図１６】
2011191312.tif 000019
【図１７】
2011191312.tif 000020
【図１８】
2011191312.tif 000021
【図１９】
2011191312.tif 000022
【図２０】
2011191312.tif 000023
【図２１】
2011191312.tif 000024
【図２２】
2011191312.tif 000025
【図２３】
2011191312.tif 000026
【図２４】
2011191312.tif 000027
【図２５】
2011191312.tif 000028
【図２６】
2011191312.tif 000029
【図２７】
2011191312.tif 000030