(57)【要約】【課題】  類似した形状が観測される位置姿勢を有する対象物体の位置姿勢の推定における計算コストを低減するための技術を提供すること。【解決手段】  対象物体の複数の照合用位置姿勢を設定する。対象物体の３次元形状を表す基準モデルが有する幾何特徴のうち照合用位置姿勢間で共通している部位の幾何特徴を含む共通構造モデルを生成する。対象物体を含む画像を取得する。該画像に、共通構造モデルと基準モデルとを照合して対象物体の位置姿勢を推定する。【選択図】  図２
2020027439.tif 000002
【特許請求の範囲】
【請求項１】
対象物体の複数の照合用位置姿勢を設定する設定手段と、
前記対象物体の３次元形状を表す基準モデルが有する幾何特徴のうち前記照合用位置姿勢間で共通している部位の幾何特徴を含む共通構造モデルを生成する生成手段と、
前記対象物体を含む画像を取得する取得手段と、
前記画像に、前記共通構造モデルと前記基準モデルとを照合して前記対象物体の位置姿勢を推定する推定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記推定手段は、前記画像から検出した画像特徴と前記共通構造モデルとを位置合わせして前記対象物体の概略位置姿勢を算出し、該概略位置姿勢と前記照合用位置姿勢と前記基準モデルとに基づいて前記対象物体の位置姿勢を判別する、もしくは前記画像特徴に前記基準モデルを位置合わせしてから前記対象物体の位置姿勢を判別する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、第１の位置姿勢に配置した前記基準モデルと、前記照合用位置姿勢に基づいて生成した第２の位置姿勢に配置した前記基準モデルと、を位置合わせし、前記第１の位置姿勢に配置した前記基準モデルが有する幾何特徴群のうち、前記第２の位置姿勢に配置した前記基準モデルが有する幾何特徴群が近傍に存在する部位の幾何特徴群を抽出することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記画像から検出した画像特徴に、前記照合用位置姿勢に基づいて生成した２つ以上の位置姿勢に配置した前記基準モデルを各々位置合わせし、前記画像特徴に対応付いた幾何特徴群のうち、１つ以上の異なる位置姿勢に配置した前記基準モデルが有する幾何特徴群が近傍に存在する部位の幾何特徴群を抽出することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記生成手段は、前記基準モデルが有する幾何特徴のうち、形状の微細な構造を表す部位以外の幾何特徴を抽出することを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記情報処理装置は更に、前記基準モデルおよび前記共通構造モデルを表示させる表示制御手段を備えることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は更に、ユーザ操作を受け付ける受け付け手段を備え、
前記表示制御手段は、前記ユーザ操作に応じて、前記基準モデルを前記照合用位置姿勢に基づいて配置して表示することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記受け付け手段は、第１の位置姿勢に配置した前記基準モデルが有する幾何特徴群のうち前記照合用位置姿勢に基づいて生成した第２の位置姿勢に配置した前記基準モデルが有する幾何特徴群が近傍に存在するか否かを判定する際の近傍範囲を指定する閾値、前記基準モデルが有する幾何特徴が微細な構造を表す部位か否かを判定する閾値、を受け付けることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記情報処理装置は更に、第１の位置姿勢に配置した前記基準モデルが有する幾何特徴群のうち前記照合用位置姿勢に基づいて生成した第２の位置姿勢に配置した前記基準モデルが有する幾何特徴群が近傍に存在するか否かを判定する際の近傍範囲を指定する閾値、前記基準モデルが有する幾何特徴が微細な構造を表す部位か否かを判定する閾値、を前記画像の解像度に基づき決定する手段を備えることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記情報処理装置は更に、前記画像の解像度に基づき、前記推定手段で前記共通構造モデルを用いて照合するか否かを判定する手段を備えることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の設定手段が、対象物体の複数の照合用位置姿勢を設定する設定工程と、
前記情報処理装置の生成手段が、前記対象物体の３次元形状を表す基準モデルが有する幾何特徴のうち前記照合用位置姿勢間で共通している部位の幾何特徴を含む共通構造モデルを生成する生成工程と、
前記情報処理装置の取得手段が、前記対象物体を含む画像を取得する取得工程と、
前記情報処理装置の推定手段が、前記画像に、前記共通構造モデルと前記基準モデルとを照合して前記対象物体の位置姿勢を推定する推定工程と
を備えることを特徴とする情報処理方法。
【請求項１２】
画像を撮像する撮像装置と、
請求項１乃至１０のいずれか１項に記載の情報処理装置と、
前記情報処理装置による前記対象物体の位置姿勢の推定結果に基づいて前記対象物体を把持するロボットと
を備えることを特徴とするロボットシステム。
【請求項１３】
コンピュータを、請求項１乃至１０のいずれか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体の位置姿勢を推定するための技術に関するものである。
【背景技術】
【０００２】
近年、ロボット技術の発展とともに、工業製品の組立のようなこれまで人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。このようなロボットは、ハンドなどのエンドエフェクタによって部品を把持して組み立てを行う。工業製品の組立作業における部品の把持や部品同士の組付けをロボットが行うためには、ロボットから見た部品の位置姿勢を高精度に計測する必要がある。部品の位置姿勢を高精度に計測する方法としては、カメラや距離センサから得られる濃淡画像や距離画像に部品の全体形状を表す３次元形状モデルが当てはまるように位置姿勢を算出するモデルフィッティングが代表的な方法である。モデルフィッティングでは、濃淡画像から検出される画像特徴や距離画像から得られる３次元座標点と、部品の全体形状を表す３次元形状モデルが持つ幾何特徴と、の対応付けを行い、それぞれの対応について残差の和が最小となるような位置姿勢を算出する。この方法は位置姿勢を算出するにあたって、画像から認識した部品の位置姿勢の概略値を初期値として必要とする。しかしながら、モデルフィッティングは与えられた初期値に依存した位置姿勢を算出するため、初期値が対象物体の位置姿勢とかけ離れている場合、局所解に陥り、位置姿勢の推定を誤る。例えば、表と裏の形状が類似した部品では、表側の面が観測されているのにもかかわらず、裏側の面の位置姿勢が初期値として与えられる場合がある。この場合、モデルフィッティングでは誤った解に収束してしまい、正しい位置姿勢を算出できない。
【０００３】
これに対して、特許文献１と特許文献２に記載の方法では、類似した形状が観測される複数の位置姿勢に基づいてモデルフィッティングの初期値となる位置姿勢候補を生成して各々位置合わせする。そして、位置合わせ処理後の位置姿勢候補の中から、画像と部品の全体形状を表す３次元形状モデルとの一致度が最も高い位置姿勢を選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許０５７１６４３３号公報
【特許文献２】特開２０１５−１９４４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１と特許文献２に記載の方法では、モデルフィッティングの初期値となる複数の位置姿勢候補を生成し、各々位置合わせ処理をするため計算コストが高い、という課題がある。本発明では、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢の推定における計算コストを低減するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、対象物体の複数の照合用位置姿勢を設定する設定手段と、前記対象物体の３次元形状を表す基準モデルが有する幾何特徴のうち前記照合用位置姿勢間で共通している部位の幾何特徴を含む共通構造モデルを生成する生成手段と、前記対象物体を含む画像を取得する取得手段と、前記画像に、前記共通構造モデルと前記基準モデルとを照合して前記対象物体の位置姿勢を推定する推定手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢の推定における計算コストを低減することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の概要を説明する図。
【図２】システムの機能構成例を示すブロック図。
【図３】対象物体の位置姿勢を推定するために行う処理のフローチャート。
【図４】基準モデルのデータ構造を示した模式図。
【図５】ステップＳ１３００における処理の詳細を示すフローチャート。
【図６】ステップＳ１５００における処理の詳細を示すフローチャート。
【図７】共通構造モデルの生成処理のフローチャート。
【図８】共通構造モデル生成用のＧＵＩの一例を示す図。
【図９】別ウインドウのＧＵＩの一例を示す図。
【図１０】ロボットシステムの構成例を示す図。
【図１１】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の１つである。
【００１０】
［第１の実施形態］
（概要）
本実施形態では、濃淡画像および距離画像を用いて、類似した形状が観測される複数の位置姿勢を有する対象物体の位置姿勢を推定する。本実施形態で想定する対象物体は、図１に示すようなコネクタ部品１１である。コネクタ部品１１の場合、裏表や上下が反転した位置姿勢で類似した形状が観測されるため、位置姿勢の推定を誤りやすい。
【００１１】
特許文献１に記載の方法では、類似した形状が観測される位置姿勢をモデルフィッティング時に照合する位置姿勢（照合用位置姿勢）として設定する。そして図１（ａ）に示すように、画像１０から認識したコネクタ部品１１の位置姿勢の概略値（概略位置姿勢）と、照合用位置姿勢と、に基づき、モデルフィッティングの初期値となる位置姿勢候補Ａ〜Ｄを生成する。そして、画像１０に対してコネクタ部品１１の全体形状を表す３次元形状モデルである基準モデル１２を各々位置合わせして、位置姿勢候補Ａ〜Ｄの概略位置姿勢をそれぞれ更新する。最後に、位置姿勢候補Ａ〜Ｄの概略位置姿勢に配置した基準モデル１２と画像１０との一致度が最も高い位置姿勢候補（図１（ａ）では位置姿勢候補Ｂ）を推定位置姿勢として選択する。ここで、３次元形状モデルの配置とは、３次元形状モデルを位置姿勢によって２次元画像上あるいは３次元空間上へ射影することを意味する。しかしながら、位置姿勢候補について各々位置合わせするという処理は計算コストが高い。
【００１２】
そこで、本実施形態では、基準モデル１２が持つ幾何特徴のうち照合用位置姿勢間で共通している部位の幾何特徴（共通構造）を利用した位置合わせを行うことで計算コストを低減する。図１のコネクタ部品１１における共通構造とは、ピンや切り欠きを除いた直方体部分のことを指す。
【００１３】
共通構造を利用することで計算コストを低減する方法について図１（ｂ）を用いて説明する。まず、共通構造を保持した３次元形状モデルである共通構造モデル１３を、画像１０から認識したコネクタ部品１１の概略位置姿勢に配置し、モデルフィッティングで位置合わせして概略位置姿勢を更新する。そして、概略位置姿勢と照合用位置姿勢とに基づいて位置姿勢候補Ａ〜Ｄを生成し、基準モデル１２と画像１０との一致度が最も高い位置姿勢候補（図１（ｂ）では位置姿勢候補Ｂ）を推定位置姿勢として選択する。このように、共通構造モデルを用いることで、照合用位置姿勢のそれぞれについて画一的な位置合わせが行えるため、位置姿勢候補を各々位置合わせする部分を削減して計算コストを低減できる。
【００１４】
（構成）
次に、本実施形態に係るシステムの機能構成例について、図２のブロック図を用いて説明する。図２に示す如く、本実施形態に係るシステムは、撮像装置５０と、情報処理装置１００と、を有し、撮像装置５０と情報処理装置１００との間は無線及び／又は有線のネットワークを介して互いにデータ通信が可能なように構成されている。なお、図２では、撮像装置５０と情報処理装置１００とは別個の装置として示しているが、撮像装置５０と情報処理装置１００とを一体化させても良い。
【００１５】
先ず、撮像装置５０について説明する。撮像装置５０は、各画素が濃淡値を有する濃淡画像を撮像するカメラと、各画素が奥行き値を有する距離画像を撮像する距離センサと、を有する。そして撮像装置５０は、濃淡画像と距離画像とを情報処理装置１００に対して送出する。
【００１６】
次に、情報処理装置１００について説明する。設定部１１０は、複数の照合用位置姿勢を設定する。生成部１２０は、保持部１３０に保持されている「対象物体全体の３次元形状を表す３次元形状モデル」である基準モデルと、設定部１１０が設定した複数の照合用位置姿勢と、を用いて、対象物体の共通構造モデルを生成する。そして生成部１２０は、該生成した共通構造モデルと、設定部１１０が設定した複数の照合用位置姿勢と、を保持部１３０に登録する。
【００１７】
保持部１３０は、基準モデルや後述の処理に必要な各種の情報を保持するメモリである。取得部１４０は、撮像装置５０から送出された濃淡画像と距離画像とを取得する。推定部１５０は、保持部１３０に登録されている共通構造モデル及び基準モデルと、取得部１４０が撮像装置５０から取得した濃淡画像および距離画像と、に基づいて、対象物体の位置姿勢を推定し、該推定した位置姿勢を出力する。制御部１９０は、情報処理装置１００全体の動作制御を行う。
【００１８】
次に、情報処理装置１００が撮像装置５０による撮像画像（濃淡画像及び距離画像）中の対象物体の位置姿勢を推定するために行う処理について、同処理のフローチャートを示す図３に従って説明する。
【００１９】
＜ステップＳ１１００＞
制御部１９０は情報処理装置１００を制御して該情報処理装置１００の初期化を行う。例えば制御部１９０による制御下で、生成部１２０は保持部１３０に登録されている基準モデルを読み出し、取得部１４０は、撮像装置５０からカメラパラメータ（主点位置、焦点距離、歪み係数、画素数、解像度など）を取得する。
【００２０】
基準モデルは、点の集合、各点間を結ぶ線分の集合、複数の線分で構成される面の集合、のそれぞれの集合を規定する情報である。図４は基準モデルのデータ構造を示した模式図である。
【００２１】
基準モデルは、図４（ａ）に示す如く点Ｐ１〜点Ｐ１４と、図４（ｂ）に示す如く点Ｐ１〜点Ｐ１４の２点間を結ぶ線分Ｌ１〜Ｌ１６と、によってその形状が規定される。図４（ｃ）は、点Ｐ１〜Ｐ１４のそれぞれのＩＤおよび３次元座標（ｘ座標値、ｙ座標値、ｚ座標値）を規定するテーブルであり、基準モデルのデータに含まれている。例えば、ＩＤ＝Ｐ４の点の３次元座標は（１００，２００，３５０）である。図４（ｄ）は、線分Ｌ１〜Ｌ１６のそれぞれについて、該線分のＩＤと、該線分の両端の２点のそれぞれのＩＤと、該線分が共通構造に該当するか否かを示す識別子と、を規定するテーブルであり、基準モデルのデータに含まれている。識別子「Ｔｒｕｅ」は線分が共通構造に該当することを示しており、「Ｆａｌｓｅ」は線分が共通構造に該当しないことを示している（以下では、識別子の初期値は「Ｆａｌｓｅ」とする）。例えば、ＩＤ＝Ｌ４の線分の両端の２点はＩＤ＝Ｐ４の点とＩＤ＝Ｐ５の点であり、該線分が共通構造に該当するか否かを示す識別子は「Ｆａｌｓｅ」（共通構造に該当しない）である。この図４（ｄ）のテーブルに登録されている識別子により、基準モデルに対応する共通構造モデルを定義する。また、基準モデルのデータには、基準モデルを構成する各面について、該面のＩＤと、該面を構成する点あるいは線分のＩＤと、該面が共通構造に該当するか否かを示す識別子と、を規定するテーブルも含まれている。
【００２２】
カメラパラメータは、Ｚｈａｎｇの方法［Ｚ．  Ｚｈａｎｇ，  ”Ａ  ｆｌｅｘｉｂｌｅ  ｎｅｗ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｃａｍｅｒａ  ｃａｌｉｂｒａｔｉｏｎ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｖｏｌ．２２，  ｎｏ．１１，  ｐｐ．１３３０−１３３４，  ２０００．］により事前に校正したものであり、モデルフィッティングおよび一致度の算出時に用いられる。
【００２３】
また制御部１９０は、生成部１２０や推定部１５０で必要なパラメータを設定する。生成部１２０で必要なパラメータとしては、例えば、近傍範囲（例えば１ｍｍ）である。また、推定部１５０で必要なパラメータとしては、例えば、画像特徴と３次元形状モデルの幾何特徴とを対応付ける際の基準となる範囲（例えば５ｍｍ）である。
【００２４】
＜ステップＳ１２００＞
設定部１１０は、ステップＳ１１００で取得した基準モデルの対称軸を特定し、該特定した各対称軸周りに該基準モデルの姿勢を１８０度回転させる変換パラメータを照合用位置姿勢として設定する。基準モデルの対称軸の特定には、例えば、周知のＰＣＡ（Ｐｒｉｎｃｉｐａｌ  Ｃｏｍｐｏｎｅｎｔ  Ａｎａｌｙｓｉｓ）を用いる。具体的には、基準モデルを構成する点の３次元座標を並べた行列をＰＣＡで解析して、第１〜３主成分に対応する主成分ベクトルを対称軸とする。このようにすると、基準となる位置姿勢に対して裏表反転、上下反転、裏表上下反転するような照合用位置姿勢が設定される。
【００２５】
＜ステップＳ１３００＞
生成部１２０は、ステップＳ１１００で取得した基準モデルと、ステップＳ１２００で設定した複数の照合用位置姿勢と、を用いて、照合用位置姿勢間で共通する幾何特徴群を基準モデルから抽出することで、該基準モデルに対応する共通構造モデルを生成する。ステップＳ１３００における処理の詳細については後述する。
【００２６】
＜ステップＳ１４００＞
取得部１４０は、撮像装置５０から濃淡画像および距離画像を取得する。
【００２７】
＜ステップＳ１５００＞
推定部１５０は、ステップＳ１１００で取得した基準モデルと、ステップＳ１３００で生成した共通構造モデルと、ステップＳ１４００で取得した濃淡画像および距離画像と、に基づいて、対象物体の位置姿勢を推定し、該推定した位置姿勢を出力する。なお、推定した位置姿勢の出力先については特定の出力先に限らない。次に、上記のステップＳ１３００における処理の詳細について、図５のフローチャートに従って説明する。
【００２８】
＜ステップＳ１３０１＞
生成部１２０は、ステップＳ１３０３において使用するＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズムにおける基準となる第１の位置姿勢を設定する。
【００２９】
ＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズム：［Ｐ．  Ｊ．  Ｂｅｓｌ  ａｎｄ  Ｎ．  Ｄ．  ＭｃＫａｙ，  ”Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｒｅｇｉｓｔｒａｔｉｏｎ  ｏｆ  ３−Ｄ  ｓｈａｐｅｓ，”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｖｏｌ．１４，  ｎｏ．２，  ｐｐ．２３９−２５６，  １９９２．］
本実施形態では、第１の位置姿勢として、位置の各成分が０、姿勢を表わす回転行列が単位行列である姿勢を設定する。
【００３０】
＜ステップＳ１３０２＞
生成部１２０は、ステップＳ１２００で設定したそれぞれの照合用位置姿勢について、第１の位置姿勢を該照合用位置姿勢で変換した第２の位置姿勢を生成する。第２の位置姿勢は、ＩＣＰアルゴリズムにおける初期値となる。
【００３１】
＜ステップＳ１３０３＞
生成部１２０は、第２の位置姿勢ごとに、第１の位置姿勢で配置した基準モデルに該第２の位置姿勢で配置した基準モデルをＩＣＰアルゴリズムで位置合わせすることで該第２の位置姿勢を更新する。なお、本実施形態では、ＩＣＰアルゴリズムにおける位置姿勢の更新量がほぼ０である場合に収束したとみなしてステップＳ１３０４に進む。
【００３２】
＜ステップＳ１３０４＞
生成部１２０は、第１の位置姿勢で配置した基準モデルが持つ幾何特徴群の近傍を探索して、第２の位置姿勢で配置した基準モデルが持つ幾何特徴群と共通する幾何特徴群を抽出する。具体的には、第１の位置姿勢で配置した基準モデルから未選択の幾何特徴を１つ選択し、該選択した幾何特徴の近傍範囲内に１つ以上の第２の位置姿勢で配置した基準モデルの幾何特徴が存在すれば、共通する幾何特徴と判定する。この処理を、第１の位置姿勢で配置した基準モデルが持つすべての幾何特徴について行う。なお、本実施形態では、第１の位置姿勢で配置した基準モデルの幾何特徴群のうち、すべての第２の位置姿勢で配置した基準モデルが持つ幾何特徴が近傍範囲内に存在する幾何特徴群に共通構造の識別子「Ｔｒｕｅ」を付与する。次に、上記のステップＳ１５００における処理の詳細について、図６のフローチャートに従って説明する。
【００３３】
＜ステップＳ１５０１＞
推定部１５０は、ステップＳ１４００で取得した濃淡画像から画像特徴として２次元エッジを検出する。なお、２次元エッジとは、濃度勾配の極値となる点である。本実施形態では、Ｃａｎｎｙ法［Ｊ．  Ｃａｎｎｙ，  ”Ａ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ａｐｐｒｏａｃｈ  Ｔｏ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ，“  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  Ｖｏｌ．８，  ｎｏ．６，  ｐｐ．６７９−６９８，  １９８６．］により濃淡画像から２次元エッジを検出する。
【００３４】
＜ステップＳ１５０２＞
推定部１５０は、ステップＳ１４００で取得した濃淡画像からモデルフィッティングの初期値となる対象物体の概略位置姿勢を認識（算出）する。例えば、予め対象物体を様々な姿勢で撮影したテンプレート画像を作成しておき、濃淡画像に対して該テンプレート画像をテンプレートマッチングすることで、該濃淡画像における対象物体の概略位置姿勢を算出する。
【００３５】
＜ステップＳ１５０３＞
推定部１５０は、濃淡画像から検出した２次元エッジとステップＳ１４００で取得した距離画像が保持する３次元座標点に共通構造モデルが持つ幾何特徴を対応付ける。そして、対応部位の残差が最小になるように概略位置姿勢を更新する。ここで、２次元画像（濃淡画像）上の距離と３次元画像（距離画像）上の空間距離は尺度が異なるため、単純に対応部位の残差が最小になるように連立方程式を解くと、濃淡画像と距離画像から得られる計測情報の寄与率が偏ってしまう可能性がある。そのため、本実施形態では、［立野，小竹，内山，"ビンピッキングのための距離・濃淡画像を最ゆうに統合する高精度高安定なモデルフィッティング手法"，電子情報通信学会論文誌Ｄ， 情報・システム Ｊ９４−Ｄ（８）， １４１０−１４２２， ２０１１．］に示すような最尤推定に基づく最適化を行うことで、尺度を合わせた位置合わせを行う。なお、本実施形態では、上記のモデルフィッティングにおける位置姿勢の更新量がほぼ０である場合に収束したとみなしてステップＳ１５０４に進む。
【００３６】
＜ステップＳ１５０４＞
推定部１５０は、ステップＳ１２００で設定したそれぞれの照合用位置姿勢について、ステップＳ１５０３で更新した概略位置姿勢を該照合用位置姿勢で変換して位置姿勢候補を生成する。すなわち、概略位置姿勢を基準の位置姿勢として、裏表反転、上下反転、裏表上下反転した位置姿勢候補を得る。
【００３７】
＜ステップＳ１５０５＞
推定部１５０は、複数の位置姿勢候補で配置された基準モデルと、濃淡画像と、の一致度に基づいて姿勢を判別する。具体的には、濃淡画像から検出した２次元エッジと距離画像が保持する３次元座標点に基準モデルが持つ幾何特徴を対応付ける。そして、対応部位の３次元空間における距離の平均を、画像と基準モデルの一致度として算出し、複数の位置姿勢候補の中から最も一致度が高い位置姿勢候補を、対象物体の位置姿勢の推定結果として選択する。このとき、濃淡画像から検出した画像特徴と基準モデルが持つ幾何特徴の対応部位の距離を３次元空間における距離で算出する必要がある。そのため、カメラパラメータを用いて３次元空間における距離に換算して距離の平均を算出する。
【００３８】
このように、本実施形態によれば、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢の推定において、位置姿勢候補を各々位置合わせする必要がなくなるため、計算コストを低減することができる。
【００３９】
＜変形例＞
撮像装置５０は、上述した濃淡画像を撮影するカメラと距離画像を撮影する距離センサとを有することに限らない。例えば、撮像装置５０は、濃淡画像ではなくカラー画像を撮影するカメラを有しても良いし、２次元画像（濃淡画像やカラー画像）を撮影するカメラあるいは距離画像を撮影する距離センサのいずれか一方を有しても良い。
【００４０】
保持部１３０は、如何なるメモリ装置で構成しても良く、ハードディスクであっても良いし、ＣＤやＤＶＤ等の記憶媒体であっても良いし、ネットワーク上に存在するストレージであっても良い。
【００４１】
基準モデルおよび共通構造モデルは、点の集合や線分の集合で３次元形状を表現したが、これに限るものではない。例えば、基準モデルおよび共通構造モデルは、対象物体の面および稜線を一様にサンプリングした点群データであっても良いし、表面形状を多角形パッチの集合として表現したデータであっても良い。また、陰関数の組み合わせによりパラメトリックに基準モデルおよび共通構造モデルの３次元形状を表現しても良い。その他にも、基準モデルおよび共通構造モデルは、位置姿勢の推定に必要な幾何特徴を表現できれば如何なる表現形式であっても構わない。また、上述したデータ構造では、共通構造モデルは基準モデルの幾何特徴に識別子を付与して記述したが、共通構造とそれ以外の部位を区別可能であればこれに限るものではない。例えば、識別子の代わりに重みを付与しても良いし、基準モデルと共通構造モデルを別々のモデルとして保持しても良い。重みを付与する場合、例えば共通構造に大きい重みを付与することで、図６のステップＳ１５０３において共通構造部分がより重視されて位置合わせが行われるため、第１の実施形態と同等の効果が得られる。
【００４２】
照合用位置姿勢の設定方法は、上述した所定軸回りに姿勢を１８０度回転させる方法に限るものではなく、対象物体の形状に応じて類似した形状が観測される位置姿勢を設定する方法であれば如何なる方法であっても良い。例えば、対象物体の概形が三角柱である場合、対称軸回りに姿勢を６０度回転させる位置姿勢を設定しても良い。また、ユーザがＧＵＩ（グラフィカルユーザインタフェース）を操作して照合用位置姿勢を設定しても良いし、予め設定してある照合用位置姿勢を読み込んで設定しても良い。
【００４３】
生成部１２０における共通の幾何特徴の抽出方法は、上述したＩＣＰアルゴリズムによる方法に限るものではなく、基準モデル同士の幾何特徴の対応が取れれば如何なる方法を採用しても良い。例えば、照合用位置姿勢ごとに基準モデルをレンダリングし、レンダリング画像にテンプレートマッチングを行って、類似度が高い部位を抽出しても良い。また、ＳＨＯＴ（Ｓｉｇｎａｔｕｒｅ  ｏｆ  Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  ＯｒｉｅｎＴａｔｉｏｎｓ）特徴量のような高い表現力を持つ特徴記述方法を用いたマッチングでも良い。また、共通する幾何特徴か否かの判定方法は、近傍に幾何特徴が存在するか否かだけではなく、他の判定方法を組み合わせても良い。例えば、近傍範囲内にある幾何特徴との法線の一致度が閾値以上の部位を共通する幾何特徴としても良いし、幾何特徴が曲率を持つのであれば近傍範囲内にある幾何特徴の曲率の一致度が閾値以上の部位を共通する幾何特徴としても良い。その他にも、幾何特徴が類似しているか否かを判定する方法であれば如何なる方法を組み合わせても構わない。
【００４４】
推定部１５０における画像への３次元形状モデルの位置合わせは、上述したモデルフィッティングに限るものではなく、３次元形状モデルを用いて対象物体の位置合わせするのであれば如何なる方法を採用しても良い。例えば、機械学習による位置合わせでも良いし、撮像装置５０による画像に３次元形状モデルをレンダリングした２次元画像やデプスバッファから取得した奥行き情報を保持した画像をテンプレートマッチングして位置合わせしても良い。また、位置合わせする際には対象物体の面情報と稜線情報を併用する必要はなく、物体の面情報のみで照合しても良いし、稜線情報のみで位置合わせしても良い。
【００４５】
推定部１５０における一致度は、上述した対応部位の３次元空間における距離の平均に限るものではなく、画像と基準モデルの対応部位の距離や形状が近い場合に一致度を高く評価する指標であれば如何なるものであっても良い。例えば、対応付いた部位の残差の平均であっても良いし、法線や曲率の一致度を評価しても良い。また、撮像装置５０による画像と基準モデルのレンダリング画像の類似性を評価しても良い。
【００４６】
第１の実施形態では、第１の位置姿勢で配置した基準モデルに、第２の位置姿勢で配置した基準モデルを位置合わせすることで共通構造モデルを生成した。しかし、一旦生成した共通構造モデルの修正が必要な場合もある。例えば、新たに照合用位置姿勢を追加した場合には照合用位置姿勢間で共通する幾何特徴が変化する場合があるため、共通構造モデルの修正が必要になる。このような場合、第１の位置姿勢で配置する基準モデルを既に生成してある共通構造モデルに置き換えることで共通構造モデルを修正しても良い。
【００４７】
第１の実施形態では、推定部１５０において共通構造モデルによる位置合わせをしたあとに、基準モデルを用いて複数の位置姿勢候補の中から対象物体の位置姿勢を判別するが、基準モデルを用いた２段階目の位置合わせ処理を追加しても良い。例えば、ステップＳ１５０５の後に追加しても良いし、ステップＳ１５０４の後に追加しても良い。共通構造モデルによる位置合わせは、照合用位置姿勢のそれぞれについて画一的な位置合わせをするため、位置姿勢推定処理全体に必要な計算コストを低減できる。
【００４８】
［第２の実施形態］
本実施形態を含む以下の各実施形態や各変形例では、第１の実施形態との差分について説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。第１の実施形態では、照合用位置姿勢に基づいて配置した基準モデルの位置合わせを行い、照合用姿勢間で共通する幾何特徴群を抽出して共通構造モデルを生成する方法について説明した。本実施形態では、共通構造モデルを生成するために、対象物体が含まれる濃淡画像と距離画像を取得し、基準モデルをモデルフィッティングで位置合わせすることにより照合用位置姿勢間で共通する幾何特徴を抽出する。
【００４９】
（構成）
本実施形態に係る取得部１４０は、対応が既知である濃淡画像と距離画像とを撮像装置５０から取得する。生成部１２０は、設定部１１０により設定された照合用位置姿勢と、取得部１４０が取得した画像と、保持部１３０が保持する基準モデルと、に基づいて共通構造モデルを生成する。
【００５０】
本実施形態に係る処理全体の流れは基本的には第１の実施形態で説明した処理手順と同様であるため、以下では、図３を用いて第１の実施形態と相違する手順について説明する。
【００５１】
本実施形態では、ステップＳ１３００において、濃淡画像と距離画像に基準モデルを位置合わせすることで、照合用位置姿勢間で共通する幾何特徴を抽出する。そのため、共通構造モデルの生成処理の前に濃淡画像と距離画像を撮像装置５０から取得する処理が入る。次に、本実施形態に係る共通構造モデルの生成処理について、同処理のフローチャートを示す図７を用いて説明する。
【００５２】
＜ステップＳ２３０１〜Ｓ２３０４＞
ステップＳ２３０１〜Ｓ２３０４では、濃淡画像から検出した画像特徴と距離画像が保持する３次元座標点に基準モデルが持つ幾何特徴を対応付けて位置合わせする。ステップＳ２３０１、Ｓ２３０２、Ｓ２３０３、Ｓ２３０４はそれぞれ上記のステップＳ１５０１、Ｓ１５０２、Ｓ１５０４、Ｓ１５０３と基本的には同一の処理が行われるため、説明を省略する。
【００５３】
＜ステップＳ２３０５＞
ステップＳ２３０５では、生成部１２０は、画像特徴に対応付いた幾何特徴の近傍を探索して、照合用位置姿勢間で共通する幾何特徴を抽出し、共通構造を表す識別子「Ｔｒｕｅ」を付与する。具体的には、画像特徴に対応付いた幾何特徴の中から、未選択の幾何特徴を１つ選択する。ここで、画像特徴に対応付いた幾何特徴とは、位置姿勢候補に基づいて配置されたすべての基準モデルが持つ幾何特徴が対象となる。そして、選択した幾何特徴の近傍範囲内に、別の位置姿勢候補によって配置された基準モデルが持つ幾何特徴が存在すれば共通する幾何特徴と判定する。この処理を、画像特徴に対応付いたすべての幾何特徴について行う。なお、本実施形態では、位置姿勢候補によって配置された複数の基準モデルのうち、すべての基準モデルが持つ幾何特徴が近傍に存在する場合に、その幾何特徴に共通構造の識別子「Ｔｒｕｅ」を付与する。
【００５４】
本実施形態で生成した共通構造モデルを用いることで、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢推定において、位置姿勢候補を各々位置合わせする必要がなくなるため、計算コストを低減できる。
【００５５】
＜変形例＞
第２の実施形態では、選択した位置姿勢候補の幾何特徴の近傍範囲内に、別の位置姿勢候補の幾何特徴が存在するか否かを判定して共通する幾何特徴群を抽出したが、同一の画像特徴に対応付いた幾何特徴を共通する幾何特徴群としても良い。
【００５６】
第２の実施形態では、共通構造モデルを生成するために、対象物体が含まれる画像を撮影し、画像と基準モデルを対応付けて共通する幾何特徴群を抽出した。しかし、位置姿勢推定処理においても同等の対応付け情報が得られるため、この対応付け情報を流用して共通構造モデルを生成しても良い。
【００５７】
［第３の実施形態］
第１，２の実施形態では、照合用位置姿勢間で共通する幾何特徴を抽出して共通構造モデルを生成する方法について説明した。一方で、共通構造は照合用位置姿勢間で観測される支配的な構造物であることが多い。図１のコネクタ部品１１では、ピンや切り欠きを除いた直方体の部分が共通構造となるため、微細な構造物を除くことで第１，２の実施形態と同等の共通構造モデルが生成できる。そこで、本実施形態では、基準モデルを構成する面の面積を算出し、面積に基づいてその面が微細な構造を表す部位か否かを判定し、微細な構造とそれ以外の構造を区別する。そして、微細な構造を表す部位以外の幾何特徴を抽出して共通構造モデルを生成する。本実施形態に係る生成部１２０は、基準モデルから微細な構造を表す部位以外の幾何特徴を抽出して共通構造モデルを生成する。
【００５８】
次に、本実施形態における処理手順について説明する。ただし、本実施形態における全体処理手順は基本的には第１の実施形態と同様であるため、第１の実施形態と異なる処理を行うステップＳ１１００およびステップＳ１３００について説明する。なお、ここではステップＳ１１００およびステップＳ１３００はそれぞれステップＳ３１００およびステップＳ３３００として説明する。
【００５９】
＜ステップＳ３１００＞
ステップＳ３１００では、制御部１９０は情報処理装置１００を制御して該情報処理装置１００の初期化を行う。例えば制御部１９０による制御下で、第１の実施形態に係る初期化に加えて、生成部１２０のパラメータの設定を行う。本実施形態では、面積に微細な構造を表す部位か否かを判定して共通構造を抽出するため、この判定に用いる面積の閾値（例えば２００平方ｍｍ）を設定する。
【００６０】
＜ステップＳ３３００＞
ステップＳ３３００では、生成部１２０は、基準モデルを構成する面の面積に基づき、微細な構造を表す部位以外の幾何特徴を抽出して共通構造モデルを生成する。具体的には、まず基準モデルから未選択の面を選択する。次に、選択した面の面積を算出する。このとき、面が曲率を持つ場合、その曲率に対応する球体の表面積に基づいて曲率を考慮した面積を算出する。そして、算出した面積とステップＳ３１００で設定した閾値とを比較して、面積が閾値よりも大きければ該面に共通構造の識別子「Ｔｒｕｅ」を付与する。以上の処理を、基準モデルを構成するすべて面について処理する。
【００６１】
本実施形態で生成した共通構造モデルを用いることで、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢推定において、位置姿勢候補を各々位置合わせする必要がなくなるため、計算コストを低減できる。
【００６２】
＜変形例＞
生成部１２０における共通する幾何特徴の抽出方法は、面の面積の大きさによる判定に限るものではなく、微細な構造を表す部位以外の幾何特徴を抽出する方法であれば如何なる方法を採用しても良い。例えば、基準モデルを構成する構造物の体積を各々算出して体積が大きい部位の幾何特徴を抽出しても良いし、構造物の法線分布を解析して法線の分布にばらつきが少ない部位の幾何特徴を抽出しても良い。また、基準モデルの解像度を下げた低解像度モデルを生成し、基準モデルと低解像度モデルの差異から微細な構造を表す部位以外の幾何特徴を抽出しても良い。この場合、基準モデルが持つ幾何特徴と低解像度モデルが持つ幾何特徴とを対応付けて、低解像度モデルが持つ幾何特徴が近傍範囲内に存在する部位の基準モデルが持つ幾何特徴群を抽出する。このようにすることで、周波数を変化させることなく微細な構造を表す部位を除いた共通構造モデルを生成できる。ただし、低解像度モデルは、空間フィルタにより低解像度化したモデルでも良いし、ＬＯＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）による階層的な近似メッシュモデルであっても本質を損なうものではない。
【００６３】
［第４の実施形態］
本実施形態では、ユーザがＧＵＩを操作して、プリミティブ形状モデルフィッティングおよびユーザ操作による３次元形状モデルの編集によって共通構造モデルを生成する方法について説明する。
【００６４】
図８は本実施形態における共通構造モデル生成用のＧＵＩの一例を示す図である。本実施形態では、ＧＵＩは、情報処理装置１００に接続されている不図示の表示装置に表示され、情報処理装置１００に接続されている不図示のユーザインターフェース（キーボード、マウス、タッチパネルなど）をユーザが操作することで操作する。本実施形態では、ＧＵＩの表示制御やＧＵＩを操作したことで行われる処理は何れも、制御部１９０によって行われる。
【００６５】
ＧＵＩ５００は、実行パネル５１０、モデル編集パネル５２０、表示切替パネル５３０、パラメータ設定パネル５４０、モデル表示パネル５５０、プリミティブ形状選択パネル５６０、照合用位置姿勢確認パネル５７０を備える。
【００６６】
実行パネル５１０は、基準モデル読込みボタン、フィッティングボタン、共通構造モデル生成ボタン、共通構造モデル保存ボタンを有する。モデル編集パネル５２０は、部位追加ボタン、部位除去ボタンを有する。表示切替パネル５３０は、基準モデル表示チェックボックス、共通構造モデル表示チェックボックス、プリミティブ形状モデル表示チェックボックスを有する。パラメータ設定パネル５４０は、近傍範囲入力ボックスを有する。
【００６７】
モデル表示パネル５５０は、基準モデル１２、共通構造モデル１３、プリミティブ形状モデル１４、モデル座標軸２０を表示する。モデル表示パネル５５０に表示される各３次元形状モデルは、表示切替パネル５３０内のチェックボックスにより表示／非表示を切り替えられる。モデル表示パネル５５０は、ユーザのマウス操作等により、各３次元形状モデルの位置姿勢を変更して表示する。例えば、ユーザが操作したい３次元形状モデルをマウスの左ボタンで選択する。そして、マウスの左ボタンのドラッグで該３次元形状モデルの面内の位置を変更、マウスホイールで該３次元形状モデルの奥行き方向の位置を変更、マウスの右ボタンのドラッグで該３次元形状モデルの姿勢を変更する。また、左ボタンで各３次元形状モデルの幾何特徴を選択可能である。選択した幾何特徴は、後述の部位追加ボタンと部位除去ボタンを指示したときの処理対象となる。また、プリミティブ形状モデル１４が持つ幾何特徴をマウスの左ボタンでドラッグすると、もともとの立体形状を維持しながらプリミティブ形状モデル１４を変形できる。モデル座標軸２０は基準モデル１２の対称軸である。対称軸の特定方法は第１の実施形態にて説明した通りであるため、その説明は省略する。ユーザは共通構造モデル１３を生成するために、基準モデル１２の共通構造になりそうな部位に重なるようにプリミティブ形状モデル１４を変形させる。また、ユーザは基準モデル１２や生成した共通構造モデル１３の姿勢を変更することで各々の形状を確認する。
【００６８】
プリミティブ形状選択パネル５６０は、共通構造モデルを生成する際に用いるプリミティブ形状モデルのサムネイルを表示する。ユーザのマウス操作により、表示されているプリミティブ形状のサムネイルを選択すると、サムネイルに対応するプリミティブ形状モデルを保持部１３０から読み込み、モデル表示パネル５５０に表示されるプリミティブ形状モデル１４を変更する。ユーザは、モデル表示パネル５５０に表示された基準モデル１２の形状を確認し、共通構造になる部位と類似している形状のプリミティブ形状モデルを選択する。
【００６９】
照合用位置姿勢確認パネル５７０は、基準モデル１２を用いて設定した照合用位置姿勢をサムネイルで表示する。ユーザのマウス操作により、例えばマウスの左ボタンでサムネイルを選択すると、基準モデル１２および共通構造モデル１３を選択したサムネイルと同一の姿勢に変更する。また、照合用位置姿勢確認パネル５７０は照合用姿勢設定ボタンを有する。
【００７０】
以下では、上記の各ボタンについて説明する。基準モデル読込みボタンは、対象物体の基準モデルを読み込むためのボタンである。基準モデル読込みボタンが押下されると、ファイル選択用ダイアログが表示され、ユーザがユーザインターフェースを操作して所望の基準モデルのファイルを選択すると、ファイルに記述してある基準モデルを保持部１３０から読み込む。基準モデルを読み込むと、モデル表示パネル５５０に表示している基準モデル１２が新たに読み込んだ基準モデルに置き換わる。
【００７１】
フィッティングボタンは、基準モデル１２にプリミティブ形状モデル１４をフィッティングするためのボタンである。ユーザがユーザインターフェースを操作することでフィッティングボタンが押下されると、プリミティブ形状モデル１４を構成する各頂点座標が、近傍に存在する基準モデル１２を構成する頂点座標に置き換わり、プリミティブ形状モデル１４の形状が変化する。
【００７２】
共通構造モデル生成ボタンは、基準モデル１２が持つ幾何特徴群のうち、プリミティブ形状モデル１４が持つ幾何特徴が近傍に存在する部位の幾何特徴群を抽出することで共通構造モデル１３を生成するためのボタンである。その処理手順については、第１の実施形態に係るステップＳ１３０４と基本的には同一であるため、その説明は省略する。このとき、近傍範囲はパラメータ設定パネル５４０における近傍範囲入力ボックスに入力（指定）された値を用いる。
【００７３】
共通構造モデル保存ボタンは、一連の操作により生成された共通構造モデル１３を保持部１３０に保存するためのボタンである。ユーザがユーザインターフェースを操作することで共通構造モデル保存ボタンが押下されると、ファイル保存用ダイアログを表示し、ユーザから保存先のファイル名を受け取ると、共通構造モデル１３と設定した照合用位置姿勢を保持部１３０に保存する。共通構造モデル１３の保存方法は第１の実施形態と同一であるため、その説明を省略する。
【００７４】
部位追加ボタンは、モデル表示パネル５５０で選択した基準モデル１２の幾何特徴を共通構造モデル１３に追加するためのボタンである。部位除去ボタンは、モデル表示パネル５５０で選択した共通構造モデル１３の幾何特徴を除去するためのボタンである。
【００７５】
基準モデル表示チェックボックス、共通構造モデル表示チェックボックス、プリミティブ形状モデル表示チェックボックスは、各々の対応する３次元形状モデルのモデル表示パネル５５０における表示／非表示を切り替えるためのチェックボックスである。
【００７６】
近傍範囲入力ボックスは、共通構造モデル生成における基準モデルとプリミティブ形状モデルの重なる幾何特徴を抽出する際の近傍範囲の閾値を受け付けるための入力ボックスである。ユーザはユーザインターフェースを操作してこの閾値を近傍範囲入力ボックスに入力する。
【００７７】
照合用姿勢設定ボタンは、位置姿勢推定時に姿勢判別する類似した形状が観測される位置姿勢を設定するためのボタンである。ユーザがユーザインターフェースを操作することで照合用姿勢設定ボタンが押下されると、図９に例示する別ウインドウのＧＵＩ（照合用位置姿勢編集用のＧＵＩ）が表示され、ユーザ操作により複数の照合用位置姿勢が設定可能である。
【００７８】
図９の照合用位置姿勢編集用のＧＵＩ６００は、モデル表示パネル６１０、位置姿勢編集パネル６２０を有する。また、ＧＵＩ６００は、位置姿勢登録ボタン、位置姿勢削除ボタン、回転角度入力ボックス、回転姿勢登録ボタン、を有する。このＧＵＩ６００で設定した照合用位置姿勢は、共通構造モデル生成用のＧＵＩ５００にも反映される。
【００７９】
モデル表示パネル６１０は、基準モデル１２、基準モデル（姿勢設定用）１４、モデル座標軸２０を表示する。ユーザによるマウス操作は基本的には前述のモデル表示パネル５５０に対するものと同一である。また、ユーザのマウス操作によりモデル座標軸２０の各軸を選択可能である。選択した軸は後述の回転姿勢登録ボタンを指示したときの処理対象となる。ユーザは、照合用位置姿勢を設定するために、基準モデル１２の形状を見ながら基準モデル（姿勢設定用）１４の位置姿勢を変更させる。
【００８０】
位置姿勢編集パネル６２０は、ユーザが登録した位置姿勢を表示する。各セルには、ユーザが入力した値が表示され、ユーザはユーザインターフェースを操作して該セルに表示されている値を編集することができる。また、ユーザのマウス操作により登録番号（１列目）が選択されると、基準モデル（姿勢設定用）１４の位置姿勢を該選択した登録番号に対応する位置姿勢に変換する。
【００８１】
位置姿勢登録ボタンは、基準モデル（姿勢設定用）１４の位置姿勢を登録するためのボタンである。ユーザがユーザインターフェースを操作することで位置姿勢登録ボタンが押下されると、該押下の時点での基準モデル（姿勢設定用）１４の位置姿勢を保持する。また、位置姿勢編集パネル６２０に位置姿勢を追加する。
【００８２】
位置姿勢削除ボタンは、位置姿勢編集パネル６２０で選択した位置姿勢を削除するためのボタンである。回転角度入力ボックスは、所定軸周りに回転した姿勢を一括設定する際の回転角度の入力を、ユーザがユーザインターフェースを操作して入力するための入力ボックスである。
【００８３】
回転姿勢登録ボタン５０６は、回転角度入力ボックスに入力された値に基づいて、モデル表示パネル６１０で選択した軸周りに基準モデル（姿勢設定用）１４を回転させた複数の位置姿勢を保持するためのボタンである。また、位置姿勢編集パネル６２０に複数の位置姿勢を一括で追加する。
【００８４】
本実施形態により、ユーザがＧＵＩを操作することで照合用位置姿勢を設定したり、共通構造モデルを生成したりすることができる。本実施形態で生成した共通構造モデルを用いることで、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢において、位置姿勢候補を各々位置合わせする必要が無くなるため、計算コストを低減できる。
【００８５】
＜変形例＞
照合用位置姿勢として、プリミティブ形状モデルごとに決められた照合用位置姿勢を設定しても良い。例えば、プリミティブ形状モデルとして四角柱を選択した場合、対称軸回りに９０度ずつ回転させる位置姿勢を照合用位置姿勢として設定しても良いし、三角柱を選択した場合、対称軸回りに６０度ずつ回転させる位置姿勢を照合用位置姿勢として設定しても良い。また、プリミティブ形状モデルを変形させた場合に、その形状に応じて決められた照合用位置姿勢を調整したものを照合用位置姿勢として設定しても良い。
【００８６】
第４の実施形態では、プリミティブ形状モデルのフィッティング方法で、プリミティブ形状モデルの各頂点座標を修正し、形状を変形してフィッティングする方法について説明した。しかし、プリミティブ形状モデルのフィッティング方法はこの限りでない。例えば、プリミティブ形状モデルをユーザが変形した形状のまま基準モデルに位置合わせしても良いし、予めテンプレートとして用意してある大きさが異なるプリミティブ形状モデルを読み込んで位置姿勢を合わせても良い。その他、基準モデルにプリミティブ形状モデルを合わせ込む方法であれば如何なる方法を採用しても良い。
【００８７】
［第５の実施形態］
上記の各実施形態や変形例において説明した情報処理装置１００の適用事例としては、該情報処理装置１００を産業用ロボットアームの手先部に設置し、対象物体の位置姿勢を推定して、対象物体を把持する目的に利用することが挙げられる。
【００８８】
図１０は、対象物体１９を把持するロボットシステムの構成例を示す図である。ロボット７０の手先部には撮像装置５０が設置されており、該撮像装置５０は、対象物体１９の濃淡画像および距離画像を撮像し、該撮像した濃淡画像および距離画像を情報処理装置１００に対して出力する。情報処理装置１００（推定部１５０）は、撮像装置５０から入力される濃淡画像と距離画像、保持部１３０から取得した共通構造モデルおよび基準モデル、を用いて対象物体１９の位置姿勢を推定し、該推定した位置姿勢をロボットコントローラ８０に出力する。ロボットコントローラ８０は、情報処理装置１００（推定部１５０）から出力された位置姿勢に基づきロボット７０の手先を移動させて、該位置姿勢の対象物体１９の把持や組み付けを行う。
【００８９】
本実施形態における情報処理装置１００の処理手順は、第１の実施形態にて説明した処理手順と同一であるため、その説明は省略する。ただし、ロボット７０の手先と撮像装置５０との間の相対位置姿勢は、例えばＨｏｒａｕｄらの方法［Ｒ．Ｈｏｒａｕｄ  ａｎｄ  Ｆ．Ｄｏｒｎａｉｋａ，“Ｈａｎｄ−Ｅｙｅ  Ｃａｌｉｂｒａｔｉｏｎ，”  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｒｏｂｏｔｉｃｓ  Ｒｅｓｅａｒｃｈ，ｖｏｌ．１４，ｎｏ．３，ｐｐ．１９５−２１０，１９９５．］で予めキャリブレーションされているものとする。
【００９０】
本実施形態に係る情報処理装置１００により、ロボットシステムは、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢の推定の計算コストを低減し、対象物体を把持することが可能となる。
【００９１】
［第６の実施形態］
以上の各実施形態では、共通構造モデルの生成において基準モデルが持つ幾何特徴が照合用位置姿勢間で共通する幾何特徴か否かを判定するために予め設定してある固定の近傍範囲や面の面積などの閾値を用いていた。しかしながら、画像の解像度が異なると、共通構造モデルを用いた照合時に必要な幾何特徴が変化する場合がある。例えば、奥行き情報を保持する距離画像が高解像度の場合、対象物体の表面を計測した３次元座標の精度が高く、また小さな段差などが検出されやすい。このような小さな段差を表す部位の幾何特徴が照合用位置姿勢間で共通する幾何特徴でない場合、近傍範囲が適切に設定されていないと、この部位の幾何特徴が共通構造モデルに含まれることがある。一方で、距離画像が低解像度の場合、対象物体の表面を計測した３次元座標の精度が低いため、３次元座標の精度誤差を許容するように近傍範囲を広く設定して共通構造モデルを生成する必要がある。
【００９２】
本実施形態では、画像（濃淡画像もしくは距離画像）が高解像度の場合は、より精密な共通構造モデルを生成するように近傍範囲を狭く設定し、画像が低解像度の場合は、距離画像が保持する３次元座標の精度誤差を許容するように近傍範囲を広く設定する。高解像度とは、例えば、閾値以上の解像度を指し、低解像度とは閾値未満の解像度を指す。
【００９３】
本実施形態に係る情報処理装置は、図２の構成にパラメータ決定部を追加した構成を有する。このパラメータ決定部は、撮像装置５０から取得した画像の解像度に応じて、生成部１２０で用いる閾値を決定する。決定した閾値は生成部１２０に入力される。
【００９４】
生成部１２０は、設定部１１０から取得した照合用位置姿勢と保持部１３０から取得した基準モデルと基づいて第１の実施形態と同様にして共通構造モデルを生成するが、その際、近傍範囲を判定する際にはパラメータ決定部から入力された閾値を用いる。
【００９５】
本実施形態に係る処理全体の流れは基本的には第１の実施形態で説明した処理手順と同様であるため、図３を用いて第１の実施形態と異なる手順について説明する。本実施形態では、撮像装置５０から取得した解像度に応じて、共通構造モデル生成処理（ステップＳ１３００）で用いる近傍範囲を決定するため、共通構造モデル生成処理の前にパラメータ決定処理が入る。共通構造モデル生成処理におけるステップＳ１３０４の近傍範囲判定には上述の通りパラメータ決定部から取得した閾値を用いる。具体的には、初期化処理（ステップＳ１１００）で撮像装置５０から取得した画像の解像度をｘ、画像の解像度と近傍範囲を調整する係数をａとすると、近傍範囲ｋを以下の式により算出する。
【００９６】
ｋ＝ａ／ｘ
このように、本実施形態では、画像の解像度に応じて共通構造モデルの精度を変更することで、画像の解像度に合わせた位置合わせを行うことができる。なお、撮像装置５０から取得した画像の解像度に基づいて近傍範囲ｋを算出するための上記の式は一例であり、各種の変形例が考えられる。
【００９７】
＜変形例＞
パラメータ決定部で決定する閾値は、上記の近傍範囲に限るものではない。例えば、共通する幾何特徴か否かの判定に、幾何特徴の法線や曲率の一致度を組み合わせる場合に、それらの閾値を解像度に応じて決定しても良い。この場合、例えば画像が高解像度のときには、より似た形状を表す幾何特徴を抽出するために一致度の閾値を厳しく設定し、そうでない場合は閾値を緩く設定するような算出式を設計する。
【００９８】
［第７の実施形態］
以上の各実施形態では、画像中の対象物体に対して共通構造モデルで位置合わせして概略位置姿勢を算出し、そのあとに基準モデルを用いた照合用位置姿勢の中から姿勢を判別して推定位置姿勢を算出した。しかしながら、画像が高解像度である場合、類似した形状が観測される姿勢を有する部品であっても、誤った位置姿勢を推定する確率が低くなる。
【００９９】
そこで本実施形態では、画像の解像度に応じて、照合用位置姿勢に基づいた姿勢判別を必要とするか否かを判定し、その判定結果に基づいて位置姿勢推定時の処理構成を切り替える。具体的には、画像が低解像度である場合に位置姿勢推定処理で照合用位置姿勢に基づいた姿勢判別を行い、画像が高解像度である場合には姿勢判別を行わないようにする。
【０１００】
本実施形態に係る情報処理装置は、図２の構成にモード判定部を追加した構成を有する。このモード判定部は、撮像装置５０から取得した画像の解像度に応じて、推定部１５０で照合用位置姿勢に基づいた姿勢判別を必要とするか否かを判定するモード判定処理を行う。判定した内容は推定部１５０に入力する。
【０１０１】
本実施形態に係る処理全体の流れは基本的には第１の実施形態で説明した処理手順と同様であるため、図３を用いて第１の実施形態と異なる手順を説明する。本実施形態では、撮像装置５０から取得した解像度に応じて位置姿勢推定処理（ステップＳ１５００）の処理の構成を切り替えるため、位置姿勢推定処理の前にモード判定処理が入る。位置姿勢推定処理は、モード判定処理により照合用位置姿勢に基づいた姿勢判定が必要であることが決定した場合には、第１の実施形態と同一の位置姿勢推定処理をする。一方、姿勢判定が必要ないと決定した場合には、基準モデルを用いてステップＳ１５０１〜Ｓ１５０３のモデルフィッティング処理を行い、位置姿勢推定処理を終了する。
【０１０２】
このように、本実施形態では画像の解像度に応じて照合方法を切り替えることで、類似した形状の位置姿勢を有する対象物体の位置姿勢の推定における計算コストを低減できる。
【０１０３】
［第８の実施形態］
図２に示した情報処理装置１００の各機能部はハードウェアで実装しても良いし、保持部１３０を除く各機能部をソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、このコンピュータプログラムを実行可能なコンピュータ装置は情報処理装置１００に適用可能である。情報処理装置１００に適用可能なコンピュータ装置のハードウェア構成例について、図１１のブロック図を用いて説明する。
【０１０４】
ＣＰＵ１１０１は、ＲＡＭ１１０２やＲＯＭ１１０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ１１０１は、コンピュータ装置全体の動作制御を行うと共に、情報処理装置１００が行うものとして上述した各処理を実行若しくは制御する。
【０１０５】
ＲＡＭ１１０２は、ＲＯＭ１１０３や外部記憶装置１１０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ１１０７を介して外部（例えば撮像装置５０）から受信したデータ、を格納するためのエリアを有する。更にＲＡＭ１１０２は、ＣＰＵ１１０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１１０２は、各種のエリアを適宜提供することができる。ＲＯＭ１１０３には、コンピュータ装置の設定データや起動プログラムなどの書換不要の情報が格納されている。
【０１０６】
操作部１１０４は、マウス、キーボード、タッチパネルなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をＣＰＵ１１０１に対して入力することができる。例えば、ユーザは操作部１１０４を操作して上記のＧＵＩに対する操作入力を行う。
【０１０７】
表示部１１０５は、液晶画面やタッチパネルにより構成されており、ＣＰＵ１１０１による処理結果を画像や文字などでもって表示することができる。例えば、上記のＧＵＩは表示部１１０５に表示される。
【０１０８】
外部記憶装置１１０６は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置１１０６には、ＯＳ（オペレーティングシステム）や、情報処理装置１００が行うものとして上述した各処理をＣＰＵ１１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置１１０６に保存されているコンピュータプログラムには、図２に示した情報処理装置１００の機能部において保持部１３０を除く各機能部に対応する機能をＣＰＵ１１０１に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置１１０６に保存されているデータには、上記の説明において既知の情報として取り扱ったもの（閾値など）が含まれる。また外部記憶装置１１０６には、保持部１３０に格納されているものとして上述した各種の情報を保存させても良い。
【０１０９】
外部記憶装置１１０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１１０１による制御に従って適宜ＲＡＭ１１０２にロードされ、ＣＰＵ１１０１による処理対象となる。
【０１１０】
Ｉ／Ｆ１１０７は、外部装置との間のデータ通信を行うためのインターフェースとして機能するものであり、例えばコンピュータ装置はＩ／Ｆ１１０７を介して撮像装置５０との間のデータ通信を行う。
【０１１１】
ＣＰＵ１１０１、ＲＡＭ１１０２、ＲＯＭ１１０３、操作部１１０４、表示部１１０５、外部記憶装置１１０６、Ｉ／Ｆ１１０７は何れもバス１１０８に接続されている。なお、図１１に示した構成は情報処理装置１００に適用可能なコンピュータ装置のハードウェア構成の一例に過ぎない。
【０１１２】
なお、以上説明した各実施形態や各変形例の一部若しくは全部を適宜組み合わせて使用しても良い。また、以上説明した各実施形態や各変形例の一部若しくは全部を選択的に使用しても構わない。
【０１１３】
＜効果のまとめ＞
第１〜３の実施形態では、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢推定において、各実施形態で生成した共通構造モデルを用いることで、複数の位置姿勢候補を各々位置合わせする必要がなくなるため、計算コストを低減できる。
【０１１４】
第４の実施形態では、ユーザはＧＵＩで操作することで照合用位置姿勢を設定したり、共通構造モデルを生成したりすることができる。第５の実施形態では、ロボットシステムは上記の情報処理装置により、類似した形状が観測される位置姿勢を有する対象物体の位置姿勢を推定し、ロボットは対象物体を把持することが可能となる。
【０１１５】
第６の実施形態では、画像の解像度に応じて共通構造モデルの精度を変更することで、画像の解像度に合わせた位置合わせが行える。第７の実施形態では、画像の解像度に応じて照合方法を切り替えることで、類似した形状の位置姿勢を有する対象物体の位置姿勢推定における計算コストを低減できる。
【０１１６】
＜定義のまとめ＞
上記の設定部１１０は、対象物体の類似した形状が観測される位置姿勢を照合用位置姿勢として設定するものであれば何でも良い。例えば、予め設定してある照合用位置姿勢を設定しても良いし、基準モデルの対称軸を特定して対称軸回りに姿勢を回転するような位置姿勢を設定しても良い。また、基準モデルと対応付ける３次元形状モデル（例えばプリミティブ形状モデルなど）に決められている照合用位置姿勢を設定しても良い。また、ユーザがＧＵＩに表示される基準モデルの姿勢を変化させて形状を確認しながら設定しても良い。
【０１１７】
生成部１２０は、照合用位置姿勢間で共通する幾何特徴群を抽出するものであれば何でも良い。例えば、第１の位置姿勢に配置した基準モデルに、照合用位置姿勢に基づいて生成した複数の第２の位置姿勢に配置した基準モデルを位置合わせする。そして、第１の位置姿勢に配置した基準モデルが持つ幾何特徴群のうち、第２の位置姿勢に配置した基準モデルの幾何特徴群が近傍に存在する幾何特徴群を抽出しても良い。また、照合用位置姿勢に基づいて生成した位置姿勢候補に配置された基準モデルを、対象物体が含まれる画像に位置合わせして、画像に対応付けた幾何特徴群のうち、近傍範囲内に異なる位置姿勢候補の幾何特徴群が存在する幾何特徴群を抽出しても良い。また、基準モデルから微細な構造を表す部位以外の幾何特徴群を抽出しても良い。また、ユーザがＧＵＩに表示される基準モデルの姿勢を変化させて形状を確認しながら、照合用位置姿勢間で共通する幾何特徴群をマウスなどで選択して抽出しても良い。
【０１１８】
保持部１３０は、基準モデルおよび共通構造モデルを保持する記憶装置であれば何でも良い。例えば、ハードディスクでも良いし、ＣＤやＤＶＤでも良いし、ネットワーク上に存在するストレージであっても良い。また、基準モデルおよび共通構造モデルの形状の表現方法は、対象物体の３次元形状を表現するものであれば何でも良い。例えば、点と点の関係により線分や面を構成して表現したものでも良いし、表面および稜線を一様にサンプリングした点群データであっても良い。あるいは、表面形状を多角形パッチの集合として表現したポリゴンデータでも良いし、陰関数の組み合わせによりパラメトリックに表現したものでも良い。また、共通構造モデルを保持するデータ構造は、共通構造とそれ以外の部位を区別可能であれば何でも良い。例えば、基準モデルが持つ幾何特徴に識別子や重みを付与しても良いし、基準モデルと共通構造モデルを別々のデータとして保持しても良い。
【０１１９】
取得部１４０は、撮像装置が撮影した対象物体が含まれる画像を情報処理装置に入力するものであれば何でも良い。入力する画像の形態は、例えば濃淡画像でも良いし、カラー画像でも良いし、各画素が奥行きの情報を持つ距離画像でも良い。また、これらの画像のうち、複数種類を入力しても良い。
【０１２０】
推定部１５０は、対象物体が含まれる画像に共通構造モデルと基準モデルを照合して対象物体の位置姿勢を推定するものであれば何でも良い。例えば、画像に共通構造モデルを位置合わせして、そのあとに基準モデルを用いて照合用位置姿勢の中から対象物体の姿勢を判別しても良い。また、前述の姿勢判別をしたあとに基準モデルで位置合わせしても良い。あるいは、画像に共通構造モデルを位置合わせしたあとに、画像に基準モデルを位置合わせしてから姿勢判別をしても良い。また、位置合わせ方法は、３次元形状モデルを用いて画像に含まれる対象物体の位置姿勢を推定する方法であれば何でも良い。例えば、モデルフィッティングでも良いし、テンプレートマッチングでも良いし、機械学習による推定でも良い。
【０１２１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２２】
５０：撮像装置  １１０：設定部  １２０：生成部  １３０：保持部  １４０：取得部  １５０：推定部  １９０：制御部
【図１】
2020027439.tif 000003
【図２】
2020027439.tif 000004
【図３】
2020027439.tif 000005
【図４】
2020027439.tif 000006
【図５】
2020027439.tif 000007
【図６】
2020027439.tif 000008
【図７】
2020027439.tif 000009
【図８】
2020027439.tif 000010
【図９】
2020027439.tif 000011
【図１０】
2020027439.tif 000012
【図１１】
2020027439.tif 000013