(57)【要約】  画像処理方法は、テンプレート画像および探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得するステップと、テンプレート画像と探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、第１のマッチングの結果と周期性の情報とに基づいて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定するステップと、回転量の候補の各々を用いて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成するステップと、画像の組の各々で位置についての第２のマッチングを行なうとともに、第２のマッチングの結果のうち相対的に確度の高い結果を出力するステップとを含む。
2014199824.tif 000002
【特許請求の範囲】
【請求項１】
テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理方法であって、
前記テンプレート画像および前記探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得するステップと、
前記テンプレート画像と前記探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、前記第１のマッチングの結果と前記周期性の情報とに基づいて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定するステップと、
前記回転量の候補の各々を用いて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成するステップと、
前記画像の組の各々で位置についての第２のマッチングを行なうとともに、前記第２のマッチングの結果のうち相対的に確度の高い結果を出力するステップとを含む、画像処理方法。
【請求項２】
前記回転量の候補を複数決定するステップは、前記周期性の情報に基づいて、回転量の探索を行なう範囲を限定するステップを含む、請求項１に記載の画像処理方法。
【請求項３】
前記回転量の探索を行なう範囲を限定するステップは、前記回転量の探索を行なう範囲における回転量と類似度との関係を、前記回転量の探索を行なう範囲外における回転量と類似度との関係で補正することで、探索を行なう範囲の類似度の情報を生成するステップを含む、請求項２に記載の画像処理方法。
【請求項４】
前記回転量の候補を複数決定するステップは、前記第１のマッチングにより決定された回転量に対して、前記周期性の情報を示す回転量を加算および／または減算することで、前記回転量の候補を決定するステップを含む、請求項１〜３のいずれか１項に記載の画像処理方法。
【請求項５】
前記回転量の候補を複数決定するステップは、前記テンプレート画像と前記探索対象画像との類似度の回転量に対する変化特性を参照して、前記回転量の候補のうち、前記周期性の情報の条件を満たさない候補を除外するステップを含む、請求項１〜４のいずれか１項に記載の画像処理方法。
【請求項６】
前記周期性の情報を取得するステップは、前記テンプレート画像の生成時に、ユーザーが設定した前記周期性の情報を受け付けるステップを含む、請求項１〜５のいずれか１項に記載の画像処理方法。
【請求項７】
前記周期性の情報を取得するステップは、
前記テンプレート画像同士で回転方向についての第３のマッチングを行なうステップと、
前記第３のマッチングの結果に現われる類似度の周期から周期性を決定するステップとを含む、請求項１〜５のいずれか１項に記載の画像処理方法。
【請求項８】
前記周期性の情報を取得するステップは、ユーザーから任意の周期性の情報を受け付けるステップを含む、請求項１〜５のいずれか１項に記載の画像処理方法。
【請求項９】
テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理装置であって、
前記テンプレート画像および前記探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得する周期情報取得部と、
前記テンプレート画像と前記探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、前記第１のマッチングの結果と前記周期性の情報とに基づいて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定する回転量推定部と、
前記回転量の候補の各々を用いて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成する画像補正部と、
前記画像の組の各々で位置についての第２のマッチングを行なうとともに、前記第２のマッチングの結果のうち相対的に確度の高い結果を出力する位置検出部とを含む、画像処理装置。
【請求項１０】
テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理プログラムであって、前記画像処理プログラムはコンピューターに
前記テンプレート画像および前記探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得するステップと、
前記テンプレート画像と前記探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、前記第１のマッチングの結果と前記周期性の情報とに基づいて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定するステップと、
前記回転量の候補の各々を用いて、前記テンプレート画像と前記探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成するステップと、
前記画像の組の各々で位置についての第２のマッチングを行なうとともに、前記第２のマッチングの結果のうち相対的に確度の高い結果を出力するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレート画像を用いたテンプレートマッチングに係る画像処理方法、画像処理装置および画像処理プログラムに関する。
【背景技術】
【０００２】
予め登録されたテンプレート画像を用いて、探索対象画像の中から当該テンプレート画像に対応する位置を検出する手法（テンプレートマッチング）が実用化されている。テンプレートマッチングの一手法として、位相限定相関法（Phase-Only  Correlation：以下「ＰＯＣ法」とも」とも称す。）がしばしば用いられる。ＰＯＣ法は、画像に含まれる空間周波数の位相差情報を用いて画像間の対応点を探索する手法である。位相差情報を用いることで、照明変動などに対するロバスト性を高めることができる。【０００３】
一般的なＰＯＣ法では、テンプレート画像と探索対象画像との間には、回転方向の変化がないことを前提にしている。そのため、予めテンプレート画像として登録されたオブジェクトが、探索対象画像内で回転している場合には、位置を正確に検出することができない。このような光軸周りの回転変位（回転方向の変化）が生じ得る場合には、ＰＯＣ法を拡張した手法として、回転不変位相限定相関法（Rotation  Invariant  Phase  Only  Correlation：以下「ＲＩＰＯＣ法」とも」とも称す。）を採用することで対処可能である。【０００４】
ＲＩＰＯＣ法では、先に、テンプレート画像および探索対象画像に含まれる振幅情報を利用して画像間の回転量（回転変位）を推定し、その推定した回転量でテンプレート画像または探索対象画像のいずれか一方を補正する。続いて、その補正されたテンプレート画像または探索対象画像を利用して、対応する位置を検出する。このような二段階の処理を経ることで、対象のオブジェクトが回転し得るような場合であっても、対応する位置を正確に検出できる。【０００５】
例えば、特開平１０−１２４６６７号公報（特許文献１）は、ＲＩＰＯＣ法を利用したパターン照合装置を開示する。このパターン照合装置は、振幅情報を極座標変換した画像から回転量を推定し、テンプレート画像を補正した後に位置の推定を行なう。【０００６】
また、特開平１０−２０６１３４号公報（特許文献２）は、与えられた入力画像内の対象図形について画像内に設定した基準位置からの回転角度を求める画像処理による位置検出方法を開示する。この位置検出方法では、探索対象画像に対して、複数の回転角度で回転させたテンプレートとのマッチングをとって、最も類似度が高いテンプレートとそのテンプレートで見つけた位置から対象物の回転角度と位置を推定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１２４６６７号公報
【特許文献２】特開平１０−２０６１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の特許文献１などに開示されるＲＩＰＯＣ法は、回転方向の変動などに対しても高いロバスト性を有しているが、前段の画像間の回転量（回転変位）の推定に失敗すると、画像を適切に補正することができないため、後段での位置検出がうまく機能しない。例えば、回転方向に周期性を有する画像では、回転量（回転変位）の推定を正しく実行できることが保障されないため、後段の位置検出が正しく実行されない可能性がある。また、上述の特許文献２に開示される位置検出方法では、複数の回転角度のすべてについてマッチングを行なう必要があるので、多くの演算時間を要する。【０００９】
本発明の目的は、テンプレート画像を用いたテンプレートマッチングにおいて、よりロバスト性を高めつつ、処理をより高速化できる画像処理方法、画像処理装置および画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明のある局面に従えば、テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理方法が提供される。画像処理方法は、テンプレート画像および探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得するステップと、テンプレート画像と探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、第１のマッチングの結果と周期性の情報とに基づいて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定するステップと、回転量の候補の各々を用いて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成するステップと、画像の組の各々で位置についての第２のマッチングを行なうとともに、第２のマッチングの結果のうち相対的に確度の高い結果を出力するステップとを含む。【００１１】
好ましくは、回転量の候補を複数決定するステップは、周期性の情報に基づいて、回転量の探索を行なう範囲を限定するステップを含む。【００１２】
さらに好ましくは、回転量の探索を行なう範囲を限定するステップは、回転量の探索を行なう範囲における回転量と類似度との関係を、回転量の探索を行なう範囲外における回転量と類似度との関係で補正することで、探索を行なう範囲の類似度の情報を生成するステップを含む。【００１３】
好ましくは、回転量の候補を複数決定するステップは、第１のマッチングにより決定された回転量に対して、周期性の情報を示す回転量を加算および／または減算することで、回転量の候補を決定するステップを含む。【００１４】
好ましくは、回転量の候補を複数決定するステップは、テンプレート画像と探索対象画像との類似度の回転量に対する変化特性を参照して、回転量の候補のうち、周期性の情報の条件を満たさない候補を除外するステップを含む。【００１５】
好ましくは、周期性の情報を取得するステップは、テンプレート画像の生成時に、ユーザーが設定した周期性の情報を受け付けるステップを含む。【００１６】
好ましくは、周期性の情報を取得するステップは、テンプレート画像同士で回転方向についての第３のマッチングを行なうステップと、第３のマッチングの結果に現われる類似度の周期から周期性を決定するステップとを含む。【００１７】
好ましくは、周期性の情報を取得するステップは、ユーザーから任意の周期性の情報を受け付けるステップを含む。【００１８】
本発明の別の局面に従えば、テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理装置が提供される。画像処理装置は、テンプレート画像および探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得する周期情報取得部と、テンプレート画像と探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、第１のマッチングの結果と周期性の情報とに基づいて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定する回転量推定部と、回転量の候補の各々を用いて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成する画像補正部と、画像の組の各々で位置についての第２のマッチングを行なうとともに、第２のマッチングの結果のうち相対的に確度の高い結果を出力する位置検出部とを含む。【００１９】
本発明のさらに別の局面に従えば、テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理プログラムが提供される。画像処理プログラムはコンピューターに、テンプレート画像および探索対象画像の少なくとも一方についての、回転方向の周期性の情報を取得するステップと、テンプレート画像と探索対象画像との間で回転方向についての第１のマッチングを行なうとともに、第１のマッチングの結果と周期性の情報とに基づいて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補を複数決定するステップと、回転量の候補の各々を用いて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成するステップと、画像の組の各々で位置についての第２のマッチングを行なうとともに、第２のマッチングの結果のうち相対的に確度の高い結果を出力するステップとを実行させる。
【発明の効果】
【００２０】
本発明によれば、テンプレート画像を用いたテンプレートマッチングにおいて、よりロバスト性を高めつつ、処理をより高速化できる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態に従うテンプレートマッチングの適用例を示す模式図である。
【図２】本実施の形態に従うテンプレートマッチングをパーソナルコンピューターにより実現した場合の構成を示すブロック図である。
【図３】実施の形態１に従う画像処理装置の機能構成を示す模式図である。
【図４】実施の形態１に従う画像処理装置の回転補正部における回転補正処理の概要を説明するための模式図である。
【図５】実施の形態１に従う画像処理装置の回転量推定部のより詳細な機能ブロック図である。
【図６】ＰＯＣ法のアルゴリズムを示す模式図である。
【図７】図６に示す一般的なＰＯＣ法に従って算出されたＰＯＣ値の一例を示す図である。
【図８】実施の形態１に従う画像処理装置の回転補正部による回転補正処理の結果例を示す図である。
【図９】実施の形態１に従う位置検出処理の全体手順を示すフローチャートである。
【図１０】実施の形態２に従う回転量推定の処理を説明するための図である。
【図１１】画像にノイズ成分が含まれている場合に生じる回転量に対するＰＯＣ値の変化の一例を示す図である。
【図１２】実施の形態３に従う回転量推定の処理を説明するための図である。
【図１３】実施の形態５に従う画像処理装置の機能構成を示す模式図である。
【図１４】実施の形態５の処理例３に従う画像処理装置の回転量推定部および周期情報算出部のより詳細な機能ブロック図である。
【図１５】実施の形態７に従う回転量推定の処理を説明するための図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２３】
［Ａ．概要］
本実施の形態によれば、テンプレート画像を用いて探索対象画像との間でテンプレートマッチングを行なう画像処理方法、画像処理装置、および画像処理プログラムが提供される。この処理では、テンプレート画像および探索対象画像の少なくとも一方についての、回転方向の周期性の情報が取得される。また、テンプレート画像と探索対象画像との間で回転方向についての第１のマッチングが実行される。すなわち、画像間の回転方向の相対的なずれ（回転量）が推定される。
【００２４】
その上で、第１のマッチングの結果と周期性の情報とに基づいて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正する回転量の候補が複数決定される。そして、回転量の候補の各々を用いて、テンプレート画像と探索対象画像との間の回転方向の相対的なずれを補正した画像の組を複数生成し、画像の組の各々で位置についての第２のマッチングを行なう。つまり、回転量補正についての複数の候補を用意しておき、各候補について、位置探索が実行される。そして、第２のマッチングの結果のうち相対的に確度の高い結果が最終結果として出力される。
【００２５】
［Ｂ．システム構成］
まず、本実施の形態に従うテンプレート画像を用いたテンプレートマッチングの機能を有する画像処理装置の実装例について説明する。
【００２６】
《ｂ１：適用例》
図１は、本実施の形態に従うテンプレートマッチングの適用例を示す模式図である。図１を参照して、本実施の形態に従うシステム１は、一例として、ベルトコンベア３を含む生産ラインに適用される。システム１において、ワーク２はベルトコンベア３上を連続的に搬送されるとともに、ワーク２をカメラ１０により撮影することで、ワーク２の外観（以下「オブジェクト」とも称す。）を含む画像（以下「探索対象画像１６」とも称す。）が取得される。
【００２７】
探索対象画像１６は、画像処理装置１００へ伝送される。画像処理装置１００は、予め登録されたテンプレート画像１８を用いて探索対象画像１６に含まれるワーク２の位置検出を実行する。画像処理装置１００は、このテンプレートマッチングによって得られた、回転量および倍率などの情報を含む位置情報を出力する。
【００２８】
《ｂ２：パーソナルコンピューターによる実現例》
図２は、本実施の形態に従うテンプレートマッチングをパーソナルコンピューターにより実現した場合の構成を示すブロック図である。図２を参照して、パーソナルコンピューターにより実現される画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Central  Processing  Unit）１０２と、ＲＡＭ（Random  Access  Memory）１０４と、ＲＯＭ（Read  Only  Memory）１０６と、ネットワークインターフェイス（Ｉ／Ｆ）１０８と、ハードディスク１１０と、表示部１２０と、入力部１２２と、メモリーカードインターフェイス（Ｉ／Ｆ）１２４と、カメラインターフェイス（Ｉ／Ｆ）１２８とを含む。各コンポーネントは、バス１３０を介して、互いに通信可能に接続されている。
【００２９】
ＣＰＵ１０２は、ＲＯＭ１０６やハードディスク１１０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）やテンプレートマッチング実行プログラム１１２などの各種プログラムを実行することで、画像処理装置１００の全体を制御する。ＲＡＭ１０４は、ＣＰＵ１０２で各種プログラムを実行するためのワーキングメモリとして機能する。ＲＯＭ１０６は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００３０】
ネットワークインターフェイス１０８は、各種の通信媒体を介して、他の装置（サーバー装置など）とデータを遣り取りする。より具体的には、ネットワークインターフェイス１０８は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００３１】
ハードディスク１１０は、本実施の形態に従う各種処理を実現するための画像処理プログラム（主として、テンプレートマッチング実行プログラム１１２）、および、テンプレート画像１８などを格納する。ハードディスク１１０には、オペレーティングシステムなどのプログラムがさらに格納されてもよい。
【００３２】
表示部１２０は、オペレーティングシステムが提供するＧＵＩ（Graphical  User  Interface）画面やテンプレートマッチング実行プログラム１１２の実行によって生成される画像などを表示する。入力部１２２は、典型的には、キーボード、マウス、タッチパネルなどからなり、ユーザーから受け付けた指示の内容をＣＰＵ１０２などへ出力する。
【００３３】
メモリーカードインターフェイス１２４は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記録媒体）１２６との間で、データの読み書きを行なう。カメラインターフェイス１２８は、被写体を撮影することで取得される、探索対象画像１６を生成するための画像をカメラ１０から取り込む。カメラ１０は、画像を取得するための画像取得手段として機能する。但し、画像処理装置１００本体が被写体を撮影する機能を有していなくともよい。この場合には、典型的には、何らかの装置で取得した各種画像を格納したメモリーカード１２６を介して、必要な画像が取り込まれる。すなわち、メモリーカードインターフェイス１２４にメモリーカード１２６が装着され、メモリーカード１２６から読み出された各種画像は、ハードディスク１１０などへ格納（コピー）される。
【００３４】
ハードディスク１１０に格納される、テンプレートマッチング実行プログラム１１２は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記録媒体に格納されて流通し、あるいは、ネットワークを介してサーバー装置などから配信される。テンプレートマッチング実行プログラム１１２は、画像処理装置１００（パーソナルコンピューター）で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび必要な順序で呼出して処理を実現する。この場合、テンプレートマッチング実行プログラム１１２自体は、オペレーティングシステムによって提供されるモジュールは含まず、それに代えて、オペレーティングシステムと協働して画像処理を実現する。テンプレートマッチング実行プログラム１１２は、単体のプログラムではなく、何らかのプログラムの一部に組み込まれて提供されてもよい。このような場合にも、プログラム自体には、他のプログラムと共通に利用されるようなモジュールは含まれず、それに代えて、当該他のプログラムと協働して画像処理が実現される。このような一部のモジュールを含まないテンプレートマッチング実行プログラム１１２であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。
【００３５】
さらに、テンプレートマッチング実行プログラム１１２によって提供される機能の一部または全部を専用のハードウェアによって実現してもよい。
【００３６】
《ｂ３：その他の構成による実現例》
上述したパーソナルコンピューターにより実現する例に加えて、例えば、デジタルカメラ、携帯電話、あるいはスマートフォン上に実装してもよい。さらに、少なくとも１つのサーバー装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、ユーザーは、自身の端末（パーソナルコンピューターやスマートフォンなど）を用いて、少なくとも２つの処理対象画像をサーバー装置（クラウド側）へ送信し、当該送信された処理対象画像に対して、サーバー装置側が本実施の形態に従う画像処理を行なうような構成が想定される。但し、サーバー装置側がすべての機能（処理）を行なう必要はなく、ユーザー側の端末とサーバー装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００３７】
［Ｃ．実施の形態１］
《ｃ１：全体構成》
図３は、実施の形態１に従う画像処理装置１００の機能構成を示す模式図である。図３を参照して、実施の形態１に従う画像処理装置１００は、テンプレート画像１８と探索対象画像１６との間で回転方向の変化（回転量）を推定し、テンプレート画像１８および探索対象画像１６の少なくとも一方を補正する。画像処理装置１００は、この回転方向の変化の補正を行なった上で、画像間のマッチング処理によって画像間の対応する位置を検出する。説明の便宜上、以下の説明においては、探索対象画像１６を回転させることで回転補正を行なう場合の処理を例示する。もちろん、テンプレート画像１８に対して回転補正するようにしてもよい。
【００３８】
より具体的には、画像処理装置１００は、その機能構成として、テンプレート保持部１５０と、画像取得部１５２と、回転補正部１５４と、位置検出部１６０とを含む。
【００３９】
テンプレート保持部１５０は、予め用意されたテンプレート画像１８を保持する。テンプレート保持部１５０は、テンプレート画像１８を予め登録する。テンプレート画像１８は、テンプレートマッチングの目的などに応じて、ユーザーなどが任意に作成および／または設定する。ユーザーなどによって予め用意されたテンプレート画像１８は、任意の記録媒体または通信媒体を介して画像処理装置１００へ取得され、つまりファイル入力などによって読み込まれ、テンプレート保持部１５０で保持される。もちろん、カメラ１０により撮影された画像の全部または一部を用いて、テンプレート画像１８を作成してもよい。テンプレート保持部１５０が保持するテンプレート画像１８は、後述する回転量推定処理および位置検出処理において用いられる。
【００４０】
画像取得部１５２は、任意の方法で、テンプレートマッチングの対象になる探索対象画像１６を取得する。典型的には、画像取得部１５２は、カメラ１０が被写体を撮影することで生成される探索対象画像１６を取得する。もちろん、探索対象画像１６の取得方法としては、カメラ１０からの入力方法に限られず、予め撮影された探索対象画像１６を、任意の記録媒体または通信媒体を介して取得する、つまりファイル入力してもよい。
【００４１】
取得される探索対象画像１６は、１枚であることもあるし、連続的に撮影された複数枚であってもよい。カメラ１０との連係方法として、カメラ１０が所定周期で画像取得しており（動画像の取り込みをしており）、その連続的に取得される画像がフレームバッファに一次的に保存される。そして、何らかのトリガー（ユーザーによるレリーズ、所定時間経過後に自動撮影、別の認識処理によるトリガー）が発生することによって、フレームバッファに保存されている画像のうち対応する画像が取得されて、処理されるような場合もある。
【００４２】
回転補正部１５４は、テンプレート画像１８と探索対象画像１６との間の相対的な回転量を推定するとともに、その推定された相対的な回転量でテンプレート画像１８および探索対象画像１６の少なくとも一方を回転補正する。上述したように、実施の形態１に従う画像処理装置１００は、探索対象画像１６に対して回転補正を行なう。より具体的には、回転補正部１５４は、回転量推定部１５６と、画像補正部１５８とを含む。
【００４３】
回転量推定部１５６は、テンプレート画像１８と探索対象画像１６との間の相対的な回転量のずれを推定するとともに、画像間にある回転方向の変位量の候補を複数推定する。すなわち、回転量推定部１５６は、テンプレート画像１８と探索対象画像１６との間で回転方向についてのマッチング（第１のマッチング）を行なうとともに、回転方向についてのマッチング（第１のマッチング）の結果と周期性の情報とに基づいて、テンプレート画像１８と探索対象画像１６との間の回転方向の相対的なずれを補正する回転量の候補を複数決定する。この相対的な回転量の推定のロジックとしては、各種の方法を採用することができるが、本実施の形態においては、ＰＯＣ法を用いて回転量を推定する。
【００４４】
画像補正部１５８は、回転量推定部１５６によって推定された複数の回転量に基づいて、テンプレート画像１８または探索対象画像１６を補正して、複数の補正後画像（以下の説明では、探索対象画像１６に対して回転補正する）を生成する。すなわち、画像補正部１５８は、回転量の候補の各々を用いて、テンプレート画像１８と探索対象画像１６との間の回転方向の相対的なずれを補正した画像の組を複数生成する。
【００４５】
回転補正は、アフィン変換を用いて一方の画像を相対的に回転させることで実現する。アフィン変換は、補間処理を含むが、この補間処理は、Ｂｉ−ｌｉｎｅａｒ法やＣｕｂｉｃＣｏｎｖｏｌｕｔｉｏｎ法といった公知の補間方法を採用することができる。
【００４６】
回転補正部１５４における回転補正処理の詳細については、後述する。
位置検出部１６０は、回転補正によって生成されるそれぞれの補正後画像を用いて、対応する位置を検出するための処理を実行する。すなわち、位置検出部１６０は、画像補正部１５８によって生成された画像の組の各々で位置についての位置検出処理（第２のマッチング）を行なうとともに、位置検出処理の結果のうち相対的に確度の高い結果を出力する。
【００４７】
位置検出のロジックとしては、各種の方法を採用することができるが、本実施の形態においては、ＰＯＣ法を用いた位置検出を採用する。本実施の形態においては、周期情報を利用して複数の回転量が候補として推定され、回転量の各候補について位置検出が実行される。位置検出部１６０は、最も確からしい結果を最終的な位置情報として出力する。この位置検出部１６０での位置検出処理の詳細については、後述する。
【００４８】
《ｃ２：回転補正処理》
次に、上述した回転補正処理の詳細について説明する。図４は、実施の形態１に従う画像処理装置１００の回転補正部１５４における回転補正処理の概要を説明するための模式図である。
【００４９】
本実施の形態においては、テンプレート画像１８の回転方向の周期性に着目して、回転補正処理に用いる回転量の候補を複数推定する。これらの推定された複数の回転量の各々を用いて、後段の位置検出処理を行なうことで、位置検出のロバスト性を高める。
【００５０】
図４を参照して、まず、テンプレート画像１８と探索対象画像１６との間で、相対的な回転量のずれが検出される。具体的には、テンプレート画像１８と探索対象画像１６との間の相対的な回転量を順次変更しつつ、画像間の類似度を算出する。すなわち、テンプレート画像１８と探索対象画像１６との間で、回転方向に関するマッチング処理が実行される。このマッチング処理としては、任意の手法を採用できるが、本実施の形態においては、ＰＯＣ法を採用する。ＰＯＣ法を採用した場合には、類似度としてＰＯＣ値が算出される。
【００５１】
例えば、図４に示すようなテンプレート画像１８と探索対象画像１６との間では、探索対象画像１６の回転量に応じて、参照符号３０に示すようなＰＯＣ値が算出される。すなわち、テンプレート画像１８および探索対象画像１６に示すような格子状のオブジェクトは、周期性を有しており、ＰＯＣ値（類似度）も９０°の周期でピークが現われる。
【００５２】
そこで、参照符号３０に示すようなＰＯＣ値の特性にピークが現われると、そのピーク位置に対応する角度を補正すべき回転量の候補の一つとして決定するとともに、決定した回転量の候補を周期情報に基づいて補正することで、他の一つ以上の回転量の候補を決定する。ここで、周期情報は、テンプレート画像１８および探索対象画像１６の少なくとも一方についての、回転方向の周期性の情報である。周期情報の取得方法の詳細については、後述する。
【００５３】
より具体的には、周期情報を予め取得しておき、最大ピークを示す回転量θに加えて、回転量θ±（周期情報に応じた回転量）を回転補正の候補として決定する。例えば、周期情報が９０°であり、最大ピークを示す回転量θ＝−１０°である場合、回転量θ＝−１０°に加えて、回転量θ＝８０°（−１０°＋９０°＝８０°）の合計２つを推定結果として出力する。そして、それぞれの推定結果に応じて探索対象画像１６を補正することで、補正後画像１６Ａおよび１６Ｂが生成される。これらの補正後画像１６Ａおよび１６Ｂを用いて、後段の位置検出処理が実行される。すなわち、画像の組を複数生成する処理は、回転方向についてのマッチング（第１のマッチング）により決定された回転量に対して、周期性の情報を示す回転量を加算および／または減算することで、回転量の候補を決定する処理を含む。
【００５４】
なお、回転量の推定結果としては、回転量θ＝−１００°（−１０°−９０°＝−１００°）も候補になり得るが、ＰＯＣ法を用いた場合は、−９０°から９０°の範囲までしか検出できないので、回転量θ＝−１００°は仕様範囲外として除外される。
【００５５】
図５は、実施の形態１に従う画像処理装置１００の回転量推定部１５６のより詳細な機能ブロック図である。図５を参照して、回転量推定部１５６は、その機能構成として、周波数変換部１５６１，１５６２と、対数化部１５６３，１５６４と、極座標変換部１５６５，１５６６と、ＰＯＣ処理部１５６７と、候補生成部１５６８とを含む。
【００５６】
周波数変換部１５６１および１５６２は、それぞれテンプレート画像１８および探索対象画像１６に含まれる周波数成分（振幅成分および位相成分）を算出する。回転量推定の処理においては、位相成分ではなく振幅成分を用いる。ここで、テンプレート画像１８および探索対象画像１６は、互いに同じサイズであるとする。
【００５７】
対数化部１５６３および極座標変換部１５６５は、テンプレート画像１８についての振幅成分を対数化するとともに、極座標画像へ変換する。同様に、対数化部１５６４および極座標変換部１５６６は、探索対象画像１６についての振幅成分を対数化するとともに、極座標画像へ変換する。このような極座標画像への変換によって、回転量が２次元座標上の座標点として表現される。ここで、極座標画像の横方向の座標が回転量に相当する。
【００５８】
ＰＯＣ処理部１５６７は、極座標変換部１５６５および１５６６からそれぞれ出力される極座標画像間について、類似度および平行移動量（回転量に相当）を算出する。ＰＯＣ処理部１５６７で算出される類似度は、相関値またはＰＯＣ値とも称される。
【００５９】
図６は、ＰＯＣ法のアルゴリズムを示す模式図である。図６を参照して、ＰＯＣ処理部１５６７は、基準ウィンドウ設定部１５７１と、参照ウィンドウ設定部１５７２と、周波数変換部１５７３，１５７４と、位相情報取出部１５７５，１５７６と、位相差算出部１５７７と、周波数逆変換部１５７８とを含む。
【００６０】
基準ウィンドウ設定部１５７１および参照ウィンドウ設定部１５７２は、テンプレート画像（極座標変換画像）および探索対象画像（極座標変換画像）に対して、それぞれウィンドウを設定する。
【００６１】
周波数変換部１５７３は、テンプレート画像上に設定された基準ウィンドウに対して、周波数変換（典型的には、フーリエ変換）を行なうことで、その中に含まれる画像情報を周波数空間の情報へ変換する。同様に、周波数変換部１５７３は、探索対象画像上に設定された参照ウィンドウに対して、周波数変換（典型的には、フーリエ変換）を行なうことで、その中に含まれる画像情報を周波数空間の情報へ変換する。これらの変換された周波数空間の情報は、周波数毎の振幅情報および位相情報を含む。すなわち、周波数変換部１５７３および１５７４は、それぞれのウィンドウに含まれる部分画像に対して周波数分解を行なう。
【００６２】
例えば、ウィンドウサイズがＮ×Ｍの場合、横方向の周波数の全域は、直流成分と周波数Ｆ１〜Ｆｘ＿ｍａｘ＝（Ｎ−１）／２（但し、Ｎは奇数サイズとする）の交流成分で表され、縦方向の周波数の全域は、直流成分と周波数Ｆ１〜Ｆｙ＿ｍａｘ＝（Ｍ−１）／２（但し、Ｍは奇数サイズとする）で表される。なお、実際には、交流成分は、Ｎ個またはＭ個存在するが、直流成分を中心とした対称的な情報を有するので、有意な情報としては、Ｆｘ＿ｍａｘ×Ｆｙ＿ｍａｘ個しか存在しない。
【００６３】
一般的な周波数変換の計算結果は、実部および虚部を含む複素数形式で出力される。典型的には、（１）式に従って、周波数変換が実行される。
【００６４】
【数１】
2014199824.tif 000003
【００６５】
すなわち、周波数情報は、実部Ｒｅ（ｕ，ｖ）および虚部Ｉｍ（ｕ，ｖ）を含む複素数形式で出力される。また、実部および虚部の値を用いて、振幅情報Ａ（ｕ，ｖ）および位相情報θ（ｕ，ｖ）に変換できる。
【００６６】
振幅情報および位相情報と、実部および虚部を含む複素数表現との関係式は、（２）式のようになる。
【００６７】
【数２】
2014199824.tif 000004
【００６８】
なお、周波数変換の結果は、振幅と位相とを組み合わせた形式で保存してもよいし、実部と虚部とを組み合わせた形式で保存してもよい。
【００６９】
位相情報取出部１５７５および１５７６は、それぞれ周波数変換部１５７３および１５７４から出力される周波数変換の結果（典型的には、複素数形式）を用いて、基準ウィンドウおよび参照ウィンドウについての位相情報をそれぞれ抽出する。
【００７０】
位相差算出部１５７７は、位相情報取出部１５７５，１５７６によりそれぞれ抽出されたウィンドウについての位相情報の差を算出する。つまり、位相差算出部１５７７は、位相差情報を生成する。
【００７１】
周波数逆変換部１５７８は、位相差算出部１５７７によって算出された位相差情報に対して周波数逆変換を行なうことで、それぞれ設定されているウィンドウに含まれる部分画像間の類似度を示すＰＯＣ値を算出する。このＰＯＣ値を算出する処理は、参照ウィンドウ設定部１５７２がテンプレート画像上に設定する参照ウィンドウの位置を更新する毎に繰り返し実行される。
【００７２】
図７は、図６に示す一般的なＰＯＣ法に従って算出されたＰＯＣ値の一例を示す図である。図７には、図４に示すテンプレート画像１８および探索対象画像１６から得られたＰＯＣ値の算出結果の一例を示す。図７に示す算出結果においては、２つのピークが現われている。これは、図４に示すテンプレート画像１８および探索対象画像１６が格子状のオブジェクトであることに起因している。すなわち、テンプレート画像１８および探索対象画像１６のそれぞれに含まれる振幅成分は、図７に示すように十字状になり、これによって、位相成分で考えた場合には、回転量θとθ±９０°との間で区別ができず、その結果、ＰＯＣ法によって算出されるＰＯＣ値（相関値）についても、複数のピークが現われることになる。
【００７３】
なお、ＰＯＣ法では、回転量θとθ±１８０°との間についても区別ができないが、公知のＲＩＰＯＣ法の仕様としては、テンプレート画像を基準として±９０°の範囲でのみ探索するので、１８０°回転については考慮する必要はない。但し、通常の仕様と異なり、９０°を超えて回転させる場合には、参考文献（Gerhard  X.  Ritter,  Joseph  N.  Wilson,  "Handbook  of  Computer  Vision  Algorithms  in  Image  Algebra",  1996.5.1）などを参照されたい。
【００７４】
このように、テンプレート画像１８および探索対象画像１６の内容によっては、複数のピークが現われる。公知のＲＩＰＯＣ法では、最大ピークに対応する回転量を回転変動量として推定する。そのため、複数のピークが生じた場合には、いずれのピークが真に正しい回転量を示しているのかを正確に判断することはできない。
【００７５】
上述したように、本実施の形態においては、このようなロバスト性を低下させる要因を排除するために、画像に含まれる回転方向の周期性に着目して、回転量推定の段階においては、回転量の候補を複数推定する。
【００７６】
そこで、図５に示す回転量推定部１５６の候補生成部１５６８は、ＰＯＣ法に従って算出された最大ピークを示す回転量θと併せて、回転量θ±（周期情報に基づく回転量）を回転量の候補として推定する。上述したように、例えば、周期情報が９０°であり、最大ピークを示す回転量θ＝−１０°である場合、回転量θ＝−１０°に加えて、回転量θ＝８０°（−１０°＋９０°＝８０°）の合計２つを推定結果として出力する。そして、それぞれの推定結果に応じて探索対象画像がそれぞれ補正される。
【００７７】
図８は、実施の形態１に従う画像処理装置１００の回転補正部１５４による回転補正処理の結果例を示す図である。図８に示すように、テンプレート画像１８と探索対象画像１６との間にある回転方向の変動量、および周期情報に基づいて、探索対象画像１６が複数の回転量の候補で補正されて、補正後画像１６Ａおよび１６Ｂが生成される。補正後画像１６Ａおよび１６Ｂのそれぞれを用いて、位置探索処理が実行される。
【００７８】
《ｃ３：周期情報》
周期情報は、各種の方法を用いて取得することができる。典型的には、テンプレート画像に含まれる周波数成分（振幅成分および位相成分）を算出し、この周波数成分の周期性から周期情報を決定してもよい。より具体的には、ユーザーは、テンプレート画像１８を作成する際、その画像特徴からどのような周期性があるかを知ることができる。具体的には、テンプレート画像１８に対して周波数変換を行なって振幅情報を抽出することで、図５に示す対数化処理後の画像にあるような画像を得ることができる。このような画像を見ることで、ユーザーは、回転方向にどのような周期性があるかを確認することができる。
【００７９】
このように周期性を確認した上で、ユーザーは、その周期性を周期情報として画像処理装置１００へ与えることができる。すなわち、周期性の情報を取得する処理としては、テンプレート画像１８の生成時に、ユーザーが設定した周期性の情報を受け付ける処理を含む。
【００８０】
《ｃ４：位置検出処理》
次に、上述した位置検出処理の詳細について説明する。
【００８１】
上述したように、本実施の形態においては、複数の回転量の候補のそれぞれで探索対象画像を補正し、補正後のそれぞれの画像を用いて、位置検出を行なう。そして、位置検出の結果から、最も確からしい結果を最終的な位置情報として出力する。
【００８２】
上述の図８に示す例（周期情報が９０°であり、最大ピークを示す回転量θ＝−１０°である場合、回転量θ＝−１０°，８０°の２つを回転量推定の結果が出力される）、回転量θ＝−１０°の補正を行なった場合の位置検出結果と、回転量θ＝８０°の補正を行なった場合の位置検出結果とが得られる。
【００８３】
図３に示す画像処理装置１００の位置検出部１６０は、これらの位置検出結果に付随する最大ピークの大きさを比較することで、いずれかの位置検出結果が確からしいかを判断する。
【００８４】
図８に示すように、探索対象画像１６を−１０°および８０°でそれぞれ補正することで、補正後画像１６Ａおよび１６Ｂが得られる。探索対象画像１６を８０°補正して得られる補正後画像１６Ｂは、テンプレート画像１８と見え方が異なるため、最大ピークの値が小さくなり、位置検出結果の精度が高くないと判断される可能性が高い。これに対して、探索対象画像１６を−１０°補正して得られる補正後画像１６Ａは、テンプレート画像１８とほぼ同じ見え方であるので、最大ピークの値が高くなり、正確に位置を検出することが可能になる。
【００８５】
《ｃ５：処理手順》
次に、本実施の形態に従う位置検出処理の全体手順について説明する。図９は、実施の形態１に従う位置検出処理の全体手順を示すフローチャートである。図９に示す各ステップは、典型的には、ＣＰＵ１０２がテンプレートマッチング実行プログラム１１２（いずれも図２）を実行するなどして実現される。
【００８６】
図９を参照して、まず、ＣＰＵ１０２は、テンプレート画像を取得する（ステップＳ１００）。このテンプレート画像の取得は、基準となるワークをカメラ１０により撮影して得られる画像からユーザーが切り出してもよいし、ワーク２の設計データなどから生成された画像を取得するようにしてもよい。続いて、ＣＰＵ１０２は、周期情報を取得する（ステップＳ１０２）。この周期情報は、テンプレート画像に関連付けて外部から取得してもよいし、テンプレート画像に含まれる画像情報に基づいて、ユーザーが設定してもよい。ステップＳ１００およびＳ１０２において、本実施の形態に従うテンプレートマッチングに必要な情報が収集される。
【００８７】
続いて、ＣＰＵ１０２は、探索対象画像を取得する（ステップＳ１０４）。典型的には、ＣＰＵ１０２は、カメラ１０によりワーク２をカメラにより撮影して、探索対象画像を取得する。あるいは、別のカメラなどでワークを撮影して得られた画像を探索対象画像として取り込むようにしてもよい。ステップＳ１０４の処理を何らかのトリガーの発生を条件にして実行するようにしてもよい。例えば、ベルトコンベア３上に配置されたセンサーがワーク２の到着を検知したことを条件にして、カメラ１０により当該ワーク２を撮影するようにしてもよい。
【００８８】
続いて、ＣＰＵ１０２は、テンプレート画像と探索対象画像との間で回転方向の変化（回転量）を推定する（ステップＳ１０６）。より具体的には、図５に示すように、ＣＰＵ１０２は、それぞれの画像に対して、周波数変換、対数化処理、極座標変換を行なった上で、ＰＯＣ法を用いて回転量を推定する。この回転量推定において、ＣＰＵ１０２は、最も高い類似度（相関値）を示す回転量を決定する。そして、ＣＰＵ１０２は、ステップＳ１０６において決定した回転量から、周期情報を利用して回転量の候補を推定する（ステップＳ１０８）。より具体的には、ＣＰＵ１０２は、ステップＳ１０６において推定した回転量に周期情報を示す回転量を加算／減算して、回転量の候補を決定する。
【００８９】
続いて、ＣＰＵ１０２は、複数の候補の回転量を用いて、探索対象画像１６をそれぞれ回転させて複数の補正後画像を生成する（ステップＳ１１０）。そして、ＣＰＵ１０２は、テンプレート画像１８を用いて生成された複数の補正後画像の各々との間で位置検出を実行する（ステップＳ１１２）。より具体的には、ＣＰＵ１０２は、典型的には、ＰＯＣ法を用いて画像間の対応する位置を探索する。最終的に、ＣＰＵ１０２は、ステップＳ１１２において実行された位置検出の結果のうち、最も高い類似度（相関値）を示す結果を最終的な位置情報として出力する（ステップＳ１１４）。すなわち、ＣＰＵ１０２は、複数の候補の回転量を用いて実行した位置探索の結果のうち、最も確からしい結果を最終的な位置情報として出力する。そして、処理は終了する。
【００９０】
《ｃ６：利点》
本実施の形態によれば、回転補正に係る回転量を正確に求めることができない場合でも、画像の回転方向の周期性を利用することで、複数の回転量の候補を推定し、各候補を用いて位置検出を実行する。そして、位置検出結果から最適な回転量および対応する位置ずれ量を決定することで、よりロバスト性および正確性の高い位置検出を実現できる。
【００９１】
［Ｄ．実施の形態２］
上述の実施の形態１においては、回転量推定の処理において、テンプレート画像１８および探索対象画像１６に含まれる振幅成分を用いてＰＯＣ値（類似度）を算出し、最大ピークを示す回転量を決定するとともに、当該決定した最大ピークに対応する回転量を基準として、周期情報から１または複数の回転量の候補を推定する。この回転量推定の処理におけるＰＯＣ値（類似度）の探索処理では、基本的には、すべての回転量についてＰＯＣ値（類似度）を算出する必要がある。一方で、周期情報が取得されている場合には、ピークが現われる周期が予め予測できるので、周期情報からＰＯＣ値（類似度）の探索範囲を限定できる。
【００９２】
実施の形態２においては、このような周期情報を用いて、回転量推定の処理をより効率的に実行する処理について説明する。この回転量推定の処理以外の部分については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【００９３】
図１０は、実施の形態２に従う回転量推定の処理を説明するための図である。図１０には、回転量に対するＰＯＣ値の変化を模式的に一次元で表したものである。図１０に示す例では、回転量が０°，−９０°，９０°の合計３ヶ所にそれぞれピークが現われている。
【００９４】
ここで、周期情報が９０°であると予めわかっている場合には、０°を中心として±４５°の範囲だけを探索すればよい。すなわち、０°を中心として±４５°の範囲を探索することで、０°の位置にあるピークを特定できる。そして、特定された０°の位置を基準として、周期情報を用いて、残りの−９０°および９０°の位置にピークがあることを推定できる。
【００９５】
別の例として、テンプレート画像１８に対して探索対象画像１６が４０°回転している場合には、４０°および−５０°の２ヶ所にそれぞれピークが現われることになり、探索対象画像が６０°回転している場合には、６０°および−３０°の２ヶ所にそれぞれピークが現われることになる。いずれの場合についても、必ず±４５°の範囲（探索範囲）内に、少なくとも１つのピークが存在することになるので、探索範囲を限定してピークを探索することができる。
【００９６】
原理的には、周期情報αが得られている場合には、探索範囲を±（α／２）に限定すればよい。もちろん、ロバスト性を高めるために、尤度βを用いて、探索範囲を±（α／２＋β）としてもよい。
【００９７】
上述の実施の形態１では、振幅情報に対してＰＯＣ値を算出し、ＰＯＣ値の中から最大のピーク位置を探索し、この探索された最大ピーク位置に対応する回転量を基準に周期情報から複数の回転量の候補が推定される。これに対して、実施の形態２においては、周期情報からピーク位置を探索する範囲（探索範囲）を限定する。すなわち、実施の形態２においては、テンプレート画像１８と探索対象画像１６との間で回転方向についてのマッチング（第１のマッチング）は、周期性の情報に基づいて、回転量の探索を行なう範囲を限定する処理を含む。このような周期情報から探索範囲を限定する処理を採用することで、演算負荷を低減できる。
【００９８】
［Ｅ．実施の形態３］
上述の実施の形態２では探索範囲を限定することで、演算負荷が低減する構成について説明した。但し、探索範囲を限定することでロバスト性が低下する場合もある。そのため、実施の形態３では、回転量推定の処理において探索範囲を限定するとともに、探索範囲外の情報を利用することでロバスト性を向上させる処理について説明する。この回転量推定の処理以外の部分については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【００９９】
図１１は、画像にノイズ成分が含まれている場合に生じる回転量に対するＰＯＣ値の変化の一例を示す図である。図１２は、実施の形態３に従う回転量推定の処理を説明するための図である。
【０１００】
探索対象画像を取得する際に何らかのノイズ成分（ショットノイズやシェーディングなど）が生じると、図１１に示すように、本来あるべきではない場所（図１１中の位置ｂ）にピーク（偽のピーク）が現われる場合がある。図１１に示す例では、位置ａに最大のピークが生じるべきである。このような場合において、位置ｂに現われるピークが最大ピークを示すときには、位置ｂに対応する回転量を基準として、周期情報から回転量の候補が決定される。そのため、後段での位置検出においては、誤推定された回転量および当該回転量から周期情報を用いて算出された回転量でそれぞれ補正された画像を用いて、位置検出が実行される。そのため、位置検出を正確に実行することができない。
【０１０１】
図１１に示す例では、探索範囲を±４５°に限定した場合でもこのような誤検出は生じ得る。そこで、実施の形態３においては、図１２に示すように、限定した探索範囲と探索範囲外のＰＯＣ値の情報とを統合することで、偽のピークが生じたことによる精度への影響を排除する。より具体的には、探索範囲外のＰＯＣ値の特性（波形）を折り返して加算し、さらに平均化することで、図１１の位置ｂに現われていた偽のピークの振幅を低減させることができる。
【０１０２】
図１２に示す例では、正しいピーク位置（０°）では、探索範囲および探索範囲外の情報を統合した結果においてもピークが存在するが、偽のピーク位置では、探索範囲外の情報にはピークが存在しない。このように、ＰＯＣ値を統合処理（加算または平均）することで、偽のピークの振幅を小さくできる。すなわち、偽のピークに対応する回転量が推定結果として出力されることを防止できる。
【０１０３】
実施の形態３においては、周期情報から探索範囲を限定するとともに、探索範囲外のＰＣＯ値の情報を探索範囲に統合することで、ノイズ成分などの影響を低減して、ロバスト性が高めることができる。すなわち、実施の形態３では、回転量の探索を行なう範囲を限定する処理では、回転量の探索を行なう範囲における回転量と類似度との関係を、回転量の探索を行なう範囲外における回転量と類似度との関係で補正することで、探索を行なう範囲の類似度の情報を生成する処理を含む。
【０１０４】
［Ｆ．実施の形態４］
上述の実施の形態３では、探索範囲と探索範囲外とのＰＯＣ値の情報を統合することで、ロバスト性を向上する処理について説明した。これに対して、実施の形態４においては、統合処理ではなく、別の処理で、偽のピークを除外する処理について説明する。この回転量推定の処理以外の部分については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１０５】
上述したように、探索対象画像を取得する際に何らかのノイズ成分（ショットノイズやシェーディングなど）が生じると、図１１に示すような、本来あるべきではない場所（図１１中の位置ｂ）にピーク（偽のピーク）が現われる場合がある。
【０１０６】
ＰＯＣ値の特性に現われたピークが本来のピークであるか、偽のピークであるかを判断する方法として、各ピークについて周期性の有無を判断するようにしてもよい。図１１に示す例においては、図１１中の位置ｂのピークが最大ピークを示す場合には、この位置ｂに対応する回転量を基準として、周期情報から得られた周期（この例では、９０°）を加算／減算した位置（ピーク位置の回転量±９０°）のＰＯＣ値を評価する。この（ピーク位置の回転量±９０°）でのＰＯＣ値が予め定められたしきい値よりも小さい場合は、周期性が見られないので、位置ｂに現われているピークが偽のピークであると判断でき、これを除外する。
【０１０７】
このように位置ｂに現われている偽のピークを除外した後、位置ｂ以外の位置にある次に大きな振幅を有するピークを探索する。新たに探索されたピークについても、周期性の有無を判断する。この判断によって、周期性があると判断された場合には、当該ピークの位置および周期情報に対応する位置を回転量の候補として抽出する。後段においては、抽出された回転量の候補のそれぞれについて位置検出の処理を実行し、最も確からしい結果（回転量および対応する位置）を最終的な位置情報として出力する。
【０１０８】
実施の形態４においては、抽出された最大ピークを示す回転量を基準として、周期的なピークが存在するか否かを判断することで、その抽出されたピークが偽のピークであるか否かを判断することができる。すなわち、実施の形態４においては、テンプレート画像１８と探索対象画像１６との類似度の回転量に対する変化特性を参照して、回転量の候補のうち、周期性の情報の条件を満たさない候補を除外する処理を実行する。このように、抽出されたピークについての周期性の有無を判断することで、偽のピークを排除することができ、これによってロバスト性を向上できる。
【０１０９】
［Ｇ．実施の形態５］
上述の実施の形態１においては、ユーザーが周期情報を取得して設定するような例について説明した。図４に示すような格子状の単純なテンプレート画像のパターンであれば、ユーザーが知り得ることができる。しかしながら、少し複雑なパターンになると、どのような周期性を有しているか否かを知ることが困難になる。そこで、実施の形態５においては、ユーザーがテンプレート画像を設定すれば、そのテンプレート画像がどのような周期性を有しているか否かを自動的に判断する構成について例示する。
【０１１０】
図１３は、実施の形態５に従う画像処理装置１００Ａの機能構成を示す模式図である。図１３を参照して、実施の形態５に従う画像処理装置１００Ａは、図３に示す画像処理装置１００に比較して、周期情報算出部１６２がさらに付加されている。その他のコンポーネントについては、図３を参照して説明したので、詳細な説明は繰り返さない。
【０１１１】
図１３に示す周期情報算出部１６２は、後述するような処理例１〜３のいずれかの方法を用いて、テンプレート画像が有している周期情報を算出する。
【０１１２】
《ｇ１：処理例１》
処理例１として、周期情報算出部１６２は、ユーザーが設定したテンプレート画像同士の間で回転推定を行なう。このテンプレート画像同士の回転推定は、オフライン、すなわち探索対象画像に対する位置探索処理が実行される前に実行される。
【０１１３】
何らかの周期性を有するテンプレート画像では、その周期性に合わせてピークが複数出現するので、これらのピークからテンプレート画像に含まれる周期性を抽出できる。より具体的には、複数出現したピークのうち、そのピーク値（振幅）が予め定められたしきい値を越えているものを抽出し、その抽出したピークがどのくらいの画素間隔で発生しているかを判断することで、周期情報を算出できる。
【０１１４】
例えば、テンプレートサイズが１２８画素×１２８画素である場合、１画素が１．４°に相当する（テンプレートサイズの全体で１８０°になるとした場合）ので、一例として、ピークの出現する画素間隔が３２画素であるときには、周期情報としては、３２画素×１．４°≒４５°となる。このような処理によって、テンプレート画像が有する周期情報が４５°であるということがわかるので、上述の実施の形態において説明したように、この周期情報を考慮して、回転量を推定できる。
【０１１５】
なお、完全に同一のテンプレート画像同士で回転推定を行なうと、ＰＯＣ値としては、画像中央にのみ鋭いピークが出力されて、周期情報を算出することが難しくなる。そのため、回転推定の対象となるテンプレート画像間に何らかの誤差を生じさせることが好ましい。このような誤差を生じさせる方法としては、例えば、いずれか一方のテンプレート画像に対して、ランダムノイズなどの何らかのノイズを付与する方法を採用してもよいし、一方のテンプレート画像を平滑化フィルタなどで画像劣化させる方法を採用してもよい。
【０１１６】
《ｇ２：処理例２》
処理例２として、周期情報算出部１６２は、テンプレート画像とテンプレート画像を回転させて生成される画像との間で相関値を算出し、これによって、テンプレート画像が有している周期性を算出する。
【０１１７】
より具体的には、周期情報算出部１６２は、ユーザーが設定したテンプレート画像を所定角度ずつ（例えば、１°ずつ）回転させた画像を複数生成する。この画像生成処理は、オフラインで実行される。そして、周期情報算出部１６２は、ユーザーが設定したテンプレート画像を用いて、所定角度ずつ回転させて生成された複数の画像との間で位置検出のマッチングをそれぞれ行なうことで、画像別に相関値を算出する。画像別に算出される相関値は、その周期性に合わせて変動する。つまり、周期性に合わせて、より高いマッチング度を示すようになる。そこで、算出された相関値のうち、予め定められたしきい値を越えている相関値のデータから、ピークがどの程度の回転量の間隔で発生しているかを算出することで、周期情報を決定できる。
【０１１８】
《ｇ３：処理例３》
図１４は、実施の形態５の処理例３に従う画像処理装置の回転量推定部１５６および周期情報算出部１６２のより詳細な機能ブロック図である。図１４を参照して、周期情報算出部１６２は、テンプレート画像の振幅情報を極座標変換した画像（極座標変換画像）に対して、回転量を表す軸（図１４に示す極座標変換画像では横軸）方向に周波数変換（典型的には、フーリエ変換）を行なうことで、周期性に相当する周波数のピークが高くなる。この性質を利用して周期情報を取得する。
【０１１９】
《ｇ４：利点》
実施の形態５においては、周期性の情報を取得する処理は、テンプレート画像１８同士で回転方向についてのマッチング（第３のマッチング）を行なう処理と、当該マッチングの結果に現われる類似度の周期から周期性を決定する処理とを含む。このような実施の形態５によれば、ユーザーはテンプレート画像を設定すれば、その設定したテンプレート画像についての周期性の情報を自身で設定する必要がない。つまり、設定したテンプレート画像の有している周期性が自動的に解析されるので、ユーザビリティを高めたシステムを実現できる。
【０１２０】
《ｇ５：その他》
上述したように、自動的に決定された周期性の情報に加えて、あるいは、それに代えて、ユーザーが任意に設定するようにしてもよい。つまり、周期性の情報を取得する処理としては、ユーザーから任意の周期性の情報を受け付ける処理を含んでいてもよい。
【０１２１】
［Ｈ．実施の形態６］
上述の実施の形態１では、回転量推定時に最大ピークの回転量のみを求め、周期情報に基づいて複数の回転量を推定していたが、別の処理方法を採用してもよい。実施の形態６では、回転量推定の処理のバリエーションについて説明する。この回転量推定の処理以外の部分については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１２２】
例えば、回転量推定時において、予め定められたしきい値以上の振幅を有するピーク位置を算出するとともに、各ピーク位置に対する周期的な位置も算出するようにしてもよい。この場合、回転量の候補が多数存在することになり演算負荷が高くなり得る。回転量推定では、照明変動などの不安定な振幅情報を使うため、回転量推定での誤りの確率が増加する可能性があるが、後段の位置検出では、照明変動などの誤差要因に対してロバストなＰＯＣ法を利用することで、正しく回転量が補正された画像についてのみ高い相関値を有する位置検出結果を得ることができる。
【０１２３】
実施の形態６によれば、複数の回転量候補に対して後段の位置検出を行なうことで、ロバストな検出が可能になる。
【０１２４】
［Ｉ．実施の形態７］
上述の実施の形態１では、回転量推定時に最大ピークの回転量のみを求め、周期情報に基づいて複数の回転量を推定していたが、別の処理方法を採用してもよい。実施の形態７では、回転量推定の処理のさらなるバリエーションについて説明する。この回転量推定の処理以外の部分については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１２５】
例えば、回転量推定時において、予め定められたしきい値以上の振幅を有する複数のピーク位置を算出するとともに、算出した複数のピーク位置について、周期的な関係が存在するか否かを判断する。
【０１２６】
周期的な関係が存在しない場合には、そのピーク位置を除外した上で回転量の候補を決定し、後段での位置検出を実行する。この処理は、周期情報に合致する最大ピーク位置を算出することを意味する。
【０１２７】
図１５は、実施の形態７に従う回転量推定の処理を説明するための図である。図１５に示すピーク（１）では、最大のピーク値を示しており、ピーク（２）〜（４）では、予め定められたしきい値（横方向の破線）を超えるピーク値を示している。
【０１２８】
実施の形態７においては、図１５に示す（１）〜（４）のピークが回転量推定の候補として抽出される。次に、最大ピークから順に周期情報を利用して、そのピークの確からしさが判断される。なお、確からしさの判断は、必ずしも最大ピークから順に実施される必要はなく、その順番は任意である。例えば、図１５に示す左側に位置するピークから順に行なってもよいし、右側に位置するピークから順に行なってもよい。
【０１２９】
（１）のピークに対して、周期情報Ａ（ここでは一例として、９０°とする。図１５においては、９０°に相当する長さを矢印で示している。）を利用して、その対応する位置にしきい値を超えるようなピークが存在するか否かを判断する。図１５に示す例では、（１）のピークからちょうど９０°離れた位置にピークは存在しないので、（１）のピークは候補から除外される。
【０１３０】
次に、（２）のピークに対して、周期情報Ｂ（ここでは、同じく９０°とする。）を利用して、その対応する位置にしきい値を超えるようなピークが存在するか否かを判断する。図１５に示す例では、（２）のピークからちょうど９０°離れた位置に（３）のピークが存在するので、（２）のピークは確からしいとして候補として残される。
【０１３１】
次に、（３）のピークについては、先に（２）のピークと対になっていることが判明しているので、改めて周期情報を利用して判断する必要はなく、候補として残しつつ、（３）のピークについての判断処理はスキップされる。
【０１３２】
最後に、（４）のピークに対して、同様に判断が実行される。この例では、（４）のピークからちょうど９０°離れた位置にピークは存在しないので、（４）のピークは候補から除外される。
【０１３３】
上述したような実施の形態７に示すような手法を採用することで、本来誤りである回転量において最大ピーク位置が現われるような場合であっても、周期情報を利用することで、それらの誤りである回転量を排除することができる。そのため、回転量候補の推定をよりロバスト性を高めた状態で実現できる。その上で、後段での位置検出結果に基づいて、周期的な関係を持つ回転量の候補の中で最も確からしい回転量および位置を算出することができるので、さらにロバスト性が高めることができる。
【０１３４】
上述の例においては、予め定められたしきい値を超えるピーク（但し、（３）のピークのように別のピークと対になったピークは除く）のすべてについて、それぞれの確からしさを判断するようにしてもよいし、ピーク値の高いものから順に確からしさを判断していき、１つでも周期情報に合致するピークが発見された時点で、残っているピークを除外するようにしてもよい。このような処理を採用することで、周期情報を有する最も確からしい回転量の推定候補を決定できるとともに、演算時間を短縮することも可能になる。
【０１３５】
［Ｊ．その他の実施の形態］
上述の実施の形態１〜７においては、位置検出の手法としてＰＯＣ法を利用する処理例について説明したが、画像間で位置検出を行なうことができる任意の手法を採用してもよい。例えば、ＳＡＤ（Sum  of  Absolute  Difference）法のような位置検出できる手法を採用できる。ＳＡＤ法は、テンプレート画像と探索対象画像との間で画素毎に差の絶対値和を算出して、類似度を評価する方法である。
【０１３６】
本実施の形態においては、回転量補正処理において、テンプレート画像の回転量が最適化されているので、最終的な候補を絞り込むだけであれば、多少ロバスト性が劣る手法でも利用可能である。一方、ＳＡＤ法は、ＰＯＣ法に比較して演算負荷が小さいので、処理を高速化できる。
【０１３７】
なお、ＳＡＤ法に限られる、ＳＳＤ（Sum  of  Squared  Difference）やＮＣＣ（Normalize  Cross  Correlation）といった他の手法を用いても同様の効果は得ることができる。
【０１３８】
［Ｋ．付記］
本実施の形態は、以下のような局面を含む。
【０１３９】
画像処理装置は、テンプレート画像と探索対象画像を取得する手段と、取得した画像の振幅情報の回転方向に関する周期性を取得する手段と、テンプレート画像と探索対象画像の振幅情報と周期性を利用して、相対的な回転量を複数推定する手段と、推定した複数の回転量に基づいて、それぞれテンプレート画像と探索対象画像間の相対的な回転量を補正する手段と、補正後のそれぞれの画像から、テンプレートマッチングの相関値が最も高い位置を、探索対象画像内のオブジェクトの位置としてそれぞれ検出する手段と、検出した各位置の中で、最も高い相関値を有する位置を選択する手段とを含む。
【０１４０】
好ましくは、画像処理装置は、周期性の情報に基づいて、相対的な回転量を推定するための探索範囲を限定する手段と、限定した探索範囲から相対的な回転量を推定する手段と、推定された相対的な回転量と周期性の情報に基づいて、相対的な回転量を複数推定する手段とを含む。
【０１４１】
さらに好ましくは、画像処理装置は、限定した探索範囲における相関値と探索範囲以外の相関値を統合する手段を含む。
【０１４２】
好ましくは、画像処理装置は、推定された複数個の相対的な回転量に対して、周期性の情報に合致しない回転量を推定結果から除外する手段を含む。
【０１４３】
好ましくは、周期性を取得する手段は、テンプレート作成時にユーザーが設定する。
好ましくは、周期性を取得する手段は、ユーザーが設定したテンプレート同士で回転量推定のための処理を行ない、得られた相関値から周期性を算出する。
【０１４４】
［Ｌ．利点］
本実施の形態によれば、画像の回転を考慮した位置検出手法において、最初に算出される回転量推定時に、画像の回転方向の周期性を利用することで、周期性に合致しないピークの影響を低減したり、探索範囲を限定することで、ロバスト性を向上したり、演算負荷を低減したりすることができる。
【０１４５】
すなわち、ＲＩＰＯＣ法のように、回転方向のずれ量を最初に推定し、その後、位置探索を実行するようなアルゴリズムでは、最初の回転方向のずれ量の推定が重要である。特に、画像の振幅情報が回転方向に周期性を有するような場合では、いずれの回転量が正しいずれ量であるかを正確に判断できないため、誤った回転量を推定する可能性がある。また、画像上のノイズなどの影響で、周期性とは無関係な回転量を推定する可能性もある。そのため、画像の回転方向を考慮した位置検出手法において、画像の回転方向の周期性を利用して、最初に算出される回転量推定におけるロバスト性および正確性を高めることができる。
【０１４６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４７】
１  システム、２  ワーク、３  ベルトコンベア、１０  カメラ、１６  探索対象画像、１６Ａ，１６Ｂ  補正後画像、１８  テンプレート画像、１００，１００Ａ  画像処理装置、１０２  ＣＰＵ、１０４  ＲＡＭ、１０６  ＲＯＭ、１０８  ネットワークインターフェイス、１１０  ハードディスク、１１２  テンプレートマッチング実行プログラム、１２０  表示部、１２２  入力部、１２４  メモリーカードインターフェイス、１２６  メモリーカード、１２８  カメラインターフェイス、１３０  バス、１５０  テンプレート保持部、１５２  画像取得部、１５４  回転補正部、１５６  回転量推定部、１５８  画像補正部、１６０  位置検出部、１６２  周期情報算出部、１５６１，１５６２，１５７３，１５７４  周波数変換部、１５６３，１５６３，１５６４，１５６４  対数化部、１５６５，１５６５，１５６６，１５６６  極座標変換部、１５６７  ＰＯＣ処理部、１５６８  候補生成部、１５７１  基準ウィンドウ設定部、１５７２  参照ウィンドウ設定部、１５７５，１５７６  位相情報取出部、１５７７  位相差算出部、１５７８  周波数逆変換部。
【図１】
2014199824.tif 000005
【図２】
2014199824.tif 000006
【図３】
2014199824.tif 000007
【図６】
2014199824.tif 000008
【図９】
2014199824.tif 000009
【図１０】
2014199824.tif 000010
【図１１】
2014199824.tif 000011
【図１２】
2014199824.tif 000012
【図１３】
2014199824.tif 000013
【図１５】
2014199824.tif 000014
【図４】
2014199824.tif 000015
【図５】
2014199824.tif 000016
【図７】
2014199824.tif 000017
【図８】
2014199824.tif 000018
【図１４】
2014199824.tif 000019
【国際調査報告】
2014199824.tif 000020
2014199824.tif 000021
2014199824.tif 000022
2014199824.tif 000023