(57)【要約】【課題】実用的な時間内に高い精度で、撮像部が捉えた対象物の種類と位置と姿勢を検出することができなかった。【解決手段】カラー画像データの画像領域から対象物を取り囲む包含領域と対象物の種類を推定する第１推定ステップと、包含領域の外部領域の情報を用いて包含領域から対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する抽出ステップと、距離画像データの画像領域に抽出ステップで抽出した対象物領域を対応させて切り取った距離分布画像を生成する生成ステップと、生成ステップで生成した距離分布画像を用いて対象物の位置を算出する算出ステップと、第１推定ステップで推定した対象物の種類と、生成ステップで生成した距離分布画像とを、予め準備された照合モデルと照合することにより、対象物の姿勢を推定する第２推定ステップとを含む検出方法を提供する。【選択図】図１
2018128897.tif 000002
【特許請求の範囲】
【請求項１】
三次元環境下に配置された対象物の種類と位置と姿勢を検出する検出方法であって、
前記対象物を撮像して処理された、ピクセルごとに色情報を有するカラー画像データと、ピクセルごとに距離情報を有する距離画像データとを取得する取得ステップと、
前記カラー画像データの画像領域から前記対象物を取り囲む包含領域と前記対象物の種類を推定する第１推定ステップと、
前記包含領域の外部領域の情報を用いて前記包含領域から前記対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する抽出ステップと、
前記距離画像データの画像領域に前記抽出ステップで抽出した前記対象物領域を対応させて切り取った距離分布画像を生成する生成ステップと、
前記生成ステップで生成した前記距離分布画像を用いて前記対象物の位置を算出する算出ステップと、
前記第１推定ステップで推定した前記対象物の種類と、前記生成ステップで生成した距離分布画像とを、予め準備された照合モデルと照合することにより、前記対象物の姿勢を推定する第２推定ステップと
を含む検出方法。
【請求項２】
前記生成ステップは、前記距離画像データの画像領域から、前記対象物領域に対応する領域を取り囲む矩形領域を前記距離分布画像の画像領域として切り取り、切り取った画像領域のうち前記対象物領域に対応する領域以外の領域のピクセル値を０とし、前記対象物領域に対応する領域のピクセル値を平均値が１、分散値が１となるように正規化して、前記距離分布画像を生成する請求項１に記載の検出方法。
【請求項３】
前記照合モデルは、前記距離分布画像に相当する距離画像と前記対象物の姿勢とを対応付けた教師データからディープラーニングによって学習された後の全結合層の特徴量と前記対象物の姿勢との対応を示す、前記対象物の種類ごとに作成された管理テーブルを含み、
前記第２推定ステップは、前記距離分布画像を、前記第１推定ステップで推定した前記対象物の種類に対応する、前記ディープラーニングで学習した畳み込みニューラルネットワークへ入力して得られた特徴量を、前記畳み込みニューラルネットワークと関連づけられた前記管理テーブルの特徴量と照合することにより、前記対象物の姿勢を推定する請求項１または２に記載の検出方法。
【請求項４】
前記抽出ステップは、前記包含領域を予め定められた倍率で拡張した拡張領域と、前記外部領域として前記拡張領域を取り囲む外周領域とを定め、前記外周領域の色分布情報を用いてグラフカット法により前記拡張領域から前記背景領域を除去して、前記対象物領域を抽出する請求項１から３のいずれか１項に記載の検出方法。
【請求項５】
三次元環境下に配置された対象物の種類と位置と姿勢を検出する検出プログラムであって、
前記対象物を撮像して処理された、ピクセルごとに色情報を有するカラー画像データと、ピクセルごとに距離情報を有する距離画像データとを取得する取得ステップと、
前記カラー画像データの画像領域から前記対象物を取り囲む包含領域と前記対象物の種類を推定する第１推定ステップと、
前記包含領域の外部領域の情報を用いて前記包含領域から前記対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する抽出ステップと、
前記距離画像データの画像領域に前記抽出ステップで抽出した前記対象物領域を対応させて切り取った距離分布画像を生成する生成ステップと、
前記生成ステップで生成した前記距離分布画像を用いて前記対象物の位置を算出する算出ステップと、
前記第１推定ステップで推定した前記対象物の種類と、前記生成ステップで生成した距離分布画像とを、予め準備された照合モデルと照合することにより、前記対象物の姿勢を推定する第２推定ステップと
をコンピュータに実行させる検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の姿勢等を検出する検出方法、検出プログラムに関する。
【背景技術】
【０００２】
三次元環境下に配置された対象物の種類、位置、姿勢を検出する技術が知られている。例えば、ロボットハンドが把持対象物を把持しようとする場合には、当該対象物が目的の対象物であるか、どのような位置にどのような姿勢で置かれているか、といった情報が事前に必要となる。そのような情報を取得するために、対象物を撮像した画像データを利用して当該情報を取得しようとする試みが成されている。例えば、対象物の三次元モデルを平面化しておき、撮像した画像と照合することにより対象物を特定する技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０７９４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これまで開示されている検出手法では、実用的な時間内に高い精度で対象物の種類と位置と姿勢を出力することができなかった。
【０００５】
本発明は、このような問題を解決するためになされたものであり、実用的な時間内に高い精度で対象物の種類と位置と姿勢を検出することができる検出手法およびそのプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様における検出方法は、三次元環境下に配置された対象物の種類と位置と姿勢を検出する検出方法であって、対象物を撮像して処理された、ピクセルごとに色情報を有するカラー画像データと、ピクセルごとに距離情報を有する距離画像データとを取得する取得ステップと、カラー画像データの画像領域から対象物を取り囲む包含領域と対象物の種類を推定する第１推定ステップと、包含領域の外部領域の情報を用いて包含領域から対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する抽出ステップと、距離画像データの画像領域に抽出ステップで抽出した対象物領域を対応させて切り取った距離分布画像を生成する生成ステップと、生成ステップで生成した距離分布画像を用いて対象物の位置を算出する算出ステップと、第１推定ステップで推定した対象物の種類と、生成ステップで生成した距離分布画像とを、予め準備された照合モデルと照合することにより、対象物の姿勢を推定する第２推定ステップとを含む。
【０００７】
このような検出方法によれば、まずカラー画像データの色情報から対象物の種類を推定すると共に、対象物領域を抽出して距離分布画像を精度良く生成してから、照合モデルと照合して対象物の姿勢を推定するので、背景から抽出することが困難な形状や姿勢の対象物などであっても、精度良くその種類と位置と姿勢を検出することができる。
【０００８】
上記の検出方法において、生成ステップは、距離画像データの画像領域から、対象物領域に対応する領域を取り囲む矩形領域を距離分布画像の画像領域として切り取り、切り取った画像領域のうち対象物領域に対応する領域以外の領域のピクセル値を０とし、対象物領域に対応する領域のピクセル値を平均値が１、分散値が１となるように正規化して、距離分布画像を生成するようにしても良い。特に、平均値を１とすることにより、撮像視点からの奥行き情報が強調されるので、照合モデルの構築において姿勢間の特徴量の差を大きくすることができ、姿勢推定の精度向上に貢献する。なお、平均値を１とせずに、他の物理量を変化させた距離分布画像であっても構わない。
【０００９】
また、上記の照合モデルは、距離分布画像に相当する距離画像と対象物の姿勢とを対応付けた教師データからディープラーニングによって学習された後の全結合層の特徴量と対象物の姿勢との対応を示す、対象物の種類ごとに作成された管理テーブルを含み、上記の第２推定ステップは、距離分布画像を、第１推定ステップで推定した対象物の種類に対応する、ディープラーニングで学習した畳み込みニューラルネットワークへ入力して得られた特徴量を、畳み込みニューラルネットワークと関連づけられた管理テーブルの特徴量と照合することにより、対象物の姿勢を推定するようにしても良い。このようにディープラーニングによってさまざまな姿勢に対する特徴量を互いに離散化させることができるので、照合する対象物の特徴量を一対一に対応させやすく、精度の高い姿勢結果を出力することができる。
【００１０】
また、上記の抽出ステップは、包含領域を予め定められた倍率で拡張した拡張領域と、外部領域として拡張領域を取り囲む外周領域とを定め、外周領域の色分布情報を用いてグラフカット法により拡張領域から背景領域を除去して、対象物領域を抽出しても良い。このように拡張領域を定めることにより、外周領域から抽出された特徴量と共通の特徴量を包含領域内からも見つけやすくなり、精度良く対象物領域を抽出することができる。
【００１１】
また、本発明の第２の態様における検出プログラムは、三次元環境下に配置された対象物の種類と位置と姿勢を検出する検出プログラムであって、対象物を撮像して処理された、ピクセルごとに色情報を有するカラー画像データと、ピクセルごとに距離情報を有する距離画像データとを取得する取得ステップと、カラー画像データの画像領域から対象物を取り囲む包含領域と対象物の種類を推定する第１推定ステップと、包含領域の外部領域の情報を用いて包含領域から対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する抽出ステップと、距離画像データの画像領域に抽出ステップで抽出した対象物領域を対応させて切り取った距離分布画像を生成する生成ステップと、生成ステップで生成した距離分布画像を用いて対象物の位置を算出する算出ステップと、第１推定ステップで推定した対象物の種類と、生成ステップで生成した距離分布画像とを、予め準備された照合モデルと照合することにより、対象物の姿勢を推定する第２推定ステップとをコンピュータに実行させる。
【００１２】
このような検出プログラムによれば、まずカラー画像データの色情報から対象物の種類を推定すると共に、対象物領域を抽出して距離分布画像を精度良く生成してから、照合モデルと照合して対象物の姿勢を推定するので、背景から抽出することが困難な形状や姿勢の対象物などであっても、精度良くその種類と位置と姿勢を検出することができる。
【発明の効果】
【００１３】
本発明により、実用的な時間内に高い精度で対象物の種類と位置と姿勢を検出することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態にかかる検出方法の全体の手順を示すフロー図である。
【図２】画像データの取得の手順を示すフロー図である。
【図３】カテゴリおよび包含領域の推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図４】他の例である、カテゴリおよび包含領域の推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図５】対象物領域を抽出する手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図６】距離分布画像を生成する手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図７】対象物の位置を算出する手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図８】姿勢推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。
【図９】ディープラーニングによる事前学習を説明する説明図である。
【図１０】姿勢推定の実験結果を示す結果一覧である。
【発明を実施するための形態】
【００１５】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１６】
本実施形態にかかる検出方法は、例えば、ロボットハンドを備える生産ロボットによって実行され、ロボットハンドが対象物を把持する場合に、適切な把持行動を立案し遂行するための前処理として実行される。具体的には、生産ロボットは、当該検出方法を実行することにより、把持しようとする対象物が目的の対象物であるかを確認し、その位置と姿勢を把握する。生産ロボットは、このような前処理を実行することにより、ロボットハンドの構造等に対して適した箇所で適した角度により対象物を把持することができる。
【００１７】
生産ロボットは、ロボットハンドの他に、把持しようとする対象物が存在する空間を視野として捉える撮像部と、ロボット全体の制御を実行すると共に様々な演算を実行する制御演算部を備える。制御演算部は、ロボットが備える記憶装置に格納されたプログラム、あるいはネットワークを介して供給されるプログラムを実行することにより、ロボット全体の制御や各種演算を実行する。また、制御演算部は、必要に応じて、ロボットが備える記憶装置に格納されたデータベースやパラメータ、あるいはネットワークを介して供給されるデータベースやパラメータを利用して、ロボット全体の制御や各種演算を実行する。制御演算部は、例えば１つのまたは複数のＣＰＵによって構成される。なお、撮像部は、生産ロボットが備えていなくても良く、対象物を捉えられるのであれば天井などに固定されていても良い。この場合、撮像された画像データは、ネットワークを介して生産ロボットに取り込まれる。
【００１８】
図１は、本実施形態にかかる、三次元環境下に配置された対象物の種類と位置と姿勢を検出する検出方法の全体の手順を示すフロー図である。ここで示す各工程の詳細については後に述べるが、まずは、全体の流れについて説明する。
【００１９】
制御演算部は、ステップＳ１００で、三次元環境下に配置された対象物を撮像部に撮像させ処理させた、ピクセルごとに色情報を有するカラー画像データと、ピクセルごとに距離情報を有する距離画像データとを取得する。続いてステップＳ２００で、取得したカラー画像データの画像領域から対象物を取り囲む包含領域を決定し、対象物の種類を示すカテゴリを推定する。
【００２０】
制御演算部は、ステップＳ２００で決定した包含領域の外部領域の情報を用いて包含領域から対象物以外の背景領域を除去し、対象物の輪郭によって囲まれた対象物領域を抽出する（ステップＳ３００）。カラー画像データの画像領域から対象物領域が抽出されたら、ステップＳ４００で、距離画像データの画像領域に当該対象物領域を対応させ、切り取って距離分布画像を生成する。
【００２１】
制御演算部は、このように生成した距離分布画像から対象物の位置を算出する（ステップＳ５００）。そして、ステップＳ６００において、ステップＳ２００で推定した対象物のカテゴリと、ステップＳ４００で生成した距離分布画像とを、ロボットが備える記憶装置などに予め準備された照合モデルと照合することにより、対象物の姿勢を推定する。制御演算部は、このように検出された対象物の種類と位置と姿勢を利用して、ロボットハンドの把持行動などの次の制御工程に移行する。
【００２２】
このように、カラー画像データの二次元情報から対象物の包含領域と種類をまず推定し、距離画像データから距離分布画像を生成してから位置と姿勢を検出すると、並列処理的に一度に種類、位置、姿勢を検出するよりも、検出精度が高い。特に、位置と姿勢を推定する前にカラー画像データの二次元情報から対象物領域を抽出して正確な距離分布画像を整えるので、背景から抽出することが困難な形状や姿勢の対象物などであっても、高い検出精度を維持できることがわかった。また、姿勢の推定段階では、カラー情報を用いずに推定を行うので、演算の高速化も併せて実現できる。
【００２３】
各工程を順に詳細に説明する。図２は、ステップＳ１００で示した、画像データの取得の手順を示すフロー図である。
【００２４】
制御演算部は、ステップＳ１０１で、対象物を撮像して処理した、ピクセルごとに色情報として赤色の画素値であるＲ値、緑色の画素値であるＧ値、青色の画素値であるＢ値を有するカラー画像データを取得する。ここで、撮像部が備えるイメージセンサの一つは、例えば、二次元的に配置された各画素上にＲＧＢのいずれかのカラーフィルタがベイヤ配列により配置されたカラーイメージセンサであり、光学系により結像された対象物の光学像を光電変換してカラー画像信号を出力する。撮像部の画像処理部は、周辺画素信号の出力を用いた補間処理により、各ピクセルがＲ値Ｇ値Ｂ値のそれぞれを持つように調整する。
【００２５】
制御演算部は、続いてステップＳ１０２で、対象物を撮像して処理した、ピクセルごとに撮像面から対象物表面までの距離であるＤ値を有する距離画像データを取得する。ここで、撮像部が備えるイメージセンサのもう一つは、例えば、二次元的に広がる投射パターンを有する赤外光を対象物に投射する赤外光源と、その反射光を受光して光電変換するイメージセンサとが組み合わされたパターン照射方式の距離イメージセンサである。撮像部の画像処理部は、反射光のパターンひずみに基づいて、各ピクセルのＤ値を演算する。
【００２６】
なお、カラーイメージセンサと距離イメージセンサは、およそ等しい視野範囲を撮像できるように調整されている。例えば、ビームスプリッタ等を用いて、それぞれ光学的に共役な位置に配設されている。また、制御演算部は、カラー画像データと距離画像データを取得できれば良いので、撮像部の構成は上記に限らず、他の構成であっても良い。例えば、ＴＯＦ方式の距離センサを用いて距離画像を生成しても良い。また、ステップＳ１０１とＳ１０２の順序は逆であっても良いし、並列であっても良い。
【００２７】
図３は、ステップＳ２００で示した、カテゴリおよび包含領域の推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。制御演算部は、ステップＳ１０１で取得したカラー画像データを入力画像としてメモリ上に展開する（ステップＳ２０１）。フロー図の右側に示すように、例えば、対象物であるカップがテーブルに載置された画像が展開される。
【００２８】
制御演算部は、ステップＳ２０２で、ＦａｓｔｅｒＲＣＮＮによる演算を実行する。ＦａｓｔｅｒＲＣＮＮは、文献「２０１５  Ｎｅｕｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ」の「Ｆａｓｔｅｒ  Ｒ−ＣＮＮ：  Ｔｏｗａｒｄｓ  Ｒｅａｌ−Ｔｉｍｅ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｗｉｔｈ  Ｒｅｇｉｏｎ  Ｐｒｏｐｏｓａｌ  Ｎｅｔｗｏｒｋｓ．」等に提案されている手法である。ＦａｓｔｅｒＲＣＮＮは、入力した画像から特徴量（ＦｅａｔｕｒｅＭａｐｓ）を抽出する畳み込み層と、物体の候補領域を算出するＲｅｇｉｏｎ  Ｐｒｏｐｏｓａｌ  Ｎｅｔｗｏｒｋｓ（以下ＲＰＮとする）と、ＦｅａｔｕｒｅＭａｐｓおよび物体候補領域を入力として物体カテゴリを識別する分類器の３つから構成される。ここで、ＦｅａｔｕｒｅＭａｐｓ）を抽出する畳み込み層は、従来技術における畳み込みニューラルネットワークであり、ここではＶＧＧ−１６のネットワークを使用した。ＶＧＧ−１６は、例えば、文献「２０１５  Ｉｎｔ．  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｌｅａｒｎｉｎｇ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ」の「Ｖｅｒｙ  ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋｓ  ｆｏｒ  ｌａｒｇｅ−ｓｃａｌｅ  ｉｍａｇｅ  ｒｅｃｏｇｎｉｔｉｏｎ．」に詳しい。
【００２９】
また、分類器は全結合のニューラルネットワークである。またＲＰＮは、３×３のフィルタサイズの畳み込み層の１層（Ａ層）と全結合層の１層（Ｂ１、Ｂ２）の２層から構成される。この全結合層は、対象物か否かを分類するＢ１と、候補矩形領域の座標値を推定するＢ２とから構成される。例えば、Ｂ１、Ｂ２の入力を５１２次元とすることができる。
【００３０】
このようなＦａｓｔｅｒＲＣＮＮにおける学習方法はいくつか提案されているが、本実施形態では以下の手法に従った。ここで、ＶＧＧ−１６を使用する畳み込みニューラルネットワークは、既にプレトレーニング済（ここで、結合荷重をＶＧＧ１６＿ｉｎｉｔと呼ぶ）である。
【００３１】
（１）ＶＧＧ１６＿ｉｎｉｔを元にＲＰＮを学習する。学習はｅｎｄ−ｔｏ−ｅｎｄであり、ＲＰＮと、特徴量（ＦｅａｔｕｒｅＭａｐｓ）を抽出する畳み込み層を学習する（ここでの学習結果を、ＶＧＧ１６＿ｍｉｄとする）。
（２）ＶＧＧ１６＿ｉｎｉｔを元に（１）でのＲＰＮの結果も使って、分類器を学習する（ここでの学習結果を、ｃｌａｓｓｉｆｉｅｒ＿ｍｉｄとする）。
（３）ＲＰＮを再学習する。ここでは、ＶＧＧ１６＿ｍｉｄとｃｌａｓｓｉｆｉｅｒ＿ｍｉｄの結果を用い、それらを固定してＲＰＮのみ再学習する。その結果をＲＰＮの最終荷重（ＲＰＮ＿ｆｉｘとする）として固定する。
（４）ＲＰＮ＿ｆｉｘを用い、特徴量を抽出する畳み込み層と分類器のネットワークのみを学習する。特徴量を抽出する畳み込み層のネットワークはＶＧＧ１６＿ｍｉｄから、分類器のネットワークはｃｌａｓｓｉｆｉｅｒ＿ｍｉｄから学習し、ファインチューニングを行う。
【００３２】
制御演算部は、ステップＳ２０３で、ＦａｓｔｅｒＲＣＮＮによる演算結果として、カテゴリと包含領域を出力する。カテゴリは、対象物の種類を示し、例えば「カップ」である。その他の候補としては、例えば「ペットボトル」「皿」「ビン」などであり、候補となるカテゴリは、観察対象とする空間に存在し得る物体の種類として予め定義されている。したがって、分類器は、このように予め定義されたカテゴリから最も確からしい一つを抽出する。また、包含領域は、対象物を取り囲む矩形領域として出力される。矩形領域は、画像領域中の二次元座標値として、例えば左上の（ｘ１，ｙ１）と右下の（ｘ２，ｙ２）のように定義される。
【００３３】
図４は、ステップＳ２００で示した、他の例の、カテゴリおよび包含領域の推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。図３の処理に代えて、こちらの処理を実行しても良い。
【００３４】
制御演算部は、ステップＳ１０１で取得したカラー画像データを入力画像としてメモリ上に展開する（ステップＳ２０１）。フロー図の右側に示すように、例えば、対象物であるカップがテーブルに載置された画像が展開される。
【００３５】
制御演算部は、ステップＳ２１２で、Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈによる演算を実行する。Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈは、文献「２０１１  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ」の「Ｓｅｇｍｅｎｔａｔｉｏｎ  ａｓ  Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈ  ｆｏｒ  Ｏｂｊｅｃｔ  Ｒｅｃｏｇｎｉｔｉｏｎ．」等に提案されている手法である。Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈは、初期の領域分割から類似度の高い隣接領域を結合していき、すべて結合するまで繰り返し、その過程で結合された領域を物体候補領域として出力する。類似度算出には領域の色、面積、テクスチャ、包括関係を組み合わせて使用する。この演算を実行することにより、制御演算部は、対象物を取り囲む包含領域を例えば左上の（ｘ１，ｙ１）と右下の（ｘ２，ｙ２）の座標値で出力する（ステップＳ２１３）。
【００３６】
続いて制御演算部は、ステップＳ２１４で、Ａｌｅｘ  Ｎｅｔによる演算を実行する。Ａｌｅｘ  Ｎｅｔは、文献「２０１２  Ｎｅｕｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ」等に提案されている手法である。Ａｌｅｘ  Ｎｅｔは、ディープラーニング手法の１つであり、例えば、畳み込み層５層、全結合層３層のネットワーク構造を持つニューラルネットワークである。入力画像は、Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈによって切り出されたカラー画像であり、 出力は各カテゴリの尤度である。制御演算部は、ステップＳ２１５で、例えば「カップ」のように、カテゴリを決定する。
【００３７】
図５は、ステップＳ３００で示した、対象物領域を抽出する手順を示すフロー図と、処理の一例を概念的に示す概念図である。制御演算部は、ステップＳ１０１で取得したカラー画像データを入力画像としてメモリ上に展開するとともに、ステップＳ２０３またはステップＳ２１３で演算した包含領域の座標情報を取得する（ステップＳ３０１）。
【００３８】
制御演算部は、ステップＳ３０２で、包含領域を予め定められた倍率で拡張した拡張領域を設定する。ここでは、倍率を１．２倍とする。同様に、ステップＳ３０３で、外部領域としてステップＳ３０２で設定した拡張領域を取り囲む外周領域を設定する。ここでは、外周領域を、包含領域の１．５倍とする。ただし、図示するように、包含領域が画像領域の周辺部に位置する場合は、包含領域を均等に拡張して拡張領域と外周領域を設定することができない。このような場合は、内側方向へ拡張すれば良い。
【００３９】
制御演算部は、このように設定した拡張領域と外周領域を用いて、ステップＳ３０４で、Ｇｒａｂｃｕｔ（グラフカット法）による演算を実行する。Ｇｒａｂｃｕｔは、文献「２００４  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ａｎｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｔｅｃｈｎｉｑｕｅｓ  （ＳＩＧＧＲＡＰＨ）．」の「Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｏｒｅｇｒｏｕｎｄ  Ｅｘｔｒａｃｔｉｏｎ  ｕｓｉｎｇ  ｉｔｅｒａｔｅｄ  ｇｒａｐｈ  ｃｕｔｓ．」等に提案されている手法である。本実施形態のように、外部領域に外周領域を定めるので、対象物以外の背景領域の色分布等の特徴を適切に抽出することができ、また、包含領域を拡張して拡張領域を定めるので、背景領域と同じ特徴を持つ部分をグループとして除去しやすい。すなわち、対象物の領域部分のみを精度良く切り取ることができる。
【００４０】
制御演算部は、ステップＳ３０５で、Ｇｒａｂｃｕｔによる演算結果として、対象物の輪郭によって囲まれた対象物領域を出力する。対象物領域は、例えば白抜きで図示するような領域であり、ピクセル座標値で定義される。ピクセル座標値は、包含領域を定義する左上の（ｘ１，ｙ１）座標を原点として、相対座標値で定義しても良い。この場合、対象物領域は、例えば、包含領域に含まれるピクセル群のうち、対象物領域に属するピクセルのみが相対座標値によって列挙されたリストにより表現される。
【００４１】
図６は、ステップＳ４００で示した、距離分布画像を生成する手順を示すフロー図と、処理の一例を概念的に示す概念図である。制御演算部は、ステップＳ１０２で取得した距離画像データを入力画像としてメモリ上に展開する（ステップＳ４０１）。フロー図の右側に模式的に示すように、各ピクセルは被写体の形状に対応したＤ値を有する。
【００４２】
制御演算部は、ステップＳ４０２で、展開した距離画像に、ステップＳ２０３またはステップＳ２１３で演算した包含領域を対応させて切り出す。このとき、カラー画像のピクセル数と距離画像のピクセル数が異なるのであれば、対応領域が一致するように座標値を変換する。また、カラー画像の視野と距離画像の視野にずれがある場合も、予めずれ量を計測しておくなどして、対応領域が一致するように座標値を変換する。
【００４３】
制御演算部は、ステップＳ４０３で、切り出した距離画像に、ステップＳ３０５で出力した対象物領域を対応させ、対象物領域以外の領域にマスキングを施す。具体的には、ステップＳ４０２で切り出した包含領域のうち、対象物領域に対応する領域以外の領域のピクセル値を０とする。そして、ステップＳ４０４では、対象物領域に包含されるピクセルの各Ｄ値に対して正規化処理を行う。具体的には、平均値が１、分散値が１となるようにＤ値を変換する。制御演算部は、このように、包含領域に囲まれたピクセル群の各Ｄ値に対して、対象物領域の内外で異なる変換を行うことによって距離分布画像を生成し、出力する（ステップＳ４０５）。
【００４４】
図７は、ステップＳ５００で示した、対象物の位置を算出する手順を示すフロー図と、処理の一例を概念的に示す概念図である。制御演算部は、ステップＳ４０５で出力された距離分布画像を取り込み、メモリに展開する（ステップＳ５０１）。そして、包含領域の中心に位置するピクセルを開始点として、対象ピクセルを同心円状に拡げつつ、変換されたＤ値が「１」のピクセルを探索する。具体的には、変換されたＤ値が１−δから１＋δ（δは予め定められた微少量）の範囲に含まれるピクセルを探す。見つかったら、当該ピクセルの座標を代表座標とし、そのピクセルの変換前のＤ値を対象物の距離として出力する（ステップＳ５０３）。
【００４５】
なお、対象物の距離の演算は、これに限らず、例えば、ステップＳ４０４の正規化処理直前の距離画像を利用することもできる。具体的には、対象物領域に囲まれたピクセルの平均Ｄ値を算出し、これを対象物の距離とすることもできる。また、対象物領域に含まれるピクセルの重心座標値を算出し、その座標値に最も近いピクセルが有するＤ値を対象物の距離としても良い。
【００４６】
図８は、ステップＳ６００で示した、姿勢推定の手順を示すフロー図と、処理の一例を概念的に示す概念図である。制御演算部は、ステップＳ２０３またはステップＳ２１５で出力した対象物のカテゴリと、ステップＳ４０５で出力した距離分布画像を取り込む。
【００４７】
カテゴリごとに用意されたＤＣＮＮ（Ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ）は、それぞれ事前に学習を終えており、制御演算部は、取り込んだカテゴリに対応するＤＣＮＮを選択して、取り込んだ距離分布画像を特徴量に変換する（ステップＳ６０２）。変換された特徴量Ｆｘは、例えば５１２次元のベクトルで表される。
【００４８】
制御演算部は、ステップＳ６０３で、選択したＤＣＮＮに対応する管理テーブルを読み込む。管理テーブルは、ディープラーニングによる照合モデルの学習済みテーブルである。具体的には、距離分布画像に相当する距離画像と対象物の姿勢とを対応付けた教師データからディープラーニングによって学習された後の全結合層の特徴量と対象物の姿勢との対応を示す、対象物のカテゴリごとに作成されたテーブルである。管理テーブルの一例をフロー図の右側に示す。対象物の姿勢は、例えば３×３の回転行列Ｒで規定され、それぞれの姿勢に、例えば５１２次元のベクトルＦが対応付けられて、インデックス番号により管理されている。
【００４９】
制御演算部は、ステップＳ６０４で、変換された特徴量Ｆｘが、管理テーブルに記述されたどの特徴量Ｆと最も近いかを探索する。フロー図の右側に３次元空間による概念図を示すが、実際には５１２次元の特徴量空間に散らばったインデックス個数分の、教師データから生成された特徴点Ｆの中から、最近傍の特徴点Ｆｎを探索するノルム演算を行う。
【００５０】
制御演算部は、最近傍の特徴点Ｆｎを決定したら、管理テーブルから対応する姿勢（３×３の回転行列Ｒｎ）を抽出して、対象物の姿勢として出力する（ステップＳ６０５）。以上の演算を経て、対象物の種類（カテゴリ）、位置および姿勢の推定結果が全て揃うことになる。
【００５１】
ここで、図８の処理で用いたＤＣＮＮの事前学習について説明する。図９は、ディープラーニング（ＤＣＮＮ）による事前学習を説明する説明図である。ここでは、カテゴリ「カップ」の管理テーブルを作成するまでの手順について説明する。
【００５２】
事前学習においては、カップをさまざまな姿勢で撮像して処理した入力画像を準備する。入力画像は、カテゴリ「カップ」に対して規定された画像領域（例えば１２８ピクセル×１２８ピクセル）を有する距離画像であり、ステップＳ４０４で行った正規化と同様の処理が施されている。それぞれの入力画像には、撮像したカップの、計測された「正解」としての姿勢（ここでは、３×３の回転行列Ｒ）が関連づけられており、入力画像と姿勢は、ペアとして教師データとなる。教師データは、例えば、ヨー、ピッチ、ロールのそれぞれの回転軸ごとに１０度刻みで３６クラスとして与える。
【００５３】
ＤＣＮＮは、入力画像を畳み込み層とプーリング層のペアが連続する特徴抽出部へ入力し、複数の全結合層と出力層から成る識別層を経て出力した出力層の尤度が「正解」の姿勢ほど高くなるように学習を繰り返す。そして、学習後のひとつの全結合層の結果を特徴量Ｆとして利用する。本実施形態においては、特徴抽出部に接続される最初の全結合層の結果を利用した。
【００５４】
このように得られた特徴量Ｆと入力画像に対する姿勢Ｒとを関連付けることにより、上述の管理データを作成することができる。他のカテゴリについても同様の処理を行うことにより、カテゴリごとの管理テーブルを作成することができる。なお、姿勢の与え方は３×３の回転行列Ｒの形式でなくても良く、四元数（ｑ１，ｑ２，ｑ３，ｑ４）の形式であっても、３軸のそれぞれをｓｉｎ値とｃｏｓ値で表現する形式であっても構わない。管理テーブルは、それぞれの形式にしたがって記述される。
【００５５】
以上、ＤＣＮＮを用いた姿勢推定を説明したが、ステップＳ６００の姿勢推定は、他の手法を利用することもできる。例えば、１２８ピクセル×１２８ピクセルから成る画像領域の全ピクセルを用いてマッチング処理を行う「Ｐｉｘｅｌ」や、主成分分析を用いる「ＰＣＡ」を利用しても良い。ＰＣＡについては、文献「電子情報通信学会誌 ８５（４），２５２−２５８，２００２−０４−０１」の「パラメトリック固有空間法による画像認識」等に提案されている手法を用いることができる。
【００５６】
ただし、ＤＣＮＮによる学習によれば、さまざまな姿勢に対する特徴量を互いに離散化させることができるので、照合する対象物の特徴量を一対一に対応させやすく、精度の高い姿勢結果を出力することができる。
【００５７】
図１０は、姿勢推定の実験結果を示す結果一覧である。ここでは、姿勢を推定したい対象物として「カップ」を設定し、「Ｐｉｘｅｌ」「ＰＣＡ」「ＤＣＮＮ」のそれぞれでカップの姿勢を推定した。「テスト：すべて」は、カップの取っ手が画像領域に現れない場合も含むテストであり、「テスト：容易」は、カップの取っ手が画像領域に現れる場合のみのテストである。
【００５８】
図の実験結果は、ヨー、ピーチ、ロールのそれぞれの回転角において、推定した姿勢が実際の姿勢とどれ程ずれたかを平均角度で表す誤差角度と、その標準偏差とを示している。図からもわかるように、ＤＣＮＮの結果が、誤差角度も相対的に小さく、ばらつき（標準偏差）も相対的に小さい。すなわち、姿勢を精度良く検出できていると言える。
【００５９】
以上説明した本実施形態では、ステップＳ６０５の姿勢出力において、最も近い特徴量Ｆｎに対応する姿勢Ｒｎを出力したが、特徴量Ｆの数が少ないような場合には、特徴量Ｆｎに隣接する特徴量Ｆも利用して、補間処理によって最近接点となる仮想的な特徴量Ｆｉを算出しても良い。算出した特徴量Ｆｉと算出に用いた近傍の特徴点Ｆとの距離の比を用いて、姿勢を特定することができる。
【００６０】
また、本実施形態においては、ロボットハンドが対象物を把持する場合に必要な事前の情報として、対象物の種類、位置、姿勢を検出した。しかし、対象物の種類、位置、姿勢の検出結果の利用は、このような用途に限らず、さまざまな状況において活用し得る。
【図１】
2018128897.tif 000003
【図２】
2018128897.tif 000004
【図３】
2018128897.tif 000005
【図４】
2018128897.tif 000006
【図５】
2018128897.tif 000007
【図６】
2018128897.tif 000008
【図７】
2018128897.tif 000009
【図８】
2018128897.tif 000010
【図９】
2018128897.tif 000011
【図１０】
2018128897.tif 000012