"演算装置が、第1及び第2カメラによってワークを撮像したステレオ画像を取得する工程と、前記演算装置が、この取得したステレオ画像からエッジを抽出する工程と、前記演算装置が、前記ステレオ画像上にて抽出されたエッジの中から、前記ワークにて同一平面上に位置するエッジを選択する工程と、前記演算装置が、前記同一平面上に位置するエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲内にある第1エッジを、少なくとも2本以上、ステレオ法によって3次元復元する工程と、前記演算装置が、前記3次元復元した少なくとも2本以上の第1エッジを用いて、これら3次元復元された第1エッジを含む3次元平面を算出する工程と、前記演算装置が、前記第1エッジと同一平面にあるエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲外にある第2エッジを、前記3次元平面に投影することによって3次元復元する工程と、を備えた、ことを特徴とする3次元計測方法。前記演算装置は、前記同一平面上に位置するエッジを、テンプレート画像を用いたパターンマッチングを前記ステレオ画像に施すことによって選択する、請求項1記載の3次元計測方法。請求項1又は2記載の各工程をコンピュータに実行させるための3次元計測プログラム。ワークを撮像する第1及び第2カメラと、前記ワークに対して作業を行うロボットアームと、前記第1及び第2カメラによって前記ワークが撮像されたステレオ画像から前記ワークの3次元位置を認識し、前記ロボットアームに対して駆動指令を与える演算装置と、を備え、前記演算装置は、取得した前記ステレオ画像からエッジを抽出し、この抽出されたエッジから前記ワークにて同一平面上に位置するエッジを選択すると共に、これら同一平面上に位置するエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲内にある第1エッジについては、少なくとも2本以上をステレオ法によって3次元復元し、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲外にある第2エッジについては、前記3次元復元した第1エッジを含む3次元平面に投影することにより3次元復元し、これら3次元復元された第1及び第2エッジを用いて前記ワークの3次元位置を認識する、ことを特徴とするロボット装置。このようにエピポーラ線に対する交差角度が直角に近い直線部のみ抽出すると、画像間の対応点を求めることができる。そのため、図10aに示すように、実際のワークの辺直線部Lの端点から端点まで正確にエッジを抽出できている場合、同様のエッジを2本以上抽出できることを条件として正確にワークを3次元復元することができる。しかしながら実際には、図10bに示すように、画像のコントラストの問題や、ワークの角部が曲線であるなどのワーク形状上の問題などにより、直線部Sの端点まで厳密に撮像画像からエッジを抽出することが困難なことがある。この場合、ワークの3次元上の位置を計測するには、例えば、エピポーラ線に対して交差角が平行に近い直線部の3次元上の直線の式と、エピポーラ線に対して交差角が直角に近い直線部の3次元上の直線の式との交点を求めて上記端点を算出する必要がある。そこで、本発明は、エピポーラ線に対して交差角度が平行に近いエッジを3次元復元可能な3次元計測方法、3次元計測プログラム及びロボット装置を提供することを目的とする。本発明に係る3次元形状計測方法は、演算装置が、第1及び第2カメラによってワークを撮像したステレオ画像を取得する工程と、前記演算装置が、この取得したステレオ画像からエッジを抽出する工程と、前記演算装置が、前記ステレオ画像上にて抽出されたエッジの中から、前記ワークにて同一平面上に位置するエッジを選択する工程と、前記演算装置が、前記同一平面上に位置するエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲内にある第1エッジを、少なくとも2本以上、ステレオ法によって3次元復元する工程と、前記演算装置が、前記3次元復元した少なくとも2本以上の第1エッジを用いて、これら3次元復元された第1エッジを含む3次元平面を算出する工程と、前記演算装置が、前記第1エッジと同一平面にあるエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲外にある第2エッジを、前記3次元平面に投影することによって3次元復元する工程と、を備えた、ことを特徴とする。本発明に係るロボット装置は、ワークを撮像する第1及び第2カメラと、前記ワークに対して作業を行うロボットアームと、前記第1及び第2カメラによって前記ワークが撮像されたステレオ画像から前記ワークの3次元位置を認識し、前記ロボットアームに対して駆動指令を与える演算装置と、を備え、前記演算装置は、取得した前記ステレオ画像からエッジを抽出し、この抽出されたエッジから前記ワークにて同一平面上に位置するエッジを選択すると共に、これら同一平面上に位置するエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲内にある第1エッジについては、少なくとも2本以上をステレオ法によって3次元復元し、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲外にある第2エッジについては、前記3次元復元した第1エッジを含む3次元平面に投影することにより3次元復元し、これら3次元復元された第1及び第2エッジを用いて前記ワークの3次元位置を認識する、ことを特徴とする。本発明によると、同一平面上に存在し、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲内にある第1エッジを少なくとも2本以上、ステレオ法によって3次元復元する。そして、これら3次元復元された第1エッジを含む3次元平面を求める。上記3次元復元された第1エッジと同一平面上にあるエッジの場合、エピポーラ線に平行に近い場合であっても、求めた3次元平面に投影することで、高精度に3次元復元することができる。以下、本発明の実施の形態に係るワークの3次元計測について説明をする。なお、以下の説明において、エッジとは、撮像された画像においてコントラストの変化が急峻な部分をいう。また、3次元復元とは2次元画像から対象物の3次元位置を復元することをいう。更に、以下の図面において、三次元の座標系は、左カメラの光学中心O1を原点とし、原点から右カメラの光学中心O2へ向かう方向をX軸、原点O1から左画像への垂線方向をZ軸、X及びZ軸に垂直な方向をY軸とする。[ロボット装置の構成]図1に示すように、本実施の形態に係るロボット装置1は、複数のロボット装置と組み合わされて一連の生産ラインを構築する、いわゆるロボットセルと呼ばれる組立ロボットである。このロボット装置1は、フレーム状のブース7の内部にワークWに対して組立などの作業を行うロボットアーム2が配設されて構成されており、このブース7の上部にはロボットアーム2の上方からワークを撮像するためのカメラ3及び照明5が取り付けられている。また、上記ロボットアーム2を支持する架台6の内側には、このカメラ3によって撮像された画像からワークWの3次元位置を認識し、上記ロボットアーム2に対して駆動指令を与えるロボットコントローラ制御装置10が設けられている。ロボット装置1は、これらロボットアーム2、カメラ3及びロボットコントローラ10を基本構成としており、カメラ3により撮像された画像を基にワークWを認識し、ロボットアーム2によってワークWを把持して組立などの作業を行うようになっている。このように上記ロボット装置1は、カメラ3及びロボットコントローラ10によって、ワークWの3次元位置を認識する3次元計測装置4を構成しており、図2はこの3次元計測装置4を模式的に表した図である。図2に示すように、上記カメラ3は、カメラパラメータが校正された第1及び第2カメラ3a,3bからなるステレオカメラによって構成されており、上述したステレオ法を用いてワークWの3次元位置を認識している。上記ロボットコントローラ10は、図3に示すように、演算装置102及び記憶装置103を有するコンピュータ本体に、ロボットアーム2及びカメラ3が接続されて構成されている。演算装置102は、第1及び第2カメラ3a,3bによってワークWが撮像されたステレオ画像からワークWの3次元位置を認識し、ロボットアーム2に対して駆動指令を与える。また、コンピュータ本体には、作業者が入力作業を行うためのティーチングペンダント116及び入力装置106や、表示装置107なども接続されている。上記記憶装置103には、第1及び第2ワークW1,W2の設計データや、ロボットアーム2及びカメラ3の制御ドライバなどが格納されている。また、その他にも記憶装置103には、カメラ3が撮像した画像に基づいて対象の3次元位置を求める演算をコンピュータ演算装置102に実行させる3次元計測プログラムCPR、パターンマッチング用のテンプレート画像GTなどが格納されている。より詳しくは、コンピュータ本体は、CPU102aを主体として、画像処理装置102b、音声処理装置102cを有して上記演算装置102を構成している。このCPU102aには、上記画像処理装置102b、音声処理装置102cの他に、ROM103a及びRAM103bがバス111を介して接続されている。ROM103aには、ロボットの基本制御に必要なプログラムが格納されていると共に、上述した3次元計測プログラムCPRなどの各種プログラムやデータが格納されている。RAM103bには、CPU102aに対する作業領域が確保される。画像処理装置102bはCPU102aからの描画指示に応じて表示装置107としてのディスプレイを制御して、その画面上の所定の画像を表示させる。音声処理装置102cはCPU102aからの発音指示に応じた音声信号生成してスピーカ109に出力する。また、バス111には、ロボットアーム2、カメラ3が接続されていると共に、記録ディスク読取装置115が接続されている。そのため、3次元計測プログラムCPRは、例えば記録ディスクやUSBメモリなどの記録媒体Dに記録され、ロボットコントローラ10は、この記録媒体Dを読み込んで例えばROM103aに格納できるようになっている。なお、上述した記憶装置103は、主記憶装置であるROM103a及びRAM103bの他に、コンピュータ読取可能な記録媒体やその他の外部記憶装置を備えて構成されている。更に、バス111には通信装置112が接続されている。従って、上述したような記録媒体Dを使用せずに、通信装置112を介してインターネット等から配信される3次元計測プログラムCPRをダウンロード可能に構成されている。[3次元形状計測方法]ついで、上記3次元計測プログラムを用いたワークの3次元計測方法について説明をする。なお、以下の説明において、第1及び第2カメラ3a,3bが撮像した画像を入力画像もしくはステレオ画像GEと呼び、エッジの抽出処理後のステレオ画像についてはGE1と示す。また、このステレオ画像GEを区別する必要がある場合には、それぞれGEL,GERのようにLRの記号を付して区別する。図4に示すように、ロボット装置1は、ワークWに対して作業を行うに際し図4のステップS1、まず、第1及び第2カメラ3a,3bにより計測対象であるワークWを撮像して2枚の入力画像ステレオ画像GEを取得するS2、取得工程。上記ステレオ画像GEが入力されるとロボットコントローラ6の演算装置102は、入力されたステレオ画像GEに対して、エッジの抽出処理を行うS3、エッジ抽出工程。即ち、図5aに示すようなステレオ画像GEにSobelフィルタや、Prewittフィルタなどのエッジ検出フィルタを用いたフィルタ処理を施し、エッジe1~e9を検出し、ワークWの輪郭を抽出する図5b参照。上記エッジe1~e9を抽出すると演算装置102は、これら検出された複数のエッジe1~e9の中からワークWにて同一平面上に存在するエッジを選択するS4~S6、同一平面エッジ選択工程。具体的には、ロボットコントローラ6は、記憶部103に予め基準画像として記憶されたワークWのテンプレート画像GT図6a参照を読み出し、このテンプレート画像GTを用いてステレオ画像GEに対してパターンマッチングを行うS4。パターンマッチングは、図6bに示すようにステレオ画像GEに対して、テンプレート画像と類似する位置を探索する手法であり、例えば、画像内の輝度値を基にテンプレート画像GE上のワークWの位置を探索する。なお、パターンマッチングの一般的な手法である正規化相関法を示す式を以下に示す。ここで、相関値とは、テンプレート画像GTと入力画像GEの類似度を言う。より詳しくは、図6bに示すようにテンプレート画像GTをステレオ画像内においてピクセル単位で範囲をずらしながら、ステレオ画像GEからテンプレート画像GTに対応する大きさの画像を抽出する。そして、抽出した画像とテンプレート画像との相関値Rを上記式1により求め、ステレオ画像内から計測対象物体の存在する位置x、yを探索する。なお、上記式1における画像内の位置とは、ステレオ画像GEからテンプレート画像GTに対応する大きさの画像を抽出した画像内とテンプレート画像内の位置のことを表す。ところで、記憶部103には、テンプレート画像GTを登録する際に、ワーク上にて同一平面となる各エッジが存在する領域エッジ位置領域を、例えば図6の点線で示される矩形領域Tのような形で記憶している。そのため、入力画像GE内からワークWが存在する位置x、yが見つかると、このパターンマッチング結果と上記エッジ位置領域Tとにより、ステレオ画像上のどの位置に同一平面となるエッジが存在するかを推定するS5。そして、上記同一平面となるエッジが存在する領域を推定すると、図6cに示すようにこのエッジ位置領域Rを上記エッジe1~e9の抽出処理後のステレオ画像エッジ画像GE1に適用する。そして、エッジ位置領域内に存在するエッジe1~e4を同一平面上に存在するエッジとして選択するS6。同一平面上に存在するエッジe1~e4が選択されると、演算装置102は、これら選択されたエッジe1~e4のそれぞれが、エピポーラ線EPと交差する交差角度θ1~θ4を検出するS7、交差角度検出工程。具体的には、図7に示すように、ステレオ画像の少なくともいずれか一方の画像、より好ましくは左右のステレオ画像の両方について、エピポーラ線EPとの交差角度θを測定する。エピポーラ線EPとの交差角度θ1~θ4が検出されると、演算装置102は、これら検出された交差角度θ1~θ4に基づいて、選択されたエッジを第1エッジe2,e4と第2エッジe1,e3に分類するS8,分類工程。上記第1エッジe2,e4は、同一平面上に位置するエッジの内、エピポーラ線EPと交差する交差角度が90°を基準として所定の角度範囲内にあるエッジであり、ステレオ法によって精度良く3次元復元可能なエッジのことである。一方、第2エッジe1,e3は、第1エッジe2,e4と同一平面にあるエッジの内、エピポーラ線と交差する交差角度が90°を基準として所定の角度範囲外にあるエッジであり、エピポーラ線EPに対して平行に近いエッジのことである。これはステレオ法によって精度良く3次元復元できないエッジとも言える。なお、上記交差角度の範囲は、エッジ抽出精度に基づいて決定されるが、本実施の形態の場合、交差角度90°を中心に前後に45°の範囲45°~135°の範囲が第1エッジとするのが望ましい。また、第2エッジを第1エッジ以外の範囲0≦θ<44,135<θ≦180とするのが望ましい。また、上記角度範囲を、エピポーラ線EPとエッジe1~e4とがなす角度の内、角度の小さい方の角度と定義すると、交差角度が45°以上のエッジを第1エッジとし、45°未満のエッジを第2エッジとすることが望ましいとも言える。ただし、第1のエッジとして交差角度が45°以上のエッジを取れない場合や、エッジの抽出精度が高い場合等は45°に限らず、例えば交差角度が20°以上のエッジを第1エッジとし、20°未満のエッジを第2エッジとしてもよい。上記エッジの分類が終わると、第1エッジe2,e4についてはステレオ法を用いて精度よく3次元復元できるため、演算装置102は、少なくとも2本以上の第1エッジを3次元復元するS9、第1エッジ3次元復元工程。具体的には、図7の左画像GE1Lにおいて、各エッジe2,e4それぞれについて任意の2点を選択し、この選択した2点の右画像上における対応点をエピポーラ線EPを用いて特定する。そして、この選択した2点の3次元上の位置を、右画像GE1Rと左画像GE1Lの視差を利用して求め、この求めた2点から各エッジの3次元上の直線の式を導出することによって、エッジを3次元上に復元する。一方、第2エッジe1,e3については、ステレオ法により3次元復元できない。そのため演算装置は、この第2エッジe1,e3を3次元復元するために、3次元復元した少なくとも2本以上の第1エッジe2,e4を用いてこれら3次元復元された第1エッジを含む3次元平面以下、拘束平面というを算出するS10,拘束平面算出工程。ここで、3次元上の平面の式は、求めたい平面の法線ベクトルと平面上の1点を求めることができれば算出することができる。そのため、演算装置102は、図8に示すように、まず、三次元復元した第1エッジの1本から任意の2点、他の1本から任意の1点を取り出す。この時、それぞれの点の座標をx1,y1,z1、x2,y2,z2、x3,y3,z3とすると、図8の方向ベクトルV1x4,y4,z4、V2x5,y5,z5は、以下の式2、式3で求められる。また、上記方向ベクトルV1x4,y4,z4、V2x5,y5,z5より拘束平面の法線ベクトルが式4で表される。そして、上記法線ベクトル及び三次元復元したエッジの任意の一点の座標x3,y3,z3により拘束平面P1は式5によって求める。上記拘束平面P1を求めると、演算装置102は、この拘束平面P1に第2エッジe1,e3を投影することによって3次元復元するS11,S12、第2エッジ3次元復元工程。具体的には、演算装置102は、図9に示すように、左カメラの光学中心O1と左画像上の選択した第2エッジe3Lの端点である2点を含むエッジ視平面P2を作るS11。即ち、画像上のエッジ点をXc1,Yc1,Zc1、Xc2,Yc2,Zc2とするとエッジ視平面P2の法線ベクトルi,j,kは、式6によって表される。ここで、エッジ視平面P2は座標原点を定点とするため、法線ベクトルi,j,kよりエッジ視平面は式7で表すことができる。上記第2エッジe1,e3は、エッジ視平面上の3次元位置に存在する。また、第2エッジは、第1エッジe1,e3と同一平面上に存在するため、上記拘束平面上の3次元位置に存在するとも言える。そのため、演算装置102は、エッジ視平面P2と拘束平面P1との交線E3を算出し、その交線E3を上記第2エッジの三次元位置とするS12。即ち、エッジ視平面P2及び拘束平面P1の交線E3の方向ベクトルXe,Ye,Zeは、上記拘束平面P1の法線ベクトルa,b,cとエッジ視平面P2の法線ベクトルi,j,kとの外積によって表せられ、数8によって表すことができる。また、交線E3が通る任意の定点Xp,Yp,Zpは、拘束平面P1の式及びエッジ視平面P2の式のいずれも満たす点であるため、演算装置102はこの定点Xp,Yp,Zpを、上記式5と式7との連立方程式の解を求めることによって算出する。上記式5と式7との連立方程式は、Ze=0でなければZ=0としてx,yを求めることができ、つまり、拘束平面の式、エッジ視平面の式、Z=0により定点Xp,Yp,Zpを、式9によって表すことができる。これにより、上記方向ベクトルXe,Ye,Ze及び定点Xp,Yp,Zpにより、交線E3は、式10によって表すことができる。そして、演算装置102は式10を求め、第2エッジe3の三次元位置とするS12。演算装置102は、上記第1エッジ及び第2エッジの3次元復元をすると、これら3次元復元された第1及び第2エッジE2,E4,E3を用いてワークWの3次元位置を認識するS13。具体的には、まず、3次元復元された第2エッジE3第2エッジの3次元上の直線の式、3次元復元された第1エッジE2,E4第1エッジの3次元上の直線の式との交点を求める。そして、この求めた交点と、3次元復元された第1エッジE2,E4の1点と、3次元復元された第2エッジE3の1点と、の3点によりワークの角部を起点とした位置姿勢を表現する。このように、ステレオ復元精度の良い、エピポーラ線EPに対して交差角度の大きい第1エッジe2,e4で拘束平面P1を作成する。そして、この拘束平面P1に同一平面上にあるエピポーラ線EPに対して角度の小さい第2エッジe1,e3を投影することにより、エピポーラ線に対して角度の小さい第2エッジe1,e3に関しても精度良く三次元復元が可能となる。また、テンプレート画像GTと共にエッジ位置領域Tを記憶し、パターンマッチングを用いて同一平面上のエッジを選択するため、素早くかつ高精度に同一平面上のエッジを特定することができる。なお、本実施の形態においては、直線上のエッジのみを選択したが、必ずしも直線上のエッジである必要はない。また、3台以上のカメラによってワークを撮像し、これら撮像した複数の画像から2枚の画像を選択しても良い。また、同一平面となるエッジはパターンマッチング以外にもどのような方法によって検出しても良い。例えば、予め参照画像から同一平面となる各エッジの重心、角度、エッジ強度、長さ等の特徴量を記憶しておき、その特徴量と類似したエッジを選択することにより同一平面のエッジを検出するエッジ特徴量による検出方法などを使用しても良い。更に、本発明に係る3次元計測方法は、ロボット装置のみならず、3次元形状計測器、自動車の衝突防止装置など、画像を用いて対象を認識するものであればどのようなものに使用されても良い。また、本実施の形態に記載された発明は、どのように組み合わされても良いことは、言うまでもない。"