(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023055063
(43)【公開日】2023-04-17
(54)【発明の名称】学習システム、画像生成システム、生産システム、学習方法、及びGAN
(51)【国際特許分類】
G06T 7/00 20170101AFI20230410BHJP
G06N 20/00 20190101ALI20230410BHJP
B25J 13/08 20060101ALI20230410BHJP
【FI】
G06T7/00 350B
G06N20/00
B25J13/08 A
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021164164
(22)【出願日】2021-10-05
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】森 誠
(72)【発明者】
【氏名】増村 諒
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS04
3C707DS01
3C707KS35
3C707KT01
3C707KV01
3C707LS15
3C707LS20
3C707LV04
3C707LV05
3C707LW12
3C707LW15
5L096HA09
5L096JA03
5L096JA11
5L096KA04
(57)【要約】
【課題】実環境画像に仮想環境画像を近づけるためのGANの学習を実現する。
【解決手段】学習システム(S)の実環境画像取得部(101)は、複数の実対象物が配置された実環境の様子を示す実環境画像を取得する。仮想環境画像生成部(102)は、複数の仮想対象物が配置された仮想環境の様子を示し、実対象物の色及び実背景の色とは異なる色の仮想対象物及び仮想背景の少なくとも一方を含む仮想環境画像を生成する。GAN学習部(103)は、実環境画像と、仮想環境画像と、に基づいて、仮想環境画像を実環境画像に近づけるためのGANの学習を行う。
【選択図】
図7
【特許請求の範囲】
【請求項1】
複数の実対象物が配置された実環境の様子を示す実環境画像を取得する実環境画像取得部と、
複数の仮想対象物が配置された仮想環境の様子を示し、前記実対象物の色及び実背景の色とは異なる色の前記仮想対象物及び仮想背景の少なくとも一方を含む仮想環境画像を生成する仮想環境画像生成部と、
前記実環境画像と、前記仮想環境画像と、に基づいて、前記仮想環境画像を前記実環境画像に近づけるためのGAN(Generative Adversarial Networks)の学習を行うGAN学習部と、
を含む学習システム。
【請求項2】
前記仮想環境画像生成部は、互いに異なる色の前記仮想対象物及び前記仮想背景を含む前記仮想環境画像を生成する、
請求項1に記載の学習システム。
【請求項3】
前記仮想環境画像生成部は、前記実対象物の色及び前記実背景の色とは異なる複数の色を有する前記仮想対象物及び前記仮想背景の少なくとも一方を含む前記仮想環境画像を生成する、
請求項1又は2に記載の学習システム。
【請求項4】
前記学習システムは、前記実対象物の色と、前記実背景の色と、に基づいて、前記異なる色を設定する設定部を有する、
請求項1~3の何れかに記載の学習システム。
【請求項5】
前記仮想環境画像生成部は、前記実対象物の色及び前記実背景の色とは異なる色の前記仮想対象物を含む前記仮想環境画像を生成する、
請求項1~4の何れかに記載の学習システム。
【請求項6】
前記複数の実対象物には、第1の色の第1の実対象物と、第2の色の第2の実対象物と、が含まれており、
前記仮想環境画像生成部は、互いに異なる色の、前記第1の実対象物に対応する第1の仮想対象物と、前記第2の実対象物に対応する第2の仮想対象物と、を含む前記仮想環境画像を生成する、
請求項5に記載の学習システム。
【請求項7】
前記仮想環境画像生成部は、前記実対象物の色及び前記実背景の色とは異なる色の前記仮想背景を生成する、
請求項1~6の何れかに記載の学習システム。
【請求項8】
前記学習システムは、前記実対象物に対応する色の前記仮想対象物と、前記実背景に対応する色の前記仮想背景と、を含む3次元空間において、前記仮想対象物の位置が前記実対象物の位置と異なる仮想環境を生成するシミュレータを更に有し、
前記仮想環境画像生成部は、前記シミュレータが生成した前記仮想環境から前記仮想環境画像を生成する場合に、前記異なる色の前記仮想対象物及び前記仮想背景の少なくとも一方を含む前記仮想環境画像を生成する、
請求項1~7の何れかに記載の学習システム。
【請求項9】
請求項1~8の何れかに記載の学習システムと、
前記GAN学習部により学習されたGANにより、前記学習に使用された仮想環境画像と異なる仮想環境画像を前記実環境画像に近づけた疑似環境画像を生成するGAN推論部と、
を有する画像生成システム。
【請求項10】
請求項9に記載の画像生成システムと、
前記画像生成システムにより生成された疑似環境画像と、ロボットのピッキング情報と、を含む訓練データに基づいて、前記ロボットによるピッキングを制御するためのピッキング制御モデルの学習を行うモデル学習部と、
前記ロボットによるピッキングを制御する場合に、現在の前記実環境の様子を示す現在画像を取得する現在画像取得部と、
前記現在画像と、前記ピッキング制御モデルと、に基づいて、前記ロボットを制御するロボット制御部と、
を有する生産システム。
【請求項11】
前記仮想環境画像生成部は、前記仮想対象物と前記仮想背景を区別しやすくする画像処理を実行することによって、前記仮想環境画像を生成し、
前記GAN学習部は、前記画像処理が実行された前記仮想環境画像に基づいて、前記GANの学習を行い、
前記生産システムは、前記画像生成システムにより生成された疑似環境画像に、前記画像処理の逆変換を実行する逆画像処理部を更に有し、
前記モデル学習部は、前記逆画像処理部で逆変換が実行された前記疑似環境画像に基づいて、前記ピッキング制御モデルの学習を行う、
請求項10に記載の生産システム。
【請求項12】
複数の実対象物が配置された実環境の様子を示す実環境画像を取得し、
複数の仮想対象物が配置された仮想環境の様子を示し、前記実対象物の色及び実背景の色とは異なる色の前記仮想対象物及び仮想背景の少なくとも一方を含む仮想環境画像を生成し、
前記実環境画像と、前記仮想環境画像と、に基づいて、前記仮想環境画像を前記実環境画像に近づけるためのGAN(Generative Adversarial Networks)の学習を行う、
学習方法。
【請求項13】
複数の実対象物が配置された実環境の様子を示す実環境画像と、複数の仮想対象物が配置された仮想環境の様子を示し、前記実対象物の色及び実背景の色とは異なる色の前記仮想対象物及び仮想背景の少なくとも一方を含む仮想環境画像と、に基づいて学習が行われたGAN(Generative Adversarial Networks)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習システム、画像生成システム、生産システム、学習方法、及びGANに関する。
【背景技術】
【0002】
ロボット等の産業装置を制御するために、機械学習を利用する技術が知られている。機械学習モデルを学習させるためには、実環境の様子を示す実環境画像である訓練画像と、産業装置の制御情報と、を含む訓練データを多数用意する必要がある。例えば、訓練データを用意する手間を軽減するために、非特許文献1に記載のCycleGANを利用することが考えられる。CycleGANを利用すれば、仮想環境の様子を示す仮想環境画像を実環境画像に近づけた画像を取得できるので、実環境に近い訓練画像を、手間をかけずに用意できる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros, “Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”,[online],2018年1月24日,[令和3年9月3日検索],インターネット<https://arxiv.org/abs/1703.10593>
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の目的の1つは、例えば、実環境画像に仮想環境画像を近づけるためのGANの学習を実現することである。
【課題を解決するための手段】
【0005】
本開示の一側面に係る学習システムは、複数の実対象物が配置された実環境の様子を示す実環境画像を取得する実環境画像取得部と、複数の仮想対象物が配置された仮想環境の様子を示し、前記実対象物の色及び実背景の色とは異なる色の前記仮想対象物及び仮想背景の少なくとも一方を含む仮想環境画像を生成する仮想環境画像生成部と、前記実環境画像と、前記仮想環境画像と、に基づいて、前記仮想環境画像を前記実環境画像に近づけるためのGAN(Generative Adversarial Networks)の学習を行うGAN学習部と、を含む。
【発明の効果】
【0006】
本開示によれば、例えば、実環境画像に仮想環境画像を近づけるためのGANの学習を実現できる。
【図面の簡単な説明】
【0007】
【
図1】生産システムのハードウェア構成の一例を示す図である。
【
図2】生産システムにおける実環境の様子の一例を示す図である。
【
図3】シミュレータが生成した仮想環境の一例を示す図である。
【
図4】仮想対象物及び仮想背景が同化する場合の一例を示す図である。
【
図5】GANの学習回数とロスとの関係の一例を示す図である。
【
図6】第1実施形態で実行される処理の一例を示す図である。
【
図7】第1実施形態における機能の一例を示す機能ブロック図である。
【
図8】生産システムで実行される処理の一例を示すフロー図である。
【
図9】第4実施形態で実行される処理の一例を示す図である。
【
図10】第4実施形態の機能ブロック図の一例である。
【発明を実施するための形態】
【0008】
[1.第1実施形態]
本開示に係る生産システムの実施形態の一例である第1実施形態を説明する。第1実施形態では、生産システムにおいてロボットが制御される場合を例に挙げる。
【0009】
[1-1.生産システムのハードウェア構成]
図1は、生産システムのハードウェア構成の一例を示す図である。例えば、生産システムSは、学習装置10、コントローラ20、ロボット30、及びカメラ40を含む。
【0010】
学習装置10は、GAN(Generative Adversarial Networks)の学習を行う装置である。GANは、教師無し学習のアルゴリズムの一種である。第1実施形態では、GANの一例としてCycleGANを説明するが、SinGAN、DCGAN、又はStyleGANといった他のGANであってもよい。第1実施形態では、CycleGANを単にGANと記載する。
【0011】
例えば、学習装置10は、パーソナルコンピュータ、タブレット端末、スマートフォン、又はサーバコンピュータである。CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、揮発性メモリと、不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。操作部14は、マウス又はキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイである。
【0012】
コントローラ20は、ロボット30を制御する装置である。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってもよい。CPU11,21は、circuitryの一種である。circuitryは、MPU、FPGA、又はASICといった他の回路であってもよい。例えば、コントローラ20又はロボット30には、モータエンコーダやトルクセンサといったセンサが接続されていてもよい。コントローラ20には、カメラ40が接続される。第1実施形態では、カメラ40が深度センサを含む場合を説明するが、カメラ40は、深度センサを含まなくてもよい。
【0013】
なお、各装置に記憶されるプログラムは、産業用ネットワーク、LAN、又はインターネットといった任意のネットワークを介して供給されてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)、又は、外部機器と接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラムが読取部又は入出力部を介して供給されてもよい。
【0014】
[1-2.第1実施形態の概要]
第1実施形態では、コントローラ20が、ばら積みピッキングを行うロボット30を制御する場合を例に挙げる。ばら積みピッキングは、不規則に配置された実対象物をピッキングすることである。実対象物は、ロボット30による作業の対象となる物体である。実対象物は、ワークと呼ばれることもある。第1実施形態では、実対象物が部品である場合を例に挙げるが、実対象物は、製品、製品が梱包された箱、又は材料といった任意の物体であってよい。ピッキングの方法自体は、把持又は吸着といった種々の方法を利用可能である。
【0015】
図2は、生産システムSにおける実環境の様子の一例を示す図である。実環境REは、実対象物ROに対する作業が行われる環境である。例えば、実環境REは、工場等の施設内の空間である。
図2の例では、実対象物ROが載せられた箱が実環境REに配置されている。この箱は、カメラ40により生成される撮影画像における背景に相当するので、以降では、箱を実背景RBと記載する。なお、
図2では、学習装置10を省略しているが、学習装置10は、通信ケーブル等によってコントローラ20に接続可能である。
【0016】
第1実施形態では、カメラ40の位置及び向きが固定されている場合を説明するが、カメラ40の位置及び向きの少なくとも一方が変わってもよい。例えば、カメラ40は、ロボット30の作業範囲の上方に、真下を向くようにして配置される。カメラ40の位置及び向きは、任意の位置及び向きであってよく、第1実施形態の例に限られない。例えば、カメラ40は、斜め上から斜め下に実対象物RO及び実背景RBを見下ろすような位置及び向きであってもよい。他にも例えば、ロボット30又は他のロボットがカメラ40を把持してもよい。
【0017】
実対象物RO及び実背景RBは、カメラ40の撮影範囲内に収まるように配置される。カメラ40は、所定のフレームレートで連続的に撮影し、コントローラ20に撮影画像を連続的に送信する。以降、ロボット30を制御するために生成された撮影画像を、現在画像と記載する。コントローラ20は、カメラ40から受信した現在画像をピッキング制御モデルに入力し、実対象物ROのピッキング情報を取得する。
【0018】
ピッキング制御モデルは、機械学習を利用したモデルである。第1実施形態では、教師有り学習のモデルが利用される場合を説明するが、半教師有り学習又は教師無し学習のモデルが利用されてもよい。ピッキング制御モデルは、種々のモデルを利用可能であり、例えば、CNN、R-CNN、又はマスクR-CNNを利用してもよい。ピッキング制御モデルは、現在画像が入力されると、畳み込み等の処理を実行してピッキング情報を出力する。
【0019】
ピッキング情報は、ロボット30の目標位置を含む。目標位置は、ロボット30の移動先の位置である。ピッキング情報は、目標位置以外にも、ロボット30のハンドの向きや把持力といった他の情報を含んでもよい。コントローラ20は、ピッキング制御モデルから出力されたピッキング情報に基づいて、ロボット30を制御する。
【0020】
ピッキング制御モデルには、訓練用の画像と、正解となるピッキング情報と、のペアである訓練データが学習されている。訓練用の画像には、実環境REで想定されるばら積みの様子が示されている。ばら積みピッキングの精度を高めるには、種々のばら積みの様子を想定する必要があるので、多数の訓練データを用意する必要があり、非常に手間がかかる。そこで、第1実施形態では、シミュレータを利用することによって、訓練データを用意する手間を軽減する。シミュレータは、実環境REを模した仮想環境を生成するプログラムである。
【0021】
図3は、シミュレータが生成した仮想環境の一例を示す図である。第1実施形態では、仮想環境VEが3次元である場合を説明するが、仮想環境VEは、2次元であってもよい。仮想環境VEには、3次元の座標軸(
図3では、X軸、Y軸、及びZ軸)が設定される。例えば、これらの座標軸の原点Oは、ロボット30の位置に対応するように設定されてもよい。仮想環境VE内の位置は、3次元座標によって特定される。仮想環境VEには、仮想背景VBと、仮想対象物VOと、が配置される。
【0022】
仮想背景VBは、実背景RBである箱を模した3次元オブジェクトである。例えば、仮想背景VBは、箱の3次元スキャンデータ又はCADデータに基づいて作成される。他にも例えば、3辺の長さを指定することによって箱を再現したり、直径の長さを指定することによって球状の物体を再現したりするといったように、仮想背景VBは、ユーザが指定したパラメータに基づいて作成されてもよい。第1実施形態では、箱の形状及びサイズと、仮想背景VBの形状及びサイズと、が同じである場合を説明するが、これらの形状及びサイズの少なくとも一方は、多少であれば異なっていてもよい。これらの形状及びサイズの少なくとも一方が異なる場合には、形状及びサイズの少なくとも一方の違いが所定範囲に収まるものとする。
【0023】
仮想対象物VOは、実対象物ROを模した3次元オブジェクトである。例えば、仮想対象物VOは、実対象物ROの3次元スキャンデータ又はCADデータに基づいて作成される。第1実施形態では、実対象物ROの形状及びサイズと、仮想対象物VOの形状及びサイズと、が同じである場合を説明するが、これらの形状及びサイズは、多少であれば異なっていてもよい。これらの形状及びサイズの少なくとも一方が異なる場合には、形状及びサイズの少なくとも一方の違いが所定範囲に収まるものとする。
【0024】
仮想環境VEには、仮想カメラVCが設定される。第1実施形態では、座標軸の原点O、仮想カメラVC、及び仮想背景VBの位置関係と、ロボット30、カメラ40、及び実背景RBの位置関係と、が同じである場合を説明するが、これらの位置関係は、多少であれば異なっていてもよい。これらの位置関係が異なる場合には、位置関係の違いが所定範囲に収まるものとする。
【0025】
仮想カメラVCの向きは、カメラ40と同じ向きに設定される。第1実施形態では、カメラ40の撮影方向V1が下方向なので、仮想カメラVCの撮影方向V2も下方向(Z軸の負方向)になる。仮想カメラVCの撮影方向V2に、仮想背景VB及び仮想対象物VOが配置される。仮想背景VBの中には、任意の数の仮想対象物VOが配置される。例えば、仮想対象物VOの数、位置、及び向きは、ランダムに決定されてもよいし、ユーザが指定してもよい。なお、撮影方向V1及び撮影方向V2は、多少であれば異なってもよい。
【0026】
ピッキング制御モデルの精度を高めるためには、なるべく実環境REに近い訓練用の画像をピッキング制御モデルに学習させる必要がある。このため、仮想対象物VOを実対象物ROに近い色にして、仮想背景VBを実背景RBに近い色にしたうえで、仮想カメラVCの撮影範囲内の様子を示す仮想環境画像を生成することが考えられる。他にも例えば、仮想環境画像のうちの仮想背景VBの部分を、カメラ40で撮影した撮影画像のうちの実背景RBの部分に差し替えることも考えられる。
【0027】
しかしながら、シミュレータで再現できる実環境REの精度には限度があるので、学習装置10は、GANを利用して、仮想環境画像を実環境REに近づけるようにしている。GANは、カメラ40の撮影画像を利用する。以降、この撮影画像を、実環境画像と記載する。また、GANから出力される画像を、疑似環境画像と記載する。GANは、仮想環境画像を実環境画像に近づけた疑似環境画像を出力する。
【0028】
この点、実対象物ROの色と、実背景RBの色と、が大きく異なる場合には、実対象物RO及び実背景RBを明確に区別できるので、GANから出力される疑似環境画像は、実環境REの再現度が高くなる。一方、実対象物ROの色と、実背景RBの色と、が似ていると、実対象物RO及び実背景RBを区別しにくくなるので、GANから出力される疑似環境画像に示された仮想対象物VOが背景と同化する場合がある。カラー画像ではなく、グレースケール画像を利用する場合も同様の同化が発生する場合がある。
【0029】
図4は、仮想対象物VO及び仮想背景VBが同化する場合の一例を示す図である。
図4では、出願書類の都合上、各画像をグレースケールとしているが、各画像は、カラーであってもよい。
図4の実環境画像RIのように、実対象物ROの色と、実背景RBの色と、が似ていると、疑似環境画像IIにおける仮想対象物VO及び仮想背景VBが同化する場合がある。これらの色が同化する原因の1つとして、実環境画像RI及び仮想環境画像VIに基づいてGAN100Bの学習を行う場合のロス(学習誤差)が関係していることが考えられる。
【0030】
図5は、GAN100Bの学習回数とロスとの関係の一例を示す図である。GAN100Bは、生成器(Generator)及び識別器(Discriminator)の2つが存在する。本実施形態のように、GAN100BがCycleGANの場合には、生成器及び識別器が2セット存在する。GAN100Bの生成器及び識別器は、交互に学習される。学習がうまくいっている場合には、生成器及び識別器の各々のロスは下がらずに、互いに拮抗した状態となる。これは、生成器は、識別器をうまく騙すほどロスが小さくなり、識別器は、生成器が生成した画像の真贋をうまく見破るほどロスが低くなるよう学習されるからである。このため、単純にロスが下がることが良い状態を意味するとは限らない。ただし、GAN100Bが十分に学習された場合に、重みが固定された識別器に対しては、ロスが低いほど高品質の画像が生成されているとみなすことはできる。
【0031】
生成器の学習フェーズでは、仮想環境画像VIの仮想対象物VOを実背景RB(仮想背景VB)に近づけたほうが識別器を騙せるか(即ち、ロスが下がるか)、仮想環境画像VIの仮想対象物VOを実際の実対象物ROに近づけたほうが識別器を騙せるか(即ち、ロスが下がるか)、によって、仮想対象物VOが実背景RB(仮想背景VB)に近づくか、仮想対象物VOが実対象物ROに近づくかが決まると考えられる。
【0032】
例えば、仮想環境画像VIの仮想対象物VOが実背景RBに近い場合(例えば、仮想環境画像VIにおいて、実背景RBの色、仮想対象物VOの色、実対象物ROの色の順に並ぶ場合)、学習フェーズの序盤から識別器をうまく騙すことができてしまい、ロスが比較的小さくなることがある。この場合、GAN100Bの重みの更新量が小さくなり、局所解(即ち、仮想対象物VOの色を実背景RBの色に近づけること)に陥りやすくなる。一方、実背景RBの色と、仮想対象物VOの色と、が大きく異なる場合(例えば、仮想環境画像VIにおいて、実背景RBの色、実対象物ROの色、仮想対象物VOの色の順に並ぶ場合)には、学習フェーズの序盤は識別器をうまく騙すことができず、ロスが比較的大きくなることがある。この場合、GAN100Bの重みの更新量が大きくなるため、学習フェーズの序盤で谷を越えやすくなると思われる。
【0033】
図5のように、実環境画像RIと、仮想環境画像VIと、に基づいて、GAN100Bの学習が繰り返し実行されてロスが変化する。序盤の学習回数n1の時点では、まだロスが大きいので、仮想対象物VOは実対象物ROの色に近づかない。ロスが小さくなるにつれて、仮想対象物VOの色が実対象物ROの色に近づく。
【0034】
例えば、学習回数n2の時点では、先述した局所解に陥った状態になり、仮想対象物VOは、実対象物RO及び実背景RBの中間色になることがある。この状態だと、
図4のように仮想対象物VO及び仮想背景VBが同化する場合がある。学習回数n3の時点では、学習回数n2のような谷の部分を超えており、仮想対象物VOの色が実対象物ROの色にかなり近づく。この状態になれば、仮想対象物VO及び仮想背景VBを区別でき、かつ、実環境REに近い状態の疑似環境画像IIになる。
【0035】
上記のように、学習フェーズの序盤で谷を越えることができなければ、仮想対象物VOの色が、実対象物ROの色ではなく、実対象物RO及び実背景RBの中間色又は実背景RBに近い色になることがある。
図5の例であれば、学習回数n2のようなロスの曲線における谷を超えることができなければ、
図4の疑似環境画像IIのように、仮想対象物VO及び仮想背景VBが同化する場合がある。一方、ロスの曲線における谷を越えることができれば、仮想対象物VO及び仮想背景VBが同化するといったことを防止できると考えられる。
【0036】
この点、ロスの曲線における谷を越えるためには、学習の序盤において、あえてロスが大きくなるような仮想環境画像VIを生成し(
図5における学習回数n1をより高い位置から落とすような慣性を与え)、学習の序盤でロスの谷にはまることを防止すれば、ロスの曲線における谷に入る前のロスの変化が大きくなる。谷に入る前のロスの変化が大きいと、その付近で学習が落ち着く(GAN100Bが実環境REを十分に再現できているとみなしてしまう)ことがなくなるので、谷を越えることができると考えられる。例えば、このような学習は、モメンタム項を有するオプティマイザ(例えば、Adamと呼ばれる、完成の性質を取り入れた手法)により実現可能である。一方、学習の序盤における学習量が少なければ、ロスの曲線の傾きが緩やかになり、谷付近のロスで学習が落ち着いてしまい、ロスの曲線の谷を越えることができない可能性がある。そこで、第1実施形態では、特に学習の序盤における学習量が多くなるように、仮想対象物VOの色を、あえて実対象物ROとは大きく異なる色になるようにしている。
【0037】
図6は、第1実施形態で実行される処理の一例を示す図である。
図6の仮想環境画像VIのように、第1実施形態では、仮想対象物VOの色と、実対象物ROの色と、は大きく異なる。その結果、仮想対象物VOの色と、仮想背景VBの色と、も大きく異なる。例えば、実対象物RO及び実背景RBがグレー色だったとすると、仮想対象物VOを黄色にして、仮想背景VBをグレー色にする。これにより、学習の序盤でロスの曲線における谷を越えることができる。このため、実環境画像RIに仮想環境画像VIを近づけるようなGAN100Bの学習を実現できる。以降、第1実施形態の詳細を説明する。
【0038】
[1-3.第1実施形態における機能]
図7は、第1実施形態における機能の一例を示す機能ブロック図である。
【0039】
[1-3-1.学習装置の機能]
データ記憶部100は、記憶部12を主として実現される。実環境画像取得部101、仮想環境画像生成部102、GAN学習部103、GAN推論部104、訓練データ生成部105、及びモデル学習部106は、CPU11を主として実現される。
【0040】
[データ記憶部]
データ記憶部100は、シミュレータ100Aを記憶する。例えば、シミュレータ100Aは、実対象物ROに対応する色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を含む3次元空間において、仮想対象物VOの位置が実対象物ROの位置と異なる仮想環境VEを生成する。この仮想環境VEは、
図4の仮想環境画像VIに示された仮想環境VEとなる。
【0041】
実対象物ROに対応する色とは、実対象物ROと同じ色、又は、実対象物ROと似ている色である。色が似ているとは、数値化した色の数値の差が閾値未満のことである。色をベクトル形式で表現する場合には、ベクトル空間における距離が閾値未満であることは、色が似ていることに相当する。例えば、同系色であることは、色が似ていることに相当する。実背景RBに対応する色とは、実背景RBと同じ色、又は、実背景RBと似た色である。
【0042】
実背景RBは、実環境画像RIに示された物体のうち、実対象物RO以外の物体である。例えば、実背景RBは、カメラ40の撮影範囲にある物体のうち、実対象物ROよりもカメラから遠い位置にある物体である。実背景RBは、箱以外の物体であってもよい。例えば、箱以外の容器、シート、ベルトコンベア、又は机の上に実対象物ROが配置される場合、箱以外の容器、シート、ベルトコンベア、又は机が実背景RBに相当する。また、複数の物体の組み合わせが実背景RBに相当してもよい。
【0043】
仮想背景VBは、仮想環境画像VIに示された仮想的な物体のうち、仮想対象物VO以外の物体である。第1実施形態では、3次元オブジェクトが仮想的な物体に相当するが、仮想環境VEが2次元であれば、平面的な画像が仮想的な物体に相当する。例えば、仮想背景VBは、仮想カメラVCの撮影範囲にある仮想的な物体のうち、仮想対象物VOよりも仮想カメラVCから遠い位置にある物体である。仮想背景VBは、箱以外の物体であってもよい。例えば、箱以外の容器、シート、ベルトコンベア、又は机を模した仮想的な物体の上に仮想対象物VOが配置される場合、箱以外の容器、シート、ベルトコンベア、又は机を模した仮想的な物体が仮想背景VBに相当する。
【0044】
例えば、データ記憶部100は、仮想対象物VO及び仮想背景VBの各々の色に関する色情報を記憶する。色情報には、色だけではなく、必要に応じて模様パターンが示されてもよい。例えば、色情報は、テクスチャであってもよい。仮想対象物VO及び仮想背景VBは、単色であってもよいし、複数色であってもよい。仮想対象物VO及び仮想背景VBの各々の色は、ユーザにより指定されてもよいし、実環境画像RIから取得されてもよい。仮想対象物VO及び仮想背景VBの各々の色は、シミュレータ100Aに予め定められたデフォルトの色であってもよい。
【0045】
データ記憶部100は、学習前のGAN100Bを記憶する。データ記憶部100は、GAN100Bに含まれるパラメータ及びプログラムといったデータを記憶する。データ記憶部100に記憶されたGAN100Bは、GAN学習部103により学習が行われる。GAN学習部103による学習が行われた場合、データ記憶部100は、学習済みのGAN100Bを記憶する。
【0046】
データ記憶部100は、学習前のピッキング制御モデル100Cを記憶する。データ記憶部100は、ピッキング制御モデル100Cに含まれるパラメータ及びプログラムといったデータを記憶する。データ記憶部100に記憶されたピッキング制御モデル100Cは、モデル学習部106により学習が行われる。モデル学習部106による学習が行われた場合、データ記憶部100は、学習済みのピッキング制御モデル100Cを記憶する。
【0047】
データ記憶部100は、訓練データベース100Dを記憶する。訓練データベース100Dには、複数の訓練データが格納される。個々の訓練データは、先述した通りである。訓練データは、訓練データ生成部105により生成される。データ記憶部100は、仮想対象物VO及び仮想背景VBのデータ、コントローラ20の設定をするためのエンジニアリングツールといった他の任意のデータも記憶可能である。
【0048】
[実環境画像取得部]
実環境画像取得部101は、複数の実対象物ROが配置された実環境REの様子を示す実環境画像RIを取得する。第1実施形態では、カメラ40により実環境画像RIが生成される場合を説明するが、他のカメラにより実環境画像RIが生成されてもよい。実環境画像取得部101は、カメラ40から直接的に実環境画像RIを取得してもよいし、コントローラ20、他の装置、又は情報記憶媒体に記録された実環境画像RIを取得してもよい。
【0049】
[仮想環境画像生成部]
仮想環境画像生成部102は、複数の仮想対象物VOが配置された仮想環境VEの様子を示し、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VO及び仮想背景VBの少なくとも一方を含む仮想環境画像VIを生成する。色が異なるとは、色が同じではないこと、又は、色が似ていないことを意味する。
【0050】
第1実施形態では、実対象物ROの色及び実背景RBの色と、仮想対象物VOの色と、が異なり、かつ、実背景RBの色と、仮想背景VBの色と、が似ている場合を例に挙げる。このため、仮想環境画像生成部102は、互いに異なる色の仮想対象物VO及び仮想背景VBを含む仮想環境画像VIを生成する。仮想環境画像生成部102は、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VOを含む仮想環境画像VIを生成するということもできる。なお、実背景RBの色と、仮想背景VBの色と、が似ているので、結果的に、実対象物ROの色と、仮想背景VBの色と、も似ていることになる。
【0051】
仮想対象物VOには、予め色が設定されていてもよいし、仮想環境画像生成部102が仮想対象物VOに色を設定してもよい。例えば、仮想環境画像生成部102は、色が設定されていない仮想対象物VOに対し、データ記憶部100に記憶された色情報に基づいて、色を設定してもよい。色情報がテクスチャを示す場合には、テクスチャマッピングによって、仮想対象物VOの表面にテクスチャを設定すればよい。実対象物ROに対応する色が仮想対象物VOにデフォルトで設定されている場合には、仮想環境画像生成部102は、仮想対象物VOに設定された色を変更すればよい。仮想背景VBも同様に、予め仮想背景VBに色が設定されていてもよいし、仮想環境画像生成部102が仮想背景VBに色を設定してもよい。
【0052】
例えば、実対象物RO及び実背景RBが無彩色だったとすると、仮想環境画像生成部102は、有彩色の仮想対象物VOと、無彩色の仮想背景VBと、を含む仮想環境画像VIを生成してもよい。実対象物RO及び実背景RBがグレー系統の色だったとすると、仮想環境画像生成部102は、グレー色とはかけ離れた黄色の仮想対象物VOと、グレー系統の色の仮想背景VBと、を含む仮想環境画像VIを生成する。
【0053】
逆に、実対象物RO及び実背景RBが有彩色だったとすると、仮想環境画像生成部102は、無彩色の仮想対象物VOと、有彩色の仮想背景VBと、を含む仮想環境画像VIを生成してもよい。例えば、実対象物RO及び実背景RBが緑系統の色だったとすると、仮想環境画像生成部102は、緑系統の色とはかけ離れたグレー色の仮想対象物VOと、緑系統の色の仮想背景VBと、を含む仮想環境画像VIを生成する。
【0054】
なお、仮想対象物VOの色は、上記の例に限られず、仮想背景VBと十分に区別できる色であればよい。また、色の類否は、公知のカラーパレットツール等で定義された類似色に応じて定めてもよい。例えば、仮想環境画像生成部102は、実対象物RO及び実背景RBが互いに反対色となるように、仮想環境画像VIを生成してもよい。反対色は、補色、余色、又は対象色と呼ばれることもある。
【0055】
第1実施形態では、シミュレータ100Aが仮想環境VEを生成するので、仮想環境画像生成部102は、シミュレータ100Aが生成した仮想環境VEから仮想環境画像VIを生成する場合に、異なる色の仮想対象物VO及び仮想背景VBの少なくとも一方を含む仮想環境画像VIを生成する。仮想環境画像生成部102の処理は、シミュレータ100Aの処理の一部として実行されてもよい。仮想環境画像生成部102は、所定の座標変換処理を実行することによって、シミュレータ100Aが生成した仮想環境VEのうち、仮想カメラVCの撮影範囲内の様子を示す仮想環境画像VIを生成する。
【0056】
仮想環境画像生成部102は、GAN100Bの学習用の仮想環境画像VIと、訓練データの生成用(GAN100Bの推論用)の仮想環境画像VIと、を生成する。学習用の仮想環境画像VIと、訓練データの生成用の仮想環境画像VIと、は仮想環境VEにおける仮想対象物VOの数、位置、及び姿勢の少なくとも1つが異なる。例えば、シミュレータは、仮想対象物VOの数、位置、及び姿勢の少なくとも1つをランダムに決定することによって、学習用の仮想環境画像VIと、訓練データの生成用の仮想環境画像VIと、を異ならせる。ユーザが、仮想対象物VOの数、位置、及び姿勢の少なくとも1つを指定してもよい。仮想環境画像生成部102は、GAN100Bの学習用の仮想環境画像VIと、訓練データの生成用の仮想環境画像VIと、をそれぞれ少なくとも1枚生成すればよく、これらの枚数は任意であってよい。例えば、訓練データの生成用の仮想環境画像VIは、数十枚~数千枚又はそれ以上生成されてもよい。
【0057】
[GAN学習部]
GAN学習部103は、実環境画像取得部101により取得された実環境画像RIと、仮想環境画像生成部102により生成された仮想環境画像VIと、に基づいて、仮想環境画像VIを実環境画像RIに近づけるためのGAN100Bの学習を行う。第1実施形態では、GAN学習部103は、仮想環境画像VIが実環境画像RIに近づけるGAN100Bになるように、GAN100Bの学習を行う。
【0058】
なお、GAN100Bの学習自体は、公知の教師無し学習の手法を利用すればよい。例えば、GAN100BがCycleGANである場合には、先述したように、GAN学習部103は、生成器及び識別器を2セット含み、生成器及び識別器を交互に学習させることによって、GAN100Bの学習を行う。GAN学習部103は、予め定められた回数だけ学習を繰り返してもよいし、ユーザがGAN100Bから出力された疑似環境画像VIを視認して十分な精度になった場合に学習を終了してもよい。他にも例えば、Inception Score又はFIDと呼ばれるスコアを利用して学習の終了が判定されてもよい。
【0059】
[GAN推論部]
GAN推論部104は、GAN学習部103により学習されたGAN100Bにより、学習に使用された仮想環境画像VIと異なる仮想環境画像VIを実環境画像RIに近づけた疑似環境画像IIを生成する。学習に使用された仮想環境画像VIは、先述した学習用の仮想環境画像VIである。この仮想環境画像VIと異なる仮想環境画像VIは、先述した訓練データの生成用の仮想環境画像VIである。
【0060】
GAN推論部104は、仮想環境画像VIをGAN100Bに入力して疑似環境画像IIを生成させ、GAN100Bから出力された疑似環境画像IIを取得する。例えば、仮想環境画像生成部102が、訓練データの生成用の仮想環境画像VIをn(nは自然数)枚生成したとすると、GAN推論部104は、n枚の仮想環境画像VIの各々をGAN100Bに入力し、n枚の疑似環境画像IIを生成する。
【0061】
[訓練データ生成部]
訓練データ生成部105は、GAN推論部104により生成された疑似環境画像IIに基づいて、ピッキング制御モデル100Cに学習させる訓練データを生成する。訓練データ生成部105は、GAN推論部104により生成された疑似環境画像IIをそのまま訓練用の画像として取得してもよいし、階調処理等の画像処理を施した疑似環境画像IIを訓練用の画像として取得してもよい。訓練データ生成部105は、疑似環境画像IIに対応するピッキング情報を取得し、疑似環境画像II及びピッキング情報のペアを、訓練データとして生成して訓練データベース100Dに格納する。
【0062】
例えば、訓練データ生成部105は、仮想環境VEの状況を解析することによって、ピッキング情報を取得する。この解析方法自体は、任意の方法であってよい。例えば、訓練データ生成部105は、仮想環境VEにおける仮想対象物VOの位置を示す3次元座標を取得する。この位置は、仮想対象物VOの表面、内部、又は周囲の位置であってよい。この位置は、仮想対象物VOの重心に基づいて定まる位置であってもよい。ピッキング情報の3次元座標は、仮想環境VEの座標軸における座標であってもよいし、仮想カメラVCを基準とした座標であってもよい。ピッキング情報は、上記説明した解析的な方法によって取得されるのではなく、ユーザにより指定されてもよい。
【0063】
なお、ピッキング情報は、複数の実対象物ROの各々に対するピッキングの位置等の上方を含んでもよい。即ち、1つの疑似環境画像IIに対し、複数の実対象物ROを次々と連続的にピッキングするためのピッキング位置等を含むピッキング情報が関連付けられてもよい。この場合には、ピッキング情報には、ピッキング位置等が時系列的に示されているものとする。この場合も、個々のピッキング位置等は、シミュレータ100Aが生成した仮想環境VEを解析することによって取得されてもよいし、ユーザにより指定されてもよい。
【0064】
[モデル学習部]
モデル学習部106は、GAN推論部104により生成された疑似環境画像IIと、ロボットのピッキング情報と、を含む訓練データに基づいて、ロボットによるピッキングを制御するためのピッキング制御モデル100Cの学習を行う。学習自体は、教師有り学習で利用される公知の学習方法を利用すればよい。例えば、モデル学習部106は、誤差逆伝播法や勾配降下法といった手法を利用して、疑似環境画像IIが入力された場合に、疑似環境画像IIに対応するピッキング情報が出力されるように、ピッキング制御モデル100Cの学習を行う。モデル学習部106は、学習済みのピッキング制御モデル100Cをデータ記憶部100に記録する。このピッキング制御モデル100Cは、コントローラ20のデータ記憶部200にも記録される。
【0065】
[1-3-2.コントローラの機能]
データ記憶部200は、記憶部22を主として実現される。現在画像取得部201及びロボット制御部202は、CPU21を主として実現される。
【0066】
[データ記憶部]
データ記憶部200は、ロボット30を制御するために必要なデータを記憶する。例えば、データ記憶部200は、学習済みのピッキング制御モデル200Aを記憶する。このピッキング制御モデル200Aは、学習装置10のデータ記憶部100に記憶された学習済みのピッキング制御モデル100Cと同じである。データ記憶部200は、ロボット30の動作手順が定義されたプログラムと、ロボット30の制御で利用されるパラメータと、を記憶する。
【0067】
[現在画像取得部]
現在画像取得部201は、ロボット30によるピッキングを制御する場合に、現在の実環境REの様子を示す現在画像を取得する。現在画像取得部201は、カメラ40から現在画像を取得する。第1実施形態では、実環境画像RIもカメラ40から取得されるが、実環境画像RIがGAN100Bの学習で用いられるのに対し、現在画像は、ロボット30の制御で用いられる点で異なる。現在画像取得部201がカメラ40から直接的に現在画像を取得する場合を説明するが、現在画像取得部201は、他の装置を介して現在画像を取得してもよい。
【0068】
[ロボット制御部]
ロボット制御部202は、現在画像と、ピッキング制御モデル200Aと、に基づいて、ロボット30を制御する。ロボット制御部202は、現在画像をピッキング制御モデル200Aに入力し、ピッキング制御モデル200Aから出力されたピッキング情報を取得する。例えば、ロボット制御部202は、当該取得されたピッキング情報が示す目標位置にロボット30が移動するように、ロボット30を制御する。
【0069】
なお、所定の目標位置にロボット30を移動させる方法自体は、公知の方法を利用可能である。例えば、ロボット制御部202は、ロボット30の現在位置からピッキング情報までのパスを計算し、当該計算されたパス上を移動するように、ロボット30を制御する。ロボット30のハンドの向き及び把持力がピッキング情報に示される場合には、ロボット制御部202は、この向き及び把持力に基づいて、ロボット30を制御する。ピッキング情報が、複数の実対象物ROの各々に対するピッキングの位置等の上方を含む場合には、ロボット制御部202は、ピッキング情報に基づいて、複数の実対象物ROを次々と連続的にピッキングするように、ロボット30を制御する。
【0070】
[1-4.生産システムで実行される処理]
図8は、生産システムSで実行される処理の一例を示すフロー図である。
図8の処理は、CPU11,21がそれぞれ記憶部12,22に記憶されたプログラムに基づいて動作することによって実行される。
図8のように、学習装置10は、カメラ40により生成された実環境画像RIを取得する(S1)。学習装置10は、シミュレータ100Aを起動し、GAN100Bの学習用の仮想環境画像VIを生成する(S2)。S2では、学習装置10は、シミュレータ100Aで仮想環境VEを生成し、実対象物RO、実背景RB、及び仮想背景VBとは異なる色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を含む仮想環境画像VIを生成する。
【0071】
学習装置10は、S1で取得した実環境画像RIと、S2で取得した仮想環境画像VIと、に基づいて、GAN100Bの学習を行う(S3)。学習装置10は、訓練データの生成用の仮想環境画像VIを生成する(S4)。S4では、学習装置10は、S2で仮想環境画像VIを生成した時とは仮想対象物VOの数、位置、及び向きの少なくとも1つを異ならせる。学習装置10は、S4で生成した仮想環境画像VIをGAN100Bに入力し、疑似環境画像IIを生成する(S5)。S4で複数の仮想環境画像VIが生成された場合には、S5では、仮想環境画像VIごとに、疑似環境画像IIが生成される。
【0072】
学習装置10は、疑似環境画像IIと、仮想環境VEにおける仮想対象物VOの位置に応じたピッキング情報と、に基づいて、訓練データを生成して訓練データベース100Dに格納する(S6)。S5で複数の疑似環境画像IIが生成された場合には、S6では、疑似環境画像IIごとに、訓練データが生成される。学習装置10は、訓練データベース100Dに格納された訓練データに基づいて、ピッキング制御モデル100Cの学習を行う(S7)。学習装置10は、学習済みのピッキング制御モデル100Cをコントローラ20に送信する(S8)。
【0073】
コントローラ20は、学習装置10から受信したピッキング制御モデル100Cを、ピッキング制御モデル200Aとして記録する(S9)。コントローラ20は、カメラ40から現在画像を取得する(S10)。コントローラ20は、S10で取得した現在画像と、ピッキング制御モデル200Aと、に基づいて、ピッキング情報を取得する(S11)。コントローラ20は、S11で取得したピッキング情報に基づいて、ロボット30を制御し(S12)、本処理は終了する。以降、実対象物ROがなくなるまで、S10~S12の処理が繰り返される。
【0074】
第1実施形態の生産システムSによれば、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VO及び仮想背景VBの少なくとも一方を含む仮想環境画像VIに基づいてGAN100Bの学習を行う。これにより、仮想対象物VOが仮想背景VBの色に近づくようなGAN100Bになることを防止し、実環境画像RIに仮想環境画像VIを近づけるGAN100Bを得ることができる。例えば、実環境画像RIにおける実対象物ROと実背景RBの色が似ており、かつ、仮想環境画像VIにおける仮想対象物VOと仮想背景VBの色も似ていると、ある一定程度のロスに陥ることがある。この場合、GAN100Bが、仮想対象物VOの色を実背景RBの色に似せれば仮想環境画像VIが実環境画像RIに近づくと認識し、仮想環境画像VIにおける仮想対象物VOが仮想背景VBの色と同化するような画像が出力される可能性がある。この点、第1実施形態の仮想環境画像VIは、仮想対象物VOと仮想背景VBの色の違い等が大きくGAN100Bの学習量が増えるので、ある一定程度のロスに陥るといったことを防止し、上記の色の同化を防止できる。即ち、仮想環境画像VIの仮想対象物VOが実背景RBではなく実対象物ROに近づくようなGAN100Bを得ることができる。このようなGAN100Bは、実環境画像RIに近い疑似環境画像IIを生成できる。カラー画像ではなくグレースケール画像を利用する場合も背景色との同化が発生する可能性があるが、第1実施形態のようにすれば、背景色と同化しないようなGAN100Bを得ることができる。
【0075】
また、生産システムSは、仮想対象物VO及び仮想背景VBが互いに同じ又は似た色になると、仮想対象物VOが仮想背景VBと同化するような仮想環境画像VIを生成するGAN100Bになってしまうが、互いに異なる色の仮想対象物VO及び仮想背景VBを含む仮想環境画像VIを生成することによって、実環境画像RIに仮想環境画像VIを近づけるGAN100Bを得ることができる。
【0076】
また、生産システムSは、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VOを含む仮想環境画像VIを生成することによって、仮想対象物VOが仮想背景VBと同化することを防止し、実環境画像RIに仮想環境画像VIを近づけるGAN100Bを得ることができる。
【0077】
また、生産システムSは、実対象物ROに対応する色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を含む3次元空間において、仮想対象物VOの位置が実対象物ROの位置と異なる仮想環境VEを生成するシミュレータ100Aにより、実環境REと同様の状況でシミュレーションをすることができる。このため、ユーザの利便性が高まる。例えば、仮想環境VEの様子を表示部15に表示させることによって、ユーザは、仮想環境VEの様子を確認できる。
【0078】
また、生産システムSは、GAN学習部103により学習されたGAN100Bにより、学習に使用された仮想環境画像VIと異なる仮想環境画像VIを実環境画像RIに近づけた疑似環境画像IIを生成する。これにより、訓練データを効率的に生成できる。多数の訓練データを用意することによって、ピッキング制御モデル100C,200Aの精度も高まる。
【0079】
また、生産システムSは、現在画像と、学習済みのピッキング制御モデル200Aと、に基づいて、ロボット30を制御することによって、ピッキングの精度が高まる。
【0080】
[2.第2実施形態]
第1実施形態では、実対象物ROからかけ離れた色の仮想対象物VOと、実背景RBに対応する仮想背景VBと、を含む仮想環境画像VIを生成する場合を説明した。第2実施形態では、実対象物ROに対応する色の仮想対象物VOと、実背景RBからかけ離れた色の仮想背景VBと、を含む仮想環境画像VIを生成する場合を説明する。なお、以降説明する第2実施形態~第5実施形態では、第1実施形態と同様の点については説明を省略する。
【0081】
第2実施形態では、仮想環境画像生成部102は、実対象物ROの色及び実背景RBの色とは異なる色の仮想背景VBを生成する。予め仮想背景VBに色が設定されていてもよいし、仮想環境画像生成部102が仮想背景VBに色を設定してもよい。例えば、仮想環境画像生成部102は、色が設定されていない仮想背景VBに対し、データ記憶部100に記憶された色情報に基づいて、色を設定してもよい。実背景RBに対応する色が仮想背景VBにデフォルトで設定されている場合には、仮想環境画像生成部102は、仮想背景VBに設定された色を変更すればよい。色情報がテクスチャを示す場合には、テクスチャマッピングによって、仮想背景VBの表面にテクスチャを設定すればよい。仮想対象物VOも同様に、予め仮想対象物VOに色が設定されていてもよいし、仮想環境画像生成部102が仮想対象物VOに色を設定してもよい。
【0082】
例えば、実対象物RO及び実背景RBが無彩色だったとすると、仮想環境画像生成部102は、無彩色の仮想対象物VOと、有彩色の仮想背景VBと、を含む仮想環境画像VIを生成してもよい。実対象物RO及び実背景RBがグレー系統の色だったとすると、仮想環境画像生成部102は、グレー系統の色の仮想対象物VOと、グレー色とはかけ離れた黄色の仮想背景VBと、を含む仮想環境画像VIを生成する。
【0083】
逆に、実対象物RO及び実背景RBが有彩色だったとすると、仮想環境画像生成部102は、有彩色の仮想対象物VOと、無彩色の仮想背景VBと、を含む仮想環境画像VIを生成してもよい。例えば、実対象物RO及び実背景RBが緑系統の色だったとすると、仮想環境画像生成部102は、緑系統の色の仮想対象物VOと、緑系統の色とはかけ離れたグレー色の仮想背景VBと、を含む仮想環境画像VIを生成する。
【0084】
仮想環境画像VIが第1実施形態とは異なるが、GAN100Bの学習方法自体は、第1実施形態と同様である。第2実施形態によれば、実対象物ROの色及び実背景RBの色とは異なる色の仮想背景VBを生成することによって、仮想対象物VOと仮想背景VBを区別しやすい仮想環境画像VIを取得する。これにより、仮想対象物VOが背景色に近づくことを防止し、実環境画像RIに仮想環境画像VIを近づけるGAN100Bを得ることができる。
【0085】
[3.第3実施形態]
例えば、第1実施形態及び第2実施形態を組み合わせてもよい。第3実施形態の仮想環境画像生成部102は、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VOと、実対象物RO及び実背景RBの色とは異なる色の仮想背景VBと、を含む仮想環境画像VIを生成する。ただし、仮想対象物VO及び仮想背景VBは、互いに色が異なるものとする。例えば、実環境REのカメラ40の撮影範囲内に、黄色とピンク色の物体が配置されていなかったとすると、仮想対象物VOが黄色であり、仮想背景VBがピンク色であってもよい。逆に、仮想対象物VOがピンク色であり、仮想背景VBが黄色であってもよい。
【0086】
第3実施形態によれば、実対象物ROの色及び実背景RBの色とは異なる色の仮想対象物VOと、実対象物RO及び実背景RBの色とは異なる色の仮想背景VBと、を含む仮想環境画像VIを生成することによって、仮想対象物VOと仮想背景VBを区別しやすい仮想環境画像VIを取得する。これにより、仮想対象物VOが背景色に近づくことを防止し、実環境画像RIに仮想環境画像VIを近づけるGAN100Bを得ることができる。
【0087】
[4.第4実施形態]
第1実施形態~第3実施形態では、仮想対象物VO及び仮想背景VBの少なくとも一方が、実環境REからかけ離れた色である場合を説明した。第4実施形態では、実対象物ROに対応する色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を含む画像(
図4の仮想環境画像VIと同様の画像)に対し、仮想対象物VO及び仮想背景VBを区別しやすくするように、所定の画像処理を実行することによって、仮想環境画像VIを生成する場合を説明する。
【0088】
図9は、第4実施形態で実行される処理の一例を示す図である。
図9のように、画像処理前の仮想環境画像VI1に比べると、画像処理後の仮想環境画像VI2は、仮想対象物VOの輪郭が強調されているので、仮想対象物VO及び仮想背景VBを区別しやすくなっている。GAN100Bには、第1実施形態~第3実施形態と同様の実環境画像RIが入力されてもよいし、
図9のように、第1実施形態~第3実施形態と同様の実環境画像RI1に画像処理が実行された実環境画像RI2が入力されてもよい。
図9のように、GAN100Bから出力される疑似環境画像II1は、仮想対象物VO及び仮想背景VBが同化せずに、互いに区別できるようになっている。
【0089】
ただし、GAN100Bに入力された仮想環境画像VI2は、画像処理済みなので、疑似環境画像II1の仮想対象物VO及び仮想背景VBは、実対象物RO及び実背景RBと全体的な色合いが若干異なっている。そこで、第4実施形態では、
図9の疑似環境画像II1に対し、仮想環境画像VI1に施した画像処理の逆変換を実行することによって、実環境REにより近い疑似環境画像II2を生成するようにしている。
【0090】
図10は、第4実施形態の機能ブロック図の一例である。第4実施形態の仮想環境画像生成部102は、仮想対象物VOと仮想背景VBを区別しやすくする画像処理を実行することによって、仮想環境画像VIを生成する。第4実施形態では、画像処理の一例としてフィルタ処理を説明するが、仮想対象物VOと仮想背景VBを区別しやすくする画像処理であればよく、フィルタ処理に限られない。例えば、画像処理は、仮想対象物VO及び仮想背景VBの色の違いを強調するような諧調処理であってもよい。
【0091】
例えば、仮想環境画像生成部102は、
図4のように生成した仮想環境画像VI1にフィルタ処理を実行することによって、仮想環境画像VI2を生成する。仮想環境画像VI2は、フィルタ処理により、仮想対象物VOのエッジが強調されている。GAN学習部103は、画像処理が実行された仮想環境画像VI2に基づいて、GAN100Bの学習を行う。フィルタ処理が施された仮想環境画像VI2がGAN100Bの学習で利用される点で第1実施形態~第3実施形態とは異なるが、GAN100Bの学習方法自体は、第1実施形態~第3実施形態と同様である。
【0092】
逆画像処理部107は、CPU11を主として実現される。逆画像処理部107は、GAN100Bにより生成された疑似環境画像II1に、上記画像処理の逆変換を実行する。第4実施形態では、フィルタ処理が画像処理に相当する場合を説明するので、逆変換は、逆フィルタ処理である。逆変換は、画像処理に応じた処理であればよく、逆フィルタに限られない。例えば、画像処理が諧調処理である場合には、階調処理で利用した行列の逆行列を利用することによって逆変換が実行されるようにすればよい。
【0093】
モデル学習部106は、逆画像処理部107で逆変換が実行された疑似環境画像II2に基づいて、ピッキング制御モデル100Cの学習を行う。逆変換が実行された疑似環境画像II2がピッキング制御モデル100Cで利用される点で第1実施形態~第3実施形態とは異なるが、ピッキング制御モデル100Cの学習方法自体は、第1実施形態~第3実施形態と同様である。
【0094】
第4実施形態によれば、仮想対象物VOと仮想背景VBを区別しやすくするための画像処理を実行することによって、仮想環境画像VIを取得できる。これにより、仮想対象物VOが背景色に近づくことを防止し、仮想環境画像VIを実環境画像RIに近づけるGAN100Bを得ることができる。逆変換を実行することによって、ロボット30の制御時に画像処理をする必要がなくなるので、ロボット制御を高速化できる。
【0095】
なお、疑似環境画像IIへの逆変換は、実行されなくてもよい。この場合、モデル学習部106は、GAN100Bから出力された疑似環境画像II1に基づいて、ピッキング制御モデル100Cの学習を行う。逆変換をしていない疑似環境画像II1に基づいて、ピッキング制御モデル100Cが学習されるので、コントローラ20は、学習済みのピッキング制御モデル100Cを利用してロボット30を制御する場合に、現在画像にフィルタ処理を実行したうえで、ピッキング制御モデル100Cに入力する。コントローラ20は、ピッキング制御モデル100Cから出力された、フィルタ処理後の現在画像に対応するピッキング情報に基づいて、ロボット30を制御すればよい。
【0096】
[5.第5実施形態]
第4実施形態では、フィルタ処理を実行した仮想環境画像VIを生成する場合を説明したが、実対象物ROと実背景RBを区別しやすくするように、実環境画像RIにフィルタ処理を実行してもよい。学習装置10は、実環境画像取得部101により取得された実環境画像RIにフィルタ処理を実行し、実対象物ROと実背景RBを区別しやすくした実環境画像RIを生成する。なお、フィルタ処理以外の画像処理が実環境画像RIに実行されてもよい点は、第4実施形態と同様である。この画像処理は、実環境画像RIにおける実対象物ROと実背景RBを区別しやすくするような諧調処理等であればよい。
【0097】
第5実施形態では、GAN学習部103は、フィルタ処理が実行された実環境画像RIに基づいて、GAN100Bの学習を行う。フィルタ処理が施された仮想環境画像VIがGAN100Bの学習で利用される点で第1実施形態~第4実施形態とは異なるが、GAN100Bの学習方法自体は、第1実施形態~第4実施形態と同様である。モデル学習部106は、GAN100Bから出力された疑似環境画像IIに基づいて、ピッキング制御モデル100Cの学習を行う。
【0098】
フィルタ処理が実行された実環境画像RIに基づいて、ピッキング制御モデル100Cが学習されるので、コントローラ20は、学習済みのピッキング制御モデル100Cを利用してロボット30を制御する場合に、現在画像にフィルタ処理を実行したうえで、ピッキング制御モデル100Cに入力する。コントローラ20は、ピッキング制御モデル100Cから出力された、フィルタ処理後の現在画像に対応するピッキング情報に基づいて、ロボット30を制御する。
【0099】
第5実施形態によれば、実対象物ROと実背景RBを区別しやすくするための画像処理を実行した実環境画像RIに基づいて、GAN100Bの学習を行う。これにより、仮想対象物VOが背景色に近づくことを防止し、仮想環境画像VIを実環境画像RIに近づけるGAN100Bを得ることができる。
【0100】
なお、第5実施形態でも第4実施形態と同様に、逆画像処理部107は、GAN100Bにより生成された疑似環境画像IIに逆変換をしてもよい。この場合、モデル学習部106は、逆画像処理部107で逆変換が実行された疑似環境画像に基づいて、ピッキング制御モデル100Cの学習を行う。コントローラ20は、現在画像にフィルタ処理を実行せずに、現在画像をピッキング制御モデル100Cに入力する。コントローラ20は、ピッキング制御モデル100Cから出力された、フィルタ処理後の現在画像に対応するピッキング情報に基づいて、ロボット30を制御する。逆変換を実行することによって、ロボットの制御時にフィルタ処理をする必要がなくなるので、ロボット制御を高速化できる。
【0101】
[6.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0102】
[変形例1]
例えば、第1実施形態~第5実施形態では、仮想対象物VOが単色である場合を説明したが、仮想対象物VOは、複数の色を含んでもよい。同様に、仮想背景VBは、単色ではなく、複数の色を含んでもよい。仮想環境画像生成部102は、実対象物ROの色及び実背景RBの色とは異なる複数の色を有する仮想対象物VO及び仮想背景VBの少なくとも一方を含む仮想環境画像VIを生成する。変形例1では、第1実施形態のように、実対象物RO及び実背景RBとは異なる色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を例に挙げるが、第2実施形態~第5実施形態と変形例1を組み合わせてもよい。
【0103】
仮想対象物VOの複数の色は、互いに異なる色である。即ち、複数の色は、互いに似ていない色である。例えば、実対象物RO及び実背景RBがグレー色だったとすると、仮想対象物VOは、黄色及びピンク色であり、仮想背景VBは、グレー色であってもよい。仮想対象物VOが複数の色を有する点で第1実施形態とは異なるが、他の点については、第1実施形態と同様である。第2実施形態のように仮想背景VBの色にする場合には、実対象物RO及び実背景RBがグレー色だったとすると、仮想対象物VOは、グレー色であり、仮想背景VBは、黄色及びピンク色であってもよい。
【0104】
変形例1によれば、実対象物ROの色及び実背景RBの色とは異なる複数の色を有する仮想対象物VO及び仮想背景VBの少なくとも一方を含む仮想環境画像VIを生成することによって、GAN100Bの学習に適した仮想環境画像VIを生成できる。
【0105】
[変形例2]
図11は、変形例2の機能ブロック図である。
図11のように、生産システムSは、実対象物ROの色と、実背景RBの色と、に基づいて、仮想対象物VO及び仮想背景VBの少なくとも一方の色(第1実施形態で説明した「異なる色」)を設定する設定部108を含んでもよい。設定部108は、CPU11を主として実現される。設定部108の処理は、シミュレータ100Aの処理の一部であってもよい。変形例1では、第1実施形態のように、実対象物RO及び実背景RBとは異なる色の仮想対象物VOと、実背景RBに対応する色の仮想背景VBと、を例に挙げるが、第2実施形態~第5実施形態と変形例1を組み合わせてもよい。
【0106】
例えば、実対象物RO及び実背景RBの色と、仮想対象物VOの色と、の関係は、データ記憶部100に定義されているものとする。例えば、実対象物RO及び実背景RBの色と、仮想対象物VOの色と、が反対色となるように、これらの関係が定義されている。設定部108は、実対象物RO及び実背景RBの色に関連付けられた色を、仮想対象物VOに設定する。実対象物RO及び実背景RBの色は、ユーザにより指定されてもよいし、実環境画像RIを画像解析することによって特定されてもよい。
【0107】
なお、設定部108が仮想背景VBの色を設定する場合には、実対象物RO及び実背景RBの色と、仮想背景VBの色と、の関係がデータ記憶部100に定義されているものとする。この場合も、実対象物RO及び実背景RBの色と、仮想背景VBの色と、が反対色となるように、これらの関係が定義されている。設定部108は、実対象物RO及び実背景RBの色に関連付けられた色を、仮想背景VBに設定する。
【0108】
変形例2によれば、実対象物ROの色と、実背景RBの色と、に基づいて、仮想対象物VO及び仮想背景VBの少なくとも一方の色を設定することによって、GAN100Bの学習に適した仮想環境画像VIを取得できる。
【0109】
[変形例3]
例えば、複数の実対象物ROには、第1の色の第1の実対象物RO1と、第2の色の第2の実対象物RO2と、が含まれていてもよい。即ち、実背景RBである箱の中には、互いに異なる色の複数の実対象物ROが混載されていてもよい。変形例3の仮想環境画像生成部102は、互いに異なる色の、第1の実対象物RO1に対応する第1の仮想対象物VO1と、第2の実対象物RO2に対応する第2の仮想対象物VO2と、を含む仮想環境画像VIを生成する。変形例3では、変形例1-2と同様に、第1実施形態と組み合わせた場合を例に挙げるが、第2実施形態~第5実施形態と変形例3を組み合わせてもよい。
【0110】
第1の仮想対象物VO1の色と、第2の仮想対象物VO2の色と、は互いに異なる。更に、第1の仮想対象物VO1及び第2の仮想対象物VO2は、第1の実対象物RO1、第2の実対象物RO2、実背景RB、及び仮想背景VBとは異なる色を有する。例えば、第1の実対象物RO1が濃いグレー色であり、第2の実対象物RO2が薄いグレー色であり、実背景RBがその中間のグレー色だったとする。この場合、第1の仮想対象物VO1の色を黄色とし、第2の仮想対象物VO2をピンク色とし、仮想背景VBをグレー系統の色にしてもよい。このようにすることで、仮想環境画像VIにおいて、第1の仮想対象物VO1、第2の仮想対象物VO2、及び仮想背景VBを区別しやすくなるので、
図4のように同化した疑似環境画像IIではなくなる。
【0111】
なお、互いに異なる色の複数の実対象物ROが混載する点で第1実施形態とは異なるが、GAN100Bの学習方法、ピッキング制御モデル100Cの学習方法、及びロボット30の制御方法自体は、第1実施形態で説明した通りである。変形例3でも、第2実施形態のような仮想背景VBの色としてもよい。例えば、第1の実対象物RO1が濃いグレー色であり、第2の実対象物RO2が薄いグレー色であり、実背景RBがその中間のグレー色だったとする。この場合、第1の仮想対象物VO1の色を黄色とし、第2の仮想対象物VO2を薄いグレー色とし、仮想背景VBをピンク色にしてもよい。このようにすることでも、仮想環境画像VIにおいて、第1の仮想対象物VO1、第2の仮想対象物VO2、及び仮想背景VBを区別しやすくなるので、
図4のように同化した疑似環境画像IIではなくなる。
【0112】
変形例3によれば、互いに色が異なる実対象物ROが実環境REに含まれていたとしても、仮想環境画像VIを実環境画像RIに近づけるGAN100Bを得ることができる。
【0113】
[その他変形例]
例えば、生産システムSを例に挙げたが、実環境画像取得部101、仮想環境画像生成部102、仮想環境画像生成部102、及びGAN学習部103を含む学習システムも、本開示の範囲に含まれる。例えば、学習システムは、学習装置10だけで構成されてもよい。例えば、第1の装置により、実環境画像取得部101、仮想環境画像生成部102、及びGAN学習部103が実現され、第2の装置により、GAN推論部104及びモデル学習部106が実現されてもよい。この場合、第1の装置が学習システムに相当する。第2の装置は、学習システムには含まれない外部の装置である。このような学習システムでも、実環境画像RIに仮想環境画像VIを近づけるためのGAN100Bの学習を実現できる。
【0114】
例えば、上記学習システムと、GAN推論部104と、を含む画像生成システムも、本開示の範囲に含まれる。例えば、画像生成システムは、学習装置10だけで構成されてもよい。例えば、第1の装置により、実環境画像取得部101、仮想環境画像生成部102、GAN学習部103、及びGAN推論部104が実現され、第2の装置によりモデル学習部106が実現されてもよい。この場合、第1の装置が画像生成システムに相当する。第2の装置は、画像生成システムには含まれない外部の装置である。このような画像生成システムでも、実環境画像RIに仮想環境画像VIを近づけるためのGAN100Bの学習を実現し、かつ、ロボット制御に有用な疑似環境画像IIを生成できる。
【0115】
例えば、ロボット30は、ばら積みピッキング以外の作業を行ってもよい。例えば、加工、梱包、運搬、又は検査といった他の作業を行うロボット30にも、生産システムS、学習システム、及び画像生成システムを適用可能である。他にも例えば、コントローラ20がロボット30を制御する場面を例に挙げたが、生産システムS、学習システム、及び画像処理システムは、ロボット制御以外の種々の場面に適用可能である。生産システムS、学習システム、及び画像処理システムは、実対象物ROに対する何らかの作業が発生する場面に適用可能であり、例えば、PLC、モータ制御装置、数値制御装置、セルを管理する装置、又はラインを管理する装置を含む場面にも適用可能である。
【0116】
例えば、各機能は、生産システムSにおける任意の装置で実現されるようにすればよい。学習装置10で実現されるものとして説明した機能の一部又は全部は、複数の装置で分担されてもよい。コントローラ20で実現されるものとして説明した機能の一部又は全部は、学習装置10又は他の装置によって実現されてもよい。
【符号の説明】
【0117】
S 生産システム、10 学習装置、11,21 CPU、12,22 記憶部、13,23 通信部、14 操作部、15 表示部、20 コントローラ、30 ロボット、40 カメラ、II 疑似環境画像、RB 実背景、RE 実環境、RI 実環境画像、RO 実対象物、V1,V2 撮影方向、VB 仮想背景、VC 仮想カメラ、VE 仮想環境、VI 仮想環境画像、VO 仮想対象物、100 データ記憶部、100A シミュレータ、100B GAN、100C,200A ピッキング制御モデル、100D 訓練データベース、101 実環境画像取得部、102 仮想環境画像生成部、103 GAN学習部、104 GAN推論部、105 訓練データ生成部、106 モデル学習部、107 逆画像処理部、108 設定部、200 データ記憶部、201 現在画像取得部、202 ロボット制御部。