(57)【特許請求の範囲】
【請求項１】
基準画像から、解像度を段階的に変えて階層化した複数のテンプレート画像を含む第１ピラミッドを生成する第１工程と、
前記第１ピラミッドに合わせて、解像度を段階的に変えて階層化した複数の探索対象画像を含む第２ピラミッドを生成する第２工程と、
解像度が低い順に、前記第１ピラミッドのテンプレート画像に含まれる特徴画像を、同じ階層の前記第２ピラミッドの探索対象画像の中から探索する探索処理を行う探索工程と、を備え、
前記第１工程では、前記特徴画像として前記基準画像から抽出した１つ以上の輪郭からなる輪郭集合を含み、解像度が互いに異なる複数のテンプレート画像候補を生成し、
前記輪郭集合に含まれる輪郭のうち最小の輪郭の大きさが閾値以上であるテンプレート画像候補を、前記第１ピラミッドを構成するテンプレート画像として設定することを特徴とする画像処理方法。
【請求項２】
前記最小の輪郭の大きさは、前記最小の輪郭で囲まれた部分の面積であることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記最小の輪郭の大きさは、前記最小の輪郭に外接する外接図形の面積であることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記最小の輪郭の大きさは、前記最小の輪郭の長さであることを特徴とする請求項１に記載の画像処理方法。
【請求項５】
請求項１乃至４のいずれか１項に記載の画像処理方法の各工程を実行する画像処理装置。
【請求項６】
コンピュータに、請求項１乃至４のいずれか１項に記載の画像処理方法の各工程を実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、画像処理装置、プログラム及び記録媒体に関し、特に輪郭情報等の特徴画像を含むテンプレート画像を用いたテンプレートマッチングに関するものである。
【背景技術】
【０００２】
撮像した画像の中から物体を見つける処理は、マシンビジョンで良く使われる機能の一つである。このように撮像画像の中からパターンを探索するための画像処理として、一般的にテンプレートマッチングが知られている。テンプレートマッチングでは、探索したいパターンの特徴を事前にテンプレート画像として用意しておく。そして撮像画像の中からパターンを探索する場合は、撮像画像から特徴を抽出して得られる対象画像に対して、事前に用意していたテンプレート画像と照合することを行う。テンプレート画像及び対象画像に含まれる特徴としては輪郭情報が使用されることが多い。
【０００３】
高解像度の画像に対して直接探索を行うのは処理時間がかかるという問題があり、その解決方法として粗密探索法が一般的に知られている。粗密探索法は、まず低解像度の画像で粗く探索し、徐々に解像度を上げながら精密な探索を行うものである。粗密探索法では、解像度の異なる複数の画像を階層化したピラミッドと呼ばれるデータ構造が使用される。これはパターンの特徴（例えば輪郭）に対して低解像度変換を繰り返し、多解像度のパターンの特徴を層構造に並べたデータ構造である。
【０００４】
解像度の異なる画像の個数はピラミッドの段数と呼ばれ、ピラミッドの最上段は最も低解像度のパターン特徴で、ピラミッド段が下がるたびに解像度が上がるデータ構造になっている。実際の探索は、ピラミッドの最上段から開始し、あるピラミッド段で探索した結果（候補点）を一つ下のピラミッド段でより高精度に探索することを繰り返す。
【０００５】
粗密探索法に関する先行技術としては、例えば特許文献１がある。特許文献１には、事前に用意したテンプレート画像のピラミッドと探索対象画像から生成したピラミッドとを用いて、ピラミッドの低解像度の画像から順に解像度を上げながら探索を行うことで、精度の高い探索を行う方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２５７６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の粗密探索法では、テンプレート画像に含まれる輪郭の大きさにかかわらず、予め決められた段数でピラミッドを生成していた。したがって、探索対象によっては、テンプレート画像において輪郭が潰れてノイズ画像となることがあり、テンプレート画像にノイズ画像が含まれていると、ピラミッド途中段の探索で正解を見落とす可能性があり、探索精度が低いものであった。
【０００８】
そこで、本発明は、粗密探索法によるテンプレートマッチングにおいて探索精度を向上させることを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明の画像処理方法は、基準画像から、解像度を段階的に変えて階層化した複数のテンプレート画像を含む第１ピラミッドを生成する第１工程と、前記第１ピラミッドに合わせて、解像度を段階的に変えて階層化した複数の探索対象画像を含む第２ピラミッドを生成する第２工程と、解像度が低い順に、前記第１ピラミッドのテンプレート画像に含まれる特徴画像を、同じ階層の前記第２ピラミッドの探索対象画像の中から探索する探索処理を行う探索工程と、を備え、前記第１工程では、前記特徴画像として前記基準画像から抽出した１つ以上の輪郭からなる輪郭集合を含み、解像度が互いに異なる複数のテンプレート画像候補を生成し、前記輪郭集合に含まれる輪郭のうち最小の輪郭の大きさが閾値以上であるテンプレート画像候補を、前記第１ピラミッドを構成するテンプレート画像として設定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、粗密探索法によるテンプレートマッチングにおいて、探索精度を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る画像処理装置の概略構成を示すブロック図である。
【図２】本発明の第１実施形態に係る画像処理方法の第１工程の処理を示すフローチャートである。
【図３】本発明の第１実施形態に係る画像処理方法の第１工程にて生成される第１ピラミッドを説明するための図である。
【図４】本発明の第１実施形態に係る画像処理方法の第１工程にて生成されるテンプレート画像を説明するための図である。
【図５】本発明の第１実施形態に係る画像処理方法の第２工程の処理を示すフローチャートである。
【図６】本発明の第１実施形態に係る画像処理方法の第２工程にて生成される第２ピラミッドを説明するための図である。
【図７】本発明の第１実施形態に係る画像処理方法の探索工程を示すフローチャートである。
【図８】本発明の第１実施形態にて生成される第１ピラミッド及び第２ピラミッドを示す説明図である。
【図９】本発明の第１実施形態に係る画像処理方法による探索工程を説明するための図である。
【図１０】本発明の第１実施形態において生成される輪郭集合の大きさの算出方法における別の例を説明するための図である。
【図１１】本発明の第１実施形態に係る画像処理方法の第１工程の別の例を示すフローチャートである。
【図１２】本発明の第１実施形態に係る画像処理方法の第１工程の別の例で生成される第１ピラミッドを説明するための図である。
【図１３】本発明の第２実施形態に係る画像処理方法の第１工程を示すフローチャートである。
【図１４】本発明の第２実施形態に係る画像処理方法の第１工程にて生成される第１ピラミッドを説明するための図である。
【図１５】本発明の第３実施形態に係る画像処理方法の第１工程を示すフローチャートである。
【図１６】本発明の第３実施形態に係る画像処理方法の第１工程にて生成される第１ピラミッドを説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１３】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像処理装置の概略構成を示すブロック図である。図１に示すように、画像処理装置１００は、画像処理、具体的にはテンプレートマッチング処理を行うものであり、コンピュータで構成されている。画像処理装置１００は、演算部（制御部）としてのＣＰＵ（Central  Processing  Unit）１０１を備えている。また、画像処理装置１００は、記憶部として、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３、ＨＤＤ（Hard  Disk  Drive）１０４を備えている。また、画像処理装置１００は、記録ディスクドライブ１０５及び各種のインタフェース１１１を備えている。
【００１４】
ＣＰＵ１０１には、ＲＯＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、記録ディスクドライブ１０５及びインタフェース１１１が、バス１１０を介して接続されている。ＲＯＭ１０２には、ＢＩＯＳ等の起動プログラムが格納されている。ＲＡＭ１０３は、ＣＰＵ１０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００１５】
ＨＤＤ１０４には、プログラム１２０が格納（記録）されている。そして、ＣＰＵ１０１がプログラム１２０を読み出して実行することにより、後述する画像処理方法の各工程（第１工程、第２工程、探索工程）を実行する。
【００１６】
記録ディスクドライブ１０５は、記録ディスク１２１に記録された各種データやプログラム等を読み出すことができる。インタフェース１１１には、画像データを送信する、カメラや外部記憶装置等の入力装置１３０が接続されている。これにより、ＣＰＵ１０１は、入力装置１３０から画像データの入力を受けることができる。
【００１７】
次に、粗密探索法により探索対象画像中のパターンの位置を探索する場合に、解像度の異なる複数のテンプレート画像を解像度順に階層化して第１ピラミッドを生成する第１工程について説明する。各テンプレート画像は、元となる基準画像であるパターン画像に対して、エッジ抽出フィルタを適用して得られる画像である。
【００１８】
図２は、本発明の第１実施形態に係る画像処理装置による画像処理方法の第１工程の処理を示すフローチャートである。図３は、第１工程にて生成される第１ピラミッドを説明するための図である。図３（ａ）は、ワークの基準器（パターン）を撮像した撮像画像である基準画像（パターン画像）を示す図である。図３（ｂ）は、パターン画像から生成される第１ピラミッドの例を示す図である。以下、図２に示すフローチャートに沿って説明する。
【００１９】
画像処理装置１００のＣＰＵ１０１は、探索したいパターンが写り込んだ図３（ａ）に示す画像を入力装置１３０から取得し、この画像を１段目のパターン画像２１０に設定する（Ｓ１）。
【００２０】
次に、ＣＰＵ１０１は、ピラミッド１段目のパターン画像２１０に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、特徴画像として、１つ以上の輪郭からなる輪郭集合２１１を抽出する（Ｓ２）。そして、ＣＰＵ１０１は、輪郭集合２１１の画像（特徴画像）を含むテンプレート画像候補２１２を生成する。即ち、ステップＳ２により、パターン画像２１０に対してエッジ抽出フィルタを適用すると複数の輪郭２１１Ａ，２１１Ｂ，２１１Ｃからなる輪郭集合２１１の画像を含むテンプレート画像候補２１２が得られる。ＣＰＵ１０１は、このテンプレート画像候補２１２を、第１ピラミッド２００の最下層（最下段、１段目）にテンプレート画像２１２として設定する。
【００２１】
図４は、テンプレート画像を説明するための図である。図４（ａ）には、輪郭２１１Ａ，２１１Ｂ，２１１Ｃの３つの輪郭で構成される輪郭集合２１１の例を示している。各輪郭２１１Ａ，２１１Ｂ，２１１Ｃは複数のエッジ点４０１で構成される。輪郭集合２１１は画像形式で表現されており、テンプレート画像２１２のサイズ、即ちテンプレート画像２１２の幅と高さはパターン画像２１０と同じである。図４（ａ）に示すエッジ点４０１はエッジが存在する画素を表している。エッジ点４０１はエッジの方向（矢印４０２の方向）とエッジ強度（矢印４０２の長さ）の情報をもつ。
【００２２】
ここで、エッジ（輪郭）とは、画像における暗（濃）色と明（淡）色との境界の画素をいい、エッジの方向とは、輪郭に対して垂直な方向であって、暗（濃）色から明（淡）色に向かう方向である。エッジの強度とは、暗（濃）色から明（淡）色、又はその逆の色の変化の急峻さである。
【００２３】
次に、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１で初期化する（Ｓ３）。
【００２４】
次に、ＣＰＵ１０１は、Ｌ段目のパターン画像を低解像度変換して、（Ｌ＋１）段目のパターン画像を生成する（Ｓ４）。
【００２５】
低解像度変換として、ピラミッド段が一段上がる（Ｌが１増加する）ごとに解像度を２分の１にする。１段目のパターン画像２１０の解像度をＲとすると、ピラミッド段が１段目、２段目、３段目、４段目、…と上がるにつれて各ピラミッド段のパターン画像の解像度はＲ、Ｒ／２、Ｒ／４、Ｒ／８、…と低下することになる。図３（ｂ）では、１段目のパターン画像２１０から２段目のパターン画像２２０、２段目のパターン画像２２０から３段目のパターン画像２３０、３段目のパターン画像２３０から４段目のパターン画像２４０をそれぞれ生成することを示している。
【００２６】
次にＣＰＵ１０１は、（Ｌ＋１）段目のパターン画像に、輪郭集合を抽出するエッジ抽出フィルタを適用して、輪郭集合を含むテンプレート画像の候補となるテンプレート画像候補を生成する（Ｓ５）。抽出方法はステップＳ２と同様である。
【００２７】
図３（ｂ）では、２段目のパターン画像２２０から２段目の輪郭集合２２１を含むテンプレート画像候補２２２を生成し、３段目のパターン画像２３０から３段目の輪郭集合２３１を含むテンプレート画像候補２３２を生成することを示している。また、図３（ｂ）では、４段目のパターン画像２４０から４段目の輪郭集合２４１を含むテンプレート画像候補２４２を生成することを示している。なお２段目の輪郭集合２２１は、輪郭２２１Ａ，２２１Ｂ，２２１Ｃの３個の輪郭で構成されている。
【００２８】
次にＣＰＵ１０１は、（Ｌ＋１）段目のテンプレート画像候補における特徴画像の大きさとして輪郭集合の大きさを計算する（Ｓ６）。ここでは輪郭集合の大きさとして輪郭集合で囲まれる図形の面積とする。
【００２９】
２段目のテンプレート画像２２２における輪郭集合２２１の場合、輪郭２２１Ａと輪郭２２１Ｂと輪郭２２１Ｃの全ての輪郭で囲まれる図形の論理和を計算した図形、即ち図４（ｂ）の斜線部分で示す図形の面積を計算する。この図形の面積を輪郭集合２２１（特徴画像）の大きさとして計算する。
【００３０】
次にＣＰＵ１０１は、ピラミッド段数を増加させるか否か、即ち（Ｌ＋１）段目のテンプレート画像候補における輪郭集合の大きさが、予め設定された閾値以上であるか否かを判断する（Ｓ７）。
【００３１】
輪郭集合の大きさ、つまり輪郭集合で囲まれる図形の面積が閾値を下回るとパターンが潰れやすくなり、正確な探索が難しくなる。
【００３２】
図形の面積が非常に小さく、たとえば面積が１になってしまうと、探索したいパターンとノイズの区別が困難になり、誤った照合が行われる可能性がある。そのため探索したいパターンとノイズの区別ができる程度に、この閾値はたとえば４×４といった値に設定される。
【００３３】
ＣＰＵ１０１は、テンプレート画像候補における輪郭集合の大きさが閾値以上であると判断した場合（Ｓ７：Ｙｅｓ）には、インデックスＬを１増加させて（Ｓ８）、ステップＳ４の処理に戻る。その際、ＣＰＵ１０１は、生成したテンプレート画像候補に含まれる輪郭集合の大きさが閾値以上のテンプレート画像候補を、第１ピラミッド２００を構成するテンプレート画像に設定する。例えば、テンプレート画像候補２２２の輪郭集合２２１の大きさが閾値以上の場合には、このテンプレート画像候補２２２を、第１ピラミッド２００を構成するテンプレート画像２２２に設定する。
【００３４】
ＣＰＵ１０１は、テンプレート画像候補における輪郭集合の大きさが閾値を下回ると判断した場合（Ｓ７：Ｎｏ）、ステップＳ４からステップＳ８の間の繰り返し処理、即ちピラミッド段数の増加を終了して、Ｌをピラミッド段数Ｌｍａｘに決定する（Ｓ９）。
【００３５】
以上の処理により生成された１段目からＬｍａｘ段目までの輪郭集合を含むデータ構造が第１ピラミッド２００である。図３（ｂ）では、第１ピラミッド２００のピラミッド段数Ｌｍａｘが４の場合を示し、生成した５段目のテンプレート画像候補（不図示）は、閾値を下回るので、第１ピラミッド２００には設定されない。よって、４段のテンプレート画像２１２，２２２，２３２，２４２で第１ピラミッド２００が構成される。
【００３６】
ここで、ステップＳ２において生成したテンプレート画像候補２１２は、元の解像度の画像であるため、閾値判断を行うまでもなく、特徴画像（輪郭集合）の大きさは閾値以上である。したがって、ステップＳ７のように閾値判断を行うことなく、第１ピラミッド２００を構成するテンプレート画像２１２に設定される。
【００３７】
以上、第１実施形態では、ＣＰＵ１０１は、ステップＳ２，Ｓ５により、解像度が異なる複数のテンプレート画像候補を生成する。そして、ＣＰＵ１０１は、ステップＳ７の判断により、生成したテンプレート画像候補に含まれる特徴画像の大きさが閾値以上のテンプレート画像候補を、第１ピラミッド２００を構成するテンプレート画像に設定する。
【００３８】
このように、ＣＰＵ１０１は、第１ピラミッド２００において各テンプレート画像２１２〜２４２に含まれる特徴画像の大きさ（輪郭集合の大きさ）が閾値を下回らないように、第１ピラミッド２００の段数を設定する。よって、第１ピラミッド２００を構成する各テンプレート画像２１２〜２４２に含まれる特徴画像（輪郭）が潰れていないので、ピラミッド途中段の探索で正解を見落とす可能性が低くなり、粗密探索法によるテンプレートマッチングにおいて探索精度が向上する。
【００３９】
次に、探索対象画像から第２ピラミッドを生成する第２工程について説明する。ＣＰＵ１０１は、第２ピラミッドを、第１ピラミッドの段数と同じになるように生成する。即ち、ＣＰＵ１０１は、第１ピラミッドにおけるテンプレート画像と同じ解像度であって、解像度の異なる複数の探索対象画像を、解像度順に階層化して第２ピラミッドを生成する。
【００４０】
図５は、本発明の第１実施形態に係る画像処理装置による画像処理方法の第２工程の処理を示すフローチャートである。図６は、第２工程にて生成される第２ピラミッドを説明するための図である。図６（ａ）は、探索対象（ワーク）を撮像した撮像画像（探索対象元画像）を示す図、図６（ｂ）は、撮像画像をエッジ抽出フィルタにより抽出して生成した輪郭を含む探索対象画像を示す図、図６（ｃ）は、第２ピラミッドの例を示す図である。以下、図５に示すフローチャートに沿って説明する。
【００４１】
画像処理装置１００のＣＰＵ１０１は、ワークが写り込んだ図６（ａ）に示す撮像画像を入力装置１３０から取得し、この画像を１段目の探索対象元画像７１０に設定する。
【００４２】
次に、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１で初期化する（Ｓ１２）。
【００４３】
次に、ＣＰＵ１０１は、探索対象元画像に対して、ステップＳ２と同様、ＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、１つ以上の輪郭からなる輪郭集合を抽出する。そして、ＣＰＵ１０１は、輪郭集合の画像を含む探索対象画像を生成する（Ｓ１３）。例えば、ＣＰＵ１０１は、Ｌ＝１の場合、図６（ａ）に示す探索対象元画像７１０にエッジ抽出フィルタを適用して、図６（ｂ）に示す探索対象画像７１１を生成する。このステップＳ１３により、図６（ｃ）に示す第２ピラミッド７００の最下層（最下段）である１段目の探索対象画像７１１が設定される。
【００４４】
次に、ＣＰＵ１０１は、ＬがＬｍａｘよりも小さいか否か、つまりピラミッド段数を増加させるか否かを判断する（Ｓ１４）。
【００４５】
ＣＰＵ１０１は、ＬがＬｍａｘよりも小さい場合（Ｓ１４：Ｙｅｓ）、Ｌ段目の探索対象元画像を低解像度変換して（Ｌ＋１）段目の探索対象元画像を生成する（Ｓ１５）。変換方法は図２のステップＳ４と同様である。
【００４６】
次に、ＣＰＵ１０１は、インデックスＬを１増加させて（Ｓ１６）、ステップＳ１３の処理に戻る。
【００４７】
ＣＰＵ１０１は、ＬがＬｍａｘ以上となった場合（Ｓ１４：Ｎｏ）、即ちＬ＝Ｌｍａｘとなった場合、ピラミッド段数の増加を終了し、Ｌｍａｘ段目の探索対象画像を第２ピラミッド７００に設定して、第２ピラミッド７００の生成を終了する。
【００４８】
以上の処理により生成された１段目からＬｍａｘ段目までの輪郭集合を含むデータ構造が第２ピラミッド７００である。図６（ｃ）では、第２ピラミッド７００のピラミッド段数Ｌｍａｘが４の場合の例である。即ち、解像度の異なる探索対象元画像７１０，７２０，７３０，７４０から、解像度の異なる探索対象画像７１１，７２１，７３１，７４１を生成する。
【００４９】
なお、第２ピラミッド７００を生成する処理（第２工程）は、これに限定するものではなく、種々の変形が可能である。図６（ｃ）に示すように、探索対象元画像７２０，７３０，７４０を生成する場合について説明したが、例えば、これら画像７２０〜７４０を生成せずに、探索対象画像７１１を低解像度変換して、探索対象画像７２１，７３１，７４１を生成してもよい。
【００５０】
以上ＣＰＵ１０１は、第１ピラミッド２００における各テンプレート画像２１２〜２４２と同じ解像度であって、解像度の異なる複数の探索対象画像７２１〜７４１を解像度順に階層化して、第１ピラミッド２００と同じ段数の第２ピラミッド７００を生成する。
【００５１】
次に、第１ピラミッド２００と第２ピラミッド７００を使用して、探索対象画像７１１〜７４１中、テンプレート画像に含まれる特徴画像と一致度が最も高いパターン位置を探索する探索工程について説明する。この探索工程では、ＣＰＵ１０１は、同解像度の階層において第１ピラミッド２００のテンプレート画像に含まれる特徴画像（輪郭集合）を第２ピラミッド７００の探索対象画像の中から探索する探索処理を解像度が最も低い階層から順次行う。
【００５２】
図７は、本発明の第１実施形態に係る画像処理装置１００による探索対象画像７１１〜７４１上のパターン位置を探索する探索工程を示すフローチャートである。図８は、第１ピラミッド及び第２ピラミッドを示す説明図である。図９は、本発明の第１実施形態に係る画像処理装置１００による画像処理方法の探索工程における探索処理を説明するための図である。以下、図７に示すフローチャートに沿って説明する。
【００５３】
ＣＰＵ１０１は、粗密探索を開始するピラミッド段のインデックスＬをＬｍａｘで初期化する（Ｓ２１）。図８に示すように、４段のピラミッド２００，７００の場合は、Ｌｍａｘ＝４であり、このステップＳ２１では、Ｌが４に初期化される。
【００５４】
次に、ＣＰＵ１０１は、第１ピラミッド２００のＬ段目の輪郭集合と第２ピラミッド７００のＬ段目の輪郭集合を用いて、Ｌ段目の候補点を探索する（Ｓ２２）。実際には、画像形式で表現される第１ピラミッド２００のＬ段目のテンプレート画像を、同じく画像形式で表現される第２ピラミッド７００のＬ段目の探索対象画像の左上隅からラスタ走査でずらしながら一致度を計算することで候補点の探索を行う。
【００５５】
このステップＳ２２では、図９（ａ）に示すように、画像形式で表現される第１ピラミッド２００の４段目の輪郭集合２４１を含むテンプレート画像２４２の左上隅画素１２０１を基準点とする。その基準点１２０１を、画像形式で表現される第２ピラミッド７００の４段目の輪郭集合を含む探索対象画像７４１の左上隅からラスタ走査する。２つの輪郭集合の一致度が高くなるような基準点１２０１の座標が候補点となるが、候補点は１個とは限らず複数個存在することがある。２つの輪郭集合の一致度は、エッジ方向を用いて式（１）のように計算する。
【００５６】
【数１】
0006422250.tif 000002
【００５７】
ここでＮＬは第１ピラミッドＬ段目の輪郭集合におけるエッジ点の個数、ＴＬｎは第１ピラミッドＬ段目の輪郭集合におけるｎ番目のエッジ点のエッジ方向、ＩＬｎは第２ピラミッドＬ段目のＴＬに対応する位置にあるエッジ点のエッジ方向である。式（１）は第１ピラミッドの輪郭集合と第２ピラミッドの輪郭集合とのエッジ方向の相違を計算しており、２つの輪郭集合が完全に一致する場合は１、不一致の場合は０となる。そして一致度が閾値以上となるような、第２ピラミッドＬ段目の輪郭集合上の座標を候補点として抽出する。表１に候補点の例を示すが、この例では８個の候補点が一致度の大きさ順に列挙している。
【００５８】
【表１】
0006422250.tif 000003
【００５９】
次にＣＰＵ１０１は、現在のピラミッド段が最下段（１段目）でないか否かの判断、つまりＬ＞１であるか否かの判断を行う（Ｓ２３）。
【００６０】
ＣＰＵ１０１は、Ｌ＞１、つまり最下段（１段目）ではないと判断した場合（Ｓ２３：Ｙｅｓ）、ピラミッド段を１段下げて候補点の絞り込みを繰り返す。
【００６１】
具体的に説明すると、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１減少させ（Ｓ２４）、（Ｌ＋１）段目の探索結果の候補点を、画像形式で表現される第２ピラミッド７００のＬ段目の輪郭集合の点に座標変換する（Ｓ２５）。図９（ｂ）に４段目の候補点１４０１を、３段目の候補点１４０２に座標変換する例を示している。この場合、ピラミッド段が１段下がると解像度は２倍になるため、実際の座標変換は（Ｌ＋１）段目の候補点のＸ座標およびＹ座標をそれぞれ２倍したものがＬ段目の候補点の座標となる。
【００６２】
次に、ＣＰＵ１０１は、第１ピラミッド２００のＬ段目の輪郭集合と第２ピラミッド７００のＬ段目の輪郭集合を用いて、Ｌ段目の候補点の絞り込みを行う（Ｓ２６）。実際には、各候補点およびその周囲の位置に第１ピラミッド２００のＬ段目の輪郭集合を含むテンプレート画像の左上隅画素を位置付けた場合の一致度を計算し、一致度が閾値未満になる場合は候補点から除外する。一致度の計算方法はステップＳ２２と同様である。
【００６３】
以上のステップＳ２３からステップＳ２６の処理を繰り返すことで、最初は低解像度で粗く探索し、徐々に解像度を上げながらより精度よく探索を行う。
【００６４】
ＣＰＵ１０１は、ステップＳ２３でＬ＞１ではない、即ち最下段（１段目）であると判断した場合（Ｓ２３：Ｎｏ）、繰り返し処理を終了する。以上の処理により、第２ピラミッド７００の１段目の輪郭集合を含む探索対象画像７１１上の候補点の座標が、撮像画像７１０上の求めたい座標となる。
【００６５】
なお、第１実施形態では、特徴画像の大きさである輪郭集合の大きさとして、輪郭集合で囲まれる図形の面積の例を示したが、これに限定されない。図１０は、本発明の第１実施形態において生成される輪郭集合の大きさの算出方法における別の例を説明するための図である。なお、図１０では、２段目のテンプレート画像候補を例に図示している。図１０のように、輪郭集合２２１の大きさとして、輪郭集合２２１の外接矩形（外接図形）１５００の面積や、幅と高さを大きさの基準として使用してもよい。さらに輪郭集合２２１の各輪郭２２１Ａ〜２２１Ｃの長さの総和を大きさの基準として使用してもよい。
【００６６】
これにより、例えば輪郭集合が閉じた形状ではない場合等、輪郭集合の面積を算出することができない場合であっても、輪郭集合の大きさを算出することができる。
【００６７】
また第１実施形態では、第１ピラミッド２００を生成する際に、低解像度変換したパターン画像２２０，２３０，２４０に対しエッジ抽出フィルタを適用してテンプレート画像候補２２２，２３２，２４２を生成する場合について説明したが、これに限らない。例えば、パターン画像２１０を低解像度変換するのではなく、テンプレート画像２１２を直接低解像度変換してテンプレート画像候補２２２，２３２，２４２を生成してもよい。
【００６８】
図１１は、本発明の第１実施形態に係る画像処理方法の第１工程の処理の別の例を示すフローチャートである。図１２は、本発明の第１実施形態に係る画像処理方法の第１工程の処理の別の例で生成される第１ピラミッドを説明するための図である。
【００６９】
ＣＰＵ１０１は、探索したいパターンが写り込んだ画像を入力装置１３０から取得し、この画像を１段目のパターン画像２１０に設定する（Ｓ３１）。
【００７０】
次に、ＣＰＵ１０１は、ピラミッド１段目のパターン画像２１０に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、１つ以上の輪郭からなる輪郭集合２１１を抽出する。そして、ＣＰＵ１０１は、輪郭集合２１１の画像（特徴画像）を含むテンプレート画像候補２１２を生成する（Ｓ３２）。ＣＰＵ１０１は、このテンプレート画像候補２１２を、第１ピラミッド２００の最下層（最下段、１段目）にテンプレート画像２１２として設定する。
【００７１】
次に、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１で初期化する（Ｓ３３）。
【００７２】
次に、ＣＰＵ１０１は、Ｌ段目の輪郭集合を含むテンプレート画像を低解像度変換して、（Ｌ＋１）段目の輪郭集合を含むテンプレート画像候補を生成する（Ｓ３４）。
【００７３】
次にＣＰＵ１０１は、（Ｌ＋１）段目のテンプレート画像候補における輪郭集合（特徴画像）の大きさを計算する（Ｓ３５）。
【００７４】
次にＣＰＵ１０１は、ピラミッド段数を増加させるか否か、即ち（Ｌ＋１）段目のテンプレート画像候補における輪郭集合の大きさが、予め設定された閾値以上であるか否かを判断する（Ｓ３６）。
【００７５】
ＣＰＵ１０１は、テンプレート画像候補における輪郭集合の大きさが閾値以上であると判断した場合（Ｓ３６：Ｙｅｓ）には、インデックスＬを１増加させて（Ｓ３７）、ステップＳ３４の処理に戻る。その際、ＣＰＵ１０１は、生成したテンプレート画像候補に含まれる輪郭集合の大きさが閾値以上のテンプレート画像候補を、第１ピラミッド２００を構成するテンプレート画像に設定する。例えば、テンプレート画像候補２２２の輪郭集合２２１の大きさが閾値以上の場合には、このテンプレート画像候補２２２を、第１ピラミッド２００を構成するテンプレート画像２２２に設定する。
【００７６】
ＣＰＵ１０１は、テンプレート画像候補における輪郭集合の大きさが閾値を下回ると判断した場合（Ｓ３６：Ｎｏ）、ステップＳ３４〜Ｓ３７の間の繰り返し処理、即ちピラミッド段数の増加を終了して、Ｌをピラミッド段数Ｌｍａｘに決定する（Ｓ３８）。
【００７７】
以上、図１２に示すように、画像形式で表現される輪郭集合を含むテンプレート画像を直接低解像度変換して第１ピラミッド２００を生成してもよい。図１２では、第１ピラミッド２００のピラミッド段数Ｌｍａｘが４の場合を示し、生成した５段目のテンプレート画像候補（不図示）は、閾値を下回るので、第１ピラミッド２００には設定されない。よって、４段のテンプレート画像２１２，２２２，２３２，２４２で第１ピラミッド２００が構成される。
【００７８】
［第２実施形態］
次に、本発明の第２実施形態に係る画像処理装置による画像処理方法について説明する。図１３は、本発明の第２実施形態に係る画像処理装置による画像処理方法の第１工程の処理を示すフローチャートである。図１４は、第１工程にて生成される第１ピラミッドを説明するための図である。なお、第２実施形態における画像処理装置の構成は、上記第１実施形態と同様であり、説明を省略する。また、第２実施形態における画像処理装置による第２工程及び探索工程も、上記第１実施形態と同様であるため、説明を省略する。
【００７９】
上記第１実施形態では、探索したいパターンとノイズの区別ができる程度に、輪郭集合全体の大きさに基づいてピラミッド段数を決定する例を説明した。しかし、輪郭集合を構成する一部の輪郭が、たとえばパターンが何度回転しているかを決定するような特徴となっていることがあり、そのような輪郭が潰れると誤った照合が行われる可能性がある。このような誤照合を防ぐためには、特に最小の輪郭が潰れないようにする必要がある。
【００８０】
そこで、第２実施形態では、第１工程における閾値判断に用いる特徴画像の大きさを、輪郭集合に含まれる輪郭のうち最小の輪郭の画像の大きさとし、閾値を、最小の輪郭が潰れないように設定する。
【００８１】
以下、図１３のフローチャートに沿って、粗密探索法により対象画像上のパターン位置を探索する場合に、探索したいパターンを構成する輪郭集合の中で最小の輪郭の大きさに基づいてピラミッド段数を決定する方法について説明する。
【００８２】
画像処理装置１００のＣＰＵ１０１は、探索したいパターンが写り込んだ図３（ａ）に示す画像を入力装置１３０から取得し、この画像を１段目のパターン画像２１０に設定する（Ｓ４１）。
【００８３】
次に、ＣＰＵ１０１は、ピラミッド１段目のパターン画像２１０に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、特徴画像として、１つ以上の輪郭からなる輪郭集合２１１を抽出する（Ｓ４２）。そして、ＣＰＵ１０１は、輪郭集合２１１の画像（特徴画像）を含むテンプレート画像候補２１２を生成する。即ち、ステップＳ４２により、パターン画像２１０に対してエッジ抽出フィルタを適用すると複数の輪郭２１１Ａ，２１１Ｂ，２１１Ｃからなる輪郭集合２１１の画像を含むテンプレート画像候補２１２が得られる。ＣＰＵ１０１は、このテンプレート画像候補２１２を、第１ピラミッド１９００の最下層（最下段、１段目）にテンプレート画像２１２として設定する。
【００８４】
次に、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１で初期化する（Ｓ４３）。
【００８５】
次に、ＣＰＵ１０１は、Ｌ段目のパターン画像を低解像度変換して、（Ｌ＋１）段目のパターン画像を生成する（Ｓ４４）。低解像度変換の処理は、上記第１実施形態で説明した図２のステップＳ４と同様である。
【００８６】
次にＣＰＵ１０１は、（Ｌ＋１）段目のパターン画像から輪郭集合を抽出して、輪郭集合を含むテンプレート画像の候補となるテンプレート画像候補を生成する（Ｓ４５）。抽出方法はステップＳ４２と同様である。
【００８７】
図１４（ａ）では、２段目のパターン画像２２０から２段目の輪郭集合２２１を含むテンプレート画像候補２２２を生成し、３段目のパターン画像２３０から３段目の輪郭集合２３１を含むテンプレート画像候補２３２を生成することを示している。なお２段目の輪郭集合２２１は、輪郭２２１Ａ，２２１Ｂ，２２１Ｃの３個の輪郭で構成されている。
【００８８】
次にＣＰＵ１０１は、（Ｌ＋１）段目のテンプレート画像候補における輪郭集合に含まれる各輪郭の大きさを計算する（Ｓ４６）。ここでは輪郭集合に含まれる輪郭の大きさとして輪郭で囲まれる図形の面積とする。
【００８９】
図１４（ｂ）に示す、２段目のテンプレート画像２２２における輪郭集合２２１の場合、各輪郭２２１Ａ，２２１Ｂ，２２１Ｃで囲まれるそれぞれの図形の面積、即ち図１４（ｂ）の斜線部分で示す図形２００２，２００３，２００４の面積をそれぞれ計算する。
【００９０】
次にＣＰＵ１０１は、ピラミッド段数を増加させるか否か、即ち（Ｌ＋１）段目のテンプレート画像候補において輪郭集合に含まれる輪郭のうち最小の大きさの輪郭を選択し、最小の輪郭の大きさが予め設定された閾値以上であるか否かを判断する（Ｓ４７）。第２実施形態では、（Ｌ＋１）段目のテンプレート画像候補における特徴画像の大きさとは、輪郭集合に含まれる輪郭のうち大きさが最小の輪郭の大きさである。
【００９１】
ＣＰＵ１０１は、テンプレート画像候補における最小輪郭の大きさが閾値以上であると判断した場合（Ｓ４７：Ｙｅｓ）には、インデックスＬを１増加させて（Ｓ４８）、ステップＳ４４の処理に戻る。その際、ＣＰＵ１０１は、生成したテンプレート画像候補に含まれる最小輪郭の大きさが閾値以上のテンプレート画像候補を、第１ピラミッド１９００を構成するテンプレート画像に設定する。例えば、図１４（ｂ）において、テンプレート画像候補２２２の輪郭集合２２１に含まれる輪郭２２１Ａ，２２１Ｂ，２２１Ｃのうち大きさ（面積）が最小のものは、輪郭２２１Ｃである。この輪郭２２１Ｃの大きさが閾値以上の場合には、このテンプレート画像候補２２２を、第１ピラミッド１９００を構成するテンプレート画像２２２に設定する。
【００９２】
ＣＰＵ１０１は、テンプレート画像候補における輪郭集合の大きさが閾値を下回ると判断した場合（Ｓ４７：Ｎｏ）、ステップＳ４４〜Ｓ４８の間の繰り返し処理、即ちピラミッド段数の増加を終了して、Ｌをピラミッド段数Ｌｍａｘに決定する（Ｓ４９）。このように、第２実施形態では、最小の輪郭が潰れないようにピラミッド段数を増加させていくことになる。
【００９３】
以上の処理により生成された１段目からＬｍａｘ段目までの輪郭集合を含むデータ構造が第１ピラミッド１９００である。図１４（ａ）では、第１ピラミッド１９００のピラミッド段数Ｌｍａｘが２の場合を例示している。
【００９４】
ここで、ステップＳ４２において生成したテンプレート画像候補２１２は、元の解像度の画像であるため、閾値判断を行うまでもなく、特徴画像（最小輪郭）の大きさは閾値以上である。したがって、ステップＳ４７のように閾値判断を行うことなく、第１ピラミッド１９００を構成するテンプレート画像２１２に設定される。
【００９５】
第２ピラミッドの生成については、上記第１実施形態と同様に図５のフローチャートに従って生成すればよい。第２ピラミッドのピラミッド段数は第１ピラミッドの段数と同じＬｍａｘになるように生成する。第１ピラミッドと第２ピラミッドとを使用して対象画像上のパターン位置を探索する方法については、上記第１実施形態と同様に図７のフローチャートに従って生成する。
【００９６】
以上、第２実施形態では、ＣＰＵ１０１は、ステップＳ４２，Ｓ４５により、解像度が異なる複数のテンプレート画像候補を生成する。そして、ＣＰＵ１０１は、ステップＳ４７の判断により、生成したテンプレート画像候補に含まれる特徴画像の大きさが閾値以上のテンプレート画像候補を、第１ピラミッド１９００を構成するテンプレート画像に設定する。
【００９７】
このように、ＣＰＵ１０１は、第１ピラミッド１９００において各テンプレート画像２１２，２２２に含まれる特徴画像の大きさ（最小輪郭の大きさ）が閾値を下回らないように、第１ピラミッド１９００の段数を設定する。よって、第１ピラミッド１９００を構成する各テンプレート画像２１２，２２２に含まれる特徴画像（輪郭）が潰れていない。したがって、ピラミッド途中段の探索で正解を見落とす可能性が低くなり、粗密探索法によるテンプレートマッチングにおいて探索精度が向上する。
【００９８】
なお、第２実施形態では、各輪郭の大きさとして、各輪郭で囲まれる図形の面積の例を示したが、これに限定されない。各輪郭の外接矩形（外接図形）の面積や、幅と高さを大きさの基準として使用してもよい。さらに各輪郭の長さを各輪郭の大きさの基準として使用してもよい。
【００９９】
これにより、例えば輪郭が閉じた形状ではない場合等、輪郭の面積を算出することができない場合であっても、輪郭の大きさを算出することができる。
【０１００】
また第２実施形態では、第１ピラミッド１９００を生成する際に、低解像度変換したパターン画像２２０，２３０に対しエッジ抽出フィルタを適用してテンプレート画像候補２２２，２３２を生成する場合について説明したが、これに限らない。例えば、パターン画像２１０を低解像度変換するのではなく、テンプレート画像２１２を低解像度変換してテンプレート画像候補２２２，２３２を生成してもよい。
【０１０１】
［第３実施形態］
次に、本発明の第３実施形態に係る画像処理装置による画像処理方法について説明する。図１５は、本発明の第３実施形態に係る画像処理装置による画像処理方法の第１工程の処理を示すフローチャートである。図１６は、第１工程にて生成される第１ピラミッドを説明するための図である。なお、第３実施形態における画像処理装置の構成は、上記第１実施形態と同様であり、説明を省略する。また、第３実施形態における画像処理装置による第２工程及び探索工程も、上記第１実施形態と同様であるため、説明を省略する。
【０１０２】
以下、図１５のフローチャートに沿って、粗密探索法により対象画像上のパターン位置を探索する場合に、探索したいパターンを構成する輪郭ごとにピラミッド段数を決定する方法について説明する。
【０１０３】
画像処理装置１００のＣＰＵ１０１は、探索したいパターンが写り込んだ図３（ａ）に示す画像を入力装置１３０から取得し、この画像を１段目のパターン画像２１０に設定する（Ｓ５１）。
【０１０４】
次に、ＣＰＵ１０１は、ピラミッド１段目のパターン画像２１０に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、特徴画像として、１つ以上の輪郭からなる輪郭集合２１１を抽出する（Ｓ５２）。そして、ＣＰＵ１０１は、輪郭集合２１１の画像（特徴画像）を含むテンプレート画像候補２１２を生成する。即ち、ステップＳ５２により、パターン画像２１０に対してエッジ抽出フィルタを適用すると複数の輪郭２１１Ａ，２１１Ｂ，２１１Ｃからなる輪郭集合２１１の画像を含むテンプレート画像候補２１２が得られる。ＣＰＵ１０１は、このテンプレート画像候補２１２を、第１ピラミッド２２００の最下層（最下段、１段目）にテンプレート画像２１２として設定する。
【０１０５】
次に、ＣＰＵ１０１は、ピラミッド段のインデックスＬを１で初期化する（Ｓ５３）。
【０１０６】
次に、ＣＰＵ１０１は、Ｌ段目の輪郭集合を含むテンプレート画像を低解像度変換して、（Ｌ＋１）段目の輪郭集合を含むテンプレート画像候補を生成する（Ｓ５４）。
【０１０７】
次に、ＣＰＵ１０１は、（Ｌ＋１）段目の輪郭集合の各輪郭の大きさを計算する（Ｓ５５）。ここでは輪郭の大きさとして、輪郭で囲まれた図形の面積とする。
【０１０８】
次に、ＣＰＵ１０１は、生成した（Ｌ＋１）段目のテンプレート画像候補に含まれる輪郭のうち閾値以下の大きさの輪郭を削除して新たなテンプレート画像候補とする（Ｓ５６）。
【０１０９】
輪郭の大きさ、つまり輪郭で囲まれる図形の面積が小さくなるとノイズとの区別がつかなくなり、ノイズの影響を受けやすくなる。そのため、低解像度変換により面積が小さくなった輪郭を（Ｌ＋１）段目以上のピラミッド段の探索で使用しないようにテンプレート画像候補から除外して新たなテンプレート画像候補とする。
【０１１０】
図１６の例では、１段目の輪郭２１１Ｃに対応する２段目の輪郭は輪郭２２１Ｃであるが、対応する３段目の輪郭は削除されている。これは輪郭２１１Ｃを低解像度変換した輪郭を３段目および４段目では使用しないことを意味している。同様に１段目の輪郭２１１Ｂに対応する２段目と３段目の輪郭は輪郭２２１Ｂと輪郭２２３１Ｂであるが、対応する４段目の輪郭は削除されている。これは輪郭２１１Ｂを低解像度変換した輪郭を４段目では使用しないことを意味している。
【０１１１】
次に、ＣＰＵ１０１は、（Ｌ＋１）段目の輪郭集合を含むテンプレート画像候補において、全ての輪郭を削除したか否かを判断する（Ｓ５７）。
【０１１２】
ＣＰＵ１０１は、削除されていない輪郭が存在すると判断した場合（Ｓ５７：Ｎｏ）、ピラミッド段数の増加を引き続き行う。つまりＣＰＵ１０１は、インデックスＬを１増加させて（Ｓ５８）、ステップＳ５４の処理に戻り、ステップＳ５４〜Ｓ５８の処理を繰り返す。
【０１１３】
ＣＰＵ１０１は、すべての輪郭が削除されたと判断した場合（Ｓ５７：Ｙｅｓ）、ピラミッド段数の増加を終了し、Ｌをピラミッド段数Ｌｍａｘに決定して（Ｓ５９）、第１ピラミッド２２００の生成を終了する。以上の処理により生成された１段目からＬｍａｘ段目までの輪郭集合を含むデータ構造が第１ピラミッド２２００である。
【０１１４】
つまりＣＰＵ１０１は、元の基準画像であるパターン画像２１０から抽出した１つ以上の輪郭からなる輪郭集合の画像を特徴画像として含むテンプレート画像候補を、解像度を異ならせて複数生成する。
【０１１５】
そして、ＣＰＵ１０１は、生成したテンプレート画像候補に含まれる輪郭のうち閾値以下の大きさの輪郭を削除して新たなテンプレート画像候補とする。そして、ＣＰＵ１０１は、新たなテンプレート画像候補において少なくとも１つの輪郭が残っているテンプレート画像候補を、第１ピラミッド２２００を構成するテンプレート画像に設定する。
【０１１６】
図１６の例では、第１ピラミッド２２００のピラミッド段数Ｌｍａｘが４で、１段目の輪郭２１１Ａと輪郭２１１Ｂと輪郭２１１Ｃそれぞれのピラミッド段数が４段と３段と２段である場合の例を示している。
【０１１７】
まず、テンプレート画像２１２について説明すると、低解像度に変換していない元のサイズの画像であるテンプレート画像候補２１２に含まれる輪郭２１１Ａ，２１１Ｂ，２１１Ｃで囲まれた部分の面積は、閾値を上回るのを前提としている。したがって、第３実施形態では、閾値判断をするまでもなく、各輪郭２１１Ａ〜２１１Ｃの大きさは閾値を上回るため、テンプレート画像候補２１２については、輪郭を削除することなく、第１ピラミッド２２００を構成するテンプレート画像２１２となる。
【０１１８】
次に、テンプレート画像２１２を低解像度変換したテンプレート画像候補２２２については、閾値判断の結果、含まれている輪郭２２１Ａ，２２１Ｂ，２２１Ｃのいずれも閾値を上回る大きさであり、輪郭を削除することなく、テンプレート画像２２２となる。
【０１１９】
次に、テンプレート画像２２２を低解像度変換したテンプレート画像候補については、含まれている３つの輪郭のうち、最小の輪郭が閾値以下の大きさとなるので削除されて新たなテンプレート画像候補２２３２が生成される。そして、当該テンプレート画像候補２２３２には、輪郭２３１Ａ，２３１Ｂからなる輪郭集合２２３１が残っているので、第１ピラミッド２２００を構成するテンプレート画像２２３２に設定される。
【０１２０】
次に、テンプレート画像２２３２を低解像度変換したテンプレート画像候補については、含まれている２つの輪郭のうち、最小の輪郭が閾値以下の大きさとなるので削除されて新たなテンプレート画像候補２２４２が生成される。そして、当該テンプレート画像候補２２４２には、１つの輪郭２４１Ａからなる輪郭集合２２４１が残っているので、第１ピラミッド２２００を構成するテンプレート画像２２４２に設定される。
【０１２１】
次に、テンプレート画像２２４２を低解像度変換したテンプレート画像候補については、含まれている１つの輪郭が閾値以下の大きさとなるので削除されて新たなテンプレート画像候補２２５２が生成される。そして、当該テンプレート画像候補２２５２には、輪郭が全て削除されているので、第１ピラミッド２２００を構成するテンプレート画像には設定されず、第１ピラミッド２２００の生成が終了する。
【０１２２】
なお、第２ピラミッドの生成については、上記第１実施形態と同様に図５の処理フローチャートに従って生成すればよい。第２ピラミッドのピラミッド段数は第１ピラミッドの段数と同じにＬｍａｘなるように生成する。また、第１ピラミッドと第２ピラミッドを使用して対象画像上のパターン位置を探索する方法については、上記第１実施形態と同様に図７の処理フローチャートに従って生成すればよい。
【０１２３】
以上、第３実施形態では、ＣＰＵ１０１は、テンプレート画像候補を、解像度を異ならせて複数生成する。そして、ＣＰＵ１０１は、生成したテンプレート画像候補に含まれる輪郭のうち閾値以下の大きさの輪郭を削除して新たなテンプレート画像候補とする。そして、ＣＰＵ１０１は、新たなテンプレート画像候補において少なくとも１つの輪郭が残っているテンプレート画像候補を、第１ピラミッド２２００を構成するテンプレート画像に設定する。
【０１２４】
このように、ＣＰＵ１０１は、第１ピラミッド２２００において各テンプレート画像２１２，２２２，２２３２，２２４２に含まれる輪郭の大きさ（特徴画像の大きさ）が閾値を下回らないように、第１ピラミッド２２００の段数を設定する。よって、第１ピラミッド２２００を構成する各テンプレート画像２１２，２２２，２２３２，２２４２に含まれる特徴画像（輪郭）は潰れていない。したがって、ピラミッド途中段の探索で正解を見落とす可能性が低くなり、粗密探索法によるテンプレートマッチングにおいて探索精度が向上する。
【０１２５】
なお、第３実施形態では、各輪郭の大きさとして、各輪郭で囲まれる図形の面積の例を示したが、これに限定されない。各輪郭の外接矩形（外接図形）の面積や、幅と高さを大きさの基準として使用してもよい。さらに各輪郭の長さを各輪郭の大きさの基準として使用してもよい。
【０１２６】
これにより、例えば輪郭が閉じた形状ではない場合等、輪郭の面積を算出することができない場合であっても、輪郭の大きさを算出することができる。
【０１２７】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【０１２８】
上記実施形態の各処理動作は具体的にはＣＰＵ１０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を画像処理装置１００に供給し、画像処理装置１００を構成するコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１２９】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ１０４であり、ＨＤＤ１０４にプログラム１２０が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図１に示すＲＯＭ１０２、記録ディスク１２１、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１３０】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１３１】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１３３】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１３４】
１００…画像処理装置、１２０…プログラム、２００…第１ピラミッド、２１２，２２２，２３２，２４２…テンプレート画像、７００…第２ピラミッド、７１１，７２１，７３１，７４１…探索対象画像
【図１】
0006422250.tif 000004
【図２】
0006422250.tif 000005
【図３】
0006422250.tif 000006
【図４】
0006422250.tif 000007
【図５】
0006422250.tif 000008
【図６】
0006422250.tif 000009
【図７】
0006422250.tif 000010
【図８】
0006422250.tif 000011
【図９】
0006422250.tif 000012
【図１０】
0006422250.tif 000013
【図１１】
0006422250.tif 000014
【図１２】
0006422250.tif 000015
【図１３】
0006422250.tif 000016
【図１４】
0006422250.tif 000017
【図１５】
0006422250.tif 000018
【図１６】
0006422250.tif 000019