IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

<>
  • 特許-機械学習装置、及び機械学習方法 図1
  • 特許-機械学習装置、及び機械学習方法 図2
  • 特許-機械学習装置、及び機械学習方法 図3
  • 特許-機械学習装置、及び機械学習方法 図4
  • 特許-機械学習装置、及び機械学習方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】機械学習装置、及び機械学習方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240918BHJP
   G06V 10/776 20220101ALI20240918BHJP
   G06T 7/00 20170101ALN20240918BHJP
【FI】
G06N20/00
G06V10/776
G06T7/00 350B
【請求項の数】 19
(21)【出願番号】P 2022571435
(86)(22)【出願日】2021-12-20
(86)【国際出願番号】 JP2021046971
(87)【国際公開番号】W WO2022138545
(87)【国際公開日】2022-06-30
【審査請求日】2023-07-11
(31)【優先権主張番号】P 2020216583
(32)【優先日】2020-12-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】李 維佳
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-175140(JP,A)
【文献】特開2019-93495(JP,A)
【文献】特開2019-58960(JP,A)
【文献】特許第6801149(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06V 10/776
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
ロボットによるワークの取り出し位置を少なくとも予測可能な機械学習装置であって、
機械学習に用いるトレーニングデータと推論用データを取得する取得部と、
前記トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習部と、
前記複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価部と、
学習済みモデルの選択の受付が可能なモデル選択部と、
前記複数の学習済みモデルの少なくとも一部と前記推論用データとに基づいて推論計算処理を行い、前記ワークの少なくとも1つの取り出し位置の予測位置リストを少なくとも1つ算出して推論結果候補する推論演算部と、
前記推論結果候補の全部又は一部又はその組合せを出力する推論決定部と、
を備える、機械学習装置。
【請求項2】
前記モデル選択部は、ユーザが前記モデル評価部により表示される前記評価結果に基づいて選択した学習済みモデルを受け付ける請求項1に記載の機械学習装置。
【請求項3】
前記モデル選択部は、前記モデル評価部による前記評価結果に基づいて学習済みモデルを選択する請求項1に記載の機械学習装置。
【請求項4】
パラメータ抽出部をさらに備え、
前記パラメータ抽出部は、複数の前記学習用パラメータの中から重要な学習用パラメータを抽出し、
前記学習部は、抽出された前記学習用パラメータに基づいて機械学習を行い、前記複数の学習済みモデルを生成する請求項1~3の何れか1項に記載の機械学習装置。
【請求項5】
前記モデル評価部は、前記推論演算部により生成された前記推論結果候補に基づいて、前記学習済みモデルの良否を評価する請求項1~4の何れか1項に記載の機械学習装置。
【請求項6】
前記モデル選択部は、前記推論演算部により生成された前記推論結果候補に基づく前記モデル評価部による前記評価結果に基づいて、学習済みモデルを選択する請求項5に記載の機械学習装置。
【請求項7】
前記推論演算部は、前記モデル評価部により良と評価された学習済みモデルに基づいて前記推論計算処理を行い、前記推論結果候補を生成する請求項1~6の何れか1項に記載の機械学習装置。
【請求項8】
前記モデル選択部は、前記推論演算部により生成された前記推論結果候補に基づいて、前記学習済みモデルを選択する請求項1~7の何れか1項に記載の機械学習装置。
【請求項9】
前記推論決定部による出力がなくなった時、前記モデル選択部は前記複数の学習済みモデルから、新たに少なくとも1つの学習済みモデルを選択し、
前記推論演算部は、新たに選択された前記少なくとも1つの学習済みモデルに基づいて前記推論計算処理を行い、少なくとも1つの新しい推論結果候補を生成し、
前記推論決定部は、新しい前記推論結果候補の全部又は一部又はその組み合わせを出力する請求項1~8の何れか1項に記載の機械学習装置。
【請求項10】
前記学習部は、複数セットの前記トレーニングデータに基づいて機械学習を行う請求項1~9の何れか1項に記載の機械学習装置。
【請求項11】
前記取得部は、前記トレーニングデータと前記推論用データとして、複数のワークの存在領域の画像データを取得し、
前記トレーニングデータは、前記画像データ上の前記ワークの少なくとも1つの特徴の教示データを含む請求項1~10の何れか1項に記載の機械学習装置。
【請求項12】
前記取得部は、前記トレーニングデータと前記推論用データとして、複数のワークの存在領域の3次元計測データを取得し、
前記トレーニングデータは、前記3次元計測データ上の前記ワークの少なくとも1つの特徴の教示データを含む請求項1~11の何れか1項に記載の機械学習装置。
【請求項13】
前記学習部は、前記トレーニングデータに基づいて機械学習を行い、
前記推論演算部は、前記ワークの少なくとも1つの前記特徴の情報を含む推論結果候補を生成する請求項11又は12に記載の機械学習装置。
【請求項14】
前記取得部は、前記トレーニングデータと前記推論用データとして、複数のワークの存在領域の画像データを取得し、
前記トレーニングデータは、前記画像データ上の前記ワークの少なくとも1つの取り出し位置の教示データを含む請求項1~10の何れか1項に記載の機械学習装置。
【請求項15】
前記取得部は、前記トレーニングデータと前記推論用データとして、複数のワークの存在領域の3次元計測データを取得し、
前記トレーニングデータは、前記3次元計測データ上の前記ワークの少なくとも1つの取り出し位置の教示データを含む請求項1~10及び14の何れか1項に記載の機械学習装置。
【請求項16】
前記学習部は、前記トレーニングデータに基づいて機械学習を行い、
前記推論演算部は、前記ワークの少なくとも1つの取り出し位置の情報を含む推論結果候補を生成する請求項14又は15に記載の機械学習装置。
【請求項17】
前記モデル評価部は、前記ワークを取り出すハンドを有するロボットに対して前記ハンドによる前記ワークの取り出し動作を実行させる動作実行部を含む制御装置から、前記機械学習装置により出力された前記ワークの少なくとも1つの取り出し位置の推論結果に基づいた前記動作実行部による前記取り出し動作の実行結果を受け取り、前記取り出し動作の実行結果に基づいて前記複数の学習済みモデルの学習結果の良否を評価する請求項16に記載の機械学習装置。
【請求項18】
前記モデル選択部は、前記ワークを取り出すハンドを有するロボットに対して前記ハンドによる前記ワークの取り出し動作を実行させる動作実行部を含む制御装置から、前記機械学習装置により出力された前記ワークの少なくとも1つの取り出し位置の推論結果に基づいた前記動作実行部による前記取り出し動作の実行結果を受け取り、前記取り出し動作の実行結果に基づいて学習済みモデルを選択する請求項16又は17に記載の機械学習装置。
【請求項19】
コンピュータにより実現される、ロボットによるワークの取り出し位置を少なくとも予測可能な機械学習方法であって、
機械学習に用いるトレーニングデータと推論用データを取得する取得工程と、
前記トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習工程と、
前記複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価工程と、
学習済みモデルの選択の受付が可能なモデル選択工程と、
前記複数の学習済みモデルの少なくとも一部と前記推論用データとに基づいて推論計算処理を行い、前記ワークの少なくとも1つの取り出し位置の予測位置リストを少なくとも1つ算出して推論結果候補する推論演算工程と、
前記推論結果候補の全部又は一部又はその組合せを出力する推論決定工程と、
を備える、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習装置、及び機械学習方法に関する。
【背景技術】
【0002】
近年、機械学習は様々な分野で盛んに適用されている。教師有り学習のアルゴリズムにおいて、トレーニングデータを用いて学習を行って学習済みモデル(例えば、分類問題における分類器、ニューラルネットワーク等)を生成し、生成された学習済みモデルを利用して未学習のケースも推論する。ここで、よいパフォーマンスが得られる学習済みモデルの生成は難点である。
1つの解決方法としては、トレーニングデータのバリエーションを増やして学習を行うことがある。例えば、様々な物体を検出するように、複数のトレーニングデータを用いて生成した複数の学習済みモデルに基づくアンサンブル学習を行う技術が提案されている。例えば、特許文献1参照。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-77231号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
2つ目の解決方法としては、学習済みモデルに含まれる様々な学習用パラメータ(以下、「ハイパーパラメータ」ともいう)をうまく調整するように長い時間をかけて工夫することである。
しかしながら、次の3つの問題がある。
(1)トレーニングデータのバリエーションを増やして学習する方法は限界があり、バリエーションを増やしてもうまく学習できない場合もあり、大量のトレーニングデータの収集には時間と手間がかかってしまう。
(2)学習済みモデルに含まれる様々な学習用パラメータ(ハイパーパラメータ)の調整が難しく、調整に時間をかけても、よいパフォーマンスを得られないという問題がある。
(3)画像認識分野においては、トレーニング画像データを利用した学習により生成された学習済みモデルを利用した推論結果として、推論用画像上に写るワークの未検出問題が生じて、ワークを取り出す時に取り残し問題が発生し、生産効率が低下してしまう問題がある。
【0005】
そこで、学習に用いるトレーニングデータの収集にかかる時間と手間を減らして、少ないトレーニングデータでも、よいパフォーマンスを得ることが望まれている。
【課題を解決するための手段】
【0006】
本開示の機械学習装置の一態様は、機械学習装置であって、機械学習に用いるトレーニングデータと推論用データを取得する取得部と、前記トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習部と、前記複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価部と、学習済みモデルの選択の受付が可能なモデル選択部と、前記複数の学習済みモデルの少なくとも一部と、前記推論用データと、に基づいて推論計算処理を行い、推論結果候補を生成する推論演算部と、前記推論結果候補の全部又は一部又はその組合せを出力する推論決定部と、を備える。
【0007】
本開示の機械学習方法は、コンピュータにより実現される機械学習方法であって、機械学習に用いるトレーニングデータと推論用データを取得する取得工程と、前記トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習工程と、前記複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価工程と、学習済みモデルの選択の受付が可能なモデル選択工程と、前記複数の学習済みモデルの少なくとも一部と、前記推論用データとに基づいて推論計算処理を行い、推論結果候補を生成する推論演算工程と、前記推論結果候補の全部又は一部又はその組合せを出力する推論決定工程と、を備える。
【発明の効果】
【0008】
一態様によれば、学習に用いるトレーニングデータの収集にかかる時間と手間を減らして、少ないトレーニングデータでも、よいパフォーマンスを得ることができる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係るロボットシステムの構成の一例を示す図である。
図2】一実施形態に係るロボット制御装置の機能的構成例を示す機能ブロック図である。
図3】一実施形態に係る機械学習装置の機能的構成例を示す機能ブロック図である。
図4】学習フェーズにおける機械学習装置の機械学習処理について説明するフローチャートである。
図5】運用フェーズにおける機械学習装置の推論計算処理について説明するフローチャートである。
【発明を実施するための形態】
【0010】
<一実施形態>
本実施形態の構成について図面を用いて詳細に説明する。
図1は、一実施形態に係るロボットシステム1の構成の一例を示す図である。
図1に示すように、ロボットシステム1は、機械学習装置10、ロボット制御装置20、ロボット30、計測器40、複数のワーク50、及びコンテナ60を有する。
機械学習装置10、ロボット制御装置20、ロボット30、及び計測器40は、図示しない接続インタフェースを介して互いに直接接続されてもよい。なお、機械学習装置10、ロボット制御装置20、ロボット30、及び計測器40は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されていてもよい。この場合、機械学習装置10、ロボット制御装置20、ロボット30、及び計測器40は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。また、説明しやすくするために、図1は機械学習装置10とロボット制御装置20をそれぞれ独立に描いていて、この場合の機械学習装置10は例えばコンピュータより構成されてもよい。このような構成に限定されず、例えば、機械学習装置10はロボット制御装置20の内部に実装され、ロボット制御装置20と一体化されてもよい。
【0011】
<ロボット制御装置20>
ロボット制御装置20は、ロボット30の動作を制御するための当業者にとって公知の装置である。ロボット制御装置20は、例えば、バラ積みされたワーク50のうち後述する機械学習装置10によって選択されたワーク50の取り出し位置情報を機械学習装置10から受信する。ロボット制御装置20は、機械学習装置10から受信した取り出し位置にあるワーク50を取り出すように、ロボット30の動作を制御するための制御信号を生成する。そして、ロボット制御装置20は、生成した制御信号をロボット30に対して出力する。また、ロボット制御装置20は、ロボット30による取り出し動作の実行結果を機械学習装置10に出力する。
図2は、一実施形態に係るロボット制御装置20の機能的構成例を示す機能ブロック図である。
ロボット制御装置20は、当業者にとって公知のコンピュータであり、図2に示すように、制御部21を有する。また、制御部21は、動作実行部210を有する。
【0012】
<制御部21>
制御部21は、CPU(Central Processing Unit)、ROM、RAM(Random Access Memory)、CMOS(Complementary Metal-Oxide-Semiconductor)メモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUはロボット制御装置20を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従ってロボット制御装置20全体を制御する。これにより、図2に示すように、制御部21が、動作実行部210の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、ロボット制御装置20の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0013】
<動作実行部210>
動作実行部210は、後述するロボット30の取り出しハンド31を、後述する機械学習装置10により出力された取り出し位置の推論結果に基づいて、ワーク50を取り出しハンド31で取り出すように制御する。そして、動作実行部210は、例えば、取り出しハンド31に設置されたセンサからの信号に基づいて、取り出しハンド31によるワーク50の取り出しが成功したか否かを示す情報を、取り出し動作の実行結果として機械学習装置10にフィードバックするようにしてもよい。
なお、ロボット制御装置20は、後述するように、機械学習装置10を含んでもよい。
【0014】
ロボット30は、ロボット制御装置20の制御に基づいて動作するロボットである。ロボット30は、鉛直方向の軸を中心に回転するためのベース部や、移動及び回転するアームや、ワーク50を保持するためにアームに装着される取り出しハンド31を備える。
具体的に、取り出しハンド31は、ワーク50を1つずつ保持することができる任意の構成としてもよい。例えば、取り出しハンド31は、ワーク50を吸着する吸着式パッドを有する構成としてもよい。このようにエアの気密性を利用してワーク50を吸着する吸着式ハンドでもよいが、エアの気密性を要求しない吸引力が強い吸引式ハンドでもよい。また、取り出しハンド31は、ワーク50を挟み込んで保持する一対の把持指又は3本以上の把持指を有する把持式ハンドの構成でもよく、複数の吸着パッドを有する構成でもよい。あるいは、取り出しハンド31は、鉄製等のワーク50を磁力で保持するような磁気式ハンドを有する構成とされてもよい。
また、取り出しハンド31は、例えば、エア吸着式ハンドの場合、ワーク50を保持していない時と保持している時のハンド内部のエア圧の変化を検出するセンサを実装してもよい。また、取り出しハンド31は、把持式ハンドの場合、ワーク保持の有無を検知する接触センサや力センサ等を実装してもよく、動作する把持指の位置を検知する位置センサを実装してもよい。また、取り出しハンド31は、磁気ハンドの場合、ハンド内部に永久磁石を実装し、その位置を検知する位置センサを実装してもよい。
ロボット30は、ロボット制御装置20が出力する制御信号に応じて、アームや取り出しハンド31を駆動して、機械学習装置10により選択された取り出し位置まで取り出しハンド31を移動させて、バラ積みされたワーク50を保持してコンテナ60から取り出す。この場合、ロボット制御装置20の動作実行部210は、取り出しハンド31に実装されたセンサからの信号に基づいて、ワーク50の取り出しに成功したか否かの情報を、取り出し動作の実行結果として自動的に収集してもよく、収集した実行結果を機械学習装置10にフィードバックしてもよい。
なお、取り出したワーク50の移載先については図示を省略する。また、ロボット30の具体的な構成については、当業者によく知られているので、詳細な説明は省略する。
【0015】
また、機械学習装置10やロボット制御装置20は、予め行われたキャリブレーションにより、ロボット30を制御するための機械座標系と、ワーク50の取り出し位置を示す後述する計測器40の座標系と、を対応付けているものとする。
【0016】
計測器40は、例えば、カメラセンサ等を含むように構成され、コンテナ60内のバラ積みされたワーク50を計測器40の光軸に対して垂直な平面に投影した2次元の画像データのRGBカラー画像やグレースケール画像、深度画像等の可視光画像を撮影してもよい。また、計測器40は、赤外線センサを含むように構成されて熱画像を撮像してもよく、紫外線センサを含むように構成されて物体表面の傷や斑等の検査用の紫外線画像を撮像してもよい。また、計測器40は、X線カメラセンサを含むように構成されてX線画像を撮像してもよく、超音波センサを含むように構成されて超音波画像を撮像してもよい。
なお、計測器40は、3次元計測器でもよく、3次元計測器の光軸に対して垂直な平面とコンテナ60内のばら積みされたワーク50の表面の各点との間の距離から換算した値を画素値とする3次元情報(以下、「距離画像」ともいう)を取得するように構成されてもよい。例えば、図1に示すように、距離画像上のワーク50の点Aの画素値は、計測器40の3次元座標系(X,Y,Z)におけるZ軸方向の、計測器40とワーク50の点Aとの間の距離(計測器40からの高さ)から換算したものである。すなわち、3次元座標系のZ軸方向は計測器40の光軸方向である。また、計測器40は、例えばステレオカメラ、又はロボット30の手先や移動装置に固定される1台のカメラ、カメラ1台とレーザスキャナや音波センサ等の距離センサの組み合わせにより構成され、コンテナ60内に積載の複数のワーク50の3次元点群データを取得してもよい。このように取得した3次元点群データは、3次元空間上のあらゆる視点から確認できる3Dビューの中で表示可能であり、コンテナ60に積載の複数のワーク50の重なり合う状態を3次元的に確認できる離散化されたデータである。
【0017】
ワーク50は、コンテナ60内で、バラ積みされた状態を含んで乱雑に置かれる。ワーク50は、ロボット30のアームに装着された取り出しハンド31で保持可能なものであればよく、その形状等は特に限定されない。
【0018】
<機械学習装置10>
図3は、一実施形態に係る機械学習装置10の機能的構成例を示す機能ブロック図である。
機械学習装置10は、当業者にとって公知のコンピュータであってもよいし、図3に示すように、制御部11を有する。また、制御部11は、取得部110、パラメータ抽出部111、学習部112、モデル評価部113、モデル選択部114、推論演算部115、及び推論決定部116を有する。また、取得部110は、データ保存部1101を有する。
【0019】
<制御部11>
制御部11は、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUは機械学習装置10を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従って機械学習装置10全体を制御する。これにより、図3に示すように、制御部11が、取得部110、パラメータ抽出部111、学習部112、モデル評価部113、モデル選択部114、推論演算部115、及び推論決定部116の機能を実現するように構成される。また、取得部110は、データ保存部1101の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、機械学習装置10の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0020】
<取得部110>
取得部110は、データ保存部1101を有するように構成され、クラウド又はエッジデバイス上のデータベース70から機械学習に用いるトレーニングデータを取得してデータ保存部1101に保存するように構成されてもよい。例えば、取得部110は、クラウド又はエッジデバイス上のデータベース70からHDD(Hard Disk Drive)やUSB(Universal Serial Bus)メモリ等の記録媒体に記録されているトレーニングデータをLAN等のネットワークを経由して取得し、機械学習装置10のHDDやUSBメモリ等の記録媒体(データ保存部1101)にコピーして保存する。
また、取得部110は、機械学習に用いる推論用データを計測器40から取得してデータ保存部1101に保存するように構成されてもよい。推論用データは、画像データであってもよいが、3次元計測データとしての3次元点群データ又は距離画像であってもよい。
【0021】
<パラメータ抽出部111>
パラメータ抽出部111は、全てのハイパーパラメータ等の中から重要なハイパーパラメータ等を抽出するように構成されてもよい。
具体的には、パラメータ抽出部111は、例えば、学習パフォーマンスへの寄与度を定義して評価し、寄与度の高いハイパーパラメータ等を重要なハイパーパラメータ等として抽出することができる。例えば、損失関数は学習済みモデルによる予測結果と教師データとの差を評価するものであり、損失が小さければ小さいほど、よりよいパフォーマンスを得られるため、損失関数の中のハイパーパラメータの寄与度を学習率やバッチサイズなどのハイパーパラメータの寄与度よりも高く設定して、重要なハイパーパラメータとして抽出することができる。
また、パラメータ抽出部111は、各種ハイパーパラメータ等の独立性を調べて、互いに依存しない独立なものを重要なハイパーパラメータ等として抽出するようにしてもよい。
【0022】
パラメータ抽出部111は、上述の方法により寄与度が付与された複数のハイパーパラメータに対して、機械学習を行う際に段階的にハイパーパラメータを減らして行くように構成されてもよい。
具体的には、例えば、機械学習を行う際に、後述するモデル評価部113がオンラインで学習済みモデルの良否を評価し、学習済みモデルが予測した出力値や損失がほぼ収束したと判断した時に、パラメータ抽出部111は、学習率や学習エポックの最適値を見付けたと判定して、それ以降は残りの重要なハイパーパラメータのみに着目し、調整するハイパーパラメータの種類を段階的に減らして行ってもよい。
【0023】
<学習部112>
学習部112は、取得部110により取得されたトレーニングデータに基づいて、ハイパーパラメータ等を設定して機械学習を行い、複数の学習済みモデルを生成するように構成されてもよい。ここで、学習部112は、1セットのトレーニングデータに対して、複数セットのハイパーパラメータ等を複数回に設定して複数回の機械学習を行うことで、複数の学習済みモデルを生成してもよい。また、学習部112は、複数セットのトレーニングデータのそれぞれに対して、複数セットのハイパーパラメータ等を複数回に設定して複数回の機械学習を行うことで、複数の学習済みモデルを生成してもよい。
【0024】
教師有り学習の場合、学習に用いるトレーニングデータは、学習入力データと出力データ(教師ラベルデータ)により構成されてもよい。学習済みモデルは、学習入力データから出力データ(教師ラベルデータ)への写像関数より構成され、ハイパーパラメータ等は、写像関数に含まれる各種パラメータより構成されてもよい。また、学習済みモデルは、分類ラベル(教師ラベルデータ)が既知であるような学習入力データから分類する分類問題における分類器(例えば、SVM:Support Vector Machine)により構成され、ハイパーパラメータ等は、分類問題を解くために定義される損失関数の中のパラメータ等により構成されてもよい。もしくは、学習済みモデルは、学習入力データから出力データの予測値を算出するニューラルネットワーク等により構成され、ハイパーパラメータ等は、ニューラルネットワークのレイヤー数やユニット数、学習率、バッチサイズ、学習エポック等により構成されてもよい。
【0025】
教師無し学習の場合、学習に用いるトレーニングデータは、学習入力データにより構成されてもよい。学習済みモデルは、例えば、分類ラベルが未知であるような学習入力データから分類する分類問題における分類器(例えば、k-meansクラスタリング法)により構成され、ハイパーパラメータ等は、分類問題を解くために定義される損失関数の中のパラメータ等により構成されてもよい。
【0026】
学習入力データが画像データである場合、トレーニングデータは画像データとその画像データ上に写っているワークの取り出し位置の位置教示データ(教師ラベルデータ)を含むように構成され、学習済みモデルはCNN(Convolutional Neural Network)により構成されてもよい。このようCNNの構造は、例えば、3次元(又は2次元)のConvolution層や、データの正規化を保つBatch Normalization層、活性化関数ReLu層等を含むように構成されてもよい。
【0027】
学習入力データは3次元点群データ(又は距離画像データ)である場合、トレーニングデータは3次元点群データ(又は距離画像データ)上のワークの取り出し位置の位置教示データ(教師ラベルデータ)を含むように構成され、学習済みモデルはCNNにより構成されてもよい。このようCNNの構造は、例えば、3次元(又は2次元)のConvolution層や、データの正規化を保つBatch Normalization層、活性化関数ReLu層等を含むように構成されてもよい。
【0028】
学習済みモデルは前述のCNN構造を有する場合、学習部112は、1セットのハイパーパラメータ等として、例えば、CNNのレイヤー数、ユニット数、Convolution層のフィルタサイズ、学習率、バッチサイズ、学習エポックを所定の値に1回設定して、1セットのトレーニングデータを学習入力データとして機械学習を行い、1つの学習済みモデル(以下、「学習済みモデルM1」ともいう)、画像上のマクロ的な特徴(例えば、より大きな平面)の特定に得意な学習済みモデルM1を生成することができる。
具体的に、例えば、トレーニングデータは画像データと画像データ上に写るワークの取り出し位置の位置教示データを含む場合、学習部112は、1セットの画像データを学習済みモデルであるCNNに代入し、CNNによりワークの取り出し位置の予測値を算出して出力することができる。学習部112は、出力されたワークの取り出し位置の予測値と、教師ラベルデータである位置教示データとの差が段々小さくなっていくようにバックプロパゲーション(Backpropagation:誤差逆伝播法)を利用し、位置教示データに近い予測値を出力できるような学習済みモデルを、機械学習を行って1つ生成することができる。
また、学習部112は、複数セットのトレーニングデータのそれぞれに対して、複数セットのハイパーパラメータ等を複数回に設定して、前述のような機械学習を複数回に行うことで、複数の学習済みモデルを生成することができる。利用する複数セットのトレーニングデータは互いに依存しない独立なデータであり、複数セットのハイパーパラメータ等は互いに依存しない独立なデータであるため、学習部112は、前述のような機械学習を複数回に行う際に、並列に行ってトータルの学習時間を短縮することができる。
【0029】
学習済みモデルは前述のCNN構造を有する場合、学習部112は、もう1セットのハイパーパラメータ等として、例えば、CNNのレイヤー数、ユニット数、Convolution層のフィルタサイズ、学習率、バッチサイズ、学習エポックを学習済みモデルM1の場合と異なる値にもう1回設定して、1セットのトレーニングデータを学習入力データとして機械学習をもう1回行い、もう1つの学習済みモデル(以下、「学習済みモデルM2」ともいう)、画像上のミクロ的な特徴(例えば、材質を示すワークのテクスチャ)の特定に得意な学習済みモデルM2を生成することもできる。
このようにそれぞれで設定した複数セットの偏りのあるハイパーパラメータを利用して生成した複数の偏りのある学習済みモデルM1とM2を総合的に利用して、例えば、画像上のより大きな平面の中心をワークの取り出し位置として推定しつつ、ワークの材質も同時に推定するように、総合的によいパフォーマンスを得ることができる。
【0030】
学習部112は、GPU(Graphics Processing Unit)と、HDD又はSSD(Solid State Drive)等の記録媒体と、を有するように構成され、トレーニングデータと学習済みモデルをGPUに導入し、機械学習の演算(例えば、前述のバックプロパゲーション演算等)を高速に行い、複数の学習済みモデルを生成してHDD又はSSD等の記録媒体に保存するように構成されてもよい。
【0031】
<モデル評価部113>
モデル評価部113は、学習部112により生成された複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するように構成されてもよい。
具体的には、モデル評価部113は、例えば、Average Precision(以下、「AP」ともいう)を評価関数として定義し、学習に使用されていないテストデータに対してAPを算出し、予め決めた閾値を超えたAPを有する学習済みモデルの学習結果を「良」として評価し、APの算出値を学習済みモデルの評価値として記録してもよい。
モデル評価部113は、機械学習装置10に含まれる表示部(図示しない)としてのモニタやタブレット等に、複数の学習済みモデルに対する上述の評価結果、すなわち、「良」や「不良」、ならびにAP等の評価値を表示し、ユーザに提示するように構成されてもよい。なお、モデル評価部113は、評価値を数値的に表示してもよく、図式的に表示してもよい。
また、モデル評価部113は、前述したように、ロボット制御装置20の動作実行部210によるワーク50の取り出し動作に成功したか否かの結果情報に基づいて、学習部112により生成された複数の学習済みモデルの良否を評価するように構成されてもよい。例えば、モデル評価部113は、動作実行部210から収集した取り出し動作の成功可否を示す結果情報を利用して、取り出し成功率の高い推論結果候補を予測した学習済みモデルを「良」として評価し、成功率の低い推論結果候補を予測した学習済みモデルを「不良」として評価するようにしてもよい。さらに、モデル評価部113は、取り出し成功率の値に比例して、学習済みモデルの良さの程度を示す評価値を付与するようにしてもよい。
【0032】
<モデル選択部114>
モデル選択部114は、学習済みモデルの選択を受け付けるように構成されてもよい。
例えば、モデル選択部114は、機械学習装置10に含まれる入力部(図示しない)としてのキーボードやマウス、又はタッチパネルを介して、複数の学習済みモデルからユーザにより選択されたものを受け付けて記録するように構成されてもよい。モデル選択部114は、1つの学習済みモデルの選択を受け付けてもよく、2つ以上の複数の学習済みモデルの選択を受け付けてもよい。
また、ユーザは上述の表示部に表示されるモデル評価部113による複数の学習済みモデルの評価結果を確認することで、モデル選択部114は、機械学習装置10の入力部(図示しない)を介して「良」として高い評価値を得た1つ以上の学習済みモデルの選択を受け付けた場合、選択された1つ以上の学習済みモデルを含む選択結果を受け付けて記録してもよい。
【0033】
モデル選択部114は、モデル評価部113により算出された評価結果に基づいて、複数の学習済みモデルから少なくとも1つを自動的に選択するように構成されてもよい。
例えば、モデル選択部114は、モデル評価部113により「良」として評価された複数の学習済みモデルの中から、最も高い評価値を得た学習済みモデルを自動的に選択してもよく、評価値が予め指定された閾値を超えた全ての学習済みモデルを自動的に選択してもよい。
また、モデル選択部114は、上述のロボット制御装置20の動作実行部210によるワーク50の取り出し動作の成功可否を示す結果情報に基づいて、学習部112により生成された複数の学習済みモデルから、少なくとも1つを選択するように構成されてもよい。例えば、モデル選択部114は、上述の取り出し成功率に基づいて、最も高い成功率を得た学習済みモデルを選択して次回に使用するようにしてもよく、成功率の高い順に必要に応じて複数の学習済みモデルを選択して切り替えながら使用してもよい。
【0034】
<推論演算部115>
推論演算部115は、取得部110により取得された推論用データと、学習部112により生成された複数の学習済みモデルの少なくとも一部と、に基づいて推論計算処理を行い、推論結果候補を生成するように構成されてもよい。
例えば、トレーニングデータは複数のワーク50の存在領域を撮影した画像データとその画像データ上に写っているワークの取り出し位置の位置教示データにより構成され、学習部112は、このようなトレーニングデータを用いて機械学習を行い、上述のCNN構造を有する学習済みモデルを生成した場合について述べる。この場合、推論演算部115は、推論用画像データを入力データとして学習済みモデルであるCNNに代入し、推論用画像上に写っているワーク50の取り出し位置の予測位置リストを算出して推論結果候補として出力することができる。複数の学習済みモデル、例えば、m個の学習済みモデルCNN1~CNNmを用いて推論計算処理を行う場合、推論演算部115は、推論用画像上に写っているワーク50の取り出し位置のm個の予測位置リスト1~mを生成することができる(mは1以上の整数)。推論演算部115は、データ保存部(図示しない)を含むように構成され、算出した推論結果候補であるワーク50の取り出し位置のm個の予測位置リスト1~mを保存するように構成されてもよい。
【0035】
なお、モデル評価部113は、推論演算部115による推論結果候補を利用して、学習部112により生成された複数の学習済みモデルの良否を評価し、モデル選択部114は、評価された複数の学習済みモデルの中から、少なくとも1つの学習済みモデルを選択するように構成されてもよい。
具体的に、例えば、上述の複数のワーク50の存在領域を撮影した推論用画像データから、画像上に写っているワーク50の取り出し位置を推論計算処理により予測する場合、推論演算部115は、推論用画像上に写っているワーク50の取り出し位置の予測位置リストを算出して推論結果候補として出力する。複数の学習済みモデル、例えば、CNN1~CNNmを用いて推論計算処理を行う場合、推論演算部115は、m個の予測位置リスト1~mを生成して出力する。
モデル評価部113は、これらの予測位置リスト1~mの中から、取り出し位置の候補数が多いリストに対応している学習済みモデルに高い評価値を付与して「良」として評価し、取り出し位置の候補数が少ないリストに対応している学習済みモデルに低い評価値を付与して「不良」として評価してもよい。
モデル選択部114は、これらの予測位置リスト1~mの中から、取り出し位置の候補数が最も多いリストに対応している学習済みモデルを選択してもよいが、予め指定された総数に達するように、候補数の多い順から必要だけの複数のリストに対応している複数の学習済みモデルを選択してもよい。これにより、機械学習装置10は、1回の撮影で撮った推論用画像1枚に対して、より多い取り出し位置候補を予測でき、1回の取り出し動作でより多いワーク50を取り出すことができ、ワーク50を取り出す効率を上げることができる。
【0036】
推論演算部115は、モデル評価部113により「良」として評価された学習済みモデルを利用して、推論用データを代入して推論計算処理を行い、推論結果候補を生成するように構成されてもよい。
そうすることで、機械学習装置10は、うまく学習できずに生成した「不良な」学習済みモデルを利用して推論計算処理を行っても、よい推論結果候補を得られないので、このような無駄な推論計算処理時間をなくし、推論計算処理の効率を上げることができる。
【0037】
<推論決定部116>
推論決定部116は、推論演算部115により算出された推論結果候補からその全部又は一部又はその組み合わせを出力するように構成されてもよい。
例えば、推論演算部115は、上述の推論用画像上のワーク50の取り出し位置の予測位置リスト1~mを推論結果候補として生成した場合、推論決定部116は、m個の予測位置リスト1~mの全てのリストに含まれる予測位置の情報を組み合わせて1つの位置リスト100として生成して出力してもよい。また、推論決定部116は、その一部の複数のリスト、例えば、予測位置リスト1と予測位置リスト3に含まれる予測位置の情報を組み合わせて1つの位置リスト100として生成して出力してもよい。また、推論決定部116は、予測位置の数が最も多いリスト(例えば、予測位置リスト2)を1つの位置リスト100として出力してもよい。
これにより、機械学習装置10は、1回の計測で取得した推論用画像1枚に対して、偏りのある複数の学習済みモデル(CNN1~CNNm)により予測した予測位置リスト1~mを組み合わせることで、1回の計測でより多くの取り出し位置候補を出力でき、1回の取り出し動作でより多くのワーク50を取り出すことができるようになり、ワーク50を取り出す効率を上げることができる。
【0038】
機械学習装置10は、ハイパーパラメータ等の数が多すぎてうまく調整できていない場合でも、複数セットのハイパーパラメータ等を用いて複数回の機械学習を行い、生成した複数の学習済みモデルを利用して総合的によいパフォーマンスを得ることができる。
一例を挙げて、コンテナ60内にある複数のワーク50の存在領域を撮影した画像又は計測した3次元計測データを利用して複数のワーク50を連続的に取り出すタスクを、機械学習を用いて実現するアプリケーションについて述べる。複雑な形状を有するワーク50上の複数箇所の取り出し位置を教示し、例えば、A種のワーク50上の取り出し位置A1、A2、A3等を教示したトレーニングデータを用いてA種のワーク50の取り出し位置を学習して推論するタスクがある。また、多品種ワーク混在状況の中で各種ワーク50の取り出し位置を教示し、例えば、B種のワーク50上の取り出し位置B1、C種のワーク50上の取り出し位置C1、D種のワーク50上の取り出し位置D1、D2等を教示したトレーニングデータを用いて、それぞれの種類のワーク50の取り出し位置を学習して推論するタスクもある。
これらの複雑なタスクにおいて、数多いハイパーパラメータ等をどう調整して学習しても、生成した学習済みモデルには偏りが存在しているため、1つの学習済みモデルでは総合的にいいパフォーマンスを得ることが難しい。例えば、1つの学習済みモデルを用いてA種のワーク50上の取り出し位置A1をうまく推論して予測できるが、A種のワーク50上の取り出し位置A2をうまく推論して予測することができない場合がある。また、1つの学習済みモデルを用いてB種のワーク50上の取り出し位置B1をうまく推論して予測できるが、C種のワーク50上の取り出し位置C1をうまく推論して予測することができない場合がある。
このような偏りのある学習済みモデル1つを利用して推論した推論結果に基づいてワーク50を取り出すと、コンテナ60内のワーク50を全て取り出すことができず、うまく推論して予測できなかった一部のワーク50の取り残しが発生してしまい、生産効率が低下してしまう。
【0039】
ここで、生成した偏りのある複数の学習済みモデル(例えば、CNN1~CNNm)をうまく利用して総合的によいパフォーマンスを得る方法を説明する。
機械学習装置10は、複数セットのハイパーパラメータ等を利用した複数回の学習を行うことで、例えば、B種のワーク50上の取り出し位置B1とC種のワーク50上の取り出し位置C1の推論予測は得意だが、他の種類のワーク50上の取り出し位置の推論予測は苦手な学習済みモデルCNN1を生成し、D種のワーク50上の取り出し位置D1、D2の推論予測は得意だが、他の種類のワーク50上の取り出し位置の推論予測は苦手な学習済みモデルCNN2も生成する。これにより、機械学習装置10は、B、C、D三種類のワーク50が混在しているコンテナ60の内部を撮影した1つの推論用画像データに対して、学習済みモデルCNN1と学習済みモデルCNN2とのそれぞれが推論して予測した取り出し位置情報を組み合わせることで、B~D種の全てのワーク50の取り出し位置B1~D2を全て予測した推論結果を得ることができる。これにより、機械学習装置10は、一部のワーク50の未検出又は取り残り問題を改善して、総合的によいパフォーマンスを得ることができる。
また、ワーク50を取り出して行くと、コンテナ60内のワーク50が減って行くとともに、例えば、撮影した画像上はD種のワーク50がなくなっている場合がある。このような実状況に応じて、機械学習装置10は、B種とC種のワークの取り出し位置の推論予測が得意な学習済みモデルCNN1を選択して切り替えて推論してもよい。
【0040】
推論決定部116による出力がなくなった時、モデル選択部114は、複数の学習済みモデルから新たに学習済みモデルを少なくとも1つ選択し、推論演算部115は、新たに選択された学習済みモデルに基づいて推論計算処理を行い、推論決定部116は、この新しい推論結果候補を出力するように構成されてもよい。
そうすることで、機械学習装置10は、上述の予測位置リストに取り出し位置の予測情報が1つもないような場合でも、新たに学習済みモデルを選択し、推論予測した新しい取り出し位置に取り行くことで、連続的な取り出し動作を実現できる。これにより、機械学習装置10は、ハンド31によるワーク50の取り出し動作の稼働停止を防止して、生産ラインの生産効率を上げることができる。
【0041】
<学習フェーズにおける機械学習装置10の機械学習処理>
次に、学習フェーズにおける本実施形態に係る機械学習装置10の機械学習処理に係る動作について説明する。
図4は、学習フェーズにおける機械学習装置10の機械学習処理について説明するフローチャートである。
なお、図4のフローはバッチ学習を例示するが、バッチ学習に替えてオンライン学習又はミニバッチ学習に置き換えてもよい。
【0042】
ステップS11において、取得部110は、データベース70からトレーニングデータを取得する。
【0043】
ステップS12において、パラメータ抽出部111は、全てのハイパーパラメータ等の中から重要なハイパーパラメータを抽出する。ここで重要なハイパーパラメータを抽出するように説明しているが、これに限定されない。例えば、ハイパーパラメータのトータル数が少ない場合、ステップS12による重要なハイパーパラメータの抽出を行わなくてもよい。
【0044】
ステップS13において、学習部112は、ステップS11で取得されたトレーニングデータに基づいて、複数セットのハイパーパラメータ等を複数回に設定して複数回の機械学習を行い、複数の学習済みモデルを生成する。
【0045】
<運用フェーズにおける機械学習装置10の推論計算処理>
次に、運用フェーズにおける本実施形態に係る機械学習装置10の推論計算処理に係る動作について説明する。
図5は、運用フェーズにおける機械学習装置10の推論計算処理について説明するフローチャートである。
【0046】
ステップS21において、取得部110は、計測器40から推論用データを取得する。
【0047】
ステップS22において、モデル評価部113は、学習部112により図4の機械学習処理で生成された複数の学習済みモデルの学習結果の良否を評価し、評価結果を機械学習装置10の表示部(図示しない)に表示する。ここで、学習フェーズと運用フェーズに分けて説明していて、学習フェーズが全て完了した後に、生成した複数の学習済みモデルをまとめてモデル評価部113に渡して評価してもよいが、これに限定されない。例えば、学習フェーズのステップS13の途中でも、学習済みモデルを1つ生成したら、すぐにモデル評価部113に渡してその学習結果を評価するように、学習済みモデルの学習結果の評価をオンラインで実行してもよい。
【0048】
ステップS23において、モデル選択部114は、機械学習装置10の入力部(図示しない)を介してユーザによる学習済みモデルの選択があったか否かを判定する。ユーザによる学習済みモデルの選択があった場合、処理はステップS25に移る。一方、ユーザによる学習済みモデルの選択がない場合、処理はステップS24に進む。
【0049】
ステップS24において、モデル選択部114は、ステップS22で算出された評価結果に基づいて、複数の学習済みモデルから少なくとも1つのより良い学習済みモデルを選択する。
【0050】
ステップS25において、推論演算部115は、ステップS21で取得された推論用データと、ステップS23又はステップS24で選択された学習済みモデルと、に基づいて推論計算処理を行い、推論結果候補を生成する。
【0051】
ステップS26において、モデル評価部113は、ステップS25で生成された推論結果候補を利用して、複数の学習済みモデルの良否を再評価する。ここで、再評価するように説明しているが、これに限定されない。例えば、全体的な計算処理時間を減らすように、このステップS26をスキップしてもよい。この場合、ステップS27もスキップして、直接ステップS28に遷移する。
【0052】
ステップS27において、モデル選択部114は、ステップS26で再評価された複数の学習済みモデルの中から、少なくとも1つの学習済みモデルを再選択するか否かを判定する。学習済みモデルを再選択する場合、処理はステップS24に戻る。一方、学習済みモデルを再選択しない場合、処理はステップS28に移る。
【0053】
ステップS28において、推論決定部116は、ステップS25で算出された推論結果候補からその全部又は一部又はその組み合わせを出力する。
【0054】
ステップS29において、推論決定部116は、ステップS28で出力した推論結果候補がなしか否かを判定する。出力がない場合、処理は学習済みモデルを再選択するためにステップS24に戻る。一方、出力がある場合、処理はステップS30に進む。
【0055】
ステップS30において、機械学習装置10は、ステップS28で出力された推論結果候補を取り出し位置情報として、ロボット制御装置20の動作実行部210がこの取り出し位置情報に基づいて取り出し動作を実行したか否かを判定する。取り出し動作を実行した場合、処理はステップS31に移る。一方、取り出し動作を実行していない場合、推論計算処理を終了する。
【0056】
ステップS31において、機械学習装置10は、ロボット制御装置20の動作実行部210によるワーク50の取り出し動作の実行結果のフィードバックを受信したか否かを判定する。フィードバックを受信した場合、処理はステップS22、S24に戻る。一方、フィードバックを受信しない場合、推論計算処理は終了する。
【0057】
以上により、一実施形態に係る機械学習装置10は、データベース70からトレーニングデータを取得し、取得したトレーニングデータに基づいて、1セットのトレーニングデータに対して、複数セットのハイパーパラメータを複数回に設定して複数回の機械学習を行い、複数の学習済みモデルを生成する。機械学習装置10は、生成した複数の学習済みモデルそれぞれの学習結果の良否を評価し、評価結果に基づいて複数の学習済みモデルから少なくとも1つのより良い学習済みモデルを選択する。機械学習装置10は、計測器40から取得した推論用データと、選択した学習済みモデルと、に基づいて推論計算処理を行い、推論結果候補を生成する。機械学習装置10は、生成した推論結果候補の全部又は一部又はその組み合わせを出力する。
これにより、機械学習装置10は、偏りのある複数の学習済みモデルを生成して総合的に利用することにより、学習に用いるトレーニングデータの収集にかかる時間と手間を減らして、少ないトレーニングデータでも、よいパフォーマンスを得ることができる。すなわち、学習に用いるトレーニングデータの収集にかかる時間と手間を減らして、少ないトレーニングデータでも、よいパフォーマンスを得られる。
また、機械学習装置10は、調整必要なハイパーパラメータの数が多くて、どのように調整してもよい学習済みモデルを生成できない場合でも、偏りのある複数の学習済みモデルを利用して生成した偏りのある複数の推論結果候補を組み合わせることで、あるいは実状況に応じてよい学習済みモデルを少なくとも1つ選択して総合的にいいパフォーマンスを出せる。
また、機械学習装置10は、画像認識におけるワークの未検出問題や、取り残し問題を解決し、高い生産効率を実現できる。
【0058】
以上、一実施形態について説明したが、機械学習装置10は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0059】
<変形例1>
上述の一実施形態では、機械学習装置10は、ロボット制御装置20と異なる装置として例示したが、機械学習装置10の一部又は全部の機能を、ロボット制御装置20が備えるように構成されてもよい。
あるいは、機械学習装置10の取得部110、パラメータ抽出部111、学習部112、モデル評価部113、モデル選択部114、推論演算部115、及び推論決定部116の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置10の各機能を実現してもよい。
さらに、機械学習装置10は、機械学習装置10の各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
【0060】
<変形例2>
また例えば、上述の実施形態では、機械学習装置10は、機械学習処理と推論計算処理とを別々に実行したが、これに限定されない。例えば、機械学習装置10は、オンライン学習で機械学習処理を実行しながら、推論計算処理を実行するようにしてもよい。
【0061】
なお、一実施形態における機械学習装置10に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0062】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0063】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0064】
以上を換言すると、本開示の機械学習装置、及び機械学習方法は、次のような構成を有する各種各様の実施形態を取ることができる。
【0065】
(1)本開示の機械学習装置10は、機械学習装置であって、機械学習に用いるトレーニングデータと推論用データを取得する取得部110と、トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習部112と、複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価部113と、学習済みモデルの選択の受付が可能なモデル選択部114と、複数の学習済みモデルの少なくとも一部と、推論用データと、に基づいて推論計算処理を行い、推論結果候補を生成する推論演算部115と、推論結果候補の全部又は一部又はその組合せを出力する推論決定部116と、を備える。
この機械学習装置10によれば、学習に用いるトレーニングデータの収集にかかる時間と手間を減らして、少ないトレーニングデータでも、よいパフォーマンスを得ることができる。
【0066】
(2) (1)に記載の機械学習装置10において、モデル選択部114は、ユーザがモデル評価部113により表示される評価結果に基づいて選択した学習済みモデルを受け付けてもよい。
そうすることで、機械学習装置10は、コンピュータが計算した評価結果にミスがある場合でも、ユーザが認識した現場の実状況に合わせて選択した最適な学習済みモデルに応じた推論演算処理を行うことができる。さらに、ユーザによる選択結果をフィードバックして学習し、コンピュータの計算ミスの修正や機械学習のアルゴリズムの改善を行って機械学習装置10の予測精度を上げることもできる。
【0067】
(3) (1)に記載の機械学習装置10において、モデル選択部114は、ユーザの介入を頼らずに、モデル評価部113による評価結果に基づいて学習済みモデルを自動的に選択してもよい。
そうすることで、機械学習装置10は、無人な環境の中で自ら学習して得たルールに従って最適な学習済みモデルを自律的に選択し、最適な学習済みモデルを用いて推論演算処理を行うことができる。
【0068】
(4) (1)~(3)の何れかに記載の機械学習装置10において、パラメータ抽出部111をさらに備え、パラメータ抽出部111は、複数のハイパーパラメータの中から重要なハイパーパラメータを抽出し、学習部112は、抽出されたハイパーパラメータに基づいて機械学習を行い、複数の学習済みモデルを生成してもよい。
そうすることで、機械学習装置10は、ハイパーパラメータの調整にかかる時間を減らして学習の効率を上げることができる。
【0069】
(5) (1)~(4)の何れかに記載の機械学習装置10において、モデル評価部113は、推論演算部115により生成された推論結果候補に基づいて、学習済みモデルの良否を評価してもよい。
そうすることで、機械学習装置10は、学習に用いたことのない実際の推論用データに基づいて学習済みモデルの実力を正しく評価することができる。
【0070】
(6) (5)に記載の機械学習装置10において、推論演算部115により生成された推論結果候補に基づくモデル評価部113による評価結果に基づいて、よりよい推論結果候補を得た学習済みモデルを選択してもよい。
そうすることで、機械学習装置10は、最良のパフォーマンスが得られた最良の学習済みモデルを選択することができる。
【0071】
(7) (1)~(6)の何れかに記載の機械学習装置10において、推論演算部115は、モデル評価部113により良と評価された学習済みモデルに基づいて推論計算処理を行い、推論結果候補を生成してもよい。
そうすることで、機械学習装置10は、うまく学習できずに生成した「不良な」学習済みモデルを利用して推論計算処理を行っても、よい推論結果候補を得られないので、このような無駄な推論計算処理時間をなくし、推論計算処理の効率を上げることができる。
【0072】
(8) (1)~(7)の何れかに記載の機械学習装置10において、モデル選択部114は、推論演算部115により生成された推論結果候補に基づいて、学習済みモデルを選択してもよい。
そうすることで、機械学習装置10は、1回の撮影で撮った推論用画像1枚に対して、より多い取り出し位置候補を予測できた学習済みモデルを選択することで、1回の取り出し動作でより多いワークを取り出すことができ、ワークを取り出す効率を上げることができる。
【0073】
(9) (1)~(8)の何れかに記載の機械学習装置10において、推論決定部116による出力がなくなった時、モデル選択部114は複数の学習済みモデルから、新たに少なくとも1つの学習済みモデルを選択し、推論演算部115は、新たに選択された少なくとも1つの学習済みモデルに基づいて推論計算処理を行い、少なくとも1つの新しい推論結果候補を生成し、推論決定部116は、新しい推論結果候補の全部又は一部又はその組み合わせを出力してもよい。
そうすることで、機械学習装置10は、推論結果として出力された取り出し位置は1つもないような場合でも、新たに学習済みモデルを選択し、新たに推論予測した新しい取り出し位置に取り行くことで、ハンド31によるワーク50の取り出し動作の稼働停止を防止して、連続的な取り出し動作を実現でき、生産ラインの生産効率を上げることができる。
【0074】
(10) (1)~(9)の何れかに記載の機械学習装置10において、学習部112は、複数セットのトレーニングデータに基づいて機械学習を行ってもよい。
そうすることで、機械学習装置10は、バリエーションの多いトレーニングデータを利用して学習し、様々な状況をうまく推論できるようなロバスト性がよい学習済みモデルを得られ、総合的にいいパフォーマンスを出すことができる。
【0075】
(11) (1)~(10)の何れかに記載の機械学習装置10において、取得部110は、トレーニングデータと推論用データとして、複数のワーク50の存在領域の画像データを取得し、トレーニングデータは、画像データ上のワーク50の少なくとも1つの特徴の教示データを含んでもよい。
そうすることで、機械学習装置10は、教示データに近い予測値を出力でき、教示データに含まれる特徴と似ている特徴を様々な推論用画像データ上で特定できるような学習済みモデルを機械学習により生成することができる。
【0076】
(12) (1)~(11)の何れかに記載の機械学習装置10において、取得部110は、トレーニングデータと推論用データとして、複数のワーク50の存在領域の3次元計測データを取得し、トレーニングデータは、3次元計測データ上のワーク50の少なくとも1つの特徴の教示データを含んでもよい。
そうすることで、機械学習装置10は、教示データに近い予測値を出力でき、教示データに含まれる特徴と似ている特徴を様々な推論用3次元計測データ上で特定できるような学習済みモデルを機械学習により生成することができる。
【0077】
(13) (11)又は(12)に記載の機械学習装置10において、学習部112は、トレーニングデータに基づいて機械学習を行い、推論演算部115は、ワーク50の少なくとも1つの特徴の情報を含む推論結果候補を生成してもよい。
そうすることで、機械学習装置10は、教示データに含まれる特徴と似ている特徴を様々な推論用データ上で特定できる学習済みモデルの複数をうまく利用して総合的によいパフォーマンスを得ることができる。
【0078】
(14) (1)~(10)の何れかに記載の機械学習装置10において、取得部110は、トレーニングデータと推論用データとして、複数のワーク50の存在領域の画像データを取得し、トレーニングデータは、画像データ上のワーク50の少なくとも1つの取り出し位置の教示データを含んでもよい。
そうすることで、機械学習装置10は、教示データに近い予測値を出力でき、教示データに含まれる取り出し位置と似ている位置を様々な推論用画像データ上で推定できるような学習済みモデルを機械学習により生成することができる。
【0079】
(15) (1)~(10)及び(14)の何れかに記載の機械学習装置10において、取得部110は、トレーニングデータと推論用データとして、複数のワーク50の存在領域の3次元計測データを取得し、トレーニングデータは、3次元計測データ上のワーク50の少なくとも1つの取り出し位置の教示データを含んでもよい。
そうすることで、機械学習装置10は、教示データに近い予測値を出力でき、教示データに含まれる取り出し位置と似ている位置を様々な推論用3次元計測データ上で推定できるような学習済みモデルを機械学習により生成することができる。
【0080】
(16) (14)又は(15)に記載の機械学習装置10において、学習部112は、トレーニングデータに基づいて機械学習を行い、推論演算部115は、ワーク50の少なくとも1つの取り出し位置の情報を含む推論結果候補を生成してもよい。
そうすることで、機械学習装置10は、教示データに含まれる取り出し位置と似ている位置を様々な推論用データ上で推定できる学習済みモデルの複数をうまく利用して総合的によいパフォーマンスを得ることができる。
【0081】
(17) (16)に記載の機械学習装置10において、モデル評価部113は、ワーク50を取り出すハンド31を有するロボット30に対してハンド31によるワーク50の取り出し動作を実行させる動作実行部210を含むロボット制御装置20から、機械学習装置10により出力されたワーク50の少なくとも1つの取り出し位置の推論結果に基づいた動作実行部210による取り出し動作の実行結果を受け取り、取り出し動作の実行結果に基づいて複数の学習済みモデルの学習結果の良否を評価してもよい。
そうすることで、機械学習装置10は、ワーク50の取り出し成功率の高い推論結果候補を予測した学習済みモデルに対して高い評価値を付与することができる。
【0082】
(18) (16)又は(17)に記載の機械学習装置10において、モデル選択部114は、ワーク50を取り出すハンド31を有するロボット30に対してハンド31によるワーク50の取り出し動作を実行させる動作実行部210を含むロボット制御装置20から、機械学習装置10により出力されたワーク50の少なくとも1つの取り出し位置の推論結果に基づいた動作実行部210による取り出し動作の実行結果を受け取り、取り出し動作の実行結果に基づいて学習済みモデルを選択してもよい。
そうすることで、機械学習装置10は、ワーク50の取り出し成功率の高い推論結果候補を予測する学習済みモデルを選択することができる。
【0083】
(19)本開示の機械学習方法は、コンピュータにより実現される機械学習方法であって、機械学習に用いるトレーニングデータと推論用データを取得する取得工程と、トレーニングデータと複数セットの学習用パラメータに基づいて機械学習を行い、複数の学習済みモデルを生成する学習工程と、複数の学習済みモデルの学習結果の良否評価を行い、評価結果を表示するモデル評価工程と、学習済みモデルの選択の受付が可能なモデル選択工程と、複数の学習済みモデルの少なくとも一部と、推論用データとに基づいて推論計算処理を行い、推論結果候補を生成する推論演算工程と、推論結果候補の全部又は一部又はその組合せを出力する推論決定工程と、を備える。
この機械学習方法によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0084】
1 ロボットシステム
10 機械学習装置
11 制御部
110 取得部
111 パラメータ抽出部
112 学習部
113 モデル評価部
114 モデル選択部
115 推論演算部
116 推論決定部
20 ロボット制御装置
21 制御部
210 動作実行部
30 ロボット
40 計測器
50 ワーク
60 コンテナ
70 データベース
図1
図2
図3
図4
図5