以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施の形態の部材に特定するものでは決してない。特に実施の形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
(1.画像検査装置1の構成)
本発明の実施の形態1に係る画像検査装置のブロック図を、図1に示す。この図に示す画像検査装置1は、ワーク(以下、「ワークWK」ともいう。)を一定の方向から撮像する撮像手段11と、ワークWKを異なる三以上の照明方向から照明するための照明手段と、各照明手段を一ずつ点灯順に点灯させるための照明制御手段31と、照明制御手段と撮像手段と接続されてこれらを制御する画像処理部41を備えている。画像処理部41と撮像手段とは、撮像ケーブル12を介して、また画像処理部41と照明制御手段31とは照明ケーブル32を介して、それぞれ接続されている。また画像処理部は、表示手段51と操作手段61を接続している。さらに画像処理部には、必要に応じて外部機器であるPLC(Programable Logic Controller)やコンピュータ等と接続することもできる。
撮像手段は、照明制御手段により各照明手段を点灯させる照明タイミングにて、ワークWKを一定の方向から撮像することにより、照明方向の異なる複数の部分照明画像を撮像する。
画像処理部は、撮像手段によって撮像された複数の部分照明画像同士で、対応関係にある画素毎の画素値を用いて、フォトメトリックステレオ法に基づき、照明方向を仮定した仮定照明方向におけるワークの表面のソース画像を、複数の異なる仮定照明方向毎に生成するソース画像生成手段として機能する。ソース画像生成手段は、具体的には、法線ベクトル算出手段41aと、輪郭画像生成手段41bと、テクスチャ抽出画像生成手段41cと、検査領域特定手段41dと、画像処理手段41eと、判定手段41fと、照明方向推定手段41gの機能を実現する。法線ベクトル算出手段41aは、撮像手段によって撮像された複数の部分照明画像同士で、対応関係にある画素毎の画素値を用いて、各画素のワークWKの表面に対する法線ベクトルnを算出する。輪郭画像生成手段41bは、算出された各画素の法線ベクトルnに対して、X方向及びY方向に微分処理を施し、ワークWK表面の傾きの輪郭を示す輪郭画像を生成する。テクスチャ抽出画像生成手段41cは、照明手段による照明する回数個ある、算出された各画素の法線ベクトルnから、各画素のアルベドを算出し、アルベドから、ワークWKの表面の傾きの影響を除去した模様を示すテクスチャ抽出画像を生成する。検査領域特定手段41dは、生成された輪郭画像に対して検査対象となる検査領域の位置を特定する。画像処理手段41eは、特定された検査領域内の傷を検出するための画像処理を施す。判定手段41fは、処理結果に基づいて、ワークWK表面の傷の有無を判定する。照明方向推定手段41gは、ソース画像生成手段によって生成された複数の画像を基にする複数のソース画像SP(後述)から、照明手段における実際の照明方向と最も整合する照明方向を検出する。
撮像手段と照明手段とは、別個の部材として配置可能としている。これによって自由度の高いレイアウトが可能となる。一例として、図2の模式平面図及び図3の模式側面図に示すように、ステージSG上に載置されたワークWKの真上に、光軸を鉛直方向に向けた撮像手段11を配置する。また撮像手段11の周囲の東西南北の方位に、4個の照明手段、すなわち第一照明手段21、第二照明手段22、第三照明手段23、第四照明手段24を、同一の高さに配置する。配置された撮像手段と各照明手段の位置関係は、画像検査装置側で記録される。照明制御手段により所定の照明タイミングで各照明手段を順次点灯させて、共通の撮像手段でもって、ワークを一定の方向から撮像して部分照明画像を取得する。
なお、撮像手段と照明手段とは、別個の部材とする構成に限らず、これらをアーム等を介して一体に構成してもよい。この場合は、予め撮像手段と照明手段の位置関係が固定されているため、光軸を一致させるといった調整作業を不要とできる。ただし、自由度が失われる。
(撮像手段)
撮像手段11は、例えば、CCD(Charge Coupled Device)カメラやCMOS(Complementary Metal Oxide Semiconductor)イメージャ等の撮像素子が利用できる。撮像素子で被写体の画像を光電変換して画像信号を出力し、出力された画像信号を信号処理ブロックが輝度信号と色差信号とに変換して、撮像ケーブル12で接続された画像処理部41に出力する。
(照明手段)
照明手段21、22、23、24は、ワークWKに対して、異なる照明方向から照明光を照射できるよう、図2の模式平面図に示すようにワークWKの周囲をとり囲むように配置される。また図3の模式側面図に示すように、各照明手段は、光軸を斜め下方に向けて設置される。各照明手段で照明されたワークを、共通の撮像手段で撮像できるよう、撮像手段の光軸と、照明手段を設けた平面(仮想回転面)の中心軸とを一致させることが好ましい。また、照明手段同士の間隔(中心軸からの方位角)は、360°を照明手段の数で均等に分割して配置することが好ましい。さらに天頂角は、すべての照明手段で一定とすることが好ましい。さらにまた、各照明手段とワークとの距離も、一定とすること好ましい。このようにすることで、フォトメトリックステレオ処理の演算に必要な方位角や天頂角情報の入力を簡易化できる。また後述の通り、全灯画像MCを撮像する際はすべての照明手段を点灯した全灯状態で撮像するため、上記状態にすれば、全照明の強さを均等に弱めるだけで、ムラの少ない照明状態で撮像できる。
図1の例では、第一照明手段21、第二照明手段22、第三照明手段23、第四照明手段24の4つで構成される。各照明手段は、白熱球や蛍光灯等が利用できる。特に、発光ダイオード(Light Emitting Diode:LED)等の半導体発光素子は、消費電力が少なく長寿命で応答性にも優れ、好ましい。各照明手段は、図1に示すように、それぞれに対応するケーブル71、72、73、74を介して、照明分岐ユニット75に接続され、さらにケーブル76を介して、照明制御手段31に接続されている。
(照明分岐ユニット)
照明分岐ユニットは、各照明手段を照明制御手段と接続するためのインターフェースである。具体的には、照明手段から延長された照明ケーブルを接続するための照明接続コネクタを設けている。図1の例では、4つの照明手段を接続するよう、4つの照明接続コネクタを設けている。この際、照明ケーブルを正しく照明接続コネクタに接続するよう、設置補助手段としてマーク等を設けてもよい。各照明手段の照明メーブルを、照明分岐ユニットの照明接続コネクタに正しく接続することで、照明制御手段でもって正しい順序で正しい方向から照明手段を点灯でき、さらに各照明タイミングと同期させて撮像手段を動作させることで、部分照明画像を撮像できる。なお、照明分岐ユニットは、図1の例では照明制御手段と別体に設けられているが、この構成に限られず、例えば照明制御手段に照明分岐ユニットを組み込んでもよい。
照明手段21、22、23、24の照明色は、ワークWKのタイプに応じて変更することもできる。例えば、細かい傷を検査したい場合には、波長が短い青色が好適である。また、着色されたワークを検査するときは、照明の色が邪魔にならないように、白色の照明を使うのが好ましい。さらに、ワークに油が付いているときには、その影響を防ぐために、赤色の照明を採用するとよい。
また照明手段は、上述した図1〜図3の例では4個としているが、異なる三以上の照明方向からワークWKを照明できるよう、少なくとも3個あれば足りる。照明手段の数を増やすと、より多くの照明方向から部分照明画像が得られるため、画像検査の精度を向上できる。例えば、北東、北西、南東、南西の方位を加えて全部で8個配置してもよい。また、照明手段同士の間隔(中心軸からの方位角)は、360°を照明手段の数で均等に分割して配置することが好ましい。さらに天頂角は、すべての照明手段で一定とすることが好ましい。なお、処理すべき画像の枚数が増えることで処理量が増え、処理時間が遅くなる。本実施の形態においては、処理速度と演算処理のし易さ、精度等のバランスを考慮して、上述の通り照明手段の数を4個としている。
また、照明手段を、環状に配置された複数個の発光素子で構成することもできる。例えば図4に示す実施形態2に係るリング照明では、環状に配置された発光素子を4つの照明ブロックに分割している。そして照明制御手段が、第一照明ブロックを第一照明手段、第二照明ブロックを第二照明手段、第三照明ブロックを第三照明手段、第四照明ブロックを第四照明手段として、それぞれの照明ブロックの照明タイミングを異ならせることで、4つの別個の照明手段が存在するのと同様に制御できる。
またこの構成であれば、同一のリング照明を用いて、照明手段の数を任意に変更できる利点も得られる。すなわち、各発光素子の点灯を照明制御手段で任意に制御できる場合は、図5に示すように、環状に配列された発光素子の円周を4区分から5区分に分割するように照明ブロックを変更し、5つの照明ブロックをそれぞれ点灯させる照明タイミングをずらして各部分照明画像を撮像するように照明制御手段で制御することで、5つの照明方向からの部分照明画像を取得できる。さらに同様に環状の円周を6分割、7分割に変更すれば、照明方向をさらに増やすことができる。また、常時一定の照明ブロックにて部分照明画像を取得する構成に限らず、周期毎に照明ブロックを変更してもよい。このように、各発光素子の点灯パターンを調整することで、同一のリング照明を用いて、仮想的に照明ブロックの数を変更し、照明手段の数を調整するのと同様の効果を得ることができる。言い換えると、共通のハードウェアでもって異なる精度に対応できる。
さらに照明手段は、円環状に配置する他、実施形態3として図6の模式平面図に示すように、バー状に構成された照明手段を矩形状に配置したり、実施形態4として図7の模式平面図に示すように、多角形状に配置することもできる。
あるいは、照明手段を円や多角形の環状に配置する他、平面状に配置することもできる。例えば、多数の発光素子を平面状に配置し、点灯する照明ブロックを変化させることで、異なる照明方向を実現することもできる。具体的には、図8に示す変形例に係る照明手段のように、同心円状の円環を複数重ねた照明ユニット20’を構成し、半径の異なる各円環をそれぞれ照明ブロックとして照明手段を構成する。あるいは、図9に示す他の変形例に係る照明手段のように、ドットマトリックス状に発光素子を並べた照明ユニット20”としつつ、中心を通る複数の線分で分割した照明ブロックでもって照明手段を構成してもよい。このように本発明において照明手段や照明方向とは、必ずしも物理的に離間された照明に限られず、一の照明手段を複数に分割した照明ブロックでもって、照明を行う構成も含む意味で使用する。
なお、本実施例においては各照明手段による部分照明光が撮像範囲内で並行光であるとの前提で処理している。部分照明光が平行光である限り、照明光の方向(例えば東西南北のいずれか)だけが問題となり、その詳細な位置、例えば照明手段の光源の座標位置等は考慮する必要はない。
(照明制御手段)
照明制御手段は、三以上の照明手段を一ずつ点灯順に点灯させると共に、各照明手段を点灯させる照明タイミングにて、ワークを撮像手段で一定の方向から撮像するよう、各照明手段と撮像手段を同期させるように制御する。いいかえると照明制御手段は、照明手段による照明タイミングと、撮像手段による撮像タイミングとを同期させる。また照明制御手段が各照明手段を点灯させる点灯順は、ワークの周囲を取り囲むように配置された照明手段を、時計回り、反時計回りといった順で点灯させる他、離散的な順序、例えば一つおきや交差するような順としてもよい。どのような順であっても、各照明タイミングで撮像された部分照明画像が、どの照明方向の照明にて撮像されたものであるかを把握できれば、フォトメトリックステレオ法に基づいて法線ベクトル画像を構築できる。
なお図1の実施形態1では、照明制御手段31は、画像処理部41と別体として設けられているが、この構成に限られない。例えば、図10に示す実施形態5のように、画像処理部41と一体化されていてもよいし、あるいは図11に示す実施形態6のように、照明手段25に内蔵されていてもよい。
(画像処理部)
画像処理部41は、撮像手段11及び照明手段21、22、23、24の動作を制御するとともに、撮像手段11から入力された4つの部分照明画像の画像信号Q1〜Q4を用いて、各画素における面の法線ベクトル画像(以下、「傾き画像」という。)を生成し、傾き画像のX方向及びY方向の第2次の傾き画像(以下、「輪郭抽出画像」という。)や、アルベド(albedo、反射率を意味する。)画像(以下、「テクスチャ抽出画像」ともいう。)を作成し、それらの画像を用いて、傷の検査や文字の検出等を行うための処理をする。なお、傷の検査や文字の検出等を行うための処理は、画像処理部41で処理する構成に限らず、例えばPLC81等の外部部機器側で実行させることもできる。
図12は、画像処理部41の信号処理系42を示している。信号処理系42は、CPU43、メモリ44、ROM45、表示手段51、ポインティングデバイス等の操作手段61、撮像手段11、照明制御手段31、結果出力処理を実行するPLC(プログラマブル・ロジック・コントローラ)81より構成されており、これらは、バス46やケーブル12、32、52、62、82を介して互いに接続されている。なお、ROM45は、可搬メディアであってもよい。また表示手段51を、例えばタッチパネルとする等、操作手段61と兼用させてもよい。
CPU43は、ROM45に格納されているプログラムに基づいて、メモリ44、ROM45、表示手段51、操作手段61、撮像手段11、照明制御手段31、PLC81の相互間でのデータの送受を制御したり、表示手段51、撮像手段11、照明制御手段31の制御を行っている。
画像処理部41は、例えば、プログラムが格納された1台のコンピュータを想定しているが、複数のコンピュータの組み合わせにより各手段が構成されるようにしてもよいし、一部の手段を専用の回路により構成してもよい。あるいは、ASICのように専用設計された部材とすることもできる。
(判定手段)
画像処理部41は上述の通り、判定手段の機能を実現する。判定手段は、得られたテクスチャ抽出画像に基づいて、傷の有無や大きさの検査を行う。例えば所定の閾値以上の場合に傷であると判定する。また、判定手段は必要に応じて輪郭抽出画像に基づいてOCRを行い、認識された文字列を出力することもできる。
(基本原理)
次に、以上の画像検査装置を用いて、ワークの外観検査を行う基本原理について、従来技術である特許文献1の技術と対比しながら説明する。まず特許文献1に開示された技術の基本原理は、フォトメトリックステレオ法の原理を利用し、未知の面に対して、様々な方向から光を当てて、ワークの反射光の違いを利用してワークの形を推定しようとするものである。ワークの反射光は、照明の入射角度、照明の距離等を反映し、入射角度が90°になるところが最も明るくなり、照明との距離が離れれば離れるほど暗くなる性質がある。
この性質を利用して、明るさと位置が既知である照明を複数個用意して、照明の点灯を順に切り替えていき、それぞれの点において、各方向の照明から照射されたときの反射光の明るさの違いを利用して表面がどちらを向いているかを推定する。具体的には、傾き画像のX成分Y成分を、X成分の輝度に置き換えたX成分画像やY成分の輝度に置き換えたY成分画像を作成して検査に応用しようとするものである。
しかしながら、この方法は、照明やワークの設置面の僅かな傾きや、元々入力している照明の位置等の入力情報の過誤に対して、得られる検査画像が大きく変化してしまう等、ロバスト性に劣るという問題があった。例えば、実際には凸凹がないのに凸凹の画像になったり、あるいは照明に対しては通常、近くが明るく見えるところ、明るさの変化によってワークの中央が盛り上がったような画像に見えるといった、ワークの実際の形状に即した検査画像が必ずしも得られないという欠点があった。
これに対して、本実施の形態に係る画像検査技術の基本原理は、フォトメトリックステレオ法を利用して第1次の傾き画像を生成することを出発点としながらも、得られた第1次の傾き画像をX方向及びY方向に微分処理して第2次の傾き画像、すなわち、輪郭抽出画像を作成し、その画像を用いて、傷の検査等を行うものである。第2次の傾き画像は、前述の欠点が生ずるようなケースであっても、その影響が小さく、面の傾き変化の大きいところが暗くなる階調とする一方、面の傾き変化の小さいところが明るくなる階調と設定することで、ワークの表面の傾きが大きく変化する傷や輪郭等を抽出するのに好適な画像となる。
また、特許文献1に開示された技術では、フォトメトリックステレオ法を利用して生成した反射率画像(テクスチャ抽出画像に相当。)は、ハレーションが起きてしまい、文字の検出等が困難な場合があった。これに対して、本実施の形態に係る画像検査技術は、基本的には、2つの照明でしか同じ箇所ではハレーションしないという基本原理を利用して、各画素において、例えば4つの画素値の内、上から3つ目の画素値を採用することで、ハレーションの影響を取り除くようにしている。
加えて、特許文献1に開示された画像処理装置は、カメラと照明用の光源を一体に構成しているが、この構成では、カメラと光源が大型化して、設置に際して大きさの制約を受けるという問題もあった。これに対して本実施の形態に係る画像検査装置では、撮像手段と照明手段を別個の部材とできるので、配置スペースを考慮したより柔軟な設置が可能となって、使い勝手の面でも有利となる。
(フォトメトリックステレオ法の基本原理)
ここで、図13A〜図13Dを参照しながら、フォトメトリックステレオ法の基本原理について説明する。まず、図13Aに示すように、未知の拡散反射面S、及び明るさと位置が既知の複数の照明(この例では第一照明手段L1と第二照明手段L2の2個)がある場合を想定する。例えば図13Bに示すように、第一照明手段L1から光を照射すると、拡散反射面Sの表面における拡散反射光は、(1)照明の明るさ(既知)、(2)照明の向き(既知)、(3)ワークWKの表面の向き(法線ベクトルn)、(4)ワークWKの表面のアルベドのパラメータのみで決定される。
そこで、図13B及び図13Cに示すように、複数の異なる照明方向、具体的には三以上の照明方向から照明光が投光されたときの拡散反射光からなる部分照明画像を、それぞれ撮像手段で撮影する。そして図13Dに示すように、3以上の部分照明画像を入力画像とすることで、未知である(3)ワークWK表面の向き(法線ベクトルn)、(4)ワークWK表面のアルベドを、以下の関係式に基づいて算出できる。
I=ρLSn
上式において、
ρ:アルベド
L:照明の明るさ
S:照明方向行列
n:表面の法線ベクトル
I:画像の階調値
上式から、照明手段が3つの場合、次式で表すことができる。
また照明手段が4つの場合は、次式で表すことができる。
(法線ベクトルn)
上式より、法線ベクトルnは、次式で表現できる。
n=1/ρL・S+I
上式において、
S+:正方行列であれば、普通の逆行列
S+:縦長行列の逆行列は以下の式で表現されるムーアペンローズの擬似逆行列
S+=(StS)-1St
で求める。
(アルベド)
さらにアルベドρは、次式で表現できる。
ρ=|I|/|LSn|
(2−2.輪郭抽出画像)
次に、フォトメトリックステレオ法で傾き画像を生成すると共に、得られた傾き画像から、傷や輪郭等のワークの表面情報を得る方法について説明する。
(傾き画像)
まず、傾き画像の生成方法について説明する。ワークの曲面をSとするとき、傾き画像は次式で与えられる。
x方向:δs/δx、y方向:δs/δy
ここで傾き画像の例として、ワークとして一円玉を用いた例を図14A、図14Bに示す。図14Aは、法線方向のY座標成分画像、図14Bは法線方向のX座標成分画像である。ここでは、4つの照明方向から撮像した部分照明画像を用いて、Y方向(図において垂直方向)に微分することで図14Aに示す傾き画像を、またX方向(図において水平方向)に微分することで図14Bに示す傾き画像を図14Bを、それぞれ得ている。
ここで、傷や輪郭等はワーク表面の傾きが変化する箇所なので、傾き画像をそれぞれの方向に微分する。第2次の傾き画像は、次式で与えられる。
x方向:δ2s/δx2、y方向:δ2s/δy2
(輪郭抽出画像)
以上から、x方向、y方向の傾き画像の部分δ2s/δx2、δ2s/δy2を合成して、ワークの輪郭や傷情報を含む輪郭抽出画像を生成する。輪郭抽出画像Eは、次式で与えられる。
E=δ2s/δx2+δ2s/δy2
上式において、Eは輪郭情報、Sはワークの曲面をそれぞれ示している。図14A、図14Bから演算された輪郭抽出画像の例を、図14Cに示す。輪郭抽出画像は、高い部分が白色、低い部分が黒色となるように、画像の濃淡(輝度)で高さを表現している。
(微分合成方法)
以上のような輪郭抽出画像の生成に際して行われる微分合成方法としては、(1)単純加算、(2)多重解像度、(3)二乗和等が挙げられる。
(1:単純加算)
ここで(1)の単純加算は、各画素におけるX,Y傾き画像の微分の和である。
(2:多重解像度)
また(2)の多重解像度は、傾き画像を異なる縮小率で縮小した縮小傾き画像を複数作成し、それぞれの縮小傾き画像において、(1)の方法で輪郭の強さを求める。縮小率は、例えば1/1、1/2、1/4、1/8、1/16、1/32等とする。このようにして得られた複数の縮小輪郭画像に対して、所定の重み付けを行い、拡大処理を行い、拡大された縮小輪郭画像をすべて足し合わせたものを輪郭抽出画像とする。ここで重み付けを変更すれば、任意の太さの傷や輪郭等を抽出することが可能となる。
(3:二乗和)
さらに(3)の二乗和では、X,Y傾き画像の微分の二乗の和を輪郭の強さとする輪郭抽出画像を作成する。なお、本実施形態においては、(2)の多重解像度を採用している。
如何なる大きさを傷として判断するかは、ユーザの用途によって異なる。例えば、10ピクセルに跨がったものを傷として判断する場合もあれば、100ピクセルに跨がっている凹んだものを傷として判断する場合もある。また、急峻なエッジだけをエッジとして抽出したい場合もある。
傾き画像の画素数が大きいと処理上は大きな傷となるため、大きな傷を抽出したければ、傾き画像を縮小してから(1)の方法で輪郭の強さを求めてから拡大する。一方、小さな傷を抽出したければ、重み付けをせずに(1)の方法で微分合成をすればよい。
すなわち、重み付けは、合成するときに予め決められた重みのセットを用意しておき、縮小傾き画像を上記の全種類作成し、大きい傷を見たければ、より縮小した画像からの結果を重くし、小さい傷を見たければ、縮小を弱めた画像からの結果を重くする。
ここで、拡大された縮小輪郭画像をすべて足し合わせたものを輪郭抽出画像とするのは、傷は、通常、複数の周波数に跨がって検出されるため、例えば一つの周波数に限定すると、その限定した周波数で検出される傷だけを抽出してしまい、全体的にぼやけてしまうからである。
(特徴サイズ)
前述した重みのセットは、例えば、特徴サイズというパラメータを設けて、この値が1のときに一番細かい傷が検出でき、この値を上げていくと大きな傷が検出できるようにする。特徴サイズを大きくしていき、より大きな傷が検出し易い状態になったとき、ワーク表面の凸凹がより明瞭となる。そこで、特徴サイズに所定の閾値を設けて、その閾値以上になった場合を凹凸モードとして、輪郭抽出画像の特徴サイズによって、輪郭抽出モードと使い分けるようにしてもよい。
次に、δ2s/δx2及びδ2s/δy2の計算方法について説明する。この計算方法としては、(1)前進差分や、(2)中央差分等が挙げられる。
(1:前進差分)
前進差分においては、水平方向の傾き画像Gh、垂直方向の傾き画像Gvを入力として、輪郭画像Eの座標(x、y)における画素G(x,y)を、次式で計算する。
E(x,y)=Gh(x−1,y)−Gh(x,y)+Gv(x,y−1)−Gv(x,y)
ここで、輪郭画像に表れる傷の情報を、模式的なプロファイルとして図15A〜図15Dに示す。これらの図において、図15Aはワークの表面情報、図15Bは傾き画像、図15Cは前身差分による輪郭画像、図15Dは中央差分による輪郭画像のプロファイルを、それぞれ示している。(1)の前進差分では、図15A、図15Cに示すように、1ピクセル単位の傷が明瞭に見えるというメリットがある。一方で、元画像に対して0.5ピクセルずれた画像が得られてしまうというデメリットもある。
(2:中央差分)
次に中央差分によるδ2s/δx2及びδ2s/δy2の計算方法について説明する。水平方向の傾き画像Gh、垂直方向の傾き画像Gvを入力として、輪郭画像Eの座標(x、y)における画素G(x,y)を、次式で計算する。
E(x,y)=Gh(x−1,y)−Gh(x+1,y)+Gv(x,y−1)−Gv(x,y+1)
(2)の中央差分は、図15A、図15Dに示すように、座標が元画像とずれないメリットがある一方で、結果が少しぼけてしまうというデメリットもある。
(2−3.テクスチャ抽出画像)
次に、フォトメトリックステレオ法で得られた傾き画像から、ワークの表面状態を除去して、文字の検出等に好適なテクスチャ抽出画像を得る方法について説明する。まず、テクスチャ情報は、ワークの表面のアルベドρから計算する。アルベドρは、次式で与えられる。
ρ=|I|/|LSn|
上式において、
ρ:アルベド
L:照明の明るさ
S:照明方向行列
n:表面の法線ベクトル
I:画像の階調値
なお上記ρ=|I|/|LSn|の式でテクスチャ抽出画像(アルベド)を1枚求めることができるが、この式で得られた法線ベクトルとN枚の入力画像(部分照明画像)から、テクスチャ抽出画像(アルベド)をN枚求めてこれを合成し、一枚のテクスチャ抽出画像(アルベド)を求めることもできる。具体的な合成の方法としては平均法、ハレーション除去法等が挙げられる。
図16A〜図16Cに、テクスチャ抽出画像の例を示す。これらの図において、図16Aは入力画像である4枚のテクスチャ抽出画像を示しており、図16Bはこれらに対して平均法を適用したテクスチャ抽出画像、図16Cはハレーション除去法を適用したテクスチャ抽出画像を、それぞれ示している。
(1:平均法)
平均法は、画素毎にN個のρの平均値をその画素における画素値とするものである。図16Bに示すように、全体の陰影は消えているものの、入力画像中でハレーションが生じている部分は、フォトメトリックステレオ法で消せないため、ハレーションの影響が残った画像となる。すなわち図16Aの4つの入力画像(部分照明画像)の内、白くなっている箇所がハレーションを起こしている箇所であり、平均法によって平均化すると、図16Bに示すように、ある程度凸凹が取れて、読み易くはなるものの、若干下地に凸凹が残ってしまう。
(2:ハレーション除去法)
撮像手段であるカメラのダイナミックレンジの制限やワーク表面の反射性の多様性のため、上記ρ=|I|/|LSn|の式そのものがその適応範囲を超えているため、ρに誤差が含まれる。この誤差を補正するために、ハレーション除去法が利用できる。
ハレーションが起きる箇所は照明の位置で決まるため、基本的には、4つの部分照明画像において、同じ箇所ではハレーションは起きないと考えられる。厳密にいえば、2つの方向の間ではハレーションが2カ所に跨がってしまうことがあるものの、基本的には、2つの照明でしか同じ箇所ではハレーションは生じないと言える。
ハレーション除去法では、N枚の部分照明画像から計算した照明方向別テクスチャ抽出画像を合成する際に、各画素において一番画素値が高い部分照明画像、又は一番目〜N番目に画素値が高い部分照明画像はハレーションが多いと考えて、それらを除去した上で合成を行う。
具体的には、本実施形態において4つの照明方向別テクスチャ抽出画像の各画素について、3番目に大きい画素値(例えばアルベドの値や輝度)を採用して合成すると、図16Cの画像のようになり、ハレーションの影響を除去することができる。なお4番目に大きい画素値を採用すると、影の影響が生じるため若干暗い画像となる。逆に2番目に大きい画素値を採用すると、ハレーションの影響が若干残ってしまう。
また照明手段が8方向の場合は、5番目以降の画素値にはハレーションの影響は発生しないと仮定して、上から5番目の画素値を採用している。実際、発明者が行った試験によれば、5番目の画素値を採用すると、画像が最も良くなることが確認された。また6番目以降の画素値を採用すると影の影響が出てくることも判明した。
なお、合成の方法や平均の取り方は、これらに限定されず、種々の方法が利用できる。例えば、上述したハレーション除去法と平均法とを組み合わせて、アルベドの値をソートして、上から特定の順番の値を採用し、例えば3番目と4番目とを平均化してもよい。
(特徴サイズ)
次に、設定の詳細について説明する。上述の通り、輪郭抽出画像を作成する際に、特徴サイズを設定できる。輪郭抽出画像は、特徴サイズを所定値以上にすることで、OCRに適した画像とできる。
(3−2.ゲイン)
輪郭抽出画像やテクスチャ抽出画像を作成する際には、これらの画像の生成過程において元の画像の画素値に対してゲインを乗算することができる。
輪郭抽出画像を作成するときのゲインは、計算処理で算出された画素値を、0〜255の濃淡に分散させるときの定数をいう。例えば、傷や輪郭等が浅すぎて、傷や輪郭等を把握し難いときにこのゲインの値を上げることによって、画素値の濃淡変化が大きくなるため、傷や輪郭等が把握し易くなる。
また、計算処理で算出された画素値が、0〜255の範囲を超えていれば、その間に収まるようにし、小さければ、0〜255の範囲に広げるように調節することで、傷や輪郭等が把握し易くなる。
上述したハレーション除去法では、アルベドの値をソートして上から例えば3番目を採用するため、生成した画像の明るさが予測できない。このため、正反射が取り除かれた結果、予測に反して暗くなることがある。そこで、明るさを調節するために、テクスチャ抽出画像を作成する際には所定のゲインを、画素値に掛ける。
なお、傾き画像の計算に際しても、画素値が0〜255の範囲に収まるように、同様にゲインで調節することもできる。
(3−3.ノイズ除去フィルタ)
傾き画像の作成等に際しては、複数枚の画像を使って連立方程式で計算するところ、実際には差分的な計算をすることになる。この際、撮像手段で撮像した画像データは、生データの時点でノイズが存在しているため、傾き画像を作成する際に、ノイズ成分が強調され、輪郭がざらざらすることがある。このようなノイズを軽減するために、ガイデットフィルタ(Guided Filter)等のノイズ除去フィルタを利用する。一般的なローパスフィルタでは、ノイズのみならず傷の情報もなまったり消えたりしてしまうことがあるが、ガイデットフィルタであれば、傾き画像を求める際にガイデッドフィルタを適用することで、エッジを維持したままノイズを除去でき、好適である。
(3−4.アングルノイズ低減)
次に、アングルノイズ低減の原理を、図17の模式図に基づいて説明する。この図に示すように、入射角がα,βという2つ照明があり、ワークWKが拡散反射面からなると仮定して、ワークWKの基準面に対する傾きをγ、基準面に垂直な向きからの角度をθ、照明αからの反射光の明るさをIα、照明βからの反射光の明るさをIβとしたとき、γは次式で与えられる。
γ=arctan(A・|Iβ−Iα|/|Iβ+Iα|)、A=cotθ
アングルノイズ低減は、|Iβ+Iα|がある程度小さいときに、強制的に傾きγを0とするものである。
仮に、IβもIαも極めて暗く、例えば、Iβ=2、Iα=1だとすると、|Iβ−Iα|/|Iβ+Iα|=1/3という大きな値となる。一方、IβもIαも明るく、例えば、Iβ=300、Iα=200だとすると、|Iβ−Iα|/|Iβ+Iα|=1/5という小さな値となる。Iβ=2、Iα=1というのは、単にノイズという可能性があるにも拘わらず、傾きに大きく反映されてしまうため、そのノイズの影響を軽減するために、アングルノイズ低減があり、強制的に傾きを0とする|Iβ+Iα|の閾値を設定できるようになっている。
(照明手段と撮像手段との分離型構造)
フォトメトリックステレオ法を利用した画像検査においては、照明手段と撮像手段との対応位置を予め厳格に規定しておく必要がある。このため、従来の画像検査装置では、照明手段と撮像手段を一体に構成していた。いいかえると、フォトメトリックステレオ法では、撮像手段と照明手段の相対位置を厳密に位置決めした上で正確な三次元計測を行う計測手法であることから、元来、照明手段と撮像手段の設置に際して設置位置の自由度を与えるということは従来行われていなかった。しかしながら、照明手段と撮像手段とを予め固定する構成では、これらの部材が一体化された撮像照明ユニットが必然的に大型化するため、取り回しが悪くなる。
例えば検査位置に障害物が存在すると、撮像照明ユニットと干渉して、設置できない事態が生じ得る。特に、撮像手段の一形態であるカメラに装着するレンズには、例えばラインカメラやズームレンズ、大型のマクロレンズのように、大きなサイズのものがある。このような大型のレンズを撮像手段に装着する等、撮像手段が長大化するほど、図18において矢印で示すように、ワークWKの周囲に存在する障害物OSとカメラe1又はその周囲に配置された照明用の光源e21〜e24と干渉するリスクが高くなる。さらに撮像手段であるカメラe1が長大化すると、図19に示すようにカメラe1やレンズの一部で照明光が部分的に遮られて、ワークWKに影を落とす等、照明に支障を来すことも考えられる。このような事態を回避するために、撮像照明ユニットを障害物と干渉しない位置まで遠ざけて配置しようとすれば、照明手段とワークとの距離(ライトワーキングディスタンス(Light Working Distance:LWD))が遠くなることから、照明光の光量が減少して、検査精度の低下に繋がる。
これに対して、撮像手段と照明手段を分離することができれば、障害物と干渉しない位置に配置しやすくなる。例えば上述した図18に示す障害物OSが存在する場合でも、第一照明手段21〜第四照明手段24を撮像手段11から離間させることで、図20に示すように、干渉しない位置に第一照明手段21〜第四照明手段24を設置することが可能となる。同様に、撮像手段に大型のレンズを装着する場合でも、レンズ12と第一照明手段21〜第四照明手段24との物理的干渉を回避するように調整可能である。このように、第一照明手段21〜第四照明手段24と撮像手段11とを分離型とすることで、障害物と干渉しない位置に調整する等、設置の自由度を高め、様々な環境でワークWKを検査することが可能となる。
また撮像手段が照明光を遮らないように、照明手段の取り付け位置等を調整することも可能となる。同様に、ハレーションや影の影響を抑制するように照明手段の配置位置を調整することも可能となる。特にフォトメトリックステレオ法では、ワークの表面が拡散反射面であることを前提にしているため、一般に、実際のワークの面とフォトメトリックステレオ法によって得られた傾き画像における面の法線ベクトルはズレてしまう。そこで、二階微分処理を行う等の対策が取られているが、このような方策に加え、照明手段を設置する際に、ハレーションを回避できる姿勢に調整することで、このようなズレを少なくすることができる。また、鏡面と同様に、明るさが変化してしまうような大きな凸凹では、ハレーションが悪影響を及ぼすようになる。例えば、ワークが円筒型の場合は、照明光を照射すると鏡面反射が生じるが、ここで凸凹が存在すると、鏡面反射の影響を少なからず受けるようになる。よって、照明光の設置位置や角度に自由度を与えることは、このような鏡面反射を低減するように予め調整することを可能にし、ひいては検査精度の向上に繋がる利点が得られる。
さらにフォトメトリックステレオ法では、影の影響を考慮する必要がある。フォトメトリックステレオ法は、照明の反射光から法線ベクトルを算出するため、反射光の検出が必須となる。しかし、例えばワークが複雑な形状で陰影が着き易いような場合に、このワークの近傍に照明手段を設置すると、光が届かない箇所からは適切な反射光が得られず、法線ベクトルの算出に支障を来すことがある。このような場合であっても、第一照明手段21〜第四照明手段24と撮像手段11との分離させたことで、第一照明手段21〜第四照明手段24を最適な位置や角度に設置して、このような影響を抑えることができる。
加えて、照明手段を撮像手段から分離したことで、照明光の高さを変更可能となる。この結果、ワークWKと照明との距離LWD(Light Working Distance)を小さくしたり、逆に大きくする検査が可能となり、ローアングルやマルチアングルの照明といった、検査用途に応じた適切な配置を選択できるようになる。
(1:LWDを小さく取った場合)
LWDを小さく取ると、図21Aに示すように、第一照明手段21〜第四照明手段24からの光が横方向から多く当たることになる。一般にハレーションが発生するのは、入射角と反射角が同じ場合であるから、第一照明手段21〜第四照明手段24とワークWKとを接近させてLWDを小さくすることで、ハレーションの発生する位置を、ワークWKの外側近傍とすることができる。言い換えると、ワークWKの外側で意図的にハレーションを発生し易くして、ワークWKの表面近傍でのハレーションを抑制できる。これにより、ワークWKの有効視野を増加させることができる。
また、LWDが小さい場合は、ローアングルでの照明となる。例えば上方からの直接照明では光が拡散して認識が困難なワーク表面上の凹凸でも、斜め側面から照射することで、小さい傾きの変化でもコントラストを大きく変化させて、浅い凸凹の変化を捉え易くできる。このようにローアングルでコントラストを強調することにより、フォトメトリックステレオ法において傾き画像や輪郭抽出画像をより鮮明にできる利点が得られる。
一方で、LWDを小さく取った場合のデメリットとしては、浅い角度で照明光を照射することにより、影が生じ易くなるため、有効視野が減少し、フォトメトリックステレオ処理が困難となることがある。また、第一照明手段21〜第四照明手段24とワークWKが干渉し易くなるため、高さの大きいワークWKに対しては利用が制限されることがある。
(2:LWDを大きく取った場合)
逆にLWDを大きく取ると、図21Bに示すように、第一照明手段21〜第四照明手段24からの照明光が上方向から多く照射されることになる。これによって影が生じ難くなるので、見えない領域が減少し、フォトメトリックステレオ処理の精度が向上する。また、第一照明手段21〜第四照明手段24とワークWKが干渉し難くなるため、高さの大きいワークWKに対しても好適に利用できる。
一方で、ハレーションの発生する位置がワークWKの内側となるので、有効視野が減少してしまうことがある。またLWDを大きい場合は、マルチアングル方式の照明においてLWDが遠い場合に相当し、コントラストが出難いため、ワーク表面の浅い凸凹の変化を捉え難いこともある。一方で、マルチアングル方式の照明により、LWDが遠い場合には、第一照明手段21〜第四照明手段24の写り込みや照度ムラの少ない均一な撮像状態を作り出し、ワークWKそのものの表面状態を明確に捉えた画像を得ることができる。
このように、撮像手段と照明手段を分離したことで、様々な目的や用途の検査に対応でき、また配置の自由度を高められるといった利点が得られる。その一方で、照明手段と撮像手段とを別体に構成してフォトメトリックステレオ法で画像検査を行う場合は、照明手段と撮像手段との相対的な位置関係を明確に設定する必要がある。すなわち、フォトメトリックステレオ法においては照明方向が既知であることを前提として実行される。もし、フォトメトリックステレオ法用に設定された仮想照明方向と、実際の照明方向とが異なる場合は、検査精度が低下したり、誤った結果が出力されてしまう虞がある。
ここで、照明方向を調整する方法としては、図22、図23に示すように、物理的に照明手段の位置を修正する方法と、現在の照明手段の位置、すなわち照明方向で、フォトメトリックステレオ法を実行するように、画像処理側で照明方向を実際に設置された照明手段のそれと一致させるように調整する方法が挙げられる。
前者の方法は、例えば図23に示すように、リング状に一体化した照明ユニットが発する各照明光の方向と、撮像手段の回転角度を一致させるように、相対的な回転位置を調整する作業が必要となり、非常に手間がかかる。また図22に示すように、各照明手段を分離して、独立して任意の位置に配置可能とした構成においては、上述した撮像手段との相対的な回転角度に加えて、照明手段同士の取り違えも起こるため、さらに調整作業が複雑化する。
これに対し後者の方法は、物理的な照明手段の角度や位置調整といった面倒な作業を行うことなく、ソフトウェア側で対応できるため、簡単で利便性に優れる。そこで本実施の形態においては、このような照明方向の調整を、照明方向推定手段41gを用いて行う手順を説明する。
(照明方向推定手段41g)
照明方向推定手段41gは、主として、画像処理部41により構成され、ソフトウェアによって処理がなされる。ここでは、(1)天頂角及び方位角のそれぞれがずれた場合の影響、(2)照明方向が検出できる原理、(3)ソフトウェアによる処理の観点から説明する。
(1)天頂角及び方位角のそれぞれがずれた場合の影響
まず、天頂角及び方位角のそれぞれがずれた場合の影響について説明する。ここで、天頂角とは、図24Aの模式側面図に示すように、撮像手段11からワークWKへのベクトルと第一照明手段21〜第四照明手段24のそれぞれからワークWKへのベクトルとがなす角である。また方位角とは、図24Bの模式平面図に示すように、画像の基準方向(図24Bの例では上方向)を示すベクトルと、撮像手段11から第一照明手段21〜第四照明手段24のそれぞれへのべクトルとがなす角である。なお図24Bにおいては、説明の都合上第一照明手段21のみを図示し、他の照明手段22〜24の図示を省略している。
フォトメトリックステレオ法では、照明方向が正確に判明していること、すなわち照明方向を規定する天頂角と方位角とが既知であることを大前提として、処理が行われる。この場合において、ユーザが設置した各照明手段の位置すなわち実際の照明方向と、フォトメトリックステレオ法による処理において想定されている照明の位置、すなわち前提とした仮定照明方向とが異なった場合に、問題となる。
フォトメトリックステレオ法用に設定された仮想天頂角と実際の天頂角との相違は、理論上、撮像手段11と第一照明手段21〜第四照明手段24の垂直方向との相対的な位置の違いを意味する。ここで、天頂角、方位角がずれた場合の影響を説明するため、図25A〜図25Dの輪郭抽出画像に基づいて説明する。これらの図において、図25Aは仮定照明方向(天頂角及び方位角)と一致するように配置された照明方向で得られた、正しい輪郭抽出画像、図25Bは誤った天頂角と正しい方位角で得られた輪郭抽出画像、図25Cは正しい天頂角と誤った方位角(全体が45°回転してずれた場合)で得られた輪郭抽出画像、図25Dは正しい天頂角と誤った方位角(照明手段が入れ替わったシャッフル状態)で得られた輪郭抽出画像を、それぞれ示している。
図25Aと図25Bから明らかなとおり、天頂角の変化は、輪郭抽出画像の凸凹が例えば2倍になったり、1/2になったりというように、コントラストが比例するという態様で表れる。この場合、正確な高さ情報を厳密に測定したい用途では問題となるものの、高さの絶対値(数値)でなく形状変化のみを把握したい用途では、さほど問題とならない。このことから、フォトメトリックステレオ法を画像検査に利用する用途において、天頂角の相違が検査対象の傷や印字等の検出精度に与える影響は、それほど大きくないといえる。
一方で、仮想方位角と実際の方位角との相違は、例えば図25A、図25C、図25Dに示すように、形状抽出性能が劣化する態様で表出してしまう。このため、フォトメトリックステレオ法を画像検査に利用する場合には、方位角が相違してしまうと、検査対象である傷や印字等の検出精度に与える影響は大きいといえる。
(2)照明方向を検出する原理
(2−1)ワークWKの形状が未知である場合
照明手段と撮像手段とは、相互の位置関係に物理的制約を様々に設けた状態で設置することが考えられる。例えば、各照明手段をリング状に配置したリング照明を設置する場合や、同じ角度巾で各照明手段を設置する場合、画像検査装置側で仮定照明方向と整合するように、例えば接続すべき照明手段と照明制御手段の照明接続コネクタとに共通のマークを設ける等して、各照明手段を取り違えることなく正確に設置する場合等が想定される。
また照明手段と撮像手段との物理的制約の下では、照明手段の配置の間違え方は有限となる場合がある。例えば、4つの第一照明手段21〜第四照明手段24が90°間隔で同一円周上に配されており、これら4つの照明手段の平面視における中心に、ワークWKと撮像手段11とを配置させるという制約(条件)を考える。まず、一の照明手段を固定する場合、残りの3つの照明手段の配置の仕方は、3P3=6通りある。そして、固定すると考える照明が4つ、すなわち照明の決め方が4通りあり、この内正解の設置の仕方が1通りあるから、結局、間違え方の数は6×4−1=23通りあることにある。
この考え方を一般化して、平面視で撮像手段を中心とした同一円周上に360°/nの角度巾でn個の照明手段を配置する場合を考える。一の照明手段を固定すると、残りの照明手段の配置の仕方はn-1Pn-1通りある。また固定すると考える照明手段を、角度巾θずつ回転してずらす配置の仕方は、360°/θ通りある。
したがって、仮に固定すると考えた照明手段が、角度θずつずれた方位角である、0°、θ、2θ、・・・、(360°−2θ)/θ、(360°−θ)/θの何れかの位置の同一円周上に配置されており、残りのn−1個の照明手段が360°/nの角度巾で配置されているという物理的制約があった場合、n-1Pn-1×360°/θ通りの照明配置の組み合わせの中に仮定照明方向と整合する照明配置があり、n-1Pn-1×360°/θ−1通りは仮定照明方向と整合しない照明配置ということになる。
例えば、照明手段それぞれの実際の方位角については未知であるが、平面視で撮像手段を中心とした同一円周上に360°/nの角度巾でn個の照明手段が配置されるという物理的制約があった場合(以下、「ケース1」という。)、角度θを限りなく小さくしていけば、上記n-1Pn-1×360°/θ通りの組み合わせの中に、仮定照明方向の方位角に完全に整合する照明配置が理論上見つかるはずである。
仮定照明方向の方位角に完全に整合する照明配置が見つかれば、照明方向が検出できることになるが、その方法はいくつか考えられる。
例えば、ケース1において、各照明方向から照明して撮像したn通りの画像から、その照明方向を仮定して、フォトメトリックステレオ法に従い上記n-1Pn-1×360°/θ通りの法線ベクトル画像又は輪郭抽出画像を評価関数にかけるソース画像SPとして生成し、評価関数によって、最も上位と評価されるソース画像SPを選択し、該ソース画像SPにおける天頂角及び方位角の変数値を実際の照明方向として検出する。
(照明方向の回転)
まず、照明手段として、図26の模式平面図に示すように、複数の照明手段を一体化した照明ユニット(ここではリング照明)を用いた場合に、照明方向を特定する方法、いいかえると照明ユニットの回転角度を特定する方法について説明する。図26の例では、照明ユニットを、第一照明手段21、第二照明手段22、第三照明手段23、第四照明手段24を、ワークを中心に平面視0°、90°、180°、270°の位置にそれぞれ配置している。これらの照明手段は、撮像手段の光軸を中心とした仮想回転面上に実際の照明方向を有している。このようにして画定される実際の照明方向ALに対して、仮定照明方向ILを、0°の位置から時計回りに45°の角度巾で回転させて、各照明方向における輪郭抽出画像(ソース画像SP)を生成した例を、図27A〜図27Hに示す。これらの図において、図27Aは、仮定照明方向と整合するように実際の照明方向を一致させた、いいかえると仮定照明方向と実際の照明方向との差が0°の輪郭抽出画像、図27Bは差が45°、図27Cは90°、図27Dは135°、図27Eは180°、図27Fは225°、図27Gは270°、図27Hは315°において、それぞれ生成したソース画像SP(輪郭抽出画像)を示している。例えば仮定照明方向が180°回転してずれると、図27Eに示すように、得られた輪郭抽出画像の凸凹が真逆になる。また図27Cの90°や図27Gの270°のようにずれると、輪郭が極めて不明確となる。さらに図27Bの45°、図27Dの135°、図27Fの225°、図27Hの315°では、輪郭が鈍ったような様相を呈している。
(照明手段のシャッフル)
以上は、複数の照明手段が一体化された照明ユニットを用いた場合に、照明ユニットの回転角度に対応させる例を説明した。この場合は、第一照明手段21、第二照明手段22、第三照明手段23、第四照明手段24が照明ユニットに固定されているため、各照明手段が入れ替わる事態は考慮する必要がない。一方で、図28に示すように、各照明手段を個別に構成する場合は、さらに照明手段の入れ替わり(本明細書においては「シャッフル」と呼ぶ。)も考慮する必要がある。図28では説明のため、いずれか一の照明手段(ここでは第三照明手段23)を固定し、他の照明手段(第一照明手段21、第二照明手段22、第三照明手段23)を任意に入れ替える状態を示している。以下では、このような照明手段が入れ替わったシャッフル状態において、各照明手段を特定する手順について説明する。
ここで、図28のように、照明手段のシャッフル状態によって輪郭抽出画像が変化する様子を、図29A〜図29Fに示す。これらの図において、図29Aは、仮定照明方向と整合する照明方向による正しい輪郭抽出画像(ソース画像SP)であり、また図29B〜図29Fは、第一照明手段21、第二照明手段22、第三照明手段23をシャッフルしたすべての組み合わせ(3×2×1=6通り)において生成したソース画像SP(輪郭抽出画像)を、それぞれ示している。
図27及び図29が示すように、正しい輪郭抽出画像である図27A及び図29Aでは濃淡差が付いている。これに対して、照明方向が仮定照明方向と整合しない場合には、図27B〜図27Hや図29B〜図29Fが示すように、輪郭が滑らかになったり、不明確となったりする。一方で、検査対象のワークの形状としては、凹状となるものは少なく、凸状の形状が一般的と考えられる。また凸状の形状のワークでは、フォトメトリックステレオ法の正しいパラメータを選択した場合に、最も全体の凸が大きく表示された画像が得られている。このことから、凸度の平均を評価値として、照明方向の角度(回転角)と、シャッフルについて最大値を示すパラメータを探索する。例えば高さの平均を得る関数を評価関数とすれば、濃淡差として表出する凸凹の凸成分が最も多くなる場合に、この関数値が最も大きくなる。これを利用することで、このとき得られたソース画像SPにおける天頂角及び方位角の値を、実際の照明方向として検出できる。
なお評価関数は、高さの平均値とする構成に限らず、例えば平均値の二乗等、他の関数を適宜利用できる。また、得られた高さの平均等の評価値の、最大値を絞り込むための方法も、特に限定されるものでなく、例えば、刻み幅探索、2分探索、黄金分割探索、最急降下法等が適宜利用できる。
次に、様々な形状のワークに対して、図26に示すように仮定照明方向ILを回転をさせて得たソース画像SPから、画像全体での高さの平均を求め、回転角度毎にプロットしたグラフを、図30に示す。ここではワークとして、ハードディスク、ピンセット、一円玉、基板、フック、天頂角を傾けたフック、平板、電卓、目薬、SDカード、コンソールを用いた。結果として、いずれのワークにおいても、回転角度が0°(360°)付近で、高さの平均値の最も大きい画像が得られている。ここで0°(360°)は仮定照明方向ILが実際の照明方向ALと重なる位置、すなわち正しい照明方向である。よって、高さ平均値が最大となる回転角度を求めれば、この位置を推定照明方向として扱えることが確認できた。特に、様々な形状のワークにおいても、全体的に凸な形状であれば、一のピークを有する傾向が確認できた。また凸成分が多い程、推定照明方向の算出に好適であることが判る。
また、図28に示すように撮像手段をシャッフルしたすべての組み合わせ(オリジナルを含む6通りの組み合わせ)に対して得たソース画像SPから、同様に画像全体での高さの平均を求め、回転角度毎にプロットしたグラフを、図31に示す。この図においても、回転角度が0°(360°)付近で、高さの平均値の最も大きい画像が得られている。すなわち、高さ平均値の最大となる回転角度を算出すれば、この位置を推定照明方向として扱えることが確認できた。
以上から、撮像手段や照明方向の設置における実験誤差を考慮すると、高さの平均値を評価関数とすることで、この関数値が最大となる時点のソース画像SPにおける天頂角及び方位角の値を推定照明方向とすることで、実際の照明方向を検出できる。
ここで、照明手段と撮像手段との物理的制約には様々な形態が考えられる。例えば、等間隔に配置した照明手段と撮像手段とを完全に一体型とする例や、照明手段は一体で、撮像手段と分離させつつ、撮像手段の周囲に対して任意の回転角度で配置する例、あるいは各照明手段を独立して配置可能な自由照明の例がある。また、このような物理的制約に応じて、照明手段の設置の間違え方にも様々なバリエーションが考えられる。例えば、図26に示す回転方向の誤りや、図28に示すシャッフルすなわち照明手段の取り違えに加え、図32に示すような十字軸(xy軸)からのずれ、あるいは図33に示す天頂角非対称ずれ×2、図34に示す天頂角対称変化×2等の態様が挙げられる。ここで、照明手段と撮像手段との物理的制約のバリエーションに対して、照明手段設置の間違え方の態様毎に、その間違えが生じる可能性を、表1に纏める。
また、このような照明手段の設置の間違え方の態様毎に、推定に失敗した場合の影響や推定に必要な拘束条件、推定に悪影響を与える因子について、表2に纏める。
ワークWKの形状が既知である場合、天頂角及び方位角を変数として算出されて生成されたソース画像SPから、天頂角及び方位角に対して、上記ソース画像SPにおけるワークWKの表面形状とソース画像SPにした実際の表面形状とのズレの大きさを数値化した関数を評価関数とする。この評価関数によれば、評価関数の値が最小となるとき、実際の照明方向によるソース画像SPとの整合の度合いが最大となる。したがって、この評価関数の値が最小となるときのソース画像SPにおける天頂角及び方位角の変数値を実際の照明方向として検出することができる。
また、ワークWKが、鏡面反射成分が強い半球状のワークである場合、図35Aに示すように、照明手段からの光の入射角とワークからの光の反射角とが等しくなるようにハレーションが発生する。ワークWKの中心座標を基点とするハレーションの中心座標への方向ベクトルの大きさ及びワークWKの半径、並びに天頂角θの関係から、天頂角θは、以下のように求まる。
なお、以下のように、計算してもよい。
この場合の方位角は、図35Bに示すように、方向ベクトルのxy平面の座標から求まる。
さらに、ワークWKが、高さが既知のワークである場合、図36Aに示すように、照明光によるワークWKの影ができる。照明手段からの光のワークWKによる影の大きさ及びワークWKの高さ、並びに天頂角θの関係から、天頂角θは、以下のように求まる。
この場合の方位角は、図36Bに示すように、影のベクトルのxy平面の座標から求まる。
(3)ソフトウェアによる処理
照明方向推定手段41gにおけるソフトウェアによる処理について図37〜図39に示すフローチャートを参照して説明する。図37は、フォトメトリックステレオ法を利用した照明方向の検出処理の流れを示すフローチャートである。図38は、フォトメトリックステレオ法を利用しない照明方向の検出処理の流れを示すフローチャートである。図39は、画像検査装置1の処理の全体の流れを示すフローチャートである。
(3−1)フォトメトリックステレオ法を利用した照明方向の検出方法
まず、図37に示すフローチャートを参照して、フォトメトリックステレオ法を利用した照明方向の検出方法から説明する。ステップST1では、画像処理部41及び撮像手段11は、図39に示すフローチャートのステップST101〜ステップST105の処理を実行する。
ステップST2では、ユーザは、ワークWKの形状が未知であるか既知であるかに応じて、評価関数に選定するとともに、天頂角を定数にするか変数とするかの判断、及び、その値や角度巾、並びに、方位角の角度巾について、パラメータの設定を行う。
ステップST3では、画像処理部41は、ステップST108における、ユーザによって輪郭抽出モードが選択された場合の処理を実行して、すべての変数値におけるソース画像SPを生成する。
ワークWKの形状が既知である場合において、ステップST4では、画像処理部41は、記憶手段44に保存してあるソース画像SPとした実際の表面形状情報を参照する。ワークWKの形状が未知である場合には、この処理は実行しない。
ステップST5では、画像処理部41は、ステップST3によって、天頂角及び方位角を変数(場合によっては定数)として算出されて生成されたソース画像SPから、天頂角及び方位角に対して、評価関数に応じて、最も上位と評価されるソース画像SPを選択する。
ステップST5では、画像処理部41は、数値解析で収束しなかった場合に、ステップST2に戻り、パラメータの再設定を行う。
ステップST6では、画像処理部41は、ステップST5によって、評価関数に応じて、最も上位と評価されたソース画像SPにおける天頂角及び方位角の変数値(場合によっては定数値)を実際の照明方向として検出する。
(3−2)フォトメトリックステレオ法を利用しない照明方向の検出方法
続いて、図38に示すフローチャートを参照して、フォトメトリックステレオ法を利用しない照明方向の検出方法から説明する。ステップST11では、画像処理部41及び撮像手段11は、図39に示すフローチャートのステップST101〜ステップST103の処理を実行し、画像処理部41は、ワークWKが撮影された4つの画像信号Q1〜Q4を実際の表面形状情報として記憶手段44に保存する。
ステップST12では、画像処理部41は、記憶手段44に保存してある実際の表面形状情報を参照する。
ステップST13では、ステップST12において参照した実際の表面形状情報から天頂角及び方位角を算出する。
ステップST14では、画像処理部41は、ステップST13によって、算出された天頂角及び方位角の値を実際の照明方向として検出する。
このように、自動的に、且つ高精度に、ユーザが設置した実際の照明方向を推定することができるので、フォトメトリックステレオ法と組み合わせた場合には、照明手段と撮像手段とを別体とすることができるメリットがある。すなわち、照明手段と撮像手段とを別体にして、ユーザが照明の位置を自由に変更できるようにすると、傾き画像(法線ベクトル)は、その照明の位置に応じて変わる特性があるため、その特性を許容する画像検査装置においては、ユーザが設置した実際の照明方向を推定する照明方向推定手段の存在は極めて有用な意義を有する。
(画像検査方法)
ここで、画像検査装置1を用いてワークの外観検査を行う画像検査方法の手順を、図39のフローチャートに基づいて説明する。
ステップST101では、画像処理部41は、照明制御手段31を介して、照明手段21、22、23、24に対してトリガ信号を発し、照明手段21、22、23、24は、トリガ信号に応じて順に1つずつ点灯する。
ステップST102では、撮像手段11は、各照明手段21、22、23、24が点灯する都度作動して、ワークWKを撮影する。
ステップST103では、撮像手段11は、ワークWKが撮影された4つの画像信号Q1〜Q4を画像処理部41に転送する。
ステップST104では、画像処理部41は、撮像手段11から入力された4つの画像信号Q1〜Q4を用いて、画像信号Q1〜Q4毎に、各画素における面の法線ベクトルを計算する。
ステップST105では、画像処理部41は、画像信号Q1〜Q4毎に、後段の処理で必要となる、1/1、1/2、1/4、1/8、1/16、1/32にそれぞれ縮小した縮小傾き画像を作成する。また、画像処理部41は、画像信号Q1〜Q4毎に、後段の処理で必要となる、テクスチャ抽出画像を作成しておく。
ステップST106では、必要に応じて特徴サイズの調整を行う。特徴サイズを変化させることで、凹凸抽出画像において抽出される凹凸の大きさが変わる。具体的には特徴サイズを大きくすると、大きなサイズの凹凸が抽出された凹凸抽出画像が得られる。逆に特徴サイズを小さくすると、小さなサイズの凹凸が抽出される。したがってユーザは、抽出したい傷の大きさに応じて特徴サイズを調整する。あるいは、OCR用途の場合は、特徴サイズを大きくすることで、OCRに適した凹凸抽出画像を得ることができる。
ステップST107では、凹凸抽出画像計算を行う。この例では画像処理部41が、ステップST106で設定された特徴サイズに従って凹凸を抽出した凹凸抽出画像を生成し、これを表示手段51に表示させる。
ステップST110〜112では、画像処理部41又はPLC81が、輪郭抽出画像に対して、傷検査ツールを利用して傷を検出するための傷検出処理をして、傷かどうかを判定する傷判定処理をする。
まず、ステップST110では、画像処理部41又はPLC81は、生成された輪郭画像に対して検査対象となる検査領域の位置を特定する。検査領域を設定する際には、例えば、エッジを抽出する等して、ワークWKの画像を抽出する。ワークWKが大きく位置ずれしない場合には、検査領域の設定位置を予め登録しておいてもよい。
ステップST111では、画像処理部41又はPLC81は、特定された検査領域内の傷を検出するための画像処理を施す。画像処理部41又はPLC81は、記憶されている算出方法により基準濃度値を算出し、画素毎に検査領域の各画素の濃度値と基準濃度値との差分を算出する。そして、画像処理部41又はPLC81は、設定して記憶されている閾値(傷量という閾値を決めておく。)によるラベリング処理(2値画像の白画素の固まりに、「0、1、2・・・」という札(ラベル)を貼っていく処理。)を実行し、特定された傷毎に特徴量を算出する。算出する特徴量は、例えば差分の正負に関する正負情報、差分の総和、差分の最大値、差分の平均値、又は差分の標準偏差である。
ステップST112では、画像処理部41又はPLC81は、ステップST111で特定された傷に対して、傷判定に用いる判定基準に基づいて傷判定処理を実行する。傷と判定された場合、表示手段51上で、傷の箇所にマーキングをし、処理を終了する。
(変形例)
以上の例では、特徴サイズをユーザが調整可能とすることで、特徴サイズのパラメータでもってユーザが望むサイズの凹凸を抽出した凹凸抽出画像を生成する例を説明した。ただ本発明はこの構成に限らず、ユーザの観察用途や目的に応じた複数の観察モードを予め用意しておき、ユーザに観察モードを選択させることで、所望の画像を生成するように構成することもできる。このような例を図40のフローチャートに基づいて説明する。ステップST”1〜ST”5は、上述した図39と同様であるため、詳細説明を省略する。
ステップST”6では、観察モードをユーザに選択させる。この例では、輪郭抽出モード、テクスチャ抽出モード、凹凸モードの何れかを選択可能としている。各観察モードは、各観察用途に適した特徴サイズを予めプリセットしておく。なお、観察モードの選択後に、ユーザが手動で特徴サイズを微調整可能に構成してもよい。選択された観察モードに従って、次に移行するステップが異なる。すなわち輪郭抽出モードが選択された場合はステップST”7へ、テクスチャ抽出モードが選択された場合はステップST”8へ、凹凸モードが選択された場合はステップST”9へ、それぞれ移行する。各ステップの処理後は、ステップST”10に移行する。このように、凹凸抽出画像生成手段と輪郭画像生成手段41bとテクスチャ抽出画像生成手段41cとは、切り替え可能としている。
ステップST”7では、画像処理部41は、凹凸抽出画像計算を行う。すなわち、画像処理部41は、凹凸抽出画像が表示される特徴サイズの輪郭抽出画像を表示手段51に表示する。
ステップST”8では、画像処理部41は、ユーザによって輪郭抽出モードが選択された場合の処理を実行する。すなわち、画像処理部41は、ステップST”5において作成された縮小傾き画像に基づいて、輪郭抽出画像計算を行い、輪郭抽出画像を表示手段51に表示する。
ステップST”9では、画像処理部41は、ユーザによってテクスチャ抽出モードが選択された場合の処理を実行する。すなわち、画像処理部41は、ステップST”5において作成されたテクスチャ抽出画像に基づいて、テクスチャ抽出画像計算を行い、テクスチャ抽出画像を表示手段51に表示する。
以降のステップST”10〜12は、上述した図39と同様の手順が利用でき、詳細説明を省略する。
以上の画像検査装置によれば、フォトメトリックステレオ法を利用して第1次の傾き画像を生成することを出発点としながらも、得られた第1次の傾き画像をX方向及びY方向に微分処理して第2次の傾き画像、すなわち、輪郭抽出画像を作成するようにしている。この処理によって、照明やワーク設置面の僅かな傾きや、元々入力している照明の位置等の入力情報の過誤に対して、得られる検査画像が大きく変化してしまい、例えば、実際には凸凹していないのに凸凹の画像になる現象、照明に対して、通常、近くが明るくなる傾向を受けて、ワークWKの中央が盛り上がったような画像になるといった現象等の、実物に即した検査画像が得られない、という従来のようなフォトメトリックステレオ法の欠点を少なくする事ができる。面の凹方向に傾き変化の大きいところが暗くなる階調とする一方、面の凸方向に変化の小さいところが明るくなる階調と設定することで、ワーク表面の傾きが大きく変化する傷や輪郭等を抽出するのに好適な画像となる。
また輪郭画像生成手段が、算出された各画素の法線ベクトルから異なる縮小率の複数の縮小傾き画像を作成し、それぞれの縮小傾き画像において、X方向及びY方向に微分処理を施し、得られた縮小輪郭画像に対して、所定の縮小率の縮小輪郭画像が大きく反映されるように重み付けをして、元のサイズへ拡大してから、拡大された縮小輪郭画像をすべて足し合わせたものを輪郭抽出画像とすることができる。この構成によれば、如何なる大きさを傷として判断するかは、ユーザの用途によって異なるところ、所定の縮小率の縮小輪郭画像が輪郭抽出画像に大きく反映されるように重み付けができるようにしたので、ユーザの用途に応じて、ユーザが所望する縮小率の縮小輪郭画像が強調された輪郭抽出画像が得られる。ユーザのニーズとしては、例えば、10ピクセルに跨がったものを傷として判断したい場合もあれば、100ピクセルに跨がっている凹んだものを傷として判断したい場合もある。また、急峻なエッジだけをエッジとして抽出したい場合もある。
また傷は、通常、複数の周波数に跨がって検出されるところ、拡大された縮小輪郭画像をすべて足し合わせたものを輪郭抽出画像としているので、一つの周波数の縮小輪郭画像に限定した場合に比べて、傷や輪郭等が、全体的にぼやけることなく、クリアに検出できる。
さらに重み付けは、予め決められた重みのセットを用意しておき、縮小輪郭画像に対して、重みのセットを掛けることによって、それぞれの縮小率の縮小輪郭画像の採用比を按分することによって行うことができる。これによれば、輪郭抽出画像に合成するときに予め決められた重みのセット(特徴サイズ)がプリセットされているので、ユーザは、所望する輪郭抽出画像に瞬時に簡単に切り替えることができる。
さらにまた重みのセットは、ワークの表面の凸凹が明瞭な輪郭抽出画像が得られる縮小輪郭画像の採用比が大きくなるセットを含むことができる。この使い方を例えば凹凸モードとすることで、輪郭抽出モードと使い分けることができる。
さらにまた、重みのセットは、OCRに適した輪郭抽出画像が得られる縮小輪郭画像の採用比が大きくなるセットを含むことができるので、例えば鋳物の刻印のようなものに対して、OCRをするのに好適な画像を作成することができる。
さらにまた、照明手段による照明する回数個ある、算出された各画素の法線ベクトルから、入力画像と同数個の各画素のアルベドを算出し、アルベドから、ワークの表面の傾き状態を除去した模様を示すテクスチャ抽出画像を生成するようにして、輪郭画像生成手段とテクスチャ抽出画像生成手段とを切り替え可能に構成したので、本来の傷と元々ある輪郭と区別するのは通常困難であるため、傷があってはいけない箇所をサーチして検査領域とすることが求められているが、テクスチャ抽出画像でサーチをして、検査領域を決めてから傷検査を行うことができる。また、OCRを行う際にも、テクスチャ抽出画像でサーチをして、OCRを行う対象領域を決めてからOCRを行うことができる。
テクスチャ抽出画像生成手段は、入力画像と同数個の各画素のアルベドの値をソートして上から特定の順番の画素値を採用したものをテクスチャ抽出画像とすることができる。これにより、ハレーションを起こしている輝度が高い画素値は採用されず、ハレーションの影響が取り除かれたテクスチャ抽出画像が得られる。
また輪郭抽出画像生成後の傷検査に必要な傷検査ツールを備えることで、フォトメトリックステレオ技術は三次元計測の一つの手法であるというのが一般的な共通認識であるところ、フォトメトリックステレオ技術を傷検査に応用した実用品として位置づけられる画像検査装置を提供できる。
さらに画像検査装置は、ワークを一定の方向から撮像する撮像手段と、ワークを異なる方向から少なくとも3回照明する照明手段と、照明手段を1つずつ順に点灯させる照明制御手段と、各照明タイミングにて撮像手段を駆動させることにより、複数の画像を生成する画像生成手段と、複数の画像で対応関係にある画素毎の画素値を用いて、各画素のワークの表面に対する法線ベクトルを算出する法線ベクトル算出手段と、照明手段による照明する回数個ある、算出された各画素の法線ベクトルから、法線ベクトルと同数個の各画素のアルベドを算出し、アルベドから、ワークの表面の傾き状態を除去した模様を示すテクスチャ抽出画像を生成するテクスチャ抽出画像生成手段とを備え、テクスチャ抽出画像生成手段は、法線ベクトルと同数個の各画素のアルベドの値をソートして上から特定の順番の画素値を採用したものをテクスチャ抽出画像とすることができる。これによれば、テクスチャ抽出画像生成手段は、法線ベクトルと同数個の各画素のアルベドの値をソートして上から特定の順番の画素値を採用したものをテクスチャ抽出画像とするようにしたので、ハレーションを起こしている輝度が高い画素値は採用されず、ハレーションの影響が取り除かれたテクスチャ抽出画像が得られる。
このように、実施の形態に係る画像検査装置によれば、フォトメトリックステレオ法を利用して、より簡単、かつ、ロバストにワークの傷や印字を検査することができる。