(57)【特許請求の範囲】
【請求項１】
対象物体から複数の特定領域を検出し、当該特定領域の３以上の組合せである領域組から推定される前記対象物体の位置および姿勢に対して投票重みを乗じて投票することにより、前記対象物体の位置および姿勢を認識するための検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する前記検出器の学習を行う学習工程と、
前記学習装置の生成手段が、前記選択工程で選択された前記複数の特定領域の３以上の組合せから前記領域組を生成する生成工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により、前記生成工程で生成された前記領域組から前記対象物体の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果に基づいて、前記検出器により前記領域組から推定される前記対象物体の位置および姿勢に対する前記投票重みを設定する正規化工程と、
を有し、
前記正規化工程は、
前記既知の三次元モデルから算出される前記対象物体の位置および姿勢に対する前記評価工程における前記認識処理により認識された前記対象物体の位置および姿勢の誤差について、所定の誤差範囲内の検出精度で正しく検出された領域組からの投票重みの値の累積値と、前記誤差範囲を超えて誤って検出された領域組からの投票重みの値の累積値とを算出する算出工程と、
前記算出工程で算出された前記正しく検出された領域組の投票重みの値の累積値が閾値以上になり、かつ、前記誤って検出された領域組の投票重みの値の累積値が閾値未満になるように、前記投票重みを更新する更新工程と、
を有することを特徴とする学習方法。
【請求項２】
前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする請求項１に記載の学習方法。
【請求項３】
前記正規化工程は、
それぞれの領域組に関して、前記更新工程で更新された前記投票重みの最大値が所定の閾値未満であれば、前記領域組を削除する領域削除工程と、
前記評価工程における前記認識処理の結果により、前記領域組から推定される前記対象物体の位置および姿勢が得られない場合に、新たな特定領域を追加する領域追加工程と、
を更に有することを特徴とする請求項１または２に記載の学習方法。
【請求項４】
前記学習装置の特定領域選択手段が、前記既知の三次元モデルから算出される前記対象物体の位置および姿勢に対する前記評価工程における前記認識処理により認識された前記対象物体の位置および姿勢の誤差について、所定の誤差範囲内の検出精度で正しく検出された領域組を再構成する特定領域を選択する特定領域選択工程を更に有し、
前記特定領域選択工程は、
前記評価工程により求められる、複数の撮像位置から複数の領域組を撮像した場合の認識結果のうち、認識された前記対象物体の位置および姿勢が前記所定の誤差範囲内にある複数の領域組が同一の撮像位置において同時に検出される同時検出率を算出する同時検出率算出工程と、
前記同時検出率算出工程で算出された前記同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、選択された特定領域から新規の領域組を生成して、前記領域組に追加する領域組再構成工程と、
を有することを特徴とする請求項１乃至３のいずれか１項に記載の学習方法。
【請求項５】
請求項２に記載の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
請求項２に記載の学習方法の学習工程で学習された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の３次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して請求項２に記載の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、
を有することを特徴とする物体認識方法。
【請求項６】
対象物体から複数の特定領域を検出し、当該特定領域の３以上の組合せである領域組から推定される前記対象物体の位置および姿勢に対して投票重みを乗じて投票することにより、前記対象物体の位置および姿勢を認識するための検出器を学習する学習装置であって、
前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択手段と、
前記選択手段で選択された前記特定領域を検出する検出器の学習を行う学習手段と、
前記選択手段で選択された前記複数の特定領域の３以上の組合せから前記領域組を生成する生成手段と、
前記学習手段で学習された前記検出器により、前記生成手段で生成された前記領域組から前記対象物体の位置および姿勢の認識処理を行う評価手段と、
前記評価手段における前記認識処理の結果に基づいて、前記検出器により前記領域組から推定される前記対象物体の位置および姿勢に対する前記投票重みを設定する正規化手段と、
を備え、
前記正規化手段は、
前記既知の三次元モデルから算出される前記対象物体の位置および姿勢に対する前記評価手段における前記認識処理により認識された前記対象物体の位置および姿勢の誤差について、所定の誤差範囲内の検出精度で正しく検出された領域組からの投票重みの値の累積値と、前記誤差範囲を超えて誤って検出された領域組からの投票重みの値の累積値とを算出する算出手段と、
前記算出手段で算出された前記正しく検出された領域組の投票重みの値の累積値が閾値以上になり、かつ、前記誤って検出された領域組の投票重みの値の累積値が閾値未満になるように、前記投票重みを更新する更新手段と、
を有することを特徴とする学習装置。
【請求項７】
既に設定済みの投票重みと、前記正規化手段で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価手段および前記正規化手段の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化手段で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断手段を更に備えることを特徴とする請求項６に記載の学習装置。
【請求項８】
請求項７に記載の学習装置で学習された検出器を用いて対象物体の認識処理を行う物体認識装置であって、
撮像手段で撮像された対象物体の画像を取得する取得手段と、
請求項７に記載の学習装置の学習手段で学習された検出器を用いて、前記取得手段で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出手段と、
前記検出手段で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成手段と、
前記生成手段で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の３次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定手段と、
前記領域組推定手段で推定された前記領域組の推定位置および推定姿勢に対して請求項７に記載の学習装置の収束判断手段で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票手段と、
前記投票手段の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記累積投票値が極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定手段と、
を有することを特徴とする物体認識装置。
【請求項９】
コンピュータを、請求項６に記載の学習装置の各手段として機能させるためのプログラム。
【請求項１０】
コンピュータを、請求項８に記載の物体認識装置の各手段として機能させるためのプログラム。
【請求項１１】
検出器の学習を行う請求項６に記載の学習装置と、
前記学習装置で学習された検出器を用いて対象物体の認識処理を行う請求項８に記載の物体認識装置と、
を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システムに関する。  
【背景技術】
【０００２】
視覚情報を使った物体認識の分野において、物体の三次元的な位置や姿勢を推定する問題に関して、さまざまな研究開発が行われている。産業用ロボットや実験的なヒューマノイドロボットなどの分野ではランダムピッキングなどの用途で三次元情報を利用することも多く、その必要性は高くなってきている。
【０００３】
既知の形状の対象物体に関しては、単眼カメラによる対象物体の位置姿勢推定も行われている。単眼カメラによる三次元姿勢推定の一つの手法として、さまざまな姿勢を別のクラスとして識別する方法がある。また、ステレオカメラやレーザレンジファインダなどの三次元センサを用いて得られた三次元特徴量を利用する方法もある。この方法では、モデル上の複数の特徴点と三次元特徴量との対応関係を求め、剛体変換を用いて物体の位置および姿勢を算出する。複数の検出器の投票もしくは統合処理による対象物体の認識手法では、投票の重みを調整する方法も提案されている。例えば、特許文献 1では、複数の木構造フィルタによる認識器の出力を統合することで画像全体を認識している。認識器を組替える、もしくは統合時の重みを選択することで、認識システム全体を環境に適応させて更新していく。
【０００４】
また、特許文献 ２では、量子化された特徴点を入力画像から検出し、得られた特徴点からの重み付き一般化ハフ変換を用いて対象物体の位置と姿勢を求めている。この際、各特徴点での特徴量によるヒストグラムから特徴点の重みを予め計算している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２０４１０３号公報
【特許文献２】特許第０３３４６６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献 １では、認識器の重みバリエーションを予め用意しておき、その組み合わせの中で最も検出結果の良い重みを選択している。重み決定は離散的に行われるため、探索速度と重みバリエーションの粒度はトレードオフの関係にある。任意の姿勢における対象物体の認識を考えると、対象物体上の同一部分であっても、視点変化によって特徴量は変化する。
【０００７】
特許文献 ２の手法では、三次元的な任意の姿勢における対象物体の認識に拡張しようとすると、特徴量ヒストグラムから投票重みの決定を行うことは難しい。
【課題を解決するための手段】
【０００８】
上記の課題を鑑み、本発明は、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能な学習技術および物体認識技術の提供を目的とする。
【０００９】
上記の目的を達成する本発明の一つの側面にかかる学習方法は、対象物体から複数の特定領域を検出し、当該特定領域の３以上の組合せである領域組から推定される前記対象物体の位置および姿勢に対して投票重みを乗じて投票することにより、前記対象物体の位置および姿勢を認識するための検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する前記検出器の学習を行う学習工程と、
前記学習装置の生成手段が、前記選択工程で選択された前記複数の特定領域の３以上の組合せから前記領域組を生成する生成工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により、前記生成工程で生成された前記領域組から前記対象物体の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果に基づいて、前記検出器により前記領域組から推定される前記対象物体の位置および姿勢に対する前記投票重みを設定する正規化工程と、
を有し、
前記正規化工程は、
前記既知の三次元モデルから算出される前記対象物体の位置および姿勢に対する前記評価工程における前記認識処理により認識された前記対象物体の位置および姿勢の誤差について、所定の誤差範囲内の検出精度で正しく検出された領域組からの投票重みの値の累積値と、前記誤差範囲を超えて誤って検出された領域組からの投票重みの値の累積値とを算出する算出工程と、
前記算出工程で算出された前記正しく検出された領域組の投票重みの値の累積値が閾値以上になり、かつ、前記誤って検出された領域組の投票重みの値の累積値が閾値未満になるように、前記投票重みを更新する更新工程と、
を有することを特徴とする。
【００１０】
また、上記の学習方法は、前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする。
【００１１】
上記の目的を達成する本発明の他の側面にかかる物体認識方法は、上記の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
上記の学習方法の学習工程で生成された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の３次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して上記の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能になる。あるいは、信頼度の低い姿勢の領域組からの投票の重みは、信頼度の高い姿勢の領域組からの投票に比べて弱くなるため、誤検出が発生しにくくなり、そのため、対象物体の認識精度の向上が可能になる。
【図面の簡単な説明】
【００１３】
【図１】実施形態にかかる情報処理システムの全体的な構成を例示する図。
【図２】実施形態にかかる物体認識処理を行うための装置構成を例示する図。
【図３】実施形態にかかる物体認識処理の流れを説明する図。
【図４】特定領域と領域組を説明する図。
【図５】特定領域検出工程における処理を説明する図。
【図６】検出位置と検出姿勢の定義を説明する図。
【図７】実施形態にかかる学習処理の流れを説明する図。
【図８】三次元モデル上の点と画像座標の関係を示す図。
【図９】学習データ取得に関する測地ドームの視点を説明する図。
【図１０】第１および第２実施形態における正規化工程の流れを説明する図。
【図１１】モデル座標系と画像上の点の関係を示す図。
【図１２】第３実施形態における学習方法の流れを説明する図。
【図１３】第４実施形態における学習方法の流れを説明する図。
【発明を実施するための形態】
【００１４】
（第１実施形態）
図１の参照により、本発明の実施形態にかかる情報処理システムの全体的な構成を説明する。撮像部３００で撮像された撮像データが座標対応算出部４００に送られる。座標対応算出部４００は三次元モデル記憶部６００において記憶されている三次元モデル上の各点と撮像データとの対応関係を算出する。座標対応算出部４００で算出された撮像データと三次元モデルとの対応関係を用いて、学習装置２００は後述する学習処理を行い、得られた学習結果（学習パラメータ）を学習結果記憶部７００に記憶する。
【００１５】
撮像部３００で撮像された撮像データが物体認識装置１００に送られ、学習結果記憶部７００に記憶された学習パラメータに従って後述する認識処理を撮像データに対して行うことにより、撮像データの認識処理結果が得られる。ここで、認識処理とは、撮像部３００より得られた撮像データから検出対象物体である三次元物体の三次元的な位置姿勢を求める位置姿勢推定処理である。
【００１６】
（物体認識方法）
物体認識処理を行うための基本的な装置構成の例を図２に示し、物体認識装置で実行される処理フローを図３に示す。  
Ａ５００は認識の対象となる対象物体である。Ａ３００は対象物体Ａ５００を載せるためのステージである。Ａ１００は対象物体Ａ５００を撮像し、画像データを取得するためのカメラである。Ａ１１０はカメラＡ１００と連動して、光切断法によって対象物体Ａ５００の距離マップデータを得るために、ガルバノミラーなどで稼動するレーザ投光部（レーザ投光器）である。カメラＡ１００およびレーザ投光器Ａ１１０は、図１における撮像部３００に相当する。カメラＡ１００およびレーザ投光器Ａ１１０は、光切断法による距離測定を行うための校正が行われているものとする。ここで、認識処理を行うための装置構成として光切断法による距離測定を例示したが、距離測定手法は光切断法に限定されるものではない。例えば、レーザ投光器Ａ１１０の替わりにプロジェクタを用いた空間コード化、もしくは複数のカメラを用いたステレオ計測など、さまざまな距離測定手法を適用することが可能である。Ａ２００は、三次元物体検出処理を行うための情報処理装置であり、図１における物体認識装置１００に相当する。
【００１７】
また、後述する学習処理による学習結果は情報処理装置Ａ２００の図示しない内部メモリに格納されているものとする。この内部メモリは図１における学習結果記憶部７００に相当する。認識処理を行う物体認識装置１００（情報処理装置Ａ２００）はこの例のようなカメラＡ１００と独立した装置に限定されるものではない。例えば、カメラＡ１００に物体認識装置１００（情報処理装置Ａ２００）の機能を搭載することによってカメラ自体が認識処理を行う構成でもよい。
【００１８】
図２のような装置構成を想定した場合を例として、本実施形態にかかる物体認識処理を図３に従って説明する。本処理は、物体認識装置１００（情報処理装置Ａ２００）の全体的な動作を司る制御部により実行される。まず、入力情報取得工程Ｓ１０１０では、撮像部３００で撮像された対象物体の画像を取得する。カメラＡ１００およびレーザ投光器Ａ１１０によって、認識処理に用いる入力情報として、入力画像Ｉおよび距離マップＺｍａｐを取得する。距離マップＺｍａｐは、カメラＡ１００から入力画像Ｉ上の各画像座標点ｐまでのカメラ座標系の奥行き方向（Ｚ方向）の距離として得られる。距離マップの算出に関しては既存の三角測量法などで算出することが可能であるため、ここでは特に説明しない。距離マップＺｍａｐと距離測定の校正値から、カメラ座標系における奥行き方向（Ｚ方向）に直交する水平方向を示すＸ座標のマップ、Ｚ方向およびＸ方向に直交する水平方向を示すＹ座標のマップも算出することができる。これらのマップをＸｍａｐ、Ｙｍａｐとする。
【００１９】
次に、特定領域検出工程Ｓ１０２０では、入力情報取得工程Ｓ１０１０で取得された画像から、画像に含まれる部分領域の画像として複数の特定領域を検出する。本工程において、後述する学習処理によって既に得られている物体上の特定領域を特定領域検出器により検出する。ここで特定領域とは、三次元モデルとして得られている対象物体上の、所定サイズの局所領域（部分領域）である。例えば、図４（ａ）に示される三次元モデルＡ５１０において、Ａ５１１−１〜Ａ５１１−Ｍのように三次元モデル上の特定の位置を示している。ここでＭは特定領域の総数である。これらの特定領域は、それぞれモデル座標系における位置情報を持っており、特定領域ｉのモデル座標位置をＰｍｉ＝［Ｘｍｉ，Ｙｍｉ，Ｚｍｉ］Ｔとする。  ここで上付き添字ｍは「モデル」を意味し、Ｔは行列の転置を表す。特定領域検出工程Ｓ１０２０において、特定領域検出器は、図５のようにして入力画像Ｉに対してラスタスキャンしながら注目位置ｐｓを中心とした部分画像を抽出し、その部分画像において抽出された特徴量を用いて特定領域を検出する。部分画像の切り出しサイズｒは、予め決められたモデル座標系における固定サイズＲと、注目位置ｐｓの奥行き距離から次式により算出される。
【００２０】
【数１】
0005759161.tif 000002
【００２１】
δはカメラの画素サイズ、ｆはカメラの焦点距離である。例えば、切り出しサイズがＲ＝２０ｍｍと設定されているとき、ｆ＝２４ｍｍ、δ＝０．０３ｍｍ／ｐｉｘｅｌのカメラにて Ｚｍａｐ（ｐｓ）＝８００ｍｍであれば、ｒ＝２０ｐｉｘｅｌであるため、２０ｐｉｘｅｌ×２０ｐｉｘｅｌの領域を部分画像として切り出せばよい。部分画像において抽出する特徴量としては、例えば、ＨＯＧ（Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）のようなものが考えられるが、本発明の趣旨は特徴量の種類に限定されるものではない。例えば、Ｓｐｉｎ  Ｉｍａｇｅのような、入力画像Ｉの替わりに認識対象の物体の三次元情報を用いた三次元特徴量でもよい。
【００２２】
特定領域検出器による画像探索によって検出された特定領域ｉの検出領域の集合をＡｉ＝｛ｘｉ１，ｘｉ２・・・ｘｉＮｉ｝とする。ここでｘｉｌは特定領域検出器によって検出された特定領域ｉのｌ番目の検出領域の画像上の位置であって、画像座標系上の点である。Ｎｉは、特定領域検出器によって検出された特定領域ｉの検出点の総数である。各検出領域位置ｐｉｌのカメラ座標系における位置はＰｉｌ＝［Ｘｉｌ，Ｙｉｌ，Ｚｉｌ］＝［Ｘｍａｐ（ｐｉｌ），Ｙｍａｐ（ｐｉｌ），Ｚｍａｐ（ｐｉｌ）］として得ることができる。
【００２３】
領域組生成工程Ｓ１０３０では、特定領域検出工程Ｓ１０２０で検出された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。特定領域検出工程Ｓ１０２０で検出された特定領域に対して、予め定義された特定領域の組み合わせによる領域組を生成する。領域組とは、認識対象の物体の位置および姿勢を推定するために用いる特定領域の組み合わせである。予め定義されたＴ個のそれぞれの領域組に対して、領域組ｔを構成する特定領域を、ｔ１、ｔ２、・・・ｔＭｔとする。ここでＭＴは領域組ｔを構成する特定領域の総数である。距離計測などによって各検出領域のカメラ座標系位置が求まる場合には、位置および姿勢を決定するために最低限、三点のカメラ座標系における位置がわかればよい。三つの特定領域による領域組をトリプレットと呼ぶこととするが、領域組は三点で構成されることに限定されるわけではない。
【００２４】
図４（ｂ）に、ＭＴ＝３として領域組をトリプレットの例を示す。領域組ｔの構成要素である特定領域が特定領域検出工程Ｓ１０２０で検出されていた場合、領域組生成工程Ｓ１０３０では、ステップＳ１０２０で検出された特定領域の相対的な位置関係が幾何拘束条件を満たしているかどうかを判定する。幾何拘束条件の判定は、例えば、以下のようにして行う。まず、領域組ｔを構成する特定領域ペアの組み合わせに関して、特定領域ペア間の距離をカメラ座標系にて算出する。得られた距離を、対応する既知の３次元モデル上の特定領域ペアの特定領域間の距離（モデル上の距離）と比較して距離の誤差を算出し、算出された距離の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、モデル上の距離の１０％の範囲内（±５％の範囲内）であれば、検出された特定領域ペアの距離関係は正しいとし、検出領域組の候補として残す。次に、検出領域組候補として残った領域組ｔを構成する検出された特定領域ペアの組み合わせに関して、特定領域ペア間におけるその成す角度をカメラ座標系にて算出する。得られた角度を、対応する既知の３次元モデル上の特定領域の成す角度と比較し、角度の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、１５ｄｅｇの範囲内（±７．５ｄｅｇ）であれば検出された特定領域の相対的な位置関係は正しいとし、領域組を構成すると判定する。
【００２５】
統合工程Ｓ１１００では、検出されたそれぞれの領域組における位置および姿勢（角度）の推定結果を算出し、その結果を統合して、対象物体の認識結果を得る。統合工程Ｓ１１００は、領域組の位置姿勢を推定する領域組推定工程Ｓ１０４０、投票工程Ｓ１０５０および対象物体の位置姿勢を推定する対象物体推定工程Ｓ１０６０の３つの工程を有する。
【００２６】
領域組推定工程Ｓ１０４０では、領域組生成工程Ｓ１０３０にて絞り込まれた領域組（検出物体）の位置および姿勢を推定する。領域組生成工程Ｓ１０３０で生成された領域組について、撮像部の座標系を基準とした検出位置情報および対象物体の３次元モデル上の座標位置情報を求める。そして、検出位置情報と座標位置情報との差分を最小にする位置と、その位置に対応する姿勢とを領域組の推定位置および推定姿勢とする。検出物体の位置および姿勢は、図６に示すように、検出物体をモデル座標系とカメラ座標系が一致している状態から観測状態へと平行移動および単回転させたときの平行移動ベクトル、単回転軸および単回転角で表現されるものとする。検出された領域組（検出領域組）から推定される検出物体の位置を平行移動ベクトルＴｋ、姿勢ベクトルΘｋ＝ＢｋＮｋで表す。ここでＮｋは単回転軸およびＢｋは単回転角で、ＮｋはＮｋ＝［ｎＸ，ｎＹ，ｎＺ］Ｔで表される長さ１の正規化ベクトルである。このとき、Ｒｋを、ＮｋおよびＢｋで得られる回転変換であるとすれば、モデル上の任意の点Ｐｍは、上記の位置姿勢パラメータＴｋ、ＮｋおよびＢｋによって以下の数２式の位置Ｐ’に移動する。
【００２７】
【数２】
0005759161.tif 000003
【００２８】
検出領域組ｋを構成する特定領域をｋ１・・・ｋｕ・・・ｋＭｋとする。ここでＭｋは領域組ｋを構成する特定領域の数で、例えば領域組がトリプレットとして定義されているならばＭｋ＝３である。検出領域組ｋの位置姿勢推定問題は、以下の数３式の関数の最小化問題となる。
【００２９】
【数３】
0005759161.tif 000004
【００３０】
ただし、Ｐｋｕは検出領域組ｋにおける特定領域ｋｕのカメラ座標系検出位置（撮像部の座標系を基準とした検出位置情報）、Ｐ’ ｋｕは特定領域ｋｕのモデル座標位置（対象物体の３次元モデルの座標位置情報）Ｐｍｋｕが数 ４式に従って変換されたときの変換後のカメラ座標系位置である。回転変換Ｒｋの四元数表現ｑと平行移動Ｔｋの要素をそれぞれｑ＝（ｑ０，ｑ１，ｑ２，ｑ３）、Ｔｋ＝［ｑ４，ｑ５，ｑ６］Ｔとする。このとき、検出領域組ｋの各検出領域の検出位置重心μと、領域組ｔの特定領域重心の移動後の位置μ’は、それぞれ以下のようにして得られる。
【００３１】
【数４】
0005759161.tif 000005
【００３２】
【数５】
0005759161.tif 000006
【００３３】
領域組ｔの特定領域位置と、検出領域組ｋの各検出領域位置の共分散行列Ｓｋは以下の数６式のようにして求められる。
【００３４】
【数６】
0005759161.tif 000007
【００３５】
ここでＳｋの循環要素をＡｉｊ＝（Ｓｋ−ＳｋＴ）ｉｊとしたときに列ベクトルΔ＝［Ａ２３，Ａ３２，Ａ１２］Ｔを定義する。これを使って表される次の数７式のような対称行列Ｑ（Ｓｋ）の固有値解析によって得られた最大固有値に対応する固有ベクトルは、回転変換Ｒの四元数表現ｑの要素列（ｑ０，ｑ１，ｑ２，ｑ３）の最適解となることが非特許文献１にて知られている。
【００３６】
【数７】
0005759161.tif 000008
【００３７】
ここでＩ３×３は、３×３単位行列である。
【００３８】
非特許文献１ Ｐ．Ｊ．Ｂｅｓｌ  ａｎｄ  Ｎ．Ｄ．ＭｃＫａｙ，“Ａ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｒｅｃｏｇｎｉｔｉｏｎ  ｏｆ  ３−Ｄ  Ｓｈａｐｅｓ”，ＩＥＥＥ  Ｔｒａｎｓ．ＰＡＭＩ，Ｖｏｌ．１４，Ｎｏ．２，１９９２．
回転変換Ｒの四元数表現である四元数ｑは、単回転軸Ｎｋおよび単回転角Ｂｋとの間に以下の数８式の関係があるため、ＮｋおよびＢｋの値が求まる。
【００３９】
【数８】
0005759161.tif 000009
【００４０】
また、検出領域組ｋにおける検出対象物体の位置を表す平行移動ベクトルＴｋの最適解は、以下の数９式のようにして得られる。
【００４１】
【数９】
0005759161.tif 000010
【００４２】
ただしμｍは検出領域組ｋを構成する特定領域のモデル座標系位置の重心を回転変換させたものであって、以下の数１０式のようにして得られる。
【００４３】
【数１０】
0005759161.tif 000011
【００４４】
投票工程Ｓ１０５０では、得られた各検出領域組における推定姿勢に対して、位置および姿勢の投票空間に投票を行う。領域組推定工程Ｓ１０４０で推定された領域組の位置および推定姿勢に対して、後に説明する図７（ｂ）の収束判断工程Ｓ２４７０で確定された投票重みを、特定領域検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う。検出されたそれぞれの領域組ｋはそれぞれ検出姿勢Θｋによって決まる投票重みｗｋ（Θｋ）が割り当てられており、領域組ｋからの投票値をカウントする際には、投票重みｗｋ（Θｋ）を乗じる。投票重みは後述する学習処理において決定される。
【００４５】
投票の方法としてはいくつかの手法が考えられる。例えば、位置パラメータＰおよび姿勢パラメータΘに関する投票空間を所定間隔のビンに分割して、領域組推定工程Ｓ１０４０にて得られた推定位置姿勢パラメータＰｋ、Θｋの含まれるビンに投票するといった方法でもよい。あるいは、位置パラメータＰ、姿勢パラメータΘに関するパラメータ空間に対して、推定位置姿勢パラメータＰｋ、Θｋを中心としたガウシアンなどで近似した確率投票としてもよい。位置Ｐ、姿勢Θのビンへの投票数、あるいは各領域組による確率投票値の累積確率を求め、位置Ｐ、姿勢Θにおける検出物体の位置姿勢累積投票値をＰｒ（Ｐ，Θ）とする。  
対象物体推定工程Ｓ１０６０では、投票工程Ｓ１０５０の演算処理で、位置および姿勢の投票値に投票重みが乗じられた値を全ての領域組について加算した位置および姿勢の累積投票値（位置姿勢累積投票値）を算出する。そして、加算により求められる累積投票値（位置姿勢累積投票値）が極大となる位置および姿勢を算出する。累積投票値（位置姿勢累積投票値）が極大となる位置および姿勢における累積投票値の値が所定の閾値以上であるときに、その位置および姿勢を対象物体の位置および姿勢と推定する。本工程では、領域組からの投票の集計結果である位置姿勢累積投票値Ｐｒ（Ｐ，Θ）から検出物体の位置および姿勢の推定値を算出する。具体的には、Ｐｒ（Ｐ，Θ）が極大となる位置Ｐ、姿勢Θを求め、そのときのＰｒ（Ｐ，Θ）の値が閾値η以上であるときに、その位置Ｐ、姿勢Θを認識の対象となる対象物体の推定位置姿勢であるとする。閾値ηは位置姿勢累積投票値Ｐｒ（Ｐ，Θ）に関する下限値である。閾値ηは、例えばη＝０．９などと設定する。
【００４６】
認識処理として、投票による三次元物体の位置姿勢を推定する処理を説明したが、このような処理を行う場合に、位置姿勢の推定に用いる領域組の投票重みをどのように定義すれば有効であるか、という問題がある。特に任意姿勢における領域組検出では、同じ領域組でも見る角度によって検出難易度は変化する。本実施形態はこの課題に対して有効な領域組の投票重みを設定する方法を提供するものであり、その学習方法を以下に説明する。
【００４７】
本実施形態にかかる学習方法の処理を図７（ａ）に従い説明する。図７（ａ）における学習データ収集工程Ｓ２１００では、対象物体に関する複数視点ｖ＝１・・・Ｖから得られる対象物体情報である学習画像Ｉｖ、カメラ座標系マップＸｍａｐｖ、Ｙｍａｐｖ、およびＺｍａｐｖを、学習に用いるデータとして取得する。これら対象物体情報の取得におけるカメラや距離計測は検出処理時と同じ設定であることが望ましいが、必ずしも同じである必要はない。例えば、様々な視点における対象物体情報を、三次元モデルを元にして画像及び三次元情報をコンピュータグラフィックス等で作成し、学習画像Ｉｖ、カメラ座標系マップＸｍａｐｖ、Ｙｍａｐｖ、及びＺｍａｐｖとして利用してもよい。  
座標対応算出工程Ｓ２２００において、座標対応算出部４００は三次元モデル記憶部６００から対象物体の三次元モデルを取得する。座標対応算出部４００には、撮像部３００から撮像データ（学習画像）が送られてきており、座標対応算出部４００は三次元モデル上の各点と撮像データ（学習画像）との対応関係を算出する。まず、学習画像における対象物体のカメラ座標空間における位置および姿勢を、手動もしくは公知技術によるトラッキングツールなどを使ったマッチング処理によって算出する。これにより学習画像における対象物体のカメラ座標空間における位置と姿勢が求まるため、透視投影することにより画像上における対象物体領域が得られる。図８のように対象物体領域における各画像座標点ｐｊと対応する三次元モデル上の点のカメラ座標系位置Ｐｊが得られる。座標対応算出部４００は、各学習画像Ｉｖにおける対象物体領域内の画像座標点とカメラ座標点との対応関係をすべて算出して学習装置２００へ送る。対応関係を算出（マッチング）によって得られた対象物体の単回転表現による姿勢パラメータである回転軸単位ベクトルｎｖ，回転角度βｖ，さらに物体の位置を示す平行移動ベクトルＰｃｖも併せて学習装置２００へ送る。これらの情報を全視点ｖ＝１・・・Vに関してまとめたものを学習データＳ＝｛Ｉｖ，Ｘｍａｐｖ，Ｙｍａｐｖ，Ｚｍａｐｖ，ｎｖ，βｖ，Ｐｃｖ｝とする。なお、学習データが三次元モデルから人工的に生成され、各視点における物体の位置および姿勢が既知であるならば、上記マッチング処理は必要ない。  
学習データ分割工程Ｓ２３００では、学習データ収集工程Ｓ２１００および座標対応算出工程Ｓ２２００で得られた複数視点ｖ＝１・・・Vからの学習データを、特定領域検出器学習データと評価データに分割する。まず、各データに対する視点インデックスｖをｖＬ＝１・・・ＶＬ、ｖＷ＝１・・・ＶＷと振りなおす。振りなおされた視点インデックスに従い、学習画像Ｉｖ、カメラ座標系マップＸｍａｐｖ、Ｙｍａｐｖ、及びＺｍａｐｖと、各データにおける物体の位置姿勢パラメータｎｖ，βｖ，Ｐｃｖを二つのグループに分割する。すなわち、特定領域検出器学習データは、特定領域検出器学習データＳＬ＝｛ＩｖＬ，ＸｍａｐｖＬ，ＹｍａｐｖＬ，ＺｍａｐｖＬ，ｎｖＬ，βｖＬ，ＰｃｖＬ｝とする。また、評価データは、評価データＳＷ＝｛ＩｖＷ，ＸｍａｐｖＷ，ＹｍａｐｖＷ，ＺｍａｐｖＷ，ｎｖＷ，βｖＷ，ＰｃｖＷ｝である。ただし、分割した二つのグループにおけるデータは重複していても、重複しないように分割しても、いずれでもよく、データの重複度によって限定されるものではない。学習結果による姿勢推定性能を視点に偏りなく得たい場合には、特定領域検出器学習データＳＬと評価データＳＷそれぞれの視点分布は図９（ａ）のように測地ドーム近似されて偏りが少ないことが望ましい。測地ドームとは、正多面体の三角形面素を再帰的に同一面積の三角形に分割していくことで球面を均一に離散化表現する、公知の手法である。ただし、検出対象物体の配置条件による姿勢に関する事前分布が既知である場合には、その分布に従った視点密度で学習データを準備してもよい。例えば、必ず表側を向いて供給されることがわかっている物体を検出器の検出対象とするのであれば、図９（ｂ）のように表側に関するデータだけを収集して使ってもよい。これらのデータを用いた学習装置２００における学習方法は、以下の学習工程Ｓ２４００で説明される。
【００４８】
学習工程Ｓ２４００の処理フローの詳細な処理の内容を図７（ｂ）に示す。まず、特定領域初期選択工程Ｓ２４１０では、対象物体の既知の三次元モデル表面からＮ０個所の点または部分領域をランダムに選択し、これを初期の選択領域（選択された特定領域）とする。選択領域の数Ｎ０は、例えば、Ｎ０＝２００と設定する。Ｎ０の値としては、この例に限定されるものではなく、任意の自然数を設定することが可能である。
【００４９】
次に特定領域検出器学習工程Ｓ２４２０にて、選択されたＮ０個の特定領域の検出器を学習する。特定領域初期選択工程Ｓ２４１０で選択された特定領域を検出する検出器の学習に用いる学習データを生成し、学習データを用いた学習により検出器を生成する。図７（ｃ）に、特定領域検出器学習工程Ｓ２４２０を詳細に示したフローを示す。まず選択領域モデル座標変換工程Ｓ２４２１では、選択領域ａのモデル座標系における座標値を算出する。視点ｖの評価画像Ｉｖにおける選択領域ａの画像座標系位置がｐａｖ＝[ｘａ，ｙａ]Ｔであったとする。そのカメラ座標系位置はＰａｖ＝［Ｘｍａｐｖ（ｐａｖ），Ｙｍａｐｖ（ｐａｖ），Ｚｍａｐｖ（ｐａｖ）］として得ることができる。これに対して位置姿勢パラメータｎｖ，βｖ，Ｐｃｖから、図１１のように選択領域ａのモデル座標系位置Ｐａｍを算出できる。
【００５０】
【数１１】
0005759161.tif 000012
【００５１】
ここでＲ（ｎｖ，βｖ）は単回転軸ｎｖおよび単回転角βｖによる回転変換行列である。これにより得られた選択領域ａのモデル座標系位置Ｐａｍに関して、選択領域カメラ座標変換工程Ｓ２４２２では、特定領域検出器学習データＳＬの各視点ｖＬにおけるカメラ座標系位置ＰａｖＬを計算する。
【００５２】
【数１２】
0005759161.tif 000013
【００５３】
選択領域画像座標変換工程Ｓ２４２３では、学習データ取得時のカメラパラメータより、カメラ座標系位置ＰａｖＬをさらに画像座標系位置ｐａｖＬへと変換する。
【００５４】
【数１３】
0005759161.tif 000014
【００５５】
ここでδおよびｆは前述のカメラパラメータであり、δはカメラの画素サイズ、ｆはカメラ焦点距離である。選択領域可視判定工程Ｓ２４２４では、ＺａｖＬとＺｍａｐｖＬ（ｐａｖＬ）の値を比較し、ＺａｖＬ＞ＺｍａｐｖＬ（ｐａｖＬ）であれば、視点ｖＬから選択領域ａは不可視であると判断する。このようにして特定領域検出器学習データＳＬの全視点に関して選択領域の可視判定を行う。
【００５６】
選択領域特徴量抽出工程Ｓ２４２５では、可視である視点ｖＬから、その画像座標系位置ｐａｖＬを中心とした部分画像を検出時の処理と同様の方法で切り出して特徴量を抽出し、特定領域検出器を学習するためのデータとする。用いている特徴量が回転不変特徴量でない場合には、切り出してきた部分画像を面内回転させることで面内回転時の特徴量とし、データに追加してもよい。
【００５７】
学習計算工程Ｓ２４２６では、選択されたＮ０個の特定領域に関して上記処理により特定領域検出器の学習に用いるデータを生成し、これらのデータを用いて各特定領域に関する検出器(特定領域検出器)を生成する。特定領域検出器は既存のどのような手法でも構わないが、例えば、公知技術であるＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）やＲａｎｄｏｍｉｚｅｄ  Ｔｒｅｅによる識別器としてもよい。特定領域検出器は、各領域を別クラスとして分類するマルチクラス分類器として学習させてもよい。更に、別の検出器として、例えば公知技術のＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いて、それぞれの特定領域に関して検出器を学習させ、特定領域数だけ検出器を作ってもよい。
【００５８】
説明を図７（ｂ）に戻し、特定領域検出器学習工程Ｓ２４２０にて特定領域検出器が得られた後、領域組生成工程Ｓ２４３０では、選択領域の組み合わせによる領域組の候補を複数生成する。例えば、特定領域初期選択工程Ｓ２４１０で選択された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。領域組を三領域によるトリプレットとした場合、選択領域数Ｎ０に対して領域組の候補は全部でＮ０Ｃ３個存在する。ただし、先の可視判定結果を用いることで、同時に可視とならない領域の組み合わせは事前に領域組の候補として排除することができる。また、可視な領域どうしの組み合わせをすべて生成する必要はなく、同一直線状に乗る特定領域の組み合わせを利用しない、デロネイ三角形分割によって稜線の重複を防ぐ、などにより領域組を絞り込んでもよい。
【００５９】
評価工程Ｓ２４４０では、学習により生成された特定領域検出器を用いて、領域組の位置および姿勢の認識を行う。評価データＳＷのすべての視点におけるデータを入力データとして、先に説明したＳ１０１０からＳ１０６０による認識処理による三次元位置姿勢推定を行う。後述する正規化工程Ｓ２４５０を行う前であれば、前述の投票工程Ｓ１０５０にて用いられる投票重みはすべて一定の値、例えば１に初期化しておく。評価結果として位置姿勢推定結果が所定の誤差範囲内で得られた場合、正しい認識結果が得られたとする。位置、姿勢の推定結果が得られても所定誤差範囲内でなければ誤認識、位置、姿勢の推定結果が得られなかった場合を未検出とする。評価データＳＷのすべての視点ｖＷにおける位置姿勢推定の評価結果と、領域組の検出結果とを保持しておく。
【００６０】
正規化工程Ｓ２４５０では、評価工程Ｓ２４４０における認識結果に基づき、認識の結果により求められる領域組の位置および姿勢の認識精度に従って、検出器の出力に対する投票重みを設定する。すなわち、本工程では前述の投票工程Ｓ１０５０にて用いられる投票重みｗｔ（Θｔ）を正規化する。本実施形態における正規化工程Ｓ２４５０内の処理に関する詳細フローを図１０（ａ）に示す。
【００６１】
累積投票値算出工程Ｓ２４５１では、評価工程Ｓ２４４０で得られた領域組の検出結果を基に、全視点ｖＷにおける二種類の累積投票値を計算する。一つは所定の誤差範囲内の検出精度で正しく検出された領域組の投票値の累積値（正検出累積投票値）ＥＴ（ｖＷ）であって、正解値である位置姿勢に対する累積投票値から次のように定義する。
【００６２】
【数１４】
0005759161.tif 000015
【００６３】
ただし、表記を簡単にするため以下のように表現するものとする。
【００６４】
【数１５】
0005759161.tif 000016
【００６５】
ここでＫは視点ｖＷにおける検出領域組の集合、Θｋは同視点における検出領域組ｋの推定姿勢である。ＰｖＷおよびΘｖＷは座標対応算出工程Ｓ２２００にて得られた同視点における対象物体の位置および姿勢に関する真値である。Ｐｒｋ（Ｐ、Θ）は検出領域組ｋの、位置Ｐ、姿勢Θに対する重みなし投票値である。もう一つは誤差範囲を超えて誤って検出された領域組の投票重みの値の累積値（誤検出累積投票値）ＥＦｊ（ｖＷ）であって、誤検出位置に関する累積投票値から次のように定義する。
【００６６】
【数１６】
0005759161.tif 000017
【００６７】
ただし、表記を簡単にするため以下のように表現するものとする。
【００６８】
【数１７】
0005759161.tif 000018
【００６９】
ここでｊ＝１、・・・ＮｖＷＦは視点ｖＷにおいて誤検出された対象物体のインデックスで、ＮｖＷＦは同視点において発生した誤検出の数である。ＰｊおよびΘｊは誤検出ｊにおいて得られた推定位置および推定姿勢である。
【００７０】
投票重み更新工程Ｓ２４５２では、算出された累積投票値を基に投票値の重みを更新する。投票重みの値は、正検出累積投票値ＥＴ（ｖＷ）が投票閾値以上（η：投票閾値）、かつ、誤検出累積投票値ＥＦｊ（ｖＷ）が投票閾値未満になるような値でなければならない。正検出累積投票値ＥＴ（ｖＷ）の最適化を最急上昇法で解くとすれば、数１４式のｗｋ（Θｋ）に関する偏微分から、投票重みｗｋ（Θｋ）の更新式が次のように得られる。
【００７１】
【数１８】
0005759161.tif 000019
【００７２】
ここでζＴは学習係数で、例えば、ζＴ＝０．２と設定する。また、δは重み係数の更新を行うかどうかを決定するデルタ関数で、例えば、投票重みの最大値を、例えば、０．３に抑えるという制約を加えるのであれば以下の数１９式のように定義すればよい。
【００７３】
【数１９】
0005759161.tif 000020
【００７４】
あるいは、すでに正しく対象物体の領域組が検出されている場合には重み係数の更新をしない、という制約を加えたいのであれば、以下の数２０式のように定義すればよい。
【００７５】
【数２０】
0005759161.tif 000021
【００７６】
誤検出累積投票値ＥＦｊ（ｖＷ）の最適化を最急降下法で解くとすれば、数１６式のｗｋ（Θｋ）に関する偏微分から、投票重みｗｋ（Θｋ）の更新式が次の数２１式のように得られる。
【００７７】
【数２１】
0005759161.tif 000022
【００７８】
ここでζＦは学習係数で、例えば、ζＦ＝０．１と設定する。上記の数２０式および数２１式を適用し、投票重みを更新する。投票重みｗｋ（Θ）は、Θを量子化したＬＵＴ（ルックアップテーブル）の形式で保持してもよいし、多項式近似したΘの関数として保持してもよい。
【００７９】
説明を図７（ｂ）に戻し、ステップＳ２４７０では、評価データＳＷのすべての視点ｖＷに関して投票重みの更新を適用した結果、更新前（既に設定済みの投票重み）と更新後の投票重み（正規化工程Ｓ２４５０で新たに設定された投票重み）に変化がなければ収束したものと判断する（Ｓ２４７０-Ｙｅｓ）。例えば、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値を超える場合（Ｓ２４７０−Ｎｏ）、評価工程（Ｓ２４４０）および正規化工程（Ｓ２４５０）の処理が繰り返し実行される。一方、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値以内の場合は投票重みに変化が無く、収束したものと判断し、その投票重みを確定する（Ｓ２４７０−Ｙｅｓ）。そして、投票重みを学習結果記憶部７００に記憶させ、学習処理を終了する。一方、投票重みが変化した場合には収束しなかったものとして、評価工程Ｓ２４４０に戻り、新たに設定され、更新された投票重みを用いて再度、評価工程および正規化工程の処理を実行する。
【００８０】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化される。同じ領域組でも、精度良く検出され易い姿勢では強く投票され、認識精度が低くなりがちな姿勢では、信頼度の高い姿勢の領域組からの投票に比べて弱く投票することとなるため誤検出が発生しにくくなり、対象物体の認識精度の向上が可能になる。
【００８１】
（第２実施形態）
本実施形態では、第１実施形態において説明した学習方法に対して、さらに不要な領域組の削除と不足した特定領域の追加を実行する方法を説明する。学習処理のフローは図７（ａ）のとおりである。学習データ収集工程Ｓ２１００、座標対応算出工程Ｓ２２００および学習データ分割工程Ｓ２３００では、第１の実施形態と同様の処理を行い、特定領域検出器学習データＳＬと評価データＳＷを生成する。
【００８２】
本実施形態における学習工程Ｓ２４００の詳細フローを図７（ｂ）の参照により説明する。特定領域初期選択工程Ｓ２４１０から評価工程Ｓ２４４０までは、第１実施形態と同様の処理を行う。まず、特定領域初期選択工程Ｓ２４１０において、初期特定領域数として、Ｎ０個の特定領域を選択する。初期特定領域数Ｎ０は大きな値である必要はなく、例えば、Ｎ０＝１０といった小さな値で設定してもよい。特定領域検出器学習工程Ｓ２４２０において、特定領域の検出器を学習し、領域組生成工程Ｓ２４３０において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程Ｓ２４４０にて評価データＳＷのすべての視点に関して三次元位置姿勢推定を行う。  
正規化工程Ｓ２４５０では、投票重みを正規化し、不要な領域組の削除と不足した特定領域の追加を行う。本実施形態における正規化工程Ｓ２４５０内の処理に関する詳細フローを図１０（ｂ）に示す。図１０（ｂ）に示す詳細フローにおいて、累積投票値算出工程Ｓ２４５１および投票重み更新工程Ｓ２４５２では、図１０（ａ）の各工程と同様の処理が行われ、投票重みが更新される。  
領域削除工程Ｓ２４５３では不要な領域組と特定領域を削除する。それぞれの領域組に関して、投票重み更新工程Ｓ２４５２で更新された投票重みの最大値が所定の閾値未満であれば、該当する領域組を削除する。それぞれの領域組ｋに関して、領域組ｋの領域組有効度ｗ’ｋ（Θ）として、全姿勢における投票重みの最大値を数２２式により算出する。
【００８３】
【数２２】
0005759161.tif 000023
【００８４】
領域組有効度ｗ’ ｋ（Θ）の値が０に近い所定の閾値未満、例えば０．１未満であれば、領域組ｋは投票に対する寄与度が低いため不要であると判断し、領域組ｋを選択領域組から削除する。不要な領域組をすべて削除した後、構成要素として属する領域組が存在しなくなった特定領域は選択特定領域から削除する。領域組有効度ｗ’ ｋ（Θ）は全姿勢における最大値に限定されるものではなく、平均値、中央値などで設定してもよい。
【００８５】
領域追加工程Ｓ２４５４では、評価工程Ｓ２４４０にて得られた評価結果において、対象物体の領域組の位置および姿勢が未検出となる視点が存在する場合は特定領域および領域組が不足していると判断し、新たな特定領域を追加する。追加された特定領域により新たな領域組が追加される。未検出の発生した評価データＳＷにおける視点の中から任意に視点ｖＦＮを選択し、視点ｖＦＮから可視な対象物体表面から追加特定領域を選定し、選択特定領域に追加する。選定方法はランダムに行ってもよいし、既に選択されている特定領域の検出結果から、特定領域検出器が反応しなかった画像領域から選択してもよい。追加する特定領域は一つ以上とし、同時に複数の特定領域を追加してもよいし、視点ｖＦＮを複数選択してもよい。新規に追加された選択特定領域と、削除されずに残っている選択特定領域の組み合わせから、領域組生成工程Ｓ２４３０と同様の処理により、新規の領域組を生成して選択された領域組に追加し、選択領域組を新規に生成する。新規に生成された選択領域組の投票重みは、他領域組の投票重みの平均値などで初期化する。
【００８６】
次に特定領域検出器追加学習工程Ｓ２４５５では、領域追加工程Ｓ２４５４にて追加された特定領域も含めて特定領域検出器を学習する。特定領域検出器学習工程Ｓ２４２０と同様の処理にて、追加された特定領域の特徴量を抽出して、特定領域検出器を学習するためのデータに追加し、各特定領域に関する検出器を学習させ、特定領域検出器を生成する。  
説明を図７（ｂ）に戻し、正規化工程Ｓ２４５０の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断する（Ｓ２４７０−Ｙｅｓ）。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部７００に記憶させ、学習処理を終了する。それ以外の場合は収束しなかったものとして（Ｓ２４７０−Ｎｏ）、評価工程Ｓ２４４０に戻り、再度評価を行う。
【００８７】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化され、さらに選択特定領域と選択領域組はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となり、対象物体の認識精度の向上が可能になる。
【００８８】
（第３実施形態）
本実施形態では、第１実施形態において説明した認識処理に必要な領域組に関して、検出結果を改善するように領域組の構成特定領域を更新していく方法を説明する。学習処理のフローは図７（ａ）のとおりである。学習データ収集工程Ｓ２１００、座標対応算出工程Ｓ２２００および学習データ分割工程Ｓ２３００では、第１実施形態と同様の処理を行い、特定領域検出器学習データＳＬと評価データＳＷを生成する。
【００８９】
本実施形態における学習工程Ｓ２４００の詳細フローを図１２（ａ）の参照により説明する。図１２（ａ）において、特定領域初期選択工程Ｓ２４１０から評価工程Ｓ２４４０までは、第１実施形態と同様の処理を行う。まず、特定領域初期選択工程Ｓ２４１０において、初期特定領域数として、Ｎ０個の特定領域を選択する。特定領域検出器学習工程Ｓ２４２０において、特定領域の検出器を学習し、領域組生成工程Ｓ２４３０において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程Ｓ２４４０にて評価データＳＷのすべての視点に関して三次元位置姿勢推定を行う。  
特定領域選択工程Ｓ２４６０では、領域組の同時検出率に従って領域組を構成する特定領域を選択する。特定領域選択工程Ｓ２４６０の処理に関する詳細フローを図１２（ｂ）に示す。
【００９０】
図１２（ｂ）の同時検出率算出工程Ｓ２４５６では、撮像部の複数の撮像位置から複数の領域組を撮像した場合の検出結果のうち、同一の撮像位置で同時に所定の誤差範囲内の位置、姿勢として複数の領域組が検出される同時検出率を算出する。領域組ｋと領域組ｌが、同一視点（同一の撮像位置）で同時に正しい位置姿勢への投票に寄与する同時正投票寄与率ＲＴＳ（ｋ、ｌ）を以下のように定義する。
【００９１】
【数２３】
0005759161.tif 000024
【００９２】
ただし、表記を簡単にするため以下のように表現するものとする。
【００９３】
【数２４】
0005759161.tif 000025
【００９４】
ここでＰｖＷおよびΘｖＷは座標対応算出工程Ｓ２２００にて得られた視点ｖＷにおける対象物体の位置および姿勢に関する真値、ＶＷは評価データＳＷにおける視点総数である。  Ｐｒｋ（Ｐ、Θ）は同視点における検出領域組ｋの、位置Ｘ、姿勢Θに対する重みなし投票値である。ただし、領域組ｋが同視点において検出されなかった場合には、Ｐｒｋ（Ｐ、Θ）＝０とおく。
【００９５】
これに対して、領域組ｋと領域組ｌのいずれか一方だけが正しい位置姿勢への投票に寄与する排他正投票寄与率ＲＴＸ（ｋ、ｌ）を以下のように定義する。
【００９６】
【数２５】
0005759161.tif 000026
【００９７】
ここで、領域組ｋと領域組ｌの同時正検出率ＲＴ（ｋ、ｌ）は以下のように定義する。
【００９８】
【数２６】
0005759161.tif 000027
【００９９】
同様にして領域組ｋと領域組ｌが、同一視点で同時に誤検出位置姿勢へ投票する同時誤投票寄与率ＲＦＳ（ｋ、ｌ）を数２７式により求める。また、領域組ｋと領域組ｌのいずれか一方だけが誤検出位置姿勢へ投票する排他誤投票寄与率ＲＦＸ（ｋ、ｌ）を数２８式により求める。
【０１００】
【数２７】
0005759161.tif 000028
【０１０１】
【数２８】
0005759161.tif 000029
【０１０２】
ただし、表記を簡単にするため以下のように表現するものとする。
【０１０３】
【数２９】
0005759161.tif 000030
【０１０４】
領域組ｋと領域組ｌの同時誤検出率ＲＦ（ｋ、ｌ）を以下のように定義する。
【０１０５】
【数３０】
0005759161.tif 000031
【０１０６】
同時正検出率ＲＴ（ｋ、ｌ）と同時誤検出率ＲＦ（ｋ、ｌ）の比を、領域組ｋと領域組ｌの同時検出率Ｒ（ｋ、ｌ）として定義する。
【０１０７】
【数３１】
0005759161.tif 000032
【０１０８】
同時検出率Ｒ（ｋ、ｌ）はすべての領域組ｋおよび領域組ｌに対して求めてもよいが、組み合わせ的に計算コストが高くなるため、一部の視点に限定して算出してもよい。例えば、評価工程Ｓ２４４０の結果における正解位置姿勢への累積投票値が大きい視点だけを選択し、その視点において検出された領域組に関してのみ、同時検出率を算出してもよい。
【０１０９】
領域組再構成工程Ｓ２４５７では、先の同時検出率算出工程Ｓ２４５６で算出された同時検出率に基づいて選択領域組を更新する。同時検出率算出工程Ｓ２４５６で算出された同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択する。そして、選択された特定領域から新規の領域組を生成して、領域組生成工程Ｓ２４３０で生成された領域組に追加する。同時検出率Ｒ（ｋ、ｌ）が所定の閾値より大きくなる領域組ｋおよび領域組ｌは、同じ視点において正しく同時検出される確率が高く、かつ、同時に誤検出されにくいものである。この領域組ｋと領域組ｌを構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、新規の領域組を生成し、領域組に追加する。選択された領域組の例を図４（ｂ）に、新規に生成された領域組の例を図４（ｃ）に示す。領域組ｋおよび領域組ｌはそのまま残しても良いが、計算量的に冗長な領域組となるため選択領域組から削除することが望ましい。新しい領域組を生成するための同時検出率Ｒ（ｋ、ｌ）の閾値は固定の閾値としてもよいし、パーセンタイル法によって一定割合の上位の組み合わせを選んでもよい。あるいは、最も高い値を出した組み合わせだけを選んでもよい。
【０１１０】
領域組の構成に変化がなかった場合には収束したものと判断し、選択領域組を学習結果記憶部７００に記憶させ、学習処理を終了する。領域組の構成が変化した場合には収束しなかったものとして（Ｓ２４７０−Ｎｏ）、評価工程Ｓ２４４０に戻り、再度評価を行う。一方、領域組の構成が変化しなかった場合には収束したものとして（Ｓ２４７０−Ｙｅｓ）、処理を終了する。
【０１１１】
以上のような学習方法により、領域組の同時検出率に従って領域組が再構成される。視点によって同時に検出されやすい特定領域は同じ領域組に組み込まれることになる。従って、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【０１１２】
（第４実施形態）
本実施形態では、第３実施形態において説明した学習方法に対して、さらに領域組の投票重みを設定する方法を説明する。学習処理のフローは図７（ａ）のとおりである。学習データ収集工程Ｓ２１００、座標対応算出工程Ｓ２２００および学習データ分割工程Ｓ２３００では、第１の実施形態と同様の処理を行い、特定領域検出器学習データＳＬと評価データＳＷを生成する。
【０１１３】
本実施形態における学習工程Ｓ２４００の詳細フローを図１３（ａ）の参照により説明する。図１３（ａ）において、特定領域初期選択工程Ｓ２４１０から評価工程Ｓ２４４０までは、第１実施形態と同様の処理を行う。特定領域初期選択工程Ｓ２４１０において、初期特定領域数として、Ｎ０個の特定領域を選択し、特定領域検出器学習工程Ｓ２４２０において、特定領域の検出器を学習し、領域組生成工程Ｓ２４３０において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程Ｓ２４４０にて評価データＳＷのすべての視点に関して三次元位置姿勢推定を行う。  
正規化工程Ｓ２４５０では領域組の投票重みを正規化し、特定領域選択工程Ｓ２４６０では同時検出率に従って領域組を構成する特定領域を選択する。本実施形態における正規化工程Ｓ２４５０と特定領域選択工程Ｓ２４６０内の処理に関する詳細フローを図１３（ｂ）に示す。図１３（ｂ）における正規化工程Ｓ２４５０の累積投票値算出工程Ｓ２４５１および投票重み更新工程Ｓ２４５２では、第１実施形態と同様にして正検出累積投票値ＥＴ（ｖＷ）と誤検出累積投票値ＥＦ（ｖＷ）を求め、投票重みを更新する。
【０１１４】
図１３（ｂ）における特定領域選択工程Ｓ２４６０の領域削除工程Ｓ２４５３では、第 ２実施形態と同様にして不要な特定領域組および領域組を削除する。同時検出率算出工程Ｓ２４５６では、第 ３実施形態と同様にして同時検出率を求める。ただし、同時正投票寄与率ＲＴＳ（ｋ、ｌ）、排他正投票寄与率ＲＴＸ（ｋ、ｌ）、同時誤投票寄与率ＲＦＳ（ｋ、ｌ）および排他誤投票寄与率ＲＦＸ（ｋ、ｌ）は、投票重みを考慮して以下の数３２式から数３５式のように求める。
【０１１５】
【数３２】
0005759161.tif 000033
【０１１６】
【数３３】
0005759161.tif 000034
【０１１７】
【数３４】
0005759161.tif 000035
【０１１８】
【数３５】
0005759161.tif 000036
【０１１９】
領域組再構成工程Ｓ２４５７では、第 ３実施形態と同様にして、同時検出率に基づいて選択領域組を更新する。
【０１２０】
領域追加工程Ｓ２４５４および特定領域検出器追加学習工程Ｓ２４５５では、第２実施形態と同様にして特定領域と領域組の追加と、それに伴う特定領域検出器の追加学習を行う。
【０１２１】
上記の正規化工程Ｓ２４５０および特定領域選択工程Ｓ２４６０の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断し（Ｓ２４７０−Ｙｅｓ）。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部７００に記憶させ、学習処理を終了する。一方、収束判断工程Ｓ２４７０において、投票重み、選択特定領域または選択領域組に変化が生じた場合は収束していないものと判断し（Ｓ２４７０−Ｎｏ）、処理を評価工程Ｓ２４４０に戻して再度評価を行う。
【０１２２】
以上のような学習方法により、領域組の投票重みが正規化され、さらに選択特定領域と選択領域組の数とその構成はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となる。また、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【０１２３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005759161.tif 000037
【図２】
0005759161.tif 000038
【図３】
0005759161.tif 000039
【図４】
0005759161.tif 000040
【図５】
0005759161.tif 000041
【図６】
0005759161.tif 000042
【図７】
0005759161.tif 000043
【図８】
0005759161.tif 000044
【図９】
0005759161.tif 000045
【図１０】
0005759161.tif 000046
【図１１】
0005759161.tif 000047
【図１２】
0005759161.tif 000048
【図１３】
0005759161.tif 000049