(57)【要約】【課題】計測対象物の形状的な特徴を用いたパターンマッチングにおいて、当該計測対象物の局所的な形状の歪みを許容することができる画像処理装置を提供する。【解決手段】  モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各第１の位置におけるエッジの変化方向とにより規定される。画像処理装置１００は、モデル画像のエッジ上の第１の位置に対応する入力画像の第２の位置におけるエッジの変化方向を算出する。画像処理装置１００は、エッジの変化方向の許容値に関する指示を受け付ける。画像処理装置１００は、受付けた指示と、第１の位置におけるエッジの変化方向と、第２の位置におけるエッジの変化方向とに基づき、第１の位置と当該第１の位置に対応する第２の位置との類似度を算出する。画像処理装置１００は、複数の第２の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定する。【選択図】図１３
2014203311.tif 000002
【特許請求の範囲】
【請求項１】
予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置であって、
前記モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各前記第１の位置におけるエッジの変化方向とにより規定され、
前記第１の位置に対応する前記入力画像の第２の位置におけるエッジの変化方向を算出する第１の算出手段と、
エッジの変化方向の許容値に関する指示を受け付ける受付手段と、
前記受付けた指示と、前記第１の位置におけるエッジの変化方向と、前記第２の位置におけるエッジの変化方向とに基づき、前記第１の位置と当該第１の位置に対応する前記第２の位置との前記類似度を算出する第２の算出手段と、
複数の前記第２の位置における前記算出された類似度に基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定する第１の判定手段とを備える、画像処理装置。
【請求項２】
前記受付手段は、前記指示として、２つのエッジの変化方向の相違を表す情報と当該２つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付ける、請求項１に記載の画像処理装置。
【請求項３】
前記複数のデータを予め記憶した記憶手段をさらに備える、請求項２に記載の画像処理装置。
【請求項４】
前記複数のデータの各々は、２つのエッジの変化方向の角度差が大きくなるほど前記２つのエッジの一致度が小さくなるように前記角度差と前記類似度とが関連付けられ、
前記角度差に対する前記類似度の関連付けは、前記複数のデータ間で互いに異なっており、
前記画像処理装置は、
前記第１の位置におけるエッジの変化方向と、当該第１の位置に対応する前記第２の位置におけるエッジの変化方向との角度差を、前記第２の位置毎に算出する第３の算出手段をさらに備え、
前記第２の算出手段は、前記指定されたデータと前記算出された角度差とに基づき、前記第１の位置と当該第１の位置に対応する前記第２の位置との前記類似度を算出する、請求項２または３に記載の画像処理装置。
【請求項５】
前記第１の位置に対応する第２の位置が前記入力画像のエッジ領域に属するか否かを、前記第１の位置毎に判定する第２の判定手段をさらに備え、
前記第１の算出手段は、前記第２の判定手段によって前記第１の位置に対応する第２の位置が前記入力画像のエッジ領域に属すると判定された場合に、前記第１の位置に対応する第２の位置におけるエッジの変化方向を算出する、請求項４に記載の画像処理装置。
【請求項６】
前記第１の位置と当該第１の位置に対応する前記第２の位置との前記類似度に基づき、当該第１の位置と当該第２の位置とが類似するか否かを判定する第３の判定手段と、
前記第１の位置に類似する第２の位置と前記第１の位置に類似しない第２の位置とを互いに異なる表示態様で、前記入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える、請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１の位置に対応する第２の位置が前記入力画像のエッジ領域に属するか否かを、前記第１の位置毎に判定する第２の判定手段と、
前記入力画像のエッジ領域に属する第２の位置と前記入力画像のエッジ領域に属さない第２の位置とを互いに異なる表示態様で、前記入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える、請求項１から５のいずれか１項に記載の画像処理装置。
【請求項８】
前記表示態様は色である、請求項６または７に記載の画像処理装置。
【請求項９】
各前記第１の位置は、前記モデル画像のエッジ上の点をサンプリングすることにより得られた位置である、請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
予め登録されたモデルと類似する領域を入力画像からサーチする画像処理方法であって、
前記モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各前記第１の位置におけるエッジの変化方向とにより規定され、
前記画像処理方法は、
前記第１の位置に対応する前記入力画像の第２の位置におけるエッジの変化方向を算出するステップと、
エッジの変化方向の許容値に関する指示を受け付けるステップと、
前記受付けた指示と、前記第１の位置におけるエッジの変化方向と、前記第２の位置におけるエッジの変化方向とに基づき、前記第１の位置と当該第１の位置に対応する前記第２の位置との前記類似度を算出するステップと、
複数の前記第２の位置における前記算出された類似度に基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定するステップとを備える、画像処理方法。
【請求項１１】
予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置を制御するためのプログラムであって、
前記モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各前記第１の位置におけるエッジの変化方向とにより規定され、
前記プログラムは、
前記第１の位置に対応する前記入力画像の第２の位置におけるエッジの変化方向を算出するステップと、
エッジの変化方向の許容値に関する指示を受け付けるステップと、
前記受付けた指示と、前記第１の位置におけるエッジの変化方向と、前記第２の位置におけるエッジの変化方向とに基づき、前記第１の位置と当該第１の位置に対応する前記第２の位置との前記類似度を算出するステップと、
複数の前記第２の位置における前記算出された類似度に基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定するステップとを、前記画像処理装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置、画像処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
従来から、ＦＡ（Factory Automation）分野などにおいては、計測対象物（以下、「ワーク」とも称す。）を撮像した入力画像に対して、予め登録されたパターン（以下、「モデル」とも称す。）に基づくサーチ処理（以下、「パターンマッチング処理」とも称す。）が用いられている。このようなパターンマッチング処理により、ワークに現れるキズやゴミなどの欠陥を検出したり、モデルと類似しているワーク上の領域を探索したりすることができる。
【０００３】
このようなパターンマッチング処理の一手法として、入力画像において濃淡値（明るさ）の変化がある部分（以下、「エッジ（部分）」とも称す。）を抽出するとともに、エッジの変化方向を示す値（以下、「エッジコード」もしくは「ＥＣ（Edge Code）」とも称す。）に基づいてパターンマッチングを行うことが知られている。たとえば、特開２００２−２３０５４９号公報（特許文献１）を参照されたい。
【０００４】
また、当該特許文献１には、スコア累計値に基づく閾値処理によるパターンマッチング処理が開示されている。具体的には、当該パターンマッチング処理においては、モデルデータ中の各画素と対応画素との間のエッジコードの一致度合いを示すスコアを画素単位で算出してこれを累計した値を類似度とし、入力画像においてモデルデータを走査しつつ類似度の最大値を求め、この最大値が既定の閾値を越えたかどうかで入力画像の中にモデルとマッチする領域があるかどうかを判定する。
【０００５】
このようなエッジコードを用いることで、入力画像の撮像時における影響（たとえば、影の映り込みや照明ムラ）があっても、モデルと一致する領域を的確に探索することができる。
【０００６】
さらに、従来、モデルと一致する領域の探索結果に基づき、モデルと計測対象物全体との一致度を算出することがなされている。また、従来、当該算出された一致度と、予め定められた閾値とに基づき、計測対象物の良否が判定されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２３０５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来では、計測対象物の局所的な形状の歪みを許容したいというニーズに対して、類似度（スコアの累計値）の閾値を下げると、形状がモデルと不一致のものも誤って許容される危険性が大きくなるといった問題が生じる。
【０００９】
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、計測対象物の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる画像処理装置、画像処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明のある局面に従うと、画像処理装置は、予め登録されたモデルと類似する領域を入力画像からサーチする。モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各第１の位置におけるエッジの変化方向とにより規定される。画像処理装置は、第１の位置に対応する入力画像の第２の位置におけるエッジの変化方向を算出する第１の算出手段と、エッジの変化方向の許容値に関する指示を受け付ける受付手段と、受付けた指示と、第１の位置におけるエッジの変化方向と、第２の位置におけるエッジの変化方向とに基づき、第１の位置と当該第１の位置に対応する第２の位置との類似度を算出する第２の算出手段と、複数の第２の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定する第１の判定手段とを備える。
【００１１】
好ましくは、画像処理装置は、受付手段は、上記指示として、２つのエッジの変化方向の相違を表す情報と当該２つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付ける。
【００１２】
好ましくは、画像処理装置は、複数のデータを予め記憶した記憶手段をさらに備える。
好ましくは、複数のデータの各々は、２つのエッジの変化方向の角度差が大きくなるほど２つのエッジの一致度が小さくなるように角度差と類似度とが関連付けられている。角度差に対する類似度の関連付けは、複数のデータ間で互いに異なっている。画像処理装置は、第１の位置におけるエッジの変化方向と、当該第１の位置に対応する第２の位置におけるエッジの変化方向との角度差を、第２の位置毎に算出する第３の算出手段をさらに備える。第２の算出手段は、指定されたデータと算出された角度差とに基づき、第１の位置と当該第１の位置に対応する第２の位置との類似度を算出する。
【００１３】
好ましくは、画像処理装置は、第１の位置に対応する第２の位置が入力画像のエッジ領域に属するか否かを、第１の位置毎に判定する第２の判定手段をさらに備える。第１の算出手段は、第２の判定手段によって第１の位置に対応する第２の位置が入力画像のエッジ領域に属すると判定された場合に、第１の位置に対応する第２の位置におけるエッジの変化方向を算出する。
【００１４】
好ましくは、画像処理装置は、第１の位置と当該第１の位置に対応する第２の位置との類似度に基づき、当該第１の位置と当該第２の位置とが類似するか否かを判定する第３の判定手段と、第１の位置に類似する第２の位置と第１の位置に類似しない第２の位置とを互いに異なる表示態様で、入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える。
【００１５】
好ましくは、画像処理装置は、第１の位置に対応する第２の位置が前記入力画像のエッジ領域に属するか否かを、第１の位置毎に判定する第２の判定手段と、入力画像のエッジ領域に属する第２の位置と入力画像のエッジ領域に属さない第２の位置とを互いに異なる表示態様で、入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える。
【００１６】
好ましくは、上記表示態様は色である。
好ましくは、各第１の位置は、モデル画像のエッジ上の点をサンプリングすることにより得られた位置である。
【００１７】
本発明の他の局面に従うと、画像処理方法は、予め登録されたモデルと類似する領域を入力画像からサーチするために用いられる。モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各第１の位置におけるエッジの変化方向とにより規定される。画像処理方法は、第１の位置に対応する入力画像の第２の位置におけるエッジの変化方向を算出するステップと、エッジの変化方向の許容値に関する指示を受け付けるステップと、受付けた指示と、第１の位置におけるエッジの変化方向と、第２の位置におけるエッジの変化方向とに基づき、第１の位置と当該第１の位置に対応する第２の位置との類似度を算出するステップと、複数の第２の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定するステップとを備える。
【００１８】
本発明のさらに他の局面に従うと、プログラムは、予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置を制御する。モデルは、モデル画像から抽出されたエッジ上の複数の第１の位置と、各第１の位置におけるエッジの変化方向とにより規定される。プログラムは、第１の位置に対応する入力画像の第２の位置におけるエッジの変化方向を算出するステップと、エッジの変化方向の許容値に関する指示を受け付けるステップと、受付けた指示と、第１の位置におけるエッジの変化方向と、第２の位置におけるエッジの変化方向とに基づき、第１の位置と当該第１の位置に対応する第２の位置との類似度を算出するステップと、複数の第２の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定するステップとを、画像処理装置のプロセッサに実行させる。
【発明の効果】
【００１９】
本発明によれば、計測対象物の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる。
【図面の簡単な説明】
【００２０】
【図１】画像処理装置を含む視覚センサシステムの全体構成を示す概略図である。
【図２】画像処理装置の概略構成図である。
【図３】モデル登録処理における処理の流れを説明するためのフローチャートである。
【図４】モデル登録処理における各処理により生成される画像を表した図である。
【図５】計測処理全体の流れを説明するためのフローチャートである。
【図６】計測処理における処理により生成される画像を表した図である。
【図７】図５のステップＳ１０６における探索処理における処理の流れを説明するためのフローチャートである。
【図８】サンプリング点と、対応点と、エッジの変化方法と、角度差とを説明するための図である。
【図９】ＣＰＵが、一致度を算出するときに利用するデータを表した図である。
【図１０】モデル画像と入力画像との相違を説明するための図である。
【図１１】入力画像においてモデルと一致する部分と一致しない部分とを説明するための図である。
【図１２】入力画像においてモデルと一致する部分と一致しない部分とを説明するための図である。
【図１３】画像処理装置の機能的構成を説明するためのブロック図である。
【図１４】画像処理装置が設定モードにおいて提供するユーザインターフェイス画面の一例を示す図である。
【図１５】画像処理装置が計測モードにおいて提供するユーザインターフェイス画面の一例を示す図である。
【図１６】図１５からの遷移した後のユーザインターフェイス画面の一例を示す図である。
【図１７】画像処理装置が計測モードにおいて提供するユーザインターフェイス画面の他の例を示す図である。
【図１８】図１７からの遷移した後のユーザインターフェイス画面の一例を示す図である。
【図１９】エッジコードおよびエッジコード画像の算出処理を説明するための図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
＜Ａ．システム構成＞
図１は、本発明の実施の形態に係る画像処理装置１００を含む視覚センサシステム１の全体構成を示す概略図である。
【００２３】
図１を参照して、視覚センサシステム１は生産ラインなどに組み込まれ、ワーク２に対して、予め登録されているモデル（但し、後述するように「エッジコード画像」が用いられる）を用いてパターンマッチング処理を実行する。
【００２４】
視覚センサシステム１においては、ワーク２はベルトコンベヤなどの搬送機構６によって搬送され、搬送されたワーク２は、撮像装置８によって所定タイミングで撮像される。撮像装置８は、一例として、レンズなどの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサといった、複数の画素に区画された撮像素子を含んで構成される。なお、撮像装置８で撮像されるワーク２に対して光を照射する照明機構をさらに設けてもよい。
【００２５】
撮像装置８の撮像によって得られる画像（以下、「入力画像」とも称す。）は、画像処理装置１００へ伝送される。画像処理装置１００は、この撮像装置８から受けた入力画像に対してパターンマッチング処理を実行し、その結果を接続されたディスプレイ１０２で表示したり、その結果を外部装置へ出力したりする。
【００２６】
ワーク２が撮像装置８の視野内に到達したことは、搬送機構６の両端に配置された光電センサ４によって検出される。具体的には、光電センサ４は、同一の光軸上に配置された受光部４ａと投光部４ｂとを含み、投光部４ｂから放射される光がワーク２で遮蔽されることを受光部４ａで検出することによって、ワーク２の到達を検出する。この光電センサ４のトリガ信号は、ＰＬＣ（Programmable Logic Controller）５へ出力される。
【００２７】
ＰＬＣ５は、光電センサ４などからのトリガ信号を受信するとともに、搬送機構６の制御自体を司る。
【００２８】
画像処理装置１００は、ワーク２に対して各種の画像処理を実行する計測モードと、後述するモデル登録処理などを行うための設定モードとを有している。これらのモードは、ユーザがマウス１０４などを操作することで切替えられる。
【００２９】
画像処理装置１００は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム（命令コード）を実行することで、後述するような各種機能を提供する。このようなプログラムは、典型的には、メモリカード１０６などに格納された状態で流通する。
【００３０】
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、ＯＳと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【００３１】
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００３２】
図２は、本発明の実施の形態に係る画像処理装置１００の概略構成図である。図２を参照して、画像処理装置１００は、演算処理部であるＣＰＵ（Central Processing Unit）
１１０と、記憶部としてのメインメモリ１１２およびハードディスク１１４と、カメラインターフェイス１１６と、入力インターフェイス１１８と、表示コントローラ１２０と、ＰＬＣインターフェイス１２２と、通信インターフェイス１２４と、データリーダ／ライタ１２６とを含む。これらの各部は、バス１２８を介して、互いにデータ通信可能に接続
される。
【００３３】
ＣＰＵ１１０は、ハードディスク１１４に格納されたプログラム（コード）をメインメモリ１１２に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１１４から読み出されたプログラムに加えて、撮像装置８によって取得された画像データ、ワークデータ、モデルに関する情報などを保持する。さらに、ハードディスク１１４には、各種設定値などが格納されてもよい。なお、ハードディスク１１４に加えて、あるいは、ハードディスク１１４に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００３４】
カメラインターフェイス１１６は、ＣＰＵ１１０と撮像装置８との間のデータ伝送を仲介する。すなわち、カメラインターフェイス１１６は、ワーク２を撮像して画像データを生成するための撮像装置８と接続される。より具体的には、カメラインターフェイス１１６は、１つ以上の撮像装置８と接続が可能であり、撮像装置８からの画像データを一時的に蓄積するための画像バッファ１１６ａを含む。そして、カメラインターフェイス１１６は、画像バッファ１１６ａに所定コマ数の画像データが蓄積されると、その蓄積されたデータをメインメモリ１１２へ転送する。また、カメラインターフェイス１１６は、ＣＰＵ１１０が発生した内部コマンドに従って、撮像装置８に対して撮像コマンドを与える。
【００３５】
入力インターフェイス１１８は、ＣＰＵ１１０とマウス１０４、キーボード、タッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス１１８は、ユーザが入力部を操作することで与えられる操作指令を受付ける。
【００３６】
表示コントローラ１２０は、表示装置の典型例であるディスプレイ１０２と接続され、ＣＰＵ１１０における画像処理の結果などをユーザに通知する。すなわち、表示コントローラ１２０は、ディスプレイ１０２に接続され、当該ディスプレイ１０２での表示を制御する。
【００３７】
ＰＬＣインターフェイス１２２は、ＣＰＵ１１０とＰＬＣ５との間のデータ伝送を仲介する。より具体的には、ＰＬＣインターフェイス１２２は、ＰＬＣ５によって制御される生産ラインの状態に係る情報やワークに係る情報などをＣＰＵ１１０へ伝送する。
【００３８】
通信インターフェイス１２４は、ＣＰＵ１１０とコンソール（あるいは、パーソナルコンピュータやサーバ装置）などとの間のデータ伝送を仲介する。通信インターフェイス１２４は、典型的には、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）などからなる。なお、後述するように、メモリカード１０６に格納されたプログラムを画像処理装置１００にインストールする形態に代えて、通信インターフェイス１２４を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置１００にインストールしてもよい。
【００３９】
データリーダ／ライタ１２６は、ＣＰＵ１１０と記録媒体であるメモリカード１０６との間のデータ伝送を仲介する。すなわち、メモリカード１０６には、画像処理装置１００で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１２６は、このメモリカード１０６からプログラムを読出す。また、データリーダ／ライタ１２６は、ＣＰＵ１１０の内部指令に応答して、撮像装置８によって取得された画像データおよび／または画像処理装置１００における処理結果などをメモリカード１０６へ書込む。なお、メモリカード１０６は、ＣＦ（Compact Flash）、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体や、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体等からなる。
【００４０】
また、画像処理装置１００には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【００４１】
＜Ｂ．モデル登録処理＞
図３は、モデル登録処理における処理の流れを説明するためのフローチャートである。つまり、図３は、モデルを生成するための処理の流れを表したフローチャートである。
【００４２】
図３を参照して、ステップＳ２において、画像処理装置１００のＣＰＵ１１０は、基準とすべきワーク２を撮像装置８によって撮像することにより得られたモデル画像を取得する。ステップＳ４において、ＣＰＵ１１０は、モデル画像からエッジの抽出を行ない、エッジ抽出画像を生成する。すなわち、ＣＰＵ１１０は、モデル画像の全ての画素に対して、公知のフィルタ処理によってエッジの強度を算出し、当該エッジ強度が既定の閾値を越えた画素をエッジ点として抽出する。また、ＣＰＵ１１０は、抽出した全てのエッジ点に対して、特許文献１に示される方法によってエッジの変化方向を示すエッジコードを算出する。
【００４３】
本実施の形態においては、エッジの変化方向を示す値の一例として、エッジの接線方向
がエッジコード（エッジ方向／エッジ角度）として算出される。図１９は、本発明の実施の形態に係るエッジコードおよびエッジコード画像の算出処理を説明するための図である。特に、図１９（ａ）には、各エッジ点におけるエッジコードを算出する方法を示し、図１９（ｂ）には、エッジコード画像のデータ構造の一例を示す。
【００４４】
図１９（ａ）に示すような画像に対して、Ｂ方向に走査してエッジ抽出処理を行った場合を考える。なお、エッジ抽出処理では、Ｂ方向に存在する各画素について、当該画素の濃淡値およびその周辺の画素の濃淡値に基づいてエッジ強度を検出し、Ｂ方向に対するエッジ強度のプロファイルにおける極大値がエッジとして抽出される。
【００４５】
図１９（ａ）に示す例では、エッジＥＤＧの一部として座標位置Ｅ（ｘ，ｙ）をもつエッジ点が抽出される。そして、抽出された座標位置Ｅ（ｘ，ｙ）の周辺画素の濃淡値などに基づいて、いずれの方向にエッジＥＤＧが続いているのかが判断される。概略すれば、エッジＥＤＧを構成する座標位置Ｅ（ｘ，ｙ）のエッジ点における接線ベクトルＣが算出される。この接線ベクトルＣと基準ベクトル（図１９（ａ）に示す例では、Ｂ方向）とのなす角度Ｅｃ（ｘ，ｙ）をエッジコードとして算出する。なお、この角度Ｅｃ（ｘ，ｙ）は、０°〜３６０°（あるいは、−１８０°〜１８０°）を有効範囲として定義してもよいし、０°〜１８０°を有効範囲として定義してもよい。後者の場合には、接線ベクトルＣと基準ベクトルとのなす角度差の絶対値となる。
【００４６】
なお、代替の方法として、抽出されたエッジにおける濃淡の変化方向をエッジコードと
して算出してもよい。この場合には、図１９（ａ）に示す接線ベクトルＣと直交する方向がエッジコードとなる。
【００４７】
ステップＳ６において、ＣＰＵ１１０は、抽出したエッジを細線化し、細線化エッジ画像を生成する。詳しくは、ＣＰＵ１１０は、抽出した全てのエッジに対して、当該エッジの両隣のエッジよりも強度が強いエッジのみが残るようにエッジ抽出画像を細線化することにより、細線化エッジ画像を生成する。
【００４８】
ステップＳ８において、ＣＵＰ１１０は、細線化処理されたエッジの連結を行なう。具体的には、ＣＰＵ１１０は、隣接するエッジのうち、エッジの変化方向の角度差が一定値以内のエッジを連結することにより、エッジをグループ化する。
【００４９】
ステップＳ１０において、ＣＰＵ１１０は、連結されたエッジに対してノイズ除去処理を行なうことにより、ノイズ除去後のエッジ画像を生成する。具体的には、ＣＰＵ１１０は、連結することにより得られた複数のグループのうち、構成するエッジの数が５個未満のグループを除去することにより、ノイズ除去後のエッジ画像を生成する。
【００５０】
ステップＳ１２において、ＣＰＵ１１０は、ノイズ除去後のエッジ画像について、サンプリング処理を行なう。具体的には、ＣＰＵ１１０は、除去されなかった複数のグループに対して、等間隔にモデル点を配置することにより、モデルを生成する。
【００５１】
生成されたモデルは、少なくとも、抽出されたエッジ上の複数の位置と、各当該位置におけるエッジの変化方向とにより規定される。一例として、モデルは、少なくとも、抽出されたエッジ上の点を等間隔にサンプリングすることにより得られた複数のサンプリング点（サンプリング位置）と、各サンプリング点におけるエッジの変化方向とにより規定される。なお、生成されたモデルは、メインメモリ１１２に格納される。
【００５２】
図４は、モデル登録処理における各処理により生成される画像を表した図である。以下、図４に示した各画像Ａ〜Ｅについて、図３における各ステップと対応付けて説明する。
【００５３】
図４を参照して、画像Ａは、ワーク２を撮像することにより得られたモデル画像３１０を表している。つまり、画像Ａは、図３におけるステップＳ２の処理により得られる画像を表している。モデル画像３１０は、ワーク２の表面に描かれた十字状のマークに対応する領域３１１を含む。画像Ｂは、エッジ抽出画像３２０を説明するための画像である。つまり、画像Ｂは、図３におけるステップＳ４の処理により得られる画像を表している。エッジ抽出画像３２０は、エッジ点の集合であるエッジ領域３２１を含む。
【００５４】
画像Ｃは、細線化エッジ画像３３０を表している。つまり、画像Ｃは、図３におけるステップＳ６の処理を行なった後に得られる画像を表している。画像Ｄは、ノイズ除去後のエッジ画像３４０を説明するための画像である。つまり、画像Ｄは、図３におけるステップＳ１０の処理により得られる画像を表している。
【００５５】
画像Ｅは、モデル画像３１０に基づいて生成されたモデル３５０を説明するための画像である。つまり、画像Ｅは、図３におけるステップＳ１２の処理により得られるデータを模式的に表している。モデル３５０は、複数のサンプリング点３５１を含む。なお、説明の便宜上、複数のサンプリング点３５１のうちの一部の４つのサンプリング点を、それぞれサンプリング点３５１ａ，３５１ｂ、３５１ｃ、３５１ｄと称する。
【００５６】
＜Ｃ．計測処理＞
パターンマッチング処理では、一致度のみならず、不一致度、相違度、または距離といった概念で、類似の度合（類似度）を計算する場合がある。以下では、類似度の一例として、一致度を用いた構成について説明する。なお、一致度とは、比較対象となる２つのものが、どの程度、くい違いがないかを表した度合いである。
【００５７】
画像処理装置１００は、モデル登録の処理を終了した後に、登録されたモデルと一致する領域を計測対象となるワークの画像（入力画像）において特定する処理を行なう。
【００５８】
（ｃ１．処理全体の流れ）
図５は、計測処理全体の流れを説明するためのフローチャートである。図５を参照して、ステップＳ１０２において、ＣＰＵ１１０は、計測対象のワークを撮像装置８により撮像することにより得られた画像（入力画像）を取得する。ステップＳ１０４において、ＣＰＵ１１０は、入力画像からエッジの抽出を行ない、エッジ抽出画像を生成する。また生成したエッジ抽出画像における各エッジ点のエッジコードを算出する。ステップＳ１０６において、ＣＰＵ１１０は、モデルと一致する領域を入力画像から探索（サーチ）することにより、モデルと一致する領域を入力画像において特定する。
【００５９】
ステップＳ１０８において、ＣＰＵ１１０は、探索結果に基づいて、モデルと入力画像との一致度を算出する。ステップＳ１１０において、ＣＰＵ１１０は、探索処理に基づく結果をディスプレイ１０２に出力する。ステップＳ１０６の探索処理の詳細については、後述する（図７）。
【００６０】
なお、計測対象のワーク２を撮像することにより得られた入力画像に対しては、細線化処理およびノイズ除去を行なわない。
【００６１】
図６は、計測処理における処理により生成される画像を表した図である。以下、図６に示した各画像Ａ〜Ｃについて、図５におけるステップと対応付けて説明する。
【００６２】
図６を参照して、画像Ａは、計測対象のワーク２を撮像することにより得られた入力画像５１０を表した画像である。つまり、画像Ａは、図５におけるステップＳ１０２の処理により得られる画像を表している。入力画像５１０は、ワーク２の表面に描かれた十字状のマークに対応する画像５１１を含む。また、画像Ｂは、計測対象のワーク２のエッジ抽出画像５２０を説明するための画像である。つまり、画像Ｂは、図５におけるステップＳ１０４の処理により得られた画像を表している。エッジ抽出画像５２０は、エッジ点の集合であるエッジ領域５２１を含む。
【００６３】
（ｃ２．探索処理）
図７は、図５のステップＳ１０６における探索処理における処理の流れを説明するためのフローチャートである。図７を参照して、ステップＳ６０２において、ＣＰＵ１１０は、サンプリング点３５１に対応する対応点が、入力画像５１０において抽出されたエッジ抽出領域５２１に属するか否かを、サンプリング点３５１毎に判定する。なお、対応点については、後述する（図８）。
【００６４】
ステップＳ６０６において、ＣＰＵ１１０は、サンプリング点３５１におけるエッジコードと、当該サンプリング点３５１に対応するエッジ抽出画像５２０上の対応点におけるエッジコードとの角度差を、当該対応点毎に算出する。
【００６５】
ステップＳ６０８において、ＣＰＵ１１０は、予め選択されたデータと上記算出された角度差とに基づき、サンプリング点３５１と当該サンプリング点３５１に対応する対応点との一致度（部分一致度）を算出する。ステップＳ６１０において、ＣＰＵ１１０は、複数の対応点における上記算出された一致度に基づき、モデル３５０と一致する部分を入力画像５１０（正確には、エッジ抽出画像５２０）において特定する。
【００６６】
図８は、サンプリング点と、対応点と、エッジの変化方法と、角度差とを説明するための図である。図８を参照して、（ａ）は、モデル３５０を模式的に表している。上述したように、モデル３５０は、少なくとも、複数のサンプリング点３５１と、各サンプリング点におけるエッジコードとにより規定される。また、図８（ａ）における各矢印は、各サンプリング点におけるエッジコードを表している。
【００６７】
図８（ｂ）は、エッジ抽出画像５２０上のエッジ領域５２１における対応点と、当該対応点におけるエッジの変化方向とを表した図である。複数の対応点のうちの対応点５５１ａは、複数のサンプリング点３５１のうちのサンプリング点３５１ａに対応する点である。同様に、対応点５５１ｂは、サンプリング点３５１ｂに対応する点である。対応点５５１ｃは、サンプリング点３５１ｃに対応する点である。サンプリング点３５１ｄに対応するエッジ点は存在しない。
【００６８】
また、画像Ｂにおける各矢印は、対応点におけるエッジの変化方向を表している。
ＣＰＵ１１０は、上述したように、サンプリング点３５１におけるエッジの変化方向と、当該サンプリング点に対応する対応点におけるエッジの変化方向との角度差を算出する。ＣＰＵ１１０は、具体例を挙げれば、サンプリング点３５１ａにおけるエッジの変化方向と、サンプリング点３５１ａに対応する対応点５５１ａにおけるエッジの変化方向との角度差を算出する。なお、ＣＰＵ１１０は、対応点がエッジ領域に属しているサンプリング点３５１に対してのみ、上記角度差を算出する。
【００６９】
図９は、ＣＰＵ１１０が、一致度を算出するときに利用するデータＤ９を表した図である。つまり、図９は、図７のステップＳ６０８の部分一致度算出処理に利用するデータを表した図である。
【００７０】
図９を参照して、データＤ９では、３つの歪み許容レベル（高，中，低）の各々と、角度差（具体的には角度差の範囲）とに対して、１つのサンプリング点３５１と１つの対応点との一致度を表すスコアが対応付けられている。詳しくは、データＤ９は、複数のデータＤ９１，Ｄ９２，Ｄ９３を含んで構成されている。複数のデータＤ９１，Ｄ９２，Ｄ９３の各々は、２つのエッジの変化方向の相違を表す情報と当該２つのエッジの類似度とが関連付けられている。
【００７１】
たとえば、歪み許容レベルが「高」を表すデータＤ９１は、２つのエッジの変化方向の角度差が大きくなるほど当該２つのエッジの一致度が小さくなるように角度差と一致度とが関連付けられている。
【００７２】
また、歪み許容レベルが「中」を表すデータＤ９２は、２つのエッジの変化方向の角度差が大きくなるほど当該２つのエッジの一致度が小さくなるとともに、角度差に対する一致度の関連付けがデータＤ９１とは異なる。より詳しくは、データＤ９２においては、複数の範囲（１０°以上２０°未満，２０°以上３０°未満，３０°以上４０°未満，４０°以上６０°未満）において、スコアがデータＤ９１のスコアよりも小さく設定されている。つまり、データＤ９２は、データＤ９１よりも対象物の局所的な形状変化に対する許容度合いを厳しくすることを表している。
【００７３】
また、歪み許容レベルが「低」を表すデータＤ９３は、２つのエッジの変化方向の角度差が大きくなるほど当該２つのエッジの一致度が小さくなるとともに、角度差に対する一致度の関連付けがデータＤ９１，Ｄ９２とは異なる。より詳しくは、データＤ９３においては、複数の範囲（１０°以上２０°未満，２０°以上３０°未満，３０°以上４０°未満，４０°以上６０°未満）において、スコアがデータＤ９１，９２のスコアよりも小さく設定されている。つまり、データＤ９３は、データＤ９２よりも対象物の局所的な形状変化に対する許容度合いを厳しくすることを表している。
【００７４】
なお、図９に示したデータＤ９は一例であって、データの形式および一致度を表すスコアの値は、これに限定されるものではない。たとえば、データＤ９のように角度差と対応付けられたスコアを予め記憶しておくのではなく、角度差の閾値の入力を受け付け、計測されたエッジコードとモデルのエッジコードとの角度差がその閾値未満のときのみ、スコアを１として計測対象全体の一致度にインクリメントしていくような構成でもよい。
【００７５】
また、予め定められた計算式を用いてデータＤ９（Ｄ９１，Ｄ９２，Ｄ９３）を生成するように、画像処理装置１００を構成してもよい。この場合には、画像処理装置１００は、データＤ９の代わりに当該計算式を予め記憶しておけばよい。
【００７６】
また、画像処理装置１００のＣＰＵ１１０は、ユーザからの指示に基づき、データＤ９１，Ｄ９２，Ｄ９３のうちの１つのデータを読み出し、当該読み出したデータを以下の２つの一致度の算出に利用する。
【００７７】
（I）エッジの変化方向の一致度
ＣＰＵ１１０は、閾値Ｔｈ１（たとえば、スコア＝５０）以上となる、サンプリング点３５１と当該サンプリング点に対応する対応点とについては、サンプリング点３５１のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向とが一致しているものとして取り扱う。
【００７８】
たとえば、サンプリング点３５１のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向との角度差が２５°である場合、歪み許容レベル“高”がユーザによって選択された場合、スコアが５０となる。よって、閾値Ｔｈ１以上となり、両点のエッジの変化方向とが一致しているものと判定される。一方、角度差が２５°である場合、歪み許容レベル“中”がユーザによって選択された場合、スコアが４０となる。よって、閾値Ｔｈ１未満となり、両点のエッジの変化方向とが一致していないと判定される。このように、角度差が同じであっても、使用されるデータにより判定結果が異なることになる。
【００７９】
画像処理装置１００は、サンプリング点３５１のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向との角度差に基づくスコアが閾値Ｔｈ１以上となるとき、サンプリング点３５１と当該サンプリング点３５１に対応する対応点とが一致していると判定する。つまり、このような場合、画像処理装置１００は、サンプリング点３５１の近傍（サンプリング点を含む局所的な線分）では、モデル（モデル画像）と入力画像とが一致していると判定する。また、詳細については後述するが、ＣＰＵ１１０は、エッジの変化方向が一致しているか否かに応じて、計測結果を表す画像の表示態様を変化させる。なお、ここで一致と判定されるのは方向に関してである。
【００８０】
（II）計測対象全体の一致度
ＣＰＵ１１０は、上記スコアを用いて、計測対象全体の一致度をさらに計算する。ＣＰＵ１１０は、サンプリング点３５１毎に、選択された歪み許容レベルのデータＤ９を利用して、スコアを求める。ＣＰＵ１１０は、さらに、スコアの平均値を算出する。なお、サンプリング点３５１に対応する対応点が、入力画像５１０において抽出されたエッジ抽出領域５２１に属しない場合には、当該サンプリング点３５１については、スコアを０とする。
【００８１】
ＣＰＵ１１０は、上記平均値が予め定められた閾値Ｔｈ２（たとえば、９０）以上の場合、モデルと計測対象であるワーク２とが一致していると判断する。一方、ＣＰＵ１１０は、上記平均値が閾値Ｔｈ２（たとえば、９０）未満の場合、モデルと計測対象であるワーク２とが一致していないと判断する。一例を挙げて説明すれば、以下のとおりである。なお、画像処理装置１００は、計測対象全体の一致度としてスコアの平均値を用いている。
【００８２】
サンプリング点の数を１００個、対応点の数を９６個とする。また、角度差が０°以上１０°未満のデータが６０個、角度差が１０°以上２０°未満のデータが３０個、角度差が２０°以上３０°未満のデータが６個であったとする。この場合、歪み許容レベル“高”が選択されると、平均値は、（１００×６０＋９０×３０＋５０×６＋０×（１００−９６））÷１００＝９０となる。また、歪み許容レベル“中”が選択されると、平均値は、（１００×６０＋７０×３０＋４０×６＋０×（１００−９６））÷１００＝８３．４となる。
【００８３】
したがって、歪み許容レベル“高”が選択された場合には、ＣＰＵ１１０は、モデルと計測対象であるワーク２とが一致していると判断する。一方、歪み許容レベル“中”が選択された場合には、ＣＰＵ１１０は、モデルと計測対象であるワーク２とが一致していないと判断する。
【００８４】
（ｃ３．表示処理）
図１０は、モデル画像３１０と入力画像５１０との相違を説明するための図である。図１０を参照して、画像Ａは、ワーク２を撮像することにより得られたモデル画像３１０と、図４のエッジ画像３４０におけるエッジ部分３４０１とを表している。画像Ｂは、計測対象のワーク２を撮像することにより得られた入力画像５１０を表している。画像Ａに比べると、画像Ｂでは、領域Ｐ１においてワークが歪んでいる。また、領域Ｐ２においてワークが一部の欠損している。
【００８５】
このような場合に、画像処理装置１００がディスプレイ１０２に表示させる画像について、以下説明する。なお、ディスプレイ１０２に実際に表示されるユーザインターフェイスについては、後述する（図１４〜図１８）。
【００８６】
図１１は、入力画像５１０においてモデル３５０と一致する部分と一致しない部分とを説明するための図である。具体的には、図１１は、ユーザによって、図９に基づいて説明した歪み許容レベル“低”が選択された場合の画像を表している。
【００８７】
図１１を参照して、画像処理装置１００は、ワーク２に対応する画像５１１を含む入力画像５１０に、隣接する対応点を同士を結んだ線分により構成される線画像５４０を重ねた画像１１００をディスプレイ１０２に表示する。画像処理装置１００は、線画像５４０を表示させる際、モデル３５０と一致する箇所と、モデル３５０と一致しない箇所とを、互いに異なる態様でディスプレイ１０２に表示させる。より正確には、画像処理装置１００は、線画像５４０を表示させる際、サンプリング点３５１と一致する対応点同士（隣接対応点同士）を結んだ線分と、サンプリング点３５１と一致しない対応点同士（隣接対応点同士）を結んだ線分とを、互いに異なる態様でディスプレイ１０２に表示させる。
【００８８】
また、画像処理装置１００は、モデル３５０と一致しない箇所については、エッジ領域に属していない箇所（つまり、エッジ領域に属していない対応点同士を結んだ線分）と、エッジ領域に属している箇所（つまり、エッジ領域に属している対応点同士を結んだ線分）とを、さらに互いに異なる態様でディスプレイ１０２に表示させる。
【００８９】
一例として、画像処理装置１００は、線画像５４０における、モデル３５０と一致する箇所と、モデル３５０と一致しない箇所５４１〜５４５とを、互いに異なる色でディスプレイ１０２に表示させる。また、画像処理装置１００は、モデル３５０と一致しない箇所５４１〜５４５については、対応点がエッジ領域に属していない箇所５４１，５４２と、対応点がエッジ領域に属している箇所５４３，５４４，５４５とを、さらに互いに異なる色でディスプレイ１０２に表示させる。
【００９０】
具体例を挙げれば、画像処理装置１００は、モデル３５０と一致する箇所を第１の色（たとえば緑色）で表示し、対応点がエッジ領域に属していない箇所５４１，５４２を第２の色（たとえば赤色）で表示し、対応点がエッジ領域に属している箇所５４３，５４４，５４５を第３の色（たとえば黄色）で表示する。なお、枠９００は、計測対象とする領域を表した線である。
【００９１】
図１２は、入力画像５１０においてモデル３５０と一致する部分と一致しない部分とを説明するための図である。具体的には、図１２は、ユーザによって、図９に基づいて説明した歪み許容レベル“高”が選択された場合の画像を表している。
【００９２】
図１２を参照して、画像処理装置１００は、ワーク２に対応する画像５１１を含む入力画像５１０に線画像５４０を重ねた画像１２００をディスプレイ１０２に表示する。その際、画像処理装置１００は、図１１でも説明したとおり、入力画像５１０における、モデル３５０と一致する箇所と、モデル３５０と一致しない箇所とを、互いに異なる態様でディスプレイ１０２に表示させる。また、画像処理装置１００は、モデル３５０と一致しない箇所については、対応点がエッジ領域に属していない箇所と、対応点がエッジ領域に属している箇所とを、さらに互いに異なる態様でディスプレイ１０２に表示させる。
【００９３】
一例として、画像処理装置１００は、線画像５４０における、モデル３５０と一致する箇所と、モデル３５０と一致しない箇所５４２とを、互いに異なる色でディスプレイ１０２に表示させる。また、画像処理装置１００は、モデル３５０と一致しない箇所については、対応点がエッジ領域に属していない箇所５４２と、対応点がエッジ領域に属している箇所とを、さらに互いに異なる色でディスプレイ１０２に表示させる。
【００９４】
具体例を挙げれば、画像処理装置１００は、モデル３５０と一致する箇所を第１の色（たとえば緑色）で表示し、対応点がエッジ領域に属していない箇所５４２を第２の色（たとえば赤色）で表示する。図１２においては、歪み許容レベル“高”が選択されているため、モデル３５０と一致しない箇所のうち、対応点がエッジ領域に属している箇所は存在していない。つまり、図１２においては、図１１において第３の色（たとえば黄色）で示した表示がなされないことになる。
【００９５】
このように、サンプリング点３５１に対応する対応点がエッジ領域に属している場合、画像処理装置１００は、当該サンプリング点３５１におけるエッジの変化方向と当該対応点におけるエッジの変化方向とが一致しているか否かに応じて、計測結果を表す画像の表示態様を変化させる。つまり、画像処理装置１００は、一例として、対応点がエッジ領域に属していることを条件に、エッジの変化方向が一致している箇所を緑色で表示し、エッジ方向が一致していない箇所を黄色で表示する。さらに、画像処理装置１００は、対応点がエッジ領域に属していない箇所を赤色で表示する。
【００９６】
＜Ｄ．機能的構成＞
図１３は、画像処理装置１００の機能的構成を説明するためのブロック図である。図１３を参照して、画像処理装置１００は、制御部１０１０と、記憶部１０２０とを備える。制御部１０１０は、受付部１１０１と、角度差算出部１１０５と、一致度算出部１１０６と、部分判定部１１０７と、全体判定部１１０８と、表示制御部１１０９とを備える。エッジ抽出部１１０２は、位置判定部１１０３と、方向算出部１１０４とを備える。
【００９７】
記憶部１０２０には、モデルと、データＤ９と、閾値Ｔｈ１、閾値Ｔｈ２とが予め格納されている。
【００９８】
受付部１１０１は、エッジの変化方向の許容値に関する指示を受け付ける。受付部１１０１は、典型的には、３つの歪み許容レベルの中から、１つの歪み許容レベルを選択するための指令をマウス１０４等の入力装置を介して受け付ける。つまり、データＤ９１、データＤ９２、およびデータＤ９３のうちのいずれかを指定するための指示を受け付ける。さらに、受付部１１０１は、ディスプレイ１０２に表示させるユーザインターフェイスを選択するための指示をユーザから受け付ける。当該指示は、表示制御部１１０９に送られる。
【００９９】
エッジ抽出部１１０２は、入力画像５１０のエッジを抽出する。より具体的には、入力画像５１０に含まれる、ワーク２に対応する画像５１１のエッジを抽出する。また、エッジの抽出の一環として、位置判定部１１０３が、サンプリング点３５１に対応する対応点が上記抽出されたエッジ領域に属するか否かをサンプリング点３５１毎に判定し、方向算出部１１０４が上記対応点におけるエッジの変化方向を算出する。
【０１００】
角度差算出部１１０５は、サンプリング点３５１におけるエッジの変化方向と、当該サンプリング点３５１に対応する対応点におけるエッジの変化方向との角度差を、対応点毎に算出する。
【０１０１】
一致度算出部１１０６は、選択されたデータ（たとえば、データＤ９１）と、サンプリング点３５１におけるエッジの変化方向と、当該サンプリング点３５１に対応する対応点におけるエッジの変化方向とに基づき、サンプリング点３５１当該サンプリング点３５１に対応する対応点との一致度（部分一致度）を算出する。具体的には、一致度算出部１１０６は、選択されたデータ（たとえば、データＤ９１）と上記算出された角度差とに基づき、サンプリング点３５１と当該サンプリング点３５１に対応する対応点との一致度を示すスコアを算出する。一致度算出部１１０６は、算出されたスコアを、部分判定部１１０７と全体判定部１１０８とに送る。
【０１０２】
部分判定１１０７は、サンプリング点３５１と当該サンプリング点３５１に対応する対応点との一致度に基づき、当該サンプリング点３５１と当該対応点とが一致するか否かを判定する。詳しくは、部分判定部１１０７は、複数の対応点における上記算出されたスコア（一致度）および閾値Ｔｈ１に基づき、サンプリング点３５１と、当該サンプリング点３５１に対応する対応点とが一致するか否かを判定する。より詳しくは、部分判定部１１０７は、対応する対応点が入力画像５１０のエッジ領域に属しているサンプリング点３５１と、当該サンプリング点に対応する対応点とが一致するか否かを判定する。
【０１０３】
具体的には、上記算出されたスコアが閾値Ｔｈ１以上の場合には、部分判定部１１０７は、サンプリング点３５１と、当該サンプリング点３５１に対応する対応点とが一致していると判定する。また、上記算出されたスコアが閾値Ｔｈ１未満の場合には、部分判定部１１０７は、サンプリング点３５１と、当該サンプリング点３５１に対応する対応点とが一致していないと判定する。
【０１０４】
全体判定部１１０８は、複数の対応点における算出されたスコアに基づき、入力画像５１０における特定の領域（つまり、入力画像５１０における、パターンマッチング処理の対象とした一部の領域（典型的には、抽出した矩形領域））がモデル３５０と一致するか否かを判定する。具体的には、判定部１１０８は、複数の対応点における算出された一致度と、閾値Ｔｈ２とに基づき、入力画像５１０における特定の領域がモデル３５０と一致するか否かを判定する。より具体的には、全体判定部１１０８は、複数の対応点における上記算出されたスコアの平均値（計測対象全体の一致度）と、閾値Ｔｈ２とに基づき、入力画像５１０がモデル３５０と一致するか否かを判定する。つまり、全体判定部１１０８は、計測対象であるワーク２の良否を判定する。なお、良否判定の手法は、上述したので、ここでは、繰り返し説明しない。
【０１０５】
表示制御部１１０９は、複数の対応点のうち、サンプリング点３５１に一致する対応点（以下、「一致点」とも称する）と当該サンプリング点３５１に一致しない対応点（以下、「不一致点」とも称する）とを、互いに異なる表示態様で、入力画像５１０に対応付けてディスプレイ１０２に表示させる。たとえば、表示制御部１１０９は、不一致点と一致点とを、互いに異なる色でディスプレイ１０２に表示させる。なお、ここでの不一致点は、エッジ領域に属しないと判定された対応点と、エッジ領域に属すると判定されたが上記算出されたスコアが閾値Ｔｈ１未満となった対応点とを含む。より詳しくは、表示制御部１１０９は、エッジ領域に属すると判定された複数の対応点のうち、サンプリング点３５１に一致する対応点と当該サンプリング点３５１に一致しない対応点とを、互いに異なる表示態様で、入力画像５１０に対応付けてディスプレイ１０２に表示させる。
【０１０６】
また、表示制御部１１０９は、対応点を、入力画像５１０のエッジ領域に属する場合と属さない場合とで異なる表示態様となるようにディスプレイ１０２に表示させる。たとえば、表示制御部１１０９は、エッジ領域に属する対応点と、エッジ領域に属さない対応点とを、互いに異なる色でディスプレイ１０２に表示させる。
【０１０７】
つまり、表示制御部１１０９は、複数の対応点のうち、（i）一致点（入力画像５１０のエッジ領域に属し、かつエッジの変化方向が一致している（スコアが閾値Ｔｈ１以上）の対応点）と、（ii）不一致点のうち、入力画像５１０のエッジ領域に属しない対応点と、（iii）不一致点のうち、入力画像５１０のエッジ領域に属する一方で、エッジの変化方向が一致しない（スコアが閾値Ｔｈ１未満）の対応点とを、互いに異なる表示態様（たとえば、異なる色）でディスプレイ１０２に表示させる。
【０１０８】
さらに、表示制御部１１０９は、図１１および図１２に示したとおり、入力画像５１０を表示している状態において、互いに隣接する対応点同士を結んだ線分により構成される線画像５４０を表示する。
【０１０９】
このように、表示制御部１１０９は、対応点の近傍の表示態様を、当該対応点の表示態様に応じた表示態様に設定する。たとえば、表示制御部１１０９は、上記一致点およびその近傍を、第１の色（たとえば緑色）でディスプレイ１０２に表示させる。また、表示制御部１１０９は、上記不一致点のうち、入力画像５１０のエッジ領域に属しない対応点、および当該対応点の近傍を、第２の色（たとえば赤色）で表示する。さらに、表示制御部１１０９は、不一致点のうち、入力画像５１０のエッジ領域に属するが、エッジの変化方向が一致しない対応点、および当該対応点の近傍を第３の色（たとえば黄色）で表示する。
【０１１０】
また、表示制御部１１０９は、全体判定部１１０８による良否判定結果等の各種の情報をディスプレイ１０２に表示させる（図１４〜図１８）。
【０１１１】
＜Ｅ．ユーザインターフェイス＞
画像処理装置１００がディスプレイ１０２に表示させるユーザインターフェイスについて、図１４〜図１８に基づいて説明する。
【０１１２】
（ｅ１．設定モード）
図１４は、画像処理装置１００が設定モードにおいて提供するユーザインターフェイス画面の一例を示す図である。図１４は、ユーザがパターンマッチング処理に必要な各種設定値（計測条件）を設定する際のユーザインターフェイス画面１４００を示す。
【０１１３】
図１４に示すユーザインターフェイス画面１４００では、モデル登録タブ２０２と、領域設定タブ２０６と、検出点タブ２０８と、基準設定タブ２１０と、計測パラメータタブ２１２と、出力パラメータタブ２１４とが選択可能に表示される。なお、図１４に示すユーザインターフェイス画面１４００においては、計測パラメータタブ２１２が選択されている状態を示す。また、ユーザインターフェイス画面１４００は、計測条件設定エリア２６０と、判定条件設定エリア２７０と、画像表示エリア２５０と、全体表示エリア２５２とを含む。
【０１１４】
計測条件設定エリア２６０は、エッジ抽出処理を行なう際のエッジレベル（エッジ強度）の設定ボックスと、歪み許容レベルを設定するための設定ボックスとを含む。エッジレベルを変更することにより、エッジの領域が変更される。具体的には、エッジレベルを高くすることにより、エッジ抽出画像３２０におけるエッジ幅は細くなる。エッジレベルを低くすることにより、エッジ抽出画像３２０におけるエッジ幅は太くなる。なお、エッジレベルを高くすることは、エッジ強度の閾値を高くすることを意味する。
【０１１５】
歪み許容レベルをユーザが変更することにより、図９に示したデータＤ９に含まれるデータＤ９１，Ｄ９２，Ｄ９３のうち、どのデータを利用するかが決定される。たとえば、歪み許容レベル“低”が選択された場合、データＤ９３が利用されることになる。
【０１１６】
判定条件設定エリア２７０では、本実施の形態に係るパターンマッチング処理により得られる計測結果のうち有効とされるものを設定するための判定条件を受付ける。
【０１１７】
すなわち、計測座標Ｘの数値入力ボックスに入力される数値範囲（座標範囲）は、計測座標のｘ成分についての判定条件として用いられる。また、計測座標Ｙの数値入力ボックスに入力される数値範囲（座標範囲）は、計測座標のｙ成分についての判定条件として用いられる。また、計測角度の数値入力ボックスに入力される数値範囲（角度範囲）は、計測結果の角度成分についての判定条件として用いられる。
【０１１８】
さらに、相関値の数値入力ボックスに入力される数値範囲は、各計測座標における相関値の判定条件として用いられる。また、検出数の数値入力ボックスに入力される数値範囲は、１回のパターンマッチング処理の実行により出力される最大の検出数の条件として用いられる。
【０１１９】
なお、図１４に示すユーザインターフェイス画面１４００においては、画像表示エリア２５０にエッジ抽出画像３２０が表示される。なお、画像表示エリア２５０に表示される画像は、エッジ抽出画像３２０に限定されるものではない。また、全体表示エリア２５２には、画像表示エリア２５０において表示可能な画像の全体が表示される。
【０１２０】
（ｅ２．計測モード）
（I）歪み許容レベル“低”の場合のユーザインターフェイス
図１５は、画像処理装置１００が計測モードにおいて提供するユーザインターフェイス画面の一例を示す図である。具体的には、図１５は、歪み許容レベルが“低”に設定された場合のユーザインターフェイス画面１５００を表した図である。
【０１２１】
図１５を参照して、ユーザインターフェイス画面１５００では、撮像装置８の視野内に複数のワークが存在する場合に生成する画像データに対して、上述したようなパターンマッチング処理を行うことで得られた計測結果を示す。
【０１２２】
画像処理装置１００は、入力画像に対して、予め登録されているモデルに基づくパターンマッチング処理を行うと、図１１の画像１１００を画像表示エリア１５０１に表示させる。また、画像処理装置１００は、計測結果を示す数値をディスプレイに１０２に表示させる（符号１５０２）。さらに、画像処理装置１００は、計測結果に基づくワーク２の良否判定結果（ＯＫまたはＮＧの表示）を、画面右上の領域にも表示する。図１５の例では、相関値が閾値Ｔｈ２（＝９０）以上であるため、“ＯＫ”の表示がなされている。
【０１２３】
図１６は、図１５からの遷移した後のユーザインターフェイス画面の一例を示す図である。具体的には、図１６は、図１５の状態において、ユーザ操作に基づき、画面右下のサブ画像番号において「画像３」が選択された後のユーザインターフェイス画面１６００を表している。
【０１２４】
画像３が選択されると、画像処理装置１００は、画像１１００に対して計測対象のワーク２のエッジ抽出画像５２０（図６の画像Ｂ）をオーバラップさせたユーザインターフェイス画面１６００をディスプレイ１０２に表示させる。
【０１２５】
（II）歪み許容レベル“高”の場合のユーザインターフェイス
図１７は、画像処理装置１００が計測モードにおいて提供するユーザインターフェイス画面の他の例を示す図である。具体的には、図１７は、歪み許容レベルが“高”に設定された場合のユーザインターフェイス画面１７００を表した図である。
【０１２６】
図１７を参照して、ユーザインターフェイス画面１７００では、図１５のユーザインターフェイス画面１５００と同様に、撮像装置８の視野内に複数のワークが存在する場合に生成する画像データに対して、上述したようなパターンマッチング処理を行うことで得られた計測結果を示す。
【０１２７】
画像処理装置１００は、入力画像に対して、予め登録されているモデルに基づくパターンマッチング処理を行うと、図１２の画像１２００を画像表示エリア１７０１に表示させる。また、画像処理装置１００は、計測結果を示す数値をディスプレイに１０２に表示させる（符号１７０２）。さらに、画像処理装置１００は、計測結果に基づくワーク２の良否判定結果（ＯＫまたはＮＧの表示）を、画面右上の領域にも表示する。図１７の例では、相関値が閾値Ｔｈ２（＝９０）以上であるため、“ＯＫ”の表示がなされている。
【０１２８】
図１８は、図１７からの遷移した後のユーザインターフェイス画面の一例を示す図である。具体的には、図１８は、図１７の状態において、ユーザ操作に基づき、画面右下のサブ画像番号において「画像３」が選択された後のユーザインターフェイス画面を表している。
【０１２９】
画像３が選択されると、画像処理装置１００は、画像１２００に対して計測対象のワーク２のエッジ抽出画像５２０をオーバラップさせたユーザインターフェイス画面をディスプレイ１０２に表示させる。
【０１３０】
＜Ｆ．利点＞
画像処理装置１００によれば、エッジレベル（図１４参照）および計測対象（ワーク２）の良否判定の閾値Ｔｈ２を変更することなく、モデルと計測対象全体との一致度を変更可能となる。つまり、上述したように、ユーザは、歪み許容レベルを変更することにより、１個の計測対象について、計測対象全体の一致度（スコアの平均値，相関値）を変更させることができる。このように、画像処理装置１００によれば、計測対象物（ワーク２）の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる。
【０１３１】
また、表示制御部１１０９が、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、互いに異なる表示態様（たとえば異なる色）でディスプレイ１０２に表示させることにより、ユーザは、モデルと入力画像との不一致箇所を容易に判別することができる。詳しくは、ユーザは、計測対象であるワーク２の問題のある個所を容易に把握することが可能となる。特に、不一致点の表示に関しては、表示制御部１１０９が、入力画像５１０のエッジ領域に属しない対応点と、入力画像５１０のエッジ領域に属する一方でエッジの変化方向が一致しないの対応点とを互いに異なる表示態様（たとえば異なる色）でディスプレイ１０２に表示させることにより、ユーザは、どのような原因で不一致が生じているのかを容易に判断できる。
【０１３２】
＜Ｇ．変形例＞
上記おいては、互いに異なる表示態様として、異なる色を例に挙げて説明したが、これに限定されるものではない。たとえば、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、一種類の色（たとえば、緑色）で表示するとともに、互いに異なる線種、線幅、または濃度等で表示するように、画像処理装置１００を構成してもよい。さらに、この構成の場合、不一致点の表示に関しては、入力画像５１０のエッジ領域に属さない対応点と、入力画像５１０のエッジ領域に属する一方でエッジの変化方向が一致さない対応点とを、互いに異なる線種、線幅、または濃度等で表示するように、画像処理装置１００を構成することが好ましい。
【０１３３】
また、対応点のスコアに応じて、色の濃度を変化させてもよい。具体的には、、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、互いに異なる色で表示させる際に、入力画像５１０のエッジ領域に属する一方でエッジの変化方向が一致しないの対応点および当該対応点の近傍に関しては、スコアが低い箇所（サンプリング点およびその近傍）ほど色の濃度が高くなるように、画像処理装置１００を構成してもよい。この構成によれば、ユーザは、計測対象であるワーク２において規定以上の歪みの生じている箇所における、当該歪みの程度を容易に把握できる。
【０１３４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３５】
１  視覚センサシステム、２  ワーク、４  光電センサ、４ａ  受光部、４ｂ  投光部、５  ＰＬＣ、６  搬送機構、８  撮像装置、１００  画像処理装置、１０２  ディスプレイ、１０４  マウス、１１０  ＣＰＵ、１１２  メインメモリ、１１４  ハードディスク、１１６  カメラインターフェイス、１１６ａ  画像バッファ、１２０  表示コントローラ、１２４  通信インターフェイス、２５０，１５０１，１７０１  画像表示エリア、２５２  全体表示エリア、２６０  計測条件設定エリア、２７０  判定条件設定エリア、３１０  モデル画像、３５１，３５１ａ，３５１ａ，３５１ｂ，３５１ｂ，３５１ｃ，３５１ｄ  サンプリング点、３２０，５２０  エッジ抽出画像、３３０  細線化エッジ画像、３４０，５２０  エッジ画像、３５０  モデル、５１０  入力画像、５５１ａ，５５１ｂ，５５１ｃ  対応点、９００  枠、１０１０  制御部、１０２０  記憶部、１１０１  受付部、１１０２  エッジ抽出部、１１０３  位置判断部、１１０４  方向判断部、１１０５  角度差算出部、１１０６  一致度算出部、１１０７  特定部、１１０８  良否判定部、１１０９  表示制御部、１４００，１５００，１６００，１７００  ユーザインターフェイス画面。
【図１】
2014203311.tif 000003
【図２】
2014203311.tif 000004
【図３】
2014203311.tif 000005
【図５】
2014203311.tif 000006
【図７】
2014203311.tif 000007
【図８】
2014203311.tif 000008
【図９】
2014203311.tif 000009
【図１３】
2014203311.tif 000010
【図１９】
2014203311.tif 000011
【図４】
2014203311.tif 000012
【図６】
2014203311.tif 000013
【図１０】
2014203311.tif 000014
【図１１】
2014203311.tif 000015
【図１２】
2014203311.tif 000016
【図１４】
2014203311.tif 000017
【図１５】
2014203311.tif 000018
【図１６】
2014203311.tif 000019
【図１７】
2014203311.tif 000020
【図１８】
2014203311.tif 000021