(57)【要約】【課題】  操作者依存性が無く且つ省メモリで高速な対象物体の位置姿勢推定を行うための辞書の作成を行うための技術を提供すること。【解決手段】  それぞれの視点から見た対象物体の形状データを取得する。自視点に対応する形状データと規定値以上の類似度を有する形状データに対応する他視点を、非有効視点として特定する。それぞれの視点のうち非有効視点以外の視点を有効視点とし、該有効視点と対象物体との間の相対姿勢と、該有効視点に対応する形状データとを、対象物体の位置姿勢を推定するために使用するデータとして出力する。【選択図】  図１
2015072581.tif 000002
【特許請求の範囲】
【請求項１】
それぞれの視点から見た対象物体の形状データを取得する取得手段と、
自視点に対応する形状データと規定値以上の類似度を有する形状データに対応する他視点を、非有効視点として特定する特定手段と、
前記それぞれの視点のうち非有効視点以外の視点を有効視点とし、該有効視点と前記対象物体との間の相対姿勢と、該有効視点に対応する形状データとを、前記対象物体の位置姿勢を推定するために使用するデータとして出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記特定手段は、
前記それぞれの視点を対象とし、該対象とする視点が前記特定手段によって非有効視点として特定されていなければ、該対象とする視点に対応する形状データと規定値以上の類似度を有する形状データに対応する視点であって且つ前記特定手段によって非有効視点として特定されていない視点を、非有効視点として特定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、非有効視点に固有のインデックスを登録したリストを作成し、
前記出力手段は、前記それぞれの視点のうち前記リストに登録されていないインデックスに対応する視点を有効視点とし、該有効視点と前記対象物体との間の相対姿勢と、該有効視点に対応する形状データとを、前記対象物体の位置姿勢を推定するために使用するデータとして出力する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記特定手段は更に、前記それぞれの視点のうち優先視点を設定する手段を備え、
前記特定手段は、自視点と、該自視点に対応する形状データと規定値以上の類似度を有する形状データに対応する他視点と、のうち前記優先視点から遠い方の視点を、非有効視点として特定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記出力手段は、
前記それぞれの視点のうち非有効視点以外の視点を有効視点とし、該有効視点と前記対象物体との間の相対姿勢と、該有効視点に対応する形状データと、を用いて学習を行うことで、前記対象物体の位置姿勢を推定するために使用する辞書を作成することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記取得手段は、
前記対象物体の形状を規定するデータを用いて、前記視点から見た該対象物体の画像をレンダリングし、該レンダリングにより得られる該画像を前記形状データとして取得することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記取得手段は、
それぞれの視点から撮影された対象物体の距離画像を、前記形状データとして取得することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項８】
前記取得手段は、
それぞれの視点から撮影された対象物体の撮像画像から抽出した特徴量を、前記形状データとして取得することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項９】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、それぞれの視点から見た対象物体の形状データを取得する取得工程と、
前記情報処理装置の特定手段が、自視点に対応する形状データと規定値以上の類似度を有する形状データに対応する他視点を、非有効視点として特定する特定工程と、
前記情報処理装置の出力手段が、前記それぞれの視点のうち非有効視点以外の視点を有効視点とし、該有効視点と前記対象物体との間の相対姿勢と、該有効視点に対応する形状データとを、前記対象物体の位置姿勢を推定するために使用するデータとして出力する出力工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体の位置姿勢推定技術に関するものである。
【背景技術】
【０００２】
従来から、特許文献１にあるように、対象物体を予め複数の視点から撮影した画像をテンプレートとし、姿勢が未知の対象物体を撮影した画像とマッチングすることによって対象物体の位置・姿勢を求める技術があった。特に、特許文献１では、物体の回転対称性を考慮した限定された視点からの撮影画像をテンプレートとして用いることによって高速にマッチングする実施形態が開示されている。
【０００３】
一方、特許文献２では、対象物体のさまざまな視点からの３次元データをテンプレートとし、姿勢が未知の対象物体から取得した３次元データとマッチングすることによって対象物体の位置・姿勢を求める技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３３７７４６５号公報
【特許文献２】特許第４９４０４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術においては以下の課題が存在した。まず、特許文献１で開示されている技術においては、対象物体の回転対称性を人間が判断し、それに基づいた限定された視点からの撮影データを準備する必要があった。この作業は、ある程度スキルを要する作業であり、登録するデータがユーザによって変わってしまうという課題があった。
【０００６】
一方、特許文献２で開示されている技術においては、対象物体に何らかの対称性が存在し、複数の姿勢でほぼ同一の測定データとなる冗長性が存在した場合、冗長なテンプレートを作成してしまうという問題があった。そして、冗長なテンプレートを作成、登録してしまうと、冗長性を排除した場合と比べて必要なメモリも増え、マッチングに要する時間も増えるという問題が発生していた。
【０００７】
本発明はこのような問題に鑑みてなされたものであり、操作者依存性が無く且つ省メモリで高速な対象物体の位置姿勢推定を行うための辞書の作成を行うための技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、それぞれの視点から見た対象物体の形状データを取得する取得手段と、自視点に対応する形状データと規定値以上の類似度を有する形状データに対応する他視点を、非有効視点として特定する特定手段と、前記それぞれの視点のうち非有効視点以外の視点を有効視点とし、該有効視点と前記対象物体との間の相対姿勢と、該有効視点に対応する形状データとを、前記対象物体の位置姿勢を推定するために使用するデータとして出力する出力手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、操作者依存性が無く且つ省メモリで高速な対象物体の位置姿勢推定を行うための辞書の作成を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置が行う処理のフローチャート。
【図２】情報処理装置の構成例を示すブロック図。
【図３】ステップＳ１０５における処理を説明する図。
【図４】ステップＳ１０５における処理を説明する図。
【図５】情報処理装置が行う処理のフローチャート。
【図６】情報処理装置が行う処理のフローチャート。
【図７】優先視点６０６について説明する図。
【図８】ステップＳ６０７における処理の詳細を示すフローチャート。
【図９】円錐状の対象物体に対して第３の実施形態を適用した例を説明する図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
先ず、本実施形態に係る情報処理装置の構成例について、図２のブロック図を用いて説明する。なお、情報処理装置に適用可能な構成は、図２に示した構成に限るものではなく、以下に情報処理装置が行うものとして後述する各処理を実行可能な構成であれば構わない。また、図２に示した構成は、単独の装置の構成としても良いし、例えば、組み込みデバイス、デジタルカメラ、タブレット端末などの装置上で実装される構成であっても良い。
【００１３】
ＣＰＵ２０１は、ＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、本装置全体の動作制御を行うと共に、本装置が行うものとして後述する各処理を実行する。
【００１４】
ＲＯＭ２０２には、本装置の設定データやブートプログラムなどが格納されている。ＲＡＭ２０３は、２次記憶装置２０４からロードされたコンピュータプログラムやデータ（図２の場合、ＯＳ２１１、アプリケーション２１２、モジュール２１３、データ２１４）を一時的に記憶するためのエリアを有する。また、ＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアや、Ｉ／Ｏデバイス２０９から送出される各種のデータを一時的に記憶するためのエリアを有する。すなわち、ＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００１５】
２次記憶装置２０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。２次記憶装置２０４には、ＯＳ２１１、アプリケーション（コンピュータプログラム）２１２、モジュール（コンピュータプログラム）２１３、データ２１４などが保存されている。
【００１６】
アプリケーション２１２は、例えば、後述する辞書作成を行ったり、該辞書を用いて対象物体の位置姿勢推定を行ったり、推定した位置姿勢を用いて各種の処理（例えば推定した位置姿勢を用いたロボット制御等）を行ったりするためのアプリケーションである。モジュール２１３は、アプリケーション２１２の実行に用いるモジュールであったり、Ｉ／Ｏデバイス２０９等のドライバソフトウェアであったりする。データ２１４は、対象物体の形状を表すデータや、対象物体を観察する複数の視点に係る情報など、以下の説明において既知の情報として説明する様々な情報である。
【００１７】
２次記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００１８】
ディスプレイ２０６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる。例えば、ユーザ操作を促し且つ該ユーザ操作を受け付けるための画面は、このディスプレイ２０６に表示される。
【００１９】
キーボード２０７及びマウス２０８は、本装置のユーザが本装置に各種の指示を入力するために操作する操作入力インターフェースの一例である。ユーザがキーボード２０７やマウス２０８を操作することで、各種の指示をＣＰＵ２０１に対して入力することができる。
【００２０】
Ｉ／Ｏデバイス２０９は、本装置に様々なデータを入力したり、本装置内のデータを外部機器に対して出力したりする装置である。Ｉ／Ｏデバイス２０９には、例えば、対象物体の撮像画像や距離画像（デプス画像）を撮像して本装置に入力するための装置が含まれる。Ｉ／Ｏデバイス２０９が、対象物体の撮像画像を撮像する装置である場合、このＩ／Ｏデバイス２０９は、例えば、１台の撮像装置である。また、Ｉ／Ｏデバイス２０９が、対象物体の距離画像を撮像する装置である場合、このＩ／Ｏデバイス２０９は、例えば、２台のステレオカメラや、１台のパターン光投影装置と１台のカメラとのセット、である。また、レーザースキャナ装置の場合もある。
【００２１】
また、Ｉ／Ｏデバイス２０９には、本装置内のデータを外部機器に対して送出する装置として、本装置で推定した対象物体の位置姿勢をロボット若しくは該ロボットを制御するコントローラに対して出力する装置が含まれる。
【００２２】
上記の各部は何れもバス２０５に接続されている。
【００２３】
次に、対象物体の位置姿勢を推定するために用いられる辞書を作成するために情報処理装置が行う処理について、同処理のフローチャートを示す図１を用いて説明する。なお、図１のフローチャートに従った処理は、ＣＰＵ２０１が、２次記憶装置２０４からＲＡＭ２０３にロードされたデータ２１４を用いて、アプリケーション２１２やモジュール２１３を実行することでなされるものである。
【００２４】
また、図１のフローチャートに従った処理の開始前の時点で、ＲＡＭ２０３には、２次記憶装置２０４からデータ２１４として、対象物体の形状データ１０１と、該対象物体を観察する複数の視点に係る情報である学習視点１０２と、がロードされている。以下では、対象物体を観察する視点の数をＮ（Ｎは以上の自然数）として説明する。
【００２５】
ここで、対象物体の形状データ１０１とは、該対象物体の形状を規定するデータであれば如何なるデータであっても良く、例えば、対象物体のＣＡＤデータや、対象物体をポリゴンで近似したときのそれぞれのポリゴンのデータ、が適用可能である。また、形状データ１０１には、必要に応じて、対象物体の表面反射特性等の特徴量を示す付加情報を含めても良い。
【００２６】
また、学習視点１０２とは、対象物体を様々な視点から見た画像を学習する際の該それぞれの視点を表すデータである。通常、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上に均等に配置された視点を用いるが、対象物体の形状に即して粗密がある視点を用意してもかまわない。この学習視点１０２には、視点ごとに、該視点に固有のインデックスと、該視点の姿勢と、が含まれている。
【００２７】
そしてステップＳ１０３では、ＣＰＵ２０１は、形状データ１０１に基づいて対象物体の仮想物体を生成して仮想空間中の規定位置に規定姿勢で配置し、該配置した仮想物体をそれぞれの視点から見た画像を生成する。
【００２８】
例えば、学習視点１０２が（視点１のインデックス＝１、視点１の姿勢）、…、（視点Ｎのインデックス＝Ｎ、視点Ｎの姿勢）を含むとする。このとき、ステップＳ１０３では、視点１（の姿勢）から見た仮想物体（対象物体）の画像、…視点Ｎ（の姿勢）から見た仮想物体（対象物体）の画像、を生成する。なお、ある視点から見た仮想物体の画像を生成するための技術は周知であるため、該技術に係る説明は省略する。
【００２９】
そしてＣＰＵ２０１は、視点のインデックスと該視点から見た対象物体（仮想物体）の画像とのセットを視点ごとに登録した視点別画像データ１０４を生成する。なお、「視点別画像データ１０４に含まれているそれぞれに視点に対応する画像」は、視点から見た仮想物体をレンダリングした２次元画像に限ったものではなく、それぞれの視点から撮像した対象物体の距離画像であっても良い。また、「視点別画像データ１０４に含まれているそれぞれに視点に対応する画像」は、ビットマップ等の画像形式のデータではなくても良い。例えば、ＨＯＧ（Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）特徴量のように、画像から特徴抽出を行った後の特徴量ベクトルの形式のデータであっても良い。
【００３０】
このように、「視点別画像データ１０４に含まれているそれぞれに視点に対応する画像」は、該視点から見た対象物体（仮想物体）の形状を規定することができるデータであれば、如何なるデータであっても構わない。
【００３１】
次に、ステップＳ１０５では、ＣＰＵ２０１は、Ｎ個の視点のうち、学習に使用しない視点（非有効視点）を特定し、該特定した非有効視点のインデックスを、ＲＡＭ２０３内に設けた削除視点リストに登録する処理を行う。ここで、ステップＳ１０５における処理の詳細について、図３，４を用いて説明する。
【００３２】
ここでは、対象物体として、図３（ａ）にあるようなドーナツ状の物体と円柱状の物体がつながった物体を例にとり説明する。図３（ａ）に対象物体の上から見た図と横から見た図を示す。図３（ａ）に示した通り、この対象物体には矢印で示した回転軸があり、この回転軸に対して１８０度回転すると全く同じ形になるという対称性が存在する。この対象物体と、互いに異なる４つの視点と、の位置関係を図３（ｂ）に示す。図３（ｂ）に示した視点３０１〜３０４は、学習視点１０２に含まれている何れかのインデックスに対応する視点である。ここで、視点３０１の位置を、対象物体３０５の回転軸３０６周りに１８０度回転させた位置が、視点３０２の位置である。同様に、視点３０３の位置を、対象物体３０５の回転軸３０６周りに１８０度回転させた位置が、視点３０４の位置である。上述した通り、対象物体３０５には回転軸３０６を中心とした１８０度回転対称性が存在する。然るに、視点３０１から見た対象物体３０５の見えと視点３０２から見た対象物体３０５の見えとは全く同じであるし、視点３０３から見た対象物体３０５の見えと視点３０４から見た対象物体３０５の見えとは全く同じである。特許文献２に記載の従来例では、このように全く同じ見えの画像が存在したとしても削除せずにテンプレートとして用いていた。これに対して、本実施形態では、例えば視点３０２、視点３０４を非有効視点として、学習には使用しないようにすることで、冗長性を排除したテンプレートが作成できる。図３の場合、視点３０２及び視点３０４が非有効視点として特定され、そのインデックスが削除視点リストに登録されることになる。
【００３３】
ステップＳ１０５における処理の詳細を、図４（ｂ）のフローチャートを用いて説明する。ステップＳ４０１〜Ｓ４０９のループ及びステップＳ４０３〜Ｓ４０８のループは、全ての視点のインデックス（視点１のインデックス＝１，視点２のインデックス＝２，…，視点Ｎのインデックス＝Ｎ）について行われる。第１回目のステップＳ４０１〜Ｓ４０９のループではｉ＝１であり、２回目のステップＳ４０１〜Ｓ４０９のループではｉ＝２であり、第Ｎ回目のステップＳ４０１〜Ｓ４０９のループではｉ＝Ｎである。同様に、第１回目のステップＳ４０３〜Ｓ４０８のループではｊ＝１であり、２回目のステップＳ４０３〜Ｓ４０８のループではｊ＝２であり、第Ｎ回目のステップＳ４０３〜Ｓ４０８のループではｊ＝Ｎである。
【００３４】
ステップＳ４０２では、ＣＰＵ２０１は、視点ｉのインデックス＝ｉがすでに削除視点リストに登録されているか否かを判断する。この判断の結果、視点ｉのインデックス＝ｉがすでに削除視点リストに登録されている場合には、次のステップＳ４０１〜Ｓ４０９のループを実行する。一方、視点ｉのインデックス＝ｉは削除視点リストに登録されていない場合には、処理はステップＳ４０４に進む。
【００３５】
ステップＳ４０４では、ＣＰＵ２０１は、ｉ≠ｊであるか否か、及び視点ｊのインデックス＝ｊがすでに削除視点リストに登録されているか否か、を判断する。この判断の結果、「ｉ≠ｊ且つ視点ｊのインデックス＝ｊは削除視点リストに登録されていない」という条件が満たされている場合には、ステップＳ４０５に進み、この条件が満たされていない場合には、次のステップＳ４０３〜Ｓ４０８のループを実行する。
【００３６】
ステップＳ４０５では、ＣＰＵ２０１は、視点ｉのインデックス＝ｉに対応する画像及び視点ｊのインデックス＝ｊに対応する画像を視点別画像データ１０４から取得し、該取得したそれぞれの画像間の類似度を計算する。
【００３７】
画像間の類似度を求めるアルゴリズムには、例えば、正規化相関、位相限定相関などの一般的なアルゴリズムを用いることができる。画像間の類似度を求めるに際して、画像の面内回転を無視する必要がある。これは各視点におけるカメラの光軸まわりの回転を無視することに相当する。
【００３８】
画像の面内回転を無視するための方法には、様々な方法が考えられる。例えば、対象物体の形状データ１０１の３次元座標軸のうち例えばＸ軸のＸ増加方向を例えば上向きとするよう予め決めておき、画像内の軸の向きを３次元座標軸に合わせるように回転させて視点別画像データ１０４を作成する方法がある。また、画像の面内回転を無視するための別の方法として、視点ｉと視点ｊのどちらか一方の画像を微小角度面内回転し、類似度の最も高い値をもって視点ｉと視点ｊとの間の画像の類似度とすることもできる。また、極座標系を用いた位相限定相関アルゴリズムを用いても画像の面内回転をキャンセルすることができる。また、ビットマップ等の画像形式のデータを用いるのではなく、面内回転に不変な特徴量ベクトルを使って対象物体の見えを記述すれば、単純なベクトルの類似度算出によって画像間の類似度を算出することができる。
【００３９】
そしてステップＳ４０６では、ＣＰＵ２０１は、ステップＳ４０５で求めた類似度が規定値（閾値）以上であるか否かを判断する。この判断の結果、類似度が閾値以上であれば、処理はステップＳ４０７に進み、類似度が閾値未満であれば、次のステップＳ４０３〜Ｓ４０８のループを実行する。
【００４０】
ステップＳ４０７では、ＣＰＵ２０１は、視点ｉからの画像と視点ｊからの画像とは同一視可能と判断し、視点ｊのインデックス＝ｊを、削除視点リストに登録する。例えば、図４（ａ）の場合、視点別画像データ１０４には、視点１，２，３，４，…のインデックスと、それぞれの視点に対応する画像と、が登録されている。然るにこのような場合、インデックス＝ｉの視点が視点１であれば、視点１の画像と、インデックス＝ｊの視点である視点２，３，４の画像と、の間の類似度を算出する。そして図４（ａ）の場合、視点１の画像を面内回転させると視点４の画像と全く同じになるため、画像間の類似度が高くなり、その結果、視点４のインデックスが削除視点リストに登録されることになる。
【００４１】
なお、一般的にＧｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上で近い視点間で画像の類似度は高くなるので、画像間の類似度算出にあたり、視点間の距離が近いほど小さい値をとるペナルティ値ｐ（０＜ｐ＜１）を採用し、類似度×ｐを改めて類似度として用いても良い。このようにすることで、対象物体に形状としての冗長性がないにもかかわずらず、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上の近隣視点がグループ化され、それぞれのグループの中で１つの視点を除いて視点が削除される事を防ぐことができる。
【００４２】
このようなステップＳ１０５における処理により、Ｎ個の視点のうち自視点に対応する画像と規定値以上の類似度を有する画像に対応する他視点を、非有効視点として特定することができる。
【００４３】
なお、図４のフローチャートで説明したアルゴリズムは、図１の視点別画像データ１０４の中の異なる２つの視点に対応する画像間の類似度を逐次求めることで非有効視点を特定していた。しかし、ステップＳ１０５では他のアルゴリズムによって非有効視点を特定するようにしても構わない。例えば、任意視点の画像間の類似度マトリックスを求めた後で、クラスタリングアルゴリズムを用いてクラスタを作成し、同一クラスタの中で１つの視点以外の全ての視点のインデックスを削除視点リスト１０６に格納するというアルゴリズムを採用しても良い。
【００４４】
図１に戻って次にステップＳ１０７でＣＰＵ２０１は、学習視点１０２に含まれているそれぞれの視点の姿勢のうち削除視点リストに登録されているインデックス以外のインデックスに対応する姿勢を、有効視点（非有効視点以外の視点）の姿勢として特定する。そしてＣＰＵ２０１は、それぞれの有効視点から見える対象物体の画像を、形状データ１０１を用いて、上記のステップＳ１０３における処理と同様の処理を行うことで生成する。なお、有効視点から見た対象物体の画像は、視点別画像データ１０４から取得しても構わない。
【００４５】
そして、ＣＰＵ２０１は、有効視点ごとに、該有効視点に対応する画像と、該有効視点と対象物体（仮想物体）との間の相対姿勢と、が登録された学習用画像データ群１０８を生成する。この相対姿勢は、対象物体（仮想物体）の配置姿勢と、有効視点の配置姿勢と、の間の相対姿勢である。
【００４６】
このように、ステップＳ１０７では、通常、視点から見た対象物体の見えを所定の角度で面内回転させることで姿勢空間で万遍なく姿勢空間から離散的にサンプリングされた姿勢での画像を生成させる。
【００４７】
ステップＳ１０９では、ＣＰＵ２０１は、学習用画像データ群１０８を用いて機械学習を行うことで、対象物体の位置姿勢推定を行うために必要な辞書１１０を作成する。機械学習には、一般的によく利用されるアルゴリズム、例えば、ニューラルネットやサポートベクターマシン等のパターン認識アルゴリズムを用いることができる。
【００４８】
このようにして作成された辞書１１０は、位置・姿勢の未知な対象物体の位置・姿勢を推定する場合に使用され、該辞書を用いて認識対象画像とパターンマッチングを行うことで位置・姿勢を推定する。この位置姿勢推定処理については周知の技術であるので、これに係る説明は省略する。
【００４９】
＜第１の実施形態の変形例＞
第１の実施形態では辞書を作成する方法について説明したが、必ずしも辞書を作成する必要はない。例えば、学習用画像データ群１０８を生成して出力した後、特許文献１に記載されているように、学習用画像データ群１０８をテンプレートとして用い、テンプレートマッチングを実施することで対象物体の位置・姿勢を推定してもかまわない。
【００５０】
［第２の実施形態］
第１の実施形態では、形状データ１０１と学習視点１０２とを用いて、それぞれの視点からの対象物体の画像を生成して視点別画像データ１０４に登録していた。本実施形態では、該画像の代わりに、視点ごとに、該視点から対象物体を測定したデータを登録する点が、第１の実施形態と異なる。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるとする。
【００５１】
対象物体の位置姿勢を推定するために用いられる辞書を作成するために情報処理装置が行う処理について、同処理のフローチャートを示す図５を用いて説明する。図５において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。また、図５のフローチャートに従った処理は、ＣＰＵ２０１が、２次記憶装置２０４からＲＡＭ２０３にロードされたデータ２１４を用いて、アプリケーション２１２やモジュール２１３を実行することでなされるものである。
【００５２】
ステップＳ５０３では、ＣＰＵ２０１は、学習視点１０２に含まれているそれぞれの視点の姿勢を用いて、該視点から対象物体５０１の形状を測定した測定データを取得する。測定データは、例えば、カメラ等で撮影した対象物体の画像に限定されるものではなく、また、撮影した画像から特徴抽出した結果である特徴量ベクトルであってもよい。また、測定データとしては、例えば、複数カメラやレーザースキャナ等を用いて取得した対象物体の３次元データや３次元データを画像化したものでもよい。
【００５３】
そしてＣＰＵ２０１は、視点ごとに、該視点から測定した測定データと、該視点のインデックスと、がセットになって登録されている、視点別物体測定データ５０４を生成する。
【００５４】
ステップＳ５０５では、ＣＰＵ２０１は、上記のステップＳ１０５における処理と同様の処理（図４（ｂ）の処理）を行うことで、削除視点リスト５０６を完成させる。このとき、類似度の計算は測定データ同士で行うことになる。
【００５５】
次に、ステップＳ５０７では、ＣＰＵ２０１は、学習視点１０２から削除視点リスト５０６の視点を除いた視点からの対象物体の見えを測定するのであるが、対象物体の測定作業はコストのかかる場合が多いので、図５では図１とは異なる方法を採用している。つまり、予め全視点からの測定を実施した結果である視点別物体測定データ５０４から削除視点リスト５０６に相当する視点のデータを削除して学習用物体測定データ群５０８を作成する。そしてステップＳ５０９では、ＣＰＵ２０１は、学習用物体測定データ群５０８を用いて機械学習の学習を行うこと、辞書５１０を作成する。
【００５６】
以上説明した本実施形態のメリットは、図１の形状データ１０１に相当する対象物体のＣＡＤやポリゴンモデルが存在しない場合であっても、冗長性を排除した辞書が作成できるという点にある。
【００５７】
［第３の実施形態］
本実施形態では、Ｎ個の視点のうち優先視点を設定し、視点間の画像の類似度だけでなく、この優先視点をも加味して、削除視点リストを作成する点が、第１の実施形態と異なる。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるとする。
【００５８】
対象物体の位置姿勢を推定するために用いられる辞書を作成するために情報処理装置が行う処理について、同処理のフローチャートを示す図６を用いて説明する。図６において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。また、図６のフローチャートに従った処理は、ＣＰＵ２０１が、２次記憶装置２０４からＲＡＭ２０３にロードされたデータ２１４を用いて、アプリケーション２１２やモジュール２１３を実行することでなされるものである。
【００５９】
ステップＳ６０５では、ＣＰＵ２０１は、Ｎ個の視点のうち優先視点６０６を設定する。この優先視点６０６について、図７を用いて説明する。
【００６０】
図７は、図３と同じ対象物体が同じように配置されている様子を示す図であり、対象物体と、各視点と、の間の位置関係を示している。７０１〜７０７は何れも視点を示している。
【００６１】
図７（ａ）が優先視点を用いないで非有効視点（黒丸で示している）を特定した１つの例を示しており、図７（ｂ）が優先視点を用いて非有効視点（黒丸で示している）を特定した例を示している。図７（ｂ）では、視点７０１〜７０７のうち視点７０７が優先視点として設定されている（ステップＳ６０５）。優先視点の設定方法には様々な方法があり、特定の方法に限るものではない。例えば、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上の点（視点）をディスプレイ２０６に表示し、ユーザがこれを見て確認しながらマウス２０８を操作して１つの視点を優先視点として設定するようにしても構わない。また、ディスプレイ２０６に対象物体の仮想物体を表示し、ユーザがキーボード２０７やマウス２０８を操作してこの仮想物体の姿勢を好適な姿勢に回転させることで、この姿勢を有する視点を優先視点として設定するようにしても構わない。また、対象物体を物理的に配置し、その姿勢を一旦推定した後で、物理空間上の点を指定することによって、配置された対象物体に対する優先視点の位置を設定する方法もある。
【００６２】
何れの方法で優先視点を設定するにせよ、ステップＳ６０５では、ＣＰＵ２０１は、このようにして設定された優先視点の姿勢を取得することになる。
【００６３】
学習視点１０２はＧｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上の離散的な点群からなるが、その順序はユーザが故意に指定しない限り任意である。極端な場合、図７（ａ）に示すように視点７０１、視点７０４、視点７０５、視点７０２、視点７０３、視点７０６の順序になっていることもある。この場合、第１の実施形態に従って削除視点リストを作成すると、黒く塗りつぶされている視点７０２、視点７０３、視点７０６のインデックスが削除視点リストに登録されることになる。
【００６４】
係る点、本実施形態では、画像間の類似度が規定値以上である２つの視点のうち、優先視点から遠い方の視点のインデックスを削除視点リストに登録する。図７（ｂ）の場合、学習視点１０２の中にある視点の順序がどのようになっていても、必ず視点７０２、視点７０４、視点７０６のインデックスが削除視点リストに登録されることになる。結果的に、視点７０７を北極点、円７０８を赤道とした場合、必ず、南半球に存在する視点のインデックスが削除視点リストに登録されることになる。
【００６５】
ステップＳ６０７では、ＣＰＵ２０１は、このような原理に従って、削除視点リスト６０８を作成する。ステップＳ６０７における処理の詳細について、同処理のフローチャートを示す図８を用いて説明する。
【００６６】
ステップＳ８０１〜Ｓ８０９のループ及びステップＳ８０２〜Ｓ８０８のループは、全ての視点のインデックス（視点１のインデックス＝１，視点２のインデックス＝２，…，視点Ｎのインデックス＝Ｎ）について行われる。第１回目のステップＳ８０１〜Ｓ８０９のループではｉ＝１であり、２回目のステップＳ８０１〜Ｓ８０９のループではｉ＝２であり、第Ｎ回目のステップＳ８０１〜Ｓ８０９のループではｉ＝Ｎである。同様に、第１回目のステップＳ８０２〜Ｓ８０８のループではｊ＝１であり、２回目のステップＳ８０２〜Ｓ８０８のループではｊ＝２であり、第Ｎ回目のステップＳ８０２〜Ｓ８０８のループではｊ＝Ｎである。
【００６７】
ステップＳ８０３では、ＣＰＵ２０１は、視点ｉのインデックス＝ｉがすでに削除視点リストに登録されているか否かを判断する。この判断の結果、視点ｉのインデックス＝ｉがすでに削除視点リストに登録されている場合には、次のステップＳ８０１〜Ｓ８０９のループを実行する。一方、視点ｉのインデックス＝ｉは削除視点リストに登録されていない場合には、処理はステップＳ８０４に進む。
【００６８】
ステップＳ８０４では、ＣＰＵ２０１は、「ｉ≠ｊ且つ視点ｊのインデックス＝ｊは削除視点リストに登録されていない」という条件が満たされているか否かを判断する。この判断の結果、この条件が満たされている場合には、ステップＳ８０５に進み、この条件が満たされていない場合には、次のステップＳ８０２〜Ｓ８０８のループを実行する。
【００６９】
ステップＳ８０５では、ＣＰＵ２０１は、視点ｉのインデックス＝ｉに対応する画像及び視点ｊのインデックス＝ｊに対応する画像を視点別画像データ１０４から取得し、該取得したそれぞれの画像間の類似度を計算する。類似度計算については第１の実施形態と同様である。
【００７０】
ステップＳ８０６では、ＣＰＵ２０１は、ステップＳ８０５で求めた類似度が規定値（閾値）以上であるか否かを判断する。この判断の結果、類似度が閾値以上であれば、処理はステップＳ８０７に進み、類似度が閾値未満であれば、次のステップＳ８０２〜Ｓ８０８のループを実行する。
【００７１】
ステップＳ８０７では、ＣＰＵ２０１は、視点ｉと視点ｊのうち優先視点から遠いほうを非有効視点として決定し、該決定した非有効視点のインデックスを削除視点リストに登録する。「視点ｉと視点ｊのうち優先視点から遠いほうを非有効視点として決定する」方法には様々な方法があり、特定の方法に限るものではない。例えば、視点ｉ、視点ｊ、優先視点のそれぞれの姿勢から、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上の位置が分かるので、Ｇｅｏｄｅｓｉｃ  Ｓｐｈｅｒｅ上の位置において優先視点から遠いほうを決定すればよい。もちろん、それぞれの視点の位置を管理しておき、優先視点までの直線距離が大きい方を非有効視点として決定するようにしても構わない。
【００７２】
なお、図８フローチャートで説明したアルゴリズムは、異なる２つの視点に対応する画像間の類似度を逐次求めることで非有効視点を特定していた。しかし、ステップＳ６０７では他のアルゴリズムによって非有効視点を特定するようにしても構わない。例えば、任意視点の画像間の類似度マトリックスを求めた後で、クラスタリングアルゴリズムを用いてクラスタを作成し、同一クラスタの中で優先視点に最も近い視点以外の全ての視点を削除視点リスト１０６に格納するというアルゴリズムを採用しても構わない。
【００７３】
最後に、円錐状の対象物体に対して本実施形態を適用した例を説明する。図９は円錐状の対象物体９０１を同図のように配置した際の視点の選択される様子を示した図である。図９（ａ）に示したように、対象物体９０１の回転軸（矢印）を中心とする円９０３の上にある視点から見た対象物体９０１の見えは同じとなる。よってこれらの視点は全て同一視され、このうち１つ以外の視点のインデックスが削除視点リストに登録されることとなる。視点９０２が優先視点として設定されたとすると、視点９０４が優先視点から最も近い視点として選ばれ、それ以外の全ての視点のインデックスが削除視点リストに登録される。そして、最終的に削除視点リストにインデックスが登録されずに残る視点群は、図９（ｂ）に示したように、優先視点を通る半円弧の近傍に存在する視点となる。
【００７４】
以上、第１の実施形態及びその変形例、第２，３の実施形態、について説明したが、それぞれに記した構成の一部若しくは全部は適宜組み合わせて使用しても構わない。また、以上の各実施形態や変形例で説明したデータ構成やデータ管理方法等は何れも、説明上の一例であり、以上説明した各処理と同等以上の処理を実現できるのであれば、如何なる変形／変更を行っても構わない。
【００７５】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015072581.tif 000003
【図２】
2015072581.tif 000004
【図３】
2015072581.tif 000005
【図５】
2015072581.tif 000006
【図６】
2015072581.tif 000007
【図７】
2015072581.tif 000008
【図８】
2015072581.tif 000009
【図９】
2015072581.tif 000010
【図４】
2015072581.tif 000011