(57)【特許請求の範囲】
【請求項１】
１台のカメラにより生成された画像を用いた２次元画像処理と、２台のカメラにより生成された画像を用いた３次元計測とについて、それぞれ所定数の処理項目とこれらの処理項目が示す処理を実行するのに必要なプログラムとが格納されたメモリと、処理項目を選択する操作を受け付けて選択された各処理項目によるシーケンスを組み立てるシーケンス組立手段と、組み立てられたシーケンスに含まれる処理項目に対応するプログラムを、前記シーケンスに従って実行するシーケンス実行手段とを具備する画像処理装置において、
それぞれ固有のカメラコードにより識別される３台以上のカメラと、３次元計測に使用する２台のカメラのカメラコードにこれらのカメラに対するキャリブレーションにより導出された３次元計測用のパラメータを対応づけた登録情報を、複数とおりのカメラの組み合わせについて登録することが可能な登録手段とが設けられており、
前記シーケンスに組み込み可能な処理項目として、２次元画像処理の処理対象画像を切り替える処理を表す処理項目および３次元計測の処理対象画像を切り替える処理を表す処理項目が、それぞれ個別に設けられており、
前記シーケンス組立手段は、前記処理対象画像を切り替える処理を表す各処理項目に対する選択操作を、それぞれ切替後の処理対象画像に対応する１または２個のカメラのカメラコードを選択する操作とともに受け付けて、選択された処理項目を選択されたカメラコードに対応づけて登録し、
前記シーケンス実行手段は、
２次元画像処理および３次元計測について、それぞれ処理対象画像を特定するための情報として、当該処理対象画像に対応するカメラのカメラコードによる管理情報を設定し、
２次元画像処理の処理対象画像を切り替える処理を表す処理項目を読み出したときには、その処理項目に対応づけられた１カメラコードにより２次元画像処理用の管理情報を更新し、
３次元計測の処理対象画像を切り替える処理を表す処理項目を読み出したときには、その処理項目に対応づけられた２つのカメラコードにより３次元計測用の管理情報を更新し、
シーケンス中の３次元計測用の処理項目による計測処理を実行するときには、その時点での３次元計測用の管理情報を構成する２つのカメラコードにより前記登録手段からこれらのコードに対応する３次元計測用のパラメータを読み出し、その読み出したパラメータを用いた演算を実行する、
ことを特徴とする画像処理装置。
【請求項２】
前記シーケンス実行手段は、２次元画像処理用の管理情報として特定の１台のカメラのカメラコードを、３次元計測用の管理情報として特定の２台のカメラのカメラコードを、それぞれ初期設定した後、前記処理対象画像を切り替える処理を表す処理項目を読み出したことに応じて、その読み出した処理項目に対応づけられたカメラコードにより当該処理項目に対応する管理情報を書き換える、請求項１に記載された画像処理装置。
【請求項３】
前記２次元画像処理用の処理項目には、処理対象画像を新たな画像に変換する処理を表す処理項目が少なくとも１つ含まれており、
前記シーケンス実行手段は、各カメラのカメラコードにより特定される処理対象画像としてそれぞれのカメラにより生成された画像を初期設定し、２次元画像処理につき画像の変換を伴う処理項目を実行したとき、この実行時点の２次元画像処理用の管理情報に含まれるカメラコードにより特定される処理対象画像を前記変換処理後の画像に更新する、請求項１または２に記載された画像処理装置。
【請求項４】
前記３次元計測用の処理項目は、２つの処理対象画像の一方を基準画像として、この基準画像から計測対象部位を抽出する処理、他方の画像で前記基準画像で検出した計測対象部位に対応する部位を特定する処理、および各画像における計測対象部位の座標を用いて空間位置を表す座標を算出する処理、の各内容をそれぞれ表すように構成される、請求項１〜３のいずれかに記載された画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２次元画像処理および３次元計測の双方を実行可能であって、処理目的に応じて、実行する処理の内容や処理の実行順序（シーケンス）を自由に設定する機能を有する画像処理装置に関する。
【背景技術】
【０００２】
出願人は先般、２次元画像処理および３次元計測の双方を実行可能な、汎用の画像処理装置を開発した。この装置には、複数種の処理項目やこれらの処理項目が示す処理を実行するのに必要なプログラムが登録されており、ユーザが必要な処理項目を選択して実行順序を設定することによって、画像入力から処理結果を出力するまでの一連のシーケンスを組み立て、そのシーケンスに沿った処理を実行することができる（特許文献１参照。）。
【０００３】
【特許文献１】特開２００７−２６４２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
３次元計測は、一般に、位置関係が既知の２台のカメラ（ステレオカメラ）を用いて行われるが、現場の状況や処理の目的によっては、３台以上のカメラを用いて、ステレオカメラの組み合わせを複数組設定したいという要望がある。
【０００５】
たとえば対象物が大型で、複数の計測対象部位が設定される場合、複数の計測対象部位毎に２台のカメラを配置し、各カメラを一斉に駆動すれば、処理を高速化することができる。また、１つの計測対象部位に対し、異なる２方向における視差を個別に検出して計測を行いたい場合には、最低３台のカメラを用いて、視差の検出対象の方向毎にステレオカメラの組を配備する必要がある。
【０００６】
しかし、３次元計測のためのカメラの組み合わせが複数とおり設定され、その上に２次元画像処理も実行するとなると、ユーザが処理のシーケンスを設定する作業は、かなり煩雑になる。
【０００７】
この発明は、上記の点に着目し、３台以上のカメラが導入され、これらのカメラを複数とおりに組み合わせた３次元計測と２次元計測処理とを合わせた処理を行う場合でも、ユーザがシーケンスを容易に設定できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
この発明による画像処理装置は、先の特許文献１に開示された装置と同様に、１台のカメラにより生成された画像を用いた２次元画像処理と、２台のカメラにより生成された画像を用いた３次元計測とについて、それぞれ所定数の処理項目とこれらの処理項目が示す処理を実行するのに必要なプログラムとが格納されたメモリと、処理項目を選択する操作を受け付けて選択された各処理項目によるシーケンスを組み立てるシーケンス組立手段と、組み立てられたシーケンスに含まれる処理項目に対応するプログラムを、シーケンスに従って実行するシーケンス実行手段とを具備する。
【０００９】
さらに、この発明による画像処理装置には、それぞれ固有のカメラコードにより識別される３台以上のカメラと、３次元計測に使用する２台のカメラのカメラコードにこれらのカメラに対するキャリブレーションにより導出された３次元計測用のパラメータを対応づけた登録情報を、複数とおりのカメラの組み合わせについて登録することが可能な登録手段とが設けられる。またシーケンスに組み込み可能な処理項目として、２次元画像処理の処理対象画像を切り替える処理を表す処理項目および３次元計測の処理対象画像を切り替える処理を表す処理項目が、それぞれ個別に設けられる。
【００１０】
シーケンス組立手段は、処理対象画像を切り替える処理を表す各処理項目に対する選択操作を、それぞれ切替後の処理対象画像に対応する１または２個のカメラのカメラコードを選択する操作とともに受け付けて、選択された処理項目を選択されたカメラコードに対応づけて登録する。
【００１１】
シーケンス実行手段は、２次元画像処理および３次元計測について、処理対象画像を特定するための情報として、当該処理対象画像に対応するカメラのカメラコードによる管理情報を設定する。また、２次元画像処理の処理対象画像を切り替える処理を表す処理項目を読み出したときには、その処理項目に対応づけられた１カメラコードにより２次元画像処理用の管理情報を更新し、３次元計測の処理対象画像を切り替える処理を表す処理項目を読み出したときには、その処理項目に対応づけられた２つのカメラコードにより３次元計測用の管理情報を更新する。また、シーケンス中の３次元計測用の処理項目による計測処理を実行するときには、その時点での３次元計測用の管理情報を構成する２つのカメラコードにより登録手段からこれらのコードに対応する３次元計測用のパラメータを読み出し、その読み出したパラメータを用いた演算を実行する。
【００１２】
上記構成の画像処理装置によれば、あらかじめ、２台のカメラによる組み合わせを複数とおり設定して、組み合わせ毎にカメラの関係を特定してキャリブレーションを実行することにより、組み合わせ毎に３次元計測を実行することが可能になる。シーケンスの組み立ては、実行すべき処理項目を選択する操作、処理対象画像の切り替えを表す処理項目を選択する操作、切替後の処理対象画像に対応するカメラのカメラコードを選択する操作に応じて行われるので、操作が煩雑にならず、一般ユーザでも容易に操作方法を理解することができる。
【００１３】
また、２次元画像処理の処理対象画像と３次元計測の処理対象画像とが、それぞれ各画像に対応するカメラのカメラコードにより個別に管理されるとともに、処理対象画像の切り替えも、２次元、３次元の別に行われるので、処理対象画像の選択や変更を、容易かつ誤りなく、行うことができる。なお、各管理情報は、カメラコードのみで構成してもよいが、これに限らず、カメラコード以外の情報を含むものにしてもよい。
【００１４】
上記画像処理装置の好ましい態様では、シーケンス実行手段は、２次元画像処理用の管理情報として特定の１台のカメラのカメラコードを、３次元計測用の管理情報として特定の２台のカメラのカメラコードを、それぞれ初期設定した後、処理対象画像を切り替える処理を表す処理項目を読み出したことに応じて、その読み出した処理項目に対応づけられたカメラコードにより当該処理項目に対応する管理情報を書き換える。
【００１５】
上記の態様によれば、２次元画像処理用の管理情報、３次元計測用の管理情報とも、あらかじめ初期設定されているので、この初期設定に対応するカメラに対する処理を一番目に行うようにすることによって、処理対象画像の切り替え回数を削減することができる。
【００１６】
さらに好ましい態様では、２次元画像処理用の処理項目に、処理対象画像を新たな画像に変換する処理を表す処理項目が少なくとも１つ含まれる。またシーケンス実行手段は、各カメラのカメラコードにより特定される処理対象画像としてそれぞれのカメラにより生成された画像を初期設定し、２次元画像処理につき画像の変換を伴う処理項目を実行したとき、この実行時点の２次元画像処理用の管理情報に含まれるカメラコードにより特定される処理対象画像を変換処理後の画像に更新する。
【００１７】
上記の態様によれば、たとえばあるカメラにより生成された画像に対し、対象物の位置ずれを修正する処理、ノイズを除去する処理など、画像変換を伴う２次元画像処理が行われた場合、以後、この処理時の管理情報に含まれるのと同一のカメラコードが管理情報に設定されていれば、２次元、３次元の区別なく、変換処理後の画像を対象にした処理を実行することができる。
【００１８】
よって、２次元の本格処理前に実施した前処理の結果を３次元計測にも反映させる場合でも、ユーザは特段の設定操作を行う必要がなく、操作が煩雑になるのを防止することができる。また、２次元画像処理について、上記の変換処理を伴う処理項目を複数種設定し、３次元計測用の処理項目も複数種設定すれば、これらの処理項目の組み合わせにより、種々の内容の処理を実行することができる。
【００１９】
さらに好ましい態様の画像処理装置では、３次元計測用の処理項目は、２つの処理対象画像の一方を基準画像として、この基準画像から計測対象部位を検出する処理、他方の画像で基準画像で検出した計測対象部位に対応する部位を特定する処理、および各画像における計測対象部位の座標を用いて空間位置を表す座標を算出する処理、の各内容をそれぞれ表すように構成される。
【００２０】
上記の態様によれば、３次元計測の一連の処理内容が１つの処理項目にまとめられるから、複数のカメラの組み合わせ毎に３次元計測を行う場合でも、処理対象画像を切り替える処理項目の選択と３次元計測の処理項目とを選択する操作により、シーケンスを組み立てることが可能になり、ユーザの手数が大幅に削減される。
【発明の効果】
【００２１】
上記構成の画像処理装置によれば、複数とおりのステレオカメラの組み合わせによる３次元計測および種々の２次元画像処理を含む一連の処理のシーケンスを、簡単かつ誤りなく設定することが可能になり、装置の汎用性および利便性を大幅に高めることができる。
【発明を実施するための最良の形態】
【００２２】
図１は、この発明が適用された画像処理装置の撮像部の構成、および撮像処理の例を示す。
この実施例の画像処理装置は、工場で組み立てられるワークＷ（図示例では車両）を対象に、車体の所定の部位（たとえばボンネットフレームの端縁部）を計測し、傷や歪み等の欠陥がないかどうかを検査するためのものである。
【００２３】
さらに、この実施例では、車両のような大型のワークＷに対する検査の効率を向上するために、２個の撮像部１Ａ，１ＢによりワークＷの２箇所を同時に撮像するようにしている。以下、撮像部１Ａを「第１撮像部１Ａ」、撮像部１Ｂを「第２撮像部１Ｂ」という。
【００２４】
各撮像部１Ａ，１Ｂは、筐体１５Ａ，１５Ｂ内に２台のカメラを組み込んだ構成のものである。これらのカメラには、後記するシーケンス設定の際の識別のために、それぞれ０，１，２，３の識別コードが付されている（以下、これらのコードを、「カメラコード」という）。図１，２および以下の説明では、これらのカメラコードに基づき、各カメラを、それぞれＣ０，Ｃ１，Ｃ２，Ｃ３の符号で示すが、４台のカメラＣ０〜Ｃ３を総称する場合には、「カメラＣ」という。
【００２５】
同じ撮像部に組み込まれる２台のカメラ（Ｃ０とＣ１、またはＣ２とＣ３）は、それぞれ３次元計測のために、各視野が重なり合うようにして配備される。
各撮像部１Ａ，１Ｂの一方のカメラＣ０，Ｃ２は、光軸を鉛直方向に向けた状態で設置され、カメラＣ２，Ｃ３は、光軸を斜め下方に向けて設置される。したがって、カメラＣ０，Ｃ２により生成された画像は、被検査部位を正面から見た状態を示すものとなり（以下、これらの画像を「正面視画像」という。）、カメラＣ１，Ｃ３により生成された画像は、被検査部位を斜め上から見た状態を示すものとなる。
【００２６】
この実施例では、上記のカメラ設置に基づき、カメラＣ０，Ｃ２の正面視画像を用いて各種の２次元画像処理による計測を行うとともに、カメラＣ０，Ｃ１により生成された画像、およびカメラＣ２，Ｃ３により生成された画像を、それぞれ組み合わせて、３次元計測を実行する。実行する処理の内容や順序は、あらかじめ登録された処理項目を選択する操作により、種々設定することができる。
【００２７】
図２は、画像処理装置の全体構成を示すブロック図である。
この画像処理装置は、コンピュータが組み込まれた本体部１０に、各撮像部１Ａ，１Ｂ、モニタ１１、操作部１２などが接続された構成のものである。
【００２８】
本体部１０内には、各カメラＣ０，Ｃ１，Ｃ２，Ｃ３にそれぞれ対応する画像入力部１００，１０１，１０２，１０３、カメラ駆動部１０４、画像メモリ１０５、制御処理部１０６、メモリ１０７、出力部１０８、Ｉ／Ｏポート１０９などが組み込まれる。
【００２９】
制御処理部１０６は、図示しないＣＰＵ，ＲＯＭ，ＲＡＭなどにより構成される。メモリ１０７は、フラッシュディスクまたはハードディスク等の不揮発性メモリであって、制御処理部１０６の動作に必要なプログラム（装置の動作を統括するプログラム、各種処理項目の実行に必要なプログラムなど）が格納される。さらに、このメモリ１０７には、後記する処理項目テーブル２０１やシーケンス保存部２０２、ならびに３次元計測用のパラメータ（３次元座標の算出のための演算に使用されるもの）の記憶部などが設定される。
【００３０】
３次元計測用のパラメータは、本処理に先立ち、撮像部１Ａ，１Ｂに対し個別のキャリブレーションを行うことにより導出され、それぞれキャリブレーション対象の２個のカメラのカメラコードに対応づけて登録される。さらにこの実施例では、本処理に先立ち、処理項目テーブル２０１の内容をモニタ１１に表示して、操作部１２による設定操作を受け付けることにより、実行すべき処理項目を所定の順序で並べたシーケンスを設定し、メモリ１０７に保存するようにしている。
【００３１】
図３は、処理項目テーブルの一部構成を示す。
この実施例の処理項目テーブルは、「画像入力／画像切替」「２次元前処理」「２次元計測」「３次元計測」など、処理の目的に応じて分類され、分類毎に複数の処理項目が登録されている。
【００３２】
「画像入力／画像切替」は、文字通り、処理に使用する画像の入力および切替を行うためのもので、『画像入力』『２次元カメラ切替』『３次元カメラ切替』の３種類の処理項目が設定されている。
【００３３】
『画像入力』は、カメラＣを駆動して、生成された画像を取り込む処理を意味する。この処理では原則として、４台のカメラＣを一斉駆動するが、この処理項目の選択とともに特定のカメラコードを入力することにより、１〜３台のカメラＣを動作させることもできる。
たとえば、第１撮像部１ＡのカメラＣ０，Ｃ１のみに撮像を行わせたい場合には、カメラコード「０」「１」の入力とともに『画像入力』を選択すればよい。
【００３４】
『２次元カメラ切替』は、２次元画像処理の処理対象画像を切り替える処理を示し、『３次元カメラ切替』は、３次元計測の処理対象画像を切り替える処理を示す。これらの処理項目も、切替後の処理対象画像に対応するカメラＣのカメラコードの入力とともに選択される。
なお、これらの処理項目の名称に『カメラ切替』という表現を用いたのは、処理対象画像を指定する処理をカメラコードを用いて行うため、『画像切替』というより『カメラ切替』とした方が、ユーザにとって把握しやすく、指定の誤りが生じにくいと考えたからである。
【００３５】
つぎに、「２次元前処理」には、画像中の計測対象部位の位置ずれやノイズの除去など、処理対象画像を本格的な計測に適した画像にするための処理項目が設定される。これらの処理項目では、処理対象画像を変換して新たな画像を生成する。たとえば、『エッジ位置修正』や『モデル位置修正』では、処理対象画像から特徴部位（エッジ点、モデルに対応するパターンなど）を抽出して、その部位があらかじめ登録された基準位置にくるように、各画素の位置を修正した画像を生成する。また『フィルタリング』は、フーリエ変換等の演算によって、処理対象画像の各画素の画像データを変換する。
【００３６】
『前画像に復帰』は、変換後の画像を一段階前の画像に戻す処理である。この処理項目は、主に、他の処理項目により画像を変換して何らかの計測処理を実行した後、別の計測のために処理対象画像を元の画像に戻したい場合に選択される。この処理項目も、本来は、先に実行した変換とは逆の変換により行われるが、この実施例では、変換前の画像を画像メモリ１０５に残しておき、これを適宜読み出すことによって、『前画像に復帰』に効率良く対応できるようにしている。
【００３７】
「２次元計測」には、２次元画像処理による本格的な計測のための処理項目が設定される。『濃淡エッジ位置』は、処理対象画像に２値化および投影処理を実行することにより、エッジの位置を表すｘ，ｙ座標を特定する処理を示す。『相関サーチ』は、あらかじめ登録されたモデル画像に対する相関演算によって、モデルに対応する領域を検出する処理を示す。『ＥＣＭサーチ』は、画素単位での濃度勾配方向を表す角度情報（出願人は「エッジコード」と呼んでいる。）の分布パターンをモデルのパターンと照合することによって、モデルに対応する領域を検出する処理を示す。さらに、『相関サーチ』や『ＥＣＭサーチ』では、図示しないメニューを用いて、検出された領域に対する具体的な計測方法（たとえば面積の算出、重心の座標の算出など）を設定することもできる。
【００３８】
「３次元計測」には、３次元座標の算出に関わる処理項目が複数設定される。いずれの処理項目も、カメラＣ０またはＣ２による正面視画像から計測対象部位を検出する処理、他方のカメラＣ１またはＣ３による画像を対象に、正面視画像中の計測対象部位に対応する部位を検出する処理、および２つの画像で検出された計測対象部位について、各画像における座標を用いた演算を実行して３次元座標を算出する処理、の各処理を示すものである。ここで図示した３種類の処理項目『３次元エッジ位置』『３次元サーチ』『３次元ＥＣＭサーチ』は、それぞれ２次元計測の『濃淡エッジ位置』『相関サーチ』『ＥＣＭサーチ』に準じた方法で、正面視画像に対する計測対象部位の検出を実行する。
【００３９】
図４は、上記のシーケンスの設定および実行に関するシステム構成を示す。
図中、２０１は、上記図３に示した処理項目テーブルである。この例のシステムには、処理項目テーブル２０１のほか、シーケンス保存部２０２、プログラム記憶部２０３、指定操作受付部２０４、シーケンス組立部２０５、シーケンス実行部２０６、処理結果出力部２０７などが含まれる。これらのうち、処理項目テーブル２０１、シーケンス保存部２０２、プログラム記憶部２０３は、メモリにファイルとして保存される。その他の構成は、メモリ内のプログラムにより制御処理部に設定される機能である。
【００４０】
指定操作受付部２０４は、処理項目テーブル２０１の内容をモニタ１１に表示し、処理項目の選択および選択された処理項目の実行順序について、操作部１２からの指定操作を受け付ける。また『２次元カメラ切替』や『３次元カメラ切替』が選択される場合には、切替後の処理対象画像をカメラコードにより選択する操作を受け付ける。
【００４１】
シーケンス組立部２０５は、指定操作受付部２０４から上記の操作により受け付けた指定内容を渡されて、その指定に応じたシーケンスを組み立てる。このシーケンスを表す具体的なデータ構成は、指定された処理項目を表すコード情報を指定された順番に配列したものとなる。さらに、シーケンス中の『画像入力』『２次元カメラ切替』『３次元カメラ切替』には、それぞれカメラコードが対応づけられる。
【００４２】
シーケンス実行部２０６は、シーケンス組立部２０５に保存されたシーケンスを読み出し、そのシーケンスを構成する処理項目に対応するプログラムをプログラム記憶部２０３から順に読み出して実行する。処理結果出力部２０７は、このシーケンスの実行により最終的に得られた処理結果を出力する。
【００４３】
さらにこの実施例のシーケンス実行部２０６は、２次元画像処理、３次元計測処理について、それぞれその処理対象画像に対応するカメラコードによる管理情報を個別に設定し、これらの管理情報に基づき処理項目毎に処理対象画像を特定するようにしている。
たとえば、２次元画像処理の管理情報が［０］で、３次元画像処理の管理情報が［２］および［３］であるものとすると、「２次元前処理」や「２次元計測」に属する処理項目を実行する場合には、カメラＣ０から入力した画像、またはこの画像に対する変換画像を処理対象とする。一方、「３次元計測」に属する処理項目を実行する場合には、カメラＣ２，Ｃ３から入力した画像、またはこれらの画像に対する変換画像を処理対象とする。また、３次元座標を算出する演算では、管理情報を構成する２つのカメラコードに対応づけられたパラメータを、メモリ１０７から読み出し、これらのパラメータを用いた演算を実行する。
【００４４】
この実施例では、２次元画像処理用の管理情報を［０］（撮像部１Ａの正面視用のカメラＣ０のカメラコード）に、３次元計測用の管理情報を［０］［１］（撮像部１ＡのカメラＣ０，Ｃ１のカメラコード）に、それぞれ初期設定して、シーケンスに示される処理を開始する。またシーケンス中の『２次元カメラ切替』や『３次元カメラ切替』に対しては、それぞれその処理項目に対応づけられたカメラコードにより管理情報を更新する。これにより、管理情報により特定される処理対象画像が切り替えられる。
【００４５】
図５は、処理項目テーブル２０１に基づき設定されたシーケンスの具体例と、このシーケンスが実行される間の管理情報の変化を示す。
このシーケンスは、正面視用のカメラＣ０，Ｃ３により生成された画像を用いて、それぞれ２次元の計測処理を行うとともに、各撮像部１Ａ，１Ｂ毎に、３次元計測を実行するものである。
【００４６】
図中の「シーケンス番号」は、シーケンス内の処理項目の並び順を示す。以下、シーケンス番号がｎの処理項目により実行される処理のステップを「ステップｎ」という。
図中の「２次元管理情報」は２次元画像処理用の管理情報であり、１台のカメラのカメラコードにより表される。また「３次元管理情報」は３次元計測用の管理情報であり、２台のカメラ（３次元計測用のパラメータが設定されている組み合わせに限る。）のカメラコードにより表される。なお、シーケンスの実行、管理情報の更新とも、シーケンス実行部２０６により実行される。
【００４７】
このシーケンスの最初のステップ１では、各カメラＣ０〜Ｃ３を同時駆動して、生成された４つの画像を入力する。この処理を実行したとき、２次元管理情報には初期値として［０］がセットされ、３次元管理情報には初期値として［０］および［１］がセットされる。また、ここには図示していないが、各カメラＣ０〜Ｃ３から入力され、画像メモリ１０５に保存された画像は、それぞれそのカメラのカメラコード［０］〜［３］により読み出し可能な状態に設定される。
【００４８】
ステップ２では、「２次元前処理」の『モデル位置修正』を実行する。この処理項目は２次元画像処理に属するので、処理対象画像は２次元管理情報に基づいて特定される。よってステップ２では、カメラコード０に対応する画像（この時点ではカメラＣ０からの入力画像）が処理対象画像に設定される。
また、『モデル位置修正』では、処理対象画像の修正のための変換処理を実行するので、処理が終了すると、変換後の画像がカメラコード０により特定される画像になるように、カメラコードと画像との対応関係が変更される。
【００４９】
つぎのステップ３では、「２次元計測」の『相関サーチ』を実行する。この処理項目も２次元画像処理に属するので、ステップ２と同様に、処理対象画像は２次元管理情報に基づいて特定される。この段階の２次元管理情報にも［０］がセットされているが、カメラコード０に対応する画像が変換後の画像に変更されているため、ステップ３では、この変換後の画像が処理対象画像に設定される。
【００５０】
ステップ４では、『２次元カメラ切替』として、２次元管理情報を［０］から［１］に変更する処理を実行する。これにより、以後の２次元画像処理の処理対象画像は、カメラコード１により特定される画像（カメラＣ１からの入力画像）に切り替えられる。
【００５１】
ステップ５では、ステップ２と同様の『モデル位置修正』を実行する。この処理では、先のステップ４で変更された２次元管理情報に基づき、カメラＣ１からの入力画像が処理対象画像に設定される。
このステップ５でも、先のステップ２と同様に、『モデル位置修正』によって処理対象画像が変換されるので、処理が終了すると、変換後の画像がカメラコード１により特定される画像になるように、カメラコードと画像との対応づけが変更される。
【００５２】
つぎにステップ６では、「３次元計測」の『３次元エッジ位置』を実行する。この段階まで３次元管理情報は初期値の「０」および「１」のまま維持されているが、これらのカメラコードに対応する画像は、ステップ２および５の『モデル位置修正』によって更新されている。よって、ステップ６でも、これら更新された画像を対象に、処理を実行する。
【００５３】
この後、ステップ７では、『２次元カメラ切替』として、２次元管理情報を［１］から［２］に変更する処理を実行する。これにより、以後の２次元画像処理の処理対象画像は、カメラコード２に対応する画像（カメラＣ２からの入力画像）に切り替えられる。
【００５４】
ステップ８では、変更された２次元管理情報に基づき、カメラＣ２からの入力画像を対象に、『モデル位置修正』を実行する。この処理により、先のステップ２やステップ５と同様に、『モデル位置修正』における変換後の画像がカメラコード２により特定される画像となるように、カメラコードと画像との対応づけが変更される。
【００５５】
ステップ９では、管理情報の設定値［２］に基づき、上記ステップ８で生成された変換後の画像を処理対象画像として、「２次元計測」中の『ＥＣＭサーチ』を実行する。
【００５６】
ステップ１０では、『２次元カメラ切替』として、２次元管理情報を［２］から［３］に変更する処理を実行する。この処理により、以後の２次元画像処理の処理対象画像は、カメラコード３に対応する画像（カメラＣ３からの入力画像）に切り替えられる。
【００５７】
ステップ１１では、変更後の２次元管理情報に基づき、カメラＣ３からの入力画像を対象に、『モデル位置修正』を実行する（ステップ１１）。この場合にも、『モデル位置修正』における変換後の画像がカメラコード３により特定される画像となるように、カメラコードと画像との対応づけが変更される。
【００５８】
つぎのステップ１２では、『３次元カメラ切替』として、これまで［０］［１］に設定されていた３次元管理情報を［２］［３］に変更する処理を実行する。これにより以後の３次元計測の処理対象画像は、カメラコード２，３に対応する画像に切り替えられる。
【００５９】
ステップ１３では、ステップ１２で変更された３次元管理情報に基づき、『３次元エッジ位置』を実行する。
ここで、カメラコード２，３に対応する画像は、それぞれステップ８，１１の『モデル位置修正』による変換後の画像に変更されているから、ステップ１２でも、この変更後の画像が処理対象画像に設定される。
【００６０】
この後は、図示しない判別処理や処理結果を出力する処理などが実行され、処理を終了する。
【００６１】
上記のシーケンスは、第１撮像部１Ａにより生成された画像を用いて、２次元および３次元の各計測処理を実行した後に、第２撮像部１Ｂにより生成された画像に処理対象を切り替えて、同様に２次元および３次元の各計測処理を実行するように設定されている。
【００６２】
ここで、具体的な２次元計測に用いられるカメラＣ０，Ｃ２からの入力画像については、２次元計測の前処理として『モデル位置修正』を選択することにより、３次元計測について何の指定操作をしなくとも、『モデル位置修正』の処理結果をそのまま３次元計測に適用することができる。
【００６３】
図６は、図５と同内容の処理を実行可能なシーケンスの他の例を示す。
この例でも、ステップ１〜３の処理は図５の例と同様である。すなわち、各カメラＣ０〜Ｃ３から画像を入力した後、２次元管理情報の初期値に基づき、カメラＣ０からの入力画像を対象に『モデル位置修正』を実行し、さらに『相関サーチ』を実行する。
【００６４】
つぎに、この例では、『２次元カメラ切替』として、２次元管理情報を、初期値の［０］から［２］に変更する（ステップ４）。そして、この変更された２次元管理情報に対応する画像（カメラＣ２からの入力画像）を用いて、『モデル位置修正』を実行し、さらに『ＥＣＭサーチ』を実行する（ステップ５，６）。
なお、ステップ３，ステップ６では、それぞれ１つ前の『モデル位置修正』により生成された変換後の画像が処理対象画像に設定される。
【００６５】
つぎに、『２次元カメラ切替』として、２次元管理情報を「２」から「１」に変更し、この変更された２次元管理情報に対応する画像（カメラＣ１からの入力画像）を対象に、『モデル位置修正』を実行する（ステップ７，８）。さらに、再度の『２次元カメラ切替』として、２次元管理情報を「１」から「３」に変更し、この変更された２次元管理情報に対応する画像（カメラＣ３からの入力画像）を対象に、『モデル位置修正』を実行する（ステップ９，１０）。
【００６６】
このように、２次元画像処理の処理対象画像を順次切り替えて、２次元画像処理を実行するが、この間、３次元管理情報は初期値の［０］［１］のまま維持されている。つぎのステップ１１では、この３次元管理情報の初期値に基づき、カメラコード０，１に対応する画像を対象に、『３次元エッジ位置』を実行する。カメラコード０，１に対応する画像は、それぞれステップ２，８の『モデル位置修正』で変換された画像に更新されているので、ステップ１１では、これら更新後の画像を対象にした処理が実行される。
【００６７】
この後、ステップ１２では、『３次元カメラ切替』として、３次元管理情報を、上記の初期値から［２］［３］に変更する。ステップ１３では、この変更後の３次元管理情報に基づき、カメラコード２，３に対応する画像を対象に、『３次元エッジ位置』を実行する。カメラコード２，３に対応する画像も、それぞれステップ５，１０の『モデル位置修正』で変換された画像に更新されているので、ステップ１２では、これら更新後の画像を対象にした処理が実行される。
【００６８】
上記図６のシーケンスによれば、カメラＣ０およびＣ２による正面視画像に対する２次元画像処理が優先して実行された後、カメラＣ１，Ｃ３からの入力画像に対し、３次元計測のための前処理が実行され、しかる後に撮像部１Ａ，１Ｂ毎に３次元計測が実行される。処理項目の順序や管理情報の切替のために選択されたカメラコードの順序は異なるが、２次元、３次元の各処理項目では、いずれも図５と同様の画像を対象に処理を実行する。よって、このシーケンスでも、図５のシーケンスと同様の処理結果を得ることができる。
【００６９】
上記のように、この実施例による画像処理装置では、同内容の処理について、複数とおりのシーケンスを設定することが可能であるから、処理の優先度、処理効率、ユーザの好み等の事情に応じて、シーケンスの内容を柔軟に設定することができる。
【００７０】
しかも、３次元計測については、『３次元カメラ切替』により処理対象画像を指定して、３次元計測用の処理項目を１つ選択すれば良いから、複数のカメラの組み合わせ毎に３次元計測を行う場合でも、設定が煩雑にならず、効率良く、かつ誤りのない設定を行うことができる。
【００７１】
加えて、３次元計測の処理項目として、処理内容の異なる処理項目を複数設定するとともに、前処理用の処理項目を２次元画像処理の処理項目として、複数とおり設定しているので、前処理と３次元計測との組み合わせにより、実行される処理の内容を種々異なるものに設定することができる。したがって、実行される処理の自由度が高められ、検査や計測の目的、計測対象部位の形状や種別を選ばず、どのような処理にも柔軟に対応することが可能になる。
【００７２】
なお、上記の実施例では、２台のカメラＣを具備する撮像部を２個配備して、撮像部毎に３次元計測を実行できるようにしたが、これに限らず、同様の構成の撮像部を３個以上用いて、より多くの部位に対する３次元計測を行うことも可能である。
【００７３】
一方、上記実施例のようなユニット型の撮像部を配置せずに、独立した３台以上のカメラを用いて、複数とおりの３次元計測を行うことも可能である。たとえば、１台のカメラを、光軸を鉛直方向に向けて配置して正面視画像を生成させ、２台のカメラを光軸を斜めに向けて配置し、これらのカメラを正面視用のカメラにそれぞれ組み合わせて３次元計測を行うようにしてもよい。この場合にも、正面視画像を２次元画像処理の処理対象画像および３次元計測の基準画像として処理を実行することにより、各種の処理を簡単かつ精度良く実行することができる。
【図面の簡単な説明】
【００７４】
【図１】撮像部の構成および配置例を示す説明図である。
【図２】画像処理装置の構成を示すブロック図である。
【図３】処理項目テーブルのデータ構成を示す説明図である。
【図４】シーケンスの組立および実行に関するシステムの機能ブロック図である。
【図５】シーケンスの具体例とこのシーケンスの実行に伴う管理情報の変化とを対応づけて示す説明図である。
【図６】シーケンスの他の例とこのシーケンスの実行に伴う管理情報の変化とを対応づけて示す説明図である。
【符号の説明】
【００７５】
１Ａ，１Ｂ  撮像部
Ｃ０，Ｃ１，Ｃ２，Ｃ３  カメラ
１０    本体部
１１    モニタ
１２    操作部
１０５  画像メモリ
１０６  制御処理部
１０７  メモリ
２０１  処理項目テーブル
２０２  シーケンス保存部
２０３  プログラム記憶部
２０４  指定操作受付部
２０５  シーケンス組立部
２０６  シーケンス実行部
【図１】
0004985241.tif 000002
【図２】
0004985241.tif 000003
【図３】
0004985241.tif 000004
【図４】
0004985241.tif 000005
【図５】
0004985241.tif 000006
【図６】
0004985241.tif 000007