以下、図面を参照しながら、本発明の一実施形態に係る学習方法について説明する。本実施形態の学習方法は、以下に述べるように、動作装置としての産業用ロボット1(図1参照)が複数の道具を取り扱う際の取扱動作を、深層学習方法により学習するものである。
まず、産業用ロボット1について説明する。この産業用ロボット1では、道具の取扱動作として、道具を作業者2に渡す動作(図1参照)や、道具を持つ動作などが実行される。本実施形態の場合、後述するように、複数の道具(対象物)としては、例えば、図4に示すようなハサミ3などが用いられる。
産業用ロボット1は、ロボットアームタイプのものであり、機械的な構成として、ロボットハンド11、3つのリンク12~14、3つの関節15~17及びベース18を備えている。これに加えて、産業用ロボット1は、図2に示すように、電気的な構成として、コントローラ20、ハンドモータ21、関節モータ22及びベースモータ23などを備えている。
ロボットハンド11は、3つのハンド部11aを備えている。これら3つのハンド部11aは、ハンドモータ21によって駆動されることにより、上述したハサミ3などの道具を掴んだり、持ったりする。
また、3つの関節15~17は、いずれも能動関節タイプのものであり、関節モータ22及び減速機(図示せず)が内蔵されている。これらの関節モータ22によって駆動されることにより、3つの関節15~17を介して、3つのリンク12~14が駆動される。
一方、ベース18には、ベースモータ23が内蔵されており、このベースモータ21によって駆動されることにより、リンク14及び関節17は、鉛直軸線周りに回転するように構成されている。
さらに、図2に示すように、コントローラ20には、前述した各種のモータ21~23に加えて、カメラ24及びマイロフォン25などが電気的に接続されている。このカメラ24は、ロボットハンド11に設けられており、道具などを撮像した画像信号をコントローラ20に出力する。また、マイロフォン25は、作業者2が発音した音声などを表す音声信号をコントローラ20に出力する。
このコントローラ20は、ストレージ、CPU、RAM、ROM及びI/Oインターフェース回路などを備えている。このROM内には、後述する学習方法によってモデルパラメータ(重み及びバイアス)が十分に学習されたニューラルネットワーク32が記憶されている。なお、本実施形態では、コントローラ20が制御装置、記憶部及び制御部に相当する。
次に、複数の道具の取扱動作の学習方法について説明する。本実施形態では、図3に示すような学習装置30(情報処理装置)において、深層学習方法により、産業用ロボット1が前述した複数の道具を取り扱う際の適切な取扱動作が学習される。
この学習装置30は、具体的には、上述したコントローラ20と同様のコントローラ(図示せず)によって構成されている。なお、学習装置30をコントローラ20で構成してもよい。このコントローラのROM(図示せず)には、後述する画像データ40,50,60と、取扱動作ラベルデータ41を含む多数の取扱動作ラベルデータと、教師画像データ44~46,51~53,61~63などが記憶されている。
以下の説明では、最初に、取扱動作として、道具としてのハサミ3を渡す動作を例にとって説明する。図3に示すように、学習装置30は、入力画像データ作成部31、ニューラルネットワーク32、教師画像データ出力部33及び学習処理部34を備えている。
まず、入力画像データ作成部31では、以下に述べるように、深層学習を実行する際の入力画像データが作成される。まず、図4に示すハサミ3の画像データ40が取得される(第1処理)。具体的には、入力画像データ作成部31に記憶されている複数種類の画像データの中から、画像データ40が読み出される。
さらに、図5に示す取扱動作ラベルデータ41(取扱動作データ)が取得される。この場合、入力画像データ作成部31には、取扱動作ラベルデータ41を含む複数種類の取扱動作ラベルデータが記憶されており、それらの取扱動作ラベルデータの中から、ハサミ3を渡す動作の学習用のものとして、取扱動作ラベルデータ41が読み出される(第2処理)。
この取扱動作ラベルデータ41は、ハサミ3の取扱動作として、図6に示すような、ハサミ3が差出人42から受取人43に渡される状態をラベル化したものである。図5において、数字の「1」で示されている領域が受取人43の手を表す領域に相当し、数字の「2」で示されている領域がハサミ3を表す領域に相当し、数字の「3」で示されている領域が差出人42の手を表す領域に相当する。
また、取扱動作ラベルデータ41は、画像データ40と同一のサイズに設定されており、より具体的には、縦の画素数及び横の画素数が画像データ40における縦の画素数及び横の画素数と同一に設定されている。
そして、入力画像データ作成部31では、画像データ40と取扱動作ラベルデータ41を組み合わせることにより、図示しない入力画像データが作成される(第4処理)。その結果、入力画像データは、1画素毎に、画像データ40における三原色(RGB)の画素値と取扱動作ラベルデータ41のいずれかの数値とが含まれる状態のデータとして作成される。
以上のように入力画像データ作成部31で作成された入力画像データは、ニューラルネットワーク32に入力される。ニューラルネットワーク32は、図7に示すように、深層ニューラルネットワークタイプのものであり、複数のユニットを有する入力層32aと、これに接続された複数のユニットを有する複数(1つのみ図示)の隠れ層32bと、これに接続された複数のユニットを有する出力層32cとを備えている。
このニューラルネットワーク32におけるモデルパラメータすなわち重み及びバイアスは、後述するように、学習処理部34において学習される。このニューラルネットワーク32では、上述した入力画像データが入力画像データ作成部31から入力されたときに、ハサミ3の取扱動作の推定画像データである出力画像データ(図示せず)が学習処理部34に出力される(第5処理)。
また、教師画像データ出力部33には、道具の適切な取扱動作を表す画像データである教師画像データが複数種類、記憶されており、これらの教師画像データの中から1つの教師画像データが読み出され(第3処理)、学習処理部34に出力される。この場合、ハサミ3の取扱動作として、差出人42がハサミ3を受取人43に渡す動作を学習するときには、図8に示す教師画像データ44が読み出された後、学習処理部34に出力される。
同図8に示すように、この教師画像データ44の場合、ハサミ3の画像において、差出人42すなわち産業用ロボット1が掴むべき領域(部位)3aが、図中に点描で示すように定義され、受取人43が掴むべき領域3bが、図中にハッチングで示すように定義されている。なお、本実施形態の場合、この教師画像データ44が動作装置と対象物の所定関係を表す教師画像データに相当する。
また、図8中の「渡す」の文字は、理解の容易化のために記載したものであり、実際の教師画像データ44においては示されないものである。この点は、後述する図9~10などにおいても同様である。
さらに、学習処理部34では、ニューラルネットワーク32からの出力画像データと、教師画像データ44との平均二乗誤差が損失関数として算出される。そして、この損失関数に基づく誤差逆伝播法により、ニューラルネットワーク32のモデルパラメータである重み及びバイアスが学習/更新される(第6処理)。以上のように学習された重み及びバイアスは、ニューラルネットワーク32での次回の順伝播演算に用いられる。
以上の学習処理を所定回数(例えば数千回)分、繰り返して実行することにより、ハサミ3を渡す動作の学習が終了する。それにより、ニューラルネットワーク32では、前述した図4に示す画像データ40と、図5に示す取扱動作ラベルデータ41とを組み合わせた入力画像データが入力された場合、教師画像データ44に極めて近い状態の出力画像データが出力されることになる。
次に、ハサミ3を持つ動作の学習処理について説明する。この学習処理の場合、上記のハサミ3を渡す動作の学習処理と比較すると、入力画像データ作成部31及び教師画像データ出力部33の構成が異なっており、それら以外の点は同様に実行されるので、以下、異なる点についてのみ説明する。
まず、入力画像データ作成部31では、入力画像データを作成する際、図5の取扱動作ラベルデータ44に代えて、ハサミ3を持つ状態をラベル化した取扱動作ラベルデータ(図示せず)が用いられる。この取扱動作ラベルデータは、前述した図5の取扱動作ラベルデータ44において、数字の「1」の領域を数字の「0」に置き換えたものに相当する。そして、この取扱動作ラベルデータを、前述した図4に示す画像データ40に組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、前述した教師画像データ44に代えて、図9に示す教師画像データ45が学習処理部34に出力される。この教師画像データ45の場合、ハサミ3の画像において、産業用ロボット1が掴むべき領域3aが、図中に点描で示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ45を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、ハサミ3を持つ動作の学習が終了する。それにより、ニューラルネットワーク32では、前述した入力画像データが入力された場合、教師画像データ45に極めて近い状態の出力画像データが出力されることになる。
次いで、ハサミ3で物を切る動作の学習処理について説明する。この学習処理の場合、前述したハサミ3を渡す動作の学習処理と比較すると、入力画像データ作成部31及び教師画像データ出力部33の構成が異なっており、それら以外の点は同様に実行されるので、以下、異なる点についてのみ説明する。
この場合、入力画像データ作成部31では、入力画像データを作成する際、図5の取扱動作ラベルデータ44に代えて、ハサミ3で物を切る状態をラベル化した取扱動作ラベルデータ(図示せず)を、前述した図4に示す画像データ40に組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、前述した教師画像データ44に代えて、図10に示す教師画像データ46が学習処理部34に出力される。この教師画像データ46の場合、ハサミ3の画像において、産業用ロボット1が掴むべき領域3cが、図中に点描で示すように定義され、ハサミ3によって物を切るときに使用すべき領域3dが、図中にハッチングで示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ46を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、ハサミ3で物を切る際の取扱動作の学習が終了する。それにより、ニューラルネットワーク32では、前述した入力画像データが入力された場合、教師画像データ46に極めて近い状態の出力画像データが出力されることになる。
本実施形態の学習装置30では、以上のような、ハサミ3における3種類の取扱動作に加えて、ハンマー4(図11参照)及びお玉杓子5(図15参照)の取扱動作が実行される。
最初に、ハンマー4の取扱動作の学習として、ハンマー4を渡す際の取扱動作の学習を例にとって説明する。この場合、前述した入力画像データ作成部31では、図11に示すハンマー4の画像データ50と、ハンマー4を渡す状態をラベル化した取扱動作ラベルデータ(図示せず)とを組み合わせることにより、入力画像データが作成される。この場合の取扱動作ラベルデータは、図5に示す取扱動作ラベルデータ41と同様に作成される。
また、前述したニューラルネットワーク32では、上記の入力画像データが入力画像データ作成部31から入力された場合、ハンマー4の取扱動作の推定画像である出力画像データが学習処理部34に出力される。
さらに、前述した教師画像データ出力部33では、図12に示す教師画像データ51が学習処理部34に出力される。同図に示すように、この教師画像データ51の場合、ハンマー4の画像において、産業用ロボット1が掴むべき領域4aが、図中に点描で示すように定義され、ハンマー4の受取人が掴むべき領域4bが、図中にハッチングで示すように定義されている。
一方、前述した学習処理部34では、ニューラルネットワーク32からの出力画像データと、教師画像データ51との平均2乗和誤差が損失関数として算出される。そして、この損失関数に基づく誤差逆伝播法により、ニューラルネットワーク32のモデルパラメータである重み及びバイアスが学習される。
次に、ハンマー4を持つ際の取扱動作の学習について説明する。この場合、前述した入力画像データ作成部31では、図11に示すハンマー4の画像データ50と、図示しない取扱動作ラベルデータとを組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、上述した教師画像データ51に代えて、図13に示す教師画像データ52が学習処理部34に出力される。この教師画像データ52の場合、ハンマー4の画像において、産業用ロボット1が掴むべき領域4cが、図中に点描で示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ52を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、ハンマー4を持つ際の取扱動作の学習が実行される。
次に、ハンマー4で物を叩く際の取扱動作の学習について説明する。この場合、前述した入力画像データ作成部31では、図11に示すハンマー4の画像データ50と、ハンマー4で物を叩く状態をラベル化した取扱動作ラベルデータ(図示せず)とを組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、上述した教師画像データ51に代えて、図14に示す教師画像データ53が学習処理部34に出力される。この教師画像データ53の場合、ハンマー4の画像において、産業用ロボット1が掴むべき領域4dが、図中に点描で示すように定義され、物を叩くべき2つの領域4e,4eが図中にハッチングで示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ53を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、ハンマー4で物を叩く際の取扱動作の学習が実行される。
本実施形態の学習装置30では、以上のように、ハンマー4における3種類の取扱動作の学習が実行される。
次に、お玉杓子5の取扱動作の学習について説明する。最初に、お玉杓子5の取扱動作の学習として、お玉杓子5を渡す動作の学習を例にとって説明する。
まず、前述した入力画像データ作成部31では、図15に示すお玉杓子5の画像データ60と、お玉杓子5を渡す状態をラベル化した取扱動作ラベルデータ(図示せず)とを組み合わせることにより、入力画像データが作成される。この場合の取扱動作ラベルデータは、図5に示す取扱動作ラベルデータ41と同様に作成される。
また、前述したニューラルネットワーク32では、上記の入力画像データが入力画像データ作成部31から入力された場合、お玉杓子5の取扱動作の推定画像である出力画像データが学習処理部34に出力される。
さらに、前述した教師画像データ出力部33では、図16に示す教師画像データ61が学習処理部34に出力される。同図に示すように、この教師画像データ61の場合、お玉杓子5の画像において、産業用ロボット1が掴むべき領域5aが、図中に点描で示すように定義され、お玉杓子5の受取人が掴むべき領域5bが、図中にハッチングで示すように定義されている。
一方、前述した学習処理部34では、ニューラルネットワーク32からの出力画像データと、教師画像データ61との平均2乗和誤差が損失関数として算出される。そして、この損失関数に基づく誤差逆伝播法により、ニューラルネットワーク32のモデルパラメータである重み及びバイアスが学習される。
次に、お玉杓子5を持つ動作の学習について説明する。この場合、前述した入力画像データ作成部31では、図15に示すお玉杓子5の画像データ60と、お玉杓子5を持つ状態をラベル化した取扱動作ラベルデータ(図示せず)とを組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、上述した教師画像データ61に代えて、図17に示す教師画像データ62が学習処理部34に出力される。この教師画像データ62の場合、お玉杓子5の画像において、産業用ロボット1が掴むべき領域5cが、図中に点描で示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ62を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、お玉杓子5を持つ動作の学習が実行される。
次に、お玉杓子5で物をすくう動作の学習について説明する。この場合、前述した入力画像データ作成部31では、図15に示すお玉杓子5の画像データ60と、お玉杓子5で物をすくう動作をラベル化した取扱動作ラベルデータ(図示せず)とを組み合わせることにより、入力画像データが作成される。
また、教師画像データ出力部33では、上述した教師画像データ62に代えて、図18に示す教師画像データ63が学習処理部34に出力される。この教師画像データ63の場合、お玉杓子5の画像において、産業用ロボット1が掴むべき領域5dが、図中に点描で示すように定義され、物をすくうべき領域5eが図中にハッチングで示すように定義されている。
以上のように、入力画像データ作成部31で作成された入力画像データ及び教師画像データ出力部33から出力された教師画像データ63を用いて、前述した学習処理を所定回数分、繰り返して実行することにより、お玉杓子5で物をすくう動作の学習が実行される。
本実施形態の学習装置30では、以上のように、お玉杓子5における3種類の取扱動作の学習が実行される。その結果、ニューラルネットワーク32のモデルパラメータ(重み及びバイアス)は、ハサミ3、ハンマー4及びお玉杓子5の各種の取扱動作の学習が十分に実行された値となる。
次に、図19を参照しながら、以上のような本実施形態の学習方法による学習効果について説明する。同図において、「本発明手法」と記載されているデータは、本実施形態の学習方法によってモデルパラメータを学習済みのニューラルネットワークを準備し、前述したような各種の入力画像データをこのニューラルネットワークに入力する試験を実施したときの、ニューラルネットワークの出力値の試験結果を表している。
また、「本発明手法」の出力値のデータにおいて、「渡す」及び「持つ」のデータは、ハサミ3、ハンマー4及びお玉杓子5の画像データを用いて、入力画像データを作成した場合の平均値を示しており、「切る」のデータはハサミ3の画像データを用いて、入力画像データを作成した場合の値である。さらに、「叩く」のデータは、ハンマー4の画像データを用いて、入力画像データを作成した場合の値を示しており、「すくう」のデータは、お玉杓子5の画像データを用いて、入力画像データを作成した場合の値を示している。
一方、図19において、「従来手法」と記載されているデータは、比較のために、前述したような従来の学習方法によってモデルパラメータを学習したニューラルネットワークを用いたときの、ニューラルネットワークの出力値の試験結果を表している。
同図の「本発明手法」データと「従来手法」のデータを比較すると明らかなように、5種類の取扱動作のいずれにおいても、本発明手法の方が、従来手法と比べて、高い出力値を得られており、推定精度が向上していることが判る。
次に、図20を参照しながら、本実施形態の産業用ロボット1の制御処理について説明する。この制御処理は、作業者2の音声指令がマイロフォン25を介して入力されたときに、その音声指令に基づいて、産業用ロボット1による道具の取扱動作を制御するものであり、コントローラ20によって実行される。なお、以下の説明では、「ハサミを渡してください」という音声指令が入力された場合の例について説明する。
同図に示すように、まず、作業者2からの音声指令が入力されたか否かを判定する(図20/STEP1)。この判定が否定(図20/STEP1…NO)のときには、そのまま本処理を終了する。
一方、この判定が肯定(図20/STEP1…YES)で、音声指令が入力されたときには、音声指令に対して音声認識処理を実行する(図20/STEP2)。この音声認識処理では、音声指令に基づき、作業者2が産業用ロボット1に対して要求した道具として、ハサミ3が認識され、その取扱動作として、「渡す」という動作が認識される。
次いで、音声認識処理での認識結果に基づき、画像データが取得される(図20/STEP3)。すなわち、前述した図4に示すようなハサミ3の画像データが取得される。
次に、音声認識処理での認識結果に基づき、取扱動作ラベルデータが取得される(図20/STEP4)。すなわち、前述した図5に示すような「渡す」動作のときの取扱動作ラベルデータが取得される。
以上のように、ハサミ3の画像データと、「渡す」動作のときの取扱動作ラベルデータとを取得した後、両者を組み合わせることにより、入力画像データが作成される(図20/STEP5)。
次いで、この入力画像データをニューラルネットワークに入力することにより、ニューラルネットワークから出力される出力画像データを取得する(図20/STEP6)。この場合、ニューラルネットワークのモデルパラメータが前述した学習手法により十分に学習されている関係上、出力画像データとしては、前述した図8の教師画像データに極めて近い状態のデータが取得される。
以上のように、出力画像データを取得した後、この出力画像データに基づき、取扱動作制御処理が実行される。具体的には、出力画像データにおける産業用ロボット1が掴むハサミ3の部位(領域3a)と、ユーザが掴むべきハサミ3の部位(領域3b)が認識される。
そして、これらの認識結果及びカメラ24からの画像データに基づき、3つのモータ21~23が制御されることにより、ハサミ3の領域3aがロボットハンド11によって挟持された状態で、ユーザ2に手渡される。以上のように、取扱動作制御処理を実行した後、本処理を終了する。
以上のように、本実施形態の学習装置30の学習方法によれば、ハサミ3を渡す動作を学習する際には、入力画像データ作成部31において、画像データ40及び取扱動作ラベルデータ41が取得され、これらの画像データ40と取扱動作ラベルデータ41を組み合わせることにより、入力画像データが作成される。
次いで、入力画像データがニューラルネットワーク32に入力されることにより、出力画像データが学習処理部34に出力され、さらに、教師画像データ44が学習処理部34に出力される。そして、学習処理部34では、出力画像データと教師画像データ44との平均二乗誤差が損失関数として算出され、これに基づく誤差逆伝播法により、ニューラルネットワーク32の重み及びバイアスが学習される。以上の学習処理が所定回数(例えば数千回)分、繰り返して実行されることにより、ハサミ3を渡す動作の学習が終了する。
また、ハサミ3を持つ動作及びハサミ3で切る動作の学習も、以上と同様に実行される。さらに、ハンマー4を渡す動作、ハンマー4を持つ動作及びハンマー4で叩く動作の学習も、以上と同様に実行され、お玉杓子5を渡す動作、お玉杓子5を持つ動作及びお玉杓子5で叩く動作の学習も、以上と同様に実行される。
以上のように、この学習方法によれば、多数の道具の学習を実行する際、1つのニューラルネットワーク32のモデルパラメータを学習するだけでよいので、多数の道具の学習を実行したとしても、従来の学習手法と異なり、モデルパラメータの数が増大することがない。すなわち、モデルパラメータの増大を抑制しながら、道具と複数の取扱動作との関係を表すニューラルネットワーク32のモデルパラメータを学習することができる。
また、ニューラルネットワーク32への入力として、画像データ40と取扱動作ラベルデータ41を組み合わせた入力画像データが用いられるので、従来のニューラルネットワークのモデルパラメータの学習方法と同じ方法を用いることができる。それにより、コストの増大を抑制しながら、高い汎用性を確保することができる。
さらに、取扱動作ラベルデータは、実施形態の取扱動作ラベルデータ41以外に、様々な道具において様々な取扱動作を表すように作成することができるとともに、数字を組み合わせるだけでよいので、容易に作成することができる。それにより、コストの増大を抑制することができる。
これに加えて、画像データ40及び取扱動作ラベルデータ41は、縦の画素数が互いに同一であるとともに横の画素数も互いに同一に構成されているので、両者のサイズを一致させるためのフィルタ処理などが不要になる。それにより、演算処理の容易性を確保することができる。
また、以上のようにモデルパラメータが学習されたニューラルネットワーク32を用いて、産業用ロボット1を制御することができる。それにより、産業用ロボット1におけるコントローラ20の記憶容量の増大を抑制することができる。
なお、実施形態の場合、入力画像データ作成部31では、前述したように、画像データ40と取扱動作ラベルデータ41を組み合わせることにより、入力画像データを作成したが、これに代えて、以下に述べる手法により、入力画像データを作成してもよい。
すなわち、画像データ40に対して、所定のフィルタ処理としての畳み込みフィルタ演算処理を施すことにより、画像データ40の図示しない特徴マップデータ(第1データ)を作成する。さらに、取扱動作ラベルデータ41に対して、所定のフィルタ処理としての畳み込みフィルタ演算処理を施すことにより、取扱動作ラベルデータ41の図示しない特徴マップデータ(第2データ)を作成する。
この場合、取扱動作ラベルデータ41の特徴マップデータは、縦の画素数及び横の画素数が画像データ40の特徴マップデータにおける縦の画素数及び横の画素数と同一に設定されている。そして、これら2つの特徴マップデータを組み合わせることにより、入力画像データが作成される。以上のように入力画像データを作成した場合でも、実施形態と同様の作用効果を得ることができる。
なお、この場合、所定のフィルタ処理としては、上記の畳み込みフィルタ演算処理に限らず、所定の圧縮処理などを用いてもよい。例えば、多層の畳み込みニューラルネットワークから構成されるエンコーダー・デコーダーなどを用いてもよい。
また、実施形態は、取扱動作データとして、取扱動作ラベルデータ41を用いた例であるが、本発明の取扱動作データは、これに限らず、取扱動作を所定形式で表したものであればよい。
例えば、取扱動作データとして、図21に示す取扱動作ラベルデータ70を用いてもよい。同図に示すように、この取扱動作ラベルデータ70の場合、最上位の行が「物を自分で使う」という取扱動作のデータ欄に設定され、上から2番目の行が「物を人に渡す」という取扱動作のデータ欄に設定されている。さらに、上から3番目の行が「物を人と一緒に使う」という取扱動作のデータ欄に設定され、上から4番目以下の行が図示しない取扱動作のデータ欄に設定されている。
この取扱動作ラベルデータ70の場合、「物を人に渡す」という取扱動作を学習するときに使用されるものであり、そのため、2番目の行のデータが値「0」と値「1」を組み合わせたデータになっているのに対して、それ以外の行のデータは値「0」に設定されている。
また、取扱動作ラベルデータ70は、縦の画素数及び横の画素数が画像データ40における縦の画素数及び横の画素数と同一に設定されている。したがって、前述した入力画像データ作成部31において、この取扱動作ラベルデータ70を画像データ40と組み合わせ、入力画像データを作成することによって、ハサミ3などの道具を人に渡す状態を学習することができる。
さらに、「物を自分で使う」という取扱動作を学習する際には、取扱動作ラベルデータ70において、最上位の行のデータを値「0」と値「1」の組み合わせに設定し、それ以外の行を全て値「0」に設定したものを用いることによって、「物を自分で使う」という取扱動作を学習することができることになる。以上のような取扱動作ラベルデータ70を用いた場合でも、実施形態と同様の作用効果を得ることができる。
これに加えて、上記の取扱動作ラベルデータ70は、複数の行のデータ欄が複数の取扱動作をそれぞれ表すように構成したものであるが、これに代えて、取扱動作ラベルデータを、複数の列のデータ欄が複数の取扱動作をそれぞれ表すような構成してもよい。また、取扱動作ラベルデータのデータ欄を複数の行列のブロックに分割し、これら複数のブロックのデータ欄が複数の取扱動作をそれぞれ表すように構成してもよい。以上のような取扱動作ラベルデータを用いた場合でも、実施形態と同様の作用効果を得ることができる。
さらに、図21の取扱動作ラベルデータ70の場合、「物を人に渡す」という取扱動作を学習するときに使用されるものとして、2番目の行のデータを5個の値「0」と、5個の値「1」とを組み合わせるように構成した例であるが、2番目の行のデータの構成はこれに限らず、他の行のデータと区別できるように構成されていればよい。例えば、2番目の行のいずれか1箇所のみのデータを値「1」に設定し、それ以外のデータを値「0」に設定してもよく、これとは逆に構成してもよい。以上のような取扱動作ラベルデータ70を用いた場合でも、実施形態と同様の作用効果を得ることができる。
なお、実施形態は、動作装置として、ロボットアームタイプの産業用ロボット1を用いた例であるが、本発明の動作装置は、これに限らず、対象物を複数の取扱動作で取り扱うものであればよい。例えば、動作装置として、人型ロボット、家庭内の家事作業(炊事など)を実行/補助する家事作業装置、家庭内での工作作業(家具の組み立てなど)を実行/補助する工作作業装置、又は、医療現場での医療作業を実行/補助する医療作業装置などを用いてもよい。
また、実施形態は、ハサミ3、ハンマー4及びお玉杓子5を対象物とした例であるが、本発明の対象物は、これらに限らず、動作装置が複数の取扱動作で取り扱うものであればよい。例えば、工具(カッター及びドライバーなど)、キッチン用具(包丁及びナイフなど)、又は医療用具(メス及びピンセットなど)を対象物としてもよい。
さらに、実施形態は、「渡す」、「持つ」、「切る」、「叩く」及び「すくう」の動作を取扱動作とした例であるが、本発明の取扱動作は、これに限らず、動作装置が対象物を取り扱うときの動作であればよい。例えば、「押す」、「引く」、「挟む」又は「振る」などの動作を取扱動作としてもよい。
一方、実施形態は、取扱動作モデルとして、深層ニューラルネットワークを用いた例であるが、本発明の取扱動作モデルは、これに限らず、対象物と複数の取扱動作との関係を表すものであればよい。例えば、取扱動作モデルとして、畳み込みニューラルネットワーク又は再帰型ニューラルネットワークを用いてもよく、サポートベクターマシンを用いてもよい。また、連続動画像の時間軸方向に対する畳み込みニューラルネットワーク(3D-CNN)やLSTM(Long short-term memory)を用いてもよい。
また、実施形態は、教師画像データとして、教師画像データ44~46,51~53,61~63を用いた例であるが、本発明の教師画像データは、これに限らず、動作装置が複数の取扱動作で対象物を取り扱っているときの動作装置と対象物の所定関係を表すものであればよい。例えば、動作装置が産業用ロボットの場合、教師画像データとして、産業用ロボットが実際に対象物を掴んだり、持ったり、装着したりしている画像データを用いてもよい。また、教師画像データとして、ロボット搭載カメラから撮影した作業者が実際に対象物を掴んだり、持ったり、装着したりしている画像データを用いてもよい。
さらに、実施形態は、所定の学習方法として、損失関数として平均二乗誤差を算出し、これに基づく誤差逆伝播法を用いた例であるが、本発明の所定の学習方法は、これに限らず、取扱動作モデルのモデルパラメータを学習できるものであればよい。例えば、損失関数として平均絶対誤差、平均絶対誤差又は交差エントロピー誤差などを用い、これに基づく誤差逆伝播法を用いてもよい。また、複数の損失関数を組み合わせて最適化を行う方法を用いてもよい。さらに、所定の学習方法として、Direct Feedback Alignment、Synthetic Gradient、又はDifference Target Propなどを用いてもよい。
一方、実施形態は、情報処理装置として、コントローラで構成された学習装置30を用いた例であるが、本発明の情報処理装置は、これに限らず、取扱動作モデルのモデルパラメータを学習できるものであればよい。例えば、情報処理装置として、パーソナルコンピュータ、サーバー又はクラウドサーバーなどを用いてもよい。
また、実施形態は、対象物の画像データを取得する場合、入力画像データ作成部31に記憶されている複数種類の画像データの中から1つの画像データを読み出した例であるが、これに代えて、外部から入力画像データ作成部31に入力される画像データを取得するように構成してもよい。
さらに、実施形態は、取扱動作データとしての取扱動作ラベルデータを取得する場合、入力画像データ作成部31に記憶されている複数種類の取扱動作ラベルデータの中から1つの取扱動作ラベルデータを読み出した例であるが、外部から入力画像データ作成部31に入力される多数の取扱動作ラベルデータの中から1つの取扱動作ラベルデータを選択するように構成してもよく、外部から入力画像データ作成部31に入力される1つの取扱動作ラベルデータを取得するように構成してもよい。