説明

3次元計測方法

【課題】ワークの3次元計測を行うために、3次元上の直線の式を算出する直線部を選択する場合に、多くの直線部を選択可能にする3次元計測方法を提供する。
【解決手段】ワークの3次元計測を行うにあたり、まず、ワークの設計データを取得する(S1)。次に、第1カメラ及び第2カメラよって、ワークを撮像し、第1画像及び第2画像を取得する(S2)。そして、取得した画像データから第1及び第2直線部を選択する(S4)。これら第1及び第2直線部を選択すると、ステレオ法を用いて第1直線部の3次元上の直線の式を算出する。次に、第1直線部の3次元上の直線の式と、ワークの設計データから求められる第1直線部に対する幾何学的な拘束条件とを用いて第2直線部の3次元上の直線の式を算出する。そして、これら第1及び第2直線部の3次元上の直線の式を用いてワークの3次元位置又は姿勢を計測する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークの3次元位置又は姿勢を計測する3次元計測方法に係り、詳しくは、カメラによって撮像した画像を用いてワークの3次元位置又は姿勢を計測する3次元計測方法に関する。
【背景技術】
【0002】
一般に、カメラによって測定対象(以下、単にワークという)を撮影し、この撮影した画像からワークの3次元上の点の座標を求める方法として、ステレオ法と呼ばれる方法が広く知られている。このステレオ法は、カメラの視差を利用して3次元位置を計測する方法であり、まず、視点の異なる2つのカメラで撮像された画像上で3次元位置を計測したい点の対応点を求める。そして、これら各画像上の対応点及び既知である各カメラの位置関係から3角測量の原理によって3次元位置を算出する方法である。
【0003】
上記ステレオ法は、製品検査や、工業用ロボットがワークを認識するためなどに使用される3次元計測技術にて広く用いられており、例えば、ワークの直線状のエッジ部などの直線部の3次元上の直線の式を算出する際などに使用される。
【0004】
即ち、ワークの設計データが既知の場合、ワークの直線状のエッジ部などの直線部の3次元上の直線の式を2箇所以上算出してワークの姿勢が決まると、設計データなどからワークの3次元位置も求めることができる。そして、この直線部の3次元上の直線の式は、一般に、直線部上の2箇所以上の点の3次元位置を用いて算出されており、上記ステレオ法は、この直線部上の点の位置を算出する際に用いられている。
【0005】
しかしながら、直線上の1点は、点状の物体の3次元位置を求める場合と異なり、一方のカメラによって撮影された画像の直線部上の1点が、他方のカメラによって撮影された画像の直線部上において、どの点と対応するのかを特定することが困難である。
【0006】
そこで、各画像面における直線部の対応点を検出するのに、エピポーラ線と呼ばれる仮想の基準線を用いることが知られている。このエピポーラ線とは、一方のカメラが物体(例えば、ワークの直線部上の1点)を見ている際の視線を、他方のカメラで撮像した画像上に投影したものであり、このエピポーラ線上に、求める対応点があると言える。そのため、一方の画像上における直線部上の1点の他方の画像上における対応点を特定したい場合、他方の画像上にエピポーラ線を引き、このエピポーラ線と、他方の画像の直線部との交点を対応点とすることができる。
【0007】
ところが、上記エピポーラ線は、2つのカメラの視点とワーク上の点を含む平面(エピポーラ面)がそれぞれの画像面と交わった直線として画像面に投影されるため、2つのカメラの位置関係によって傾きが一義的に決まってしまう。そのため、このエピポーラ線と傾きが平行な直線部については、エピポーラ線と直線部とが重なって、対応点を特定することが出来ない。
【0008】
また、画像上において上記エピポーラ線と直線部との相対角度が平行に近い場合には、画像上の直線部を検出した際の誤差に対する対応点の検出誤差の影響が大きくなって、測定精度が低くなる虞がある。
【0009】
そこで、従来、上記エピポーラ線に対する相対角度が直角に近い直線部を抽出するオペレータを使用して、エピポーラ線に対して十分な相対角度を有する直線部のみを抽出することが案出されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平5−5609号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
確かに、上記特許文献1のように、オペレータを使用してエピポーラ線に対する相対角度が直角に近い直線部を抽出すると、精度良く画像間の対応点を求めることができる。
【0012】
しかしながら、このようなオペレータを使用した場合、ワーク上の任意の直線部を選択することができないと共に、ワークの形状やオペレータの設定によっては、2本以上の直線部を抽出できず、ワークの3次元位置及び姿勢を求めることができない虞もある。
【0013】
そこで、本発明は、ワークの3次元計測を行うために、3次元上の直線の式を算出する直線部を選択する場合に、より多くの直線部を選択可能にする3次元計測方法を提供することを目的する。
【課題を解決するための手段】
【0014】
本発明は、ワークの設計データを取得する工程と、第1カメラによってワークを撮像した第1画像と、第2カメラによって該第1画像とは異なる視点からワークを撮像した第2画像とを取得する工程と、前記第1及び第2画像からワークの複数の直線部を検出し、前記複数の直線部の中から少なくとも第1直線部及び第2直線部を選択する工程と、前記第1直線部の3次元上の直線の式を、ステレオ法を用いて算出する工程と、前記第2直線部の3次元上の直線の式を、前記第1直線部の3次元上の直線の式と、ワークの設計データから求められる該第1直線部に対する幾何学的な拘束条件とを用いて算出する工程と、これら第1及び第2直線部の3次元上の直線の式を用いてワークの3次元位置又は姿勢を計測する工程と、を備えた、ことを特徴とする3次元計測方法にある。
【発明の効果】
【0015】
本発明によると、基準となる第1直線部の3次元上の直線の式を、第1直線部上の2点の3次元位置をステレオ法によって算出することによって求める。また、第2直線部の3次元上の直線の式は、算出した第1直線部の直線の式と、ワークの設計データから求めた第1直線部に対する幾何学的な拘束条件と、を用いて算出する。そのため、例え、エピポーラ線との相対角度が平行な直線部であったとしても第2直線部として選択することができる。従って、3次元上の直線の式を算出する直線部を選択する際に、多くの直線部が選択可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係る3次元計測装置を示す模式図。
【図2】図1の3次元計測装置の第1及び第2カメラがワークを撮影した画像を示す模式図。
【図3】図1の3次元計測装置の第1カメラのピンホールカメラモデル。
【図4】本発明の実施の形態に係る3次元計測方法のフローチャート。
【図5】図1の3次元計測装置の第1及び第2カメラがワークを撮影した画像を示す模式図。
【図6】直線部を指定しない場合のエッジ検出工程のサブフローチャート。
【図7】図1の3次元計測装置の第1及び第2カメラのピンホールカメラモデルを示す模式図。
【発明を実施するための形態】
【0017】
<3次元計測装置の構造>
以下、本発明の実施形態に係る3次元計測方法について、図1乃至図7に基づいて説明をする。なお、以下の説明中において、ワークWの実際の直線部を符号Lを用いて、3次元計測装置1が画像データから検出したワークの直線部を符号Leを用いて説明する。また、3次元計測装置1が第1画像F1上にて検出した直線部をLe−1、第2画像上にて検出した直線部をLe−2とする。即ち、L1は実際のワークWの第1直線部、Le1は3次元計測装置1が画像データから検出した第1直線部、Le1−1は第1画像F1上での第1直線部を意味する。
【0018】
まず、図1及び図2に基づいて本実施の形態に係る3次元計測装置1の構造について説明をする。3次元計測装置1は、第1カメラC1と、第2カメラC2と、これら一対のカメラC1,C2と接続された計測装置100と、を有している。第1カメラC1及び第2カメラC2は、カメラパラメータ及び相対位置が校正されており、互いに同一水平面上に光軸がありかつ、その光軸が平行になるように配設されている。
【0019】
また、計測装置100は、第1及び第2カメラC1,C2が撮影した画像F1,F2を基に画像処理や演算を行うPCなどによって構成されている。そして、これら第1及び第2カメラC1,C2を制御するカメラ制御部140と、第1及び第2カメラC1,C2によって撮像されるワークWの設計データが格納される記憶部130と、を有している。また、計測装置100は、直線検出部101と、直線算出部110と、計測部120とを有している。
【0020】
上記直線検出部101は、ワークWのエッジ(輪郭線)の中から直線状のエッジ(以下、直線部という)L1,L2,L3・・・を複数検出し、この検出した複数の直線部から少なくとも2つ以上の直線部L1,L2を選択する。より具体的には、直線検出部101は、検出部102と、直線選択部103と、算出方法選択部104と、を有している。検出部102は、第1カメラC1によってワークWを撮像した第1画像F1と、第2カメラC2によって該第1画像F1とは異なる視点からワークWを撮像した第2画像F2と、の画像データからワークWの直線部L1,L2,L3・・・を検出する。また、直線選択部103は、検出部102によって検出された複数の直線部Le1,Le2,Le3・・・の中から、少なくとも2つ以上の直線部Le1,Le2を選択する。更に、算出方法選択部104は、直線選択部103によって選択された直線部Le1,Le2の3次元上の直線の式の算出方法を選択する。
【0021】
上記直線算出部110は、算出方法選択部104によって選択された直線の式の算出方法に沿って直線部Le1,Le2の直線の式を算出する。具体的には、ステレオ法を用いて直線部Le1の3次元上の直線の式を算出する第1直線算出部111を有している。また、第1直線算出部111によって算出された直線部L1の直線の式及び、ワークWの設計データから求められるこの直線部L1に対する幾何学的な拘束条件とを用いて、直線部L2の3次元上の直線の式を算出する第2直線算出部112を有している。
【0022】
上記計測部120は、直線算出部110によって算出された少なくとも2つ以上の直線部L1,L2の3次元上の直線の式を用いて、ワークWの3次元位置又は姿勢を計測する。
【0023】
<3次元計測方法>
ついで、上述した3次元計測装置1がどのようにワークWの3次元位置又は姿勢を計測するかを、図1及び図2を参照しつつ、図3及び図4に基づいて説明をする。図4に示すように、まず、ワークWの3次元計測を行うに際し、3次元計測装置1は、ワークWの設計データを取得して記憶部130に読み込む(図4のS1、データ取得工程)。
【0024】
設計データの読み込みが終了するとワークWの3次元計測が開始される(S2)。そして、カメラ制御部140からの指令によって第1カメラC1及び第2カメラC2がワークWを撮像する。また、第1カメラC1によってワークWを撮像した第1画像F1と、第2カメラC2によって該第1画像F1とは異なる視点からワークWを撮像した第2画像F2とを取得する(S3、撮像工程)。
【0025】
図2に示す第1画像F1及び第2画像F2の画像データを取得すると、直線検出部101は、これら第1及び第2画像F1,F2の2次元データから複数の直線部L1,L2,L3・・・を検出する(S4の直線部検出工程)。詳しくは、上記第1及び2画像F1,F2が取込まれると、直線検出部101の検出部102は、第1画像F1に映っているワークWの直線部L1e−1,Le2−1,Le3−1・・・を検出する。また、第2画像F2に映っているワークWの直線部Le1−2,Le2−2,Le3−2・・・を検出する。そして、これら第1及び第2画像F1,F2から検出された直線部Le1−1,Le1−2・・・の対応付けを行うと共に、設計データとの対応付けを行って、検出された直線部Leが実際のワーク上のどの直線部Lにあたるかを判定する(S4の検出工程)。
【0026】
検出された直線部Leと実際のワークWの直線部Lとが対応付けられると、直線選択部103は、予め3次元上の直線の式を算出する直線部として設定されていた第1直線部L1と第2直線部L2とを検出された直線部の中から選択する(S4の直線部選択工程)。これら第1直線部Le1と、第2直線部Le2とが選択されると、算出方法選択部104は、操作者による設定に基づいて、第1直線部Le1の直線の式を、ステレオ法を用いて算出するように設定する。また、第2直線部Le2の直線の式を、設計データを用いて算出するように設定する(S4の算出方法設定工程)。
【0027】
3次元上の直線の式を算出する直線部Le1,Le2が選択されると、まず、第1直線算出部111によって、基準となる第1直線部(基準エッジ)Le1がステレオ法を用いて3次元上の直線の式が算出される(S5、第1直線部算出工程)。具体的には、第1直線算出部111は、まず、第1直線部L1上の2点について3次元位置をステレオ法によって算出する。
【0028】
即ち、図2に示すように、第1画像F1の第1直線部Le1−1上の1点P1−1の画像座標を(u1b1,v1b1)とする。すると、第2画像F2において点P1−1(ワーク上の同一点)の対応点は、この点に対応するエピポーラ線EL1と第2画像F2上の第1直線部Le1−2との交点P1−2となる。
【0029】
なお、上述したように、第1カメラC1と第2カメラC2とは、互いに同一水平面上に光軸がありかつ、その光軸が平行になるように配設されているため、エピポーラ線EL1,EL2は画像上において傾きが行方向と平行である。
【0030】
そのため、第2画像F2上の対応点P1−2の画像座標を(u1b2,v1b2)とすると以下の式が導くことができる。
【0031】
【数1】

よって、対応点(u1b2,v1b2)は第1直線部上で列座標がv1b1である点となる。
【0032】
そして、第1直線算出部111は、この3次元空間上での同一点を表す2画像上の画像座標、校正済であるカメラパラメータ、2カメラの相対位置を用いて、ステレオ法によりこの点の位置座標(x1b,y1b,z1b)を算出する。また、第1直線算出部111は、同様にして第1直線部上の他の1点についても位置座標(x2b,y2b,z2b)を算出し、これら第1直線部上の2点の位置座標から第1直線部L1の3次元上の直線の式を算出する。
【0033】
上記第1直線部L1の3次元上の直線の式が算出されると、ついで、第2直線算出部112によって、第2直線部L2の3次元上の直線の式を算出がされる(S6、第2直線部算出工程)。具体的には、第2直線部L2は、図2の第2画像F2において、エピポーラ線EL2と平行に延びているため、第1画像F1と第2画像F2との間で、その直線上の対応点を特定することができない。そのため、第2直線算出部112は、記憶部130に記憶されているワークWの設計データ(形状データ)から求められる第1直線部L1との幾何学的な拘束条件を用いて、第2直線部L2の3次元上の直線の式を算出する。なお、本実施形態では、第1直線部L1と第2直線部L2が直角に交わることを幾何学的な拘束条件とした。
【0034】
そして、上記第1直線部L1と第2直線部L2との直線の式が算出されると、計測部120は、これら第1及び第2直線部L1,L2の3次元上の直線の式及び設計データを用いてワークの3次元位置又は姿勢を計測し(S7、計測工程)、終了する(S8)。ここでは、三次元位置又は姿勢を計測するためにも設計データも用いるとしたが、ワークの基準画像からのズレ量を計測したい場合などは、設計データを用いる必要はないため、この限りではない。
【0035】
次に、上述した第2直線部算出工程S6について図3に示す第1カメラC1のピンホールカメラモデルを用いて詳しく説明する。なお、P2は第2直線部L2上の1点、Oは第1カメラC1の座標原点、F1は第1カメラC1の像平面(第1画像F1)、dは座標原点Oと第2直線部L2上の点P2を結んだ直線と第1画像F1との交点P2−1への座標原点Oからのベクトルである。また、第1カメラC1のカメラ座標系は、座標原点Oから第1画像F1への垂線がZ方向となり、第1画像F1に平行な平面がXY平面となる。
【0036】
第1カメラC1の内部パラメータA1は次の数2のようにおくことができる。なお、fは焦点距離、kはCCD(電荷結合素子、Charge Coupled Device)の画素の縦横比、(u01,v01)は射影の主点であり、歪みは無視した。
【0037】
【数2】

【0038】
また、第1画像の第2直線部L2−1上にある点P2−1の画像座標を(u1a1,v1a1,)とすると、この画像座標に対するベクトルd1は次の数3のように表すことができる。
【0039】
【数3】

【0040】
同様に第1画像の第2直線部L2−1上にある他の1点の画像座標を(u2a1,v2a1,)とすると、この画像座標に対するベクトルdは次の数4のように表される。
【0041】
【数4】

【0042】
これらより、第2直線部L2は次の数5で表される平面上に存在するといえる(k、lは媒介変数)。
【0043】
【数5】

【0044】
設計データより求められた第1直線部L1と第2直線部L2とが垂直に交わるという幾何的な拘束条件より、第2直線部L2は、第1直線部L1と数5で表される平面の交点を通り、かつ、第1直線部L1に対して垂直な平面上にあるといえる。従って、第2直線算出部112は、第1直線部L1に対して垂直な平面と数5で表される平面の交線として、第2直線部L2の3次元上の直線の式を算出する。
【0045】
上述したように、ステレオ法によって3次元上の直線の式を算出した第1直線部L1を基準エッジとし、エピポーラ線と平行な直線部についても、この基準エッジに対する幾何学的な拘束条件を用いることによって3次元上の直線の式を算出することができる。これにより、第2直線部L2のようなエピポーラ線とその傾きが平行な直線部についても、精度良く3次元上の直線の式を算出することができる。そのため、ワークの3次元計測をする際に、3次元上の直線の式を算出する直線部として選択することができる直線部の選択肢を増やすことができる。即ち、任意のエッジを直線の式を算出する直線部として算出ことができる。
【0046】
<直線部のエピポーラ線との相対角度を検出する場合の3次元計測方法>
次に、予め直線の式の算出する直線部を設定しない場合の3次元計測方法について、図1、図4及び図5〜図7に基づいて説明をする。
【0047】
予め直線の式の算出する直線部を設定しない場合においても、まず、ワークWの設計データを記憶部130に入力し(S1、データ取得工程)、第1カメラC1及び第2カメラC2によって、ワークWを撮像する(S2、S3、撮像工程)。
【0048】
そして、上記第1及びカメラC1及び第2カメラC2によってワークが撮像されると、得られた第1及び第2画像F1,F2(図5参照)から3次元上の直線の式を検出する直線部L1,L2,L3・・・を検出する(S4、直線部検出工程)。
【0049】
図7に示すように、上記直線部検出工程S4が開始されると(図7のS4−1)、検出部102によって画像F1,F2から複数の直線部L1e−1,Le2−1,Le1−2,Le2−2・・・が検出される。即ち、各画像上にて検出した直線部Le1−1,Le2−1,Le1−2,Le2−2・・・の対応付けが行われると共に、この検出された直線部Le1−1,Le2−1,Le1−2,Le2−2・・・と設計データとの対応付けが行われる(S4−2、検出工程)。
【0050】
上記画像データから直線部が検出されて認識されると、この複数の直線部Leの中から、任意の直線部が直線選択部103によって3次元上の直線の式を算出する直線部として選択される(S4−3、直線選択工程)。
【0051】
そして、3次元上の直線の式を算出する直線部Le1,Le2が選択されると、相対角算出部105によって、第1画像F1に対する第2画像F2のエピポーラ線ELと、第2画像F2での各直線部との間のなす角(以下、相対角度)α,βが算出される。この工程が相対角算出工程となる(S4−4)。
【0052】
上記各直線部Le1,Le2について相対角度α,βが算出されると、算出方法選択部104は、各直線部の直線の式の算出方法を決定する(S4−5〜S4−9、算出方法設定工程)。
【0053】
具体的には、算出方法選択部104は、まず、相対角度が最も直角に近いかどうかを判定する(S4−5)。そして、その直線部の相対角度αが最も直角に近い直線部(本実施形態では第1直線部Le1)の場合は(S4−5のYes)、ステレオ法を用いて3次元上の直線の式を算出するように設定する(S4−7)。
【0054】
一方、その直線部が、相対角度が最も直角に近い直線部ではない場合(S4−5のNo)、その相対角度が、ステレオ法を用いて直線の式を算出するのに十分な精度が得られる所定の範囲θ1〜θ2であるかを判定する(S4−6)。
【0055】
そして、算出方法選択部104は、相対角度がこの所定の範囲θ1〜θ2の場合は(S4−6のYes)、ステレオ法を用いてその直線部の直線の式を算出するように設定する(S4−7)。また、相対角度が所定の範囲θ1〜θ2外の場合は(S4−6のNo)、設計データを用いて直線部の直線の式を算出するように設定する(S4−8)。
【0056】
そして、全ての選択された直線部について直線の式の算出方法が設定されると(S4−9のYes)、直線部の検出が終了する(S4−10)。
【0057】
上記直線部検出工程S4が終了すると、図4に示すように、まず、ステレオ法を用いて3次元上の直線の式を算出される直線部(本実施形態では第1直線部L1)の直線の式が第1直線算出部111によって算出される(S5、第1直線部算出工程)。
【0058】
第1直線算出部111の3次元上の直線の式が算出されると、次に、第2直線算出部112によって、設計データを用いて直線の式を算出される直線部の3次元上の直線の式が算出される(S6、第2直線部算出工程)。
【0059】
そして、上記第1直線部L1と第2直線部L2との3次元上の直線の式が算出されると、計測部120は、これら第1及び第2直線部L1,L2の3次元上の直線の式及び設計データを用いてワークの3次元位置又は姿勢を計測する(S7、計測工程)。そして、計測を終了する(S8)。
【0060】
ついで、第1直線算出部111及び第2直線算出部112による3次元上の直線の式の算出方法について、図7に基づいて詳しく説明をする。なお、図7は、第1及び第2カメラC1,C2をピンホールカメラモデルで表した図であり、P11,P12は第1直線部上の点を、O,Oは第1カメラC1及び第2カメラC2の座標原点を示す。また、ベクトルdは、座標原点Oから、座標原点Oと点P11を結んだ直線と第1画像(第1像平面)F1の交点P11−1へのベクトルを表す。更に、ベクトルdは座標原点Oから、座標原点Oと点P12を結んだ直線と第2画像(第2像平面)F2の交点P12−2へのベクトルを表す。また、ベクトルTは座標原点Oから座標原点Oへのベクトルを表す。第1カメラC1のカメラ座標系は座標原点Oから第1画像F1への垂線がZ方向となり、第1画像に平行な平面がXY平面となる。尚ここでは、測定は第1カメラC1のカメラ座標系において行うとする。
【0061】
まず、第1直線算出部111によって基準エッジとしての第1直線部L1の3次元上の直線の式を算出するアルゴリズムについて説明をする。
【0062】
第1カメラC1の内部パラメータを数2とし、第2カメラC2の内部パラメータを次の数6のように定める。
【0063】
【数6】

【0064】
図7に示した第1画像F1の第1直線部Le1−1上にある点P11−1の画像座標を(u1bb1,v1bb1)とすると、この画像座標に対するベクトルv1は次の数7のように表される。
【0065】
【数7】

【0066】
同様に、画像F1の第1直線部Le1−1上にある他の1点の画像座標を(u2bb1,v2bb1)とすると、この画像座標に対するベクトルeは次の数8のように表される。
【0067】
【数8】

【0068】
これより、図7に示した第1直線部L1は次の数9で表される平面上に存在することになる。
【0069】
【数9】

【0070】
また、第2画像F2の第1直線部Le1−2上にある点P12−2の画像座標を(u1bb2,v1bb2)とすると、この画像座標に対するベクトルdは、次の数10のように表される。
【0071】
【数10】

【0072】
同様に、第2画像F2上の第1直線部L1e−2上にある他の1点の画像座標を(u2bb2,v2bb2)とすると、この画像座標に対するベクトルeは、次の数11のように表される。
【0073】
【数11】

【0074】
数10・11とベクトルTを用いると、図7に示した第1直線部L1は次の数12で表される平面上に存在することになる。
【0075】
【数12】

【0076】
よって、第1直線部L1の直線の式は数9で表される平面と、数12で表される平面の交線として算出することができる。
【0077】
次に、第2直線算出部112により図7に示した第2直線部L2の直線の式を算出するアルゴリズムについて説明をする。
【0078】
第1画像F1の第2直線部Le2−1の1点の画像座標を(u1aa1,v1aa1)とすると、この画像座標に対するベクトルdは次の数13のように表される。
【0079】
【数13】

【0080】
同様に、第2直線部Le2−1上の他の1点の画像座標を(u2aa1,v2aa1)とすると、この画像座標に対するベクトルは次の数14のように表される。
【0081】
【数14】

【0082】
これより、図7に示した第2直線部Le2−1は次の数15で表される平面上に存在することになる。
【0083】
【数15】

【0084】
第1直線算出部111により算出した第1直線部L1の方向ベクトルをベクトルnbとおくと、第2直線部L2と第1直線部L1の方向ベクトルが垂直に交わるという幾何的な拘束条件により、第2直線部L2は、法線ベクトルがベクトルnbとなる平面上にある。よって、ベクトルnを次の数16のようにおくと、この平面は数17のように表わすことができる。
【0085】
【数16】

【0086】
【数17】

【0087】
あとは数17におけるeの値を求めることができれば、数15と数17で表わされる平面の交線として第2直線部L2の直線の式が算出できる。
【0088】
第1直線算出部111より算出した第1直線部L1の直線の式を数18とし、数15と数17で表わされる平面の交線として求めた第2直線部L2の直線の式を数19とする。この数19においてベクトルgがeを媒介変数としたベクトルとなる。
【0089】
【数18】

【0090】
【数19】

【0091】
第2直線部L2と第1直線部L1の間の最短距離となるそれぞれの直線上の2点について、第2直線部L2上の点をベクトルpとし、第1直線部L1上の点をベクトルqとすると、数18・19より次の数20、数21が導かれる。
【0092】
【数20】

【0093】
【数21】

【0094】
次に、ベクトルwを次の数22のように定義するとベクトルwと第2直線部L2、第1直線部L1それぞれの方向ベクトルは直行するため、次の数23、数24が導かれる。
【0095】
【数22】

【0096】
【数23】

【0097】
【数24】

【0098】
この数23、数24を解くことにより、数20、数21におけるsとtを求めることができる。そして、この求めたs、tを用いて、数25で表わされる前述した幾何的な拘束条件を考慮することにより、図7に示した第2直線部L2の直線の式を算出できる。
【0099】
【数25】

【0100】
これらの幾何的な拘束条件により一意に解が定まらない場合は、直線間の相対位置関係などの他の幾何的な拘束を加えたり、画像の測定対象が写っている慨ねの領域情報を用いたりしても良い。また、予めわかっている測定対象の存在位置範囲や存在姿勢範囲を用いたりすることで解を一意に定めることもできる。
【0101】
上述したように、予め直線の式の算出する直線部を設定しない場合においても、エピポーラ線EPとの相対角度を求めることによって、選択した直線部の算出方法を適宜設定することができる。そして、第2直線部L2のようなエピポーラ線とその傾きが平行な直線部については、基準エッジに対する幾何学的な拘束条件を用いて精度良く3次元上の直線の式を算出することができる。従って、ワークの3次元計測をする際に、3次元上の直線の式を算出する直線部として選択することができる直線部の選択肢を増やすことができる。
【0102】
また、相対角度が最も直角に近い直線部については、ステレオ法を用いて3次元上の直線の式を算出するため、必ず1つ以上の基準エッジを求めることが出来ると共に、精度の良く直線の式を算出することができる直線部を基準エッジとすることができる。
【0103】
また、直線部検出工程S4において、相対角度が所定範囲内の場合、基準エッジに対する上記幾何学的な拘束条件を用いて3次元上の直線の式を算出せずに、ステレオ法によって直線の式を算出させるアルゴリズムを有している。そのため、出来る限り直線の式をステレオ法によって算出し、直線部の3次元上の直線を算出する計算を簡略化することができる。なお、上記算出方法選択工程のアルゴリズムとしては、例えば、S4−5,S4−6,S4−7,S4−9が該当する。
【0104】
<本発明のまとめ>
以上、説明したように、本発明によると、ステレオ法によって3次元上の直線の式を算出した第1直線部L1に対する幾何学的な拘束条件を用いて第2直線部L2の3次元上の直線の式を算出可能にした。これにより、カメラを2つしか有さない3次元計測装置においても、カメラの数を増やすことなくワークの計測用に3次元上の直線の式を算出する直線部として選択できる直線部の数を増やすことができる。
【0105】
また、基準エッジとなる直線部(例えば第1直線部)の方が、この基準エッジに対する幾何学的な拘束条件を用いて直線の式を算出するように設定される直線部よりも、エピポーラ線ELに対する相対角度が直角に近くなるようにされている。そのため、直線の式の算出精度を向上することができる。従って、ワークの姿勢及び3次元位置の計測精度も向上することができる。
【0106】
また、上記幾何学的な拘束条件として、例えば基準エッジ(第1直線部)と間の方向ベクトルのなす角もしくは、最短距離とすることによって、これらの何学的な拘束条件を設計データから容易に求めることができる。
【0107】
なお、本実施形態においては、2つのカメラによってワークを撮像したが、2つ以上の複数のカメラによって、ワークを撮像しても良い。この場合、撮像した画像を選択しても相対角度が小さい直線部についても精度よく3次元上の直線の式を算出することができる。また、カメラとワークWとの間の配置は、カメラパラメータ及び相対位置が校正されていれば、実用上、どのように配置しても良い。
【0108】
更に、直線の式を算出する際に、相対角度が最も平行に近い直線部については、設計データから幾何学的な拘束条件を用いて直線の式を算出することとしても良い。
【0109】
また、直線部検出工程S4において、選択したすべての直線部について相対角度が所定の範囲内にあるかどうかによって、直線の式の算出方法を設定しても良い。また、全ての直線部が上記範囲外の場合は、比較する直線部間において相対角度が直角に近い方を、ステレオ法を用いて3次元上の直線の式を算出するように設定すればよい。
【0110】
更に、本実施形態では、3次元上の直線の式を算出する直線部を2つしか算出していないが、3つ以上の複数の直線部について直線の式を算出するように設定しても良い。
【0111】
また、幾何学的な拘束条件とは、測定対象の2箇所以上の直線部の間に成立する幾何的な関係から導かれる条件である。本実施形態において、幾何的な拘束条件は、第1直線部L1と第2直線部L2との間のなす角が直角、2直線の間の最短距離、すなわち2直線に垂直な線分の長さがLであるという条件を使用した。しかし、設計データからわかる幾何的な拘束条件であればどのような条件を設定しても良い。また、これら直線部間のなす角と2直線の間の最短距離など、複数の幾何学的条件を組み合わせて使用しても良い。
【0112】
更に、実際のカメラの構成は、測定対象を撮像することができればどのような構成でも良い。また、内部パラメータにおいてスキューを考慮していないが、実際は考慮してもよい。
【0113】
更に、本実施形態では、直線状のエッジを直線部として認識したが、直線部は、必ずしもエッジである必要はなく、画像上で任意の2点間が直線と認識できれば、例えば、設計データから既知のワークの直線状の模様などでも良い。また、上述した本実施形態に記載された発明は、どのように組み合わされても良い。
【符号の説明】
【0114】
W・・・ワーク、C1・・・第1カメラ、C2・・・第2カメラ、L1・・・第1直線部、L2・・・第2直線部、F1・・・第1画像、F2・・・第2画像、EL・・・エピポーラ線、α・・・相対角度

【特許請求の範囲】
【請求項1】
ワークの設計データを取得する工程と、
第1カメラによってワークを撮像した第1画像と、第2カメラによって該第1画像とは異なる視点からワークを撮像した第2画像とを取得する工程と、
前記第1及び第2画像からワークの複数の直線部を検出し、前記複数の直線部の中から少なくとも第1直線部及び第2直線部を選択する工程と、
前記第1直線部の3次元上の直線の式を、ステレオ法を用いて算出する工程と、
前記第2直線部の3次元上の直線の式を、前記第1直線部の3次元上の直線の式と、ワークの設計データから求められる該第1直線部に対する幾何学的な拘束条件とを用いて算出する工程と、
これら第1及び第2直線部の3次元上の直線の式を用いてワークの3次元位置又は姿勢を計測する工程と、を備えた、
ことを特徴とする3次元計測方法。
【請求項2】
前記第1画像の直線部上にある1点に対応する前記第2画像のエピポーラ線に対する相対角度が、前記第2直線部よりも前記第1直線部の方が直角に近くなるように前記第1直線部を選択する、
請求項1記載の3次元計測方法。
【請求項3】
前記第2直線部の前記エピポーラ線に対する相対角度が所定範囲内の場合、前記第1直線部に対する幾何学的な拘束条件を用いて3次元上の直線の式を算出せずに、ステレオ法によって3次元上の直線の式を算出させる、
請求項2記載の3次元計測方法。
【請求項4】
前記幾何学的な拘束条件は、前記第1直線部と前記第2直線部との方向ベクトルのなす角及び/または、前記第1直線部と前記第2直線部との間の最短距離である、
請求項1乃至3のいずれか1項記載の3次元計測方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−24773(P2013−24773A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−160959(P2011−160959)
【出願日】平成23年7月22日(2011.7.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】