(57)【特許請求の範囲】
【請求項１】
処理部が、被探索画像に対し参照画像を用いてパターンマッチングを行う画像処理方法であって、
前記処理部が、縮小率が異なる複数の階層からなり、各階層においてモデルエッジが存在するモデルピラミッドを、前記参照画像から求めるモデルピラミッド算出工程と、
前記処理部が、前記モデルピラミッドの階層の縮小率と同じ縮小率の階層を有し該階層に被探索エッジが存在する被探索ピラミッドを、前記被探索画像から求める被探索ピラミッド算出工程と、
前記処理部が、前記被探索ピラミッドに対し前記モデルピラミッドを用いてパターンマッチングを行うマッチング工程と、を備え、
前記モデルピラミッド算出工程は、
前記処理部が、前記参照画像から複数のエッジを抽出するエッジ抽出工程と、
前記処理部が、前記エッジ毎に、大きさを求める大きさ算出工程と、
前記処理部が、前記エッジ毎に、前記エッジの大きさに応じた最大縮小率を求める最大縮小率算出工程と、
前記処理部が、前記モデルピラミッドの複数の階層のうち注目している注目階層を作成するに当たり、前記複数のエッジのうち前記最大縮小率が前記注目階層の縮小率以上のエッジに対応した、前記注目階層の縮小率にしたエッジを、前記注目階層の前記モデルエッジに設定する設定工程と、を有することを特徴とする画像処理方法。
【請求項２】
前記エッジ抽出工程において、前記処理部が、前記参照画像にエッジ抽出領域を設定して、前記エッジ抽出領域から前記複数のエッジを抽出することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記設定工程において、前記処理部が、前記複数のエッジの中から、前記最大縮小率が前記注目階層の縮小率以上のエッジを抽出して、該抽出したエッジを前記注目階層に対応する縮小率に演算して、前記注目階層の前記モデルエッジに設定することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記設定工程において、前記処理部が、
前記複数のエッジの最大縮小率のうち最大となる最大縮小率を上限に、前記参照画像を縮小して、前記注目階層に対応する縮小率の縮小画像を取得し、
前記最大縮小率が前記縮小画像の縮小率よりも小さいエッジが存在する領域を除外した領域に対して前記縮小画像と同じ縮小率とした縮小エッジ抽出領域を、前記縮小画像に設定し、
前記縮小エッジ抽出領域から抽出したエッジを、前記注目階層の前記モデルエッジに設定することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項５】
前記設定工程において、前記処理部が、前記注目階層が縮小率１の階層である場合、前記複数のエッジの各々を前記注目階層の前記モデルエッジに設定することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理方法。
【請求項６】
前記被探索ピラミッド算出工程において、前記処理部が、前記被探索画像から抽出したエッジを縮小して前記被探索エッジを求めることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理方法。
【請求項７】
被探索画像に対し参照画像を用いてパターンマッチングを行う処理部を備えた画像処理装置であって、
前記処理部は、
縮小率が異なる複数の階層からなり、各階層においてモデルエッジが存在するモデルピラミッドを、前記参照画像から求めるモデルピラミッド算出処理と、
前記モデルピラミッドの階層の縮小率と同じ縮小率の階層を有し該階層に被探索エッジが存在する被探索ピラミッドを、前記被探索画像から求める被探索ピラミッド算出処理と、
前記被探索ピラミッドに対し前記モデルピラミッドを用いてパターンマッチングを行うマッチング処理と、を実行し、
前記モデルピラミッド算出処理は、
前記参照画像から複数のエッジを抽出するエッジ抽出処理と、
前記エッジ毎に、大きさを求める大きさ算出処理と、
前記エッジ毎に、前記エッジの大きさに応じた最大縮小率を求める最大縮小率算出処理と、
前記モデルピラミッドの複数の階層のうち注目している注目階層を作成するに当たり、前記複数のエッジのうち前記最大縮小率が前記注目階層の縮小率以上のエッジに対応した、前記注目階層の縮小率にしたエッジを、前記注目階層の前記モデルエッジに設定する設定処理と、を実行することを特徴とする画像処理装置。
【請求項８】
前記処理部は、前記エッジ抽出処理において、前記参照画像にエッジ抽出領域を設定して、前記エッジ抽出領域から前記複数のエッジを抽出することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記処理部は、前記設定処理において、前記複数のエッジの中から、前記最大縮小率が前記注目階層の縮小率以上のエッジを抽出して、該抽出したエッジを前記注目階層に対応する縮小率に演算して、前記注目階層の前記モデルエッジに設定することを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１０】
前記処理部は、前記設定処理において、
前記複数のエッジの最大縮小率のうち最大となる最大縮小率を上限に、前記参照画像を縮小して、前記注目階層に対応する縮小率の縮小画像を取得し、
前記最大縮小率が前記縮小画像の縮小率よりも小さいエッジが存在する領域を除外した領域に対して前記縮小画像と同じ縮小率とした縮小エッジ抽出領域を、前記縮小画像に設定し、
前記縮小エッジ抽出領域から抽出したエッジを、前記注目階層の前記モデルエッジに設定することを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１１】
前記処理部は、前記設定処理において、前記注目階層が縮小率１の階層である場合、前記複数のエッジの各々を前記注目階層の前記モデルエッジに設定することを特徴とする請求項７乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記処理部は、前記被探索ピラミッド算出処理において、前記被探索画像から抽出したエッジを縮小して前記被探索エッジを求めることを特徴とする請求項７乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記処理部により求められた前記モデルピラミッドを記憶する記憶部を更に備え、
前記処理部は、前記記憶部から前記モデルピラミッドを読み出して、前記マッチング処理を行うことを特徴とする請求項７乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
コンピュータに請求項１乃至６のいずれか１項に記載の画像処理方法の各工程を実行させるためのプログラム。
【請求項１５】
請求項１４に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、疎密探索法（coarse-to-fine）を適用する形状のパターンマッチングをする画像処理方法、画像処理装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、画像処理の分野において、物体（ワーク）の有無を検出、及び位置を計測する方法として、パターンマッチングがよく知られている。その中でも、形状のパターンマッチングは、画像の形状特徴が存在する箇所のみを利用して類似度を算出するため、高速であることから、広く普及している。
【０００３】
形状のパターンマッチングは、理想状態のワークを撮像した参照画像と対象となるワークを撮像した被探索画像との形状特徴を利用して類似度を計算していくため、各画像から形状特徴を抽出する必要がある。形状特徴としてエッジを抽出する方法として、ソーベル（Sobel）フィルタやキャニー（Canny）フィルタ等のエッジ抽出フィルタを使用した方法が知られている。
【０００４】
即ち、形状のパターンマッチングとは、前述したエッジ抽出方法を参照画像と被探索画像に適用することにより、参照画像からモデルエッジと被探索画像から被探索エッジを生成し、モデルエッジと被探索エッジとの間の類似度を算出する手法である。
【０００５】
エッジは、画素間の輝度の勾配が大きい箇所であり、実際には、エッジ点の集合である。つまり、任意のルールに従うエッジ点の集合をエッジと呼ぶ。一般的に、隣接するエッジ点同士を連結したエッジがよく用いられる。エッジ点をエッジとして取り扱うことによって、その特徴を用いた画像処理が可能となる。例えば、エッジの大きさのような特徴量を算出することができる。
【０００６】
パターンマッチングを高速化する方法として、疎密探索法が知られている。疎密探索法は、低情報量のデータを用いて大まかな位置を検出した後、高情報量のデータを用いて詳細な位置を検出する探索方法である。実際には、まず、高解像度の画像を縮小して低解像度の画像を作成する処理を順次繰り返し、複数の異なる低解像度の画像を作成する。次に、最も低解像度の画像に対してパターンマッチングを行い、ワークの大まかな位置を検出する。以降、前回よりも高い解像度の画像において、前回の検出位置の近傍に相当する範囲のみを探索することによって、検出位置を徐々に高精度に求めることができる。なお、縮小は、画像以外であっても良く、エッジを抽出する領域（以下、エッジ抽出領域）、ワークを探索する領域（以下、探索領域）やエッジに対しても適用可能である。
【０００７】
従来、疎密探索法を適用する場合、低解像度におけるエッジまでも考慮しなければならないため、モデルとして使用するエッジの選択、パラメータ調整が困難であった。これは、特徴の大きさを考慮せずに縮小してしまうと、大きさの小さな特徴のエッジ自体の潰れや周囲の影響を受けて不安定になるという問題が発生し、その結果、ワークの検出に失敗するからである。また、逆に、エッジの大きさを考慮して、エッジが潰れるような縮小を行わないようにすると、疎密探索法において十分な高速化が図れなかった。
【０００８】
これに対し特許文献１では、エッジ点の鮮鋭度によって画像データの縮小率を決定する方法が提案されている。これは、画像に対して、エッジ点の鮮鋭度に基づいた縮小率を設定することによって、検出を安定させることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−９７４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１では、画像に対してある縮小率を設定しているため、複数のエッジ点の中で鮮鋭度が低下するエッジ点が存在していた場合、そのエッジ点に合わせた縮小率とするため、縮小率を大きくできない。縮小率を大きくできない場合、疎密探索法による高速化が十分に図れない。一方、鮮鋭度が大きくなり縮小率を大きく設定できる場合であっても、エッジが小さい場合、前述した潰れ等の不安定なエッジを含んでいる可能性があるため、検出が安定しないという問題があった。
【００１１】
そこで、本発明は、高速、高ロバスト、かつ高精度なパターンマッチングを実現することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、処理部が、被探索画像に対し参照画像を用いてパターンマッチングを行う画像処理方法であって、前記処理部が、縮小率が異なる複数の階層からなり、各階層においてモデルエッジが存在するモデルピラミッドを、前記参照画像から求めるモデルピラミッド算出工程と、前記処理部が、前記モデルピラミッドの階層の縮小率と同じ縮小率の階層を有し該階層に被探索エッジが存在する被探索ピラミッドを、前記被探索画像から求める被探索ピラミッド算出工程と、前記処理部が、前記被探索ピラミッドに対し前記モデルピラミッドを用いてパターンマッチングを行うマッチング工程と、を備え、前記モデルピラミッド算出工程は、前記処理部が、前記参照画像から複数のエッジを抽出するエッジ抽出工程と、前記処理部が、前記エッジ毎に、大きさを求める大きさ算出工程と、前記処理部が、前記エッジ毎に、前記エッジの大きさに応じた最大縮小率を求める最大縮小率算出工程と、前記処理部が、前記モデルピラミッドの複数の階層のうち注目している注目階層を作成するに当たり、前記複数のエッジのうち前記最大縮小率が前記注目階層の縮小率以上のエッジに対応した、前記注目階層の縮小率にしたエッジを、前記注目階層の前記モデルエッジに設定する設定工程と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、エッジ毎のエッジ大きさから算出する最大縮小率に基づきモデルピラミッドを作成するため、モデルピラミッドの各階層において、不安定なモデルエッジが作成されるのを防止することができる。したがって、不安定なエッジを含まないモデルピラミッドでパターンマッチングを行うため、高速、高ロバスト、かつ高精度にパターンマッチングを実現することができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る画像処理装置を備えた画像処理システムを示す説明図である。
【図２】第１実施形態に係る画像処理装置を示すブロック図である。
【図３】第１実施形態に係る画像処理方法を示すフローチャートである。
【図４】第１実施形態に係る画像処理方法を示すフローチャートである。
【図５】第１実施形態においてエッジ点を抽出する動作を説明するための図である。
【図６】第１実施形態において求めた最大縮小率が設定された各エッジの模式図である。
【図７】（ａ）はエッジが消失する場合を示す説明図である。（ｂ）はエッジが潰れる場合を示す説明図である。
【図８】エッジ縮小時のエッジ点の合成を示す説明図である。
【図９】モデルピラミッドを示す模式図である。
【図１０】疎密探索法を説明するための概念図である。
【図１１】パターンマッチングを説明するための模式図である。
【図１２】第２実施形態に係る画像処理方法を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１６】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像処理装置を備えた画像処理システムを示す説明図である。画像処理システム１００は、光源１０２と、撮像装置であるカメラ１０５と、画像処理装置２００と、を備えている。光源１０２及びカメラ１０５は、画像処理装置２００に接続されている。検出対象物体（物体）であるワークＷは、ワーク保持台１０７に保持されている。
【００１７】
光源１０２は、ワークＷに光を照射（照明）する照明装置である。光源１０２は、例えばＬＥＤやハロゲンランプ等、画像処理に必要な光量の光をワークＷに照射するものであればいかなるものでもよい。
【００１８】
カメラ１０５は、ワークＷからの光を受光して、撮像画像のデータを生成するデジタルカメラである。カメラ１０５は、撮像レンズ１０５Ａと、撮像素子（固体撮像素子）１０５Ｂとを有する。
【００１９】
撮像素子１０５Ｂは、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサ等のエリアセンサである。撮像レンズ１０５Ａは、倍率を調整する対物レンズユニットであり、撮像素子１０５ＢにおいてワークＷの全体が撮像されるように調整される。
【００２０】
画像処理装置２００は、カメラ１０５にワークＷを撮像させて得られた撮像画像に対して画像処理し、ワークＷの位置（姿勢を含む）を求める。
【００２１】
図２は、本発明の第１実施形態に係る画像処理装置を示すブロック図である。画像処理装置２００は、処理部（演算部）としてのＣＰＵ（Central  Processing  Unit）２０１を備えている。また、画像処理装置２００は、記憶部として、ＲＯＭ（Read  Only  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３、ＨＤＤ（Hard  Disk  Drive）２０４を備えている。また、画像処理装置２００は、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１３を備えている。
【００２２】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１３が、バス２１０を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００２３】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ２０１に、後述する各種演算処理を実行させるためのプログラム２４０を記録するものである。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラム２４０に基づいて画像処理方法の各工程を実行する。つまり、ＣＰＵ２０１は、被探索画像に対し参照画像を用いてパターンマッチングを行う。参照画像及び被探索画像は、いずれもワークＷを撮像した画像であるが、参照画像は、いわゆるテンプレートとなる画像（テンプレート画像）であり、被探索画像は、生産ライン等で流れてくる検査対象のワークＷを撮像した画像である。
【００２４】
記録ディスクドライブ２０５は、記録ディスク２４１に記録された各種データやプログラム等を読み出すことができる。
【００２５】
光源１０２は、インタフェース２１１に接続され、ＣＰＵ２０１の制御の下で点灯又は消灯する。
【００２６】
カメラ１０５は、インタフェース２１２に接続されている。ＣＰＵ２０１は、トリガ信号をカメラ１０５に出力してトリガ信号の受信のタイミングでカメラ１０５に撮像させる。カメラ１０５は、撮像結果である撮像画像のデータをＣＰＵ２０１に出力する。ＣＰＵ２０１は、カメラ１０５から撮像画像のデータを取得し、撮像画像に画像処理を施して、ワークＷの位置を検出（計測）する。
【００２７】
インタフェース２１３には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置１２０が接続可能となっている。
【００２８】
なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム２４０が格納される場合について説明するが、これに限定するものではない。プログラム２４０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム２４０を供給するための記録媒体としては、図２に示すＲＯＭ２０２や、記録ディスク２４１、外部記憶装置１２０等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリ、ＲＯＭ等を用いることができる。
【００２９】
図３及び図４は、本発明の第１実施形態に係る画像処理方法を示すフローチャートである。第１実施形態では、ＣＰＵ２０１がプログラム２４０に従って図３及び図４に示す画像処理方法の各工程（各処理）を実行する。
【００３０】
ＣＰＵ２０１は、参照画像に基づいてモデルピラミッドを求める（Ｓ１〜Ｓ７：モデルピラミッド算出工程、モデルピラミッド算出処理）。モデルピラミッドとは、参照画像から抽出したエッジを縮小して縮小率毎（解像度毎）にエッジを階層化したピラミッド構造のことである。よって、モデルピラミッドは、縮小率（解像度）が異なる複数の階層からなる。モデルピラミッドの各階層には、エッジ（モデルエッジ）が存在する。具体的に説明すると、縮小率が１の階層には、参照画像から抽出したエッジが存在し、縮小率が１以外の別の階層（例えば、縮小率が１／２の階層や縮小率が１／４の階層）には、参照画像から抽出したエッジを縮小した縮小エッジが存在する。ここで、縮小率とは、縮小の度合いをいい、縮小率が大きいほど、縮小対象が小さくなる。例えば、縮小率が１／２とは、縮小対象が１／２に縮小されることをいう。そして、縮小率１／４は、縮小率１／２よりも大きい（数字上は、分母で比較する）。
【００３１】
以下、モデルピラミッドを算出（作成）するモデルピラミッド算出工程（モデルピラミッド算出処理）について具体的に説明する。
【００３２】
ＣＰＵ２０１は、理想状態の照明条件及び位置に設置されたワークＷを、カメラ１０５に撮像させて参照画像として取得する（Ｓ１）。なお、第１実施形態ではカメラ１０５から参照画像を取得する場合について説明するが、例えば外部記憶装置１２０やネットワークから参照画像を取得してもよい。
【００３３】
次に、ＣＰＵ２０１は、参照画像からエッジ点を抽出する（Ｓ２）。具体的には、ＣＰＵ２０１は、参照画像にエッジ抽出領域を設定し、エッジ抽出領域内の画素毎に輝度の勾配強度（エッジ強度）と勾配方向（エッジ方向）を算出する。エッジ抽出領域のデータは、予めＨＤＤ２０４等の記憶部に記憶（設定）されている。エッジ強度は、ｘ軸方向とｙ軸方向のソーベルフィルタ（エッジ抽出フィルタ）を使用して算出される。
【００３４】
図５は、本発明の第１実施形態においてエッジ点を抽出する動作を説明するための図である。まず、ＣＰＵ２０１は、図５に示すように、参照画像ＩＲのある注目画素１Ｒでｘ軸方向のエッジ強度（勾配強度）２Ｒとｙ軸方向のエッジ強度（勾配強度）３Ｒを算出する。
【００３５】
注目画素１Ｒのエッジ強度４Ｒは、ｘ軸方向とｙ軸方向のエッジ強度２Ｒ，３Ｒの二乗の平方根（式１）で算出される。また、エッジ方向は、ｘ軸方向のエッジ強度２Ｒとｙ軸方向のエッジ強度３Ｒを用いて、（式２）によって算出される。
【００３６】
【数１】
0006570370.tif 000002
【００３７】
ＣＰＵ２０１は、参照画像ＩＲの全画素のエッジ強度とエッジ方向を算出した後、エッジ強度がある一定のしきい値以上の画素を抽出する。更に、ＣＰＵ２０１は、抽出したしきい値以上の画素に対して、エッジ方向の非極大抑制処理をすることによって、細線化処理を行い、局所的にエッジ強度が最大となる位置を特定する。ここで、エッジ点とは、座標（エッジ位置座標）の情報ほか、そのエッジ位置座標におけるエッジ強度及びエッジ方向の情報を持つ。エッジ点は、エッジ強度とエッジ方向の情報を持つため、ベクトルとして取り扱うことができる。後述するエッジの縮小では、エッジをベクトルとして取り扱い、縮小処理を行う。なお、第１実施形態では、エッジ強度とエッジ方向の算出にソーベルフィルタを使用しているが、キャニーフィルタ等のエッジ抽出フィルタを使用してもよい。
【００３８】
次に、ＣＰＵ２０１は、エッジ点間の関係性で複数のエッジ点まとめて、エッジを作成する（Ｓ３）。例えば、ＣＰＵ２０１は、距離が近い（距離が所定距離以下の）エッジ点同士を、エッジとしてまとめる。なお、ワークＷの特徴に基づいてまとめて、新たなエッジとしてもよい。例えば、円形状のワークＷである場合、円形状を構成するエッジをまとめて、新たなエッジとしてもよい。エッジ点をまとめてエッジとして取り扱うことによって、エッジの特徴を用いた画像処理が可能となる。
【００３９】
このように、ＣＰＵ２０１は、ステップＳ２，Ｓ３により、参照画像から複数のエッジを抽出する（エッジ抽出工程、エッジ抽出処理）。第１実施形態では参照画像にエッジ抽出領域を設定しているので、ステップＳ２において、ＣＰＵ２０１は、設定したエッジ抽出領域からエッジ点を抽出して、その抽出したエッジ点からエッジを算出する。つまり、エッジ抽出領域から複数のエッジを抽出する。
【００４０】
次に、ＣＰＵ２０１は、エッジ毎に、その大きさを算出する（Ｓ４：大きさ算出工程、大きさ算出処理）。第１実施形態では、エッジの大きさとして、エッジの外接矩形を算出して、その外接矩形の短辺の長さを求める。なお、エッジの大きさとして、エッジの外接矩形内のエッジ点の密度を算出してもよい。あるいは、エッジの大きさとして、エッジの長さや面積を算出してもよい。このように、エッジの大きさを特徴づける特徴量は複数あり、単独で使用してもよいし、複数を組み合わせて使用してもよい。
【００４１】
次に、ＣＰＵ２０１は、エッジ毎に、エッジの大きさに応じた最大縮小率を求める（Ｓ５：最大縮小率算出工程、最大縮小率算出処理）。最大縮小率とは、最大でエッジをどの程度まで縮小することが可能かを表す数値である。
【００４２】
図６は、本発明の第１実施形態において求めた最大縮小率が設定された各エッジの模式図である。図６に示すように、エッジ毎に、エッジの大きさより最大縮小率が設定される。つまり、エッジの大きさが大きいほど、最大縮小率が大きく設定される。例えば、参照画像ＩＲから３つのエッジＥ１，Ｅ２，Ｅ３が抽出されたとする。各エッジＥ１，Ｅ２，Ｅ３の大きさに応じて最大縮小率が求められる。図６の例では、エッジＥ１の最大縮小率は１／４、エッジＥ２の最大縮小率は１／２、エッジＥ３の最大縮小率は１／１である。
【００４３】
ここで、エッジの大きさが小さいほど、エッジが潰れやすくなり、周囲のノイズの影響が深刻になるため、最大縮小率は小さいものとなる。一方、エッジ大きさが大きいほど、逆に最大縮小率は大きくでき、高速化に繋がる。最大縮小率の算出式は、例えば（式３）となる。よって、ＣＰＵ２０１は、（式３）に従って最大縮小率を求める。（式３）中、ｍａｘＭｉｎｉｍｉｚｅは最大縮小率、Ｌはエッジ大きさである。
【００４４】
【数２】
0006570370.tif 000003
【００４５】
ここで、エッジを縮小したときのエッジの「消失」とエッジの「潰れ」について説明する。図７（ａ）は、エッジが消失する場合を示す説明図である。図７（ｂ）は、エッジが潰れる場合を示す説明図である。ピラミッドのｉ段目のエッジをｉ＋１段目（１／２倍）に縮小する場合、２×２画素を単位とした領域に区分けする。図７（ａ）に示すように、２×２画素のエッジを１画素に縮小する場合、４つのエッジベクトル（エッジ強度及びエッジ強度）を合成することでエッジ点が消失することがある。また、図７（ｂ）に示すように、図７（ａ）と異なる位置を基準として縮小するとき、既に元の特徴を有さないようなエッジ方向となる、潰れが生じることがある。
【００４６】
第１実施形態では、参照画像からモデルピラミッドを作成するに当たってエッジを縮小した際に、エッジの潰れを回避することにある。そこで、ＣＰＵ２０１は、エッジ毎に、算出した最大縮小率に基づきエッジを縮小する（Ｓ６）。そして、ＣＰＵ２０１は、全てのエッジについて縮小処理が終えたところで、同一の縮小率同士のエッジをまとめて、該縮小率のモデルピラミッドとする（Ｓ７）。即ち、エッジに対して最大縮小率を越えない範囲内で、縮小を繰り返し行うことによって、実現する。このとき、ＣＰＵ２０１は、モデルピラミッドを複数の階層のうち縮小率が最も小さい階層、即ち、縮小率が１／１の階層から順次、縮小率を大きくしていく。その際、複数の階層のうち、作成する階層を、注目している注目階層とする。ＣＰＵ２０１は、ステップＳ６，Ｓ７においてこの注目階層を作成するに当たり、複数のエッジのうち最大縮小率が注目階層の縮小率以上のエッジに対応した注目階層の縮小率にしたエッジを、注目階層のモデルエッジに設定する（設定工程、設定処理）。
【００４７】
第１実施形態では、ＣＰＵ２０１は、ステップＳ６，Ｓ７において、複数のエッジの中から、最大縮小率が注目階層の縮小率以上のエッジを抽出して、抽出したエッジを注目階層に対応する縮小率に演算して、注目階層のモデルエッジに設定する。また、ＣＰＵ２０１は、ステップＳ６，Ｓ７において、注目階層が縮小率１／１＝１の階層である場合、複数のエッジの各々を注目階層のモデルエッジに設定する。
【００４８】
以下、説明のために、エッジに対する１回の縮小は、１／２とする。例えば、図６中のエッジＥ１の場合、最大縮小率は１／４であるため、２回の縮小を行う。このとき、１回の縮小後のエッジをエッジＥ１’とし、２回の縮小後のエッジをエッジＥ１’’とする。同様にして、エッジＥ２は１回の縮小を行う。このとき、１回の縮小後のエッジをエッジＥ２’とする。エッジＥ３はこれ以上縮小することができない。
【００４９】
図８は、エッジ縮小時のエッジ点の合成を示す説明図である。以下、図８を参照しながら、エッジの縮小について、詳細に説明する。２×２画素を単位とした関心領域を作成する。次に、関心領域内の全エッジ点を、ベクトル合成する。ベクトル合成後のエッジ強度ＥＲとエッジ方向θＲは、以下の（式４）〜（式７）に従い、算出される。
【００５０】
【数３】
0006570370.tif 000004
【００５１】
ここで、ｅｉとθｉ（ｉ＝０〜３）は、それぞれ関心領域内のエッジ点ＥＰｉのエッジ強度とエッジ方向である。最後に、縮小処理済みの画素を含まないように、関心領域を移動する。前述の処理を繰り返すことによって、エッジの縮小が為される。
【００５２】
図９は、モデルピラミッドを示す模式図である。図９に示すように、モデルピラミッドにおける縮小率１／１（縮小なし）の階層には、エッジＥ１，Ｅ２，Ｅ３が含まれる。モデルピラミッドにおける縮小率１／２の階層には、最大縮小率が１であるエッジＥ３は縮小されていないため、エッジＥ１’とエッジＥ２’が含まれる。モデルピラミッドにおける縮小率１／４の階層には、最大縮小率が１であるエッジＥ３と最大縮小率が１／２であるエッジＥ２は縮小されていないため、エッジＥ１’’のみが含まれる。
【００５３】
つまり、縮小率が１／１の階層を注目階層とする場合、複数のエッジＥ１，Ｅ２，Ｅ３の各々を注目階層のモデルエッジに設定する。また、１／２倍に縮小する場合、つまり、縮小率が１／２の階層を注目階層とする場合、複数のエッジＥ１，Ｅ２，Ｅ３の中から、最大縮小率が注目階層の縮小率以上のエッジＥ１，Ｅ２を抽出する。ＣＰＵ２０１は、抽出したエッジＥ１，Ｅ２を注目階層に対応する縮小率１／２に演算してエッジＥ１’，Ｅ２’を求め、エッジＥ１’，Ｅ２’を注目階層のモデルエッジに設定する。また、１／４倍に縮小する場合、つまり、縮小率が１／４の階層を注目階層とする場合、複数のエッジＥ１，Ｅ２，Ｅ３の中から、最大縮小率が注目階層の縮小率以上のエッジＥ１を抽出する。ＣＰＵ２０１は、抽出したエッジＥ１を注目階層に対応する縮小率１／４に演算してエッジＥ１’’を求め、エッジＥ１’’を注目階層のモデルエッジに設定する。具体的には、エッジＥ１’を１／２に縮小してエッジＥ１’’を求める。
【００５４】
このようにして求められたモデルピラミッドは、ＨＤＤ２０４等の記憶部に保存しておく。また、最大縮小率のうち、最大となる最大縮小率をモデル最大縮小率としてＨＤＤ２０４等の記憶部に保存しておき、後述するパターンマッチングを行うとき、被探索画像を縮小するために使用することができる。具体的に、図６の場合、エッジＥ１の最大縮小率１／４がモデル最大縮小率としてＨＤＤ２０４に保存される。
【００５５】
以上、モデルピラミッド算出方法（算出工程、算出処理）について説明したが、実際にパターンマッチングを行う際には、記憶部であるＨＤＤ２０４から読み出して行う。
【００５６】
以下、図４のフローチャートに沿って説明する。まず、ＣＰＵ２０１は、ＨＤＤ２０４に保存されているモデルピラミッドを読み出して入力する（Ｓ１１）。
【００５７】
次に、ＣＰＵ２０１は、モデル作成時と同様の照明条件及び位置に設置されたワークＷを、カメラ１０５により撮像させ、カメラ１０５から被探索画像を取得する（Ｓ１２）。
【００５８】
次に、ＣＰＵ２０１は、被探索画像に基づいて被探索ピラミッドを求める（Ｓ１３：被探索ピラミッド算出工程、被探索ピラミッド算出処理）。被探索ピラミッドとは、被探索画像から抽出したエッジを縮小して縮小率毎（解像度毎）にエッジを階層化したピラミッド構造のことである。つまり、被探索ピラミッドの構造は、モデルピラミッドの構造と同じである。被探索ピラミッドも縮小率（解像度）が異なる複数の階層からなり、各階層においてエッジ（被探索エッジ）が存在する。被探索ピラミッドの階層数（段数）は、モデルピラミッドの階層数（段数）と同じである。また、被探索ピラミッドの階層と同じモデルピラミッドの階層の縮小率も同一である。つまり、被探索ピラミッドは、モデルピラミッドの階層の縮小率と同じ縮小率の階層を有する。例えば、モデルピラミッドが縮小率１，１／２，１／４の階層を有する場合、縮小率１，１／２，１／４の階層を有する被探索ピラミッドが作成される。
【００５９】
ステップＳ１３の処理について詳述すると、ＣＰＵ２０１は、ステップＳ１２で取得した被探索画像に対し、ソーベルフィルタ（エッジ抽出フィルタ）を用いてエッジ点を抽出する。ステップＳ１〜Ｓ７のモデルピラミッド作成時には、エッジ点について非極大値抑制をして細線化したが、後述するパターンマッチングのスコア計算は、モデルのエッジ点を中心として行われるため、被探索画像の細線化は実施しなくてよい。そして、ＣＰＵ２０１は、抽出したエッジを、繰り返し縮小して被探索ピラミッドを作成する。縮小する方法は、ベクトル合成である。このとき、予め保存しておいたモデルピラミッドの最大縮小率までの縮小を行い、無駄な縮小を行わないようにするのがよい。
【００６０】
ＣＰＵ２０１は、被探索ピラミッドに対しモデルピラミッドを用いて疎密探索法によりパターンマッチングを行う（Ｓ１４：マッチング工程、マッチング処理）。
【００６１】
図１０は、疎密探索法を説明するための概念図である。まず、両ピラミッドにおいて最も解像度が小さい、つまり、最も縮小した（縮小率が最も大きい）階層のエッジ間で検出対象物であるワークのサーチを行う。これは、一般的に粗サーチと呼ばれる。粗サーチでは、ワークが画像中で動き得る範囲を全てサーチすることになるが、縮小前に対してデータ量が大幅に削減されているため、高速にワークの位置を検出することができる。検出した位置情報は、後述する精サーチに引き継がれる。なお、検出位置は複数存在していてもよい。
【００６２】
粗サーチ以降のサーチを精サーチと呼ぶ。両者の差異は、前回の検出結果を使用するかどうかである。精サーチでは、大まかに特定された前回の検出位置の近傍のみをサーチすることによって、高速化を実現している。精サーチを繰り返し行い、前回の検出結果より高精度に検出対象物体の位置を特定していくことができる。精サーチを繰り返していく中で、より信頼性の高い位置が検出されるため、徐々に次の精サーチに引き継がれる候補は減少していき、最後の精サーチでは、残存する候補の中から最も信頼性の高い位置を検出位置とする。ここで、信頼性の高い検出位置は、一般的にスコアが高い、即ちモデルに最も類似する位置が選択される。
【００６３】
図１１は、パターンマッチングを説明するための模式図である。図１１を参照しながら、パターンマッチングのスコア計算について説明する。画像内をモデルがピクセル単位の平行移動をしながら、各位置においてスコアを算出する。任意の位置（ｉ，ｊ）におけるスコアＳｉｊは、（式７）によって算出される。
【００６４】
【数４】
0006570370.tif 000005
【００６５】
ここで、局所スコアｓｋは、モデルのエッジ点毎に算出されるスコアであり、あるエッジ点の被探索画像のエッジ方向とモデルのエッジ方向の差のコサイン値によって表される（式８）。
【００６６】
【数５】
0006570370.tif 000006
【００６７】
局所スコアの取りうる値の範囲は、−１から１である。また、局所スコアの総和をエッジ点数で除算して正規化しているため、スコアの取りうる値の範囲は−１から１となる。以上の計算により、任意の位置におけるスコアが算出されたならば、検出の成否を判断するために、しきい値判定を行う。予め決められたしきい値以上であれば、マッチング候補点とみなし、検出位置、スコアを記憶してから、次の位置におけるスコアを計算し、しきい値以下であれば、次の位置におけるスコア算出に移る。そして、各位置におけるスコアを全て算出したならば、マッチング候補点が存在していれば、形状パターンマッチングよる検出を成功とする。そして、マッチング候補点中の最も大きいスコアが得られるマッチング候補点の検出位置（ｉ，ｊ）、スコア等の情報を出力する。
【００６８】
以上、第１実施形態によれば、エッジ毎のエッジ大きさから算出する最大縮小率に基づきモデルピラミッドを作成するため、モデルピラミッドの各階層において、潰れなどの不安定なモデルエッジが作成されるのを防止することができる。したがって、不安定なエッジを含まないモデルピラミッドでパターンマッチングを行うため、高速、高ロバスト、かつ高精度にパターンマッチングを実現することができる。
【００６９】
［第２実施形態］
次に、本発明の第２実施形態に係る画像処理方法について説明する。図１２は、本発明の第２実施形態に係る画像処理方法を示すフローチャートである。なお、第２実施形態において、画像処理装置の構成は、第１実施形態と同様であり、ＣＰＵ２０１の処理、即ちプログラム２４０、より具体的にはモデルピラミッドの作成方法が第１実施形態と異なる。第２実施形態では、第１実施形態と同様、ＣＰＵ２０１がプログラム２４０に従って図１２に示す画像処理方法（モデルピラミッド作成方法）の各工程（各処理）を実行する。
【００７０】
ＣＰＵ２０１は、参照画像に基づいてモデルピラミッドを求める（Ｓ２１〜Ｓ２７：モデルピラミッド算出工程、モデルピラミッド算出処理）。ここで、図１２に示すステップＳ２１〜Ｓ２５の処理は、図３のステップＳ１〜Ｓ５と同様の処理である。即ち、ＣＰＵ２０１は、参照画像からエッジ点を抽出し（Ｓ２１，Ｓ２２）、エッジ点をまとめてエッジを作成し（Ｓ２３）、エッジ毎にエッジの大きさを算出し（Ｓ２４）、エッジの大きさより最大縮小率を算出する（Ｓ２５）。
【００７１】
ＣＰＵ２０１は、モデルピラミッドの複数の階層のうち注目階層を作成するに当たり、複数のエッジのうち最大縮小率が注目階層の縮小率以上のエッジに対応した、注目階層の縮小率にしたエッジを、注目階層のモデルエッジに設定する（Ｓ２６，Ｓ２７）。つまり、ステップＳ２６，Ｓ２７が設定工程（設定処理）である。
【００７２】
第２実施形態では、ＣＰＵ２０１は、ステップＳ２６において、複数のエッジの最大縮小率のうち最大となる最大縮小率を上限に、参照画像を縮小して、注目階層に対応する縮小率の縮小画像を取得する。例えば、複数のエッジＥ１，Ｅ２，Ｅ３の最大縮小率のうち、最大となる最大縮小率は、１／４である。この最大縮小率１／４を上限として、参照画像を縮小して縮小画像を取得する。例えば、１／２に縮小した縮小画像と、１／４に縮小した縮小画像を取得する。
【００７３】
そして、ＣＰＵ２０１は、最大縮小率が縮小画像の縮小率よりも小さいエッジが存在する領域を除外した領域に対して縮小画像と同じ縮小率とした縮小エッジ抽出領域を、縮小画像中に設定する。ＣＰＵ２０１は、ステップＳ２７において、縮小エッジ抽出領域から抽出したエッジを、注目階層のモデルエッジに設定する。例えば、縮小率１／２の階層では、縮小エッジ抽出領域により抽出されたエッジＥ１’，Ｅ２’がモデルエッジとして設定され、縮小率１／４の階層では、縮小エッジ抽出領域により抽出されたエッジＥ１’’がモデルエッジとして設定される。
【００７４】
ステップＳ２６の処理について、更に具体的に説明すると、ＣＰＵ２０１は、エッジ毎に、算出された最大縮小率に基づき参照画像とエッジ抽出領域を縮小する。つまり、参照画像とエッジ抽出領域に対して、最大縮小率を越えない範囲内で縮小を繰り返し行うことによって実現する。
【００７５】
このとき、エッジ抽出領域に関しては、最大縮小率を越えるようなエッジが存在している領域を、予めエッジ抽出領域から除外してから、縮小することによって、以降、不安定なエッジが抽出されないようにする。
【００７６】
以下、説明のために、参照画像とエッジ抽出領域に対する１回の縮小は、１／２とする。まず、エッジ抽出領域の縮小について、詳細に説明する。領域は、二値画像と等価である。したがって、初めに一般的な画像の縮小方法を示した後で、二値画像の場合について示すこととする。
【００７７】
一般的な画像の縮小方法を以下に示す。まず、１／２倍に縮小する場合、２×２画素を単位とした関心領域を作成する。次に、関心領域内の全画素の輝度値の平均値を算出して、縮小後の輝度値とする。最後に、縮小処理済の画素を含まないように、関心領域を移動する。前述の処理を繰り返して、関心領域を全て移動し終わった時点で、参照画像を縮小した画像が生成される。
【００７８】
ここで、二値画像の場合、縮小後の画像も二値とするためには、平均値を二値とする必要がある。第２実施形態においては、該平均値がしきい値以上の場合は１、しきい値未満の場合は０とすればよく、しきい値は０とすればよい。これにより、縮小後のエッジ抽出領域は、縮小前のエッジ抽出領域に対応する領域を確実に含むようになる。
【００７９】
次に、最大縮小率を越えるようなエッジが存在している領域を、予めエッジ抽出領域から除外する方法について、以下に説明する。
【００８０】
まず、エッジの縮小方法と同様にして、エッジ毎に、算出された最大縮小率に基づき、エッジを縮小する。具体的に、エッジに対して最大縮小率を越えない範囲内で、縮小を繰り返し行うことによって、実現する。
【００８１】
図６中、エッジＥ１の場合、最大縮小率は１／４であるため、２回の縮小を行う。このとき、１回の縮小後のエッジをエッジＥ１’とし、２回の縮小後のエッジをエッジＥ１’’とする。同様にして、エッジＥ２は１回の縮小を行う。このとき、１回の縮小後のエッジをエッジＥ２’とする。エッジＥ３はこれ以上縮小することができない。
【００８２】
全てのエッジについて、縮小処理が終わったならば、同一の縮小率同士のエッジをまとめて、領域化する。エッジの領域化をするとき、実際には、ソーベルフィルタの幅に応じて、膨張処理を行ってもよい。そして、同一の縮小率同士の領域化されたエッジと、エッジ抽出領域の積の領域を、新たに該縮小率の縮小エッジ抽出領域とする。これにより、任意の縮小率の縮小エッジ抽出領域は、不安定なエッジが抽出されない領域となる。
【００８３】
なお、第２実施形態では、縮小エッジ抽出領域を、エッジ抽出領域を縮小した後に、縮小領域から除外する必要のある領域を除外して求めたが、エッジ抽出領域から除外する必要のある領域を除外して残った領域を、縮小して縮小エッジ抽出領域を求めてもよい。
【００８４】
次に、ＣＰＵ２０１は、ステップＳ２７において、参照画像と縮小画像とエッジ抽出領域と縮小エッジ抽出領域から、モデルピラミッドを作成する。対応する縮小率同士の画像とエッジ抽出領域より抽出されるエッジを、該縮小率のモデルとする。
【００８５】
パターンマッチングの方法は、第１実施形態において説明した図４に示すフローチャートと同様であるため、説明を省略する。
【００８６】
以上、第２実施形態によれば、第１実施形態と同様、エッジ毎のエッジ大きさから算出する最大縮小率に基づきモデルピラミッドを作成するため、モデルピラミッドの各階層において、潰れなどの不安定なモデルエッジが作成されるのを防止することができる。したがって、不安定なエッジを含まないモデルピラミッドでパターンマッチングを行うため、高速、高ロバスト、かつ高精度にパターンマッチングを実現することができる。
【００８７】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００８８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８９】
また、上記実施形態では、被探索画像からエッジを抽出し、エッジを縮小することで被探索ピラミッドを求める場合について説明したが、被探索画像、及び被探索画像を縮小した縮小画像それぞれについてエッジを抽出して被探索ピラミッドを求めてもよい。その際、画像全体に対してエッジ抽出を行ってもよいが、縮小率が小さい下段の階層では、縮小率が大きい上段の階層でパターンマッチングした結果を利用して、画像の中でパターンマッチングに必要な最低限の領域だけをエッジ抽出するようにしてもよい。この場合、被探索ピラミッド算出処理とマッチング処理とを、被探索ピラミッドにおいて最下段の階層が被探索画像に対応する縮小率（つまり、縮小率１／１）の階層となるまで、繰り返すこととなる。
【符号の説明】
【００９０】
２００…画像処理装置、２０１…ＣＰＵ（処理部）
【図１】
0006570370.tif 000007
【図２】
0006570370.tif 000008
【図３】
0006570370.tif 000009
【図４】
0006570370.tif 000010
【図５】
0006570370.tif 000011
【図６】
0006570370.tif 000012
【図７】
0006570370.tif 000013
【図８】
0006570370.tif 000014
【図９】
0006570370.tif 000015
【図１０】
0006570370.tif 000016
【図１１】
0006570370.tif 000017
【図１２】
0006570370.tif 000018