認識処理方法およびこの方法を用いた画像処理装置
【課題】認識精度を確保しつつ、一定の時間内に対象物を認識する処理を終了する。
【解決手段】認識対象物のモデルの特徴点群から各辺の長さが所定の基準値を満たす三角形を抽出し、モデル三角形として登録する。認識対象物の2次元画像から抽出された特徴点群についても同様に、基準値を満たす三角形を抽出して比較対象三角形として登録する。つぎにモデル三角形と比較対象三角形とを順に対応づけ、頂点の対応関係を複数とおりに設定して、対応づけられた頂点(AとA´、BとB´、CとC´)の座標を用いて、両三角形の対応関係を表す変換パラメータを算出する処理と、モデルの特徴点群と対象物の特徴点群との関係に対する当該変換パラメータの適合度を求める処理とを実行する。そして、対応づけ毎に求められた適合度に基づいてモデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定することによって、対象物を認識する。
【解決手段】認識対象物のモデルの特徴点群から各辺の長さが所定の基準値を満たす三角形を抽出し、モデル三角形として登録する。認識対象物の2次元画像から抽出された特徴点群についても同様に、基準値を満たす三角形を抽出して比較対象三角形として登録する。つぎにモデル三角形と比較対象三角形とを順に対応づけ、頂点の対応関係を複数とおりに設定して、対応づけられた頂点(AとA´、BとB´、CとC´)の座標を用いて、両三角形の対応関係を表す変換パラメータを算出する処理と、モデルの特徴点群と対象物の特徴点群との関係に対する当該変換パラメータの適合度を求める処理とを実行する。そして、対応づけ毎に求められた適合度に基づいてモデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定することによって、対象物を認識する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、認識対象物の特徴を表す点の集合(以下、「特徴点群」ともいう。)について、あらかじめ登録された認識対象物のモデルの特徴点群との対応関係から認識対象物の位置や姿勢を認識する方法、およびこの認識処理方法が適用された画像処理装置に関する。
【背景技術】
【0002】
2次元の画像処理で処理対象画像中の認識対象物の位置や姿勢を認識する場合の代表的な方法として、あらかじめ登録したモデル画像と処理対象の画像との間の相関値を求める方法がある(たとえば、特許文献1)。また、ステレオカメラを用いた3次元計測処理により認識対象物の特徴点の3次元座標を複数求めた後に、3次元空間におけるこれらの特徴点の分布パターンとモデルの特徴点群の分布パターンとの相関値を求め、空間における認識対象物の位置や姿勢を認識する場合もある(たとえば特許文献2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−346232号公報
【特許文献2】特開2004−295223号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
2次元の画像処理においては、認識対象物の位置や向きがモデルとは異なるものになるほか、カメラと認識対象物との距離のばらつきによって画像中の認識対象物の大きさが変わる場合もある。このように、モデル画像とは違う状態の計測対象物を精度良く認識するために、従来では、一般に向きや大きさの異なる複数種のモデル画像を登録し、モデル画像毎に相関値を求めるようにしている。しかし、このような方法では、モデル画像との照合回数が増えるほど、処理に時間がかかってしまう。
【0005】
3次元の認識処理を行う場合には、モデルの特徴点群の位置や方向を種々に変更して、認識対象物の特徴点群に対する相関値を求める処理を繰り返し実行する。この場合にも、モデルの特徴点群の位置および方向の組み合わせが多岐にわたるほど、処理にかかる時間が長くなるという問題が生じる。
【0006】
このように、2次元、3次元のいずれの処理においても、認識の精度を向上しようとすると、処理時間が長くなってしまう。この種の認識処理は、計測や検査の前処理として行われることが多いため、処理時間が長くなることは望ましいことではない。
【0007】
この発明は、特に2次元の認識処理における問題に着目し、認識精度を確保しつつ、一定の時間内に処理を終了できるようにすることを、課題とするものである。
【課題を解決するための手段】
【0008】
この発明による認識処理方法は、認識対象物を撮像することにより生成された2次元画像から抽出された認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するもので、以下の第1〜第4のステップを実行することを特徴とする。
【0009】
第1ステップでは、モデルの特徴点群に含まれる各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する。第2ステップでは、認識対象物の特徴点群に含まれる各特徴点を特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定する。第3ステップでは、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する。第4ステップでは、第3ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する。
【0010】
認識対象物の位置や姿勢がモデルと異なっていても、モデルの所定数の特徴点に対する対応点が判明している場合には、これら対応関係にある特徴点の座標を用いて、モデルの特徴点群を認識対象物の特徴点群と同様の状態に変換するための変換パラメータを求めることができる。上記の方法は、この原理を逆に応用したものである。
【0011】
すなわち、この方法では、モデルの特徴点群と認識対象物の特徴点群との対応関係は不明であるが、各特徴点群からそれぞれn個ずつ抽出した特徴点を対応関係にあると仮定し、両者間の関係を表す変換パラメータを求める。実際にこれらの特徴点が対応関係にあるならば、特徴点群の他の特徴点間の関係も、同様の変換パラメータにより表すことができるはずである。したがって、上記の変換パラメータを用いて認識対象物またはモデルの特徴点群を変換した場合、その変換後の座標が他方の特徴点群に適合する度合は、正しく対応づけられていない特徴点の組み合わせから求めた変換パラメータによる場合の適合の度合より高くなると考えられる。よって、特徴点の組み合わせの対応づけ毎に求めた変換パラメータについて、モデルの特徴点と認識対象物の特徴点との関係に対する適合度を求め、これらの適合度のうち最大の適合度を得たときの変換パラメータを特定すれば、認識対象物の位置や姿勢などを高い確度で認識することができる。
【0012】
なお、特定される変換パラメータは、全ての対応づけの中で最大の適合度が得られたときの変換パラメータであるのが望ましいが、これに限定されるものではない。たとえば、対応づけの途中で適合度があらかじめ定めた目標値以上になった時点で処理を打ち切り、その適合度を得たときの変換パラメータを特定してもよい。
【0013】
上記の方法によれば、認識対象物を高い精度で認識することが可能になる。また、特徴点間の距離の基準値を調整することによってn個の特徴点の組み合わせの数を絞り込むことができるから、変換パラメータや適合度の算出に要する時間が長くなりすぎるのを防止することができる。
【0014】
上記の方法の第3ステップでは、特徴点群の位置ずれ量および回転ずれ量、ならびに倍率を反映した変換パラメータを用いることができる。たとえばアフィン変換の変換パラメータを用いることができる。
【0015】
上記方法の好ましい態様では、第1ステップおよび第2ステップにおいて、特定数nを3として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する。三角形は、面を表す最小の単位であり、認識対象物の大きさや形状を表現しやすい。また、モデルの組み合わせと比較対象の組み合わせとの間での対応づけも、3点の場合には6通りですみ、対応づけを容易に行うことができる。
【0016】
さらに好ましい態様では、第1ステップおよび第2ステップでは、一辺の長さが上記の上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する。このようにすれば、特徴点の組み合わせ数を大幅に削減して処理を高速化することができる。また、ユーザーにとっても、対象物に対する三角形の設定状態を推測しやすくなるから、上限値や下限値の設定が容易になる。
【0017】
特定数nを3とする場合の他の態様では、第1ステップおよび第2ステップにおいて、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。さらに別の態様では、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。
これらの態様でも、三角形の辺の長さや角度によって特徴点の組み合わせ数を絞り込むことができるから、処理時間を短縮することができる。
【0018】
上記の認識処理方法が適用された画像処理装置は、認識対象物の2次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するものである。この画像処理装置は、特徴点群中の各特徴点間の距離について所定の基準値を入力するための入力手段と、モデルの特徴点群中の各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、モデル設定手段により設定されたモデルの組み合わせを特定するための情報をメモリに登録する登録処理手段と、入力画像から抽出された特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が上記の基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する。
【0019】
上記構成の画像処理装置によれば、最終的に特定された変換パラメータにより画像中の認識対象物の位置や姿勢を判別し、その判別結果を出力することができる。また特定された変換パラメータにより処理対象の画像の各点を変換することにより画像のずれを補正した後に、補正後の画像を対象に、パターン認識などの画像処理を実行することもできる。
【発明の効果】
【0020】
上記の認識処理方法および画像処理装置によれば、認識対象物の特徴点群とモデルの特徴点群との間で対応関係にある特徴点には共通の変換パラメータを適用できるという原則に基づき、各特徴点群間の対応関係を精度良く認識することができる。また、認識対象物の位置や姿勢が変化しても、特徴点の数が極端に変わることはないから、処理時間が長引くおそれがない。また、認識対象物の大きさや形状に応じて特徴点間の距離に対する基準値を調整することによって、照合対象となる特徴点の組み合わせを絞り込むことができるから、処理時間を短縮することができる。
【図面の簡単な説明】
【0021】
【図1】画像処理装置のブロック図である。
【図2】三角形の対応づけ例を示す説明図である。
【図3】モデル画像および処理対象画像ならびにこれらのエッジ画像を、特徴点の対応関係とともに示す説明図である。
【図4】モデル三角形の登録処理の流れを示すフローチャートである。
【図5】本処理の流れを示すフローチャートである。
【図6】変換行列の特定処理の詳細な流れを示すフローチャートである。
【図7】変換行列の特定処理の詳細な流れの他の例を示すフローチャートである。
【図8】図7の続きのフローチャートである。
【図9】3次元モデルおよび認識対象物の例を特徴点の対応関係とともに示す説明図である。
【図10】3次元認識処理を用いたピッキングシステムの例を示す説明図である。
【図11】ピッキングシステムのブロック図である。
【図12】ピッキング対象の部品の3次元モデルと実際の部品とを特徴点の対応関係とともに示す説明図である。
【図13】ロボット制御のために画像処理装置で実行される認識処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0022】
図1は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置は、工業製品や印刷物など、形状や大きさがほぼ同一の認識対象物を1つずつ撮像し、生成された画像中の認識対象物の位置や姿勢を認識するためのもので、撮像のためのカメラ1とコントローラ2とにより構成される。
【0023】
コントローラ2には、画像入力部3,エッジ抽出部4、画像メモリ5、入出力インターフェース6、画像出力部7、モニタ8、制御部10などが含まれる。画像入力部3は、カメラ1用のインターフェースやA/D変換回路を含むもので、カメラ1からの濃淡画像信号を入力してディジタル変換する。変換後のディジタル画像は、画像メモリ5に格納されるとともに、エッジ抽出部4に与えられる。
【0024】
エッジ抽出部4には、ディジタル画像を微分処理して濃度勾配の大きさを画素毎に算出する微分回路と、算出された濃度勾配の大きさを所定のしきい値と比較する比較回路とが含まれる。これらの回路による処理により、ディジタル画像は、エッジ構成画素を黒画素とし、その他の画素を白画素とする2値のエッジ画像に変換される。この変換後のエッジ画像も画像メモリ5に格納される。
【0025】
入出力インターフェース6は、図示しない入力部(キーボード、マウスなど)や外部機器に接続される。画像出力部7には、D/A変換回路やモニタ8へのインターフェース回路などが含められる。この画像出力部7は、制御部10からの指令に応じて画像メモリ5やRAM13から表示対象のデータを読み出し、これをモニタ8に表示させることができる。
【0026】
制御部10は、CPU11、ROM12、RAM13、およびハードディスク14により構成される。ハードディスク14には、認識処理を実行するのに必要なプログラムや設定データなどが格納されている。また、RAM13には、これらのプログラムや設定データに基づく処理によって設定された特徴点の組み合わせや、後記する一致度などのデータが格納される。
【0027】
図1には図示していないが、計測対象物がカメラ1の視野に入ると、図示しないセンサまたはCPU11からカメラ1にトリガ信号が入力される。カメラ1は、このトリガ信号に応じて撮像を行う。以下、この撮像により生成される認識対象物のディジタル画像を「処理対象画像」といい、認識対象物のことを、単に「対象物」という。
【0028】
ハードディスク14には、あらかじめ対象物のモデルを撮像して得られたモデル画像やそのエッジ画像ならびに後記するモデル三角形に関する情報が登録されている。
対象物の処理対象画像およびエッジ画像が画像メモリ5に格納されると、CPU11は、まず、エッジ画像を用いて、その画像に分布する特徴点群(以下では、「処理対象の特徴点群」という。この実施例の特徴点群はエッジ構成点の集合である。)をモデルのエッジ画像における特徴点群(以下、「モデルの特徴点群」という。)と照合する処理により、対象物の位置や向きなどを認識する。さらに、この認識結果に基づき、処理対象画像中の対象物を含む範囲に計測領域を設定する処理や、この計測領域内の対象物がモデル画像と同様の姿勢になるように補正する処理を実行した後に、本格的な計測処理や検査の処理に移行する。
【0029】
以下、処理対象の特徴点群とモデルの特徴点群とを照合する処理について、詳細に説明する。
【0030】
処理対象画像中の対象物の位置や向きは、モデル画像とは異なるものになることが多い。また、大きさについても、カメラ1に対する距離によっては、モデル画像の大きさと異なるものになる可能性がある。
【0031】
したがって、モデルの特徴点群中の一特徴点の座標を(mxi,myi)とし、処理対象の特徴点群において(mxi,myi)に対応する点の座標を(txi,tyi)とすると、(txi,tyi)は、(mxi,myi)をアフィン変換した場合の変換後の座標に相当すると考えられる。
【0032】
ここで、x,yの各軸方向における対象物の位置ずれ量をdx,dyとし、モデルに対する対象物の回転角度をθとし、モデルに対する計測対象物のx方向における倍率をbx、y方向における倍率をbyとすると、上記の2点の関係は、下記の(1)式のように表される。
【0033】
【数1】
【0034】
上記の(1)式に示すように、2次元の画像処理においては、モデルと対象物との対応関係を、dx,dy、θ,bx,byの5つのパラメータによって表すことができる。以下では、これらのパラメータを変換パラメータと呼び、これら変換パラメータによって特定される行列Hを変換行列と呼ぶ。変換行列Hも、広義の変換パラメータであると考えられる。よって、この変換行列Hまたはdx,dy、θ,bx,byを求める処理によって、対象物の状態を認識することができる。
【0035】
ここで、(1)式を展開すると、(1−1)式および(1−2)式を導出することができる。
txi=mxi・T00+myi・T01+T02 ・・・(1−1)
tyi=mxi・T10+myi・T11+T12 ・・・(1−2)
なお、T01〜T12は、下記のとおり、変換行列Hの各要素を置き換えたものである。
T00=bx・cosθ ・・・(a)
T01=−by・sinθ ・・・(b)
T02=dx ・・・(c)
T10=bx・sinθ ・・・(d)
T11=by・cosθ ・・・(e)
T12=dy ・・・(f)
【0036】
上記によれば、モデルの特徴点群中の3点の座標をそれぞれ(mxi,myi)として、これらの点につき、処理対象の特徴点群中における対応点の座標(txi,tyi)を特定することができれば、各対応点の座標の組み合わせを(1−1)式および(1−2)式にあてはめて、3元連立方程式を設定することができる。よって、これらの連立方程式を解くことにより、T00〜T12の値を求めることができ、変換行列Hを特定することができる。
【0037】
また、T00〜T12の値が判明すれば、T02,T12の値からdx,dyを特定することができる((c)(f)式参照。)。また、T00,T10の値からθを求めることもできる((a)(d)式より、tanθ=sinθ/cosθ=(T10/T00)となるから、θ=tan−1(T10/T00)である。)。さらに、θの値が求まれば、(a)(b)(d)(e)式からbx,byの値を求めることもできる。
【0038】
このように、処理対象の特徴点群とモデルの特徴点群との間で対応関係にある特徴点を3組以上特定することができれば、これらの点の座標を用いた演算により各種の変換パラメータを求めることができる。
【0039】
上記の考察に基づき、この実施例では、モデルおよび処理対象の各特徴点の座標を用いた演算処理により、未知の変換行列Hを求めることによって、対象物を認識するようにしている。
【0040】
この処理では、あらかじめ、モデルの特徴点群の中から所定の条件を満たす三角形を構成する3個の特徴点を複数組抽出し、これらの特徴点の組み合わせを登録する。以下では、この3個の特徴点の組み合わせを、各特徴点により構成される三角形としてとらえて、「モデル三角形」と呼ぶ。
【0041】
処理対象の特徴点群についても、モデルの特徴点群に対するのと同様の条件で、3個の特徴点の組み合わせを複数組抽出する(以下、この特徴点の組み合わせを「比較対象三角形」と呼ぶ。)。そして、上記のモデル三角形と比較対象三角形とを順に対応づけ、対応づけ毎に、その対応づけが正しいものと仮定して、各三角形の頂点の座標を(1−1)式および(1−2)式にあてはめ、変換行列Hを算出する。さらに、対応づけ毎に求めた変換行列Hのうち、モデル特徴点群の各点をこの行列Hにより変換したときの変換後の特徴点群が処理対象の特徴点群に適合する度合(以下、「変換行列Hの適合度」または単に「適合度」という。)によって、モデルの特徴点群と処理対象の特徴点群との対応関係を最も的確に表した変換行列H(以下、「最適な変換行列H」という。)を特定する。
【0042】
さらに、この実施例では、各辺の長さの値がそれぞれ所定の数値範囲(後記する上限値dHと下限値dLとにより定められる。)に入っていることを、モデル三角形および比較対象三角形の抽出条件とする。上限値dHおよび下限値dLは、ユーザーの入力に応じて自由に変更することができる。
【0043】
図2は、モデル三角形と比較対象三角形との対応づけ例を示す。
対応づけ処理では、モデル三角形の各頂点A,B,Cに対し、比較対象三角形の1点を点Aへの対応点A´とし、もう一点を点Bへの対応点B´とし、残り一点を点Cへの対応点C´とする。ただし、特徴点群間の対応関係は全く判明していないので、各点の対応関係を変更して、6通りの対応づけを行う必要がある。
【0044】
上記の点A,B,Cと点A´,B´,C´との対応づけにより求めた変換行列Hが最適なものであるかどうかは、上記した適合度に基づいて判断される。この実施例では、モデルの特徴点群中の各特徴点を変換行列Hにより変換し、処理対象の特徴点群中の変換後の座標に近い位置に特徴点があるかどうかをサーチし、特徴点が見つかった度合いを適合度として求めている。
【0045】
点A,B,Cと点A´,B´,C´との対応づけが正しければ、この対応づけに基づき求めた変換行列Hによりモデルの特徴点群中の各特徴点を変換すると、変換後の座標またはその近傍位置に高い確度で対応点が存在すると考えられる。したがって、誤った対応づけが行われた場合の変換行列Hよりも、適合度が高くなると考えられる。
よって、この実施例では、最大の一致度が得られたときの変換行列Hを最適な変換行列として特定し、特定した変換行列に基づき、対象物の認識処理を行うようにしている。
【0046】
図3は、モデル画像および処理対象画像の具体例を、認識処理の結果とともに示す。
この例は、印刷物を認識対象物とするもので、図中、左側にモデル画像およびそのエッジ画像を示し、右側に処理対象画像およびそのエッジ画像を示している。また、この例では、各エッジ画像中に、各画像間で対応づけられる三角形の組のうちの特定の1組(三角形ABCとA´B´C´)を示している。
【0047】
三角形は、平面を表す最小の単位であり、特徴点との関係も認識しやすい。したがって、図3に示すようなエッジ画像と特定の三角形をモニタに表示すれば、ユーザーは、対象物の位置や回転状態を容易に認識することが可能になる。
【0048】
さらに、この実施例では、三角形の各辺の長さの範囲を定める上限値dHおよび下限値dLを調整することによって、抽出される三角形の数を絞り込むことができる。したがって、特徴点群中に多数の特徴点があっても、三角形の各辺の長さ範囲を調整することによって、照合処理の時間が長くなるのを防ぐことができる。また、対象物の大きさや形状に応じて各辺の長さの範囲を定めるようにすれば、三角形の分布パターンの特徴が明確になり、適合度の信頼性を高めることができる。
したがって、三角形の抽出条件を可変設定することにより、演算時間を短縮することができ、また認識の精度を確保することができる。
【0049】
さらに、抽出対象の三角形を正三角形にまで限定すると、三角形の数を大幅に絞り込んで演算の時間を短縮することができる。また、ユーザーが上限値dHや下限値dLを設定する場合に、特徴点群と三角形との関係をイメージしやすくなるから、設定を簡単に行うことができる。
【0050】
なお、対象物の認識処理では、モデルに対する対象物の位置ずれ、回転ずれ、倍率変化を認識結果として出力したい場合には、アフィン変換の実質的な変換パラメータであるdx,dy,θ,bx,byまで特定すれば良いが、その必要がなければ、最適な変換行列Hの特定をもって、認識処理を終了してもよい。
変換行列Hが特定できれば、これを用いて処理対象画像をモデル画像と同様の状態に変換して、必要な計測や検査を行うことができる。また変換行列によって、あらかじめ定めた基準点に対応する点を特定し、その点を基準に、計測対象の部位を特定することもできる。
【0051】
以下、上記の認識処理方法を実施する際の制御部10による処理を詳細に説明する。
まず、図4は、本処理に先立って、モデル三角形を登録する際の処理の流れである。この処理は、特徴点の組み合わせの抽出条件となる三角形の上限値dHおよび下限値dLがユーザーにより入力され、対象物のモデルがカメラ1の視野内に搬入されたことに応じて開始される。
【0052】
最初のステップ101(以下、各ステップを「ST」と略す。)では、搬入されたモデルを撮像する。ST102では、エッジ抽出部4によって、上記の撮像により生成されたモデル画像から特徴点(エッジ構成点)を抽出する。
【0053】
以下、抽出された特徴点の座標を用いて、モデル三角形を設定、登録する処理を実行する。
まず、ST103では、モデル三角形を特定するためのカウンタiに、初期値の0をセットする。つぎのST104では、抽出された特徴点の中から任意の3点A,B,Cをサンプリングする。ST105では、サンプリングした各点を2つずつ組み合わせ、組み合わせ毎に距離L1,L2,L3を算出する。
【0054】
ST106〜108では、算出された距離L1,L2,L3が、それぞれ上限値dHと下限値dLとにより規定される長さ範囲に入るかどうかをチェックする。ここで、L1,L2,L3がいずれも上記の長さ範囲に入ると判断すると、ST109に進み、A,B,Cの各点をi番目のモデル三角形Tiの構成点に設定する。
【0055】
さらにST110では、上記のモデル三角形Tiを登録する。なお、ここで登録される情報は、たとえば各点A,B,Cの座標をiの現在値に対応づけた構成のものとなる。
【0056】
以下、特徴点の組がすべてサンプリングされるまで、ST112においてiの値を更新しつつ、ST104〜110を繰り返し実行する。ただし、サンプリングされた3点間の距離L1〜L3のいずれか1つでも、上限値dHと下限値dLとにより示される長さ範囲に含まれない場合には、その3点による三角形はモデル三角形としては登録されない。
特徴点の組がすべてサンプリングされると、ST111が「YES」となり、モデル登録処理を終了する。この終了時点でのiの値が後記するimaxとなる。
【0057】
図4に示した一連の処理は、モデルの特徴点群に含まれる各特徴点をn個(n=3)ずつ組み合わせた各組み合わせのうち、特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせとして設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録するステップに相当する。
【0058】
図5は、本処理の流れを示す。なお、この図5のST1〜5は一対象物に対する流れであって、対象物がカメラ1の撮像エリアに入る毎に実行される。
【0059】
ST1では、対象物を撮像する。つぎのST2では、エッジ抽出部4によって、上記の撮像により生成された処理対象画像から特徴点を抽出する処理が行われる。
【0060】
ST3では、ST2の処理により抽出された特徴点群を対象に、比較対象三角形を抽出する。この抽出処理の手順は、図4のST103〜112と同様であるので、詳細な説明は省略するが、抽出された各三角形には、それぞれ識別番号jが付与される。また比較対象三角形を特定する情報として、各識別番号jに三角形の各構成点の座標を対応づけたデータが設定され、RAM13に格納される。
【0061】
上記のST3は、認識対象物の特徴点群に含まれる各特徴点をn個(n=3)ずつ組み合わせた各組み合わせのうち、特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定するステップに相当する。
【0062】
ST4では、登録されているモデル三角形と上記の比較対象三角形とを順に対応づけて、最適な変換行列Hを特定する処理を実行する。この特定により、対象物の位置や向きなど、処理対象画像中の対象物の状態が認識されることになる。
【0063】
この後は、ST5において、特定された変換行列Hを用いて、処理対象画像の補正や計測対象部位の特定などの処理を行った後、本格的な計測処理や検査を実行する。
【0064】
上記のST4は、モデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、一方の組み合わせの各特徴点を他方の組み合わせの各特徴点に変換した場合の変換パラメータを求め、さらに、この変換パラメータについて、モデルの特徴点群と認識対象物の特徴点群との関係に対する適合度を求めるステップ、および各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定するステップを、実行するものである。以下、これらのステップに関する具体的な処理の流れについて、図6を用いて詳細に説明する。
【0065】
ST401,402では、初期設定として、適合度の最大値Cmaxおよびカウンタiに、それぞれ初期値の0をセットする(ST401,402)。この後は、iの値によりモデル三角形Tiを特定しながら、三角形Ti毎に下記の処理を実行する。
【0066】
ST403では、i番目のモデル三角形Tiの登録データから、構成点A,B,Cの座標を読み出す。つぎのST404では、比較対象三角形を特定するためのカウンタjに初期値の0をセットする。ST405では、j番目の比較対象三角形Tjの各構成点の座標を読み出し、これらの点をモデル三角形Tiの構成点A,B,Cに対応づける。この対応づけには6通りの態様があるが、ST405では、これらのうちの1つを実行する。さらにつぎのST406では、対応づけの実行回数を示すカウンタpに初期値の1をセットする。
【0067】
ST407では、対応づけられた各点の座標を前出の(1−1)式および(1−2)式にあてはめることにより、2とおりの3元連立方程式を設定し、これらを用いて、モデル三角形Tiを比較対象三角形Tjに変換する場合の変換行列Hijpを算出する。
【0068】
以下のST408〜414は、上記の変換行列Hijpの適合度CijPを算出するものである。ST408では、カウンタkおよび変換行列Hijpの適合度Cijpに初期値の0をセットする。つぎに、ST409では、モデルの特徴点群中のk番目の特徴点Akの座標を読み出す。ST410では、このAkの座標を変換行列Hijpを用いて変換し、変換後の点をBkとする。
【0069】
ST411では、処理対象の特徴点群中に上記のBkに対応する点があるかどうかをチェックする。ここでは、処理対象の特徴点群において、対象物の特徴点群中のBkと同じ座標、または当該座標から所定の距離範囲に特徴点があれば、その特徴点をBkの対応点であるとする。この場合にはST411が「YES」となってST412に進み、適合度Cijpを、現在値に1を加算した値に更新する。
一方、変換後の点BKへの対応点が見つからなかった場合には、ST411は「NO」となり、適合度Cijpの更新処理はスキップされる。
【0070】
以下、kの値がモデルの特徴点の総数kmaxになるまで上記の処理を行うことにより、モデルの特徴点の変換後の座標が処理対象の特徴点群に対応した頻度が、各特徴点群間の関係に対する変換行列Hijpの適合度Cijpとして算出される。
【0071】
ST414が「YES」となって適合度Cijpの値が確定すると、つぎのST415では、このCijpを最大値Cmaxと比較する。ここでCijpがCmaxより大きい場合には、ST416に進み、CijpによりCmaxを書き換える。またこのときの変換行列Hijpを最適な変換行列Hとする。
【0072】
この後は、三角形Ti,Tj間の構成点の対応関係を変更するとともに、カウンタpを1つ大きな値に更新し(ST417〜419)、新たに対応づけた組み合わせについて、変換行列Hijpおよび適合度Cijpを求める処理を実行する(ST407〜414)。以下、6通りの組み合わせ毎に同様の処理を実行し、全ての組み合わせに対する処理が終了すると(ST417が「NO」の場合)、ST420においてカウンタjを更新することにより比較対象三角形Tjを変更し、しかる後にST405に戻る。さらに全ての比較対象三角形について、i番目のモデル三角形Tiに対する6通りの変換行列Hijpおよび適合度Cijpを求める処理が実行されると、ST421が「YES」となり、ST422においてカウンタiを変更することによりモデル三角形を変更し、ST403に戻る。
【0073】
このようにして、毎時のi,jの組み合わせにつき、三角形TiとTjとの間で6通りの構成点の対応づけを行って、対応づけられた構成点の組み合わせ毎に、変換行列Hijpおよびその適合度Cijpを算出する。また、適合度Cijpが最大値Cmaxを上回った場合には、その適合度Cijpにより最大値Cmaxを書き換えるとともに、その最大値Cmaxを得たときの適合度Hijpにより最適な変換行列Hを書き換える。
【0074】
設定されたすべてのモデル三角形とすべての比較対象三角形とが、順に対応づけされ、対応づけ毎に上記の処理が実行されると、ST423が「YES」となり、処理を終了する。この終了時点でのHが最適な変換行列、すなわち最大の適合度を得たときの変換パラメータを示すものとなる。
【0075】
図6の例では、モデル三角形と比較対象三角形を総当たり方式で対応づけて、対応する三角形の組毎に、変換行列Hijpおよび適合度Cijpを算出したが、これに代えて、適合度の最大値Cmaxが所定の目標値に達した時点でST403〜423の大ループの処理を打ち切るようにしてもよい。このようにすれば、認識の精度は若干落ちる可能性があるが、処理を高速化することができる。また、適合度Cijpの算出では、モデルの特徴点群のすべての特徴点を対象とする必要はなく、モデル三角形の頂点に設定されている特徴点の座標のみを用いて適合度Cijpを求めてもよい。また、適合度Cijpは対応点の数そのものに限らず、対応点の数に所定の重みを乗算したものや、処理対象の特徴点群全体に占める対応点の割合を百分率で表した数値などを、適合度Cijpとしてもよい。
【0076】
図7および図8は、変換行列を特定する処理に関する他の実施態様を示す。ただし、この処理手順の大半は図6と同様であるため、各ステップに図6と同じ符号を付すことにより、説明を省略し、変更した処理のみを説明する。
【0077】
この例では、モデル三角形Tiと比較対象三角形Tjとの毎時の対応づけにおいて、適合度Cijpまたは相違度Dijpを算出する。具体的には、ST410においてk番目のモデル特徴点Akの座標を変換行列Hijpにより変換した後、処理対象の特徴点群中に変換後の点Bkに対応する特徴点が存在する場合(ST411が「YES」の場合)には、適合度Cijpに1を加算し(ST412)、点Bkに対応する特徴点が見つからなかった場合(ST411が「NO」の場合)には相違度Dijpに1を加算する(ST424)。また、加算後の相違度Dijpが所定のしきい値Dmaxに達した場合(ST425が「YES」の場合)には、処理を打ち切って、つぎの対応づけにかかる処理に移行する。また、ST408では、カウンタkおよび適合度Cijpとともに相違度Dijpにも初期値0をセットする。
【0078】
上記の処理によれば、構成点の対応づけが正しくない組み合わせについては、適合度の演算を最後まで行わなくても良くなるので、その分、処理を高速化することができる。
【0079】
つぎに、上記の実施例では、モデルの特徴点群、処理対象の特徴点群のいずれについても、各特徴点の組み合わせにより設定される三角形のうち、各辺の長さの値がそれぞれ上限値dHおよび下限値dLにより特定される基準の数値範囲に入る三角形を、モデル三角形、比較対象三角形として絞り込んだが、これに限らず、辺の長さと角度とに基づいて三角形の絞り込みを行ってもよい。たとえば、少なくとも一辺の長さが基準の数値範囲に入り、その両端の角度が基準の角度範囲に入る三角形や、二辺の長さが基準の数値範囲に入り、これらの辺のなす角度が基準の角度範囲に入る三角形を、モデル三角形、比較対象三角形に設定することができる。この場合、三角形の角度を算出する代わりに、各辺に対応するベクトルの内積を求め、その結果を、同様に内積に換算されたしきい値と比較するようにすれば、演算が簡単になり、十分な処理速度を確保することができる。
【0080】
これまでに説明したように、上記の実施例では、アフィン変換の変換パラメータを求めるには、モデルの特徴点群と対象物の特徴点群との間で、3組以上の特徴点を対応づける必要があるという観点から、3個の特徴点による三角形を用いた照合処理により最適な変換行列Hを特定するようにした。
しかし、画像のような平面に分布する特徴点群を処理対象とする場合には、少なくとも対応関係にある特徴点の組を2組求めることができれば、これらの特徴点の座標から残りの1組の対応点の座標を推定することが可能である。たとえば、特徴点群から抽出した2個の特徴点を、二等辺三角形の2頂点または直角三角形の斜辺を構成する2頂点に相当すると考えて、これらの点の座標から残りの1頂点の座標を算出することができる。
【0081】
よって、モデルおよび処理対象の特徴点群から抽出する特徴点の数を2個にして、これらの点を対応づけるとともに、別途、対応関係にある仮想の特徴点の座標を1組算出し、これら3組の点によりモデル三角形および比較対象三角形を設定して、変換行列Hを求めてもよい。この場合にも、適合度の算出フローは図6のST407〜414に示したものと同様になる。
【0082】
ただし、特徴点の抽出数を単純に3から2に減らすと、特徴点の組み合わせの対応づけ数が大幅に増加して、演算時間が長くなるおそれがある。したがって、このような処理は、長尺状の対象物に限定するのが望ましい。対象物が長尺状である場合には、その長さに応じて抽出対象の2点間の距離を限定することによって、特徴点の組み合わせの数を絞り込むことができ、演算時間を短縮できるからである。
【0083】
つぎに、2台のカメラによるステレオ画像を処理して3次元計測を実行し、算出された空間座標を用いて対象物の認識を行う場合にも、空間内に分布する特徴点群に対し、2次元の場合と同様の方法で対象物を認識することができる。
【0084】
3次元空間における特徴点の関係を特定するには、同次座標変換の変換パラメータを特定する必要がある。
モデルの特徴点群中の一特徴点の座標を(mXi,mYi,mZi)とし、処理対象の特徴点群中の対応点の座標を(tXi,tYi,tZi)とし、モデルに対する対象物のx軸方向における回転角度をθ、y軸方向における回転角度をφ、z軸方向における回転角度をψとすると、同次座標変換の変換式は、下記の(2)式のようになる。
【0085】
【数2】
【0086】
上記の(2)式によれば、モデルの特徴点群と処理対象の特徴点群との間で対応関係にある特徴点の組を3組特定できれば、これら点の座標を、(mXi,mYi,mZi)および(tXi,tYi,tZi)として、上記の(2)式から3とおりの3元連立方程式を設定し、変換行列H1を求めることができる。よって、3次元モデルから複数のモデル三角形を抽出して登録しておき、対象物のステレオ画像に対する3次元計測により複数の特徴点の空間座標を求め、これらの中から比較対象三角形を抽出し、各三角形を図6と同様の手順で照合することにより、最適な変換行列を求めることができる。
【0087】
図9は、ICを対象物として、3次元の認識処理を行う例を示す。
この認識処理では、空間内の所定位置を原点Oとして空間座標系XYZを設定し、3次元モデル40および認識対象のIC41について、それぞれ複数の特徴点の空間座標を算出し、その算出結果を用いて、上記した三角形の照合処理を行う。この例でも、先の図3の例と同様に、対応関係にある種々の三角形のうちの特定の1組(三角形ABCとA´B´C´)を示している。
【0088】
上記の認識処理によれば、たとえばICのリードの検査において、認識対象のIC41の先頭のリードの先端部の座標(図9の点B´の座標に相当する。)を特定し、さらに、この座標を基準に他のリードの先端部の座標を特定して、各先端部の高さが揃っているかどうかを判別することができる。
【0089】
また、ロボットによる組み立て工程の制御に上記の認識処理を適用する場合に、たとえば点A´,C´の座標に基づいて、認識対象のIC41の上面内の中央部に吸着ポイントを設定し、この設定位置にロボットアームの吸着ノズルが移動するように制御することができる。
【0090】
図10および図11は、上記の3次元認識処理が適用された部品ピッキングシステムの具体例を示す。
このシステムは、支持台60にバラ積みされた部品51を1つずつ摘み上げて別の場所に運び、整列配置することを目的とするもので、現場には、ピッキング作業を担当するロボット30や2台のカメラ1A,1Bが配備される。さらに、このシステムには、3次元認識処理用の画像処理装置20、PLC21(プログラマブル・ロジック・コントローラ)、ロボットコントローラ22などが含まれる。
【0091】
ロボット30は、先端にハンド部31が設けられた多関節型のアーム部32を具備しており、ロボットコントローラ22に接続される。ロボットコントローラ22は、PLC21からの制御信号に応じて、アーム部32の各関節やハンド部31の動作を制御することにより、ハンド部31の位置や方向を定め、部品51の把持や移動を行わせる。
【0092】
各カメラ1A,1Bは、画像処理装置20に接続される。画像処理装置20の構成は、図1に示したものとほぼ同様であるため、詳細な図示は省略するが、画像入力部3、エッジ抽出部4、画像メモリ5はカメラ1A,1B毎に個別に設けられる。また、この画像処理装置20は、PLC21からの指令に応じて、各カメラ1A,1Bに同時にトリガ信号を出力するように設定されている。
【0093】
画像処理装置20では、各カメラ1A,1Bからの画像を用いた3次元認識処理を行って、バラ積み部品の中の1つを認識し、この部品の位置を示す3次元座標や姿勢を示す角度データを出力する。PLC21は、画像処理装置20から出力されたデータを用いてロボット30のハンド部31の位置や姿勢を示すデータを算出する演算を実行し、演算で得たデータをロボットコントローラ22に供給する。ロボットコントローラ22では、PLC21から供給されたデータに基づき、ロボットのアーム部32やハンド部31の動作量を決定し、その結果に基づき各部31,32を制御する。これにより、画像処理装置20により認識された部品を摘み上げ、所定の場所に搬送することが可能になる。
【0094】
この実施例でも、あらかじめ認識対象の部品51の3次元モデルから所定数の特徴点を抽出して、これらによりモデル三角形を設定し、画像処理装置20に登録するようにしている。またピッキング処理においては、各カメラ1A,1Bにより撮像された画像を用いて複数の特徴点の3次元座標を求めた後に、これらの特徴点により設定した比較対象三角形とモデル三角形とを照合することによって、モデルの特徴点群と処理対象の特徴点群との関係を表すのに最適な変換行列を特定する。さらに、特定した変換行列に基づき、ピッキング対象の部品の位置や姿勢を示すデータを算出する。
【0095】
図12は、特徴点の具体例を、対応関係にある三角形のうちの特定の1組(三角形ABCとA´B´C´)とともに示す。
この実施例では、認識対象の部品51の3次元モデル50が空間座標系XYZに所定の姿勢で配備されているときの各角部の頂点の座標を特徴点とし、これらの特徴点による三角形のうち、各辺の長さが所定の数値範囲(第1実施例と同様にユーザにより入力される。)に含まれるものをモデル三角形として登録する。一方、認識対象の部品51については、カメラ1A,1Bからの画像をエッジ画像に変換した後に、各エッジ画像から角部の頂点に相当するエッジ構成点を特定して、これらのエッジ構成点につき求めた3次元座標により比較対象三角形を設定する。また、比較対象三角形についても、各辺の長さがモデル三角形と同様の数値範囲に含まれるものに限定する。
【0096】
なお、角部の頂点を特定するには、たとえば、エッジ画像中の各エッジ構成点が表す輪郭線を直線や曲線等のセグメントに分割し、各セグメントの交点を求めればよい。また図12の例のように認識対象物の輪郭線が直線状になる場合には、各エッジ構成点につき、それぞれ濃度勾配方向に直交する方向に沿って仮想の直線を設定し、これらの直線を方向が近似するグループ毎に統合した後、これらの直線の交点を特徴点として求めてもよい。
【0097】
ただし、特徴点はエッジの交点に限定されるものではない。たとえば、曲線状の輪郭形状を有する対象物であれば、曲線状のセグメントを抽出し、曲率の変化量に基づき、勾配が緩やかな部位から急峻な部位に変化した点などを、特徴点として抽出してもよい。
【0098】
3次元モデル側の特徴点も、実物の部品51のモデルを用いて上記と同様の3次元計測処理を実行することにより求めることができるが、部品51のCADデータがある場合には、そのCADデータが表す3次元の輪郭線から同様の特徴点を抽出してもよい。
【0099】
この実施例では、複数の認識対象物を撮像するため、各カメラ1A,1Bの画像からは、1つの対象物のみを処理対象とする場合よりも多くのエッジ構成点が抽出されるが、対象物の特徴的な輪郭形状の構成点に特徴点を絞り込むことにより、演算の負担を減らすことができる。また、モデル三角形や比較対象三角形の設定においても、対象物の形状に応じて三角形の長さや角度等に条件を設けることにより、三角形の数を絞り込んで精度の良い認識処理を行うことができる。ただし、特徴点の数を減らすと、三角形の設定に関する条件を定めるのが難しくなるため、ノウハウのないユーザが処理を行う場合や、認識対象物が頻繁に変わるような場合には、特徴点の絞り込みを行わずに、全てのエッジ構成点を特徴点としてもよい。
【0100】
以下、ロボット30の動作制御のために画像処理装置20で実行される処理の流れについて、図13を用いて説明する。
まずST501では、PLC21からの指令を受けて各カメラ1A,1Bにトリガ信号を出力し、撮像を行わせる。つぎのST502では、各カメラ1A,1Bから入力された画像を対象に特徴点の抽出を行う。ここでは、各入力画像をそれぞれのエッジ抽出部4によりエッジ画像に変換した後、上記した角部の頂点等のエッジ構成点を複数特定し、これらを特徴点として設定してもよい。または全てのエッジ構成点を特徴点としてもよい。
【0101】
ここで特徴点が抽出されると、ST503が「YES」となり、ST504において、抽出された特徴点について3次元座標を算出する。具体的には、各特徴点を画像間で対応づけた後、対応づけされた点の組毎に、各点の座標を三角測量の原理による数式にあてはめた演算を実行することによって、これらの点に対応する3次元座標を算出する。
【0102】
この後は、ST505において、算出された各3次元座標が示す特徴点群を対象に、比較対象三角形を抽出する処理を実行する。さらに、ST506において、比較対象三角形とあらかじめ登録されたモデル三角形とを順に対応づけ、対応づけた組み合わせ毎に、変換行列やその行列の適合度を算出する処理を実行することにより、処理対象の特徴点群に最適な変換行列H1(適合度が最大になったときの変換行列)を特定する。このST505の詳細は、同次座標変換の演算式((2)式)を実行する点を除けば、先の図6または図7,8に示した処理とほぼ同様の流れになる。
【0103】
最適な変換行列H1が特定されると、ST507では、3次元モデル50につきあらかじめ定めておいた代表点を変換行列H1により変換し、その変換後の座標を、ピックアップ対象の部品の位置データとする。さらに、ST508では、特定した変換行列H1の各成分を用いて、同次座標変換のパラメータθ,φ,ψを算出し、これらの組み合わせをピックアップ対象の部品の姿勢データとする。
3次元モデル50の代表点には、特徴点のうちの1つ(たとえば図12の点A)を設定しても良いが、これに限らず、エッジ構成点以外の点(たとえば図12の三角形ABCの重心)を代表点としてもよい。
【0104】
ST509では、ST507で算出した位置データおよびST508で算出した各角度θ,φ,ψによる姿勢データを、PLC21に出力する。この出力を受けたPLC21では、ロボット制御用のデータを算出し、これをロボットコントローラ22に出力する。ロボットコントローラ22では、PLC21から供給されたデータに基づきロボット30の動作を制御することにより、認識されたピックアップ対象の部品をロボット30に把持させ、撮像対象領域外に搬送させる。この搬送処理が完了し、その旨がロボットコントローラ22からPLC21に通知されると、PLC21は画像処理装置20に、つぎの撮像用のトリガ信号の出力を指示する。
【0105】
画像処理装置20では、データの出力が終了すると、再びST501に戻り、PLC21からの指示に応じて、上記の部品搬送後の撮像対象領域を撮像する。さらに、ST502以下の処理を実行することにより、つぎのピッキング対象の部品の位置および回転角度を求め、PLC21に出力する。
【0106】
以下も同様に、ST501〜509を繰り返すことにより、バラ積みされていた部品が1つずつ認識され、その認識結果に基づく制御を受けたロボット30により搬送される。この結果、全ての部品が搬送され、撮像により得た画像に特徴点が含まれない状態になると、ST503が「NO」となり、処理を終了する。
【0107】
なお、認識対象の部品51のバラ積み位置がカメラ1A,1Bの視野からずれるなどして、部品51の全体像が生成されなかった場合には、最大の適合度でも非常に低い値になる可能性がある。このような場合に対応するために、最大の適合度が所定の基準値を下回った場合には、部品51の認識処理を打ち切ってエラー処理を実行するのが望ましい。この点については、先の2次元の認識処理でも同様である。
【0108】
上記の説明では、ST506において、最適な変換行列H1として、適合度が最大になったときの変換行列を特定するとした。変換行列の適合度が大きくなるほど、その変換行列によりモデルの特徴点群を変換したときの変換後の各点が処理対象の特徴点群に対応する頻度も増えるから、適合度が最大になったときの変換行列を選択することにより、バラ積みされた複数の部品51の中からモデルの特徴点群に対応する点が最も多い部品51を認識することができる。言い換えれば、露出の度合いが一番大きい部品51、さらに言い換えれば、ロボット30にとって一番摘みやすい部品51を認識することができる。
【0109】
ただし、最適な変換行列H1として特定できるものは上記に限定されるものではない。たとえば、適合度が所定の基準値を超えた変換行列を、全て変換行列H1の候補としてピックアップし、これらの変換行列により3次元モデルの代表点の座標を変換して、変換後のZ座標が最も高くなったときの変換行列を最適な変換行列H1としてもよい。この場合には、バラ積みされた部品51の中の一番上にある部品を認識することができる。
【0110】
また、上記のシステムでは、対象物(部品51)を1つ特定する必要性から各組み合わせ毎に求めた変換行列の中から最適なものを1つ特定したが、これに限らず、用途によっては、適合度が基準値を超えた変換行列を複数特定し、特定された一変換行列につき対象物を1つ認識してもよい。このようにすれば、複数のロボット30に作業を行わせる場合でも、各ロボット30に把持させるべき部品51を、それぞれ個別に認識することが可能になる。
【0111】
また3次元の認識処理の適用範囲は、上記のようなステレオ画像を用いた計測処理結果に限るものではない。たとえば、所定の範囲に変位センサを走査して、対象物までの距離を複数地点で計測する方法による3次元計測の結果に適用することもできる。
【0112】
上記の2次元、3次元の画像処理による実施例では、モデルおよび処理対象の特徴点をエッジ構成点としているが、特徴点はこれに限るものではない。たとえば、特定の色彩を有する領域を処理対象とする場合には、その色彩が現れている画素を特徴点として抽出してもよい。
【符号の説明】
【0113】
1 カメラ
2 コントローラ
3 画像入力部
4 エッジ抽出部
5 画像メモリ
10 制御部
11 CPU
13 RAM
14 ハードディスク
【技術分野】
【0001】
この発明は、認識対象物の特徴を表す点の集合(以下、「特徴点群」ともいう。)について、あらかじめ登録された認識対象物のモデルの特徴点群との対応関係から認識対象物の位置や姿勢を認識する方法、およびこの認識処理方法が適用された画像処理装置に関する。
【背景技術】
【0002】
2次元の画像処理で処理対象画像中の認識対象物の位置や姿勢を認識する場合の代表的な方法として、あらかじめ登録したモデル画像と処理対象の画像との間の相関値を求める方法がある(たとえば、特許文献1)。また、ステレオカメラを用いた3次元計測処理により認識対象物の特徴点の3次元座標を複数求めた後に、3次元空間におけるこれらの特徴点の分布パターンとモデルの特徴点群の分布パターンとの相関値を求め、空間における認識対象物の位置や姿勢を認識する場合もある(たとえば特許文献2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−346232号公報
【特許文献2】特開2004−295223号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
2次元の画像処理においては、認識対象物の位置や向きがモデルとは異なるものになるほか、カメラと認識対象物との距離のばらつきによって画像中の認識対象物の大きさが変わる場合もある。このように、モデル画像とは違う状態の計測対象物を精度良く認識するために、従来では、一般に向きや大きさの異なる複数種のモデル画像を登録し、モデル画像毎に相関値を求めるようにしている。しかし、このような方法では、モデル画像との照合回数が増えるほど、処理に時間がかかってしまう。
【0005】
3次元の認識処理を行う場合には、モデルの特徴点群の位置や方向を種々に変更して、認識対象物の特徴点群に対する相関値を求める処理を繰り返し実行する。この場合にも、モデルの特徴点群の位置および方向の組み合わせが多岐にわたるほど、処理にかかる時間が長くなるという問題が生じる。
【0006】
このように、2次元、3次元のいずれの処理においても、認識の精度を向上しようとすると、処理時間が長くなってしまう。この種の認識処理は、計測や検査の前処理として行われることが多いため、処理時間が長くなることは望ましいことではない。
【0007】
この発明は、特に2次元の認識処理における問題に着目し、認識精度を確保しつつ、一定の時間内に処理を終了できるようにすることを、課題とするものである。
【課題を解決するための手段】
【0008】
この発明による認識処理方法は、認識対象物を撮像することにより生成された2次元画像から抽出された認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するもので、以下の第1〜第4のステップを実行することを特徴とする。
【0009】
第1ステップでは、モデルの特徴点群に含まれる各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する。第2ステップでは、認識対象物の特徴点群に含まれる各特徴点を特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定する。第3ステップでは、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する。第4ステップでは、第3ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する。
【0010】
認識対象物の位置や姿勢がモデルと異なっていても、モデルの所定数の特徴点に対する対応点が判明している場合には、これら対応関係にある特徴点の座標を用いて、モデルの特徴点群を認識対象物の特徴点群と同様の状態に変換するための変換パラメータを求めることができる。上記の方法は、この原理を逆に応用したものである。
【0011】
すなわち、この方法では、モデルの特徴点群と認識対象物の特徴点群との対応関係は不明であるが、各特徴点群からそれぞれn個ずつ抽出した特徴点を対応関係にあると仮定し、両者間の関係を表す変換パラメータを求める。実際にこれらの特徴点が対応関係にあるならば、特徴点群の他の特徴点間の関係も、同様の変換パラメータにより表すことができるはずである。したがって、上記の変換パラメータを用いて認識対象物またはモデルの特徴点群を変換した場合、その変換後の座標が他方の特徴点群に適合する度合は、正しく対応づけられていない特徴点の組み合わせから求めた変換パラメータによる場合の適合の度合より高くなると考えられる。よって、特徴点の組み合わせの対応づけ毎に求めた変換パラメータについて、モデルの特徴点と認識対象物の特徴点との関係に対する適合度を求め、これらの適合度のうち最大の適合度を得たときの変換パラメータを特定すれば、認識対象物の位置や姿勢などを高い確度で認識することができる。
【0012】
なお、特定される変換パラメータは、全ての対応づけの中で最大の適合度が得られたときの変換パラメータであるのが望ましいが、これに限定されるものではない。たとえば、対応づけの途中で適合度があらかじめ定めた目標値以上になった時点で処理を打ち切り、その適合度を得たときの変換パラメータを特定してもよい。
【0013】
上記の方法によれば、認識対象物を高い精度で認識することが可能になる。また、特徴点間の距離の基準値を調整することによってn個の特徴点の組み合わせの数を絞り込むことができるから、変換パラメータや適合度の算出に要する時間が長くなりすぎるのを防止することができる。
【0014】
上記の方法の第3ステップでは、特徴点群の位置ずれ量および回転ずれ量、ならびに倍率を反映した変換パラメータを用いることができる。たとえばアフィン変換の変換パラメータを用いることができる。
【0015】
上記方法の好ましい態様では、第1ステップおよび第2ステップにおいて、特定数nを3として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する。三角形は、面を表す最小の単位であり、認識対象物の大きさや形状を表現しやすい。また、モデルの組み合わせと比較対象の組み合わせとの間での対応づけも、3点の場合には6通りですみ、対応づけを容易に行うことができる。
【0016】
さらに好ましい態様では、第1ステップおよび第2ステップでは、一辺の長さが上記の上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する。このようにすれば、特徴点の組み合わせ数を大幅に削減して処理を高速化することができる。また、ユーザーにとっても、対象物に対する三角形の設定状態を推測しやすくなるから、上限値や下限値の設定が容易になる。
【0017】
特定数nを3とする場合の他の態様では、第1ステップおよび第2ステップにおいて、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。さらに別の態様では、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。
これらの態様でも、三角形の辺の長さや角度によって特徴点の組み合わせ数を絞り込むことができるから、処理時間を短縮することができる。
【0018】
上記の認識処理方法が適用された画像処理装置は、認識対象物の2次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するものである。この画像処理装置は、特徴点群中の各特徴点間の距離について所定の基準値を入力するための入力手段と、モデルの特徴点群中の各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、モデル設定手段により設定されたモデルの組み合わせを特定するための情報をメモリに登録する登録処理手段と、入力画像から抽出された特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が上記の基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する。
【0019】
上記構成の画像処理装置によれば、最終的に特定された変換パラメータにより画像中の認識対象物の位置や姿勢を判別し、その判別結果を出力することができる。また特定された変換パラメータにより処理対象の画像の各点を変換することにより画像のずれを補正した後に、補正後の画像を対象に、パターン認識などの画像処理を実行することもできる。
【発明の効果】
【0020】
上記の認識処理方法および画像処理装置によれば、認識対象物の特徴点群とモデルの特徴点群との間で対応関係にある特徴点には共通の変換パラメータを適用できるという原則に基づき、各特徴点群間の対応関係を精度良く認識することができる。また、認識対象物の位置や姿勢が変化しても、特徴点の数が極端に変わることはないから、処理時間が長引くおそれがない。また、認識対象物の大きさや形状に応じて特徴点間の距離に対する基準値を調整することによって、照合対象となる特徴点の組み合わせを絞り込むことができるから、処理時間を短縮することができる。
【図面の簡単な説明】
【0021】
【図1】画像処理装置のブロック図である。
【図2】三角形の対応づけ例を示す説明図である。
【図3】モデル画像および処理対象画像ならびにこれらのエッジ画像を、特徴点の対応関係とともに示す説明図である。
【図4】モデル三角形の登録処理の流れを示すフローチャートである。
【図5】本処理の流れを示すフローチャートである。
【図6】変換行列の特定処理の詳細な流れを示すフローチャートである。
【図7】変換行列の特定処理の詳細な流れの他の例を示すフローチャートである。
【図8】図7の続きのフローチャートである。
【図9】3次元モデルおよび認識対象物の例を特徴点の対応関係とともに示す説明図である。
【図10】3次元認識処理を用いたピッキングシステムの例を示す説明図である。
【図11】ピッキングシステムのブロック図である。
【図12】ピッキング対象の部品の3次元モデルと実際の部品とを特徴点の対応関係とともに示す説明図である。
【図13】ロボット制御のために画像処理装置で実行される認識処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0022】
図1は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置は、工業製品や印刷物など、形状や大きさがほぼ同一の認識対象物を1つずつ撮像し、生成された画像中の認識対象物の位置や姿勢を認識するためのもので、撮像のためのカメラ1とコントローラ2とにより構成される。
【0023】
コントローラ2には、画像入力部3,エッジ抽出部4、画像メモリ5、入出力インターフェース6、画像出力部7、モニタ8、制御部10などが含まれる。画像入力部3は、カメラ1用のインターフェースやA/D変換回路を含むもので、カメラ1からの濃淡画像信号を入力してディジタル変換する。変換後のディジタル画像は、画像メモリ5に格納されるとともに、エッジ抽出部4に与えられる。
【0024】
エッジ抽出部4には、ディジタル画像を微分処理して濃度勾配の大きさを画素毎に算出する微分回路と、算出された濃度勾配の大きさを所定のしきい値と比較する比較回路とが含まれる。これらの回路による処理により、ディジタル画像は、エッジ構成画素を黒画素とし、その他の画素を白画素とする2値のエッジ画像に変換される。この変換後のエッジ画像も画像メモリ5に格納される。
【0025】
入出力インターフェース6は、図示しない入力部(キーボード、マウスなど)や外部機器に接続される。画像出力部7には、D/A変換回路やモニタ8へのインターフェース回路などが含められる。この画像出力部7は、制御部10からの指令に応じて画像メモリ5やRAM13から表示対象のデータを読み出し、これをモニタ8に表示させることができる。
【0026】
制御部10は、CPU11、ROM12、RAM13、およびハードディスク14により構成される。ハードディスク14には、認識処理を実行するのに必要なプログラムや設定データなどが格納されている。また、RAM13には、これらのプログラムや設定データに基づく処理によって設定された特徴点の組み合わせや、後記する一致度などのデータが格納される。
【0027】
図1には図示していないが、計測対象物がカメラ1の視野に入ると、図示しないセンサまたはCPU11からカメラ1にトリガ信号が入力される。カメラ1は、このトリガ信号に応じて撮像を行う。以下、この撮像により生成される認識対象物のディジタル画像を「処理対象画像」といい、認識対象物のことを、単に「対象物」という。
【0028】
ハードディスク14には、あらかじめ対象物のモデルを撮像して得られたモデル画像やそのエッジ画像ならびに後記するモデル三角形に関する情報が登録されている。
対象物の処理対象画像およびエッジ画像が画像メモリ5に格納されると、CPU11は、まず、エッジ画像を用いて、その画像に分布する特徴点群(以下では、「処理対象の特徴点群」という。この実施例の特徴点群はエッジ構成点の集合である。)をモデルのエッジ画像における特徴点群(以下、「モデルの特徴点群」という。)と照合する処理により、対象物の位置や向きなどを認識する。さらに、この認識結果に基づき、処理対象画像中の対象物を含む範囲に計測領域を設定する処理や、この計測領域内の対象物がモデル画像と同様の姿勢になるように補正する処理を実行した後に、本格的な計測処理や検査の処理に移行する。
【0029】
以下、処理対象の特徴点群とモデルの特徴点群とを照合する処理について、詳細に説明する。
【0030】
処理対象画像中の対象物の位置や向きは、モデル画像とは異なるものになることが多い。また、大きさについても、カメラ1に対する距離によっては、モデル画像の大きさと異なるものになる可能性がある。
【0031】
したがって、モデルの特徴点群中の一特徴点の座標を(mxi,myi)とし、処理対象の特徴点群において(mxi,myi)に対応する点の座標を(txi,tyi)とすると、(txi,tyi)は、(mxi,myi)をアフィン変換した場合の変換後の座標に相当すると考えられる。
【0032】
ここで、x,yの各軸方向における対象物の位置ずれ量をdx,dyとし、モデルに対する対象物の回転角度をθとし、モデルに対する計測対象物のx方向における倍率をbx、y方向における倍率をbyとすると、上記の2点の関係は、下記の(1)式のように表される。
【0033】
【数1】
【0034】
上記の(1)式に示すように、2次元の画像処理においては、モデルと対象物との対応関係を、dx,dy、θ,bx,byの5つのパラメータによって表すことができる。以下では、これらのパラメータを変換パラメータと呼び、これら変換パラメータによって特定される行列Hを変換行列と呼ぶ。変換行列Hも、広義の変換パラメータであると考えられる。よって、この変換行列Hまたはdx,dy、θ,bx,byを求める処理によって、対象物の状態を認識することができる。
【0035】
ここで、(1)式を展開すると、(1−1)式および(1−2)式を導出することができる。
txi=mxi・T00+myi・T01+T02 ・・・(1−1)
tyi=mxi・T10+myi・T11+T12 ・・・(1−2)
なお、T01〜T12は、下記のとおり、変換行列Hの各要素を置き換えたものである。
T00=bx・cosθ ・・・(a)
T01=−by・sinθ ・・・(b)
T02=dx ・・・(c)
T10=bx・sinθ ・・・(d)
T11=by・cosθ ・・・(e)
T12=dy ・・・(f)
【0036】
上記によれば、モデルの特徴点群中の3点の座標をそれぞれ(mxi,myi)として、これらの点につき、処理対象の特徴点群中における対応点の座標(txi,tyi)を特定することができれば、各対応点の座標の組み合わせを(1−1)式および(1−2)式にあてはめて、3元連立方程式を設定することができる。よって、これらの連立方程式を解くことにより、T00〜T12の値を求めることができ、変換行列Hを特定することができる。
【0037】
また、T00〜T12の値が判明すれば、T02,T12の値からdx,dyを特定することができる((c)(f)式参照。)。また、T00,T10の値からθを求めることもできる((a)(d)式より、tanθ=sinθ/cosθ=(T10/T00)となるから、θ=tan−1(T10/T00)である。)。さらに、θの値が求まれば、(a)(b)(d)(e)式からbx,byの値を求めることもできる。
【0038】
このように、処理対象の特徴点群とモデルの特徴点群との間で対応関係にある特徴点を3組以上特定することができれば、これらの点の座標を用いた演算により各種の変換パラメータを求めることができる。
【0039】
上記の考察に基づき、この実施例では、モデルおよび処理対象の各特徴点の座標を用いた演算処理により、未知の変換行列Hを求めることによって、対象物を認識するようにしている。
【0040】
この処理では、あらかじめ、モデルの特徴点群の中から所定の条件を満たす三角形を構成する3個の特徴点を複数組抽出し、これらの特徴点の組み合わせを登録する。以下では、この3個の特徴点の組み合わせを、各特徴点により構成される三角形としてとらえて、「モデル三角形」と呼ぶ。
【0041】
処理対象の特徴点群についても、モデルの特徴点群に対するのと同様の条件で、3個の特徴点の組み合わせを複数組抽出する(以下、この特徴点の組み合わせを「比較対象三角形」と呼ぶ。)。そして、上記のモデル三角形と比較対象三角形とを順に対応づけ、対応づけ毎に、その対応づけが正しいものと仮定して、各三角形の頂点の座標を(1−1)式および(1−2)式にあてはめ、変換行列Hを算出する。さらに、対応づけ毎に求めた変換行列Hのうち、モデル特徴点群の各点をこの行列Hにより変換したときの変換後の特徴点群が処理対象の特徴点群に適合する度合(以下、「変換行列Hの適合度」または単に「適合度」という。)によって、モデルの特徴点群と処理対象の特徴点群との対応関係を最も的確に表した変換行列H(以下、「最適な変換行列H」という。)を特定する。
【0042】
さらに、この実施例では、各辺の長さの値がそれぞれ所定の数値範囲(後記する上限値dHと下限値dLとにより定められる。)に入っていることを、モデル三角形および比較対象三角形の抽出条件とする。上限値dHおよび下限値dLは、ユーザーの入力に応じて自由に変更することができる。
【0043】
図2は、モデル三角形と比較対象三角形との対応づけ例を示す。
対応づけ処理では、モデル三角形の各頂点A,B,Cに対し、比較対象三角形の1点を点Aへの対応点A´とし、もう一点を点Bへの対応点B´とし、残り一点を点Cへの対応点C´とする。ただし、特徴点群間の対応関係は全く判明していないので、各点の対応関係を変更して、6通りの対応づけを行う必要がある。
【0044】
上記の点A,B,Cと点A´,B´,C´との対応づけにより求めた変換行列Hが最適なものであるかどうかは、上記した適合度に基づいて判断される。この実施例では、モデルの特徴点群中の各特徴点を変換行列Hにより変換し、処理対象の特徴点群中の変換後の座標に近い位置に特徴点があるかどうかをサーチし、特徴点が見つかった度合いを適合度として求めている。
【0045】
点A,B,Cと点A´,B´,C´との対応づけが正しければ、この対応づけに基づき求めた変換行列Hによりモデルの特徴点群中の各特徴点を変換すると、変換後の座標またはその近傍位置に高い確度で対応点が存在すると考えられる。したがって、誤った対応づけが行われた場合の変換行列Hよりも、適合度が高くなると考えられる。
よって、この実施例では、最大の一致度が得られたときの変換行列Hを最適な変換行列として特定し、特定した変換行列に基づき、対象物の認識処理を行うようにしている。
【0046】
図3は、モデル画像および処理対象画像の具体例を、認識処理の結果とともに示す。
この例は、印刷物を認識対象物とするもので、図中、左側にモデル画像およびそのエッジ画像を示し、右側に処理対象画像およびそのエッジ画像を示している。また、この例では、各エッジ画像中に、各画像間で対応づけられる三角形の組のうちの特定の1組(三角形ABCとA´B´C´)を示している。
【0047】
三角形は、平面を表す最小の単位であり、特徴点との関係も認識しやすい。したがって、図3に示すようなエッジ画像と特定の三角形をモニタに表示すれば、ユーザーは、対象物の位置や回転状態を容易に認識することが可能になる。
【0048】
さらに、この実施例では、三角形の各辺の長さの範囲を定める上限値dHおよび下限値dLを調整することによって、抽出される三角形の数を絞り込むことができる。したがって、特徴点群中に多数の特徴点があっても、三角形の各辺の長さ範囲を調整することによって、照合処理の時間が長くなるのを防ぐことができる。また、対象物の大きさや形状に応じて各辺の長さの範囲を定めるようにすれば、三角形の分布パターンの特徴が明確になり、適合度の信頼性を高めることができる。
したがって、三角形の抽出条件を可変設定することにより、演算時間を短縮することができ、また認識の精度を確保することができる。
【0049】
さらに、抽出対象の三角形を正三角形にまで限定すると、三角形の数を大幅に絞り込んで演算の時間を短縮することができる。また、ユーザーが上限値dHや下限値dLを設定する場合に、特徴点群と三角形との関係をイメージしやすくなるから、設定を簡単に行うことができる。
【0050】
なお、対象物の認識処理では、モデルに対する対象物の位置ずれ、回転ずれ、倍率変化を認識結果として出力したい場合には、アフィン変換の実質的な変換パラメータであるdx,dy,θ,bx,byまで特定すれば良いが、その必要がなければ、最適な変換行列Hの特定をもって、認識処理を終了してもよい。
変換行列Hが特定できれば、これを用いて処理対象画像をモデル画像と同様の状態に変換して、必要な計測や検査を行うことができる。また変換行列によって、あらかじめ定めた基準点に対応する点を特定し、その点を基準に、計測対象の部位を特定することもできる。
【0051】
以下、上記の認識処理方法を実施する際の制御部10による処理を詳細に説明する。
まず、図4は、本処理に先立って、モデル三角形を登録する際の処理の流れである。この処理は、特徴点の組み合わせの抽出条件となる三角形の上限値dHおよび下限値dLがユーザーにより入力され、対象物のモデルがカメラ1の視野内に搬入されたことに応じて開始される。
【0052】
最初のステップ101(以下、各ステップを「ST」と略す。)では、搬入されたモデルを撮像する。ST102では、エッジ抽出部4によって、上記の撮像により生成されたモデル画像から特徴点(エッジ構成点)を抽出する。
【0053】
以下、抽出された特徴点の座標を用いて、モデル三角形を設定、登録する処理を実行する。
まず、ST103では、モデル三角形を特定するためのカウンタiに、初期値の0をセットする。つぎのST104では、抽出された特徴点の中から任意の3点A,B,Cをサンプリングする。ST105では、サンプリングした各点を2つずつ組み合わせ、組み合わせ毎に距離L1,L2,L3を算出する。
【0054】
ST106〜108では、算出された距離L1,L2,L3が、それぞれ上限値dHと下限値dLとにより規定される長さ範囲に入るかどうかをチェックする。ここで、L1,L2,L3がいずれも上記の長さ範囲に入ると判断すると、ST109に進み、A,B,Cの各点をi番目のモデル三角形Tiの構成点に設定する。
【0055】
さらにST110では、上記のモデル三角形Tiを登録する。なお、ここで登録される情報は、たとえば各点A,B,Cの座標をiの現在値に対応づけた構成のものとなる。
【0056】
以下、特徴点の組がすべてサンプリングされるまで、ST112においてiの値を更新しつつ、ST104〜110を繰り返し実行する。ただし、サンプリングされた3点間の距離L1〜L3のいずれか1つでも、上限値dHと下限値dLとにより示される長さ範囲に含まれない場合には、その3点による三角形はモデル三角形としては登録されない。
特徴点の組がすべてサンプリングされると、ST111が「YES」となり、モデル登録処理を終了する。この終了時点でのiの値が後記するimaxとなる。
【0057】
図4に示した一連の処理は、モデルの特徴点群に含まれる各特徴点をn個(n=3)ずつ組み合わせた各組み合わせのうち、特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせとして設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録するステップに相当する。
【0058】
図5は、本処理の流れを示す。なお、この図5のST1〜5は一対象物に対する流れであって、対象物がカメラ1の撮像エリアに入る毎に実行される。
【0059】
ST1では、対象物を撮像する。つぎのST2では、エッジ抽出部4によって、上記の撮像により生成された処理対象画像から特徴点を抽出する処理が行われる。
【0060】
ST3では、ST2の処理により抽出された特徴点群を対象に、比較対象三角形を抽出する。この抽出処理の手順は、図4のST103〜112と同様であるので、詳細な説明は省略するが、抽出された各三角形には、それぞれ識別番号jが付与される。また比較対象三角形を特定する情報として、各識別番号jに三角形の各構成点の座標を対応づけたデータが設定され、RAM13に格納される。
【0061】
上記のST3は、認識対象物の特徴点群に含まれる各特徴点をn個(n=3)ずつ組み合わせた各組み合わせのうち、特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定するステップに相当する。
【0062】
ST4では、登録されているモデル三角形と上記の比較対象三角形とを順に対応づけて、最適な変換行列Hを特定する処理を実行する。この特定により、対象物の位置や向きなど、処理対象画像中の対象物の状態が認識されることになる。
【0063】
この後は、ST5において、特定された変換行列Hを用いて、処理対象画像の補正や計測対象部位の特定などの処理を行った後、本格的な計測処理や検査を実行する。
【0064】
上記のST4は、モデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、一方の組み合わせの各特徴点を他方の組み合わせの各特徴点に変換した場合の変換パラメータを求め、さらに、この変換パラメータについて、モデルの特徴点群と認識対象物の特徴点群との関係に対する適合度を求めるステップ、および各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定するステップを、実行するものである。以下、これらのステップに関する具体的な処理の流れについて、図6を用いて詳細に説明する。
【0065】
ST401,402では、初期設定として、適合度の最大値Cmaxおよびカウンタiに、それぞれ初期値の0をセットする(ST401,402)。この後は、iの値によりモデル三角形Tiを特定しながら、三角形Ti毎に下記の処理を実行する。
【0066】
ST403では、i番目のモデル三角形Tiの登録データから、構成点A,B,Cの座標を読み出す。つぎのST404では、比較対象三角形を特定するためのカウンタjに初期値の0をセットする。ST405では、j番目の比較対象三角形Tjの各構成点の座標を読み出し、これらの点をモデル三角形Tiの構成点A,B,Cに対応づける。この対応づけには6通りの態様があるが、ST405では、これらのうちの1つを実行する。さらにつぎのST406では、対応づけの実行回数を示すカウンタpに初期値の1をセットする。
【0067】
ST407では、対応づけられた各点の座標を前出の(1−1)式および(1−2)式にあてはめることにより、2とおりの3元連立方程式を設定し、これらを用いて、モデル三角形Tiを比較対象三角形Tjに変換する場合の変換行列Hijpを算出する。
【0068】
以下のST408〜414は、上記の変換行列Hijpの適合度CijPを算出するものである。ST408では、カウンタkおよび変換行列Hijpの適合度Cijpに初期値の0をセットする。つぎに、ST409では、モデルの特徴点群中のk番目の特徴点Akの座標を読み出す。ST410では、このAkの座標を変換行列Hijpを用いて変換し、変換後の点をBkとする。
【0069】
ST411では、処理対象の特徴点群中に上記のBkに対応する点があるかどうかをチェックする。ここでは、処理対象の特徴点群において、対象物の特徴点群中のBkと同じ座標、または当該座標から所定の距離範囲に特徴点があれば、その特徴点をBkの対応点であるとする。この場合にはST411が「YES」となってST412に進み、適合度Cijpを、現在値に1を加算した値に更新する。
一方、変換後の点BKへの対応点が見つからなかった場合には、ST411は「NO」となり、適合度Cijpの更新処理はスキップされる。
【0070】
以下、kの値がモデルの特徴点の総数kmaxになるまで上記の処理を行うことにより、モデルの特徴点の変換後の座標が処理対象の特徴点群に対応した頻度が、各特徴点群間の関係に対する変換行列Hijpの適合度Cijpとして算出される。
【0071】
ST414が「YES」となって適合度Cijpの値が確定すると、つぎのST415では、このCijpを最大値Cmaxと比較する。ここでCijpがCmaxより大きい場合には、ST416に進み、CijpによりCmaxを書き換える。またこのときの変換行列Hijpを最適な変換行列Hとする。
【0072】
この後は、三角形Ti,Tj間の構成点の対応関係を変更するとともに、カウンタpを1つ大きな値に更新し(ST417〜419)、新たに対応づけた組み合わせについて、変換行列Hijpおよび適合度Cijpを求める処理を実行する(ST407〜414)。以下、6通りの組み合わせ毎に同様の処理を実行し、全ての組み合わせに対する処理が終了すると(ST417が「NO」の場合)、ST420においてカウンタjを更新することにより比較対象三角形Tjを変更し、しかる後にST405に戻る。さらに全ての比較対象三角形について、i番目のモデル三角形Tiに対する6通りの変換行列Hijpおよび適合度Cijpを求める処理が実行されると、ST421が「YES」となり、ST422においてカウンタiを変更することによりモデル三角形を変更し、ST403に戻る。
【0073】
このようにして、毎時のi,jの組み合わせにつき、三角形TiとTjとの間で6通りの構成点の対応づけを行って、対応づけられた構成点の組み合わせ毎に、変換行列Hijpおよびその適合度Cijpを算出する。また、適合度Cijpが最大値Cmaxを上回った場合には、その適合度Cijpにより最大値Cmaxを書き換えるとともに、その最大値Cmaxを得たときの適合度Hijpにより最適な変換行列Hを書き換える。
【0074】
設定されたすべてのモデル三角形とすべての比較対象三角形とが、順に対応づけされ、対応づけ毎に上記の処理が実行されると、ST423が「YES」となり、処理を終了する。この終了時点でのHが最適な変換行列、すなわち最大の適合度を得たときの変換パラメータを示すものとなる。
【0075】
図6の例では、モデル三角形と比較対象三角形を総当たり方式で対応づけて、対応する三角形の組毎に、変換行列Hijpおよび適合度Cijpを算出したが、これに代えて、適合度の最大値Cmaxが所定の目標値に達した時点でST403〜423の大ループの処理を打ち切るようにしてもよい。このようにすれば、認識の精度は若干落ちる可能性があるが、処理を高速化することができる。また、適合度Cijpの算出では、モデルの特徴点群のすべての特徴点を対象とする必要はなく、モデル三角形の頂点に設定されている特徴点の座標のみを用いて適合度Cijpを求めてもよい。また、適合度Cijpは対応点の数そのものに限らず、対応点の数に所定の重みを乗算したものや、処理対象の特徴点群全体に占める対応点の割合を百分率で表した数値などを、適合度Cijpとしてもよい。
【0076】
図7および図8は、変換行列を特定する処理に関する他の実施態様を示す。ただし、この処理手順の大半は図6と同様であるため、各ステップに図6と同じ符号を付すことにより、説明を省略し、変更した処理のみを説明する。
【0077】
この例では、モデル三角形Tiと比較対象三角形Tjとの毎時の対応づけにおいて、適合度Cijpまたは相違度Dijpを算出する。具体的には、ST410においてk番目のモデル特徴点Akの座標を変換行列Hijpにより変換した後、処理対象の特徴点群中に変換後の点Bkに対応する特徴点が存在する場合(ST411が「YES」の場合)には、適合度Cijpに1を加算し(ST412)、点Bkに対応する特徴点が見つからなかった場合(ST411が「NO」の場合)には相違度Dijpに1を加算する(ST424)。また、加算後の相違度Dijpが所定のしきい値Dmaxに達した場合(ST425が「YES」の場合)には、処理を打ち切って、つぎの対応づけにかかる処理に移行する。また、ST408では、カウンタkおよび適合度Cijpとともに相違度Dijpにも初期値0をセットする。
【0078】
上記の処理によれば、構成点の対応づけが正しくない組み合わせについては、適合度の演算を最後まで行わなくても良くなるので、その分、処理を高速化することができる。
【0079】
つぎに、上記の実施例では、モデルの特徴点群、処理対象の特徴点群のいずれについても、各特徴点の組み合わせにより設定される三角形のうち、各辺の長さの値がそれぞれ上限値dHおよび下限値dLにより特定される基準の数値範囲に入る三角形を、モデル三角形、比較対象三角形として絞り込んだが、これに限らず、辺の長さと角度とに基づいて三角形の絞り込みを行ってもよい。たとえば、少なくとも一辺の長さが基準の数値範囲に入り、その両端の角度が基準の角度範囲に入る三角形や、二辺の長さが基準の数値範囲に入り、これらの辺のなす角度が基準の角度範囲に入る三角形を、モデル三角形、比較対象三角形に設定することができる。この場合、三角形の角度を算出する代わりに、各辺に対応するベクトルの内積を求め、その結果を、同様に内積に換算されたしきい値と比較するようにすれば、演算が簡単になり、十分な処理速度を確保することができる。
【0080】
これまでに説明したように、上記の実施例では、アフィン変換の変換パラメータを求めるには、モデルの特徴点群と対象物の特徴点群との間で、3組以上の特徴点を対応づける必要があるという観点から、3個の特徴点による三角形を用いた照合処理により最適な変換行列Hを特定するようにした。
しかし、画像のような平面に分布する特徴点群を処理対象とする場合には、少なくとも対応関係にある特徴点の組を2組求めることができれば、これらの特徴点の座標から残りの1組の対応点の座標を推定することが可能である。たとえば、特徴点群から抽出した2個の特徴点を、二等辺三角形の2頂点または直角三角形の斜辺を構成する2頂点に相当すると考えて、これらの点の座標から残りの1頂点の座標を算出することができる。
【0081】
よって、モデルおよび処理対象の特徴点群から抽出する特徴点の数を2個にして、これらの点を対応づけるとともに、別途、対応関係にある仮想の特徴点の座標を1組算出し、これら3組の点によりモデル三角形および比較対象三角形を設定して、変換行列Hを求めてもよい。この場合にも、適合度の算出フローは図6のST407〜414に示したものと同様になる。
【0082】
ただし、特徴点の抽出数を単純に3から2に減らすと、特徴点の組み合わせの対応づけ数が大幅に増加して、演算時間が長くなるおそれがある。したがって、このような処理は、長尺状の対象物に限定するのが望ましい。対象物が長尺状である場合には、その長さに応じて抽出対象の2点間の距離を限定することによって、特徴点の組み合わせの数を絞り込むことができ、演算時間を短縮できるからである。
【0083】
つぎに、2台のカメラによるステレオ画像を処理して3次元計測を実行し、算出された空間座標を用いて対象物の認識を行う場合にも、空間内に分布する特徴点群に対し、2次元の場合と同様の方法で対象物を認識することができる。
【0084】
3次元空間における特徴点の関係を特定するには、同次座標変換の変換パラメータを特定する必要がある。
モデルの特徴点群中の一特徴点の座標を(mXi,mYi,mZi)とし、処理対象の特徴点群中の対応点の座標を(tXi,tYi,tZi)とし、モデルに対する対象物のx軸方向における回転角度をθ、y軸方向における回転角度をφ、z軸方向における回転角度をψとすると、同次座標変換の変換式は、下記の(2)式のようになる。
【0085】
【数2】
【0086】
上記の(2)式によれば、モデルの特徴点群と処理対象の特徴点群との間で対応関係にある特徴点の組を3組特定できれば、これら点の座標を、(mXi,mYi,mZi)および(tXi,tYi,tZi)として、上記の(2)式から3とおりの3元連立方程式を設定し、変換行列H1を求めることができる。よって、3次元モデルから複数のモデル三角形を抽出して登録しておき、対象物のステレオ画像に対する3次元計測により複数の特徴点の空間座標を求め、これらの中から比較対象三角形を抽出し、各三角形を図6と同様の手順で照合することにより、最適な変換行列を求めることができる。
【0087】
図9は、ICを対象物として、3次元の認識処理を行う例を示す。
この認識処理では、空間内の所定位置を原点Oとして空間座標系XYZを設定し、3次元モデル40および認識対象のIC41について、それぞれ複数の特徴点の空間座標を算出し、その算出結果を用いて、上記した三角形の照合処理を行う。この例でも、先の図3の例と同様に、対応関係にある種々の三角形のうちの特定の1組(三角形ABCとA´B´C´)を示している。
【0088】
上記の認識処理によれば、たとえばICのリードの検査において、認識対象のIC41の先頭のリードの先端部の座標(図9の点B´の座標に相当する。)を特定し、さらに、この座標を基準に他のリードの先端部の座標を特定して、各先端部の高さが揃っているかどうかを判別することができる。
【0089】
また、ロボットによる組み立て工程の制御に上記の認識処理を適用する場合に、たとえば点A´,C´の座標に基づいて、認識対象のIC41の上面内の中央部に吸着ポイントを設定し、この設定位置にロボットアームの吸着ノズルが移動するように制御することができる。
【0090】
図10および図11は、上記の3次元認識処理が適用された部品ピッキングシステムの具体例を示す。
このシステムは、支持台60にバラ積みされた部品51を1つずつ摘み上げて別の場所に運び、整列配置することを目的とするもので、現場には、ピッキング作業を担当するロボット30や2台のカメラ1A,1Bが配備される。さらに、このシステムには、3次元認識処理用の画像処理装置20、PLC21(プログラマブル・ロジック・コントローラ)、ロボットコントローラ22などが含まれる。
【0091】
ロボット30は、先端にハンド部31が設けられた多関節型のアーム部32を具備しており、ロボットコントローラ22に接続される。ロボットコントローラ22は、PLC21からの制御信号に応じて、アーム部32の各関節やハンド部31の動作を制御することにより、ハンド部31の位置や方向を定め、部品51の把持や移動を行わせる。
【0092】
各カメラ1A,1Bは、画像処理装置20に接続される。画像処理装置20の構成は、図1に示したものとほぼ同様であるため、詳細な図示は省略するが、画像入力部3、エッジ抽出部4、画像メモリ5はカメラ1A,1B毎に個別に設けられる。また、この画像処理装置20は、PLC21からの指令に応じて、各カメラ1A,1Bに同時にトリガ信号を出力するように設定されている。
【0093】
画像処理装置20では、各カメラ1A,1Bからの画像を用いた3次元認識処理を行って、バラ積み部品の中の1つを認識し、この部品の位置を示す3次元座標や姿勢を示す角度データを出力する。PLC21は、画像処理装置20から出力されたデータを用いてロボット30のハンド部31の位置や姿勢を示すデータを算出する演算を実行し、演算で得たデータをロボットコントローラ22に供給する。ロボットコントローラ22では、PLC21から供給されたデータに基づき、ロボットのアーム部32やハンド部31の動作量を決定し、その結果に基づき各部31,32を制御する。これにより、画像処理装置20により認識された部品を摘み上げ、所定の場所に搬送することが可能になる。
【0094】
この実施例でも、あらかじめ認識対象の部品51の3次元モデルから所定数の特徴点を抽出して、これらによりモデル三角形を設定し、画像処理装置20に登録するようにしている。またピッキング処理においては、各カメラ1A,1Bにより撮像された画像を用いて複数の特徴点の3次元座標を求めた後に、これらの特徴点により設定した比較対象三角形とモデル三角形とを照合することによって、モデルの特徴点群と処理対象の特徴点群との関係を表すのに最適な変換行列を特定する。さらに、特定した変換行列に基づき、ピッキング対象の部品の位置や姿勢を示すデータを算出する。
【0095】
図12は、特徴点の具体例を、対応関係にある三角形のうちの特定の1組(三角形ABCとA´B´C´)とともに示す。
この実施例では、認識対象の部品51の3次元モデル50が空間座標系XYZに所定の姿勢で配備されているときの各角部の頂点の座標を特徴点とし、これらの特徴点による三角形のうち、各辺の長さが所定の数値範囲(第1実施例と同様にユーザにより入力される。)に含まれるものをモデル三角形として登録する。一方、認識対象の部品51については、カメラ1A,1Bからの画像をエッジ画像に変換した後に、各エッジ画像から角部の頂点に相当するエッジ構成点を特定して、これらのエッジ構成点につき求めた3次元座標により比較対象三角形を設定する。また、比較対象三角形についても、各辺の長さがモデル三角形と同様の数値範囲に含まれるものに限定する。
【0096】
なお、角部の頂点を特定するには、たとえば、エッジ画像中の各エッジ構成点が表す輪郭線を直線や曲線等のセグメントに分割し、各セグメントの交点を求めればよい。また図12の例のように認識対象物の輪郭線が直線状になる場合には、各エッジ構成点につき、それぞれ濃度勾配方向に直交する方向に沿って仮想の直線を設定し、これらの直線を方向が近似するグループ毎に統合した後、これらの直線の交点を特徴点として求めてもよい。
【0097】
ただし、特徴点はエッジの交点に限定されるものではない。たとえば、曲線状の輪郭形状を有する対象物であれば、曲線状のセグメントを抽出し、曲率の変化量に基づき、勾配が緩やかな部位から急峻な部位に変化した点などを、特徴点として抽出してもよい。
【0098】
3次元モデル側の特徴点も、実物の部品51のモデルを用いて上記と同様の3次元計測処理を実行することにより求めることができるが、部品51のCADデータがある場合には、そのCADデータが表す3次元の輪郭線から同様の特徴点を抽出してもよい。
【0099】
この実施例では、複数の認識対象物を撮像するため、各カメラ1A,1Bの画像からは、1つの対象物のみを処理対象とする場合よりも多くのエッジ構成点が抽出されるが、対象物の特徴的な輪郭形状の構成点に特徴点を絞り込むことにより、演算の負担を減らすことができる。また、モデル三角形や比較対象三角形の設定においても、対象物の形状に応じて三角形の長さや角度等に条件を設けることにより、三角形の数を絞り込んで精度の良い認識処理を行うことができる。ただし、特徴点の数を減らすと、三角形の設定に関する条件を定めるのが難しくなるため、ノウハウのないユーザが処理を行う場合や、認識対象物が頻繁に変わるような場合には、特徴点の絞り込みを行わずに、全てのエッジ構成点を特徴点としてもよい。
【0100】
以下、ロボット30の動作制御のために画像処理装置20で実行される処理の流れについて、図13を用いて説明する。
まずST501では、PLC21からの指令を受けて各カメラ1A,1Bにトリガ信号を出力し、撮像を行わせる。つぎのST502では、各カメラ1A,1Bから入力された画像を対象に特徴点の抽出を行う。ここでは、各入力画像をそれぞれのエッジ抽出部4によりエッジ画像に変換した後、上記した角部の頂点等のエッジ構成点を複数特定し、これらを特徴点として設定してもよい。または全てのエッジ構成点を特徴点としてもよい。
【0101】
ここで特徴点が抽出されると、ST503が「YES」となり、ST504において、抽出された特徴点について3次元座標を算出する。具体的には、各特徴点を画像間で対応づけた後、対応づけされた点の組毎に、各点の座標を三角測量の原理による数式にあてはめた演算を実行することによって、これらの点に対応する3次元座標を算出する。
【0102】
この後は、ST505において、算出された各3次元座標が示す特徴点群を対象に、比較対象三角形を抽出する処理を実行する。さらに、ST506において、比較対象三角形とあらかじめ登録されたモデル三角形とを順に対応づけ、対応づけた組み合わせ毎に、変換行列やその行列の適合度を算出する処理を実行することにより、処理対象の特徴点群に最適な変換行列H1(適合度が最大になったときの変換行列)を特定する。このST505の詳細は、同次座標変換の演算式((2)式)を実行する点を除けば、先の図6または図7,8に示した処理とほぼ同様の流れになる。
【0103】
最適な変換行列H1が特定されると、ST507では、3次元モデル50につきあらかじめ定めておいた代表点を変換行列H1により変換し、その変換後の座標を、ピックアップ対象の部品の位置データとする。さらに、ST508では、特定した変換行列H1の各成分を用いて、同次座標変換のパラメータθ,φ,ψを算出し、これらの組み合わせをピックアップ対象の部品の姿勢データとする。
3次元モデル50の代表点には、特徴点のうちの1つ(たとえば図12の点A)を設定しても良いが、これに限らず、エッジ構成点以外の点(たとえば図12の三角形ABCの重心)を代表点としてもよい。
【0104】
ST509では、ST507で算出した位置データおよびST508で算出した各角度θ,φ,ψによる姿勢データを、PLC21に出力する。この出力を受けたPLC21では、ロボット制御用のデータを算出し、これをロボットコントローラ22に出力する。ロボットコントローラ22では、PLC21から供給されたデータに基づきロボット30の動作を制御することにより、認識されたピックアップ対象の部品をロボット30に把持させ、撮像対象領域外に搬送させる。この搬送処理が完了し、その旨がロボットコントローラ22からPLC21に通知されると、PLC21は画像処理装置20に、つぎの撮像用のトリガ信号の出力を指示する。
【0105】
画像処理装置20では、データの出力が終了すると、再びST501に戻り、PLC21からの指示に応じて、上記の部品搬送後の撮像対象領域を撮像する。さらに、ST502以下の処理を実行することにより、つぎのピッキング対象の部品の位置および回転角度を求め、PLC21に出力する。
【0106】
以下も同様に、ST501〜509を繰り返すことにより、バラ積みされていた部品が1つずつ認識され、その認識結果に基づく制御を受けたロボット30により搬送される。この結果、全ての部品が搬送され、撮像により得た画像に特徴点が含まれない状態になると、ST503が「NO」となり、処理を終了する。
【0107】
なお、認識対象の部品51のバラ積み位置がカメラ1A,1Bの視野からずれるなどして、部品51の全体像が生成されなかった場合には、最大の適合度でも非常に低い値になる可能性がある。このような場合に対応するために、最大の適合度が所定の基準値を下回った場合には、部品51の認識処理を打ち切ってエラー処理を実行するのが望ましい。この点については、先の2次元の認識処理でも同様である。
【0108】
上記の説明では、ST506において、最適な変換行列H1として、適合度が最大になったときの変換行列を特定するとした。変換行列の適合度が大きくなるほど、その変換行列によりモデルの特徴点群を変換したときの変換後の各点が処理対象の特徴点群に対応する頻度も増えるから、適合度が最大になったときの変換行列を選択することにより、バラ積みされた複数の部品51の中からモデルの特徴点群に対応する点が最も多い部品51を認識することができる。言い換えれば、露出の度合いが一番大きい部品51、さらに言い換えれば、ロボット30にとって一番摘みやすい部品51を認識することができる。
【0109】
ただし、最適な変換行列H1として特定できるものは上記に限定されるものではない。たとえば、適合度が所定の基準値を超えた変換行列を、全て変換行列H1の候補としてピックアップし、これらの変換行列により3次元モデルの代表点の座標を変換して、変換後のZ座標が最も高くなったときの変換行列を最適な変換行列H1としてもよい。この場合には、バラ積みされた部品51の中の一番上にある部品を認識することができる。
【0110】
また、上記のシステムでは、対象物(部品51)を1つ特定する必要性から各組み合わせ毎に求めた変換行列の中から最適なものを1つ特定したが、これに限らず、用途によっては、適合度が基準値を超えた変換行列を複数特定し、特定された一変換行列につき対象物を1つ認識してもよい。このようにすれば、複数のロボット30に作業を行わせる場合でも、各ロボット30に把持させるべき部品51を、それぞれ個別に認識することが可能になる。
【0111】
また3次元の認識処理の適用範囲は、上記のようなステレオ画像を用いた計測処理結果に限るものではない。たとえば、所定の範囲に変位センサを走査して、対象物までの距離を複数地点で計測する方法による3次元計測の結果に適用することもできる。
【0112】
上記の2次元、3次元の画像処理による実施例では、モデルおよび処理対象の特徴点をエッジ構成点としているが、特徴点はこれに限るものではない。たとえば、特定の色彩を有する領域を処理対象とする場合には、その色彩が現れている画素を特徴点として抽出してもよい。
【符号の説明】
【0113】
1 カメラ
2 コントローラ
3 画像入力部
4 エッジ抽出部
5 画像メモリ
10 制御部
11 CPU
13 RAM
14 ハードディスク
【特許請求の範囲】
【請求項1】
認識対象物を撮像することにより生成された2次元画像から抽出された前記認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて前記認識対象物を認識するために、コンピュータが実行する方法であって、
前記モデルの特徴点群に含まれる各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する第1ステップ、
前記認識対象物の特徴点群に含まれる各特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する第2ステップ、
前記メモリの登録情報により特定されるモデルの組み合わせと第2ステップで設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する第3ステップ、
前記第3ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する第4ステップ、
の各ステップを実行することを特徴とする認識処理方法。
【請求項2】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項3】
請求項2に記載された方法において、
前記第1ステップおよび第2ステップでは、一辺の長さが前記上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項4】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項5】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項6】
認識対象物の2次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識する処理を行う画像処理装置であって、
前記特徴点群中の特徴点間の距離について所定の基準値を入力するための入力手段と、
前記モデルの特徴点群中の各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、
前記モデル設定手段により設定されたモデルの組み合わせを特定するための情報を、メモリに登録する登録処理手段と、
前記入力画像から抽出された特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、
前記メモリの登録情報により特定されるモデルの組み合わせと前記組合せ設定手段により設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、
前記照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する画像処理装置。
【請求項1】
認識対象物を撮像することにより生成された2次元画像から抽出された前記認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて前記認識対象物を認識するために、コンピュータが実行する方法であって、
前記モデルの特徴点群に含まれる各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する第1ステップ、
前記認識対象物の特徴点群に含まれる各特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する第2ステップ、
前記メモリの登録情報により特定されるモデルの組み合わせと第2ステップで設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する第3ステップ、
前記第3ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する第4ステップ、
の各ステップを実行することを特徴とする認識処理方法。
【請求項2】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項3】
請求項2に記載された方法において、
前記第1ステップおよび第2ステップでは、一辺の長さが前記上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項4】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項5】
請求項1に記載された方法において、
前記第1ステップおよび第2ステップでは、前記特定数nを3として、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項6】
認識対象物の2次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識する処理を行う画像処理装置であって、
前記特徴点群中の特徴点間の距離について所定の基準値を入力するための入力手段と、
前記モデルの特徴点群中の各特徴点を特定数n(n≧3)ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、
前記モデル設定手段により設定されたモデルの組み合わせを特定するための情報を、メモリに登録する登録処理手段と、
前記入力画像から抽出された特徴点を前記特定数nずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、
前記メモリの登録情報により特定されるモデルの組み合わせと前記組合せ設定手段により設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、
前記照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−113731(P2010−113731A)
【公開日】平成22年5月20日(2010.5.20)
【国際特許分類】
【出願番号】特願2009−297530(P2009−297530)
【出願日】平成21年12月28日(2009.12.28)
【分割の表示】特願2008−523464(P2008−523464)の分割
【原出願日】平成20年3月5日(2008.3.5)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
【公開日】平成22年5月20日(2010.5.20)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【分割の表示】特願2008−523464(P2008−523464)の分割
【原出願日】平成20年3月5日(2008.3.5)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
[ Back to top ]