(57)【要約】【課題】  三次元的に任意の位置姿勢をとりうる物体の位置姿勢を高精度かつ高速に推定するための技術を提供する。【解決手段】  物体の位置姿勢を推定する推定装置であって、位置姿勢を推定する対象の対象物体を撮像する撮像手段であって、当該撮像手段から該対象物体までの距離情報を表す距離画像を生成する撮像手段と、前記距離画像を解析して前記対象物体の概略の位置姿勢を推定する概略推定手段と、予め定められた位置姿勢の範囲で物体の詳細な位置姿勢を推定する複数の識別手段と、前記概略推定手段が推定した前記概略の位置姿勢に基づいて、前記複数の識別手段の優先順位を決定する決定手段と、前記決定手段が決定した優先順位の順に、前記複数の識別手段を使用して前記対象物体の詳細な位置姿勢を推定する詳細推定手段とを備える。【選択図】  図２
2011133273.tif 000002
【特許請求の範囲】
【請求項１】
物体の位置姿勢を推定する推定装置であって、
位置姿勢を推定する対象の対象物体を撮像する撮像手段であって、当該撮像手段から該対象物体までの距離情報を表す距離画像を生成する撮像手段と、
前記距離画像を解析して前記対象物体の概略の位置姿勢を推定する概略推定手段と、
予め定められた位置姿勢の範囲で物体の詳細な位置姿勢を推定する複数の識別手段と、
前記概略推定手段が推定した前記概略の位置姿勢に基づいて、前記複数の識別手段の優先順位を決定する決定手段と、
前記決定手段が決定した優先順位の順に、前記複数の識別手段を使用して前記対象物体の詳細な位置姿勢を推定する詳細推定手段と
を備えることを特徴とする推定装置。
【請求項２】
前記概略推定手段は、
前記距離画像に表された前記距離情報から前記対象物体の概略の位置を推定する概略位置推定手段と、
前記距離画像により示される前記対象物体上の２点の位置関係と、該対象物体の表面の法線ベクトルの平均値とを用いて、前記対象物体の概略の姿勢を推定する概略姿勢推定手段と
を備えることを特徴とする請求項１に記載の推定装置。
【請求項３】
前記概略姿勢推定手段は、
前記２点の位置関係から、前記対象物体の第１の回転方向に係る姿勢を推定し、
前記法線ベクトルの平均値から、前記対象物体の前記第１の回転方向に直交する第２の回転方向に係る姿勢を推定する
ことを特徴とする請求項２に記載の推定装置。
【請求項４】
前記決定手段は、
前記概略推定手段が推定した前記概略の位置姿勢について、詳細な位置姿勢を推定する前記識別手段の尤度を計算し、
前記計算した前記尤度から前記優先順位を決定する
ことを特徴とする請求項１から３のいずれか１項に記載の推定装置。
【請求項５】
前記距離画像に表された距離情報と、予め登録された前記対象物体の概略サイズとに基づいて、前記対象物体の前記距離画像上での概略サイズを計算し、当該計算された概略サイズに合わせて、位置姿勢を詳細に推定する範囲を示す探索ウィンドウを前記距離画像上に設定する設定手段をさらに備え、
前記識別手段は前記探索ウィンドウの範囲内で、前記対象物体の詳細な位置姿勢を推定する
ことを特徴とする請求項１から４のいずれか１項に記載の推定装置。
【請求項６】
前記設定手段は、
前記距離画像において、前記対象物体が存在し得ない距離を示す領域と、距離の変動が予め定められた値よりも大きい領域とを、前記設定した探索ウィンドウから除去して、該探索ウィンドウを更新する更新手段を備えることを特徴とする請求項５に記載の推定装置。
【請求項７】
前記予め登録された対象物体の概略サイズは、前記対象物体を包接する所定の立体形状上の予め定められた２点間の距離で示されることを特徴とする請求項５または６に記載の推定装置。
【請求項８】
前記複数の識別手段は、前記対象物体の姿勢に対応する３次元空間上の角度別に設けられることを特徴とする請求項１から７のいずれか１項に記載の推定装置。
【請求項９】
予め定められた位置姿勢の範囲で物体の詳細な位置姿勢を推定する複数の識別手段を備えた、物体の位置姿勢を推定する推定装置の制御方法であって、
撮像手段が、位置姿勢を推定する対象の対象物体を撮像する撮像工程であって、前記撮像手段から該対象物体までの距離情報を表す距離画像を生成する撮像工程と、
概略推定手段が、前記距離画像を解析して前記対象物体の概略の位置姿勢を推定する概略推定工程と、
決定手段が、前記概略推定工程において推定された前記概略の位置姿勢に基づいて、前記複数の識別手段の優先順位を決定する決定工程と、
詳細推定手段が、前記決定工程において決定された優先順位の順に、前記複数の識別手段を使用して前記対象物体の詳細な位置姿勢を推定する詳細推定工程と
を有することを特徴とする推定装置の制御方法。
【請求項１０】
コンピュータを請求項１から８のいずれか１項に記載の推定装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の位置姿勢を推定する推定装置及びその制御方法、プログラムに関し、特に、山積み状態にある物体のように、三次元的に任意の位置姿勢をとりうる物体の位置姿勢を高精度かつ高速に推定するための技術に関する。
【背景技術】
【０００２】
ロボットが部品を把持する手法として、パーツフィーダによって部品を整列させることが知られている。しかし、この手法では部品夫々について専用のパーツフィーダが必要となり、部品種が変わるごとにパーツフィーダを作り直す必要がある。これを解決するために、部品の中から任意の部品の位置と姿勢を推定することで、任意の姿勢の部品を検出する手法が提案されている。
【０００３】
特許文献１には、任意の部品までの距離データから当該部品を形成する平面を近似する領域を抽出し、その平面に距離データを投影して距離画像を作成し、予め登録してある基準距離画像と比較して、パターンマッチングを行う構成が記載されている。この構成によれば、対象部品の平面を近似する領域から、その平面を基準とした距離画像を作成することで、少ない計算量で高速に部品の位置姿勢を認識することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８-２１７５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、山積み状態にある部品の中からいずれか１つの部品の位置姿勢を認識する場合、全ての角度別に用意された識別器を用いてパターンマッチングを行うと、画像のマッチングに時間がかかるという課題がある。
【０００６】
特許文献１の構成では、この課題を解決するために、パターンマッチング時に使用する画像として、距離画像を平面で近似した画像を使用することで計算量を減らしている。しかし、この構成によると１回のパターンマッチングにかかる計算量は少なくすることはできるが、全ての角度ごとに用意した識別器を逐次的に用いなければならないため、パターンマッチング回数を減らすことはできない。また、近似画像を用いているため、パターンマッチングの精度が落ち、詳細な位置姿勢推定ができない可能性がある。
【０００７】
本発明は上記課題に鑑みなされたものであり、山積み状態にある物体のように、三次元的に任意の位置姿勢をとりうる物体の位置姿勢を高精度かつ高速に推定するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明による推定装置は以下の構成を備える。即ち、
物体の位置姿勢を推定する推定装置であって、
位置姿勢を推定する対象の対象物体を撮像する撮像手段であって、当該撮像手段から該対象物体までの距離情報を表す距離画像を生成する撮像手段と、
前記距離画像を解析して前記対象物体の概略の位置姿勢を推定する概略推定手段と、
予め定められた位置姿勢の範囲で物体の詳細な位置姿勢を推定する複数の識別手段と、
前記概略推定手段が推定した前記概略の位置姿勢に基づいて、前記複数の識別手段の優先順位を決定する決定手段と、
前記決定手段が決定した優先順位の順に、前記複数の識別手段を使用して前記対象物体の詳細な位置姿勢を推定する詳細推定手段と
を備える。
【発明の効果】
【０００９】
本発明によれば、三次元的に任意の位置姿勢をとりうる物体の位置姿勢を高精度かつ高速に推定するための技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】推定装置による撮像の様子を示した全体イメージ図。
【図２】推定装置の機能ブロック図。
【図３】対象部品の位置姿勢を推定する処理の流れを示すフローチャート。
【図４】対象部品を包接する立体形状の例を示す図。
【図５】角度別識別器の一覧表の例を示す図。
【図６】対象部品の距離画像上での概略サイズを計算する様子を示す図。
【図７】距離画像において探索ウィンドウを設定する様子を示す図。
【図８】対象部品の撮像カメラからの距離値の変化を模式的に示す図。
【図９】対象部品の鉛直回転方向に係る概略の姿勢を推定する様子を示す図。
【図１０】対象部品の水平回転方向に係る概略の姿勢を推定する様子を示す図。
【図１１】優先順位が付加された角度別識別器の一覧表の例を示す図。
【図１２】推定装置の機能ブロック図。
【図１３】対象部品の位置姿勢を推定する処理の流れを示すフローチャート。
【図１４】推定装置の機能ブロック図。
【図１５】位置姿勢識別処理の流れを示すフローチャート。
【図１６】情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜＜実施形態１＞＞
（位置姿勢推定の概要）
図１は本実施形態に係る山積み部品位置姿勢推定装置（以下、推定装置）による撮像の様子を示した全体イメージ図である。撮像装置１００は位置姿勢推定対象となる山積み状態の複数の部品１１０を撮像するカメラなどの装置である。本実施形態では、認識対象となる山積み状態の部品群は全て同一の部品であり、ランダムに積み重ねられている。位置姿勢推定時には、推定装置が備える情報処理装置１５０が撮像装置１００から入力された画像情報を使って山積み状態の部品の中から任意の部品の位置姿勢を認識する。任意の部品の位置姿勢推定結果は、例えば、部品の取り出し作業を行うロボットの把持作業に利用することができる。推定装置は、図１に示すような環境で物体の位置姿勢を推定する。
【００１３】
（情報処理装置のハードウェア構成）
図１６は、本実施形態に係る推定装置を構成する情報処理装置１５０のハードウェア構成例を模式的に示したブロック図である。本実施形態に係る情報処理装置１５０は、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）、携帯情報端末（ＰＤＡ）等で実現される。
【００１４】
図１６において、９９０はＣＰＵである。ＣＰＵ９９０は、後述するハードディスク装置９９５に格納されているアプリケーションプログラム、オペレーティングシステム（ＯＳ）や制御プログラム等を実行し、ＲＡＭ９９２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１５】
９９１はＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、基本処理において使用する各種データを記憶する。９９２は各種データを一時記憶するＲＡＭであり、ＣＰＵ９９０の主メモリ、ワークエリア等として機能する。
【００１６】
９９３は記録媒体へのアクセスを実現する外部記憶ドライブであり、メディア（記録媒体）９９４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア９９４には、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が含まれる。
【００１７】
９９５は外部記憶装置であり、本実施形態では大容量メモリとして機能するハードディスク装置（以下、ＨＤと呼ぶ）を用いている。ＨＤ９９５には、アプリケーションプログラム、ＯＳ、制御プログラム、関連プログラム等が格納される。
【００１８】
９９６は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置９９６を用いて、ユーザは、本実施形態に係る情報処理装置１５０に対して、装置を制御するコマンド等を入力指示する。９９７はディスプレイであり、指示入力装置９９６から入力されたコマンドや、それに対する情報処理装置１５０の応答出力等を表示したりするものである。
【００１９】
９９９はシステムバスであり、情報処理装置１５０内のデータの流れを司るものである。９９８はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ９９８を介して外部装置とのデータのやり取りを行う。
【００２０】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。後述する各動作は、ＲＯＭ９９１等のコンピュータ読み取り可能な記憶媒体に格納されたプログラムをＣＰＵ９９０が実行することにより実行される。
【００２１】
（推定装置の機能構成）
図２は本実施形態に係る推定装置の機能構成を示しており、専ら情報処理装置１５０により図２に示す各機能を実現することができる。図２に示した各構成要素の概要について説明する。
【００２２】
画像データ入力部２００はカメラなどの撮像装置１００から画像を取り込む構成要素である。上述のように、撮像装置１００は、位置姿勢を推定する対象の対象部品（対象物体）を撮像する。距離画像生成部２１０は画像データ入力部２００から取り込んだ画像に示される部品について、撮像装置１００から当該部品までの距離情報を表す距離画像を生成する構成要素である。ラフ位置推定部２２０は、３次元空間内で位置姿勢を推定する対象部品の存在位置を、ある代表点を基準として推定する構成要素である。ラフ位置推定部２２０により、距離画像に表された距離情報から対象物体の概略の位置を推定する概略位置推定処理が行われる。
【００２３】
探索ウィンドウ設定部２３０は、部品の大体の大きさを推定して、位置姿勢推定処理を行うために必要な検出枠（ウィンドウ）の設定をする構成要素である。ラフ姿勢推定部２４０は３次元空間内で位置姿勢を推定する対象部品がとっている大まかな姿勢を推定する構成要素である。後述するように、本実施形態では、ラフ姿勢推定部２４０により、距離画像により示される対象物体上の２点の位置関係と、該対象物体の表面の法線ベクトルの平均値とを用いて、対象物体の概略の姿勢を推定する概略姿勢推定が行われる。このようにして、ラフ位置推定部２２０、ラフ姿勢推定部２４０等により、距離画像を解析して対象物体の概略の位置姿勢を推定する処理を概略推定処理と呼ぶ。
【００２４】
ラフ姿勢尤度計算部２５０はラフ姿勢推定部２４０から得られた姿勢推定結果の尤度(信頼度)を計算する構成要素である。識別器優先度付加部２６０は、対象部品について推定した概略の位置姿勢に基づいて、複数の識別部の優先度（優先順位）を決定・付加する機能要素である。本実施形態では、ラフ姿勢尤度計算部２５０から得られた尤度情報に基づいて、各識別器に優先度を付加する。識別器は、予め定められた位置姿勢の範囲で物体の詳細な位置姿勢を推定する機能要素であり、本実施形態では、ＣＰＵ９９０がプログラムに基づき所定の処理を実行することにより実現される。位置姿勢識別部２７０は、識別器優先度付加部２６０から得られた優先度順に識別器を用いて部品の位置姿勢を識別する構成要素である。すなわち、位置姿勢識別部２７０は識別器の優先順位の順に、複数の識別器を使用して対象物体の詳細な位置姿勢を推定する詳細推定処理を行う。
【００２５】
また、推定装置は部品の位置姿勢推定に必要な情報を事前に記憶するデータベースとして、部品データベース１２０と角度別識別器データベース１３０を備えている。これらのデータベースは、例えば、ＨＤ９９５に設けることが可能である。部品データベース１２０は、認識対象となる部品の３Ｄモデルまたはその部品の近似３Ｄモデル情報を記憶したデータベースである。部品データベース１２０の情報は、探索ウィンドウ設定部２３０における部品の大きさの推定やラフ姿勢推定部２４０における姿勢の推定等に利用される。角度別識別器データベース１３０は、ある一定の間隔の角度別に用意された識別器のデータベースである。角度別識別器は、与えられた位置姿勢（本実施形態では角度）の範囲において、対象部品の位置姿勢を詳細に推定することが可能である。角度別識別器データベース１３０は、識別器優先度付加部２６０によって決められた優先度順に角度別識別器を用いて詳細な位置姿勢推定をする際に利用される。なお、本実施形態では識別器は角度別に用意するが、さらにサイズや照明変動ごとに用意してもよい。
【００２６】
（全体処理）
次に、本実施形態に係る推定装置が実行する処理の概要について図３を参照して説明する。図３は全体の処理の流れを表した全体処理フロー図である。全体処理は、例えば、情報処理装置１５０のＣＰＵ９９０の制御により実行することができる。
【００２７】
図３（ａ）において、始めの２つのステップ（Ｓ３００，Ｓ３１０）は事前にデータベースに情報を登録するステップである。すなわち、Ｓ３００（概略サイズ登録ステップ）では、図２の部品データベース（モデルデータベース）１２０に部品の概略サイズを示す概略サイズ情報を記憶させる。Ｓ３１０（角度別識別器登録ステップ）では、角度別識別器データベース１３０に角度別識別器の情報を記憶させる。
【００２８】
続いて、Ｓ３２０（距離画像生成ステップ）において、対象物体までの距離情報を記述した距離画像を生成し、Ｓ３３０（ラフ位置推定ステップ）において、３次元空間内での物体の存在する凡その空間領域を推定する。さらに、Ｓ３４０（入力画像上サイズ計算ステップ）において、物体までの距離情報と物体の概略サイズを用いて、画像データ入力部２００から得られる対象部品の画面上の大きさを計算する。次に、Ｓ３５０（遠距離領域除去ステップ）において、Ｓ３４０において得られた領域の範囲内で、カメラからの距離が離れていて対象部品の存在範囲にはなり得ない領域を除去する。次に、Ｓ３６０（距離値変化領域除去ステップ）において、距離画像上で距離値が急激に変化しているため部品の存在する領域ではないと判断される領域を除去する。これまでのステップの処理により、物体の凡その位置と位置姿勢推定のための検出枠の大きさが求まる。
【００２９】
続いて、Ｓ３７０（ラフ姿勢推定ステップ）において距離画像を用いて部品の大体の姿勢を推定し、Ｓ３８０（ラフ姿勢尤度計算ステップ）において、Ｓ３７０で得られた姿勢推定結果に基づいて該当する姿勢の識別器を用いて尤度を計算する。Ｓ３９０（識別器優先度付加ステップ）では、Ｓ３８０で得られた尤度情報に基づいて各識別器の優先度付けを行う。Ｓ４００（位置姿勢識別ステップ）では、Ｓ３９０で得られた優先度順に識別器を用いて、最も確からしい位置姿勢を識別する。
【００３０】
なお、Ｓ３８０では、Ｓ３７０において得られた姿勢推定結果に一番近い角度の識別器用いて識別処理を行い、その尤度（識別器の信頼度）の計算をする。その尤度の値が一定の閾値を超えない場合は、使用した識別器の姿勢推定結果が良くなかったとして、Ｓ３５０に戻り、検出枠の大きさを変えて尤度が閾値を越えるまで処理を繰り返す。検出枠の大きさの変え方については図８を参照して後述する。
【００３１】
（概略サイズ登録／角度別識別器登録）
以下、図３（ａ）の全体処理フローの各ステップでの詳細な処理を説明する。
【００３２】
Ｓ３００（概略サイズ登録ステップ）では部品データベース１２０に部品のサイズに関するデータを登録し、Ｓ３１０では角度別識別器データベース１３０に異なる角度別に用意した識別器を登録する。
【００３３】
Ｓ３００で登録されるのは、位置姿勢推定対象部品に関する概略サイズである。概略サイズの求め方の一手法を図４を用いて説明する。図４は図１で説明した部品１１０を包接する楕円体１４０を模式的に示す図である。ここで図中の線分Ｌ０は部品１１０の概略サイズを示す。また、概略サイズＬ０は部品に外接する楕円体１４０上の２点を結んだ線分である。後述するＳ３４０において、Ｌ０は画面上の大きさの推定に用いられるため、外接楕円体１４０上の一番長い対角線をＬ０としている。
【００３４】
このように、対象物体の概略サイズは、対象物体を包接する所定の立体形状上の予め定められた２点間の距離で示されるため、演算を効率的に行うことが可能である。なお、本実施形態では、所定の立体形状として楕円体を用いる場合の例を説明するが、立方体や錐体などどのような形状を用いてもよい。
【００３５】
Ｓ３１０（角度別識別器登録ステップ）では角度別識別器を登録する。角度別識別器は部品の特定の範囲の姿勢を詳細に識別可能な識別器であり、本実施形態では、ＣＰＵ９９０がプログラムに基づき所定の処理を実行することにより実現される。したがって、Ｓ３１０では角度別識別器のプログラム、又は、識別器の実装に必要なパラメータデータ等を登録する。部品１１０を包接する図形は姿勢に応じて画面上のサイズが異なるので、角度別識別器データベース１３０には角度別に用意されたウィンドウサイズが予め登録されている。また、角度別識別器は、部品種ごとに用意するだけでなく、３次元空間上で部品を回転させたときに見える姿勢ごとに予め用意される。以下では部品を置いた地面の水平面内の方向を「水平回転方向」、水平回転方向に直交した方向を「鉛直回転方向」と呼ぶ。言い換えると、鉛直軸を中心とする回転方向を水平回転方向（第２の回転方向）と呼び、水平軸を中心とする回転方向を鉛直回転方向（第１の回転方向）と呼ぶ。なお、本実施形態では、図１のように、対象部品を上方から鉛直下方に撮像する場合を説明するが、撮像方向はこれに限られないことは言うまでもない。例えば、水平方向や鉛直上方に撮像を行う場合でも、本実施形態に係る構成を同様に適用することができる。
【００３６】
図５は、３０度おきに登録した角度別識別器の一覧表を示している。部品の登録のための回転角度としては水平回転方向回りに３６０度と、鉛直回転方向回りに１８０度とがある。図５のように３０度ごとに識別器を登録すると、水平回転方向に対して３６０(度)／３０(度)＝１２角度、鉛直回転方向に対して１８０(度)／３０(度)＝６角度に分割されるので、１部品ごとに用意する角度別識別器は１２×６＝７２種類である。よって、角度別識別器データベース１３０に登録してある総識別器の個数は、（１２×６×全部品種数）個となる。
【００３７】
（距離画像生成）
Ｓ３２０（距離画像生成ステップ）では、距離画像を作成する。距離画像とは、撮像装置１００から撮像対象物までの距離を、距離計測機器によって計測して得られた距離情報を用いて作成される画像である。距離計測器は、例えば、レーザーまたはステレオカメラ等により実現される。本実施形態では、距離情報を平面画像にマッピングし、マッピングした値を濃淡値に変換して距離画像を生成する。ここで生成された距離画像は後続のステップにおいて利用される。すなわち、Ｓ３３０では、距離画像は、物体の存在する領域の推定に利用される。そして、Ｓ３４０、Ｓ３５０、Ｓ３６０では、距離画像は、画面上に部品の存在する領域の絞込みに利用される。さらに、Ｓ３７０では、距離画像は、ラフ姿勢推定の際に部品の傾きを推定するときに利用される。
【００３８】
（ラフ位置推定／入力画像上サイズ計算）
Ｓ３３０（ラフ位置推定ステップ）では、入力画像中の部品の存在領域の中から代表点の位置を大まかに推定する。代表点とは対象部品の概略位置を示す点をいう。部品の存在領域に関して、認識対象物を何も置かない状態で作成した距離画像を背景画像とし、位置姿勢推定対象物体を撮像したときの距離画像と背景画像との差分を求めることで、部品群の大体の位置情報を取得することができる。その後、距離画像中から任意に一点を選択し、その点を代表点とすることができる。この代表点は部品の存在する範囲内であればどこでもよいが、隠れのある部品内の点や部品の裏に隠れている部品の点を選択した場合は姿勢認識精度が悪くなり、位置姿勢推定の後に行うロボットによる部品取り出し作業がうまくいかないことがある。そのため、本実施形態では撮像装置１００からの距離が一番近い点を代表点とする。これにより、部品群中で一番取り出し易い位置にある部品について、その位置姿勢を詳細に推定することができる。
【００３９】
Ｓ３４０（入力画像上サイズ計算ステップ）では、部品データベース１２０に登録してある部品の概略サイズＬ０とＳ３２０で測定した距離情報を用いて、入力画像中に撮像されている部品の画面上の大きさを計算する。ここで推定された部品の大きさはＳ４００で角度別識別器を用いて位置姿勢を識別する際の検出枠のサイズを求める際に使用される。次に、部品の画面上の大きさを用いて、探索ウィンドウ８１０を決定する。探索ウィンドウ８１０とは、Ｓ３３０により求まる代表点を中心に位置姿勢を推定する対象部品が存在し得る領域（対象部品が空間を占める可能性のある範囲）全てを含むように設定された領域である。本実施形態おける識別器は、探索ウィンドウ８１０に含まれる距離画像に基づいて対象部品の位置姿勢を詳細に推定する。なお、位置姿勢推定対象とする部品を含まない領域も探索ウィンドウ８１０に入っている可能性がある。このため後述するように、ステップＳ３６０とＳ３７０において、探索ウィンドウのサイズＷ０を絞り込んで位置姿勢を推定する対象部品が存在し得ない領域を除去する。高精度かつ効率的な位置姿勢の推定を行うためには、探索ウィンドウ８１０内に対象部品全体の距離情報が表れており、かつ、当該対象部品以外の距離情報はなるべく表れていないことが必要であるからである。
【００４０】
次に、図６、図７を参照してＳ３３０とＳ３４０につき詳細に説明する。図６（ａ）は、図１の撮像装置１００と部品１１０、Ｓ３３０で求められる代表点である点Ａ（１５０）、及び、点Ａ（１５０）と撮像装置１００との距離Ｄ０を示している。Ｓ３３０では、山積みの部品が占める空間の中から撮像装置１００に一番近い点を探し出し、代表点Ａ（１５０）とする。その際にＳ３２０から得られる距離画像を利用して、撮像装置からの距離が一番短い点を探索する。そして最短距離の点である代表点Ａ（１５０）をラフ位置推定結果とする。
【００４１】
Ｓ３４０では、距離Ｄ０と部品データベース１２０に登録してある部品の概略サイズＬ０を用いて、撮像装置１００からＤ０だけ離れたところにある部品の画面上の大きさＬ１を計算する。図６（ｂ）は部品の画面上の大きさＬ１の具体的な計算手法を説明した図である。図６（ｂ）では、図６（ａ）に示した部品１１０と距離Ｄ０、図４に示した部品の概略サイズＬ０、また、撮像装置１００の焦点距離をｆ、部品１１０の画面上の部品を１６０とし、画面上の部品概略サイズをＬ１と表している。撮像装置１００の焦点距離をｆとすると、ｆ、Ｄ０、Ｌ１、Ｌ０には以下のような関係が成立する。
ｆ：Ｌ１＝Ｄ０：Ｌ０                                                    （１）
上式（１）より、部品の画面上の大きさは
Ｌ１＝ｆ×Ｌ０／Ｄ０                                                    （２）
となる。
Ｌ１の単位はｍｍなのでpixelの単位で表されたＬ２に変換すると以下のようになる。
Ｌ２（pixel）＝解像度（dpi）×Ｌ１（mm）                                （３）
この上式（３）より得られた部品の画面上の大きさＬ２を用いて、図７のように、探索ウィンドウ８１０を決定する。
【００４２】
図７は撮像装置１００から入力された画像例を示す図である。図７では図６（ａ）で示された代表点Ａ（１５０）、撮像装置１００からの入力画像のサイズをＷ１×Ｗ２、探索ウィンドウのサイズをＷ０×Ｗ０とする。また、Ｗ１×Ｗ２の大きさで記述された撮像装置１００からの入力画像８００、代表点Ａ（１５０）を中心にＷ０×Ｗ０の大きさで記述された正方形を探索ウィンドウ８１０とする。このとき、代表点Ａ（１５０）を中心にＸ軸方向に±Ｌ２、Ｙ軸方向に±Ｌ２の領域で探索ウィンドウ８１０を設定すれば部品１１０がどのような位置姿勢であったとしても探索ウィンドウ８１０に部品を包接することが可能である。よって、部品の画面上の大きさＬ２を用いると、探索ウィンドウ８１０の大きさは、Ｗ０＝２×Ｌ２となる。
【００４３】
このように、本実施形態では、距離画像に表された距離情報と、予め登録された対象部品の概略サイズとに基づいて、対象部品の距離画像上での概略サイズを計算する。そして、当該計算された概略サイズに合わせて、位置姿勢を詳細に推定する範囲を示す探索ウィンドウを距離画像上に設定する。識別器はこの探索ウィンドウの範囲内で、対象部品の詳細な位置姿勢を推定する。このため、本実施形態においては、範囲を絞り込んだ上で対象部品の詳細な位置姿勢を推定するため、効率的かつ高精度の位置姿勢推定が可能となる。
【００４４】
（遠距離領域除去／距離値変化領域除去）
次に、Ｓ３５０（遠距離領域除去ステップ）とＳ３６０（距離値変化領域除去ステップ）について、図８を参照して詳細に説明する。図８は、図７において探索ウィンドウ８１０を通過する直線であって、Ｘ軸（またはＹ軸）に平行な直線に沿って変化する、対象部品の撮像カメラからの距離値の変化を模式的に示す図である。本実施形態では、図８のように示される距離値の変化から、Ｓ３４０により求められた探索ウィンドウ８１０の中にある部品１１０の存在しえない領域を判定・除去して、探索ウィンドウのサイズＷ０を絞り込む。図８では、図６（ｂ）で示された距離Ｄ０と部品の概略サイズＬ０と部品の画面上のサイズをＬ２とする。また、Ｓ３５０により絞り込まれた探索ウィンドウ８１０のサイズをＬ３、Ｓ３６０により絞り込まれた探索ウィンドウ８１０のサイズをＬ４とする。
【００４５】
Ｓ３５０（遠距離領域除去ステップ）では、任意の代表点Ａ（１５０）の距離Ｄ０とそれ以外の領域を比較してＤ０の値よりも距離が大きく離れている領域を除去する。距離画像中で任意の代表点Ａ（１５０）までの距離値はＤ０であり、本実施形態において位置姿勢推定の対象となる部品の存在する領域は代表点Ａ（１５０）を含んでいることから、部品の存在する領域を距離値から絞り込むことが可能である。この例では部品の概略サイズがＬ０であると予めわかっているので、位置姿勢推定の対象となる部品はどのような姿勢で置いてあったとしても大きさを推定することが可能である。概略サイズＬ０から部品を包接する立方体の大きさは、実物であればＬ０×Ｌ０、距離Ｄ０だけ離れた場所にあればＬ１×Ｌ１の大きさになる。ゆえに距離画像中の探索ウィンドウ８１０枠内であっても、距離値がＤ０＋Ｌ０以上である領域は部品を包接する立方体の範囲を越えているので部品の存在領域には入らない。よって、それに該当する領域を除去することが可能である。
【００４６】
例えば、図８において、距離値がＤ０＋Ｌ０以上の領域を除去すると、探索ウィンドウ８１０のサイズはＬ３となる。ただし、位置姿勢推定の対象となる部品１１０に窪みがある場合で、距離値がＤ０＋Ｌ０以上である領域が画像中の端以外にあるときは物品の窪みであると判断して、領域の除去は行わないようにする。探索ウィンドウのサイズＷ０の絞込みはＸ軸方向とＹ軸方向の両方について同様に行う。このため、Ｓ３５０後の探索ウィンドウのサイズは（Ｘ軸方向のＬ３）×（Ｙ軸方向のＬ３）となる。
【００４７】
次に、Ｓ３６０（距離値変化領域除去ステップ）では、距離値が急激に変化している領域を除去する。具体的には、距離画像を用いて微分画像を作成し、同一部品ではない領域を絞り込む。概略サイズＬ０を用いて最大変化量をＬ０／２とすると、変化量が最大変化量以上の領域は同一部品でない可能性が高くなるので、その領域を除去する。図８では、斜線部の領域が変化量が閾値を越えている領域の例を示している。図８より、距離値の変化量が閾値以上の領域を除去すると、探索ウィンドウのサイズはＬ４となる。また、Ｓ３５０と同様に、変化量がある値以上である領域が画像中の端以外にある場合は同一部品内の窪みであるとし、領域の除去は行わないようにする。また、探索ウィンドウのサイズＷ０の絞込みはＸ軸方向とＹ軸方向に関して同様に行う。このため、Ｓ３６０後の探索ウィンドウのサイズは（Ｘ軸方向のＬ４）×（Ｙ軸方向のＬ４）となる。最後に上記ステップで求めたＬ４を用いて、探索ウィンドウ８１０をＷ０×Ｗ０＝（Ｘ軸方向のＬ４）×（Ｙ軸方向のＬ４）とする。
【００４８】
このように、本実施形態では、距離画像において、対象物体が存在し得ない距離を示す領域と、距離の変動が予め定められた値よりも大きい領域とを、探索ウィンドウから除去して、探索ウィンドウを更新する。このため、本実施形態によれば、詳細な位置姿勢の推定を行う範囲を効果的に絞り込んで効率的かつ効果的な位置姿勢推定が実現される。
【００４９】
（ラフ姿勢推定）
Ｓ３７０（ラフ姿勢推定ステップ）では、Ｓ３２０において得られた距離画像と部品データベース１２０に登録されている情報を用いて、部品のラフな姿勢を推定する。Ｓ３７０の処理の詳細について図３（ｂ）を参照して説明する。
【００５０】
図３（ｂ）では、Ｓ３７０に関する２つのステップ、Ｓ１０００（鉛直回転方向姿勢推定ステップ）と、Ｓ１０１０（水平回転方向姿勢推定ステップ）について説明する。位置姿勢推定対象となる部品は三次元空間内で回転しているので、姿勢推定を鉛直回転方向（第１の回転方向）と水平回転方向（第２の回転方向）に分けて推定する。Ｓ１０００では、認識対象となる部品の鉛直回転方向の傾きを推定する。以下、図９を参照して、その具体的な傾きの計算手法を説明する。
【００５１】
図９（ａ）では、図７と同様に、代表点はＡ（１５０）であり、入力画像サイズはＷ１×Ｗ２であり、探索ウィンドウ８１０のサイズはＷ０×Ｗ０である。さらに、代表点Ａ（１５０）を通過しＹ軸（またはＸ軸）と平行な直線上にある点を点Ｂ（１７０）とする。本実施形態では、点Ｂは探索ウィンドウ８１０の範囲内にあり、探索ウィンドウ８１０上の端点とする（図９（ａ）参照）。なお本実施形態では、点Ｂ（１７０）は探索ウィンドウ８１０上の端点にあるが、探索ウィンドウ８１０の範囲内にあればよい。
【００５２】
図９（ｂ）を用いて距離画像から鉛直回転方向の姿勢を推定する手法を説明する。図９（ｂ）は、対象部品を撮像方向に直交する方向から（Ｘ軸負方向からＸ軸正方向へ）見た様子を模式的に示しており、紙面上方から下方に存在する対象部品を撮像する様子を示している。
【００５３】
図９（ｂ）では、図６（ａ）で示した代表点を点Ａ（１５０）とし、代表点と撮像装置との距離をＤ０（距離画像データから与えられる）としている。さらに、図９（ａ）で示した点を点Ｂ（１７０）とし、撮像装置１００から点Ｂ（１７０）までの距離をＤ１、入力画像中の代表点Ａ（１５０）から点Ｂ（１７０）までの画像上での距離をＴ１とする。距離Ｄ１は、距離Ｄ０の測定を行った同じ装置を用いて撮像装置１００から点Ｂ（１７０）までの距離を測定して求められる。入力画像を用いて画像上での部品の高さＴ１を求めることが可能なので、その結果を用いて、図６（ｂ）と同様の手法で、焦点距離ｆと任意の点Ａまでの距離Ｄ０、点Ａから点Ｂまでの画面上での距離Ｔ１より、点Ａから点Ｂまでの実際の距離Ｔ０を計算する。
【００５４】
画面上の距離Ｔ１（pixel）の単位をＴ２（mm）に変換すると、
Ｔ２（mm）＝Ｔ１（pixel）／解像度（dpi）                                （４）
となる。さらに、ｆ、Ｄ０、Ｔ０、Ｔ２の関係は以下式で表される。
ｆ：Ｔ２＝Ｄ０：Ｔ０                                                    （５）
ここで、式（５）より、点Ａから点Ｂまでの実際の高さはＴ０＝Ｄ０×Ｔ２／ｆとなる。そして、Ｄ０、Ｄ１、Ｔ０、を用いて部品の傾きθ１を計算する。
tanθ１＝（Ｄ１−Ｄ０）×ｆ／Ｄ０×Ｔ２                                 （６）
式（６）より求まる角度θ１を部品の鉛直回転方向の傾きとする。このように、本実施形態では、距離画像により示される対象部品上の２点（Ａ，Ｂ）の位置関係から、対象部品の鉛直回転方向に係る姿勢を推定する。このため、鉛直回転方向に係る姿勢を効率的に推定することができる。
【００５５】
次に、図１０を用いてＳ１０１０により認識対象となる部品の水平回転方向の傾きを推定する。図１０は、対象部品を撮像方向から見た様子を模式的に示している。始めに距離画像として観察された平面の法線方向のベクトルを求め、それら法線方向のベクトルの平均値を求める。その法線方向のベクトルの平均値の傾きθ２を水平回転方向の部品の傾きとする。このようにして、距離画像により示される対象物体の表面の法線ベクトルの平均値から、対象物体の鉛直回転方向に直交する水平回転方向（第２の回転方向）に係る姿勢が推定される。このため、水平回転方向に係る姿勢を効率的に推定することができる。以上より、Ｓ１０００より求まるθ１とＳ１０１０により求まるθ２をＳ３５０のラフ姿勢推定結果とする。
【００５６】
（ラフ姿勢尤度計算）
Ｓ３８０（ラフ姿勢尤度計算ステップ）では、Ｓ３７０によって得られたラフ姿勢推定結果を評価し、次の処理へ進むかどうかを判定する。ここでは図１１（ａ）の角度別識別器一覧表中から、鉛直回転方向の傾きがθ１で水平回転方向の傾きがθ２に一番近い姿勢に対応する識別器を見つけ出す。そして、位置姿勢対象部品の姿勢に一番近いと思われる姿勢の識別器と探索ウィンドウ８１０を用いて尤度の計算を行う。得られた尤度が閾値以上の場合は、尤度計算に用いた識別器の角度が、実際の部品の位置姿勢に近いものとして次のステップ（Ｓ３９０）に進む。尤度が閾値未満の場合には、実際の部品の位置姿勢がラフ姿勢推定結果とは異なっている可能性があるため、Ｓ３５０に戻り再度探索ウィンドウ８１０の絞込みとラフ姿勢推定を行う。探索ウィンドウ８１０の絞込みをするときは、Ｓ３５０で遠距離領域とみなされる閾値Ｄ０＋Ｌ０の設定と、Ｓ３６０で用いた距離値の変化量の閾値を変えて再度設定する。更新された探索ウィンドウ８１０を用いて、ラフ姿勢推定から得られた角度の識別器の識別率がある一定の閾値以上となるまで上記の処理を繰り返す。
【００５７】
（識別器優先度付加）
Ｓ３９０（識別器優先度付加ステップ）では、Ｓ３７０から得られたラフ姿勢推定結果を用いて、角度別識別器を優先度の高い順に並べ替える。図１１（ａ）を参照して、Ｓ３９０の処理について詳細に説明する。
【００５８】
図１１（ａ）は、Ｓ３７０から得られたラフ姿勢推定結果が、鉛直回転方向の傾きθ１＝３０度、水平回転方向の傾きθ２＝３０度のときに、角度別識別器に優先度付けを行った例を示している。このとき優先度が一番高いのはラフ姿勢推定結果から推定された角度（θ１＝３０度、θ２＝３０度）の識別器であり、その角度を中心に角度の誤差が小さい順に優先度付けをしている。このとき、角度誤差が同じ場合には、鉛直回転方向にずれている識別器より水平回転方向にずれている識別器のほうを、誤差がプラスよりもマイナスにずれている角度の識別器の優先度が高くなるように順位付けをしている。以下に順位付けの例を示す。
（＊１）０度  （θ１＝３０度、θ２＝３０度）。
（＊２）−３０度  （θ１＝３０度、θ２＝０度）。
（＊３）＋３０度  （θ１＝３０度、θ２＝６０度）。
（＊４）−３０度  （θ１＝０度、θ２＝３０度）。
（＊５）＋３０度  （θ１＝６０度、θ２＝３０度）。
このようにして、推定した概略の位置姿勢について、詳細な位置姿勢を推定する識別器の尤度が計算され、当該識別器の尤度から優先順位が決定される。このため、本実施形態によれば、簡易な構成で高速に識別器の優先順位を決定することが可能である。
【００５９】
（位置姿勢識別）
Ｓ４００（位置姿勢識別ステップ）では、Ｓ３９０によって優先度順に並べ替えられた角度別識別器を用いて詳細な位置姿勢識別を行う。ここで詳細な位置姿勢識別とは、角度別識別器データベースに用意された角度別ウィンドウサイズを用いて、位置姿勢推定対象部品の鉛直回転方向の傾きと水平回転方向の傾きを識別することをいう。優先度の高い識別器の順にその尤度を求めて尤度マップを作成し、その尤度マップから尤度の一番高い角度を求めて詳細な位置姿勢識別結果とする。
【００６０】
具体例として、図１１（ｂ）を参照して、詳細な位置姿勢識別手法を説明する。図１１（ｂ）を角度別識別器ごとの尤度計算結果をまとめた尤度マップとすると、図中の＊１〜＊９で表される識別器は図１１（ａ）の＊１〜＊９と同様のものであり、各識別器に付加されている順番はＳ３９０において付加される優先度を表したものである。また、位置姿勢識別には、近傍にある識別器（角度誤差±３０度）の尤度の平均値を用いている。図１１（ｂ）では、角度の違いが±３０度以内の識別器の尤度の平均値の計算例を示している。図中で、太線枠内にあるのは識別器＊１（θ１＝３０度、θ２＝３０度）に関する近傍の識別器であり、点線枠内にあるのは識別器＊８（θ１＝６０度、θ２＝６０度）に関する近傍の識別器である。これら５つの識別器群から求めた尤度の平均値が閾値以上であれば、５つの識別器群の中心の角度の識別器を姿勢識別結果とする。また、平均値が閾値以下であれば、次に優先度が高い識別器の近傍の尤度の平均値を計算をする。
【００６１】
Ｓ３９０で付加された優先度順に尤度の計算を行い、位置姿勢識別のための最適な識別器を探索する。これにより得られた位置姿勢推定結果を本実施形態の最終的な出力とする。
【００６２】
上記のように、本実施形態では、対象部品の概略の位置姿勢を推定し、当該位置姿勢に基づいて複数の識別器の優先順位を決定し、当該優先順位の順に、複数の識別器を使用して対象部品の詳細な位置姿勢を推定する。このため、全ての識別器を逐次的に使用するのではなく、マッチングの可能性が高いと推定される識別器を順に使用して詳細な位置姿勢を推定するため、効率的かつ高精度の位置姿勢推定を行うことができる。すなわち、物体の位置姿勢の認識を行う際に、部品の大きさや姿勢の概略推定を行い、その結果に基づいて識別器の選択を行うことで、識別の精度を維持しながら全ての識別器を使用する場合と比べて計算量を大幅に減らすことが可能である。
【００６３】
＜＜実施形態２＞＞
本実施形態では、実施形態１で説明した図１の機能構成図中にある画像データ入力部２００と距離画像生成部２１０との間に任意点抽出部２０５を追加している。本実施形態に係る推定装置の機能構成図を図１２に示す。
【００６４】
また、本実施形態の全体処理フローを示すフローチャートを図１３に示す。図１３のＳ３１５（任意点抽出ステップ）では、事前に登録してある固定点を代表点（図６（ａ）の点Ａ（１５０））とする。ただし、代表点（点Ａ（１５０））は部品が必ず置かれている位置に存在するように予め設定してある。次のＳ３４０では、実施形態１と同様に撮像装置から代表点（点Ａ（１５０））までの距離Ｄ０と概略サイズＬ０から画面上のサイズＷ０を計算する。さらに、Ｓ３２０において、上記から得られた代表点（点Ａ（１５０））と画面上のサイズＷ０を用いて、点Ａ（１５０）を中心に画面上のサイズＷ０の大きさで切り出された領域に関して距離画像を生成する。
【００６５】
本実施形態が実施形態１と異なるのは、Ｓ３１５からＳ３２０までの処理である。本実施形態では、実施形態１にはないＳ３１５が新しく追加され、Ｓ３２０（距離画像生成ステップ）とＳ３４０（入力画像上サイズ計算ステップ）の処理の順番が入れ替わっている。実施形態１では、Ｓ３２０によって入力画像中の全領域に関して距離画像を作成し、その後Ｓ３４０により探索ウィンドウ８１０を求めている。本実施形態では、距離画像を生成する前に任意の領域を指定して、切り出し領域の位置と探索ウィンドウを特定してから距離画像を生成する。したがって本実施形態の構成によれば、実施形態１よりもさらに計算量を少なくすることができる。
【００６６】
＜＜実施形態３＞＞
本実施形態では、実施形態１のラフ姿勢尤度計算部２５０と識別器優先度付加部２６０を用いずに、ラフ姿勢推定部２４０から得られたラフ姿勢推定結果を用いて、位置姿勢識別部２７０が位置姿勢識別を行う。本実施形態に係る推定装置の機能構成を図１４に示す。探索ウィンドウ設定部２３０ではラフ姿勢推定部２４０から得られた姿勢に基づいて、部品の外接図形を求めて、その外接図形の大きさからウィンドウサイズを設定する。ラフ姿勢推定部２４０では、探索ウィンドウ設定部２３０から得られる探索ウィンドウを用いて、実施形態１と同様の手法でラフ姿勢を求める。ここで、ｎ回目に求まるラフ姿勢をラフ姿勢推定角度ｄ(ｎ)とする。また、ラフ姿勢推定角度ｄ(ｎ)と（ｎ−１）回目に求まるラフ姿勢推定角度ｄ(ｎ−１)に基づいて、ラフ姿勢の更新を決定する。具体的には、（ｎ−１）回目のラフ姿勢推定結果から得られる姿勢推定角度ｄ(ｎ−１)と、ｎ回目のラフ姿勢推定角度ｄ(ｎ)とを比較する。|ｄ(ｎ−１)−ｄ(ｎ)|が一定の閾値以上であれば信頼度が低いとしてウィンドウ設定部に戻り、再度ラフ姿勢を求める。
【００６７】
本実施形態における位置姿勢識別部２７０が実行する処理（位置姿勢識別処理）の流れを図１５に示す。Ｓ１９００（位置姿勢初期値設定ステップ）では、ラフ位置推定部２２０から得られるラフ位置推定結果とラフ姿勢推定部２４０から得られるラフ姿勢推定結果を初期値として設定する。Ｓ１９１０（モデル照合ステップ）ではＳ１９００により設定された初期値を用いて、登録部品のモデル合わせを行う。ここでモデル合わせには、以下の非特許文献１に記載されているモデルフィッティングの技術を用いることができる。この非特許文献１に記載のモデルフィッティングの技術を用いることにより、部品の詳細な位置姿勢を認識することができる。
【００６８】
［非特許文献１］  David G. Lowe, "Fitting Parameterized Three-Dimensional Models to Images" ,IEEE Transaction on Pattern Analysis and Machine Intelligence, 13, 5(May 1991), pp. 441-450
なお、モデルフィッティングとは、対象部品のCADモデルを対象部品を撮影した画像に適合させる技術である。本発明におけるモデルフィッティング時には、Ｓ１９００により設定された位置と姿勢の初期値を基準として探索を行い、CADモデルの輪郭等のエッジ情報を用いて画像に適合する部品の詳細な位置姿勢の認識を行うことができる。
【００６９】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011133273.tif 000003
【図２】
2011133273.tif 000004
【図３】
2011133273.tif 000005
【図４】
2011133273.tif 000006
【図５】
2011133273.tif 000007
【図６】
2011133273.tif 000008
【図７】
2011133273.tif 000009
【図８】
2011133273.tif 000010
【図９】
2011133273.tif 000011
【図１０】
2011133273.tif 000012
【図１１】
2011133273.tif 000013
【図１２】
2011133273.tif 000014
【図１３】
2011133273.tif 000015
【図１４】
2011133273.tif 000016
【図１５】
2011133273.tif 000017
【図１６】
2011133273.tif 000018