(57)【要約】【課題】周波数成分を用いたテンプレートマッチング処理の精度を向上することが可能な画像処理装置、画像処理方法、および、画像処理プログラムを提供することである。【解決手段】画像処理装置１００は、テンプレート画像と入力画像との各々に窓関数処理を行うための窓関数処理部２２０と、窓関数処理後のテンプレート画像および入力画像の各々を周波数変換して、周波数変換後のテンプレート画像および入力画像をマッチングするための照合部２３０と、テンプレート画像および入力画像の少なくとも一方に含まれる特徴量に依存して、テンプレート画像および入力画像に対して、窓関数処理の前にネガポジ反転処理を選択的に行うための補正部２１０とを備える。【選択図】図４
2015176433.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と第２の画像との各々に窓関数処理を行うための窓関数処理部と、
前記窓関数処理後の前記第１の画像および前記第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするための照合部と、
前記第１の画像および前記第２の画像の少なくとも一方に含まれる特徴量に依存して、前記第１の画像および前記第２の画像に対して、前記窓関数処理の前にネガポジ反転処理を選択的に行うための補正部とを備える、画像処理装置。
【請求項２】
前記画像処理装置は、前記第１の画像および前記第２の画像の少なくとも一方を判定画像として用いて、前記補正部でのネガポジ反転処理が必要であるか否かを判定するための判定部をさらに備える、請求項１に記載の画像処理装置。
【請求項３】
前記判定画像は、検査対象となる対象物を含まない、前記判定画像内の非対象物領域を含み、
前記判定部は、前記非対象物領域における画素値を前記特徴量の抽出に用いる、請求項２に記載の画像処理装置。
【請求項４】
前記特徴量は、画像領域内の各画素の大きさに応じる統計値を含み、
前記判定部は、前記非対象物領域における前記統計値が所定値よりも大きい場合に前記ネガポジ反転処理が必要であると判定する、請求項３に記載の画像処理装置。
【請求項５】
前記統計値は、前記非対象物領域における各画素値の、平均値と、中央値と、最頻値と、前記非対象物領域における画素数に対する、所定の値以上を有する画素の数の割合とのうちの少なくとも１つを含む、請求項４に記載の画像処理装置。
【請求項６】
前記判定画像は、検査対象となる対象物を含む、前記判定画像内の対象物領域をさらに含み、
前記判定部は、前記対象物領域における各画素値と、前非対象物領域における各画素値とを前記特徴量の抽出に用いる、請求項３〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記判定部は、前記判定画像と、当該判定画像に対して前記窓関数処理を行なった画像とを比較して、前記ネガポジ反転処理が必要であるか否かを判定する、請求項２〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記特徴量は、前記判定画像と、当該判定画像に対して前記窓関数処理を行なった画像との類似性を示した統計値を含み、
前記判定部は、前記統計値が所定の値よりも小さい場合に、前記ネガポジ反転処理が必要であると判定する、請求項７に記載の画像処理装置。
【請求項９】
前記判定部は、前記判定画像に対して前記窓関数処理を行なった画像と、前記判定画像に対して前記ネガポジ反転処理を行ない、さらに、前記窓関数処理を行なって得られた画像とを比較して、前記ネガポジ反転処理が必要であるか否かを判定する、請求項２〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記判定画像は、前記第１の画像と、前記第２の画像とに加えて、前記第１の画像をネガポジ反転した画像と、前記第２の画像をネガポジ反転した画像とのうちから選択される、請求項２に記載の画像処理装置。
【請求項１１】
第１の画像と第２の画像との各々に窓関数処理を行うステップと、
前記窓関数処理後の前記第１の画像および前記第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするステップと、
前記第１の画像および前記第２の画像の少なくとも一方に含まれる特徴量に依存して、前記第１の画像および前記第２の画像に対して、前記窓関数処理の前にネガポジ反転処理を選択的に行うステップとを備える、画像処理方法。
【請求項１２】
画像処理プログラムであって、
前記画像処理プログラムは、コンピュータに、
第１の画像と第２の画像との各々に窓関数処理を行うステップと、
前記窓関数処理後の前記第１の画像および前記第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするステップと、
前記第１の画像および前記第２の画像の少なくとも一方に含まれる特徴量に依存して、前記第１の画像および前記第２の画像に対して、前記窓関数処理の前にネガポジ反転処理を選択的に行うステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートマッチングを行なう画像処理装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【０００２】
近年、探索対象画像の中から、予め登録されたテンプレート画像に対応する位置を検出するテンプレートマッチングという画像処理技術が実用化されている。テンプレートマッチングの一手法として、位相限定相関法（ＰＯＣ法：Phase-Only  Correlation）がしばしば用いられる。ＰＯＣ法は、画像に含まれる周波数成分の位相差情報を用いて画像間の対応点を探索する手法である。位相差情報を用いることで、照明変動などに対するロバスト性を高めることができる。
【０００３】
他にも、画像の周波数成分を用いたテンプレートマッチング技術として、様々な手法が提案されている。たとえば、特許文献１は、「複数の画像を対象とした対応点の探索処理における精度の維持と速度の向上とを両立させることが可能な対応点探索技術」を開示している。当該対応点探索技術は、２枚の画像の各々について、当該画像の画像領域の周波数成分を抽出し、抽出した各周波数成分を用いて画像領域間の相関値を算出する。
【０００４】
特許文献２は、「時系列画像を統合する画像統合装置」を開示している。当該画像統合装置は、各時系列画像について静止体領域を抽出し、時系列画像間の各静止体領域における周波数成分の相関を算出する。これにより、当該画像統合装置は、時系列画像間において対応する静止体領域を探索し、時系列画像を統合する。
【０００５】
特許文献３は、「複数の撮像系を用いて共通の被写体を撮像して得られる複数の画像を合成し、高精細な画像を得る複眼撮像装置」を開示している。当該複眼撮像装置は、複数の撮像系により得られる画像信号の周波数成分により対応関係を求めるための演算領域を適応的に変化させて、画像信号間の対応関係を求められた対応関係をもとに複数の画像信号を合成処理する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１７０５１９号公報
【特許文献２】国際公開第２０１０／１１３２３９号
【特許文献３】特開平０６−１３３２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、画像の周波数成分を用いてテンプレートマッチングが行なわれる場合には、ＦＦＴ（Fast  Fourier  Transform）などのフーリエ変換により、画像から周波数成分が抽出される。上述のＰＯＣ処理もフーリエ変換を応用したものである。フーリエ変換が行なわれる場合には、理論的には、無限長の画像データが必要とされる。実際には、画像データは有限であるため、画像に対してフーリエ変換を行なう場合には、有限の画像データが、周期的な無限の画像データであるものとして仮定される。画像データが無限に周期的に繰り返すデータとして扱われると、画像の端点において、データ（画素値）が急激に変化する不連続な点が生じる。この不連続な点は、周波数空間においては、高周波数成分のノイズとして現れる。
【０００８】
このような、画像データの不連続性に起因するノイズを低減するために、フーリエ変換前に画像に対して窓関数が掛け合わされる。窓関数は、ある有限領域外では、値が０となる関数である。画像に窓関数が掛け合わされると、当該有限領域外の画像領域においては、画素値が０になり、当該有限領域内の画像領域においては画素値が残る。これにより、窓関数処理後の画像は、当該画像の上端および下端、並びに、当該画像の左端および右端において画素値が０となるため、画像信号が周期的な無限の信号として仮定された場合に、データが連続となる。したがって、周波数空間において、高周波数成分のノイズを除去することができる。
【０００９】
しかしながら、窓関数の有限領域内の画像領域においては画素値が残るため、当該画像領域における画素値に起因するノイズが周波数空間で現れることがある。すなわち、窓関数起因のノイズが強く出てしまうことで画像データの信号成分が劣化してしまうことがある。これにより、テンプレートマッチングの精度が低下してしまう。
【００１０】
この開示は上述のような問題点を解決するためになされたものであって、その目的は、周波数成分を用いたテンプレートマッチング処理の精度を向上することが可能な画像処理装置、画像処理方法、および、画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１１】
一実施の形態に従うと、画像処理装置は、第１の画像と第２の画像との各々に窓関数処理を行うための窓関数処理部と、窓関数処理後の第１の画像および第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするための照合部と、第１の画像および第２の画像の少なくとも一方に含まれる特徴量に依存して、第１の画像および第２の画像に対して、窓関数処理の前にネガポジ反転処理を選択的に行うための補正部とを備える。
【００１２】
好ましくは、画像処理装置は、第１の画像および第２の画像の少なくとも一方を判定画像として用いて、補正部でのネガポジ反転処理が必要であるか否かを判定するための判定部をさらに備える。
【００１３】
好ましくは、判定画像は、検査対象となる対象物を含まない、判定画像内の非対象物領域を含む。判定部は、非対象物領域における画素値を特徴量の抽出に用いる。
【００１４】
好ましくは、特徴量は、画像領域内の各画素の大きさに応じる統計値を含む。判定部は、非対象物領域における統計値が所定値よりも大きい場合にネガポジ反転処理が必要であると判定する。
【００１５】
好ましくは、統計値は、非対象物領域における各画素値の、平均値と、中央値と、最頻値と、非対象物領域における画素数に対する、所定の値以上を有する画素の数の割合とのうちの少なくとも１つを含む。
【００１６】
好ましくは、判定画像は、検査対象となる対象物を含む、判定画像内の対象物領域をさらに含む。判定部は、対象物領域における各画素値と、前非対象物領域における各画素値とを特徴量の抽出に用いる。
【００１７】
好ましくは、判定部は、判定画像と、当該判定画像に対して窓関数処理を行なった画像とを比較して、ネガポジ反転処理が必要であるか否かを判定する。
【００１８】
好ましくは、特徴量は、判定画像と、当該判定画像に対して窓関数処理を行なった画像との類似性を示した統計値を含む。判定部は、統計値が所定の値よりも小さい場合に、ネガポジ反転処理が必要であると判定する。
【００１９】
好ましくは、判定部は、判定画像に対して窓関数処理を行なった画像と、判定画像に対してネガポジ反転処理を行ない、さらに、窓関数処理を行なって得られた画像とを比較して、ネガポジ反転処理が必要であるか否かを判定する。
【００２０】
好ましくは、判定画像は、第１の画像と、第２の画像とに加えて、第１の画像をネガポジ反転した画像と、第２の画像をネガポジ反転した画像とのうちから選択される。
【００２１】
他の実施の形態に従うと、画像処理方法は、第１の画像と第２の画像との各々に窓関数処理を行うステップと、窓関数処理後の第１の画像および第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするステップと、第１の画像および第２の画像の少なくとも一方に含まれる特徴量に依存して、第１の画像および第２の画像に対して、窓関数処理の前にネガポジ反転処理を選択的に行うステップとを備える。
【００２２】
さらに他の実施の形態に従うと、画像処理プログラムが提供される。画像処理プログラムは、コンピュータに、第１の画像と第２の画像との各々に窓関数処理を行うステップと、窓関数処理後の第１の画像および第２の画像の各々を周波数変換して、周波数変換後の第１の画像および第２の画像をマッチングするステップと、第１の画像および第２の画像の少なくとも一方に含まれる特徴量に依存して、第１の画像および第２の画像に対して、窓関数処理の前にネガポジ反転処理を選択的に行うステップとを実行させる。
【発明の効果】
【００２３】
本発明によれば、周波数成分を用いたテンプレートマッチング処理の精度を向上することができる。
【００２４】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２５】
【図１】第１の実施の形態に従う画像処理装置を含む画像処理システムの全体構成を示す概略図である。
【図２】ある画像に対して窓関数を掛け合わせて得られた画像を示した図である。
【図３】ある画像に対してネガポジ反転処理を行なって得られた画像を示した図である。
【図４】第１の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図５】第１の実施の形態に従う画像処理装置に含まれる照合部の機能構成の一例を示すブロック図である。
【図６】第１の実施の形態に従う画像処理装置のハードウェア構成の一例を示すブロック図である。
【図７】第１の実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。
【図８】第２の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図９】第２の実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。
【図１０】具体例１に従う判定部の処理の一例を示すフローチャートである。
【図１１】判定画像をワーク領域および非ワーク領域に分割している様子を示している図である。
【図１２】判定画像を複数のブロックに分割している様子を示している図である。
【図１３】具体例２に従う判定部の処理の一例を示すフローチャートである。
【図１４】具体例３に従う判定部の処理の一例を示すフローチャートである。
【図１５】具体例３に従う判定部の処理の概略を表した概念図である。
【図１６】具体例４に従う判定部の処理の一例を示すフローチャートである。
【図１７】具体例４に従う判定部の処理の概略を表した概念図である。
【図１８】具体例６に従う判定部の処理の一例を示すフローチャートである。
【図１９】具体例６に従う判定部の処理の概略を表した概念図である。
【図２０】第２の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図２１】第２の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図２２】具体例８に従う判定部の処理の一例を示すフローチャートである。
【図２３】具体例９に従う判定部の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、図面を参照しつつ、本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態、および／または、各変形例は、選択的に組み合わされてもよい。
【００２７】
＜第１の実施の形態＞
［システム構成］
図１は、本実施の形態に従う画像処理装置１００を含む画像処理システム５０の全体構成を示す概略図である。図１を参照して、画像処理システム５０は、たとえば、検査対象物（以下、「ワーク」ともいう。）の位置や姿勢を検査する。より具体的には、画像処理システム５０は、生産ラインなどに組み込まれ、予め登録されたテンプレート画像を用いて、ワーク１１６を撮影して取得した画像とテンプレートマッチングを行う。
【００２８】
より具体的には、画像処理システム５０は、画像処理装置１００と、カメラ１１０と、製造装置１１２と、搬送機構１１４と、表示装置１２０と、マウス１３０とを含む。
【００２９】
製造装置１１２は、ワーク１１６を製造するための装置である。たとえば、ワーク１１６は、回路基板などの機械部品を含む。ワーク１１６は、製造装置１１２により製造されるとベルトコンベアなどの搬送機構１１４によって搬送される。搬送されたワーク１１６は、カメラ１１０により所定のタイミングで撮影される。カメラ１１０により得られた画像は、画像処理装置１００へ伝送される。
【００３０】
画像処理装置１００は、テンプレート画像の登録処理を行うための登録モードと、ワーク１１６に対して検査を実行する検査モードとを有する。ユーザは、マウス１１８などの入力装置により、検査モードおよび登録モードを交互に切り替えることができる。登録モードにおいて、画像処理装置１００は、基準となる目的のワーク１１６を撮影することで得られた画像をテンプレート画像として登録する。検査モードにおいて、画像処理装置１００は、ワーク１１６などの検査対象物を撮像することで得られた画像（以下、「入力画像」ともいう。）とテンプレート画像とを用いてテンプレートマッチングを行う。これにより、画像処理システム５０は、ワーク１１６の欠陥等を自動的に検査することができる。
【００３１】
［概要］
図２および図３を参照して、第１の実施の形態に従う画像処理装置１００の概要について説明する。図２は、ある画像に対して窓関数を掛け合わせて得られた画像を示した図である。図３は、ある画像に対してネガポジ反転処理を行なって得られた画像を示した図である。図２および図３においては、画素値が０に近いほど画像の色は黒色に近くなり、画素値が大きくなるほど（典型的には、画素値が２５５に近くなるほど）、画像の色は白色に近くなるように示される。
【００３２】
図２（Ａ）には、画像処理装置１００が画像３０Ａに対して窓関数３２を掛け合わせて得られた窓関数画像３４Ａが示される。上述したように、画像処理装置１００は、周波数空間において、ノイズを低減するために、フーリエ変換前に画像に対して窓関数を掛け合わせる。窓関数３２は、ある有限領域外では値が０となる関数である、有限領域内では値が０よりも大きくなる関数である。たとえば、図２（Ａ）に示される窓関数３２においては、有限領域が、白色または灰色の部分（中央領域）で示される。
【００３３】
窓関数３２を掛け合わされて得られた窓関数画像３４Ａの中央領域において、画素値が０以上となる。また、窓関数画像３４Ａの周辺画像領域においては、画素値が０（黒色）になる。ここで、窓関数画像３４Ａの中央領域の画素値の残り方によっては、ノイズが生じる原因となる可能性がある。このノイズは、画像３０Ａのワーク１１６が写っていない領域（以下、「非ワーク領域」ともいう。）において画素値が大きく（白い）場合に生じる。これにより生じたノイズの例が図２（Ａ)の窓関数画像３４Ａに示されている。
【００３４】
このノイズを低減するため、本実施の形態に従う画像処理装置１００は、非ワーク領域の画素値が小さくなるように画像３０Ａを補正する。たとえば、図３に示されるように、画像処理装置１００は、非ワーク領域の画素値が大きい場合に、画像３０Ａに対してネガポジ反転処理を行うことで非ワーク領域の画素値を小さくする。ここでいうネガポジ反転処理とは、画像における白黒を逆転させる処理である。すなわち、画像処理装置１００は、２５５（画素値）から、画像３０Ａの各画素値を引くことで、白黒を逆転させる。
【００３５】
このように、画像処理装置１００は、画像３０Ａに対してネガポジ反転処理を行なって画像３０Ｂを得ることで、非ワーク領域における画素値を下げる。これにより、図２（Ｂ）に示されるように、画像３０Ｂは、窓関数３２を掛けわされても、得られた画像３４Ｂは、その中央領域において、ノイズを含まなくなる。したがって、画像処理装置１００は、窓関数３２に起因するノイズを低減することができ、高精度なテンプレートマッチング処理を実現することができる。
【００３６】
なお、図２および図３では、画素値が０に近いほど画像の色が黒色に近くなり、画素値が大きくなるほど（典型的には、画素値が２５５に近くなるほど）、画像の色が白色に近くなるように示されているが、画素値の大きさと色との関係は、これに限定されるわけではない。たとえば、画素値が０に近いほど画像の色が白色に近くなり、画素値が大きくなるほど（典型的には、画素値が２５５に近くなるほど）、画像の色が黒色に近くなるように示されてもよい。また、画像は、必ずしも白黒画像である必要は無く、カラー画像であってもよい。以下で示される図面についても同様のことがいえる。
【００３７】
［機能構成］
図４を参照して、第１の実施の形態に従う画像処理装置１００の機能構成について説明する。図４は、画像処理装置１００の機能構成の一例を示すブロック図である。画像処理装置１００は、補正部２１０と、窓関数処理部２２０と、照合部２３０とを備える。
【００３８】
補正部２１０は、入力画像およびテンプレート画像の少なくとも一方に含まれる特徴量に依存して、入力画像およびテンプレート画像に対して、窓関数処理の前にネガポジ反転処理を選択的に行う。典型的には、補正部２１０は、以下で示される判定部２００によりネガポジ反転処理が必要であると判定された場合、画像処理装置１００のユーザによりネガポジ反転処理を実行するように設定された場合などにネガポジ反転処理を行なう。
【００３９】
窓関数処理部２２０は、入力画像およびテンプレート画像の各々に窓関数を掛け合わせる。窓関数処理部２２０は、入力画像またはテンプレート画像と、窓関数３２（図２参照）とのサイズを拡大縮小処理により合わせる。これにより、窓関数処理部２２０は、入力画像およびテンプレート画像の各々に窓関数を掛け合わせることが可能になる。窓関数としては、たとえば、矩形窓、ガウス窓、ハミング窓、テューキー窓、ブラックマン窓、カイザー窓、指数窓、一般化ハミング窓、ナットール窓、ブラックマン−ハリス窓、ブラックマン−ナットール窓、フラット・トップ窓、パルザン窓、赤池窓、ウェルチ窓、サイン窓、Vorbis窓、カイザー−ベッセル派生窓、ランツォシュ窓などが挙げられる。
【００４０】
照合部２３０は、窓関数処理後の入力画像およびテンプレート画像の各々を周波数変換して、周波数変換した入力画像およびテンプレート画像をマッチングする。マッチングの手法としては、テンプレートマッチングが挙げられる。テンプレートマッチングは、たとえば、位相限定相関法（ＰＯＣ）、回転不変位相限定相関(ＲＩＰＯＣ：Rotation  Invariant  Phase  Only  Correlation）、フーリエメリン変換を用いたマッチング処理、その他の周波数成分を用いたマッチング処理などを含む。
【００４１】
（照合部２３０の詳細）
図５を参照して、照合部２３０によるテンプレートマッチング処理の一例であるＲＩＰＯＣについて詳細に説明する。図５は、照合部２３０の機能構成の一例を示すブロック図である。ＲＩＰＯＣ処理は、テンプレート画像に対して入力画像がどれだけ回転しているかを算出するとともに、テンプレートの回転量を補正する処理（参照符号２３０−１）と、回転量を補正された補正後テンプレート画像と入力画像（または、その抽出領域）との間でどれだけの類似度および平行移動量が存在するのかを算出する処理（参照符号２３０−２）とを含む。
【００４２】
図５に示されるように、照合部２３０は、フーリエ変換部２３１Ａ，２３１Ｂと、対数化処理部２３２Ａ，２３２Ｂと、極座標変換部２３３Ａ，２３３Ｂと、ＰＯＣ処理部２３４と、回転量補正部２３５と、ＰＯＣ処理部２３６とを含む。
【００４３】
フーリエ変換部２３１Ａは、テンプレート画像に含まれる周波数情報（振幅成分および位相成分）を算出する。フーリエ変換部２３１Ｂは、入力画像中の検出対象物が存在しそうな位置を中心に探索範囲を設定し、当該探索範囲に対応するテンプレート部分を入力画像から切り出す。典型的には、切り出される領域のサイズは、テンプレート画像と同じサイズである。また、フーリエ変換部２３１Ｂは、切り出された領域に含まれる周波数情報（振幅成分および位相成分）を算出する。なお、ＲＩＰＯＣ処理においては、位相成分は必ずしも必要ではないので算出されなくてもよい。
【００４４】
対数化処理部２３２Ａおよび極座標変換部２３３Ａは、テンプレート画像についての振幅成分を対数化するとともに、極座標へ変換する。同様に、対数化処理部２３２Ｂおよび極座標変換部２３３Ｂは、入力画像についての振幅成分を対数化するとともに、極座標へ変換する。この極座標への変換によって、回転量が２次元座標上の座標点として表現される。
【００４５】
ＰＯＣ処理部２３４は、極座標変換部２３３Ａおよび極座標変換部２３３Ｂからそれぞれ出力される極座標変換された結果について、類似度および平行移動量（回転量に相当）を算出する。ＰＯＣ処理では、テンプレート画像および入力画像の画像同士を順次ずらすとともに、それぞれに含まれる空間周波数の成分の間で相関値を算出することで、最も類似度の高いもの（ＰＯＣ値のピーク値）を探索する。ＰＯＣ処理部２３４は、極座標変換された結果同士で類似度が最も高くなる位置を特定し、それに対応する回転量を回転量補正部２３５に出力する。
【００４６】
回転量補正部２３５は、ＰＯＣ処理部２３４において算出された回転量に従ってテンプレート画像を回転補正する。すなわち、ＰＯＣ処理部２３４、テンプレート画像を回転補正して補正テンプレートを生成する。
【００４７】
回転量補正部２３５におけるテンプレート画像を回転補正する方法としては、テンプレート画像そのものを実空間で回転させる方法を採用することができる。ＰＯＣ処理部２３６において周波数空間を扱うような場合には、実空間で回転させる必要はなく、ＰＯＣ処理の内部表現であるフーリエ変換後のデータ（振幅情報および位相情報）を回転させる方法を採用してもよい。
【００４８】
ＰＯＣ処理部２３６は、補正テンプレート画像と入力画像との間で、類似度および位置（平行移動量）を算出する。類似度が最も高くなる位置が、入力画像に含まれる補正テンプレート画像と一致する領域を示す。ＰＯＣ処理部２３６は、平行移動量、回転量、倍率などの情報を含む位置情報を出力する。
【００４９】
［ハードウェア構成］
図６は、画像処理装置１００のハードウェア構成の一例を示すブロック図である。図６を参照して、画像処理装置１００のハードウェア構成について説明する。
【００５０】
図６を参照して、画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピュータ上に実装される。画像処理装置１００は、主たるコンポーネントとして、ＲＯＭ（Read  Only  Memory）１と、ＣＰＵ（Central  Processing  Unit）２と、ＲＡＭ（Random  Access  Memory）３と、カメラインターフェイス（Ｉ／Ｆ）４と、メモリーカードインターフェイス（Ｉ／Ｆ）５と、ネットワークインターフェイス（Ｉ／Ｆ）６と、記憶装置２０とを含む。
【００５１】
ＲＯＭ１は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。ＣＰＵ２は、ＲＯＭ１や記憶装置２０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）や画像処理プログラム２２などの各種プログラムを実行することで、画像処理装置１００の全体を制御する。ＲＡＭ３は、ＣＰＵ２でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一次的に格納する。
【００５２】
カメラＩ／Ｆ４は、ＣＰＵ２とカメラ１１０とのデータ通信を仲介する。たとえば、カメラＩ／Ｆ４は、画像バッファを含み、カメラ１１０から伝送される入力画像２４を一旦蓄積する。カメラＩ／Ｆ４は、少なくとも１枚分の入力画像のデータが蓄積されると、その蓄積されたデータを記憶装置２０またはＲＯＭ１へ転送する。また、カメラＩ／Ｆ４は、ＣＰＵ２が発生した内部コマンドに従って、カメラ１１０に対して撮像指令を与える。なお、カメラ１１０は、画像処理装置１００に組み込まれてもよい。
【００５３】
メモリーカードＩ／Ｆ５は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記憶媒体）５Ａとの間で、データの読み書きを行なう。典型的には、メモリーカードＩ／Ｆ５には、他の装置で取得した入力画像２４およびテンプレート画像２６を格納したメモリーカード５Ａが装着され、そのメモリーカード５Ａから読み出された入力画像２４およびテンプレート画像２６が記憶装置２０へ格納される。
【００５４】
ネットワークＩ／Ｆ６は、各種の通信媒体を介して、他の装置（サーバ装置など）とデータをやり取りする。より具体的には、ネットワークＩ／Ｆ６は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００５５】
記憶装置２０は、典型的には、ハードディスクなどの大容量磁気記憶媒体などを含む。記憶装置２０は、本実施の形態に従う各種を実現するための画像処理プログラム２２と、入力画像２４と、テンプレート画像２６とを格納する。さらに、記憶装置２０には、オペレーティングシステムなどのプログラムが格納されてもよい。
【００５６】
カメラ１１０は、外付けではなく、画像処理装置１００の内部に組み込まれて、画像処理装置１００本体が被写体を撮像する機能を有していてもよい。また、画像処理装置１００は、カメラに類似した機構を用いて入力画像２４およびテンプレート画像２６を取得し、取得した入力画像２４およびテンプレート画像２６を任意の方法で画像処理装置１００へ入力するように構成されてもよい。この場合、入力画像２４およびテンプレート画像２６は、メモリーカードＩ／Ｆ５またはネットワークＩ／Ｆ６を介して画像処理装置１００に入力される。
【００５７】
記憶装置２０に格納される画像処理プログラム２２は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバ装置などから配信される。画像処理プログラム２２は、画像処理装置１００で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、画像処理プログラム２２自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。
【００５８】
また、画像処理プログラム２２は、単体のプログラムではなく、任意のプログラムの一部に組込まれて提供されてもよい。このような場合にも、画像処理プログラム２２自体には、任意のプログラムにおいて共通に利用されるようなモジュールは含まれず、任意のプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない画像処理プログラム２２であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。さらに、画像処理プログラム２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。
【００５９】
さらに、画像処理装置１００は、必ずしも、リアルタイムに処理を行わなくてもよい。たとえば、少なくとも１つのサーバ装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態で画像処理装置１００が構成されてもよい。この場合、入力画像２４およびテンプレート画像２６がサーバ装置（クラウド側）へ送信され、サーバ装置は、受信した入力画像２４およびテンプレート画像２６に対して、本実施の形態に従う画像処理を実行する。さらに、サーバ装置側がすべての機能（処理）を行なう必要はなく、ユーザ側の端末とサーバ装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００６０】
［フローチャート］
図７を参照して、画像処理装置１００の制御構造について説明する。図７は、画像処理装置１００が実行する処理の一部を表わすフローチャートである。図７の処理は、ＣＰＵ２がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。
【００６１】
ステップＳ５１０において、ＣＰＵ２は、カメラ１１０からテンプレート画像を取得する。ステップＳ５１２において、ＣＰＵ２は、カメラ１１０から入力画像を取得する。ステップＳ５２０において、ＣＰＵ２は、補正部２１０として、入力画像およびテンプレート画像の少なくとも一方から抽出した特徴量が所定の条件を満たしたか否かを判断する。典型的には、ＣＰＵ２は、後述する判定部２００が、入力画像およびテンプレート画像に対するネガポジ反転処理が必要であると判定した場合に、所定の条件を満たしたものと判断する。ＣＰＵ２は、所定の条件を満たしたと判断した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、ＣＰＵ２は、制御をステップＳ５２４に切り替える。
【００６２】
ステップＳ５２２において、ＣＰＵ２は、補正部２１０として、入力画像およびテンプレート画像の両方に対して、ネガポジ反転処理を行なう。ステップＳ５２４において、ＣＰＵ２は、窓関数処理部２２０として、入力画像と、テンプレート画像との各々に窓関数処理を行う。ステップＳ５２６において、ＣＰＵ２は、照合部２３０として、窓関数処理後の入力画像およびテンプレート画像の各々についてフーリエ変換などの周波数変換を行なう。
【００６３】
ステップＳ５２８において、ＣＰＵ２は、照合部２３０として、入力画像およびテンプレート画像の各々から抽出した周波数成分を用いて、入力画像およびテンプレート画像をマッチングする。典型的には、ＣＰＵ２は、周波数変換した画像に対して、ＰＯＣ法や、ＲＩＰＯＣ法を用いてマッチング処理を行う。ステップＳ５３０において、ＣＰＵ２は、照合部２３０として、テンプレートマッチングの結果から、入力画像とテンプレート画像との類似度を算出する。
【００６４】
［利点］
周波数成分を用いたテンプレートマッチングを行う場合において、非ワーク領域において画素値の大きい画素が多く含まれるような画像を用いたときには、窓関数処理を実施した際に、窓関数起因のノイズが残ってしまうことがある。画像処理装置１００は、その状態で周波数変換すると、テンプレート画像または入力画像の信号成分を劣化させてしまい、テンプレートマッチングの精度が低下する。画素値の小さい画素が窓関数の影響を受けにくい点に着目して、画像処理装置１００は、テンプレート画像および入力画像をネガポジ反転することで、窓関数の影響を受けない画像を作成する。これにより、画像処理装置１００は、窓関数処理を実行した際に生じる信号劣化を抑制でき、さらには、テンプレートマッチング処理の精度を向上できる。
【００６５】
＜第２の実施の形態＞
［概要］
以下、第２の実施の形態に従う画像処理装置１００Ａの概要について説明する。本実施の形態に従う画像処理装置１００Ａは、入力画像およびテンプレート画像に対して補正処理（すなわち、ネガポジ反転処理）を実行するか否かを判定する機能を有する点で画像処理装置１００と異なる。ハードウェア構成については第１の実施の形態に従う画像処理装置１００と同じであるので説明を繰り返さない。
【００６６】
本実施の形態に従う画像処理装置１００Ａは、入力画像およびテンプレート画像の少なくとも一方を用いて、入力画像およびテンプレート画像に対する補正処理（すなわち、ネガポジ反転処理）が必要であるか否かを判定する。画像処理装置１００Ａは、補正が必要であると判定した場合には、入力画像およびテンプレート画像に対してネガポジ反転処理を行なう。画像処理装置１００Ａは、補正が不必要であると判定した場合には、入力画像およびテンプレート画像に対してネガポジ反転処理を行なわない。
【００６７】
画像処理装置１００Ａは、ラインを流れるワークを順次撮影して得た入力画像に対して、補正の判定処理を行なうことで、環境が変わった場合などに適応して、補正を行なうことが可能になる。すなわち、画像処理装置１００Ａは、環境変動に強いテンプレートマッチング処理を実行することが可能になる。
【００６８】
［機能構成］
図８を参照して、第２の実施の形態に従う画像処理装置１００Ａの機能構成について説明する。図８は、画像処理装置１００Ａの機能構成の一例を示すブロック図である。画像処理装置１００Ａは、判定部２００と、補正部２１０と、窓関数処理部２２０と、照合部２３０とを備える。補正部２１０と、窓関数処理部２２０と、照合部２３０とについては上述と同様であるので説明を繰り返さない。
【００６９】
判定部２００は、テンプレート画像を判定画像として用いて補正判定を行なう。なお、判定部２００は、判定画像として、テンプレート画像の代わりに、入力画像、入力画像をネガポジ反転した画像、および、テンプレート画像をネガポジ反転した画像のいずれかを用いることもできる。判定部２００は、たとえば、テンプレート画像が最初に入力された際に補正判定を１回だけ行ない、その結果を２枚目以降の入力画像に適用してもよいし、入力画像が入力される度に補正判定を行なってもよい。判定部２００における、補正判定の方法については様々な方法が考えられる。これらの方法の詳細については後述する。
【００７０】
［フローチャート］
図９を参照して、画像処理装置１００Ａの制御構造について説明する。図９は、画像処理装置１００Ａが実行する処理の一部を表わすフローチャートである。図９の処理は、ＣＰＵ２がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。なお、ステップＳ６００以外の各ステップについては上述の通りであるので説明を繰り返さない。
【００７１】
ステップＳ６００において、ＣＰＵ２は、判定部２００として、窓関数処理の前に、判定画像を用いて、入力画像およびテンプレート画像に対する補正（すなわち、ネガポジ反転処理）が必要であるか否かを判定する。補正の判定方法の詳細については後述する。
【００７２】
［判定部２００の補正の判定方法の詳細］
（補正の判定方法の具体例１）
図１０〜図１２を参照して、判定部２００の処理の一例について説明する。図１０は、具体例１に従う判定部２００の処理の一例を示すフローチャートである。図１１は、判定画像３６をワーク領域および非ワーク領域に分割している様子を示している図である。図１２は、判定画像３６を複数のブロックに分割している様子を示している図である。
【００７３】
上述したように、窓関数に起因するノイズは、画像領域内にワークを含まない非ワーク領域における各画像値が大きい（白い）場合に生じる。すなわち、当該ノイズは、画像の非ワーク領域における画像値が小さい（黒い）場合には生じない。この点に着目して、判定部２００は、判定画像の非ワーク領域における画素値が大きい場合に、補正処理が必要であると判定する。
【００７４】
より具体的な処理手順としては、ステップＳ６０２において、判定部２００は、判定画像を取得する。判定部２００は、判定画像３６として、入力画像、テンプレート画像、入力画像に対してネガポジ反転処理を行なった画像、および、テンプレート画像に対してネガポジ反転処理を行なった画像のうちの少なくとも１つを用いることができる。
【００７５】
ステップＳ６０４において、判定部２００は、取得した判定画像から少なくとも非ワーク領域を特定する。たとえば、図１１に示されるように、判定部２００は、ワーク領域と非ワーク領域とに分割する。具体的な領域分割方法としては、たとえば、判定部２００は、判定画像３６において、エッジが最も強い画素を特定し、その画素を中心としてワーク領域を設定し、それ以外の領域を非ワーク領域として設定する。このように、エッジ情報を用いて領域を自動的に分割することで画像が入力される度にワーク領域と非ワーク領域とを適応的に設定することが可能になる。
【００７６】
また、判定部２００は、予め定められた領域をワーク領域として設定してもよい。たとえば、判定部２００は、縦横３分の１ずつの９ブロックに分割した領域のうち中央のブロックをワーク領域として設定し、それ以外のブロックを非ワーク領域として設定する。他にも、図１２に示されるように、判定部２００は、入力画像を縦横５分の１ずつの２５ブロックに分割した領域のうち、中央のブロックと中央のブロックに対して上下左右斜めに位置するブロックをワーク領域として設定し、それ以外の口の字型の領域を非ワーク領域として設定する。なお、判定部２００が分割するブロック数は任意である。
【００７７】
ステップＳ６０６において、判定部２００は、ワーク領域および非ワーク領域のうちの少なくとも非ワーク領域における画像値を用いて補正判定を行なう。判定部２００は、非ワーク領域における画素値が比較的大きい（白い）場合に、補正処理が必要であると判定する。すなわち、判定部２００は、非ワーク領域における画素値が比較的小さい（黒い）場合には、補正処理が不必要であると判定する。
【００７８】
より具体的には、判定部２００は、非ワーク領域の各画素値の大きさに応じた統計値を算出し、統計値が所定の値よりも大きい場合には、補正処理（すなわち、ネガポジ反転処理）を行なうと判定する。また、判定部２００は、非ワーク領域における当該統計値が所定の値よりも小さい場合には、ネガポジ反転処理を行なわないと判定してもよい。なお、ここでいう統計値は、たとえば、非ワーク領域における各画素値の、平均値と、中央値と、最頻値と、非ワーク領域における画素数に対する所定値以上を有する画素の数の割合とを含む。当該割合は、たとえば、以下の式（１）で示される。
【００７９】
統計値（画素の割合）＝非ワーク領域において所定値以上の画素値を有する画素数／非ワーク領域における画素数・・式（１）
判定部２００は、判定画像として、入力画像またはテンプレート画像を用いた場合において、式（１）に示される画素の割合が、以下の式（２）を満たすときに、ネガポジ反転処理を行なうと判定する。
【００８０】
統計値（画素の割合）≧閾値・・・式（２）
たとえば、非ワーク領域の画素数が５００であり、非ワーク領域に含まれる画素のうち画素値が１２８以上の画素数が４００であり、閾値が０．５である場合においては、以下の式（３）のようになる。この場合、以下の式（３）が満たされるので判定部２００は、補正が必要であると判定する。
【００８１】
統計値（画素の割合）＝４００／５００＝０．８≧０．５・・・式（３）
ステップＳ５２０において、判定部２００は、非ワーク領域から算出した統計値を用いて、入力画像およびテンプレート画像に対する補正が必要であるか否かを判定する。典型的には、判定部２００は、統計値が上記式（２）を満たした場合に、補正が必要であると判定する。判定部２００は、補正が必要であると判定した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、判定部２００は、制御をステップＳ５２４に切り替える。
【００８２】
なお、判定部２００は、入力画像をネガポジ反転処理した画像、または、テンプレート画像をネガポジ反転処理した画像を判定画像として用いた場合には、式（２）およびその他の判定条件の大小関係が反転する。また、図１１においては、ワーク領域および非ワーク領域が矩形で示されているが、ワーク領域および非ワーク領域の形状は任意である。たとえば、ワーク領域および非ワーク領域は、円形、楕円形、六角形、ワークを含むように囲んだ領域、その他の形状であってもよい。また、非ワーク領域は、ワーク領域以外の領域の全部であってもよく一部であってもよい。
【００８３】
（判定部２００の処理の具体例２）
以下では、図１３のフローチャートを参照しながら、判定部２００の処理の他の例について説明する。図１３は、具体例２に従う判定部２００の処理の一例を示すフローチャートである。
【００８４】
判定部２００は、上記の具体例１のように非ワーク領域の画素値だけでなく、ワーク領域の画素値をさらに用いて補正判定を行なってもよい。この場合、ワーク領域に対する非ワーク領域における画素値が相対的に大きい場合に、判定部２００は、補正処理を行なう必要があると判断する。
【００８５】
より具体的な処理手順としては、ステップＳ６０２において、判定部２００は、判定画像を取得する。ステップＳ６０４Ａにおいて、判定部２００は、取得した判定画像をワーク領域および非ワーク領域に分割する。領域の分割方法については上述した通りであるので説明を繰り返さない。
【００８６】
ステップＳ６０６Ａにおいて、判定部２００は、特定したワーク領域および非ワーク領域内の画素値の大きさに応じた統計値を算出する。当該統計値は、ワーク領域および非対ワーク領域の各々の領域における各画素値の、平均値、中央値、および、最頻値の少なくとも１つを含む。判定部２００は、非ワーク領域における統計値が、ワーク領域における統計値よりも相対的に大きい場合に、ネガポジ反転処理を行なうと判定する。より具体的には、判定部２００は、以下の式（４）を満たすときに、ネガポジ反転処理を行なうと判定する。
【００８７】
（非ワーク領域における統計値）−（ワーク領域における統計値）≧閾値・・・式（４）
たとえば、ワーク領域における画素値の平均値が２０であり、非ワーク領域における画素値の平均値が２４０であり、閾値が２００である場合においては、式（４）は、以下の式（５）のようになる。この場合、上記式（４）が満たされるので判定部２００は、補正が必要であると判定する。
【００８８】
２４０−２０＝２２０≧２００・・・式（５）
なお、判定部２００は、判定画像として、入力画像をネガポジ反転処理した画像、または、テンプレート画像をネガポジ反転処理した画像を用いた場合には、式（４）およびその他の判定条件の大小関係が反転する。
【００８９】
ステップＳ５２０において、判定部２００は、ワーク領域および非ワーク領域から算出した統計値を用いて、入力画像およびテンプレート画像に対する補正が必要であるか否かを判定する。典型的には、判定部２００は、統計値が上記式（４）を満たした場合に、補正が必要であると判定する。判定部２００は、補正が必要であると判定した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、判定部２００は、制御をステップＳ５２４に切り替える。
【００９０】
（判定部２００の処理の具体例３）
以下では、図１４および図１５を参照して、判定部２００の処理のさらに他の例について説明する。図１４は、具体例３に従う判定部２００の処理の一例を示すフローチャートである。図１５は、具体例３に従う判定部２００の処理の概略を表した概念図である。
【００９１】
入力画像に窓関数を掛けた後の画像が、入力画像と類似していない場合には、補正を行なう必要があると考えられる（図２（Ａ）参照）。逆に、入力画像に窓関数を掛けた後の画像が、入力画像と類似している場合には、補正を行なわなくてよいと考えられる（図２（Ｂ）参照）。
【００９２】
この点に着目して、具体例３における補正判定処理については、判定部２００は、判定画像と、判定画像に対して窓関数処理を行なった画像（以下、「窓関数画像」ともいう）とを比較して補正判定を行なう。このように、判定部２００が窓関数画像を用いて補正判定を行なうことで、画像処理装置１００Ａは、窓関数起因のノイズが現れるか否かを、より確実に突き止めることが可能になる。これにより、画像処理装置１００Ａは、照合部２３０によるテンプレートマッチング処理の精度をさらに向上することができる。
【００９３】
より具体的な処理手順としては、ステップＳ６１０において、判定部２００は、判定画像３６に対して窓関数処理を実行して窓関数画像３８（図１５参照）を取得する。ステップＳ６１２において、判定部２００は、判定画像３６と窓関数画像３８と用いて、画素値のばらつきに応じた統計値を算出する。当該統計値とは、たとえば、判定画像３６および窓関数画像３８の各々についての周波数空間での信号強度の最大値と最小値との差を含む。あるいは、当該統計値は、判定画像３６および窓関数画像３８の各々について画素値の分散値であってもよい。
【００９４】
ステップＳ５２０において、判定部２００は、判定画像３６および窓関数画像３８の各々から算出した統計値を比較する。すなわち、判定部２００は、以下の式（６）を満たすか否かを判定する。
【００９５】
（窓関数画像における統計値）−（入力画像における統計値）≧閾値・・・式（６）
たとえば、窓関数画像から算出された分散値（統計値）が５．２であり、入力画像から算出された分散値（統計値）が０．８であり、閾値が３．０の場合には、以下の式（７）のようになる。この場合、上記式（６）が満たされるので判定部２００は、補正が必要であると判定する。
【００９６】
５．２−０．８≧３．０・・・式（７）
ステップＳ５２０において、判定部２００は、判定画像３６および窓関数画像３８の各々から算出した各統計値を用いて、入力画像およびテンプレート画像に対する補正が必要であるか否かを判定する。典型的には、判定部２００は、統計値が上記式（６）を満たした場合に、補正が必要であると判定する。判定部２００は、補正が必要であると判定した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、判定部２００は、制御をステップＳ５２４に切り替える。
【００９７】
（判定部２００の処理の具体例４）
以下では、図１６および図１７を参照して、判定部２００の処理のさらに他の例について説明する。図１６は、具体例４に従う判定部２００の処理の一例を示すフローチャートである。図１７は、具体例４に従う判定部２００の処理の概略を表した概念図である。
【００９８】
判定部２００は、上記具体例３の判定画像および窓関数画像を比較する他の方法として、判定画像と窓関数画像との差分画像を用いてもよい。判定部２００は、差分画像を用いることで、具体例３のように判定画像および窓関数画像の両方について統計値を算出する必要がなくなり、差分画像のみから統計値を算出すればよいため、処理時間を短縮することが可能になる。
【００９９】
より具体的な処理手順としては、ステップＳ６１０において、判定部２００は、判定画像３６に対して窓関数処理を実行して窓関数画像３８を取得する。ステップＳ６２０において、図１７に示されるように、判定部２００は、判定画像３６と窓関数画像３８と用いて差分画像を作成する。
【０１００】
ステップＳ６２２において、判定部２００は、差分画像を用いて統計値を算出する。上述のように、補正処理が必要無い場合には、判定画像と窓関数画像とが類似する画像となるため、差分画像における各画素値がほぼ０になる。これに着目して、判定部２００は、判定画像と窓関数画像との類似性を示す統計値を算出する。より具体的には、判定部２００は、類似性を示す統計値として、差分画像の画素値の大きさに応じた統計値、または、差分画像の画素値のばらつきに応じた統計値を算出する。
【０１０１】
たとえば、当該統計値としては、差分画像の各画素値の、平均値、中央値、および最頻値などが挙げられる。他にも、統計値としては、差分画像内の画素数に対する所定の値以上を有する画素の数の割合が挙げられる。他にも、統計値としては、差分画像における周波数空間での信号強度の最大値と最小値との差が挙げられる。他にも、統計値としては、差分画像における各画素値から算出された分散値が挙げられる。
【０１０２】
ステップＳ５２０において、判定部２００は、差分画像が所定の値よりも大きいか否かを判定する。すなわち、判定部２００は、以下の式（８）を満たすか否かを判定する。
【０１０３】
（差分画像における統計値）≧閾値・・・式（８）
たとえば、差分画像の各画素値から算出された平均値（統計値）が２００であり、閾値が１２８の場合には、以下の式（９）のようになる。この場合、上記式（８）が満たされるので判定部２００は、補正が必要であると判定する。
【０１０４】
２００≧１２８・・・式（９）
ステップＳ５２０において、判定部２００は、差分画像から算出した統計値を用いて、入力画像およびテンプレート画像に対する補正が必要であるか否かを判定する。典型的には、判定部２００は、統計値が上記式（８）を満たした場合に、補正が必要であると判定する。判定部２００は、補正が必要であると判定した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、判定部２００は、制御をステップＳ５２４に切り替える。
【０１０５】
（判定部２００の処理の具体例５）
なお、具体例３および具体例４においては、判定部２００は、判定画像と、窓関数画像との両方を用いて補正判定を行なったが、窓関数画像のみを用いて補正判定を行なってもよい。窓関数画像における非ワーク領域において画素値が大きい（白い）場合には（図２（Ａ）参照）、判定部２００は、窓関数起因のノイズが発生したと判定できる。この点に着目して、判定部２００は、窓関数画像における非ワーク領域の画素値に応じた統計値が所定値よりも大きい場合に補正を行なうと判定してもよい。
【０１０６】
（判定部２００の処理の具体例６）
以下では、図１８および図１９を参照して、判定部２００の処理のさらに他の例について説明する。図１８は、具体例６に従う判定部２００の処理の一例を示すフローチャートである。図１９は、具体例６に従う判定部２００の処理の概略を表した概念図である。
【０１０７】
具体例６における補正判定処理については、判定部２００は、判定画像に対して窓関数処理を行なった画像と、判定画像に対して補正処理（すなわち、ネガポジ反転処理）を行ない、さらに、窓関数処理を行なった画像とを比較して補正判定を行う。このように、判定部２００が、実際に補正処理を行なった画像を用いて補正判定を行なうことで、画像処理装置１００Ａは、窓関数起因のノイズが現れるか否かを、より確実に突き止めることが可能になる。これにより、画像処理装置１００Ａは、照合部２３０によるテンプレートマッチング処理の精度をさらに向上することができる。
【０１０８】
より具体的な処理手順としては、図１８に示されるように、ステップＳ６３０において、判定部２００は、判定画像３６に対してネガポジ反転処理を行って反転画像４０（図１９参照）を取得する。ステップＳ６３２において、判定部２００は、判定画像３６と、反転画像４０との各々について窓関数処理を行ない、窓関数画像３８と、反転窓関数画像４２とを作成する。
【０１０９】
ステップＳ６３４において、判定部２００は、窓関数画像３８と反転窓関数画像４２と用いて、画素値のばらつきに応じた統計値を算出する。当該統計値とは、たとえば、窓関数画像３８と反転窓関数画像４２との各々についての周波数空間での信号強度の最大値と最小値との差を含む。あるいは、当該統計値は、窓関数画像３８と反転窓関数画像４２との各々について画素値の分散値であってもよい。あるいは、当該統計値は、画素値が所定の範囲にある画素の数であってもよい。
【０１１０】
ステップＳ５２０において、判定部２００は、窓関数画像３８と反転窓関数画像４２の各々から算出した統計値を比較する。すなわち、判定部２００は、以下の式（１０）を満たすか否かを判定する。
【０１１１】
（窓関数画像における統計値）−（反転窓関数画像における統計値）≧閾値・・・式（１０）
たとえば、窓関数画像３８の各画素の画素値が所定の範囲（１００〜１５６）にある画素数が１５０であり、反転窓関数画像４２の各画素の画素値が所定の範囲（１００〜１５６）にある画素数が２０であり、閾値が５０の場合には、以下の式（１１）のようになる。この場合、上記式（１０）が満たされるので判定部２００は、補正が必要であると判定する。
【０１１２】
１５０−２０≧５０・・・式（１１）
ステップＳ５２０において、判定部２００は、窓関数画像３８および反転窓関数画像４２の各々から算出した各統計値を用いて、入力画像およびテンプレート画像に対する補正が必要であるか否かを判定する。典型的には、判定部２００は、統計値が上記式（１０）を満たした場合に、補正が必要であると判定する。判定部２００は、補正が必要であると判定した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５２２に切り替える。そうでない場合には（ステップＳ５２０においてＮＯ）、判定部２００は、制御をステップＳ５２４に切り替える。
【０１１３】
（判定部２００の処理の具体例７）
以下では、図２０を参照して、判定部２００の処理のさらに他の例について説明する。図２０は、画像処理装置１００Ａの機能構成の一例を示すブロック図である。
【０１１４】
判定部２００は、図８に示されるように、テンプレート画像だけでなく、図２０に示されるように、入力画像も判定画像として用いることができる。判定部２００は、入力画像を判定画像として用いても、上記の具体例１〜６と同様の効果を得ることができる。
【０１１５】
（判定部２００の処理の具体例８）
以下では、図２１および図２２を参照して、判定部２００の処理のさらに他の例について説明する。図２１は、画像処理装置１００Ａの機能構成の一例を示すブロック図である。図２２は、具体例８に従う判定部２００の処理の一例を示すフローチャートである。
【０１１６】
図２１に示されるように、判定部２００は、入力画像およびテンプレート画像のいずれを判定画像として用いるかを選択してもよい。判定部２００が補正判定に適した画像を選択することで、画像処理装置１００Ａは、窓関数起因のノイズが現れるか否かを、さらに確実に突き止めることが可能になる。これにより、画像処理装置１００Ａは、照合部２３０によるテンプレートマッチング処理の精度をさらに向上することができる。
【０１１７】
より具体的な処理手順としては、図２２に示されるように、ステップＳ６００において、判定部２００は、上記具体例１〜７のいずれかの方法を用いて、入力画像およびテンプレート画像の各々について統計値を算出する。たとえば、判定部２００は、具体例２のように、入力画像について、非ワーク領域における画素値の平均から、ワーク領域における画素値の平均を引いた値を統計値として算出する。また、判定部２００は、テンプレート画像についても同様の方法で統計値を算出する。
【０１１８】
ステップＳ６４０において、判定部２００は、算出した、入力画像における統計値と、テンプレート画像における統計値とを比較する。典型的には、判定部２００は、入力画像およびテンプレート画像のうち、統計値が大きい方を補正判定に用いる判定画像として決定する。たとえば、テンプレート画像に対するワーク領域と非ワーク領域との各々の領域における画素値の平均値の差分値（統計値）が６０であり、入力画像に対するワーク領域と非ワーク領域との各々の領域における画素値の平均値の差分値が１９０（統計値）の場合、入力画像の統計値の方がテンプレート画像の統計値よりも大きいので、判定部は入力画像を判定画像として用いる。
【０１１９】
（判定部２００の処理の具体例９）
以下では、図２３を参照して、判定部２００の処理のさらに他の例について説明する。図２３は、具体例９に従う判定部２００の処理の一例を示すフローチャートである。
【０１２０】
図２３に示されるように、判定部２００は、入力画像およびテンプレート画像の両方に対する補正判定の結果を用いて補正判定を行なってもよい。これにより、画像処理装置１００Ａは、窓関数起因のノイズが現れるか否かを、さらに確実に突き止めることが可能になる。これにより、画像処理装置１００Ａは、照合部２３０によるテンプレートマッチング処理の精度をさらに向上することができる。
【０１２１】
より具体的な処理手順としては、図２３に示されるように、ステップＳ６５０において、判定部２００は、上記具体例１〜７のいずれかの方法を用いて、入力画像について補正を行なうべきか否かを示した判定結果を得る。同様に、判定部２００は、テンプレート画像についても補正を行なうべきか否かを示した判定結果を得る。
【０１２２】
ステップＳ６５２において、判定部２００は、入力画像およびテンプレート画像に対する判定結果のいずれかにおいて補正が必要であると示された場合には、補正部２１０は、入力画像およびテンプレート画像に対して補正処理を実行する。また、判定部２００は、入力画像およびテンプレート画像に対する判定結果の両方で補正が不要であると示された場合には、補正部２１０は、入力画像およびテンプレート画像に対して補正処理を実行しない。
【０１２３】
［利点］
以上のようにして、本実施の形態に従う画像処理装置１００Ａは、入力画像およびテンプレート画像を用いて補正判定処理を行なうことで、比較的容易な処理で、補正処理が必要か否かを容易に判定できる。また、画像処理装置１００Ａは、反転画像を用いて補正判定を行なう場合には、入力画像およびテンプレート画像のネガポジ反転処理前後の画像における画素値から算出される統計値の変化幅を比較できるようになるため、補正が必要であるか否かを容易に判定できる。
【０１２４】
さらに、画像処理装置１００Ａは、判定画像をワーク領域と非ワーク領域に分割して補正判定を行なう場合には、ワーク領域と非ワーク領域で算出した画素の統計値を比較するという簡単な処理で補正判定を行なうことができる。これにより、画像処理装置１００Ａは、処理時間がそれほど増加させずに、テンプレートマッチング処理の精度を向上させることが可能になる。
【０１２５】
さらに、画像処理装置１００Ａは、判定画像をワーク領域および非ワーク領域のいずれか一方の統計値を用いて補正判定を行なう場合であっても、判定画像における画素値のうち、窓関数の影響により画素値の変動幅が大きくなる画素がどの程度含まれているかを算出することができる。これにより、ワーク領域および非ワーク領域の両方を用いた場合に比べて、処理時間を短縮して判定処理を行なうことが可能になる。
【０１２６】
さらに、画像処理装置１００Ａは、判定画像と窓関数画像とを判定に用いることで、窓関数処理前後の画像における画素値から算出される統計値の変化幅を確認することができるため、より確実な補正判定結果を得ることができる。
【０１２７】
さらに、画像処理装置１００Ａは、判定画像と窓関数画像との差分画像を用いることで、窓関数処理を行う前後の差分画像における画素値から算出される統計値の変化幅を確認することが出来るため、より確実な判定結果を得ることができる。
【０１２８】
さらに、画像処理装置１００Ａは、窓関数画像と反転窓関数画像とを用いて算出した統計値を用いることで、窓関数画像および反転窓関数画像のうち、窓関数の影響が発生しない画像を選択することができる。これにより、画像処理装置１００Ａは、より確実な判定結果を得ることができる。
【０１２９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
１  ＲＯＭ、２  ＣＰＵ、３  ＲＡＭ、４  カメラＩ／Ｆ、５  メモリーカードＩ／Ｆ、５Ａ  メモリーカード、６  ネットワークＩ／Ｆ、６Ａ  アンテナ、２０  記憶装置、２２  画像処理プログラム、２４  入力画像、２６  テンプレート画像、３０Ａ，３０Ｂ，３４Ａ，３４Ｂ  画像、３２  窓関数、３６  判定画像、３８  窓関数画像、４０  反転画像、４２  反転窓関数画像、５０  画像処理システム、１００，１００Ａ  画像処理装置、１１０  カメラ、１１２  製造装置、１１４  搬送機構、１１６  ワーク、１１８，１３０  マウス、１２０  表示装置、２００  判定部、２１０  補正部、２２０  窓関数処理部、２３０  照合部、２３１Ａ，２３１Ｂ  フーリエ変換部、２３２Ａ，２３２Ｂ  対数化処理部、２３３Ａ，２３３Ｂ  極座標変換部、２３４，２３６  ＰＯＣ処理部、２３５  回転量補正部。
【図１】
2015176433.tif 000003
【図４】
2015176433.tif 000004
【図５】
2015176433.tif 000005
【図６】
2015176433.tif 000006
【図７】
2015176433.tif 000007
【図８】
2015176433.tif 000008
【図９】
2015176433.tif 000009
【図１０】
2015176433.tif 000010
【図１３】
2015176433.tif 000011
【図１４】
2015176433.tif 000012
【図１６】
2015176433.tif 000013
【図１８】
2015176433.tif 000014
【図２０】
2015176433.tif 000015
【図２１】
2015176433.tif 000016
【図２２】
2015176433.tif 000017
【図２３】
2015176433.tif 000018
【図２】
2015176433.tif 000019
【図３】
2015176433.tif 000020
【図１１】
2015176433.tif 000021
【図１２】
2015176433.tif 000022
【図１５】
2015176433.tif 000023
【図１７】
2015176433.tif 000024
【図１９】
2015176433.tif 000025