(57)【特許請求の範囲】
【請求項１】
レーザ光を照射する投光器と、前記投光器からのレーザ光を反射させワークに対して線状に照射するミラーと、前記線状の照射に対しこの照射の移動軌跡が直交する方向に前記ミラーを所定のピッチで揺動させるミラー駆動手段と、前記ミラーと所定の位置関係を保持して前記ミラーの各揺動位置毎に前記ワークを撮影するカメラと、前記照射線の線方向と照射線の移動軌跡の方向を直交２軸とする前記カメラのカメラ座標系上におけるレーザ光検出位置に対応させて前記ミラーの揺動角度を示す値を記憶することによって前記ワークの凹凸形状を求める画像処理ユニットとを設け、完全な形状を有するワークの凹凸形状を前記画像処理ユニットにより予め求めて記憶しておき、その後、検査対象となるワークの凹凸形状を前記画像処理ユニットにより求め、前記カメラ座標系上の各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値との違いを比較して検査対象となるワークの欠陥の有無を検査する三次元形状の欠陥検査方法であって、
前記各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と前記検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値との差分を求めて前記各マトリクス要素に対応させて記憶し、前記照射線の線方向のマトリクス要素中で最頻出する差分の値を前記照射線の方向に並ぶ前記マトリクス要素の列毎に求め、このマトリクス要素の列毎に、前記最頻出する差分の値との偏差が設定値以上に大きな差分を有するマトリクス要素を求めて欠陥候補として記憶し、前記マトリクス上において欠陥候補となるマトリクス要素の全ての存在状態に基いて前記検査対象となるワークの欠陥の有無を判定することを特徴とした三次元形状の欠陥検査方法。
【請求項２】
レーザ光を照射する投光器と、前記投光器からのレーザ光を反射させワークに対して線状に照射するミラーと、前記線状の照射に対しこの照射の移動軌跡が直交する方向に前記ミラーを所定のピッチで揺動させるミラー駆動手段と、前記ミラーと所定の位置関係を保持して前記ミラーの各揺動位置毎に前記ワークを撮影するカメラと、前記照射線の線方向と照射線の移動軌跡の方向を直交２軸とする前記カメラのカメラ座標系上におけるレーザ光検出位置に対応させて前記ミラーの揺動角度を示す値を記憶することによって前記ワークの凹凸形状を求める画像処理ユニットとを設け、完全な形状を有するワークの凹凸形状を前記画像処理ユニットにより予め求めて記憶しておき、その後、検査対象となるワークの凹凸形状を前記画像処理ユニットにより求め、前記カメラ座標系上の各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値との違いを比較して検査対象となるワークの欠陥の有無を検査する三次元形状の欠陥検査方法であって、
前記完全な形状を有するワークの凹凸形状と前記検査対象となるワークの凹凸形状の各々について、前記照射線の方向に並ぶ前記マトリクス要素の列毎に、前記照射線の線方向のマトリクス要素中で最頻出するミラーの揺動角度を示す値を求め、前記完全な形状を有するワークの凹凸形状と前記検査対象となるワークの凹凸形状において、最頻出するミラーの揺動角度を示す値が一致するように、前記照射線の方向に並ぶ前記マトリクス要素の列毎に、前記検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値をシフトさせ、各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と前記検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値とを比較して検査対象となるワークの欠陥の有無を検査することを特徴とした三次元形状の欠陥検査方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、三次元形状の欠陥検査方法の改良に関する。
【０００２】
【従来の技術】
三次元形状によって形成されるワークの表面欠陥を検出するための方法としては、例えば、特開平１０−１００５３号に示されるように、ワークに対してストライプパターンの光線を照射し、そのパターンの境界の変形量や微分値に基いて欠陥検査を行うものが提案されている。
【０００３】
しかし、このものは、単にワーク上の明暗の変化にのみ基いて欠陥の有無を検出するものであるため、複雑な凹凸形状によって影の生じ易い表面を有するワークや、油汚れが付着したり或いはマジックインキによるマーキングが施されたりして表面の濃度に相違を生じているワーク表面の欠陥を検出することは困難であり、往々にして、油汚れが付着したりマジックインキが付着した正常なワークを欠陥品として判定する場合があった。
【０００４】
このような問題を解消するため、三角測量の測距原理を応用した三次元形状の欠陥検査方法が既に開発されている。
【０００５】
ここで、三角測量の測距原理を応用した三次元形状の欠陥検査方法の作用原理について図６（ａ）を参照して簡単に説明する。
【０００６】
図６（ａ）に示されるように、この種の欠陥検査方法を実現するためには、レーザ光を照射する投光器１と、投光器１からのレーザ光を反射させワーク２に対して図６（ａ）の紙面厚み方向（Ｘ軸方向）の幅を持って線状に照射するミラー３と、この線状の照射線に対して照射線の移動軌跡が直交する方向、要するに、図６（ａ）の紙面左右方向（Ｙ軸方向）に向かって照射線が移動する方向にミラー３を所定のピッチで揺動させる図示しないミラー駆動手段、および、ミラー３の揺動位置を検出するための図示しない回転位置検出手段と、ミラー３と所定の位置関係を保持してミラー３の各揺動位置毎にワーク２を撮影するカメラ４と、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするカメラ４のカメラ座標系上におけるレーザ光検出位置のマトリクスに対応させてミラー３の揺動角度を示す値（以下、距離コードという）を記憶することによってワーク２の凹凸形状を求める画像処理ユニット５が必要となる。
【０００７】
図６（ａ）に示されるラインＬ１は、ミラー３で反射されてワーク２を照射するレーザ光の光路であり、また、ラインＬ２はワーク２上に当たったレーザ光とカメラ４とを結ぶ直線である。
【０００８】
ここで、ミラー３とカメラ４との位置関係、つまり、ミラー３とカメラ４とを結ぶ直線の長さは常に一定であり、ミラー３とカメラ４とを結ぶ直線とラインＬ１が成す角はミラー３の揺動角度から容易に求められる。
【０００９】
また、ミラー３とカメラ４とを結ぶ直線とラインＬ２の成す角は、カメラ４のカメラ座標系上のレーザ光検出位置に基いて、ラインＬ２とカメラ４の光軸が成す角として求めることができる。
【００１０】
従って、三角測量の測距原理を応用してカメラ４に対するワーク２の離間距離を求めることが可能であるが、その演算に必要とされる処理が複雑となって演算所要時間が増長されるといった問題があるため、実際には、カメラ４に対するワーク２の離間距離を実際に求める代わりに、この離間距離に関連のあるミラー３の揺動角度の値をカメラ４のカメラ座標系上におけるレーザ光検出位置のマトリクスに対応させて記憶させることで複雑な演算処理を省略し、ワーク２の形状を記憶するようにしている。
【００１１】
例えば、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするカメラ座標系上のマトリクス（Ｘ，Ｙ）が（ｉ１，ｊ１）〜（ｉｎ，ｊｍ）のｎ行ｍ列のマトリクス要素で構成されていると仮定した場合、図６（ａ）の例のようにカメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ）の位置で照射線が検出されたときにミラー３の揺動角度がαであったとすると、カメラ座標系上のマトリクス（ｘ（ｘ＝１〜ｎ），ｊ）のＸ軸方向のｎ個の全てのマトリクス要素にαの値が記憶されることになり、このαの値が一定であることによって照射線の当たっている部分のワーク２（但し、実線で示した形状）の高さが全て同一であると識別することができる。
【００１２】
ここで、仮に、ワーク２の表面の（ｉ，ｊ）の位置に図６（ａ）に示されるような突出部２ｆ（但し、一点鎖線で示した形状）が存在していたとすると、ミラー３の揺動角度がαであるときには突出部２ｆの上面に照射線が当たらず、例えば、ミラー３の揺動角度がα’であるときに突出部２ｆの上面に照射線が当たることになるので、カメラ座標系上のマトリクス（ｘ（ｘ＝１〜ｎ），ｊ）のＸ軸方向のｎ個のマトリクス要素のうち突出部２ｆのある（ｉ，ｊ）の位置にだけα’の値が記憶され、ｘ＝ｉを除く他のマトリクス（ｘ（ｘ＝１〜ｎ），ｊ）のＸ軸方向のｎ−１個のマトリクス要素の全てにαの値が記憶されることになるので、この揺動角度αおよびα’値の相違によってワーク２上の突出部２ｆの存在を確認することができる。
【００１３】
画像処理ユニット５は、ミラー３を揺動させて照射線をＹ軸方向に移動させながら、ミラー３の各揺動位置において、ミラー３の揺動角度つまり距離コードの値をカメラ４のカメラ座標系上におけるレーザ光検出位置のマトリクスに対応させて記憶させるといった処理を前記と同様にして繰り返し実行する。
【００１４】
図７（ａ）は各マトリクス要素の位置に記憶された距離コードの値をグレイスケールの濃度に対応させて、例えば、照射線がワーク２の右端部に位置するときの距離コードの値を０（グレースケールの黒）、また、照射線がワーク２の左端部に位置するときの距離コードの値を２５５（グレースケールの白）として、各マトリクス上の距離コードの値を濃淡化して視覚化した場合の画像の一例である。以下、この種の画像を距離コード画像と呼ぶことにする。
【００１５】
そこで、このような原理を応用してワーク２の表面欠陥を検出する場合には、まず、完全な形状を有するワーク２の凹凸形状を画像処理ユニット５により予め求めておいて、例えば、図７（ａ）に示されるようにして、適切な形状を有するワーク２の距離コード画像を得ておく。以下、この距離コード画像を基準となる距離コード画像と呼ぶ。
【００１６】
次に、検査対象となるワーク２の凹凸形状を画像処理ユニット５により前記と同様にして求め、検査対象となるワーク２の距離コード画像を得る。図７（ｂ）は中央部に欠陥６を有する検査対象のワーク２から得た距離コード画像の一例である。
【００１７】
そして、完全な形状を有するワーク２から得た基準となる距離コード画像に記憶された距離コードと検査対象のワーク２から得た距離コード画像に記憶された距離コードとを各マトリクス要素（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））毎に比較することによって、検査対象となるワーク２上の欠陥の有無を判定するのである。
【００１８】
具体的には、まず、図７（ａ）に示されるような基準となる距離コード画像と図７（ｂ）に示されるような検査対象の距離コード画像とを比較して各マトリクス要素（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））毎に距離コードの差分を求め、この差分を各マトリクス要素（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））に対応させて記憶する。ここで、前記と同様にして、距離コードの差分の大きさをグレイスケールの濃度に対応させて視覚化すれば、例えば、図７（ｃ）に示されるような画像が得られる。以下、この種の画像を差分距離コード画像と呼ぶことにする。
【００１９】
更に、この差分距離コード画像に対してノイズ除去等の画像処理を施せば、欠陥６の部分が図７（ｄ）のように鮮明化し、検査対象となるワーク２上の欠陥の有無を容易に判定することができるようになる。以下、この種の画像を欠陥抽出画像と呼ぶことにする。
【００２０】
このような手法を適用すれば、ワーク２の表面の絶対的な凹凸形状の違いに基いて欠陥の有無が判定されるので、ワーク２上に生じる影や油汚れおよびマジックのマーキング等による画像の濃淡変化による悪影響を大幅に軽減して適切な欠陥検出を行うことが可能となるメリットがある。
【００２１】
【発明が解決しようとする課題】
しかしながら、この種の原理を応用した三次元形状の欠陥検査方法では、ミラー３の揺動位置が極めて的確に制御される必要があり、もし、ミラー３の揺動位置に多少の誤差でもあると、ワーク２の表面形状に関連する距離コードの値に大きな誤差が生じるといった欠点がある。
【００２２】
次に、このような問題が発生する原因について図８を参照して簡単に説明する。図８（ａ）は距離コード画像を取得するワーク２の形状の一例であり、このワーク２は、外周部に断面矩形状の周溝２ａと断面楔形の浅い周溝２ｂとを有し、中央部には、擂鉢状に削られた平坦部２ｃを備える。
図８（ａ）におけるＡ−Ａ’はミラー３から照射されたレーザ光の線方向（Ｘ軸方向）を示し、また、Ｂ−Ｂ’は照射光の移動軌跡の移動方向（Ｙ軸方向）を示している。
【００２３】
ここで、ワーク２上の照射線の線方向（Ｘ軸方向）の各位置のうち直線Ｂ−Ｂ’と重合する部分の平坦部にのみ着目し、図８（ｂ）に、基準温度下（例えば１５℃）で測定したレーザ光検出位置のマトリクスと距離コードとの対応関係のデータを示す。但し、図８（ｂ）ではワーク２の右端部では距離コード０を基準値とする一方、ワーク２の左端部では距離コード２５５を基準値として、これらの値が水平線上に位置するようにしてデータを視覚化している。
【００２４】
この例では、照射光がＢ−Ｂ’上のどの位置を照射しているか、つまり、ミラー３がどのような揺動位置にあるかに関わりなくワーク２の高さは常に一定であるから、照射線の移動軌跡の方向（Ｙ軸方向）を横軸としてワーク２の高さを縦軸（Ｚ軸方向）にとった図８（ｂ）のグラフは、Ｚ＝一定の平坦なグラフとなる。
【００２５】
次に、全く同じワーク２を基準温度よりも高い温度環境下で測定した場合のレーザ光検出位置のマトリクスと距離コードとの対応関係のデータを図８（ｃ）に示す。図８（ｂ）と図８（ｃ）を比較すれば分かる通り、基準温度よりも高い温度環境下で測定された距離コードのデータでは、ワーク２の右端部と左端側で高さが同じになるように距離コードの基準値の調整を行っているにも関わらず、照射線がワーク２の右端側（Ｙ軸＋方向）に移動していくに従って、あたかも、距離コードの値が徐々に増大していくような誤った測定結果が得られている。
【００２６】
これは、前述したミラー３の揺動位置の誤差に起因した測定の異常である。例えば、図６（ｂ）において、ミラー３の正しい揺動位置が３ａにあるべきときにミラー３に温度上昇による位置ズレ誤差が生じて３ｂの位置に移動していたとする。もし、仮にここで、ミラー３が正しい３ａの位置にあってレーザ光がラインＬ１に沿って照射され、カメラ４がカメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ）の位置でレーザ光を捉えることができれば、カメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ）の位置にそのときのミラー３の揺動角度つまり距離コードαの値を対応させて記憶させることができる。
【００２７】
しかし、実際にはミラー３は３ｂの位置に位置ズレしており、レーザ光がラインＬ１’に沿って照射されてカメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ＋Δｊ）の位置で検出されているにも関わらず、画像処理ユニット５自体はそのことを認識せずに、ラインＬ１に沿って照射されたレーザ光がカメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ＋Δｊ）の位置で検出されていると判断するので、結果的に、画像処理ユニット５は、本来、カメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ）の位置に記憶すべき揺動角度に対応した距離コードの値αをカメラ座標系上の（ｘ（ｘ＝１〜ｎ），ｊ＋Δｊ）の位置（本来の距離コードとしてα’が記憶されるべき位置）に対応させて記憶してしまい、図８（ｃ）に示されるような誤った測定結果が取得されてしまうことになる。つまり、カメラ座標系上の右端寄りの位置に本来の値α’よりも大きな値αの距離コードが記憶されてしまうため、図８（ｃ）に示されるような矛盾が生じるのである。なお、図６（ａ）から明らかなように、カメラ座標系上においてＹの値が共通する同一線上の各マトリクス位置、例えば、（ｘ（ｘ＝１〜ｎ），ｊ）の位置では、距離コードの値が小さい部分（α’＜α）の方が表面の高さが高いものとして判断されることになる。
【００２８】
基準温度よりも高温の温度環境下で測定した距離コードに基いて生成された距離コード画像の一例を図９（ａ）に示す。ここで、この図９（ａ）の距離コード画像と基準温度下で生成された図７（ａ）の距離コード画像とを比較して距離コードの差分を求めると、図９（ｂ）のような差分距離コード画像が得られる。図９（ｂ）から明らかなように、前述した距離コードの誤差のため、差分距離コード画像の右側（Ｙ軸＋方向）に行くほど差分の値は大きくなる。そして、この差分距離コード画像に基いて欠陥抽出画像を生成すると、図９（ｃ）に示されるように、本来欠陥が無い右側（Ｙ軸＋方向）の部分に大きな差分を有する面積が残り、この部分が欠陥として抽出されるため、本来良品であるワーク２が不良品として判定されてしまうといった不都合が生じる。
【００２９】
このような問題を解決するための方法の一つとして、基準となる距離コード画像を様々な温度環境下で作成しておき、検査を実施するときの温度環境に応じて基準となる距離コード画像を使い分けるといったことが考えられる。
【００３０】
しかし、基準となる距離コード画像を多数準備しておくためには画像処理ユニット５に大容量のメモリを装備する必要があり、また、同じ日であっても時刻によって環境温度が変化するため、基準となる距離コード画像を一日のうちに何回も再選択する必要が生じ、測定作業が煩わしくなる。
【００３１】
また、これとは逆に、測定環境を支配して温度を一定に保つことも考えられるが、その場合、温度管理のための設備が大掛かりとなる問題がある。
【００３２】
【発明の目的】
そこで、本発明の目的は、前記従来技術の欠点を解消し、温度変化に応じて設定を変えたり、温度環境を積極的に制御したりしなくても、ワーク表面の欠陥検査を的確に実行することのできる三次元形状の欠陥検査方法を提供することにある。
【００３３】
【課題を解決するための手段】
本発明による三次元形状の欠陥検査方法は、レーザ光を照射する投光器と、投光器からのレーザ光を反射させワークに対して線状に照射するミラーと、線状の照射に対しこの照射の移動軌跡が直交する方向にミラーを所定のピッチで揺動させるミラー駆動手段と、前記ミラーと所定の位置関係を保持してミラーの各揺動位置毎にワークを撮影するカメラと、前記照射線の線方向と照射線の移動軌跡の方向を直交２軸とするカメラ座標系上におけるレーザ光検出位置に対応させてミラーの揺動角度を示す値を記憶することによってワークの凹凸形状を求める画像処理ユニットとを設け、完全な形状を有するワークの凹凸形状を前記画像処理ユニットにより予め求めて記憶しておき、その後、検査対象となるワークの凹凸形状を前記画像処理ユニットにより求め、各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値との違いを比較して検査対象となるワークの欠陥の有無を検査する三次元形状の欠陥検査方法であり、前記目的を達成するため、特に、各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値との差分を求めて各マトリクス要素に対応させて記憶し、照射線の線方向のマトリクス要素中で最頻出する差分の値を照射線の方向に並ぶ前記マトリクス要素の列毎に求め、このこのマトリクス要素の列毎に、最頻出する差分の値との偏差が設定値以上に大きな差分を有するマトリクス要素を求めて欠陥候補として記憶し、前記マトリクス上において欠陥候補となるマトリクス要素の全ての存在状態に基いて検査対象となるワークの欠陥の有無を判定することを特徴とした構成を有する。
【００３４】
次に、この発明が如何にして従来技術の問題点を解消するかの作用原理について説明する。
まず、投光器とミラー駆動手段とカメラおよび画像処理ユニットを作動させ、従来と同様にして、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするカメラ座標系のマトリクスに対応させてミラーの揺動角度を示す値つまり距離コードの値を記憶することによって完全な形状を有するワークの凹凸形状を求め、記憶しておく。これにより、例えば、図７（ａ）に示されるような基準となる距離コード画像が得られる。
次に、前記と同様にして再び投光器とミラー駆動手段とカメラおよび画像処理ユニットを作動させ、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするカメラ座標系のマトリクスに対応させて距離コードを記憶することにより、検査対象となるワークの凹凸形状を求める。これにより、例えば、図９（ａ）に示されるような距離コード画像が得られる。通常、基準となる距離コード画像を得たときとは環境温度が相違するので、この図９（ａ）の距離コード画像には、ミラーの位置ズレあるいはミラーの揺動位置を検出する回転位置検出手段の温度ドリフト等による揺動位置の検出誤差（非線型性のズレ，原点ドリフト等）によって距離コードの誤差が生じる。
次に、照射線の線方向と照射線の移動軌跡の方向を直交２軸とする各マトリクス要素毎に、完全な形状を有するワークの距離コードと検査対象となるワークの距離コードとの間の距離コードの差分を求め、この差分を各マトリクス要素に対応させて記憶する。これにより、例えば、図９（ｂ）に示されるような差分距離コード画像が得られる。検査対象となるワークの距離コード画像自体に誤差があるため、距離コードの差分の値は例えば図８（ｃ）に示されるように、ワークの端部にいくに従って増大する。
しかしながら、検査対象となるワークの距離コード画像に誤差が生じる原因は、ミラーの揺動角度のズレ、或いは、揺動角度の誤認識に起因するものであるため、照射線の方向に並ぶ同じ列中のマトリクス要素に対応して記憶された距離コードに関してみると、その誤差の値は一様に等しくなるはずである。例えば、図８（ａ）に示されるワーク２を検査対象とした場合、基準温度下で測定したワーク２の端部の距離コードのデータは、横軸を照射線の線方向（Ｘ軸方向）として図８（ｄ）の破線のようになり、また、基準温度よりも高温の温度環境下で測定した検査対象のワーク２の端部の距離コードのデータは図８（ｄ）の実線のようになるということである。従って、基準温度下で測定したワーク２の距離コードのデータあるいは基準温度よりも高温の温度環境下で測定したワーク２の距離コードのデータの何れか一方をシフトし、図８（ｅ）のようにして両者を重ね合わせて照射線の方向（Ｘ軸方向）に並ぶマトリクス要素の列の各位置毎に距離コードのデータの不一致の有無を判定すれば表面欠陥の有無を判定することができる。
【００３５】
そこで、まず、本発明においては、照射線の線方向のマトリクス要素中で最頻出する差分の値を照射線の方向に並ぶマトリクス要素の列毎に求める。検査対象となるワーク２の表面に全く欠陥が無い場合には、基準温度下で測定したワーク２の距離コードのデータと基準温度よりも高温の温度環境下で測定したワーク２の距離コードのデータをシフトして重ね合わせた場合、図８（ｅ）のように両者が完全に一致するはずであり、この場合、照射線の線方向のマトリクス要素中で現れる差分の値は全て図８（ｄ）のΔＺに相当する値となる。無論、ワーク２の表面に凹凸の欠陥がある場合にはΔＺ以外の差分が検出されることもあるが、ワーク２の表面が大破することは殆ど有り得ないので、ワーク２の表面に凹凸の欠陥があろうとなかろうと、照射線の線方向のマトリクス要素中で最頻出する差分の値は必ず図８（ｄ）のΔＺに相当する値となる。このΔＺは前述したシフト量に相当する値であり、更に言えば、ミラーの位置ズレあるいはミラーの揺動位置を検出する回転位置検出手段の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に起因する距離コードの誤差そのものである。
そこで、次に、照射線の方向に並ぶマトリクス要素の列毎に、前記最頻出する差分の値（ΔＺ）との偏差が設定値以上に大きな差分を有するマトリクス要素を求めて欠陥候補として記憶する。最頻出する差分の値（ΔＺ）との間の偏差が設定値以上に大きな差分を有するマトリクス要素の部分は、距離コードのデータをシフトしても基準温度下で測定したワークの距離コードのデータと基準温度よりも高温の温度環境下で測定したワークの距離コードのデータとが一致しない部分であり、そこに凹凸の形状変形があることを意味する。
最終的に、マトリクス上において欠陥候補となるマトリクス要素の全て、つまり、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするワークの投影面内の全ての欠陥候補の存在状態に基いて、検査対象となるワークの欠陥の有無を判定すればよい。例えば、欠陥候補がピンポイント的に存在する場合には単なる測定ミスであってワークには異常が無いものと判定することが可能であり、また、欠陥候補が或る程度の面積に亘って密集しているような場合には明らかな表面欠陥として判定することが可能である。
このように、照射線の方向に並ぶマトリクス要素の列毎に、ミラーの位置ズレあるいはミラーの揺動位置を検出する回転位置検出手段の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に起因する測距コード誤差の大きさ（ΔＺ）を求め、距離コードのデータを誤差相当量だけシフトさせて基準温度下で測定したワークの距離コードのデータと基準温度よりも高温の温度環境下で測定したワークの距離コードのデータの一致不一致を調べることにより、測定時の温度の差に関わりなく、常に適切な欠陥検査を行うことが可能となる。
基準温度よりも低温の温度環境下で測定を実行する場合も前記と同様にして問題が解決される。
【００３６】
また、前記と同様の目的を達成するため、完全な形状を有するワークの凹凸形状と検査対象となるワークの凹凸形状の各々について、照射線の方向に並ぶマトリクス要素の列毎に、照射線の線方向のマトリクス要素中で最頻出するミラーの揺動角度を示す値を求め、完全な形状を有するワークの凹凸形状と検査対象となるワークの凹凸形状において、最頻出するミラーの揺動角度を示す値が一致するように、照射線の方向に並ぶマトリクス要素の列毎に、検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値をシフトさせ、各マトリクス要素毎に、完全な形状を有するワークに対応して記憶されたミラーの揺動角度を示す値と検査対象となるワークに対応して記憶されたミラーの揺動角度を示す値とを比較して、検査対象となるワークの欠陥の有無を検査する構成を適用してもよい。
【００３７】
この場合、最頻出するミラーの揺動角度を示す値は、ワーク上で照射線の線方向に最大の長さを有する直線部分（但し、その直線部分がカメラの光軸と直交していることが前提）に相当する。従って、完全な形状を有するワークと検査対象となるワークの各々でこの直線部分を特定し、これらの直線が重合するように照射線の方向に並ぶマトリクス要素の列毎にミラーの揺動角度を示す値のデータをシフトして比較すれば、測定時の温度の差に関わりなく、常に適切な欠陥検査を行うことが可能となる。このシフト量は、前述したミラーの位置ズレあるいはミラーの揺動位置を検出する回転位置検出手段の温度ドリフト等による誤差（非線型性のズレ，原点ドリフト等）に起因する距離コード誤差の大きさ（ΔＺ）に等しい。
【００３８】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について詳細に説明する。図１は、本発明による三次元形状の欠陥検査方法を実施するために必要とされる欠陥検査装置７の構成の概略を示した機能ブロック図である。
【００３９】
この欠陥検査装置７は、レーザ光を照射する投光器１と、投光器１からのレーザ光を反射させてワーク２に対し図１のＸ軸の方向に線状に照射するミラー３と、この線状の照射線に対して照射線の移動軌跡が直交する方向、要するに、図１のＹ軸方向に向かって照射線が移動する方向にミラー３を所定のピッチで揺動させるミラー駆動手段としてのガルバノスキャナ８、および、ガルバノスキャナ８に付属してミラー３の揺動位置を検出するための回転位置検出センサ９（回転位置検出手段）と、ミラー３と所定の位置関係を保持してミラー３の各揺動位置毎にワーク２を撮影するカメラ４と、ワーク２を置くためのワーク載置台１１を備える。
また、投光器１，ガルバノスキャナ８，カメラ４の駆動制御手段を兼ねる画像処理ユニット１０は、カメラ４のカメラ座標系上のレーザ光検出位置に対応させてミラー３の揺動角度を示す値（距離コード）を記憶する処理をミラー３を揺動させながら繰り返し実行することにより、照射線の線方向（Ｘ軸方向）と照射線の移動軌跡の方向（Ｙ軸方向）を直交２軸とするカメラ座標系上のマトリクス（Ｘ，Ｙ）に対応させて距離コードを記憶することでワーク２の表面の凹凸形状を求める機能を備える。
【００４０】
このうち、投光器１，ミラー３，カメラ４、および、ミラー駆動手段としてのガルバノスキャナ８と、回転位置検出手段としての回転位置検出センサ９の構造および機能に関しては図６（ａ）に示した従来例と同様であるので説明を省略する。
また、画像処理ユニット１０の構造に関しても、具体的な内部処理とメモリの構成を除けば、図６（ａ）に示した従来例の画像処理ユニット５と概ね同様である。
【００４１】
図２は画像処理ユニット１０の構造の概略を示した機能ブロック図であり、同時に、投光器１，カメラ４，ガルバノスキャナ８，回転位置検出センサ９と画像処理ユニット１０との電気的な接続関係についても示している。
【００４２】
図２に示されるとおり、この画像処理ユニット１０は、概略において、演算処理のためのＣＰＵ１２と、ＣＰＵ１２の制御プログラムを格納したＲＯＭ１３、および、完全な形状を有するワーク２の凹凸形状を記憶するための不揮発性メモリ１４と、演算データの一時記憶等に用いられるＲＡＭ１５とによって構成される。このうち、ＲＡＭ１５内の記憶領域は、差分距離コード画像記憶部１５ａ，バッファ部１５ｂ，ラベル画像記憶部１５ｃ，距離コード画像記憶部１５ｄ，基準距離コード画像記憶部１５ｅ等として利用される。
【００４３】
投光器１，カメラ４，ガルバノスキャナ８の各々は夫々のドライバ回路１６，１７，１８と入出力回路１９を介してＣＰＵ１２によって駆動制御されるようになっており、また、ガルバノスキャナ８の回転位置、要するに、ミラー３の揺動位置は、回転位置検出センサ９によって検出され、Ａ／Ｄ変換器２０および入出力回路１９を介してＣＰＵ１２に認識されるようになっている。
【００４４】
但し、ガルバノスキャナ８の原点位置には温度の違いによるズレが生じる場合があり、また、回転位置検出センサ９自体の検出精度にも温度変化に依存する非線型的なズレが生じる場合があるので、厳密な意味で、ＣＰＵ１２がミラー３の揺動位置を正確に認識できるとは限らない。
従来の技術の項において既に図６（ａ）および図６（ｂ）等を参照して説明した通り、この温度変化によるミラー３の揺動位置のズレ、あるいは、ミラー３の揺動位置を検出する回転位置検出センサ９の温度ドリフト等による検出誤差に起因して、実際の距離コードの値と画像処理ユニット１０が認識する距離コードの値との間に誤差を生じるのである。
【００４５】
ＣＰＵ１２の入出力回路１９には、更に、ドライバ回路２１を介して表示器２２が接続され、最終的に、ＣＰＵ１２の演算処理によって求められたワーク２の表面欠陥の判定結果が表示されるようになっている。
【００４６】
手動データ入力装置２３は、画像処理ユニット１０とオペレータとの間のマン・マシン・インターフェイスを構成するもので、画像処理ユニット１０の起動や測定指令の入力等に利用される。
【００４７】
以下、これらの構成と図３のフローチャートを参照して本実施形態における三次元形状の欠陥検査方法について詳細に説明する。
【００４８】
まず、検査対象となるワーク２の表面の欠陥判定のための前処理として、オペレータは、予め、完全な形状を有するワーク２の凹凸形状を欠陥検査装置７の画像処理ユニット１０に記憶させておく。
【００４９】
具体的には、オペレータは、まず、欠陥検査装置７におけるワーク載置台１１の所定位置に完全な形状を有するワーク２を載置し、手動データ入力装置２３を操作して基準データ入力のための測定指令を入力する。
【００５０】
基準データ入力のための測定指令の入力を検出した画像処理ユニット１０は、投光器１，カメラ４，ガルバノスキャナ８を駆動制御し、従来と同様にして、完全な形状を有するワーク２の凹凸形状を図７（ａ）に示されるような基準となる距離コード画像として画像処理ユニット１０の不揮発性メモリ１４に記憶する。以下、この基準データ入力処理によって完全な形状を有するワーク２の凹凸形状を記憶したときの温度（気温）を基準温度という。この基準温度は欠陥検査装置７が適正に作動する範囲内の温度である必要があるが、その範囲内であれば格別な制限はなく、例えば、ミラー３に多少の原点位置のズレを生じたり回転位置検出センサ９に多少の温度ドリフト等を生じているような状態であっても、事実上差し支えはない。
【００５１】
この実施形態では、ワーク２上の照射線２４の線方向の長さをｎ個に分割した各位置のＸ軸座標の値をカメラ座標系上のマトリクス要素ｉ１〜ｉｎとし、ワーク２の左端からワーク２の右端をレーザ光が照射する揺動位置までの区間をｍ個のステップで分割した各位置のＹ軸座標の値をカメラ座標系上のマトリクス要素ｊ１〜ｊｍとして規定している。つまり、このマトリクス上には全体として（ｉ１，ｊ１）〜（ｉｎ，ｊｍ）のｎ×ｍ個のマトリクス要素が存在することになる。
【００５２】
また、ミラー３の揺動角度を示す距離コードの値は、基準温度下でレーザ光がワーク２の左端を照射するときの値が２５５（グレースケールの白に対応）、また、基準温度下でレーザ光がワーク２の右端を照射するときの値が０（グレースケールの黒に対応）である。
【００５３】
画像処理ユニット１０は、カメラ４のカメラ座標系上のレーザ光検出位置のマトリクスに対応させてミラー３の揺動角度つまり距離コードの値を記憶するので、例えば、ワーク２上に垂直に屹立する面が存在するような場合、つまり、ミラー３の揺動角度が変化してもＸ−Ｙ平面内におけるレーザ光の検出位置が変化しないような場合においては、同一マトリクス上に相異なる距離コードの値が記憶されることになるが、その場合、最終的にこのマトリクスに対応して記憶されるのは最後に入力された距離コードの値である。
【００５４】
図７（ａ）は基準温度下で欠陥検査装置７を作動させたときにカメラ座標系上の各マトリクス要素の位置（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））に記憶された距離コードの値をグレイスケールの濃度に対応させて視覚化した場合の画像であり、これが基準となる距離コード画像である。
但し、図７（ａ）のような距離コード画像は説明の都合上データを視覚化して表示したものに過ぎない。距離コード画像は画像処理ユニット１０の内部処理では単なる数値データとして扱われ、また、不揮発性メモリ１４に記憶される基準となる距離コード画像、つまり、完全な形状を有するワーク２の凹凸形状を表すデータも３次元配列の数値データそのものである。図７（ａ）の距離コード画像を敢えて表示器２２に表示する必要はない。
【００５５】
基準となる距離コード画像の生成に用いられたワーク２は、作業終了後にワーク載置台１１から取り除かれる。
【００５６】
次に、検査対象となるワーク２の表面の欠陥検査を行うため、オペレータは前記と同様にして検査対象となるワーク２をワーク載置台１１に載置し、手動データ入力装置２３を操作して欠陥検査のための測定指令を入力する。
【００５７】
欠陥検査のための測定指令の入力を検出した画像処理ユニット１０は、完全な形状を有するワーク２から得た基準となる距離コード画像を不揮発性メモリ１４からＲＡＭ１５の基準距離コード画像記憶部１５ｅに読み込んだ後（ステップＳ１）、前述した基準データ入力処理の場合と同様、投光器１，カメラ４，ガルバノスキャナ８を駆動制御し、検査対象となるワーク２の凹凸形状を図９（ａ）に示されるような距離コード画像としてＲＡＭ１５の距離コード画像記憶部１５ｄに記憶する（ステップＳ２）。
【００５８】
距離コード画像のデータ配列に関しては前述した基準となる距離コード画像のデータ配列と全く同様であるので、説明を省略する。但し、温度変化等の影響により、例え、検査対象となるワーク２の形状が完全であったとしても、同じマトリクス上において、距離コード画像として記憶された距離コードの値と基準となる距離コード画像として記憶された距離コードの値との間には違いが生じる場合がある。
【００５９】
次いで、画像処理ユニット１０は、完全な形状を有するワーク２から得た基準となる距離コード画像と検査対象となるワーク２から得た距離コード画像との間で距離コードの差分を各マトリクス要素（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））毎に求め、求めた差分の値の各々をマトリクス要素（ｉｘ（ｘ＝１〜ｎ），ｊｙ（ｙ＝１〜ｍ））に対応させてＲＡＭ１５の差分距離コード画像記憶部１５ａに一時記憶する（ステップＳ３）。
【００６０】
前記と同様、距離コードの差分の大きさをグレイスケールの濃度に対応させて視覚化すれば、例えば、図９（ｂ）に示されるような差分距離コード画像が得られることになる。但し、実際には、差分距離コード画像を視覚化して表示器２２に表示する必要はない。
【００６１】
次いで、画像処理ユニット１０は、差分距離コード画像記憶部１５ａに図４（ａ）に示されるような検査ウインドウを設定し（ステップＳ４）、この検査ウインドウ内に含まれる差分の値を全てＲＡＭ１５のバッファ部１５ｂにコピーする（ステップＳ５）。図４（ａ）の差分距離コード画像の内容は図９（ｂ）の差分距離コード画像の内容と同一である。図４（ａ）の検査ウインドウも、前述した距離コード画像や差分距離コード画像と同様に概念上のものであり、実際に表示器２２に表示されるわけではない。実際には、前述したステップＳ４の処理と最初に実行されるステップＳ５の処理によって、カメラ座標系上のマトリクス（ｉ１，ｊ１）〜（ｉｎ，ｊ１）に相当する縦一列分の差分データの各々がバッファ部１５ｂに抽出されることになる。
【００６２】
次いで、画像処理ユニット１０は、バッファ部１５ｂに抽出された全ての差分データに対して昇順または降順のソーティング処理を施し、最頻出する差分データの中央値を求める（ステップＳ６）。
【００６３】
ステップＳ６の処理でソーティングされた差分データの一例を図５に示す。図５の例ではａ１〜ａ２の区間で値の近似する差分が最頻出し、また、これとは別に、ｂ１〜ｂ２の区間でも値の近似する差分が頻出している。ここでは演算処理の簡略化のためａ１〜ａ２の区間で頻出する差分の中央値ａ０を最頻出する差分の値と定めている。
この中央値ａ０の値は、課題を解決するための手段の項において既に説明したΔＺの値、つまり、ミラー３の位置ズレあるいはミラー３の揺動位置を検出する回転位置検出センサ９の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に起因した距離コードの誤差の値であり、もし、検査対象となるワーク２の表面形状が完全なものであれば、この最頻出する差分の値ａ０（＝ΔＺ）の分だけ縦一列分の全ての距離コードの値をシフトさせることによって検査対象となるワーク２から得た距離コードの値と基準となる距離コード画像の距離コードの値とを完全に一致させることのできる値である。
【００６４】
そこで、画像処理ユニット１０は、最頻出する差分の値ａ０との偏差が閾値（例えば図５における設定値ΔＳ）以上に大きな差分を有するマトリクス要素がバッファ部１５ｂ内に存在するか否かを検索し、もし、存在する場合には、この差分を有するマトリクス要素にラベリングを施して欠陥候補として記憶する（ステップＳ７）。
【００６５】
このラベリング処理は、具体的には、差分距離コード画像記憶部１５ａと同様にｎ行ｍ列のマトリクス要素の記憶を許容されたＲＡＭ１５のラベル画像記憶部１５ｃにおいて欠陥候補の対応位置に欠陥候補フラグをセットすることによって達成される。例えば、差分距離コード画像における（ｉ４，ｊ１）スポットと（ｉ５，ｊ１）スポットの差分の値が図５のｂ１〜ｂ２の区間に含まれていたとすれば、ラベル画像記憶部１５ｃにおける（ｉ４，ｊ１）スポットと（ｉ５，ｊ１）スポットに欠陥候補フラグがセットされることになる。欠陥候補フラグをセットされた部分は、前述した差分ａ０（＝ΔＺ）の分だけ距離コードのデータをシフトさせたとしても検査対象となるワーク２から得た距離コードの値を基準となる距離コード画像の距離コードの値に一致させることができない部分であり、要するに、検査対象となるワーク２の表面に欠陥がある可能性を示す部分である。このラベリング処理は、例えば、図８（ｅ）に示されるようにして、基準温度下で測定した欠陥のないワーク２の外形と基準温度よりも高温あるいは低温の温度環境下で測定された検査対象のワーク２の外形とを重ね合わせて両者の外形の相違を検出する作業に実質的に等しい。
【００６６】
次いで、画像処理ユニット１０は、差分距離コード画像記憶部１５ａに記憶された全ての差分に対して欠陥候補の検出処理が終わったか否か、つまり、ｊ＝１〜ｍの全ての列に対して前述したステップＳ５〜ステップＳ７の処理が施されたか否かを判別し（ステップＳ８）、検出処理が終わっていなければ、検査ウインドウの設定位置を列方向、つまり、図４（ａ）の右方向にシフトし（ステップＳ９）、前記と同様にしてステップＳ５〜ステップＳ７の処理を繰り返し実行する。
【００６７】
そして、最終的に、ｊ＝１〜ｍの全ての列に対する欠陥候補の検出処理が終了すると、画像処理ユニット１０は、ラベリングされた全てのマトリクス要素の存在状態、つまり、ラベル画像記憶部１５ｃにおける欠陥候補フラグのセット／非セット状態に基いて検査対象であるワーク２の欠陥の有無を判定し、その結果を表示器２２に表示してオペレータに知らせる（ステップＳ１０）。
【００６８】
前述したステップＳ５〜ステップＳ７の繰り返し処理によってラベル画像記憶部１５ｃに設定された欠陥候補フラグのＯＮ／ＯＦＦ状態の一例を図４（ｂ）に示す。ここでは、この画像のことを欠陥抽出画像と呼ぶことにする。前記と同様、この欠陥抽出画像も概念上のものである。図４（ｂ）では欠陥候補フラグがセットされている部分を白、または、欠陥候補フラグがセットされていない部分を黒で示すことによって欠陥候補フラグのＯＮ／ＯＦＦ状態を視覚化している。図４（ｂ）の例では欠陥候補フラグがセットされている白い部分が極めて微小な面積で飛び飛びに散在しているので、結果的に、画像処理ユニット１０は、この検査対象のワーク２には欠陥がないものと判定し、表示器２２に異常なしのステートメントを表示することになる。
【００６９】
また、欠陥候補フラグがセットされている白い部分が或る程度以上の面積に亘って連続的に存在しているような場合には、前記とは逆に、欠陥ありのステートメントが表示されることになる。
【００７０】
欠陥候補フラグがセットされた部分の面積の大きさに加え、更に、欠陥候補フラグがセットされた部分の全体的な形状を加味して欠陥の有無を判定することも可能である。例えば、欠陥候補フラグがセットされた部分が各軸方向に或る程度以上の長さを持っている場合にはワーク２の表面欠陥として判定することが可能である。
【００７１】
この実施形態の処理操作によって得られた図４（ｂ）の欠陥抽出画像と従来技術によって得られた図９（ｃ）の欠陥抽出画像とを比較すれば明らかなように、この実施形態によれば、ミラー３の位置ズレやミラー３の揺動位置を検出する回転位置検出センサ９の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に起因した距離コードの誤差による判定ミスが解消され、ワーク２の表面欠陥の有無を適切に判定できるようになることが分かる。
その理由は、前述したとおり、基準温度下で測定した欠陥のないワーク２の外形と基準温度よりも高温あるいは低温の温度環境下で測定された検査対象のワーク２の外形とを重ね合わせて両者の外形の相違を検出する作業をデジタル的に実行しているからである。
【００７２】
次に、完全な形状を有するワーク２の凹凸形状と検査対象となるワーク２の凹凸形状の各々について、ミラー３の各揺動位置毎に、照射線２４の線方向つまりＸ軸方向のマトリクス要素中で最頻出する距離コードを求め、完全な形状を有するワーク２の凹凸形状と検査対象となるワーク２の凹凸形状において、最頻出する距離コードが一致するように、ミラー３の各揺動位置毎に、検査対象となるワーク２に対応して取得された距離コードの値をシフトさせ、各マトリクス要素毎に、完全な形状を有するワーク２から取得された距離コードと検査対象となるワーク２から取得された距離コードとを比較することで、検査対象となるワーク２の欠陥の有無を検査するようにした実施形態について簡単に説明する。
【００７３】
このような構成を適用する場合には、まず、完全な形状を有するワーク２を欠陥検査装置７で走査し、基準となる距離コード画像（例えば図７（ａ））を基準距離コード画像記憶部１５ｅに取り込み、更に、検査対象となるワーク２を欠陥検査装置７で走査して、距離コード画像（例えば図９（ａ））を距離コード画像記憶部１５ｄに取り込む。
【００７４】
次に、画像処理ユニット１０により、基準距離コード画像記憶部１５ｅに図４（ａ）に示されるような検査ウインドウを設定し、（ｉ１，ｊ１）〜（ｉｎ，ｊ１）に相当するマトリクス要素の距離コードを抽出し、抽出された全ての距離コードに対して昇順または降順のソーティング処理を施し、最頻出する距離コードを求める。
【００７５】
これにより例えば図５に示されるようなソーティング結果が得られるが、この場合、頻出する距離コードの塊は、カメラ４の光軸に直行する平面の数だけ表れることになる。例えば、図８（ａ）に示されるようなワーク２に対しＡ−Ａ’の位置について見れば、図８（ｄ）に示される面２ｄと平坦部２ｃと周溝２ａの底の部分が頻出する距離コードを有するＸ，Ｙ座標の値となる。傾斜面２ｅの部分は高さが一定ではないので頻出する距離コードとはならず、また、周溝２ｂの部分も２ヶ所に分散された２つの点状の形を有するので面積が非常に小さく、頻出する距離コードを有する座標とはならない。図８（ａ）および図８（ｄ）の例で最頻出する距離コードとなるのは、平坦部２ｃの座標（ワーク２上で照射線の線方向に最大の長さを有する直線部分）に対応して記憶された距離コードであり、この平坦部２ｃの高さによって基準となる正常なワーク２（図８（ｄ）の破線部の形状）の基準面に相当する距離コードの値が特定される。
【００７６】
次に、画像処理ユニット１０により、距離コード画像記憶部１５ｄに図４（ａ）に示されるような検査ウインドウを設定し、（ｉ１，ｊ１）〜（ｉｎ，ｊ１）に相当するマトリクス要素の距離コードを抽出し、抽出された全ての距離コードに対して前記と同様に昇順または降順のソーティング処理を施し、最頻出する距離コードを求める。前記と同様、これにより、ワーク２上で照射線の線方向に最大の長さを有する直線部分からなる平坦部２ｃの高さに基いて検査対象となるワーク２（図８（ｄ）の実線部の形状）の基準面に相当する距離コードの値が特定される。
【００７７】
そこで、次に、完全な形状を有するワーク２において最頻出する距離コードの値から検査対象となるワーク２において最頻出する距離コードの値を減じて図８（ｄ）に示されるような距離コードの差分ΔＺの値を求める。この値ΔＺがミラー３の位置ズレやミラー３の揺動位置を検出する回転位置検出センサ９の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に相当する距離コードの誤差である。
【００７８】
次に、距離コード画像記憶部１５ｄから抽出された（ｉ１，ｊ１）〜（ｉｎ，ｊ１）の距離コードの各々に差分ΔＺの値を加算して（但し、この例ではΔＺの符号はマイナスである）、検査対象となるワーク２から取得された距離コードの値を全てシフトさせ、改めて距離コード画像記憶部１５ｄに書き込む。この操作により、完全な形状を有するワーク２の凹凸形状と検査対象となるワーク２の凹凸形状が、平坦部２ｃを基準として例えば図８（ｅ）に示されるようにして実質的に重ね合わされることになる。
【００７９】
以上の処理を距離コード画像記憶部１５ｄ内のｊ１〜ｊｍの全てのデータ列に対して繰り返し実行することにより、ミラー３の各揺動位置毎に、各揺動位置に固有の距離コードの誤差ΔＺの値を求め、検査対象となるワーク２から取得した距離コードの値を誤差ΔＺの分だけシフトさせて、距離コード画像記憶部１５ｄに再格納する。
【００８０】
最終的に、基準距離コード画像記憶部１５ｅと距離コード画像記憶部１５ｄの各マトリクス要素毎に、完全な形状を有するワーク２から取得された距離コードの値と検査対象となるワーク２から取得された距離コードの値（但し、データシフト済みのもの）とを比較することで、検査対象となるワーク２の表面の欠陥の有無を判定することができる。
【００８１】
この実施形態の場合、ワーク２上で照射線の線方向に最大の長さを有する直線部分を含んだ面、つまり、Ｙ軸の値が同一である複数のマトリクス要素中で最頻出する測距コードを有する座標を含んだ直線面が位置合わせの基準面となる。従って、照射線の位置によって、あるときは平坦部２ｃが基準面、また、あるときは面２ｄが基準面となることもあるが、この基準面は基準距離コード画像記憶部１５ｅの側と距離コード画像記憶部１５ｄの側で同時に一様に変化するので比較上の問題とはならない。
【００８２】
この実施形態においても、最初に説明した実施形態の場合と同様、実質的に、基準温度下で測定した欠陥のないワーク２の外形と基準温度よりも高温あるいは低温の温度環境下で測定された検査対象のワーク２の外形とを重ね合わせて両者の外形の相違を検出する作業が行われるので、ミラー３の位置ズレやミラー３の揺動位置を検出する回転位置検出センサ９の温度ドリフト等による検出誤差（非線型性のズレ，原点ドリフト等）に起因した距離コードの誤差が解消され、ワーク２の表面欠陥の有無を適切に判定することができる。
【００８３】
【発明の効果】
本発明による三次元形状の欠陥検査方法は、完全な形状を有するワークとカメラとの間の離間距離に相当するミラーの揺動角度を示す値と、検査対象となるワークとカメラとの間の離間距離に相当するミラーの揺動角度を示す値との間の差分を求め、照射線の線方向と照射線の移動軌跡の方向を直交２軸とするマトリクスに対応させて記憶し、照射線の線方向のマトリクス要素中で最頻出する差分の値をミラーの各揺動位置毎に求め、ミラーの各揺動位置毎に、最頻出する差分の値との偏差が設定値以上に大きな差分を有するマトリクス要素を求めることによって、ミラーの揺動角度を示す値を相対的にシフトさせても完全な形状を有するワークにおいてワークとカメラとの間の離間距離に相当するミラーの揺動角度を示す値と検査対象となるワークとカメラとの間の離間距離に相当するミラーの揺動角度を示す値とが一致しない部分を検出して欠陥候補として記憶し、更に、マトリクス上において欠陥候補となるマトリクス要素の全ての存在状態に基いて検査対象となるワークの欠陥の有無を判定するようにしたので、ミラーの揺動位置やミラーの揺動位置を検出する回転位置検出手段の精度に温度変化による誤差が生じた場合であっても、検査対象となるワーク表面の欠陥の有無を的確に判定することができる。
【００８４】
また、完全な形状を有するワークの凹凸形状と検査対象となるワークの凹凸形状の各々について、照射線の方向に並ぶマトリクス要素の列毎に、照射線の線方向のマトリクス要素中で最頻出するミラーの揺動角度を示す値を求め、完全な形状を有するワークの凹凸形状と検査対象となるワークの凹凸形状において、最頻出するミラーの揺動角度を示す値が一致するように、照射線の方向に並ぶマトリクス要素の列毎に、検査対象となるワークから取得されたミラーの揺動角度を示す値をシフトさせることにより、実質的に、完全な形状を有するワークの凹凸形状と検査対象となるワークの凹凸形状を重ね合わせるようにして検査対象となるワーク表面の欠陥の有無を判定するようにしたので、ミラーの揺動位置やミラーの揺動位置を検出する回転位置検出手段の精度に温度変化による誤差が生じた場合であっても、検査対象となるワーク表面の欠陥の有無を的確に判定することができる。
【００８５】
この結果、ワーク表面の欠陥検査を的確に実行するための設定変更や積極的な温度環境の制御を行わなくてもワーク表面の欠陥検査を的確に実行することができるようになり、欠陥検査を行うオペレータの作業が簡素化され、また、検査精度向上のための過剰装備も不要となって、設備投資の費用も軽減される。
【図面の簡単な説明】
【図１】本発明による三次元形状の欠陥検査方法を実施するために必要とされる欠陥検査装置の構成の概略を示した機能ブロック図である。
【図２】同実施形態の欠陥検査装置における画像処理ユニットの構造の概略を示した機能ブロック図である。
【図３】同実施形態の欠陥検査装置における画像処理ユニットの処理動作の概略を示したフローチャートである。
【図４】図４（ａ）は差分距離コード画像から抽出すべき差分データを特定するための検査ウインドウを概念化して示した図、図４（ｂ）は同実施形態の欠陥検査装置における画像処理ユニットによって得られる欠陥抽出画像を視覚化して示した概念図である。
【図５】抽出された差分データのソーティング状況の一例を示した概念図である。
【図６】図６（ａ）は従来の三次元形状の欠陥検査方法の作用原理を説明した概念図、図６（ｂ）は従来の三次元形状の欠陥検査方法で生じる問題点を説明した概念図である。
【図７】図７（ａ）は従来の三次元形状の欠陥検査方法によって得られる基準となる距離コード画像の一例を示した概念図、図７（ｂ）は従来の三次元形状の欠陥検査方法によって得られる欠陥を含む距離コード画像の一例を示した概念図、図７（ｃ）は従来の三次元形状の欠陥検査方法によって得られる差分距離コード画像の一例を示した概念図、図７（ｄ）は従来の三次元形状の欠陥検査方法によって得られる欠陥抽出画像の一例を示した概念図である。
【図８】図８（ａ）は距離コード画像を取得するワークの形状の一例を示した平面図、図８（ｂ）は基準温度下にあるワークを走査して抽出された距離コードによって示されるワーク形状を距離コードの値を調整して示した概念図、図８（ｃ）は基準温度よりも高い温度環境下にあるワークを走査して抽出された距離コードによって示されるワーク形状を距離コードの値を調整して示した概念図、図８（ｄ）は従来技術の問題点と本発明の基本的な作用原理の一部を説明した概念図、図８（ｅ）は本発明の基本的な作用原理の一部を説明した概念図である。
【図９】図９（ａ）は基準温度よりも高温の温度環境下にあるワークを走査して抽出された距離コードに基いて生成された距離コード画像の一例を示した概念図、図９（ｂ）は基準温度下で生成された距離コード画像と基準温度よりも高温の温度環境下で生成された距離コード画像とを比較して求めた差分距離コード画像の一例を示した概念図、図９（ｃ）は従来の三次元形状の欠陥検査方法によって差分距離コード画像から得た欠陥抽出画像の一例を示した概念図である。
【符号の説明】
１  投光器
２  ワーク
３  ミラー
３ａ  正しいミラーの位置
３ｂ  位置ズレを生じたミラーの位置
４  カメラ
５  画像処理ユニット
６  欠陥
７  欠陥検査装置
８  ガルバノスキャナ（ミラー駆動手段）
９  回転位置検出センサ（回転位置検出手段）
１０  画像処理ユニット
１１  ワーク載置台
１２  ＣＰＵ
１３  ＲＯＭ
１４  不揮発性メモリ
１５  ＲＡＭ
１５ａ  差分距離コード画像記憶部
１５ｂ  バッファ部
１５ｃ  ラベル画像記憶部
１５ｄ  距離コード画像記憶部
１５ｅ  基準距離コード画像記憶部
１６  ドライバ回路
１７  ドライバ回路
１８  ドライバ回路
１９  入出力回路
２０  Ａ／Ｄ変換器
２１  ドライバ回路
２２  表示器
２３  手動データ入力装置
２４  照射線
Ｌ１  ミラーで反射されてワークを照射するレーザ光の光路
Ｌ１’  ミラーで反射されてワークを照射するレーザ光の光路
Ｌ２  ワーク上に当たったレーザ光とカメラとを結ぶ直線
Ｌ２’  ワーク上に当たったレーザ光とカメラとを結ぶ直線
α  光路Ｌ１に対応するミラーの揺動角度を示す値（距離コード）
α’  光路Ｌ１’に対応するミラーの揺動角度を示す値（距離コード）
【図１】
0003721983.tif 000002
【図２】
0003721983.tif 000003
【図３】
0003721983.tif 000004
【図４】
0003721983.tif 000005
【図５】
0003721983.tif 000006
【図６】
0003721983.tif 000007
【図７】
0003721983.tif 000008
【図８】
0003721983.tif 000009
【図９】
0003721983.tif 000010