(57)【特許請求の範囲】
【請求項１】
ワークの設計データを取得する工程と、
第１カメラによってワークを撮像した第１画像と、第２カメラによって該第１画像とは異なる視点からワークを撮像した第２画像とを取得する工程と、
前記第１及び第２画像からワークの複数の直線部を検出し、前記複数の直線部の中から少なくとも第１直線部及び第２直線部を選択する工程と、
前記第１直線部の３次元上の直線の式を、ステレオ法を用いて算出する工程と、
前記第２直線部の３次元上の直線の式を、前記第１直線部の３次元上の直線の式と、ワークの設計データから求められる該第１直線部に対する幾何学的な拘束条件とを用いて算出する工程と、
これら第１及び第２直線部の３次元上の直線の式を用いてワークの３次元位置又は姿勢を計測する工程と、を備えた、
ことを特徴とする３次元計測方法。
【請求項２】
前記第１画像の直線部上にある１点に対応する前記第２画像のエピポーラ線に対する相対角度が、前記第２直線部よりも前記第１直線部の方が直角に近くなるように前記第１直線部を選択する、
請求項１記載の３次元計測方法。
【請求項３】
前記幾何学的な拘束条件は、前記第１直線部と前記第２直線部との方向ベクトルのなす角及び前記第１直線部と前記第２直線部との間の最短距離である、
請求項１又は２記載の３次元計測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの３次元位置又は姿勢を計測する３次元計測方法に係り、詳しくは、カメラによって撮像した画像を用いてワークの３次元位置又は姿勢を計測する３次元計測方法に関する。
【背景技術】
【０００２】
一般に、カメラによって測定対象（以下、単にワークという）を撮影し、この撮影した画像からワークの３次元上の点の座標を求める方法として、ステレオ法と呼ばれる方法が広く知られている。このステレオ法は、カメラの視差を利用して３次元位置を計測する方法であり、まず、視点の異なる２つのカメラで撮像された画像上で３次元位置を計測したい点の対応点を求める。そして、これら各画像上の対応点及び既知である各カメラの位置関係から３角測量の原理によって３次元位置を算出する方法である。
【０００３】
上記ステレオ法は、製品検査や、工業用ロボットがワークを認識するためなどに使用される３次元計測技術にて広く用いられており、例えば、ワークの直線状のエッジ部などの直線部の３次元上の直線の式を算出する際などに使用される。
【０００４】
即ち、ワークの設計データが既知の場合、ワークの直線状のエッジ部などの直線部の３次元上の直線の式を２箇所以上算出してワークの姿勢が決まると、設計データなどからワークの３次元位置も求めることができる。そして、この直線部の３次元上の直線の式は、一般に、直線部上の２箇所以上の点の３次元位置を用いて算出されており、上記ステレオ法は、この直線部上の点の位置を算出する際に用いられている。
【０００５】
しかしながら、直線上の１点は、点状の物体の３次元位置を求める場合と異なり、一方のカメラによって撮影された画像の直線部上の１点が、他方のカメラによって撮影された画像の直線部上において、どの点と対応するのかを特定することが困難である。
【０００６】
そこで、各画像面における直線部の対応点を検出するのに、エピポーラ線と呼ばれる仮想の基準線を用いることが知られている。このエピポーラ線とは、一方のカメラが物体（例えば、ワークの直線部上の１点）を見ている際の視線を、他方のカメラで撮像した画像上に投影したものであり、このエピポーラ線上に、求める対応点があると言える。そのため、一方の画像上における直線部上の１点の他方の画像上における対応点を特定したい場合、他方の画像上にエピポーラ線を引き、このエピポーラ線と、他方の画像の直線部との交点を対応点とすることができる。
【０００７】
ところが、上記エピポーラ線は、２つのカメラの視点とワーク上の点を含む平面（エピポーラ面）がそれぞれの画像面と交わった直線として画像面に投影されるため、２つのカメラの位置関係によって傾きが一義的に決まってしまう。そのため、このエピポーラ線と傾きが平行な直線部については、エピポーラ線と直線部とが重なって、対応点を特定することが出来ない。
【０００８】
また、画像上において上記エピポーラ線と直線部との相対角度が平行に近い場合には、画像上の直線部を検出した際の誤差に対する対応点の検出誤差の影響が大きくなって、測定精度が低くなる虞がある。
【０００９】
そこで、従来、上記エピポーラ線に対する相対角度が直角に近い直線部を抽出するオペレータを使用して、エピポーラ線に対して十分な相対角度を有する直線部のみを抽出することが案出されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平５−５６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
確かに、上記特許文献１のように、オペレータを使用してエピポーラ線に対する相対角度が直角に近い直線部を抽出すると、精度良く画像間の対応点を求めることができる。
【００１２】
しかしながら、このようなオペレータを使用した場合、ワーク上の任意の直線部を選択することができないと共に、ワークの形状やオペレータの設定によっては、２本以上の直線部を抽出できず、ワークの３次元位置及び姿勢を求めることができない虞もある。
【００１３】
そこで、本発明は、ワークの３次元計測を行うために、３次元上の直線の式を算出する直線部を選択する場合に、より多くの直線部を選択可能にする３次元計測方法を提供することを目的する。
【課題を解決するための手段】
【００１４】
本発明は、ワークの設計データを取得する工程と、第１カメラによってワークを撮像した第１画像と、第２カメラによって該第１画像とは異なる視点からワークを撮像した第２画像とを取得する工程と、前記第１及び第２画像からワークの複数の直線部を検出し、前記複数の直線部の中から少なくとも第１直線部及び第２直線部を選択する工程と、前記第１直線部の３次元上の直線の式を、ステレオ法を用いて算出する工程と、前記第２直線部の３次元上の直線の式を、前記第１直線部の３次元上の直線の式と、ワークの設計データから求められる該第１直線部に対する幾何学的な拘束条件とを用いて算出する工程と、これら第１及び第２直線部の３次元上の直線の式を用いてワークの３次元位置又は姿勢を計測する工程と、を備えた、ことを特徴とする３次元計測方法にある。
【発明の効果】
【００１５】
本発明によると、基準となる第１直線部の３次元上の直線の式を、第１直線部上の２点の３次元位置をステレオ法によって算出することによって求める。また、第２直線部の３次元上の直線の式は、算出した第１直線部の直線の式と、ワークの設計データから求めた第１直線部に対する幾何学的な拘束条件と、を用いて算出する。そのため、例え、エピポーラ線との相対角度が平行な直線部であったとしても第２直線部として選択することができる。従って、３次元上の直線の式を算出する直線部を選択する際に、多くの直線部が選択可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係る３次元計測装置を示す模式図。
【図２】図１の３次元計測装置の第１及び第２カメラがワークを撮影した画像を示す模式図。
【図３】図１の３次元計測装置の第１カメラのピンホールカメラモデル。
【図４】本発明の実施の形態に係る３次元計測方法のフローチャート。
【図５】図１の３次元計測装置の第１及び第２カメラがワークを撮影した画像を示す模式図。
【図６】直線部を指定しない場合のエッジ検出工程のサブフローチャート。
【図７】図１の３次元計測装置の第１及び第２カメラのピンホールカメラモデルを示す模式図。
【発明を実施するための形態】
【００１７】
＜３次元計測装置の構造＞
以下、本発明の実施形態に係る３次元計測方法について、図１乃至図７に基づいて説明をする。なお、以下の説明中において、ワークＷの実際の直線部を符号Ｌを用いて、３次元計測装置１が画像データから検出したワークの直線部を符号Ｌｅを用いて説明する。また、３次元計測装置１が第１画像Ｆ１上にて検出した直線部をＬｅ−１、第２画像上にて検出した直線部をＬｅ−２とする。即ち、Ｌ１は実際のワークＷの第１直線部、Ｌｅ１は３次元計測装置１が画像データから検出した第１直線部、Ｌｅ１−１は第１画像Ｆ１上での第１直線部を意味する。
【００１８】
まず、図１及び図２に基づいて本実施の形態に係る３次元計測装置１の構造について説明をする。３次元計測装置１は、第１カメラＣ１と、第２カメラＣ２と、これら一対のカメラＣ１，Ｃ２と接続された計測装置１００と、を有している。第１カメラＣ１及び第２カメラＣ２は、カメラパラメータ及び相対位置が校正されており、互いに同一水平面上に光軸がありかつ、その光軸が平行になるように配設されている。
【００１９】
また、計測装置１００は、第１及び第２カメラＣ１，Ｃ２が撮影した画像Ｆ１，Ｆ２を基に画像処理や演算を行うＰＣなどによって構成されている。そして、これら第１及び第２カメラＣ１，Ｃ２を制御するカメラ制御部１４０と、第１及び第２カメラＣ１，Ｃ２によって撮像されるワークＷの設計データが格納される記憶部１３０と、を有している。また、計測装置１００は、直線検出部１０１と、直線算出部１１０と、計測部１２０とを有している。
【００２０】
上記直線検出部１０１は、ワークＷのエッジ（輪郭線）の中から直線状のエッジ（以下、直線部という）Ｌ１,Ｌ２,Ｌ３・・・を複数検出し、この検出した複数の直線部から少なくとも２つ以上の直線部Ｌ１，Ｌ２を選択する。より具体的には、直線検出部１０１は、検出部１０２と、直線選択部１０３と、算出方法選択部１０４と、を有している。検出部１０２は、第１カメラＣ１によってワークＷを撮像した第１画像Ｆ１と、第２カメラＣ２によって該第１画像Ｆ１とは異なる視点からワークＷを撮像した第２画像Ｆ２と、の画像データからワークＷの直線部Ｌ１,Ｌ２,Ｌ３・・・を検出する。また、直線選択部１０３は、検出部１０２によって検出された複数の直線部Ｌｅ１,Ｌｅ２,Ｌｅ３・・・の中から、少なくとも２つ以上の直線部Ｌｅ１，Ｌｅ２を選択する。更に、算出方法選択部１０４は、直線選択部１０３によって選択された直線部Ｌｅ１，Ｌｅ２の３次元上の直線の式の算出方法を選択する。
【００２１】
上記直線算出部１１０は、算出方法選択部１０４によって選択された直線の式の算出方法に沿って直線部Ｌｅ１，Ｌｅ２の直線の式を算出する。具体的には、ステレオ法を用いて直線部Ｌｅ１の３次元上の直線の式を算出する第１直線算出部１１１を有している。また、第１直線算出部１１１によって算出された直線部Ｌ１の直線の式及び、ワークＷの設計データから求められるこの直線部Ｌ１に対する幾何学的な拘束条件とを用いて、直線部Ｌ２の３次元上の直線の式を算出する第２直線算出部１１２を有している。
【００２２】
上記計測部１２０は、直線算出部１１０によって算出された少なくとも２つ以上の直線部Ｌ１，Ｌ２の３次元上の直線の式を用いて、ワークＷの３次元位置又は姿勢を計測する。
【００２３】
＜３次元計測方法＞
ついで、上述した３次元計測装置１がどのようにワークＷの３次元位置又は姿勢を計測するかを、図１及び図２を参照しつつ、図３及び図４に基づいて説明をする。図４に示すように、まず、ワークＷの３次元計測を行うに際し、３次元計測装置１は、ワークＷの設計データを取得して記憶部１３０に読み込む（図４のＳ１、データ取得工程）。
【００２４】
設計データの読み込みが終了するとワークＷの３次元計測が開始される（Ｓ２）。そして、カメラ制御部１４０からの指令によって第１カメラＣ１及び第２カメラＣ２がワークＷを撮像する。また、第１カメラＣ１によってワークＷを撮像した第１画像Ｆ１と、第２カメラＣ２によって該第１画像Ｆ１とは異なる視点からワークＷを撮像した第２画像Ｆ２とを取得する（Ｓ３、撮像工程）。
【００２５】
図２に示す第１画像Ｆ１及び第２画像Ｆ２の画像データを取得すると、直線検出部１０１は、これら第１及び第２画像Ｆ１，Ｆ２の２次元データから複数の直線部Ｌ１,Ｌ２,Ｌ３・・・を検出する（Ｓ４の直線部検出工程）。詳しくは、上記第１及び２画像Ｆ１,Ｆ２が取込まれると、直線検出部１０１の検出部１０２は、第１画像Ｆ１に映っているワークＷの直線部Ｌ１ｅ−１,Ｌｅ２−１，Ｌｅ３−１・・・を検出する。また、第２画像Ｆ２に映っているワークＷの直線部Ｌｅ１−２,Ｌｅ２−２，Ｌｅ３−２・・・を検出する。そして、これら第１及び第２画像Ｆ１，Ｆ２から検出された直線部Ｌｅ１−１，Ｌｅ１−２・・・の対応付けを行うと共に、設計データとの対応付けを行って、検出された直線部Ｌｅが実際のワーク上のどの直線部Ｌにあたるかを判定する（Ｓ４の検出工程）。
【００２６】
検出された直線部Ｌｅと実際のワークＷの直線部Ｌとが対応付けられると、直線選択部１０３は、予め３次元上の直線の式を算出する直線部として設定されていた第１直線部Ｌ１と第２直線部Ｌ２とを検出された直線部の中から選択する（Ｓ４の直線部選択工程）。これら第１直線部Ｌｅ１と、第２直線部Ｌｅ２とが選択されると、算出方法選択部１０４は、操作者による設定に基づいて、第１直線部Ｌｅ１の直線の式を、ステレオ法を用いて算出するように設定する。また、第２直線部Ｌｅ２の直線の式を、設計データを用いて算出するように設定する（Ｓ４の算出方法設定工程）。
【００２７】
３次元上の直線の式を算出する直線部Ｌｅ１，Ｌｅ２が選択されると、まず、第１直線算出部１１１によって、基準となる第１直線部（基準エッジ）Ｌｅ１がステレオ法を用いて３次元上の直線の式が算出される（Ｓ５、第１直線部算出工程）。具体的には、第１直線算出部１１１は、まず、第１直線部Ｌ１上の２点について３次元位置をステレオ法によって算出する。
【００２８】
即ち、図２に示すように、第１画像Ｆ１の第１直線部Ｌｅ１−１上の１点Ｐ１−１の画像座標を（ｕ１ｂ１，ｖ１ｂ１）とする。すると、第２画像Ｆ２において点Ｐ１−１（ワーク上の同一点）の対応点は、この点に対応するエピポーラ線ＥＬ１と第２画像Ｆ２上の第１直線部Ｌｅ１−２との交点Ｐ１−２となる。
【００２９】
なお、上述したように、第１カメラＣ１と第２カメラＣ２とは、互いに同一水平面上に光軸がありかつ、その光軸が平行になるように配設されているため、エピポーラ線ＥＬ１，ＥＬ２は画像上において傾きが行方向と平行である。
【００３０】
そのため、第２画像Ｆ２上の対応点Ｐ１−２の画像座標を（ｕ１ｂ２，ｖ１ｂ２）とすると以下の式が導くことができる。
【００３１】
【数１】
0005875272.tif 000002
よって、対応点（ｕ１ｂ２，ｖ１ｂ２）は第１直線部上で列座標がv1b1である点となる。
【００３２】
そして、第１直線算出部１１１は、この３次元空間上での同一点を表す２画像上の画像座標、校正済であるカメラパラメータ、２カメラの相対位置を用いて、ステレオ法によりこの点の位置座標（ｘ１ｂ，ｙ１ｂ，ｚ１ｂ）を算出する。また、第１直線算出部１１１は、同様にして第１直線部上の他の１点についても位置座標（ｘ２ｂ，ｙ２ｂ，ｚ２ｂ）を算出し、これら第１直線部上の２点の位置座標から第１直線部Ｌ１の３次元上の直線の式を算出する。
【００３３】
上記第１直線部Ｌ１の３次元上の直線の式が算出されると、ついで、第２直線算出部１１２によって、第２直線部Ｌ２の３次元上の直線の式を算出がされる（Ｓ６、第２直線部算出工程）。具体的には、第２直線部Ｌ２は、図２の第２画像Ｆ２において、エピポーラ線ＥＬ２と平行に延びているため、第１画像Ｆ１と第２画像Ｆ２との間で、その直線上の対応点を特定することができない。そのため、第２直線算出部１１２は、記憶部１３０に記憶されているワークＷの設計データ（形状データ）から求められる第１直線部Ｌ１との幾何学的な拘束条件を用いて、第２直線部Ｌ２の３次元上の直線の式を算出する。なお、本実施形態では、第１直線部Ｌ１と第２直線部Ｌ２が直角に交わることを幾何学的な拘束条件とした。
【００３４】
そして、上記第１直線部Ｌ１と第２直線部Ｌ２との直線の式が算出されると、計測部１２０は、これら第１及び第２直線部Ｌ１，Ｌ２の３次元上の直線の式及び設計データを用いてワークの３次元位置又は姿勢を計測し（Ｓ７、計測工程）、終了する（Ｓ８）。ここでは、三次元位置又は姿勢を計測するためにも設計データも用いるとしたが、ワークの基準画像からのズレ量を計測したい場合などは、設計データを用いる必要はないため、この限りではない。
【００３５】
次に、上述した第２直線部算出工程Ｓ６について図３に示す第１カメラＣ１のピンホールカメラモデルを用いて詳しく説明する。なお、Ｐ２は第２直線部Ｌ２上の１点、Ｏ１は第１カメラＣ１の座標原点、Ｆ１は第１カメラＣ１の像平面（第１画像Ｆ１）、ｄ１は座標原点Ｏ１と第２直線部Ｌ２上の点Ｐ２を結んだ直線と第１画像Ｆ１との交点Ｐ２−１への座標原点Ｏ１からのベクトルである。また、第１カメラＣ１のカメラ座標系は、座標原点Ｏ１から第１画像Ｆ１への垂線がＺ方向となり、第１画像Ｆ１に平行な平面がＸＹ平面となる。
【００３６】
第１カメラＣ１の内部パラメータＡ１は次の数２のようにおくことができる。なお、ｆは焦点距離、ｋはＣＣＤ（電荷結合素子、Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）の画素の縦横比、（ｕ０１，ｖ０１）は射影の主点であり、歪みは無視した。
【００３７】
【数２】
0005875272.tif 000003
【００３８】
また、第１画像の第２直線部Ｌ２−１上にある点Ｐ２−１の画像座標を（ｕ１ａ１，ｖ１ａ１，）とすると、この画像座標に対するベクトルｄ1は次の数３のように表すことができる。
【００３９】
【数３】
0005875272.tif 000004
【００４０】
同様に第１画像の第２直線部Ｌ２−１上にある他の１点の画像座標を（ｕ２ａ１，ｖ２ａ１，）とすると、この画像座標に対するベクトルｄ２は次の数４のように表される。
【００４１】
【数４】
0005875272.tif 000005
【００４２】
これらより、第２直線部Ｌ２は次の数５で表される平面上に存在するといえる（ｋ、ｌは媒介変数）。
【００４３】
【数５】
0005875272.tif 000006
【００４４】
設計データより求められた第１直線部Ｌ１と第２直線部Ｌ２とが垂直に交わるという幾何的な拘束条件より、第２直線部Ｌ２は、第１直線部Ｌ１と数５で表される平面の交点を通り、かつ、第１直線部Ｌ１に対して垂直な平面上にあるといえる。従って、第２直線算出部１１２は、第１直線部Ｌ１に対して垂直な平面と数５で表される平面の交線として、第２直線部Ｌ２の３次元上の直線の式を算出する。
【００４５】
上述したように、ステレオ法によって３次元上の直線の式を算出した第１直線部Ｌ１を基準エッジとし、エピポーラ線と平行な直線部についても、この基準エッジに対する幾何学的な拘束条件を用いることによって３次元上の直線の式を算出することができる。これにより、第２直線部Ｌ２のようなエピポーラ線とその傾きが平行な直線部についても、精度良く３次元上の直線の式を算出することができる。そのため、ワークの３次元計測をする際に、３次元上の直線の式を算出する直線部として選択することができる直線部の選択肢を増やすことができる。即ち、任意のエッジを直線の式を算出する直線部として算出ことができる。
【００４６】
＜直線部のエピポーラ線との相対角度を検出する場合の３次元計測方法＞
次に、予め直線の式の算出する直線部を設定しない場合の３次元計測方法について、図１、図４及び図５〜図７に基づいて説明をする。
【００４７】
予め直線の式の算出する直線部を設定しない場合においても、まず、ワークＷの設計データを記憶部１３０に入力し（Ｓ１、データ取得工程）、第１カメラＣ１及び第２カメラＣ２によって、ワークＷを撮像する（Ｓ２、Ｓ３、撮像工程）。
【００４８】
そして、上記第１及びカメラＣ１及び第２カメラＣ２によってワークが撮像されると、得られた第１及び第２画像Ｆ１，Ｆ２（図５参照）から３次元上の直線の式を検出する直線部Ｌ１，Ｌ２，Ｌ３・・・を検出する（Ｓ４、直線部検出工程）。
【００４９】
図７に示すように、上記直線部検出工程Ｓ４が開始されると（図７のＳ４−１）、検出部１０２によって画像Ｆ１，Ｆ２から複数の直線部Ｌ１ｅ−１，Ｌｅ２−１，Ｌｅ１−２，Ｌｅ２−２・・・が検出される。即ち、各画像上にて検出した直線部Ｌｅ１−１，Ｌｅ２−１，Ｌe１−２，Ｌe２−２・・・の対応付けが行われると共に、この検出された直線部Ｌｅ１−１，Ｌｅ２−１，Ｌｅ１−２，Ｌｅ２−２・・・と設計データとの対応付けが行われる（Ｓ４−２、検出工程）。
【００５０】
上記画像データから直線部が検出されて認識されると、この複数の直線部Ｌｅの中から、任意の直線部が直線選択部１０３によって３次元上の直線の式を算出する直線部として選択される（Ｓ４−３、直線選択工程）。
【００５１】
そして、３次元上の直線の式を算出する直線部Ｌｅ１，Ｌｅ２が選択されると、相対角算出部１０５によって、第１画像Ｆ１に対する第２画像Ｆ２のエピポーラ線ＥＬと、第２画像Ｆ２での各直線部との間のなす角（以下、相対角度）α，βが算出される。この工程が相対角算出工程となる（Ｓ４−４）。
【００５２】
上記各直線部Ｌｅ１，Ｌｅ２について相対角度α，βが算出されると、算出方法選択部１０４は、各直線部の直線の式の算出方法を決定する（Ｓ４−５〜Ｓ４−９、算出方法設定工程）。
【００５３】
具体的には、算出方法選択部１０４は、まず、相対角度が最も直角に近いかどうかを判定する（Ｓ４−５）。そして、その直線部の相対角度αが最も直角に近い直線部（本実施形態では第１直線部Ｌｅ１）の場合は（Ｓ４−５のＹｅｓ）、ステレオ法を用いて３次元上の直線の式を算出するように設定する（Ｓ４−７）。
【００５４】
一方、その直線部が、相対角度が最も直角に近い直線部ではない場合（Ｓ４−５のＮｏ）、その相対角度が、ステレオ法を用いて直線の式を算出するのに十分な精度が得られる所定の範囲θ１〜θ２であるかを判定する（Ｓ４−６）。
【００５５】
そして、算出方法選択部１０４は、相対角度がこの所定の範囲θ１〜θ２の場合は（Ｓ４−６のＹｅｓ）、ステレオ法を用いてその直線部の直線の式を算出するように設定する（Ｓ４−７）。また、相対角度が所定の範囲θ１〜θ２外の場合は（Ｓ４−６のＮｏ）、設計データを用いて直線部の直線の式を算出するように設定する（Ｓ４−８）。
【００５６】
そして、全ての選択された直線部について直線の式の算出方法が設定されると（Ｓ４−９のＹｅｓ）、直線部の検出が終了する（Ｓ４−１０）。
【００５７】
上記直線部検出工程Ｓ４が終了すると、図４に示すように、まず、ステレオ法を用いて３次元上の直線の式を算出される直線部（本実施形態では第１直線部Ｌ１）の直線の式が第１直線算出部１１１によって算出される（Ｓ５、第１直線部算出工程）。
【００５８】
第１直線算出部１１１の３次元上の直線の式が算出されると、次に、第２直線算出部１１２によって、設計データを用いて直線の式を算出される直線部の３次元上の直線の式が算出される（Ｓ６、第２直線部算出工程）。
【００５９】
そして、上記第１直線部Ｌ１と第２直線部Ｌ２との３次元上の直線の式が算出されると、計測部１２０は、これら第１及び第２直線部Ｌ１，Ｌ２の３次元上の直線の式及び設計データを用いてワークの３次元位置又は姿勢を計測する（Ｓ７、計測工程）。そして、計測を終了する（Ｓ８）。
【００６０】
ついで、第１直線算出部１１１及び第２直線算出部１１２による３次元上の直線の式の算出方法について、図７に基づいて詳しく説明をする。なお、図７は、第１及び第２カメラＣ１，Ｃ２をピンホールカメラモデルで表した図であり、Ｐ１１，Ｐ１２は第１直線部上の点を、Ｏ１，Ｏ２は第１カメラＣ１及び第２カメラＣ２の座標原点を示す。また、ベクトルｄ１は、座標原点Ｏ１から、座標原点Ｏ１と点Ｐ１１を結んだ直線と第１画像（第１像平面）Ｆ１の交点Ｐ１１−１へのベクトルを表す。更に、ベクトルｄ２は座標原点Ｏ１から、座標原点Ｏ２と点Ｐ１２を結んだ直線と第２画像（第２像平面）Ｆ２の交点Ｐ１２−２へのベクトルを表す。また、ベクトルＴは座標原点Ｏ１から座標原点Ｏ２へのベクトルを表す。第１カメラＣ１のカメラ座標系は座標原点Ｏ１から第１画像Ｆ１への垂線がＺ方向となり、第１画像に平行な平面がＸＹ平面となる。尚ここでは、測定は第１カメラＣ１のカメラ座標系において行うとする。
【００６１】
まず、第１直線算出部１１１によって基準エッジとしての第１直線部Ｌ１の３次元上の直線の式を算出するアルゴリズムについて説明をする。
【００６２】
第１カメラＣ１の内部パラメータを数２とし、第２カメラＣ２の内部パラメータを次の数６のように定める。
【００６３】
【数６】
0005875272.tif 000007
【００６４】
図７に示した第１画像Ｆ１の第１直線部Ｌｅ１−１上にある点Ｐ１１−１の画像座標を（ｕ１ｂｂ１，ｖ１ｂｂ１）とすると、この画像座標に対するベクトルｖ１は次の数7のように表される。
【００６５】
【数７】
0005875272.tif 000008
【００６６】
同様に、画像Ｆ１の第１直線部Ｌｅ１−１上にある他の１点の画像座標を（ｕ２ｂｂ１，ｖ２ｂｂ１）とすると、この画像座標に対するベクトルｅ１は次の数８のように表される。
【００６７】
【数８】
0005875272.tif 000009
【００６８】
これより、図７に示した第１直線部Ｌ１は次の数９で表される平面上に存在することになる。
【００６９】
【数９】
0005875272.tif 000010
【００７０】
また、第２画像Ｆ２の第１直線部Ｌｅ１−２上にある点Ｐ１２−２の画像座標を（ｕ１ｂｂ２，ｖ１ｂｂ２）とすると、この画像座標に対するベクトルｄ２は、次の数１０のように表される。
【００７１】
【数１０】
0005875272.tif 000011
【００７２】
同様に、第２画像Ｆ２上の第１直線部Ｌ１ｅ−２上にある他の１点の画像座標を（ｕ２ｂｂ２，ｖ２ｂｂ２）とすると、この画像座標に対するベクトルｅ２は、次の数１１のように表される。
【００７３】
【数１１】
0005875272.tif 000012
【００７４】
数１０・１１とベクトルＴを用いると、図７に示した第１直線部Ｌ１は次の数１２で表される平面上に存在することになる。
【００７５】
【数１２】
0005875272.tif 000013
【００７６】
よって、第１直線部Ｌ１の直線の式は数９で表される平面と、数１２で表される平面の交線として算出することができる。
【００７７】
次に、第２直線算出部１１２により図７に示した第２直線部Ｌ２の直線の式を算出するアルゴリズムについて説明をする。
【００７８】
第１画像Ｆ１の第２直線部Ｌｅ２−１の１点の画像座標を（ｕ１ａａ１，ｖ１ａａ１）とすると、この画像座標に対するベクトルｄ３は次の数１３のように表される。
【００７９】
【数１３】
0005875272.tif 000014
【００８０】
同様に、第２直線部Ｌｅ２−１上の他の１点の画像座標を（ｕ２ａａ１，ｖ２ａａ１）とすると、この画像座標に対するベクトルは次の数１４のように表される。
【００８１】
【数１４】
0005875272.tif 000015
【００８２】
これより、図７に示した第２直線部Ｌｅ２−１は次の数１５で表される平面上に存在することになる。
【００８３】
【数１５】
0005875272.tif 000016
【００８４】
第１直線算出部１１１により算出した第１直線部Ｌ１の方向ベクトルをベクトルｎｂとおくと、第２直線部Ｌ２と第１直線部Ｌ１の方向ベクトルが垂直に交わるという幾何的な拘束条件により、第２直線部Ｌ２は、法線ベクトルがベクトルｎｂとなる平面上にある。よって、ベクトルｎｂを次の数１６のようにおくと、この平面は数１７のように表わすことができる。
【００８５】
【数１６】
0005875272.tif 000017
【００８６】
【数１７】
0005875272.tif 000018
【００８７】
あとは数１７におけるｅの値を求めることができれば、数１５と数１７で表わされる平面の交線として第２直線部Ｌ２の直線の式が算出できる。
【００８８】
第１直線算出部１１１より算出した第１直線部Ｌ１の直線の式を数１８とし、数１５と数１７で表わされる平面の交線として求めた第２直線部Ｌ２の直線の式を数１９とする。この数１９においてベクトルｇがｅを媒介変数としたベクトルとなる。
【００８９】
【数１８】
0005875272.tif 000019
【００９０】
【数１９】
0005875272.tif 000020
【００９１】
第２直線部Ｌ２と第１直線部Ｌ１の間の最短距離となるそれぞれの直線上の２点について、第２直線部Ｌ２上の点をベクトルｐとし、第１直線部Ｌ１上の点をベクトルｑとすると、数１８・１９より次の数２０、数２１が導かれる。
【００９２】
【数２０】
0005875272.tif 000021
【００９３】
【数２１】
0005875272.tif 000022
【００９４】
次に、ベクトルｗを次の数２２のように定義するとベクトルｗと第２直線部Ｌ２、第１直線部Ｌ１それぞれの方向ベクトルは直行するため、次の数２３、数２４が導かれる。
【００９５】
【数２２】
0005875272.tif 000023
【００９６】
【数２３】
0005875272.tif 000024
【００９７】
【数２４】
0005875272.tif 000025
【００９８】
この数２３、数２４を解くことにより、数２０、数２１におけるｓとｔを求めることができる。そして、この求めたｓ、ｔを用いて、数２５で表わされる前述した幾何的な拘束条件を考慮することにより、図７に示した第２直線部Ｌ２の直線の式を算出できる。
【００９９】
【数２５】
0005875272.tif 000026
【０１００】
これらの幾何的な拘束条件により一意に解が定まらない場合は、直線間の相対位置関係などの他の幾何的な拘束を加えたり、画像の測定対象が写っている慨ねの領域情報を用いたりしても良い。また、予めわかっている測定対象の存在位置範囲や存在姿勢範囲を用いたりすることで解を一意に定めることもできる。
【０１０１】
上述したように、予め直線の式の算出する直線部を設定しない場合においても、エピポーラ線ＥＰとの相対角度を求めることによって、選択した直線部の算出方法を適宜設定することができる。そして、第２直線部Ｌ２のようなエピポーラ線とその傾きが平行な直線部については、基準エッジに対する幾何学的な拘束条件を用いて精度良く３次元上の直線の式を算出することができる。従って、ワークの３次元計測をする際に、３次元上の直線の式を算出する直線部として選択することができる直線部の選択肢を増やすことができる。
【０１０２】
また、相対角度が最も直角に近い直線部については、ステレオ法を用いて３次元上の直線の式を算出するため、必ず１つ以上の基準エッジを求めることが出来ると共に、精度の良く直線の式を算出することができる直線部を基準エッジとすることができる。
【０１０３】
また、直線部検出工程Ｓ４において、相対角度が所定範囲内の場合、基準エッジに対する上記幾何学的な拘束条件を用いて３次元上の直線の式を算出せずに、ステレオ法によって直線の式を算出させるアルゴリズムを有している。そのため、出来る限り直線の式をステレオ法によって算出し、直線部の３次元上の直線を算出する計算を簡略化することができる。なお、上記算出方法選択工程のアルゴリズムとしては、例えば、Ｓ４−５，Ｓ４−６，Ｓ４−７，Ｓ４−９が該当する。
【０１０４】
＜本発明のまとめ＞
以上、説明したように、本発明によると、ステレオ法によって３次元上の直線の式を算出した第１直線部Ｌ１に対する幾何学的な拘束条件を用いて第２直線部Ｌ２の３次元上の直線の式を算出可能にした。これにより、カメラを２つしか有さない３次元計測装置においても、カメラの数を増やすことなくワークの計測用に３次元上の直線の式を算出する直線部として選択できる直線部の数を増やすことができる。
【０１０５】
また、基準エッジとなる直線部（例えば第１直線部）の方が、この基準エッジに対する幾何学的な拘束条件を用いて直線の式を算出するように設定される直線部よりも、エピポーラ線ＥＬに対する相対角度が直角に近くなるようにされている。そのため、直線の式の算出精度を向上することができる。従って、ワークの姿勢及び３次元位置の計測精度も向上することができる。
【０１０６】
また、上記幾何学的な拘束条件として、例えば基準エッジ（第１直線部）と間の方向ベクトルのなす角もしくは、最短距離とすることによって、これらの何学的な拘束条件を設計データから容易に求めることができる。
【０１０７】
なお、本実施形態においては、２つのカメラによってワークを撮像したが、２つ以上の複数のカメラによって、ワークを撮像しても良い。この場合、撮像した画像を選択しても相対角度が小さい直線部についても精度よく３次元上の直線の式を算出することができる。また、カメラとワークＷとの間の配置は、カメラパラメータ及び相対位置が校正されていれば、実用上、どのように配置しても良い。
【０１０８】
更に、直線の式を算出する際に、相対角度が最も平行に近い直線部については、設計データから幾何学的な拘束条件を用いて直線の式を算出することとしても良い。
【０１０９】
また、直線部検出工程Ｓ４において、選択したすべての直線部について相対角度が所定の範囲内にあるかどうかによって、直線の式の算出方法を設定しても良い。また、全ての直線部が上記範囲外の場合は、比較する直線部間において相対角度が直角に近い方を、ステレオ法を用いて３次元上の直線の式を算出するように設定すればよい。
【０１１０】
更に、本実施形態では、３次元上の直線の式を算出する直線部を２つしか算出していないが、３つ以上の複数の直線部について直線の式を算出するように設定しても良い。
【０１１１】
また、幾何学的な拘束条件とは、測定対象の２箇所以上の直線部の間に成立する幾何的な関係から導かれる条件である。本実施形態において、幾何的な拘束条件は、第１直線部Ｌ１と第２直線部Ｌ２との間のなす角が直角、２直線の間の最短距離、すなわち２直線に垂直な線分の長さがＬであるという条件を使用した。しかし、設計データからわかる幾何的な拘束条件であればどのような条件を設定しても良い。また、これら直線部間のなす角と２直線の間の最短距離など、複数の幾何学的条件を組み合わせて使用しても良い。
【０１１２】
更に、実際のカメラの構成は、測定対象を撮像することができればどのような構成でも良い。また、内部パラメータにおいてスキューを考慮していないが、実際は考慮してもよい。
【０１１３】
更に、本実施形態では、直線状のエッジを直線部として認識したが、直線部は、必ずしもエッジである必要はなく、画像上で任意の２点間が直線と認識できれば、例えば、設計データから既知のワークの直線状の模様などでも良い。また、上述した本実施形態に記載された発明は、どのように組み合わされても良い。
【符号の説明】
【０１１４】
Ｗ・・・ワーク、Ｃ１・・・第１カメラ、Ｃ２・・・第２カメラ、Ｌ１・・・第１直線部、Ｌ２・・・第２直線部、Ｆ１・・・第１画像、Ｆ２・・・第２画像、ＥＬ・・・エピポーラ線、α・・・相対角度
【図１】
0005875272.tif 000027
【図２】
0005875272.tif 000028
【図３】
0005875272.tif 000029
【図４】
0005875272.tif 000030
【図５】
0005875272.tif 000031
【図６】
0005875272.tif 000032
【図７】
0005875272.tif 000033