(57)【要約】 【課題】パターンマッチングを利用する画像検査工程の高速性を損なうことなく、背景やノイズ、ワークの形状等に依存せず、誤検出が少ないモデルを生成できるようにする。【解決手段】パターンマッチングの対象物が記録された参照画像を用いて複数の仮モデルを作成し、複数の仮モデルの各々と、パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、複数の仮モデルの各々と複数の評価画像の各々との間のマッチングスコアを求める。複数の仮モデルの各々について、各評価画像内において類似度が最大となる第１のマッチングスコアを集合した第１のマッチングスコア群と、類似度が第１のマッチングスコアよりも小さな第２のマッチングスコアを集合した第２のマッチングスコア群とを取得する。複数の仮モデルの各々について、第１のマッチングスコア群と第２のマッチングスコア群とから評価値を算出し、マッチングモデルを決定する。【選択図】図４
2020077397.tif 000002
【特許請求の範囲】
【請求項１】
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間のマッチングスコアを求め、前記複数の仮モデルの各々について、各評価画像内において類似度が最大となる第１のマッチングスコアを集合した第１のマッチングスコア群と、前記各評価画像内において類似度が前記第１のマッチングスコアよりも小さな第２のマッチングスコアを集合した第２のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第１のマッチングスコア群と前記第２のマッチングスコア群とから評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、
を備えたことを特徴する画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、前記マッチングスコア取得工程において、前記仮モデルと前記評価画像とのパターンマッチングによって生成されるスコアマップが複数の極大値を有する場合、マッチングスコアが第１位の極大値を前記第１のマッチングスコアとし、マッチングスコアが第２位の極大値を前記第２のマッチングスコアとすることを特徴とする画像処理方法。
【請求項３】
請求項１に記載の画像処理方法において、前記マッチングスコア取得工程において、前記仮モデルと前記評価画像とのパターンマッチングによって生成されるスコアマップの極大値が１つの場合、前記極大値を前記第１のマッチングスコアとし、スコアマップ中の最小値を前記第２のマッチングスコアとすることを特徴とする画像処理方法。
【請求項４】
請求項２に記載の画像処理方法において、前記第２のマッチングスコアが得られる第２の位置と、前記第１のマッチングスコアが得られる第１の位置との距離に閾値が設定されている場合、前記第１の位置から前記閾値以上離れた領域においてマッチングスコアが第２位の極大値を前記第２のマッチングスコアとすることを特徴とする画像処理方法。
【請求項５】
請求項１に記載の画像処理方法において、前記マッチングスコア取得工程において、前記第１のマッチングスコアが得られた評価画像中の空間的な第１の位置から、所定の距離以上離れた範囲から得られた最大のマッチングスコアを前記第２のマッチングスコアとする画像処理方法。
【請求項６】
請求項１に記載の画像処理方法において、前記マッチングスコア取得工程において、前記第１のマッチングスコアが得られた評価画像中の空間的な第１の位置に仮モデルを配置した時に、前記第１の位置に配置された前記仮モデルとの重複範囲が所定の割合以下となるような位置に前記仮モデルを配置して得られたマッチングスコアの最大値を、前記第２のマッチングスコアとする画像処理方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の画像処理方法において、前記仮モデル作成工程は、前記参照画像から前記仮モデルを作成するための仮モデル作成領域を指定するユーザの操作を受け付けるユーザインターフェース工程を含む画像処理方法。
【請求項８】
請求項１乃至７のいずれか１項に記載の画像処理方法において、前記仮モデル作成工程で、前記参照画像からエッジ点が連結した連結エッジを複数抽出し、抽出された複数の前記連結エッジの組合せにより前記複数の仮モデルを作成する画像処理方法。
【請求項９】
請求項１乃至７のいずれか１項に記載の画像処理方法において、前記仮モデル作成工程で、前記参照画像から抽出した大きさおよび／または形状の異なる複数の領域により、前記複数の仮モデルを作成する画像処理方法。
【請求項１０】
請求項１乃至９のいずれか１項に記載の画像処理方法において、前記評価工程において、前記第１のマッチングスコア群と前記第２のマッチングスコア群とから、前記第１のマッチングスコアと前記第２のマッチングスコアとの差を前記評価画像ごとに算出し、算出した前記第１のマッチングスコアと前記第２のマッチングスコアとの差の最大値もしくは最小値を前記評価値として算出する画像処理方法。
【請求項１１】
請求項１乃至９のいずれか１項に記載の画像処理方法において、前記評価工程において、前記第１のマッチングスコア群の平均値と、前記第２のマッチングスコア群の平均値と、の差を前記評価値として算出する画像処理方法。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の画像処理方法において、前記決定工程で決定されたマッチングモデルを用いてパターンマッチングを実行するパターンマッチング工程を更に含む画像処理方法。
【請求項１３】
請求項１２に記載の画像処理方法の各工程と、
前記パターンマッチング工程の結果を用いてワークの位置および姿勢を認識する認識工程と、
前記認識工程で得られた情報を用いて、前記ワークを用いて物品を生産する生産制御工程と、
を含む物品の製造方法。
【請求項１４】
請求項１２に記載の画像処理方法の各工程と、
前記パターンマッチング工程の結果を用いてワークを検査する検査工程と、
前記検査工程の検査結果に応じて、前記ワークを用いて物品を生産する生産制御工程と、
を含む物品の製造方法。
【請求項１５】
請求項１乃至１２のいずれか１項に記載の画像処理方法をコンピュータに実行させるプログラム。
【請求項１６】
請求項１５に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１７】
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成部と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間のマッチングスコアを求め、
前記複数の仮モデルの各々について、
各評価画像内において類似度が最大となる第１のマッチングスコアを集合した第１のマッチングスコア群と、
前記各評価画像内において類似度が前記第１のマッチングスコアよりも小さな第２のマッチングスコアを集合した第２のマッチングスコア群と、
を取得するマッチングスコア取得部と、
前記複数の仮モデルの各々について、前記第１のマッチングスコア群と前記第２のマッチングスコア群とから評価値を算出する評価部と、
算出された前記評価値に基づいて前記複数の仮モデルからマッチングモデルを決定する決定部と、を備えたことを特徴する画像処理装置。
【請求項１８】
請求項１７に記載の画像処理装置は、前記決定部で決定されたマッチングモデルを用いてパターンマッチングを実行するパターンマッチング部を更に有することを特徴する画像処理装置。
【請求項１９】
請求項１８に記載の画像処理装置と、
ワークを撮像した画像に対して行った前記パターンマッチング部によるパターンマッチングの結果を用いて、前記ワークに対する生産処理を実行する生産機器と、
を有する生産システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、画像処理装置、生産システム、および物品の製造方法、特に、パターンマッチングを用いた画像処理を利用する画像処理方法、画像処理装置、生産システム、および物品の製造方法に関する。
【背景技術】
【０００２】
画像処理の分野において、検出対象物体の位置を検出する方法として、パターンマッチングがよく知られている。パターンマッチングを行うには、検出対象となる物体の参照情報として、理想状態で検出対象物体を撮像した参照画像が用いられる。この参照画像は、モデル、テンプレートなどと呼ばれることがある。この参照画像から検出対象物体付近の領域のみを切り出し、パターンマッチングに用いるモデルを作成する。
【０００３】
実際の物体検出工程では、物体を検出するための被探索画像を撮像し、撮像した画像の各位置でモデルとの類似度を計算していく。この手法は、最も類似度の高かった画像の位置を検出位置とする、即ち、被探索画像の中からモデルと最も類似している位置を検出する方法である。
【０００４】
上記の類似度を計算するために、複数の方法が知られており、輝度ベースで類似度を算出する輝度値差分法（ＳＡＤ）、正規化相関法（ＮＣＣ）やエッジ特徴ベースで類似度を算出する形状パターンマッチングなどが知られている。
【０００５】
この種のパターンマッチングでは、例えば検出対象物体以外の位置を検出してしまう、誤検出が問題となることがある。例えば、検出物体の位置よりも検出物体以外の位置の方が、類似度が高くなることにより誤検出が発生する。例えば、図１（ａ）のような画像があり、円環ワーク１００の中の小さい丸の画像中の位置を検出するパターンマッチングを行うとする。図１（ａ）の１０１、１０２は、円環ワーク１００の背景などに撮影されている他のワークなどの画像である。この場合、図１（ｂ）のようなモデル１０１２の画像を作成することがある。図１（ｂ）のモデル１０１２では、テンプレートから円環ワーク１００の小さい丸の部分１０１１の部分だけを切り出した画像でモデル１０１２を作成している。このようなモデル１０１２を用いると、図１（ａ）の円環ワーク１００とは別に撮影されている丸の位置（１０１）を誤検出してしまうことがある。このような誤検出（誤検知）を防止するためには、ユーザは、円環ワーク１００の円環部分も含めるよう、モデルの画像を作成しなければならない。
【０００６】
上記のように、どのような物体の形状をモデルにするか、テンプレートからどの領域を切り出して用いるか、などによって、誤検出の頻度が変わってくる。そのため、従来では、パターンマッチングのためのモデルを作成する際には、試行錯誤が必要であり、またユーザの経験則に基づく微妙な設定が要求されることもあり、作業には習熟が必要とされる。
【０００７】
また、この種のパターンマッチングは、物品の生産ラインにおけるワークや生産機器を撮影した画像に対して実行され、その結果が監視、生産制御などに利用されることがある。このようなシステムにおいて誤検出が発生した場合、不良品が発生したり、生産機器の誤動作による故障などが起きる可能性がある。そのため、誤検出が生じにくく、確実なパターンマッチングを行えるモデルを作成する手法やシステムが望まれている。
【０００８】
この点に鑑み、特許文献１では、撮像した画像に対し、予め用意した複数の異なるモデルの全てでパターンマッチングを実行する方法が提案されている。この場合、複数の検出位置の中でモデルの重なりが大きい位置を検出位置とする。そして、複数のモデルでパターンマッチングを行うことにより、誤検出の確率を下げる方法が記載されている。
【０００９】
また、特許文献２では、複数のモデルを作成し、評価用画像にてパターンマッチングを実行し、その際、評価用画像の各位置での類似度(スコア)を記憶しておく。そして、モデル毎のスコア分布を作成し、このスコア分布の分散値を比較することにより、誤検知しづらいモデルを選定する。この特許文献２では、例えば、スコア分布の分散値が最も大きいモデルが誤検知しづらいモデルとして選ばれ、実際の物体検出工程では、選定されたモデルのみでパターンマッチングを実行することにより誤検出を回避する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−１６５３９４号公報
【特許文献２】特開２００１−１４８０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記の特許文献１の構成によると、実際の画像検査工程で複数のモデルでパターンマッチングを実行するため、モデルの数だけ処理時間が増大する。パターンマッチングは、様々な用途で使用されているが、特に工業用、ＦＡ用途では生産のサイクルタイムの短縮が重視されている。このような高速な処理が求められる用途には特許文献１の構成は向いていない可能性がある。
【００１２】
また、特許文献２の構成によると、スコア分布の分散値の大小により、モデルを評価する。しかしながら、様々な生産システムで撮影される画像の全てについて、スコア分布の分散値が大きい方が誤検知しづらいモデルとは必ずしも言えない可能性がある。特許文献２の技術では、誤検知の可能性が小さい場合は、スコアが正解位置のみ高くなり、他の位置では低くなることにより分散値が大きくなることを前提としている。また、誤検知の可能性が高い場合は、スコア分布が全体的に高くなることにより分散値が小さくなることを前提としている。しかし、生産システムで撮影される実際の画像では背景やノイズ、ワークの形状等によってスコア分布の形状は大きく異なっており、特許文献２のようなスコア分布の分散値を用いた評価基準は汎用性や一般性を有していない可能性がある。例えば、実際の生産システムで撮影される画像では、複数のピークが出るような誤検出の可能性が高いスコア分布で分散値が大きくなる場合がある、と予想される。
【００１３】
本発明の課題は、パターンマッチングを利用する画像検査工程の高速性を損なうことなく、背景やノイズ、ワークの形状等に依存せず、誤検出が少ないモデルを生成できるようにすることにある。
【課題を解決するための手段】
【００１４】
本発明の第一の態様は、パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間のマッチングスコアを求め、前記複数の仮モデルの各々について、各評価画像内において類似度が最大となる第１のマッチングスコアを集合した第１のマッチングスコア群と、前記各評価画像内において類似度が前記第１のマッチングスコアよりも小さな第２のマッチングスコアを集合した第２のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第１のマッチングスコア群と前記第２のマッチングスコア群とから評価値を算出する評価工程と、算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を備えたことを特徴する画像処理方法である。
【００１５】
また、本発明の第二の態様は、パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成部と、前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間のマッチングスコアを求め、前記複数の仮モデルの各々について、各評価画像内において類似度が最大となる第１のマッチングスコアを集合した第１のマッチングスコア群と、前記各評価画像内において類似度が前記第１のマッチングスコアよりも小さな第２のマッチングスコアを集合した第２のマッチングスコア群と、を取得するマッチングスコア取得部と、前記複数の仮モデルの各々について、前記第１のマッチングスコア群と前記第２のマッチングスコア群とから評価値を算出する評価部と、算出された前記評価値に基づいて前記複数の仮モデルからマッチングモデルを決定する決定部と、を備えたことを特徴する画像処理装置である。
【発明の効果】
【００１６】
本発明によれば、画像検査工程の高速性を損なうことなく、背景やノイズ、ワークの形状等に依存せず、誤検出が少ないモデルを生成し、該モデルを用いて信頼性の高いパターンマッチングを利用した画像処理を実施することができる。
【図面の簡単な説明】
【００１７】
【図１】（ａ）複数のワークが撮影された画像の一例。（ｂ）パターンマッチング処理に用いるモデルの一例。
【図２】実施形態に係る生産システムの概略構成を示した説明図である。
【図３】実施形態に係る画像処理装置の構成を示したブロック図である。
【図４】本発明の実施形態１に係るパターンマッチングモデルの作成処理を示したフローチャート図である。
【図５】本発明の実施形態１に係る仮モデル作成処理を示したフローチャート図である。
【図６】本発明の実施形態１に係るエッジ抽出処理を示した説明図である。
【図７】本発明の実施形態１に係る特徴画像を示した説明図である。
【図８】本発明の実施形態１に係る連結エッジの抽出を示した説明図である。
【図９】（ａ）連結エッジからなる１つの仮モデルの例。（ｂ）連結エッジの組み合わせからなる他の仮モデルの例。（ｃ）連結エッジの別の組み合わせからなる更に別の仮モデルの例。
【図１０】本発明の実施形態１に係る仮モデルの評価値算出処理を示したフローチャート図である。
【図１１】本発明の実施形態１に係る画像処理におけるパターンマッチング処理を示した説明図である。
【図１２】本発明の実施形態１に係る評価値算出におけるスコアマップを示した説明図である。
【図１３】本発明の実施形態１に係る評価値算出における最大検出スコアの位置近傍か否かの判定処理の一例を示した説明図である。
【図１４】本発明の実施形態１に係る評価値算出方法を説明する表図である。
【図１５】本発明の実施形態１に係る評価値算出方法を説明する表図である。
【図１６】本発明の実施形態２に係る仮モデル作成処理を示したフローチャート図である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１９】
＜実施形態１＞
図２は、本実施形態に係る生産システムの概略構成を示している。図２の生産機器２００は、ワークＷ１（対象物）をワークＷ２（被組み付け部材）に組付けて、物品Ｗを製造する。生産機器２００は、ロボット４０１と、撮像装置としてのカメラ５００と、カメラ５００と有線ないし無線で通信するよう構成された画像処理装置３００と、を備えている。また、生産機器２００は、ロボット４０１および画像処理装置３００に、ネットワークや制御線で接続されたロボット制御装置４００を備えている。
【００２０】
ロボット４０１は、例えば垂直多関節型のロボットアーム４０２と、エンドエフェクタであるロボットハンド４０３と、を有している。ロボットアーム４０２は、複数のリンクが複数の関節で旋回可能に連結された構成を備える。ロボットアーム４０２の基端（基端リンク、ベース部）が基台Ｂの上面に固定されている。また、ロボットアーム４０２の先端（先端リンク）には、ロボットハンド４０３が取り付けられている。ロボットハンド４０３は、複数のフィンガを有し、ワーク（対象物）Ｗ１を把持、または把持解放することができる。
【００２１】
カメラ５００は例えばデジタルカメラによって構成される。カメラ５００の画像センサは、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などのイメージセンサによって構成される。
【００２２】
画像処理装置３００は、カメラ５００の撮像動作（例えば撮像タイミングやシャッタースピード等）を制御し、カメラ５００から撮像画像を取得する。また、画像処理装置３００は、デジタル画像データに対して画像処理を施し、その結果をロボット制御装置４００に出力する。この画像処理として、画像処理装置３００は、パターンマッチング処理を行う。
【００２３】
図２のように構成された生産ラインでは、パターンマッチングは、ワークＷ１、Ｗ２の全体ないしその一部、ロボットアーム４０２の特定部位などの実際の位置、ないし姿勢を検出ないし測定するために行われる。そのため、このパターンマッチングには、ワークＷ１、Ｗ２、ロボットアーム４０２などの特定部位をマッチングするためのモデルが用いられる。画像処理装置３００は、その画像処理結果をロボット制御装置４００に出力する。この時のロボット制御装置４００に対する出力データの形式は任意であるが、例えば、グローバル座標系や撮影画像の座標系における測定対象の特定部位の座標値などが考えられる。カメラ５００の配置位置とロボットアーム４０２が動作する作業空間の位置関係は既知であり、例えば撮影画像の座標系と、ロボットアーム４０２の作業空間のグローバル座標系の間では座標変換演算が可能であるものとする。このような座標変換演算は、画像処理装置３００ないしロボット制御装置４００によって適宜行われる。
【００２４】
ロボット制御装置４００は、画像処理装置３００による画像処理の結果に基づき、ロボット４０１の動作を制御する。例えば、ワークＷ１、Ｗ２を結合する操作では、ロボット制御装置４００は画像処理から得られた両ワークの位置関係を参照して、両者が所定の位置関係で結合されるよう、ロボットアーム４０２、ロボットハンド４０３の位置、姿勢を制御する。
【００２５】
図３は、本実施形態の画像処理装置３００の構成の一例を示している。図３の画像処理装置３００は、画像処理、具体的にはパターンマッチング処理を行うものであり、例えばＰＣ（パーソナルコンピュータ）のようなアーキテクチャを利用して構成することができる。画像処理装置３００は、演算部（制御装置）としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１を備えている。また、画像処理装置３００は、記憶部として、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０４を備えている。また、画像処理装置３００は、記録ディスクドライブ３０５および各種のインタフェース３１１〜３１５を備えている。
【００２６】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５およびインタフェース３１１〜３１５が、バス３１０を介して接続されている。
【００２７】
ＲＯＭ３０２には、ＢＩＯＳ等の起動プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ３０４には、プログラム３２１が格納（記録）されている。そして、ＣＰＵ３０１がプログラム３２１を読み出して実行することにより、後述する画像処理方法の各工程を実行する。記録ディスクドライブ３０５は、記録ディスク３２２に記録された各種データやプログラム等を読み出すことができる。記録ディスク３２２は、各種の磁気ディスクや光ディスクの他、半導体メモリデバイスなどであっても構わない。この記録ディスク３２２が、本発明の制御手順を記述した画像処理プログラムを格納している場合は、記録ディスク３２２は、本発明のコンピュータ読み取り可能な記録媒体を構成することになる。
【００２８】
インタフェース３１１には、ロボット制御装置４００が接続されている。ＣＰＵ３０１は、バス３１０およびインタフェース３１１を介して画像処理結果をロボット制御装置４００に送信する。ロボット制御装置４００により制御されるロボットアーム４０２は、画像処理装置３００のパターンマッチングの結果を用いて、ワークＷ１、Ｗ２に対する生産処理を実行する生産機器を構成する。画像処理装置３００のパターンマッチングは、例えばワークＷ１、Ｗ２の相対的な位置および姿勢を認識してこれらの組み付けを行うロボットアーム４０２による生産処理の制御に用いられる。あるいは、画像処理装置３００のパターンマッチングは、例えばワークＷ１、Ｗ２の個々、あるいはそれらが一体化されたアセンブリの検査のためなどに行われるものであってもよい。その場合、その検査結果に応じて、ロボットアーム４０２による生産処理、例えばワークやアセンブリの搬送先の変更などを制御することができる。画像処理装置３００のパターンマッチングを用いた画像処理は、物品の生産システム（ライン）において、上記のような生産処理制御に種々の形態で利用することができる。
【００２９】
インタフェース３１２には、カメラ５００が接続されている。ＣＰＵ３０１は、バス３１０およびインタフェース３１２を介して、トリガ信号等の制御信号をカメラ５００に送信する。ＣＰＵ３０１は、カメラ５００からの画像信号をバス３１０およびインタフェース３１２を介して取得する。取得した画像データは、ＣＰＵ３０１の制御に基づき、例えばＨＤＤ３０４や外部記憶装置８００など記憶装置に格納する。
【００３０】
インタフェース３１３には、マウスやキーボードなど、作業者が行った操作に応じた指令をＣＰＵ３０１に送信する入力装置６００が接続されている。インタフェース３１４には、画像を表示するディスプレイ等の表示装置７００が接続されている。インタフェース３１５には、ＵＳＢメモリ等の書き換え可能な不揮発性メモリ、あるいは外付けＨＤＤ等の外部記憶装置８００が接続される。
【００３１】
以下、画像処理装置３００によるモデル作成、およびパターンマッチングによる画像処理の流れにつき説明する。画像処理装置３００のＣＰＵ３０１は、プログラム３２１をＨＤＤ３０４から読み出して実行することにより、以下の画像処理方法の各工程を実行する。
【００３２】
図４は、モデル作成処理の概要を示している。図４において、作業者ないしこのシステムのユーザであるオペレータは、パターンマッチング用のモデルを作成するための参照画像を用意するために、実際に生産ラインで生産を行なう時と同様の照明条件、位置に検出対象となるワークをセットする。ＣＰＵ３０１は、カメラ５００にワークの撮像を行わせ、ワークが撮影された参照画像としての画像データをカメラ５００から取得する（Ｓ１００）。
【００３３】
なお、この参照画像は、既にＨＤＤ３０４や外部記憶装置８００等の記憶装置に格納されていてもよく、その場合は、ＣＰＵ３０１は、ＨＤＤ３０４や外部記憶装置８００等の記憶装置から、参照画像のデータを取得することとなる。参照画像は、生産ラインにおける監視処理における実際の撮影と同じ条件で撮影されているものとする。
【００３４】
ＣＰＵ３０１は、参照画像を表示装置７００に表示させ、オペレータにより指定された、参照物（ワーク）が写り込んだ部分もしくは参照物の特徴的な部分を包含する矩形領域を仮モデル作成領域として設定する（Ｓ２００）。この仮モデル作成領域を設定する時には、オペレータは、例えば、マウス等の入力装置６００を用いたユーザインターフェースを利用することができる。仮モデル作成領域の設定は、ユーザが表示装置７００に表示された参照画像内の参照物が写り込んだ画像を包含する領域の左上と右下の２点をクリックするような操作により行う。
【００３５】
ＣＰＵ３０１は、ステップＳ２００では、仮モデルを作成する領域として、クリックされた２点の位置（矩形領域の左上、右下の角の点）から矩形領域を設定する。設定した仮モデル作成領域の位置、形状は、ＲＡＭ３０３もしくはＨＤＤ３０４に記憶させておく。なお、以上では矩形領域での設定方法を説明したが、３点をクリックすることにより円領域を設定したり、クリック点間を結ぶ任意領域を設定したりしても良く、領域の設定は矩形に限定されるものではない。
【００３６】
次に、仮モデルの作成方法について説明する。図５は仮モデル作成工程（図４：ステップＳ３００）の処理例を詳細に示したものである。この仮モデル作成工程を実行するＣＰＵ３０１は、例えば画像処理装置３００において仮モデル作成部としての機能ブロックを構成する。図５のステップＳ３０１において、ＣＰＵ３０１は、ステップＳ１００で取得した参照画像内のステップＳ２００で設定した領域について、エッジ点が連結した連結エッジを抽出する処理を実施する。以下にこの連結エッジ抽出処理（ステップＳ３０１）の詳細につき説明する。
【００３７】
ＣＰＵ３０１は、連結エッジ抽出対象の参照画像領域において、画素毎にエッジ強度とエッジ方向を算出する。エッジ強度とは、コントラストの大きさ（輝度の変化の急峻さ）を表し、注目画素に対し隣接する画素のコントラストが大きければエッジ強度も大きくなる。エッジ方向とは、コントラストの方向を表し、注目画素のエッジ強度が最も大きくなる方向（角度）を示す。エッジ強度の算出には、例えばｘ軸方向（画像の横軸方向）、ｙ軸方向（画像の縦軸方向）のソーベルフィルタを使用する。
【００３８】
図６は、参照画像領域Ｉｍに対してエッジ強度とエッジ方向の抽出処理を行う動作を示したものである。この抽出処理では、ＣＰＵ３０１は、図６の参照画像領域Ｉｍ中の注目画素Ｃで、まずｘ軸方向のエッジ強度Ｅｘとｙ軸方向のエッジ強度Ｅｙを算出する。このエッジ強度のベクトルは、（Ｅｘ，Ｅｙ）で表される。
【００３９】
そして、ＣＰＵ３０１は、注目画素Ｃのエッジ強度Ｅを、例えば下式（１）のように、各軸のエッジ強度Ｅｘ，Ｅｙの二乗和の平方根として算出する。
【００４０】
【数１】
2020077397.tif 000003
【００４１】
また、ＣＰＵ３０１は、エッジ方向θを、下式（２）により算出する。
【００４２】
【数２】
2020077397.tif 000004
【００４３】
そして、ＣＰＵ３０１は、上記方法により参照画像領域Ｉｍの全画素のエッジ強度とエッジ方向を算出する。さらに、ＣＰＵ３０１は、エッジ強度がある一定の閾値以上の画素をエッジ特徴（エッジ点）として抽出し、複数のエッジ点の集合であるエッジ特徴画像を生成する。
【００４４】
図７は、エッジ特徴画像ＩＴの例を示している。図７では、エッジ特徴画像ＩＴにおいて、エッジ強度がある一定の閾値以上のエッジ特徴を示す画素をエッジ点として黒で図示し、エッジ強度が閾値未満の画素を非エッジ点として白で図示している。
【００４５】
エッジ特徴画像ＩＴのデータ保持方法としては、例えば以下のように、画像の画素毎に２チャンネルのデータ領域をＲＡＭ３０３などの記憶領域に確保する。そして、例えば図７のようにエッジ点として抽出された画素Ｃ１の場合は、１チャンネル目にエッジ強度、２チャンネル目にエッジ方向の情報を格納する。また、非エッジ点であると判断された画素Ｃ２には、エッジ特徴を示さないことを表す値（例えば０）を格納する。これらエッジ点を示す画素Ｃ１の集合ΣＣが、エッジ特徴画像ＩＴである。
【００４６】
なお、エッジ強度のみを記憶したエッジ強度画像、エッジ方向のみを記憶したエッジ方向画像の２つの画像を、１組の特徴画像として用いるようにしてもよい。また、本実施形態では、エッジ強度の算出にソーベルフィルタを使用しているが、キャニーフィルタ等の一般的に知られたエッジ抽出フィルタを使用してもよい。
【００４７】
次に、エッジ点が連結した連結エッジを抽出し、連結エッジごとにラベリングを行う。前述したエッジ抽出処理によりエッジ点として抽出された画素の隣４方向、もしくは斜めをいれた８方向を探索し、エッジ点である画素同士が隣り合っていれば同じ連結エッジの連結成分として記憶していく。これにより、個々の連結成分が１つのまとまりとしてラベリングされた連結エッジを抽出することができる。図８に例示する画像８０００において線で表した部分が抽出された連結エッジだとすると、８０１〜８０５の５つの連結エッジが抽出されたことになる。
【００４８】
そして、図５のＳ３０４Ａにおいて、連結エッジの１つの組み合わせについて仮モデルを作成する。さらにＳ３０２〜Ｓ３０４Ｂのループを繰り返すことにより、連結エッジの全ての組合せ方法について仮モデルを作成する。つまり、ステップＳ３０１で抽出した連結エッジについて、図９（ａ）〜図９（ｃ）に示すように連結エッジの組合せを変更しながら（Ｓ３０３）、仮モデルを作成する(Ｓ３０４Ｂ)。例えば、図９（ａ）に示す仮モデル９０１は、５つの連結エッジのうち連結エッジ８０２を選ぶ組み合わせ方法についての仮モデルである。また、図９（ｂ）に示す仮モデル９０２は、連結エッジ８０１と連結エッジ８０２を選ぶ組み合わせ方法についての仮モデルである。また、図９（ｃ）に示す仮モデル９０３は、連結エッジ８０１、連結エッジ８０３および連結エッジ８０５を選ぶ組み合わせ方法についての仮モデルである。
【００４９】
例えば、図８に示すように５本の連結エッジが抽出された場合は、５本の連結エッジの組み合わせ方法の全てについてパターンマッチング用の仮モデルを作成し、ＨＤＤ３０４などに記憶していく。全ての連結エッジの組合せに対する仮モデルを作成したか否かはステップＳ３０２で判定され、全ての連結エッジの組合せに対して仮モデルを作成した場合はこの処理を終了する。
【００５０】
５本の連結エッジが抽出された場合、５本全ての連結エッジを選択して仮モデルとすることもできるし、１本の連結エッジのみを選択して仮モデルとすることもできる。５本の連結エッジの場合、連結エッジの組合せ方法の数は例えば下式（３）で算出でき、３１通りとなる。つまり、５本の連結エッジが抽出された場合は３１通りの仮モデルが作成されることになる。
【００５１】
【数３】
2020077397.tif 000005
【００５２】
次に、上記のようにして作成した複数の仮モデルの各々について評価値を算出する評価値算出工程(図４：Ｓ４００)を行う。この評価値算出工程(Ｓ４００)は、図１０に示すように、複数の仮モデルの中から１つを選択し、その仮モデルの評価値を算出する処理を全ての仮モデルに対して順に実行することにより行う。なお、この評価値算出工程を実行するＣＰＵ３０１は、例えば画像処理装置３００において評価部としての機能ブロックを構成する。
【００５３】
図１０のステップＳ４０１では、作成した複数の仮モデルの中から一つの仮モデルを選択する。選択した仮モデルと予め用意した複数の評価用画像の中の１枚とで、パターンマッチングを実行する。評価用画像は実際にワーク等の検出対象を撮影した画像であり、実験時に生産機器２００と同様の系で撮影した画像もしくは生産中に保存しておいた実画像等を使用する。
【００５４】
すなわち、マッチングスコア取得工程として、ＣＰＵ３０１は、ＨＤＤ３０４に保存されている複数の評価用画像から１枚を読込み、選択した１つの仮モデルを用いてパターンマッチングを実行する（Ｓ４０２）。例えば、パターンマッチングの手法は次のようなものである。最初に、評価画像に対しエッジ抽出を行い、評価画像内に存在するエッジを含んだ評価用エッジ画像Ｉｓを作成する。エッジ抽出処理の手法は、前述した参照画像に対するエッジ抽出処理と同様でよい。図１１に示すように、現在、選択されている仮モデルと同じ大きさの抽出窓を評価用エッジ画像ＩＳ内に置いて、評価用エッジ画像ＩＳから仮モデルに対応する大きさの画像ＩＩを抽出する。仮モデルと同じ大きさの抽出窓は、ピクセル単位で位置をずらしながら、次々に画像ＩＩを抽出する。このようにして抽出した画像ＩＩと仮モデルとの類似度を表すマッチングスコアＲを下式（４）により求める。なお、以下では、簡略化のため、類似度を表すマッチングスコアを単に「スコア」と記載することがある。
【００５５】
【数４】
2020077397.tif 000006
【００５６】
即ち、仮モデルの一つのエッジ画素と抽出した評価用エッジ画像の一つのエッジ画素のエッジ方向差分のコサイン値を求めることにより、エッジ点１点の局所スコアを算出する。この処理を全てのエッジ画素について行うことにより、全エッジ点の局所スコアを算出し、さらにその総和を算出することができる。この局所スコアの総和を仮モデルのエッジ点数で割ることにより、最終的なスコアとして−１から１の範囲に正規化した値を得ることができる。
【００５７】
上記式４の画像内の位置（ｉ、ｊ）は、図１１に（ｉ、ｊ）で示す位置、すなわち評価用エッジ画像から仮モデルに対応する大きさの画像を抽出した評価用エッジ画像内の位置に相当する。全ての平行移動の範囲で抽出窓を移動させ、このマッチングスコアＲの計算を行う。スコアは−１から１で表され、１が最も類似性が高く、−１が最も類似性が低いことを示す。
【００５８】
なお、仮モデルの評価用のスコアの計算方法は任意であり、上記と異なるスコア計算手法を用いてもよい。例えば、モデルと評価用エッジ画像のｘ方向エッジ強度、ｙ方向エッジ強度から、下式（５）のようにして、マッチングスコアを算出してもよい。
【００５９】
【数５】
2020077397.tif 000007
【００６０】
評価用エッジ画像内の全ての探索位置でのスコア計算が完了したら、当該仮モデルを使ったパターンマッチングが終了となる。全ての探索位置でのスコア計算が完了していなければ、次の探索位置（ｉ、ｊ）に抽出窓を進めて、マッチングスコアの計算を続行する。本実施例では簡略化のためモデルの平行移動のみを検出するパターンマッチング方法を説明したが、同様の方法で、モデルの回転やスケール変化等を検出するパターンマッチングも適用可能である。
【００６１】
前述したパターンマッチングを実行する際に、所定の閾値以上のマッチングスコアが算出された場合、そのマッチングスコアＲと位置（ｉ、ｊ）をＲＡＭ３０３に記憶させる。これにより、図１２に示すように、ある評価用画像に対するスコアマップが生成される。所定のスコア閾値を−１に設定すれば評価用画像内の全ての位置のスコアを含んだスコアマップが生成されることになる。
【００６２】
さらに、ＣＰＵ３０１は、ＲＡＭ３０３に一時的に記憶しておいたスコアマップから最大検出スコア（第１位の検出スコア）と、最大検出スコアが得られた第１の位置から離れた第２の位置で得られた第２位の検出スコアを抽出する(図１０：Ｓ４０３)。抽出したこれらのスコアは記憶手段、例えばＲＡＭ３０３などに記憶させる。以下に前記２つのスコアの抽出方法を詳細に示す。
【００６３】
最大検出スコア（第１位の検出スコア）とは、図１２に１２０１で示す山の頂点のように、スコアマップの中で示されるマッチングスコアＲの最大値である。即ち、この最大検出スコアは、当該の評価画像で得られた類似度が第１位の値を有する第１のマッチングスコアである。
【００６４】
また、第１のマッチングスコアが得られた評価画像中の空間的な位置とは異なる評価画像中の位置で得られた第２のマッチングスコアを取得する。この第２のマッチングスコアは、例えば図１２に示すように、最大検出スコアが検出された頂点を含む山１２０１とは別の第２位の高さの山１２０２の頂点における検出スコアである。最大検出スコアは１番目に大きな極大値であるが、第２のマッチングスコアは２番目に大きな極大値であると言ってもよい。なお、スコアマップに極大値が１つしか表れない場合は、スコアマップ中の最小値を第２のマッチングスコアとする。
マッチングの精度誤差やノイズによる誤差、個体差による誤差等が大きいと、同じ位置におけるマッチングスコアがずれて複数個所に現れるが場合がある。そのような場合には最大検出スコアが検出された山１２０１の第１の位置からある閾値（所定距離）以上、離間した位置において、最大となるマッチングスコアを第２のマッチングスコアとするのが好ましい。第１の位置と第２の位置との離間距離の閾値は、マッチングの精度誤差やノイズによる誤差、個体差による誤差等に基づく値を算出して予め設定しておいてもよいし、ユーザが任意に設定してもよい。例えば、最大検出スコアが検出された山１２０１の位置から画像のＸ、Ｙ方向に１０画素以内の位置を最大検出スコア近傍の範囲として定義することができる。この場合は、空間的に１０画素を超えて離間した範囲内における最大のスコアを抽出して第２のマッチングスコアとしてもよい。
【００６５】
所定の距離は、必ずしも最大検出スコアの位置を中心として所定の画素数以上、離間した位置であることを条件としなくてもよい。例えば、図１３に示すように、最大検出スコアの位置１３０１と第２位の位置１３０２に仮モデルを配置し、その２つの仮モデルの画像範囲の重複する態様によって、近傍を除いた範囲に該当するかを判定してもよい。２つの仮モデルの重なり具合(重複割合)は、例えば仮モデルの面積Ｍと、２つの仮モデルの重なった部分の面積ＮとからＮ／Ｍで算出する。この重複度(重複範囲)が所定の重複範囲以下（例えば所定の閾値以下）であれば、第２の検出スコアの位置が最大検出スコアの位置から所定の距離以上、離れていると判定する。重複度の所定の閾値を０．５に設定した場合は、最大検出スコアの位置に配置した仮モデルとその他の位置の仮モデルが５０％以上重なったら閾値より近いとみなす。また、５０%より小さければ最大検出スコア位置から閾値以上、離れているとみなし、その位置で得られたスコアを第２のマッチングスコアとして採用する。
【００６６】
以上のようにして、ある１つの評価画像とある１つの仮モデルから、画像の類似度に相当するマッチングスコアに関して、第１位のマッチングスコアと第２位のマッチングスコアを取得することができる。取得した第１位のマッチングスコアと、第１位のマッチングスコアが得られた位置から離れた位置で得られた第２位のマッチングスコアは、ＲＡＭ３０３に記憶させる。このマッチグスコア取得工程を実行するＣＰＵ３０１は、例えば画像処理装置３００においてマッチングスコア取得部としての機能ブロックを構成する。
【００６７】
そして、ＣＰＵ３０１は、用意した全ての評価用画像に対して同様の処理を行ったか確認（Ｓ４０４)しながら、上記のステップＳ４０２、Ｓ４０３を実行する。取得した第１位のマッチングスコアの集合である第１のマッチングスコア群と、第２位のマッチングスコアの集合である第２のマッチングスコア群はＲＡＭ３０３に記憶させる。ステップＳ４０４で全ての評価用画像の処理を確認すると、次のステップＳ４０５に進む。以上のようにして、ある１つの仮モデルについて、複数の評価画像を用いて、第１のマッチングスコア群と第２のマッチングスコア群を取得することができる。
【００６８】
ある１つの仮モデルについて全ての評価用画像に対しての処理が完了すると、当該仮モデルについての第１のマッチングスコア群と第２のマッチングスコア群の表(テーブルデータ)を得ることができる。例えば図１４のように、各評価用画像ごとに抽出した第１位と第２位のマッチングスコア群の表(テーブルデータ)がＲＡＭ３０３上に得られる。図１４では評価用画像が５枚の場合の例を示している。１４０１は評価用画像を識別する番号、１４０２、１４０３はそれぞれその評価用画像における第１位のマッチングスコア（最大検出スコア）と、その最大検出スコアの位置から所定距離以上、離間した位置における第２位のマッチングスコアの値である。
【００６９】
図１０のステップＳ４０５では、ＣＰＵ３０１は、ステップＳ４０１で選択した特定の仮モデルについての評価値を以下のようにして算出する。例えば、この仮モデルについての評価値は、ステップＳ４０４までの処理で作成した図１４のスコアの表(テーブルデータ)に基づき算出する。
【００７０】
図１５は、この１つの仮モデルに対する評価値の演算結果を示している。図１５において、１５０１は評価用画像を識別する番号、１５０２、１５０３はそれぞれその評価用画像における最大検出スコアと、その最大検出スコアの位置から離間した（近傍以外）の第２位のスコアの値である。また、１５０４はこれら最大検出スコアと第２位のスコアの差分、１５０５は各評価用画像の最大検出スコアと第２位のスコアの平均値、最大値、最小値である。
【００７１】
本実施形態では、例えば、ある仮モデルに対する評価値として、複数の評価用画像で得られた、最大検出スコアと、最大検出スコアが検出された位置から離間した（近傍以外）の第２位のスコアとの差分の最小値を採用する。例えば、図１５に評価値の演算結果を示した仮モデルの例では、３番目の評価用画像で得られた差分（１５０４）が最も小さく、この仮モデルの評価値は、０．２５となる。
【００７２】
なお、仮モデルに対する評価値の演算手法は、他にも考えられる。例えば、評価値の算出方法の一つは、各画像の最大検出スコアの平均値と最大検出スコアが検出された位置の近傍以外の第２のスコアの平均値をそれぞれ算出し、その差分を評価値とする手法である。この手法によると、図１５に評価値の演算結果を示した仮モデルの場合は、１５０５に示されるように、２つの平均値、０．９５２と０．５７２の差分である０．３８がこの仮モデルの評価値となる。
【００７３】
評価値の算出方法の他の一つは、各画像の最大検出スコアの最小値と、最大検出スコアが得られた位置の近傍以外で得られた第２のスコアの最大値をそれぞれ算出し、その差分を評価値とするものである。この手法によると、図１５に評価値の演算結果を示した仮モデルの場合は、１５０５に示されるように、０．８７と０．６７の差分となるため、０．２がこの仮モデルの評価値となる。仮モデルに対する評価値の演算手法は、上記のいくつかの手法以外の手法を当業者が適宜採用して構わない。例えば、図１５の表の値を使用して、適宜、１つの仮モデルに対し１つの評価値を算出する。
【００７４】
さらに、ＣＰＵ３０１は、図１０のステップＳ４０１からＳ４０５の処理を、用意した全ての仮モデルに対して実行する。そして、全ての仮モデルに対して評価値の算出が完了したと判定(Ｓ４０６)されると、図１０に詳細を示した仮モデルの評価値算出処理(図４：Ｓ４００)が完了する。
【００７５】
最後に、ＣＰＵ３０１は、ステップＳ４００で作成した各仮モデルの評価値の中から、最大の評価値が得られた仮モデルを選択し、生産時にパターンマッチングとして用いる本モデルとして決定する(図４：Ｓ５００)。この決定した本モデルは、実際のパターンマッチング時に利用できるよう、記憶手段、例えば、ＨＤＤ３０４に記憶させる。なお、この決定工程(図４：Ｓ５００)を実行するＣＰＵ３０１は、例えば画像処理装置３００において決定部としての機能ブロックを構成することになる。
【００７６】
以上のようにして、モデルの自動作成処理が終了する。ＣＰＵ３０１は、前記ステップにて作成された本モデルとカメラ５００で撮影された画像とでパターンマッチングを実行することにより、実際の生産機器２００が稼働することになる。このパターンマッチング工程を実行するＣＰＵ３０１は、例えば画像処理装置３００においてパターンマッチング部としての機能ブロックを構成する。
【００７７】
以上のように、本実施形態によれば、誤検知の少ないパターンマッチング用のモデルを決定すべく、複数の仮モデルを作成して、評価用画像にてパターンマッチングを実行し、その中で最も評価値の高い仮モデルを本モデル（正式モデル）として採用する。その評価値としては、例えば、評価用画像をパターンマッチングした際の最大検出スコアと、最大検出スコアが検出された位置の近傍以外で検出された第２のマッチングスコアとの差を採用している。つまり、最も誤検出が発生しやすい位置は、図１２のスコアマップの例では、山１２０２のように、マッチングスコアＲが最高となる山１２０１とは別の位置に形成されるピークの位置である。そこで、これを最大検出スコア近傍以外の第２のマッチングスコアとして採用する。この誤検出を生じさせる可能性が高い山１２０２の第２のマッチングスコアと、検出の正解位置となる山１２０１で検出された最大検出スコアとの差が大きいマッチングモデルであるほど、誤検出の確率が低下する。
【００７８】
そして、本実施形態によれば、複数の仮モデルの中から、この２つのスコアの差がなるべく大きくなるようなモデルを自動的に選択することができる。また、本実施形態では、モデルの評価、選択は、生産ラインで実際に生産を開始する前に事前に実施しておくことができるため、実際の生産工程における監視時などにおいては、予め選択された一つのモデルでパターンマッチングを実行することができる。即ち、本実施形態では、実際の生産ライン監視のために行う画像処理において多数のマッチングモデルを用いてパターンマッチングを実行する必要がない。そのため、画像処理時間を増大させることがなく、高速に画像処理に基づく監視処理を実行することができる。また、様々な生産工程での背景やノイズ、ワーク形状等の影響によりスコアマップの形状が変形するような場合であっても、前述した２つのスコア差を利用することにより汎用的に適用することが可能となる。本実施形態によれば、処理時間を増大させることなく、様々な生産工程で適用可能な誤検知を防ぐパターンマッチングに使用するモデルの自動作成が可能となる。
【００７９】
＜実施形態２＞
上記の実施形態１では、形状(エッジ)ベースのパターンマッチングに用いられるモデルの作成手法につき説明した。他の手法によるパターンマッチングのためのモデル作成に関しても、本発明の手法を実施することができる。以下、本実施形態２では輝度ベースのパターンマッチングに用いられるモデルの自動作成につき説明する。
【００８０】
本実施形態２の生産装置の概略構成、および画像処理装置の構成は上記の実施形態１の図２、図３に示したものと同様である。
以下、画像処理装置３００によるモデル作成と、パターンマッチング実行（画像処理方法）について説明する。画像処理装置３００のＣＰＵ３０１は、プログラム３２１をＨＤＤ３０４から読み出して実行することにより、以下に説明する画像処理方法の各工程を実行する。
【００８１】
モデル作成の全体の流れは、実施形態１の図４と同様である。特に、図４のステップＳ１００、Ｓ２００は実施形態１と同様であるが、本実施形態では、複数の仮モデルの作成(図４：Ｓ３００)は、図１６のような処理によって行う。
【００８２】
図１６の仮モデルの作成では、図４のステップＳ１００で取得した参照画像内のステップＳ２００で設定した領域を基準領域として、基準領域の大きさや形状を変更して複数の仮モデルを作成する。図１６の処理の全体の流れは、前述の図５の処理の流れと類似しており、まずステップＳ３０９にて、ある大きさや形状を有する基準領域について参照画像から部分画像を切り出し、仮モデルを作成し、ＨＤＤ３０４に記憶する。その後、ステップＳ３１０で、大きさや形状を変更した全ての基準領域のそれぞれに対する仮モデルの作成が完了したかを判定しながら、ステップＳ３１１、Ｓ３１２を繰り返し実行する。
【００８３】
図１６のステップＳ３１１では、仮モデルの基準領域の定義（大きさや形状）を変更する。ここでは、基準領域が矩形であれば領域の幅、高さを、円形であれば直径の大きさを変更した領域を作成する。また、基準領域の中心を基準位置として、矩形や円形等様々な形状の変更も行うようにしてもよい。ステップＳ３１１では、基準領域に対して、上記のように何らかの一つの変更を加えた領域を作成する。
【００８４】
ステップＳ３１２では、参照画像から、ステップＳ３１１で作成した領域に対応する部分画像を切り出し、パターンマッチング用の仮モデルとしてＨＤＤ３０４に記憶させる。ステップＳ３１０では、基準領域の変更とそれに基づいた仮モデルの作成を実行することによって、所定数の仮モデルを作成したか否かを判定し、このステップが肯定された場合には仮モデル作成処理を終了する。ステップＳ３１０が否定された場合には、ステップＳ３１１に進み、上記の処理を繰り返す。
【００８５】
以下では、例えば、基準領域を矩形領域とし、与えられた基準領域の幅と高さを３通りずつ変更した全部で９通りの仮モデルを作成するものとする。
【００８６】
本実施形態において、仮モデルの評価値算出処理の全体の流れは、上述の図１０とほぼ同様である。図１０のステップＳ４０１では、作成した複数の仮モデルから一つの仮モデルを選択する。続いて、ステップＳ４０２で、実施形態１と同様に事前に用意しておいた評価用画像に対して、パターンマッチングを実行する。この処理は、実施形態１とは異なり、以下に示すような輝度ベースのパターンマッチング処理を行う。
【００８７】
例えば、図１１に示すように、仮モデルと同じ大きさの抽出窓を評価用画像内でピクセル単位で範囲をずらしながら、評価用画像から仮モデルに対応する大きさの部分画像を抽出する。そして、抽出した部分画像と仮モデルとのマッチングスコアＲを下式（６）により求める。
【００８８】
【数６】
2020077397.tif 000008
【００８９】
上式（６）において、画像内の位置（ｉ、ｊ）とは、評価用画像から仮モデルに対応する大きさの画像を抽出した部分画像内と仮モデル内の位置に相当する。このスコアの値は１が最も類似性が高く、−１が最も低いことを示す。評価用画像内の全ての探索位置でのスコア計算が完了すると、パターンマッチングが終了となる。全て探索位置でのスコア計算が完了していなければ、次の探索位置に（ｉ、ｊ）を進めて、スコア計算を進める。
【００９０】
このパターンマッチングを実行する際に、所定のスコア閾値以上のスコアが算出された場合、そのマッチングスコアＲと位置（ｉ、ｊ）をＲＡＭ３０３に記憶しておく。これにより、実施形態１と同様に図１２に示すように、ある評価用画像に対するある仮モデルのスコアマップが生成される。所定のスコア閾値を−１に設定すれば評価用画像内の全ての位置のスコアマップが生成されることになる。
【００９１】
以上のようにしてスコアマップを生成した後は、実施形態１と同様に図１０のステップＳ４０３〜Ｓ４０６を実行し、全ての仮モデルに対して評価値を算出することができる。さらに、図４のステップＳ５００のモデル自動設定（複数の仮モデルの中から本モデルを選択）も実施形態１と同様に実施することができる。
【００９２】
以上に示したように、パターンマッチングの演算方式が異なる場合、例えば、本実施形態のように輝度ベースのパターンマッチングを行う場合でも、スコア値の計算方式を適宜定めておけば、モデルの自動作成が可能である。当然ながら、以上のようにして作成されたモデルを実際のパターンマッチングを行う場合は、モデル作成時と同じ輝度ベースのパターンマッチングを実行する。図２のような生産ラインでは、ＣＰＵ３０１は、前記ステップにて作成された本モデルとカメラ５００で撮影された画像とでパターンマッチングを実行することにより、実際の生産機器２００が稼働することになる。
【００９３】
本実施形態によれば、パターンマッチングが輝度ベースで行われる場合でも、スコアマップを用いた演算によって、実際の製造工程における画像処理に利用するマッチングモデルを自動作成することができる。以上では、画像処理に利用されるパターンマッチングが、実施形態１のような形状（連結エッジ）ベースのものである場合、あるいは実施形態２のような輝度ベースのものである場合の例を示した。しかしながら、本発明のスコアマップを用いた演算によるモデル生成技術は、マッチングスコアを算出できるパターンマッチングを行うのであれば、パターンマッチングの処理形態を問わず様々なパターンマッチングのモデル作成に実施可能である。
【００９４】
本発明は、上述実施例の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、システムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９５】
１０１２…モデル、２００…生産機器、３００…画像処理装置、４０１…ロボット、５００…カメラ、４００…ロボット制御装置、３０１…ＣＰＵ、３０２…ＲＯＭ、３０３…ＲＡＭ。
【図１】
2020077397.tif 000009
【図２】
2020077397.tif 000010
【図３】
2020077397.tif 000011
【図４】
2020077397.tif 000012
【図５】
2020077397.tif 000013
【図６】
2020077397.tif 000014
【図７】
2020077397.tif 000015
【図８】
2020077397.tif 000016
【図９】
2020077397.tif 000017
【図１０】
2020077397.tif 000018
【図１１】
2020077397.tif 000019
【図１２】
2020077397.tif 000020
【図１３】
2020077397.tif 000021
【図１４】
2020077397.tif 000022
【図１５】
2020077397.tif 000023
【図１６】
2020077397.tif 000024