(57)【要約】【課題】認識精度を確保しつつ、一定の時間内に対象物を認識する処理を終了する。【解決手段】認識対象物のモデルの特徴点群から各辺の長さが所定の基準値を満たす三角形を抽出し、モデル三角形として登録する。認識対象物の２次元画像から抽出された特徴点群についても同様に、基準値を満たす三角形を抽出して比較対象三角形として登録する。つぎにモデル三角形と比較対象三角形とを順に対応づけ、頂点の対応関係を複数とおりに設定して、対応づけられた頂点（ＡとＡ´、ＢとＢ´、ＣとＣ´）の座標を用いて、両三角形の対応関係を表す変換パラメータを算出する処理と、モデルの特徴点群と対象物の特徴点群との関係に対する当該変換パラメータの適合度を求める処理とを実行する。そして、対応づけ毎に求められた適合度に基づいてモデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定することによって、対象物を認識する。【選択図】図２
2010113731.tif 000002
【特許請求の範囲】
【請求項１】
認識対象物を撮像することにより生成された２次元画像から抽出された前記認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて前記認識対象物を認識するために、コンピュータが実行する方法であって、
前記モデルの特徴点群に含まれる各特徴点を特定数ｎ（ｎ≧３）ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する第１ステップ、
前記認識対象物の特徴点群に含まれる各特徴点を前記特定数ｎずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する第２ステップ、
前記メモリの登録情報により特定されるモデルの組み合わせと第２ステップで設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する第３ステップ、
前記第３ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する第４ステップ、
の各ステップを実行することを特徴とする認識処理方法。
【請求項２】
請求項１に記載された方法において、
前記第１ステップおよび第２ステップでは、前記特定数ｎを３として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項３】
請求項２に記載された方法において、
前記第１ステップおよび第２ステップでは、一辺の長さが前記上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項４】
請求項１に記載された方法において、
前記第１ステップおよび第２ステップでは、前記特定数ｎを３として、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項５】
請求項１に記載された方法において、
前記第１ステップおよび第２ステップでは、前記特定数ｎを３として、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する認識処理方法。
【請求項６】
認識対象物の２次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識する処理を行う画像処理装置であって、
前記特徴点群中の特徴点間の距離について所定の基準値を入力するための入力手段と、
前記モデルの特徴点群中の各特徴点を特定数ｎ（ｎ≧３）ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、
前記モデル設定手段により設定されたモデルの組み合わせを特定するための情報を、メモリに登録する登録処理手段と、
前記入力画像から抽出された特徴点を前記特定数ｎずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が前記基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、
前記メモリの登録情報により特定されるモデルの組み合わせと前記組合せ設定手段により設定された比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、
前記照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、認識対象物の特徴を表す点の集合（以下、「特徴点群」ともいう。）について、あらかじめ登録された認識対象物のモデルの特徴点群との対応関係から認識対象物の位置や姿勢を認識する方法、およびこの認識処理方法が適用された画像処理装置に関する。
【背景技術】
【０００２】
２次元の画像処理で処理対象画像中の認識対象物の位置や姿勢を認識する場合の代表的な方法として、あらかじめ登録したモデル画像と処理対象の画像との間の相関値を求める方法がある（たとえば、特許文献１）。また、ステレオカメラを用いた３次元計測処理により認識対象物の特徴点の３次元座標を複数求めた後に、３次元空間におけるこれらの特徴点の分布パターンとモデルの特徴点群の分布パターンとの相関値を求め、空間における認識対象物の位置や姿勢を認識する場合もある（たとえば特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３４６２３２号公報
【特許文献２】特開２００４−２９５２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２次元の画像処理においては、認識対象物の位置や向きがモデルとは異なるものになるほか、カメラと認識対象物との距離のばらつきによって画像中の認識対象物の大きさが変わる場合もある。このように、モデル画像とは違う状態の計測対象物を精度良く認識するために、従来では、一般に向きや大きさの異なる複数種のモデル画像を登録し、モデル画像毎に相関値を求めるようにしている。しかし、このような方法では、モデル画像との照合回数が増えるほど、処理に時間がかかってしまう。
【０００５】
３次元の認識処理を行う場合には、モデルの特徴点群の位置や方向を種々に変更して、認識対象物の特徴点群に対する相関値を求める処理を繰り返し実行する。この場合にも、モデルの特徴点群の位置および方向の組み合わせが多岐にわたるほど、処理にかかる時間が長くなるという問題が生じる。
【０００６】
このように、２次元、３次元のいずれの処理においても、認識の精度を向上しようとすると、処理時間が長くなってしまう。この種の認識処理は、計測や検査の前処理として行われることが多いため、処理時間が長くなることは望ましいことではない。
【０００７】
この発明は、特に２次元の認識処理における問題に着目し、認識精度を確保しつつ、一定の時間内に処理を終了できるようにすることを、課題とするものである。
【課題を解決するための手段】
【０００８】
この発明による認識処理方法は、認識対象物を撮像することにより生成された２次元画像から抽出された認識対象物の特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するもので、以下の第１〜第４のステップを実行することを特徴とする。
【０００９】
第１ステップでは、モデルの特徴点群に含まれる各特徴点を特定数ｎ（ｎ≧３）ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせに設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録する。第２ステップでは、認識対象物の特徴点群に含まれる各特徴点を特定数ｎずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定する。第３ステップでは、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを実行する。第４ステップでは、第３ステップで求めた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する。
【００１０】
認識対象物の位置や姿勢がモデルと異なっていても、モデルの所定数の特徴点に対する対応点が判明している場合には、これら対応関係にある特徴点の座標を用いて、モデルの特徴点群を認識対象物の特徴点群と同様の状態に変換するための変換パラメータを求めることができる。上記の方法は、この原理を逆に応用したものである。
【００１１】
すなわち、この方法では、モデルの特徴点群と認識対象物の特徴点群との対応関係は不明であるが、各特徴点群からそれぞれｎ個ずつ抽出した特徴点を対応関係にあると仮定し、両者間の関係を表す変換パラメータを求める。実際にこれらの特徴点が対応関係にあるならば、特徴点群の他の特徴点間の関係も、同様の変換パラメータにより表すことができるはずである。したがって、上記の変換パラメータを用いて認識対象物またはモデルの特徴点群を変換した場合、その変換後の座標が他方の特徴点群に適合する度合は、正しく対応づけられていない特徴点の組み合わせから求めた変換パラメータによる場合の適合の度合より高くなると考えられる。よって、特徴点の組み合わせの対応づけ毎に求めた変換パラメータについて、モデルの特徴点と認識対象物の特徴点との関係に対する適合度を求め、これらの適合度のうち最大の適合度を得たときの変換パラメータを特定すれば、認識対象物の位置や姿勢などを高い確度で認識することができる。
【００１２】
なお、特定される変換パラメータは、全ての対応づけの中で最大の適合度が得られたときの変換パラメータであるのが望ましいが、これに限定されるものではない。たとえば、対応づけの途中で適合度があらかじめ定めた目標値以上になった時点で処理を打ち切り、その適合度を得たときの変換パラメータを特定してもよい。
【００１３】
上記の方法によれば、認識対象物を高い精度で認識することが可能になる。また、特徴点間の距離の基準値を調整することによってｎ個の特徴点の組み合わせの数を絞り込むことができるから、変換パラメータや適合度の算出に要する時間が長くなりすぎるのを防止することができる。
【００１４】
上記の方法の第３ステップでは、特徴点群の位置ずれ量および回転ずれ量、ならびに倍率を反映した変換パラメータを用いることができる。たとえばアフィン変換の変換パラメータを用いることができる。
【００１５】
上記方法の好ましい態様では、第１ステップおよび第２ステップにおいて、特定数ｎを３として、各辺の長さがそれぞれ所定の上限値と下限値との間の値をとる三角形を構成する特徴点の組み合わせを設定する。三角形は、面を表す最小の単位であり、認識対象物の大きさや形状を表現しやすい。また、モデルの組み合わせと比較対象の組み合わせとの間での対応づけも、３点の場合には６通りですみ、対応づけを容易に行うことができる。
【００１６】
さらに好ましい態様では、第１ステップおよび第２ステップでは、一辺の長さが上記の上限値と下限値との間の値になる正三角形を構成する特徴点の組み合わせを設定する。このようにすれば、特徴点の組み合わせ数を大幅に削減して処理を高速化することができる。また、ユーザーにとっても、対象物に対する三角形の設定状態を推測しやすくなるから、上限値や下限値の設定が容易になる。
【００１７】
特定数ｎを３とする場合の他の態様では、第１ステップおよび第２ステップにおいて、一辺の長さが所定の上限値と下限値との間の値になり、その両端の角度がそれぞれあらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。さらに別の態様では、二辺の長さがそれぞれ所定の上限値と下限値との間の値になり、これらの辺のなす角度があらかじめ定めた基準の角度範囲に入る三角形を構成する特徴点の組み合わせを設定する。
これらの態様でも、三角形の辺の長さや角度によって特徴点の組み合わせ数を絞り込むことができるから、処理時間を短縮することができる。
【００１８】
上記の認識処理方法が適用された画像処理装置は、認識対象物の２次元画像より前記認識対象物の特徴点を複数抽出し、抽出された特徴点群とあらかじめ登録されたモデルの特徴点群との対応関係に基づいて認識対象物を認識するものである。この画像処理装置は、特徴点群中の各特徴点間の距離について所定の基準値を入力するための入力手段と、モデルの特徴点群中の各特徴点を特定数ｎ（ｎ≧３）ずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が基準値を満たすものをモデルの組み合わせに設定するモデル設定手段と、モデル設定手段により設定されたモデルの組み合わせを特定するための情報をメモリに登録する登録処理手段と、入力画像から抽出された特徴点を前記特定数ｎずつ組み合わせた各組み合わせのうち、少なくとも一対の特徴点間の距離が上記の基準値を満たすものを、比較対象の組み合わせに設定する組み合わせ設定手段と、メモリの登録情報により特定されるモデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、各組み合わせにおける特徴点の対応関係を複数とおり設定して、設定された対応関係毎に、一方の組み合わせの各特徴点をそれぞれ他方の組み合わせの対応する特徴点に変換した場合の変換パラメータを求める処理と、この変換パラメータにより前記モデルまたは認識対象物の特徴点群を変換した場合の変換後の特徴点群の他方の特徴点群に対する適合度を求める処理とを、実行する照合処理手段と、照合処理手段により求められた各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定する特定手段とを、具備する。
【００１９】
上記構成の画像処理装置によれば、最終的に特定された変換パラメータにより画像中の認識対象物の位置や姿勢を判別し、その判別結果を出力することができる。また特定された変換パラメータにより処理対象の画像の各点を変換することにより画像のずれを補正した後に、補正後の画像を対象に、パターン認識などの画像処理を実行することもできる。
【発明の効果】
【００２０】
上記の認識処理方法および画像処理装置によれば、認識対象物の特徴点群とモデルの特徴点群との間で対応関係にある特徴点には共通の変換パラメータを適用できるという原則に基づき、各特徴点群間の対応関係を精度良く認識することができる。また、認識対象物の位置や姿勢が変化しても、特徴点の数が極端に変わることはないから、処理時間が長引くおそれがない。また、認識対象物の大きさや形状に応じて特徴点間の距離に対する基準値を調整することによって、照合対象となる特徴点の組み合わせを絞り込むことができるから、処理時間を短縮することができる。
【図面の簡単な説明】
【００２１】
【図１】画像処理装置のブロック図である。
【図２】三角形の対応づけ例を示す説明図である。
【図３】モデル画像および処理対象画像ならびにこれらのエッジ画像を、特徴点の対応関係とともに示す説明図である。
【図４】モデル三角形の登録処理の流れを示すフローチャートである。
【図５】本処理の流れを示すフローチャートである。
【図６】変換行列の特定処理の詳細な流れを示すフローチャートである。
【図７】変換行列の特定処理の詳細な流れの他の例を示すフローチャートである。
【図８】図７の続きのフローチャートである。
【図９】３次元モデルおよび認識対象物の例を特徴点の対応関係とともに示す説明図である。
【図１０】３次元認識処理を用いたピッキングシステムの例を示す説明図である。
【図１１】ピッキングシステムのブロック図である。
【図１２】ピッキング対象の部品の３次元モデルと実際の部品とを特徴点の対応関係とともに示す説明図である。
【図１３】ロボット制御のために画像処理装置で実行される認識処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２２】
図１は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置は、工業製品や印刷物など、形状や大きさがほぼ同一の認識対象物を１つずつ撮像し、生成された画像中の認識対象物の位置や姿勢を認識するためのもので、撮像のためのカメラ１とコントローラ２とにより構成される。
【００２３】
コントローラ２には、画像入力部３，エッジ抽出部４、画像メモリ５、入出力インターフェース６、画像出力部７、モニタ８、制御部１０などが含まれる。画像入力部３は、カメラ１用のインターフェースやＡ／Ｄ変換回路を含むもので、カメラ１からの濃淡画像信号を入力してディジタル変換する。変換後のディジタル画像は、画像メモリ５に格納されるとともに、エッジ抽出部４に与えられる。
【００２４】
エッジ抽出部４には、ディジタル画像を微分処理して濃度勾配の大きさを画素毎に算出する微分回路と、算出された濃度勾配の大きさを所定のしきい値と比較する比較回路とが含まれる。これらの回路による処理により、ディジタル画像は、エッジ構成画素を黒画素とし、その他の画素を白画素とする２値のエッジ画像に変換される。この変換後のエッジ画像も画像メモリ５に格納される。
【００２５】
入出力インターフェース６は、図示しない入力部（キーボード、マウスなど）や外部機器に接続される。画像出力部７には、Ｄ／Ａ変換回路やモニタ８へのインターフェース回路などが含められる。この画像出力部７は、制御部１０からの指令に応じて画像メモリ５やＲＡＭ１３から表示対象のデータを読み出し、これをモニタ８に表示させることができる。
【００２６】
制御部１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、およびハードディスク１４により構成される。ハードディスク１４には、認識処理を実行するのに必要なプログラムや設定データなどが格納されている。また、ＲＡＭ１３には、これらのプログラムや設定データに基づく処理によって設定された特徴点の組み合わせや、後記する一致度などのデータが格納される。
【００２７】
図１には図示していないが、計測対象物がカメラ１の視野に入ると、図示しないセンサまたはＣＰＵ１１からカメラ１にトリガ信号が入力される。カメラ１は、このトリガ信号に応じて撮像を行う。以下、この撮像により生成される認識対象物のディジタル画像を「処理対象画像」といい、認識対象物のことを、単に「対象物」という。
【００２８】
ハードディスク１４には、あらかじめ対象物のモデルを撮像して得られたモデル画像やそのエッジ画像ならびに後記するモデル三角形に関する情報が登録されている。
対象物の処理対象画像およびエッジ画像が画像メモリ５に格納されると、ＣＰＵ１１は、まず、エッジ画像を用いて、その画像に分布する特徴点群（以下では、「処理対象の特徴点群」という。この実施例の特徴点群はエッジ構成点の集合である。）をモデルのエッジ画像における特徴点群（以下、「モデルの特徴点群」という。）と照合する処理により、対象物の位置や向きなどを認識する。さらに、この認識結果に基づき、処理対象画像中の対象物を含む範囲に計測領域を設定する処理や、この計測領域内の対象物がモデル画像と同様の姿勢になるように補正する処理を実行した後に、本格的な計測処理や検査の処理に移行する。
【００２９】
以下、処理対象の特徴点群とモデルの特徴点群とを照合する処理について、詳細に説明する。
【００３０】
処理対象画像中の対象物の位置や向きは、モデル画像とは異なるものになることが多い。また、大きさについても、カメラ１に対する距離によっては、モデル画像の大きさと異なるものになる可能性がある。
【００３１】
したがって、モデルの特徴点群中の一特徴点の座標を（ｍｘｉ，ｍｙｉ）とし、処理対象の特徴点群において（ｍｘｉ，ｍｙｉ）に対応する点の座標を（ｔｘｉ，ｔｙｉ）とすると、（ｔｘｉ，ｔｙｉ）は、（ｍｘｉ，ｍｙｉ）をアフィン変換した場合の変換後の座標に相当すると考えられる。
【００３２】
ここで、ｘ，ｙの各軸方向における対象物の位置ずれ量をｄｘ，ｄｙとし、モデルに対する対象物の回転角度をθとし、モデルに対する計測対象物のｘ方向における倍率をｂｘ、ｙ方向における倍率をｂｙとすると、上記の２点の関係は、下記の（１）式のように表される。
【００３３】
【数１】
2010113731.tif 000003
【００３４】
上記の（１）式に示すように、２次元の画像処理においては、モデルと対象物との対応関係を、ｄｘ，ｄｙ、θ，ｂｘ，ｂｙの５つのパラメータによって表すことができる。以下では、これらのパラメータを変換パラメータと呼び、これら変換パラメータによって特定される行列Ｈを変換行列と呼ぶ。変換行列Ｈも、広義の変換パラメータであると考えられる。よって、この変換行列Ｈまたはｄｘ，ｄｙ、θ，ｂｘ，ｂｙを求める処理によって、対象物の状態を認識することができる。
【００３５】
ここで、（１）式を展開すると、（１−１）式および（１−２）式を導出することができる。
ｔｘｉ＝ｍｘｉ・Ｔ００＋ｍｙｉ・Ｔ０１＋Ｔ０２  ・・・（１−１）
ｔｙｉ＝ｍｘｉ・Ｔ１０＋ｍｙｉ・Ｔ１１＋Ｔ１２  ・・・（１−２）
なお、Ｔ０１〜Ｔ１２は、下記のとおり、変換行列Ｈの各要素を置き換えたものである。
Ｔ００＝ｂｘ・ｃｏｓθ    ・・・（ａ）
Ｔ０１＝−ｂｙ・ｓｉｎθ  ・・・（ｂ）
Ｔ０２＝ｄｘ              ・・・（ｃ）
Ｔ１０＝ｂｘ・ｓｉｎθ    ・・・（ｄ）
Ｔ１１＝ｂｙ・ｃｏｓθ    ・・・（ｅ）
Ｔ１２＝ｄｙ              ・・・（ｆ）
【００３６】
上記によれば、モデルの特徴点群中の３点の座標をそれぞれ（ｍｘｉ，ｍｙｉ）として、これらの点につき、処理対象の特徴点群中における対応点の座標（ｔｘｉ，ｔｙｉ）を特定することができれば、各対応点の座標の組み合わせを（１−１）式および（１−２）式にあてはめて、３元連立方程式を設定することができる。よって、これらの連立方程式を解くことにより、Ｔ００〜Ｔ１２の値を求めることができ、変換行列Ｈを特定することができる。
【００３７】
また、Ｔ００〜Ｔ１２の値が判明すれば、Ｔ０２，Ｔ１２の値からｄｘ，ｄｙを特定することができる（（ｃ）（ｆ）式参照。）。また、Ｔ００，Ｔ１０の値からθを求めることもできる（（ａ）（ｄ）式より、ｔａｎθ＝ｓｉｎθ／ｃｏｓθ＝（Ｔ１０／Ｔ００）となるから、θ＝ｔａｎ−１（Ｔ１０／Ｔ００）である。）。さらに、θの値が求まれば、（ａ）（ｂ）（ｄ）（ｅ）式からｂｘ，ｂｙの値を求めることもできる。
【００３８】
このように、処理対象の特徴点群とモデルの特徴点群との間で対応関係にある特徴点を３組以上特定することができれば、これらの点の座標を用いた演算により各種の変換パラメータを求めることができる。
【００３９】
上記の考察に基づき、この実施例では、モデルおよび処理対象の各特徴点の座標を用いた演算処理により、未知の変換行列Ｈを求めることによって、対象物を認識するようにしている。
【００４０】
この処理では、あらかじめ、モデルの特徴点群の中から所定の条件を満たす三角形を構成する３個の特徴点を複数組抽出し、これらの特徴点の組み合わせを登録する。以下では、この３個の特徴点の組み合わせを、各特徴点により構成される三角形としてとらえて、「モデル三角形」と呼ぶ。
【００４１】
処理対象の特徴点群についても、モデルの特徴点群に対するのと同様の条件で、３個の特徴点の組み合わせを複数組抽出する（以下、この特徴点の組み合わせを「比較対象三角形」と呼ぶ。）。そして、上記のモデル三角形と比較対象三角形とを順に対応づけ、対応づけ毎に、その対応づけが正しいものと仮定して、各三角形の頂点の座標を（１−１）式および（１−２）式にあてはめ、変換行列Ｈを算出する。さらに、対応づけ毎に求めた変換行列Ｈのうち、モデル特徴点群の各点をこの行列Ｈにより変換したときの変換後の特徴点群が処理対象の特徴点群に適合する度合（以下、「変換行列Ｈの適合度」または単に「適合度」という。）によって、モデルの特徴点群と処理対象の特徴点群との対応関係を最も的確に表した変換行列Ｈ（以下、「最適な変換行列Ｈ」という。）を特定する。
【００４２】
さらに、この実施例では、各辺の長さの値がそれぞれ所定の数値範囲（後記する上限値ｄＨと下限値ｄＬとにより定められる。）に入っていることを、モデル三角形および比較対象三角形の抽出条件とする。上限値ｄＨおよび下限値ｄＬは、ユーザーの入力に応じて自由に変更することができる。
【００４３】
図２は、モデル三角形と比較対象三角形との対応づけ例を示す。
対応づけ処理では、モデル三角形の各頂点Ａ，Ｂ，Ｃに対し、比較対象三角形の１点を点Ａへの対応点Ａ´とし、もう一点を点Ｂへの対応点Ｂ´とし、残り一点を点Ｃへの対応点Ｃ´とする。ただし、特徴点群間の対応関係は全く判明していないので、各点の対応関係を変更して、６通りの対応づけを行う必要がある。
【００４４】
上記の点Ａ，Ｂ，Ｃと点Ａ´，Ｂ´，Ｃ´との対応づけにより求めた変換行列Ｈが最適なものであるかどうかは、上記した適合度に基づいて判断される。この実施例では、モデルの特徴点群中の各特徴点を変換行列Ｈにより変換し、処理対象の特徴点群中の変換後の座標に近い位置に特徴点があるかどうかをサーチし、特徴点が見つかった度合いを適合度として求めている。
【００４５】
点Ａ，Ｂ，Ｃと点Ａ´，Ｂ´，Ｃ´との対応づけが正しければ、この対応づけに基づき求めた変換行列Ｈによりモデルの特徴点群中の各特徴点を変換すると、変換後の座標またはその近傍位置に高い確度で対応点が存在すると考えられる。したがって、誤った対応づけが行われた場合の変換行列Ｈよりも、適合度が高くなると考えられる。
よって、この実施例では、最大の一致度が得られたときの変換行列Ｈを最適な変換行列として特定し、特定した変換行列に基づき、対象物の認識処理を行うようにしている。
【００４６】
図３は、モデル画像および処理対象画像の具体例を、認識処理の結果とともに示す。
この例は、印刷物を認識対象物とするもので、図中、左側にモデル画像およびそのエッジ画像を示し、右側に処理対象画像およびそのエッジ画像を示している。また、この例では、各エッジ画像中に、各画像間で対応づけられる三角形の組のうちの特定の１組（三角形ＡＢＣとＡ´Ｂ´Ｃ´）を示している。
【００４７】
三角形は、平面を表す最小の単位であり、特徴点との関係も認識しやすい。したがって、図３に示すようなエッジ画像と特定の三角形をモニタに表示すれば、ユーザーは、対象物の位置や回転状態を容易に認識することが可能になる。
【００４８】
さらに、この実施例では、三角形の各辺の長さの範囲を定める上限値ｄＨおよび下限値ｄＬを調整することによって、抽出される三角形の数を絞り込むことができる。したがって、特徴点群中に多数の特徴点があっても、三角形の各辺の長さ範囲を調整することによって、照合処理の時間が長くなるのを防ぐことができる。また、対象物の大きさや形状に応じて各辺の長さの範囲を定めるようにすれば、三角形の分布パターンの特徴が明確になり、適合度の信頼性を高めることができる。
したがって、三角形の抽出条件を可変設定することにより、演算時間を短縮することができ、また認識の精度を確保することができる。
【００４９】
さらに、抽出対象の三角形を正三角形にまで限定すると、三角形の数を大幅に絞り込んで演算の時間を短縮することができる。また、ユーザーが上限値ｄＨや下限値ｄＬを設定する場合に、特徴点群と三角形との関係をイメージしやすくなるから、設定を簡単に行うことができる。
【００５０】
なお、対象物の認識処理では、モデルに対する対象物の位置ずれ、回転ずれ、倍率変化を認識結果として出力したい場合には、アフィン変換の実質的な変換パラメータであるｄｘ，ｄｙ，θ，ｂｘ，ｂｙまで特定すれば良いが、その必要がなければ、最適な変換行列Ｈの特定をもって、認識処理を終了してもよい。
変換行列Ｈが特定できれば、これを用いて処理対象画像をモデル画像と同様の状態に変換して、必要な計測や検査を行うことができる。また変換行列によって、あらかじめ定めた基準点に対応する点を特定し、その点を基準に、計測対象の部位を特定することもできる。
【００５１】
以下、上記の認識処理方法を実施する際の制御部１０による処理を詳細に説明する。
まず、図４は、本処理に先立って、モデル三角形を登録する際の処理の流れである。この処理は、特徴点の組み合わせの抽出条件となる三角形の上限値ｄＨおよび下限値ｄＬがユーザーにより入力され、対象物のモデルがカメラ１の視野内に搬入されたことに応じて開始される。
【００５２】
最初のステップ１０１（以下、各ステップを「ＳＴ」と略す。）では、搬入されたモデルを撮像する。ＳＴ１０２では、エッジ抽出部４によって、上記の撮像により生成されたモデル画像から特徴点（エッジ構成点）を抽出する。
【００５３】
以下、抽出された特徴点の座標を用いて、モデル三角形を設定、登録する処理を実行する。
まず、ＳＴ１０３では、モデル三角形を特定するためのカウンタｉに、初期値の０をセットする。つぎのＳＴ１０４では、抽出された特徴点の中から任意の３点Ａ，Ｂ，Ｃをサンプリングする。ＳＴ１０５では、サンプリングした各点を２つずつ組み合わせ、組み合わせ毎に距離Ｌ１，Ｌ２，Ｌ３を算出する。
【００５４】
ＳＴ１０６〜１０８では、算出された距離Ｌ１，Ｌ２，Ｌ３が、それぞれ上限値ｄＨと下限値ｄＬとにより規定される長さ範囲に入るかどうかをチェックする。ここで、Ｌ１，Ｌ２，Ｌ３がいずれも上記の長さ範囲に入ると判断すると、ＳＴ１０９に進み、Ａ，Ｂ，Ｃの各点をｉ番目のモデル三角形Ｔｉの構成点に設定する。
【００５５】
さらにＳＴ１１０では、上記のモデル三角形Ｔｉを登録する。なお、ここで登録される情報は、たとえば各点Ａ，Ｂ，Ｃの座標をｉの現在値に対応づけた構成のものとなる。
【００５６】
以下、特徴点の組がすべてサンプリングされるまで、ＳＴ１１２においてｉの値を更新しつつ、ＳＴ１０４〜１１０を繰り返し実行する。ただし、サンプリングされた３点間の距離Ｌ１〜Ｌ３のいずれか１つでも、上限値ｄＨと下限値ｄＬとにより示される長さ範囲に含まれない場合には、その３点による三角形はモデル三角形としては登録されない。
特徴点の組がすべてサンプリングされると、ＳＴ１１１が「ＹＥＳ」となり、モデル登録処理を終了する。この終了時点でのｉの値が後記するｉｍａｘとなる。
【００５７】
図４に示した一連の処理は、モデルの特徴点群に含まれる各特徴点をｎ個（ｎ＝３）ずつ組み合わせた各組み合わせのうち、特徴点間の距離があらかじめ定めた基準値を満たすものをモデルの組み合わせとして設定して、設定されたモデルの組み合わせを特定するための情報をメモリに登録するステップに相当する。
【００５８】
図５は、本処理の流れを示す。なお、この図５のＳＴ１〜５は一対象物に対する流れであって、対象物がカメラ１の撮像エリアに入る毎に実行される。
【００５９】
ＳＴ１では、対象物を撮像する。つぎのＳＴ２では、エッジ抽出部４によって、上記の撮像により生成された処理対象画像から特徴点を抽出する処理が行われる。
【００６０】
ＳＴ３では、ＳＴ２の処理により抽出された特徴点群を対象に、比較対象三角形を抽出する。この抽出処理の手順は、図４のＳＴ１０３〜１１２と同様であるので、詳細な説明は省略するが、抽出された各三角形には、それぞれ識別番号ｊが付与される。また比較対象三角形を特定する情報として、各識別番号ｊに三角形の各構成点の座標を対応づけたデータが設定され、ＲＡＭ１３に格納される。
【００６１】
上記のＳＴ３は、認識対象物の特徴点群に含まれる各特徴点をｎ個（ｎ＝３）ずつ組み合わせた各組み合わせのうち、特徴点間の距離が基準値を満たすものを、比較対象の組み合わせに設定するステップに相当する。
【００６２】
ＳＴ４では、登録されているモデル三角形と上記の比較対象三角形とを順に対応づけて、最適な変換行列Ｈを特定する処理を実行する。この特定により、対象物の位置や向きなど、処理対象画像中の対象物の状態が認識されることになる。
【００６３】
この後は、ＳＴ５において、特定された変換行列Ｈを用いて、処理対象画像の補正や計測対象部位の特定などの処理を行った後、本格的な計測処理や検査を実行する。
【００６４】
上記のＳＴ４は、モデルの組み合わせと比較対象の組み合わせとを順に対応づけて、対応づけた組み合わせ毎に、一方の組み合わせの各特徴点を他方の組み合わせの各特徴点に変換した場合の変換パラメータを求め、さらに、この変換パラメータについて、モデルの特徴点群と認識対象物の特徴点群との関係に対する適合度を求めるステップ、および各適合度に基づき、モデルの特徴点群と認識対象物の特徴点群との対応関係を示す変換パラメータを特定するステップを、実行するものである。以下、これらのステップに関する具体的な処理の流れについて、図６を用いて詳細に説明する。
【００６５】
ＳＴ４０１，４０２では、初期設定として、適合度の最大値Ｃｍａｘおよびカウンタｉに、それぞれ初期値の０をセットする（ＳＴ４０１，４０２）。この後は、ｉの値によりモデル三角形Ｔｉを特定しながら、三角形Ｔｉ毎に下記の処理を実行する。
【００６６】
ＳＴ４０３では、ｉ番目のモデル三角形Ｔｉの登録データから、構成点Ａ，Ｂ，Ｃの座標を読み出す。つぎのＳＴ４０４では、比較対象三角形を特定するためのカウンタｊに初期値の０をセットする。ＳＴ４０５では、ｊ番目の比較対象三角形Ｔｊの各構成点の座標を読み出し、これらの点をモデル三角形Ｔｉの構成点Ａ，Ｂ，Ｃに対応づける。この対応づけには６通りの態様があるが、ＳＴ４０５では、これらのうちの１つを実行する。さらにつぎのＳＴ４０６では、対応づけの実行回数を示すカウンタｐに初期値の１をセットする。
【００６７】
ＳＴ４０７では、対応づけられた各点の座標を前出の（１−１）式および（１−２）式にあてはめることにより、２とおりの３元連立方程式を設定し、これらを用いて、モデル三角形Ｔｉを比較対象三角形Ｔｊに変換する場合の変換行列Ｈｉｊｐを算出する。
【００６８】
以下のＳＴ４０８〜４１４は、上記の変換行列Ｈｉｊｐの適合度ＣｉｊＰを算出するものである。ＳＴ４０８では、カウンタｋおよび変換行列Ｈｉｊｐの適合度Ｃｉｊｐに初期値の０をセットする。つぎに、ＳＴ４０９では、モデルの特徴点群中のｋ番目の特徴点Ａｋの座標を読み出す。ＳＴ４１０では、このＡｋの座標を変換行列Ｈｉｊｐを用いて変換し、変換後の点をＢｋとする。
【００６９】
ＳＴ４１１では、処理対象の特徴点群中に上記のＢｋに対応する点があるかどうかをチェックする。ここでは、処理対象の特徴点群において、対象物の特徴点群中のＢｋと同じ座標、または当該座標から所定の距離範囲に特徴点があれば、その特徴点をＢｋの対応点であるとする。この場合にはＳＴ４１１が「ＹＥＳ」となってＳＴ４１２に進み、適合度Ｃｉｊｐを、現在値に１を加算した値に更新する。
一方、変換後の点ＢＫへの対応点が見つからなかった場合には、ＳＴ４１１は「ＮＯ」となり、適合度Ｃｉｊｐの更新処理はスキップされる。
【００７０】
以下、ｋの値がモデルの特徴点の総数ｋｍａｘになるまで上記の処理を行うことにより、モデルの特徴点の変換後の座標が処理対象の特徴点群に対応した頻度が、各特徴点群間の関係に対する変換行列Ｈｉｊｐの適合度Ｃｉｊｐとして算出される。
【００７１】
ＳＴ４１４が「ＹＥＳ」となって適合度Ｃｉｊｐの値が確定すると、つぎのＳＴ４１５では、このＣｉｊｐを最大値Ｃｍａｘと比較する。ここでＣｉｊｐがＣｍａｘより大きい場合には、ＳＴ４１６に進み、ＣｉｊｐによりＣｍａｘを書き換える。またこのときの変換行列Ｈｉｊｐを最適な変換行列Ｈとする。
【００７２】
この後は、三角形Ｔｉ，Ｔｊ間の構成点の対応関係を変更するとともに、カウンタｐを１つ大きな値に更新し（ＳＴ４１７〜４１９）、新たに対応づけた組み合わせについて、変換行列Ｈｉｊｐおよび適合度Ｃｉｊｐを求める処理を実行する（ＳＴ４０７〜４１４）。以下、６通りの組み合わせ毎に同様の処理を実行し、全ての組み合わせに対する処理が終了すると（ＳＴ４１７が「ＮＯ」の場合）、ＳＴ４２０においてカウンタｊを更新することにより比較対象三角形Ｔｊを変更し、しかる後にＳＴ４０５に戻る。さらに全ての比較対象三角形について、ｉ番目のモデル三角形Ｔｉに対する６通りの変換行列Ｈｉｊｐおよび適合度Ｃｉｊｐを求める処理が実行されると、ＳＴ４２１が「ＹＥＳ」となり、ＳＴ４２２においてカウンタｉを変更することによりモデル三角形を変更し、ＳＴ４０３に戻る。
【００７３】
このようにして、毎時のｉ，ｊの組み合わせにつき、三角形ＴｉとＴｊとの間で６通りの構成点の対応づけを行って、対応づけられた構成点の組み合わせ毎に、変換行列Ｈｉｊｐおよびその適合度Ｃｉｊｐを算出する。また、適合度Ｃｉｊｐが最大値Ｃｍａｘを上回った場合には、その適合度Ｃｉｊｐにより最大値Ｃｍａｘを書き換えるとともに、その最大値Ｃｍａｘを得たときの適合度Ｈｉｊｐにより最適な変換行列Ｈを書き換える。
【００７４】
設定されたすべてのモデル三角形とすべての比較対象三角形とが、順に対応づけされ、対応づけ毎に上記の処理が実行されると、ＳＴ４２３が「ＹＥＳ」となり、処理を終了する。この終了時点でのＨが最適な変換行列、すなわち最大の適合度を得たときの変換パラメータを示すものとなる。
【００７５】
図６の例では、モデル三角形と比較対象三角形を総当たり方式で対応づけて、対応する三角形の組毎に、変換行列Ｈｉｊｐおよび適合度Ｃｉｊｐを算出したが、これに代えて、適合度の最大値Ｃｍａｘが所定の目標値に達した時点でＳＴ４０３〜４２３の大ループの処理を打ち切るようにしてもよい。このようにすれば、認識の精度は若干落ちる可能性があるが、処理を高速化することができる。また、適合度Ｃｉｊｐの算出では、モデルの特徴点群のすべての特徴点を対象とする必要はなく、モデル三角形の頂点に設定されている特徴点の座標のみを用いて適合度Ｃｉｊｐを求めてもよい。また、適合度Ｃｉｊｐは対応点の数そのものに限らず、対応点の数に所定の重みを乗算したものや、処理対象の特徴点群全体に占める対応点の割合を百分率で表した数値などを、適合度Ｃｉｊｐとしてもよい。
【００７６】
図７および図８は、変換行列を特定する処理に関する他の実施態様を示す。ただし、この処理手順の大半は図６と同様であるため、各ステップに図６と同じ符号を付すことにより、説明を省略し、変更した処理のみを説明する。
【００７７】
この例では、モデル三角形Ｔｉと比較対象三角形Ｔｊとの毎時の対応づけにおいて、適合度Ｃｉｊｐまたは相違度Ｄｉｊｐを算出する。具体的には、ＳＴ４１０においてｋ番目のモデル特徴点Ａｋの座標を変換行列Ｈｉｊｐにより変換した後、処理対象の特徴点群中に変換後の点Ｂｋに対応する特徴点が存在する場合（ＳＴ４１１が「ＹＥＳ」の場合）には、適合度Ｃｉｊｐに１を加算し（ＳＴ４１２）、点Ｂｋに対応する特徴点が見つからなかった場合（ＳＴ４１１が「ＮＯ」の場合）には相違度Ｄｉｊｐに１を加算する（ＳＴ４２４）。また、加算後の相違度Ｄｉｊｐが所定のしきい値Ｄｍａｘに達した場合（ＳＴ４２５が「ＹＥＳ」の場合）には、処理を打ち切って、つぎの対応づけにかかる処理に移行する。また、ＳＴ４０８では、カウンタｋおよび適合度Ｃｉｊｐとともに相違度Ｄｉｊｐにも初期値０をセットする。
【００７８】
上記の処理によれば、構成点の対応づけが正しくない組み合わせについては、適合度の演算を最後まで行わなくても良くなるので、その分、処理を高速化することができる。
【００７９】
つぎに、上記の実施例では、モデルの特徴点群、処理対象の特徴点群のいずれについても、各特徴点の組み合わせにより設定される三角形のうち、各辺の長さの値がそれぞれ上限値ｄＨおよび下限値ｄＬにより特定される基準の数値範囲に入る三角形を、モデル三角形、比較対象三角形として絞り込んだが、これに限らず、辺の長さと角度とに基づいて三角形の絞り込みを行ってもよい。たとえば、少なくとも一辺の長さが基準の数値範囲に入り、その両端の角度が基準の角度範囲に入る三角形や、二辺の長さが基準の数値範囲に入り、これらの辺のなす角度が基準の角度範囲に入る三角形を、モデル三角形、比較対象三角形に設定することができる。この場合、三角形の角度を算出する代わりに、各辺に対応するベクトルの内積を求め、その結果を、同様に内積に換算されたしきい値と比較するようにすれば、演算が簡単になり、十分な処理速度を確保することができる。
【００８０】
これまでに説明したように、上記の実施例では、アフィン変換の変換パラメータを求めるには、モデルの特徴点群と対象物の特徴点群との間で、３組以上の特徴点を対応づける必要があるという観点から、３個の特徴点による三角形を用いた照合処理により最適な変換行列Ｈを特定するようにした。
しかし、画像のような平面に分布する特徴点群を処理対象とする場合には、少なくとも対応関係にある特徴点の組を２組求めることができれば、これらの特徴点の座標から残りの１組の対応点の座標を推定することが可能である。たとえば、特徴点群から抽出した２個の特徴点を、二等辺三角形の２頂点または直角三角形の斜辺を構成する２頂点に相当すると考えて、これらの点の座標から残りの１頂点の座標を算出することができる。
【００８１】
よって、モデルおよび処理対象の特徴点群から抽出する特徴点の数を２個にして、これらの点を対応づけるとともに、別途、対応関係にある仮想の特徴点の座標を１組算出し、これら３組の点によりモデル三角形および比較対象三角形を設定して、変換行列Ｈを求めてもよい。この場合にも、適合度の算出フローは図６のＳＴ４０７〜４１４に示したものと同様になる。
【００８２】
ただし、特徴点の抽出数を単純に３から２に減らすと、特徴点の組み合わせの対応づけ数が大幅に増加して、演算時間が長くなるおそれがある。したがって、このような処理は、長尺状の対象物に限定するのが望ましい。対象物が長尺状である場合には、その長さに応じて抽出対象の２点間の距離を限定することによって、特徴点の組み合わせの数を絞り込むことができ、演算時間を短縮できるからである。
【００８３】
つぎに、２台のカメラによるステレオ画像を処理して３次元計測を実行し、算出された空間座標を用いて対象物の認識を行う場合にも、空間内に分布する特徴点群に対し、２次元の場合と同様の方法で対象物を認識することができる。
【００８４】
３次元空間における特徴点の関係を特定するには、同次座標変換の変換パラメータを特定する必要がある。
モデルの特徴点群中の一特徴点の座標を（ｍＸｉ，ｍＹｉ，ｍＺｉ）とし、処理対象の特徴点群中の対応点の座標を（ｔＸｉ，ｔＹｉ，ｔＺｉ）とし、モデルに対する対象物のｘ軸方向における回転角度をθ、ｙ軸方向における回転角度をφ、ｚ軸方向における回転角度をψとすると、同次座標変換の変換式は、下記の（２）式のようになる。
【００８５】
【数２】
2010113731.tif 000004
【００８６】
上記の（２）式によれば、モデルの特徴点群と処理対象の特徴点群との間で対応関係にある特徴点の組を３組特定できれば、これら点の座標を、（ｍＸｉ，ｍＹｉ，ｍＺｉ）および（ｔＸｉ，ｔＹｉ，ｔＺｉ）として、上記の（２）式から３とおりの３元連立方程式を設定し、変換行列Ｈ１を求めることができる。よって、３次元モデルから複数のモデル三角形を抽出して登録しておき、対象物のステレオ画像に対する３次元計測により複数の特徴点の空間座標を求め、これらの中から比較対象三角形を抽出し、各三角形を図６と同様の手順で照合することにより、最適な変換行列を求めることができる。
【００８７】
図９は、ＩＣを対象物として、３次元の認識処理を行う例を示す。
この認識処理では、空間内の所定位置を原点Ｏとして空間座標系ＸＹＺを設定し、３次元モデル４０および認識対象のＩＣ４１について、それぞれ複数の特徴点の空間座標を算出し、その算出結果を用いて、上記した三角形の照合処理を行う。この例でも、先の図３の例と同様に、対応関係にある種々の三角形のうちの特定の１組（三角形ＡＢＣとＡ´Ｂ´Ｃ´）を示している。
【００８８】
上記の認識処理によれば、たとえばＩＣのリードの検査において、認識対象のＩＣ４１の先頭のリードの先端部の座標（図９の点Ｂ´の座標に相当する。）を特定し、さらに、この座標を基準に他のリードの先端部の座標を特定して、各先端部の高さが揃っているかどうかを判別することができる。
【００８９】
また、ロボットによる組み立て工程の制御に上記の認識処理を適用する場合に、たとえば点Ａ´，Ｃ´の座標に基づいて、認識対象のＩＣ４１の上面内の中央部に吸着ポイントを設定し、この設定位置にロボットアームの吸着ノズルが移動するように制御することができる。
【００９０】
図１０および図１１は、上記の３次元認識処理が適用された部品ピッキングシステムの具体例を示す。
このシステムは、支持台６０にバラ積みされた部品５１を１つずつ摘み上げて別の場所に運び、整列配置することを目的とするもので、現場には、ピッキング作業を担当するロボット３０や２台のカメラ１Ａ，１Ｂが配備される。さらに、このシステムには、３次元認識処理用の画像処理装置２０、ＰＬＣ２１（プログラマブル・ロジック・コントローラ）、ロボットコントローラ２２などが含まれる。
【００９１】
ロボット３０は、先端にハンド部３１が設けられた多関節型のアーム部３２を具備しており、ロボットコントローラ２２に接続される。ロボットコントローラ２２は、ＰＬＣ２１からの制御信号に応じて、アーム部３２の各関節やハンド部３１の動作を制御することにより、ハンド部３１の位置や方向を定め、部品５１の把持や移動を行わせる。
【００９２】
各カメラ１Ａ，１Ｂは、画像処理装置２０に接続される。画像処理装置２０の構成は、図１に示したものとほぼ同様であるため、詳細な図示は省略するが、画像入力部３、エッジ抽出部４、画像メモリ５はカメラ１Ａ，１Ｂ毎に個別に設けられる。また、この画像処理装置２０は、ＰＬＣ２１からの指令に応じて、各カメラ１Ａ，１Ｂに同時にトリガ信号を出力するように設定されている。
【００９３】
画像処理装置２０では、各カメラ１Ａ，１Ｂからの画像を用いた３次元認識処理を行って、バラ積み部品の中の１つを認識し、この部品の位置を示す３次元座標や姿勢を示す角度データを出力する。ＰＬＣ２１は、画像処理装置２０から出力されたデータを用いてロボット３０のハンド部３１の位置や姿勢を示すデータを算出する演算を実行し、演算で得たデータをロボットコントローラ２２に供給する。ロボットコントローラ２２では、ＰＬＣ２１から供給されたデータに基づき、ロボットのアーム部３２やハンド部３１の動作量を決定し、その結果に基づき各部３１，３２を制御する。これにより、画像処理装置２０により認識された部品を摘み上げ、所定の場所に搬送することが可能になる。
【００９４】
この実施例でも、あらかじめ認識対象の部品５１の３次元モデルから所定数の特徴点を抽出して、これらによりモデル三角形を設定し、画像処理装置２０に登録するようにしている。またピッキング処理においては、各カメラ１Ａ，１Ｂにより撮像された画像を用いて複数の特徴点の３次元座標を求めた後に、これらの特徴点により設定した比較対象三角形とモデル三角形とを照合することによって、モデルの特徴点群と処理対象の特徴点群との関係を表すのに最適な変換行列を特定する。さらに、特定した変換行列に基づき、ピッキング対象の部品の位置や姿勢を示すデータを算出する。
【００９５】
図１２は、特徴点の具体例を、対応関係にある三角形のうちの特定の１組（三角形ＡＢＣとＡ´Ｂ´Ｃ´）とともに示す。
この実施例では、認識対象の部品５１の３次元モデル５０が空間座標系ＸＹＺに所定の姿勢で配備されているときの各角部の頂点の座標を特徴点とし、これらの特徴点による三角形のうち、各辺の長さが所定の数値範囲（第１実施例と同様にユーザにより入力される。）に含まれるものをモデル三角形として登録する。一方、認識対象の部品５１については、カメラ１Ａ，１Ｂからの画像をエッジ画像に変換した後に、各エッジ画像から角部の頂点に相当するエッジ構成点を特定して、これらのエッジ構成点につき求めた３次元座標により比較対象三角形を設定する。また、比較対象三角形についても、各辺の長さがモデル三角形と同様の数値範囲に含まれるものに限定する。
【００９６】
なお、角部の頂点を特定するには、たとえば、エッジ画像中の各エッジ構成点が表す輪郭線を直線や曲線等のセグメントに分割し、各セグメントの交点を求めればよい。また図１２の例のように認識対象物の輪郭線が直線状になる場合には、各エッジ構成点につき、それぞれ濃度勾配方向に直交する方向に沿って仮想の直線を設定し、これらの直線を方向が近似するグループ毎に統合した後、これらの直線の交点を特徴点として求めてもよい。
【００９７】
ただし、特徴点はエッジの交点に限定されるものではない。たとえば、曲線状の輪郭形状を有する対象物であれば、曲線状のセグメントを抽出し、曲率の変化量に基づき、勾配が緩やかな部位から急峻な部位に変化した点などを、特徴点として抽出してもよい。
【００９８】
３次元モデル側の特徴点も、実物の部品５１のモデルを用いて上記と同様の３次元計測処理を実行することにより求めることができるが、部品５１のＣＡＤデータがある場合には、そのＣＡＤデータが表す３次元の輪郭線から同様の特徴点を抽出してもよい。
【００９９】
この実施例では、複数の認識対象物を撮像するため、各カメラ１Ａ，１Ｂの画像からは、１つの対象物のみを処理対象とする場合よりも多くのエッジ構成点が抽出されるが、対象物の特徴的な輪郭形状の構成点に特徴点を絞り込むことにより、演算の負担を減らすことができる。また、モデル三角形や比較対象三角形の設定においても、対象物の形状に応じて三角形の長さや角度等に条件を設けることにより、三角形の数を絞り込んで精度の良い認識処理を行うことができる。ただし、特徴点の数を減らすと、三角形の設定に関する条件を定めるのが難しくなるため、ノウハウのないユーザが処理を行う場合や、認識対象物が頻繁に変わるような場合には、特徴点の絞り込みを行わずに、全てのエッジ構成点を特徴点としてもよい。
【０１００】
以下、ロボット３０の動作制御のために画像処理装置２０で実行される処理の流れについて、図１３を用いて説明する。
まずＳＴ５０１では、ＰＬＣ２１からの指令を受けて各カメラ１Ａ，１Ｂにトリガ信号を出力し、撮像を行わせる。つぎのＳＴ５０２では、各カメラ１Ａ，１Ｂから入力された画像を対象に特徴点の抽出を行う。ここでは、各入力画像をそれぞれのエッジ抽出部４によりエッジ画像に変換した後、上記した角部の頂点等のエッジ構成点を複数特定し、これらを特徴点として設定してもよい。または全てのエッジ構成点を特徴点としてもよい。
【０１０１】
ここで特徴点が抽出されると、ＳＴ５０３が「ＹＥＳ」となり、ＳＴ５０４において、抽出された特徴点について３次元座標を算出する。具体的には、各特徴点を画像間で対応づけた後、対応づけされた点の組毎に、各点の座標を三角測量の原理による数式にあてはめた演算を実行することによって、これらの点に対応する３次元座標を算出する。
【０１０２】
この後は、ＳＴ５０５において、算出された各３次元座標が示す特徴点群を対象に、比較対象三角形を抽出する処理を実行する。さらに、ＳＴ５０６において、比較対象三角形とあらかじめ登録されたモデル三角形とを順に対応づけ、対応づけた組み合わせ毎に、変換行列やその行列の適合度を算出する処理を実行することにより、処理対象の特徴点群に最適な変換行列Ｈ１（適合度が最大になったときの変換行列）を特定する。このＳＴ５０５の詳細は、同次座標変換の演算式（（２）式）を実行する点を除けば、先の図６または図７，８に示した処理とほぼ同様の流れになる。
【０１０３】
最適な変換行列Ｈ１が特定されると、ＳＴ５０７では、３次元モデル５０につきあらかじめ定めておいた代表点を変換行列Ｈ１により変換し、その変換後の座標を、ピックアップ対象の部品の位置データとする。さらに、ＳＴ５０８では、特定した変換行列Ｈ１の各成分を用いて、同次座標変換のパラメータθ，φ，ψを算出し、これらの組み合わせをピックアップ対象の部品の姿勢データとする。
３次元モデル５０の代表点には、特徴点のうちの１つ（たとえば図１２の点Ａ）を設定しても良いが、これに限らず、エッジ構成点以外の点（たとえば図１２の三角形ＡＢＣの重心）を代表点としてもよい。
【０１０４】
ＳＴ５０９では、ＳＴ５０７で算出した位置データおよびＳＴ５０８で算出した各角度θ，φ，ψによる姿勢データを、ＰＬＣ２１に出力する。この出力を受けたＰＬＣ２１では、ロボット制御用のデータを算出し、これをロボットコントローラ２２に出力する。ロボットコントローラ２２では、ＰＬＣ２１から供給されたデータに基づきロボット３０の動作を制御することにより、認識されたピックアップ対象の部品をロボット３０に把持させ、撮像対象領域外に搬送させる。この搬送処理が完了し、その旨がロボットコントローラ２２からＰＬＣ２１に通知されると、ＰＬＣ２１は画像処理装置２０に、つぎの撮像用のトリガ信号の出力を指示する。
【０１０５】
画像処理装置２０では、データの出力が終了すると、再びＳＴ５０１に戻り、ＰＬＣ２１からの指示に応じて、上記の部品搬送後の撮像対象領域を撮像する。さらに、ＳＴ５０２以下の処理を実行することにより、つぎのピッキング対象の部品の位置および回転角度を求め、ＰＬＣ２１に出力する。
【０１０６】
以下も同様に、ＳＴ５０１〜５０９を繰り返すことにより、バラ積みされていた部品が１つずつ認識され、その認識結果に基づく制御を受けたロボット３０により搬送される。この結果、全ての部品が搬送され、撮像により得た画像に特徴点が含まれない状態になると、ＳＴ５０３が「ＮＯ」となり、処理を終了する。
【０１０７】
なお、認識対象の部品５１のバラ積み位置がカメラ１Ａ，１Ｂの視野からずれるなどして、部品５１の全体像が生成されなかった場合には、最大の適合度でも非常に低い値になる可能性がある。このような場合に対応するために、最大の適合度が所定の基準値を下回った場合には、部品５１の認識処理を打ち切ってエラー処理を実行するのが望ましい。この点については、先の２次元の認識処理でも同様である。
【０１０８】
上記の説明では、ＳＴ５０６において、最適な変換行列Ｈ１として、適合度が最大になったときの変換行列を特定するとした。変換行列の適合度が大きくなるほど、その変換行列によりモデルの特徴点群を変換したときの変換後の各点が処理対象の特徴点群に対応する頻度も増えるから、適合度が最大になったときの変換行列を選択することにより、バラ積みされた複数の部品５１の中からモデルの特徴点群に対応する点が最も多い部品５１を認識することができる。言い換えれば、露出の度合いが一番大きい部品５１、さらに言い換えれば、ロボット３０にとって一番摘みやすい部品５１を認識することができる。
【０１０９】
ただし、最適な変換行列Ｈ１として特定できるものは上記に限定されるものではない。たとえば、適合度が所定の基準値を超えた変換行列を、全て変換行列Ｈ１の候補としてピックアップし、これらの変換行列により３次元モデルの代表点の座標を変換して、変換後のＺ座標が最も高くなったときの変換行列を最適な変換行列Ｈ１としてもよい。この場合には、バラ積みされた部品５１の中の一番上にある部品を認識することができる。
【０１１０】
また、上記のシステムでは、対象物（部品５１）を１つ特定する必要性から各組み合わせ毎に求めた変換行列の中から最適なものを１つ特定したが、これに限らず、用途によっては、適合度が基準値を超えた変換行列を複数特定し、特定された一変換行列につき対象物を１つ認識してもよい。このようにすれば、複数のロボット３０に作業を行わせる場合でも、各ロボット３０に把持させるべき部品５１を、それぞれ個別に認識することが可能になる。
【０１１１】
また３次元の認識処理の適用範囲は、上記のようなステレオ画像を用いた計測処理結果に限るものではない。たとえば、所定の範囲に変位センサを走査して、対象物までの距離を複数地点で計測する方法による３次元計測の結果に適用することもできる。
【０１１２】
上記の２次元、３次元の画像処理による実施例では、モデルおよび処理対象の特徴点をエッジ構成点としているが、特徴点はこれに限るものではない。たとえば、特定の色彩を有する領域を処理対象とする場合には、その色彩が現れている画素を特徴点として抽出してもよい。
【符号の説明】
【０１１３】
１    カメラ
２    コントローラ
３    画像入力部
４    エッジ抽出部
５    画像メモリ
１０  制御部
１１  ＣＰＵ
１３  ＲＡＭ
１４  ハードディスク
【図１】
2010113731.tif 000005
【図２】
2010113731.tif 000006
【図３】
2010113731.tif 000007
【図４】
2010113731.tif 000008
【図５】
2010113731.tif 000009
【図６】
2010113731.tif 000010
【図７】
2010113731.tif 000011
【図８】
2010113731.tif 000012
【図９】
2010113731.tif 000013
【図１０】
2010113731.tif 000014
【図１１】
2010113731.tif 000015
【図１２】
2010113731.tif 000016
【図１３】
2010113731.tif 000017