(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】画像処理方法、画像処理装置、生産システム、物品の製造方法、プログラム、および記録媒体
(51)【国際特許分類】
G06T 7/00 20170101AFI20231218BHJP
【FI】
G06T7/00 300Z
(21)【出願番号】P 2019185678
(22)【出願日】2019-10-09
【審査請求日】2022-10-06
(31)【優先権主張番号】P 2018211413
(32)【優先日】2018-11-09
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】北島 洋史
(72)【発明者】
【氏名】渡辺 慶
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2014-021684(JP,A)
【文献】特開2009-245287(JP,A)
【文献】特開2002-032753(JP,A)
【文献】斉藤 文彦,“遺伝的アルゴリズムを用いた画素選択テンプレートによる画像マッチング”,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2001年03月01日,Vol.J84-D-II, No.3,pp.488-499
【文献】Gang Wang et al.,"A template extraction approach for image recognition",2012 International Symposium on Information Technologies in Medicine and Education,米国,IEEE,2012年08月03日,pp.932-935
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G01B 11/00-11/30
G01N 21/88
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
画像処理装置が実行する画像処理方法であって、画像処理装置が、
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、
前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を
実行し、
前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、前記第1のマッチングスコアと前記第2のマッチングスコアを含み、
(1)前記第1のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第1の空間的位置の画像と、の類似度を示し、
(2)前記第2のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第2の空間的位置の画像と、の類似度を示し、
前記第1の空間的位置と前記第2の空間的位置は離間しており、前記第2のマッチングスコアは前記第1のマッチングスコアよりも低い類似度を示して
おり、
前記マッチングスコア取得工程において、前記複数の仮モデルの1つと前記複数の評価画像の1つとのパターンマッチングによって生成されるスコアマップの極大値が1つの場合、前記極大値を前記第1のマッチングスコアとし、スコアマップ中の最小値を前記第2のマッチングスコアとする、画像処理方法。
【請求項2】
画像処理装置が実行する画像処理方法であって、画像処理装置が、
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、
前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を実行し、
前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、前記第1のマッチングスコアと前記第2のマッチングスコアを含み、
(1)前記第1のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第1の空間的位置の画像と、の類似度を示し、
(2)前記第2のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第2の空間的位置の画像と、の類似度を示し、
前記第1の空間的位置と前記第2の空間的位置は離間しており、前記第2のマッチングスコアは前記第1のマッチングスコアよりも低い類似度を示しており、
前記仮モデル作成工程で、前記参照画像からエッジ点が連結した連結エッジを複数抽出し、抽出された複数の前記連結エッジの組合せにより前記複数の仮モデルを作成する、画像処理方法。
【請求項3】
画像処理装置が実行する画像処理方法であって、画像処理装置が、
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、
前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を実行し、
前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、前記第1のマッチングスコアと前記第2のマッチングスコアを含み、
(1)前記第1のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第1の空間的位置の画像と、の類似度を示し、
(2)前記第2のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第2の空間的位置の画像と、の類似度を示し、
前記第1の空間的位置と前記第2の空間的位置は離間しており、前記第2のマッチングスコアは前記第1のマッチングスコアよりも低い類似度を示しており、
前記評価工程において、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから、前記第1のマッチングスコアと前記第2のマッチングスコアとの差を前記評価画像ごとに算出し、算出した前記第1のマッチングスコアと前記第2のマッチングスコアとの差の最大値もしくは最小値を前記評価値として算出する、画像処理方法。
【請求項4】
画像処理装置が実行する画像処理方法であって、画像処理装置が、
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、
前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を実行し、
前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、前記第1のマッチングスコアと前記第2のマッチングスコアを含み、
(1)前記第1のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第1の空間的位置の画像と、の類似度を示し、
(2)前記第2のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第2の空間的位置の画像と、の類似度を示し、
前記第1の空間的位置と前記第2の空間的位置は離間しており、前記第2のマッチングスコアは前記第1のマッチングスコアよりも低い類似度を示しており、
前記評価工程において、前記第1のマッチングスコア群の平均値と、前記第2のマッチングスコア群の平均値と、の差を前記評価値として算出する、画像処理方法。
【請求項5】
請求項1
乃至4のいずれか1項に記載の画像処理方法において、前記マッチングスコア取得工程において、前記複数の仮モデルの1つと前記複数の評価画像の1つとのパターンマッチングによって生成されるスコアマップが複数の極大値を有する場合、マッチングスコアが第1位の極大値を前記第1のマッチングスコアとし、マッチングスコアが第2位の極大値を前記第2のマッチングスコアとする、画像処理方法。
【請求項6】
請求項
5に記載の画像処理方法において、前記第2のマッチングスコアが得られる第2の空間的位置と、前記第1のマッチングスコアが得られる第1の空間的位置との距離に閾値が設定され、前記第1の位置から前記閾値以上離れた領域においてマッチングスコアが第2位の極大値を前記第2のマッチングスコアとする、画像処理方法。
【請求項7】
請求項1乃至
6のいずれか1項に記載の画像処理方法において、前記仮モデル作成工程は、前記参照画像から前記仮モデルを作成するための仮モデル作成領域を指定するユーザの操作を受け付けるユーザインターフェース工程を含む、画像処理方法。
【請求項8】
請求項1乃至
6のいずれか1項に記載の画像処理方法において、前記仮モデル作成工程で、前記参照画像から抽出した大きさおよび/または形状の異なる複数の領域により、前記複数の仮モデルを作成する、画像処理方法。
【請求項9】
請求項1
または2に記載の画像処理方法において、前記マッチングスコア取得工程において、前記複数の評価画像の各々において、前記第1のマッチングスコアよりも小さな極大値の中の最大の極大値を前記第2のマッチングスコアとして取得する、画像処理方法。
【請求項10】
請求項1乃至
9のいずれか1項に記載の画像処理方法において、前記第2の空間的位置は、前記第1の空間的位置から10画素を超えて離間している、画像処理方法。
【請求項11】
請求項1乃至
10のいずれか1項に記載の画像処理方法において、前記第1の空間的位置に配置された前記仮モデルの画像領域は第1面積を有し、前記第2の空間的位置に配置された前記仮モデルの画像領域は第2面積(M)を有し、前記第1面積を有する画像領域と前記第2面積(M)を有する画像領域が重複する画像領域は第3面積(N)を有し、前記第3面積(N)は前記第1面積の50%よりも小さい、画像処理方法。
【請求項12】
画像処理装置が実行する画像処理方法であって、画像処理装置が、
パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、
前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、
前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、
前記複数の仮モデルの各々について、前記第1のマッチングスコア群の平均値、最大値、または最小値である第1の値と、前記第2のマッチングスコア群の平均値、最大値、または最小値である第2の値と、に応じて評価値を算出する評価工程と、
算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を
実行し、
前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、
(1)前記複数の仮モデルの1つと、前記複数の評価画像の1つ、の類似度を示す第1のマッチングスコアと、(2)前記複数の仮モデルの1つと、前記複数の評価画像の1つ、の類似度を示し、前記第1のマッチングスコアよりも低い類似度を示す前記第2のマッチングスコアと、を含む、
画像処理方法。
【請求項13】
請求項1乃至
12のいずれか1項に記載の画像処理方法において、前記決定工程で決定されたマッチングモデルを用いてパターンマッチングを繰り返し実行するパターンマッチング工程を更に含む、画像処理方法。
【請求項14】
請求項
13に記載の画像処理方法を実行する画像処理装置であって、
前記パターンマッチング遂行工程、前記マッチングスコア取得工程、および前記評価工程を実行する処理部と、
前記複数のマッチングスコアおよび前記評価値を記憶する記憶部と、を有する、画像処理装置。
【請求項15】
請求項
13に記載の画像処理方法の各工程と、
前記パターンマッチング工程の結果を用いてワークの位置および姿勢を認識する認識工程と、
前記認識工程で得られた情報を用いて、前記ワークを用いて物品を生産する生産制御工程と、
を含む、物品の製造方法。
【請求項16】
請求項
13に記載の画像処理方法の各工程と、
前記パターンマッチング工程の結果を用いてワークを検査する検査工程と、
前記検査工程の検査結果に応じて、前記ワークを用いて物品を生産する生産制御工程と、
を含む、物品の製造方法。
【請求項17】
請求項1乃至
13のいずれか1項に記載の画像処理方法をコンピュータに実行させるプログラム。
【請求項18】
請求項
17に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項19】
請求項
14に記載の画像処理装置であって、
前記複数の仮モデルを記憶する記憶部をさらに備える、画像処理装置。
【請求項20】
請求項
14または
19に記載の画像処理装置と、
ワークが撮影された画像について前記画像処理装置が実行したパターンマッチングの結果を用いてワークに対して製造工程を実行する製造装置と、を備える生産システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理方法、画像処理装置、生産システム、および物品の製造方法、特に、パターンマッチングを用いた画像処理を利用する画像処理方法、画像処理装置、生産システム、および物品の製造方法に関する。
【背景技術】
【0002】
画像処理の分野において、検出対象物体の位置を検出する方法として、パターンマッチングがよく知られている。パターンマッチングを行うには、検出対象となる物体の参照情報として、理想状態で検出対象物体を撮像した参照画像が用いられる。この参照画像は、モデル、テンプレートなどと呼ばれることがある。この参照画像から検出対象物体付近の領域のみを切り出し、パターンマッチングに用いるモデルを作成する。
【0003】
実際の物体検出工程では、物体を検出するための被探索画像を撮像し、撮像した画像の各位置でモデルとの類似度を計算していく。この手法は、最も類似度の高かった画像の位置を検出位置とする、即ち、被探索画像の中からモデルと最も類似している位置を検出する方法である。
【0004】
上記の類似度を計算するために、複数の方法が知られており、輝度ベースで類似度を算出する輝度値差分法(SAD)、正規化相関法(NCC)やエッジ特徴ベースで類似度を算出する形状パターンマッチングなどが知られている。
【0005】
この種のパターンマッチングでは、例えば検出対象物体以外の位置を検出してしまう、誤検出が問題となることがある。例えば、検出物体の位置よりも検出物体以外の位置の方が、類似度が高くなることにより誤検出が発生する。例えば、
図1(a)のような画像があり、円環ワーク100の中の小さい丸の画像中の位置を検出するパターンマッチングを行うとする。
図1(a)の101、102は、円環ワーク100の背景などに撮影されている他のワークなどの画像である。この場合、
図1(b)のようなモデル1012の画像を作成することがある。
図1(b)のモデル1012では、テンプレートから円環ワーク100の小さい丸の部分1011の部分だけを切り出した画像でモデル1012を作成している。このようなモデル1012を用いると、
図1(a)の円環ワーク100とは別に撮影されている丸の位置(101)を誤検出してしまうことがある。このような誤検出(誤検知)を防止するためには、ユーザは、円環ワーク100の円環部分も含めるよう、モデルの画像を作成しなければならない。
【0006】
上記のように、どのような物体の形状をモデルにするか、テンプレートからどの領域を切り出して用いるか、などによって、誤検出の頻度が変わってくる。そのため、従来では、パターンマッチングのためのモデルを作成する際には、試行錯誤が必要であり、またユーザの経験則に基づく微妙な設定が要求されることもあり、作業には習熟が必要とされる。
【0007】
また、この種のパターンマッチングは、物品の生産ラインにおけるワークや生産機器を撮影した画像に対して実行され、その結果が監視、生産制御などに利用されることがある。このようなシステムにおいて誤検出が発生した場合、不良品が発生したり、生産機器の誤動作による故障などが起きる可能性がある。そのため、誤検出が生じにくく、確実なパターンマッチングを行えるモデルを作成する手法やシステムが望まれている。
【0008】
この点に鑑み、特許文献1では、撮像した画像に対し、予め用意した複数の異なるモデルの全てでパターンマッチングを実行する方法が提案されている。この場合、複数の検出位置の中でモデルの重なりが大きい位置を検出位置とする。そして、複数のモデルでパターンマッチングを行うことにより、誤検出の確率を下げる方法が記載されている。
【0009】
また、特許文献2では、複数のモデルを作成し、評価用画像にてパターンマッチングを実行し、その際、評価用画像の各位置での類似度(スコア)を記憶しておく。そして、モデル毎のスコア分布を作成し、このスコア分布の分散値を比較することにより、誤検知しづらいモデルを選定する。この特許文献2では、例えば、スコア分布の分散値が最も大きいモデルが誤検知しづらいモデルとして選ばれ、実際の物体検出工程では、選定されたモデルのみでパターンマッチングを実行することにより誤検出を回避する。
【先行技術文献】
【特許文献】
【0010】
【文献】特開2008-165394号公報
【文献】特開2001-148014号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
上記の特許文献1の構成によると、実際の画像検査工程で複数のモデルでパターンマッチングを実行するため、モデルの数だけ処理時間が増大する。パターンマッチングは、様々な用途で使用されているが、特に工業用、FA用途では生産のサイクルタイムの短縮が重視されている。このような高速な処理が求められる用途には特許文献1の構成は向いていない可能性がある。
【0012】
また、特許文献2の構成によると、スコア分布の分散値の大小により、モデルを評価する。しかしながら、様々な生産システムで撮影される画像の全てについて、スコア分布の分散値が大きい方が誤検知しづらいモデルとは必ずしも言えない可能性がある。特許文献2の技術では、誤検知の可能性が小さい場合は、スコアが正解位置のみ高くなり、他の位置では低くなることにより分散値が大きくなることを前提としている。また、誤検知の可能性が高い場合は、スコア分布が全体的に高くなることにより分散値が小さくなることを前提としている。しかし、生産システムで撮影される実際の画像では背景やノイズ、ワークの形状等によってスコア分布の形状は大きく異なっており、特許文献2のようなスコア分布の分散値を用いた評価基準は汎用性や一般性を有していない可能性がある。例えば、実際の生産システムで撮影される画像では、複数のピークが出るような誤検出の可能性が高いスコア分布で分散値が大きくなる場合がある、と予想される。
【0013】
本発明の課題は、パターンマッチングを利用する画像検査工程の高速性を損なうことなく、背景やノイズ、ワークの形状等に依存せず、誤検出が少ないモデルを生成できるようにすることにある。
【課題を解決するための手段】
【0014】
本発明の第一の態様は、画像処理装置が実行する画像処理方法であって、画像処理装置が、パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、前記複数の仮モデルの各々について、前記第1のマッチングスコア群と前記第2のマッチングスコア群とから評価値を算出する評価工程と、算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を実行し、前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、前記第1のマッチングスコアと前記第2のマッチングスコアを含み、(1)前記第1のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第1の空間的位置の画像と、の類似度を示し、(2)前記第2のマッチングスコアは、前記複数の仮モデルの1つと、前記複数の評価画像の1つにおける第2の空間的位置の画像と、の類似度を示し、前記第1の空間的位置と前記第2の空間的位置は離間しており、前記第2のマッチングスコアは前記第1のマッチングスコアよりも低い類似度を示しており、前記マッチングスコア取得工程において、前記複数の仮モデルの1つと前記複数の評価画像の1つとのパターンマッチングによって生成されるスコアマップの極大値が1つの場合、前記極大値を前記第1のマッチングスコアとし、スコアマップ中の最小値を前記第2のマッチングスコアとする、画像処理方法である。
【0015】
また、本発明の第二の態様は、画像処理装置が実行する画像処理方法であって、画像処理装置が、パターンマッチングの対象物が記録された参照画像を用いてパターンマッチングのための複数の仮モデルを作成する仮モデル作成工程と、前記複数の仮モデルの各々と、前記パターンマッチングの対象物が記録された複数の評価画像の各々とでパターンマッチングを行い、前記複数の仮モデルの各々と前記複数の評価画像の各々との間の複数のマッチングスコアを取得するパターンマッチング遂行工程と、前記複数の仮モデルの各々について、前記複数の評価画像の各々についての第1のマッチングスコアを集合した第1のマッチングスコア群と、前記複数の評価画像の各々についての第2のマッチングスコアを集合した第2のマッチングスコア群と、を取得するマッチングスコア取得工程と、前記複数の仮モデルの各々について、前記第1のマッチングスコア群の平均値、最大値、または最小値である第1の値と、前記第2のマッチングスコア群の平均値、最大値、または最小値である第2の値と、に応じて評価値を算出する評価工程と、算出された前記評価値に基づいて前記複数の仮モデルの中からマッチングモデルを決定する決定工程と、を実行し、前記パターンマッチング遂行工程で求める前記複数のマッチングスコアは、(1)前記複数の仮モデルの1つと、前記複数の評価画像の1つ、の類似度を示す第1のマッチングスコアと、(2)前記複数の仮モデルの1つと、前記複数の評価画像の1つ、の類似度を示し、前記第1のマッチングスコアよりも低い類似度を示す前記第2のマッチングスコアと、を含む、画像処理方法である。
【発明の効果】
【0016】
本発明によれば、画像検査工程の高速性を損なうことなく、背景やノイズ、ワークの形状等に依存せず、誤検出が少ないモデルを生成し、該モデルを用いて信頼性の高いパターンマッチングを利用した画像処理を実施することができる。
【図面の簡単な説明】
【0017】
【
図1】(a)複数のワークが撮影された画像の一例。(b)パターンマッチング処理に用いるモデルの一例。
【
図2】実施形態に係る生産システムの概略構成を示した説明図である。
【
図3】実施形態に係る画像処理装置の構成を示したブロック図である。
【
図4】本発明の実施形態1に係るパターンマッチングモデルの作成処理を示したフローチャート図である。
【
図5】本発明の実施形態1に係る仮モデル作成処理を示したフローチャート図である。
【
図6】本発明の実施形態1に係るエッジ抽出処理を示した説明図である。
【
図7】本発明の実施形態1に係る特徴画像を示した説明図である。
【
図8】本発明の実施形態1に係る連結エッジの抽出を示した説明図である。
【
図9】(a)連結エッジからなる1つの仮モデルの例。(b)連結エッジの組み合わせからなる他の仮モデルの例。(c)連結エッジの別の組み合わせからなる更に別の仮モデルの例。
【
図10】本発明の実施形態1に係る仮モデルの評価値算出処理を示したフローチャート図である。
【
図11】本発明の実施形態1に係る画像処理におけるパターンマッチング処理を示した説明図である。
【
図12】本発明の実施形態1に係る評価値算出におけるスコアマップを示した説明図である。
【
図13】本発明の実施形態1に係る評価値算出における最大検出スコアの位置近傍か否かの判定処理の一例を示した説明図である。
【
図14】本発明の実施形態1に係る評価値算出方法を説明する表図である。
【
図15】本発明の実施形態1に係る評価値算出方法を説明する表図である。
【
図16】本発明の実施形態2に係る仮モデル作成処理を示したフローチャート図である。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【0019】
<実施形態1>
図2は、本実施形態に係る生産システムの概略構成を示している。
図2の生産機器200は、ワークW1(対象物)をワークW2(被組み付け部材)に組付けて、物品Wを製造する。生産機器200は、ロボット401と、撮像装置としてのカメラ500と、カメラ500と有線ないし無線で通信するよう構成された画像処理装置300と、を備えている。また、生産機器200は、ロボット401および画像処理装置300に、ネットワークや制御線で接続されたロボット制御装置400を備えている。
【0020】
ロボット401は、例えば垂直多関節型のロボットアーム402と、エンドエフェクタであるロボットハンド403と、を有している。ロボットアーム402は、複数のリンクが複数の関節で旋回可能に連結された構成を備える。ロボットアーム402の基端(基端リンク、ベース部)が基台Bの上面に固定されている。また、ロボットアーム402の先端(先端リンク)には、ロボットハンド403が取り付けられている。ロボットハンド403は、複数のフィンガを有し、ワーク(対象物)W1を把持、または把持解放することができる。
【0021】
カメラ500は例えばデジタルカメラによって構成される。カメラ500の画像センサは、例えばCCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサによって構成される。
【0022】
画像処理装置300は、カメラ500の撮像動作(例えば撮像タイミングやシャッタースピード等)を制御し、カメラ500から撮像画像を取得する。また、画像処理装置300は、デジタル画像データに対して画像処理を施し、その結果をロボット制御装置400に出力する。この画像処理として、画像処理装置300は、パターンマッチング処理を行う。
【0023】
図2のように構成された生産ラインでは、パターンマッチングは、ワークW1、W2の全体ないしその一部、ロボットアーム402の特定部位などの実際の位置、ないし姿勢を検出ないし測定するために行われる。そのため、このパターンマッチングには、ワークW1、W2、ロボットアーム402などの特定部位をマッチングするためのモデルが用いられる。画像処理装置300は、その画像処理結果をロボット制御装置400に出力する。この時のロボット制御装置400に対する出力データの形式は任意であるが、例えば、グローバル座標系や撮影画像の座標系における測定対象の特定部位の座標値などが考えられる。カメラ500の配置位置とロボットアーム402が動作する作業空間の位置関係は既知であり、例えば撮影画像の座標系と、ロボットアーム402の作業空間のグローバル座標系の間では座標変換演算が可能であるものとする。このような座標変換演算は、画像処理装置300ないしロボット制御装置400によって適宜行われる。
【0024】
ロボット制御装置400は、画像処理装置300による画像処理の結果に基づき、ロボット401の動作を制御する。例えば、ワークW1、W2を結合する操作では、ロボット制御装置400は画像処理から得られた両ワークの位置関係を参照して、両者が所定の位置関係で結合されるよう、ロボットアーム402、ロボットハンド403の位置、姿勢を制御する。
【0025】
図3は、本実施形態の画像処理装置300の構成の一例を示している。
図3の画像処理装置300は、画像処理、具体的にはパターンマッチング処理を行うものであり、例えばPC(パーソナルコンピュータ)のようなアーキテクチャを利用して構成することができる。画像処理装置300は、演算部(制御装置)としてのCPU(Central Processing Unit)301を備えている。また、画像処理装置300は、記憶部として、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304を備えている。また、画像処理装置300は、記録ディスクドライブ305および各種のインタフェース311~315を備えている。
【0026】
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305およびインタフェース311~315が、バス310を介して接続されている。
【0027】
ROM302には、BIOS等の起動プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD304には、プログラム321が格納(記録)されている。そして、CPU301がプログラム321を読み出して実行することにより、後述する画像処理方法の各工程を実行する。記録ディスクドライブ305は、記録ディスク322に記録された各種データやプログラム等を読み出すことができる。記録ディスク322は、各種の磁気ディスクや光ディスクの他、半導体メモリデバイスなどであっても構わない。この記録ディスク322が、本発明の制御手順を記述した画像処理プログラムを格納している場合は、記録ディスク322は、本発明のコンピュータ読み取り可能な記録媒体を構成することになる。
【0028】
インタフェース311には、ロボット制御装置400が接続されている。CPU301は、バス310およびインタフェース311を介して画像処理結果をロボット制御装置400に送信する。ロボット制御装置400により制御されるロボットアーム402は、画像処理装置300のパターンマッチングの結果を用いて、ワークW1、W2に対する生産処理を実行する生産機器を構成する。画像処理装置300のパターンマッチングは、例えばワークW1、W2の相対的な位置および姿勢を認識してこれらの組み付けを行うロボットアーム402による生産処理の制御に用いられる。あるいは、画像処理装置300のパターンマッチングは、例えばワークW1、W2の個々、あるいはそれらが一体化されたアセンブリの検査のためなどに行われるものであってもよい。その場合、その検査結果に応じて、ロボットアーム402による生産処理、例えばワークやアセンブリの搬送先の変更などを制御することができる。画像処理装置300のパターンマッチングを用いた画像処理は、物品の生産システム(ライン)において、上記のような生産処理制御に種々の形態で利用することができる。
【0029】
インタフェース312には、カメラ500が接続されている。CPU301は、バス310およびインタフェース312を介して、トリガ信号等の制御信号をカメラ500に送信する。CPU301は、カメラ500からの画像信号をバス310およびインタフェース312を介して取得する。取得した画像データは、CPU301の制御に基づき、例えばHDD304や外部記憶装置800など記憶装置に格納する。
【0030】
インタフェース313には、マウスやキーボードなど、作業者が行った操作に応じた指令をCPU301に送信する入力装置600が接続されている。インタフェース314には、画像を表示するディスプレイ等の表示装置700が接続されている。インタフェース315には、USBメモリ等の書き換え可能な不揮発性メモリ、あるいは外付けHDD等の外部記憶装置800が接続される。
【0031】
以下、画像処理装置300によるモデル作成、およびパターンマッチングによる画像処理の流れにつき説明する。画像処理装置300のCPU301は、プログラム321をHDD304から読み出して実行することにより、以下の画像処理方法の各工程を実行する。
【0032】
図4は、モデル作成処理の概要を示している。
図4において、作業者ないしこのシステムのユーザであるオペレータは、パターンマッチング用のモデルを作成するための参照画像を用意するために、実際に生産ラインで生産を行なう時と同様の照明条件、位置に検出対象となるワークをセットする。CPU301は、カメラ500にワークの撮像を行わせ、ワークが撮影された参照画像としての画像データをカメラ500から取得する(S100)。
【0033】
なお、この参照画像は、既にHDD304や外部記憶装置800等の記憶装置に格納されていてもよく、その場合は、CPU301は、HDD304や外部記憶装置800等の記憶装置から、参照画像のデータを取得することとなる。参照画像は、生産ラインにおける監視処理における実際の撮影と同じ条件で撮影されているものとする。
【0034】
CPU301は、参照画像を表示装置700に表示させ、オペレータにより指定された、参照物(ワーク)が写り込んだ部分もしくは参照物の特徴的な部分を包含する矩形領域を仮モデル作成領域として設定する(S200)。この仮モデル作成領域を設定する時には、オペレータは、例えば、マウス等の入力装置600を用いたユーザインターフェースを利用することができる。仮モデル作成領域の設定は、ユーザが表示装置700に表示された参照画像内の参照物が写り込んだ画像を包含する領域の左上と右下の2点をクリックするような操作により行う。
【0035】
CPU301は、ステップS200では、仮モデルを作成する領域として、クリックされた2点の位置(矩形領域の左上、右下の角の点)から矩形領域を設定する。設定した仮モデル作成領域の位置、形状は、RAM303もしくはHDD304に記憶させておく。なお、以上では矩形領域での設定方法を説明したが、3点をクリックすることにより円領域を設定したり、クリック点間を結ぶ任意領域を設定したりしても良く、領域の設定は矩形に限定されるものではない。
【0036】
次に、仮モデルの作成方法について説明する。
図5は仮モデル作成工程(
図4:ステップS300)の処理例を詳細に示したものである。この仮モデル作成工程を実行するCPU301は、例えば画像処理装置300において仮モデル作成部としての機能ブロックを構成する。
図5のステップS301において、CPU301は、ステップS100で取得した参照画像内のステップS200で設定した領域について、エッジ点が連結した連結エッジを抽出する処理を実施する。以下にこの連結エッジ抽出処理(ステップS301)の詳細につき説明する。
【0037】
CPU301は、連結エッジ抽出対象の参照画像領域において、画素毎にエッジ強度とエッジ方向を算出する。エッジ強度とは、コントラストの大きさ(輝度の変化の急峻さ)を表し、注目画素に対し隣接する画素のコントラストが大きければエッジ強度も大きくなる。エッジ方向とは、コントラストの方向を表し、注目画素のエッジ強度が最も大きくなる方向(角度)を示す。エッジ強度の算出には、例えばx軸方向(画像の横軸方向)、y軸方向(画像の縦軸方向)のソーベルフィルタを使用する。
【0038】
図6は、参照画像領域Imに対してエッジ強度とエッジ方向の抽出処理を行う動作を示したものである。この抽出処理では、CPU301は、
図6の参照画像領域Im中の注目画素Cで、まずx軸方向のエッジ強度Exとy軸方向のエッジ強度Eyを算出する。このエッジ強度のベクトルは、(Ex,Ey)で表される。
【0039】
そして、CPU301は、注目画素Cのエッジ強度Eを、例えば下式(1)のように、各軸のエッジ強度Ex,Eyの二乗和の平方根として算出する。
【0040】
【0041】
また、CPU301は、エッジ方向θを、下式(2)により算出する。
【0042】
【0043】
そして、CPU301は、上記方法により参照画像領域Imの全画素のエッジ強度とエッジ方向を算出する。さらに、CPU301は、エッジ強度がある一定の閾値以上の画素をエッジ特徴(エッジ点)として抽出し、複数のエッジ点の集合であるエッジ特徴画像を生成する。
【0044】
図7は、エッジ特徴画像I
Tの例を示している。
図7では、エッジ特徴画像I
Tにおいて、エッジ強度がある一定の閾値以上のエッジ特徴を示す画素をエッジ点として黒で図示し、エッジ強度が閾値未満の画素を非エッジ点として白で図示している。
【0045】
エッジ特徴画像I
Tのデータ保持方法としては、例えば以下のように、画像の画素毎に2チャンネルのデータ領域をRAM303などの記憶領域に確保する。そして、例えば
図7のようにエッジ点として抽出された画素C
1の場合は、1チャンネル目にエッジ強度、2チャンネル目にエッジ方向の情報を格納する。また、非エッジ点であると判断された画素C
2には、エッジ特徴を示さないことを表す値(例えば0)を格納する。これらエッジ点を示す画素C
1の集合ΣCが、エッジ特徴画像I
Tである。
【0046】
なお、エッジ強度のみを記憶したエッジ強度画像、エッジ方向のみを記憶したエッジ方向画像の2つの画像を、1組の特徴画像として用いるようにしてもよい。また、本実施形態では、エッジ強度の算出にソーベルフィルタを使用しているが、キャニーフィルタ等の一般的に知られたエッジ抽出フィルタを使用してもよい。
【0047】
次に、エッジ点が連結した連結エッジを抽出し、連結エッジごとにラベリングを行う。前述したエッジ抽出処理によりエッジ点として抽出された画素の隣4方向、もしくは斜めをいれた8方向を探索し、エッジ点である画素同士が隣り合っていれば同じ連結エッジの連結成分として記憶していく。これにより、個々の連結成分が1つのまとまりとしてラベリングされた連結エッジを抽出することができる。
図8に例示する画像8000において線で表した部分が抽出された連結エッジだとすると、801~805の5つの連結エッジが抽出されたことになる。
【0048】
そして、
図5のS304Aにおいて、連結エッジの1つの組み合わせについて仮モデルを作成する。さらにS302~S304Bのループを繰り返すことにより、連結エッジの全ての組合せ方法について仮モデルを作成する。つまり、ステップS301で抽出した連結エッジについて、
図9(a)~
図9(c)に示すように連結エッジの組合せを変更しながら(S303)、仮モデルを作成する(S304B)。例えば、
図9(a)に示す仮モデル901は、5つの連結エッジのうち連結エッジ802を選ぶ組み合わせ方法についての仮モデルである。また、
図9(b)に示す仮モデル902は、連結エッジ801と連結エッジ802を選ぶ組み合わせ方法についての仮モデルである。また、
図9(c)に示す仮モデル903は、連結エッジ801、連結エッジ803および連結エッジ805を選ぶ組み合わせ方法についての仮モデルである。
【0049】
例えば、
図8に示すように5本の連結エッジが抽出された場合は、5本の連結エッジの組み合わせ方法の全てについてパターンマッチング用の仮モデルを作成し、HDD304などに記憶していく。全ての連結エッジの組合せに対する仮モデルを作成したか否かはステップS302で判定され、全ての連結エッジの組合せに対して仮モデルを作成した場合はこの処理を終了する。
【0050】
5本の連結エッジが抽出された場合、5本全ての連結エッジを選択して仮モデルとすることもできるし、1本の連結エッジのみを選択して仮モデルとすることもできる。5本の連結エッジの場合、連結エッジの組合せ方法の数は例えば下式(3)で算出でき、31通りとなる。つまり、5本の連結エッジが抽出された場合は31通りの仮モデルが作成されることになる。
【0051】
【0052】
次に、上記のようにして作成した複数の仮モデルの各々について評価値を算出する評価値算出工程(
図4:S400)を行う。この評価値算出工程(S400)は、
図10に示すように、複数の仮モデルの中から1つを選択し、その仮モデルの評価値を算出する処理を全ての仮モデルに対して順に実行することにより行う。なお、この評価値算出工程を実行するCPU301は、例えば画像処理装置300において評価部としての機能ブロックを構成する。
【0053】
図10のステップS401では、作成した複数の仮モデルの中から一つの仮モデルを選択する。選択した仮モデルと予め用意した複数の評価用画像の中の1枚とで、パターンマッチングを実行する。評価用画像は実際にワーク等の検出対象を撮影した画像であり、実験時に生産機器200と同様の系で撮影した画像もしくは生産中に保存しておいた実画像等を使用する。
【0054】
すなわち、マッチングスコア取得工程として、CPU301は、HDD304に保存されている複数の評価用画像から1枚を読込み、選択した1つの仮モデルを用いてパターンマッチングを実行する(S402)。例えば、パターンマッチングの手法は次のようなものである。最初に、評価画像に対しエッジ抽出を行い、評価画像内に存在するエッジを含んだ評価用エッジ画像Isを作成する。エッジ抽出処理の手法は、前述した参照画像に対するエッジ抽出処理と同様でよい。
図11に示すように、現在、選択されている仮モデルと同じ大きさの抽出窓を評価用エッジ画像I
S内に置いて、評価用エッジ画像I
Sから仮モデルに対応する大きさの画像I
Iを抽出する。仮モデルと同じ大きさの抽出窓は、ピクセル単位で位置をずらしながら、次々に画像I
Iを抽出する。このようにして抽出した画像I
Iと仮モデルとの類似度を表すマッチングスコアRを下式(4)により求める。なお、以下では、簡略化のため、類似度を表すマッチングスコアを単に「スコア」と記載することがある。
【0055】
【0056】
即ち、仮モデルの一つのエッジ画素と抽出した評価用エッジ画像の一つのエッジ画素のエッジ方向差分のコサイン値を求めることにより、エッジ点1点の局所スコアを算出する。この処理を全てのエッジ画素について行うことにより、全エッジ点の局所スコアを算出し、さらにその総和を算出することができる。この局所スコアの総和を仮モデルのエッジ点数で割ることにより、最終的なスコアとして-1から1の範囲に正規化した値を得ることができる。
【0057】
上記式4の画像内の位置(i、j)は、
図11に(i、j)で示す位置、すなわち評価用エッジ画像から仮モデルに対応する大きさの画像を抽出した評価用エッジ画像内の位置に相当する。全ての平行移動の範囲で抽出窓を移動させ、このマッチングスコアRの計算を行う。スコアは-1から1で表され、1が最も類似性が高く、-1が最も類似性が低いことを示す。
【0058】
なお、仮モデルの評価用のスコアの計算方法は任意であり、上記と異なるスコア計算手法を用いてもよい。例えば、モデルと評価用エッジ画像のx方向エッジ強度、y方向エッジ強度から、下式(5)のようにして、マッチングスコアを算出してもよい。
【0059】
【0060】
評価用エッジ画像内の全ての探索位置でのスコア計算が完了したら、当該仮モデルを使ったパターンマッチングが終了となる。全ての探索位置でのスコア計算が完了していなければ、次の探索位置(i、j)に抽出窓を進めて、マッチングスコアの計算を続行する。本実施例では簡略化のためモデルの平行移動のみを検出するパターンマッチング方法を説明したが、同様の方法で、モデルの回転やスケール変化等を検出するパターンマッチングも適用可能である。
【0061】
前述したパターンマッチングを実行する際に、所定の閾値以上のマッチングスコアが算出された場合、そのマッチングスコアRと位置(i、j)をRAM303に記憶させる。これにより、
図12に示すように、ある評価用画像に対するスコアマップが生成される。所定のスコア閾値を-1に設定すれば評価用画像内の全ての位置のスコアを含んだスコアマップが生成されることになる。
【0062】
さらに、CPU301は、RAM303に一時的に記憶しておいたスコアマップから最大検出スコア(第1位の検出スコア)と、最大検出スコアが得られた第1の位置から離れた第2の位置で得られた第2位の検出スコアを抽出する(
図10:S403)。抽出したこれらのスコアは記憶手段、例えばRAM303などに記憶させる。以下に前記2つのスコアの抽出方法を詳細に示す。
【0063】
最大検出スコア(第1位の検出スコア)とは、
図12に1201で示す山の頂点のように、スコアマップの中で示されるマッチングスコアRの最大値である。即ち、この最大検出スコアは、当該の評価画像で得られた類似度が第1位の値を有する第1のマッチングスコアである。
【0064】
また、第1のマッチングスコアが得られた評価画像中の空間的な位置とは異なる評価画像中の位置で得られた第2のマッチングスコアを取得する。この第2のマッチングスコアは、例えば
図12に示すように、最大検出スコアが検出された頂点を含む山1201とは別の第2位の高さの山1202の頂点における検出スコアである。最大検出スコアは1番目に大きな極大値であるが、第2のマッチングスコアは2番目に大きな極大値であると言ってもよい。なお、スコアマップに極大値が1つしか表れない場合は、スコアマップ中の最小値を第2のマッチングスコアとする。
マッチングの精度誤差やノイズによる誤差、個体差による誤差等が大きいと、同じ位置におけるマッチングスコアがずれて複数個所に現れるが場合がある。そのような場合には最大検出スコアが検出された山1201の第1の位置からある閾値(所定距離)以上、離間した位置において、最大となるマッチングスコアを第2のマッチングスコアとするのが好ましい。第1の位置と第2の位置との離間距離の閾値は、マッチングの精度誤差やノイズによる誤差、個体差による誤差等に基づく値を算出して予め設定しておいてもよいし、ユーザが任意に設定してもよい。例えば、最大検出スコアが検出された山1201の位置から画像のX、Y方向に10画素以内の位置を最大検出スコア近傍の範囲として定義することができる。この場合は、空間的に10画素を超えて離間した範囲内における最大のスコアを抽出して第2のマッチングスコアとしてもよい。
【0065】
所定の距離は、必ずしも最大検出スコアの位置を中心として所定の画素数以上、離間した位置であることを条件としなくてもよい。例えば、
図13に示すように、最大検出スコアの位置1301と第2位の位置1302に仮モデルを配置し、その2つの仮モデルの画像範囲の重複する態様によって、近傍を除いた範囲に該当するかを判定してもよい。2つの仮モデルの重なり具合(重複割合)は、例えば仮モデルの面積Mと、2つの仮モデルの重なった部分の面積NとからN/Mで算出する。この重複度(重複範囲)が所定の重複範囲以下(例えば所定の閾値以下)であれば、第2の検出スコアの位置が最大検出スコアの位置から所定の距離以上、離れていると判定する。重複度の所定の閾値を0.5に設定した場合は、最大検出スコアの位置に配置した仮モデルとその他の位置の仮モデルが50%以上重なったら閾値より近いとみなす。また、50%より小さければ最大検出スコア位置から閾値以上、離れているとみなし、その位置で得られたスコアを第2のマッチングスコアとして採用する。
【0066】
以上のようにして、ある1つの評価画像とある1つの仮モデルから、画像の類似度に相当するマッチングスコアに関して、第1位のマッチングスコアと第2位のマッチングスコアを取得することができる。取得した第1位のマッチングスコアと、第1位のマッチングスコアが得られた位置から離れた位置で得られた第2位のマッチングスコアは、RAM303に記憶させる。このマッチグスコア取得工程を実行するCPU301は、例えば画像処理装置300においてマッチングスコア取得部としての機能ブロックを構成する。
【0067】
そして、CPU301は、用意した全ての評価用画像に対して同様の処理を行ったか確認(S404)しながら、上記のステップS402、S403を実行する。取得した第1位のマッチングスコアの集合である第1のマッチングスコア群と、第2位のマッチングスコアの集合である第2のマッチングスコア群はRAM303に記憶させる。ステップS404で全ての評価用画像の処理を確認すると、次のステップS405に進む。以上のようにして、ある1つの仮モデルについて、複数の評価画像を用いて、第1のマッチングスコア群と第2のマッチングスコア群を取得することができる。
【0068】
ある1つの仮モデルについて全ての評価用画像に対しての処理が完了すると、当該仮モデルについての第1のマッチングスコア群と第2のマッチングスコア群の表(テーブルデータ)を得ることができる。例えば
図14のように、各評価用画像ごとに抽出した第1位と第2位のマッチングスコア群の表(テーブルデータ)がRAM303上に得られる。
図14では評価用画像が5枚の場合の例を示している。1401は評価用画像を識別する番号、1402、1403はそれぞれその評価用画像における第1位のマッチングスコア(最大検出スコア)と、その最大検出スコアの位置から所定距離以上、離間した位置における第2位のマッチングスコアの値である。
【0069】
図10のステップS405では、CPU301は、ステップS401で選択した特定の仮モデルについての評価値を以下のようにして算出する。例えば、この仮モデルについての評価値は、ステップS404までの処理で作成した
図14のスコアの表(テーブルデータ)に基づき算出する。
【0070】
図15は、この1つの仮モデルに対する評価値の演算結果を示している。
図15において、1501は評価用画像を識別する番号、1502、1503はそれぞれその評価用画像における最大検出スコアと、その最大検出スコアの位置から離間した(近傍以外)の第2位のスコアの値である。また、1504はこれら最大検出スコアと第2位のスコアの差分、1505は各評価用画像の最大検出スコアと第2位のスコアの平均値、最大値、最小値である。
【0071】
本実施形態では、例えば、ある仮モデルに対する評価値として、複数の評価用画像で得られた、最大検出スコアと、最大検出スコアが検出された位置から離間した(近傍以外)の第2位のスコアとの差分の最小値を採用する。例えば、
図15に評価値の演算結果を示した仮モデルの例では、3番目の評価用画像で得られた差分(1504)が最も小さく、この仮モデルの評価値は、0.25となる。
【0072】
なお、仮モデルに対する評価値の演算手法は、他にも考えられる。例えば、評価値の算出方法の一つは、各画像の最大検出スコアの平均値と最大検出スコアが検出された位置の近傍以外の第2のスコアの平均値をそれぞれ算出し、その差分を評価値とする手法である。この手法によると、
図15に評価値の演算結果を示した仮モデルの場合は、1505に示されるように、2つの平均値、0.952と0.572の差分である0.38がこの仮モデルの評価値となる。
【0073】
評価値の算出方法の他の一つは、各画像の最大検出スコアの最小値と、最大検出スコアが得られた位置の近傍以外で得られた第2のスコアの最大値をそれぞれ算出し、その差分を評価値とするものである。この手法によると、
図15に評価値の演算結果を示した仮モデルの場合は、1505に示されるように、0.87と0.67の差分となるため、0.2がこの仮モデルの評価値となる。仮モデルに対する評価値の演算手法は、上記のいくつかの手法以外の手法を当業者が適宜採用して構わない。例えば、
図15の表の値を使用して、適宜、1つの仮モデルに対し1つの評価値を算出する。
【0074】
さらに、CPU301は、
図10のステップS401からS405の処理を、用意した全ての仮モデルに対して実行する。そして、全ての仮モデルに対して評価値の算出が完了したと判定(S406)されると、
図10に詳細を示した仮モデルの評価値算出処理(
図4:S400)が完了する。
【0075】
最後に、CPU301は、ステップS400で作成した各仮モデルの評価値の中から、最大の評価値が得られた仮モデルを選択し、生産時にパターンマッチングとして用いる本モデルとして決定する(
図4:S500)。この決定した本モデルは、実際のパターンマッチング時に利用できるよう、記憶手段、例えば、HDD304に記憶させる。なお、この決定工程(
図4:S500)を実行するCPU301は、例えば画像処理装置300において決定部としての機能ブロックを構成することになる。
【0076】
以上のようにして、モデルの自動作成処理が終了する。CPU301は、前記ステップにて作成された本モデルとカメラ500で撮影された画像とでパターンマッチングを実行することにより、実際の生産機器200が稼働することになる。このパターンマッチング工程を実行するCPU301は、例えば画像処理装置300においてパターンマッチング部としての機能ブロックを構成する。
【0077】
以上のように、本実施形態によれば、誤検知の少ないパターンマッチング用のモデルを決定すべく、複数の仮モデルを作成して、評価用画像にてパターンマッチングを実行し、その中で最も評価値の高い仮モデルを本モデル(正式モデル)として採用する。その評価値としては、例えば、評価用画像をパターンマッチングした際の最大検出スコアと、最大検出スコアが検出された位置の近傍以外で検出された第2のマッチングスコアとの差を採用している。つまり、最も誤検出が発生しやすい位置は、
図12のスコアマップの例では、山1202のように、マッチングスコアRが最高となる山1201とは別の位置に形成されるピークの位置である。そこで、これを最大検出スコア近傍以外の第2のマッチングスコアとして採用する。この誤検出を生じさせる可能性が高い山1202の第2のマッチングスコアと、検出の正解位置となる山1201で検出された最大検出スコアとの差が大きいマッチングモデルであるほど、誤検出の確率が低下する。
【0078】
そして、本実施形態によれば、複数の仮モデルの中から、この2つのスコアの差がなるべく大きくなるようなモデルを自動的に選択することができる。また、本実施形態では、モデルの評価、選択は、生産ラインで実際に生産を開始する前に事前に実施しておくことができるため、実際の生産工程における監視時などにおいては、予め選択された一つのモデルでパターンマッチングを実行することができる。即ち、本実施形態では、実際の生産ライン監視のために行う画像処理において多数のマッチングモデルを用いてパターンマッチングを実行する必要がない。そのため、画像処理時間を増大させることがなく、高速に画像処理に基づく監視処理を実行することができる。また、様々な生産工程での背景やノイズ、ワーク形状等の影響によりスコアマップの形状が変形するような場合であっても、前述した2つのスコア差を利用することにより汎用的に適用することが可能となる。本実施形態によれば、処理時間を増大させることなく、様々な生産工程で適用可能な誤検知を防ぐパターンマッチングに使用するモデルの自動作成が可能となる。
【0079】
<実施形態2>
上記の実施形態1では、形状(エッジ)ベースのパターンマッチングに用いられるモデルの作成手法につき説明した。他の手法によるパターンマッチングのためのモデル作成に関しても、本発明の手法を実施することができる。以下、本実施形態2では輝度ベースのパターンマッチングに用いられるモデルの自動作成につき説明する。
【0080】
本実施形態2の生産装置の概略構成、および画像処理装置の構成は上記の実施形態1の
図2、
図3に示したものと同様である。
以下、画像処理装置300によるモデル作成と、パターンマッチング実行(画像処理方法)について説明する。画像処理装置300のCPU301は、プログラム321をHDD304から読み出して実行することにより、以下に説明する画像処理方法の各工程を実行する。
【0081】
モデル作成の全体の流れは、実施形態1の
図4と同様である。特に、
図4のステップS100、S200は実施形態1と同様であるが、本実施形態では、複数の仮モデルの作成(
図4:S300)は、
図16のような処理によって行う。
【0082】
図16の仮モデルの作成では、
図4のステップS100で取得した参照画像内のステップS200で設定した領域を基準領域として、基準領域の大きさや形状を変更して複数の仮モデルを作成する。
図16の処理の全体の流れは、前述の
図5の処理の流れと類似しており、まずステップS309にて、ある大きさや形状を有する基準領域について参照画像から部分画像を切り出し、仮モデルを作成し、HDD304に記憶する。その後、ステップS310で、大きさや形状を変更した全ての基準領域のそれぞれに対する仮モデルの作成が完了したかを判定しながら、ステップS311、S312を繰り返し実行する。
【0083】
図16のステップS311では、仮モデルの基準領域の定義(大きさや形状)を変更する。ここでは、基準領域が矩形であれば領域の幅、高さを、円形であれば直径の大きさを変更した領域を作成する。また、基準領域の中心を基準位置として、矩形や円形等様々な形状の変更も行うようにしてもよい。ステップS311では、基準領域に対して、上記のように何らかの一つの変更を加えた領域を作成する。
【0084】
ステップS312では、参照画像から、ステップS311で作成した領域に対応する部分画像を切り出し、パターンマッチング用の仮モデルとしてHDD304に記憶させる。ステップS310では、基準領域の変更とそれに基づいた仮モデルの作成を実行することによって、所定数の仮モデルを作成したか否かを判定し、このステップが肯定された場合には仮モデル作成処理を終了する。ステップS310が否定された場合には、ステップS311に進み、上記の処理を繰り返す。
【0085】
以下では、例えば、基準領域を矩形領域とし、与えられた基準領域の幅と高さを3通りずつ変更した全部で9通りの仮モデルを作成するものとする。
【0086】
本実施形態において、仮モデルの評価値算出処理の全体の流れは、上述の
図10とほぼ同様である。
図10のステップS401では、作成した複数の仮モデルから一つの仮モデルを選択する。続いて、ステップS402で、実施形態1と同様に事前に用意しておいた評価用画像に対して、パターンマッチングを実行する。この処理は、実施形態1とは異なり、以下に示すような輝度ベースのパターンマッチング処理を行う。
【0087】
例えば、
図11に示すように、仮モデルと同じ大きさの抽出窓を評価用画像内でピクセル単位で範囲をずらしながら、評価用画像から仮モデルに対応する大きさの部分画像を抽出する。そして、抽出した部分画像と仮モデルとのマッチングスコアRを下式(6)により求める。
【0088】
【0089】
上式(6)において、画像内の位置(i、j)とは、評価用画像から仮モデルに対応する大きさの画像を抽出した部分画像内と仮モデル内の位置に相当する。このスコアの値は1が最も類似性が高く、-1が最も低いことを示す。評価用画像内の全ての探索位置でのスコア計算が完了すると、パターンマッチングが終了となる。全て探索位置でのスコア計算が完了していなければ、次の探索位置に(i、j)を進めて、スコア計算を進める。
【0090】
このパターンマッチングを実行する際に、所定のスコア閾値以上のスコアが算出された場合、そのマッチングスコアRと位置(i、j)をRAM303に記憶しておく。これにより、実施形態1と同様に
図12に示すように、ある評価用画像に対するある仮モデルのスコアマップが生成される。所定のスコア閾値を-1に設定すれば評価用画像内の全ての位置のスコアマップが生成されることになる。
【0091】
以上のようにしてスコアマップを生成した後は、実施形態1と同様に
図10のステップS403~S406を実行し、全ての仮モデルに対して評価値を算出することができる。さらに、
図4のステップS500のモデル自動設定(複数の仮モデルの中から本モデルを選択)も実施形態1と同様に実施することができる。
【0092】
以上に示したように、パターンマッチングの演算方式が異なる場合、例えば、本実施形態のように輝度ベースのパターンマッチングを行う場合でも、スコア値の計算方式を適宜定めておけば、モデルの自動作成が可能である。当然ながら、以上のようにして作成されたモデルを実際のパターンマッチングを行う場合は、モデル作成時と同じ輝度ベースのパターンマッチングを実行する。
図2のような生産ラインでは、CPU301は、前記ステップにて作成された本モデルとカメラ500で撮影された画像とでパターンマッチングを実行することにより、実際の生産機器200が稼働することになる。
【0093】
本実施形態によれば、パターンマッチングが輝度ベースで行われる場合でも、スコアマップを用いた演算によって、実際の製造工程における画像処理に利用するマッチングモデルを自動作成することができる。以上では、画像処理に利用されるパターンマッチングが、実施形態1のような形状(連結エッジ)ベースのものである場合、あるいは実施形態2のような輝度ベースのものである場合の例を示した。しかしながら、本発明のスコアマップを用いた演算によるモデル生成技術は、マッチングスコアを算出できるパターンマッチングを行うのであれば、パターンマッチングの処理形態を問わず様々なパターンマッチングのモデル作成に実施可能である。
【0094】
本発明は、上述実施例の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、システムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えばASIC)によっても実現可能である。
【符号の説明】
【0095】
1012…モデル、200…生産機器、300…画像処理装置、401…ロボット、500…カメラ、400…ロボット制御装置、301…CPU、302…ROM、303…RAM。