(57)【要約】【課題】  検出対象が複数ある場合に、各検出対象を検出することができる画像処理装置、ロボット、プログラム及び画像処理方法等の提供。【解決手段】  画像処理装置１００は、複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部１１０と、画像中に検出対象が映る入力画像データを取得する入力画像取得部１３０と、テンプレート画像データ及び入力画像データに対して、位相限定相関処理を行うことで、テンプレート画像に配置された複数のテンプレートオブジェクトのうち、検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部１５０と、を含む。【選択図】  図１
2015102991.tif 000002
【特許請求の範囲】
【請求項１】
複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部と、
画像中に検出対象が映る入力画像データを取得する入力画像取得部と、
前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部と、
を含むことを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記テンプレート画像取得部は、
前記複数のテンプレートオブジェクトが第１の配置パターンで配置された第１のテンプレート画像データと、前記複数のテンプレートオブジェクトが前記第１の配置パターンとは異なる第２の配置パターンで配置された第２のテンプレート画像データとを取得し、
前記処理部は、
前記第１のテンプレート画像データ及び前記入力画像データに対して、第１の位相限定相関処理を行い、
前記第２のテンプレート画像データ及び前記入力画像データに対して、第２の位相限定相関処理を行い、
前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記対応テンプレートオブジェクトを特定することを特徴とする画像処理装置。
【請求項３】
請求項２において、
前記処理部は、
前記第１の位相限定相関処理により、入力画像上における第１のテンプレート画像及び前記入力画像の第１の相関ピーク位置を求め、
前記第２の位相限定相関処理により、前記入力画像上における第２のテンプレート画像及び前記入力画像の第２の相関ピーク位置を求め、
前記第１の相関ピーク位置から前記第２の相関ピーク位置への変位に基づいて、前記対応テンプレートオブジェクトを特定することを特徴とする画像処理装置。
【請求項４】
請求項２又は３において、
前記第２のテンプレート画像データは、
Ｎ個のグループ（Ｎは２以上の整数）に分類された前記複数のテンプレートオブジェクトが、グループ毎に異なる変位を加えられて生成された画像データであることを特徴とする画像処理装置。
【請求項５】
請求項４において、
前記処理部は、
前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記Ｎ個のグループのうち、前記対応テンプレートオブジェクトが属する第ｉのグループを特定し（ｉは、１≦ｉ≦Ｎの整数）、
前記第ｉのグループに属する複数のテンプレートオブジェクトに対して、テンプレートオブジェクト毎に異なる変位を加えて第３のテンプレート画像データを生成し、
前記第３のテンプレート画像データ及び前記入力画像データに対して、第３の位相限定相関処理を行うことで、前記対応テンプレートオブジェクトを特定することを特徴とする画像処理装置。
【請求項６】
請求項２又は３において、
前記処理部は、
前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記対応テンプレートオブジェクトの候補である候補テンプレートオブジェクトを特定し、
前記候補テンプレートオブジェクトの前記配置パターンが、前記第１のテンプレート画像データ及び前記第２のテンプレート画像データの少なくとも一方と異なる第３のテンプレート画像データを生成し、
前記第３のテンプレート画像データ及び前記入力画像データに対して、第３の位相限定相関処理を行うことで、前記対応テンプレートオブジェクトを特定することを特徴とする画像処理装置。
【請求項７】
請求項２又は３において、
前記第２のテンプレート画像データは、
前記第１のテンプレート画像データの各テンプレートオブジェクトに対して、乱数変位を加えられて生成された画像データであることを特徴とする画像処理装置。
【請求項８】
請求項２乃至７のいずれかにおいて、
前記処理部は、
前記第１の位相限定相関処理により、入力画像上における第１のテンプレート画像及び前記入力画像の第１の相関ピーク位置を求め、
前記第２の位相限定相関処理により、前記入力画像上における第２のテンプレート画像及び前記入力画像の第２の相関ピーク位置を求め、
前記第１のテンプレート画像データにおける各テンプレートオブジェクトから、前記第２のテンプレート画像データにおける前記各テンプレートオブジェクトへの変位方向と、前記第１の相関ピーク位置から前記第２の相関ピーク位置へのピーク位置移動方向とに基づいて、前記対応テンプレートオブジェクトを特定することを特徴とする画像処理装置。
【請求項９】
請求項８において、
前記対応テンプレートオブジェクトは、
前記変位方向と逆方向に前記相関ピーク位置が移動した前記テンプレートオブジェクトであることを特徴とする画像処理装置。
【請求項１０】
請求項２乃至９のいずれかにおいて、
前記処理部は、
空間周波数により表されるフーリエ変換後の前記第１のテンプレート画像データの位相信号、又は前記空間周波数により表される前記フーリエ変換後の各テンプレートオブジェクト画像データの位相信号に対して、変位を与えることにより、前記第２のテンプレート画像データを生成することを特徴とする画像処理装置。
【請求項１１】
複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部と、
画像中に検出対象が映る入力画像データを取得する入力画像取得部と、
前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部と、
を含むことを特徴とするロボット。
【請求項１２】
複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部と、
画像中に検出対象が映る入力画像データを取得する入力画像取得部と、
前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部として、
コンピューターを機能させるプログラム。
【請求項１３】
複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得することと、
画像中に検出対象が映る入力画像データを取得することと、
前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定することと、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、ロボット、プログラム及び画像処理方法等に関係する。
【背景技術】
【０００２】
画像中に映る物体（検出対象）を検出し、さらには、その物体の３次元的な位置及び姿勢を知ることは、種々の応用において必要とされる。一例として、産業用ロボットの応用においては、カメラなどを用いて物体を撮像し、撮像した画像を用いて物体の位置姿勢情報を検出し、検出した位置姿勢情報を用いてロボットがその物体を把持する、などと言うことが要求される。
【０００３】
画像中に映る検出対象を検出する手法としては、例えば非特許文献１において開示される位相限定相関法（Phase Only Correlation：POC、位相相関、位相限定マッチトフィルタリング）などがある。位相限定相関法を用いた検出処理（以下、位相限定相関処理と呼ぶ）では、テンプレート画像を用いて、入力画像に検出対象が映っているか否かを判定する。
【０００４】
また、位相限定相関法は、非常に位置姿勢感度が高く、かつ１回の処理で、入力画像に映る検出対象の位置が検出できるという特徴がある。さらに、位相限定相関法は、入力画像に同じ検出対象が複数映っている場合にも、１回の処理で全ての（同一の）検出対象を検出することも可能である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】青木孝文，伊藤康一，柴原琢磨，長嶋聖  ”位相限定相関法に基づく高精度マシンビジョン  ‐ピクセル分解能の壁を越える画像センシング技術を目指して‐，”  IEICE Fundamentals Review, Vol. 1, No. 1, pp. 30--40, July 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ロボット制御時など、実際に位相限定相関処理を行って、ある検出対象を検出する場面では、必ずしも検出対象だけが、決まった姿勢で入力画像に映っているとは限らず、寧ろ、検出対象ではない物体に紛れて、検出対象が様々な姿勢で入力画像に映っていることの方が多い。
【０００７】
しかし、位相限定相関法は位置姿勢感度が非常に高いが故に、入力画像に検出対象が映っていても、入力画像に映る検出対象の姿勢が僅かに変わるだけで検出できなくなることがある。
【０００８】
また、位相限定相関処理を用いて検出したい検出対象も、一種類とは限らず、一つの入力画像において複数種類の検出対象をそれぞれ検出したい場合もある。
【０００９】
このような場合には、効率を無視し、検出対象の姿勢毎又は種類毎に、逐次的に位相限定相関処理を行うことで対応が可能ではある。ただし、位相限定相関処理ではフーリエ変換を行うため、１回当たりの計算量が大きく、位相限定相関処理を繰り返すと、さらに計算量が大きくなるという問題がある。
【００１０】
前述した非特許文献１には、姿勢や種類（形状）の異なる検出対象が複数ある場合の検出方法や、その際に、位相限定相関処理を効率的に実行する手段については、何ら記載されていない。
【課題を解決するための手段】
【００１１】
本発明の一態様は、複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部と、画像中に検出対象が映る入力画像データを取得する入力画像取得部と、前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部と、を含む画像処理装置に関係する。
【００１２】
本発明の一態様では、複数のテンプレートオブジェクトが配置されたテンプレート画像を用いて、位相限定相関処理を行う。
【００１３】
これにより、検出対象が複数ある場合にも、各検出対象を検出することが可能となる。
【００１４】
また、本発明の一態様では、前記テンプレート画像取得部は、前記複数のテンプレートオブジェクトが第１の配置パターンで配置された第１のテンプレート画像データと、前記複数のテンプレートオブジェクトが前記第１の配置パターンとは異なる第２の配置パターンで配置された第２のテンプレート画像データとを取得し、前記処理部は、前記第１のテンプレート画像データ及び前記入力画像データに対して、第１の位相限定相関処理を行い、前記第２のテンプレート画像データ及び前記入力画像データに対して、第２の位相限定相関処理を行い、前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記対応テンプレートオブジェクトを特定してもよい。
【００１５】
これにより、検出対象が複数あり、かつ入力画像の中心に物体が映っていない場合であっても、各検出対象を検出すること等が可能になる。また、位相限定相関処理による検出対象の検出処理の処理量を低減して、処理時間を大幅に短縮することができ、高速な物体検出を実現すること等が可能になる。
【００１６】
また、本発明の一態様では、前記処理部は、前記第１の位相限定相関処理により、入力画像上における第１のテンプレート画像及び前記入力画像の第１の相関ピーク位置を求め、前記第２の位相限定相関処理により、前記入力画像上における第２のテンプレート画像及び前記入力画像の第２の相関ピーク位置を求め、前記第１の相関ピーク位置から前記第２の相関ピーク位置への変位に基づいて、前記対応テンプレートオブジェクトを特定してもよい。
【００１７】
これにより、複数のテンプレートオブジェクトのうち、検出対象に対応する対応テンプレートオブジェクトを特定すること等が可能になる。
【００１８】
また、本発明の一態様では、前記第２のテンプレート画像データは、Ｎ個のグループ（Ｎは２以上の整数）に分類された前記複数のテンプレートオブジェクトが、グループ毎に異なる変位を加えられて生成された画像データであってもよい。
【００１９】
これにより、第１の相関ピーク位置及び第２の相関ピーク位置の対応付けを容易にすること等が可能となる。
【００２０】
また、本発明の一態様では、前記処理部は、前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記Ｎ個のグループのうち、前記対応テンプレートオブジェクトが属する第ｉのグループを特定し（ｉは、１≦ｉ≦Ｎの整数）、前記第ｉのグループに属する複数のテンプレートオブジェクトに対して、テンプレートオブジェクト毎に異なる変位を加えて第３のテンプレート画像データを生成し、前記第３のテンプレート画像データ及び前記入力画像データに対して、第３の位相限定相関処理を行うことで、前記対応テンプレートオブジェクトを特定してもよい。
【００２１】
これにより、グループ毎にテンプレートオブジェクトに変位を加えた場合でも、複数のテンプレートオブジェクトの中から、対応テンプレートオブジェクトを一意に特定すること等が可能になる。
【００２２】
また、本発明の一態様では、前記処理部は、前記第１の位相限定相関処理の結果及び前記第２の位相限定相関処理の結果に基づいて、前記対応テンプレートオブジェクトの候補である候補テンプレートオブジェクトを特定し、前記候補テンプレートオブジェクトの前記配置パターンが、前記第１のテンプレート画像データ及び前記第２のテンプレート画像データの少なくとも一方と異なる第３のテンプレート画像データを生成し、前記第３のテンプレート画像データ及び前記入力画像データに対して、第３の位相限定相関処理を行うことで、前記対応テンプレートオブジェクトを特定してもよい。
【００２３】
これにより、グループ毎にテンプレートオブジェクトに変位を加えた場合でも、複数のテンプレートオブジェクトの中から、対応テンプレートオブジェクトを一意に特定すること等が可能になる。
【００２４】
また、本発明の一態様では、前記第２のテンプレート画像データは、前記第１のテンプレート画像データの各テンプレートオブジェクトに対して、乱数変位を加えられて生成された画像データであってもよい。
【００２５】
これにより、第２の位相限定相関処理を一度行うだけで、対応テンプレートオブジェクトを一意に特定すること等が可能になる。
【００２６】
また、本発明の一態様では、前記処理部は、前記第１の位相限定相関処理により、入力画像上における第１のテンプレート画像及び前記入力画像の第１の相関ピーク位置を求め、前記第２の位相限定相関処理により、前記入力画像上における第２のテンプレート画像及び前記入力画像の第２の相関ピーク位置を求め、前記第１のテンプレート画像データにおける各テンプレートオブジェクトから、前記第２のテンプレート画像データにおける前記各テンプレートオブジェクトへの変位方向と、前記第１の相関ピーク位置から前記第２の相関ピーク位置へのピーク位置移動方向とに基づいて、前記対応テンプレートオブジェクトを特定してもよい。
【００２７】
これにより、複数のテンプレートオブジェクトのうちの対応テンプレートオブジェクトを、より容易に特定すること等が可能になる。
【００２８】
また、本発明の一態様では、前記対応テンプレートオブジェクトは、前記変位方向と逆方向に前記相関ピーク位置が移動した前記テンプレートオブジェクトであってもよい。
【００２９】
これにより、ピーク位置移動方向と逆方向に変位させられたテンプレートオブジェクトを、対応テンプレートオブジェクトとして一意に特定すること等が可能になる。
【００３０】
また、本発明の一態様では、前記処理部は、空間周波数により表されるフーリエ変換後の前記第１のテンプレート画像データの位相信号、又は前記空間周波数により表される前記フーリエ変換後の各テンプレートオブジェクト画像データの位相信号に対して、変位を与えることにより、前記第２のテンプレート画像データを生成してもよい。
【００３１】
これにより、使用するハードウェアによっては、計算量を削減すること等が可能になる。
【００３２】
また、本発明の他の態様は、複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得するテンプレート画像取得部と、画像中に検出対象が映る入力画像データを取得する入力画像取得部と、前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する処理部と、を含むロボットに関係する。
【００３３】
また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラムに関係する。
【００３４】
また、本発明の他の態様は、複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得することと、画像中に検出対象が映る入力画像データを取得することと、前記テンプレート画像データ及び前記入力画像データに対して、位相限定相関処理を行うことで、前記検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定することと、を含む画像処理方法に関係する。
【００３５】
本発明の幾つかの態様によれば、検出対象が複数ある場合に、各検出対象を検出することができる画像処理装置、ロボット、プログラム及び画像処理方法等を提供することができる。
【００３６】
また、本発明の幾つかの態様によれば、検出対象が複数ある場合に、位相限定相関処理による検出処理の処理量を低減することができる画像処理装置、ロボット、プログラム及び画像処理方法等を提供することができる。
【図面の簡単な説明】
【００３７】
【図１】本実施形態のシステム構成例。
【図２】図２（Ａ）〜図２（Ｄ）は、検出対象が１種類であり、入力画像にも１つの物体が映っている場合の説明図。
【図３】図３（Ａ）〜図３（Ｄ）は、検出対象は１種類であるが、入力画像には複数の物体が映っている場合の説明図。
【図４】図４（Ａ）〜図４（Ｄ）は、検出対象が複数種類あり、入力画像には１つの物体が映っている場合の説明図。
【図５】図５（Ａ）〜図５（Ｄ）は、検出対象が複数種類あり、入力画像には１つの物体が映っている他の場合の説明図。
【図６】図６（Ａ）〜図６（Ｅ）は、第２の位相限定相関処理の説明図。
【図７】図７（Ａ）〜図７（Ｄ）は、比較例の説明図。
【図８】図８（Ａ）〜図８（Ｃ）は、規則的な変位を加えて第２のテンプレート画像を生成する処理の説明図。
【図９】図９（Ａ）〜図９（Ｃ）は、候補テンプレートオブジェクトを絞り込む処理の説明図。
【図１０】規則的な変位を加えた第２のテンプレート画像を用いる場合の処理の流れを説明するフローチャート。
【図１１】乱数変位を加えた第２のテンプレート画像を用いる場合の処理の流れを説明するフローチャート。
【図１２】乱数変位を加えて第２のテンプレート画像を生成する処理の説明図。
【図１３】空間周波数領域で変位を加えた第２のテンプレート画像を用いる場合の処理の流れを説明するフローチャート。
【図１４】異なる姿勢のテンプレートオブジェクトが配置されたテンプレート画像の説明図。
【図１５】本実施形態の他のシステム構成例。
【図１６】図１６（Ａ）、図１６（Ｂ）は、ロボットの構成例。
【図１７】ネットワークを介してロボットを制御する場合のシステム構成例。
【発明を実施するための形態】
【００３８】
以下、本実施形態について説明する。なお、以下で説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３９】
１．本実施形態の概要
本実施形態では、複数のテンプレートオブジェクトが配置されたテンプレート画像を用いて、位相限定相関処理を行う。これにより、検出対象が複数ある場合にも、各検出対象を検出することを可能にし、位相限定相関処理による検出対象の検出処理の処理量（計算量）を低減することも可能にする。
【００４０】
具体的に、本実施形態の画像処理装置１００の構成例を図１に示す。本実施形態の画像処理装置１００は、テンプレート画像取得部１１０と、入力画像取得部１３０と、処理部１５０と、を含む。なお、処理部１５０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。また、画像処理装置１００は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。そして、本実施形態の画像処理装置１００は、後述する図１６（Ａ）に示すように、ロボット３００に含まれており、ロボット３００と一体に構成されていてもよい。さらに、後述する図１７に示すように、画像処理装置１００の機能は、サーバー５００と、各ロボット３００が有する端末装置３３０とにより、実現されてもよい。
【００４１】
次に、本実施形態の画像処理装置１００が行う処理の概要を、図４（Ａ）〜図４（Ｄ）を用いて説明する。なお、図４（Ａ）〜図４（Ｄ）の例については、後段において再度詳しい説明を行う。図４（Ａ）〜図４（Ｄ）の例では、図４（Ａ）に示すテンプレート画像ＴＩＭ２に、複数の検出対象を表す複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）が映っており、このテンプレート画像ＴＩＭ２を用いて、複数の検出対象のいずれかが、図４（Ｂ）に示す入力画像ＩＩＭ３に映っているか否か等を判定する。
【００４２】
まず、テンプレート画像取得部１１０は、複数のテンプレートオブジェクトが所与の配置パターンで配置されたテンプレート画像データを取得する。例えば、テンプレート画像取得部１１０は、図４（Ａ）に示す画像ＴＩＭ２のようなテンプレート画像のデータを、後述する図１７のネットワーク４００を介して接続されたサーバー５００、又は記憶部等から取得する。
【００４３】
次に、入力画像取得部１３０は、画像中に検出対象が映る入力画像データを取得する。例えば、入力画像取得部１３０は、図４（Ｂ）に示す画像ＩＩＭ３のような入力画像のデータを、後述する図１５の撮像部２００や、後述する図１７のネットワーク４００を介して接続されたサーバー５００等から取得する。
【００４４】
そして、処理部１５０は、図４（Ｃ）に示すように、テンプレート画像データ及び入力画像データに対して、位相限定相関処理を行う。さらに、処理部１５０は、位相限定相関処理の結果に基づいて、テンプレート画像に配置された複数のテンプレートオブジェクトのうち、検出対象に対応するテンプレートオブジェクトである対応テンプレートオブジェクトを特定する。例えば、図４（Ｄ）の例では、処理部１５０は、位相限定相関処理により、入力画像ＩＩＭ３の位置Ｐ２において、テンプレート画像ＴＩＭ２と入力画像ＩＩＭ３の相関ピーク値が最大になると判定し、複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）のうち、入力画像ＩＩＭ３の中心点ＩＣＰに対して、位置Ｐ２と点対称な位置に配置されているテンプレートオブジェクトＴＯＢ１を、対応テンプレートオブジェクトとして特定する。
【００４５】
これにより、検出対象が複数ある場合にも、各検出対象を検出することが可能となる。
【００４６】
２．本実施形態の手法
２．１．異なる配置パターンのテンプレート画像を用いた２つの位相限定相関処理
ここで、本実施形態の位相限定相関処理の具体例について説明する。まず、一般的な位相限定相関処理の具体例について、図２（Ａ）〜図３（Ｄ）を用いて説明する。次に、本実施形態の位相限定相関処理の具体例について、図４（Ａ）〜図６（Ｅ）を用いて説明する。
【００４７】
位相限定相関処理とは、入力画像に検出対象が映っているか否かを判定するために行う処理である。そして、位相限定相関処理では、入力画像に検出対象が映っている場合には、入力画像において検出対象が映る位置も特定することができる。
【００４８】
まず、検出対象が１種類であり、入力画像にも１つの物体が映っている場合の具体例を、図２（Ａ）〜図２（Ｄ）に示す。この場合の位相限定相関処理では、図２（Ａ）に示すように、検出対象を表すテンプレートオブジェクトＴＯＢ１が、画像の中心点ＴＣＰに配置された（映る）テンプレート画像ＴＩＭ１と、図２（Ｂ）に示すような入力画像ＩＩＭ１と、を用いる。この入力画像ＩＩＭ１には、画像の中心点ＩＣＰから左斜め上方向の位置に、直方体の何らかの物体ＯＢ１が映っている。現時点では、入力画像に映る直方体ＯＢ１の正体は分かっていないものとする。そして、位相限定相関処理を行って、入力画像ＩＩＭ１に映る直方体ＯＢ１が、そもそもテンプレートオブジェクトＴＯＢ１が表す検出対象であるか否かを判定する。また、直方体ＯＢ１が検出対象である場合には、直方体ＯＢ１が入力画像のどの位置に映っているのかも併せて特定する。
【００４９】
ここで、検出対象とは、位相限定相関処理において、入力画像に映っているか否かの判定対象となる検出対象物や検出場所等のことをいう。つまり、検出処理において検出目的となる物体等を指す。なお、入力画像に映っている全ての物体が検出対象となる訳ではない。例えば、入力画像に複数の物体が映っていたとしても、検出対象が映っていないこともある。また、１回の位相限定相関処理における検出対象は、１つに限らず、複数の検出対象が設定される場合もある。具体的に、例えば後述する図１５〜図１７に示すように、本実施形態の画像処理装置１００の検出処理の結果を用いてロボット３００を制御する場合には、検出対象物として、ワーク、パレット、マーカー、ロボットのアーム及びエンドエフェクター等が設定され、検出場所としては、机や穴や壁などが設定される。なお、以下では、特段の記載がない限り、検出対象の姿勢、大きさ及び種類のうちの少なくともいずれか一つが異なる場合には、それぞれ異なる検出対象であるものとして説明を行う。つまり、同じ物体Ａであっても、第１の姿勢の物体Ａと第２の姿勢の物体Ａは、異なる検出対象であるものとする。なぜなら、前述したように、位相限定相関法は、位置姿勢感度が非常に高いため、位相限定相関処理では、姿勢の異なる物体は、別々の物体として処理（認識）されるためである。また、大きさ、種類又は形状が物体Ａと異なる物体Ｂは、当然異なる検出対象として扱われる。
【００５０】
また、テンプレートオブジェクトとは、検出対象をモデル化したものであり、例えばＣＡＤ（Computer Aided Design）モデルデータであり、ポリゴンや自由曲面などのプリミティブ面で構成される。そして、ＣＡＤモデルデータとは、ＣＡＤにおいて設計される設計対象を表すデータのことをいう。また、ＣＡＤとは、コンピューター支援設計とも呼ばれ、コンピューターを用いて設計することを指す。
【００５１】
そして、テンプレート画像とは、画像中にテンプレートオブジェクトが配置された画像のことをいう。例えば、図２（Ａ）のテンプレート画像ＴＩＭ１では、テンプレートオブジェクトＴＯＢ１が１つ配置されている。よって、この場合の検出対象は、テンプレートオブジェクトＴＯＢ１が表す直方体となる。また、テンプレート画像データは、テンプレート画像を表すデータのことであり、空間領域（実空間）で表される画像データであってもよいし、空間周波数により表されるフーリエ変換後の画像データであってもよい。なお、後述するテンプレートオブジェクト画像と、テンプレート画像は別のものであるため、注意を要する。
【００５２】
さらに入力画像とは、位相限定相関処理において、検出対象が映っているか否かを判断される画像である。例えば、入力画像は、図２（Ｂ）に示す画像ＩＩＭ１である。また、入力画像データとは、入力画像を表すデータのことであり、テンプレート画像データと同様に、空間領域で表される画像データであってもよいし、空間周波数により表されるフーリエ変換後の画像データであってもよい。
【００５３】
ここで、画像データを空間周波数領域で表すと、振幅信号が画像の明るさ等を表し、位相信号が画像の模様等を表す。位相限定相関法は、入力画像における、検出対象の有無と位置ずれを検出することが目的であるため、画像の明るさなどに影響を受けない位相信号にのみ着目する。
【００５４】
そのため、位相限定相関処理では、テンプレート画像ＴＩＭ１のデータをフーリエ変換し、フーリエ変換後のデータを正規化することにより、空間周波数領域における位相信号のみを抽出する。一方、入力画像ＩＩＭ１についても同様に、入力画像ＩＩＭ１のデータをフーリエ変換し、フーリエ変換後のデータを正規化することにより、空間周波数領域における位相信号のみを抽出する。
【００５５】
次に、テンプレート画像ＴＩＭ１の位相信号の複素共役と、入力画像ＩＩＭ１の位相信号を乗算し、テンプレート画像ＴＩＭ１の位相信号の複素共役と、入力画像ＩＩＭ１の位相信号との積を、逆フーリエ変換する。
【００５６】
すると、逆フーリエ変換の結果として、入力画像ＩＩＭ１の中心点ＩＣＰから（ｄｘ、ｄｙ）だけ離れた位置（Ｘ軸方向にｄｘ、Ｙ軸方向にｄｙだけ離れた位置）に相関ピークを持つデルタ関数が得られる。
【００５７】
このことは、図２（Ｃ）に示すように、テンプレート画像ＴＩＭ１の中心点ＴＣＰと、入力画像ＩＩＭ１の中心点ＩＣＰを重ねた状態から、（ｄｘ、ｄｙ）だけ、二枚の画像をずらして重ね合わせた時に、二つの画像の相関ピーク値が最大になることを表している。これは、テンプレート画像ＴＩＭ１のテンプレートオブジェクトＴＯＢ１と、入力画像ＩＩＭ１に映る直方体ＯＢ１が一致するためである。そして、このことは、図２（Ｄ）に示すように、入力画像ＩＩＭ１の中心点ＩＣＰから、（ｄｘ、ｄｙ）だけ離れた位置Ｐ１が、検出対象の検出位置（テンプレート画像ＴＩＭ１及び入力画像ＩＩＭ１の相関ピーク位置）であることを意味する。なお、検出位置Ｐ１は、図２（Ｃ）におけるテンプレート画像ＴＩＭ１の中心点ＴＣＰと同じ位置となる。
【００５８】
このようにして、入力画像ＩＩＭ１に検出対象が映っており、同時に、テンプレート画像ＴＩＭ１及び入力画像ＩＩＭ１の相関ピーク位置Ｐ１が、検出対象の検出位置であると特定することができる。なお、本例では、位相限定相関法において、画像データの変換操作をフーリエ変換により行ったが、これに限定されず、フーリエ変換の代わりに、直交関数を核関数とする一般の積分変換を用いてもよい。例えば、コサイン変換等を用いてもよい。
【００５９】
一方で、入力画像に検出対象が映っておらず、検出対象とは別の物体が映っている場合には、テンプレート画像の位相信号の複素共役と、入力画像の位相信号との積を、逆フーリエ変換しても、一様ノイズが得られるだけで、特定の相関ピークは検出されない。これにより、入力画像に検出対象が映っていないと判定することができる。
【００６０】
次に、検出対象は１種類であるが、入力画像には複数の物体が映っている場合の具体例を、図３（Ａ）〜図３（Ｄ）に示す。図３（Ａ）に示すテンプレート画像ＴＩＭ１は、図２（Ａ）に示すものと同じ画像である。一方、図３（Ｂ）に示す入力画像ＩＩＭ２には、直方体ＯＢ１の他に、円柱状の物体ＯＢ２と、球状の物体ＯＢ３とが映っている。なお、入力画像ＩＩＭ２では、図２（Ｂ）の入力画像ＩＩＭ１と同じ位置に、直方体ＯＢ１が映っている。
【００６１】
このような、テンプレート画像ＴＩＭ１と入力画像ＩＩＭ２に対して、位相限定相関処理を行った場合に、テンプレート画像の位相信号の複素共役と、入力画像の位相信号との積を、逆フーリエ変換すると、偽信号（一様ノイズ）が現れるものの、図２（Ｃ）の場合と同様に、入力画像ＩＩＭ２の中心点ＩＣＰから（ｄｘ、ｄｙ）だけ離れた位置に相関ピークを持つデルタ関数が得られる。
【００６２】
つまり、図３（Ｃ）に示すように、この場合にも、テンプレート画像ＴＩＭ１の中心点ＴＣＰと、入力画像ＩＩＭ２の中心点ＩＣＰを重ねた状態から、（ｄｘ、ｄｙ）だけ、二枚の画像をずらして重ね合わせた時に、二つの画像の相関ピーク値が最大となる。そしてこの時に、テンプレート画像ＴＩＭ１のテンプレートオブジェクトＴＯＢ１と、入力画像ＩＩＭ１に映る直方体ＯＢ１が一致する。よって、図３（Ｄ）に示すように、入力画像ＩＩＭ２において、検出対象が位置Ｐ１に映っていると判定することができる。
【００６３】
次に、検出対象が複数種類あり、入力画像には１つの物体が映っている場合の具体例を、図４（Ａ）〜図４（Ｄ）に示す。図４（Ａ）〜図４（Ｄ）の例は、図３（Ａ）〜図３（Ｄ）の例において、テンプレート画像と入力画像を入れ替えた例である。つまり、図４（Ａ）のテンプレート画像ＴＩＭ２は、図３（Ｂ）の入力画像ＩＩＭ２と同じ画像であり、図４（Ｂ）の入力画像ＩＩＭ３は、図３（Ａ）のテンプレート画像ＴＩＭ１と同じ画像である。本例では、このテンプレート画像ＴＩＭ２を用いて、複数の検出対象のいずれかが、入力画像ＩＩＭ３に映っているか否か等を判定する。
【００６４】
さて、図２（Ａ）〜図２（Ｄ）を用いて説明したように、位相限定相関処理では、テンプレート画像に対する処理と、入力画像に対する処理は、１箇所を除き、非対称性はない。その１箇所は、位相信号の乗算を行う際に、テンプレート画像の位相信号だけ、複素共役を取るという部分である。この差により、入力画像のどこに相関ピーク位置が現れるかが変化する。
【００６５】
そのため、本例の場合には、位相信号の積の逆フーリエ変換を行うことにより、入力画像ＩＩＭ３の中心点ＩＣＰから（−ｄｘ、−ｄｙ）だけ離れた位置に相関ピークを持つデルタ関数が得られる。つまり、図４（Ｃ）に示すように、テンプレート画像と入力画像とを重ね合わせた時に、二つの画像の相関ピーク値が最大となる。したがって、図４（Ｄ）に示すように、入力画像ＩＩＭ３において、位置Ｐ２が相関ピーク位置として特定される。一方で、図４（Ｂ）の入力画像ＩＩＭ３において検出対象ＯＢ１が実際に映っている位置は、画像の中心である。このように、複数のテンプレートオブジェクトが映っている図４（Ａ）のような画像をテンプレート画像として用いる場合には、例外はあるものの、入力画像に検出対象が実際に映っている位置は、相関ピーク位置と異なる位置になる。
【００６６】
この場合には、入力画像ＩＩＭ３の中心点ＩＣＰから相関ピーク位置Ｐ２へのベクトルＹＪ２は、図３（Ｄ）の入力画像ＩＩＭ２の中心点ＩＣＰから相関ピーク位置Ｐ１へのベクトルＹＪ１と、大きさは同じで、かつ逆向きのベクトルになる。要するにこれは、テンプレート画像の中心位置と入力画像の中心位置を重ね合わせた状態から、どのようにテンプレート画像を動かせば、入力画像に映る検出対象と、テンプレートオブジェクトとを重ね合わせることができるか、ということに対応する。
【００６７】
そして、図４（Ｂ）の入力画像ＩＩＭ３のように、検出対象が入力画像の中心に映っている場合には、テンプレート画像におけるテンプレートオブジェクトの配置位置と、相関ピーク位置とに基づいて、複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）のうち、どのテンプレートオブジェクトが、検出対象に対応する対応テンプレートオブジェクトであるかを特定することができる。具体的には、図４（Ｄ）の場合には、画像の中心点を基準として、相関ピーク位置Ｐ２と点対称の位置に配置されたテンプレートオブジェクトＴＯＢ１が、対応テンプレートオブジェクトであると特定できる。
【００６８】
ここで、対応テンプレートオブジェクトとは、検出対象を表すテンプレートオブジェクトのことをいう。特に、複数の検出対象があり、テンプレートオブジェクトも複数ある場合には、検出対象毎に対応テンプレートオブジェクトが異なる。例えば、図４（Ａ）〜図４（Ｄ）の例においては、検出対象である直方体ＯＢ１の対応テンプレートオブジェクトは、ＴＯＢ１であり、後述する図５（Ｂ）に示す他の検出対象である円柱ＯＢ２の対応テンプレートオブジェクトは、ＴＯＢ２である。
【００６９】
しかし、多くの場合には、入力画像の中心に検出対象が映っているとは限らない。入力画像の中心に検出対象が映っていない場合には、上記の処理だけでは、複数のテンプレートオブジェクトのうち、どのテンプレートオブジェクトが対応テンプレートオブジェクトであるかを特定することができない。
【００７０】
例えば、図５（Ａ）に示すように、図４（Ａ）と同じテンプレート画像ＴＩＭ２を用いて、図５（Ｂ）に示す入力画像ＩＩＭ４中に映る検出対象を検出する場合を考える。この入力画像ＩＩＭ４には、中心点ＩＣＰの右斜め下に円柱ＯＢ２が映っているが、検出処理の前には、画像処理装置１００は、入力画像ＩＩＭ４に何が映っているかを当然認識していない。
【００７１】
この二つの画像に対して、位相限定相関処理を行うと、図５（Ｃ）のように二つの画像を重ね合わせた時に、二つの画像の相関ピーク値が最大となる。具体的には、テンプレート画像ＴＩＭ２の中心点ＴＣＰと、入力画像ＩＩＭ４の中心点ＩＣＰとを重ね合わせた状態から、テンプレート画像を（−ｄｘ、−ｄｙ）だけずらした時に、偶然にも図４（Ｃ）と同様に相関ピーク値が最大となる。したがって、図５（Ｄ）に示すように、入力画像ＩＩＭ４の中心点ＩＣＰから（−ｄｘ、−ｄｙ）だけ離れた位置Ｐ２が、テンプレート画像ＴＩＭ２及び入力画像ＩＩＭ４の相関ピーク位置となる。この場合には、図４（Ａ）〜図４（Ｄ）の例と、入力画像が異なるにも関わらず、相関ピーク位置が図４（Ｄ）と同じ位置Ｐ２となり、入力画像の中心点ＩＣＰから相関ピーク位置までのベクトルＹＪ２も同じベクトルになる。つまり、図４（Ａ）〜図４（Ｄ）の例と図５（Ａ）〜図５（Ｄ）の例ではどちらの場合も、ベクトルＹＪ２で示すように、テンプレート画像をずらして入力画像に重ねた時に、入力画像に映る検出対象と、複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）のうち、いずれかのテンプレートオブジェクトとが重なる。
【００７２】
よって、図５（Ａ）〜図５（Ｄ）のように、入力画像の中心点ＩＣＰに物体が映っているとは限らない場合には、前述した位相限定相関処理を行っても、複数のテンプレートオブジェクトの中に、入力画像に映る検出対象と一致するものがあるかまでは分かるが、その検出対象に対応する対応テンプレートオブジェクトがどのテンプレートオブジェクトであるかまでは特定することができない。
【００７３】
そこで、本実施形態では、複数のテンプレートオブジェクトの配置パターンが異なる他のテンプレート画像を用いて、もう一度、位相限定相関処理を行い、１回目の位相限定相関処理の結果と、２回目の位相限定相関処理の結果に基づいて、対応テンプレートオブジェクトを特定する。
【００７４】
具体的には、テンプレート画像取得部１１０は、複数のテンプレートオブジェクトが第１の配置パターンで配置された第１のテンプレート画像データと、複数のテンプレートオブジェクトが第１の配置パターンとは異なる第２の配置パターンで配置された第２のテンプレート画像データとを取得する。そして、処理部１５０は、第１のテンプレート画像データ及び入力画像データに対して、第１の位相限定相関処理を行い、第２のテンプレート画像データ及び入力画像データに対して、第２の位相限定相関処理を行う。さらに、処理部１５０は、第１の位相限定相関処理の結果及び第２の位相限定相関処理の結果に基づいて、対応テンプレートオブジェクトを特定する。
【００７５】
具体例を図６（Ａ）〜図６（Ｅ）に示す。まず、本例では、第１のテンプレート画像データは、図５（Ａ）に示すテンプレート画像ＴＩＭ２のデータであるものとする。また、第１の配置パターンは、この第１のテンプレート画像ＴＩＭ２における、複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）の配置パターンである。さらに、第１のテンプレート画像ＴＩＭ２を用いた第１の位相限定相関処理の結果は、図５（Ｄ）のようになったものとする。
【００７６】
次に、テンプレート画像取得部１１０は、複数のテンプレートオブジェクトが第１の配置パターンとは異なる第２の配置パターンで配置された第２のテンプレート画像データを取得する。ここで、第２のテンプレート画像データは、例えば図６（Ａ）のように、第１のテンプレート画像ＴＩＭ２の複数テンプレートオブジェクトの配置位置を変更した画像のデータである。具体的には、後述する各テンプレートオブジェクトに対するピーク位置移動方向が相互に識別可能になるように、テンプレートオブジェクトＴＯＢ１をベクトルＤＰ１で示すように右の位置に移動させ、テンプレートオブジェクトＴＯＢ２をベクトルＤＰ２で示すように下の位置に移動させ、テンプレートオブジェクトＴＯＢ３をベクトルＤＰ３で示すように上の位置に移動させて、図６（Ｂ）に示すような第２のテンプレート画像ＴＩＭ３のデータを取得する。そして、この第２のテンプレート画像ＴＩＭ３における複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）の配置パターンが、第２の配置パターンとなる。
【００７７】
そして、処理部１５０は、第２のテンプレート画像データ及び入力画像データに対して、第２の位相限定相関処理を行う。なお、入力画像は変わらず、図６（Ｃ）に示す画像ＩＩＭ４であり、図５（Ｂ）に示す画像ＩＩＭ４と同じである。
【００７８】
この二つの画像に対して、位相限定相関処理を行うと、図６（Ｄ）のように二つの画像を重ね合わせた時に、二つの画像の相関ピーク値が最大となる。具体的には、第２のテンプレート画像ＴＩＭ３の中心点ＴＣＰと、入力画像ＩＩＭ４の中心点ＩＣＰとを重ね合わせた状態から、第２のテンプレート画像ＴＩＭ３をベクトルＹＪ３で示すようにずらした時に、相関ピーク値が最大となる。したがって、図６（Ｅ）に示すように、第２のテンプレート画像ＴＩＭ３及び入力画像ＩＩＭ４の相関ピーク位置は位置Ｐ３となる。
【００７９】
次に、処理部１５０は、第１の位相限定相関処理の結果及び第２の位相限定相関処理の結果に基づいて、対応テンプレートオブジェクトを特定する。
【００８０】
具体的には、処理部１５０は、第１の位相限定相関処理により、入力画像上における第１のテンプレート画像及び入力画像の第１の相関ピーク位置を求め、第２の位相限定相関処理により、入力画像上における第２のテンプレート画像及び入力画像の第２の相関ピーク位置を求め、第１の相関ピーク位置から第２の相関ピーク位置への変位に基づいて、対応テンプレートオブジェクトを特定する。
【００８１】
ここで、第１の相関ピーク位置は、第１のテンプレート画像と入力画像との相関ピーク位置であり、本例においては、図６（Ｅ）の入力画像ＩＩＭ４中の位置Ｐ２である。
【００８２】
また、第２の相関ピーク位置は、第２のテンプレート画像と入力画像との相関ピーク位置であり、本例においては、図６（Ｅ）の入力画像ＩＩＭ４中の位置Ｐ３である。
【００８３】
この時、第１の相関ピーク位置Ｐ２から第２の相関ピーク位置Ｐ３への変位は、ベクトルＰＤＰとなり、本例では、このベクトルＰＤＰに基づいて、対応テンプレートオブジェクトを特定する。
【００８４】
例えば、第１の相関ピーク位置から第２の相関ピーク位置への変位に基づいて、対応テンプレートオブジェクトを特定する方法としては、第１の相関ピーク位置から第２の相関ピーク位置へのピーク位置移動方向に基づいて、対応テンプレートオブジェクトを特定する方法が考えられる。
【００８５】
その場合には、処理部１５０は、第１のテンプレート画像データにおける各テンプレートオブジェクトから、第２のテンプレート画像データにおける各テンプレートオブジェクトへの変位方向と、第１の相関ピーク位置から第２の相関ピーク位置へのピーク位置移動方向とに基づいて、対応テンプレートオブジェクトを特定する。
【００８６】
ここで、テンプレートオブジェクトの変位方向は、例えば図６（Ａ）に示す複数のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ３）の各変位方向、つまりベクトルＤＰ１〜ベクトルＤＰ３が示す方向である。
【００８７】
一方、ピーク位置移動方向は、例えば図６（Ｅ）のベクトルＰＤＰが示す方向のことである。
【００８８】
そして、処理部１５０は、ピーク位置移動方向と逆方向に変位させられたテンプレートオブジェクトを、対応テンプレートオブジェクトとして特定する。つまり、本例では、ベクトルＰＤＰが示すピーク位置移動方向と逆方向（図６（Ａ）のベクトルＤＰ２の方向）に、変位させられたテンプレートオブジェクトＴＯＢ２を、対応テンプレートオブジェクトとして特定する。言い換えれば、対応テンプレートオブジェクトは、変位方向と逆方向に相関ピーク位置が移動したテンプレートオブジェクトである。
【００８９】
このようにして、入力画像ＩＩＭ４に、テンプレートオブジェクトＴＯＢ２が表す検出対象（円柱ＯＢ２）が映っていることを検出することができる。
【００９０】
よって、以上のように、第１の位相限定相関処理と第２の位相限定相関処理とを行えば、検出対象が複数あり、かつ入力画像の中心に物体が映っていない場合であっても、各検出対象を検出すること等が可能になる。
【００９１】
また、第１の相関ピーク位置から第２の相関ピーク位置への変位を用いることにより、複数のテンプレートオブジェクトのうち、検出対象に対応する対応テンプレートオブジェクトを特定すること等が可能になる。
【００９２】
さらに、テンプレートオブジェクトの変位方向と、入力画像におけるピーク位置移動方向とを用いることにより、複数のテンプレートオブジェクトのうちの対応テンプレートオブジェクトを、より容易に特定すること等が可能になる。例えば、相関ピーク位置の移動量とテンプレートオブジェクトの変位量とが、検出誤差により不一致となり、対応テンプレートオブジェクトを特定できなくなることを防ぐこと等が可能になる。
【００９３】
そして、ピーク位置移動方向と逆方向に変位させられたテンプレートオブジェクトを、対応テンプレートオブジェクトとして一意に特定すること等が可能になる。
【００９４】
ここで、比較例として、複数（３つ）の検出対象があり、画像１枚につき、その複数の検出対象のいずれかを表すテンプレートオブジェクトが１つ映っているテンプレート画像を複数用いて、検出対象を検出する例を図７（Ａ）〜図７（Ｄ）に示す。
【００９５】
本比較例では、図７（Ａ）に示すテンプレート画像ＴＩＭ４には、テンプレートオブジェクトＴＯＢ１が配置されており、図７（Ｂ）に示すテンプレート画像ＴＩＭ５には、テンプレートオブジェクトＴＯＢ２が配置されており、図７（Ｃ）に示すテンプレート画像ＴＩＭ６には、テンプレートオブジェクトＴＯＢ３が配置されている。
【００９６】
そして、図７（Ｄ）に示す入力画像ＩＩＭ５において、検出対象の検出処理を行うが、この際には、テンプレート画像と入力画像の組み合わせ毎に、それぞれ位相限定相関処理を行う必要がある。具体的には、まず、テンプレート画像ＴＩＭ４を用いて、位相限定相関処理を行って、テンプレートオブジェクトＴＯＢ１が表す検出対象が、入力画像ＩＩＭ５に映っているかを判定する。次に、テンプレート画像ＴＩＭ５を用いて、位相限定相関処理を行って、テンプレートオブジェクトＴＯＢ２が表す検出対象が、入力画像ＩＩＭ５に映っているかを判定する。さらに、テンプレート画像ＴＩＭ６についても同様に位相限定相関処理を行う。つまり、本比較例では、位相限定相関処理を３回行う必要がある。本比較例では、検出対象が３つだが、検出対象が増えれば、検出対象の数だけ、位相限定相関処理を行う必要がある。また、テンプレート画像も、検出対象の数だけ用意する必要がある。
【００９７】
また、位相限定相関処理は、フーリエ変換を行うため、１回の位相限定相関処理の計算量が比較的多い。よって、位相限定相関処理を行う回数は少ない方がよい。ましてや、位相限定相関処理では、前述したように同じ種類の物体であっても、姿勢が異なれば、違う検出対象として扱われるため、本比較例の方法で、各姿勢に対して位相限定相関処理を個々に行う場合には、さらに計算量が多くなる。
【００９８】
これに対して、本実施形態の検出対象の検出処理では、第１の位相限定相関処理と第２の位相限定相関処理の２回だけを行えばよい。これは、検出対象の数が増えても変わらず、用意するテンプレート画像も２つでよい。具体的には、検出対象の数が増えた場合には、テンプレート画像に配置されるテンプレートオブジェクトの数を増やすだけで対応することが可能である。
【００９９】
よって、本実施形態によれば、位相限定相関処理による検出対象の検出処理の処理量を低減して、処理時間を大幅に短縮することができ、高速な物体検出を実現することができる。
【０１００】
２．２．規則的な変位を加えた第２のテンプレート画像を用いる実施例
次に、第２のテンプレート画像を生成する際に、第１のテンプレート画像に配置された複数のテンプレートオブジェクトに対し、規則的な変位を加える実施例について説明する。そして、この場合に、対応テンプレートオブジェクトの候補となるテンプレートオブジェクトを段階的に絞り込んでいく例についても、併せて説明する。
【０１０１】
本例では、第１のテンプレート画像として、例えば図８（Ａ）に示す画像ＴＩＭ７を用いる。この画像ＴＩＭ７には、１６個のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ１６）が配置されている。なお、以下の説明では、簡略化のため、テンプレートオブジェクトを全て白丸で図示しているが、これらは互いに異なるテンプレートオブジェクトである。
【０１０２】
そして、この１６個のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ１６）に対して、図１６（Ｂ）に示すように、上下左右の４種類の変位（ＤＰ１〜ＤＰ４）を加える。
【０１０３】
具体的には、まず１６個のテンプレートオブジェクトを４つのグループに分類する。例えば、テンプレートオブジェクトＴＯＢ１〜テンプレートオブジェクトＴＯＢ４を、第１のグループに分類し、テンプレートオブジェクトＴＯＢ５〜テンプレートオブジェクトＴＯＢ８を、第２のグループに分類し、テンプレートオブジェクトＴＯＢ９〜テンプレートオブジェクトＴＯＢ１２を、第３のグループに分類し、テンプレートオブジェクトＴＯＢ１３〜テンプレートオブジェクトＴＯＢ１６を、第４のグループに分類する。
【０１０４】
次に、図８（Ｂ）に示すように、第１のグループに属するテンプレートオブジェクトに対しては、上方向の変位ＤＰ１を加え、第２のグループに対しては、右方向の変位ＤＰ２を加え、第３のグループに対しては、下方向の変位ＤＰ３を加え、第４のグループに対しては、左方向の変位ＤＰ４を加える。
【０１０５】
その結果、図８（Ｃ）に示すような第２のテンプレート画像ＴＩＭ８を生成することができる。画像ＴＩＭ８において、テンプレートオブジェクトＴＯＢ１’は、図８（Ａ）の画像ＴＩＭ７におけるテンプレートオブジェクトＴＯＢ１に変位ＤＰ１が加えられたものである。その他のテンプレートオブジェクト（ＴＯＢ２’〜ＴＯＢ１６’）についても同様である。
【０１０６】
このように、本例における第２のテンプレート画像データは、Ｎ個のグループ（Ｎは２以上の整数）に分類された複数のテンプレートオブジェクトが、グループ毎に異なる変位を加えられて生成された画像データである。なお、本例ではＮ＝４である。
【０１０７】
ここで、グループ毎に異なる変位は、図８（Ｂ）の例のように、グループ毎に変位方向が異なるものであってもよいし、その他にも、グループ毎に変位量（移動量）が異なるものであってもよい。
【０１０８】
次に、対応テンプレートオブジェクトの候補となるテンプレートオブジェクトを段階的に絞り込んでいく例について説明する。
【０１０９】
まず、図８（Ａ）に示す第１のテンプレート画像ＴＩＭ７を用いて、第１の位相限定相関処理を行った結果、図９（Ａ）の入力画像ＩＩＭ６において、相関ピーク位置が位置Ｐ４であると特定されたものとする。さらに、図８（Ｃ）に示す第２のテンプレート画像ＴＩＭ８を用いて、第２の位相限定相関処理を行った結果、図９（Ａ）の入力画像ＩＩＭ６において、相関ピーク位置が位置Ｐ５に変位したものとする。この時、ピーク位置移動方向は、ベクトルＰＤＰ１の方向である。
【０１１０】
そして、処理部１５０は、第１の位相限定相関処理の結果及び第２の位相限定相関処理の結果に基づいて、Ｎ個のグループのうち、対応テンプレートオブジェクトが属する第ｉのグループを特定する（ｉは、１≦ｉ≦Ｎの整数）。
【０１１１】
具体的には、対応テンプレートオブジェクトが属するグループとして、ピーク位置移動方向（ベクトルＰＤＰ１の方向）と逆方向に変位させられたテンプレートオブジェクトが属する第ｉのグループを特定する。つまり本例では、ベクトルＤＰ２の方向に変位させられたテンプレートオブジェクトが属する第２のグループが特定される。
【０１１２】
次に、処理部１５０は、特定した第ｉのグループに属する複数のテンプレートオブジェクトに対して、テンプレートオブジェクト毎に異なる変位を加えて第３のテンプレート画像データを生成する。
【０１１３】
本例では、第２のグループに属するテンプレートオブジェクトＴＯＢ５〜テンプレートオブジェクトＴＯＢ８に対して、テンプレートオブジェクト毎に異なる変位を加える。具体的には、図９（Ｂ）に示すように、テンプレートオブジェクトＴＯＢ５に対しては、上方向の変位ＤＰ５を加え、テンプレートオブジェクトＴＯＢ６に対しては、下方向の変位ＤＰ６を加え、テンプレートオブジェクトＴＯＢ７に対しては、右方向の変位ＤＰ７を加え、テンプレートオブジェクトＴＯＢ８に対しては、左方向の変位ＤＰ８を加えて、第３のテンプレート画像ＴＩＭ９を生成する。なお、ＴＯＢ５”〜ＴＯＢ８”は、再度変位が加えられた後のテンプレートオブジェクトである。
【０１１４】
次に、処理部１５０は、第３のテンプレート画像データ及び入力画像データに対して、第３の位相限定相関処理を行い、第２の位相限定相関処理の結果と、第３の位相限定相関処理の結果とに基づいて、対応テンプレートオブジェクトを特定する。
【０１１５】
本例では、第３のテンプレート画像ＴＩＭ９を用いて、第３の位相限定相関処理を行った結果、図９（Ｃ）の入力画像ＩＩＭ６に示すように、相関ピーク位置が位置Ｐ６にさらに変位したものとする。この時、ピーク位置移動方向は、ベクトルＰＤＰ２の方向である。
【０１１６】
そして、ピーク位置移動方向（ベクトルＰＤＰ２の方向）と逆方向（ベクトルＤＰ６の方向）に変位させられたテンプレートオブジェクトＴＯＢ６を、対応テンプレートオブジェクトとして特定する。
【０１１７】
このようにして、入力画像ＩＩＭ６には、テンプレートオブジェクトＴＯＢ６が表す検出対象が映っていることを検出することができる。
【０１１８】
ここで、第３の位相限定相関処理は、第３のテンプレート画像データと入力画像データに対して行う位相限定相関処理であるが、他の言い方をすれば、複数のテンプレートオブジェクトを分類するグループの数と、各グループに含まれるテンプレートオブジェクトの数が等しくなった後に行われる位相限定相関処理とも言える。そして、第３のテンプレート画像データは、第３の位相限定相関処理に用いるテンプレート画像データである。
【０１１９】
なお、図９（Ａ）〜図９（Ｃ）の例では、３回の位相限定相関処理を行うことにより、対応テンプレートオブジェクトを一意に特定することができたが、第２の位相限定相関処理を行っても、分類グループ数と、各グループに含まれるテンプレートオブジェクトの数が等しくならない場合には、さらに位相限定相関処理を行い、対応テンプレートオブジェクトの候補を絞り込んだ後に、第３の位相限定相関処理を行ってもよい。つまり、分類グループ数と、各グループに含まれるテンプレートオブジェクトの数が等しくなるまで、第２の位相限定相関処理を繰り返した後に、第３の位相限定相関処理を行ってもよい。
【０１２０】
また、前述した図８（Ａ）〜図９（Ｃ）の例では、入力画像に一つだけ検出対象が映っていたが、入力画像に多くの検出対象が映っている場合には、同じ検出対象について、第１の相関ピーク位置と、第２の相関ピーク位置との対応がとれないことがある。
【０１２１】
しかし、前述したように、あらかじめ変位する方向などを限定して（図８（Ｂ）及び図９（Ｂ）の例では、上下左右の４種類）、グループ毎にテンプレートオブジェクトに変位を加えることにより、第１の相関ピーク位置と、第２の相関ピーク位置との対応付けを容易にすること等が可能となる。
【０１２２】
さらに、前述したように第３の位相限定相関処理を行うことによって、グループ毎にテンプレートオブジェクトに変位を加えた場合でも、複数のテンプレートオブジェクトの中から、対応テンプレートオブジェクトを一意に特定すること等が可能になる。
【０１２３】
また、以上で説明した処理は次のように言い換えることもできる。まず、処理部１５０は、第１の位相限定相関処理の結果及び第２の位相限定相関処理の結果に基づいて、対応テンプレートオブジェクトの候補である候補テンプレートオブジェクトを特定する。図９（Ｂ）の例では、候補テンプレートオブジェクトは、テンプレートオブジェクトＴＯＢ５’〜テンプレートオブジェクトＴＯＢ８’である。
【０１２４】
次に、処理部１５０は、候補テンプレートオブジェクトの配置パターンが、第１のテンプレート画像データ及び第２のテンプレート画像データの少なくとも一方と異なる第３のテンプレート画像データを生成する。例えば、第３のテンプレート画像データは、図９（Ｂ）の変位付加後のテンプレート画像ＴＩＭ９のデータである。
【０１２５】
そして、処理部１５０は、第３のテンプレート画像データ及び入力画像データに対して、第３の位相限定相関処理を行い、第３の位相限定相関処理の結果、及び第１の位相限定相関処理の結果又は第２の位相限定相関処理の結果に基づいて、対応テンプレートオブジェクトを特定する。
【０１２６】
次に、本例の処理の流れを、図１０のフローチャートを用いて説明する。まず、テンプレート画像取得部１１０は、各テンプレートオブジェクト画像に対して、初期変位を加える（Ｓ１０１）。各テンプレートオブジェクト画像とは、複数のテンプレートオブジェクトのうち、各テンプレートオブジェクトのみが映る画像であり、例えば図８（Ａ）のテンプレートオブジェクトＴＯＢ１のみが映る画像などのことを指す。そして、初期変位とは、第１のテンプレート画像に配置される各テンプレートオブジェクトの、画像の中心からの変位（位置姿勢のずれ）のことをいう。例えば、図８（Ａ）のテンプレートオブジェクトＴＯＢ１は、画像の中心に対して左上に配置されるような初期変位が加えられている。
【０１２７】
そして、テンプレート画像取得部１１０は、初期変位を加えた各テンプレートオブジェクト画像を合成して、前述した図８（Ａ）のような第１のテンプレート画像ＴＩＭ７を生成する（Ｓ１０２）。
【０１２８】
次に、処理部１５０は、第１のテンプレート画像データをフーリエ変換して（Ｓ１０３）、フーリエ変換後のデータを正規化し、空間周波数領域における第１のテンプレート画像の位相信号のみを抽出する（Ｓ１０４）。
【０１２９】
一方で、入力画像取得部１３０は、入力画像データを取得する（Ｓ１０５）。そして、処理部１５０は、入力画像データをフーリエ変換して（Ｓ１０６）、フーリエ変換後の画像データの振幅を正規化し、空間周波数領域における入力画像の位相信号のみを抽出する（Ｓ１０７）。なお、ステップＳ１０１〜ステップＳ１０４の処理と、ステップＳ１０５〜ステップＳ１０７の処理は、順番が逆でも良いし、並列に処理してもよい。
【０１３０】
次に、処理部１５０は、第１のテンプレート画像の位相信号の複素共役と、入力画像の位相信号とを乗算し（Ｓ１０８）、第１のテンプレート画像の位相信号の複素共役と、入力画像の位相信号との積を、逆フーリエ変換して、第１のテンプレート画像と入力画像との第１の相関ピーク位置を検出する（Ｓ１０９）。例えば、前述した図９（Ａ）の例では、第１の相関ピーク位置Ｐ４を検出している。なお、前述した第１の位相限定相関処理は、このステップＳ１０７〜ステップＳ１０９の処理に相当する。
【０１３１】
そして、処理部１５０は、テンプレートオブジェクトリストを生成する（Ｓ１１０）。テンプレートオブジェクトリストは、各相関ピーク位置に対応する可能性のあるテンプレートオブジェクトのリストである。つまり、テンプレートオブジェクトリストは、前述した候補テンプレートオブジェクトのリストである。前述したように、図９（Ａ）の第１の相関ピーク位置Ｐ４だけが検出されている段階では、まだ全てのテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ１６）が、第１の相関ピーク位置Ｐ４の候補テンプレートオブジェクトである（第１の相関ピーク位置Ｐ４に対応する可能性がある）ため、全てのテンプレートオブジェクトがテンプレートオブジェクトリストに登録される。
【０１３２】
次に、処理部１５０は、テンプレートオブジェクトリストに登録されている候補テンプレートオブジェクトをＮ個のグループに分類し（Ｎは２以上の整数）、候補テンプレートオブジェクトが属するグループ毎に異なる変位を、各候補テンプレートオブジェクト画像に加える（Ｓ１１１）。そして、処理部１５０は、変位を加えた各候補テンプレートオブジェクト画像に基づいて、第２のテンプレート画像を生成する（Ｓ１１２）。例えば、前述した図８（Ｂ）及び図８（Ｃ）の例では、複数の候補テンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ１６）を４つのグループに分類して、各候補テンプレートオブジェクトに対して、グループ毎に異なる変位ＤＰ１〜変位ＤＰ４を加えて、第２のテンプレート画像ＴＩＭ８を生成している。
【０１３３】
さらに、処理部１５０は、第２のテンプレート画像データをフーリエ変換し（Ｓ１１３）、振幅を正規化して、第２のテンプレート画像の位相信号のみを抽出する（Ｓ１１４）。次に、処理部１５０は、第２のテンプレート画像の位相信号の複素共役と、ステップＳ１０７で抽出した入力画像の位相信号とを乗算し（Ｓ１１５）、第２のテンプレート画像の位相信号の複素共役と入力画像の位相信号との積を、逆フーリエ変換して、第２の相関ピーク位置を検出する（Ｓ１１６）。例えば、前述した図９（Ａ）の例では、第２の相関ピーク位置Ｐ５を検出している。なお、前述した第２の位相限定相関処理又は第３の位相限定相関処理は、このステップＳ１１４〜ステップＳ１１６の処理に相当する。
【０１３４】
そして、処理部１５０は、第１の相関ピーク位置から第２の相関ピーク位置への変位を検出し（Ｓ１１７）、検出した変位に基づいて、テンプレートオブジェクトリストを更新する（Ｓ１１８）。具体的に図９（Ａ）の例では、第１の相関ピーク位置Ｐ４から第２の相関ピーク位置Ｐ５への変位ＰＤＰ１を検出する。そして、第２のテンプレート画像を生成する際に、変位ＰＤＰ１が表すピーク位置移動方向（左方向）と、逆方向（右方向）に変位させられた候補テンプレートオブジェクト（ＴＯＢ５’〜ＴＯＢ８’）を特定し、テンプレートオブジェクトリストから、ＴＯＢ５’〜ＴＯＢ８’以外の候補テンプレートオブジェクト（ＴＯＢ１’〜ＴＯＢ４’、ＴＯＢ９’〜ＴＯＢ１６’）を削除する。つまり、この時点で、テンプレートオブジェクトリストには、候補テンプレートオブジェクトＴＯＢ５’〜候補テンプレートオブジェクトＴＯＢ８’が登録されている。
【０１３５】
次に、処理部１５０は、テンプレートオブジェクトリストに登録されている候補テンプレートオブジェクトが１つか否かを判定し（Ｓ１１９）、テンプレートオブジェクトリストにまだ複数の候補テンプレートオブジェクトが登録されていると判定した場合には、ステップＳ１１１に戻り、処理を繰り返す。この場合には、図９（Ｂ）を用いて前述したように、テンプレートオブジェクトリストに登録されている候補テンプレートオブジェクトに対して、それぞれ異なる変位を加えて、第３のテンプレート画像ＴＩＭ９を生成し、第３のテンプレート画像ＴＩＭ９を用いて、候補テンプレートオブジェクトを絞り込んでいく。
【０１３６】
一方、テンプレートオブジェクトリストに登録されている候補テンプレートオブジェクトが１つであると判定した場合には、残った候補テンプレートオブジェクトを対応テンプレートオブジェクトとして特定し（Ｓ１２０）、処理を終了する。図９（Ｃ）の例では、候補テンプレートオブジェクトＴＯＢ６”（ＴＯＢ６）が、対応テンプレートオブジェクトとして特定される。
【０１３７】
また、以上の説明では、ステップＳ１１８で、テンプレートオブジェクトリストから候補テンプレートオブジェクトを絞り込む処理を１回行うために、ステップＳ１１１〜ステップＳ１１７の処理を１回行っているが、候補テンプレートオブジェクトを絞り込む処理を１回行うために、ステップＳ１１１〜ステップＳ１１７の処理を複数回行ってもよい。
【０１３８】
これにより、第１の相関ピーク位置と第２の相関ピーク位置のミスマッチ等によるエラーを防ぐこと等が可能になる。
【０１３９】
２．３．乱数変位を加えた第２のテンプレート画像を用いる実施例
次に、第２のテンプレート画像を生成する際に、第１のテンプレート画像に配置された複数のテンプレートオブジェクトに対し、乱数変位（ランダムな変位）を加える実施例について説明する。
【０１４０】
本例の第２のテンプレート画像データは、第１のテンプレート画像データの各テンプレートオブジェクトに対して、乱数変位を加えられて生成された画像データである。
【０１４１】
ここで、本例の処理の流れを図１１のフローチャートを用いて説明する。ステップＳ２０１〜ステップＳ２０９は、図１０のステップＳ１０１〜ステップＳ１０９と同様であるため、説明を省略する。
【０１４２】
次に、処理部１５０は、第１のテンプレート画像に配置されている複数のテンプレートオブジェクトの各テンプレートオブジェクトに対して、乱数変位を付加する（Ｓ２１０）。例えば、図１２に示すように、テンプレートオブジェクトＴＯＢ１に、乱数変位ＤＰ１を加え、その他のテンプレートオブジェクト（ＴＯＢ２〜ＴＯＢ４）に対しても、同様に、乱数変位ＤＰ２〜ＤＰ４を加える。そして、処理部１５０は、変位付加後のテンプレートオブジェクト（ＴＯＢ１’〜ＴＯＢ４’）が配置された第２のテンプレート画像ＴＩＭ１０を生成する（Ｓ２１１）。この乱数変位は、変位方向及び変位量（移動量）の少なくとも一方が互いに異なることが望ましい。
【０１４３】
次に、ステップＳ２１２〜ステップＳ２１６では、図１０のステップＳ１１３〜ステップＳ１１７と同様に、第２の位相限定相関処理を行って、第２のテンプレート画像及び入力画像の第２の相関ピーク位置を検出し、第１の相関ピーク位置から第２の相関ピーク位置への変位を検出する。
【０１４４】
そして、処理部１５０は、第２のテンプレート画像の生成時に加えた変位と、相関ピーク位置の変位との相関をとり（Ｓ２１７）、最大の逆相関の変位に対応するテンプレートオブジェクトを、対応テンプレートオブジェクトとして特定して（Ｓ２１８）、処理を終了する。なお、最大の逆相関の変位とは、例えば互いに逆方向となる変位である。
【０１４５】
このように、第２のテンプレート画像を生成する際に、各テンプレートオブジェクトに対して、互いに異なる乱数変位を加えることにより、第２の位相限定相関処理を一度行うだけで、対応テンプレートオブジェクトを一意に特定すること等が可能になる。本例のように、テンプレートオブジェクトに乱数変位を加える処理は、第１の相関ピーク位置と第２の相関ピーク位置の対応付けが容易な場合、つまり相関ピーク位置が疎である場合に、特に有効である。
【０１４６】
２．４．空間周波数領域で変位を加えた第２のテンプレート画像を用いる実施例
これまでの説明では、第２のテンプレート画像を生成する際に、空間領域上で、各テンプレートオブジェクトに対して変位を加えていたが、以下では、空間周波数により表されるフーリエ変換後の画像データの位相信号に対して、変位を加えて、第２のテンプレート画像の位相信号（及び第１のテンプレート画像の位相信号）を生成する例について説明する。
【０１４７】
本例では、処理部１５０は、空間周波数により表されるフーリエ変換後の第１のテンプレート画像データの位相信号、又は空間周波数により表されるフーリエ変換後の各テンプレートオブジェクト画像データの位相信号に対して、変位を与えることにより、第２のテンプレート画像データを生成する。なお、前述したように、フーリエ変換は、他の積分変換であってもよい。
【０１４８】
ここで、各テンプレートオブジェクト画像データとは、前述したように、例えば図８（Ａ）のテンプレートオブジェクトＴＯＢ１の画像データなどのことである。
【０１４９】
次に、本例の処理の流れを、図１３のフローチャートを用いて説明する。まず、各テンプレートオブジェクト画像をフーリエ変換する（Ｓ３０１）。そして、フーリエ変換後の各テンプレートオブジェクト画像データの振幅を正規化し、位相信号のみを抽出する（Ｓ３０２）。つまり本例では、第１のテンプレート画像データ及び第２のテンプレート画像データを生成する前に、フーリエ変換を行い、フーリエ変換後の画像データの位相信号を抽出してしまう。
【０１５０】
次に、各テンプレートオブジェクト画像の位相信号に対して、空間周波数領域で変位を付加し（Ｓ３０３）、変位付加後の位相信号を空間周波数領域で合成して、第１のテンプレート画像の位相信号を生成する（Ｓ３０４）。なお、この際に、第１のテンプレート画像自体を生成する必要はない。
【０１５１】
一方、入力画像の位相信号を求める処理（Ｓ３０５〜Ｓ３０７）は、前述した図１０のステップＳ１０５〜ステップＳ１０７と同様である。なお、ステップＳ３０１〜ステップＳ３０４の処理と、ステップＳ３０５〜ステップＳ３０７の処理は、順番が逆でも良いし、並列に処理してもよい。
【０１５２】
また、第１の位相限定相関処理（Ｓ３０８、Ｓ３０９）と、テンプレートオブジェクトリストの生成処理（Ｓ３１０）も、前述した図１０のステップＳ１０８〜ステップＳ１１０と同様である。
【０１５３】
次に、処理部１５０は、テンプレートオブジェクトリストに登録されている候補テンプレートオブジェクトをＮ個のグループに分類し（Ｎは２以上の整数）、候補テンプレートオブジェクトが属するグループ毎に異なる変位を、各候補テンプレートオブジェクト画像の位相信号に加える（Ｓ３１１）。そして、処理部１５０は、変位を加えた各候補テンプレートオブジェクト画像の位相信号を合成して、第２のテンプレート画像の位相信号を生成する（Ｓ３１２）。なお、この際にも、第２のテンプレート画像自体を生成する必要はない。
【０１５４】
以降のステップＳ３１３〜Ｓ３１８は、図１０のステップＳ１１５〜ステップＳ１２０と同様であるため、説明を省略する。
【０１５５】
このように、第１のテンプレート画像の位相信号を求める際のフーリエ変換と、第２のテンプレート画像の位相信号を求める際のフーリエ変換とに相当する処理を、各テンプレートオブジェクト画像のフーリエ変換として、まとめて行うこと等が可能になる。これにより、使用するハードウェアによっては、計算量を削減すること等が可能になる。
【０１５６】
例えば、テンプレートオブジェクトがＮ２個ある場合に、各テンプレートオブジェクトに変位を付加する際の計算量は、Ｎ２のオーダーである。一方、前述した例のように、空間領域で各テンプレートオブジェクトに変位を加えて、テンプレート画像を生成する場合には、位相信号を抽出する際に２次元フーリエ変換を行う必要があるが、その際の計算量は、Ｎ２ｌｏｇ（Ｎ）オーダーとなる。どちらが有利であるかは、使用するハードウェアに依存する。
【０１５７】
また、空間周波数領域で、テンプレートオブジェクト画像の位相信号を合成することにより、あたかも空間領域上の同じ座標位置に異なるテンプレートオブジェクトが重畳しているようなテンプレート画像データの位相信号を生成すること等が可能になる。さらに、テンプレート画像において、同じ座標位置に異なるテンプレートオブジェクトを疑似的に配置可能なため、より多数のテンプレートオブジェクトをより自由に配置すること等が可能になる。なお、空間領域上の同じ座標位置に異なるテンプレートオブジェクトが重畳して配置されているようなテンプレート画像データは、実際の画像として表すことはできない。なぜなら、画像化した段階で、別の形状又は模様のテンプレートオブジェクトが配置された画像になってしまうためである。
【０１５８】
また、同じ種類のテンプレートオブジェクトで、姿勢がそれぞれ異なるものを配置したテンプレート画像を用いれば、検出対象の姿勢を検出することも可能である。例えば、図１４に示すテンプレート画像ＴＩＭ１１では、文字Ｐの形をした同じ種類のテンプレートオブジェクト（ＴＯＢ１〜ＴＯＢ８）が、それぞれ異なる姿勢で配置されている。この時に、例えばテンプレートオブジェクトＴＯＢ３が対応テンプレートオブジェクトとして特定されれば、Ｐの形の検出対象は、時計周りに９０度傾いて入力画像に映っているなどと、特定することが可能である。また、大きさの異なる検出対象についても、同様に対応すること等が可能である。
【０１５９】
３．ロボット
また、以上で述べた検出処理の結果は、ビジュアルサーボなどのロボット３００の制御にも用いることができる。この場合には、例えば図１５に示すように、ロボット３００は、前述した画像処理装置１００（テンプレート画像取得部１１０と入力画像取得部１３０と処理部１５０とを有する）と、ロボット制御部３５０と、ロボット機構３８０と、を含む。
【０１６０】
そして、ロボット機構３８０は、エンドエフェクター３１０やアーム３２０等を有している。ここで、エンドエフェクター３１０とは、ワーク（作業対象物）を把持したり、持ち上げたり、吊り上げたり、吸着させたり、ワークに加工を施したりするために、アームのエンドポイントに取り付ける部品のことをいう。エンドエフェクター３１０は、例えばハンド（把持部）であってもよいし、フックであってもよいし、吸盤等であってもよい。さらに、１本のアームに対して、複数のエンドエフェクターを設けても良い。なお、アームとは、ロボット３００のパーツであって、一つ以上の関節を含む可動パーツのことをいう。
【０１６１】
この場合には、入力画像取得部１３０は、撮像部２００から入力画像として撮像画像を取得する。例えば、画像処理装置１００と撮像部２００が、有線及び無線の少なくとも一方を含むネットワークにより接続されている場合には、入力画像取得部１３０は、撮像部２００と通信を行う通信部（インターフェース部）であってもよい。また他にも、画像処理装置１００が撮像部２００を含む場合には、入力画像取得部１３０は、撮像部２００そのものであってもよい。
【０１６２】
そして、撮像部（カメラ）２００は、例えばＣＣＤ（charge-coupled device）等の撮像素子と光学系とを含む。撮像部２００は、例えば天井や作業台の上などに、検出対象が撮像部２００の画角内に入るような角度で配置される。そして、撮像部２００は、撮像画像の情報を画像処理装置１００（入力画像取得部１３０）に出力する。ただし、本実施形態においては、撮像画像の情報をそのまま画像処理装置１００に出力するものとするが、これに限定されるものではない。例えば、撮像部２００は、画像処理用等に用いられるデバイス（プロセッサー）を含むことができる。
【０１６３】
次に、処理部１５０は、前述した各処理を行うことにより、撮像画像に映る検出対象を検出し、検出対象の検出結果をロボット制御部３５０に出力する。そして、ロボット制御部３５０は、取得した検出対象の検出結果に基づいて、ロボット機構３８０を制御する。
【０１６４】
この場合には、ロボット３００は、図１６（Ａ）のようにロボット本体と画像処理装置１００とが一体に構成されていてもよい。すなわち、ロボット３００は、画像処理装置１００を含んでいてもよい。具体的には図１６（Ａ）に示したように、ロボット３００は、ロボット機構３８０及びロボット機構３８０を支えるベースユニット部を有し、当該ベースユニット部に画像処理装置１００及びロボット制御部３５０が格納されるものであってもよい。そして、図１６（Ａ）のロボット３００には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。このロボット３００は、人手により移動させられるものであってもよいし、車輪を駆動させるモーターを設け、当該モーターをロボット制御部３５０により制御することにより、移動させられるものであってもよい。なお、図１６（Ａ）は双腕型の例であるが、ロボット３００は、後述する図１６（Ｂ）に示すように単腕型や、その他の多腕型のロボットであってもよい。
【０１６５】
さらに、図１６（Ａ）のようにロボット３００の下に設けられたベースユニット部に、画像処理装置１００が設けられるとは限られない。例えば、本実施形態のロボット３００は、図１６（Ｂ）に示すように、ロボット本体３００（ロボット）と画像処理装置１００とが別体に構成されていてもよい。この場合には、画像処理装置１００の一部又は全部の機能は、例えばＰＣ（Personal Computer）により実現される。この場合には、画像処理装置１００とロボット３００は、有線及び無線の少なくとも一方を含むネットワークを介して、通信接続されている。
【０１６６】
また、図１７に示すように、画像処理装置１００の機能は、有線及び無線の少なくとも一方を含むネットワーク４００を介して、ロボット３００と通信接続されたサーバー５００により実現されてもよい。
【０１６７】
或いは本実施形態では、本発明の画像処理装置の処理の一部を、サーバー５００側の画像処理装置が行ってもよい。この場合には、ロボット３００側に設けられた画像処理装置との分散処理により、当該処理を実現する。なお、ロボット３００側の画像処理装置は、例えばロボット３００に設置される端末装置３３０（制御部）により実現される。
【０１６８】
そして、この場合に、サーバー５００側の画像処理装置は、本発明の画像処理装置における各処理のうち、サーバー５００の画像処理装置に割り当てられた処理を行う。一方、ロボット３００に設けられた画像処理装置は、本発明の画像処理装置の各処理のうち、ロボット３００の画像処理装置に割り当てられた処理を行う。なお、本発明の画像処理装置の各処理は、サーバー５００側に割り当てられた処理であってもよいし、ロボット３００側に割り当てられた処理であってもよい。
【０１６９】
これにより、例えば端末装置３３０よりも処理能力の高いサーバー５００が、処理量の多い処理を行うこと等が可能になる。さらに、例えばサーバー５００が各ロボット３００の動作を一括して制御することができ、複数のロボット３００に協調動作をさせること等が容易になる。
【０１７０】
なお、本実施形態の画像処理装置１００及びロボット３００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の画像処理装置１００及びロボット３００等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１７１】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、画像処理装置、ロボット及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１７２】
１００  画像処理装置、１１０  テンプレート画像取得部、１３０  入力画像取得部、
１５０  処理部、２００  撮像部、３００  ロボット、３１０  エンドエフェクター、
３２０  アーム、３３０  端末装置、３５０  ロボット制御部、３８０  ロボット機構、
４００  ネットワーク、５００  サーバー
【図１】
2015102991.tif 000003
【図２】
2015102991.tif 000004
【図３】
2015102991.tif 000005
【図４】
2015102991.tif 000006
【図５】
2015102991.tif 000007
【図６】
2015102991.tif 000008
【図７】
2015102991.tif 000009
【図８】
2015102991.tif 000010
【図９】
2015102991.tif 000011
【図１０】
2015102991.tif 000012
【図１１】
2015102991.tif 000013
【図１２】
2015102991.tif 000014
【図１３】
2015102991.tif 000015
【図１４】
2015102991.tif 000016
【図１５】
2015102991.tif 000017
【図１６】
2015102991.tif 000018
【図１７】
2015102991.tif 000019