(57)【特許請求の範囲】
【請求項１】
複数のカメラを用いて円形状の面を有する物体に対するステレオ計測を実施して、その計測結果に基づき前記円形状の面の姿勢を認識する方法において、
前記複数のカメラにより生成された複数の画像をそれぞれ個別に処理して、各画像から円形状の輪郭線を抽出する第１ステップ、
前記複数の画像のうちの１つを基準画像として、この基準画像に対する前記第１ステップの処理により抽出された円形状の輪郭線から複数の円弧をモデル円弧として抽出する第２ステップ、
前記複数の画像のうちの前記基準画像以外の画像から抽出された輪郭線の各構成画素の座標を、それぞれ前記基準画像を生成したカメラと同一の光軸方向から撮像を行った場合に当該画素が置かれるべき座標に変換する第３ステップ、
第３ステップで変換された後の輪郭線から前記第２ステップで抽出された各モデル円弧に対応する円弧をそれぞれ特定し、この特定処理により画像間で対応づけられた円弧の組毎に、その組に含まれるそれぞれの円弧における相対位置が円弧間で共通する関係にある座標の組を一組特定して、特定された各座標に対応する３次元座標を算出する第４ステップ、
前記画像間で対応づけられた円弧の組毎に算出された３次元座標を用いて、これらの３次元座標が分布する平面を特定し、この平面の姿勢を認識する第５ステップ、
を実行することを特徴とする姿勢認識方法。
【請求項２】
請求項１に記載された方法において、
前記ステレオ計測のためのカメラとして２台のカメラを、画像の左右方向に視差が生じる関係にして配置し、
前記第２ステップでは、前記基準画像から抽出された円形状の輪郭線のうち、両端部の間での上下方向における座標の差が左右方向における座標の差より大きくなる２以上の円弧がモデル円弧に含まれるようにする、姿勢認識方法。
【請求項３】
請求項１に記載された方法において、
前記ステレオ計測のためのカメラとして２台のカメラを、画像の上下方向に視差が生じる関係にして配置し、
前記第２ステップでは、前記基準画像から抽出された円形状の輪郭線のうち、両端部の間での左右方向における座標の差が上下方向における座標の差より大きくなる２以上の円弧がモデル円弧に含まれるようにする、姿勢認識方法。
【請求項４】
請求項１に記載された方法において、
前記第２ステップでは、前記基準画像から抽出された円形状の輪郭線を、両端部の間での上下方向における座標の差が左右方向における座標の差より大きくなる円弧と、両端部の間での左右方向における座標の差が上下方向における座標の差より大きくなる円弧とがそれぞれ２以上生じるように分割して、この分割により生じた各円弧をモデル円弧として抽出する、姿勢認識方法。
【請求項５】
複数のカメラと、これらのカメラを用いて認識対象の物体に対するステレオ計測を実施して、その計測結果に基づき前記物体に対する認識処理を行う認識処理装置とを具備する３次元視覚センサであって、
前記認識処理装置には、
円形状の面を有する物体を対象に前記複数のカメラにより生成された複数の画像をそれぞれ個別に処理して、各画像から円形状の輪郭線を抽出する輪郭線抽出手段と、
前記複数の画像のうちの１つを基準画像として、この基準画像より抽出された円形状の輪郭線から複数の円弧をモデル円弧として抽出するモデル円弧抽出手段と、
前記複数の画像のうちの前記基準画像以外の画像から抽出された輪郭線の各構成画素の座標を、それぞれ前記基準画像を生成したカメラと同一の光軸方向から撮像を行った場合に当該画素が置かれるべき座標に変換する変換処理手段と、
前記変換処理手段により変換された後の輪郭線から前記円弧抽出手段により抽出された各モデル円弧に対応する円弧をそれぞれ特定する対応円弧特定手段と、
前記円弧抽出手段および変換処理手段ならびに対応円弧特定手段の処理により画像間で対応づけられた円弧の組毎に、その組に含まれるそれぞれの円弧における相対位置が円弧間で共通する関係にある座標の組を一組特定して、特定された各座標に対応する３次元座標を算出する３次元座標算出手段と、
前記画像間で対応づけられた円弧の組毎に算出された３次元座標を用いて、これらの３次元座標が分布する平面を特定し、この平面の姿勢を認識する認識処理手段と、
前記認識処理手段による認識結果を出力する出力手段とが、含まれて成る３次元視覚センサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、円形状の面を有する物体に対するステレオ計測を実施して、その計測結果に基づき円形状の面の姿勢を認識する方法、およびこの方法が適用された３次元視覚センサに関する。
【背景技術】
【０００２】
複数のカメラを用いたステレオ計測では、一般に、各カメラの画像からエッジなどの特徴点を求めた後に、特定のカメラによる画像を基準画像に設定して、この基準画像中の個々の特徴点について他の画像における対応点を求め、この処理により画像間で対応づけられた各特徴点の座標を用いて３次元座標を算出する。また、基準画像中の特徴点への対応点を見つける処理では、基準画像から処理対象の特徴点を中心にした局所領域内の画像をモデル画像として抽出し、エピポーラ拘束に基づき、他の画像においてモデル画像への類似度が最も高くなる領域を特定して、この領域の中心点を基準画像側の特徴点への対応点とする（特許文献１の段落００４５〜００４８を参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−５３１３６号公報
【特許文献２】特開２００２−１４０７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
製造現場においては、円形状の容器の蓋部や、工業製品の押釦スイッチなどの円形物を検査したり、円形状の部品をピッキングロボットに把持させるなどの目的で、円形物を含む平面の姿勢を認識する場合がある。この認識処理をステレオ計測を用いて行う方法として、円形物の輪郭線を構成する３点以上の特徴点の３次元座標をステレオ計測により求めた後に、これらの座標が分布する平面の方程式を特定し、この平面の傾きを表す角度を算出する方法が考えられる。
【０００５】
上記の方法を実施するには、まず円形状の輪郭線の構成点を精度良く求める必要があるが、この課題に関しては、たとえば、特許文献２に記載された発明を利用することができる。この特許文献２には、処理対象の画像からエッジ点と円の仮中心を抽出し、エッジ点毎に、濃度勾配方向と当該エッジ点から円の仮中心に対する方向とを照合して、両方向がほぼ合致するものを、円の輪郭線を構成する点として特定することが記載されている。
【０００６】
しかし、この方法により画像毎に円の輪郭線を構成する特徴点を抽出しても、円の輪郭線においては、近傍にある特徴点同士の濃度勾配方向や周囲の画像が似通った状態になるため、特徴点の単位で画像間の対応づけを行うのは困難である。また、平面をできるだけ精度良く特定するために多数の３次元座標を算出すると、演算の負担が大きくなって、処理を高速化できないという問題もある。
【０００７】
本発明は上記の問題に着目し、円形状の面の輪郭線を構成する特徴点を画像間で対応づける処理を簡単かつ精度良く行うことにより、姿勢の認識に必要な３次元座標を得るための処理を高速化し、かつ３次元座標の計測誤差が小さくなるようにすることを、課題とする。
【課題を解決するための手段】
【０００８】
本発明による姿勢認識方法は、複数のカメラを用いて円形状の面を有する物体に対するステレオ計測を実施して、その計測結果に基づき円形状の面の姿勢を認識するもので、以下の第１〜第５のステップを実行することを特徴とする。
【０００９】
第１ステップでは、複数のカメラにより生成された複数の画像をそれぞれ個別に処理して、各画像から円形状の輪郭線を抽出する。第２ステップでは、複数の画像のうちの１つを基準画像として、この基準画像に対する第１ステップの処理により抽出された円形状の輪郭線から複数の円弧をモデル円弧として抽出する。
【００１０】
第３ステップでは、複数の画像のうちの基準画像以外の画像から抽出された輪郭線の各構成画素の座標を、それぞれ基準画像を生成したカメラと同一の光軸方向から撮像を行った場合に当該画素が置かれるべき座標に変換する。
【００１１】
第４ステップでは、第３ステップで変換された後の輪郭線から第２ステップで抽出された各モデル円弧に対応する円弧をそれぞれ特定し、この特定処理により画像間で対応づけられた円弧の組毎に、その組に含まれるそれぞれの円弧における相対位置が円弧間で共通する関係にある座標の組を一組特定して、特定された各座標に対応する３次元座標を算出する。第５ステップでは、画像間で対応づけられた円弧の組毎に算出された３次元座標を用いて、これらの３次元座標が分布する平面を特定し、この平面の姿勢を認識する。
【００１２】
上記の方法によれば、各画像からそれぞれ円形状の輪郭線を抽出した後に、基準画像から、円形状の輪郭線の一部に相当する円弧をモデル円弧として複数抽出し、これらのモデル円弧について、それぞれ基準画像以外の画像（以下、「比較画像」という。）で対応する円弧を特定する。この特定処理に先立ち、比較画像から抽出された輪郭線の各構成画素の座標を、それぞれ基準画像を生成したカメラと同一の光軸方向から撮像を行った場合に当該画素が置かれるべき座標に変換するので、モデル円弧に対応する円弧をモデル円弧と同様の姿勢に変換することができ、対応する円弧を容易に見つけることができる。また、対応づけられた円弧の各組み合わせについて、３次元座標の算出対象とする座標の組を一組ずつ特定することにより、３次元座標の算出対象の特徴点の数が削減されるが、対応づけられた個々の円弧における相対位置が円弧間で共通する関係にある座標の組を特定することにより、対応づけの精度を確保することができる。よって、平面の特定に必要な３次元座標を精度良く求めることが可能になる。
【００１３】
上記の方法の第２ステップでは、カメラ間の視差を明確に表す形状の円弧がモデル円弧として抽出されるように、ステレオ計測のためのカメラの位置関係に応じて円弧の抽出範囲を変更するのが望ましい。
たとえば、ステレオ計測のためのカメラとして２台のカメラを、画像の左右方向の視差が大きくなる関係にして配置する場合には、第２ステップでは、基準画像から抽出された円形状の輪郭線のうち、両端部の間での上下方向における座標の差が左右方向における座標の差より大きくなる２以上の円弧がモデル円弧に含まれるようにする。また、２台のカメラを画像の上下方向の視差が大きくなる関係にして配置する場合には、第２ステップでは、基準画像から抽出された円形状の輪郭線のうち、両端部の間での左右方向における座標の差が上下方向における座標の差より大きくなる２以上の円弧がモデル円弧に含まれるようにする。
【００１４】
ただし、カメラの配置関係に関わらずに、基準画像から抽出された円形状の輪郭線を、両端部の間での上下方向における座標の差が左右方向における座標の差より大きくなる円弧と、両端部の間での左右方向における座標の差が上下方向における座標の差より大きくなる円弧とがそれぞれ２以上生じるように分割して、この分割により生じた各円弧をモデル円弧として抽出してもよい。このようにすれば、カメラ間の視差がいずれの方向に生じる場合にも、その視差を明確に表す円弧を２以上抽出することができ、安定した計測を行うことができる。
【００１５】
本発明が適用される３次元視覚センサは、複数のカメラと、これらのカメラを用いて認識対象の物体に対するステレオ計測を実施して、その計測結果に基づき前記物体に対する認識処理を行う認識処理装置とを具備する。この認識処理装置には、円形状の面を有する物体を対象に前記複数のカメラにより生成された複数の画像をそれぞれ個別に処理して、各画像から円形状の輪郭線を抽出する輪郭線抽出手段；複数の画像のうちの１つを基準画像として、この基準画像より抽出された円形状の輪郭線から複数の円弧をモデル円弧として抽出するモデル円弧抽出手段；複数の画像のうちの基準画像以外の画像から抽出された輪郭線の各構成画素の座標を、それぞれ基準画像を生成したカメラと同一の光軸方向から撮像を行った場合に当該画素が置かれるべき座標に変換する変換処理手段；変換処理手段により変換された後の輪郭線から前記円弧抽出手段により抽出された各モデル円弧に対応する円弧をそれぞれ特定する対応円弧特定手段；円弧抽出手段および変換処理手段ならびに対応円弧特定手段の処理により画像間で対応づけられた円弧の組毎に、その組に含まれるそれぞれの円弧における相対位置が円弧間で共通する関係にある座標の組を一組特定して、特定された各座標に対応する３次元座標を算出する３次元座標算出手段；画像間で対応づけられた円弧の組毎に算出された３次元座標を用いて、これらの３次元座標が分布する平面を特定し、この平面の姿勢を認識する認識処理手段；認識処理手段による認識結果を出力する出力手段が設けられる。
【００１６】
上記構成の３次元視覚センサによれば、円形状の面を有する物体に対して本発明による姿勢認識方法を実施して、円形状の面の姿勢を高速かつ精度良く認識することができる。
【発明の効果】
【００１７】
本発明によれば、円形状の面の姿勢を認識するのに必要な３次元座標を短い処理時間で精度良く求めることができる。よって、円形状の面の姿勢を十分な精度で認識することができ、また処理を高速化することが可能になる。
【図面の簡単な説明】
【００１８】
【図１】３次元視覚センサが導入された検査ラインの構成例を示す図である。
【図２】３次元視覚センサのブロック図である。
【図３】ステレオカメラの配置例を示す図である。
【図４】図３（２）のカメラ配置が採用された場合の基準画像および比較画像を示す図である。
【図５】検査に関する処理の手順を示すフローチャートである。
【図６】モデル円弧および計測対象点の設定例を示す図である。
【図７】平面の傾きを示す角度θの概念を示す図である。
【図８】検査結果の表示画面を示す図である。
【図９】モデル円弧および計測対象点の他の設定例を示す図である。
【図１０】モデル円弧および計測対象点の他の設定例を示す図である。
【図１１】モデル円弧および計測対象点の他の設定例を示す図である。
【図１２】カメラ配置の選択画面を示す図である。
【図１３】カメラ配置の選択画面を示す図である。
【発明を実施するための形態】
【００１９】
図１は、３次元視覚センサが導入された検査ラインの例を示す。
この検査ラインは、円筒状の容器３をコンベア４により順に搬送しながら、各容器３（以下、これを「ワーク３」という。）の蓋部３０の上面の傾斜角度を３次元計測により求めることによって、蓋部３０が容器本体に適切に装着されているかどうかを検査するものである。
【００２０】
この検査ラインに導入されている３次元視覚センサ１００は、コンベア４の上方に設けられたステレオカメラ１と、搬送ラインの近傍に配置された認識処理装置２とにより構成される。図中のステレオカメラ１は、３台のカメラＣ０，Ｃ１，Ｃ２により構成されるが、カメラをＣ０，Ｃ１の２台にすることもできる。
【００２１】
認識処理装置２は、専用のプログラムが格納されたパーソナルコンピュータである。この認識処理装置２では、各カメラＣ０，Ｃ１，Ｃ２から入力した画像を処理して、蓋部３０の輪郭線の構成点（エッジ点）の３次元座標を複数算出し、これらの３次元座標が分布する平面の方程式を求める。さらに認識処理装置２では、この方程式から平面の姿勢を表す角度を算出し、この角度をあらかじめ設定した判定しきい値と照合して、角度がしきい値以内であるかどうかを判定する。ここで角度がしきい値以内であれば、蓋部３０の装着が良好であるという判定結果（ＯＫ判定）が出力され、角度がしきい値を上回る場合には、蓋部３０の装着が不良であるという判定結果（ＮＧ判定）が出力される。
【００２２】
図２は、上記の３次元視覚センサ１００の構成をブロック図により表したものである。
この図に示すように、認識処理装置２には、各カメラＣ０，Ｃ１，Ｃ２に対応する画像入力部２０，２１，２２、カメラ駆動部２３、ＣＰＵ２４、メモリ２５、入力部２６、表示部２７、通信インターフェース２８などが含まれる。
【００２３】
カメラ駆動部２３は、ＣＰＵ２４からの指令に応じて、各カメラＣ０，Ｃ１，Ｃ２を同時に駆動する。これにより一組のステレオ画像が生成されてメモリ２５に格納され、ＣＰＵ２４により検査に関する一連の処理が実行される。
【００２４】
表示部２７は、図１に示すモニタ装置である。また入力部２６には、図１中のキーボード２６Ａおよびマウス２６Ｂが含まれる。これらは、キャリブレーション処理や３次元モデルの作成処理の際に、設定のための情報を入力したり、作業を支援するための情報を表示する目的に使用される。
通信インターフェース２８は、外部装置に検査結果を出力する目的に使用される。
【００２５】
メモリ２５は、ＲＯＭ，ＲＡＭ，およびハードディスクなどの大容量メモリを含むもので、キャリブレーション処理や３次元認識処理のためのプログラム、ならびに設定データや、事前のキャリブレーション処理で算出された３次元計測用のパラメータなどが格納されている。
【００２６】
ＣＰＵ２４は、メモリ２５内のプログラムに基づき、３次元計測用のパラメータの算出および登録を行った後に、カメラの選択に関する設定操作（詳細は後記する。）などを受け付けることにより、検査の実行が可能な状態となる。
【００２７】
図３は、ステレオカメラ１を構成する各カメラの配置を、鉛直方向から見た模式図により示す。なお、図中のＸ０は図１に示すコンベア４の幅方向に対応し、Ｙ０はコンベア４の搬送方向に対応する。各カメラＣ０〜Ｃ２は、撮像面の左右方向（ｘ軸方向）をＸ０方向に近い状態にし、撮像面の上下方向（ｙ軸方向）をＹ０平面に近い状態にして配備される。
【００２８】
この実施例で３台のカメラＣ０，Ｃ１，Ｃ２を使用する場合には、図３（１）に示すように、カメラＣ０，Ｃ２をＸ０方向にほぼ沿って並んだ状態にし、これらの並びに対し、Ｙ０方向における位置をずらし、かつカメラＣ０とＹ０方向に沿って並んだ関係になるようにカメラＣ１を配置する。この配置により、カメラＣ０とＣ２との間では、主として左右方向（ｘ軸方向）に視差が生じ、カメラＣ０とカメラＣ１との間では、主として上下方向（ｙ軸方向）に視差が生じる状態となる。
【００２９】
一方、使用するカメラをＣ０，Ｃ１の２台にする場合には、図３（２）に示すように、各カメラＣ０，Ｃ１をＸ０方向に沿って並べた状態にする配置と、図３（３）に示すように、各カメラＣ０，Ｃ１をＹ０方向に沿って並べた状態にする配置とのいずれかを選択する。
【００３０】
また、この実施例では、いずれの配置においても、カメラＣ０を３次元計測の基準のカメラに設定すると共に、このカメラＣ０の光軸を鉛直方向に向けた状態（すなわち正面視を行う状態）に調整する。カメラＣ１，Ｃ２は、カメラＣ０と視野が重なるように、光軸を斜めに向けた状態で配置される。
【００３１】
図４は、図３（２）に示す配置パターンを選択して、そのパターンに従って配置されたカメラＣ０，Ｃ１により生成されたワーク３の画像の模式図である。また図５は、上記の３次元視覚センサ１００により実行される検査の手順を示すフローチャートである。
【００３２】
以下、図４に示す２つの画像（カメラＣ０による画像を「基準画像」といい、カメラＣ１による画像を「比較画像」という。）を用いて検査を行うことを前提に、図５のフローチャートの流れに沿って、検査における処理を詳細に説明する。
【００３３】
この実施例の検査は、検査対象のワーク３に対するステレオ撮像を実行することにより開始される（ＳＴ１）。各カメラＣ０，Ｃ１により生成されたワーク３の画像（図３参照）は、それぞれ対応する画像入力部２０，２１によりディジタル変換されて、メモリ２５内の作業エリアに格納される。
【００３４】
ステレオ撮像が終了すると、ＣＰＵ２４は、生成された画像毎に、ＳＴ２〜４の各ステップを実行する。
個々の画像を「処理対象画像」として説明すると、ＳＴ２では、処理対象画像にエッジ抽出フィルタを走査して、画像中のエッジ点を抽出する。これにより、エッジ点に相当する画素を「１」とし、その他の画素を「０」とするエッジ画像が生成される。
【００３５】
ＳＴ３では、抽出されたエッジ点の中から円の輪郭線を構成する点を特定する。
具体的な処理は特許文献２に記載されているものと同様であるので、ここでは簡単に説明する。まず処理対象画像を２値化して円形の画像領域を抽出し、その中心点の座標を円の仮中心として求める。つぎに、ＳＴ２で抽出されたエッジ点毎に、その点から円の仮中心に向かう方向を特定し、この方向と当該エッジ点の濃度勾配方向とを比較する。ここで、円の仮中心に向かう方向と濃度勾配方向との差が所定の許容値以内となるエッジ点に対しては、円の輪郭線の構成点であると判定して、エッジ画像における値「１」を維持する。一方、円の仮中心に向かう方向と濃度勾配方向との差が許容値を上回るエッジ点に対しては、円の輪郭線の構成点ではないと判定して、エッジ画像における値を「１」から「０」に変更する。この一連の処理により、エッジ画像は、円の輪郭線を表すものに変更される。
【００３６】
ＳＴ４では、ＳＴ３の処理後のエッジ画像中の各エッジ点の座標を用いて、円の中心点の座標を算出し、これを仮中心の座標と置き換える。置き換えられた中心点の座標は、３次元計測の対象として保存される。
【００３７】
このようにして、基準画像、比較画像のそれぞれに対し、ＳＴ２〜４の処理を実行することにより、各画像から円の輪郭線を表すエッジ画像が生成される。なお、図４に示した比較画像によれば、この比較画像から生成されるエッジ画像には、蓋部３０の上面の輪郭線のほか、蓋部３０の側面や容器本体の円弧状の輪郭線が含まれる可能性がある。このような画像を処理する場合には、円の輪郭線の構成点を特定する処理（ＳＴ３）を行う際に、閉鎖曲線を形成しないエッジ点や、仮の中心点からの距離が所定のしきい値を超えるエッジ点を除去する処理を行うのが望ましい。
【００３８】
ＳＴ５では、基準画像から生成されたエッジ画像（以下、「基準エッジ画像」という。）を対象に、３次元計測の対象とするモデル領域を設定する処理を実行する。
【００３９】
図６はモデル領域の設定例を示す。なお、図中のＯは、ＳＴ４の処理により特定された円の中心点である。
この実施例では、基準エッジ画像中の各エッジ点により表される円を、画像のｘ軸およびｙ軸に沿う方向を基準に４５度単位で分割することにより生じる８個の円弧Ｐ１〜Ｐ８の中から、選択されているカメラ配置に適した円弧を選択して、その円弧を含む範囲にモデル領域を設定するようにしている。
【００４０】
この実施例が前提とする図３（２）のカメラ配置では、ｘ軸方向の視差が大きくなるので、縦向きのエッジであれば、視差によるｘ座標の違いが明確になる。そこで、この実施例では、８個の円弧Ｐ１〜Ｐ８のうち、両端部の間でのｙ座標の差がｘ座標の差より大きくなる円弧、具体的には、ｘ軸方向に対する角度が４５度以内の範囲にある４つの円弧Ｐ１，Ｐ４，Ｐ５，Ｐ８をモデル円弧として選択する。そして、これらのモデル円弧Ｐ１，Ｐ４，Ｐ５，Ｐ８をそれぞれ含むように、４つのモデル領域Ｒ１，Ｒ４，Ｒ５，Ｒ８を設定する。
なお、実際に実行するアルゴリズムでは、円を８分割する処理を必要とはしない。たとえば、中心点Ｏを通り、ｘ軸方向に平行な直線と、この直線に対して４５度の傾きを持つ２つの直線とを設定し、これらの直線に挟まれた範囲の円弧をモデル円弧として抽出すればよい。
【００４１】
さらにこの実施例では、計測対象点として、各モデル円弧Ｐ１，Ｐ４，Ｐ５，Ｐ８の中心点Ｍ１，Ｍ４，Ｍ５，Ｍ８を計測対象点として特定する（ＳＴ６）。なお、これらの点Ｍ１，Ｍ４，Ｍ５，Ｍ８のほか、この実施例では、ＳＴ４で求めた円の中心点Ｏを計測対象点とする。
【００４２】
基準エッジ画像に対する処理が完了すると、つぎは、カメラＣ１による比較画像から生成されたエッジ画像（以下、「比較エッジ画像」という。）を対象として、まず、この比較エッジ画像を正面視状態の画像に変換する処理を実行する（ＳＴ７）。
【００４３】
さらに、変換後の比較エッジ画像において、基準エッジ画像側の各モデル領域の画像を順に照合して、各モデル領域に対応する領域を特定するとともに、特定された領域から計測対象点Ｍ１，Ｍ４，Ｍ５，Ｍ８への対応点を抽出する（ＳＴ８）。
上記の照合処理では、たとえば照合対象のモデル領域の画像との差分演算を実行して、差分値が最も小さくなる領域を抽出する。よって、ＳＴ８では、モデル円弧に最も近い姿勢を持つ円弧が特定され、その円弧の中心点が計測対象点Ｍ１，Ｍ４，Ｍ５，Ｍ８への対応点として抽出される。
【００４４】
上記のように、基準エッジ画像と比較エッジ画像との間で対応関係にある円弧が４組特定され、これらの組につき、それぞれ２次元座標の組み合わせが一組ずつ特定される。ＳＴ９では、これらに各エッジ画像から抽出された円の中心点の２次元座標の組み合わせを加えた計５組の２次元座標を用いて、組毎に対応する３次元座標を算出する。
【００４５】
この後は、算出された５点の３次元座標を用いて、これらの点が分布する平面の方程式を導出する（ＳＴ１０）。具体的には、最小二乗法を用いて、上記（１）式の係数ａ，ｂ，ｃ，ｄの最適な値を求めることになる。
ａＸ＋ｂＹ＋ｃＺ＋ｄ＝０    ・・・（１）
【００４６】
ＳＴ１１では、上記の平面の傾きを表す角度を算出する。具体的には、図７に示すように、ＸＹＺ座標系に位置する平面Ｓの法線ベクトルＨがＺ軸に対してなす角度θを算出する。角度θを算出するための演算式は、以下のとおりである。
【００４７】
【数１】
0005476943.tif 000002
【００４８】
ＳＴ１２では、上記の演算により算出された角度θを、あらかじめ登録された許容値θ０（蓋部３０の装着が良好なワーク３に対する計測から割り出された角度）と比較する。ここで角度θがθ０以下であれば、「ＯＫ」と判定し（ＳＴ１３）、θがθ０を超える場合には「ＮＧ」と判定する（ＳＴ１４）。この後は、判定結果や計測結果を出力し（ＳＴ１５）、これをもって処理を終了する。
【００４９】
図８は上記の検査結果の出力画面の例を示す。この例の画面には、カメラＣ０による基準画像を表示する領域１０が設けられて、その領域１０内に円の輪郭線や中心点を示すマーキングＭＫ１，ＭＫ２が付された基準画像が表示される。またこの領域１０の右側には、判定の結果を示す文字列（「ＯＫ」）のほか、円の中心点につき算出された３次元座標や、平面の方程式から割り出された面の傾き角度θが表示される。
【００５０】
上記したように、この実施例では、基準エッジ画像よりカメラ間の視差を明確に表すことが可能な範囲の円弧をモデル円弧として特定して、基準エッジ画像と同様の正面視状態を示す画像に変換された比較エッジ画像からモデル円弧に対応する円弧を抽出するので、画像中の円弧の長さや姿勢に基づき、対応関係にある円弧どおしを容易に特定することができる。また、対応づけられた円弧の組み合わせ毎に精度の良い３次元座標を１組抽出することができ、これらを用いて平面の方程式を精度良く特定することができる。よって、多数の３次元座標を求めなくとも平面の姿勢の認識精度を高め、処理を高速化することができる。
【００５１】
上記では、２台のカメラＣ０，Ｃ１が図３（２）の状態で配置されていることを前提にして、図６に示すように、ｘ軸方向の視差を明確に表す円弧を含む領域をモデル領域に設定することにより、比較エッジ画像に対する照合処理の精度が確保されるようにした。図３（３）に示したカメラ配置が選択される場合には、これと同様の目的で、モデル領域の設定を、図９に示すようにする。
【００５２】
図９の例では、ｙ軸に沿う方向に対して４５度の角度範囲に位置する円弧Ｐ２，Ｐ３，Ｐ６，Ｐ７をモデル円弧として選択して、これらを含む４つのモデル領域Ｒ２，Ｒ３，Ｒ６，Ｒ７を設定する。また、各モデル円弧Ｐ２，Ｐ３，Ｐ６，Ｐ７の中心点Ｍ２，Ｍ３，Ｍ６，Ｍ７の座標を計測対象として抽出する。この設定により、ｙ軸方向の視差を明確に表す円弧をモデル円弧として、比較エッジ画像から対応円弧を抽出する処理を精度良く行うことが可能になる。
【００５３】
また、図３（１）に示した３台のカメラＣ０，Ｃ１，Ｃ２の配置パターンを選択する場合には、図１０に示すように、円を８分割して得られる各円弧Ｐ１〜Ｐ８の全てをモデル円弧に設定して、これらをそれぞれ含むようにモデル領域Ｒ１〜Ｒ８を設定する。さらに各モデル円弧Ｐ１〜Ｐ８の中心点Ｍ１〜Ｍ８の座標を、計測対象として抽出する。このようにすれば、カメラＣ１，Ｃ２間に生じるｘ軸方向の視差には、モデル領域Ｒ１，Ｒ４，Ｒ５，Ｒ８を用いて円弧の対応づけの精度を確保することができ、カメラＣ０とカメラＣ１，Ｃ２間に生じるｙ軸方向の視差には、モデル領域Ｒ２，Ｒ３，Ｒ６，Ｒ７を用いて円弧の対応づけの精度を確保することができる。
【００５４】
ただし、カメラ配置に応じてモデル領域の設定方法を変更する処理は必須ではなく、いずれの配置に対しても、図１０に示す方法によりモデル領域を設定してもよい。また、図１１に示すように、基準エッジ画像中の円を９０度単位で分割し、この分割により生じた４つの円弧Ｐ１１，Ｐ１２，Ｐ１３，Ｐ１４をそれぞれモデル円弧として、これらのモデル円弧を含む４つのモデル領域Ｒ１１，Ｒ１２，Ｒ１３，Ｒ１４を設定し、各モデル円弧Ｐ１１，Ｐ１２，Ｐ１３，Ｐ１４の中心点Ｍ１１，Ｍ１２，Ｍ１３，Ｍ１４を計測対象点としてもよい。
【００５５】
また、前出の（１）式によれば、平面の方程式を特定するには、最低３個の３次元座標を求めれば良いので、図３（２）または（３）の配置パターンを選択する場合であれば、視差が大きくなる軸方向に沿って対向する一対の円弧をモデル円弧とし、これらの円弧の中心点および円の中心点Ｏを計測対象点としてもよい。また、中心点Ｏの３次元座標を算出しない場合であれば、視差が大きくなる軸方向に沿って対向する一対の円弧と、その他の１つの円弧の計３個をモデル円弧に設定してもよい。
【００５６】
つぎに、図３（１）〜（３）の例の配置パターンによれば、選択したパターンに応じて、カメラの位置や姿勢を調整する必要があるが、これに限らず、３台以上のカメラを固定した状態で配置して、そのうちの複数台を自由に選択して３次元計測に使用することも可能である。
【００５７】
図１２および図１３は、３台のカメラＣ０，Ｃ１，Ｃ２を固定配置して、３次元計測に使用するカメラを選択するようにした場合の設定画面の例を示す。具体的には、３台の各カメラＣ０，Ｃ１，Ｃ２は図３（１）に示した状態で配置されており、カメラＣ０，Ｃ１を組み合わせる「セットＡ」、カメラＣ０，Ｃ２を組み合わせる「セットＢ」、３つのカメラＣ０，Ｃ１，Ｃ２を組み合わせる「セットＣ」の３通りの組み合わせの選択が可能に設定される。
【００５８】
設定画面には、カメラＣ０，Ｃ１，Ｃ２が、それぞれ「カメラ０」「カメラ１」「カメラ２」としてユーザに提示され、組み合わせ毎に選択ボタン１１，１２，１３が表示される。また選択ボタン１１，１２，１３の右側には、カメラＣ０，Ｃ１，Ｃ２毎の画像表示領域１４，１５，１６が設けられる。選択ボタン１１，１２，１３のいずれかが操作されると、その操作により選択された組み合わせにかかる画像表示領域が有効化されて、対応するカメラからの画像（モデルのワークを撮像したもの）が表示される。
【００５９】
図１２の例では、カメラＣ０，Ｃ１の組み合わせが選択され、これに伴い、カメラＣ０，Ｃ１の画像表示領域１４，１５にワーク３の画像が表示されている。図１３の例では、３台のカメラＣ０，Ｃ１，Ｃ２による組み合わせが選択され、これに伴い、全ての画像表示領域１４，１５，１６にワーク３の画像が表示されている。
【００６０】
この実施例では、セットＡが選択された場合には図９に示したモデル領域の設定方法を、セットＢが選択された場合には図６に示したモデル領域の設定方法を、セットＣが選択された場合には図１０に示したモデル領域の設定方法を、それぞれ自動選択するようにしている。
【００６１】
なお、上記のように、カメラＣ０，Ｃ１，Ｃ２の配置パターンが定められている場合に限らず、ユーザによりカメラの位置関係や光軸の方向が自由に設定される場合にも、キャリブレーション処理によりカメラの台数やカメラ間の位置関係を特定し、その位置関係に応じてモデル円弧の抽出範囲や数を設定することができる。
【符号の説明】
【００６２】
１    ステレオカメラ
２    認識処理装置
３    ワーク
２４  ＣＰＵ
２７  表示部（モニタ）
３０  蓋部
Ｃ０，Ｃ１，Ｃ２  カメラ
Ｐ１〜Ｐ８，Ｐ１１〜Ｐ１４  円弧
Ｍ１〜Ｍ８，Ｍ１１〜Ｍ１４  計測対象点
【図１】
0005476943.tif 000003
【図２】
0005476943.tif 000004
【図３】
0005476943.tif 000005
【図４】
0005476943.tif 000006
【図５】
0005476943.tif 000007
【図６】
0005476943.tif 000008
【図７】
0005476943.tif 000009
【図８】
0005476943.tif 000010
【図９】
0005476943.tif 000011
【図１０】
0005476943.tif 000012
【図１１】
0005476943.tif 000013
【図１２】
0005476943.tif 000014
【図１３】
0005476943.tif 000015