(57)【要約】【課題】過検出の発生を抑制すること。【解決手段】実施形態の検査システムは、被検査体に対して光の強度の周期的な時間変化および空間変化を与える面的な照明部と、時間相関カメラまたはそれと等価な動作をする撮像システムから被検査体の撮像結果として出力される複素時間相関画像データに基づいて、振幅、位相、または強度にかかる画像を生成する画像生成部と、画像生成部によって生成された画像からエッジを抽出するエッジ抽出部と、それぞれがエッジを構成する画素からエッジによって分割された２つの領域のうちの予め決められた領域に隣接する向きに延びる複数の探索領域を設定し、被検査体の異常を映した異常領域を複数の探索領域に基づいて探索する探索部と、を備える。【選択図】図１
2019174288.tif 000002
【特許請求の範囲】
【請求項１】
被検査体に対して光の強度の周期的な時間変化および空間変化を与える面的な照明部と、
時間相関カメラまたはそれと等価な動作をする撮像システムから前記被検査体の撮像結果として出力される複素時間相関画像データに基づいて、振幅、位相、または強度にかかる画像を生成する画像生成部と、
前記画像生成部によって生成された前記画像からエッジを抽出するエッジ抽出部と、
それぞれが前記エッジを構成する画素から前記エッジによって分割された２つの領域のうちの予め決められた領域に隣接する向きに延びる複数の探索領域を設定し、前記被検査体の異常を映した異常領域を前記複数の探索領域に基づいて探索する探索部と、
を備えた検査システム。
【請求項２】
前記探索部は、前記複数の探索領域のうちの第１の向きに延びる第１の探索領域が、前記複数の探索領域のうちの前記第１の向きの逆向きを中心とした所定の角度範囲内の第２の向きに延びる第２の探索領域と少なくとも一部が重複するか否かに基づいて前記異常領域を探索する、
請求項１に記載の検査システム。
【請求項３】
前記探索部は、前記第１の探索領域と前記第２の探索領域とが重複する場合、前記第１の探索領域と前記第２の探索領域との両方に含まれる第１の領域を前記異常領域として検出する、
請求項２に記載の検査システム。
【請求項４】
前記探索部は、前記第１の領域から前記第１の向きの逆向きに延びる第３の探索領域を設定し、前記第１の探索領域と前記第３の探索領域との両方に含まれる第２の領域を前記異常領域として検出する、
請求項３に記載の検査システム。
【請求項５】
前記画像は振幅にかかる画像である、
請求項１から４の何れか一項に記載の検査システム。
【請求項６】
被検査体が映っている画像からエッジを抽出するエッジ抽出部と、
それぞれが前記エッジを構成する画素から前記エッジによって分割された２つの領域のうちの予め決められた領域に隣接する向きに延びる複数の探索領域を設定し、前記被検査体の異常を映した異常領域を前記複数の探索領域に基づいて探索する探索部と、
を備えた検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、検査システムに関する。
【背景技術】
【０００２】
従来、周期的に変化する光を被検査体に照射し、当該被検査体の表面からの反射光を撮像することで、光の強度のみならず、光の時間遷移に関する情報をも含んだ時間相関画像を取得する技術が提案されている。このような時間相関画像は、たとえば、被検査体の異常（欠陥）を検出するために用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５６６９０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
時間相関画像を用いた異常検出では、例えば、輝度値が急峻に変化する箇所が欠陥として検出される。しかしながら、欠陥が生じている箇所だけでなく被検査体と背景との境界などにおいても輝度値が急峻に変化する場合がある。よって、たとえ欠陥がなくても欠陥があるものとして検出される過検出が発生しうる。このような過検出は、できるだけ抑制することが望まれる。
【課題を解決するための手段】
【０００５】
実施形態の検査システムは、被検査体に対して光の強度の周期的な時間変化および空間変化を与える面的な照明部と、時間相関カメラまたはそれと等価な動作をする撮像システムから被検査体の撮像結果として出力される複素時間相関画像データに基づいて、振幅、位相、または強度にかかる画像を生成する画像生成部と、画像生成部によって生成された画像からエッジを抽出するエッジ抽出部と、それぞれがエッジを構成する画素からエッジによって分割された２つの領域のうちの予め決められた領域に隣接する向きに延びる複数の探索領域を設定し、被検査体の異常を映した異常領域を複数の探索領域に基づいて探索する探索部と、を備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態の検査システムの構成例を示した図である。
【図２】図２は、実施形態の時間相関カメラの構成を示したブロック図である。
【図３】図３は、実施形態の時間相関カメラで時系列順に蓄積されたフレームを表した概念図である。
【図４】図４は、実施形態の照明装置が照射する縞パターンの一例を示した図である。
【図５】図５は、実施形態の時間相関カメラによる、被検査体の異常の第１の検出例を示した図である。
【図６】図６は、実施形態において、図５に示される異常が被検査体にある場合に、当該異常に応じて変化する、光の振幅の例を表した図である。
【図７】図７は、実施形態の時間相関カメラによる、被検査体の異常の第２の検出例を示した図である。
【図８】図８は、実施形態の時間相関カメラによる、被検査体の異常の第３の検出例を示した図である。
【図９】図９は、実施形態の照明制御部が照明装置に出力する縞パターンの例を示した図である。
【図１０】図１０は、実施形態のスクリーンを介した後の縞パターンを表した波の形状の例を示した図である。
【図１１】図１１は、実施形態の画像生成部によって生成された振幅画像の一例を示す図である。
【図１２】図１２は、実施形態の検査システムが被検査体の検査を行う際に実行する一連の動作を示したフローチャートである。
【図１３】図１３は、実施形態の検査システムが実行する異常検出処理を詳細に示したフローチャートである。
【図１４】図１４は、実施形態において使用される微分フィルタの具体例を示した図である。
【図１５】図１５は、図１１に例示された振幅画像から実施形態のエッジ抽出部によって生成されたエッジ画像を示す図である。
【図１６】図１６は、実施形態の探索部によって使用される、判定結果のパターンと隣接向きとの対応の一例を説明するための図である。
【図１７】図１７は、実施形態の探索部によって演算される隣接向きの具体例を説明するための図である。
【図１８】図１８は、実施形態の探索部による探索領域の設定例を説明するための図である。
【図１９】図１９は、実施形態の１時画像に設定された探索領域と７時画像に設定された探索領域とを重ね合わせた図である。
【図２０】図２０は、実施形態の探索部による設定される逆向き探索領域の設定例を説明するための図である。
【図２１】図２１は、実施形態の探索部によって特定される第２領域を説明するために図である。
【図２２】図２２は、実施形態の検査システムによって検出される異常を説明するための図である。
【図２３】図２３は、実施形態の検査システムによって検出される異常を説明するための図である。
【図２４】図２４は、実施形態の検査システムによって検出される異常領域を説明するための図である。
【図２５】図２５は、第２変形例の照明制御部が出力する縞パターンの切り替え例を示した図である。
【図２６】図２６は、第２変形例の照明制御部が、異常（欠陥）を含めた表面に縞パターンを照射した例を示した図である。
【図２７】図２７は、第２変形例において、ｙ方向に縞パターンを変化させた場合における、異常（欠陥）とスクリーン上の縞パターンの関係を示した図である。
【図２８】図２８は、第３変形例の照明制御部が照明装置に出力する縞パターンの例を示した図である。
【発明を実施するための形態】
【０００７】
（実施形態）
以下、実施形態の検査システムについて説明する。実施形態の検査システムは、被検査体（ワーク）を検査するために様々な構成を備えている。図１は、実施形態の検査システムの構成例を示した図である。図１に示されるように、実施形態の検査システムは、ＰＣ１００と、時間相関カメラ１１０と、照明装置１２０と、スクリーン１３０と、アーム１４０と、を備えている。
【０００８】
アーム１４０は、被検査体１５０を固定するために用いられ、ＰＣ１００からの制御に応じて、時間相関カメラ１１０が撮像可能な被検査体１５０の表面の位置と向きを変化させる。
【０００９】
照明装置１２０は、被検査体１５０に光を照射する装置であって、ＰＣ１００からの縞パターンに従って、照射する光の強度を領域単位で制御できる。さらに、照明装置１２０は、周期的な時間の遷移に従って当該領域単位の光の強度を制御できる。換言すれば、照明装置１２０は、光の強度の周期的な時間変化および空間変化を与えることができる。なお、具体的な光の強度の制御手法については後述する。
【００１０】
スクリーン１３０は、照明装置１２０から出力された光を拡散させた上で、被検査体１５０に対して面的に光を照射する。実施形態のスクリーン１３０は、照明装置１２０から入力された周期的な時間変化および空間変化が与えられた光を、面的に被検査体１５０に照射する。なお、照明装置１２０とスクリーン１３０との間には、集光用のフレネルレンズ等の光学系部品（図示されず）が設けられてもよい。
【００１１】
なお、実施形態は、照明装置１２０とスクリーン１３０とを組み合わせて、光強度の周期的な時間変化および空間変化を与える面的な照明部を構成する例について説明するが、実施形態の照明部は、このような組み合わせに制限されるものではない。実施形態では、たとえば、ＬＥＤを面的に配置したり、大型モニタを配置したりするなどして、照明部を構成してもよい。
【００１２】
図２は、実施形態の時間相関カメラ１１０の構成を示したブロック図である。時間相関カメラ１１０は、光学系２１０と、イメージセンサ２２０と、データバッファ２３０と、制御部２４０と、参照信号出力部２５０と、を備えている。
【００１３】
光学系２１０は、撮像レンズ等を含み、時間相関カメラ１１０の外部の被写体（被検査体１５０を含む）からの光束を透過し、その光束により形成される被写体の光学像を結像させる。
【００１４】
イメージセンサ２２０は、光学系２１０を介して入射された光の強弱を光強度信号として画素毎に高速に出力可能なセンサとする。
【００１５】
実施形態の光強度信号は、検査システムの照明装置１２０が被写体（被検査体１５０を含む）に対して光を照射し、当該被写体からの反射光を、イメージセンサ２２０が受け取ったものである。
【００１６】
イメージセンサ２２０は、たとえば従来のものと比べて高速に読み出し可能なセンサであり、行方向（ｘ方向）、列方向（ｙ方向）の２種類の方向に画素が配列された２次元平面状に構成されたものとする。そして、イメージセンサ２２０の各画素を、画素Ｐ（１，１），……，Ｐ（ｉ，ｊ），……，Ｐ（Ｘ，Ｙ）とする（なお、実施形態の画像サイズをＸ×Ｙとする。）。なお、イメージセンサ２２０の読み出し速度を制限するものではなく、従来と同様であってもよい。
【００１７】
イメージセンサ２２０は、光学系２１０によって透過された、被写体（被検査体１５０を含む）からの光束を受光して光電変換することで、被写体から反射された光の強弱を示した光強度信号（撮像信号）で構成される、２次元平面状のフレームを生成し、制御部２４０に出力する。実施形態のイメージセンサ２２０は、読み出し可能な単位時間毎に、当該フレームを出力する。
【００１８】
実施形態の制御部２４０は、たとえばＣＰＵ、ＲＯＭ、およびＲＡＭ等で構成され、ＲＯＭに格納された検査プログラムを実行することで、転送部２４１と、読出部２４２と、強度画像用重畳部２４３と、第１の乗算器２４４と、第１の相関画像用重畳部２４５と、第２の乗算器２４６と、第２の相関画像用重畳部２４７と、画像出力部２４８と、を実現する。なお、ＣＰＵ等で実現することに制限するものではなく、ＦＰＧＡ、またはＡＳＩＣで実現してもよい。
【００１９】
転送部２４１は、イメージセンサ２２０から出力された、光強度信号で構成されたフレームを、データバッファ２３０に、時系列順に蓄積する。
【００２０】
データバッファ２３０は、イメージセンサ２２０から出力された、光強度信号で構成されたフレームを、時系列順に蓄積する。
【００２１】
図３は、実施形態の時間相関カメラ１１０で時系列順に蓄積されたフレームを表した概念図である。図３に示されるように、実施形態のデータバッファ２３０には、時刻ｔ（ｔ＝ｔ０，ｔ１，ｔ２，……，ｔｎ）毎の複数の光強度信号Ｇ（１，１，ｔ），……，Ｇ（ｉ，ｊ，ｔ），……，Ｇ（Ｘ，Ｙ，ｔ）の組み合わせで構成された複数のフレームＦｋ（ｋ＝１，２，……，ｎ）が、時系列順に蓄積される。なお、時刻ｔで生成される一枚のフレームは、光強度信号Ｇ（１，１，ｔ），……，Ｇ（ｉ，ｊ，ｔ），……，Ｇ（Ｘ，Ｙ，ｔ）で構成される。
【００２２】
実施形態の光強度信号（撮像信号）Ｇ（１，１，ｔ），……，Ｇ（ｉ，ｊ，ｔ），……，Ｇ（Ｘ，Ｙ，ｔ）には、フレームＦｋ（ｋ＝１，２，……，ｎ）を構成する各画素Ｐ（１，１），……，Ｐ（ｉ，ｊ），……，Ｐ（Ｘ，Ｙ）が対応づけられている。
【００２３】
イメージセンサ２２０から出力されるフレームは、光強度信号のみで構成されており、換言すればモノクロの画像データとも考えることができる。なお、実施形態は、解像度、感度、およびコスト等を考慮して、イメージセンサ２２０がモノクロの画像データを生成する例について説明するが、イメージセンサ２２０としてモノクロ用のイメージセンサに制限するものではなく、カラー用のイメージセンサを用いてもよい。
【００２４】
図２に戻り、実施形態の読出部２４２は、データバッファ２３０から、光強度信号Ｇ（１，１，ｔ），……，Ｇ（ｉ，ｊ，ｔ），……，Ｇ（Ｘ，Ｙ，ｔ）をフレーム単位で、時系列順に読み出して、第１の乗算器２４４と、第２の乗算器２４６と、強度画像用重畳部２４３と、に出力する。
【００２５】
実施形態の時間相関カメラ１１０は、読出部２４２の出力先毎に画像データを生成する。換言すれば、時間相関カメラ１１０は、３種類の画像データを生成する。
【００２６】
実施形態の時間相関カメラ１１０は、３種類の画像データとして、強度画像データと、２種類の時間相関画像データと、を生成する。なお、実施形態は、強度画像データと、２種類の時間相関画像データと、を生成することに制限されるものではなく、強度画像データを生成しない場合や、１種類又は３種類以上の時間相関画像データを生成する場合なども考えられる。
【００２７】
実施形態のイメージセンサ２２０は、上述したように単位時間毎に、光強度信号で構成されたフレームを出力している。しかしながら、通常の画像データを生成するためには、撮像に必要な露光時間分の光強度信号が必要になる。そこで、実施形態では、強度画像用重畳部２４３が、撮像に必要な露光時間分の複数のフレームを重畳して、強度画像データを生成する。なお、強度画像データの各画素値（光の強度を表す値）Ｇ（ｘ，ｙ）は、以下に示す式（１）から導き出すことができる。なお、露光時間は、ｔ０とｔｎの時間差とする。
【００２８】
【数１】
2019174288.tif 000003
【００２９】
これにより、従来のカメラの撮像と同様に、被写体（被検査体１５０を含む）が撮像された強度画像データが生成される。そして、強度画像用重畳部２４３は、生成した強度画像データを、画像出力部２４８に出力する。
【００３０】
時間相関画像データは、時間遷移に応じた光の強弱の変化を示す画像データである。つまり、実施形態では、時系列順のフレーム毎に、当該フレームに含まれる光強度信号に対して、時間遷移を示した参照信号を乗算し、参照信号と光強度信号との乗算結果である時間相関値で構成された、時間相関値フレームを生成し、複数の時間相関値フレームを重畳することで、時間相関画像データを生成する。
【００３１】
ところで、時間相関画像データを用いて、被検査体１５０の異常を検出するためには、イメージセンサ２２０に入力される光強度信号を、参照信号に同期させて変化させる必要がある。このため、実施形態の照明装置１２０は、上述したように、スクリーン１３０を介して周期的に時間変化および縞の空間的な移動を与えるような、面的な光の照射を行うように構成される。
【００３２】
実施形態では、２種類の時間相関画像データを生成する。参照信号は、時間遷移を表した信号であればよいが、実施形態では、複素正弦波ｅ-jωtを用いる。なお、角周波数ω、時刻ｔとする。参照信号を表す複素正弦波ｅ-jωtが、上述した露光時間（換言すれば強度画像データ、および時間相関画像データを生成するために必要な時間）の一周期と相関をとるように、角周波数ωが設定されるものとする。換言すれば、照明装置１２０およびスクリーン１３０等の照明部によって形成された面的かつ動的な光は、被検査体１５０の表面（反射面）の各位置で第１の周期（時間周期）での時間的な照射強度の変化を与えるとともに、表面に沿った少なくとも一方向に沿った第２の周期（空間周期）での空間的な照射強度の増減分布を与える。この面的な光は、表面で反射される際に、当該表面のスペック（法線ベクトルの分布等）に応じて複素変調される。時間相関カメラ１１０は、表面で複素変調された光を受光し、第１の周期の参照信号を用いて直交検波（直交復調）することにより、複素信号としての時間相関画像データを得る。このような複素時間相関画像データに基づく変復調により、表面の法線ベクトルの分布に対応した特徴を検出することができる。
【００３３】
複素正弦波ｅ-jωtは、ｅ-jωt＝ｃｏｓωｔ−ｊ・ｓｉｎωｔと表すこともできる。従って、時間相関画像データの各画素値Ｃ（ｘ，ｙ）は、以下に示す式（２）から導き出すことができる。
【００３４】
【数２】
2019174288.tif 000004
【００３５】
実施形態では、式（２）において、実部を表す画素値Ｃ１（ｘ，ｙ）と、虚部を表す画素値Ｃ２（ｘ，ｙ）と、に分けて、２種類の時間相関画像データを生成する。
【００３６】
このため、参照信号出力部２５０は、第１の乗算器２４４と、第２の乗算器２４６と、に対してそれぞれ異なる参照信号を生成し、出力する。実施形態の参照信号出力部２５０は、複素正弦波ｅ-jωtの実部に対応する第１の参照信号ｃｏｓωｔを第１の乗算器２４４に出力し、複素正弦波ｅ-jωtの虚部に対応する第２の参照信号ｓｉｎωｔを第２の乗算器２４６に出力する。このように、実施形態の参照信号出力部２５０は、一例として、互いにヒルベルト変換対をなす正弦波および余弦波の時間関数として表される２種類の参照信号を出力する。しかしながら、参照信号は、ここで説明する例に制限されるものではなく、時間関数のような、時間遷移に応じて変化する参照信号であればよい。
【００３７】
そして、第１の乗算器２４４は、読出部２４２から入力されたフレーム単位で、当該フレームの光強度信号毎に、参照信号出力部２５０から入力された複素正弦波ｅ-jωtの実部ｃｏｓωｔを乗算する。
【００３８】
第１の相関画像用重畳部２４５は、撮像に必要な露光時間分の複数のフレームについて、第１の乗算器２４４の乗算結果を画素毎に重畳する処理を行う。これにより、第１の時間相関画像データの各画素値Ｃ１（ｘ，ｙ）が、以下の式（３）から導出される。
【００３９】
【数３】
2019174288.tif 000005
【００４０】
そして、第２の乗算器２４６は、読出部２４２から入力されたフレームの光強度信号に対して、参照信号出力部２５０から入力された複素正弦波ｅ-jωtの虚部ｓｉｎωｔを乗算する。
【００４１】
第２の相関画像用重畳部２４７は、撮像に必要な露光時間分の複数のフレームについて、第２の乗算器２４６の乗算結果を画素毎に重畳する処理を行う。これにより、第２の時間相関画像データの各画素値Ｃ２（ｘ，ｙ）が、以下の式（４）から導出される。
【００４２】
【数４】
2019174288.tif 000006
【００４３】
上述した処理を行うことで、２種類の時間相関画像データ、換言すれば２自由度を有する時間相関画像データを生成できる。
【００４４】
また、実施形態は、参照信号の種類を制限するものでない。たとえば、実施形態では、複素正弦波ｅ-jωtの実部と虚部の２種類の時間相関画像データを生成するが、光の振幅と、光の位相と、による２種類の画像データを生成してもよい。
【００４５】
なお、実施形態の時間相関カメラ１１０は、時間相関画像データとして、複数系統分生成可能とする。これにより、たとえば複数種類の幅の縞が組み合わされた光が照射された際に、上述した実部と虚部とによる２種類の時間相関画像データを、縞の幅毎に生成可能とする。このために、時間相関カメラ１１０は、２個の乗算器と２個の相関画像用重畳部とからなる組み合わせを、複数系統分備えるとともに、参照信号出力部２５０は、系統毎に適した角周波数ωによる参照信号を出力可能とする。
【００４６】
そして、画像出力部２４８が、２種類の時間相関画像データと、強度画像データと、をＰＣ１００に出力する。これにより、ＰＣ１００が、２種類の時間相関画像データと、強度画像データと、を用いて、被検査体１５０の異常を検出する。そのためには、被検査体１５０に対して光を照射する必要がある。
【００４７】
実施形態の照明装置１２０は、高速に移動する縞パターンを照射する。図４は、実施形態の照明装置１２０が照射する縞パターンの一例を示した図である。図４に示す例では、縞パターンをｘ方向にスクロール（移動）させている例とする。白い領域が縞に対応した明領域、黒い領域が縞と縞との間に対応した間隔領域（暗領域）である。
【００４８】
実施形態では、時間相関カメラ１１０が強度画像データおよび時間相関画像データを撮像する露光時間で、照明装置１２０が照射する縞パターンが一周期分移動する。これにより、照明装置１２０は、光の強度の縞パターンの空間的な移動により光の強度の周期的な時間変化を与える。実施形態では、図４の縞パターンが一周期分移動する時間を、露光時間と対応させることで、時間相関画像データの各画素には、少なくとも、縞パターン一周期分の光の強度信号に関する情報が埋め込まれる。
【００４９】
図４に示されるように、実施形態では、照明装置１２０が矩形波に基づく縞パターンを照射する例について説明するが、矩形波以外を用いてもよい。実施形態では、照明装置１２０がスクリーン１３０を介して照射されることで、矩形波の明暗の境界領域をぼかすことができる。
【００５０】
実施形態では、照明装置１２０が照射する縞パターンを、Ａ（１＋ｃｏｓ（ωｔ＋ｋｘ））と表す。すなわち、縞パターンには、複数の縞が反復的に（周期的に）含まれる。なお、被検査体１５０に照射される光の強度は０〜２Ａの間で調整可能とし、光の位相ｋｘとする。ｋは、縞の波数である。ｘは、位相が変化する方向である。
【００５１】
そして、フレームの各画素の光強度信号ｆ（ｘ，ｙ，ｔ）の基本周波数成分は、以下の式（５）として表すことができる。式（５）で示されるように、ｘ方向で縞の明暗が変化する。
【００５２】
ｆ（ｘ，ｙ，ｔ）＝Ａ（１＋ｃｏｓ（ωｔ＋ｋｘ））
＝Ａ＋Ａ／２｛ｅj(ωt+kx)＋ｅ-j(ωt+kx)｝  …（５）
【００５３】
式（５）で示されるように、照明装置１２０が照射する縞パターンの強度信号は、複素数として考えることができる。
【００５４】
そして、イメージセンサ２２０には、当該照明装置１２０からの光が被写体（被検査体１５０を含む）から反射して入力される。
【００５５】
したがって、イメージセンサ２２０に入力される光強度信号Ｇ（ｘ，ｙ，ｔ）を、照明装置１２０が照射された際のフレームの各画素の光強度信号ｆ（ｘ，ｙ，ｔ）とすることができる。そこで、強度画像データを導出するための式（１）に式（５）を代入すると、式（６）を導出できる。なお、位相をｋｘとする。
【００５６】
【数５】
2019174288.tif 000007
【００５７】
式（６）から、強度画像データの各画素には、露光時間Ｔに、照明装置１２０が出力している光の強度の中間値Ａを乗じた値が入力されていることが確認できる。さらに、時間相関画像データを導出するための式（２）に式（５）を代入すると、式（７）を導出できる。なお、ＡＴ／２を振幅とし、ｋｘを位相とする。
【００５８】
【数６】
2019174288.tif 000008
【００５９】
これにより、式（７）で示された複素数で示された時間相関画像データは、上述した２種類の時間相関画像データと置き換えることができる。つまり、上述した実部と虚部とで構成される時間相関画像データには、被検査体１５０に照射された光強度変化における位相変化と振幅変化とが含まれている。換言すれば、実施形態のＰＣ１００は、２種類の時間相関画像データに基づいて、照明装置１２０から照射された光の位相変化と、光の振幅変化と、を検出できる。
【００６０】
そこで、実施形態のＰＣ１００は、時間相関画像データおよび強度画像データに基づいて、画素毎に入る光の位相変化を表した位相画像と、画素毎に入る光の振幅を表した振幅画像と、を生成する。また、ＰＣ１００は、強度画像データに基づいて、画素毎に入る光の強度を表した強度画像を生成する。そして、ＰＣ１００は、位相画像と、振幅画像と、強度画像と、の少なくともいずれかに基づいて、被検査体１５０の異常を検出する。
【００６１】
ところで、被検査体１５０の表面形状に凹凸に基づく異常が生じている場合、被検査体１５０の表面の法線ベクトルの分布には、異常に対応した変化が生じている。また、被検査体１５０の表面に光を吸収するような異常が生じている場合、反射した光の強度に変化が生じる。法線ベクトルの分布の変化は、光の位相変化および振幅変化のうち少なくともいずれか一つとして検出される。そこで、実施形態では、時間相関画像データを用いて、法線ベクトルの分布の変化に対応した、光の位相変化および振幅変化のうち少なくともいずれか一つを検出する。これにより、表面形状の異常が存在する可能性がある領域を特定することが可能となる。以下、被検査体１５０の異常、法線ベクトル、および光の位相変化又は振幅変化の関係について例を挙げて説明する。
【００６２】
図５は、実施形態の時間相関カメラ１１０による、被検査体の異常の第１の検出例を示した図である。図５に示される例では、被検査体５００に突形状の異常５０１がある状況とする。当該状況においては、異常５０１の点５０２の近傍領域においては、法線ベクトル５２１、５２２、５２３が異なる方向を向いていることを確認できる。そして、当該法線ベクトル５２１、５２２、５２３が異なる方向を向いていることで、異常５０１から反射した光に拡散（たとえば、光５１１、５１２、５１３）が生じ、時間相関カメラ１１０のイメージセンサ２２０の任意の画素５３１に入る縞パターンの幅５０３が広くなる。
【００６３】
図６は、図５に示される異常５０１が被検査体５００にある場合に、当該異常に応じて変化する、光の振幅の例を表した図である。図６に示される例では、光の振幅を実部（Ｒｅ）と虚部（Ｉｍ）とに分けて２次元平面上に表している。図６では、図５の光５１１、５１２、５１３に対応する光の振幅６１１、６１２、６１３として示している。そして、光の振幅６１１、６１２、６１３は互いに打ち消し合い、イメージセンサ２２０の当該任意の画素５３１には、振幅６２１の光が入射する。
【００６４】
したがって、図６に示される状況では、被検査体５００の異常５０１が撮像された領域で、局所的に振幅が小さいことが確認できる。換言すれば、振幅変化を示した振幅画像において、周囲と比べて暗くなっている領域がある場合に、当該領域で局所的に光同士の振幅の打ち消し合いが生じていると推測できるため、当該領域に対応する被検査体５００の位置で、異常５０１が生じていると判断できる。なお、ここでは、突形状の異常５０１に対応する領域で、振幅画像が局所的に暗くなる場合を例示したが、キズなどの凹み状の異常に対応する領域でも、振幅画像は局所的に暗くなる。
【００６５】
実施形態の検査システムは、図５の異常５０１のように傾きが急峻に変化しているものに限らず、緩やかに変化する異常も検出できる。図７は、実施形態の時間相関カメラ１１０による、被検査体の異常の第２の検出例を示した図である。図７に示される例では、正常な場合は被検査体の表面が平面（換言すれば法線が平行）となるが、被検査体７００に緩やかな勾配７０１が生じた状況とする。このような状況においては、勾配７０１上の法線ベクトル７２１、７２２、７２３も同様に緩やかに変化する。したがって、イメージセンサ２２０に入力する光７１１、７１２、７１３も少しずつずれていく。図７に示される例では、緩やかな勾配７０１のために光の振幅の打ち消し合いは生じないため、図５、図６で表したような光の振幅はほとんど変化しない。しかしながら、本来スクリーン１３０から投影された光が、そのままイメージセンサ２２０に平行に入るはずが、緩やかな勾配７０１のために、スクリーン１３０から投影された光が平行の状態でイメージセンサ２２０に入らないために、光に位相変化が生じる。従って、光の位相変化について、周囲等との違いを検出することで、図７に示したような緩やかな勾配７０１による異常を検出できる。
【００６６】
また、被検査体の表面形状（換言すれば、被検査体の法線ベクトルの分布）以外にも異常が生じる場合がある。図８は、実施形態の時間相関カメラ１１０による、被検査体の異常の第３の検出例を示した図である。図８に示される例では、被検査体８００に汚れ８０１が付着しているため、照明装置１２０から照射された光が吸収あるいは拡散反射し、時間相関カメラ１１０の、汚れ８０１を撮像している任意の画素領域では光の強度がほとんど変化しない例を表している。換言すれば、汚れ８０１を撮像している任意の画素領域では、光の強度変化が打ち消し合ってキャンセルされ、ほとんど直流的な明るさになる例を示している。
【００６７】
このような場合、汚れ８０１を撮像している画素領域においては、光の振幅がほとんどないため、振幅画像を表示した際に、周囲と比べて暗くなる領域が生じる。したがって、当該領域に対応する被検査体８００の位置に、汚れ８０１があることを推定できる。
【００６８】
このように、実施形態では、時間相関画像データに基づいて、光の振幅の変化と、光の位相の変化と、を検出することで、被検査体における、異常が存在する可能性がある領域を特定することができる。
【００６９】
図１に戻り、ＰＣ１００について説明する。ＰＣ１００は、検出システム全体の制御を行う。ＰＣ１００は、アーム制御部１０１と、照明制御部１０２と、制御部１０３と、を備える。
【００７０】
アーム制御部１０１は、被検査体１５０の時間相関カメラ１１０による撮像対象となる表面を変更するために、アーム１４０を制御する。実施形態では、ＰＣ１００において、被検査体１５０の撮像対象となる表面を複数設定しておく。そして、時間相関カメラ１１０が被検査体１５０の撮像が終了する毎に、アーム制御部１０１が、当該設定に従い、時間相関カメラ１１０が設定された表面を撮像できるようにアーム１４０を制御して、被検査体１５０を移動させる。なお、実施形態によるアーム１４０の移動方法は、撮像が終了する毎にアーム１４０を移動させ、撮像が開始する前に停止させるのを繰り返すことに制限されるものではなく、継続的にアーム１４０を駆動させることも含まれ得る。なお、アーム１４０は、搬送部、移動部、位置変更部、姿勢変更部等とも称されうる。
【００７１】
照明制御部１０２は、被検査体１５０を検査するために照明装置１２０が照射する縞パターンを出力する。実施形態の照明制御部１０２は、少なくとも３枚以上の縞パターンを、照明装置１２０に受け渡し、当該縞パターンを露光時間中に切り替えて表示するように照明装置１２０に指示する。
【００７２】
図９は、照明制御部１０２が照明装置１２０に出力する縞パターンの例を示した図である。図９（Ｂ）に示す矩形波に従って、図９（Ａ）に示す黒領域と白領域とが設定された縞パターンが出力されるように、照明制御部１０２が制御を行う。
【００７３】
実施形態で照射する縞パターン毎の縞の間隔は、検出対象となる異常（欠陥）の大きさに応じて設定されるものとして、ここでは詳しい説明を省略する。
【００７４】
また、縞パターンを出力するための矩形波の角周波数ωは、参照信号の角周波数ωと同じ値とする。
【００７５】
図９に示されるように、照明制御部１０２が出力する縞パターンは、矩形波として示すことができるが、スクリーン１３０を介することで、縞パターンの境界領域をぼかす、すなわち、縞パターンにおける明領域（縞の領域）と暗領域（間隔の領域）との境界での光の強度変化を緩やかにする（鈍らせる）ことで、正弦波に近似させることができる。図１０は、スクリーン１３０を介した後の縞パターンを表した波の形状の例を示した図である。図１０に示されるように波の形状が、正弦波に近づくことで、計測精度を向上させることができる。また、縞に明度が多段階に変化するグレー領域を追加したり、グラデーションを与えたりしてもよい。また、カラーの縞を含む縞パターンを用いてもよい。
【００７６】
図１に戻り、制御部１０３は、画像生成部１０４と、異常検出部１０５と、を備える。制御部１０３は、時間相関カメラ１１０から入力されるデータに基づいて、振幅画像および位相画像と、強度画像とを生成し、生成した画像に基づいて、異常が映っている領域（以下、異常領域と記載する）を検出する。なお、実施形態では、制御部１０３は、振幅成分と位相成分とで分けた極形式の複素数で示される時間相関画像データ（複素時間相関画像データと称されうる）ではなく、当該複素数を実部と虚部とで分けた２種類の時間相関画像データを、時間相関カメラ１１０から受け取るものとする。
【００７７】
画像生成部１０４は、時間相関カメラ１１０から入力されるデータ（強度画像データや時間相関画像データなどといった画像データ）に基づいて、振幅画像、位相画像、および強度画像を生成する。前述したように、振幅画像とは、画素毎に入る光の振幅を表した画像であり、位相画像とは、画素毎に入る光の位相を表した画像であり、強度画像とは、画素毎に入る光の強度を表した画像である。
【００７８】
実施形態は、振幅画像の算出手法を制限するものではないが、たとえば、画像生成部１０４は、２種類の時間相関画像データの画素値Ｃ１（ｘ，ｙ）およびＣ２（ｘ，ｙ）から、下記の式（８）を用いて、振幅画像の各画素値Ｆ（ｘ，ｙ）を導き出すことが可能である。
【００７９】
【数７】
2019174288.tif 000009
【００８０】
また、画像生成部１０４は、画素値Ｃ１（ｘ，ｙ）およびＣ２（ｘ，ｙ）から、下記の式（９）を用いて、位相画像の各画素値Ｐ（ｘ，ｙ）を導き出すことが可能である。
【００８１】
【数８】
2019174288.tif 000010
【００８２】
なお、画像生成部１０４が時間相関カメラ１１０から入力される強度画像データに基づいて強度画像を生成することも可能であることは言うまでもないため、ここでは強度画像の各画素値の導出方法についての説明を省略する。
【００８３】
異常検出部１０５は、画像生成部１０４により生成された振幅画像、位相画像、および強度画像を用いて異常領域を検出する。
【００８４】
図１１は、実施形態の画像生成部１０４によって生成された振幅画像の一例を示す図である。本図の場合、被検査体１５０は自動車のドアノブである。本図に例示されるように、振幅画像１１０１には、被検査体１５０を映したワーク領域１１０２が含まれている。ワーク領域１１０２には周りに比べて暗い円形状の領域（符号１１０３）が含まれている。この領域１１０３は被検査体１５０の撮像面に存在する異常（欠陥）を映した領域（異常領域）である。
【００８５】
さらに、振幅画像１１０１は、被検査体１５０の背景を映した背景領域１１０４を含んでいる。背景領域１１０４は、ワーク領域１１０２に比べて暗く映っている。
【００８６】
このように、振幅画像では、被検査体１５０の撮像面の正常な領域が明るく（白く）映るのに対し、欠陥および背景は暗く（黒く）映る。
【００８７】
従来では、振幅画像、位相画像、および強度画像を原画像とし、原画像に対して例えばガウシアン差分処理などによって輝度値の急峻な変化を検出することで、異常領域を検出していた。しかしながら、この従来の方法によれば、欠陥を映した領域（例えば領域１１０３）を異常領域として検出するだけでなく、ワーク領域（例えばワーク領域１１０２）と背景領域（例えば背景領域１１０４）との境界においても、例え異常がなくても異常があるものとして検出する過検出が発生し得る。
【００８８】
そこで実施形態では、ワーク領域と背景領域との境界において発生する過検出を抑制するために、異常検出部１０５は、エッジ抽出部１０６と、探索部１０７と、を備えることとした。
【００８９】
エッジ抽出部１０６は、原画像からエッジを抽出する。探索部１０７は、エッジを構成する画素（エッジ画素）毎に、エッジ画素が低輝度領域に隣接する向きに延びる探索領域を設定し、複数の探索領域に基づいて被検査体１５０の欠陥を映した異常領域を探索する。エッジ抽出部１０６および探索部１０７が実行する具体的な処理については、検査システムの動作とともに詳しく説明する。
【００９０】
次に、実施形態において実行される検査システムの動作について説明する。図１２は、実施形態の検査システムが被検査体１５０の検査を行う際に実行する一連の動作を示したフローチャートである。以下では、被検査体１５０は、既にアーム１４０に固定された状態で、検査の初期位置に配置されているものとする。
【００９１】
図１２に示されるように、実施形態のＰＣ１００は、まず、照明装置１２０に対して、被検査体を検査するための縞パターンを出力する（Ｓ１２０１）。
【００９２】
照明装置１２０は、ＰＣ１００から入力された縞パターンを格納する（Ｓ１２２１）。そして、照明装置１２０は、格納された縞パターンを、時間遷移に従って変化するように表示する（Ｓ１２２２）。なお、照明装置１２０が表示を開始する条件は、縞パターンが格納されることに制限するものではなく、たとえば検査者が照明装置１２０に対して開始操作を行ったことであってもよい。
【００９３】
そして、ＰＣ１００の制御部１０３は、時間相関カメラ１１０に対して、撮像開始指示を送信する（Ｓ１２０２）。
【００９４】
次に、時間相関カメラ１１０は、送信されてきた撮像開始指示に従って、被検査体１５０および当該被検査体１５０の周囲を含む領域について撮像を開始する（Ｓ１２１１）。そして、時間相関カメラ１１０の制御部２４０は、強度画像データと、時間相関画像データと、を生成する（Ｓ１２１２）。そして、時間相関カメラ１１０の制御部２４０は、強度画像データと、時間相関画像データと、を、ＰＣ１００に出力する（Ｓ１２１３）。
【００９５】
ＰＣ１００の制御部１０３は、強度画像データと、時間相関画像データと、を受け取る（Ｓ１２０３）。そして、画像生成部１０４は、受け取った強度画像データおよび時間相関画像データから、振幅画像、位相画像、および強度画像を生成する（Ｓ１２０４）。
【００９６】
そして、異常検出部１０５は、振幅画像、位相画像、および強度画像から、異常領域を検出する異常検出処理を実行する（Ｓ１２０５）。
【００９７】
図１３は、実施形態の検査システムが実行する異常検出処理を詳細に示したフローチャートである。以下では一例として、振幅画像から異常領域を特定する例について説明する。以下の処理は、振幅画像に替えて、位相画像および強度画像に対して実行することも可能である。
【００９８】
まず、エッジ抽出部１０６は、原画像（振幅画像）に対して微分処理を実行する（Ｓ１３０１）。微分処理では、微分フィルタを用いたフィルタ処理が実行される。
【００９９】
図１４は、実施形態の微分フィルタの具体例を示した図である。図１４に示されるように、実施形態では、ｘ方向の１次微分に対応した微分フィルタ１４０１と、ｙ方向の微分に対応した微分フィルタ１４０２と、の２種類のフィルタが使用される。なお、図１４において、ｋ１およびｋ２は、適宜設定されるフィルタ係数である。
【０１００】
エッジ抽出部１０６は、微分フィルタ１４０１を用いて得られたｘ方向の微分値Ｄｘと、微分フィルタ１４０２を用いて得られたｙ方向の微分値Ｄｙと、を演算する。そして、エッジ抽出部１０６は、ｘ方向の微分値Ｄｘとｙ方向の微分値Ｄｙとの二乗和の平方根を各画素の画素値とした微分画像を生成する。
【０１０１】
なお、異常検出処理の説明において、ｘ方向およびｙ方向は、原画像または原画像から生成される画像（後述のエッジ画像や分割画像）に対して設定された座標軸であり、例えば、図３に示すｘ方向、ｙ方向とそれぞれ対応する。
【０１０２】
Ｓ１３０１に続いて、エッジ抽出部１０６は、微分処理の結果に基づいてエッジを特定する（Ｓ１３０２）。
【０１０３】
例えばＳ１３０２では、エッジ抽出部１０６は、微分画像から、画素値が所定のしきい値より大きい画素を抽出した、エッジ画像を生成する。抽出された画素値が所定のしきい値より大きい画素は、エッジを構成する。以降、エッジを構成する各画素を、エッジ画素、と表記することがある。
【０１０４】
原画像において低輝度領域（黒い領域）と高輝度領域（白い領域）との境界は、エッジとして抽出される。例えば図１１に示される振幅画像１１０１を対象とした場合、Ｓ１３０１およびＳ１３０２の処理によって、図１５のエッジ画像１５０１に示されるように、ワーク領域１１０２と背景領域１１０４との境界に対応したエッジ１５０２と、領域１１０３の輪郭に対応したエッジ１５０３とが抽出される。
【０１０５】
なお、エッジ抽出部１０６によるエッジの抽出方法は、上記した方法に限定されない。エッジ抽出部１０６は、任意のフィルタや演算によってエッジを抽出できる。
【０１０６】
Ｓ１３０２に続いて、探索部１０７は、エッジ画素毎に、低輝度領域に隣接する向きを演算する（Ｓ１３０３）。以降、エッジ画素が低輝度領域に隣接する向きを、隣接向き、と表記することがある。
【０１０７】
実施形態では、隣接向きは、一例として、ｙ軸方向の正の向きを０時の向きとし、３６０度（degree）を１２等分して得られる１２種類の向き（０時〜１１時）を用いて表現される。なお、隣接向きの表現方法はこれに限定されない。隣接向きは、３６０度（degree）を８等分して得られる８種類の向きを用いて表現されてもよい。
【０１０８】
実施形態では、探索部１０７は、以下に述べる方法で隣接向きを演算する。
【０１０９】
まず、探索部１０７は、着目するエッジ画素に対して第１判定から第４判定の４つの判定を実行する。これらの判定では、例えば、エッジ画素のｘ方向の微分値Ｄｘと、エッジ画素のｙ方向の微分値Ｄｙとが使用される。例えば、エッジ抽出部１０６によって演算された各方向の微分値Ｄｘ、Ｄｙが使用され得る。
【０１１０】
第１判定では、Ｄｘ＞０の条件が成立するか否かが判定される。第２判定では、Ｄｙ＞０の条件が成立するか否かが判定される。第３判定では、ａｂｓ（Ｄｘ）＞ａｂｓ（Ｄｙ）の条件が成立するか否かが判定される。第４判定では、ｍａｘ（ａｂｓ（Ｄｘ）、ａｂｓ（Ｄｙ））／ｍｉｎ（ａｂｓ（Ｄｘ）、ａｂｓ（Ｄｙ））＞Ｃの条件が成立するか否かが判定される。ただし、Ｃは予め設定されたしきい値であり、例えば３である。
【０１１１】
ａｂｓは、絶対値を演算する演算子である。ｍａｘ（ａ、ｂ）は、ａとｂのうちの大きい方を演算する演算子である。また、ｍｉｎ（ａ、ｂ）は、ａとｂのうちの小さい方を演算する演算子である。
【０１１２】
上記の４つの判定から、１６通りのパターンに含まれる判定結果が得られる。１６通りのパターンは、１２種類の向きのいずれかと予め対応付けられている。探索部１０７は、４つの判定から得られた判定結果に対応する向きを隣接向きとする。
【０１１３】
図１６は、実施形態の探索部１０７が使用する、判定結果のパターンと隣接向きとの対応の一例を説明するための図である。本図では、各判定において、対応する条件が成立する場合をtrueとし、対応する条件が成立しない場合をfalseとしている。
【０１１４】
図１７は、実施形態の探索部１０７によって演算される隣接向きの具体例を説明するための図である。図１７の（Ａ）〜（Ｃ）に示す各画像１７０１〜１７０３は、原画像（振幅画像）からエッジ画素１７０４〜１７０６の近傍の領域を切り出して拡大した画像を示している。
【０１１５】
図１７（Ａ）に示す画像１７０１では、エッジ画素１７０４の右下に低輝度領域１７０７が広がっており、エッジ画素１７０４の左上に高輝度領域１７０８が広がっている。ｘ軸を基準とした、エッジ画素１７０４近傍でのエッジ１７０９の傾きは約３０度である。この場合、第１判定〜第４判定の判定結果は、すべてfalseとなる。よって、図１６によって規定された関係により、エッジ画素１７０４の隣接向きは「５時」であると判定される。矢印１７１０は、「５時」と判定された隣接向きを示している。
【０１１６】
図１７（Ｂ）に示す画像１７０２では、エッジ画素１７０５の右下に低輝度領域１７１１が広がっており、エッジ画素１７０５の左上に高輝度領域１７１２が広がっている。ｘ軸を基準とした、エッジ画素１７０５近傍でのエッジ１７１３の傾きは約６０度である。この場合、第３判定の判定結果がtrueとなり、第１判定、第２判定、および第４判定の判定結果は、すべてfalseとなる。よって、図１６によって規定された関係により、エッジ画素１７０５の隣接向きは「４時」であると判定される。矢印１７１４は、「４時」と判定された、エッジ画素１７０５の隣接向きを示している。
【０１１７】
図１７（Ｃ）に示す画像１７０３では、エッジ画素１７０６の右に低輝度領域１７１５が広がっており、エッジ画素１７０６の左に高輝度領域１７１６が広がっている。ｘ軸を基準とした、エッジ画素１７０６におけるエッジ１７１７の傾きは約９０度である。この場合、第１判定の判定結果がfalseとなり、第３判定および第４判定の判定結果がtrueとなる。第２判定の判定結果は、エッジ１７１７の傾きが９０度を超えるか否かで変わりうる。この場合、図１６によって規定された関係によれば、第２判定の判定結果にかかわらず、エッジ画素１７０６の隣接向きは「３時」であると判定される。矢印１７１８は、「３時」と判定された、エッジ画素１７０６の隣接向きを示している。
【０１１８】
このように、エッジによって分割されて得られる高輝度領域と低輝度領域とのうちの、低輝度領域に向かう向きが、各エッジ画素の隣接向きとして演算される。
【０１１９】
なお、上記の隣接向きを演算する方法は一例である。隣接向きを演算する方法はこれに限定されない。例えば、探索部１０７は、エッジ画素毎に、エッジの法線を演算し、当該法線が延びる方向のうちの低輝度領域に向かう向きを、隣接向きとしてもよい。
【０１２０】
図１３に戻り、Ｓ１３０３によって全てのエッジ画素の隣接向きが判明した後、探索部１０７は、エッジを隣接向き毎に分割した複数の分割画像（０時画像〜１１時画像）を作成する（Ｓ１３０４）。そして、探索部１０７は、分割画像毎に、隣接向きに延びる探索領域を設定する（Ｓ１３０５）。
【０１２１】
図１８は、実施形態の探索部１０７による探索領域の設定例を説明するための図である。例えば図１８（Ａ）に示す１時画像１８０１では、４つの画素１８０２が隣接向きが１時であるエッジ画素に該当する。探索部１０７は、４つのエッジ画素１８０２を右上に向かって６画素分だけ膨張させることによって、点線で囲まれた探索領域１８０３を設定する。
【０１２２】
また、図１８（Ｂ）に示す７時画像１８０４では、３つの画素１８０５が隣接向きが７時であるエッジ画素に該当する。探索部１０７は、３つのエッジ画素１８０５を左下に向かって６画素分だけ膨張させることによって、探索領域１８０６を設定する。
【０１２３】
なお、図１８の例では、各探索領域１８０３、１８０６は元のエッジ画素１８０２、１８０５を含むものとしているが、各探索領域１８０３、１８０６は元のエッジ画素１８０２、１８０５を必ずしも含まなくてもよい。また、各探索領域１８０３、１８０６の長さ、即ち膨張させる画素数は、６に限定されない。
【０１２４】
また、ここでは、膨張の処理を簡単化するために、エッジ画素の上、右上、右、右下、下、左下、左、および左上に隣接する８つの画素のうちの、隣接向きに最も近い向きに隣接する画素に向かってエッジ画素を膨張させている。例えば、１時画像１８０１の場合、右上に隣接する画素に向かって４つのエッジ画素１８０２を膨張させている。また、７時画像１８０４の場合、左下に隣接する画素に向かって３つのエッジ画素１８０５を膨張させている。なお、隣接向きと厳密に一致する向きにエッジ画素を膨張させてもよい。
【０１２５】
図１３に戻り、探索領域を設定した後、探索部１０７は、第１の向きに延びる探索領域と、第２の向きに延びる探索領域とが重なるか否かに基づいて異常領域を検出する。第２の向きは、第１の向きの逆向きを含む所定角度範囲内の向きである。
【０１２６】
ここでは一例として、第２の向きは、０時〜１１時の１２種類の向きのうち、第１の向きの逆向きを基準として−２時から＋２時までの範囲内の５種類の向きである。例えば第１の向きが１時である場合、５時、６時、７時、８時、および９時が第２の向きに該当する。
【０１２７】
探索部１０７は、変数ｎを０で初期化し（Ｓ１３０６）、Ｓ１３０７〜Ｓ１３１６において、ｎをループインデックスとしたループ処理を実行する。
【０１２８】
ループ処理内の最初の処理では、探索部１０７は、変数ｍにｎ＋４を代入する（Ｓ１３０７）。次に、探索部１０７は、ｍを１２で除算した剰余をｍに代入する（Ｓ１３０８）。
【０１２９】
続いて、探索部１０７は、ｎ時画像に設定された探索領域とｍ時画像に設定された探索領域とが重複する領域を第１領域として特定する（Ｓ１３０９）。
【０１３０】
続いて、探索部１０７は、（ｍ＋４）を１２で除算した剰余がｎと一致するか否かを判定する（Ｓ１３１０）。（ｍ＋４）を１２で除算した剰余がｎと一致しないと判定された場合（Ｓ１３１０：Ｎｏ）、探索部１０７は、ｍをインクリメントし（Ｓ１３１１）、Ｓ１３０８の処理を再び実行する。
【０１３１】
Ｓ１３０７、Ｓ１３０８、Ｓ１３１０およびＳ１３１１の処理によって、探索部１０７は、第１の向き（ｎ時）の逆向きを中心とした−２時から＋２時までの範囲内の５種類の向きを、順次、第２の向き（ｍ時）として選択する。そして、Ｓ１３０９では、探索部１０７は、第１の向きに延びる探索領域（ｎ時画像に設定された探索領域）と、第２の向きに延びる探索領域（ｍ時画像に設定された探索領域）とが重複する領域を第１領域として特定する。
【０１３２】
例えば、ｎが１であり、ｍが７である場合、図１９に示されるように、隣接向きが１時であるエッジ画素１８０２から延びる探索領域１８０３と隣接向きが７時であるエッジ画素１８０５から延びる探索領域１８０６とが重複する斜線を施した領域１９０１が、第１領域として特定される。なお、この例では、領域１９０１は６つの画素によって構成されている。
【０１３３】
第１領域は、最終的に異常領域として出力される領域の一部または全部を構成する。
【０１３４】
図１３に戻り、ｎ時に対応した全ての第２の向きの選択が完了した場合、Ｓ１３１０の処理において、（ｍ＋４）を１２で除算した剰余がｎと一致すると判定される（Ｓ１３１０：Ｙｅｓ）。その場合、探索部１０７は、ｎ時画像から第１領域が特定されたか否かを判定する（Ｓ１３１２）。
【０１３５】
ｎ時画像から第１領域が特定されと判定された場合（Ｓ１３１２：Ｙｅｓ）、探索部１０７は、第１領域から隣接向きとは逆向きに延びる逆向き探索領域を設定する（Ｓ１３１３）。
【０１３６】
そして、探索部１０７は、ｎ時画像の探索領域と、逆向き探索領域と、で重複する領域を、第２領域として特定する（Ｓ１３１４）。
【０１３７】
例えばｎが１である場合、探索部１０７は、図２０に示されるように、領域１９０１に含まれる各画素から左下に向かって６画素分だけ膨張させることによって、逆向き探索領域２００１を設定する。
【０１３８】
ここで、探索領域が設定された際と同様に、探索部１０７は、第１領域内の画素の上、右上、右、右下、下、左下、左、および左上に隣接する８つの画素のうちの、隣接向きの逆向きに最も近い向きに隣接する画素に向かって第１領域の画素を膨張させる。よって、逆向き探索領域２００１は、探索領域１８０３が延びる向きとは反対の向きに延びる。
【０１３９】
探索領域１８０３と逆向き探索領域２００１とで重複する、太線で囲まれた領域２１０１が、第２領域に該当する。なお、第１領域は、第２の領域に包含される。
【０１４０】
Ｓ１３１４の後、またはｎ時画像から第１領域が特定されなかったと判定された場合（Ｓ１３１２：Ｎｏ）、探索部１０７は、ｎが１１と一致するか否かを判定する（Ｓ１３１５）。
【０１４１】
ｎが１１と一致しないと判定された場合（Ｓ１３１５：Ｎｏ）、探索部１０７は、ｎをインクリメントし（Ｓ１３１６）、Ｓ１３０７の処理を再び実行する。
【０１４２】
ｎが１１と一致すると判定された場合（Ｓ１３１５：Ｙｅｓ）、探索部１０７は、Ｓ１３０６〜Ｓ１３１６によって構成されるループ処理を抜けて、分割画像毎に特定された第２領域の論理和を演算する（Ｓ１３１７）。
【０１４３】
そして、論理和によって得られた領域を、異常領域として特定し（Ｓ１３１８）、異常検出処理が終了する。
【０１４４】
以上に述べた異常検出処理では、エッジ画素（第１のエッジ画素とする）に対し、第１のエッジ画素の隣接向きを第１の向きとした場合に、第１のエッジ画素に対して第１の向き側に、隣接向きが第２の向きであるエッジ画素（第２のエッジ画素とする）が存在する場合、第１のエッジ画素と第２のエッジ画素との間の距離に応じて異常を検出することができる。
【０１４５】
第１のエッジ画素と第２のエッジ画素との距離が探索領域の長さ（画素数）Ｌより小さい場合、第１のエッジ画素から第２のエッジ画素までの範囲が第１領域として特定される。つまり、第１のエッジ画素から第２のエッジ画素までを含む範囲が異常領域として検出される。
【０１４６】
よって、例えば、図２２の(Ａ)に示すように、直径ｄがＬより小さい円形の低輝度領域から抽出されたエッジ２２０１の場合、当該エッジ２２０１で囲まれた領域２２０２の全域が第１領域かつ異常領域として特定される。
【０１４７】
第１のエッジ画素と第２のエッジ画素との距離がＬより大きくかつ２Ｌより小さい場合、第１のエッジ画素から第２のエッジ画素までの範囲のうちの中央部分のみが第１領域として特定される。そして、逆向き探索領域を用いた探索処理によって、第１のエッジ画素から第２のエッジ画素までの範囲が第２領域として特定され、その結果、第１のエッジ画素から第２のエッジ画素までの範囲が異常領域として検出される。
【０１４８】
よって、例えば、図２２の（Ｂ）に示すように、直径ｄが、Ｌより大きく、かつ２Ｌより小さい円形の低輝度領域から抽出されたエッジ２２０３の場合、当該エッジ２２０３の中心付近の一部の領域（領域２２０４）が第１領域として特定される。そして、エッジ２２０３によって囲まれた領域２２０５（領域２２０４を含む）が第２領域として特定される。そして、第２領域として特定された領域２２０５が異常領域として特定される。
【０１４９】
さらに、第１のエッジ画素と第２のエッジ画素との距離Ｄが２Ｌより小さい場合、第１のエッジ画素と第２のエッジ画素との間に他のエッジ画素が存在したとしても、第１のエッジ画素と第２のエッジ画素との間の範囲が異常領域として検出される。
【０１５０】
例えば、図２３（Ａ）に示すように、それぞれ円形の低輝度領域から抽出され、Ｌより大きく２Ｌより小さい範囲Ｒ内に隣接して存在する円形のエッジ２３０１、２３０２を考える。その場合、図２３（Ｂ）に示すように、エッジ２３０１によって囲まれた領域２３０３およびエッジ２３０２によって囲まれた領域２３０４だけでなく、エッジ２３０１とエッジ２３０２との間の領域２３０５が第１領域として特定され得る。そして、それぞれの第１領域（領域２３０３、領域２３０４、および領域２３０５）から延びる逆向き探索領域を用いた探索によって、図２３（Ｃ）に示すように、領域２３０３、領域２３０４、および領域２３０５を含む領域２３０６が１つの異常領域として特定される。
【０１５１】
なお、以上の例では、欠陥の形状が円形である場合について説明した。実施形態の異常検出方法では、円形以外の形状の欠陥であっても検出できる。例えば幅が２Ｌよりも小さければ、線形状の欠陥であっても検出できる。
【０１５２】
このように、第１のエッジ画素から隣接向きに向かって２Ｌまでの範囲に第２のエッジ画素が存在する場合、第１のエッジ画素と第２のエッジ画素との間の範囲が異常領域として検出される。
【０１５３】
よって、探索領域の長さＬは、検出したい欠陥のサイズに応じて設定される。例えば、円形状の異常領域の場合、探索領域の長さを７画素分の長さとすることで、直径が１３画素までの異常領域を検出することが可能である。
【０１５４】
逆に、第１のエッジ画素から隣接向きに向かって２Ｌまでの範囲に第２のエッジ画素が存在しない場合、第１領域が特定できない。よって、第１のエッジ画素から隣接向きに延びる領域では、異常領域が検出されない。
【０１５５】
このことを利用して、ワーク領域と背景領域との境界での過検出の発生を抑制することができる。
【０１５６】
ワーク領域と背景領域との境界に対応したエッジでは、各エッジ画素から背景領域に向かって延びる探索領域が設定される。背景領域のサイズは、欠陥のサイズよりも著しく大きい場合がほとんどである。よって、探索領域の長さＬを十分に小さい値とすることで、ワーク領域と背景領域との境界のエッジ画素を第１のエッジ画素としたときに、第１のエッジ画素から隣接向きに向かって２Ｌまでの範囲に第２のエッジ画素を無くすることができる。その場合、ワーク領域と背景領域との境界のエッジ画素から延びる探索領域によって第１領域が特定できないので、ワーク領域と背景領域との境界において異常領域が検出されなくなる。
【０１５７】
例えば、図２４に示す画像２４０１は、図１５のエッジ画像１５０１の一部を切り出して拡大した画像である。本図では、説明を容易にするために、探索領域を、延びる向きを示した矢印形状で図示している。
【０１５８】
ワーク領域と背景領域との境界に対応したエッジ１５０２においては、エッジ画素２４０２から背景領域側に延びる探索領域２４０３が設定される。探索領域２４０３が延びる向きには、エッジ画素２４０２から探索領域の長さの２倍の範囲に第２のエッジ画素が存在しないため、探索領域２４０３は第２のエッジ画素から延びる他の探索領域と重複しない。よって、探索領域２４０３において異常が検出されない。
【０１５９】
ワーク領域と異常（欠陥）を映した領域との境界に対応したエッジ１５０３では、例えばエッジ画素２４０４を第１のエッジ画素とした場合、第２のエッジ画素に相当するエッジ画素２４０５が存在する。エッジ画素２４０４とエッジ画素２４０５との距離は、探索領域の２倍の長さよりも小さく、エッジ画素２４０４から延びる探索領域２４０６とエッジ画素２４０５から延びる探索領域２４０７とが一部で重なっている。よって、エッジ画素２４０４とエッジ画素２４０５とを含むエッジ１５０３では、異常が検出される。
【０１６０】
このように、実施形態の異常検出処理では、ワーク領域と背景領域との境界での過検出の発生を抑制しながら、異常を検出することができる。 
【０１６１】
異常検出処理が終了すると、図１２に戻り、異常検出部１０５は、異常の検出結果を出力する（Ｓ１２０６）。例えば、異常検出部１０５は、ＰＣ１００が備える（図示しない）表示装置などに出力する。
【０１６２】
なお、異常の検出結果の出力方法としては、たとえば、強度画像データを表示するとともに、振幅画像データと位相画像データとに基づいて異常領域が検出された領域に対応する、強度画像データの領域を、検査者が異常領域を認識できるように装飾表示する方法などが考えられる。なお、実施形態では、欠陥の検出結果を視覚的に出力することに限らず、判定結果を音声などにより出力してもよい。
【０１６３】
上記のＳ１２０６の処理が終了すると、制御部１０３は、被検査体１５０の検査が終了したか否かを判定する（Ｓ１２０７）。検査が終了していないと判定された場合（Ｓ１２０７：Ｎｏ）、アーム制御部１０１が、予め定められた設定に従って、次の検査対象となる被検査体１５０の表面が、時間相関カメラ１１０で撮像できるように、アーム１４０の移動制御を行う（Ｓ１２０８）。そして、アーム１４０の移動制御が終了した後、制御部１０３が、再び時間相関カメラ１１０に対して、撮像の開始指示を送信する（Ｓ１２０２）。
【０１６４】
一方、制御部１０３は、当該被検査体の検査が終了したと判定した場合（Ｓ１２０７：Ｙｅｓ）、終了指示を時間相関カメラ１１０に対して出力し（Ｓ１２０９）、処理を終了する。
【０１６５】
そして、時間相関カメラ１１０は、終了指示を受け付けたか否かを判定する（Ｓ１２１４）。終了指示を受け付けていない場合（Ｓ１２１４：Ｎｏ）、再びＳ１２１１から処理を行う。一方、終了指示を受け付けた場合（Ｓ１２１４：Ｙｅｓ）、処理が終了する。
【０１６６】
なお、照明装置１２０の終了処理は、検査者が行ってもよいし、他の構成からの指示に従って終了してもよい。
【０１６７】
以上により、実施形態の検査システムが被検査体の検査を行う際に実行する一連の処理が終了する。
【０１６８】
なお、上述した実施形態では、時間相関カメラ１１０を用いて生成された強度画像データと、時間相関画像データと、を生成する例について説明した。しかしながら、強度画像データと、時間相関画像データと、を生成するために時間相関カメラ１１０を用いることに制限するものではなく、アナログ的な処理で実現可能な時間相関カメラや、それと等価な動作をする撮像システムを用いてもよい。たとえば、通常のデジタルスチルカメラが生成した画像データを出力し、情報処理装置が、デジタルスチルカメラが生成した画像データを、フレーム画像データとして用いて参照信号を重畳することで、時間相関画像データを生成してもよいし、イメージセンサ内で光強度信号に参照信号を重畳するようなデジタルカメラを用いて、時間相関画像データを生成してもよい。
【０１６９】
また、実施形態では、振幅画像から異常領域を検出する例について説明した。しかしながら、異常領域の検出に使用される画像は、振幅画像だけに制限されない。例えば、位相画像や強度画像を異常領域の検出に使用してもよい。
【０１７０】
また、振幅画像、位相画像、または強度画像など、複数種類の画像を異常領域の検出に使用してもよい。例えば、複数種類の画像のそれぞれに対して図１３の処理を実行し、各画像から検出された異常領域の論理和または論理積を、最終的な異常検出結果として出力してもよい。
【０１７１】
また、図１３の処理によって得られた異常領域に対してさらに絞り込みを実行し、絞り込み後の領域を最終的な異常検出結果として出力してもよい。
【０１７２】
また、時間相関カメラまたはそれと等価な動作をする撮像システムから出力される複素時間相関画像データに基づいて生成された画像に限らず、例えば通常のデジタルスチルカメラを用いて撮像された画像を、異常領域の検出に使用してもよい。
【０１７３】
また、異常検出処理の際、探索領域および逆向き探索領域の長さを７画素とした。探索領域および逆向き探索領域の長さはこれに限定されない。探索領域の長さを、隣接向き毎に異ならせてもよい。また、探索領域の長さと逆向き探索領域の長さとを異ならせてもよい。
【０１７４】
また、異常検出処理では、第２領域の特定を必ずしも実行しなくてもよい。例えば、ｎ時画像において第１領域が特定された場合、探索領域を延ばす元の画素から第１領域までの領域を異常領域として特定してもよい。
【０１７５】
また、異常検出処理では、エッジを隣接向き毎に分割した複数の分割画像が作成された。それぞれのエッジ画素の隣接向きおよびそれぞれの探索領域が延びる向きが特定できれば、複数の分割画像を作成しなくてもよい。
【０１７６】
また、異常検出処理では、第１の向きの逆向きを中心とした−２時から＋２時までの範囲内の５種類の向きを第２の向きとした。第２の向きの設定方法はこれに制限されない。第２の向きは、第１の向きの逆向きを含んだ所定の角度範囲にあればよい。また、第１の向きの逆向きのみを第２の向きとしてもよい。
【０１７７】
以上述べたように、実施形態の検査システムは、複素時間相関画像データに基づいて、振幅、位相、または強度にかかる画像を生成する画像生成部１０４と、画像生成部１０４によって生成された画像からエッジを抽出するエッジ抽出部１０６と、それぞれがエッジ画素から低輝度領域に隣接する向きに延びる複数の探索領域を設定し、複数の探索領域に基づいて被検査体１５０の異常を映した異常領域を探索する探索部１０７と、を備える。これにより、図２４を用いて説明したように、ワーク領域とエッジ領域との境界における異常の過検出の発生を抑制することが可能となる。
【０１７８】
なお、実施形態の説明では、エッジ画素から低輝度領域に隣接する向きに延びる探索領域を設定した。探索領域を延ばす向きは、設計により変更され得る。例えば、振幅画像に対して輝度反転を実行した場合、被検査体１５０の撮像面の正常な領域は暗く（黒く）映り、欠陥および背景は明るく（白く）映る。その場合、エッジ画素から高輝度領域に隣接する向きに延びる探索領域が設定されればよい。エッジによって分割されて得られる２つの領域（低輝度領域、高輝度領域）のうちの、正常な領域に対応した領域と異なる領域に隣接する向きを、隣接向きとすればよい。エッジによって分割された低輝度領域と高輝度領域とのうちのいずれを正常な領域に対応した領域とするかは、画像の種類や画像に対して実行された前処理（例えば輝度反転など）に応じて変わり得る。
【０１７９】
また、探索部１０７は、第１の向きに延びる探索領域が、第１の向きの逆向きを中心とした所定の角度範囲内の第２の向きに延びる探索領域と少なくとも一部が重複するか否かに基づいて異常領域を探索する。これにより、探索領域の長さを適切に設定することによって、ワーク領域と背景領域との境界における過検出の発生を抑制することが可能である。
【０１８０】
また、探索部１０７は、第１の向きに延びる探索領域と第２の向きに延びる探索領域とが重複する場合、両方の探索領域に含まれる第１領域を異常領域として検出する。これにより、図２２（Ａ）を用いて説明したように、大きさが探索領域の長さＬよりも小さい異常領域の輪郭を特定することが可能となる。
【０１８１】
また、探索部１０７は、第１領域から第１の向きの逆向きに延びる逆向き探索領域を設定し、探索領域と逆向き探索領域との両方に含まれる第２領域を異常領域として検出する。これにより、図２２（Ｂ）を用いて説明したように、大きさが探索領域の長さＬよりも大きく２Ｌよりも小さい異常領域の輪郭を特定することが可能となる。
【０１８２】
また、例えば、スジ状の異常が発生している場合、その異常は、微小な間隔をあけて離間した複数の異常領域として撮像される場合がある。このような場合、複数の異常領域は、スジ状の１つの異常として特定することが望まれる場合がある。
【０１８３】
実施形態では、図２３を用いて説明したように、探索領域の長さＬの２倍の長さ２Ｌよりも小さい範囲に複数の異常領域が存在した場合、それらの異常領域を１つの異常領域として特定することが可能である。よって、探索領域の長さＬを適切に設定することにより、スジ状の１つの異常領域を構成する複数の異常領域を、１つの異常として特定することが可能となる。
【０１８４】
また、実施形態では、振幅画像を用いて異常領域を特定する例について説明した。振幅画像は、背景領域だけでなく、被検査体１５０の撮像面のうちの正反射面から外れた面も暗く（黒く）映るという性質がある。よって、被検査体１５０の撮像面のうちの正反射面が映っている領域と正反射面から外れた面が映っている領域との境界がエッジとして抽出される場合がある。振幅画像を用いて異常領域を検出する場合、実施形態が適用されることによって、被検査体１５０の撮像面のうちの正反射面が映っている領域と正反射面から外れた面が映っている領域との境界において異常を過検出することを抑制することが可能である。
【０１８５】
以下、実施形態のいくつかの変形例について説明する。
【０１８６】
＜第１変形例＞
上述した実施形態では、位相、振幅および強度の局所的な輝度値の変化（周囲との違い）に基づいて、異常領域を特定する例について説明したが、周囲との違いに基づいて異常領域を特定することに制限するものではない。たとえば、第１変形例として、予め設定（取得）された参照形状のデータ（参照データ）との差異に基づいて異常領域を特定する場合も考えられる。この場合、空間位相変調照明（縞パターン）の位置合わせおよび同期の状況を、参照データを設定（取得）した時の状況に合わせる必要がある。
【０１８７】
第１変形例では、異常検出部１０５が、予め（図示しない）記憶部に記憶された、参照表面から得られた位相画像、振幅画像および強度画像と、被検査体１５０の位相画像、振幅画像および強度画像と、を比較し、被検査体１５０の表面と参照表面との間で、光の位相、振幅および強度のうちいずれか１つ以上について所定の基準以上の違いがあるか否かを判定する。
【０１８８】
以下では、第１変形例において、実施形態と同じ構成の検査システムが用いられ、参照表面の例として、正常な被検査体の表面が用いられるものとする。
【０１８９】
この場合、照明装置１２０がスクリーン１３０を介して縞パターンを照射している間に、時間相関カメラ１１０が、正常な被検査体の表面を撮像し、強度画像データと、時間相関画像データと、を生成する。そして、ＰＣ１００が、時間相関カメラ１１０で生成された強度画像データおよび時間相関画像データから、位相画像、振幅画像および強度画像を生成し、ＰＣ１００の記憶部（図示せず）に、生成した位相画像、振幅画像および強度画像を記憶させておく。
【０１９０】
そして、時間相関カメラ１１０は、異常が存在する可能性の有無を判定したい被検査体を撮像し、強度画像データと、時間相関画像データとを生成する。そして、ＰＣ１００は、強度画像データおよび時間相関画像データから、位相画像、振幅画像および強度画像を生成した後、過去に記憶部に記憶した、正常な被検査体の位相画像、振幅画像および強度画像と、を比較する。
【０１９１】
上記の比較の際において、画像生成部１０４は、正常な被検査体の位相画像、振幅画像および強度画像と、検査対象の被検査体の位相画像、振幅画像および強度画像との差分画像を生成する。異常検出部１０５は、画像生成部１０４によって生成された差分画像に対して図１３に示した処理を実行することで、異常領域を検出することができる。
【０１９２】
このように、正常な被検査体と検査対象の被検査体の画像との差分画像が実施形態の異常検出処理に使用され得る。
【０１９３】
＜第２変形例＞
また、上述した実施形態では、ｘ方向に縞パターンを動かして、被検査体の異常（欠陥）を検出する例について説明した。しかしながら、ｘ方向に垂直なｙ方向で急峻に法線の分布が変化する異常（欠陥）が被検査体に生じている場合、ｘ方向に縞パターンを動かすよりも、ｙ方向に縞パターンを動かす方が欠陥の検出が容易になる場合がある。そこで、第２変形例として、ｘ方向に移動する縞パターンと、ｙ方向に移動する縞パターンとを、交互に切り替える例について説明する。
【０１９４】
第２変形例の照明制御部１０２は、所定の時間間隔毎に、照明装置１２０に出力する縞パターンを切り替える。これにより、照明装置１２０は、１つの検査対象面に対して、異なる方向に延びた複数の縞パターンを出力する。
【０１９５】
図２５は、第２変形例の照明制御部１０２が出力する縞パターンの切り替え例を示した図である。図２５の（Ａ）では、照明制御部１０２は、照明装置１２０が表示する縞パターンをｘ方向に遷移させる。その後、図２５の（Ｂ）に示されるように、照明制御部１０２は、照明装置１２０が表示する縞パターンをｙ方向に遷移させる。
【０１９６】
そして、ＰＣ１００の制御部１０３は、図２５の（Ａ）の縞パターン照射から得られた時間相関画像データに基づいて、異常検出処理を行い、図２５の（Ｂ）の縞パターン照射から得られた時間相関画像データに基づいて、異常検出処理を行う。
【０１９７】
図２６は、第２変形例の照明制御部１０２が、異常（欠陥）２６０１を含めた表面に縞パターンを照射した例を示した図である。図２６に示される例では、異常（欠陥）２６０１が、ｘ方向に延びている。この場合、照明制御部１０２は、ｘ方向に交差するｙ方向、換言すれば異常（欠陥）２６０１の長手方向に交差する方向に縞パターンが移動するように設定する。当該設定により、検出精度を向上させることができる。
【０１９８】
図２７は、図２６において、ｙ方向、換言すれば異常（欠陥）２６０１の長手方向に直交する方向に縞パターンを変化させた場合における、異常（欠陥）２６０１とスクリーン１３０上の縞パターンの関係を示した図である。図２７に示されるように、ｙ方向に幅が狭く、且つ当該ｙ方向に交差するｘ方向を長手方向とする異常（欠陥）２６０１が生じている場合、照明装置１２０から照射された光は、ｘ方向に交差するｙ方向で光の振幅の打ち消しが大きくなる。このため、ＰＣ１００は、ｙ方向に移動させた縞パターンに対応する振幅画像データから、当該異常（欠陥）２６０１を検出することが可能である。
【０１９９】
第２変形例の検査システムにおいて、被検査体に生じる欠陥の長手方向がランダムな場合には、複数方向（例えば、ｘ方向、および当該ｘ方向に交差するｙ方向等）で縞パターンを表示することで、欠陥の形状を問わずに当該欠陥の検出が可能となり、異常（欠陥）の検出精度を向上させることができる。また、異常の形状に合わせた縞パターンを投影することで、異常の検出精度を向上させることができる。
【０２００】
＜第３変形例＞
さらに、実施形態の技術は、上述した第２変形例のような、ｘ方向の異常検出と、ｙ方向の異常検出と、を行うために縞パターンを切り替える技術に制限されるものでない。そこで、第３変形例として、照明制御部１０２が照明装置１２０に出力する縞パターンをｘ方向およびｙ方向に同時に動かす例について説明する。
【０２０１】
図２８は、第３変形例の照明制御部１０２が照明装置１２０に出力する縞パターンの例を示した図である。図２８に示される例では、照明制御部１０２が縞パターンを、方向２８０１に移動させる。
【０２０２】
図２８に示される縞パターンは、ｘ方向では１周期２８０２の縞パターンを含み、ｙ方向では一周期２８０３の縞パターンを含んでいる。つまり、図２８に示される縞パターンは、幅が異なる交差する方向に延びた複数の縞を有している。ここで、第３変形例では、ｘ方向の縞パターンの幅と、ｙ方向の縞パターンの幅と、を異ならせる必要がある。これにより、ｘ方向に対応する時間相関画像データと、ｙ方向に対応する時間相関画像データと、を生成する際に、対応する参照信号を異ならせることができる。なお、縞パターンによる光の強度の変化の周期（周波数）が変化すればよいので、縞の幅を変化させるのに代えて、縞パターン（縞）の移動速度を変化させてもよい。
【０２０３】
そして、時間相関カメラ１１０が、ｘ方向の縞パターンに対応する参照信号に基づいて、ｘ方向の縞パターンに対応する時間相関画像データを生成し、ｙ方向の縞パターンに対応する参照信号に基づいて、ｙ方向の縞パターンに対応する時間相関画像データを生成する。そして、ＰＣ１００の制御部１０３は、ｘ方向の縞パターンに対応する時間相関画像データに基づいて、異常検出処理を行った後、ｙ方向の縞パターンに対応する時間相関画像データに基づいて、異常検出処理を行う。これにより、第３変形例では、欠陥の生じた方向を問わずに検出が可能となり、異常（欠陥）の検出精度を向上させることができる。
【０２０４】
上述した実施形態のＰＣ１００で実行される検査プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０２０５】
また、上述した実施形態のＰＣ１００で実行される検査プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述した実施形態のＰＣ１００で実行される検査プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０２０６】
以上、本発明のいくつかの実施形態および変形例を説明したが、これらの実施形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態および変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２０７】
１００…ＰＣ（検査システム）、１０４…画像生成部、１０５…異常検出部、１０６…エッジ抽出部、１０７…探索部、１１０…時間相関カメラ、１２０…照明装置（照明部）、１３０…スクリーン（照明部）。
【図１】
2019174288.tif 000011
【図２】
2019174288.tif 000012
【図３】
2019174288.tif 000013
【図４】
2019174288.tif 000014
【図５】
2019174288.tif 000015
【図６】
2019174288.tif 000016
【図７】
2019174288.tif 000017
【図８】
2019174288.tif 000018
【図９】
2019174288.tif 000019
【図１０】
2019174288.tif 000020
【図１１】
2019174288.tif 000021
【図１２】
2019174288.tif 000022
【図１３】
2019174288.tif 000023
【図１４】
2019174288.tif 000024
【図１５】
2019174288.tif 000025
【図１６】
2019174288.tif 000026
【図１７】
2019174288.tif 000027
【図１８】
2019174288.tif 000028
【図１９】
2019174288.tif 000029
【図２０】
2019174288.tif 000030
【図２１】
2019174288.tif 000031
【図２２】
2019174288.tif 000032
【図２３】
2019174288.tif 000033
【図２４】
2019174288.tif 000034
【図２５】
2019174288.tif 000035
【図２６】
2019174288.tif 000036
【図２７】
2019174288.tif 000037
【図２８】
2019174288.tif 000038