(58)【調査した分野】(Int.Cl.,DB名)
前記ワークピース推定工程で基準位置及び姿勢を求めた前記ワークピースの被覆部を、当該ワークピースの位置情報及び姿勢情報に集積された前記パッチ画像に基づいて推定する被覆部推定工程をさらに含むことを特徴とする請求項1に記載の画像認識方法。
【発明を実施するための形態】
【0015】
本発明の実施形態における準備工程で使用するサンプルデータ取得装置10について説明する。
【0016】
図1に示すように、サンプルデータ取得装置10は、ワークピースWを既知の姿勢で設置することが可能な設置台11と、設置台11に設置された1個のワークピースWを上方から撮像する撮像装置12と、設置台11又は撮像装置12の姿勢を制御する制御部13とを備える。
【0017】
設置台11は、例えば、回転ステージであり、制御部13によって回転制御可能に構成されている。撮像装置12は、ここでは、1台のCCDカメラであり二次元撮像画像のデータを生成する。撮像装置12は、図示しない支柱や天井などに支持されて設置台11の上方に配置されている。
【0018】
制御部13によって設置台11又は撮像装置12の姿勢を制御して、また、必要に応じて設置台11に設置されたワークピースWを裏返して、撮像装置12にワークピースWを撮像させる。
【0019】
サンプルデータ取得装置10は、さらに、サンプル実画像生成部21、ポリゴンメッシュ生成部22、サンプル基準想定画像生成部23、サンプル画像対応付け部24、サンプル想定画像生成部25、画像分割部26、及び、タグ付与部27を備え、記憶装置14に接続されている。
【0020】
サンプル実画像生成部21は、予め設定された特定の方向から撮像装置12でワークピースWを撮像させて、サンプル実画像データを得る。特定の方向とは、例えば、上、下、右、左、前、後の6方向である。得られたサンプル実画像データは、撮像時のワークピースWの姿勢を示す姿勢情報と対応付けて記憶装置14に保存される。
【0021】
なお、
図2(a)に示すように、ワークピースWに、1点の基準位置O、及び1つの基準姿勢(基準方向)を予め定めておく。基準位置Oは、例えば、ワークピースWの重心、ワークピースWに形成された穴の中心などに設定すればよい。そして、各サンプル実画像データに対応付ける姿勢情報は、基準姿勢を基準とした、サンプル実画像の撮像時におけるワークピースWの姿勢の方向ずれを示す情報である。なお、姿勢情報を得るために、ワークピースWをその付近に位置させたチェッカーパターンと共に、撮像装置12で撮像してもよい。
【0022】
ポリゴンメッシュ生成部22は、ワークピースWの3次元形状モデルを示す3次元CADデータからポリゴンメッシュを生成する。3次元CADデータは、例えばワークピースWの設計データであり、記憶装置14に予め記憶されている。3次元CADデータからポリゴンメッシュを生成する手法は特に限定されず、周知の手法で行えばよく、市販のソフトウェアを利用してもよい。
【0023】
サンプル基準想定画像生成部23は、ワークピースWの3次元形状モデルを撮像装置12で、ワークピースWを撮像装置12で実際に撮像した方向と同じ方向から撮像したときに得られると想定されるサンプル基準想定画像データを生成する。
【0024】
具体的には、サンプル基準想定画像生成部23は、ポリゴンメッシュ生成部22で生成したポリゴンメッシュ毎に、ポリゴンメッシュの示す面(フェイス)の法線方向等に基づいて、ワークピースWの3次元形状モデルを撮像装置12で撮像したときに得られる陰影、輪郭線等を求めて、サンプル基準想定画像データを生成する。サンプル基準想定画像生成部23で生成されたサンプル基準想定画像データは、撮像想定時のワークピースWの姿勢を示す姿勢情報と対応付けて記憶装置14に保存される。
【0025】
サンプル画像対応付け部24は、同じ姿勢情報を対応付けられたサンプル実画像データとサンプル基準想定画像データとの対応付けを行う。具体的には、サンプル画像対応付け部24は、サンプル実画像及びサンプル基準想定画像から輪郭線等を抽出し、抽出した輪郭線等を対応付けすることによって対応付けを行う。
【0026】
サンプル画像対応付け部24は、サンプル基準想定画像におけるポリゴンメッシュ毎に、当該ポリゴンメッシュが示す面に対応するサンプル実画像の面における輝度を対応付ける。
【0027】
サンプル想定画像生成部25は、ワークピースWの3次元形状モデルを撮像装置12で、ワークピースWを撮像装置12で実際に撮像した方向とは異なる方向から撮像したときに得られると想定されるサンプル想定画像データを生成する。
【0028】
具体的には、サンプル想定画像生成部25は、ポリゴンメッシュ生成部22で生成したポリゴンメッシュ毎に、ポリゴンメッシュの示す面(フェイス)の法線方向等に基づいて、3次元形状モデルからワークピースWを撮像装置12で撮像したときに得られる陰影、輪郭線等を求めて、サンプル想定画像データを生成する。サンプル想定画像生成部25で生成されたサンプル想定画像データは、撮像想定時のワークピースWの姿勢を示す姿勢情報と対応付けて記憶装置14に保存される。
【0029】
画像分割部26は、各サンプル基準想定画像及びサンプル想定画像をそれぞれパッチ(小領域)に分割して、複数のサンプルパッチ画像を得る処理を行う。パッチは、例えば、予め定められた画素数×画素数分の長方形又は正方形の領域である。
【0030】
タグ付与部27は、画像分割部26で分割された各サンプルパッチ画像に対して、ワークピースWの位置関係情報、姿勢情報、及び位置関係情報と姿勢情報に関する信頼度情報をタグとして付与する。具体的には、位置関係情報は、サンプルパッチ画像に係る部分のワークピースWの基準位置Oに対する相対座標情報(例えば、XYZ軸座標)である。姿勢情報は、位置関係情報と同様に、サンプルパッチ画像に係る部分のワークピースWの基準角度に対する相対角度情報であり、例えばRx,Ry、Rzの3軸回りの回転角度、あるいは3×3の回転行列である。
【0031】
サンプルパッチ画像によっては、ワークピースWの基準位置Oまでの関係が一義的に求まらない場合と求まる場合とがあるため、タグ付与部27は、信頼度情報として重み付け係数を付与する。
【0032】
例えば、
図2(a)を参照して、ワークピースWの側辺部の一部を撮像したサンプルパッチ画像では、具体的に側辺部のどの領域を撮像した画像であるか不明である。このような場合には、信頼度が低いので、重み付け係数をそのぶんだけ低くしておく。さらに具体的には、あるサンプルパッチ画像がワークピースWの2つの部分の何れか一方を特定の方向から撮像したものであることが分かる場合、信頼度は50%であるので、このサンプルパッチ画像に付与する重み付け係数は0.5とする。一方、ワークピースWの角部などの特徴部分を特定の方向から撮像して得られたサンプルパッチ画像では、基準位置O及び姿勢が一義的に定まるので、信頼度は高く、重み付け係数を1.0とする。
【0033】
さらに、タグ付与部27は、サンプルパッチ画像を、該サンプルパッチ画像を構成する各画素(ピクセル)の輝度を順々に予め定めた閾値と比較する条件式を満たすか否かによって仕分けする二分木法によって分類する。そして、タグ付与部27は、サンプルパッチ画像毎に、分類に応じた番号付けしてラベリングを行う。
【0034】
具体的には、タグ付与部27は、例えば、左上の画素を起点として予め定められた順序に沿って各画素の輝度が閾値以上の場合には「0」、閾値未満の場合には「1」として、仕分けする。これにより、各サンプルパッチ画像に対して「100101・・・」などの数列が求まる。そして、この数列順にサンプルパッチ画像を並び代えて、各サンプルパッチ画像に番号を付与する。
【0035】
また、ある特定アドレスの画素の輝度と、他の特定アドレスの画素の輝度とを比較して、ある特定アドレス画素の輝度が、他の特定アドレスの画素の輝度以上である場合には「0」、未満である場合には「1」として、比較する画素を順次適宜選択して「001101・・・」などの数列を求め、この数列を前段落で述べた数列に追加してもよい。このように、数列を求めるための質問は、正否で回答され、その回答を0,1の2値に分類できるものであればよい。
【0036】
このように二分木法を用いて仕分けすることで、膨大な数に及ぶパッチサンプル画像の分類を単純な2進法分類の繰り返しに帰着させることができる。よって、電子演算器を用いれば短時間で分類することが可能となる。ただし、二分木法を用いた分類することに限定されず、サンプルパッチ画像から特徴パラメータを抽出するなどの周知の任意の画像分類方法で分類してもよい。
【0037】
そして、タグ付与部27は、
図2(b)に示すように、付与した番号順に、位置関係情報、姿勢情報、信頼度情報、及び数列を対応付けて、各サンプルパッチ画像をサンプルパッチ画像データベースとして記憶装置14に保存する。
【0038】
次に、本発明の実施形態における画像認識方法で使用するワークピース位置姿勢認識装置30を備えたピッキングアップ・システム40について説明する。
【0039】
図3に示すように、ワークピース位置姿勢認識装置30は、ホッパ(貯留槽)41内に山積みされたワークピースWの基準位置、姿勢及び距離を求める装置である。ここでは、ワークピースWは同一形状であり、ホッパ41内に3次元的に任意の位置及び姿勢で多数山積みされている。
【0040】
ワークピース位置姿勢認識装置30は、山積みされたワークピースWのうち、最上部付近に位置し、ピックアップされるに適したワークピースWを決定する。なお、本ワークピース位置姿勢認識装置30は、ワークピースWが乱雑に山積みされている場合に限らず、ワークピースWが整列して配置されている場合でも、同様に適用可能である。
【0041】
ピッキングアップ・システム40は、ワークピース位置姿勢認識装置30から供給されるワークピースWの基準位置O、姿勢及び距離に応じて、ワークピースWを一つずつピックアップするロボット42を備える。ロボット42は、アーム43と、アーム43のエンドエフェクタであるハンド44と、アーム43及びハンド44の動作を制御するロボット制御部45とを備える。
【0042】
ロボット制御部45は、ワークピース位置姿勢認識装置30から供給された、ピックアップすべきワークピースWの基準位置情報、姿勢情報及び距離情報を、ロボット座標系に変換して、このワークピースWをハンド44でピックアップするように、アーム43及びハンド44を制御する。
【0043】
ピッキングアップ・システム40は、さらに、ホッパ41内に山積みされたワークピースWを上方から撮像する1台もしくは複数台の撮像装置46を備える。撮像装置46は、例えば2台のCCDカメラであり、それぞれ別の角度からの二次元撮像画像を生成する。2台の撮像装置46は、図示しない支柱や天井などに支持され、離間してホッパ41の上方に配置されている。2台の撮像装置46は、山積みされたワークピースWを重複して撮像する。
【0044】
ワークピース位置姿勢認識装置30は、画像処理部31、画像分割部32、対応サンプルパッチ画像分類部33、集積部34、ワークピース推定部35、被覆部推定部36、実ワークピース決定部37、及びピックアップ決定部38を備え、記憶装置14に接続されている。
【0045】
画像処理部31は、2台の撮像装置46により撮影された画像を取り込み、所定の処理を行った画像データを記憶装置14に格納する。
【0046】
画像分割部32は、画像処理部31で処理された画像を複数のパッチ(小領域)に分割して、複数のパッチ画像を得る処理を行う。このパッチは、サンプルデータ取得装置10の画像分割部26でサンプル画像が分割されたパッチと同じ画素数×画素数からなる領域である。ここでは、画像分割部32で分割されたパッチの縮尺が、サンプルデータ取得装置10の画像分割部26で分割されたパッチの縮尺とほぼ同じになるように調整する。
【0047】
対応サンプルパッチ画像分類部33は、画像分割部32で分割された各パッチ画像が、画像分割部26で分割されたサンプルパッチ画像の何れに最も類似するかを、記憶装置14に格納されたサンプルパッチ画像データベースから探索する。
【0048】
ここでは、対応サンプルパッチ画像分類部33は、前述したタグ付与部27で求めた数列と同じ方法で画像分割部32で分割された各パッチ画像に対応する数列を求める。対応サンプルパッチ画像分類部33は、各パッチ画像に対応する数列と数列が一致するサンプルパッチ画像を探索する。
【0049】
対応サンプルパッチ画像分類部33は、タグ付与部27と同様に二分木法で数列を求め、求めた数列をタグ付与部27で付与した数列と対比するので、短時間で一致するサンプルパッチ画像を探索することが可能となる。
【0050】
そして、対応サンプルパッチ画像分類部33は、各パッチ画像に対応する数列と数列が全て一致するサンプルパッチ画像、もしくは数列のうち閾値個以上の数列が一致するサンプルパッチ画像を、最も類似するサンプルパッチ画像とする。なお、2つのワークピースWが重なり合って、パッチ画像に分岐が存在するような場合がある。このような場合は、数列が一致又は類似するサンプルパッチ画像は存在しない。
【0051】
対応サンプルパッチ画像分類部33は、パッチ画像に最も類似するサンプルパッチ画像を、当該パッチ画像に対応するサンプルパッチ画像として分類する。
【0052】
集積部34は、それぞれのパッチ画像により最も基準位置として示される地点がどこになるかを集積する。具体的には、対応サンプルパッチ画像分類部33で探索したサンプルパッチ領域にラベリングされた基準位置情報毎に、重み付け係数を集積する。
【0053】
詳細には、集積部34は、2台の撮像装置46で撮像した画像を分割して得た全てのパッチ画像にそれぞれ対応する、対応サンプルパッチ画像分類部33で探索したサンプルパッチ画像に対応して保存されている基準位置情報毎に、重み付け係数の総和値(以下、この総和値を「得点」という)を算出する。
【0054】
ワークピース推定部35は、
図4に示すように、集積部34で集積された得点に基づいて、ワークピースWの基準位置Oを推定する。相対的にホッパ41の下方に存在するワークピースWは、上方のワークピースWに一部又は全部が隠される。そのため、下方に存在するワークピースWの基準位置Oは、高い得点を得ることができず、最上部に位置するワークピースWほど、基準位置Oが高い得点を得ることができる。
【0055】
よって、高得点を得た基準位置情報が示す基準位置Oで姿勢情報が示す姿勢にあるワークピースWは、最上部付近にあり露出していると推定することができる。そこで、ワークピース推定部35は、集積部34で算出した得点が予め定めた閾値を超えた場合、その得点を獲得した基準位置情報が示す基準位置Oで姿勢情報が示す姿勢(これらを合せて、「推定位置姿勢」という)にあるであろうと推定されるワークピースWを選出する。前記閾値は、例えば、選出されたワークピースWは、全て露出しているものも、一部が露出していないものも含まれるように設定する。
【0056】
なお、
図4では、視覚的に理解を容易にするために、重み付け係数の総和値である基準位置情報のみから得点を集積した様子を概念的に示している。このように画面内にある得点を高さで順位づけすることにより、検出したい部品数のみに絞って探索をかけることが可能となりより高速な検出が可能となる。例えば、3つ検出したい場合には、得点集積が高い上位3つからのみ推定位置姿勢を算出すればよい。
【0057】
ところで、集積部34で集積された得点が閾値よりは高いがある程度低いとき、その得点を得て選定されたワークピースWは少なくとも一部が他のワークピースW等によって被覆されていると考えられる。選定されたワークピースWの被覆部(非露出部)がロボット42のピックアップ部位(把持部位)である場合、このワークピースWはロボット42でピックアップできない。よって、ワークピースWの被覆部を特定することが望ましい。
【0058】
そこで、被覆部推定部36は、記憶装置14に保存されたサンプルパッチ画像データベースを再度利用して、ワークピースWが推定位置姿勢にあるときのワークピースWの形状(どの場所のパッチ画像から構成されているべきか)から、実際に重み付け係数を集積したパッチ画像の集合を差し引いた領域を、被覆部と推定する。
【0059】
例えば、ワークピース推定部35で推定された姿勢が、サンプルパッチA,B,C,D,Eからなる位置姿勢であるとすると、撮像装置46で撮影されているワークピースWにおいてもA,B,C,D,Eの箇所のパッチ画像から基準位置情報が集積されることが期待される。しかし、例えば、Bのサンプルパッチに対応するパッチ画像の領域から、ワークピースWの基準位置Oを基準位置情報として重み付け係数を集積していなければ、Bの領域は被覆していると推定する。
【0060】
実際に山積みとなっているワークピースWの姿勢は任意であるため、サンプル画像を撮像した姿勢とは一致しない状態の姿勢が存在する。すなわち、選出されワークピースWの姿勢情報が示す姿勢は、離散的なデータベースの中から選択された最も似た姿勢であるので、実際のワークピースWの姿勢とは少し異なる場合がある。そのため、ワークピース推定部35で選定されたワークピースWの推定位置姿勢が実際位置姿勢と異なり、ロボット42でのピックアップに影響が生じるおそれがある。
【0061】
そこで、実ワークピース決定部37は、ワークピース推定部35で選出したワークピースWの実際の基準位置O及び姿勢(これらを合せて、「実際位置姿勢」という)を、実際のワークピースWを2台の撮像装置46で撮像した画像をステレオ画像処理することによって求める。
【0062】
具体的には、実ワークピース決定部37は、2台の撮像装置46が撮像した画像から推定位置姿勢に基準位置Oの位置、姿勢が近似するワークピースWを選定し、その画像に微分処理を施すなどの周知の方法でエッジを抽出し、そのワークピースW全体の輪郭線を求める。
【0063】
このとき、画像処理を行うべきワークピースWの基準位置Oの位置及び姿勢は予め推定されているので、2台の撮像装置46で撮像された画像間における対応点を誤認識なく対応付けることができ、対応点の探索等に要する画像処理量も少ない。
【0064】
また、実ワークピース決定部37は、ワークピースWまでの距離(
図3における垂直方向位置)を求める。撮像装置46から対応点(ワークピースWの基準位置O)までの距離Zは、2台の撮像装置46間の距離L、撮像装置46の焦点距離f、2台の撮像装置46間の対応点の視差(ずれ量)dから、次式(1)によって求めることができる。
【0065】
Z=L×f/d ・・・ (1)
これにより、ロボット42で選定したワークピースWをピックアップすることが可能となる。
【0066】
なお、実ワークピース決定部37で、実際のワークピースWを2台の撮像装置46で撮像した画像からワークピースWの輪郭線を求めて被覆部を特定してもよいが、被覆部がピックアップ部位であることが分かった場合、この画像処理は無駄となる。よって、実ワークピース決定部37は、被覆部推定部36で被覆部がピックアップ部位でないと推定されたワークピースWに対してのみ実際位置姿勢を求めればよい。
【0067】
ピックアップ決定部38は、実ワークピース決定部37で求めた実際のワークピースWの実際位置姿勢及び距離に基いて、ロボット42での取り出しに適しているワークピースWを決定する。そして、決定したワークピースWの実際位置姿勢及び距離を示す情報をロボット制御部45に送信する。取り出すワークピースWの決定手法は特に問わないが、例えばピックアップする際のロボット42の制御が容易であるワークピースW、あるいは、ピックアップ後に裏返し等が必要ないワークピースWを選択すればよい。
【0068】
以下、
図5を参照して、本発明の実施形態における画像認識方法について説明する。
【0069】
まず、上述したサンプルデータ取得装置10を用いて、準備工程を行う(S10)。
【0070】
この準備工程では、最初に、1個のワークピースWを設置台11に設置する。そして、制御部13で設置台11を回転等させながら、予め設定された特定の方向から撮像装置12でワークピースWを撮像して、サンプル実画像生成部21は、サンプル実画像データを得る(S11)。サンプル実画像データは、ワークピースWの姿勢情報と対応付けて記憶装置14に保存する。
【0071】
次に、ポリゴンメッシュ生成部22は、ワークピースWの3次元形状モデルを示す3次元CADデータからポリゴンメッシュを生成する(S12)。
【0072】
そして、サンプル基準想定画像生成部23は、ワークピースWの3次元形状モデルを撮像装置12で、ワークピースWを撮像装置12で実際に撮像した方向と同じ方向から撮像したときに得られると想定されるサンプル基準想定画像データを生成する(S13)。
【0073】
次に、サンプル画像対応付け部24は、同じ姿勢情報を対応付けられたサンプル実画像とサンプル基準想定画像との対応付けを行う(S14)。
【0074】
そして、サンプル画像対応付け部24は、サンプル基準想定画像におけるポリゴンメッシュ毎に、当該ポリゴンメッシュが示す面にS14で対応付けたサンプル実画像の面における輝度を対応付ける(S15)。
【0075】
次に、サンプル想定画像生成部25は、ワークピースWの3次元形状モデルを撮像装置12で、ワークピースWを撮像装置12で実際に撮像した方向とは異なる方向から撮像したときに得られると想定されるサンプル想定画像データを生成する(S16)。
【0076】
次に、画像分割部26は、各サンプル基準想定画像及びサンプル想定画像をそれぞれパッチに分割して、複数のサンプルパッチ画像を得る(S17)。
【0077】
次に、タグ付与部27は、S16で得た各サンプルパッチ画像に対して、ワークピースWの位置関係情報、姿勢情報、及び位置関係情報と姿勢情報に関する信頼度情報をタグとして付与すると共に、上述した条件式から数列を求めて番号付けしてラベリングを行う。さらに、タグ付与部27は、付与した番号順に、位置関係情報、姿勢情報、信頼度情報、及び数列を対応付けて、各サンプルパッチ画像データをサンプルパッチ画像データベースとして記憶装置14に保存する(S18)。
【0078】
そして、準備工程(S10)完了後に、上述したピッキングアップ・システム40を用いて、ワークピースWの画像認識工程(S20)を行う。
【0079】
この画像認識工程では、最初に、ホッパ41の上方から、ランダムに山積みされたワークピースWを2台の撮像装置46で撮像する(S21)。このS21が本発明の撮像工程に相当する。
【0080】
そして、画像処理部31は、2台の撮像装置46により撮影された画像データを記憶装置14に格納する(S22)。
【0081】
次に、画像分割部32は、S22で処理された画像を複数のパッチに分割に分割して、複数のパッチ画像を得る(S23)。
【0082】
次に、対応サンプルパッチ画像分類部33は、S23で分割された各パッチ画像が、S13で分割されたサンプルパッチ画像の何れに最も類似するかを記憶装置14に格納されたサンプルパッチ画像データベースから探索する。この探索結果に基づいて各パッチ画像を分類する(S24)。このS24が、本発明の分類工程に相当する。
【0083】
次に、集積部34は、対応サンプルパッチ画像分類部33で探索したサンプルパッチ領域にラベルングされた基準位置情報及び姿勢情報毎に、重み付け係数の総和を集積した得点を求める(S25)。このS25が本発明の集積工程に相当する。
【0084】
次に、ワークピース推定部35は、S25で集積された得点が前記閾値を超えるワークピースWを選定し、選定したワークピースWの基準位置O及び姿勢を推定する(S26)。このS26が、本発明のワークピース推定工程に相当する。
【0085】
次に、被覆部推定部36は、S26で選定したワークピースWのうち、得点が低いワークピースWの被覆部を推定する(S27)。このS27が本発明の被覆部推定工程に相当する。
【0086】
次に、実ワークピース決定部37は、S27で被覆部がピックアップ部位であると推定されたワークピースWを除き、S26で選定したワークピースWの実際の基準位置O及び姿勢を求める(S28)。また、実ワークピース決定部37は、このワークピースWの実際の距離を求める(S29)。
【0087】
そして、ピックアップ決定部38は、S28及びS29で求めた実際のワークピースWの基準位置O、姿勢及び距離から、ロボット42での取り出しに適しているワークピースWを決定する(S30)。
【0088】
そして、最後に、ロボット42を用いて、S30で決定したワークピースWをピックアップするピックアップ工程(S31)を行う。
【0089】
以上、本発明の実施形態について説明したが、本発明は上述の実施形態に限定されず、本発明の主旨を逸脱しない範囲において適宜変形して適用可能である。
【0090】
例えば、本実施形態では、ワークピース位置姿勢認識装置30は被覆部推定部36を備え、画像認識方法はワークピースWの被覆部を推定する工程(S27)を備える場合について説明した。しかし、被覆部推定部36、及び被覆部を推定する工程を備えないものであってもよい。