(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-27
(45)【発行日】2023-10-05
(54)【発明の名称】把持装置
(51)【国際特許分類】
B25J 9/22 20060101AFI20230928BHJP
G06T 7/70 20170101ALI20230928BHJP
G06T 7/593 20170101ALI20230928BHJP
【FI】
B25J9/22 A
G06T7/70 Z
G06T7/593
(21)【出願番号】P 2019199419
(22)【出願日】2019-10-31
【審査請求日】2022-10-26
(73)【特許権者】
【識別番号】000114215
【氏名又は名称】ミネベアミツミ株式会社
(74)【代理人】
【識別番号】110001771
【氏名又は名称】弁理士法人虎ノ門知的財産事務所
(72)【発明者】
【氏名】中野 芳宏
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2015-199155(JP,A)
【文献】特開2014-176923(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
G06T 7/70
G06T 7/593
(57)【特許請求の範囲】
【請求項1】
カメラと、
バラ積みされたワークを把持するロボットアームと、
画像処理装置と、
を備え、
前記画像処理装置は、
バラ積みされたワークの画像と、
前記ワークの一部を前記ロボットアームが把持している把持状態画像と、
前記ワークの整列先の画像又は整列済みの画像と、を
前記カメラから取得する取得部
と、
前記把持状態画像と、前記整列先の画像又は整列済みの画像から、前記ロボットアームの軌道を生成するロボット制御部と、
を有する、
把持装置。
【請求項2】
前記画像処理装置は、前記把持状態画像に基づいて、前記ロボットアームにより保持されているワークの位置及び姿勢を推定する
推定部を有する、請求項1に記載の把持装置。
【請求項3】
前記カメラはステレオカメラであり、
前記
推定部は、前記ステレオカメラにより撮像された前記把持状態画像に基づいて、前記ロボットアームにより把持されているワークの深度を算出する、請求項2に記載の把持装置。
【請求項4】
前記画像処理装置
の推定部は、前記把持状態画像に基づいて、前記ロボットアームの位置及び姿勢をさらに推定する、請求項1乃至3のいずれか1つに記載の把持装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、把持装置に関する。
【背景技術】
【0002】
バラ積みされた複数の対象物(ワーク)をロボットアーム等により把持するために、トレイにバラ積みされたワークの状態を、三次元計測機で撮影することにより特定して把持する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、把持前のバラ積みされたワークの状態の情報を得るだけでは、精度よく把持動作を行うことは難しい。
【0005】
本発明は、上記課題を一例とするものであり、把持装置に把持されている状態の画像データを用いて高精度の把持動作が可能となる把持装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る把持装置は、カメラと、ロボットアームと、画像処理装置と、を備える。ロボットアームは、バラ積みされたワークを把持する。画像処理装置は、取得部と、ロボット制御部とを有する。取得部は、バラ積みされたワークの画像と、ワークの一部を前記ロボットアームが把持している把持状態画像と、を前記カメラから取得する。ロボット制御部は、前記把持状態画像と、前記整列先の画像又は整列済みの画像から、前記ロボットアームの軌道を生成する。
【発明の効果】
【0007】
本発明の一態様によれば、画像処理により把持装置に把持されている状態の画像データを用いて高精度の把持動作が可能な把持装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1の実施形態に係る画像処理装置を実装した物体把持システムの一例を示す図である。
【
図2】
図2は、第1の実施形態に係る物体把持システムの構成の一例を示すブロック図である。
【
図3】
図3は、学習処理の一例を示すフローチャートである。
【
図4】
図4は、対象物の三次元データの一例を示す図である。
【
図5】
図5は、複数の対象物が配置された仮想空間のキャプチャ画像の一例を示す図である。
【
図6】
図6は、ロボットアームの制御に関する処理の一例を示す図である。
【
図7】
図7は、ロボットアームの制御に関する処理の別の一例を示す図である。
【
図8】
図8は、第1の実施形態に係る検出モデルの一例を示す図である。
【
図9】
図9は、第1の実施形態に係る特徴検出層(u1)が出力する特徴マップの一例を示す図である。
【
図10】
図10は、第1の実施形態に係る対象物の位置及び姿勢の推定結果の一例を示す図である。
【
図11】
図11は、第1の実施形態に係る対象物の把持位置の推定結果の別の一例を示す図である。
【
図12】
図12は、第1の実施形態に係るステレオカメラにより撮影されたバラ積み画像の一例を示す図である。
【
図13】
図13は、第1の実施形態に係るバラ積み画像とマッチングマップとの関係の一例を示す図である。
【
図14】
図14は、第1の実施形態に係る推定処理の一例を示すフローチャートである。
【
図15】
図15は、第1の実施形態に係る推定処理の一例を示す図である。
【
図16】
図16は、変形例に係るトレイを含むバラ積み画像の一例を示す図である。
【
図17】
図17は、変形例に係る位置ずれ推定モデルの一例を示す図である。
【
図18】
図18は、変形例に係る位置ずれ推定モデルの別の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、実施形態に係る画像処理装置及び画像処理方法について図面を参照して説明する。なお、この実施形態によりこの発明が限定されるものではない。また、図面における各要素の寸法の関係、各要素の比率などは、現実と異なる場合がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。また、1つの実施形態や変形例に記載された内容は、原則として他の実施形態や変形例にも同様に適用される。
【0010】
(第1の実施形態)
第1の実施形態における画像処理装置は、例えば物体把持システム1において用いられる。
図1は、第1の実施形態に係る画像処理装置を実装した物体把持システムの一例を示す図である。
図1に示す物体把持システム1は、図示しない画像処理装置10と、カメラ20と、ロボットアーム30とを備える。カメラ20は、例えば、ロボットアーム30と、ロボットアーム30が把持する対象物となる、バラ積みされたワーク41、42等との両方を撮影可能な位置に設けられる。カメラ20は、例えば、ロボットアーム30と、ワーク41、42の画像とを撮影し、画像処理装置10に出力する。なお、ロボットアーム30とバラ積みされたワーク41,42等とは別々のカメラで撮影してもよい。第1の実施形態におけるカメラ20には、
図1に示されるように、例えば公知のステレオカメラ等、複数の画像を撮影できるカメラが用いられる。画像処理装置10は、カメラ20から出力された画像を用いて、ワーク41、42等の位置及び姿勢を推定する。画像処理装置10は、推定されたワーク41、42等の位置及び姿勢に基づいて、ロボットアーム30の動作を制御する信号を出力する。ロボットアーム30は、画像処理装置10から出力された信号に基づいて、ワーク41、42等を把持する動作を行う。なお、
図1においては、複数の異なる種類のワーク41、42等が開示されているが、ワークの種類は1種類であってもよい。第1の実施形態においては、ワークが1種類である場合について説明する。また、ワーク41、42等は、位置及び姿勢が不規則であるように配置されている。
図1に示すように、例えば、複数のワークが上面視において重なるように配置されていてもよい。また、ワーク41、42は、対象物の一例である。
【0011】
図2は、第1の実施形態に係る物体把持システムの構成の一例を示すブロック図である。
図2に示すように、画像処理装置10は、カメラ20及びロボットアーム30と、ネットワークNWを通じて通信可能に接続されている。また、
図2に示すように、画像処理装置10は、通信I/F(インターフェース)11と、入力I/F12と、ディスプレイ13と、記憶回路14と、処理回路15とを備える。
【0012】
通信I/F11は、ネットワークNWを通じた外部装置とのデータ入出力の通信を制御する。例えば、通信I/F11は、ネットワークカードやネットワークアダプタ、NIC(Network Interface Controller)等によって実現され、カメラ20から出力される画像のデータを受信するとともに、ロボットアーム30に出力する信号を送信する。
【0013】
入力I/F12は、処理回路15に接続され、画像処理装置10の管理者(不図示)から受け付けた入力操作を電気信号に変換して処理回路15に出力する。例えば、入力I/F12は、スイッチボタン、マウス、キーボード、タッチパネル等である。
【0014】
ディスプレイ13は、処理回路15に接続され、処理回路15から出力される各種情報及び各種画像データを表示する。例えば、ディスプレイ13は、液晶モニタやCRT(Cathode Ray Tube)モニタ、タッチパネル等によって実現される。
【0015】
記憶回路14は、例えば、メモリ等の記憶装置により実現される。記憶回路14には、処理回路15により実行される各種のプログラムが記憶されている。また、記憶回路14には、処理回路15により各種のプログラムが実行される際に用いられる各種のデータが一時的に記憶される。記憶回路14は、機械(深層)学習モデル141を有する。さらに、機械(深層)学習モデル141はニューラルネットワーク構造141aと学習パラメータ141bを備えている。ニューラルネットワーク構造141aは、例えば、
図8の畳み込みニューラルネットワークb1のような公知のネットワークを応用したもので、後述する
図15に示されるネットワーク構造である。学習パラメータ141bは、例えば、畳み込みニューラルネットワークの畳み込みフィルタの重みであり、対象物の位置及び姿勢を推定するために学習され、最適化されるパラメータである。ニューラルネットワーク構造141aは、推定部152に備えられていても構わない。なお、本発明における機械(深層)学習モデル141は学習済みモデルを例として説明するが、これに限定されない。なお、以下において、機械(深層)学習モデル141を、単に「学習モデル141」と表記する場合がある。
【0016】
学習モデル141は、カメラ20から出力された画像から、ワークの位置及び姿勢を推定する処理に用いられる。学習モデル141は、例えば、複数のワークの位置及び姿勢と、当該複数のワークを撮影した画像とを教師データして学習することにより生成される。なお、第1の実施形態においては、学習モデル141が、例えば、処理回路15により生成されるが、これに限られず、外部のコンピュータにより生成されてもよい。以下においては、図示しない学習装置により、学習モデル141が生成及び更新される実施形態について説明する。
【0017】
第1の実施形態において、学習モデル141の生成に用いられる大量の画像は、例えば、仮想空間上に複数のワークを配置し、当該仮想空間の画像をキャプチャすることにより生成されてもよい。
図3は、学習処理の一例を示すフローチャートである。
図3に示すように、学習装置は、対象物の三次元データを取得する(ステップS101)。三次元データは、例えば公知の3Dスキャン等の手法により取得することができる。
図4は、対象物の三次元データの一例を示す図である。三次元データを取得することにより、仮想空間上において、ワークの姿勢を任意に変更して配置させることができる。
【0018】
次に、学習装置は、仮想空間上に、対象物を配置する際の各種条件を設定する(ステップS102)。仮想空間への対象物の配置は、例えば公知の画像生成ソフトウェア等を用いて行うことができる。配置する対象物の数や位置、姿勢などの条件は、画像生成ソフトウェアがランダムに対象物を生成するように設定することも可能だが、これに限らず、画像処理装置10の管理者が任意に設定してもよい。次に、学習装置は、設定された条件に従い、仮想空間上に対象物を配置する(ステップS103)。次に、学習装置は、例えば、複数の対象物が配置された仮想空間をキャプチャすることにより、配置された対象物の画像、位置及び姿勢を取得する(ステップS104)。第1の実施形態において、対象物の位置及び姿勢は、例えば三次元座標(x,y,z)により示され、対象物の姿勢は、物体の姿勢又は回転状態を表す四元数であるクオタニオン(qx,qy,qz,qw)により示される。
図5は、複数の対象物が配置された仮想空間のキャプチャ画像の一例を示す図である。
図5に示すように、仮想空間上には、複数の対象物W1a及びW1bが、それぞれランダムな位置及び姿勢にて配置される。また、以下において、ランダムに配置された対象物の画像を、「バラ積み画像」と表記する場合がある。次に、学習装置は、取得された画像と、配置された対象物の位置及び姿勢を記憶回路14に保存する(ステップS105)。さらに、学習装置は、ステップS102からステップS105をあらかじめ定められた回数繰り返す(ステップS106)。なお、ここで記憶回路14に保存される、上記ステップによって取得された画像と対象物が配置された位置及び姿勢との組み合わせを「教師データ」と表記する場合がある。ステップS102からステップS105までの処理を所定の回数繰り返すことにより、学習処理を繰り返し行うために十分な数の教師データが生成される。
【0019】
そして、学習装置は、生成された教師データを用いて所定の回数学習処理を行うことにより、ニューラルネットワーク構造141aにおいて重み付けとして用いられる学習パラメータ141bを生成し、又は更新する(ステップS107)。このように、三次元データが取得された対象物を仮想空間上に配置することにより、学習処理に用いられる、対象物の画像と、位置及び姿勢の組み合わせとを含む教師データを、容易に生成することができる。
【0020】
図2に戻って、処理回路15は、CPU(Central Processing Unit)等のプロセッサにより実現される。処理回路15は、画像処理装置10全体を制御する。処理回路15は、記憶回路14に記憶された各種のプログラムを読み取り、読み取ったプログラムを実行することで、各種の処理を実行する。例えば、処理回路15は、画像取得部151と、推定部152と、ロボット制御部153とを有することとなる。
【0021】
画像取得部151は、例えば、通信I/F11を通じて、バラ積み画像を取得し、推定部152に出力する。画像取得部151は、取得部の一例である。
【0022】
推定部152は、出力されたバラ積み画像を用いて、対象物の位置及び姿勢を推定する。推定部152は、例えば、学習モデル141を用いて、対象物の画像に対する推定処理を行い、推定結果をロボット制御部153に出力する。なお、推定部152は、例えば、対象物が配置されるトレイ等の位置及び姿勢をさらに推定してもよい。トレイの位置及び姿勢を推定する構成については、後に説明する。
【0023】
ロボット制御部153は、推定された対象物の位置及び姿勢に基づいて、ロボットアーム30を制御する信号を生成し、通信I/F11を通じてロボットアーム30に出力する。ロボット制御部153は、例えば、現在のロボットアーム30の位置及び姿勢に関する情報を取得する。そして、ロボット制御部153は、現在のロボットアーム30の位置及び姿勢と、推定された対象物の位置及び姿勢に応じて、ロボットアーム30が対象物を把持する際に移動する軌道を生成する。なお、ロボット制御部153は、トレイ等の位置及び姿勢に基づいて、ロボットアーム30が移動する軌道を修正してもよい。
【0024】
図6は、ロボットアームの制御に関する処理の一例を示す図である。
図6に示すように、推定部152は、バラ積み画像から、ターゲットとなる対象物の位置及び姿勢を推定する。同様に、推定部152は、バラ積み画像から、対象物が配置されたトレイ等の位置及び姿勢を推定してもよい。ロボット制御部153は、推定された対象物及びトレイ等のモデルに基づいて、ロボットアーム30の手先の位置の座標及び姿勢を算出し、ロボットアーム30の軌道を生成する。
【0025】
なお、ロボット制御部153は、ロボットアーム30が対象物を把持した後に、把持した対象物を整列させるためのロボットアーム30の動作を制御する信号を、さらに出力してもよい。
図7は、ロボットアームの制御に関する処理の別の一例を示す図である。
図7に示すように、画像取得部151は、カメラ20により撮影された、ロボットアーム30により把持された対象物を撮影した画像を取得する。推定部152は、ターゲットとなる、ロボットアーム30に把持された対象物の位置及び姿勢を推定し、ロボット制御部153に出力する。また、画像取得部151は、カメラ20により撮影された、把持された対象物の移動先となる、整列先のトレイ等の画像をさらに取得してもよい。その際、画像取得部151は、整列先のトレイ等に既に整列された対象物の画像(整列済み画像)をさらに取得する。推定部152は、整列先の画像、又は整列済み画像から、整列先となるトレイ等の位置及び姿勢、並びに既に整列済みである対象物の位置及び姿勢を推定する。そして、ロボット制御部153は、推定された、ロボットアーム30に把持された対象物の位置及び姿勢、整列先となるトレイ等の位置及び姿勢、並びに既に整列済みである対象物の位置及び姿勢に基づいて、ロボットアーム30の手先の位置の座標及び姿勢を算出し、対象物を整列させる際のロボットアーム30の軌道を生成する。
【0026】
次に、推定部152における推定処理について説明する。推定部152は、例えば公知のダウンサンプリング、アップサンプリング、スキップコネクションを持つ物体検出モデルを応用したモデルを用いて、対象物の特徴量を抽出する。
図8は、第1の実施形態に係る検出モデルの一例を示す図である。
図8に示す物体検出モデルにおいて、d1層は、例えばバラ積み画像P1(320×320ピクセル)を畳み込みニューラルネットワークb1を介してダウンサンプリングによって縦横40×40グリッドに区分し、各グリッドについて複数の特徴量(例えば256種類)を算出する。また、d1層より下位の層にあたるd2層は、d1層で区分されたグリッドを、d1層よりも粗く(例えば20×20グリッドに)区分して、各グリッドの特徴量を算出する。同様に、d1層及びd2層よりも下位の層にあたるd3層及びd4層は、d2層で区分されたグリッドを、それぞれより粗く区分する。d4層はアップサンプリングによって、より精細な区分で特徴量を算出し、同時にスキップコネクションs3によりd3層の特徴量と統合してu3層を生成する。スキップコネクションは、単純な加算、特徴量の連結でも良く、d3層の特徴量に対して畳み込みニューラルネットワークのような変換が加えられていても良い。同様にu3層をアップサンプリングして算出した特徴量とd2層の特徴量をスキップコネクションs2により統合してu2層を生成する。さらに同様にu1層を生成する。この結果、u1層においては、d1層と同様に、40×40グリッドに区分された各グリッドの特徴量が算出される。
【0027】
図9は、第1の実施形態に係る特徴抽出層(u1)が出力する特徴マップの一例を示す図である。
図9に示す特徴マップの水平方向は、40×40のグリッドに区分されたバラ積み画像P1の水平方向の各グリッドを示し、垂直方向は、垂直方向の各グリッドを示す。また、
図9に示す特徴マップの奥行方向は、各グリッドにおける特徴量の要素を示す。
【0028】
図10は、第1の実施形態に係る対象物の位置及び姿勢の推定結果の一例を示す図である。
図10に示すように、推定部は、対象物の位置を示す2次元座標(Δx,Δy)、対象物の姿勢を示すクオタニオン(qx,qy,qz,qw)、及びクラス分類のスコア(C0,C1,…,Cn)を出力する。なお、第1の実施形態においては、推定結果として、対象物の位置を示す座標のうち、カメラ20から対象物までの距離を示す深度の値は算出されない。深度の値を算出する構成については、後に説明する。なお、ここで言う深度とは、カメラの光軸に平行なz軸方向における、カメラのz座標から対象物のz座標までの距離をいう。なお、クラス分類のスコアはグリッドごとに出力される値であって、そのグリッドに対象物の中心点が含まれている確率である。例えば、対象物の種類がn種類だった場合に、これに“対象物の中心点が含まれていない確率”を加えてn+1個のクラス分類のスコアが出力される。例えば、対象物となるワークが1種類のみの場合は、2個のクラス分類のスコアが出力される。また、同一グリッド内に複数の対象物が存在する場合、より上に積まれている物体の確率を出力する。
【0029】
図10において、点CはグリッドGxの中心を示し、座標(Δx,Δy)である点ΔCは、例えば、検出された対象物の中心点を示す。すなわち、
図10に示す例において、対象物の中心は、グリッドGxの中心点Cから、x軸方向にΔx、y軸方向にΔyだけオフセットしている。
【0030】
なお、
図10に代えて、
図11に示すように対象物の中心以外の任意の点a、b、cを設定し、グリッドGxの中心の点Cからの任意の点a、b、cの座標(Δx1,Δy1、Δz1、Δx2,Δy2、Δz2、x3,Δy3、Δz3)を出力してもよい。なお、任意の点は対象物のどの位置に設定してもよく、1点でも複数の点でも構わない。
【0031】
なお、対象物の大きさに比してグリッドの区分が粗いと、複数の対象物が一つのグリッドに入ってしまい、各対象物の特徴が交じり合って誤検出するおそれがあるため、第1の実施形態においては、最終的に生成された精細な(40×40グリッドの)特徴量が算出される特徴抽出層(u1)の出力である特徴マップのみ利用する。
【0032】
また、第1の実施形態においては、例えばステレオカメラを用いて、左右2種類の画像を撮影することにより、カメラ20から対象物までの距離を特定する。
図12は、第1の実施形態に係るステレオカメラにより撮影されたバラ積み画像の一例を示す図である。
図12に示すように、画像取得部151は、左画像P1L及び右画像P1Rの2種類のバラ積み画像を取得する。また、推定部152は、左画像P1L及び右画像P1Rの両方に対して、学習モデル141を用いた推定処理を行う。なお、推定処理を行う際に、左画像P1Lに対して用いられる学習パラメータ141bの一部、またはすべてを、右画像P1Rに対する重み付けとして共有してもよい。なお、ステレオカメラではなく、1台のカメラを用い、カメラの位置をずらして、2か所で左右2種の画像に相当する画像を撮影してもよい。
【0033】
そこで、第1の実施形態における推定部152は、左画像P1Lの特徴量と、右画像P1Rの特徴量とを組み合わせたマッチングマップを用いることにより、対象物の誤認識を抑制する。第1の実施形態において、マッチングマップは、各特徴量について、右画像P1Rと左画像P1Lとで特徴量の相関の強弱を示す。すなわち、マッチングマップを用いることにより、各画像における特徴量に着目して、左画像P1Lと右画像P1Rとのマッチングを図ることができる。
【0034】
図13は、第1の実施形態に係るバラ積み画像とマッチングマップとの関係の一例を示す図である。
図13に示すように、左画像P1Lを基準とし、右画像P1Rとの対応をとったマッチングマップMLにおいては、左画像P1Lの対象物W1Lの中心点が含まれるグリッドの特徴量と、右画像P1Rに含まれる特徴量との相関が最も大きいグリッドMLaが強調して表示される。同様に、右画像P1Rを基準とし、左画像P1Lとの対応をとったマッチングマップMRにおいても、右画像P1Rの対象物W1Rの中心点が含まれるグリッドの特徴量と、左画像P1Lに含まれる特徴量との相関が最も大きいグリッドMRaが強調して表示される。また、マッチングマップMLにおいて相関が最も大きいグリッドMLaは、左画像P1Lにおける対象物W1Lが位置するグリッドに対応し、マッチングマップMRにおいて相関が最も大きいグリッドMRaは、右画像P1Rにおける対象物W1Rが位置するグリッドに対応する。これにより、左画像P1Lにおいて対象物W1Lが位置するグリッドと、右画像P1Rにおいて対象物W1Rが位置するグリッドとが一致することを特定できる。すなわち、
図12においては、一致するグリッドは、左画像P1LのグリッドG1Lと、右画像P1RのグリッドG1Rである。これにより、左画像P1Lにおける対象物W1LのX座標と、右画像P1Rにおける対象物W1RのX座標とに基づいて、対象物W1に対する視差を特定できるので、カメラ20から対象物W1までの深度zを特定することができる。
【0035】
図14は、第1の実施形態に係る推定処理の一例を示すフローチャートである。また、
図15は、第1の実施形態に係る推定処理の一例を示す図である。以降、
図12~
図15を用いて説明する。まず、画像取得部151は、
図12に示す左画像P1L及び右画像P1Rのように、対象物の左右の各画像を取得する(ステップS201)。次に、推定部152は、左右の各画像の水平方向の各グリッドについて、特徴量を算出する。ここで、上で述べたように、各画像を40×40のグリッドに区分し、各グリッドについて256個の特徴量を算出する場合、各画像の水平方向において、式(1)の左辺第1項及び第2項に示すような40行40列の行列が得られる。
【0036】
【0037】
次に、推定部152は、
図15に示す処理mを実行する。まず、推定部152は、例えば、式(1)により、左画像P1Lから抽出した特定の列の特徴量に、右画像P1Rから抽出した同じ列の特徴量を転置したものの行列積を計算する。式(1)において、左辺第1項は、左画像P1Lの特定の列の水平方向における1番目のグリッドにおける各特徴量l11乃至l1nが、それぞれ行方向に並んでいる。一方、式(1)の左辺第2項においては、右画像P1R特定の列の水平方向における1番目のグリッドの各特徴量r11乃至r1nが、それぞれ列方向に並んでいる。すなわち、左辺第2項の行列は、右画像P1Rの特定の列の水平方向にグリッドの各特徴量r11乃至r1mがそれぞれ行方向に並んだ行列を転置したものである。また、式(1)の右辺は、左辺第1項の行列と、左辺第2項の行列の行列積とを計算したものである。式(1)の右辺の1列目は、右画像P1Rから抽出した1グリッド目の特徴量と左画像P1Lから抽出した特定の列の水平方向の各グリッドの特徴量の相関を表し、1行目は、左画像P1Lから抽出した1グリッド目の特徴量と右画像P1Rから抽出した特定の列の水平方向の各グリッドの特徴量の相関を表す。すなわち、式(1)の右辺は、左画像P1Lの各グリッドの特徴量と、右画像P1Rの各グリッドの特徴量との相関マップを示す。なお、式(1)において、添字「m」は各画像の水平方向のグリッドの位置を示し、添え字「n」は各グリッドにおける特徴量の番号を示す。すなわち、mは1~40であり、nは1~256である。
【0038】
次に、推定部152は、算出された相関マップを用いて、行列(1)に示すような左画像P1Lに対する右画像P1RのマッチングマップMLを算出する。左画像P1Lに対する右画像P1RのマッチングマップMLは、例えば、相関マップの行方向に対してSoftmax関数を適用することにより算出される。これにより、水平方向の相関の値を正規化している。つまり、行方向の値をすべて合計すると1になるよう変換している。
【0039】
【0040】
次に、推定部152は、算出されたマッチングマップMLに、例えば、式(2)により、右画像P1Rから抽出された特徴量を畳み込む。式(2)の左辺第1項は、行列(1)を転置したものであり、左辺第2項は、式(1)の左辺第1項の行列である。なお、本発明では、相関を取るための特徴量と、マッチングマップに畳み込むための特徴量とは同じものを用いているが、抽出された特徴量から畳み込みニューラルネットワーク等によって、新たに相関を取るための特徴量と畳み込むための特徴量を別々に生成しても良い。
【0041】
次に、推定部152は式(2)で得られた特徴量を左画像P1Lから抽出された特徴量に連結させて、例え畳み込みニューラルネットワークによって新たな特徴量を生成する。このように、左右の画像の特徴量を統合することにより、位置、姿勢の推定精度が向上する。なお、
図15における処理mは複数回繰り返しても良い。
【0042】
【0043】
次に、推定部152はここで得られた特徴量から、例えば畳み込みニューラルネットワークによって位置、姿勢及びクラス分類を推定する。あわせて、推定部152は、算出された相関マップを用いて、行列(2)に示すような右画像P1Rに対する左画像P1LのマッチングマップMRを算出する(ステップS202)。右画像P1Rに対する左画像P1LのマッチングマップMRも、左画像P1Lに対する右画像P1RのマッチングマップMLと同様に、例えば、相関マップの行方向に対してSoftmax関数を適用することにより算出される。
【0044】
【0045】
次に、推定部152は、算出されたマッチングマップに、例えば、式(3)により、左画像P1Lの特徴量を畳み込む。式(3)の左辺第1項は、行列(2)であり、左辺第2項は、式(1)の左辺第2項の行列の転置前のものである。
【0046】
【0047】
次に推定部152は、あらかじめ設定しておいた閾値と、左画像P1Lから推定したターゲット(対象物)のクラス分類の推定結果が一番大きいグリッドを選択して比較する(ステップS203)。閾値をこえていなかった場合は、ターゲットが無いとして終了する。閾値をこえていた場合は、そのグリッドに対する右画像P1RとのマッチングマップMLから、一番大きい値のグリッドを選択する(ステップS204)。
【0048】
次に、選択したグリッドにおいて、右画像P1Rのターゲットのクラス分類の推定結果とあらかじめ設定しておいた閾値とを比較する(ステップS208)。閾値をこえていた場合は、そのグリッドに対する左画像P1LとのマッチングマップMLから一番大きい値のグリッドを選択する(ステップS209)。閾値を超えていない場合は、左画像P1Lの推定結果から選択したグリッドのクラス分類スコアを0にしてステップS203へ戻る(ステップS207)。
【0049】
次に、ステップS209にて選択したマッチングマップMLのグリッドと、ステップS204にて左画像P1Lの推定結果から選択したグリッドが等しいかを比較する(ステップS210)。グリッドが異なる場合は、ステップS204にて左画像P1Lの推定結果から選択したグリッドのクラス分類スコアを0にして、ステップS203のグリッドの選択に戻る(ステップS207)。最終的に、左画像P1L及び右画像P1Rで選択したグリッドの位置情報(例えば、
図1における水平方向xの値)の検出結果から視差を算出する(ステップS211)。
【0050】
次に、ステップS211から算出した視差をもとに、ターゲットの深度を算出する(ステップS212)。なお、複数のターゲットに対して深度を算出する場合は、ステップS211の後、左画像P1L及び右画像P1Rの推定結果から選択したグリッドのクラス分類スコアを0にしてからステップS203に戻り、以後、ステップS212までを繰り返せば良い。
【0051】
以上述べたように、第1の実施形態における画像処理装置10は、取得部と、推定部と、を備える。取得部は、バラ積みされたワークを撮影した第1の画像及び第2の画像を取得する。推定部は、第1の画像の特徴量と、第2の画像の特徴量とのマッチングマップを生成し、第1の画像と第2の画像それぞれに対してターゲットとなる各ワークの位置と姿勢とクラス分類スコアを推定し、前記アテンションマップを用いたマッチング結果と位置の推定結果に基づいて、ワーク位置を推定することにより、ステレオカメラからワークまでの深度を算出する。これにより、物体認識における誤検出を抑制できる。
【0052】
(変形例)
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて種々の変更が可能である。例えば、第1の実施形態では、対象物(ワーク)が1種類である場合について説明したが、これに限られず、画像処理装置10が、複数のワークの種類を検出するような構成であってもよい。また、画像処理装置10は、対象物を検出するだけでなく、対象物が配置されたトレイ等の位置や姿勢をさらに検出してもよい。
図16は、変形例に係るトレイを含むバラ積み画像の一例を示す図である。
図16に示す例において、画像処理装置10は、対象物が配置されたトレイの位置及び姿勢を特定することにより、ロボットアーム30がトレイに衝突しないような軌道を設定することができる。なお、検出する対象であるトレイは、障害物の一例である。画像処理装置10は、トレイ以外のその他の障害物となるものを検出するような構成であってもよい。
【0053】
また、画像処理装置10が、例えばバラ積み画像を40×40のグリッドに区分する例について説明したが、これに限られず、より細かな、あるいは、より粗いグリッドに区分して対象物を検出してもよく、また画素単位で推定処理を行ってもよい。これにより、画像処理装置10は、より精度よくカメラと対象物との距離を算出することができる。
図17は、変形例に係る位置ずれ推定モデルの一例を示す図である。
図17に示すように、画像処理装置10は、左画像P1Lと右画像P1Rのうち、推定位置周辺のグリッドよりもサイズが小さい部分を切り出して結合してもよい。そして、第1の実施形態における推定処理と同様に推定処理を行い、処理結果に基づいて位置ずれを推定してもよい。
【0054】
また、細かな、あるいは、粗いグリッド単位や画素単位で推定処理を行う場合に、第1の実施形態と同様に、左画像P1Lと右画像P1Rとで、それぞれ個別に推定処理を行ってもよい。
図18は、変形例に係る位置ずれ推定モデルの別の一例を示す図である。
図18に示す例では、画像処理装置10は、左画像P1Lと右画像P1Rとに対し、それぞれ別々に推定処理を行う。この場合においても、画像処理装置10は、第1の実施形態と同様に、それぞれの推定処理を行う際に、左画像P1Lに対する重み付けを、右画像P1Rに対する重み付けと共有してもよい。
【0055】
また、以上述べた推定処理を、バラ積みされたワーク41、42の画像に対してではなく、ロボットアーム30や、ロボットアーム30に保持されたワーク41、42、又は整列先に整列されたワーク41、42に対して行ってもよい。
【0056】
また、上記実施の形態により本発明が限定されるものではない。上述した各構成要素を適宜組み合わせて構成したものも本発明に含まれる。また、さらなる効果や変形例は、当業者によって容易に導き出すことができる。よって、本発明のより広範な態様は、上記の実施の形態に限定されるものではなく、様々な変更が可能である。
【符号の説明】
【0057】
1 物体把持システム
10 画像処理装置
20 カメラ
30 ロボットアーム
41、42 ワーク