(57)【要約】【課題】被探索画像に含まれる検出対象に微小な変形があっても、高速かつロバストな認識を可能とする。【解決手段】テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成し、テンプレートエッジ画像を縮小して、縮小テンプレートエッジ画像を生成する（Ｓ１１−２）。被探索画像から検出対象のエッジを抽出してエッジ画像を生成し、エッジ画像を縮小して、縮小エッジ画像を生成する（Ｓ１３）。所定縮小率以上において、縮小テンプレートエッジ画像と縮小エッジ画像との類似度を演算し、縮小テンプレートエッジ画像との類似度が所定類似度以上であれば、縮小エッジ画像を、パターンマッチングに用いた画像として抽出する（Ｓ１７）。【選択図】図１
2015026117.tif 000002
【特許請求の範囲】
【請求項１】
演算部を有する画像処理装置による画像処理方法であって、
前記演算部が、テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する第１の画像生成工程と、
前記演算部が、前記テンプレートエッジ画像を縮小し、縮小テンプレートエッジ画像を生成する第１の画像縮小工程と、
前記演算部が、被探索画像から検出対象のエッジを抽出してエッジ画像を生成する第２の画像生成工程と、
前記演算部が、前記エッジ画像を縮小し、縮小エッジ画像を生成する第２の画像縮小工程と、
前記演算部が、所定縮小率以上において、前記縮小テンプレートエッジ画像と前記縮小エッジ画像との類似度を演算し、前記縮小テンプレートエッジ画像との類似度が所定類似度以上であれば、前記縮小エッジ画像を、パターンマッチングに用いた画像として抽出する抽出工程と、を備えたことを特徴とする画像処理方法。
【請求項２】
前記第１の画像縮小工程では、前記演算部が、前記テンプレートエッジ画像を縮小し、互いに縮小率の異なる複数の縮小テンプレートエッジ画像を生成し、
前記第２の画像縮小工程では、前記演算部が、前記エッジ画像を縮小し、前記複数の縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小エッジ画像を生成し、
前記抽出工程では、前記演算部が、前記複数の縮小テンプレートエッジ画像及び前記複数の縮小エッジ画像のうち、縮小率が同じ画像同士で類似度を演算し、前記縮小テンプレートエッジ画像との類似度が前記所定類似度以上、且つ前記縮小率が所定縮小率以上の前記縮小エッジ画像を、パターンマッチングに用いた画像として抽出することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記抽出工程では、前記演算部が、前記縮小テンプレートエッジ画像との類似度が前記所定類似度以上、且つ縮小率が前記所定縮小率以上の前記縮小エッジ画像のうち、最大の縮小率の前記縮小エッジ画像を抽出することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記抽出工程では、前記演算部が、前記縮小テンプレートエッジ画像との類似度を、縮小率の小さい前記縮小エッジ画像から順に計算することを特徴とする請求項２又は３に記載の画像処理方法。
【請求項５】
前記抽出工程では、前記演算部が、前記複数の縮小テンプレートエッジ画像及び前記複数の縮小エッジ画像を縮小率の順に階層化したときに、粗い階層間隔で類似度を演算し、前記所定類似度に近い階層に向けて類似度を演算する階層間隔を密にしながらパターンマッチングに用いた画像を抽出することを特徴とする請求項２乃至４のいずれか１項に記載の画像処理方法。
【請求項６】
前記演算部が、前記第１の画像縮小工程及び前記第２の画像縮小工程に先立って、前記テンプレート画像とは異なる参照画像を取得し、前記テンプレート画像及び前記参照画像に基づいて、前記第１の画像縮小工程及び前記第２の画像縮小工程において生成する前記テンプレートエッジ画像及び前記エッジ画像の縮小率を設定する縮小率設定工程を備え、
前記第１の画像縮小工程では、前記演算部が、前記テンプレートエッジ画像を、前記縮小率設定工程で設定した縮小率で縮小して、１つの縮小テンプレートエッジ画像を生成し、
前記第２の画像縮小工程では、前記演算部が、前記エッジ画像を、前記縮小率設定工程で設定した縮小率で縮小して、１つの縮小エッジ画像を生成することを特徴とする請求項１に記載の画像処理方法。
【請求項７】
前記縮小率設定工程では、
前記演算部が、
前記テンプレートエッジ画像を縮小して、互いに縮小率の異なる複数の仮縮小テンプレートエッジ画像を生成し、
前記参照画像から検出対象のエッジを抽出して参照エッジ画像を生成し、
前記参照エッジ画像を縮小して、前記複数の仮縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小参照エッジ画像を生成し、
前記複数の仮縮小テンプレートエッジ画像及び前記複数の縮小参照エッジ画像を縮小率の大きい順に下層から階層化したときに、階層が同じ画像同士で類似度を演算し、
所定階層以下の階層において、前記仮縮小テンプレートエッジ画像と前記縮小参照エッジ画像との類似度が所定類似度以上となる階層を抽出し、
前記第１の画像縮小工程及び前記第２の画像縮小工程において生成する前記テンプレートエッジ画像及び前記エッジ画像の縮小率を、抽出した階層の縮小率に設定することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記演算部が、外部から前記所定類似度の値を取得することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項９】
前記演算部が、前記第１の画像縮小工程、前記第２の画像縮小工程及び前記抽出工程に先立って、前記テンプレート画像とは異なる参照画像を取得し、前記テンプレート画像及び前記参照画像に基づいて、前記所定類似度を設定すると共に、前記第１の画像縮小工程及び前記第２の画像縮小工程において生成する前記テンプレートエッジ画像及び前記エッジ画像の縮小率を設定する設定工程を備え、
前記第１の画像縮小工程では、前記演算部が、前記テンプレートエッジ画像を、前記設定工程で設定した縮小率で縮小して、１つの縮小テンプレートエッジ画像を生成し、
前記第２の画像縮小工程では、前記演算部が、前記エッジ画像を、前記設定工程で設定した縮小率で縮小して、１つの縮小エッジ画像を生成し、
前記抽出工程では、前記演算部が、前記縮小テンプレートエッジ画像と前記縮小エッジ画像との類似度を演算し、前記縮小テンプレートエッジ画像と前記縮小エッジ画像との類似度が前記設定工程で設定した所定類似度以上であれば、前記縮小エッジ画像を、パターンマッチングに用いた画像として抽出することを特徴とする請求項１に記載の画像処理方法。
【請求項１０】
前記設定工程では、
前記演算部が、
仮の所定類似度を設定し、
前記テンプレートエッジ画像を縮小して、互いに縮小率の異なる複数の仮縮小テンプレートエッジ画像を生成し、
前記参照画像から検出対象のエッジを抽出して参照エッジ画像を生成し、
前記参照エッジ画像を縮小して、前記複数の仮縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小参照エッジ画像を生成し、
前記複数の仮縮小テンプレートエッジ画像及び前記複数の縮小参照エッジ画像を縮小率の大きい順に下層から階層化したときに、階層が同じ画像同士で類似度を演算し、
所定階層以下の階層において、前記仮縮小テンプレートエッジ画像と前記縮小参照エッジ画像との類似度が前記仮の所定類似度以上となる階層を抽出可能になるまで、前記仮の所定類似度を変更し、
前記仮縮小テンプレートエッジ画像と前記縮小参照エッジ画像との類似度が前記仮の所定類似度以上となる階層を抽出可能となったときの前記仮の所定類似度を前記所定類似度として設定し、
前記第１の画像縮小工程及び前記第２の画像縮小工程において生成する前記テンプレートエッジ画像及び前記エッジ画像の縮小率を、抽出可能となった階層の縮小率に設定することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
テンプレート画像及び被探索画像を記憶する記憶部と、
前記記憶部に記憶された前記テンプレート画像及び前記被探索画像に対して、画像処理を実行する演算部と、を備え、
前記演算部は、前記画像処理として、
テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する処理と、
前記テンプレートエッジ画像を縮小し、縮小テンプレートエッジ画像を生成する処理と、
被探索画像から検出対象のエッジを抽出してエッジ画像を生成する処理と、
前記エッジ画像を縮小し、縮小エッジ画像を生成する処理と、
所定縮小率以上において、前記縮小テンプレートエッジ画像と前記縮小エッジ画像との類似度を演算し、前記縮小テンプレートエッジ画像との類似度が所定類似度以上であれば、前記縮小エッジ画像を、パターンマッチングに用いた画像として抽出する処理と、を実行することを特徴とする画像処理装置。
【請求項１２】
コンピュータに、請求項１乃至１０のいずれか１項に記載の画像処理方法の各工程を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターンマッチングを行うための画像処理方法、画像処理装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
画像処理の分野において、撮像画像から検出対象（ワーク）を検出する方法として、パターンマッチングが行われている。製造分野では部品供給工程における量産部品の有無検知又は位置情報の取得用途に利用されている。
【０００３】
基本的なパターンマッチングの方法について説明する。まずパターンマッチングを行うためには、検出対象の参照情報が必要になる。一般に、ワークが写り込んでいる取得済みの画像を使用し、ワーク付近の領域のみを切り出してテンプレート画像とする。そして、実際の物体検出工程では、ワークを検出するための被探索画像を取得し、取得した画像の各位置でテンプレート画像との類似度を算出していく。ユーザが指定した値よりも大きい類似度を示す画像の位置を検出位置とする。またはワークが１つに限られる場合は、最大類似度を示す位置を検出位置とする方法である。
【０００４】
前述の類似度の計算方法は複数の方法が知られており、正規化相互相関法（ＮＣＣ）、形状パターンマッチングなどが知られている。ＮＣＣは、テンプレート領域の全画像データを参照する手法である。参照情報が多いことから数画素分程度の微小なワークの変形やノイズに対しても比較的ロバストな認識性能を有する。
【０００５】
一方、輪郭線のエッジ情報のみを用いる形状パターンマッチング手法は、参照する情報量が少ないが故に演算負荷が少なく、処理速度に優位性があるが、微小変形のワークに対し、ロバストな認識性能が得られない傾向にある。
【０００６】
前述の製造工程におけるワークの有無検知又は位置情報の取得に利用する場合、量産されるワークは、金型による成型により生成されるため、テンプレート画像に移り込んでいるワークと同形のワークが主な検出対象となる。
【０００７】
しかし金型の摩耗や、成型時の環境変化により、ワークに微小変形が発生し、形状に個体差を有する場合がある。この場合、形状パターンマッチングでは、テンプレートとの相違が発生し、検出に失敗する場合がある。
【０００８】
そこで、特許文献１では、入力された画像間の変形がある場合であってもロバストなマッチングを行うことを目的とした方法が提案されている。
【０００９】
ピラミッド構造化を用いたローカルエリアマッチングにおいて、各マッチングステップで前段階のマッチングステップでのマッチング結果に基づき、テンプレート画像の画像座標値をマッチング対象画像の画像座標値に近づくように任意変形する。そして、任意変形したテンプレート画像とマッチング対象画像とをマッチングさせる手法である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−７１１２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前述の特許文献１に提案された技術は、テンプレート画像を分割して複数の小領域画像を生成する手法であり、情報量が多いＮＣＣでは有効に寄与すると考えられる。
【００１２】
しかし、検出対象のエッジを抽出する形状パターンマッチングでは、元々、参照情報としてのエッジ情報が少ないため、分割後の小領域画像から抽出される特徴情報はさらに乏しくなる。またテンプレート画像全体で象徴的特徴を持つ場合、分割により象徴的な形状特徴が分断される。そのためノイズエッジと本物のエッジの分離が困難になり、任意変形の過程で誤認識しやすい。そのためロバストな認識性能に問題があった。
【００１３】
さらに、画像の任意変形に費やす演算の負荷が増大し、実時間でのマッチング処理に影響を与える。したがって、形状パターンマッチングで前述の特許文献１の手法を利用する際は、ノイズが少ない場合や許容される処理時間に余裕がある場合に有効な方法であるが、ノイズが多い環境下や実時間での処理が要求される局面では不向きであった。
【００１４】
本発明の目的は、被探索画像に含まれる検出対象に微小な変形があっても、高速かつロバストな認識が可能な画像処理方法、画像処理装置、プログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の画像処理方法は、演算部を有する画像処理装置による画像処理方法であって、前記演算部が、テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する第１の画像生成工程と、前記演算部が、前記テンプレートエッジ画像を縮小し、縮小テンプレートエッジ画像を生成する第１の画像縮小工程と、前記演算部が、被探索画像から検出対象のエッジを抽出してエッジ画像を生成する第２の画像生成工程と、前記演算部が、前記エッジ画像を縮小し、縮小エッジ画像を生成する第２の画像縮小工程と、前記演算部が、所定縮小率以上において、前記縮小テンプレートエッジ画像と前記縮小エッジ画像との類似度を演算し、前記縮小テンプレートエッジ画像との類似度が所定類似度以上であれば、前記縮小エッジ画像を、パターンマッチングに用いた画像として抽出する抽出工程と、を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、被探索画像に含まれる検出対象の微小変形による認識の失敗を抑制し、高速で且つロバストな形状パターンマッチングが可能となる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る画像処理システムの概略構成を示すブロック図である。
【図２】形状パターンマッチング処理を説明するための図である。
【図３】形状パターンマッチング処理を説明するための図である。
【図４】第１実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。
【図５】第１実施形態に係る形状パターンマッチング処理を説明するための概念図である。
【図６】第２実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。
【図７】第２実施形態に係る形状パターンマッチング処理を説明するための概念図である。
【図８】第３実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。
【図９】第４実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１９】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像処理システムの概略構成を示すブロック図である。
【００２０】
画像処理システム５００は、画像処理装置１００と、撮像装置としてのカメラ２００と、表示装置としてのモニタ３００と、外部記憶装置４００と、入力装置としてのキーボード４５０とを備えている。
【００２１】
画像処理装置１００は、コンピュータで構成されており、演算部としてのＣＰＵ（Central  Processing  Unit）１０１を備えている。また、画像処理装置１００は、記憶部として、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３、ＨＤＤ（Hard  Disk  Drive）１０４を備えている。また、画像処理装置１００は、記録ディスクドライブ１０５及び各種のインタフェース１０７〜１１０を備えている。
【００２２】
ＣＰＵ１０１には、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、記録ディスクドライブ１０５及び各種のインタフェース１０７〜１１０が、バス１０６を介して接続されている。ＲＯＭ１０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ１０３は、ＣＰＵ１０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００２３】
ＨＤＤ１０４は、ＣＰＵ１０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ１０１に、後述する各種演算処理を実行させるためのプログラム１２０を記録するものである。ＣＰＵ１０１は、ＨＤＤ１０４に記録（格納）されたプログラム１２０に基づいて画像処理を実行する。
【００２４】
記録ディスクドライブ１０５は、記録ディスク６００に記録された各種データやプログラム等を読み出すことができる。
【００２５】
インタフェース１０７には、カメラ２００が接続されている。カメラ２００は、デジタルカメラであり、不図示の撮像素子（例えばＣＭＯＳイメージセンサやＣＣＤイメージセンサ）を備えている。カメラ２００は、撮像画像をインタフェース１０７に出力し、ＣＰＵ１０１は、撮像画像を、バス１０６を介して記憶部として例えばＨＤＤ１０４やＲＡＭ１０３に記憶させる。
【００２６】
インタフェース１０８には、モニタ３００が接続されており、モニタ３００には、各種画像（例えば、カメラ２００により撮像された撮像画像や画像処理した画像等）が表示される。
【００２７】
インタフェース１０９には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置４００が接続されている。
【００２８】
インタフェース１１０には、入力装置であるキーボード４５０が接続されており、ＣＰＵ１０１は、キーボード４５０からの入力を受けることにより、各種の設定を行う。
【００２９】
記憶部として例えばＨＤＤ１０４には、予めテンプレート画像が記憶されており、ＣＰＵ１０１は、このテンプレート画像と、カメラ２００から取得した被探索画像に対して画像処理を施す。
【００３０】
ここで、テンプレート画像は、例えば変形のない基準ワークをカメラ２００で撮像した際の撮像画像である。また、被探索画像は、例えば生産ラインにあるワークをカメラ２００で撮像した際の撮像画像である。
【００３１】
次に、形状パターンマッチングについて説明する。図２及び図３は、形状パターンマッチング処理を説明するための図である。
【００３２】
図２に示すように、予め取得済みのテンプレート画像から検出対象（ワーク）のエッジを抽出してテンプレートエッジ画像を生成する。図２では、サブピクセル精度でのエッジ抽出の例である。各エッジ抽出点の属するピクセルグリッドのみを残したテンプレートエッジ画像を生成する。
【００３３】
被探索画像には、ワークを撮像したことにより検出対象であるワークが写り込んでおり、図２では、ワークに変形がないものとする。この被探索画像から検出対象（ワーク）のエッジを抽出してエッジ画像を生成する。
【００３４】
なお、通常は、テンプレートエッジ画像とエッジ画像との照合を行い、合致する位置を探索し、類似度を演算する。類似度が所定類似度以上を満足する縮小エッジ画像が発見された場合、マッチング候補有と判断される。類似度の算出のアルゴリズムはエッジ位置、強度、方向を活用した様々な手法があるが、ここでは合致するエッジ画像の面積比で算出する。図２におけるテンプレートエッジ画像とエッジ画像との類似度は１（＝３６画素／３６画素）となる。
【００３５】
図３は、ワークが微小変形した例である。エッジ画像は、テンプレートエッジ画像に比べ、約０．４ピクセル程度、寸法が水平方向へ伸長している。この例での類似度を面積比で表わすと、０．７７（＝２８画素／３６画素）であり、微小変形に対し急しゅんな類似度の低下を生じる。
【００３６】
図４は、第１実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。図５は、第１実施形態に係る形状パターンマッチング処理を説明するための概念図である。
【００３７】
画像処理装置１００のＣＰＵ１０１は、ＨＤＤ１０４に格納されたプログラム１２０を読み出して実行することにより、画像処理として、以下に説明する形状パターンマッチング処理の各処理を実行する。
【００３８】
まず、ＣＰＵ１０１は、テンプレート設定処理を行う（Ｓ１１）。このテンプレート設定処理として、ＣＰＵ１０１は、予め取得したパターンマッチング用のテンプレート画像を設定する（Ｓ１１−１）。つまり、ＣＰＵ１０１は、ＨＤＤ１０４からテンプレート画像を読み出して、ＲＡＭ１０３に格納する。次に、ＣＰＵ１０１は、ステップＳ１１−２において、図５（ａ）に示すようにテンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する（第１の画像生成工程）。次いでＣＰＵ１０１は、テンプレートエッジ画像を縮小し、互いに縮小率の異なる複数の縮小テンプレートエッジ画像を生成する（第１の画像縮小工程）。そして、ＣＰＵ１０１は、図５（ｃ）のように、縮小テンプレートエッジ画像を用いた多層のピラミッド構造体を構築する。
【００３９】
ステップＳ１１においては、例えば一辺あたりの縮小率を、１５／１６、１４／１６、１３／１６〜４／１６のように細かいステップで、複数の縮小テンプレートエッジ画像を生成する。ここで、縮小率とは、（縮小画像のピクセル数）／（元画像のピクセル数）である。
【００４０】
次に、ＣＰＵ１０１は、被探索画像を取得する（Ｓ１２）。つまり、ＣＰＵ１０１は、ＨＤＤ１０４或いは直接カメラ２００から、被探索画像を取得し、ＲＡＭ１０３に格納する。
【００４１】
次に、ＣＰＵ１０１は、取得した被探索画像に基づき、図５（ｂ）に示すように、被探索画像から検出対象（ワーク）のエッジを抽出してエッジ画像を生成する（第２の画像生成工程）。次いで、ＣＰＵ１０１は、エッジ画像を縮小し、複数の縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小エッジ画像を生成する（第２の画像縮小工程）。そして、ＣＰＵ１０１は、図５（ｃ）のように、縮小エッジ画像を用いた多層のピラミッド構造体を構築する（Ｓ１３）。
【００４２】
即ち、複数の縮小テンプレートエッジ画像及び複数の縮小エッジ画像を、縮小率の大きい順に階層化する。これにより、下層に向かって縮小率が大きくなり、逆に上層に向かって縮小率が小さくなる。
【００４３】
次に、ＣＰＵ１０１は、複数の縮小テンプレートエッジ画像及び複数の縮小エッジ画像のうち、縮小率が同じ画像同士（即ち、階層が同じ画像同士）で類似度を演算する。第１実施形態では、ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度を、縮小率の小さい階層から縮小率の大きい階層、即ち上層の階層から下層の階層に向かって順に計算する。そして、ＣＰＵ１０１は、類似度の計算を終える度に、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度（所定値）以上であるか否かを判断する（Ｓ１４）。なお、ＣＰＵ１０１は、所定類似度の値を、予めキーボード４５０（外部）から取得している。つまり、所定類似度の値は、予めユーザが設定するものである。
【００４４】
図５（ｃ）の例では、縮小率が４／１６の第１３層から、縮小率が１６／１６の第１層に向かって演算を行う。最上層では、縮小率が最も小さい４／１６であるので、類似度の計算に要する時間が最も短い。したがって、最下層から演算するよりも、演算負荷を削減することが可能である。
【００４５】
更に、ピラミッド上層部でマッチング候補の箇所を特定し、次の下段の階層では、そのマッチング候補周辺のみを探索する手法により、演算負荷を削減することも可能である。
【００４６】
ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度（所定値）以上であると判断した場合（Ｓ１４：Ｙｅｓ）、ピラミッド構造体の最下層であるか否かを判断する（Ｓ１５）。ＣＰＵ１０１は、最下層でなければ（Ｓ１５：Ｎｏ）、１つ下段の階層を設定し（Ｓ１６）、再度、類似度の演算を行い、類似度が所定類似度（所定値）以上か否かを判断する（Ｓ１４）。
【００４７】
ＣＰＵ１０１は、最下層に到達したと判断した場合（Ｓ１５：Ｙｅｓ）は、マッチング候補ありと判定する。そして、ＣＰＵ１０１は、非縮小（縮小率＝１）のエッジ画像（縮小率１の縮小エッジ画像）を、パターンマッチングに用いた画像として抽出する（Ｓ１７：抽出工程）。そして、ＣＰＵ１０１は、この画像を用いてワークの検出位置を特定する。
【００４８】
即ち、ステップＳ１４〜Ｓ１７においては、ピラミッド上段よりパターンマッチングを行い、所定類似度以上を満足すれば、下段のピラミッド階層のマッチングを行う。通常、変形の無いワークであれば最下層である縮小の無い元画像レベルに到達する。この場合、ステップＳ１７にて、最下層でのマッチング結果を採用する。
【００４９】
ここで縮小率と類似度の関係を解説する。図５（ａ）に示すテンプレートエッジ画像は真円状であるが、図５（ｂ）に示すエッジ画像は微小変形している。例えば類似度を０．５以上と設定した場合、縮小無し（縮小率１）の第１層では、類似度が０．５未満にてマッチングに失敗する。
【００５０】
１辺の縮小率が１／２である第９層での類似度は０．５７である。このように、テンプレートエッジ画像とエッジ画像を同率で縮小するにより微小変形によるテンプレートエッジ画像との差が軽減されていく。
【００５１】
但し、ピラミッド階層が上の階層になるほど、情報量が乏しくなり、ノイズによる誤検出の可能性が高くなる。また低解像度が故に検出の位置精度も低下する。よって検出精度面では、より低縮小率の縮小エッジ画像でのマッチング結果が望ましいが、微小変形を許容する場合は、その変形許容量に応じた縮小率での画像での類似度算出が望ましい。
【００５２】
一般には、類似度のしきい値を引き下げることで変形への影響を回避する手段が講じられる。ところが、仮に類似度０．３へ引き下げた場合、全テンプレートエッジ画像の３割分の特徴との合致位置の探索となり、この場合ノイズ成分が偶然合致する確率が高くなる。
【００５３】
これに対し、形状特徴が概ね保持される縮小エッジ画像でのマッチングのほうが、類似度を引き下げるよりもロバストな検出が見込まれる傾向がある。
【００５４】
第１実施形態では、上述した縮小率と類似度との関係を鑑みたものである。所定類似度以上を満足し且つ、より縮小率が大きいエッジ画像を探索することで、変形に対しロバストな形状パターンマッチングが可能となる。
【００５５】
即ち、ＣＰＵ１０１は、ステップＳ１４にて類似度が所定類似度以上を満足しない場合（Ｓ１４：Ｎｏ）、階層が所定階層以下（即ち、縮小率が所定縮小率以上）であるか否かを判断する（Ｓ１８）。
【００５６】
そして、ＣＰＵ１０１は、階層が所定階層以下ではないと判断した場合（Ｓ１８：Ｎｏ）、マッチング候補なしと判定する。例えば、最上層でも満足できない場合や、ユーザ指定の階層よりも高い階層の場合は、ステップＳ１１０でマッチング候補なしと判定する。
【００５７】
この階層の指定（即ち、縮小率の指定）は、ユーザがノイズや位置検出精度面を鑑みてキーボード４５０により適宜行ってもよい。ＣＰＵ１０１は、ステップＳ１８にて所定階層以下であれば（Ｓ１８：Ｙｅｓ）、前階層での結果をマッチング候補と位置付け（Ｓ１９）、処理を終了する。図５の例では、第６層で類似度が０．５となっている。即ち、第５層のときにステップＳ１４でＮｏと判断され、ステップＳ１８の処理に移行する。このため第５層の前段の第６層でのマッチング位置をマッチング結果として採用する。
【００５８】
即ち、ＣＰＵ１０１は、これら一連のステップＳ１４〜Ｓ１１０に示す抽出工程おいて、複数の縮小テンプレートエッジ画像及び複数の縮小エッジ画像のうち、縮小率が同じ画像同士で類似度を演算する。そして、ＣＰＵ１０１は、縮小テンプレートエッジ画像との類似度が所定類似度以上、且つ縮小率が所定縮小率以上（階層が所定階層以下）の縮小エッジ画像を、パターンマッチングに用いた画像として抽出する。ここで、所定縮小率と所定階層とは同義である。
【００５９】
具体例を挙げて更に詳細に説明する。所定類似度を０．５とする。また、所定階層を第１３層（即ち所定縮小率を４／１６）とする。ステップＳ１４にて、類似度≧０．５を満たさなくなるのは、第５層（縮小率１２／１６）である。そして、ステップＳ１８にて、第５層は第６層以下（縮小率１１／１６以上）であると判断され、ステップＳ１７にて、類似度≧０．５を満たしている第６層（縮小率１１／１６）の縮小エッジ画像が抽出されることとなる。即ち、類似度が所定類似度０．５以上、且つ縮小率が所定縮小率１１／１６以上の第６層の縮小エッジ画像が抽出される。
【００６０】
また、第１実施形態では、ＣＰＵ１０１は、抽出工程として、縮小テンプレートエッジ画像との類似度が所定類似度以上、且つ縮小率が所定縮小率以上（階層が所定階層以下）の縮小エッジ画像のうち、最大の縮小率の縮小エッジ画像を抽出する。
【００６１】
具体例を挙げて更に詳細に説明する。所定階層を第１３層（即ち所定縮小率を４／１６）とする。このように所定階層を第１３層に設定した場合には、所定類似度０．５を満足するのは、第１３層（縮小率４／１６）〜第６層（縮小率９／１６）である。いずれの縮小率も所定縮小率９／１６以上であるので、いずれの階層の縮小エッジ画像を選択してもよいが、縮小率が小さくなるほど、画質が低下することとなる。したがって、第１実施形態では、類似度が所定類似度以上であり、縮小率が所定縮小率以上（階層が所定階層以下）を満たすものの中から、最も画質がよい第６層の縮小エッジ画像を抽出することとなる。
【００６２】
以上、第１実施形態では、所定類似度以上を満足し、且つ、より縮小率の大きい縮小エッジ画像を探索して、マッチング候補を抽出している。これによりワークの微小変形による認識の失敗を抑制し、高速で且つロバストな形状パターンマッチングが可能となる。
【００６３】
なお、第１実施形態における探索において、ピラミッドの階層の上層部（高圧縮画像）から最下層方向（低圧縮画像）の順で、所望の縮小エッジ画像の探索を行っているが、これに限定するものではなく、どの階層から演算してもよい。例えば、ピラミッドの最下層側から演算を開始し上層部へ向かい、所定のエッジ画像を探索することも可能である。
【００６４】
［第２実施形態］
次に、本発明の第２実施形態に係る画像処理装置による画像処理について説明する。なお、画像処理装置の各部の構成は、上記第１実施形態の図１で説明した構成と同様であり、詳細な説明は省略する。第２実施形態において、上記第１実施形態と異なるのは、演算部であるＣＰＵ１０１を用いた画像処理方法、即ちプログラム１２０の内容が異なるものであり、以下、上記第１実施形態と異なる部分について説明する。
【００６５】
図６は、第２実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。図７は、第２実施形態に係る形状パターンマッチング処理を説明するための概念図である。
【００６６】
画像処理装置１００のＣＰＵ１０１は、ＨＤＤ１０４に格納されたプログラム１２０を読み出して実行することにより、画像処理として、以下に説明する形状パターンマッチング処理の各処理を行う。
【００６７】
上記第１実施形態では、最上層から最下層まで全エッジ画像を探索しており、縮小率を細かく設定するほど、探索に時間を要する。そこで、第２実施形態では、所望の縮小エッジ画像を迅速に抽出するために、粗密探索を行う。
【００６８】
まず、ＣＰＵ１０１は、上記第１実施形態のステップＳ１１と同様、テンプレート設定処理を行う（Ｓ２１）。即ち、ＣＰＵ１０１は、予め取得したパターンマッチング用のテンプレート画像を設定する（Ｓ２１−１）。次に、ＣＰＵ１０１は、ステップＳ２１−２において、テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する（第１の画像生成工程）。次いでＣＰＵ１０１は、テンプレートエッジ画像を縮小し、互いに縮小率の異なる複数の縮小テンプレートエッジ画像を生成する（第２の画像生成工程）。そして、ＣＰＵ１０１は、図７のように、縮小テンプレートエッジ画像を用いた多層のピラミッド構造体を構築する。
【００６９】
次に、ＣＰＵ１０１は、被探索画像を取得する（Ｓ２２）。つまり、ＣＰＵ１０１は、ＨＤＤ１０４或いは直接カメラ２００から、被探索画像を取得し、ＲＡＭ１０３に格納する。
【００７０】
次に、ＣＰＵ１０１は、取得した被探索画像に基づき、被探索画像から検出対象（ワーク）のエッジを抽出してエッジ画像を生成する（第２の画像生成工程）。次いで、ＣＰＵ１０１は、エッジ画像を縮小し、複数の縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小エッジ画像を生成する（第２の画像縮小工程）。そしてＣＰＵ１０１は、図７のように、縮小エッジ画像を用いた多層のピラミッド構造体を構築する（Ｓ２３）。
【００７１】
即ち、複数の縮小テンプレートエッジ画像及び複数の縮小エッジ画像を縮小率の大きい順に下層から階層化する。これにより、下層に向かって縮小率が大きくなり、逆に、上層に向かって縮小率が小さくなる。
【００７２】
次に、ＣＰＵ１０１は、複数の縮小テンプレートエッジ画像及び複数の縮小エッジ画像のうち、縮小率が同じ画像同士（即ち、階層が同じ画像同士）で類似度を演算する。そして、ＣＰＵ１０１は、類似度の計算を終える度に、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度（所定値）以上であるか否かを判断する（Ｓ２４）。なお、ＣＰＵ１０１は、所定類似度の値を、予めキーボード４５０（外部）から取得している。つまり、所定類似度の値は、予めユーザが設定するものである。
【００７３】
第２実施形態では、ＣＰＵ１０１は、所望のエッジ画像の迅速な特定を目的に、粗密探索を用いる。図７のように縮小率の間隔を粗く設定したエッジ画像グループからマッチングを実行する。
【００７４】
例えば、一辺あたりの縮小率、１／４→２／４→３／４→４／４の順で、縮小テンプレートエッジ画像と縮小エッジ画像との類似度を計算する。
【００７５】
通常、変形の無いワークであれば最下層である縮小の無い元画像レベルに到達する。つまり、ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度（所定値）以上であると判断した場合（Ｓ２４：Ｙｅｓ）、ピラミッド構造体の最下層又は最終グループであるか否かを判断する（Ｓ２５）。
【００７６】
ＣＰＵ１０１は、ＣＰＵ１０１は、最下層と最終グループのいずれでもなければ（Ｓ２５：Ｎｏ）、同一グループ内の１つ下段の階層を設定し（Ｓ２６）、再度、類似度の演算を行い、類似度が所定類似度以上か否かを判断する（Ｓ２４）。
【００７７】
ＣＰＵ１０１は、最下層又は最終グループに到達したと判断した場合（Ｓ２５：Ｙｅｓ）は、マッチング候補ありと判定する。そして、ＣＰＵ１０１は、縮小エッジ画像を、パターンマッチングに用いた画像として抽出する（Ｓ２７）。そして、ＣＰＵ１０１は、この画像を用いてワークの検出位置を特定する。
【００７８】
ＣＰＵ１０１は、ステップＳ２４にて類似度が所定類似度以上を満足しない場合（Ｓ２４：Ｎｏ）、階層が所定階層以下（縮小率が所定縮小率以上）であるか否かを判断する（Ｓ２８）。
【００７９】
そして、ＣＰＵ１０１は、階層が所定階層以下ではないと判断した場合（Ｓ２８：Ｎｏ）、マッチング候補なしと判定する（Ｓ２１０）。ＣＰＵ１０１は、ステップＳ２８にて所定階層以下であれば（Ｓ２８：Ｙｅｓ）、階層間隔を密に設定し（Ｓ２９）、ステップＳ２４の処理に戻る。
【００８０】
また、ＣＰＵ１０１は、最上層でも満足できない場合や、ユーザ指定のピラミッド階層以上である場合はマッチング候補無と判定する（Ｓ２１０）。この階層の指定は、ユーザがノイズや位置検出精度面を鑑みて適宜指定してよい。
【００８１】
仮に３／４の縮小率で所定類似度を満足せず、２／４の縮小率で所定類似度を満足する場合、所望の縮小エッジ画像は２／４〜３／４の間に存在する。ステップＳ２９において、図７のＢグループのように縮小率を密に設定したエッジ画像グループに対しマッチングを実行する。
【００８２】
例えば４／８→５／８→６／８の縮小率の順で縮小テンプレートエッジ画像と縮小エッジ画像との類似度を計算する。なお、４／８（＝２／４）、６／８（＝３／４）の縮小率の場合は、既に計算済みの計算結果を利用しても良い。
【００８３】
ここでは６／８の縮小率で所定類似度を満足せず、５／８の縮小率で所定類似度を満足するので、所望の縮小エッジ画像は１０／１６〜１２／１６の間に存在する。再度、ステップＳ２９において、図７のＣグループのように、さらに縮小率を密に設定してマッチングを実行する。
【００８４】
例えば１０／１６→１１／１６→１２／１６の縮小率の順でエッジ画像を使用する。１０／１６（＝５／８）、１２／１６（＝６／８）の縮小率の場合は既に計算済みの計算結果を利用しても良い。
【００８５】
本例では所定類似度を満足し、且つ、より縮小率の大きい縮小エッジ画像は、１１／１６の縮小率の時であり、本結果をマッチング候補と位置付ける。
【００８６】
以上、ＣＰＵ１０１は、ステップＳ２４〜Ｓ２１０の抽出工程において、粗い階層間隔で類似度を演算し、所定類似度に近い階層に向けて類似度を演算する階層間隔を密にしながらパターンマッチングに用いた画像を抽出する。
【００８７】
したがって、第２実施形態によれば、形状パターンマッチングにおいて、微小変形ワークに対してもロバスト且つ、高速な認識が可能になる。
【００８８】
また、上記第１実施形態における図５の例では、最大１３もの縮小エッジ画像に対してマッチング処理を要したが、第２実施形態における図７の例では最小で４画像、最大で６画像の探索で結果を導くことが可能である。したがって、第２実施形態によれば、上記第１実施形態よりも、演算負荷を大幅に削減することができる。
【００８９】
なお、第２実施形態では、事前にテンプレートエッジ画像、エッジ画像を生成したが、各ピラミッド階層でのマッチングの際、動的に生成しても良い。また第２実施形態では、１／１６の縮小単位や３つの粗密グループを生成したが、ユーザ要求の処理速度、精度に応じで粗密加減を調整してもよい。
【００９０】
［第３実施形態］
次に、本発明の第３実施形態に係る画像処理装置による画像処理について説明する。なお、画像処理装置の各部の構成は、上記第１実施形態の図１で説明した構成と同様であり、詳細な説明は省略する。第３実施形態において、上記第１、第２実施形態と異なるのは、演算部であるＣＰＵ１０１を用いた画像処理方法、即ちプログラム１２０の内容が異なるものであり、以下、上記第１、第２実施形態と異なる部分について説明する。
【００９１】
図８は、第３実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。上記第１及び第２実施形態では、被探索画像の取得毎に、最適な縮小率の縮小エッジ画像を探索した。第３実施形態では、ＣＰＵ１０１による形状パターンマッチング処理に先立って、ワークの変形許容度に適した縮小エッジ画像の縮小率の上限を予め設定することで、探索の演算負荷を低減し、高速な認識を実現する方法を説明する。
【００９２】
まず、ＣＰＵ１０１は、類似度判定に使用する所定類似度の値（類似度のしきい値）をユーザが指定した値に設定する（Ｓ３０）。具体的には、ＣＰＵ１０１は、キーボード４５０（外部）から所定類似度の値を取得する。
【００９３】
次に、ＣＰＵ１０１は、ステップＳ３２，Ｓ３４に先立ち、予め取得したテンプレート画像及び参照画像に基づき、後のステップＳ３２，Ｓ３４において生成するテンプレートエッジ画像及びエッジ画像の縮小率を設定する（Ｓ３１：縮小率設定工程）。この参照画像は、テンプレート画像とは異なる画像であり、例えば許容される範囲で変形した基準ワークを撮像した際の撮像画像である。
【００９４】
ステップＳ３１について具体的に説明する。まず、ＣＰＵ１０１は、テンプレート設定処理を実行する（Ｓ３１−１）。具体的には、ＣＰＵ１０１は、テンプレート画像を設定し（Ｓ３１−１−１）、テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する。そして、上記第１実施形態の図５（ａ）のごとく、テンプレートエッジ画像を縮小して、互いに縮小率の異なる複数の仮縮小テンプレートエッジ画像を生成する（Ｓ３１−１−２）。例えば一辺あたりの縮小率を、１５／１６、１４／１６、１３／１６〜４／１６のように細かいステップで設定する。
【００９５】
次に、ＣＰＵ１０１は、縮小率設定用として取得済みの参照画像を１画像以上、設定する（Ｓ３１−２）。
【００９６】
次に、ＣＰＵ１０１は、参照画像から検出対象のエッジを抽出して参照エッジ画像を生成する。次いで、ＣＰＵ１０１は、参照エッジ画像を縮小して、複数の仮縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小参照エッジ画像を生成する（Ｓ３１−３）。
【００９７】
このステップＳ３１−３においては、ステップＳ３１−２にて取得の参照画像を用いて、ステップＳ３１−１と同等の縮小率の縮小参照エッジ画像を生成する。そして、縮小参照エッジ画像を用いた多層のピラミッド構造体を構築する。
【００９８】
即ち、複数の仮縮小テンプレートエッジ画像及び複数の縮小参照エッジ画像を縮小率の大きい順に下層から階層化する。これにより、下層に向かって縮小率が大きくなり、逆に上層に向かって縮小率が小さくなる。
【００９９】
次に、ＣＰＵ１０１は、複数の仮縮小テンプレートエッジ画像及び複数の縮小参照エッジ画像のうち、縮小率が同じ画像同士（即ち、階層が同じ画像同士）で類似度を演算する。
【０１００】
第３実施形態では、ＣＰＵ１０１は、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度を、縮小率の小さい階層から縮小率の大きい階層、即ち上層の階層から下層の階層に向かって順に計算する。そして、ＣＰＵ１０１は、類似度の計算を終える度に、縮小仮テンプレートエッジ画像と縮小参照エッジ画像との類似度が所定類似度（所定値）以上であるか否かを判断する（Ｓ３１−４）。
【０１０１】
ＣＰＵ１０１は、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度が所定類似度（所定値）以上であると判断した場合（Ｓ３１−４：Ｙｅｓ）、ピラミッド構造体の最下層であるか否かを判断する（Ｓ３１−５）。ＣＰＵ１０１は、最下層でなければ（Ｓ３１−５：Ｎｏ）、１つ下段の階層を設定し（Ｓ３１−６）、再度、類似度の演算を行い、類似度が所定類似度（所定値）以下であるか否かを判断する（Ｓ３１−４）。
【０１０２】
ＣＰＵ１０１は、最下層に到達したと判断した場合（Ｓ３１−５：Ｙｅｓ）は、縮小率を１．０に設定する（Ｓ３１−７）。即ち、ステップＳ３１−４においては、ピラミッド上段よりパターンマッチングを行い、所定類似度以上を満足すれば、ステップＳ３１−６において、後段のピラミッド階層を設定の上、マッチングを順次行う。通常、変形の無いワークであれば最下層である縮小の無い元画像レベルに到達する。この場合ステップＳ３１−７にて、縮小率無し（倍率＝１．０）の情報が後のフローへ引き継がれる。
【０１０３】
ＣＰＵ１０１は、ステップＳ３１−４にて、類似度が所定類似度以上を満足しない場合（Ｓ３１−４：Ｎｏ）、階層が所定階層以下（縮小率が所定縮小率以上）であるか否かを判断する（Ｓ３１−１１）。
【０１０４】
そして、ＣＰＵ１０１は、階層が所定階層以下ではないと判断した場合（Ｓ３１−１１：Ｎｏ）、縮小率設定不可と判定する（Ｓ３１−１３）。つまり、最上層でも満足できない場合や、ユーザ指定の階層以上である場合は、ステップＳ３１−１３で縮小率設定不可と判定する。この階層の指定は、ユーザがノイズや位置検出精度面を鑑みて適宜指定してよい。
【０１０５】
ＣＰＵ１０１は、ステップＳ３１−１１にて所定階層以下であれば（Ｓ３１−１１：Ｙｅｓ）、前階層での縮小率を後段のフローへ引き継ぐ（Ｓ３１−１２）。図５の例では、第５層で類似度が０．５を下回っている。このため前段の第６層での縮小率を採用する。
【０１０６】
ＣＰＵ１０１は、ステップＳ３１−７，Ｓ３１−１２の結果（マッチング結果）の妥当性、即ち誤検出があったか否かを判断する（Ｓ３１−８）。ＣＰＵ１０１は、被検出対象の有無、位置情報に誤検出が有る場合（Ｓ３１−８：Ｎｏ）、縮小率設定不可とする（Ｓ３１−１３）。ＣＰＵ１０１は、誤検出が無い場合（Ｓ３１−８：Ｙｅｓ）は、ステップＳ３１−７またはステップＳ３１−１２での縮小率情報を、ステップＳ３１−９へ引き継ぐ。
【０１０７】
ステップＳ３１−９においては、ステップＳ３１−２で設定の画像が１つの場合は、前フローより引き継がれた結果を出力し完了する。
【０１０８】
画像が複数の場合は、ステップＳ３１−１０において未処理画像が０になるまでステップＳ３１−４〜Ｓ３１−８を繰り返し、複数の縮小率がステップＳ３１−９に引き継がれる。この中から縮小率の値が最も小さい（＝最も縮小度が大きい）値を、最適な縮小率として出力し、完了する。
【０１０９】
ステップＳ３１−１３にて設定不可と判定された場合は、所定類似度の値の調整や、ステップＳ３１−１でのテンプレート設定での参照画像の変更などによるエッジ画像の見直しを行い、縮小率の設定が可能な状態にする。
【０１１０】
以上のステップＳ３１−４〜Ｓ３１−１３により、所定階層以下の階層において、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度が所定類似度以上となる階層を抽出する。そして、後のステップＳ３２及びステップＳ３４において生成するテンプレートエッジ画像及びエッジ画像の縮小率を、抽出した階層の縮小率に設定する。
【０１１１】
以上のＣＰＵ１０１による各処理は、以下の形状パターンマッチング処理の前処理である。以上の前処理の後、ＣＰＵ１０１は、テンプレート設定処理を行う（Ｓ３２）。即ち、ＣＰＵ１０１は、予め取得したパターンマッチング用のテンプレート画像を設定する（Ｓ３２−１）。次いで、ＣＰＵ１０１は、ステップＳ３２−２において、テンプレート画像から検出対象のエッジを抽出してテンプレートエッジ画像を生成する（第１の画像生成工程）。次いでＣＰＵ１０１は、テンプレートエッジ画像を、上記ステップＳ３１で設定した縮小率で縮小することで、１つの縮小テンプレートエッジ画像を生成する（第１の画像縮小工程）。
【０１１２】
次に、ＣＰＵ１０１は、被探索画像を取得する（Ｓ３３）。次に、ＣＰＵ１０１は、取得した被探索画像に基づき、被探索画像から検出対象（ワーク）のエッジを抽出してエッジ画像を生成する（第２の画像生成工程）。次いで、ＣＰＵ１０１は、エッジ画像を、上記ステップＳ３１で設定した縮小率で縮小することで、１つの縮小エッジ画像を生成する（Ｓ３４：第２の画像縮小工程）。
【０１１３】
次に、ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度を演算する。そして、ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度以上であるか否かを判断する（Ｓ３５）。
【０１１４】
ＣＰＵ１０１は、縮小テンプレートエッジ画像と縮小エッジ画像との類似度が所定類似度以上であれば（Ｓ３５：Ｙｅｓ）、縮小エッジ画像を、パターンマッチングに用いた画像として抽出する（Ｓ３６：抽出工程）。即ち、ステップＳ３６にて、マッチング候補ありとして、パターンマッチング結果を出力する。ＣＰＵ１０１は、類似度が所定類似度以上を満足しない場合は（Ｓ３５：Ｎｏ）、マッチング候補なしと判定する（Ｓ３７）。
【０１１５】
以上のように、第３実施形態によれば、上記第１実施形態と同様、形状パターンマッチングにおいて、微小変形ワークに対してもロバスト且つ、高速な認識が可能になる。
【０１１６】
更に、第３実施形態によれば、上記第１実施形態と異なり縮小率を事前に決定することが可能になる。したがって、上記第１実施形態よりも更に演算負荷が削減される。
【０１１７】
なお、第３実施形態において、ステップＳ３０で設定する所定類似度の値は、ノイズや類似形状の物体を、誤って検出対象と判定してしまう事象を回避する目的に使用することができる。この値は、ユーザの裁量により値を決定の上、手動にて設定、即ち入力装置としてのキーボード４５０により設定してもよい。または過去の適用時の検出傾向を鑑みて、誤検出抑制可能な値へ、適宜再設定してもよい。以上のように、ロバストな認識を実現するために類似度判定に用いる所定類似度の値（しきい値）を手動で設定することが可能である。
【０１１８】
［第４実施形態］
次に、本発明の第４実施形態に係る画像処理装置による画像処理について説明する。なお、画像処理装置の各部の構成は、上記第１実施形態の図１で説明した構成と同様であり、詳細な説明は省略する。第４実施形態において、上記第１〜第３実施形態と異なるのは、演算部であるＣＰＵ１０１を用いた画像処理方法、即ちプログラム１２０の内容が異なるものであり、以下、上記第１〜第３実施形態と異なる部分について説明する。
【０１１９】
図９は、第４実施形態に係る画像処理装置による形状パターンマッチング処理を説明するためのフローチャートである。上記第３実施形態では、所定類似度の値（類似度のしきい値）を、ＣＰＵ１０１が外部から取得する場合について説明したが、ＣＰＵ１０１が演算処理により求めてもよい。
【０１２０】
ＣＰＵ１０１は、類似度判定に使用する所定類似度の値（類似度のしきい値）、及び縮小率の値の設定処理を行う（Ｓ４０：設定工程）。ステップＳ４０では、ＣＰＵ１０１は、後のステップに先立って、テンプレート画像とは異なる参照画像を取得する。そして、ＣＰＵ１０１は、テンプレート画像及び参照画像に基づいて、所定類似度を設定すると共に、後のステップＳ４１，Ｓ４３において生成するテンプレートエッジ画像及びエッジ画像の縮小率を設定する。
【０１２１】
以下具体的に説明すると、まず、ＣＰＵ１０１は、しきい値の候補、即ち、仮の所定類似度を設定する（Ｓ４０−１）。例えば全て一致の時の類似度を１．０、全て不一致の時の類似度を０．０とする場合、０．９、０．８、０．７、０．６・・・など規定のステップ幅を設けて候補を設定してもよい。
【０１２２】
次に、ＣＰＵ１０１は、上記第３実施形態で説明したステップＳ３１における縮小率設定工程と略同様の処理を実行する（Ｓ４０−２）。なお、ステップＳ３１では、所定類似度の値（類似度のしきい値）が設定されていたのでこの値を用いていたが、第４実施形態のステップＳ４０−２では、所定類似度の値はまだ確定しておらず、仮の所定類似度の値を用いる。
【０１２３】
即ち、ステップＳ４０−２においては、ステップＳ４０−１で設定したしきい値候補（仮の所定類似度の値）の一つを図８のステップＳ３１と同様に、縮小率設定処理を実行する。
【０１２４】
ＣＰＵ１０１は、ステップＳ４０−２の処理の結果、そのしきい値候補（仮の所定類似度の値）で縮小率の設定が可能であったか否かを判断する（Ｓ４０−３）。
【０１２５】
ＣＰＵ１０１は、縮小率の設定が可能であれば（Ｓ４０−３：Ｙｅｓ）、そのときの仮の所定類似度の値及び縮小率の値を出力する（Ｓ４０−４）。ＣＰＵ１０１は、縮小率設定不可であれば（Ｓ４０−３：Ｎｏ）、未処理であるしきい値候補の存在を判断する（Ｓ４０−５）。
【０１２６】
ＣＰＵ１０１は、未処理であるしきい値候補が存在する場合（Ｓ４０−５：Ｎｏ）は、再度、ステップＳ４０−２の処理に移行する。したがって、ＣＰＵ１０１は、未処理のしきい値候補を有し、且つ、ステップＳ４０−３で縮小率設定が可能と判断するまでの間、しきい値候補（仮の所定類似度の値）を変更して、ステップＳ４０−２を繰り返す。
【０１２７】
ＣＰＵ１０１は、未処理のしきい値候補が無くなった場合（Ｓ４０−５：Ｙｅｓ）は、所定類似度の値及び縮小率の値の設定不可を示す情報を出力する（Ｓ４０−６）。この場合は、しきい値候補（仮の所定類似度の値）の見直しや、図８のステップＳ３１−１でのテンプレート設定でのテンプレート画像の変更などによるエッジ画像の見直しを行い、縮小率の設定が可能な状態にする。
【０１２８】
要するに、ステップＳ４０では、ＣＰＵ１０１は、まず、ステップＳ４０−１で仮の所定類似度を設定する。ＣＰＵ１０１は、ステップＳ４０−２におけるステップＳ３１−１（図８）で、テンプレートエッジ画像を縮小して、互いに縮小率の異なる複数の仮縮小テンプレートエッジ画像を生成する。ＣＰＵ１０１は、ステップＳ３１−３で参照画像から検出対象のエッジを抽出して参照エッジ画像を生成し、参照エッジ画像を縮小して、複数の仮縮小テンプレートエッジ画像と同じ縮小率で互いに縮小率の異なる複数の縮小参照エッジ画像を生成する。
【０１２９】
ＣＰＵ１０１は、ステップＳ３１−４で複数の仮縮小テンプレートエッジ画像及び前記複数の縮小参照エッジ画像を縮小率の大きい順に下層から階層化したときに、階層が同じ画像同士で類似度を演算する。そして、所定階層以下の階層において、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度が仮の所定類似度以上となる階層（縮小率）を抽出可能になるまで、ステップＳ３１−４〜Ｓ３１−１３，Ｓ４０−３，Ｓ４０−５を繰り返す。即ち、ＣＰＵ１０１は、所定階層以下の階層において、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度が仮の所定類似度以上となる階層（縮小率）を抽出可能になるまで、仮の所定類似度を変更する。
【０１３０】
そして、ＣＰＵ１０１は、仮縮小テンプレートエッジ画像と縮小参照エッジ画像との類似度が仮の所定類似度以上となる階層（縮小率）を抽出可能となったときの仮の所定類似度を所定類似度として設定する。更に、ＣＰＵ１０１は、ステップＳ４０−４で、後のステップで縮小するテンプレートエッジ画像及びエッジ画像の縮小率を、抽出可能となった階層の縮小率に設定する。
【０１３１】
以上のＣＰＵ１０１による各処理は、以下のステップＳ４１〜Ｓ４６における形状パターンマッチング処理の前処理である。以上の前処理の後、ＣＰＵ１０１は、図８に示すステップＳ３２〜Ｓ３７と同様の処理である、ステップＳ４１〜Ｓ４６を実行する。
【０１３２】
以上、第４実施形態では、上記第３実施形態と異なり、所定類似度（類似度のしきい値）を自動的に決定することが可能になる。そのため形状パターンマッチングにおいて、微小変形ワークに対してもロバスト且つ、高速な認識が可能になる。
【０１３３】
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
【０１３４】
上記第３実施形態では、ＣＰＵ１０１が縮小率を求めていたが、これに限定するものではなく、当該縮小率をユーザが設定するようにしてもよい。どの縮小率がよいか、ユーザが経験上わかっていれば、ＣＰＵ１０１に演算させるまでもないので、縮小率の演算を省略することができる。
【０１３５】
上記実施形態の各処理動作は具体的には演算部としてのＣＰＵ１０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置に供給し、制御装置のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３６】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ１０４であり、ＨＤＤ１０４にプログラム１２０が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図１に示すＲＯＭ１０２、記録ディスク６００、外部記憶装置４００等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１３７】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１３８】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１４０】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【０１４１】
また、上記実施形態では、記憶部が、ＲＯＭ１０２、ＲＡＭ１０３又はＨＤＤ１０４等である場合について説明したが、これらに限定するものではなく、いかなる記憶装置（例えば書き換え可能な不揮発性のメモリ等）であっても本発明は適用可能である。
【符号の説明】
【０１４２】
１００…画像処理装置、１０１…ＣＰＵ（演算部）
【図１】
2015026117.tif 000003
【図２】
2015026117.tif 000004
【図３】
2015026117.tif 000005
【図４】
2015026117.tif 000006
【図５】
2015026117.tif 000007
【図６】
2015026117.tif 000008
【図７】
2015026117.tif 000009
【図８】
2015026117.tif 000010
【図９】
2015026117.tif 000011