以下、本発明の実施の形態について添付図面を参照して詳細に説明する。本実施の形態に係る画像処理装置は、例えば、チップマウンタ等の電子部品実装装置に適用される。電子部品実装装置において、本実施の形態に係る画像処理装置は、例えば、実装対象となるチップの正確な位置決めを行うために必要となる画像処理を行う。なお、本実施の形態に係る画像処理装置が適用される装置については、電子部品実装装置に限定されるものではなく適宜変更が可能である。例えば、ハードウェアによる画像処理と、ソフトウェアによる画像処理とを並行して行う必要がある任意の装置に適用できる。
図1は、本実施の形態に係る画像処理装置100の構成を示すブロック図である。なお、図1に示すブロック図は、本発明に係る画像処理装置100を説明するために簡略化されたものであり、通常の画像処理装置が備える構成を更に備えていてもよい。
図1に示すように、画像処理装置100は、装置全体の制御を行う制御部としてのCPU101と、このCPU101に接続されたメモリ102とを備える。このメモリ102は、第1のメモリを構成するものであり、後述するデータ転送部105から転送される画像データを保存する。例えば、メモリ102には、DDR3 SDRAM(Double−Data−Rate3 Synchronous Dynamic Random Access Memory)を使用することができる。なお、メモリ102の構成についてはDDR3 SDRAMに限定されるものではない。
また、メモリ102は、CPU101が装置全体を制御するための制御プログラムや各種データ(例えば、フィルタ処理用のパラメータ)を保存する。制御プログラムには、メモリ102に保存された画像データに対して画像処理を行う場合の画像処理プログラムが含まれる。CPU101は、この画像処理プログラムに従って、メモリ102に保存された画像データに対して画像処理を行う。この場合において、CPU101による画像処理は、一般に複雑な判断やアルゴリズムを要するソフトウェアにより処理が有効な画像処理に適用される。例えば、後述するデータ転送部105から転送される画像データに対する画像処理だけでなく、画像処理部104による画像処理後の画像間演算などの画像処理がCPU101で行われる。
ここで、CPU101とメモリ102とは、専用のバスB1を介して接続されている。すなわち、このバスB1には他の構成要素がアクセスできず、CPU101が専有できる。例えば、バスB1には、複数の信号線で同時に複数のビットデータを転送可能なパラレル転送方式のバスを採用でき、1回の転送で同時に複数のビットデータを転送することができる。
また、画像処理装置100は、データ入力部103、画像処理部104、データ転送部105及びデータ転送部106を備える。なお、これらのデータ入力部103、画像処理部104、データ転送部105及びデータ転送部106の機能は、例えば、FPGA(Field−Programmable Gate Array)ボード上に実装された所定の論理回路で構成される。このようにFPGAボード上に実装された論理回路でこれらの構成要素を構成することにより、ハードウェアによる入力処理、画像処理及びデータ転送処理が実現される。
さらに、画像処理装置100は、データ転送部106と接続されたメモリ107を備える。このメモリ107は、第2のメモリを構成するものであり、データ転送部106により転送された画像データが保存される。例えば、データ入力部103、画像処理部104、データ転送部105及びデータ転送部106の機能がFPGAボード上に実装された論理回路で構成される場合、当該FPGAのプログラムは、メモリ107に保存される。例えば、メモリ107には、メモリ102と同様に、DDR3 SDRAMを使用することができる。なお、メモリ107の構成についてはDDR3 SDRAMに限定されるものではない。
ここで、データ転送部106とメモリ107とは、専用のバスB2を介して接続されている。すなわち、このバスB2には他の構成要素がアクセスできず、データ転送部106が専有きる。例えば、バスB2には、複数の信号線で同時に複数のビットデータを転送可能なパラレル転送方式のバスを採用でき、1回の転送で同時に複数のビットデータを転送することができる。
データ入力部103は、入力部を構成するものであり、画像処理対象となる画像データの入力処理を行う。データ入力部103は、入力処理を行った画像データをデータ転送部105及びデータ転送部106に出力する。すなわち、データ転送部105及びデータ転送部106には、データ入力部103を介して共通の画像データが入力される。
データ転送部105は、データ入力部103から入力された画像データをCPU101経由でメモリ102に転送する。また、データ転送部105は、後述するように、画像処理部104による画像処理後の画像データをCPU101経由でメモリ102に転送する。
データ転送部106は、データ入力部103から入力された画像データをメモリ107に転送する。また、データ転送部106は、後述するように、画像処理部104からの要求に応じてメモリ107内に保存された画像データを画像処理部104に出力する。
画像処理部104は、メモリ107に保存された画像データに対して画像処理を行う。画像処理部104は、メモリ107に保存された画像データに対して画像処理を行う際、データ転送部106に画像データの取得を要求し、専用バスB2を介してメモリ107から画像データを取得する。すなわち、画像処理部104は、CPU101とメモリ102との専用バスB1と異なるバス(専用バスB2)を介してメモリ107に接続されている。この場合において、画像処理部104による画像処理は、一般に単純な演算を繰り返すようなハードウェアによる処理が有効な画像処理に適用される。例えば、画素変換、画像間演算、エッジ強調、特徴量抽出、画像間パターンマッチングなどの画像処理が画像処理部104により行われる。
例えば、本実施の形態に係る画像処理装置100において、画像処理部104は、図示しない撮像装置で撮影された撮像データ(画像処理対象となる画像データ)と、予め準備された比較対象データとを比較することで両者の相関値を所定間隔で演算する(対象画像データと比較対象データとの画像間演算処理)。そして、その演算結果として画像処理後の画像データを順次、データ転送部105を介してメモリ102に出力する。一方、一定量の画像処理後の画像データがメモリ102に蓄積されると、CPU101は、これらの画像処理後の画像データを比較することで、比較対象データとの間で最も相関値が高い画像データを選択する(画像処理後の画像データ間の画像間演算処理)。このように比較対象データと最も相関値が高い画像データを選択することにより、例えば、画像処理装置100を備えた電子部品の実装装置において、実装対象となるチップの実装箇所を正確に特定することができる。
次に、本実施の形態に係る画像処理装置100で画像処理を行う場合の動作について、図1を参照しながら説明する。なお、以下においては、画像処理装置100に備えられる撮像装置で撮像された撮像データが画像データとしてデータ入力部103に入力される場合について説明する。まず、撮像装置で撮像された単一の撮像データ(画像データ)がデータ入力部103に入力された場合について説明する。
撮像装置から撮像データ(画像データ)が入力されると、データ入力部103は、この画像データに対して入力処理を行う。そして、データ入力部103は、入力処理後の画像データをデータ転送部105及びデータ転送部106に出力する。データ転送部105は、CPU101を介してこの画像データをメモリ102に転送する。一方、データ転送部106は、この画像データをメモリ107に転送する。メモリ102及びメモリ107は、それぞれデータ転送部105及びデータ転送部106から入力された画像データを保存する。この場合、メモリ102及びメモリ107には、データ入力部103で入力処理された共通の画像データが保存される。
一定量の画像データがメモリ107に保存されると、画像処理部104は、データ転送部106を介してメモリ107に保存された画像データを読み出す。そして、読み出した画像データに対して画像処理を行う(ハードウェアによる画像処理)。画像処理部104は、画像処理後の画像データをデータ転送部105に出力する。データ転送部105は、CPU101を介してこの画像処理後の画像データをメモリ102に転送する。
一定量の画像処理後の画像データがメモリ102に保存されると、CPU101は、この画像処理後の画像データを読み出す。そして、CPU101は、この読み出した画像処理後の画像データに対して画像処理を行う(ソフトウェアによる画像処理)。このようにしてCPU101による画像処理が完了すると、画像処理装置100に入力された単一の画像データに対して画像処理を行う場合の一連の動作が終了する。
なお、ここでは、CPU101によりメモリ102に保存された画像処理後の画像データに対して画像処理を行う場合について説明している。しかしながら、メモリ102には、この画像処理後の画像データに先行して、メモリ107と共通の画像データが保存されている。このため、CPU101でメモリ102に保存された画像データ(データ入力部103からデータ転送部105を介して入力された画像データ)に対して画像処理を行う場合には、この画像データを読み出して画像処理を行うことができる。
このように本実施の形態に係る画像処理装置100においては、データ入力部103を介して入力された共通の画像データがメモリ102及びメモリ107に保存される。また、ソフトウェアによる画像処理を行うCPU101が専用バスB1を介してメモリ102に接続される一方、ハードウェアによる画像処理を行う画像処理部104が専用バスB1と異なるバス(専用バスB2)を介してメモリ107に接続される。これらにより、メモリ107及びメモリ102に保存された共通の画像データに対して画像処理部104、CPU101がそれぞれ独立してアクセスできるので、画像処理部104及びCPU101の一方が他方の処理を待機する事態を回避でき、画像処理に要する処理時間を短縮することが可能となる。
特に、本実施の形態に係る画像処理装置100においては、データ入力部103により入力処理が行われた画像データをメモリ102及びメモリ107にそれぞれ転送するデータ転送部105及びデータ転送部106を備えている。これにより、入力処理後の画像データの転送処理時に待機時間が発生する事態を回避でき、画像処理に先行して行う転送時間を短縮でき、結果として画像処理に要する処理時間を短縮することが可能となる。
なお、図1に示す画像処理装置100においては、データ入力部103により入力処理が行われた画像データをメモリ102及びメモリ107にそれぞれ転送する一対のデータ転送部105及びデータ転送部106を備える場合について説明している。しかしながら、データ入力部103により入力処理が行われた画像データをメモリ102及びメモリ107に転送する構成については、これに限定されるものではなく適宜変更が可能である。例えば、共通の画像データを複製してメモリ102及びメモリ107に転送する単一のデータ転送部を備えるようにしてもよい。
次に、撮像装置で撮像された連続した複数の撮像データ(画像データ)がデータ入力部103に入力された場合の画像処理装置100の画像処理について、図2を参照しながら説明する。図2は、本実施の形態に係る画像処理装置100の動作を示したタイミングチャートである。なお、図2においては、撮像装置で撮像された連続した3枚の撮像データ(画像データ)がデータ入力部103に入力される場合について示している。
1枚目の画像データ(以下、適宜「画像D1」という)が入力されると、データ入力部103で入力処理が行われる(時点t0)。ここで、画像データの入力処理は、例えば、撮像装置により撮像されたラインデータ毎に行われる。そして、入力処理後の画像D1のラインデータは、データ転送部106からメモリ107に転送され、メモリ107に保存される(メモリ107への書き込み(ライト))。これと並行して、入力処理後の画像D1のラインデータは、データ転送部105からメモリ102に転送され、メモリ102に保存される(メモリ102へのライト)。
一定量の画像D1のラインデータがメモリ107に保存されると、ハードウェアによる画像処理を行うべく、画像処理部104によりデータ転送部106を介してメモリ107に保存された画像D1が読み出される(メモリ107からの読み出し(リード):時点t1)。この場合、メモリ107を転送能力に優れたDDR3 SDRAM等で構成することにより、画像D1の書き込みを行う合間に、画像処理部104による画像D1の読み出しに対応できる。画像処理部104は、読み出した画像D1に対して画像処理を行う。
画像処理後の画像D1(以下、適宜「画像D1´」という)は、データ転送部105及びCPU101を介してメモリ102に転送され、メモリ102に保存される(メモリ102へのライト:時点t2)。この場合、メモリ102を転送能力に優れたDDR3 SDRAM等で構成することにより、画像D1の書き込みを行う合間に、画像D1´の書き込みに対応できる。
メモリ102に対して画像D1´を書き込む過程において、画像D1の入力が終了し、2枚目の画像データ(以下、適宜「画像D2」という)が入力されると、画像D1と同様に、データ入力部103で入力処理が行われる(時点t3)。そして、入力処理後の画像D2のラインデータは、データ転送部106からメモリ107に転送され、メモリ107に保存される(メモリ107へのライト)。これと並行して、入力処理後の画像D2のラインデータは、データ転送部105からメモリ102に転送され、メモリ102に保存される(メモリ102へのライト)。
一定量の画像D2のラインデータがメモリ107に保存されると、画像処理部104により、データ転送部106を介してメモリ107に保存された画像D2が読み出される(メモリ107からのリード:時点t4)。画像処理部104は、読み出した画像D2に対して画像処理を行う。
一方、画像D2に対して画像処理を行う過程において、画像D1´のメモリ102への書き込みが終了すると、ソフトウェアによる画像処理を行うべく、CPU101によりメモリ102に保存された画像D1´が読み出される(メモリ107からのリード:時点t5)。この場合、メモリ102を転送能力に優れたDDR3 SDRAM等で構成することにより、画像D2の書き込みを行う合間に、CPU101による画像D1´の読み出しに対応できる。CPU101は、読み出した画像D1´に対して画像処理を行う。
この画像処理と並行して、画像処理後の画像D2(以下、適宜「画像D2´」という)が、データ転送部105及びCPU101を介してメモリ102に転送され、メモリ102に保存される(メモリ102へのライト:時点t6)。この場合、メモリ102を転送能力に優れたDDR3 SDRAM等で構成することにより、画像D1´の読み出しを行う合間に、メモリ102への画像D2´の書き込みに対応できる。
メモリ102に対して画像D2´を書き込む過程において、画像D2の入力が終了し、3枚目の画像データ(以下、適宜「画像D3」という)が入力されると、画像D2と同様に、データ入力部103で入力処理が行われる(時点t7)。そして、入力処理後の画像D3のラインデータは、データ転送部106からメモリ107に転送され、メモリ107に保存される(メモリ107へのライト)。これと並行して、入力処理後の画像D3のラインデータは、データ転送部105からメモリ102に転送され、メモリ102に保存される(メモリ102へのライト)。
一定量の画像D3のラインデータがメモリ107に保存されると、画像処理部104により、データ転送部106を介してメモリ107に保存された画像D3が読み出される(メモリ107からのリード:時点t8)。そして、画像処理部104は、読み出した画像D3に対して画像処理が行われる。
一方、画像D3に対して画像処理を行う過程において、画像D2´のメモリ102への書き込みが終了すると、ソフトウェアによる画像処理を行うべく、CPU101によりメモリ102に保存された画像D2´が読み出される(メモリ107からのリード:時点t9)。そして、CPU101は、読み出した画像D2´に対して画像処理が行われる。
この画像処理と並行して、画像処理後の画像D3(以下、適宜「画像D3´」という)が、データ転送部105及びCPU101を介してメモリ102に転送され、メモリ102に保存される(メモリ102へのライト:時点t10)。
画像D3´のメモリ102への書き込みが終了すると、ソフトウェアによる画像処理を行うべく、CPU101によりメモリ102に保存された画像D3´が読み出される(メモリ107からのリード:時点t11)。CPU101は、読み出した画像D3´に対して画像処理を行う。このようにしてCPU101による画像D3に対する画像処理が完了すると、画像処理装置100に入力された複数(3枚)の画像データに対して画像処理を行う場合の一連の動作が終了する。
このように本実施の形態に係る画像処理装置100においては、画像処理部104から画像処理後の画像データがメモリ102に出力され、CPU101でこの画像処理後の画像データに対して画像処理が行われる。これにより、画像処理部104による画像処理後の画像データに対しても、画像処理部104による画像処理と並行して画像処理を行うことができるので、画像処理部104による画像処理後の画像データに対してCPU101で画像処理を行う場合においても、画像処理に要する処理時間を短縮することが可能となる。この結果、連続して画像処理が必要な場合における画像処理に要する処理時間を短縮することが可能となる。
なお、上記実施の形態に係る画像処理装置100においては、ハードウェアによる画像処理を行う画像処理部104及びこれに対応するメモリ107をそれぞれ1つ備える場合について説明している。しかしながら、画像処理装置100におけるハードウェアによる画像処理の負荷を考慮して、画像処理部104及びこれに対応するメモリ107を複数備えることは実施の形態として好ましい。
以下、上記実施の形態に係る画像処理装置100を一部変形した実施の形態について説明する。図3は、本実施の形態の変形例に係る画像処理装置200の構成を示すブロック図である。なお、図3に画像処理装置200において、図1に示す画像処理装置100と共通する構成については、同一の符号を付してその説明を省略する。
図3に示す画像処理装置200においては、複数の画像処理部104a〜104n、データ転送部106a〜106n及びこれに対応するメモリ107a〜107nを備える点で上記実施の形態に係る画像処理装置100と相違する。画像処理部104a〜104nは、それぞれ上記実施の形態に係る画像処理装置100の画像処理部104と同一の機能を有する。また、データ転送部106a〜106nは、それぞれ上記実施の形態に係る画像処理装置100のデータ転送部106と同一の機能を有する。さらに、メモリ107a〜107nは、それぞれ上記実施の形態に係る画像処理装置100のメモリ107と同一の機能を有する。
ここで、データ転送部106aとメモリ107aとは、専用のバスB2aを介して接続されている。すなわち、このバスB2aには他の構成要素がアクセスできず、データ転送部106aが専有できる。例えば、バスB2aには、複数の信号線で同時に複数のビットデータを転送可能なパラレル転送方式のバスを採用でき、1回の転送で同時に複数のビットデータを転送することができる。同様に、データ転送部106b〜106nとメモリ107b〜107nとは、専用のバスB2b〜B2nを介して接続されている。
このような構成を有する画像処理装置200によれば、CPU101を用いたソフトウェアによる画像処理と、画像処理部104a〜104nを用いたハードウェアによる画像処理とを並行して行うことができる。このため、例えば、ソフトウェアによる画像処理に先行して必要となる画像処理を画像処理部104a〜104nで並行して行うことができるので、装置全体で画像処理に要する処理時間を短縮することが可能となる。
このようにCPU101を用いたソフトウェアによる画像処理と、画像処理部104a〜104nを用いたハードウェアによる画像処理とを並行して行うことにより、例えば、上述した実装対象となるチップの実装箇所を正確に特定するための画像処理と、撮像した撮像データ(画像データ)における重心を特定するための画像処理等とを並行して行うことが可能となる。
そして、このような画像処理装置100、200を電子部品の実装装置に適用する場合には、上述した画像処理装置100、200で得られる効果を電子部品の実装装置で得ることができる。これにより、例えば、電子部品の実装装置において、実装対象となる電子部品を正確に位置決めすることや、この電子部品の実装位置を適切に特定することが可能となる。
なお、以上の説明においては、データ入力部103、画像処理部104、データ転送部105及びデータ転送部106の機能は、例えば、FPGAボード上に実装された所定の論理回路で構成される場合について説明している。しかしながら、これらのデータ入力部103、画像処理部104、データ転送部105及びデータ転送部106の構成については、これに限定されるものではなく適宜変更が可能である。
次に、上記実施の形態に係る画像処理装置100が適用される電子部品実装装置の一例について説明する。図4は、上記実施の形態に係る画像処理装置100が適用される電子部品実装装置(以下、適宜「実装装置」という)300の要部概略図である。図4においては、実装装置300により電子部品をプリント配線基板(基板)に実装する際に電子部品の位置や姿勢等を認識する構成要素を含む実装装置300の要部を示している。
図4に示すように、実装装置300は、上述した画像処理装置100を電子部品実装装置用に設計した画像処理装置301と、この画像処理装置301に接続される電子部品搬送ヘッド(以下、単に「搬送ヘッド」という)302、カメラ303及び照明304とを含んで構成される。なお、この場合において、カメラ303は、基板に対する実装対象となる電子部品(以下、単に「部品」という)Pを撮像する撮像素子を構成する。
搬送ヘッド302は、図示しない駆動機構により、基板の延在方向と水平且つ直交するX軸方向、Y軸方向に移動可能に構成される。搬送ヘッド302は、例えば、上面視にて長方形状を有し、図4に示すX軸方向に沿って長辺が配置された筐体を有する。搬送ヘッド302の下面には、複数の吸着ノズル305が設けられている。本実施の形態では、6本の吸着ノズル305が図4に示すX軸方向に並べて設けられる場合について示している。なお、搬送ヘッド302の形状については、上記形状に限定されるものではなく、下面に複数の吸着ノズル305の設置スペースが設けられることを前提として任意の形状を適用できる。
吸着ノズル305は、例えば、搬送ヘッド302の筐体を介して図示しない吸引機構に接続されている。吸着ノズル305は、概して筒形状を有し、下端に形成された吸引孔で部品Pを吸着可能に構成されている。また、吸着ノズル305は、図示しない駆動機構に接続され、その下方側部分を図4に示すZ軸方向に移動可能に構成される。部品Pは、搬送ヘッド302によりX軸、Y軸方向に搬送されると共に、吸着ノズル305でZ軸方向に搬送された後、吸引が解除されることで基板の所望の位置に載置される。
カメラ303は、例えば、CCD(Charge Coupled Device)カメラで構成される。カメラ303は、搬送ヘッド302の吸着ノズル305に保持(吸着保持)された部品Pの対向面(図4では、搬送ヘッド302により上方側領域を搬送される部品Pの下面)を撮像する。なお、撮像された部品Pの撮像データは、部品Pの有無、形状不良又は位置等の判定に利用される。
照明304は、例えば、複数の発光ダイオード(LED)を有するLED照明で構成される。照明304は、カメラ303により撮像される撮像範囲を照光する。より具体的には、照明304は、後述する認識処理の対象となる部品Pを保持する吸着ノズル305が撮像画面データの中心位置に配置された場合に周辺の吸着ノズル305を含む撮像範囲を照光可能に構成される。照明304は、搬送ヘッド302により撮像対象となる部品Pが撮像位置に到達するタイミングで撮像範囲を照光する。また、照明304は、発光ダイオード(LED)等の光源からの光量を調節する機能を備える。
画像処理装置301は、搬送ヘッド302、カメラ303及び照明304を制御する機能を備える。具体的には、搬送ヘッド302による搬送位置、吸着ノズル305による部品Pの移動位置又は吸引の有無、カメラ303による撮像タイミング(露光タイミング)、照明304による照光タイミング及び照光時の光量を制御する。例えば、画像処理装置301は、実装装置300全体を制御する図示しない制御装置(以下、「実装装置300の制御装置」という)からの指示に従って搬送ヘッド302、カメラ303及び照明304を制御する。
また、画像処理装置301は、カメラ303で撮像された撮像画像データに基づいて、位置決め対象となる部品Pの位置決めに必要な画像処理を行い、部品Pの有無や形状不良又は位置(吸着ノズル305による保持姿勢)等を判定する機能を有する。このような画像処理装置301による判定結果は、実装装置300の制御装置に通知される。例えば、実装装置300の制御装置は、この判定結果に応じて、基板に対する部品Pの実装を制御し、或いは、画像処理装置301に対する指示を決定する。
以下、実装装置300に適用される画像処理装置301の一例について説明する。図5は、図4に示す実装装置300に適用される画像処理装置301の一例の説明図である。図5において、図1に示す画像処理装置100と共通する構成要素については、同一の符号を付与し、その詳細な説明を省略する。画像処理装置301は、画像処理装置100と共通する構成要素として、CPU101、メモリ102及びメモリ107を有する。
図5に示すCPU101は、実装装置300の制御装置との間の通信制御やメモリ102に対するデータの書き込み又はデータの読み出し制御を行う。また、CPU101は、撮像処理で撮像された画像データ(以下、「撮像画像データ」という)に対する画像処理を行い、部品Pの認識処理を行う。なお、これらの撮像処理及び認識処理については後述する。メモリ102は、撮像画像データや、認識処理により特定された情報等を保存する。メモリ107は、後述するFPGA処理部306による各種処理で使用されるワークメモリを構成する。
画像処理装置301は、FPGAボード上に実装された所定の論理回路で構成されるFPGA処理部306を備える。このFPGA処理部306は、撮像回路306A、画像出力回路306B、画像データ転送回路306C、プレ前処理回路306D及び変換前処理回路306Eを含んで構成される。FPGA処理部306は、これらの回路を備え、部品Pの撮像、画像出力、画像データ転送及び単純な画像処理(プレ前処理、変換前処理)を実行する専用回路を構成する。
なお、本実施の形態では、FPGAボード上に実装された所定の論理回路で専用回路を構成する場合について説明するが、専用回路の構成については、これに限定されるものではなく適宜変更が可能である。例えば、FPGAボード上に実装された所定の論理回路と異なる別手法の専用回路やCPU101による演算処理で同一の機能を提供することも可能である。
このような構成を有し、画像処理装置301は、部品Pの撮像処理及び認識処理を行う。ここで、撮像処理とは、カメラ303の露光とカメラ303が受光したデータをCPU101(メモリ102)に転送する処理をいう。また、認識処理とは、カメラ303により撮像された撮像画面データ上の部品Pの位置を算出する処理をいう。この認識処理には、外接走査による部品Pの粗位置特定、画像データの二値化、濃度変換などの画像加工、ノイズ除去や特徴抽出のためのフィルタ演算等、部品Pを位置決めし易くする前処理段階と、部品Pの位置決めや検査を精密に行うための特徴抽出段階とがある。
特徴抽出段階の認識処理においては、部品Pの種類毎に抽出すべき特徴が異なり、高い精度が要求される。一方、前処理段階の認識処理においては、部品Pの種類に依らず、精度に直接的に影響を与えない処理が多い。画像処理装置301は、撮像処理及び認識処理の一部(前段階の認識処理)をFPGA処理部306で行う一方、認識処理の一部(特徴抽出段階の認識処理)をCPU101で行う。なお、前段階の認識処理は、ハードウェアによる画像処理を構成し、特徴抽出段階の認識処理は、ソフトウェアによる画像処理を構成する。また、前段階の認識処理は、ハードウェアによる画像処理に必要な情報を取得する前処理を構成する。画像処理装置301においては、CPU101と別に専用経路としてFPGA処理部306を備えるため、これらの処理を並列に行うことができ、効率的に撮像処理及び認識処理を実行することができる。
撮像回路306Aは、カメラ303及び照明304にインターフェイスを介して接続され、撮像範囲に含まれる部品Pを撮像するための処理を行う。撮像回路306Aは、CPU101を介して実装装置300の制御装置から指示される撮像のためのパラメータ(撮像パラメータ)に従って部品Pの撮像を行う。なお、撮像パラメータには、例えば、カメラ304による撮像タイミングや、照明305による照光時の光量などが含まれる。
画像出力回路306Bは、各種の画像データを表示するモニタにインターフェイスを介して接続され、このモニタに対して画像データ(撮像画像データ)を出力する処理(出力処理)を行う。画像出力回路306Bは、撮像回路306Aの制御により撮像された画像データ(撮像画像データ)や、CPU101により認識処理が行われた画像データを出力する。
画像データ転送回路306Cは、撮像回路306Aの制御により撮像された画像データ(撮像画像データ)をCPU101に転送する処理を行う。また、後述する変換前処理回路306Eにて変換前処理により取得された変換前処理情報をCPU101に転送する処理を行う。
プレ前処理回路306Dは、プレ前処理を行う。ここで、プレ前処理とは、次回の撮像処理により特徴抽出する部品Pに対して、1つ前の撮像画面データから事前に粗位置決めや濃度情報を取得する処理をいう。なお、このプレ前処理は、前段階の認識処理の一部を構成する。プレ前処理により取得された情報は、CPU101を介して実装装置300の制御装置に通知される。実装装置300の制御装置では、通知された情報に基づいて、次回の撮像時における照明305による照光時の光量を調整する。調整後の光量は、撮像パラメータとしてCPU101を介して撮像回路306Aに通知される。調整後の光量の通知を受けると、撮像回路306Aにおいては、次回の撮像時における照明305による光量を調整する。
変換前処理回路306Eは、変換前処理を行う。ここで、変換前処理とは、部品Pの種類に応じて選択的に行われる、特徴抽出のための二値化処理、濃度補正処理、フィルタ演算処理やエッジ抽出処理をいう。この変換前処理は、前段階の認識処理の一部を構成する。変換前処理により取得された情報は、CPU101に通知される。CPU101は、通知された情報に基づいて、特徴抽出段階の認識処理を行う。例えば、CPU101は、特徴抽出段階の認識処理として、通知された情報のパターンマッチング処理を行う。このようにCPU101では、プレ前処理や変換前処理を行うことなく、特徴抽出段階の認識処理を行うだけで済むので、認識処理の処理速度が向上される。
ここで、本実施の形態に係る実装装置300が有するカメラ303により撮像される撮像画面について説明する。図6は、図4に示す実装装置300が有するカメラ303により撮像される撮像画面の説明図である。なお、図6においては、搬送ヘッド302が同図に示す左方側に進行するものとする。また、図6においては、説明の便宜上、カメラ303の有効視野に進入する順番に部品P1〜部品P6の符号を付与している。さらに、図6においては、認識処理の対象となる部品P1がカメラ303の撮像画面の中心位置に配置された場合について示している。
図6に示すように、カメラ303の有効視野は、複数の吸着ノズル305を含むように構成される。これにより、カメラ303は、有効視野内に含まれる吸着ノズル305で保持する部品Pの撮像画像データを含む撮像画面を撮像可能に構成される。より具体的には、認識処理の対象となる部品P1の撮像画像データが撮像画面の中心に配置された場合に後続する部品P2の撮像画像データを含む撮像画面を撮像可能に構成される。この場合、カメラ303により撮像された撮像画面データには、部品P1、P2に対する撮像画像データP1´、P2´が含まれる。
照明304は、このようにカメラ303により撮像される撮像画面に対応する撮像範囲を照光可能に構成される。すなわち、照明304は、有効視野内に含まれる吸着ノズル305で保持する部品Pを含む撮像範囲を撮像可能に構成される。より具体的には、認識処理の対象となる部品P1が撮像画面の中心に配置された場合に後続する部品P2を含む撮像範囲を照光可能に構成される。なお、認識処理の対象となる部品P1以外の部品P2に対する光量は、部品P1に対する光量ほど要求されない。したがって、部品P2に対する光量は、一定程度の光量を確保すればよい。
本実施の形態に係る画像処理装置301においては、実装対象となる複数の部品Pの撮像画像データを含む撮像画面データを順次取り込んで、各撮像画面データ内の位置決め対象となる特定の部品Pの位置決めに必要な画像処理を行う。この場合において、画像処理装置301は、撮像画面の中心に配置される部品P(例えば、部品P1)に対する撮像処理及びこの部品P(部品P1)の周辺の部品P(例えば、部品P2)の前処理段階の認識処理(プレ前処理及び変換前処理)をFPGA処理部306で実行する。そして、これらの撮像処理及び前処理段階の認識処理(プレ前処理及び変換前処理)に並行して特徴抽出段階の認識処理(特徴抽出処理)をCPU101で実行する。
以下、図5に示す画像処理装置301における撮像処理及び認識処理の動作の概略について説明する。図7は、図5に示す画像処理装置301における撮像処理及び認識処理の動作の概略を示すタイミングチャートである。図7においては、説明の便宜上、3本の吸着ノズル305に保持される部品P1〜P3に対する撮像処理及び認識処理について説明するものとする。図7においては、中段に本実施の形態に係る画像処理装置301の撮像処理及び認識処理を示している。また、図7においては、説明の便宜上、上段に認識処理全体をCPU101で実行する場合の参照例を示し、下段に部品P1のプレ前処理もFPGA処理部306で実行する場合の変形例を示している。
図7の中段に示すように、画像処理装置301のFPGA処理部306においては、部品P1に対して、撮像回路306Aによりカメラ303の露光処理を行った後、画像データ転送回路306Cにより受光した撮像画像データP1´をCPU101に転送する(撮像処理)。この撮像処理に並行して、FPGA処理部306においては、プレ前処理回路306Dにより部品P2の撮像画像データP2´に対するプレ前処理を行う。このプレ前処理により、次回の撮像処理に応じて特徴抽出する部品P2に対して、1つ前の撮像画像から事前に粗位置決めや濃度情報が取得される。プレ前処理により取得された情報(以下、適宜「プレ前処理情報」という)は、変換前処理回路306Eに出力される。
撮像画像データP1´を受け取ったCPU101は、撮像画像データP1´に必要な前処理を行った後、特徴抽出処理を行う。なお、このCPU101で行われる前処理は、FPGA処理部306の変換前処理回路306Eで行われる変換前処理に相当する。本実施の形態に係る画像処理装置301においては、撮像画像データP1´に対する変換前処理をFPGA処理部306で行う代わりにCPU101で前処理を行う。なお、CPU101による特徴抽出処理により取得された情報(以下、適宜「特徴抽出処理情報」という)は、実装装置300の制御装置に通知される。
画像処理装置301のFPGA処理部306においては、CPU101による撮像画像データP2´に対する前処理及び撮像画像データP1´に対する特徴抽出処理と並行して、部品P2に対する撮像処理が行われる。撮像処理により撮像された撮像画像データP2´は、CPU101に転送される。さらに、FPGA処理部306においては、プレ前処理回路306Dにより部品P3の撮像画像データP3´に対するプレ前処理を行うと共に、変換前処理回路306Eにより撮像画像データP2´に対する変換前処理を行う。プレ前処理により取得されたプレ前処理情報は、変換前処理回路306Eに出力され、変換前処理により取得された情報(以下、適宜「変換前処理情報」という)は、画像データ転送回路306CによりCPU101に転送される。
撮像画像データP2´及び変換前処理情報を受け取ったCPU101は、この撮像画像データP2´に対する特徴抽出処理を行う。撮像画像データP2´に対しては、FPGA処理部306にて変換前処理が行われているため、CPU101にて前処理を行う必要はない。このため、CPU101は、撮像画像データP2´に対して特徴抽出処理のみを行う。CPU101による特徴抽出処理により取得された特徴抽出処理情報は、実装装置300の制御装置に通知される。
画像処理装置301のFPGA処理部306においては、CPU101による撮像画像データP2´に対する特徴抽出処理と並行して、部品P3に対する撮像処理が行われる。撮像処理により撮像された撮像画像データP3´は、CPU101に転送される。さらに、FPGA処理部306においては、変換前処理回路306Eにより撮像画像データP3´に対する変換前処理を行う。変換前処理により取得された変換前処理情報は、画像データ転送回路306CによりCPU101に転送される。なお、ここでは、部品P3に後続する部品Pが存在しないため、プレ前処理が行われることはない。
撮像画像データP3´及び変換前処理情報を受け取ったCPU101は、この撮像画像データP3´に対する特徴抽出処理を行う。CPU101は、撮像画像データP2´の場合と同様に、撮像画像データP3´に対して特徴抽出処理のみを行う。CPU101による特徴抽出処理により取得された特徴抽出処理情報は、実装装置300の制御装置に通知される。このように本実施の形態に係る画像処理装置301においては、FPGA処理部306による撮像処理及び認識処理(プレ前処理及び変換前処理)と、CPU101による認識処理(特徴抽出処理)とが並行して行われることから、効率的に撮像処理及び認識処理を実行することが可能となる。
ところで、図7の上段に示すように、認識処理全体をCPU101で実行する場合には、全ての撮像画像データP1´〜P3´に対する前処理をCPU101で実行する必要がある。これに対し、図7の中段に示す本実施の形態に係る画像処理装置301においては、認識処理の一部(プレ前処理及び変換前処理)をCPU101による認識処理と並行してFPGA処理部306で行うことから、CPU101における前処理(より具体的には、撮像画像データP2´、P3´に対する前処理)分だけ処理時間を短縮することが可能となる。
なお、図7の中段に示す本実施の形態に係る画像処理装置301においては、撮像画像データP1´に対する変換前処理をFPGA処理部306で行う代わりにCPU101で前処理を行う場合について示している。しかしながら、CPU101における負荷軽減の観点からは、変換前処理をFPGA処理部306で行うことが好ましい。この場合、図7の下段に示すように、部品P1に対する撮像処理に先立って、部品P1に対するプレ前処理を行うと共に、その撮像処理に並行して変換前処理を行うことが考えられる。これにより、CPU101においては、撮像画像データP1´〜P3´に対する特徴抽出処理のみを行うこととなるので、CPU101における負荷を軽減することが可能となる。
次に、本実施の形態に係る画像処理装置301で認識処理を行う場合の動作について説明する。図8は、本実施の形態に係る画像処理装置301で認識処理を行う場合の動作を説明するためのフロー図である。なお、図8に示すフロー図においては、説明の便宜上、認識処理に関連する構成のみを示している(CPU101、撮像回路306A、画像データ転送回路306C、プレ前処理回路306D及び変換前処理回路306E)。
画像処理装置301においては、CPU101により実装装置300の制御装置から認識処理の要求(認識要求)を受信するか監視している(ステップST801)。認識要求を受信した場合、CPU101は、部品存在範囲の算出を行う(ステップST802)。一方、認識要求を受信しない場合、CPU101は、ステップST801の監視動作を継続する。
実装装置300の制御装置からの認識要求には、部品Pを保持する吸着ノズル305の数及び位置、搬送ヘッド302の移動方向、各吸着ノズル305(部品P)に対する撮像タイミング及び各吸着ノズル305に保持される部品に関するデータ(部品データ)が含まれる。なお、部品データには、例えば、部品の種別や寸法などの情報が含まれる。CPU101においては、この認識要求に含まれる情報に基づいて、部品存在範囲の算出を行う。
図9は、図5に示す画像処理装置301で算出される部品存在範囲の説明図である。図9においては、3本の吸着ノズル305に保持される部品P1〜P3に対して算出される部品存在範囲について示している。なお、図9においては、説明の便宜上、部品P1〜P3を保持する吸着ノズル305を、それぞれ吸着ノズルN1〜N3と呼ぶものとする。また、図9においては、吸着ノズルN1に保持される部品P1に対するプレ前処理用の撮像画面を撮像する場合について示している。
図9に示すように部品P1〜P3が吸着ノズルN1〜N3で保持される場合、実装装置300の制御装置からの認識要求には、部品Pを保持する吸着ノズル305が3本である旨、吸着ノズルN1〜N3がそれぞれ部品P1〜P3を保持する旨、搬送ヘッド302の移動方向が正方向(図9に示す左側方向)である旨などの情報が含まれる。
図9に示す場合、吸着ノズルN1に保持される部品P1のプレ前処理用の撮像画面も含めて合計4回の撮像処理が行われる。図9においては、4枚の撮像画面をそれぞれIMG0〜IMG3で示している。CPU101は、認識要求に含まれる情報から、それぞれどのような種別の部品が撮像されるかを認識できる。このため、CPU101においては、部品データから撮像画面上の部品存在範囲を予測できる。図9に示す撮像画面IMG0においては、部品P1のプレ前処理用の存在予測範囲A1bが予測され、撮像画面IMG1においては、部品P2のプレ前処理用の存在予測範囲A2bが予測され、撮像画面IMG2においては、部品P3のプレ前処理用の存在予測範囲A3bが予測される。また、図9に示す撮像画面IMG1においては、部品P1の位置決め用の存在予測範囲A1が予測され、撮像画面IMG2においては、部品P2の位置決め用の存在予測範囲A2が予測され、撮像画面IMG3においては、部品P3の位置決め用の存在予測範囲A3が予測される。
部品存在範囲を算出した後、CPU101は、FPGA処理部306の撮像回路306Aに撮像要求を出力する(ステップST803)。この撮像要求には、撮像回数及びそれぞれの撮像タイミングに関する情報が含まれる。なお、撮像回路306Aで制御するカメラ303が撮像範囲を部分的に撮像するパーシャル撮像機能を備える場合には、撮像領域を狭めた撮像画面に関する情報を撮像要求に含むこともできる。図9においては、撮像領域を狭めた撮像画面に関する情報(L0〜L3)を示している。
撮像要求を受け取ると、撮像回路306Aは、この撮像要求に指定される撮像タイミングであるかを判定する(ステップST804)。より具体的には、撮像回路306Aは、搬送ヘッド302の位置が撮像位置に到達するか否かにより撮像タイミングを判定する。撮像タイミングでないと判定された場合には、撮像回路306Aは、ステップST804の判定動作を継続する。一方、撮像タイミングであると判定された場合には、カメラ303のシャッターを開放し、露光させる(ステップST805)。
露光が完了すると、カメラ303で受光した画像データ(撮像画面データ)がプレ前処理回路306D、画像データ転送回路306C及び変換前処理回路306Eに出力される。なお、撮像画面データを出力した後、撮像回路306Aにおいては、全画面分の撮像を完了しているか判定する(ステップST806)。図9に示す場合においては、4枚の撮像画面IMG0〜IMG3に対する撮像を完了しているかが判定される。全画面分の撮像が完了していない場合、撮像回路306Aは、再びステップST804〜ステップST806の処理を行う。一方、全画面分の撮像が完了している場合、撮像回路306Aは、処理を完了する。
撮像画面データを受け取ると、プレ前処理回路306Dは、プレ前処理を実行する(ステップST807)。プレ前処理においては、プレ前処理用の部品Pの存在予測範囲(例えば、図9に示す撮像画像IMG0における存在予測範囲A1b)に対してプレ前処理が行われる。ここでは、プレ前処理として、外接走査や濃度ヒストグラムの生成が行われる。なお、このプレ前処理については後述する。
一方、撮像画面データを受け取ると、画像データ転送回路306Cは、CPU101に対してこの撮像画面データを転送する(ステップST808)。画像データ転送回路306Cによる撮像画面データの転送は、プレ前処理回路306Dにおけるプレ前処理と並行して行われる。なお、初回の撮像画面IMG0については、プレ前処理用の撮像画面であるため、CPU101に対する転送を省略してもよい。
プレ前処理が完了すると、プレ前処理回路306Dは、プレ前処理により取得したプレ前処理情報を変換前処理回路306Eに出力する。その後、プレ前処理回路306Dは、全画面分のプレ前処理が完了しているか判定する(ステップST809)。図9に示す場合においては、4枚の撮像画面IMG0〜IMG3に対するプレ前処理を完了しているかが判定される。
全画面分のプレ前処理が完了していない場合、プレ前処理回路306Dは、プレ前処理割込み処理を実行する(ステップST810)。プレ前処理割込み処理においては、プレ前処理の外接走査や濃度ヒストグラム生成の結果や、位置決め部品の種類から次回の撮像画面の変換前処理条件の設定の有無が判定される。プレ前処理割込み処理が完了すると、プレ前処理回路306Dは、プレ前処理割込み処理により取得された情報(以下、適宜「プレ前処理割込み処理情報」という)を変換前処理回路306Eに出力する。なお、このプレ前処理割込み処理については後述する。
撮像回路306Aから撮像画面データと、プレ前処理回路からプレ前処理情報及びプレ前処理割込み処理情報とを取得すると、変換前処理回路306Eは、変換前処理を実行する(ステップST811)。変換前処理においては、CPU101における後述する部品Pの特徴抽出のための二値化処理、濃度補正処理、フィルタ演算処理やエッジ抽出処理が行われる。変換前処理を完了すると、変換前処理回路306Eは、変換前処理により取得された情報(以下、適宜「変換前処理情報」という)を画像データ転送回路306Cに出力する。
変換前処理情報を受け取ると、画像データ転送回路306Cは、CPU101に対してこの変換前処理情報を転送する(ステップST812)。この場合において、画像データ転送回路306Cは、一画面分(例えば、図9に示す撮像画面IMG0)の変換前処理情報を転送する都度、転送完了通知をCPU101に出力する。
CPU101においては、ステップST803において、撮像要求を出力した後、画像データ転送回路306Cから転送完了通知を受信するか監視している(ステップST813)。転送完了通知を受信していない場合、CPU101は、ステップST813の監視動作を継続する。一方、転送完了通知を受信すると、CPU101は、部品Pの特徴抽出処理を行う(ステップST814)。
CPU101は、特徴抽出処理により取得した情報(以下、適宜「特徴抽出処理情報」という)を、位置決め結果として実装装置300の制御装置に通知する(ステップST815)。そして、CPU101は、全画面分の位置決め結果を実装装置300の制御装置に通知しているか否か判定する(ステップST816)。全画面分の位置決め結果を通知していない場合、CPU101は、再びステップST813〜ステップST816の処理を行う。
なお、撮像回路306Aによる撮像制御は、認識要求に含まれる部品Pの撮像数に到達するまで繰り返される(ステップST804〜ステップST806)。カメラ303により撮像される度に、撮像画面データがCPU101に転送されると共に(ステップST808)、プレ前処理及び変換前処理を経て取得された変換前処理情報がCPU101に転送される(ステップST812)。そして、これらの撮像画像データ及び変換前処理情報に基づいて部品Pの特徴抽出処理を行ううち、ステップST816にて、全画面分の位置決め結果を通知したと判定されると、CPU101は、一連の認識処理を終了する。
ここで、上述したプレ前処理、プレ前処理割込み処理及び変換前処理について説明する。図10、図11及び図12は、それぞれ本実施の形態に係る画像処理装置301で実行されるプレ前処理、プレ前処理割込み処理及び変換前処理を説明するためのフロー図である。
プレ前処理は、撮像画像データに対して一律に行われる処理であり、外接走査による部品Pの外接矩形の特定と、濃度ヒストグラムの生成とが行われる。図10に示すように、プレ前処理において、プレ前処理回路306Dは、まず、撮像回路306Aから出力される撮像画面データに含まれる部品Pのプレ前処理用の存在予測範囲(例えば、図9に示す撮像画像IMG0における存在予測範囲A1b)内の画素データを読み出す(ステップST1001)。そして、プレ前処理回路306Dは、読み出した画素データに対して、濃度ヒストグラムの該当濃度の画素数を加算する(ステップST1002)。
次に、プレ前処理回路306Dは、加算後の画素データの濃度と、予め登録された外接走査用の二値化しきい値とを照合することで濃度判定を行う(ステップST1003)。このような濃度判定により、二値化しきい値を超える濃度を有する画素座標のうち、上下左右の端部の各座標値を更新していくことで外接走査を行うことが可能となる。
そして、プレ前処理回路306Dは、部品Pのプレ前処理用の存在予測範囲内の全ての画素データについて濃度判定を行っているかを判定する(ステップST1004)。全ての画素データについて濃度判定が行われていない場合には、再びステップST1001〜ステップST1003の処理を行う。一方、全ての画素データについて濃度判定が行われている場合、プレ前処理回路306Dは、プレ前処理を終了し、プレ前処理で取得したプレ前処理情報を撮像画像データと共に変換前処理回路306Eに出力する。
プレ前処理割込み処理において、プレ前処理回路306Dは、図11に示すように、まず、プレ前処理で算出された濃度ヒストグラムを解析する(ステップST1101)。そして、この解析結果に基づいて、プレ前処理回路306Dは、濃度補正が必要であるか判定する(ステップST1102)。濃度補正が必要な場合、プレ前処理回路306Dは、濃度補正の要求をオン状態とする(ステップST1103)。
なお、理想的な濃度分布は、背景(暗部)と部品P(明部)で二極化され、且つ、それぞれのピーク濃度が濃度下限や上限に近寄り過ぎていない状態である。濃度分布がどちらかに偏っている場合、これを全体に広げるような変換(ヒストグラム伸長化処理)を行うことで、背景と部品Pとを分離し易くなる。この他、ステップST1103においては、濃度ヒストグラムの平坦化によるコントラスト強調、濃度値に補正の強弱を調整するガンマ補正等、必要な濃度補正条件を設定することができる。
一方、濃度補正が不要な場合、プレ前処理回路306Dは、ステップST1103の処理をスキップし、二値化しきい値の変更が必要であるか判定する(ステップST1104)。二値化しきい値の変更が必要な場合、プレ前処理回路306Dは、しきい値の算出を行うと共に、外接走査の要求をオン状態とする(ステップST1105)。
理想的な二値化しきい値は、背景及び部品Pのそれぞれの濃度がピーク濃度の間にある谷空間の濃度に相当する状態である。二値化しきい値が濃度ヒストグラム上の理想濃度とズレがある場合、プレ前処理における外接矩形結果は信頼性が低い。このような場合に二値化しきい値の変更が必要であると判定される。これにより、最適な二値化しきい値が算出され、後述する変換前処理にて再度外接走査が実行されると、信頼性の高い外接矩形を得ることができる。
一方、二値化しきい値の変更が不要な場合、プレ前処理回路306Dは、プレ前処理で求めた外接矩形内の撮像画像データだけを次回の転送処理や変換前処理の処理範囲に設定する(ステップST1106)。このようにプレ前処理割込み処理においては、プレ前処理の処理結果に基づいて、プレ前処理を行った部品の撮像画像データの転送範囲を調整できる。これにより、CPU101に対する撮像画像データの転送量を増減できるので、周辺部品の撮像画像データの寸法が小さい場合にCPU101に対する撮像画像データの転送量を低減できる。この結果、CPU101による画像処理に要する時間を短縮すると共に、当該画像処理に伴う負荷を軽減することが可能となる。
なお、外接矩形の大きさが部品Pの外寸に対して極端に小さい場合は部品Pが存在しないと判定できる。この場合、プレ前処理回路306Dは、実装装置300の制御装置に通知し、該当する部品Pの以後の位置決め処理をスキップさせることができる。
次回の転送処理や変換前処理の処理範囲に設定した後、プレ前処理回路306Dは、変換前処理を要求するか否か判定する(ステップST1107)。変換前処理の要求の有無は、部品Pの種類や認識要求に設定された条件により判定される。変換前処理を要求する場合、プレ前処理回路306Dは、変換前処理条件の設定要求をオン状態とする(ステップST1108)。そして、プレ前処理回路306Dは、プレ前処理割込み処理を終了し、プレ前処理割込み処理で取得したプレ前処理割込み情報を変換前処理回路306Eに出力する。
一方、変換前処理を要求しない場合には、プレ前処理回路306Dは、プレ前処理割込み情報を変換前処理回路306Eに出力することなく、プレ前処理割込み処理を終了する。
変換前処理において、変換前処理回路306Eは、図12に示すように、まず、撮像回路306Aから出力された撮像画面データに含まれる部品Pのプレ前処理用の存在予測範囲(例えば、図9に示す撮像画像IMG0における存在予測範囲A1b)内の画素データを読み出す(ステップST1201)。そして、変換前処理回路306Eは、プレ前処理回路306Dから出力されたプレ前処理割込み情報に基づいて、濃度補正要求の有無を判定する(ステップST1202)。この場合、変換前処理回路306Eは、プレ前処理割込み処理において、濃度補正要求がオン状態に設定されるか否かにより濃度補正要求の有無を判定する。
濃度補正要求がオン状態の場合、変換前処理回路306Eは、濃度補正を実行する(ステップST1203)。一方、濃度補正要求がオフ状態の場合、変換前処理回路306Eは、ステップST1203の処理をスキップして、フィルタ演算要求の有無を判定する(ステップST1204)。この場合、変換前処理回路306Eは、実装装置300の制御装置からの認識要求において、フィルタ演算要求がオン状態に設定されるか否かによりフィルタ演算要求の有無を判定する。
フィルタ演算要求がオン状態の場合、変換前処理回路306Eは、フィルタ演算を実行する(ステップST1205)。一方、フィルタ演算要求がオフ状態の場合、変換前処理回路306Eは、ステップST1205の処理をスキップして、外接走査要求(又はエッジ抽出要求)の有無を判定する(ステップST1206)。外接走査要求を判定する場合、変換前処理回路306Eは、プレ前処理割込み処理において、外接走査要求がオン状態に設定されるか否かにより外接走査要求の有無を判定する。一方、エッジ抽出要求を判定する場合、変換前処理回路306Eは、実装装置300の制御装置からの認識要求において、エッジ抽出要求がオン状態に設定されるか否かによりフィルタ演算要求の有無を判定する。
このように変換前処理においては、プレ前処理割込み処理の結果等に基づいて、特徴抽出のための画像処理(特徴抽出処理)として、フィルタ処理又はエッジ抽出処理が行われる。これにより、位置決め対象である部品Pの位置決めに必要な画像処理を効果的に行うことが可能となる。
外接走査要求(エッジ抽出要求)がオン状態の場合、変換前処理回路306Eは、外接走査(エッジ抽出)を実行する(ステップST1207)。一方、外接走査要求(エッジ抽出要求)がオフ状態の場合、変換前処理回路306Eは、ステップST1207の処理をスキップして、全ての画素データについて各種判定を行っているかを判定する(ステップST1208)。全ての画素データについて各種判定が行われていない場合には、再びステップST1201〜ステップST1207の処理を行う。一方、全ての画素データについて各種判定が行われている場合、変換前処理回路306Eは、変換前処理を終了し、変換前処理で取得した変換前処理情報を画像データ転送回路306Cに出力する。
これらのプレ前処理、プレ前処理割込み処理及び変換前処理において、FPGA処理部306は、濃度分布の判定結果に基づいて、位置決め対象となる部品Pの周辺部品が位置決め対象の部品となる場合の撮像条件を変更することができる。ここで、撮像条件としては、例えば、周辺部品が位置決め対象となる部品となる場合における当該周辺部品に対して照光される光量を調整することが考えられる。この場合には、濃度分布の判定結果に基づいて、周辺部品が位置決め対象の部品となる場合の撮像条件を変更できるので、濃度分布の判定結果に応じた所望の撮像条件を選択することが可能となる。特に、位置決め対象となった周辺部品に対する光量を調整する場合には、濃度分布の判定結果を反映して光量が調整されることから、位置決め対象の部品となった周辺部品の撮像画像データの濃度を適切な値に調整することが可能となる。
また、これらのプレ前処理、プレ前処理割込み処理及び変換前処理において、FPGA処理部306は、濃度分布の判定結果に基づいて、当該濃度分布の判定時に用いた濃度変換条件を調整することができる。この場合には、濃度分布の判定結果を反映して濃度変換条件が調整されることから、位置決め対象の部品となった周辺部品の撮像画像データの濃度を適切な値に調整することが可能となる。
さらに、これらのプレ前処理、プレ前処理割込み処理及び変換前処理において、FPGA処理部306は、外接走査の走査結果に基づいて、当該外接走査に用いた二値化しきい値を調整することができる。この場合には、外接走査の走査結果を反映して外接走査に用いた二値化しきい値が調整されることから、位置決め対象の部品となった周辺部品の撮像画像データの外接走査の走査結果を改善することが可能となる。
以上説明したように、本実施の形態に係る画像処理装置301においては、位置決め対象となる特定の部品Pの撮像画像データに対してCPU101による位置決めに必要な画像処理(ソフトウェアによる画像処理)が行われると共に、これに並行して特定の部品Pの周辺の部品Pの撮像画像データに対してFPGA処理部306による画像処理(ハードウェアによる画像処理)によって、CPU101による画像処理に必要な情報が取得される。これにより、ハードウェアによる画像処理と、ソフトウェアによる画像処理とを並行して行うことができることから、位置決めに必要な画像処理を効率的に実行することが可能となる。
また、本実施の形態に係る画像処理装置301においては、FPGA処理部306による画像処理(プレ前処理回路306Dによるプレ前処理)として、位置決め対象となる部品Pの周辺部品Pの撮像画像データの濃度ヒストグラムを生成して濃度分布を判定する。これにより、位置決め対象部品Pの特徴抽出処理に先行して、周辺部品Pの撮像画像データの濃度ヒストグラムに基づく濃度分布が判定されることから、この判定結果を用いてCPU101で特徴抽出段階の認識処理を行うことができるので、CPU101による画像処理に要する時間を短縮すると共に、当該画像処理に伴う負荷を軽減することが可能となる。
また、本実施の形態に係る画像処理装置301においては、FPGA処理部306による画像処理(プレ前処理回路306Dによるプレ前処理)として、位置決め対象となる部品Pの周辺部品Pの撮像画像データに対して外接走査を行う。これにより、位置決め対象部品Pの特徴抽出処理に先行して、周辺部品Pの撮像画像データに対する外接走査が行われることから、この外接走査の走査結果を用いてCPU101で特徴抽出段階の認識処理を行うことができるので、CPU101による画像処理に要する時間を短縮すると共に、当該画像処理に伴う負荷を軽減することが可能となる。
さらに、本実施の形態に係る画像処理装置301においては、CPU101により位置決め対象となる部品Pの撮像画像データに対して、位置決めに関する特徴抽出のための画像処理(特徴抽出処理)を行う。これにより、一般に複雑な判断やアルゴリズムを要する特徴抽出のための画像処理がCPU101で行われることから、当該部品Pの位置決めに必要な装置全体の画像処理を効率化することが可能となる。
特に、本実施の形態に係る画像処理装置301においては、位置決め対象となる部品Pの次に位置決め対象とされる部品Pである周辺部品の撮像画像データに対する画像処理(プレ前処理及び変換前処理)がFPGA処理部306で行われる。これにより、この画像処理(プレ前処理及び変換前処理)の結果を反映して、CPU101による画像処理に要する時間を短縮すると共に、当該画像処理に伴う負荷を軽減することが可能となる。
また、本実施の形態に係る画像処理装置301においては、位置決め対象となる部品Pの撮像画像データをカメラ303で撮像された撮像画面データの中心位置に配置している。これにより、撮像画面データの中心位置に配置された撮像画像データに基づいて、位置決め対象となる部品Pの特徴抽出処理が行われることから、撮像画面データの中心位置から外れた位置に配置された撮像画像データに基づいて特徴抽出処理を行う場合と比べて、高精度に位置決め対象となる部品Pの特徴抽出処理を行うことが可能となる。
一般的な電子部品実装装置において、実装対象となる部品を保持する吸着ノズルの数が増加すると、吸着ノズルが設けられる搬送ヘッドが部品供給部から実装位置に移動する間に位置決めすべき部品点数が増加する。このような複数部品の効率的な位置決めを実現するために、吸着ノズルが保持する複数の部品を同時に撮像することが考えられる。しかしながら、このように複数の部品を同時に撮像する場合においては、同一の被写体を撮像したても、撮像した画像中心部と画像端部とでは同一の画質の像を得ることができない。すなわち、画像端部においては、画像中心部に比べて撮像レンズの光軸と撮像センサや被写体面(ヘッド軌道線)との直交ずれの影響により高さ方向の写り込み等が発生し易い。このような軸ずれに伴う高さ方向の写り込みについては、単一の撮像画像で補正するのは困難である。このため、実装対象となる部品の位置決めを行う場合には、撮像画像の画像中心部に撮像された画像データを用いるのが好ましい。
これに対し、本実施の形態に係る画像処理装置301においては、撮像画面データの中心位置に配置された撮像画像データに基づいて、位置決め対象となる部品Pの特徴抽出処理が行われることから、撮像画面データの画像端部で位置決めを行う場合に発生する不具合が発生することがない。このため、高精度に位置決め対象となる部品Pの特徴抽出処理を行うことが可能となる。
なお、本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている大きさや形状等については、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
例えば、上記実施の形態に係る画像処理装置301においては、位置決め対象となる部品Pの他に隣り合う単一の周辺部品Pのみを撮像画面データに含み、当該周辺部品Pにプレ前処理及び変換前処理を行う場合について説明している。しかしながら、撮像画面データに含まれる周辺部品Pの数については、これに限定されるものではなく適宜変更が可能である。例えば、複数の周辺部品Pを撮像画面データに含み、これらの周辺部品Pに対してプレ前処理及び変換前処理を行うようにしてもよい。また、位置決め対象となる部品Pの他に隣り合う単一の周辺部品Pの全てを撮像画面データに含まず、当該周辺部品Pの一部に対してプレ前処理及び変換前処理を行うようにしてもよい。