(57)【特許請求の範囲】
【請求項１】
３台以上のカメラをそれぞれの視野が所定の範囲で重なるように位置関係および光軸方向を定めて配置するとともに、これらのカメラの中の特定の１台を基準カメラに設定し、
前記３台以上のカメラの各視野が重なる範囲に入った計測対象物に対し、各カメラによる撮像を行う第１ステップと、前記基準カメラにより生成された基準画像から前記計測対象物の代表点を抽出する第２ステップと、基準カメラ以外の各カメラにより生成された比較画像と前記基準画像とを用いて前記第２ステップで抽出された代表点の３次元座標を算出する第３ステップと、第３ステップで算出された３次元座標に基づき、前記計測対象物に対する３次元計測結果を出力する第４ステップとを実行する３次元計測方法において、
前記第３ステップでは、前記基準カメラ以外の各カメラにより生成された比較画像をそれぞれ個別に前記基準画像に組み合わせ、組み合わせ毎に、前記基準画像から抽出された代表点に対する比較画像側の対応点を検索するステップと、この検索により特定された対応点の座標と基準画像中の前記代表点の座標とを用いてこれらの座標に対応する３次元座標を求めるステップとを実行するとともに、少なくとも１つの代表点について、基準画像中の当該代表点の座標とカメラ間のあらかじめ定められた関係とに基づき特定される比較画像中のエピポーラ線に対し、前記検索により特定された対応点のずれ量を算出するステップを、前記基準画像と比較画像との組み合わせ毎に実行し、
前記第４ステップでは、前記基準画像と比較画像との組み合わせ毎に算出されたずれ量の中の最大値に基づき３次元計測結果の精度を表す評価値を設定するとともに、ずれ量が最小となった組み合わせに対して算出された３次元座標により前記計測対象物に対する３次元計測結果を特定し、この３次元計測結果とともに前記評価値を出力する、ことを特徴とする３次元計測方法。
【請求項２】
それぞれの視野が所定の範囲で重なるように位置関係および光軸方向を定めて配置された３台以上のカメラから、各カメラの視野が重なる範囲に入った計測対象物の画像を個別に入力する画像入力手段と、
前記３台以上のカメラのうちの特定の１台を基準カメラとして、この基準カメラにより生成された基準画像から前記計測対象物の代表点を抽出する代表点抽出手段と、
前記基準カメラ以外の各カメラにより生成された比較画像において、それぞれ前記基準画像側の代表点に対応する点を検索する対応点検索手段と、
前記基準カメラ以外の各カメラにより生成された比較画像をそれぞれ個別に前記基準画像に組み合わせて、組み合わせ毎に、前記基準画像側の代表点の座標と前記対応点検索手段の検索処理により特定された比較画像側の対応点の座標とを用いてこれらの座標に対応する３次元座標を算出する３次元座標算出手段と、
少なくとも１つの代表点について、基準画像中の当該代表点の座標とカメラ間のあらかじめ定められた関係とに基づき特定される比較画像中のエピポーラ線に対し、前記対応点検索手段の検索により特定された対応点のずれ量を算出するステップを、前記基準画像と比較画像との組み合わせ毎に実行するずれ量算出手段と、
前記基準画像と比較画像との組み合わせ毎に算出されたずれ量の中の最大値に基づき３次元計測結果の精度を表す評価値を設定するとともに、ずれ量が最小となった組み合わせにつき前記３次元座標算出手段により算出された３次元座標により前記計測対象物に対する３次元計測結果を特定し、前記評価値を特定された３次元計測結果とともに出力する出力手段とを、具備する３次元計測装置。
【請求項３】
前記ずれ量算出手段により算出されたずれ量が所定の許容値を上回るものになったとき、警告のための報知を実行する報知手段を、さらに具備する請求項２に記載された３次元計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、それぞれの視野が所定の範囲で重なるように位置関係および光軸方向を定めて配置された複数台のカメラを用いて、３次元計測を行う方法および装置に関する。
【背景技術】
【０００２】
この種の３次元計測処理は、一般に２台のカメラを使用し、双方のカメラからの画像に共通に現れた特徴点について、三角測量の原理に基づき３次元座標を算出するものである。計測対象となる特徴点を特定するには、一方の画像を基準画像として、この基準画像から計測対象物に含まれる代表点を抽出し、この代表点を含む所定大きさの領域内の画像を用いて他方の画像における対応点を検索する処理（たとえばパターンマッチング）を実行する。また、３次元座標の算出では、あらかじめキャリブレーションにより設定されたパラメータを用いた演算が実行される。
【０００３】
さらに、対応点の検索処理においては、検索を効率良くかつ精度良く行うために、基準画像における代表点の座標やカメラ間の位置関係に基づき、検索対象の画像におけるエピポーラ線を特定し、このエピポーラ線に沿って、前記特徴点を含む領域に対応する領域を検索する方法が、広く採用されている（特許文献１参照。）。
【０００４】
【特許文献１】特開２００４−２３４４２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の３次元計測処理では、計測対象の領域に対する各カメラの相対位置関係や光軸方向を固定する必要があるが、何らかの原因によりカメラの位置や姿勢が変化することがある。このような状態になると、基準画像側の特徴点に対応する点は、本来あるべき場所からずれてしまうため、３次元座標の算出結果も不正確なものとなる。
【０００６】
上記のようにカメラの位置や姿勢の変化により３次元計測結果が不正確になると、厳密な計測結果が要求される場合に、致命的な損害が生じるおそれがある。
たとえば、工場の組立ラインでのロボットハンドの位置決めを３次元計測により行う場合に、計測結果が不正確になったことに気づかないまま処理が進められると、不良品が発生したり、処理エラーが生じる可能性がある。また３次元計測による検査を行う場合にも、不良品が見過ごされて出荷されたり、良品であるのに不良品として判別される製品が増えるおそれがある。
【０００７】
この発明は上記の問題に着目し、カメラ間の関係が当初の設定とは異なる状態になったために３次元計測結果が不正確になったとき、ユーザが速やかに気づいて対応できるようにすることを、目的とする。
【課題を解決するための手段】
【０００８】
この発明による３次元計測方法は、３台以上のカメラを、それぞれの視野が所定の範囲で重なるように位置関係および光軸方向を定めて配置するとともに、これらのカメラの中の特定の１台を基準カメラに設定し、前記３台以上のカメラの各視野が重なる範囲に入った計測対象物に対し、各カメラによる撮像を行う第１ステップと、前記基準カメラにより生成された基準画像から前記計測対象物の代表点を抽出する第２ステップと、基準カメラ以外のカメラにより生成された比較画像と前記基準画像とを用いて第２ステップで抽出された代表点の３次元座標を算出する第３ステップと、第３ステップで算出された３次元座標に基づき、計測対象物に対する３次元計測結果を出力する第４ステップとを実行するものである。
【０００９】
上記の第３ステップでは、基準カメラ以外の各カメラにより生成された比較画像をそれぞれ個別に前記基準画像に組み合わせ、組み合わせ毎に、基準画像から抽出された代表点に対する比較画像側の対応点を検索するステップと、この検索により特定された対応点の座標と基準画像中の前記代表点の座標とを用いてこれらの座標に対応する３次元座標を求めるステップとを実行するとともに、少なくとも１つの代表点について、基準画像中の当該代表点の座標とカメラ間のあらかじめ定められた関係とに基づき特定される比較画像中のエピポーラ線に対し、前記検索により特定された対応点のずれ量を算出するステップを、基準画像と比較画像との組み合わせ毎に実行する。さらに第４ステップでは、基準画像と比較画像との組み合わせ毎に算出されたずれ量の中の最大値に基づき３次元計測結果の精度を表す評価値を設定するとともに、ずれ量が最小となった組み合わせに対して算出された３次元座標により前記計測対象物に対する３次元計測結果を特定し、この３次元計測結果を前記評価値とともに出力する。
なお、第３ステップにおいて比較画像側の対応点を検索する場合には、検索を効率良く行うために、エピポーラ線に沿って検索を行うのが望ましいが、その場合には、対応点がエピポーラ線からずれた場合に対応できるように、エピポーラ線からある程度離れた範囲までを検索対象にする必要がある。
【００１０】
カメラの位置または姿勢が変化して、カメラ間の関係が計測処理前のキャリブレーションにより特定したものとは異なるようになると、基準画像から抽出した代表点に対する比較画像側の対応点は、キャリブレーションにより特定したカメラ間の関係に基づくエピポーラ線から離れた場所に位置するようになる。
【００１２】
この発明では上記の点に着目し、１計測対象物に対する３次元計測を行う間に、各比較画像におけるエピポーラ線に対する対応点のずれ量に基づき、３次元計測結果の精度を表す評価値を設定して、３次元計測結果とともに出力するので、カメラの関係の変化によって３次元計測の精度が低下した場合に、それに気づかずに計測が続行されるのを防止することができる。
【００１５】
なお、前出の特許文献１には、３次元計測の処理を行う間に、その処理の信頼度を求めることが記載されている。しかし、この特許文献１における信頼度は、エピポーラ線に沿って対応点を検索する間に、真の対応点とは異なる点が誤抽出されていないかどうかを判別するためのものである。
この発明の評価値は、対応点自体は正しいが、３次元座標の算出に必要なパラメータが実際のカメラの配置に対応しないものになっている状態を把握するためのものであり、特許文献１の信頼度とは概念が全く異なる。また、特許文献１では、照合対象の画像にエピポーラ線に沿って参照ウィンドウを走査しながら、走査位置毎に基準ウィンドウとの輝度差の絶対値和（ＳＡＤ）を用いた演算により信頼度を算出しており、エピポーラ線に対する対応点のずれ量を求める点については、何も記載されていない。
【００１７】
つぎに、この発明では、３台以上のカメラを使用し、基準カメラ以外の各カメラにより生成された画像を、比較画像としてそれぞれ個別に基準画像に組み合わせて、組み合わせ毎に代表点への対応点の検索、および３次元座標の算出、ならびにずれ量を算出する処理を実行し、最大のずれ量に基づき評価値を設定するとともに、ずれ量が最小となった組み合わせに対して算出された３次元座標により計測対象物に対する３次元計測結果を特定する。したがって、基準カメラ以外のカメラのいずれかが動いた場合や、基準カメラが動いて全てのカメラの関係が狂った場合には、その異常を評価値に反映させることができる。
【００１８】
また、基準カメラ以外の１カメラと基準カメラとが、両者間の関係を維持したまま動いた場合には、これらのカメラに対応するずれ量が最小になると考えられるが、正しい配置状態が保たれた他のカメラと基準カメラとの組み合わせによるずれ量が大きくなって、このずれ量に基づき評価値が設定される。よって、この場合にも、出力された評価値により３次元計測の精度が低下したことを判別することが可能になる。
したがって、いずれのカメラが動いたかを特定することができなくとも、出力された評価値によってカメラの配置の関係が狂ったことを認識することができるので、精度の悪い３次元計測結果が使用されるのを防止することができる。
【００１９】
この発明に係る３次元計測装置は、それぞれの視野が所定の範囲で重なるように位置関係および光軸方向を定めて配置された３台以上のカメラから、各カメラの視野が重なる範囲に入った計測対象物の画像を個別に入力する画像入力手段；前記３台以上のカメラのうちの特定の１台を基準カメラとして、この基準カメラにより生成された基準画像から計測対象物の代表点を抽出する代表点抽出手段；基準カメラ以外の各カメラにより生成された比較画像において、それぞれ基準画像側の代表点に対応する点を検索する対応点検索手段；基準カメラ以外の各カメラにより生成された比較画像をそれぞれ個別に基準画像に組み合わせて、組み合わせ毎に、基準画像側の代表点の座標と対応点検索手段の検索処理により特定された比較画像側の対応点の座標とを用いてこれらの座標に対応する３次元座標を算出する３次元座標算出手段；少なくとも１つの代表点について、基準画像中の当該代表点の座標とカメラ間のあらかじめ定められた関係とに基づき特定される比較画像中のエピポーラ線に対し、対応点検索手段の検索により特定された対応点のずれ量を算出するステップを、基準画像と比較画像との組み合わせ毎に実行するずれ量算出手段；基準画像と比較画像との組み合わせ毎に算出されたずれ量の中の最大値に基づき３次元計測結果の精度を表す評価値を設定するとともに、ずれ量が最小となった組み合わせにつき前記３次元座標算出手段により算出された３次元座標により計測対象物に対する３次元計測結果を特定し、前記評価値を特定された３次元計測結果とともに出力する出力手段；の各手段を具備する。
【００２１】
上記構成の装置によれば、前出の３次元計測方法を実行することができるので、３次元計測結果の精度が低下したことをユーザに気づかせて、速やかに対応することができる。
【００２４】
他の好ましい態様に係る３次元計測装置には、ずれ量算出手段により算出されたずれ量が所定の許容値を上回るものになったとき、警告のための報知を実行する報知手段が設けられる。この構成によれば、警告により、３次元計測の精度が許容できないものになったことをユーザに認識させることができるので、精度の悪い計測結果が使用されるのを防止することができる。
【発明の効果】
【００２５】
上記の３次元計測方法および３次元計測装置によれば、計測対象物に対する３次元計測結果の出力に合わせて、その３次元計測結果の精度を表す評価値が出力されるので、精度の低い３次元計測結果が使用されるのを防止することができる。
【発明を実施するための最良の形態】
【００２６】
図１は、この発明が適用された３次元計測装置の構成例を示す。
この３次元計測装置は、工場の生産ラインなどにおいて、同形状の計測対象物を順に処理対象領域に搬入し、２台または３台のカメラを用いた３次元計測を行うものである。
【００２７】
図中の１０は、コンピュータが組み込まれた制御処理部である。この制御処理部１０には、カメラＣ０，Ｃ１，Ｃ２、操作部１１、表示部１２などが接続される。なお、カメラＣ０，Ｃ１，Ｃ２のうち、３台目のカメラＣ２は必要に応じて接続すれば良いので、図１では、このカメラＣ２の枠を一点鎖線で示している。
【００２８】
制御処理部１０内には、各カメラＣ０，Ｃ１，Ｃ２に対応する画像入力部１００，１０１，１０２、画像メモリ１０３、設定処理部１０４、画像処理部１０５、パラメータ算出部１０６、パラメータ記憶部１０７、３次元計測部１０８、評価値算出部１０９、判定部１１０、出力部１１１、警報出力部１１２などが設けられる。これらのうち、画像入力部１００〜１０２、画像メモリ１０３およびパラメータ記憶部１０７を除く各部は、専用のプログラムによりコンピュータに設定された機能である。専用のプログラムは、ハードディスク、フラッシュディスクなどの大容量メモリ装置（図示せず。）に格納される。画像メモリ１０３やパラメータ記憶部１０７も、このメモリ装置内に設定される。
【００２９】
この実施例では、後記するように、カメラＣ０を光軸を鉛直方向に向けて配置し、計測対象物を真上から撮像させ、他のカメラＣ１，Ｃ２を、計測対象物を斜め上方向から撮像するように配置する。いずれのカメラも、その視野内に計測対象物が置かれる処理対象領域の全域が含まれるように、配置位置や光軸方向が調整される。そして、カメラＣ０を基準カメラとして、他のカメラＣ１，Ｃ２を基準カメラＣ０に個別に組み合わせ、組み合わせ毎に３次元計測を実行する。
【００３０】
画像処理部１０５は、基準カメラＣ０から入力された画像を対象に、２値化、エッジ抽出、パターンマッチング等の手法により、計測対象物の代表点（エッジ構成点、ある特徴を有する部位の重心など）を抽出する。また、その他のカメラＣ１，Ｃ２から入力された画像（以下、「比較画像」という。）を対象に、基準画像Ａ０中の代表点に対応する点を検索する処理を実行する。
【００３１】
設定処理部１０４は、操作部１１から、画像処理部１０５が実行すべき処理の具体的内容（たとえば代表点の抽出に用いられる方法、抽出処理の対象範囲）を設定する操作を受け付けて、その内容を画像処理部１０５に設定する。
【００３２】
３次元計測部１０８は、画像処理部１０５により抽出された基準画像Ａ０中の代表点の座標と、これに対応する比較画像Ａ１，Ａ２側の代表点の座標とを用いて３次元座標を算出する。算出結果は出力部１１１に渡され、表示部１２や図示しない外部装置に出力される。
【００３３】
パラメータ記憶部１０７には、３次元計測処理に用いられる複数のパラメータが保存される。これらのパラメータには、本処理に先立ち、複数の特徴点を有するキャリブレーションワークを用いたキャリブレーションにより特定されるもので、３次元座標の算出用の演算式の係数を構成するパラメータ、およびエピポーラ線を特定するためのパラメータが含まれる。
【００３４】
上記の各種パラメータは、各カメラにより構成されるステレオ座標系の変化や、実際の空間における位置を表す空間座標系とステレオ座標系との関係（各座標の原点間の距離、空間座標系に対するステレオ座標系の回転ずれ量など）の変化に応じて変動する。したがって、カメラの位置または姿勢が変化した場合には、再度、キャリブレーションを実行してパラメータを算出しなおさなければ、３次元計測の精度を確保することはできない。
また、この実施例では、カメラＣ１，Ｃ２をそれぞれ基準カメラＣ０に個別に組み合わせて３次元計測を行うので、これらの組み合わせ毎に、上記のパラメータを算出する必要がある。
【００３５】
図２は、カメラＣ０，Ｃ１を使用する場合の各カメラの設置例を示す。なお、この実施例では、計測対象物を顔型のマークＭに模して示す。
この実施例では、所定広さの処理対象領域に計測対象物を順に搬入して３次元計測を行うようにしている。基準カメラＣ０は、処理対象領域の真上に、光軸を鉛直方向に向けて設置されるので、計測対象物の上面を正面から見た状態を示す画像（正面視画像）を生成する。一方、比較画像を生成するカメラＣ１は、この処理対象領域を斜め上から撮像するように設置される。
【００３６】
図３は、上記のカメラＣ０により生成された基準画像Ａ０およびカメラＣ１により生成された比較画像Ａ１において、図２に示したマークＭの高さの変化が画像にどのように反映されるかを示したものである。なお、便宜上、各画像Ａ０，Ａ１中のマークもＭの符号により示す。
【００３７】
基準画像Ａ０は、マークＭの正面視画像であるため、画像中のマークＭの中心点Ｐ０を代表点とすると、実物の高さが変化しても、代表点Ｐ０の座標は一定になる。これに対し、カメラＣ１により生成される比較画像Ａ１では、実物のマークＭの高さが変化すると、画像中の代表点Ｐ１は、ある直線ＥＰに沿って移動する。この直線ＥＰが代表点のエピポーラ線である。
【００３８】
カメラＣ０，Ｃ１の位置や姿勢がキャリブレーション時と同様に維持されている場合には、基準画像Ａ０側の代表点Ｐ０の座標およびパラメータ記憶部１０７に保存されているパラメータに基づき、上記のエピポーラ線ＥＰを精度良く求めることができる。
カメラＣ１の位置または姿勢が変化し、ユーザがそれに気づかないまま撮像を行うと、実際のエピポーラ線は、図３に示したＥＰとは異なる直線になるが、保存されているパラメータでこの正しいエピポーラ線を特定することは不可能である。このため、図４に示すように、比較画像Ａ１中の代表点Ｐ１は、エピポーラ線ＥＰから位置ずれした状態になる。
【００３９】
また、カメラＣ０の位置または姿勢が変化した場合には、カメラＣ１は動いていないので、比較画像Ａ１中のマークＭは、図３の例と同様の直線ＥＰ上に現れる。しかし、カメラＣ０が動いたことにより、基準画像Ａ０側の代表点Ｐ０の位置が変わるため、その変更された座標により特定されるエピポーラ線は、図３に示すのとは異なるものになる。よって、この場合にも、比較画像Ａ１中の代表点Ｐ１は、基準画像Ａ０の代表点Ｐ０や登録されたパラメータにより特定されるエピポーラ線から位置ずれすることになる。
【００４０】
このように、カメラＣ０またはＣ１が動いて、カメラ間の関係が変動すると、比較画像Ａ１側の代表点Ｐ１は、基準画像Ａ０側の代表点Ｐ０や登録されたパラメータに基づき特定されるエピポーラ線ＥＰから離れた場所に現われるようになる。この点を考慮して、この実施例では、基準画像Ａ０中の代表点Ｐ０に対する対応点Ｐ１を検索する場合には、代表点Ｐ０の座標や各種パラメータから割り出される理論上のエピポーラ線ＥＰを基準に、このエピポーラ線ＥＰから所定距離ずれた範囲までを検索対象範囲とする。その一方で、評価値算出部１０９により３次元計測の精度の評価を表す評価値を算出する。この評価値は、３次元計測の精度が悪くなるほど数値が高くなるように設定されている。
【００４１】
上記の評価値は、出力部１１１により３次元計測結果とともに出力されるほか、判定部１１０に与えられる。
判定部１１０は、評価値を所定の許容値と比較し、許容値を上回る評価値が算出された場合には警報出力部１１２を作動する。警報出力部１１２は、ユーザーに、３次元計測結果の信頼度が著しく低下したことを示すメッセージ情報を作成し、これを表示部１２等に出力する（以下、この警報出力部１１２による処理を「警報出力」という。）。
【００４２】
なお、図１には明示していないが、制御処理部１０では、各計測対象物の３次元計測結果および評価値を、計測対象物の識別コードや処理を実行した日時等に対応づけたトレーサビリティ情報を作成し、内部メモリに蓄積する。よって、３次元計測の精度が低下したのに、ユーザが評価値の出力や警報出力を見過ごして計測処理を進めたとしても、後日、トレーサビリティ情報をチェックすることにより、処理結果に不備のある計測対象物を特定することができる。
【００４３】
以下、上記の構成における３次元計測処理および評価値の算出処理について、図５のフローチャートを用いて詳細に説明する。
この図５の例は、各計測対象物につきそれぞれ複数の計測対象部位の３次元計測を行う場合を想定しているが、１代表点しか計測しない場合もある。後記する図７，８の例も同様である。
【００４４】
まず最初のＳＴ１（ＳＴは「ステップ」の略である。以下も同じ。）では、計測対象物が処理対象領域に搬入されたのに応じてカメラＣ０，Ｃ１を同時駆動する。これにより、カメラＣ０により計測対象物を正面視した状態を示す基準画像Ａ０と、カメラＣ１により計測対象物を斜め上から見た状態を示す比較画像Ａ１とが生成され、画像メモリ１０３に格納される。
【００４５】
つぎのＳＴ２では、基準画像Ａ０を対象に、あらかじめ設定された画像処理によって、所定数の代表点を抽出する。以下、抽出された代表点に順に着目して、ＳＴ３〜９の処理を実行する。
【００４６】
ＳＴ３では、着目中の代表点について、基準画像Ａ０側の座標に基づき、比較画像Ａ１上でエピポーラ線を特定する。ＳＴ４では、上記のエピポーラ線が中心線となるような所定幅の帯状領域を設定し、これを対応点の検索範囲とする。
【００４７】
ＳＴ５では、上記の検索範囲において、着目中の代表点に対応する点を検索する処理を実行する。具体的に説明すると、基準画像Ａ０に、着目中の代表点を中心とする所定大きさの局所領域を設定し、この局所領域内の画像をモデル画像として切り出す。つぎに、このモデル画像を、比較画像Ａ１側の検査領域に走査しながら順次照合し、モデル画像に対する類似度が最も高い領域を特定する。そして、特定した領域の中心点の座標を検出し、この座標を着目中の代表点に対応する点の座標とする。
【００４８】
このようにして、着目中の代表点に対応する点が特定されると、ＳＴ６では、基準画像Ａ０側の代表点の座標と比較画像Ａ１側の対応点の座標とを用いて、これらの座標に対応する３次元座標を算出する。
【００４９】
ＳＴ７では、ＳＴ５の検索処理により特定された対応点（図３，４のＰ１がこれに相当する。）について、ＳＴ３で特定したエピポーラ線に対するずれ量ｄを算出する。このずれ量ｄは、図６に示すように、エピポーラ線ＥＰから代表点Ｐ１までの距離として求められる。
【００５０】
ＳＴ８では、算出されたずれ量ｄをあらかじめ定めた許容値Ｄと比較する。ここでずれ量ｄが許容値Ｄを上回った場合には、ＳＴ９に進み、警報を出力する。ずれ量ｄが許容値Ｄ以下であれば、ＳＴ９はスキップされる。またＳＴ８の判定結果に関わらず、毎時のずれ量ｄの値は、図示しない作業用メモリに一時保存される。
【００５１】
なお、上記の許容値Ｄはデフォルトで設定されているが、適宜、ユーザの設定操作により変更することもできる。
【００５２】
ＳＴ２で抽出されたすべての代表点について、上記ＳＴ３〜９に示した処理が実行されると、ＳＴ１０が「ＹＥＳ」となってＳＴ１１に進む。このＳＴ１１では、各代表点につき算出したずれ量ｄの中から最大値を抽出し、これを評価値Ｈに設定する。
さらにＳＴ１２では、毎時のＳＴ６で求めた各代表点の３次元座標と、ＳＴ１１で設定した評価値Ｈとを出力する。この出力は、前記したように、表示、外部出力、メモリへの保存の３つの態様で行われる。
【００５３】
上記の処理によれば、ユーザは、出力された評価値Ｈの大きさによって、３次元計測の精度が低下しているか否かを把握することができる。また、各代表点への対応点のエピポーラ線に対するずれ量ｄのうちの最大値が評価値Ｈとして出力されるので、３次元計測の精度を最もシビアに評価した結果を出力することができる。また、計測処理の途中で許容値Ｄを上回るずれ量ｄが算出された場合には、直ちに警報が出力されるので、カメラＣ０，Ｃ１のいずれかが大きく動いて３次元計測の精度が極端に低下した場合には、その旨を速やかにユーザに認識させることができる。
【００５４】
なお、上記の例では、複数の代表点につき算出したずれ量ｄのうちの最大値を評価値Ｈとして出力したが、出力の形式はこれに限らず、たとえば、各代表点のずれ量ｄの平均値や変動幅（最大値と最小値との差）を出力してもよい。または、代表点毎に算出されるずれ量ｄをそのまま評価値として、３次元座標に対応づけて出力してもよい。または、複数の代表点について３次元座標の算出を順次行う間に、特定の１代表点についてのみ、ずれ量ｄを求め、そのｄの値を評価値として出力してもよい。
【００５５】
上記の例では、カメラＣ０，Ｃ１の関係が変動すると、登録されているパラメータに基づくエピポーラ線が不正確なものとなり、その結果、比較画像Ａ１の対応点がエピポーラ線から離れる、という原理を利用することにより、３次元計測の精度を示す評価値を簡単に求めることができる。
【００５６】
一方、カメラＣ０，Ｃ１が両者間の相対的な関係を維持したまま同じように動いた場合（たとえば、カメラＣ０，Ｃ１が同じ距離だけ平行移動したり、同じ角度だけ回転した場合）には、エピポーラ線は、見かけ上、正常になる（言い換えれば、基準画像Ａ０の代表点の座標と登録されたパラメータに基づくエピポーラ線ＥＰ上で対応点を見つけることができる。）。ただし、この場合にも、ステレオ座標系と空間座標系との関係は狂っているので、各画像Ａ０，Ａ１中の代表点Ｐ０，Ｐ１の座標は、本来あるべき位置を示しておらず、正しい３次元座標を算出することは不可能である。
【００５７】
このように２台のカメラの位置または姿勢が同じように変化した場合にも、３次元計測の精度は低下するが、比較画像上の対応点がエピポーラ線上に位置しているため、対応点のずれ量ｄによる評価値Ｈでは、計測精度が低下したことを認識することはできない。
この問題を解決するために、つぎの図７の例では、制御処理部１０にカメラを３台接続し、斜め方向から撮像を行うカメラＣ１，Ｃ２を、それぞれ基準カメラＣ０と組み合わせ、組み合わせ毎に３次元座標や評価値を算出するようにしている。
【００５８】
図７では、まず、計測対象物が処理対象領域に搬入されたことに応じて３台のカメラＣ０，Ｃ１，Ｃ２を同時駆動し（ＳＴ２１）、カメラＣ０により生成された基準画像Ａ０を対象に代表点の抽出処理を実行する（ＳＴ２２）。
【００５９】
以下、各代表点に順に着目しつつ、カメラＣ１による比較画像Ａ１およびカメラＣ２による比較画像Ａ２を対象に、それぞれエピポーラ線の特定（ＳＴ２３ａ，２３ｂ）、エピポーラ線を基準にした検索範囲の設定（２４ａ，２４ｂ）、対応点の検索（２５ａ，２５ｂ）、３次元座標の算出（２６ａ，２６ｂ）、エピポーラ線に対する対応点のずれ量の算出（ＳＴ２７ａ，２７ｂ）の各処理を、並列して実行する。これらの処理は、図５のＳＴ３〜７と同様の内容のものであるので、詳細については説明を省略する。
【００６０】
このように、比較画像Ａ１，Ａ２について、それぞれ個別に３次元座標およびずれ量を算出する（便宜上、以下、比較画像Ａ１に対応するずれ量をｄ１とし、比較画像Ａ２に対応するずれ量をｄ２とする。）と、ＳＴ２８では、各ずれ量ｄ１，ｄ２の値を比較し、大きい方のずれ量を評価値ｈに設定する。その一方で、つぎのＳＴ２９では、カメラの組み合わせ毎に求めた３次元座標のうち、ずれ量が小さくなった方の組み合わせに対応する３次元座標を計測結果として確定する。
さらに評価値ｈが許容値Ｄを上回った場合には、ＳＴ３０からＳＴ３１に進み、警報を出力する。
【００６１】
すべての代表点について上記の処理が実行されると、ＳＴ３２が「ＹＥＳ」となってＳＴ３３に進み、代表点毎に、ＳＴ２９で確定された３次元座標およびＳＴ２８で設定された評価値ｈを組み合わせ、出力する。
【００６２】
たとえば、基準カメラＣ０とカメラＣ１とが、相対関係を維持したまま動いて、比較画像Ａ１上の対応点に大きなずれ量が生じなかったとしても、残りの正常に設置されているカメラＣ２による比較画像Ａ２においては、対応点がエピポーララインからずれる現象が生じる。
この実施例では、カメラＣ１，Ｃ２を基準カメラＣ０に個別に組み合わせ、組み合わせ毎に３次元座標および対応点のずれ量を算出し、大きい方のずれ量を評価値として採用するので、ユーザは、この評価値により、３次元計測の精度が低下したことを容易に把握することができる。
【００６３】
なお、３次元計測結果として、ずれ量の小さい方の３次元座標を採用したのは、基準カメラＣ０が動いたためにすべてのカメラの関係が狂ってしまう場合のほか、一方の組み合わせに係るカメラの関係は変化したが、他方の組み合わせに係るカメラの関係は正常である場合にも、２つのずれ量ｄ１，ｄ２の一方が小さく、他方が大きくなるような結果が得られるからである。この場合には、正常な関係に対応するずれ量の方が小さくなるので、ずれ量の小さい方の３次元座標を採用することにより、３次元計測の精度を維持することができる。
【００６４】
たとえば、カメラＣ０〜Ｃ２のうちカメラＣ１のみが動いた場合、カメラＣ０，Ｃ１の関係は変化するので、この組み合わせによる３次元計測の精度は低下し、ずれ量ｄ１も大きくなるが、カメラＣ０，Ｃ２は正しく配置されているから、この組み合わせによる３次元計測結果は正しく、ずれ量ｄ２の値も小さくなる。この場合に、図７の処理によれば、関係が狂ったカメラＣ０，Ｃ１の組み合わせによるずれ量ｄ１が評価値ｈとして出力される一方、カメラＣ０，Ｃ２の組み合わせによる正しい３次元座標が３次元計測結果として確定されて出力されるので、出力された３次元計測結果を使用しても、支障が生じることはない。
【００６５】
ただし、実際に、ずれ量ｄ１，ｄ２のうちの一方が０に近く、他方が大きな値をとった場合に、その現象のみで、ずれ量の小さな方の組み合わせに係るカメラが正しく配置されているのか否かを判別することはできない。上記の実施例では、常に、ずれ量ｄ１，ｄ２のうちの大きな方の値を評価値ｈとして採用し、この評価値ｈが許容値Ｄより大きくなった場合に警報を出力するので、ずれ量が小さかった方のカメラの配置が狂っている場合でも、その異常が見過ごされるのを防止することができる。
【００６６】
図８は、３台のカメラＣ０，Ｃ１，Ｃ２を使用して３次元計測を行う場合の他の例を示す。
この実施例でも、図７の例と同様に、カメラＣ１，Ｃ２をそれぞれ基準カメラＣ０に個別に組み合わせ、組み合わせ毎に３次元座標の算出処理を実行する。ただし、３次元計測の精度を評価する方法は、図７の実施例とは異なっている。
【００６７】
図８において、ＳＴ４１では、各カメラＣ０，Ｃ１，Ｃ２を同時駆動し、ＳＴ４２では、カメラＣ０による基準画像Ａ０上で代表点を抽出する。この２つの処理は図７のＳＴ２１，２２と全く同様である。
この後、各代表点に順に着目して、比較画像毎に、エピポーラ線の特定（ＳＴ４３ａ，４３ｂ）、検索範囲の設定（ＳＴ４４ａ，４４ｂ）、対応点の検索（ＳＴ４５ａ，４５ｂ）、３次元座標の算出（ＳＴ４６ａ，４６ｂ）の各処理を実行する。これらの処理も、図７の例と同様のものであるため、詳細な説明は省略する。
【００６８】
３次元座標の算出処理が終了すると、ＳＴ４７に進み、画像Ａ０，Ａ１の組につき求めた３次元座標と、画像Ａ０，Ａ２の組につき求めた３次元座標との距離Ｌを算出する。つぎのＳＴ４８では、この距離Ｌを所定の許容値ＬＸと比較する。
ここで、Ｌ＞ＬＸとなった場合には、ＳＴ５１に進み、警報出力を行った後、以後の計測を中止する。
【００６９】
いずれの代表点についても、上記の距離Ｌが許容値ＬＸ以内であれば、最終的にＳＴ４９が「ＹＥＳ」となってＳＴ５０に進み、距離Ｌのうちの最大値を評価値Ｈ１に設定する。そして、最後のＳＴ５１において、各代表点の３次元座標と上記の評価値Ｈ１を出力し、処理を終了する。
【００７０】
カメラＣ０，Ｃ１，Ｃ２の配置がいずれも正常であれば、カメラの組み合わせ別に求めた３次元座標は一致するはずである。図８の実施例は、この点に着目し、カメラの組み合わせ毎に求めた３次元座標の間に許容値ＬＸを上回る差異が生じた場合に処理を中止するようにしたので、精度の悪い計測結果が使用されるのを防止することができる。
【００７１】
なお、上記の各実施例では、各代表点の３次元座標をそのまま３次元計測結果として出力したが、出力方式はこれに限定されるものではない。たとえば、代表点として、計測対象物のエッジ構成点を抽出した場合には、各代表点の３次元座標を用いて、対象物の重心位置等を求め、これを３次元計測結果情報として出力してもよい。また検査目的で装置を使用する場合には、３次元座標やこれらを用いた演算の結果を所定の基準値と照合し、その照合結果を示す情報を出力してもよい。
【００７２】
また、各実施例では、３次元計測の精度を表す評価情報として数値情報Ｈ，ｈ，Ｈ１を出力したが、これらに代えて、複数段階のレベルにより計測精度を表現するようにしてもよい。この場合、最終的に設定された評価値、または計測毎に算出された評価値に基づき、計測精度を示すレベルが決定されることになる。
【図面の簡単な説明】
【００７３】
【図１】３次元計測装置の構成を示す機能ブロック図である。
【図２】２台のカメラの設置例を示す説明図である。
【図３】図２の各カメラによる画像Ａ０，Ａ１において、マークＭの高さ変化がどのように反映されるかを示す説明図である。
【図４】比較画像Ａ１において、マークＭがエピポーラ線から離れた例を示す説明図である。
【図５】３次元計測処理の一例を示すフローチャートである。
【図６】ずれ量の概念を示す説明図である。
【図７】３次元計測処理の他の例を示すフローチャートである。
【図８】３次元計測処理の他の例を示すフローチャートである。
【符号の説明】
【００７４】
Ｃ０，Ｃ１，Ｃ２  カメラ
１０    制御処理部
１０５  画像処理部
１０７  パラメータ記憶部
１０８  ３次元計測部
１０９  評価値算出部
１１０  判定部
１１１  出力部
１１２  警報出力部
【図１】
0004442661.tif 000002
【図２】
0004442661.tif 000003
【図３】
0004442661.tif 000004
【図４】
0004442661.tif 000005
【図５】
0004442661.tif 000006
【図６】
0004442661.tif 000007
【図７】
0004442661.tif 000008
【図８】
0004442661.tif 000009