以下、添付図面を参照して、本実施の形態の画像処理装置を備えた実装装置について説明する。図1は、第1の実施の形態の実装装置の上面模式図である。図2は、一般化ハフ変換の説明図である。図3は、通常の一般化ハフ変換の投票空間の説明図である。なお、本実施の形態では、実装装置に画像処理装置を備える構成について説明するが、画像処理装置は撮像装置を備えた他の装置に適用可能である。
図1に示すように、実装装置1は、テープフィーダ等の部品供給装置10から供給された部品(不図示)を、実装ヘッド40によって基板Wの載置面に搭載するように構成されている。実装装置1の基台20の略中央には、X軸方向に沿って基板搬送部21が配設されている。基板搬送部21は、X軸方向の一端側から部品搭載前の基板Wを実装ヘッド40の下方に搬入して位置決めし、部品搭載後の基板WをX軸方向の他端側から搬出する。また、基台20上には、基板搬送部21を挟んだ両側に多数の部品供給装置10がX軸方向に横並びに配置されている。
部品供給装置10にはテープリール11が着脱自在に装着され、テープリール11には多数の部品をパッケージングしたキャリアテープ(不図示)が巻回されている。各部品供給装置10は、装置内に設けられたスプロケットホイールの回転によって実装ヘッド40にピックアップされる受け渡し位置に向けて順番に部品を繰り出している。実装ヘッド40の受け渡し位置では、キャリアテープから表面のカバーテープが剥離され、キャリアテープのポケット(不図示)内の部品が外部に露出される。なお、本実施の形態では、部品供給装置10としてテープフィーダを例示したが、ボールフィーダ等で構成されていてもよい。
基台20上には、実装ヘッド40をX軸方向及びY軸方向に移動させるXY移動部30が設けられている。XY移動部30は、Y軸方向に平行に延びる一対のY軸部31と、X軸方向に平行に延びるX軸部32とを有している。一対のY軸部31は、基台20の四隅に立設された支持部(不図示)に支持されており、X軸部32は、一対のY軸部31上にY軸方向に移動可能に設置されている。X軸部32上には、実装ヘッド40がX軸方向に移動可能に設置されている。実装ヘッド40は、XY移動部30によって部品供給装置10と基板Wとの間で往復移動される。
実装ヘッド40は、ノズル41を備えた複数(本実施の形態では3つ)のヘッド部42を有している。ヘッド部42は、Z軸モータ(不図示)によってノズル41をZ軸方向に上下動すると共に、θモータ(不図示)によってノズル41をZ軸回りに回転する。各ノズル41は吸引源(不図示)に接続されており、吸引源からの吸引力によって部品を吸着保持する。なお、実装ヘッド40のノズル41は、上記の吸引ノズルに限定されず、部品供給装置10から部品を取り出して基板Wに搭載可能であればよく、例えばグリッパーノズルで構成されていてもよい。
実装ヘッド40には、測定対象の高さを測定する高さセンサ45と、ノズル41に吸着された部品の形状寸法や吸着ズレ等を認識可能な不図示のレーザ認識部とが設けられている。高さセンサ45は、発光素子から測定対象に向けて発光し、測定対象からの反射光を受光素子で受光することで実装ヘッド40から測定対象までの距離を測定している。不図示のレーザ認識部は、多数の発光素子と受光素子とを水平方向で対向させ、横一列に並んだレーザ光を遮らせるように部品を上下動及び回転させることで、部品の形状寸法や吸着ズレを認識している。
また、実装ヘッド40には、基板WのBOC(Board Offset Correction)マークを撮像する基板撮像部48と、ノズル41による部品の搭載動作を撮像するノズル撮像部49とが設けられている。基板撮像部48は、BOCマークの撮像画像に基づいて基板Wの位置、傾き、伸縮等を認識している。ノズル撮像部49は、ノズル41による吸着前後の部品を撮像する他、基板Wに対する搭載前後の部品を撮像して、これらの各画像をトレーサビリティ情報として保存している。また、ノズル41による吸着前の部品の撮像画像から部品の吸着位置が認識される。
実装装置1の基台20上には、ノズル41に吸着された部品を下方から撮像する部品撮像部(撮像装置)25が設けられている。部品撮像部25は、実装ヘッド40による搬送中の部品を撮像して、部品の傾きや高さ等を認識している。また、実装装置1には、テンプレートマッチングによって部品撮像部25に撮像されたサーチ画像内の部品を認識する画像処理装置50が設けられている。このような部品認識においては、部品のサイズ変動や所定角度以上(例えば、10度以上)の角度ズレ等が起こる場合があり、想定外の部品についても適切な対応が求められている。
テンプレートマッチングでは、事前に生成されたテンプレート画像がティーチングデータとして使用されるが、上記したような部品のサイズ変動や角度ズレ等が起こると、ティーチングデータを作り直さなければならない。また、ノイズ成分を減らしてマッチング処理を簡素化するために、部品認識時に対象物以外が視野に入らないようにして撮像しなければならなかった。これらの不具合を解消するために、部品のサイズ変動、位置ズレ、ノイズ成分等に強く、ロバスト性の高い一般化ハフ変換を部品認識に採用することが検討されている。
ここで一般化ハフ変換について簡単に説明する。図2Aに示すように、一般化ハフ変換では、テンプレート画像60のエッジ点P1−P4から基準点Oに向かうベクトルが求められ、エッジ点P1−P4にベクトル(α、L)を関連付けたエッジ点リストが作成されている。このテンプレート画像60の各エッジ点P1−P4から基準点Oに向かうベクトルを用いて、x、yを座標軸とする投票空間(x、y)に対して対象画像70(図2B参照)の基準点候補が投票される。対象画像70の各エッジ点P1’−P4’にテンプレート画像60の各ベクトルが設定され、ベクトルが示すマスに対して基準点候補が投票される。
仮に、図2Bに示すように、対象画像70の回転角度やスケールがテンプレート画像60(図2A参照)に一致している場合、対象画像70の個々のエッジ点P1’−P4’を始点として、テンプレート画像60の全てのベクトル(α1、L1)−(α4、L4)が設定される。この結果、投票空間のマスS1−S4に1票、マスS5−S8に2票、マスS9に4票が投票される。そして、投票数が最大になるマスS9を基準点候補O’とする対象画像70の位置が検出される。このように、一般化ハフ変換では、投票数が最大になる基準点候補O’に基づいて対象画像70のパラメータが求められる。
図2Cに示すように、対象画像70の回転角度が不明な場合には、スケールについて考えなければ、回転角度を変えた複数のテンプレート画像60のベクトルを用いて投票空間に投票すればよい。図2Cの図示右側に示すように、基準点候補O’の投票数が最大になる対象画像70の位置及び回転角度が検出される。同様に、対象画像70のスケールが不明な場合には、回転角度について考えなければ、スケールを変えた複数のテンプレート画像60のベクトルを用いて投票空間に投票すればよい。図2Dの図示右側に示すように、基準点候補O’の投票数が最大になる対象画像70の位置及びスケールが検出される。
しかしながら、図3に示すように、対象画像の位置x、y、回転角度θ、スケールsを検出するためには、各パラメータの変動範囲をカバーする4次元の投票空間で投票しなければならない。このため、投票回数が多くなって処理時間が長くなると共に、メモリ容量が膨大になって実用的ではない。そこで、本実施の形態の画像処理装置50(図4参照)では、一般化ハフ変換においてスケール変動を考慮しつつ回転角度θを検出した後に、回転角度θを固定した状態でスケールsを検出するようにしている。これにより、投票回数を減らすと共にメモリをコンパクト化し、処理速度を向上させるようにしている。
以下、本実施の形態の画像処理装置について説明する。図4は、第1の実施の形態の画像処理装置の機能ブロック図である。図5は、第1の実施の形態のテンプレートのデータ構造の一例を示す図である。図6は、第1の実施の形態の投票空間の一例を示す図である。図7は、第1の実施の形態のマトリックスデータの一例を示す図である。図8は、第1の実施の形態の第1の検出処理の一例を示す図である。図9は、第1の実施の形態の第2の検出処理の一例を示す図である。図10は、第1の実施の形態の第3の検出処理の一例を示す図である。
図4に示すように、画像処理装置50には、テンプレート画像生成部51、テンプレートデータ生成部52、ピラミッド画像生成部53、エッジ検出部54が設けられている。また、画像処理装置50には、粗検出用に第1、第2の検出部55、56が設けられ、精密検出用に第3の検出部57が設けられている。テンプレート画像生成部51は、サーチ対象の寸法データやサーチ対象の特徴的な輪郭データ(ポリゴンデータ)等に基づいてテンプレート画像を生成する。テンプレート画像はサーチ対象となる部品毎に用意されており、部品認識の対象になる部品の種類に応じて適切なテンプレート画像が使用される。また、カメラで部品を撮像し、得られた画像データをテンプレート画像として使用しても構わない。
図4及び図5に示すように、テンプレートデータ生成部52は、テンプレート画像60に基づいてテンプレートデータを生成する。テンプレートデータには、テンプレート属性として、テンプレートID、画像データ、基準点、エッジエンベロプ、エッジ点数、エッジ点リストが設定されている。なお、テンプレートデータには、テンプレート画像60の重心点が基準点Oとして設定されるが、任意の位置が基準点Oとして設定されてもよい。エッジ点数は、適宜変更されてもよく、粗検出でエッジ点数を減らして検出処理を高速化し、精密検出でエッジ点数を増やして検出精度を向上させてもよい。
また、エッジ点リストには、エッジ点P毎に基準点OへのベクトルVP−O、エッジ勾配ベクトルVG、エッジ高さ、極大点フラグの4つのパラメータが設定されている。基準点OへのベクトルVP−Oは各エッジ点Pから基準点Oまでのベクトルを示し、エッジ勾配ベクトルVGはエッジ点Pでの法線ベクトルを示している。エッジ高さはエッジ勾配方向でのコントラストの大きさを示し、極大点フラグはエッジ点Pが極大か否かを示している。なお、エッジ点リストには、エッジ勾配ベクトルの代わりにエッジ点Pでの接線ベクトルを示すエッジ接線ベクトルVTが設定されていてもよい。
図4に示すように、ピラミッド画像生成部53は、サーチ画像の圧縮率を可変して、ピラミッド画像として解像度の異なる複数のサーチ画像を生成する。低解像度のサーチ画像は粗検出に使用され、高解像度のサーチ画像は精密検出に使用される。エッジ検出部54は、Sobelフィルタ、ガウシアンフィルタ等を組み合わせて、サーチ画像から対象画像の複数のエッジ点(エッジ点列情報)を検出する。エッジ検出部54は、粗検出用のサーチ画像に対してはエッジ点の検出数を抑え、精密検出用のサーチ画像に対してはエッジ点の検出数を増やしている。
図4に示すように、粗検出では、一般化ハフ変換を用いて低解像度のサーチ画像から対象画像が検出される。上記したように、対象画像の位置、回転角度、スケールを同時に検出すると投票回数が膨大になるため(図3参照)、回転角度とスケールとを分けて一般化ハフ変換するようにしている。これにより、図6に示すように、位置x、yの変動範囲をカバーする投票空間を、回転角度θ又はスケールsのいずれかの変動範囲分だけ用意すればよく、投票回数を減らして一般化ハフ変化の処理速度を高速化することが可能になっている。
しかしながら、対象画像は、位置x、y、回転角度θ、スケールsのパラメータで示されるため、いずれか一つのパラメータを完全に無視して投票することはできない。すなわち、サーチ画像から対象画像の位置x、y、回転角度θだけを検出しようとしても、対象画像のスケールが変動することによって、対象画像の位置x、y、回転角度θの検出結果に大きな誤差が生じてしまう。そこで、本実施の形態では、対象画像の位置x、y及び回転角度θの検出時に、対象画像のスケール変動を考慮した投票が実施される。
図7Aに示すように、対象画像のスケール変動を考慮した投票には、投票空間の複数のマスに対して複数の基準点候補を同時に投票するマトリックスデータ(投票マスク)が使用される。マトリックスデータは、1つの基準点候補だけではなく、その周辺の基準点候補にも投票するように構成されている。この結果、投票空間の1つのマスに投票数が集中することがなく、一定領域の複数のマスに投票数が分散される。このように、対象画像のスケール変動によって基準点候補にズレが生じることを考慮して、一定領域の複数の基準点候補に投票している。
また、マトリックスデータは、投票空間においてx、y方向に最大で5×5マスに対して投票可能であり、中心の基準点候補よりも周辺の基準点候補の投票数を少なくしている。マトリックスデータの投票数に重み付けすることで、対象画像の位置x、y(回転中心)及び回転角度θを示す複数の基準点候補をより精度よく絞り込むことができる。なお、マトリックスデータの重み付けは、対象画像のスケール変動に応じて決定される。投票数の重み付けは、標準偏差をσとした以下式(1)の重み関数にて決定されてもよい。また、マトリックスデータのサイズは、5×5マスに限らず、対象画像のスケール変動に応じて適宜変更することが可能である。
図7Bに示すように、マトリックスデータでカバーしきれないスケール変動の場合には、スケールの変動方向にマトリックスデータを前後させて複数回に亘って投票される。この場合、スケール変動によって基準点候補がエッジ点からベクトル方向に変動するため、マトリックスデータがベクトル方向で前後に動かされる。例えば、マトリックスデータでカバー可能なスケール変動量が10%、実際の対象画像のスケール変動量が30%の場合には、ベクトルの先端に示される位置で投票され、さらにマトリックスデータのサイズ分だけベクトル方向で前後に動かした位置で投票される。
図4及び図8に示すように、第1の検出部55は、上記のスケール変動を考慮したマトリックスデータを用いて、テンプレート画像のエッジ点が対象画像のエッジ点になる複数の基準点候補を、位置x、y及び回転角度θの変動範囲をカバーする投票空間上に投票する。これにより、対象画像にスケール変動が生じる範囲内で、対象画像の位置x、y(回転中心)及び回転角度θを示す基準点候補が絞られる。そして、第1の検出部55は、投票空間に投票された一定領域の複数の基準点候補から対象画像の位置及び回転角度θを検出する。
例えば、位置x、yの変動範囲をカバーする複数の投票空間が、回転角度θの変動方向で所定角度置きに用意されており、各投票空間でマトリックスデータを用いて複数の基準点候補が投票される。各投票空間で一定数以上(例えば、3票以上)の投票数を獲得した複数の基準点候補が票数に応じてラベリングされる。これら複数の基準点候補の投票数の加重平均が最も高くなる対象画像の回転角度θ(図8ではθ1)が検出され、このときの複数の基準点候補を示す対象画像の位置x、yが検出される。なお、対象画像の位置x、yは、破線で囲んだ複数の基準点候補のバラツキに応じた変動量をもっている。
なお、対象画像のスケール変動がマトリックスデータでカバーできない場合には、スケールの変動方向にマトリックスデータを前後させて複数回に亘って投票することも可能である(図7B参照)。また、第1の検出部55による対象画像の回転角度θの検出方法は、複数の基準点候補から最も適切な回転角度θを検出可能であればよく、加重平均が高くなる回転角度θに限定されない。また、位置x、y及び回転角度θの変動範囲をカバーする投票空間を用意すればよいので、メモリ領域が膨大になることもない。このようにして、テンプレート画像に対応する対象画像の位置x、y及び回転角度θが検出される。
図4及び図9に示すように、第2の検出部56は、第1の検出部55で検出された回転角度θのテンプレート画像のエッジ点が対象画像のエッジ点になる基準点候補を、位置x、y及びスケールsの変動範囲をカバーする投票空間上に投票する。そして、第2の検出部56は、投票空間で投票数が最大になる基準点候補から対象画像の位置x、y及びスケールsを検出する。これにより、投票空間内の複数の基準点候補から、対象画像の位置x、y、回転角度θ、スケールsを示す基準点候補が絞られる。
例えば、位置x、yの変動範囲をカバーする複数の投票空間が、スケールsの変動方向で所定スケール置きに用意されており、各投票空間で基準点候補が投票される。各投票空間のうち投票数が最大になる基準点候補のスケールs(図9ではs1)が検出され、このときの基準点候補を示す位置x1、y1が検出される。この場合、第1の検出部55によって絞り込まれた破線に示す一定領域内で1つの基準点候補に絞り込まれる。したがって、破線に示す一定領域以外の投票を無視すると共に、一定領域内から投票数が最大の基準点候補を探せばよいため、第2の検出部56の処理量を減らして処理速度を速めることができる。
また、位置x、y及び回転角度sの変動範囲をカバーする投票空間を用意すればよいので、メモリ領域が膨大になることもない。また、位置x、y及び回転角度θの変動範囲をカバーする投票空間に使用したメモリ領域を、位置x、y及びスケールsの変動範囲をカバーする投票空間に使用している。これにより、回転角度θを検出時とスケールsの検出時とでメモリ領域を切り替えて使用することで、メモリ容量を低減することができる。このようにして、テンプレート画像に対応する対象画像の位置x、y、回転角度θ、スケールsが検出される。
なお、粗検出においては、第1の検出部55による回転角度θの検出処理が繰り返されてもよい。例えば、第1の検出部55が、回転角度θの変動方向で10度置きに投票空間を設定して対象画像の回転角度θを検出した後に、今度は回転角度θの変動方向で1度置きに投票空間を設定して対象画像の回転角度θを再検出してもよい。これにより、第1の検出部55による検出精度を高めると共に投票回数を減らして投票時間を短くすることができる。同様に、粗検出においては、第2の検出部56によるスケールsの検出処理が繰り返されてもよい。
また、投票空間の複数のマスの大きさは、第1、第2の検出部55、56による検出処理毎に可変されてもよい。例えば、第1の検出部55が10度置きに投票空間を設定して回転角度θを検出する場合には、投票空間の1マスが4ピクセル(2×2ピクセル)に設定されることが好ましい。また、第1の検出部55が1度置きに投票空間を設定して回転角度θを検出する場合には、投票空間の1マスが1ピクセルに設定されることが好ましい。さらに、第2の検出部がスケールsを検出する場合には、投票空間の1マスが1ピクセルに設定されることが好ましい。
ところで、一般化ハフ変換では、対象画像の位置x、y、回転角度θ、スケールsに僅かな誤差が生じる可能性がある。このため、図4及び図10に示すように、第3の検出部57は、一般化ハフ変換で生じた誤差を補正するように、高解像度のサーチ画像から対象画像70の位置x、y、回転角度θ、スケールsを精密検出している。このとき、第1、第2の検出部55、56で粗検出された位置x、y、回転角度θ、スケールsのテンプレート画像60と対象画像70とをアフィン変換によって照合させている。
例えば、アフィン変換後のテンプレート画像60の各エッジ点P1−Piと対象画像70の各エッジ点P1’−Pi’との対応リストが生成され、対応する各エッジ点P1−Pi、P1’−Pi’同士が比較される。このとき、ICP(Iterative Closest Point)法によってアフィン変換が繰り返されて、エッジ点P1−Pi、P1’−Pi’同士の距離が最小になるようなパラメータが算出される。このようにして、テンプレート画像60とサーチ画像内の対象画像70とが照合される。このときの、対象画像70の位置x、y、回転角度θ、スケールsは実装装置1(図1参照)の制御部(不図示)に位置決め情報として出力される。
本実施の形態では、第1、第2の検出部55、56による粗検出に低解像度のサーチ画像を用い、第3の検出部57による精密検出に高解像度のサーチ画像を用いている。また、第1、第2の検出部55、56による粗検出のエッジ点数を少なくし、第3の検出部57による精密検出のエッジ点数を多くしている。これにより、対象画像70の位置x、y、回転角度θ、スケールsの検出の投票処理に要する時間を短くすると共に、テンプレート画像60と対象画像70をアフィン変換によって精度よく照合することができる。なお、サーチ画像の解像度、エッジ点数は適宜変更することが可能である。
また、画像処理装置50の各部は、各種処理を実行するプロセッサやメモリ等により構成されている。メモリは、用途に応じてROM(Read Only Memory)、RAM(Random Access Memory)等の一つ又は複数の記憶媒体で構成されている。なお、本実施の形態では、画像処理装置50が実装装置1(図1参照)の内部に組み込まれているが、画像処理装置50が実装装置1とは別体に設置されていてもよい。また、画像処理装置50によって実行される画像処理方法のプログラムは、実装装置1のメモリに記憶されてもよいし、画像処理装置50のメモリに記憶されてもよい。
以下、図11及び図12を参照して、画像処理装置による画像処理方法について説明する。図11は、第1の実施の形態のテンプレート画像の一例を示す図である。図12は、第1の実施の形態の画像処理方法のフローチャートの一例を示す図である。なお、以下の説明では、サーチ画像から対象画像として部品を検出する場合を例示して説明するが、この構成に限定されるものではなく、例えば、サーチ画像から部品以外を検出することも可能である。また、ここでは説明の便宜上、図4の符号を使用しながら説明する。
図11に示すように、テンプレート画像生成部51によってサーチ対象になる部品の種類に応じて、適切なテンプレート画像60が生成されている。テンプレート画像60は、例えば、部品本体部やリード部の輪郭データであり、縦横寸法、端子幅、リード数等の部品データや、オペレータの入力によって生成される。もしくは、カメラにて正姿勢の部品を撮像し、その画像データをテンプレート画像60として用意することができる。テンプレート画像60の種類としては、例えば、チップ部品、リード部品、異形部品のテンプレート画像60が用意される。これら複数種類のテンプレート画像60から対象となるテンプレート画像60が適時選択される。
図12に示すように、画像処理装置50にサーチ画像が入力されると、ピラミッド画像生成部53によって解像度の異なる複数のサーチ画像が生成される(ステップS01)。次に、エッジ検出部54によって低解像度のサーチ画像から複数のエッジ点(エッジ点列情報)が検出される(ステップS02)。次に、第1の検出部55によって低解像度のサーチ画像からテンプレート画像に対応する対象画像の位置x、y、回転角度θが粗検出される(ステップS03)。このとき、部品の種類に応じたテンプレートデータが読み込まれる。
位置x、y及び回転角度θの粗検出では、一般化ハフ変換によって回転角度θの変動方向で所定角度置きに用意された投票空間に、スケール変動を考慮したマトリックスデータを用いて複数の基準点候補が同時に投票される。そして、一定数以上の投票数を獲得した複数の基準点候補の加重平均が最も高くなる回転角度θと、この複数の基準点候補を示す位置x、yとが検出される(図8参照)。この場合、検出された回転角度θの変動範囲(例えば、±5度)に、さらに細かい角度単位(例えば、1度単位)の投票空間を設定して、回転角度θを再検出して検出精度を高めてもよい。
次に、第2の検出部56によってサーチ画像からテンプレート画像に対応する対象画像の位置x、y、スケールsが粗検出される(ステップS04)。位置x、y及びスケールsの粗検出では、第1の検出部55に検出された回転角度θに固定した状態で、一般化ハフ変換によってスケールsの変動方向で所定スケール置きに用意された投票空間に基準点候補が投票される。そして、投票数が最大になる基準点候補のスケールsと、このときの基準点候補を示す位置x、yとが検出される(図9参照)。
次に、エッジ検出部54によって高解像度のサーチ画像から複数のエッジ点(エッジ点列情報)が検出される(ステップS05)。次に、第3の検出部57によって高解像度のサーチ画像からテンプレート画像に対応する対象画像の位置x、y、回転角度θ、スケールsが精密検出される(ステップS06)。位置x、y、回転角度θ、スケールsの精密検出では、テンプレート画像がアフィン変換されて、テンプレート画像と対象画像とが照合される(図10参照)。このようにして、サーチ画像内の対象画像(部品)の位置x、y、回転角度θ、スケールsが位置決め情報として検出される。
以下、図13を参照して、実装装置による部品の実装動作について説明する。図13は、第1の実施の形態の部品の実装動作のフローチャートの一例を示す図である。なお、ここでは説明の便宜上、図1の符号を使用しながら説明する。
図13に示すように、実装ヘッド40によって部品供給装置10から部品がピックアップされると(ステップS11)、実装ヘッド40のノズル41の先端に吸着された部品が部品撮像部25によって撮像される(ステップS12)。次に、部品撮像部25から画像処理装置50に部品を含むサーチ画像が入力されて、画像処理装置50において部品認識が実施される(ステップS13)。画像処理装置50の部品認識では、上記したステップS01からステップS06の処理によってサーチ画像内の対象画像が検出されて、部品の位置決め情報が生成される。
次に、対象画像の位置決め情報に基づいて実装ヘッド40によって部品の姿勢が補正され(ステップS14)、実装ヘッド40によって基板Wの所望の位置に部品が適切な姿勢で実装される(ステップS15)。このように、部品のサイズ変動、位置ズレ、ノイズ成分等に強く、ロバスト性の高い一般化ハフ変換を部品認識に採用することで、部品のサイズ変動や所定角度以上の角度ズレ等が起きた想定外の部品であっても、基板Wに対して適切に実装することができる。また、部品のサイズ変動が生じていても部品データを作り直す必要もない。さらに、部品認識の処理速度が高速化されるため、実装装置1全体のスループットを向上できる。
以上のように、第1の実施の形態の画像処理装置50によれば、スケール変動を考慮したマトリックスデータを用いて、対象画像の位置x、y及び回転角度θを示す複数の基準点候補が投票空間に投票される。これにより、スケール変動が生じる範囲内で、対象画像の位置x、y及び回転角度θを示す基準点候補が複数に絞られる。複数の基準点候補から回転角度θと回転中心が検出され、この回転角度θを固定、回転中心によって基準点候補の存在領域を限定した状態で対象画像の位置及びスケールsを示す基準点候補が投票空間に投票される。これにより、投票空間内の複数の基準点候補から、対象画像の位置x、y、回転角度θ、スケールsを示す基準点候補が絞られる。このように、回転角度θの検出とスケールsの検出を個別に実施することで、投票空間をコンパクト化すると共に全体の投票回数を減らすことができ、テンプレート画像に対する対象画像の照合処理を高速化することができる。
ところで、テンプレートマッチングでは、サーチ対象の部品の表面の凹凸や模様等のように、テンプレート画像には存在しない箇所も対象画像のエッジ点として検出される場合がある。テンプレート画像に存在しないエッジ点についても、同様な投票処理を実施すると、処理速度が遅くなると共に不要なエッジ点にメモリ領域を確保しなければならない。そこで、第2の実施の形態の画像処理装置では、回転角度の検出時に所定の投票領域(複数の基準点候補)に投票したエッジ点を抽出して、後段のスケールの検出時の対象画像のエッジ点を絞り込むようにしている。
以下、第2の実施の形態の画像処理装置について説明する。なお、第2の実施の形態の画像処理装置は、回転角度の検出後に対象画像の複数のエッジ点を絞り込む点でのみ第1の実施の形態と相違する。したがって、第1の実施の形態と同様な構成については説明を省略する。図14は、第2の実施の形態の画像処理装置の機能ブロック図である。図15は、第2の実施の形態の抽出処理の一例を示す図である。図16は、第2の実施の形態の抽出前後のエッジ点の一例を示す図である。なお、以下では、説明の便宜上、第1の実施の形態と同一の名称には同一の符号を付して説明する。
図14に示すように、画像処理装置50の機能ブロックには、上記したテンプレート画像生成部51、テンプレートデータ生成部52、ピラミッド画像生成部53、エッジ検出部54、第1、第2、第3の検出部55、56、57に加えて、抽出部59が設けられている。抽出部59は、エッジ検出部54で検出された対象画像の複数のエッジ点のうち、第1の検出部55が回転角度を検出した複数の基準点候補に投票したエッジ点を抽出する。これにより、対象画像の複数のエッジ点のうち、回転中心付近に投票したエッジ点に絞って、後段の第2の検出部56で第2の検出処理が実施される。
具体的には、図15に示すように、回転角度の検出処理ではエッジ検出部54で検出された対象画像の各エッジ点で投票空間に対して投票される。図示左側に示すように対象画像の全てのエッジ点で投票処理が実施されており、この段階では破線で囲んだ複数の基準点候補に投票したエッジ点が不明である。このため、図示右側に示すように抽出部59は、エッジ検出部54で検出されたエッジ点で再度投票して、投票先が破線で囲んだ複数の基準点候補になるエッジ点だけを抽出している。抽出部59による投票処理では、第1の検出部55で検出された回転角度θ1のテンプレート画像が使用される。
この場合、抽出部59は、第1の検出部55で検出された回転角度θ1のテンプレート画像のエッジ点が対象画像のエッジ点になる基準点候補を、当該回転角度θ1の投票空間上で再度投票する。そして、抽出部59は、基準点候補に投票したエッジ点についてはフラグを立てて、フラグが立っていないエッジ点を無視し、フラグが立ったエッジ点のみを抽出している。このように、第1の検出部55で投票された複数の基準点候補から逆引きして、対象画像のエッジ点を絞り込んでいる。なお、抽出部59は、マトリックスデータを用いずに投票するが、上記したマトリックスデータを用いて投票してもよい。
第2の検出部56では、エッジ点を絞った状態で第2の検出処理を実施することができるため、投票処理の処理負担を減らして処理速度を速めると共に、エッジ点に使用するメモリ容量を低減することができる。例えば、図16Aに示すように、エッジ検出直後の対象画像には、サーチ対象の部品の輪郭だけでなく、輪郭の内側にも多数のエッジ点が存在している。このため、後段の第2の検出部56で対象画像の全てのエッジ点で投票処理が実施されると、部品の輪郭だけのテンプレート画像と比べてエッジ点が多く、輪郭の内側のエッジ点でも投票処理が発生する分だけ処理負担が大きくなる。
一方で、図16Bに示すように、対象画像の全てのエッジ点に対して上記した抽出処理を実施すると、テンプレート画像に対応した輪郭のエッジ点だけが抽出される。テンプレート画像と明らかに異なる輪郭の内側のエッジ点が大幅に削減されるため、後段の第2の検出部56での投票処理の処理負担が軽減されている。なお、第1の検出部55による回転角度の検出処理が繰り返される場合には、抽出部59による抽出処理の実施タイミングは特に限定されないが、回転角度の検出精度が高い最後の検出処理後にエッジ点の抽出処理を実施することが好ましい。
例えば、第1の検出部55において1回目に±5度の誤差で回転角度が検出され、2回目に±0.5度の誤差で回転角度が検出される場合には、2回目の回転角度の検出後に抽出部59によるエッジ点の抽出処理が実施される。より正確な回転角度で抽出処理が実施されるため、エッジ点の抽出精度を高めることができる。また、回転角度の検出後においてもスケール変動は存在するため、投票空間の1マスが細かいとエッジ点の抽出数が少なくなり過ぎる。このため、エッジ点の抽出時の投票空間は1マスが複数のピクセル(例えば9ピクセル(3×3ピクセル))に設定されることが好ましい。
続いて、図17を参照して抽出部によるエッジ点の抽出処理について説明する。図17は、第2の実施の形態の抽出処理の一例を示すフローチャートである。なお、エッジ検出部によってサーチ画像から対象画像のエッジ点が検出されているものとする。また、ここでは説明の便宜上、図14の符号を使用しながら説明する。
第1の検出部55によって対象画像の回転角度が検出されると、抽出部59によって複数のエッジ点のうち1つ目のエッジ点から投票処理が開始される(ステップS21)。この場合、第1の検出部55で検出された回転角度のテンプレート画像を用いて投票空間に投票処理が実施される。次に、エッジ点からの投票先の座標が算出され(ステップS22)、投票先の座標が回転角度検出時の複数の基準点候補のいずれかに該当するか否かが判定される(ステップS23)。この場合、投票空間のマス(例えば、3×3ピクセル)が大きめに設定されているため、複数の基準点候補の投票領域にマージン(許容領域)が加えられている。
投票先の座標が複数の基準点候補に該当する場合(ステップS23でYes)には、エッジ点にフラグが設定される(ステップS24)。エッジ点にフラグが設定された場合、又は投票先の座標が複数の基準点候補に該当しない場合(ステップS23でNo)には、全てのエッジ点で投票処理が完了したか否かが判定される(ステップS25)。全てのエッジ点で投票処理が完了している場合(ステップS25Yes)には抽出処理が終了し、全てのエッジ点で投票処理が完了していない場合(ステップS25No)にはステップS21からステップS25の処理が繰り返される。
以上のように、第2の実施の形態の画像処理装置50によれば、第1の実施の形態と同様に、投票空間をコンパクト化すると共に全体の投票回数を減らすことができ、テンプレート画像に対する対象画像の照合処理を高速化することができる。さらに、第2の検出部56による投票処理前に対象画像のエッジ点を絞ることができるため、投票処理の処理負担を減らして処理速度を速めると共に、エッジ点に使用するメモリ容量を低減することができる。
なお、本発明は上記各実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている大きさや形状などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
例えば、各実施の形態において、マトリックスデータの投票数が重み付けされる構成について説明したが、マトリックスデータの投票数が重み付けされていなくてもよい。すなわち、マトリックスデータによって各基準点候補に対して1票ずつ投票してもよい。
また、各実施の形態において、位置x、y及び回転角度θの変動範囲をカバーする投票空間に使用したメモリ領域を、位置x、y及びスケールsの変動範囲をカバーする投票空間に使用する構成にしたが、この構成に限定されない。位置x、y及び回転角度θの変動範囲をカバーする投票空間に使用するメモリ領域と、位置x、y及びスケールsの変動範囲をカバーする投票空間に使用するメモリ領域とを個別に用意してもよい。
また、各実施の形態において、第1、第2の検出部55、56によって対象画像70の位置x、y、回転角度θ、スケールsが粗検出された後に、第3の検出部57によって対象画像70の位置x、y、回転角度θ、スケールsが精密検出される構成にしたが、この構成に限定されない。少なくとも、第1、第2の検出部55、56によって対象画像70の位置x、y、回転角度θ、スケールsが検出可能であればよい。
また、各実施の形態において、第1、第2の検出部55、56によって低解像度のサーチ画像が使用され、第3の検出部57によって高解像度のサーチ画像が使用される構成にしたが、この構成に限定されない。例えば、第1、第2の検出部55、56によって高解像度のサーチ画像が使用されてもよい。
また、各実施の形態において、画像処理装置50が、部品撮像部25から出力されたサーチ画像を画像処理する構成にしたが、この構成に限定されない。画像処理装置50は、ノズル撮像部49及び基板撮像部48から出力されたサーチ画像を画像処理してもよい。また、画像処理装置50は、実装装置1以外の他の装置に搭載されてもよい。
また、第2の実施の形態において、抽出部59は回転角度の検出処理で複数の基準点候補に投票したエッジ点を抽出する構成にしたが、この構成に限定されない。抽出部59は、所定の投票領域に投票したエッジ点を抽出する構成であればよい。例えば、所定の投票領域は、第1の検出部55によって投票された複数の基準点候補の荷重平均を中心とした所定範囲に設定されてもよい。
また、第2の実施の形態において、第1の検出部55による回転処理後に1回だけ抽出部59による抽出処理を実施する構成にしたが、この構成に限定されない。第1の検出部55による回転角度の検出処理が繰り返される場合には、回転角度の検出処理が実施される毎にエッジ点の抽出処理が繰返し実施されてもよい。
また、第2の実施の形態において、抽出部59の再投票によってエッジ点を抽出する構成について説明したが、この構成に限定されない。例えば、投票先をエッジ点にリンクさせてエッジ点を抽出することも可能である。