特開2018-202550(P2018-202550A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 株式会社日立製作所の特許一覧
特開2018-202550機械学習装置、機械学習方法、および機械学習プログラム
<>
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000005
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000006
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000007
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000008
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000009
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000010
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000011
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000012
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000013
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000014
  • 特開2018202550-機械学習装置、機械学習方法、および機械学習プログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-202550(P2018-202550A)
(43)【公開日】2018年12月27日
(54)【発明の名称】機械学習装置、機械学習方法、および機械学習プログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20181130BHJP
   G06N 99/00 20100101ALI20181130BHJP
   G06N 3/08 20060101ALI20181130BHJP
【FI】
   B25J13/08 A
   G06N99/00 153
   G06N3/08
【審査請求】未請求
【請求項の数】9
【出願形態】OL
【全頁数】24
(21)【出願番号】特願2017-110872(P2017-110872)
(22)【出願日】2017年6月5日
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】特許業務法人藤央特許事務所
(72)【発明者】
【氏名】坂井 亮
(72)【発明者】
【氏名】知原 信博
(72)【発明者】
【氏名】木村 宣隆
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS10
3C707KS07
3C707KS09
3C707KS33
3C707KT01
3C707KT05
3C707KX06
3C707LT06
3C707LV07
3C707LW12
3C707MT02
3C707MT04
(57)【要約】
【課題】ピッキング作業の効率化を図ること。
【解決手段】機械学習装置は、物品群が収容されている箱の開口から物品群および箱が認識された認識画像について、物品群の各物品をロボットアームが把持する物品の把持点の位置を示す把持点位置と、ロボットアームの把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、箱の開口からの物品群および箱に関する第1画像を取得し、取得された第1画像の画像特徴量に基づいて、パラメータを用いて、把持点位置の予測位置および軌道計画容易性の予測値を算出し、記憶デバイスに記憶された学習データである把持点位置および軌道計画容易性と、算出処理によって算出された算出結果と、に基づいて、パラメータを更新する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記プロセッサは、
前記箱の開口からの前記物品群および前記箱に関する第1画像を取得する取得処理と、
前記取得処理によって取得された第1画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行することを特徴とする機械学習装置。
【請求項2】
請求項1に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が撮影された第2画像の画像特徴量を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第2画像に基づいて、前記軌道計画容易性の推定値を算出し、
前記プロセッサは、
前記第2画像の画像特徴量に基づく、前記把持点位置の推定位置を検出する検出処理を実行する、
ことを特徴とする機械学習装置。
【請求項3】
請求項1に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が認識された第2画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第2画像の画像特徴量に基づいて、前記軌道計画容易性の推定値を算出し、
ことを特徴とする機械学習装置。
【請求項4】
請求項2または3に記載の機械学習装置であって、
前記プロセッサは、
前記算出処理によって算出された前記軌道計画容易性の推定値に基づいて、前記把持点位置の推定位置を選択する選択処理を実行することを特徴とする機械学習装置。
【請求項5】
請求項4に記載の機械学習装置であって、
前記プロセッサは、
前記選択処理によって選択された把持点位置の推定位置における前記ロボットアームの姿勢に関する情報を生成し、前記ロボットアームが前記選択された把持点位置の推定位置で前記姿勢となるように、前記選択された把持点位置の推定位置への軌道を示す軌道計画を立案する立案処理と、
前記立案処理によって立案された軌道計画を、前記ロボットアームを制御する制御装置に送信する送信処理と、
を実行することを特徴とする機械学習装置。
【請求項6】
請求項5に記載の機械学習装置であって、
前記プロセッサは、
前記送信処理によって前記軌道計画が送信された結果、前記選択された把持点位置の推定位置に配置されている物品が前記ロボットアームにより把持された場合、前記軌道計画容易性の推定値と前記把持点位置の推定位置とを関連付けて、前記学習データとして前記記憶デバイスに登録する登録処理を実行することを特徴とする機械学習装置。
【請求項7】
請求項1に記載の機械学習装置であって、
前記プロセッサは、
前記認識画像について、前記把持点位置を生成するとともに、前記生成された把持点位置での前記物品の把持を試行して前記軌道計画容易性を算出することにより、前記把持点位置と前記軌道計画容易性とを関連付けた学習データを前記記憶デバイスに格納する生成処理を実行することを特徴とする機械学習装置。
【請求項8】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置による機械学習方法であって、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記機械学習方法は、
前記プロセッサが、
前記箱の開口からの前記物品群および前記箱に関する第1画像を取得する取得処理と、
前記取得処理によって取得された第1画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行することを特徴とする機械学習方法。
【請求項9】
機械学習をプロセッサに実行させる機械学習プログラムであって、
前記プロセッサは、記憶デバイスにアクセス可能であり、
前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、
前記プロセッサに、
前記箱の開口からの前記物品群および前記箱に関する第1画像を取得する取得処理と、
前記取得処理によって取得された第1画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、
前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、
を実行させることを特徴とする機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習をおこなう機械学習装置、機械学習方法、および機械学習プログラムに関する。
【背景技術】
【0002】
従来、倉庫内でのピッキング作業は、ロボットアームにより自動化された作業もあり、自動化が進んでいる。複数の物品がバラ積みされた箱からロボットアームが高速に物品をピッキングするためには、(1)物品の認識時間の短縮、(2)軌道計画が終了する把持点位置の選択、(3)ロボットアームの動作の高速化が必要である。
【0003】
ここで、把持点位置とは、物品の把持点に対応する箱の認識画像上の位置であり、把持点とは、物品がロボットアームに把持される点、たとえば、物品の面の中心点である。軌道計画とは、コンピュータが、ロボットアームの初期位置姿勢から物品の把持点位置に対応する把持点でのロボットアームの姿勢までの軌道を計画する処理、または計画された軌道を特定する情報である。「軌道計画が終了する」とは、その把持点位置でのロボットアームの姿勢までの軌道が検出されたことを意味する。従来、(2)軌道計画が終了する把持点位置の選択では、ロボットアームによる物品の掴みやすさ(把持容易性)を基準に、把持点位置が選択されている。
【0004】
また、下記特許文献1は、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置を開示する。当該機械学習装置は、前記ワーク毎の三次元マップを取得する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2017−30135号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術では、(2)軌道計画が終了する把持点位置の選択において、把持容易性を基準に把持点位置が選択される。したがって、軌道計画を実行しても、ロボットアームの動作範囲の制約やロボットアームの他の物品や箱への干渉などによりピッキング対象の物品に到達できない場合があり、所定時間内に軌道計画の実行が終了しないという問題がある。また、ピッキング対象の物品への到達可能性を無視して軌道計画を策定した場合、実際にピッキング対象の物品をピッキングできないという問題がある。
【0007】
本発明は、把持点に到達可能な把持点位置の選択の容易化を図ることを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の一側面となる機械学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、前記プロセッサは、第1パラメータを用いて、前記箱の開口からの前記物品群および前記箱に関する第1画像を取得する取得処理と、前記取得処理によって取得された第1画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、を実行することを特徴とする。
【発明の効果】
【0009】
本発明の代表的な実施の形態によれば、把持点に到達可能な把持点位置の選択の容易化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1図1は、ピッキングシステムのシステム構成例を示す説明図である。
図2図2は、機械学習装置のハードウェア構成例を示すブロック図である。
図3図3は、機械学習装置の機能的構成例を示すブロック図である。
図4図4は、生成部による学習データの生成例を示す説明図である。
図5図5は、畳み込みニューラルネットワークを用いた学習例を示す説明図である。
図6図6は、畳み込みニューラルネットワークのネットワーク構造例を示す説明図である。
図7図7は、畳み込みニューラルネットワークを用いた推定例を示す説明図である。
図8図8は、機械学習装置による学習/推定処理手順例を示すフローチャートである。
図9図9は、図8に示した学習データ生成処理(ステップS801)の処理手順例を示すフローチャートである。
図10図10は、図8に示した学習モデル生成処理(ステップS802)の詳細な処理手順例を示すフローチャートである。
図11図11は、図8に示した推定処理(ステップS805)の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0011】
<ピッキングシステムのシステム構成例>
図1は、ピッキングシステムのシステム構成例を示す説明図である。ピッキングシステム100は、ロボットアーム101と、制御装置102と、機械学習装置103と、を含む。ロボットアーム101は制御装置102に接続され、ロボットアーム101を制御する。制御装置102と機械学習装置103は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク104により通信可能に接続される。
【0012】
棚110には、物品122群を収容する箱121が保管されている。物品122において黒丸で示した点が把持点123である。把持点123は、物品122に表示されている点ではなく、仮想上の点である。本例では、把持点123は、物品122の各面の中心点とする。
【0013】
ロボットアーム101は、多軸多関節型で構成されたアーム112およびハンド111を有する。ロボットアーム101の各関節部の駆動軸は、制御装置102によって制御される。ロボットアーム101は、箱121から物品122を1つずつ取り出して指定された場所(たとえば、搬送コンベアや作業台)に載置する。
【0014】
たとえば、ロボットアーム101は、アーム112の先端とハンド111との間に6軸の力覚センサ(不図示)を有する。力覚センサは、ハンド111にかかる過負荷を検出する。ロボットアーム101が、バラ積みされた物品122を箱121から取り出す場合に、ハンド111またはハンド111に把持された物品122が、箱121の壁面や他の物品122と干渉(衝突または接触)による過負荷を検出すると、制御装置102は、検出された過負荷を逃がすようにロボットアーム101の駆動軸を制御する。
【0015】
また、力覚センサは、ハンド111に作用する力を検出する。これにより、ハンド111が物品122を把持した場合、ハンド111に物品122の重さが作用するため、物品122のピッキング動作を実行した後、力覚センサの検出値が所定の閾値を超えていれば、制御装置102は、ハンド111が物品122を把持していると判断する。なお、ハンド111による物品122把持については、力覚センサのほか、触覚センサを用いてもよい。
【0016】
また、カメラの撮影画像により判断することもできる。また、ハンド111が吸着式ハンドである場合、その圧力計の計測結果から判断してもよい。なお、ハンド111は、物品122を保持可能であれば様々な形態を採用することができる。たとえば、ハンド111は、複数の指を開閉することによって物品122を把持してもよく、物品122を吸引することにより把持する構成でもよい。
【0017】
機械学習装置103は、カメラによりピッキング対象の物品122を収容する箱121を認識する(ステップS1)。カメラは、たとえば、ハンド111に取り付けられており、制御装置102を介して箱121の認識画像が機械学習装置103に送信される。当該カメラは3次元カメラでもよい。つぎに、機械学習装置103は、箱121の認識画像上の把持点位置を選択する(ステップS2)。具体的には、たとえば、機械学習装置103は、把持点位置における物品122の掴みやすさではなく、把持点位置への到達可能性、すなわち、限られた軌道計画時間内での軌道計画の容易さを定量化した値(軌道計画容易性)を参照して、把持点位置を選択する。
【0018】
これにより、軌道計画を実行しても、ロボットアーム101の動作範囲の制約やロボットアーム101の他の物品122や箱121への干渉などによりピッキング対象の物品122に到達できないという事象を抑制することができ、ピッキング作業の効率化を図ることができる。
【0019】
機械学習装置103は、所定時間内で選択された把持点位置までの軌道計画を実行する(ステップS3)。所定時間内で軌道が検出された場合、すなわち、軌道計画が終了した場合(ステップS4:Yes)、制御装置102に軌道計画を出力する。これにより、制御装置102は、軌道計画にしたがってロボットアーム101で物品122をピッキングするよう制御する。一方、所定時間内で軌道が検出されなかった場合、すなわち、軌道計画が終了しなかった場合(ステップS4:No)、ステップS2に戻り、制御装置102は、把持点位置を再選択することになる。
【0020】
<機械学習装置103のハードウェア構成例>
図2は、機械学習装置103のハードウェア構成例を示すブロック図である。機械学習装置103は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インターフェース(通信IF205)と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、機械学習装置103を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタがある。通信IF205は、ネットワーク104と接続し、データを送受信する。
【0021】
<機械学習装置103の機能的構成例>
図3は、機械学習装置103の機能的構成例を示すブロック図である。機械学習装置103は、ラベル付き学習DB301と、学習モデル302と、生成部303と、算出部306と、更新部307と、取得部308と、検出部309と、選択部310と、立案部311と、通信部312と、登録部313と、を有する。ラベル付き学習DB301および学習モデル302は、具体的には、たとえば、図2に示した記憶デバイス202に記憶される情報である。抽出部304、特定部305、算出部306、更新部307、取得部308、検出部309、選択部310、立案部311、および、登録部313は、具体的には、たとえば、図2に示した記憶デバイス202に記憶されたプログラムをプロセッサに実行させることにより実現される機能である。通信部312は、図2に示した通信IFにより実現される機能である。
【0022】
ラベル付き学習DB301は、ラベル付き学習データ群を格納するデータベースである。ラベル付き学習データとは、把持点位置に軌道計画容易性がラベルとして関連付けされたデータである。
【0023】
学習モデル302は、認識画像から把持点位置についての軌道計画容易性を導くための、畳み込みニューラルネットワークを構成するパラメータ群である。認識画像とは、物品群および当該物品群が収容された箱121が認識されている画像である。認識画像は、箱121の底面を基準とした高さ方向の情報を含んでもよい。学習モデル302は、畳み込みニューラルネットワークCNNの各パーセプトロンに与えられる重み(バイアス含む)である。畳み込みニューラルネットワークCNNは、抽出部304、特定部305、算出部306、および更新部307により構成される。
【0024】
生成部303は、ラベル付き学習データを生成する生成処理を実行する。ここで生成部303による学習データの生成例について具体的に説明する。
【0025】
図4は、生成部303による学習データの生成例を示す説明図である。まず、ラベル付き学習データのうち把持点位置の生成について説明する。(A)生成部303は、カメラ400により物品群が収容された箱121を箱121の開口121aから撮影し、認識画像401を生成する。認識画像401は、カメラ400で撮影した箱121の開口121aからの撮影画像を既存の画像認識処理により認識した画像認識結果である。画像認識処理では、生成部303は、物品122の形状やテクスチャ、寸法を含む物体モデル402を用いて撮影画像を画像認識する。
【0026】
(B)つぎに、生成部303は、認識画像401から把持点位置403を生成する。生成部303は、認識画像401から物品122の面を特定し、たとえば、その中心位置を把持点位置403に決定する。把持点位置403は、認識画像401が2次元画像であれば、その座標値は(x,y)であり、認識画像401が3次元画像であれば、その座標値は、(x,y,z)である。
【0027】
(C)生成部303は、生成した把持点位置403を立案部311に出力する。立案部311は、ロボットアーム101の姿勢に関する情報として、たとえば、把持点位置403の逆法線ベクトルを生成し、把持点位置403に対し逆法線ベクトルの方向に向かって物品122を把持するようなロボットアーム101の軌道計画(各駆動軸の時系列な3次元位置および回転角)を、たとえば、RRT(Rapidly exploring random tree)により、立案する。
【0028】
立案部311は、立案した軌道計画を通信部312を介してロボットアーム101の制御装置102に送信する。制御装置102は、所定時間(たとえば、50msec)内において軌道計画にしたがって把持点位置403に対応する把持点123で物品122の把持を試行する。制御装置102は、試行結果(把持成功または失敗)を、通信部312を介して生成部303に返す。生成部303は、試行結果を用いて軌道計画容易性404を算出する。たとえば、軌道計画容易性404は、下記式(1)により算出される。
【0029】
軌道計画容易性=把持の成功回数/試行回数・・・(1)
【0030】
すなわち、生成部303は、1つの把持点位置403について、軌道計画の立案および当該軌道計画による把持の試行を複数回(たとえば、5回)繰り返すことで、上記式(1)の軌道計画容易性404を算出する。なお、軌道計画容易性404は、軌道計画時間の速さで重み付けされてもよく、また、軌道計画時間を経過した試行については、失敗とみなしてもよい。
【0031】
(D)生成部303は、把持点位置403とその軌道計画容易性404とを関連付けることによりラベル付き学習データを生成し、ラベル付き学習DB301に格納する。
【0032】
また、生成部303は、シミュレータを用いてラベル付き学習データを生成してもよい。たとえば、生成部303は、シミュレータにより、物品群が収容された箱121のモデルデータを生成する。生成部303は、物品122のモデルデータの各面の中心を把持点位置403に決定し、その逆法線ベクトルを生成する。シミュレータを用いる場合は、立案部311による軌道計画の立案、軌道計画の試行(ロボットアーム101のモデルデータを用いる)、軌道計画容易性404の算出は、シミュレータ上で実行されることになる。
【0033】
図3に戻り、算出部306は、具体的には、たとえば、算出部306は、大量の入力画像と正解ラベル(把持点位置403の座標、その把持点位置403の軌道計画容易性404、その座標が把持点位置403である可能性(把持点位置可能性)、その座標が把持点位置403でない可能性(非把持点位置可能性))を、機械学習の手法のうち、たとえば、畳み込みニューラルネットワークに与える。
【0034】
具体的には、たとえば、算出部306は、入力画像と、その座標を把持点位置403としたときの軌道計画のしやすさを定量化した値である軌道計画容易性の予測値r1、その格子範囲内で把持点位置403の座標(x,y)の予測位置r2、その座標が把持点位置403である可能性を示す予測値r3、その座標が把持点位置403でない可能性を示す予測値r4、を回帰問題として捉え、入力画像とこれら4つの出力r1〜r4を導出する関数を表現する畳み込みニューラルネットワークCNNの各層のパラメータを用いて、これら4つの出力r1〜r4を、ある格子(複数の把持点位置の予測位置が同一領域内に入らない程度の大きさ、後述する第1領域)単位で算出する。
【0035】
より具体的には、たとえば、算出部306は、上述したパラメータを用いて、抽出処理と、特定処理と、算出処理と、を実行する。パラメータとは、画像特徴量の抽出、物品122および箱121の配置状態の特定、および把持点位置403の予測位置および軌道計画容易性404の予測値の算出を実行するために、畳み込みニューラルネットワークCNNの中間層の各パーセプトロンに与えられる重みパラメータである。
【0036】
抽出処理は、第1画像の画像特徴量を抽出する抽出処理を実行する。具体的には、たとえば、抽出処理は、第1画像を構成する第1領域群の各第1領域の画像特徴量を抽出する処理である。第1画像とは、箱121の開口121aからの物品群および箱121を撮影した画像であり、学習モデル302を学習する際の訓練画像である。第1画像は、上述した認識画像401を用いてもよい。
【0037】
第1領域群とは、第1画像を格子状に分割した領域群である。第1領域のサイズは、たとえば、複数の把持点位置403の予測位置が同一領域内に入らない程度の大きさとする。後述する第2領域も同様である。抽出される画像特徴量は、たとえば、第1画像の第1領域ごとに、第1領域内の画素値を畳み込み演算した値である。
【0038】
特定処理は、抽出処理によって抽出された第1画像の画像特徴量に基づいて、第1画像における物品122および箱121の配置状態を、第1領域ごとに特定する処理である。具体的には、たとえば、特定処理は、第1画像の画像特徴量に基づいて、第1領域における物品122および箱121の配置状態を、第1領域ごとに特定する。物品122の配置状態は、第1領域を占める物品122の位置、面積、および形状を含む。また、第1画像が3次元カメラで撮影された場合には、箱121の底面を基準とした物品122の高さ情報が第1画像に含まれてもよい。箱121の配置状態は、第1領域に占める箱121の位置、面積、および形状を含む。
【0039】
算出処理は、特定処理によって特定された第1画像における配置状態に基づいて、把持点位置403の予測位置および軌道計画容易性404の予測値を算出する処理である。具体的には、たとえば、算出処理は、特定処理によって特定された各第1領域における配置状態に基づいて、把持点位置403の予測位置および軌道計画容易性404の予測値を、第1領域ごとに算出する。
【0040】
把持点位置403の予測位置r2とは、把持点位置403として予測された第1画像でのx座標値およびy座標値である。たとえば、第1領域の物品122の配置状態において物品122が存在すれば、予測位置は、その第1領域において物品122が存在する点となる。たとえば、予測位置の座標(x,y)は、その所属する第1領域(格子)の左上の頂点を原点、右下を(1,1)とした座標系において、それぞれ、0≦x≦1、0≦y≦1の実数値を取る。予測位置は、その第1領域につき1個出現する。また、算出部306を用いて予測位置を推定した場合は、軌道計画容易性の推定値に基づく選択部310での選択の前に、把持点位置可能性と非把持点位置可能性により、選択対象となる予測位置が絞られる。
【0041】
軌道計画容易性404の予測値r1については、たとえば、第1領域に物品122の面が存在すれば、当該予測値も高くなる。第1領域の物品122の面積が大きければ、当該予測値も高くなる。また、第1領域の物品122の高さが高ければ、当該予測値も高くなる。また、第1領域に箱121が存在すれば、当該予測値は低くなる。第1領域の物品122の高さよりも高い物品122がその周囲の第1領域に存在すれば、当該予測値は低くなる。
【0042】
算出部306は、この他、第1領域における配置状態に基づいて、第1領域が把持点位置403らしさを示す把持点位置可能性や把持点位置403らしくなさを示す非把持点位置可能性の予測値r3、r4を算出してもよい。たとえば、第1領域において物品122が占める面積が大きければ、把持点位置可能性の予測値r3も高くなる。第1領域において箱121が占める面積が大きければ、非把持点位置可能性の予測値r4も高くなる。
【0043】
更新部307は、把持点位置403および軌道計画容易性404と、算出部306によって算出された算出結果と、に基づいて、パラメータを更新する更新処理を実行する。更新処理をくりかえし実行することにより、パラメータが最適な値になる。最終的なパラメータが学習モデル302である。具体的には、たとえば、更新部307は、確率的勾配降下法や誤差逆伝播法によりパラメータを更新する。
【0044】
取得部308は、物品群が収容されている箱121の開口121aから物品122および箱121が認識された第2画像を取得する取得処理を実行する。第2画像は、第1画像と同様、カメラ400で撮影した箱121の開口121aからの撮影画像であり、学習モデル302を用いて、軌道計画容易性404が高い把持点位置403を推定する際のテスト画像である。また、第2画像が3次元カメラで撮影された場合には、箱121の底面を基準とした物品122の高さ情報が第2画像に含まれてもよい。
【0045】
取得部308は、取得した第2画像を算出部306に出力する。この場合、算出部306は、取得した第2画像を、学習モデル302のパラメータが設定された畳み込みニューラルネットワークCNNに与えることにより、推定把持点位置R2、軌道計画容易性404の推定値R1、把持点位置可能性の推定値R3、および非把持点位置可能性の推定値R4を、第2画像を構成する第2領域群の第2領域ごとに算出する。第2領域群とは、第2画像を格子状に分割した領域群である。
【0046】
検出部309は、第2画像の画像特徴量に基づいて、推定把持点位置を検出する検出処理を実行する。具体的には、たとえば、検出部309は、第2領域群の各第2領域の画像特徴量に基づいて、推定把持点位置を検出する。検出部309は、畳み込みニューラルネットワークCNNを使用せずに、推定把持点位置を第2画像から検出する。より具体的には、検出部309は、第2画像において物品122の面を検出する。検出部309は、他の物品122により隠れている部分については、物品122モデルにより推定することで、物品122の面を検出する。そして、検出部309は、物品122の面の中心点を推定把持点位置として検出する。なお、物品122の面の中心点が他の物品122により隠れている場合には、推定把持点位置としない。また、検出部309により推定把持点位置を検出する場合は、算出部306による推定把持点位置の算出は不要である。また、検出部309は、一般的な画像処理手法(たとえば、エッジ抽出後の形状切り出し)を用いることで、推定把持位置を検出する。また、上記のいずれかの層の出力結果を用いることもできる。
【0047】
選択部310は、算出部306によって算出された軌道計画容易性404の推定値に基づいて、算出部306または検出部309から得られる推定把持点位置を選択する選択処理を実行する。具体的には、たとえば、選択部310は、軌道計画容易性404の推定値が最大となる推定把持点位置から順次選択する。選択部310は、軌道計画容易性404の推定値が上位X番目(Xは自然数)までの推定把持点位置を選択してもよく、軌道計画容易性404の推定値がしきい値以上である推定把持点位置を選択してもよく、すべての推定把持点位置を選択してもよい。
【0048】
立案部311は、選択部310によって選択された推定把持点位置におけるロボットアーム101の姿勢に関する情報を生成し、ロボットアーム101が把持点位置403の推定位置で当該姿勢となるように、推定把持点位置への軌道を示す軌道計画を立案する立案処理を実行する。ロボットアーム101の姿勢に関する情報とは、たとえば、把持点位置403の推定位置における逆法線ベクトルである。立案部311は、推定把持点位置に対し逆法線ベクトルの方向に向かって物品122を把持するようなロボットアーム101の軌道計画(各駆動軸の時系列な3次元位置および回転角)を、たとえば、RRT(Rapidly exploring random tree)により、立案する。
【0049】
通信部312は、立案部311によって立案された軌道計画を、ロボットアーム101を制御する制御装置102に送信する。また、上述したように、通信部312は、制御装置102からのロボットアーム101による把持の試行結果を受信して、生成部303に出力する。
【0050】
登録部313は、通信部312によって軌道計画が送信された結果、選択された把持点位置403に配置されている物品122がロボットアーム101により把持された場合、軌道計画容易性404の推定値と把持点位置403の推定位置とを関連付けて、学習データとしてラベル付き学習DB301に登録する登録処理を実行する。これにより、実際に把持に成功した軌道計画容易性404と把持点位置403が学習データとしてラベル付き学習DB301に登録されるため、ラベル付き学習データの精度の向上を図ることができる。
【0051】
<畳み込みニューラルネットワークを用いた学習例>
図5は、畳み込みニューラルネットワークを用いた学習例を示す説明図である。図6は、畳み込みニューラルネットワークのネットワーク構造例を示す説明図である。畳み込みニューラルネットワークCNNの入力層は、第1画像500が入力される階層である。第1中間層501は、複数の畳み込み層CV1〜CV21により構成される。第2中間層502は、畳み込み層CV22により構成される。第3中間層503は、畳み込み層CV23〜CV25により構成され、軌道計画容易性404の予測値r1、把持点位置403の予測位置(予測把持点位置)r2、把持点位置可能性の予測値r3および非把持点位置可能性の予測値r4を算出する。第1中間層501〜第3中間層503は、算出部306に対応する。
【0052】
そして、更新部307は、たとえば、得られた把持点位置403の予測位置(予測把持点位置)r2と差が許容範囲内の把持点位置403をラベル付き学習DB301から特定し、特定した把持点位置403に対応する軌道計画容易性404と、軌道計画容易性404の予測値r1と、を損失関数Lに与えることにより、パラメータの勾配を求め、損失関数Lの値を減らす方向にパラメータを更新し、学習モデル302とする。当該更新は、確率的勾配降下法でパラメータを更新してもよく、誤差逆伝播法でパラメータを更新してもよい。
【0053】
ここで、損失関数Lの一例を下記式(2)に示す。
【0054】
【数1】
【0055】
式(2)において、右辺第1項は、把持点位置403を最適化するための損失を示し、右辺第2項、第3項は、軌道計画容易性404を最適化するための損失を示し、右辺第4項は、格子(第1領域500a)での把持点位置可能性の予測値r3および非把持点位置可能性の予測値r4を最適化するための損失である。
【0056】
また、式(2)中、Bは、ミニバッチにおける第1画像500(訓練画像)の枚数である。畳み込みニューラルネットワークCNNは、ミニバッチにより訓練される。Sは、格子数である。Aijlocは、把持点位置403がi番目の訓練画像のj番目の格子(第1領域500a)に存在すれば1、それ以外は0の値をとる。(u,v)は、把持点位置403の予測位置である。λcoordは、把持点位置403を最適化するための損失の重みである。Rは、軌道計画容易性404の予測値である。λnolocは、λnolocは、軌道計画容易性404の損失関数Lを計算するに当たり、非把持点位置を含む格子で推定した軌道計画容易性404と把持点位置403を含む格子で推定した軌道計画容易性404をそれぞれの格子数による値の不均衡を調整するための重みである。Cは、ソフトマックス交差エントロピーであり、下記式(3)に示す。
【0057】
【数2】
【0058】
Kはクラス数である。クラスは、把持点位置403と非把持点位置の2クラスである。pij0は、i番目の第1画像500(訓練画像)のj番目の格子(第1領域500a)における把持点位置可能性の予測値r3であり、pij1は、i番目の第1画像500(訓練画像)のj番目の格子(第1領域500a)における非把持点位置可能性の予測値r4である。tは、i番目の第1画像500(訓練画像)のj番目の格子(第1領域500a)におけるクラスkを示すラベルである。
【0059】
<畳み込みニューラルネットワークCNNを用いた推定例>
図7は、畳み込みニューラルネットワークCNNを用いた推定例を示す説明図である。図7では、第2画像(テスト画像)700が入力層50を介して第1中間層501に与えられ、第1中間層501〜第3中間層503は、学習モデル302として更新されたパラメータを用いて、軌道計画容易性404の推定値R1、把持点位置403の推定位置(推定把持点位置)R2、把持点位置可能性の推定値R3、および非把持点位置可能性の推定値R4を算出する。
【0060】
<学習/推定処理手順例>
図8は、機械学習装置103による学習/推定処理手順例を示すフローチャートである。機械学習装置103は、学習データ生成処理(ステップS801)を実行し、畳み込みニューラルネットワークCNNを用いて学習モデル生成処理を実行する(ステップS802)。そして、機械学習装置103は、更新部307により、学習モデル302で第1パラメータ〜第3パラメータを更新する(ステップS803)。
【0061】
このあと、機械学習装置103は、取得部308によって第2画像700が取得されたか否かを判断する(ステップS804)。第2画像700が取得された場合(ステップS804:Yes)、機械学習装置103は、抽出部304、特定部305、および算出部306により、上述した推定値R1および推定位置R2を算出する推定処理を実行し(ステップS805)、ステップS804に戻る。一方、ステップS804において、第2画像700が取得されない場合(ステップS804:No)、機械学習装置103は、ピッキング作業が終了であるか否かを判断する(ステップS806)。終了でなければ(ステップS806:No)、ステップS804に戻って、機械学習装置103は第2画像700の取得を待ち受ける。終了であれば(ステップS806:Yes)、機械学習装置103は、学習/推定処理を終了する。
【0062】
図9は、図8に示した学習データ生成処理(ステップS801)の処理手順例を示すフローチャートである。生成部303は、認識画像401を受け付ける(ステップS901)。生成部303は、受け付けた認識画像401から把持点位置403を特定し(ステップS902)、把持点位置403の逆法線ベクトルを算出する(ステップS903)。生成部303は、ステップS902で特定した未選択の把持点位置403を1つ選択する(ステップS904)。
【0063】
生成部303は、選択した把持点位置403について、試行回数分、ステップS906およびS907を繰り返す(ステップS905)。具体的には、たとえば、生成部303は、立案部311により、選択した把持点位置403への軌道計画を立案し(ステップS906)、選択した把持点位置403への軌道計画で把持を試行する(ステップS907)。生成部303は、試行回数がしきい値に到達したか否かを判断し(ステップS908)、しきい値に到達していなければ、生成部303は、試行回数をインクリメントして(ステップS904)、ステップS906、S907を再実行する。
【0064】
一方、ステップS908において試行回数がしきい値に到達した場合、生成部303は、ステップS907の試行結果を用いて、上記式(1)により、軌道計画容易性404を算出する(ステップS909)。そして、生成部303は、選択した把持点位置403と算出した軌道計画容易性404とを関連付けて、学習データとして、ラベル付き学習DB301に保存する(ステップS910)。
【0065】
このあと、生成部303は、未選択の把持点位置403があるか否かを判断し(ステップS911)、未選択の把持点位置403があれば、未選択の把持点位置403を選択する(ステップS904)。一方、ステップS911で未選択の把持点位置403がない場合、未処理の認識画像401があるか否かを判断する(ステップS912)。ステップS912で未処理の認識画像401がある場合、生成部303は、未処理の認識画像401を受け付ける(ステップS901)。ステップS912で未処理の認識画像401がない場合、生成部303は、学習データ生成処理(ステップS801)を終了する。
【0066】
図10は、図8に示した学習モデル生成処理(ステップS802)の詳細な処理手順例を示すフローチャートである。機械学習装置103は、未選択の第1画像500(訓練画像)を1つ選択し(ステップS1001)、算出部306により、パラメータを用いて、軌道計画容易性404の予測値r1、把持点位置403の予測値r2、把持点位置可能性の予測値r3および非把持点位置可能性の予測値r4を算出する(ステップS1002)。
【0067】
このあと、機械学習装置103は、更新部307により、パラメータを更新し(ステップS1003)、未選択の第1画像500があるか否かを判断する(ステップS1004)。ステップS1004において未選択の第1画像500があれば、機械学習装置103は、未選択の第1画像500を選択して、ステップS1002、S1003を実行する。一方、ステップS1004において未選択の第1画像500がなければ、機械学習装置103は、パラメータを学習モデル302として保存する(ステップS1005)。
【0068】
図11は、図8に示した推定処理(ステップS805)の詳細な処理手順例を示すフローチャートである。機械学習装置103は、第2画像700において物品122を認識する(ステップS1101)。機械学習装置103は、S1101の認識結果から箱121に物品122が残存しているか否かを判断する(ステップS1102)。残存していない場合(ステップS1102:No)、機械学習装置103は、推定処理(ステップS805)を終了する。
【0069】
一方、残存している場合(ステップS1102:Yes)、機械学習装置103は、算出部306により、学習モデル302内のパラメータを用いて、軌道計画容易性404の推定値R1、推定把持点位置R2、把持点位置可能性の推定値R3、および非把持点位置可能性の推定値R4を算出する(ステップS1103)。
【0070】
そして、機械学習装置103は、選択部310により、推定把持点位置R2を選択する(ステップS1104)。機械学習装置103は、ステップS1104で選択された推定把持点位置R2から、ピッキング対象となる推定把持点位置R2(たとえば、軌道計画容易性404の推定値が高いものから)を1つ選択し(ステップS1105)、立案部311により、推定把持点位置R2の逆法線ベクトルを算出する(ステップS1106)。そして、機械学習装置103は、立案部311により、推定把持点位置R2への軌道計画を立案する(ステップS1107)。
【0071】
このあと、機械学習装置103は、通信部312により制御装置102に軌道計画を送信して、推定把持点位置R2への軌道計画でピッキング制御する(ステップS1108)。機械学習装置103は、制御装置102からの応答により、ピッキングが成功したか否かを判断する(ステップS1109)。成功した場合(ステップS1109:Yes)、機械学習装置103は、登録部313により、推定把持点位置R2および軌道計画容易性404の推定値R1をラベル付き学習DB301に登録し(ステップS1110)、ステップS1111に移行する。一方、ステップS1109においてピッキングに失敗した場合(ステップS1109:No)、ステップS1111に移行する。
【0072】
機械学習装置103は、ピッキング対象となる推定把持点位置R2がすべて選択済みであるか否かを判断する(ステップS1111)。たとえば、機械学習装置103は、ステップS1104で選択されたすべての推定把持点位置R2が、ピッキング対象として選択済みであるか否かを判断する。また、ピッキング成功後は、箱121内の物品群の配置状態が変更されるため、ステップS1109でピッキングに成功した場合にピッキング対象となる推定把持点位置R2がすべて選択済みであると判断してもよい。
【0073】
ステップS1111において、ピッキング対象となる推定把持点位置R2がすべて選択済みでない場合、機械学習装置103は、あらたにピッキング対象となる推定把持点位置R2を1つ選択する(ステップS1105)。一方、ピッキング対象となる推定把持点位置R2がすべて選択済みである場合、機械学習装置103は、現時点での箱121の当該箱121の開口121aからの第2画像700を再取得し(ステップS1112)、ステップS1101に戻る。これにより、箱121の中の物品122がなくなるまで、推定処理(ステップS805)を実行することができる。
【0074】
このように、本実施例の機械学習装置103は、記憶デバイス202に、物品群が収容されている箱121の開口121aから物品群および箱121が認識された認識画像401について、物品群の各物品122をロボットアーム101が把持する物品122の把持点123の位置を示す把持点位置403と、ロボットアーム101の把持点123までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性404と、を関連付けた学習データを記憶する。
【0075】
機械学習装置103は、箱121の開口121aからの物品群および箱121に関する第1画像500を取得する取得処理と、取得処理によって取得された第1画像に基づいて、パラメータを用いて、把持点位置403の予測位置r2および軌道計画容易性404の予測値r1を算出する算出処理と、把持点位置403および軌道計画容易性404と、算出処理によって算出された算出結果と、に基づいて、パラメータを更新する更新処理と、を実行する。
【0076】
これにより、軌道計画が容易になる把持点位置403を選択するための学習モデル(更新後のパラメータ)を生成することができ、当該学習モデルをロボットアーム101に提供することにより、ピッキング作業の効率化を支援することができる。
【0077】
また、取得処理では、機械学習装置103は、物品群が収容されている箱121において箱121の開口121aから物品122および箱121が撮影された第2画像700を取得する。算出処理では、機械学習装置103は、更新処理による更新後のパラメータを用いて、取得処理によって取得された第2画像700に基づいて、軌道計画容易性404の推定値R1を算出する。また、機械学習装置103は、第2画像700に基づいて、把持点位置403の推定位置(推定把持点位置)R2を検出する検出処理を実行する。
【0078】
これにより、軌道計画容易性404を推定することができるため、ピッキング対象の物品群を収納する箱121について、どの推定把持点位置R2を選択すると、ロボットアーム101が把持点123に到達しやすくなるかを定量化することができ、把持点位置選択の指標とすることができる。
【0079】
また、取得処理では、機械学習装置103は、物品群が収容されている箱121において箱121の開口121aから物品122および箱121が撮影された第2画像700を取得する。算出処理では、機械学習装置103は、更新処理による更新後のパラメータを用いて、取得処理によって取得された第2画像700に基づいて、軌道計画容易性404の推定値R1および把持点位置403の推定位置(推定把持点位置)R2を算出する。
【0080】
これにより、軌道計画容易性404および把持点位置403を推定することができるため、ピッキング対象の物品群を収納する箱121について、どの推定把持点位置R2を選択すると、ロボットアーム101が把持点123に到達しやすくなるかを定量化することができ、把持点位置選択の指標とすることができる。
【0081】
また、機械学習装置103は、算出処理によって算出された軌道計画容易性404の推定値R1に基づいて、把持点位置403の推定位置(推定把持点位置)R2を選択する選択処理を実行する。
【0082】
これにより、軌道計画が容易な推定把持点位置R2を自動で選択することができ、把持点位置選択の効率化を図ることができる。
【0083】
また、機械学習装置103は、選択処理によって選択された把持点位置の推定位置(推定把持点位置)R2におけるロボットアーム101の姿勢に関する情報(たとえば、逆法線ベクトル)を生成し、ロボットアーム101が選択された把持点位置の推定位置(推定把持点位置)R2で当該姿勢となるように、選択された把持点位置の推定位置(推定把持点位置)R2への軌道を示す軌道計画を立案する立案処理と、立案処理によって立案された軌道計画を、ロボットアーム101を制御する制御装置に送信する送信処理と、を実行する。
【0084】
これにより、軌道計画が容易な推定把持点位置R2で物品122を把持するように制御することができ、物品122への到達可能性の向上を図ることができる。
【0085】
また、機械学習装置103は、送信処理によって軌道計画が送信された結果、選択された把持点位置の推定位置(推定把持点位置)R2に配置されている物品122がロボットアーム101により把持された場合、軌道計画容易性の推定値R1と把持点位置の推定位置(推定把持点位置)R2とを関連付けて、学習データとして記憶デバイス202に登録する登録処理を実行する。
【0086】
これにより、ラベル付き学習DB301に蓄積される学習データ群の信頼性の向上を図ることができ、当該学習データ群を用いて再度学習することにより、学習モデル302の最適化を図ることができる。
【0087】
また、機械学習装置103は、認識画像401について、把持点位置403を生成するとともに、生成された把持点位置403での物品122の把持を試行して軌道計画容易性404を算出することにより、把持点位置403と軌道計画容易性404とを関連付けた学習データを記憶デバイス202に格納する生成処理を実行する。
【0088】
これにより、学習データ群を自動生成することができる。
【0089】
以上説明したように、本実施例によれば、把持点に到達可能な把持点位置の選択の容易化を図ることができ、これにより、ピッキング作業の効率化を図ることができる。なお、上述した実施例では、畳み込みニューラルネットワークCNNを用いて機械学習を実行する例について説明したが、教師有り学習であれば、畳み込みニューラルネットワークCNNに限定されず、サポートベクターマシンやランダムフォレストも適用することができる。
【0090】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0091】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0092】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0093】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0094】
CNN 畳み込みニューラルネットワーク
301 ラベル付き学習DB
100 ピッキングシステム
101 ロボットアーム
102 制御装置
103 機械学習装置
302 学習モデル
303 生成部
306 算出部
307 更新部
308 取得部
309 検出部
310 選択部
311 立案部
312 通信部
313 登録部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2017年8月8日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項2
【補正方法】変更
【補正の内容】
【請求項2】
請求項1に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が撮影された第2画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第2画像に基づいて、前記軌道計画容易性の推定値を算出し、
前記プロセッサは、
前記第2画像に基づく、前記把持点位置の推定位置を検出する検出処理を実行する、
ことを特徴とする機械学習装置。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項3
【補正方法】変更
【補正の内容】
【請求項3】
請求項1に記載の機械学習装置であって、
前記取得処理では、前記プロセッサは、前記物品群が収容されている箱において前記箱の開口から前記物品および前記箱が認識された第2画像を取得し、
前記算出処理では、前記プロセッサは、前記更新処理による更新後のパラメータを用いて、前記取得処理によって取得された前記第2画像に基づいて、前記軌道計画容易性の推定値と、前記把持点位置の推定値と、把持点位置可能性の推定値と、非把持点位置可能性の推定値と、を算出する、
ことを特徴とする機械学習装置。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
本願において開示される発明の一側面となる機械学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する機械学習装置であって、前記記憶デバイスは、物品群が収容されている箱の開口から前記物品群および前記箱が認識された認識画像について、前記物品群の各物品をロボットアームが把持する前記物品の把持点の位置を示す把持点位置と、前記ロボットアームの前記把持点までの軌道を計画する軌道計画の容易さを定量化した値である軌道計画容易性と、を関連付けた学習データを記憶しており、前記プロセッサは、前記箱の開口からの前記物品群および前記箱に関する第1画像を取得する取得処理と、前記取得処理によって取得された第1画像の画像特徴量に基づいて、パラメータを用いて、前記把持点位置の予測位置および前記軌道計画容易性の予測値を算出する算出処理と、前記記憶デバイスに記憶された前記学習データである前記把持点位置および前記軌道計画容易性と、前記算出処理によって算出された算出結果と、に基づいて、前記パラメータを更新する更新処理と、を実行することを特徴とする。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
<機械学習装置103の機能的構成例>
図3は、機械学習装置103の機能的構成例を示すブロック図である。機械学習装置103は、ラベル付き学習DB301と、学習モデル302と、生成部303と、算出部306と、更新部307と、取得部308と、検出部309と、選択部310と、立案部311と、通信部312と、登録部313と、を有する。ラベル付き学習DB301および学習モデル302は、具体的には、たとえば、図2に示した記憶デバイス202に記憶される情報である。出部306、更新部307、取得部308、検出部309、選択部310、立案部311、および、登録部313は、具体的には、たとえば、図2に示した記憶デバイス202に記憶されたプログラムをプロセッサに実行させることにより実現される機能である。通信部312は、図2に示した通信IFにより実現される機能である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正の内容】
【0023】
学習モデル302は、認識画像から把持点位置についての軌道計画容易性を導くための、畳み込みニューラルネットワークを構成するパラメータ群である。認識画像とは、物品群および当該物品群が収容された箱121が認識されている画像である。認識画像は、箱121の底面を基準とした高さ方向の情報を含んでもよい。学習モデル302は、畳み込みニューラルネットワークCNNの各パーセプトロンに与えられる重み(バイアス含む)である。畳み込みニューラルネットワークCNNは、出部306、および更新部307により構成される。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正の内容】
【0033】
図3に戻り、算出部306は、量の入力画像と正解ラベル(把持点位置403の座標、その把持点位置403の軌道計画容易性404、その座標が把持点位置403である可能性(把持点位置可能性)、その座標が把持点位置403でない可能性(非把持点位置可能性))を、機械学習の手法のうち、たとえば、畳み込みニューラルネットワークに与える。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正の内容】
【0037】
第1領域群とは、第1画像を格子状に分割した領域群である。第1領域のサイズは、たとえば、複数の把持点位置403の予測位置が同一領域内に入らない程度の大きさとする。後述する第2領域も同様である
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正の内容】
【0046】
出部309は、畳み込みニューラルネットワークCNNを使用せずに、推定把持点位置を第2画像から検出する。より具体的には、検出部309は、第2画像において物品122の面を検出する。検出部309は、他の物品122により隠れている部分については、物品122モデルにより推定することで、物品122の面を検出する。そして、検出部309は、物品122の面の中心点を推定把持点位置として検出する。なお、物品122の面の中心点が他の物品122により隠れている場合には、推定把持点位置としない。また、検出部309により推定把持点位置を検出する場合は、算出部306による推定把持点位置の算出は不要である。また、検出部309は、一般的な画像処理手法(たとえば、エッジ抽出後の形状切り出し)を用いることで、推定把持位置を検出する。また、上記のいずれかの層の出力結果を用いることもできる。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】変更
【補正の内容】
【0059】
<畳み込みニューラルネットワークCNNを用いた推定例>
図7は、畳み込みニューラルネットワークCNNを用いた推定例を示す説明図である。図7では、第2画像(テスト画像)700が入力層50を介して第1中間層501に与えられ、第1中間層501〜第3中間層503は、学習モデル302として更新されたパラメータを用いて、軌道計画容易性404の推定値R1、把持点位置403の推定位置(推定把持点位置)R2、把持点位置可能性の推定値R3、および非把持点位置可能性の推定値R4を算出する。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0061
【補正方法】変更
【補正の内容】
【0061】
このあと、機械学習装置103は、取得部308によって第2画像700が取得されたか否かを判断する(ステップS804)。第2画像700が取得された場合(ステップS804:Yes)、機械学習装置103は、出部306により、上述した推定値R1および推定位置R2を算出する推定処理を実行し(ステップS805)、ステップS804に戻る。一方、ステップS804において、第2画像700が取得されない場合(ステップS804:No)、機械学習装置103は、ピッキング作業が終了であるか否かを判断する(ステップS806)。終了でなければ(ステップS806:No)、ステップS804に戻って、機械学習装置103は第2画像700の取得を待ち受ける。終了であれば(ステップS806:Yes)、機械学習装置103は、学習/推定処理を終了する。
【手続補正11】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】変更
【補正の内容】
図10