(57)【要約】【課題】３次元計測処理用のパラメータの算出が完了したときに、算出されたパラメータの精度を簡単に確認できるようにする。【解決手段】撮像により生成された画像から位置関係が既知の複数の特徴点を抽出することが可能な形態のキャリブレーションワークを用いたキャリブレーション処理により３次元計測のためのパラメータを算出した後に、パラメータの算出に用いられたステレオ画像に含まれる複数の特徴点を対象に、算出したパラメータを用いた３次元座標の算出処理を実行する。そして、算出された各３次元座標を透視変換して、変換後の座標を所定のパターンで表した投影画像を生成し、これをモニタ装置に表示する。【選択図】図８
2010237193.tif 000002
【特許請求の範囲】
【請求項１】
撮像により生成された画像から位置関係が既知の複数の特徴点を抽出することが可能な形態のキャリブレーションワークをステレオ撮像することにより生成された一組以上のステレオ画像を入力して、当該ステレオ画像から前記キャリブレーションワーク内の特徴点を４個以上抽出し、これらの特徴点を用いて３次元計測のためのパラメータを算出するキャリブレーション装置において、
前記パラメータの算出に用いられたステレオ画像に含まれる複数の特徴点を対象として、前記算出されたパラメータを用いた３次元座標の算出処理を実行する仮計測手段と、
前記仮計測手段が算出した各特徴点の３次元座標を透視変換し、変換後の各特徴点をそれぞれ所定のパターンで表した投影画像を生成する透視変換手段と、
透視変換手段により生成された投影画像をモニタ装置に表示する表示制御手段とを、
具備することを特徴とする、キャリブレーション装置。
【請求項２】
前記表示制御手段は、前記投影画像に含まれる各特徴点について、それぞれ各特徴点の前記既知の位置関係に対する当該特徴点の透視変換前の３次元座標の逸脱度合いを求め、各特徴点の表示の態様をそれぞれの逸脱度合いの程度に応じて決定する、請求項１に記載されたキャリブレーション装置。
【請求項３】
前記仮計測手段は、撮像された画像から複数の特徴点を抽出することが可能に設計された平面を有するキャリブレーションワークに対する複数回のステレオ撮像により生成された複数組のステレオ画像を用いて前記パラメータの算出処理が行われたとき、この処理に用いられたステレオ画像のうちの少なくとも一組に対して、その組のステレオ画像に含まれる複数の特徴点の３次元座標を算出する処理を実行し、
前記表示制御手段は、同一の組のステレオ画像から抽出されて前記仮計測手段および透視変換手段により処理されることにより前記投影画像に含まれた複数の特徴点について、それぞれ前記キャリブレーションワークの各特徴点を含む平面に対する当該特徴点の透視変換前の３次元座標の逸脱度合いとして、前記平面から当該３次元座標までの距離を求め、各特徴点の表示の態様をそれぞれの逸脱度合いの程度に応じて決定する、請求項１に記載されたキャリブレーション装置。
【請求項４】
撮像により生成された画像から位置関係が既知の複数の特徴点を抽出することが可能な形態のキャリブレーションワークをステレオ撮像により生成された一組以上のステレオ画像から前記キャリブレーションワーク内の特徴点を４個以上抽出し、これらの特徴点を用いて３次元計測のためのパラメータを算出する処理が行われたことに応じて実行される方法であって、
前記パラメータの処理に用いられたステレオ画像に含まれる複数の特徴点を対象として、前記算出されたパラメータを用いた３次元座標の算出処理を実行するステップと、
前記３次元座標の算出処理により得られた各特徴点の３次元座標を透視変換し、変換後の各特徴点をそれぞれ所定のパターンで表した投影画像を生成してモニタ装置に表示するステップとを、
実行することを特徴とする、３次元計測のためのパラメータの精度の確認支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一組のステレオ画像を用いた３次元計測処理を実行するために、３次元座標を算出する演算に用いられるパラメータを算出する処理（キャリブレーション）に関する。
【背景技術】
【０００２】
ステレオカメラによる３次元計測を行うには、ステレオカメラを構成する各カメラの座標系とワールド座標系との関係を表す変換式中の透視変換行列Ｐ（下記（１）（２）式を参照。）を求める必要がある。なお、（１）式中のλはスケールファクタである。
【０００３】
【数１】
2010237193.tif 000003
【０００４】
上記の透視変換行列Ｐの各要素Ｐ００，Ｐ０１，・・・Ｐ２３は、カメラの内部パラメータ（焦点距離、分解能、画像中心など）と、カメラの位置や姿勢に起因するパラメータ（ワールド座標系とカメラ座標系との回転ずれや各座標系の原点の位置ずれ量など）を反映したものである。従来のキャリブレーション処理では、カメラ毎に、そのカメラの座標系の２次元座標（ｘ，ｙ）と３次元座標（Ｘ，Ｙ，Ｚ）との組み合わせを４組以上取得し、各組の座標を上記の（１）式に代入することにより、行列Ｐ内の各要素を未知数とする多元連立方程式を設定する。そして、最小自乗法などにより各要素の最も好ましい値を特定する。
【０００５】
つぎに、上記の演算に使用する座標を簡単に導出する方法を開示した文献として、下記の非特許文献１およびこれを応用した特許文献１がある。非特許文献１には、等間隔に配列されたマークにより構成される２次元のキャリブレーションパターンが設けられた平板状のワークを、その高さや向きを変更しながら少なくとも２回撮像し、各撮像により生成された画像から各マークに対応する特徴点を抽出し、各特徴点の関係からワールド座標系の座標を特定することが、記載されている。
【０００６】
また特許文献１には、それぞれ異なるキャリブレーションパターンが設けられた透明シートを、所定の間隔を隔てて水平になるように配置した状態で撮像を行うことで、キャリブレーションパターンに必要な数の特徴点を１回の撮像により取得できるようにすることが記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Zhengyou Zhang   “A Flexible New Technique for Camera Calibration”、Microsoft Research Microsoft Corporation，［平成２１年２月２日検索］、インターネット＜URL:http://research.microsoft.com/en-us/um/people/zhang/calib/＞
【特許文献】
【０００８】
【特許文献１】特開２００６−２５０８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
発明者は、汎用の３次元視覚センサを開発する中で、以下のような問題があることに気づいた。
３次元計測用のパラメータを求めるためのキャリブレーション処理では、多元連立方程式の設定や未知数を解く演算については、コンピュータで自動的に行われるが、キャリブレーションパターンを空間内に設置する作業はユーザに委ねられる。したがって、カメラに対するキャリブレーションパターンの配置が適切でなかったり、パターンが記された治具に汚れなどの不備があると、パラメータを精度良く算出できず、その結果、３次元計測の精度が低下するおそれがある。
【００１０】
したがって、パラメータを設定した後は、３次元形状が既知のモデルを用いたテスト計測によりパラメータの適否を確認するのが望ましい。しかし、この場合には、モデルを撮像したり、その正しい３次元情報をあらかじめ取得しておく必要があり、煩雑である。
【００１１】
特に、３次元のマッチング処理を必要としない用途（例えば、高さを検出して、その適否を判別する処理）に視覚センサを使用するユーザは、ＣＡＤデータなどの３次元情報を持ち合わせていない可能性が高い。またマッチング処理を行うユーザでも、キャリブレーションの終了後に認識対象物の３次元モデルを登録する作業を行う場合がかなりの割合で見受けられる。これらのユーザは、キャリブレーションにより設定されたパラメータの精度を確認することができないまま、本処理を開始することを余儀なくされるおそれがある。
【００１２】
本発明は上記の問題点に着目し、３次元計測処理用のパラメータの算出が完了したときに、算出されたパラメータの精度を簡単に確認できるようにして、装置の利便性を高めることを課題とする。
【課題を解決するための手段】
【００１３】
本発明によるキャリブレーション装置は、撮像により生成された画像から位置関係が既知の複数の特徴点を抽出することが可能な形態のキャリブレーションワークをステレオ撮像することにより生成された一組以上のステレオ画像を入力して、当該ステレオ画像からキャリブレーションワーク内の特徴点を４個以上抽出し、これらの特徴点を用いて３次元計測のためのパラメータを算出するもので、パラメータの算出に用いられたステレオ画像に含まれる複数の特徴点を対象として、算出されたパラメータを用いた３次元座標の算出処理を実行する仮計測手段と、仮計測手段が算出した各特徴点の３次元座標を透視変換し、変換後の各特徴点をそれぞれ所定のパターンで表した投影画像を生成する透視変換手段と、透視変換手段により生成された投影画像をモニタ装置に表示する表示制御手段とを、具備する。
【００１４】
上記の構成によれば、３次元計測のためのパラメータの算出が終了すると、この算出処理のために用いられたステレオ画像に含まれる複数の特徴点を対象に、算出されたパラメータを用いて３次元座標を算出する処理を実行し、各特徴点の３次元座標の分布状態を表す投影画像を表示することができる。ここで投影画像中の各特徴点が実際のキャリブレーションワークと同様の分布パターンを示す場合には、算出されているパラメータが適切で、３次元計測の精度が確保できていると考えられる。一方、投影画像中の各特徴点がキャリブレーションワークにおけるのとは異なる分布パターンを示す場合には、パラメータが正しく算出されていないと推定することができる。
【００１５】
上記の仮計測の対象となる特徴点は、パラメータの算出に用いられた特徴点には限らない。パラメータの算出に用いられたステレオ画像を構成する個々の画像に共通に含まれている特徴点であれば、仮計測の対象にすることができる。
【００１６】
このように、キャリブレーション処理に使用されたステレオ画像中の特徴点を対象として仮計測を行い、その計測結果を特徴点の分布パターンを表す投影画像として表示するので、ユーザは、設定されたパラメータが適切であるか否かを容易に判断することができる。またテスト計測のためのモデルや３次元情報を準備する必要がなく、パラメータの算出後、速やかに投影画像を表示して、パラメータの適否を確認することができる。
【００１７】
上記のキャリブレーション装置の好ましい態様では、表示制御手段は、投影画像に含まれる各特徴点について、それぞれ特徴点間の前記既知の位置関係に対する当該特徴点の透視変換前の３次元座標の逸脱度合いを求め、各特徴点の表示の態様をそれぞれの逸脱度合いの程度に応じて決定する。
【００１８】
逸脱度合いとしては、たとえば特徴点の既知の位置関係から求めた３次元座標と仮計測により算出された３次元座標との距離を算出することができる。また、各特徴点が１つの平面内に分布するのであれば、特徴点毎に、逸脱度合いとして、仮計測により算出された３次元座標と前出の平面との距離を算出してもよい。
各特徴点の表示の態様を決定する処理では、たとえば、逸脱度合いが最も大きくなった特徴点、または逸脱度合いが所定の基準値を超えた特徴点とその他の特徴点とを、異なる態様のパターンで表す旨を決定する。または、あらかじめ逸脱度合いにいくつかの数値範囲を設定して、数値範囲毎に異なる表示態様を設定しておき、各特徴点をそれぞれの逸脱度合いに対応する表示態様により表示する旨を決定してもよい。
【００１９】
上記の態様によれば、投影画像中に表示される特徴点のうち、３次元座標の復元精度が悪いもの、または復元の精度が基準に達していないものを、容易に認識することが可能になる。また特徴点の３次元座標の分布中で良好でない特徴点の位置や他の特徴点との関係を把握して、パラメータの精度が悪くなっている原因を分析することが可能になる。
【００２０】
他の好ましい態様によるキャリブレーション装置では、仮計測手段は、撮像された画像から複数の特徴点を抽出することが可能に設計された平面を有するキャリブレーションワークに対する複数回のステレオ撮像により生成された複数組のステレオ画像を用いてパラメータの算出処理が行われたとき、この処理に用いられたステレオ画像のうちの少なくとも一組に対して、その組のステレオ画像に含まれる複数の特徴点の３次元座標を算出する。また、表示制御手段は、同一の組のステレオ画像から抽出されて仮計測手段および透視変換手段により処理されることにより投影画像に含まれた複数の特徴点について、それぞれキャリブレーションワークの各特徴点を含む平面に対する当該特徴点の透視変換前の３次元座標の逸脱度合いとして、前記平面から当該３次元座標までの距離を求め、各特徴点の表示の態様をそれぞれの逸脱度合いの程度に応じて決定する。
【００２１】
上記の態様によれば、平面状に分布すべきである複数の特徴点が、それぞれ分布すべき平面に対する逸脱度合いに応じた態様で表示されるので、パラメータの精度の適否のほか、個々の特徴点における３次元座標の復元精度を容易に認識することが可能になる。
【００２２】
つぎに、本発明による３次元計測のためのパラメータ精度支援方法は、撮像により生成された画像から位置関係が既知の複数の特徴点を抽出することが可能な形態のキャリブレーションワークをステレオ撮像することにより生成された一組以上のステレオ画像からキャリブレーションワーク内の特徴点を４個以上抽出し、これらの特徴点を用いて３次元計測のためのパラメータを算出する処理が行われたことに応じて実行される。この方法では、パラメータの処理に用いられたステレオ画像に含まれる複数の特徴点を対象として、算出されたパラメータを用いた３次元座標の算出処理を実行するステップと、３次元座標の算出処理により得られた各特徴点の３次元座標を透視変換し、変換後の各特徴点をそれぞれ所定のパターンで表した投影画像を生成してモニタ装置に表示するステップとを実行する。
【００２３】
上記の方法を既存の構成の３次元視覚センサに適用すれば、この３次元視覚センサにキャリブレーション終了後にパラメータの精度を表す表示を行う機能を設定することができる。また、この方法は、３次元視覚センサに限らず、たとえば、３次元視覚センサからキャリブレーション処理の結果やパラメータの算出に用いられたステレオ画像を入力したパーソナルコンピュータにより実行することもできる。
【発明の効果】
【００２４】
上記のキャリブレーション装置およびパラメータの精度の確認支援方法によれば、３次元計測に用いるパラメータが算出されたことに応じて、そのパラメータの精度を視覚的に認識できるような投影画像を表示することが可能になる。よって、ユーザは、負担を感じることなく、キャリブレーション作業の終了後に３次元パラメータの精度を速やかに確認することができ、利便性が大幅に高められる。
【図面の簡単な説明】
【００２５】
【図１】３次元視覚センサが導入されたピッキングシステムの構成を示す図である。
【図２】３次元視覚センサの電気構成を示すブロック図である。
【図３】キャリブレーションプレートの構成例を示す図である。
【図４】キャリブレーションパターン内の各特徴点の識別ルールを示す図である。
【図５】キャリブレーションプレートの撮像時の表示画面を示す図である。
【図６】キャリブレーション時の処理手順を示すフローチャートである。
【図７】投影画像の表示例を示す図である。
【図８】図７とは別の方向からの透視変換による投影画像の表示例を示す図である。
【図９】図８の投影画像の一部を拡大して表示した例を示す図である。
【発明を実施するための形態】
【００２６】
図１は、３次元視覚センサが導入されたピッキングシステムの例を示す。
このピッキングシステムは、工場内で収容ボックス６に収容されたワークＷを１つずつ取り出して所定の位置に搬送する作業を行うためのもので、ワークＷを認識するための３次元視覚センサ１００のほか、実際の作業を行う多関節ロボット４や、このロボット４の動作を制御するロボット制御装置３などが含まれる。
【００２７】
３次元視覚センサ１００は、ステレオカメラ１と認識処理装置２とにより構成される。
ステレオカメラ１は、３台のカメラＡ，Ｂ，Ｃにより構成される。これらのうち中央のカメラＡは、光軸を鉛直方向に向けた状態（すなわち正面視を行う状態）にして配備される。左右のカメラＢ，Ｃは、それぞれ光軸が鉛直方向に対して斜めになり、カメラＡの撮像面に対する各々の撮像面の鉛直軸回りの回転角度が９０度以内に収まるように、姿勢が調整される。
【００２８】
認識処理装置２は、専用のプログラムが格納されたパーソナルコンピュータである。この認識処理装置２では、各カメラＡ，Ｂ，Ｃが生成した画像を取り込んで、ワークＷの輪郭線を対象とする３次元計測を実行した後に、この計測により復元された３次元情報をあらかじめ登録された３次元モデルと照合することにより、ワークＷの位置および姿勢を認識する。そして、認識したワークＷの位置を表す３次元座標、および３次元モデルに対するワークＷの回転角度（Ｘ，Ｙ，Ｚの各軸毎に表される。）をロボット制御装置３に出力する。ロボット制御装置３では、この情報に基づき、ロボット４のアーム４０の動作を制御して、ワークＷを把持させる。
【００２９】
図２は、上記の３次元視覚センサ１００の構成をブロック図により表したものである。
この図によれば、認識処理装置２には、各カメラＡ，Ｂ，Ｃに対応する画像入力部２０Ａ，２０Ｂ，２０Ｃ、カメラ駆動部２１、ＣＰＵ２２、メモリ２３、入力部２４、表示部２５、通信インターフェース２６などが含まれる。
【００３０】
カメラ駆動部２１は、ＣＰＵ２２からの指令に応じて、各カメラＡ，Ｂ，Ｃを同時に駆動する。キャリブレーション処理や３次元モデルを登録する処理を行う場合には、このカメラ駆動は、入力部２４から撮像開始の指示を受け付けたことに応じて行われる。
【００３１】
表示部２５は、図１におけるモニタ装置である。また入力部２４は、図１のキーボード２７およびマウス２８をまとめたものである。これらは、キャリブレーション処理や３次元モデルの作成処理の際に、設定のための情報を入力したり、作業を支援するための情報を表示する目的に使用される。
通信インターフェース２６は、ロボット制御装置３との通信に用いられる。
【００３２】
メモリ２３は、ＲＯＭ，ＲＡＭ，およびハードディスクなどの大容量メモリを含むもので、キャリブレーション処理、３次元モデルの作成、およびワークＷの３次元認識処理のためのプログラムや設定データが格納されている。また、キャリブレーション処理で算出された３次元計測用のパラメータや３次元モデルも、メモリ２３内の専用のエリアに登録される。
【００３３】
ＣＰＵ２２は、メモリ２３内のプログラムに基づき、３次元計測用のパラメータの算出および登録を行った後に、ワークＷの３次元モデルの作成および登録処理を実行する。この２種類の設定処理を実行することによって、ワークＷに対する３次元計測および認識処理が可能な状態になる。
【００３４】
以下、上記２種類の設定処理のうち、最初に実行されるキャリブレーション処理について、詳細に説明する。
【００３５】
この実施例では、図３に示すようなキャリブレーションプレート３０を用いて３次元計測用のパラメータを算出する。このキャリブレーションプレート３０は、白色地の薄型プレートの上面に２次元のキャリブレーションパターンを描いた構成のものである。
【００３６】
図３に示すキャリブレーションパターンは、同一径の円形状のマークＭを上下および左右に等間隔で配列したものである。図中のＤは、マークＭの中心点間の距離に相当する。中心に位置するマークＭ０を除く各マークＭは、黒一色で着色され、中心のマークＭ０には、外周部が黒色で内部に一回り小さい白色円が配置されている。キャリブレーションプレート３０の位置合わせや特徴点の認識は、このマークＭ０を基準に行われる。
【００３７】
図４は、上記のキャリブレーションプレート３０の各マークＭの特徴点を識別するためのルールを示す。
この図では、各マークＭの配列を、それぞれの中心点の配列に置き換えて示すとともに、各中心点にＣ（ｉ，ｊ）というラベルを付している。各ラベルの（ｉ，ｊ）の値は、中央のマークＭ０の中心点を（０，０）とし、ｉが左右方向に沿って、ｊが上下方向にそって、それぞれ１ずつ変化するように、定められている。
【００３８】
この実施例のキャリブレーション処理では、まず最初に、上記のキャリブレーションプレート３０を、その面を水平な状態にして設定して各カメラＡ，Ｂ，Ｃによるステレオ撮像を行う。つぎに、キャリブレーションプレート３０の水平状態を維持して、その高さを変更し、再度、各カメラＡ，Ｂ，Ｃによるステレオ撮像を実行する。具体的には、平坦な面にキャリブレーションプレート３０を設置して１回目のステレオ撮像を行い、次にこの平坦面に専用の支持台を配置して、この支持台上にプレート３０を設置して２回目のステレオ撮像を実行する。
【００３９】
さらにこの実施例では、上記の作業時には、表示部２５に図５に示すような画面を表示して、キャリブレーションプレート３０とカメラＡ，Ｂ，Ｃとの位置関係を調整する作業を支援するようにしている。この画面には、画像表示領域３１のほか、この領域に表示する対象画像を指定するための選択ボタン３２Ａ，３２Ｂ，３２Ｃ（カメラＡ，Ｂ，Ｃに対応する。）、ＯＫボタン３３、キャンセルボタン３４などが設けられている。また、画像表示領域３１には、垂直方向に沿うラインＬ１および水平方向に沿うラインＬ２がそれぞれ領域３１の中心位置を通るようにして表示されている。これらのラインＬ１，Ｌ２は、領域３１内の画像表示の変動に関わらず、常に一定の状態で画像に重ね表示される。
【００４０】
１回目のステレオ撮像の際には、ユーザは、正面視用のカメラＡの画像表示から、中央のマークＭ０がカメラＡの視野のほぼ中央に位置し、このマークＭ０を含む縦方向および横方向のマークの配列がラインＬ１，Ｌ２にほぼ対応するように、キャリブレーションプレート３０の位置や姿勢を調整する。
【００４１】
ユーザは、カメラＢ，Ｃについても同様に、画像表示領域３１内にマークＭ０を含む十分な数のマークＭが含まれていることを確認し、不備があれば、カメラＢ，Ｃの位置や光軸の向きを調整する。これらの確認や調整が終了すると、ユーザは、ＯＫボタン３３を操作することにより撮像開始を指示する。
【００４２】
なお、この実施例のキャリブレーションプレート３０では、各マークＭの間隔が均一に設定されているので、プレート３０の縦・横とラインＬ１，Ｌ２との対応関係は上記の例とは逆になってもよい。また、マークＭの縦・横の配列がそれぞれラインＬ１，Ｌ２に対して斜めになるようにプレート３０を設置してもかまわないが、マークＭの配列とラインＬ１，Ｌ２とのなす角度が４５度付近にならないように留意する必要がある。ラインＬ１，Ｌ２とマークＭの配列とがなす角度が４５度付近になると、ラインＬ１，Ｌ２とマークＭの配列との対応づけの結果が撮像方向によって異なるものになり（たとえば、カメラＡの画像でラインＬ１に対応づけられた配列方向がカメラＢ，Ｃの画像ではラインＬ２に対応づけされる。）、ラベル付けの結果が画像間で整合しない状態になるおそれがあるからである。
【００４３】
２回目のステレオ撮像の際にも同様の手順でキャリブレーションプレート３０を各カメラＡ，Ｂ，Ｃの視野に配置するが、各カメラＡ，Ｂ，Ｃの位置や光軸の向きについては、１回目のステレオ撮像のときと同じ状態を維持する必要がある。
【００４４】
図６は、キャリブレーション処理に関して、ＣＰＵ２２が実行する一連の手順を示す。以下、この図６とともに、適宜他の図面を参照して、キャリブレーション処理の詳細を説明する。
【００４５】
この処理では、まず上記した要領で第１回目のステレオ撮像を実行する（ＳＴ１）。つぎに、各カメラＡ，Ｂ，Ｃにより生成された画像毎に、マークＭを表す円を抽出し、これらの円の中心点を各マークＭの特徴点として抽出する（ＳＴ２）。
【００４６】
つぎのステップＳＴ３では、各画像の特徴点にラベルを付けることによって、画像間における特徴点の対応関係および各特徴点と実際のマークＭとの対応関係を特定する。具体的に説明すると、まず、マークＭ０をその外観の特徴から認識して、その特徴点にＣ（０，０）のラベルを付ける。つぎに、この基準点Ｃ（０，０）を起点に上下左右の各方向にそれぞれ所定角度幅の探索範囲を設定して、その範囲内で基準点Ｃ（０，０）に最も近い位置にある特徴点を抽出する。そして、抽出された各特徴点が基準点Ｃ（０，０）を挟んで並ぶ方向に基づき、各特徴点の上下、左右の配列方向を特定する。さらに各配列方向から基準点Ｃ（０，０）に対するその他の特徴点の位置関係を割り出し、各位置関係に図４に示したラベル付けのルールを適用することによって、各特徴点のラベルＣ（ｉ，ｊ）を決定する。
【００４７】
この実施例では、各カメラの撮像面間の相互の鉛直軸回りの回転ずれ量が９０度以内に収められているので、各画像中のマークＭの配列方向とラインＬ１，Ｌ２との対応関係の整合が確保される。よって、上記のラベル付けにより、各画像間で対応関係にある特徴点に同一のラベルを付与することができるから、同一のラベルが付された特徴点の組毎に、実際のキャリブレーションパターン中で当該組み合わせに対応するマークＭが一意に定まることになる。
【００４８】
つぎに、ステップＳＴ４では、カメラＡにより生成された基準画像を用いて、各特徴点のＸ，Ｙ，Ｚ座標を特定する。
【００４９】
この実施例では、キャリブレーションプレート３０を水平面に設置していることを利用して、１回目のステレオ撮像により生成された一組のステレオ画像から特定される各特徴点を含む平面が高さ（Ｚ座標）が０の基準面となるように、ワールド座標系を定義する。具体的には、マークＭ０から求めた基準点Ｃ（０，０）の実際の位置を原点（０，０，０）とし、この基準点Ｃ（０，０）を通る左右の配列方向をＸ軸方向とし、基準点Ｃ（０，０）を通る上下の配列方向をＹ軸方向とする。
【００５０】
上記の設定によれば、１回目のステレオ撮像に応じて、各特徴点がワールド座標系のＸ軸およびＹ軸に沿って並ぶように、ワールド座標系が定義される。よって、１回目のステレオ撮像に対して特定された特徴点Ｃ（ｉ，ｊ）の３次元座標のうちのＸ座標（Ｘｉｊ）およびＹ座標（Ｙｉｊ）については、キャリブレーションパターンの各マークＭの中心点間の距離Ｄを用いた下記の演算により、求めることができる。
Ｘｉｊ＝ｉ＊Ｄ，Ｙｉｊ＝ｊ＊Ｄ
また各特徴点のＺ座標（Ｚｉｊ）は、すべて０に設定する。
【００５１】
つぎに、２回目のステレオ撮像に対しても、１回目のステレオ撮像と同様の手法で、マークＭの特徴点を抽出する処理（ＳＴ２）およびラベル付け（ＳＴ３）を実行した後に、各特徴点Ｃ（ｉ，ｊ）のＸ，Ｙ，Ｚ座標を求める（ＳＴ４）。この場合には、まず、今回の撮像による正面視画像を１回目の撮像による正面視画像と照合して、画像中の基準点Ｃ（０，０）の位置ずれ量を求めるとともに、マークの上下、左右の配列方向についても１回目の撮像に対する回転ずれ量を求める。そして、カメラＡ，Ｂ，Ｃ間でラベルにより対応づけされた特徴点の組毎に、１回目のステレオ撮像に対して実行したのと同様の手法でＸ，Ｙ座標を求めた後に、これらの座標を上記の位置ずれ量および回転ずれ量により補正する。一方、Ｚ座標（Ｚｉｊ）には、変更後のキャリブレーションプレート３０の高さにキャリブレーションプレートの厚みを加えた値を一律にあてはめる。
【００５２】
このようにして、３台のカメラＡ，Ｂ，Ｃによる２回のステレオ撮像により生成された計６枚の画像からそれぞれ複数の特徴点が抽出され、各特徴点に対応する３次元座標が特定される。
この後は、カメラ毎に、各特徴点の３次元座標と画像中の２次元座標とを対応するもの毎に組み合わせて、前出の透視変換の演算式（（１）式）に代入し、最小自乗法により透視変換行列Ｐを求める。いずれのカメラについても、２回のステレオ撮像により生成された各画像から合計して４個以上の特徴点を抽出して、これらの特徴点の３次元座標および２次元座標を（１）式に代入すれば、（１）式中の行列Ｐの１２個の要素Ｐ００〜Ｐ２３を求めることができる。
このカメラ毎に求めた行列Ｐが３次元計測用のパラメータとなる。
【００５３】
上記のとおり、この実施例では、キャリブレーションプレート３０を高さを変更して２回のステレオ撮像を行った後に、３次元計測用のパラメータを算出する（ＳＴ１〜６）。よって、算出したパラメータを登録すれば、本格的な３次元計測を開始することが可能になる。
【００５４】
しかし、この実施例では、一般ユーザがキャリブレーション作業を進めるため、キャリブレーションプレート３０のカメラＡ，Ｂ，Ｃに対する位置合わせが不十分であったり、プレート３０の一部に汚れがあって特徴点の抽出精度が悪くなるなど、何らかの不備により、パラメータの精度が確保されていない可能性がある。そのため、この実施例では、パラメータの算出処理（ＳＴ６）が終了すると、以下のＳＴ７〜１０のステップを実行することによって、ユーザに算出されたパラメータの精度を確認させるようにしている。
【００５５】
ＳＴ７では、１回目のステレオ撮像により生成された各画像から抽出した特徴点を対象に、算出されたパラメータを用いて３次元座標を算出する。さらに、ＳＴ８では、各特徴点について、それぞれＳＴ７で算出した３次元座標の中のＺ座標の絶対値を、当該特徴点の３次元座標の精度をはかる評価値（以下「精度評価値」という。）に設定する。
【００５６】
つぎに、ＳＴ９では、各特徴点につき算出した３次元座標を、所定の視点および方向により２次元平面に透視変換する。さらにＳＴ１０では、この透視変換結果に基づき、図７，８に示すような投影画像を生成して表示部２５に表示する。
【００５７】
図７の例の投影画像は、算出された３次元座標による特徴点群を、０より高い位置を視点として、Ｘ，Ｙの各軸に対して斜めになる方向から透視変換したものである。これに対し、図８の例の投影画像は、図７と同様の特徴点群を、特徴点群の真横の位置（高さ０に対応）から透視変換したものである。
【００５８】
各例の投影画像では、各特徴点が＋のパターンにより表され、また３次元座標系のＸ，Ｙ，Ｚ軸を表す線画も表示されている。また、図中のＱは、特徴点の中で精度評価値が最も悪かったものであり、他の点とは異なる色彩により表される（図では、色彩に代えて極太線による＋マークで表現する。）。さらに、透視画像の表示画面の右下には、この特徴点Ｑの精度評価値の具体的な値が表示される。
【００５９】
上記の投影画像が示す各特徴点は、同じキャリブレーションパターンに含まれるものであるから、画像中の特徴点は平面的に分布すべきである。したがってユーザは、投影画像中の各特徴点が平面的に分布しているか否かによって、３次元計測の精度が確保されたかどうかを容易に判別することができる。ここで３次元計測の精度が良い、と判断された場合には、パラメータが精度良く算出されているということになる。
【００６０】
この実施例では、透視変換処理の視点や投影方向をユーザの操作に応じて変更することにより、図７，８に示すように、種々の方向からの特徴点の分布状態を確認できるようにしている。
【００６１】
さらに、この実施例では、投影画像の一部範囲を指定し、指定された範囲を拡大して表示することもできる。図８中の一点鎖線の領域Ｓはこの指定範囲を示すものであり、図９は、指定範囲Ｓ内の特徴点の分布を拡大して表示した例を示す。この拡大画像によれば、Ｚ＝０の高さ位置付近でも、特徴点の間に微小なずれがあることや、これらのずれと精度評価値が悪かった特徴点Ｑのずれ量との違いを確認することができる。
【００６２】
なお、上記の各投影画像では、精度評価値が最も悪かった特徴点を他の特徴点とは異なる色彩で表示したが、この表示を、精度評価値が所定の基準値を超えた全ての特徴点に対して行うようにしてもよい。または、精度評価値に複数の数値範囲を設けて、数値範囲毎に異なる色彩を対応づけることにより、各特徴点の精度評価値がどの数値範囲に入るかによって、表示色を定めるようにしてもよい。
【００６３】
図６に参照を戻して、説明を続ける。ユーザは、上記の投影画像により計測結果の精度を判別し、精度が良好であると判断すると、図示しないＯＫボタン（図７〜９の画像の表示画面に設定される。）の操作を行う。この操作が行われると（ＳＴ１１が「ＹＥＳ」）、算出されたパラメータを登録し（ＳＴ１２）、処理を終了する。
一方、ユーザが計測精度が悪いと判断して、キャンセル操作を行うと（ＳＴ１１が「ＮＯ」）、算出されたパラメータをクリアする（ＳＴ１３）。この後は、キャリブレーションの手順を見直すなどした後に、最初から処理をやり直すことになる。
【００６４】
上記の処理によれば、３次元計測用のパラメータを算出する処理が終了した直後に、そのパラメータによる３次元計測の精度を表す投影画像が表示されるので、ユーザは、表示された画像からパラメータが適切に設定されていないと判断した場合には、速やかにキャリブレーション処理を再開し、パラメータを算出し直すことができる。また、キャリブレーション処理に用いた特徴点を利用することにより、テスト計測のための準備や新たな撮像を行う必要がないので、ユーザに負担がかからず、また処理を高速化することができる。
【００６５】
また投影画像は最初のステレオ撮像に対応するものに限らず、２回目のステレオ撮像に対して抽出された特徴点についても、同様の投影画像を生成し、表示することができる。また、この場合には、各特徴点の精度評価値として、２回目の撮像時にキャリブレーションプレート３０を設定した高さと各特徴点につき算出したＺ座標との差の絶対値を求めることができる。
【００６６】
また、上記の実施例では、キャリブレーション作業やデータ処理を簡単にするために、キャリブレーションプレート３０を水平にした状態で２回のステレオ撮像を行ったが、前出の特許文献１に記載したような２組の透明シートに記されたキャリブレーションパターンを使用すれば、１回のステレオ撮像でパラメータの算出に必要な特徴点を取得することができる。
【００６７】
反対に、撮像回数は多くなるが、キャリブレーションプレート３０の位置や姿勢を任意に設定し、多数回のステレオ撮像を行う方法をとってもよい。ただし、この方法では、パラメータの算出前に各特徴点のＺ座標を特定することができなくなるので、Ｚ座標に基づく精度評価値に変わるものを求める必要がある。たとえば、算出されたパラメータから求めた各特徴点の３次元座標に近似する平面を特定し、この平面に対する各特徴点の距離を求め、これを精度評価値として採用することが考えられる。
【００６８】
また、キャリブレーションプレート３０に代えて、立体状のキャリブレーションワークによるキャリブレーションを実行した後に、キャリブレーションワーク内で同一の平面に含まれる複数の特徴点を対象に、上記実施例と同様の表示を行ってもよい。
また、同一平面にある特徴点に限らず、キャリブレーションに使用された個々の特徴点毎に、キャリブレーションにより算出されたパラメータを用いて３次元座標を算出し、各特徴点の算出された３次元座標の分布パターンと、キャリブレーションワークにおける各特徴点の既知の位置関係から割り出された正しい３次元座標の分布パターンとを、それぞれ異なる色彩で同一の平面に透視変換した画像を生成し、表示してもよい。または、各特徴点の精度評価値として、それぞれキャリブレーションにより算出されたパラメータによる３次元座標と正しい３次元座標との距離を算出し、それぞれの精度評価値に応じて色彩やパターンの形状などがグループ分けされた構成の投影画像を表示してもよい。
【符号の説明】
【００６９】
１００  ３次元視覚センサ
１（Ａ，Ｂ，Ｃ）  ステレオカメラ
２    認識処理装置
２２  ＣＰＵ
２５  モニタ装置（表示部）
３０  キャリブレーションプレート
Ｍ，Ｍ０  マーク
【図１】
2010237193.tif 000004
【図２】
2010237193.tif 000005
【図３】
2010237193.tif 000006
【図４】
2010237193.tif 000007
【図５】
2010237193.tif 000008
【図６】
2010237193.tif 000009
【図７】
2010237193.tif 000010
【図８】
2010237193.tif 000011
【図９】
2010237193.tif 000012