(57)【特許請求の範囲】
【請求項１】
解像度の異なる複数のテンプレート画像を解像度順に階層化した第１ピラミッドと、前記第１ピラミッドにおけるテンプレート画像と同じ解像度であって、解像度の異なる複数の被探索画像を解像度順に階層化した第２ピラミッドとを用いて、画像処理装置が行う画像処理により、同解像度の階層において前記第１ピラミッドのテンプレート画像に含まれる特徴画像を前記第２ピラミッドの被探索画像の中から、類似度の判定により探索する処理を解像度の低い順から行う画像処理方法において、
前記特徴画像がエッジ抽出処理により抽出されたエッジ点の集合であり、
前記被探索画像が前記エッジ抽出処理により抽出されたエッジ点の集合を含む画像であり、
前記特徴画像のエッジ点と、前記被探索画像における前記特徴画像のエッジ点に対応する位置のエッジ点との局所類似度をそれぞれ計算する局所類似度計算工程と、
前記局所類似度計算工程にて計算した前記各局所類似度を合計して正規化することにより前記類似度を計算する類似度計算工程と、を備え、
前記局所類似度計算工程では、
前記特徴画像のエッジ点におけるエッジ方向と、前記被探索画像中、前記特徴画像のエッジ点に対応する位置のエッジ点におけるエッジ方向とのなす角の角度が所定角度以下の場合は、前記角度の余弦を求めることで前記局所類似度を計算し、前記角度が前記所定角度を上回る場合は、前記角度の余弦よりも絶対値が小さい値を前記局所類似度にすることを特徴とする画像処理方法。
【請求項２】
前記所定角度が９０°であることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記局所類似度計算工程では、前記角度が前記所定角度を上回る場合は、前記局所類似度を０にすることを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記局所類似度計算工程では、前記角度が前記所定角度を上回る場合は、前記角度の余弦に対して絶対値が１よりも低い係数を乗算することで前記局所類似度を計算することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項５】
前記係数が、−０．１以上０．１以下であることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記係数が０であることを特徴とする請求項４又は５に記載の画像処理方法。
【請求項７】
解像度の異なる複数のテンプレート画像を解像度順に階層化した第１ピラミッドと、前記第１ピラミッドにおけるテンプレート画像と同じ解像度であって、解像度の異なる複数の被探索画像を解像度順に階層化した第２ピラミッドとを用いて、画像処理装置が行う画像処理により、同解像度の階層において前記第１ピラミッドのテンプレート画像に含まれる特徴画像を前記第２ピラミッドの被探索画像の中から、類似度の判定により探索する処理を解像度の低い順から行う画像処理方法において、
前記特徴画像がエッジ抽出処理により抽出されたエッジ点の集合であり、
前記被探索画像が前記エッジ抽出処理により抽出されたエッジ点の集合を含む画像であり、
前記エッジ点におけるエッジ強度がベクトルで表され、
前記特徴画像のエッジ点と、前記被探索画像における前記特徴画像のエッジ点に対応する位置のエッジ点との局所類似度をそれぞれ計算する局所類似度計算工程と、
前記局所類似度計算工程にて計算した前記各局所類似度を合計して正規化することにより前記類似度を計算する類似度計算工程と、を備え、
前記局所類似度計算工程では、
前記特徴画像のエッジ点におけるエッジ強度の第１ベクトルと、前記被探索画像中、前記特徴画像のエッジ点に対応する位置のエッジ点におけるエッジ強度の第２ベクトルとの内積を計算し、前記内積が設定値以上の場合は、前記第１ベクトルの大きさと前記第２ベクトルの大きさとを乗算した乗算値で前記内積を除算することで前記局所類似度を計算し、前記内積が前記設定値を下回る場合は、前記第１ベクトルの大きさと前記第２ベクトルの大きさとを乗算した乗算値で前記内積を除算した値よりも絶対値が小さい値を、前記局所類似度にすることを特徴とする画像処理方法。
【請求項８】
前記設定値が０であることを特徴とする請求項７のいずれか１項に記載の画像処理方法。
【請求項９】
前記局所類似度計算工程では、前記内積が前記設定値を下回る場合は、前記局所類似度を０にすることを特徴とする請求項７又は８に記載の画像処理方法。
【請求項１０】
前記局所類似度計算工程では、前記内積が前記設定値を下回る場合は、前記第１ベクトルの大きさと前記第２ベクトルの大きさとを乗算した乗算値で前記内積を除算し、更に、絶対値が１よりも小さい係数を乗算することで前記局所類似度を計算することを特徴とする請求項７又は８に記載の画像処理方法。
【請求項１１】
前記係数が、−０．１以上０．１以下であることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記係数が０であることを特徴とする請求項１０又は１１に記載の画像処理方法。
【請求項１３】
前記第１ピラミッドの前記複数のテンプレート画像は、参照物を撮像して得られた撮像画像に対してエッジ抽出処理を施して得られた画像と、該画像に対して縮小処理を施すことで得られた縮小画像と、で構成されていることを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理方法。
【請求項１４】
前記第１ピラミッドの前記複数のテンプレート画像は、参照物を撮像して得られた撮像画像と、該撮像画像に対して縮小処理を施して得られた縮小画像とで、解像度の異なる複数の画像を構成し、該複数の画像に対してエッジ抽出処理を施して生成されていることを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理方法。
【請求項１５】
前記第２ピラミッドの前記複数の被探索画像は、対象物を撮像して得られた撮像画像に対してエッジ抽出処理を施して得られた画像と、該画像に対して縮小処理を施すことで得られた縮小画像と、で構成されていることを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理方法。
【請求項１６】
前記第２ピラミッドの前記複数の被探索画像は、対象物を撮像して得られた撮像画像と、該撮像画像に対して縮小処理を施して得られた縮小画像とで、解像度の異なる複数の画像を構成し、該複数の画像に対してエッジ抽出処理を施して生成されていることを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理方法。
【請求項１７】
請求項１乃至１６のいずれか１項に記載の画像処理方法の各工程を実行する画像処理装置。
【請求項１８】
コンピュータに、請求項１乃至１６のいずれか１項に記載の画像処理方法の各工程を実行させるためのプログラム。
【請求項１９】
請求項１８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
ロボットと、請求項１７に記載の画像処理装置と、前記画像処理装置による画像処理の結果に基づき、前記ロボットを制御するロボット制御装置と、を備えた生産装置。
【請求項２１】
対象物を撮像する撮像工程と、
請求項１乃至１６のいずれか１項に記載の画像処理方法により認識された対象物を、被組み付け部材に組付ける組付け工程と、を備えた組立部品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターンマッチングを行う画像処理方法、画像処理装置、プログラム、記録媒体、生産装置、及び組立部品の製造方法に関する。
【背景技術】
【０００２】
画像処理の分野において、検出対象物の位置を検出する方法として、パターンマッチングがよく知られている。
【０００３】
従来の基本的なパターンマッチング方法について説明する。まずパターンマッチングを行うためには、検出対象となる物体の参照情報が必要になる。参照情報は一般的には、モデルまたはテンプレートと呼ばれ、理想状態の対象物（参照物）を撮像した参照画像を用意する。参照画像から検出対象物付近の領域のみを切り出し、モデルまたはテンプレートとする。そして、実際の物体検出工程では、物体を撮像して被探索画像を取得し、被探索画像の各位置でモデルまたはテンプレートとの類似度を計算していく。最も類似度の高かった画像の位置を検出位置とする方法である。つまり、被探索画像の中からテンプレートと最も類似している位置を検出する方法である。また、このパターンマッチングは、計算コストが大きいため、処理時間が遅い。そこで、処理を高速化するため、一般的にピラミッド探索が行われる。
【０００４】
ピラミッド探索とは、画像を段階的に縮小していき、まずは最も縮小した画像に対して、パターンマッチングを行う。そして、縮小画像で認識した対象物の位置周辺のみを次の縮小率の画像で探索を行う。この探索方法を縮小を行っていない画像まで繰り返すことにより、処理を高速化しながら、精度も保つことができる。
【０００５】
前述した類似度の計算方法は、複数の方法が知られており、輝度値差分法（ＳＡＤ）、正規化相関法（ＮＣＣ）、形状パターンマッチングなどが知られている。形状パターンマッチングは、その中でも照明変化、物体の隠れ、欠けにも強く、ロバストな手法である。この形状パターンマッチングは、テンプレートと被探索画像の形状特徴を利用して、類似度を計算していく。このため形状パターンマッチングでは、画像に対する形状特徴を抽出する必要がある。
【０００６】
形状特徴を抽出する方法として、一般的にＳｏｂｅｌフィルタやＣａｎｎｙフィルタ等のエッジ抽出方法が知られている。エッジ抽出により各エッジ点に対して、位置座標、輝度の勾配方向、輝度の勾配強度等の情報を得ることができる。そして、テンプレートと被探索画像の各エッジ点の勾配方向（以下、エッジ方向）を比較しながら、パターンマッチングを行っていく。テンプレートと被探索画像の各エッジ方向の差が小さければ、同一の形状特徴を持っているとして類似度が高くなり、差が大きければ類似度が低くなる。つまり、テンプレートと同様のエッジ位置座標で、同様のエッジ方向を持ったものを被探索画像の中から探し出す方法である。
【０００７】
しかし、検出対象物は、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等により、エッジ方向が部分的に変化する可能性がある。このような場合は、上述したようなエッジ方向の比較により、パターンマッチングを行うと類似度の低下が著しくなり、被探索物を認識ミスする問題が起こる。
【０００８】
そこで、特許文献１に記載の方法では、部分的にエッジ方向が１８０°近く反転している場合は、類似度を高くする方法が提案されている。つまり、エッジ方向の極性を無視して、類似度を算出することにより上記問題が発生した場合でも認識ミスすることなく、パターンマッチングを行うことができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１５７５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１のパターンマッチング方法では、エッジ方向の極性を反転させて類似度を高くしているので、対象物以外の位置の類似度が高くなってしまう傾向がある。ピラミッド探索を行う際、縮小画像に対する途中段の探索では、ある程度類似度（スコア）の高い位置は、マッチング候補点として、次の段の探索を行うために残しておかなければならない。解像度が低い画像では、認識ミスする可能性が高いためである。そのため、特許文献１のパターンマッチング方法では、ピラミッド探索の最初や途中段の探索で多くのマッチング候補点が取れてしまうため、処理時間が遅くなってしまう。
【００１１】
そこで、本発明は、被探索物（対象物）を撮像した画像について、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等により、エッジ方向が部分的に反転した場合でも、認識ミスを防止しつつ処理時間を短縮化することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の画像処理方法は、解像度の異なる複数のテンプレート画像を解像度順に階層化した第１ピラミッドと、前記第１ピラミッドにおけるテンプレート画像と同じ解像度であって、解像度の異なる複数の被探索画像を解像度順に階層化した第２ピラミッドとを用いて、画像処理装置が行う画像処理により、同解像度の階層において前記第１ピラミッドのテンプレート画像に含まれる特徴画像を前記第２ピラミッドの被探索画像の中から、類似度の判定により探索する処理を解像度の低い順から行う画像処理方法において、前記特徴画像がエッジ抽出処理により抽出されたエッジ点の集合であり、前記被探索画像が前記エッジ抽出処理により抽出されたエッジ点の集合を含む画像であり、前記特徴画像のエッジ点と、前記被探索画像における前記特徴画像のエッジ点に対応する位置のエッジ点との局所類似度をそれぞれ計算する局所類似度計算工程と、前記局所類似度計算工程にて計算した前記各局所類似度を合計して正規化することにより前記類似度を計算する類似度計算工程と、を備え、前記局所類似度計算工程では、前記特徴画像のエッジ点におけるエッジ方向と、前記被探索画像中、前記特徴画像のエッジ点に対応する位置のエッジ点におけるエッジ方向とのなす角の角度が所定角度以下の場合は、前記角度の余弦を求めることで前記局所類似度を計算し、前記角度が前記所定角度を上回る場合は、前記角度の余弦よりも絶対値が小さい値を前記局所類似度にすることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、被探索物（対象物）を撮像した画像について、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等により、エッジ方向が部分的に反転した場合でも、認識ミスを防止しつつ処理時間を短縮化することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る生産装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態に係る画像処理装置の構成を示すブロック図である。
【図３】本発明の第１実施形態に係る画像処理方法における第１ピラミッドの作成方法を示すフローチャートである。
【図４】モデル画像に対してエッジ抽出処理を行う動作を説明するための図である。
【図５】特徴画像を含むテンプレート画像を説明するための図である。
【図６】テンプレート画像を縮小して１つ上の段のテンプレート画像を生成する際の説明図である。
【図７】生成した第１ピラミッドを説明するための図である。
【図８】本発明の第１実施形態に係る画像処理方法における探索処理を示すフローチャートである。
【図９】本発明の第１実施形態に係る画像処理方法におけるパターンマッチング処理を示すフローチャートである。
【図１０】本発明の第１実施形態に係る画像処理方法におけるパターンマッチング処理を示すフローチャートである。
【図１１】パターンマッチング処理を説明するための図である。
【図１２】本発明の第１実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１３】本発明の第２実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１４】本発明の第３実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１５】本発明の第４実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１６】本発明の第５実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１７】本発明の第６実施形態に係る画像処理方法におけるスコア計算処理を示すフローチャートである。
【図１８】本発明の第７実施形態に係る画像処理方法における第１ピラミッドの作成方法を示すフローチャートである。
【図１９】本発明の第７実施形態に係る画像処理方法における探索処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１６】
［第１実施形態］
図１は、本発明の第１実施形態に係る生産装置の概略構成を示す説明図である。図１に示す生産装置１００は、ワーク（対象物）Ｗ１をワーク（被組み付け部材）Ｗ２に組付けて組立部品Ｗを製造する製造方法を実行するものである。生産装置１００は、ロボット２００と、ロボット２００に取り付けられた撮像装置としてのカメラ５００と、カメラ５００と有線又は無線で通信を行うように構成された画像処理装置３００と、を備えている。また、生産装置１００は、ロボット２００及び画像処理装置３００にケーブル等で接続されたロボット制御装置４００を備えている。
【００１７】
ロボット２００は、例えば垂直多関節型のロボットアーム２０１と、エンドエフェクタであるロボットハンド２０２と、を有している。ロボットアーム２０１は、複数のリンクが複数の関節で旋回又は回転可能に連結されて構成されている。ロボットアーム２０１の基端（基端リンク、ベース部ともいう）が基台Ｂの上面に固定されている。ロボットアーム２０１の先端（先端リンク）には、ロボットハンド２０２が取り付けられている。ロボットハンド２０２は、複数のフィンガを有し、ワーク（対象物）Ｗ１を把持又は把持解放することができる。
【００１８】
カメラ５００はデジタルカメラであり、例えばＣＣＤ（Charge  Coupled  Device）イメージセンサやＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）イメージセンサ等の撮像素子を有する。
【００１９】
画像処理装置３００は、カメラ５００の撮像動作（例えば撮像タイミングやシャッタースピード等）を制御し、カメラ５００から撮像画像を取得する。また、画像処理装置３００は、画像（デジタルデータ）に対して画像処理を施し、その結果をロボット制御装置４００に出力する。具体的には、画像処理装置３００は、パターンマッチング処理を行い、その結果をロボット制御装置４００に出力する。ロボット制御装置４００は、画像処理装置３００による画像処理の結果に基づき、ロボット２００の動作を制御する。
【００２０】
図２は、本発明の第１実施形態に係る画像処理装置３００の構成を示すブロック図である。図２に示すように、画像処理装置３００は、画像処理、具体的にはパターンマッチング処理を行うものであり、コンピュータで構成されている。画像処理装置３００は、演算部（制御部）としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、画像処理装置３００は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、画像処理装置３００は、記録ディスクドライブ３０５及び各種のインタフェース３１１〜３１５を備えている。
【００２１】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＯＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５及びインタフェース３１１〜３１５が、バス３１０を介して接続されている。
【００２２】
ＲＯＭ３０２には、ＢＩＯＳ等の起動プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ３０４には、プログラム３２１が格納（記録）されている。そして、ＣＰＵ３０１がプログラム３２１を読み出して実行することにより、後述する画像処理方法の各工程を実行する。記録ディスクドライブ３０５は、記録ディスク３２２に記録された各種データやプログラム等を読み出すことができる。
【００２３】
インタフェース３１１には、ロボット制御装置４００が接続されている。ＣＰＵ３０１は、バス３１０及びインタフェース３１１を介して画像処理結果をロボット制御装置４００に送信する。
【００２４】
インタフェース３１２には、カメラ５００が接続されている。ＣＰＵ３０１は、バス３１０及びインタフェース３１２を介して、トリガ信号等の制御信号をカメラ５００に送信する。そして、ＣＰＵ３０１は、カメラ５００からの画像信号をバス３１０及びインタフェース３１２を介して取得する。取得した画像データは、ＣＰＵ３０１の制御の下、ＨＤＤ３０４や外部記憶装置８００等の記憶装置に格納する。
【００２５】
インタフェース３１３には、マウスやキーボード等、作業者が操作して、操作に応じた指令をＣＰＵ３０１に送信する入力装置６００が接続されている。インタフェース３１４には、画像を表示するディスプレイ等の表示装置７００が接続されている。インタフェース３１５には、ＵＳＢメモリ等の書き換え可能な不揮発性メモリ、或いは外付けＨＤＤ等の外部記憶装置８００が接続されている。
【００２６】
以下、画像処理装置３００によるパターンマッチング方法（画像処理方法）について説明する。画像処理装置３００のＣＰＵ３０１は、プログラム３２１をＨＤＤ３０４から読み出して実行することにより、以下に説明する画像処理方法の各工程を実行する。まず、パターンマッチング処理を行うための第１ピラミッド（形状モデル）の作成方法について説明する。
【００２７】
図３は、本発明の第１実施形態に係る画像処理装置３００が実行する画像処理方法における第１ピラミッド（形状モデル）の作成方法を示すフローチャートである。
【００２８】
まず、オペレータ（作業者）は、パターンマッチング用のモデル画像を用意するために理想状態の照明条件、位置に参照物をセットする。ＣＰＵ３０１は、カメラ５００に参照物の撮像を行わせ、参照物が写り込んだ参照画像である画像データをカメラ５００から取得する（Ｓ１）。なお、参照画像は、予めＨＤＤ３０４や外部記憶装置８００等の記憶装置に格納されていてもよく、その場合は、ＣＰＵ３０１は、ＨＤＤ３０４や外部記憶装置８００等の記憶装置から、参照画像のデータを取得することとなる。
【００２９】
ＣＰＵ３０１は、参照画像を表示装置７００に表示させ、オペレータにより指定された、参照物（参照対象物体）が写り込んだ部分を包含する矩形領域（モデル画像）を切り出して設定する（Ｓ２）。指定の方法は、マウス等の入力装置６００を利用し、表示装置７００に表示された参照画像内の参照物が写り込んだ画像を包含する領域の左上と右下の２点をクリックすることにより行う。ＣＰＵ３０１は、ステップＳ２では、モデル画像として、クリックされた２点の位置（矩形領域の左上、右下の角の点）を指定し、参照画像から矩形領域のみを切り出して設定する。
【００３０】
ＣＰＵ３０１は、ステップＳ２で設定したモデル画像において、画素毎にエッジ強度とエッジ方向を算出する。エッジ強度とは、コントラストの大きさ（輝度の変化の急峻さ）を表し、注目画素に対し隣接する画素のコントラストが大きければエッジ強度も大きくなる。エッジ方向とは、コントラストの方向を表し、注目画素のエッジ強度が最も大きくなる方向（角度）を示す。エッジ強度の算出には、ｘ軸方向（画像の横軸方向）、ｙ軸方向（画像の縦軸方向）のソーベルフィルタを使用する。
【００３１】
図４は、モデル画像に対してエッジ抽出処理を行う動作を説明するための図である。ＣＰＵ３０１は、モデル画像Ｉｍ中の注目画素Ｃで、まずｘ軸方向のエッジ強度Ｅｘとｙ軸方向のエッジ強度Ｅｙを算出する。エッジ強度のベクトルは、（Ｅｘ，Ｅｙ）で表される。
【００３２】
そして、ＣＰＵ３０１は、注目画素Ｃのエッジ強度Ｅを、各軸の強度Ｅｘ，Ｅｙの二乗和の平方根、即ち以下の式（１）で算出する。
【００３３】
【数１】
0006406900.tif 000002
【００３４】
また、ＣＰＵ３０１は、エッジ方向θを以下の式（２）により算出する。
【００３５】
【数２】
0006406900.tif 000003
【００３６】
ＣＰＵ３０１は、上記方法によりモデル画像の全画素のエッジ強度とエッジ方向を算出する。そして、ＣＰＵ３０１は、エッジ強度がある一定の閾値以上の画素をエッジ特徴（エッジ点）として抽出し、複数のエッジ点の集合である特徴画像（エッジ特徴画像）を含むテンプレート画像を生成する（Ｓ３）。
【００３７】
図５は、特徴画像を含むテンプレート画像を説明するための図である。図５では、テンプレート画像ＩＴにおいて、エッジ特徴（エッジ点）を示す有効画素を黒、それ以外の無効画素を白で表現している。
【００３８】
特徴画像のデータ保持方法は、画像の画素毎に２チャンネルのデータ領域を持っておき、図５に示すように、エッジ特徴として抽出された画素Ｃ１は有効画素として、１チャンネル目にエッジ強度、２チャンネル目にエッジ方向の情報を入れておく。エッジ特徴ではないと判断された画素Ｃ２には無効値（例えば０）を入れておく。これらエッジ点を示す画素Ｃ１の集合ΣＣが、特徴画像である。
【００３９】
なお、エッジ強度のみを記憶したエッジ強度画像、エッジ方向のみを記憶したエッジ方向画像の２画像を１組とした特徴画像として記憶してもよい。また、本実施形態では、エッジ強度の算出にソーベルフィルタを使用しているが、キャニーフィルタ等の一般的に知られたエッジ抽出フィルタを使用してもよい。
【００４０】
以上のように、ステップＳ３では、ＣＰＵ３０１は、モデル画像をエッジ抽出処理して得られた、特徴画像を含むテンプレート画像を生成し、特徴画像を含むテンプレート画像を、第１ピラミッド（形状モデル）の最下段に設定する。
【００４１】
次に、ＣＰＵ３０１は、ステップＳ３で抽出した特徴画像を含むテンプレート画像を、段階的に縮小していき（Ｓ４）、ピラミッド探索のための途中段及び最上段のテンプレート画像を作成する。
【００４２】
図６は、テンプレート画像ＩＴ１を縮小して第１ピラミッドにおける１つ上の段のテンプレート画像ＩＴ２を生成する際の説明図である。まず、図６に示すように、テンプレート画像ＩＴ１の左上端から２×２画素の矩形領域Ｒ１を設定する。
【００４３】
次にエッジ特徴（エッジ点）をエッジベクトルとして考え、２×２画素内の矩形領域Ｒ１に２つ以上のエッジベクトルが存在する場合は、ベクトル合成により２×２画素内の矩形領域Ｒ１のエッジ特徴から一つの合成ベクトルを算出する。エッジベクトルとは、エッジ特徴であるエッジ強度をベクトルの大きさ、エッジ方向をベクトルの向きとして捉え、ベクトル合成を行う。具体的には、合成後のベクトルの大きさのＸ軸方向成分Ｅｘは、式（３）、Ｙ軸方向成分Ｅｙは式（４）で算出できる。なお、式（３）、（４）中、ｅ１〜ｅ４は２×２画素内の４つのエッジベクトルの大きさを、θ１〜θ４は方向を表す。ＣＰＵ３０１は、合成後のベクトルの大きさをＥｘ、Ｅｙより式（５）で算出する。また、ＣＰＵ３０１は、合成後のベクトルの方向θを、同じくＥｘ、Ｅｙより式（６）で算出する。
【００４４】
【数３】
0006406900.tif 000004
【００４５】
２×２画素から算出したエッジ合成ベクトルの結果をテンプレート画像ＩＴ２における特徴画像（縮小エッジ特徴画像）の１画素とする。ＣＰＵ３０１は、テンプレート画像ＩＴ１における特徴画像全画素分の縮小処理を上記方法により行い、テンプレート画像ＩＴ２（縮小画像）を生成する（Ｓ４）。
【００４６】
次に、ＣＰＵ３０１は、指定ピラミッド段数分のテンプレート画像を作成したか否かを判断する（Ｓ５）。ＣＰＵ３０１は、ステップＳ４での縮小処理を所定の回数行っていなければ（Ｓ５：Ｎｏ）ステップＳ４に戻り、前回縮小したテンプレート画像に対して、同様の縮小方法により再縮小を行う。ＣＰＵ３０１は、所定回数を終えていれば（Ｓ５：Ｙｅｓ）、特徴画像縮小工程は完了となる。
【００４７】
図７は、生成した第１ピラミッド（形状モデル）を説明するための図である。図７に示すように、３回繰り返し、合計４つの異なる解像度の特徴画像を含むテンプレート画像ＩＴ１〜ＩＴ４を生成する。縮小を行う回数は作業者が第１ピラミッドの段数として、指定することができる。一般的に解像度が大きな画像や、モデルのエッジ特徴が大きく、ノイズとなるようなエッジが少ない場合には、この指定ピラミッド段数を大きくでき、逆の場合は小さくしなければならない。
【００４８】
以上のステップＳ１〜Ｓ５で作成した特徴画像を含む、互いに解像度が異なる複数のテンプレート画像を解像度順に階層化した第１ピラミッド（形状モデル）が形成される。つまり、第１ピラミッドの複数のテンプレート画像は、参照物を撮像して得られた撮像画像に対してエッジ抽出処理を施して得られた画像と、この画像に対して縮小処理を施すことで得られた縮小画像と、で構成されている。このように形成された第１ピラミッドは、ＨＤＤ３０４や外部記憶装置８００等の記憶装置に記憶される。
【００４９】
次にステップＳ１〜Ｓ５で作成した第１ピラミッドを使用し、実際に物体の検出を行う探索処理のフローについて説明する。図８は、本発明の第１実施形態に係る画像処理装置が実行する画像処理方法の探索処理を示すフローチャートである。
【００５０】
まず、ＣＰＵ３０１は、第１ピラミッド（形状モデル）のデータが格納されているＨＤＤ３０４や外部記憶装置８００等の記憶装置から、形状モデルのデータを入力する（Ｓ６）。
【００５１】
次に、ＣＰＵ３０１は、第１ピラミッドにおけるテンプレート画像と同じ解像度であって、解像度の異なる複数の被探索画像を解像度順に階層化した第２ピラミッドを生成する。
【００５２】
以下、具体的に説明すると、まず、ＣＰＵ３０１は、検出の対象物をカメラ５００により撮像させ、カメラ５００の撮像により得られた撮像画像を入力する（Ｓ７：撮像工程）。
【００５３】
次に、ＣＰＵ３０１は、ステップＳ７で入力した撮像画像に対し、モデル作成工程時のエッジ抽出処理（Ｓ３）と同様のエッジ抽出処理により、エッジ特徴を抽出し、特徴画像（エッジ点の集合）を含む被探索画像を生成する（Ｓ８）。
【００５４】
次に、ＣＰＵ３０１は、ステップＳ８で生成した被探索画像中の特徴画像に対して、モデル作成時のエッジ画像縮小（ステップＳ４，Ｓ５）と同様の縮小処理により、被探索画像を作業者が指定した回数分縮小する（Ｓ９，Ｓ１０）。
【００５５】
以上のステップＳ７〜Ｓ１０の動作で、対象物を撮像して得られた撮像画像に対してエッジ抽出処理を施して得られた画像と、この画像に対して縮小処理を施すことで得られた縮小画像とで構成されている第２ピラミッドが生成される。
【００５６】
次に、ＣＰＵ３０１は、第１及び第２ピラミッドを用いて、同解像度の階層において第１ピラミッドのテンプレート画像に含まれる特徴画像を第２ピラミッドの被探索画像の中から、類似度の判定により探索するパターンマッチング処理を行う（Ｓ１１）。
【００５７】
最初は、最も縮小率の大きい特徴画像同士で行い、完了すれば次の縮小率の画像でパターンマッチングを行う。最後に縮小を行っていない画像まで完了したら終了となる（Ｓ１２）。このように、パターンマッチング処理は、解像度の低い階層から順に行う。即ち、パターンマッチング処理は、解像度が最も低い最上段から下位の段に順に解像度が最も高い最下段まで行う。
【００５８】
各縮小率の画像同士でパターンマッチングを行っていくことをピラミッド探索と呼び、縮小を行っていない画像をピラミッド１段目（最下段）として、最も縮小率の大きい画像をピラミッド最上段の画像と呼ぶ。
【００５９】
ＣＰＵ３０１は、ステップＳ１１，Ｓ１２により認識された結果をロボット制御装置４００に出力する。ロボット制御装置４００は、ロボット２００を制御して、認識された対象物であるワークＷ１を、被組み付け部材であるワークＷ２に組付ける組付け工程を実行する。これにより、組立部品Ｗが製造される。
【００６０】
次に、ステップＳ１１のパターンマッチングの詳細を説明する。図９及び図１０は、本発明の第１実施形態に係る画像処理装置が実行する画像処理方法におけるパターンマッチング処理を示すフローチャートである。なお、図９は、ピラミッド最上段でのパターンマッチング処理を、図１０は、ピラミッド途中段から最下段までのパターンマッチング処理を示している。図１１は、パターンマッチング処理を説明するための図である。図１１に示すように、テンプレート画像ＩＴを、被探索画像ＩＳ内でピクセル単位でＸ，Ｙ軸方向に範囲をずらしながら、被探索画像ＩＳからテンプレート画像ＩＴと同じ大きさの画像ＩＩを抽出する。
【００６１】
ＣＰＵ３０１は、抽出した画像ＩＩとテンプレート画像ＩＴとの類似度Ｒを求める、スコア計算を行う（Ｓ１３）。
【００６２】
次に、ＣＰＵ３０１は、スコア計算の結果、スコア（類似度Ｒ）が、閾値以上であるか否かを判断する（Ｓ１４）。
【００６３】
ＣＰＵ３０１は、スコアが閾値以上であると判断した場合（Ｓ１４：Ｙｅｓ）、画像ＩＩを抽出した位置（ｉ，ｊ）と回転角（度）をマッチング候補点とする（Ｓ１５）。このマッチング候補点は、ＨＤＤ３０４や外部記憶装置８００等の記憶装置に記憶させる。なお、ＣＰＵ３０１は、スコアが閾値を下回ると判断した場合（Ｓ１４：Ｎｏ）、マッチング候補点なしとして、そのまま次のステップＳ１６の処理に移行する。
【００６４】
ＣＰＵ３０１は、全ての探索位置の探索（スコア計算）が完了したか否かを判断する（Ｓ１６）。ＣＰＵ３０１は、全て探索位置でのスコア計算が完了していなければ（Ｓ１６：Ｎｏ）、次の探索位置に（ｉ，ｊ）を進めて（Ｓ１７）、スコア計算を行うステップＳ１３に戻る。そして、探索画像内の全ての探索位置でのスコア計算が完了したら（Ｓ１６：Ｙｅｓ）、ピラミッド最上段での処理を終了となる。
【００６５】
次にピラミッド途中段から最下段までのパターンマッチング処理について、図１０を用いて説明する。まず、ＣＰＵ３０１は、ピラミッドの１つ上段で記憶させたマッチング候補点の１つを選択する（Ｓ１８）。
【００６６】
そして、ＣＰＵ３０１は、記憶されたマッチング位置（ｉ，ｊ）の周辺位置を次のピラミッド段の画像で探索する。ピラミッドを１段下げると（ｉ，ｊ）と対応する位置は座標を２倍した位置（２ｉ，２ｊ）となるため、（２ｉ，２ｊ）を中心とした周辺５×５画素でスコア計算（類似度の計算）を行う（Ｓ１９）。スコア計算方法はステップＳ１３と同様である。
【００６７】
ＣＰＵ３０１は、１つの候補点周辺の５×５画素の範囲内で最もスコアの高かった位置を次のマッチング候補点とする（Ｓ２０，Ｓ２１）。このマッチング候補点は、ＨＤＤ３０４や外部記憶装置８００等の記憶装置に記憶させる。
【００６８】
ＣＰＵ３０１は、５×５画素の探索位置でのスコア計算が終了すれば、次の候補点を選択し、Ｓ１９〜Ｓ２３の処理を行う。ＣＰＵ３０１は、全ての候補点で処理が完了したか否かを判断し（Ｓ２４）、完了すれば（Ｓ２４：Ｙｅｓ）、この段でのパターンマッチングは完了となる。
【００６９】
図８のステップＳ１１〜Ｓ１２で示しているように、上記ピラミッド最上段からピラミッド途中段、最下段までの処理を指定されたピラミッド段数分繰り返す。そして、最下段で最もスコア値の高かった位置（ｉ，ｊ）を、探索画像内の物体の検出位置とする。
【００７０】
次に、図９のステップＳ１３及び図１０のステップＳ１９におけるスコア計算（類似度の計算）の処理について詳細に説明する。
【００７１】
図１２は、本発明の第１実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。
【００７２】
ＣＰＵ３０１は、まず、特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ３０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【００７３】
そして、ＣＰＵ３０１は、ステップＳ３０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ３８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【００７４】
以下、ステップＳ３０，Ｓ３８の動作を概念的に説明する。パターンマッチングで類似度を求める計算式を下記の式（７）を用いる。
【００７５】
【数４】
0006406900.tif 000005
【００７６】
テンプレート画像に含まれる特徴画像中の１つのエッジ点と、被探索画像中、特徴画像の１つのエッジ点と同じ座標の点のエッジ方向差分の余弦（コサイン値）を求めることにより、エッジ点１点の局所スコアが算出される。この処理を、特徴画像中の全てのエッジ点で行うことにより、全エッジ点の局所スコアの総和を算出することができる。この局所スコアの総和をモデルのエッジ点数ｎで割ることにより、最終的なスコア（類似度）として０から１の範囲に正規化することができる。上式（７）の画像内の位置（ｉ，ｊ）とは、図１１に示す被探索画像ＩＳからテンプレート画像ＩＴに対応する大きさの画像を抽出した被探索画像ＩＳ内の位置のことを表し、マッチング候補点を表す。全ての平行移動の範囲でこの類似度Ｒの計算を行う。類似度は０から１で表され、１が最も類似性が高いことを表し、０が最も低いことを表す。
【００７７】
式（７）では、コサイン値に係数αを乗算している。｜θＩｋ−θＴｋ｜≦９０°のときはα＝１であり、｜θＩｋ−θＴｋ｜＞９０°のときは｜α｜＜１（好ましくはα＝０）である。なお、式（７）は、ステップＳ３０，Ｓ３８を概念的に説明したものであり、第１実施形態では、ＣＰＵ３０１がそのまま式（７）を演算する（αの値を場合分けで変更する）ものではないが、ＣＰＵ３０１が式（７）をそのまま演算するものであってもよい。
【００７８】
以下、ステップＳ３０における各局所スコアの演算方法について、具体的に説明する。なお、類似度の演算結果は式（７）と同じになる。
【００７９】
まず、ＣＰＵ３０１は、テンプレート画像中の特徴画像における各エッジ点に、１からｎの通し番号を付与しておき、通し番号１のものから局所スコアを計算すべく、変数ｋを１に設定する（Ｓ３１）。
【００８０】
次に、ＣＰＵ３０１は、特徴画像のエッジ点と、被探索画像における特徴画像のエッジ点に対応する位置の点との仮の局所スコア（仮の局所類似度）ｆｋを計算する（Ｓ３２）。
【００８１】
ここで、特徴画像の通し番号ｋのエッジ点（画素）におけるエッジ方向をθＴｋとする。また、被探索画像中、特徴画像のエッジ点に対応する位置、つまり抽出画像中、通し番号ｋのエッジ点と同じ座標位置の点（画素）のエッジ方向をθＩｋとする。仮の局所スコアは、エッジ方向θＴｋとエッジ方向θＩｋとのなす角の角度｜θＩｋ−θＴｋ｜の余弦を計算することにより求める。即ち、ＣＰＵ３０１は、ステップＳ３２において、以下の式（８）を用いて、仮の局所スコアｆｋを計算する。
【００８２】
【数５】
0006406900.tif 000006
【００８３】
ここで、仮の局所スコアと称しているのは、後の判断処理で、そのまま局所スコアに本決めするか、あるいは仮の局所スコアを補正して局所スコアに本決めするためであり、暫定的な局所スコア（局所類似度）という意味合いで用いている。
【００８４】
次に、ＣＰＵ３０１は、仮の局所スコアｆｋが予め設定された所定値（第１実施形態では、０）を下回るか否かを判断する（Ｓ３３）。ｆｋが０を下回る場合とは、エッジ方向θＴｋとエッジ方向θＩｋとのなす角の角度が９０°を上回る場合である。即ち、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等により、エッジ方向が部分的に変化している場合がある。ステップＳ３３では、被探索画像中、テンプレート画像のエッジ点に対応する点において、エッジ方向が部分的に変化しているかどうかを判断していることになる。
【００８５】
ＣＰＵ３０１は、仮の局所スコアｆｋが所定値（０）を下回ると判断した場合（Ｓ３３：Ｙｅｓ）は、仮の局所スコアｆｋを絶対値が小さくなるように変更して局所スコアとする（Ｓ３４）。
【００８６】
ＣＰＵ３０１は、仮の局所スコアｆｋが所定値以上（０以上）であると判断した場合（Ｓ３３：Ｎｏ）は、仮の局所スコアｆｋを局所スコアに本決めする（Ｓ３５）。つまり、エッジ方向が部分的に変化していないため、そのままのスコア値に本決めする。
【００８７】
エッジ方向が局所的に変化している場合、特にエッジ方向が反転している場合には、その箇所の局所スコアが極端に低く、負の値となることがある。仮に、局所スコアとしてそのままの値を用いると、最終的に求めるスコア値が極端に低くなることがある。
【００８８】
そこで、第１実施形態では、ステップＳ３４において、仮の局所スコアｆｋを絶対値が小さくなるように変更して局所スコアとする。具体的には、仮の局所スコアｆｋに係数αを乗算して、局所スコアの絶対値を小さくする（つまり、局所スコアを０に近づける）補正を行う。但し｜α｜＜０、つまりαは絶対値が１よりも低い係数である。
【００８９】
これにより、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。
【００９０】
特に、局所スコアを０に近づけるためには、係数αを、−０．１以上０．１以下に設定するのが好ましく、更に、係数αを０とすれば、局所スコアを０とすることができる。すなわち、係数αを、−０．１以上０．１以下に設定すれば、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより小さくすることができる。特に係数αを０にすれば、局所スコアが０になるので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【００９１】
このように、ステップＳ３８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。特に、係数αを、−０．１以上０．１以下に設定すればより効果的にパターンマッチング処理が失敗するのを防止でき、係数αを０とすれば、更に効果的にパターンマッチング処理が失敗するのを防止できる。
【００９２】
また、仮の局所スコアが負の値である場合に、正負の符号を変えて、局所スコアに設定することも考えられる。しかしこの場合、最終的に求まるスコア値が高くなりすぎ、結果、マッチング候補点が多数算出されることとなり、以降のピラミッド探索で、多数あるマッチング候補点各々に対して類似度判定を行うことになるため、計算に要する処理時間もかかり効率的でない。
【００９３】
これに対し、第１実施形態では、仮の局所スコアが所定値（０）を下回る場合には、大きさが小さくなるように、仮の局所スコアに係数α（｜α｜＜１）が乗算されるので、最終的に求まるスコア値が高すぎることはない。よって、マッチング候補点の点数が過剰に増加するのを抑制することができるので、計算コストが低減され、処理時間が短縮化され、パターンマッチング処理が高速化する。
【００９４】
特にα＝０の場合、被探索物（対象物）がゴミや汚れの付着、照明の変化、個体差による表面状態の違い等によりエッジ方向が部分的に反転している場合は、その反転部分のスコア値への加算を０とする。そして、反転していない部分のみでスコア値を加算していき、最終的なスコア値が算出される。これにより、被探索物のエッジのエッジ方向が部分的に反転していても、スコア値の低下を最小限に抑えることができる。例えば、被探索画像中、全エッジの２０％のエッジ方向が反転していた場合でも、残りの８０％のエッジによりスコア値を０．８程度まで出すことができる。また、エッジ方向が反転していない部分のエッジのみでスコア値の加算を行っているため、対象物以外の探索位置でスコア値が大きくなることが少なくなる。これにより、ピラミッド探索の最初や途中の段階で、過剰に多くのマッチング候補点が取れることがないため、ピラミッド探索時の計算コストが大きくなりにくく、処理速度の低下を防ぐことができる。
【００９５】
なお、ステップＳ３４では、局所スコアをα×ｆｋを計算することにより求めているが、このような演算を行わずに、局所スコアを０に設定してもよい。この場合、α＝０とする場合と同じ効果を奏するほか、α×ｆｋの演算を行わなくて済むので、計算コストが更に低減され、処理時間が更に短縮化され、パターンマッチング処理が更に高速化する。また、ステップＳ３３では、予め設定される所定値が０である場合について説明したが、０以外の数値であってもよい。
【００９６】
［第２実施形態］
次に、本発明の第２実施形態に係る画像処理装置が行う画像処理方法について説明する。図１３は、本発明の第２実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。以下、第２実施形態において、上記第１実施形態と同様の構成及び処理については、説明を省略する。
【００９７】
即ち、第２実施形態における画像処理装置の構成は、上記第１実施形態における画像処理装置３００と同じである。また、第２実施形態における画像処理装置の画像処理は、スコア計算処理（図１２）以外の処理（図３、図８、図９、図１０に示す処理）については、上記第１実施形態と同様である。第２実施形態では、ＣＰＵ３０１の処理（プログラム３２１）、特にスコア計算処理（類似度計算処理）、具体的には、仮の局所スコア（仮の局所類似度）の計算方法が上記第１実施形態と異なる。
【００９８】
ＣＰＵ３０１は、まず、テンプレート画像中の特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ４０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【００９９】
そして、ＣＰＵ３０１は、ステップＳ４０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ４８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【０１００】
以下、ステップＳ４０，Ｓ４８の動作を概念的に説明する。パターンマッチングで類似度を求める計算式を下記の式（９）を用いる。
【０１０１】
【数６】
0006406900.tif 000007
【０１０２】
テンプレート画像における特徴画像の１点と被探索画像中の１点のｘ軸方向のエッジ強度、ｙ軸方向のエッジ強度、エッジ強度の大きさを使用して、局所スコアを算出することもできる。この処理を、特徴画像中の全てのエッジ点で行うことにより、全エッジ点の局所スコアの総和を算出することができる。この局所スコアの総和をモデルのエッジ点数ｎで割ることにより、最終的なスコア（類似度）として０から１の範囲に正規化することができる。
【０１０３】
特徴画像中、番号ｋのエッジ点におけるエッジ強度のベクトル（ＥｘＴｋ，ＥｙＴｋ）と、被探索画像中、番号ｋのエッジ点に対応する位置の点におけるエッジ強度のベクトル（ＥｘＩｋ，ＥｙＩｋ）との内積はＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋとなる。各ベクトルの大きさは、ＥＩｋ，ＥＴｋである。
【０１０４】
式（９）では、内積を、各ベクトルの大きさの積で除算した結果に係数αを乗算している。ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋ≧０のときはα＝１であり、ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋ＜０のときは｜α｜＜１（好ましくはα＝０）である。なお、式（９）は、ステップＳ４０，Ｓ４８を概念的に説明したものであり、第２実施形態では、ＣＰＵ３０１がそのまま式（９）を演算する（αの値を場合分けで変更する）ものではないが、ＣＰＵ３０１が式（９）をそのまま演算するものであってもよい。
【０１０５】
以下、ステップＳ４０における各局所スコアの演算方法について、具体的に説明する。なお、類似度の演算結果は式（９）と同じになる。
【０１０６】
まず、ＣＰＵ３０１は、テンプレート画像中の特徴画像における各エッジ点に、１からｎの通し番号を付与しておき、通し番号１のものから局所スコアを計算すべく、変数ｋを１に設定する（Ｓ４１）。このステップＳ４１の処理は、第１実施形態で説明したステップＳ３１（図１２）の処理と同じである。
【０１０７】
次に、ＣＰＵ３０１は、テンプレート画像中の特徴画像のエッジ点と、被探索画像における特徴画像のエッジ点に対応する位置の点との仮の局所スコア（仮の局所類似度）ｆｋを計算する（Ｓ４２）。
【０１０８】
第２実施形態では、この仮の局所スコアの計算が、上記第１実施形態と異なる。ここで、特徴画像の通し番号ｋのエッジ点（画素）におけるエッジ強度のベクトル（第１ベクトル）を（ＥｘＴｋ，ＥｙＴｋ）とする。また、被探索画像中、特徴画像のエッジ点に対応する位置、つまり抽出画像中、通し番号ｋのエッジ点と同じ座標位置の点（画素）のエッジ強度のベクトル（第２ベクトル）を（ＥｘＩｋ，ＥｙＩｋ）とする。第１ベクトルの大きさをＥＴｋ、第２ベクトルの大きさをＥＩｋとする。
【０１０９】
仮の局所スコアは、第１ベクトル（ＥｘＴｋ，ＥｙＴｋ）と第２ベクトル（ＥｘＩｋ，ＥｙＩｋ）との内積を、第１ベクトルの大きさＥＴｋと第２ベクトルの大きさＥＩｋとを乗算した乗算値で除算することで求める。
【０１１０】
即ち、ＣＰＵ３０１は、ステップＳ４２において、以下の式（１０）を用いて、仮の局所スコアｆｋを計算する。
【０１１１】
【数７】
0006406900.tif 000008
【０１１２】
なお、ステップＳ４３〜Ｓ４７の処理は、上記第１実施形態のステップＳ３３〜Ｓ３７（図１２）と同様の処理を行うため、説明を省略する。
【０１１３】
以上、第２実施形態では、ステップＳ４４において、仮の局所スコアｆｋを絶対値が小さくなるように変更して局所スコアとする。具体的には、仮の局所スコアｆｋに係数αを乗算して、局所スコアの絶対値を小さくする（つまり、局所スコアを０に近づける）補正を行う。但し｜α｜＜０、つまりαは絶対値が１よりも低い係数である。
【０１１４】
特に、局所スコアを０に近づけるためには、係数αを、−０．１以上０．１以下に設定するのが好ましく、更に、係数αを０とすれば、局所スコアを０とすることができる。すなわち、係数αを、−０．１以上０．１以下に設定すれば、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。特に係数αを０にすれば、局所スコアが０になるので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【０１１５】
このように、ステップＳ４８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。特に、係数αを、−０．１以上０．１以下に設定すればより効果的にパターンマッチング処理が失敗するのを防止でき、係数αを０とすれば、更に効果的にパターンマッチング処理が失敗するのを防止できる。
【０１１６】
また、第２実施形態では、仮の局所スコアが所定値（０）を下回る場合には、大きさが小さくなるように、仮の局所スコアに係数α（｜α｜＜１）が乗算されるので、最終的に求まるスコア値が高すぎることはない。よって、マッチング候補点の点数が過剰に増加するのを抑制することができるので、計算コストが低減され、処理時間が短縮化され、パターンマッチング処理が高速化する。
【０１１７】
なお、ステップＳ４４では、局所スコアをα×ｆｋを計算することにより求めているが、このような演算を行わずに、局所スコアを０に設定してもよい。この場合、α＝０とする場合と同じ効果を奏するほか、α×ｆｋの演算を行わなくて済むので、計算コストが更に低減され、処理時間が更に短縮化され、パターンマッチング処理が更に高速化する。
【０１１８】
［第３実施形態］
次に、本発明の第３実施形態に係る画像処理装置が行う画像処理方法について説明する。図１４は、本発明の第３実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。以下、第３実施形態において、上記第１実施形態と同様の構成及び処理については、説明を省略する。
【０１１９】
即ち、第３実施形態における画像処理装置の構成は、上記第１実施形態における画像処理装置３００と同じである。また、第３実施形態における画像処理装置の画像処理（プログラム３２１）は、図１２に示すスコア計算処理以外の処理（図３、図８、図９、図１０に示す処理）については、上記第１実施形態と同様である。
【０１２０】
具体的には、上記第１実施形態では、仮の局所スコア（仮の局所類似度）で閾値判断する場合について説明したが、第３実施形態では、局所スコア（局所類似度）を計算する過程のパラメータで閾値判断する場合について説明する。
【０１２１】
ＣＰＵ３０１は、まず、特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ５０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【０１２２】
そして、ＣＰＵ３０１は、ステップＳ５０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ５８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【０１２３】
以下、ステップＳ５０における各局所スコアの演算方法について、具体的に説明する。
【０１２４】
まず、ＣＰＵ３０１は、テンプレート画像中の特徴画像における各エッジ点に、１からｎの通し番号を付与しておき、通し番号１のものから局所スコアを計算すべく、変数ｋを１に設定する（Ｓ５１）。このステップＳ５１の処理は、第１実施形態で説明したステップＳ３１（図１２）の処理と同じである。
【０１２５】
次に、ＣＰＵ３０１は、テンプレート画像中の特徴画像の番号ｋのエッジ点におけるエッジ方向θＴｋと、被探索画像中、特徴画像の番号ｋのエッジ点に対応する位置の点におけるエッジ方向θＩｋとのなす角の角度を計算する（Ｓ５２）。具体的には、ＣＰＵ３０１は、｜θＩｋ−θＴｋ｜を計算する。
【０１２６】
次に、ＣＰＵ３０１は、角度｜θＩｋ−θＴｋ｜が、予め設定された所定角度（第３実施形態では９０°）を上回るか否かを判断する（Ｓ５３）。
【０１２７】
ＣＰＵ３０１は、角度｜θＩｋ−θＴｋ｜が所定角度を上回る（９０°を上回る）と判断した場合は（Ｓ５３：Ｙｅｓ）、角度｜θＩｋ−θＴｋ｜の余弦（コサイン値）よりも絶対値が小さい値を局所スコア（局所類似度）にする。具体的には、ＣＰＵ３０１は、局所スコアを０に設定する。
【０１２８】
また、ＣＰＵ３０１は、角度｜θＩｋ−θＴｋ｜が所定角度以下（９０°以下）の場合は、角度｜θＩｋ−θＴｋ｜の余弦を求めることで局所スコアを計算する（Ｓ５５）。具体的には、ＣＰＵ３０１は、局所スコアをｃｏｓ｜θＩｋ−θＴｋ｜に設定する。
【０１２９】
なお、ステップＳ５６，Ｓ５７の処理は、上記第１実施形態のステップＳ３６，Ｓ３７（図１２）と同様の処理を行うため、説明を省略する。
【０１３０】
以上、第３実施形態では、ステップＳ５４において、角度｜θＩｋ−θＴｋ｜の余弦よりも絶対値が小さい値を局所スコアとする。よって、ステップＳ５８にて最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。特に、ステップＳ５４では、局所スコアを０にするので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【０１３１】
このように、ステップＳ５８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。
【０１３２】
また、第３実施形態では、局所スコアを演算する途中でパラメータθＩＫ，θＴＫを用いて閾値判断しているので、仮の局所スコアを計算するよりも計算コストが第１実施形態よりも軽減される。特に、ステップＳ５４では、余弦（コサイン）の計算をしなくて済むので、計算コストが第１実施形態よりも軽減される。
【０１３３】
よって、第３実施形態では、上記第１実施形態よりも更に計算コストが低減されるので、処理時間が更に短縮化され、パターンマッチング処理が更に高速化する。
【０１３４】
なお、所定角度が９０°に設定されている場合について説明したが、９０°以外の値に設定してもよい。
【０１３５】
［第４実施形態］
次に、本発明の第４実施形態に係る画像処理装置が行う画像処理方法について説明する。図１５は、本発明の第４実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。以下、第４実施形態において、上記第１，第３実施形態と同様の構成及び処理については、説明を省略する。
【０１３６】
即ち、第４実施形態における画像処理装置の構成は、上記第１実施形態における画像処理装置３００と同じである。また、第４実施形態における画像処理装置の画像処理（プログラム３２１）は、図１２に示すスコア計算処理以外の処理（図３、図８、図９、図１０に示す処理）については、上記第１実施形態と同様である。
【０１３７】
そして、第４実施形態のスコア計算処理では、上記第３実施形態におけるスコア計算処理の一部を変更したものである。即ち、上記第３実施形態では、ステップＳ５４（図１４）にて、局所スコアを０としていたが、第４実施形態では、局所スコアを計算する。
【０１３８】
ＣＰＵ３０１は、まず、特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ６０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【０１３９】
そして、ＣＰＵ３０１は、ステップＳ６０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ６８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【０１４０】
以下、ステップＳ６０における各局所スコアの演算方法について、具体的に説明する。なお、ステップＳ６１〜Ｓ６３，Ｓ６５〜Ｓ６７は、上記第３実施形態のステップＳ５１〜Ｓ５３，Ｓ５５〜Ｓ５７と同様であるため、説明を省略する。
【０１４１】
第４実施形態では、ＣＰＵ３０１は、角度｜θＩｋ−θＴｋ｜が所定角度（９０°）を上回る場合（Ｓ６３：Ｙｅｓ）は、角度｜θＩｋ−θＴｋ｜の余弦に対して絶対値が１よりも低い係数αを乗算することで局所スコアを計算する（Ｓ６４）。具体的には、ＣＰＵ３０１は、局所スコアとして、α×ｃｏｓ｜θＩｋ−θＴｋ｜を計算する。
【０１４２】
これにより、ステップＳ６８にて最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。
【０１４３】
特に、局所スコアを０に近づけるためには、係数αを、−０．１以上０．１以下に設定するのが好ましく、更に、係数αを０とすれば、局所スコアを０とすることができる。すなわち、係数αを、−０．１以上０．１以下に設定すれば、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより小さくすることができる。特に係数αを０にすれば、局所スコアが０になるので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【０１４４】
このように、ステップＳ６８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。特に、係数αを、−０．１以上０．１以下に設定すればより効果的にパターンマッチング処理が失敗するのを防止でき、係数αを０とすれば、更に効果的にパターンマッチング処理が失敗するのを防止できる。
【０１４５】
また、第４実施形態では、角度が所定角度（９０°）を上回る場合には、コサイン値に係数α（｜α｜＜１）が乗算されるので、最終的に求まるスコア値が高すぎることはない。よって、マッチング候補点の点数が過剰に増加するのを抑制することができるので、計算コストが低減され、処理時間が短縮化され、パターンマッチング処理が高速化する。
【０１４６】
［第５実施形態］
次に、本発明の第５実施形態に係る画像処理装置が行う画像処理方法について説明する。図１６は、本発明の第５実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。以下、第５実施形態において、上記第１，第２実施形態と同様の構成及び処理については、説明を省略する。
【０１４７】
即ち、第５実施形態における画像処理装置の構成は、上記第１，２実施形態における画像処理装置３００と同じである。また、第５実施形態における画像処理装置の画像処理（プログラム３２１）は、図１２に示すスコア計算処理以外の処理（図３、図８、図９、図１０に示す処理）については、上記第１，２実施形態と同様である。
【０１４８】
具体的には、上記第２実施形態では、仮の局所スコア（仮の局所類似度）で閾値判断する場合について説明したが、第５実施形態では、局所スコア（局所類似度）を計算する過程のパラメータで閾値判断する場合について説明する。
【０１４９】
ＣＰＵ３０１は、まず、特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ７０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【０１５０】
そして、ＣＰＵ３０１は、ステップＳ７０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ７８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【０１５１】
以下、ステップＳ７０における各局所スコアの演算方法について、具体的に説明する。
【０１５２】
まず、ＣＰＵ３０１は、テンプレート画像中の特徴画像における各エッジ点に、１からｎの通し番号を付与しておき、通し番号１のものから局所スコアを計算すべく、変数ｋを１に設定する（Ｓ７１）。このステップＳ７１の処理は、第１実施形態で説明したステップＳ３１（図１２）の処理と同じである。
【０１５３】
ここで、特徴画像の通し番号ｋのエッジ点（画素）におけるエッジ強度のベクトル（第１ベクトル）を（ＥｘＴｋ，ＥｙＴｋ）とする。また、被探索画像中、特徴画像のエッジ点に対応する位置、つまり抽出画像中、通し番号ｋのエッジ点と同じ座標位置の点（画素）のエッジ強度のベクトル（第２ベクトル）を（ＥｘＩｋ，ＥｙＩｋ）とする。第１ベクトルの大きさをＥＴｋ、第２ベクトルの大きさをＥＩｋとする。
【０１５４】
ＣＰＵ３０１は、第１ベクトル（ＥｘＴｋ，ＥｙＴｋ）と第２ベクトル（ＥｘＩｋ，ＥｙＩｋ）との内積を計算する（Ｓ７２）。具体的には、ＣＰＵ３０１は、ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋを計算する。
【０１５５】
次に、ＣＰＵ３０１は、内積ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋが、予め設定した設定値（０）を下回るか否かを判断する（Ｓ７３）。
【０１５６】
ＣＰＵ３０１は、内積が設定値（０）を下回ると判断した場合は（Ｓ７３：Ｙｅｓ）、第１ベクトルの大きさＥＴｋと第２ベクトルの大きさＥＩｋとを乗算した乗算値で内積を除算した値よりも絶対値が小さい値を、局所スコアにする（Ｓ７４）。具体的には、ＣＰＵ３０１は、局所スコアを０に設定する。
【０１５７】
また、ＣＰＵ３０１は、内積が設定値以上（０以上）の場合（Ｓ７３：Ｎｏ）は、第１ベクトルの大きさＥＴｋと第２ベクトルの大きさＥＩｋとを乗算した乗算値で内積を除算することで局所スコアを計算する（Ｓ７５）。具体的には、ＣＰＵ３０１は、局所スコアを（ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋ）／（ＥＩｋ・ＥＴｋ）に設定する。
【０１５８】
なお、ステップＳ７６，Ｓ７７の処理は、上記第１実施形態のステップＳ３６，Ｓ３７（図１２）、上記第２実施形態のステップＳ４６，Ｓ４７と同様の処理を行うため、説明を省略する。
【０１５９】
以上、第５実施形態では、ステップＳ７４において、（ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋ）／（ＥＩｋ・ＥＴｋ）よりも絶対値が小さい値を局所スコアとする。よって、ステップＳ７８にて最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。特に、ステップＳ７４では、局所スコアを０にするので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【０１６０】
このように、ステップＳ７８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。
【０１６１】
また、第５実施形態では、局所スコアを演算する途中でパラメータＥｘＴｋ，ＥｙＴｋ，ＥｘＩｋ，ＥｙＩｋを用いて閾値判断しているので、仮の局所スコアを計算するよりも計算コストが第２実施形態よりも軽減する。特に、ステップＳ７４では、計算をしなくて済むので、計算コストが第２実施形態よりも軽減する。
【０１６２】
よって、第５実施形態では、上記第２実施形態よりも更に計算コストが低減されるので、処理時間が更に短縮化され、パターンマッチング処理が更に高速化する。
【０１６３】
なお、設定値が０に設定されている場合について説明したが、０以外の数値に設定されていてもよい。
【０１６４】
［第６実施形態］
次に、本発明の第６実施形態に係る画像処理装置が行う画像処理方法について説明する。図１７は、本発明の第６実施形態に係る画像処理装置が実行する画像処理方法におけるスコア計算処理（類似度計算処理）を示すフローチャートである。以下、第６実施形態において、上記第１，第２，第５実施形態と同様の構成及び処理については、説明を省略する。
【０１６５】
即ち、第６実施形態における画像処理装置の構成は、上記第１実施形態における画像処理装置３００と同じである。また、第６実施形態における画像処理装置の画像処理（プログラム３２１）は、図１２に示すスコア計算処理以外の処理（図３、図８、図９、図１０に示す処理）については、上記第１実施形態と同様である。
【０１６６】
そして、第６実施形態のスコア計算処理では、上記第５実施形態におけるスコア計算処理の一部を変更したものである。即ち、上記第５実施形態では、ステップＳ７４（図１４）にて、局所スコアを０としていたが、第６実施形態では、局所スコアを計算する。
【０１６７】
ＣＰＵ３０１は、まず、特徴画像のエッジ点と、被探索画像におけるテンプレート画像の特徴画像の点に対応する位置の点との局所スコア（局所類似度）を、特徴画像の全ての点についてそれぞれ計算する（Ｓ８０：局所類似度計算工程）。つまり、テンプレート画像中の特徴画像の画素と、被探索画像から抽出した抽出画像の画素とを、座標が同じ点同士で、局所スコア（局所類似度）を計算する。
【０１６８】
そして、ＣＰＵ３０１は、ステップＳ８０にて計算した各局所スコアを合計して正規化することによりスコア（類似度）を計算する（Ｓ８８：類似度計算工程）。例えば、テンプレート画像中の特徴画像のエッジ点数（画素数）をｎ個とした場合、局所スコアの合計をｎで除算することにより正規化する。
【０１６９】
以下、ステップＳ８０における各局所スコアの演算方法について、具体的に説明する。なお、ステップＳ８１〜Ｓ８３，Ｓ８５〜８７は、上記第５実施形態のステップＳ７１〜Ｓ７３，Ｓ７５〜７７と同様であるため、説明を省略する。
【０１７０】
第６実施形態では、ＣＰＵ３０１は、内積が設定値（０）を下回る場合は（Ｓ８３：Ｙｅｓ）、ＥＴｋとＥＩｋとを乗算した乗算値で内積を除算し、更に、絶対値が１よりも小さい係数αを乗算することで局所スコア（局所類似度）を計算する（Ｓ８４）。具体的には、ＣＰＵ３０１は、局所スコアとして、（ＥｘＩｋ・ＥｘＴｋ＋ＥｙＩｋ・ＥｙＴｋ）／（ＥＩｋ・ＥＴｋ）×αを計算する。
【０１７１】
これにより、ステップＳ８８にて最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響を小さくすることができる。
【０１７２】
特に、局所スコアを０に近づけるためには、係数αを、−０．１以上０．１以下に設定するのが好ましく、更に、係数αを０とすれば、局所スコアを０とすることができる。すなわち、係数αを、−０．１以上０．１以下に設定すれば、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより小さくすることができる。特に係数αを０にすれば、局所スコアが０になるので、最終的に求まるスコア値において、ゴミや汚れの付着、照明の変化、個体差による表面状態の違い等による影響をより効果的に小さくすることができる。
【０１７３】
このように、ステップＳ８８にて最終的に求まるスコア値が小さくなりすぎるのを防止できるので、パターンマッチング処理が失敗するのを防止することができる。特に、係数αを、−０．１以上０．１以下に設定すればより効果的にパターンマッチング処理が失敗するのを防止でき、係数αを０とすれば、更に効果的にパターンマッチング処理が失敗するのを防止できる。
【０１７４】
また、第６実施形態では、内積が設定値（０）を下回る場合には、内積を乗算値ＥＩｋ・ＥＴｋで除算した結果に係数α（｜α｜＜１）が乗算されるので、最終的に求まるスコア値が高すぎることはない。よって、マッチング候補点の点数が過剰に増加するのを抑制することができるので、計算コストが低減され、処理時間が短縮化され、パターンマッチング処理が高速化する。
【０１７５】
［第７実施形態］
次に、本発明の第７実施形態に係る画像処理装置が行う画像処理方法について説明する。図１８は、本発明の第７実施形態に係る画像処理装置が実行する画像処理方法における第１ピラミッド（形状モデル）の作成方法を示すフローチャートである。図１９は、本発明の第７実施形態に係る画像処理装置が実行する画像処理方法における探索処理を示すフローチャートである。以下、第７実施形態において、上記第１〜第６実施形態と同様の構成及び処理については、説明を省略する。
【０１７６】
第７実施形態における画像処理装置の構成は、上記第１実施形態における画像処理装置３００と同じである。第７実施形態では、上記第１実施形態で説明した第１及び第２ピラミッドの作成方法が異なるものであり、以下、上記第１実施形態と異なる点について説明する。
【０１７７】
図１８に示すステップＳ９１，Ｓ９２の処理、即ち参照画像からモデル画像を設定する方法は、図３に示すステップＳ１，Ｓ２と同様である。
【０１７８】
次に、ＣＰＵ３０１は、ステップＳ９２で設定したモデル画像を作業者が指定したピラミッド段数分画像縮小していく（Ｓ９３，Ｓ９４）。
【０１７９】
画像縮小方法は、図６に示すようにモデル画像の左上端から２×２画素の領域を、縮小画像の１画素とすることにより縮小していく。具体的には、縮小対象となる画像の２×２画素の４画素の輝度値の平均値を縮小画像の１画素の輝度値としていく。ＣＰＵ３０１は、この平均化処理を縮小対象画像に対して全画素に行うことにより、画像の幅、高さが２分の１となる縮小画像を形成する（Ｓ９３）。
【０１８０】
この画像縮小処理を図７に示すように繰り返していくことにより、モデル画像の縮小画像を生成する。作業者がピラミッド段数を４段で指定していれば、１枚の縮小する前の画像と３枚の段階的な縮小画像が作成される。
【０１８１】
次に、ＣＰＵ３０１は、ステップＳ９３，Ｓ９４で作成した全てのモデル画像に対して、エッジ抽出処理を行う（Ｓ９５，９６）。エッジ抽出方法は、上記第１実施形態と同様である。これにより、段階的に縮小された特徴画像が生成される。ステップＳ９１〜Ｓ９６で作成した縮小特徴画像を含めた全ての特徴画像を第１ピラミッド（形状モデル）とする。
【０１８２】
即ち、ＣＰＵ３０１は、参照物を撮像して得られた撮像画像と、この撮像画像に対して縮小処理を施して得られた縮小画像とで、解像度の異なる複数の画像を作成する。次いで、ＣＰＵ３０１は、解像度の異なる複数の画像に対してエッジ抽出処理を施して第１ピラミッドを構成する複数のテンプレート画像を生成する。
【０１８３】
次に上記作成した第１ピラミッド（形状モデル）を使用し、実際に物体の検出行う探索処理のフローについて、図１９に示すフローチャートを用いて説明する。
【０１８４】
図１９に示すステップＳ１０１，Ｓ１０２の処理、即ち形状モデル入力し、対象物を撮像する処理は、図８に示すステップＳ６，Ｓ７と同様である。
【０１８５】
次に、ＣＰＵ３０１は、入力された撮像画像の画像縮小をピラミッド段数分行っていく（Ｓ１０３，Ｓ１０４）。画像の縮小方法は、図１８のステップＳ９３，Ｓ９４と同様である。この撮像画像の縮小により、段階的に縮小された複数の画像が生成される。
【０１８６】
次に、ＣＰＵ３０１は、ステップＳ１０３，Ｓ１０４で生成した全ての画像に対して、エッジ抽出処理を行う（Ｓ１０５，Ｓ１０６）。エッジ抽出方法は、上記第１実施形態と同様である。これにより、段階的に縮小された複数の被探索画像が生成される。
【０１８７】
即ち、ＣＰＵ３０１は、対象物を撮像して得られた撮像画像と、この撮像画像に対して縮小処理を施して得られた縮小画像とで、解像度の異なる複数の画像を作成する。次にＣＰＵ３０１は、作成した解像度の異なる複数の画像に対してエッジ抽出処理を施して、第２ピラミッドを構成する複数の被探索画像を生成する。
【０１８８】
ＣＰＵ３０１は、モデル作成工程で作成した第１ピラミッドを構成するテンプレート画像の特徴画像と、ステップＳ１０５，Ｓ１０６で作成した被探索画像とでパターンマッチングを行う（Ｓ１０７）。パターンマッチングの方法は、上記第１実施形態で説明した、図９及び図１０と同様である。なお、図９及び図１０におけるステップＳ１３，Ｓ１９のスコア計算は、図１２〜図１７のうちいずれかの方法で行えばよい。
【０１８９】
第７実施形態においても、上記第１〜第６実施形態と同様の作用効果を奏する。
【０１９０】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【０１９１】
上記実施形態の各処理動作は具体的にはＣＰＵ３０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を画像処理装置３００に供給し、画像処理装置３００を構成するコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１９２】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３２１が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図２に示すＲＯＭ３０２、記録ディスク３２２、外部記憶装置８００等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１９３】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１９４】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１９５】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１９６】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１９７】
１００…生産装置、２００…ロボット、３００…画像処理装置、３２１…プログラム、４００…ロボット制御装置
【図１】
0006406900.tif 000009
【図２】
0006406900.tif 000010
【図３】
0006406900.tif 000011
【図４】
0006406900.tif 000012
【図５】
0006406900.tif 000013
【図６】
0006406900.tif 000014
【図７】
0006406900.tif 000015
【図８】
0006406900.tif 000016
【図９】
0006406900.tif 000017
【図１０】
0006406900.tif 000018
【図１１】
0006406900.tif 000019
【図１２】
0006406900.tif 000020
【図１３】
0006406900.tif 000021
【図１４】
0006406900.tif 000022
【図１５】
0006406900.tif 000023
【図１６】
0006406900.tif 000024
【図１７】
0006406900.tif 000025
【図１８】
0006406900.tif 000026
【図１９】
0006406900.tif 000027