(57)【要約】      （修正有）【課題】把持された状態のオブジェクトの位置及び姿勢の特定処理を行うことができる画像処理装置等を提供する。【解決手段】画像処理装置１００は、オブジェクトと、オブジェクトを把持する把持部とが映る第１の画像を取得する第１の画像取得部１１０と、オブジェクトが映る第２の画像を取得する第２の画像取得部１２０と、第１の画像と第２の画像の比較処理の対象外の領域であるマスク領域を第１の画像に設定するマスク領域設定部１３０と、オブジェクトの位置及び姿勢の特定処理を行う位置姿勢特定部１５０を含む。マスク領域設定部１３０は、把持部が映る領域をマスク領域として第１の画像に設定する。位置姿勢特定部１５０は、マスク領域が設定された第１の画像と第２の画像の比較処理を行い、第１の画像に映るオブジェクトの位置及び姿勢を特定する。【選択図】図１
2014235680.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像を取得する第１の画像取得部と、
前記オブジェクトが映った第２の画像を取得する第２の画像取得部と、
前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域を、前記第１の画像に設定するマスク領域設定部と、
前記第１の画像に映る前記オブジェクトの位置及び姿勢の特定処理を行う位置姿勢特定部と、
を含み、
前記マスク領域設定部は、
前記第１の画像において前記把持部が映る領域を特定して、前記把持部が映る領域を前記マスク領域として前記第１の画像に設定し、
前記位置姿勢特定部は、
前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢を特定することを特徴とする画像処理装置。
【請求項２】
請求項１において、
画像の一部又は全ての領域についての領域情報を求める領域情報演算部を含み、
前記領域情報演算部は、
前記第１の画像の領域のうち、前記マスク領域以外の領域であって、前記第２の画像と重複する第１の領域についての第１の領域情報と、前記第１の画像の領域のうち、前記マスク領域以外の領域であって、前記第２の画像と重ならない第２の領域についての第２の領域情報と、前記第２の画像の領域のうち、前記第１の画像とは重ならない第３の領域についての第３の領域情報と、を求め、
前記位置姿勢特定部は、
前記第１の領域情報と、前記第２の領域情報と、前記第３の領域情報とに基づいて、前記第１の画像と前記第２の画像との重複度合いについての評価値を求め、前記評価値に基づいて、前記第２の画像又は前記把持部の設定パラメーターの更新処理を、前記オブジェクトの前記位置及び前記姿勢の前記特定処理として行うことを特徴とする画像処理装置。
【請求項３】
請求項２において、
前記マスク領域設定部は、
第１のタイミングにおいて取得される撮像画像と、前記第１のタイミングの後の第２のタイミングにおいて取得される前記第１の画像との差分領域を検出し、前記第２のタイミングにおいて取得される前記第１の画像に対して、検出した前記差分領域を前記マスク領域として設定することを特徴とする画像処理装置。
【請求項４】
請求項３において、
前記マスク領域設定部は、
前記把持部と前記オブジェクトが非接触である前記第１のタイミングにおいて取得される前記撮像画像と、前記把持部が前記オブジェクトを把持した前記第２のタイミングにおいて取得される前記第１の画像との前記差分領域を検出し、前記第２のタイミングにおいて取得される前記第１の画像に、検出した前記差分領域を前記マスク領域として設定することを特徴とする画像処理装置。
【請求項５】
請求項３又は４において、
前記位置姿勢特定部は、
前記第２のタイミングの後の第３のタイミングにおいて取得される前記第１の画像と、前記第２の画像との前記比較処理を行い、前記第３のタイミングにおいて取得される前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢を特定し、
前記第２の画像取得部は、
前記第３のタイミングにおける前記位置及び前記姿勢の前記オブジェクトが映る前記第２の画像を取得し、
前記マスク領域設定部は、
前記第３のタイミングにおいて取得される第１の画像と、前記第３のタイミングにおける前記位置及び前記姿勢の前記オブジェクトが映る前記第２の画像との比較処理を行い、前記第１の画像において前記把持部が映る領域を検出し、前記第３のタイミングにおいて取得される前記第１の画像に対して、検出した前記把持部が映る領域を前記マスク領域として再設定することを特徴とする画像処理装置。
【請求項６】
請求項２乃至５のいずれかにおいて、
前記第２の画像は、
３次元オブジェクト空間に配置された前記オブジェクトの画像であり、
前記設定パラメーターは、
前記第２の画像により表される前記オブジェクトの位置姿勢特定パラメーターであり、
前記位置姿勢特定部は、
前記第２の画像の前記設定パラメーターの前記更新処理として、前記位置姿勢特定パラメーターを更新する処理を行うことを特徴とする画像処理装置。
【請求項７】
請求項２乃至５のいずれかにおいて、
前記第１の画像は、
前記把持部と前記オブジェクトとが映る撮像画像であり、
前記設定パラメーターは、
前記オブジェクトを把持する前記把持部の制御パラメーターであり、
前記位置姿勢特定部は、
前記把持部の前記設定パラメーターの前記更新処理として、前記把持部の前記制御パラメーターを更新する処理を行うことを特徴とする画像処理装置。
【請求項８】
請求項２乃至７のいずれかにおいて、
前記領域情報演算部は、
前記第１の画像及び前記第２の画像が二値化された画像データに対して計数処理を行うことにより、前記第１の領域情報、前記第２の領域情報及び前記第３の領域情報を求めることを特徴とする画像処理装置。
【請求項９】
請求項２乃至８のいずれかにおいて、
前記領域情報演算部は、
前記第１の領域のピクセル数又は面積値を表す情報を前記第１の領域情報として求め、前記第２の領域のピクセル数又は面積値を表す情報を前記第２の領域情報として求め、前記第３の領域のピクセル数又は面積値を表す情報を前記第３の領域情報として求めることを特徴とする画像処理装置。
【請求項１０】
請求項２乃至９のいずれかにおいて、
前記位置姿勢特定部は、
前記第１の領域情報と、前記第２の領域情報と、前記第３の領域情報と、前記領域情報の重み付け情報とに基づいて、前記評価値を求め、前記評価値に基づいて、前記設定パラメーターの前記更新処理を行うことを特徴とする画像処理装置。
【請求項１１】
請求項２乃至１０のいずれかにおいて、
前記位置姿勢特定部は、
前記評価値の評価関数のヤコビアンを求め、求めた前記ヤコビアンに基づいて前記設定パラメーターの前記更新処理を行うことを特徴とする画像処理装置。
【請求項１２】
請求項２乃至１１のいずれかにおいて、
前記オブジェクトの前記位置及び前記姿勢の一致判定処理を行う判定部をさらに含み、
前記判定部は、
前記評価値に基づいて、前記第１の画像により表される前記オブジェクトと前記第２の画像により表される前記オブジェクトとの前記位置及び前記姿勢の前記一致判定処理を行うことを特徴とする画像処理装置。
【請求項１３】
オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像と、前記オブジェクトが映った第２の画像と、を取得し、
前記第１の画像において前記把持部が映る領域を特定し、
前記把持部が映る領域を、前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域として前記第１の画像に設定して、
前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢の特定処理を行うことを特徴とする画像処理方法。
【請求項１４】
オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像と、前記オブジェクトが映った第２の画像と、を取得し、
前記第１の画像において前記把持部が映る領域を特定し、
前記把持部が映る領域を、前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域として前記第１の画像に設定して、
前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの位置及び姿勢の特定処理を行うことを特徴とするロボット。
【請求項１５】
オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像を取得する第１の画像取得部と、
前記オブジェクトが映った第２の画像を取得する第２の画像取得部と、
前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域を、前記第１の画像に設定するマスク領域設定部と、
前記第１の画像に映る前記オブジェクトの位置及び姿勢の特定処理を行う位置姿勢特定部として、
コンピューターを機能させ、
前記マスク領域設定部は、
前記第１の画像において前記把持部が映る領域を特定して、前記把持部が映る領域を前記マスク領域として前記第１の画像に設定し、
前記位置姿勢特定部は、
前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢を特定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、ロボット及びプログラム等に関係する。
【背景技術】
【０００２】
画像中の対象物体像から、その物体の３次元的な位置及び姿勢を知ることは、種々の応用において必要とされる。一例として、産業用ロボットの応用においては、カメラなどを用いて物体を撮像し、撮像した画像を用いて物体の位置姿勢情報を検出し、検出した位置姿勢情報を用いてロボットがその物体を把持する、などと言うことが要求される。また、ロボットが把持した物体を指定の位置へ指定された姿勢で置くことも必要とされため、把持された状態での物体の位置及び姿勢を検出することも要求される。
【０００３】
そのような場合に用いる物体の位置及び姿勢の検出方法の一つとして、Analysis By Synthesis（ＡｂＳ）と呼ばれる手法がある。しかし、この手法を単純に実行する場合には非常に長い処理時間が必要となり、実用に耐え得ない。
【０００４】
さらに、このような目的で使用される技術として、例えば特許文献１に記載されている発明がある。この手法によれば、粗い処理から精密な処理へと段階的に処理を進めて、処理時間を大幅に削減することが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９３６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、この特許文献１に記載される発明には以下のような問題点がある。第１に、複数の視点からの仮想ビュー、更にはその解像度を変化させたビューなど、非常に大量のデータが必要とされる。第２に、輪郭情報を用いる手法はノイズや照明条件の変化に弱い。第３に、物体が把持された状態では、物体の輪郭の一部が把持機構によって遮蔽され、把持機構が新たな輪郭として認識されるため、その影響を強く受ける。
【０００７】
また、この手法では、マッチング処理に輪郭情報を用いているが、他の手法においては自乗誤差和（Sum of Squared Difference: SSD）を用いる例も多数ある。しかし、ＳＳＤは条件によっては姿勢差を正確に表現できないと言う問題がある。さらに、物体が把持された状態では、物体の輪郭の一部が把持機構によって遮蔽されることにより、ＳＳＤの値が大きく変化すると言う問題もある。
【０００８】
本発明の幾つかの態様によれば、把持された状態のオブジェクトの位置及び姿勢の特定処理を行うことができる画像処理装置、画像処理方法、ロボット及びプログラム等を提供することができる。
【０００９】
また、本発明の幾つかの態様によれば、２つの画像の重複度合いを調整するための画像の設定パラメーターの更新処理をより高速に行うことができる画像処理装置、画像処理方法、ロボット及びプログラム等を提供することができる。
【課題を解決するための手段】
【００１０】
本発明の一態様は、オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像を取得する第１の画像取得部と、前記オブジェクトが映った第２の画像を取得する第２の画像取得部と、前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域を、前記第１の画像に設定するマスク領域設定部と、前記第１の画像に映る前記オブジェクトの位置及び姿勢の特定処理を行う位置姿勢特定部と、を含み、前記マスク領域設定部は、前記第１の画像において前記把持部が映る領域を特定して、前記把持部が映る領域を前記マスク領域として前記第１の画像に設定し、前記位置姿勢特定部は、前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢を特定する画像処理装置に関係する。
【００１１】
本発明の一態様では、第１の画像において把持部が映る領域を特定し、把持部が映る領域をマスク領域として第１の画像に設定する。さらに、マスク領域が設定された第１の画像と、第２の画像との比較処理を行って、第１の画像に映るオブジェクトの位置及び姿勢の特定処理を行う。
【００１２】
よって、把持された状態のオブジェクトの位置及び姿勢を特定することができる。
【００１３】
また、本発明の一態様では、画像の一部又は全ての領域についての領域情報を求める領域情報演算部を含み、前記領域情報演算部は、前記第１の画像の領域のうち、前記マスク領域以外の領域であって、前記第２の画像と重複する第１の領域についての第１の領域情報と、前記第１の画像の領域のうち、前記マスク領域以外の領域であって、前記第２の画像と重ならない第２の領域についての第２の領域情報と、前記第２の画像の領域のうち、前記第１の画像とは重ならない第３の領域についての第３の領域情報と、を求め、前記位置姿勢特定部は、前記第１の領域情報と、前記第２の領域情報と、前記第３の領域情報とに基づいて、前記第１の画像と前記第２の画像との重複度合いについての評価値を求め、前記評価値に基づいて、前記第２の画像又は前記把持部の設定パラメーターの更新処理を、前記オブジェクトの前記位置及び前記姿勢の前記特定処理として行ってもよい。
【００１４】
これにより、２つの画像の重複度合いを調整するための画像の設定パラメーターの更新処理を高速に実行して、オブジェクトの位置及び姿勢を高速に特定すること等が可能になる。
【００１５】
また、本発明の一態様では、前記マスク領域設定部は、第１のタイミングにおいて取得される撮像画像と、前記第１のタイミングの後の第２のタイミングにおいて取得される前記第１の画像との差分領域を検出し、前記第２のタイミングにおいて取得される前記第１の画像に対して、検出した前記差分領域を前記マスク領域として設定してもよい。
【００１６】
これにより、異なるタイミングにおいて取得された２つの画像を比較して、２つの画像において異なる領域をマスク領域に設定し、マスク領域以外の領域で第１の画像と第２の画像の比較処理を行うこと等が可能になる。
【００１７】
また、本発明の一態様では、前記マスク領域設定部は、前記把持部と前記オブジェクトが非接触である前記第１のタイミングにおいて取得される前記撮像画像と、前記把持部が前記オブジェクトを把持した前記第２のタイミングにおいて取得される前記第１の画像との前記差分領域を検出し、前記第２のタイミングにおいて取得される前記第１の画像に、検出した前記差分領域を前記マスク領域として設定してもよい。
【００１８】
これにより、ロボット作業の流れの中で、把持部に係わる情報を取得し、その部分の影響を除外することにより、より正確な把持物体の位置及び姿勢の検出を行うこと等が可能となる。
【００１９】
また、本発明の一態様では、前記位置姿勢特定部は、前記第２のタイミングの後の第３のタイミングにおいて取得される前記第１の画像と、前記第２の画像との前記比較処理を行い、前記第３のタイミングにおいて取得される前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢を特定し、前記第２の画像取得部は、前記第３のタイミングにおける前記位置及び前記姿勢の前記オブジェクトが映る前記第２の画像を取得し、前記マスク領域設定部は、前記第３のタイミングにおいて取得される第１の画像と、前記第３のタイミングにおける前記位置及び前記姿勢の前記オブジェクトが映る前記第２の画像との比較処理を行い、前記第１の画像において前記把持部が映る領域を検出し、前記第３のタイミングにおいて取得される前記第１の画像に対して、検出した前記把持部が映る領域を前記マスク領域として再設定してもよい。
【００２０】
これにより、オブジェクトが把持部により、把持され、移動された時に、第１の画像におけるマスク領域の位置を更新すること等が可能になる。
【００２１】
また、本発明の一態様では、前記第２の画像は、３次元オブジェクト空間に配置された前記オブジェクトの画像であり、前記設定パラメーターは、前記第２の画像により表される前記オブジェクトの位置姿勢特定パラメーターであり、前記位置姿勢特定部は、前記第２の画像の前記設定パラメーターの前記更新処理として、前記位置姿勢特定パラメーターを更新する処理を行ってもよい。
【００２２】
これにより、ＣＡＤマッチングを行うこと等が可能になる。
【００２３】
また、本発明の一態様では、前記第１の画像は、前記把持部と前記オブジェクトとが映る撮像画像であり、前記設定パラメーターは、前記オブジェクトを把持する前記把持部の制御パラメーターであり、前記位置姿勢特定部は、前記把持部の前記設定パラメーターの前記更新処理として、前記把持部の前記制御パラメーターを更新する処理を行ってもよい。
【００２４】
これにより、ビジュアルサーボを行うこと等が可能になる。
【００２５】
また、本発明の一態様では、前記領域情報演算部は、前記第１の画像及び前記第２の画像が二値化された画像データに対して計数処理を行うことにより、前記第１の領域情報、前記第２の領域情報及び前記第３の領域情報を求めてもよい。
【００２６】
これにより、第１の領域情報、第２の領域情報及び第３の領域情報の算出処理を簡略化すること等が可能になる。
【００２７】
また、本発明の一態様では、前記領域情報演算部は、前記第１の領域のピクセル数又は面積値を表す情報を前記第１の領域情報として求め、前記第２の領域のピクセル数又は面積値を表す情報を前記第２の領域情報として求め、前記第３の領域のピクセル数又は面積値を表す情報を前記第３の領域情報として求めてもよい。
【００２８】
これにより、計数処理において扱いやすいピクセル数等を領域情報として用いること等が可能になる。
【００２９】
また、本発明の一態様では、前記位置姿勢特定部は、前記第１の領域情報と、前記第２の領域情報と、前記第３の領域情報と、前記領域情報の重み付け情報とに基づいて、前記評価値を求め、前記評価値に基づいて、前記設定パラメーターの前記更新処理を行ってもよい。
【００３０】
これにより、第１の領域情報と、第２の領域情報と、第３の領域情報のそれぞれに対して重み付け情報を設定して、重み付けされた各領域情報に基づいて評価値を求めること等が可能になる。
【００３１】
また、本発明の一態様では、前記位置姿勢特定部は、前記評価値の評価関数のヤコビアンを求め、求めた前記ヤコビアンに基づいて前記設定パラメーターの前記更新処理を行ってもよい。
【００３２】
これにより、ヤコビアンを求め、求めた複数のヤコビアンの大小の比較処理を行うことにより、評価値が最大となる設定パラメーターの変位を求めること等が可能になる。
【００３３】
また、本発明の一態様では、前記オブジェクトの前記位置及び前記姿勢の一致判定処理を行う判定部をさらに含み、前記判定部は、前記評価値に基づいて、前記第１の画像により表される前記オブジェクトと前記第２の画像により表される前記オブジェクトとの前記位置及び前記姿勢の前記一致判定処理を行ってもよい。
【００３４】
これにより、物体の位置及び姿勢の特定処理をより高速に実現すること等が可能になる。
【００３５】
また、本発明の他の態様では、オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像と、前記オブジェクトが映った第２の画像と、を取得し、前記第１の画像において前記把持部が映る領域を特定し、前記把持部が映る領域を、前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域として前記第１の画像に設定して、前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの前記位置及び前記姿勢の特定処理を行う画像処理方法に関係する。
【００３６】
また、本発明の他の態様では、オブジェクトと、前記オブジェクトを把持する把持部とが映った第１の画像と、前記オブジェクトが映った第２の画像と、を取得し、前記第１の画像において前記把持部が映る領域を特定し、前記把持部が映る領域を、前記第１の画像と前記第２の画像との比較処理の対象外の領域であるマスク領域として前記第１の画像に設定して、前記マスク領域が設定された前記第１の画像と、前記第２の画像との前記比較処理を行って、前記第１の画像に映る前記オブジェクトの位置及び姿勢の特定処理を行うロボットに関係する。
【００３７】
また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラムに関係する。
【図面の簡単な説明】
【００３８】
【図１】第１の実施形態の画像処理装置のシステム構成例。
【図２】位置姿勢検出処理の説明図。
【図３】第１の実施形態の処理の流れを説明するフローチャート。
【図４】図４（Ａ）〜図４（Ｄ）は、画像の二値化処理の説明図。
【図５】第１の画像と第２の画像を重複表示した場合にできる領域の説明図。
【図６】評価値Ｅのヤコビアンの説明図。
【図７】図７（Ａ）〜図７（Ｄ）は、設定パラメーターの更新時の説明図。
【図８】図８（Ａ）〜図８（Ｃ）は、重み付け情報の説明図。
【図９】第２の実施形態のロボットのシステム構成例。
【図１０】第２の実施形態のロボットの具体的な構成例。
【図１１】位置ベースビジュアルサーボの流れを説明するフローチャート。
【図１２】図１２（Ａ）、図１２（Ｂ）は、ビジュアルサーボにより動作するロボットの説明図。
【図１３】特徴ベースビジュアルサーボの流れを説明するフローチャート。
【図１４】第２の実施形態の処理の流れを説明するフローチャート。
【図１５】図１５（Ａ）〜図１５（Ｄ）は、物体を把持した状態での位置姿勢特定処理の説明図。
【図１６】物体を把持した時の物体の位置姿勢特定処理の流れを説明するフローチャート。
【図１７】物体を把持した時の第１の画像と第２の画像を重複表示した場合にできる領域の説明図。
【発明を実施するための形態】
【００３９】
以下、第１の実施形態及び第２の実施形態について説明する。まず、各実施形態の背景と手法の概要をまとめて説明する。次に、実施形態毎にシステム構成例と処理の流れを詳細に説明する。そして、第１の実施形態及び第２の実施形態の手法についてまとめる。なお、以下で説明する各実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また各実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４０】
１．概要
画像中の対象物体像から、その物体の３次元的な位置及び姿勢を知ることは、種々の応用において必要とされる。一例として、産業用ロボットの応用においては、カメラなどを用いて物体を撮像し、撮像した画像を用いて物体の位置姿勢情報を検出し、検出した位置姿勢情報を用いてロボットがその物体を把持する、などと言うことが要求される。また、ロボットが把持した物体を指定の位置へ指定された姿勢で置くことも必要とされる。そのため、把持された状態での物体の位置及び姿勢を検出することも要求される。
【００４１】
そのような場合に用いる物体の位置及び姿勢の検出方法の一つとして、Analysis By Synthesis（ＡｂＳ）と呼ばれる手法がある。ＡｂＳでは、対象物体のＣＡＤデータを用いてその物体の像を作成し、その像と実際の物体とを画像で比較し、それらが一致した時の画像の合成パラメーターをその物体の位置及び姿勢を表す情報として検出する。
【００４２】
しかし、この手法を単純に実行する場合には非常に長い処理時間が必要となる。例えば、３軸の回転のそれぞれを１度刻みとし３６０度を考え、画像中の位置の刻みを縦横１０００程度とし、更に拡大縮小を１００段階程度とすれば、これら全ての組み合わせは３６０３×１０００２×１００通りとなり、４．７×１０１５程度の処理量が必要となる。仮に１回の処理が１ナノ秒で終わるとしても、この処理全体を実行するとすれば５４日程度が必要となる。
【００４３】
勿論、１回の処理に要する時間が１ナノ秒と言うことは現実的ではなく、実際には１回の処理に１０マイクロ秒程度の時間が必要となる。また、上記のように処理全体を実行するのも現実的なものではなく、例えば図心を合わせるなどの処理により、比較位置の組み合わせを１０２通り程度に限定することは可能である。しかし、これらはちょうど相殺し、この例では、やはり全体の処理には５４日程度が必要と言うことになる。この処理時間は全く実用になるものでは無い。
【００４４】
さらに、このような目的で使用される技術として、例えば前述した特許文献１に記載されている発明がある。特許文献１に記載される方法を、まとめると以下のような特徴がある。
【００４５】
まず、対象物体について、可能な見え方を複数サンプリングし、複数の仮想ビューを作成する。次に、その仮想ビューを間引くことにより、低解像度の仮想ビューを作成する。そして、それらを木構造で表現し、各仮想ビューにおいて、適切な２次元マッチング処理を行う。なお、マッチング処理としては、物体の輪郭情報に関連する方法を用いる。
【００４６】
この手法によれば、粗い処理から精密な処理へと段階的に処理を進めて、処理時間を大幅に削減することが可能となる。
【００４７】
しかし、この特許文献１に記載される発明には以下のような問題点がある。第１に、複数の視点からの仮想ビュー、更にはその解像度を変化させたビューなど、非常に大量のデータが必要とされる。これには、静的にデータを持つのであれば大きなメモリー量が、また動的に生成するのであれば大きな処理能力が要求される。第２に、輪郭情報を用いる手法はノイズや照明条件の変化に弱い。第３に、物体が把持された状態では、物体の輪郭の一部が把持機構（把持部）によって遮蔽され、また把持機構が新たな輪郭として認識されるため、その影響を強く受ける。
【００４８】
また、この手法では、マッチング処理に輪郭情報を用いているが、他の手法においては自乗誤差和（Sum of Squared Difference: SSD）を用いる例も多数ある。しかし、ＳＳＤは条件によっては姿勢差を正確に表現できないと言う問題がある。さらに、物体が把持された状態では、物体の輪郭の一部が把持機構によって遮蔽されることにより、ＳＳＤの値が大きく変化すると言う問題もある。
【００４９】
以下で説明する第１の実施形態及び第２の実施形態の画像処理装置等では、２つの画像の重複度合いを調整するための画像の設定パラメーターの更新処理をより高速に行う。さらに、前述した問題を解決しつつ、オブジェクトの位置及び姿勢の特定処理をより高速に実現する。特に、把持された状態のオブジェクトの位置及び姿勢の特定処理をより高速に実現する。
【００５０】
そして、第１の実施形態では、画像処理装置等をＣＡＤマッチングに利用する場合について説明し、第２の実施形態では、画像処理装置等をロボットのビジュアルサーボに利用する場合について説明する。また、以下では先に、把持されていない状態のオブジェクトの位置及び姿勢の特定処理について説明し、次に、把持された状態のオブジェクトの位置及び姿勢の特定処理について説明する。
【００５１】
２．第１の実施形態
２．１  システム構成例
次に、本実施形態の画像処理装置の構成例を図１に示す。
【００５２】
画像処理装置１００は、第１の画像取得部１１０と、第２の画像取得部１２０と、マスク領域設定部１３０と、領域情報演算部１４０と、位置姿勢特定部１５０と、判定部１６０とを含む。なお、画像処理装置１００は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
【００５３】
次に各部で行われる処理について説明する。
【００５４】
第１の画像取得部１１０は、第１の画像を取得する。第１の画像は、後述する一致判定処理の対象であるオブジェクトを表す画像であり、例えば外部の撮像部により撮像された撮像画像（カメラ入力画像）である。
【００５５】
また、第２の画像取得部１２０は、第２の画像を取得する。第２の画像は、例えば３次元オブジェクト空間に配置されたオブジェクトの画像であり、例えばＣＧ（computer graphics）画像である。第２の画像取得部１２０は、記憶部から第２の画像を取得してもよいし、外部と通信を行って第２の画像を取得してもよい。
【００５６】
後述する処理では、第１の画像に表されるオブジェクトと第２の画像に表されるオブジェクトが一致するように、第２の画像の設定パラメーターを調整する。すなわち、第１の画像が正解画像であり、第２の画像が現在の状態を表す画像であるとも言える。
【００５７】
次に、マスク領域設定部１３０は、第１の画像と第２の画像の比較処理の対象外の領域であるマスク領域を第１の画像に設定する。マスク領域設定部１３０が行う詳細な処理については、後述する。
【００５８】
そして、領域情報演算部１４０は、画像の一部又は全ての領域についての領域情報を求める。なお、領域情報の具体例については後述する。
【００５９】
また、位置姿勢特定部１５０は、第２の画像の設定パラメーターの更新処理を行う。ここで、本実施形態における設定パラメーターは、第２の画像により表されるオブジェクトの位置姿勢特定パラメーターである。
【００６０】
さらに、判定部１６０は、第１の画像に表されるオブジェクトと第２の画像に表されるオブジェクトの位置及び姿勢の一致判定処理を行う。
【００６１】
なお、マスク領域設定部１３０と、領域情報演算部１４０と、位置姿勢特定部１５０と、判定部１６０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアーや、プログラムなどにより実現できる。
【００６２】
２．２  処理の詳細
ＣＡＤマッチングによる物体の位置姿勢検出処理は、基本的には図２に示すような流れで行う。すなわち、第１の画像（撮像画像）ＰＩＭと第２の画像（ＣＧ画像、ＣＡＤ画像）ＣＩＭの合成処理を行って、合成画像ＭＩＭを生成し、次に、合成画像ＭＩＭを用いて第１の画像ＰＩＭと第２の画像ＣＩＭの比較処理を行う。そして、何らかの誤差関数、あるいは適合度判定関数を用意し、最も適合度が高くなるように、又は最もエラーが少なくなるように、第２の画像の設定パラメーター（合成パラメーター）を更新する。以上の処理を繰り返し、更新した設定パラメーターを用いて物体の位置及び姿勢を特定する。
【００６３】
ただし、合成処理と比較処理には非常に長い処理時間が必要とされるため、高速化を図るためには、何らかの前処理を行って検出時の処理量を削減する必要があった。
【００６４】
前処理の一例としては、予め、姿勢と画像特徴を結びつけるＬＵＴ（ルックアップテーブル）を作成する処理などがある。この場合には、このＬＵＴを用いることにより、入力された画像の特徴と類似した物体の姿勢を効率的に発見し、処理全体の高速化を図ることができる。ただし、この場合には、この前処理データを作成するために処理量の大きな事前処理と、そこで生成されたデータを蓄積するためのメモリーを必要とする。前述したように、この前処理が必要であるのは、画像の合成処理と比較処理が低速だったからである。
【００６５】
しかし、近年の技術発展に伴って、画像の合成処理及び比較処理は低速ではなくなってきた。つまり、前処理は必ずしも必要ではない。
【００６６】
このことを踏まえて、本実施形態における３つの改善点を以下にまとめる。
【００６７】
第１に本実施形態では、対象画像データ、ＣＧ合成画像データを二値化し、３種のマスク演算で、演算後の３種の領域の面積値又はピクセル数を得る。
【００６８】
第２に本実施形態では、その３種の値に対して重み付けを行い、１つの評価値を得る。
【００６９】
第３に本実施形態では、ＣＧ合成パラメーターを微小に変化させてヤコビアンを数値的に取得し、その値を使って、最急降下法を元にした手法により合成パラメーターを更新する。
【００７０】
以下、図３のフローチャートを用いて、把持されていない物体の位置及び姿勢の検出処理の流れについて詳細に説明する。
【００７１】
まず、ＣＡＤデータを入力する（Ｓ１０１）。ここで、入力されるＣＡＤデータは、ＣＡＤマッチングの対象となる対象物体の像を作成可能なデータのことである。具体的には、対象物体を表すＶＲＭＬ（Virtual Reality Modeling Language）データやＳＴＬ（Stereo-Lithography）データなどを入力する。これらのデータは、物体を三角形（ポリゴン）の集合として表現するものであって、物体を構成する点の空間座標、構成要素である各三角形を構成する点の組の情報、及び各三角形の法線方向を含むことができる。
【００７２】
次に、ＣＡＤ合成パラメーターを初期化する（Ｓ１０２）。ＣＡＤ合成パラメーターの初期化方法には複数の方法が考えられ、実施の際に選択可能である。具体的な例としては、第１の画像と第２の画像の図心が一致するように初期パラメーターを設定するなどの方法が考えられる。すなわち、第１の画像の第１の座標系（カメラ画像系）と第２の画像の第２の座標系（モデル座標系）との間の座標系の回転を調整する。
【００７３】
具体的に、ＣＡＤ合成パラメーターは、モデル座標系のカメラ座標系に対する回転を表す３つのパラメーター（３自由度）と、モデル座標系のカメラ座標系に対する原点位置を表す３つのパラメーター（３自由度）である。ただし、カメラから得られるデータは２次元であるため、カメラ座標系での位置を表すＸ軸座標値と、Ｙ軸座標値については、画像中の位置を表し、カメラ座標系でのＺ軸座標値（奥行方向）については、物体のスケーリングを表すことになる。すなわち、ＣＡＤ合成パラメーターは、モデル座標系のカメラ座標系に対する回転を表す３つのパラメーター（オイラー角等）と、モデル座標系のカメラ座標系に対する原点位置を表す２つのパラメーター（画像中のＸ、Ｙ座標値）と、モデルの大きさに係わるスケーリング値であるとも言える。
【００７４】
次に、対象画像（第１の画像）を入力し（Ｓ１０３）、対象画像に対して二値化処理を行い、二値化対象画像を生成する（Ｓ１０４）。
【００７５】
具体的に、対象画像の二値化処理においては、オブジェクトが映る領域の画素値を１として、それ以外の領域の画素値を０とする処理を行う。そして、二値化対象画像の各画素値をＯ（ｉ，ｊ）で表す。なお、ｉは二値化対象画像の画素の横軸の座標値であり、ｊは二値化対象画像の画素の縦軸の座標値である。
【００７６】
対象画像は、例えば図４（Ａ）に示す撮像画像ＰＩＭのように、カメラから直接に入力された画像であっても良いし、何らかの記録された画像であっても良い。図４（Ｂ）の画像ＢＩＭ１は、図４（Ａ）の撮像画像ＰＩＭを二値化した画像である。
【００７７】
同様にして、ステップＳ１０１において入力されたＣＡＤデータに基づいて、３次元オブジェクト空間に配置されたオブジェクトを表すＣＡＤ画像（第２の画像）を生成する（Ｓ１０５）。そして、ＣＡＤ画像に対して二値化処理を行い、二値化ＣＡＤ画像を生成する（Ｓ１０６）。
【００７８】
また、ＣＡＤ画像の二値化処理においても、オブジェクトが映る領域の画素値を１として、それ以外の領域の画素値を０とする処理を行う。そして、二値化ＣＡＤ画像の各画素値をＳ（ｉ，ｊ）で表す。なお、ｉは二値化ＣＡＤ画像の画素の横軸の座標値であり、ｊは二値化ＣＡＤ画像の画素の縦軸の座標値である。
【００７９】
図４（Ｃ）に示す画像ＣＩＭは、ＣＡＤ画像の例であり、図４（Ｄ）に示す画像ＢＩＭ２は、図４（Ｃ）のＣＡＤ画像ＣＩＭを二値化した画像の例である。なお、ＣＡＤ画像を生成するためには、物体のＣＡＤデータと、その位置及び姿勢に係わる合成パラメーターが必要となる。ここで、ＣＡＤ合成に必要なパラメーターとは、例えば、位置に係わる値（Ｘ、Ｙ、Ｚ）、三軸の周りの回転に対応する値（Ｕ、Ｖ、Ｗ）、また物体の大きさに係わるスケーリングファクターＳなどが考えられる。
【００８０】
そして、二値化対象画像と二値化ＣＡＤ画像とを図５のように重ね合わせ、３つの領域を考える。３つの領域とは、図５に示すような第１の領域ＡＲ１と、第２の領域ＡＲ２と、第３の領域ＡＲ３のことである。
【００８１】
ここで、第１の領域ＡＲ１は、二値化対象画像により表されるオブジェクトの領域と二値化ＣＡＤ画像により表されるオブジェクトの領域が重複する領域である。また、第２の領域ＡＲ２は、対象画像により表されるオブジェクトの領域全体のうち、第１の領域に属しない領域である。そして、第３の領域ＡＲ３は、ＣＡＤ画像により表される領域のうち、第１の領域に属しない領域である。これらは、例えばマスク演算、あるいはビット間の論理演算で得ることができる。
【００８２】
さらに、これらの領域を表す領域情報を画像の特徴量として求める（Ｓ１０７）。具体的には、第１の領域情報Ｐａｎｄは式（１）により求め、第２の領域情報Ｐｘｏｒ１は式（２）により求め、第３の領域情報Ｐｘｏｒ２は式（３）により求める。なお、式（１）が与える値は、第１の領域の面積値又はピクセル数である。式（２）、式（３）も同様である。
【００８３】
【数１】
2014235680.tif 000003
【００８４】
【数２】
2014235680.tif 000004
【００８５】
【数３】
2014235680.tif 000005
式（１）は、二値化対象画像のうち、Ｏ（ｉ，ｊ）が１である領域（図５の黒ではない領域）を通過領域とするマスクとし、そこを二値化ＣＡＤ画像のうち、Ｓ（ｉ，ｊ）が１である画素（図５の黒ではない画素）が幾つ通過したかに相当する。あるいは、二値化ＣＡＤ画像のうち、Ｓ（ｉ，ｊ）が１である領域（図５の黒ではない領域）を通過領域とするマスクとし、そこを二値化対象画像のうち、Ｏ（ｉ，ｊ）が１である画素（図５の黒ではない画素）が幾つ通過したか、としても同等である。
【００８６】
式（２）は、それと同等の式（４）とも考えられ、これは二値化ＣＡＤ画像のうち、Ｓ（ｉ，ｊ）が０である領域（図５の黒い領域。なお、式（４）では「！Ｓ（ｉ，ｊ）」と表す。）を通過領域とするマスクとし、そこを二値化対象画像のうち、Ｏ（ｉ，ｊ）が１である画素（図５の黒ではない画素）が幾つ通過したかに相当する。
【００８７】
【数４】
2014235680.tif 000006
また、式（３）は、それと同等の式（５）とも考えられ、これは二値化対象画像のうち、Ｏ（ｉ，ｊ）が０である領域（図５の黒い領域。なお、式（５）では「！Ｏ（ｉ，ｊ）」と表す。）を通過領域とするマスクとし、そこに二値化ＣＡＤ画像のうち、Ｓ（ｉ，ｊ）が１である画素（図５の黒ではない画素）が幾つ通過したかに相当する。
【００８８】
【数５】
2014235680.tif 000007
上記のようにこれらは、画像に一定の単純なマスク処理を行い、通過画素の計数処理を行うものであるため、容易にハードウェアー化による高速化が可能である。
【００８９】
また、これは面積と言う２次元的な量、あるいは通過したピクセルの総数と言う積分的な量であるので、輪郭線のような微分的な量、１次元的な量に比較して、ノイズの影響が相対的に小さくなると言う特徴がある。
【００９０】
そして、画像の特徴量である第１の領域情報から第３の領域情報を用いて、式（６）に示す評価値Ｅを考える。
【００９１】
【数６】
2014235680.tif 000008
この式（６）においては、Ｅが最大となる時に、二値化対象画像に表されるオブジェクトと二値化ＣＡＤ画像に表されるオブジェクトの重なりが最大となっていることが期待される。もし、式（１）のＰａｎｄが最大であり、かつ式（２）のＰｘｏｒ１と式（３）のＰｘｏｒ２が０に近ければ、二値化対象画像に表されるオブジェクトと二値化ＣＡＤ画像に表されるオブジェクトは、ほぼ重なっていることになり、その時の二値化ＣＡＤ画像の合成パラメーターが二値化対象画像の位置及び姿勢を近似していると期待できる。
【００９２】
すなわち、Ｐｘｏｒ１とＰｘｏｒ２の和が所定値以下であるかどうかにより、二値化ＣＡＤ画像が二値化対象画像を十分に近似しているかどうかの判断をすることができるため、この判定処理を行う（Ｓ１０８）。なお、この判定処理に用いる所定の閾値は、画像サイズや物体サイズなどに依存する量であり、またどの程度の誤差を許容するかなど、応用に依存して決定されるべきパラメーターである。
【００９３】
そして、Ｐｘｏｒ１とＰｘｏｒ２の和が所定値以下である場合には、現在のＣＡＤ画像の合成パラメーターに基づいて、対象画像に表されるオブジェクトの位置及び姿勢を特定する（Ｓ１０９）。
【００９４】
一方、Ｐｘｏｒ１とＰｘｏｒ２の和が所定値よりも大きい場合には、ＣＧ合成パラメーターを微小に変化させてヤコビアンを数値的に取得する（Ｓ１１０）。具体的には、式（７）と式（８）を用いて、全てのｉについてＥｉ＋、Ｅｉ−をヤコビアンとして求める。なお、ここではｎ個の合成パラメーターＰ１〜Ｐｎ（ｎは正の整数であり、ｉは１≦ｉ≦ｎである）を考える。
【００９５】
【数７】
2014235680.tif 000009
【００９６】
【数８】
2014235680.tif 000010
式（７）及び式（８）は、ＣＡＤ合成画像を生成するためのｉ番目の合成パラメーターＰｉを、どのように変化させればＥの値が大きくなるかを調べるためのものである。図６に示すように、式（７）で与えられるＥｉ＋は、ｉ番目の合成パラメーターＰｉの値をｄｉだけ大きくした場合のＥの変化を与え、Ｅｉ−はｉ番目の合成パラメーターの値Ｐｉをｄｉだけ小さくした場合のＥの変化を与える。
【００９７】
もしもｉ番目の合成パラメーターＰｉがすでに評価値Ｅの極値を与えるパラメーターあれば、（Ｅｉ＋−Ｅｉ−）は０であることが期待される。また、Ｅｉ＋の方がより大きなＥを与えるパラメーターであれば、（Ｅｉ＋−Ｅｉ−）の値は正となり、Ｅｉ−の方がより大きなＥを与えるパラメーターであれば、（Ｅｉ＋−Ｅｉ−）の値は負となることが期待される。
【００９８】
本実施形態においては、全てのｉについて（Ｅｉ＋−Ｅｉ−）の値を求め、それをベクトル値と考え、そのベクトルを式（９）によって大きさ１に正規化し、それを用いて合成パラメーターを式（１０）のように更新することにより、評価値Ｅの大きさを極大化することを目指す（Ｓ１１１）。
【００９９】
【数９】
2014235680.tif 000011
【０１００】
【数１０】
2014235680.tif 000012
式（１０）において、ｇｉは任意に設定可能なゲイン値であり、ｄｉは式（７）及び式（８）と合成パラメーターＰｉの変位と同じ値であり、ｎは式（９）により求められる値である。
【０１０１】
これは最急降下法と似ているが、最急降下法は本実施形態での記述を用いれば、Ｅｉ＋、あるいはＥｉ−のみを用いる、つまり１次微分的な値を用いる方法である。一方、本実施形態では、２つの値を用いる２次微分までの値を用いる方法である。実際、最急降下法では、目標に近づくにつれてゲインを適切に小さくしなければ発振が起こるが、本実施形態の処理においてはゲインの大きさに対して敏感ではない。
【０１０２】
以上の一連の処理を行った結果を、図７（Ａ）〜図７（Ｄ）に示す。まず、図７（Ａ）では、入力された対象画像に対して二値化処理を行った後の二値化対象画像を示している。
【０１０３】
そして、図７（Ｂ）では、設定された合成パラメーターで生成したＣＡＤ画像に対して二値化処理を行った後の二値化ＣＡＤ画像を、図７（Ａ）の二値化対象画像に重畳させた様子を示す。図７（Ｂ）〜図７（Ｄ）では、二値化対象画像に表されるオブジェクトと二値化ＣＡＤ画像に表されるオブジェクトとが重複する第１の領域を白色で表示している。
【０１０４】
さらに、図７（Ｃ）は、前述した更新処理により合成パラメーターを更新し、更新した合成パラメーターに基づいて生成した二値化ＣＡＤ画像を、再度、図７（Ａ）の二値化対象画像に重畳したものである。図７（Ｃ）では、図７（Ｂ）に比べて白色の領域が増えており、前述した更新方法により合成パラメーターを更新した結果、評価値Ｅが更新され、見かけ上も一致度が改善されていることが見てとれる。
【０１０５】
図７（Ｄ）は、パラメーター更新を継続した結果、評価値Ｅがほぼ極大となり、二値化ＣＡＤ画像と二値化対象画像がほぼ一致した状態を示す。つまり、この合成に用いられた合成パラメーターが、対象画像の中に撮像された物体の位置及び姿勢を表現していると考えられる。
【０１０６】
また、本実施形態には以下のような付加的な処理が加えられても良い。
【０１０７】
例えば、図７（Ｂ）では二値化対象画像と二値化ＣＡＤ画像の一部が重なっているが、この重なりが全くない場合には、評価値Ｅ、およびＥｉ＋、Ｅｉ−はどのような変化に対しても同じ値となり、合成パラメーターを更新することはできない。このような場合には、例えば、二値化対象画像の図心と、二値化ＣＡＤ画像の図心を合わせるような処理が前処理として追加されても良い。
【０１０８】
また上記において、図７（Ｄ）において用いられた合成パラメーターが対象画像中の物体の位置及び姿勢を表現していると述べたが、このパラメーターを実際の応用において必要とされるパラメーターに変換する処理を行っても良い。例えば、カメラの設置情報などを用いて、作業空間の位置及び姿勢に変換すると言うような処理である。
【０１０９】
また、従来技術との差異として、従来技術においては画像間の差異の評価としてＳＳＤ（自乗誤差和）が用いられることが多い。以下では、本実施形態の評価値Ｅと、ＳＳＤとの関連を説明する。
【０１１０】
ＳＳＤは、基本的には式（１１）によって与えられるものである。しかし、本実施形態における画像データは二値化されているため、この計算は大幅に簡略化され、式（１２）のような論理演算、排他的論理和に置き換えられる。
【０１１１】
【数１１】
2014235680.tif 000013
【０１１２】
【数１２】
2014235680.tif 000014
これを前述した図５に対応させると、ＳＳＤは、式（１３）に示すように、第２の領域と第３の領域の面積値、あるいはピクセル数の和に相当する。
【０１１３】
【数１３】
2014235680.tif 000015
一方、本実施形態の差異の評価値Ｅは式（６）で示したものである。これらには以下のような実用上の差異が存在する。
【０１１４】
つまり、対象画像とＣＡＤ画像とがほぼ一致している場合、ＳＳＤが与える値は非常に小さくなり、実質的には、輪郭線の近傍の状態のみに依存することになる。そのため、この状態では、わずかな照明の変化や画像ノイズが、相対的に非常に大きな影響を与えることになる。
【０１１５】
一方、本実施形態の場合は、対象画像とＣＡＤ画像とがほぼ一致している場合には、第１の領域の領域情報Ｐａｎｄが最大となり、領域ノイズ、輪郭ノイズの影響は相対的に小さくなる。これは位置及び姿勢合わせの感度が低くなると言うことでもあるが、検出の安定性は増す。
【０１１６】
この感度と安定性を両立させるために、式（６）の係数α、β、γを状況に合わせて適切に変更してもよい。つまりαの値を小さくすれば、ＳＳＤの特性に近くなると言うことになる。
【０１１７】
また、別の見方で係数α、β、γの意味を考えると、式（６）の第１項は、主にスケーリングに係わる評価を与えるものである。つまり、ＣＡＤ画像を縮小、あるいは膨張させる合成パラメーターの調整に寄与する。また、図８（Ａ）に示すように、第１の重み付け情報αは、第１の画像に表されるオブジェクトの領域Ｏ１へ、第２の画像に表されるオブジェクトの領域Ｏ２を引き込む力Ｆ１を調整するパラメーターであるとも言える。
【０１１８】
第２項は、対象画像内部におけるＣＡＤ画像の占有率に係わる評価を与える。つまり、内部にある物体の輪郭を、外部にある物体の輪郭に合わせるようにする合成パラメーターの調整に寄与する。図８（Ｂ）を用いて説明すれば、第２の重み付け情報βは、第１の画像に表されるオブジェクトの領域Ｏ１内において、第２の画像に表されるオブジェクトの領域Ｏ２の膨張力Ｆ２を調整するパラメーターであると言える。
【０１１９】
第３項は、ＣＡＤ画像の外部へのはみ出し量に係わる評価を与える。つまり、外部にある物体の輪郭を、内部にある物体の輪郭に合わせるようにする合成パラメーターの調整に寄与する。図８（Ｃ）を用いて説明すれば、第３の重み付け情報γは、第１の画像に表されるオブジェクトの領域Ｏ１へ、第２の画像に表されるオブジェクトの領域Ｏ２を押し込む力Ｆ３を調整するパラメーターであると言える。
【０１２０】
３．第２の実施形態
３．１  システム構成例
次に、本実施形態のロボットの構成例を図９に示す。
【０１２１】
ロボット３００は、画像処理装置１００と、ロボット制御部４００と、ロボット機構３１０とを含む。なお、画像処理装置１００及びこれを含むロボット３００は、図９の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
【０１２２】
次に各部で行われる処理について説明する。なお、画像処理装置１００の各部のうち、図１と同様の部分については説明を省略する。
【０１２３】
第１の画像取得部１１０は、第１の画像として、例えば外部の撮像部により撮像された撮像画像（カメラ入力画像）を取得する。
【０１２４】
また、第２の画像取得部１２０は、第２の画像として、例えば３次元オブジェクト空間に配置されたオブジェクトの画像であり、例えばＣＧ画像を取得する。ただし、第２の画像は、あらかじめ撮像された撮像画像や記憶部から読み出された画像であってもよい。
【０１２５】
前述した第１の実施形態において説明したＣＡＤマッチングの場合とは、第１の画像と第２の画像の位置付けが異なる。本実施形態においては、第１の画像が現在の状態を表す画像で、第２の画像が参照画像（正解画像、目標画像）であり、この点が第１の実施形態とは異なっている。第１の実施形態では、第２の画像の設定パラメーターを更新することにより、物体の位置姿勢特定処理を行っている間に第２の画像を更新していくが、本実施形態では、後述するようにロボットの制御パラメーターを更新することにより、第１の画像が更新される。
【０１２６】
そして、位置姿勢特定部１５０は、設定パラメーターの更新処理として、第２の画像に映されたオブジェクト（操作対象オブジェクト）を操作するロボット３００（ロボット機構３１０）の制御パラメーターの更新処理を行う。
【０１２７】
また、ロボット制御部４００は、位置姿勢特定部１５０により更新されたロボット３００の制御パラメーターに従って、ロボット機構３１０の各部を動作させる。なお、図９では、ロボット制御部４００が画像処理装置１００の外部に設けられているが、画像処理装置１００がロボット制御部４００を含んでいても良い。
【０１２８】
ここで、図１０に本実施形態のロボット３００の具体例を示す。図１０に示すように、ロボット３００はロボット機構３１０及びロボット機構３１０を支えるベースユニット部を含み、当該ベースユニット部に画像処理装置１００が格納される。
【０１２９】
そして、不図示のロボット制御部４００がロボット機構３１０の制御処理を行う。具体的には、ロボット機構３１０の制御パラメーター（動作シーケンス情報、シナリオ情報）と、２つの画像（第１の画像と第２の画像）にそれぞれ表されるオブジェクトの位置及び姿勢についての一致判定処理結果等に基づいて、ロボット機構３１０を動作させる制御を行う。
【０１３０】
また、ロボット機構３１０は、アーム３２０とハンド（把持部）３３０とを有する。さらに、図１０のロボット機構３１０には、ベースユニット部に車輪等が設けられ、ロボット３００全体が移動可能な構成となっている。そして、ロボット制御部４００からの動作指示にしたがって動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動したりするなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボット３００の姿勢やワークの位置などの情報が検出され、検出された情報が画像処理装置１００に送られる。なお、図１０は双腕型のロボットの例であるが、ロボット３００は単腕型や多腕型のロボットであってもよい。なお、ロボット３００の移動は人手で行われてもよいし、車輪を駆動するモーターを設け、当該モーターを画像処理装置１００により制御することで行ってもよい。また、図１０では、ロボット機構３１０と画像処理装置１００とが一体に構成されているが、本実施形態のロボット３００はそれに限定されず、ロボット機構３１０と画像処理装置１００とが別体に構成されていてもよい。
【０１３１】
３．２  ビジュアルサーボの概要
本実施形態の特徴を説明する前に、ビジュアルサーボの概要と、位置ベースビジュアルサーボの流れと特徴ベースビジュアルサーボの流れについて説明する。
【０１３２】
ビジュアルサーボとは、目標物の位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。ビジュアルサーボは、サーボ系への入力情報（制御量）によって、位置ベースビジュアルサーボと特徴ベースビジュアルサーボの二つに大別される。位置ベースビジュアルサーボは、物体の位置情報や姿勢情報がサーボ系への入力情報となり、特徴ベースビジュアルサーボは、画像の特徴量がサーボ系への入力情報となる。他にも、位置ベースと特徴ベースをハイブリッドした手法もある。本実施形態で扱うビジュアルサーボは、これら全ての手法を対象とする。
【０１３３】
これらのビジュアルサーボにおける共通点は、参照画像と撮像画像を元にサーボ系への入力情報を求める点である。本実施形態は、この参照画像と撮像画像とを二値化することにより、サーボ系への入力情報の算出処理の容易化を図る。
【０１３４】
３．２．１  位置ベースビジュアルサーボの流れ
まず、図１１において、位置ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボでは、まず参照画像を設定する（Ｓ１）。ここで、参照画像とは、目標画像やゴール画像とも呼ばれ、ビジュアルサーボの制御目標となる画像であり、ロボット３００の目標状態を表す画像をいう。すなわち、参照画像とは、ロボット３００の目標位置や目標姿勢を表す画像、もしくはロボット３００が目標位置に位置する状態を表す画像である。また、参照画像はあらかじめ用意しておき、記憶部に記憶しておく必要がある。
【０１３５】
次に、撮像部によって作業スペースを撮像し、撮像画像を取得する（Ｓ２）。撮像画像とは、撮像部によって撮像された画像である。撮像画像は、作業スペースの現在の状態を表しており、撮像画像内にロボット３００やワークが映りこんでいる場合には、ロボット３００やワークの現在の状態を表している。なお、撮像部の性能によっては処理遅延が生じるが、ここでは、処理遅延が生じている場合でも、撮像画像には現在の状態が映されているものとして扱う。
【０１３６】
例えば、図１２（Ａ）に参照画像ＲＩＭの具体例を、図１２（Ｂ）に撮像画像ＰＩＭの具体例を示す。撮像画像ＰＩＭにおいて、ロボットＲＢはアームＡＭとハンドＨＤ（もしくはエンドポイントＥＰ）を上方へ向けているが、参照画像ＲＩＭでは、ロボットＲＢはアームＡＭを折り曲げて、ハンドＨＤをワークＷＫに近づけている。したがって、この具体例においては、ロボットＲＢのアームＡＭを折り曲げ、ハンドＨＤをワークＷＫに近づけるようにロボットＲＢを制御することになる。
【０１３７】
次に、制御指令を生成する（Ｓ３）。例えば、制御指令生成は、参照画像と撮像画像に基づいて、座標変換の一つであるホモグラフィー等を用いることにより行われる。この場合には、ホモグラフィー行列を求め、ホモグラフィー行列からロボット３００の制御信号として速度指令を生成する。
【０１３８】
ここで、制御信号（制御指令、ロボットの制御パラメーター）とは、ロボット３００を制御するための情報を含む信号のことをいう。また、速度指令とは、ロボット３００の各部を制御するための情報として、ロボット３００のアーム３２０のエンドポイント等の移動速度や回転速度を与える指令の方法を指す。
【０１３９】
そして、生成された制御信号に基づいて、制御量（ここではロボット３００の位置や姿勢）が目標値に収束したか否かを判断する（Ｓ４）。例えば、ホモグラフィーを用いる場合において、速度指令により表される速度ベクトルが０である場合には、制御量である位置や姿勢が目標状態に到達したとみなすことができるため、制御量が目標値に収束したと判断し、速度ベクトルが０でない場合には、制御量が目標値に収束していないと判断する。
【０１４０】
制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、新たな制御指令を送出する（Ｓ５）。
【０１４１】
位置ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【０１４２】
３．２．２  特徴ベースビジュアルサーボの流れ
次に、図１３において、特徴ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボと同様に、まず参照画像を設定し（Ｓ１０）、次に、撮像部によって作業スペースを撮像し、撮像画像を取得する（Ｓ１１）。なお、特徴ベースビジュアルサーボを用いる場合には、参照画像を設定する際に参照画像の特徴抽出を行い、特徴量を算出しておくことが望ましい。または、参照画像の特徴を抽出した参照画像情報を記憶部に記憶しておいてもよい。画像の特徴抽出については、例えば、コーナー検出（Corner detection）やガウスフィルタ等を用いて行なう。
【０１４３】
次に、撮像画像の特徴を抽出する（Ｓ１２）。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、ここで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報（制御量）として、画像の特徴量を求める。
【０１４４】
そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する（Ｓ１３）。画像が一致すると判断する場合（Ｓ１４）には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合（Ｓ１４）には、制御指令を生成し（Ｓ１５）、新たな制御指令を送出する（Ｓ１６）。
【０１４５】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【０１４６】
３．３  処理の詳細
本実施形態では、図１４のフローチャートに示す流れで、ロボットの設定パラメーターとしてロボットの制御パラメーターを求め、求めた制御パラメーターに基づいて、ロボットを動作させる。
【０１４７】
まず、ロボットの操作対象オブジェクトに関するＣＡＤデータを入力し（Ｓ２０１）、ＣＡＤ合成パラメーターを初期化する（Ｓ２０２）。
【０１４８】
次に、ロボットが目標の位置及び姿勢を取っている状態を示す対象画像（第２の画像）を、入力されたＣＡＤデータに基づいて生成する（Ｓ２０３）。本実施形態では、対象画像は例えばＣＧ画像である。また、他にもステップＳ２０１とステップＳ２０２の処理を行わない場合には、あらかじめ撮像しておいた撮像画像や、外部に記憶しておいた画像を対象画像として用いてもよい。
【０１４９】
次に、対象画像に対して二値化処理を行い、二値化対象画像を生成する（Ｓ２０４）。なお、この処理は、図３のステップＳ１０４と同様の処理である。
【０１５０】
さらに、ロボットの現在の位置及び姿勢を表す撮像画像（第１の画像）を撮像し（Ｓ２０５）、撮像画像に対して二値化処理を行って、二値化撮像画像を生成する（Ｓ２０６）。なお、この処理も、図３のステップＳ１０６と同様の処理である。
【０１５１】
そして、二値化対象画像と二値化撮像画像とに基づいて、ＰａｎｄとＰｘｏｒ１とＰｘｏｒ２を求め（Ｓ２０７）、Ｐｘｏｒ１とＰｘｏｒ２の和が所定値以下か否かを判定する（Ｓ２０８）。
【０１５２】
Ｐｘｏｒ１とＰｘｏｒ２の和が所定値以下であると判定した場合には、ロボットが目標の位置及び姿勢をとった状態にあると判定し（Ｓ２０９）、処理を終了する。
【０１５３】
一方で、Ｐｘｏｒ１とＰｘｏｒ２の和が所定値よりも大きいと判定した場合には、ロボットの制御パラメーターを微小に変化させてヤコビアンを数値的に取得する（Ｓ２１０）。具体的には、第１の実施形態と同様に、式（７）と式（８）を用いて、全てのｉについてＥｉ＋、Ｅｉ−をヤコビアンとして求める。
【０１５４】
そして、全てのｉについて（Ｅｉ＋−Ｅｉ−）の値を求め、それをベクトル値と考え、そのベクトルを式（９）によって大きさ１に正規化する。次に、式（９）により求められる値ｎを用いて合成パラメーターを式（１０）に従って更新して、評価値Ｅの大きさを極大化し、その時のロボットの制御パラメーターの変位に基づいて、ロボットの制御パラメーターを更新する（Ｓ２１１）。
【０１５５】
そして、更新処理後のロボットの制御パラメーターに基づいてロボットを動作させ（Ｓ２１２）、動作後のロボットの状態を示す撮像画像を撮像し（Ｓ２０５）、ステップＳ２０６以降の処理を繰り返す。
【０１５６】
４．把持物体の位置姿勢特定処理
以上で述べた方法は、画像中に孤立して存在する物体の位置及び姿勢を認識する上では非常に有効である。ロボットなどで用いられる物体認識への要求は、カメラによる位置決めがほとんどであり、孤立した、あるいは実質的に孤立した物体の位置及び姿勢が認識できれば、多くの要求を満たすことができる。ここで、「実質的に孤立した」と言うのは、例えば画像中に複数の物体があろうとも、領域分離技術などにより、それらを個々に分離できると言うような意味である。
【０１５７】
しかし、上記以外の要求も存在する。例えば、把持状態での物体の位置及び姿勢を認識したいと言う要求である。これはロボットが完全剛体で、かつ動作指令に対して理想的に応答する機械であれば生じることの少ない要求である。つまり、ロボットが前述したような理想機械であれば、把持物体の位置及び姿勢とロボットの動作とを１対１に対応付けて、移動後の把持物体の位置及び姿勢を予測することが可能である。
【０１５８】
しかし、実際のロボットは多くの非線形性を持つ機械である。そのため、仮に把持された時点での物体の位置及び姿勢が完全に分かっていたとしても、厳密にはこの非線形性のために、ある時点での物体の位置及び姿勢が分からなくなる。
【０１５９】
ここで、非線形性とは、例えばロボットが熱膨張することを指し、ある物体を把持すれば、そこでの熱的な接触により、温度変化や膨張収縮が起こり得ることを指す。また他にも、非線形性とは、例えばたわみであり、ある物体を把持すれば、その重量によりロボットの一部に変形が起こり得ることを指す。
【０１６０】
よって、現実の応用において精密な作業を行う場合には、把持物体の位置及び姿勢を特定しつつ、作業を行うことが必要になる。
【０１６１】
また、前述したように、物体が把持された状態では、物体の輪郭の一部が把持機構によって遮蔽される。すなわち、把持機構が、把持物体の位置及び姿勢を特定することの妨げになることがある。
【０１６２】
したがって、本実施形態では、撮像画像に映る把持機構を検出し、撮像画像と参照画像において把持機構が映る領域以外の領域で、物体の位置姿勢特定処理を行う。
【０１６３】
ここで、把持物体の位置姿勢検出処理を行った様子について、図１５（Ａ）〜図１５（Ｄ）を用いて説明する。図１５（Ａ）には、操作対象オブジェクトＯＢが映った二値化画像を示し、図１５（Ｂ）には、図１５（Ａ）に示す操作対象オブジェクトＯＢを把持するハンド（把持部）ＨＤが映った二値化画像を示す。図１５（Ｂ）におけるハンド（把持部、グリッパー機構）ＨＤは、操作対象オブジェクトＯＢの横から延びる帯状の物体である。
【０１６４】
図１５（Ｂ）に示されるように、操作対象オブジェクトＯＢがハンドＨＤにより把持されている場合には、操作対象オブジェクトＯＢの一部分をハンドＨＤが遮蔽しており、二値化画像に映る操作対象オブジェクトＯＢの輪郭が変わってしまう。
【０１６５】
このような場合に、前述してきた物体の位置姿勢特定処理をそのまま行うことを考えると、図１５（Ｃ）に示すように、二値化対象画像と二値化撮像画像（又は二値化ＣＡＤ画像）を画像合成（重複表示）した時に、二値化対象画像に映る操作対象オブジェクトと、二値化撮像画像（又は二値化ＣＡＤ画像）に映る操作対象オブジェクトとを一致させることができて、位置姿勢特定処理が成功する場合もある。一方で、図１５（Ｄ）に示すように、二値化対象画像に映る操作対象オブジェクトと、二値化撮像画像（又は二値化ＣＡＤ画像）に映る操作対象オブジェクトとを一致させることができずに、位置姿勢特定処理が失敗する場合もある。
【０１６６】
図１５（Ｄ）のような場合に対応するためには、把持部の影響を排除する必要がある。画像認識において、物体が把持部に把持された状態で、物体と把持部を分離することは非常に困難であるが、ロボット応用においては、作業の流れの中で、これらを分離することができる。
【０１６７】
すなわち、ロボット作業において、視覚で物体を発見し、把持し、移動する際には、図１５（Ａ）のように把持部が物体を把持しておらず、把持部が撮像されない状態と、図１５（Ｂ）のように把持部が物体を把持した直後で、把持部が撮像される状態が存在する。従って、把持前後の状態を表す２つの撮像画像の適切な差分をとることにより、画像内の把持部が映る領域を特定することができる。
【０１６８】
ここで、図９に示すロボットがビジュアルサーボにより、操作対象オブジェクトを把持して、移動させる際の具体的な処理の流れを、図１６のフローチャートを用いて説明する。
【０１６９】
まず、把持前の操作対象オブジェクトの位置及び姿勢の特定処理を行う（Ｓ３０１）。この位置姿勢特定処理は、図３のフローチャートを用いて説明した一連のＣＡＤマッチング処理に相当する。
【０１７０】
次に、ステップＳ３０１で特定した操作対象オブジェクトの位置及び姿勢に基づいて、ロボットを制御し、ロボットの把持部が操作対象オブジェクトを把持する（Ｓ３０２）。なお、前述したように、ロボットが操作対象オブジェクトを把持する前後において、撮像部により撮像画像を撮像しておく。
【０１７１】
そして、操作対象オブジェクトの把持前後の二値化撮像画像の比較処理を行い、把持後の二値化撮像画像において、把持部が映る領域を特定し（Ｓ３０３）、把持部が映る領域をマスク領域として設定する（Ｓ３０４）。なお、ここでは二値化処理後の撮像画像を用いて比較処理を行うが、二値化処理前の撮像画像を用いて比較処理を行っても良い。具体的な二値化処理の内容は、図３のステップＳ１０４において説明した処理と同様であるため、説明を省略する。
【０１７２】
次に、ビジュアルサーボにより、ロボットが把持した操作対象オブジェクトを目標位置へと移動させる処理を行う（Ｓ３０５）。本処理は、図１４のフローチャートを用いて説明した一連のビジュアルサーボ処理に相当するが、把持部が映る領域がマスク領域に設定されている点が異なる。
【０１７３】
ここで、ステップＳ３０５における二値化対象画像と二値化撮像画像を合成（重複表示）した時にできる各領域について、図１７を用いて説明する。二値化対象画像と二値化撮像画像を合成した結果、第１の領域ＡＲ１〜第３の領域ＡＲ３ができることは図５と同様である。ただし、本処理では、二値化撮像画像において把持部が映る領域にマスク領域が設定されており、図１７のマスク領域は関数Ｇ（ｉ，ｊ）により表される。Ｇ（ｉ，ｊ）は、マスク領域内ではＧ（ｉ，ｊ）＝０となり、マスク領域外ではＧ（ｉ，ｊ）＝１となる関数である。
【０１７４】
そのため、図１４のステップＳ２０７において、第１の領域情報Ｐａｎｄは下式（１４）により、第２の領域情報Ｐｘｏｒ１は下式（１５）により、第３の領域情報Ｐｘｏｒ２は下式（１６）によりそれぞれ求められる。
【０１７５】
【数１４】
2014235680.tif 000016
【０１７６】
【数１５】
2014235680.tif 000017
【０１７７】
【数１６】
2014235680.tif 000018
また、式（４）及び式（５）と同様に、式（１５）は下式（１７）に、式（１６）は下式（１８）に置き換えることもできる。
【０１７８】
【数１７】
2014235680.tif 000019
【０１７９】
【数１８】
2014235680.tif 000020
すなわち、式（１４）〜式（１８）を用いれば、２つの画像のマスク領域以外の領域に映る操作対象オブジェクトの重複度合いを表す領域情報を求めることができる。そして、前述した方法と同様に、評価値Ｅを計算し、操作対象オブジェクトの位置及び姿勢を特定し、操作対象オブジェクトが目標の位置及び姿勢となるようにロボットを制御する。
【０１８０】
次に、処理を終了するか否かを判定する（Ｓ３０６）。例えば、ロボットが操作対象オブジェクトを最終的な目標位置へ正確に移動させた場合には、処理を終了すると判定し、一連の処理を終了する。
【０１８１】
一方で、例えば、ロボットが操作対象オブジェクトを最終的な目標位置へまだ移動させておらず、次の目標位置がある場合には、処理を継続すると判定する。
【０１８２】
そして、操作対象オブジェクトが目標の位置及び姿勢に移動するまで、ビジュアルサーボ処理を繰り返すが、操作対象オブジェクトはロボットにより移動されているため、移動後に撮像された撮像画像では、把持部が映る領域も移動していることになる。そのため、この時点では、ステップＳ３０４において設定したマスク領域と、撮像画像において把持部が映る領域は一致しない。
【０１８３】
把持直後の状態から、時間経過が小さければ、あるいは見え方の変化が小さければ、マスク領域がステップＳ３０４において設定した領域のままであっても、把持部の影響を除いて把持物体の位置及び姿勢を検出することができる可能性が高いが、厳密には操作対象オブジェクトの移動に伴って、マスク領域の位置も更新することが望ましい。
【０１８４】
そこで、ステップＳ３０５において生成された二値化対象画像と、ステップＳ３０５で最後に撮像された二値化撮像画像の比較処理を行い（Ｓ３０７）、二値化撮像画像において把持部が映る領域を特定し、特定した把持部が映る領域を新たなマスク領域として再設定する処理を行う（Ｓ３０８）。その後、ステップＳ３０５へと戻り、ステップＳ３０５以下の処理を繰り返す。
【０１８５】
５．手法のまとめ
次に、本実施形態の手法についてまとめる。
【０１８６】
以上の本実施形態の画像処理装置１００は、オブジェクトと、オブジェクトを把持する把持部３３０とが映った第１の画像を取得する第１の画像取得部１１０と、オブジェクトが映った第２の画像を取得する第２の画像取得部１２０と、第１の画像と第２の画像との比較処理の対象外の領域であるマスク領域を、第１の画像に設定するマスク領域設定部１３０と、第１の画像に映るオブジェクトの位置及び姿勢の特定処理を行う位置姿勢特定部１５０と、を含む。そして、マスク領域設定部１３０は、第１の画像において把持部３３０が映る領域を特定して、把持部３３０が映る領域をマスク領域として第１の画像に設定する。さらに、位置姿勢特定部１５０は、マスク領域が設定された第１の画像と、第２の画像との比較処理を行って、第１の画像に映るオブジェクトの前記位置及び前記姿勢を特定する。
【０１８７】
ここで、第１の画像とは、把持部３３０とオブジェクトとが映った画像である。また、第２の画像とは、例えばロボット３００の把持部３３０は映っておらず、オブジェクトが映った画像である。なお、ＣＡＤマッチングを行う場合には、第１の画像は参照画像であり、第２の画像は現在の状態を表す画像であるが、これに限定されない。例えば、ビジュアルサーボを行う場合には、第１の画像が現在の状態を表す画像となり、第２の画像が参照画像となる。
【０１８８】
さらに、マスク領域とは、第１の画像と第２の画像の比較処理の対象外の領域である。具体的に、マスク領域は、第１の画像において把持部が映る領域のことであり、例えば図１７においてＧ（ｉ，ｊ）＝０となる領域である。
【０１８９】
そして、本実施形態の画像処理装置１００は、第１の画像において把持部３３０が映る領域を特定し、把持部３３０が映る領域をマスク領域として第１の画像に設定する。さらに、マスク領域が設定された第１の画像と、第２の画像との比較処理を行って、第１の画像に映るオブジェクトの位置及び姿勢の特定処理を行う。
【０１９０】
よって、把持部３３０が映る領域以外の領域において、オブジェクトの位置及び姿勢の特定処理を行うことができるため、把持されていない状態のオブジェクトの位置及び姿勢の特定処理と同様の処理を行うことにより、把持された状態のオブジェクトの位置及び姿勢を特定することができる。
【０１９１】
また、本実施形態の画像処理装置１００は、画像の一部又は全ての領域についての領域情報を求める領域情報演算部１４０を含んでもよい。そして、領域情報演算部１４０は、第１の画像の領域のうち、マスク領域以外の領域であって、第２の画像と重複する第１の領域についての第１の領域情報と、第１の画像の領域のうち、マスク領域以外の領域であって、第２の画像と重ならない第２の領域についての第２の領域情報と、第２の画像の領域のうち、第１の画像とは重ならない第３の領域についての第３の領域情報と、を求めてもよい。さらに、位置姿勢特定部１５０は、第１の領域情報と、第２の領域情報と、第３の領域情報とに基づいて、第１の画像と第２の画像との重複度合いについての評価値を求め、評価値に基づいて、第２の画像又は把持部３３０の設定パラメーターの更新処理を、オブジェクトの位置及び姿勢の特定処理として行ってもよい。
【０１９２】
本実施形態では、第１の画像と第２の画像とを同一平面上に重ねて表示した時の第１の領域情報〜第３の領域情報を求める。そして、求めた第１の領域情報〜第３の領域情報に基づいて、第１の画像と第２の画像との重複度合いについての評価値を求める。さらに、求めた評価値に基づいて、第２の画像の設定パラメーターの更新処理を行う。
【０１９３】
これにより、２つの画像の重複度合いを調整するための画像の設定パラメーターの更新処理を高速に実行して、オブジェクトの位置及び姿勢を高速に特定すること等が可能になる。
【０１９４】
また、本実施形態の手法では、予め大量のデータを作成する必要がない。従って、非常に少量のメモリーで設定パラメーターの更新処理を実行すること等も可能になる。
【０１９５】
ここで、ロボット３００がオブジェクトを移動させる前後では、マスク領域の設定処理が異なる。ロボット３００がオブジェクトを移動させる前においては、例えば以下のような方法でマスク領域を設定してもよい。
【０１９６】
すなわち、マスク領域設定部１３０は、第１のタイミングにおいて取得される撮像画像と、第１のタイミングの後の第２のタイミングにおいて取得される第１の画像との差分領域を検出し、第２のタイミングにおいて取得される第１の画像に対して、検出した差分領域をマスク領域として設定してもよい。
【０１９７】
これにより、異なるタイミングにおいて取得された２つの画像を比較して、２つの画像において異なる領域をマスク領域に設定し、マスク領域以外の領域で第１の画像と第２の画像の比較処理を行うこと等が可能になる。
【０１９８】
より具体的には、マスク領域設定部１３０は、把持部３３０とオブジェクトが非接触である第１のタイミングにおいて取得される撮像画像と、把持部３３０がオブジェクトを把持した第２のタイミングにおいて取得される第１の画像との差分領域を検出し、第２のタイミングにおいて取得される第１の画像に、検出した差分領域をマスク領域として設定してもよい。
【０１９９】
ここで、第１のタイミングでは、把持部３３０とオブジェクトが少なくとも非接触であって、第１のタイミングにおいて取得される撮像画像は、把持部３３０が映る領域とオブジェクトが映る領域が分離可能な画像である。また、第１のタイミングにおいて取得される撮像画像は、把持部３３０がオブジェクトを把持する前の画像であるため、把持部３３０は映っていなくてもよい。例えば、第１のタイミングにおいて取得される撮像画像は、図１５（Ａ）に示すような画像である。
【０２００】
一方で、第２のタイミングにおいて取得される第１の画像には、オブジェクトと、オブジェクトを把持した把持部３３０が映っている。例えば、第２のタイミングにおいて取得される第１の画像は、図１５（Ｂ）に示すような画像である。
【０２０１】
そのため、第１のタイミングにおいて取得される撮像画像と、第２のタイミングにおいて取得される第１の画像との差分領域としては、把持部３３０が映る領域が検出される。例えば図１５（Ｂ）の例では、差分領域はＨＤで示す領域である。
【０２０２】
このように、ロボット作業の流れの中で、把持部３３０に係わる情報を取得し、その部分の影響を除外することにより、より正確な把持物体の位置姿勢検出を行うこと等が可能となる。
【０２０３】
次に、オブジェクトがロボット３００により、把持され、移動されれば、画像中において把持部３３０が映る領域も移動する。そこで、ロボット３００がオブジェクトを移動させた後においては、例えば以下のような方法でマスク領域を設定してもよい。
【０２０４】
すなわち、位置姿勢特定部１５０は、第２のタイミングの後の第３のタイミングにおいて取得される第１の画像と、第２の画像との比較処理を行い、第３のタイミングにおいて取得される第１の画像に映るオブジェクトの位置及び姿勢を特定してもよい。そして、第２の画像取得部１２０は、第３のタイミングにおける位置及び姿勢のオブジェクトが映る第２の画像を取得してもよい。さらに、マスク領域設定部１３０は、第３のタイミングにおいて取得される第１の画像と、第３のタイミングにおける位置及び姿勢のオブジェクトが映る第２の画像との比較処理を行い、第１の画像において把持部が映る領域を検出し、第３のタイミングにおいて取得される第１の画像に対して、検出した把持部が映る領域をマスク領域として再設定してもよい。
【０２０５】
本処理は、図１６のフローチャートのステップＳ３０７及びステップＳ３０８に相当する。
【０２０６】
ここで、第３のタイミングは、例えばオブジェクトが把持部３３０により把持され、移動された後のタイミングである。
【０２０７】
よって、移動後のオブジェクトと把持部３３０が映る第１の画像と、把持部３３０が映っておらず、オブジェクトが移動後の位置に映る第２の画像と、を比較すれば、移動後の把持部３３０の領域を特定でき、特定した把持部３３０の領域をマスク領域として設定することが可能となる。
【０２０８】
これにより、オブジェクトがロボット３００により、把持され、移動された時に、第１の画像におけるマスク領域の位置を更新すること等が可能になる。よって、ロボット３００がオブジェクトを移動させている間も、オブジェクトの位置及び姿勢を特定すること等が可能になる。
【０２０９】
また、第２の画像は、３次元オブジェクト空間に配置されたオブジェクトの画像であってもよい。そして、設定パラメーターは、第２の画像により表されるオブジェクトの位置姿勢特定パラメーターであってもよい。さらに、位置姿勢特定部１５０は、第２の画像の設定パラメーターの更新処理として、位置姿勢特定パラメーターを更新する処理を行ってもよい。
【０２１０】
これにより、本実施形態の手法をＣＡＤマッチングに応用すること等が可能になる。
【０２１１】
また、第１の画像は、把持部３３０とオブジェクトとが映る撮像画像であってもよい。そして、設定パラメーターは、オブジェクトを把持する把持部３３０の制御パラメーターであってもよい。さらに、位置姿勢特定部１５０は、把持部３３０の設定パラメーターの更新処理として、把持部３３０の制御パラメーターを更新する処理を行ってもよい。
【０２１２】
これにより、本実施形態の手法をビジュアルサーボに応用すること等が可能になる。
【０２１３】
また、領域情報演算部１４０は、第１の画像及び第２の画像が二値化された画像データに対して計数処理を行うことにより、第１の領域情報、第２の領域情報及び第３の領域情報を求めてもよい。
【０２１４】
これにより、第１の領域情報、第２の領域情報及び第３の領域情報の算出処理を簡略化すること等が可能になる。さらに、ハードウェアー化等が非常に容易になる。そのため、２つの画像の重複度合いを調整するための画像の設定パラメーターの更新処理を非常に高速に実行することができる。
【０２１５】
また、領域情報演算部１４０は、第１の領域のピクセル数又は面積値を表す情報を第１の領域情報として求め、第２の領域のピクセル数又は面積値を表す情報を第２の領域情報として求め、第３の領域のピクセル数又は面積値を表す情報を第３の領域情報として求めてもよい。
【０２１６】
これにより、計数処理において扱いやすいピクセル数等を領域情報として用いること等が可能になる。
【０２１７】
また、位置姿勢特定部１５０は、第１の領域情報と、第２の領域情報と、第３の領域情報と、領域情報の重み付け情報とに基づいて、評価値を求め、評価値に基づいて、設定パラメーターの更新処理を行ってもよい。
【０２１８】
これにより、第１の領域情報と、第２の領域情報と、第３の領域情報のそれぞれに対して重み付け情報を設定して、重み付けされた各領域情報に基づいて評価値を求めること等が可能になる。すなわち、第１の領域情報と、第２の領域情報と、第３の領域情報とのうち、どの領域情報を重視して評価値を算出するかを、重み付け情報の大小等により調整すること等が可能になる。
【０２１９】
また、位置姿勢特定部１５０は、第１の領域情報から得られる情報に対する、第２の領域情報から得られる情報と第３の領域情報から得られる情報と差分情報を評価値として求めてもよい。
【０２２０】
これにより、評価値が最大になる場合に、第１の画像に表されるオブジェクトと第２の画像に表されるオブジェクトとが一致していると判定すること等が可能になる。
【０２２１】
この場合には、評価値が最大となる設定パラメーターの変位を求めればよい。
【０２２２】
そこで、位置姿勢特定部１５０は、評価値の評価関数のヤコビアンを求め、求めたヤコビアンに基づいて設定パラメーターの更新処理を行ってもよい。
【０２２３】
これにより、例えば前述したように、式（７）のＥｉ＋と式（８）のＥｉ−をヤコビアンとして求めて、Ｅｉ＋とＥｉ−の大小の比較処理を行うことにより、評価値Ｅが最大となる設定パラメーターの変位ｄｉを求めること等が可能になる。具体的には、Ｅｉ＋とＥｉ−が等しくなる時の変位ｄｉが、評価値Ｅを最大にする変位であると判断すること等が可能になる。
【０２２４】
しかし、Ｅｉ＋とＥｉ−を考えた時に、本来、評価値Ｅが最大ではない変位ｄｉにおいてＥｉ＋とＥｉ−が等しくなってしまうこともある。この場合には、最適な設定パラメーターを求めることができない。
【０２２５】
そこで、位置姿勢特定部１５０は、第１の領域情報Ｐａｎｄと第１の重み付け情報α（ただし、α≠０）との積αＰａｎｄから、第２の領域情報Ｐｘｏｒ１と第２の重み付け情報βとの積βＰｘｏｒ１と、第３の領域情報Ｐｘｏｒ２と第３の重み付け情報γとの積γＰｘｏｒ２とを減算処理した値を、評価値Ｅとして求めてもよい。
【０２２６】
これにより、第１の画像に表されるオブジェクトの領域への引き込み力を調整するパラメーターとして第１の重み付け情報αを用い、第２の画像に表されるオブジェクトの領域の膨張力を調整するパラメーターとして第２の重み付け情報βを用い、第１の画像に表されるオブジェクトの領域への押し込み力を調整するパラメーターとして第３の重み付け情報γを用いること等が可能になる。このように、３つの重み付け情報を用いることにより、本来、評価値Ｅが最大ではない変位ｄｉにおいてＥｉ＋とＥｉ−が等しくなることを抑制すること等が可能になる。
【０２２７】
さらに、本実施形態の手法は、上記のように積分的なパラメーターのみで動作するため、輪郭情報に比較して影などの照明条件やノイズの影響を受けることが少ない。従って、非常に安定して動作させることができる。
【０２２８】
また、位置姿勢特定部１５０は、第２の領域のピクセル数と第３の領域のピクセル数との和又は第２の領域の面積値と第３の領域の面積値との和が、所与の閾値よりも大きい場合に、第２の画像の設定パラメーターの更新処理を行ってもよい。
【０２２９】
これにより、既に第１の画像により表されるオブジェクトの領域と第２の画像により表されるオブジェクトの領域が十分に重複していると判断できる場合には、第２の画像の設定パラメーターの更新処理を行わず、第１の画像により表されるオブジェクトの領域と第２の画像により表されるオブジェクトの領域が十分に重複していないと判断した場合に限り、第２の画像の設定パラメーターの更新処理を行うこと等が可能になる。また、所与の閾値の設定次第で、位置姿勢特定処理の精度を調整すること等も可能になる。
【０２３０】
また、本実施形態の画像処理装置１００は、オブジェクトの位置及び姿勢の一致判定処理を行う判定部１６０をさらに含んでもよい。そして、判定部１６０は、評価値に基づいて、第１の画像により表されるオブジェクトと第２の画像により表されるオブジェクトとの位置及び姿勢の一致判定処理を行ってもよい。
【０２３１】
なお、位置及び姿勢の一致判定処理の代わりに、状態判定処理を行ってもよい。例えば、状態判定処理では、オブジェクトの位置及び姿勢の他にも、オブジェクトの破損状態を検出する処理などを行っても良い。
【０２３２】
これにより、物体の位置及び姿勢の特定処理をより高速に実現すること等が可能になる。
【０２３３】
なお、以上の画像処理装置１００及びロボット３００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、前述した画像処理装置１００及びロボット３００等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０２３４】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、画像処理装置、画像処理方法、ロボット及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０２３５】
１００  画像処理装置、１１０  第１の画像取得部、１２０  第２の画像取得部、
１３０  マスク領域設定部、１４０  領域情報演算部、１５０  位置姿勢特定部、
１６０  判定部、３００  ロボット、３１０  ロボット機構、３２０  アーム、
３３０  把持部、４００  ロボット制御部
【図１】
2014235680.tif 000021
【図３】
2014235680.tif 000022
【図６】
2014235680.tif 000023
【図８】
2014235680.tif 000024
【図９】
2014235680.tif 000025
【図１０】
2014235680.tif 000026
【図１１】
2014235680.tif 000027
【図１２】
2014235680.tif 000028
【図１３】
2014235680.tif 000029
【図１４】
2014235680.tif 000030
【図１６】
2014235680.tif 000031
【図２】
2014235680.tif 000032
【図４】
2014235680.tif 000033
【図５】
2014235680.tif 000034
【図７】
2014235680.tif 000035
【図１５】
2014235680.tif 000036
【図１７】
2014235680.tif 000037