(57)【要約】【課題】ピッキング作業の効率化を図ること。【解決手段】機械学習装置は、物品群が収容されている箱の開口から物品群および箱が認識された認識画像について、物品群の各物品をロボットアームが把持する物品の把持点の位置を示す把持点位置と、ロボットアームの把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、箱の開口からの物品群および箱に関する第１画像を取得し、取得された第１画像の画像特徴量に基づいて、パラメータを用いて、把持点位置の予測位置および軌道計画容易性の予測値を算出し、記憶デバイスに記憶された学習データである把持点位置および軌道計画容易性と、算出処理によって算出された算出結果と、に基づいて、パラメータを更新する。【選択図】図１
2018202550.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記プロセッサは、
前記箱の開口からの前記物品群および前記箱に関する第１画像を取得する取得処理と、
前記取得処理によって取得された第１画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行することを特徴とする機械学習装置。
【請求項２】
請求項１に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が撮影された第２画像の画像特徴量を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第２画像に基づいて、前記軌道計画容易性の推定値を算出し、
前記プロセッサは、
前記第２画像の画像特徴量に基づく、前記把持点位置の推定位置を検出する検出処理を実行する、
ことを特徴とする機械学習装置。
【請求項３】
請求項１に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が認識された第２画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第２画像の画像特徴量に基づいて、前記軌道計画容易性の推定値を算出し、
ことを特徴とする機械学習装置。
【請求項４】
請求項２または３に記載の機械学習装置であって、
前記プロセッサは、
前記算出処理によって算出された前記軌道計画容易性の推定値に基づいて、前記把持点位置の推定位置を選択する選択処理を実行することを特徴とする機械学習装置。
【請求項５】
請求項４に記載の機械学習装置であって、
前記プロセッサは、
前記選択処理によって選択された把持点位置の推定位置における前記ロボットアームの姿勢に関する情報を生成し、前記ロボットアームが前記選択された把持点位置の推定位置で前記姿勢となるように、前記選択された把持点位置の推定位置への軌道を示す軌道計画を立案する立案処理と、
前記立案処理によって立案された軌道計画を、前記ロボットアームを制御する制御装置に送信する送信処理と、
を実行することを特徴とする機械学習装置。
【請求項６】
請求項５に記載の機械学習装置であって、
前記プロセッサは、
前記送信処理によって前記軌道計画が送信された結果、前記選択された把持点位置の推定位置に配置されている物品が前記ロボットアームにより把持された場合、前記軌道計画容易性の推定値と前記把持点位置の推定位置とを関連付けて、前記学習データとして前記記憶デバイスに登録する登録処理を実行することを特徴とする機械学習装置。
【請求項７】
請求項１に記載の機械学習装置であって、
前記プロセッサは、
前記認識画像について、前記把持点位置を生成するとともに、前記生成された把持点位置での前記物品の把持を試行して前記軌道計画容易性を算出することにより、前記把持点位置と前記軌道計画容易性とを関連付けた学習データを前記記憶デバイスに格納する生成処理を実行することを特徴とする機械学習装置。
【請求項８】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置による機械学習方法であって、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記機械学習方法は、
前記プロセッサが、
前記箱の開口からの前記物品群および前記箱に関する第１画像を取得する取得処理と、
前記取得処理によって取得された第１画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行することを特徴とする機械学習方法。
【請求項９】
機械学習をプロセッサに実行させる機械学習プログラムであって、
前記プロセッサは、記憶デバイスにアクセス可能であり、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記プロセッサに、
前記箱の開口からの前記物品群および前記箱に関する第１画像を取得する取得処理と、
前記取得処理によって取得された第１画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行させることを特徴とする機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習をおこなう機械学習装置、機械学習方法、および機械学習プログラムに関する。
【背景技術】
【０００２】
従来、倉庫内でのピッキング作業は、ロボットアームにより自動化された作業もあり、自動化が進んでいる。複数の物品がバラ積みされた箱からロボットアームが高速に物品をピッキングするためには、（１）物品の認識時間の短縮、（２）軌道計画が終了する把持点位置の選択、（３）ロボットアームの動作の高速化が必要である。
【０００３】
ここで、把持点位置とは、物品の把持点に対応する箱の認識画像上の位置であり、把持点とは、物品がロボットアームに把持される点、たとえば、物品の面の中心点である。軌道計画とは、コンピュータが、ロボットアームの初期位置姿勢から物品の把持点位置に対応する把持点でのロボットアームの姿勢までの軌道を計画する処理、または計画された軌道を特定する情報である。「軌道計画が終了する」とは、その把持点位置でのロボットアームの姿勢までの軌道が検出されたことを意味する。従来、（２）軌道計画が終了する把持点位置の選択では、ロボットアームによる物品の掴みやすさ（把持容易性）を基準に、把持点位置が選択されている。
【０００４】
また、下記特許文献１は、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置を開示する。当該機械学習装置は、前記ワーク毎の三次元マップを取得する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−３０１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、（２）軌道計画が終了する把持点位置の選択において、把持容易性を基準に把持点位置が選択される。したがって、軌道計画を実行しても、ロボットアームの動作範囲の制約やロボットアームの他の物品や箱への干渉などによりピッキング対象の物品に到達できない場合があり、所定時間内に軌道計画の実行が終了しないという問題がある。また、ピッキング対象の物品への到達可能性を無視して軌道計画を策定した場合、実際にピッキング対象の物品をピッキングできないという問題がある。
【０００７】
本発明は、把持点に到達可能な把持点位置の選択の容易化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の一側面となる機械学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、前記プロセッサは、第１パラメータを用いて、前記箱の開口からの前記物品群および前記箱に関する第１画像を取得する取得処理と、前記取得処理によって取得された第１画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、を実行することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、把持点に到達可能な把持点位置の選択の容易化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ピッキングシステムのシステム構成例を示す説明図である。
【図２】図２は、機械学習装置のハードウェア構成例を示すブロック図である。
【図３】図３は、機械学習装置の機能的構成例を示すブロック図である。
【図４】図４は、生成部による学習データの生成例を示す説明図である。
【図５】図５は、畳み込みニューラルネットワークを用いた学習例を示す説明図である。
【図６】図６は、畳み込みニューラルネットワークのネットワーク構造例を示す説明図である。
【図７】図７は、畳み込みニューラルネットワークを用いた推定例を示す説明図である。
【図８】図８は、機械学習装置による学習／推定処理手順例を示すフローチャートである。
【図９】図９は、図８に示した学習データ生成処理（ステップＳ８０１）の処理手順例を示すフローチャートである。
【図１０】図１０は、図８に示した学習モデル生成処理（ステップＳ８０２）の詳細な処理手順例を示すフローチャートである。
【図１１】図１１は、図８に示した推定処理（ステップＳ８０５）の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
＜ピッキングシステムのシステム構成例＞
図１は、ピッキングシステムのシステム構成例を示す説明図である。ピッキングシステム１００は、ロボットアーム１０１と、制御装置１０２と、機械学習装置１０３と、を含む。ロボットアーム１０１は制御装置１０２に接続され、ロボットアーム１０１を制御する。制御装置１０２と機械学習装置１０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１０４により通信可能に接続される。
【００１２】
棚１１０には、物品１２２群を収容する箱１２１が保管されている。物品１２２において黒丸で示した点が把持点１２３である。把持点１２３は、物品１２２に表示されている点ではなく、仮想上の点である。本例では、把持点１２３は、物品１２２の各面の中心点とする。
【００１３】
ロボットアーム１０１は、多軸多関節型で構成されたアーム１１２およびハンド１１１を有する。ロボットアーム１０１の各関節部の駆動軸は、制御装置１０２によって制御される。ロボットアーム１０１は、箱１２１から物品１２２を１つずつ取り出して指定された場所（たとえば、搬送コンベアや作業台）に載置する。
【００１４】
たとえば、ロボットアーム１０１は、アーム１１２の先端とハンド１１１との間に６軸の力覚センサ（不図示）を有する。力覚センサは、ハンド１１１にかかる過負荷を検出する。ロボットアーム１０１が、バラ積みされた物品１２２を箱１２１から取り出す場合に、ハンド１１１またはハンド１１１に把持された物品１２２が、箱１２１の壁面や他の物品１２２と干渉（衝突または接触）による過負荷を検出すると、制御装置１０２は、検出された過負荷を逃がすようにロボットアーム１０１の駆動軸を制御する。
【００１５】
また、力覚センサは、ハンド１１１に作用する力を検出する。これにより、ハンド１１１が物品１２２を把持した場合、ハンド１１１に物品１２２の重さが作用するため、物品１２２のピッキング動作を実行した後、力覚センサの検出値が所定の閾値を超えていれば、制御装置１０２は、ハンド１１１が物品１２２を把持していると判断する。なお、ハンド１１１による物品１２２把持については、力覚センサのほか、触覚センサを用いてもよい。
【００１６】
また、カメラの撮影画像により判断することもできる。また、ハンド１１１が吸着式ハンドである場合、その圧力計の計測結果から判断してもよい。なお、ハンド１１１は、物品１２２を保持可能であれば様々な形態を採用することができる。たとえば、ハンド１１１は、複数の指を開閉することによって物品１２２を把持してもよく、物品１２２を吸引することにより把持する構成でもよい。
【００１７】
機械学習装置１０３は、カメラによりピッキング対象の物品１２２を収容する箱１２１を認識する（ステップＳ１）。カメラは、たとえば、ハンド１１１に取り付けられており、制御装置１０２を介して箱１２１の認識画像が機械学習装置１０３に送信される。当該カメラは３次元カメラでもよい。つぎに、機械学習装置１０３は、箱１２１の認識画像上の把持点位置を選択する（ステップＳ２）。具体的には、たとえば、機械学習装置１０３は、把持点位置における物品１２２の掴みやすさではなく、把持点位置への到達可能性、すなわち、限られた軌道計画時間内での軌道計画の容易さを定量化した値（軌道計画容易性）を参照して、把持点位置を選択する。
【００１８】
これにより、軌道計画を実行しても、ロボットアーム１０１の動作範囲の制約やロボットアーム１０１の他の物品１２２や箱１２１への干渉などによりピッキング対象の物品１２２に到達できないという事象を抑制することができ、ピッキング作業の効率化を図ることができる。
【００１９】
機械学習装置１０３は、所定時間内で選択された把持点位置までの軌道計画を実行する（ステップＳ３）。所定時間内で軌道が検出された場合、すなわち、軌道計画が終了した場合（ステップＳ４：Ｙｅｓ）、制御装置１０２に軌道計画を出力する。これにより、制御装置１０２は、軌道計画にしたがってロボットアーム１０１で物品１２２をピッキングするよう制御する。一方、所定時間内で軌道が検出されなかった場合、すなわち、軌道計画が終了しなかった場合（ステップＳ４：Ｎｏ）、ステップＳ２に戻り、制御装置１０２は、把持点位置を再選択することになる。
【００２０】
＜機械学習装置１０３のハードウェア構成例＞
図２は、機械学習装置１０３のハードウェア構成例を示すブロック図である。機械学習装置１０３は、プロセッサ２０１と、記憶デバイス２０２と、入力デバイス２０３と、出力デバイス２０４と、通信インターフェース（通信ＩＦ２０５）と、を有する。プロセッサ２０１、記憶デバイス２０２、入力デバイス２０３、出力デバイス２０４、および通信ＩＦ２０５は、バス２０６により接続される。プロセッサ２０１は、機械学習装置１０３を制御する。記憶デバイス２０２は、プロセッサ２０１の作業エリアとなる。また、記憶デバイス２０２は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス２０２としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリがある。入力デバイス２０３は、データを入力する。入力デバイス２０３としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス２０４は、データを出力する。出力デバイス２０４としては、たとえば、ディスプレイ、プリンタがある。通信ＩＦ２０５は、ネットワーク１０４と接続し、データを送受信する。
【００２１】
＜機械学習装置１０３の機能的構成例＞
図３は、機械学習装置１０３の機能的構成例を示すブロック図である。機械学習装置１０３は、ラベル付き学習ＤＢ３０１と、学習モデル３０２と、生成部３０３と、算出部３０６と、更新部３０７と、取得部３０８と、検出部３０９と、選択部３１０と、立案部３１１と、通信部３１２と、登録部３１３と、を有する。ラベル付き学習ＤＢ３０１および学習モデル３０２は、具体的には、たとえば、図２に示した記憶デバイス２０２に記憶される情報である。抽出部３０４、特定部３０５、算出部３０６、更新部３０７、取得部３０８、検出部３０９、選択部３１０、立案部３１１、および、登録部３１３は、具体的には、たとえば、図２に示した記憶デバイス２０２に記憶されたプログラムをプロセッサに実行させることにより実現される機能である。通信部３１２は、図２に示した通信ＩＦにより実現される機能である。
【００２２】
ラベル付き学習ＤＢ３０１は、ラベル付き学習データ群を格納するデータベースである。ラベル付き学習データとは、把持点位置に軌道計画容易性がラベルとして関連付けされたデータである。
【００２３】
学習モデル３０２は、認識画像から把持点位置についての軌道計画容易性を導くための、畳み込みニューラルネットワークを構成するパラメータ群である。認識画像とは、物品群および当該物品群が収容された箱１２１が認識されている画像である。認識画像は、箱１２１の底面を基準とした高さ方向の情報を含んでもよい。学習モデル３０２は、畳み込みニューラルネットワークＣＮＮの各パーセプトロンに与えられる重み（バイアス含む）である。畳み込みニューラルネットワークＣＮＮは、抽出部３０４、特定部３０５、算出部３０６、および更新部３０７により構成される。
【００２４】
生成部３０３は、ラベル付き学習データを生成する生成処理を実行する。ここで生成部３０３による学習データの生成例について具体的に説明する。
【００２５】
図４は、生成部３０３による学習データの生成例を示す説明図である。まず、ラベル付き学習データのうち把持点位置の生成について説明する。（Ａ）生成部３０３は、カメラ４００により物品群が収容された箱１２１を箱１２１の開口１２１ａから撮影し、認識画像４０１を生成する。認識画像４０１は、カメラ４００で撮影した箱１２１の開口１２１ａからの撮影画像を既存の画像認識処理により認識した画像認識結果である。画像認識処理では、生成部３０３は、物品１２２の形状やテクスチャ、寸法を含む物体モデル４０２を用いて撮影画像を画像認識する。
【００２６】
（Ｂ）つぎに、生成部３０３は、認識画像４０１から把持点位置４０３を生成する。生成部３０３は、認識画像４０１から物品１２２の面を特定し、たとえば、その中心位置を把持点位置４０３に決定する。把持点位置４０３は、認識画像４０１が２次元画像であれば、その座標値は（ｘ，ｙ）であり、認識画像４０１が３次元画像であれば、その座標値は、（ｘ，ｙ，ｚ）である。
【００２７】
（Ｃ）生成部３０３は、生成した把持点位置４０３を立案部３１１に出力する。立案部３１１は、ロボットアーム１０１の姿勢に関する情報として、たとえば、把持点位置４０３の逆法線ベクトルを生成し、把持点位置４０３に対し逆法線ベクトルの方向に向かって物品１２２を把持するようなロボットアーム１０１の軌道計画（各駆動軸の時系列な３次元位置および回転角）を、たとえば、ＲＲＴ（Ｒａｐｉｄｌｙ  ｅｘｐｌｏｒｉｎｇ  ｒａｎｄｏｍ  ｔｒｅｅ）により、立案する。
【００２８】
立案部３１１は、立案した軌道計画を通信部３１２を介してロボットアーム１０１の制御装置１０２に送信する。制御装置１０２は、所定時間（たとえば、５０ｍｓｅｃ）内において軌道計画にしたがって把持点位置４０３に対応する把持点１２３で物品１２２の把持を試行する。制御装置１０２は、試行結果（把持成功または失敗）を、通信部３１２を介して生成部３０３に返す。生成部３０３は、試行結果を用いて軌道計画容易性４０４を算出する。たとえば、軌道計画容易性４０４は、下記式（１）により算出される。
【００２９】
軌道計画容易性＝把持の成功回数／試行回数・・・（１）
【００３０】
すなわち、生成部３０３は、１つの把持点位置４０３について、軌道計画の立案および当該軌道計画による把持の試行を複数回（たとえば、５回）繰り返すことで、上記式（１）の軌道計画容易性４０４を算出する。なお、軌道計画容易性４０４は、軌道計画時間の速さで重み付けされてもよく、また、軌道計画時間を経過した試行については、失敗とみなしてもよい。
【００３１】
（Ｄ）生成部３０３は、把持点位置４０３とその軌道計画容易性４０４とを関連付けることによりラベル付き学習データを生成し、ラベル付き学習ＤＢ３０１に格納する。
【００３２】
また、生成部３０３は、シミュレータを用いてラベル付き学習データを生成してもよい。たとえば、生成部３０３は、シミュレータにより、物品群が収容された箱１２１のモデルデータを生成する。生成部３０３は、物品１２２のモデルデータの各面の中心を把持点位置４０３に決定し、その逆法線ベクトルを生成する。シミュレータを用いる場合は、立案部３１１による軌道計画の立案、軌道計画の試行（ロボットアーム１０１のモデルデータを用いる）、軌道計画容易性４０４の算出は、シミュレータ上で実行されることになる。
【００３３】
図３に戻り、算出部３０６は、具体的には、たとえば、算出部３０６は、大量の入力画像と正解ラベル（把持点位置４０３の座標、その把持点位置４０３の軌道計画容易性４０４、その座標が把持点位置４０３である可能性（把持点位置可能性）、その座標が把持点位置４０３でない可能性（非把持点位置可能性））を、機械学習の手法のうち、たとえば、畳み込みニューラルネットワークに与える。
【００３４】
具体的には、たとえば、算出部３０６は、入力画像と、その座標を把持点位置４０３としたときの軌道計画のしやすさを定量化した値である軌道計画容易性の予測値ｒ１、その格子範囲内で把持点位置４０３の座標（ｘ，ｙ）の予測位置ｒ２、その座標が把持点位置４０３である可能性を示す予測値ｒ３、その座標が把持点位置４０３でない可能性を示す予測値ｒ４、を回帰問題として捉え、入力画像とこれら４つの出力ｒ１〜ｒ４を導出する関数を表現する畳み込みニューラルネットワークＣＮＮの各層のパラメータを用いて、これら４つの出力ｒ１〜ｒ４を、ある格子（複数の把持点位置の予測位置が同一領域内に入らない程度の大きさ、後述する第１領域）単位で算出する。
【００３５】
より具体的には、たとえば、算出部３０６は、上述したパラメータを用いて、抽出処理と、特定処理と、算出処理と、を実行する。パラメータとは、画像特徴量の抽出、物品１２２および箱１２１の配置状態の特定、および把持点位置４０３の予測位置および軌道計画容易性４０４の予測値の算出を実行するために、畳み込みニューラルネットワークＣＮＮの中間層の各パーセプトロンに与えられる重みパラメータである。
【００３６】
抽出処理は、第１画像の画像特徴量を抽出する抽出処理を実行する。具体的には、たとえば、抽出処理は、第１画像を構成する第１領域群の各第１領域の画像特徴量を抽出する処理である。第１画像とは、箱１２１の開口１２１ａからの物品群および箱１２１を撮影した画像であり、学習モデル３０２を学習する際の訓練画像である。第１画像は、上述した認識画像４０１を用いてもよい。
【００３７】
第１領域群とは、第１画像を格子状に分割した領域群である。第１領域のサイズは、たとえば、複数の把持点位置４０３の予測位置が同一領域内に入らない程度の大きさとする。後述する第２領域も同様である。抽出される画像特徴量は、たとえば、第１画像の第１領域ごとに、第１領域内の画素値を畳み込み演算した値である。
【００３８】
特定処理は、抽出処理によって抽出された第１画像の画像特徴量に基づいて、第１画像における物品１２２および箱１２１の配置状態を、第１領域ごとに特定する処理である。具体的には、たとえば、特定処理は、第１画像の画像特徴量に基づいて、第１領域における物品１２２および箱１２１の配置状態を、第１領域ごとに特定する。物品１２２の配置状態は、第１領域を占める物品１２２の位置、面積、および形状を含む。また、第１画像が３次元カメラで撮影された場合には、箱１２１の底面を基準とした物品１２２の高さ情報が第１画像に含まれてもよい。箱１２１の配置状態は、第１領域に占める箱１２１の位置、面積、および形状を含む。
【００３９】
算出処理は、特定処理によって特定された第１画像における配置状態に基づいて、把持点位置４０３の予測位置および軌道計画容易性４０４の予測値を算出する処理である。具体的には、たとえば、算出処理は、特定処理によって特定された各第１領域における配置状態に基づいて、把持点位置４０３の予測位置および軌道計画容易性４０４の予測値を、第１領域ごとに算出する。
【００４０】
把持点位置４０３の予測位置ｒ２とは、把持点位置４０３として予測された第１画像でのｘ座標値およびｙ座標値である。たとえば、第１領域の物品１２２の配置状態において物品１２２が存在すれば、予測位置は、その第１領域において物品１２２が存在する点となる。たとえば、予測位置の座標（ｘ，ｙ）は、その所属する第１領域（格子）の左上の頂点を原点、右下を（１，１）とした座標系において、それぞれ、０≦ｘ≦１、０≦ｙ≦１の実数値を取る。予測位置は、その第１領域につき１個出現する。また、算出部３０６を用いて予測位置を推定した場合は、軌道計画容易性の推定値に基づく選択部３１０での選択の前に、把持点位置可能性と非把持点位置可能性により、選択対象となる予測位置が絞られる。
【００４１】
軌道計画容易性４０４の予測値ｒ１については、たとえば、第１領域に物品１２２の面が存在すれば、当該予測値も高くなる。第１領域の物品１２２の面積が大きければ、当該予測値も高くなる。また、第１領域の物品１２２の高さが高ければ、当該予測値も高くなる。また、第１領域に箱１２１が存在すれば、当該予測値は低くなる。第１領域の物品１２２の高さよりも高い物品１２２がその周囲の第１領域に存在すれば、当該予測値は低くなる。
【００４２】
算出部３０６は、この他、第１領域における配置状態に基づいて、第１領域が把持点位置４０３らしさを示す把持点位置可能性や把持点位置４０３らしくなさを示す非把持点位置可能性の予測値ｒ３、ｒ４を算出してもよい。たとえば、第１領域において物品１２２が占める面積が大きければ、把持点位置可能性の予測値ｒ３も高くなる。第１領域において箱１２１が占める面積が大きければ、非把持点位置可能性の予測値ｒ４も高くなる。
【００４３】
更新部３０７は、把持点位置４０３および軌道計画容易性４０４と、算出部３０６によって算出された算出結果と、に基づいて、パラメータを更新する更新処理を実行する。更新処理をくりかえし実行することにより、パラメータが最適な値になる。最終的なパラメータが学習モデル３０２である。具体的には、たとえば、更新部３０７は、確率的勾配降下法や誤差逆伝播法によりパラメータを更新する。
【００４４】
取得部３０８は、物品群が収容されている箱１２１の開口１２１ａから物品１２２および箱１２１が認識された第２画像を取得する取得処理を実行する。第２画像は、第１画像と同様、カメラ４００で撮影した箱１２１の開口１２１ａからの撮影画像であり、学習モデル３０２を用いて、軌道計画容易性４０４が高い把持点位置４０３を推定する際のテスト画像である。また、第２画像が３次元カメラで撮影された場合には、箱１２１の底面を基準とした物品１２２の高さ情報が第２画像に含まれてもよい。
【００４５】
取得部３０８は、取得した第２画像を算出部３０６に出力する。この場合、算出部３０６は、取得した第２画像を、学習モデル３０２のパラメータが設定された畳み込みニューラルネットワークＣＮＮに与えることにより、推定把持点位置Ｒ２、軌道計画容易性４０４の推定値Ｒ１、把持点位置可能性の推定値Ｒ３、および非把持点位置可能性の推定値Ｒ４を、第２画像を構成する第２領域群の第２領域ごとに算出する。第２領域群とは、第２画像を格子状に分割した領域群である。
【００４６】
検出部３０９は、第２画像の画像特徴量に基づいて、推定把持点位置を検出する検出処理を実行する。具体的には、たとえば、検出部３０９は、第２領域群の各第２領域の画像特徴量に基づいて、推定把持点位置を検出する。検出部３０９は、畳み込みニューラルネットワークＣＮＮを使用せずに、推定把持点位置を第２画像から検出する。より具体的には、検出部３０９は、第２画像において物品１２２の面を検出する。検出部３０９は、他の物品１２２により隠れている部分については、物品１２２モデルにより推定することで、物品１２２の面を検出する。そして、検出部３０９は、物品１２２の面の中心点を推定把持点位置として検出する。なお、物品１２２の面の中心点が他の物品１２２により隠れている場合には、推定把持点位置としない。また、検出部３０９により推定把持点位置を検出する場合は、算出部３０６による推定把持点位置の算出は不要である。また、検出部３０９は、一般的な画像処理手法（たとえば、エッジ抽出後の形状切り出し）を用いることで、推定把持位置を検出する。また、上記のいずれかの層の出力結果を用いることもできる。
【００４７】
選択部３１０は、算出部３０６によって算出された軌道計画容易性４０４の推定値に基づいて、算出部３０６または検出部３０９から得られる推定把持点位置を選択する選択処理を実行する。具体的には、たとえば、選択部３１０は、軌道計画容易性４０４の推定値が最大となる推定把持点位置から順次選択する。選択部３１０は、軌道計画容易性４０４の推定値が上位Ｘ番目（Ｘは自然数）までの推定把持点位置を選択してもよく、軌道計画容易性４０４の推定値がしきい値以上である推定把持点位置を選択してもよく、すべての推定把持点位置を選択してもよい。
【００４８】
立案部３１１は、選択部３１０によって選択された推定把持点位置におけるロボットアーム１０１の姿勢に関する情報を生成し、ロボットアーム１０１が把持点位置４０３の推定位置で当該姿勢となるように、推定把持点位置への軌道を示す軌道計画を立案する立案処理を実行する。ロボットアーム１０１の姿勢に関する情報とは、たとえば、把持点位置４０３の推定位置における逆法線ベクトルである。立案部３１１は、推定把持点位置に対し逆法線ベクトルの方向に向かって物品１２２を把持するようなロボットアーム１０１の軌道計画（各駆動軸の時系列な３次元位置および回転角）を、たとえば、ＲＲＴ（Ｒａｐｉｄｌｙ  ｅｘｐｌｏｒｉｎｇ  ｒａｎｄｏｍ  ｔｒｅｅ）により、立案する。
【００４９】
通信部３１２は、立案部３１１によって立案された軌道計画を、ロボットアーム１０１を制御する制御装置１０２に送信する。また、上述したように、通信部３１２は、制御装置１０２からのロボットアーム１０１による把持の試行結果を受信して、生成部３０３に出力する。
【００５０】
登録部３１３は、通信部３１２によって軌道計画が送信された結果、選択された把持点位置４０３に配置されている物品１２２がロボットアーム１０１により把持された場合、軌道計画容易性４０４の推定値と把持点位置４０３の推定位置とを関連付けて、学習データとしてラベル付き学習ＤＢ３０１に登録する登録処理を実行する。これにより、実際に把持に成功した軌道計画容易性４０４と把持点位置４０３が学習データとしてラベル付き学習ＤＢ３０１に登録されるため、ラベル付き学習データの精度の向上を図ることができる。
【００５１】
＜畳み込みニューラルネットワークを用いた学習例＞
図５は、畳み込みニューラルネットワークを用いた学習例を示す説明図である。図６は、畳み込みニューラルネットワークのネットワーク構造例を示す説明図である。畳み込みニューラルネットワークＣＮＮの入力層は、第１画像５００が入力される階層である。第１中間層５０１は、複数の畳み込み層ＣＶ１〜ＣＶ２１により構成される。第２中間層５０２は、畳み込み層ＣＶ２２により構成される。第３中間層５０３は、畳み込み層ＣＶ２３〜ＣＶ２５により構成され、軌道計画容易性４０４の予測値ｒ１、把持点位置４０３の予測位置（予測把持点位置）ｒ２、把持点位置可能性の予測値ｒ３および非把持点位置可能性の予測値ｒ４を算出する。第１中間層５０１〜第３中間層５０３は、算出部３０６に対応する。
【００５２】
そして、更新部３０７は、たとえば、得られた把持点位置４０３の予測位置（予測把持点位置）ｒ２と差が許容範囲内の把持点位置４０３をラベル付き学習ＤＢ３０１から特定し、特定した把持点位置４０３に対応する軌道計画容易性４０４と、軌道計画容易性４０４の予測値ｒ１と、を損失関数Ｌに与えることにより、パラメータの勾配を求め、損失関数Lの値を減らす方向にパラメータを更新し、学習モデル３０２とする。当該更新は、確率的勾配降下法でパラメータを更新してもよく、誤差逆伝播法でパラメータを更新してもよい。
【００５３】
ここで、損失関数Ｌの一例を下記式（２）に示す。
【００５４】
【数１】
2018202550.tif 000003
【００５５】
式（２）において、右辺第１項は、把持点位置４０３を最適化するための損失を示し、右辺第２項、第３項は、軌道計画容易性４０４を最適化するための損失を示し、右辺第４項は、格子（第１領域５００ａ）での把持点位置可能性の予測値ｒ３および非把持点位置可能性の予測値ｒ４を最適化するための損失である。
【００５６】
また、式（２）中、Ｂは、ミニバッチにおける第１画像５００（訓練画像）の枚数である。畳み込みニューラルネットワークＣＮＮは、ミニバッチにより訓練される。Ｓは、格子数である。Ａｉｊｌｏｃは、把持点位置４０３がｉ番目の訓練画像のｊ番目の格子（第１領域５００ａ）に存在すれば１、それ以外は０の値をとる。（ｕ，ｖ）は、把持点位置４０３の予測位置である。λｃｏｏｒｄは、把持点位置４０３を最適化するための損失の重みである。Ｒは、軌道計画容易性４０４の予測値である。λｎｏｌｏｃは、λｎｏｌｏｃは、軌道計画容易性４０４の損失関数Ｌを計算するに当たり、非把持点位置を含む格子で推定した軌道計画容易性４０４と把持点位置４０３を含む格子で推定した軌道計画容易性４０４をそれぞれの格子数による値の不均衡を調整するための重みである。Ｃは、ソフトマックス交差エントロピーであり、下記式（３）に示す。
【００５７】
【数２】
2018202550.tif 000004
【００５８】
Ｋはクラス数である。クラスは、把持点位置４０３と非把持点位置の２クラスである。ｐｉｊ０は、ｉ番目の第１画像５００（訓練画像）のｊ番目の格子（第１領域５００ａ）における把持点位置可能性の予測値ｒ３であり、ｐｉｊ１は、ｉ番目の第１画像５００（訓練画像）のｊ番目の格子（第１領域５００ａ）における非把持点位置可能性の予測値ｒ４である。ｔは、ｉ番目の第１画像５００（訓練画像）のｊ番目の格子（第１領域５００ａ）におけるクラスｋを示すラベルである。
【００５９】
＜畳み込みニューラルネットワークＣＮＮを用いた推定例＞
図７は、畳み込みニューラルネットワークＣＮＮを用いた推定例を示す説明図である。図７では、第２画像（テスト画像）７００が入力層５０を介して第１中間層５０１に与えられ、第１中間層５０１〜第３中間層５０３は、学習モデル３０２として更新されたパラメータを用いて、軌道計画容易性４０４の推定値Ｒ１、把持点位置４０３の推定位置（推定把持点位置）Ｒ２、把持点位置可能性の推定値Ｒ３、および非把持点位置可能性の推定値Ｒ４を算出する。
【００６０】
＜学習／推定処理手順例＞
図８は、機械学習装置１０３による学習／推定処理手順例を示すフローチャートである。機械学習装置１０３は、学習データ生成処理（ステップＳ８０１）を実行し、畳み込みニューラルネットワークＣＮＮを用いて学習モデル生成処理を実行する（ステップＳ８０２）。そして、機械学習装置１０３は、更新部３０７により、学習モデル３０２で第１パラメータ〜第３パラメータを更新する（ステップＳ８０３）。
【００６１】
このあと、機械学習装置１０３は、取得部３０８によって第２画像７００が取得されたか否かを判断する（ステップＳ８０４）。第２画像７００が取得された場合（ステップＳ８０４：Ｙｅｓ）、機械学習装置１０３は、抽出部３０４、特定部３０５、および算出部３０６により、上述した推定値Ｒ１および推定位置Ｒ２を算出する推定処理を実行し（ステップＳ８０５）、ステップＳ８０４に戻る。一方、ステップＳ８０４において、第２画像７００が取得されない場合（ステップＳ８０４：Ｎｏ）、機械学習装置１０３は、ピッキング作業が終了であるか否かを判断する（ステップＳ８０６）。終了でなければ（ステップＳ８０６：Ｎｏ）、ステップＳ８０４に戻って、機械学習装置１０３は第２画像７００の取得を待ち受ける。終了であれば（ステップＳ８０６：Ｙｅｓ）、機械学習装置１０３は、学習／推定処理を終了する。
【００６２】
図９は、図８に示した学習データ生成処理（ステップＳ８０１）の処理手順例を示すフローチャートである。生成部３０３は、認識画像４０１を受け付ける（ステップＳ９０１）。生成部３０３は、受け付けた認識画像４０１から把持点位置４０３を特定し（ステップＳ９０２）、把持点位置４０３の逆法線ベクトルを算出する（ステップＳ９０３）。生成部３０３は、ステップＳ９０２で特定した未選択の把持点位置４０３を１つ選択する（ステップＳ９０４）。
【００６３】
生成部３０３は、選択した把持点位置４０３について、試行回数分、ステップＳ９０６およびＳ９０７を繰り返す（ステップＳ９０５）。具体的には、たとえば、生成部３０３は、立案部３１１により、選択した把持点位置４０３への軌道計画を立案し（ステップＳ９０６）、選択した把持点位置４０３への軌道計画で把持を試行する（ステップＳ９０７）。生成部３０３は、試行回数がしきい値に到達したか否かを判断し（ステップＳ９０８）、しきい値に到達していなければ、生成部３０３は、試行回数をインクリメントして（ステップＳ９０４）、ステップＳ９０６、Ｓ９０７を再実行する。
【００６４】
一方、ステップＳ９０８において試行回数がしきい値に到達した場合、生成部３０３は、ステップＳ９０７の試行結果を用いて、上記式（１）により、軌道計画容易性４０４を算出する（ステップＳ９０９）。そして、生成部３０３は、選択した把持点位置４０３と算出した軌道計画容易性４０４とを関連付けて、学習データとして、ラベル付き学習ＤＢ３０１に保存する（ステップＳ９１０）。
【００６５】
このあと、生成部３０３は、未選択の把持点位置４０３があるか否かを判断し（ステップＳ９１１）、未選択の把持点位置４０３があれば、未選択の把持点位置４０３を選択する（ステップＳ９０４）。一方、ステップＳ９１１で未選択の把持点位置４０３がない場合、未処理の認識画像４０１があるか否かを判断する（ステップＳ９１２）。ステップＳ９１２で未処理の認識画像４０１がある場合、生成部３０３は、未処理の認識画像４０１を受け付ける（ステップＳ９０１）。ステップＳ９１２で未処理の認識画像４０１がない場合、生成部３０３は、学習データ生成処理（ステップＳ８０１）を終了する。
【００６６】
図１０は、図８に示した学習モデル生成処理（ステップＳ８０２）の詳細な処理手順例を示すフローチャートである。機械学習装置１０３は、未選択の第１画像５００（訓練画像）を１つ選択し（ステップＳ１００１）、算出部３０６により、パラメータを用いて、軌道計画容易性４０４の予測値ｒ１、把持点位置４０３の予測値ｒ２、把持点位置可能性の予測値ｒ３および非把持点位置可能性の予測値ｒ４を算出する（ステップＳ１００２）。
【００６７】
このあと、機械学習装置１０３は、更新部３０７により、パラメータを更新し（ステップＳ１００３）、未選択の第１画像５００があるか否かを判断する（ステップＳ１００４）。ステップＳ１００４において未選択の第１画像５００があれば、機械学習装置１０３は、未選択の第１画像５００を選択して、ステップＳ１００２、Ｓ１００３を実行する。一方、ステップＳ１００４において未選択の第１画像５００がなければ、機械学習装置１０３は、パラメータを学習モデル３０２として保存する（ステップＳ１００５）。
【００６８】
図１１は、図８に示した推定処理（ステップＳ８０５）の詳細な処理手順例を示すフローチャートである。機械学習装置１０３は、第２画像７００において物品１２２を認識する（ステップＳ１１０１）。機械学習装置１０３は、Ｓ１１０１の認識結果から箱１２１に物品１２２が残存しているか否かを判断する（ステップＳ１１０２）。残存していない場合（ステップＳ１１０２：Ｎｏ）、機械学習装置１０３は、推定処理（ステップＳ８０５）を終了する。
【００６９】
一方、残存している場合（ステップＳ１１０２：Ｙｅｓ）、機械学習装置１０３は、算出部３０６により、学習モデル３０２内のパラメータを用いて、軌道計画容易性４０４の推定値Ｒ１、推定把持点位置Ｒ２、把持点位置可能性の推定値Ｒ３、および非把持点位置可能性の推定値Ｒ４を算出する（ステップＳ１１０３）。
【００７０】
そして、機械学習装置１０３は、選択部３１０により、推定把持点位置Ｒ２を選択する（ステップＳ１１０４）。機械学習装置１０３は、ステップＳ１１０４で選択された推定把持点位置Ｒ２から、ピッキング対象となる推定把持点位置Ｒ２（たとえば、軌道計画容易性４０４の推定値が高いものから）を１つ選択し（ステップＳ１１０５）、立案部３１１により、推定把持点位置Ｒ２の逆法線ベクトルを算出する（ステップＳ１１０６）。そして、機械学習装置１０３は、立案部３１１により、推定把持点位置Ｒ２への軌道計画を立案する（ステップＳ１１０７）。
【００７１】
このあと、機械学習装置１０３は、通信部３１２により制御装置１０２に軌道計画を送信して、推定把持点位置Ｒ２への軌道計画でピッキング制御する（ステップＳ１１０８）。機械学習装置１０３は、制御装置１０２からの応答により、ピッキングが成功したか否かを判断する（ステップＳ１１０９）。成功した場合（ステップＳ１１０９：Ｙｅｓ）、機械学習装置１０３は、登録部３１３により、推定把持点位置Ｒ２および軌道計画容易性４０４の推定値Ｒ１をラベル付き学習ＤＢ３０１に登録し（ステップＳ１１１０）、ステップＳ１１１１に移行する。一方、ステップＳ１１０９においてピッキングに失敗した場合（ステップＳ１１０９：Ｎｏ）、ステップＳ１１１１に移行する。
【００７２】
機械学習装置１０３は、ピッキング対象となる推定把持点位置Ｒ２がすべて選択済みであるか否かを判断する（ステップＳ１１１１）。たとえば、機械学習装置１０３は、ステップＳ１１０４で選択されたすべての推定把持点位置Ｒ２が、ピッキング対象として選択済みであるか否かを判断する。また、ピッキング成功後は、箱１２１内の物品群の配置状態が変更されるため、ステップＳ１１０９でピッキングに成功した場合にピッキング対象となる推定把持点位置Ｒ２がすべて選択済みであると判断してもよい。
【００７３】
ステップＳ１１１１において、ピッキング対象となる推定把持点位置Ｒ２がすべて選択済みでない場合、機械学習装置１０３は、あらたにピッキング対象となる推定把持点位置Ｒ２を１つ選択する（ステップＳ１１０５）。一方、ピッキング対象となる推定把持点位置Ｒ２がすべて選択済みである場合、機械学習装置１０３は、現時点での箱１２１の当該箱１２１の開口１２１ａからの第２画像７００を再取得し（ステップＳ１１１２）、ステップＳ１１０１に戻る。これにより、箱１２１の中の物品１２２がなくなるまで、推定処理（ステップＳ８０５）を実行することができる。
【００７４】
このように、本実施例の機械学習装置１０３は、記憶デバイス２０２に、物品群が収容されている箱１２１の開口１２１ａから物品群および箱１２１が認識された認識画像４０１について、物品群の各物品１２２をロボットアーム１０１が把持する物品１２２の把持点１２３の位置を示す把持点位置４０３と、ロボットアーム１０１の把持点１２３までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性４０４と、を関連付けた学習データを記憶する。
【００７５】
機械学習装置１０３は、箱１２１の開口１２１ａからの物品群および箱１２１に関する第１画像５００を取得する取得処理と、取得処理によって取得された第１画像に基づいて、パラメータを用いて、把持点位置４０３の予測位置ｒ２および軌道計画容易性４０４の予測値ｒ１を算出する算出処理と、把持点位置４０３および軌道計画容易性４０４と、算出処理によって算出された算出結果と、に基づいて、パラメータを更新する更新処理と、を実行する。
【００７６】
これにより、軌道計画が容易になる把持点位置４０３を選択するための学習モデル（更新後のパラメータ）を生成することができ、当該学習モデルをロボットアーム１０１に提供することにより、ピッキング作業の効率化を支援することができる。
【００７７】
また、取得処理では、機械学習装置１０３は、物品群が収容されている箱１２１において箱１２１の開口１２１ａから物品１２２および箱１２１が撮影された第２画像７００を取得する。算出処理では、機械学習装置１０３は、更新処理による更新後のパラメータを用いて、取得処理によって取得された第２画像７００に基づいて、軌道計画容易性４０４の推定値Ｒ１を算出する。また、機械学習装置１０３は、第２画像７００に基づいて、把持点位置４０３の推定位置（推定把持点位置）Ｒ２を検出する検出処理を実行する。
【００７８】
これにより、軌道計画容易性４０４を推定することができるため、ピッキング対象の物品群を収納する箱１２１について、どの推定把持点位置Ｒ２を選択すると、ロボットアーム１０１が把持点１２３に到達しやすくなるかを定量化することができ、把持点位置選択の指標とすることができる。
【００７９】
また、取得処理では、機械学習装置１０３は、物品群が収容されている箱１２１において箱１２１の開口１２１ａから物品１２２および箱１２１が撮影された第２画像７００を取得する。算出処理では、機械学習装置１０３は、更新処理による更新後のパラメータを用いて、取得処理によって取得された第２画像７００に基づいて、軌道計画容易性４０４の推定値Ｒ１および把持点位置４０３の推定位置（推定把持点位置）Ｒ２を算出する。
【００８０】
これにより、軌道計画容易性４０４および把持点位置４０３を推定することができるため、ピッキング対象の物品群を収納する箱１２１について、どの推定把持点位置Ｒ２を選択すると、ロボットアーム１０１が把持点１２３に到達しやすくなるかを定量化することができ、把持点位置選択の指標とすることができる。
【００８１】
また、機械学習装置１０３は、算出処理によって算出された軌道計画容易性４０４の推定値Ｒ１に基づいて、把持点位置４０３の推定位置（推定把持点位置）Ｒ２を選択する選択処理を実行する。
【００８２】
これにより、軌道計画が容易な推定把持点位置Ｒ２を自動で選択することができ、把持点位置選択の効率化を図ることができる。
【００８３】
また、機械学習装置１０３は、選択処理によって選択された把持点位置の推定位置（推定把持点位置）Ｒ２におけるロボットアーム１０１の姿勢に関する情報（たとえば、逆法線ベクトル）を生成し、ロボットアーム１０１が選択された把持点位置の推定位置（推定把持点位置）Ｒ２で当該姿勢となるように、選択された把持点位置の推定位置（推定把持点位置）Ｒ２への軌道を示す軌道計画を立案する立案処理と、立案処理によって立案された軌道計画を、ロボットアーム１０１を制御する制御装置に送信する送信処理と、を実行する。
【００８４】
これにより、軌道計画が容易な推定把持点位置Ｒ２で物品１２２を把持するように制御することができ、物品１２２への到達可能性の向上を図ることができる。
【００８５】
また、機械学習装置１０３は、送信処理によって軌道計画が送信された結果、選択された把持点位置の推定位置（推定把持点位置）Ｒ２に配置されている物品１２２がロボットアーム１０１により把持された場合、軌道計画容易性の推定値Ｒ１と把持点位置の推定位置（推定把持点位置）Ｒ２とを関連付けて、学習データとして記憶デバイス２０２に登録する登録処理を実行する。
【００８６】
これにより、ラベル付き学習ＤＢ３０１に蓄積される学習データ群の信頼性の向上を図ることができ、当該学習データ群を用いて再度学習することにより、学習モデル３０２の最適化を図ることができる。
【００８７】
また、機械学習装置１０３は、認識画像４０１について、把持点位置４０３を生成するとともに、生成された把持点位置４０３での物品１２２の把持を試行して軌道計画容易性４０４を算出することにより、把持点位置４０３と軌道計画容易性４０４とを関連付けた学習データを記憶デバイス２０２に格納する生成処理を実行する。
【００８８】
これにより、学習データ群を自動生成することができる。
【００８９】
以上説明したように、本実施例によれば、把持点に到達可能な把持点位置の選択の容易化を図ることができ、これにより、ピッキング作業の効率化を図ることができる。なお、上述した実施例では、畳み込みニューラルネットワークＣＮＮを用いて機械学習を実行する例について説明したが、教師有り学習であれば、畳み込みニューラルネットワークＣＮＮに限定されず、サポートベクターマシンやランダムフォレストも適用することができる。
【００９０】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【００９１】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００９２】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【００９３】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００９４】
ＣＮＮ  畳み込みニューラルネットワーク
３０１  ラベル付き学習ＤＢ
１００  ピッキングシステム
１０１  ロボットアーム
１０２  制御装置
１０３  機械学習装置
３０２  学習モデル
３０３  生成部
３０６  算出部
３０７  更新部
３０８  取得部
３０９  検出部
３１０  選択部
３１１  立案部
３１２  通信部
３１３  登録部
【図１】
2018202550.tif 000005
【図２】
2018202550.tif 000006
【図３】
2018202550.tif 000007
【図４】
2018202550.tif 000008
【図５】
2018202550.tif 000009
【図６】
2018202550.tif 000010
【図７】
2018202550.tif 000011
【図８】
2018202550.tif 000012
【図９】
2018202550.tif 000013
【図１０】
2018202550.tif 000014
【図１１】
2018202550.tif 000015
【手続補正書】
【提出日】平成29年8月8日(2017.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
請求項１に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が撮影された第２画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第２画像に基づいて、前記軌道計画容易性の推定値を算出し、
前記プロセッサは、
前記第２画像に基づく、前記把持点位置の推定位置を検出する検出処理を実行する、
ことを特徴とする機械学習装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
請求項１に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が認識された第２画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第２画像に基づいて、前記軌道計画容易性の推定値と、前記把持点位置の推定値と、把持点位置可能性の推定値と、非把持点位置可能性の推定値と、を算出する、
ことを特徴とする機械学習装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本願において開示される発明の一側面となる機械学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、前記プロセッサは、前記箱の開口からの前記物品群および前記箱に関する第１画像を取得する取得処理と、前記取得処理によって取得された第１画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、を実行することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
＜機械学習装置１０３の機能的構成例＞
図３は、機械学習装置１０３の機能的構成例を示すブロック図である。機械学習装置１０３は、ラベル付き学習ＤＢ３０１と、学習モデル３０２と、生成部３０３と、算出部３０６と、更新部３０７と、取得部３０８と、検出部３０９と、選択部３１０と、立案部３１１と、通信部３１２と、登録部３１３と、を有する。ラベル付き学習ＤＢ３０１および学習モデル３０２は、具体的には、たとえば、図２に示した記憶デバイス２０２に記憶される情報である。算出部３０６、更新部３０７、取得部３０８、検出部３０９、選択部３１０、立案部３１１、および、登録部３１３は、具体的には、たとえば、図２に示した記憶デバイス２０２に記憶されたプログラムをプロセッサに実行させることにより実現される機能である。通信部３１２は、図２に示した通信ＩＦにより実現される機能である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
学習モデル３０２は、認識画像から把持点位置についての軌道計画容易性を導くための、畳み込みニューラルネットワークを構成するパラメータ群である。認識画像とは、物品群および当該物品群が収容された箱１２１が認識されている画像である。認識画像は、箱１２１の底面を基準とした高さ方向の情報を含んでもよい。学習モデル３０２は、畳み込みニューラルネットワークＣＮＮの各パーセプトロンに与えられる重み（バイアス含む）である。畳み込みニューラルネットワークＣＮＮは、算出部３０６、および更新部３０７により構成される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
図３に戻り、算出部３０６は、大量の入力画像と正解ラベル（把持点位置４０３の座標、その把持点位置４０３の軌道計画容易性４０４、その座標が把持点位置４０３である可能性（把持点位置可能性）、その座標が把持点位置４０３でない可能性（非把持点位置可能性））を、機械学習の手法のうち、たとえば、畳み込みニューラルネットワークに与える。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
第１領域群とは、第１画像を格子状に分割した領域群である。第１領域のサイズは、たとえば、複数の把持点位置４０３の予測位置が同一領域内に入らない程度の大きさとする。後述する第２領域も同様である。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
検出部３０９は、畳み込みニューラルネットワークＣＮＮを使用せずに、推定把持点位置を第２画像から検出する。より具体的には、検出部３０９は、第２画像において物品１２２の面を検出する。検出部３０９は、他の物品１２２により隠れている部分については、物品１２２モデルにより推定することで、物品１２２の面を検出する。そして、検出部３０９は、物品１２２の面の中心点を推定把持点位置として検出する。なお、物品１２２の面の中心点が他の物品１２２により隠れている場合には、推定把持点位置としない。また、検出部３０９により推定把持点位置を検出する場合は、算出部３０６による推定把持点位置の算出は不要である。また、検出部３０９は、一般的な画像処理手法（たとえば、エッジ抽出後の形状切り出し）を用いることで、推定把持位置を検出する。また、上記のいずれかの層の出力結果を用いることもできる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
＜畳み込みニューラルネットワークＣＮＮを用いた推定例＞
図７は、畳み込みニューラルネットワークＣＮＮを用いた推定例を示す説明図である。図７では、第２画像（テスト画像）７００が入力層５００を介して第１中間層５０１に与えられ、第１中間層５０１〜第３中間層５０３は、学習モデル３０２として更新されたパラメータを用いて、軌道計画容易性４０４の推定値Ｒ１、把持点位置４０３の推定位置（推定把持点位置）Ｒ２、把持点位置可能性の推定値Ｒ３、および非把持点位置可能性の推定値Ｒ４を算出する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
このあと、機械学習装置１０３は、取得部３０８によって第２画像７００が取得されたか否かを判断する（ステップＳ８０４）。第２画像７００が取得された場合（ステップＳ８０４：Ｙｅｓ）、機械学習装置１０３は、算出部３０６により、上述した推定値Ｒ１および推定位置Ｒ２を算出する推定処理を実行し（ステップＳ８０５）、ステップＳ８０４に戻る。一方、ステップＳ８０４において、第２画像７００が取得されない場合（ステップＳ８０４：Ｎｏ）、機械学習装置１０３は、ピッキング作業が終了であるか否かを判断する（ステップＳ８０６）。終了でなければ（ステップＳ８０６：Ｎｏ）、ステップＳ８０４に戻って、機械学習装置１０３は第２画像７００の取得を待ち受ける。終了であれば（ステップＳ８０６：Ｙｅｓ）、機械学習装置１０３は、学習／推定処理を終了する。
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2018202550.tif 000016