(57)【要約】【課題】入力画像上で検出されるワーク位置が複数個所に偏って現れる場合に基準画像を用いたパターンマッチング処理の演算量を削減できる画像処理方法、画像処理装置、ロボット装置、プログラム、及び記録媒体を提供する。【解決手段】画像処理装置においてコンピュータ１５０が設定工程と分布探索工程と検出工程とを実行する。設定工程では、コンピュータ１５０が、入力画像上で検出されるワーク位置の複数の分布領域にそれぞれ対応させて入力画像上に探索領域を設定する。分布探索工程では、所定数の入力画像において、連続した探索領域で基準画像を用いてパターンマッチング処理を行って所定数のワーク位置を検出し、検出した所定数のワーク位置に基づいて入力画像上のワーク位置の分布を求める。検出工程では、設定工程により設定された複数の探索領域で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する。【選択図】図６
2017049742.tif 000002
【特許請求の範囲】
【請求項１】
保持部に保持されたワークを撮影部により撮影した入力画像におけるワーク位置が入力画像上の複数の分布領域に偏って現れる入力画像を演算部が画像処理する画像処理方法であって、
前記演算部が、入力画像上に、前記複数の分布領域にそれぞれ対応させて探索領域を設定する設定工程と、
前記演算部が、前記設定工程により設定された複数の探索領域で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する検出工程と、を有することを特徴とする画像処理方法。
【請求項２】
前記検出工程では、前記演算部が、前記パターンマッチング処理を行う毎にパターンマッチングの評価値を求めることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記検出工程では、前記演算部が、前記複数の探索領域を順番に選択して前記パターンマッチング処理を行い、前記評価値が評価基準に達した探索領域において前記パターンマッチング処理を終了させることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記検出工程では、前記演算部が、過去に実行された前記パターンマッチング処理においてワーク位置が検出された頻度が高い順番に探索領域を選択することを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記検出工程では、前記演算部が、前記複数の探索領域を加算した和領域で前記パターンマッチング処理を行い、前記和領域において前記評価値が最も高くなった位置をワーク位置として検出することを特徴とする請求項２に記載の画像処理方法。
【請求項６】
前記検出工程を第１の検出工程とし、前記複数の探索領域を第１の探索領域とし、入力画像上の前記複数の探索領域以外の領域を第２の探索領域とするとき、
前記演算部が、前記第１の検出工程においてワーク位置を検出できなかった場合に前記第２の探索領域で前記パターンマッチング処理を行ってワーク位置を検出する第２の検出工程を有することを特徴とする請求項２乃至５のいずれか１項に記載の画像処理方法。
【請求項７】
前記演算部が、所定数の入力画像において、連続した探索領域で基準画像を用いてパターンマッチング処理を行って前記所定数のワーク位置を検出し、検出した前記所定数のワーク位置に基づいて入力画像上のワーク位置の分布を求める分布探索工程を有し、
前記設定工程では、前記演算部が、前記分布探索工程により求めたワーク位置の分布に対応させて前記複数の探索領域を設定することを特徴とする請求項２乃至６のいずれか１項に記載の画像処理方法。
【請求項８】
前記設定工程では、前記演算部が、前記所定数のワーク位置をワーク位置間距離で判別して複数のワーク位置の組を決定し、決定された１つの前記組ごとに１つの探索領域を設定することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記設定工程では、前記演算部が、１つの前記組におけるワーク位置の重心を中心とし、１つの前記組における前記重心からそれぞれのワーク位置までの距離の標準偏差の１倍以上６倍以下の半径を有する円領域として前記１つの探索領域を設定することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記演算部が、過去に遡る所定数の入力画像において検知されたワーク位置の平均値及び標準偏差に基づいて前記複数の探索領域を設定する探索領域設定工程を有し、
前記検出工程では、前記演算部が、前記探索領域設定工程により設定された前記複数の探索領域で前記パターンマッチング処理を行うことを特徴とする請求項２乃至６のいずれか１項に記載の画像処理方法。
【請求項１１】
前記演算部が、過去に遡る所定数の入力画像の前記パターンマッチング処理における前記評価値の平均値と標準偏差とに基づいて前記評価値の評価基準を設定する評価基準設定工程を有し、
前記検出工程では、前記演算部が、前記評価基準設定工程により設定された前記評価基準を用いることを特徴とする請求項２乃至９のいずれか１項に記載の画像処理方法。
【請求項１２】
前記演算部が、過去に遡る所定数の入力画像の前記パターンマッチング処理において検出された前記入力画像と基準画像の傾き角度の前記所定数のデータに基づいて探索領域のそれぞれの位置で前記パターンマッチング処理が行われる角度範囲を設定する角度範囲設定工程を有し、
前記検出工程では、前記演算部が、前記角度範囲設定工程により設定された前記角度範囲を用いることを特徴とする請求項２乃至９のいずれか１項に記載の画像処理方法。
【請求項１３】
前記演算部が、過去に遡る所定数の入力画像の前記パターンマッチング処理における前記基準画像の拡大縮小範囲の前記所定数のデータに基づいて探索領域のそれぞれの位置で前記パターンマッチング処理が行われる際の前記基準画像の拡大縮小範囲を設定する拡大縮小範囲設定工程を有し、
前記検出工程では、前記演算部が、前記拡大縮小範囲設定工程により設定された前記拡大縮小範囲を用いることを特徴とする請求項２乃至９のいずれか１項に記載の画像処理方法。
【請求項１４】
前記演算部が、ワークを前記保持部により保持させる毎に前記撮影部によりワークを撮影して入力画像を取得する撮影工程を有することを特徴とする請求項１乃至１３のいずれか１項に記載の画像処理方法。
【請求項１５】
請求項１乃至１４のいずれか１項に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録した記録媒体。
【請求項１７】
保持部に保持されたワークを撮影部により撮影した入力画像におけるワーク位置が入力画像上の複数の分布領域に偏って現れる入力画像を画像処理する画像処理装置であって、
入力画像上に、前記複数の分布領域にそれぞれ対応させて探索領域を設定する設定工程と、前記設定工程により設定された複数の探索領域で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する検出工程と、を実行する演算部を有することを特徴とする画像処理装置。
【請求項１８】
請求項１７に記載の画像処理装置と、
前記保持部を有する多関節ロボットと、
前記撮影部と、を有し、
前記演算部は、ワークを前記保持部により保持させる毎に前記撮影部によりワークを撮影して入力画像を取得する撮影工程を実行し、
前記設定工程では、前記撮影工程により取得した入力画像上に前記複数の探索領域を設定することを特徴とするロボット装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基準画像を用いたパターンマッチング処理を行う画像処理方法、画像処理装置、ロボット装置、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
入力画像上に設定した探索領域で基準画像を用いたパターンマッチング処理を行うことにより入力画像上のワーク位置を検出する画像処理装置、画像処理装置を装備したロボット装置が広く用いられている。
【０００３】
基準画像を用いたパターンマッチング処理では、入力画像上に設定した探索領域で基準画像の位置及び角度を少しずつずらせてパターンマッチングの評価値を求める演算を繰り返す。このため、探索領域が広いと演算量が膨大になり、入力画像上のワーク位置を確定するまでの演算時間が長くなる。また、基準画像を用いたパターンマッチング処理の精度を高めるためには、探索領域内で基準画像を用いたパターンマッチング処理を行う位置と傾き角度の刻み幅を小さくする必要がある。そして、探索領域でパターンマッチング処理を行う位置と傾き角度の刻み幅を小さくした場合も、演算量が膨大になり、入力画像上のワーク位置を確定するまでの演算時間が長くなる。
【０００４】
そこで、特許文献１では、入力画像の撮影ルールに基づいて入力画像上に予め設定した帯状の探索領域で基準画像を用いてパターンマッチング処理を行うことにより、パターンマッチング処理の演算量を削減している。
【０００５】
また、特許文献２では、移動体を連続撮影して移動体の位置を推定し、推定位置を中心とする探索領域で基準画像を用いてパターンマッチング処理を行うことにより、パターンマッチング処理の演算量を削減している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−６０８８８号公報
【特許文献２】特開２０１１−４３９２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
保持部に保持されたワークを撮影部により撮影した入力画像におけるワーク位置が入力画像上の複数の分布領域に偏って現れる場合がある。この場合、特許文献１、２に示されるように探索領域内のすべてのワーク位置で基準画像を用いてパターンマッチング処理を行うと、複数の分布領域の間の領域においてワーク位置が検出される見込みの無いパターンマッチング処理が多数回実行されてしまう。
【０００８】
本発明は、入力画像上で検出されるワーク位置が複数個所に偏って現れる場合に、基準画像を用いたパターンマッチング処理の演算量を削減できる画像処理方法、画像処理装置、ロボット装置、プログラム、及び記録媒体に関する。
【課題を解決するための手段】
【０００９】
本発明の画像処理方法は、保持部に保持されたワークを撮影部により撮影した入力画像におけるワーク位置が入力画像上の複数の分布領域に偏って現れる入力画像を演算部が画像処理する方法である。そして、前記演算部が、入力画像上に、前記複数の分布領域にそれぞれ対応させて探索領域を設定する設定工程と、前記演算部が、前記設定工程により設定された複数の探索領域で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する検出工程と、を有する。
【発明の効果】
【００１０】
本発明の画像処理方法では、入力画像上に、複数の分布領域にそれぞれ対応させて探索領域を設定する。このため、入力画像上で検出されるワーク位置が複数個所に偏って現れる場合に基準画像を用いたパターンマッチング処理の演算量を削減できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１のロボット装置の構成の説明図である。
【図２】三つ爪を用いた把持機構の説明図である。
【図３】三つ爪把持機構によるワークの把持状態の説明図である。
【図４】ワークの中心位置の分布の説明図である。
【図５】パターンマッチング処理の機能ブロック図である。
【図６】ロボット装置のハードウェア構成の説明図である。
【図７】パターンマッチング処理の事前処理のフローチャートである。
【図８】パターンマッチング処理の説明図である。
【図９】実施の形態１のパターンマッチング処理のフローチャートである。
【図１０】優先探索処理のフローチャートである。
【図１１】実施の形態２のパターンマッチング処理の機能ブロック図である。
【図１２】実施の形態２のパターンマッチング処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１３】
＜実施の形態１＞
（ロボット装置）
図１は実施の形態１のロボット装置の構成の説明図である。図１に示すように、ロボット装置１０は、作業台１１にランダムに積載されたワーク２００を多関節ロボットのロボットアーム３００で把持して撮影検査を行い、その後、作業台１２上に向きを揃えて配列させる生産設備である。
【００１４】
ロボットアーム３００は、先端に設けられた三つ爪把持機構３３０によりワーク２００を把持して撮影装置４００直下の撮影位置に移動させる。撮影装置４００は、三つ爪把持機構３３０に把持された状態のワーク２００を撮影するカメラである。
【００１５】
撮影制御部１３０は、ロボットアーム３００によりワーク２００を把持して作業台１１から撮影位置に移動させ、撮影装置４００によりワーク２００の端面を撮影して撮影画像を取得する。画像処理装置１００は、撮影装置４００によりワークの撮影画像を取得し、取得したワークの撮影画像に対してパターンマッチング処理を含む画像処理を実行する。
【００１６】
パターンマッチング処理部１１０は、ワーク２００の端面の撮影画像に対して基準画像を用いたパターンマッチング処理を行って、撮影画像上のワーク位置を検出する。検査・計測処理部１２０は、パターンマッチング処理部１１０のパターンマッチング処理結果に基づいてワーク２００の検査を行う。
【００１７】
以上説明したように、ロボット装置１０は、多関節ロボットの一例であるロボットアーム３００を有する。ロボットアーム３００は、保持部の一例である三つ爪把持機構３３０を有する。撮影部の一例である撮影装置４００は、三つ爪把持機構３３０に保持されたワーク２００を撮影する。ロボット装置１０は、ワークを三つ爪把持機構３３０により保持させる毎に撮影装置４００によりワークを撮影して入力画像を取得する。
【００１８】
（三つ爪把持機構）
図２は三つ爪を用いた把持機構の説明図である。図３は三つ爪把持機構によるワークの把持状態の説明図である。図４はワークの中心位置の分布の説明図である。
【００１９】
図２に示すように、三つ爪把持機構３３０は、アーム３０１の先端に爪台３２０を回転可能に取り付けてある。爪台３２０には、３本の爪３３１、３３２、３３３がガイド溝３２１、３２２、３２３に沿って直径方向へ移動可能に取り付けられている。ワーク２００は、Ｄカット面２１０を有する円柱形状であり、３本の爪３３１、３３２、３３３により把持された状態で端面を撮影位置に位置決められている。
【００２０】
図１に示すように、ロボットアーム３００は、撮影装置４００の直下の撮影位置へ爪台３２０を移動させて、ワーク２００の端面を撮影装置４００に対向させた所定の焦点位置へ位置決める。そして、爪台３２０を回転させることにより、３本の爪３３１、３３２、３３３を、爪台３２０の回転面内における同一角度位置に位置決める。
【００２１】
このとき、図３の（ａ）〜（ｄ）に示すように、Ｄカット面２１０の角度位置に応じて、爪３３１、３３２、３３３により把持されたワーク２００の端面の回転軸線が通る中心位置（×印）が移動する。
（１）図３中、（ａ）はＤカット面２１０に爪３３１が当たっている把持状態１である。把持状態１では、爪３３１側にワーク中心がずれた状態で把持される。
（２）図３中、（ｂ）はＤカット面２１０に爪３３２が当たっている把持状態２である。把持状態２では、爪３３２側にワーク中心がずれた状態で把持される。
（３）図３中、（ｃ）はＤカット面２１０に爪３３３が当たっている把持状態３である。把持状態３では、爪３３３側にワーク中心がずれた状態で把持される。
（４）図３中、（ｄ）はＤカット面２１０に爪３３１、３３２、３３３のいずれも当たっていない把持状態４である。把持状態４では、三つ爪把持機構３３０の中心位置にワーク２００の回転軸線が位置決められる。
【００２２】
その結果、ワークをランダムに把持して撮影を繰り返した場合、図４に示すように、ワーク中心（回転軸線位置）Ｘは、撮影画像上の４カ所に分布する。Ｄカット形状のワーク２００を三つ爪把持機構３３０により把持した場合の把持状態は４つあり、それぞれの把持状態応じてワーク端面の撮影位置がずれるため、ワーク中心Ｘの分布が４つに分かれる。すなわち、ロボット装置１０は、三つ爪把持機構３３０に保持されたワーク２００を撮影装置４００により撮影した入力画像におけるワーク位置が入力画像上の複数の分布領域に偏って現れる。
【００２３】
そこで、実施の形態１では、ワーク中心Ｘの分布を測定して、測定された分布に対応させて撮影画像上に優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定している。そして、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４においてパターンマッチング処理を行い、ワーク位置を検出できなかった場合に限り、優先探索領域以外の通常探索領域ＵＥでパターンマッチング処理を行っている。これにより、パターンマッチング処理が成功するまでの演算回数を、通常探索領域ＵＥ全体でパターンマッチング処理を行う場合に比較して大幅に削減している。
【００２４】
（画像処理装置）
図５はパターンマッチング処理の機能ブロック図である。図６はロボット装置のハードウェア構成の説明図である。図５に示すように、画像取得部１１１は、撮影装置（４００：図１）から入力画像を取得する。
【００２５】
パターンマッチング処理部１１０は、入力画像に対して基準画像を用いてパターンマッチング処理を行って、入力画像上の基準画像のマッチング位置及びマッチング角度を検出する。探索処理実行部１１２は、基準画像を用いてパターンマッチング処理を実行する。マッチング位置記録部１１３は、マッチング位置を記録する。マッチング位置分析部１１４は、過去のマッチング位置の分布を分析する。優先探索領域設定部１１５は、入力画像に複数の優先探索領域を設定する。基準画像登録部１１６は、基準画像を登録する。パラメータ登録部１１７は、パターンマッチング処理に必要な各種パラメータを登録する。
【００２６】
図６に示すように、コンピュータ１５０のＣＰＵ１５２は、ＲＯＭ１５３、ＲＡＭ１５４、ハードディスク１５５、インターフェース１５８、入力部１５１、出力部１５６、表示部１５７等の構成要素にバス結合されている。撮影装置４００は、ワーク２００を撮影して、撮影画像をデジタルデータへ変換する。撮影装置４００の撮影画像の画像データは、入力部１５１へ入力される。
【００２７】
ＣＰＵ１５２は、マイクロプロセッサからなり、データの計算・加工を行う。ＣＰＵ１５２は、ＲＯＭ１５３に記憶されたプログラムを実行し、ＲＡＭ１５４、ハードディスク１５５、入力部１５１等からデータを受け取って演算し、表示部１５７、ハードディスク１５５、出力部１５６等に出力する。
【００２８】
ＲＯＭ１５３は、各種制御のプログラム及びデータが格納されている。ＲＡＭ１５４は、ＣＰＵ１５２が実行する処理のためのデータの一時記憶などに使用される。ハードディスク１５５は、撮影画像のデータ、基準画像（テンプレート）等、サイズの大きいデータを保持する記憶装置である。
【００２９】
インターフェース１５８は、データと各種信号とを相互に変換し、信号線を通じて撮影装置（カメラ）４００、ロボットアーム３００を制御する。インターフェース１５８は、ディスクドライブ１６０を通じて記録媒体の光ディスク１６１からプログラムを読み取ることができる。インターフェース１５８は、光ファイバ、ＬＡＮケーブル等を通じて外部のサーバー、コンピュータ、通信機と通信する。
【００３０】
表示部１５７は、ＣＲＴディスプレイ、液晶ディスプレイ、プラズマディスプレイ等へ画像信号を出力して画像を表示させる。入力部１５１は、キーボード、タッチパネル、マウスなどのポインティングデバイスからの操作入力も受け入れる。出力部１５６は、データ出力のための出力端子を持っている。
【００３１】
（事前処理）
図７はパターンマッチング処理の事前処理のフローチャートである。図５に示すように、パターンマッチング処理の開始前に、基準画像登録部１１６及びパラメータ登録部１１７は、パターンマッチング処理部１１０に対して事前処理を行って、パターンマッチング処理に必要な基準画像やパラメータ等を設定する。ユーザーは、基準画像登録部１１６及びパラメータ登録部１１７を通じて、これらのパラメータの一部又は全部を変更可能である。
【００３２】
図７に示すように、基準画像登録部１１６は、予め準備された複数の基準画像の中からユーザーに指定されたワーク２００の種類と撮影条件に応じた適正な基準画像を選択して基準画像登録部１１６に登録する（Ｓ１）。
【００３３】
パラメータ登録部１１７は、予め準備された各種パラメータの複数の選択肢の中から、ユーザーに指定されたワーク２００の種類と撮影条件におけるパターンマッチング処理に最適な選択肢を選択して、パラメータ登録部１１７に登録する（Ｓ２）。
【００３４】
（通常スコア閾値）
入力画像に設定された探索領域内でパターンマッチング処理を行ったときに入力画像と基準画像の類似度が最も高くなる基準画像位置をマッチング位置と呼び、そのときの類似度をマッチングスコアと呼ぶ。スコア閾値は、探索領域内の最大マッチングスコアがいくつ以上であればマッチング成功とするかを指定する閾値である。通常スコア閾値は、実施の形態１における、パターンマッチングの評価値であるマッチングスコアの閾値である。
【００３５】
（通常探索角度）
探索領域内の１つの位置において探索角度内でパターンマッチング処理を行ったときに入力画像と基準画像の類似度が最も高くなる基準画像角度をマッチング角度と呼ぶ。探索角度は、探索領域の各位置で基準画像をどの程度の傾き範囲でパターンマッチング処理を行うかを指定するパラメータである。通常探索角度は、実施の形態１における、撮影画像の各位置でパターンマッチング処理が実行される角度範囲である。
【００３６】
（通常探索スケール）
探索領域内の１つの位置の１つの角度において基準画像を探索スケール内で拡大縮小してパターンマッチング処理を行ったときに入力画像と基準画像の類似度が最も高くなる基準画像スケールをマッチングスケールと呼ぶ。探索スケールは、基準画像をどの程度の範囲で拡大縮小しながらパターンマッチング処理を行うかを指定するパラメータである。通常探索スケールは、実施の形態１における、探索領域内の１つの位置の１つの角度においてパターンマッチング処理を行う際に基準画像を拡大縮小する範囲である。
【００３７】
（通常探索領域）
通常探索領域は、撮影画像上に設定されてパターンマッチング処理が行われる最大範囲である。通常探索領域は、撮影画像上のどの範囲でパターンマッチング処理を実行するかを指定するパラメータである。パターンマッチング処理において基準画像の中心が動く範囲を指定するパラメータである。通常探索領域は、ロボットアーム３００の繰り返し位置決め精度や経時変化に伴うばらつきなど、あらゆる変動を考慮して、いかなる変動があっても検出対象物のワーク２００を検出できるように大きめに設定される。
【００３８】
（過去情報参照数）
過去情報参照数Ｎは、図４に示すワーク中心×の合計の個数である。すなわち、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する際に、過去何回分のマッチング位置（×）を参照するかを示す数値である。
【００３９】
（基準画像及び撮影画像）
図８はパターンマッチング処理の説明図である。図８に示すように、ワーク２００の撮影画像Ｇに対して基準画像Ｋを用いたパターンマッチング処理を行って、撮影画像Ｇと基準画像Ｋがマッチングする撮影画像上の座標位置ｘ，ｙと基準画像Ｋの傾き角度θとを求める。ここでは、説明を簡単にするために、基準画像（テンプレート）Ｋは、ワーク２００の端面のＤカットを有する円形のエッジ画像であって、ワーク全体の輪郭を用いて、基準画像Ｋの中心にワーク中心を位置させている。しかし、実際は、演算量を削減するために、基準画像Ｋはワークの輪郭の一部分である。
【００４０】
図８に示すように、探索処理実行部１１２は、撮影画像からエッジ画像Ｇｅを抽出し、抽出したエッジ画像Ｇｅに対して基準画像Ｋを用いたパターンマッチング処理を行う。そして、撮影画像Ｇ上のワーク位置であるワーク２００の中心位置の座標位置ｘ，ｙと傾き角度θとを求める。
【００４１】
画像処理装置１００は、パターンマッチング処理を行う毎にパターンマッチングの評価値の一例であるマッチングスコアを求める。撮影画像Ｇ上の通常探索領域ＵＥでパターンマッチング処理を行う場合、通常探索領域ＵＥ内の画素ごとの各位置でパターンマッチング処理を行って、撮影画像Ｇと基準画像Ｋの類似度の評価値であるマッチングスコアをそれぞれ求める。そして、マッチングスコアによって評価された基準画像Ｋとの類似度が最も高くなるｘ，ｙ座標位置と傾き角度θとをワーク位置として出力する。あるいは、マッチングスコアが、スコア閾値よりも大きい場合に、マッチング成功とし、ワーク位置をデータｘ，ｙ及び傾き角度θとして出力する。
【００４２】
パターンマッチング処理部１１０は、撮影画像Ｇ上のすべての画素からエッジを抽出して、エッジ画像Ｇｅを作成する。続いて、作成されたエッジ画像Ｇｅに対して基準画像Ｋを用いてパターンマッチング処理を行ってマッチングスコアを求めることにより、エッジ画像Ｇｅ上のその位置のその傾き角度における基準画像Ｋとエッジ画像Ｇｅのパターンの一致度を評価する。
【００４３】
（優先探索領域の設定）
図９は実施の形態１におけるパターンマッチング処理のフローチャートである。図４に示すように、実施の形態１では、ユーザーが設定した通常探索領域ＵＥの内側に、優先探索領域設定部１１５が複数の優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定して、パターンマッチング処理を実行する。
【００４４】
図６を参照して図９に示すように、コンピュータ１５０は、計測対象であるワーク２００を撮影装置４００により撮影した撮影画像を入力画像として取得する（Ｓ３）。
【００４５】
コンピュータ１５０は、現在の入力画像が何回目の入力画像であるかを示す現在回数ｍをカウントしており、現在回数ｍが事前処理で設定された過去情報参照数Ｎを超えたか否かを判断する（Ｓ４）。
【００４６】
コンピュータ１５０は、現在回数ｍが過去情報参照数Ｎを超えるまで（Ｎ≧ｍ、Ｓ４のＮｏ）、通常探索処理を継続する（Ｓ１０）。コンピュータ１５０は、事前処理でユーザーが設定した通常スコア閾値、通常探索角度、通常探索スケールのパラメータを用いて、図４に示す通常探索領域ＵＥの全体でワーク位置を探索する。コンピュータ１５０は、取得した入力画像に通常探索領域ＵＥを設定し、基準画像Ｋを用いたパターンマッチング処理を行い、基準画像Ｋとの類似度（マッチングスコア）が最も高くなる座標位置ｘ，ｙ及び傾き角度θをワーク位置として記録する。
【００４７】
コンピュータ１５０は、現在回数ｍが過去情報参照数Ｎを超えている場合（Ｎ＜ｍ、Ｓ４のＹｅｓ）、ワーク位置の分布状態の分析を実行する（Ｓ５）。
【００４８】
コンピュータ１５０は、ｍ個のワーク位置の分布状態の分析結果に基づいて、ワーク位置をクラスタリングする。そして、図４に示すように、クラスタリングされたワーク位置の分布Ｄ１、Ｄ２、Ｄ３、Ｄ４毎に優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する（Ｓ６）。
【００４９】
コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の内側で基準画像Ｋを用いたパターンマッチング処理を実行する（Ｓ７）。
【００５０】
コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の内側でパターンマッチング処理が成功した場合（Ｓ８のＹｅｓ）、成功した座標位置ｘ，ｙ及び傾き角度θをワーク位置として記録する（Ｓ９）。
【００５１】
コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４でワーク位置を発見できなかった場合（Ｓ８のＮｏ）、通常探索処理（Ｓ１０）へ移行する。このとき、コンピュータ１５０は、探索領域の重複を回避するために、入力画像に通常探索領域ＵＥから優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を除いた探索領域を設定して基準画像Ｋを用いたパターンマッチング処理を行う。そして、マッチングスコアが最も高い座標位置ｘ，ｙ及び傾き角度θをワーク位置として記録する。
【００５２】
コンピュータ１５０は、優先探索処理に成功した場合も、通常探索処理に成功した場合も、パターンマッチング処理が成功した際の座標位置ｘ，ｙを、直近の過去のＮ回分まで記録している（Ｓ９）。記録の際にはＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）処理を行い、新しい位置情報のデータｘｍを記録すると同時に、過去情報参照数Ｎよりも古いデータ×ｍ−Ｎを削除する。これにより、図４に示すように、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の重心位置が少しずつ修正され、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４が最新の分布Ｄ１、Ｄ２、Ｄ３、Ｄ４に応じたものに維持される。
【００５３】
コンピュータ１５０は、入力画像上で、基準画像と一致する位置が検出できた、つまり探索に成功した時点で優先探索処理を成功として終了する。しかし、優先探索処理に失敗した場合には、通常探索処理を実行する。そして、通常探索処理でもワーク位置の探索に失敗した場合、探索処理を失敗としてロボット装置１０を停止させて警報を出力する。
【００５４】
図５に示すように、マッチング位置記録部１１３は、パターンマッチング処理が成功した際のマッチング位置のデータｘｍを記録する。記録の際にはＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）処理を行い、新しい位置情報のデータｘｍを記録する場合は、過去情報参照数Ｎよりも古いデータｘｍ−Ｎを削除する。これにより、マッチング位置記録部１１３は、最新の過去情報参照数Ｎ個分のマッチング位置情報ｘｉ(ｉ＝ｍ−Ｎ，・・，ｍ−１)を保持している。
【００５５】
マッチング位置分析部１１４は、直近のマッチング位置情報ｘｉ(ｉ＝ｍ−Ｎ，・・，ｍ−１)をマッチング位置記録部１１３から取得する。マッチング位置分析部１１４は、マッチング位置情報ｘｉ(ｉ＝ｍ−Ｎ，・・，ｍ−１)を、階層クラスタリング手法を用いてクラスター分析する。クラスター分析する際の距離測定方法としては、群平均法、ウォード法、最短距離法、最長距離法のいずれを用いてもよい。
【００５６】
マッチング位置分析部１１４は、予めユーザーが指定したクラスター間距離閾値でクラスターを分割する。このようにして、Ｎ個のマッチング位置は、図４に示すように、４つの分布Ｄ１、Ｄ２、Ｄ３、Ｄ４に分割される。
【００５７】
優先探索領域設定部１１５は、優先探索領域設定処理を実行して、クラスタリングされた分布Ｄ１、Ｄ２、Ｄ３、Ｄ４毎に優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する。
【００５８】
優先探索領域設定部１１５は、最初に、分布Ｄ１に属する全位置情報の重心位置μ１、重心からの距離の標準偏差σ１を算出する。そして、中心をμ１、半径を５σ１とする円領域を優先探索領域Ｒ１として設定する。図４に示すように、ワーク位置の１つの組におけるワーク位置の重心μ１を中心とし、１つの組における重心からそれぞれのワーク位置までの距離の標準偏差の５倍の半径を有する円領域として１つの優先探索領域Ｒ１を設定する。
【００５９】
優先探索領域設定部１１５は、同様にして、分布Ｄ２、Ｄ３、Ｄ４に対する優先探索領域Ｒ２、Ｒ３、Ｒ４を設定する。
【００６０】
以上説明したように、画像処理装置１００は、演算部の一例であるコンピュータ１５０が、設定工程の一例である優先探索領域設定部１１５の処理と、検出工程の一例である探索処理実行部１１２の処理と、を実行する。優先探索領域設定部１１５は、入力画像上に、複数の分布領域にそれぞれ対応させて探索領域を設定する。探索処理実行部１１２は、優先探索領域設定部１１５により設定された複数の探索領域で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する。
【００６１】
分布探索工程の一例であるマッチング位置分析部１１４の処理は、所定数の入力画像において、連続した探索領域で基準画像を用いてパターンマッチング処理を行って所定数のワーク位置を検出する。優先探索領域設定部１１５は、検出した所定数のワーク位置に基づいて入力画像上のワーク位置の分布を求める。
【００６２】
（優先探索処理）
図１０は優先探索処理のフローチャートである。コンピュータ１５０は、通常探索処理を行って、図４に示すように分布Ｄ１、Ｄ２、Ｄ３、Ｄ４が取得されたとき、分布Ｄ１、Ｄ２、Ｄ３、Ｄ４に対応させて優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する。
【００６３】
コンピュータ１５０は、分布Ｄ１に属するすべてのマッチング位置の重心位置μ１と、重心位置μ１からそれぞれのマッチング位置までの距離δの標準偏差σ１とを算出する。そして、中心をμ１とし、半径を５σ１とする円領域を優先探索領域Ｒ１として設定する。同様にして、コンピュータ１５０は、分布Ｄ２、Ｄ３、Ｄ４に対する優先探索領域Ｒ２、Ｒ３、Ｒ４を設定する。
【００６４】
優先探索領域Ｒ２、Ｒ３、Ｒ４の設定後、コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４において優先探索処理を実行する。コンピュータ１５０は、設定された優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４に対し、順番に基準画像を用いてパターンマッチング処理してマッチング位置及びマッチング角度の探索を行う。
【００６５】
図１０に示すように、コンピュータ１５０は、優先探索領域Ｒ１内を探索する（Ｓ１１）。コンピュータ１５０は、優先探索領域Ｒ１内で基準画像と一致する位置が検出できた場合（Ｓ１２のＹｅｓ）、優先探索処理を成功として終了する（Ｓ２０）。
【００６６】
コンピュータ１５０は、優先探索領域Ｒ１内で基準画像と一致する位置が検出できなかった場合（Ｓ１２のＮｏ）、優先探索領域Ｒ２内を探索する（Ｓ１３）。コンピュータ１５０は、優先探索領域Ｒ２内で基準画像と一致する位置が検出できた場合（Ｓ１４のＹｅｓ）、優先探索処理を成功として終了する（Ｓ２０）。
【００６７】
コンピュータ１５０は、優先探索領域Ｒ２内で基準画像と一致する位置が検出できなかった場合（Ｓ１４のＮｏ）、優先探索領域Ｒ３内を探索する（Ｓ１５）。コンピュータ１５０は、優先探索領域Ｒ３内で基準画像と一致する位置が検出できた場合（Ｓ１６のＹｅｓ）、優先探索処理を成功として終了する（Ｓ２０）。
【００６８】
コンピュータ１５０は、優先探索領域Ｒ３内で基準画像と一致する位置が検出できなかった場合（Ｓ１６のＮｏ）、優先探索領域Ｒ４内を探索する（Ｓ１７）。コンピュータ１５０は、優先探索領域Ｒ４内で基準画像と一致する位置が検出できた場合（Ｓ１８のＹｅｓ）、優先探索処理を成功として終了する（Ｓ２０）。
【００６９】
コンピュータ１５０は、優先探索領域Ｒ４内で基準画像と一致する位置が検出できなかった場合（Ｓ１８のＮｏ）、優先探索処理失敗を記録する（Ｓ１９）。
【００７０】
探索処理実行部１１２は、優先探索処理を実行する。優先探索処理では、優先探索領域に対し、順番に基準画像の位置の探索を行い、基準画像と一致する位置が検出できた、つまり探索に成功した時点で優先探索処理を成功として終了する。また、全ての優先探索領域で探索に失敗した場合には、優先探索処理を失敗として終了する。
【００７１】
探索処理実行部１１２は、入力画像の優先探索領域Ｒ１内を探索する。優先探索領域Ｒ１内で基準画像と一致する位置が検出できた場合には、優先探索処理を成功として終了する。検出できなかった場合には、次に優先探索領域Ｒ２内で探索を行う。この動作を、基準画像と一致する位置が検出できるか、全ての優先探索領域を探索し終えるまで繰り返す。全ての優先探索領域を探索し終えた段階で基準画像と一致する位置が検出できなかった場合には、優先探索処理は失敗として終了する。
【００７２】
すなわち、コンピュータ１５０は、第１の検出工程の一例である優先探索処理では、第１の探索領域の一例である優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４においてパターンマッチング処理を行う。そして、コンピュータ１５０は、優先探索処理においてワーク位置を検出できなかった場合、第２の検出工程の一例である通常探索処理を実行する。通常探索処理では、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を除いた通常探索領域ＵＥでパターンマッチング処理を行う。
【００７３】
（比較例）
パターンマッチング処理は、入力画像上に設定した単一の探索領域において検出対象物の位置を検出するための方法として、文章画像処理、顔認識、生産装置等の幅広い分野の画像処理の分野において利用されている。
【００７４】
従来のパターンマッチング処理は、探索領域の全域で基準画像との類似度の計算を繰り返し行うため、演算回数が膨大になり、パターンマッチング処理の処理時間が長くなる。生産装置の分野においては、画像処理時間は、直接製品の製造コストに影響するため、今以上に処理時間の短縮が強く求められ、処理時間の高速化ニーズは高い。そのため、種々の観点から、高速化は行われる必要がある。
【００７５】
そこで、比較例では、実施の形態１のロボット装置１０において、特許文献１に示されるように、過去のマッチング位置の最頻値を中心とする狭い領域に探索領域を設定して、探索領域の外側におけるパターンマッチング処理を省略している。
【００７６】
しかし、比較例では、過去のマッチング位置のデータが複数個所に集中して分散する多峰性分布を有する場合、複数個所の中間領域で無駄にパターンマッチング処理が行われることが多くなる。そのため、パターンマッチング処理の十分な高速化がなされないという問題がある。
【００７７】
図４に示すように、ロボット装置１０では、マッチング位置は、多峰性の分布となる。このため、単純に分布全体から最頻値とばらつきを求めて探索領域を決定すると、全ての分布を包括する円形状となるため、実際にはマッチング位置が分布しない領域も含まれてしまう。つまり探索領域が無駄に広く設定されてしまうため、高速化は不十分であった。
【００７８】
（実施の形態１の効果）
実施の形態１では、マッチング位置分布を分析し、分布毎にばらつきを考慮した必要最小限の優先探索領域を設定できるため、従来よりも探索領域を狭く設定することができ、より短時間で基準画像位置を入力画像から検出することができる。
【００７９】
実施の形態１では、優先探索領域内で探索に失敗した場合には、ユーザーが設定した通常探索領域内を探索することができるため、万が一優先探索領域内に正解位置がなくても、通常探索領域内に正解位置があれば、マッチングに失敗することがない。
【００８０】
実施の形態１では、マッチング位置の分布を分析し、それぞれの分布毎に優先探索領域を定めるため、たとえマッチング位置分布が多峰性の場合でも、従来よりも探索領域を狭い範囲に限定することができる。このため、より短時間で入力画像から基準画像位置を検出することができる。
【００８１】
実施の形態１では、入力画像上に、複数の分布領域にそれぞれ対応させて複数の探索領域の一例である優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する。そして、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４で基準画像を用いてパターンマッチング処理を行うことによりワーク位置を検出する。このため、優先探索処理の開始後は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を除いた通常探索領域ＵＥにおけるパターンマッチング処理を省略できる。
【００８２】
実施の形態１では、複数の探索領域を順番に選択してパターンマッチング処理を行い、マッチングスコアが評価基準の一例である通常スコア閾値に達した探索領域においてパターンマッチング処理を終了させる。このため、通常スコア閾値に達した探索領域よりも後の探索領域におけるパターンマッチング処理を省略できる。
【００８３】
実施の形態１では、過去に実行されたパターンマッチング処理においてワーク位置が検出された頻度が高い順番に探索領域を選択する。通常探索処理においてマッチング位置がより多く分布した探索領域から順番に探索する。このため、早期に通常スコア閾値に達した探索領域を発見して、より多くの探索領域におけるパターンマッチング処理を省略できる可能性が高くなる。そして、早期に優先探索処理を成功として終了することができる。
【００８４】
実施の形態１では、第１の探索領域の一例である優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４においてワーク位置を検出できなかった場合に、第２の探索領域の一例である通常探索領域ＵＥでパターンマッチング処理を行ってワーク位置を検出する。このため、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４においてワーク位置を検出できなかった場合でも入力画像内でワーク位置を検出してロボット装置１０を停止させないで済む。
【００８５】
実施の形態１では、分布探索工程の一例である通常探索処理により求めたワーク位置の分布に対応させて優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する。このため、そのときのワーク２００の種類、撮影条件、及び基準画像の組み合わせに応じた過不足の少ない優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定できる。
【００８６】
実施の形態１では、所定数のワーク位置をワーク位置間距離で判別して複数のワーク位置の組を決定し、決定された１つの組ごとに１つの優先探索領域を設定する。このため、優先探索処理で検出されるワーク位置がほぼ均等に分散した過不足の少ない優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定できる。
【００８７】
実施の形態１では、過去に遡る所定数の入力画像において検知されたワーク位置の平均値及び標準偏差に基づいて複数の探索領域を設定する。このため、連続的なワーク２００の処理中に、撮影条件が変化した場合でも、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を過不足の少ない状態に調整して、エラーの発生を抑制できる。
【００８８】
＜実施の形態２＞
実施の形態１では、後述するスコア閾値、探索角度、探索スケールの各パラメータがユーザーに設定された固定値であった。これに対して、実施の形態２では、スコア閾値、探索角度、探索スケールの各パラメータが初期値から優先探索処理の開始後、優先探索時スコア閾値、優先探索角度、及び優先探索スケールとして自動的に調整される。それ以外の構成及び制御は実施の形態１と同一であるため、図１１中、実施の形態１と共通する構成には図５と同一の符号を付して重複する説明を省略する。
【００８９】
（事前処理）
図１１は実施の形態２のパターンマッチング処理の機能ブロック図である。パターンマッチング処理の開始前に、基準画像登録部１１６及びパラメータ登録部１１７は、パターンマッチング処理部１１０に対して事前処理を行って、パターンマッチング処理に必要な基準画像やパラメータ等を設定する。ユーザーは、基準画像登録部１１６及びパラメータ登録部１１７を通じてこれらのパラメータの一部又は全部を変更可能である。
【００９０】
図７に示すように、ユーザーは、基準画像登録部１１６に予め準備された複数の基準画像の中からワーク２００の種類と撮影条件に応じた適正な基準画像を選択して基準画像登録部１１６に登録する（Ｓ１）。
【００９１】
ユーザーは、パラメータ登録部１１７に予め準備されたパラメータの複数の選択肢の中から、探索処理実行部１１２で実行するパターンマッチング処理に必要な選択肢を選択して、パラメータ登録部１１７に登録する（Ｓ２）。
【００９２】
（パターンマッチング処理）
図１２は実施の形態２におけるパターンマッチング処理のフローチャートである。図６を参照して図１２に示すように、コンピュータ１５０は、ワーク２００の撮影画像を取得する（Ｓ２３）。
【００９３】
コンピュータ１５０は、ワーク位置を取得した現在回数ｍが過去情報参照数Ｎを超えたか否かを判断する（Ｓ２４）。コンピュータ１５０は、現在回数ｍが過去情報参照数Ｎを超えるまで（Ｓ２４のＮｏ）、図４に示す通常探索領域ＵＥの全体でワーク位置を探索する通常探索処理を継続する（Ｓ３３）。
【００９４】
コンピュータ１５０は、現在回数ｍが過去情報参照数Ｎを超えると（Ｓ２４のＹｅｓ）、ワーク位置の分布状態の分析を実行する（Ｓ２５）。コンピュータ１５０は、ｍ個のワーク位置の分布状態の分析結果に基づいて優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４を設定する（Ｓ２６）。
【００９５】
コンピュータ１５０は、後述する優先探索時スコア閾値設定処理を実行して優先探索時スコア閾値を設定する（Ｓ２７）。コンピュータ１５０は、後述する優先探索角度設定処理を実行して優先探索角度を設定する（Ｓ２８）。
【００９６】
コンピュータ１５０は、後述する優先探索スケール設定処理を実行して優先探索スケールを設定する（Ｓ２９）。コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の内側で、優先探索時スコア閾値、優先探索角度、優先探索スケール、基準画像Ｋをパラメータとして用いたパターンマッチング処理を実行する（Ｓ３０）。
【００９７】
コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の内側でパターンマッチング処理が成功した場合（Ｓ３１のＹｅｓ）、成功した座標位置ｘ，ｙ及び傾き角度θをワーク位置として記録する（Ｓ３２）。
【００９８】
コンピュータ１５０は、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の内側でパターンマッチング処理が成功しなかった場合（Ｓ３１のＮｏ）、通常探索処理（Ｓ３３）へ移行する。コンピュータ１５０は、通常探索処理でもパターンマッチング処理が成功しなかった場合、探索処理を失敗としてロボット装置１０を停止させて警報を出力する。
【００９９】
（マッチング結果記録処理）
図１１に示すように、マッチング結果記録部１１８は、パターンマッチング処理が成功した際の座標位置ｘ，ｙ、マッチングスコアｔ、マッチング角度ａ、マッチングスケールｓを直近の過去のＮ回分まで記録している。記録の際にはＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）処理を行い、新しいデータｘｍ、ｙｍ、ｔｍ、ａｍ、ｓｍを記録する場合は、過去情報参照数Ｎよりも古いデータｘｍ−Ｎ，ｙｍ−Ｎ、ｔｍ−Ｎ、ａｍ−Ｎ、ｓｍ−Ｎを削除する。
【０１００】
優先探索条件設定部１１９は、マッチング結果記録部１１８に記録されたマッチングスコアｔｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）、マッチング角度ａｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）、マッチングスケールｓｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）を使用して、優先探索時スコア閾値、優先探索角度、優先探索スケールを設定する。これらの設定値は、優先探索時に使用される。
【０１０１】
探索処理実行部１１２は、優先探索処理を実行する。優先探索処理では、優先探索時スコア閾値、優先探索角度、優先探索スケールを用いて入力画像における基準画像の位置と傾き角度の探索を行う。
【０１０２】
（優先探索時スコア閾値）
スコア閾値を低く設定すれば、多少のノイズや照明変化があってもパターンマッチング処理が成功する。しかし、スコア閾値が低いと、探索過程で多くの候補点が残るため、演算回数が増加してパターンマッチング処理時間が長くなる。
【０１０３】
そこで、実施の形態２では、マッチングスコアの累積データを用いてスコア閾値を調整することにより、スコア閾値が低く設定されることを回避している。図１１に示すように、評価基準設定工程の一例である優先探索条件設定部の処理は、過去に遡る所定数の入力画像のパターンマッチング処理におけるマッチングスコアの平均値と標準偏差とに基づいて優先探索時スコア閾値を設定する。優先探索条件設定部１１９は、過去情報参照数Ｎ個分の直近のマッチングスコア情報ｔｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）をマッチング結果記録部１１８から取得する。そして、全てのマッチングスコアの算術平均μｔ、標準偏差σｔを算出し、μｔ−５σｔを優先探索時スコア閾値として設定する。
【０１０４】
（優先探索角度）
探索角度を大きく設定すれば、ワーク２００が撮影画像上で大きく傾いてもパターンマッチング処理を成功させることができるが、探索過程で多くの候補点が残るため、演算回数が増加してパターンマッチング処理時間が長くなる。
【０１０５】
そこで、実施の形態２では、マッチング角度の累積データを用いて探索角度を調整することにより探索角度が大きく設定されることを回避している。図１１に示すように、角度範囲設定工程の一例である優先探索条件設定部の処理は、過去に遡る所定数の入力画像のパターンマッチング処理におけるマッチング角度の平均値と標準偏差とに基づいて探索角度を設定する。優先探索条件設定部１１９は、過去情報参照数Ｎ個分の直近のマッチング角度情報ａｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）をマッチング結果記録部１１８から取得する。そして、全てのマッチング角度の算術平均μａ、標準偏差σａを算出し、優先探索角度範囲を、μａ−５σａ〜μａ＋５σａとして設定する。
【０１０６】
（優先探索スケール）
探索スケールを大きく設定すれば、ワーク２００が撮影画像上で多少拡大もしくは縮小して撮影されていてもワーク位置を検出できるが、探索過程で多くの候補点が残るため、演算回数が増加してパターンマッチング処理時間が長くなる。
【０１０７】
そこで、実施の形態２では、マッチングスケールの累積データを用いて探索スケールを調整することにより探索スケールが大きく設定されることを回避している。図１１に示すように、拡大縮小範囲設定工程の一例である優先探索条件設定部の処理は、過去に遡る所定数の入力画像のパターンマッチング処理におけるマッチングスケールの平均値と標準偏差とに基づいて基準画像の拡大縮小範囲を設定する。優先探索条件設定部１１９は、過去情報参照数Ｎ個分の直近のマッチングスケール情報ｓｉ（ｉ＝ｍ−Ｎ，・・，ｍ−１）をマッチング結果記録部１１８から取得する。そして、全てのマッチングスケール情報の算術平均μｓ、標準偏差σｓを算出し、優先探索スケール範囲を、μｓ−５σｓ〜μｓ＋５σｓとして設定する。
【０１０８】
（実施の形態２の効果）
実施の形態２では、優先探索時スコア閾値を、ばらつきを考慮した上での最大の値に設定することにより、パターンマッチング処理における類似度の計算対象である候補点の数が削減される。
【０１０９】
実施の形態２では、優先探索角度を、ばらつきを考慮した上での最小の値に設定することにより、パターンマッチング処理における類似度の計算対象である候補点の数が削減される。
【０１１０】
実施の形態２では、優先探索スケールを、ばらつきを考慮した上での最小の値に設定することにより、パターンマッチング処理における類似度の計算対象である候補点の数が削減される。
【０１１１】
＜その他の実施の形態＞
実施の形態１、２では、エッジ画像の基準画像を用いて撮影画像のエッジ画像をパターンマッチング処理した。しかし、撮影画像上でワーク位置を特定する方法は、このようなパターンマッチング処理には限定されない。輝度情報を用いたマッチング手法やエッジ情報を用いたマッチング手法など、周知の手法であれば何れであっても良い。このとき、基準画像は、探索方式により異なるが、基準画像の一部の矩形領域を切り出したテンプレート画像や、検出対象物のエッジ情報を画像化したものであっても良い。
【０１１２】
実施の形態１、２では、ロボット装置の実施の形態を説明した。しかし、ロボット装置以外の測定装置、検査装置、生産装置において画像処理装置を装備して本発明を実施してもよい。
【０１１３】
実施の形態１、２では、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の円領域の半径を、各領域のマッチング位置の重心位置μ１からマッチング位置までの距離の標準偏差σの５倍とした。しかし、優先探索領域Ｒ１、Ｒ２、Ｒ３、Ｒ４の円領域の半径は、重心位置μ１からマッチング位置までの距離の標準偏差σに対して３σ、σ等、何倍であっても良い。図４に示すように、１つのワーク位置の組におけるワーク位置の重心を中心とし、１つのワーク位置の組における重心からそれぞれのワーク位置までの距離の標準偏差の１倍以上６倍以下の半径を有する円領域として１つの優先探索領域を設定してもよい。
【０１１４】
実施の形態１では、優先探索処理において探索する領域の順番について、通常探索処理においてマッチング位置がより多く分布した領域から順番に探索領域を選択した。しかし、探索領域内のマッチング位置の数と無関係に、図４の番号順（Ｒ１、Ｒ２、Ｒ３、Ｒ４）としても良い。また、優先探索処理が開始されてもマッチング位置の累積を継続し、過去に遡った２０回程度の優先探索処理においてマッチング位置がより多く分布した領域から順番に探索するように、順番を修正し続けても良い。このほうが、早期に優先探索処理を成功として終了することができるからである。
【０１１５】
実施の形態１では、優先探索処理においてマッチングスコアが閾値に達した優先探索領域で探索を終了した。しかし、すべての優先探索領域でマッチングスコアを求めて最もスコアの高い点をマッチング位置として求めてもよい。すなわち、コンピュータ１５０が、複数の探索領域を加算した和領域でパターンマッチング処理を行い、和領域においてマッチングスコアが最も高くなった位置をワーク位置として検出する。パターンマッチング処理の時間は伸びるが精度は高まるからである。
【０１１６】
実施の形態１では、マッチング位置が４つの分布に分かれる場合について説明したが、分布の数はこれに限定されるものではなく、いくつであっても良い。
【０１１７】
実施の形態１では、階層的クラスタリング手法を用いたが、マッチング位置の分布がいくつに分かれるかが既知の場合には、非階層的クラスタリング手法である、Ｋｍｅａｎｓ法を用いてクラスタリングしても良い。
【符号の説明】
【０１１８】
１０  ロボット装置、１００  画像処理装置
１１０  パターンマッチング処理部、１１１  画像取得部
１１２  探索処理実行部、１１３  マッチング位置記録部
１１４  マッチング位置分析部、１１５  優先探索領域設定部
１１６  基準画像登録部、１１７  パラメータ登録部
１１８  マッチング結果記録部、１１９  優先探索条件設定部
１２０  検査・計測処理部、１５０  コンピュータ
２００  ワーク、３００  ロボットアーム
３３０  三つ爪把持機構、４００  撮影装置
Ｒ１、Ｒ２、Ｒ３、Ｒ４  優先探索領域、ＵＥ  通常探索領域
【図１】
2017049742.tif 000003
【図２】
2017049742.tif 000004
【図３】
2017049742.tif 000005
【図４】
2017049742.tif 000006
【図５】
2017049742.tif 000007
【図６】
2017049742.tif 000008
【図７】
2017049742.tif 000009
【図８】
2017049742.tif 000010
【図９】
2017049742.tif 000011
【図１０】
2017049742.tif 000012
【図１１】
2017049742.tif 000013
【図１２】
2017049742.tif 000014