(実施形態)
本実施形態の検査システムについて説明する。本実施形態の検査システムは、被検査体を検査するために様々な構成を備えている。図1は、本実施形態の検査システムの構成例を示した図である。図1に示されるように、本実施形態の検査システムは、PC100と、時間相関カメラ110と、プロジェクタ121と、スクリーン122と、アーム140と、を備えている。
アーム140は、被検査体150を固定するために用いられ、PC100からの制御に応じて、時間相関カメラ110が撮影可能な被検査体150の表面の位置と向きを変化させる。
プロジェクタ121は、被検査体150に光を照射する装置であって、PC100からのパターンに従って、照射する光の強度を領域単位で制御できる。さらに、プロジェクタ121は、周期的な時間の遷移に従って当該領域単位の光の強度を制御できる。換言すれば、プロジェクタ121は、光の強度の周期的な時間変化及び空間変化を与えることができる。なお、具体的な光の強度の制御手法については後述する。
スクリーン122は、プロジェクタ121から出力された光を拡散させた上で、被検査体150に対して面的に光を照射する。本実施形態のスクリーン122は、プロジェクタ121から入力された周期的な時間変化及び空間変化が与えられた光を、面的に被検査体150に照射する。プロジェクタ121およびスクリーン122は、照明装置120を構成している。照明装置120は、照明部の一例である。
時間相関カメラ110は、光学系210と、イメージセンサ220と、データバッファ230と、制御部240と、参照信号出力部250と、を備えている。図2は、本実施形態の時間相関カメラ110の構成を示したブロック図である。
光学系210は、撮影レンズ等を含み、時間相関カメラ110の外部の被写体(被検査体150を含む)からの光束を透過し、その光束により形成される被写体の光学像を結像させる。
イメージセンサ220は、光学系210を介して入射された光の強弱を光強度信号として画素毎に高速に出力可能なセンサとする。
本実施形態の光強度信号は、検査システムのプロジェクタ121(照明装置120)が被写体(被検査体150を含む)に対して光を照射し、当該被写体からの反射光を、イメージセンサ220が受け取ったものである。
イメージセンサ220は、例えば従来のものと比べて高速に読み出し可能なセンサであり、行方向(x方向)、列方向(y方向)の2種類の方向に画素が配列された2次元平面状に構成されたものとする。そして、イメージセンサ220の各画素を、画素P(1,1),……,P(i,j),……,P(X,Y)とする(なお、本実施形態の画像サイズをX×Yとする。)。なお、イメージセンサ220の読み出し速度を制限するものではなく、従来と同様であってもよい。
イメージセンサ220は、光学系210によって透過された、被写体(被検査体150を含む)からの光束を受光して光電変換することで、被写体から反射された光の強弱を示した光強度信号(撮影信号)で構成される、2次元平面状のフレームを生成し、制御部240に出力する。本実施形態のイメージセンサ220は、読み出し可能な単位時間毎に、当該フレームを出力する。
本実施形態の制御部240は、例えばCPU、ROM、及びRAM等で構成され、ROMに格納された検査プログラムを実行することで、転送部241と、読出部242と、強度画像用重畳部243と、第1の乗算器244と、第1の相関画像用重畳部245と、第2の乗算器246と、第2の相関画像用重畳部247と、画像出力部248と、を実現する。なお、CPU等で実現することに制限するものではなく、FPGA、またはASICで実現してもよい。
転送部241は、イメージセンサ220から出力された、光強度信号で構成されたフレームを、データバッファ230に、時系列順に蓄積する。
データバッファ230は、イメージセンサ220から出力された、光強度信号で構成されたフレームを、時系列順に蓄積する。
図3は、本実施形態の時間相関カメラ110で時系列順に蓄積されたフレームを表した概念図である。図3に示されるように、本実施形態のデータバッファ230には、時刻t(t=t0,t1,t2,……,tn)毎の複数の光強度信号G(1,1,t),……,G(i,j,t),……,G(X,Y,t)の組み合わせで構成された複数のフレームFk(k=1,2,……,n)が、時系列順に蓄積される。なお、時刻tで作成される一枚のフレームは、光強度信号G(1,1,t),……,G(i,j,t),……,G(X,Y,t)で構成される。
本実施形態の光強度信号(撮像信号)G(1,1,t),……,G(i,j,t),……,G(X,Y,t)には、フレーム画像Fk(k=1,2,……,n)を構成する各画素P(1,1),……,P(i,j),……,P(X,Y)が対応づけられている。
イメージセンサ220から出力されるフレームは、光強度信号のみで構成されており、換言すればモノクロの画像データとも考えることができる。なお、本実施形態は、解像度、感度、及びコスト等を考慮して、イメージセンサ220がモノクロの画像データを生成する例について説明するが、イメージセンサ220としてモノクロ用のイメージセンサに制限するものではなく、カラー用のイメージセンサを用いてもよい。
図2に戻り、本実施形態の読出部242は、データバッファ230から、光強度信号G(1,1,t),……,G(i,j,t),……,G(X,Y,t)をフレーム単位で、時系列順に読み出して、第1の乗算器244と、第2の乗算器246と、強度画像用重畳部243と、に出力する。
本実施形態の時間相関カメラ110は、読出部242の出力先毎に画像データを生成する。換言すれば、時間相関カメラ110は、3種類の画像データを作成する。
本実施形態の時間相関カメラ110は、3種類の画像データとして、強度画像データと、2種類の時間相関画像データと、を生成する。なお、本実施形態は、3種類の画像データを生成することに制限するものではなく、強度画像データを生成しない場合や、1種類又は3種類以上の時間相関画像データを生成する場合も考えられる。
本実施形態のイメージセンサ220は、上述したように単位時間毎に、光強度信号で構成されたフレームを出力している。しかしながら、通常の画像データを生成するためには、撮影に必要な露光時間分の光強度信号が必要になる。そこで、本実施形態では、強度画像用重畳部243が、撮影に必要な露光時間分の複数のフレームを重畳して、強度画像データを生成する。なお、強度画像データの各画素値(光の強度を表す値)G(x,y)は、以下に示す式(1)から導き出すことができる。なお、露光時間は、t0とtnの時間差とする。
これにより、従来のカメラの撮影と同様に、被写体(被検査体150を含む)が撮影された強度画像データが生成される。そして、強度画像用重畳部243は、生成した強度画像データを、画像出力部248に出力する。
時間相関画像データは、時間遷移に応じた光の強弱の変化を示す画像データである。つまり、本実施形態では、時系列順のフレーム毎に、当該フレームに含まれる光強度信号に対して、時間遷移を示した参照信号を乗算し、参照信号と光強度信号と乗算結果である時間相関値で構成された、時間相関値フレームを生成し、複数の時間相関値フレームを重畳することで、時間相関画像データを生成する。
ところで、時間相関画像データを用いて、被検査体150の異常を検出するためには、イメージセンサ220に入力される光強度信号を、参照信号に同期させて変化させる必要がある。このために、プロジェクタ121が、上述したように、スクリーン122を介して周期的に時間変化および縞の空間的な移動を与えるような、面的な光の照射を行うこととした。
本実施形態では、2種類の時間相関画像データを生成する。参照信号は、時間遷移を表した信号であればよいが、本実施形態では、複素正弦波e-jωtを用いる。なお、角周波数ω、時刻tとする。参照信号を表す複素正弦波e-jωtが、上述した露光時間(換言すれば強度画像データ、時間相関画像を生成するために必要な時間)の一周期と相関をとるように、角周波数ωが設定されるものとする。換言すれば、プロジェクタ121およびスクリーン122等の照明部によって形成された面的かつ動的な光は、被検査体150の表面(反射面)の各位置で第一の周期(時間周期)での時間的な照射強度の変化を与えるとともに、表面に沿った少なくとも一方向に沿った第二の周期(空間周期)での空間的な照射強度の増減分布を与える。この面的な光は、表面で反射される際に、当該表面のスペック(法線ベクトルの分布等)に応じて複素変調される。時間相関カメラ110は、表面で複素変調された光を受光し、第一の周期の参照信号を用いて直交検波(直交復調)することにより、複素信号としての時間相関画像データを得る。このような複素時間相関画像データに基づく変復調により、表面の法線ベクトルの分布に対応した特徴を検出することができる。
複素正弦波e-jωtは、e-jωt=cosωt−j・sinωtと表すこともできる。従って、時間相関画像データの各画素値C(x,y)は、以下に示す式(2)から導き出すことができる。
本実施形態では、式(2)において、実数部を表す画素値C1(x,y)と、虚数部を表す画素値C2(x,y)と、に分けて2種類の時間相関画像データを生成する。
このため、参照信号出力部250は、第1の乗算器244と、第2の乗算器246と、に対してそれぞれ異なる参照信号を生成し、出力する。本実施形態の参照信号出力部250は、複素正弦波e-jωtの実数部に対応する第1の参照信号cosωtを第1の乗算器244に出力し、複素正弦波e-jωtの虚数部に対応する第2の参照信号sinωtを第2の乗算器246に出力する。このように本実施形態の参照信号出力部250は、互いにヒルベルト変換対をなす正弦波および余弦波の時間関数として表される2種類の参照信号を出力する例について説明するが、参照信号は時間関数のような時間遷移に応じて変化する参照信号であればよい。
そして、第1の乗算器244は、読出部242から入力されたフレーム単位で、当該フレームの光強度信号毎に、参照信号出力部250から入力された複素正弦波e-jωtの実数部cosωtを乗算する。
第1の相関画像用重畳部245は、撮影に必要な露光時間分の複数のフレームについて、第1の乗算器244の乗算結果を画素毎に重畳する処理を行う。これにより、第1の時間相関画像データの各画素値C1(x,y)が、以下の式(3)から導出される。
そして、第2の乗算器246は、読出部242から入力されたフレームの光強度信号に対して、参照信号出力部250から入力された複素正弦波e-jωtの虚数部sinωtを乗算する。
第2の相関画像用重畳部247は、撮影に必要な露光時間分の複数のフレームについて、第2の乗算器246の乗算結果を画素毎に重畳する処理を行う。これにより、第2の時間相関画像データの各画素値C2(x、y)が、以下の式(4)から導出される。
上述した処理を行うことで、2種類の時間相関画像データ、換言すれば2自由度を有する時間相関画像データを生成できる。
また、本実施形態は、参照信号の種類を制限するものでない。例えば、本実施形態では、複素正弦波e-jωtの実部と虚部の2種類の時間相関画像データを作成するが、光の振幅と、光の位相と、による2種類の画像データを生成してもよい。
なお、本実施形態の時間相関カメラ110は、時間相関画像データとして、複数系統分作成可能とする。これにより、例えば複数種類の幅の縞が組み合わされた光が照射された際に、上述した実部と虚部とによる2種類の時間相関画像データを、縞の幅毎に作成可能とする。このために、時間相関カメラ110は、2個の乗算器と2個の相関画像用重畳部とからなる組み合わせを、複数系統分備えるとともに、参照信号出力部250は、系統毎に適した角周波数ωによる参照信号を出力可能とする。
そして、画像出力部248が、2種類の時間相関画像データと、強度画像データと、をPC100に出力する。これにより、PC100が、2種類の時間相関画像データと、強度画像データと、を用いて、被検査体150の異常を検出する。そのためには、被写体に対して光を照射する必要がある。
本実施形態のプロジェクタ121は、高速に移動する光パターンとして、縞パターンを照射することができる。図4は、本実施形態のプロジェクタ121が照射する縞パターンの一例を示した図である。図4に示す例では、縞パターンをx方向にスクロール(移動)させている例とする。白い領域が縞に対応した明領域、黒い領域が縞と縞との間に対応した間隔領域(暗領域)である。
本実施形態では、時間相関カメラ110が強度画像データ及び時間相関画像データを撮影する露光時間で、プロジェクタ121が照射する縞パターンが一周期分移動させる。これにより、プロジェクタ121は、光の強度の縞パターンの空間的な移動により光の強度の周期的な時間変化を与える。本実施形態では、図4の縞パターンが一周期分移動する時間を、露光時間と対応させることで、時間相関画像データの各画素には、少なくとも、縞パターン一周期分の光の強度信号に関する情報が埋め込まれる。
図4に示されるように、本実施形態では、プロジェクタ121が矩形波に基づく縞パターンを照射する例について説明するが、矩形波以外を用いてもよい。本実施形態では、プロジェクタ121がスクリーン122を介して照射されることで、矩形波の明暗の境界領域をぼかすことができる。
本実施形態では、プロジェクタ121が照射する縞パターンをA(1+cos(ωt+kx))と表す。すなわち、縞パターンには、複数の縞が反復的に(周期的に)含まれる。なお、被検査体150に照射される光の強度は0〜2Aの間で調整可能とし、光の位相kxとする。kは、縞の波数である。xは、位相が変化する方向である。
そして、フレームの各画素の光強度信号f(x,y,t)の基本周波数成分は、以下の式(5)として表すことができる。式(5)で示されるように、x方向で縞の明暗が変化する。
f(x,y,t)=A(1+cos(ωt+kx))
=A+A/2{ej(ωt+kx)+e-j(ωt+kx)}……(5)
式(5)で示されるように、プロジェクタ121が照射する縞パターンの強度信号は、複素数として考えることができる。
そして、イメージセンサ220には、当該プロジェクタ121からの光が被写体(被検査体150を含む)から反射して入力される。
したがって、イメージセンサ220に入力される光強度信号G(x,y,t)を、プロジェクタ121が照射された際のフレームの各画素の光強度信号f(x,y,t)とできる。そこで、強度画像データを導出するための式(1)に式(5)を代入すると、式(6)を導出できる。なお、位相kxとする。
式(6)から、強度画像データの各画素には、露光時間Tに、プロジェクタ121が出力している光の強度の中間値Aを乗じた値が入力されていることが確認できる。さらに、時間相関画像データを導出するための式(2)に式(5)を代入すると、式(7)を導出できる。なお、AT/2を振幅とし、kxを位相とする。
これにより、式(7)で示された複素数で示された時間相関画像データは、上述した2種類の時間相関画像データと置き換えることができる。つまり、上述した実部と虚部とで構成される時間相関画像データには、被検査体150に照射された光強度変化における位相変化と振幅変化とが含まれている。換言すれば、本実施形態のPC100は、2種類の時間相関画像データに基づいて、プロジェクタ121から照射された光の位相変化と、光の振幅変化と、を検出できる。そこで、本実施形態のPC100が、時間相関画像データ及び強度画像データに基づいて、画素毎に入る光の振幅を表した振幅画像データと、画素毎に入る光の位相変化を表した位相画像データと、を生成する。
さらに、PC100は、生成した振幅画像データと位相画像データとに基づいて、被検査体150の異常を検出する。
ところで、被検査体150の表面形状に凹凸に基づく異常が生じている場合、被検査体150の表面の法線ベクトルの分布には異常に対応した変化が生じている。また、被検査体150の表面に光を吸収するような異常が生じている場合、反射した光の強度に変化が生じる。法線ベクトルの分布の変化は、光の位相変化及び振幅変化のうち少なくともいずれか一つとして検出される。そこで、本実施形態では、時間相関画像データ及び強度画像データを用いて、法線ベクトルの分布の変化に対応した、光の位相変化及び振幅変化のうち少なくともいずれか一つを検出する。これにより、表面形状の異常を検出可能となる。本実施形態によれば、時間相関画像データに基づいて、光の振幅の変化と、光の位相の変化と、を検出することで、被検査体150に異常があることを推定できる。
図1に戻り、PC100について説明する。PC100は、検出システム全体の制御を行う。PC100は、アーム制御部101と、照明制御部102と、制御部103と、を備える。
アーム制御部101は、被検査体150の時間相関カメラ110による撮像対象となる表面を変更するために、アーム140を制御する。本実施形態では、PC100において、被検査体150の撮影対象となる表面を複数設定しておく。そして、時間相関カメラ110が被検査体150の撮影が終了する毎に、アーム制御部101が、当該設定に従って、時間相関カメラ110が設定された表面を撮影できるように、アーム140が被検査体150を移動させる。なお、本実施形態は撮影が終了する毎にアーム140を移動させ、撮影が開始する前に停止させることを繰り返すことに制限するものではなく、継続的にアーム140を駆動させてもよい。なお、アーム140は、搬送部、移動部、位置変更部、姿勢変更部等とも称されうる。
照明制御部102は、被検査体150を検査するためにプロジェクタ121が照射する縞パターンを出力する。本実施形態の照明制御部102は、少なくとも3枚以上の縞パターンを、プロジェクタ121に受け渡し、当該縞パターンを露光時間中に切り替えて表示するようにプロジェクタ121に指示する。
図5は、照明制御部102がプロジェクタ121に出力する縞パターンの例を示した図である。図5(B)に示す矩形波に従って、図5(A)に示す黒領域と白領域とが設定された縞パターンが出力されるように、照明制御部102が制御を行う。
本実施形態で照射する縞パターン毎の縞の間隔は、検出対象となる異常(欠陥)の大きさに応じて設定されるものとしてここでは詳しい説明を省略する。
また、縞パターンを出力するための矩形波の角周波数ωは、参照信号の角周波数ωと同じ値とする。
図5に示されるように、照明制御部102が出力する縞パターンは、矩形波として示すことができるが、スクリーン122を介することで、縞パターンの境界領域をぼかす、すなわち、縞パターンにおける明領域(縞の領域)と暗領域(間隔の領域)との境界での光の強度変化を緩やかにする(鈍らせる)ことで、正弦波に近似させることができる。図6は、スクリーン122を介した後の縞パターンを表した波の形状の例を示した図である。図6に示されるように波の形状が、正弦波に近づくことで、計測精度を向上させることができる。また、縞に明度が多段階に変化するグレー領域を追加したり、グラデーションを与えたりしてもよい。また、カラーの縞を含む縞パターンを用いてもよい。
図1に戻り、制御部103は、振幅−位相画像生成部104と、異常検出処理部105と、を備え、時間相関カメラ110から入力された強度画像データと、時間相関画像データと、により、被検査体150の検査対象面の法線ベクトルの分布と対応した特徴であって、周囲との違いによって異常を検出する特徴を算出するための処理を行う。なお、本実施形態は、検査を行うために、複素数で示した時間相関画像データ(複素時間相関画像データと称す)の代わりに、複素数相関画像データの実部と虚部とで分けた2種類の時間相関画像データを、時間相関カメラ110から受け取る。
振幅−位相画像生成部104は、時間相関カメラ110から入力された強度画像データと、時間相関画像データと、に基づいて、振幅画像データと、位相画像データと、を生成する。振幅−位相画像生成部104は、画像取得部の一例である。
振幅画像データは、画素毎に入る光の振幅を表した画像データとする。位相画像データは、画素毎に入る光の位相を表した画像データとする。
本実施形態は振幅画像データの算出手法を制限するものではないが、例えば、振幅−位相画像生成部104は、2種類の時間相関画像データの画素値C1(x,y)及びC2(x,y)から、式(8)を用いて、振幅画像データの各画素値F(x,y)を導き出せる。
そして、本実施形態では、振幅画像データの画素値(振幅)と、強度画像データの画素値と、に基づいて、異常が生じている領域があるか否かを判定できる。例えば、強度画像データの画素値(AT)を2で除算した値と、振幅画像データの振幅(打ち消し合いが生じない場合にはAT/2となる)と、がある程度一致する領域は異常が生じていないと推測できる。一方、一致していない領域については、振幅の打ち消しが生じていると推測できる。なお、具体的な手法については後述する。
同様に、振幅−位相画像生成部104は、画素値C1(x,y)及びC2(x,y)から、式(9)を用いて、位相画像データの各画素値P(x,y)を導き出せる。
異常検出処理部105は、振幅−位相画像生成部104により生成された振幅画像データ、及び位相画像データにより、検査対称面の法線ベクトルの分布と対応した特徴であって、周囲との違いによって、被検査体150の異常に関連する特徴を検出する。本実施形態では、法線ベクトルの分布に対応した特徴として、複素時間相関画像の振幅の分布を用いた例について説明する。なお、複素時間相関画像の振幅の分布とは、複素時間相関画像の各画素の振幅の分布を示したデータであり、振幅画像データに相当する。異常検出処理部105は、演算処理部の一例である。
次に、本実施形態の異常検出処理部105における振幅に基づく異常検出処理について説明する。図7は、本実施形態の異常検出処理部105における当該処理の手順を示すフローチャートである。
まず、異常検出処理部105は、振幅画像データの各画素に格納された、光の振幅値(を表した画素値)から、当該画素を基準(例えば中心)として、N×N領域の平均振幅値を減算し(ステップS1101)、振幅の平均差分画像データを生成する。振幅の平均差分画像データは、振幅の勾配に対応する。なお、整数Nは実施の態様に応じて適切な値が設定されるものとする。
次に、異常検出処理部105は、減算により生成された振幅の平均差分画像データに対して、予め定められた振幅の閾値を用いたマスク処理を行う(ステップS1102)。
さらに、異常検出処理部105は、平均差分画像データのマスク領域内について画素毎に標準偏差を算出する(ステップS1103)。なお、本実施形態では、標準偏差に基づいた手法について説明するが、標準偏差を用いた場合に制限するものではなく、例えば平均値等を用いてもよい。
そして、異常検出処理部105は、平均を引いた振幅画素値が−4.5σ(σ:標準偏差)より小さい値の画素を、異常(欠陥)がある領域として検出する(ステップS1104)。
上述した処理手順により、各画素の振幅値(換言すれば、振幅の分布)から、被検査体150の異常を検出できる。しかしながら、本実施形態は、複素時間相関画像の振幅の分布から異常を検出することに制限するものではない。検査対称面の法線ベクトルの分布と対応した特徴として、位相の分布の勾配を用いてもよい。そこで、次に位相の分布の勾配を用いた例について説明する。
次に、本実施形態の異常検出処理部105における位相に基づく異常検出処理について説明する。図8は、本実施形態の異常検出処理部105における当該処理の手順を示すフローチャートである。
まず、異常検出処理部105は、位相画像データの画素毎の光の位相値(を表した画素値)から、当該画素を基準(例えば中心)として、N×N領域の平均位相値を減算し(ステップS1201)、位相の平均差分画像データを生成する。位相の平均差分画像データは、位相の勾配に対応する。
次に、異常検出処理部105は、減算により生成された位相の平均差分画像データの大きさ(絶対値)と、閾値とを比較し、平均差分画像データの大きさが閾値以上となる画素を、異常(欠陥)のある画素として検出する(ステップS1202)。
このステップS1202の検出結果により、異常検出処理部105は、平均差分画像データの正負、すなわち、画素の位相値と平均位相値との大小関係によって、凹凸を判別することができる(ステップS1203)。画素の位相値と平均位相値とのどちらが大きい場合に凸となるかは、各部の設定によって変化するが、大小関係が異なると、凹凸が異なる。
なお、他の手法によって得られた位相の分布の勾配から、異常を検出することができる。例えば、異常検出処理部105は、別の手法として、正規化された時間相関画像データのN×Nの領域の平均ベクトルと、正規化された各画素のベクトルとの差の大きさが、閾値よりも大きい場合に、異常(欠陥)がある画素として検出することができる。また、位相の分布の勾配に限られず、位相の分布に対応する情報に基づいて被検査体150の異常を検出すればよい。
次に、本実施形態の異常検出処理部105における振幅および強度に基づく異常検出処理について説明する。図9は、本実施形態の異常検出処理部105における当該処理の手順を示すフローチャートである。
まず、異常検出処理部105は、時間相関画像データと強度画像データとから、各画素について、次の式(10)を用いて、振幅(を表す画素値)C(x,y)(式(7)参照)と強度(を表す画素値)G(x,y)(式(6)参照)との比R(x,y)を算出する(ステップS1301)。
R(x,y)=C(x,y)/G(x,y)……(10)
次に、異常検出処理部105は、比R(x,y)と閾値とを比較し、比R(x,y)の値が対応する閾値以下となる画素を、異常(欠陥)のある画素として検出する(ステップS1302)。また、異常検出処理部105は、比R(x,y)と閾値とを比較し、比R(x,y)の値が対応する別の閾値以上となる画素を、ムラ(汚れ等)のある画素として検出する(ステップS1303)。法線ベクトルの分布の異常により、振幅の打ち消し合い(減殺)が顕著となった場合には、強度に比べて振幅がより大きく下がる。一方、法線ベクトルの分布にはそれほどの異常は無いものの被検査体150の表面の汚れ等によって光の吸収が顕著となった場合には、振幅に比べて強度がより大きく下がる。よって、異常検出処理部105は、ステップS1302およびステップS1303による異常種別の検出が可能となる。
次に、本実施形態の検査システムにおける被検査体150の検査処理について説明する。図10は、本実施形態の検査システムにおける上述した処理の手順を示すフローチャートである。なお、被検査体150は、すでにアーム140に固定された状態で、検査の初期位置に配置されているものとする。
本実施形態のPC100が、プロジェクタ121に対して、被検査体150を検査するための縞パターンを出力する(ステップS1401)。
プロジェクタ121は、PC100から入力された縞パターンを格納する(ステップS1421)。そして、プロジェクタ121は、格納された縞パターンを、時間遷移に従って変化するように表示する(ステップS1422)。なお、プロジェクタ121が表示を開始する条件は、縞パターンが格納された際に制限するものではなく、例えば検査者がプロジェクタ121に対して開始操作を行った際でもよい。
そして、PC100の制御部103が、時間相関カメラ110に対して、撮影の開始指示を送信する(ステップS1402)。
次に、時間相関カメラ110が、送信されてきた撮影指示に従って、被検査体150を含む領域について撮像を開始する(ステップS1411)。次に、時間相関カメラ110の制御部240が、強度画像データと、時間相関画像データと、を生成する(ステップS1412)。そして、時間相関カメラ110の制御部240が、強度画像データと、時間相関画像データと、を、PC100に出力する(ステップS1413)。
PC100の制御部103は、強度画像データと、時間相関画像データと、を受け取る(ステップS1403)。そして、振幅−位相画像生成部104は、受け取った強度画像データと時間相関画像データとから、振幅画像データと、位相画像データとを生成する(ステップS1404)。
そして、異常検出処理部105が、振幅画像データと、位相画像データとに基づいて、被検査体150の異常検出制御を行う(ステップS1405)。そして、異常検出処理部105は、異常検出結果を、PC100が備える(図示しない)表示装置に出力する(ステップS1406)。
異常検出結果の出力例としては、強度画像データを表示するとともに、振幅画像データと位相画像データとに基づいて異常が検出された領域に対応する、強度画像データの領域を、検査者が異常を認識できるように装飾表示するなどが考えられる。また、視覚に基づく出力に制限するものではなく、音声等で異常が検出されたことを出力してもよい。
制御部103は、当該被検査体150の検査が終了したか否かを判定する(ステップS1407)。検査が終了していないと判定した場合(ステップS1407:No)、アーム制御部101が、予め定められた設定に従って、次の検査対象となる被検査体150の表面が、時間相関カメラ110で撮影できるように、アームの移動制御を行う(ステップS1408)。アームの移動制御が終了した後、制御部103が、再び時間相関カメラ110に対して、撮影の開始指示を送信する(ステップS1402)。
一方、制御部103は、当該被検査体150の検査が終了したと判定した場合(ステップS1407:Yes)、終了指示を時間相関カメラ110に対して出力し(ステップS1409)、処理を終了する。
そして、時間相関カメラ110は、終了指示を受け付けたか否かを判定する(ステップS1414)。終了指示を受け付けていない場合(ステップS1414:No)、再びステップS1411から処理を行う。一方、終了指示を受け付けた場合(ステップS1414:Yes)、処理を終了する。
なお、プロジェクタ121の終了処理は、検査者が行ってもよいし、他の構成からの指示に従って終了してもよい。
また、本実施形態では、時間相関カメラ110を用いて生成された強度画像データと、時間相関画像データと、を生成する例について説明した。しかしながら、強度画像データと、時間相関画像データと、を生成するために時間相関カメラ110を用いることに制限するものではなく、アナログ的な処理で実現可能な時間相関カメラや、それと等価な動作をする撮像システムを用いてもよい。例えば、通常のデジタルスチルカメラが生成した画像データを出力し、情報処理装置が、デジタルスチルカメラが生成した画像データを、フレーム画像データとして用いて参照信号を重畳することで、時間相関画像データを生成してもよいし、イメージセンサ内で光強度信号に参照信号を重畳するようなデジタルカメラを用いて、時間相関画像データを生成してもよい。
(変形例1)
上記実施形態では、周囲との違いに基づいて、異常に関連する特徴を検出する例について説明したが、周囲との違いに基づいて当該特徴を検出することに制限するものではなく、参照形状のデータ(参照データ、例えば、時間相関データや、振幅画像データ、位相画像データ等)との差異に基づいて当該特徴を検出してもよい。この場合、参照データの場合とで、空間位相変調照明(縞パターン)の位置合わせおよび同期が必要となる。
本変形例では、異常検出処理部105が、予め(図示しない)記憶部に記憶された、参照表面から得られた振幅画像データ及び位相画像データと、被検査体150の振幅画像データ及び位相画像データと、を比較し、被検査体150の表面と参照表面との間で、光の振幅及び光の位相とのうちいずれか一つ以上について所定の基準以上の違いがあるか否かを判定する。
本変形例は、上記実施形態と同じ構成の検査システムを用い、参照表面として正常な被検査体150の表面を用いる例とする。
プロジェクタ121がスクリーン122を介して縞パターンを照射している間に、時間相関カメラ110が、正常な被検査体150の表面を撮像し、時間相関画像データを生成する。そして、PC100が、時間相関カメラ110で生成された時間相関画像データを入力し、振幅画像データ及び位相画像データを生成し、PC100の図示しない記憶部に振幅画像データ及び位相画像データを記憶させておく。そして、時間相関カメラ110が、異常が生じているか否か判定したい被検査体150を撮像し、時間相関画像データを生成する。そして、PC100が、時間相関画像データから、振幅画像データ及び位相画像データを生成した後、記憶部に記憶されていた、正常な被検査体150の振幅画像データ及び位相画像データと比較する。その際に、正常な被検査体150の振幅画像データ及び位相画像データと、検査対象の被検査体150の振幅画像データ及び位相画像データと、の比較結果を、異常を検出する特徴を示したデータとして出力する。そして、異常を検出する特徴が、当該所定の基準以上の場合に、被検査体150に対して異常があると推測できる。
これにより、本変形例では、正常な被検査体150の表面と差異が生じているか否か、換言すれば、被検査体150の表面に異常が生じているか否かを判定できる。なお、振幅画像データ及び位相画像データの比較手法は、どのような手法を用いてもよいので、説明を省略する。
さらに、本変形例では参照表面の違いに基づいて、異常を検出する特徴を示したデータを出力する例について説明したが、参照表面の違いと、上記実施形態で示した周囲との違いと、を組み合わせて、異常を検出する特徴を算出してもよい。組み合わせる手法は、どのような手法を用いてもよいので、説明を省略する。
(変形例2)
上記実施形態では、x方向に縞パターンを動かして、被検査体150の異常(欠陥)を検出する例について説明した。しかしながら、x方向に垂直なy方向で急峻に法線の分布が変化する異常(欠陥)が被検査体150に生じている場合、x方向に縞パターンを動かすよりも、y方向に縞パターンを動かす方が欠陥の検出が容易になる場合がある。そこで、変形例では、x方向に移動する縞パターンと、y方向に移動する縞パターンとを、交互に切り替える例について説明する。
本変形例の照明制御部102は、所定の時間間隔毎に、プロジェクタ121に出力する縞パターンを切り替える。これにより、プロジェクタ121は、一つの検査対象面に対して、異なる方向に延びた複数の縞パターンを出力する。
図11は、本変形例の照明制御部102が出力する縞パターンの切り替え例を示した図である。図11の(A)では、照明制御部102は、プロジェクタ121が表示する縞パターンをx方向に遷移させる。その後、(B)に示されるように、照明制御部102は、プロジェクタ121が表示する縞パターンをy方向に遷移させる。
そして、PC100の制御部103は、図11の(A)の縞パターン照射から得られた時間相関画像データに基づいて、異常検出を行い、図11の(B)の縞パターン照射から得られた時間相関画像データに基づいて、異常検出を行う。
図12は、本変形例の照明制御部102が、異常(欠陥)1601を含めた表面に縞パターンを照射した例を示した図である。図12に示す例では、異常(欠陥)1601が、x方向に延びている。この場合、照明制御部102は、x方向に交差するy方向、換言すれば異常(欠陥)1601の長手方向に交差する方向に縞パターンが移動するように設定する。当該設定により、検出精度を向上させることができる。
本変形例の検査システムにおいて、被検査体150に生じる欠陥の長手方向がランダムな場合には、複数方向(例えば、x方向、及び当該x方向に交差するy方向等)で縞パターンを表示することで、欠陥の形状を問わずに当該欠陥の検出が可能となり、異常(欠陥)の検出精度を向上させることができる。また、異常の形状に合わせた縞パターンを投影することで、異常の検出精度を向上させることができる。
<FFT→空間周波数フィルタリング→IFFT→複素相関による分析>
図13は、異常検出処理部105のブロック図、図14は、時間相関画像から複素相関画像が得られるまでの処理の流れを示す説明図、図15は、時間相関画像の空間周波数領域における2次元複素スペクトルの一例を示すグラフである。
図13に示されるように、異常検出処理部105は、フーリエ変換部105a、フィルタ部105b、逆フーリエ変換部105c、複素相関画像算出部105d、特徴領域検出部105e、および異常判別部105fを有する。フーリエ変換部105a、フィルタ部105b、逆フーリエ変換部105c、複素相関画像算出部105d、および特徴領域検出部105eは、演算処理部の一例である。また、異常検出処理部105を含むPC100(図1)は、画像処理装置の一例である。
フーリエ変換部105aは、複素時間相関画像に対して、x方向およびy方向についての2次元フーリエ変換(離散フーリエ変換、高速フーリエ変換)を実行し、複素スペクトルを得る。
フィルタ部105bは、フーリエ変換部105aによって得られた複素スペクトルを複素周期関数の位相ωf・ψ(後述)に対応付けた複数の空間周波数フィルタSFF(ψ)により、各空間周波数フィルタSFF(ψ)に対応した複数の複素周波数成分を抽出する。ψは、位相ωf・ψに対する増分ωfの倍数を表す変数であり、ψ=1,2,3,・・・,αである。空間周波数フィルタSFF(ψ)は、変数ψまたは位相ωf・ψの関数であるとも言える。図14,15の例では、複数の空間周波数フィルタSFF(ψ)は、周波数平面の原点Oを中心とする半径Rの半円状の同一形状のフィルタであり、位相ωf・ψに応じて位置および姿勢が異なるフィルタ、具体的には、位相ωf・ψに応じて代表位置(任意の位置、例えば、円弧の中央位置)の偏角が異なるフィルタである。各空間周波数フィルタSFF(ψ)においては、半円(D字形状)の内側が通過帯域であり、半円の外側が遮断帯域である。
一例として、空間周波数フィルタSFF(ψ)の数(分割数)がα=12に設定されうる。この場合、位相ωf・ψの増分ωfは、ωf=2π/α=π/6に設定され、空間周波数フィルタSFF(ψ)は、変数ψが1増えると、π/6回転する。また、本実施形態では、一例として、図15に示されるように、変数ψ=1の空間周波数フィルタSFF(1)が、全域がfx>0となる位置に設定され、図14に示されるように、変数ψすなわち位相ωf・ψが増加するにつれて、代表位置の偏角が時計回り方向に回転するよう、設定されている。なお、空間周波数フィルタSFF(ψ)の初期位置や位相ωf・ψに応じた回転方向等は、任意に設定されうるものであって、この例には限定されない。
逆フーリエ変換部105cは、複数の複素周波数成分を逆フーリエ変換して絶対値をとり、複数の複素画像振幅を得る。複素画像振幅は、複素周期関数の位相ωf・ψに対応したものであり、抽出された復元画像の振幅とも称されうる。そして、複素相関画像算出部105dは、複素画像振幅と複素周期関数との複素相関演算により、複素相関画像を得る。
具体的に、逆フーリエ変換部105cによって得られる位相ωf・ψに対応した複素画像振幅を、
Fψ(x,y)=Af+Bf・cos(ωf・ψ+φf) ・・・(11)
とする。ここに、Af:複素画像振幅の直流項、Bf:複素画像振幅の変動幅である。
また、複素周期関数(複素参照信号、複素指数関数)は、次の式(12)で表される。
オイラーの公式により、式(12)の複素周期関数の実部はcosωf・ψ、虚部は−sinωf・ψと表される。
式(11)の複素画像振幅と式(12)の複素周期関数との複素相関画像Ff(x,y)は、次の式(13)で表すことができる。
式(13)の複素相関画像Ff(x,y)は、複素画像振幅と複素周期関数との乗算値の、複素周期関数の位相ωf・ψの一周期分の積分値に相当する。
式(13)において、各画素における複素相関画像Ff(x,y)の実部Ffr(x,y)は、式(14)となり、虚部Ffi(x,y)は、式(15)となる。
したがって、複素相関画像Ff(x,y)の振幅Sf(x,y)は、式(16)となり、位相Pf(x,y)は、式(17)となる。
特徴領域検出部105eは、上述のようにして得られた複素相関画像Ff(x,y)の振幅Sf(x,y)または位相Pf(x,y)の特徴領域Arを検出する。特徴領域Arとは、例えば、振幅Sf(x,y)または位相Pf(x,y)が正常領域(通常領域、一般領域)とは異なる性質を示す領域である。
異常判別部105fは、特徴領域検出部105eによる特徴領域Arの検出結果に基づいて、異常領域Aaを判別する。具体的に、異常判別部105fは、例えば、特徴領域Arの少なくとも一部が対象領域Ao内に位置されていた場合であって、当該特徴領域Arの広さ(含まれる画素数)が所定の範囲内である場合に、当該特徴領域Arを異常領域Aaと判別することができる。対象領域Aoは、所定の領域の一例である。また、広さが所定の範囲内にあるとは、広さが第一の閾値よりも大きくかつ第二の閾値よりも小さいことを意味する。この場合、第一の閾値は、例えば、検出対象としない微少な凹凸等の異常と区別するために設定されうる。また、第二の閾値は、例えば、典型的な異常領域Aaの大きさに基づいて経験的に設定されうる。
図16〜18は、FFT→空間周波数フィルタリング→IFFT→複素相関による分析の検証結果の一例を示している。図16は、サンプルの時間相関画像の位相画像の一例を示す図であり、図17は、図16の時間相関画像から上述した処理によって得られた複素相関画像の振幅画像の一例を示す図であり、図18は、図16の時間相関画像から上述した処理によって得られた複素相関画像の位相画像の一例を示す図である。また、図19は、形状の変化が比較的緩やかな異常領域Aaを含むサンプルの側面図、図20は、位相の逆行についての説明図である。
図16の位相を示すパターンの変化(不連続性)から、図16の破線DL中に示される異常領域A1,A2は、いずれも位相逆行領域を含んでいることが明らかである。位相逆行領域とは、その周辺の正常領域とは逆向きに位相が増加する領域である。位相逆行領域は、図19に示されるような、形状の変化が比較的緩やかな異常領域Aaと正常領域Anとの境界近傍に出現することがある。形状が急変する部分では、位相が逆行する領域は狭くなる(あるいは短くなる)。したがって、位相逆行領域の検出は、形状の変化が比較的緩やかな異常領域Aa、例えば、塗装時に塗料の滴が溜まったこと等による緩やかな膨らみや、緩やかな凹み等の検出に、適している。
図20に詳しく例示されるように、検査面がx方向に向かうにつれて緩やかに上る場合、すなわち、検査面のx方向の勾配が徐々に大きくなる場合、点1から点7にかけてはx方向に向かうにつれて位相は増大するが、点7と点8との間の位置から位相が逆行を開始し、点8から点11にかけてはx方向に向かうにつれて位相が減少する。また、点11と点12との間の位置から位相は順行に戻り、点12から点14にかけてはx方向に向かうにつれて位相が増大する。この場合、点1と点7との間の領域、および点12と点14との間の領域が位相順行領域Apであり、点8と点11との間の領域が位相逆行領域(特徴領域Ar)となる。なお、位相φの範囲は、−πから+πまでに限定されているため、位相が増加している領域では、位相は+πに到達した時点で−πにスキップし、位相が減少している領域では、位相は−πに到達した位置で+πにスキップしている。また、図20の例では、正常領域Anに含まれる位相順行領域Apと異常領域Aaに含まれる位相順行領域Apとがある。したがって、この例の場合、位相逆行領域(特徴領域Ar)は、正常領域Anと異常領域Aaとの間の境界領域に相当する。
図16とともに図17を参照すれば、図16に示されている異常領域A1,A2が、複素相関画像の振幅がその周囲の正常領域Anよりも低い領域として検出できていることが明らかである。また、図16とともに図18を参照すれば、図16に示されている異常領域A1,A2、すなわち位相逆行領域(特徴領域Ar)を含む異常領域A1,A2が、複素相関画像の位相(の符号)がその周囲の正常領域Anとは異なる領域として検出できていることが明らかである。このように、図16〜18から、FFT→空間周波数フィルタリング→IFFT→複素相関による上述した分析が、一例として、形状の変化が比較的緩やかな異常領域Aa、例えば、塗装時に塗料の滴が溜まったこと等による緩やかな膨らみや、緩やかな凹み等の検出に適用可能であることが明らかである。ただし、FFT→空間周波数フィルタリング→IFFT→複素相関による上述した分析は、形状の変化が比較的緩やかな異常領域Aaのみならず、別の種類の異常領域Aaの検出にも適用することができる。
以上、説明したように、本実施形態では、フーリエ変換部105aが、時間相関画像(複素画像)を高速フーリエ変換(フーリエ変換)して複素スペクトルを得て、フィルタ部105bが、複素スペクトルを式(12)の複素周期関数の位相ωf・ψに対応した複数の空間周波数フィルタSFF(ψ)によって複数の複素周波数成分を抽出し、逆フーリエ変換部105cが、複数の複素周波数成分をそれぞれ逆フーリエ変換し絶対値を求めて複数の式(11)の複素画像振幅Fψ(x,y)を得て、複素相関画像算出部105dが、式(11)の複素画像振幅Fψ(x,y)と式(12)の複素周期関数との複素相関画像Ff(x,y)(式(13))を算出する。このような処理によれば、例えば、新規な概念である複素相関画像Ff(x,y)に基づいて、従来の手法では見つかり難かった異常領域Aa、一例としては、形状の変化が比較的緩やかな異常領域Aaを、より容易にあるいはより確実に判別することができる。
また、本実施形態では、複数の空間周波数フィルタSFF(ψ)は、例えば、同一形状で複素周波数平面の原点O回りの偏角が異なるフィルタである。このような複数の空間周波数フィルタSFF(ψ)を適用することにより、従来の手法では見つかり難かった異常領域Aa、一例としては、形状の変化が比較的緩やかな異常領域Aaを、より容易にあるいはより確実に判別することができる。なお、空間周波数フィルタSFF(ψ)の形状は半円状には限定されず、例えば、四角形などの多角形状であってもよいし、その他の種々の形状を採用することができる。また、空間周波数フィルタSFF(ψ)は原点Oを挟む両側に渡って設けられてもよい。
また、本実施形態では、異常判別部105fは、特徴領域Arの少なくとも一部が対象領域Ao(所定の領域)に含まれていた場合に(場所の条件)、当該特徴領域Arを異常領域Aaと判別してもよいし、異常判別部105fは、特徴領域Arの広さが所定の範囲内である場合に(広さの条件)、当該特徴領域Arを異常領域Aaと判別してもよい。よって、本実施形態によれば、例えば、特徴領域Arの出現した場所や、広さに応じて、異常領域Aaをより精度良く検出することができる。なお、場所の条件と広さの条件は、OR条件(論理和)であってもよい。また、場所(位置)や広さ(大きさ)以外のスペック(例えば、形状や、延びる方向等)を条件として、異常領域Aaを判別してもよい。また、これら各条件の種々の組み合わせにより、異常領域Aaを判別してもよい。
なお、上述した実施形態のPC100で実行される検査プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、上述した実施形態のPC100で実行される検査プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述した実施形態のPC100で実行される検査プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
図21は、検査システムにおいて適用可能な空間周波数フィルタSFF(ψ)(ψ=0,1,・・・,i,・・・,α)の別の一例を示す説明図である。図21の例では、複数(α個)の空間周波数フィルタSFF(ψ)は、複素周波数平面の原点からの半径r(ψ)が異なり径方向の幅Wが同一の環状のフィルタである。幅Wの円環状の領域が通過領域であり、円環状の領域の内側および外側の部分が遮断領域である。この場合、空間周波数フィルタSFF(ψ)の半径r(ψ)は、例えば、次の式(18)で表される。
r(ψ)=r0+c・ωf・ψ ・・・ (18)
図21の複数の空間周波数フィルタSFF(ψ)も、式(12)の複素周期関数の位相ωf・ψに対応したフィルタであると言える。上述した例に限らず、複素周期関数の位相ωf・ψに対応して位置や、姿勢(偏角)、大きさ等のスペックが変化する空間周波数フィルタSFF(ψ)は、種々に設定することができる。
本発明のいくつかの実施形態及び変形例を説明したが、これらの実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態及び変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。例えば、本発明は、時間相関画像以外の複素画像にも適用可能である。