(57)【特許請求の範囲】
【請求項１】
平坦部から突出する突出物を有する被測定物にライン光を投光し、ライン光によって切断される平坦部及び突出物を撮像して光切断法により平坦部からの突出物の高さを測定する高さ測定方法において、
撮像された突出物の像から突出物の高さデータを求め、
前記高さデータを一次微分と二次微分あるいは一次微分し、
前記微分値がしきい値を超える時の前の高さデータを抽出し、
抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ前記抽出された高さデータを平坦部の高さデータとすることを特徴とする高さ測定方法。
【請求項２】
高さデータが抽出されたときそれ以前の複数個の高さデータの中からすでに平坦部の高さデータが採用されているときは、その抽出された高さデータが破棄されることを特徴とする請求項１に記載の高さ測定方法。
【請求項３】
前記平坦部の高さデータとして採用された複数個の高さデータに基づいて多重線形回帰を用いて平坦部の高さデータの近似式を求め、前記近似式から平坦部のライン光に沿った方向の傾き補正を行なうことを特徴とする請求項１または２に記載の高さ測定方法。
【請求項４】
平坦部から突出する突出物を有する被測定物にライン光を投光し、ライン光によって切断される平坦部及び突出物を撮像して光切断法により平坦部からの突出物の高さを測定する高さ測定装置において、
突出物にライン光を投光する投光装置と、
前記ライン光が投光された突出物の像を撮像する手段と、
前記ライン光による突出物の画像データを処理して突出物の高さデータを算出する手段と、
前記高さデータを一次微分と二次微分あるいは一次微分する手段と、
前記微分値から平坦部の高さを算出する手段と、
前記突出物の高さを前記平坦部の高さを基準にして算出する手段と、を有し、
前記平坦部の高さを算出する手段は、前記微分値がしきい値を超える時の前の高さデータを抽出し、抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ前記抽出された高さデータを平坦部の高さデータとすることを特徴とする高さ測定装置。
【請求項５】
前記平坦部の高さを算出する手段は、高さデータが抽出されたときそれ以前の複数個の高さデータの中からすでに平坦部の高さデータが採用されているときは、その抽出された高さデータを破棄することを特徴とする請求項４に記載の高さ測定装置。
【請求項６】
前記平坦部の高さデータとして採用された複数個の高さデータに基づいて多重線形回帰を用いて平坦部の高さデータの近似式を求め、前記近似式から平坦部のライン光に沿った方向の傾き補正を行なう補正手段が設けられることを特徴とする請求項４または５に記載の高さ測定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高さ測定方法及びその装置、更に詳細には、表面実装システムに用いられるクリーム半田印刷機によって印刷されたクリーム半田など微細な高さを測定する高さ測定方法及び装置に関する。
【０００２】
【従来の技術】
従来から三次元形状を認識して高さを測定する装置として光切断法を用いた三次元認識装置が知られている。この光切断法による三次元認識装置を図２０に示す。光源であるライン光発生器１２１からのライン光１２２が被測定物１２３の斜め上方から所定の角度で投光され、被測定物１２３の表面に形成された面形状に沿ってできた像が垂直上方よりＣＣＤカメラ１２４で撮影される。ＣＣＤカメラ１２４で撮影した画像はＣＣＤカメラ制御器１２５でＡ／Ｄ変換され、画像取込み器１２６で取込まれる。そして、その取込まれたデータは座標演算器１２７によって被測定物１２３の三次元座標に変換される。
【０００３】
クリーム半田印刷機に組込んで使用するようなクリーム半田高さ測定装置においては、図２０で点線で囲まれた部分（測定ユニット）１２８が、ＸＹ移動ガントリー（ＸＹ移動機構）に組み込まれて使用される。まずクリーム半田印刷機に印刷用の配線基板が搬入されると、配線基板とステンシルの位置決め完了後に、ＸＹ移動ガントリーによって、初期待避位置から目的とする測定位置まで測定ユニット１２８が移動される。そして、測定ユニットは被測定物である配線基板上のパッド面（レジスト面）に形成されるライン光の像を、ＣＣＤカメラ１２４によって撮像してから初期待避位置に再び移動待避する。次に配線基板のパッド面にクリーム半田が印刷される。配線基板のパッド面への印刷が完了した後に、再びＸＹ移動ガントリーによって測定ユニット１２８が目的とする測定位置まで移動されて、クリーム半田の形状に沿ってできたライン光の像を、ＣＣＤカメラ１２４によって撮像してから、初期待避位置に再び移動待避する。
【０００４】
以上の撮像データから、配線基板のパッド面の高さ方向の重心位置座標と、クリーム半田部の高さ方向の重心位置座標を計算する。そして、配線基板のパッド面の高さ方向の重心位置座標とクリーム半田部の高さ方向の重心位置座標の差し引きから、配線基板のパッド面を基準として、印刷後のクリーム半田部の高さを算出する。そして各パッド面にわたるクリーム半田部の平均高さを算出する。
【０００５】
三次元形状を得るためには、光切断位置を変えた複数のデータが必要となる。例えば長さが２ｍｍのパッドに印刷されたクリーム半田の三次元形状を得るために、５０μｍのピッチで光切断を行うとする。この場合は、クリーム半田の印刷前に、配線基板のパッド面に形成されるライン光の像をＣＣＤカメラによって、光切断の位置を変えながら４０回撮像する。さらに、クリーム半田の印刷後に、クリーム半田の形状に沿って形成されたライン光の像を、ＣＣＤカメラで光切断の位置を変えながら４０回撮像する必要がある。従って、ＣＣＤカメラによる撮像回数の合計は８０回となる。同じく、測定ユニットの微小移動回数の合計も８０回となる。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来のクリーム半田印刷機に組込んで使用するようなクリーム半田の高さ測定装置においては、印刷前のライン光の像と印刷後のライン光の像をＣＣＤカメラで撮像してクリーム半田の高さを算出しなければならない。このためにタクトタイムが長くなり、半導体の表面実装システム全体の性能を下げてしまうという問題点があった。
【０００７】
さらに、光切断の位置を微小に変えるにもＣＣＤカメラが搭載された重い測定ユニットを移動しなければならず、ＸＹ移動ガントリーに対しては、目的とする測定位置までのスキップ機能と、測定目的位置での微小移動という二つの機能を持たせねばならず、ＸＹ移動ガントリー駆動用のサーボ系が複雑になるという問題点があった。
【０００８】
従って、本発明は、このような問題を解決するためになされたもので、タクトタイムを大幅に向上させて正確な高さを測定することが可能な高さ測定方法及び装置を提供することをその課題とする。
【０００９】
【課題を解決するための手段】
本発明では、この課題を解決するために、
平坦部から突出する突出物を有する被測定物にライン光を投光し、ライン光によって切断される平坦部及び突出物を撮像して光切断法により平坦部からの突出物の高さを測定する高さ測定方法において、
撮像された突出物の像から突出物の高さデータを求め、
前記高さデータを一次微分と二次微分あるいは一次微分し、
前記微分値がしきい値を超える時の前の高さデータを抽出し、
抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ前記抽出された高さデータを平坦部の高さデータとする構成を採用している。
【００１０】
また、本発明では、
平坦部から突出する突出物を有する被測定物にライン光を投光し、ライン光によって切断される平坦部及び突出物を撮像して光切断法により平坦部からの突出物の高さを測定する高さ測定装置において、
突出物にライン光を投光する投光装置と、
前記ライン光が投光された突出物の像を撮像する手段と、
前記ライン光による突出物の画像データを処理して突出物の高さデータを算出する手段と、
前記高さデータを一次微分と二次微分あるいは一次微分する手段と、
前記微分値から平坦部の高さを算出する手段と、
前記突出物の高さを前記平坦部の高さを基準にして算出する手段と、を有し、
前記平坦部の高さを算出する手段は、前記微分値がしきい値を超える時の前の高さデータを抽出し、抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ前記抽出された高さデータを平坦部の高さデータとする構成も採用している。
【００１１】
このような構成では、被測定物の画像データを処理して得られる高さデータの一次微分値と二次微分値あるいは一次微分値から被測定物の平坦部の高さデータを求め、この平坦部の高さを基準にして突出物の高さデータが算出されるので、突出物が形成される前の平坦部の高さデータを求める必要がなく、平坦部に突出物を形成するごとに突出物の高さを測定しなければならないような場合、例えば、配線基板にクリーム半田を印刷し、クリーム半田の高さを測定しなければならない場合などにタクトタイムを顕著に向上させることができる。
【００１２】
本発明では、突出部の立ち上がり部では、微分値が大きくなるという考え方に立脚しているが、それ以外でも微分値が大きくなるという問題がある。この問題は、抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ抽出された高さデータを平坦部の高さデータとすることにより解決している。
【００１３】
また、突出部の立ち上がりの途中でも、微分値が大きくなることがあるが、この問題は、高さデータが抽出されたときそれ以前の複数個の高さデータの中からすでに平坦部の高さデータが採用されているときは、その抽出された高さデータを破棄することにより解決している。
【００１４】
更に、被測定物のライン光に沿った方向に被測定物にそりがある場合には、正確な測定ができないが、この問題は、平坦部の高さデータとして採用された複数個の高さデータに基づいて多重線形回帰を用いて平坦部の高さデータの近似式を求め、その近似式から平坦部のライン光に沿った方向の傾き補正を行なうことにより解決している。
【００１５】
【発明の実施の形態】
以下、図面に示す実施の形態に基づいて本発明を詳細に説明する。
【００１６】
［基本構成］
図１は本発明の１実施形態を示した３次元測定装置の主要光学部品の基本構成図であり、図２はその側面図である。各図において、符号１で示すものは、レーザ光源としてのレーザダイオードで、このレーザダイオード１から発光されたレーザ光は、コリメートレンズ２で光学中心軸に平行な平行光束１ａにされる。このレーザ平行光束１ａは、フォーカスレンズ３と投光ミラー４とラインジェネレータレンズ５が組み込まれている投光ユニット７に入射する。レーザ光束は、投光ユニット７内のフォーカスレンズ３によりスポット光となるように絞り込まれ、投光ミラー４によって垂直軸（Ｚ方向）に対して４５度の角度に反射され、ラインジェネレータレンズ５によって幅１４〜２０μｍ、長さ１０ｍｍのライン光９となり、被測定物（クリーム半田ないしそれが印刷される配線基板）１１上にＸ方向にライン光９を形成する。
【００１７】
被測定物１１からの散乱反射光は、光軸６ａが垂直軸となるように配置された６．４ｍｍ×４．８ｍｍ視野のノンインターレース式ＣＣＤカメラ６により撮像される。また、この投光ユニット７は、リニアモータ８のシャフト８ａに取り付けられており、リニアモータ８がＹ方向に約１０ｍｍのストロークで直線運動を行なうことにより、２重矢印で示したように、平行光束１ａに平行に往復移動する。この投光ユニット７の移動によりライン光９はライン光の伸びるＸ方向と垂直方向に移動することになる。
【００１８】
［回路構成（データ取得）］
図３は、３次元測定装置において被測定物の画像データを取得する回路構成を示したブロック図である。同図において、リニアモータ駆動指令器３１は、ＣＰＵ４４からのスタート信号を受けて、リニアモータドライバ３２にリニアモータ駆動用の指令パルス列を出力し、リニアモータ８を１パルス当たり０．２５μｍ移動させる。リニアモータ駆動指令器３１は、同時にＬＤ（レーザダイオード）オン／ＣＣＤトリガタイミングデコーダ（以下タイミングデコーダという）３５に正／逆方向信号を送り、リニアモータ８が正方向か逆方向のどちらに移動しているかを知らせる。
【００１９】
リニアモータドライバ３２は、指令パルス列を受けてリニアモータを駆動するとともに、リニアモータ８内蔵の位置エンコーダ８ｂからの実際位置を示す信号を受けてリニアモータ８への供給電圧を調整し、リニアモータの位置をフィードバック制御する。
【００２０】
位置カウンタ３４は、リニアモータ８の位置エンコーダ８ｂにより９０度位相の異なるＡ相信号、Ｂ相信号を受け、リニアモータ８の位置を示す位置信号をデジタルデータで出力する。なお、位置カウンタ３４のリセットは、位置エンコーダ８ｂの原点リセット信号により行なう。
【００２１】
タイミングデコーダ３５は、位置カウンタ３４からの位置データを受けてＬＤオンのタイミング信号（１６０μｍピッチ）を出力する。この信号の立ち上がりを受けて、ワンショットマルチバイブレータ（ＭＳ）４６は、２ｍｓ幅のＬＤオンパルスをレーザダイオードドライバ３６に出力し、レーザダイオード１をパルス点灯する。レーザダイオード１には、光量モニタフォトダイオード（不図示）が内蔵されており、これによりレーザダイオード１の光量が一定に制御される。
【００２２】
なお、ＬＤオンの最中にも、リニアモータ８が動いているために、移動方向によりライン光位置がずれるための補正と、正方向と逆方向で半ピッチ分（実施例では８０μｍ）ズラすために、上述したようにリニアモータ駆動指令器３１から正／逆方向信号が入力される。
【００２３】
位置ラッチ３７は、位置カウンタ３４から出力される位置データをＬＤオンのタイミングの立ち上がりでラッチし、そのときのライン光のＹ方向の位置をＭＳ４６からのＬＤオンパルスの立ち下がりタイミングに同期してＣＰＵ４４に伝えている。ＬＤオン中にもライン光が移動して、実際のライン光位置とずれを生じるが、これについては、ライン光移動速度とＬＤオン時間と正／逆方向信号により、ＣＰＵ４４内で補正を行なっている。
【００２４】
一方、同期信号タイミング発生器３９は、タイミングデコーダ３５からＯＲ回路３５’を介してＣＣＤカメラ同期タイミング信号を受け、ＨＤ水平同期信号とタイミングを合わせたＶＤ垂直同期信号を出力する。このＶＤ垂直同期信号に関連して、前フレームの各画素の光量データ読み出しが開始される。同時に、各画素での光量蓄積が始まり、ライン光９による画像がＣＣＤカメラ６のＣＣＤエリアイメージセンサ３８上に取得される。
【００２５】
ＣＣＤエリアイメージセンサ３８上の像は、同期信号タイミング発生器３９からの垂直レジスタ転送クロック、水平レジスタ転送クロック等により、ドライバ３３を介して各画素の光量値（アナログ値）として読み出される。これが、アンプ４７を介して、Ａ／Ｄ変換器４８に入力され、デジタルデータとして、Ｖ−ＲＡＭ画像メモリ４０に入力される。
【００２６】
水平アドレスカウンタ４２は、同期信号タイミング発生器３９からの水平同期信号の立ち下がりより所定の水平クロック数後にリセットされ、その後水平クロックをカウントすることにより有効画面内の現在の画素の水平方向の位置（水平アドレス）を出力する。この水平アドレス値は、マルチプレクサ４１を介してＶ−ＲＡＭ画像メモリ４０の水平アドレスに入力される。
【００２７】
一方、垂直アドレスカウンタ４３は、同期信号タイミング発生器３９からの垂直同期信号の立ち下がりより所定の水平同期信号のパルス数後にリセットされ、その後水平同期信号のパルスをカウントすることにより有効画面内の現在の画素の垂直方向の位置（垂直アドレス）を出力する。この垂直アドレス値は、マルチプレクサ４５を介してＶ−ＲＡＭ画像メモリ４０の垂直アドレスに入力される。
【００２８】
書込タイミング発生器４９は、水平アドレスカウンタ４２よりの有効水平走査区間信号と、垂直アドレスカウンタ４３よりの有効垂直走査区間信号の間、水平クロックに同期してＶ−ＲＡＭ画像メモリ４０に書き込み信号を出力する。これによりＶ−ＲＡＭ画像メモリ４０は有効水平走査区間信号と有効垂直走査区間信号で定まる有効画面内の各画素データを格納する。
【００２９】
水平／垂直アドレス発生器５０は、水平アドレス信号をマルチプレクサ４１に、垂直アドレス信号をマルチプレクサ４５に、また読出し信号をＶ−ＲＡＭ画像メモリ４０に出力する。マルチプレクサ４１、４５はＣＰＵ４４からの切替信号に応じて読み出し側に切り替えられ、読出し信号に同期して水平アドレス信号及び垂直アドレス信号で定まるアドレスのＶ−ＲＡＭ画像メモリ４０の画像データが順次読み出される。なお、この画像データの読み出しは、Ｖ−ＲＡＭ画像メモリ４０に画像データの書き込みが完了した後に行なわれる。これは、ＣＰＵ４４からの切替信号によりマルチプレクサ４１、４５が書き込みから読み出しモードに切り替えられることにより保証される。
【００３０】
［回路構成（データ処理）］
図４には、ＶーＲＡＭ画像メモリ４０に格納された画像データを処理するための回路構成が図示されており、ＶーＲＡＭ画像メモリ４０を中心とした回路構成は、図３に図示したものと同じものが図示されている。
【００３１】
切替信号によりマルチプレクサ４１、４５が読出しに切り替えられることにより読出し信号に同期してＶーＲＡＭ画像メモリ４０から読み出される画像データは、階調データフィルタ処理ブロック６０に入力され、ノイズ分が除去される。階調データフィルタ処理ブロック６０には、２つの１ラインバッファ６１、６２が設けられ、これにより３ライン分の画像データが同時に得られる。これらの３ライン分の画像データは演算回路６３に入力され、画像データの平坦度Ｆが演算され、また演算回路６４にも入力されて、階調の最大値ＭＡＸと階調の最小値ＭＩＮの差ΔＢが演算される。また、３ライン分の画像データは帯域除去フィルタ６８にも入力され、帯域除去フィルタがかけられる。また１ラインバッファ６１の出力は遅延回路６９に入力され、演算処理時間分に相当する遅延がかけられる。なお、演算回路６３、６４及び帯域除去フィルタ６８の処理はそれぞれ３×３の各画素ブロック単位で処理が行なわれる。
【００３２】
演算回路６５は画像データの平坦度Ｆの差ΔＢに対する比を演算し、比較器６６はその演算結果をしきい値６６’と比較する。しきい値以下であればマルチプレクサ６７は、帯域除去フィルタ６８で帯域除去フィルタ処理された画像データを選択し、またしきい値以上であれば遅延回路６９で各演算時間分に相当する遅延のかけられた画像データを選択して二値化処理ブロック７０に出力する。
【００３３】
二値化処理ブロック７０では、階調データフィルタ処理ブロック６０からの画像データに対して平均値演算回路７１で１ライン毎に平均値ｘ（上にバー付き）が演算され、また標準偏差演算回路７２で１ライン毎に標準偏差ρが演算され、しきい値演算回路７４でしきい値（ｘ＋１．５ρ）が演算される。比較器７５は、このしきい値と１ラインバッファ７３で保持していた１ライン分の画像データを比較し、画像データの二値化を行なう。
【００３４】
二値化処理ブロック７０から二値化された画像データは、二値化データフィルタ処理ブロック８０のノイズ除去処理回路８３と２つの１ラインバッファ８１、８２に入力される。ノイズ除去フィルタ処理回路８３は、入力側の２つの１ラインバッファ８１、８２と直接の画像データから同時に３ライン分の画像データを受け、３×３の各画像ブロック毎に小突起、孤立データがあるかを調べ、あればそのデータを除去する処理を行なう。ノイズ除去処理回路８３の出力は判定回路８７と１ラインバッファ８５に入力される。判定回路８７は、１ラインの全てが０かを判定し、１ライン全てが０の場合はマルチプレクサ８９でオア回路８８の出力を、またそうでない場合は１ラインバッファ８５の出力を選択し、それを１ラインバッファ８６に入力する。１ラインバッファ８５の画像データは、現在の画像データに、またノイズ除去処理回路８３の出力と１ラインバッファ８６の画像データはその前後の画像データに相当するので、１ライン全てが０の場合は、前後のラインの同じ水平位置のデータのオア処理により穴埋めされた画像データが出力される。
【００３５】
二値化データフィルタ処理ブロック８０からの二値化された画像データは、重心位置演算処理ブロック９０に入力され重心位置が各ライン毎に演算される。重心位置演算処理ブロック９０の立上り検出回路９１は、二値化画像データが「０」から「１」に変化するのを検出して、そのときの水平アドレスカウンタ９３の水平アドレス値をラッチ回路９４にラッチする。また、立下り検出回路９２は、二値化画像データが「１」から「０」に変化するのを検出して、そのときの水平アドレスカウンタ９３の水平アドレス値をラッチ回路９５にラッチする。重心位置演算回路９６は、この立上り及び立下り時の水平アドレス値を平均して重心位置を演算し、その値を重心位置演算結果メモリ１００に格納する。なお、水平アドレスカウンタ９３は水平アドレス値を求めるために、Ｖ−ＲＡＭ画像メモリからの読み出し用の水平クロックをカウントしている。また、水平アドレスカウンタ９３のリセットは画像データ１ラインの切り替わり時期に行なわれる。
【００３６】
［高さデータの測定］
次に、このような構成において、被測定物を配線基板に印刷されたクリーム半田に例をとり配線基板ないしクリーム半田の高さデータを求める処理を図５の流れを参照して説明する。
【００３７】
まず、ステップＳ４０でクリーム半田が印刷されたことが確認された後、ステップＳ４１において、ＣＰＵ４４はリニアモータ駆動指令器３１に位置指令信号とスタート信号を発生し、リニアモータ８をクリーム半田が印刷されている高さ測定位置に移動させる。この実際の高さ測定位置にくると、ＣＰＵ４４よりオア回路３５’を介してＣＣＤカメラ同期タイミングパルスを送出するとともに（ステップＳ４２）、ＬＤオン信号を発生してレーザダイオード１を例えば２ｍｓ点灯させる（ステップＳ４３）。
【００３８】
レーザダイオード１から発光されたレーザ光は、コリメートレンズ２で集光されて、光学中心軸に対して平行な平行光束１ａとなり、フォーカスレンズ３によりスポット光となるように絞り込まれる。このレーザスポット光は、投光ミラー４によって入射角に対して４５度の方向に反射され、ラインジェネレータレンズ５に入射する。このレンズ５によりレーザスポット光は、プリズム効果によって一方向（Ｘ方向）に引き伸ばされて、被測定物１１上で幅１４μｍ、長さ１０ｍｍのライン光９となる。このライン光は、視野６．４ｍｍ×４．８ｍｍでノンインターレース式のＣＣＤカメラ６によって撮像される。
【００３９】
ステップＳ４４でＴ1の時間待機した後、ステップＳ４５でＣＣＤカメラ同期タイミングパルスを送り、同期信号タイミング発生器３９を駆動してＣＣＤカメラ６のイメージセンサ３８の画像データを書込タイミング発生器４９の出力に同期してＶーＲＡＭ画像メモリ４０に読み込む（ステップＳ４６）。このようにして、取得された画像データが図６に図示されている。同図において、右側に突出した輝度の高い像がクリーム半田部１１３ａであり、その間の輝度の低い直線部分が配線基板のレジスト面ないしパッド面１１３ｂである。
【００４０】
この画像データはステップＳ４７において各画像処理を受ける。まず、ＣＰＵ４４の切替信号によりマルチプレクサ４１、４５が読み出しモードに切り替わり、水平／垂直アドレス発生器５０からの読み出し信号に従って水平アドレス及び垂直アドレスに同期してＶーＲＡＭ画像メモリ４０から画像データが読み出される。
【００４１】
読み出された画像データは階調データフィルタ処理ブロック６０で階調データフィルタ処理が行なわれる。演算回路６３は、各３×３の画素ブロックの中心の画素を注目画素として、その周りの階調の平坦度Ｆを演算する。この平坦度Ｆは、注目画素周囲の画素間差の絶対値の平均値として求められ、画素列をＡ、Ｂ、Ｃ・・・・、画素行を１、２、３・・・・として、例えば、注目画素をＢ２とすると、
【００４２】
【数１】
0003922608.tif 000002
【００４３】
を算出することにより平坦度Ｆが演算される。演算回路６４は、各３×３の画素ブロックの画素の最大値と階調の最小値の差ΔＢを求め、演算回路６５はＦ／ΔＢを演算する。比較器６６はＦ／ΔＢがしきい値６６’より小さいときには、画像データが平坦でないので、マルチプレクサ６７を切り替える。これにより帯域除去フィルタ回路６８で注目画素に対して
【００４４】
【数２】
0003922608.tif 000003
【００４５】
の帯域除去フィルタ処理のかけられたデータが出力され、一方ΔＢ＝０の時またはＦ／ΔＢがしきい値より大きい時は遅延回路６９からのデータが選択され、帯域除去フィルタ処理されないデータが出力される。
【００４６】
このように階調データのフィルタ処理が行なわれた画像データは、二値化処理ブロック７０で二値化処理される。そのために、演算回路７１、７２は各ラインの階調の平均値ｘ（上にバー付き）と標準偏差ρを計算する。比較器７５は、１ラインバッファ７３の各画素毎にその画素の階調データがそのラインの階調の平均値ｘ＋ρ×１．５より大きい時は現在の画素の値を１に、以下の時は現在の画素の値を０にして二値化する。
【００４７】
この各二値化された画像データは、二値化データフィルタ処理ブロック８０に送られ、ノイズ除去処理回路８３は各３×３画素ブロック毎に小突起データ並びに孤立データをノイズとして除去する。このノイズ除去は、図７に示したようなａ〜ｆのフィルタ処理を行うことに対応している。３×３の中心の画素を注目画素として、図７のパターンが現れた時、その注目画素の値を０にする。ｆ以外の５種類のフィルタは、９０度づつ回転させて実行する。このようにノイズ処理された二値化画像データは、１ラインバッファ８５、８６に送られる。判定回路８７は、１ラインの全ての画素が０の場合には、前後のラインを参照して穴埋めを行なう。例えば、第２ラインの画素が全て０であった場合、その前後のライン（第１と第３ライン）に１の画素がある場合には、その１の画素のあるところを１にする。
【００４８】
このように処理された画像データは重心位置演算処理ブロック９０に送られ、演算回路９６で重心位置（平均値）が演算される。この重心位置は、図１９に示すように、画素列Ａ、Ｂ、Ｃ・・・に対して１、２、３・・・のような連番を付けることにより行なわれる。この例では１、２行目に関してはＩ列、Ｊ列の画素の値が１であり、Ｉ列の番号は９、Ｊ列の番号は１０なので、１、２行目の重心値は９．５となる。また３、４、５行目に関してはＩ列、Ｈ列、Ｇ列の画素が１であり、各行の重心値は各列に付された番号と同じ値の９、８、７となる。以下同様にして各行の重心値を求める。
【００４９】
このようにして縦軸を重心値、横軸をライン番号としてグラフを描くと図８のようになる。この結果がステップＳ４８で高さデータとしてメモリ１００に格納される。
【００５０】
次に、メモリ１００から図８の高さデータを読み出して、微分を行なって平坦部（レジスト面）の高さを求め、この平坦部を基準としたクリーム半田の高さを求める。
【００５１】
図９の（ａ）は図８の高さデータの一次微分、（ｂ）はその一次微分を更に微分した二次微分のグラフである。微分は左側から行っている。従って、図８を左から右に走査した時、上方への突起部がクリーム半田部の立ち上り部、下方への突起部が立ち下がり部である。立ち下がり部の突起レベルは小さいので、立ち上り部のみ使用した。また右方向からの微分も行い、右から走査した時の立ち上り部（左から走査したときの立ち下り部に相当）も使用した。以下に説明する処理により平坦部とクリーム半田の高さがそれぞれ測定される。
【００５２】
まず、図１０のステップＳ５０で高さ補正メモリ（不図示）を設け、これをクリアしておく。続いて、ステップＳ５１で変数ｘを２とし、ステップＳ５２でそのときの高さデータｈxの前のラインに対する高さデータの比ｈ'xを求め、それをｈ'メモリ（不図示）に格納する（ステップＳ５３）。ｈ'xがしきい値１．２５より大きい場合には（ステップＳ５４）、ステップＳ５５でｈx-1を（ｘ−１）をアドレスとして高さ補正メモリに格納する。ステップＳ５６でｘを＋１して以上の処理をｘ＝ｉ＋１になるまで繰り返す（ステップＳ５７）。
【００５３】
一次微分が終了すると、ステップＳ５８でｘ＝３とし、ステップＳ５９で二次微分値ｈ"xを求め、この二次微分値がしきい値１．２５より大きい場合には（ステップＳ６０）、ステップＳ６１でｈx-1を（ｘ−１）をアドレスとして高さ補正メモリに格納する。続いてステップＳ６２でｘを＋１して以上の処理をｘ＝ｉ＋１になるまで繰り返す（ステップＳ６３）。
【００５４】
図１０が左からの微分であるのに対して、図１１は右からの微分を示すもので、ステップＳ７１で変数ｘをｉ−１とし、ステップＳ７２でそのときの高さデータｈxの次のラインに対する高さデータの比ｈ'xを求め、それをｈ'メモリに格納する（ステップＳ７３）。ｈ'xがしきい値１．２５より大きい場合には（ステップＳ７４）、ステップＳ７５でｈx+1を（ｘ＋１）をアドレスとして高さ補正メモリに格納する。ステップＳ７６でｘを−１して以上の処理をｘ＝０になるまで繰り返す（ステップＳ７７）。
【００５５】
一次微分が終了すると、ステップＳ７８でｘ＝ｉ−２とし、ステップＳ７９で二次微分値ｈ"xを求め、この二次微分値がしきい値１．２５より大きい場合には（ステップＳ８０）、ステップＳ８１でｈx+1を（ｘ＋１）をアドレスとして高さ補正メモリに格納する。続いてステップＳ８２でｘを−１して以上の処理をｘ＝０になるまで繰り返す（ステップＳ８３）。
【００５６】
図１２には、図８のクリーム半田部の測定された高さデータとその一次微分並びに二次微分データの一部（図８のライン４５近辺のデータ）が表として図示されている。図１２の１列目が高さデータ、２列目が左からの一次微分、３列目が左からの二次微分、４列目、５列目が右からの一次微分、二次微分、６列目が抽出されたデータである。例えば、２行目の一次微分値ｈ'xは９．５／９．４＝１．０１となる（図１０のステップＳ５２）。二次微分ｈ"xは一次微分の比１．０１／０．９９＝１．０２となる（図１０のステップＳ５９）。図１２の高さデータ１９の行をみると、一次微分は１．８１、二次微分は１．７２でありしきい値１．２５以上である（ステップＳ５４、Ｓ６０）。そこでこの行の前の行の高さデータ１０．５を抽出する（図１２の６列目に例示されている）。
【００５７】
このように微分値が大きくなるところの高さデータは、図１０のステップＳ５５、Ｓ６１あるいは図１１のステップＳ７５、Ｓ８１で高さ補正メモリに格納され、それが図１１のステップＳ８４で平均値ｈAVとして求められる。図８に示す画像データでは、この平均値は９．３３となった。この平均値はクリーム半田が印刷される平坦部（レジスト面）の高さデータに相当するので、ステップＳ８５で高さデータ（ｈx）からこの平坦部の高さデータ（ｈAV）を減算することにより平坦部からのクリーム半田の実際の高さ（平均高さは１０２μｍ）が算出される。これが図１３に図示されている。予め別の計測器で測定したクリーム半田の平均高さも１０２μｍであったので、上記処理によるクリーム半田の高さが正確であることが確認できた。
【００５８】
なお、上記処理では、一次微分と二次微分値を用いているが、一次微分だけでも平坦部の高さデータを抽出することができる。また、左側あるいは右側の一方の微分値だけで高さデータを抽出するようにしてもよい。
【００５９】
[他の実施形態]
上述した処理だけでは、クリーム半田の立上がり部分以外でも、微分値が大きくなり、平坦部の高さデータを抽出してしまう場合が有ること、クリーム半田の初期立上りではなく、立上り途中でも微分値が大きくなり、高さを抽出してしまう場合が有ること、基板にそりがある場合、光切断画像が傾いて撮像され、高さを正しく計算できないことなどの問題が発生する場合がある。そのために以下のような処理でこれらの問題を解決する。
【００６０】
最初の問題点は、高さデータが抽出された時に、その高さデータの前後の平坦度を調べて、平坦であればその高さは採用せず、平坦でなければ採用することにより解決する。また、２番目の問題点は、注目高さを採用する際に、複数個前迄にすでに高さデータが抽出されているかどうかを調べ、採用されていなければ、現在の注目高さデータを新たに採用し、採用されていれば、現在の注目高さデータは放棄するようにする。そのために、図１０のステップＳ５４（Ｓ６０）とステップＳ５６（Ｓ６２）の間に図１４（ａ）、（ｂ）に示した処理を設ける。
【００６１】
図１４（ａ）のステップＳ９０では、ステップＳ５４（Ｓ６０）で一次微分値あるいは二次微分値がしきい値以上で高さデータが平坦部の高さデータとして抽出された場合、その近辺で平坦度Ｆ’
【００６２】
【数３】
0003922608.tif 000004
【００６３】
を計算する（なお、二次微分のときはｈに代わりｈ’を用いる）。続いてステップＳ９１でこの平坦度がしきい値（２）よりも大きいかを判断し、大きい場合には、抽出した注目高さデータを採用し、それ以外は不採用とする。図１２の表のデータで実際に計算してみると、抽出した高さデータは１０．５であるから、数３による平坦度Ｆ’は、Ｆ’＝（｜９．５−１０｜＋｜１０−１９｜＋｜１９−２０｜＋｜２０−９．５｜）／４＝５．２５＞２（しきい値）となる。従って、注目高さデータとして採用され、ステップＳ５５（Ｓ６１）で高さ補正メモリに格納する。
【００６４】
２番目の問題点は、ステップＳ９１とステップＳ５５（Ｓ６１）の間に図１４（ｂ）に示したステップＳ９２の処理を設けることにより解決できる。同ステップでは、例えば５つ前まで、すなわち（ｘ−２）から（Ｘ−６）に高さデータが採用されているかどうかを調べる。採用されてない場合には、注目高さデータとして採用され、ステップＳ５５（Ｓ６１）で高さ補正メモリに格納する。
【００６５】
図１５は、図１４が左から微分したときのに対して右側から微分したときに対応する処理であり、平坦度Ｆ”が
【００６６】
【数４】
0003922608.tif 000005
【００６７】
により計算され、２番目の問題点を解決するために、ステップＳ９６で（ｘ＋２）から（Ｘ＋６）に高さデータが採用されているかを調べているところが図１４と異なる。
【００６８】
３番目の問題点の解決としては、前記微分処理と最初と２番目の問題点の解決手段で抽出採用された高さデータを多重線形回帰によって計算し、近似直線を求めて傾きの補正を行う。このために、図１６に図示したように、図１１のステップＳ８３の次に、高さ補正メモリ内のｈxの数ｎ、すなわち抽出採用された高さデータの数を調べる（ステップＳ１００）。続いて、ステップＳ１０１で高さ補正メモリ内のｈx＝ｙとして、
【００６９】
【数５】
0003922608.tif 000006
【００７０】
の各値を求め、次にステップＳ１０２で
【００７１】
【数６】
0003922608.tif 000007
【００７２】
よりａ0、ａ1を求め、近似式ａ0＋ａ１ｘ＝ｙを求める。
【００７３】
例えば、抽出した注目高さデータが（６２，９）（１５１，１０）（１８４，１０．５）（２３８，１１．５）（３６２，１２）（４４９，１３）とすると、ｎ＝６，Σｘ＝１４４６，Σｙ＝６６，Σｘ＾２（ｘの２乗のΣ）＝４４９７９０，Σｘｙ＝１６９１８から、ａ0＝８．５９２４７４，ａ1＝０．００９９９が算出される。従って、近似式は：８．５９２４７４＋０．００９９９ｘ＝ｙとなる。
【００７４】
次に、ステップＳ１０３からＳ１０６において近似式のｘを1から高さデータの数（ｉ＋１）までのｙの値を求め、ステップＳ１０４でｈxの補正をする。今、高さデータ数を４８０個とすると、前記４８０個の高さデータと４８０個のｙの差を求めれば、これが傾きを補正した４８０個の高さデータとなる。図１７（ａ）、（ｂ）はその演算結果を示している。
【００７５】
図１８はそりのある基板で測定し、傾き補正をしないで０点の補正を行った例であり（図１１ステップＳ８５）、高さデータのグラフは右肩上がりとなっているのが分かる。これに図１６の処理に沿った傾き補正を行うと、図１３と同じような結果が得られる。
【００７６】
［表計算ソフトによるデータ処理］
上述した実施形態では、ＶーＲＡＭ画像メモリ４０の画像データは、図４に示す回路構成で画像処理されたが、ＶーＲＡＭ画像メモリ４０の画像データを表計算ソフトに取り込んで行なうこともできる。ＶーＲＡＭ画像メモリ４０の画像データは、横６４０画素×縦４８０画素のビットマップ画像であるので、これを各画素を２５６階調の階調データに変換した後、６４０列×４８０行のセルの表計算ソフトに取り込む。画素間の分解能は１０μｍであるので、表計算ソフトに読み込んだ場合は前記画素がセルに相当することから、セル間のピッチは１０μｍとなる。ただし、実際の表計算ソフトは最大列数が２５６列という機能上の制約が有るので、２００列×４８０行の階調データを取り込んで処理を行う。
【００７７】
まず、取込んだ階調データは３×３のセル毎に取り出されて、階調の平坦度を調べてフィルタ処理が行なわれる。３×３のセルの中心のセルを注目セルとし、その周りの階調の平坦度を計算する。注目セル周囲のセル間差の絶対値の平均値を求める。列をＡ、Ｂ、Ｃ・・・・、行を１、２、３・・・・として、例えば、注目セルをＢ２として、数１に従い平坦度Ｆを算出する（図４の演算回路６３による演算に対応）。次に３×３のセルの中の階調の最大値と階調の最小値の差ΔＢに対する比を求め（演算回路６５に対応）、Ｆ／ΔＢがしきい値より小さい時（比較器６６に対応）に注目セルに対して、数２の帯域除去フィルタ（フィルタ回路６８に対応）をかける。もしΔＢ＝０の時またはＦ／ΔＢがしきい値より大きい時は何もしない。次に注目セルをＢ３に移し以上の処理を実行し、Ｂ４、Ｂ５・・・・と処理をする。そして次の行に移行してＣ２、Ｃ３・・・のように順次処理を行う。
【００７８】
以上のように階調データのフィルタ処理が終わると、次の二値化処理に移る。各行の階調の平均値と標準偏差を計算する（演算回路７１、７２に対応）。そして各セル毎にそのセルの階調データがその行の階調の平均値＋１．５×標準偏差より大きい時（比較器７５に対応）は現在のセルの値を１に書換え、以下の時は現在のセルの値を消去する。セルＡ１、Ｂ１、Ｃ１・・・に対しては１行目の平均値と標準偏差を用い、セルＡ２、Ｂ２、Ｃ２・・・に対しては２行目の平均値と標準偏差を用いる。各セルは１か空白の状態になる。
【００７９】
このように各セルの値が二値化されたあと、小突起データ並びに孤立データはノイズと考えられるので、ノイズ除去のためにこれらのデータの消去処理を行う。すなわち、図７に示す様なａ〜ｆのフィルタ処理を行う。３×３の中心のセルを注目セルとして、図７のパターンが現れた時、その注目セルの値を消去する。ｆ以外の５種類のフィルタは、９０度づつ回転させて実行する（ノイズ除去処理回路８３に対応）。
【００８０】
次は各行を参照して、全て空白の場合は上下の行の数値１のセルの配列を参照して、穴埋めを行う（判定回路８７に対応）。次に、各行の数値１のセルに対して重心値を計算する。これは、図１９に示すように、列Ａ、Ｂ、Ｃ・・・に対しては、１、２、３・・・と連番を付けるとこの数値が重心の値となる（重心位置演算回路９６に対応）。この例では１、２行目に関してはＩ列、Ｊ列のセルの値が１であり、Ｉ列の番号は９、Ｊ列の番号は１０なので、１、２行目の重心値は９．５となる。また３、４、５行目に関してはＩ列、Ｈ列、Ｇ列のセルが１であり、各行の重心値は各列に付された番号と同じ値の９、８、７となる。以下同様にして各行の重心値を求める。
【００８１】
このように、図４の各処理ブロック６０、７０、８０、９０をソフトウェアで処理することもできる。
【００８２】
また、図１４のステップＳ９０の平坦度の計算は、表計算では、例えばＨ３のセルを注目高さとして抽出した時に、Ｆ’＝（｜Ｈ１−Ｈ２｜＋｜Ｈ２−Ｈ４｜＋｜Ｈ４−Ｈ５｜＋｜Ｈ５−Ｈ１｜）／４として計算する。しきい値をＳとするとＦ’＞Ｓの時に抽出した注目高さデータを採用し、それ以外は不採用とする。実施例ではＳ＝２とした。その他２番目あるいは３番目の問題点を解決するための処理も表計算を用いて同様に行なうことができる。
【００８３】
【発明の効果】
以上説明したように、本発明では、撮像された突出物の像から突出物の高さデータを求め、その高さデータを一次微分と二次微分あるいは一次微分し、その微分値から平坦部の高さデータを求めるようにしているので、突出物が形成される前の平坦部の高さデータを求める必要がなく、平坦部に突出物を形成するごとに突出物の高さを測定しなければならないような場合に、測定のタクトタイムを顕著に向上させることができる。
【００８４】
また、本発明での高さデータ処理では、撮像された画素の階調データに対して平坦化処理がなされたあと二値化されるので、安定した高さデータが得られる。また二値化データに対してフィルタ処理を行なって、その結果空白行が発生した場合、その前後の行の二値化データの配列に応じて空白行にデータの埋め込みが行なわれるので、信頼性のある高さデータが求められる。
【００８５】
また、本発明では、突出部の立ち上がり部以外で微分値が大きくなっても、抽出された高さデータ近辺の平坦度を調べ、所定よりも平坦でなければ抽出された高さデータを平坦部の高さデータとしているので、信頼性のある高さデータが得られる。
【００８６】
また、突出部の立ち上がりの途中で、微分値が大きくなっても、それ以前の複数個の高さデータの中からすでに平坦部の高さデータが採用されているときは、その抽出された高さデータを破棄することにより同様に信頼性のある高さデータが保証される。
【００８７】
更に、被測定物のライン光に沿った方向に被測定物にそりがある場合には、平坦部の高さデータとして採用された複数個の高さデータに基づいて多重線形回帰を用いて平坦部の高さデータの近似式を求め、その近似式から平坦部のライン光に沿った方向の傾き補正を行なっているので、突出物の形成される基板に傾きがあってもそれを補正して正確な高さ測定を行なうことができる。
【図面の簡単な説明】
【図１】本発明に用いられる高さ測定装置の構成を示す斜視図である。
【図２】図１の高さ測定装置の側面図である。
【図３】ライン光を投光して得られる像から画像データを取得する回路構成を示した回路図である。
【図４】取得された画像データを処理する回路構成を示した回路図である。
【図５】クリーム半田部分にライン光を投光した場合に得られる画像の処理の流れを示したフローチャート図である。
【図６】クリーム半田部分にライン光を投光した場合に得られる画像を示した説明図である。
【図７】画像データのフィルタ処理に用いられるフィルタデータを示す説明図である。
【図８】クリーム半田の高さデータを示す線図である。
【図９】図８のクリーム半田の高さデータの一次微分及び二次微分を示す線図である。
【図１０】高さデータを左側から微分して微分値を求める流れを示したフローチャート図である。
【図１１】高さデータを右側から微分して微分値を求める流れを示したフローチャート図である。
【図１２】微分値から配線基板の平坦部の高さデータを求める過程を示した表図である。
【図１３】微分値に基づいて得られた配線基板の平坦部から測定したクリーム半田の高さデータを示した線図である。
【図１４】クリーム半田の立ち上がり部分以外で抽出された信頼性のないデータを除去するための処理を示したフローチャートである。
【図１５】図１４と同様な処理で逆側から微分を行なった場合の処理を示すフローチャートである。
【図１６】基板のそりを補正する流れを示したフローチャートである。
【図１７】基板にそりがあるときの処理データを示す表図である。
【図１８】基板にそりが有る場合の高さデータを示す線図である。
【図１９】画素あるいはセルの情報から重心値を求めるための例を示した説明図である。
【図２０】従来の三次元測定装置の構成を示した斜視図である。
【符号の説明】
１  レーザ光源
５  ラインジェネレータ
６  ＣＣＤカメラ
９  ライン光
【図１】
0003922608.tif 000008
【図２】
0003922608.tif 000009
【図３】
0003922608.tif 000010
【図４】
0003922608.tif 000011
【図５】
0003922608.tif 000012
【図６】
0003922608.tif 000013
【図７】
0003922608.tif 000014
【図８】
0003922608.tif 000015
【図９】
0003922608.tif 000016
【図１０】
0003922608.tif 000017
【図１１】
0003922608.tif 000018
【図１２】
0003922608.tif 000019
【図１３】
0003922608.tif 000020
【図１４】
0003922608.tif 000021
【図１５】
0003922608.tif 000022
【図１６】
0003922608.tif 000023
【図１７】
0003922608.tif 000024
【図１８】
0003922608.tif 000025
【図１９】
0003922608.tif 000026
【図２０】
0003922608.tif 000027