(57)【要約】【課題】画像内の３次元物体の姿勢変動およびサイズの変動に対してロバストに識別する。【解決手段】対象物体に対応するモデルの特徴点の特徴量とモデルに定められた３次元座標の原点から特徴点への３次元方向ベクトルとにより記述される物体モデルを入力するモデル入力工程と、対象物体を撮像した画像を取得する取得工程と、特徴量に基づいて、物体の特徴点の、画像上における２次元特徴点の位置を検出する検出工程と、物体モデルの位置および姿勢を変更する変更工程と、変更された各位置および姿勢における物体モデルの特徴点および３次元座標の原点を投影特徴点および投影原点として画像上に投影する投影工程と、投影原点から２次元特徴点への第１方向ベクトルと投影原点から投影特徴点への第２方向ベクトルとの一致度を算出する算出工程と、算出された各特徴点についての一致度に基づく評価値が最大となる物体モデルの位置および姿勢を対象物体の位置姿勢として決定する決定工程とを有する。【選択図】  図８
2012043308.tif 000002
【特許請求の範囲】
【請求項１】
モデル入力手段が、対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた３次元座標の原点から前記特徴点への３次元方向ベクトルと、により記述される物体モデルを入力するモデル入力工程と、
取得手段が、前記対象物体を撮像した画像を取得する取得工程と、
検出手段が、前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を２次元特徴点の位置として検出する検出工程と、
変更手段が、前記物体モデルの位置および姿勢をそれぞれ変更する変更工程と、
投影手段が、前記変更工程で変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記３次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影工程と、
算出手段が、前記投影原点から前記２次元特徴点への第１方向ベクトルと、前記投影原点から前記投影特徴点への第２方向ベクトルとの一致度を算出する算出工程と、
決定手段が、前記算出工程で算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定工程と、
を有することを特徴とする位置姿勢決定方法。
【請求項２】
前記特徴量が、前記特徴点の色相を示す色相情報であることを特徴とする請求項１に記載の位置姿勢決定方法。
【請求項３】
前記算出工程は、前記第１方向ベクトルと前記第２方向ベクトルとの内積を正規化した値を前記一致度として算出することを特徴とする請求項１又は２に記載の位置姿勢決定方法。
【請求項４】
前記物体モデルが、前記対象物体を撮像する撮像手段から前記対象物体までの奥行き方向の位置を決定するのに必要な情報として、前記対象物体の中心から前記特徴点までの絶対距離の情報を更に有し、
前記決定工程は、前記絶対距離の情報に基づいて、前記画像上の前記対象物体の奥行き方向の位置も併せて決定することを特徴とする請求項１乃至３の何れか１項に記載の位置姿勢決定方法。
【請求項５】
座標決定手段が、対象物体に対して３次元座標系を決定する座標決定工程と、
位置決定手段が、前記対象物体の特徴を示す特徴点の前記３次元座標系における位置を決定する位置決定工程と、
生成手段が、前記特徴点の特徴を示す特徴量と、前記３次元座標の原点から前記特徴点の３次元的な位置への方向を示す方向情報とを含む物体モデルを、前記対象物体の３次元モデルとして生成する生成工程と、
を有することを特徴とする物体モデル生成方法。
【請求項６】
前記方向情報が、前記座標決定工程で決定された前記３次元座標系における方位角および仰角であることを特徴とする請求項５に記載の物体モデル生成方法。
【請求項７】
前記方向情報が、前記座標決定工程で決定された前記３次元座標系における３次元の方向ベクトルであることを特徴とする請求項５に記載の物体モデル生成方法。
【請求項８】
前記３次元モデルが、前記対象物体を撮像する撮像手段から前記対象物体までの奥行き方向の位置を決定するのに必要な情報として、前記対象物体の中心から前記特徴点までの絶対距離の情報を更に有することを特徴とする請求項５乃至７の何れか１項に記載の物体モデル生成方法。
【請求項９】
対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた３次元座標の原点から前記特徴点への３次元方向ベクトルと、により記述される物体モデルを入力するモデル入力手段と、
前記対象物体を撮像した画像を取得する取得手段と、
前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を２次元特徴点の位置として検出する検出手段と、
前記物体モデルの位置および姿勢をそれぞれ変更する変更手段と、
前記変更手段により変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記３次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影手段と、
前記投影原点から前記２次元特徴点への第１方向ベクトルと、前記投影原点から前記投影特徴点への第２方向ベクトルとの一致度を算出する算出手段と、
前記算出手段により算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定手段と、
を備えることを特徴とする位置姿勢決定装置。
【請求項１０】
対象物体に対して３次元座標系を決定する座標決定手段と、
前記対象物体の特徴を示す特徴点の前記３次元座標系における位置を決定する位置決定手段と、
前記特徴点の特徴を示す特徴量と、前記３次元座標の原点から前記特徴点の３次元的な位置への方向を示す方向情報とを含む物体モデルを、前記対象物体の３次元モデルとして生成する生成手段と、
を備えることを特徴とする物体モデル生成装置。
【請求項１１】
請求項１に記載の位置姿勢決定方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項５に記載の物体モデル生成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元画像中に存在する３次元的な物体の姿勢の変動等に対して、ロバストに検出や識別を行うための位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラムに関する。
【背景技術】
【０００２】
２次元画像中に存在する物体の検出や識別を行う手法として、現在までに様々な手法が提案されている。例えば、非特許文献１に開示されている手法に代表されるように、物体の局所的な領域の外観と、その配置関係をモデルとして利用するといった手法が挙げられる。また、非特許文献２に開示されている手法に代表されるように、物体の局所的な特徴の出現頻度をモデルとして利用するといった手法も挙げられる。これは一般に、Ｂａｇｓ ｏｆ ｋｅｙｐｏｉｎｔｓ、 Ｂａｇｓ ｏｆ Ｆｅａｔｕｒｅｓ、Ｂａｇｓ ｏｆ Ｗｏｒｄｓ等と称される。
【０００３】
非特許文献１に開示されている手法のように、物体の局所的な外観とその配置関係をモデルとして利用する手法では、基本的に、この配置関係を２次元画像上の配置関係として確率的に記述する。そのため、３次元的な物体の識別において、物体の向き（姿勢）が大きく変化するような場合への対応が困難である。これに対し、非特許文献２に開示されている手法のように、物体の局所的な特徴の出現頻度をモデルとして利用する手法では、各局所的な特徴の配置関係を考慮していない。そのため、非特許文献１のような手法と比較して、物体の向きの変動に対応できる可能性が高い。
【０００４】
しかし、非特許文献１の手法をベースとし、そこに局所的な特徴の配置関係の情報を効果的に付加することにより、識別性能の向上を実現させた非特許文献３に開示されている手法が示唆するように、局所的な特徴の配置関係は識別性能の向上に重要であると考えられる。ただし、非特許文献３に開示されているの手法では、非特許文献１の手法と同様に、２次元画像上の配置関係を情報として用いるため、非特許文献１と同様に、物体の向きの変動への対応が困難である。３次元的な物体の向きの変動に対応する手法としては、非特許文献４に開示されている３Ｄモデルに局所的な特徴を貼り付けたモデルを用いた手法が挙げられる。また、特許文献１のように、物体の向きが様々に変動した時の、それぞれの向きについて、局所的な特徴の配置関係をモデル化し、それを用いて、まず大まかに識別を行って、その後、３次元的なエッジの配置関係をモデル化したものにより識別する手法もある。
【０００５】
非特許文献４や特許文献１に代表される上記手法は、局所的な特徴の３次元的な配置関係や、様々な物体の向きに対応した、局所的な特徴の２次元的な配置関係を用いているので、３次元物体の向きの変動に対応することができる。しかし、画像内における物体のサイズの変動に対応するためには、画像を様々に拡大、縮小させた画像を用いるか、モデル自体を拡大、縮小しなければならない。画像内における物体のサイズの変動は、例えば、物体とカメラの距離の変動や、カメラの焦点距離の変動により発生する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７‐２４９５９２号公報
【特許文献２】特開平１１−９６３７４号公報
【非特許文献】
【０００７】
【非特許文献１】R. Fergus, P. Perona, A. Zisserman, “Object Class Recognition by Unsupervised Scale-Invariant Learning”, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 2, pp.264-271, 2003
【非特許文献２】G. Csurka, C. R. Dance, L. Fan, J. Willamowski, C. Bray, “Visual Categorization with Bags of Keypoints”, ECCV Workshop on Statistical Learning in Computer Vision, pp.59-74, 2004
【非特許文献３】K. Grauman, T. Darrell, “The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features”, IEEE International Conference on Computer Vision, Vol. 2, pp 1458-1465, 2005
【非特許文献４】P. Yan, S. M. Khan, M. Shah, “3D Model based Object Class Detection in An Arbitrary View”, IEEE International Conference on Computer Vision, pp. 1-6, 2007
【非特許文献５】G. Reitmayr, T. W. Drummond, “Going out: Robust Model-based Tracking for Outdoor Augmented Reality”, IEEE/ACM International Symposium on Mixed and Augmented Reality, pp. 109-118, 2006
【非特許文献６】D. G. Lowe, “Object Recognition from Local Scale-Invariant Features”, IEEE International Conference on Computer Vision, Vol. 2, pp. 1150-1157, 1999
【非特許文献７】T. Kadir, M. Brady, “Saliency, Scale and Image Description”, International Journal of Computer Vision, Vol. 45, No. 2, pp. 83-105, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、従来の技術では、物体の３次元的な向きの変動に対応可能であり、且つ、画像内における物体のサイズの変動に対して、ロバストに２次元画像中に存在する３次元的な物体の検出や識別を行うことはできないという課題がある。
【０００９】
上記の課題に鑑み、本発明は、２次元画像中に存在する３次元的な物体を、物体の姿勢（物体の３次元的な向き）の変動に対応しつつ、画像内における物体のサイズの変動に対して、ロバストに検出や識別を行うことを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する、本発明に係る位置姿勢決定方法は、
モデル入力手段が、対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた３次元座標の原点から前記特徴点への３次元方向ベクトルと、により記述される物体モデルを入力するモデル入力工程と、
取得手段が、前記対象物体を撮像した画像を取得する取得工程と、
検出手段が、前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を２次元特徴点の位置として検出する検出工程と、
変更手段が、前記物体モデルの位置および姿勢をそれぞれ変更する変更工程と、
投影手段が、前記変更工程で変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記３次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影工程と、
算出手段が、前記投影原点から前記２次元特徴点への第１方向ベクトルと、前記投影原点から前記投影特徴点への第２方向ベクトルとの一致度を算出する算出工程と、
決定手段が、前記算出工程で算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定工程と、
を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、２次元画像中に存在する３次元的な物体を、物体の姿勢（物体の３次元的な向き）の変動に対応しつつ、画像内における物体のサイズの変動に対してロバストに検出や識別を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係る物体モデルを記述する対象物体、および、物体に対する３次元の物体座標系を示す図。
【図２】（ａ）第１実施形態に係る物体モデル記述装置の処理ブロックを示す図、（ｂ）第１実施形態に係る物体モデル記述方法の処理を示すフローチャート。
【図３】第１実施形態に係る方位角θ、および、仰角φの定義を示す図。
【図４】（ａ）第１実施形態に係る３つの座標系（カメラ座標系、画像座標系、物体座標系）の定義を示す図、（ｂ）第１実施形態に係る２つの座標系（画像座標系、画素位置座標系）の関係を示す図。
【図５】（ａ）第１実施形態に係る物体位置姿勢決定装置の処理ブロックを示す図、（ｂ）第１実施形態に係る物体位置姿勢決定方法の処理を示すフローチャート。
【図６】第１実施形態に係る識別対象となる物体を撮影した画像の例を示す図。
【図７】第１実施形態に係る最大一致位置姿勢探索部５４における処理の途中段階を示す図。
【図８】第１実施形態に係る最大一致度位置姿勢探索部５４における処理を示すフローチャート。
【図９】第１実施形態に係る物体位置姿勢決定方法の処理を、図７の画像に適用した場合に得られる位置姿勢推定結果を示す図。
【図１０】第１実施形態に係る物体位置姿勢決定方法の処理を、図７とは異なる画像に適用した場合に得られる位置姿勢推定結果を示す図。
【図１１】第１実施形態に係る物体位置姿勢決定方法の処理を、図７の画像、および、図１０の結果に対応する画像とは異なる画像に適用した場合に得られる位置姿勢推定結果を示す図。
【図１２】第２実施形態に係る物体モデル生成装置の処理ブロックを示す図。
【図１３】第２実施形態に係る物体モデル生成方法の処理を示すフローチャート。
【図１４】（ａ）第２実施形態に係る仮想的なカメラ座標系空間を示す図、（ｂ）第２実施形態に係る最適特徴点検出部１５１０における処理を示すフローチャート。
【図１５】（ａ）第２実施形態に係る物体識別装置の処理ブロックを示す図、（ｂ）第２実施形態に係る物体識別方法の処理を示すフローチャート。
【発明を実施するための形態】
【００１３】
（第１実施形態）
図１を参照して、１辺１０ｃｍの立方体であって、８個の各頂点それぞれが、ユニークなカラーでマーキングされている物体１０の物体モデルを記述する方法の例について説明する。また、この物体１０をカラーカメラで撮影した画像に対して、この物体３が画像上のどの位置に、どのような姿勢で存在するかを識別する方法の例についても説明する。
【００１４】
物体１０は、上述の通り、１辺１０ｃｍの立方体で、８個の各頂点（図１中の、頂点１０１から頂点１０８にそれぞれ対応する）それぞれが、ユニークなカラーでマーキングされているものである。ここでいうユニークなカラーとは、例えば、カラーカメラで物体１０を撮影した画像中から、所定の色相範囲である領域を抽出する。そして、その領域の重心位置を求めるといった単純な画像処理により特定の頂点の、画像上での位置を検出できるようなカラーといった意味である。上述の例のように、色相範囲を用いるのであれば、例えば各頂点のそれぞれが、３６０度の色相を８分割した時の、それぞれの色相に対応する彩度の高いカラーでマーキングされているといったものである。ここで彩度の高いカラーとしたのは、彩度が低い場合、色相の値が不安定になるためである。本実施形態では、具体的には、０度から４５度おきに、頂点１０１を０度、頂点１０２を４５度、頂点１０３を９０度、頂点１０４を１３５度、頂点１０５を１８０度、頂点１０６を２２５度、頂点１０７を２７０度、頂点１０８を３１５度とする。そして、それぞれの色相に対応する、彩度の高いカラーでマーキングされているものとする。また、物体１０における、頂点１０１から頂点１０８以外の面（全部で６面）の部分は、全て白い色であるとする。以上説明したような物体１０について、物体モデルを記述する方法の例を具体的に説明する。
【００１５】
図２（ａ）を参照して、第１実施形態に係る物体モデルを記述する装置の処理ブロック図について説明する。また、図２（ｂ）を参照して、第１実施形態に係る物体モデルを記述する方法の処理フローを示した図について説明する。まず、ステップＳ２５１において、物体座標系設定部２００は、モデル化対象となる物体に対して、３次元の物体座標系を設定する。つまり、本実施形態では、図１に示した物体１０に対して、３次元座標系を設定する。ここでの３次元座標系の設定を、図１を用いて説明する。まず、３次元座標系の原点を、図１の原点１１０に示したように、物体１０の重心位置（頂点１０１と頂点１０７を結ぶ線分の中点位置）に設定する。この座標系の原点の位置は、基本的には任意の位置を設定しても構わないが、本実施形態で示すように、物体の概略中心位置に設定することが好ましい。次いで、３次元座標系の３つの座標軸を、図１のｘ’軸１１１、ｙ’軸１１２、ｚ’軸１１３に示したように設定する。具体的には、ｘ’軸１１１は、原点１１０から、頂点１０１、頂点１０２、頂点１０３、頂点１０４が成す正方形の重心位置へ向かう方向に設定する。またｙ’軸１１２は、原点１１０から、頂点１０３、頂点１０４、頂点１０８、頂点１０７が成す正方形の重心位置へ向かう方向に設定する。同様に、ｚ’軸１１３は、原点１１０から、頂点１０１、頂点１０４、頂点１０８、頂点１０５が成す正方形の重心位置へ向かう方向に設定する。本実施形態では、上記のような３次元座標系において３つの座標軸を設定したが、基本的に各軸の方向は任意であり、３つの軸が直交するような座標軸であれば、どのように座標軸を設定しても構わない。また、本実施形態では、３次元座標系として直交座標系を用いているが、本発明はこれに限るものではなく、３次元空間中の１点の位置が、一意に記述可能な座標系であれば、例えば、斜交座標系や、極座標系等、その他の３次元座標系を用いても構わない。以上のように、物体座標系設定部２００は、モデル化対象となる物体に対して３次元の物体座標系を設定する処理を行う。
【００１６】
次に、ステップＳ２５２において、特徴点位置決定部２０１は、モデル化対象となる物体が持つ特徴点それぞれについて、物体座標系設定部２００で定めた３次元座標系における３次元位置を求める処理を行う。本実施形態では、物体１０の８個の頂点を特徴点とするため、８個の頂点それぞれについて、物体座標系設定部２００で定めた３次元座標系における３次元位置を求めることになる。具体的には、モデル化対象である図１の物体１０は、上述の通り、１辺１０ｃｍの立方体であるので、単位をｃｍとした時、例えば頂点１０１は、（ｘ’、ｙ’、ｚ’）＝（５、−５、５）となる。同様に、頂点１０２から頂点１０８までの３次元位置を求めると、以下の表１のようになる（３次元位置の単位はｃｍである）。
【００１７】
【表１】
2012043308.tif 000003
【００１８】
特徴点位置決定部２０１は、このように、モデル化対象となる物体が持つ特徴点（本実施形態では、８個の頂点）それぞれについて、物体座標系設定部２００で定めた３次元座標系における３次元位置を求める。続いて、ステップＳ２５２において、特徴点方向算出部２０２は、特徴点位置決定部２０１で求めた各特徴点の３次元位置に基づき、物体座標系設定部２００により定められた３次元座標系の原点から、各特徴点への３次元的な方向を各特徴点について求める。本実施形態では、３次元的な方向を、方位角θおよび仰角φの２つの変数で表現する。図３を参照して、この方位角θと仰角φの定義について説明する。図３の原点３１０は、図１の原点１１０に対応し、物体座標系設定部２００により定められた３次元座標系の原点である。同様に、物体座標系設定部２００により定められた３次元座標系のｘ’軸１１１、ｙ’軸１１２、ｚ’軸１１３は、それぞれｘ’軸３１１、ｙ’軸３１２、ｚ’軸３１３に対応する。ここで、図３に示した、ある特徴点３０に対する方位角θ、仰角φは、それぞれ、円弧３３、および、円弧３４に示した部分の角度に対応する。具体的には、特徴点３０の３次元位置を（Ｘ’、Ｙ’、Ｚ’）とした時、まず、特徴点３０を、ｘ’−ｚ’平面（ｘ’軸３１１とｚ’軸３１３により構成される平面）に投影した、投影点３２の位置を求める。この投影点３２は、単純に、ｘ’−ｚ’平面に投影するだけなので、投影点３２の３次元位置は、（Ｘ’、０、Ｚ’）である。この時、方位角θは、ｚ’軸３１３方向から、ｘ’軸３１１方向への回転方向を正とし、ｚ’軸３１３方向に対する、原点３１０から投影点３２へ向かう方向までの回転角となる。図３に図示した例では、ここでの方位角θは、凡そ４５度程度となる。具体的には、この方位角θは、式（１）により求められる。
【００１９】
【数１】
2012043308.tif 000004
【００２０】
次に、仰角φは、ｙ’軸３１２の値が正の方向（図３中では、ｘ’−ｚ’平面より下の方向）を正とし、原点３１０から投影点３２へ向かう方向に対する、原点３１０から特徴点３０へ向かう方向までの回転角となる。図３に示した例では、ここでの仰角φは、凡そ−６０度程度となる。この仰角φについては、次の式（２）により求められる。
【００２１】
【数２】
2012043308.tif 000005
【００２２】
特徴点方向算出部２０２は、上記のような方位角θと仰角φを、８個の各特徴点に対して求める。具体的には、例えば頂点１０１であれば、３次元位置が（５、−５、５）であるので、方位角θは、θ＝ａｒｃｔａｎ（５／５）＝４５度となり、仰角φに関しては、φ＝ａｒｃｔａｎ（−５／（５２＋５２）０．５）＝ａｒｃｔａｎ（−１／√２）≒−３５．２６度となる。同様に、頂点１０２から頂点１０８まで、それぞれの方位角θ、および仰角φを求めると、以下の表２のようになる。なお、方位角θ、および、仰角φの単位はＤｅｇｒｅｅ（度）である。また、仰角φの、約−３５．２６はａｒｃｔａｎ（−１／√２）、また、約３５．２６はａｒｃｔａｎ（１／√２）である。
【００２３】
【表２】
2012043308.tif 000006
【００２４】
上記のように、特徴点方向算出部２０２は、特徴点位置決定部２０１により求められた各特徴点の３次元位置に基づき、物体座標系設定部２００により定められた３次元座標系の原点から各特徴点への３次元的な方向を、各特徴点について求める処理を行う。本実施形態では、各特徴点への３次元的な方向を方位角θと仰角φを用いて表現したが、本発明はこれに限るものではない。例えば３次元の方向ベクトルで表現する等、３次元的な方向を表現できるものであれば、その他の表現方法でも構わない。
【００２５】
次に、ステップＳ２５４において、モデル特徴点記述部２０３は、各特徴点の属性と、特徴点方向算出部２０２で求めた各特徴点への３次元的な方向をセットとして記述する処理を行う。本実施形態では、８個の各特徴点の属性として、それぞれユニークなカラーでマーキングされた、各頂点のカラー情報（具体的には、色相情報）を用いる。例えば、頂点１０１に関しては、上述の通り、色相０度のカラーでマーキングされているので、頂点１０１を第１特徴点とした場合、第１特徴点に関しての属性は、色相０度となる。この属性と、特徴点方向算出部２０２において算出した、頂点１０１の方向、方位角θ＝４５度、仰角φ＝約−３５．２６度の３つの情報をセットとし、これらを、第１特徴点のモデルとする。同様に、頂点１０２から頂点１０８までを第２特徴点から第８特徴点とした場合、それぞれの特徴点に関するモデルは、以下の表３のようになる。なお、属性（色相）、方位角θ、および、仰角φの単位はＤｅｇｒｅｅ（度）である。また、仰角φの約−３５．２６、および、約３５．２６は、表２のものと同様である。
【００２６】
【表３】
2012043308.tif 000007
【００２７】
モデル特徴点記述部２０３は、上記のように、各特徴点の属性と、特徴点方向算出部２０２で求めた各特徴点への３次元的な方向をセットとして記述する処理を行う。ここで記述した、８個の特徴点の、属性（色相）、方位角θ、仰角φのセットのリストが、本実施形態における物体１０の物体モデルとなる。
【００２８】
最後に、ステップＳ２５５において、物体モデル出力部２０４は、モデル特徴点記述部２０３により記述された、各特徴点の属性と、それぞれの３次元的な方向のリスト、および、特徴点の数のデータを、物体モデルとして出力する。本実施形態では、特徴点の数は８であるので、以下の表４に示すデータを、物体１０の物体モデルとして出力することになる。なお、ここでも表３と同様に、属性（色相）、方位角θ、および、仰角φの単位はＤｅｇｒｅｅ（度）である。また、仰角φの約−３５．２６、および、約３５．２６は、表２のものと同様である。
【００２９】
【表４】
2012043308.tif 000008
【００３０】
特徴点の情報リストにおける、特徴点の順序は、上記の例では、頂点１０１から頂点１０８の順で並べているが、この順序は任意で構わない。物体モデル出力部２０４は、上記のように、モデル特徴点記述部２０３により記述された、各特徴点の属性と、それぞれの３次元的な方向のリスト、および、特徴点の数のデータを、物体モデルとして出力する。この物体モデル出力ステップＳ２５５の処理により、本実施形態における、物体モデルを記述する方法における処理が終了となる。
【００３１】
上記説明した物体モデルを記述する処理により、１辺１０ｃｍの立方体であって、８個の各頂点それぞれが、ユニークなカラーでマーキングされている物体１０の、８個の各頂点を特徴点とする物体モデルが記述され、その物体モデルが出力されることになる。
【００３２】
このように、本実施形態の物体モデル記述方法では、物体の有するそれぞれの特徴点について、その特徴点の属性と、物体に対して設定した３次元座標の原点からの３次元的な方向とをセットにしたものを物体モデルとして記述する。
【００３３】
この物体モデルは、特徴点の３次元的な方向の情報を持っているので、物体の向き（姿勢）が変化した場合でも、各特徴点の３次元的な変動を容易に求めることができるため、物体の３次元的な向きの変動に対応することが可能である。また、特徴点の配置情報に関しては、それらの絶対的な位置ではなく、物体に対して設定した３次元座標の原点からの方向として、特徴点の配置情報を記述している。このため、特徴点の配置情報が画像内における物体のサイズの変動に不変な表現となっており、画像内で物体のサイズが変動しても、画像の拡大や縮小若しくはモデル自体を拡大、縮小する必要が無い。よって、物体識別時の処理負荷を低減させることが可能になる。
【００３４】
続いて、物体の向きの変動や画像内での物体のサイズの変動に対応できる効果を明確にする。具体的には、上述の物体モデルを用いて図１に示した物体１０をカラーカメラで撮影した画像に対し、この物体１０が画像上のどの位置に、どのような姿勢で存在するかを識別する物体位置姿勢決定方法の例を示す。
【００３５】
図４を参照して、本実施形態の物体位置姿勢決定方法における、全部で４つの座標系と、画像を撮影するカラーカメラ等の定義について説明する。
【００３６】
図４（ａ）のカメラ４０は、カラーカメラであり、対象物体を撮像してその画像を取得する。このカメラ４０は、結像光学系（レンズ）と撮像センサから構成されている。本実施形態におけるレンズは、焦点距離３５ｍｍのレンズであり、撮像センサのサイズは、幅３６ｍｍ×高さ約２４ｍｍ（正確には、本実施形態では、２３．９６２５ｍｍ）で、撮像センサの解像度は、幅１２８０画素×高さ８５２画素である。この時、カメラ４０のレンズの主点位置を原点４００とし、図４に示した通り、カメラ４０の光軸方向をｚ軸４０３、ｚ軸４０３と直交した、それぞれカメラ４０の水平方向をｘ軸４０１、垂直方向をｙ軸４０２とした３次元座標系を設定する。そして、この３次元座標系を、カメラ座標系と定義する。ここで、カメラ座標系のｚ軸４０３は、図４（ａ）に示した通り、カメラ４０の光軸方向であって、カメラ４０の撮影範囲の方向を正とする。また、カメラ座標系のｘ軸４０１は、カメラ４０にて撮影した画像における右方向に対応する方向を正とし、y軸４０２は、画像における下方向に対応する方向を正とする。
【００３７】
次に、画像面４１は、カメラ４０により撮影される画像に対応する仮想的な平面であり、カメラ４０の光軸（即ち、カメラ座標系のｚ軸４０３）と直交する、幅３．６ｃｍ、高さ約２．４ｃｍの平面である。この平面は、カメラ４０の撮像センサのサイズ：幅３６ｍｍ×高さ約２４ｍｍに対応するものである。この時、この画像面４１と、カメラ座標のｚ軸４０３との交点を原点４１０とし、画像面４１上の水平方向をｘ”軸４１１、垂直方向をｙ”軸４１２とする２次元座標系を設定する。そして、この２次元座標系を、画像座標系と定義する。この画像座標系の原点４１０は、カメラ座標系において、（０、０、３．５ｃｍ（カメラの焦点距離＝３５ｍｍ））の位置にあるものとする。また、この画像座標系の２軸、ｘ”軸４１１とｙ”軸４１２は、それぞれ、カメラ座標系のｘ軸４０１、ｙ軸４０２と平行である。この画像面４１は、カメラ４０により撮影される画像に対応するものであって、ｘ”軸４１１は、画像の水平右方向を正とする軸であり、ｙ”軸４１２は、画像の垂直下方向を正とする軸である。
【００３８】
また、図４（ｂ）に示したように、画像座標系の原点４１０は、幅１２８０画素×高さ８５２画素の画像の中心位置であるので、画像の左端から６４０画素分、上端から４２６画素分の位置となる。つまり、図４（ｂ）に示したように、左から６４０画素目、上から４２６画素目の画素（画素４５）の右下に対応する位置が、画像座標系の原点４１０となる。ここで、１画素の幅、および、高さは、幅３．６ｃｍ／１２８０画素（＝高さ２．３９６２５ｃｍ／８５２画素）＝０．００２８１２５ｃｍとなっている。そのため、画素４５の中心位置は、画像座標系の原点４１０から、縦横それぞれ半画素分だけ左上にずれているので、この画素１３０の中心位置は、画像座標系において、（ｘ”、ｙ”）＝（−０．００１４０６２５ｃｍ、−０．００１４０６２５ｃｍ）である。
【００３９】
このように、画像上のある画素の位置を、画像座標系において表現すると、非常に煩雑な表現となってしまう。そこで、図４（ｂ）に示した通り、画像座標系とほぼ等価ではあるが、画像の一番左上の画素４６の中心位置を原点４５０とし、画像右方向を正の方向とするｕ軸４５１、および、画像下方向を正の方向とするｖ軸４５２からなる２次元座標系を設定し、これを画素位置座標系と定義する。この画素位置座標系は、基本的に、単位は画素である。従って、例えば、画素４６は、画素位置座標系において（ｕ、ｖ）＝（０画素、０画素）であり、画素４５は（ｕ、ｖ）＝（６３９画素、４２５画素）となる。また、画像座標系の原点４１０は、画素位置座標系においては（ｕ、ｖ）＝（６３９．５画素、４２５．５画素）に位置することになる。
【００４０】
最後に、図４（ａ）の物体４２は、識別対象となる物体である。先に説明したように、物体に対して座標決定された設定した、物体の中心付近に設定した原点４２０と、ｘ’軸４２１、ｙ’軸４２２、ｚ’軸４２３の３軸とからなる３次元座標系である物体座標系を持つ。
【００４１】
通常、物体の位置姿勢は、この物体座標系とカメラ座標系の相対位置姿勢として定義されることが多い。しかし、本実施形態の物体位置姿勢決定方法においては、物体の位置姿勢として、物体座標系とカメラ座標系の相対姿勢（位置無し）と、物体座標系の原点４２０を、画像面４１に投影した位置４２０Ｐとを、物体の位置姿勢と定義する。これは、本実施形態の物体モデルは、物体のサイズに関して不変な表現となっているため、その影響により、この物体モデルのみを用いた場合、物体の奥行き方向が一意に決まらないためである。そこで、物体の位置に関しては、一意に決めることができる、物体座標系の原点４２０を、画像面４１に投影した位置４２０Ｐとして定義することにする。物体の姿勢に関しては、様々な表現方法があるが、本実施形態では、物体座標系のｙ’軸４２２を中心軸とする回転α、ｘ’軸４２１を中心軸とする回転β、ｚ’軸４２３を中心軸とする回転γの、３つの回転角（α、β、γ）を用いて表現する。具体的には、物体座標系のｘ’軸４２１、ｙ’軸４２２、ｚ’軸４２３が、それぞれカメラ座標系のｘ軸４０１、ｙ軸４０２、ｚ軸４０３と平行である場合を、（α、β、γ）＝（０、０、０）とし、そこからの回転変位によって表現することになる。例えば、（α、β、γ）＝（２０、−４０、１０）（単位はＤｅｇｒｅｅ（度））であるならば、（α、β、γ）＝（０、０、０）の姿勢から、まず、ｙ’軸４２２を中心軸として、２０度回転させる。次に、ｘ’軸４２１を中心軸として‐４０度回転させ、最後に、ｚ’軸４２３を中心軸として１０度回転させた時の姿勢となる。回転方向の正負については、軸の方向に向かって、時計回りを正の回転、反時計回りを負の回転と定義する。
【００４２】
以上が、本実施形態の物体位置姿勢決定方法における、全部で４つの座標系と、画像を撮影するカラーカメラ等の定義である。また、以下では、特に明記したような場合を除き、４つの座標系について、カメラ座標系、画像座標系、物体座標系の長さの単位はｃｍ、画素位置座標系の長さの単位は画素、全ての座標系において、角度の単位はＤｅｇｒｅｅ（度）とする。
【００４３】
図５を参照して、この定義の下で、図１に示した物体１０をカラーカメラで撮影した画像に対し、この物体１０が画像上のどの位置にどのような姿勢で存在するかを識別する、物体位置姿勢決定方法の詳細について説明する。
【００４４】
図５（ａ）は、本実施形態に係る物体位置姿勢決定装置の処理ブロック図である。また、図５（ｂ）は、本実施形態に係る物体位置姿勢決定方法の処理のフローチャートである。
【００４５】
まず、ステップＳ５５１において、物体モデル入力部５００は、識別対象となる物体の物体モデルを入力し、それを物体モデル保持部５０１に記録して保持する。本実施形態では、上記説明した図１に示した物体１０の物体モデル（つまり、表４に示した情報）を入力する。これにより、物体１０の特徴点数（＝８個）と、それぞれの特徴点の属性と、３次元的な方向が入力され、それらが物体モデル保持部５０１に保持されることになる。次に、ステップＳ５５２において、画像入力部５０２は、識別対象となる物体を撮影した画像を入力する。本実施形態では、図６（ａ）、図６（ｂ）に示すような、グレーの背景化において、物体１０を上記説明したカラーカメラにより撮影した画像を入力する。図６において、各画像内に存在する立方体が、撮影された物体１０である。また、黒で示した各頂点が、ユニークなカラーでマーキングされた位置である。図６（ａ）においては、マーカ６０１からマーカ６０７までが画像中に存在しており、それぞれが、図１に示した物体３の、頂点１０１から頂点１０７までの各頂点に対応する。図６（ａ）では、この図に示す通り、頂点１０８に対応するマーカは画像中に存在していない。また、図６（ｂ）においては、マーカ６０１からマーカ６０３と、マーカ６０５からマーカ６０８までが画像中に存在している。そして、それぞれが、図１に示した物体１０の、頂点１０１から頂点１０３、および、頂点１０５から頂点１０８までに対応する。図６（ｂ）は、この図に示す通り、頂点１０４に対応するマーカは画像中に存在しない。図６（ａ）では、図１に示した物体１０は、物体座標系の原点が、カメラ座標系において、（ｘ、ｙ、ｚ）＝（０、０、４８）の位置に配置される。そして、カメラ座標系に対する物体座標系の姿勢が、（α、β、γ）＝（３０、２０、０）という姿勢で撮影した時に得られる画像を示している。また、図６（ｂ）は、図１に示した物体１０は、物体座標系の原点が、カメラ座標系において、（ｘ、ｙ、ｚ）＝（６、−３、４８）の位置に配置される。そして、カメラ座標系に対する物体座標系の姿勢が、（α、β、γ）＝（−１５、４０、０）という姿勢で撮影した時に得られる画像を示している。この画像入力部５０２では、図６に示したような画像を１枚入力する処理を行う。ここでの処理は、図５（ｂ）の画像入力ステップ５５２に対応する。
【００４６】
次いで、特徴点位置検出部５０３において、物体モデル保持部５０１に保持されている物体モデルが持つ、複数の特徴点の属性を示す特徴量に基づいて、画像入力部５０２で入力した画像中から、それぞれに対応する特徴点の位置（画像座標系における位置）を検出する。本実施形態では、特徴量として例えば色相と彩度の情報を用いて、８個の特徴点の位置をそれぞれ検出する処理を行う。具体的には、まず入力画像の各画素について、彩度と色相を算出する処理を行う。次いで、各画素の彩度に注目し、閾値以上の彩度である画素（例えば、彩度の範囲を０から１とした時、彩度が０．１以上である画素等）のみを抽出する。本実施形態の入力画像は、背景がグレーで、物体１０のマーカの領域（各頂点に対応）を除く領域は白であるので、彩度が比較的高い領域のみを抽出することで、容易に各頂点に対応する領域のみを抽出することができる。次に、彩度が閾値以上であるとして抽出された画素の色相に注目し、物体モデル保持部５０１に保持された、８個の特徴点のそれぞれについて、各特徴点の属性である色相に対応した画素を抽出する。そして、抽出された画素の領域の重心位置を算出し、その重心位置を対応する特徴点の位置とする。各特徴点の属性である色相に対応した画素の抽出は、具体的には、以下のように行う。例えば、表４におけるリストの１番目の特徴点（頂点１０１に対応）の属性は、色相が０度であるので、彩度が閾値以上であるとして抽出された画素の内、色相が０度である画素を抽出するというようにする。ただし、色相の値は、照明条件の違い等により、多少変動してしまうので、実際には、例えば、色相が、色相０度から±２０度の範囲（つまり、色相が‐２０度から２０度の範囲）の画素を抽出するようにする。同様に、表４におけるリストの２番目の特徴点（頂点１０２に対応）では、色相４５度から±２０度（２５度から６５度）、３番目の特徴点（頂点１０３に対応）では、色相９０度から±２０度（７０度から１１０度）、というように、それぞれ抽出すれば良い。ただし、状況によっては、物体モデルが持つ特徴点に対応するものが、画像中に存在しない場合がある。例えば、図６（ａ）において、表４におけるリストの８番目の特徴点（頂点１０８に対応）が該当する。このような状況で上記の処理を行うと、その特徴点に対応する画素が１つも抽出されないことになる。このような場合は、その特徴点に対応するものは画像中に存在しなかったと判断するようにする。このように、特徴点位置検出部５０３では、物体モデル保持部５０１に保持されている物体モデルが持つ、複数の特徴点の属性に基づいて、画像入力部５０２で入力した画像中から、それぞれに対応する特徴点の位置を検出する処理を行う。ここでの処理は、図５（ｂ）の特徴点位置検出ステップ５５３に対応する。ここまでの処理により、画像中に対応する特徴点が存在するものに関しては、それぞれの特徴点の画像座標系における位置が得られることになる。
【００４７】
続いて、最大一致度位置姿勢探索部５０４において、物体モデル保持部５０１に保持されている物体モデルと、特徴点位置検出部５０３で得られた、各特徴点の位置（画像座標系での位置）とに基づいて、画像中に存在する物体の位置姿勢を推定する。具体的には、物体モデルを様々な位置姿勢に変化させ、それを図４に示す画像面４１に投影する。そして、投影された結果と各特徴点との一致度が最大となる物体モデルの位置姿勢を探索する。一致度が最大であった物体モデルの位置姿勢を、画像中に存在する物体の位置姿勢と推定する。
【００４８】
図７を参照して、この最大一致位置姿勢探索部５０４における処理の概要について説明する。図７は、図６（ａ）を入力画像とした時の、最大一致位置姿勢探索部５０４における処理の途中段階を示したものである。最大一致位置姿勢探索部５０４における処理では、物体モデルの位置姿勢を様々に変化させる。図７では、物体モデルの中心位置７１０、即ち、物体座標系の原点が、画素位置座標系の（ｕ、ｖ）＝（６３９画素、４２５画素）の位置（図４（ｂ）の画素１３０の位置に対応）にある場合を示している。また、物体モデルの姿勢に関しては、図７においては、物体座標系の３軸の回転角が、（α、β、γ）＝（２５、１５、−５）の場合を示している。図６（ａ）における、実際の物体の位置は、カメラ座標系において（ｘ、ｙ、ｚ）＝（０、０、４８）であるので、画像面４１にこの位置を投影すると、画像座標系において（ｘ”、ｙ”）＝（０、０）となる。この位置は、画素位置座標系では、（ｕ、ｖ）＝（６３９．５画素、４２５．５画素）なので、図７で示した物体モデルの中心位置は、凡そ実際の物体の中心位置に対応している。姿勢に関しては、図６（ａ）は、物体座標系の３軸の回転角が、（α、β、γ）＝（３０、２０、０）である。よって、図７に示した物体モデルの姿勢は、多少、実際の物体の姿勢とずれている。図７においては、物体座標系の３軸を、画像面４１に投影したものが、それぞれｘ’軸７１１、ｙ’軸７１２、ｚ’軸７１３であり、図中、点線矢印で示したものが、物体モデルが持つ各特徴点への３次元方向ベクトルを、画像面４１に投影したものである。これは後述の、第２方向ベクトルであるモデル方向ベクトルに対応する。
【００４９】
図７では、多くの特徴点に関して、点線矢印で示した物体モデルが持つ各特徴点へのモデル方向ベクトルと、物体中心７１０から各特徴点位置への方向ベクトルとが概略一致している。この物体中心７１０から各特徴点位置への方向ベクトルは、後述の、第１方向ベクトルである観測方向ベクトルに対応する。しかし、図に示した通り、例えば、物体の頂点１０３に対応する特徴点７２３に関しては、物体モデルの、この特徴点に対応する方向７３３と、白矢印７４３で示した、物体中心７１０から特徴点７２３への方向が、比較的ずれていることがわかる。なお、特徴点７２３の位置は、特徴点位置検出部５０３により検出される。また、上記ずれは、円弧７５３で示した角度分のずれに対応している。この最大一致度位置姿勢探索部５０４では、物体モデルの位置姿勢を様々に変化させ、円弧７５３で示したような角度のずれが小さい物体モデルの位置姿勢を探索する。つまり、図７における点線矢印７３３と白矢印７４３といったものが、できるだけ一致するような物体モデルの位置姿勢を探索する。
【００５０】
図８を参照して、この最大一致度位置姿勢探索部５０４における具体的な処理の詳細について説明する。
【００５１】
まず、ステップＳ８０１において、物体モデル一致度の最大値を初期化する。物体モデル一致度については、ステップＳ８０５において詳細に説明する。この物体モデル一致度の最大値の初期化では、この最大値を非常に小さい値にすれば良い。本実施形態では、例えば、物体モデルの持つ特徴点の数が８個なので、８×（−１）＝−８以下の値を、物体モデル一致度の最大値の、初期値として設定すれば良い。
【００５２】
次に、ステップＳ８０２において、物体モデルの中心位置を、画素位置座標系で設定する。ここでの設定では、単純に、ラスタスキャン的に画像の左上から右下に向けて順次選択して設定するようにすれば良い。つまり、最初は、画素位置座標系の原点（ｕ、ｖ）＝（０画素、０画素）を設定し、その次には、（ｕ、ｖ）＝（１画素、０画素）というように順次設定していき、最後の（ｕ、ｖ）＝（１２７９画素、８５１画素）に至るまで、順に設定していくようにすれば良い。
【００５３】
続いて、ステップＳ８０３において、物体モデルの姿勢、つまり、物体座標系の３つの軸に対する、それぞれの回転角（α、β、γ）を設定する。ここでも、ステップＳ８０２と同様に、全探索的に様々な姿勢を設定するようにすれば良い。本実施形態では、具体的には、最初に、３つの回転角を（α、β、γ）＝（０、０、０）と設定する。その次には、γを１度だけ増加させ、（α、β、γ）＝（０、０、１）を設定するというように、１度ずつγを増加させていく。そして、（α、β、γ）＝（０、０、３５９）になった場合、その次は、βを１度だけ増加させ、γを０に戻し、（α、β、γ）＝（０、１、０）と設定する。以下同様に、１度ずつ姿勢を変化させ、（α、β、γ）＝（３５９、３５９、３５９）に至るまで、順に姿勢を設定していくようにすれば良い。このように物体モデルの位置および姿勢を様々な位置および姿勢に変更する処理を行う。
【００５４】
次に、ステップＳ８０４において、ステップＳ８０２、および、ステップＳ８０３で設定された物体モデルの中心位置、および、姿勢で物体モデルが配置された時の、物体モデルが持つ各特徴点の方向の、画像面４１への投影像を求める。ここでの詳細を、具体的な例を用いて説明する。まず、ステップＳ８０２において、物体モデルの中心位置が、画素位置座標系で（ｕ、ｖ）＝（Ｕ、Ｖ）と設定されたとする。この画素位置座標系（ｕ、ｖ）＝（Ｕ、Ｖ）の位置は、画像座標系では、（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）であるとする。また、ステップＳ８０３において、物体モデルの姿勢が（α、β、γ）＝（Ａ、Ｂ、Γ）と設定されたとする。この時、物体モデルが持つある特徴点への３次元的な方向が、方位角θ＝Θ、仰角φ＝Φであったとし、この特徴点への方向が、画像面４１上でどのようになるのかを求める。
【００５５】
まず、物体座標系の原点４２０から、この特徴点への方向に対応する長さ１の３次元ベクトルｆ’を考える。つまり、物体の中心位置から、距離１のところに特徴点があると考え、その位置を物体座標系で表現したものを考える。ここでの長さは任意であるが、簡単のため、長さ１としている。ただし、長さをレンズの焦点距離：本実施形態では、３．５（＝３５ｍｍ）以上にすると、画像面４１への投影位置を計算する際に支障をきたすため、長さは３．５未満にするのが望ましい。特徴点への方向は、方位角＝Θ、仰角φ＝Φなので、この長さ１の３次元のベクトルｆ’は、ｆ’＝（ｓｉｎΘ・ｃｏｓΦ、ｓｉｎΦ、ｃｏｓΘ・ｃｏｓΦ）Ｔとなる。ここで、上付きＴは転置を意味する。
【００５６】
次に、このベクトルを、物体の姿勢（α、β、γ）＝（Ａ、Ｂ、Γ）に従って回転させた３次元ベクトルｆＲ’＝ＲＺ’（Γ）ｚ’（Γ）・ＲＸ’（Β）・ＲＹ’（Α）・ｆ’を求める。ここで、ＲＺ’（Γ）、ＲＸ’（Β）、ＲＹ’（Α）は、それぞれ物体座標系のｚ’軸、ｘ’軸、ｙ’軸を中心軸として、Γ、Ｂ、Ａ回転させる時の回転行列で、以下の式（３）、式（４）、式（５）に示したものである。
【００５７】
【数３】
2012043308.tif 000009
【００５８】
【数４】
2012043308.tif 000010
【００５９】
【数５】
2012043308.tif 000011
【００６０】
次に、この回転後のベクトルｆＲ’の位置を、カメラ座標系に変換したｆＲを求める。ステップＳ８０２で設定した物体モデルの中心位置（つまり、物体座標系の原点４２０の位置）は、画像座標系で（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）であった。画像座標系の原点４１０は、カメラ座標系において（ｘ、ｙ、ｚ）＝（０、０、３．５ｃｍ）であった。よって、ステップＳ８０２で設定された物体モデルの中心位置は、カメラ座標系で（ｘ、ｙ、ｚ）＝（Ｘ”、Ｙ”、３．５ｃｍ）となる。従って、回転後のベクトルｆＲ’の位置を、カメラ座標系に変換すると、この変換後の位置ｆＲは、（ｘ、ｙ、ｚ）＝（Ｘ”＋ｆＲｘ’、Ｙ”＋ｆＲｙ’、３．５＋ｆＲｚ’）となる。ここで、ｆＲｘ’、ｆＲｙ’、ｆＲｚ’は、それぞれ、回転後のベクトルｆＲ’のｘ成分、ｙ成分、ｚ成分である。
【００６１】
次いで、このカメラ座標系に変換した回転後のベクトルの位置ｆＲを、画像面４１に投影し、その時の画像座標系での位置ｆＲ”を求める。これは単純に、カメラ座標系に変換した位置ｆＲのｚ成分が３．５ｃｍ（カメラ座標系の原点４００から画像面４１までの距離）になるように各成分を正規化する。そして、その時のｘ成分、ｙ成分を、それぞれｆＲ”のｘ”成分、ｙ”成分とすれば良い。つまり、カメラ座標系に変換した位置ｆＲ：（ｘ、ｙ、ｚ）＝（Ｘ”＋ｆＲｘ、Ｙ”＋ｆＲｙ、３．５＋ｆＲｚ）のｘ成分、ｙ成分に、３．５／（３．５＋ｆＲｚ）を乗じたものを、それぞれｆＲ”の画像座標系でのｘ”成分、ｙ”成分にする。よって、この画像面４１へ投影した場合の、画像座標系での位置ｆＲ”は、（ｘ”、ｙ”）＝（３．５・（Ｘ”＋ｆＲｘ）／（３．５＋ｆＲｚ）、３．５・（Ｙ”＋ｆＲｙ）／（３．５＋ｆＲｚ））となる。
【００６２】
最後に、ステップＳ８０２で設定された物体モデルの中心位置から、画像面４１に投影したｆＲ”への画像面４１上の方向ベクトルｐ”（これをモデル方向ベクトル、すなわち第２方向ベクトルと称する）を、画像座標系で求める。ステップＳ８０２で設定された物体モデルの中心位置は、画像座標系で（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）である。そのため、ここで求めるモデル方向ベクトルｐ”は、ｐ”＝（ｆＲｘ”−Ｘ”、ｆＲｙ”−Ｙ”）Ｔ＝（３．５・（Ｘ”＋ｆＲｘ）／（３．５＋ｆＲｚ）−Ｘ”、３．５・（Ｙ”＋ｆＲｙ）／（３．５＋ｆＲｚ）−Ｙ”）Ｔとなる。ここで、ｆＲｘ”、ｆＲｙ”は、ｆＲ”のｘ”成分、ｙ”成分である。すなわち、物体モデルの３次元特徴点および原点を画像面４１に投影して、投影原点から投影特徴点へのモデル方向ベクトルを算出する。
【００６３】
ステップＳ８０４では、上述のように、画像面４１上でのモデル方向ベクトルｐ”を、物体モデルが持つ全ての特徴点について求める。本実施形態の物体モデルでは、特徴点の数は全部で８個であるので、８個の特徴点それぞれについて、この画像面４１上でのモデル方向ベクトルｐ”を求める。ここで求めた８個の特徴点それぞれに対する、画像面４１上でのモデル方向ベクトルを、それぞれｐ１”、ｐ２”、・・・、ｐ８”とする。
【００６４】
続いて、ステップＳ８０５において、ステップＳ８０４で求められた各特徴点に対応するモデル方向ベクトルｐ”と、図５（ａ）の特徴点位置検出部５０３で検出された各特徴点の位置とに基づいて、物体モデル一致度という評価値を算出する。この評価値は、ステップＳ８０２およびステップＳ８０３で設定された物体の位置姿勢での、物体モデルの各特徴点の方向（モデル方向ベクトルｐ”）と、特徴点位置検出部５０３で検出された実際の各特徴点の方向とが、どの程度一致しているかを示すものである。この物体モデル一致度の算出方法の詳細について、具体的な例を用いて説明する。まず、ステップＳ８０４での説明と同様に、ステップＳ８０２において、物体モデルの中心位置が、画像座標系で（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）と設定されたとする。また同様に、ステップＳ８０３において、物体モデルの姿勢が（α、β、γ）＝（Ａ、Ｂ、Γ）と設定されたとする。そして、その時の、ステップＳ８０４で求めた、ある特徴点に対応するモデル方向ベクトルがｐ”であるとする。そして、特徴点位置検出部５０３において、この特徴点の画像座標上での位置が（ｘ”、ｙ”）＝（ξ”、ζ”）と検出されていたとし、この特徴点についての一致度を求める。
【００６５】
まずステップＳ８０２で設定された物体モデルの中心位置から、特徴点位置検出部５０３で検出された、ある特徴点の画像座標上での位置（２次元特徴点）への画像面４１上の方向ベクトルｑ”（これを第１方向ベクトルである観測方向ベクトルと称する）を求める。この観測方向ベクトルｑ”は、容易に、ｑ”＝（ξ”−Ｘ”、ζ”−Ｙ”）Ｔとして求められる。
【００６６】
次に、この観測方向ベクトルｑ”と、モデル投影ステップ１４３で求めた、モデル方向ベクトルｐ”の内積（ｐ”）Ｔ（ｑ”）を、各ベクトルの大きさの積｜ｐ”｜・｜ｑ”｜で除することにより正規化した値を求める。ここで、｜  ｜はベクトルの大きさを表す。ここで求めた、各ベクトルの内積を正規化した値が、この特徴点についての一致度となる。つまり、モデル方向ベクトルと、観測方向ベクトルの成す角の余弦を、特徴点の一致度として求めることになる。従って、モデル方向ベクトルと、観測方向ベクトルの成す角が小さい（最小０度）程、この一致度は大きく（最大１）になり、成す角が大きい（最大１８０度）程、一致度は小さく（最小−１）になる。
【００６７】
ステップＳ８０５では、上述のように、特徴点についての一致度を物体モデルが持つ全ての特徴点について求め、その総和を物体モデル一致度として算出する。本実施形態の物体モデルでは、特徴点の数は全部で８個であるので、８個の特徴点それぞれについて、まず観測方向ベクトルを求め、それぞれを、ｑ１”、ｑ２”、・・・、ｑ８”とする。ここで、特徴位置検出部５０３において、検出されなかった特徴点（例えば、図６（ａ）における頂点１０８に対応する特徴点）についての一致度は、観測方向ベクトルが求められない。そこで、このような特徴点に関する観測方向ベクトルｑｉ”は、ｑｉ”＝−ｐｉ”としてしまう。つまり、検出されなかった特徴点についての一致度は−１としてしまうことになる。また、モデル方向ベクトル、若しくは、観測方向ベクトルのいずれかが０ベクトルになってしまう場合、ベクトルの大きさの積による正規化において支障をきたすことになる。そこで、もし、モデル方向ベクトルｐｉ”と、観測方向ベクトルｑｉ”の何れかが０ベクトルであった場合、ｐｉ”＝（１、０）Ｔ、ｑｉ”＝（０、１）Ｔとしてしまう。つまり、何れか一方の方向ベクトルが０ベクトルであるならば、その特徴点についての一致度は０としてしまうことになる。結局、本実施形態におけるステップＳ８０５で求める物体モデル一致度Ｍは、以下の式（６）により求めることになる。なお、各特徴点に関するモデル方向ベクトルを、それぞれｐ１”、ｐ２”、・・・、ｐ８”としている。また、対応する観測方向ベクトルを、それぞれｑ１”、ｑ２”、・・・、ｑ８”としている。
【００６８】
【数６】
2012043308.tif 000012
【００６９】
ただし、上述の通り、特徴位置検出部５０３において、検出されなかった特徴点については、ｑｉ”＝−ｐｉ”で、何れかの方向ベクトルが０ベクトルであった場合は、ｐｉ”＝（１、０）Ｔ、ｑｉ”＝（０、１）Ｔである。このステップＳ８０５までの処理により、ステップＳ８０２で設定された位置に、ステップＳ８０３で設定された姿勢で物体モデルを配置した時の、特徴点の方向に関する一致度である物体モデル一致度が得られることになる。この物体モデル一致度は、各特徴点に関する、モデル方向ベクトルと、観測方向ベクトルの成す角の余弦の総和に対応しているので、この物体モデル一致度が高い程、モデル方向ベクトルと観測方向ベクトルが一致しているといえる。なお、物体モデル一致度は、各特徴点の一致度が高くなるほど高くなればよく、各特徴点の一致度の総和に限らず、一致度の積や重み付きの和など、他の評価値でもよい。
【００７０】
次に、ステップＳ８０６において、ステップＳ８０５で求められた物体モデル一致度が、現状の物体モデル一致度の最大値より大きいか否かを判定する。ステップＳ８０５で求められ物体モデル一致度が、現状の物体モデル一致度の最大値より大きい場合（ステップＳ８０６；ＹＥＳ）、ステップＳ８０７に進む。そうでない場合（ステップＳ８０６；ＮＯ）、ステップＳ８０８に進む。
【００７１】
ステップＳ８０７において、ステップＳ８０２、および、ステップＳ８０３で設定された位置と姿勢を、現状の物体位置姿勢の推定値として更新する処理を行う。つまり、例えば、ステップＳ８０２で、物体モデルの中心位置を、画素位置座標系で（ｕ、ｖ）＝（Ｕ、Ｖ）と設定する。そして、ステップＳ８０３で、物体モデルの姿勢を、（α、β、γ）＝（Ａ、Ｂ、Γ）と設定する。その場合、これらの（Ｕ、Ｖ）、（Ａ、Ｂ、Γ）を、現状の物体位置姿勢の推定値とする処理を行うことになる。よって、最も物体モデル一致度が高い、つまり、モデル方向ベクトルと、観測方向ベクトルとの方向が、より一致する時の、物体モデルの位置姿勢に更新されていくことになる。
【００７２】
次のステップＳ８０８において、ステップＳ８０２で設定された物体モデルの中心位置において、ステップＳ８０３で全ての姿勢が設定されたか否かを判定する。本実施形態では、全ての姿勢とは、物体座標系の３軸に関する回転、（α、β、γ）＝（０、０、０）から、各角度１度刻みで（α、β、γ）＝（３５９、３５９、３５９）までを意味する。全ての姿勢を設定している場合（ステップＳ８０８；ＹＥＳ）、ステップＳ８０９に進む。そうでなければ（ステップＳ８０８；ＮＯ）、ステップＳ８０３に戻り、新たな姿勢を設定してステップＳ８０４からの処理を繰り返す。
【００７３】
ステップＳ８０９において、物体モデルの中心位置として、全ての位置をステップＳ８０２で設定したか否かを判定する。本実施形態では、全ての位置とは、画素位置座標系の（ｕ、ｖ）＝（０画素、０画素）から、１画素刻みで（ｕ、ｖ）＝（１２７９画素、８５１画素）までを意味する。全ての位置を設定している場合（ステップＳ８０９；ＹＥＳ）、ステップＳ８１０に進む。そうでなければ（ステップＳ８０９；ＮＯ）、ステップＳ８０２に戻り、物体モデルの中心位置として新たな位置を設定して、ステップＳ８０３からの処理を繰り返す。
【００７４】
上記のような繰り返し処理により、最後のステップＳ８１０に進んだ段階で、最も物体モデル一致度が高かった時の、物体モデルの中心位置と、姿勢とが、現状の物体位置姿勢推定値として得られることになる。そこで、最後のステップＳ８１０において、最も物体モデル一致度が高かった時の、物体モデルの中心位置と、姿勢、つまり、ステップＳ８０７で最終的に更新された位置と姿勢を、物体の位置姿勢推定値として決定する。
【００７５】
以上の、ステップＳ８０１から、ステップＳ８１０までの処理が、図５（ａ）に示す最大一致度位置姿勢探索部５０４での処理である。ここでの処理は、図５（ｂ）の最大一致度位置姿勢探索ステップＳ５５４に対応する。このように、最大一致度位置姿勢探索部５０４では、物体モデルを様々な位置姿勢に変化させ、それを画像面４１に投影する。そして、投影した結果と、各特徴点との一致度が最大（モデル方向ベクトルと観測方向ベクトルの成す角が最小）となる物体モデルの位置姿勢を探索し、一致度が最大であった物体モデルの位置姿勢を、画像中に存在する物体の位置姿勢と推定する。
【００７６】
本実施形態では、このように、物体モデルを様々な位置姿勢に変化させ、物体モデル一致度が最も高い物体モデルの位置姿勢を探索する。しかし、本発明はこれに限るものではなく、例えば最小二乗法等を用いて、モデル方向ベクトルと、観測方向ベクトルとの成す角が最小になるような物体モデルの位置姿勢を探索してもよい。ただし、このような物体モデルの位置姿勢を、最小二乗法等を用いて探索した場合、探索における初期値が適切でないと、多数存在する局所解にトラップされてしまう可能性が高い。そこで、最小二乗法等を利用する場合は、例えば、複数の初期値からの探索を行って、最も一致度が高いものを選択する等すればよい。
【００７７】
最後に、図５（ａ）の位置姿勢識別結果出力部５０５において、最大一致度位置姿勢探索部５０４での処理により得られた、物体の位置姿勢推定値を外部に出力する処理を行う。物体の位置姿勢推定値とは、画素位置座標系における物体の中心位置と、物体座標系の３軸に関する回転角とを意味する。ここでの処理は、図５（ｂ）の位置姿勢識別結果出力ステップＳ５５５に対応する。これにより、物体が画像上のどの位置に、どのような姿勢で存在するかを識別する、物体位置姿勢決定方法の処理が終了となる。
【００７８】
上述のように、物体モデル入力部５００から位置姿勢識別結果出力部５０５までの処理により、本実施形態の物体モデル記述方法により記述した物体モデルを用いて、当該物体が画像上のどの位置に、どのような姿勢で存在するかを識別する処理が可能になる。本実施形態に係る物体位置姿勢決定方法では、物体の中心位置から、各特徴点への３次元的な方向をモデルとする物体モデルを用いている。このため、物体の３次元的な向きの変動に対応可能であり、且つ、画像上での物体のサイズ変動に対して不変に、物体の位置姿勢を識別することが可能になる。このように、３次元的な向きの変動（姿勢の変動）に対応可能であり、且つ、画像上での、物体のサイズ変動に対して不変であることを、以下の具体的な例により説明する。
【００７９】
図９（ａ）および（ｂ）を参照して、図６（ａ）および（ｂ）に示した入力画像に対して、本実施形態に係る物体位置姿勢決定方法の処理を適用した場合に得られる位置姿勢推定結果について説明する。図６（ａ）を入力画像とし、物体の中心位置が、画素位置座標系で（ｕ、ｖ）＝（６３９画素、４２５画素）、物体座標系３軸の回転角が（α、β、γ）＝（３０、２０、０）であった場合を考える。この場合、最大一致度位置姿勢探索部５０４での処理における物体モデル一致度が最大の約６となる。図９（ａ）は、入力画像である図６（ａ）に、その時の、位置姿勢での物体モデルの画像面４１への投影結果を重畳して示したものである。ここで、物体モデル一致度が約６となるのは、画像上で検出可能な７つの特徴点では、ほぼモデル方向ベクトルと観測方向ベクトルの方向が一致するため一致度が約１となり、検出できなかった１つの特徴点は、一致度が−１となるため、この総和が（約７−１の）約６となるためである。同様に、図６（ｂ）を入力画像とし、物体の中心位置が、画素位置座標系で（ｕ、ｖ）＝（７９８画素、３４７画素）、物体座標系３軸の回転角が（α、β、γ）＝（−１５、４０、０）であった場合を考える。この場合も物体モデル一致度が最大の約６となる。図９（ｂ）も同様に、入力画像である図６（ｂ）に、その時の、位置姿勢での物体モデルの、画像面４１への投影結果を重畳して示したものである。物体モデル一致度が約６であるのは、図６（ａ）を入力画像とした時のものと同様である。このように、本実施形態の物体モデルでは、物体の中心位置から、特徴点の方向への３次元的な方向情報を持っているため、このような姿勢変動に対応することが可能である。
【００８０】
また、図１０（ａ）および（ｂ）を参照して、図６（ａ）の物体と姿勢は同じで、物体の中心位置だけをカメラ座標系のｚ軸４０３に沿って平行移動させ、それを撮影した画像を入力画像とした場合の結果について説明する。具体的には、図１０（ａ）に関しては、物体の中心位置を、カメラ座標系で（ｘ、ｙ、ｚ）＝（０、０、３２）にした場合の結果である。また、図１０（ｂ）に関しては、物体の中心位置を、カメラ座標系で（ｘ、ｙ、ｚ）＝（０、０、７２）にした場合の結果である。つまり、カメラ座標系の原点４００と、図６（ａ）における物体の中心位置（カメラ座標系において、（ｘ、ｙ、ｚ）＝（０、０、４８））とを結ぶ直線上を平行移動したものである。図１０に示したように、このような物体の移動に伴い、物体の画像上のサイズが変動する。
【００８１】
このため、例えば、非特許文献４に開示の手法等では、このようなサイズの変動に対応するために、３次元モデルと、入力画像との何れかを、拡大、若しくは、縮小する必要がある。つまり、物体のサイズ変動に対応する探索をする必要がある。これに対して、本実施形態に係る物体モデルでは、このようなサイズの変動があったとしても、画像面４１に投影した物体の中心位置から、それぞれの特徴点への観測方向ベクトルは不変であるので、サイズ変動に対応する探索をする必要が無い。実際に、図１０（ａ）および（ｂ）に示した物体の位置姿勢推定結果では、何れも、図９（ａ）に示したものと同じ推定結果になっている。すなわち、物体の中心位置が、画素位置座標系で（ｕ、ｖ）＝（６３９画素、４２５画素）、物体座標系３軸の回転角が（α、β、γ）＝（３０、２０、０）という推定結果である。つまり、このようなサイズの変動に対して、サイズの変動に対応する探索をしなくても、正しく物体の位置姿勢が推定でき、サイズ変動に不変な識別が可能であるといえる。図１１（ａ）および（ｂ）にも、同様の結果を示す。これは、図６（ｂ）の物体と姿勢は同じで、物体の中心位置だけを、カメラ座標系の原点４００と、図６（ｂ）における物体の中心位置とを結ぶ直線に沿って平行移動させ、それを撮影した画像を入力画像とした場合の結果である。具体的には、図１１（ａ）では、物体の中心位置が、カメラ座標系において（ｘ、ｙ、ｚ）＝（４、２、３２）である。図１１（ｂ）では、物体の中心位置が、カメラ座標系において（ｘ、ｙ、ｚ）＝（１２、６、７２）である。この場合でも、それぞれの物体の位置姿勢推定結果では、何れも、図９（ｂ）に示したものと同じ推定結果となっている。すなわち、物体の中心位置が、画素位置座標系で（ｕ、ｖ）＝（７９８画素、３４７画素）、物体座標系３軸の回転角が（α、β、γ）＝（−１５、４０、０）という推定結果である。このように、本実施形態に係る物体モデルを用いることにより、サイズの変動に対して不変に、物体の位置姿勢識別が可能である。
【００８２】
一方で、このようなサイズ変動に対する不変性は、逆にサイズの違い、つまり、カメラに対する物体の奥行き方向における位置の違いを検出できないというデメリットも含んでいることになる。つまり、図１０（ａ）と（ｂ）とを違うものとして識別したい場合、又は、図１１（ａ）と（ｂ）とを違うものとして識別したい場合、上記の物体の位置姿勢の推定方法のみでは対応できない。しかし、もし、このような違いを検出したいのであれば、まず、上記の物体の位置姿勢の推定方法で、物体の位置姿勢のみを推定する。そして、その後、各特徴点の画像座標系での位置に基づいて、カメラに対する物体の奥行き方向における位置の違いを検出すれば良い。なお、各特徴点の画像座標系での位置は、図５の特徴点位置検出部５０３で検出したものである。具体的には、例えば、推定した物体の中心位置から、画像面４１上で物体の中心位置から最も遠い特徴点までの距離の違いを、その物体の、カメラに対する奥行き方向における位置の違いとしてしまう方法が考えられる。この場合、奥行き方向における位置に関する推定精度は低く、また、絶対位置も求められない。しかしながら、少なくとも図１０（ａ）と（ｂ）との違い、又は、図１１（ａ）と（ｂ）との違いについて、それぞれ、カメラに対する物体の奥行き方向における位置が違うものであるという程度の識別は可能である。また、本実施形態に係る物体モデルでは、物体の中心位置から各特徴点への方向のみを持っているとした。しかしながら、この特徴点への方向と共に、物体の奥行き方向の位置を求めるのに必要な情報を保持しておき、それを用いて物体の奥行き方向の位置を推定するようにしても良い。物体の奥行き方向の位置を求めるのに必要な情報としては、様々なものが考えられる。例えば、物体の中心から、各特徴点までの絶対距離が挙げられる。ここで、物体中心から、ある特徴点までの絶対距離の情報を保持しているとした場合に、その情報を用いて、物体の奥行き方向の位置を求める方法について、具体的な例を用いて説明する。
【００８３】
まず、物体モデルが持つ、各特徴点の方向に関する情報のみを利用し、上述のような物体の位置姿勢の推定方法で、物体の位置姿勢のみを推定する。この時の物体の位置（つまり、画像面４１上での物体の中心位置）が、画像座標系において（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）であったとする。また、物体の姿勢に関しては、物体座標系の３軸に関する回転が、（α、β、γ）＝（Ａ、Ｂ、Γ）であったとする。そして、複数の特徴点の中から、ある特徴点を１つ選択する。ここで選択する特徴点は任意であるが、少なくとも、図５（ａ）の特徴点位置検出部５０３において位置が検出された特徴点である必要がある。また好適には、上記物体の位置姿勢の推定結果において、前述のモデル方向ベクトルと、観測方向ベクトルとの成す角が、できるだけ小さかったものを選択すると良い。そして、ここで選択された特徴点と、物体の中心との絶対距離がＬであったとする。これが、上述した物体の奥行き方向の位置を求めるのに必要な情報である。次いで、選択された特徴点に関して、図５（ａ）の最大一致度位置姿勢探索部５０４での処理において求めたのと同じ、モデル方向ベクトルｐ”と、観測方向ベクトルｑ”を、上記求めた物体の位置姿勢の条件下で求める。すなわち、物体の位置姿勢が、（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）、（α、β、γ）＝（Ａ、Ｂ、Γ）という条件下である。また、このモデル方向ベクトルｐ”を算出する途中段階で求める、物体の中心位置から、特徴点の方向への長さ１のベクトルを、物体の姿勢に従って回転させた、回転後のベクトルｆＲ’のｚ成分ｆＲｚ’も求めておく（図８の、ステップＳ８０４での処理の説明を参照）。このｆＲｚ’は、モデル方向ベクトルｐ”を求める際に必然的に求めることとなる。そして、詳細な導出は割愛するが、これらを用いることにより、カメラ座標系における物体の中心位置（ｘ、ｙ、ｚ）は、次の式（７）により求められる。
【００８４】
【数７】
2012043308.tif 000013
【００８５】
ここで、ｚ座標を求める際に用いているＦは、レンズの焦点距離であり、本実施形態ではＦ＝３．５ｃｍ（＝３５ｍｍ）である。このように、本実施形態に係る物体モデルに、物体の中心からある特徴点までの絶対距離といった、物体の奥行き方向の位置を求めるのに必要な情報を付加しておくことで、物体の奥行き方向の位置を推定することも可能である。
【００８６】
以上、第１実施形態では、まず、図１に示したような、１辺１０ｃｍの立方体であって、８個の各頂点それぞれが、ユニークなカラーでマーキングされている物体１０の、物体モデルを記述する方法の例として説明した。また、記述した物体モデルを用いて、この物体１０をカラーカメラで撮影した画像に対して、この物体１０が画像上のどの位置に、どのような姿勢で存在するかを識別する方法の例として説明した。
【００８７】
（第２実施形態）
第２実施形態では、物体モデル記述方法を実現する別形態として、物体モデルを記述する対象の物体を撮影した多数の画像を用い、ＥＭアルゴリズムを利用した学習により物体モデルを生成する物体モデル生成方法の例を示す。また、生成した物体モデルを用い、入力された画像中に、その物体が存在するか否か、および、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例を示す。
【００８８】
第１実施形態では、物体モデルを記述する対象物体にマーキングが施され、画像上で容易に検出可能なマーカがあるとした。そのため、そのマーカを特徴点として利用し、物体モデルを記述する例を示した。物体モデルを記述する対象物体が、第１実施形態のように検出容易な特徴を有しているならば、それらを利用して物体モデルを記述すれば良い。しかし、一般的な物体においては、このような特徴が、予め判明している可能性は少ない。そこで、本実施形態では、物体モデルを記述する対象となる物体を、様々な位置、方向から撮影した画像を用いて、この物体モデルを記述する際に利用する特徴点の属性を学習により獲得する。そして、学習により獲得した特徴点の属性を用い、この物体の物体モデルを生成する。また、第１実施形態に係る物体モデルでは、特徴点の属性と、物体の中心位置から特徴点への３次元的な方向とを、物体モデルとして用いた。これに対し、本実施形態では、特徴点の属性と３次元的な方向とを用いてモデル化するという基本的な概念は同じであるが、この物体モデルを確率モデルとして記述する。以下では、第１実施形態とは異なる、多数の画像を用いて特徴点の属性を学習する点と、物体モデルを確率モデルで記述するという点の２点について詳細に説明する。そして、その他の第１実施形態と同様の部分（例えば、座標系の定義等も含む）に関しては説明を省略する。
【００８９】
まず、本実施形態における前提条件について説明する。本実施形態において、物体モデルを記述する対象物体は、いわゆる３Ｄモデルを持っているものとする。ここで、３Ｄモデルとは、例えばポリゴンモデルのように、対象物体の表面が、３次元情報として表現されているものである。このような３Ｄモデルを予め持っていない物体に関しては、例えば特許文献２に開示の手法を用いて、物体の３Ｄモデルを生成すれば良い。
【００９０】
このような３Ｄモデルは、通常、３次元の座標系が既に設定されている。つまり、３Ｄモデルが有する点や面の情報を記述するために、何らかの３次元座標系が設定されている。そこで、本実施形態では、物体に対して設定する物体座標系に、この３Ｄモデルに既に設定されている座標系（この座標系が直交座標系でない場合は、直交座標系に変換したもの）を設定する。なお、物体に対して設定する物体座標系は、図２（ａ）に示した、第１の実施形態における物体座標系設定部２００での処理にて設定するものに対応する。
【００９１】
ただし、物体に対して設定する物体座標系は、第１実施形態の説明においても述べたように、座標系の原点が、物体の中心付近にあることが望ましい。もし、３Ｄモデルに既に設定されている座標系の原点が、物体の中心付近から離れた位置に設定されている場合は、この座標系の原点が、物体の中心付近となるように座標系を平行移動し、それを、この物体に対して設定する物体座標系とすれば良い。
【００９２】
また、上述のように、本実施形態においては、物体モデルを記述する対象物体を、様々な方向、位置から撮影した多数の画像を利用する。この多数の画像は、できるだけ満遍なく、様々な方向、位置から対象物体を撮影した画像であることが望ましい。本実施形態に係る物体モデル生成方法においては、このような画像をＮ枚用意し、それらを用いて物体モデルを生成する。また、本実施形態に係る物体モデル生成方法では、このＮ枚の画像それぞれについて、画像を撮影したカメラと、画像内に存在する、物体モデルを生成する対象となる物体との、相対位置姿勢の情報を、物体モデル生成における処理において利用する。ここでのカメラと物体との相対位置姿勢の情報は、第１実施形態に係る物体位置姿勢決定方法で推定した物体の位置姿勢とは多少異なる。第１実施形態に係る物体位置姿勢決定方法で推定した物体の位置姿勢は、画像面に投影した物体中心の、画像座標系における位置（ｘ”、ｙ”）と、物体座標系の３軸に関する回転角（α、β、γ）とで表現されるものであった。これに対して、第２実施形態では、カメラと物体との相対位置姿勢は、物体中心位置の表現が異なり、物体中心の、カメラ座標系における位置（ｘ、ｙ、ｚ）と、物体座標系の３軸に関する回転角（α、β、γ）で表現されるものである。
【００９３】
このようなカメラと物体との相対位置姿勢の情報は、物体モデル生成において利用する画像の枚数（Ｎ）が少なければ、手動でこの情報を設定しておいても良い。ただし、上述の通り、この物体モデル生成において利用する画像は、できるだけ満遍なく、様々な方向、位置から対象物体を撮影した画像であることが望ましいので、手動でこの情報を設定するのは困難である。そこで、本実施形態で物体モデルを生成する対象物体は、上述の通り、３Ｄモデルが存在するので、例えば、非特許文献５に開示の手法等を用いることにより、この相対位置姿勢の情報を予め求めておくようにすればよい。ここで非特許文献５に開示の手法とは、３Ｄモデルを利用して、カメラと物体との相対位置姿勢を推定する方法である。
【００９４】
また他の方法としては、まず、物体モデル生成に利用するための、対象物体のＮ枚の画像を撮影する際に、予め、撮影するカメラと、対象物体の、カメラからは観測できないような位置（例えば、物体の内側等）とに、多数の磁気センサ等を取り付けておく。そしてこのカメラで撮影した時の、これらの磁気センサの情報に基づいて、カメラと物体との相対位置姿勢を算出するというようにしてもよい。このように、Ｎ枚の各画像それぞれについて、その画像を撮影した時の、カメラと対象物体との相対位置姿勢を設定できるならば、上述したものに限らず、どのような手法を用いて相対位置姿勢を設定してもよい。
【００９５】
このように、本実施形態の物体モデル生成方法では、物体モデルを生成する対象物体の３Ｄモデルと、その物体を様々な方向、位置から撮影した多数の画像と、各画像内に存在する対象物体の、カメラと物体の相対位置姿勢と、を用いる。これらのデータは、物体モデル生成の処理に先立って、予め用意されているものとする。
【００９６】
図１２を参照して、第２実施形態に係る物体モデルを生成する装置の処理ブロック図について説明する。また、併せて、図１３を参照して、第２実施形態に係る物体モデルを生成する方法の処理フローについて説明する。
【００９７】
まず、画像・位置姿勢データ入力部１２００では、上述の物体モデルを生成する対象物体を様々な方向、位置から撮影した多数の画像（本実施形態ではＮ枚）、および、各画像内に存在する対象物体の、カメラと物体の相対位置姿勢の情報を入力する。そして、ここで入力された画像、および、各画像に対応するカメラと物体の相対位置姿勢の情報（以下、「相対位置姿勢データ」と称する）を、画像・位置姿勢データ保持部１２０１に記録して保持する。ここでの処理は、図１３のステップＳ１３０１に対応する。
【００９８】
次いで、３Ｄモデル入力部１２０２において、上述の物体モデルを生成する対象物体の３Ｄモデルを入力し、入力された３Ｄモデルを、３Ｄモデル保持部１２０３に記録して保持する。ここでの処理は、図１３のステップＳ１３０２に対応する。ここまでの処理は、予め用意されたデータを入力し、記録して保持する処理であって、以降の処理で、実際にこれらのデータを用いた物体モデル生成処理が行われる。
【００９９】
画像入力部１２０４では、画像・位置姿勢データ保持部１２０１から、画像を１枚ずつ順に選択して、初期特徴点検出部１２０５に入力する。画像を選択する順は任意であるので、例えば、画像に１からＮまでの番号が付与されていたとするならば、その順に従って選択して入力すれば良い。以下の説明では、この画像入力部１２０４において、ｎ番目（ｎ＝１、２、・・・、Ｎ）の画像を入力したとする。ここでの処理は、図１３のステップＳ１３０３に対応する。
【０１００】
次に、初期特徴点検出部１２０５において、画像入力部１２０４により入力されたｎ番目の画像に対して、多数の初期特徴点を検出し、それらの初期特徴点の画像座標系での位置と、各初期特徴点の属性を算出する処理を行う。本実施形態では、ここでの初期特徴点およびその属性として、非特許文献６に開示されているＳＩＦＴ特徴を用いる。
【０１０１】
本実施形態における初期特徴点の位置は、非特許文献６に開示のＳＩＦＴ特徴における、Ｋｅｙ  Ｐｏｉｎｔｓの位置であり、これらの画像座標系における位置を求める。また、初期特徴点の属性は、非特許文献６に開示のＳＩＦＴ特徴における、Ｄｅｓｃｒｉｐｔｏｒ（本実施形態では、１２８次元のベクトルａ）であり、これを各初期特徴点の属性として算出する。そして、ここで求めた多数の初期特徴点の位置と、その属性の情報とを、初期特徴点位置情報変換部１２０７に送る。ここでの処理は、図１３のステップＳ１３０４に対応する。本実施形態では、このように、初期特徴点としてＳＩＦＴ特徴を用いる。しかし、本発明はこれに限るものではなく、例えば、非特許文献７に開示の手法等のように、画像から何らかの特徴点の位置と、その特徴点に関する属性が得られるような手法であれば、その他の手法を用いても構わない。また、ＳＩＦＴのような局所的な輝度勾配方向のヒストグラムに類する他の特徴記述を用いても良い。
【０１０２】
続いて、位置姿勢データ入力部１２０６において、画像・位置姿勢データ保持部１２０１から、画像入力部１２０４で入力されたｎ番目の画像に対応するカメラと物体との相対位置姿勢データを選択し、初期特徴点位置情報変換部１２０７に送る。ここで、相対位置姿勢データは、上述のように、物体モデルを生成する対象物体の中心（つまり、物体に設定された物体座標系の原点）の、カメラ座標系での位置（ｘ、ｙ、ｚ）、および、物体座標系の３軸に関する回転角（α、β、γ）である。この位置姿勢データ入力部１２０６では、画像入力部１２０４で入力されたｎ番目の画像に対応する、これら６つの値からなるデータを、画像・位置姿勢データ保持部１２０１から読み出して、初期特徴点位置情報変換部１２０７に送ることになる。ここでの処理は、図１３のステップＳ１３０５に対応する。
【０１０３】
次に、初期特徴点位置情報変換部１２０７では、まず、初期特徴点検出部１２０５において検出された多数の初期特徴点から、物体モデルを生成する対象物体表面上のものでないものを削除する。次いで、削除されなかった初期特徴点（以下、「物体上初期特徴点」と称する）のそれぞれについて、その初期特徴点の画像座標系における位置を、物体座標系での位置情報に変換する。そして、物体上初期特徴点のそれぞれについて、物体座標系に変換した位置情報と、初期特徴点検出部１２０５で求められた初期特徴点の属性、および、画像入力部１２０４で入力された画像の番号を、初期特徴点情報保持部１２０８に記録して保持する。ここでの処理の詳細について、図１４（ａ）を参照して説明する。
【０１０４】
図１４（ａ）は、初期特徴点位置情報変換部１２０７における処理の概要を示すための、仮想的なカメラ座標系空間を示す図である。ここで、カメラ１４０は、仮想的なカメラであり、画像入力部１２０４で入力されたｎ番目の画像を撮影したカメラに対応し、このカメラの主点が、カメラ座標系の原点１４００である。このカメラ１４０が、図１４（ａ）に示した、仮想的なカメラ座標系を形成することになる。このカメラ座標系の３軸は、煩雑になるため図示していないが、第１実施形態でのカメラ座標系と同様である。画像面１４１は、第１実施形態における画像面と同様のもので、画像入力部１２０４で入力された画像に対応する。画像面１４１上の、物体像１４３は、画像入力部１２０４で入力されたｎ番目の画像内の、物体モデルを生成する対象物体の像である。また、画像面１４１上の、初期特徴点１４４、および、初期特徴点１４５は、初期特徴点検出部１２０５で検出された初期特徴点の位置を示している。
【０１０５】
まず、初期特徴点位置情報変換部１２０７における、初期特徴点検出部１２０５で検出された多数の初期特徴点から、物体モデルを生成する対象物体表面上のものでないものを削除する処理について説明する。初期特徴点位置情報変換部１２０７では、まず、３Ｄモデル保持部１２０３を参照し、３Ｄモデル入力部１２０２により入力された、物体モデルを生成する対象物体の３Ｄモデルを読み込む。そして、位置姿勢データ入力部１２０６により入力された、相対位置姿勢データに基づいて、読み込んだ３Ｄモデルを、仮想的なカメラ座標系に配置する。図１４（ａ）の３Ｄモデル１４２は、この処理により、カメラ座標系に配置されたものを示している。ここで、原点１４２０と、ｘ’軸１４２１、ｙ’軸１４２２、ｚ’軸１４２３の３軸からなる３次元座標系は、予め、物体モデルを生成する対象となる物体に定めておいた物体座標系である。つまり、図１４（ａ）に示した物体座標系が、位置姿勢データ入力部１２０６により入力された相対位置姿勢データで仮想的なカメラ座標系に配置され、その物体座標系に基づいて、３Ｄモデル１４２が配置されていることになる。なお、相対位置姿勢データとは、物体座標系の原点の、カメラ座標系での位置（ｘ、ｙ、ｚ）、および、物体座標系の３軸に関する回転角（α、β、γ）を意味する。そして、初期特徴点検出部１２０５で検出された多数の初期特徴点のそれぞれについて、その初期特徴点の画像面１４１上での位置と、カメラ座標系の原点１４００とを結ぶ直線を引く。この時、この直線が、仮想的なカメラ座標系に配置した、３Ｄモデル１４２の表面と交差するならば、対応する初期特徴点は、物体モデルを生成する対象物体表面上にあると判定する。逆に、この直線が、３Ｄモデル１４２の表面と交差しない場合、対応する初期特徴点は、物体モデルを生成する対象物体表面上にないと判定して削除する。この処理を、具体的に図１４（ａ）に示した初期特徴点１４４、および、初期特徴点１４５を例として説明する。初期特徴点１４４は、図１４（ａ）に示す通り、物体モデルを生成する対象物体の像、つまり物体像１４３上にある。この初期特徴点１４４とカメラ座標系の原点１４００とを結ぶ直線１４４Ｌは、逆投影点１４４Ｎにおいて、３Ｄモデル１４２の表面と交差している。一方、初期特徴点１４５は、図１４（ａ）に示す通り、物体像１４３の外に存在している。つまり、この初期特徴点１４５は、この物体ではなく、背景から得られた初期特徴点である。このような場合、この初期特徴点１４５とカメラ座標系の原点１４００とを結ぶ直線１４５Ｌは、図１４に示す通り、３Ｄモデル１４２の表面と交差しない。このように、上記示した直線と３Ｄモデル１４２の表面とが交差するか否かを基準にする方法を用いることにより、画像上で観測された初期特徴点が、物体の表面上の特徴点であるか否かを判定することが可能となる。初期特徴点位置情報変換部１２０７では、まずこのような処理により、初期特徴点検出部１２０５において検出された多数の初期特徴点の全てについて、物体モデルを生成する対象物体表面上のものでないものを削除し、物体上初期特徴点のみを残す処理を行う。
【０１０６】
次に、削除されずに残った物体上初期特徴点のそれぞれについて、その物体上初期特徴点の位置（画像座標系における位置）を、物体座標系での位置情報に変換する処理について説明する。ここでは、まず上記説明した、物体上初期特徴点の画像面１４１上での位置とカメラ座標系の原点１４００とを結ぶ直線と、３Ｄモデル１４２の表面とが交差する点を考え、その点の物体座標系における位置を求める。そして、この点の物体座標系における位置を極座標表現（θ’、φ’、ｒ’）に変換し、この内θ’とφ’を、対応する物体上初期特徴点の位置情報とする。つまり、図１４（ａ）に示した初期特徴点１４４の場合は、直線１４４Ｌが物体モデル１４２と交差する逆投影点１４４Ｎの、物体座標系での位置を求め、それを極座標表現に変換し、これを、初期特徴点１４４の位置情報とすることになる。ここで、この極座標表現におけるθ’とφ’は、第１実施形態における方位角θと仰角φと同じ定義のものである。従って、直線と物体モデル１４２が交差する点の、物体座標系における位置が（ｘ’、ｙ’、ｚ’）＝（Ｘ’、Ｙ’、Ｚ’）であるなら、極座標表現（θ’、φ’、ｒ’）には、以下の式（８）により変換できる。
【０１０７】
【数８】
2012043308.tif 000014
【０１０８】
仮に、この直線と物体モデル１４２が交差する点が複数ある場合は、その複数の点の内、最もカメラ座標系の原点１４００に近い点を選択し、その点に関して求めた物体座標系の位置を極座標表現に変換したものを、その初期特徴点の位置情報とする。初期特徴点位置情報変換部１２０７では、削除されずに残った全ての物体上初期特徴点に対し、このような極座標表現の位置情報を求める処理を行う。
【０１０９】
最後に、初期特徴点位置情報変換部１２０７では、削除されずに残った全ての物体上初期特徴点に関する、以下の表５に示す３種類のデータを、初期特徴点情報保持部１２０８に記録して保持する。
【０１１０】
【表５】
2012043308.tif 000015
【０１１１】
つまり、残された全ての物体上初期特徴点について、１つの物体上初期特徴点につき１２８＋２＋１＝１３１個のパラメータからなる情報を、初期特徴点情報保持部１２０８に記録することになる。この表５に示した、１３１個のパラメータからなる情報を、以下では初期特徴点情報と記載する。以上が、初期特徴点位置情報変換部１２０７での処理となる。ここでの処理は、図１３のステップＳ１３０６に対応する。上述のように画像入力部１２０４から初期特徴点位置情報変換部１２０７までの処理により、画像入力部１２０４で入力されたｎ番目の画像中に存在する複数の物体上初期特徴点に関する表５に示した初期特徴点情報が初期特徴点情報保持部１２０８に記録される。
【０１１２】
上記説明した、画像入力部１２０４から初期特徴点位置情報変換部１２０７までの処理を、画像・位置姿勢データ保持部１２０１に保持されているＮ枚の画像全てに対して行うまで繰り返し上記処理を行う。ここでの処理は、図１３の、ステップＳ１３０７に対応する。これにより、画像・位置姿勢データ保持部１２０１に保持されているＮ枚の画像それぞれについて、各画像中に存在する、複数の物体上初期特徴点に関する上記表５に示した初期特徴点情報が、初期特徴点情報保持部１２０８に記録されることになる。画像・位置姿勢データ保持部１２０１に保持されているＮ枚の画像全てに対して、上記処理を行った場合（ステップＳ１３０７；ＹＥＳ）、次の初期モデル設定部１２０９での処理に進む。
【０１１３】
初期モデル設定部１２０９では、まず、初期特徴点情報保持部１２０８に保持された多数の初期特徴点情報から、複数個の初期特徴点情報をランダムにサンプリングする。そして、詳細な処理は後に説明するが、このランダムにサンプリングした複数個の初期特徴点情報に基づいて、初期の物体モデルを生成し、その情報を、特徴点モデル保持部１２１１に記録する。ここでランダムにサンプリングする個数が、本実施形態における物体モデルの特徴点の数となる。本実施形態の説明においては、ここでランダムにサンプリングする個数をｋ個とする。つまり、本実施形態における物体モデルの生成では、ｋ個の特徴点からなる物体モデルを生成することになる。ここでの個数は、凡そ、数個から数百個程度の値で、予め適当な数に決めておけば良い。ただし、この個数が少なすぎると充分な物体モデルが生成されない可能性が高い。しかし、逆にこの個数が多すぎると、例えば、後に説明する物体識別方法における処理負荷が高くなる等の問題が発生する。そのため、好適には、この個数を変えたいくつかのパターンで物体モデルを生成しておき、後に説明する物体識別方法等、この物体モデルを利用した処理における精度や、処理負荷に応じて決めてやれば良い。
【０１１４】
初期モデル設定部１２０９での、複数個の初期特徴点情報に基づいて、初期の物体モデルを生成する処理の詳細と、本実施形態における物体モデルの概要について説明する。
【０１１５】
本実施形態に係る物体モデルも、第１実施形態で説明した物体モデルと同様に、基本的には、複数の特徴点（本実施形態ではｋ個）の属性と、それぞれの３次元的な方向の情報から成るものである。
【０１１６】
まず、本実施形態の物体モデルにおける、特徴点の属性について説明する。第１実施形態の物体モデルでは、特徴点の属性として色相情報を用いた。これに対して、本実施形態で生成する物体モデルでは、この特徴点の属性として、非特許文献６に開示のＳＩＦＴ特徴におけるＤｅｓｃｒｉｐｔｏｒの確率密度分布を用いる。以下では簡単のため、ＳＩＦＴ特徴におけるＤｅｓｃｒｉｐｔｏｒを「ＳＩＦＴ記述子」と称する。このＳＩＦＴ記述子は、上述のように、本実施形態では１２８次元のベクトルａであり、本実施形態では、この確率密度分布を、式（９）に示すような正規分布ＰＡ（ａ）としてモデル化する。
【０１１７】
【数９】
2012043308.tif 000016
【０１１８】
式（９）に示した、正規分布でモデル化した確率密度分布は、１２８次元のベクトル値である、平均ＳＩＦＴ記述子ベクトルＡ、および、ＳＩＦＴ記述子標準偏差σＡにより決まる。そこで、この平均ＳＩＦＴ記述子ベクトルＡ、および、ＳＩＦＴ記述子標準偏差σＡを、各特徴点の属性を記述するための情報として用いる。以下では、ｉ番目（ｉ＝１、２、・・・、ｋ）の特徴点に対応する平均ＳＩＦＴ記述子ベクトルをＡｉ、また、ＳＩＦＴ記述子標準偏差をσＡｉと記載する。
【０１１９】
続いて、本実施形態の物体モデルにおける、物体中心から特徴点への３次元的な方向の情報について説明する。第１実施形態の物体モデルでは、検出が容易な特徴点を用いていたので、特に特徴点の位置ずれ等を考慮せず、物体の中心から、その特徴点への方向を、単純に方位角θおよび仰角φを用いてモデル化した。これに対して、本実施形態では、第１実施形態に比べて、特徴点の曖昧性が強いため、第１実施形態と比較すると、特徴点の位置がずれる可能性が高い。そこで本実施形態では、このような特徴点の位置ずれを考慮し、物体中心から特徴点への３次元的な方向の情報を、特徴点の属性と同様に、方位角θ’と、仰角φ’の確率密度分布としてモデル化する。本実施形態では、この確率密度分布を、特徴点の属性と同様に、式（１０）に示すような正規分布ＰＳ（θ’、φ’）としてモデル化する。
【０１２０】
【数１０】
2012043308.tif 000017
【０１２１】
ここで、Ａｎｇｌｅ（｛θ、φ｝、｛θ’、φ’｝）は、方位角θ、仰角φの方向と、方位角θ’、仰角φ’の方向との成す角であり、以下の式（１１）により求められる。
【０１２２】
【数１１】
2012043308.tif 000018
【０１２３】
式（１０）に示した、正規分布でモデル化した確率密度分布は、平均方位角θと、平均仰角φ、および、平均方向からの標準偏差σＳにより決まる。そこで、この平均方位角θと、平均仰角φ、および、平均方向からの標準偏差σＳを、各特徴点の方向のモデルを記述するための情報として用いる。以下では、ｉ番目（ｉ＝１、２、・・・、ｋ）の特徴点に対応する平均方位角をθｉ、平均仰角をφｉ、および、平均方向からの標準偏差をσＳｉと記載する。
【０１２４】
以上をまとめると、本実施形態における物体モデルは、各特徴点についての、以下の表６に示す情報で構成されることになる。
【０１２５】
【表６】
2012043308.tif 000019
【０１２６】
初期モデル設定部１２０９では、まず、ｋ個の初期特徴点情報をランダムにサンプリングする。そして、ｉ番目にサンプリングした初期特徴点情報（表５を参照）のデータの内、表５に示した１番目の項目のデータである１２８次元のベクトルａを、この表６に示した１番目の項目である、平均ＳＩＦＴ記述子ベクトルＡｉの初期値として設定する。また、表５に示した２番目の項目のデータ（θ’、φ’、ｒ’）の内、θ’を表６に示した３番目の項目である平均方位角θｉ、φ’を４番目の項目であるφｉの初期値として設定する。表６に示した項目の内、残りの２つの項目（２番目と５番目の項目である標準偏差）に関しては、ｋ個全ての特徴点に対して、予め定めた所定の値を設定する。ここで設定する予め定めた所定の値は、正の値であれば任意である。ただし、この値として非常に小さい値を設定すると、後述のＥＭアルゴリズムを利用した学習がうまく行われない可能性が高くなる。しかし、逆にこの値を非常に大きい値にしてしまっても、やはり学習がうまく行われない可能性が高くなる。そこで、ここで設定する予め定めた所定の値は、後述のＥＭアルゴリズムを利用した学習がうまく行われるような、小さすぎず、且つ、大きすぎない値を、実験的に設定してやれば良い。ＥＭアルゴリズムを利用した学習がうまく行われるとは、具体的には後に詳細に述べるが、Ｎ枚の画像に対する尤度が増加していくことを意味する。ここで実験的に設定する値のオーダは、表６に示した２番目の項目であるＳＩＦＴ記述子標準偏差σＡｉについては、ＳＩＦＴ記述子の正規化方法（詳細は、非特許文献６を参照）に依存する。本実施形態においては、この正規化方法として、１２８次元のベクトル値であるＳＩＦＴ記述子の、各要素の総和が１となるような正規化を行う。このような場合、ＳＩＦＴ記述子標準偏差σＡｉの値のオーダは、凡そ０．１から０．９程度の値で実験的に設定すれば良い。また、表６に示した５番目の項目である平均方向からの標準偏差σＳｉについては、凡そ３０から１００程度の値で実験的に設定すれば良い。初期モデル設定部１２０９では、上述のように、全部でｋ個の特徴点に関する上記表６に示した値を設定し、これらを特徴点モデル保持部１２１１に記録する。ここでの処理は、１３のステップＳ１３０８に対応する。
【０１２７】
ここまでの処理により、初期特徴点情報保持部１２０８に、Ｎ枚の画像分の、上記表５に示した初期特徴点情報が記録される。また、特徴点モデル保持部１２１１に、初期のモデルとして、本実施形態の物体モデルにおけるｋ個の特徴点ごとに上記表６に示した情報が記録される。以降の、最適特徴点検出部１２１０からの処理では、これらの情報を用いて、特徴点モデル保持部１２１１に記録された情報を、ＥＭアルゴリズムを利用した学習により更新していくことになる。
【０１２８】
最適特徴点検出部１２１０では、まず、初期特徴点情報保持部１２０８に保持された初期特徴点情報から、画像番号ごとに、特徴点モデル保持部１２１１に記録された各特徴点のそれぞれに最も一致する初期特徴点情報を検出する。そして、検出された最も一致する初期特徴点に関する情報を、画像ごとに特徴点分記録すると共に、その画像における尤度を算出する処理を行う。
【０１２９】
この最適特徴点検出部１２１０における具体的な処理の詳細について、ここでの処理フローを示した図１４（ｂ）参照して説明する。
【０１３０】
まず、ステップＳ１４０１において、１からＮまでの画像番号を順に選択していく。以下では、ここで、画像番号ｎを選択したとして説明する。
【０１３１】
続いて、ステップＳ１４０２において、１からｋまでの特徴番号を順に選択していく。以下では、ここで、特徴番号ｉを選択したとして説明する。
【０１３２】
次の、ステップＳ１４０３において、初期特徴点情報保持部１２０８に保持された初期特徴点情報から、まず、画像番号ｎに対応する初期特徴点情報のみを抽出する。そして、抽出された初期特徴情報の全てに対して、特徴番号ｉに対応する特徴点との一致度を算出する。ここで、この一致度Ｆ１は、以下の式（１２）により求める。
【０１３３】
【数１２】
2012043308.tif 000020
【０１３４】
この式（１２）中、Ａｉ、σＡｉ、θｉ、φｉ、σＳｉは、ステップＳ１４０２で選択された特徴番号ｉに対応する特徴の、上記表６に示した情報に対応するものである。また、ａ、θ’、φ’は、一致度を算出する対象の初期特徴情報であって、上記表５に示したものに対応する。この式（１２）を用いた一致度の算出を、画像番号に基づいて抽出された初期特徴情報全てに対して求め、最大の一致度である初期特徴情報を検索する。そして、ここで検索された初期特徴情報を、以下の表７に示す形式で記録しておく。
【０１３５】
【表７】
2012043308.tif 000021
【０１３６】
表７の５番目の項目であるδｎｉは、表にも示した通り、ここで求めた最大の一致度が、所定値以上であるか否かを示すデータである。具体的には、求めた最大の一致度が、例えば、０．１以上ならば、特徴番号ｉに対応する初期特徴情報が検出できたとみなして、δｎｉ＝１とし、０．１以下ならば、対応する初期特徴情報が検出できなかったとみなし、δｎｉ＝０とするといったデータである。ステップＳ１４０３では、このように、画像番号ｎに対応する初期特徴情報の中から、特徴番号ｉに対応する特徴点との一致度が最も高いものを検索し、その初期特徴情報について、上記表７に示した情報を記録する処理を行う。
【０１３７】
続いて、ステップＳ１４０４において、ステップＳ１４０２で、ｋ個の特徴番号を全て選択したか否かを判定する。ステップＳ１４０２において、ｋ個の特徴番号の全てを選択したならば（ステップＳ１４０４；ＹＥＳ）、次のステップＳ１４０５に進む。まだ選択していない特徴番号があるならば（ステップＳ１４０４；ＮＯ）、ステップＳ１４０２に戻り、新たな特徴番号を選択して、ステップＳ１４０３の処理を、新たな特徴番号に対して実行することになる。このループ処理により、ステップＳ１４０１で選択された画像番号に対応する初期特徴情報の中から、ｋ個の特徴それぞれについて、最も一致度が高かった初期特徴情報が検索される。そして、それぞれについて、上記表７に示したデータ（つまり、ｋ個分の表７に示したデータ）が記録されることになる。
【０１３８】
次のステップＳ１４０５において、ステップＳ１４０１で選択された画像番号ｎに対応する尤度Ｌｎを算出して記録する。この尤度Ｌｎは、次の式（１３）により求める。
【０１３９】
【数１３】
2012043308.tif 000022
【０１４０】
この式（１３）中の、ｍｎｉ、δｎｉは、それぞれ上記表７に示したものである。この画像番号ｎに対応する尤度Ｌｎは、端的に言えば、最大の一致度が所定値以下であったものに関しては無視し、求めた最大の一致度が所定値以上であったものに関してのみ、その一致度の積を求め、それを記録しておくことになる。
【０１４１】
そして、ステップＳ１４０６において、ステップＳ１４０１で、Ｎ個の画像番号を全て選択したか否かを判定する。ステップＳ１４０１において、Ｎ個の特徴番号の全てを選択したならば（ステップＳ１４０６；ＹＥＳ）、この最適特徴点検出部１２１０での処理が終了となる。まだ選択していない画像番号があるならば（ステップＳ１４０６；ＮＯ）、ステップＳ１４０１に戻り、新たな画像番号を選択して、新たな画像番号に対して処理を実行することになる。このループ処理により、Ｎ枚全ての画像のそれぞれについて、ｋ個の特徴点分の、上記表７に示したデータ、および、その画像に対応する尤度が記録されることになる。このようなデータの記録が全て終了した段階で、最適特徴点検出部１２１０での処理が終了となる。
【０１４２】
このように、最適特徴点検出部１２１０では、まず、初期特徴点情報保持部１２０８に保持された初期特徴点情報から、画像番号ごとに、特徴点モデル保持部１２１１に記録された、各特徴点と、最も一致度が高い初期特徴点情報とを検出する。そして、検出された最も一致度が高い初期特徴点に関して、上記表７に示した情報を、画像ごとに特徴点分記録すると共に、その画像における尤度を算出する処理を行う。ここでの処理は、図１３のステップＳ１３０９の最適特徴点の検出処理に対応する。
【０１４３】
続いて、特徴点モデル更新部１２１２において、まず、最適特徴点検出部１２１０において記録した、画像ごとの尤度を用い、式（１４）によりＮ枚の画像に対する尤度Ｌ（以下、「データセット尤度」と称する）を求める。そして、このデータセット尤度Ｌが収束したか否かを判定する。
【０１４４】
【数１４】
2012043308.tif 000023
【０１４５】
データセット尤度Ｌが収束したか否かの判定では、まず、前回の特徴点モデル更新部１２１２で求めたデータセット尤度ＬＰａｓｔに対する、今回求めたデータセット尤度Ｌの変化率（＝ａｂｓ｛１−ａｂｓ（Ｌ／ＬＰａｓｔ）｝：ａｂｓは絶対値を意味する）を算出する。そして、この変化率が予め定めた所定値より小さい（例えば、０．１％以内等）場合は、データセット尤度Ｌが収束したと判定する。ここで、データセット尤度Ｌが収束したと判定された場合は、最後の物体モデル出力部１２１３での処理に進む。一方、データセット尤度Ｌが収束したと判定されなかった場合は、引き続き、この特徴点モデル更新部１２１２において、特徴点モデル保持部１２１１に記録されている、ｋ個の特徴点に関する情報を更新する処理を行う。ここでの処理の分岐は、図１３のステップＳ１３１０に対応する。ここで求めたデータセット尤度Ｌは、次回の特徴点モデル保持部１２１１における処理において、変化率を求めるために用いるので、このデータセット尤度Ｌを、ＬＰａｓｔとして記録しておく。また、このデータセット尤度Ｌが収束したか否かの判定では、データセット尤度の変化率を求めるために、前回の特徴点モデル更新部１２１２で求めたデータセット尤度ＬＰａｓｔが必要となる。しかし、初回の特徴点モデル更新部１２１２での処理では、この前回のデータセット尤度ＬＰａｓｔが存在しないため、変化率を求めることができない。そこで、初回の特徴点モデル更新部１２１２での処理では、このデータセット尤度Ｌが収束したか否かの判定はスキップする。そして、引き続きこの特徴点モデル更新部１２１２において、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を更新する処理を行うようにすればよい。
【０１４６】
以下、特徴点モデル更新部１２１２において、データセット尤度Ｌが収束したと判定されなかった場合に行う、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を更新する処理について説明する。ここでは、最適特徴点検出部１２１０で記録されたＮ枚全ての画像のそれぞれについての、ｋ個の特徴点分の上記表７に示したデータを用いて、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を更新する。具体的には、上記表６に示した、物体モデルにおける各特徴点に関する情報を、全ての特徴点に関して更新する。この表６に示した、ｉ番目の特徴点に関する情報の、更新後の値は、以下の式（１５）から式（１９）により求められる。
【０１４７】
１．平均ＳＩＦＴ記述子ベクトルＡｉ
【０１４８】
【数１５】
2012043308.tif 000024
【０１４９】
２．ＳＩＦＴ記述子標準偏差σＡｉ
【０１５０】
【数１６】
2012043308.tif 000025
【０１５１】
式（１６）において、Ａｉは式（１５）で求めた、更新後の平均ＳＩＦＴ記述子Ａｉである。
【０１５２】
３．平均方位角θｉ
【０１５３】
【数１７】
2012043308.tif 000026
【０１５４】
４．平均仰角θｉ
【０１５５】
【数１８】
2012043308.tif 000027
【０１５６】
５．平均方向からの標準偏差σＳｉ
【０１５７】
【数１９】
2012043308.tif 000028
【０１５８】
式（１９）において、θｉ、および、φｉは、式（１７）、および、式（１８）で求めた、更新後の平均方位角θｉ、および、更新後の平均仰角φｉである。
【０１５９】
特徴点モデル更新部１２１２において、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を更新する処理では、式（１５）から式（１９）を用い、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を更新する。ここでの処理は、図１３のステップＳ１３１１に対応する。
【０１６０】
上記特徴点モデル更新部１２１２での更新処理が終了した後、最適特徴点検出部１２１０に戻り、最適特徴点検出部１２１０での処理を行って、再び特徴点モデル更新部１２１２での処理を行う。このような繰り返し処理を、特徴点モデル更新部１２１２において、データセット尤度Ｌが収束したと判定されるまで続ける。このようなＥＭアルゴリズム的な学習処理により、特徴点モデル保持部１２１１に記録されているｋ個の特徴点に関する情報が、徐々に精度の高いものにすることができる。
【０１６１】
最後に、物体モデル出力部１２１３において、特徴モデル保持部１２１１に記録されているｋ個の特徴点に関する情報を、対象物体の物体モデルとして外部に出力する。これにより、本実施形態に係る物体モデル生成方法の処理が終了となる。ここでの処理は、図１３のステップＳ１３１２に対応する。
【０１６２】
このように、本実施形態の物体モデル生成方法では、物体モデルを記述する対象となる物体を、様々な位置、方向から撮影した画像を用いて、この物体モデルを記述する際に利用する特徴点の属性を学習により獲得することができる。そして、この学習により獲得した特徴点の属性を用い、この物体の物体モデルを生成することが可能になる。また、本実施形態の物体モデル生成方法は、特徴点の属性と、３次元的な方向とを、確率的にモデル化することができる。これにより、特徴点の属性に関する不安定性や、特徴点位置の曖昧さをモデルに表現することが可能になる。
【０１６３】
本実施形態では、上記説明したように、物体の位置姿勢が既知である多数の画像と、物体の３Ｄモデルとを用いることによって、物体モデルの生成を行った。しかし、本発明はこれに限るものではなく、例えば、物体の３Ｄモデルが無く、多数の画像内の、物体の位置姿勢が未知であった場合でも、ＥＭアルゴリズムを適用することにより、精度が低下する可能性は高いものの、同様の物体モデルを生成することが可能である。具体的には、初期の物体モデルを適当に定めておき、この物体モデルを用いて、逐次、各画像内に存在する物体の位置姿勢と、特徴点の３次元的な位置とを推定し、この推定値を用いて、上記と同様の学習を行うようにすれば良い。
【０１６４】
続いて、本実施形態の物体モデル生成方法により生成した物体モデルを用い、入力された画像中に対象物体が存在するか否か、および、対象物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例を示す。本実施形態の物体識別方法は、基本的には第１実施形態の物体位置姿勢決定方法と同様である。そこで、第１実施形態の物体位置姿勢決定方法とは異なる部分のみ説明し、同様の部分については説明を省略する。
【０１６５】
図１５（ａ）を参照して、本実施形態における、物体識別装置の処理ブロック図について説明する。また、図１５（ｂ）を参照して、本実施形態における、物体識別方法の処理フローについて説明する。
【０１６６】
まず、物体モデル入力部１５０において、上記示した本実施形態の物体モデル生成方法により生成した物体モデルを入力し、それを物体モデル保持部１５１に記録して保持する。これにより、全部でｋ個の特徴点からなる物体モデルであって、それぞれの特徴点について、上記表６に示したデータからなる物体モデルが、物体モデル保持部１５１に保持されることになる。ここでの処理は、図１５（ｂ）のステップＳ１５０１に対応する。
【０１６７】
次に、画像入力部１５２において、識別対象となる画像を入力する。ここでの処理は、図１５（ｂ）のステップＳ１５０２に対応する。
【０１６８】
次いで、初期特徴点検出部１５３において、画像入力部１５２で入力された画像に対して、図１２の初期特徴点検出部１２０５での処理と同様の処理を行う。ここでの処理の内容は、初期特徴点検出部１２０５と全く同様の処理であるので説明を省略する。ここまでの処理により、入力された画像中から、多数の初期特徴点が検出され、その初期特徴点の位置と、それぞれの属性とが得られることになる。
【０１６９】
続いて、最大一致度位置姿勢探索部１５４において、物体モデル保持部１５１に保持されている物体モデルと、初期特徴点検出部１５３により得られた多数の初期特徴点の位置（画像座標系での位置）および属性とに基づいて、画像中の物体の位置姿勢を推定する。そして、この推定された位置姿勢における物体モデル一致度を算出する。ここでの処理の基本的な流れは、図５に示した、第１実施形態における最大一致度位置姿勢探索部５０４の処理と同様である。しかし、第１実施形態の最大一致度位置姿勢探索部５０４での処理における、図８に示した、ステップＳ８０４、ステップＳ８０５、および、ステップＳ８１０の処理が少々異なる。そこで、図８を参照して、本実施形態における最大一致度位置姿勢探索部１５４の処理の、上記３つの、第１実施形態とは異なる部分のみを詳細に説明する。
【０１７０】
ステップＳ８０４では、第１実施形態では、物体モデルが持つ各特徴点の方向の、画像面４１へ投影したモデル方向ベクトルを求めた。本実施形態でも、同様のモデル方向ベクトルを、各特徴点について求める。第１実施形態では、各特徴点の方向に関する情報は、方位角と仰角であり、この情報に基づいてモデル方向ベクトルを求めた。これに対して、本実施形態では、各特徴点の方向に関する情報は、平均方位角と平均仰角（および、平均方向からの標準偏差）である。そこで、本実施形態では、この平均方位角、および、平均仰角を、第１実施形態における方位角、および、仰角とみなして、同様の処理により、モデル方向ベクトルを求める。つまり、方位角と仰角からモデル方向ベクトルを求めるのか、平均方位角と平均仰角からモデル方向ベクトルを求めるのかが異なるのみで、その他に関しては、第１実施形態と全く同様である。
【０１７１】
続くステップＳ８０５では、第１実施形態では、式（６）を用いて物体モデル一致度を求めた。これに対して、本実施形態では、以下のような方法で、物体モデル一致度を算出する。まず、物体モデルが持つ特徴点を１つずつ順に選択していく。以下では、ｉ番目の特徴点を選択したとして説明する。次に、図１５（ａ）の初期特徴点検出部１５３で検出された、全ての初期特徴点を、１つずつ順に選択していく。以下では、ここで選択した初期特徴点の属性、つまりＳＩＦＴ記述子がベクトルａ、画像座標上の位置が（ξ”，ζ”）であったとする。この時、ステップＳ８０２において、物体モデルの中心位置から、ここで選択された初期特徴点への観測特徴ベクトルｑ”を求める。この観測特徴ベクトルｑ”は、物体モデルの中心が、画像座標系で（ｘ”、ｙ”）＝（Ｘ”、Ｙ”）と設定されていたならば、ベクトルｑ”＝（ξ”−Ｘ”，ζ”−Ｙ”）Ｔと求められる。そして、先にステップＳ８０４で求めておいたモデル方向ベクトルの内、ｉ番目の特徴点に対応するモデル方向ベクトルをｐｉ”とする。そして、選択された初期特徴点に関するＳＩＦＴ記述子ベクトルａ、および、観測特徴ベクトルｑ”を用い、次の式（２０）を用いて、選択された初期特徴点に関する一致度を算出する。
【０１７２】
【数２０】
2012043308.tif 000029
【０１７３】
この式（２０）中、Ａｉ、σＡｉ、θｉ、φｉ、σＳｉは、選択したｉ番目の特徴点に関する、上記表６に示した情報に対応するものである。このようなモデル一致度を、図１５（ａ）の初期特徴点検出部１５３で検出された、全ての初期特徴点全てに対して求める。そして、最も一致度が高かった一致度ｍｉを記録しておく。そして、物体モデルが持つ特徴点を順に全て選択し、ｋ個全ての特徴点について、上記示した一致度を求める。そして最後に、次の式（２１）により、物体モデル一致度Ｍ’を算出する。
【０１７４】
【数２１】
2012043308.tif 000030
【０１７５】
この式（２１）中、ｍｉは先に述べた式（２０）により求められる、物体モデルが持つｉ番目の特徴に対する一致度である。本実施形態のステップＳ８０５における処理は、この物体モデル一致度の算出方法のみが異なる。
【０１７６】
最後に、ステップＳ８１０は、第１実施形態では、単純に最も物体モデル一致度が高かった時の物体モデルの中心位置と姿勢とを、物体の位置姿勢推定値として決定したのみであった。これに対して、本実施形態では、これに加えて最も高かった物体モデル一致度の値（つまり、式（２１）により求められる値）を、図１５（ａ）の物体識別結果出力部１５５に出力する処理を行う。本実施形態のステップＳ８１０における処理は、この最も高かった物体モデル一致度の値を出力する点のみが異なる。
【０１７７】
以上が、本実施形態の最大一致度位置姿勢探索部１５４での処理における、第１実施形態と異なる部分である。これ以外の部分に関しては、基本的に図５に示した第１実施形態の最大一致度位置姿勢探索部５０４での処理と同様であるので説明を省略する。この最大一致度位置姿勢探索部１５４での処理は、図１５（ｂ）のステップＳ１５０４に対応する。このように、本実施形態でも、第１実施形態と同様に、物体モデルを様々な位置姿勢に変化させ、物体モデル一致度が最も高い物体モデルの位置姿勢を探索する。しかし、本発明はこれに限るものではない。第１実施形態において説明したのと同様に、例えば最小二乗法等を用いて、モデル方向ベクトルと、観測方向ベクトルとの成す角が最小になるような物体モデルの位置姿勢を探索しても構わない。また、平均ＳＩＦＴ記述子と、初期特徴点に対応するＳＩＦＴ記述子とのユークリッド距離が最小になるような物体モデルの位置姿勢を探索しても構わない。
【０１７８】
最後に、物体識別結果出力部１５５において、最大一致度位置姿勢探索部１５４から出力され、最も高かった物体モデル一致度の値に基づいて、画像入力部１５２で入力された画像中に、物体モデル入力部１５０で入力された物体モデルに対応する物体が存在するか否かの判定を行う。ここでは単純に、この最も高かった物体モデル一致度の値が、予め定められた所定の値より大きければ、物体が存在すると判定し、小さければ物体が存在しないと判定する。ここで用いる所定の値は、実験的に決定すればよい。例えば、本実施形態の物体モデル生成方法において、データセット尤度Ｌが収束した段階における、式（１３）により求められる画像の尤度程度の値にすればよい。そして、この最も高かった物体モデル一致度の値が、予め定められた所定の値より大きい場合、画像入力部１５２で入力された画像中に当該物体モデルに対応する物体が存在すると判定される。そして、その物体の位置姿勢が、最大一致度位置姿勢探索部１５４で決定された位置姿勢であると外部に出力する。これにより、本実施形態の物体識別方法の処理が終了となる。
【０１７９】
一方、この最も高かった物体モデル一致度の値が、予め定められた所定の値より小さかった場合は、画像入力部１５２で入力された画像中に、当該物体モデルに対応する物体が存在しないという結果を外部に出力する。そして、これにより、本実施形態の物体識別方法の処理が終了となる。
【０１８０】
上記説明した、物体モデル入力部１５０から物体識別結果出力部１５５までの処理により、本実施形態の物体モデル生成方法により生成された物体モデルを用いて、入力された画像中にその物体が存在するか否かを識別する処理が可能になる。また、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する処理が可能になる。本実施形態の物体識別方法でも、第１実施形態と同様に、基本的には、物体の中心位置から、各特徴点への３次元的な方向をモデルとする物体モデルを用いている。このため、物体の３次元的な向きの変動に対応可能であり、且つ、画像上での物体のサイズ変動に対して不変であるという、第１実施形態で示したのと同様の効果をもって物体を識別することが可能になる。
【０１８１】
また、本実施形態の物体識別方法でも、第１実施形態と同様、本実施形態の物体モデルの情報に加えて、物体の中心から各特徴点までの絶対距離等の物体の奥行き方向の位置を求めるのに必要な情報を持たせておくことにより、物体の奥行き方向の位置を推定することも可能である。
【０１８２】
以上、第２実施形態は、物体モデルを記述する対象の物体を撮影した多数の画像を用い、ＥＭアルゴリズムを利用した学習により物体モデルを生成する物体モデル生成方法を説明した。また、生成した物体モデルを用い、入力された画像中にその物体が存在するか否か、および、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例として説明した。
【０１８３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012043308.tif 000031
【図２】
2012043308.tif 000032
【図３】
2012043308.tif 000033
【図５】
2012043308.tif 000034
【図８】
2012043308.tif 000035
【図１２】
2012043308.tif 000036
【図１３】
2012043308.tif 000037
【図１５】
2012043308.tif 000038
【図４】
2012043308.tif 000039
【図６】
2012043308.tif 000040
【図７】
2012043308.tif 000041
【図９】
2012043308.tif 000042
【図１０】
2012043308.tif 000043
【図１１】
2012043308.tif 000044
【図１４】
2012043308.tif 000045