――第1の実施の形態――
図面を用いて、本発明の一実施の形態による形状検査装置について説明する。
図1は、本実施の形態における形状検査装置の全体構成を示すブロック図である。図に示した形状検査装置1は、所定の被検査パターンが繰り返し現れる画像に対して、各々の被検査パターンが正しい形状を備えているか否かを、後に詳述する形状検査および濃淡検査を行うことにより判定する。
形状検査装置1は、画像入力部11,検査領域取得部12,領域分割部13,形状検査部14,周辺推定部15,輪郭推定部16,および濃淡検査部17を備える。画像入力部11には、検査の対象となる画像(以下、被検査画像という)が入力される。
図2は、本実施の形態における形状検査装置が検査対象とする画像を撮像する様子を示す図である。本実施の形態では、画像入力部11は図2に示した撮像装置11により構成される。撮像装置11は説明の為に模式的に示された周期的に配列された多数の被検査パターンPの全てを含む範囲21を撮像する。このように、本実施形態における形状検査装置1は、正方形の被検査パターンPを等間隔に並べた様子を撮像装置11により撮像した被検査画像を検査対象とする。従って、被検査画像に繰り返し現れる各被検査パターンの正しい形状は正方形である。
検査領域取得部12は、被検査画像から被検査パターンが現れる領域(以下、被検査領域という)を特定する。
図3は、被検査画像から被検査領域を特定する手順を示す図である。検査領域取得部12には、まず画像入力部11から、図3(a)に示すように複数の被検査パターンPを含む被検査画像31が入力される。検査領域取得部12は、被検査画像31に対してソーベルフィルタなどのエッジ強調フィルタを適用し、被検査画像31のエッジを検出する。図3(a)に示す被検査画像31のエッジを検出した画像32を、図3(b)に示す。そして、図3(c)に示すように、被検査画像31の外側にもっとも近いエッジ部分を直線32a,32b,32c,32dで近似することにより、図3(d)に示す被検査領域33の特定が行われる。なお、この被検査領域33は、図2に模式的に示した被検査パターンPを含む範囲21に相当するものである。
領域分割部13は、被検査領域33を被検査パターンPごとに分割し、1つの被検査パターンPのみが含まれた領域(以下、個別領域という)を作成する。被検査領域33に対して被検査パターンPが正確に一定間隔で並んでいる場合は、一定間隔ごとに被検査領域33を分割すれば個別領域が作成できる。しかし、被検査領域33が傾いていたり、歪んでいたりする場合には、上記の手順では正確な分割が行えない。そこで、領域分割部13は、まず個別領域を作成するための情報、すなわち、被検査領域33の傾きと被検査パターンPの出現周期とを求める。そして、これらの情報を基に、被検査領域33からもっとも歪みの少ない箇所を検出する。その後、上記の箇所を始点として歪みを補正しながら領域の分割を行う。以下、上記の処理を順に説明する。
図4は、被検査領域の傾き検出処理を説明する図である。被検査領域33の傾きを検出するため、まず、被検査画像31の中心41から垂直に下を向いた方向Yを考える。上記の方向Yについて、被検査領域33中の輝度値の射影処理を行い、射影した値(以下、射影データという)43の分散値を求める。次に、上記の方向Yを、画像の中心を軸に所定角度(例えば+1度)だけずらした方向について、同様に輝度値の射影処理と分散値の計算を行う。
上記の処理を±45度までの各々の角度について行い、それぞれの方向における射影データ43の分散値を求める。同様に水平方向Xについても、±45度までのそれぞれの方向における射影データ44の分散値を求める。最後に、ずらした角度(例えば+1度,+2度,…)ごとに垂直方向と水平方向の分散値を合計し、合計した値が最大となる角度を求め、被検査領域33の傾きとする。
領域分割部13は、被検査領域33の傾きに引き続き、被検査領域33に現れる被検査パターンPの周期を求める。すなわち、各々の被検査パターンPが出現する間隔を求める。
図5は、被検査パターンの周期を求める処理を説明する図である。被検査パターンPの周期を求める際は、被検査領域33の傾きを検出する際に求めた、被検査領域33の傾きにおける垂直方向および水平方向の射影データ43,44を用いる。それぞれの方向について、位相をずらしながら射影データ43,44の自己相関値を求め、自己相関値のピークが現れる周期を求める。例えば図5(a)には、垂直方向の射影データ43と、所定量だけ位相をずらした射影データ43aが示されている。これら2つのデータから、所定量の位相のずれにおける自己相関値が1つ求まる。このようにして、位相のずれ量を変化させながら自己相関値を求めれば、図5(b)に示す、位相のずれ量と自己相関値との関係データ51が得られる。ここで得られた関係データ51において、自己相関値のピークが現れる周期52を、被検査パターンの垂直方向の周期とする。同様の処理を水平方向についても行い、被検査パターンPの垂直方向および水平方向の周期を得る。
領域分割部13は、上記処理で得られた周期を用いて、被検査領域33から歪みが最小である箇所を検出する。
図6は、歪みが最小である箇所の検出処理を説明する図である。まず図6(a)に示すように、垂直方向の射影データ43と周期関数(例えば、余弦関数や正弦関数)61との相互相関値を、周期関数61の位相をずらしながら求め、相互相関値が最大となる位相差62を求める。なお、ここで用いる周期関数の周期は、前述の処理で求めた被検査パターンPの垂直方向の周期と同一とする。
相互相関値が最大となる位相差62が求まったら、図6(b)に示すように、垂直方向の射影データ43と上記の位相差62を与えた周期関数61とを用いて、開始位置63をずらしながら一周期分ずつ相互相関値64を求める。この一周期分の相互関数値64が最大となる位置65が、被検査領域33の中で歪みが最小である箇所の、垂直方向の位置となる。上述した手順と同様に、水平方向の位置についても求める。以上の処理によって、被検査領域33の中でもっとも歪みの少ない箇所が検出される。
本実施形態に係る形状検査装置1は、上述した処理により求められた「被検査領域の傾き」,「被検査パターンの周期」,および「被検査領域の中で歪みが最小である位置」に基づいて、形状検査部14による第1の形状検査と領域分割部13による個別領域の分割とを並行して実行する。形状検査部14、および、形状検査部14が実行する「第1の形状検査」については後に詳述する。
領域分割部13および形状検査部14が実行するこの処理では、まず領域分割部13により第1の形状検査の始点とする個別領域の分割が行われる。すなわち、被検査領域33を分割して個別領域を作成する。次に、上記の個別領域に対して形状検査部14により第1の形状検査が行われる。そして、第1の形状検査の結果に基づいて、領域分割部13による上記の個別領域の周辺に位置する個別領域の分割と、形状検査部14による第1の形状検査とが繰り返し行われ、被検査領域33から全ての個別領域が分割される。
図7は、第1の形状検査の始点を設定した例を示す図である。領域分割部13により、歪みが最小である位置すなわち被検査パターンP0を中心にして、縦方向に3段、横方向に3段の計9個の個別領域72が分割されている。これらの個別領域72は、形状検査部14による第1の形状検査の始点として設定される。各個別領域の横幅W1および縦幅W2は、図5に示した処理で求められた、被検査パターンの水平方向の周期および垂直方向の周期であり、従って各個別領域72は、内部に被検査パターンPを包含している。また、分割された個別領域72は、図4に示した処理で求められた被検査領域の傾きの分だけ傾いている。形状検査部14による第1の形状検査は、これら9個の個別領域72を始点として実行される。
次に、形状検査部14、および、形状検査部14が実行する「第1の形状検査」について説明する。形状検査部14は、被検査パターンPの輪郭すなわち外形状を算出し、被検査パターンが正しい外形状を備えているか否かを検査する。形状検査部14は、第1の形状検査の対象である個別領域72に含まれる被検査パターンPが、予め規定された正しい形状にどの程度近いかを算出する。被検査パターンPと正しい形状との近さは、形状度もしくは形状値と呼ぶ数値により表される。本実施形態において形状度は0〜1の値を採り、形状度が所定のしきい値(例えば0.9)以上であれば第1の形状検査の結果は合格、しきい値よりも小さければ不合格となる。すなわち、形状検査部14により行われる第1の形状検査とは、ある個別領域72に含まれる被検査パターンPの形状度を算出する処理と、形状度が所定のしきい値を超えているか否かを判定する処理と、から成る処理である。
前述の通り、本実施形態における被検査パターンPの正しい形状とは正方形であるので、形状度は、被検査パターンPが正方形に近いほど大きくなるように定義する。以下では、ある個別領域72に含まれる被検査パターンの形状度sを、その個別領域の形状度という。
形状検査装置1は一連の検査処理において、形状検査部14に上述した第1の形状検査に加えて第2の形状検査と呼ぶ処理を実行させる。形状検査部14により実行されるタイミングが異なるため、それぞれの形状検査を第1の形状検査、第2の形状検査と呼び区別するが、処理内容は同一である。
図8は、形状検査の手順を説明する図である。形状検査部14はまず、形状検査を行う個別領域72を選択する。図8(a)は、図7において領域分割部13により第1の形状検査の始点として設定された9個の個別領域72を示したもので、図8(b)は図8(a)の9個の個別領域72の中央に位置する個別領域72aを拡大して示している。次に、個別領域72aに対してソーベルフィルタを適用し、左から右(矢印81a)、右から左(矢印81b)、上から下(矢印81c)、下から上(矢印81d)の各方向におけるエッジの強さが最大となる画素位置を求める。図8(b)において、矢印81a,81b,81c,81dで表される方向のエッジを抽出するソーベルフィルタを個別領域72aへ適用した結果が、図8(c),8(d),8(e),8(f)にそれぞれ示した画像82a,82b,82c,82dである。そして、画像82a,82b,82c,82dの各々において、エッジの強さが最大となる画素位置を直線で近似し、最小二乗法を用いて各々の直線の近似式を算出する。図8(g)において、画像82aから算出された直線が83aである。同様に、画像82b,82c,82dから直線83b,83c,83dを得る。
4つの直線の近似式が得られたら、これらの近似式により表される4つの直線(83a,83b,83c,83d)を辺とする四角形を考え、図8(h)に示したように4つの交点(P1,P2,P3,P4)の座標を求める。これらの4つの直線および4つの交点を、形状検査対象の個別領域72aに含まれる被検査パターンの推定輪郭と呼ぶ。
本実施形態におけるパターンの形状度sは、上記の4点P1,P2,P3,P4からなる四角形が正方形である場合に最大の値となるよう、次式(1)のように定義する。
ここで、図8(h)に示すように、V1はP1からP2へのベクトル、V2はP2からP3へのベクトル、V3はP3からP4へのベクトル、V4はP4からP1へのベクトル、V5はP1からP3へのベクトル、V6はP2からP4へのベクトルである。
4点P1,P2,P3,P4からなる四角形が正方形のとき、V1とV2、V2とV3、V3とV4、V4とV1、V5とV6の成す角はそれぞれ90度となるので、上式(1)により定義される形状度sの値は1となる。
以上の手順により、ある個別領域が含む被検査パターンの推定輪郭および形状度を算出することができる。個別領域の形状度が所定のしきい値(例えば0.9)よりも小さい場合、形状検査は不合格とされ、それ以外の場合には形状検査は合格とされる。
図7に示した、第1の形状検査の始点として設定された9個の個別領域72に対して、図8を用いて説明した上述の手順により形状検査部14がそれぞれ形状度を求めた後、領域分割部13は、これらの個別領域72の周辺の領域を個別領域に分割する。周辺の個別領域の分割は、上記の9個の個別領域72の形状度および各個別領域の中心座標に基づいて、周辺推定部15が周辺の個別領域の範囲を推定することにより行われる。周辺推定部15は、いくつかの被検査パターンの位置から、それら被検査パターンの周辺に存在する被検査パターンの位置を推定する。すなわち、領域分割部13は、まず形状度を求めた各個別領域について、各々の個別領域の中心座標の算出処理を実行する。その後、周辺推定部15に、各々の個別領域の形状度および中心座標に基づいて、それらの個別領域の周辺に位置する個別領域の範囲の推定処理を実行させる。以下、これら2つの処理について順に説明する。
図9は、個別領域の中心座標の求め方を説明する図である。図9(a)には、図8に示した、ある個別領域における被検査パターンの推定輪郭の各頂点P1,P2,P3,P4に、新たに個別領域の中心座標すなわち被検査パターンの中央座標P5を加えた図が示されている。ある個別領域の中心座標P5は、その個別領域に含まれる被検査パターンの推定輪郭を用いて求める。具体的には、P1とP3とを結ぶ直線と、P2とP4とを結ぶ直線の交点を中心座標P5とする。P1,P2,P3,およびP4の各点の座標を平均することにより求められる座標を中心座標としないのは、図9(b)に示すように、上記4点のうち1点の位置に大きな誤りが含まれる場合、本来の中心座標から大きく外れることがあるためである。図9(b)と同一の推定輪郭P1,P2,P3,P4に対し、中心座標P5を「P1とP3とを結ぶ直線と、P2とP4とを結ぶ直線の交点」に設定した様子を図9(c)に示す。図9(b)と比べて、中心座標P5のずれ方が小さくなっていることがわかる。
続いて、周辺推定部15において、形状度および中心座標が求められた複数の個別領域に基づいて、それらの個別領域の周辺に位置する個別領域の範囲を推定する手順を説明する。この説明においては、まず各々の被検査パターンならびにその被検査パターンを含む個別領域を指し示すために必要な定義を行う。その後、それらの定義を用いて個別領域の範囲を推定する方法について説明する。
図10は、周辺の個別領域の範囲を推定する際の座標系を説明する図である。被検査画像の座標系は、左上隅101を原点とする。また、領域分割部13により分割された個別領域の列番号をi、行番号をjで表す。列番号は、第1の形状検査の始点として設定された9個の個別領域72のうち、中央の個別領域72aを0とする番号であり、個別領域72aの右側に位置する個別領域へ1,2,…,左側に位置する個別領域へ−1,−2,…と割り振られる。同様に行番号は個別領域72aを0とする番号であり、個別領域72aの下側に位置する個別領域へ1,2,…,上側に位置する個別領域へ−1,−2,…と割り振られる。このとき、領域分割部13により分割されたある個別領域の中心座標(x,y)は、回転、拡大縮小、平行移動の変換成分を含む、次式(2)の変換行列により、その個別座標の行番号iと、列番号jと、未知の定数a,b,c,d,e,fとから求められる。
上述の式(2)より、次式(3)および(4)に示す、ある個別領域の列番号iと行番号jとを引数に取り、その個別領域の中心座標(x,y)を返す関数X(i,j)およびY(i,j)が導出される。
X(i,j)=ai+bj+c (3)
Y(i,j)=di+ej+f (4)
式(3)および(4)に含まれる未知数a,b,c,d,e,およびfを、既知である9個の個別領域72の中心座標を用いた最小二乗法により近似して算出したものが、周辺の個別領域の範囲を推定するための推定式である。これらの未知数の算出手順について、以下に説明する。
列番号i、行番号jで表されるある個別領域の中心座標を(xij,yij)としたとき、式(3)および(4)に対して最小二乗法を適用した結果を、次式(5)および(6)に示す。
すなわち、既知である9個の個別領域72の中心座標を、式(5)および(6)に対して代入すれば、未知の定数a,b,c,d,e,fの最小二乗法による近似値が算出される。算出された定数a,b,c,d,e,fの値を式(3)および(4)へ代入すれば、任意の個別領域の列番号iおよび行番号jからその個別領域の中心座標を求める関数X(i,j),Y(i,j)が得られる。しかしながら、このようにして導出された関数X(i,j)およびY(i,j)には以下に示す問題点が存在する可能性がある。
図11は、形状度と中心座標の関係を示す図である。図11(a)には正方形すなわち正しい形状とは大きく異なる被検査パターン112および個別領域111が示されている。また、図11(b)には正方形すなわち正しい形状に近い被検査パターン114および個別領域113が示されている。図11(a)に示した個別領域111内の被検査パターン112は正方形すなわち正しい形状とは大きく異なるため、この個別領域111の形状度は、図11(b)に示した正方形に近いパターン114を含む個別領域113の形状度に比べて小さくなる。そして、形状度が小さい個別領域111は、中心座標についても図11(a)のように正確でない可能性が高い。すなわち、図11(a)のように正しい形状とは大きく異なる被検査パターン112においては、領域分割部13により中心座標として算出される位置が、その被検査パターン112が正しい形状であった場合の中心座標の位置とは異なる可能性が高い。そのため、このような個別領域111が第1の形状検査の始点として設定された9個の個別領域72(図10)に含まれていると、式(5)および(6)により近似して算出された未知数a,b,c,d,e,およびfが、大きな誤差を含むようになってしまう。
上記の問題に対応するため、未知数a,b,c,d,e,およびfを求める際には、9個の個別領域72の形状度を重みとして用いるようにする。すなわち、1に近い大きな形状度を備えた個別領域の場合は、その中心座標が正確であると考えられるので、その中心座標を用いる際に形状度に対応する大きな重みを用いる。一方で、より小さな形状度を備えた個別領域の中心座標を用いる場合には、形状度に対応する相対的に小さな重みを用いる。具体的には、式(5)および(6)へ以下に説明する変更を加える。
列番号i、行番号jで表されるある個別領域の重みをW(i,j)としたとき、式(5)および(6)に対して重みを加えた結果を、次式(7)および(8)に示す。領域分割部13は、関数X(i,j),Y(i,j)を導出する際に、式(5)および(6)の代わりに次式(7)および(8)を用いる。
上述の式(7)および(8)により算出された未知数a,b,c,d,e,およびfに基づいて、ある複数の個別領域の周辺に位置する個別領域の範囲を推定するための推定式である関数X(i,j)およびY(i,j)が得られる。この式に対して列番号iと行番号jとを与えれば、対応する個別領域の中心座標の推定値を得ることができる。周辺推定部15は、この推定式を用いて、第1の形状検査の始点として設定された9個の個別領域72(図10)の周辺に位置する個別領域の範囲を推定する。
図12は、推定式を用いた個別領域の範囲の推定を表す図である。図12には、第1の形状検査の始点として設定された、縦方向に3行、横方向に3列の計9個の個別領域121a〜121iと、これらの個別領域121a〜121iの1つ外側に位置する16個の個別領域122a〜122pと、が破線で示されている。なお図12では、図の煩雑さを回避するため、個別領域121a〜121iには、符号121a,121c,121e,121g,121iのみが付されている。同様に、個別領域122a〜122pには、符号122a,122e,122l,122pのみが付されている。個別領域121a〜121iにおいて、中央に位置する個別領域121eの列番号と行番号を(0,0)とする。このとき、これら9個の個別領域121a〜121iの列番号および行番号はそれぞれ(−1,−1),(0,−1),(1,−1),(−1,0),(0,0),(1,0),(−1,1),(0,1),(1,1)で表される。これら9個の個別領域121a〜121iの1つ外側に位置する個別領域122a〜122pは、(−2,−2),(−1,−2),(0,−2),(1,−2),(2,−2),(−2,−1),(2,−1),(−2,0),(2,0),(−2,1),(2,1),(−2,2),(−1,2),(0,2),(1,2),(2,2)で表される計16個であり、周辺推定部15はこれら16個の個別領域の範囲を推定式により推定する。
推定式による範囲の推定は、個別領域を構成する4点の座標を推定式で推定することにより行われる。例えば、(−2,−2)で表される個別領域122aの範囲を推定する場合は、前述の推定式に(−2.5,−2.5),(−1.5,−2.5),(−2.5,−1.5),(−1.5,−1.5)の4つの列番号および行番号の組を与える。領域分割部13は、その結果得られた4つの座標を、個別領域122aの四隅の座標であるとして扱う。すなわち、これら4点で囲まれた領域を、(−2,−2)で表される個別領域とする。
領域分割部13は、第1の形状検査の始点として設定された9個の個別領域121a〜121iから、上述した手順により、新たに16個の個別領域122a〜122pを分割する。形状検査部14は、新たに分割された個別領域の各々に対して、前述した手順で形状度および中心座標を算出することができる。形状度と中心座標が算出されれば、上述した手順により、さらにその周辺の個別領域を分割することができる。形状検査装置1はこのように、形状検査部14による形状度の算出と、領域分割部13による中心座標の算出および周辺の個別領域の分割を繰り返し、被検査領域に含まれる全ての被検査パターンに対して上記処理を行う。
図13は、領域分割部13によって既に分割され作成された9個(縦横3個)の個別領域とこれらの個別領域の周囲に位置する新たに分割作成すべき16個の個別領域との関係を示す図である。図13(a)において、第1の形状検査の始点として既に設定された9個の個別領域は、それらの個別領域に含まれる被検査パターンの各々に白点が付されている。また、次に分割作成される予定の16個の個別領域が破線131により示されている。これらの16個の個別領域131が領域分割部13によって分割されると、合計25個の個別領域が作成される。図13(b)は、このようにして作成された25個の個別領域をそれらの個別領域に含まれる被検査パターンの各々に白点を付して示している図である。これらの25個の個別領域から図13(a)とは異なる9個の個別領域を選択して、図13(b)に示したようにその周囲の16個の個別領域132を分割作成する。この図13(b)の例では、新たに分割する16個の個別領域132のうち、7個の個別領域は既に図13(a)において分割されたものと重複している。図13(c),図13(d),および図13(e)は、図13(b)と同様に既に作成済みの9個の個別領域の周囲に新たな16個の個別領域133,134,135を分割作成する過程を示している。(a)から(e)は、領域分割部13により個別領域の分割が行われていく様子を時系列順に示している。なお図13では、被検査パターンの中心座標に置かれた白点は、その被検査パターンを含む個別領域が領域分割部13により分割済みであることを表している。例えば図13(a)では、第1の形状検査の始点として設定された9個の個別領域の被検査パターンの中心座標に白点が置かれている。このような処理を被検査領域の全体に施すことによって、最終的に被検査領域全体を個別領域に分割することができる。
なお、1つの個別領域の範囲を複数回推定した場合には、重みW(i,j)の総和がもっとも大きい推定式による推定結果を用いる。例えば図13において、被検査パターン131aを含む個別領域の範囲は図13(a),図13(c)の両方で推定されている。この場合、図13(a)においてこの個別領域を推定した際に式(7)および(8)で用いられた重みW(i,j)の総和と、図13(c)において用いられた重みW(i,j)の総和を比較し、総和がより大きい方の推定結果をこの個別領域の範囲とする。
図14は、領域分割部13による個別領域の作成が完了した状態を示す図である。すべての被検査パターンに対して、その被検査パターンの歪みに合わせた形状を有する個別領域が設定されている。
次に、輪郭推定部16による形状の推定について説明する。輪郭推定部16は、ある特定の被検査パターンの周辺に存在するいくつかの被検査パターンの形状に基づいて、その特定の被検査パターンの形状を推定する。輪郭推定部16による形状の推定は、上述した領域分割部13による形状の推定とは目的および方法が異なる。以下、輪郭推定部16の目的について述べる。
図13までに説明した処理によって、被検査領域は個々の被検査パターンごとの個別領域に分割され、各個別領域の形状度および中心座標と、各個別領域に含まれる被検査パターンの推定輪郭(点P1,P2,P3,P4)が求められる。しかし、上述した手順により領域分割部13が求めた被検査パターンの推定輪郭には、ノイズパターンによる誤りが含まれていることがある。
図15は、ノイズパターンにより推定輪郭に誤りが生ずる例を示す図である。図15(a)に示す被検査領域141では、図の中央に位置する被検査パターン141aに欠陥Dが存在する。この欠陥Dにより被検査パターン141aが正方形となっていないため、形状検査部14は被検査パターン141aを対象とした第1の形状検査において不合格と判定する。一方、図15(b)に示す被検査領域142は、図の中央に位置する被検査パターン142aの形状は正しい形状である。しかしながら、被検査パターン142aの周囲にノイズパターン143a〜143eが存在する。このようなノイズパターンが存在すると、図15(c)のように領域分割部13により被検査パターン142aについて誤った推定輪郭が算出されてしまい、第1の形状検査に不合格となることがある。図15(c)では、個別領域144内の被検査パターン144aは正しく正方形であるにも係わらず、その周囲に存在するノイズパターン145a〜145cのために、領域分割部13により算出された推定輪郭144bは正方形となっていない。
形状検査装置1は、上記のような推定輪郭の誤りに対処するため、第1の形状検査が不合格であった個別領域に対して、以下で説明する第2の形状検査を行い、推定輪郭を修正する。
第2の形状検査は、個別領域の全体、すなわち被検査領域に存在する全ての個別領域を対象とした形状検査を行う第1の形状検査に対して、より限定した領域のみを対象として行われる形状検査である。領域の限定には、第2の形状検査の対象となる個別領域の周囲に位置する、第1の形状検査に合格した個別領域に含まれる被検査パターンの輪郭を用いる。具体的には、まず輪郭推定部16が検査対象の個別領域の周囲に位置する正しい形状を備えた被検査パターンに基づいて、検査対象の個別領域に含まれる被検査パターンが正しい形状を備えている場合の輪郭を推定する。そして、形状検査部14が、推定された輪郭を含みかつ個別領域全体より小さな領域を検査範囲とする。この処理によって、被検査パターン全体を含み、かつ被検査パターン周辺に位置するノイズパターンを含まない検査範囲を設定することができる。なお、形状検査部14による第2の形状検査は、第1の形状検査が不合格であった個別領域に対してのみ行われる。従って、輪郭推定部16による輪郭の推定も、第1の形状検査が不合格であった個別領域に対してのみ行えばよい。
つまり、輪郭推定部16により輪郭推定を行うのは、第2の形状検査における新たな検査範囲を、被検査パターンが含まれ且つノイズパターンは除外される範囲とするためである。以下、輪郭推定部16による輪郭推定の具体的な内容について述べる。
図16は、第2の形状検査における輪郭の推定に必要な条件を示す図である。輪郭推定部16はどのような場合であっても輪郭の推定が可能なわけではない。すなわち、輪郭推定部16により輪郭の推定を行うためには、一定の条件が満たされることが必要である。図16(a)〜(c)に示す3×3のマス目151〜162はそれぞれ3×3に配置された個別領域を表し、それら9つの個別領域がどのような条件を満たしたときに輪郭の推定が可能となるかを示している。また、マス目に記入されている「○」は第1の形状検査に合格した個別領域を、「×」は第1の形状検査に不合格となった個別領域を表す。
図16(a)で示した4通りのマス目151〜154のように、不合格となった個別領域を挟むようにして合格となった2つの個別領域が存在する場合、不合格となった個別領域に含まれる被検査パターンが正しい形状を備えていた場合の輪郭を、合格となった2つの個別領域に基づき推定することが可能である。例えば図16(a)のマス目151は、中央の個別領域は第1の形状検査に不合格し、その左右に位置する個別領域は第1の形状検査に合格したことを表している。この場合、輪郭推定部16は、中央の個別領域に含まれる被検査パターンが正しい形状を備えていた場合の輪郭を、左右の個別領域に基づき推定することが可能である。
また、図16(b)のマス目155〜158が示すように、第1の形状検査に不合格となった個別領域の周囲8箇所の個別領域のうち、3つ以上が第1の形状検査に合格であった場合も、不合格となった個別領域に含まれる被検査パターンが正しい形状を備えていた場合の輪郭を、これら3つの個別領域に基づき推定することができる。ただし、図16(c)のマス目159〜162が示すように、周囲8箇所の個別領域のうち同一の行ないし列にのみ合格となった個別領域が存在する場合は推定不可能である。
なお、第2の形状検査で最初に行われる輪郭の推定、すなわち輪郭推定部16が第2の形状検査に先立って行う輪郭の推定は、形状検査部14による形状検査の検査範囲を限定するために行われるものであり、この処理により推定された輪郭が、第1および第2の形状検査により推定された輪郭(点P1,P2,P3,P4)を置き換えることはない。以下の説明では、検査範囲を限定するために用いられる推定された輪郭を、基準輪郭と呼ぶ。すなわち、輪郭推定部16は基準輪郭を算出する処理を行う機能部である。
基準輪郭を求める手法は、図16(a)に示す状態の場合と、図16(b)に示す状態の場合とで異なる。以下では、これら2つの場合における基準輪郭の算出手順について順に説明する。この説明において、第1の形状検査に不合格となった個別領域を不合格個別領域、形状検査に合格した個別領域を合格個別領域と呼ぶ。
初めに、図16(a)に示す状態から、不合格個別領域の基準輪郭を算出する手順について説明する。なお、基準輪郭は図8に示した直線83a,83b,83c,83dに相当する4つの直線から構成される。基準輪郭の算出はそれら4つの直線を算出することを指す。
図17は、不合格個別領域の基準輪郭を2つの合格個別領域から算出する手順を示す図である。図17に示した被検査領域163には、中央に不合格個別領域164が、その左右に合格個別領域165,166が存在している。すなわち、個別領域164に含まれる被検査パターン164aは第1の形状検査において不合格と判定され、個別領域165,166に含まれる被検査パターン165a,166aは第1の形状検査において合格と判定されている。まず、第1の形状検査により求められた、2つの合格個別領域165,166に含まれる被検査パターン165a,166aの輪郭のうち、図8で示した点P1とP4とを通る近似直線83cを、2つの個別領域165,166ごとに次式(9)および(10)で表す。つまり、次式(9)が図17における直線165bを表す式であり、次式(10)が図17における直線166bを表す式である。これらの式における定数は、第1の形状検査により既知である。
y=a0(x−x0)+y0 (9)
y=a1(x−x1)+y1 (10)
ここで、a0およびa1は各々の近似直線の傾きであり、x0,x1,y0,およびy1は、近似直線を求めるために用いたx座標およびy座標の平均値を表す。上記の2つの近似直線の式より、基準輪郭のうち、同じく点P1とP4とを通る近似直線83c(図8(g))を、次式(11)で表す。つまり、次式(11)が輪郭推定部16により算出される図17における直線164bを表す式である。
ここで、W0およびW1は、2つの合格個別領域165,166の各々における形状度であって、第1の形状検査において算出された値である。合格個別領域165,166の形状度が小さい場合、その合格個別領域に含まれる被検査パターンの推定輪郭(第1の形状検査において形状検査部14により算出された推定輪郭であって、輪郭推定部16により推定される輪郭とは異なる)が歪んでいる場合がある。形状度の値を重みとして用いることにより、推定輪郭の歪みの影響を低減する。同様にして、基準輪郭のうち、図8(g)に示す点P2とP3とを通る近似直線83dも求められる。
上記手順と同様に、基準輪郭のうち、図8(g)に示す点P1とP2とを通る近似直線83a,および点P3とP4とを通る近似直線83bを求めることができる。2つの合格個別領域165,166に含まれる被検査パターンの輪郭のうち、図8(g)で示した点P1とP2とを通る近似直線83aを、2つの個別領域165,166ごとに次式(12)および(13)で表すと、基準輪郭のうち、点P1とP2とを通る近似直線83aは、次式(14)で表される。
x=a0(y−y0)+x0 (12)
x=a1(y−y1)+x1 (13)
同様にして、基準輪郭のうち、点P3とP4とを通る近似直線83bを求めれば、4つの近似直線すべてを求めることができる。このようにして求められた4つの近似直線を図17における被検査パターン164aの基準輪郭として、後述する検査範囲の限定を行う。
次に、図16(b)に示す状態から、基準輪郭を算出する手順について説明する。
図18は、基準輪郭を3つ以上の合格個別領域から算出する手順を示す図である。図16(b)に示す状態の場合は、式(3)および(4)を用いて、基準輪郭を構成する4交点の座標を算出することにより、基準輪郭を算出する。なお図18は、図16(b)においてマス目155で示される場合を表しているものとする。すなわち、被検査領域171において、個別領域172が不合格個別領域であり、個別領域173,174,175がそれぞれ合格個別領域であるものとする。
初めに、図18に示すように、基準輪郭172aを構成する4交点のうち左上隅の交点172bの座標を算出する。この座標は、式(3)および(4)に示す関数X(i,j)およびY(i,j)に、不合格個別領域172の列番号および行番号を与えることで算出することができる。ただし、これらの関数には未知数a,b,c,d,e,およびfが含まれているため、まずこれらの未知数を求める必要がある。
式(3)および(4)に含まれる未知数a,b,c,d,e,およびfを求めるため、式(7)および(8)を用いる。ここで、xijおよびyijは、不合格個別領域172の周囲に存在する少なくとも3つの合格個別領域に含まれる各々の被検査パターンの左上隅の交点のx座標およびy座標である。すなわち図18においては、合格個別領域173,174,175における各々の被検査パターン173a,174a,175aの左上隅の交点173b,174b,175bのx座標およびy座標である。各々の式(3)および(4)に含まれる未知数は3つなので、xijおよびyijとして少なくとも3つの値を与えれば未知数を求めることができる。図16(b)において、不合格個別領域の周囲に必要な合格領域の数を3つとしているのはこのためである。なお、可能な限り多くの値を用いることで、求められる未知数a,b,c,d,e,およびfがより正確なものとなるので、不合格個別領域172の周囲に3つを上回る数の合格個別領域が存在する場合には、これら全ての合格個別領域についてxijおよびyijを与えることが望ましい。また、式(7)および(8)における総和は未知数を求めるために用いた全ての合格個別領域について行う。
上記の手順を交点172b以外の3交点について繰り返すことにより、少なくとも3つの合格個別領域173,174,175から基準輪郭172aを構成する4交点の座標を算出することができる。このようにして求められた4交点を基準輪郭172aとして、後述する検査範囲の限定を行う。なお、4つ以上の合格個別領域を用いて、基準輪郭を算出するための未知数a,b,c,d,e,およびfを求めてもよい。
次に、形状検査部14が行う第2の形状検査における、検査範囲の限定について説明する。本実施形態では、上述した手順で輪郭推定部16により求められた基準輪郭を、所定の長さだけ上下左右に広げた範囲を、第2の形状検査における検査範囲とする。
図19は、第2の形状検査における検査範囲の限定処理を説明する図である。図19(a)に示す被検査領域181において、輪郭推定部16により被検査パターン184の基準輪郭182が算出されたものとする。このとき、図19(b)に示すように、上述した基準輪郭182を所定の長さだけ上下左右に広げた範囲183を第2の形状検査の検査範囲とすることにより、被検査パターン間に存在するノイズパターン186を除外して、被検査パターン182の形状検査を行うことができる。これにより、形状検査部14が第1の形状検査において、ノイズパターンNPの存在によって図19(c)に示したような誤った輪郭185を算出した場合であっても、第2の形状検査において形状検査部14により図19(d)に示すノイズパターンNPを含まない輪郭186が算出され、正しい形状検査を行うことができる。
図20は、第2の形状検査において検査範囲を限定した様子を示す図である。被検査領域181において、上述した基準輪郭183を所定の長さだけ上下左右に広げた範囲184を形状検査の検査範囲とすることにより、隣接する被検査パターンの間に存在するノイズパターン186を除外して、被検査パターン182の形状検査を行うことができる。
形状検査部14は最後に、上記の限定された検査範囲に対して、第1の形状検査と同様の形状検査を行い、形状度および被検査パターンの推定輪郭(点P1,P1,P2,P3,P4により表される輪郭であって、輪郭推定部16により算出される基準輪郭とは異なる)を算出し直して、第1の形状検査における推定輪郭の算出結果および形状検査の結果を置き換える。以上が第2の形状検査である。形状検査部14および輪郭推定部16はこの処理を、第1の形状検査で不合格となった全ての個別領域に対して実行する。
図21は、第2の形状検査を繰り返す手順を示す図である。図21(a)〜(d)におけるマス目191〜194は、被検査領域全体を表しており、1つ1つのマス目は個別領域に対応している。また、図中で黒く塗りつぶされている個別領域は、第1の形状検査で不合格となり、かつ第2の形状検査が実行されていない個別領域である。他方、黒く塗りつぶされていない個別領域は、第1の形状検査または第2の形状検査において合格と判定された個別領域である。
図21(a)のように、第1の形状検査により不合格となった個別領域が密集している場合、これらの不合格個別領域のうち中央付近に位置する不合格個別領域については、周囲に合格個別領域が少ないため、図16(a)および図16(b)に示す状態とならず、第2の形状検査を実行できない場合がある。このような場合には、まず第2の形状検査を実行することができる不合格個別領域から順に処理を行うことにより、図21(b)のように、第2の形状検査を実行することができる個別領域を増やすことができる。これを繰り返すことで、図21(c)、図21(d)のように処理を進め、最終的に全ての個別領域に対して第2の形状検査を実行することができる。
次に、濃淡検査について説明する。濃淡検査はこれまで述べてきた処理が全て完了した後に濃淡検査部17により実行される処理である。濃淡検査部17は、被検査パターンの輝度に基づく特徴量を算出し、被検査パターンが正しい形状を備えているか否かを検査する。濃淡検査部17による濃淡検査は、各々の個別領域について、輝度に基づいた特徴量を算出し、後述する推定特徴量と比較することにより実行される。算出された特徴量と推定特徴量との差が所定のしきい値以下の場合は、個別領域が濃淡検査に合格したこととなる。それ以外の場合には、濃淡検査の結果は不合格となる。
本実施形態において、特徴量は濃淡検査の検査範囲内における輝度値の分散値である。濃淡検査の検査範囲は、形状検査の結果により異なる範囲が使用される。第1の形状検査が合格であった個別領域、あるいは第1の形状検査は不合格であったが第2の形状検査が合格であった個別領域の場合は、合格した形状検査により求められた被検査パターンの推定輪郭(輪郭推定部16により算出される基準輪郭とは異なる)が濃淡検査の検査範囲となる。一方で、第1および第2の形状検査の結果が不合格であった個別領域の場合は、第2の形状検査に際し輪郭推定部16により算出された個別領域の基準輪郭が濃淡検査の検査範囲となる。
濃淡検査部17は、各々の個別領域について算出された特徴量を基に、各々の個別領域の推定特徴量を算出する。ある個別領域の推定特徴量は、その個別領域の周囲に位置する8つの個別領域の形状度および特徴量を用いて算出される。周囲の個別領域の形状度をs1,s2,s3,…とし、周囲の個別領域の特徴量を同様にv1,v2,v3,…とすると、これらの個別領域の中央に位置する個別領域の推定特徴量uは次式(15)で表される。
推定特徴量を全ての個別領域について算出したら、各々の個別領域について特徴量と推定特徴量との差を算出する。特徴量と推定特徴量との差が所定のしきい値以下であるなら、その個別領域は濃淡検査に合格したものとする。それ以外の場合は、その個別領域に対する濃淡検査の結果は不合格である。
形状検査部14は最後に、各々の個別領域について、形状検査および濃淡検査の結果に基づいて、最終的な検査結果を出力する。検査結果は、形状検査と濃淡検査が共に不合格であった場合にのみ不合格となるようにしてもよいし、形状検査と濃淡検査のいずれか一方でも不合格であれば不合格となるようにしてもよい。
以上のように構成された形状検査装置1は、演算処理およびプログラム実行処理を行うCPUと、プログラムおよびデータを記憶する記憶装置と、CPUがプログラムを実行するに際し必要なデータを入力する入力装置と、CPUがプログラムを実行した結果を表示する表示装置とを含んだコンピュータ(いずれも図示せず)によって実現される。すなわち、図1に示した各ブロックが有するそれぞれの機能は、上記コンピュータのCPUがその記憶装置に記憶された所定のプログラムを実行することによって実現される。
次に、本実施形態における形状検査装置1の形状検査処理の詳細を、図を用いて説明する。
図22は、形状検査装置1による形状検査処理を示すフローチャートである。まずステップS1では、検査領域取得部12が被検査画像全体から被検査領域を抽出する。ステップS2では、領域分割部13が被検査領域の傾きを検出する。ステップS3では、領域分割部13が被検査領域の縦方向および横方向それぞれの周期を検出する。
ステップS4では、領域分割部13が、ステップS3で検出した周期を基に作成した周期関数と、ステップS2で検出した傾き方向への被検査領域の写像データとの相互相関を求め、相関値が最大となる位相を算出する。ステップS5では、領域分割部13が上記の周期関数にステップS4で算出した位相を加えた関数と、ステップS4で用いた射影データとの1周期分の相互相関を求め、相関値が最大となる位置を算出して形状検査部14による第1の形状検査を実行する。
ステップS6では、周辺推定部15が第1の形状検査の結果に基づいて周囲の個別領域の範囲を推定し、推定された範囲に基づき領域分割部13が設定した個別領域に対して、形状検査部14が第1の形状検査を実行する。ステップS7では、形状検査部14が全ての個別領域に対して第1の形状検査を実行したか否かを判定する。第1の形状検査が未実行となっている個別領域が存在する場合、ステップS7により否定判定がなされ、ステップS6へ戻る。他方、ステップS7により肯定判定がなされた場合には、ステップS8へ進む。
ステップS8では、形状検査部14が第2の形状検査を行う個別領域を選択し、対象領域とする。ステップS9では、形状検査部14が、対象領域が第1の形状検査に合格したか否かを判定する。対象領域が第1の形状検査に合格していた場合は、ステップS9により肯定判定がなされ、ステップS13へ進む。ステップS13では、形状検査部14が対象領域に対して第2の形状検査を実行したものとし、ステップS14へ進む。他方、ステップS9により否定判定がなされた場合は、ステップS10へ進む。
ステップS10では、輪郭推定部16が、対象領域に含まれるパターンの輪郭を、周囲の個別領域から推定可能か否かを判定する。周囲の個別領域から輪郭を推定可能である場合には、ステップS10により肯定判定がなされ、ステップS11へ進む。他方、ステップS10により否定判定がなされた場合は、ステップS8に戻り、異なる対象領域を選択する。
ステップS11では、輪郭推定部16が対象領域の周囲の個別領域から対象領域に含まれるパターンの輪郭を推定し、基準輪郭とする。ステップS12では、形状検査部14が基準輪郭を全方位に所定の幅だけ広げた範囲を検査範囲として第2の形状検査を実行する。ステップS14では、形状検査部14が全ての個別領域で第2の形状検査を実行したか否かを判定する。第2の形状検査が未実行となっている個別領域が存在する場合、ステップS14により否定判定がなされ、ステップS8へ戻る。他方、ステップS14により肯定判定がなされた場合は、形状検査が全て終了しているので、本処理を終了する。
次に、本実施形態における形状検査装置1の濃淡検査処理の詳細を、図を用いて説明する。
図23は、形状検査装置1による濃淡検査処理を示すフローチャートである。図23で示した処理は、図22で示した形状検査処理の後に続けて実行される。
まずステップS15では、濃淡検査部17が特徴量算出の対象となる個別領域を選択し、対象領域とする。ステップS16では、濃淡検査部17が、対象領域が形状検査に合格したか否かを判定する。対象領域が形状検査に合格している場合は、ステップS16により肯定判定がなされ、ステップS17へ進む。ステップS17では、濃淡検査部17が対象領域の推定輪郭を検査範囲として特徴量を算出する。他方、ステップS16により否定判定がなされた場合は、ステップS18へ進み、濃淡検査部17が形状検査により求められた対象領域の基準輪郭を検査範囲として特徴量を算出する。
ステップS19では、濃淡検査部17が全ての個別領域で特徴量が算出されたか否かを判定する。特徴量が算出されていない個別領域が残っている場合には、ステップS19により否定判定がなされ、ステップS15へ戻る。他方、ステップS19により肯定判定がなされた場合には、ステップS20へ進む。
ステップS20では、濃淡検査部17が全ての個別領域について、周囲の個別領域の特徴量に基づいて推定特徴量を算出する。ステップS21では、濃淡検査部17が特徴量比較の対象となる個別領域を選択し、対象領域とする。ステップS22では、濃淡検査部17が対象領域の特徴量と推定特徴量との差が所定のしきい値以下であるか否かを判定する。特徴量と推定特徴量との差がしきい値以下であった場合、ステップS22により肯定判定がなされ、ステップS23へ進む。ステップS23では、濃淡検査部17が対象領域の濃淡検査の結果を合格とする。他方、ステップS22により否定判定がなされた場合には、ステップS24へ進み、濃淡検査部17が対象領域の濃淡検査の結果を不合格とする。
ステップS25では、濃淡検査部17が全ての個別領域について濃淡検査の結果を出力したか否かを判定する。濃淡検査の結果を出力していない個別領域が残っている場合、ステップS25により否定判定がなされ、ステップS21へ戻る。他方、ステップS25により肯定判定がなされた場合には、処理を終了する。
上述した第1の実施の形態による形状検査装置によれば、次の作用効果が得られる。
(1)領域分割部13により分割された領域に対して形状検査部14が第1の形状検査を行い、不合格となった場合には、輪郭推定部16により推定された基準輪郭を含む範囲を対象に、形状検査部14が第2の形状検査を行う。これにより、ノイズパターンの影響で正しくない輪郭が算出された被検査パターンから、ノイズノイズパターンを除外した範囲で再度行われる形状検査により正しい輪郭が算出される。
(2)第1の形状検査に不合格となり、かつ輪郭推定部16が輪郭を推定するために必要な条件を満たさない個別領域が存在する場合には、輪郭推定部16が輪郭を推定可能な個別領域から順に第2の形状検査を繰り返し実行する。これにより、第1の形状検査に不合格となった個別領域が密集している場合であっても、周辺に位置する個別領域から順に形状検査が行われ、最終的に全ての個別領域に対して第2の形状検査を実行することができる。
(3)濃淡検査部17により、輝度値に基づく特徴量と、周囲の個別領域の特徴量に基づく推定特徴量との差に基づいた濃淡検査が行われる。これにより、被検査画像全体にシェーディングなどによる輝度値の変化がある場合でも、輝度値に基づく検査を正しく実行することができる。
(4)濃淡検査部17は濃淡検査の検査範囲を、形状検査が合格となった領域については被検査パターンの推定輪郭とし、形状検査が不合格となった領域については基準輪郭とする。これにより、被検査パターンの周囲に存在するノイズパターンの影響を受けずに濃淡検査を行うことができる。
(5)領域分割部13による個別領域の分割は、被検査画像からもっとも歪みの小さい箇所から順に、周辺推定部15により推定された周囲の個別領域の範囲に基づいて実行される。これにより、被検査画像全体に歪みがある場合であっても、各々の被検査パターンの形状を正しく検査することができる。
次のような変形も本発明の範囲内であり、変形例の一つ、もしくは複数を上述の実施形態と組み合わせることも可能である。
(1)検査対象物は正方形でなくてもよい。例えば、長方形や三角形、楕円形であってもよい。この場合、検査対象物の形状に適した形状度の算出式を定義する。また、検査対象物が矩形領域内に並んでいるのではなく、円形を成すように並んでいてもよい。
(2)被検査領域を特定する際のエッジ検出に、ソーベルフィルタを適用する以外の方法を用いてもよい。
(3)第1の形状検査の始点は、9個の個別領域ではなく、より多数の個別領域としてもよい。また、周囲の個別領域の範囲を推定する際に、より多数の個別領域を推定するようにしてもよい。
(4)基準輪郭を求める際に用いる個別領域を、3個より多くしてもよい。また、より広い範囲の個別領域を用いて、不合格領域の基準輪郭を推定してもよい。
(5)形状検査装置の入力画像を撮像する撮像装置は、ラインセンサであってもよい。
(6)近似式を求める処理に、最小二乗法以外の手法を用いてもよい。例えば、式(3)および(4)に含まれる未知数の算出に、ロバスト推定法などを用いてもよい。この場合は、式(7)および(8)における重みW(i,j)の定義を、形状度とロバスト推定法の重みとを乗算したものとする。
(7)濃淡検査における特徴量に、輝度値の分散以外の値を用いてもよい。例えば、輝度値の平均値や重心、相関値などであってもよい。また、推定特徴量を用いず、特徴量を所定のしきい値と直接比較するようにしてもよい。
(8)個別領域は、被検査領域を互いに重複しないよう分割して作成する必要はない。例えば、各々の個別領域が互いに重複するように設定した領域を個別領域としてもよい。これは、図24に示すように、隣接する被検査パターンの間隔が狭い場合に、被検査パターンの周期および位相に基づいて被検査領域221を分割すると、各個別領域に各被検査パターン全体が含まれない場合があるためである。この場合、分割された領域よりも広い領域を個別領域とし、各個別領域の重複を許すことにより、各個別領域に確実に被検査パターン全体を納めることが可能である。図24では、個別領域222,223は互いに重複している。
本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。