(57)【要約】【課題】角部等の特定の形状的な特徴を使用することなく、被探索画像の中からエッジ抽出領域を特定することでパターンマッチング処理の高速化を図ることができるパターンマッチング方法を提供する。【解決手段】検出対象物に基づいて生成した切り出し画像をエッジ抽出処理することにより、モデルエッジ画像を生成する工程（ステップＳ１〜ステップＳ３）と、回転処理、拡大縮小処理、及び平行移動処理のうちの少なくとも１つを利用して得られた複数のモデルエッジ画像を重ね合わせることにより、モデルエッジ画像が位置し得る部分として特定されたエッジ抽出領域を生成する工程（ステップＳ４〜ステップＳ１２）と、被探索画像におけるエッジ抽出領域に対してエッジ抽出処理を行って生成された探索エッジ画像とモデルエッジ画像とでパターンマッチングを行う工程と、を備える。【選択図】図４
2015035211.tif 000002
【特許請求の範囲】
【請求項１】
検出対象物に関する探索エッジ画像とモデルエッジ画像とでパターンマッチングを行うことにより、前記検出対象物を撮像することにより得られる被探索画像の中から前記検出対象物の画像を検出するパターンマッチング方法において、
前記検出対象物に基づいて生成した切り出し画像をエッジ抽出処理することにより、前記モデルエッジ画像を生成する工程と、
前記モデルエッジ画像をその回転中心を中心に所定範囲で回転させる回転処理、前記モデルエッジ画像を前記回転中心を中心に所定範囲で拡大縮小させる拡大縮小処理、及び前記モデルエッジ画像を所定範囲で平行移動させる平行移動処理のうちの少なくとも１つを利用して得られた複数の前記モデルエッジ画像を重ね合わせることにより、前記モデルエッジ画像が位置し得る部分として特定されたエッジ抽出領域を生成する工程と、
前記被探索画像における前記エッジ抽出領域に対してエッジ抽出処理を行って生成された前記探索エッジ画像と、前記モデルエッジ画像とでパターンマッチングを行う工程と、を備える、
ことを特徴とするパターンマッチング方法。
【請求項２】
前記回転中心は、前記モデルエッジ画像の重心である、
ことを特徴とする請求項１記載のパターンマッチング方法。
【請求項３】
前記回転中心は、前記モデルエッジ画像の外接矩形の中心である、
ことを特徴とする請求項１記載のパターンマッチング方法。
【請求項４】
前記回転処理及び前記拡大縮小処理は、前記平行移動処理よりも先に実行される、
ことを特徴とする請求項１乃至３のいずれか１項に記載のパターンマッチング方法。
【請求項５】
前記パターンマッチングを行う工程は、
前記探索エッジ画像で前記モデルエッジ画像を所定の角度だけ回転させ又は所定の拡大縮小率だけ拡大縮小させ、前記モデルエッジ画像のエッジ方向及び前記探索エッジ画像のエッジ方向に基づいて、前記モデルエッジ画像と前記探索エッジ画像との間の類似度を算出する第１の工程と、
前記探索エッジ画像で、前記モデルエッジ画像の中心を所定のピクセルだけ移動させ、前記モデルエッジ画像のエッジ方向及び前記探索エッジ画像のエッジ方向に基づいて、前記モデルエッジ画像と前記探索エッジ画像との間の類似度を算出する第２の工程と、
前記第１及び第２の工程を繰り返し、最も類似度の大きかった前記モデルエッジ画像の前記探索エッジ画像での位置と回転角度又は拡大縮小率とをパターンマッチングの結果として出力する第３の工程と、を備える、
ことを特徴とする請求項１乃至４のいずれか１項に記載のパターンマッチング方法。
【請求項６】
設計上の撮像位置に配置された前記検出対象物を撮像し、前記検出対象物の参照画像を取得し、前記参照画像から所定の領域を切り出すことで前記切り出し画像を生成する工程を備える、
ことを特徴とする請求項１乃至５のいずれか１項に記載のパターンマッチング方法。
【請求項７】
前記検出対象物の設計データに基づいて、前記切り出し画像を生成する工程を備える、
ことを特徴とする請求項１乃至５のいずれか１項に記載のパターンマッチング方法。
【請求項８】
請求項１乃至７のいずれか１項に記載のパターンマッチング方法の各工程をコンピュータに実行させるためのパターンマッチングプログラム。
【請求項９】
請求項８に記載のパターンマッチングプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【請求項１０】
少なくとも探索エッジ画像及びモデルエッジ画像を記憶可能な記憶部と、
前記探索エッジ画像と前記モデルエッジ画像とでパターンマッチングを行う演算部と、を備えるパターンマッチング装置において、
前記演算部は、請求項１乃至７のいずれか１項に記載のパターンマッチング方法を実行する、
ことを特徴とするパターンマッチング装置。
【請求項１１】
ワークに対して作業可能なロボット装置と、
前記ロボット装置に前記ワークを供給するワーク供給装置と、
前記ワーク供給装置により前記ロボット装置に供給された前記ワークを撮影可能なカメラと、
前記カメラにより撮影された前記ワークの画像を前記被探索画像として前記探索エッジ画像を生成し、前記ワークに基づいて生成された前記モデルエッジ画像と前記探索エッジ画像との間のパターンマッチングを行うことにより、前記被探索画像における前記ワークの位置を検出する請求項１０記載のパターンマッチング装置と、を備える、
ことを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被探索画像に基づいて生成した探索エッジ画像と、検出対象物に基づいて生成したモデルエッジ画像と、でパターンマッチングを行うパターンマッチング方法及びパターンマッチング装置に関する。
【背景技術】
【０００２】
従来、画像処理の分野において、検出対象物であるワーク等の位置を検出する方法として、パターンマッチング方法が周知である。その中でも、形状パターンマッチング（以下、パターンマッチングと呼ぶ）は、照明変化、物体の隠れ、欠けにも強く、ロバスト性が高い手法であることから、広く普及している。
【０００３】
パターンマッチングでは、モデル（参照画像）と被探索画像との形状特徴を利用して、類似度を計算していくので、画像に対する形状特徴を抽出する必要がある。形状特徴を抽出する方法としては、一般的にソーベル（Ｓｏｂｅｌ）フィルタやキャニー（Ｃａｎｎｙ）フィルタ等のエッジ抽出方法が知られている。モデルに対するエッジ抽出は、実際の探索処理前に事前に行っておくことができるため処理時間は殆ど問題にならないが、被探索画像に対するエッジ抽出は実際の探索処理中に同時進行で行う必要があるため、いかに処理時間を短縮するかが課題になっている。
【０００４】
このような課題を解決するために、エッジ抽出を行うエッジ抽出領域を被探索画像の一部に絞ることで、被探索画像の全体に対してエッジ抽出を行うよりも処理を高速化するパターンマッチング方法が提案されている（特許文献１参照）。このパターンマッチング方法では、モデルエッジ画像を生成する際に、検出対象物の角部付近のみのエッジを抽出し、それをモデルエッジ画像とする。実際の探索処理の際には、最初に被探索画像に対して角部検出を行い、次に、検出した角部の周辺領域のみでエッジ抽出を行い、予め生成しておいた角部のモデルエッジ画像を使用して、パターンマッチングを行う。これにより、エッジ抽出を行う領域が角部の周辺に絞られるため、被探索画像の全体をエッジ抽出するのに比べて処理時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−９１５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載されたパターンマッチング方法は、検出対象物が角部を有している必要があるので、例えば、検出対象物が円形状のように角部を有しない場合は適用することができないという問題があった。また、検出対象物の背景に検出対象物以外の角部形状が存在する場合は、検出対象物以外の角部を検出してしまい、エッジ抽出領域が絞られなくなるという問題があった。
【０００７】
本発明は、角部等の特定の形状的な特徴を使用することなく、被探索画像の中からエッジ抽出領域を特定することでパターンマッチング処理の高速化を図ることができるパターンマッチング方法及びパターンマッチング装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、検出対象物に関する探索エッジ画像とモデルエッジ画像とでパターンマッチングを行うことにより、前記検出対象物を撮像することにより得られる被探索画像の中から前記検出対象物の画像を検出するパターンマッチング方法において、前記検出対象物に基づいて生成した切り出し画像をエッジ抽出処理することにより、前記モデルエッジ画像を生成する工程と、前記モデルエッジ画像をその回転中心を中心に所定範囲で回転させる回転処理、前記モデルエッジ画像を前記回転中心を中心に所定範囲で拡大縮小させる拡大縮小処理、及び前記モデルエッジ画像を所定範囲で平行移動させる平行移動処理のうちの少なくとも１つを利用して得られた複数の前記モデルエッジ画像を重ね合わせることにより、前記モデルエッジ画像が位置し得る部分として特定されたエッジ抽出領域を生成する工程と、前記被探索画像における前記エッジ抽出領域に対してエッジ抽出処理を行って生成された前記探索エッジ画像と、前記モデルエッジ画像とでパターンマッチングを行う工程と、を備えることを特徴とする。
【０００９】
また、本発明は、少なくとも探索エッジ画像及びモデルエッジ画像を記憶可能な記憶部と、前記探索エッジ画像と前記モデルエッジ画像とでパターンマッチングを行う演算部と、を備えるパターンマッチング装置において、前記演算部は上記に記載のパターンマッチング方法を実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、演算部が、被探索画像に対してエッジ抽出領域を生成する際に、被探索画像の中でモデルエッジ画像が位置し得る部分として特定された領域をエッジ抽出領域としている。このため、被探索画像の中からパターンマッチングに不要な部分を省いてエッジ抽出領域を特定することができるので、パターンマッチング処理の高速化を図ることができる。しかも、角部等の特定の形状的な特徴を使用することがないので、検出対象物の形状によらず、パターンマッチング処理を実行することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係るロボットシステムの概略構成を示す説明図であり、（ａ）は全体の側面図、（ｂ）はハンドに把持されたワークの平面図、（ｃ）は（ｂ）を撮影した画像である。
【図２】本発明の第１実施形態に係るパターンマッチング装置を示す説明図である。
【図３】本発明の第１実施形態に係る被探索画像を示す説明図であり、（ａ）はモデルエッジ画像を１つ重ねた状態、（ｂ）はモデルエッジ画像を回転させて回転形状和領域を生成した状態、（ｃ）は回転形状和領域を平行移動した状態である。
【図４】本発明の第１実施形態に係るパターンマッチング装置によりエッジ抽出領域を生成する際の手順を示すフローチャートである。
【図５】本発明の第１実施形態に係るモデルエッジ画像を生成する手順を示す説明図であり、（ａ）は切り出し画像が切り出された参照画像、（ｂ）は１画素のベクトル、（ｃ）は切り出し画像から生成されたモデルエッジ画像である。
【図６】本発明の第１実施形態に係るエッジ抽出領域を生成する手順を示す説明図であり、（ａ）〜（ｃ）はモデルエッジ画像を順次回転させて重ねて回転形状和領域を生成した状態、（ｄ）は回転形状和領域を平行移動した状態である。
【図７】本発明の第１実施形態に係るパターンマッチング装置によりパターンマッチング処理を実行する際の手順を示すフローチャートである。
【図８】本発明の第２実施形態に係るパターンマッチング装置によりモデルエッジ画像を生成する際の手順を示すフローチャートである。
【図９】本発明の第２実施形態に係るパターンマッチング装置によりモデルエッジ画像を生成する際の説明図であり、（ａ）は３次元形状データの座標系とカメラ座標系との関係、（ｂ）は３次元形状データと切り出し画像との関係を示す。
【図１０】本発明の第２実施形態に係るパターンマッチング装置によりエッジ抽出領域を生成する際の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１３】
［第１実施形態］
図１に示すように、ロボットシステム１は、ロボット装置２と、ロボット装置２にワーク６を供給するワーク供給装置３と、カメラ４と、ロボット装置２の制御装置（パターンマッチング装置）２１とを備えている。
【００１４】
ロボット装置２は、ワーク（検出対象物）６に対して作業可能であり、制御装置２１は、ロボット本体２０と、ロボット本体２０及びカメラ４を制御する。図１では、ワークの例として、ワーク６は、円環形状を有し、位相の基準となるように一部に径方向外側に突出した突起部６ａを備えている。ワーク６の位相の基準を突起部６ａにより示しているが、これには限られず、例えばマーク等であってもよい。カメラ４は、カメラ固定台４０に固定され、ワーク供給装置３によりロボット装置２に供給されたワーク６、即ちハンド２３に把持されたワーク６を上方から撮影可能になっている。尚、ワーク６の形状はどのようなものであってもよい。そのため、以下では説明を簡単にするために、ワーク６の形状を楕円柱形状（図３参照）や三角柱形状（図５，６，９参照）として表している。
【００１５】
ロボット本体２０は、６軸の垂直多関節アーム（以下、アームと呼ぶ）２２と、エンドエフェクタであるハンド２３とを有している。本実施形態では、アーム２２として６軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド２３を適用しているが、これには限られず、ワーク６を保持可能なツールの全般を含めることができる。
【００１６】
アーム２２は、７つのリンクと、各リンクを揺動又は回動可能に連結する６つの関節とを備えている。各リンクとしては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。各関節には、図２に示すように、各関節を各々駆動するモータ８０と、モータ８０の回転角度を検知するエンコーダ８１と、制御装置２１と信号を送受信してモータ８０及びエンコーダ８１を制御するモータ制御部８２とが設けられている。
【００１７】
ハンド２３は、アーム２２の先端リンク６０に取り付けられて支持され、アーム２２の動作により位置及び姿勢の少なくとも一自由度が調整されるようになっている。ハンド２３は、２本の指２３ａと、これら指２３ａの間隔を開閉可能に支持するハンド本体２３ｂとを備え、指２３ａ同士が接近する閉動作によりワーク６を把持可能になっている。
【００１８】
図２に示すように、制御装置２１は、コンピュータにより構成され、ロボット本体２０を制御するようになっている。制御装置２１を構成するコンピュータは、ＣＰＵ５０と、データを一時的に記憶可能なＲＡＭ（記憶部）５１と、各部を制御するプログラムを記憶するＲＯＭ５２と、ロボット本体２０と通信可能にする入出力インタフェース回路（Ｉ／Ｆ）５３とを備えている。また、制御装置２１は、パターンマッチングを実行するパターンマッチング装置を兼ねている。尚、本実施形態では、制御装置２１は、パターンマッチング装置の機能を含んでいるが、パターンマッチング装置を制御装置２１とは別個に設けてもよい。
【００１９】
ＲＯＭ５２は、後述するパターンマッチングプログラム５２ａや、ロボット本体２０の動作を制御するロボット制御プログラムや、その他のＣＰＵ５０が行うワーク６の位置姿勢演算に関する演算プログラム等を保存している。ＲＯＭ５２に記憶されたデータは、ＣＰＵ５０からの書き込みや消去を除き、制御装置２１の電源がオフ状態にされても保持されるようになっている。ＲＡＭ５１は、後述する探索エッジ画像１１や、モデルエッジ画像１２等のＣＰＵ５０にて処理中のデータを一時的に記憶するようになっている。
【００２０】
ＣＰＵ５０は、ロボット本体２０の動作を制御するロボット制御部５４や、パターンマッチング演算部（演算部）５５を備えている。ロボット制御部５４は、ロボット制御プログラムの実行により、ロボット本体２０の動作を制御するようになっている。
【００２１】
詳細には後述するが、パターンマッチング演算部５５は、パターンマッチングプログラム５２ａの実行により、探索エッジ画像１１と、モデルエッジ画像１２とでパターンマッチングを行う。
【００２２】
具体的には、パターンマッチング演算部５５は、実際の探索処理に先立って、設計上の撮像位置となるような理想状態の位置姿勢に設置したワーク６をカメラ４により撮影して、ワーク６をエッジ抽出処理することによりモデルエッジ画像１２を生成する。また、パターンマッチング演算部５５は、実際の探索処理に先立って、ハンド２３に把持されたワーク６をカメラ４により撮影して得られた被探索画像１０に、探索エッジ画像１１を生成する領域であるエッジ抽出領域１３を生成するようになっている。ここで、エッジ抽出領域１３は、被探索画像１０の中でモデルエッジ画像１２が位置し得る部分、言い換えると実際の探索処理の際にワーク６の画像が位置し得る部分として特定された領域である。そして、パターンマッチング演算部５５は、被探索画像１０のエッジ抽出領域１３に対してエッジ抽出を行って生成した探索エッジ画像１１と、モデルエッジ画像１２と、でパターンマッチングを行うようになっている。
【００２３】
上述したロボット装置２の制御装置２１により、パターンマッチング処理を行うためのモデルエッジ画像１２を生成し、被探索画像１０にエッジ抽出領域１３を生成する手順を、図４に示すフローチャートに沿って説明する。尚、ここでは本実施形態のカメラ４及び制御装置２１を利用してモデルエッジ画像１２を生成する場合について説明するが、これには限られず、別のカメラ及びコンピュータを利用してもよい。
【００２４】
＜モデルエッジ画像１２の生成＞
まず、パターンマッチング用のモデルエッジ画像１２を生成するために、ワーク６を設計上の撮像位置となるような理想状態の位置姿勢に配置すると共に、理想状態の照明条件に設定し、カメラ４により撮影を行う。例えばワーク６とカメラ４の位置関係が水平になり、傾きなくワーク６を撮像できることが理想状態として望ましい。また、照明条件としては、ワーク６全体に同一照度の照明があたるように設定することが望ましい。そして、図５（ａ）に示すように、ワーク６を含む広域の参照画像１４を得る（ステップＳ１）。カメラ４から出力された参照画像１４の画像データは、制御装置２１に入力されて記憶される。
【００２５】
操作者は、例えばディスプレイに表示された参照画像１４から、検出したいワーク６の周囲の矩形領域をモデル領域として設定する（図５（ａ）参照）。その設定方法は、制御装置２１に付随したマウス等を利用し、ディスプレイに表示された参照画像１４内のワーク６を包含する領域の左上の点と右下の点とをクリックする。クリックした２点の位置を矩形領域の左上及び右下の角の点として、参照画像１４から矩形領域のみを切り出し、当該領域の画像を切り出し画像１５とする（ステップＳ２）。尚、ステップＳ１〜ステップＳ２が、ワーク６を撮像して得られた参照画像１４から切り出し画像１５を生成する工程に相当する。
【００２６】
次に、切り出し画像１５に対してエッジ抽出を行い、モデルエッジ画像１２を生成する（ステップＳ３）。ここでは、切り出し画像１５の各画素ごとにエッジ強度及びエッジ方向を算出する。即ち、各画素において、エッジは強度と方向の要素を有するベクトルとして定義される。エッジ強度とは、コントラストの大きさを表し、注目画素に対し隣接する画素のコントラストが大きければ、当該注目画素のエッジ強度も大きくなる。エッジ方向とは、コントラストの方向を表し、注目画素のエッジ強度が最も大きくなる方向（角度）を示す。尚、ステップＳ３が、切り出し画像１５からモデルエッジ画像１２を生成する工程に相当する。
【００２７】
エッジ強度の算出には、Ｘ軸方向及びＹ軸方向のソーベルフィルタを使用し、任意の画素７０で、Ｘ軸方向のエッジ強度７１とＹ軸方向のエッジ強度７２とを算出する。そして、数式１に示すように、エッジ強度７３を各軸方向のエッジ強度７１，７２の二乗和の平方根で表す（図５（ｂ）参照）。尚、本実施形態では、エッジ強度の算出にソーベルフィルタを使用しているが、これには限られず、例えば、ラプラシアンフィルタやキャニーフィルタ等の周知のエッジ抽出フィルタを使用してもよい。
【００２８】
【数１】
2015035211.tif 000003
Ｉ：エッジ強度
ｅｘ：Ｘ軸方向のエッジ強度７１
ｅｙ：Ｙ軸方向のエッジ強度７２
【００２９】
エッジ方向の算出には、数式２を使用する。
【００３０】
【数２】
2015035211.tif 000004
θ：エッジ方向
ｅｘ：Ｘ軸方向のエッジ強度７１
ｅｙ：Ｙ軸方向のエッジ強度７２
【００３１】
上述の手法により、切り出し画像１５の全画素のエッジ強度及びエッジ方向を算出する。そして、エッジ強度がある所定の閾値以上になった画素をエッジ特徴として抽出し、モデルエッジ画像１２を生成する（図５（ｃ）参照）。モデルエッジ画像１２のデータ保持方法は、モデルエッジ画像１２の画素毎に２チャンネルのデータ領域を持っておき、エッジ特徴として抽出された画素７４は有効画素として、１チャンネル目にエッジ強度、２チャンネル目にエッジ方向の情報を入れておく。エッジ特徴ではないと判断された画素７５には、無効値（例えば０）を入れておく。図５（ｃ）に示す例では、エッジ特徴の有効画素７４を斜線で表現し、無効画素７５を白で表現している。
【００３２】
本実施形態では、画素毎に２チャンネルのデータ領域を設けているが、これには限られず、例えば、エッジ強度のみを記憶したエッジ強度画像と、エッジ方向のみを記憶したエッジ方向画像との２画像を１組としたモデルエッジ画像として記憶してもよい。尚、本実施形態では、エッジ強度の算出にソーベルフィルタを使用しているが、これには限られず、ラプラシアンフィルタやキャニーフィルタ等の一般的に知られたエッジ抽出フィルタを使用してもよい。
【００３３】
＜エッジ抽出領域１３の生成＞
続いて、エッジ抽出領域１３の生成について説明する。まず、制御装置２１は、先に求めたモデルエッジ画像１２を入力する（ステップＳ４）。そして、操作者が、パターンマッチングに必要な探索範囲（即ち、平行移動の探索範囲及び探索回転角）を指定する（ステップＳ５、ステップＳ６）。この指定は、ユースケースによって変わるものであり、モデルエッジ画像１２を作成したときのワーク６の位置姿勢（即ち、設計上の位置）から、実際の探索処理において位置姿勢がどのくらい異なる可能性があるかによって決められるものである。また、ここで指定される探索範囲（即ち、平行移動の探索範囲と探索回転角）を、以下、幾何変換パラメータと呼ぶ。
【００３４】
まず、制御装置２１は、モデルエッジ画像１２に回転中心１７を設定する（図３参照）。本実施形態では、回転中心１７は、モデルエッジ画像１２の外接矩形の中心としている。このため、モデルエッジ画像１２が複雑であっても、回転中心１７を短時間で算出することができる。但し、回転中心１７としては外接矩形の中心には限られず、例えば重心としたり、あるいは外接円や内接円の中心としてもよい。重心を適用した場合は、より実際のワーク６の回転中心に近似した回転中心を得ることができる。
【００３５】
そして、操作者は、まず平行移動の探索範囲を指定する（ステップＳ５）。ここでは、図３に示すように、モデルエッジ画像１２の回転中心１７が移動し得る所定範囲の領域として、平行移動領域１６を設定する。尚、ここでの平行移動とは、ワーク６が回転することなく、水平、垂直方向に移動することを意味している。また、ここでの平行移動の移動ステップは、例えば、１ピクセルステップとしている。
【００３６】
そして、操作者は、次に探索回転角を指定する（ステップＳ６）。ここでは、モデルエッジ画像１２が回転し得る所定範囲の角度範囲、即ち、ワーク６がワーク供給装置３から取得された際に取り得る誤差の範囲を設定するようにし、例えば、回転角度を−９０ｄｅｇから９０ｄｅｇまでのように指定する。また、ここでの回転角度のステップは、例えば、１ｄｅｇステップとしている。
【００３７】
尚、本実施形態では、操作者は先に平行移動領域１６を設定し、その後に探索回転角を設定しているが、これには限られず、逆であってもよく、あるいは並行して同時に設定してもよい。また、平行移動及び回転角度のステップは、操作者が指定可能にしてもよく、あるいは操作者が指定できないように固定値にしておいてもよい。また、回転角度のステップにおいては、モデルエッジ画像１２の大きさに基づいて、自動的にステップ数を決定するようにしてもよい。
【００３８】
また、例えば、ワーク供給装置３がワーク６の位相まで位置決めして、ワーク６が供給される場合は、パターンマッチングの回転範囲は微小の範囲で設定可能である。一方、ワーク供給装置３でワーク６の位相の位置決めが行われない場合は、３６０°の回転範囲を設定する必要がある。
【００３９】
次に、先に指定された幾何変換パラメータに基づいて、エッジ抽出領域１３を生成する（ステップＳ７〜ステップＳ１２）。まず、パターンマッチング演算部５５は、全ての回転範囲の処理（回転処理）を終了したか否かを判断する（ステップＳ７）。この判断は、例えば、モデルエッジ画像１２を回転させる度にカウントアップされる回転カウンタにより判断される。パターンマッチング演算部５５が全ての回転範囲の処理は終了していないと判断した場合は、モデルエッジ画像１２を指定した回転角度のステップで回転させる（ステップＳ８）。そして、パターンマッチング演算部５５は、回転させたモデルエッジ画像１２ａと、ステップＳ４で入力したモデルエッジ画像１２とで、エッジ領域の和をとり、図６（ａ）に示すように、回転形状和領域１８を作成する（ステップＳ９）。
【００４０】
次に、パターンマッチング演算部５５は、再度、全ての回転範囲の処理を終了したか否かを判断する（ステップＳ７）。このように、ステップＳ７〜ステップＳ９を、ステップＳ６で指定された全ての探索回転角で実行することにより、回転形状和領域１８は、図６（ｂ）に示す状態を経て、最終的に図６（ｃ）に示すようになる。
【００４１】
そして、回転方向の全ステップが完了して、パターンマッチング演算部５５が全ての回転範囲の処理は終了したと判断した場合は、パターンマッチング演算部５５は、全ての平行移動範囲の処理（平行移動処理）を終了したか否かを判断する（ステップＳ１０）。この判断は、例えば、モデルエッジ画像１２の回転中心１７を平行移動領域１６内で平行移動させる度にカウントアップされる平行移動カウンタにより判断される。パターンマッチング演算部５５が全ての平行移動範囲の処理は終了していないと判断した場合は、先に生成した回転形状和領域１８をステップＳ５で指定した探索範囲内で指定したステップで平行移動させる（ステップＳ１１）。パターンマッチング演算部５５は、平行移動した回転形状和領域１８の和をとり、形状和領域１９を作成する（ステップＳ１２）。
【００４２】
次に、パターンマッチング演算部５５は、再度、全ての平行移動範囲の処理を終了したか否かを判断する（ステップＳ１０）。このように、ステップＳ１０〜ステップＳ１２を全ての平行移動方向の幾何変換パラメータで実行することにより、形状和領域１９は、最終的に図６（ｄ）に示すようになる。パターンマッチング演算部５５は、上述の手順で生成された形状和領域１９をエッジ抽出領域１３として記憶する。即ち、パターンマッチング演算部５５は、複数のモデルエッジ画像１２を重ね合わせて形状和領域１９を形成することにより、それをモデルエッジ画像１２が位置し得る部分として特定して、エッジ抽出領域１３を生成している。尚、ステップＳ４〜ステップＳ１２が、エッジ抽出領域１３を生成する工程に相当する。
【００４３】
＜パターンマッチング処理＞
上述したロボット装置２の制御装置２１により、モデルエッジ画像１２及びエッジ抽出領域１３を用いて、実際にワーク６の検出を行うパターンマッチング処理を実行する手順を、図７に示すフローチャートに沿って説明する。
【００４４】
まず、パターンマッチング演算部５５は、モデルエッジ画像１２を入力し（ステップＳ２１）、エッジ抽出領域１３を入力する（ステップＳ２２）。そして、パターンマッチング演算部５５は、ワーク６をカメラ４により撮影し、パターンマッチングを行うための被探索画像１０を入力する（ステップＳ２３）。更に、パターンマッチング演算部５５は、被探索画像１０におけるエッジ抽出領域１３に対し、上述したエッジ抽出処理（ステップＳ３）と同様の方法により、エッジ特徴を抽出し、探索エッジ画像１１を生成する（ステップＳ２４）。そして、パターンマッチング演算部５５は、モデルエッジ画像１２と、探索エッジ画像１１とでパターンマッチングを行う（ステップＳ２５）。尚、ステップＳ２１〜ステップＳ２５が、パターンマッチングを行う工程に相当する。
【００４５】
パターンマッチングの手法としては、モデルエッジ画像１２を回転させながらその回転中心１７を探索エッジ画像１１の内部でピクセル単位ごとに移動させる。そして、移動させた各位置で、探索エッジ画像１１からモデルエッジ画像１２とマッチングするための画像を抽出する。そして、抽出した画像とモデルエッジ画像１２との類似度Ｒを、数式３により求める。類似度Ｒは、モデルエッジ画像１２を所定の角度だけ回転させるごと（第１の工程）に、及び、モデルエッジ画像１２の中心を探索エッジ画像１１の内部で所定のピクセルだけ移動させるごと（第２の工程）に計算される。
【００４６】
【数３】
2015035211.tif 000005
Ｒｉｊ：探索エッジ画像１１内のモデルエッジ画像１２の中心位置（ｉ，ｊ）及び回転角度φにおける類似度
ｎ：エッジの数
θＩ：探索エッジ画像１１のエッジ方向
θＴ：モデルエッジ画像１２のエッジ方向
【００４７】
数式３において、画像内の位置とは、モデルエッジ画像１２の中心の探索エッジ画像１１内での位置を表す。また、数式３における類似度Ｒの範囲は０〜１となり、０が最も低い類似性、１が最も高い類似性となる。パターンマッチング演算部５５は、探索エッジ画像１１の平行移動領域１６内の全座標において数式３により演算を実行し、最も類似度Ｒの高かった位置の座標（ｉ，ｊ）及び回転角度φを記憶しておく。そして、最も類似度Ｒの高かった位置の座標（ｉ，ｊ）及び回転角度φを、探索エッジ画像１１のワーク６の検出位置及び検出角度（位相）とし、そこから被探索画像１０でのワーク６の検出位置及び検出角度を算出する。即ち、第１の工程及び第２の工程を繰り返し、最も類似度Ｒの大きかったモデルエッジ画像１２の探索エッジ画像１１での位置の座標（ｉ，ｊ）と回転角度φとをパターンマッチングの結果として出力する（第３の工程）。
【００４８】
上述したように本実施形態の制御装置２１によれば、パターンマッチング演算部５５が、被探索画像１０でのエッジ抽出領域１３を、被探索画像１０の中でモデルエッジ画像１２が位置し得る部分として特定された領域として設定している。このため、被探索画像１０の中からパターンマッチングに不要な部分を省いてエッジ抽出領域１３を特定することができるので、パターンマッチング処理の高速化を図ることができる。しかも、角部等の特定の形状的な特徴を使用することないので、ワーク６の形状によらず、パターンマッチング処理を実行することができる。
【００４９】
また、本実施形態の制御装置２１によれば、パターンマッチング演算部５５がモデルエッジ画像１２を回転させて回転形状和領域１８を生成し、該回転形状和領域１８を平行移動させて形状和領域１９を作成している。このため、必要最低限のエッジ抽出領域１３を生成することができる。
【００５０】
また、本実施形態の制御装置２１によれば、モデルエッジ画像１２の回転中心１７を外接矩形の中心とし、重心位置とほぼ同じ位置としている。このため、操作者は、直感的に幾何変換パラメータの設定範囲を絞り込むことが可能であり、これによりパターンマッチングが高速化するとともに、エッジ抽出領域１３もより絞り込まれるため、エッジ抽出にかかる処理時間がより短縮される。
【００５１】
尚、上述した本実施形態の制御装置２１では、エッジ抽出領域１３を生成する際に、回転処理及び平行移動処理の２つの処理を実行する場合について説明したが、これには限られない。例えば、拡大縮小処理、回転処理、平行移動処理の３つの処理を実行するようにしたり、あるいは回転処理及び平行移動処理とは異なる組み合わせの２つの処理としたり、１つの処理のみを実行するようにしてもよい。これらの処理の選択は、ワーク６の形状や、カメラ４との位置姿勢関係や、要求される処理時間及び精度等に応じて、適宜設定することができる。
【００５２】
例えば、拡大縮小処理、回転処理、平行移動処理の３つの処理を実行するようにした場合は、類似度Ｒを算出する際の第１の工程及び第３の工程での算出手順が異なる。即ち、第１の工程では、探索エッジ画像１１上でモデルエッジ画像１２を所定の角度だけ回転させ、又は所定の拡大縮小率だけ拡大縮小させるごとに算出するようにする。また、第３の工程では、最も類似度Ｒの大きかったモデルエッジ画像１２の探索エッジ画像１１での位置の座標と回転角度φ又は拡大縮小率とをパターンマッチングの結果として出力するようにする。
【００５３】
［第２実施形態］
次に、本発明の第２実施形態に係るロボットシステム１について説明する。
【００５４】
第２実施形態では、第１実施形態と比較して、モデルエッジ画像１２を作成する際に、図９に示すように、ワーク６の設計データであるＣＡＤの３次元形状データ１０６に基づいて作成するようにしている。また、第２実施形態では、第１実施形態と比較して、エッジ抽出領域１３を作成する際に、回転範囲及び平行移動範囲に加えて、拡大縮小範囲についても形状和領域を形成するようにしている。即ち、第２実施形態では、実際の探索処理において、ワーク６とカメラ４との距離が変動して探索エッジ画像１１内でのワーク６の大きさが異なる場合も考慮している。
【００５５】
本実施形態では、第１実施形態と比較してパターンマッチング演算部５５における処理が異なるが、ハード構成は第１実施形態と同様であるので、同一の符号を付して詳細な説明は省略する。尚、本実施形態では、ワーク６の３次元形状データ１０６を用いてモデルエッジ画像１２を生成し、かつ拡大縮小範囲についても形状和領域を形成しているが、これらの間には直接の関係はなく、いずれか一方のみを適用するようにしてもよい。
【００５６】
上述したロボット装置２の制御装置２１により、パターンマッチング処理を行うためのモデルエッジ画像１２を生成する手順を、図８に示すフローチャートに沿って説明する。
【００５７】
まず、制御装置２１は、ワーク６の設計データに基づいて、３次元形状データ１０６を作成する（ステップＳ３１）。３次元形状データは、ワーク６の形状を表す部分の３次元座標系Ｗ（ｘ，ｙ，ｚ）を持つ。本実施形態では説明の簡略化のため、図９（ａ）に示すようにワーク６の頂点位置にのみ３次元座標系Ｗ（ｘ，ｙ，ｚ）を持つものとする。そして、制御装置２１は、３次元形状データ１０６の３次元座標系Ｗを、実際の探索処理時でのカメラ４とワーク６の配置に基づいて、カメラ座標系Ｖに変換する（ステップＳ３２）。
【００５８】
更に、制御装置２１は、図９（ｂ）に示すように、カメラ座標系Ｖに変換した三次元形状データ１０６を切り出し画像１５に投影する（ステップＳ３３）。尚、ステップＳ３１〜ステップＳ３３が、ワーク６の設計データに基づいて、切り出し画像１５を生成する工程に相当する。三次元形状データ１０６を切り出し画像１５に投影する際は、数式４により処理を行う。
【００５９】
【数４】
2015035211.tif 000006
ｆ：焦点距離
Ｓｘ，Ｓｙ：ｘ，ｙ方向のセンサ素子間のピッチ幅
Ｃｘ，Ｃｙ：画像中心点
【００６０】
数式４において、焦点距離、センサピッチ幅、画像中心点はカメラ４に固有のパラメータであり、事前にカメラキャリブレーションを行うことにより算出することができる。
【００６１】
そして、制御装置２１は、得られた切り出し画像１５に基づいて、第１実施形態のステップＳ３と同様の手法で、モデルエッジ画像１２を生成する（ステップＳ３４）。尚、ステップＳ３４が、切り出し画像１５からモデルエッジ画像１２を生成する工程に相当する。
【００６２】
次に、上述したロボット装置２の制御装置２１により、被探索画像１０におけるエッジ抽出領域１３を生成する手順を、図１０に示すフローチャートに沿って説明する。
【００６３】
まず、制御装置２１は、エッジ抽出領域１３を生成するために、先に求めたモデルエッジ画像１２を入力する（ステップＳ４１）。そして、操作者が、パターンマッチングに必要な探索範囲を指定する（ステップＳ４２〜ステップＳ４４）。ここで、平行移動領域を設定するステップＳ４２と、探索回転角を設定するステップＳ４３とは、それぞれ第１実施形態のステップＳ５及びステップＳ６と同様であるので、詳細な説明は省略する。
【００６４】
操作者は、平行移動領域１６及び探索回転角を設定した後、拡大縮小率を指定する（ステップＳ４４）。ここでは、カメラ４とワーク６との距離により、モデルエッジ画像１２が拡大縮小し得る所定範囲、即ち、ワーク６がワーク供給装置３から取得された際に取り得る誤差の範囲を設定するようにし、例えば、拡大縮小率を９０％から１１０％までのように指定する。拡大縮小は、モデルエッジ画像１２の回転中心１７を中心に行うものとし、モデルエッジ画像１２を作成したときの大きさを１００％とし、９０％と１１０％はそれぞれ１０％の縮小と拡大を意味する。また、ここでの拡大縮小率のステップは、例えば、１％ステップとしている。
【００６５】
ここで、ロボット装置２の動作精度により平行移動や拡大縮小の範囲を決めることができる。即ち、ロボット装置２がカメラ４の撮影範囲にワーク６を移動させる際に、撮影範囲内での位置の誤差範囲により平行移動範囲を決められ、カメラ４の光軸方向の誤差範囲により拡大縮小範囲を決めることができる。
【００６６】
尚、本明細書中での拡大縮小とは、拡大または縮小の少なくとも一方を含む意味であり、いずれか一方のみであってもよい。また、本実施形態では、操作者は、平行移動領域１６、探索回転角、拡大縮小率の順で設定しているが、これには限られず、第１実施形態と同様に、他の順序であってもよく、あるいは並行して同時に設定してもよい。また、平行移動、回転角度、拡大縮小率のステップは、操作者が指定可能にしてもよく、あるいは操作者が指定できないように固定値にしておいてもよい。
【００６７】
次に、先に指定された幾何変換パラメータに基づいて、エッジ抽出領域１３を作成する（ステップＳ４５〜ステップＳ５３）。まず、パターンマッチング演算部５５は、全ての拡大縮小範囲の処理（拡大縮小処理）を終了したか否かを判断する（ステップＳ４５）。この判断は、例えば、モデルエッジ画像１２を拡大縮小させる度にカウントアップされる拡大縮小カウンタにより判断される。パターンマッチング演算部５５が全ての拡大縮用範囲の処理は終了していないと判断した場合は、モデルエッジ画像１２を指定した拡大縮小率のステップで拡大縮小させる（ステップＳ４６）。そして、パターンマッチング演算部５５は、拡大縮小させたモデルエッジ画像と、ステップＳ４１で入力したモデルエッジ画像１２とで、エッジ領域の和をとり、拡大縮小形状和領域を作成する（ステップＳ４７）。
【００６８】
次に、パターンマッチング演算部５５は、再度、全ての拡大縮小範囲の処理を終了したか否かを判断する（ステップＳ４５）。このように、ステップＳ４５〜ステップＳ４７を全ての拡大縮小の幾何変換パラメータで実行することにより、最終的な拡大縮小形状和領域を得る。
【００６９】
そして、拡大縮小の全ステップが完了して、パターンマッチング演算部５５が全ての拡大縮小範囲の処理は終了したと判断した場合は、パターンマッチング演算部５５は、全ての回転範囲の処理を終了したか否かを判断する（ステップＳ４８）。以下、ステップＳ４８〜ステップＳ５３については、第１実施形態のステップＳ７〜ステップＳ１２と同様であるので、詳細な説明は省略する。パターンマッチング演算部５５は、上述の手順で生成された形状和領域１９をエッジ抽出領域１３として記憶する。尚、ステップＳ４１〜ステップＳ５３が、エッジ抽出領域１３を生成する工程に相当する。
【００７０】
パターンマッチング演算部５５は、モデルエッジ画像１２及びエッジ抽出領域１３を用いて、実際にワーク６の検出を行うパターンマッチング処理を実行する。ここでのパターンマッチング処理は、第１実施形態のステップＳ２１〜ステップＳ２５と同様であるので、詳細な説明は省略する。尚、本実施形態では、類似度Ｒを算出する際に、拡大縮小処理、回転処理、平行移動処理の３つの処理を実行するので、第１実施形態とは第１の工程及び第３の工程での算出手順が異なる。即ち、第１の工程では、探索エッジ画像１１上でモデルエッジ画像１２を所定の角度だけ回転させ、又は所定の拡大縮小率だけ拡大縮小させるごとに算出するようにする。また、第３の工程では、最も類似度Ｒの大きかったモデルエッジ画像１２の探索エッジ画像１１での位置の座標と回転角度φ又は拡大縮小率とをパターンマッチングの結果として出力するようにする。
【００７１】
上述したように本実施形態の制御装置２１によれば、第１実施形態と同様に、被探索画像１０の中からパターンマッチングに不要な部分を省いてエッジ抽出領域１３を特定することができる。これにより、パターンマッチング処理の高速化を図ることができ、しかも角部等の特定の形状的な特徴を使用することないので、ワーク６の形状によらず、パターンマッチング処理を実行することができる。
【００７２】
また、本実施形態の制御装置２１によれば、モデルエッジ画像１２を生成する際に、３次元形状データ１０６に基づいて生成している。このため、実際のワーク６を撮影する操作者の作業が不要になり、演算処理のみでモデルエッジ画像１２を得ることができるので、モデルエッジ画像１２の生成処理を簡素化かつ処理時間の短縮化を図ることができる。
【００７３】
また、本実施形態の制御装置２１によれば、パターンマッチング演算部５５が、モデルエッジ画像１２を拡大縮小して拡大縮小形状和領域を生成する。そして、パターンマッチング演算部５５は、拡大縮小形状和領域を回転させて回転形状和領域１８を生成し、該回転形状和領域１８を平行移動させて形状和領域１９を作成している。このため、ワーク６の実際の探索処理時に、カメラ４とワーク６との距離が変動することで、被探索画像１０におけるワーク６の大きさが異なる場合があっても、ワーク６の位置や大きさの変動範囲と、エッジ抽出領域１３とを一致させることができる。よって、必要最低限のエッジ抽出領域１３を生成することができる。
【００７４】
また、本実施形態の制御装置２１によれば、エッジ抽出領域１３を生成する際に、モデルエッジ画像１２を拡大縮小処理、回転処理、平行移動処理の順で処理している。即ち、平行移動に先立って拡大縮小及び回転の処理を行っている。このため、例えば、平行移動範囲が大きい場合に、大きな平行移動形状和領域を作成した後に回転や拡大縮小を行うことで最低限のエッジ抽出領域１３に絞られない可能性が発生することを防止できる。
【００７５】
上述した本実施形態の制御装置２１では、エッジ抽出領域１３を生成する際に、拡大縮小処理、回転処理、平行移動処理の順で処理する場合について説明した。しかしながら、これには限られず、例えば、回転処理、拡大縮小処理、平行移動処理の順で処理するようにしてもよい。あるいは、平行移動範囲が小さく、平行移動後の回転や拡大縮小等でも最低限のエッジ抽出領域１３を得られる場合は、最初に平行移動処理を行うようにしてもよい。
【００７６】
また、上述した本実施形態の制御装置２１では、エッジ抽出領域１３を生成する際に、拡大縮小処理、回転処理、平行移動処理の３つの処理を実行する場合について説明したが、これには限られない。例えば、第１実施形態のように回転処理及び平行移動処理の２つのみとしたり、あるいは回転処理及び平行移動処理とは異なる組み合わせの２つの処理としたり、１つの処理のみを実行するようにしてもよい。第１の実施形態と同様に、これらの処理の選択は、ワーク６の形状や、カメラ４との位置姿勢関係や、要求される処理時間及び精度等に応じて、適宜設定することができる。
【００７７】
尚、以上述べた本実施形態の各処理動作は具体的にはパターンマッチング演算部５５により実行されるものである。従って、上述した機能を実現するソフトウェアのプログラムを記録した記録媒体をパターンマッチング演算部５５に供給するようにしてもよい。そして、パターンマッチング演算部５５を構成するＣＰＵ５０が記録媒体に格納されたパターンマッチングプログラム５２ａを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００７８】
また、本実施形態では、コンピュータ読み取り可能な記録媒体がＲＯＭ５２であり、ＲＯＭ５２にパターンマッチングプログラム５２ａが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【００７９】
１…ロボットシステム、２…ロボット装置、３…ワーク供給装置、４…カメラ、６…ワーク（検出対象物）、１０…被探索画像、１１…探索エッジ画像、１２…モデルエッジ画像、１３…エッジ抽出領域、１５…切り出し画像、２１…制御装置（パターンマッチング装置）、５１…ＲＡＭ（記憶部）、５２…ＲＯＭ（記録媒体）、５５…パターンマッチング演算部（演算部）
【図１】
2015035211.tif 000007
【図２】
2015035211.tif 000008
【図３】
2015035211.tif 000009
【図４】
2015035211.tif 000010
【図５】
2015035211.tif 000011
【図６】
2015035211.tif 000012
【図７】
2015035211.tif 000013
【図８】
2015035211.tif 000014
【図９】
2015035211.tif 000015
【図１０】
2015035211.tif 000016