【文献】
長場 景子,PFNが世界に見せた最先端ディープラーニング技術ピッキングロボ競技会で物体の把持位置推定にも,日経Robotics,日本,日経BP社,2016年 9月10日,2016年10月号,第16−22ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記画像から所定領域の画像を切り抜き、切り抜かれた前記画像の点群の情報を前記学習モデルに入力データとして入力することにより出力される前記点群の情報についての評価値に基づいて、前記ハンドによる新たな取り出し位置を選択する取り出し位置選択部、
をさらに備える、請求項1に記載の装置。
【発明を実施するための形態】
【0023】
次に、本発明の実施形態について図面を参照して詳細に説明をする。
以下では、第1の実施形態と第2の実施形態の2つの実施形態について説明を行う。ここで、各実施形態は、ワークの取り出し位置を選択するという構成において共通する。
ただし、取り出し位置の選択の処理において、第1の実施形態では画像のマッチング処理や画像を切り抜く処理といった前処理を行うのに対し、第2の実施形態ではこのような前処理を省略する点で相違する。
以下では、まず第1の実施形態について詳細に説明し、次に第2の実施形態において特に第1の実施形態と相違する部分について説明を行う。
【0024】
<実施形態全体の構成>
図1を参照して、第1の実施形態に係るロボットシステム1aの構成について説明する。ロボットシステム1aは、画像処理装置10a、ロボット制御装置20、ロボット30、3次元計測機40、複数のワーク50、及びコンテナ60を備える。
画像処理装置10aは、ロボット制御装置20や3次元計測機40と通信可能に接続されている。また、ロボット制御装置20は、画像処理装置10aに加え、ロボット30とも通信可能に接続されている。
【0025】
まず、ロボットシステム1aの概略について説明する。
ロボットシステム1aでは、バラ積みされた状態を含む乱雑に置かれた複数のワーク50を3次元計測機40で計測して距離画像を生成する。
【0026】
そして、画像処理装置10aを用いて、距離画像からワーク50の取り出し位置を選択するための教示を行う。この教示は、距離画像に対して、ユーザが直接ワーク50の取り出し位置を教示することにより行われる。具体的には、画像処理装置10aは、距離画像を画像表示部に当該距離画像を構成する各画素の高さの違いが把握できるように、例えばグレースケール又はRGBのグラデーション等により表示させる。
【0027】
これを参照したユーザが、マウスの操作等で例えば取り出し位置候補として適切な箇所を選択して、ワーク50の取り出し位置として指定すると、画像処理装置10aは、表示した距離画像に対してユーザにより教示された取り出し位置(以下「教示位置」という)を描画する。また、画像処理装置10aは、ユーザにより教示された取り出し位置周辺の距離画像のデータ(以下「教示位置近傍画像データ」という)を取得して記憶する。なお、取り出し位置候補として適切な箇所とは、例えば3次元点の高さの高い箇所である。
【0028】
その後にワーク50の取り出し位置の選択を行う場合、画像処理装置10aは、記憶している教示位置近傍画像データとマッチングする画像領域を距離画像にて探索する。そして、画像処理装置10aは、マッチングした画像領域を新たな教示位置近傍画像データとし、当該画像データの例えば中心位置を新たな取り出し位置として選択する。このように、画像処理装置10aは、ユーザの教示に基づいて記憶した教示位置近傍画像データにより新たな取り出し位置を選択することができるので、ユーザからの新たな教示を受けなくとも、ワーク50の取り出し位置を選択することが可能となる。
このような構成により、ロボットシステム1aでは、従来に比べて、より簡便な方法でワーク50の取り出し位置を選択することができる。
また、ロボット制御装置20は、画像処理装置10aが選択したワーク50の取り出し位置に対して取り出しを行うための制御信号を生成する。そして、ロボット30が、ロボット制御装置20の生成した制御信号に基づいてワーク50の取り出しを実行する。このような構成により、ロボットシステム1aでは、選択した取り出し位置に基づいて、実際にワーク50を取り出すこともできる。
【0029】
更に、画像処理装置10aは、教示結果に基づいて機械学習を行い、ワーク50の取り出し位置を選択するための学習モデルを構築する。そして、画像処理装置10aは、構築した学習モデルに基づいて、距離画像から新たな取り出し位置を選択する。
このような構成により、ロボットシステム1aでは、より精度高く取り出し位置を選択することができる。
以上がロボットシステム1aの概略である。次に、ロボットシステム1aに含まれる各装置について説明を行う。
【0030】
画像処理装置10aは、距離画像を用いた教示や機械学習を行うための装置である。画像処理装置10aの詳細については、
図2の機能ブロック図を参照して後述する。
【0031】
ロボット制御装置20は、ロボット30の動作を制御するための装置である。ロボット制御装置20は、画像処理装置10aが選択したワーク50の取り出し位置等の情報に基づいて、ロボット30の動作を制御するための制御信号を生成する。そして、ロボット制御装置20は、生成した制御信号をロボット30に対して出力する。
【0032】
なお、画像処理装置10aやロボット制御装置20は、予め行われたキャリブレーションにより、ロボット30を制御するための機械座標系と、ワーク50の取り出し位置を示すカメラ座標系とを対応付けているものとする。
【0033】
ロボット30は、ロボット制御装置20の制御に基づいて動作するロボットである。ロボット30は、鉛直方向の軸を中心に回転するためのベース部や、移動及び回転するアームや、ワーク50を把持するためにアームに装着されるハンドを備える。
ロボット30は、ロボット制御装置20が出力する制御信号に応じて、アームやハンドを駆動して、ハンドを教示位置まで移動させて、バラ積みされたワーク50を把持してコンテナ60から取り出す。
なお、取り出したワーク50の移載先については図示を省略する。また、ロボット30やハンドの具体的な構成については、当業者によく知られているので、詳細な説明を省略する。
【0034】
3次元計測機40は、コンテナ60内のワーク50を計測することにより、距離画像を生成する。3次元計測機40は、例えば、前述したように距離画像センサを備えるカメラ、又はステレオカメラを用いた3次元計測機により実現することができる。ただし、計測の過程で3次元の点群の距離画像を生成することができるのであれば距離画像センサを備えるカメラ、又はステレオカメラを用いた3次元計測機に限定されず、他の方式の3次元計測機によって3次元計測機40を実現してもよい。
3次元計測機40により生成された距離画像は、画像処理装置10aに対して出力される。
【0035】
ワーク50は、コンテナ60内で、バラ積みされた状態を含んで乱雑に置かれる。ワーク50は、ロボット30のアームに装着されたハンドで把持可能なものであればよく、その形状等は特に限定されない。
【0036】
<画像処理装置10aの機能ブロック>
次に、
図2を参照して画像処理装置10aが備える各機能ブロックについて説明をする。なお、
図2では、ロボットシステム1aにおける、画像処理装置10a以外の構成要素を環境100としてまとめて図示する。
【0037】
画像処理装置10aは、選択処理部11、表示部12、操作受付部13、及び学習部14を備える。
【0038】
選択処理部11は、ロボットシステム1aの概略として上述したように、各種の画像処理を行うことにより、ワーク50の取り出し位置を選択する。選択処理部11により行われる画像処理は、大きく区分して、「マッチング処理」と「切り抜き処理」の2つになる。
これらの処理を行うために、選択処理部11は、選択用データ格納部111、アノテーション処理部112、マッチング部113及び切り抜き部114を備える。
選択用データ格納部111は、選択処理部11内の各機能ブロックが利用する各種のデータを格納する部分である。
アノテーション処理部112、ユーザから、ワーク50の取り出し位置の教示を受けるための処理を行う部分である。
マッチング部113は、マッチング処理を行う部分である。また、切り抜き部114は切り抜き処理を行う部分である。
これら選択処理部11が備える各機能ブロックの機能と、マッチング処理及び切り抜き処理の内容については後述する。
【0039】
表示部12は、選択処理部11の出力する画像を表示する部分である。選択処理部11の出力する画像は、例えば、ワーク50を3次元計測機40で計測することにより生成された距離画像や、ユーザの教示した教示位置を距離画像に描画した画像である。表示部12は、例えば、液晶ディスプレイや有機ELディスプレイにより実現される。
【0040】
操作受付部13は、ユーザからの操作を受け付ける部分である。操作受付部13は、例えば、表示部12に表示した距離画像を参照したユーザからワーク50の取り出し位置を教示するための当該取り出し位置を指定する操作を受け付ける。操作受付部13は、例えばマウスやキーボード等により実現される。
【0041】
例えば、ユーザがマウスやキーボードを使用して、表示部12に表示されるカーソルを当該取り出し位置(を示す画像上)に移動させて指定するようにしてもよい。また、タッチパネルにより表示部12と操作受付部13を一体的に実現することで、例えば当該取り出し位置(を示す画像上)をタップすることにより指定するようにしてもよい。
【0042】
学習部14は、機械学習に関する処理を行う部分である。学習部14は、学習処理部141、学習済モデル格納部142、及び推定処理部143を備える。
学習処理部141は、機械学習を実行する部分であり、例えば、畳み込みニューラルネットワーク(コンボリューショナルニューラルネットワーク)を利用した深層学習(ディープラーニング)を行う。
学習済モデル格納部142は、学習処理部141が機械学習において学習中の学習モデルのパラメータや、学習済モデルのパラメータを格納する部分である。
推定処理部143は、選択処理部11による取り出し位置の選択のために、学習済モデル格納部142に格納された学習済モデルを利用した推定を行う。
これら各部により行われる機械学習の詳細な内容は<機械学習>という項目にて後述する。
【0043】
以上、画像処理装置10aに含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、画像処理装置10aは、CPU(Central Processing Unit)等の演算処理装置を備える。また、画像処理装置10aは、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0044】
そして、画像処理装置10aにおいて、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、第1の実施形態の機能ブロックは実現される。つまり、第1の実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0045】
具体例として、画像処理装置10aは、一般的なパーソナルコンピュータやサーバ装置に第1の実施形態を実現するためのアプリケーションソフトウェアを組み込むことより実現できる。
ただし、画像処理装置10aは、学習部14が行う機械学習に伴う演算量が多いため、例えば、コンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。また、コンピュータにFPGA(Field-Programmable Gate Array)を搭載し、FPGAを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。
【0046】
更には、より高速な処理を行うために、このようなGPUやFPGAを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0047】
<マッチング処理>
次に、選択処理部11が行う処理の内容について詳細に説明をする。上述したように、選択処理部11は、「マッチング処理」と「切り抜き処理」の2つの処理を行う。まず、
図3から
図6までを参照してマッチング処理について説明をする。
【0048】
図3に、コンテナ60内に積まれているワーク50を俯瞰した状態を示す。
図3に示すように、ワーク50
は乱雑にバラ積みされており、ワーク50の取り出し位置が教示されることなく、ロボット30のハンドにより当該ワーク50を把持して取り出すことは困難な状態となっている。なお、図中では、図示の都合上一部のワーク50についてのみ符号を付している。
【0049】
3次元計測機40は、コンテナ60内に積まれているバラ積みされたワーク50を計測することにより距離画像を生成する。3次元計測機40は、生成した距離画像を、画像処理装置10aの選択処理部11に対して送信する。選択処理部11が受信した距離画像は、選択用データ格納部111に格納される。
アノテーション処理部112は、ユーザからワーク50の取り出し位置の教示を受けるために、選択用データ格納部111から距離画像を取得する。そして、アノテーション処理部152は、取得した距離画像を表示部12に対して出力する。表示部12は、入力された距離画像を
図4に示すようにして表示する。なお、図中では、図示の都合上一部のワーク50についてのみ符号を付している。
【0050】
3次元計測を行うと、2次元のピクセル上に各ピクセル位置が高さ情報を持つ距離画像を生成することができる。アノテーション処理部112は、距離画像を、各ピクセルが持つ高さ情報をRGBによる色彩の諧調で表現して表示させたり、あるいはグレースケールの濃度で表現して表示させる。教示を行うユーザは、このような表現方法の距離画像を参照することにより深度情報を認識することが可能となる。
【0051】
図4では、特許図面を記載する上の制約から、各ピクセルが持つ高さ情報をハッチングにより表しているが、これに限定されない。例えば、色彩の諧調やグラデーション等により、各ピクセルが持つ高さ情報を表現するようにしてもよい。
図4では、3次元計測機40からの距離が近いもの(つまり、地面からの高さが高いもの)が白色になるようにし、3次元計測機40からの距離が遠いもの(つまり、地面からの高さが低いもの)が黒色になるように表現している。
【0052】
例えば、ワーク50aは、ワーク50bよりも地面から高い位置に存在するので、ワーク50aはワーク50bよりも白色になるようなハッチングがなされている。また、ワーク50bに対応する面は、ワーク50aに対応する面により一部隠れている。ユーザは、これを参照することにより、ワーク50bの上にワーク50aが積まれている状態であることが分かる。
また、例えばワーク50cに対応する面は、場所により高さが異なっている。ユーザは、これを参照することにより、ワーク50cが傾斜して積まれている状態であることが分かる。
【0053】
このように表示部12に表示された距離画像を参照したユーザは、前述したようにマウスやタッチパネルにより実現される操作受付部13を利用して、ワーク50の取り出し位置を指定することにより、ワーク50の取り出し位置の教示を行う。操作受付部13は、教示されたワーク50の取り出し位置である教示位置を、アノテーション処理部112に対して通知する。アノテーション処理部112は、この通知された教示位置をユーザが認識できるように、距離画像上の教示位置に対して描画を行う。描画は、例えば、距離画像上の教示位置の画素の色を変更する等の、ユーザが把握しやすい方法により行う。描画を行った場合の表示例を
図5に示す。
【0054】
ユーザは取り出し可能な位置にあるワーク50のそれぞれについて、取出し位置を教示する。そして、図中に教示位置71として示すように、ユーザが教示した教示位置を把握できるように描画が行われる。なお、図中では、図示の都合上一部の教示位置71についてのみ符号を付している。
【0055】
アノテーション処理部112は、教示位置の3次元点情報と、教示位置を中心とした教示位置近傍の所定の範囲内の3次元点群情報である教示位置近傍画像データを取得する。そして、アノテーション処理部112は、取得した教示位置の3次元点情報と、教示位置近傍画像データとを対応付けて、マッチング用点群情報として選択用データ格納部111に格納する。
【0056】
マッチング用点群情報の一例を、マッチング用点群情報80として
図6に示す。なお、
図6の例では、説明のために教示点に描画を施しているが、マッチング用点群情報80に含まれる教示位置近傍画像データには教示位置を示す描画は含まない。また、以下の説明においては、マッチング用点群情報の符号である「80」の記載は省略する。
【0057】
マッチング用点群情報として取得する3次元点群の範囲の大きさは、ワーク50の大きさ等に基づいて予め設定しておく。なお、ある程度大きい範囲の3次元点群情報をマッチング用点群情報として記憶しておき、記憶したマッチング用点群情報を、後述のマッチングにおいて利用する際に、設定の調整を行って、必要なサイズにトリミングしたものをマッチング用点群情報として利用するようにしてもよい。
【0058】
なお、アノテーション処理部112は、マッチング用点群情報に、付帯的な情報を追加するようにしてもよい。例えば、マッチング用点群情報の特徴を示す情報を追加するようにしてもよい。特徴を示す情報とは、例えば、マッチング用点群情報に含まれる複数のピクセルが持つ3次元点の高さの平均や、教示位置に対応するピクセルが持つ3次元点の高さ等の情報である。
【0059】
第1の実施形態では、複数のワーク50がバラ積みされているので、3次元計測機40により計測される一枚の距離画像を利用して、上述したようにユーザにより複数の教示位置が教示されることにより、ワーク50が取りうる複数の姿勢のそれぞれの姿勢について取り出し位置の教示をすることが可能となる。
【0060】
なお、背景技術として説明したCADモデルでの教示は、形状に対して3次元点が一様に取得できると仮定する。しかしながら、実際に撮像をした場合には、光学条件等が原因で、形状に対して3次元点が一様に取得できない。このように、仮定と実際の撮像とでは、3次元点の取れやすさには違いがあるため、この乖離がマッチングの度合いに影響することがある。
【0061】
これに対して第1の実施形態では、実際の光学条件で取得した3次元点による距離画像を入力として取得して、描画位置周辺の3次元点群情報を保存できるため、CADモデルでの教示のように光学条件等が原因で、CADモデル上の教示位置と対応するワーク50の教示位置が取得できないような不具合が生じることを防止できる。
【0062】
次に、ワーク50の取り出し時に、マッチング部113により行われる、マッチング用点群情報を利用したマッチングについて説明を行う。
マッチング部113は、ワーク50の取り出し時に、3次元計測機40からコンテナ60内に積まれているバラ積みされたワーク50の距離画像を取得する。そして、マッチング部113は、取得した距離画像に対して、選択用データ格納部111に格納されているそれぞれのマッチング用点群情報に含まれる教示位置近傍画像データに基づいて、例えばICP(Iterative Closest Point)マッチング等の3次元点群のマッチング手法を用いて、探索を行う。そして、マッチング部113は、距離画像中で、マッチングの評価が高い画像領域の例えば中心位置を、取り出し対象のワーク50の取り出し位置として選択する。なお、マッチングの評価が閾値以上に高い画像領域を複数選択し、これら複数の画像領域のうち、地面からの高さがもっとも高い画像領域を新たな教示位置近傍画像データとしてもよい。
【0063】
マッチング部113は、選択したワーク50の取り出し位置をロボット制御装置20に対して送信する。そして、ロボット制御装置20が、受信したワーク50の取り出し位置に基づいてロボット30を制御することにより、ワーク50の取り出しを試みる。
【0064】
ここで、マッチング用点群情報は、上述したようにユーザの教示に基づいて作成されるものであるが、全てのマッチング用点群情報が適切なものであるとは限らない。例えば、或るマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合には取り出しに成功するが、他のマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合には取り出しに失敗することがあり得る。
このように、マッチング用点群情報によって成否が異なる場合があり得るので、マッチング部113は、各マッチング用点群情報に対して評価を行うことにより、各マッチング用点群情報に評価値を付与するようにするとよい。そして、マッチング部113は、この評価値が高いマッチング用点群情報を利用することが望ましい。
また、この評価値を付与したマッチング用点群情報は、後述する機械学習において教師データとして使用するため、マッチング部113は、評価値を付与したマッチング用点群情報を選択用データ格納部111に格納する。なお、評価値の低いマッチング用点群情報も機械学習のための教師データ(失敗データ)として必要なデータである。そのため、マッチング部113は、評価値の高いマッチング用点群情報のみならず、評価値の低いマッチング用点群情報も、選択用データ格納部111に教師データとして格納する。
【0065】
マッチング部113は、ワーク50の取り出しの成否に応じて評価値を付与することができる。例えば、マッチング部113は、或るマッチング用点群情報とマッチングの評価が高い部分を取り出し位置とした場合に、ワーク50の取り出しに成功した場合には、取り出しに失敗した場合よりも高い評価値を付与する。例えば、マッチング部113は、ワーク50の取り出しに成功した場合に第1所定値以上(例えば60点以上)を付与し、ワーク50の取り出しに失敗した場合は、第2所定値以下(例えば50点以下)とする。また、例えば、マッチング部113は、ワーク50の取り出しに成功した場合には、取り出しに要した時間に応じて更に評価値を異なるようにしてもよい。例えば、マッチング部113は、ワーク50の取り出しに要した時間が短いほど評価値が高くなるようにしてもよい。また、例えば、マッチング部113は、ワーク50の取り出しに失敗した場合には、失敗した度合いに応じて評価値を異なるようにしてもよい。例えば、マッチング部113は、ワーク50を把持できたが取り出し途中で落下してしまった場合には、ワーク50を把持できなかった場合よりも評価値が高くなるようにしてもよい。
【0066】
マッチング部113は、今回計測した距離画像に対して、各マッチング用点群情報に基づくマッチングを行う。また、マッチング部113は、各マッチングした箇所におけるワーク50の取り出しの試みと、上述した評価値の付与を行う。この処理は、3次元計測機40からコンテナ60内に積まれているバラ積みされたワーク50の距離画像を新たに取得することにより繰り返される。
【0067】
このように、マッチング部113は、マッチング用点群情報を用いたマッチング及びワーク50の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、各マッチング用点群情報についての評価を行うことができる。そして、マッチング部113が、評価値の高いマッチング用点群情報を選択することによって、ワーク50の取り出しに成功する確率を向上させることができる。
【0068】
また、マッチング部113は、距離画像でのマッチングに成功した部分について、マッチング用点群情報と同じ大きさの範囲の3次元点群情報を取得し、この取得した3次元点群情報を新たなマッチング点群情報とするようにするとよい。
このようにすれば、マッチング部113は、マッチングに用いたマッチング用点群情報に加え、マッチングした部分から取得した新たなマッチング用点群情報についてワーク50の取り出しを行うことが可能となる。つまり、マッチング部113は、マッチング用点群情報を自動的に増やしていくことができる。これにより、より評価値の高いマッチング用点群情報を収集することが可能となる。
【0069】
このように、第1の実施形態では、マッチング部113が、マッチング用点群情報を用いたマッチング及びワーク50の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、ワーク50取り出し位置を選択することが可能となる。また、マッチング用点群情報を自動的に増やしていくことも可能となる。
そのため、第1の実施形態では、ユーザからの新たな教示を受けなくとも、選択した取り出し位置に基づいたワーク50の取り出しを行うことができる。
【0070】
なお、第1の実施形態は、従来から行われているCAD等のモデルに対する教示と異なり、3次元計測機40で実際にワーク50を測定することにより取得した距離画像に対する教示に基づく。このように実際にワーク50を測定することにより取得した距離画像を用いる場合、外乱が含まれるなどといった理由によってマッチングが成立しないことが多くなる。そこで、マッチングが成立するように、マッチングの成否に関する閾値を甘く設定する場合がある。
しかしながら、このように閾値を甘くする手段を取ると、実際には取出し位置として検出されるにはふさわしくない場所についてもマッチングが成立してしまうという問題が生じる。そこで、この問題を軽減するため、描画によって教示しなかった場所に関してもマッチングを試みて、もしこの教示しなかった場所でマッチングが成立した場合、検出位置としては不適切なものとし、最終的な検出位置から除外する処理を、上述した第1の実施形態の処理に更に加えるようにしてもよい。
以上、マッチング部113によるマッチング処理について説明をした。上述のマッチング処理により、ワーク50の取り出し位置の選択を実現することができる。
この構成に、更に学習部14による機械学習と、切り抜き部114による切り抜き処理とを組み合わせることにより、ワーク50の取り出し位置の選択精度を向上させることが可能となる。以下、学習部14による機械学習について説明する。次に切り抜き部114による切り抜き処理について説明する。
【0071】
<機械学習>
マッチング部113は、上述したように、マッチング用点群情報を用いたマッチング及びワーク50の取り出しと、この取り出し結果に応じた評価値の付与を繰り返すことにより、評価値が付与されたマッチング用点群情報を作成する。そして、上述したように、マッチング部113は、評価値が付与されたマッチング用点群情報を、選択用データ格納部111に格納する。
学習部14の学習処理部141は、選択用データ格納部111に格納された、評価値が付与されたマッチング用点群情報を教師データとして、教師あり機械学習を行う。また、学習処理部141は、この教師あり学習により、ワーク50の取り出し位置の選択精度を向上するための学習モデルを構築する。そして、学習処理部141は、構築した学習モデルを学習済モデル格納部142に格納する。
そして、後述の切り抜き処理にて、推定処理部143が、この学習済モデル格納部142に格納された学習モデルを利用することにより、3次元計測機40により計測される距離画像とのマッチングを行うことなく、ワーク50の取り出し位置を選択することを可能とする。また、学習処理部141は、切り抜き処理での取り出しの成否に基づいて更に機械学習を行うことによって、学習済モデル格納部142に格納されている一度構築された学習モデルを更に更新することもできる。
【0072】
次に、学習モデルの構築について具体的に説明をする。学習処理部141は、選択用データ格納部111に格納された、マッチング用点群情報に含まれる教示位置近傍画像データを入力データとし、このマッチング用点群情報に付与された評価値をラベルとして教師あり学習を行う。教師あり学習の方法として、学習処理部141は、画像データを対象とした学習に適しているニューラルネットワークである、コンボリューションニューラルネットワーク(CNN:Convolutional Neural Network)を使用した深層学習(ディープラーニング)を行う。そのために、3層以上で、且つ、少なくとも1回の画像のコンボリューション演算を含むコンボリューションニューラルネットワークを用意する。ただし、これは第1の実施形態で適用される機械学習をコンボリューションニューラルネットワークに限定する趣旨ではない。第1の実施形態に、コンボリューションニューラルネットワーク以外の深層学習モデルや、線形モデル等を利用した機械学習を適用するようにしてもよい。
【0073】
ここで、コンボリューションニューラルネットワークは、畳み込み層、プーリング層、全結合層、及び出力層を備えた構造となっている。ただし、これはあくまで説明のための構造例であり、例えばプーリング層を省略するようにしてもよい。また、例えば上述したように、画像をラベルとして学習を行うような場合に、更にデコンボリューション層を設けるようにしてもよい。
【0074】
畳み込み層では、エッジ抽出等の特徴抽出を行うために、入力された3次元点群情報に対して所定のパラメータのフィルタをかける。このフィルタにおける所定のパラメータは、一般的なニューラルネットワークの重みに相当しており、学習を繰り返すことにより学習されていく。
【0075】
プーリング層では、例えば、畳み込み層から出力された画像を小さなウインドウに区切り、ウインドウそれぞれの特徴(例えばウインドウそれぞれにおける最大値)を出力する。
これら畳み込み層及びプーリング層を組み合わせることによって、3次元点群情報から特徴量を抽出することができる。
【0076】
全結合層では、畳み込み層及びプーリング層を通して取り出した特徴を1つのノードに結合し、活性化関数によって変換した値を出力する。ここで、活性化関数は、0未満の出力値を全て0にする関数で、ある閾値以上の部分だけを意味の有る情報として出力層に送るために用いる。
【0077】
出力層では、全結合層からの出力に基づいて、入力データとしたマッチング用点群情報に基づいた取り出しについての評価値を出力する。そして、出力層の出力と、ラベルの誤差を算出する。ここで、ラベルは、上述したように、入力データとしたマッチング用点群情報に付与された評価値である。
【0078】
学習開始時は、コンボリューションニューラルネットワークに含まれる各パラメータの重み付けが適切にはなされていないので、この誤差は大きな値となる可能性が高い。そこで、学習処理部141は、算出した誤差を小さくするように重み付け値を修正する。具体的には、誤差を小さくするために、フォワードプロパゲーションやバックプロパゲーションと呼ばれる処理を繰り返すことにより、コンボリューションニューラルネットワークに含まれる各パーセプトロンの重み付け値を変更する。
【0079】
学習処理部141は、このようにして、教師データの特徴を学習し、入力データとしたマッチング用点群情報から、評価値を出力するための学習モデルを帰納的に獲得する。学習処理部141は、構築した学習モデルを学習済モデルとして学習済モデル格納部142に格納する。
【0080】
上述した学習は、オンライン学習で行ってもよいし、バッチ学習やミニバッチ学習で教師あり学習を行ってもよい。
オンライン学習とは、教師データが作成される都度、即座に教師あり学習を行うという学習方法である。また、バッチ学習とは、教師データが作成されることが繰り返される間に、繰り返しに応じた複数の教師データを収集し、収集した全ての教師データを用いて、教師あり学習を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度教師データが溜まるたびに教師あり学習を行うという学習方法である。バッチ学習やミニバッチ学習を行う場合には、学習を開始するまでの間、収集した教師データを選択用データ格納部111に格納すればよい。
また、新たに教師データを取得した場合に、学習済モデルのパラメータを初期値として学習を行うことにより学習済モデルによる推定の精度を向上させるようにしてもよい。また、他にも、新たに教師データを取得した場合に、学習済モデルと関係なく、別途の学習モデルを新たに構築するようにしてもよい。
【0081】
<切り抜き処理>
次に、切り抜き部114が行う切り抜き処理について説明をする。
切り抜き部114は、学習処理部141により構築された学習モデルを利用することにより、3次元計測機40により計測される距離画像とのマッチングを行うことなく、ワーク50の取り出し位置を選択する。以下、この、マッチングを行うことなく、取り出し位置を選択する処理を「切り抜き処理」と呼んで説明をする。
【0082】
切り抜き処理を行う場合、切り抜き部114は、取り出し作業時に新たな距離画像を取得すると、取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ(すなわち、マッチング用点群情報と同じ大きさ)の距離画像を切り抜く。そして、切り抜き部114は、この切り抜いた部分(以下「取り出し位置候補」という)の3次元点群情報を取得する。
【0083】
切り抜き部114による取り出し位置候補の抽出処理(切り抜き処理)について
図7及び
図8を参照して説明をする。
図7に切り抜きの対象とする領域を取り出し位置候補90として図示する。この取り出し位置候補90の大きさは、上記したように、学習済モデルへの入力と同じ大きさ(すなわち、マッチング用点群情報と同じ大きさ)となる。
【0084】
切り抜き部114は、取り出し位置候補90とする対象を、例えば
図8に示すように、画像左上から数ピクセルずつ対象位置をずらしながら走査することで画像全域に対して切り抜きを行う。なお、
図8では、直線的に走査を行っているが、走査に回転を加えてもよい。また、走査開始位置や走査方向も任意に設定してよい。切り抜き部114は、切り抜き時に、距離画像上での取り出し位置候補90の位置(例えば、切り抜いた画像データの中心位置)も取得し、取り出し位置候補と対応付けて、選択用データ格納部111に格納する。
推定処理部143は、このようにして抽出される全ての取り出し位置候補の3次元点群情報それぞれを、選択用データ格納部111から取得する。そして、推定処理部143は、取得した全ての取り出し位置候補の3次元点群情報それぞれを、上述したマッチング用点群情報の代わりに学習済モデルに入力し、それぞれの取り出し位置候補についての評価値を出力として得る。推定処理部143は、この出力を切り抜き部114に対して通知する。
【0085】
切り抜き部114は、学習済モデルから出力される評価値が高い切り抜き画像に対応付けて記憶している位置を取り出し位置として選択する。切り抜き部114は、選択した取り出し位置をロボット制御装置20に対して送信する。そして、ロボット制御装置20が、受信した取り出し位置に基づいてロボット30を制御することにより、ワーク50の取り出しを試みる。
【0086】
ここで、取り出し位置候補の3次元点群情報によりワーク50の取り出しを試みた場合も、マッチング用点群情報により取り出しを試みた場合と同様に、取り出しに成功することも、失敗することもあり得る。そこで、切り抜き部114は、マッチング処理時におけるマッチング用点群情報と同様に、ワーク50の取り出しの成否に応じて取り出し位置候補にも評価値を付与する。また、切り抜き部114は、この評価値を付与した取り出し位置候補を選択用データ格納部111に格納する。この評価値を付与した取り出し位置候補は、学習処理部141が、学習済モデルを更新するための、新たな教師データとして利用することができる。
【0087】
具体的には、学習処理部141は、取り出し位置候補の3次元点群データを入力データとし、この入力データとした取り出し位置候補に付与された評価値をラベルとして、上述のオンライン学習又はミニバッチ学習を行うことが好ましい。これにより、ワーク50の取出し操作を実行しながら、学習済モデルを更に精度の高い学習済モデルにリアルタイムに更新することができる。なお、オンライン学習又はミニバッチ学習に限定されない。バッチ学習により学習モデルを更新してもよい。
【0088】
<第1の実施形態の動作>
次に、
図9A及び
図9Bのフローチャートを参照して、第1の実施形態の動作について説明をする。なお、
図9Aは上述したマッチング処理に相当する動作についてのフローチャートであり、
図9Bは上述した切り抜き処理に相当する動作についてのフローチャートである。
【0089】
ステップS11において、アノテーション処理部112は、3次元計測機40から、バラ積みされたワーク50を計測することにより生成された距離画像を取得する。
ステップS12において、アノテーション処理部112は、距離画像を表示部12に表示させる。
ステップS13において、アノテーション処理部112は、操作受付部13が受け付けたユーザからのワーク50の取り出し位置の教示に基づいて、距離画像上に教示位置を描画する。
【0090】
ステップS14において、アノテーション処理部112は、マッチング用点群情報の大きさを設定する。設定は、予め与えられている設定値や、ユーザの操作に応じて行われる。
ステップS15において、アノテーション処理部112は、ステップS14にて行われた設定に基づいて、マッチング用点群情報を生成する。また、アノテーション処理部112は、生成したマッチング用点群情報を選択用データ格納部111に格納する。
ステップS16において、マッチング部113は、選択用データ格納部111に格納されたマッチング用点群情報を用いて、マッチング及びワーク50の取り出しを行うことにより、マッチング用点群情報に評価値を付与する。マッチング部113は、評価値を付与したマッチング用点群情報を、選択用データ格納部111に格納する。
【0091】
ステップS17において、マッチング部113は、追加でマッチング用点群情報が必要であるか否かを判定する。評価値が所定の値以上のマッチング用点群情報を、所定数以上記憶している場合には、ステップS17においてNoと判定され、処理はステップS18に進む。一方で、評価値が所定の値以上のマッチング用点群情報を、所定数以上記憶していない場合には、ステップS17においてYesと判定され、処理はステップS11に戻り、処理を再度繰り返す。
【0092】
ステップS18において、学習処理部141は、学習部14が記憶するマッチング用点群情報を入力データとし、このマッチング用点群情報に付与された評価値をラベルとした学習を行う。これにより、学習済モデルが作成され、学習済モデル格納部142に格納される。
【0093】
次に、
図9Bを参照して、切り抜き処理時の動作について説明をする。
ステップS19において、切り抜き部114は、3次元計測機40から、バラ積みされたワーク50を計測することにより生成された距離画像を取得する。
【0094】
ステップS20において、切り抜き部114は、取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ(すなわち、マッチング用点群情報と同じ大きさ)の距離画像を取り出し位置候補として切り抜く。そして、切り抜き部114は、この取り出し位置候補の3次元点群情報を取得する。また、切り抜き部114は、取得した、取り出し位置候補の3次元点群情報を選択用データ格納部111に格納する。推定処理部143は、選択用データ格納部111に格納された、全ての取り出し位置候補の3次元点群情報それぞれを、学習済モデルに対して入力し、それぞれの取り出し位置候補についての評価値を出力として得る。推定処理部143は、この出力を切り抜き部114に対して通知する。
【0095】
ステップS21において、切り抜き部114は、学習済モデルから出力される評価値が高い切り抜き画像に対応付けて記憶している位置を取り出し位置として選択する。切り抜き部114は、選択した取り出し位置をロボット制御装置20に対して送信する。そして、ロボット制御装置20が、受信した取り出し位置に基づいてロボット30を制御することにより、ワーク50の取り出しを試みる。上述したように、ワーク50の取り出しを試みた結果、取り出しに成功することも、失敗することもあり得る。そこで、切り抜き部114は、ワーク50の取り出しの成否に応じて取り出し位置候補に評価値を付与する。
【0096】
ステップS22において、学習処理部141は、ステップS21において評価値が付与された取り出し位置候補を教師データとした学習を行うことにより、学習済モデルを更新するか否かを判定する。ミニバッチ学習を行う場合であれば、教師データが所定数記録されたことや、前回の学習から所定時間経過した場合に、ステップS23においてYesと判定され、処理はステップS24に進む。一方で、教師データが所定数以下しか記録されていないことや、前回の学習から所定時間経過していない場合に、ステップS23においてNoと判定され、処理はステップS24に進む。なお、オンライン学習であれば、ステップS23においてYesと判定され、処理はステップS24に進む。
【0097】
ステップS24において、学習処理部141は、取り出し位置候補の3次元点群データを入力データとし、この入力データとした取り出し位置候補に付与された評価値をラベルとして、上述の学習を行う。これにより、学習済モデル格納部142に格納されている学習済モデルを更新する。
【0098】
ステップS24において、切り抜き部114は、取り出しを続けるか否かを判定する。評価値の取り出し位置候補が存在し、この取り出し位置候補を対象とした取り出しを行っていない場合には、未だ取り出していないワーク50が存在すると考えられるので、ステップS24においてYesと判定され、処理はステップS20に進む。一方で、全ての評価値の高い取り出し位置候補を対象とした取り出しを行っている場合には、全てのワーク50が取り出されたと考えられるので、ステップS24においてNoと判定され処理は終了する。
【0099】
以上説明した第1の実施形態のマッチング処理によれば、ステップS13においてユーザからの取り出し位置の教示を受けた後は、ユーザからの新たな教示を受けなくとも、記憶したマッチング用点群情報(教示位置の3次元点情報と、教示位置を中心とした教示位置近傍画像データ)に基づいて、3次元計測機40により計測された距離画像とのマッチングを用いた探索を行うことで、取り出し位置を選択することが可能となる。また、第1の実施形態のマッチング処理によれば、ユーザは取り出し位置を教示するのみであり、探索アルゴリズムの選択等の経験に基づく知識を必要としない。更に、第1の実施形態のマッチング処理によれば、CADデータを利用しないので、CADデータを準備する手間が省ける。
つまり、第1の実施形態のマッチング処理によれば、従来に比べて、より簡便な方法でワーク50の取り出し位置を選択することができる。
【0100】
また、第1の実施形態の切り抜き処理によれば、更に、マッチング用点群情報に基づいて、学習モデルを構築し、構築した学習モデルに基づいて、距離画像から自動的に切り抜いた画像データから取り出し位置を選択することが可能となり、より効率的に、より精度高く取り出し位置を選択することができる。
更に、第1の実施形態の切り抜き処理によれば、取り出しの継続に伴い、新たな教師データを取得することができるので、構築した学習モデルをリアルタイムに更新していくことができる。
【0101】
<第2の実施形態>
次に第2の実施形態について詳細に説明する。なお、第2の実施形態の基本的な構成は、第1の実施形態と共通する。例えば、第2の実施形態に係るロボットシステム1bの全体構成は、
図1に示す第1の実施形態に係るロボットシステム1aの全体構成と同様の構成であり、画像処理装置10aを、第2の実施形態の画像処理装置である画像処理装置10bに置き換えることにより、第2の実施形態の構成となる。
以下では重複する説明を避けるために、このように両実施形態で共通する点についての説明は省略し、両実施形態で相違する点について詳細に説明する。
【0102】
<第1の実施形態と第2の実施形態の相違点の概略>
第1の実施形態では学習を行うにあたり、画像処理装置10aが、3次元計測機40から取得した距離画像に対してマッチングを行い、マッチング用点群情報を作成するという前処理をしていた。そして、画像処理装置10aが、このマッチング用点群情報を学習モデルの入力データとし、このマッチング用点群情報に付与された評価値をラベルとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行っていた。
【0103】
あるいは、第1の実施形態では、画像処理装置10aが、3次元計測機40から取得した距離画像の全域にわたって学習済モデルに対する入力と同じ大きさ(すなわち、マッチング用点群情報と同じ大きさ)の距離画像を、取り出し位置候補として切り抜くという前処理をしていた。そして、画像処理装置10aが、この切り抜いた取り出し位置候補の3次元点群情報を学習モデルの入力データとし、この3次元点群情報に付与された評価値をラベルとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行っていた。
【0104】
これに対して、第2の実施形態ではこのマッチングや切り抜きといった前処理を省略し、3次元計測機40から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行う。
【0105】
第2の実施形態を適用する環境にもよるが、このように前処理を省略することにより、第2の実施形態では、演算処理を効率的に行うことや、実装を容易とすることが可能となる。また、第2の実施形態では、このように距離画像全体を学習モデルの入力データとすることにより、画像中で遠く離れたピクセル間の影響を考慮することも可能となる。
【0106】
<画像処理装置10bの機能ブロック>
次に、前処理を省略して、距離画像全体を学習モデルの入力データとするために、画像処理装置10bが備える各機能ブロックについて
図10を参照して説明をする。
なお、
図10では
図2と同様に、ロボットシステム1bにおける、画像処理装置10b以外の構成要素を環境100としてまとめて図示する。
【0107】
画像処理装置10bは、画像処理装置10aが備える選択処理部11に代えて、選択処理部15を備える点で相違する。すなわち、画像処理装置10bは、選択処理部15、表示部12、操作受付部13、及び学習部14を備える。
また、選択処理部15は、教師データ格納部151、アノテーション処理部152及び取り出し位置選択部153を備える。
【0108】
教師データ格納部151は、機械学習を行うための教師データを格納する部分である。3次元計測機40から入力された距離画像は、教師データにおける入力データとして教師データ格納部151に格納される。また、アノテーション処理部152が生成したラベルは、教師データにおける入力データとして教師データ格納部151に格納される。
この、入力データとラベルとは、アノテーション処理部152によるラベルの格納時に紐付けられる。
【0109】
アノテーション処理部152は、教師データに含まれるラベルを生成する部分である。アノテーション処理部152は、ラベルを生成するために、教師データ格納部151から距離画像を取得する。また、アノテーション処理部152は、取得した距離画像を表示部12に表示する。距離画像の表示例については
図4を参照して上述したとおりである。
【0110】
ユーザは、表示された距離画像を参照すると、第1の実施形態と同様にして、取り出し位置の教示を行う。具体的には、マウスやタッチパネルにより実現される操作受付部13を利用して、取り出し位置を指定することにより、取り出し位置の教示を行う。
【0111】
操作受付部13は、教示された取り出し位置である教示位置をアノテーション処理部152に対して通知する。アノテーション処理部152は、この通知された教示位置をユーザが認識できるように、距離画像上の教示位置に対して描画を行う。描画は、例えば、距離画像上の教示位置の画素の色を変更する等の、ユーザが把握しやすい方法により行う。描画を行った場合の表示例については
図5を参照して上述したとおりである。
【0112】
ここで、第1の実施形態では、ユーザが取り出し位置を点により教示していた。これに対して、第2の実施形態では、ユーザが取り出し位置を所定の領域として教示する。例えば、第2の実施形態では、ユーザは取り出し可能な領域に色を塗ることにより取り出し位置の教示を行う。
【0113】
アノテーション処理部152は、ユーザによる教示に基づいて、距離画像全体に含まれる各画素について、ワーク50の取り出し位置(すなわち、教示位置)であるか否かを示す属性(例えば、ワーク50の取り出し位置は「1」。ワーク50の取り出し位置以外の位置については「0」)を割り当てた画像を生成する。以下では、この画像を「ラベル用マップ」と呼ぶ。
【0114】
第2の実施形態では、このラベル用マップをラベルとして利用する。また、アノテーション処理部152は、ラベル用マップを生成するにあたり、各画素についてワーク50の取り出し位置であるか否かを示す属性を割り当てるのではなく、更に1/s(sは任意の自然数)に分解能を上げて、1/s画素毎にワーク50の取り出し位置であるか否かを示す属性を割り当てるようにしてもよい。また、ラベルとして3次元点群情報は不要であるので、ラベル用マップでは距離画像に含まれる3次元点群情報を削除してよい。従って、ラベル用マップは、距離画像における、各画素(又は1/sとした各画素)の2次元座標の情報と、各画素(又は1/sとした各画素)についてワーク50の取り出し位置であるか否かを示す属性の情報とを含んだ画像となる。
【0115】
アノテーション処理部152は、生成したラベル用マップをラベルとし、ユーザからの教示のために用いた距離画像を入力データとして、両者を紐付けることにより教師データを生成する。そして、アノテーション処理部152は、生成した教師データを教師データ格納部151に格納する。なお、アノテーション処理部152は、入力データとラベルとを紐付けて教師データ格納部151に格納するのではなく、別途に教師データ格納部151に格納し、両者をリンクさせることにより教師データとするようにしてもよい。
第2の実施形態の学習処理部141は、機械学習を行う場合に、教師データ格納部151に格納されている教師データを用いて機械学習を行う。具体的には、第2の実施形態では、学習処理部141による機械学習により、距離画像を入力とした場合に、ラベル用マップと同様の画像が出力される学習モデルを構築する。つまり、取り出し可能な領域をセグメンテーションした画像が出力される学習モデルを構築する。
【0116】
この機械学習は、例えば画像を入力し、画像中の全画素ピクセルに対して何らかの推定(例えばクラス分類など)を行う手法により実現することができる。このような手法としては、例えば、Semantic Segmentationが挙げられる。Semantic Segmentationは、自動車の自動運転への応用を目指した技術であり、例えば写真の画像データを入力として、車、歩行者などの領域毎に色分けすることができる。
第2の実施形態では、上述したように、入力データを距離画像、ラベルを距離画像に対するアノテーション(例えばワーク50を取り出せそうな位置に人間が色を塗った画像)にして機械学習を行うことで、全画素に対する評価値推定を一度に行うことができる。そのため、第1の実施形態での、マッチング処理や切り抜き処理といった前処理を省略することができる。
【0117】
具体的に、第2の実施形態の機械学習は、例えば以下の参考文献に開示されているコンボリューション エンコーダ−デコーダを利用することにより実現できる。
【0118】
<参考文献>
Vijay Badrinarayanan, Alex Kendall, Roberto Cipolla、"SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation"、[online]、平成28年8月10日、[平成29年9月10日検索]、インターネット〈URL:https://arxiv.org/pdf/1511.00561.pdf〉
【0119】
学習処理部141は、機械学習により学習済モデルを構築する。そして、学習処理部141は、構築した学習済モデルを、学習済モデル格納部142に格納する。
【0120】
取り出し位置選択部153は、推定処理部143が出力する評価値マップに基づいて、取り出し位置を選択する部分である。取り出し位置選択部153による取り出し位置の選択と、評価値マップの詳細について以下説明する。
取り出し位置選択部153は、取り出し位置を選択するために次元計測機40から距離画像を取得すると、取得した距離画像を推定処理部143に対して出力する。推定処理部143は、入力された距離画像を入力データとして、学習済モデル格納部142に格納されている学習済モデルに入力する。この入力に応じて、学習済モデルからは、取り出し可能な領域をセグメンテーションした画像が出力される。この出力された画像を「評価値マップ」と呼ぶ。
評価値マップは、ラベル用マップと同様のデータ構造であり、各画素(又は1/sとした各画素)の2次元座標の情報と、各画素(又は1/sとした各画素)についてワーク50の取り出し位置であるか否かを示す属性の情報とを含んだ画像となる。
推定処理部143は、評価値マップを取り出し位置選択部153に対して出力する。
【0121】
取り出し位置選択部153は、評価値マップに基づいてワーク50の取り出し位置を選択する。具体的には、ワーク50の取り出し位置としてセグメンテーションされている各区画を取り出し位置の候補とする。そして、取り出し位置の候補の領域を示す座標情報に基づいて、入力データとした距離画像上で、取り出し位置の候補に対応する領域を特定する。そして、この特定した領域に対して、既知の点群処理や画像処理を行うことにより取り出し位置を選択する。
【0122】
取り出し位置選択部153は、選択した取り出し位置をロボット制御装置20に対して出力する。その後、第1の実施形態と同様に、ロボット制御装置20が、取り出し位置に基づいて制御信号を生成する。そして、ロボット30が制御信号に基づいてハンドによりワーク50を取り出す。
【0123】
以上説明した構成により、第2の実施形態では、マッチングや切り抜きといった前処理を省略し、3次元計測機40から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行うことができる。
【0124】
<第2の実施形態の動作>
次に、
図11のフローチャートを参照して、第2の実施形態の動作について説明をする。
ステップS31において、教師データ格納部151は、3次元計測機40がバラ積みされたワーク50を計測することにより生成した距離画像を格納する。
ステップS32において、アノテーション処理部152は、教師データ格納部151に格納されている距離画像を表示部12に表示させる。
ステップS33において、アノテーション処理部152は、操作受付部13が受け付けたユーザからの取り出し位置の教示に基づいて、距離画像上に教示位置を描画する。
【0125】
ステップS34において、アノテーション処理部152は、ユーザからの教示に基づいてラベル用マップを生成する。アノテーション処理部152は、ラベル用マップと距離画像とを教師データとして教師データ格納部151に格納する。
【0126】
ステップS35において学習処理部141は、教師データ格納部151に格納されている教師データにおける、距離画像を入力データとし、この距離画像に対応するラベル用マップをラベルとした学習を行う。これにより、学習済モデルが作成され、学習済モデル格納部142に格納される。
【0127】
ステップS36において、取り出し位置選択部153は、3次元計測機40から、バラ積みされたワーク50を計測することにより生成された距離画像を取得する。そして、取り出し位置選択部153は、取得した距離画像を推定処理部143に対して出力する。
【0128】
ステップS37において、推定処理部143は、入力された距離画像を、学習済モデル格納部142に格納されている学習済モデルに入力する。そして、推定処理部143は、学習済モデルの出力として評価値マップを取得する。推定処理部143は、取得した評価値マップを取り出し位置選択部153に対して出力する。
【0129】
ステップS38において、取り出し位置選択部153は評価値マップに基づいて取り出し位置を選択する。取り出し位置選択部153は、選択した取り出し位置をロボット制御装置20に対して送信する。
【0130】
ステップS39において、ロボット制御装置20が、受信した取り出し位置に基づいてロボット30を制御することにより、ワーク50の取り出しを行う。なお、ワーク50を複数取り出す場合は、ステップS38において複数の取り出し位置を選択し、ステップS39においてこの複数の取り出し位置それぞれについて取り出しを実行するようにしてもよい。ただし、ワーク50を取り出すことにより、ワーク50のバラ積みの状態が変わるので、ワーク50を取り出す度に、ステップS36に戻って処理を繰り返すようにしてもよい。
【0131】
以上説明した構成により、第2の実施形態では、マッチングや切り抜きといった前処理を省略し、3次元計測機40から取得した距離画像全体を学習モデルの入力データとすることにより、機械学習による学習モデルの構築や、構築した学習モデルを利用した取り出し位置の選択を行うことができる。
【0132】
<ハードウェアとソフトウェアの協働>
なお、上記のロボットシステムに含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のロボットシステムに含まれる各装置のそれぞれの協働により行なわれる機械学習方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0133】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0134】
<実施形態の変形>
また、上述した各実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、各実施形態を組み合わせた形態や、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0135】
<変形例1>
上述した各実施形態では、画像処理装置10a又は画像処理装置10bと、ロボット制御装置20を別体の装置としていたが、これら装置を一体として実現してもよい。
【0136】
<変形例2>
また、上述した各実施形態では、ロボット制御装置20と、画像処理装置10a又は画像処理装置10bが近傍にいるように図示したが、これらがLAN(Local Area Network)やインターネット等のネットワークを介した遠方に位置していてもよい。
【0137】
また、1台の画像処理装置10a又は画像処理装置10bが、複数台のロボット制御装置20と接続されていてもよい。そして、1台の画像処理装置10a又は画像処理装置10bが、この複数台のロボット制御装置20のそれぞれから取得した教師データに基づいて学習を行うようにしてもよい。
【0138】
<変形例3>
また、上述した各実施形態では、3次元計測機40は所定位置に固定して設置されているものとして説明したが、必ずしも所定位置に固定されていなくともよい。例えば、3次元計測機40はロボット30を制御するための機械座標系における位置がわかるのであれば、ロボット30のアームに取り付けるなど、設置位置が実施中に変更される形態でもよい。
【0139】
<変形例4>
更に、上述した各実施形態では、画像処理装置10a又は画像処理装置10bを1台の装置で実現することを想定したが、画像処理装置10a又は画像処理装置10bの各機能を、適宜複数の装置に分散する、分散処理システムとしてもよい。例えば、画像処理装置10aの選択処理部11又は画像処理装置10bの選択処理部15の機能と、学習部14の機能とを適宜複数の装置に分散する、分散処理システムとしてもよい。この場合に、学習部14に含まれる各機能ブロック単位で適宜複数の装置に分散する、分散処理システムとしてもよい。また、クラウド上での仮想サーバ機能等を利用して、画像処理装置10a又は画像処理装置10bの各機能を実現してもよい。
【0140】
<変形例5>
更に、上述した第1の実施形態では、マッチング処理を行い、マッチングした位置において実際に試みた取り出し結果の成否に基づいて学習済モデルを構築していた。また、このようにマッチング処理により構築した学習モデルを利用して、その後切り抜き処理を行っていた。
しかしながら、切り抜き処理を行う場合には、必ずしもマッチング処理により構築した学習モデルを利用しなくてもよい。
【0141】
この場合、学習処理部141が、ユーザにより教示された教示点における取り出しは、成功するものであるとみなして学習モデルを構築する。つまり、学習部14が、教示位置近傍画像データを入力データとし、取り出しが成功した(とみなした)ことを示す評価値をラベルとして、教師データを作成する。そして、学習処理部141が、この教師データによる学習によって学習モデルを構築する。
【0142】
選択処理部11は、このようにして構築した学習モデルを用いて、切り抜き処理を行うことができる。これにより、選択処理部11は、マッチング処理や、実際の取り出しを行うことなく、学習モデルを構築して、取り出し位置を選択することが可能となる。
なお、この場合に学習処理部141が、ユーザからの教示位置とは異なる位置(非教示位置)の近傍のデータである非教示位置近傍画像データを取得するようにしてもよい。そして、学習処理部141が、非教示位置近傍画像データを入力データとし、取り出しが失敗した(とみなした)ことを示す評価値をラベルとして、失敗例を示す教師データを作成するようにしてもよい。そして、学習処理部141が、この失敗例を示す教師データを更に用いて学習を行うようにしてもよい。この場合に、非教示位置は、ユーザにより選択されるようにしてもよいし、教示位置以外の位置からランダムに選択されるようにしてもよい。
【0143】
ここで、以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
前記3次元計測機により生成された前記距離画像を表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すロボットシステム。
(付記2)
前記表示部は、前記表示された距離画像上に前記教示された取り出し位置を描画する付記1に記載のロボットシステム。
(付記3)
前記教示された取り出し位置及びその近傍の3次元点群の情報を探索用情報として記憶し、前記距離画像に対して、前記探索用情報による探索を行うことにより、新たな取り出し位置を選択する取り出し位置選択部を備え、
前記ロボットは、前記取り出し位置選択部によって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出す付記1又は付記2に記載のロボットシステム。
(付記4)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
前記3次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、
前記教示された取り出し位置及びその近傍の3次元点群の情報を入力データとし、該入力データとした3次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された3次元点群の情報についての評価値を出力する学習モデルを構築する学習部と、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すロボットシステム。
(付記5)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
前記3次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示部と、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付部と、
前記教示された取り出し位置及びその近傍の3次元点群の情報を入力データとし、該入力データとした3次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された3次元点群の情報についての評価値を出力する学習モデルを構築する学習部と、
前記距離画像から所定領域の距離画像を切り抜き、切り抜かれた前記距離画像の3次元点群の情報を前記学習モデルに入力データとして入力することにより出力される前記3次元点群の情報についての評価値に基づいて、新たな取り出し位置を選択する取り出し位置選択部と、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出し、前記取り出し位置選択部によって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出すロボットシステム。
(付記6)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
前記3次元計測機により生成された前記距離画像に基づいて前記複数のワークの少なくとも1つを前記ハンドにより取り出しを行うための取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも1つの評価値からなる評価値マップを出力する推定部と、
前記推定部により出力された前記評価値マップに基づいて前記ハンドが取り出す前記複数のワークの少なくとも1つの取り出し位置を選択する位置選択部と、
を備え、
前記ロボットは、前記位置選択部により選択した前記取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すロボットシステム。
(付記7)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
前記3次元計測機により生成された前記距離画像を機械学習用の教師データとして格納する教師データ格納部と、
前記教師データ格納部に格納された前記距離画像を表示する表示部と、
前記表示部に表示された前記距離画像に基づく少なくとも1つの教示位置の教示を受け付ける受付部と、
前記受付部で受け付けた前記教示位置に基づき少なくとも1つの教示位置を示すラベルマップを生成し、該ラベルマップと前記教師データ格納部に格納された前記距離画像とを関連づけてデータセットとして前記教師データ格納部に保存するアノテーション処理部と、
前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、学習済モデルを出力する学習処理部と、
前記学習処理部から出力された前記学習済モデルを格納する学習済モデル格納部と、
前記学習済モデル格納部に格納された前記学習済モデルと、前記3次元計測機により新たに生成された新たな複数のワークの距離画像に基づいて前記新たな複数のワークの少なくとも1つを前記ハンドにより取り出す際の取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも1つの評価値からなる評価値マップを出力する推定部と、
前記推定部により出力された前記評価値マップに基づいて前記ハンドが取り出す前記新たな複数のワークの少なくとも1つの取り出し位置を選択する位置選択部と、
を備え、
前記ロボットは、前記位置選択部により選択した前記取り出し位置に基づいて前記ハンドにより前記新たな複数のワークの少なくとも1つを取り出すロボットシステム。
(付記8)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記3次元計測機により生成された前記距離画像を表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
を備え、
前記ロボットが前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すワーク取り出し方法。
(付記9)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記3次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
前記教示された取り出し位置及びその近傍の3次元点群の情報を入力データとし、該入力データとした3次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された3次元点群の情報についての評価値を出力する学習モデルを構築する学習ステップと、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すワーク取り出し方法。
(付記10)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記3次元計測機により生成された前記距離画像と、該距離画像上に教示された取り出し位置とを表示する表示ステップと、
前記表示された距離画像上で、前記ハンドによる取り出しを行うための取り出し位置の教示を受け付ける受付ステップと、
前記教示された取り出し位置及びその近傍の3次元点群の情報を入力データとし、該入力データとした3次元点群の情報に対する教示に応じた評価値または取り出しの成否に応じた評価値の少なくともいずれか一方をラベルとした機械学習を行うことにより、入力データとして入力された3次元点群の情報についての評価値を出力する学習モデルを構築する学習ステップと、
前記距離画像から所定領域の距離画像を切り抜き、切り抜かれた前記距離画像の3次元点群の情報を前記学習モデルに入力データとして入力することにより出力される前記3次元点群の情報についての評価値に基づいて、新たな取り出し位置を選択する取り出し位置選択ステップと、
を備え、
前記ロボットは、前記教示された取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出し、前記取り出し位置選択ステップによって選択された前記新たな取り出し位置で各ワークを前記ハンドにより取り出すワーク取り出し方法。
(付記11)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記3次元計測機により生成された前記距離画像に基づいて前記複数のワークの少なくとも1つを前記ハンドにより取り出しを行うための取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも1つの評価値からなる評価値マップを出力する推定ステップと、
前記推定ステップにて出力された前記評価値マップに基づいて前記ハンドが取り出す前記複数のワークの少なくとも1つの取り出し位置を選択する位置選択ステップと、
を備え、
前記ロボットが前記位置選択ステップにて選択した前記取り出し位置に基づいて前記ハンドにより前記複数のワークの少なくとも1つを取り出すワーク取り出し方法。
(付記12)
複数のワークの距離画像を生成する3次元計測機と、
前記複数のワークの少なくとも1つを取り出すためのハンドを有するロボットと、
を備えたロボットシステムが行うワーク取り出し方法であって、
前記3次元計測機により生成された前記距離画像を機械学習用の教師データとして教師データ格納部に格納する教師データ格納ステップと、
前記教師データ格納部に格納された前記距離画像を表示する表示ステップと、
前記表示ステップにて表示された前記距離画像に基づく少なくとも1つの教示位置の教示を受け付ける受付ステップと、
前記受付ステップにて受け付けた前記教示位置に基づき少なくとも1つの教示位置を示すラベルマップを生成し、該ラベルマップと前記教師データ格納部に格納された前記距離画像とを関連づけてデータセットとして前記教師データ格納部に保存するアノテーション処理ステップと、
前記教師データ格納部に格納された前記データセットを入力として、機械学習を行い、学習済モデルを出力する学習処理ステップと、
前記学習処理ステップにて出力された前記学習済モデルを学習済モデル格納部に格納する学習済モデル格納ステップと、
前記学習済モデル格納部に格納された前記学習済モデルと、前記3次元計測機により新たに生成された新たな複数のワークの距離画像に基づいて前記新たな複数のワークの少なくとも1つを前記ハンドにより取り出す際の取り出し位置の推定を行うことにより生成した評価値マップであって少なくとも1つの評価値からなる評価値マップを出力する推定ステップと、
前記推定ステップにて出力された前記評価値マップに基づいて前記ハンドが取り出す前記新たな複数のワークの少なくとも1つの取り出し位置を選択する位置選択ステップと、
を備え、
前記ロボットが前記位置選択ステップにより選択した前記取り出し位置に基づいて前記ハンドにより前記新たな複数のワークの少なくとも1つを取り出すワーク取り出し方法。