(57)【要約】【課題】より簡便な方法でワークの取り出し位置を選択する。【解決手段】ロボットシステム１は、複数のワーク５０の距離画像を生成する３次元計測機４０と、複数のワーク５０の少なくとも１つを取り出すためのハンドを有するロボット３０と、３次元計測機４０により生成された前記距離画像を表示する表示部１２と、前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける操作受付部１３と、を備え、前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出す。【選択図】図１
2020110920.tif 000002
【特許請求の範囲】
【請求項１】
複数の物体の少なくとも１つをハンドにより取り出すための前記複数の物体を含む画像における位置の教示を受け付ける受付部と、
前記教示に基づいて、前記複数の物体の少なくとも１つを取り出すための学習モデルを学習する学習部であって、前記教示された位置及びその近傍の点群の情報を入力データとし、前記入力データとした点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された点群の情報についての評価値を出力する前記学習モデルを学習する学習部と、を備える装置。
【請求項２】
前記画像から所定領域の画像を切り抜き、切り抜かれた前記画像の点群の情報を前記学習モデルに入力データとして入力することにより出力される前記点群の情報についての評価値に基づいて、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部、
をさらに備える、請求項１に記載の装置。
【請求項３】
複数の物体の少なくとも１つをハンドにより取り出すための前記複数の物体を含む画像における位置の教示を受け付ける受付部と、
前記教示に基づいて、前記複数の物体の少なくとも１つを取り出すための学習モデルを学習する学習部と、
前記教示された位置及びその近傍の点群の情報を探索用情報として記憶し、前記画像に対して、前記探索用情報による探索を行うことにより、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部と、を備える装置。
【請求項４】
前記学習部は、少なくとも、前記教示に基づく評価値、又は、前記教示に基づく物体の取り出し成否のいずれか１つに基づいて、前記学習モデルを学習する、請求項３に記載の装置。
【請求項５】
前記画像を表示する表示部、
をさらに備える請求項１から請求項４のいずれか１項に記載の装置。
【請求項６】
前記表示部は、前記表示された画像上に前記教示された位置を描画する、請求項５に記載の装置。
【請求項７】
前記位置の教示は、前記位置を点及び領域のいずれかで指定したものである、
請求項１から請求項６のいずれか１項に記載の装置。
【請求項８】
前記学習モデルはニューラルネットワークである、請求項１から請求項７のいずれか１項に記載の装置。
【請求項９】
請求項１から請求項８のいずれか１項に記載の装置と、
前記複数の物体の画像を生成する計測機と、
前記ハンドを有するロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の取り出しのための処理を行う、装置、及びロボットシステムに関する。
【背景技術】
【０００２】
従来、物体（以下「ワーク」ともいう）の取り出し位置の検出のために、距離画像センサを含む３次元計測部により計測した、ワークの距離画像を用いた教示が行われている。距離画像を用いた教示を行うための手法としては、例えば、ＣＡＤ（Computer-Aided Design）マッチングによる手法や、設定パラメータに基づいて探索を行う手法が一般的に利用されている。ここで、距離画像とは、計測対象物（ワーク）の表面を計測した画像であって、撮像された画像上の各画素（ピクセル）が３次元計測部からの深度情報を有する画像を意味する。すなわち、距離画像上の各画素（ピクセル）は、３次元計測部の備える３次元座標系における３次元座標情報を有するといえる。
【０００３】
ＣＡＤマッチングによる手法では、まずワークの形状に対応するＣＡＤデータを作成する。次に、ＣＡＤデータに対してロボットのハンドが把持可能となるワークの取り出し位置を教示する。また、ワークを計測した距離画像からＣＡＤデータにマッチングする箇所を探索する。そして、マッチングした箇所においてＣＡＤデータに対して教示したワークの取り出し位置に対応する位置を選択する。この選択結果に基づいて、ロボットのハンドによる把持を制御することによりワークの取り出しを実現することができる。
このようなＣＡＤデータを用いて、ワークの取り出し位置の教示を行うことにより、バラ積みされたワークを取り出す技術が、例えば特許文献１に開示されている。
【０００４】
また、設定パラメータに基づいて検索を行う場合、教示者の経験に基づいて、ロボットのハンドが把持可能となるワークの取り出し位置を検索するための検索アルゴリズムを選択し、選択した検索アルゴリズムのパラメータを変更しながら、実際の距離画像に対してワークが見つかるかどうか、確認しながらパラメータを調整することにより、ワークの取り出しを実現することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１２４４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したようにＣＡＤデータマッチングによる手法は広く用いられている。しかしながら、この手法では、ＣＡＤモデルに対して、ハンドにて把持可能となるワークの取り出し位置を複数教示する必要があり、教示に時間を要してしまう。
また、マッチングを行うためにＣＡＤモデルが必要となるが、不定形のワークについては、そもそもＣＡＤモデルを作成することができない。また、取り出す対象が完成品でなく、加工途中のワークである場合、加工中のワークのＣＡＤモデルをわざわざ取り出しのために追加で作成しなければならない。
【０００７】
一方、ＣＡＤデータを利用することなく、距離画像からパラメータに基づいて探索を行う場合、上述したように教示者の経験に基づいて、ワークとハンドの関係を考慮した上で検索アルゴリズムを選択する必要がある。
このように、従来の手法では、ロボットシステムにおいてワークの取り出し位置を選択することは容易ではなかった。
【０００８】
そこで本発明は、より簡便な方法でワークの取り出し位置を選択するための、ロボットシステム及びワーク取り出し方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）  本発明の装置（例えば、後述の画像処理装置１０ａ）は、複数の物体（例えば、後述のワーク５０）の少なくとも１つをハンドにより取り出すための前記複数の物体を含む画像における位置の教示を受け付ける受付部（例えば、後述の操作受付部１３）と、
前記教示に基づいて、前記複数の物体の少なくとも１つを取り出すための学習モデルを学習する学習部（例えば、後述の学習部１４）と、を備える装置。
【００１０】
（２）  上記（１）に記載の装置は、前記画像を表示する表示部（例えば、後述の表示部１２）、をさらに備えるようにしてもよい。
（３）  上記（２）に記載の装置において、前記表示部は、前記表示された位置を描画するようにしてもよい。
（４）  上記（１）乃至（３）のいずれかに記載の装置において、前記位置の教示は、前記位置を点及び領域のいずれかで指定したものであるようにしてもよい。
【００１１】
（５）  上記（１）乃至（４）のいずれかに記載の装置において、前記教示された位置及びその近傍の点群の情報を探索用情報として記憶し、前記画像に対して、前記探索用情報による探索を行うことにより、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部（例えば、後述の選択処理部１１）を備えるようにしてもよい。
（６）  上記（１）乃至（５）のいずれかに記載の装置において、前記学習部は、少なくとも、前記教示に基づく評価値、又は、前記教示に基づく物体の取り出し成否のいずれか１つに基づいて、前記学習モデルを学習するようにしてもよい。
【００１２】
（７）  上記（１）乃至（５）のいずれかに記載の装置において、前記学習部は、前記教示された位置及びその近傍の点群の情報を入力データとし、前記入力データとした点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された点群の情報についての評価値を出力する前記学習モデルを学習するようにしてもよい。
【００１３】
（８）  上記（７）に記載の装置は、前記画像から所定領域の画像を切り抜き、切り抜かれた前記画像の点群の情報を前記学習モデルに入力データとして入力することにより出力される前記点群の情報についての評価値に基づいて、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部（例えば後述の選択処理部１１）、をさらに備えてもよい。
（９）  上記（１）乃至（８）のいずれかに記載の装置において、前記学習モデルはニューラルネットワークであるようにしてもよい。
【００１４】
（１０）  本発明のロボットシステム（例えば、後述のロボットシステム１ａ）は、上記（１）乃至（８）のいずれかに記載の装置と、前記複数の物体の画像を生成する計測機（例えば、後述の３次元計測機４０）と、前記ハンドを有するロボット（例えば、後述のロボット３０）と、を備えるロボットシステム。
【００１５】
（１１）  本発明のロボットシステム（例えば、後述のロボットシステム１ａ）は、複数の物体の画像を生成する計測機（例えば、後述の３次元計測機４０）と、前記複数の物体の少なくとも１つを取り出すためのハンドを有するロボット（例えば、後述のロボット３０）と、前記画像に基づいて、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部（例えば、後述の操作受付部１３）と、を備え、前記ロボットは、前記教示された取り出し位置に応じた点群の情報に基づいて、前記ハンドにより前記複数の物体の少なくとも１つを取り出す、ロボットシステム。
【００１６】
（１２）  上記（１１）に記載のロボットシステムは、前記画像を表示する表示部、をさらに備えるようにしてもよい。
（１３）  上記（１２）に記載のロボットシステムにおいて、前記表示部は、前記表示された画像上に前記教示された位置を描画するようにしてもよい。
（１４）  上記（１１）乃至（１３）のいずれかに記載のロボットシステムにおいて、前記位置の教示は、前記位置を点及び領域のいずれかで指定したものであるようにしてもよい。
（１５）  上記（１１）乃至（１４）のいずれかに記載のロボットシステムにおいて、前記教示された位置及びその近傍の点群の情報を探索用情報として記憶し、前記画像に対して、前記探索用情報による探索を行うことにより、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部（例えば、後述の選択処理部１１）をさらに備えるようにしてもよい。
【００１７】
（１６）  本発明のワーク取り出し方法は、複数の物体の画像を生成する計測機（例えば、後述の３次元計測機４０）と、前記複数の物体の少なくとも１つを取り出すためのハンドを有するロボット（例えば、後述のロボット３０）と、を備えたロボットシステム（例えば、後述のロボットシステム１ａ）が行う物体取り出し方法であって、前記画像に基づいて、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、前記取り出し位置の教示に基づいて、学習モデルを学習するステップと、を備え、前記ロボットは、前記学習モデルに基づいて、前記ハンドにより前記複数の物体の少なくとも１つを取り出す、物体取り出し方法。
【００１８】
（１７）  上記（１６）に記載の物体取り出し方法において、前記学習するステップは、少なくとも、前記教示に基づく評価値、又は、前記教示に基づく物体の取り出し成否のいずれか１つに基づいて、前記学習モデルを学習するようにしてもよい。
（１８）  上記（１６）に記載の物体取り出し方法において、前記学習するステップは、前記教示された取り出し位置及びその近傍の点群の情報を入力データとし、前記入力データとした点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された点群の情報についての評価値を出力する前記学習モデルを学習するようにしてもよい。
（１９）  上記（１８）に記載の物体取り出し方法において、前記画像から所定領域の画像を切り抜き、切り抜かれた前記画像の点群の情報を前記学習モデルに入力データとして入力することにより出力される前記点群の情報についての評価値に基づいて、新たな取り出し位置を選択する取り出し位置選択ステップ、をさらに備え、前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数の物体の少なくとも１つを取り出し、前記取り出し位置選択ステップによって選択された前記新たな取り出し位置で各物体を前記ハンドにより取り出すようにしてもよい。
【００１９】
（２０）  本発明の他のロボットシステム（例えば、後述のロボットシステム１ｂ）は、複数の物体（例えば、後述のワーク５０）の画像を生成する計測機（例えば、後述の３次元計測機４０）と、前記複数の物体の少なくとも１つを取り出すためのハンドを有するロボットと、前記画像を学習モデルに入力することで取得された、前記ハンドにより取り出し可能な物体が存在する領域を示す評価値マップに基づいて、前記複数の物体の少なくとも１つの取り出し位置を選択する位置選択部（例えば、後述の取り出し位置選択部１５３）と、を備え、前記ロボットは、選択した前記取り出し位置に基づいて、前記ハンドにより前記複数の物体の少なくとも１つを取り出す。
（２１）  上記（２０）に記載のロボットシステム（例えば、後述のロボットシステム１ｂ）は、前記画像を表示する表示部（例えば、後述の表示部１２）と、前記表示部に表示された前記画像に基づく少なくとも１つの教示位置の教示を受け付ける受付部（例えば、後述の操作受付部１３）と、前記受付部で受け付けた前記教示位置に基づき少なくとも１つの教示位置を示すラベルマップを生成し、該ラベルマップと前記画像とを関連づけてデータセットとして教師データ格納部（例えば、後述の教師データ格納部１５１）に保存するアノテーション処理部（例えば、後述のアノテーション処理部１５２）と、前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、前記学習モデルを出力する学習処理部（例えば、後述の学習処理部１４１）と、をさらに備える。
【００２０】
（２２）  本発明の他のワーク取り出し方法は、複数の物体（例えば、後述のワーク５０）の画像を生成する計測機（例えば、後述の３次元計測機４０）と、前記複数の物体の少なくとも１つを取り出すためのハンドを有するロボット（例えば、後述のロボット３０）と、を備えたロボットシステム（例えば、後述のロボットシステム１ｂ）が行う物体取り出し方法であって、前記画像を学習モデルに入力することで取得された、前記ハンドにより取り出し可能な物体が存在する領域を示す評価値マップに基づいて、前記複数の物体の少なくとも１つの取り出し位置を選択する位置選択ステップと、を備え、前記ロボットは、選択した前記取り出し位置に基づいて、前記ハンドにより前記複数の物体の少なくとも１つを取り出す。
（２３）  上記（２２）に記載の物体取り出し方法は、前記画像を表示する表示ステップと、前記表示ステップにて表示された前記画像に基づく少なくとも１つの教示位置の教示を受け付ける受付ステップと、前記受付ステップにて受け付けた前記教示位置に基づき少なくとも１つの教示位置を示すラベルマップを生成し、該ラベルマップと前記画像とを関連づけてデータセットとして教師データ格納部に保存するアノテーション処理ステップと、前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、前記学習モデルを出力する学習処理ステップと、をさらに備えるようにしてもよい。
【発明の効果】
【００２１】
本発明によれば、より簡便な方法でワークの取り出し位置を選択することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の各実施形態の全体構成について示す模式図である。
【図２】本発明の第１の実施形態における画像処理装置の機能ブロックを示すブロック図である。
【図３】本発明の各実施形態において取り出し対象とするバラ積みされたワークを示す模式図である。
【図４】本発明の各実施形態においてバラ積みされたワークを計測することにより生成された距離画像を示す図である。
【図５】本発明の各実施形態において教示された取り出し位置を描画した距離画像を示す図である。
【図６】本発明の第１の実施形態において記録される描画位置周辺３次元点群情報を示す図である。
【図７】本発明の第１の実施形態において行われる切り抜きについて示す図である。
【図８】本発明の第１の実施形態において行われる切り抜き時の走査について示す図である。
【図９Ａ】本発明の第１の実施形態における動作を示すフローチャート（１／２）である。
【図９Ｂ】本発明の第１の実施形態における動作を示すフローチャート（２／２）である。
【図１０】本発明の第２の実施形態における画像処理装置の機能ブロックを示すブロック図である。
【図１１】本発明の第２の実施形態における動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
次に、本発明の実施形態について図面を参照して詳細に説明をする。
以下では、第１の実施形態と第２の実施形態の２つの実施形態について説明を行う。ここで、各実施形態は、ワークの取り出し位置を選択するという構成において共通する。
ただし、取り出し位置の選択の処理において、第１の実施形態では画像のマッチング処理や画像を切り抜く処理といった前処理を行うのに対し、第２の実施形態ではこのような前処理を省略する点で相違する。
以下では、まず第１の実施形態について詳細に説明し、次に第２の実施形態において特に第１の実施形態と相違する部分について説明を行う。
【００２４】
＜実施形態全体の構成＞
図１を参照して、第１の実施形態に係るロボットシステム１ａの構成について説明する。ロボットシステム１ａは、画像処理装置１０ａ、ロボット制御装置２０、ロボット３０、３次元計測機４０、複数のワーク５０、及びコンテナ６０を備える。
画像処理装置１０ａは、ロボット制御装置２０や３次元計測機４０と通信可能に接続されている。また、ロボット制御装置２０は、画像処理装置１０ａに加え、ロボット３０とも通信可能に接続されている。
【００２５】
まず、ロボットシステム１ａの概略について説明する。
ロボットシステム１ａでは、バラ積みされた状態を含む乱雑に置かれた複数のワーク５０を３次元計測機４０で計測して距離画像を生成する。
【００２６】
そして、画像処理装置１０ａを用いて、距離画像からワーク５０の取り出し位置を選択するための教示を行う。この教示は、距離画像に対して、ユーザが直接ワーク５０の取り出し位置を教示することにより行われる。具体的には、画像処理装置１０ａは、距離画像を画像表示部に当該距離画像を構成する各画素の高さの違いが把握できるように、例えばグレースケール又はＲＧＢのグラデーション等により表示させる。
【００２７】
これを参照したユーザが、マウスの操作等で例えば取り出し位置候補として適切な箇所を選択して、ワーク５０の取り出し位置として指定すると、画像処理装置１０ａは、表示した距離画像に対してユーザにより教示された取り出し位置（以下「教示位置」という）を描画する。また、画像処理装置１０ａは、ユーザにより教示された取り出し位置周辺の距離画像のデータ（以下「教示位置近傍画像データ」という）を取得して記憶する。なお、取り出し位置候補として適切な箇所とは、例えば３次元点の高さの高い箇所である。
【００２８】
その後にワーク５０の取り出し位置の選択を行う場合、画像処理装置１０ａは、記憶している教示位置近傍画像データとマッチングする画像領域を距離画像にて探索する。そして、画像処理装置１０ａは、マッチングした画像領域を新たな教示位置近傍画像データとし、当該画像データの例えば中心位置を新たな取り出し位置として選択する。このように、画像処理装置１０ａは、ユーザの教示に基づいて記憶した教示位置近傍画像データにより新たな取り出し位置を選択することができるので、ユーザからの新たな教示を受けなくとも、ワーク５０の取り出し位置を選択することが可能となる。
このような構成により、ロボットシステム１ａでは、従来に比べて、より簡便な方法でワーク５０の取り出し位置を選択することができる。
また、ロボット制御装置２０は、画像処理装置１０ａが選択したワーク５０の取り出し位置に対して取り出しを行うための制御信号を生成する。そして、ロボット３０が、ロボット制御装置２０の生成した制御信号に基づいてワーク５０の取り出しを実行する。このような構成により、ロボットシステム１ａでは、選択した取り出し位置に基づいて、実際にワーク５０を取り出すこともできる。
【００２９】
更に、画像処理装置１０ａは、教示結果に基づいて機械学習を行い、ワーク５０の取り出し位置を選択するための学習モデルを構築する。そして、画像処理装置１０ａは、構築した学習モデルに基づいて、距離画像から新たな取り出し位置を選択する。
このような構成により、ロボットシステム１ａでは、より精度高く取り出し位置を選択することができる。
以上がロボットシステム１ａの概略である。次に、ロボットシステム１ａに含まれる各装置について説明を行う。
【００３０】
画像処理装置１０ａは、距離画像を用いた教示や機械学習を行うための装置である。画像処理装置１０ａの詳細については、図２の機能ブロック図を参照して後述する。
【００３１】
ロボット制御装置２０は、ロボット３０の動作を制御するための装置である。ロボット制御装置２０は、画像処理装置１０ａが選択したワーク５０の取り出し位置等の情報に基づいて、ロボット３０の動作を制御するための制御信号を生成する。そして、ロボット制御装置２０は、生成した制御信号をロボット３０に対して出力する。
【００３２】
なお、画像処理装置１０ａやロボット制御装置２０は、予め行われたキャリブレーションにより、ロボット３０を制御するための機械座標系と、ワーク５０の取り出し位置を示すカメラ座標系とを対応付けているものとする。
【００３３】
ロボット３０は、ロボット制御装置２０の制御に基づいて動作するロボットである。ロボット３０は、鉛直方向の軸を中心に回転するためのベース部や、移動及び回転するアームや、ワーク５０を把持するためにアームに装着されるハンドを備える。
ロボット３０は、ロボット制御装置２０が出力する制御信号に応じて、アームやハンドを駆動して、ハンドを教示位置まで移動させて、バラ積みされたワーク５０を把持してコンテナ６０から取り出す。
なお、取り出したワーク５０の移載先については図示を省略する。また、ロボット３０やハンドの具体的な構成については、当業者によく知られているので、詳細な説明を省略する。
【００３４】
３次元計測機４０は、コンテナ６０内のワーク５０を計測することにより、距離画像を生成する。３次元計測機４０は、例えば、前述したように距離画像センサを備えるカメラ、又はステレオカメラを用いた３次元計測機により実現することができる。ただし、計測の過程で３次元の点群の距離画像を生成することができるのであれば距離画像センサを備えるカメラ、又はステレオカメラを用いた３次元計測機に限定されず、他の方式の３次元計測機によって３次元計測機４０を実現してもよい。
３次元計測機４０により生成された距離画像は、画像処理装置１０ａに対して出力される。
【００３５】
ワーク５０は、コンテナ６０内で、バラ積みされた状態を含んで乱雑に置かれる。ワーク５０は、ロボット３０のアームに装着されたハンドで把持可能なものであればよく、その形状等は特に限定されない。
【００３６】
＜画像処理装置１０ａの機能ブロック＞
次に、図２を参照して画像処理装置１０ａが備える各機能ブロックについて説明をする。なお、図２では、ロボットシステム１ａにおける、画像処理装置１０ａ以外の構成要素を環境１００としてまとめて図示する。
【００３７】
画像処理装置１０ａは、選択処理部１１、表示部１２、操作受付部１３、及び学習部１４を備える。
【００３８】
選択処理部１１は、ロボットシステム１ａの概略として上述したように、各種の画像処理を行うことにより、ワーク５０の取り出し位置を選択する。選択処理部１１により行われる画像処理は、大きく区分して、「マッチング処理」と「切り抜き処理」の２つになる。
これらの処理を行うために、選択処理部１１は、選択用データ格納部１１１、アノテーション処理部１１２、マッチング部１１３及び切り抜き部１１４を備える。
選択用データ格納部１１１は、選択処理部１１内の各機能ブロックが利用する各種のデータを格納する部分である。
アノテーション処理部１１２、ユーザから、ワーク５０の取り出し位置の教示を受けるための処理を行う部分である。
マッチング部１１３は、マッチング処理を行う部分である。また、切り抜き部１１４は切り抜き処理を行う部分である。
これら選択処理部１１が備える各機能ブロックの機能と、マッチング処理及び切り抜き処理の内容については後述する。
【００３９】
表示部１２は、選択処理部１１の出力する画像を表示する部分である。選択処理部１１の出力する画像は、例えば、ワーク５０を３次元計測機４０で計測することにより生成された距離画像や、ユーザの教示した教示位置を距離画像に描画した画像である。表示部１２は、例えば、液晶ディスプレイや有機ＥＬディスプレイにより実現される。
【００４０】
操作受付部１３は、ユーザからの操作を受け付ける部分である。操作受付部１３は、例えば、表示部１２に表示した距離画像を参照したユーザからワーク５０の取り出し位置を教示するための当該取り出し位置を指定する操作を受け付ける。操作受付部１３は、例えばマウスやキーボード等により実現される。
【００４１】
例えば、ユーザがマウスやキーボードを使用して、表示部１２に表示されるカーソルを当該取り出し位置（を示す画像上）に移動させて指定するようにしてもよい。また、タッチパネルにより表示部１２と操作受付部１３を一体的に実現することで、例えば当該取り出し位置（を示す画像上）をタップすることにより指定するようにしてもよい。
【００４２】
学習部１４は、機械学習に関する処理を行う部分である。学習部１４は、学習処理部１４１、学習済モデル格納部１４２、及び推定処理部１４３を備える。
学習処理部１４１は、機械学習を実行する部分であり、例えば、畳み込みニューラルネットワーク（コンボリューショナルニューラルネットワーク）を利用した深層学習（ディープラーニング）を行う。
学習済モデル格納部１４２は、学習処理部１４１が機械学習において学習中の学習モデルのパラメータや、学習済モデルのパラメータを格納する部分である。
推定処理部１４３は、選択処理部１１による取り出し位置の選択のために、学習済モデル格納部１４２に格納された学習済モデルを利用した推定を行う。
これら各部により行われる機械学習の詳細な内容は＜機械学習＞という項目にて後述する。
【００４３】
以上、画像処理装置１０ａに含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、画像処理装置１０ａは、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、画像処理装置１０ａは、アプリケーションソフトウェアやＯＳ（Operating System）等の各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置も備える。
【００４４】
そして、画像処理装置１０ａにおいて、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、第１の実施形態の機能ブロックは実現される。つまり、第１の実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００４５】
具体例として、画像処理装置１０ａは、一般的なパーソナルコンピュータやサーバ装置に第１の実施形態を実現するためのアプリケーションソフトウェアを組み込むことより実現できる。
ただし、画像処理装置１０ａは、学習部１４が行う機械学習に伴う演算量が多いため、例えば、コンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。また、コンピュータにＦＰＧＡ（Field-Programmable Gate Array）を搭載し、ＦＰＧＡを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。
【００４６】
更には、より高速な処理を行うために、このようなＧＰＵやＦＰＧＡを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００４７】
＜マッチング処理＞
次に、選択処理部１１が行う処理の内容について詳細に説明をする。上述したように、選択処理部１１は、「マッチング処理」と「切り抜き処理」の２つの処理を行う。まず、図３から図６までを参照してマッチング処理について説明をする。
【００４８】
図３に、コンテナ６０内に積まれているワーク５０を俯瞰した状態を示す。図３に示すように、ワーク５０は乱雑にバラ積みされており、ワーク５０の取り出し位置が教示されることなく、ロボット３０のハンドにより当該ワーク５０を把持して取り出すことは困難な状態となっている。なお、図中では、図示の都合上一部のワーク５０についてのみ符号を付している。
【００４９】
３次元計測機４０は、コンテナ６０内に積まれているバラ積みされたワーク５０を計測することにより距離画像を生成する。３次元計測機４０は、生成した距離画像を、画像処理装置１０ａの選択処理部１１に対して送信する。選択処理部１１が受信した距離画像は、選択用データ格納部１１１に格納される。
アノテーション処理部１１２は、ユーザからワーク５０の取り出し位置の教示を受けるために、選択用データ格納部１１１から距離画像を取得する。そして、アノテーション処理部１５２は、取得した距離画像を表示部１２に対して出力する。表示部１２は、入力された距離画像を図４に示すようにして表示する。なお、図中では、図示の都合上一部のワーク５０についてのみ符号を付している。
【００５０】
３次元計測を行うと、２次元のピクセル上に各ピクセル位置が高さ情報を持つ距離画像を生成することができる。アノテーション処理部１１２は、距離画像を、各ピクセルが持つ高さ情報をＲＧＢによる色彩の諧調で表現して表示させたり、あるいはグレースケールの濃度で表現して表示させる。教示を行うユーザは、このような表現方法の距離画像を参照することにより深度情報を認識することが可能となる。
【００５１】
図４では、特許図面を記載する上の制約から、各ピクセルが持つ高さ情報をハッチングにより表しているが、これに限定されない。例えば、色彩の諧調やグラデーション等により、各ピクセルが持つ高さ情報を表現するようにしてもよい。図４では、３次元計測機４０からの距離が近いもの（つまり、地面からの高さが高いもの）が白色になるようにし、３次元計測機４０からの距離が遠いもの（つまり、地面からの高さが低いもの）が黒色になるように表現している。
【００５２】
例えば、ワーク５０ａは、ワーク５０ｂよりも地面から高い位置に存在するので、ワーク５０ａはワーク５０ｂよりも白色になるようなハッチングがなされている。また、ワーク５０ｂに対応する面は、ワーク５０ａに対応する面により一部隠れている。ユーザは、これを参照することにより、ワーク５０ｂの上にワーク５０ａが積まれている状態であることが分かる。
また、例えばワーク５０ｃに対応する面は、場所により高さが異なっている。ユーザは、これを参照することにより、ワーク５０ｃが傾斜して積まれている状態であることが分かる。
【００５３】
このように表示部１２に表示された距離画像を参照したユーザは、前述したようにマウスやタッチパネルにより実現される操作受付部１３を利用して、ワーク５０の取り出し位置を指定することにより、ワーク５０の取り出し位置の教示を行う。操作受付部１３は、教示されたワーク５０の取り出し位置である教示位置を、アノテーション処理部１１２に対して通知する。アノテーション処理部１１２は、この通知された教示位置をユーザが認識できるように、距離画像上の教示位置に対して描画を行う。描画は、例えば、距離画像上の教示位置の画素の色を変更する等の、ユーザが把握しやすい方法により行う。描画を行った場合の表示例を図５に示す。
【００５４】
ユーザは取り出し可能な位置にあるワーク５０のそれぞれについて、取出し位置を教示する。そして、図中に教示位置７１として示すように、ユーザが教示した教示位置を把握できるように描画が行われる。なお、図中では、図示の都合上一部の教示位置７１についてのみ符号を付している。
【００５５】
アノテーション処理部１１２は、教示位置の３次元点情報と、教示位置を中心とした教示位置近傍の所定の範囲内の３次元点群情報である教示位置近傍画像データを取得する。そして、アノテーション処理部１１２は、取得した教示位置の３次元点情報と、教示位置近傍画像データとを対応付けて、マッチング用点群情報として選択用データ格納部１１１に格納する。
【００５６】
マッチング用点群情報の一例を、マッチング用点群情報８０として図６に示す。なお、図６の例では、説明のために教示点に描画を施しているが、マッチング用点群情報８０に含まれる教示位置近傍画像データには教示位置を示す描画は含まない。また、以下の説明においては、マッチング用点群情報の符号である「８０」の記載は省略する。
【００５７】
マッチング用点群情報として取得する３次元点群の範囲の大きさは、ワーク５０の大きさ等に基づいて予め設定しておく。なお、ある程度大きい範囲の３次元点群情報をマッチング用点群情報として記憶しておき、記憶したマッチング用点群情報を、後述のマッチングにおいて利用する際に、設定の調整を行って、必要なサイズにトリミングしたものをマッチング用点群情報として利用するようにしてもよい。
【００５８】
なお、アノテーション処理部１１２は、マッチング用点群情報に、付帯的な情報を追加するようにしてもよい。例えば、マッチング用点群情報の特徴を示す情報を追加するようにしてもよい。特徴を示す情報とは、例えば、マッチング用点群情報に含まれる複数のピクセルが持つ３次元点の高さの平均や、教示位置に対応するピクセルが持つ３次元点の高さ等の情報である。
【００５９】
第１の実施形態では、複数のワーク５０がバラ積みされているので、３次元計測機４０により計測される一枚の距離画像を利用して、上述したようにユーザにより複数の教示位置が教示されることにより、ワーク５０が取りうる複数の姿勢のそれぞれの姿勢について取り出し位置の教示をすることが可能となる。
【００６０】
なお、背景技術として説明したＣＡＤモデルでの教示は、形状に対して３次元点が一様に取得できると仮定する。しかしながら、実際に撮像をした場合には、光学条件等が原因で、形状に対して３次元点が一様に取得できない。このように、仮定と実際の撮像とでは、３次元点の取れやすさには違いがあるため、この乖離がマッチングの度合いに影響することがある。
【００６１】
これに対して第１の実施形態では、実際の光学条件で取得した３次元点による距離画像を入力として取得して、描画位置周辺の３次元点群情報を保存できるため、ＣＡＤモデルでの教示のように光学条件等が原因で、ＣＡＤモデル上の教示位置と対応するワーク５０の教示位置が取得できないような不具合が生じることを防止できる。
【００６２】
次に、ワーク５０の取り出し時に、マッチング部１１３により行われる、マッチング用点群情報を利用したマッチングについて説明を行う。
マッチング部１１３は、ワーク５０の取り出し時に、３次元計測機４０からコンテナ６０内に積まれているバラ積みされたワーク５０の距離画像を取得する。そして、マッチング部１１３は、取得した距離画像に対して、選択用データ格納部１１１に格納されているそれぞれのマッチング用点群情報に含まれる教示位置近傍画像データに基づいて、例えばＩＣＰ（Iterative Closest Point）マッチング等の３次元点群のマッチング手法を用いて、探索を行う。そして、マッチング部１１３は、距離画像中で、マッチングの評価が高い画像領域の例えば中心位置を、取り出し対象のワーク５０の取り出し位置として選択する。なお、マッチングの評価が閾値以上に高い画像領域を複数選択し、これら複数の画像領域のうち、地面からの高さがもっとも高い画像領域を新たな教示位置近傍画像データとしてもよい。
【００６３】
マッチング部１１３は、選択したワーク５０の取り出し位置をロボット制御装置２０に対して送信する。そして、ロボット制御装置２０が、受信したワーク５０の取り出し位置に基づいてロボット３０を制御することにより、ワーク５０の取り出しを試みる。
【００６４】
ここで、マッチング用点群情報は、上述したようにユーザの教示に基づいて作成されるものであるが、全てのマッチング用点群情報が適切なものであるとは限らない。例えば、或るマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合には取り出しに成功するが、他のマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合には取り出しに失敗することがあり得る。
このように、マッチング用点群情報によって成否が異なる場合があり得るので、マッチング部１１３は、各マッチング用点群情報に対して評価を行うことにより、各マッチング用点群情報に評価値を付与するようにするとよい。そして、マッチング部１１３は、この評価値が高いマッチング用点群情報を利用することが望ましい。
また、この評価値を付与したマッチング用点群情報は、後述する機械学習において教師データとして使用するため、マッチング部１１３は、評価値を付与したマッチング用点群情報を選択用データ格納部１１１に格納する。なお、評価値の低いマッチング用点群情報も機械学習のための教師データ（失敗データ）として必要なデータである。そのため、マッチング部１１３は、評価値の高いマッチング用点群情報のみならず、評価値の低いマッチング用点群情報も、選択用データ格納部１１１に教師データとして格納する。
【００６５】
マッチング部１１３は、ワーク５０の取り出しの成否に応じて評価値を付与することができる。例えば、マッチング部１１３は、或るマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合に、ワーク５０の取り出しに成功した場合には、取り出しに失敗した場合よりも高い評価値を付与する。例えば、マッチング部１１３は、ワーク５０の取り出しに成功した場合に第１所定値以上（例えば６０点以上）を付与し、ワーク５０の取り出しに失敗した場合は、第２所定値以下（例えば５０点以下）とする。また、例えば、マッチング部１１３は、ワーク５０の取り出しに成功した場合には、取り出しに要した時間に応じて更に評価値を異なるようにしてもよい。例えば、マッチング部１１３は、ワーク５０の取り出しに要した時間が短いほど評価値が高くなるようにしてもよい。また、例えば、マッチング部１１３は、ワーク５０の取り出しに失敗した場合には、失敗した度合いに応じて評価値を異なるようにしてもよい。例えば、マッチング部１１３は、ワーク５０を把持できたが取り出し途中で落下してしまった場合には、ワーク５０を把持できなかった場合よりも評価値が高くなるようにしてもよい。
【００６６】
マッチング部１１３は、今回計測した距離画像に対して、各マッチング用点群情報に基づくマッチングを行う。また、マッチング部１１３は、各マッチングした箇所におけるワーク５０の取り出しの試みと、上述した評価値の付与を行う。この処理は、３次元計測機４０からコンテナ６０内に積まれているバラ積みされたワーク５０の距離画像を新たに取得することにより繰り返される。
【００６７】
このように、マッチング部１１３は、マッチング用点群情報を用いたマッチング及びワーク５０の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、各マッチング用点群情報についての評価を行うことができる。そして、マッチング部１１３が、評価値の高いマッチング用点群情報を選択することによって、ワーク５０の取り出しに成功する確率を向上させることができる。
【００６８】
また、マッチング部１１３は、距離画像でのマッチングに成功した部分について、マッチング用点群情報と同じ大きさの範囲の３次元点群情報を取得し、この取得した３次元点群情報を新たなマッチング点群情報とするようにするとよい。
このようにすれば、マッチング部１１３は、マッチングに用いたマッチング用点群情報に加え、マッチングした部分から取得した新たなマッチング用点群情報についてワーク５０の取り出しを行うことが可能となる。つまり、マッチング部１１３は、マッチング用点群情報を自動的に増やしていくことができる。これにより、より評価値の高いマッチング用点群情報を収集することが可能となる。
【００６９】
このように、第１の実施形態では、マッチング部１１３が、マッチング用点群情報を用いたマッチング及びワーク５０の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、ワーク５０取り出し位置を選択することが可能となる。また、マッチング用点群情報を自動的に増やしていくことも可能となる。
そのため、第１の実施形態では、ユーザからの新たな教示を受けなくとも、選択した取り出し位置に基づいたワーク５０の取り出しを行うことができる。
【００７０】
なお、第１の実施形態は、従来から行われているＣＡＤ等のモデルに対する教示と異なり、３次元計測機４０で実際にワーク５０を測定することにより取得した距離画像に対する教示に基づく。このように実際にワーク５０を測定することにより取得した距離画像を用いる場合、外乱が含まれるなどといった理由によってマッチングが成立しないことが多くなる。そこで、マッチングが成立するように、マッチングの成否に関する閾値を甘く設定する場合がある。
しかしながら、このように閾値を甘くする手段を取ると、実際には取出し位置として検出されるにはふさわしくない場所についてもマッチングが成立してしまうという問題が生じる。そこで、この問題を軽減するため、描画によって教示しなかった場所に関してもマッチングを試みて、もしこの教示しなかった場所でマッチングが成立した場合、検出位置としては不適切なものとし、最終的な検出位置から除外する処理を、上述した第１の実施形態の処理に更に加えるようにしてもよい。
以上、マッチング部１１３によるマッチング処理について説明をした。上述のマッチング処理により、ワーク５０の取り出し位置の選択を実現することができる。
この構成に、更に学習部１４による機械学習と、切り抜き部１１４による切り抜き処理とを組み合わせることにより、ワーク５０の取り出し位置の選択精度を向上させることが可能となる。以下、学習部１４による機械学習について説明する。次に切り抜き部１１４による切り抜き処理について説明する。
【００７１】
＜機械学習＞
マッチング部１１３は、上述したように、マッチング用点群情報を用いたマッチング及びワーク５０の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、評価値が付与されたマッチング用点群情報を作成する。そして、上述したように、マッチング部１１３は、評価値が付与されたマッチング用点群情報を、選択用データ格納部１１１に格納する。
学習部１４の学習処理部１４１は、選択用データ格納部１１１に格納された、評価値が付与されたマッチング用点群情報を教師データとして、教師あり機械学習を行う。また、学習処理部１４１は、この教師あり学習により、ワーク５０の取り出し位置の選択精度を向上するための学習モデルを構築する。そして、学習処理部１４１は、構築した学習モデルを学習済モデル格納部１４２に格納する。
そして、後述の切り抜き処理にて、推定処理部１４３が、この学習済モデル格納部１４２に格納された学習モデルを利用することにより、３次元計測機４０により計測される距離画像とのマッチングを行うことなく、ワーク５０の取り出し位置を選択することを可能とする。また、学習処理部１４１は、切り抜き処理での取り出しの成否に基づいて更に機械学習を行うことによって、学習済モデル格納部１４２に格納されている一度構築された学習モデルを更に更新することもできる。
【００７２】
次に、学習モデルの構築について具体的に説明をする。学習処理部１４１は、選択用データ格納部１１１に格納された、マッチング用点群情報に含まれる教示位置近傍画像データを入力データとし、このマッチング用点群情報に付与された評価値をラベルとして教師あり学習を行う。教師あり学習の方法として、学習処理部１４１は、画像データを対象とした学習に適しているニューラルネットワークである、コンボリューションニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）を使用した深層学習（ディープラーニング）を行う。そのために、３層以上で、且つ、少なくとも１回の画像のコンボリューション演算を含むコンボリューションニューラルネットワークを用意する。ただし、これは第１の実施形態で適用される機械学習をコンボリューションニューラルネットワークに限定する趣旨ではない。第１の実施形態に、コンボリューションニューラルネットワーク以外の深層学習モデルや、線形モデル等を利用した機械学習を適用するようにしてもよい。
【００７３】
ここで、コンボリューションニューラルネットワークは、畳み込み層、プーリング層、全結合層、及び出力層を備えた構造となっている。ただし、これはあくまで説明のための構造例であり、例えばプーリング層を省略するようにしてもよい。また、例えば上述したように、画像をラベルとして学習を行うような場合に、更にデコンボリューション層を設けるようにしてもよい。
【００７４】
畳み込み層では、エッジ抽出等の特徴抽出を行うために、入力された３次元点群情報に対して所定のパラメータのフィルタをかける。このフィルタにおける所定のパラメータは、一般的なニューラルネットワークの重みに相当しており、学習を繰り返すことにより学習されていく。
【００７５】
プーリング層では、例えば、畳み込み層から出力された画像を小さなウインドウに区切り、ウインドウそれぞれの特徴（例えばウインドウそれぞれにおける最大値）を出力する。
これら畳み込み層及びプーリング層を組み合わせることによって、３次元点群情報から特徴量を抽出することができる。
【００７６】
全結合層では、畳み込み層及びプーリング層を通して取り出した特徴を１つのノードに結合し、活性化関数によって変換した値を出力する。ここで、活性化関数は、０未満の出力値を全て０にする関数で、ある閾値以上の部分だけを意味の有る情報として出力層に送るために用いる。
【００７７】
出力層では、全結合層からの出力に基づいて、入力データとしたマッチング用点群情報に基づいた取り出しについての評価値を出力する。そして、出力層の出力と、ラベルの誤差を算出する。ここで、ラベルは、上述したように、入力データとしたマッチング用点群情報に付与された評価値である。
【００７８】
学習開始時は、コンボリューションニューラルネットワークに含まれる各パラメータの重み付けが適切にはなされていないので、この誤差は大きな値となる可能性が高い。そこで、学習処理部１４１は、算出した誤差を小さくするように重み付け値を修正する。具体的には、誤差を小さくするために、フォワードプロパゲーションやバックプロパゲーションと呼ばれる処理を繰り返すことにより、コンボリューションニューラルネットワークに含まれる各パーセプトロンの重み付け値を変更する。
【００７９】
学習処理部１４１は、このようにして、教師データの特徴を学習し、入力データとしたマッチング用点群情報から、評価値を出力するための学習モデルを帰納的に獲得する。学習処理部１４１は、構築した学習モデルを学習済モデルとして学習済モデル格納部１４２に格納する。
【００８０】
上述した学習は、オンライン学習で行ってもよいし、バッチ学習やミニバッチ学習で教師あり学習を行ってもよい。
オンライン学習とは、教師データが作成される都度、即座に教師あり学習を行うという学習方法である。また、バッチ学習とは、教師データが作成されることが繰り返される間に、繰り返しに応じた複数の教師データを収集し、収集した全ての教師データを用いて、教師あり学習を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度教師データが溜まるたびに教師あり学習を行うという学習方法である。バッチ学習やミニバッチ学習を行う場合には、学習を開始するまでの間、収集した教師データを選択用データ格納部１１１に格納すればよい。
また、新たに教師データを取得した場合に、学習済モデルのパラメータを初期値として学習を行うことにより学習済モデルによる推定の精度を向上させるようにしてもよい。また、他にも、新たに教師データを取得した場合に、学習済モデルと関係なく、別途の学習モデルを新たに構築するようにしてもよい。
【００８１】
＜切り抜き処理＞
次に、切り抜き部１１４が行う切り抜き処理について説明をする。
切り抜き部１１４は、学習処理部１４１により構築された学習モデルを利用することにより、３次元計測機４０により計測される距離画像とのマッチングを行うことなく、ワーク５０の取り出し位置を選択する。以下、この、マッチングを行うことなく、取り出し位置を選択する処理を「切り抜き処理」と呼んで説明をする。
【００８２】
切り抜き処理を行う場合、切り抜き部１１４は、取り出し作業時に新たな距離画像を取得すると、取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ（すなわち、マッチング用点群情報と同じ大きさ）の距離画像を切り抜く。そして、切り抜き部１１４は、この切り抜いた部分（以下「取り出し位置候補」という）の３次元点群情報を取得する。
【００８３】
切り抜き部１１４による取り出し位置候補の抽出処理（切り抜き処理）について図７及び図８を参照して説明をする。図７に切り抜きの対象とする領域を取り出し位置候補９０として図示する。この取り出し位置候補９０の大きさは、上記したように、学習済モデルへの入力と同じ大きさ（すなわち、マッチング用点群情報と同じ大きさ）となる。
【００８４】
切り抜き部１１４は、取り出し位置候補９０とする対象を、例えば図８に示すように、画像左上から数ピクセルずつ対象位置をずらしながら走査することで画像全域に対して切り抜きを行う。なお、図８では、直線的に走査を行っているが、走査に回転を加えてもよい。また、走査開始位置や走査方向も任意に設定してよい。切り抜き部１１４は、切り抜き時に、距離画像上での取り出し位置候補９０の位置（例えば、切り抜いた画像データの中心位置）も取得し、取り出し位置候補と対応付けて、選択用データ格納部１１１に格納する。
推定処理部１４３は、このようにして抽出される全ての取り出し位置候補の３次元点群情報それぞれを、選択用データ格納部１１１から取得する。そして、推定処理部１４３は、取得した全ての取り出し位置候補の３次元点群情報それぞれを、上述したマッチング用点群情報の代わりに学習済モデルに入力し、それぞれの取り出し位置候補についての評価値を出力として得る。推定処理部１４３は、この出力を切り抜き部１１４に対して通知する。
【００８５】
切り抜き部１１４は、学習済モデルから出力される評価値が高い切り抜き画像に対応付けて記憶している位置を取り出し位置として選択する。切り抜き部１１４は、選択した取り出し位置をロボット制御装置２０に対して送信する。そして、ロボット制御装置２０が、受信した取り出し位置に基づいてロボット３０を制御することにより、ワーク５０の取り出しを試みる。
【００８６】
ここで、取り出し位置候補の３次元点群情報によりワーク５０の取り出しを試みた場合も、マッチング用点群情報により取り出しを試みた場合と同様に、取り出しに成功することも、失敗することもあり得る。そこで、切り抜き部１１４は、マッチング処理時におけるマッチング用点群情報と同様に、ワーク５０の取り出しの成否に応じて取り出し位置候補にも評価値を付与する。また、切り抜き部１１４は、この評価値を付与した取り出し位置候補を選択用データ格納部１１１に格納する。この評価値を付与した取り出し位置候補は、学習処理部１４１が、学習済モデルを更新するための、新たな教師データとして利用することができる。
【００８７】
具体的には、学習処理部１４１は、取り出し位置候補の３次元点群データを入力データとし、この入力データとした取り出し位置候補に付与された評価値をラベルとして、上述のオンライン学習又はミニバッチ学習を行うことが好ましい。これにより、ワーク５０の取出し操作を実行しながら、学習済モデルを更に精度の高い学習済モデルにリアルタイムに更新することができる。なお、オンライン学習又はミニバッチ学習に限定されない。バッチ学習により学習モデルを更新してもよい。
【００８８】
＜第１の実施形態の動作＞
次に、図９Ａ及び図９Ｂのフローチャートを参照して、第１の実施形態の動作について説明をする。なお、図９Ａは上述したマッチング処理に相当する動作についてのフローチャートであり、図９Ｂは上述した切り抜き処理に相当する動作についてのフローチャートである。
【００８９】
ステップＳ１１において、アノテーション処理部１１２は、３次元計測機４０から、バラ積みされたワーク５０を計測することにより生成された距離画像を取得する。
ステップＳ１２において、アノテーション処理部１１２は、距離画像を表示部１２に表示させる。
ステップＳ１３において、アノテーション処理部１１２は、操作受付部１３が受け付けたユーザからのワーク５０の取り出し位置の教示に基づいて、距離画像上に教示位置を描画する。
【００９０】
ステップＳ１４において、アノテーション処理部１１２は、マッチング用点群情報の大きさを設定する。設定は、予め与えられている設定値や、ユーザの操作に応じて行われる。
ステップＳ１５において、アノテーション処理部１１２は、ステップＳ１４にて行われた設定に基づいて、マッチング用点群情報を生成する。また、アノテーション処理部１１２は、生成したマッチング用点群情報を選択用データ格納部１１１に格納する。
ステップＳ１６において、マッチング部１１３は、選択用データ格納部１１１に格納されたマッチング用点群情報を用いて、マッチング及びワーク５０の取り出しを行うことにより、マッチング用点群情報に評価値を付与する。マッチング部１１３は、評価値を付与したマッチング用点群情報を、選択用データ格納部１１１に格納する。
【００９１】
ステップＳ１７において、マッチング部１１３は、追加でマッチング用点群情報が必要であるか否かを判定する。評価値が所定の値以上のマッチング用点群情報を、所定数以上記憶している場合には、ステップＳ１７においてＮｏと判定され、処理はステップＳ１８に進む。一方で、評価値が所定の値以上のマッチング用点群情報を、所定数以上記憶していない場合には、ステップＳ１７においてＹｅｓと判定され、処理はステップＳ１１に戻り、処理を再度繰り返す。
【００９２】
ステップＳ１８において、学習処理部１４１は、学習部１４が記憶するマッチング用点群情報を入力データとし、このマッチング用点群情報に付与された評価値をラベルとした学習を行う。これにより、学習済モデルが作成され、学習済モデル格納部１４２に格納される。
【００９３】
次に、図９Ｂを参照して、切り抜き処理時の動作について説明をする。
ステップＳ１９において、切り抜き部１１４は、３次元計測機４０から、バラ積みされたワーク５０を計測することにより生成された距離画像を取得する。
【００９４】
ステップＳ２０において、切り抜き部１１４は、取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ（すなわち、マッチング用点群情報と同じ大きさ）の距離画像を取り出し位置候補として切り抜く。そして、切り抜き部１１４は、この取り出し位置候補の３次元点群情報を取得する。また、切り抜き部１１４は、取得した、取り出し位置候補の３次元点群情報を選択用データ格納部１１１に格納する。推定処理部１４３は、選択用データ格納部１１１に格納された、全ての取り出し位置候補の３次元点群情報それぞれを、学習済モデルに対して入力し、それぞれの取り出し位置候補についての評価値を出力として得る。推定処理部１４３は、この出力を切り抜き部１１４に対して通知する。
【００９５】
ステップＳ２１において、切り抜き部１１４は、学習済モデルから出力される評価値が高い切り抜き画像に対応付けて記憶している位置を取り出し位置として選択する。切り抜き部１１４は、選択した取り出し位置をロボット制御装置２０に対して送信する。そして、ロボット制御装置２０が、受信した取り出し位置に基づいてロボット３０を制御することにより、ワーク５０の取り出しを試みる。上述したように、ワーク５０の取り出しを試みた結果、取り出しに成功することも、失敗することもあり得る。そこで、切り抜き部１１４は、ワーク５０の取り出しの成否に応じて取り出し位置候補に評価値を付与する。
【００９６】
ステップＳ２２において、学習処理部１４１は、ステップＳ２１において評価値が付与された取り出し位置候補を教師データとした学習を行うことにより、学習済モデルを更新するか否かを判定する。ミニバッチ学習を行う場合であれば、教師データが所定数記録されたことや、前回の学習から所定時間経過した場合に、ステップＳ２３においてＹｅｓと判定され、処理はステップＳ２４に進む。一方で、教師データが所定数以下しか記録されていないことや、前回の学習から所定時間経過していない場合に、ステップＳ２３においてＮｏと判定され、処理はステップＳ２４に進む。なお、オンライン学習であれば、ステップＳ２３においてＹｅｓと判定され、処理はステップＳ２４に進む。
【００９７】
ステップＳ２４において、学習処理部１４１は、取り出し位置候補の３次元点群データを入力データとし、この入力データとした取り出し位置候補に付与された評価値をラベルとして、上述の学習を行う。これにより、学習済モデル格納部１４２に格納されている学習済モデルを更新する。
【００９８】
ステップＳ２４において、切り抜き部１１４は、取り出しを続けるか否かを判定する。評価値の取り出し位置候補が存在し、この取り出し位置候補を対象とした取り出しを行っていない場合には、未だ取り出していないワーク５０が存在すると考えられるので、ステップＳ２４においてＹｅｓと判定され、処理はステップＳ２０に進む。一方で、全ての評価値の高い取り出し位置候補を対象とした取り出しを行っている場合には、全てのワーク５０が取り出されたと考えられるので、ステップＳ２４においてＮｏと判定され処理は終了する。
【００９９】
以上説明した第１の実施形態のマッチング処理によれば、ステップＳ１３においてユーザからの取り出し位置の教示を受けた後は、ユーザからの新たな教示を受けなくとも、記憶したマッチング用点群情報（教示位置の３次元点情報と、教示位置を中心とした教示位置近傍画像データ）に基づいて、３次元計測機４０により計測された距離画像とのマッチングを用いた探索を行うことで、取り出し位置を選択することが可能となる。また、第１の実施形態のマッチング処理によれば、ユーザは取り出し位置を教示するのみであり、探索アルゴリズムの選択等の経験に基づく知識を必要としない。更に、第１の実施形態のマッチング処理によれば、ＣＡＤデータを利用しないので、ＣＡＤデータを準備する手間が省ける。
つまり、第１の実施形態のマッチング処理によれば、従来に比べて、より簡便な方法でワーク５０の取り出し位置を選択することができる。
【０１００】
また、第１の実施形態の切り抜き処理によれば、更に、マッチング用点群情報に基づいて、学習モデルを構築し、構築した学習モデルに基づいて、距離画像から自動的に切り抜いた画像データから取り出し位置を選択することが可能となり、より効率的に、より精度高く取り出し位置を選択することができる。
更に、第１の実施形態の切り抜き処理によれば、取り出しの継続に伴い、新たな教師データを取得することができるので、構築した学習モデルをリアルタイムに更新していくことができる。
【０１０１】
＜第２の実施形態＞
次に第２の実施形態について詳細に説明する。なお、第２の実施形態の基本的な構成は、第１の実施形態と共通する。例えば、第２の実施形態に係るロボットシステム１ｂの全体構成は、図１に示す第１の実施形態に係るロボットシステム１ａの全体構成と同様の構成であり、画像処理装置１０ａを、第２の実施形態の画像処理装置である画像処理装置１０ｂに置き換えることにより、第２の実施形態の構成となる。
以下では重複する説明を避けるために、このように両実施形態で共通する点についての説明は省略し、両実施形態で相違する点について詳細に説明する。
【０１０２】
＜第１の実施形態と第２の実施形態の相違点の概略＞
第１の実施形態では学習を行うにあたり、画像処理装置１０ａが、３次元計測機４０から取得した距離画像に対してマッチングを行い、マッチング用点群情報を作成するという前処理をしていた。そして、画像処理装置１０ａが、このマッチング用点群情報を学習モデルの入力データとし、このマッチング用点群情報に付与された評価値をラベルとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行っていた。
【０１０３】
あるいは、第１の実施形態では、画像処理装置１０ａが、３次元計測機４０から取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ（すなわち、マッチング用点群情報と同じ大きさ）の距離画像を、取り出し位置候補として切り抜くという前処理をしていた。そして、画像処理装置１０ａが、この切り抜いた取り出し位置候補の３次元点群情報を学習モデルの入力データとし、この３次元点群情報に付与された評価値をラベルとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行っていた。
【０１０４】
これに対して、第２の実施形態ではこのマッチングや切り抜きといった前処理を省略し、３次元計測機４０から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行う。
【０１０５】
第２の実施形態を適用する環境にもよるが、このように前処理を省略することにより、第２の実施形態では、演算処理を効率的に行うことや、実装を容易とすることが可能となる。また、第２の実施形態では、このように距離画像全体を学習モデルの入力データとすることにより、画像中で遠く離れたピクセル間の影響を考慮することも可能となる。
【０１０６】
＜画像処理装置１０ｂの機能ブロック＞
次に、前処理を省略して、距離画像全体を学習モデルの入力データとするために、画像処理装置１０ｂが備える各機能ブロックについて図１０を参照して説明をする。
なお、図１０では図２と同様に、ロボットシステム１ｂにおける、画像処理装置１０ｂ以外の構成要素を環境１００としてまとめて図示する。
【０１０７】
画像処理装置１０ｂは、画像処理装置１０ａが備える選択処理部１１に代えて、選択処理部１５を備える点で相違する。すなわち、画像処理装置１０ｂは、選択処理部１５、表示部１２、操作受付部１３、及び学習部１４を備える。
また、選択処理部１５は、教師データ格納部１５１、アノテーション処理部１５２及び取り出し位置選択部１５３を備える。
【０１０８】
教師データ格納部１５１は、機械学習を行うための教師データを格納する部分である。３次元計測機４０から入力された距離画像は、教師データにおける入力データとして教師データ格納部１５１に格納される。また、アノテーション処理部１５２が生成したラベルは、教師データにおける入力データとして教師データ格納部１５１に格納される。
この、入力データとラベルとは、アノテーション処理部１５２によるラベルの格納時に紐付けられる。
【０１０９】
アノテーション処理部１５２は、教師データに含まれるラベルを生成する部分である。アノテーション処理部１５２は、ラベルを生成するために、教師データ格納部１５１から距離画像を取得する。また、アノテーション処理部１５２は、取得した距離画像を表示部１２に表示する。距離画像の表示例については図４を参照して上述したとおりである。
【０１１０】
ユーザは、表示された距離画像を参照すると、第１の実施形態と同様にして、取り出し位置の教示を行う。具体的には、マウスやタッチパネルにより実現される操作受付部１３を利用して、取り出し位置を指定することにより、取り出し位置の教示を行う。
【０１１１】
操作受付部１３は、教示された取り出し位置である教示位置をアノテーション処理部１５２に対して通知する。アノテーション処理部１５２は、この通知された教示位置をユーザが認識できるように、距離画像上の教示位置に対して描画を行う。描画は、例えば、距離画像上の教示位置の画素の色を変更する等の、ユーザが把握しやすい方法により行う。描画を行った場合の表示例については図５を参照して上述したとおりである。
【０１１２】
ここで、第１の実施形態では、ユーザが取り出し位置を点により教示していた。これに対して、第２の実施形態では、ユーザが取り出し位置を所定の領域として教示する。例えば、第２の実施形態では、ユーザは取り出し可能な領域に色を塗ることにより取り出し位置の教示を行う。
【０１１３】
アノテーション処理部１５２は、ユーザによる教示に基づいて、距離画像全体に含まれる各画素について、ワーク５０の取り出し位置（すなわち、教示位置）であるか否かを示す属性（例えば、ワーク５０の取り出し位置は「１」。ワーク５０の取り出し位置以外の位置については「０」）を割り当てた画像を生成する。以下では、この画像を「ラベル用マップ」と呼ぶ。
【０１１４】
第２の実施形態では、このラベル用マップをラベルとして利用する。また、アノテーション処理部１５２は、ラベル用マップを生成するにあたり、各画素についてワーク５０の取り出し位置であるか否かを示す属性を割り当てるのではなく、更に１／ｓ（ｓは任意の自然数）に分解能を上げて、１／ｓ画素毎にワーク５０の取り出し位置であるか否かを示す属性を割り当てるようにしてもよい。また、ラベルとして３次元点群情報は不要であるので、ラベル用マップでは距離画像に含まれる３次元点群情報を削除してよい。従って、ラベル用マップは、距離画像における、各画素（又は１／ｓとした各画素）の２次元座標の情報と、各画素（又は１／ｓとした各画素）についてワーク５０の取り出し位置であるか否かを示す属性の情報とを含んだ画像となる。
【０１１５】
アノテーション処理部１５２は、生成したラベル用マップをラベルとし、ユーザからの教示のために用いた距離画像を入力データとして、両者を紐付けることにより教師データを生成する。そして、アノテーション処理部１５２は、生成した教師データを教師データ格納部１５１に格納する。なお、アノテーション処理部１５２は、入力データとラベルとを紐付けて教師データ格納部１５１に格納するのではなく、別途に教師データ格納部１５１に格納し、両者をリンクさせることにより教師データとするようにしてもよい。
第２の実施形態の学習処理部１４１は、機械学習を行う場合に、教師データ格納部１５１に格納されている教師データを用いて機械学習を行う。具体的には、第２の実施形態では、学習処理部１４１による機械学習により、距離画像を入力とした場合に、ラベル用マップと同様の画像が出力される学習モデルを構築する。つまり、取り出し可能な領域をセグメンテーションした画像が出力される学習モデルを構築する。
【０１１６】
この機械学習は、例えば画像を入力し、画像中の全画素ピクセルに対して何らかの推定（例えばクラス分類など）を行う手法により実現することができる。このような手法としては、例えば、Ｓｅｍａｎｔｉｃ  Ｓｅｇｍｅｎｔａｔｉｏｎが挙げられる。Ｓｅｍａｎｔｉｃ  Ｓｅｇｍｅｎｔａｔｉｏｎは、自動車の自動運転への応用を目指した技術であり、例えば写真の画像データを入力として、車、歩行者などの領域毎に色分けすることができる。
第２の実施形態では、上述したように、入力データを距離画像、ラベルを距離画像に対するアノテーション（例えばワーク５０を取り出せそうな位置に人間が色を塗った画像）にして機械学習を行うことで、全画素に対する評価値推定を一度に行うことができる。そのため、第１の実施形態での、マッチング処理や切り抜き処理といった前処理を省略することができる。
【０１１７】
具体的に、第２の実施形態の機械学習は、例えば以下の参考文献に開示されているコンボリューション  エンコーダ−デコーダを利用することにより実現できる。
【０１１８】
＜参考文献＞
Vijay Badrinarayanan, Alex Kendall, Roberto Cipolla、"SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation"、［online］、平成２８年８月１０日、［平成２９年９月１０日検索］、インターネット〈URL：https://arxiv.org/pdf/1511.00561.pdf〉
【０１１９】
学習処理部１４１は、機械学習により学習済モデルを構築する。そして、学習処理部１４１は、構築した学習済モデルを、学習済モデル格納部１４２に格納する。
【０１２０】
取り出し位置選択部１５３は、推定処理部１４３が出力する評価値マップに基づいて、取り出し位置を選択する部分である。取り出し位置選択部１５３による取り出し位置の選択と、評価値マップの詳細について以下説明する。
取り出し位置選択部１５３は、取り出し位置を選択するために次元計測機４０から距離画像を取得すると、取得した距離画像を推定処理部１４３に対して出力する。推定処理部１４３は、入力された距離画像を入力データとして、学習済モデル格納部１４２に格納されている学習済モデルに入力する。この入力に応じて、学習済モデルからは、取り出し可能な領域をセグメンテーションした画像が出力される。この出力された画像を「評価値マップ」と呼ぶ。
評価値マップは、ラベル用マップと同様のデータ構造であり、各画素（又は１／ｓとした各画素）の２次元座標の情報と、各画素（又は１／ｓとした各画素）についてワーク５０の取り出し位置であるか否かを示す属性の情報とを含んだ画像となる。
推定処理部１４３は、評価値マップを取り出し位置選択部１５３に対して出力する。
【０１２１】
取り出し位置選択部１５３は、評価値マップに基づいてワーク５０の取り出し位置を選択する。具体的には、ワーク５０の取り出し位置としてセグメンテーションされている各区画を取り出し位置の候補とする。そして、取り出し位置の候補の領域を示す座標情報に基づいて、入力データとした距離画像上で、取り出し位置の候補に対応する領域を特定する。そして、この特定した領域に対して、既知の点群処理や画像処理を行うことにより取り出し位置を選択する。
【０１２２】
取り出し位置選択部１５３は、選択した取り出し位置をロボット制御装置２０に対して出力する。その後、第１の実施形態と同様に、ロボット制御装置２０が、取り出し位置に基づいて制御信号を生成する。そして、ロボット３０が制御信号に基づいてハンドによりワーク５０を取り出す。
【０１２３】
以上説明した構成により、第２の実施形態では、マッチングや切り抜きといった前処理を省略し、３次元計測機４０から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行うことができる。
【０１２４】
＜第２の実施形態の動作＞
次に、図１１のフローチャートを参照して、第２の実施形態の動作について説明をする。
ステップＳ３１において、教師データ格納部１５１は、３次元計測機４０がバラ積みされたワーク５０を計測することにより生成した距離画像を格納する。
ステップＳ３２において、アノテーション処理部１５２は、教師データ格納部１５１に格納されている距離画像を表示部１２に表示させる。
ステップＳ３３において、アノテーション処理部１５２は、操作受付部１３が受け付けたユーザからの取り出し位置の教示に基づいて、距離画像上に教示位置を描画する。
【０１２５】
ステップＳ３４において、アノテーション処理部１５２は、ユーザからの教示に基づいてラベル用マップを生成する。アノテーション処理部１５２は、ラベル用マップと距離画像とを教師データとして教師データ格納部１５１に格納する。
【０１２６】
ステップＳ３５において学習処理部１４１は、教師データ格納部１５１に格納されている教師データにおける、距離画像を入力データとし、この距離画像に対応するラベル用マップをラベルとした学習を行う。これにより、学習済モデルが作成され、学習済モデル格納部１４２に格納される。
【０１２７】
ステップＳ３６において、取り出し位置選択部１５３は、３次元計測機４０から、バラ積みされたワーク５０を計測することにより生成された距離画像を取得する。そして、取り出し位置選択部１５３は、取得した距離画像を推定処理部１４３に対して出力する。
【０１２８】
ステップＳ３７において、推定処理部１４３は、入力された距離画像を、学習済モデル格納部１４２に格納されている学習済モデルに入力する。そして、推定処理部１４３は、学習済モデルの出力として評価値マップを取得する。推定処理部１４３は、取得した評価値マップを取り出し位置選択部１５３に対して出力する。
【０１２９】
ステップＳ３８において、取り出し位置選択部１５３は評価値マップに基づいて取り出し位置を選択する。取り出し位置選択部１５３は、選択した取り出し位置をロボット制御装置２０に対して送信する。
【０１３０】
ステップＳ３９において、ロボット制御装置２０が、受信した取り出し位置に基づいてロボット３０を制御することにより、ワーク５０の取り出しを行う。なお、ワーク５０を複数取り出す場合は、ステップＳ３８において複数の取り出し位置を選択し、ステップＳ３９においてこの複数の取り出し位置それぞれについて取り出しを実行するようにしてもよい。ただし、ワーク５０を取り出すことにより、ワーク５０のバラ積みの状態が変わるので、ワーク５０を取り出す度に、ステップＳ３６に戻って処理を繰り返すようにしてもよい。
【０１３１】
以上説明した構成により、第２の実施形態では、マッチングや切り抜きといった前処理を省略し、３次元計測機４０から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行うことができる。
【０１３２】
＜ハードウェアとソフトウェアの協働＞
なお、上記のロボットシステムに含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のロボットシステムに含まれる各装置のそれぞれの協働により行なわれる機械学習方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１３３】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１３４】
＜実施形態の変形＞
また、上述した各実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、各実施形態を組み合わせた形態や、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１３５】
＜変形例１＞
上述した各実施形態では、画像処理装置１０ａ又は画像処理装置１０ｂと、ロボット制御装置２０を別体の装置としていたが、これら装置を一体として実現してもよい。
【０１３６】
＜変形例２＞
また、上述した各実施形態では、ロボット制御装置２０と、画像処理装置１０ａ又は画像処理装置１０ｂが近傍にいるように図示したが、これらがＬＡＮ（Local Area Network）やインターネット等のネットワークを介した遠方に位置していてもよい。
【０１３７】
また、１台の画像処理装置１０ａ又は画像処理装置１０ｂが、複数台のロボット制御装置２０と接続されていてもよい。そして、１台の画像処理装置１０ａ又は画像処理装置１０ｂが、この複数台のロボット制御装置２０のそれぞれから取得した教師データに基づいて学習を行うようにしてもよい。
【０１３８】
＜変形例３＞
また、上述した各実施形態では、３次元計測機４０は所定位置に固定して設置されているものとして説明したが、必ずしも所定位置に固定されていなくともよい。例えば、３次元計測機４０はロボット３０を制御するための機械座標系における位置がわかるのであれば、ロボット３０のアームに取り付けるなど、設置位置が実施中に変更される形態でもよい。
【０１３９】
＜変形例４＞
更に、上述した各実施形態では、画像処理装置１０ａ又は画像処理装置１０ｂを１台の装置で実現することを想定したが、画像処理装置１０ａ又は画像処理装置１０ｂの各機能を、適宜複数の装置に分散する、分散処理システムとしてもよい。例えば、画像処理装置１０ａの選択処理部１１又は画像処理装置１０ｂの選択処理部１５の機能と、学習部１４の機能とを適宜複数の装置に分散する、分散処理システムとしてもよい。この場合に、学習部１４に含まれる各機能ブロック単位で適宜複数の装置に分散する、分散処理システムとしてもよい。また、クラウド上での仮想サーバ機能等を利用して、画像処理装置１０ａ又は画像処理装置１０ｂの各機能を実現してもよい。
【０１４０】
＜変形例５＞
更に、上述した第１の実施形態では、マッチング処理を行い、マッチングした位置において実際に試みた取り出し結果の成否に基づいて学習済モデルを構築していた。また、このようにマッチング処理により構築した学習モデルを利用して、その後切り抜き処理を行っていた。
しかしながら、切り抜き処理を行う場合には、必ずしもマッチング処理により構築した学習モデルを利用しなくてもよい。
【０１４１】
この場合、学習処理部１４１が、ユーザにより教示された教示点における取り出しは、成功するものであるとみなして学習モデルを構築する。つまり、学習部１４が、教示位置近傍画像データを入力データとし、取り出しが成功した（とみなした）ことを示す評価値をラベルとして、教師データを作成する。そして、学習処理部１４１が、この教師データによる学習によって学習モデルを構築する。
【０１４２】
選択処理部１１は、このようにして構築した学習モデルを用いて、切り抜き処理を行うことができる。これにより、選択処理部１１は、マッチング処理や、実際の取り出しを行うことなく、学習モデルを構築して、取り出し位置を選択することが可能となる。
なお、この場合に学習処理部１４１が、ユーザからの教示位置とは異なる位置（非教示位置）の近傍のデータである非教示位置近傍画像データを取得するようにしてもよい。そして、学習処理部１４１が、非教示位置近傍画像データを入力データとし、取り出しが失敗した（とみなした）ことを示す評価値をラベルとして、失敗例を示す教師データを作成するようにしてもよい。そして、学習処理部１４１が、この失敗例を示す教師データを更に用いて学習を行うようにしてもよい。この場合に、非教示位置は、ユーザにより選択されるようにしてもよいし、教示位置以外の位置からランダムに選択されるようにしてもよい。
【０１４３】
ここで、以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
前記３次元計測機により生成された前記距離画像を表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すロボットシステム。
（付記２）
前記表示部は、前記表示された距離画像上に前記教示された取り出し位置を描画する付記１に記載のロボットシステム。
（付記３）
前記教示された取り出し位置及びその近傍の３次元点群の情報を探索用情報として記憶し、前記距離画像に対して、前記探索用情報による探索を行うことにより、新たな取り出し位置を選択する取り出し位置選択部を備え、
前記ロボットは、前記取り出し位置選択部によって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出す付記１又は付記２に記載のロボットシステム。
（付記４）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
前記３次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、
前記教示された取り出し位置及びその近傍の３次元点群の情報を入力データとし、該入力データとした３次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された３次元点群の情報についての評価値を出力する学習モデルを構築する学習部と、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すロボットシステム。
（付記５）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
前記３次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、
前記教示された取り出し位置及びその近傍の３次元点群の情報を入力データとし、該入力データとした３次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された３次元点群の情報についての評価値を出力する学習モデルを構築する学習部と、
前記距離画像から所定領域の距離画像を切り抜き、切り抜かれた前記距離画像の３次元点群の情報を前記学習モデルに入力データとして入力することにより出力される前記３次元点群の情報についての評価値に基づいて、新たな取り出し位置を選択する取り出し位置選択部と、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出し、前記取り出し位置選択部によって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出すロボットシステム。
（付記６）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
前記３次元計測機により生成された前記距離画像に基づいて前記複数のワークの少なくとも１つを前記ハンドにより取り出しを行うための取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも１つの評価値からなる評価値マップを出力する推定部と、
前記推定部により出力された前記評価値マップに基づいて前記ハンドが取り出す前記複数のワークの少なくとも１つの取り出し位置を選択する位置選択部と、
を備え、
前記ロボットは、前記位置選択部により選択した前記取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すロボットシステム。
（付記７）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
前記３次元計測機により生成された前記距離画像を機械学習用の教師データとして格納する教師データ格納部と、
前記教師データ格納部に格納された前記距離画像を表示する表示部と、
前記表示部に表示された前記距離画像に基づく少なくとも１つの教示位置の教示を受け付ける受付部と、
前記受付部で受け付けた前記教示位置に基づき少なくとも１つの教示位置を示すラベルマップを生成し、該ラベルマップと前記教師データ格納部に格納された前記距離画像とを関連づけてデータセットとして前記教師データ格納部に保存するアノテーション処理部と、
前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、学習済モデルを出力する学習処理部と、
前記学習処理部から出力された前記学習済モデルを格納する学習済モデル格納部と、
前記学習済モデル格納部に格納された前記学習済モデルと、前記３次元計測機により新たに生成された新たな複数のワークの距離画像に基づいて前記新たな複数のワークの少なくとも１つを前記ハンドにより取り出す際の取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも１つの評価値からなる評価値マップを出力する推定部と、
前記推定部により出力された前記評価値マップに基づいて前記ハンドが取り出す前記新たな複数のワークの少なくとも１つの取り出し位置を選択する位置選択部と、
を備え、
前記ロボットは、前記位置選択部により選択した前記取り出し位置に基づいて前記ハンドにより前記新たな複数のワークの少なくとも１つを取り出すロボットシステム。
（付記８）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記３次元計測機により生成された前記距離画像を表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
を備え、
前記ロボットが前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すワーク取り出し方法。
（付記９）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記３次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
前記教示された取り出し位置及びその近傍の３次元点群の情報を入力データとし、該入力データとした３次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された３次元点群の情報についての評価値を出力する学習モデルを構築する学習ステップと、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すワーク取り出し方法。
（付記１０）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記３次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
前記教示された取り出し位置及びその近傍の３次元点群の情報を入力データとし、該入力データとした３次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された３次元点群の情報についての評価値を出力する学習モデルを構築する学習ステップと、
前記距離画像から所定領域の距離画像を切り抜き、切り抜かれた前記距離画像の３次元点群の情報を前記学習モデルに入力データとして入力することにより出力される前記３次元点群の情報についての評価値に基づいて、新たな取り出し位置を選択する取り出し位置選択ステップと、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出し、前記取り出し位置選択ステップによって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出すワーク取り出し方法。
（付記１１）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記３次元計測機により生成された前記距離画像に基づいて前記複数のワークの少なくとも１つを前記ハンドにより取り出しを行うための取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも１つの評価値からなる評価値マップを出力する推定ステップと、
前記推定ステップにて出力された前記評価値マップに基づいて前記ハンドが取り出す前記複数のワークの少なくとも１つの取り出し位置を選択する位置選択ステップと、
を備え、
前記ロボットが前記位置選択ステップにて選択した前記取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも１つを取り出すワーク取り出し方法。
（付記１２）
複数のワークの距離画像を生成する３次元計測機と、
前記複数のワークの少なくとも１つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記３次元計測機により生成された前記距離画像を機械学習用の教師データとして教師データ格納部に格納する教師データ格納ステップと、
前記教師データ格納部に格納された前記距離画像を表示する表示ステップと、
前記表示ステップにて表示された前記距離画像に基づく少なくとも１つの教示位置の教示を受け付ける受付ステップと、
前記受付ステップにて受け付けた前記教示位置に基づき少なくとも１つの教示位置を示すラベルマップを生成し、該ラベルマップと前記教師データ格納部に格納された前記距離画像とを関連づけてデータセットとして前記教師データ格納部に保存するアノテーション処理ステップと、
前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、学習済モデルを出力する学習処理ステップと、
前記学習処理ステップにて出力された前記学習済モデルを学習済モデル格納部に格納する学習済モデル格納ステップと、
前記学習済モデル格納部に格納された前記学習済モデルと、前記３次元計測機により新たに生成された新たな複数のワークの距離画像に基づいて前記新たな複数のワークの少なくとも１つを前記ハンドにより取り出す際の取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも１つの評価値からなる評価値マップを出力する推定ステップと、
前記推定ステップにて出力された前記評価値マップに基づいて前記ハンドが取り出す前記新たな複数のワークの少なくとも１つの取り出し位置を選択する位置選択ステップと、
を備え、
前記ロボットが前記位置選択ステップにより選択した前記取り出し位置に基づいて前記ハンドにより前記新たな複数のワークの少なくとも１つを取り出すワーク取り出し方法。
【符号の説明】
【０１４４】
１ａ、１ｂ  ロボットシステム
１０ａ、１０ｂ  画像処理装置
１１  選択処理部
１１１  選択用データ格納部
１１２  アノテーション処理部
１１３  マッチング部
１１４  切り抜き部
１２  表示部
１３  操作受付部
１４  学習部
１４１  学習処理部
１４２  学習済モデル格納部
１４３  推定処理部
１５  選択処理部
１５１  教師データ格納部
１５２  アノテーション処理部
１５３  取り出し位置選択部
２０  ロボット制御装置
３０  ロボット
４０  ３次元計測機
５０  ワーク
６０  コンテナ
【図１】
2020110920.tif 000003
【図２】
2020110920.tif 000004
【図３】
2020110920.tif 000005
【図４】
2020110920.tif 000006
【図５】
2020110920.tif 000007
【図６】
2020110920.tif 000008
【図７】
2020110920.tif 000009
【図８】
2020110920.tif 000010
【図９Ａ】
2020110920.tif 000011
【図９Ｂ】
2020110920.tif 000012
【図１０】
2020110920.tif 000013
【図１１】
2020110920.tif 000014
【手続補正書】
【提出日】令和2年5月28日(2020.5.28)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、物体の取り出しのための処理を行う、装置、ロボットシステム、モデル生成方法、及びモデル生成プログラムに関する。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリと、
少なくとも１つのプロセッサと、を備え、
前記少なくとも１つのプロセッサは、
複数の物体の少なくとも１つをハンドにより取り出すための、前記複数の物体を含む画像における位置の教示を取得することと、
少なくとも前記教示された位置に応じた点群の情報を取得することと、
前記教示、及び、前記教示に基づく前記物体の取り出しの成否の少なくともいずれか１つに応じた評価値を付与することと、
取得された前記点群の情報を入力データとし、前記評価値をラベルとした機械学習を行うことにより、前記物体を取り出すための評価値を出力する学習モデルを学習することと、を実行可能に構成される、装置。
【請求項２】
前記位置の教示は、前記位置を点及び領域のいずれかで示したものである、
請求項１に記載の装置。
【請求項３】
前記点群の情報は、距離画像から取得される、
請求項１又は請求項２に記載の装置。
【請求項４】
前記少なくとも１つのプロセッサは、取り出しに失敗した場合、取り出しに成功した場合より低い評価値を付与する、
請求項１から請求項３のいずれか１項に記載の装置。
【請求項５】
前記学習モデルが出力する前記評価値は、前記入力データにおける取り出し可能な領域を示す情報である、
請求項１から請求項４のいずれか１項に記載の装置。
【請求項６】
前記学習モデルはニューラルネットワークである、請求項１から請求項５のいずれか１項に記載の装置。
【請求項７】
前記教示に基づく前記物体の取り出しの成否は、前記ハンドを用いて、前記教示された位置における前記物体の取り出しを試みることで取得される、
請求項１から請求項６のいずれか１項に記載の装置。
【請求項８】
前記ハンドを有するロボットと、
前記複数の物体の画像を生成する計測機と、
請求項１から請求項７のいずれか１項に記載の装置で学習された学習モデルと、
前記画像から取得した点群の情報を前記学習モデルに入力することで得られる評価値に基づいて、前記ロボットによる取り出し動作を制御する制御装置と、
を備えるロボットシステム。
【請求項９】
前記計測機は、距離画像センサ又はステレオカメラのいずれかである、
請求項８に記載のロボットシステム。
【請求項１０】
少なくとも１つのプロセッサにより実行されるモデル生成方法であって、
複数の物体の少なくとも１つをハンドにより取り出すための、前記複数の物体を含む画像における位置の教示を取得するステップと、
少なくとも前記教示された位置に応じた点群の情報を取得するステップと、
前記教示、及び、前記教示に基づく前記物体の取り出しの成否の少なくともいずれか１つに応じた評価値を付与するステップと、
取得された前記点群の情報を入力データとし、前記評価値をラベルとした機械学習を行うことにより、前記物体を取り出すための評価値を出力する学習モデルを学習するステップと、
を備えるモデル生成方法。
【請求項１１】
複数の物体の少なくとも１つをハンドにより取り出すための、前記複数の物体を含む画像における位置の教示を取得するステップと、
少なくとも前記教示された位置に応じた点群の情報を取得するステップと、
前記教示、及び、前記教示に基づく前記物体の取り出しの成否の少なくともいずれか１つに応じた評価値を付与するステップと、
取得された前記点群の情報を入力データとし、前記評価値をラベルとした機械学習を行うことにより、前記物体を取り出すための評価値を出力する学習モデルを学習するステップと、少なくとも１つのプロセッサに実行させるためのモデル生成プログラム。