(57)【要約】      （修正有）【課題】誤認識しやすい形状で、フィッティングにより真値算出が期待できる初期値の作成が困難な物体に対しても、直観的な入力により適切な初期値候補を作成して誤認識を抑制する位置姿勢の計測技術を提供する。【解決手段】対象物体の三次元形状モデルを取得するモデル取得手段と、三次元形状モデルを表示手段に表示させる表示制御手段と、表示手段に表示される三次元形状モデルに基づいて、第１の姿勢と、該第１の姿勢と異なる第２の姿勢とを設定する設定手段と、設定した第１の姿勢を第２の姿勢に変換する変換パラメータを導出する導出手段と、導出される変換パラメータを記憶する記憶手段とを備える。【選択図】図４
2015194478.tif 000002
【特許請求の範囲】
【請求項１】
対象物体の三次元形状モデルを取得するモデル取得手段と、
前記三次元形状モデルを表示手段に表示させる表示制御手段と、
前記表示手段に表示される前記三次元形状モデルに基づいて、前記第１の姿勢と、該第１の姿勢と異なる第２の姿勢とを設定する設定手段と、
前記設定した第１の姿勢を第２の姿勢に変換する変換パラメータを導出する導出手段と、
前記導出される変換パラメータを記憶する記憶手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段は、前記表示手段に表示される三次元形状モデルに対するユーザ操作に基づき、前記第１の姿勢と前記第２の姿勢とを設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、
複数の異なる位置姿勢に応じた複数の前記三次元形状モデルを前記表示手段に表示し、前記表示された三次元形状モデル同士を対応付けることで、前記第１の姿勢と前記第２の姿勢とを設定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記対象物体を含む画像を取得する取得手段と、
前記画像に前記対象物体の三次元形状モデルを対応づけることにより前記対象物体の位置姿勢を複数導出する導出手段とを備え、
前記表示手段は、前記三次元形状モデルを前記導出される複数の位置姿勢それぞれで表示し、
前記設定手段は、
前記導出手段によって導出される対象物体の複数の位置姿勢が同一の対象物体であるかに基づいて、前記第１の姿勢と前記第２の姿勢とを設定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２の姿勢は、前記第１の姿勢を所定の軸を中心に１８０度回転させた位置姿勢であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
更に、前記表示手段に表示される前記三次元形状モデルの特定領域をユーザ操作に基づいて決定する決定手段を備えることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
対象物体を含む画像を取得する取得手段と、
前記対象物体の三次元形状モデルを保持するモデル保持手段と、
前記対象物体の第１の姿勢と、第１の姿勢とは異なる第２の姿勢との間の変換パラメータを保持するパラメータ保持手段と、
前記画像中の対象物体の概略位置姿勢を取得する取得手段と、
前記概略位置姿勢と前記変換パラメータと前記三次元形状モデルとに基づいて、前記画像中の前記対象物体の位置姿勢を導出する導出手段とを備えることを特徴とする情報処理装置。
【請求項８】
前記概略位置姿勢で前記三次元形状モデルを前記画像中の対象物体に対応付けてフィッティングを行う第１のフィッティング手段と、
前記フィッティング後の三次元形状モデルの位置姿勢を前記変換パラメータで変換する変換手段と、
前記変換手段により変換された位置姿勢で前記三次元形状モデルを前記対象物体に対応づける第２のフィッティング手段とを更に備え、
前記導出手段は、
前記第１のフィッティング手段の結果と前記第２のフィッティング手段の結果とに基づいて、前記対象物体の位置姿勢を導出することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
更に、前記第１のフィッティング手段によりフィッティングされた結果のずれ量を取得するずれ量取得手段を備え、
前記変換手段は、前記ずれ量が閾値よりも大きい場合に、前記フィッティング後の三次元形状モデルの位置姿勢を前記変換パラメータで変換することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記変換パラメータは、請求項１乃至６のいずれか１項に記載の情報処理装置によって導出された変換パラメータであることを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記第１のフィッティング手段および、前記第２のフィッティング手段は、前記三次元形状モデルの一部分である、予め指定された特定部位を、前記画像中の対象物体の一部分である、特定部位に対応付けてフィッティングを行うことを特徴とする請求項７乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記対象物体を保持する対象物体保持手段を更に備え、
前記対象物体保持手段は、前記導出された位置姿勢に基づいて、前記対象物体を保持することを特徴とする請求項７乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
対象物体の三次元形状モデルを表示手段に表示させる表示制御手段と、
前記表示手段に表示される前記三次元形状モデルの特定領域をユーザ操作に基づいて決定する決定手段と、
前記決定した特定領域を記憶する記憶手段とを備えることを特徴とする情報処理装置。
【請求項１４】
対象物体の三次元形状モデルを取得するモデル取得工程と、
前記三次元形状モデルを表示手段に表示させる表示制御工程と、
前記表示手段に表示される前記三次元形状モデルに基づいて、前記第１の姿勢と、該第１の姿勢と異なる第２の姿勢とを設定する設定工程と、
前記設定した第１の姿勢を第２の姿勢に変換する変換パラメータを導出する導出工程とを備えることを特徴とする情報処理方法。
【請求項１５】
対象物体を含む画像を取得する取得工程と、
前記画像中の対象物体の概略位置姿勢を取得する取得手段と、
前記概略位置姿勢と、前記対象物体の第１の姿勢と、第１の姿勢とは異なる第２の姿勢との間の変換パラメータと、前記対象物体の三次元形状モデルとに基づいて、前記画像中の前記対象物体の位置姿勢を導出する導出手段とを備えることを特徴とする情報処理方法。
【請求項１６】
対象物体の三次元形状モデルを表示手段に表示させる表示制御工程と、
前記表示手段に表示される前記三次元形状モデルの特定領域をユーザ操作に基づいて決定する決定工程と、
前記決定した特定領域を記憶する記憶手段とを備えることを特徴とする情報処理方法。
【請求項１７】
コンピュータで実行されることにより、該コンピュータ装置を請求項１乃至１３のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元形状が既知である物体の位置姿勢を計測する技術に関する。
【背景技術】
【０００２】
工場などの生産ラインにおいて、山積みされた物体の中から一個体をビジョンシステムを用いて特定し、三次元位置姿勢を計測することで、ロボットに取り付けたハンドにより把持を行う技術が近年開発されている。
【０００３】
物体の三次元位置姿勢を計測する方法として、対象物体の撮影画像から一個体のおおよその位置姿勢を検出し、その位置姿勢を初期値として、画像データに対して物体の三次元形状モデルをあてはめる（モデルフィッティング）方法がある。この方法では、前段の検出処理において適切な位置姿勢を求められないと、後段のモデルフィッティングを行っても正しい位置姿勢を算出できない。たとえば、表と裏で互いに形状が類似する物体の場合には、表側が観測されているにも関わらず、検出処理において裏側の位置姿勢を誤検出したとする。このとき、その位置姿勢を初期値としてモデルフィッティングを行っても誤った解に収束してしまい、正しい位置姿勢を算出できない。
【０００４】
これに対して特許文献１では、互いに誤りやすい関係にある、対称的に配置した２つの姿勢からフィッティングを行い、両者の結果を比較することで、誤認識の抑制を行う方法が記載されている。具体的には、三次元形状モデルと画像とのフィッティングを行い、その際に姿勢収束に大きく寄与する（姿勢収束がしやすい）軸を求める。そして、フィッティングして算出した位置姿勢に対して、求めた軸の向きが反転するように対象物体を回転させた位置姿勢を新たな初期値として作成し、そこから別途フィッティングを行う。そしてこれらのフィッティング結果を比較し、最良のものを選択することで誤認識の抑制を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１６３４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法では、誤りやすい２つの位置姿勢が、姿勢が収束しやすい軸回りに互いに１８０度回転させた関係であるような物体（例えば図２に示すような表と裏で形状が類似する物体）に対しては、正しい位置姿勢を求められない。
【０００７】
この物体に対して特許文献１の方法を適用すると、長手方向の軸の向きを入れ替えたような姿勢を候補として作成することになる。しかし、そもそも、表側の対象物体に対して前段の検出処理において裏側の位置姿勢が求められた場合には、特許文献１の方法で新たに初期値を作成してもフィッティングにより正しい位置姿勢を算出できない。
【０００８】
また、互いに誤りやすい関係にある姿勢が存在するにもかかわらず、フィッティング過程においていずれの姿勢も大差なく収束するような物体では、軸の算出が困難となるため、特許文献１の方法を適用することは困難である。
【０００９】
本発明は、以上の課題を鑑みてなされたものであり、誤認識しやすい形状の対象物体の位置姿勢をより精度よく取得することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、例えば、対象物体の三次元形状モデルを取得するモデル取得手段と、前記三次元形状モデルを表示する表示手段と、前記表示手段に表示される前記三次元形状モデルに基づいて、前記第１の姿勢と、該第１の姿勢と異なる第２の姿勢とを設定する設定手段と、前記設定した第１の姿勢を第２の姿勢に変換する変換パラメータを導出する導出手段と、前記導出される変換パラメータを記憶する記憶手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、誤認識しやすい形状の対象物体の位置姿勢をより精度よく取得することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態における情報処理装置１の構成を示す図である。
【図２】第１の実施形態における対象物体の三次元形状モデルを示す図である。
【図３】第１の実施形態における変換パラメータ算出およびそれを利用した対象物体の位置姿勢算出の処理手順を示すフローチャートである。
【図４】第１の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図５】第１の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図６】第１の実施形態における対象物体の位置姿勢算出処理を説明する図である。
【図７】変形例における対象物体の三次元形状モデルおよび変換パラメータの算出を説明する図である。
【図８】第２の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図９】第２の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図１０】本願発明にかかる情報処理装置のハードウェア構成を示す図である。
【図１１】第３の実施形態の構成を示す図である。
【図１２】第４の実施形態で扱う対象物体を示す図である。
【図１３】第４の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図１４】第４の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図１５】第４の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図１６】第４の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【図１７】第４の実施形態における変換パラメータ算出を行うＧＵＩの説明図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施形態の１つである。
【００１４】
本発明にかかる各実施形態を説明するのに先立ち、各実施形態に示す情報処理装置が実装されるハードウェア構成について、図１０を用いて説明する。
【００１５】
図１０は、本実施形態における情報装置１００のハードウェア構成図である。同図において、ＣＰＵ１０１０は、バス１０００を介して接続する各デバイスを統括的に制御する。ＣＰＵ１０１０は、読み出し専用メモリ（ＲＯＭ）１０２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ１０２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）１０３０に一時記憶され、ＣＰＵ１０１０によって適宜実行される。また、入力Ｉ／Ｆ１０４０は、外部の装置（撮像装置や操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ１０５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
【００１６】
（第１の実施形態）
第１の実施形態では、山積みされた対象物体（部品）の位置姿勢を正確に求め、求められた位置姿勢に基づいて、ロボットハンドにより対象物体を把持する際に本発明を適用した場合について説明する。
【００１７】
概略位置姿勢の認識を誤りやすい対象物体に対して、互いに誤りやすい関係にある２つの位置姿勢をＧＵＩを用いて設定する。そして、その位置姿勢間の変換パラメータを登録しておく。そして、その登録された変換パラメータを用いて、誤認識の発生を抑制し、正しく位置姿勢を算出する方法について述べる。本実施形態で対象とする対象物体は、所定の軸に対して回転させた場合に誤認識しやすい物体である（例えば、表裏で形状がよく似ている物体）。
【００１８】
具体的には表示装置１５に表示されるＧＵＩを用いて誤認識しやすい２つの位置姿勢にモデルを配置し、その変換パラメータを事前に登録、保持しておく。そして、位置姿勢算出時には、概略位置姿勢から一度フィッティングを行った後、登録された変換パラメータに基づき、フィッティング結果と誤りやすい関係にある位置姿勢を作成する。そして、作成された位置姿勢を初期値として新たにフィッティングを行う。そして両フィッティング結果のうち、評価値の高い位置姿勢を採用する。
【００１９】
図１は、本実施形態にかかる情報処理装置１００の構成を示している。同図に示したように、本実施形態にかかる情報処理装置１００は、三次元形状モデル保持部１０、変換パラメータ算出部１１、概略位置姿勢認識部１２、位置姿勢算出部１３によって構成され、撮像装置１４、表示装置１５、操作装置１６に接続されている。本実施形態では、このように、情報処理装置１の外部に撮像装置１４、表示装置１５、操作装置１６を接続しているが、撮像装置１４、表示装置１５、操作装置１６を含めて一体として情報処理装置として構成しても良い。
【００２０】
以下、情報処理装置１００を構成する各部について説明する。
【００２１】
三次元形状モデル保持部１０は、山積みピッキングの対象とする物体の三次元形状モデルを保持する。三次元形状モデルには、たとえば、対象物体の三次元形状を複数ポリゴンの組み合わせにより近似表現したポリゴンモデルを用いることができる。各ポリゴンは、対象物体表面上の点の位置（三次元座標）と、面を近似するポリゴンを構成するための各点の連結情報によって構成される。なお、ポリゴンは三角形で構成されるのが一般的であるが、四角形や五角形であってもよい。その他、表面点の三次元座標とその連結情報により物体形状を近似表現できるポリゴンモデルであればいかなるものであってもよい。あるいは、三次元形状モデルとして、ＣＡＤデータのように、Ｂ−Ｒｅｐ（Ｂｏｕｎｄａｒｙ−Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）表現と呼ばれる、区分されたパラメータ曲面の集合で形状を表現したモデルであってもよい。その他、物体の三次元形状を表現可能なモデルであればいかなるものであってもかまわない。三次元形状モデルは、概略位置姿勢認識部１２において誤認識を行いやすい複数の姿勢関係を登録するために、表示装置１５のＧＵＩを介して２つのモデルを操作するのに用いられる。さらに、位置姿勢算出部１３により対象物体の位置姿勢計測を行う際にも用いられる。なお、モデルにはあらかじめ対象物体表面上の点の座標などを表す基準となる座標系（モデル座標系）が設定されているものとする。図２に本実施形態で取り扱う対象物体とそのモデル座標系を示す。三次元形状モデル保持部１０は、メモリやハードディスクなどで構成されるが、記憶媒体等から三次元形状モデルを取得してもかまわない（三次元形状モデル取得）。
【００２２】
変換パラメータ算出部１１は、対象物体の三次元形状モデルを仮想的なの三次元空間上に表示し、ユーザによる操作を介して、互いに誤りやすい異なる２つの位置姿勢の関係（変換パラメータ）を登録する。本実施形態では、変換パラメータ算出部１１は、表示装置１５に三次元モデル保持部１０が保持する三次元モデルを送出し、表示装置１５のＧＵＩに対象物体の三次元形状モデル２つをレンダリングする。そして、表示装置１５のＧＵＩに対して、操作装置１６によりユーザによる操作を取得して、互いに誤りやすいような位置姿勢関係に配置する。そしてこのときの２つのモデルの仮想的な三次元空間における位置姿勢を取得し、２つの位置姿勢間の変換パラメータを算出して記録することで登録（パラメータ保持）を行う。そして、登録した変換パラメータは、変換パラメータ算出部１１に入力される。なお、本実施形態で利用するＧＵＩと登録手順については後述する。変換パラメータ算出部１１は登録した変換パラメータを、位置姿勢算出部１３に入力する。
【００２３】
概略位置姿勢認識部１２は、三次元形状モデル保持部１０から対象物体の三次元モデルを取得する。また、撮像装置１４から画像（濃淡画像、距離画像）を取得する。本実施形態では、画像は山積みされた対象物体を含んでいるとする。そして、概略位置姿勢認識部１２は、三次元モデル画像に含まれる山積みされた物体の中から一個体を検出し、撮像装置１４に対する物体の位置及び姿勢の概略値を算出することにより、１個体の概略位置姿勢を認識する。撮像装置１４には、位置及び姿勢計測の基準となる三次元の座標系（基準座標系）が規定されているものとする。
【００２４】
本実施形態では、撮像部１４に使用するセンサの中心を原点とし、取得される画像の水平方向をｘ軸、垂直方向をｙ軸、センサの光軸をｚ軸とした座標系を基準座標系とする。撮像部１４に対する物体の位置及び姿勢とは、基準座標系における物体の位置及び姿勢を表す。本実施形態では、センサで取得した距離画像および濃淡画像に対して、複数の視点から観測した画像をテンプレートとしてパターンマッチングを行うことによりその一個体のおおまかな位置姿勢を算出する。ただし、概略位置姿勢の認識方法は他の方法であってもかまわない。その他、山積みの中から一個体を発見し、その三次元位置姿勢を算出できる方法であれば、ここで述べた以外のいかなる方法であってもかまわない。本実施形態では、対象物体が所定の軸に対して回転させた場合に、誤認識しやすい物体を対象にしているため、ここで取得した概略位置姿勢は誤認識されている可能性が高い。概略位置姿勢認識１２で算出した位置姿勢は、概略位置姿勢として位置姿勢算出部１３に入力される。
【００２５】
位置姿勢算出部１３は、三次元形状モデル保持部１０から、三次元形状モデルを取得する。また、位置姿勢算出部１３は、概略位置姿勢認識部１２から概略位置姿勢を取得する。また、位置姿勢算出部１３は、変換パラメータ算出部１１が保持する変換パラメータを取得する。また、位置姿勢算出部１３は、撮像部１４から計測情報（濃淡画像、距離画像）を取得する。そしてそれらの情報から、対象物体の位置姿勢を算出する。
【００２６】
具体的には、まず、取得した概略位置姿勢に基づき、対象物体の三次元形状モデルと、撮像装置１４により取得した画像中の対象物体とがもっともフィットするような三次元モデルの位置姿勢を算出（導出）する。その後、取得した変換パラメータに基づき、算出された位置姿勢と誤りやすい関係にある位置姿勢を求め、その位置姿勢を初期値として別途フィッティングを行う。その後、フィッティング結果の評価値を比較し、評価値のよい方の位置姿勢を最終結果として出力する。フィッティングは、たとえば、対象物体の三次元形状モデルとセンサにより取得した計測情報（濃淡画像、距離画像）とがフィットするように位置姿勢を補正することで行う。ただし、フィッティング方法は他の方法であってもかまわない。たとえば、距離画像のみあるいは濃淡画像のみを用いてフィッティングを行ってもよい。
【００２７】
撮像装置１４は、対象物体の位置姿勢を認識するために必要な計測情報を取得するセンサである。たとえば、二次元画像を撮影するカメラでもよいし、各画素が奥行きの情報を持つ距離画像を撮影する距離センサでもよいし、これらを併用してもよい。距離センサとしては、対象に照射したレーザ光やスリット光の反射光をカメラで撮影し、三角測量により距離を計測する方式のほか、光の飛行時間を利用するＴｉｍｅ−ｏｆ−ｆｌｉｇｈｔ方式がある。また、ステレオカメラで撮影する画像から三角測量により距離を計算する方式も利用できる。その他、物体の三次元位置姿勢を認識するのに必要な情報を取得できればいかなるセンサであっても本発明の本質を損なうものではない。
【００２８】
撮像装置１４は、対象物体に対して上方または横方などに固定されていても良いし、またロボットハンドなどに備えつけられていてもよい。本実施形態では、距離画像および濃淡画像をともに取得可能なセンサを利用するものとする。上述したように、撮像装置１４が取得した計測情報は概略位置姿勢認識部１２、位置姿勢算出部１３に入力される。なお、撮像装置１４に設定された座標系を以後、センサ座標系と呼ぶことにする。
【００２９】
表示装置１５は、三次元形状モデル保持部１０から変換パラメータ算出部１１を介して三次元形状モデルを取得し、表示する。また、撮像装置から取得した画像や、位置姿勢算出部１３によって算出される位置姿勢を表示し、ユーザに確認させるようにしてもよい。表示装置１４は例えば液晶ディスプレイやＣＲＴディスプレイ等が用いられる。
【００３０】
操作装置１６は、キーボードやとマウスであり、ユーザからの指示を入力するのに用いられ、特にマウスはＧＵＩを操作するのに用いられる。
【００３１】
図３は、本実施形態における対象物体の位置姿勢を算出する処理手順を示すフローチャートである。
【００３２】
（ステップＳ３０１）
ステップＳ３０１において、変換パラメータ算出部１１および位置姿勢算出部１３は、三次元形状モデル保持部１０から、対象物体の３次元形状モデルを取得する。
【００３３】
（ステップＳ３０２）
ステップＳ３０２において、変換パラメータ算出部１１は、互いに誤りやすい、異なる２つの位置姿勢（第１の姿勢、第２の姿勢）の関係（変換パラメータ）を登録する。本実施形態ではＧＵＩを用いて本ステップの処理を行う。
【００３４】
図４は変換パラメータの登録に利用するＧＵＩの例である。以下、ＧＵＩを構成する各機能と変換パラメータの登録方法について説明する。なお、ユーザは、変換パラメータ算出部を介して、操作装置１６（マウス、キーボードなど）を用いてＧＵＩを操作する。
【００３５】
三次元形状モデル保持部１０は、変換パラメータ算出部１１を介して、表示装置１５に三次元形状モデルを送出し、表示装置１５は、取得した３次元形状モデルを２つ、仮想空間内に配置した状態を表示する。具体的には、仮想空間内に撮像装置１４を見立てた仮想カメラを配置し、仮想カメラから対象物体の全体が観測可能な位置姿勢を算出し、その位置姿勢に３次元形状モデルを２つ配置する。
【００３６】
ここで、表示された２つのモデルのうち一方を基準モデル、もう一方のモデルを操作モデルとする。初期の表示において両者が完全に重なっているとモデルが２つ表示されていることが分かりづらいため、いずれか一方のモデルの位置または姿勢はずらして表示してもよい。そして仮想カメラによる観測画像をレンダリングして表示装置１５の表示画面に表示する。
【００３７】
なお、両者の重なり具合を視認しやすくするため、２つのモデルは異なる色で描画し、少なくとも一方は半透明で表示してもよい。ここで、初期の表示を行ったときの、仮想カメラ、基準モデル、操作モデルのそれぞれの位置姿勢は初期配置として記録しておく。ユーザはボタン１を押すことで、表示画面の表示をいつでも初期配置に戻すことができる。
【００３８】
表示装置１５の表示画面に表示された操作モデルを情報処理装置１００のユーザに操作させ、基準モデルに対して見た目が類似するような異なる位置姿勢に重ね合わせた状態を作成する。操作モード変更用スプリットボタンが押されると、「視点の変更」と「モデルの操作」の２つのモードを候補として表示し、ユーザはモードを選択していずれかに切り替えることができる。「モデルの操作」モードでは、ユーザはマウスにより、３次元空間内で操作モデルの位置姿勢を操作できる。たとえばマウス操作の左ボタンのドラッグでカメラ光軸に垂直な面内での並進移動、右ボタンのドラッグで回転、マウスホイールでモデルの拡大縮小（カメラ光軸方向の並進移動）を行う。これにより、基準モデルに対して操作モデルの見た目が類似するような異なる姿勢に重ね合わせる。
【００３９】
一方、「視点の変更」モードでは、ユーザはマウスにより、仮想カメラの位置姿勢を変更できる。これに関してもモデルの操作と同様に、マウス操作の左ボタンのドラッグでカメラ光軸に垂直な面内での並進移動、右ボタンのドラッグで回転、マウスホイールでカメラ光軸方向の並進移動を行う。これにより、ユーザは操作モデルと基準モデルとの重なり具合を３次元的に確認することができる。
【００４０】
なお、モデルの操作および視点の変更はここで述べた方法以外のものであっても構わない。たとえば、スプリットボタンを用いず、ラジオボタンでの選択によりモード変更を行ってもよい。あるいは、キーバインドとマウス操作とを組み合わせ、Ｃｔｒｌキーを押した状態でのマウス操作を「視点の変更」、押されていない状態でのマウス操作を「モデルの操作」としてもよい。あるいはマウスを用いず、タッチパネルを用いてモデルを操作してもよい。
【００４１】
具体的には、タッチパネル上の三次元形状モデル領域をドラッグすることでカメラ光軸に垂直な面内での並進移動、背景領域をドラッグすることで回転、ピンチイン／アウトによりモデルの縮小／拡大を行う。その他、基準モデルと操作モデルとを、見た目が類似するような異なる位置姿勢関係に配置可能であれば、いかなる方法であっても構わない。
【００４２】
ボタン２は、ユーザのモデルの操作を補助するためのサポート機能を呼び出す。ボタン２が押されると、位置姿勢算出部１３により、ボタンが押された状態の位置姿勢から、操作モデルを基準モデルに対してフィッティングさせた位置姿勢を算出して、操作モデルの配置を更新する。具体的には、基準モデルおよび操作モデルに対して、それぞれ三次元形状モデル表面上から均一に点群をサンプリングし、ＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）を用いることで、両者（三次元形状モデル同士）のフィッティングを行う。ただし、フィッティングの方法はこれに限るものではない。
【００４３】
たとえば、メインウィンドウと同様に、仮想カメラの観測画像平面を用意し、画像平面上に基準モデルのみレンダリングした画像を生成する。さらに、この結果画像を格納するフレームバッファ中から、カラーバッファおよびデプスバッファを取得する。取得した２つのバッファを輝度画像および距離画像として、位置姿勢算出部１３で用いるのと同様の方法により、操作モデルと両画像とのフィッティングを実施してもよい。その他、操作モデルを基準モデルに対してフィッティング可能なものであればいかなる方法を用いてもよい。
【００４４】
姿勢候補選択用スプリットボタンは、ユーザのモデルの操作を補助するためのサポート機能を呼び出す。３次元空間上でユーザ自身の操作により２つのモデルを重ね合わせた状態に配置するのは難しく、手間を要する。そこで、あらかじめ、基準モデルに対して見た目が類似しやすくなりそうな位置姿勢を候補としていくつか算出し、スプリットボタンから候補を選択することで、選択された位置姿勢に操作モデルを配置する。
【００４５】
ユーザは表示された操作モデルと基準モデルとの配置を足がかりとして、前述したモデルの操作を行う。本実施形態では、３次元形状モデル表面上から均一にサンプリングした点群の分布の主成分の第１軸、第２軸、第３軸を求め、各軸回りに基準モデルを１８０度回転させた姿勢を、それぞれ操作モデルの位置姿勢候補として選択可能とする。これにより、形状がおよそ平面で、その主平面の一方を表、他方を裏として表裏を誤認識しやすいような物体に対して、表と裏とを変換したような姿勢を候補として作成することができる。
【００４６】
ただし、位置姿勢候補の作成方法は、これに限るものではない。たとえば、基準モデルをモデル座標系Ｘ／Ｙ／Ｚの各軸に対して１８０度回転させた位置姿勢を位置姿勢候補としてもよい。あるいは、基準モデルをＸ／Ｙ／Ｚ軸回りに３０度刻みで回転させたような位置姿勢を多数生成し、各位置姿勢に操作モデルを配置して、前述のフィッティング機能を利用し、基準モデルとのフィッティングを行った結果から候補を作成してもよい。この場合、基準モデルに操作モデルを一致させた結果を真値として、基準モデルに操作モデルをフィッティングした結果の操作モデルの位置姿勢が真値とは異なるにもかかわらず、真値とほぼ同等の評価値をもつようなものを候補として採用する。
【００４７】
真値と異なる位置姿勢の判断基準としては、たとえば、フィッティング結果の姿勢から真値の姿勢への姿勢変換を回転軸回転角表現で表した時の角度が１０度以上であった場合、異なる位置姿勢であると判断する。
【００４８】
また、同等の評価値であるか否かの判断基準としては、たとえばフィッティングを行った結果における、ＩＣＰの残差、すなわち点間距離の平均値を利用できる。この場合、点間距離の平均値が所定の値以下で合った場合、その結果の位置姿勢を候補とする。
【００４９】
あるいは、基準モデルと、フィッティング後の操作モデルとが３次元的に重なる領域の割合を算出し、その値が９０％以上であった場合に、フィッティング後の位置姿勢を候補として採用する、といった方法でもよい。その他、互いに誤りやすい関係にある２つの位置姿勢を候補として作成可能であればいかなる方法でも構わない。
【００５０】
ボタン３は、前述した各機能を利用して基準モデルと見た目が類似するような異なる位置姿勢に操作モデルを重ね合わせた後、両者の変換パラメータを算出して、リストに追加する機能を呼び出す。この機能を図５を用いて説明する。
【００５１】
図５の表示画面に、前述した機能を利用することで、基準モデルに対して見た目が類似する、異なる位置姿勢に操作モデルを重ね合わせた状態の一例を示す。この状態でボタン３を押すと、その時点における、仮想カメラに対する基準モデルの位置姿勢と、仮想カメラに対する操作モデルの位置姿勢とに基づいて、２つの三次元形状モデル間の変換パラメータを算出する。
【００５２】
ここで、基準モデルおよび操作モデルのそれぞれの三次元形状モデルに対して設定されているモデル座標系をそれぞれ基準モデル座標系、操作モデル座標系と呼ぶ。さらに、仮想カメラに設定された座標系を仮想カメラ座標系と呼ぶ。なお、仮想カメラ座標系は、撮像部１４の基準座標系と同様に設定するものとする。このとき、基準モデル座標系から仮想カメラ座標系への姿勢変換を行う３×３の回転行列、位置の変換を行う３列の並進ベクトルをそれぞれ、ＲＶＢ、ｔＶＢとする。このとき、基準モデル座標系ＸＢ＝［ＸＢ，ＹＢ，ＺＢ］Ｔから仮想カメラ座標系ＸＶ＝［ＸＶ，ＹＶ，ＺＶ］Ｔへの変換は、４×４行列ＴＶＢを用いて以下のように表すことができる。
ＸＶ’＝ＴＶＢＸＢ’
ここで、
ＸＶ’＝［ＸＶ，ＹＶ，ＺＶ，１］Ｔ    ＸＢ’＝［ＸＢ，ＹＢ，ＺＢ，１］Ｔ
【００５３】
【数１】
2015194478.tif 000003
である。これ以後、ＴＶＢを基準モデル位置姿勢（第１の位置姿勢）と呼ぶ。
【００５４】
一方、操作モデル座標系から仮想カメラ座標系への姿勢変換を行う３×３の回転行列、位置の変換を行う３列の並進ベクトルをそれぞれ、ＲＶＯ、ｔＶＯとする。このとき、操作モデル座標系ＸＯ＝［ＸＯ，ＹＯ，ＺＯ］Ｔから仮想カメラ座標系ＸＶ＝［ＸＶ，ＹＶ，ＺＶ］Ｔへの変換は、４×４行列ＴＶＯを用いて以下のように表すことができる。
ＸＶ’＝ＴＶＯＸＯ’
ここで、
ＸＯ’＝［ＸＯ，ＹＯ，ＺＯ，１］Ｔ    ＸＶ’＝［ＸＶ，ＹＶ，ＺＶ，１］Ｔ
【００５５】
【数２】
2015194478.tif 000004
である。これ以後、ＴＶＯを操作モデル位置姿勢（第２の位置姿勢）と呼ぶことにする。
【００５６】
基準モデル位置姿勢ＴＶＢと、操作モデル位置姿勢ＴＶＯより、２つの三次元形状モデル間の相対位置姿勢を求める。求める相対位置姿勢をＴｒとすると、Ｔｒは以下により求まる。
Ｔｒ＝（ＴＶＢ）−１ＴＶＯ
算出したＴｒは位置を表す３パラメータ、姿勢を表す３パラメータの合計６パラメータで表現可能である。そこで、Ｔｒから位置姿勢を表す６パラメータの値を取得し、これらを一組にしたものを変換パラメータとしてリストに追加する。なお、６パラメータの値の代わりに、４×４行列を構成する１６個のパラメータの値を一組にしたものを変換パラメータとしても問題ない。あるいは、基準モデルの位置姿勢を表す６パラメータ、操作モデルの位置姿勢を表す６パラメータを一組にして変換パラメータとしてももちろんよい。その他、基準モデルと操作モデルとの相対位置姿勢Ｔｒを復元可能、すなわち、２つのモデル間の位置姿勢を互いに変換可能であればいかなるパラメータを変換パラメータとしてもかまわない。また、姿勢を表す３パラメータのみを変換パラメータとしてもかまわない。
【００５７】
変換パラメータのリストへの追加が完了すると、登録姿勢サムネイル表示ウィンドウに、ボタン３が押された状態のメインウィンドウのキャプチャ画像をサムネイル表示する（登録姿勢サムネイル１）。サムネイルは、リストに登録を行った変換パラメータと関連付けておく。これにより、ユーザは、サムネイル右上の×ボタンを押すことで、リストから一度登録した変換パラメータを削除可能である。
【００５８】
なお、本実施形態では変換パラメータを１つだけ登録したが、見た目を誤りやすい姿勢が複数存在する場合には、ここまで述べてきた操作を複数回実行することで、各変換パラメータの算出、リストへの追加を行えばよい。これについては、後述の変形例で説明する。
【００５９】
ボタン４、および、ボタン５は変換パラメータの登録作業を終えるためのボタンである。ボタン４が押されると、それまでにリストに追加されたＮ組の変換パラメータを位置姿勢算出部１３に入力する。ボタン５が押されると、それまでにリストに追加されたＮ組の変換パラメータをすべて破棄する。
【００６０】
以上、ＧＵＩを用いた変換パラメータの登録方法について述べたが、ここで述べたＧＵＩは一例であり、これ以外のものを利用してももちろん構わない。
【００６１】
以下、図６を用いて、ステップＳ３０３〜Ｓ２１０の処理について説明する。
【００６２】
（ステップＳ３０３）
ステップＳ３０３において、概略位置姿勢認識部１２および位置姿勢算出部１３は、撮像部１４により、撮像された対象物体の距離画像および濃淡画像をインタフェースを介して取得する。撮影した画像を図６（ａ）に示す。
【００６３】
（ステップＳ３０４）
ステップＳ３０４において、概略位置姿勢認識部１２は、撮影画像中に存在する山積みされた多数の対象物体の中から一個体の検出を行い、センサ座標系における対象物体の概略位置姿勢を表す６つのパラメータを算出して記録する。ここで算出した６つのパラメータに基づくモデル座標系からセンサ座標系への座標変換において、姿勢を表す３つのパラメータで表現される３×３の回転行列をＲＳＭ、位置を表す３つのパラメータで表現される３列の並進ベクトルをｔＳＭとする。このとき、モデル座標系ＸＭ＝［ＸＭ，ＹＭ，ＺＭ］Ｔからセンサ座標系ＸＳ＝［ＸＳ，ＹＳ，ＺＳ］Ｔへの変換は、４×４行列Ｔ０’を用いて以下のように表すことができる。
ＸＳ’＝Ｔ０’ＸＭ’
ここで、
ＸＳ’＝［ＸＳ，ＹＳ，ＺＳ，１］Ｔ    ＸＭ’＝［ＸＭ，ＹＭ，ＺＭ，１］Ｔ
【００６４】
【数３】
2015194478.tif 000005
である。これ以後、Ｔ０’を概略位置姿勢と呼ぶことにする。図６（ｂ）に、概略位置姿勢Ｔ０’に基づき、撮影画像上に三次元形状モデルを投影した結果を示す。
【００６５】
（ステップＳ３０５）
ステップＳ３０５において、位置姿勢算出部１３は、概略位置姿勢Ｔ０’を初期値として三次元モデルと画像中の対象物体とのモデルフィッティングを行うことで、対象物体の位置姿勢を算出する。具体的には、三次元形状モデルを撮像装置のパラメータと概略位置姿勢とに基づいて撮影画像に投影する。そして、投影された三次元形状モデルの特徴と画像中の対象物体の特徴とを対応付けてその残差を小さくすることにより、対象物体の位置姿勢を算出する。対象物体の高精度な位置姿勢を算出する。ここで算出した位置姿勢の６パラメータにより表現可能な、モデル座標系からセンサ座標系への座標変換を行う４×４の回転行列をＴ０とする。ここで、図６（ｃ）に、フィッティング後の位置姿勢Ｔ０に基づき、撮影画像上に３次元形状モデルを投影した結果を示す。この例では、概略位置姿勢認識部１２が表と裏とを誤って一個体を検出したために、本ステップにおいて高精度な位置姿勢算出を行っても、正しい位置姿勢が算出されていない。
【００６６】
（ステップＳ３０６）
ステップＳ３０６において、位置姿勢算出部１３は、ステップＳ３０５で算出した位置姿勢に対してスコアを算出し、所定の閾値と比較を行うことで位置姿勢の正誤を判定し、後段の処理を実施するか否かの判定を行う。たとえばフィッティング後の位置姿勢におけるモデル表面上の幾何特徴と、画像中の幾何特徴との三次元的な距離を残差とする（ずれ量取得）。そして、全幾何特徴の残差の平均値Ｅをスコアとして用いることができる。
【００６７】
算出した残差の平均値Ｅが所定の閾値（たとえば０．１ｍｍ）よりも小さければ、正しい位置姿勢が導出できたと判定してステップＳ３１０へ進む。一方、残差の平均値が閾値よりも大きければ、誤った位置姿勢が求まったものと判定して、ステップＳ３０７へ進む。閾値は、例えば、予めユーザによって設定しておけばよい。また、位置姿勢の正誤判定方法はこれに限るものではない。たとえば、算出されたＴ０に基づき、モデルを投影してレンダリングした画像と、撮影画像とでの、物体領域内の輝度の正規化相互相関係数Ｒを求め、この値を利用してもよい。この場合、Ｒが所定値（たとえば０．９）よりも大きければステップＳ３１０へ進む。一方、小さければステップＳ３０７へ進む。このほか、ステップＳ３０５で算出された位置姿勢の正誤を峻別可能な方法であればいかなる方法であっても構わない。
【００６８】
なお、この処理を省略し、必ずステップＳ３０７へ進むようにしてもよい。
【００６９】
（ステップＳ３０７）
ステップＳ３０７において、位置姿勢算出部１３は、位置姿勢Ｔ０と、変換パラメータ算出部１１から取得したＮ組の各変換パラメータとを用いて、新たな初期位置姿勢の候補をＮ個生成する。なお、本実施形態ではＮ＝１とする。ここで、Ｎ組の各変換パラメータから復元可能な相対位置姿勢をＴｒ＿ｉ（ｉ＝１〜Ｎ）と表現し、それぞれを用いて作成した新たな候補の位置姿勢をＴｉ’とする。Ｔｉ’は以下により算出する。
Ｔｉ’＝Ｔ０Ｔｒ＿ｉ−１
図６（ｄ）は、新たな候補の位置姿勢Ｔｉ’に基づき、撮影画像上に３次元形状モデルを投影したものである。
【００７０】
（ステップＳ３０８）
ステップＳ３０８において、位置姿勢算出部１３は、ステップＳ３０７で生成された新たな候補の位置姿勢Ｔｉ’を初期値として、ステップＳ３０５と同様に撮影画像と三次元形状モデルとがフィットするように、対象物体の位置姿勢を算出（導出）する。ここで算出された位置姿勢をＴｉとする。
【００７１】
（ステップＳ３０９）
ステップＳ３０９において、位置姿勢算出部１３は、ステップＳ３０７で生成されたＮ個の新たな候補位置姿勢Ｔｉ’に対して、ステップＳ３０８でそれぞれフィッティングを行い、Ｎ個のＴｉの算出が完了しているかを判定する。Ｎ個のＴｉの算出が完了していればステップＳ３１０へ処理を進め、完了していなければステップＳ３０７へと処理を戻す。
【００７２】
なお、Ｎ個の新たな候補位置姿勢に対してステップＳ３０７〜Ｓ３０８の処理を並列化して実施してもよい。
【００７３】
（ステップＳ３１０）
ステップＳ３１０において、位置姿勢算出部１３は、ステップＳ３０９で算出した（Ｎ＋１）個の位置姿勢Ｔｉ（ｉ＝０〜Ｎ）に対して、それぞれ位置姿勢の評価値を算出し、最良の評価値となった位置姿勢を最終的な対象物体の位置姿勢として出力する。ここで用いる評価値には、ステップＳ３０６と同様に残差を用いてもよいし、算出された位置姿勢に基づいて対象物体を投影した画像と、撮影画像との正規化相互相関を用いてもよい。その他、複数の位置姿勢の正誤を評価値に基づいて峻別可能な方法であればいかなる方法であっても構わない。図６（ｅ）は、Ｔ０、Ｔ１の２つの位置姿勢を評価し、Ｔ１を最終位置姿勢として出力した様子を示す。
【００７４】
以上、第１の実施形態では、概略位置姿勢の認識を誤りやすい対象物体に対してあらかじめ、互いに誤りやすい関係にある２つの位置姿勢間の変換パラメータをＧＵＩから登録しておく。そして、その情報を利用することで、誤認識の発生を抑制し、正しく位置姿勢を算出する方法について述べた。
【００７５】
具体的にはＧＵＩを用いて互いに誤りやすい２つの位置姿勢にモデルを配置し、その変換パラメータを登録、保持しておく。そして、位置姿勢算出時には、登録された変換パラメータに基づき、フィッティング結果と誤りやすい関係にある位置姿勢を作成し、その位置姿勢を初期値として新たに別途フィッティングを行う。そして両フィッティング結果のうち、評価値の高い位置姿勢を採用する。
【００７６】
この方法により、誤認識しやすい形状で、フィッティングにより真値算出が期待できる初期値の作成が困難な物体に対しても、直観的な入力により適切な初期値候補を作成して誤認識を抑制することが可能となる。
【００７７】
また、本実施形態では、ステップＳ３０５で概略位置姿勢Ｔ０’に対して一度フィッティングを行い、算出した位置姿勢Ｔ０に対して、各変換パラメータＴｒ＿ｉを用いて新たな位置姿勢候補を作成した。これに対して、概略位置姿勢Ｔ０’に対して、各変換パラメータＴｒ＿ｉを用いて新たな位置姿勢候補を作成してもよい。
【００７８】
（変形例１−１）
第１の実施形態では、表と裏とを誤りやすい対象物体に対して、誤認識なく正しく位置姿勢を算出する方法について述べた。本変形例では、誤りやすい関係にある姿勢を多数有する対象物体に対して、それぞれ誤りやすい位置姿勢を事前登録することで、誤認識の抑制を行う方法について述べる。
【００７９】
なお、本変形例の装置構成は第１の実施形態の図１と同様のため省略する。また、本変形例の処理フローも基本的には第１の実施形態の図２と同様のため省略する。
【００８０】
図７を用いて本実施形態の説明を行う。図７（ａ）は、本実施形態で取り扱う対象物体の三次元形状モデルの例である。対象物体はプロペラのような形状をしているが３枚の羽部分はいずれも異なる形状であり、回転対称ではない。この対象物体を撮影した画像を図７（ｂ）とする。なお、ここでは以後の説明簡略化のため、センサのＺ軸と三次元形状モデルのＺ軸とで、方向が一致した姿勢の観測画像を用いている。この画像に対して、撮影画像中から一個体の概略位置姿勢を算出し、その位置姿勢を初期値として画像データと三次元形状モデルとのフィッティングを実施したとする。
【００８１】
このとき、観測情報が類似するため概略位置姿勢認識部１２で誤検出が発生しうる。その結果、モデルフィッティング後に算出される位置姿勢として、図７（ｃ）〜（ｈ）にそれぞれ破線部で示すような６パターンの結果が予想される。このうち、正しい位置姿勢は図７（ｃ）である。図７（ｄ）（ｅ）は、図７（ｃ）に対して、モデルＺ軸回りの姿勢をそれぞれ−１２０度、＋１２０度誤った位置姿勢である。また、図７（ｆ）（ｇ）（ｈ）は、Ｚ軸の正方向を物体の表としたときの裏面を誤って検出した結果である。
【００８２】
そこで、これらの誤りやすい関係にある位置姿勢をそれぞれ登録しておき、誤認識の抑制を行う。具体的には、ステップＳ３０２にて、第１の実施形態と同様のＧＵＩにより、基準モデルと操作モデルとが、図７（ｄ）〜（ｈ）における、撮影画像上の対象物体の位置姿勢と、誤認識結果の位置姿勢、の関係と同様になるように配置してそれぞれ登録を行う。つまり、本実施形態では変換パラメータを５組登録する（Ｎ＝５）。そして、ステップ３０７〜３０９では、第１の実施形態と同様に、概略位置姿勢からフィッティングを行った結果に対して、Ｎ個の誤りやすい位置姿勢を求め、それぞれを初期値としたフィッティングを実施する。最後に、ステップＳ３１０で、（Ｎ＋１）個のフィッティング結果Ｔｉ（ｉ＝０〜Ｎ）の中から評価値の最もよいものを最終位置姿勢として出力する。
【００８３】
以上の方法により、誤りやすい関係にある姿勢を多数有する対象物体に対しても、直観的な入力により適切な初期値候補を作成して誤認識の抑制が可能となる。
【００８４】
（第２の実施形態）
第１の実施形態では、三次元形状モデルを操作可能なＧＵＩを表示装置１５の表示画面に表示しユーザによる操作に基づいて、互いに誤りやすい２つの位置姿勢にモデルを設定する。そして、その位置姿勢間の変換パラメータを登録（保持）しておくという処理を事前に行い、実際の位置姿勢処理においては、その変換パラメータを用いることにより誤認識を抑制する方法について述べた。
【００８５】
これに対して本実施形態では、第１の実施形態のように三次元形状モデルを使った事前の処理は行わない。本実施形態では、実際の対象物体が山積みされている画像に対して、一度位置姿勢計測を行い、その結果の中から一個体に対する正しい計測結果と、誤った計測結果とを対にして選択し、両者の変換パラメータを算出、登録（保持）する。本実施形態では、一個体に対して実際に算出された正しい位置姿勢と誤った位置姿勢との関係を事前登録することで、誤認識抑制の確実性を高めることができる。
【００８６】
本実施形態にかかる情報処理装置１００の構成は第１の実施形態と同様であるため説明を省略する。
【００８７】
次に、本実施形態の処理手順について説明する。本実施形態では、図３に示す第１の実施形態のフローチャートにおいて、ステップＳ３０２の処理のみが異なる。ステップＳ３０２以外の処理は共通であるため、以下、ステップＳ３０２について詳しく説明し、その他の処理については説明を省略する。
【００８８】
（ステップＳ３０２）
ステップＳ３０２において、変換パラメータ算出部１１は、互いに誤りやすい、異なる２つの位置姿勢の関係（変換パラメータ）を算出して登録（保持）する。本ステップでは図９に示すような表示装置１４の表示画面に表示されるＧＵＩを用いて変換パラメータの登録を行う。なお、表示画面に表示されている画像は、撮像装置１４により撮像された対象物体の山積み画像である。
【００８９】
以下、ＧＵＩを構成する各機能と変換パラメータの登録方法について説明する。
【００９０】
ボタン６は、山積み画像の撮影、山積み画像中の個体の検出および概略位置姿勢認識、概略位置姿勢に基づくモデルフィッティング、の一連の処理を実施するためのボタンである。ボタン６が押されると第１の実施形態におけるステップＳ３０３〜Ｓ３０５の処理を実施する。ただし、ここでは山積み画像中の一個体の位置姿勢を算出するのではなく、Ｍ個の位置姿勢を算出する（複数導出する）。
【００９１】
具体的には、概略位置姿勢認識部１２による概略位置姿勢認識処理において、評価値の高かったものから上位Ｍ個を抽出し、Ｍ個の概略位置姿勢をそれぞれ初期値としてモデルフィッティングを行ってＭ個の位置姿勢を算出する。ここで、Ｍの値はあらかじめ定めておいてもよいし、概略位置姿勢認識の評価値などに応じて動的に設定してもよいが、算出されるＭ個の位置姿勢の中に、同一個体に対する正しい位置姿勢と、誤った位置姿勢とがともに含まれるように設定する。つまり、ある１つの物体に対して、正しい概略位置姿勢と誤った概略位置姿勢とを含む複数の概略位置姿勢が認識され、それぞれの概略位置姿勢に基づいて、モデルフィッティングを行って、正しい位置姿勢と誤った位置姿勢を求める。ここで、例えば表向きの部品に対して表向きの概略位置姿勢は正しい概略位置姿勢であり、裏向きの位置姿勢は誤った概略位置姿勢である。
【００９２】
ボタン６が押されると、位置姿勢表示ウィンドウは、モデルフィッティング後のＭ個の位置姿勢を表すパラメータ（ｘ、ｙ、ｚ、Ｒｘ、Ｒｙ、Ｒｚ）をそれぞれ表示する。図９においてはＭ＝６である。一方で、メインウィンドウは、撮像装置１４により計測した対象物体の山積み画像を表示する。さらに位置姿勢表示ウィンドウに表示されたＭ個の中からユーザが選択した位置姿勢（太線表示）に基づき、メインウィンドウ上の画像に対して三次元形状モデルを重畳表示する（図８破線部）。
【００９３】
ユーザは、Ｍ個の位置姿勢を切り替え、メインウィンドウにそれぞれ切り替え表示される三次元形状モデルを確認する。そして、Ｍ個の位置姿勢の中に、同一個体に対する正しい位置姿勢と、誤った位置姿勢とがあれば、各位置姿勢に関連付いた位置姿勢選択チェックボックスをともにチェックすることで、それらを選択する。図８は、Ｍ（＝６）個の位置姿勢のうち、位置姿勢（３）を、撮影画像右端の個体に対する誤った位置姿勢であるとして選択した状態である。これに加え、図９は、さらに位置姿勢（１）を、撮影画像右端の同一の個体に対する正しい位置姿勢であるとして選択した状態を示す。なお、位置姿勢選択チェックボックスは、位置姿勢が２つチェックされた時点でそれ以上選択できないようにする。
【００９４】
ボタン７は、位置姿勢選択チェックボックスで２つ位置姿勢が選択されると有効になる。ボタン７を押すことで、第１の実施形態におけるボタン３が押された時と同様に、選択された２つの位置姿勢間の変換パラメータを算出して変換パラメータのリストへ追加する。なお、リストへの追加が完了した時点で、位置姿勢選択チェックボックスはすべて未選択状態にリセットする。
【００９５】
変換パラメータのリストへの追加が完了すると、第１の実施形態と同様、登録姿勢サムネイル表示ウィンドウ２に、変換パラメータ算出に用いた２つの位置姿勢の三次元形状モデルを重ね合わせてサムネイル表示する（登録姿勢サムネイル２）。サムネイルは、リストに登録を行った変換パラメータと関連付けておき、ユーザは、サムネイル右上の×ボタンを押すことで、リストから一度登録した変換パラメータを削除可能である。
【００９６】
ボタン８およびボタン９は第１の実施形態におけるボタン４およびボタン５と同様の処理を行うためのものであるため説明を省略する。
【００９７】
なお、本実施形態で述べたＧＵＩを用いた変換パラメータの登録方法は一例であり、これ以外のものを利用してももちろん構わない。
【００９８】
以上、第２の実施形態では、山積み画像に対して、誤りやすい位置姿勢関係を登録せずに一度位置姿勢計測を行う。そして、その結果の中から一個体に対する正しい計測結果と、誤った計測結果とを対にして選択することで、両者の変換パラメータを算出し、登録する方法について述べた。本実施形態では、一個体に対して実際に算出された正しい位置姿勢と誤った位置姿勢との関係を事前登録することで、誤認識抑制の確実性を高めることが可能である。
【００９９】
（第３の実施形態）
本発明に係る情報処理装置の好適な適用事例としては、産業用ロボットアームで部品の把持、移動、解放といった動作を行うシステムにおいて対象部品の位置姿勢計測に利用することが挙げられる。以下、図１１を用いて、本発明に係る情報処理装置の適用例を説明する。
【０１００】
図１１は、本実施形態に係る情報処理装置を含むロボットシステムの概略構成の一例を示す模式図である。情報処理装置１５０１はロボットハンドを制御するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。撮像装置１５０２は撮像装置であり、カメラやプロジェクタからなる。情報処理装置１５０１は、第１、第２の実施形態で説明した情報処理装置１００の機能を実現するソフトウェアが供給されている。そして、撮像装置１５０２は、第１、第２の実施形態で説明した撮像装置１４と同様の構成である。本実施形態では、撮像装置１５０２は、ロボットアーム上に設置されているが、対象物体から重力方向に上方に固定して設置してもかまわない。また、第１、第２の実施形態で説明したＧＵＩを表示する表示装置やユーザ操作を受け付ける操作装置は図１５においては不図示だが、情報処理装置１５０１に接続されている。情報処理装置１５０１は、先に説明した処理手順が記述されたプログラムを格納し、対象部品１５０５の位置姿勢の計測が可能である。対象物体１５０５は、図の簡略化のため、１個体しか表示していないが、もちろん第１または第２の実施形態のように山積みされていてもかまわない。
【０１０１】
ロボットコントローラ１５０３は、ロボットアームを制御する。ロボットアーム１５０４は、ロボットアームであり、回転軸及び／または並進移動軸からなる可動軸を有する。ロボットコントローラは情報処理１２０１に接続されており、ロボットアームへの命令は情報処理装置１５０１から受け取ったものを具体的な制御命令に変換してロボットアームを動かす。また、ロボットアームの先端に備え付けられているロボットハンドは、対象物体を把持する。しかし、ロボットハンドとしては、把持（つかむ）ためのものだけでなく、例えば、吸盤を備えることによる吸着により物体を保持することのできるハンド（対象物体保持手段）でかまわない。
【０１０２】
本実施形態におけるロボットシステムは、第１または第２の実施形態で説明した処理手順により対象物体の位置姿勢を認識する。そして、その結果をカメラの座標系からロボット座標系に変換する。次に変換された部品のロボット座標系における位置姿勢を元にロボットコントローラを介してロボットアームが部品を把持できる位置姿勢に移動させる。
【０１０３】
このように、本実施形態によれば、ロボットアームを有するロボットシステムにおいて、本発明による部品の位置姿勢の計測結果に基づいてロボットアームを処理することで未知である部品の把持（保持）をすることができる。
【０１０４】
（第４の実施形態）
第１の実施形態では、それぞれの候補位置姿勢において対象物体全体についての評価値を比較した。本実施形態では、誤った姿勢と正しい姿勢との比較において評価値に差が出やすいような特定部位を事前に設定しておき、特定部位のみで評価値の比較を行うことでより確実に誤認識の抑制を行う方法について述べる。図１２の対象物体は、姿勢Ａと、姿勢Ａを回転軸まわりに１８０度回転させた姿勢Ｂとで重ね合わせたときに見た目の差が少なく、判別が難しい。本実施形態は、このような互いに誤りやすい関係にある複数の姿勢において、対象物体の見た目の差分が小さい認識に対して特に有効な方法である。
【０１０５】
本実施形態の装置構成は、基本的に第１の実施形態の図１と同様のため省略するものとし、第１の実施形態とは異なる処理を行う変換パラメータ算出部１１、および位置姿勢算出部１３についてのみ述べる。
【０１０６】
変換パラメータ算出部１１は、仮想的な三次元空間におけるモデルの２つの位置姿勢間の変換パラメータを算出して記録するとともに、登録した２つの位置姿勢において見た目が顕著に異なる部位を特定部位としてユーザが指定し、その部位を記憶する。たとえば図１２の物体であれば、回転軸まわりに物体を回転させた姿勢Ａ、姿勢Ｂの配置において位置がわずかに変化する回転軸付近の２つの小さい円を特定部位として指定するのがよい。本実施形態で利用するＧＵＩと登録手順については後述する。
【０１０７】
位置姿勢算出部１３は、三次元形状モデル保持部１０から、三次元形状モデルを取得する。また、位置姿勢算出部１３は、概略位置姿勢認識部１２から概略位置姿勢を取得する。また、位置姿勢算出部１３は、変換パラメータ算出部１１が保持する変換パラメータを取得する。また、位置姿勢算出部１３は、撮像部１４から計測情報（濃淡画像、距離画像）を取得する。また、位置姿勢算出部１３は、変換パラメータ算出部１１から、記憶しておいた特定部位を取得する。そしてこれらの情報から、対象物体の位置姿勢を算出する。
【０１０８】
具体的には、まず、取得した概略位置姿勢に基づき、対象物体の三次元形状モデルと、撮像装置１４により取得した画像中の対象物体とがもっともフィットするような三次元モデルの位置姿勢を算出（導出）する。その後、取得した変換パラメータに基づき、算出された位置姿勢と誤りやすい関係にある位置姿勢を求め、その位置姿勢を初期値として別途フィッティングを行う。ここまでの処理は第１の実施形態と同様である。その後、フィッティング結果の評価値を比較する際に、特定部位に関する評価値を算出し、評価値のよい方の位置姿勢を最終結果として出力する。
【０１０９】
なお、本実施形態の処理フローも基本的には、図３に示される第１の実施形態と同様のため省略することとし、第１の実施形態とは処理内容の異なるステップＳ３０２、Ｓ３１０について述べる。
【０１１０】
（ステップＳ３０２）
図１３は、本実施形態で利用するＧＵＩの例である。ユーザはこのＧＵＩを用いて誤りやすい姿勢とともに特定部位の登録を行う。第１の実施形態と同様に、ユーザは変換パラメータ算出部を介して操作装置１６（マウス、キーボードなど）を用いてＧＵＩを操作する。モデルの操作方法や姿勢のリセットボタン、フィッティングボタン、姿勢の登録ボタンの機能についても第１の実施形態と同様である。ＧＵＩについての第１の実施形態との違いは、特定部位を指定・登録するための特定部位メニュー１３００が追加されている点である。特定部位指定メニュー１３００は、誤りやすい姿勢が登録されるまでは無効となっており、ユーザが操作することができない。まず、ユーザはＧＵＩで表示された対象物の基準モデルに対して誤りやすい相対的な位置姿勢になるように、操作モデルを移動・回転させる。ユーザが操作モデルを移動・回転させて姿勢の登録ボタンを押下し、誤りやすい姿勢を登録すると、図１４に示すように、登録姿勢サムネイル表示ウィンドウ１４１０にキャプチャ画像がサムネイル表示される。なお、登録された誤りやすい位置姿勢については、第１の実施形態と同様に、登録姿勢サムネイル表示ウィンドウ１４１０右上の「×」ボタンを押下することによって登録を解除することができる。なお、ここまでの処理は第１の実施形態と同様である。
【０１１１】
誤りやすい姿勢を登録すると、図１４のＧＵＩ下部に示すように特定部位メニュー１３００のうちの特定部位追加／キャンセルボタン１４２０が有効となる。特定部位追加／キャンセルボタン１４２０を押下すると、ＧＵＩ中央部に示すような特定部位を選択するための矩形１４３０が表示され、この矩形を操作（移動・拡大・縮小）することにより、登録する特定部位を選択する。ここで、特定部位追加／キャンセルボタン１４２０を押下して特定部位を選択するための矩形１４３０が表示されると、図１５のように、同時に特定部位メニュー１１３００のうちの特定部位登録ボタン１５１０が有効となる。
【０１１２】
特定部位登録ボタン１５１０を押下すると、その時点で特定部位指定用矩形１４３０に囲まれていた操作モデル上の領域が特定部位として登録される。具体的には、矩形１４３０を選択した時の仮想カメラから観測可能な操作モデル表面について、画面上で指定した矩形内における奥行き方向の存在範囲を算出する。そして算出した存在範囲と画面上の矩形とにより定義される３次元空間（ここでは直方体）を算出し、仮想カメラに対する操作モデルの位置姿勢に基づき、モデル座標系に変換し直して記録する。同時に、モデル座標系に変換した３次元矩形を操作モデルに重ねて仮想空間に表示する。なお、登録された特定部位として表示される３次元矩形は、登録解除しない限り、操作モデルに固定された状態で、操作モデルの操作に合わせて表示され続ける。なお、特定部位の指定にあたり、ここでは矩形を用いた方法について述べたが、矩形に限らず円、楕円、多角形など、他の幾何形状を用いた指定であっても構わない。また複数の幾何形状からユーザが選択できるような構成であっても良い。矩形以外の幾何形状を用いて領域の指定を行う場合においても、領域を選択した時の仮想カメラから観測可能な操作モデル表面について、画面上で操作した幾何形状の領域内における奥行き方向の存在範囲を算出する。そして算出した奥行き方向の存在範囲と画面上の幾何形状とにより定義される３次元空間を算出し、仮想カメラに対する操作モデルの位置姿勢に基づき、モデル座標系に変換し直して記録すればよい。たとえば、画面上で円を用いて特定部位を指定した場合には、仮想カメラから観測可能な操作モデル表面の奥行き方向の存在範囲だけ円を伸ばしたような円柱を記録する。
【０１１３】
特定部位を選択した後でもう一度特定部位追加／キャンセルボタン１４２０を押下すると、矩形が消えて特定部位の選択を取り消すことができる。
【０１１４】
特定部位の登録が実行された場合には、それと同時に図１６のＧＵＩ下部に示すように特定部位メニュー１３００のうちの特定部位リストに登録した登録部位の名前が表示され、かつ特定部位登録解除ボタンが有効となる。登録部位の名前は任意に設定でき、ユーザが手動で直接入力して決定しても良い。あるいは自動的に決定されても構わない。
【０１１５】
以上の操作を複数繰り返すことで、特定部位を複数登録することが可能である。特定部位を新たに追加登録すると、図１７に示すように特定部位リストと操作モデルに対応した情報（特定部位の名前、特定部位に対応した特定部位指定用矩形）が追加される。
【０１１６】
ここで、ユーザが特定部位の登録を解除したい場合には、対象となる特定部位を特定部位リストから選択してから特定部位登録解除ボタンを押下する。特定部位リストからいずれかの特定部位を選択すると、特定部位登録ボタンが無効となる。ここでさらに登録解除ボタンを押下すると、対象となる特定部位は特定部位リストから削除される。
【０１１７】
すべての特定部位の登録が完了し、ＯＫボタンが押されると、記録した各特定部位に対して、登録された誤りやすい姿勢に基づき、対になる特定部位を新たに算出して記録する。たとえば、図１７に示すように、図１２における姿勢Ａと姿勢Ｂとの関係で誤りやすい姿勢が登録されているものとし、さらに、両者において形状に差異が発生する特定部位として、モデル回転軸付近の２つの円形状が登録されたものとする。ここで、姿勢Ａにおいて観測できるモデル表面と姿勢Ｂにおいて観測できるモデル表面は裏表の関係にある。したがって、位置姿勢算出時に両者の評価値を比較するためには、双方に関して特定部位を記録しておく必要がある。そこで、操作モデルを用いて記録した特定部位の三次元空間を、変換パラメータに基づき、互いに誤りやすい姿勢に配置した基準モデルのモデル座標系に変換し、双方の三次元空間を記録する。これにより、互いに誤りやすい２つの姿勢において、それぞれ比較すべき特定部位を記録することが可能である。なお、変換パラメータ、あるいは特定部位が複数登録されている場合には、それぞれの組み合わせについて本処理を実施する。
【０１１８】
（ステップＳ３１０）
ステップＳ３１０において、位置姿勢算出部１３は、ステップＳ３０９で算出した（Ｎ＋１）個の位置姿勢Ｔｉ（ｉ＝０〜Ｎ）に対して、ステップＳ３０２で指定した特定部位内に関して、それぞれ位置姿勢の評価値を算出し、最良の評価値となった位置姿勢を最終的な対象物体の位置姿勢として出力する。すなわち、本実施形態では、上記述べた方法で登録された特定部位のみで評価値の比較を行うことでより確実に誤認識の抑制を行う。
【０１１９】
なお、ここで用いる評価値には、ステップＳ３０６と同様に残差を用いてもよいし、算出された位置姿勢に基づいて対象物体を投影した画像と、撮影画像との正規化相互相関を用いてもよい。たとえば、評価値として残差を用いるのであれば、特定部位として記録された複数の三次元空間のいずれかに内包される幾何特徴のみに基づいて残差を算出する。あるいは、正規化相互相関を用いるのであれば、特定部位として記録した三次元空間をそれぞれモデルの位置姿勢に基づき画面上に投影し、投影領域内における両者の相関を用いて評価を行う。なお、ここで記載した以外の、複数の位置姿勢の正誤を峻別するそのほかの評価値に対しても、記録しておいた特定部位に着目して比較を行う方法が利用可能なのはいうまでもない。
【０１２０】
以上の方法により、互いに誤りやすい関係にある複数の姿勢において、対象物体の見た目の差分が小さい認識においても、２つの形状の差異が発生しやすい特定部位に着目した評価が可能となるため、より確実に誤認識の抑制が可能となる。
【０１２１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015194478.tif 000006
【図２】
2015194478.tif 000007
【図３】
2015194478.tif 000008
【図４】
2015194478.tif 000009
【図５】
2015194478.tif 000010
【図６】
2015194478.tif 000011
【図７】
2015194478.tif 000012
【図８】
2015194478.tif 000013
【図９】
2015194478.tif 000014
【図１０】
2015194478.tif 000015
【図１１】
2015194478.tif 000016
【図１２】
2015194478.tif 000017
【図１３】
2015194478.tif 000018
【図１４】
2015194478.tif 000019
【図１５】
2015194478.tif 000020
【図１６】
2015194478.tif 000021
【図１７】
2015194478.tif 000022