(57)【要約】【課題】  各カメラを計測目的に応じた状態に設定したり、そのような設定になっているかどうかを確認する処理を、簡単に実施できるようにする。【解決手段】  ３次元計測のためのキャリブレーションが終了した後、計測したい高さの範囲の指定を受け付け、各カメラからの画像Ａ０，Ａ１毎に、前記指定された範囲に対応するホモグラフィー行列を用いて、指定された高さ範囲にある点のうち、双方のカメラの視野に含まれる点が現れる範囲を抽出する。さらに、抽出した範囲を計測可能範囲として、画像Ａ０，Ａ１上に着色表示する。【選択図】  図４
2006349586.tif 000002
【特許請求の範囲】
【請求項１】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する方法において、
計測すべき高さの範囲について指定を受け付ける第１ステップと、
少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いてカメラ毎に抽出する第２ステップと、
前記第２ステップの処理対象のカメラにより生成された画像を前記第２ステップで抽出された範囲とともに表示する第３ステップとを、実行することを特徴とする３次元計測方法。
【請求項２】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する方法において、
計測すべき高さの範囲、および計測対象物の支持面における計測対象範囲について、それぞれ指定を受け付ける第１ステップと、
少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する第２ステップと、
前記第２ステップの処理対象のカメラについて、その画像上の前記計測対象範囲が前記第２ステップで抽出された範囲に含まれるか否かを判別する第３ステップと、
前記第３ステップの判別結果を出力する第４ステップとを、実行することを特徴とする３次元計測方法。
【請求項３】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する方法において、
計測すべき高さの範囲について指定を受け付ける第１ステップと、
少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する第２ステップと、
前記第２ステップの処理対象のカメラからの画像を表示するとともに、その表示画面上の前記第２ステップで抽出された範囲に対応する領域において、計測対象範囲の指定を受け付ける第３ステップとを、実行することを特徴とする３次元計測方法。
【請求項４】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する方法において、
計測対象物の支持面における計測対象範囲について指定を受け付ける第１ステップと、
前記計測対象範囲に属する点のうち、すべてのカメラの視野に含まれる点の高さの範囲を、各カメラ間におけるカメラ座標系の関係を用いて求める第２ステップと、
前記第２ステップで求められた高さの範囲を出力する第３ステップとを、実行することを特徴とする３次元計測方法。
【請求項５】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する装置において、
計測すべき高さの範囲を入力する入力手段と、
前記複数台のカメラの少なくとも１台について、前記入力手段により入力された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する範囲抽出手段と、
前記範囲抽出手段の処理対象のカメラにより生成された画像を前記範囲抽出手段により抽出された範囲とともに表した表示用画像を生成する表示用画像生成手段と、
前記表示用画像を出力する画像出力手段とを具備する３次元計測処理装置。
【請求項６】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する装置において、
計測すべき高さの範囲を入力する入力手段と、
前記複数台のカメラのいずれか１台からの画像を表示するとともに、この表示画面上で計測対象範囲の指定操作を受け付ける範囲指定受付手段と、
前記範囲指定の対象とされたカメラについて、前記入力手段が入力した高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する範囲抽出手段と、
前記範囲抽出手段により抽出された範囲に前記指定された計測対象範囲が含まれるか否かを判別する判別手段と、
前記判別手段による判別結果を出力する出力手段とを、具備する３次元計測装置。
【請求項７】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する装置において、
計測すべき高さの範囲を入力する入力手段と、
前記複数台のカメラのいずれか１台について、前記入力手段が入力した高さの範囲にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する範囲抽出手段と、
前記範囲抽出手段の処理対象のカメラからの画像を表示し、その画像上の前記範囲抽出手段により抽出された範囲内において、計測範囲の指定を受け付ける範囲指定受付手段とを、具備する３次元計測装置。
【請求項８】
複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する装置において、
前記複数台のカメラのいずれか１台からの画像を表示するとともに、この表示画面上での計測対象範囲の指定操作を受け付ける範囲指定受付手段と、
前記計測対象範囲が指定されたことに応じて、空間内でこの計測対象範囲に属する点のうちすべてのカメラの視野に含まれる点の高さの範囲を、各カメラ間におけるカメラ座標系の関係を用いて求める高さ範囲抽出手段と、
前記高さ範囲抽出手段により求められた高さの範囲を出力する出力手段とを、具備する３次元計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数台のカメラにより生成された画像を用いて、前記カメラの視野が重なる範囲に対して３次元計測処理を実行する方法、およびこの方法を実行するための３次元計測装置に関する。
【背景技術】
【０００２】
両眼視の原理に基づく三次元計測処理では、２台以上のカメラにより計測対象物を異なる方向から撮像し、生成された画像間において同一の像を表す特徴点どおしを対応づける。そして各画像から抽出した特徴点の座標を、三角測量の原理に基づく演算式に代入することにより、三次元座標を算出する（特許文献１参照。）。
【０００３】
【特許文献１】特開２００２−９９９０２  公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に示すような計測処理を行うには、計測対象の各点がすべてのカメラの視野に含まれていなければならない。したがって、３次元計測の精度を確保するには、計測対象物が含まれる範囲や計測対象物が取り得る高さの範囲に基づいて、各カメラの位置関係を調整する必要がある。
【０００５】
しかしながら、各カメラの視野が重なり合う範囲や高さを認識するのは大変困難である。特に、３次元計測に関する専門知識に乏しいユーザーが装置を使用する場合には、どのようにカメラを調整すれば計測に適した状態になるか分からずに、試行錯誤で調整を行うため、調整作業に多大な労力や時間がかかる可能性がある。
【０００６】
この発明は上記問題点に着目してなされたもので、各カメラを計測目的に応じた状態に設定したり、そのような設定になっているかどうかを確認する処理を簡単に実行できるようにすることを目的とする。  
【課題を解決するための手段】
【０００７】
所定の高さ位置にある平面を複数台のカメラにより撮像すると仮定した場合、生成された画像間において対応する画素の座標の関係は、ホモグラフィーと呼ばれる行列を用いた式により表される（下記の「非特許文献１」参照。）。
【０００８】
【非特許文献１】見市  伸裕，和田  俊和，松山  隆司  「プロジェクタ・カメラシステムのキャリブレーションに関する研究」、［平成１７年６月１日検索］、インターネット＜ＵＲＬ：http://vision.kuee.kyoto-u.ac.jp/Research/Thesis/Thesis_PDF/Miichi_2002_P_147.pdf＞
【０００９】
したがって、カメラ間におけるカメラ座標系の関係（原点間の距離、座標軸の回転ずれなど）が判明すれば、空間内の所定の高さ位置にある一点が１台のカメラの撮像面に結像している場合には、この結像位置の座標を前記点の高さに応じたホモグラフィー行列を用いた関係式に代入することにより、前記座標を他のカメラの撮像面上の座標に変換することができる。この変換後の座標がカメラの実際の撮像面の範囲に含まれるならば、前記空間内の一点は、すべてのカメラの視野に含まれる点であり、３次元計測が可能な点であると考えることができる。
【００１０】
ここで説明を簡単にするために、カメラをＡ，Ｂの２台とし、特定の高さを有し、面積が無限大の仮想平面を計測対象とする。この場合、いずれのカメラについても、その撮像面を構成する全ての画素に、それぞれ前記仮想平面上の任意の位置にある点が結像すると考えることができる。したがって、一方のカメラＡの画像を構成する全画素について、それぞれ前記仮想平面の高さに応じたホモグラフィー行列を用いてカメラＢ側の画像の対応点の座標を求めた場合、これらの座標のうち、カメラＢの実際の画像の範囲に含まれる座標が、カメラＡ，Ｂの視野に共に含まれる点に対応すると考えることができる。言い換えれば、前記対応点の座標の集合は、前記仮想平面上の３次元座標の算出が可能な範囲を示すと考えることができる。
以下では、この画像上に現れる３次元計測が可能な範囲を「計測可能範囲」という。
【００１１】
なお、カメラの撮像面は長方形状であるので、上記のように画像上の全画素について対応点を求めなくとも、画像の各頂点にあたる４点について対応点の座標を求め、これらの対応点を結んだ矩形領域を前記計測可能範囲とすることができる。さらに、カメラＡの撮像面についても、同様に、カメラＢの全画素に対応する領域を抽出し、これを計測可能範囲とすることができる。
【００１２】
また前記仮想平面の高さが所定の範囲で変化する場合には、その高さの変化に応じてホモグラフィー行列も変わり、計測可能範囲も変動する。この場合、高さの変化の幅内にある点を確実に計測するには、その高さ範囲中の各高さに対応する全ての計測可能範囲が含まれる範囲、すなわちすべての計測可能範囲が重なり合う範囲を計測対象に限定する必要がある。
【００１３】
この発明は、上記の考察にもとづいてなされたもので、複数台のカメラにより生成された画像を用いて、前記各カメラの視野が重なる範囲に対して３次元計測処理を実行する方法および装置において、ユーザーが計測可能な範囲（計測対象物の支持面上の範囲、または高さ範囲）を簡単に認識できるようにしたものである。
なお、この明細書において、計測対象物の「支持面」は水平面のみに限らず、面の方向が水平以外の方向を向くものを含むものとする。また「高さ」については、「支持面からの距離」と言い換えることもできる。
【００１４】
まず、この発明にかかる第１の３次元計測方法では、計測すべき高さの範囲について指定を受け付ける第１ステップ；少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いてカメラ毎に抽出する第２ステップ；前記第２ステップの処理対象のカメラにより生成された画像を前記第２ステップで抽出された範囲とともに表示する第３ステップ；の各ステップを実行する。
【００１５】
上記において、第１ステップでは、ユーザーに、高さの上限値および下限値について任意の値を指定させることができる。
第２ステップでは、先に説明した方法により、各カメラの画像毎に、前記高さ範囲の上限値および下限値にかかる計測可能範囲を求め、これらの範囲が重なる部分を、前記高さの範囲にあり、かつすべてのカメラの視野に含まれる点が現れる範囲（前記高さ範囲に対応する計測可能範囲）とすることができる。
【００１６】
第３ステップでは、たとえば、前記第２ステップの処理対象のカメラで生成された画像に第２ステップで抽出された範囲の境界線を加えたものを表示することができる。または、前記範囲内の画像を所定の色彩に着色するなど、範囲の内外で表示の態様が異なる画像を表示してもよい。また前記範囲内に含まれる画像のみを表示するようにしてもよい。
【００１７】
上記の方法によれば、ユーザーが計測したいと考える高さ範囲を指定することにより、少なくとも１台のカメラについて、そのカメラの視野と計測可能範囲との関係を示す画像が表示されるから、ユーザーは、指定した範囲内の高さを計測可能な範囲を容易に認識することができ、各カメラが計測目的に適した設定になっているかどうかを判断することができる。
【００１８】
この発明にかかる第２の３次元計測方法では、計測すべき高さの範囲、および計測対象物の支持面における計測対象範囲について、それぞれ指定を受け付ける第１ステップ；少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する第２ステップ；前記第２ステップの処理対象のカメラについて、その画像上の前記計測対象範囲が前記第２ステップで抽出された範囲に含まれるか否かを判別する第３ステップ；前記第３ステップの判別結果を出力する第４ステップ；の各ステップを実行する。
【００１９】
第１ステップでは、計測対象物の大きさや計測対象物の取り得る位置に応じて、任意の計測対象範囲を指定することができる。この指定は、後記するように、いずれか１つのカメラからの画像の表示画面上で行われるのが望ましいが、これに限定されるものではない。たとえば、対象物の支持面上に計測対象範囲の輪郭線をマーキングし、これを複数台のカメラのうちの少なくとも１台により撮像し、生成された画像から前記輪郭線を抽出することにより、計測対象範囲を認識することができる。または、計測対象範囲の各頂点の具体的な３次元座標を入力する方法により、計測対象範囲を指定することもできる。
【００２０】
上記第２の方法によれば、ユーザーが高さ範囲とともに計測対象範囲を指定すると、第２ステップにより前記第１の方法と同様の原理で高さ範囲に応じた計測可能範囲が抽出される。さらに第３ステップにおいて、前記指定された計測対象範囲が計測可能範囲に含まれるか否かが判別される。
【００２１】
第４ステップでは、この判別結果をカメラからの画像とともに表示することができる。また、計測対象範囲が計測可能範囲からはみ出す場合には、その計測対象範囲で指定された高さ範囲内の対象物であっても、その高さを計測できない場合があるので、警告メッセージを表示したり、警告音を鳴らすなど、ユーザーに範囲指定が不適切であることを知らせる出力を行うのが望ましい。
【００２２】
この発明にかかる第３の３次元計測方法では、計測すべき高さの範囲について指定を受け付ける第１ステップ；少なくとも１台のカメラについて、前記第１ステップで指定された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する第２ステップ；前記第２ステップの処理対象のカメラからの画像を表示するとともに、その表示画面上の前記第２ステップで抽出された範囲に対応する領域において、計測対象範囲の指定を受け付ける第３ステップ；の各ステップを実行する。
【００２３】
上記の方法では、ユーザーは計測したい高さ範囲を指定した後、いずれか１つのカメラからの画像の表示画面上で計測対象範囲を指定する操作を行うことになる。上記第３ステップによれば、計測対象範囲として指定可能な範囲が、先に指定された高さ範囲にある点を確実に計測できる範囲に限定されるため、計測が不可能になるような範囲が指定されることがなく、計測精度を確保することができる。
なお、たとえば計測対象範囲について、左上および右下の各頂点を指定する場合であれば、第３ステップでは、計測可能範囲の外側にカーソルが移動しないように、カーソルの設定範囲を制限することができる。また、計測可能範囲の画像のみを表示し、この表示された範囲に限って指定操作を受け付けるようにしてもよい。
【００２４】
この発明にかかる第４の３次元計測方法では、計測対象物の支持面における計測対象範囲について指定を受け付ける第１ステップ；前記計測対象範囲に属する点のうちすべてのカメラの視野に含まれる点の高さの範囲を、各カメラ間におけるカメラ座標系の関係を用いて求める第２ステップ；前記第２ステップで求められた高さの範囲を出力する第３ステップ；の各ステップを実行する。
【００２５】
上記において、第２ステップでは、前記した仮想平面の高さを所定の単位ずつ動かしながら、各高さ毎に、その高さに対応する計測可能範囲を抽出することにより、第１ステップで指定された計測範囲を含むことが可能な計測可能範囲に対応する高さを求めることができる。よって、これらの高さの集合から高さ範囲を求めることができる。
【００２６】
第４の方法によれば、ユーザーが必要と考える計測対象範囲を指定することにより、その範囲内に属する種々の高さの点のうち、すべてのカメラの視野に含まれる点、すなわち３次元計測が可能な点の高さの範囲をユーザーに報知することができる。
【００２７】
上記した第１〜４の方法は、目的とする計測に先立ち、その計測が正しく行えるようにカメラを設定したり、そのような設定状態にあるかどうかを確認する目的で実施できる。また３次元計測を用いた検査において、不良品でないのに不良判定が出た場合に、３次元計測が正しく実行されたかどうかを確認する目的で実施することもできる。
【００２８】
前記第１の３次元計測処理方法を実行する装置は、計測すべき高さの範囲を入力する入力手段；前記複数台のカメラの少なくとも１台について、前記入力手段により入力された高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いてカメラ毎に抽出する範囲抽出手段；前記範囲抽出手段の処理対象のカメラにより生成された画像を前記範囲抽出手段により抽出された範囲とともに表した表示用画像を生成する表示用画像生成手段；前記表示用画像を出力する画像出力手段の各手段を具備する。
【００２９】
上記において、入力手段は、マウス、コンソール、キーボードなどにより構成することができる。範囲抽出手段や表示用画像生成手段は、それぞれ当該手段の処理にかかるプログラムが格納されたコンピュータにより構成することができる。画像出力手段は、画像表示用のモニタ装置に対するインターフェース回路として構成することができる。
【００３０】
前記第２の３次元計測処理方法を実行する装置は、計測すべき高さの範囲を入力する入力手段；前記複数台のカメラのいずれか１台からの画像を表示するとともに、この表示画面上で計測対象範囲の指定操作を受け付ける範囲指定受付手段；前記範囲指定の対象とされたカメラについて、前記入力手段が入力した高さの範囲内にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する範囲抽出手段；前記範囲抽出手段により抽出された範囲に前記指定された計測対象範囲が含まれるか否かを判別する判別手段；前記判別手段による判別結果を出力する出力手段の各手段を具備する。
【００３１】
入力手段は、第１の装置と同様のものである。その他の手段は、それぞれ当該手段の処理にかかるプログラムが格納されたコンピュータにより構成することができるが、出力手段には、モニタまたは外部機器に対するインターフェース回路を含めるのが望ましい。
【００３２】
範囲指定受付手段は、所定のカメラからの画像をモニタ装置に表示し、その表示画像上に範囲指定用のカーソルなどをオーバーラップ表示して指定操作を受け付けるマン・マシン・インターフェースとして構成することができる。
前記範囲抽出手段は、基本的に第１の装置と同様のものであるが、少なくとも前記範囲指定の対象とされたカメラの画像に対して抽出処理を実行すれば良い。
出力手段は、前記範囲指定時と同じ画像の表示画面上に、前記範囲指定が適切であったか否かを示す情報を表示する手段として、構成することができる。またこれに加えて、範囲指定が適切でないときに、警告音等を出力するように構成することもできる。
【００３３】
前記第３の３次元計測方法を実行するための装置は、前記第１、第２の装置と同様の入力手段；前記複数台のカメラのいずれか１台について、前記入力手段が入力した高さの範囲にあり、かつすべてのカメラの視野に含まれる点が画像上に現れる範囲を、各カメラ間におけるカメラ座標系の関係を用いて抽出する範囲抽出手段；前記範囲抽出手段の処理対象のカメラからの画像を表示し、その画像上の前記範囲抽出手段により抽出された範囲内において、計測範囲の指定を受け付ける範囲指定受付手段の各手段を具備する。
【００３４】
さらに、第４の３次元計測方法を実行するための装置は、前記複数台のカメラのいずれか１台からの画像を表示するとともに、この表示画面上での計測対象範囲の指定操作を受け付ける範囲指定受付手段；前記計測対象範囲が指定されたことに応じて、空間内でこの計測対象範囲に属する点のうちすべてのカメラの視野に含まれる点の高さの範囲を、各カメラ間におけるカメラ座標系の関係を用いて求める高さ範囲抽出手段；前記高さ範囲抽出手段により求められた高さの範囲を出力する出力手段の各手段を具備する。
【００３５】
第３、第４の装置の範囲指定受付手段、範囲抽出手段は、第２の装置と同様に構成することができる。ただし第３の装置では、範囲抽出手段による抽出結果に応じて、範囲指定可能な領域が制限される。また、第４の装置の出力手段は、前記高さの範囲を表示する手段として構成されるのが望ましい（たとえば、表示用の情報を生成してモニタの表示動作を制御するコンピュータおよび表示用インターフェースにより構成される。）。この場合の表示は、単なる数値表示に限らず、たとえば、計測対象物の支持面を基準に見た高さの範囲をグラフィック表示してもよい。
【００３６】
さらに、上記第２〜４の３次元計測装置では、前記計測対象領域の指定対象となるカメラを、計測対象物の支持面に対し、光軸を直交させた状態で設置した構成にすることができる。このような構成によれば、計測対象物やその支持面を正面から捉えた画像を生成することができるから、実際の支持面上で範囲を指定するのと同様の間隔で計測対象範囲を指定することができる。
【００３７】
さらに、この発明にかかる３次元計測装置には、計測処理結果を外部に出力（表示も含む。）するための手段を設けることができる。またこの装置を検査目的で使用する場合には、計測処理結果を所定のしきい値と比較する手段や、その比較結果に基づきＯＫ（良判定信号）またはＮＧ（不良判定信号）を出力する手段などを設けることができる。
【発明の効果】
【００３８】
この発明によれば、ユーザーは計測したいと考える範囲内にある各点を確実に計測できるかどうかを簡単に確認することが可能になるから、３次元計測に関する知識に乏しいユーザーでも、カメラの設定や調整を簡単に行うことが可能になる。また計測処理中にも、支持面上の計測可能範囲や計測可能な高さ範囲をユーザーに知らせることができるから、目的とする３次元計測を正しく実行できるような条件が設定されているかどうかを、簡単に把握することができる。
【発明を実施するための最良の形態】
【００３９】
図１は、この発明が適用された検査装置の撮像部の構成を、その設置例とともに示す。
この実施例の検査装置は、３次元および２次元の双方の計測処理機能を有するもので、工場の検査ラインＬを搬送される検査対象物Ｗ（以下、「ワークＷ」という。）を、撮像部１により順に撮像して、種々の検査目的に応じた計測処理や判別処理を実行する。
前記撮像部１は、所定大きさの筐体１５内に２台のカメラＣ０，Ｃ１を組み込んだ構成のもので、前記検査ラインＬの上方に設置される。一方のカメラＣ０は、その光軸を鉛直方向に向けた状態で設置される。他方のカメラＣ１は、前記カメラＣ０と視野が重なるようにして、光軸を傾斜させた状態で設置される。このような設定により、カメラＣ０では、前記ワークＷの上面を正面から見た状態を示す画像（以下、このカメラＣ０側の画像を「正面視画像」という。）が生成される。他方のカメラＣ１では、斜めに傾いた状態のワークＷの画像（以下、「斜め画像」という。）が生成される。
【００４０】
図２は、前記検査装置の全体構成を示すブロック図である。この検査装置は、前記した撮像部１のほか、本体部２、モニタ３、コンソール４などにより構成される。本体部２には、各カメラＣ０，Ｃ１に対する画像入力部１０，１１、カメラ駆動部１２、演算処理部２０、出力部２８などが設けられる。
【００４１】
前記カメラ駆動部１２は、図示しないワーク検出用のセンサからの検知信号を受けて各カメラＣ０，Ｃ１を同時に駆動する。各カメラＣ０，Ｃ１により生成された画像信号は、それぞれの画像入力部１０，１１に入力され、ディジタル変換される。これにより、カメラ毎に計測処理用のディジタル画像（前記した正面視画像および斜め画像）が生成される。
【００４２】
前記演算処理部２０は、コンピュータにより構成されるもので、前記カメラ毎の画像を用いた計測処理を実行した後、その処理結果から前記ワークＷの適否を判定する。出力部２８は、前記計測処理や判定処理の結果を、ＰＬＣなどの外部機器に出力するための出力用インターフェースである。
【００４３】
演算処理部２０には、前記画像Ａ０，Ａ１を格納するための画像メモリ２１のほか、画像処理部２２、計測処理部２３、判定部２４、表示制御部２５、パラメータ算出部２６、パラメータ記憶部２７などが設けられる。なお、画像メモリ２１およびパラメータ記憶部２７以外の各部は、専用のプログラムにより前記コンピュータに設定された機能である。画像メモリ２１やパラメータ記憶部２７は、前記コンピュータのメモリ（ＲＡＭなど）に設定される。
なお、図２には示していないが、演算処理部２０には、検査に必要な情報（検査領域の設定条件やモデルの画像など）を登録するためのメモリも設けられる（以下、このメモリを「登録用メモリ」という。）。この登録用メモリへの登録処理や、演算処理部２０の各処理部が実行する処理の設定または変更は、適宜、コンソール４の操作に応じて行うことができる。
【００４４】
画像処理部２２では、前記ワークＷの検査対象部位について、前記正面視画像から計測対象の点を抽出した後、斜め画像において、この点に対応する点を検索する。計測処理部２３は、前記画像処理部２２により抽出された名点の座標を用いた演算により、これらの点に対応する３次元座標を算出する。
判定部２４は、前記計測処理部２３により求められた３次元座標を所定の基準位置の座標と比較するなどして、ワークＷの良否を判定する。この判定結果は出力部２８および表示制御部２５に出力される。
【００４５】
前記表示制御部２５は、前記モニタ３の表示動作を制御するためのもので、前記画像入力部１０，１１で生成された正面視画像や斜め画像を一画面内に並列表示させることができる。さらに、適宜、画像処理部２２、計測処理部２３、判定部２４の処理結果を受け取って、前記画像とともに表示させることができる。
【００４６】
パラメータ記憶部２７には、３次元計測のための演算式に含まれる各種係数が保存される。これらの係数の値は、各カメラにより構成されるステレオ座標系と実際の空間における位置を表す空間座標系との関係（各座標間の原点間の距離、空間座標系に対するステレオ座標系の回転ずれ量など）に応じて変動する（以下、これらの係数を「パラメータ」という。）。これらのパラメータは、検査に先立ち、画像処理部２２およびパラメータ算出部２６により算出され、前記パラメータ記憶部２７に格納される。また、このパラメータ記憶部２７には、後記する演算式（１）のホモグラフィー行列を構成するパラメータも保存される。
なお、前記パラメータを算出する処理では、複数の特徴点を有するキャリブレーション用ワークが使用される。
【００４７】
さらにこの実施例の検査装置には、前記キャリブレーションを実行した後に、３次元計測を実行可能な範囲（計測可能範囲）が適切であるかどうかを、画面上で確認できるようにしている。この処理は、前記パラメータ記憶部２７に設定されたパラメータから組み立てたホモグラフィー行列と、画像処理部２２、計測処理部２３、および表示制御部２５の機能を用いて行われるものである。
【００４８】
図３は、各カメラＣ０，Ｃ１により前記キャリブレーション用ワークが撮像されている際のモニタ３の画面を示す。この実施例の画面は垂直方向が３分割されており、中央の領域３０には、各カメラＣ０，Ｃ１からの画像が表示され、上下の領域３１，３２には種々のメッセージや設定値の入力状態などが表示される。さらに画像の表示領域３０は左右に分割され、左側にカメラＣ０からの正面視画像Ａ０が、右側にカメラＣ１からの斜め画像Ａ１が、それぞれ表示される。
【００４９】
この実施例のキャリブレーション用ワークには、水平および垂直の各方向にそれぞれ複数の直線を等間隔に配置したパターン（格子状パターン）が形成されている。またキャリブレーション用ワークの位置決めを容易にし、かつワーク上の各特徴点（格子状パターンの交点）の位置関係を特定するために、各方向の中央の直線を他の直線より太くしている。
前記領域３０の画像Ａ０，Ａ１間には、カメラＣ０，Ｃ１間のカメラ座標系の関係に伴う視差が現れている。また、斜め画像Ａ１上の各直線は、水平、垂直方向に対して若干斜めになっている。
【００５０】
この実施例では、ユーザーに計測したい高さ範囲（以下、「高さ計測範囲」という。）を指定させることによって、その高さ計測範囲内にあり、かつカメラＣ０，Ｃ１の双方の視野に含まれる点が各カメラの画像上に現れる範囲（前記高さ計測範囲に対応する計測可能範囲）を求め、その計測可能範囲を反映した画像Ａ０，Ａ１を表示するようにしている。図４は、この表示例を示す。なお、この例における高さは、所定の高さ位置を０として基準に表されるもので、単位はmmである。
【００５１】
図４において、（１）は、高さ計測範囲を０〜２０mmにしたときの表示例を、（２）は、高さ計測範囲を−２０〜４０mmにしたときの表示例を、（３）は、高さ計測範囲を９〜１０mmにしたときの表示例を、それぞれ示す。いずれの例でも、高さ計測範囲に対応する画像Ａ０，Ａ１上の計測可能範囲が所定の色彩により着色されている（図４では、色彩部分を所定のパターンによる塗りつぶしにより示している。）。よって、ユーザーは、ワークＷが含まれ得る範囲が着色されているか否かによって、このワークＷに対する３次元計測を正しく実行できる設定になっているかどうかを判別することができる。
【００５２】
さらに、図４の例の画面の一番下の情報表示領域３２には、現在設定されている高さ計測範囲や、この範囲を変更するための操作に関する情報（上下の矢印）などが表示されている。この状態下でコンソールの上下矢印キー（図示せず。）を操作することにより、高さ計測範囲を変更することができる。よって、ユーザーは、表示された計測可能範囲が適切でない場合でも、高さ計測範囲を変更することにより、計測可能範囲が適正になるように調整することができる。
【００５３】
つぎに、前記計測可能範囲を求める方法について、説明する。
図５は、空間内の任意の高さ位置にある平面Ｄ上の一点Ｐが前記カメラＣ０，Ｃ１の撮像面Ｆ０，Ｆ１上の点ｐ０，ｐ１にそれぞれ結像した状態を示している。なお、図５において、Ｘ，Ｙ，Ｚは３次元空間を表す座標軸であり、Ｄは、ＸＹ平面に並行である。また撮像面Ｆ０には、ｘ０，ｙ０の軸による２次元座標系が、撮像面Ｆ１には、ｘ１，ｙ１の軸による２次元座標系が、それぞれ設定されている。これらの撮像面Ｆ０，Ｆ１の各受光セルからの信号により前記画像Ａ０，Ａ１が生成されることになる。
【００５４】
上記において、撮像面Ｆ０における点Ｐの結像位置（点ｐ０）の座標を（ｘｃａｍ０，ｙｃａｍ０）、撮像面Ｆ１における点Ｐの結像位置（点ｐ１）の座標を（ｘｃａｍ１，ｙｃａｍ１）とする。ここで、前記平面Ｄの高さＺがＺＡからＺＢ（ＺＡ＜ＺＢ）まで変化するものとすると、前記点ｐ０，ｐ１間の関係を、つぎの（１）（２）式で表すことができる。なお、（１）（２）式中のｄＨは、（３）式により求められる。
【００５５】
【数１】
2006349586.tif 000003
【００５６】
【数２】
2006349586.tif 000004
【００５７】
【数３】
2006349586.tif 000005
【００５８】
（１）〜（３）式において、ＨＺＡは前記高さＺＡに対応するホモグラフィー行列であり、ＨＺＢは高さＺＢに対するホモグラフィー行列である。これらの行列ＨＺＡ，ＨＺＢのサイズは、いずれも３×３である。また、λ，λ´は、所定の定数である。
【００５９】
上記の（１）式は、画像Ａ１の点ｐ１の座標から画像Ａ０上の対応点ｐ０の座標を求める場合に使用することができる。また（２）式は、画像Ａ０上の点ｐ０の座標から画像Ａ１上の対応点ｐ１の座標を求める場合に使用することができる。これらの式のＺに任意の高さを代入することにより、その高さにある点について、画像Ａ０，Ａ１間の対応点を検出することができる。
【００６０】
この実施例では、任意の範囲で高さ計測範囲の指定を受け付け、［課題を解決するための手段］で説明した原理に基づき、前記高さ計測範囲に対応する計測可能範囲を抽出するようにしている。
なお、この計測可能範囲の抽出には、各画像Ａ０，Ａ１の４頂点の座標が使用されるが、これらの画像はサイズが同一であるので、各画像の４頂点の座標は同一になる。たとえば、水平方向の画素数が５１２、垂直方向の画素数が４８４であれば、各頂点の座標は、（０，０）（５１１，０）（５１１，４８３）（０，４８３）となる。
【００６１】
図６は、前記計測可能範囲の抽出方法を具体的に示す。
この例では、高さ計測範囲の下限値をＺＬ、上限値をＺＵとして、Ｚ＝ＺＬのとき、およびＺ＝ＺＵのときについて、それぞれ前記画像の４頂点の座標を（ｘｃａｍ１，ｙｃａｍ１）として（１）式を実行し、高さＺＬ，ＺＵ毎の（ｘｃａｍ０，ｙｃａｍ０）として４点を得て、これらを頂点とする領域５Ｌ，５Ｕを前記画像Ａ０上に設定する（すなわち、Ｚ＝ＺＬとして（１）式を実行して得られた４点を結んだものが領域５Ｌであり、Ｚ＝ＺＵとして（１）式を実行して得られた４点を結んだものが領域５Ｕである。）。そして、画像Ａ０の座標の範囲において領域５Ｌ、５Ｕが重なり合う部分５０を、前記高さ計測範囲に対応する計測可能範囲として抽出している。
【００６２】
上記抽出処理の根拠を簡単に説明する。いずれの画像Ａ０，Ａ１においても、高さＺＬ，ＺＵにある点は画像上の任意の位置に現れ得るから、それぞれの高さに応じたホモグラフィー行列を用いて画像Ａ１の全範囲を画像Ａ０に変換した場合、その変換後の領域５Ｌは、高さＺＬにある点のうちカメラＣ１の視野に含まれる点に対応すると考えられる。同様に、領域５Ｕは、高さＺＵにある点のうちカメラＣ１の視野に含まれる点に対応すると考えられる。よって、これらの領域５Ｌ，５Ｕのうち、画像Ａ０の範囲に含まれる部分５０（カメラＣ０の視野に含まれる部分）であれば、３次元座標の計測が可能になるから、計測可能範囲と言えるのである。
【００６３】
画像Ａ１についても、同様の原理に基づき、Ｚ＝ＺＬのとき、およびＺ＝ＺＵのときについて、それぞれ前記画像の４頂点の座標を（ｘｃａｍ０，ｙｃａｍ０）として（２）式を実行し、（ｘｃａｍ１，ｙｃａｍ１）として得られた４点を頂点とする領域６Ｌ，６Ｕを設定する。そして、実際の画像の座標の範囲内で前記領域６Ｌ，６Ｕが重なり合う部分６０を、前記高さ計測範囲に対応する計測可能範囲として抽出する。
【００６４】
図７は、計測処理前の設定にかかる一連の手順を示す。
この手順は、前記したキャリブレーション用ワークを撮像対象位置に設置し、その上方に各カメラＣ０，Ｃ１を位置決めし、各カメラの倍率やカメラＣ１の光軸の傾きなどを調整した後にスタートする。
【００６５】
まず最初のＳＴ１（ＳＴは「ステップ」の略である。以下も同じ。）では、各カメラＣ０，Ｃ１により前記キャリブレーション用ワークを撮像し、生成された正面視画像Ａ１および斜め画像Ａ２を用いて、３次元計測に必要な各種パラメータを算出する。
なお、３次元計測に必要とされるすべてのパラメータを求めるには、キャリブレーション用ワークの高さを変えながら複数回の撮像を行い、各画像からキャリブレーションに必要な特徴点を複数ずつ抽出する必要がある。これらのパラメータを正しく求めることにより、３次元計測が可能になるとともに、前記したホモグラフィー行列ＨＺＡ，ＨＺＢを求めることができる。
【００６６】
上記のキャリブレーションが終了すると、ＳＴ２では、前記高さ計測範囲の入力を受け付ける。そして、つぎのＳＴ３では、前記図６に示した方法により、各画像Ａ０，Ａ１における計測可能範囲５０，６０を抽出する。さらに、この抽出結果に基づき、前記図４に示したように、モニタ３上の画像Ａ０，Ａ１の計測可能範囲５０，６０を着色表示する。
【００６７】
ユーザーは、この表示画面を見て、計測可能範囲が適切であるか否か判断する。ここで計測可能範囲に不備がある場合には、ユーザーは高さ計測範囲を変更することができる。この指定範囲の変更によりＳＴ４が「ＹＥＳ」となってＳＴ３に戻り、変更後の高さ計測範囲に応じた計測可能範囲が再抽出される。またモニタ３の表示も、計測可能範囲の再抽出に応じて更新される。
【００６８】
一方、高さ計測範囲を変更せずに、計測可能範囲を調整したい場合には、ユーザーは、カメラの設定条件を変更する。この場合には、ＳＴ５が「ＹＥＳ」となってＳＴ１に戻り、キャリブレーションから処理をやり直すことになる。
【００６９】
一方、計測可能範囲が適切であれば、ユーザーは、高さ計測範囲やカメラの設定条件を変更することなく、登録操作を実行する。これによりＳＴ４，５がいずれも「ＮＯ」となってＳＴ６に進み、前記キャリブレーションで求めたパラメータ等をパラメータ記憶部２７に登録する。
【００７０】
上記実施例によれば、ユーザーは、高さ計測範囲を指定することにより、その高さ計測範囲内の点について、どの程度の広さの範囲を計測できるのかを簡単に確認することができる。特に、正面視画像Ａ０は、ワークＷやその支持面を真上から見た状態を示しているから、実際のワークＷやその支持面に対する計測可能範囲と同様の関係を確認することができる。
よって、３次元計測に関する専門知識がなくとも、カメラの設定を簡単かつ適切に行うことが可能になる。また、高さ計測範囲を自由に指定できるから、種々のワークＷに対応することが可能になり、汎用性の高い検査装置を提供することができる。
【００７１】
なお、上記実施例では、キャリブレーション処理に応じて計測可能範囲を表示するようにしたが、この表示は、計測処理中に行うこともできる。この場合、ユーザーは、画面上の計測可能範囲５０，６０にワークＷが正しく入っているか否かを確認しながら、計測を実行することができるので、不良が検出された場合には、それが真の不良であるか、ワークの位置や姿勢の不具合により生じたものであるかを、容易に判断することができる。
【００７２】
つぎの実施例は、キャリブレーション終了後に、良品のワークＷを用いて計測領域を設定し、その設定条件（領域の位置や大きさ）を登録する処理に適用されるものである。
図８は、計測領域の設定例を示す。この例でも、カメラＣ０，Ｃ１を同時駆動し、得られた正面視画像Ａ０および斜め画像Ａ１を前記領域３０に並列表示する。さらに正面視画像Ａ０の表示画面上に範囲指定用のカーソル（図示せず。）を設定するなどして、計測領域７の指定を受け付けるようにしている。
【００７３】
上記の計測領域７の設定条件が登録され、計測が開始されると、毎時のワークＷに対し、前記登録された条件に基づいて計測領域７が設定され、その領域７に含まれる点を対象にした計測処理が実行される。しかし、画像Ａ１側の前記計測領域７に対応する領域に目的とする高さ範囲にある点が現れない場合には、その点の３次元座標を計測するのは不可能になる。
【００７４】
上記の問題点に鑑み、第２の実施例では、計測領域７の指定に先立ち、高さ計測範囲の指定を受け付け、その指定された高さ計測範囲に対応する計測可能範囲を抽出する。そして、この計測可能範囲を超える範囲に前記計測領域７が指定されたとき、その指定を受け付けずにエラー表示を行うようにしている。
【００７５】
図９は、上記の計測領域７の設定にかかる一連の手順を示す。この手順は、前記キャリブレーションが終了してから行われるもので、最初のＳＴ１１では、前記良品のワークＷを撮像する。つぎのＳＴ１２では、ＳＴ１１で生成された正面視画像Ａ０および斜め画像Ａ１をモニタ３に表示する。
【００７６】
つぎのＳＴ１３では、前記高さ計測範囲についての指定を受け付ける。ＳＴ１４では、この指定に応じた計測可能範囲を抽出する。なお、この実施例では、正面視画像Ａ０に対する計測領域７の適否を判断するために計測可能範囲を必要としているので、抽出するのは、正面視画像Ａ０における計測可能範囲だけでよい。
【００７７】
ＳＴ１５では、計測領域７の指定を受け付ける。ここで指定された計測領域７が前記計測可能範囲に含まれる場合には、ＳＴ１６が「ＹＥＳ」となってＳＴ２０に進み、計測領域７の設定条件が登録される。
一方、前記計測可能範囲を超える範囲に計測領域７が指定された場合には、ＳＴ１６が「ＮＯ」となってＳＴ１７に進み、前記情報表示用領域３１に所定のエラーメッセージが表示される。この表示に応じてユーザーが計測領域７を変更すると、ＳＴ１８が「ＹＥＳ」となってＳＴ１６に戻る。これにより、変更された計測領域７が計測可能範囲に含まれるようになれば、ＳＴ２０に進み、前記変更された計測領域７の設定条件が登録される。
一方、ユーザが計測領域７を変更したくない場合には、高さ計測範囲が変更される。この場合には、ＳＴ１８が「ＮＯ」、ＳＴ１９が「ＹＥＳ」となり、前記ＳＴ１４から処理をやり直す。
【００７８】
なお、ユーザーが計測領域７も高さ計測範囲も変更したくない場合には、この図９の処理をキャンセルしてカメラの設定条件を変更し、キャリブレーションから処理をやり直す必要がある。
【００７９】
上記の処理によれば、指定された高さ計測範囲にある点を計測できないような範囲に計測領域７が設定されるおそれがないので、安定した計測を行うことが可能になる。なお、上記の実施例では、計測領域７の指定が適切でない場合には、エラー表示を行うようにしたが、これに代えて、計測領域７を指定できる範囲を制限してもよい。たとえば、抽出された計測可能範囲より外にカーソルが移動しないようにしたり、画像Ａ０の表示を計測可能範囲に限定し、その表示された範囲内でのみ計測領域７を指定することができる。
【００８０】
つぎの図１０に示す実施例では、正面視画像Ａ０上で前記計測領域７の指定を受け付けた後、指定された計測領域内で計測可能な高さ範囲を算出し、その算出結果をモニタ３に表示するようにしている。以下、図１０の流れに沿って説明する。
【００８１】
最初のＳＴ３１では、フラグｆをゼロリセットする。なお、このフラグｆは、前記高さ範囲の下限値ＺＬが設定されていることを記憶するためのものである。
つぎのＳＴ３２では高さＺを所定の初期値Ｚ０に設定する。続くＳＴ３３では、前記図８に示したのと同様の方法で、正面視画像Ａ０上で計測領域７の指定を受け付ける。指定が終了すると、ＳＴ３４に進み、前記正面視画像Ａ０から計測領域の各頂点の座標を抽出する。
【００８２】
ＳＴ３５では、前記４頂点の座標をそれぞれ前記（２）式に代入することにより、各座標を斜め画像Ａ１側の座標に変換する。なお、このＳＴ３５を最初に設定する場合の（２）式のＺには、前記初期値Ｚ０が代入される。
【００８３】
ＳＴ３６では、前記ＳＴ３５で求めた頂点の座標が画像Ａ１の座標の範囲に入っているかどうかを判別する。ここで、いずれか１点でも画像Ａ１の外にあれば、ＳＴ３６は「ＮＯ」となってＳＴ４３に進む。この時点では前記フラグｆは０であるため、ＳＴ４３も「ＮＯ」となってＳＴ４０に進む。
【００８４】
つぎのＳＴ４０では、高さＺの現在値をあらかじめ定めた限界値ＺＯＶＥＲと比較する。Ｚが初期値Ｚ０の場合にはＺ＜ＺＯＶＥＲとなるから、ＳＴ４０は「ＮＯ」となってＳＴ４１に進み、前記Ｚを所定値ｄを加えた値に更新する。この後は、ＳＴ３５に戻り、更新後のＺを代入した（２）式により、前記計測領域７の頂点の変換処理を実行する。
【００８５】
上記の流れを繰り返した結果、高さＺが所定値になったときに、ＳＴ３５で求めた全ての頂点が画像Ａ１の範囲内に含まれると判断されると、ＳＴ３６が「ＹＥＳ」となる。この「ＹＥＳ」判定を受けて、つぎのＳＴ３７では、フラグｆをチェックするが、この段階ではｆ＝０であるからＳＴ３８に進む。
ＳＴ３８では、高さＺの現在値を下限値ＺＬにセットするとともに、前記フラグｆを１にする。
【００８６】
この後も、前記高さＺを所定値ｄずつ高くしながら、ＳＴ３５，３６を実行する。前記フラグｆが１にセットされた後は、ＳＴ３６の判定が「ＹＥＳ」となると、つぎのＳＴ３７は「ＮＯ」となるため、ＳＴ３９に進み、高さＺの現在値を前記高さ範囲の上限値ＺＵにセットする。
以後も、更新された高さＺにより求められた画像Ａ１側の計測領域が当該画像Ａ１の範囲にある限り、ＳＴ３６，３７，３９の流れで処理が進み、前記高さ範囲の上限値ＺＵが更新される。
【００８７】
この後、画像Ａ１側の計測領域が画像Ａ１の範囲を超えると、ＳＴ３６が「ＮＯ」、ＳＴ４３が「ＹＥＳ」となり、ＳＴ４２に進む。また前記計測領域が画像Ａ１の範囲内にあっても、前記高さＺが限界値ＺＯＶＥＲに達した場合には、ＳＴ４０が「ＹＥＳ」となってＳＴ４２に進む。
ＳＴ４２では、その時点での下限値ＺＬおよび上限値ＺＵをモニタ３に表示することにより、計測可能な高さ範囲をユーザーに報知する。
【００８８】
上記の実施例によれば、ユーザーは計測領域７を指定することにより、その領域７内で計測可能な高さ範囲を知ることができるから、目的に応じた計測が可能であるか否かを容易に認識することができる。なお、この実施例でも、高さ範囲が目的に合わない場合には、計測領域７の指定をやり直すことで対応することができるが、計測領域７の設定を変更したくない場合には、カメラの設定条件を変更し、再度、キャリブレーションを行う必要がある。
【図面の簡単な説明】
【００８９】
【図１】この発明が適用された検査装置の撮像部の構成を設置例とともに示す斜視図である。
【図２】検査装置のブロック図である。
【図３】キャリブレーション用ワークを撮像した際の表示画面を示す説明図である。
【図４】計測可能範囲の表示例を示す説明図である。
【図５】各画像間の対応点の関係を示す説明図である。
【図６】計測可能範囲の抽出方法を示す説明図である。
【図７】計測可能範囲を表示しながらカメラの設定を行う場合の処理手順を示すフローチャートである。
【図８】計測領域の指定例を示す説明図である。
【図９】計測可能範囲に適した計測領域を設定する場合の処理手順を示すフローチャートである。
【図１０】計測領域の指定を受け付けて計測可能な高さ範囲を表示する場合の処理手順を示すフローチャートである。
【符号の説明】
【００９０】
１  撮像部
２  本体部
３  モニタ
４  コンソール
７  計測領域
２０  演算処理部
２２  画像処理部
２３  計測処理部
２５  表示制御部
５０，６０  計測可能範囲
Ｃ０，Ｃ１  カメラ
【図１】
2006349586.tif 000006
【図２】
2006349586.tif 000007
【図３】
2006349586.tif 000008
【図４】
2006349586.tif 000009
【図５】
2006349586.tif 000010
【図６】
2006349586.tif 000011
【図７】
2006349586.tif 000012
【図８】
2006349586.tif 000013
【図９】
2006349586.tif 000014
【図１０】
2006349586.tif 000015