(57)【要約】【課題】被検査面の全ての箇所について、検査に必要な画像を取得するための撮像を行えるような設定を、簡単かつ高い確度で実行する。【解決手段】検査対象のワークＷをロボット３により位置および姿勢を変更可能に支持しながら、固定されたカメラ１および照明装置２を用いて撮像する。検査に先立ち、ワークＷの表面形状を三角平面の集合体として表したＣＡＤデータを用いて、被検査面全体の法線方向ヒストグラムを作成し、そのヒストグラムの分布状態に基づき複数の撮像方向を定める。さらに撮像方向毎に１または複数の代表点を定め、代表点毎に視野対応領域を設定し、各視野対応領域において、その領域を定められた方向から撮像したときに検査に適した画像を取得可能な三角平面を抽出する。撮像方向の決定から三角平面の抽出までの処理は、被検査面に対応する全ての三角平面が抽出されるまで繰り返し実行される。【選択図】図１４
2007248241.tif 000002
【特許請求の範囲】
【請求項１】
表面の一部または全体が被検査面とされた対象物を所定方向からの照明下で撮像装置により撮像し、前記撮像により生成された画像を用いて前記被検査面の状態を検査する方法において、
前記被検査面に対する１回分の撮像のための設定処理として、
前記被検査面の撮像対象位置および撮像方向を定める第１の処理；
前記対象物の表面を複数の平面の集合体として表した３次元設計データを用いて、前記平面の集合体の中から、前記第１の処理で定めた撮像対象位置が当該第１の処理で定めた撮像方向から撮像されるときに撮像装置の視野に含まれる平面を抽出する第２の処理；
前記第２の処理で抽出された平面について、法線方向の分布状態を示すヒストグラムを作成し、そのヒストグラム中に優勢に現れ、かつ前記第１の処理で定めた撮像方向からの撮像に適した法線方向に対応する平面を抽出する第３の処理；
の各処理を実行し、
少なくとも前記被検査面に対応するすべての平面が第３の処理により抽出されるまで前記設定処理が繰り返し実行されたことを条件に、毎回の設定処理の第１の処理で定めた撮像対象位置および撮像方向に基づき、検査のための撮像を複数回実行することを、特徴とする表面状態の検査方法。
【請求項２】
表面の一部または全体が被検査面とされた対象物を所定方向からの照明下で撮像装置により撮像し、前記撮像により生成された画像を用いて前記被検査面の状態を検査する方法において、
前記対象物の表面を複数の平面の集合体として表した３次元設計データを用いて、前記被検査面に含まれる平面の法線方向の分布状態を示すヒストグラムを作成し、このヒストグラムの分布状態に基づいて所定数の撮像方向を決定し、
前記被検査面に対する１回分の撮像のための設定処理として、１撮像方向について、被検査面上に撮像対象位置を定め、その撮像対象位置が当該撮像方向から撮像されるときに撮像装置の視野に含まれ、かつ当該撮像方向からの撮像に適した法線方向に対応する平面を、前記３次元設計データを用いて抽出する処理を、実行し、
前記ヒストグラムに基づき決定した各撮像方向について、それぞれ前記設定処理が任意の回数実行され、毎回の設定処理により前記被検査面に対応するすべての平面が抽出されたことを条件に、前記決定した各撮像方向とその方向に対する設定処理で定められた撮像対象位置とに基づき、検査のための撮像を複数回実行することを、特徴とする表面状態の検査方法。
【請求項３】
請求項２に記載された方法において、
前記ヒストグラム中のピーク毎にそのピークに対応する平面群を平面間の距離に基づいてグループ分けし、
前記グループ分けにより設定されたグループ毎に、そのグループが属するピークが示す法線方向に対応する平面を撮像するのに適した撮像方向を定めるとともに、当該グループの大きさに応じて１または複数の撮像対象位置を定め、定められた撮像方向および撮像対象位置の組み合わせ毎に前記設定処理を実行する、表面状態の検査方法。
【請求項４】
請求項３に記載された方法において、
前記ヒストグラム中のピークに対するすべての設定処理が終了した時点でいずれの設定処理でも抽出されなかった平面群が存在するとき、その未抽出の平面群を平面間の距離および法線方向に基づきグループ分けし、
前記グループ分けにより設定されたグループ毎に、そのグループが示す法線方向に対応する平面を撮像するのに適した撮像方向を定めるとともに、当該グループの大きさに応じて１または複数の撮像対象位置を定め、定められた撮像方向および撮像対象位置の組み合わせ毎に前記設定処理を実行する、表面状態の検査方法。
【請求項５】
表面の一部または全てが被検査面とされた対象物を撮像し、前記撮像により生成された画像を用いて前記被検査面の状態を検査するための装置であって、
前記対象物を撮像するための撮像装置と、この撮像装置の視野を照明するための照明装置と、撮像装置または対象物をその位置および姿勢を変更可能に支持する支持装置と、前記撮像装置および支持装置の動作を制御する制御装置と、前記照明装置の照明下で撮像装置により生成された画像を取り込んで前記検査のための画像処理を行う画像処理装置とを備え、
前記制御装置には、前記対象物に対する複数回の撮像について、それぞれその撮像時に満足すべき対象物と撮像装置との関係を表す設定情報を作成する情報作成手段と、情報作成手段が作成した設定情報が保存される記憶手段と、記憶手段に保存された設定情報に基づき前記支持装置の動作を制御した後に撮像装置を駆動して、前記検査のための画像を生成する撮像制御手段とが含まれており、
前記情報作成手段は、
前記対象物に対する撮像方向、およびその撮像方向に対応する被検査面上の撮像対象位置を定める第１の手段と、
前記対象物の表面を複数の平面の集合体として表した３次元設計データを用いて、前記平面の集合体の中の前記被検査面に対応する平面を対象に、前記第１の手段が定めた撮像方向および撮像対象位置を満足するように撮像装置が配置されたときに撮像装置の視野に含まれる平面を抽出する第２の手段と、
前記第２の手段が抽出した平面について、法線方向の分布状態を示すヒストグラムを作成し、そのヒストグラム中に優勢に現れ、かつ前記第１の手段が定めた撮像方向からの撮像に適した法線方向に対応する平面を抽出する第３の手段と、
第１の手段により定められた撮像方向および撮像対象位置を示す情報を、１回分の撮像に対応する設定情報として前記記憶手段に登録する登録手段とを備え、
少なくとも前記被検査面に対応するすべての平面が抽出されるまで、前記第１、第２、第３の各手段による処理を実行する表面状態検査装置。
【請求項６】
表面の一部または全てが被検査面とされた対象物を撮像し、前記撮像により生成された画像を用いて前記被検査面の状態を検査するための装置であって、
前記対象物を撮像するための撮像装置と、この撮像装置の視野を照明するための照明装置と、撮像装置または対象物をその位置および姿勢を変更可能に支持する支持装置と、前記撮像装置および支持装置の動作を制御する制御装置と、前記照明装置の照明下で撮像装置により生成された画像を取り込んで前記検査のための画像処理を実行する画像処理装置とを備え、
前記制御装置には、前記対象物に対する複数回の撮像について、それぞれその撮像時に満足すべき対象物と撮像装置との関係を表す設定情報を作成する情報作成手段と、情報作成手段が作成した設定情報が保存される記憶手段と、記憶手段に保存された設定情報に基づき前記支持装置の動作を制御した後に撮像装置を駆動して、前記検査のための画像を生成する撮像制御手段とが含まれており、
前記情報作成手段は、
前記対象物の表面を複数の平面の集合体として表した３次元設計データを用いて、前記被検査面に含まれる平面の法線方向の分布状態を示すヒストグラムを作成する第１の手段と、
作成したヒストグラムの分布状態に基づいて所定数の撮像方向を決定する第２の手段と、
前記対象物が１撮像方向から撮像されるときの被検査面上の撮像対象位置を定め、その撮像対象位置および前記撮像方向を満足するように撮像装置が配置されたときに、撮像装置の視野に含まれ、かつ当該撮像方向からの撮像に適した法線方向に対応する平面を前記３次元設計データを用いて抽出する処理を実行する第３の手段と、
前記第３の手段が処理対象とした撮像方向およびその処理で定められた撮像対象位置を示す情報を、１回分の撮像に対応する設定情報として前記記憶手段に登録する登録手段とを備え、
前記第２の手段が決定した各撮像方向について、それぞれ第３の手段による処理を任意の回数実行し、かつ少なくとも前記被検査面に対応するすべての平面が抽出されるように第２および第３の手段による処理を実行する表面状態検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、所定の形状を有する対象物の表面の一部または全体の状態を検査するための方法および装置に関する。
【背景技術】
【０００２】
樹脂や金属などによる成形体の表面状態を検査するものとして、画像処理技術を用いた検査装置が数多く提案されている。この種の検査装置は、一般に、検査対象の成形体（以下、「ワーク」という。）に所定方向から照明を施して、ワーク表面からの反射光を撮像し、生成された画像において周囲と異なる明るさまたは色彩が現れている領域を、欠陥として検出するものである（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００４−１０８８３３号  公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この種の検査装置において、欠陥を精度良く検出するには、検査対象のワークの表面（以下、「ワーク表面」という。）の向きに応じて照明の方向や撮像方向を調整する必要がある。特に、凹凸欠陥など正反射光を用いた検査を行う場合には、正反射光が進行する方向にカメラの光軸を精度良く合わせる必要がある。
このためユーザーは、検査に先立ち、検査対象のワーク表面の全体について上記の条件を満たすような撮像が行えるように、良品のワークを用いて、カメラとワークとの位置合わせや撮像方向などを定める作業（以下、「設定作業」という。）を行っている。
【０００５】
検査対象のワーク表面がある程度の大きさになると、検査精度を確保するには、ワーク表面を複数の領域に分けて撮像する必要がある。
また多面体のワークの各面を検査する場合には、各面毎に上記の設定作業を行う必要がある。上記した特許文献１では微小な物体（スライドファスナーの止具）を検査対象とするため、１回の撮像で検査に必要な画像を取得しているが、ワークが大きくなると、その方法では検査の精度を確保できないと考えられる。また装置の構成も大がかりになる。
【０００６】
さらに、近年、携帯電話機や携帯音楽プレーヤーなどのファッション性が重視される機器のケース体は、さまざまな曲率の箇所を含む自由曲面を組み合わせた形態をとるが、このような形態のワークを検査対象とする場合には、各箇所の曲率を考慮しながら設定作業を行わなければならないため、設定作業に要する時間や労力は多大なものとなる。特に曲率が大きい部位については、カメラの視野に含まれても、その視野内の位置によっては反射光をカメラに入射できない可能性がある。
【０００７】
このため、ユーザーは、実物のワークにマーキングをするなどして、毎時の撮像で十分な明るさが得られた部位を確認し、被検査面全体に対する確認がとれるまで設定作業を行うようにしている。しかし、このような方法ではユーザーの負担は多大なものとなり、確認もれが生じるおそれもある。
【０００８】
この発明は上記の問題点に着目してなされたもので、被検査面の全ての箇所について、検査に必要な画像を取得するための撮像を行えるような設定を、簡単かつ高い確度で実行することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る表面状態の検査方法は、表面の一部または全体が被検査面とされた対象物を所定方向からの照明下で撮像装置により撮像し、前記撮像により生成された画像を用いて前記被検査面の状態を検査するものである。
【００１０】
この発明の第１の検査方法では、被検査面に対する１回分の撮像のための設定処理として、つぎの第１、第２、第３の処理を実行する。
第１の処理では、被検査面の撮像対象位置および撮像方向を定める。
第２の処理では、対象物の表面を複数の平面の集合体として表した３次元設計データ（たとえばＳＴＬ形式のＣＡＤデータ）を用いて、平面の集合体の中から、第１の処理で定めた撮像対象位置が当該第１の処理で定めた撮像方向から撮像されるときに撮像装置の視野に含まれる平面を抽出する。
【００１１】
第３の処理では、第２の処理で抽出された平面について、法線方向の分布状態を示すヒストグラムを作成し、そのヒストグラム中に優勢に現れ、かつ第１の処理で定めた撮像方向からの撮像に適した法線方向に対応する平面を抽出する。
「撮像方向からの撮像に適した法線方向」とは、照明光に対するワーク表面からの反射光を撮像装置に入射させることが可能な平面の法線方向である。たとえば、ワーク表面からの正反射光を用いた検査を行う場合であれば、ヒストグラム中に優勢になった法線方向のうち、撮像装置および照明装置の各光軸がなす角度を２等分する方向、およびその方向に対する角度差が所定の許容値の範囲にある方向が、「撮像方向からの撮像に適した法線方向」となる。
【００１２】
上記の設定処理によれば、第１の処理により、対象物のどの位置をどの方向から撮像するかが定められた後に、第２、第３の処理により、定められた状態で撮像を行ったときに、検査に必要な画像を得ることができる範囲に対応する所定数の平面が抽出される。
【００１３】
さらに第１の検査方法では、少なくとも前記被検査面に対応するすべての平面が第３の処理により抽出されるまで上記の設定処理が繰り返し実行されたことを条件に、毎回の設定処理の第１の処理で定めた撮像対象位置および撮像方向に基づき、検査のための撮像を複数回実行する。
したがって、多面体の各面が被検査面とされたり、被検査面の曲率が場所によって異なるなど、被検査面の形状が複雑になっても、被検査面のどの面、どの箇所についても、検査に必要な画像を生成することが可能になる。
【００１４】
なお、撮像対象位置や撮像方向は、人による選択を受け付けて定めても良いが、前記３次元計測データに基づいてコンピュータが選択するようにしてもよい。また、撮像対象位置については、対象物を基準にした座標系を用いて、撮像位置の設置位置として表しても良い。
【００１５】
つぎに、この発明にかかる第２の検査方法では、前記した３次元設計データを用いて、被検査面に含まれる平面の法線方向の分布状態を示すヒストグラムを作成し、このヒストグラムの分布状態に基づいて所定数の撮像方向を決定する。また、被検査面に対する１回分の撮像のための設定処理として、１撮像方向について、被検査面上に撮像対象位置を定め、その撮像対象位置が当該撮像方向から撮像されるときに撮像装置の視野に含まれ、かつ当該撮像方向からの撮像に適した法線方向に対応する平面を、前記３次元設計データを用いて抽出する処理を実行する。
【００１６】
さらにこの方法では、前記ヒストグラムに基づき決定した各撮像方向について、それぞれ上記の設定処理が任意の回数実行され、毎回の設定処理により前記被検査面に対応するすべての平面が抽出されたことを条件に、前記決定した各撮像方向とその方向に対する設定処理で定められた撮像対象位置とに基づき、検査のための撮像を複数回実行する。
【００１７】
上記第２の検査方法によれば、まず被検査面全体に対応する平面群についてヒストグラムを作成するので、そのヒストグラムにより、被検査面の各所を、法線の方向が同等になるもの毎にまとめた結果を得ることができる。よって、たとえば、ヒストグラム中に現れた各法線方向について、それぞれその方向が前記した「撮像に適した法線方向」となるような撮像方向を定めるとともに、その法線方向に対応する平面上に撮像対象位置を定めることができる。
【００１８】
第２の検査方法の設定処理で抽出される平面も、その設定による撮像において、「撮像に適した法線方向」に対応する平面であり、検査に必要な画像を取得できる被検査面の範囲に対応すると考えられる。この方法でも、少なくとも被検査面に対応するすべての平面が抽出されるまで設定処理が繰り返し実行されることになるから、被検査面のどの面、どの箇所についても、検査に必要な画像を生成することが可能になる。
【００１９】
上記第２の検査方法の好ましい態様では、ヒストグラム中のピーク毎にそのピークに対応する平面群を平面間の距離に基づいてグループ分けする。さらに、グループ分けにより設定されたグループ毎に、そのグループが属するピークが示す法線方向に対応する平面を撮像するのに適した撮像方向を定めるとともに、当該グループの大きさに応じて１または複数の撮像対象位置を定め、定められた撮像方向および撮像対象位置の組み合わせ毎に前記設定処理を実行する。
【００２０】
被検査面中に法線の方向がほぼ等しい部位があると、その部位に含まれる複数の平面によって当該部分に対応する法線方向の度数が高められると考えられる。また、この部位から離れた場所に同様の法線方向を有する部位があると、前記度数はさらに高められる。
上記の態様では、上記のように１つのピークに複数の部位に対応する度数が反映されている場合でも、グループ分けにより各部位を切り分け、部位毎に撮像対象領域を定めることができる。また、部位の大きさに応じて撮像対象位置の数を変動させるので、部位全体について検査に必要な画像を得るのに必要な回数分の撮像が行われるように設定することができる、
【００２１】
より好ましい態様では、前記ヒストグラム中のピークに対するすべての設定処理が終了した時点でいずれの設定処理でも抽出されなかった平面群が存在するとき、その未抽出の平面群を平面間の距離および法線方向に基づきグループ分けする。そして設定されたグループ毎に、前記ピークの部分から設定したグループに対するのと同様の処理を実行する。
上記の態様によれば、被検査面内に、周囲とは異なる法線方向を持つ微小な部位がある場合でも、その部位を１つのグループとして抽出して、検査に必要な画像を得られるような設定処理を行うことが可能になる。
【００２２】
この発明に係る表面状態検査装置は、対象物を撮像するための撮像装置と、撮像装置の視野を照明するための照明装置と、撮像装置または対象物をその位置および姿勢を変更可能に支持する支持装置と、撮像装置および支持装置の動作を制御する制御装置と、照明装置の照明下で撮像装置により生成された画像を取り込んで前記検査のための画像処理を行う画像処理装置とを備える。また制御装置には、対象物に対する複数回の撮像について、それぞれその撮像時に満足すべき対象物と撮像装置との関係を表す設定情報を作成する情報作成手段と、情報作成手段が作成した設定情報が保存される記憶手段と、記憶手段に保存された設定情報に基づき支持装置の動作を制御した後に撮像装置を駆動して、検査のための画像を生成する撮像制御手段とが含まれる。
【００２３】
前記第１の検査方法を実行するための表面状態検査装置では、前記情報作成手段に、前記第１の検査方法の第１、第２、第３の処理をそれぞれ実行する第１、第２、第３の手段と、第１の手段により定められた撮像方向および撮像対象位置を示す情報を、１回分の撮像に対応する設定情報として前記記憶手段に登録する登録手段とを設ける。さらに、少なくとも前記被検査面に対応するすべての平面が抽出されるまで、第１〜第３の各手段による処理を実行するようにしている。
【００２４】
第２の検査方法を実行するための表面状態検査装置では、情報作成手段に、前記３次元設計データを用いて、被検査面に含まれる平面の法線方向の分布状態を示すヒストグラムを作成する第１の手段と、作成したヒストグラムの分布状態に基づいて所定数の撮像方向を決定する第２の手段と、前記第２の検査方法における設定処理を実行する第３の手段と、第３の手段が処理対象とした撮像方向およびその処理で定められた撮像対象位置を示す情報を、１回分の撮像に対応する設定情報として記憶手段に登録する登録手段とを設ける。さらに、前記第２の手段が決定した各撮像方向について、それぞれ第３の手段による処理を任意の回数実行し、かつ少なくとも前記被検査面に対応するすべての平面が抽出されるように第２および第３の処理を実行する。
【００２５】
上記２通りの構成の表面状態検査装置では、記憶手段に登録された設定情報に基づいて複数回の撮像を行うことにより、被検査面のすべての箇所について検査に適した画像を得ることができる。よって、対象物の形態が複雑になっても、その表面状態の検査が必要な部位を精度良く検査することが可能になる。
【００２６】
なお、記憶手段に登録される設定情報のうち、撮像方向を示す情報は、たとえば撮像装置の光軸の向きを示す角度情報として表されるが、これに限らず、たとえば、被検査面上で撮像装置の視野に含まれる部分の法線方向、または視野の中心点における法線の方向をもって、撮像方向を間接的に表してもよい。
【００２７】
撮像対象位置を示す情報は、たとえば前記視野の中心点の座標、または視野に対応する領域の位置および大きさを表す情報として表される。また、撮像装置の位置を、対象物を基準にした空間座標系における座標として表すのであれば、その座標をもって撮像対象位置を間接的に表しても良い。撮像装置の位置と撮像方向とがわかれば、撮像対象位置を一義的に定めることができる。
【発明の効果】
【００２８】
この発明によれば、被検査面に複数の面が含まれたり、種々の曲率の箇所が含まれる場合でも、それらの面や箇所について、検査に必要な画像を確実に得られるような設定を簡単に実行することが可能になる。またその設定に基づいて複数回の撮像を行うことにより、被検査面の表面状態を全面にわたって精度良く検査することが可能になる。
【発明を実施するための最良の形態】
【００２９】
図１は、この発明が適用された検査装置の構成例を示す。
この実施例の検査装置は、複数の面を有するワークＷを検査対象として、このワークＷの表面に欠陥がないかどうかを検査するためのもので、カメラ１（以下、単に「カメラ１」という。）、照明装置２、多軸ロボット３、ロボットコントローラ４、およびパーソナルコンピュータによる制御処理装置５により構成される。
【００３０】
前記多軸ロボット３（以下、単に「ロボット３」という。）は、所定大きさの基台３６上に、アーム支持部３５を介してアーム部３０を連結した構成のものである。アーム部３０は、３個の中間アーム３１，３２，３３と先端アーム３４とを順に連結した構成のもので、各連結部にはそれぞれ回転軸（図示せず。）が含まれている。また先端アーム３４の先端面には、支持板３７が連結されており、この支持板３７の板面にカメラ１および照明装置２が取り付けられる。
【００３１】
カメラ１は、カラー画像生成用のディジタルスチルカメラである。照明装置２は、検査対象のワークＷを照明するためのもので、後記する２種類の照明部２Ａ，２Ｂが含まれる。ロボットコントローラ４は、ロボット制御専用のコントローラであって、制御部５からの指令に応じてロボット３の各軸の回転角度を制御することにより、前記先端アーム３４の方位、高さ、先端の支持板３７の板面の傾きなどを変更する。このロボット３の動作により、カメラ１と照明装置２とを、両者間の位置関係を維持したまま、位置および姿勢を変更することが可能になる。
【００３２】
前記制御部５には、ＣＰＵ５０、ＲＯＭ５１、ＲＡＭ５２のほか、メモリ５３、照明制御部５０１、撮像制御部５０２、画像入力部５０３、画像処理部５０４、検査部５０５、ロボット制御部５０６などが含められる。また、ＣＰＵ５０には、入力部５４やディスプレイ５５などの周辺機器が接続される。なお、メモリ５３はハードディスクであって、ＣＰＵ５０に検査の機能を設定するためのプログラムや、後記する撮像のための設定情報、検査用のパラメータ（２値化しきい値、判定用しきい値など）が格納される。またメモリ５３には、必要に応じて、良品ワークの画像が格納される。
入力部５４は、キーボードやマウスなどにより構成される。
【００３３】
照明制御部５０１は、照明装置２について、点灯させる照明部を選択し、その照明光量の調整や照明色の切り替えを行う。撮像制御部５０２は、カメラ１に駆動信号を出力することにより、撮像を行わせる。なお、照明制御部５０１，撮像制御部５０２，およびロボット制御部５０６については、これらの制御部の機能をＰＬＣ（プログラマブル・ロジック・コントローラ）に組み込んで、制御処理装置５から独立させてもよい。
【００３４】
画像入力部５０３は、カメラ１からの画像信号（Ｒ，Ｇ，Ｂの色彩毎に生成される。）を入力するインターフェース回路などを含む。この画像入力部５０３が入力した画像は、ＲＡＭ５２またはメモリ５３に格納され、以後、画像処理部５０４や検査部５０５により処理される。
【００３５】
ＣＰＵ５０は、メモリ５３に登録された撮像用の設定情報（詳細については後記する。）に基づき、ロボット制御部５０６を介してロボットコントローラ４に前記制御信号を出力する。ロボットコントローラ４は、この制御信号に応じてロボット３の動作を制御する。
さらに、ＣＰＵ５０は、ロボット３の動作が停止したタイミングに合わせて、撮像制御部５０２にカメラ１への駆動信号を出力させる。ロボット３の制御とカメラ１の駆動とを繰り返すことにより、毎時の撮像におけるカメラ１の位置や姿勢が変更され、ワークＷの表面が複数の領域に切り分けて撮像される。なお、カメラ１とワークＷとの間の距離は、常に一定になるように制御される。
【００３６】
図２は、上記検査装置の光学系（カメラ１および照明装置２）の詳細な構成を示す。なお、作図の便宜上、照明装置２の大きさをカメラ１に対して大きく誇張して表すとともに、カメラ１の光軸を紙面の縦方向に合わせて示す。また、ワークＷの表面を平坦面として表すとともに、カメラ１の視野に入っているワークＷ上の領域（以下、これを「視野対応領域」という。）の範囲を示す。またこの視野対応領域内の点Ｅは、画像のほぼ中心に現れる点である（以下、この点Ｅを「領域代表点」または単に「代表点」という。）。
【００３７】
照明装置２には、ハーフミラー２０と、同軸落射用の第１の照明部２Ａと、斜め入射照明用の第２の照明部２Ｂとが組み込まれる。ハーフミラー２０はカメラ１の光軸上に設けられ、第１の照明部２Ａはハーフミラー２０の側方に、第２の照明部２Ｂはハーフミラー２０の下方に、それぞれ配置される。
【００３８】
同軸落射用の第１の照明部２Ａは、光が出射する円形状の開口部（図の左方に向かって開口している。）が設けられた筐体２３内に、Ｒ，Ｇ，Ｂの各色彩光を発光する光源２１Ｒ，２１Ｇ，２１Ｂ（具体的にはＬＥＤである。）が収容された構成のものである。各光源２１Ｒ，２１Ｇ，２１Ｂは、それぞれその光軸をハーフミラー２０に向けて配備されている。また前記開口部には拡散板２２が設けられる。
【００３９】
斜め入射照明用の第２の照明部２Ｂは、上面にカメラ１の覗き穴２６が形成された筐体２５の内部に、第１の照明部と同様の光源２１Ｒ，２１Ｇ，２１Ｂが、それぞれ複数個、円形状に配列された構成のものである。各光源２１Ｒ，２１Ｇ，２１Ｂの光軸はカメラ１の光軸に平行になるように設定されている。筐体２５の下部は開口しており、この開口部に光拡散部材２３が設けられている。光拡散部材２３は、円錐台または角錐台状の内面を有するもので、その内面の広がる方向を筐体２５の開口部の方に向けて設置されている。また覗き穴２６の中心は、カメラ１の光軸に位置合わせされる。
【００４０】
第１の照明部２Ａでは、光源２１Ｒ，２１Ｇ，２１Ｂから発せられた光が拡散板２２により混合されて、断面が円形状の光が生成される。この光はハーフミラー２０に到達した後にカメラ１の光軸に沿って進行する。よって、第１の照明部２Ａが点灯した場合には、撮像対象領域に対し、いわゆる同軸落射照明光が照射される。
一方、第２の照明部２Ｂでは、光源２１Ｒ，２１Ｇ，２１Ｂから発せられた光が筐体２５内で混合され、さらに光拡散部材２３を介して覗き穴２６の下方に出射される。よって、第２の照明部２Ｂが点灯した場合には、撮像対象領域に対し、斜め方向から入射する照明光が照射される。
【００４１】
なお、上記の同軸落射照明光、斜め入射照明光は、いずれも前記撮像対象領域の全域に到達するように、照明光の径が調整されている。またいずれの照明部２Ａ，２Ｂとも、ワークＷの色彩に応じて点灯させる光源の種類を選択することが可能である。
【００４２】
この実施例では、ワークＷの表面の凹凸欠陥の有無を検査する場合には、第１の照明部２Ａによる同軸落射照明下で撮像を行い、生成された画像内の正反射光像を処理する。一方、色彩欠陥の有無を検査する場合には、第２の照明部２Ｂによる斜め入射照明下で撮像を行い、生成された画像内の拡散反射光像を処理する。
【００４３】
なお、正反射光像を得るための照明は同軸落射照明に限定されるものではない。たとえば、ハーフミラー２０を除いて、第１の照明部２Ａをもう少し高く配置し、その光軸が撮像基準点Ｐの位置でカメラ１の光軸に交わるように、前記光軸の向きを設定してもよい。この場合には、領域代表点Ｅにおける法線の方向をカメラ１の光軸に合わせるのではなく、照明光に対するワークＷからの正反射光がカメラ１の光軸に沿って進行するように、ワークＷの姿勢を設定する必要がある。
【００４４】
上記２種類の検査のうち、特に正反射光像を用いた凹凸欠陥の検査では、同軸落射照明光に対する正反射光がカメラ１に入射するように、ワーク表面の向きに応じて撮像方向を調整する必要がある。そのためには、ワーク表面がカメラの光軸に直交する方向にほぼ沿った状態になるように、言い換えれば、ワーク表面の法線方向を示すベクトルが撮像方向を示すベクトルを反転させた方向とほぼ同一方向になるようにする必要がある。
【００４５】
図３は、上記の条件が満たされるようにカメラ１を配置した場合の視野対応領域のワークの断面形状とこの領域について得た画像１０１とを対応づけて示す。なお、この例のワーク表面には凹欠陥１００があるものとし、画像上の欠陥１０２を通る線Ｉ−Ｉに対応する断面形状を示している。
また、図中の点線は、照明部２Ａからの同軸落射照明光を、一点鎖線は、前記撮像対象領域からの正反射光を、それぞれ示す。
【００４６】
図３の例のように、視野対応領域内のワーク表面が平面に近く、その面が撮像方向や同軸落射照明光にほぼ直交する場合には、このワーク表面への同軸落射照明光に対する正反射光は、照明光の方向にほぼ反転する方向、すなわちカメラ１の光軸に沿って進む。よってカメラ１のレンズには、十分な量の正反射光が入射する。
一方、凹欠陥１００からの正反射光は、カメラ１の光軸の方向とは異なる方向に沿って進むので、画像１０１上の凹欠陥１０２は周囲より暗い領域として現れる。よって、所定のしきい値で画像を２値化することによって、欠陥を検出することができる。
【００４７】
しかし、ワーク表面の曲率が大きくなると、視野対応領域内にあっても、カメラ１のレンズに正反射光を入射することができない場所が出てくる。
図４は、視野対応領域に含まれるワーク表面上の各点のうち、前記領域代表点Ｅと、この領域代表点Ｅから所定距離だけ離れた２点Ｆ１，Ｆ２について、それぞれ前記同軸落射照明光に対する正反射光がカメラ１のレンズ１１に入射する様子、あるいはレンズ１１に入射しない方向に向かう様子を示したものである。なお、図中の点線は、それぞれの点に向かう照明光の範囲を示し、網点のパターンは、前記照明光に対する正反射光の範囲を示す。
【００４８】
図示例において、領域代表点Ｅからの正反射光はすべてレンズ１１に入射しているが、領域代表点Ｅからやや離れた点Ｆ１からの正反射光は、一部しか入射していない。さらに点Ｆ１よりも領域代表点Ｅから離れている点Ｆ２に至っては、正反射光がレンズ１１に全く入射しない状態にある。
この点Ｆ２のように、視野対応領域に含まれても、同軸落射照明光に対する正反射光がレンズ１１に入射しない部位については、正反射光像を用いた凹凸欠陥の検出を行うことはできない。よって、この点Ｆ２を含む部位の面については、別途、レンズ１１に正反射光を入射できるようにカメラの位置や撮像方向を変更して、撮像を行う必要がある。
【００４９】
このように被検査面全体を検査するには、ワーク表面の向きや曲率に応じてカメラ１の位置や撮像方向を変化させて撮像を行う処理を、複数回繰り返さなければならない。また被検査面に欠陥がない場合には、一連の撮像によって、被検査面のいずれの箇所についても、いずれかの撮像により当該箇所に対応する正反射光像を取得できなければならない。
【００５０】
この実施例の検査装置では、正反射光像を用いた凹凸欠陥の検査について、上記の条件を満足するように毎回の撮像時のカメラ１の位置および撮像方向をあらかじめ定め、これらを撮像用の設定情報としてメモリ５３の登録エリアに登録するようにしている。なお、カメラ１の位置は、後記する図１２の点Ｐｖ（前記レンズ１１の中心点に相当する。）のＸ，Ｙ，Ｚ座標により表される。また撮像方向は、本来は、カメラ１からその光軸に沿ってワークＷに向かう方向をいうが、この実施例では、便宜上、前記領域代表点Ｅにおける法線の方向に置き換えて表している。
【００５１】
また、この実施例では、ワークＷの設計のために作成したＳＴＬ形式のＣＡＤデータを用いて、上記の設定情報を作成することにより、設定情報を簡単かつ正確に作成できるようにしている。
【００５２】
ＳＴＬ形式のＣＡＤデータは、物体の表面を複数の三角平面の集合体に近似して表すものである。各三角平面は、３つの頂点の座標および法線の方向を表すベクトル（以下、「法線ベクトル」という。）により表される。
以下、図５に示すように、上面に切り欠きされた面１０５が含まれる略立方体状のワークＷについて、ＣＡＤデータに基づく空間座標系（ＸＹＺ座標系）を設定していることを前提に、図６〜１１を用いて、検査に先立つ準備モードで実行される設定処理を詳細に説明する。なお、図６は、この設定処理の一連の流れを示すもので、図７〜１１は、この図の所定のステップ（以下、図６に倣って「ＳＴ」と略す。）の処理方法や処理結果の例を示すものである。
【００５３】
図６において、最初のＳＴ１０１では、検査に必要な分解能の入力を受け付けることにより、カメラ１の視野のサイズを決定する。たとえば、撮像素子の画素数が１０００画素×１０００画素であり、入力された分解能が０．０１mm／画素であるとすると、１０mm四方の視野が設定される。
【００５４】
つぎのＳＴ１０２では、撮像方向の入力を受け付ける。この入力を簡単にするには、たとえば、ＣＡＤデータを用いてワークＷの各面毎の法線方向を求め、これらをディスプレイ５５に表示して選択できるようにするとよい。
なお、ここで入力されるデータには、カメラ１の光軸の方向のほか、ワークＷに対するカメラ１のおよその位置関係を示す情報（真上、左横、斜め右上など）が含まれるものとする。
【００５５】
ＳＴ１０３では、前記ＣＡＤデータが示すワークＷの立体形状に基づき、入力された方向から撮像可能なワーク表面に対応する三角平面群を抽出する。
図７は、カメラ１がワークＷの上方に配置されて、前記切り欠き部の面１０５に垂直な方向Ｕ（図５に示す。）が撮像方向として入力され、ＳＴ１０３を実行した場合に、抽出される三角平面群を示す。図中、網点パターンを付した三角平面は、入力された撮像方向に適した傾斜状態の面（カメラ１に正反射光を入射可能な面をいう。以下、このような面を「（撮像方向への）適合面」という。）である。この例の場合には、前記切り欠き部の面１０５が適合面となるが、ＳＴ１０３が実行された段階では、そこまで認識されていない。
【００５６】
ＳＴ１０４では、抽出した三角平面群に外接する矩形６０を設定し、この外接矩形６０を前記視野サイズに応じた複数の矩形領域に分割する。以下、この分割後の各領域を視野対応領域として仮設定する（ＳＴ１１０の登録処理によって、視野対応領域は確定するが、確定した視野対応領域自体が登録される訳ではない。）。
なお、図７では、外接矩形６０を、わかりやすいように、実際より大きくして破線にして示してある。図８は、前記外接矩形６０が、ＳＴ１０４の処理により４つの視野対応領域Ｒ１，Ｒ２，Ｒ３，Ｒ４に分割された状態を示す。
【００５７】
以下、この分割された視野対応領域Ｒ１〜Ｒ４に順に着目して、領域毎にＳＴ１０５〜１１１の処理を実行する。
まず、ＳＴ１０５では、着目中の視野対応領域について、その領域の中心点を領域代表点Ｅとして、当該領域を撮像するためのカメラ位置を特定する。なお、このカメラ位置は、レンズ１１の中心点Ｐｖの座標として求められる。
【００５８】
つぎのＳＴ１０６では、着目中の視野対応領域に含まれる三角平面を抽出する。なお、ここでは、領域内に完全に含まれる三角平面のみを抽出する。
図９は、前記４つの視野対応領域Ｒ１〜Ｒ４のうちの右上の領域Ｒ１に着目してＳＴ１０６を実行した結果を示すもので、視野対応領域Ｒ１から抽出された三角平面を斜線のパターンにより明示している。
【００５９】
ＳＴ１０７では、ＳＴ１０６で抽出した三角平面について、法線ベクトルのヒストグラムを作成する（以下、このヒストグラムを「法線方向ヒストグラム」という。）。
【００６０】
この実施例では、各三角平面の法線ベクトルＶＬを、図１０（１）に示すように処理して、２つの角度情報α，βを求め、このα，βの組み合わせについてのヒストグラムを作成する。角度αは、法線ベクトルＶＬをＸＹ平面に投影したときに、その投影像ＶＬ´がＹ軸の正方向から時計回りになす角度として設定される（以下、「方位角α」という。）。角度βは、法線ベクトルＶＬがＸＹ平面との間になす角度である（以下、「仰角β」という。）。
【００６１】
図１０（２）は、上記の角度α，βを用いて作成した法線方向ヒストグラムの例を示す。なお、このヒストグラムは、前記視野対応領域Ｒ１の三角平面の法線方向を反映したものではなく、ヒストグラムの概念を表すためのものである。実際のヒストグラムは、α，β、および度数による３次元配列として構成される。
この例では、方位角αおよび仰角βを、それぞれ５°単位にとりまとめて、度数を算出している。
【００６２】
ＳＴ１０８では、前記法線方向ヒストグラムから度数が所定のしきい値以上となる部分をピークとして求める。さらにそのピークの中から撮像方向への適合面に対応するピークを抽出する。
この実施例でいう撮像方向への適合面は、その面における法線ベクトルが撮像方向を反転させた方向に一致するか、またはその一致する方向に対する角度差が所定の許容値以内となる面である。この点に鑑み、この実施例では、ＳＴ１０２で入力された撮像方向から理想的な法線ベクトルについて基準の方位角α０および基準の仰角β０を求める。そして、ＳＴ１０８では、各ピーク毎に、αとα０との差およびβとβ０との差を求め、各角度差の絶対値がともに許容値以内（たとえば５°以内）となるピークを、撮像方向への適合面に対応するものとして抽出する。
【００６３】
撮像方向への適合面に対応するピークが抽出されると、ＳＴ１０９が「ＹＥＳ」となってＳＴ１１０に進む。ＳＴ１１０では、ＳＴ１０８で抽出したピークに含まれる三角平面について、画像中の対応領域を求め、これを検査領域として割り付ける（以下、この処理を「検査領域の割り付け処理」という。）。
【００６４】
ＳＴ１１１では、ＳＴ１０５で特定したカメラの位置、およびＳＴ１１０で特定した検査領域の設定情報をＳＴ１０２で入力された撮像方向に対応づけてメモリ５３に保存する。なお、カメラ位置については、ＳＴ１０５で特定した点ＰｖのＸ，Ｙ，Ｚ座標が登録される。撮像方向は、前記したように、ワーク表面における法線方向に置き換えられ、前記角度α，βにより表される。検査領域の設定情報としては、特定された三角平面の頂点について、それぞれ画像における対応点の座標が登録される。
【００６５】
以下、着目対象の視野対象領域を変更しながらＳＴ１０５〜１１１を実行するが、法線方向ヒストグラムから撮像方向への適合面に対応するピークを抽出できなかった場合には、ＳＴ１０９が「ＮＯ」となるため、ＳＴ１１０〜１１１の処理はスキップされる。
前出の図８の例で言えば、右側の２つの視野対象領域Ｒ１，Ｒ２についてはＳＴ１１０、１１１が実行されて、検査領域が割り付けられるが、左側の視野対応領域については、撮像方向への適合面に対応するピークが抽出されないため、ＳＴ１１０，１１１は実行されない。
【００６６】
以上の処理が設定されたすべての視野対応領域に対して実行されると、ＳＴ１１２が「ＹＥＳ」となってＳＴ１１３に進む。
ＳＴ１１３では、被検査面に対応する全ての三角平面について、検査領域の割り付け処理が行われたかどうかをチェックする。割り付け処理が行われていない三角平面があれば、ＳＴ１１３が「ＮＯ」となってＳＴ１０２に戻る。ここで、再度、撮像方向が入力されると、その撮像方向について、ＳＴ１０３〜１１２の処理が実行された結果、当該撮像方向への適合面を撮像可能なカメラ位置と、そのカメラ位置での撮像で生成される画像における検査領域とが求められ、登録される。
【００６７】
このように撮像方向の入力を繰り返しながら、入力の都度、ＳＴ１０３〜１１２を実行する。最終的に被検査面に対応するすべての三角平面について、検査領域の割り付け処理が行われると、ＳＴ１１３が「ＹＥＳ」となり、処理を終了する。
【００６８】
なお、ＳＴ１０２で過去に入力されたのと同じ撮像方向が入力された場合には、ＳＴ１０３では、前記外接矩形６０を設定、分割する方法に代えて、検査領域が割り付けられていない三角平面を対象に視野対応領域を設定する。よって、撮像方向に適合するが、過去に設定された視野対応領域に包含されていなかったために検査領域の割り付け処理が行われていない三角平面についても、検査領域を割り付けることが可能になる。
【００６９】
図１１では、４つの視野対応領域Ｒ１〜Ｒ４のうち、検査領域の割り付け処理が行われた領域Ｒ１，Ｒ２について、それぞれ割り付け済みの三角平面を斜線のパターンにより示している。これらの領域Ｒ１，Ｒ２間にまたがる三角平面も、矢印Ｕで示した撮像方向にに適合しているが、Ｒ１，Ｒ２のいずれにも包含されていないため、検査領域の割り付け処理の対象外となっている。
【００７０】
しかしながら、再度、矢印Ｕの方向を撮像方向として入力すると、ＳＴ１０３，１０４の処理により、図中の一点鎖線で示すような視野対応領域Ｒ５を設定することができる。よってこの領域Ｒ５に対する処理により、残された三角平面についても検査領域の割り付け処理が行われ、その検査領域が視野対応領域Ｒ５に対応するカメラ位置とともに登録される。このような処理により、被検査面に対応する全ての三角平面について、もれなく、検査領域を割り付けることが可能になる。
【００７１】
なお、図６の例では、撮像方向をユーザーに入力させるようにしているので、その入力を助けるために、ディスプレイ５５上に検査領域の割り付け処理が完了していない部位やその部位における法線方向を表示するのが望ましい。たとえば、ワークＷの各構成面を平面表示し、割り付け処理が完了した部位と完了していない部位とをそれぞれ異なる色彩で表示し、完了していない部位の近傍に、その部位の法線方向をハイパーリンク表示する。このハイパーリンク表示に対しクリック操作が行われると、表示されていた法線方向がＳＴ１０２の入力データとして受け付けられる。
【００７２】
つぎに、前記検査領域の割り付け処理について、図１２を用いて説明する。
図１２は、任意の三角平面ＴＲとその１頂点Ｐについて、前出のＸＹＺ座標系やカメラ１との関係とともに、画像中の点Ｐへの対応点の座標を求めるのに必要なパラメータを示している。なお、この実施例では、処理を簡単にするために、三角形ＴＲの法線方向は、前記した理想の法線の方向（撮像方向に反転する方向と同一の方向）であるものとしている。
【００７３】
図中、点Ｐｖは前記カメラ位置を示す。またＱは、三角形ＴＲを含む平面である。また、点ＰのＸＹＺ座標系における座標を（Ｘｐ，Ｙｐ，Ｚｐ）とする。
いま、点Ｐｖから平面Ｑへの垂線と平面Ｑとの交点をＰｆとし、この点Ｐｆの座標を（Ｘｆ，Ｙｆ，Ｚｆ）とし、点Ｐｆと点Ｐｖとの距離をＤとする。また、この点Ｐｆをカメラの撮像面の原点として、撮像面の座標をｘ，ｙの各軸による座標系により示す。
【００７４】
さらに点Ｐｖからｘｙ平面に対する垂線と平面Ｑとの交点をＳとして、この点Ｓから点Ｐｆに向かう方向をＹ´方向、Ｙ´方向から時計回り方向に９０°回転した方向をＸ´方向とし、点Ｐｆから点Ｐｖに向かう方向をＺ´方向とする。これらの設定によるＸ´Ｙ´Ｚ´座標系では、点Ｐｆの座標を原点（０，０，０）とし、点Ｐｖの座標を（０，０，Ｄ）とする。また点Ｐは平面Ｑ上の点であるため、そのＺ´座標は０となる。
【００７５】
この関係において、前記点Ｐのｘｙ座標系における座標ｘ＊，ｙ＊は、以下の（１）（２）式により表される。
【数１】
2007248241.tif 000003
【数２】
2007248241.tif 000004
【００７６】
ただし、（１）（２）式において、ＸＡ´，ＹＡ´，ＺＡ´は、Ｘ´Ｙ´Ｚ´座標系における座標であり、Ｚ´軸とｘｙ平面とのなす角度φ、およびＺ´軸のｘｙ平面への投影像ｍの方位角θ（ｘ軸からｍまでの時計回り方向の角度）、およびカメラ１の焦点距離ｆを用いた式（ａ）（ｂ）（ｃ）により求められる。
【００７７】
ＸＡ´＝−（Ｘｐ−Ｘｆ）・ｓｉｎθ＋（Ｙｐ−Ｙｆ）・ｃｏｓθ  ・・・（ａ）
ＹＡ´＝−（Ｘｐ−Ｘｆ）・ｃｏｓθ・ｓｉｎφ−（Ｙｐ−Ｙｆ）・ｓｉｎθ・ｓｉｎφ
＋（Ｚｐ−Ｚｆ）・ｃｏｓφ  ・・・（ｂ）
ＺＡ´＝（Ｘｐ−Ｘｆ）・ｃｏｓθ・ｃｏｓφ＋（Ｙｐ−Ｙｆ）・ｓｉｎθ・ｃｏｓφ
＋（Ｚｐ−Ｚｆ）・ｓｉｎφ  ・・・（ｃ）
【００７８】
前記図６のＳＴ１１０では、ＳＴ１０８で抽出したピークに含まれる各三角平面の頂点について、上記（ａ）〜（ｃ）および（１）（２）の各式による演算を実行し、画像における対応点を求める。これらの対応点を結ぶことにより、各三角平面に対応する領域を特定し、これを検査領域として設定する。
なお、各三角平面に対応する検査領域が隣接する関係になる場合には、これらを１つの検査領域に統合してもよい。
【００７９】
図１３は、検査における処理の流れを示す。なお、この検査の処理はステップ１（ＳＴ１）から始まるものとする。
この図１３では、１つのワークＷに対して実行される手順を示している。まずＳＴ１では、図示しない搬送機構を駆動して、ワークＷを定められた検査位置まで搬送する。なお、この搬入時のワークＷの姿勢は常に定められた状態になるように調整される。
【００８０】
続くＳＴ２では、登録データを特定するためのカウンタｎを初期値の１に設定し、ＳＴ３において、メモリ５３よりｎ番目の登録データを読み出す。ＳＴ４では、この登録データ中の撮像方向およびカメラ位置に基づき、ロボット３の動作を制御して、カメラ１の位置および撮像方向が読み出されたデータに一致するように調整する。ＳＴ５では、調整後のカメラ１の位置および姿勢を維持した状態で撮像を行う。
【００８１】
つぎのＳＴ６では、前記撮像により生成された画像に、前記登録データ中の検査領域の設定情報に基づき、検査領域を設定する。さらに検査対象領域内の画像を切り出して所定のしきい値により２値化する。なお、前記した検査領域の割り付け処理によれば、画像中に２以上の検査領域が設定される場合もある。
【００８２】
ＳＴ７では、前記２値化後の画像に対し、しきい値を超えた画素数を計数するなどの計測処理を行った後に、その計測値を所定の基準値と照合することにより、凹凸欠陥の有無を判定する。
【００８３】
以下、ＳＴ８からＳＴ９に進み、カウンタｎを更新した後にＳＴ３に戻る。以下同様に、カウンタｎが登録総数Ｎになるまで順に更新しつつ、各番号についてＳＴ３〜７を実行する。これにより視野対応領域が順に撮像され、その領域に割り付けられた検査領域について、正反射光像を用いた検査が実行される。
登録されたすべてのデータに対する処理が終了すると、ＳＴ８が「ＹＥＳ」となって、ＳＴ１０に進む。ＳＴ１０では、毎回の判定処理結果を統合した検査結果データを作成し、これをディスプレイ５５や図示しない外部機器などに出力する。
【００８４】
上記の検査では、先の図６の手順により登録されたカメラ位置や撮像方向に基づき撮像の際のカメラ１の位置や姿勢が制御されるので、ワークＷの被検査面のすべての箇所について、必ずいずれかの撮像で生成された画像上の検査対象領域で検査することが可能になる。よって、被検査面の全面にわたって凹凸欠陥の有無を精度良く検出することができる。
【００８５】
なお、上記の実施例では、毎時の撮像により生成される画像について、図６の処理により登録された設定情報に基づき検査領域を設定して、その領域内の画像を処理するようにしたが、これに代えて、特段の検査領域を設定せずに画像全体を処理するようにしてもよい。
【００８６】
たとえば、各撮像についてのカメラ位置と撮像方向のみを登録した後、その登録データに基づきワークＷの良品モデル（以下、「良品ワーク」という。）を撮像することにより、毎時の撮像に対応する基準画像を生成し、メモリ５３に登録しておく。この後の検査では、撮像毎に、生成された検査対象のワークＷの画像とこれに対応する基準画像との差分演算処理を実行し、その演算で生成された強度差画像を２値化処理する。
この方法をとる場合、撮像されるワーク表面のうち撮像方向に適合する範囲は、画像中に十分な明るさをもって現れるから、この範囲に凹凸欠陥があれば、差分演算処理により当該欠陥を検出することができる。
【００８７】
また上記の強度差画像において、撮像方向に適合する範囲より外で欠陥が検出される場合があってもよい。このような欠陥は、その欠陥のある箇所が撮像方向への適合面となるようにして撮像された画像からも重複して検出されることが予測されるが、欠陥が重複して検出されても問題視する必要はない。
【００８８】
上記のように、検査領域の割り付け処理を行わず、画像全体を処理する場合でも、設定情報の作成処理では、被検査面に対応するすべての三角平面が、いずれかの撮像方向およびいずれかのカメラ位置の設定によって、法線方向ヒストグラム中の撮像方向に適合するピークから抽出されたことを確認する必要がある。この点が確認されていれば、作成された設定情報に基づく複数回の撮像を行い、各撮像で生成された画像毎に上記の差分演算処理および２値化を行うことにより、被検査面全体について、もれなく凹凸欠陥の検査を行うことが可能になる。
【００８９】
図１４は、検査装置の他の構成例を示す。
先の実施例の検査装置では、ワークＷを固定し、カメラ１や照明装置２を動かすようにしたが、この実施例では、その反対に、カメラ１および照明装置２を固定して、ワークＷをロボット３により動かすようにしている。
【００９０】
具体的には、カメラ１は、その光軸を斜め下方（この例では、鉛直方向より４５度上方に回転した方向）に向けた状態で配置され、その前方に照明装置２が配備される。カメラ１および照明装置２は、図示しない支持部材により所定の高さ位置に固定されており、光軸方向や焦点距離も固定されている。なお、照明装置２には、先の実施例と同様に、同軸落射照明用の照明部２Ａと斜め入射照明用の照明部２Ｂとが組み込まれる。
【００９１】
この実施例のロボット３は、所定大きさの基台３０１上に、アーム支持部３０２、４個の中間アーム３０３，３０４，３０５，３０６および先端アーム３０７が順に連結された構成の６軸ロボットである。各軸の動作は、図１の実施例と同様に、制御処理装置５からの指令を受けたロボットコントローラ４により制御される。
また、この実施例では、ロボット３の制御用の座標系として、ｓ，ｔ，ｕの３軸による空間座標系が設定されている。３軸のうちのｕ軸は、基台３０１とアーム支持部３０２とを連結する第１軸に合わせられており、ｓ，ｔの各軸はロボット３の設置面上に設定される。
なお、制御処理装置５の構成は図１と同様であるので、ここでは図示を省略する。
【００９２】
カメラ１の下方には、ワークトレー３００が供給される。このワークトレー３００の上面にはワーク収容用の凹部（図示せず。）が複数形成され、各凹部にそれぞれ検査対象のワークＷが裏面を上方に向けた状態で配置されている。なお、この実施例では、図示の便宜上、ワークＷを平板状にして表しているが、これに限らず、互いに異なる曲率を有する箇所を含む複雑な形状のワークＷを処理対象とすることもできる。
【００９３】
ロボット３は、カメラ１の視野の中心にあり、かつカメラ１の焦点が合う点Ｏ（以下、「撮像基準点Ｏ」という。）およびワークトレー３００の各凹部に、先端アーム３０７が届くように配置されている。先端アーム３０７の先端には図示しないフランジが設けられ、さらにこのフランジに真空吸着機構を備えた図示しない治具が取り付けられる。
【００９４】
ロボット３は、ロボットコントローラ４からの指令に応じて、ワークトレー３００内のワークＷを１つずつ前記フランジの先端面に備えた治具に吸着して持ち上げ、カメラ１の前方に運ぶ。その後も、ロボットコントローラ４からの指令に応じて動作して、カメラ１に対するワークＷの位置や姿勢をあらかじめ定めた設定情報に基づいて種々に変化させる。ワークＷの位置や姿勢が１つの設定情報に対応する状態になる都度、カメラ１による撮像が行われる。
【００９５】
この実施例の検査装置では、撮像用の設定情報として、領域代表点（以下、単に「代表点」という場合がある。）の座標と、この領域代表点における法線方向とを求める。検査の際には、領域代表点が撮像基準点Ｏに位置合わせされ、法線方向がカメラ１の光軸に合うように、ワークＷの位置および姿勢を調整する。
【００９６】
なお、この実施例では、ワーク表面の所定位置を原点とするＸＹＺ座標系を設定し、法線方向を、前記図１０（１）に示したのと同様の方位角α，仰角βにより表すようにしている。またこのワークＷが先端アーム３０７に装着されたとき、先端アーム３０７の回転軸（第６軸）の延長線にＺ軸が一致するように、ワークＷの吸着時の先端アーム３０７の位置や角度を制御する。この装着時のワークＷと先端アーム３０７との関係はその後も維持される。またＸＹＺ座標系の原点と先端アーム３０７側の図示しない基準点（第６軸上の点）との距離やロボット３の各アームの長さも既知にされており、第１〜第６軸の回転角度もロボットコントローラ４により認識されている。
【００９７】
したがって、ロボットコントローラ４では、領域代表点のＸ，Ｙ，Ｚ座標を、ロボット３の制御用のｓｔｕ座標系の座標に変換することができる。さらに、領域代表点を撮像基準点Ｏに合わせ、かつ角度α，βが示す法線ベクトルの方向をカメラ１の光軸に合わせるのに必要な各軸の回転角度を求めることができる。
【００９８】
以下、上記第２の検査装置における撮像のための設定処理について、説明する。
この実施例では、ＳＴＬ形式のＣＡＤデータを用いて、被検査面全体について法線方向ヒストグラムを作成した後、そのヒストグラムや元のＣＡＤデータを用いたデータ処理により、毎時の撮像代表点Ｅの位置や撮像方向を定め、これらを表す情報をメモリ５３に登録するようにしている。
【００９９】
図１５は、上記検査装置が実行する設定処理の流れを示す。
まずこの処理の最初のステップであるＳＴ２０１では、先の図６のＳＴ１０１と同様に、カメラ１の視野サイズを決める処理を実行する。
【０１００】
つぎのＳＴ２０２では、あらかじめメモリ５３に読み込んだＣＡＤデータから、被検査面に対応するすべての三角平面の法線ベクトルのデータを順に読み出し、前記した方位角αおよび仰角βを算出する。そして各法線ベクトルにつき算出した角度α，βの組み合わせを用いて、被検査面全体を対象にした法線方向ヒストグラムを作成する。なお、この実施例でも、図１０（２）の例と同様に、角度α，βを所定角度単位でとりまとめて処理する。
【０１０１】
ＳＴ２０３では、作成した法線方向ヒストグラムの中で所定のしきい値を超える部分をピークとして抽出する。以下、抽出したピークに順に着目して、それぞれＳＴ２０４〜２０６の処理を実行する。
【０１０２】
ＳＴ２０４では、着目中のピークに対応する法線方向を有する三角平面を全て抽出し、これらを平面間の距離に基づいてグループ分けする。具体的には、三角平面毎に３頂点のうちのいずれか１点の座標、または３頂点から導き出した重心の座標を用いたクラスタリング処理により、１または複数のグループを設定する。
法線方向ヒストグラム中の１つのピークは、ほぼ一定の法線方向をもって広がる比較的面積の大きい部位を反映している場合もあれば、同様の法線方向を有する複数の部位を反映している場合もある。ＳＴ２０４の処理で設定された各グループは、それぞれ１つ１つの部位に対応するものである。
【０１０３】
ＳＴ２０５では、設定された各グループのうちの１つに着目し、そのグループに対応する部位のすべてを検査するのに必要な撮像用の設定情報を作成し、登録する。この処理については、図１６を用いて、詳細に説明する。なお、図１６では、便宜上、各処理をＳＴ３０１〜３０８として示す。
【０１０４】
ＳＴ３０１では、処理対象のグループに含まれる各三角平面の面積を求め、その総和をグループに対応する部位の面積とする。
つぎのＳＴ３０２では、グループの三角平面群が含まれる領域に、ＳＴ３０１で求めた面積に応じて１または複数個の代表点（領域代表点として機能する。）を設定する。ここでは、たとえば、直交する方向毎にそれぞれ視野サイズに応じた間隔で代表点を設定しても良い。しかし、グループに属する三角平面は必ずしも隣接した状態にはなく、これらの間にグループ外の平面が入る可能性もあるので、各代表点がグループに属する三角平面上に設定されるように調整するのが望ましい。
【０１０５】
ＳＴ３０３では、設定した代表点の１つに着目し、この代表点が中心に位置するように視野対応領域を設定する。ＳＴ３０４では、この視野対応領域から処理中のグループに属する三角平面を抽出する。なお、ここでも、前記図６のＳＴ１０６の処理と同様に、視野対応領域に完全に含まれる三角平面のみを抽出対象とする。
前記したように、グループに属する三角平面は必ずしも隣接していないから、視野対応領域にグループ外の三角平面が含まれる可能性がある。また代表点の位置によっては、グループの三角平面群より外側に位置する三角平面が視野対応領域に含まれる場合もある。しかし、グループに属する三角平面上に代表点を設定すれば、ＳＴ３０４では、グループに属する三角平面を少なくとも１つ抽出することができる。
【０１０６】
ＳＴ３０３，３０４の処理は、設定したすべての代表点について順に実行される。すべての代表点に対する処理が終了すると、ＳＴ３０５が「ＹＥＳ」となってＳＴ３０６に進み、処理対象のグループに属するすべての三角平面を抽出できたかどうかをチェックする。この判定が「ＮＯ」の場合には、ＳＴ３０７に進み、グループ内の未抽出の三角平面上に代表点を追加設定する。
【０１０７】
この後、追加設定した代表点についても、ＳＴ３０３〜３０５の処理を実行する。この結果、グループに属するすべての三角平面が抽出されると、ＳＴ３０６が「ＹＥＳ」となってＳＴ３０８に進み、設定した代表点の座標およびグループに対応する法線方向をメモリ５３に登録する。
【０１０８】
グループに属するすべての三角平面が抽出されるということは、ワークＷ上でこれらの平面に対応する個々の領域が、すべていずれかの視野対応領域に含まれて検査可能になったことを意味する。よって、グループに属するすべての三角平面が抽出されるまで、ＳＴ３０３〜３０７を繰り返すことにより、グループ全体を検査するのに必要な撮像用の設定情報が作成され、登録される。
なお、代表点の座標は、ＸＹＺ座標系で表される。また法線方向は、前記した方位角αおよび仰角βにより表される。
【０１０９】
図１５に戻って、ＳＴ２０５の処理（ＳＴ３０１〜３０８）は、ヒストグラム中の１ピークにつき設定されたグループ毎に実行される。この結果、法線方向が同様の複数の部位が距離を隔てて位置する場合でも、部位毎にその部位の検査に必要な設定情報が作成され、登録される。
設定されたすべてのグループについて、ＳＴ２０５が実行されると、ＳＴ２０６からＳＴ２０７を介してＳＴ２０３に戻り、ヒストグラムからつぎのピークを抽出し、そのピークに対し、上記と同様の処理を実行する。
以下、ヒストグラムに含まれるすべてのピークについて、ＳＴ２０３〜２０６の処理が終了すると、ＳＴ２０７が「ＹＥＳ」となってＳＴ２０８に進む。
【０１１０】
ＳＴ２０８では、被検査面に含まれる三角平面のうち、前記ＳＴ２０５の「設定情報の作成・登録」の処理により抽出されていない三角平面を対象に、これらを法線方向および平面間の距離に基づきグループ分けする。
このグループ分けでは、平面間の距離についてはＳＴ２０４と同様の処理を行うが、距離を算出する対象を、法線方向を示す角度α，βの差がそれぞれ所定値以内となる三角平面の組に限定する。この処理により、ピーク以外の法線方向に対応する部位についても、少なくとも１つのグループを設定することができる。
【０１１１】
ＳＴ２０９では、ＳＴ２０８で設定されたグループ毎に、設定情報の作成および登録処理を実行する。この処理は、前記ＳＴ２０５と同様のもの、すなわち図１６のＳＴ３０１〜」３０８をグループ毎に実行するものである。
【０１１２】
この結果、すべてのグループに対する処理が終了すると、ＳＴ２１０が「ＹＥＳ」となり、一連の設定処理を終了する。
【０１１３】
なお、上記図１５，１６の処理では、被検査面に対応するすべての三角平面が検査可能になっていることを確認するのみで、図６のＳＴ１１０に該当する検査領域の割り付け処理は行っていない。よって、検査の際には、毎時の撮像により生成された画像について、前記した良品ワークの基準画像との差分演算処理を実行し、その演算結果である強度差画像を２値化することにより、凹凸欠陥を検出する。その他の検査時の処理は、先の図１３に示したものに準ずる流れとなるので、この実施例では詳細な説明を省略する。
【図面の簡単な説明】
【０１１４】
【図１】この発明の一実施例にかかる検査装置について、主要部の外観と制御系のブロック図とを対応づけた図である。
【図２】光学系の詳細な構成を示す説明図である。
【図３】欠陥の検出原理を示す説明図である。
【図４】カメラのレンズに正反射光が入射する範囲を示す説明図である。
【図５】ワークと３次元座標との関係を示す説明図である。
【図６】設定処理の流れを示すフローチャートである。
【図７】図６のＳＴ１０３の処理結果の例を示す説明図である。
【図８】図６のＳＴ１０４の処理結果の例を示す説明図である。
【図９】図６のＳＴ１０６の処理結果の例を示す説明図である。
【図１０】法線方向ヒストグラムの作成に使用するデータと法線方向ヒストグラムの作成例を示す説明図である。
【図１１】最初の設定処理で検査領域が割り付けられた範囲と、割り付けられなかった範囲に新たに設定された視野対応領域とを示す説明図である。
【図１２】三角平面の頂点Ｐに対する画像中の対応点の座標を求めるための原理を示す説明図である。
【図１３】検査時の処理の流れを示すフローチャートである。
【図１４】他の実施例の検査装置の外観を示す図である。
【図１５】第２実施例の装置における設定処理の流れを示すフローチャートである。
【図１６】設定情報の作成・登録処理の詳細を示すフローチャートである。
【符号の説明】
【０１１５】
Ｗ  ワーク
１  カメラ
２  照明装置
３  ロボット
４  ロボットコントローラ
５  制御処理装置
５０  ＣＰＵ
５３  メモリ
５０２  撮像制御部
５０４  画像処理部
５０５  検査部
５０６  ロボット制御部
【図１】
2007248241.tif 000005
【図２】
2007248241.tif 000006
【図３】
2007248241.tif 000007
【図４】
2007248241.tif 000008
【図５】
2007248241.tif 000009
【図６】
2007248241.tif 000010
【図７】
2007248241.tif 000011
【図８】
2007248241.tif 000012
【図９】
2007248241.tif 000013
【図１０】
2007248241.tif 000014
【図１１】
2007248241.tif 000015
【図１２】
2007248241.tif 000016
【図１３】
2007248241.tif 000017
【図１４】
2007248241.tif 000018
【図１５】
2007248241.tif 000019
【図１６】
2007248241.tif 000020