(57)【要約】  テンプレートマッチングの演算量が少なくなる画像サイズに基づいてテンプレートマッチングを行うことにより、テンプレートマッチング処理を高速化する画像処理方法、画像処理理装置、および画像処理プログラムを提供する。当該画像処理方法は、基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けること（５２０）と、受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたマッチング処理の演算量が相対的に少なくなる画像サイズを決定すること（５４０）と、決定された画像サイズの領域の情報に基づいてテンプレートを登録画像から生成すること（５５０）とを含む。
2014203687.tif 000002
【特許請求の範囲】
【請求項１】
テンプレートを用いてマッチング処理を行う画像処理方法であって、
基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けることと、
前記受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられた前記マッチング処理の演算量が相対的に少なくなる画像サイズを決定することと、
前記決定された画像サイズの領域の情報に基づいて前記テンプレートを前記登録画像から生成することとを備える、画像処理方法。
【請求項２】
前記決定することは、前記受付けた前記領域のサイズを基準とする予め定められた範囲の画像サイズの中から、前記マッチング処理の演算量が最小となる画像サイズを決定することを含む、請求項１に記載の画像処理方法。
【請求項３】
前記決定することは、前記受付けた前記領域のサイズの縦幅よりも小さい縦幅の画像サイズを決定することを含む、請求項１または２に記載の画像処理方法。
【請求項４】
前記決定することは、前記受付けた前記領域のサイズの横幅よりも小さい横幅の画像サイズを決定することを含む、請求項１〜３のいずれか１項に記載の画像処理方法。
【請求項５】
前記決定された画像サイズの前記領域の中心は、前記受付けた前記領域の中心に一致する、前記請求項１〜４のいずれか１項に記載の画像処理方法。
【請求項６】
前記生成することは、前記決定された画像サイズ同様のサイズの外枠と、前記外枠の内側にある内枠とに挟まれる前記登録画像上の領域の変動度合いが相対的に小さくなるように、前記登録画像から前記テンプレートを生成することを含む、請求項１〜４のいずれか１項に記載の画像処理方法。
【請求項７】
前記決定することは、画像サイズに対応する前記演算量が未知の場合に、当該画像サイズを基準とする予め定められた範囲の画像サイズにそれぞれ対応付けられた既知の演算量に基づいて当該画像サイズに対応する演算量を推定することを含む、請求項１〜６のいずれか１項に記載の画像処理方法。
【請求項８】
前記演算量は、前記マッチング処理の全部または一部の実測された演算時間である、請求項１〜７のいずれか１項に記載の画像処理方法。
【請求項９】
前記演算量は、画像サイズと、前記マッチング処理の計算量とに基づいて定められる、請求項１〜７のいずれか１項に記載の画像処理方法。
【請求項１０】
前記マッチング処理は、検査対象物を撮像することで得られた入力画像から前記検査対象物の位置を検出する処理を含み、
前記演算量は、前記位置を検出するのにかかる時間に基づいて定められる、請求項１〜７のいずれか１項に記載の画像処理方法。
【請求項１１】
前記演算量は、前記マッチング処理におけるフーリエ変換にかかる時間に基づいて定められる、請求項１〜７のいずれか１項に記載の画像処理方法。
【請求項１２】
画像サイズに予め対応付けられた前記演算量を更新することをさらに備える、請求項１〜１１のいずれか１項に記載の画像処理方法。
【請求項１３】
テンプレートを用いてマッチング処理を行う画像処理装置であって、
基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けるための受付部と、
前記受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられた前記マッチング処理の演算量が相対的に少なくなる画像サイズを決定するための決定部と、
前記決定された画像サイズの領域の情報に基づいて前記テンプレートを前記登録画像から生成するための生成部とを備える、画像処理装置。
【請求項１４】
前記画像処理装置は、前記画像サイズと、前記マッチング処理の演算量との関係を規定するテーブルを格納するための記憶部をさらに備え、
前記決定部は、前記テーブルを参照して、前記マッチング処理の演算量が相対的に少なくなる画像サイズを決定するように構成されている、請求項１３に記載の画像処理装置。
【請求項１５】
テンプレートを用いてマッチング処理をコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記コンピュータに、基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けることと、
前記受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられた前記マッチング処理の演算量が相対的に少なくなる画像サイズを決定することと、
前記決定された画像サイズの領域の情報に基づいて前記テンプレートを前記登録画像から生成することとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、テンプレートを用いてマッチング処理を行う画像処理方法、画像処理装置、および画像処理プログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークなどの検査対象物の欠陥等を光学的に検査することで、工場などにおける生産工程を自動化する技術が開発されている。光学的に検査を行う技術の１つとして、テンプレートマッチングという技術がある。【０００３】
テンプレートマッチングは、予め登録されたテンプレートと一致する領域を入力画像から探索するための技術である。ＦＡ分野においては、基準となるワークを撮影して取得した画像がテンプレートとして用いられる。ＦＡ分野における画像処理装置は、当該テンプレートと、ワークなどの検査対象物を撮影して得られる入力画像とを用いてテンプレートマッチングを行う。これにより、ワークの欠陥等を自動的に検査することができる。【０００４】
近年、テンプレートマッチングの精度を保ちつつ処理速度を向上するための技術が開発されている。たとえば、特開２０００−３４４４号公報（特許文献１）は、「演算量が少ない相関係数の算出方法を考案することにより、パターンの空間周波数による制限を受けず、かつ、高速度の処理が求められる用途にも適用」するために、「観測画像および参照画像に対して所定幅の一定値（具体的には０）の領域を付加して、画像の縦、横のサイズを２の階乗画素とする前処理を施すことにより、観測画像及び参照画像のフーリエ変換結果の積（クロスパワースペクトル）を逆フーリエ変換する」技術を開示している（［要約］）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、高速フーリエ変換（ＦＦＴ：Fast  Fourier  Transform）等のフーリエ変換は、縦横サイズが２の階乗である画像を用いると高速に処理できることが知られている。特許文献１が開示している技術は、テンプレートマッチングの処理速度を向上するために、テンプレートマッチングに用いる観測画像および参照画像に所定幅を付加（パディング）して、画像の縦横サイズを２の階乗にする。しかしながら、このように画像の縦横サイズを２の階乗にパディングすることで演算時間が逆に増加することがある。【０００７】
したがって、マッチング処理の演算量が相対的に少なくなる画像サイズに基づいてマッチング処理を行う技術が必要とされている。【０００８】
この開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、テンプレートマッチングの演算量が少なくなる画像サイズに基づいてテンプレートマッチングを行うことにより、テンプレートマッチング処理を高速化する方法、装置、およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
一実施の形態に従うと、テンプレートを用いてマッチング処理を行う画像処理方法が提供される。当該画像処理方法は、基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けることと、受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたマッチング処理の演算量が相対的に少なくなる画像サイズを決定することと、決定された画像サイズの領域の情報に基づいてテンプレートを登録画像から生成することとを含む。【００１０】
好ましくは、決定することは、受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、マッチング処理の演算量が最小となる画像サイズを決定することを含む。【００１１】
好ましくは、決定することは、受付けた領域のサイズの縦幅よりも小さい縦幅の画像サイズを決定することを含む。【００１２】
好ましくは、決定することは、受付けた領域のサイズの横幅よりも小さい横幅の画像サイズを決定することを含む。【００１３】
好ましくは、決定された画像サイズの領域の中心は、受付けた領域の中心に一致する。
好ましくは、生成することは、決定された画像サイズ同様のサイズの外枠と、外枠の内側にある内枠とに挟まれる登録画像上の領域の変動度合いが相対的に小さくなるように、登録画像からテンプレートを生成することを含む。【００１４】
好ましくは、決定することは、画像サイズに対応する演算量が未知の場合に、当該画像サイズを基準とする予め定められた範囲の画像サイズにそれぞれ対応付けられた既知の演算量に基づいて当該画像サイズに対応する演算量を推定することを含む。【００１５】
好ましくは、演算量は、マッチング処理の全部または一部の実測された演算時間である。【００１６】
好ましくは、演算量は、画像サイズと、マッチング処理の計算量とに基づいて定められる。【００１７】
好ましくは、マッチング処理は、検査対象物を撮像することで得られた入力画像から検査対象物の位置を検出する処理を含む。演算量は、位置を検出するのにかかる時間に基づいて定められる。【００１８】
好ましくは、演算量は、マッチング処理におけるフーリエ変換にかかる時間に基づいて定め得られる。【００１９】
好ましくは、当該画像処理方法は、画像サイズに予め対応付けられた演算量を更新することをさらに含む。【００２０】
他の実施の形態に従うと、テンプレートを用いてマッチング処理を行う画像処理装置が提供される。当該画像処理装置は、基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けるための受付部と、受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたマッチング処理の演算量が相対的に少なくなる画像サイズを決定するための決定部と、決定された画像サイズの領域の情報に基づいてテンプレートを登録画像から生成するための生成部とを含む。【００２１】
好ましくは、画像処理装置は、画像サイズと、マッチング処理の演算量との関係を規定するテーブルを格納するための記憶部をさらに備える。決定部は、テーブルを参照して、マッチング処理の演算量が相対的に少なくなる画像サイズを決定するように構成されている。【００２２】
さらに他の実施の形態に従うと、テンプレートを用いてマッチング処理をコンピュータに実行させるためのプログラムが提供される。当該プログラムは、コンピュータに、基準となる目的の対象物を撮像することで得られた登録画像に対する領域の設定を受付けることと、受付けた領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたマッチング処理の演算量が相対的に少なくなる画像サイズを決定することと、決定された画像サイズの領域の情報に基づいてテンプレートを登録画像から生成することとを実行させる。【００２３】
ある局面において、マッチング処理の演算量が相対的に少なくなる画像サイズに基づいてマッチング処理を行うことにより、テンプレートマッチングの処理を高速化することができる。【００２４】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２５】
【図１】画像処理システムの全体構成を示す概略図である。
【図２】画像処理装置の機能構成の一例を示すブロック図である。
【図３】画像サイズとテンプレートマッチングの演算量との関係を示す図である。
【図４】画像処理装置のハードウェア構成の一例を示すブロック図である。
【図５】第１の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図６】登録画像上の設定領域を表す図である。
【図７】テーブルのデータ構造を示す図である。
【図８】位置姿勢検出部の機能構成の一例を示すブロック図である。
【図９】画像処理装置が実行する処理の一部を表わすフローチャートである。
【図１０】設定領域を表す図である。
【図１１】第２の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図１２】境界領域の変動度合いを算出するために登録画像内を走査している様子を表す図である。
【図１３】第３の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【図１４】第４の実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。
【図１５】第５の実施の形態に従う画像処理装置の機能構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照しつつ、本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２７】
＜全体装置構成＞
図１は、本実施の形態に従う画像処理装置１００を含む画像処理システム１の全体構成を示す概略図である。図１を参照して、画像処理システム１は、たとえば、検査対象物（以下、「ワーク」ともいう。）の欠陥や汚れの有無を光学的に検査する。より具体的には、画像処理システム１は、生産ラインなどに組み込まれ、予め登録されたテンプレートを用いて、ワーク２を撮影して取得した画像とテンプレートマッチングを行う。
【００２８】
画像処理システム１は、カメラ８と、製造装置１２と、搬送機構１４と、表示装置１６と、マウス１８と、画像処理装置１００とを含む。
【００２９】
製造装置１２は、ワーク２を製造するための装置である。たとえば、ワーク２は、回路基板などの機械部品である。ワーク２は、製造装置１２により製造されるとベルトコンベアなどの搬送機構１４によって搬送される。搬送されたワーク２は、カメラ８により所定のタイミングで撮影される。カメラ８により得られた画像は、画像処理装置１００へ伝送される。
【００３０】
画像処理装置１００は、テンプレートの登録処理を行うための登録モードと、ワーク２に対して検査を実行する検査モードとを有する。ユーザーは、マウス１８などの入力装置により、検査モードおよび登録モードを交互に切り替えることができる。
【００３１】
登録モードにおいて、画像処理装置１００は、基準となる目的のワーク２を撮影することで得られた画像（以下、「登録画像」ともいう。）からテンプレート画像を作成する。検査モードにおいて、画像処理装置１００は、ワーク２などの検査対象物を撮像することで得られた画像（以下、「入力画像」ともいう。）とテンプレート画像とを用いてテンプレートマッチングを行う。これにより、画像処理システム１は、ワーク２の欠陥等を自動的に検査する。
【００３２】
＜機能構成＞
図２は、画像処理装置１００の機能構成の一例を示すブロック図である。図２を参照して、画像処理装置１００の機能構成の概要を説明する。
【００３３】
画像処理装置１００は、演算量情報２３０と、領域設定部５２０と、決定部５４０と、テンプレート画像生成部５５０とを含む。
【００３４】
領域設定部５２０は、登録画像に対する領域の設定を受付ける。たとえば、ユーザーは、表示装置１６に表示された登録画像に対して、マウス１８等の入力装置を用いて領域の設定を行う。領域設定部５２０は、ユーザーが登録画像に対して設定した領域（以下、「設定領域」ともいう。）を、決定部５４０に出力する。設定領域の詳細については後述する。
【００３５】
決定部５４０は、設定領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたテンプレートマッチング処理の演算量が相対的に少なくなる画像サイズ（以下、「決定サイズ」ともいう。）を決定する。たとえば、画像サイズに予め対応付けられたテンプレートマッチング処理の演算量は、演算量情報２３０において規定される。決定部５４０は、設定領域と演算量情報２３０とから画像サイズを決定し、当該画像サイズをテンプレート画像生成部５５０に出力する。
【００３６】
典型的には、演算量情報２３０は、画像サイズとテンプレートマッチングとの演算量の関係を表すテーブルとして定義される。テーブルの詳細については後述する。また、演算量情報２３０は、画像サイズとテンプレートマッチングとの演算量の関係を表す近似式として定義されてもよい。近似式の詳細については後述する。
【００３７】
テンプレート画像生成部５５０は、決定部５４０が決定した画像サイズの領域の情報に基づいて登録画像４１３からテンプレート画像を生成する。典型的には、テンプレート画像生成部５５０は、決定部５４０が決定した画像サイズで登録画像４１３からテンプレート画像を切り出す。画像処理装置１００は、当該テンプレート画像と、入力画像とを用いてテンプレートマッチングを行う。
【００３８】
図３は、画像サイズとテンプレートマッチングの演算量との関係を示す図である。図３を参照して、画像処理装置１００における処理の概要について説明する。
【００３９】
演算量情報２３０の縦軸（演算量）は、テンプレートマッチング処理の全部または一部の演算量を表す。たとえば、演算量は、テンプレートマッチング処理の全部または一部の実測された演算時間として表される。
【００４０】
演算量情報２３０の横軸（画像サイズ）は、テンプレートマッチング処理に用いられる画像の縦横のサイズを表す。図３で示されるように、テンプレートマッチングの演算量は、画像の縦横のサイズに比例して増加しない。
【００４１】
たとえば、点１０１におけるテンプレートマッチングの演算量は約４．２である。点１０１よりも画像サイズが大きい点１０２におけるテンプレートマッチングの演算量は約２．１である。このように、テンプレートマッチングに用いる画像サイズが大きくなっているにも関わらず演算量が減少することがある。
【００４２】
また、テンプレートマッチングにＦＦＴを用いる場合、縦横サイズが２の階乗である画像を用いると高速に処理できることが知られている。このため、登録画像の縦横サイズを２の階乗にパディングしてテンプレートマッチングを行うことがよくなされる。しかしながら、単純に画像をパディングしてＦＦＴを行うと、演算量が増加することがある。
【００４３】
たとえば、点１１０において示されるように、画像サイズが１３０×１３０の場合に演算量は、約０．８である。点１１０における画像を２の階乗にパディングすると、画像サイズが２５６×２５６（２５６＝２の８乗）になる。点１１１において示されるように、画像サイズが２５６×２５６の場合に演算量は、約１．４である。このように、縦横サイズをパディングして２の階乗することにより、演算量が増加することがある。
【００４４】
このように演算量が増加しないように、画像処理装置１００は、テンプレートマッチングの演算量が少なくなるような適切な画像サイズを決定し、当該画像サイズの領域の情報に基づいてテンプレート画像を登録画像から生成する。
【００４５】
より具体的には、決定部５４０は、設定領域を基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたテンプレートマッチング処理の演算量が相対的に少なくなる画像サイズを、演算量情報２３０を参照して決定する。
【００４６】
たとえば、決定部５４０は、設定領域が２３２×２３２（点１２０）である場合に、点１２０を基準とする予め定められた範囲１２１の画像サイズの中から、テンプレートマッチング処理の演算量が相対的に少なくなる画像サイズを決定する。この場合、図３に示されるように、決定部５４０は、演算量が一番少ない２２４×２２４（点１２４）をテンプレート画像のサイズとして決定する。テンプレート画像生成部５５０は、サイズが２２４×２２４（点１２４）であるテンプレート画像を登録画像から切り出して生成する。
【００４７】
また、決定部５４０は、サイズが２２４×２２４（点１２４）のテンプレート画像を用いて行ったテンプレートマッチングの結果が良好でない場合には、演算量が点１２４の次に少ない点１２５をテンプレート画像のサイズとして決定してもよい。
【００４８】
なお、画像処理装置１００は、設定領域のサイズよりも小さい画像サイズを決定する場合もあれば、設定領域のサイズよりも大きい画像サイズを決定し得ることは言うまでもない。
【００４９】
画像処理装置１００は、演算量が相対的に少ない画像サイズのテンプレート画像と入力画像とを用いてテンプレートマッチングを行うことにより、テンプレートマッチング処理の演算量が少なくなり、テンプレートマッチングの処理を高速化することが可能になる。
【００５０】
＜ハードウェア構成＞
図４は、画像処理装置１００のハードウェア構成の一例を示すブロック図である。図４を参照して、画像処理装置１００のハードウェア構成について説明する。
【００５１】
図４を参照して、画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Central  Processing  Unit）４０１と、ＲＡＭ（Random  Access  Memory）４０２と、ＲＯＭ（Read  Only  Memory）４０３と、ネットワークインターフェイス（Ｉ／Ｆ）４０４と、カメラインターフェイス（Ｉ／Ｆ）４０５と、メモリーカードインターフェイス（Ｉ／Ｆ）４０７と、補助記憶装置４１０とを含む。カメラ８と、表示装置１６と、入力装置４４０とは、画像処理装置１００に接続される。各コンポーネントは、バス４００を介して、互いに通信可能に接続されている。
【００５２】
ＣＰＵ４０１は、ＲＯＭ４０３や補助記憶装置４１０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）や画像処理プログラムなどの各種プログラムを実行することで、画像処理装置１００の全体を制御する。
【００５３】
ＲＡＭ４０２は、ＣＰＵ４０１でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一次的に格納する。
【００５４】
ＲＯＭ４０３は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００５５】
ネットワークＩ／Ｆ４０４は、各種の通信媒体を介して、他の装置（サーバ装置など）とデータをやり取りする。より具体的には、ネットワークＩ／Ｆ４０４は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００５６】
カメラＩ／Ｆ４０５は、ＣＰＵ４０１とカメラ８とのデータ通信を仲介する。たとえば、カメラＩ／Ｆ４０５は、画像バッファを含み、カメラ８から伝送される登録画像および入力画像のデータを一旦蓄積する。カメラＩ／Ｆ４０５は、少なくとも１コマ分の入力画像のデータが蓄積されると、その蓄積されたデータを補助記憶装置４１０またはＲＯＭ４０３へ転送する。また、カメラＩ／Ｆ４０５は、ＣＰＵ４０１が発生した内部コマンドに従って、カメラ８に対して撮像指令を与える。
【００５７】
メモリーカードＩ／Ｆ４０７は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記憶媒体）３３０との間で、データの読み書きを行なう。典型的には、メモリーカードＩ／Ｆ４０７には、何らかの装置で取得した入力画像を格納したメモリーカード４３０が装着され、そのメモリーカード４３０から読み出された入力画像が補助記憶装置４１０へ格納される。
【００５８】
補助記憶装置４１０は、典型的には、ハードディスクなどの大容量磁気記憶媒体などを含む。補助記憶装置４１０は、本実施の形態に従う各種を実現するための画像処理プログラム４１１と、入力画像４１２と、登録画像４１３と、テーブル４１４とを格納する。さらに、補助記憶装置４１０には、オペレーティングシステムなどのプログラムが格納されてもよい。テーブル４１４の詳細については後述する。
【００５９】
画像処理装置１００本体はワークを撮像する機能を有していなくてもよく、デジタルカメラに類似した機構を用いて入力画像および登録画像を取得し、これら画像を任意の方法で画像処理装置１００へ入力するようにしてもよい。より具体的には、ネットワークＩ／Ｆ４０４やメモリーカードＩ／Ｆ４０７を介して、これらの画像が画像処理装置１００へ入力される。
【００６０】
補助記憶装置４１０に格納される画像処理プログラム４１１は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバ装置などから配信される。画像処理プログラム４１１は、画像処理装置１００で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、画像処理プログラム４１１自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。
【００６１】
また、画像処理プログラム４１１は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、画像処理プログラム４１１自体には、当該何らかのプログラムにおいて共通に利用されるようなモジュールは含まれず、当該何らかのプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない画像処理プログラム４１１であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。さらに、画像処理プログラム４１１によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。
【００６２】
本実施の形態に従う画像処理装置１００は、リアルタイムに処理を行わなくてもよい。たとえば、画像処理装置１００は、少なくとも１つのサーバ装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、ユーザーが、自身の端末を用いて入力画像４１２および登録画像４１３をサーバ装置（クラウド側）へ送信する。サーバ装置は、当該送信された入力画像４１２および登録画像４１３に対して、装置側が本実施の形態に従う画像処理を行う。さらに、サーバ装置側がすべての機能（処理）を行なう必要はなく、ユーザー側の端末とサーバ装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００６３】
表示装置１６は、オペレーティングシステムが提供するＧＵＩ（Graphical  User  Interface）画面や画像処理プログラム４１１の実行によって生成される画像などを表示する。
【００６４】
入力装置４４０は、典型的には、キーボード、マウス、タッチパネルなどからなる。入力装置４４０は、ユーザーから受付けた指示の内容をＣＰＵ４０１などへ出力する。
【００６５】
＜全体概要＞
以下、第１〜第５の実施の形態について順に説明する。第１〜第５の実施の形態に従う画像処理装置のハードウェア構成は、上述のハードウェア構成と同様である。したがって、ハードウェア構成の説明については繰り返さない。
【００６６】
なお、第１〜第５の実施の形態において示した特徴的な構成は、本発明の趣旨を逸脱しない範囲で当然に相互にその組み合わせが可能である。
【００６７】
［第１の実施の形態］
＜機能構成＞
図５は、第１の実施の形態に従う画像処理装置１００の機能構成の一例を示すブロック図である。図５を参照して、画像処理装置１００の機能構成について説明する。
【００６８】
画像処理装置１００は、補助記憶装置４１０と、領域設定部５２０と、決定部５４０と、テンプレート画像生成部５５０と、位置姿勢検出部５６０とを含む。補助記憶装置４１０は、登録画像４１３と、テーブル４１４と、登録画像４１３に対応付けられた領域５３６とを有する。
【００６９】
画像処理装置１００は、動作モードとして、テンプレート登録処理を行うための登録モードと、ワーク２に対して検査を実行する検査モードとを有する。ユーザーは、入力装置４４０により登録モードおよび検査モードを切り替えることができる。検査モードが切り替えられえると、スイッチ５００が切り替わる。典型的には、登録モードはオフラインで実行され、検査モードはオンラインで実行される。以下、登録モードおよび検査モードについて説明する。
【００７０】
（登録モード）
画像処理装置１００の動作モードが登録モードである場合、カメラ８は、ワークを撮影することで得られた登録画像を補助記憶装置４１０と、領域設定部５２０とに出力する。
【００７１】
領域設定部５２０は、登録画像に対する領域の設定を受付ける。たとえば、ユーザーは、表示装置１６に表示された登録画像に対して、マウス１８等の入力装置を用いて、領域の設定を行う。領域の設定の詳細については後述する。領域設定部５２０は、ユーザーが登録画像に対して設定した領域５３６（設定領域）を当該登録画像と対応付けて補助記憶装置４１０に格納する。
【００７２】
画像サイズと、テンプレートマッチングの演算量とが対応付けられたテーブル４１４が、補助記憶装置４１０に格納される。テーブル４１４の詳細については後述する。
【００７３】
（検査モード）
画像処理装置１００は、動作モードが検査モードである場合に、テンプレートマッチングを実行する。
【００７４】
決定部５４０は、上述したように、設定領域のサイズを基準とする予め定められた範囲の画像サイズの中から、画像サイズに予め対応付けられたテンプレートマッチング処理の演算量が相対的に少なくなる画像サイズ（決定サイズ）を決定する。より具体的には、決定部５４０は、設定領域のサイズを基準としてテーブル４１４の予め定められた範囲を参照し、テンプレートマッチング処理の演算量が最小になる画像サイズ（決定サイズ）を決定する。決定サイズの詳細については後述する。決定サイズをテンプレート画像生成部５５０に出力する。
【００７５】
テンプレート画像生成部５５０は、決定部５４０が決定した画像サイズの領域の情報に基づいて登録画像４１３からテンプレート画像を生成する。典型的には、テンプレート画像生成部５５０は、決定部５４０が決定した画像サイズで登録画像４１３からテンプレート画像を切り出す。テンプレート画像生成部５５０は、テンプレート画像を位置姿勢検出部５６０に出力する。
【００７６】
また、テンプレート画像生成部５５０は、テンプレート画像の中心が、設定領域の中心と一致するようにテンプレート画像を切り出す。ユーザーが設定する設定領域は、登録対象物を中心に設定する可能性が高い。このため、設定領域の中心およびテンプレート画像の中心を一致させることで、登録対象物が写っている必要な部分を残す可能性が高くなる。さらに、テンプレート画像生成部５５０は、複数枚の画像を平均する等の統計処理を行うことにより、１枚のテンプレート画像を生成してもよい。
【００７７】
カメラ８は、当該カメラ８が検査対象物のワーク２を撮影することで得られたれ入力画像を位置姿勢検出部５６０に出力する。位置姿勢検出部５６０は、カメラ８から出力される入力画像と、テンプレート画像生成部５５０により出力されるテンプレート画像とを用いてテンプレートマッチングを行う。
【００７８】
典型的には、位置姿勢検出部５６０は、回転不変位相限定相関(RIPOC：Rotation  Invariant  Phase  Only  Correlation)によりテンプレートマッチングを行う。位置姿勢検出部５６０は、テンプレートと一致する領域を入力画像から探索し、登録画像に含まれるワーク２に対する、入力画像に含まれるワーク２の移動量、回転量を出力する。ＲＩＰＯＣ処理の詳細については後述する。
【００７９】
なお、テンプレートマッチングの手法は、ＲＩＰＯＣに限定されない。たとえば、位置姿勢検出部５６０は、テンプレートマッチングの手法として、位相限定相関法（POC：Phase  Only  Correlation）、フーリエメリン変換を用いたマッチング処理などのいずれかを用いてもよい。
【００８０】
フーリエメリン変換を用いたマッチング処理は、「Symmetric  Phase-Only  Matched  Filtering  of  Fourier-Mellin  Transforms  for  Image  Registration  and  Recognition,  IEEE  TRANSACTIONS  ON  PATTERN  ANALYSIS  AND  MACHINE  INTELLIGENCE,  VOL.I6,  NO.12,  DECEMBER  1994」に詳細に記載されている。
【００８１】
また、周波数情報を利用したマッチングの手法として、「画像信号処理と画像パターン認識の融合−ＤＣＴ符号限定相関とその応用、貴家仁志  首都大学東京  システムデザイン学部、動的画像処理実利用化ワークショップ２００７（２００７．３．８ー９）」に記載の手法を用いてもよい。
【００８２】
＜設定領域＞
図６は、登録画像上の設定領域を表す図である。図６を参照して、設定領域の詳細について説明する。
【００８３】
図６に示されるように、ワーク２等の登録対象物６０１が登録画像４１３に写っている。上述したように、領域設定部５２０は、登録画像４１３に対する領域の設定を受付ける。ユーザーは、表示装置１６に表示された登録画像４１３を確認しながら、登録対象物６０１を囲うことにより領域を設定する。たとえば、ユーザーは、登録対象物６０１を領域５３６のような四角で囲う。なお、領域５３６の形は、四角形に限定されない。たとえば、円形、楕円形、多角形、およびその他形状のいずれかであってもよい。
【００８４】
ユーザーが設定した領域５３６は、登録画像４１３と対応付けられて補助記憶装置４１０に格納される。典型的には、領域５３６は、登録画像４１３における座標値として格納される。
【００８５】
このように、ユーザーがテンプレートマッチング処理に用いる登録画像上の領域を視覚的に確認して設定することにより、登録対象物６０１を含まない余分な領域を排除することができる。これにより、テンプレートマッチングの精度を上げることができ、さらにテンプレートマッチング処理を高速化することができる。
【００８６】
＜テーブル＞
図７は、テーブル４１４のデータ構造を示す図である。図７を参照して、テーブル４１４のデータ構造について説明する。
【００８７】
テーブル４１４において、画像サイズと、テンプレートマッチングの演算量との関係が規定される。典型的には、テーブル４１４は、画像の縦横サイズとテンプレートマッチングの演算量とを規定する２次元のテーブルとして構成される。
【００８８】
図７に示されるように、テーブル４１４において、画像の横幅７０１〜７０７および画像縦幅７１０〜７１６に対応するテンプレートマッチングの演算量が規定される。たとえば、横幅が１２６画素（横幅７０２）であり、縦幅が１２６画素（縦幅７１１）である画像に対する演算量は３である。横幅が１２８画素（横幅７０４）であり、縦幅が１２６画素（縦幅７１１）である画像に対する演算量は２である。
【００８９】
典型的には、演算量は、テンプレートマッチングにかかる演算時間を指数化したものである。演算時間は、複数のサイズの画像に対してテンプレートマッチングを所定のパソコンで実際に行うことにより実測される。画像処理装置１００は、各画像のサイズと、各画像に対するテンプレートマッチングの演算時間を指数化したものとを対応付けてテーブル４１４として格納する。
【００９０】
なお、演算時間は、テンプレートマッチング処理の全部の演算時間である必要はなく、テンプレートマッチング処理の一部の演算時間であってもよい。たとえば、演算時間は、入力画像から検査対象物の位置を検出する、テンプレートマッチングにおけるＲＩＰＯＣにかかる時間として定められる。
【００９１】
さらに、演算量は、ＲＩＰＯＣにおけるフーリエ変換を元に指数化したものであってもよい。２次元の離散フーリエ変換（ＤＦＴ：discrete  Fourier  transform）は１次元のＤＦＴを２ステージで適用することで実現できる。このため、テーブル４１４は、１次元のＤＦＴの実行時間を指数化したものを格納した１次元のテーブルとして構成される得る。たとえば、Ｍ×Ｎのサイズの画像に対してＤＦＴを行う場合、演算量は、サイズＭの１次元のＤＦＴの演算量とサイズＮの１次元のＤＦＴの演算量の和として出力される。
【００９２】
＜近似式＞
演算量は、テーブルではなく近似式で定義されてもよい。たとえば、演算量は、画像サイズと、計算量とから算出されてもよい。このとき、理論式が用いられる。サイズＮの１次元のＤＦＴはCooley-Turkyのアルゴリズムを使えば、Ｏ（ＮΣｎｉ）の計算量で計算できることが一般に知られている。このため、演算量は、Ｏ（ＮΣｎｉ）（ｎｉはＮを素因数分解したときの各素数）を１次元のＤＦＴの演算量として定義されてもよい。
【００９３】
＜決定サイズ＞
図７を再び参照して、決定サイズについて説明する。決定部５４０は、設定領域のサイズを基準とするテーブル４１４内の予め定められた範囲の画像サイズの中からテンプレートマッチング処理の演算量が相対的に少なくなる画像サイズ（決定サイズ）を決定する。
【００９４】
たとえば、設定領域のサイズが１２８×１２８であるとする。決定部５４０は、サイズ７２０（１２８×１２８）を基準として、テーブル４１４内の予め定められた範囲７３０を参照して、演算量が最小となる画像サイズを決定する。範囲７３０内において演算量が最小の画像サイズは、サイズ７４０（１２８×１２６）であるので、決定部５４０は、サイズ７４０（１２８×１２６）を決定サイズとして決定する。当該決定サイズは、テンプレート画像生成部５５０に出力する。
【００９５】
なお、決定部５４０が参照するテーブル４１４内の予め定められた範囲の大きさは、画像処理装置１００の設計時に設定される。当該範囲の大きさは、ユーザーにより変更できるように構成されてもよい。たとえば、当該範囲の大きさは、縦幅および横幅のそれぞれについて画素単位で変更できるように構成される。また、テーブル４１４内に規定される画像サイズは整数である必要は無く正数であればよい。
【００９６】
また、決定部５４０は、設定領域の縦幅よりも小さいテーブル４１４内の範囲を参照して、設定領域の縦幅よりも小さい縦幅の画像サイズを決定してもよい。同様に、決定部５４０は、設定領域の横幅よりも小さいテーブル４１４内の範囲を参照して、設定領域の横幅よりも小さい横幅の画像サイズを決定してもよい。これにより、テンプレートマッチング処理をより高速化することができる。
【００９７】
＜テンプレートマッチング処理＞
図８は、位置姿勢検出部５６０の機能構成の一例を示すブロック図である。図８を参照して、テンプレートマッチング処理の一例であるＲＩＰＯＣについて説明する。
【００９８】
位置姿勢検出部５６０によりＲＩＰＯＣが実行される。ＲＩＰＯＣは、テンプレート画像に対して入力画像に写っている検査対象物がどれだけ回転しているかを算出する。また、ＲＩＰＯＣは、テンプレート画像の回転量を補正する処理と、回転量の補正によって取得された補正テンプレートと入力画像との間でどれだけの類似度および平行移動量が存在するのかを算出する処理とを含む。
【００９９】
より具体的には、位置姿勢検出部５６０は、フーリエ変換部８１０と、フーリエ変換部８２０と、対数化処理部８１２と、対数化処理部８２２と、極座標変換部８１４と、極座標変換部８２４と、第１ＰＯＣ処理部８３０と、回転量補正部８４０と、第２ＰＯＣ処理部８５０とを含む。
【０１００】
フーリエ変換部８１０は、テンプレート画像に含まれる周波数情報（振幅成分および位相成分）を算出する。フーリエ変換部８２０は、入力画像中の検出対象物が存在しそうな位置を中心に探索範囲を設定し、当該探索範囲に対応するテンプレート部分を入力画像から切り出す。典型的には、切り出される領域のサイズは、テンプレート画像と同じサイズである。また、フーリエ変換部８２０は、切り出された領域に含まれる周波数情報（振幅成分および位相成分）を算出する。当該ＲＩＰＯＣ処理においては、位相成分は必ずしも必要ではないので算出しなくてもよい。
【０１０１】
対数化処理部８１２および極座標変換部８１４は、テンプレート画像についての振幅成分を対数化するとともに、極座標へ変換する。同様に、対数化処理部８２２および極座標変換部８２４は、入力画像についての振幅成分を対数化するとともに、極座標へ変換する。この極座標への変換によって、回転量が２次元座標上の座標点として表現される。
【０１０２】
第１ＰＯＣ処理部８３０は、極座標変換部８１４および極座標変換部８２４からそれぞれ出力される極座標変換された結果について、類似度および平行移動量（回転量に相当）を算出する。ＰＯＣ処理では、テンプレート画像および入力画像の画像同士を順次ずらすとともに、それぞれに含まれる空間周波数の成分の間で相関値を算出することで、最も類似度の高いもの（ＰＯＣ値のピーク値）を探索する。第１ＰＯＣ処理部８３０は、極座標変換された結果同士で類似度が最も高くなる位置を特定し、それに対応する回転量を回転量補正部８４０に出力する。
【０１０３】
回転量補正部８４０は、第１ＰＯＣ処理部８３０において算出された回転量に従ってテンプレート画像を回転補正する。すなわち、第１ＰＯＣ処理部８３０、テンプレート画像を回転補正して補正テンプレートを生成する。
【０１０４】
回転量補正部８４０におけるテンプレート画像を回転補正する方法としては、テンプレート画像そのものを実空間で回転させる方法を採用することができる。第２ＰＯＣ処理部８５０において周波数空間を扱うような場合には、実空間で回転させる必要はなく、ＰＯＣ処理の内部表現であるフーリエ変換後のデータ（振幅情報および位相情報）を回転させる方法を採用してもよい。
【０１０５】
第２ＰＯＣ処理部８５０は、補正テンプレート画像と入力画像との間で、類似度および位置（平行移動量）を算出する。類似度が最も高くなる位置が、入力画像に含まれる補正テンプレート画像と一致する領域を示す。第２ＰＯＣ処理部８５０は、平行移動量、回転量、倍率などの情報を含む位置情報を出力する。
【０１０６】
＜制御フロー＞
図９は、画像処理装置１００が実行する処理の一部を表わすフローチャートである。図９の処理は、ＣＰＵ４０１がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。
【０１０７】
図９を参照して、ステップＳ９００において、ＣＰＵ４０１は、画像処理装置１００の動作モードを判定する。画像処理装置１００の動作モードが登録モードである場合（ステップＳ９００においてＹＥＳ）、ＣＰＵ４０１は、制御をステップＳ９０１に切り替える。そうでない場合には（ステップＳ９０１においてＮＯ）、ＣＰＵ４０１は、制御をステップＳ９１０に切り替える。典型的には、登録モードはオフラインで実行され、検査モードはオンラインで実行される。
【０１０８】
ステップＳ９０１において、ＣＰＵ４０１は、カメラ８がワーク２を撮影して得られる登録画像を取得する。
【０１０９】
ステップＳ９０３において、ＣＰＵ４０１は、領域設定部５２０として、登録画像に対する領域の設定を受付ける。また、ステップＳ９０３において、ＣＰＵ４０１は、登録画像と、受付けた領域（設定領域）とを対応付けて補助記憶装置４１０に格納する。
【０１１０】
ステップＳ９１０において、ＣＰＵ４０１は、検査対象物が存在するか否かを判定する。検査対象物が存在する場合には（ステップＳ９１０においてＹＥＳ）、ＣＰＵ４０１は、制御をステップＳ９１１に切り替える。そうでない場合には（ステップＳ９１０においてＮＯ）、ＣＰＵ４０１は、制御をステップＳ９１０に切り替える。
【０１１１】
ステップＳ９１１において、ＣＰＵ４０１は、補助記憶装置４１０に格納されている登録画像と、当該登録画像に対応付けられている設定領域とを取得する。
【０１１２】
ステップＳ９１２において、ＣＰＵ４０１は、決定部５４０として、設定領域のサイズを基準としてテーブル４１４の予め定められた範囲を参照し、テンプレートマッチング処理の演算量が相対的に少なくなる画像サイズ（決定サイズ）を決定する。
【０１１３】
ステップＳ９１３において、ＣＰＵ４０１は、テンプレート画像生成部５５０として、決定サイズで登録画像４１３からテンプレート画像を切り出す。このとき、ＣＰＵ４０１は、テンプレート画像の中心が、設定領域の中心と一致するように切り出す。
【０１１４】
ステップＳ９１４において、ＣＰＵ４０１は、カメラ８が検査対象物であるワーク２を撮影した画像を入力画像として取得する。なお、入力画像を取得するタイミングは、ステップＳ９１５よりも前であればいつでもよい。
【０１１５】
ステップＳ９１５において、ＣＰＵ４０１は、位置姿勢検出部５６０として、入力画像およびテンプレート画像を用いて、テンプレートマッチングを行う。
【０１１６】
ステップＳ９２０において、ＣＰＵ４０１は、検査の終了判定を行う。ＣＰＵ４０１は、検査の終了命令を受け付けた場合には（ステップＳ９２０においてＹＥＳ）、処理を終了する。そうでない場合には（ステップＳ９２０においてＮＯ）、ＣＰＵ４０１は、制御をステップＳ９１０に切り替える。
【０１１７】
＜利点＞
以上のようにして、本実施の形態の画像処理装置１００は、テンプレートマッチングの演算量が少なくなる画像サイズのテンプレート画像を用いてテンプレートマッチングを行うことにより、テンプレートマッチング処理を高速化することができる。
【０１１８】
また、登録画像からテンプレート画像を設定領域の中心に一致するように生成することにより、登録対象物が写っている必要な部分を残る可能性が高くなり、テンプレートマッチングの精度を安定させつつ、テンプレートマッチング処理を高速化することができる。
【０１１９】
［第２の実施の形態］
以下、第２の実施の形態に従う画像処理装置１００Ａについて説明する。本実施の形態に従う画像処理装置１００Ａは、決定サイズと同様のサイズの外枠と、外枠の内側にある内枠とに挟まれる登録画像上の領域（以下、「境界領域」ともいう。）の変動度合いが相対的に少なくなる領域をテンプレート画像として切り出す点が第１の実施の形態に従う画像処理装置１００と異なる。したがって、設定領域とテンプレート画像との中心は必ずしも一致するわけではない。
【０１２０】
＜概要＞
図１０は、設定領域を表す図である。図１０を参照して、画像処理装置１００Ａの概要について説明する。
【０１２１】
図１０に示されるように、ユーザーが設定する領域５３６は、登録対象物６０１を含んで大きめに設定されることが多い。通常、領域５３６および枠１００１によって挟まれる領域に、登録対象物６０１とは異なる物体を含んで領域５３６が設定されるとテンプレートマッチングの精度が低下する。このとき、領域５３６および枠１００１によって挟まれる領域の画素変化が大きくなる。つまり、当該領域の画素の変動度合いが大きくなる。
【０１２２】
このため、画像処理装置１００Ａは、当該領域の変動度合いが小さくなるようにテンプレート画像を生成することで、テンプレートマッチングの精度を保ちつつ、テンプレートマッチング処理を高速化することが可能になる。
【０１２３】
＜機能構成＞
図１１は、画像処理装置１００Ａの機能構成の一例を示すブロック図である。図１１を参照して、画像処理装置１００Ａの機能構成について説明する。本実施の形態に従う画像処理装置１００Ａは、テンプレート画像生成部５５０が位置合わせ部５５１を有する点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１２４】
テンプレート画像生成部５５０は、位置合わせ部５５１を有する。位置合わせ部５５１は、登録画像を走査して、境界領域の変動度合いが相対的に小さくなるような登録画像上の領域（以下、「決定領域」ともいいます。）を決定する。
【０１２５】
テンプレート画像生成部５５０は、位置合わせ部５５１が決定した登録画像上の位置でテンプレート画像を切り出す。テンプレート画像生成部５５０のテンプレート画像の切り出し方法の詳細については、後述する。
【０１２６】
＜変動度合い＞
図１２は、境界領域の変動度合いを算出するために登録画像内を走査している様子を表す図である。図１２を参照して、位置合わせ部５５１の動作の詳細について説明する。
【０１２７】
画像処理装置１００Ａは、設定領域を中心に予め定められた幅だけ拡大した登録画像４１３内の領域１２００を走査する。当該予め定められた幅は設計時に設定される。また、当該予め定められた幅は、ユーザーにより設定できるように構成されてもよい。領域１２００は、ユーザーが設定する領域４３６であってもよい。
【０１２８】
位置合わせ部５５１は、決定サイズと同じサイズの領域である外枠１２１０と、その内側にある内枠１２２０とに挟まれる境界領域１２３０の変動度合いを領域１２００内を走査して算出する。内枠１２２０の形状は、四角形である必要はなく、円形、楕円形、多角形、およびその他形状のいずれかであってもよい。
【０１２９】
位置合わせ部５５１は、算出した変動度合いが最小になる領域（決定領域）を決定する。テンプレート画像生成部５５０は、サイズが決定サイズに一致する決定領域をテンプレート画像として切り出す。テンプレート画像生成部５５０は、当該切り出したテンプレート画像を位置姿勢検出部５６０に出力する。位置姿勢検出部５６０は、当該テンプレート画像を用いてテンプレートマッチングを行う。
【０１３０】
＜利点＞
以上のようにして、本実施の形態の画像処理装置１００Ａは、境界領域の変動度合いが小さくなるような領域を登録画像から切出してテンプレート画像として生成することで、テンプレートマッチングの精度を保ちつつ、テンプレートマッチング処理を高速化することが可能になる。
【０１３１】
［第３の実施の形態］
以下、第３の実施の形態に従う画像処理装置１００Ｂについて説明する。本実施の形態に従う画像処理装置１００Ｂは、画像サイズに対応付けられる演算量がテーブル４１４に存在しない場合に、当該画像サイズを基準とする予め定められた範囲の画像サイズにそれぞれ対応付けられた既知の演算量に基づいて推定する点が、第１の実施の形態に従う画像処理装置１００と異なる。
【０１３２】
＜概要＞
図１３は、画像処理装置１００Ｂの機能構成の一例を示すブロック図である。図１３を参照して、画像処理装置１００Ｂの機能構成について説明する。本実施の形態に従う画像処理装置１００Ｂは、決定部５４０が推定部５４１を有する点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１３３】
決定部５４０は、設定領域のサイズを基準としてテーブル４１４の予め定められた範囲を参照し、テンプレートマッチング処理の演算量が相対的に少なくなる画像サイズを決定する。このとき、推定部５４１は、テーブル４１４において演算量が規定されていない画像サイズが存在する場合には、当該画像サイズに対応するテンプレートマッチングの未知の演算量を推定する。
【０１３４】
具体的には、推定部５４１は、未知の演算量に対応する画像サイズを基準として、テーブル４１４の予め定められた範囲を参照する。推定部５４１は、参照した範囲の既知の演算量に基づいて、未知の演算量を推定する。たとえば、推定部５４１は、既知の演算量の平均を推定した演算量とする。また、推定部５４１は、未知の演算量に対応する画像サイズに、より近い画像サイズに対応する演算量に大きい重みをつけて重み付き平均を算出し、当該重み付き平均を推定した演算量としてもよい。
【０１３５】
＜利点＞
以上のようにして、本実施の形態の画像処理装置１００Ｂは、テーブルに規定される演算量が未知である場合に既知の演算量から推定し、適切な画像サイズを決定することができる。また、本実施の形態の画像処理装置１００Ｂは、テーブルの容量を削減することができる。
【０１３６】
［第４の実施の形態］
以下、第４の実施の形態に従う画像処理装置Ｃについて説明する。本実施の形態に従う画像処理装置Ｃは、テンプレート画像が検査モードではなく登録モードで生成される点が、第１の実施の形態に従う画像処理装置１００と異なる。つまり、画像処理装置Ｃは、テンプレート画像をオンラインではなくオフラインで生成する。
【０１３７】
＜概要＞
図１４は、画像処理装置１００Ｃが実行する処理の一部を表わすフローチャートである。図１４の処理は、ＣＰＵ４０１がプログラムを実行することにより実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。以下では、第１の実施の形態に従う画像処理装置１００が実行する処理のフローチャートと異なるステップについてのみ説明する。その他の同様のステップについては説明を繰り返さない。
【０１３８】
図１４を参照して、画像処理装置１００Ｃの動作モードが登録モードである場合には（ステップＳ９００においてＹＥＳ）、ステップＳ１４１０およびステップＳ１４１１が実行される。
【０１３９】
ステップＳ１４１０において、ＣＰＵ４０１は、決定部５４０として、設定領域のサイズを基準としてテーブル４１４の予め定められた範囲を参照し、テンプレートマッチング処理の演算量が相対的に少なくなる画像サイズ（決定サイズ）を決定する。また、ステップＳ１４１０において、ＣＰＵ４０１は、テンプレート画像を補助記憶装置４１０に格納する。
【０１４０】
ステップＳ１４１１において、ＣＰＵ４０１は、テンプレート画像生成部５５０として、決定サイズで登録画像４１３からテンプレート画像を切り出す。このとき、ＣＰＵ４０１は、テンプレート画像の中心が、設定領域の中心と一致するように切り出す。
【０１４１】
画像処理装置１００Ｃの動作モードが検査モードである場合には（ステップＳ９００においてＮＯ）、ステップＳ１４２０が実行される。ステップＳ１４２０において、ＣＰＵ４０１は、補助記憶装置４１０に格納されているテンプレート画像を取得する。
【０１４２】
＜利点＞
以上のようにして、本実施の形態の画像処理装置１００Ｃは、テンプレート画像が登録時（オフライン）で予め生成しておくことにより、検査時（オンライン）に実行されるテンプレートマッチングを高速化することができる。
【０１４３】
［第５の実施の形態］
以下、第５の実施の形態に従う画像処理装置Ｄについて説明する。本実施の形態に従う画像処理装置Ｄは、テーブルを更新する機能をさらに含む点が第１の実施の形態に従う画像処理装置１００と異なる。
【０１４４】
＜機能構成＞
図１５は、画像処理装置１００Ｄの機能構成の一例を示すブロック図である。図１５を参照して、画像処理装置１００Ｄの機能構成について説明する。本実施の形態に従う画像処理装置１００Ｄは、更新部１５１０を含む点が第１の実施の形態に従う画像処理装置１００と異なる。その他の機能については同様である。そのため、同様の機能については説明を繰り返さない。
【０１４５】
テンプレートマッチングの演算時間は、ＭＰＵ（Micro-Processing  Unit）、メモリ、キャッシュ等の構造、および、テンプレートマッチング時に駆動するソフトのメモリの利用率等の画像処理装置の環境に依存するため、演算時間を理論的に予測することが難しい。このため、画像処理装置の環境のいずれかが変わった場合には、テーブル４１４を更新する必要がある。
【０１４６】
更新部１５１０は、テーブル４１４の更新を行う。より具体的には、位置姿勢検出部５６０は、複数のサイズの入力画像とテンプレート画像とを用いてテンプレートマッチング処理を行う。位置姿勢検出部５６０は、各入力画像に対するテンプレートマッチング処理にかかった演算時間を更新部１５１０に出力する。
【０１４７】
更新部１５１０は、位置姿勢検出部５６０が出力する各画像サイズに対応する演算時間に基づいて既存のテーブル４１４を更新する。
【０１４８】
＜利点＞
以上のようにして、本実施の形態の画像処理装置１００Ｄは、画像処理装置の環境が代わった場合などに、画像処理装置の環境に合わせてテーブルを更新する。これにより、画像処理装置の環境に合わせた正確なテンプレートマッチングの演算時間を算出することができ、テンプレートマッチング処理をより確実に高速化することができる。
【０１４９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５０】
１  画像処理システム、２  ワーク、８  カメラ、１２  製造装置、１４  搬送機構、１６  表示装置、１８  マウス、１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ  画像処理装置、１２１，７３０  範囲、２３０  演算量情報、４００  バス、４０１  ＣＰＵ、４０２  ＲＡＭ、４０３  ＲＯＭ、４０４  ネットワークＩ／Ｆ、４０５  カメラＩ／Ｆ、４０７  メモリーカードＩ／Ｆ、４１０  補助記憶装置、４１１  画像処理プログラム、４１２  入力画像、４１３  登録画像、４１４  テーブル、４３０  メモリーカード、４４０  入力装置、５００  スイッチ、５２０  領域設定部、５３６，１２００  領域、５４０  決定部、５４１  推定部、５５０  テンプレート画像生成部、５５１  位置合わせ部、５６０  位置姿勢検出部、６０１  登録対象物、７０１〜７０７  横幅、７１０〜７１６  画像縦幅、８１０，８２０  フーリエ変換部、８１２，８２２  対数化処理部、８１４，８２４  極座標変換部、８３０  第１ＰＯＣ処理部、８４０  回転量補正部、８５０  第２ＰＯＣ処理部、１００１  枠、１２１０  外枠、１２２０  内枠、１２３０  境界領域、１５１０  更新部。
【図１】
2014203687.tif 000003
【図２】
2014203687.tif 000004
【図３】
2014203687.tif 000005
【図４】
2014203687.tif 000006
【図５】
2014203687.tif 000007
【図６】
2014203687.tif 000008
【図７】
2014203687.tif 000009
【図８】
2014203687.tif 000010
【図９】
2014203687.tif 000011
【図１０】
2014203687.tif 000012
【図１１】
2014203687.tif 000013
【図１２】
2014203687.tif 000014
【図１３】
2014203687.tif 000015
【図１４】
2014203687.tif 000016
【図１５】
2014203687.tif 000017
【国際調査報告】
2014203687.tif 000018
2014203687.tif 000019