処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020110505 - 画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラム

Document

明 細 書

発明の名称 画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006  

課題を解決するための手段

0007   0008   0009   0010   0011   0012   0013  

発明の効果

0014  

図面の簡単な説明

0015  

発明を実施するための形態

0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096  

符号の説明

0097  

請求の範囲

1   2   3   4   5   6   7  

図面

1   2   3   4   5   6   7   8A   8B   8C   8D   9A   9B   9C   10A   10B   11   12   13   14  

明 細 書

発明の名称 : 画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラム

技術分野

[0001]
 本発明は、画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラムに関する。

背景技術

[0002]
 近年、ロボットの制御方法として、ビジュアルサーボシステムと呼ばれる制御方法が提案されている。例えば、対象物を把持するロボットの制御では、対象物を含む画像を入力画像としてカメラなどの視覚センサで取得し、この画像から特定されるロボットと対象物との位置関係に基づいて、対象物を把持するためにロボットが動作するための制御コマンドを生成する。そして、このような制御コマンドを生成するためには、取得された画像に適した制御コマンドを生成するための機械学習が行われる(例えば、特許文献1)。
[0003]
 ところで、上記のような機械学習を行うためには、種々の種類の対象物、あるいは種々の位置、向きで配置された対象物とロボットとの位置関係が写る学習用画像、及び各学習用画像に写る対象物に対してロボットが目標となる把持作業を行うための制御コマンド、を有する教師データが必要となり、一般的には、この教師データの数が多いほど、精度の高い学習を行うことができる。したがって、学習用画像としては、例えば、種類の異なる対象物が写る多数の画像や、あるいは対象物とロボットとの位置関係が異なる多数の画像が求められる。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2017-185577号公報

発明の概要

発明が解決しようとする課題

[0005]
 学習用画像としては、例えば、実作業空間を撮影した撮影画像を用いるほか、ロボットや対象物を模した仮想作業空間が描画された仮想画像を用いることができる。しかしながら、種々の対象物が配置された実作業空間の画像を多数撮影して撮影画像を生成するのは容易ではない。一方、上記のような仮想画像は、コンピュータによって生成できるため、多数の画像を容易に生成することができるが、人工的に生成した画像であるため、撮影画像に写るロボットのような実際のロボットを完全に描画することはできない。そのため、仮想画像を用いると、例えば、ロボットと対象物との位置関係を正確に特定することができないことがあり、このような場合には、目標とする把持動作のための制御コマンドを出力できないおそれがある。
[0006]
 本発明は、上記問題を解決するためになされたものであり、入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するために適した学習用画像を容易に生成することができる、画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラムを提供することを目的とする。

課題を解決するための手段

[0007]
 本発明に係る画像生成装置は、入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成する画像生成装置であって、前記ロボットを含み、前記対象物を含まない実作業空間を撮像した第1画像を取得する第1画像取得部と、前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を描画した第2画像を取得する第2画像取得部と、前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするように、機械学習により訓練された学習器と、を備えている。
[0008]
 上記画像生成装置において、前記学習器は、前記第3画像を生成する生成器と、前記第2画像に基づいて、前記第1画像に前記仮想対象物が付加された第4画像を取得する第4画像取得部と、前記生成器及び前記第4画像取得部に接続される判別器と、をさらに備え、前記機械学習は、前記判別器に入力された前記第3画像が、前記第4画像であるか否かを判別するよう前記判別器を訓練する第1訓練ステップ、及び前記判別器による前記判別が誤るような前記第3画像を生成するよう前記生成器を訓練する第2訓練ステップを交互に行うことを含むように構成することができる。
[0009]
 上記画像生成装置において、前記学習器は、前記第3画像を入力とし、前記ロボットによる作業のパフォーマンスを出力するように訓練された予測器をさらに備えることができる。
[0010]
 本発明に係るロボット訓練システムは、前記入力画像を取得する撮像部と、前記ロボットと、上述したいずれかの画像生成装置と、を備え、前記ロボットは、前記画像生成装置で生成された前記第3画像を含む学習データによって、前記入力画像から、所定の処理作業を行うように訓練される。
[0011]
 上記ロボット訓練システムにおいては、前記ロボットの作業をシミュレートするシミュレータと、前記シミュレータによる作業を評価する評価部と、をさらに備えることができる。
[0012]
 本発明に係る画像生成方法は、入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成する画像生成方法であって、前記ロボットを含み、前記対象物を含まない実作業空間を撮像した第1画像を取得するステップと、前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を描画した第2画像を取得するステップと、前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするステップと、を備えている。
[0013]
 本発明に係る画像生成プログラムは、入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成するコンピュータに、前記ロボットを含み、前記対象物を含まない実作業空間を撮像した第1画像を取得するステップと、前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を表示した第2画像を取得するステップと、前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするステップと、を実行させる。

発明の効果

[0014]
 本発明によれば、入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するために適した学習用画像を容易に生成することができる。

図面の簡単な説明

[0015]
[図1] 本発明の処理システムを、把持システムに適用した場面の一例を示すブロック図である。
[図2] 本発明の一実施形態に係る把持システムの概略構成図である。
[図3] 図2のシステムに用いられる制御装置のハードウェア構成を示すブロック図である。
[図4] 図2のシステムに用いられる学習装置のハードウェア構成を示すブロック図である。
[図5] 図2のシステムに用いられる画像生成装置のハードウェア構成を示すブロック図である。
[図6] 図2のシステムに用いられる評価装置のハードウェア構成を示すブロック図である。
[図7] 図5の画像生成装置の機能ブロック図である。
[図8A] 仮想画像の例を示す図である。
[図8B] 仮想画像の例を示す図である。
[図8C] 仮想画像の例を示す図である。
[図8D] 仮想画像の例を示す図である。
[図9A] 仮想画像と実画像との対応の例を示す図である。
[図9B] 仮想画像と実画像との対応の例を示す図である。
[図9C] 仮想画像と実画像との対応の例を示す図である。
[図10A] 仮想画像、実画像、及び合成画像の一例を示す図である。
[図10B] 仮想画像、実画像、及び合成画像の一例を示す図である。
[図11] 図3の制御装置の機能ブロック図である。
[図12] 図4の学習装置の機能ブロック図である。
[図13] 図6の評価装置の機能ブロック図である。
[図14] 図2のシステムの動作例を示すフローチャートである。

発明を実施するための形態

[0016]
 以下、本発明に係る画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラムの一実施形態について、図面を参照しつつ説明する。但し、以下で説明する実施形態は、あらゆる点において本発明の例示に過ぎず、本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
[0017]
 <1.適用例>
 まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、把持システム100に、本発明に係る画像生成装置を含むロボット訓練システムを適用した場面の一例を模式的に例示している。但し、本発明の適用範囲は、以下で例示する把持システムの例に限られる訳ではない。すなわち、本発明は、入力画像を取得し、この入力画像に基づいて、対象物に対して所定の作業を行うようにロボットを訓練するロボット訓練システム全般に適用可能である。
[0018]
 図1に例示されるとおり、本実施形態に係る把持システム100は、カメラ1、対象物Rを把持するロボット2、及びロボット2の動作を制御する制御装置3を含むビジュアルサーボ装置10と、ロボット2の動作を訓練するための学習装置4と、学習装置4に用いられる学習用画像を生成する画像生成装置5と、ロボット2の学習結果を評価する評価装置6と、を有している。まず、ビジュアルサーボ装置10について説明する。
[0019]
 このビジュアルサーボ装置10では、ロボット2が対象物Rを把持する作業が行われる実作業空間が、カメラ1によって撮影されるように、カメラ1の視野が調整されている。ロボット2は、一例として、2個の曲げ関節21、22を有するアーム20と、このアーム20を垂直軸回りに回転可能に支持する支持台23と、を備えている。また、アーム20の先端には、対象物Rを把持するグリッパ24が取り付けられている。そして、各曲げ関節21,22、アーム20の支持台23に対する回転、グリッパ24により対象物Rの把持は、図示を省略する駆動モータによって行われる。駆動モータに対する制御コマンドは、制御装置3から出力され、これによって、ロボット2が対象物Rを把持し、所定の位置まで移動させる目標作業が実行される。すなわち、目標作業を実行するように、各曲げ関節21,22の曲げ角度、支持台23に対するアーム20の回転角度、グリッパ24による把持の度合いが制御される。
[0020]
 そして、このようなロボット2の動作は、カメラ1によって撮影された画像に基づいて行われる。すなわち、カメラ1によって実作業空間を撮影し、対象物Rとロボット2が写る入力画像が取得される。そして、制御装置3の制御部31は、この入力画像に写る対象物Rの種類、位置、向き等、及び対象物Rとロボット2との位置関係から、対象物Rを把持するために必要なロボット1の動作を特定し、その動作のために必要な制御コマンドをロボット2に対して出力する。
[0021]
 制御部31は、入力画像に対応する適切な制御コマンドを出力するために、学習装置4によって機械学習されており、学習装置4が生成した学習結果データに基づいて、入力画像から制御コマンドを出力する制御を行う。ここで、ロボット2の動作の機械学習のためには、種々の種類の対象物R、あるいは種々の向きで配置された対象物Rとロボット2との位置関係が写る学習用画像と、各学習用画像に写る対象物Rに対してロボット2が目標作業を行うための制御コマンドと、を有する教師データが必要となり、一般的には、この教師データが多いほど、精度の高い学習を行うことができる。本実施形態では、このような学習に用いられる学習用画像を、画像生成装置5によって生成する。
[0022]
 本実施形態において、画像生成装置5は、2種類の画像を用いて学習用画像を生成する。一方の画像は、作業空間(対象物が入るトレイTを含む)、ロボット2、対象物Rの全てを仮想的に描画した仮想画像(第2画像)であり、この仮想画像は仮想画像生成部501で生成される。他方の画像は、作業空間、ロボット2、及び対象物Rのうち、対象物Rのみを仮想的に生成し、この仮想製品画像を、カメラ1で撮影した作業空間及びロボット2の実画像(第1画像)と合成した合成画像(第4画像)である。この合成画像は加工器503で生成される。そして、これら2つの画像を用い、学習器509によって学習用画像(第3画像)を生成している。
[0023]
 ここで、仮想画像は、あくまでも実作業空間をコンピュータで生成したものであるため、実際の作業空間を忠実に描画できていないおそれがある。そのため、このような仮想画像をそのまま使用して学習装置4で学習を行うと、適切な学習結果データを生成することができない可能性がある。例えば、仮想画像に写る対象物Rとロボット2との位置関係が、実作業空間の位置関係を忠実に再現できていない場合には、仮想画像からは、不正確な位置関係しか特定することができず、これによって目標作業を行うための正しい制御コマンドが出力されないおそれがある。そこで、本実施形態では、対象物Rのみを仮想的に描画し、これを、カメラ1で撮影した作業空間及びロボット2の撮影画像に合成した合成画像を用いている。そして、この合成画像と仮想画像の2つの画像を用い、学習器509によって、仮想画像を合成画像に近似するように変換した学習用画像を生成している。すなわち、合成画像は、対象物以外は実画像を用いているため、実際の作業空間をほぼ忠実に表しており、これを用いることで、仮想画像から、実作業空間に近似した学習用画像を生成している。また、合成画像は、ロボットのみが実画像で、対象物はコンピュータで生成したものであるため、全ての学習用画像を撮影画像で準備するのに比べ、容易に生成することができる。
[0024]
 また、このような生成された学習用画像を学習装置4に送信する前に、これが適切なものであるかを予測器508によって予測する。この予測器508は、学習用画像が適切な制御を行うことができるものであるか否かの評価を出力するように学習されたものである。したがって、この予測器508を用いることで、学習装置4に学習用画像を送信する前に、その適否の確認を行うことができる。
[0025]
 こうして生成された学習用画像は、学習装置4に送信され、制御部31の学習に用いられる。学習装置4で生成された学習結果データは、制御部31でそのまま用いられてもよいが、本実施形態では、それに先立って、評価装置6によって評価を行うこととしている。すなわち、学習装置4で生成された学習結果データを評価装置6に送信し、評価装置6のシミュレータ601で、ロボット2による作業のシミュレーションを行う。そして、その結果を評価部602によって評価する。ここでの評価は、例えば、ロボット2が対象物Rを把持できた確率や、対象物Rの正しい位置を把持できる確率など、把持作業に係る種々の評価とすることができる。
[0026]
 そして、評価部602が、学習結果データに対し、適切な評価である旨の判定をすれば、その学習結果データは、実作業に使用できるものとして、制御部31に送信される。また、この評価部62による評価によって、上述した予測器508の再学習を行うことができ、これによって、予測器508の予測精度を向上することができる。
[0027]
 本実施形態に係る把持システムの構成は種々の変更が可能であるが、以下では、特に、上述した学習器509を機械学習の一つであるGenerative Adversarial Network(GAN:敵対的生成ネットワーク)で構成した画像生成装置5を用いた例について説明する。以下、詳細に説明する。
[0028]
 <2.構成例>
 <2-1.ハードウエア構成>
 <2-1-1.把持システムの概要>
 図2を用いて、本実施形態に係る画像処理装置5が含まれる把持システム100について、説明する。図2に示すように、この把持システムは、ネットワーク10を介して接続される制御装置3、画像生成装置4、制御装置3の学習装置5、及び評価装置6を備えている。そして、制御装置3には、ロボット2と、このロボット2を含む実作業空間を撮影するカメラ1とが接続され、ビジュアルサーボ装置10を構成している。制御装置3、学習装置4、画像生成装置5、及び評価装置6の間のネットワークの種類は、特に限定されなくてもよく、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
[0029]
 なお、図2の例では、制御装置3、学習装置4、画像生成装置5、及び評価装置6はそれぞれ別個のコンピュータである。しかしながら、把持システムの構成は、このような例に限定されなくてもよい。制御装置3、学習装置4、画像生成装置5、及び評価装置6の少なくともいずれかのペアは一体のコンピュータであってもよい。また、制御装置3、学習装置4、画像生成装置5、及び評価装置6は、それぞれ複数台のコンピュータにより構成されてもよい。
[0030]
 <2-1-2.制御装置>
 次に、図3を更に用いて、本実施形態に係る制御装置3のハードウェア構成の一例について説明する。図3は、本実施形態に係る制御装置3のハードウェア構成の一例を模式的に例示する。
[0031]
 この制御装置3は、制御部31、記憶部32、外部インタフェース33、及び通信インタフェース34が電気的に接続されたコンピュータである。これにより、制御装置3は、カメラ1、把持装置2、及び後述するディスプレイ35の動作を制御するように構成される。なお、図3では、外部インタフェース33及び通信インタフェース34を「外部I/F」及び「通信I/F」と記載している。この点は、後述する各種装置においても同様である。
[0032]
 制御部31は、CPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、RAM、ROM等で構成され、制御プログラム321、学習結果データ322等を記憶する。制御プログラム321は、制御装置3にロボット2の制御処理を実行させるためのプログラムであり、学習装置4で生成された学習結果データ322に基づいて制御処理を行う。制御部31は、この制御プログラム321を解釈及び実行することで、後述する各ステップの処理を実行するように構成される。
[0033]
 外部インタフェース33は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース33が、ディスプレイ35に接続されている。このディスプレイ35は、例えば、把持装置2のステータスを表示するのに利用される。ディスプレイ35は、当該ステータスを表示可能であれば特に限定されなくてもよく、公知の液晶ディスプレイ、タッチパネルディスプレイ等が用いられてよい。その他、外部インタフェース33には、入力装置及び出力装置等を適宜接続することができる。
[0034]
 通信インタフェース34は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、有線又は無線通信を行うためのインタフェースである。すなわち、通信インタフェース34は、他の装置と通信を行うように構成された通信部の一例である。本実施形態では、ネットワーク10を介して、上述したカメラ1、把持装置2、及び学習装置4に接続されている。
[0035]
 なお、制御装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。制御部31は、複数のプロセッサを含んでもよい。また、制御部31は、FPGAにより構成されてもよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。また、記憶部32は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。制御装置3は、提供されるサービス専用に設計された情報処理装置の他、制御する対象に応じて、汎用のデスクトップPC、タブレットPC等であってもよい。以上の点は、後述する学習装置4、画像生成装置5、及び評価装置6においても同じである。
[0036]
 <2-1-3.ロボット>
 次に、ロボット2について説明する。ロボット2の概要は、上述したとおりであるが、さらに詳細な例について説明する。
[0037]
 各曲げ関節21,22の駆動やアームの回転を行う駆動モータは、サーボモータ、ブラシレスモータ等で構成される。また、各曲げ関節21,22、アーム20の基端部には、ロータリエンコーダ等の角度を検出可能な角度センサが取り付けられている。
[0038]
 また、グリッパ24には、これに作用する力を検出する力覚センサが取り付けられていてもよい。これにより、ロボット2は、グリッパ24に作用する力を検出するように構成可能である。
[0039]
 なお、ロボット2の具体的な構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、曲げ関節21,22の数は、実施の形態に応じて適宜選択されてよい。また、曲げ関節21,22には、上記角度センサの他に、トルクセンサが取り付けられていてもよい。これにより、各曲げ関節21,22の曲げ角度をトルクにより制御することができる。
[0040]
 また、ロボット2は、制御コマンドに基づいて行った作業の結果を、制御装置3にフィードバックし、これを後述する制御装置3の学習に反映させることもできる。
[0041]
 <2-1-4.カメラ>
 カメラ1は、ロボット2及び対象物Rを含む実作業空間を撮影するようになっている。なお、カメラ1は、所定の場所に固定されてもよいし、モータ等により撮影方向(向き)を変更可能に構成されてもよい。カメラ1には、一般のデジタルカメラ、ビデオカメラ、360度カメラ等が用いられてよいし、可視光撮影用でも赤外光撮影用カメラであってもよい。
[0042]
 <2-1-5.学習装置>
 図4は、本実施形態に係る学習装置を示すブロック図である。図4に示すように、本実施形態に係る学習装置4は、制御装置3の制御部31を学習するためのものであり、制御部41、記憶部42、通信インタフェース43、入力装置44、出力装置45、外部インタフェース46、及びドライブ47が電気的に接続されたコンピュータである。
[0043]
 制御部41は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、情報処理に応じて各構成要素の制御を行う。記憶部42は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部41で実行される学習プログラム421、学習結果データ422、及び学習データ423等を記憶する。
[0044]
 学習プログラム421は、学習装置4に、ニューラルネットワーク等の機械学習による学習処理を実行させるためのプログラムである。学習結果データ422は、学習処理の結果のデータであり、制御装置3の制御部31の設定を行うためのデータである。学習データ423は、学習を行うためのデータであり、この学習データ423の中に、後述する画像生成装置5で生成された学習用画像が含まれる。詳細は後述する。
[0045]
 通信インタフェース43及び外部インタフェース46は、制御装置3で示したものと同じである。入力装置44は、例えば、マウス、キーボード等の入力を行うための装置であり、出力装置45は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。
[0046]
 ドライブ47は、例えば、CD(Compact Disk)ドライブ、DVD(Digital Versatile Disk)ドライブ等であり、記憶媒体49に記憶されたプログラムを読み込むための装置である。ドライブ47の種類は、記憶媒体49の種類に応じて適宜選択されてよい。上記学習プログラム421及び/又は学習結果データ422は、この記憶媒体49に記憶されていてもよい。
[0047]
 記憶媒体49は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、このプログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。画像処理装置1は、この記憶媒体49から、学習プログラム421及び/又は学習結果データ422を取得してもよい。
[0048]
 ここで、図4では、記憶媒体49の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体49の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
[0049]
 <2-1-6.画像生成装置>
 図5は、本実施形態に係る画像生成装置を示すブロック図である。図5に示すように、本実施形態に係る画像生成装置5は、制御部51、記憶部52、通信インタフェース53、入力装置54、出力装置55、外部インタフェース56、及びドライブ57が電気的に接続されたコンピュータである。
[0050]
 制御部51~ドライブ57、及び記憶媒体59はそれぞれ、上記学習装置4の制御部41~ドライブ47及び記憶媒体49と同様の構成を有する。ただし、画像生成装置5の記憶部52は、制御部51で実行される画像生成プログラム521と、後述する生成器504、判別器505、及び予測器508の学習にそれぞれ利用する第1学習データ522、第2学習データ523、及び第3学習データ524と、学習プログラム521を実行して作成した第1学習結果データ525、第2学習結果データ526、及び第3学習結果データ527を、主として記憶する。
[0051]
 なお、上記学習装置4と同様に、各種のプログラム521及びデータ522~527は、記憶媒体59に記憶されていてもよい。これに応じて、画像生成装置5は、これらのプログラム521及びデータ522~527の少なくとも一つを記憶媒体59から取得してもよい。
[0052]
 また、通信インタフェース53には、ネットワーク10を介してカメラ1が接続されており、カメラ1によって撮影された実作業空間の画像が送信される。但し、後述するように、ここで用いられる実作業空間の画像には、製品Rは含まれない。
[0053]
 <2-1-7.評価装置>
[0054]
 図6は、本実施形態に係る評価装置を示すブロック図である。図6に示すように、本実施形態に係る評価装置6は、制御部61、記憶部62、通信インタフェース63、入力装置64、出力装置65、外部インタフェース66、及びドライブ67が電気的に接続されたコンピュータである。
[0055]
 制御部61~ドライブ67、及び記憶媒体69はそれぞれ、上記学習装置4の制御部41~ドライブ47及び記憶媒体49と同様の構成を有する。ただし、評価装置6の記憶部62は、評価装置6で実行されるシミュレーションプログラム621と、シミュレーションの結果を評価する評価プログラム622と、評価結果623等を記憶する。
[0056]
 なお、上記学習装置4と同様に、各種のプログラム621,622は、記憶媒体69に記憶されていてもよい。これに応じて、評価装置6は、これらのプログラム621,622の少なくとも一つを記憶媒体69から取得してもよい。
[0057]
 また、通信インタフェース63には、ネットワーク10を介して学習装置4及び画像生成装置5が接続されている。これにより、この評価装置6は、ネットワーク10を介して、学習装置4から学習結果データ422を取得するとともに、生成した評価結果623を画像生成装置5に送信し、予測器508の学習に用いる。
[0058]
 <2-2.ソフトウェア構成>
 <2-2-1.画像生成装置>
 次に、図7を参照しつつ、画像生成装置5のソフトウェア構成について説明する。図7に示すように、画像生成装置5の制御部51は、記憶部52に記憶された画像生成プログラム521をRAMに展開すると、その画像生成プログラム521をCPUにより解釈及び実行して、仮想画像生成部(第2画像取得部)501、抽出器502、加工器(第1画像取得部、第4画像取得部)503、生成器504、判別器505、学習処理部506、保存処理部507、及び予測器508を備えたコンピュータとして機能する。
[0059]
 仮想画像生成部501は、作業空間、ロボット2、対象物Rの全てを仮想的に生成した仮想画像を生成する。この仮想画像は、学習用画像の基礎となるため、多数の画像が生成される。例えば、図8A~図8Dに示すように、対象物Rの種類、位置、向きなどが相違する多数の仮想画像を生成する。その他、作業空間における照明(照度、色、向きなど)や、カメラ1の撮影位置を変えた仮想画像を生成することもできる。この仮想画像の中の対象物Rは、位置情報を含むことができる。
[0060]
 抽出器502は、作成された複数の仮想画像から、仮想画像毎に、作業空間内でのロボット及び対象物に関する特徴、つまり製品の形状、位置、向きなどの情報を抽出する。
[0061]
 加工器503は、カメラ1で撮影されたロボット2を含む作業空間の実画像を取得する。このとき、取得される実画像は、例えば、図9A~図9Cに示すように、仮想画像と対応するものを取得する。すなわち、各仮想画像と同じアームの回転位置、及び同じ関節角を有するロボット2、及び対象物Rが入るトレイTが写った作業空間の実画像を取得する。例えば、図9B及び図9Cの例では、仮想画像に含まれる対象物のみが相違し、ロボットは同じ位置にあるため、これに対応する実画像は、一つでよい。そして、取得された実画像に対し、加工器503は、例えば、公知のAR(Augmented Reality)等の技術を用い、対象物Rの画像を合成する。このとき、合成されたる対象物Rの画像は、抽出器502によって、対応する仮想画像から抽出された情報(位置情報など)に基づいて生成される。こうして加工器503において、実画像に対象物Rの画像が合成された合成画像が生成される。そして、仮想画像生成部501により生成された仮想画像は、生成器504に送信されるとともに、加工器503で生成された合成画像は、判別器505に送信される。図10A及び図10Bに、仮想画像、実画像、及び合成画像の例を示す。
[0062]
 次に、生成器504及び判別器505について説明する。これら生成器504及び判別器505は、GANによる学習ネットワークを構成している。そして、生成器504は、制御装置3や学習装置4と同様の多層構造のニューラルネットワークにより構成されている。同様に、判別器505も、多層構造のニューラルネットワークにより構成されている。但し、判別器505の構成は、生成器504と異なっていてよい。
[0063]
 そして、学習処理部506では、この学習ネットワークの機械学習を実施する。この機械学習を実施することは、判別器505を訓練する第1訓練ステップ及び生成器504を訓練する第2訓練ステップを交互に行うことを含む。学習処理部506は、第1訓練ステップでは、判別器505に入力された画像が、生成器504により生成された画像(後述する学習用画像)であるか、加工器503から送信された合成画像であるかを判別するように判別器505を訓練する。つまり、判別器505は、与えられた画像が加工器503由来か、生成器504由来かを判別するように訓練される。また、学習処理部506は、第2訓練ステップでは、判別器505による判別が誤るような画像を生成するように生成器504を訓練する。なお、ここでは、加工器503由来であることを「真」と表現し、生成器504由来であることを「偽」と表現する。ただし、各由来を表現する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
[0064]
 具体的に、第1訓練ステップでは、学習処理部506は、仮想画像を生成器504の入力層に入力し、生成器504の演算処理を実行する。これにより、生成器504は、入力した仮想画像に対応した合成画像に近似する学習用画像を出力層から取得する。例えば、図10Aに示す仮想画像から、合成画像に近似するように、仮想画像を変換し、学習用画像を出力する。
[0065]
 そして、この学習用画像は、学習処理部506により、判別器505の入力層に入力され、判別器505の演算処理を実行する。これにより、学習用画像が生成器50由来か加工器503由来かを判別した結果に対応する出力値を出力層から取得する。ここでは、判別器505に入力された画像は、生成器504の生成した学習用画像であるため、判別器505は、「偽」と判別するのが正解である。そして、出力層から得られる出力値とこの正解との誤差を算出する。学習処理部506は、各学習用画像について、出力層から得られる出力値とこの正解との誤差を算出する。
[0066]
 同様に、学習処理部506は、合成画像を判別器505の入力層に入力し、判別器505の演算処理を実行する。これにより、学習処理部506は、入力された画像が生成器504由来か加工器503由来かを判別した結果に対応する出力値を出力層から取得する。ここでは、入力された画像は合成画像であるため、判別器505は、「真」と判別するのが正解である。学習処理部506は、各合成画像について、出力層から得られる出力値とこの正解との誤差を算出する。
[0067]
 そして、学習処理部506は、算出される誤差の和が小さくなるように、判別器505のパラメータの値を調節する。出力層から得られる出力値と真偽の正解との誤差の和が閾値以下になるまで、学習処理部506は、上記一連の処理により、判別器505のパラメータの値の調節を繰り返す。これにより、第1訓練ステップでは、学習処理部506は、生成器505により生成された学習用画像であるか、合成画像であるかを判別するように判別器505を訓練する。
[0068]
 一方、第2訓練ステップでは、学習処理部506は、仮想画像を生成器504の入力層に入力し、生成器504の演算処理を実行する。これにより、学習処理部506は、上述したように、入力した仮想画像に対応した合成画像に近似する学習用画像を出力層から取得する。すなわち、仮想画像を、実画像が含まれる合成画像に近似した画像となるように変換した学習用画像を出力する。
[0069]
 次に、学習処理部506は、生成された学習用画像を判別器505の入力層に入力し、判別器505の演算処理を実行する。これにより、学習処理部506は、入力された学習用画像が生成器504由来か加工器503由来かを判別した結果に対応する出力値を出力層から取得する。この生成器504の訓練では、判別器505による判別の結果が誤らせることが正解である。つまり、生成器504で生成された学習用画像が、合成画像と見間違うほどに近似したものが生成されていればよく、出力層から得られる出力値が「真」に対応することが正解である。学習処理部506は、各学習用画像と合成画像の組み合わせについて、一連の処理により出力層から得られる出力値とこの正解(つまり、「真」)との誤差を算出する。
[0070]
 そして、学習処理部506は、算出される誤差の和が小さくなるように、生成器504のパラメータの値を調節する。各学習用画像と合成画像との組み合わせについて、一連の処理により出力層から得られる出力値と「真」との誤差の和が閾値以下になるまで、学習処理部506は、上記一連の処理により、生成器504のパラメータの値の調節を繰り返す。これにより、第2訓練ステップでは、学習処理部506は、判別器505による判別が誤るような学習用画像を生成するように生成器504を訓練する。
[0071]
 このように、学習処理部506は、上記第1訓練ステップ及び第2訓練ステップを交互に実施することで、判別器505及び生成器504の精度を交互に高めていく。これにより、生成器504は、実画像が含まれた合成画像とほぼ同じであるような学習用画像を適切に生成する能力を習得することができる。
[0072]
 この機械学習が完了した後、保存処理部507は、構築された生成器504及び判別器505の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、及び演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値)をそれぞれ示す第1学習結果データ及び第2学習結果データを生成する。そして、保存処理部507は、生成した第1及び第1学習結果データを所定の記憶領域に保存する。
[0073]
 こうして、学習された生成器504に仮想画像生成器501により生成された仮想画像を入力すると、合成画像に近似する学習用画像を生成することができる。このように、学習用画像を生成するに当たっては、実際の対象物Rを含む実画像を準備する必要がなく、学習用画像の生成の負荷を低減することができる。すなわち、学習用画像の生成を容易に行うことができる。そして、この学習用画像は、学習装置4に送信されるのであるが、その前に、この学習用画像が適切なものであるかを判定するために、予測器508が準備されている。この予測器508は、多層構造のニューラルネットワークにより構成されており、学習済みの生成器504において生成された学習用画像を入力とし、この学習用画像が把持装置2の制御に適切なものであるかを否かを出力とするように学習されている。その学習データは、次に説明する評価装置で出力された評価を用いることができる。すなわち、生成された学習用画像を用いて学習された学習結果データに基づいて、ロボット2のシミュレーションを行った結果、把持作業が適切に行われれば、その学習用画像は適切なものと判断できる。一方、把持作業が適切でなかった場合には、その学習用画像は適切ではないと判断できる。したがって、学習用画像と、評価装置6による評価との組み合わせを学習データとして予測器508を学習させれば、シミュレーションを行う前に、予測器508によって生成された学習用画像の適否を判断することができる。このとき生成される予測器508の学習結果データが、第3学習結果データとなる。
[0074]
 <2-2-1.制御装置>
 次に、図11を参照しつつ、制御装置3のソフトウェア構成について説明する。図11に示すように、制御装置3の制御部31は、記憶部32に記憶された制御プログラム321をRAMに展開すると、その制御プログラム321をCPUにより解釈及び実行して、学習結果データ取得部381、入力画像取得部382、処理部383、及び送信部384を備えたコンピュータとして機能する。
[0075]
 学習結果データ取得部381は、学習装置4から学習結果データ422を取得する。また、入力画像取得部382は、カメラ1から送信された入力画像を取得する。そして、処理部383は、入力画像が入力されると、この入力画像に基づいて、ロボット2の動作のための制御コマンドを出力するように学習されている学習器を構成する。
[0076]
 このような出力を行う処理部383は、ニューラルネットワーク30で構成されている。具体的には、図11に示すような、いわゆる深層学習に用いられる多層構造のニューラルネットワーク30であり、入力から順に、入力層301、中間層(隠れ層)302、及び出力層303を備えている。
[0077]
 図11の例では、ニューラルネットワーク30は1層の中間層302を備えており、入力層301の出力が中間層302の入力となり、中間層302の出力が出力層303の入力となっている。ただし、中間層302の数は1層に限られなくてもよく、ニューラルネットワーク30は、中間層302を2層以上備えてもよい。
[0078]
 各層301~303は、1又は複数のニューロンを備えている。例えば、入力層301のニューロンの数は、入力画像の数に応じて設定することができる。中間層302のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層303も、制御コマンドの数に応じて設定することができる。
[0079]
 隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図7の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
[0080]
 各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。制御装置3は、このようなニューラルネットワーク30の入力層301に上記入力画像を入力することで、出力層73から最適なロボットの動作を示す制御コマンドを得る。
[0081]
 なお、このようなニューラルネットワーク30の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習装置4で生成された学習結果データ422に含まれている。したがって、学習結果データ取得部381は、学習装置4から送信された学習結果データ422を参照して、学習済みのニューラルネットワーク30、つまり処理部383の設定を行う。
[0082]
 そして、処理部383によって出力された制御コマンドは、送信部384によって、ロボット2に送信される。
[0083]
 <2-2-3.学習装置>
 次に、図12を参照しつつ、学習装置4のソフトウェア構成について説明する。図12に示すように、学習装置4の制御部41は、記憶部42に記憶された学習プログラム421をRAMに展開すると、その学習プログラム421をCPUにより解釈及び実行して、学習データ生成部481、処理部482、送信部483を備えたコンピュータとして機能する。
[0084]
 学習データ生成部481は、画像生成装置5から受信した学習用画像と、その学習用画像に写るロボット2と対象物Rとの位置関係から適切な把持作業を行うための制御コマンドとを収集し、これらより学習データ423を生成する。そして、処理部482は、ニューラルネットワーク40を学習器として有しており、学習データ423を用いて、ニューラルネットワーク40の学習を、誤差伝播法などで学習する。そして、この学習の結果得られた学習結果データ422は、送信部483によって制御装置3に送信される。
[0085]
 <2-2-4.評価装置>
 次に、図13を参照しつつ、評価装置6のソフトウェア構成について説明する。図13に示すように、評価装置6の制御部61は、記憶部62に記憶されたシミュレーションプログラム621をRAMに展開すると、そのシミュレーションプログラム621をCPUにより解釈及び実行して、シミュレータ601及び評価部602を備えたコンピュータとして機能する。
[0086]
 シミュレータ601は、学習装置4から受信した学習結果データ422に基づいて、把持装置2のシミュレーションを行う。したがって、シミュレータ601は、上記学習結果データ422が組み込まれた制御装置3及びロボット2をコンピュータ上で再現し、所定の入力画像を入力したときに、ロボット2が適切な把持操作を行うか否かのシミュレーションを行う。そして、評価部602は、その動作の評価を行う。すなわち、上述したように、シミュレーションの結果、ロボット2が対象物Rを把持できたか、対象物Rを正しい角度で把持できたか、対象物Rの正しい位置を把持できたか、搬送後、対象物Rを正しく配置できたか等の評価を行う。そして、評価が所定値以上であれば、このシミュレーションに用いられた学習結果データは、適切なものと判断することができ、制御装置3で使用される。
[0087]
 また、評価に用いられた学習結果データを生成するために用いられた学習用画像は、上述した画像生成装置5の予測器508の学習に用いられる。
[0088]
 <3.動作例>
 次に、上記のように構成された把持システムの動作例について図14のフローチャートを参照しつつ説明する。まず、画像などのデータの収集を行う(ステップS101)。すなわち、カメラ1によって複数の実画像を取得したり、仮想画像生成器501によって複数の仮想画像を取得する。次に、取得した画像から合成画像を生成する。すなわち、仮想画像からロボット2及び対象物Rに関する特徴を抽出し、これに基づいて対応する実画像に対象物を合成した合成画像を生成する(ステップS102)。続いて、仮想画像及び合成画像に基づいて、生成器504と判別器505の訓練を行う(ステップS103)。こうして、生成器504の訓練が完了すれば、訓練済みの生成器504を用いて仮想画像から学習用画像を生成する(ステップS104)。
[0089]
 生成された学習用画像は、学習装置4に送信され、学習装置4により、制御装置3を駆動するための学習結果データを生成する。そして、評価装置6により、生成された学習結果データが適切であるかを評価し(ステップS105)、適切である場合には、この学習結果データを制御装置3に実装し、カメラ1及びロボット2を用いて、実際に対象物の把持作業を行う(ステップS106)。
[0090]
 <4.特徴>
 以上のように本実施形態によれば、ロボット2の制御装置3を学習するための学習用画像を画像生成装置5によって生成している。このような学習用の画像は、実画像に近いものを用いなければ、ロボット2がうまく作動しないおそれがある。しかしながら、ロボット2や対象物Rの位置、向きを変えた多数の学習用画像を準備するのは容易ではない。そこで、本実施形態では、ロボット2及びトレイTのみを含む実作業空間の実画像を取得し、これに対象物の仮想Rの画像を合成した合成画像を生成している。そして、GANを用いることで、仮想画像を、合成画像に近似するような学習用画像に変換し、これを学習用画像として採用している。したがって、学習用画像を生成するに当たって、実際の対象物Rを含む実画像を準備する必要がなく、学習用画像の生成の負荷を低減することができる。すなわち、学習用画像の生成を容易に行うことができる。また、生成される学習用画像に含まれるロボットRを含む実作業空間は、実画像に近似するように生成されているため、この画像から誤ったロボット2と対象物Rとの位置関係が特定されるのを防止することができ、精度の高い学習が可能となる。
[0091]
 <5.変形例>
 以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
[0092]
 <5-1>
 上記実施形態では、処理部383、処理部482、生成器504、判別部505、及び予測器508にはいわゆる多層構造の全結合ニューラルネットワークが用いられている。しかしながら、これらを構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、これらの少なくとも一つに畳み込みニューラルネットワークが利用されてよい。
[0093]
 <5-2>
 上実施形態では、仮想画像生成器501を画像処理装置5内に設けているが、仮想画像を別の装置で生成し、これを画像処理装置5が取得した上で、上記のような処理を行うこともできる。上記実施形態では、実画像に、ロボット2とトレイTを含む実作業空間が写っているが、少なくともロボット2が写されていればよい。
[0094]
 <5-3>
 上実施形態では、画像生成装置5に予測器508を設けているが、予測器508は必ずしも必要ではなく、設けなくてもよい。
[0095]
 <5-4>
 上実施形態では、GANにより仮想画像と合成画像から、学習用画像を生成しているが、GAN以外を用い、実画像を含む画像に近似するような学習用画像を仮想画像に基づいて生成することもできる。
[0096]
 <5-5>
 上記実施形態では、ロボット2が対象物を把持する制御のための学習用画像を画像生成装置5によって生成している。しかしながら、このような学習用画像の生成は、対象物を把持する場合に限られず、ロボットが、対象物に対して何らかの作業を行うビジュアルサーボシステム全般に適用することができる。すなわち、対象物を押したり、動かしたり、加工したり等の作業を行う制御を画像に基づいて行うようなシステム全般に、本発明の画像生成装置を適用することができる。

符号の説明

[0097]
1 カメラ(撮像部)
2 ロボット
3 制御装置
4 学習装置
5 画像生成装置
504 生成器
505 判別器
508 予測器
6 評価装置

請求の範囲

[請求項1]
 入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成する画像生成装置であって、
 前記ロボットを含み、前記対象物を含まない実作業空間を撮像した第1画像を取得する第1画像取得部と、
 前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を描画した第2画像を取得する第2画像取得部と、
 前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするように、機械学習により訓練された学習器と、
を備えている、画像生成装置。
[請求項2]
 前記学習器は、
 前記第3画像を生成する生成器と、
 前記第2画像に基づいて、前記第1画像に前記仮想対象物が付加された第4画像を取得する第4画像取得部と、
 前記生成器及び前記第4画像取得部に接続される判別器と、
をさらに備え、
 前記機械学習は、
 前記判別器に入力された前記第3画像が、前記第4画像であるか否かを判別するよう前記判別器を訓練する第1訓練ステップ、及び
 前記判別器による前記判別が誤るような前記第3画像を生成するよう前記生成器を訓練する第2訓練ステップを交互に行うことを含む、請求項1に記載の画像生成装置。
[請求項3]
 前記学習器は、前記第3画像を入力とし、前記ロボットによる作業のパフォーマンスを出力するように訓練された予測器(predictor)をさらに備えている、請求項2に記載の画像生成装置。
[請求項4]
 前記入力画像を取得する撮像部と、
 前記ロボットと、
 請求項1から3のいずれかに記載の画像生成装置と、
を備え、
 前記ロボットは、前記画像生成装置で生成された前記第3画像を含む学習データによって、前記入力画像から、所定の作業を行うように訓練される、ロボット訓練システム。
[請求項5]
 前記ロボットの作業をシミュレートするシミュレータと、
 前記シミュレータによる作業を評価する評価部と、
をさらに備えている、請求項4に記載のロボット訓練システム。
[請求項6]
 入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成する画像生成方法であって、
 前記ロボットを含み、前記対象物を含まない実作業空間を撮像した第1画像を取得するステップと、
 前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を描画した第2画像を取得するステップと、
 機械学習済みの学習器によって、前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするステップと、
を備えている、画像生成方法。
[請求項7]
 入力画像に基づいて、対象物に対し所定の作業を行うロボットの動作を訓練するための学習用画像を生成するコンピュータに、
 前記ロボットを含む実作業空間を撮像した第1画像を取得するステップと、
 前記ロボットに対応する仮想ロボットと、前記対象物に対応する仮想対象物とを含む仮想作業空間を描画した第2画像を取得するステップと、
 機械学習済みの学習器によって、前記第1画像及び第2画像を入力とし、前記第2画像に含まれる少なくとも前記仮想ロボットを、前記第1画像に含まれる前記ロボットに近似させるように前記第2画像を変換した第3画像を出力とするステップと、
を実行させる、画像生成プログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8A]

[ 図 8B]

[ 図 8C]

[ 図 8D]

[ 図 9A]

[ 図 9B]

[ 図 9C]

[ 図 10A]

[ 図 10B]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]