(57)【要約】【課題】より暗い画素から高さ情報を取得することができ、また、周辺に鏡面等があっても発生する２次反射の影響を低減できる検査装置の高さ情報の取得方法、及び検査装置を提供する。【解決手段】検査装置１０に実装された高さ情報の取得方法は、位相が単調増加又は単調減少するように変化するパターンが繰り返し形成された縞パターンが投射された測定画像データを取得し、測定画像データから画素毎の測定位相データを算出し、測定位相データからノイズであるエラー画素を決定して除去し、エラー画素が除去された測定位相データに基づいて、被検査体の高さ情報を取得するステップと、を有する。【選択図】図４
2019124543.tif 000002
【特許請求の範囲】
【請求項１】
位相が単調増加又は単調減少するように変化するパターンが繰り返し形成された縞パターンを有する検査装置の高さ情報の取得方法であって、
前記縞パターンが投射された前記被検査体の画像データである測定画像データを取得するステップと、
前記測定画像データから画素毎の位相である測定位相データを算出するステップと、
前記測定位相データからノイズであるエラー画素を決定して当該エラー画素を除去するステップと、
前記エラー画素が除去された測定位相データに基づいて、前記被検査体の高さ情報を取得するステップと、
を有し、
前記エラー画素を除去するステップは、
前記測定画像データに含まれる画素のいずれか一つを注目画素として選択するステップと、
前記注目画素の位相と、当該注目画素に対して、前記パターンが繰り返し形成される方向に隣接する所定の個数の隣接画素の位相とを比較して、前記縞パターンの前記位相の変化と、前記注目画素の位相と前記隣接画素の位相との変化とが矛盾するときに、前記注目画素及び前記矛盾が生じる隣接画素の少なくとも一方を前記エラー画素として決定するステップと、
を、前記測定画像データに含まれる全ての画素が前記注目画素として選択されるまで繰り返されるように構成されていることを特徴とする検査装置の高さ情報の取得方法。
【請求項２】
前記エラー画素を除去するステップは、
前記注目画素及び前記矛盾が生じる隣接画素のうち、前記測定画像データから画素毎に算出される振幅が小さい方の画素を前記エラー画素として決定するように構成されていることを特徴とする請求項１に記載の検査装置の高さ情報の取得方法。
【請求項３】
前記エラー画素を除去するステップは、
前記注目画素及び前記矛盾が生じる隣接画素のうち、前記測定画像データから画素毎の位相、並びに、前記測定画像データから画素毎に算出される振幅及びオフセットに対して、最小二乗誤差が大きい方の画素を前記エラー画素として決定するように構成されていることを特徴とする請求項１に記載の検査装置の高さ情報の取得方法。
【請求項４】
前記エラー画素を除去するステップは、
前記注目画素の位相と前記隣接画素の位相の差の絶対値が所定の閾値より大きいときは、当該注目画素に対する処理を終了し次の注目画素に対する処理に移行するように構成されていることを特徴とする請求項１〜３のいずれか一項に記載の検査装置の高さ情報の取得方法。
【請求項５】
前記測定画像データの少なくとも輝度が暗い部分に対して平均化フィルタ、ガウシアンフィルタ等のコンボリューションフィルタによる平滑化を行うステップを有し、
前記測定位相データを算出するステップは、前記平滑化が行われた測定画像データから前記測定位相データを算出するように構成されていることを特徴とする請求項１〜４のいずれか一項に記載の検査装置の高さ情報の取得方法。
【請求項６】
前記縞パターンは、長周期の縞パターンと、短周期の縞パターンとから構成され、
前記測定画像データを取得するステップは、前記長周期の縞パターンが投射された前記被検査体の画像データである長周期測定画像データを取得し、前記短周期の縞パターンが投射された前記被検査体の画像データである短周期測定画像データを取得するように構成され、
前記測定位相データを算出するステップは、前記長周期測定画像データから画素毎の位相である長周期測定位相データを算出し、前記短周期測定画像データから画素毎の位相である短周期測定位相データを算出するように構成され、
前記エラー画素を除去するステップは、前記長周期測定位相データ及び前記短周期測定位相データの少なくとも一方からノイズであるエラー画素を決定して除去するように構成され、
前記被検査体の高さ情報を取得するステップは、前記エラー画素が除去された前記長周期測定位相データ及び前記短周期位相データに基づいて、前記被検査体の高さ情報を取得するように構成されていることを特徴とする請求項１〜５のいずれか一項に記載の検査装置の高さ情報の取得方法。
【請求項７】
被検査体に対してパターンを投射する投射ユニットと、
前記パターンが投射された前記被検査体の画像データを取得するカメラユニットと、
前記画像データを記憶する記憶部と、
請求項１〜６のいずれか一項に記載の検査装置の高さ情報の取得方法により前記被検査体の高さ情報を取得する制御ユニットと、を有することを特徴とする検査装置。
【請求項８】
前記投射ユニットは、異なる方向から前記パターンを投射する複数の投射ユニットを有し、
前記制御ユニットは、前記エラー画素が除去されたときは、当該エラー画素の高さ情報は、当該エラー画素が発生した投射ユニットとは異なる投射ユニットによる画像データから算出された高さ情報を用いるように構成されていることを特徴とする請求項７に記載の検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置の高さ情報の取得方法、及びこの高さ情報の取得方法を用いた検査装置に関する。
【背景技術】
【０００２】
近年では、様々な機器に電子回路基板が実装されるようになってきているが、この種の電子回路基板が実装される機器においては、小型化、薄型化等が常に課題になっており、この点から、電子回路基板の実装の高密度化を図ることが要求されている。このような電子回路基板のハンダの塗布状態、電子部品の実装状態等を検査する検査装置においては、高さ情報の測定に対して、その精密性から位相シフト法が用いられることが多い。位相シフト法では、電子回路基板に、位相の開始位置をずらして縞パターンを投射して撮像した３枚以上のパターン画像データの輝度から位相、振幅、オフセットを算出して、電子回路基板の高さ情報を取得するように構成されている。このとき、振幅は検査対象の電子回路基板の輝度に応じた値となり、オフセットは環境光・周辺散乱に応じた値となる。従来の高さ情報の測定方法では、算出された位相が正しい値であることを確認するために、振幅が小さい場合に、光量が弱いことから、対象エリアは影領域か、ノイズの割合の大きい黒い物体があると想定し、その値を高さ情報の算出に用いないことでノイズを除去していた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０７９９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
車のインパネ（計器盤）等の表示装置において、メーターや表示にＬＥＤ等を用いることが多くなっているが、このような表示装置において、ＬＥＤ以外の部分が明るいと表示が非常に見にくくなるため、ＬＥＤが取り付けられる基板は黒乃至マット状の光を反射させにくい素材（暗い基板）が使われるようになっている。
【０００５】
暗い基板の高さ情報を測定する場合、縞パターンを投射して取得したパターン画像データから高さ情報を算出するためには、ノイズを除去するための振幅の閾値を低く設定する必要がある。それに対して、ハンダや電子部品等の影領域では、振幅の閾値を高く設定しなければ、影部分の本来光の当たっていない場所の誤った高さ情報が算出されてしまう。ハンダや電子部品等の周辺の高さ情報を基準としてハンダや電子部品等の高さ情報を測定するため、測定結果を不安定にする影部分の高さ情報を算出しないことは非常に重要な課題である。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、縞パターンを投射して取得したパターン画像データに暗い画素（輝度の小さい画素）が含まれていたとしても、当該画素の輝度が信頼できるか否かを判定できるので、より暗い画素から高さ情報を取得することができ、また、周辺に鏡面等があっても発生する２次反射の影響を低減できるので、取得する高さ情報の精度を向上させることができる高さ情報の取得方法、及びこの高さ情報の取得方法を用いた検査装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明に係る検査装置の高さ情報の取得方法は、位相が単調増加又は単調減少するように変化するパターンが繰り返し形成された縞パターンを有する検査装置の高さ情報の取得方法であって、前記縞パターンが投射された前記被検査体の画像データである測定画像データを取得するステップと、前記測定画像データから画素毎の位相である測定位相データを算出するステップと、前記測定位相データからノイズであるエラー画素を決定して当該エラー画素を除去するステップと、前記エラー画素が除去された測定位相データに基づいて、前記被検査体の高さ情報を取得するステップと、を有し、前記エラー画素を除去するステップは、前記測定画像データに含まれる画素のいずれか一つを注目画素として選択するステップと、前記注目画素の位相と、当該注目画素に対して、前記パターンが繰り返し形成される方向に隣接する所定の個数の隣接画素の位相とを比較して、前記縞パターンの前記位相の変化と、前記注目画素の位相と前記隣接画素の位相との変化とが矛盾するときに、前記注目画素及び前記矛盾が生じる隣接画素の少なくとも一方を前記エラー画素として決定するステップと、を、前記測定画像データに含まれる全ての画素が前記注目画素として選択されるまで繰り返されるように構成されている。
【０００８】
また、本発明に係る検査装置の高さ情報の取得方法において、前記エラー画素を除去するステップは、前記注目画素及び前記矛盾が生じる隣接画素のうち、前記測定画像データから画素毎に算出される振幅が小さい方の画素を前記エラー画素として決定するように構成されていることが好ましい。
【０００９】
また、本発明に係る検査装置の高さ情報の取得方法において、前記エラー画素を除去するステップは、前記注目画素及び前記矛盾が生じる隣接画素のうち、前記測定画像データから画素毎の位相、並びに、前記測定画像データから画素毎に算出される振幅及びオフセットに対して、最小二乗誤差が大きい方の画素を前記エラー画素として決定するように構成されていることが好ましい。
【００１０】
また、本発明に係る検査装置の高さ情報の取得方法において、前記エラー画素を除去するステップは、前記注目画素の位相と前記隣接画素の位相の差の絶対値が所定の閾値より大きいときは、当該注目画素に対する処理を終了し次の注目画素に対する処理に移行するように構成されていることが好ましい。
【００１１】
また、本発明に係る検査装置の高さ情報の取得方法は、前記測定画像データの少なくとも輝度が暗い部分に対して平均化フィルタ、ガウシアンフィルタ又はコンボリューションフィルタによる平滑化を行うステップを有し、前記測定位相データを算出するステップは、前記平滑化が行われた測定画像データから前記測定位相データを算出するように構成されていることが好ましい。
【００１２】
また、本発明に係る検査装置の高さ情報の取得方法において、前記縞パターンは、長周期の縞パターンと、短周期の縞パターンとから構成され、前記測定画像データを取得するステップは、前記長周期の縞パターンが投射された前記被検査体の画像データである長周期測定画像データを取得し、前記短周期の縞パターンが投射された前記被検査体の画像データである短周期測定画像データを取得するように構成され、前記測定位相データを算出するステップは、前記長周期測定画像データから画素毎の位相である長周期測定位相データを算出し、前記短周期測定画像データから画素毎の位相である短周期測定位相データを算出するように構成され、前記エラー画素を除去するステップは、前記長周期測定位相データ及び前記短周期測定位相データの少なくとも一方からノイズであるエラー画素を決定して除去するように構成され、前記被検査体の高さ情報を取得するステップは、前記エラー画素が除去された前記長周期測定位相データ及び前記短周期位相データに基づいて、前記被検査体の高さ情報を取得するように構成されていることが好ましい。
【００１３】
また、本発明に係る検査装置は、被検査体に対してパターンを投射する投射ユニットと、前記パターンが投射された前記被検査体の画像データを取得するカメラユニットと、前記画像データを記憶する記憶部と、上述した検査装置の高さ情報の取得方法により前記被検査体の高さ情報を取得する制御ユニットと、を有する。
【００１４】
また、本発明に係る検査装置は、前記投射ユニットは、異なる方向から前記パターンを投射する複数の投射ユニットを有し、前記制御ユニットは、前記エラー画素が除去されたときは、当該エラー画素の高さ情報は、当該エラー画素が発生した投射ユニットとは異なる投射ユニットによる画像データから算出された高さ情報を用いるように構成されていることが好ましい。
【発明の効果】
【００１５】
本発明によれば、縞パターンを投射して取得したパターン画像データに暗い画素（輝度の小さい画素）が含まれていたとしても、当該画素の輝度が信頼できるか否かを判定できるので、より暗い画素から高さ情報を取得することができる。また、周辺に鏡面等があっても発生する２次反射の影響を低減できるので、取得する高さ情報の精度を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】検査装置の構成を説明するための説明図である。
【図２】基準平面の位相と測定した位相との関係を説明する説明図である。
【図３】長周期の縞パターンと短周期の縞パターンとの関係を示す説明図である。
【図４】高さ情報の取得方法の流れを示すフローチャートである。
【図５】ノイズ除去処理の前段の流れを示すフローチャートである。
【図６】ノイズ除去処理の後段の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の好ましい実施形態について図面を参照して説明する。まず、図１を用いて本実施形態に係る検査装置１０の構成について説明する。この検査装置１０は、被検査体１２を撮像して得られる被検査体１２の画像データ（２次元画像データ又はパターン画像データ）を使用して被検査体１２を検査する装置である。被検査体１２は例えば、ハンダが塗布されている電子回路基板である。検査装置１０は、ハンダの塗布状態の良否を被検査体１２の画像データに基づいて判定する。
【００１８】
検査装置１０は、被検査体１２を保持するための検査テーブル１４と、被検査体１２を照明し撮像する撮像ユニット２０と、検査テーブル１４に対し撮像ユニット２０を相対移動させるＸＹステージ１６と、撮像ユニット２０及びＸＹステージ１６の作動を制御し、被検査体１２の検査を実行するための制御ユニット３０と、を含んで構成される。なお説明の便宜上、図１に示すように、検査テーブル１４の被検査体配置面をＸＹ平面とし、その配置面に垂直な方向（すなわち撮像ユニット２０を構成するカメラユニット２１による撮像方向（カメラユニット２１の光学系の光軸方向））をＺ方向とする。
【００１９】
撮像ユニット２０は、ＸＹステージ１６の移動テーブル（図示せず）に取り付けられており、ＸＹステージ１６によりＸ方向及びＹ方向のそれぞれに移動可能である。ＸＹステージ１６は例えばいわゆるＨ型のＸＹステージである。よってＸＹステージ１６は、Ｙ方向に延びるＹ方向ガイドに沿って移動テーブルをＹ方向に移動させるＹ駆動部と、Ｙ方向ガイドをその両端で支持しかつ移動テーブルとＹ方向ガイドとをＸ方向に移動可能に構成されている２本のＸ方向ガイド及びＸ駆動部と、を備える。なおＸＹステージ１６は、撮像ユニット２０をＺ方向に移動させるＺ移動機構をさらに備えてもよいし、撮像ユニット２０を回転させる回転機構をさらに備えてもよい。検査装置１０は、検査テーブル１４を移動可能とするＸＹステージをさらに備えてもよく、この場合、撮像ユニット２０を移動させるＸＹステージ１６は省略されてもよい。また、Ｘ駆動部及びＹ駆動部には、リニアモータやボールねじを用いることができる。
【００２０】
撮像ユニット２０は、被検査体１２の検査面（基板面）に対して垂直方向（Ｚ軸方向）から撮像するカメラユニット２１と、照明ユニット２２と、投射ユニット２３と、を含んで構成される。本実施形態に係る検査装置１０においては、カメラユニット２１、照明ユニット２２、及び投射ユニット２３は一体の撮像ユニット２０として構成されていてもよい。この一体の撮像ユニット２０において、カメラユニット２１、照明ユニット２２、及び投射ユニット２３の相対位置は固定されていてもよいし、各ユニットが相対移動可能に構成されていてもよい。また、カメラユニット２１、照明ユニット２２、及び投射ユニット２３は別体とされ、別々に移動可能に構成されていてもよい。
【００２１】
カメラユニット２１は、対象物の２次元画像を生成する撮像素子と、その撮像素子に画像を結像させるための光学系（例えばレンズ）とを含む。このカメラユニット２１は例えばＣＣＤカメラである。カメラユニット２１の最大視野は、検査テーブル１４の被検査体載置区域よりも小さくてもよい。この場合、カメラユニット２１は、複数の部分画像に分割して被検査体１２の全体を撮像する。制御ユニット３０は、カメラユニット２１が部分画像を撮像するたびに次の撮像位置へとカメラユニット２１が移動されるようＸＹステージ１６を制御する。制御ユニット３０は、部分画像を合成して被検査体１２の全体画像を生成する。
【００２２】
なお、カメラユニット２１は、２次元の撮像素子に代えて、１次元画像を生成する撮像素子を備えてもよい。この場合、カメラユニット２１により被検査体１２を走査することにより、被検査体１２の全体画像を取得することができる。
【００２３】
照明ユニット２２は、カメラユニット２１による撮像のための照明光を被検査体１２の表面に投射するよう構成されている。照明ユニット２２は、カメラユニット２１の撮像素子により検出可能である波長域から選択された波長または波長域の光を発する１つまたは複数の光源を備える。照明光は可視光には限られず、紫外光やＸ線等を用いてもよい。光源が複数設けられている場合には、各光源は異なる波長の光（例えば、赤色、青色、及び緑色）を異なる投光角度で被検査体１２の表面に投光するよう構成される。
【００２４】
本実施形態に係る検査装置１０において、照明ユニット２２は、被検査体１２の検査面に対し斜め方向から照明光を投射する側方照明源であって、本実施形態では、上位光源２２ａ、中位光源２２ｂ及び下位光源２２ｃを備えている。なお、本実施形態に係る検査装置１０においては、側方照明源２２ａ、２２ｂ、２２ｃはそれぞれリング照明源であり、カメラユニット２１の光軸を包囲し、被検査体１２の検査面に対し斜めに照明光を投射するように構成されている。これらの側方照明源２２ａ，２２ｂ，２２ｃの各々は、複数の光源が円環状に配置されて構成されていてもよい。また、側方照明源である上位光源２２ａ、中位光源２２ｂ及び下位光源２２ｃは、それぞれ、検査面に対して異なる角度で照明光を投射するように構成されている。
【００２５】
投射ユニット２３は、被検査体１２の検査面にパターンを投射する。パターンが投射された被検査体１２は、カメラユニット２１により撮像される。検査装置１０は、撮像された被検査体１２の画像データ（この画像データを「パターン画像データ」と呼ぶ）に基づいて被検査体の検査面の高さマップを作成する。制御ユニット３０は、投射パターンに対するパターン画像の局所的な不一致を検出し、その局所的な不一致に基づいてその部位の高さ情報を取得する。つまり、投射パターンに対する撮像パターンの変化が、検査面上の高さの変化に対応する。
【００２６】
投射パターンは、明線と暗線とが交互に周期的に繰り返される１次元の縞パターンであることが好ましい。投射ユニット２３は、被検査体１２の検査面に対し斜め方向から縞パターンを投射するよう配置されている。被検査体１２の検査面における高さの非連続は、縞パターン画像においてパターンのずれとして表れる。よって、パターンのずれ量から高さ差を求めることができる。例えば、サインカーブに従って明るさが変化する縞パターンを用いるＰＭＰ（Ｐｈａｓｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｆｉｌｏｍｅｔｒｙ）法により制御ユニット３０は高さマップを作成する。ＰＭＰ法においては縞パターンのずれ量がサインカーブの位相差に相当する。
【００２７】
投射ユニット２３は、パターン形成装置と、パターン形成装置を照明するための光源装置と、パターンを被検査体１２の検査面に投射するための光学系と、を含んで構成される。パターン形成装置は例えば、液晶ディスプレイ等のように所望のパターンを動的に生成しうる可変パターニング装置であってもよいし、ガラスプレート等の基板上にパターンが固定的に形成されている固定パターニング装置であってもよい。パターン形成装置が固定パターニング装置である場合には、固定パターニング装置を移動させる移動機構を設けるか、あるいはパターン投射用の光学系に調整機構を設けることにより、パターンの投射位置を可変とすることが好ましい。また、投射ユニット２３は、異なるパターンをもつ複数の固定パターニング装置を切替可能に構成されていてもよい。
【００２８】
投射ユニット２３は、カメラユニット２１の周囲に複数設けられていてもよい。複数の投射ユニット２３は、それぞれ異なる投射方向から被検査体１２にパターンを投射するよう配置されている。このようにすれば、検査面における高さ差によって影となりパターンが投射されない領域を小さくすることができる。
【００２９】
図１に示す制御ユニット３０は、本装置全体を統括的に制御するもので、ハードウエアとしては、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現され、ソフトウエアとしてはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００３０】
図１には、制御ユニット３０の構成の一例が示されている。制御ユニット３０は、検査制御部３１と記憶部であるメモリ３５とを含んで構成される。検査制御部３１は、高さ測定部３２と検査データ処理部３３と検査部３４とを含んで構成される。また、検査装置１０は、ユーザまたは他の装置からの入力を受け付けるための入力部３６と、検査に関連する情報を出力するための出力部３７とを備えており、入力部３６及び出力部３７はそれぞれ制御ユニット３０に接続されている。入力部３６は例えば、ユーザからの入力を受け付けるためのマウスやキーボード等の入力手段や、他の装置との通信をするための通信手段を含む。出力部３７は、ディスプレイやプリンタ等の公知の出力手段を含む。
【００３１】
検査制御部３１は、入力部３６からの入力及びメモリ３５に記憶されている検査関連情報に基づいて、検査のための各種制御処理を実行するよう構成されている。検査関連情報には、被検査体１２の２次元画像データ、被検査体１２の高さマップ（パターン画像データから算出される）、及び基板検査データが含まれる。検査に先立って、検査データ処理部３３は、すべての検査項目に合格することが保証されている被検査体１２の２次元画像データ及び高さマップを使用して基板検査データを作成する。検査部３４は、作成済みの基板検査データと、検査されるべき被検査体１２の２次元画像データ及び高さマップとに基づいて検査を実行する。
【００３２】
基板検査データは基板の品種ごとに作成される検査データである。基板検査データはいわば、その基板に塗布されたハンダごとの検査データの集合体である。各ハンダの検査データは、そのハンダに必要な検査項目、各検査項目についての画像上の検査区域である検査ウインドウ、及び各検査項目について良否判定の基準となる検査基準を含む。検査ウインドウは各検査項目について１つまたは複数設定される。例えばハンダの塗布状態の良否を判定する検査項目においては通常、その部品のハンダ塗布領域の数と同数の検査ウインドウがハンダ塗布領域の配置に対応する配置で設定される。また、被検査体画像に所定の画像処理をした画像を使用する検査項目については、その画像処理の内容も検査データに含まれる。
【００３３】
検査データ処理部３３は、基板検査データ作成処理として、その基板に合わせて検査データの各項目を設定する。例えば検査データ処理部３３は、その基板のハンダレイアウトに適合するように各検査ウインドウの位置及び大きさを各検査項目について自動的に設定する。検査データ処理部３３は、検査データのうち一部の項目についてユーザの入力を受け付けるようにしてもよい。例えば、検査データ処理部３３は、ユーザによる検査基準のチューニングを受け入れるようにしてもよい。検査基準は高さ情報を用いて設定されてもよい。
【００３４】
検査制御部３１は、基板検査データ作成の前処理として被検査体１２の撮像処理を実行する。この被検査体１２はすべての検査項目に合格しているものが用いられる。撮像処理は上述のように、照明ユニット２２により被検査体１２を照明しつつ撮像ユニット２０と検査テーブル１４との相対移動を制御し、被検査体１２の部分画像を順次撮像することにより行われる。被検査体１２の全体がカバーされるように複数の部分画像が撮像される。検査制御部３１は、これら複数の部分画像を合成し、被検査体１２の検査面全体を含む基板全面画像データ（２次元画像データ）を生成する。検査制御部３１は、メモリ３５に基板全面画像データを記憶する。
【００３５】
また、検査制御部３１は、高さマップ作成のための前処理として、投射ユニット２３により被検査体１２にパターンを投射しつつ撮像ユニット２０と検査テーブル１４との相対移動を制御し、被検査体１２のパターン画像を分割して順次撮像する。投射されるパターンは好ましくは、ＰＭＰ法に基づきサインカーブに従って明るさが変化する縞パターンである。検査制御部３１は、撮像した分割画像を合成し、被検査体１２の検査面全体のパターン画像データを生成する（以下、被検査体１２に対して縞パターンを投射して撮像したパターン画像データを「撮像パターン画像データ」と呼ぶ）。検査制御部３１は、メモリ３５に撮像パターン画像データを記憶する。なお、全体ではなく検査面の一部について撮像パターン画像データを生成するようにしてもよい。
【００３６】
高さ測定部３２は、撮像パターン画像データにおけるパターンの像に基づいて被検査体１２の検査面全体の高さマップを作成する。高さ測定部３２はまず、撮像パターン画像データと基準パターン画像データとの局所的な位相差を画像データ全体について求めることにより、被検査体１２の検査面の位相差マップを求める。基準パターン画像データとは、投射ユニット２３により基準面にパターンが投射された画像データ（つまり投射ユニット２３に内蔵されているパターン形成装置が生成したパターンが基準面に投射された画像データ）である。高さ測定部３２は、高さ測定の基準となる基準面と位相差マップとに基づいて被検査体１２の高さマップを作成する。基準面は例えば、検査される電子回路基板の基板表面である。基準面は必ずしも平面ではなくてもよく、基板の反り等の変形が反映された曲面であってもよい。
【００３７】
高さ測定部３２は、具体的には、撮像パターン画像データの各画素と、当該画素に対応する基準パターン画像データの画素とで縞パターンの位相差を求める。高さ測定部３２は、位相差を高さ情報に換算する。検査面上での位置により投射ユニット２３からの距離が異なるために、基準パターンの縞幅が一定であっても、検査面のパターン投射領域の一端から他端へと縞幅が変化してしまうからである。高さ測定部３２は、換算された高さ情報と基準面とに基づいて基準面からの高さ情報を取得し、被検査体１２の高さマップを作成する。
【００３８】
検査制御部３１は、被検査体１２の高さマップが有する高さ情報を被検査体１２の２次元画像の各画素に対応付けることにより、高さ分布を有する被検査体画像を作成してもよい。検査制御部３１は、高さ分布付き被検査体画像データに基づいて被検査体１２の３次元モデリング表示を行うようにしてもよい。また、検査制御部３１は、２次元の被検査体画像データに高さ分布を重ね合わせて出力部３７に表示してもよい。例えば、被検査体画像データを高さ分布により色分け表示するようにしてもよい。
【００３９】
以下に、このような検査装置１０において、投射ユニット２３によりパターンを投射して高さ情報を取得する方法について説明する。
【００４０】
まず、縞パターンを用いたＰＭＰ法による高さ情報の取得方法について説明する。縞パターン投射領域の１つの計測点（画素）に着目すると、空間的に位相をずらしながら縞パターンを投射したときに（言い換えれば、縞の反復する方向に縞パターンを走査したときに）、その計測点（画素）の明るさは周期的に変動する。色や反射率等の計測点（画素）の表面特性に応じて計測点（画素）毎に平均の明るさは異なるものの、どの計測点（画素）においても縞パターンに対応する周期的な明るさ変動が生じる。よって、周期的な明るさ変動から位相を算出し、初期位相からの位相差が高さ情報を与える。
【００４１】
このような縞パターンによる特性を用いて、ＰＭＰ法による高さ情報の取得方法を応用し、周期の異なる少なくとも２種のパターンを使用して高さ情報を取得する。長周期（つまり太い縞）の第１パターンにより大まかな高さ情報（ラフ高さ）を取得し、短周期（細い縞）の第２パターンで精密な高さ情報を取得する。上述したようにＰＭＰ法は位相に基づき高さ情報を取得するので、高さギャップ（高さ差）が大きく縞が１周期以上ずれてしまうと高さ情報を一意に特定することができない。第１パターンを併用して高さ情報を取得しておくことにより、第２パターンを投射したときに縞が１周期以上ずれている場合にも高さ情報を一意に特定することが可能となる。
【００４２】
ところが、このように複数の異なるパターンでそれぞれ高さ情報を取得し、それらの結果を総合して高さマップを求める場合には、一般にパターンごとに個別的に投射し撮像することになると考えられる。ＰＭＰ法では原理的に１種の縞パターンについて位相をシフトさせて少なくとも３回、典型的には４回の撮像が必要とされている。縞パターンが正弦波であることに対応して各計測点（画素）の明るさ変動も正弦波となる。縞のピッチは既知であるから、輝度（明るさ）の平均値、振幅、及び初期位相が明らかとなれば明るさ変動を表す正弦波が特定される。
【００４３】
縞パターンの位相の開始位置をずらして撮像された少なくとも３枚の撮像画像データから計測点（画素）の輝度（明るさ）の測定値を得ることにより、輝度（明るさ）の平均値、振幅、及び初期位相の３つの変数を決定することができる。ここで、１つの縞パターンを、位相の開始位置を９０度（π／２ラジアン）ずつずらして４回撮像したときのある画素の輝度をそれぞれＩ０、Ｉ１、Ｉ２、Ｉ３とすると、縞パターンが正弦波の場合の輝度Ｉｎは、次式（１）で表される。なお、この式（１）において、Ａは被検査体１２の明るさに依存した振幅を示し、Ｂはカメラユニット２１や環境輝度に依存した明るさのオフセットを示し、φは求めたい位相を示し、π／２は位相のシフト量（ずらし量）を示す。なお、ｎ＝０，１，２，３である。但し、一般的にはセンサノイズ等の要因で誤差が含まれるので、位相φ、振幅Ａ及びオフセットＢを算出する際には、最小二乗法が求められることが多い。また、最小二乗法で得られる誤差をＥとする。
【００４４】
Ｉｎ  ＝  Ａ×ｓｉｎ（φ＋ｎ×π／２）＋Ｂ            （１）
【００４５】
高さ情報の算出は、３枚以上の撮像画像データから、各画素（ピクセル）の位相φ、振幅Ａ及びオフセットＢを求めることである。例えば、１つの縞パターンを、位相の開始位置を９０度（π／２ラジアン）ずつずらして４回撮像したときの、各画素にあたる計測点の位相φは次式（２）として表されることが知られている。
【００４６】
ｔａｎ（φ）  ＝  （Ｉ３−Ｉ１）／（Ｉ２−Ｉ０）    （２）
【００４７】
縞パターンのピッチ（１周期の長さ）をＰとし、初期位相を０とすると縞パターンのずれ量はＰ×（φ／２π）で求められる。パターンの投射角度を用いてパターンずれ量からその位置の高さ情報を取得することができる。
【００４８】
図２において、（ａ）に示すように、基準平面Ｓに対して投射ユニット２３により縞パターンを投射してカメラユニット２１で撮像した撮像画像データから得られる位相を（ｃ）に示し、（ｂ）に示すように、この基準平面Ｓ上に物体Ｏを載置した状態で同じ縞パターンを投射して撮像した撮像画像データから得られる位相を（ｄ）に示すと、物体Ｏの高さ情報はこれらの位相のずれ量（位相差＝測定した位相−基準平面の位相）から算出することができる。この位相差はカメラユニット２１で撮像した画像の画素ごとに算出することができ、画素ごとに求められた位相差に係数を乗算することで、その画素に対応した位置の高さ情報が算出される。この係数は、例えば、簡易的にはｔａｎ（投射角度）×縞ピッチ／２πで求められる。
【００４９】
ここで、図３に示すように、長周期の縞パターンＰＴｗ及び短周期の縞パターンＰＴｆは、その明るさが正弦波状であって、且つ、単調に変化する（単調増加又は単調減少する）パターンが繰り返し形成されている。なお、図３に示す例は、１つの周期（ピッチ）において、位相が０から２π（ラジアン）まで変化するときに、輝度が最も暗い状態（例えば輝度Ｉ＝０）から最も明るい状態（例えば輝度Ｉ＝２５５）に単調増加する場合を示している（パターンにおける位相と輝度の関係は逆、すなわち単調減少でもよい）。また、短周期の縞パターンＰＴｆのピッチ（１周期の長さ）をＰｆとすると、長周期の縞パターンＰＴｗのピッチ（１周期の長さ）Ｐｗは、所定の個数分の短周期の縞パターンＰＴｆのピッチＰｆと一致するように構成されている。具体的には、図３の場合は、短周期の縞パターンＰＴｆ（図３において、０〜３の番号を付加したパターン）のピッチＰｆの４つ分と、長周期の縞パターンＰＴｗのピッチＰｗとが一致する。ここで、長周期の縞パターンＰＴｗの１周期に含まれる短周期の縞パターンＰｓの周期数をＭとする（図３では、Ｍ＝４である）。
【００５０】
図２を用いて説明したように、長周期の縞パターンＰＴｗを用いて基準平面Ｓを撮像し、また、長周期の縞パターンＰＴｗを用いてその基準平面Ｓに載置された物体Ｏ（被検査体１２に相当）を撮像した場合、式（２）に基づいて得られた基準平面Ｓの位相φｗ０と物体Ｏを載置した状態で取得された位相φｗとの位相差Δφｗは、次式（３）で求められる。
【００５１】
Δφｗ  ＝  φｗ  −  φｗ０                        （３）
【００５２】
また、短周期の縞パターンＰＴｆを用いて、位相の開始位置をずらして基準平面Ｓを少なくとも３回撮像し、短周期の縞パターンＰＴｆを用いて、位相の開始位置をずらしてその基準平面Ｓに載置された物体Ｏを少なくとも３枚撮像した場合、式（２）に基づいて得られた基準平面Ｓから取得された位相φｆ０と物体を載置した状態で取得された位相φｆとの位相差Δφｆは、次式（４）で求められる。
【００５３】
Δφｆ  ＝  φｆ  −  φｆ０                        （４）
【００５４】
以上より、基準平面及びこの基準平面に物体Ｏ（被検査体１２）を載置して長周期の縞パターンＰＴｗを位相の開始位置をずらして投射して撮像された少なくとも３枚の画像データから得られた位相φｗ０，φｗ（９０°ずつずらして４枚撮像したときは式（２）により算出される）から、式（３）により算出された位相差Δφｗと、基準平面及びこの基準平面に被検査体１２を載置して短周期の縞パターンＰＴｆを位相の開始位置をずらして投射して撮像された少なくとも３枚の画像データから得られた位相φｆ０，φｆ（９０°ずつずらして４枚撮像したときは式（２）により算出される）から、式（４）により算出された位相差Δφｆと、長周期の縞パターンＰＴｗの１周期に対する短周期の縞パターンＰＴｆの周期数Ｍと、に基づいて、詳細な高さ情報Ｈを、次式（５）で求めることができる。但し、Ｒｏｕｎｄ（）は、小数点以下を四捨五入する関数である。
【００５５】
Ｈ  ＝  Ｒｏｕｎｄ（（Ｍ×Δφｗ−Δφｆ）／２π）×２π＋Δφｆ    （５）
【００５６】
それでは、図４及び図５を用いて、具体的な高さ情報の取得方法について説明する。なお、投射ユニット２３で投射するパターンは、長周期の縞パターンＰＴｗ及び短周期の縞パターンＰＴｆである。また、以降の説明では、１つの視野領域に対する測定処理について説明するが、被検査体１２が複数の視野領域に跨がる場合は、それぞれの視野領域に対して以下の処理が実行される。
【００５７】
まず、測定前の準備（前準備）を行う。例えば、入力部３６から前準備の処理の実行命令が入力されると、制御ユニット３０は、図４に示すように、投射ユニット２３により長周期の縞パターンＰＴｗを基準平面に投射し、基準パターン画像データ（「長周期基準画像データ」と呼ぶ）をカメラユニット２１で撮像して取得する（ステップＳ１００）。上述したように、１つの視野領域に対して、長周期の縞パターンＰＴｗの位相の開始位置をずらして、少なくとも３枚の画像データ（本実施形態の場合は９０°ずつずらした４枚の画像データ）を取得する。また、制御ユニット３０は、ステップＳ１００で取得された３枚又は４枚の長周期基準画像データを用いて、画素毎の輝度から当該画素の位相φｗ０を算出し（この算出された位相φｗ０を「長周期基準位相データ」と呼ぶ）、メモリ３５に記憶する（ステップＳ１１０）。位相の開始位置を９０°ずつずらした４枚の画像データを取得したときは、上述した式（２）により位相φｗ０を算出することができる。
【００５８】
次に、制御ユニット３０は、投射ユニット２３により短周期の縞パターンＰＴｆを基準平面に投射し、その基準パターン画像データ（「短周期基準画像データ」と呼ぶ）をカメラユニット２１で撮像して取得する（ステップＳ１２０）。この短周期基準画像データも、１つの視野領域に対して、短周期の縞パターンＰＴｆの位相の開始位置をずらして、少なくとも３枚の画像データ（本実施形態の場合は９０°ずつずらした４枚の画像データ）を取得する。また、制御ユニット３０は、ステップＳ１２０で取得された３枚又は４枚の短周期基準画像データを用いて、すべての画素に対して、画素毎の輝度から当該画素の位相φｆ０を算出し（この算出された位相φｆ０を「短周期基準位相データ」と呼ぶ）、メモリ３５に記憶し（ステップＳ１３０）、この前準備の処理を終了する。位相の開始位置を９０°ずつずらした４枚の画像データを取得したときは、上述した式（２）により位相φｆ０を算出することができる。なお、基準平面としては、部品の搭載されていない基板を検査テーブル１４にセットしてもよいし、基準平面となる専用の部材を検査テーブル１４にセットしてもよい。
【００５９】
次に、検査テーブル１４に被検査体１２を載置して検査（高さ情報の取得）を行う。例えば、入力部３６から検査の処理の実行命令が入力されると、制御ユニット３０は、投射ユニット２３により長周期の縞パターンＰＴｗを被検査体１２に投射してカメラユニット２１でその撮像パターン画像データ（「長周期測定画像データ」と呼ぶ）を取得し、メモリ３５に記憶する（ステップＳ２００）。なお、このステップＳ２００では、上述したように、１つの視野領域に対して長周期の縞パターンＰＴｗの位相の開始位置をずらした少なくとも３枚の画像データを取得する（本実施形態の場合は９０°ずつずらした４枚の画像データを取得する）。
【００６０】
制御ユニット３０は、メモリ３５から長周期測定画像データを読み出し、この長周期測定画像データから画素毎に位相φｗの算出を行う（ステップＳ２１０）。この位相φｗの算出は、長周期の縞パターンＰＴｗの位相の開始位置をずらして撮像された少なくとも３枚の画像データの各画素の輝度を用いて算出される。位相の開始位置を９０°ずつずらした４枚の画像データを取得したときは、上述した式（２）により位相φｗを算出することができる。算出された位相φｗ（この算出された位相φｗを「長周期測定位相データ」と呼ぶ）は、画素毎にメモリ３５に記憶される。
【００６１】
制御ユニット３０は、投射ユニット２３により短周期の縞パターンＰＴｆを被検査体１２に投射してカメラユニット２１でその撮像パターン画像データ（「短周期測定画像データ」と呼ぶ）を取得し、メモリ３５に記憶する（ステップＳ２２０）。なお、このステップＳ２２０では、上述したように、１つの視野領域に対して短周期の縞パターンＰＴｆの位相の開始位置をずらした少なくとも３枚の画像データを取得する（本実施形態の場合は９０°ずつずらした４枚の画像データを取得する）。
【００６２】
制御ユニット３０は、メモリ３５から短周期測定画像データを読み出し、この短周期測定画像データから画素毎に位相φｆ及び振幅Ａｆの算出を行う（ステップＳ２３０）。この位相φｆ及び振幅Ａｆの算出は、短周期の縞パターンＰＴｆの位相の開始位置をずらして撮像された少なくとも３枚の画像データの各画素の輝度を用いて算出される。位相の開始位置を９０°ずつずらした４枚の画像データを取得したときは、例えば、上述した式（２）により位相φｆを算出することができる。算出された位相φｆ（この算出された位相φｆを「短周期測定位相データ」と呼ぶ）及び振幅Ａｆ（この算出された振幅Ａｆを「短周期測定振幅データ」と呼ぶ）は、画素毎にメモリ３５に記憶される。
【００６３】
上述したように、被検査体１２が暗い基板である場合に高さ情報を取得するには、縞パターンを投射して取得した撮像パターン画像データから高さ情報を算出するに際し、ノイズを除去するための振幅の閾値を低く設定する必要がある。それに対して、ハンダや電子部品等の影領域では、振幅の閾値を高く設定しなければ、影部分の本来光の当たっていない場所の誤った高さ情報が算出されてしまう。また、鏡面などによる二次反射による位相ずれでは、観測されるべき位相φ０と鏡面反射による位相φ１の合成により、大きく位相がずれる場合がある。そこで、制御ユニット３０は、特にハンダや電子部品等の影部分や鏡面反射の影響を受けやすい、短周期の縞パターンＰＴｆが投影されて撮像された短周期位相測定データに対して、ノイズである可能性の高いエラー画素を除いて、正しい画素（位相データ）だけを抽出するためのノイズ除去処理を実行する（ステップＳ２４０）。なお、以降の説明において、短周期の縞パターンＰＴｆは、図２及び図３に示すように、縞パターンをカメラユニット２１で撮像した画像データ上での位相方向が右方向から左方向（Ｘ方向）に繰り返され（この方向を「繰り返し方向」と呼ぶ）、且つ、一つの周期における明るさが位相（０〜２π）に対して単調増加する場合で説明する。
【００６４】
具体的に、ノイズ除去処理Ｓ２４０は、被検査体１２に投射される短周期の縞パターンＰＴｆにより構成される位相が、右方向から左方向に向かって単調増加する関係にあることから、この短周期の縞パターンＰＴｆの位相の開始位置をずらして撮像された３枚以上の撮像パターン画像データから算出される位相φｆにおいて、物体の凹凸により、位相に不連続が発生した場合においても、局所的には位相φｆが単調増加するという特性を有する。この特性に矛盾する画素の位相φｆを短周期測定位相データから除く処理を実行する。
【００６５】
制御ユニット３０は、図５に示すように、撮像パターン画像データを構成する全ての画素が注目画素として選択されたか否かを判断する（ステップＳ２４０１）。制御ユニット３０が選択されていない画素があると判断した場合（ステップＳ２４０１：Ｎｏ）、撮像画像データの選択されていない画素の中から注目画素を選択し（ステップＳ２４０２）、短周期測定位相データから選択された注目画素の位相φｆを取得してＰ＋（０）、Ｐ−（０）とし、また、短周期測定振幅データから選択された注目画素の振幅Ａｆを取得してＡ＋（０）、Ａ−（０）とする（ステップＳ２４０３）。ここで、Ｐ＋（０）、Ａ＋（０）は後述する位相増加方向に処理するときを示し、Ｐ−（０）、Ａ−（０）は後述する位相減少方向に処理するときを示している。
【００６６】
また、制御ユニット３０が全ての画素が選択されたと判断した場合（ステップＳ２４０１：Ｙｅｓ）、制御ユニット３０は、ノイズ除去処理Ｓ２４０を終了する。ここで、制御ユニット３０は、撮像パターン画像データの全ての画素に対して、ノイズ除去処理Ｓ２４０を実行する。したがって、ノイズ除去処理Ｓ２４０をシーケンシャルに処理する場合は、撮像画像データの画素が一つずつ選択される。例えば、図２の例では、左上角の画素から右方向（上述した繰り返し方向であって、位相が増加する方向であるため「位相増加方向」と呼ぶ）に順次選択していき、右端の画素の処理が終了すると一つ下の段の左端の画素を選択するという処理を右下角の画素まで繰り返す。一方、検査装置１０が、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のように、複数の処理を並列して実行できる演算処理装置を有する場合には、撮像パターン画像データの画素から、並列処理可能な数だけ注目画素として選択され、全ての画素に対してノイズ除去処理Ｓ２４０が実行されるまでこの処理を繰り返すことにより、ノイズ除去処理Ｓ２４０の実行を高速化することができる。
【００６７】
制御ユニット３０は、まず、注目画素と位相増加方向の画素との比較を行う。制御ユニット３０は、初期化処理として、ループ処理回数をカウントする変数ｉに１を設定する（ステップＳ２４０４）。ここで、位相Ｐ＋（ｉ）は、注目画素Ｐ＋（０）から、位相増加方向に変数ｉで選択している画素（以下、「位相増加方向にｉ番目の画素」と呼ぶ）の位相であり、位相Ｐ＋（ｉ−１）は、変数ｉで選択している画素の左隣の画素（位相増加方向と反対側に隣接する画素）の位相の値である。
【００６８】
制御ユニット３０は、注目画素から右方向（位相増加方向）に数えてｉ番目の画素が存在するか否かを判断する（ステップＳ２４０５）。制御ユニット３０が、注目画素から右方向（位相増加方向）に数えてｉ番目の画素が存在しない、すなわち、最も右端の画素まで処理されていると判断した場合（ステップＳ２４０５：Ｎｏ）、制御ユニット３０は、ステップＳ２４２０に進む。
【００６９】
制御ユニット３０が、注目画素から右方向（位相増加方向）に数えてｉ番目の画素が存在すると判断した場合（ステップＳ２４０５：Ｙｅｓ）、制御ユニット３０は、注目画素から右方向（位相増加方向）に数えてｉ番目の画素の位相φｆを短周期測定位相データから取得してＰ＋（ｉ）とし、注目画素から右方向（位相増加方向）に数えてｉ番目の画素の振幅Ａｆを短周期測定振幅データから取得してＡ＋（ｉ）とする（ステップＳ２４０６）。
【００７０】
制御ユニット３０は、位相Ｐ＋（ｉ）と位相Ｐ＋（ｉ−１）の差の絶対値が所定の閾値ｔｈを超えているか否かを判断する（ステップＳ２４０７）。制御ユニット３０が、位相Ｐ＋（ｉ）と位相Ｐ＋（ｉ−１）の差の絶対値が所定の閾値ｔｈを超えていると判断した場合（ステップＳ２４０７：Ｙｅｓ）、制御ユニット３０は、ステップＳ２４２０に進む。ここで、上述したように、位相Ｐ＋（ｉ）は現在選択している位相増加方向にｉ番目の画素の位相の値であり、位相Ｐ＋（ｉ−１）は、このｉ番目の画素の左隣にある画素の位相の値である。すなわち、ステップＳ２４０７において、制御ユニット３０が、位相増加方向にｉ番目の画素の位相と左隣（ｉ−１番目）の画素の位相の差の絶対値が所定の閾値を超えているときは、位相のつなぎ目（図３の短周期の位相パターンＰＴｆに示すように、例えば、０番目のパターンと１番目のパターンのつなぎ目であって、位相から２πから０に変わる部分）であると判断し、後続する処理に進む。
【００７１】
制御ユニット３０が、位相Ｐ＋（ｉ）と位相Ｐ＋（ｉ−１）の差の絶対値が所定の閾値ｔｈを超えていないと判断した場合（ステップＳ２４０７：Ｎｏ）、制御ユニット３０は、注目画素の位相Ｐ＋（０）が位相増加方向にｉ番目の画素の位相Ｐ＋（ｉ）より大きく、且つ、注目画素の振幅Ａ＋（０）が位相増加方向にｉ番目の画素の振幅Ａ＋（ｉ）より小さいか否かを判断する（ステップＳ２４０８）。
【００７２】
以上より、制御ユニット３０が、注目画素の位相Ｐ＋（０）が位相増加方向にｉ番目の画素の位相Ｐ＋（ｉ）より大きく、且つ、注目画素の振幅Ａ＋（０）が位相増加方向にｉ番目の画素の振幅Ａ＋（ｉ）より小さいと判断した場合（ステップＳ２４０８：Ｙｅｓ）、注目画素と位相増加方向にｉ番目の画素の位相が矛盾していて（単純増加ではなく）、且つ、注目画素の振幅が位相増加方向にｉ番目の画素の振幅より小さいので、制御ユニット３０は、現在の注目画素の位相（位相が小さい方）がノイズである（エラー画素である）ことをメモリ３５に記憶し（ステップＳ２４０９）、ステップＳ２４０１に戻り、次の注目画素に対して上述した処理を繰り返す。このステップＳ２４０８で注目画素の振幅と位相増加方向にｉ番目の画素の振幅を比較することにより、振幅が小さいときの位相は、影等の影響を受けている可能性が高いため、注目画素の振幅が位相増加方向にｉ番目の画素の振幅より小さいときは、注目画素の位相の方がノイズである（エラー画素である）と判断している。なお、現在の注目画素の位相がノイズある（エラー画素である）ことの記憶は、画素毎に当該画素がノイズあるか否かのフラグを管理し（メモリ３５に記憶し）、ノイズでないときは「０」を設定し、ノイズであるときに「１」を設定するように構成してもよいし、メモリ３５に記憶されている短周期測定位相データの当該画素に対する値（位相）を「０」に設定するように構成してもよい（後述する位相減少方向に対する処理も同じである）。
【００７３】
制御ユニット３０が、注目画素の位相Ｐ＋（０）が位相増加方向にｉ番目の画素の位相Ｐ＋（ｉ）より大きくないか、若しくは、注目画素の振幅Ａ＋（０）が位相増加方向にｉ番目の画素の振幅Ａ＋（ｉ）より小さくないと判断した場合（ステップＳ２４０８：Ｎｏ）、注目画素の位相Ｐ＋（０）と位相増加方向にｉ番目の画素の位相Ｐ＋（ｉ）の大きさに矛盾がないため、制御ユニット３０は、カウンタである変数ｉに１を加算することで、比較対象の画素を右方向（位相増加方向）に１つ進め（ステップＳ２４１０）、変数ｉが所定の値Ｎより大きいか否かを判断する（ステップＳ２４１１）。
【００７４】
制御ユニット３０が、変数ｉが所定の値Ｎより大きいと判断した場合（ステップＳ２４１１：Ｙｅｓ）、制御ユニット３０は、ステップＳ２４２０に進む。また、制御ユニット３０が、変数ｉが所定の値Ｎより大きくないと判断した場合（ステップＳ２４１１：Ｎｏ）、制御ユニット３０は、ステップＳ２４０５に戻って上述した処理（変数ｉによるループ処理）を繰り返す。ここで、所定の値Ｎは、注目画素と、この注目画素より右方向（位相増加方向）にある画素とを比較する際に、比較の範囲を決定するパラメータである。このパラメータＮは、撮像画像データ上の位相の幅から決定される。注目画素と比較する画素の範囲をパラメータＮで限定することにより、ノイズ除去処理Ｓ２４０を高速化することができる。また、パラメータＮにより、比較する範囲を限定することにより、ＧＰＵ等による並列処理を効率的に利用することができる。
【００７５】
次に、制御ユニット３０は、注目画素と位相減少方向の画素との比較を行う。図６に示すように、制御ユニット３０は、初期化処理として、ループ処理回数をカウントする変数ｊに１を設定する（ステップＳ２４２０）。ここで、位相Ｐ−（ｊ）は、注目画素Ｐ−（０）から、位相減少方向に変数ｊで選択している画素（以下、「位相減少方向にｊ番目の画素」と呼ぶ）の位相であり、位相Ｐ−（ｊ−１）は、変数ｊで選択している画素の右隣の画素（位相減少方向と反対側に隣接する画素）の位相の値である。
【００７６】
制御ユニット３０は、注目画素から左方向（位相減少方向）に数えてｊ番目の画素が存在するか否かを判断する（ステップＳ２４２１）。制御ユニット３０が、注目画素から左方向（位相減少方向）に数えてｊ番目の画素が存在しない、すなわち、最も左端の画素まで処理されていると判断した場合（ステップＳ２４２１：Ｎｏ）、制御ユニット３０は、ステップＳ２４０１に戻り、次の注目画素に対して上述した処理を繰り返す。
【００７７】
制御ユニット３０が、注目画素から左方向（位相減少方向）に数えてｊ番目の画素が存在すると判断した場合（ステップＳ２４２１：Ｙｅｓ）、制御ユニット３０は、注目画素から左方向（位相減少方向）に数えてｊ番目の画素の位相φｆを短周期測定位相データから取得してＰ−（ｊ）とし、注目画素から左方向（位相減少方向）に数えてｊ番目の画素の振幅Ａｆを短周期測定振幅データから取得してＡ−（ｊ）とする（ステップＳ２４２２）。
【００７８】
制御ユニット３０は、位相Ｐ−（ｊ）と位相Ｐ−（ｊ−１）の差の絶対値が所定の閾値ｔｈを超えているか否かを判断する（ステップＳ２４２３）。制御ユニット３０が、位相Ｐ−（ｊ）と位相Ｐ−（ｊ−１）の差の絶対値が所定の閾値ｔｈを超えていると判断した場合（ステップＳ２４２３：Ｙｅｓ）、制御ユニット３０は、ステップＳ２４０１に戻り、次の注目画素に対して上述した処理を繰り返す。上述したように、位相Ｐ−（ｊ）は現在選択している、位相減少方向にｊ番目の画素の位相の値であり、位相Ｐ−（ｉ−１）は、このｊ番目の画素の右隣にある画素の位相の値であるため、ステップＳ２４２３において、制御ユニット３０が、ｊ番目の画素の位相と右隣（ｊ−１番目）の画素の位相の差の絶対値が所定の閾値を超えているときは、位相のつなぎ目であると判断し、現在の注目画素に対する処理を終了して次の注目画素に移行する。
【００７９】
制御ユニット３０が、位相Ｐ−（ｊ）と位相Ｐ−（ｊ−１）の差の絶対値が所定の閾値ｔｈを超えていないと判断した場合（ステップＳ２４２３：Ｎｏ）、制御ユニット３０は、注目画素の位相Ｐ−（０）が位相減少方向にｊ番目の画素の位相Ｐ−（ｊ）より小さく、且つ、注目画素の振幅Ａ−（０）が位相減少方向にｉ番目の画素の振幅Ａ−（ｊ）より小さいか否かを判断する（ステップＳ２４２４）。上述したように、短周期の位相パターンＰＴｆの明るさは位相の減少に対して単純減少しているため、位相φｆが単純減少する。すなわち、注目画素の位相Ｐ−（０）は、この注目画素よりも左方向（位相減少方向）に位置するｊ番目の画素の位相Ｐ−（ｊ）よりも大きくなる。
【００８０】
以上より、制御ユニット３０が、注目画素の位相Ｐ−（０）が位相減少方向にｊ番目の画素の位相Ｐ−（ｊ）より小さく、且つ、注目画素の振幅Ａ−（０）が位相減少方向にｊ番目の画素の振幅Ａ−（ｉ）より小さいと判断した場合（ステップＳ２４２４：Ｙｅｓ）、注目画素と位相減少方向にｊ番目の画素の位相が矛盾していて（単純減少ではなく）、且つ、注目画素の振幅が位相減少方向にｊ番目の画素の振幅より小さいので、制御ユニット３０は、現在の注目画素の位相（位相が小さい方）がノイズである（エラー画素である）ことをメモリ３５に記憶し（ステップＳ２４２５）、ステップＳ２４０１に戻り、次の注目画素に対して上述した処理を繰り返す。このステップＳ２４２４で注目画素の振幅と位相減少方向にｊ番目の画素の振幅を比較する理由は、上述した位相増加方向の処理の場合と同じである。
【００８１】
制御ユニット３０が、注目画素の位相Ｐ−（０）が位相減少方向にｊ番目の画素の位相Ｐ−（ｊ）より小さくない、若しくは、注目画素の振幅Ａ−（０）が位相減少方向にｊ番目の画素の振幅Ａ―（ｊ）より小さくないと判断した場合（ステップＳ２４２４：Ｎｏ）、注目画素の位相Ｐ−（０）と位相減少方向にｊ番目の画素の位相Ｐ−（ｊ）の大きさに矛盾がないため、制御ユニット３０は、カウンタである変数ｊに１を加算することで、比較対象の画素を左方向（位相減少方向）に１つ進め（ステップＳ２４２６）、変数ｊが所定の値Ｎより大きいか否かを判断する（ステップＳ２４２７）。
【００８２】
制御ユニット３０が、変数ｊが所定の値Ｎより大きいと判断した場合（ステップＳ２４２７：Ｙｅｓ）、制御ユニット３０は、ステップＳ２４０１に戻り、次の注目画素に対して上述した処理を繰り返す。また、制御ユニット３０が、変数ｊが所定の値Ｎより大きくないと判断した場合（ステップＳ２４２７：Ｎｏ）、制御ユニット３０は、ステップＳ２４２１に戻って上述した処理（変数ｊによるループ処理）を繰り返す。ここで、所定の値Ｎは、注目画素と、この注目画素より左方向（位相減少方向）にある画素とを比較する際に、比較の範囲を決定するパラメータである。このパラメータＮは、撮像画像データ上の位相の幅から決定される。注目画素と比較する画素の範囲をパラメータＮで限定することにより、ノイズ除去処理Ｓ２４０を高速化することができる。また、パラメータＮにより、比較する範囲を限定することにより、ＧＰＵ等による並列処理を効率的に利用することができる。
【００８３】
図４に戻り、ノイズ除去処理Ｓ２４０が終了すると、制御ユニット３０は、ステップＳ２１０で算出された画素毎の長周期測定位相データφｗと、ステップＳ１１０で算出された画素毎の長周期基準位相データφｗ０を用いて、式（３）により画素毎の位相差Δφｗを算出し、ステップＳ２３０で算出され、ステップＳ２４０でノイズが除去された画素毎の短周期測定位相データφｆと、ステップＳ１３０で算出された画素毎の短周期基準位相データφｆ０を用いて、式（４）により画素毎の位相差Δφｆを算出し、これらの位相差Δφｗ、Δφｆを用いて、画素毎に、上述した式（５）に基づいて、詳細な高さ情報（Ｈ）を算出し、メモリ３５に記憶する（ステップＳ２５０）。
【００８４】
以上のように、本実施形態に係る検査方法を用いると、被検査体１２の高さ情報の取得においては、短周期の縞パターンＰＴｆの投射により得られた３枚以上の撮像パターン画像データにより算出される画素毎の位相データ（短周期測定位相データφｆ）から、ノイズの可能性がある値（エラー画素）を除去することができるので、高精度の高さ情報を取得することができる。なお、ノイズとして除去された画素（エラー画素）は、上述したように、ハンダや電子部品等の影部分の本来光の当たっていない場所や鏡面反射による二次反射がある場所である可能性が高く、異なる角度から縞パターンを投射することにより、正確な高さ情報を取得することができる。すなわち、本実施形態に係る検査装置１０は、図１に示すように、異なる方向から縞パターンを投射する複数の投射ユニット２３を有することが望ましい。ここで、複数の投射ユニット２３を用いて、それぞれの投射ユニット２３から投射した縞パターンで高さ情報を取得したときは、最終的な高さ情報を算出する際に、ある投射ユニット２３による画像データから上記手法でノイズと判定された画素は、他の投射ユニット２３による画像データから取得した画素の高さ情報のみを用いることが望ましい。これにより、影や鏡面反射の影響のない方向から取得した高さ情報を取得することができる。あるいは、ノイズ除去処理Ｓ２４０でノイズとして判定され、除去された画素は、後段の処理でメディアンフィルタに代表されるフィルタ処理等で補完してもよい。
【００８５】
また、上述した説明では、被検査体１２に対して、縞パターンの繰り返し方向が左右方向である場合について説明したが、上下方向や斜め方向（右下がりや右上がりの方向）であっても、注目画素に対してこの注目画素の繰り返し方向の画素と比較することで、同様にノイズを除去することができる。
【００８６】
また、上述した説明では、ステップＳ２４０８、Ｓ２４２４で位相と振幅の関係が矛盾したときに、ステップＳ２４０９、Ｓ２４２５において、注目画素の位相（上述した説明から明らかように、比較した位相の小さい方）をノイズ（エラー画素）として判断していたが、注目画素だけでなく、矛盾があると判断された時点のｉ番目の画素もノイズ（エラー画素）と判定するように構成してもよい。
【００８７】
また、上述した説明では、ステップＳ２３０において、短周期測定画像データから、画素毎に位相φｆ及び振幅Ａｆを算出していたが、位相φｆ及び振幅Ａｆに加えてオフセットＢｆの値も算出し、ノイズ除去処理Ｓ２４０においては、ステップＳ２４０８で、位相が矛盾した場合（Ｐｉ＜Ｐ０の場合）には、位相φｆ、振幅Ａｆ及びオフセットＢｆの最小二乗誤差Ｅが大きい方の画素（注目画素又はｉ番目の画素）をノイズ（エラー画素）とするように構成してもよい。
【００８８】
また、上述した説明では、パターン（位相）のつなぎ目において、２πの高さギャップが生じる。そのため、ステップＳ２４０７において、位相Ｐｉと位相Ｐ１の差の絶対値と比較する所定の閾値ｔｈをπ以下とし、π以上の高さギャップは正常状態（ノイズ判断の対象ではない）としてもよい。この際、測定対象が一定以上の高さギャップを持っていた際に、異常値か否かを判定できないのに対し、上述したハンダや電子部品等の高さ等を測定する場合には、対象の高さギャップがほぼ一定値以内であるため、縞パターンを想定される対象の最大ギャップの２倍の波長を用いることが望ましい。
【００８９】
また、本実施形態に係る測定方法では、撮像パターン画像データにおいて縞パターンの像の位相が空間的に一方向に単調に変化する（単調増加又は単調減少する）という特性によりノイズを除去することができるので、撮像画像データの各画素において所定の輝度より小さい（暗い）画素を影と判定するときに、この判定の閾値をより低く設定することができる。例えば、撮像ユニット２０を構成するカメラユニット２１が、２５６階調のような離散的な値を取る場合、暗い部分は取得できる輝度に対して、輝度変化が相対的に離散的になる。この場合、周辺の輝度（上述したように注目画素に対する繰り返し方向の画素の輝度）と比較することで、より細かな輝度を取得することができる。
【００９０】
なお、撮像パターン画像データに対して、特に輝度が小さい（暗い）部分だけ、平均化フィルタ又はガウシアンフィルタ等のコンボリューションフィルタによる平滑化（フィルタ処理）を行うように構成してもよい。
【００９１】
また、上述した説明では、ノイズ除去処理を、短周期の縞パターンＰＴｆに対する位相の算出に適用しているが、長周期の縞パターンＰＴｗに対する位相の算出に適用することもできる。
【００９２】
以上の構成によれば、撮像画像データにおける暗い点（暗い画素）でも、信頼できる値かどうかをノイズ除去処理により判定できるため、より暗い点（暗い画素）から高精度の高さ情報を取得することができる。また、周辺に鏡面等がある箇所であっても、上述したノイズ除去処理により発生する２次反射の影響を低減できるので、高精度の高さ情報を取得することができる。
【００９３】
なお、以上の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【符号の説明】
【００９４】
１０  検査装置
２１  カメラユニット
２３  投射ユニット
３０  制御ユニット
３５  メモリ（記憶部）
【図１】
2019124543.tif 000003
【図２】
2019124543.tif 000004
【図３】
2019124543.tif 000005
【図４】
2019124543.tif 000006
【図５】
2019124543.tif 000007
【図６】
2019124543.tif 000008