(57)【特許請求の範囲】
【請求項１】
入力画像の各座標位置に配置された画像データに対してデータ処理を施して出力画像を生成するデータ処理装置であって、
入力画像の座標位置毎に画像データをハードウェアで演算するハードウェア処理部と、
入力画像の演算後の画像データの各座標位置を出力画像の座標位置にソフトウェアで座標変換するソフトウェア処理部と、
入力画像からの出力画像の生成をシミュレーションするシミュレーション部とを備え、
前記ハードウェア処理部が、座標変換後の座標位置毎に設定された演算パラメータを当該各座標位置の座標演算前の座標位置に関連付けた演算情報に基づいて、座標変換前に画像データを演算し、
前記シミュレーション部が、シミュレーション結果に基づき前記ハードウェア処理部の処理動作及び前記ソフトウェア処理部の処理動作の指令信号を生成することを特徴とするデータ処理装置。
【請求項２】
前記ハードウェア処理部が、入力画像の座標位置毎に画像データを取り込む取り込み部を有することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記ハードウェア処理部が、入力画像の座標位置毎に画像データを演算するメイン演算部と、前記メイン演算部の演算時に発生した派生処理で画像データを演算するサブ演算部とを有することを特徴とする請求項１又は請求項２に記載のデータ処理装置。
【請求項４】
前記ハードウェアがＦＰＧＡ（Field  Programmable  Gate  Array）であることを特徴とする請求項１から請求項３のいずれかに記載のデータ処理装置。
【請求項５】
請求項１から請求項４のいずれかのデータ処理装置と、
部品及び／又は基板を撮像した入力画像を前記データ処理装置に入力する撮像装置とを備え、前記データ処理装置からの出力画像に基づいて前記基板に前記部品を実装することを特徴とする実装装置。
【請求項６】
請求項１から請求項４のいずれかのデータ処理装置と、
基板を撮像した入力画像を前記データ処理装置に入力する撮像装置とを備え、前記データ処理装置からの出力画像に基づいて前記基板を検査することを特徴とする基板検査装置。
【請求項７】
入力画像の各座標位置に配置された画像データに対してデータ処理を施して出力画像を生成するデータ処理方法であって、
入力画像の座標位置毎に画像データをハードウェアで演算するステップと、
入力画像の演算後の画像データの各座標位置を出力画像の座標位置にソフトウェアで座標変換するステップと、
入力画像からの出力画像の生成をシミュレーションするステップとを有し、
前記ハードウェアで演算するステップが、座標変換後の座標位置毎に設定された演算パラメータを当該各座標位置の座標演算前の座標位置に関連付けた演算情報に基づいて、座標変換前に画像データを演算し、
前記シミュレーションするステップが、シミュレーション結果に基づき前記ハードウェアで演算するステップの処理動作及び前記ソフトウェアで座標変換するステップの処理動作の指令信号を生成することを特徴とするデータ処理方法。
【請求項８】
請求項７に記載のデータ処理方法の各ステップをデータ処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像にデータ処理を施して出力画像を生成するデータ処理装置、実装装置、基板検査装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、入力画像に対してデータ処理を施すデータ処理装置として、ＦＰＧＡ（Field  Programmable  Gate  Array）とＤＳＰ（Digital  Signal  Processor）とを備えたものが知られている（例えば、特許文献１参照）。特許文献１に記載のデータ処理装置では、ＦＰＧＡの内部バッファに入力画像が取り込まれ、ＦＰＧＡの内部バッファに蓄積された入力画像の画像データがＤＳＰによって順番に読み出されて各種画像処理が実施される。また、この種のデータ処理装置として、入力画像の画像データに対する一連の画像処理をＦＰＧＡで処理するものも知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０２５３８３号公報
【特許文献２】特開２００８−２０９１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のデータ処理装置は、ＦＰＧＡ等のハードウェアで入力画像を取り込むが、ＤＳＰによってソフトウェアで入力画像の画像データを逐次処理するため処理時間が長くなっていた。一方で、特許文献２に記載のデータ処理装置は、ＦＰＧＡ等のハードウェアで入力画像の画像データを高速に処理することができるが、入力画像の座標変換等のランダムアクセスが伴う処理には向いていない。ＦＰＧＡでこのような処理をするためには、高価なメモリが使用するか、処理速度を低下させなければならなかった。
【０００５】
本発明はかかる点に鑑みてなされたものであり、入力画像の画像データへのランダムアクセスが伴う処理であっても、コストを増やすことなく、処理時間を短縮することができるデータ処理装置、実装装置、基板検査装置、データ処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータ処理装置は、入力画像の各座標位置に配置された画像データに対してデータ処理を施して出力画像を生成するデータ処理装置であって、入力画像の座標位置毎に画像データをハードウェアで演算するハードウェア処理部と、入力画像の演算後の画像データの各座標位置を出力画像の座標位置にソフトウェアで座標変換するソフトウェア処理部と、入力画像からの出力画像の生成をシミュレーションするシミュレーション部とを備え、前記ハードウェア処理部が、座標変換後の座標位置毎に設定された演算パラメータを当該各座標位置の座標演算前の座標位置に関連付けた演算情報に基づいて、座標変換前に画像データを演算し、前記シミュレーション部が、シミュレーション結果に基づき前記ハードウェア処理部の処理動作及び前記ソフトウェア処理部の処理動作の指令信号を生成することを特徴とする。
【０００７】
本発明のデータ処理方法は、入力画像の各座標位置に配置された画像データに対してデータ処理を施して出力画像を生成するデータ処理方法であって、入力画像の座標位置毎に画像データをハードウェアで演算するステップと、入力画像の演算後の画像データの各座標位置を出力画像の座標位置にソフトウェアで座標変換するステップと、入力画像からの出力画像の生成をシミュレーションするステップとを有し、前記ハードウェアで演算するステップが、座標変換後の座標位置毎に設定された演算パラメータを当該各座標位置の座標演算前の座標位置に関連付けた演算情報に基づいて、座標変換前に画像データを演算し、前記シミュレーションするステップが、シミュレーション結果に基づき前記ハードウェアで演算するステップの処理動作及び前記ソフトウェアで座標変換するステップの処理動作の指令信号を生成することを特徴とする。
【０００８】
これらの構成によれば、ストレートな処理に適した演算がハードウェアで実施され、ランダムアクセスを伴う座標変換がソフトウェアで実施される。ハードウェアによる演算時には入力画像に対するランダムアクセスが発生することがなく、ハードウェアに高価なメモリが不要となってコストを低減することができ、装置構成を簡略化することができる。また、ハードウェアで演算することで、ソフトウェアで演算する場合と比べて処理時間を短縮することができる。また、座標変換後の座標位置毎に設定された演算パラメータを用いることで、入力画像の画像データを座標変換前に演算することができる。よって、ハードウェアによる演算、ソフトウェアによる座標変換の順に処理でき、座標変換後の出力画像に対してソフトウェアで続けて他の処理を実施することができる。また、シミュレーション結果に応じてハードウェア処理部及びソフトウェア処理部の処理動作を動的に設定することができる。
【０００９】
本発明のデータ処理装置において、前記ハードウェア処理部が、入力画像の座標位置毎に画像データを取り込む取り込み部を有する。この構成によれば、入力画像の画像データの取り込みと入力画像の画像データの演算を単一のハードウェア処理部で兼用できるため、ハードウェア処理部とソフトウェア処理部との間の画像データの転送回数を最小限に抑えることができる。よって、装置構成を簡略化することができると共に処理時間を短縮することができる。
【００１０】
本発明のデータ処理装置において、前記ハードウェア処理部が、入力画像の座標位置毎に画像データを演算するメイン演算部と、前記メイン演算部の演算時に発生した派生処理で画像データを演算するサブ演算部とを有する。この構成によれば、メイン演算部の演算時の派生処理をサブ演算部で並列に処理できるため、メイン演算部の複雑化を防止することができる。
【００１２】
本発明のデータ処理装置において、前記ハードウェアがＦＰＧＡ（Field  Programmable  Gate  Array）である。この構成によれば、演算速度を高めることができると共に、演算内容を柔軟に変更することができる。
【００１３】
本発明の実装装置は、上記のデータ処理装置と、部品及び／又は基板を撮像した入力画像を前記データ処理装置に入力する撮像装置とを備え、前記データ処理装置からの出力画像に基づいて前記基板に前記部品を実装することを特徴とする。この構成によれば、データ処理装置の処理時間が短縮されるため、後段の処理が詰まることが無く、実装装置の全体のスループットを向上することができる。
【００１４】
本発明の基板検査装置は、上記のデータ処理装置と、基板を撮像した入力画像を前記データ処理装置に入力する撮像装置とを備え、前記データ処理装置からの出力画像に基づいて前記基板を検査することを特徴とする。この構成によれば、データ処理装置の処理時間が短縮されるため、後段の処理が詰まることが無く、検査装置の全体のスループットを向上することができる。
【００１５】
本発明のプログラムは、上記のデータ処理方法の各ステップをデータ処理装置に実行させることを特徴とする。この構成によれば、データ処理装置にプログラムをインストールすることで、入力画像の画像データへのランダムアクセスが伴う処理であっても、コストを増やすことなく、処理時間を短縮することができる。
【発明の効果】
【００１６】
本発明によれば、座標変換前に入力画像の画像データをハードウェアで演算でき、演算後の入力画像の画像データをソフトウェアで座標変換できる。よって、入力画像の画像データへのランダムアクセスが伴う処理であっても、コストを増やすことなく、処理時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態の実装装置の上面模式図である。
【図２】座標変換処理及び演算処理の一例を示す図である。
【図３】座標変換処理及び演算処理の処理順序の一例を示す図である。
【図４】本実施の形態のデータ処理装置の機能構成を示すブロック図である。
【図５】本実施の形態のデータ処理方法の説明図である。
【図６】本実施の形態のデータ処理装置のハードウェア構成を示すブロック図である。
【図７】変形例の基板検査装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して、本実施の形態のデータ処理装置を備えた実装装置について説明する。図１は、本実施の形態の実装装置の上面模式図である。なお、本実施の形態では、実装装置にデータ処理装置を備える構成について説明するが、データ処理装置は撮像装置を備えていれば実装装置以外の装置にも適用可能である。
【００１９】
図１に示すように、実装装置１は、テープフィーダ等の部品供給装置１０から供給された部品（不図示）を、実装ヘッド４０によって基板Ｗの載置面に搭載するように構成されている。実装装置１の基台２０の略中央には、Ｘ軸方向に沿って基板搬送部２１が配設されている。基板搬送部２１は、Ｘ軸方向の一端側から部品搭載前の基板Ｗを実装ヘッド４０の下方に搬入して位置決めし、部品搭載後の基板ＷをＸ軸方向の他端側から搬出する。また、基台２０上には、基板搬送部２１を挟んだ両側に多数の部品供給装置１０がＸ軸方向に横並びに配置されている。
【００２０】
部品供給装置１０にはテープリール１１が着脱自在に装着され、テープリール１１には多数の部品をパッケージングしたキャリアテープ（不図示）が巻回されている。各部品供給装置１０は、装置内に設けられたスプロケットホイールの回転によって実装ヘッド４０にピックアップされる受け渡し位置に向けて順番に部品を繰り出している。実装ヘッド４０の受け渡し位置では、キャリアテープから表面のカバーテープが剥離され、キャリアテープのポケット（不図示）内の部品が外部に露出される。なお、本実施の形態では、部品供給装置１０としてテープフィーダを例示したが、ボールフィーダ等で構成されていてもよい。
【００２１】
基台２０上には、実装ヘッド４０をＸ軸方向及びＹ軸方向に移動させるＸＹ移動部３０が設けられている。ＸＹ移動部３０は、Ｙ軸方向に平行に延びる一対のＹ軸テーブル３１と、Ｘ軸方向に平行に延びるＸ軸テーブル３２とを有している。一対のＹ軸テーブル３１は、基台２０の四隅に立設された支持部（不図示）に支持されており、Ｘ軸テーブル３２は、一対のＹ軸テーブル３１上にＹ軸方向に移動可能に設置されている。Ｘ軸テーブル３２上には実装ヘッド４０がＸ軸方向に移動可能に設置されている。実装ヘッド４０は、ＸＹ移動部３０によって部品供給装置１０と基板Ｗとの間を往復移動される。
【００２２】
実装ヘッド４０は、ノズル４１を備えた複数（本実施の形態では３つ）のヘッド部４２を有している。ヘッド部４２は、Ｚ軸モータ（不図示）によってノズル４１をＺ軸方向に上下動すると共に、θモータ（不図示）によってノズル４１をＺ軸回りに回転する。各ノズル４１は吸引源（不図示）に接続されており、吸引源からの吸引力によって部品を吸着保持する。なお、実装ヘッド４０のノズル４１は、上記の吸引ノズルに限定されず、部品供給装置１０から部品を取り出して基板Ｗに搭載可能であればよく、例えばグリッパーノズルで構成されていてもよい。
【００２３】
実装ヘッド４０には、測定対象の高さを測定する高さセンサ４３と、ノズル４１に吸着された部品の形状寸法や吸着ズレ等を認識可能な不図示のレーザ認識部とが設けられている。高さセンサ４３は、発光素子から測定対象に向けて発光し、測定対象からの反射光を受光素子で受光することで実装ヘッド４０から測定対象までの距離を測定している。不図示のレーザ認識部は、多数の発光素子と受光素子とを水平方向で対向させ、横一列に並んだレーザ光を遮らせるように部品を上下動及び回転させることで、部品の形状寸法や吸着ズレを認識している。
【００２４】
また、実装ヘッド４０には、基板ＷのＢＯＣ（Board  Offset  Correction）マークを撮像する基板撮像部４４と、ノズル４１による部品の搭載動作を撮像するノズル撮像部４５とが設けられている。基板撮像部４４は、ＢＯＣマークの撮像画像に基づいて基板Ｗの位置、傾き、伸縮等を認識している。ノズル撮像部４５は、ノズル４１による吸着前後の部品を撮像する他、基板Ｗに対する搭載前後の部品を撮像して、これらの各画像をトレーサビリティ情報として保存している。また、ノズル４１による吸着前の部品の撮像画像から部品の吸着位置が認識される。
【００２５】
実装装置１の基台２０上には、ノズル４１に吸着された部品を下方から撮像する部品撮像部４６が設けられている。部品撮像部４６は、実装ヘッド４０による搬送中の部品を撮像して、部品の傾きや高さ等を認識している。また、実装装置１には、これら基板撮像部４４、ノズル撮像部４５、部品撮像部４６の各撮像装置のレンズ特性によって生じる歪等を補正するデータ処理装置６０（図４参照）が設けられている。データ処理装置６０は、各撮像装置から入力された入力画像に対して後述する演算処理、座標変換処理を施すことで、レンズ特性による歪を補正した出力画像を生成している。
【００２６】
また、実装装置１には、装置各部を統括する制御部５０が設けられている。制御部５０は、各種処理を実行するプロセッサやメモリ等により構成されている。メモリは、用途に応じてＲＯＭ(Read  Only  Memory)、ＲＡＭ（Random  Access  Memory）等の一つ又は複数の記憶媒体で構成されている。メモリには、実生産で使用される生産プログラムが記憶されている。なお、本実施の形態では、データ処理装置６０（図４参照）が実装装置１の内部に組み込まれているが、データ処理装置６０が実装装置１とは別体に設置されていてもよい。また、データ処理装置６０によって実行されるデータ処理方法のプログラムは、実装装置１のメモリに記憶されてもよいし、データ処理装置６０のメモリに記憶されてもよい。
【００２７】
ここで、図２及び図３を参照して、座標変換処理と演算処理について簡単に説明する。図２は、座標変換処理及び演算処理の一例を示す図である。図３は、座標変換処理及び演算処理の処理順序の一例を示す図である。
【００２８】
図２Ａに示すように、座標変換処理では出力画像の座標位置を基準に、入力画像を１画素ずつ読み込んで座標変換しているため、入力画像を読み込む順番がランダムになっている。すなわち、入力画像を横方向に１画素ずつ読み込むのではなく、縦方向及び横方向にランダムに読み込む画素（画像データ）を変えながら出力画像の１列を生成している。また、図２Ｂに示すように、演算処理では入力画像の画素毎に演算パラメータによって周辺画素との輝度の平滑化が行われている。このように、入力画素にランダムにアクセスして画素を並び替えると共に各画素を輝度調整することで、レンズ特性による歪みを除去した出力画像が生成される。
【００２９】
ところで、図３Ａに示すように、一般的なデータ処理では、入力画像の各画像データの座標位置が座標変換された後に、座標変換後の座標位置で各画像データが演算されて出力画像が生成される。このとき、座標変換処理及び演算処理を両方ともソフトウェアで実施する構成が考えられるが、ソフトウェアは逐次処理するものであるため処理時間が長くなる。一方で、座標変換処理及び演算処理を両方ともハードウェアで実施する構成も考えられるが、ハードウェアはランダムアクセスを伴う座標変換処理には適しておらず、座標変換処理を実現するためには高価なメモリが必要になる。
【００３０】
さらに、ランダムアクセスに適したソフトウェアで座標変換処理を実施し、ストレートな処理に適したハードウェアで演算処理を実施する構成も考えられる。しかしながら、座標変換処理及び演算処理をするためには、撮像装置から入出力インターフェースのメモリに画像データを取り込んだ後に、ソフトウェア処理用のプロセッサのメモリに転送し、さらにハードウェア処理用のＦＰＧＡのメモリに転送する必要がある。また、出力画像に対してさらにパターンマッチング等を実施するためには、再度プロセッサに転送しなければならず、転送回数が増えて全体の処理時間が長くなると共に、装置構成が複雑になるという問題がある。
【００３１】
そこで、本実施の形態では、図３Ｂに示すように、入力画像の座標位置毎に画像データをハードウェアで演算した後に、入力画像の画像データの各座標位置を出力画像の座標位置にソフトウェアで座標変換するようにしている。これにより、ストレートな処理に適したハードウェアで演算処理を実施して時間を短縮すると共に、ランダムアクセスに適したソフトウェアで座標変換している。さらに、撮像画像から直にハードウェアに画像データを取り込んで、それをソフトウェアに転送するため転送回数を減らすこともできる。よって、全体の処理時間を短くして装置構成を簡略化することができる。
【００３２】
以下、図４を参照して、本実施の形態のデータ処理装置の機能構成について説明する。図４は、本実施の形態のデータ処理装置の機能構成を示すブロック図である。
【００３３】
図４に示すように、データ処理装置６０は、入力画像の各座標位置に配置された画像データに対してデータ処理を施して出力画像を生成するものであり、ハードウェア処理部６１と、ソフトウェア処理部６６と、シミュレーション部６９とを備えている。ハードウェア処理部６１では画像データが入力画像の座標位置毎にハードウェアで演算され、ソフトウェア処理部６６では入力画像の演算後の画像データの各座標位置が出力画像の座標位置に座標変換される。また、シミュレーション部６９では、ハードウェア処理部６１及びソフトウェア処理部６６のデータ処理に先だって入力画像の一連のデータ処理がソフトウェアでシミュレーションされる。
【００３４】
ハードウェア処理部６１には、入力画像の座標位置毎に画像データを取り込む取り込み部６２と、取り込み部６２に取り込まれた画像データを演算する演算部６３とが設けられている。演算部６３は、入力画像の座標位置毎に画像データを演算するメイン演算部６４と、メイン演算部６４の演算時に発生した派生処理で画像データを演算するサブ演算部６５とに分かれている。サブ演算部６５は、メイン演算部６４と並列に演算可能であり、メイン演算部６４の回路構成の複雑化、処理速度の低下を抑えている。サブ演算部６５の演算結果は補完データとして、メイン演算部６４の演算結果と共にソフトウェア処理部６６に出力される。
【００３５】
また、ハードウェア処理部６１は、座標変換前に入力画像の座標位置毎に画像データを演算している。この場合、入力画像の演算に使用される演算パラメータは、座標変換後の座標位置（Ｘ’、Ｙ’）毎に設定されている。すなわち、入力画像の座標変換前の座標位置と演算パラメータが設定された座標変換後の座標位置とが合っていない。このため、各演算パラメータを座標変換前の各座標位置（Ｘ、Ｙ）に使用するためには、これら各演算パラメータが座標変換前のどの座標位置（Ｘ、Ｙ）に関連付けられているかをハードウェア処理部６１が認識する必要がある。
【００３６】
そこで、ハードウェア処理部６１は、座標変換後の座標位置（Ｘ’、Ｙ’）毎に設定された各演算パラメータを、当該各座標位置（Ｘ’、Ｙ’）の座標変換前の各座標位置（Ｘ、Ｙ）に関連付けた演算情報に基づいて、座標変換前に画像データを演算している。このような構成により、座標変換前に適切な演算パラメータによって入力画像の各画像データを演算することができる。なお、演算情報は、シミュレーション部６９によって任意の入力画像から出力画像を生成した際のシミュレーション結果に基づいて生成される。演算情報の生成については後述する。
【００３７】
座標変換前の入力画像の全ての画像データは、座標変換後の出力画像に１対１で対応しているとは限らない。入力画像の単一の座標位置（Ｘ、Ｙ）の画像データが、出力画像の複数の座標位置（Ｘ’、Ｙ’）の画像データとして使用される場合がある。この場合には、上記したように、メイン演算部６４とサブ演算部６５とによって、座標変換前の単一の座標位置（Ｘ、Ｙ）の画像データを並列に演算して、同一の画像データから複数の演算結果を得るようにしている。この場合の演算情報には、座標変換前の単一の座標位置（Ｘ、Ｙ）に複数の演算パラメータが関連付けられている。
【００３８】
ソフトウェア処理部６６には、入力画像の座標位置（Ｘ、Ｙ）を出力画像の座標位置（Ｘ’、Ｙ’）に座標変換する座標変換部６７が設けられている。座標変換部６７は、シミュレーション部６９によるシミュレーション結果から得られた座標変換前の座標位置（Ｘ、Ｙ）と座標変換後の座標位置（Ｘ’、Ｙ’）との対応関係から、各画像データを並び替えている。メイン演算部６４とは別にサブ演算部６５で画像データが演算されている場合には、サブ演算部６５からの出力時に補完データが座標変換され、さらにメイン演算部６４から出力された画像データとの合成処理が実施される。
【００３９】
シミュレーション部６９は、任意の入力画像を取り込んで、ソフトウェアによってレンズ特性による歪を補正するシミュレーションを実施している。この場合、ソフトウェアで入力画像の各画像データについて座標変換した後に、さらにソフトウェアで座標変換後の各画像データを演算して歪を補正している。補正前の入力画像と補正後の出力画像を比較することで、座標変換前の座標位置（Ｘ、Ｙ）と座標変換後の座標位置（Ｘ’、Ｙ’）との対応関係（テンプレート）を求めている。この対応関係に基づいて演算パラメータを並び替えて演算情報を生成している。
【００４０】
また、シミュレーション部６９は、シミュレーション結果に基づいてハードウェア処理部６１の処理動作及びソフトウェア処理部６６の処理動作を指示する指令信号を生成する。ハードウェア処理部６１に対しては演算情報を参照した演算を指示する指令信号が生成され、ソフトウェア処理部６６に対しては座標変換を指示する指令信号が生成される。シミュレーション結果に応じてハードウェア処理部６１及びソフトウェア処理部６６の処理動作が動的に設定される。なお、シミュレーション部６９は、データ処理装置６０が備えている必要がなく、別の装置でのシミュレーション結果を使用してもよい。
【００４１】
続いて、図５を参照して、データ処理方法について説明する。図５は、本実施の形態のデータ処理方法の説明図である。なお、図５では説明の便宜上、図４の符号を使用して説明する。
【００４２】
図５に示すように、入力画像の画像データがハードウェア処理部６１に入力されると、ハードウェア処理部６１にてハードウェアによるパイプライン処理で座標位置毎に画像データが演算される。画像データの演算では、座標変換後の座標位置毎に設定された演算パラメータを用いて、当該座標位置の座標変換前に各画像データが演算されている。したがって、入力画像の座標位置が入れ替わらない状態で、画像データの輝度だけが調整される。ハードウェア処理部６１は、複数の画像データを並列に演算するため、データ処理の高速化が図られている。
【００４３】
また、入力画像の全ての画像データが演算されるわけではなく、例えば、左から５つ目の画像データについては演算処理されない。代わりに、左から６つ目の画像データが分岐されて、メイン演算部６４とサブ演算部６５にて並列に演算されている。この並列処理の有無はシミュレーション部６９のシミュレーション結果で判断されている。図の例では、メイン演算部６４では、入力画像の画像データ［１、２、３、４、５、６］から［１’、３’、２’、４’、’、５’］が算出され、サブ演算部６５では、分岐した画像データ［６］から［６’］が算出されている。
【００４４】
演算後の画像データはソフトウェア処理部６６に出力され、ソフトウェア処理部６６にてソフトウェアで画像データの座標位置が座標変換される。画像データの座標変換では、事前に求めた座標変換前の座標位置と座標変換後の座標位置との対応関係に従って、入力画像の画像データの入れ替えが行われる。入力画像の各画像データの入れ替えと、各画像データの輝度調整とによって、レンズ特性による歪みが補正された出力画像が生成される。ランダムアクセスを伴う座標変換をソフトウェアで実施することで、装置構成の簡略化及びコストが低減されている。
【００４５】
図の例では、メイン演算部６４から出力結果［１’、３’、２’、４’、’、５’］の座標位置が［１’、２’、３’、４’、５’、’］の順に並び替えられる。このとき、演算結果の無い左から５つ目の座標位置は無視されるため、座標変換後の６つ目の座標位置に空き残されている。この６つ目の座標位置にはサブ演算部６５から出力された画像データ［６’］が設定される。このように、ソフトウェア処理部６６では、画像データの座標位置を座標変換だけでなく、演算時に画像データが分岐処理されている場合には補完データの合成処理も実施されている。
【００４６】
図６を参照して、データ処理装置のハードウェア構成について説明する。図６は、本実施の形態のデータ処理装置のハードウェア構成を示すブロック図である。ここでは、比較例として、ソフトウェアによる座標変換後にハードウェアで演算するハードウェア構成と比較しながら説明する。図６Ａは比較例のデータ処理装置を示し、図６Ｂは本実施の形態のデータ処理装置を示している。なお、図６においては、説明の便宜上、シミュレーション部については省略している。
【００４７】
図６Ａに示すように、比較例のデータ処理装置８０は、撮像装置から入力画像を取り込むＦＰＧＡ８１と、入力画像の各画像データを座標変換するプロセッサ８４と、座標変換後の各画像データを演算するＦＰＧＡ８６とを備えている。撮像装置からＦＰＧＡ８１の入出力インターフェース８２を介して画像データが取り込まれてメモリ８３に蓄積される。ＦＰＧＡ８１からプロセッサ８４のメモリ８５に画像データが転送され、プロセッサ８４にてメモリ８５から読み出された画像データが座標変換される。プロセッサ８４からＦＰＧＡ８６のメモリ８７に画像データが転送されて演算回路８８にて画像データが演算される。
【００４８】
このように、データ処理装置８０は、ハードウェアであるＦＰＧＡ８６で入力画像の画像データを取り込んで、ソフトウェアであるプロセッサ８４のプログラムで画像データを座標変換した後に、ハードウェアであるＦＰＧＡ８６で画像データを演算している。このため、ＦＰＧＡ８１からプロセッサ８４に画像データを転送し、さらにプロセッサ８４からＦＰＧＡ８６に画像データを転送しなければならない。さらに、パターンマッチング等の画像処理をする場合には、ＦＰＧＡ８６からプロセッサ８４に再び画像データを転送する必要がある。このため、転送回数が増えて処理時間が長くなると共に装置構成が複雑になっている。
【００４９】
これに対し、図６Ｂに示すように、本実施の形態のデータ処理装置６０は、撮像装置から入力画像を取り込むＦＰＧＡ７１と、入力画像の各画像データを座標変換するプロセッサ７６とを備えている。撮像装置からＦＰＧＡ７１の入出力インターフェース７２を介して画像データが取り込まれてメモリ７３に蓄積され、演算回路７４にて画像データが演算される。ＦＰＧＡ７１からプロセッサ７６のメモリ７７に画像データが転送され、プロセッサ７６にてメモリ７７から読み出された画像データが座標変換される。ＦＰＧＡ７１が画像データの取り込みと演算に使用されているため、比較例と比べて構成が簡略化されている。
【００５０】
また、パターンマッチング等の画像処理をする場合であっても画像データを転送する必要がない。このように、画像データの転送回数を最小限に抑えることができ、装置構成も簡略化されている。また、ハードウェアをＦＰＧＡ７１で構成しているため、演算速度を高めることができると共に、演算内容を柔軟に変更することができる。なお、図４に示すハードウェア処理部６１が、ＦＰＧＡ７１の入出力インターフェース７２、メモリ７３、演算回路７４で構成され、図４に示すソフトウェア処理部６６が、プロセッサ７６のメモリ７７及びプロセッサ７６に実行されるプログラムで構成されている。
【００５１】
このようなデータ処理装置６０を実装装置１に組み込むことで、基板撮像部４４、ノズル撮像部４５、部品撮像部４６（図１参照）等の撮像装置からデータ処理装置６０に撮像画像が入力され、データ処理装置６０でレンズ特性による歪が補正される。そして、データ処理装置６０からの出力画像に基づいて基板Ｗに部品が実施される。このとき、データ処理装置６０での処理時間が短縮されるため、後段の処理が詰まることが無く、実装装置１の全体のスループットを向上することができる。
【００５２】
以上のように、本実施の形態のデータ処理装置６０によれば、ストレートな処理に適した演算がハードウェアで実施され、ランダムアクセスを伴う座標変換がソフトウェアで実施される。ハードウェアによる演算時には入力画像に対するランダムアクセスが発生することがなく、ハードウェアに高価なメモリが不要となってコストを低減することができ、装置構成を簡略化することができる。また、ハードウェアで演算することで、ソフトウェアで演算する場合と比べて処理時間を短縮することができる。また、座標変換後の座標位置毎に設定された演算パラメータを用いることで、入力画像の画像データを座標変換前に演算することができる。よって、ハードウェアによる演算、ソフトウェアによる座標変換の順に処理でき、座標変換後の出力画像に対してソフトウェアで続けて他の処理を実施することができる。
【００５３】
なお、本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている大きさや形状などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
【００５４】
例えば、本実施の形態において、データ処理装置６０を備えた実装装置１について説明したが、データ処理装置６０は他の装置に設けられてもよい。例えば、図７に示すように、データ処理装置６０は基板検査装置９０に設けられてもよい。基板検査装置９０は、画像処理によって基板Ｗに印刷された半田の位置ズレや外観等から基板Ｗの印刷良否を検査するものであり、基板Ｗを撮像する撮像装置９１と、撮像装置９１からの入力画像に対して上記のデータ処理を施すデータ処理装置６０と、データ処理装置６０からの出力画像に対してパターンマッチング等によって基板Ｗを検査する検査部９２とが設けられている。このように、基板検査装置９０であっても、レンズ特性によって生じる歪等の処理時間が短縮されるため、後段の処理が詰まることが無く、検査装置の全体のスループットを向上することができる。なお、ここでは、基板検査装置９０の構成を簡略化して記載しているが、通常の基板検査に必要な構成は含むものとする。また、基板検査装置９０の各部は、各種処理を実行するプロセッサやメモリ等により構成されている。メモリは、用途に応じてＲＯＭ(Read  Only  Memory)、ＲＡＭ（Random  Access  Memory）等の一つ又は複数の記憶媒体で構成されている。
【００５５】
また、本実施の形態において、演算パラメータは、ハードウェア処理部６１による演算に使用されるパラメータであればよく、演算パラメータとして、例えば、係数、演算式を使用することができる。
【００５６】
また、本実施の形態において、メイン演算部６４の演算時に発生した派生処理は分岐処理に限定されない。派生処理は、メイン演算部６４の演算時に発生する処理であればよく、例えば、メイン演算部６４の演算時に発生する繰返し処理でもよい。
【００５７】
また、本実施の形態において、シミュレーション部６９のシミュレーションに使用される入力画像は、レンズ特性の歪を補正対象である撮像装置で撮像されたものであれば、どのような撮像画像でもよい。すなわち、シミュレーションは撮像装置や撮像装置のレンズが交換される度に実施される。
【００５８】
また、本実施の形態において、ハードウェアはＦＰＧＡ７１に限定されない。ハードウェアは、入力画像の座標位置毎に画像データを演算可能であればよく、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＡＳＳＰ（Application  Specific  Standard  Product）等の集積回路でもよい。
【００５９】
また、本実施の形態において、ハードウェア処理部６１がメイン演算部６４とサブ演算部６５を備える構成にしたが、メイン演算部６４だけで演算可能であれば、サブ演算部６５を備えなくてもよい。
【産業上の利用可能性】
【００６０】
以上説明したように、本発明は、入力画像の画像データへのランダムアクセスが伴う処理であっても、コストを増やすことなく、処理時間を短縮することができるという効果を有し、特に、入力画像にデータ処理を施して出力画像を生成するデータ処理装置、実装装置、データ処理方法及びプログラムに有用である。
【符号の説明】
【００６１】
１  実装装置
４４  基板撮像部（撮像装置）
４５  ノズル撮像部（撮像装置）
４６  部品撮像部（撮像装置）
６０  データ処理装置
６１  ハードウェア処理部
６２  取り込み部
６３  演算部
６４  メイン演算部
６５  サブ演算部
６６  ソフトウェア処理部
６７  座標変換部
６９  シミュレーション部
７１  ＦＰＧＡ（ハードウェア）
９０  基板検査装置
【図１】
0006680542.tif 000002
【図２】
0006680542.tif 000003
【図３】
0006680542.tif 000004
【図４】
0006680542.tif 000005
【図５】
0006680542.tif 000006
【図６】
0006680542.tif 000007
【図７】
0006680542.tif 000008