(57)【要約】      （修正有）【課題】物体の姿勢を高精度に検出することが可能な情報処理装置を提供する。【解決手段】情報処理装置は、対象物体を含む評価画像を入力する入力手段と、評価画像から抽出した部分画像と、対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、複数の姿勢のそれぞれにおける画像の中から部分画像と一致する画像に対応する姿勢を検出する検出手段と、部分画像と一致する姿勢に対して所定の重みの投票を行うとともに、部分画像に一致する画像に対応する姿勢に類似した姿勢に対して所定の重みより低い重みの投票を行う投票手段と、評価画像内の複数の部分画像に対する投票結果に基づき、投票された各姿勢に対する累積投票得点を算出するとともに、累積投票得点に基づき、評価画像に含まれる物体の姿勢を判定する判定手段と、を有する。【選択図】図２
2020177336.tif 000002
【特許請求の範囲】
【請求項１】
対象物体を含む評価画像を入力する入力手段と、
前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出手段と、
前記部分画像と一致する前記姿勢に対して所定の重みの投票を行うとともに、前記部分画像に一致する画像に対応する姿勢に類似した姿勢に対して前記所定の重みより低い重みの投票を行う投票手段と、
前記評価画像内の複数の部分画像に対する投票結果に基づき、投票された各姿勢に対する累積投票得点を算出するとともに、前記累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記複数の姿勢に対応して複数の投票姿勢を設定するとともに、前記複数の姿勢に含まれる姿勢の１つを第１の姿勢、前記投票姿勢に含まれる姿勢の１つを第２の姿勢とするとき、前記第１の姿勢と前記第２の姿勢に関する評価値を、前記第１の姿勢を前記第２の姿勢に変換する回転変換を回転軸回転角で表したときの回転角の関数としたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数の姿勢に対応して複数の投票姿勢を設定するとともに、前記複数の姿勢に含まれる姿勢の１つを第１の姿勢、前記投票姿勢に含まれる姿勢の１つを第２の姿勢とするとき、前記第１の姿勢と前記第２の姿勢に関する評価値を、前記第１の姿勢を表すクォータニオンと、前記第２の姿勢を表すクォータニオンの内積の関数としたことを特徴とする請求項１〜２のいずれか一項に記載の情報処理装置。
【請求項４】
前記複数の姿勢に対応して複数の投票姿勢を設定するとともに、前記複数の投票姿勢に対する前記投票手段の投票に基づいて、複数の投票姿勢を抽出し、抽出した投票姿勢を前記投票姿勢の投票結果で重み付けして補間することで、出力姿勢を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
対象物体を含む評価画像を入力する入力手段と、
前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出手段と、
前記複数の姿勢に対応して複数の投票姿勢を設定する設定手段と、
前記検出手段によって検出された前記姿勢に対応する前記複数の投票姿勢の少なくとも１つの投票姿勢に所定の重みの投票を行う投票手段と、
前記投票手段による前記評価画像内の複数の部分画像の投票を終了した後で、投票された各投票姿勢に対する累積投票得点を算出するとともに、前記累積投票得点を所定の比率で前記複数の投票姿勢に分配する分配手段と、
前記分配手段によって分配された累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定手段と、を有することを特徴とする情報処理装置。
【請求項６】
さらに、前記複数の姿勢に対応する複数の投票姿勢について、前記投票結果に関する情報を記述した姿勢投票テーブルを記憶する記憶手段を備え、
前記分配手段は、所定の投票分配テーブルを参照して、前記複数の投票姿勢への投票を分配することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
対象物体を撮像して評価画像を取得する撮像手段と、
前記撮像手段によって取得された前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出手段と、
前記部分画像と一致する前記姿勢に対して所定の重みの投票を行うとともに、前記部分画像に一致する画像に対応する姿勢に類似した姿勢に対して前記所定の重みより低い重みの投票を行う投票手段と、
前記評価画像内の複数の部分画像に対する投票結果に基づき、投票された各姿勢に対する累積投票得点を算出するとともに、前記累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定手段と、を有する計測装置。
【請求項８】
請求項１〜６のうちいずれか一項に記載の前記情報処理装置の各手段としてコンピュータを機能させるためのコンピュータプログラム。
【請求項９】
請求項７に記載の前記計測装置の各手段としてコンピュータを機能させるためのコンピュータプログラム。
【請求項１０】
対象物体を含む評価画像を入力する入力ステップと、
前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出ステップと、
前記検出ステップによって検出された前記部分画像と一致する前記姿勢に対して所定の重みの投票を行うとともに、前記部分画像に一致する画像に対応する姿勢に類似した姿勢に対して前記所定の重みより低い重みの投票を行う投票ステップと、
前記評価画像内の複数の部分画像に対する投票に基づき、投票された各姿勢に対する累積投票得点を算出するとともに、前記累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定ステップと、を有することを特徴とする情報処理方法。
【請求項１１】
対象物体を含む評価画像を入力する入力ステップと、
前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出ステップと、
前記複数の姿勢に対応して複数の投票姿勢を設定する設定ステップと、
前記検出ステップによって検出された前記姿勢に対応する前記複数の投票姿勢の少なくとも１つの投票姿勢に所定の重みの投票を行う投票ステップと、
前記投票ステップによる前記評価画像内の複数の部分画像の投票を終了した後で、投票された各投票姿勢に対する累積投票得点を算出するとともに、前記累積投票得点を所定の比率で前記複数の投票姿勢に分配する分配ステップと、
前記分配ステップによって分配された累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定ステップと、を有することを特徴とする情報処理方法。
【請求項１２】
請求項７に記載の計測装置と、
前記計測装置により被検物を計測し、計測結果に基づいて前記被検物を保持して移動させるロボットと、を有することを特徴とするシステム。
【請求項１３】
請求項７に記載の計測装置を用いて被検物を計測する工程と、
該計測結果に基づいて前記被検物を処理することにより物品を製造する工程と、を有することを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像により物体の姿勢を検出する情報処理装置等に関するものである。
【背景技術】
【０００２】
画像を使用して、物体の位置や姿勢を検出する技術がある。例えば、特許文献１によれば、物体の各姿勢に対応する学習画像から分類木を生成する。そして、この分類木に認識対象画像から抽出した部分画像を適用することで、この部分画像にマッチングする学習画像と学習画像に対応する姿勢を高速に抽出し、抽出された姿勢に投票を行う。多数の部分画像の投票を集計し、投票得点の多かった姿勢を、認識対象画像に含まれる「物体の姿勢」として検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許６０４９８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前記の従来技術には、物体の姿勢を高精度に検出するために投票する姿勢の数を増やす（投票姿勢の分解能を上げる）と、投票が分散して投票得点の差がつき難く、姿勢を特定することが難しくなる課題がある。一方、処理に必要なメモリの容量を低減するため、投票する姿勢の数を減らしたい場合があるが、投票する姿勢の数を減らすと姿勢の精度が低下する課題がある。
本発明は、このような課題に鑑みてなされたものであり、物体の姿勢を高精度に検出可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明の情報処理装置は、
対象物体を含む評価画像を入力する入力手段と、
前記評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像に対応する姿勢を検出する検出手段と、
前記部分画像と一致する前記姿勢に対して所定の重みの投票を行うとともに、前記部分画像に一致する画像に対応する姿勢に類似した姿勢に対して前記所定の重みより低い重みの投票を行う投票手段と、
前記評価画像内の複数の部分画像に対する投票結果に基づき、投票された各姿勢に対する累積投票得点を算出するとともに、前記累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、物体の姿勢を高精度に検出することが可能な情報処理装置を得ることができる。
【図面の簡単な説明】
【０００７】
【図１】実施例１のハードウエア構成を示すブロック図である。
【図２】実施例１の機能構成を示すブロック図である。
【図３】学習画像に含まれる対象物体の姿勢の一例を説明する模式図である。
【図４】部分画像の生成方法を説明する模式図である。
【図５】累積投票得点格納部の格納例を説明するための図である。
【図６】位置情報の一例を説明する模式図である。
【図７】姿勢投票テーブルの一例を示す模式図である。
【図８】投票結果を示す模式図である。
【図９】実施例１の辞書作成の手順を示すフローチャートである。
【図１０】実施例１の位置姿勢検出処理の手順を示すフローチャートである。
【図１１】実施例３の位置姿勢検出処理の手順を示すフローチャートである。
【図１２】姿勢の異なる複数の対象物体を検出する処理を説明する模式図である。
【図１３】実施例５の候補姿勢と投票姿勢との関係を説明する模式図である。
【図１４】実施例５の位置姿勢決定手順を示すフローチャートである。
【図１５】実施例６の計測装置とロボットアームを含む制御システムを示す図である。
【発明を実施するための形態】
【０００８】
以下に、本発明の好ましい実施形態に係る実施例を添付の図面に基づいて詳細に説明する。尚、実施例に記載されている構成はあくまで例示であり、本発明の範囲をそれらに限定するものではない。
【実施例１】
【０００９】
実施例１の情報処理装置は、対象物体を含む評価画像を入力し、この対象物体の位置と姿勢を検出する。対象物体の位置と姿勢の検出は、評価画像から抽出した部分画像と、対象物体の複数の姿勢に対応した学習画像の各々から抽出した部分画像との一致度に基づいて行う。
図１は、情報処理装置１００のハードウエア構成を示すブロック図である。ＣＰＵ１０１は、ＲＯＭ１０２やＲＡＭ１０３に格納されているコンピュータプログラムやデータを用いて処理を実行する。それによって、制御手段として、情報処理装置全体の動作制御を行うと共に、情報処理装置が行うものとして後述する各処理を実行もしくは制御する。ＲＯＭ１０２には、ブートプログラムや設定データなどが格納されている。ＲＡＭ１０３は、ＲＯＭ１０２や２次記憶装置１０４からロードされたコンピュータプログラムや本実施例に係る辞書や姿勢投票テーブルなどの各種データ、Ｉ／Ｏデバイス１０９から入力されたデータなどを格納し、一時記憶するためのエリアを有する。また、ＲＡＭ１０３は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。２次記憶装置１０４は、ハードディスクドライブ装置などの大容量情報記憶装置である。
【００１０】
２次記憶装置１０４には、ＯＳ（オペレーティングシステム）１１１や、情報処理装置が行うものとして後述する各処理をＣＰＵ１０１に実行させるためのアプリケーション１１２やモジュール１１３、データ１１４が含まれる。また、２次記憶装置１０４には、以下の説明において既知の情報として取り扱う情報も保存されている。２次記憶装置１０４に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０３にロードされ、ＣＰＵ１０１により処理される。ディスプレイ１０６は、ＣＲＴや液晶画面等により構成されており、ＣＰＵ１０１による処理結果を画像や文字などによって表示することができる装置である。なお、ディスプレイ１０６の代わりに、プロジェクタなど、ＣＰＵ１０１による処理結果を画像や文字として投影する装置を用いても構わない。キーボード１０７やマウス１０８は、情報処理装置の操作者が操作することで各種の指示をＣＰＵ１０１に対して入力することができる、ユーザインターフェースとして機能する装置である。
【００１１】
Ｉ／Ｏデバイス１０９は、情報処理装置に対して様々な情報を入力する機器と、様々な情報を情報処理装置から外部の装置に対して出力する機器とを含むものである。本実施例では、Ｉ／Ｏデバイス１０９は、少なくとも、物体を含む画像を取得可能な機器を含んでいる。このような機器には、例えば、各画素の画素値が輝度値を表す２次元画像を撮像する撮像装置が適用可能である。また、各画素の画素値がこの機器の距離計測範囲内の各位置までの３次元距離を表す距離画像を撮像する機器（例えば、ＴＯＦセンサ装置等の３次元入力装置）も適用可能である。また例えば、Ｉ／Ｏデバイス１０９に、ステレオカメラ（２台のカメラ）を接続しても良い。その場合、２台のカメラのそれぞれは物体を含む画像を撮像し、ＣＰＵ１０１はこの２台のカメラのそれぞれにより撮像された画像を用いて公知の三角測量技術を適用することで、この撮像された画像に写っている空間の各位置までの３次元距離を求める。これにより、例えば画素毎に距離データを付加した距離画像を生成することができる。また例えば、Ｉ／Ｏデバイス１０９に１台のパターン光投影装置（プロジェクタ）と１台以上の撮像装置とを接続しても良い。
【００１２】
その場合、パターン光投影装置は、投影パターン（例えば、空間符号化画像や空間的三角関数画像、ランダムドット画像など）を物体に投影する。撮像装置はこの投影パターンが投影された物体の画像を撮像し、ＣＰＵ１０１はこの画像に周知の技術を適用することで物体までの距離の計測を行う。これにより、距離画像を生成することができる。また、同様の目的のために、レーザースリット光を用いた光切断法を用いても良い。このように、Ｉ／Ｏデバイス１０９は、対象物体を含む評価画像を入力する入力手段として機能している。また、Ｉ／Ｏデバイス１０９は、情報処理装置が後述する各処理により求めた様々な情報（例えば物体の姿勢や位置）を、この物体を把持するためのロボット等の外部の機器に対して送出する機器をも含む。ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、２次記憶装置１０４、ディスプレイ１０６、キーボード１０７、マウス１０８、Ｉ／Ｏデバイス１０９は、いずれも、バス１０５に接続されている。なお、本実施例に係る情報処理装置１００は、一般のＰＣ（パーソナルコンピュータ）であっても良いし、組み込みデバイス、デジタルカメラ、タブレット端末などの機器であっても良い。
【００１３】
図２は、情報処理装置１００の機能構成を示すブロック図である。本実施例に係る情報処理装置１００は、評価画像入力部２１、辞書生成部２２、画像分類情報計算部２３、辞書格納部２４、累積投票得点格納部２５、投票部２６、出力位置姿勢決定部２７、出力部２８を備える。
【００１４】
評価画像入力部２１は、対象物体の写った評価画像を入力する。ここで対象物体とは、本実施例の情報処理装置が位置と姿勢を検出する物体である。入力する画像は、いわゆるカメラで取得した２次元の輝度画像に限らない。例えば、３次元計測データを元に作成した距離画像（例えば画素毎に距離データを付加された画像）でもよい。また、２次元の輝度画像とそれに対応する距離画像の組を画像として扱ってもよい。また、例えば、サーモセンサで取得した温度分布の情報を画像として扱うことも可能である。
【００１５】
辞書生成部２２は、学習画像取得部２２１と、学習用部分画像生成部２２２と、辞書設定部２２３を備える。辞書生成部２２は、これらの構成と、後述する投票処理にも利用される画像分類情報計算部２３とによって辞書を作成し、作成した辞書を辞書格納部２４に格納する。
【００１６】
学習画像取得部２２１は、対象物体の複数の姿勢それぞれに対応した学習画像と、この学習画像に対応する姿勢情報を取得する。学習画像は、対象物体を撮影または計測することで取得してもよいし、コンピュータグラフィックス処理によって生成して取得してもよい。即ち、学習画像とは、予め用意した、複数の異なる姿勢のそれぞれにおける参照用の画像のことを指し、参照画像と読み替えても良い。対象物体の姿勢は、様々な姿勢が網羅的に含まれるようにする。
図３は、学習画像に含まれる対象物体の姿勢の一例を説明する模式図である。この例によれば、学習画像に含まれる対象物体の姿勢は、次のようにして得られるＮｘＭ個の姿勢である。図３（Ａ）の３０３は、ジオデシックドームであり、図３（Ｂ）の対象物体３０１の中心位置３０２をジオデシックドーム３０３の中心に配置して固定する。そして、対象物体の中心位置３０２（すなわち、ジオデシックドーム３０３の中心）から、ドーム表面を構成する三角形３０４の重心点３０５に向かう直線３０６に、対象物体３０１のＺ軸を合わせる。以下では直線３０６を法線方向とも言う。
【００１７】
ドーム表面を構成する三角形の数がＮ個の場合、法線方向はＮ個得られる。さらに、対象物体３０１を直線３０６の周りに等間隔で回転させる。以下ではこの回転を面内回転とも言う。面内回転の数がＭ個の場合、全部でＮｘＭ個の姿勢が得られる。例えば、８０個の三角形で構成されるジオデシックドームを使用し、面内回転を３０度間隔とする場合、Ｍ＝８０、Ｎ＝１２となり、姿勢の数は９６０姿勢となる。学習画像は、これらの姿勢の対象物体を、所定の位置に配置したカメラで撮影した画像である。カメラは、光軸が対象物体の中心位置３０２を通る位置に配置する。以下では、取得した学習画像の姿勢の集合を学習姿勢セットと言う。また、以下で学習画像の姿勢情報とは、前記の法線方向と面内回転とによって決まる「対象物体の姿勢」を表す情報であり、例えば、クォータニオンである。姿勢情報は、クォータニオンに限らず、オイラー角や、回転軸回転角や、その他の情報でも構わない。
【００１８】
学習用部分画像生成部２２２は、取得した学習画像のそれぞれについて、部分画像を生成する。以下では、この部分画像を学習用部分画像とも言う。図４は、部分画像の生成方法を説明する模式図である。図４（Ａ）に示すように、学習用部分画像は、例えば、幅・高さともに学習画像よりも小さいウインドウ４０１を学習画像４０２の左上から１画素ずつラスタースキャンしてウインドウ内の画像を切り出すことで取得する。学習用部分画像のサイズは、公知の方法で設定する。各部分画像は、対応する姿勢情報として、切り出し元の学習画像の姿勢情報を継承する。すなわち、以下で学習用部分画像の姿勢情報とは、対応する学習画像の姿勢情報を指す。また、学習用部分画像生成部２２２は、生成した学習用部分画像それぞれについて、学習画像との相対位置を表す学習位置情報を計算する。学習位置情報は、例えば、部分画像を前記の方法で生成したときのウインドウの中心画素から、学習画像の中心画素へ向かう２次元ベクトルである。
【００１９】
図４（Ｂ）において、ウインドウ４０３に対応する部分画像の学習位置情報は、ウインドウ４０３の中心画素４０４から、学習画像４０２の中心画素４０５に向かう２次元ベクトル４０６である。以下では、この学習位置情報を学習用部分画像の位置情報とも言う。尚、対象物体を含まない部分画像は、学習用部分画像に含めなくてよい。好適には、対象物体が写った画素の数の割合が所定の閾値を超える部分画像を学習用部分画像に含めるように構成する。
【００２０】
画像分類情報計算部２３は、生成した部分画像それぞれについて、他の部分画像と識別するための分類情報を計算する。分類情報は、類似する画像が同じ種類または近い種類として分類されるように計算方法や、計算に使用するパラメータが選択される。また、好適には、学習用部分画像は互いに異なる種類に分類されるように計算方法やパラメータが選択される。分類情報には、例えば、ＳＩＦＴやＳＵＲＦ、ＨＯＧなどの特徴量や、その組み合わせが利用できる。また、画像から無作為に抽出した２つの画素の画素値の大小判定に基づいて部分画像の分類木を作成し、この分類木による分類結果を分類情報としてもよい。
【００２１】
辞書設定部２２３は、学習用部分画像生成部２２２が生成した各学習用部分画像それぞれについて、画像分類情報計算部２３が計算した分類情報と、当該学習用部分画像の姿勢情報と位置情報とを対応付ける。そして対応付けて記述したデータを辞書格納部２４に格納する。以下では、このデータを辞書とも言う。辞書は、さらに、画像分類情報計算部２３が分類情報を計算する際に使用した各種パラメータを含むように構成してもよい。
【００２２】
累積投票得点格納部２５は、評価画像の複数の位置からなる投票位置と、複数の姿勢からなる投票姿勢との組み合わせそれぞれについて、累積投票得点を格納する。
図５は累積投票得点格納部の格納例を説明するための図であり、投票姿勢の数をＮｘＭ個とし、評価画像の投票位置の数を高さｘ幅とし、それらの組み合わせに対して累積投票得点を格納できるようにしている。従って累積投票得点を格納するためのビンの数は高さｘ幅ｘＮｘＭ個存在し、各ビンに累積投票得点が格納される。以下では、投票姿勢を構成する姿勢の集合を投票姿勢セットと言う。累積投票得点格納部２５は、前記複数の姿勢の累積投票得点を格納し、対象物体の姿勢を判定する判定手段として機能する。
投票部２６は、投票画像生成部２６１と対応学習画像検出部２６２と対応位置姿勢取得部２６３と姿勢投票テーブル格納部２６４と投票得点設定部２６５と累積投票得点更新部２６６を備える。
【００２３】
投票画像生成部２６１は、入力した評価画像の部分画像を生成する。本実施例の情報処理装置は、ここで生成した部分画像それぞれについて、当該部分画像から推定される「対象物体の位置と姿勢」を投票位置と投票姿勢の中から選択して投票する。以下ではこの部分画像を投票用画像とも言う。投票用画像の生成は、学習用部分画像生成部２２２と同様の方法で行われる。すなわち、ウインドウを評価画像の左上から１画素ずつラスタースキャンしてウインドウ内の画像を切り出すことで生成する。画像のサイズは、学習用部分画像と同じサイズとする。また、投票画像生成部２６１は、生成した部分画像それぞれについて、評価画像との相対位置を表す投票位置情報を計算する。この投票位置情報は、例えば、図４（Ｃ）に示すように、評価画像４０７の左上の画素４０８からウインドウ４０９の中心画素４１０へ向かう２次元ベクトル４１１である。以下ではこの投票位置情報を投票用画像の位置情報とも言う。
【００２４】
対応学習画像検出部２６２は、辞書格納部２４に格納された辞書に基づいて、投票画像生成部２６１が生成した投票用画像それぞれについて対応する学習用部分画像を検出する。検出は次のように行う。まず、投票用画像を１つ選択する。次に、選択した投票用画像に関する分類情報を画像分類情報計算部２３で計算する。次に、計算された分類情報と一致する分類情報を備える学習用部分画像を辞書から検出する。または、計算された分類情報に最も近い分類情報を備える学習用部分画像を辞書から検出する。すなわち、学習用部分画像の中から、その分類情報と投票用画像の分類情報の一致度が高い画像を抽出する。この処理を全ての投票用画像について行う。すなわち、対応学習画像検出部２６２は、評価画像から抽出した部分画像と、前記対象物体の複数の姿勢のそれぞれにおける画像との一致度を算出する。そしてこの一致度に基づいて、前記複数の姿勢のそれぞれにおける画像の中から前記部分画像と一致する画像を抽出し、抽出した画像に対応する姿勢を検出する。
このように、対応学習画像検出部２６２は、検出手段として機能する。
【００２５】
対応位置姿勢取得部２６３は、対応学習画像検出部２６２が検出した学習用部分画像に基づいて、対象の投票用画像に対応する、姿勢情報と位置情報を取得する。この姿勢情報は、検出した学習用部分画像の姿勢情報であり、辞書から取得できる。すなわち、この姿勢情報は、学習画像取得部２２１で取得した、学習画像の姿勢のいずれか１つに対応する。すなわち、学習姿勢の１つに対応する。この姿勢は、評価画像に含まれる対象物体の姿勢の候補となる。以下では、この姿勢を候補姿勢ともいう。一方、取得する位置情報は、評価画像における対象物体の推定位置に係る情報である。これは、対応学習画像検出部２６２が検出した学習用部分画像に対応する学習画像を対応学習画像とするとき、例えば、評価画像の左上画素から、評価画像に配置された対応学習画像の中心画素に向かう２次元ベクトルである。
【００２６】
図６は、この例の位置情報５０２を説明する模式図であり、図６において、４０７は評価画像、４０９は投票用画像としてのウインドウ、５０１は投票用画像４０９に対応する対応学習画像を示す。図に示すように、位置情報５０２は、投票位置情報としての２次元ベクトル４１１と、学習位置情報としての２次元ベクトル４０６とを足し合わせることで取得される。尚、全ての投票用画像に対応する姿勢情報と位置情報を合わせると、評価画像に含まれる対象物体の位置と姿勢が抽出できる。
また、図１２は、複数の投票用画像から取得された位置情報と姿勢情報とから対象物体を検出する処理を説明する模式図である。同図において、矩形で示される１１０１乃至１１０６は、それぞれ、投票画像生成部２６１が評価画像４０７から生成した投票用画像を示す。尚、これらは投票用画像の一部である。このうち、１１０１乃至１１０３の投票用画像について、対応学習画像検出部２６２が検出した学習用部分画像に対応する学習用画像が１１０７である。
【００２７】
投票用画像１１０１乃至１１０３の中心から引かれている矢印は、各投票用画像から検出した学習用部分画像の位置情報であり、評価画像４０７の点１１０９の位置に、学習画像１１０７に対応する姿勢の対象物体が存在することを示している。
同様に、１１０４乃至１１０６の投票用画像について、対応学習画像検出部２６２が検出した学習用部分画像に対応する学習用画像が１１０８である。投票用画像１１０４乃至１１０６の中心から引かれている矢印は、各投票用画像から検出した学習用部分画像の位置情報であり、評価画像４０７の点１１１０の位置に、学習画像１１０８に対応する姿勢の対象物体が存在することを示している。このように、本実施例の情報処理装置によれば、評価画像に含まれる、姿勢の異なる複数の対象物体の位置と姿勢を検出できる。そのため、例えば、バラ積みされた部品の位置と姿勢の検出に利用できる。
【００２８】
姿勢投票テーブル格納部２６４は、対応位置姿勢取得部２６３で取得された姿勢情報に関する、各投票姿勢への投票得点を記述したデータを格納する。以下ではこのデータを姿勢投票テーブルとも言う。図７は、姿勢投票テーブルの一例を示す模式図である。図７に示すように、姿勢投票テーブルは、学習姿勢セットの各学習姿勢（６１）に対応する、投票姿勢セットの各投票姿勢（６２）への投票得点が記述されている。ここで、学習姿勢セットのｉ番目の姿勢を学習姿勢（ｉ）（第１の姿勢）とし、投票姿勢セットのｊ番目の姿勢を投票姿勢（ｊ）（第２の姿勢）とする。このとき、学習姿勢（ｉ）に対応する、投票姿勢（ｊ）への投票得点は、学習姿勢（ｉ）と投票姿勢（ｊ）の姿勢が近いほど、投票得点が高くなるように設定する。例えば、投票得点は、学習姿勢（ｉ）を投票姿勢（ｊ）に変換する回転変換を回転軸回転角で表現したときの関数とする。
即ち、前記第１の姿勢と前記第２の姿勢に関する評価値（重み付けした投票得点等）を、前記第１の姿勢を前記第２の姿勢に変換する回転変換を回転軸回転角で表したときの回転角の関数とする。
【００２９】
好適には、この回転角の大きさの絶対値に応じて、この値が小さいほど投票得点が高くなるように設定する。尚、この回転角の値は、投票姿勢（ｊ）を学習姿勢（ｉ）に変換する回転変換を回転軸回転角で表現したときの回転角に等しく、どちらでもよい。
この投票得点は、学習姿勢（ｉ）に応じた、投票姿勢（ｊ）の評価値とみなすことができる。
また、回転角の大きさは、姿勢番号が離れた姿勢で小さい場合もある。好適には、回転角の大きさが、所定の閾値をこえる場合は投票得点を０点とする。すなわち、このような投票姿勢へは投票しない。尚、本明細書では、ある姿勢への投票得点が０点を超える場合を当該姿勢へ「投票する」と言い、投票得点が０点の場合を当該姿勢へ「投票しない」と言う。また、好適には、各学習姿勢において、全ての投票姿勢への投票得点の合計は同じ点数（例えば１点）となるように姿勢投票テーブルを構成する。
【００３０】
また、本実施例においては、各学習姿勢に対応する投票先が複数の投票姿勢となるように姿勢投票テーブルを構成している点に特徴がある。すなわち、図７の表の各行において複数の列で値が０より大きくなるようにする。このように構成することで、投票姿勢の数が多い場合においても、各投票姿勢の投票得点に差がつきやすく、高精度に姿勢を検出することが可能になる。即ち、本実施例においては、部分画像と一致する前記姿勢に対して所定の重みの投票を行うとともに、前記部分画像に一致する画像に対応する姿勢に類似した姿勢に対して前記所定の重みより低い重みの投票を行う点に特徴がある。なお姿勢投票テーブル格納部２６４は投票手段として機能している。
なお、部分画像と一致する前記姿勢が、投票姿勢にふくまれない場合においても、本実施例では候補姿勢により近い、より一致する投票姿勢に、より高い投票得点を付与するようにする。従って、このような場合でも、各投票姿勢の投票得点に差がつきやすく、高精度に姿勢を検出することが可能になる。
【００３１】
図８は、各学習姿勢に対応する投票先が１つの投票姿勢である場合（Ａ）と、各学習姿勢に対応する投票先が複数の投票姿勢である場合（Ｂ）の投票結果を示す模式図である。横軸は投票姿勢、縦軸は各投票姿勢の投票得点を示す。
図８（Ａ）に示すように、各学習姿勢に対応する投票先が１つの投票姿勢である場合（従来技術）は、投票得点が同点の姿勢が多数発生し、同点の姿勢から無作為に姿勢を決定した場合、決定される姿勢は図のＡの範囲でばらつく。一方、図８（Ｂ）では、投票得点に差があり、決定される姿勢は、安定して投票得点の最も高いＢに対応する姿勢となる。尚、図７では、学習姿勢（ｉ）と投票姿勢（ｊ）の数が同じ場合の例を示したが、両者は異なっても構わない。
【００３２】
投票得点設定部２６５は、対応位置姿勢取得部２６３が取得した姿勢情報と位置情報、および姿勢投票テーブル格納部２６４に格納された姿勢投票テーブルとに基づいて、投票画像生成部２６１が生成する投票用画像それぞれについて投票データを設定する。投票データは、各投票姿勢の各投票位置に対応する投票得点であり、次のように設定する。まず、投票データを０点で初期化する。すなわち、全ての投票姿勢の全ての投票位置の投票得点を０点に初期化する。次に、姿勢投票テーブルを参照して、対応位置姿勢取得部２６３で取得した姿勢情報に対応する各投票姿勢の投票得点を取得する。次に、取得した各投票姿勢の投票得点を、対応位置姿勢取得部２６３で取得した位置情報に対応する投票位置の投票得点として設定する。
【００３３】
累積投票得点更新部２６６は、投票画像生成部２６１が生成する投票用画像それぞれについて、投票得点設定部２６５で設定された投票データに基づいて累積投票得点格納部２５が格納する投票得点を更新する。すなわち、投票データの示す各投票姿勢、各投票位置の投票得点を累積投票得点格納部２５の対応する投票得点に加算する。以下では、この累積投票得点更新部２６６の処理を投票とも言う。
【００３４】
出力位置姿勢決定部２７は、投票画像生成部２６１が生成する全ての投票用画像に関する投票が完了した後、累積投票得点格納部２５に格納された投票結果に基づいて、出力する位置と姿勢を決定する。出力する位置と姿勢は、例えば、最も投票得点の高い投票位置と投票姿勢に対応する位置と姿勢として判定し決定する。即ち、出力位置姿勢決定部２７は、投票得点設定部２６５とともに判定手段として機能している。なお、評価画像を複数の領域に分割しておき、領域毎に投票得点の最も高い投票位置と投票姿勢に対応する位置と姿勢に決定してもよい。その他の方法でもよい。
出力部２８は、出力位置姿勢決定部２７が決定した位置と姿勢を、評価画像に含まれる「対象物体の位置と姿勢」の推定値として出力する。
【００３５】
図９は、本実施例における辞書作成の手順を示すフローチャートである。まず、ステップＳ８０１において、学習画像取得部２２１は対象物体の複数の姿勢それぞれに対応した学習画像を取得し、学習用部分画像生成部２２２は学習用部分画像を生成する。次に、ステップＳ８０２において、未処理の学習用部分画像を１つ選択する。次にステップＳ８０３において、画像分類情報計算部２３は選択した学習用部分画像の画像分類情報を計算する。次にステップＳ８０４において、辞書設定部２２３は計算した画像分類情報と、選択した学習用部分画像に対応する位置情報と姿勢情報との対応関係を記述したデータを辞書に格納する。次にステップＳ８０５において、全ての学習用部分画像の処理が完了したか判定し、完了していない場合は、ステップＳ８０２に戻る。全ての学習用部分画像の処理が完了した場合は、処理を終了する。
【００３６】
図１０は、本実施例における位置姿勢検出処理の手順を示すフローチャートである。まず、ステップＳ９０１において、評価画像入力部２１は対象物体の写った評価画像を入力する。次に、ステップＳ９０２において、投票画像生成部２６１は投票用画像を生成する。次にステップＳ９０３において、未処理の投票用画像を１つ選択する。次にステップＳ９０４において、画像分類情報計算部２３は選択した投票用画像の画像分類情報を計算する。次にステップＳ９０５において、対応学習画像検出部２６２は辞書を参照して計算した画像分類情報に対応する学習用部分画像を抽出し、対応位置姿勢取得部２６３は辞書を参照して学習用部分画像に対応する位置情報と姿勢情報を取得する。次にステップＳ９０６において、投票得点設定部２６５は姿勢投票テーブルを参照して各投票姿勢への投票得点を設定し、累積投票得点更新部２６６は設定した投票得点を累積投票得点格納部２５に格納される累積投票得点に加算する。この処理を投票とも言う。
【００３７】
次にステップＳ９０７において、全ての投票用画像の投票が完了したか判定し、完了していない場合は、ステップＳ９０３に戻る。全ての投票用画像の投票が完了した場合は、ステップＳ９０８において、出力位置姿勢決定部２７は投票結果に基づいて出力する位置と姿勢を決定する。最後にステップＳ９０９において、出力部２８は、決定した位置と姿勢を入力した画像に含まれる対象物体の位置・姿勢として出力する。
【００３８】
以上説明したように、本実施例の情報処理装置によれば、辞書に基づいて決定した学習画像の中の最もマッチングした（画像分類情報が一致したまたは最も近い）姿勢だけでなく、当該姿勢に係る複数の投票姿勢に投票するようにしている。その結果、投票が分散して差がつき難くい場合でもあっても、最も確からしい姿勢を特定することが可能となる。複数の投票姿勢への投票は、辞書に基づいて決定した姿勢と投票姿勢との対応関係を記述した姿勢投票テーブルを記憶する手段を備えることで容易に実現できる。ここで、姿勢投票テーブルに記述される、辞書に基づいて決定した姿勢を姿勢（ｉ）とする。本実施例では、姿勢（ｉ）に対応する投票姿勢（ｊ）への投票得点は、姿勢（ｉ）を姿勢（ｊ）に変換する回転変換を回転軸回転角で表現したときの回転角の大きさの絶対値に基づいて決定される。その結果、姿勢（ｉ）と姿勢（ｊ）が、法線方向と面内回転が共に異なる姿勢であっても、姿勢の差異を適切に反映した投票を行うことができる。
【実施例２】
【００３９】
実施例１では、姿勢投票テーブルに記述される投票得点が、学習姿勢（ｉ）を投票姿勢（ｊ）に変換する回転変換を回転軸回転角で表現したときの回転角の大きさの絶対値に応じて設定する例について説明した。しかし、投票得点は、回転軸回転角に限らず、例えば、クォータニオンを使用してもよい。この場合、学習姿勢セットのｉ番目の姿勢である学習姿勢（ｉ）に対応する、投票姿勢セットのｊ番目の姿勢である投票姿勢（ｊ）への投票得点は、学習姿勢（ｉ）を表すクォータニオンと投票姿勢（ｊ）を表すクォータニオンの内積の関数とする。即ち、複数の学習姿勢に含まれる姿勢の１つ学習姿勢（ｉ）を第１の姿勢、前記投票姿勢に含まれる姿勢の１つ投票姿勢（ｊ）を第２の姿勢とする。
【００４０】
そのとき、前記第１の姿勢と前記第２の姿勢に関する評価値を、前記第１の姿勢を表すクォータニオンと、前記第２の姿勢を表すクォータニオンの内積の関数としている。そして、学習姿勢（ｉ）と投票姿勢（ｊ）の姿勢が近いほど、投票得点が高くなるように設定する。好適には、この内積の絶対値に応じて、この絶対値が大きいほど投票得点が高くなるように設定する。
本実施例の構成によれば、姿勢（ｉ）と姿勢（ｊ）が、法線方向と面内回転が共に異なる姿勢であっても、姿勢の差異を適切に反映した投票を行うことができる。
【実施例３】
【００４１】
実施例１では、各投票画像に係る投票において、複数の投票姿勢へ投票可能な構成について説明した。実施例３では、各投票画像に係る投票は１つの投票姿勢へ行い、全ての投票画像に関する投票が終了した後で、各投票姿勢の累積投票得点を複数の投票姿勢に分配する構成について説明する。尚、実施例１と同じ構成については、説明を省略する。
実施例３の姿勢投票テーブル格納部２６４は、各投票姿勢の投票得点を各投票姿勢へ分配するための分配比率を記述した投票分配テーブルを格納する。
【００４２】
尚、本実施例の投票姿勢セットは、学習姿勢セットと同じにする。投票分配テーブルは、図７の姿勢投票テーブルにおける６１と６２が共に投票姿勢（＝学習姿勢）となることを除いて、姿勢投票テーブルと同じである。そして、投票姿勢（ｉ）（＝学習姿勢（ｉ））から投票姿勢（ｊ）（＝学習姿勢（ｊ））への分配比率を記述したテーブルである。投票姿勢セットのｉ番目の姿勢である投票姿勢（ｉ）から投票姿勢セットのｊ番目の姿勢である投票姿勢（ｊ）への分配比率は、投票姿勢（ｉ）を投票姿勢（ｊ）に変換する回転変換を回転軸回転角で表現したときの回転角の関数とする。
【００４３】
そして、投票姿勢（ｉ）と投票姿勢（ｊ）の姿勢が近いほど、投票得点が高くなるように設定する。好適には、この回転角の大きさの絶対値に応じて、この絶対値が小さいほど投票得点が高くなるように設定する。また、分配比率は、実施例２で説明したように、回転軸回転角に代えてクォータニオンを使用してもよい。この場合、分配比率は、投票姿勢（ｉ）を表すクォータニオンと投票姿勢（ｊ）を表すクォータニオンの内積の関数とし、投票姿勢（ｉ）と投票姿勢（ｊ）の姿勢が近いほど、投票得点が高くなるように設定する。好適には、この内積の絶対値に応じて、この絶対値が大きいほど投票得点が高くなるように設定する。分配比率は、学習姿勢の組み合わせに応じた評価値とみなすことができる。
【００４４】
実施例３の投票得点設定部２６５は、姿勢投票テーブルを参照せず、対応位置姿勢取得部２６３で取得した姿勢情報に対応する投票姿勢にのみ投票得点を付与する。投票得点は、全ての投票において同じ点（例えば１点）とする。
【００４５】
実施例３の出力位置姿勢決定部２７は、姿勢投票テーブル格納部２６４に格納される投票分配テーブルに基づいて、累積投票得点格納部２５に格納された投票結果を更新する。すなわち、累積投票得点格納部２５の投票姿勢（ｉ）の投票得点は、投票分配テーブルに記述された投票姿勢（ｉ）から各投票姿勢（ｊ）への分配比率に基づいて、各投票姿勢（ｊ）へ分配される。その後、出力位置姿勢決定部２７は、更新された投票結果に基づいて、出力する位置と姿勢を決定する。出力する位置と姿勢の決定は、実施例１と同様にして行う。
【００４６】
図１１は、実施例３の位置姿勢検出処理の手順を示すフローチャートである。ステップＳ９０１からステップＳ９０４は、実施例１と同じであるので説明を省略する。ステップＳ１００５において、実施例３の投票得点設定部２６５は、ステップＳ９０４で取得した位置情報と姿勢情報に基づいて、当該姿勢情報に対応する投票姿勢のみに投票得点を付与する。そして、累積投票得点更新部２６６は、この投票得点を累積投票得点格納部２５に格納される累積得票得点に加算する。次に、ステップＳ１００６において、全ての投票用画像の処理が完了したか判定し、完了していない場合は、ステップＳ９０３に戻る。
【００４７】
全ての投票用画像の処理が完了した場合は、ステップＳ１００７において、実施例３の出力位置姿勢決定部２７は姿勢投票テーブル格納部２６４に格納される投票分配テーブルに基づいて、累積投票得点格納部２５に格納された投票結果を更新する。即ち、ステップＳ１００７において、前記投票手段による前記評価画像内の複数の部分画像の投票を終了した後で、投票された各投票姿勢に対する累積投票得点を算出する。このとき、ＣＰＵ１０１は、前記累積投票得点を所定の比率で前記複数の投票姿勢に分配する分配手段として機能している。なお上記分配をする際の所定の比率は固定であっても良いし、上記のように姿勢投票テーブル格納部２６４に格納される投票分配テーブルを参照しても良い。
次に、ステップＳ１００８において、実施例３の出力位置姿勢決定部２７は、更新された投票結果に基づいて出力する位置と姿勢を判定し決定する。最後にステップＳ１００９において、出力部２８は、決定した位置と姿勢を入力した画像に含まれる対象物体の位置・姿勢として判定し出力する。即ちステップＳ１００８において、ＣＰＵ１０１は、分配された累積投票得点に基づき、前記評価画像に含まれる物体の姿勢を判定する判定手段として機能している。
【００４８】
以上説明したように、実施例３の情報処理装置によれば、辞書に基づいて決定した学習画像の中の最もマッチングした姿勢に投票した後、当該姿勢に係る複数の投票姿勢に投票得点を分配する。その結果、実施例１と同様に、投票が分散して差がつき難くい場合でもあっても、最も確からしい姿勢を特定することが可能となる。複数の投票姿勢への投票は、各投票姿勢から各投票姿勢への分配比率を記述した投票分配テーブルを記憶する手段を備えることで容易に実現できる。また、本実施例３によれば、投票分配テーブルに記述される、投票姿勢  （ｉ）から投票姿勢（ｊ）への分配比率は、姿勢（ｉ）を姿勢（ｊ）に変換する回転変換を回転軸回転角で表現したときの回転角の大きさの絶対値に基づいて決定される。その結果、姿勢（ｉ）と姿勢（ｊ）が、法線方向と面内回転が共に異なる姿勢であっても、姿勢の差異を適切に反映した投票を行うことができる。
【実施例４】
【００４９】
上記の実施例３においては、辞書に基づいて決定した学習画像の中の最もマッチングした姿勢に投票した後、投票分配テーブルに基づいて、当該姿勢に係る複数の投票姿勢に投票得点を分配している。しかし、学習画像の中の最もマッチングした姿勢に投票する際に、予め定めたルールに基づいて、当該姿勢に係る複数の投票姿勢に投票得点を分配しても良い。例えば最もマッチングした姿勢に対して例えば０．６を投票し、その前後にそれぞれ０．２を投票するなどの簡単なルールを予め決めておき、そのルールに従って投票をするようにしても良い。
【実施例５】
【００５０】
実施例１の累積投票得点格納部２５は、投票姿勢と投票位置との組み合わせそれぞれについて、累積投票得点を格納する。投票姿勢の数は、法線方向の数を８０、面内回転の数を１２（３０度間隔）とするときに９６０個である。投票位置の数は、評価画像の画素サイズが幅１０００画素、高さ１０００画素で、全画素を投票位置とする場合は百万個である。この場合、累積得票得点を格納する領域は、９６０  ｘ  百万個必要となる。検出する姿勢の精度を上げるために、面内回転の間隔をさらに細かくすると、さらに多くの領域が必要となる。つまり、処理に大容量のメモリを必要とする。実施例５では、精度を低下させることなく投票姿勢の数を削減する構成について説明する。尚、実施例１と同じ構成については、説明を省略する。
【００５１】
本実施例は、姿勢投票テーブルの投票姿勢の数が学習姿勢の数よりも少ないケースに対応するものである。この場合、投票姿勢に、候補姿勢となった学習姿勢が存在しないケースが発生する。図１３は、本実施例における、候補姿勢と投票姿勢との関係を説明する模式図である。図では、姿勢Ａが、姿勢Ｂと姿勢Ｃからそれぞれ（１−ｔ）：ｔの位置に存在する場合を示している。ｔは０≦ｔ≦１を満足する数値とする。また、姿勢Ａ、姿勢Ｂ、姿勢Ｃは学習姿勢であるが、投票姿勢は姿勢Ｂと姿勢Ｃのみで、姿勢Ａは投票姿勢に含まれないとする。この場合、本実施例の姿勢投票テーブルには、学習姿勢が姿勢Ａのときの、投票姿勢が姿勢Ｂの投票得点にｔ点、投票姿勢が姿勢Ｃの投票得点に（１−ｔ）点が記述される。そして、学習姿勢が姿勢Ａのときの他の投票姿勢（姿勢Ｂおよび姿勢Ｃ以外の姿勢）の投票得点には０点が記述される。例えば、学習姿勢の面内回転が５度間隔、投票姿勢の面内回転が３０度間隔であり、姿勢Ａ、姿勢Ｂ、姿勢Ｃの面内回転が、それぞれ２５度、０度、３０度の場合は、次の投票得点が記述される。すなわち、学習姿勢が姿勢Ａで投票姿勢が姿勢Ｂの投票得点には１／６点、学習姿勢が姿勢Ａで投票姿勢が姿勢Ｃの投票得点には５／６点が記述される。
【００５２】
図１４は、本実施例の出力位置姿勢決定部２７が、累積投票得点格納部２５に格納された投票結果に基づいて出力する位置と姿勢を決定する手順を示すフローチャートである。まず、ステップ１３０１において、投票結果から最も累積投票得点の高い投票位置と投票姿勢およびその累積投票得点を抽出する。ここで投票位置を位置１、投票姿勢を姿勢１、その累積投票得点をｓ１とする。次に、ステップＳ１３０２において、姿勢投票テーブルを参照して、ステップＳ１３０１で抽出した投票姿勢へ投票する学習姿勢を全て抽出する。すなわち、図７の姿勢投票テーブルにおいて、抽出した投票姿勢の列の投票得点が０以外の行に対応する学習姿勢を全て抽出する。これによって、姿勢１に係る学習姿勢が抽出される。次に、ステップＳ１３０３において、姿勢投票テーブルを参照して、ステップＳ１３０２で抽出した学習姿勢が投票する投票姿勢を全て抽出する。
【００５３】
すなわち、図７の姿勢投票テーブルにおいて、抽出した学習姿勢のそれぞれについて、当該学習姿勢の行の投票得点が０以外の列に対応する投票姿勢を全て抽出する。これによって、第１姿勢に係る学習姿勢が投票する投票姿勢が抽出される。次に、ステップＳ１３０４において、投票結果を参照して、ステップＳ１３０３で抽出した投票姿勢の中から、ステップＳ１３０１で抽出した投票位置において、姿勢１を除いて最も累積投票得点の高い投票姿勢とその累積投票得点を抽出する。この投票姿勢を姿勢２、その累積投票得点をｓ２とする。次に、ステップＳ１３０５において、姿勢１と姿勢２をｓ１／（ｓ１＋ｓ２）：ｓ２／（ｓ１＋ｓ２）で補間した姿勢を計算する。
【００５４】
この姿勢を姿勢３とする。尚、ｔ＝ｓ１／（ｓ１＋ｓ２）とすると、上記の比率は、ｔ：（１−ｔ）となる。好適には、球面線形補間（Ｓｌｅｒｐ）を使用して補間を行う。例えば、姿勢１を表すクォータニオンｑ１と、姿勢２を表すクォータニオンｑ２の内積のアークコサインから、ｑ１とｑ２の成す角度θを取得する。尚、θが負の数であれば、−１倍して正の値とする。重み係数として、次の式（１）と式（２）によりｃ１とｃ２を求める。
ｃ１＝ｓｉｎ（θ  ｘ  ｔ）／ｓｉｎ（θ）            ・・・（１）
ｃ２＝ｓｉｎ（θ  ｘ  （１−ｔ））／ｓｉｎ（θ）    ・・・（２）
姿勢３を表すクォータニオンｑ３は、ｃ１とｃ２とを重み係数として次の式（３）で計算される。
【００５５】
ｑ３＝ｃ１  ｘ  ｑ１  ＋  ｃ２  ｘ  ｑ２              ・・・（３）
最後に、ステップＳ１３０６において、出力する位置に位置１、出力する姿勢にステップＳ１３０５で計算した姿勢３を設定する。即ち、複数の投票姿勢に対する前記投票手段の投票に基づいて、複数の投票姿勢を抽出し、抽出した投票姿勢を前記投票姿勢の投票結果で重み付けして補間することで、出力姿勢を決定している。
本実施例の投票姿勢は姿勢の数が少ないため、姿勢の分解能が低く、投票姿勢に含まれる量子化誤差が無視できない。そこで、累積投票得点の最も高かった姿勢１と、姿勢１に係る投票姿勢の中で姿勢１に次いで投票の高かった姿勢２を使用し、累積投票得点で重み付して補間することで出力姿勢に含まれる誤差を低減する。
以上説明したように、実施例５の情報処理装置によれば、精度を低下させることなく投票姿勢の数を削減し、処理に必要なメモリ容量を低減することができる。
【実施例６】
【００５６】
以上の実施例では、学習姿勢としてジオデシックドームを参照する例について記載したが、学習姿勢や投票姿勢は、これに限らず、任意の姿勢のセットを利用することができる。例えば、ヨー・ロール・ピッチを無作為に所定の数だけ生成して決定することもできる。また、ジオデシックドームを参照する場合においても、法線方向の設定において、ドームの中心からドームの表面を構成する三角形の重心点に向かう直線の代わりに、三角形の頂点に向かう直線の方向を利用することもできる。また、三角形以外の多角形によって球の表面を近似し、球の中心から、当該多角形の重心位置や頂点位置に向かう直線の方向を利用することもできる。
また、部分画像の抽出方法は、ウインドウをラスタースキャンする方法に限らず、他の公知の方法で抽出してもよい。
【００５７】
また、投票得点は、０以上の数値を使用する例について記載したが、最終的に決定される姿勢に対する重み付けとして利用できれば、これに限らない。例えば、上記の説明の投票得点に対して一律に１００を減じて、０の代わりに−１００を使用することもできる。累積投票得点も各投票の結果を集計することができれば、上記の構成に限らない。また、前記実施例の構成に加えて、学習画像における対象物体の大きさと、評価画像における対象物体の大きさを合わせる、スケール調整部を備えてもよい。スケール調整部は、例えば、評価画像を撮影したカメラと評価画像に写った対象物体との距離を取得し、取得した距離Ｌ１と、学習画像を生成したときのカメラと対象物体との距離Ｌ２とに基づいて、評価画像をＬ１／Ｌ２倍に拡大または縮小する。
また、実施例３では２つの姿勢とその累積投票得点から出力姿勢を補間して求める例を説明したが、３つ以上の姿勢とその累積投票得点から出力姿勢を補間して求めることもできる。
【００５８】
また、実施例の情報処理装置を撮像装置と組み合わせて計測装置として用いることもできる。その場合、計測装置は例えば支持アームなどに支持された状態で使用されうる。例えば、図１５のように計測装置２００がロボットアーム３００（把持装置）の先端に備え付けられて使用される制御システムについて説明する。計測装置２００は、支持台３５０に置かれた被検物２１０にパターン光などを投影して撮像し、画像を取得する。そして、計測装置２００内の制御部又は計測装置２００から画像データを取得した制御部３１０が、被検物２１０の位置および姿勢を求めるための計測を行い、計測結果としての位置および姿勢の情報を制御部３１０が取得する。
【００５９】
制御部３１０は、その位置および姿勢の情報に基づいて、ロボットアーム３００に駆動指令を送ってロボットアーム３００を制御する。ロボットアーム３００は先端のロボットハンドなど（把持部）で被検物２１０を把持（保持）して、並進や回転や移動をさせる。さらに、ロボットアーム３００によって被検物２１０を他の部品に組み付けることにより、複数の部品で構成された物品、例えば電子回路基板や機械などを製造することができる。また、移動された被検物２１０を加工することにより、物品を製造することができる。制御部３１０は、ＣＰＵなどの演算装置やメモリなどの記憶装置を有する。なお、ロボットを制御するための制御部を制御部３１０の外部に設けても良い。また、計測装置２００により計測された計測データや得られた画像をディスプレイなどの表示部３２０に表示するようにしてもよい。
【００６０】
なお、本発明は上記実施例に限定されるものではなく、本発明の主旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。
また、本実施例における制御の一部または全部を上述した実施例の機能を実現するコンピュータプログラムをネットワーク又は各種記憶媒体を介して情報処理装置や計測装置等に供給するようにしてもよい。そしてその情報処理装置や計測装置等におけるコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行するようにしてもよい。その場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することとなる。
【符号の説明】
【００６１】
２１      評価画像入力部
２６２    対応学習画像検出部
２６５    投票得点設定部
２７      出力位置姿勢決定部
【図１】
2020177336.tif 000003
【図２】
2020177336.tif 000004
【図３】
2020177336.tif 000005
【図４】
2020177336.tif 000006
【図５】
2020177336.tif 000007
【図６】
2020177336.tif 000008
【図７】
2020177336.tif 000009
【図８】
2020177336.tif 000010
【図９】
2020177336.tif 000011
【図１０】
2020177336.tif 000012
【図１１】
2020177336.tif 000013
【図１２】
2020177336.tif 000014
【図１３】
2020177336.tif 000015
【図１４】
2020177336.tif 000016
【図１５】
2020177336.tif 000017