(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】学習プログラム、学習方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240918BHJP
G06T 7/00 20170101ALI20240918BHJP
【FI】
G06N20/00
G06T7/00 350C
(21)【出願番号】P 2020073729
(22)【出願日】2020-04-16
【審査請求日】2023-01-12
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 彼方
(72)【発明者】
【氏名】横田 泰斗
【審査官】石坂 知樹
(56)【参考文献】
【文献】特開2020-035097(JP,A)
【文献】国際公開第2020/026643(WO,A1)
【文献】特開2018-202550(JP,A)
【文献】特開2019-164836(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06T 7/00
G06V 10/764
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
学習対象である第2のモデルに第3画像データを入力して、第1条件を満たす第1画像データを生成し、
前記第1条件を満たす第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出し、
算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する
処理を実行させることを特徴とする学習プログラム。
【請求項2】
画像データ対と、画像データ対の類似度に基づくラベルとが対応付けられた学習データを用いて第1のモデルの機械学習を実行する処理を前記コンピュータにさらに実行させ、
前記算出する処理は、学習済みの第1のモデルを用いて、前記組合せの類似度を算出することを特徴とする請求項1に記載の学習プログラム。
【請求項3】
画像データの入力に応じ
て前記第1条件を満たす画像データを生成
する前記第2のモデル
に前記第3画像データを入力することで生成された前記第1画像データと、前記第2画像データとを用いたデータセットを生成する、処理を前記コンピュータにさらに実行させ、
前記算出する処理は、前記データセットに含まれる各画像データを用いて前記組合せを生成して、前記組合せについて前記類似度を算出し、
前記算出する処理は、前記類似度に基づいて前記スコアを算出し、
前記実行する処理は、前記第2のモデルに入力した前記第3画像データと前記スコアとを関連付けた前記学習データを用いて、前記第2のモデルの機械学習を実行することを特徴とする請求項2に記載の学習プログラム。
【請求項4】
前記算出する処理は、前記第1条件を満たす画像データとして、ピッキングロボットの把持動作が成功した状態である把持画像データと、前記第2条件を満たす画像データとして、ピッキングロボットの把持動作の理想的な状態である理想把持画像データとの類似度を算出し、
前記算出する処理は、前記把持画像データと前記理想把持画像データとの類似度に基づいて、前記スコアを算出することを特徴とする請求項1に記載の学習プログラム。
【請求項5】
2つの画像データ対を説明変数、前記2つの画像データ対の類似度を目的変数として、第1のモデルの機械学習を実行する処理を前記コンピュータにさらに実行させ、
前記算出する処理は、学習済みの第1のモデルを用いて、前記把持画像データと前記理想把持画像データとの類似度を算出することを特徴とする請求項4に記載の学習プログラム。
【請求項6】
複数の把持対象を含むワーク画像データの入力に応じて把持対象を出力する
前記第2のモデルを用いて、把持対象を検出し、
前記ピッキングロボットを用いて前記把持対象の把持を実行したときの実機画像データを取得し、
前記第1条件を満たす画像データとして前記実機画像データと、前記第2条件を満たす画像データとして前記理想把持画像データとを含むデータセットを生成する、処理を前記コンピュータにさらに実行させることを特徴とする請求項5に記載の学習プログラム。
【請求項7】
前記算出する処理は、前記データセットに含まれる前記実機画像データと前記理想把持画像データとの組合せを生成し、前記組合せについて前記類似度を算出し、
前記算出する処理は、前記類似度に基づいて前記スコアを算出し、
前記実行する処理は、前記実機画像データを取得するために前記第2のモデルに入力した前記ワーク画像データと前記スコアとを関連付けた前記学習データを用いて、前記第2のモデルの機械学習を実行することを特徴とする請求項6に記載の学習プログラム。
【請求項8】
前記実行する処理は、前記第2のモデルの機械学習時に、前記第2のモデルのパラメータ更新を行うフィードバックを、前記スコアが大きいほど大きくするように、前記機械学習を実行することを特徴とする請求項7に記載の学習プログラム。
【請求項9】
コンピュータが、
学習対象である第2のモデルに第3画像データを入力して、第1条件を満たす第1画像データを生成し、
前記第1条件を満たす第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出し、
算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する
処理を実行することを特徴とする学習方法。
【請求項10】
学習対象である第2のモデルに第3画像データを入力して、第1条件を満たす第1画像データを生成し、
前記第1条件を満たす第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出
し、
前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出
し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する
、
制御部を有することを特徴とする情報処理装置。
【請求項11】
コンピュータに、
学習対象である第2のモデルに第3画像データを入力して、それぞれがピッキングロボットが把持する対象の物体を含み、かつ、前記ピッキングロボットが前記物体を把持する動作に関する第1条件を満たす第1画像データ
を生成し、
前記第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出し、
算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する、
処理を実行させることを特徴とする学習プログラム。
【請求項12】
コンピュータが、
学習対象である第2のモデルに第3画像データを入力して、それぞれがピッキングロボットが把持する対象の物体を含み、かつ、前記ピッキングロボットが前記物体を把持する動作に関する第1条件を満たす第1画像データ
を生成し、
前記第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出し、
算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する、
処理を実行することを特徴とする学習方法。
【請求項13】
学習対象である第2のモデルに第3画像データを入力して、それぞれがピッキングロボットが把持する対象の物体を含み、かつ、前記ピッキングロボットが前記物体を把持する動作に関する第1条件を満たす第1画像データ
を生成し、
前記第1画像データと、前記第1条件と第2条件を満たす第2画像データとの組合せについて、画像データ間の類似度を算出
し、
算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出
し、
前記組合せのうちの前記第1画像データを取得するために用いた
前記第3画像データと前記スコアとに基づく学習データを用いて
、前記第2のモデルの機械学習を実行する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習プログラム、学習方法および情報処理装置に関する。
【背景技術】
【0002】
ロボット機能の発達により、人手作業の代替えとしてロボットの使用が期待されている。ロボットを操作して人手作業と同じ動作を行うには、熟練者による操作が必要となることから、ロボットを自動で動作させるために、深層学習などを含む機械学習により、人手作業の動作軌道をロボットに学習させることが行われている。
【0003】
例えば、画像と望まれる動作内容を示す教師ラベルとを対応付けた大量の訓練データを用いて機械学習を実行してモデルを生成し、学習完了後の予測時は、画像をモデルに入力して動作内容を予測する。また、機械学習による物体検知では、各画像に望まれる出力と物体位置とを対応付けた訓練データを用いて機械学習を実行してモデルを生成し、予測時には、物体の位置も予測する。
【0004】
一方で、教師ラベルが付与された訓練データ(以下では、教示データと記載する場合がある)を事前に大量に収集することが難しいことがあり、近年では、機械学習モデルが動作を予測し、その予測結果が成功したか否かのフィードバックを得ながら、逐次的に機械学習を実行する逐次学習(以下では、ティーチングレス学習と記載する場合がある)が利用されている。ピッキングロボットを例にして説明すると、機械学習モデルを用いて、複数の物体が写っている画像から把持対象の物体を予測した後、予測に従って実機でピッキング動作を実際に行って、その実際の動作にしたがって把持成否を評価する。このようにして、画像と把持成否とを対応付けた訓練データ(以下では、試行サンプルと記載する場合がある)を生成して蓄積し、所定数以上の試行サンプルが蓄積されると、蓄積した試行サンプルを用いて機械学習が実行される。
【先行技術文献】
【非特許文献】
【0005】
【文献】Lerrel Pinto,Abhinav Gupta、“Supersizing Self-supervision:Learning to Grasp from 50K Tries and 700 Robot Hour”、2015年9月23日、arXiv:1509.06825v1
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記逐次学習では、試行サンプルである訓練データに、成功度合いを含めることができないので、機械学習が安定せず、局所解に陥る可能性があり、機械学習の精度が低下することがある。
【0007】
例えば、実機でピッキング動作を行ったときの把持成否は、把持が成功したか失敗したかしか判定することができない。このため、精密機器などのように、壊れやすい場所を把持したことを失敗パターンと学習したい場合でも、把持が成功していると、成功パターンとして学習してしまう。
【0008】
なお、全ての把持パターンを考慮したパラメータ設計も考えられるが、物体の形状によっては把持パターンが無数に存在するので現実的ではない。また、成功度合いを評価する機械学習モデルを用いることも考えられるが、その機械学習モデルを学習するための訓練データを事前に別途用意するコストが大きく、逐次学習の本来の趣旨にもそぐわない。
【0009】
一つの側面では、機械学習の精度を向上することができる学習プログラム、学習方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、学習プログラムは、コンピュータに、第1条件を満たす複数の画像データに含まれるいずれか2つの画像データの組合せであって、前記組合せのうち一方が前記第1条件に加え第2条件を満たす組合せについて、画像データ間の類似度を算出する処理を実行させる。学習プログラムは、コンピュータに、算出した前記画像データ間の類似度に基づいて、類似度が高くなるほど大きくなるスコアを算出する処理を実行させる。学習プログラムは、コンピュータに、前記組合せのうちの他方の画像データと前記スコアとに基づく学習データを用いて機械学習を実行する処理を実行させる。
【発明の効果】
【0011】
一つの側面では、機械学習の精度を向上することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、実施例1にかかる情報処理装置を説明する図である。
【
図3】
図3は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図4】
図4は、評価用の訓練データを説明する図である。
【
図5】
図5は、理想把持データを説明する図である。
【
図6】
図6は、理想把持データに該当しないデータを説明する図である。
【
図7】
図7は、試行サンプルの画像データを説明する図である。
【
図8】
図8は、評価モデルの機械学習を説明する図である。
【
図9】
図9は、評価モデルの機械学習の詳細を説明する図である。
【
図10】
図10は、検出モデルの機械学習の一連の流れを説明する図である。
【
図11】
図11は、検出モデルの機械学習の一連の流れを説明する図である。
【
図12】
図12は、検出モデルの機械学習の一連の流れを説明する図である。
【
図13】
図13は、検出モデルの機械学習の一連の流れを説明する図である。
【
図16】
図16は、検出モデルの機械学習を説明する図である。
【
図17】
図17は、検出モデルのパラメータ更新を説明する図である。
【
図18】
図18は、評価モデルの学習処理の流れを示すフローチャートである。
【
図19】
図19は、試行サンプルの生成処理および検出モデルの学習処理の流れを示すフローチャートである。
【
図20】
図20は、事前学習を含む一連の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下に、本願の開示する学習プログラム、学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0014】
[情報処理装置の説明]
実施例1にかかる情報処理装置10は、ピッキングロボット(以下では、「実機」と記載する場合がある)の把持位置(把持対象)を予測するコンピュータ装置の一例であり、把持対象である複数の物体が写っている画像から把持位置を検出する。この情報処理装置10は、機械学習を用いた検出モデルが出力を予測し、その結果が適当かどうかのフィードバックを得ながら、逐次的に検出モデルの機械学習を実行する。
【0015】
具体的には、情報処理装置10は、画像を検出モデルに入力して把持位置を予測し、予測に従ってピッキングロボットでピッキング動作を実際に行う。そして、情報処理装置10は、その実際の動作にしたがって把持成否を評価し、画像と把持成否と教師ラベル(成功把持位置)を対応付けた試行サンプルを生成する。
【0016】
このようにして、情報処理装置10は、実機を用いた実際の動作の評価結果を教示データを生成した上で検出モデルの機械学習を実行する。このとき、情報処理装置10は、把持成否の評価に際して、成功か失敗かだけではなく、どのくらい成功したかを示す把持スコアを算出することで、検出モデルの機械学習の精度を向上させる。
【0017】
図1と
図2は、実施例1にかかる情報処理装置10を説明する図である。
図1に示すように、情報処理装置10は、画像対を用いて、画像の類似度を評価する評価モデルの機械学習を実行する。例えば、情報処理装置10は、複数の画像群から2つの画像を選択し、画像間の類似度を算出する。そして、情報処理装置10は、2つの画像を説明変数、類似度に基づく教師ラベルを目的関数に用いて、評価モデルの機械学習を実行する。
【0018】
続いて、情報処理装置10は、物体が写っている取得画像を、学習前の検出モデルに入力して、把持対象を予測する予測画像を取得する。その後、情報処理装置10は、実機を用いて、予測画像で特定される把持対象の把持を実行し、実際の把持結果を示す画像である実機結果を生成する。そして、情報処理装置10は、理想的な把持結果を示す理想把持画像と実機結果とを、学習済みの評価モデルに入力し、評価モデルによる出力を用いて成功度合いを示す把持スコアを算出する。その後、情報処理装置10は、取得画像と教師ラベルと把持スコアとを対応付けた試行サンプルを生成する。
【0019】
その後、規定数以上の試行サンプルが生成されると、検出モデルの機械学習が実行される。具体的には、
図2に示すように、情報処理装置10は、各試行サンプルの取得画像を説明変数として検出モデルに入力し、検出モデルの出力結果である予測結果と教師ラベルとの誤差に基づく検出モデルの機械学習を実行する際に、把持スコアに応じてフィードバック調整しつつ、機械学習を実行する。
【0020】
このようにして、情報処理装置10は、検出モデルの機械学習が完了すると、物体が写っている対象画像を学習済みの検出モデルに入力し、検出モデルの出力によりピッキングロボットの把持位置を検出する把持検出(把持予測)を実行する。
【0021】
[機能構成]
図3は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図3に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0022】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部11は、実機であるピッキングロボットに対して動作指示を送信し、ピッキングロボットから動作結果を取得する。なお、動作結果は、画像データでもよく、画像データを生成することができるコマンド結果などでもよい。
【0023】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクにより実現される。例えば、記憶部12は、評価用訓練データDB13、理想把持データDB14、試行サンプルDB15、学習結果DB16、検出結果DB17を記憶する。
【0024】
評価用訓練データDB13は、評価モデルの機械学習に利用する複数の訓練データを記憶する。具体的には、評価用訓練データDB13が記憶する各訓練データは、2組の画像データ対から構成される。ここで、評価モデルに入力するときの訓練データの生成について説明する。なお、訓練データの生成は、例えば後述する制御部20や評価モデル学習部21などが実行することができ、別の装置で予め実行することもできるが、ここでは、評価モデル学習部21が実行する例で説明する。
【0025】
図4は、評価用の訓練データを説明する図である。
図4に示すように、評価モデル学習部21は、ラベルが設定されておらず、特別な前処理も施されていない生画像のデータであって、予め撮像した把持状態の画像である複数の把持状態撮像画像データを取得してデータセットを生成する。ここで、データセットには、目的とする把持状態の画像である理想把持データが含まれる。そして、評価モデル学習部21は、データセット中の各画像データを組み合わせた2つの画像データの組合せ(x
1,x
2)を1組の訓練データとして生成する。
【0026】
理想把持データDB14は、目的とする把持状態の画像である理想把持データを記憶する。
図5は、理想把持データを説明する図であり、
図6は、理想把持データに該当しないデータを説明する図である。
図5に示すように、把持対象である電子部品等に対して上下の把持部がずれることなく、把持している状態の画像を理想把持データとする。一方、
図6の(a)や(b)に示すように、把持対象に対して上下の把持部がずれて把持している状態の画像は、把持できているものの、理想把持データから除外する。
【0027】
なお、理想把持データは、管理者等により事前に撮像して格納される。また、ここでは、
図5の状態を理想把持データとする例を説明したが、これに限定されるものではない。例えば、把持対象の電子部品の性質上、壊れやすい部分を把持しないようにするために、
図6の(a)や(b)の状態が理想把持データとすることもできる。
【0028】
試行サンプルDB15は、検出モデルの機械学習に利用される訓練データの一例である試行サンプルを記憶する。具体的には、試行サンプルDB15は、画像データと教師ラベルと把持スコアとが対応付けられた試行サンプルを記憶する。ここで記憶される試行サンプルは、検出モデルの教師有学習に利用される。
【0029】
図7は、試行サンプルの画像データを説明する図である。
図7に示すように、試行サンプルの画像データは、ピッキングロボットのワーク範囲を撮像した、複数の把持対象の位置を示すバウンティングボックスが含まれるワーク範囲撮像画像である。この試行サンプルの画像データを検出モデルに入力する場合、各バウンティングボックスを含むように、ランダムな位置で検出モデルの入力サイズで切出して入力される。このとき、バウンティングボックスも切り出した座標に変換される。なお、1つのワーク範囲撮像画像から生成される各画像データについて、正解ラベルはピッキングロボットの試行によって得られるため、画像データ中に一つのみ与えられる。
【0030】
ここで、バウンティングボックスは、ワーク範囲撮像画像中の物体把持位置を示しており、「x,y,h,w,θ,S,Cn」の情報を有する。x、yは検出位置を示し、h、wは大きさを示し、θは回転角を示し、Sは把持スコアを示し、Cnはクラスnに属する確率を示す。Sの把持スコアは、後述する試行サンプル生成部23により設定される。なお、試行サンプルの画像データは、スライド、カラー変換、スケール変換などの一般的なデータ拡張が実行された上で、検出モデルに入力される。
【0031】
学習結果DB16は、各モデルの機械学習の結果を記憶する。例えば、学習結果DB16は、評価モデルの機械学習結果や検出モデルの機械学習結果などを記憶する。ここで、各機械学習結果には、ニューラルネットワークなどの最適化された各パラメータなどが含まれる。
【0032】
検出結果DB17は、学習済みである検出モデルを用いた検出結果を記憶する。例えば、検出結果DB17は、検出対象である画像と、検出モデルの出力結果であるピッキングロボットの把持対象とを対応付けて記憶する。
【0033】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部20は、評価モデル学習部21、検出モデル学習部22、検出実行部25を有する。なお、評価モデル学習部21、検出モデル学習部22、検出実行部25は、プロセッサなどの電子回路として実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
【0034】
評価モデル学習部21は、評価用訓練データDB13に記憶される訓練データの生成、および、評価用訓練データDB13に記憶される訓練データを用いた評価モデルの機械学習を実行する処理部である。
【0035】
(訓練データの生成)
まず、訓練データの生成を説明する。例えば、評価モデル学習部21は、画像データを検出モデルに入力して、把持位置の予測を取得する。そして、評価モデル学習部21は、予測された把持位置に対して実機を用いたピッキング動作を実行し、実際のピッキング動作の画像データを取得する。評価モデル学習部21は、このようにして収集した実際のピッキング動作の画像データを、評価用訓練データDB13に格納して、評価モデル用の訓練データを生成する。なお、訓練データは、管理者などが予め作成して評価用訓練データDB13に記憶させておくこともできる。
【0036】
(評価モデルの機械学習)
次に、評価モデルの機械学習について説明する。例えば、評価モデル学習部21は、評価用訓練データDB13に記憶される訓練データを用いて、対である2つの画像データを説明変数、画像データ間の差分である画像差分に基づく教師ラベルを目的変数として、距離学習(Metric Learning)を実行することにより評価モデルを生成する。そして、評価モデル学習部21は、機械学習が完了すると、学習結果または学習済みの評価モデルを、学習結果DB16に格納する。なお、機械学習を終了するタイミングは、所定数の訓練データを用いた機械学習が実行された場合や復元誤差が閾値以下となった場合など、任意に設定することができる。
【0037】
図8は、評価モデルの機械学習を説明する図であり、
図9は、評価モデルの機械学習の詳細を説明する図である。
図8に示すように、評価モデル学習部21は、評価用訓練データDB13から2つの画像データ(x
1,x
2)を読み出し、2つの画像データ間の類似度を算出する。続いて、評価モデル学習部21は、類似度が閾値以上であれば、2つの画像データ(x
1,x
2)が一致することを示す教師ラベルy(例えば1.0)を設定し、類似度が閾値未満であれば、2つの画像データ(x
1,x
2)が一致しないことを示す教師ラベルy(例えば0.0)を設定する。その後、評価モデル学習部21は、2つの画像データに、各種データ拡張を実行して、評価モデルに入力する。
【0038】
続いて、
図9に示すように、評価モデル学習部21は、2つの画像データを説明変数、教師ラベルを目的変数とする教師有学習により、評価モデルの距離学習を実行する。実施例1では、評価モデルに、SNs(Siamese Networks)を用いる。SNsは、一組の画像データを入力として、二次元の特徴ベクトルを出力とする。また、SNsでは、二つの画像データはそれぞれ別のネットワークに入力されるが、各ネットワークは構成が同じで、重みなどのパラメータも共有している。また、SNsでは、二つの画像データから出力される二つの特徴ベクトルを比較し、ユークリッド距離などを用いて互いの距離が算出される。
【0039】
この特徴を利用して、評価モデル学習部21は、SNsに2つの画像データを入力し、それぞれの画像データに対応する特徴ベクトルを取得し、特徴ベクトル間の距離を算出する。そして、評価モデル学習部21は、距離に基づいた誤差(contrastive loss)に基づき、同じサンプルの距離が近く、異なるサンプルの距離が遠くなるように、式(1)に示すContrastive Loss関数を用いて、SNsの各パラメータを最適化する。
【0040】
【0041】
上記例で説明すると、評価モデル学習部21は、2つの画像データ間に、類似する画像データであることを示す教師ラベルy(例えば1.0)が設定されている場合、2つの画像データは同じサンプルと判定して、式(2)に示す「L+=similar loss」が小さくなるように学習する。一方、評価モデル学習部21は、2つの画像データ間に、類似しない画像データであることを示す教師ラベルy(例えば0.0)が設定されている場合、2つの画像データは異なるサンプルと判定して、式(2)に示す「L-=dissimilar loss」が大きくなるように学習する。
【0042】
【0043】
このようにして、評価モデル学習部21は、評価用訓練データDB13に記憶される訓練データを用いた距離学習を実行して、評価モデルを生成する。
【0044】
図3に戻り、検出モデル学習部22は、試行サンプル生成部23とモデル学習部24を有し、検出モデルの生成を実行する処理部である。試行サンプル生成部23は、学習済みの評価モデルを用いて、検出モデルの機械学習に利用する訓練データ(試行サンプル)を生成して、試行サンプルDB15に格納する。モデル学習部24は、試行サンプルを用いて、検出モデルの機械学習を実行する処理部である。
【0045】
(検出モデルの機械学習)
まず、検出モデルの機械学習の一連の流れを説明する。
図10から
図13は、検出モデルの機械学習の一連の流れを説明する図である。
図10に示すように、試行サンプル生成部23は、
図7で説明した手法と同様の手法により、少なくとも1つの把持対象が含まれるワーク範囲撮像画像を、一定サイズの画像データに切出して検出モデルに入力する。そして、試行サンプル生成部23は、各画像データの入力に応じた検出モデルの出力のうち、予測確率が上位k番目を推定結果として選択する。なお、kは、任意に設定することができる。ここでは、B1が把持対象と推定されたとする。
【0046】
続いて、
図11に示すように、試行サンプル生成部23は、把持位置と推定されたB1を把持するように、実機であるピッキングロボットを動作させて、動作結果の画像データ(以下では、「実機把持結果」と記載する場合がある)を取得する。そして、
図12に示すように、試行サンプル生成部23は、学習済みの評価モデルに実機把持結果を入力する。ここで、学習済みの評価モデルは、実機の動作を評価する。
【0047】
その後、
図13に示すように、試行サンプル生成部23は、実機把持結果の入力に応じた学習済みの評価モデルの出力を用いて、理想的な把持状態との差分を示す把持スコアを算出する。ここでは、把持スコアは、類似度が最も高いときは把持スコア「1.0」が算出され、類似度が最も低いときは把持スコア「0.1」が算出される。
【0048】
そして、モデル学習部24は、ワーク範囲撮像画像と把持スコアとを対応付けて試行サンプルを生成し、当該試行サンプルを用いて検出モデルの機械学習を実行する。このとき、ワーク範囲撮像画像内のバウンディングボックスのうち、実際に把持されたバウンディングボックスに対して正解を示す教師ラベルを設定し、その他のバウンディングボックスに対しては正解ではないことを示す教師ラベルを設定することができる。
【0049】
(把持スコアの算出)
次に、把持スコアの算出について説明する。試行サンプル生成部23は、学習結果DB16から評価モデルの学習結果を取得して学習済みの評価モデルを構築する。そして、試行サンプル生成部23は、学習済みの評価モデルを用いて、最適把持位置と動作結果の画像データとの距離を算出し、当該距離を把持スコアとする。
【0050】
図14は、把持スコアの算出を説明する図である。
図14に示すように、試行サンプル生成部23は、理想把持データDB14に記憶される理想把持データと、実機の動作により取得された動作結果の画像データ(実機把持結果)とを、学習済みの評価モデルに入力する。そして、試行サンプル生成部23は、学習済みの評価モデルの出力として、理想把持データに対応する特徴ベクトルと実機把持結果に対応する特徴ベクトルとを取得し、これらの特徴ベクトル間のユークリッド距離S
dを算出する。なお、評価モデルに適用するニューラルネットワークは、[-1.0,1.0]の範囲で特徴ベクトルを出力するように設計される。
【0051】
そして、試行サンプル生成部23は、動作結果の画像データの生成に用いられたワーク範囲撮像画像、または、ワーク範囲撮像画像における正解の教師ラベルまたは不正解の教師ラベルが設定されている各バウンディングボックスに対して、ユークリッド距離に応じた把持スコアを設定して、試行サンプルを生成する。このようにして、試行サンプル生成部23は、試行サンプルを生成して、試行サンプルDB15に格納する。
【0052】
図15は、試行サンプルの生成を説明する図である。
図15に示すように、試行サンプル生成部23は、正解(理想把持データ)から遠い動作結果には相対的に低スコアの把持スコアを付与して、検出モデルの機械学習時のフィードバックの影響を小さくする。一方、試行サンプル生成部23は、正解(理想把持データ)から近い動作結果には相対的に高スコアの把持スコアを付与して、検出モデルの機械学習時のフィードバックの影響を大きくする。
【0053】
例えば、試行サンプル生成部23は、把持スコアを「1.0」から「-1.0」の範囲で10段階に分け、各段階にユークリッド距離の範囲を対応付けることで、動作結果に把持スコアを付与することもできる。なお、理想把持データの特徴ベクトルは、複数の理想把持データの平均値を用いることができる。また、二点間の距離は[0.0,ルート2]となっているので、距離が小さくなるほど大きくなるように、定数を足した逆数をとる。このように、目的とするサンプル(理想把持)に近い試行サンプルの把持スコアを大きくすることによって、より成功に近い試行サンプルの訓練時のフィードバックを大きくすることができる。
【0054】
(検出モデルの学習)
モデル学習部24は、一定数の試行サンプルが生成された後、試行サンプルDB15に記憶される各試行サンプルを用いて、検出モデルの機械学習を実行する処理部である。
図16は、検出モデルの機械学習を説明する図である。
図16に示すように、モデル学習部24は、試行サンプルのワーク範囲撮像画像を所定サイズに切出し各データを検出モデルに入力し、予測確率が上位k番目を推定結果(予測把持位置)として選択する。
【0055】
そして、モデル学習部24は、推定結果と、ワーク範囲撮像画像内で正解の教師ラベルが設定されたバウンティングボックスを含むデータとが一致するように、検出モデルの機械学習を実行する。
【0056】
このとき、モデル学習部24は、検出モデルに入力された試行サンプルに設定される把持スコアが大きいほどフィードバックを大きくし、把持スコアが小さいほどフィードバックを小さくして、検出モデルの機械学習を実行する。
【0057】
ここで、検出モデルには、SSD(Single Shot MultiBox Detector)を用いる。学習開始前に、SSDの学習対象のパラメータであるシナプスの重みをランダムな値に初期化する。SSDとは多層のニューラルネットワーク(NN)の一種であり、以下の特徴がある。SSDは、画像データの学習に特化したNNである畳み込みNNを適用しており、画像データを入力として、入力画像データ中の複数の検出候補(バウンディングボックス及び検出対象の信頼度(クラス確率))を出力とする。信頼度とは検出対象を分類する際に、事前に設定したクラスのどこに所属するかを表す値である。分類したいクラス数がN個の場合、背景クラスを含めてSSDの分類クラス数はN+1個となる。学習後の検出時には、各検出対象では最も信頼度が高い値を示したクラスに判断される。SSDは事前に設定したデフォルトバウンディングボックスを正解のバウンディングボックスと合うように学習することで、入力画像データのアスペクト比などに依らない高精度の検出が可能である。
【0058】
モデル学習部24は、このようなSSDの各パラメータを、把持スコアに応じた機械学習により更新することで、検出モデルを生成する。
図17は、検出モデルのパラメータ更新を説明する図である。
図17に示すように、モデル学習部24は、SSDの機械学習時に、把持スコアに基づいて誤差修正を行う。把持スコア(S
b)は最適把持位置に近い試行サンプルに近いほど大きくなるように正規化されているので、ロス関数(L)の正例誤差(Loss
pos,b)に乗算することで、把持スコアに応じた誤差修正が実現できる。
【0059】
このようにして、モデル学習部24は、ロス関数が最小化するように、検出モデルのパラメータ更新を実行する。なお、モデル学習部24は、学習が完了すると、学習結果または学習済みの検出モデルを、学習結果DB16に格納する。また、正例誤差は把持位置クラスに関する誤差であり、負例誤差(Lossneg,b)は背景クラスに関する誤差である。
【0060】
図3に戻り、検出実行部25は、学習済みの検出モデルを用いて、ピッキングロボットの把持対象を検出する処理部である。例えば、検出実行部25は、学習結果DB16から検出モデルの学習結果を取得して、学習済みの検出モデルを構築する。続いて、検出実行部25は、
図7と同様の手法により、判定対象の画像データを検出モデルに入力し、検出モデルの出力結果を取得する。そして、検出実行部25は、出力結果のうち予測確率が最も高い出力結果を予測結果として取得する。
【0061】
また、検出実行部25は、予測結果で特定される把持位置を検出して、ディスプレイ等に表示したり、検出結果DB17に格納したりする。なお、検出実行部25は、予測結果を検出結果DB17に格納することもできる。
【0062】
[評価モデルの学習処理]
図18は、評価モデルの学習処理の流れを示すフローチャートである。
図18に示すように、評価モデル学習部21は、処理開始が指示されると、学習パラメータや閾値などの初期設定を実行し(S101)、評価用訓練データDB13に記憶される評価用の訓練データ(画像対)を読込み(S102)、画像間の類似度と初期設定して閾値との比較により教師ラベルを生成する(S103)。
【0063】
続いて、評価モデル学習部21は、評価用の訓練データ(画像対)を評価モデルに入力し(S104)、入力に応じて出力される各画像に対応するベクトル間の距離を算出する(S105)。そして、評価モデル学習部21は、ベクトル間の距離と教師ラベルとに基づき、距離学習を実行して、評価モデルに適用したSNsの学習パラメータを更新する(S106)。
【0064】
その後、評価モデル学習部21は、機械学習を継続する場合(S107:No)、次の訓練データに対してS102以降を繰り返す。一方、評価モデル学習部21は、機械学習を終了する場合(S107:Yes)、学習された評価モデルを記憶部12等に出力する(S108)。
【0065】
[検出モデルの学習処理]
図19は、試行サンプルの生成処理および検出モデルの学習処理の流れを示すフローチャートである。
図19に示すように、検出モデル学習部22は、処理開始が指示されると(S201:Yes)、ワーク範囲撮像画像を読み込んで、検出モデルに入力する(S202)。
【0066】
続いて、検出モデル学習部22は、検出モデルの出力に基づき、予測把持位置を取得し(S203)、予測把持位置に対して実機で把持を実行して、実際の把持結果の画像データである実機把持結果を取得する(S204)。
【0067】
そして、検出モデル学習部22は、理想把持データDB14から取得した理想把持データと、実機による実機把持結果とを、学習済みの評価モデルに入力する(S205)。検出モデル学習部22は、学習済みの評価モデルの出力結果であるベクトル間の距離を用いて、類似度が高くなるほど大きくなる把持スコアを算出する(S206)。
【0068】
その後、検出モデル学習部22は、S202で読み込んだワーク範囲撮像画像とS206で算出した把持スコアとを対応付けた試行サンプルを生成して、試行サンプルDB15に格納する(S207)。ここで、検出モデル学習部22は、試行サンプルが規定数に到達するまで(S208:No)、次の画像に対してS202以降を繰り返す。
【0069】
一方、検出モデル学習部22は、試行サンプルが規定数に到達すると(S208:Yes)、検出モデルの機械学習を実行する。
【0070】
具体的には、検出モデル学習部22は、試行サンプルDB15から試行サンプルを1つ読み込んで、検出モデルに入力する(S209)。そして、検出モデル学習部22は、予測把持位置を取得し(S210)、予測把持位置と正解の教師ラベルが設定されたバウンティングボックスを含むデータとが一致するように、把持スコアに応じたフィードバックによって、検出モデルの機械学習を実行する(S211)。
【0071】
そして、検出モデル学習部22は、学習を継続する場合(S212:No)、次の画像に対してS209以降を実行する。一方、検出モデル学習部22は、学習を終了する場合(S212:Yes)、学習された検出モデルを記憶部12等に出力する(S213)。
【0072】
[効果]
上述したように、情報処理装置10は、評価モデルにより抽出される各試行サンプルの特徴ベクトル同士の距離を、逐次学習中の試行成否のスコアとして用いて機械学習に反映することができる。したがって、情報処理装置10は、目標とする試行結果に試行サンプルが近づくほど値が大きくなるように、成功度合いを丸め込んだ機械学習を実行することができる。
【0073】
また、情報処理装置10は、試行毎に取得されるサンプル個々にラベル付けの手間を省くために、各試行サンプル間の類似度を教師データとする距離学習を適用することができる。したがって、情報処理装置10は、訓練時には、試行サンプル同士の組合せが入力データとなるので、通常の教師有学習より訓練データセットが多くすることができる。また、情報処理装置10は、試行サンプル同士の距離を、同じラベルのサンプルならば近づけ、違うラベルのサンプルならば離すようにモデルを訓練することができる。
【0074】
このように、情報処理装置10は、目的とするサンプルに近い試行サンプルの把持スコアを大きくすることによって、より成功に近い試行サンプルの機械学習時のフィードバックを大きし、優先的に学習を行うことができる。したがって、情報処理装置10は、予測精度を向上できる。
【0075】
また、情報処理装置10は、把持スコアが付与された訓練データにより機械学習を行うので、局所解に陥ることが少なくなる。また、従来では逐次学習初期に取得したデータの影響が大きいが、本実施例1の手法明では後から加えられたデータでもフィードバックが大きくなるので、データ取得順序の影響を小さくできる。したがって、情報処理装置10は、試行サンプルがデータセットに加えられた順序による学習の不安定性の解消し、機械学習(訓練)の安定性の向上が図れる。
【0076】
また、情報処理装置10は、生画像のデータから学習器により抽出される特徴量を比較することで、細かい閾値などの設計を省略できる。また、情報処理装置10は、データの組合せを訓練データとすることができるので、元のデータ数が同じでもより多くのバリエーションを作ることが可能であり、大規模なデータセット準備を省略できる。
【実施例2】
【0077】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0078】
[数値等]
上記実施例で用いた対象とするデータの種類、距離の算出方法、各モデルに適用する学習手法、ニューラルネットワークなどのモデル構成等は、あくまで一例であり、任意に変更することができる。また、ピッキングロボットの把持位置の予測に限らず、不正者の認識など様々な分野の画像データの判定に利用することもでき、音声データなどを適用することができる。また、機械学習を実行する装置と、機械学習後のモデルを用いて検出する装置とを別々の装置で実現することもできる。
【0079】
[試行サンプル]
また、試行サンプルには、把持が成功したときのワーク範囲撮像画像だけを用いることで、把持位置の予測精度の向上を図ることができる。また、試行サンプルには、把持が成功したときと失敗したときの各ワーク範囲撮像画像だけを用いることで、訓練回数を増やすことができ、局所解に陥ることを抑制することができる。
【0080】
[事前学習]
上記評価モデルは、事前学習を実行することで、特徴量(特徴ベクトル)の抽出精度を向上させておくことで、学習精度の向上を図ることができる。また、事前学習により、2つの画像データ(画像対)の類似度を算出するので、
図8で示した評価モデルの学習時において教師レベルを設定する際の閾値を設定することができる。例えば、各画像について評価モデルにより算出された各距離の平均値を閾値に設定することもでき、管理者が類似すると判定した画像間の距離の平均値などを閾値に設定することもできる。
【0081】
図20は、事前学習を含む一連の処理の流れを示すフローチャートである。
図20に示すように、情報処理装置10は、事前学習用の訓練データを用いて評価モデルの事前学習を実行する(S301)。続いて、情報処理装置10は、事前学習を継続する場合(S302:No)、次の訓練データを用いてS301を繰り返す。
【0082】
一方、情報処理装置10は、事前学習が完了すると(S302:Yes)、学習結果と閾値とを記憶部12に記憶する(S303)。その後、情報処理装置10は、実施例1と同様、評価用の訓練データを生成し(S304)、
図18に示した評価モデルの学習処理を実行し(S305)、
図19に示した検出モデルの学習処理を実行し(S306)、学習済みの検出モデルを用いた検出処理を実行する(S307)。
【0083】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。なお、評価モデルは、第1のモデルの一例であり、検出モデルは、第2のモデルの一例である。把持が成功している画像データは、第1の条件を満たす画像データの一例であり、理想的な把持状態の画像データ(理想把持データ)は、第2の条件を満たす画像データの一例である。評価用訓練データDB13は、データセットの一例である。また、画像データは、2次元データに限らず、3次元データを用いることもできる。
【0084】
また、予測される把持位置は、予測される把持対象の一例である。また、理想把持データは、目的とする試行結果の一例である。なお、試行サンプル生成部22は、第1算出部と第2算出部の一例であり、モデル学習部23は、実行部の一例である。
【0085】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0086】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0087】
[ハードウェア]
次に、情報処理装置10のハードウェア構成例を説明する。
図21は、ハードウェア構成例を説明する図である。
図21に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図21に示した各部は、バス等で相互に接続される。
【0088】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0089】
プロセッサ10dは、
図3に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図3等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、評価モデル学習部21、検出モデル学習部22、検出実行部25等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、評価モデル学習部21、検出モデル学習部22、検出実行部25等と同様の処理を実行するプロセスを実行する。
【0090】
このように、情報処理装置10は、プログラムを読み出して実行することで情報処理方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0091】
10 情報処理装置
11 通信部
12 記憶部
13 評価用訓練データDB
14 理想把持データDB
15 試行サンプルDB
16 学習結果DB
17 検出結果DB
20 制御部
21 評価モデル学習部
22 検出モデル学習部
23 試行サンプル生成部
24 モデル学習部
25 検出実行部