(57)【要約】【課題】  オブジェクト、特に画像奥行き方向に広がりを持って配置されたオブジェクト、の位置姿勢をより高精度に求めるための技術を提供すること。【解決手段】  パターン光が投影された現実物体を含んだ画像を取得する。現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外から特定する。特定された箇所に基づいて、画像上に重畳された仮想物体と現実物体との位置ずれを算出する。位置ずれを極小化するように、仮想物体の位置姿勢を、現実物体の位置姿勢として求める。【選択図】図１
2014002033.tif 000002
【特許請求の範囲】
【請求項１】
パターン光が投影された現実物体を含んだ画像を取得する手段と、
前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外から特定する探索手段と、
前記探索手段によって特定された箇所に基づいて、前記画像上に重畳された仮想物体と前記現実物体との位置ずれを算出する手段と、
前記位置ずれを極小化するように、前記仮想物体の位置姿勢を、前記現実物体の位置姿勢として求める演算手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記探索手段は、
前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外で探索することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記探索手段は、
前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を該画像から探索し、該探索した箇所のうち、該画像において前記パターン光が写っている領域を拡大した拡大領域外の箇所を探索結果とすることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記探索手段は、
前記画像において前記パターン光が写っている領域をパターン光領域、前記画像において前記パターン光が写っていない領域を非パターン光領域とし、
前記パターン光領域に対応するマスク画像内の領域と、前記非パターン光領域に対応する該マスク画像内の領域と、で異なる画素値を有する前記マスク画像を生成し、
前記パターン光領域に対応する前記マスク画像内の領域を拡大した領域に対応する前記画像中の領域を前記拡大領域とし、該拡大領域外で前記探索を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記探索手段は、
前記画像において輝度値が閾値以上となる画素からなる領域を前記パターン光領域とすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記探索手段は、
前記パターン光領域を、前記現実物体の位置姿勢として与えられている位置姿勢と、前記現実物体の形状と、前記パターン光の形状と、から求めることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記演算手段は、
前記パターン光領域から、前記画像を撮像する撮像装置から前記現実物体上の各位置までの距離を画素値とする距離画像を生成する手段と、
前記距離画像によって表される前記現実物体上の各位置と、前記仮想物体において該位置に対応する位置と、から求まる三次元空間における距離と、前記画像上に重畳された仮想物体の各箇所と該箇所について探索された前記現実物体の箇所との二次元平面における距離と、を極小化するように、前記仮想物体の位置姿勢を、前記現実物体の位置姿勢として求める手段と
を備えることを特徴とする請求項４乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記探索手段は、
前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外で探索する処理、
前記仮想物体のエッジモデルを前記画像上に重畳し、該画像において前記パターン光が写っている領域を、該画像に重畳された該エッジモデルに基づいて取り除いた後で、前記画像上に重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域外で探索する処理、
のうち、前記仮想物体の形状、または前記仮想物体の形状と前記仮想物体の初期位置姿勢に応じて決まる一方の処理を実行する
ことを特徴とする請求項４乃至７の何れか１項に記載の画像処理装置。
【請求項９】
更に、
前記演算手段が求めた位置姿勢を、前記現実物体を操作するロボットアームを制御するコントローラに対して出力する手段を備えることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の取得手段が、パターン光が投影された現実物体を含んだ画像を取得する工程と、
前記画像処理装置の探索手段が、前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外から特定する探索工程と、
前記画像処理装置の算出手段が、前記探索工程で特定された箇所に基づいて、前記画像上に重畳された仮想物体と前記現実物体との位置ずれを算出する工程と、
前記画像処理装置の演算手段が、前記位置ずれを極小化するように、前記仮想物体の位置姿勢を、前記現実物体の位置姿勢として求める演算工程と
を備えることを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元形状が既知であるオブジェクトの位置及び姿勢を計測する為の技術に関するものである。
【背景技術】
【０００２】
近年、ロボット技術の発展とともに、これまで人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。複雑なタスクの代表的な例として、工業製品の組立が挙げられる。ロボットが自律的に組立作業を行うためには、ハンドなどのエンドエフェクタによって部品を把持することが必要となる。ロボットハンドによって部品を把持するためには、把持の対象となる部品とロボットとの相対的な位置及び姿勢を計測し、計測結果に基づいて移動計画を策定して実際にアクチュエータを制御する必要がある。
【０００３】
また、ロボット以外の分野においても、環境やオブジェクトに対する位置及び姿勢を計測することが必要とされている。例えば、複合現実感技術（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、ＭＲ）においては、現実の画像にコンピュータによって生成された仮想のオブジェクトを合成するために、位置及び姿勢の計測が必要である。ロボットの位置姿勢計測は、これまでロボットに搭載されたカメラや距離センサを用いて行われており、２次元画像や距離画像を用いる方法が代表的である。またＭＲの分野では、ヘッドマウントディスプレイ（ＨＭＤ）の位置姿勢計測をＨＭＤに搭載されたカメラで撮影された画像を用いて行う技術の研究がなされている。
【０００４】
特許文献１では、高速に移動するオブジェクトの位置及び姿勢を高精度且つ高速に計測する方法が開示されている。この方法では、パターン光が投影されたオブジェクトを通常のカメラで撮影した１枚の観測画像をエッジ抽出に使用する領域と距離画像生成に使用する領域に分離し、それぞれエッジ抽出と距離画像生成を行う。こうして２次元のエッジに基づいた位置姿勢計測と距離画像に基づいた位置姿勢計測を相補的に利用することで位置姿勢計測の高精度化と高速化を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２００９−１５０３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されている方法では、３次元モデルを投影して得られるエッジモデルに基づいてパターン光投影領域の一部を取り除くため、画像のエッジは正確に検出できるが、パターン光から生成する距離画像の品質は荒くなる傾向が強い。このことは特に、対象オブジェクトが観測画像の奥行き方向の広い範囲に渡って置かれている時に顕著となり、位置姿勢計測の精度の低下を引き起こすことがある。
【０００７】
本発明はこのような上記の問題に鑑みてなされたものであり、オブジェクト、特に画像奥行き方向に広がりを持って配置されたオブジェクト、の位置姿勢をより高精度に求めるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は、パターン光が投影された現実物体を含んだ画像を取得する手段と、前記現実物体の形状を模した仮想物体を前記画像上に重畳し、該重畳された仮想物体の各箇所に対応する前記現実物体の箇所を、該画像において前記パターン光が写っている領域を拡大した拡大領域外から特定する探索手段と、前記探索手段によって特定された箇所に基づいて、前記画像上に重畳された仮想物体と前記現実物体との位置ずれを算出する手段と、前記位置ずれを極小化するように、前記仮想物体の位置姿勢を、前記現実物体の位置姿勢として求める演算手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明の構成により、オブジェクト、特に画像奥行き方向に広がりを持って配置されたオブジェクト、の位置姿勢をより高精度に求めることができる。
【図面の簡単な説明】
【００１０】
【図１】システムの構成例を示す図。
【図２】画像処理装置１０４の機能構成例を示すブロック図。
【図３】３次元幾何モデルについて説明する図。
【図４】画像処理装置１０４が行う処理のフローチャート。
【図５】ステップＳ４０３における処理の詳細を示すフローチャート。
【図６】撮像画像の一例を示す図。
【図７】２値画像の一例を示す図。
【図８】パターン光マスクの一例を示す図。
【図９】ステップＳ４０４における処理の詳細を示すフローチャート。
【図１０】対応付け処理を説明する図。
【図１１】線分の投影像と検出されたエッジの関係を説明する図。
【図１２】ロボットシステムの構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
先ず、本実施形態に係るシステムの構成について、図１を用いて説明する。オブジェクト１０１は、位置及び姿勢（位置姿勢）を計測する対象としての現実物体である。本実施形態では、説明を簡単にするために、位置姿勢計測対象としてのオブジェクト１０１は図１に示す如く１つのみがある位置に載置されているものとする。しかし、以下に説明する位置姿勢計測処理は、オブジェクトの形状や個数、載置形態、に大きく依存するものではない。例えば、複数の異形状のオブジェクトが混合されて山積みされているような状態において、あるオブジェクトの位置姿勢を計測する場合にも、本実施形態は適用可能である。
【００１３】
プロジェクタ１０２は、規定のパターン光を照射するものであり、本実施形態では、スリット光をオブジェクト１０１に対して照射するために使用する。プロジェクタ１０２について詳しくは後述する。
【００１４】
撮像装置１０３は、現実空間の静止画若しくは動画像を撮像するものであり、本実施形態では、プロジェクタ１０２によってスリット光が照射されたオブジェクト１０１を撮像するために使用する。そして撮像装置１０３は、撮像した画像（撮像画像、観察画像）を、画像処理装置１０４に対して送出する。撮像装置１０３について詳しくは後述する。
【００１５】
画像処理装置１０４は、プロジェクタ１０２及び撮像装置１０３の動作制御を行うと共に、撮像装置１０３から得られた撮像画像を用いて、オブジェクト１０１の位置姿勢を求める。
【００１６】
次に、画像処理装置１０４の機能構成例について、図２のブロック図を用いて説明する。
【００１７】
位置姿勢算出部２０１は、撮像装置１０３によって撮像された撮像画像に基づいてエッジ対応検出部２０５及び距離画像生成部２０６が行った処理結果を用いて、オブジェクト１０１の位置姿勢を計算する。そして位置姿勢算出部２０１は、計算したオブジェクト１０１の位置姿勢を、適当な出力先に対して出力する。
【００１８】
３次元モデル情報２０２は、３次元ＣＡＤソフトで取り扱うことができるＣＡＤモデルそのもの、もしくは３次元ＣＡＤモデルをＣｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ分野で使われる複数のポリゴン要素に変換したものである。本実施形態では、オブジェクト１０１の形状を模した３次元幾何モデルであって、ポリゴン要素で構成される３次元幾何モデルを用いる。ポリゴン要素で構成される３次元幾何モデルについて、図３を用いて説明する。
【００１９】
ポリゴン要素で構成される３次元幾何モデルは、図３に示すような点、線、面といった構成要素からなる。図３（ａ）〜（ｃ）はいずれも同じ３次元幾何モデルを示している。
【００２０】
ポリゴン要素で構成される３次元幾何モデルのモデル情報では、図３（ａ）に例示している３次元幾何モデルの各頂点について、図３（ｄ）に示す如く、該頂点のインデックスと、該頂点の３次元座標値と、を管理している。
【００２１】
また、このモデル情報では、図３（ｂ）に例示している３次元幾何モデルの各辺について、図３（ｅ）に示す如く、該辺のインデックスと、該辺の両端における頂点のインデックスと、を管理している。
【００２２】
また、このモデル情報では、図３（ｃ）に例示している３次元幾何モデルの各面（ポリゴン）について、図３（ｆ）に示す如く、該ポリゴンのインデックスと、該ポリゴンの各辺のインデックスと、該ポリゴンの法線ベクトルと、を管理している。
【００２３】
このような３次元モデル情報２０２は、画像処理装置１０４内の適当なメモリ、若しくは画像処理装置１０４がアクセス可能な外部メモリに格納されている。
【００２４】
初期概略位置姿勢情報２０３は、オブジェクト１０１の位置姿勢を求める為の繰り返し演算の初期値として与えられるものである。この初期概略位置姿勢情報２０３には予め適当な値が設定されており、画像処理装置１０４内の適当なメモリ、若しくは画像処理装置１０４がアクセス可能な外部メモリに格納されている。また、この初期概略位置姿勢情報２０３は、ユーザが不図示の操作部を用いて設定したものであってもよい。
【００２５】
以下の説明において特に断らない限りは、位置姿勢は、撮像装置１０３の位置姿勢（例えば、撮像装置１０３の焦点における位置姿勢）を基準とする座標系（カメラ座標系）におけるものであるとする。また、以下の説明で登場する「オブジェクトの座標系」とは、オブジェクトごとにローカルに設定されている座標系のことを指すものとする。
【００２６】
エッジ対応検出部２０５は、撮像装置１０３によって撮像された撮像画像上に投影された３次元幾何モデルと、該撮像画像中に写っているオブジェクト１０１と、で対応するエッジを検出する。
【００２７】
距離画像生成部２０６は、撮像装置１０３によって撮像された撮像画像から、撮像装置１０３からオブジェクト１０１上の各位置までの距離を画素ごとに表している距離画像を生成する。距離画像の生成に関し、本実施形態では、パターン光としてマルチスリット光を用いた三角測量によって距離を計算する。しかしながら、パターン光はこれに限るものではなく、複数回の撮影を必要としないものであれば他のものであってもよい。例えば、ランダムドットパターンでもよいし、局所的な平面パターンなどであってもよい。また、スポット光を投影してもよい。距離計測用の照明を投影しない領域については、環境光により十分な明るさが得られる場合には特別な光を投影しない。そうでない場合には、例えば均一な白色光が投影されるように照明パターンを変更する。またパターンの投影方法においても投影領域を反転してパターンを影で表現しても良い。
【００２８】
プロジェクタ１０２は、液晶プロジェクタであり、規定のパターン光としてのスリット光を投影する投影装置である。プロジェクタの内部パラメータ（焦点距離、主点位置、レンズ歪みパラメータ）は、例えば、下記の文献に開示される方法により事前に校正しておく。
【００２９】
Ｚ．  Ｚｈａｎｇ，  “Ａ  ｆｌｅｘｉｂｌｅ  ｎｅｗ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｃａｍｅｒａ  ｃａｌｉｂｒａｔｉｏｎ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｖｏｌ．２２，  ｎｏ．１１，  ｐｐ．１３３０−１３３４，  ２０００
なお、スリット光の投影ができればプロジェクタ１０２以外の装置を用いても良く、例えば、ＤＭＤ（デジタルミラーデバイス）やＬＣＯＳを用いたプロジェクタであってもよい。
【００３０】
撮像装置１０３の内部パラメータ（焦点距離、主点位置、レンズ歪みパラメータ）は、例えば、前述のＺｈａｎｇの方法により事前に校正しておく。さらに、撮像装置１０３とプロジェクタ１０２との間の相対的な位置及び姿勢についても、例えば前述のＺｈａｎｇの方法、または下記の文献に開示される方法により事前に校正しておくことにより、パターン光を用いた三角測量が可能になる。
【００３１】
井口征士，  佐藤宏介『３次元画像計測』（昭晃堂，  １９９０）
次に、画像処理装置１０４がオブジェクト１０１の位置姿勢を求めるために行う処理について、同処理のフローチャートを示す図４を用いて説明する。
【００３２】
ステップＳ４０１では、位置姿勢算出部２０１は、画像処理装置１０４内、若しくは画像処理装置１０４外のメモリから３次元モデル情報２０２を読み出す。なお、位置姿勢算出部２０１は、ユーザが不図示の操作部を操作することで入力した３次元モデル情報２０２を取得するようにしても良い。また、該メモリに複数個の３次元幾何モデルの３次元モデル情報２０２を格納しておき、撮像装置１０３により撮像された撮像画像中に写っているオブジェクトを認識し、該認識したオブジェクトに対応する３次元モデル情報２０２を読み出しても良い。
【００３３】
次に、ステップＳ４０２では、位置姿勢算出部２０１は、画像処理装置１０４内、若しくは画像処理装置１０４外のメモリから初期概略位置姿勢情報２０３を読み出す。なお、位置姿勢算出部２０１は、ユーザが不図示の操作部を操作することで入力した初期概略位置姿勢情報２０３を取得するようにしても良い。また、初期概略位置姿勢情報２０３は、オブジェクト上に配置されたマーカをシーンに固定されたカメラによって撮影することにより位置及び姿勢を計測する光学式センサで決定して取得してもよい。その他、６自由度の位置及び姿勢を計測するセンサであればいかなるセンサであってもよい。また、オブジェクトの置かれているおおよその位置や姿勢が予めわかっている場合には、その値を初期概略位置姿勢情報２０３として用いることも考えられる。
【００３４】
次に、ステップＳ４０３では、エッジ対応検出部２０５及び距離画像生成部２０６は、撮像装置１０３により撮像された撮像画像に基づいてそれぞれ、後述するパターン光マスク、距離画像、を生成する。ステップＳ４０３における処理の詳細については、図５のフローチャートを用いて後述する。
【００３５】
次にステップＳ４０４では、位置姿勢算出部２０１やエッジ対応検出部２０５や不図示の制御部は、ステップＳ４０１〜Ｓ４０３で得た各情報に基づいて、オブジェクト１０１の３次元幾何モデルの位置姿勢を確定させる。これにより、該位置姿勢をオブジェクト１０１の位置姿勢として求める。
【００３６】
次に、上記のステップＳ４０３における処理の詳細について、同処理のフローチャートを示す図５を用いて説明する。
【００３７】
ステップＳ５０１では、不図示の制御部は、プロジェクタ１０２を制御し、規定のパターン光としてのスリット光を、オブジェクト１０１に対して照射させる。
【００３８】
ステップＳ５０２では、不図示の制御部は、撮像装置１０３を制御し、規定のパターン光が照射されているオブジェクト１０１を撮像させる。撮像装置１０３による撮像画像の一例を図６に示す。以下では、説明をわかりやすくするために、撮像装置１０３によって撮像された撮像画像は、図６に例示した撮像画像であるものとして説明する。
【００３９】
ステップＳ５０３では、不図示の制御部は、プロジェクタ１０２を制御し、規定のパターン光としてのスリット光の照射を終了させる。
【００４０】
ステップＳ５０４でエッジ対応検出部２０５は、撮像画像においてパターン光が写っている領域をパターン光投影領域として検出し、撮像画像と縦横同サイズを有し、パターン光投影領域、非パターン光投影領域を異なる画素値で表す２値画像を生成する。該２値画像は次のようにして生成する。
【００４１】
即ち、撮像画像中の各画素位置における輝度値を参照し、参照した画素位置（ｘ、ｙ）における輝度値が閾値以上であれば、該画素位置はパターン光投影領域に属する画素位置と判断し、２値画像中の画素位置（ｘ、ｙ）における画素値を「１」とする。一方、撮像画像中の画素位置（ｘ、ｙ）における輝度値が閾値未満であれば、該画素位置はパターン光投影領域に属さない画素位置と判断し、２値画像中の画素位置（ｘ、ｙ）における画素値を「０」とする。なお、「１」や「０」が意味するものは逆であっても良いし、この値に限るものではない。即ち、２値画像において各画素位置における画素がパターン光投影領域に属する画素位置であるのか否かが画素値によって判別できればよい。
【００４２】
また、撮像画像中の各画素位置における画素がパターン光投影領域に属するか否かの判断は、上記のように輝度値と閾値との比較によって行う以外にも、様々な方法でもって実施することができる。例えば、スリット光の色の成分情報と撮像画像中の各画素の色の成分情報に基づいて判別する方法や、色情報の変化の仕方に基づいて判別する方法によっても、実施は可能である。
【００４３】
図６の撮像画像から生成した２値画像の一例を図７に示す。図６の撮像画像においてパターン光投影領域が写っている領域が図７において黒線で示されており、この黒線は画素値が「１」の画素で構成されている（黒線部分以外は画素値が「０」の画素で構成されている）。
【００４４】
次に、ステップＳ５０５では、距離画像生成部２０６は、ステップＳ５０４で生成された２値画像を用いて、距離画像を生成する。距離画像の各画素の画素値としての距離は、下記の文献に記されている方法に従って求めることができる。
【００４５】
Ｒ．  Ｈａｒｔｌｅｙ  ａｎｄ  Ａ．  Ｚｉｓｓｅｒｍａｎ  “Ｍｕｌｔｉｐｌｅ  ｖｉｅｗ  ｇｅｏｍｅｔｒｙ  ｉｎ  ｃｏｍｐｕｔｅｒ  ｖｉｓｉｏｎ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ”（Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  ２００３）
本実施形態では、プロジェクタ１０２が投影するパターン光中の画素位置、それに対応する撮像画像上の位置、プロジェクタ１０２と撮像装置１０３の内部パラメータ、プロジェクタ１０２と撮像装置１０３との相対的な位置及び姿勢、に基づいて求める。そして、撮像画像の各画素位置に対応する視線ベクトルに、距離画像において該画素位置の距離を乗じることで、撮像画像の各画素位置を通る視線ベクトルが指し示す先の位置（カメラ座標系における３次元位置）を点群データとして求める。
【００４６】
ステップＳ５０６では、エッジ対応検出部２０５は、上記の２値画像において画素値が「１」の領域を拡大させることで該２値画像を変更した画像を、パターン光マスク（２値画像と縦横同サイズ）として生成する。
【００４７】
先ず、２値画像のコピーとしてパターン光マスクを生成する。次に、パターン光マスク中の各画素位置を参照し、参照した画素位置（ｘ、ｙ）における画素の画素値が「１」であれば、該画素の近傍画素（例えば、該画素に隣接する画素）の画素値を「１」に更新する。
【００４８】
図７の２値画像から生成したパターン光マスクの一例を図８に示す。図７の２値画像においてパターン光投影領域（画素値「１」の画素で構成されている）が、図８においてより太い黒線に拡大されており、拡大された黒線は画素値「１」の画素で構成されている（拡大された黒線部分以外は画素値「０」の画素で構成されている）。
【００４９】
このパターン光マスクは、後の位置姿勢算出処理において、撮像画像上の３次元幾何モデルとオブジェクト１０１とのエッジのずれ（誤差）を算出する際に用いるものである。パターン光投影領域を太くしたのは、３次元幾何モデルのエッジがパターン光投影によってできるエッジと誤対応してしまうリスクを小さくするためである。この対応付けの詳細については後述する。
【００５０】
次に、ステップＳ４０４における処理の詳細について、同処理のフローチャートを示す図９を用いて説明する。本実施形態では、オブジェクト１０１の位置姿勢を確定させる為の繰り返し演算に、Ｇａｕｓｓ−Ｎｅｗｔｏｎ法を用いる。これにより、オブジェクト１０１の位置及び姿勢（以下、ｓで表す）の概略値を反復演算により繰り返し補正することによって位置及び姿勢を算出する。
【００５１】
本実施形態における位置及び姿勢の算出では、次のようにして推定位置姿勢を最適化する。即ち、撮像画像上のオブジェクト１０１のエッジと推定位置姿勢に基づいて該画像上に投影される３次元幾何モデルの線分との距離、上記点群データが示す各位置と推定位置姿勢の３次元幾何モデルとの距離の総和が極小化するように推定位置姿勢を最適化する。より具体的には、２次元画像上での点と直線の符号付距離、３次元空間中での点と平面との符号付距離を、１次のテイラー展開によってそれぞれオブジェクト１０１の位置及び姿勢の微小変化の１次関数として表現する。そして、符号付距離が０になるような位置及び姿勢の微小変化に関する線形の連立方程式を立式して解くことにより、オブジェクト１０１の位置及び姿勢の微小変化を求めて位置及び姿勢を補正することを繰り返す。
【００５２】
ステップＳ９０１では、位置姿勢算出部２０１は、上記の初期概略位置姿勢情報２０３を以下の繰り返し演算の初期値（初期位置姿勢ｓ）に設定する。
【００５３】
ステップＳ９０２では、エッジ対応検出部２０５は、現在のｓが示す位置姿勢を有する３次元幾何モデル（実際には辺のみ）を撮像画像上に投影する。更に位置姿勢算出部２０１は、３次元幾何モデルを構成する各面について、該面の各頂点の座標値をカメラ座標系における座標値に変換する。
【００５４】
そしてエッジ対応検出部２０５は、撮像画像中のオブジェクト１０１と、該撮像画像上に投影された３次元幾何モデルとで、エッジの対応付けを行う。この対応付け処理について、図１０を用いて説明する。図１０（ａ）では、パターン光マスクにおいて画素値が「１」の領域に対応する撮像画像中の領域をパターン光マスク１００４として表している。
【００５５】
現在のｓが示す位置姿勢を有する３次元幾何モデルの線分を撮像画像上に投影した線分が線分１００１として示されている。線分の投影像は画像上でも線分となる。次に、画像上で等間隔になるように、投影された線分１００１上に制御点１００２を設定し、制御点１００２ごとに、投影された線分１００１の法線方向に探索ライン１００３を設定する。そして制御点１００２ごとに、該制御点について設定した探索ライン１００３において該制御点から規定距離以内のライン上で且つパターン光マスク１００４を含まないライン上で、１次元のエッジの検出を行う。そして、検出されたエッジの中で制御点１００２に最も近い点を対応点１００５として保持する。実際にはパターン光マスク１００４内にはパターン光によるエッジがあるが、このように対応点を探索することでパターン光によるエッジに誤対応することを回避する。
【００５６】
図１０（ｂ）に、原点が制御点で、横軸に探索ライン、縦軸に輝度勾配の絶対値をとるグラフを示す。先の画像上において、エッジは画素値の輝度勾配の絶対値の極値として検出される。ここでは輝度勾配の絶対値の極値が所定の値よりも大きく、且つ最も制御点に近い点を対応点１００６（図１０（ａ）における対応点１００５）とする。
【００５７】
なお、パターン光に起因しないエッジの検出をする際に、本実施形態ではパターン光マスク１００４以外の領域においてエッジの検出を行った。しかし、この時の処理順序は先にエッジの検出を行った後に、検出されたエッジがマスク領域の中にあるか否かを判別し、中にある場合はそのエッジを採用、外にある場合は次のエッジを検出するといった順序で検出をしても同様の効果を得ることができる。
【００５８】
ステップＳ９０３では、位置姿勢算出部２０１は、位置姿勢を算出するため（線形連立方程式を解くため）の係数行列と誤差ベクトルの算出を行う。３次元幾何モデルの辺である線分と撮影画像のエッジとの対応付けを行い、オブジェクト１０１の位置姿勢を求めるには、位置姿勢を算出するための係数行列と誤差ベクトルの算出を行う必要がある。
【００５９】
ここで係数行列の各要素は、位置及び姿勢の概略値の微小変化に対する一次の偏微分係数である。エッジについては、画像座標の偏微分係数を算出し、点群については３次元座標の偏微分係数を算出する。誤差ベクトルは、エッジについては投影された線分と検出されたエッジの画像上での距離、点群データについてはモデルの面と点の３次元空間中での距離である。
【００６０】
図１１は、線分の投影像と検出されたエッジの関係を説明する図である。図１１では、画像の水平方向、垂直方向をそれぞれｕ軸、ｖ軸としている。ある制御点（投影された各線分を画像上で等間隔に分割した点）の画像上での座標を（ｕ０，ｖ０）、該制御点が所属する線分の画像上での傾きをｕ軸に対する傾きθと表す。傾きθは、線分の両端の三次元座標をｓに基づいて画像上に投影し、画像上での両端の座標を結んだ直線の傾きとして算出する。該線分の画像上での法線ベクトルは（ｓｉｎθ，−ｃｏｓθ）となる。また、該制御点の対応点の画像上での座標を（ｕ’，ｖ’）とする。ここで、対応点の座標（ｕ’，ｖ’）を通り、傾きがθである直線（図１１の破線）上の点（ｕ，ｖ）は、以下の式で表すことが出来る。
【００６１】
【数１】
2014002033.tif 000003
【００６２】
制御点の画像上での位置はオブジェクト１０１の位置姿勢により変化する。また、オブジェクト１０１の位置姿勢の自由度は６自由度である。すなわち、ｓは６次元ベクトルであり、オブジェクト１０１の位置を表す３つの要素と、姿勢を表す３つの要素からなる。姿勢を表す３つの要素は、例えばオイラー角による表現や、方向が原点を通る回転軸を表してノルムが回転角を表す三次元ベクトルなどによって表現される。位置姿勢により変化する点の画像上での座標（ｕ，ｖ）は、座標（ｕ０，ｖ０）の近傍で１次のテイラー展開によって以下の式（２）のように近似できる。但し△ｓｉ（ｉ＝１，２，・・・，６）はｓの各成分の微小変化を表す。
【００６３】
【数２】
2014002033.tif 000004
【００６４】
正しいｓによって得られる制御点の画像上での位置は式（１）が表す直線上にあると仮定できる。式（２）によって近似されるｕ、ｖを式（１）に代入することにより、以下の式（３）が得られる。
【００６５】
【数３】
2014002033.tif 000005
【００６６】
カメラ座標系における３次元座標は、オブジェクト１０１の位置姿勢ｓによってオブジェクト１０１の座標系における３次元座標（ｘ，ｙ，ｚ）に変換することができる。概略の位置及び姿勢により、ある点がオブジェクト１０１の座標系の点（ｘ０，ｙ０，ｚ０）に変換されるとする。（ｘ，ｙ，ｚ）はオブジェクト１０１の位置及び姿勢により変化するものであり、（ｘ０，ｙ０，ｚ０）の近傍で１次のテイラー展開によって以下の式（４）のように近似できる。
【００６７】
【数４】
2014002033.tif 000006
【００６８】
ステップＳ９０２において、点群データ中のあるデータが示す位置に対応付けられた３次元幾何モデルの面の、オブジェクト１０１の座標系における方程式をａｘ＋ｂｙ＋ｃｚ＝ｅ（ａ２＋ｂ２＋ｃ２＝１、ａ，ｂ，ｃ，ｅは定数）とする。正しいｓによって変換される（ｘ，ｙ，ｚ）は、二次元平面の方程式ａｘ＋ｂｙ＋ｃｚ＝ｅ（ａ２＋ｂ２＋ｃ２＝１）を満たすと仮定する。上記の式（４）を平面の方程式に代入すると以下の式（５）が得られる。
【００６９】
【数５】
2014002033.tif 000007
【００７０】
本実施形態では上記のように、三次元空間における誤差値を３次元幾何モデルの面と対応する計測点間の距離で表した（式５）。しかしながら誤差値の定義方法はこれに限らず、３次元幾何モデルと点群データとの距離（ずれ量）を定義できればなんでもよい。例えば、点群データが線情報や面情報を含むデータである場合は、エッジ間距離や面間距離を用いて誤差値を定義しても同様に位置姿勢を求めることができる。
【００７１】
式（３）は、対応付けが行われたすべてのエッジについて立式することができる。また、式（５）も、対応付けが行われたすべての点群データについて成り立つため、式（６）のようなΔｓｉに関する線形連立方程式が成り立つ。
【００７２】
【数６】
2014002033.tif 000008
【００７３】
ここで式（６）を式（７）のように表す。
【００７４】
【数７】
2014002033.tif 000009
【００７５】
式（６）の線形連立方程式の係数行列Ｊを算出するための偏微分係数の算出は、例えば以下の文献に開示されている方法に従って行う。
【００７６】
Ｖ．  Ｌｅｐｅｔｉｔ  ａｎｄ  Ｐ．  Ｆｕａ，  “Ｋｅｙｐｏｉｎｔ  ｒｅｃｏｇｎｉｔｉｏｎ  ｕｓｉｎｇ  ｒａｎｄｏｍｉｚｅｄ  ｔｒｅｅｓ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｖｏｌ．２８，  ｎｏ．９，  ２００６．
ステップＳ９０４では、位置姿勢算出部２０１は、線形連立方程式の係数行列Ｊを算出するため偏微分係数の算出を行う。式（７）をもとに、行列Ｊの一般化逆行列（ＪＴ・Ｊ）−１・ＪＴを用いて位置姿勢の補正値△ｓを求める。しかしながら、エッジや点群データには誤検出などによる外れ値が多いため、次に述べるようなロバスト推定手法を用いる。一般に、外れ値であるエッジ（点群データ）では、誤差ｄ−ｒ（ｅ−ｑ）が大きくなる。そのため、式（６）、式（７）の連立方程式に対する寄与度が大きくなり、その結果得られるΔｓの精度が低下してしまう。
【００７７】
そこで、誤差ｄ−ｒ（ｅ−ｑ）が大きいデータには小さな重みを与え、誤差ｄ−ｒ（ｅ−ｑ）が小さいデータには大きな重みを与える。重みは例えば以下の式（８）に示すようなＴｕｋｅｙの関数により与える。
【００７８】
【数８】
2014002033.tif 000010
【００７９】
ｃ１，ｃ２は定数である。なお、重みを与える関数はＴｕｋｅｙの関数である必要はなく、例えばＨｕｂｅｒの関数など、誤差が大きい情報には小さな重みを与え、誤差が小さい情報には大きな重みを与える関数であれば、如何なる関数であってもよい。各計測情報（エッジまたは点群データ）に対応する重みをｗｉとする。ここで式（９）のように重み行列Ｗを定義する。
【００８０】
【数９】
2014002033.tif 000011
【００８１】
重み行列Ｗは、対角成分以外はすべて０の正方行列であり、対角成分には重みｗｉが入る。この重み行列Ｗを用いて、式（７）を式（１０）のように変形する。
【００８２】
【数１０】
2014002033.tif 000012
【００８３】
式（１０）を式（１１）のように解くことにより補正値△ｓを求める。
【００８４】
【数１１】
2014002033.tif 000013
【００８５】
ステップＳ９０５では、位置姿勢算出部２０１は、ステップＳ９０４で算出された位置姿勢の補正値△ｓを用いて以下の式を計算することで、位置姿勢の概略値ｓを補正（更新）する。
【００８６】
ｓ←ｓ＋Δｓ
ステップＳ９０６では、位置姿勢算出部２０１は、ｓの収束判定を行い、収束していれば終了し、そうでなければ処理をステップＳ９０２に戻して繰り返し演算を行う。収束判定では、補正値△ｓがほぼ０である場合や、誤差ベクトルの二乗和が補正前と補正後でほとんど変わらない場合に収束したと判定する。このように、収束するまで繰り返すことで、位置姿勢を算出できる。
【００８７】
このように、本実施形態によれば、オブジェクトの表面性状や幾何形状に対して安定性が高く、特に画像奥行方向に広がりを持って配置されたオブジェクトに対して高精度に位置姿勢計測を行うことができる。
【００８８】
なお、本実施形態では、モデルフィッティングの一例としてＧａｕｓｓ−Ｎｅｗｔｏｎ法で求める方法を説明したが、モデルフィッティングの方法はこれに限らない。例えば、より計算がロバストであるＬｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ法によって行ってもよいし、よりシンプルな方法である最急降下法によって行ってもよい。また、共役勾配法やＩＣＣＧ法など、他の非線形最適化計算手法を用いてもよい。
【００８９】
さらに、本実施形態では、ステップＳ４０３で得られた距離画像とパターン光マスクを用いて、ステップＳ４０４でオブジェクト１０１の位置姿勢を、反復を伴うモデルフィッティングによって求めた。しかし、ステップＳ４０４でモデルフィッティングを用いる代わりにパターンマッチングを用いて位置姿勢を直接求める方法も考えられる。
【００９０】
例えば、オブジェクトのＣＡＤデータをＣＡＤモデルの中心から頂点が等しい距離になるＧｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅを設定する。そして、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅの頂点からＣＡＤモデルの中心を向いてみたときのエッジ画像を事前に用意しておき、これらの視点別エッジモデルをパターン光マスク処理済みの撮像画像に対してパターンマッチングを行う。これにより、パターン光ノイズの影響を抑えてオブジェクトのおおよその位置姿勢を求めることができる。さらに、ステップＳ４０３で得られた距離画像とパターン光マスクの使用用途はモデルフィッティング及びパターンマッチングへの利用に限定するものではない。例えば、パターン光マスクを利用してパターン光ノイズの影響を除去した照合処理全般に広く適用可能である。
【００９１】
なお、本実施形態では、画像処理装置１０４は、撮像画像を撮像装置１０３から直接取得しているが、これに限るものではなく、例えば、撮像装置１０３によって撮像された撮像画像を蓄積しているメモリから取得するようにしても良い。この場合、撮像装置１０３は必ずしも、画像処理装置１０４に接続されている必要はない。
【００９２】
即ち、第１の実施形態や以下の実施形態に係る画像処理装置１０４は、下記の構成の一例に過ぎず、以下の構成と同等の機能を有する構成であれば、様々な構成の変形例が適用可能である。
【００９３】
即ち、パターン光が投影された現実物体を含んだ画像を取得する。そして、現実物体の形状を模した仮想物体を画像上に重畳し、該重畳された仮想物体の各箇所に対応する現実物体の箇所を、該画像においてパターン光が写っている領域を拡大した拡大領域外から特定する。そして、特定された箇所に基づいて、画像上に重畳された仮想物体と現実物体との位置ずれを算出する。そして、位置ずれを極小化するように、仮想物体の位置姿勢を、現実物体の位置姿勢として求める。
【００９４】
また、上記の探索では、撮像画像においてパターン光が写っている領域をパターン光領域、撮像画像においてパターン光が写っていない領域を非パターン光領域とする。パターン光領域に対応するマスク画像内の領域と、非パターン光領域に対応する該マスク画像内の領域と、で異なる画素値を有するマスク画像を生成し、パターン光領域に対応するマスク画像内の領域を拡大した領域に対応する撮像画像中の領域を拡大領域とする。そして、該拡大領域外で上記探索した結果を「対応する現実物体の箇所」とする。若しくは探索結果から該拡大領域内にあるものを除外した結果を「対応する現実物体の箇所」とする。
【００９５】
また、上記の演算では、マスク画像から、撮像装置から現実物体上の各位置までの距離を画素値とする距離画像を生成する。そして、距離画像によって表される現実物体上の各位置と仮想物体において該位置に対応する位置との位置ずれ、上記距離、を極小化するように上記繰り返し演算を行う。
【００９６】
［第２の実施形態］
第１の実施形態では、撮像画像からパターン光投影領域を検出し、ステップＳ５０６でこの領域に基づいてパターン光マスクを作成する方法を説明した。この方法はパターン光の形状が未知であるときなどでも広く適用可能である。この他の実施方法として、パターン光の形状が既知であるならば、このパターン光形状とオブジェクトの概略位置姿勢及びオブジェクトの幾何形状よりパターン光の撮像画像内での投影領域を算出してパターン光マスクを作成することもできる。
【００９７】
プロジェクタがパターン光を投影している状態の光源情報と、概略位置姿勢で配置されているオブジェクトのモデル情報と、に基づいて、スリット光がカメラで撮影する撮像画像内のどのピクセルに映るかを算出する。具体的には、スリット光源から照射される各光線がオブジェクト表面での衝突を経てカメラの撮像センサのどの位置に到達するのかを追跡計算するレイトレーシング法の原理で求める。これにより、ステップＳ５０４で生成したパターン光投影領域を示すビットマップ（図７）と同等の情報を得ることができる。その後の処理は第１の実施形態で説明した方法と同様にオブジェクトの位置姿勢を計測することが可能である。
【００９８】
［第３の実施形態］
第１、２の実施形態で説明した方法は、すなわち、エッジ検出時にパターン光を避けて検出する方法である。上記の誤差算出方法（以降、距離優先誤差算出方法と呼ぶ）はパターン光検出優先であり、奥行き方向の誤差の検出精度が高い。これに対し、特許文献１で開示されている方法（以降、エッジ優先誤差算出方法と呼ぶ）はエッジ検出優先であり、撮像画像平面方向の誤差の検出精度が高いという特徴がある。
【００９９】
これらの特性を踏まえて、誤差算出に当たってオブジェクトの形状に基づいて距離優先誤差算出方法を採用するのか、それともエッジ優先誤差算出方法を採用するのかを判別する機構を備えることで、より精度の高い計測が可能となる。以下にその判別基準について具体的な例を挙げる。
【０１００】
第一の方法は、オブジェクトの形状に基づくものである。まずオブジェクトの３次元幾何モデルの体積内に均等にサンプル点を振る。それらのサンプル点の集合について主成分分析を行い、第１主成分、第２主成分、第３主成分の寄与率（三つの主成分の和におけるそれぞれの主成分の割合）を求める。さらにその寄与率の関係と特徴を以下のように分類する。
【０１０１】
１）  第１主成分寄与率  ＞＞  第２主成分寄与率
→  オブジェクトの体積は直線状に分布
２）  第１主成分寄与率  ≒  第２主成分寄与率  且つ  第２主成分寄与率  ＞＞  第３主成分寄与率
→  オブジェクトの体積は平面状に分布
３）  第１主成分寄与率  ≒  第２主成分寄与率  ≒  第３主成分寄与率
→  オブジェクトの体積は３次元空間に均等に分布
ただし、ａ＞＞ｂはａがｂよりもはるかに大きい（ｂに対するａの比率が閾値よりも大きい）ことを示す。
【０１０２】
主成分寄与率の関係が上記の１）または２）のときにオブジェクトを盤面の平らな計測台の上に置いた場合、オブジェクトは盤面に沿うように置かれ観測画像奥行き方向の分布は小さくなる傾向がある。一方、主成分寄与率の関係が上記の３）のとき、オブジェクトの観測画像奥行き方向の分布は大きくなる傾向がある。
【０１０３】
以上を踏まえて、主成分寄与率が３）を満たし計測対象オブジェクトの体積分布が観測画像奥行き方向に広く分布している場合は距離優先誤差算出方法を採用し、そうでない場合はエッジ優先誤差算出方法を採用するよう切り替える。なお、誤差算出方法の切り替え基準はあくまで一例であり、オブジェクトの画像奥行き方向の広がりに着目した基準があれば代替して利用することが可能である。即ち、下記の２つの処理のうち、仮想物体の形状に応じて決まる一方の処理を実行する。
【０１０４】
（処理１）  現実物体の形状を模した仮想物体を画像上に重畳し、該重畳された仮想物体の各箇所に対応する現実物体の箇所を、該画像においてパターン光が写っている領域を拡大した拡大領域外で探索する処理
（処理２）  仮想物体のエッジモデルを画像上に重畳し、該画像においてパターン光が写っている領域を、該画像に重畳された該エッジモデルに基づいて取り除いた後で、画像上に重畳された仮想物体の各箇所に対応する現実物体の箇所を、該画像においてパターン光が写っている領域外で探索する処理
第二の方法は、概略位置姿勢におけるオブジェクトの位置姿勢の奥行き方向のあいまい性に基いて算出する方法が考えられる。下記の文献によると、観測画像のピクセルのあいまい性がどのピクセルでも１であると仮定するとある概略位置姿勢における方向に対するあいまい性の共分散行列はＪＴＪであらわされる。
【０１０５】
Ｗ．  Ｈｏｆｆ  ａｎｄ  Ｔ．  Ｖｉｎｃｅｎｔ  “ＩＥＥＥ  Ｔｒａｎｓ．  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ Ｃｏｍｐｕｔｅｒ Ｇｒａｐｈｉｃｓ, Ｖｏｌ ６., Ｎｏ. ４, ２０００.”
この共分散行列を固有値分解して求めた主方向単位ベクトルがｕであるとすると、概略位置姿勢におけるオブジェクトの位置姿勢の奥行き方向のあいまい性はｕと奥行き方向単位ベクトルの内積で表すことができる。この値は０から１の範囲をとりうる値で１に近いほど奥行き方向にあいまいであることを表す。この値の算出方法は第１の実施形態で既に説明したとおりである。上記で求めたあいまい性が所定の基準値以上のときは距離優先誤差算出方法を採用し、そうでない場合はエッジ優先誤差算出方法を採用するよう切り替える。
【０１０６】
以上に例示したような切り替え基準を用いて、それぞれの特性を考慮した誤差算出方法を採用することで、より高精度な位置姿勢計測が可能になる。
【０１０７】
［第４の実施形態］
第１〜３の実施形態の画像処理装置は、産業用ロボットアームでオブジェクトの把持、移動、解放といった動作を行うシステム（ロボットシステム）において、オブジェクトの位置姿勢計測を行う装置に利用することができる。この適用例について、図１２を用いて説明する。
【０１０８】
撮像装置１０３とプロジェクタ１０２とが一体化されたもの（別個でも良い）が、センサ１２０２であり、位置姿勢の計測対象であるオブジェクト１２０５に対してパターン光を投影すると共に、該パターン光が投影されたオブジェクト１２０５を撮像する。このセンサ１２０２は、ロボットアーム１２０３に取り付けられており、ロボットアーム１２０３が把持しようとするオブジェクト１２０５を撮像することができる。
【０１０９】
ロボットアーム１２０３は、回転軸及び／または並進移動軸からなる可動軸を有し、ロボットコントローラ１２０４により制御される。
【０１１０】
コンピュータ１２０１は、画像処理装置１０４として機能すると共に、ロボットコントローラ１２０４を制御する。ロボットコントローラ１２０４は、コンピュータ１２０１から受け取ったロボットアーム１２０３用の制御命令（オブジェクト１２０５の位置姿勢を含む）を具体的な制御命令に変換してロボットアーム１２０３を動かす。
【０１１１】
本実施形態における画像処理装置１０４は上記に加えてさらに次の処理手順を包含する。まず、コンピュータ１２０１は、カメラ座標系とロボットアーム１２０３を基準とするロボット座標系との相対関係を保持する。コンピュータ１２０１はオブジェクト１２０５の位置姿勢を計測し、その結果をカメラ座標系からロボット座標系に変換する。次にコンピュータ１２０１は、変換されたオブジェクトのロボット座標系における位置姿勢を元に、ロボットコントローラ１２０４を介してロボットアーム１２０３がオブジェクト１２０５を把持できる位置・姿勢に移動させる。
【０１１２】
これにより、本実施形態におけるロボットシステムは、オブジェクトの位置が不定でも、その位置姿勢の計測を行うことで、ロボットアームにオブジェクトを把持させることが可能となる。
【０１１３】
なお、画像処理装置１０４の適用対象は、位置姿勢の計測対象となるオブジェクトの位置姿勢を計測する必要のあるシステムであれば、如何なるシステムであっても良い。換言すれば、画像処理装置１０４が求めた位置姿勢の利用目的は、特定の利用目的に限るものではない。
【０１１４】
［第５の実施形態］
図１に示した画像処理装置１０４を構成する各部（位置姿勢算出部２０１、エッジ対応検出部２０５、距離画像生成部２０６）は、ハードウェアで構成しても良いが、ソフトウェア（コンピュータプログラム）で構成しても良い。後者の場合、コンピュータがアクセス可能なメモリに、３次元モデル情報２０２、初期概略位置姿勢情報２０３はデータとして、位置姿勢算出部２０１、エッジ対応検出部２０５、距離画像生成部２０６はコンピュータプログラムとして格納しておく。そしてこのコンピュータのＣＰＵがこれらのコンピュータプログラムやデータを読み出して処理を実行することで、このコンピュータは、画像処理装置１０４として機能することができる。
【０１１５】
＜各実施形態の効果について＞
第１の実施形態によれば、オブジェクトの表面性状や幾何形状に対して安定性が高く、特に画像奥行き方向に広がりを持って配置されたオブジェクトに対して高精度に位置姿勢計測を行うことができる。
【０１１６】
第２の実施形態によれば、撮像画像内のパターン光を画像処理によって検出できない場合であっても、正しい対応付けを行うことができる。
【０１１７】
第３の実施形態によれば、誤差算出方法をオブジェクトの形状またはオブジェクトの配置状態に基づいて選択することで計測精度を向上させることができる。
【０１１８】
第４の実施形態によれば、置いてある場所が不定であるオブジェクトの把持を可能にする。
【０１１９】
＜定義＞
上記の説明におけるパターン光は、撮像画像内での投影領域境界が特定できるものであればよく、そのため、パターン光を投影する装置には様々な投影装置を適用することができる。すなわち、システムに内包する装置で能動的に投影するものでもよいし、システムの制御の及ばない外部から受動的にもたらされるものであってもよい。また、パターン光の投影形状についてもその投影領域境界が特定できるものであればどのような形状であってもよい。スリット状でもよいしランダムドットパターンでもよいし、局所的な平面パターンなどであってもよい。また、スポット光を投影してもよい。
【０１２０】
また、撮像画像内でのパターン光の投影領域の特定方法はどのような方法であってもよい。すなわち、第１の実施形態のように輝度値を閾値や、その他の色情報を閾値として用いて特定してもよい。また、第２の実施形態のようにパターン光の投影形状が既知であるのならばその形状とオブジェクトの概略位置姿勢及びオブジェクトの幾何形状より計算して特定してもよい。
【０１２１】
また、上記の説明における位置及び姿勢の算出方法はパターン光が写りこんだ画像を用いて実施する方法であればなんでもよい。撮像画像内に写り込んだオブジェクトの３次元位置姿勢パラメータをあらかじめ保持するオブジェクト３次元モデルに基づいて決定するモデルフィッティングでもよい。また、撮像画像内に写り込んだ所定のテンプレートの位置をあらかじめ保持するテンプレート画像に基づいて決定するテンプレートマッチングでもよい。
【０１２２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014002033.tif 000014
【図２】
2014002033.tif 000015
【図３】
2014002033.tif 000016
【図４】
2014002033.tif 000017
【図５】
2014002033.tif 000018
【図７】
2014002033.tif 000019
【図８】
2014002033.tif 000020
【図９】
2014002033.tif 000021
【図１０】
2014002033.tif 000022
【図１１】
2014002033.tif 000023
【図１２】
2014002033.tif 000024
【図６】
2014002033.tif 000025