(57)【要約】【課題】テンプレートの有効度に基づいて、テンプレートマッチングを実行することにより、テンプレートマッチングの精度を安定させる装置を提供することである。【解決手段】本画像処理方法は、環境パラメータに関連付けられたテンプレートを１つ以上取得して格納するステップと、入力画像および入力画像の環境パラメータを取得するステップを備える。環境パラメータは、ワークを撮像した際の情報、および、ワークに対して行われた処理の情報の少なくとも一方を含む。さらに、本画像処理方法は、テンプレートのそれぞれに関連付けられた環境パラメータと入力画像に対応する環境パラメータとに基づいて、テンプレートの有効度をテンプレートのそれぞれについて算出するステップと、１つ以上のテンプレートの有効度に基づいて、１つ以上のテンプレートの少なくとも一部を用いて入力画像に対してテンプレートマッチングを実行するステップとを備える。【選択図】図３
2014203390.tif 000002
【特許請求の範囲】
【請求項１】
基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理を行う画像処理方法であって、
前記基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得して格納するステップを備え、前記基準対象物の環境パラメータは、前記基準対象物を撮像した際の情報、および、前記基準対象物に対して行われた処理の情報の少なくとも一方を含み、さらに
前記検査対象物を撮像した入力画像と前記検査対象物の環境パラメータとを取得するステップを備え、前記検査対象物の環境パラメータは、前記検査対象物を撮像した際の情報、および、前記検査対象物に対する処理を行った際の情報の少なくとも一方を含み、さらに
前記１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと前記入力画像に対応する環境パラメータとに基づいて、前記入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を前記１つ以上のテンプレートのそれぞれについて算出するステップと、
前記１つ以上のテンプレートの有効度に基づいて、前記１つ以上のテンプレートの少なくとも一部を用いて前記入力画像に対してテンプレートマッチングを実行するステップとを備える、画像処理方法。
【請求項２】
前記実行するステップは、前記有効度に基づいて、前記テンプレートマッチングに用いるテンプレートを決定するステップを含む、請求項１に記載の画像処理方法。
【請求項３】
前記決定するステップは、前記有効度がより高い１つのテンプレートを決定するステップを含む、請求項２に記載の画像処理方法。
【請求項４】
前記決定するステップは、前記テンプレートマッチングに用いる複数のテンプレートを決定するステップを含み、
前記実行するステップは、前記テンプレートマッチングに用いる複数のテンプレートと、前記複数のテンプレートのそれぞれに対応する有効度とに基づいて、前記入力画像との比較対象になるテンプレートを生成するステップをさらに含む、請求項２に記載の画像処理方法。
【請求項５】
前記格納するステップは、前記生成するステップにより生成されたテンプレートを新たなテンプレートとして格納するステップを含む、請求項４に記載の画像処理方法。
【請求項６】
前記１つ以上のテンプレートの各々は、前記環境パラメータについての条件範囲が予め定められており、
前記決定するステップは、前記１つ以上のテンプレートのうち、前記入力画像に対応する環境パラメータが前記条件範囲内にあるテンプレートから、前記テンプレートマッチングに用いるテンプレートを決定するステップを含む、請求項２〜５のいずれか１項に記載の画像処理方法。
【請求項７】
前記決定するステップにより決定されるテンプレートが１つもない場合に、警告を報知するステップをさらに備える、請求項２〜６のいずれか１項に記載の画像処理方法。
【請求項８】
前記１つ以上のテンプレートの各々と、テンプレートマッチングの手法とは、対応付けられており、
前記実行するステップは、前記決定するステップにより決定されたテンプレートに対応付けられているテンプレートマッチングの手法を用いてテンプレートマッチングを行うステップを含む、請求項２〜７のいずれか１項に記載の画像処理方法。
【請求項９】
前記格納するステップは、前記入力画像を新たなテンプレートとして格納するステップを含む、請求項１〜８のいずれか１項に記載の画像処理方法。
【請求項１０】
前記基準対象物または前記検査対象物を撮像した際に得られる環境パラメータは、照明情報と、温度情報と、湿度情報と、前記基準対象物および前記検査対象物の重量情報と、前記検査対象物の体積情報と、前記基準対象物および前記検査対象物の表面積情報と、ワーキングディスタンスと、撮像者情報との少なくとも１つを含む、請求項１〜９のいずれか１項に記載の画像処理方法。
【請求項１１】
前記基準対象物または前記検査対象物に対して行われた処理の情報として得られる環境パラメータは、温度情報と、湿度情報と、前記基準対象物および前記検査対象物の重量情報と、前記基準対象物および前記検査対象物の体積情報と、前記基準対象物または前記検査対象物の表面積情報との少なくとも１つを含む、請求項１〜１０のいずれか１項に記載の画像処理方法。
【請求項１２】
基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理を行う画像処理装置であって、
前記基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得して格納するための記憶部を備え、前記基準対象物の環境パラメータは、前記基準対象物を撮像した際の情報、および、前記基準対象物に対して行われた処理の情報の少なくとも一方を含み、さらに
前記検査対象物を撮像した入力画像と前記検査対象物の環境パラメータとを取得するための取得手段を備え、前記検査対象物の環境パラメータは、前記検査対象物を撮像した際の情報、および、前記検査対象物に対する処理を行った際の情報の少なくとも一方を含み、さらに
前記１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと前記入力画像に対応する環境パラメータとに基づいて、前記入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を前記１つ以上のテンプレートのそれぞれについて算出するための算出手段と、
前記１つ以上のテンプレートの有効度に基づいて、前記１つ以上のテンプレートの少なくとも一部を用いて前記入力画像に対してテンプレートマッチングを実行するための実行手段とを備える、画像処理装置。
【請求項１３】
基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理をコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記コンピュータのプロセッサに、前記基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得するステップを実行させ、前記基準対象物の環境パラメータは、前記基準対象物を撮像した際の情報、および、前記基準対象物に対して行われた処理の情報の少なくとも一方を含み、さらに
前記プログラムは、前記コンピュータのプロセッサに、前記検査対象物を撮像した入力画像と前記検査対象物の環境パラメータとを取得するステップを実行させ、前記検査対象物の環境パラメータは、前記検査対象物を撮像した際の情報、および、前記検査対象物に対する処理を行った際の情報の少なくとも一方を含み、さらに
前記プログラムは、前記コンピュータのプロセッサに、前記１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと前記入力画像に対応する環境パラメータとに基づいて、前記入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を前記１つ以上のテンプレートのそれぞれについて算出するステップと、
前記１つ以上のテンプレートの有効度に基づいて、前記１つ以上のテンプレートの少なくとも一部を用いて前記入力画像に対してテンプレートマッチングを実行するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートマッチングを行う画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークなどの検査対象物の欠陥等を光学的に検査することで、工場などにおける生産工程を自動化する技術が開発されている。光学的に検査を行う技術の１つとして、テンプレートマッチングという技術がある。
【０００３】
テンプレートマッチングは、予め登録されたテンプレートと一致する領域を入力画像から探索するための技術である。ＦＡ分野においては、基準となるワークを撮影して取得した画像がテンプレートとして用いられる。ＦＡ分野における画像処理装置は、当該テンプレートと、ワークなどの検査対象物を撮影して得られる入力画像とを用いてテンプレートマッチングを行う。これにより、ワークの欠陥等を自動的に検査することができる。
【０００４】
近年、テンプレートマッチングの精度および処理速度を向上するための技術が開発されている。たとえば、特開２０１１−２３３０５９号公報（特許文献１）は、「処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現する」ために、「テンプレート画像よりも画素数が少なく、テンプレート画像の特徴量が反映された子テンプレート画像」を生成し、子テンプレート画像をテンプレートとしてテンプレートマッチングを行う技術を開示している（［要約］および段落[０００９]参照）。
【０００５】
特開２０１０−２７６４８７号公報（特許公報２）は、「高いマッチング精度を安定して確保する」ために、「テンプレートマッチングによって、特定された個所の画像を複数取得し、当該複数画像を加算平均することによって、新たなテンプレートを作成する」という技術を開示している（［要約］参照）。
【０００６】
特開平１０−２３２９１３号公報（特許公報３）は、「不要なテンプレート情報あるいは画像情報を適宜削除して記憶装置の記憶容量の圧迫を防ぐ」ための技術を開示している（［要約］参照）。
【０００７】
特開２００２−２５３５３９号公報（特許公報４）は、「医用画像から画像処理によって自動的に画像処理装置，部位，撮像方向等の撮像属性情報を抽出して管理情報に付加し，膨大な量の医用画像の効率的な管理を可能にする」ための技術を開示している（［要約］参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−２３３０５９号公報
【特許文献２】特開２０１０−２７６４８７号公報
【特許文献３】特開平１０−２３２９１３号公報
【特許文献４】特開２００２−２５３５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、特許文献１〜４が開示している技術は、テンプレートの有効性について評価しない。このため、特許文献１〜４が開示している技術は、悪質なテンプレートが登録されている場合には、テンプレートマッチングの精度が安定しない。
【００１０】
したがって、テンプレートマッチングに用いるテンプレートの有効度に基づいて、テンプレートの少なくとも一部を用いてテンプレートマッチングを実行するための技術が必要とされている。
【００１１】
この開示は上述のような問題点を解決するためになされたものであって、その目的は、テンプレートマッチングに用いるテンプレートの有効度に基づいて、テンプレートの少なくとも一部を用いてテンプレートマッチングを実行することにより、テンプレートマッチングの精度を安定させる装置、方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１２】
一実施の形態に従うと、基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理を行う画像処理方法が提供される。本画像処理方法は、基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得して格納するステップを備える。基準対象物の環境パラメータは、基準対象物を撮像した際の情報、および、基準対象物に対して行われた処理の情報の少なくとも一方を含む。さらに、本画像処理方法は、検査対象物を撮像した入力画像と検査対象物の環境パラメータとを取得するステップを備える。検査対象物の環境パラメータは、検査対象物を撮像した際の情報、および、検査対象物に対する処理を行った際の情報の少なくとも一方を含む。さらに、本画像処理方法は、１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと入力画像に対応する環境パラメータとに基づいて、入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を１つ以上のテンプレートのそれぞれについて算出するステップと、１つ以上のテンプレートの有効度に基づいて、１つ以上のテンプレートの少なくとも一部を用いて入力画像に対してテンプレートマッチングを実行するステップとを備える。
【００１３】
好ましくは、実行するステップは、有効度に基づいて、テンプレートマッチングに用いるテンプレートを決定するステップを含む。
【００１４】
好ましくは、決定するステップは、有効度がより高い１つのテンプレートを決定するステップを含む。
【００１５】
好ましくは、決定するステップは、テンプレートマッチングに用いる複数のテンプレートを決定するステップを含む。実行するステップは、テンプレートマッチングに用いる複数のテンプレートと、複数のテンプレートのそれぞれに対応する有効度とに基づいて、入力画像との比較対象になるテンプレートを生成するステップをさらに含む。
【００１６】
好ましくは、格納するステップは、生成するステップにより生成されたテンプレートを新たなテンプレートとして格納するステップを含む。
【００１７】
好ましくは、１つ以上のテンプレートの各々は、環境パラメータについての条件範囲が予め定められている。決定するステップは、１つ以上のテンプレートのうち、入力画像に対応する環境パラメータが条件範囲内にあるテンプレートから、テンプレートマッチングに用いるテンプレートを決定するステップを含む。
【００１８】
好ましくは、本画像処理方法は、決定するステップにより決定されるテンプレートが１つもない場合に、警告を報知するステップをさらに備える。
【００１９】
好ましくは、本画像処理方法は、１つ以上のテンプレートの各々と、テンプレートマッチングの手法とは、対応付けられている。実行するステップは、決定するステップにより決定されたテンプレートに対応付けられているテンプレートマッチングの手法を用いてテンプレートマッチングを行うステップを含む。
【００２０】
好ましくは、格納するステップは、入力画像を新たなテンプレートとして格納するステップを含む。
【００２１】
好ましくは、基準対象物または検査対象物を撮像した際に得られる環境パラメータは、照明情報と、温度情報と、湿度情報と、基準対象物および検査対象物の重量情報と、検査対象物の体積情報と、基準対象物および検査対象物の表面積情報と、ワーキングディスタンスと、撮像者情報との少なくとも１つを含む。
【００２２】
好ましくは、基準対象物または検査対象物に対して行われた処理の情報として得られる環境パラメータは、温度情報と、湿度情報と、基準対象物および検査対象物の重量情報と、基準対象物および検査対象物の体積情報と、基準対象物または検査対象物の表面積情報との少なくとも１つを含む。
【００２３】
他の実施形態に従うと、基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理を行う画像処理装置が提供される。本画像処理装置は、基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得して格納するための記憶部を備える。基準対象物の環境パラメータは、基準対象物を撮像した際の情報、および、基準対象物に対して行われた処理の情報の少なくとも一方を含む。さらに、本画像処理装置は、検査対象物を撮像した入力画像と検査対象物の環境パラメータとを取得するための取得手段を備える。検査対象物の環境パラメータは、検査対象物を撮像した際の情報、および、検査対象物に対する処理を行った際の情報の少なくとも一方を含む。さらに、本画像処理装置は、１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと入力画像に対応する環境パラメータとに基づいて、入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を１つ以上のテンプレートのそれぞれについて算出するための算出手段と、１つ以上のテンプレートの有効度に基づいて、１つ以上のテンプレートの少なくとも一部を用いて入力画像に対してテンプレートマッチングを実行するための実行手段とを備える。
【００２４】
他の実施形態に従うと、基準対象物を撮像して得られる特徴量を含むテンプレートを用いて検査対象物についてのマッチング処理をコンピュータに実行させるためのプログラムが提供される。本プログラムは、コンピュータのプロセッサに、基準対象物の環境パラメータに関連付けられたテンプレートを１つ以上取得するステップを実行させる。基準対象物の環境パラメータは、基準対象物を撮像した際の情報、および、基準対象物に対して行われた処理の情報の少なくとも一方を含む。本プログラムは、コンピュータのプロセッサに、検査対象物を撮像した入力画像と検査対象物の環境パラメータとを取得するステップを実行させる。検査対象物の環境パラメータは、検査対象物を撮像した際の情報、および、検査対象物に対する処理を行った際の情報の少なくとも一方を含む。本プログラムは、コンピュータのプロセッサに、１つ以上のテンプレートのそれぞれに関連付けられた環境パラメータと入力画像に対応する環境パラメータとに基づいて、入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を１つ以上のテンプレートのそれぞれについて算出するステップと、１つ以上のテンプレートの有効度に基づいて、１つ以上のテンプレートの少なくとも一部を用いて入力画像に対してテンプレートマッチングを実行するステップとを実行させる。
【００２５】
ある局面において、テンプレートマッチングに用いるテンプレートの有効度に基づいて、テンプレートの少なくとも一部を用いてテンプレートマッチングを実行することにより、テンプレートマッチングの精度を安定させることができる。
【００２６】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施の形態に従う画像処理装置１００を含む画像処理システム１の全体構成を示す概略図である。
【図２】画像処理装置１００のハードウェア構成の一例を示すブロック図である。
【図３】第１の実施の形態に従う画像処理装置１００の機能構成の一例を示すブロック図である。
【図４】ワークの透明度の違いを表す図である。
【図５】ワーク表面の状態の違いを表す図である。
【図６】作業者毎のカメラ設定の違いを表す図である。
【図７】作業者毎のワークの置き場所の違いを表す図である。
【図８】補助記憶装置２１０に格納されているテンプレートリスト３２０のデータ構造の一例を表す図である。
【図９】２次元マップ上に表されたテンプレートおよび入力画像を示す図である。
【図１０】テンプレートマッチングの手法の１つであるＰＯＣの概要を表す図である。
【図１１】ＰＯＣを用いてテンプレートマッチングを行った結果を表す図である。
【図１２】画像処理装置１００が実行する処理の一部を表わすフローチャートである。
【図１３】画像処理装置１００Ａの機能構成の一例を示すブロック図である。
【図１４】補助記憶装置２１０に格納されているテンプレートリスト３２０Ａのデータ構造の一例を表す図である。
【図１５】テンプレートの有効な範囲を示す条件範囲を表す図である。
【図１６】２次元マップ上に表されたテンプレートおよび入力画像を示す図である。
【図１７】２次元マップ上に表されたテンプレートおよび入力画像を示す図である。
【図１８】２次元マップ上に表されたテンプレートおよび入力画像を示す図である。
【図１９】画像処理装置１００Ｂのハードウェア構成の一例を示すブロック図である。
【図２０】合成テンプレートの生成方法を示す図である。
【図２１】補助記憶装置２１０に格納されているテンプレートリスト２１００のデータ構造の一例を表す図である。
【図２２】画像処理装置１００Ｂが実行する処理の一部を表わすフローチャートである。
【図２３】補助記憶装置２１０に格納されている、テンプレートリスト１３００を表す図である。
【図２４】本実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。
【発明を実施するための形態】
【００２８】
以下、図面を参照しつつ、本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２９】
＜全体装置構成＞
図１は、本発明の実施の形態に従う画像処理装置１００を含む画像処理システム１の全体構成を示す概略図である。図１を参照して、画像処理システム１は、たとえば、検査対象物（以下、「ワーク」ともいう。）の欠陥や汚れの有無を光学的に検査する。より具体的には、画像処理システム１は、生産ラインなどに組み込まれ、予め登録されたテンプレートを用いて、ワーク２を撮影して取得した画像とテンプレートマッチングを行う。
【００３０】
画像処理システム１は、センサー４と、カメラ８と、センサー１０と、製造装置１２と、搬送機構１４と、表示装置１６と、マウス１８と、画像処理装置１００とを含む。
【００３１】
製造装置１２は、ワーク２に対して処理を行う。センサー１０は、ワーク２に対して行われた処理の情報（以下、「処理情報」という。）を取得する。センサー１０は、処理情報を画像処理装置１００に伝送する。
【００３２】
製造装置１２がワーク２に対して処理を行うと、ワーク２は、ベルトコンベアなどの搬送機構１４によって搬送される。搬送されたワーク２は、カメラ８により所定のタイミングで撮影される。カメラ８により得られた画像は、画像処理装置１００へ伝送される。
【００３３】
センサー４は、ワーク２を撮像した際の情報（以下、「撮像情報」という。）を取得する。センサー４は、撮像情報を画像処理装置１００に伝送する。
【００３４】
なお、以下では説明を簡単にするために、「処理情報」および「撮像情報」の少なくとも一方を含む用語として「環境パラメータ」を用いる。画像処理装置１００は、テンプレートに関連付けられた環境パラメータと、入力画像に対応する環境パラメータとに基づいて、入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を算出する。また、画像処理装置１００は、当該有効度に基づいて、１つ以上のテンプレートの少なくとも一部を用いて入力画像に対してテンプレートマッチングを実行する。
【００３５】
画像処理装置１００は、有効なテンプレートを用いてテンプレートマッチングを行うことにより、テンプレートマッチングの精度を安定させることができる。画像処理装置１００は、テンプレートマッチングを行った結果を表示装置１６に表示する。
【００３６】
また、画像処理装置１００は、後述するテンプレートの登録処理を行うための登録モードと、ワーク２に対して検査を実行する検査モードとを有する。ユーザーは、マウス１８などの入力装置により、検査モードおよび登録モードを交互に切り替えることができる。
【００３７】
＜ハードウェア構成＞
図２は、画像処理装置１００のハードウェア構成の一例を示すブロック図である。図２を参照して、画像処理装置１００のハードウェア構成について説明する。
【００３８】
図２を参照して、画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Central  Processing  Unit）２０１と、ＲＡＭ（Random  Access  Memory）２０２と、ＲＯＭ（Read  Only  Memory）２０３と、ネットワークインターフェイス（Ｉ／Ｆ）２０４と、カメラインターフェイス（Ｉ／Ｆ）２０５と、センサーインターフェイス（Ｉ／Ｆ）２０６と、メモリーカードインターフェイス（Ｉ／Ｆ）２０７と、補助記憶装置２１０とを含む。センサー４と、カメラ８と、センサー１０と、表示装置１６と、入力装置２４０とは、画像処理装置１００に接続される。各コンポーネントは、バス２００を介して、互いに通信可能に接続されている。
【００３９】
ＣＰＵ２０１は、ＲＯＭ２０３や補助記憶装置２１０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）や画像処理プログラムなどの各種プログラムを実行することで、画像処理装置１００の全体を制御する。
【００４０】
ＲＡＭ２０２は、ＣＰＵ２０１でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一次的に格納する。
【００４１】
ＲＯＭ２０３は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００４２】
ネットワークＩ／Ｆ２０４は、各種の通信媒体を介して、他の装置（サーバ装置など）とデータをやり取りする。より具体的には、ネットワークＩ／Ｆ２０４は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００４３】
カメラＩ／Ｆ２０５は、ＣＰＵ２０１とカメラ８とのデータ通信を仲介する。より具体的には、カメラＩ／Ｆ２０５は、画像バッファを含み、カメラ８から伝送される入力画像のデータを一旦蓄積する。カメラＩ／Ｆ２０５は、少なくとも１コマ分の入力画像のデータが蓄積されると、その蓄積されたデータを補助記憶装置２１０またはＲＯＭ２０３へ転送する。また、カメラＩ／Ｆ２０５は、ＣＰＵ２０１が発生した内部コマンドに従って、カメラ８に対して撮像指令を与える。
【００４４】
センサーＩ／Ｆ２０６は、ＣＰＵ２０１と、センサー４およびセンサー１０とのデータ通信を仲介する。より具体的には、センサー４および１０が取得した環境パラメータは、センサーＩ／Ｆ２０６を介して、ＣＰＵ２０１に入力される。
【００４５】
メモリーカードＩ／Ｆ２０７は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記憶媒体）２３０との間で、データの読み書きを行なう。典型的には、メモリーカードＩ／Ｆ２０７には、何らかの装置で取得した入力画像を格納したメモリーカード２３０が装着され、そのメモリーカード２３０から読み出された入力画像が補助記憶装置２１０へ格納される。
【００４６】
補助記憶装置２１０は、典型的には、ハードディスクなどの大容量磁気記憶媒体などを含む。補助記憶装置２１０は、本実施の形態に従う各種を実現するための画像処理プログラム２１１および処理対象の入力画像２１２ならびにテンプレート２１３などを格納する。さらに、補助記憶装置２１０には、オペレーティングシステムなどのプログラムが格納されてもよい。
【００４７】
入力画像２１２およびテンプレート２１３は、ワークを異なる視点で撮像することで取得された画像などが該当する。ある局面において、入力画像２１２およびテンプレート２１３は、特徴量として格納される。画像処理装置１００本体はワークを撮像する機能を有していなくてもよく、デジタルカメラに類似した機構を用いてこれら画像を取得し、これら画像を任意の方法で画像処理装置１００へ入力するようにしてもよい。より具体的には、上述のネットワークＩ／Ｆ２０４やメモリーカードＩ／Ｆ２０７を介して、これらの画像が画像処理装置１００へ入力される。
【００４８】
表示装置１６は、オペレーティングシステムが提供するＧＵＩ（Graphical  User  Interface）画面や画像処理プログラム２１１の実行によって生成される画像などを表示する。
【００４９】
入力装置２４０は、典型的には、キーボード、マウス、タッチパネルなどからなる。入力装置２４０は、ユーザーから受付けた指示の内容をＣＰＵ２０１などへ出力する。
【００５０】
補助記憶装置２１０に格納される画像処理プログラム２１１は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバ装置などから配信される。画像処理プログラム２１１は、画像処理装置１００で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、画像処理プログラム２１１自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。
【００５１】
また、画像処理プログラム２１１は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、画像処理プログラム２１１自体には、当該何らかのプログラムにおいて共通に利用されるようなモジュールは含まれず、当該何らかのプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない画像処理プログラム２１１であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。さらに、画像処理プログラム２１１によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。
【００５２】
本実施の形態に従う画像処理装置１００は、リアルタイムに処理を行わなくてもよい。たとえば、画像処理装置１００は、少なくとも１つのサーバ装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、ユーザーが、自身の端末を用いて入力画像２１２およびテンプレート２１３をサーバ装置（クラウド側）へ送信する。サーバ装置は、当該送信された入力画像２１２およびテンプレート２１３に対して、装置側が本実施の形態に従う画像処理を行う。さらに、サーバ装置側がすべての機能（処理）を行なう必要はなく、ユーザー側の端末とサーバ装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００５３】
＜概要＞
以下、本発明の第１〜第４の実施の形態の概要を説明する。第１〜第４の実施の形態に従う画像処理装置のハードウェア構成は、上述のハードウェア構成と同様である。したがって、ハードウェア構成の説明については繰り返さない。
【００５４】
第１の実施の形態に従う画像処理装置は、テンプレートマッチングに用いるテンプレートとしての有効度に基づいて、テンプレートマッチングに用いるテンプレートを決定する。また、本実施の形態に従う画像処理装置は、有効度がより高い１つのテンプレートを用いてテンプレートマッチングを行う。
【００５５】
第２の実施の形態に従う画像処理装置は、環境パラメータについての条件範囲をテンプレート毎に対応付ける。本実施の形態に従う画像処理装置は、入力画像に対応する環境パラメータが条件範囲内にあるテンプレートから、テンプレートマッチングに用いるテンプレートを決定する点が第１の実施の形態に従う画像処理装置と異なる。
【００５６】
第３の実施の形態に従う画像処理装置は、テンプレートマッチングに用いるテンプレートとして複数のテンプレートを合成した合成テンプレートを用いる点が第１の実施の形態に従う画像処理装置と異なる。
【００５７】
第４の実施の形態に従う画像処理装置は、テンプレート毎にマッチング手法が対応付けられている。本実施の形態に従う画像処理装置は、テンプレートに対応付いているテンプレートマッチングの手法を用いてテンプレートマッチングを行う点が、第１の実施の形態に従う画像処理装置と異なる。
【００５８】
なお、実施の形態１〜４において示した特徴的な構成は、本発明の趣旨を逸脱しない範囲で当然に相互にその組み合わせが可能である。
【００５９】
［第１の実施の形態］
＜機能構成＞
図３は、第１の実施の形態に従う画像処理装置１００の機能構成の一例を示すブロック図である。図３を参照して、画像処理装置１００の機能構成について説明する。
【００６０】
画像処理装置１００は、補助記憶装置２１０と、スイッチ３００と、作成部３１０と、算出部３３０と、決定部３４０と、マッチング部３６０とを含む。補助記憶装置２１０は、テンプレートリスト３２０を含む。テンプレートリスト３２０は、テンプレート２１３と、登録環境パラメータ３２２とを含む。
【００６１】
画像処理装置１００は、動作モードとして、テンプレート登録処理を行うための登録モードと、ワーク２に対して検査を実行する検査モードとを有する。ユーザーは、入力装置２４０により登録モードおよび検査モードを切り替えることができる。検査モードが切り替えられえると、スイッチ３００が切り替わる。
【００６２】
（登録モード）
画像処理装置１００の動作モードが登録モードである場合、カメラ８は、撮影したワークを登録画像として作成部３１０に出力する。また、センサー４およびセンサー１０の少なくとも一方は、環境パラメータを作成部３１０に出力する。なお、説明を簡単にするために、画像処理装置１００の動作モードが登録モードである場合に得られる環境パラメータを「登録環境パラメータ」ともいう。
【００６３】
作成部３１０は、ワークを撮像して得られる特徴量を含むテンプレートを作成する。たとえば、当該特徴量は、登録画像の画素値である。また、当該特徴量は、登録画像から取得した位相成分であってもよい。さらに、当該特徴量は、ＳＩＦＴ（Scale  Invariant  Feature  Transform）特徴量であってもよい。作成部３１０は、テンプレート２１３と、登録環境パラメータ３２２とを対応付けて、テンプレートリスト３２０として、補助記憶装置２１０に格納する。
【００６４】
（検査モード）
画像処理装置１００の動作モードが検査モードである場合、センサー４およびセンサー１０の少なくとも一方は、環境パラメータを算出部３３０に出力する。なお、説明を簡単にするために、画像処理装置１００の動作モードが検査モードである場合に得られる環境パラメータを「入力環境パラメータ」ともいう。
【００６５】
算出部３３０は、１つ以上のテンプレートのそれぞれに関連付けられた登録環境パラメータと、入力画像に対応する入力環境パラメータとに基づいて、入力画像に対するテンプレートマッチングに用いるテンプレートとしての有効度を算出する。テンプレートの有効度の算出方法の詳細は後述する。算出部３３０は、算出したテンプレートの有効度を決定部３４０に出力する。
【００６６】
決定部３４０は、テンプレートマッチングに用いるテンプレートとしての有効度に基づいて、テンプレートを決定する。典型的には、決定部３４０は、有効度がより高い１つのテンプレートを決定する。
【００６７】
カメラ８は、取得したワーク画像を入力画像としてマッチング部３６０に出力する。マッチング部３６０は、決定部３４０に決定された１つのテンプレートおよび入力画像を用いてテンプレートマッチングを行う。
【００６８】
たとえば、マッチング部３６０は、テンプレートマッチングの手法として、ＳＡＤ（Sum  of  Absolute  Difference）、ＳＳＤ（Sum  of  Squared  Difference）、位相限定相関法（POC：Phase  Only  Correlation）、回転不変位相限定相関(RIPOC：Rotation  Invariant  Phase  Only  Correlation)、ＳＩＦＴ（Scale  Invariant  Feature  Transform)などのいずれかを用いる。テンプレートマッチングの手法は、上述の手法に限定されない。
【００６９】
＜環境パラメータ＞
環境パラメータは、検査対象物を撮像した際の情報（撮像情報）、および、検査対象物に対する処理を行った際の情報（処理情報）の少なくとも一方を含む。環境パラメータは、撮像情報および処理情報の少なくとも一方を定量化したものである。
【００７０】
典型的には、撮像情報としての環境パラメータは、ワークに関する情報、照明情報、カメラに関する情報、および作業者情報の少なくとも１つを含む。ワークに関する情報は、ワークの色、ワークの透明度、ワーク表面の凹凸度、ワークの大きさ、ワークの厚さ、ワークの重さ、およびワークの温度の少なくとも１つを含む。ワークに関する照明情報は、ワークの撮影時の、照明の色、照度、および環境光の少なくとも１つを含む。カメラに関する情報は、ワークの撮影時の、ワークとカメラとの位置情報、ピント値の少なくとも１つを含む。たとえば、当該位置情報は、ワーク２とカメラ８との距離である。また、当該位置情報は、カメラ８の画角内の移動量であってもよい。作業者情報は、作業者ＩＤ、作業者名、および作業者毎のカメラの設定値の少なくとも１つを含む。
【００７１】
また、処理情報としての環境パラメータは、ワークの成形時の情報を含む。ワークの成形時の情報は、ワークの材料色、ワークの透明度、ワーク表面の凹凸度、ワークの大きさ、ワークの厚さ、ワークの重さ、ワークの温度、およびワークの成形プロセスの温度の少なくとも１つを含む。
【００７２】
図４を参照して、環境パラメータの一例であるワークの透明度についてより詳細に説明する。図４は、ワークの透明度の違いを表す図である。
【００７３】
図４（Ａ）および（Ｂ）において、透明度の異なるワーク４１０およびワーク４２０が示されている。プラスチック部品などのワークにおいては、ロットの違いや、成形プロセスの温度管理の違いにより、ワーク４１０およびワーク４２０のように、良品であっても透明度が異なる。ワークの透明度の違いにより、入力画像の特徴量、およびテンプレートの特徴量が変動する。これによりテンプレートマッチングの精度が低下する。検査対象物の透明度に基づいてテンプレートマッチングに用いるテンプレートを決定すると、テンプレートマッチングの精度を安定させることができる。
【００７４】
図５を参照して、環境パラメータの一例であるワーク表面の凹凸度についてより詳細に説明する。図５は、ワーク表面の状態の違いを表す図である。
【００７５】
環境パラメータは、ワークの凹凸度を含む。図５（Ａ）および（Ｂ）において、ワークの表面の状態が異なるワーク５１０およびワーク５２０が示されている。ワークに行われた処理により、凹凸５１１および凹凸５２１のような凹凸が生じる。典型的には、ワークの成形プロセスの違いにより凹凸の違いが生じる。ワークの凹凸の違いにより、入力画像の特徴量、およびテンプレートの特徴量が変動する。これにより、テンプレートマッチングの精度が低下する。ワークの凹凸度に基づいてテンプレートマッチングに用いるテンプレートを決定すると、テンプレートマッチングの精度を安定させることができる。
【００７６】
図６を参照して、環境パラメータの一例である作業者情報についてより詳細に説明する。図６は、作業者毎のカメラ設定の違いを表す図である。
【００７７】
図６を参照して、作業者は、カメラ８によりワーク２を撮影する場合に、手動でピントなどのカメラ設定を調整する。たとえば、ある作業者は、ピント６１０に合わせる。また、他の作業者は、ピント６２０に合わせる。このように、カメラ設定は、作業者毎に変わり、入力画像の特徴量、およびテンプレートの特徴量が変動する。これにより、テンプレートマッチングの精度が低下する。作業者毎のカメラパラメータに基づいて、テンプレートマッチングに用いるテンプレートを決定すると、テンプレートマッチングの精度を安定させることができる。
【００７８】
なお、カメラパラメータは、ピント値を含む。ピント値は、フォーカスリングと連動したエンコーダ値や、レーザ変位計等によりワーキングディスタンスとして定量化される。
【００７９】
図７を参照して、環境パラメータの一例である作業者情報のさらに他の例について説明する。図７は、作業者毎のワークの置き場所の違いを表す図である。
【００８０】
図７（Ａ）に示されるように、照明７１０Ａは、ワーク２Ａを照らしている。カメラ８Ａは、ワーク２Ａを撮影することにより、画像７２０Ａを取得する。ワーク２Ａが照明７１０Ａに照らされることにより、影７３０Ａが画像７２０Ａに写る。
【００８１】
また、図７（Ｂ）に示されるように、照明７１０Ｂは、ワーク２Ｂを照らしている。カメラ８Ｂは、ワーク２Ｂを撮影することにより、画像７２０Ｂを取得する。ワーク２Ｂが照明７１０Ｂに照らされることにより、影７３０Ｂが画像７２０Ｂに写る。
【００８２】
ワーク２Ｂは、ワーク２Ａと異なる位置に置かれている。このため、影７３０Ａおよび影７３０Ｂの大きさは、それぞれ異なる。このように、ワーク２Ａおよびワーク２Ｂが異なる位置に置かれて撮影されることにより、取得できる画像も相違する。ワークの置く位置は、作業者により異なる。つまり、作業者により、入力画像の特徴量、およびテンプレートの特徴量が変動する。これにより、テンプレートマッチングの精度が低下する。このため、作業者情報に基づいてテンプレートを選択することは、有効である。
【００８３】
（正規化）
ある局面において、作成部３１０は、環境パラメータ毎にレンジが同じになるように環境パラメータの値を正規化する。環境パラメータのレンジは、環境パラメータの種類ごとに異なる。このため、環境パラメータの各々を同じ尺度で比較することができない。換言すれば、環境パラメータの各々の重みは、異なる。作成部３１０は、環境パラメータの各々の重みを均一にするために、環境パラメータの値を正規化する。
【００８４】
たとえば、作成部３１０は、テンプレートマッチングの結果のばらつきを基準にして、環境パラメータの値を正規化する。より具体的には、作成部３１０は、照度をある値に固定し、温度を変動させてテンプレートマッチングを行う。この時、温度が１０℃の時の検出結果のばらつきσが０．１で、温度が１５℃の時のばらつきσが０．３であるとする。
【００８５】
次に、作成部３１０は、温度をある値に固定し、照度を変動させてテンプレートマッチングを行う。この時、照度が３００Ｌｕｘの時のばらつきσが０．１で、照度が８００Ｌｕｘの時のばらつきσが０．３であるとする。
【００８６】
この場合、温度５℃の変化が、ばらつきσの０．２の変化に対応している。同様に、照度５００Ｌｕｘの変化が、ばらつきσの０．２に対応している。作成部３１０は、ばらつきσを同一指標として、照度と温度を正規化する。
【００８７】
他の局面において、作成部３１０は、平均が０、分散が１になるように環境パラメータの値を正規化してもよい。作成部３１０が環境パラメータの各々の正規化を行うことにより、各環境パラメータのレンジをそろえることができる。
【００８８】
＜データ構造＞
図８は、補助記憶装置２１０に格納されているテンプレートリスト３２０のデータ構造の一例を表す図である。図８を参照して、テンプレートリスト３２０のデータ構造について説明する。
【００８９】
補助記憶装置２１０は、テンプレートリスト３２０を格納する。図８においては、テンプレートリスト３２０として、テンプレート８００を含む３つのテンプレートが補助記憶装置２１０に格納されている。テンプレート８００と、環境パラメータ８１０と、測定値８２０とは、対応付けられる。
【００９０】
図８を参照して、テンプレート８００に対応付けられている環境パラメータは、「照度（Ｌｕｘ）」と、「温度（℃）」と、「ＷＤ（Working  Distance）（ｍｍ）」とを含む。「照度（Ｌｕｘ）」と、測定値「８２０」とは、対応付けられている。「温度（℃）」と、測定値「３５」とは、対応付けられている。「ＷＤ（ｍｍ）」と、測定値「１５５．２」とは、対応付けられている。
【００９１】
＜有効度＞
図９は、２次元マップ上に表されたテンプレートおよび入力画像を示す図である。図９を参照して、テンプレートの有効度の算出方法について説明する。なお、以下では説明を簡単にするために、環境パラメータとして「照度」および「温度」の２つを用いて有効度について説明しているが、環境パラメータは、これら２つに限定されない。
【００９２】
図９に示されるように、照度と温度とが異なる条件で作成されたテンプレート９０１〜９０４が登録されているとする。算出部３３０は、入力画像９００に対するテンプレート９０１〜９０４の有効度を算出する。
【００９３】
より具体的には、算出部３３０は、入力画像９００の環境パラメータの値と、テンプレート９０１の環境パラメータの値との距離９１１を有効度として算出する。たとえば、算出部３３０は、入力画像９００とテンプレート９０１との照度の値の差を二乗した値を算出する。また、算出部３３０は、入力画像９００とテンプレート９０１との温度の値の差を二乗した値を算出する。算出部３３０は、これらの二乗した値を足し合わせた値（距離）をテンプレート９０１の有効度として算出する。この場合、決定部３４０は、入力画像９００とテンプレートとの距離が近いほどテンプレートとして有効なテンプレートとする。
【００９４】
同様に、算出部３３０は、入力画像９００の環境パラメータの値と、テンプレート９０２〜９０４の環境パラメータの値との距離９１２〜９１４を有効度として算出する。たとえば、テンプレートの有効度は、当該距離の逆数として定義されてもよい。決定部３４０は、有効度がより高い１つのテンプレートを決定する。典型的には、決定部３４０は、有効度が１番高いテンプレートを決定する。
【００９５】
他の局面において、算出部３３０は、環境パラメータの各項目の値を要素としたベクトルで表し、入力画像９００とテンプレート９０１〜９０４とにより形成されるそれぞれの角の余弦を有効度として算出する。この場合、決定部３４０は、余弦の値が０に近いテンプレートほど有効なテンプレートとする。
【００９６】
＜マッチング＞
以下、テンプレートマッチングの手法について説明する。マッチング部３６０は、決定部３４０により決定されたテンプレート、および入力画像を用いてテンプレートマッチングを行う。これにより、テンプレートおよび入力画像がどの程度類似しているかという指標を得ることができる。たとえば、マッチング部３６０は、テンプレートマッチングの手法として、ＳＡＤ、ＳＳＤ、ＰＯＣ、ＲＩＰＯＣ、ＳＩＦＴなどのいずれかを用いる。当該手法は、上述の手法に限定されない。
【００９７】
図１０および図１１を参照して、テンプレートマッチング手法の１つであるＰＯＣについてより詳細に説明する。図１０は、テンプレートマッチングの手法の１つであるＰＯＣの概要を表す図である。図１１は、ＰＯＣを用いてテンプレートマッチングを行った結果を表す図である。
【００９８】
図１０を参照して、作成部３１０は、登録画像１０１０をフーリエ変換することにより、振幅情報１０２０および位相情報１０３０を取得する。フーリエ変換は、ＤＦＴ（Discrete  Fourier  Transform）およびＦＦＴ（Fast  Fourier  Transform）のいずれであってもよい。作成部３１０は、位相情報１０３０をテンプレートとして、補助記憶装置２１０に格納する。
【００９９】
マッチング部３６０は、入力画像１０４０をフーリエ変換することにより、振幅情報１０５０および位相情報１０６０を取得する。フーリエ変換は、ＤＦＴおよびＦＦＴのいずれであってもよい。マッチング部３６０は、位相情報１０３０および位相情報１０６０から、合成画像１０７０を取得する。また、マッチング部３６０は、合成画像１０７０から相関画像１０８０を取得する。相関画像１０８０は、テンプレートおよび入力画像の類似度を示す。
【０１００】
図１１を参照して、入力画像１１００および入力画像１１２０に対して実際にＰＯＣを行った結果について説明する。作成部３１０は、登録画像１１１０に対してＤＦＴを行うことにより、振幅情報１１１２および位相情報１１１４を取得する。作成部３１０は、位相情報１１１４をテンプレートとして、補助記憶装置２１０に格納する。
【０１０１】
マッチング部３６０は、入力画像１０４０に対してＤＦＴを行うことにより、振幅情報１０５０および位相情報１０６０を取得する。マッチング部３６０は、位相情報１１０４および位相情報１１１４から、相関情報１１１６を取得する。相関情報１１１６は、ピーク１１１８を有する。なお、ＸＹ平面に対するピーク１１１８の位置は、入力画像１１００に対する登録画像１１１０の相対的な平均移動量を表している。また、Ｚ軸に対するピーク１１１８の値は、登録画像１１１０および入力画像１１００の類似度を表している。相関情報１１１６がピーク１１１８を有することから、登録画像１１１０および入力画像１１００は、類似していることが分かる。
【０１０２】
また、マッチング部３６０は、入力画像１１２０に対してＤＦＴを行うことにより、振幅情報１１２２および位相情報１１２４を取得する。マッチング部３６０は、位相情報１１１４および位相情報１１２４から、相関情報１１２６を取得する。相関情報１１２６は、ピークを有さない。このため、登録画像１１１０および入力画像１１２０は、類似していないことが分かる。
【０１０３】
＜テンプレートの更新＞
以下、テンプレートの更新について説明する。ある局面において、作成部３１０は、テンプレートマッチングを行った入力画像を新たなテンプレートとして、補助記憶装置２１０に格納する。この場合、作成部３１０は、入力画像に対応付けられた環境パラメータを、新たなテンプレートに対応付けられる環境パラメータとしてもよい。
【０１０４】
検出結果が良好であった入力画像は、テンプレートとして良質である可能性が高い。このため、検出結果が良好であった入力画像を新たなテンプレートとすることで、マッチング精度を向上させることができる。
【０１０５】
＜制御フロー＞
図１２は、画像処理装置１００が実行する処理の一部を表わすフローチャートである。図１２の処理は、ＣＰＵ２０１がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。
【０１０６】
図１２（Ａ）を参照して、テンプレート作成の制御フローについて説明する。ステップＳ１２０１において、ＣＰＵ２０は、カメラ８がワーク２を撮影した画像を登録画像として取得する。
【０１０７】
ステップＳ１２０３において、ＣＰＵ２０は、センサー４およびセンサー１０の少なくとも一方から、登録画像に対応する環境パラメータを取得する。
【０１０８】
ステップＳ１２０５において、ＣＰＵ２０は、作成部３１０として、登録画像と環境パラメータとを対応付けて、テンプレートとして登録する。
【０１０９】
図１２（Ｂ）を参照して、テンプレートマッチングの制御フローについて説明する。ステップＳ１２１０において、ＣＰＵ２０は、カメラ８がワーク２を撮影した画像を入力画像として取得する。
【０１１０】
ステップＳ１２２０において、ＣＰＵ２０は、センサー４およびセンサー１０の少なくとも一方から、入力画像に対応する環境パラメータを取得する。
【０１１１】
ステップＳ１２３０において、ＣＰＵ２０は、算出部３３０として、テンプレートマッチングに用いるテンプレートとしての有効度を算出する。
【０１１２】
ステップＳ１２４０において、ＣＰＵ２０は、決定部３４０として、ステップＳ１２３０で算出したテンプレートの有効度に基づいて、テンプレートマッチングに用いるテンプレートを決定する。
【０１１３】
ステップＳ１２６０において、ＣＰＵ２０は、マッチング部３６０として、テンプレートマッチングを行う。
【０１１４】
以上のようにして、本実施の形態の画像処理装置１００は、入力画像を取得した時の環境条件と近い環境条件で取得したテンプレートを用いてテンプレートマッチングを行うことにより、テンプレートマッチングの精度を安定させることができる。また、複数のテンプレートの中からテンプレートマッチングに用いるテンプレートを選択することで、画像処理装置１００の処理速度を向上することができる。
【０１１５】
［第２の実施の形態］
以下、第２の実施の形態に従う画像処理装置１００Ａについて説明する。本実施の形態に従う画像処理装置１００Ａは、テンプレート毎に条件範囲が対応付けられている点が第１の実施の形態に従う画像処理装置１００と異なる。その他の構成は、第１の実施の形態に従う画像処理装置１００と同じであるので、説明を繰り返さない。
【０１１６】
＜機能構成＞
図１３は、画像処理装置１００Ａの機能構成の一例を示すブロック図である。図１３を参照して、画像処理装置１００Ａの機能構成について説明する。本実施の形態に従う画像処理装置１００Ａは、テンプレート毎に条件範囲３２４が対応付けられている点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１１７】
本実施の形態に従う画像処理装置１００Ａにおいては、１つ以上のテンプレートの各々は、環境パラメータについての条件範囲が予め定められている。条件範囲は、テンプレートとしての有効な範囲を表す。
【０１１８】
テンプレートリスト３２０Ａは、テンプレート２１３と、登録環境パラメータ３２２と、条件範囲３２４とを含む。画像処理装置１００Ａの動作モードが登録モードである場合に、作成部３１０は、作成したテンプレート２１３と、取得した登録環境パラメータ３２２と、後述する条件範囲３２４とを対応付けて、テンプレートリスト３２０Ａとして、補助記憶装置２１０に格納する。
【０１１９】
画像処理装置１００Ａの動作モードが検査モードである場合に、決定部３４０は、入力環境パラメータが条件範囲３２４内にあるテンプレート２１３をテンプレートマッチングに用いるテンプレートとして決定する。
【０１２０】
＜データ構造＞
図１４は、補助記憶装置２１０に格納されているテンプレートリスト３２０Ａのデータ構造の一例を表す図である。図１４を参照して、テンプレートリスト３２０Ａのデータ構造について説明する。
【０１２１】
補助記憶装置２１０は、テンプレートリスト３２０Ａを格納する。テンプレート８００は、環境パラメータ８１０と、測定値８２０と、条件範囲とが対応付けられる。典型的には、条件範囲は、上限値１４３０と、下限値１４４０として定義される。条件範囲３２４の決め方の詳細は、図１５において説明する。
【０１２２】
たとえば、図１４に示されるようにテンプレート８００に対応付けられている環境パラメータは、「照度（Ｌｕｘ）」と、「温度（℃）」と、「ＷＤ（Working  Distance）（ｍｍ）」とを含む。「照度（Ｌｕｘ）」と、測定値「８２０」と、下限値「６５０」とは、対応付けられている。「温度（℃）」と、測定値「３５」と、上限値「４０」と、下限値「２２」とは、対応付けられている。「ＷＤ（ｍｍ）」と、測定値「１５５．２」と、上限値「１５５．３」と、下限値「１５４．８」とは、対応付けられている。
【０１２３】
決定部３４０は、入力環境パラメータが条件範囲３２４内にあるテンプレート２１３をテンプレートマッチングに用いるテンプレートとして決定する。たとえば、決定部３４０は、ワーク２の撮影時の照度が７００Ｌｕｘである場合、テンプレート８００をテンプレートマッチングに用いるテンプレートとして決定する。また、決定部３４０は、ワーク２の撮影時の照度が５００Ｌｕｘである場合、テンプレート８００をテンプレートマッチングに用いるテンプレートとして決定しない。
【０１２４】
＜条件範囲＞
図１５は、テンプレートの有効な範囲を示す条件範囲を表す図である。図１５を参照して、条件範囲の決め方について説明する。図１５においては、環境パラメータとしての、照度と温度とが２次元マップで表されている。なお、以下では説明を簡単にするために、環境パラメータとして「照度」および「温度」の２つを用いて条件範囲について説明しているが、条件範囲は、これら２つに限定されない。
【０１２５】
図１５で示されるように、テンプレート１５１０が登録されているとする。作成部３１０は、画像処理装置１００Ａの動作モードが登録モードである場合、テンプレート１５１０の安定的な検出結果が得られる範囲（条件範囲）を決定する。作業者は、環境パラメータの値を変動させてワークを撮影する。作成部３１０は、それにより得られた画像およびテンプレート１５１０を用いてテンプレートマッチングを行い、テンプレートマッチングに成功したか否かに基づいてテンプレート１５１０の条件範囲を設定する。
【０１２６】
たとえば、作業者は、照度と温度とを変動させてワークの撮影を行う。より具体的には、作業者は、照度を照度Ｌ１〜Ｌ５の５段階で、温度を温度Ｔ１〜Ｔ３の３段階で変動させてワークの撮影を行う。これにより、１５枚（＝５×３段階）の入力画像が作成される。画像処理装置１００Ａは、テンプレート１５１０と、１５枚の入力画像とを用いてテンプレートマッチングを行う。作成部３１０は、テンプレートマッチングの結果からテンプレート１５１０の条件範囲を設定する。
【０１２７】
たとえば、点１５２１〜１５２４の環境条件で作成した４枚の入力画像において、テンプレートマッチングが成功したとする。また、点１５２５を含むその他の条件で作成した１１枚の入力画像において、テンプレートマッチングが失敗したとする。この場合、作成部３１０は、テンプレート１５１０の条件範囲として、点１５２１〜１５２４を含む条件範囲１５３０を設定する。
【０１２８】
決定部３４０は、画像処理装置１００Ａの動作モードが検査モードに切り替えられた場合、検査画像に対するテンプレート１５１０をテンプレートマッチングに用いるか否かを条件範囲１５３０に基づいて決定する。
【０１２９】
より具体的には、決定部３４０は、検査画像に対応付いている環境パラメータが条件範囲１５３０に含まれる場合に、テンプレート１５１０を有効なテンプレートとして決定する。また、決定部３４０は、検査画像に対応付いている環境パラメータが条件範囲１５３０に含まれない場合に、テンプレート１５１０を無効なテンプレートとして決定する。
【０１３０】
なお、条件範囲は、条件範囲１５３０のように楕円形に限定されない。たとえば、条件範囲は、長方形領域、分割ブロックを組み合わせた領域、多角形領域、および自由曲線で囲まれた領域のいずれであってもよい。また、条件範囲は、２次元ガウス分布形状とするなど、実際の環境パラメータの項目の分布モデルに則した領域形状にするのが望ましい。
【０１３１】
他の局面において、作成部３１０は、環境パラメータの値を変動して得た複数の画像とテンプレート１５１０とのテンプレートマッチングの結果の値のばらづきなどが、予め定められた値よりも低くなるようにテンプレート１５１０の条件範囲を設定する。
【０１３２】
さらに他の局面において、テンプレート１５１０の条件範囲は、ユーザーにより設定可能に構成されてもよい。たとえば、テンプレート１５１０の条件範囲は、ユーザーが環境パラメータの値の範囲を指定することにより設定される。
【０１３３】
＜テンプレートの決定＞
図１６〜１８は、２次元マップ上に表されたテンプレートおよび入力画像を示す図である。図１６〜１８を参照して、複数のテンプレートからマッチングに用いるテンプレートの決定方法について説明する。
【０１３４】
図１６を参照して、画像処理装置１００には、照度と温度とが異なる条件で作成されたテンプレート１６０１〜１６０４が登録されている。また、テンプレート１６０１〜１６０４には、条件範囲１６２１〜１６２４がそれぞれ設定されている。決定部３４０は、テンプレート１６０１〜１６０４のうち、入力画像１６００に対応付けられた環境パラメータが条件範囲１６２１〜１６２４内にあるテンプレートを、テンプレートマッチングに用いるテンプレートとして決定する。
【０１３５】
より具体的には、入力画像１６００に対応付けられた環境パラメータは、条件範囲１６２１に含まれる。このため、決定部３４０は、テンプレート１６０１を、テンプレートマッチングに用いるテンプレートとして決定する。入力画像１６００に対応付けられた環境パラメータは、条件範囲１６２２〜１６２４に含まれない。このため、決定部３４０は、テンプレート１６０２〜１６０４を、テンプレートマッチングに用いるテンプレートとして決定しない。
【０１３６】
図１７を参照して、入力画像１７００に対応付けられた環境パラメータが複数の条件範囲に含まれる場合のテンプレート決定方法について説明する。
【０１３７】
入力画像１７００に対応付けられた環境パラメータは、条件範囲１６２１および条件範囲１６２４に含まれる。このため、決定部３４０は、テンプレート１６０１およびテンプレート１６０４をテンプレート候補として決定する。ある局面において、決定部３４０は、より優先度の高い１つのテンプレートを決定する。図１７においては、入力画像１７００とテンプレート１６０４との距離が、入力画像１７００とテンプレート１６０１との距離よりも近いため、決定部３４０は、テンプレート１６０４をテンプレートマッチングに用いるテンプレートとして決定する。
【０１３８】
他の局面において、決定部３４０は、テンプレート候補の中から条件範囲の面積が大きいテンプレートを優先的に決定してもよい。条件範囲の面積が大きいテンプレートは、テンプレートとしての質が良い可能性が高いためである。図１７においては、決定部３４０は、テンプレート１６０１をテンプレートマッチングに用いるテンプレートとして決定する。
【０１３９】
さらに他の局面において、決定部３４０は、テンプレート候補の中から条件範囲の外円との距離が遠いテンプレートを優先的に決定してもよい。条件範囲の外円との距離が遠いテンプレートは、テンプレートとしての質が良い可能性が高いためである。図１７においては、決定部３４０は、テンプレート１６０４をテンプレートマッチングに用いるテンプレートとして決定する。
【０１４０】
図１８を参照して、入力画像１８００の環境パラメータがいずれの条件範囲にも含まれない場合について説明する。
【０１４１】
図１８に示されるように、入力画像１８００の環境パラメータは、条件範囲１６２１〜１６２４のいずれにも含まれない。この場合に、決定部３４０は、テンプレートマッチングに用いる最適なテンプレートが存在しないものとして警告を報知する。
【０１４２】
たとえば、決定部３４０は、スピーカー（図示しない）に警告音または音声を出力させることにより警告を報知する。また、決定部３４０は、表示装置１６に警告メッセージを表示させることにより警告を報知してもよい。さらに、決定部３４０は、ランプ（図示しない）を光らせることにより警告を報知してもよい。これにより、ユーザーは、有効なテンプレートが存在しないことを視覚的にまたは聴覚的に確認することができる。
【０１４３】
他の局面において、決定部３４０が１つもテンプレートを決定しない場合、ユーザーによりテンプレートマッチングに用いるテンプレートを選択できるように構成されてもよい。たとえば、決定部３４０は、テンプレート１６０１〜１６０４のいずれかを選択できるように表示装置１６にテンプレート選択画面を表示させてもよい。
【０１４４】
（変形例）
ある局面において、決定部３４０は、テンプレートに対応付けられている作業者の情報に基づいて、テンプレートマッチングに用いるテンプレートを決定してもよい。たとえば、テンプレート登録時に、作業者ＩＤや、作業者毎のピント値がテンプレートに対応付けられる。決定部３４０は、検査時に、検査を行っている作業者ＩＤと、テンプレートに対応付けられている作業者ＩＤとを比較し、同一の作業者ＩＤを有するテンプレートを優先的に決定する。
【０１４５】
これにより、ワークの位置合わせやピント合わせ等のワークの置き方や、ピントの合わせ方などの個人のくせを吸収することができる。このため、テンプレートマッチングの精度を向上することができる。また、テンプレートマッチングの安定性を維持することができる。
【０１４６】
以上のようにして、本実施の形態の画像処理装置１００Ａは、テンプレートとしての有効範囲を表す条件範囲をテンプレートと対応付けて格納する。これにより、より信頼の高いテンプレートを用いてテンプレートマッチングを行うことにより、テンプレートマッチングの精度を安定させることができる。
【０１４７】
［第３の実施の形態］
以下、第３の実施の形態に従う画像処理装置１００Ｂについて説明する。本実施の形態に従う画像処理装置１００Ｂは、決定部３４０がテンプレートマッチングに用いるテンプレートとして複数のテンプレートを決定した場合に複数のテンプレートを合成する点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１４８】
＜ハードウェア構成＞
図１９は、画像処理装置１００Ｂのハードウェア構成の一例を示すブロック図である。図１９を参照して、画像処理装置１００Ｂのハードウェア構成について説明する。本実施の形態に従う画像処理装置１００Ｂは、合成部３５０を含む点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１４９】
合成部３５０は、決定部３４０がテンプレートマッチングに用いるテンプレートとして複数のテンプレートを決定した場合に、複数のテンプレートを合成する。典型的には、決定部３４０が複数のテンプレートを決定した場合、合成部３５０は、複数のテンプレートと対応するそれぞれの有効度に基づいて合成テンプレートを生成する。
【０１５０】
マッチング部３６０は、合成部３５０により生成された合成テンプレート、およびカメラ８により取得された入力画像を用いてテンプレートマッチングを行う。
【０１５１】
＜合成テンプレート＞
図２０は、合成テンプレートの生成方法を示す図である。図２０を参照して、合成テンプレートの生成方法について説明する。
【０１５２】
決定部３４０が複数のテンプレートを決定した場合、合成部３５０は複数のテンプレートを合成して１つの合成テンプレート２０５０を生成する。たとえば、決定部３４０は、複数のテンプレートの中から、テンプレート２０１０〜２０４０の４つのテンプレートを決定したとする。合成部３５０は、テンプレート２０１０〜２０４０のそれぞれの有効度に基づいて、テンプレート２０１０〜２０４０を合成する。
【０１５３】
より具体的には、合成部３５０は、テンプレート２０１０〜２０４０のそれぞれの有効度に応じて、テンプレート２０１０〜１０４０の濃度値に重み付けをして足し合わせることで合成テンプレート２０５０を生成する。図２０においては、テンプレート２０１０の有効度は３０である。テンプレート２０２０の有効度は２５である。テンプレート２０３０の有効度は２３である。テンプレート２０４０の有効度は２２である。
【０１５４】
この場合、合成部３５０は、テンプレート２０１０の３０％（＝３０／（３０＋２５＋２３＋２２））の濃度を抽出する。また、合成部３５０は、テンプレート２０２０の２５％（＝２５／（３０＋２５＋２３＋２２））の濃度を抽出する。さらに、合成部３５０は、テンプレート２０３０の２３％（＝２３／（３０＋２５＋２３＋２２））の濃度を抽出する。さらに、合成部３５０は、テンプレート２０４０の２２％（＝２２／（３０＋２５＋２３＋２２））の濃度を抽出する。合成部３５０は、抽出した濃度を足し合わせることで、合成テンプレート２０５０を生成する。
【０１５５】
＜テンプレートの更新＞
図２１は、補助記憶装置２１０に格納されているテンプレートリスト２１００のデータ構造の一例を表す図である。図２１を参照して、テンプレートの更新方法について説明する。
【０１５６】
ある局面において、作成部３１０は、合成部３５０が生成した合成テンプレートを新たなテンプレートリスト２１００として、補助記憶装置２１０に格納する。テンプレートリスト２１００は、テンプレート２１１０と、照度２１２０と、合成フラグ２１３０と、元テンプレート２１４０とを含む。
【０１５７】
第１テンプレートと、照度「−０．９４５」と、合成フラグ「０」とは、対応付けられている。合成フラグ「０」は、合成テンプレートでないことを示す。また、合成フラグ「１」は、合成部３５０により生成された合成テンプレートであることを示す。第２テンプレートと、照度「１．０４７１５９」と、合成フラグ「０」とは、対応付けられている。第３テンプレートと、照度「−０．１０２１６」と、合成フラグ「１」と、元テンプレート「第１テンプレート、第２テンプレート」とは、対応付けられる。元テンプレートは、合成テンプレートを生成する元となったテンプレートを示す。つまり、第３テンプレートは、第１テンプレートおよび第２テンプレートから生成されたことを示す。
【０１５８】
合成部３５０が第１テンプレートおよび第２テンプレートを合成することにより第３テンプレートを生成した場合、作成部３１０は、第３テンプレートを新たなテンプレートとしてテンプレート１１００に追加する。また、作成部３１０は、第１テンプレートと、第２テンプレートとを「元テンプレート」に追加する。
【０１５９】
この場合、作成部３１０は、元テンプレートに対応付けられた環境パラメータの平均を、合成テンプレートに対応付けられる環境パラメータとしてもよい。他の局面において、作成部３１０は、元テンプレートに対応付けられた環境パラメータの有効度を重みとして算出した重み付き平均を、合成テンプレートに対応付けられる環境パラメータとしてもよい。
【０１６０】
検出結果が良好であった合成テンプレートは、テンプレートとして良質である可能性が高い。このため、検出結果が良好であった合成テンプレートを新たなテンプレートとすることで、マッチング精度を向上させることができる。
【０１６１】
＜制御フロー＞
図２２は、画像処理装置１００Ｂが実行する処理の一部を表わすフローチャートである。図２２の処理は、ＣＰＵ２０１がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。
【０１６２】
本実施の形態における画像処理装置の処理フローは、図１２に示される処理フローと比べて、ステップＳ２２１０を有する点が異なる。その他のステップは、図１２に示される処理ステップと同様である。したがって、同様のステップについては説明を繰り返さない。
【０１６３】
図２２を参照して、ステップＳ１２５０において、決定部３４０がテンプレートを複数決定した場合に、ＣＰＵ２０は、合成部３５０として、決定された複数のテンプレートを合成して、合成テンプレートを生成する。
【０１６４】
ステップＳ１２６０において、ＣＰＵ２０は、マッチング部３６０として、合成テンプレートと入力画像とを用いてテンプレートマッチングを行う。
【０１６５】
以上のようにして、本実施の形態の画像処理装置１００Ｂは、複数の有効なテンプレートを合成した合成テンプレートおよび入力画像を用いてテンプレートマッチングを行うことにより、テンプレートマッチングの精度を安定させることができる。また、複数テンプレートを合成した１つの合成テンプレートを用いてテンプレートマッチングを行うことにより、処理速度を向上することができる。
【０１６６】
［第４の実施の形態］
以下、第４の実施の形態に従う画像処理装置について説明する。本実施の形態に従う画像処理装置は、テンプレート毎にマッチング手法が対応付けられている点が第１の実施の形態に従う画像処理装置１００と異なる。その他の構成は同様であるので、説明を繰り返さない。
【０１６７】
図２３は、補助記憶装置２１０に格納されている、テンプレートリスト２３００を表す図である。本実施の形態に従う画像処理装置は、テンプレート２３１０にマッチング手法２３３０が対応付けられている点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１６８】
＜データ構造＞
図２３を参照して、補助記憶装置２１０は、テンプレートリスト２３００を格納する。テンプレートリスト２３００は、テンプレート２３１０と、照度２３２０と、マッチング手法２３３０とを含む。第１テンプレートと、照度「−０．９４５」と、マッチング手法「ＳＡＤ」とは、対応付けられている。第２テンプレートと、照度「１．０４７１５９」と、マッチング手法「ＳＡＤ」とは、対応付けられている。第３テンプレートと、照度「−０．１０２１６」と、マッチング手法「ＰＯＣ」とは、対応付けられている。
【０１６９】
マッチング部３６０は、決定部３４０により決定されたテンプレートに対応付けられているマッチング手法を用いてテンプレートマッチングを行う。たとえば、決定部３４０が第２のテンプレートをテンプレートマッチングに用いるテンプレートとして決定した場合に、マッチング部３６０は、マッチング手法「ＳＡＤ」によりテンプレートマッチングを行う。
【０１７０】
＜制御フロー＞
図２４は、本実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。図２４の処理は、ＣＰＵ２０１がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。本実施の形態における画像処理装置の処理フローは、図１２に示される処理フローと比べて、ステップＳ２４１０を有する点が異なる。その他のステップは、図１２に示される処理ステップと同様である。したがって、同様のステップについては説明を繰り返さない。
【０１７１】
図２４を参照して、ステップＳ２４１０において、ＣＰＵ２０は、テンプレートに対応付けられたマッチング手法をテンプレートリスト２３００から取得する。ステップＳ１２６０において、ＣＰＵ２０は、マッチング部３６０として、ステップＳ２４１０により取得したマッチング手法を用いて、テンプレートマッチングを行う。
【０１７２】
以上のようにして、本実施の形態の画像処理装置は、テンプレートとマッチング手法とを対応付けることにより、選択されるテンプレート毎にテンプレートマッチングの手法を切り替えることができる。これにより、テンプレート毎に相性のいいテンプレートマッチングを行うことができる。このため、テンプレートマッチングの精度を向上することができる。また、処理コストが高いマッチング手法を選択しないようにすることで、処理速度を向上することができる。
【０１７３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７４】
１  画像処理システム、２  ワーク、４  センサー、８  カメラ、１０  センサー、１２  製造装置、１４  搬送機構、１６  表示装置、１８  マウス、１００  画像処理装置、２００  バス、２０１  ＣＰＵ、２０２  ＲＡＭ、２０３  ＲＯＭ、２０４  ネットワークＩ／Ｆ、２０５  カメラＩ／Ｆ、２０６  センサーＩ／Ｆ、２０７  メモリカードＩ／Ｆ、２１０  補助記憶装置、２１１  画像処理プログラム、２１２  入力画像、２１３  テンプレート、２４０  入力装置、３００  スイッチ、３１０  作成部、３２０，３２０Ａ  テンプレートリスト、３２２  登録環境パラメータ、３２４  条件範囲、３３０  算出部、３４０  決定部、３５０  合成部、３６０  マッチング部、４１０，４２０  ワーク、５１０，５２０  ワーク、５１１，５２１  凹凸、６１０，６２０  ピント、７１０Ａ，７１０Ｂ  照明、７２０Ａ，７２０Ｂ  画像、７３０Ａ，７３０Ｂ  影、８１０  環境パラメータ、８２０  測定値、９００  入力画像、９０１〜９０４  テンプレート、９１１〜９１４  距離、１０１０，１１１０  登録画像、１０２０，１０５０，１１１２，１１２２  振幅情報、１０３０，１０６０，１１０４，１１１４，１１２４  位相情報、１０７０  合成画像、１０８０  相関画像、１１１６，１１２６  相関情報、１４３０  上限値、１４４０  下限値、１５１０  テンプレート、１５２１〜１５２５  点、１５３０  条件範囲、１６００，１７００，１８００  入力画像、１６０１〜１６０４  テンプレート、１６２１〜１６２４  条件範囲、２０１０〜２０４０  テンプレート、２０５０  合成テンプレート、２１００  テンプレートリスト、２１１０  テンプレート、２１２０  照度、２１３０  合成フラグ、２１４０  元テンプレート、２３００  テンプレートリスト、２３１０  テンプレート、２３２０  照度、２３３０  マッチング手法。
【図１】
2014203390.tif 000003
【図２】
2014203390.tif 000004
【図３】
2014203390.tif 000005
【図６】
2014203390.tif 000006
【図７】
2014203390.tif 000007
【図９】
2014203390.tif 000008
【図１０】
2014203390.tif 000009
【図１２】
2014203390.tif 000010
【図１３】
2014203390.tif 000011
【図１５】
2014203390.tif 000012
【図１６】
2014203390.tif 000013
【図１７】
2014203390.tif 000014
【図１８】
2014203390.tif 000015
【図１９】
2014203390.tif 000016
【図２１】
2014203390.tif 000017
【図２２】
2014203390.tif 000018
【図２３】
2014203390.tif 000019
【図２４】
2014203390.tif 000020
【図４】
2014203390.tif 000021
【図５】
2014203390.tif 000022
【図８】
2014203390.tif 000023
【図１１】
2014203390.tif 000024
【図１４】
2014203390.tif 000025
【図２０】
2014203390.tif 000026