(57)【特許請求の範囲】
【請求項１】
テンプレート画像を記憶したテンプレート記憶部と、
探索対象のクエリ画像を取得するクエリ取得部と、
画像の各点の法線ベクトルのヒストグラムを３次元球面上に表現した拡張ガウス画像に変換する画像変換部と、
前記テンプレート画像及び前記クエリ画像の拡張ガウス画像における法線ベクトルのうち、閾値より大きい度数を有する法線ベクトルの３次元球面上の点を選択し、前記テンプレート画像と前記クエリ画像のそれぞれにおいて選択された点の位置及び度数の相関関係に基づいて、前記クエリ画像に対する前記テンプレート画像の回転に関する情報を求める回転算出部と、
を備える演算装置。
【請求項２】
前記回転算出部は、
前記テンプレート画像から選択された点のうちの１つの点と前記クエリ画像から選択された点のうちの１つの点とを対応させるすべての回転行列を求め、対応させた２つの点の度数に応じた重み付けをした値を、前記回転行列に投票する回転行列投票部と、
前記テンプレート画像において選択された点と前記クエリ画像において選択された点のすべての組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の回転を表わす行列を決定する回転行列決定部と、
を備える請求項１に記載の演算装置。
【請求項３】
前記回転行列投票部は、対応させた２つの点の度数を乗じた値を重みとして用いる請求項２に記載の演算装置。
【請求項４】
前記回転行列投票部は、対応させた２つの点の度数の差を分母に含む値を重みとして用いる請求項２に記載の演算装置。
【請求項５】
前記回転算出部にて算出した回転に関する情報に基づいて前記テンプレート画像を回転した画像を生成し、回転により得られた画像と前記クエリ画像とのマッチングにより前記テンプレート画像と前記クエリ画像との並進に関する情報を求める並進算出部を備える請求項１乃至４のいずれかに記載の演算装置。
【請求項６】
テンプレート画像を記憶したテンプレート記憶部と、
探索対象のクエリ画像を取得するクエリ取得部と、
画像を表現する複数のベクトルとそのベクトルの起点の位置を求めるベクトル算出部と、
前記テンプレート画像のうちの１つのベクトルと前記クエリ画像のうちの１つのベクトルのその向き及び位置を対応させる変換行列を求め、対応させた２つの点のベクトルの大きさに応じた重み付けをした値を前記変換行列に投票する変換行列投票部と、
前記テンプレート画像と前記クエリ画像のすべての点の組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の変換を表わす行列を決定する変換行列決定部と、
を備える演算装置。
【請求項７】
前記ベクトル算出部は、前記画像の各点の法線ベクトルを求める請求項６に記載の演算装置。
【請求項８】
前記画像からオブジェクトの線分抽出を行う線分抽出部を備え、
前記ベクトル算出部は、前記線分の中点を起点の位置とし、前記線分の方向をベクトルとして求める請求項６に記載の演算装置。
【請求項９】
演算装置が、テンプレート記憶部からテンプレート画像を読み出すステップと、
前記演算装置が、探索対象のクエリ画像を取得するステップと、
前記演算装置が、前記テンプレート画像と前記クエリ画像を、各点の法線ベクトルのヒストグラムを３次元球面上に表現した拡張ガウス画像にそれぞれ変換するステップと、
前記演算装置が、前記テンプレート画像及び前記クエリ画像の拡張ガウス画像における法線ベクトルのうち、閾値より大きい度数を有する法線ベクトルの３次元球面上の点を選択し、前記テンプレート画像と前記クエリ画像のそれぞれにおいて選択された点の位置及び度数の相関関係に基づいて、前記クエリ画像に対する前記テンプレート画像の回転に関する情報を求めるステップと、
を備える演算方法。
【請求項１０】
演算装置が、テンプレート記憶部からテンプレート画像を読み出すステップと、
前記演算装置が、探索対象のクエリ画像を取得するステップと、
前記演算装置が、前記テンプレート画像および前記クエリ画像のそれぞれについて、画像を表現する複数のベクトルとそのベクトルの起点の位置を求めるステップと、
前記演算装置が、前記テンプレート画像のうちの１つのベクトルと前記クエリ画像のうちの１つのベクトルのその向き及び位置を対応させる変換行列を求め、対応させた２つの点のベクトルの大きさに応じた重み付けをした値を前記変換行列に投票するステップと、
前記演算装置が、前記テンプレート画像と前記クエリ画像のすべての点の組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の変換を表わす行列を決定するステップと、
を備える演算方法。
【請求項１１】
テンプレート画像とクエリ画像の相関を計算するために、コンピュータに、
テンプレート記憶部からテンプレート画像を読み出すステップと、
探索対象のクエリ画像を取得するステップと、
前記テンプレート画像と前記クエリ画像を、各点の法線ベクトルのヒストグラムを３次元球面上に表現した拡張ガウス画像にそれぞれ変換するステップと、
前記テンプレート画像及び前記クエリ画像の拡張ガウス画像における法線ベクトルのうち、閾値より大きい度数を有する法線ベクトルの３次元球面上の点を選択し、前記テンプレート画像と前記クエリ画像のそれぞれにおいて選択された点の位置及び度数の相関関係に基づいて、前記クエリ画像に対する前記テンプレート画像の回転に関する情報を求めるステップと、
を実行させるプログラム。
【請求項１２】
テンプレート画像とクエリ画像の相関を計算するために、コンピュータに、
テンプレート記憶部からテンプレート画像を読み出すステップと、
探索対象のクエリ画像を取得するステップと、
前記テンプレート画像および前記クエリ画像のそれぞれについて、画像を表現する複数のベクトルとそのベクトルの起点の位置を求めるステップと、
前記テンプレート画像のうちの１つのベクトルと前記クエリ画像のうちの１つのベクトルのその向き及び位置を対応させる変換行列を求め、対応させた２つの点のベクトルの大きさに応じた重み付けをした値を前記変換行列に投票するステップと、
前記テンプレート画像と前記クエリ画像のすべての点の組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の変換を表わす行列を決定するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、離散的な値をとる関数の相関を求める技術に関し、特に、対比される画像の相関を求める技術に関する。
【背景技術】
【０００２】
３次元球面Ｓ２上で定義される関数の相関演算は、３次元データのレジストレーションや、球面レンズで撮影された画像のマッチングなどの分野で必要となる基本技術である。Ｓ２上の関数同士は、その表面を３自由度（ＳＯ（３））で移動できる（緯度経度とその周りの回転）。このため、その各々のパラメータで相関値を計算するためには、回転パラメータの離散化数をＢとした場合、Ｂ６のオーダーの計算量が必要となる。
【０００３】
これに対してユークリッド空間での畳み込み定理に相当する処理を、球面調和関数を用いて球面上で行ったＦＦＴ  ｏｎ  ＳＯ（３）（ＳＯＦＴ）が提案されている（非特許文献１）。ＳＯＦＴは、計算量をＢ４のオーダーに削減した。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】B. D. Wandelt and K. M. Gorski, 「Fast convolution on the sphere」Physical Review D, vol. 63, no. 12, p. 123002, 2001.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に記載された手法は、信号空間での相関演算に比べて処理を大幅に高速化できるが、依然として計算量が大きい。例えば、対象ワークの姿勢推定を１秒以内程度で実現することが求められる工場でのビンピッキングなどの用途には適用が困難である。
【０００６】
そこで、本発明は、離散的な値をとる関数の相関を高速に求めることができる演算装置を提供することを目的とする。このような演算装置は、画像どうしの相関を求めるのに好適に用いられる。
【課題を解決するための手段】
【０００７】
本発明の演算装置は、テンプレート画像を記憶したテンプレート記憶部と、探索対象のクエリ画像を取得するクエリ取得部と、画像の各点の法線ベクトルのヒストグラムを３次元球面上に表現した拡張ガウス画像に変換する画像変換部と、前記テンプレート画像及び前記クエリ画像の拡張ガウス画像における法線ベクトルのうち、閾値より大きい度数を有する法線ベクトルの３次元球面上の点を選択し、前記テンプレート画像と前記クエリ画像のそれぞれにおいて選択された点の位置及び度数の相関関係に基づいて、前記クエリ画像に対する前記テンプレート画像の回転に関する情報を求める回転算出部とを備える。
【０００８】
このようにテンプレート画像とクエリ画像との回転に関する情報を３次元球面上の点の相関関係に基づいて求める際に、閾値より大きい度数を有する法線ベクトルを用いることで計算量を低減し、高速に計算を行うことができる。なお、「閾値」は、正の値でもよいし、０でもよい。また、度数が大きい方から所定の個数の点を選べるような閾値を、その都度設定してもよい。
【０００９】
本発明の演算装置において、前記回転算出部は、前記テンプレート画像から選択された点のうちの１つの点と前記クエリ画像から選択された点のうちの１つの点とを対応させるすべての回転行列を求め、対応させた２つの点の度数に応じた重み付けをした値を、前記回転行列に投票する回転行列投票部と、前記テンプレート画像において選択された点と前記クエリ画像において選択された点のすべての組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の回転を表わす行列を決定する回転行列決定部とを備えてもよい。ここで、前記回転行列投票部は、対応させた２つの点の度数を乗じた値を重みとして用いてもよいし、対応させた２つの点の度数の差を分母に含む値を重みとして用いてもよい。
【００１０】
このようにテンプレート画像とクエリ画像の点を対応させる回転行列に対して、その点の度数に応じた重み付けをして投票することで、テンプレート画像とクエリ画像との相関を示す適切な回転行列を求めることができる。
【００１１】
本発明の演算装置は、前記回転算出部にて算出した回転に関する情報に基づいて前記テンプレート画像を回転した画像を生成し、回転により得られた画像と前記クエリ画像とのマッチングにより前記テンプレート画像と前記クエリ画像との並進に関する情報を求める並進算出部を備えてもよい。
【００１２】
このように回転算出部にて求めた回転の情報に基づいてテンプレート画像を回転して得られた画像を用いてクエリ画像とのマッチングを行うことにより、テンプレート画像とクエリ画像との並進に関する情報を適切に求めることができる。
【００１３】
本発明の別の態様の演算装置は、テンプレート画像を記憶したテンプレート記憶部と、探索対象のクエリ画像を取得するクエリ取得部と、画像を表現する複数のベクトルとそのベクトルの起点の位置を求めるベクトル算出部と、前記テンプレート画像のうちの１つのベクトルと前記クエリ画像のうちの１つのベクトルのその向き及び位置を対応させる変換行列を求め、対応させた２つの点のベクトルの大きさに応じた重み付けをした値を前記変換行列に投票する変換行列投票部と、前記テンプレート画像と前記クエリ画像のすべての点の組合せについて行った投票の結果に基づいて、前記クエリ画像に対する前記テンプレート画像の変換を表わす行列を決定する変換行列決定部とを備える。ここで、前記ベクトル算出部は、前記画像の各点の法線ベクトルを求めてもよい。
【００１４】
このように画像を表現する複数のベクトルとそのベクトルの起点の位置の相関関係に基づいて、テンプレート画像とクエリ画像とのマッチングを適切に行うことができる。
【００１５】
本発明の演算装置は、前記画像からオブジェクトの線分抽出を行う線分抽出部を備え、前記ベクトル算出部は、前記線分の中点を起点の位置とし、前記線分の方向をベクトルとして求めてもよい。
【００１６】
このように抽出された線分に基づいてベクトルと起点を定めることにより画像を表現する情報量を減らし、回転に関する情報の計算量を低減することができる。
【００１７】
本発明の演算方法は、演算装置が、テンプレート記憶部からテンプレート画像を読み出すステップと、前記演算装置が、探索対象のクエリ画像を取得するステップと、前記演算装置が、前記テンプレート画像と前記クエリ画像を、各点の法線ベクトルのヒストグラムを３次元球面上に表現した拡張ガウス画像にそれぞれ変換するステップと、前記演算装置が、前記テンプレート画像及び前記クエリ画像の拡張ガウス画像における法線ベクトルのうち、閾値より大きい度数を有する法線ベクトルの３次元球面上の点を選択し、前記テンプレート画像と前記クエリ画像のそれぞれにおいて選択された点の位置及び度数の相関関係に基づいて、前記クエリ画像に対する前記テンプレート画像の回転に関する情報を求めるステップとを備える。
【００１８】
このようにテンプレート画像とクエリ画像との回転に関する情報を３次元球面上の点の相関関係に基づいて求める際に、閾値より大きい度数を有する法線ベクトルを用いることで計算量を低減し、高速に計算を行うことができる。
【００１９】
本発明の別の態様の演算方法は、演算装置が、テンプレート記憶部からテンプレート画像を読み出すステップと、前記演算装置が、探索対象のクエリ画像を取得するステップと、前記演算装置が、前記テンプレート画像および前記クエリ画像のそれぞれについて、画像を表現する複数のベクトルとそのベクトルの起点の位置を求めるステップと、前記演算装置が、前記テンプレート画像および前記クエリ画像のそれぞれの複数のベクトルとその起点の位置の相関関係に基づいて、前記テンプレート画像と前記クエリ画像との回転に関する情報を求めるステップとを備える。
【００２０】
このように画像を表現する複数のベクトルとそのベクトルの起点の位置の相関関係に基づいて、テンプレート画像とクエリ画像とのマッチングを適切に行うことができる。
【００２１】
本発明のプログラムは、上記演算方法の各ステップをコンピュータに実行させるプログラムである。
【発明の効果】
【００２２】
本発明は、テンプレート画像とクエリ画像との相関を３次元球面上の点に基づいて求める際に、閾値より大きい度数を有する法線ベクトルを用いることで計算量を低減し、高速に計算を行うことができる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施の形態の演算装置の構成を示す図である。
【図２】拡張ガウス画像について説明するための図である。
【図３】テンプレート画像とクエリ画像のＥＧＩの例を示す図である。
【図４】ＥＧＩ上の点を一致させる回転行列の例を示す図である。
【図５】回転行列の投票について説明するための図である。
【図６】オブジェクトの姿勢を求める動作を示すフローチャートである。
【図７】ＥＧＩマッチングの動作を示すフローチャートである。
【図８】第２の実施の形態の演算装置の構成を示す図である。
【図９】第２の実施の形態の演算装置の動作を示す図である。
【図１０】処理の対象となるクエリ画像とテンプレート画像の例を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態に係る演算装置について図面を参照しながら説明する。以下で説明する演算装置は、図１０（ａ）に示すようにバラ積みされたブロックのレジストレーション（位置合わせ）を例として説明する。図１０（ａ）は、探索が行われる対象である多数のブロックを示すクエリ画像である。図１０（ｂ）は、図１０（ａ）に示すバラ積みの中から見つけるべきブロックを示すテンプレート画像である。
【００２５】
演算装置は、図１０（ａ）に示すクエリ画像から、図１０（ｂ）に示すテンプレート画像に該当するオブジェクトがどのような姿勢であるかを検出する。ここで、「姿勢」とは、３方向の回転自由度と３方向の並進自由度とを有し、合わせて６つの自由度を有する。演算装置は、テンプレート画像に対応するオブジェクトの姿勢を求める。つまり、テンプレート画像に係るオブジェクトと相関の高いオブジェクトがどの程度回転した状態で、空間内のどの位置にあるかを求める。このようなレジストレーションは、例えば、工業製品をピッキングするロボットにおいて重要な技術である。
【００２６】
本実施の形態の演算装置が扱う図１０（ａ）及び図１０（ｂ）に示すデプス画像である。デプス画像は３次元空間で視点と画像内のオブジェクトの距離を表す信号であり、デプス画像は、距離画像と称されることもある。デプス画像は、公知の方法によって取得することができ、例えば、オブジェクトの色画像からステレオマッチング等の公知の方法により作成してもよい。
【００２７】
（第１の実施の形態）
図１は、第１の実施の形態の演算装置１の構成を示す図である。演算装置１が備える各構成の詳しい説明に先立って、クエリ画像の中からテンプレート画像に対応するオブジェクトの姿勢を検出する処理について説明する。
【００２８】
演算装置１がオブジェクトの姿勢を検出する処理は、テンプレートに係るオブジェクトの回転を求める処理と、オブジェクトの並進を求める処理に分けられる。すなわち、演算装置１は、まず、回転のパラメータを決定し、その後に回転パラメータを用いてテンプレート画像のレンダリングを行い、レンダリングしたテンプレート画像を用いて並進パラメータを求める。オブジェクトの回転を求める処理は、オブジェクトの並進の情報を捨象した拡張ガウス画像での処理を行う。
【００２９】
［拡張ガウス画像（ＥＧＩ）］
図２（ａ）及び図２（ｂ）は、拡張ガウス画像について説明する図である。図２（ａ）は、テンプレートのデプス画像の例を示す図である。ここでは、図２（ａ）に示すように立方体を斜め下から撮影した画像を例とする。
【００３０】
３次元空間内のオブジェクトの各点での単位法線ベクトルの始点を原点に置くと、その終点は単位球上に分布し、曲面上の各点から単位球面への対応が与えられる。このようにして得られた球面表示を拡張ガウス画像（ＥＧＩ：Extended Gaussian Image）という。オブジェクトが図２（ａ）に示すような立方体の場合には、６つの平面に対応して各平面の法線ベクトルの終点が球面上に分布する。図２（ｂ）では、図２（ａ）において見えている３つの平面の法線ベクトルの終点を示している。ＥＧＩは、オブジェクトが回転した場合にはその回転にしたがって法線ベクトルの終点が回転するが、オブジェクトの並進運動には依存しない。つまり、ＥＧＩでは、姿勢に関する６つの自由度のうちの並進運動に関する３つの自由度の情報が無視され、回転運動に関する３つの自由度のみを取り出すことができる。
【００３１】
また、ＥＧＩは、単位法線ベクトルの終点の分布のヒストグラムである。同じ方向の法線ベクトルが多数存在する場合には、その方向の単位法線ベクトルの終点の度数が大きくなる。例えば、図２（ａ）に示すように、オブジェクトが立方体の場合には、６つの平面の単位法線ベクトルの度数が高くなり、それ以外の方向の度数は０となる。
【００３２】
［回転行列の算出］
演算装置１は、クエリ画像のＥＧＩと、テンプレート画像のＥＧＩとを比較して、テンプレート画像をどのように回転すると、テンプレート画像とクエリ画像との一致度が高くなるかを求める。
【００３３】
図３（ａ）は、テンプレート画像のＥＧＩの例を示す図、図３（ｂ）は、クエリ画像のＥＧＩを示す図である。なお、図３（ｂ）は、図２（ａ）に示す立方体のＥＧＩである。クエリ画像のＥＧＩを関数ｆ、テンプレート画像のＥＧＩを関数ｇとし、テンプレート画像の回転をＲ（Ｒ∈ＳＯ（３））とすると、テンプレート画像とクエリ画像との相関値は、以下の畳み込み演算の式（１）で表わされる。
【数１】
0006616729.tif 000002
【００３４】
この相関値の計算を信号空間で行う場合に、すべてのＲ∈ＳＯ（３）に対して、関数ｇを回転して、関数ｆと内積をとる必要があるため、計算量が非常に多くなる。各回転パラメータの離散化数をＢとすると、Ｂ６のオーダーの計算量が必要となる。
【００３５】
ところで、現実空間内のオブジェクトは平面を有する場合が多いので、そのＥＧＩ上での信号はスパースになる。例えば、図３（ｂ）に示す例では、立方体の６つの面の法線方向のみに値を有し、それ以外の方向については値を持たない（つまり度数＝０）。本実施の形態では、値を有する法線ベクトルのみを取り出し、式（１）をデルタ関数の線形和に分割する。
【数２】
0006616729.tif 000003
【００３６】
式（２）において、関数ｆは、ＥＧＩ上において１〜Ｎ１のＮ１個の点を有し、関数ｇは、ＥＧＩ上において１〜Ｎ２までのＮ２個の点を有する。なお、本実施の形態では、テンプレート画像およびクエリ画像には平面が多く、ＥＧＩにおける信号がスパースな場合を例としているので、値を有する法線ベクトルを取り出したが、ＥＧＩ上で値を有する点が多い場合には、所定の閾値を用いて、値の大きい法線ベクトルを抽出することが好ましい。
【００３７】
上記式（２）は、次の式（３）のようにデルタ関数どうしの線形和で表現することができる。
【数３】
0006616729.tif 000004
【００３８】
ここで、この式（３）の個々の要素は、ＥＧＩ上の一点同士の相関を考えることになる。つまり回転行列Ｒは、関数ｆ上の点ｘと関数ｇ上の点ｙの関係を与える回転行列である。
【００３９】
図３（ａ）は、関数ｆを示す点を表わし、そのうちの１つをｘとしている。図３（ｂ）は関数ｇを示す点を表わし、そのうちの１つをｙとしている。図４（ａ）に示すように、点ｘと点ｙに着目した場合、回転行列Ｒは、点ｙを点ｘに移動させる回転行列である。
ｘ＝Ｒｙ    ・・・(4)
【００４０】
図４（ａ）及び図４（ｂ）に示すＥＧＩにおいては、回転移動後のオブジェクトの向きを考慮していない。回転に関しては３自由度を有しているが、オブジェクトの向きを考慮しないで点ｙを点ｘに移動させるには２方向の回転で足りるので、１自由度が余分にある。したがって、点ｙを点ｘに移動させる回転行列Ｒは１つには定まらず、無数に存在する。
【００４１】
点ｙを点ｘに移動させる回転は、式（５）に示すように、ｘの周りにおける任意角度λの回転と、ｘ×ｙ（外積）の周りにおける｜ｘ×ｙ｜の回転に分解できる（もちろん、ｙの周りの任意角度の回転とｙ×ｘの回転に分解しても同じである）。なお、式（５）において、［ｘ］はｘ周りの回転であることを示し、λ［ｘ］はｘ周りにλだけ回転したことを示す。
ｘ＝Ｒｙ＝Ｒ１Ｒ２ｙ
ここで、Ｒ１＝ exp(λ[ｘ])、Ｒ２＝ exp([ｘ×ｙ])    ・・・(5)
【００４２】
式（５）においてλは任意であるので、これを−π〜πまで変化させることで無数の回転行列Ｒを求めることができる。この回転行列ＲをＳＯ（３）空間（投票空間）において投票すると、無数の回転行列Ｒは、図４（ｂ）に示すように閉曲線を描く。
【００４３】
ここまでの説明では、関数ｆ上の１つの点ｘと関数ｇ上の１つの点ｙに着目したが、関数ｆ，ｇ上の別の点（ここでは点ｘ´、ｙ´とする）に着目して回転行列を求めると、例えば、図５（ａ）に示すように別の閉曲線が得られる。２つの閉曲線に交点は回転行列が同じであることを示す。つまり、交点で示す要素を持った回転行列Ｒは、点ｙを点ｘに回転させると同時に、点ｙ´を点ｘ´に回転させる行列である。
【００４４】
関数ｆと関数ｇのすべての点の組合せについて、その相関関係を示す回転行列Ｒを求めてＳＯ（３）空間に投票していくことで、図５（ｂ）に示すように多数の回転行列Ｒが積み重なっていき、畳み込みＧ（Ｒ）を求めることができる。最も多く投票されたピークの点が関数ｆと関数ｇの相関を示す回転行列Ｒとなる。つまり、最も多く投票された回転行列Ｒだけテンプレート画像を回転させると、テンプレート画像とクエリ画像との相関が最も高くなると求めることができる。
【００４５】
なお、図５（ａ）及び図５（ｂ）においては、回転行列Ｒを示す閉曲線の太さが異なっているが、これは点ｘの度数と点ｙの度数の内積の大きさに応じて太さを変えて描いたものである。点ｘの度数と点ｙの度数の内積が大きいほど、つまり、点ｘと点ｙの度数が大きいほど、そのような度数の大きい点どうしを一致させるような回転行列Ｒは、テンプレート画像の回転を正確に表すものである。なぜなら、法線ベクトルの度数が大きいということはその方向を法線とする面が広いことを示し、広い面が一致する方が狭い面が一致するよりも、オブジェクトの一致の度合いが大きいからである。したがって、回転行列を投票する際には、内積に応じた値を投票する。なお、回転行列Ｒの計算をロドリゲス表現のまま行うと計算量が大きいので、四元数を用いて計算を行うことが好ましい。以上に、テンプレート画像の回転を求める処理について説明した。
【００４６】
本実施の形態で用いる計算は、関数ｆのＥＧＩ上における点の個数Ｎ１と、関数ｇの点の個数Ｎ２の組合せの数だけ行えばよいので、Ｎ１・Ｎ２回行えばよい。したがって、計算量を低減でき、畳み込み演算を高速に行うことが可能である。
【００４７】
テンプレート画像の回転行列を求めた後は、求めた回転行列を用いて、テンプレート画像に係るオブジェクトを回転した画像をレンダリングし、レンダリングしたテンプレート画像とクエリ画像とのマッチングを行って、オブジェクトの並進行列を求める。テンプレート画像を回転させることで、テンプレート画像に係るオブジェクトの向きがクエリ画像と揃うので、クエリ画像とのマッチングを適切に行うことができる。
【００４８】
［演算装置の構成］
図１を参照しながら、本実施の形態に係る演算装置１の構成について説明する。演算装置１は、探索が行われる空間を撮影するクエリ画像撮影部１０と、テンプレートのデプス画像を記憶したテンプレート記憶部１１と、クエリ画像からテンプレート画像に対応するオブジェクトの姿勢を検出する演算処理を行う制御部２０と、演算結果を出力する出力部１２とを備えている。
【００４９】
テンプレート画像は、例えば、ロボットによるピッキングを行う場合であれば、ロボットが掴むべきオブジェクトのデプス画像である。この場合、クエリ画像撮影部１０にて撮影する探索空間は、ロボットが作業を行う空間である。
【００５０】
制御部２０は、ＥＧＩ変換部２１と、回転行列算出部２２と、並進行列算出部２６とを有している。ＥＧＩ変換部２１は、クエリ画像撮影部１０にて撮影されたクエリ画像、および、テンプレート記憶部１１から読み出したテンプレート画像をＥＧＩに変換する機能を有する。
【００５１】
回転行列算出部２２は、クエリ画像に対するテンプレート画像の回転を求める構成として、処理対象点抽出部２３と、回転行列投票部２４と、回転行列決定部２５とを有している。処理対象点抽出部２３は、ＥＧＩ上の点のうち、回転行列Ｒの決定に用いる点を抽出する機能を有する。処理対象点抽出部２３は、法線ベクトルのヒストグラムにおいて所定の閾値以上の度数を有する点を処理対象点として抽出する。処理対象点を絞り込むことで回転行列の計算負荷を軽減すると共に、度数の大きい点を用いることにより、処理対象点を減らしても求める回転行列の精度を保つことができる。
【００５２】
回転行列投票部２４は、図３〜図５を用いて説明したとおり、テンプレート画像のＥＧＩ上の処理対象点とクエリ画像のＥＧＩ上の処理対象点を回転により一致させる回転行列を投票空間にて投票する機能を有する。回転行列決定部２５は、回転行列の投票結果に基づいて、最も多く投票された回転行列を、クエリ画像に対するテンプレート画像の回転を表わす行列として決定する機能を有する。
【００５３】
並進行列算出部２６は、回転行列算出部２２にて算出された回転行列を用いてテンプレート画像を回転させた画像をレンダリングした後に、テンプレート画像とクエリ画像とのマッチングを行い、クエリ画像のどこにテンプレート画像が存在するかを検出し、その並進行列を求める機能を有する。
【００５４】
演算装置１は、ハードウェアとしては、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、キーボート、マウス、ディスプレイ等を備えたコンピュータによって構成される。上記した制御部２０の各構成を実現するためのモジュールを有するプログラムをＲＯＭに記憶しておき、ＣＰＵは、ＲＯＭからプログラムを読み出して実行することにより、演算装置１を実現する。
【００５５】
［演算装置の動作］
図６は、演算装置１によってテンプレート画像に係るオブジェクトをクエリ画像から検出し、その姿勢を求める動作を示すフローチャートである。演算装置１は、まず、クエリ画像撮影部１０にて、探索を行う空間を撮影し、クエリ画像を取得する（Ｓ１０）。また、演算装置１は、テンプレート記憶部１１から、所望のテンプレート画像を読み出す（Ｓ１１）。
【００５６】
次に、演算装置１は、クエリ画像及びテンプレート画像をＥＧＩに変換し、ＥＧＩマッチングにより、テンプレート画像のクエリ画像に対する回転を求める（Ｓ１２）。この処理については、図７を参照して後述する。
【００５７】
演算装置１は、ＥＧＩマッチングで算出した回転行列を用いて、テンプレート画像に係るオブジェクトを回転した画像をレンダリングし、レンダリングしたテンプレート画像とクエリ画像とのマッチングを行って、オブジェクトの並進行列を求める（Ｓ１３）。演算装置１は、以上の処理により求めた回転行列と並進行列をオブジェクトの姿勢の算出結果として出力する（Ｓ１４）。
【００５８】
図７は、ＥＧＩマッチングの動作を示すフローチャートである。演算装置１は、まず、クエリ画像とテンプレート画像をＥＧＩに変換し（Ｓ２０）、それぞれのＥＧＩにおいて、所定の閾値以上の度数を有する点を抽出する（Ｓ２１）。
【００５９】
続いて、演算装置１は、クエリ画像のＥＧＩとテンプレート画像のＥＧＩから抽出された点のすべての組合せについて、各組合せでクエリ画像のＥＧＩ上の点とテンプレート画像のＥＧＩ上の点を一致させる回転行列をすべて求め、求めた回転行列を投票空間に投票する。
【００６０】
具体的には、まず、クエリ画像のＥＧＩから選択した１つの点（「点ｘ」とする）とテンプレート画像のＥＧＩから１つの点（「点ｙ」とする）を選択し、点ｙを点ｘに移動させる回転行列をすべて求める（Ｓ２２）。次に、求めたすべての回転行列Ｒを投票空間に投票する（Ｓ２３）。このとき、回転行列Ｒを求めた点ｘと点ｙの度数の内積を重みとして乗じて投票する。演算装置１は、クエリ画像とテンプレート画像のＥＧＩから抽出した点のすべての組合せについて回転行列を求める処理を行ったか否かを判定する（Ｓ２４）。
【００６１】
処理対象点のすべての組合せについての処理が完了していなければ（Ｓ２４でＮＯ）、処理を行っていない別の点の組合せについて回転行列を求め（Ｓ２２）、投票空間に投票する処理を行う（Ｓ２３）。処理対象点のすべての組合せについての処理が完了したら（Ｓ２４でＹＥＳ）、最も多く投票された回転行列をクエリ画像に対するテンプレート画像の回転行列として選択する（Ｓ２５）。
【００６２】
ここでは、最も多く投票された回転行列を選択する例について説明しているが、上位から数個の回転行列を候補の回転行列として選択することとしてもよい。複数の候補の回転行列を選択した場合には、図６で示した並進行列の算出の処理（Ｓ１３）を、各候補の回転行列を用いて行い、クエリ画像とテンプレート画像とのマッチングをうまく行えた回転行列を、クエリ画像とテンプレート画像との回転行列として決定してもよい。
【００６３】
以上、第１の実施の形態の演算装置１について説明した。本実施の形態の演算装置１は、テンプレート画像とクエリ画像をＥＧＩに変換し、ＥＧＩにおいて閾値より大きい度数を有する法線ベクトルの終点を対応させる回転行列を求めるので、計算量を低減し、高速に計算を行うことができる。
【００６４】
（変形例）
第１の実施の形態の演算装置１では、ＥＧＩ上でクエリとテンプレートとの相関を求める際に、回転行列に乗じる重みとして法線ベクトルの度数の内積を例として挙げたが、重みは度数の内積に限定されない。ＥＧＩ上で同じ方向を有する法線ベクトルの度数を原点からの距離として表わすことも可能である。その場合、φを各点群の原点からの距離を測る関数として以下のように定義する。なお、度数を距離として表わしているので、下の式は、度数の式とみることもできる。
【数４】
0006616729.tif 000005
【００６５】
φは、クエリ画像から選んだ点とテンプレート画像から選んだ点の原点からの距離の差が大きくなればなるほど、値が小さくなる関数である。なお、分母に１を加えているのは、クエリとテンプレートの度数が等しいときに、コンピュータによる演算処理がエラーにならないようにするための処置である。
【００６６】
変形例に係る演算装置１では、クエリ画像とテンプレート画像との相関を以下の式（７）によって表わす。ここで、関数Ｉは、２つの引数が等しい場合に１を返し、異なる場合に０を返すインディケータ関数である。
【数５】
0006616729.tif 000006
変形例に係る演算装置１では、この関数Ｇ（Ｒ）を最大にする回転行列Ｒを求める。
【００６７】
（第２の実施の形態）
図８は、第２の実施の形態の演算装置２の構成を示す図である。第１の実施の形態の演算装置１は、テンプレート画像とクエリ画像とをＥＧＩに変換して最初に回転行列を算出した後に、回転させたテンプレート画像をレンダリングして並進行列を算出するという２段階の処理を行った。第２の実施の形態の演算装置２では、第１の実施の形態において回転行列を求める際に行った処理を６次元（回転３自由度＋並進３自由度）に拡張し、回転行列と並進行列を同時に求める。
【００６８】
第２の実施の形態の演算装置２は、テンプレート画像、及びクエリ画像を構成する各点における法線ベクトルを求める。テンプレート画像から抽出した法線ベクトルをｍｉ，その位置をｕｉ、クエリ画像から抽出した法線ベクトルをｎｉ，その位置をｔｉとすると、テンプレート画像とクエリ画像との相関値は以下の式（８）で表わされる。
【数６】
0006616729.tif 000007
【００６９】
関数Ｉは、２つの引数が等しい場合に１を返し、異なる場合に０を返すインディケータ関数である。演算装置２は、テンプレート画像から抽出した点とクエリ画像から抽出した点について、それらの点の法線ベクトル及び位置を一致させる回転行列Ｒおよび並進行列Ｔをすべて求め、投票空間において投票する。この投票空間は、第１の実施の形態とは異なり、回転３自由度、並進３自由度の６つの自由度を有する投票空間である。この投票をテンプレート画像とクエリ画像のすべての点の組合せについて行う。そして、演算装置２は、投票空間において最も多く投票された回転行列および並進行列を、テンプレート画像に係るオブジェクトの姿勢として求める。
【００７０】
図８を参照して、第２の実施の形態の演算装置２の構成について説明する。演算装置２は、探索が行われる空間を撮影するクエリ画像撮影部１０と、テンプレート画像を記憶したテンプレート記憶部１１と、クエリ画像からテンプレートの画像に対応するオブジェクトの姿勢を検出する演算処理を行う制御部２０と、演算結果を出力する出力部１２とを備えている。
【００７１】
制御部２０は、法線ベクトル抽出部３１と、変換行列投票部３２と、変換行列決定部３３とを有している。法線ベクトル抽出部３１は、テンプレート画像とクエリ画像を構成する各点における法線ベクトル及びその位置を求める機能を有している。各点の法線ベクトルは、各点を囲む三角形ポリゴンまたは四角形ポリゴンを形成することで、その面の法線によって規定することができる。
【００７２】
変換行列投票部３２は、テンプレート画像から抽出した点とクエリ画像から抽出した点について、それらの点の法線ベクトル及び位置を一致させる回転行列および並進行列をすべて求め、投票空間において投票する。
【００７３】
変換行列決定部３３は、投票空間において最も多く投票された回転行列および並進行列を、クエリ画像内にあるテンプレート画像に係るオブジェクトの姿勢として求める機能を有する。
【００７４】
図９は、第２の実施の形態の演算装置２によって、テンプレート画像に係るオブジェクトの姿勢を求める動作を示すフローチャートである。演算装置２は、クエリ画像撮影部１０にて、探索空間を撮影してクエリ画像を取得する（Ｓ３０）。演算装置２は、テンプレート記憶部１１からテンプレート画像を読み出す（Ｓ３１）。
【００７５】
続いて、演算装置２は、クエリ画像およびテンプレート画像のそれぞれについて、画像を構成する各点の法線ベクトルを抽出し、その点の位置のデータと関連付けて取得する（Ｓ３２）。
【００７６】
演算装置２は、クエリ画像とテンプレート画像のそれぞれから選択した点について、その法線ベクトルおよび位置を一致させる変換を行うための変換行列、すなわち、回転行列と並進行列をすべて求める（Ｓ３３）。そして、求めた回転行列および並進行列を投票空間において投票する（Ｓ３４）。演算装置２は、すべての点の組合せについて、変換行列を求める処理を行ったか否かを判定する（Ｓ３５）。すべての点の組合せについて処理を完了していない場合には（Ｓ３５でＮＯ）、まだ処理を行っていない別の点の組合せを選択し、その法線ベクトル及び位置を一致させる変換行列を求める処理を行い（Ｓ３３）、その結果を投票する（Ｓ３４）。演算装置２は、クエリ画像とテンプレート画像のすべての点の組合せについて処理が完了するまで（Ｓ３５でＹＥＳ）、上記の投票を繰り返し行う。
【００７７】
すべての点の組合せについて、変換行列の投票が完了したら（Ｓ３５でＹＥＳ）、演算装置２は、最も多く投票された並進行列および回転行列を選択し（Ｓ３６）、テンプレート画像に係るオブジェクトの姿勢として求める。演算装置２は、求めた姿勢のデータを出力する（Ｓ３７）。
【００７８】
以上、第２の実施の形態の演算装置２について説明した。第２の実施の形態の演算装置２は、クエリ画像とテンプレート画像を表現する複数のベクトルとそのベクトルの起点の位置との相関関係に基づいて、テンプレート画像とクエリ画像とのマッチングを適切に行うことができる。これにより、テンプレート画像に係るオブジェクトがクエリ画像内で大きく傾いている場合であっても、オブジェクトの姿勢を求めることが可能である。
【００７９】
（変形例）
上記に説明した第２の実施の形態の演算装置２では、画像を構成する各点の法線ベクトルとその位置に基づいて、クエリ画像とテンプレート画像のマッチングを行う例について説明したが、計算量を低減するために、前処理として画像から線分抽出を行ってもよい。画像から線分抽出を行い、線分の方向をベクトルとし、線分の中点を位置とすることにより、第２の実施の形態で説明したのと同じ要領で、オブジェクトの姿勢を求めることができる。線分は方向を持たず、２つの方向を観念することができるが、例えば、ｘｙｚ座標系の正の方向をベクトルの方向として定義することができる。
【００８０】
なお、線分を用いた場合には、求めた変換行列に投票する段階においては、線分の長さを重みとして乗じて、投票を行ってもよい。長い線分が重なるような変換行列の方が、短い線分が重なるような変換行列よりも適切な変換行列である可能性が高いので、重みを付けることにより、変換行列の精度を高めることができる。
【００８１】
以上、本発明の演算装置について実施の形態を挙げて詳細に説明したが、本発明の演算装置は上記した実施の形態に限定されるものではない。上記した実施の形態では、クエリ画像とテンプレート画像との相関を求める例を挙げたが、本発明の演算装置は、画像以外の関数の相関を求めるために用いることも可能である。
【産業上の利用可能性】
【００８２】
本発明は、クエリ画像中から所望のオブジェクトの姿勢を高速に検出することができ、ロボットの制御等に有用である。
【符号の説明】
【００８３】
１，２  演算装置
１０  クエリ画像撮影部
１１  テンプレート記憶部
１２  出力部
２０  制御部
２１  ＥＧＩ変換部
２２  回転行列算出部
２３  処理対象点抽出部
２４  回転行列投票部
２５  回転行列決定部
２６  並進行列決定部
３１  法線ベクトル抽出部
３２  変換行列投票部
３３  変換行列決定部
【図１】
0006616729.tif 000008
【図２】
0006616729.tif 000009
【図３】
0006616729.tif 000010
【図４】
0006616729.tif 000011
【図５】
0006616729.tif 000012
【図６】
0006616729.tif 000013
【図７】
0006616729.tif 000014
【図８】
0006616729.tif 000015
【図９】
0006616729.tif 000016
【図１０】
0006616729.tif 000017