(58)【調査した分野】(Int.Cl.,DB名)
基準直線に対して線対称となる第1および第2領域を有する単色の原画像を、前記基準直線により前記第1および第2領域に分割し、前記第1および第2領域内で前記基準直線に対して線対称の位置に配置される2個の原画素の各ペアについて、前記2個の原画素の画素値の差分となる差分画素値を算出する差分算出工程と、
前記差分画素値を有する差分画素を配置して差分画像を生成する差分画像生成工程であって、前記第1領域内の第1位置の原画素と前記第2領域内の第2位置の原画素とのペアを用いて算出された前記差分画素値を有する差分画素を、前記差分画像の前記第1および第2位置に配置して前記差分画像を生成する差分画像生成工程と、
を備えることを特徴とする画像処理方法。
前記基準直線は、前記原画像を、等しい数の原画素を含む上半分の前記第1領域と下半分の前記第2領域とに分割する第1直線であることを特徴とする請求項1記載の画像処理方法。
前記基準直線は、前記原画像を、等しい数の原画素を含む左半分の前記第1領域と右半分の前記第2領域とに分割する第2直線であることを特徴とする請求項1記載の画像処理方法。
前記第3原画像の中からテンプレートマッチング法を用いて前記欠陥検査対象の被検査物を抽出する被検査物抽出工程をさらに備えることを特徴とする請求項5乃至7のいずれか一項記載の欠陥検査方法。
【背景技術】
【0002】
撮像装置により被検査物の表面を撮像して得られた撮像画像を用いて、被検査物の表面に対して欠陥の有無を検査する欠陥検査が広く行われている。出願人は、クラックと呼ばれる線状欠陥を検出する欠陥検査方法を既に出願している(特許文献1)。
【0003】
被検査物の表面には、上記クラック以外にも割れ、欠け、打痕、マーキングミスなどの多岐にわたる欠陥が存在する。それらの欠陥を検出する際には、デシタル化した撮像画像をデジタル処理する画像処理アルゴリズム(画像処理方法)が用いられる。
【0004】
被検査物を撮像する撮像装置として、CCD(Charged-coupled devices)あるいはCMOS(Complementary metal-oxide-semiconductor)のような撮像素子を搭載したカメラが用いられている。撮像時に被検査物から出た光がこれらの撮像素子に入力されると、光の強弱が電気信号の強弱に変換されてデジタル化され、デジタル画像として記録される。
【0005】
(1)デジタル画像
ここで、デジタル画像について説明する。画像を構成する最小要素を画素といい、デジタル画像は2次元に配列された画素からなる。各画素は色情報として0と1を組み合わせた2進法で表わされる数値を個別に有しており、この数値が被検査物から出た光の強さや被検査物の表面の色を表わしている。各画素が有する数値を画素値といい、画像はたとえばカラー画像、グレースケール画像などの種類に分かれる。
【0006】
カラー画像では、1つの画素の色は当該画素を構成する成分としてのR(赤)、G(緑)、B(青)の三原色の成分比率によって決定される。よって、カラー画像で1個の画素の画素値を表わす際には、RGB要素をそれぞれ8ビットで表わした24ビット(=8ビット×3色)を用いることが多い。
【0007】
カラー画像に対して、白黒の濃淡で表現した画像をグレースケール画像という。グレースケール画像は1個の画素の画素値を8ビットで表わし、色情報は含まず明るさ情報のみを含んでいる。暗い画素は低い(小さい)画素値を有し、明るい画素は高い(大きい)画素値を有している。このような明暗の段階の数を階調という。1個の画素に割り当てる情報量により階調は変化する。ここに、情報量の単位をビット数といい、ビット数が大きいほど諧調が大きくなる。具体的にはビット数をnとしたときの階調数は2
nとなる。例えば上記グレースケール画像はビット数が8ビットであるから、階調数は2
8=256となる。そして階調数が256であることから、グレースケール画像における画素値の最小値は漆黒に対応する0で、最大値は純白に対応する255である。
【0008】
またカラー画像においては、色を上記R(赤)、G(緑)、B(青)の三原色に分解し、それぞれの色について明るさを同じ階調数で表現することが多い。これは、カラー画像から3つのグレースケール画像すなわち単色画像を生成することと等価である。上記のグレースケール画像の階調数256(8ビット)をRGB各色に適用すると、上述のようにカラー画像はビット数が8ビット×3色=24ビットとなる。この場合の階調数は2
24=16777216となり、この階調数によってすべての色をデジタル画像によって表現することができる。カラー画像を24ビットで表現した色は、人間の目で見た際にきわめて自然な色に感じられる。このため、24ビットで表現したカラー画像のことをフルカラー画像と呼ぶ。
【0009】
カラー画像から単色画像を生成する方法は、上記のようにカラー画像をR(赤)、G(緑)、B(青)の三原色に分解して3つの単色画像を生成することに限定されない。他にカラー画像から1つの単色画像を生成する方法もある。その一例として、テレビジョンの放送規格として知られるNTSC信号を用いる方法がある。NTSC信号を得る前段階で使用されるコンポーネント信号としてYIQ信号があるが、このYIQ信号のY成分は輝度値である。今、カラー画像の信号すなわちR信号、G信号、B信号のそれぞれの画素値であるE
R、E
G、E
Bに係数を乗じて加算して、新しい画素値としての輝度値Yを生成することを考える。その際に、人間の眼に見える輝度に最も近くなるように、NTSC係数を用いた加重平均を適用することが知られている。具体的には、Y=0.299E
R+0.687E
G+0.114E
Bの演算を行い、輝度値Yを生成する。
【0010】
ところで、上述のように画像の欠陥を検出する際には、デジタル化した撮像画像をデジタル処理する画像処理アルゴリズムが用いられる。この画像処理アルゴリズムを用いるということは、上記画素値に対して演算を行うことに他ならない。そして演算方法を工夫することで、演算結果に基づいて画像の中に存在する欠陥検査の対象となる領域を選出することができる。そのような選出作用を有するように演算方法を工夫した画像処理アルゴリズムは、従来技術として広く用いられている。
【0011】
(2)従来技術の画像処理アルゴリズム
従来技術の画像処理アルゴリズムについて、
図32乃至
図37を用いて説明する。なお、以下の説明においては、表面の欠陥検査を行う対象となる被検査物を主にワークと記載する。また、上記画像の中に存在する欠陥検査の対象となる領域のことを、検査対象領域と記載する。併せて、欠陥検査の対象とならない領域すなわち検査対象領域以外の領域のことを、除外領域と記載する。
【0012】
ワーク表面の欠陥検査を行う際には、撮像装置を用いてワークを撮像して撮像画像を得て、その撮像画像に対して画像処理アルゴリズムを適用する。ここに、得られた撮像画像はグレースケール画像とする。撮像方法は、ワークが例えば6面体のような立体形状である場合には、ワークを水平に設置した台上に載置して、ワークの各面に対向する位置に配置した撮像装置を用いて各面を撮像する。またワークが紙あるいは薄板状に形成した木材や樹脂からなる平面形状である場合には、ワークを水平に設置した台上に載置して、台の上側に配置した撮像装置を用いてワークの上面を撮像する。
【0013】
なお、以下の説明においては簡単のために、図面におけるワークの形状、ワーク表面にマーキングされる印、ワーク表面に存在する欠陥の形状等は、円、楕円、長方形、正方形等の単純な図形を用いて模式図として示す。
【0014】
図32(a)は撮像装置を用いて良品であるワーク(良品ワーク)WG1の一面を撮像して得た良品画像PG1であり、背景B1およびワークWG1が撮像されている。ワークWG1は長方形の外形を有し、その表面に円形の印MG1がマーキングされている。ワークWG1の対角線の交点と印MG1の中心位置はおおむね一致している。
【0015】
図33(a)は撮像装置を用いて表面に欠陥を有するワーク、すなわち不良であるワーク(不良ワーク)WD1の一面を撮像して得た不良画像PD1である。良品画像PG1と不良画像PD1の差異は、不良画像PD1のワークWD1内に欠陥D1が存在し、かつ印MD1内に欠陥D2が存在する点である。
【0016】
ここに、
図32(a)の良品画像PG1および
図33(a)の不良画像PD1はいずれもグレースケールのデジタル画像である。そして良品画像PG1および不良画像PD1において各領域の色を目視により比較すると、以下のようになっている。良品画像PG1および不良画像PD1のいずれも、背景B1は黒く、ワークWG1およびWD1は濃いグレーであり、印MG1およびMD1は白い。また、不良画像PD1においてワークWD1の欠陥D1は薄いグレーであり、印MD1上の欠陥D2もまた薄いグレーである。ただし、同じように薄いグレーであっても、欠陥D2は欠陥D1に比べるとやや濃い。
【0017】
これらの比較は作業者が
図33(a)の不良画像PD1を目視した結果であり、実際の不良画像PD1は上述のようにデジタル画像として撮像装置内に記録されている。その記録されたデジタル画像について、上記各領域の画素値の大小関係を領域の名称を用いて不等式で表わすと、
背景B1<ワークWD1<欠陥D2<欠陥D1<印MD1 (1)
となっている。ここに、上記各領域はいずれも複数の画素により構成されている。そして、同一領域を構成する複数の画素が有する画素値は個別に異なる値を有する。しかし、以下の説明においては簡単のため、同一領域を構成する複数の画素はすべて同一の画素値を有するものとする。
【0018】
この(1)に示す画素値の大小関係は、
図33(a)に示す不良画像PD1を目視した際に、ワークWD1の正常な部分に比べてその欠陥D1が明るく(白色を帯びて)見えることを意味する。同様に、ワークWD1上の印MD1の正常な部分に比べてその欠陥D2が暗く(黒色を帯びて)見えることを意味する。また、
図32(a)の良品画像PG1の場合の当該領域の画素値の大小関係は、(1)から2種類の欠陥に関わる画素値を除外して、
背景B1<ワークWG1<印MG1 (2)
となっている。上記(1)(2)の具体例として、
図32(a)の良品画像PG1および
図33(a)の不良画像PD1における各領域に付与された符号と各領域の画素値を対応させて、それぞれ
図32(b)および
図33(b)に表形式で示してある。以下、簡単のため、説明の対象を
図33(a)の不良画像PD1に限定する。
【0019】
次に、
図33(a)に示す不良画像PD1を用いてワーク表面の欠陥検査を行う際に用いる画像処理アルゴリズムについて説明する。
図33(a)の不良画像PD1には背景B1とワークWD1が撮像されているが、欠陥検査を行う対象となるのはワークWD1である。ここで、撮像画像中のワークの位置は撮像の都度さまざまに変化する。一例として
図34(a)に、
図33(a)と同様に上記不良ワークWD1と異なる不良ワークWD2を撮像した不良画像PD2を示す。併せて
図33におけるのと同様に、
図34(a)に示す不良画像PD2における各領域に付与された符号と各領域の画素値を対応させて、
図34(b)に表形式で示してある。
【0020】
図34(a)の不良画像PD2におけるワークWD2の位置は、
図33(a)の不良画像PD1におけるワークWD1の位置とは異なる。このため、撮像画像ごとにワークの位置に係らずワークを正しく抽出することが必要となる。この工程をワーク抽出工程と名付ける。ワーク抽出工程に用いられる画像処理アルゴリズムとして、調査対象画像の中から特定の画像パターンを抽出するテンプレートマッチング法(TM法)が知られている。これは、以下の手順で実行されるアルゴリズムである。
[手順1]前記特定の画像パターンとして
あらかじめ決められた画像パターン(テンプレート)を用意する。
[手順2]調査対象画像とテンプレートを照合(マッチング)して
最も一致する箇所を探索する。
[手順3]一致した箇所を前記特定の画像パターンとして抽出する。
【0021】
例えば
図33(a)の不良画像PD1を調査対象画像とした場合には、
図32(a)の良品画像PG1に撮像されたワークWG1の形状をテンプレートとすればよい。そして不良画像PD1とテンプレートを照合すれば、ワークWD1の位置が不良画像PD1中でさまざまに変化しても、例えば
図33(a)のようにWD1が略中央に位置する場合も、あるいは
図35(a)に示す不良画像PD1aのようにワークWD1が右下に位置する場合も、
図35(b)のような形状を有するワークWD1を抽出することができる。
【0022】
次にこの抽出したワークWD1について、検査対象領域と除外領域を選別する。この工程を検査領域選別工程と名付ける。検査領域選別工程に用いられる従来技術としての画像処理アルゴリズムは、以下の[条件1]によって検査対象領域と除外領域を選別する。
[条件1]検査対象領域の画素値は、
当該領域に隣接する除外領域の画素値と比べて大きいか、小さいか。
【0023】
ここで、[条件1]に記載の「当該領域に隣接する除外領域」には2通りの場合があることに注意しておく必要がある。具体的には、除外領域が検査対象領域の外部において隣接する場合と、検査対象領域の内部にその部分集合として内包されるように隣接する場合がある。そして後者の場合には、除外領域を内包する検査対象領域を第1の検査対象領域とした場合に、この内包される除外領域を第1の検査対象領域に対して独立した第2の検査対象領域として層化することがあり得る。その結果として、複数の検査対象領域を組み合わせて内包させながら検査対象領域を構成することになる。このような検査対象領域の層化を含めた検査領域選別工程について、
図35および
図36を用いて説明する。
【0024】
まず
図35(a)の不良画像PD1aに対して、テンプレートマッチング法を用いたワーク抽出工程を実行してワークWD1を抽出する。抽出したワークWD1はその位置が不良画像の右下であること、および最外縁が長方形であることが明確になっている。このようにワークWD1を抽出したのち、検査領域選別工程を実行する。
【0025】
検査領域選別工程の第1段階は、ワークWD1の外側に前記最外縁の寸法規格の最大値よりαだけ大きい寸法の囲み枠F1を配置して、ワークWD1の最外縁を囲む。この第1段階を実行したあとの様子を
図36(a)に示す。ここに、ワークWD1は製造誤差によって最外縁の寸法にバラツキを生じる。その寸法には最大値および最小値により規定される規格があり、当該規格を満足するワークWD1が寸法に関する良品と判定される。そしてこの寸法に関する良品であるワークWD1を撮像したのち、上述のテンプレートマッチング法を用いてワーク抽出工程を実行している。このため、ワーク抽出工程の結果として得られたワークWD1の最外縁の寸法は、上記寸法規格の最大値から最小値までのすべての数値をとる可能性がある。よって、寸法規格の最大値よりαだけ大きい寸法の囲み枠F1を配置すれば、すべてのワークWD1について最外縁のさらに外側に囲み枠F1を配置することが可能となる。
【0026】
検査領域選別工程の第2段階は、
図36(a)の各領域を構成する画素の画素値に着目して検査対象領域の選別を行う。
図36(a)において第1段階で配置した囲み枠F1とワークWD1の最外縁との間の領域(以下ワーク周囲領域)WDS1を構成する画素の画素値は、背景Bを構成する画素の画素値に等しいことは明らかである。ここで、ワーク周囲領域WDS1とワークWD1の画素値との大小関係に着目する。
図33(b)および式(1)から、ワーク周囲領域WDS1の画素値は背景B1の画素値に等しい10であり、ワークWD1の画素値は100である。そこで、
図36(a)における囲み枠F1内部において、例えば画素値50をワーク選別閾値TWD1として設定する。そして、ワーク選別閾値TWD1以上の領域を選別することにより、画素値が100であるワークWD1の内部を検査対象領域の候補となる対象候補領域として選別することができる。
【0027】
次に、検査領域選別工程の第3段階以降において、上記対象候補領域の中から検査対象領域を選別する。この選別が必要となる理由を、以下に説明する。
図36(a)においてワークWD1の内部における正常領域と欠陥のそれぞれの画素値を比較すると、
図33(b)に示すようにワークWD1(正常領域)の画素値は100であり、ワークの欠陥D1の画素値は200である。このことから、例えばワークWD1内の領域において画素値140をワーク欠陥閾値TD1として設定し、ワーク欠陥閾値TD1以上の領域を選別すれば、欠陥D1を検出することができるように思える。しかし、ワークWD1内の領域にはワーク上の印M1(正常領域)が存在しており、その画素値は250である。よって、ワークWD1内の領域においてワーク欠陥閾値TD1としての画素値140以上の領域を選別した場合には、画素値200を有する欠陥D1とともに正常領域である画素値250を有するワーク上の印MD1も欠陥として選別されてしまう。これは、欠陥検査の結果として正しくないことは明白である。これを防止するには、対象候補領域としてのワークWD1内の領域からワーク上の印MD1内の領域を除外した領域を検査対象領域とすればよい。これが検査領域選別工程の第3段階以降である。
【0028】
ここに、上記検査領域選別工程の第2段階において選別したワークWD1内の領域を、第1の対象候補領域と名付ける。そして、この第1の対象候補領域から除外すべきワーク上の印MD1内の領域を、第1の除外領域と名付ける。最後に、第1の対象候補領域から第1の除外領域を除外した領域を、第1の検査対象領域と名付ける。具体的には、検査領域選別工程の第3段階において、上記ワーク抽出工程と同様のテンプレートマッチング法を用いて、ワーク上の印MD1のみを選別する。
【0029】
次に第4段階において、上記第1段階と同様に、
図36(b)に示すようにワーク上の印MD1の外側にその最外縁の寸法規格の最大値よりβだけ大きい寸法の囲み枠F2を配置して、ワーク上の印MD1の最外縁を囲む。
【0030】
そして第5段階において、上記第2段階と同様に、囲み枠F2とワーク上の印MD1の最外縁との間の領域(以下印周囲領域)M1S1を構成する画素の画素値が、ワークWD1を構成する画素の画素値に等しいことに着目する。
図36(b)より印周囲領域M1S1の画素値はワークWD1の画素値に等しい100であり、ワーク上の印MD1の画素値は250である。そこで、
図36(b)における囲み枠F2内部において、例えば画素値200を印選別閾値TM1として設定する。そして、印選別閾値TM1以上の領域を選別することにより、画素値が250であるワーク上の印M1の内部を第1の対象候補領域から除外すべき第1の除外領域として選別することができる。
【0031】
次に第6段階として、第1の対象候補領域から第1の除外領域を除外して、第1の検査対象領域とする。次に、上記第1の除外領域として選別されたワーク上の印MD1に着目する。
図36(b)に示すように、このワーク上の印MD1内には欠陥D2が存在する場合がある。よって、ワーク上の印MD1は欠陥D2を検出すべき第2の対象候補領域と考えるのが適切である。すなわち第7段階以降で、ワーク上の印MD1を第2の対象候補領域として選別したのち、必要に応じて第2の対象候補領域内に第2の除外領域を選別して、第2の対象候補領域から第2の除外領域を除外した領域を第2の検査対象領域として選別する。ところで
図36(b)によれば、ワーク上の印MD1を第2の対象候補領域としたとき、この領域内には第2の除外領域は存在しない。よって、第2の検査対象領域はワーク上の印MD1内の全領域となる。
図35(a)に示す不良画像PD1aに以上の工程を実行した結果として得られる検査対象領域は、上記第6段階において選別した第1の検査対象領域と上記第7段階において選別した第2の検査対象領域の2つの領域となる。ここまでで、検査領域選別工程を終了する。
【0032】
検査領域選別工程において第1の検査対象領域および第2の検査対象領域が選別されると、次に各検査対象領域において欠陥を検出することが可能な欠陥閾値を設定する欠陥閾値設定工程に移行する。この欠陥閾値設定工程においては、各検査対象領域を欠陥ではない正常領域と欠陥に選別可能な、特定のひとつの画素値を欠陥閾値として設定する。その際に以下の[条件2]によって検査対象領域内の正常領域と欠陥を選別する。
[条件2]検査対象領域内にある欠陥の画素値は、
該領域内の正常部分の画素値と比べて大きいか、小さいか。
【0033】
最初に欠陥閾値設定工程の第1段階において、第1の検査対象領域における欠陥閾値として、第1の欠陥閾値を設定する。上述のように、第1検査対象領域はワークWD1内におけるワーク上の印MD1以外の領域である。そして
図33(b)より第1検査対象領域の画素値は100であり、ワークの欠陥D1の画素値は200である。このことから、第1検査対象領域において例えば画素値150を第1の欠陥閾値TD1として設定し、第1の欠陥閾値TD1以上の領域を選別することにより、欠陥D1のみを選別することが可能となる。すなわち、第1の欠陥閾値TD1を150と設定する。
【0034】
次に欠陥閾値設定工程の第2段階において、第2の検査対象領域における欠陥閾値として、第2の欠陥閾値を設定する。第2の検査対象領域はワーク上の印MD1内の領域である。そして
図33(b)より第2の検査対象領域の画素値は250であり、ワーク上の印MD1における欠陥D2の画素値は180である。このことから、第2の検査対象領域において例えば画素値210を第2の欠陥閾値TD2として設定し、第2の欠陥閾値TD2以下の領域を選別することにより、欠陥D2を選別することが可能となる。すなわち、第2の欠陥閾値TD2を210と設定する。ここまでで、欠陥閾値設定工程を終了する。
【0035】
上述のように、検査領域選別工程の第2段階において、画素値50をワーク選別閾値TWD1として設定している。その目的は、
図36(a)における囲み枠F1内部においてワークWD1の内部を背景B1から選別して、欠陥検査の対象領域となる第1の対象候補領域として選別するためである。また、第5段階において、画素値200を印選別閾値TM1として設定している。その目的は、
図36(b)における囲み枠F2内部からワーク上の印MD1の内部を第1の対象候補領域から除外すべき第1の除外領域として選別するためである。
【0036】
同様に、欠陥閾値設定工程の第1段階において画素値150を第1の欠陥閾値TD1として設定している。その目的は、第1の検査対象領域における欠陥を選別するためである。また、第2段階において画素値210を第2の欠陥閾値TD2として設定している。その目的は、第2の検査対象領域における欠陥を選別するためである。
【0037】
これらの各種閾値は、
図33(a)の不良画像PD1および
図35(a)の不良画像PD1aにおけるワーク表面の欠陥検査に最適な閾値である。その理由は、これらの不良画像の各領域における画素値が
図33(b)に示す値となっているためである。ここで、
図33(a)の不良画像PD1以外の不良画像、すなわち別の不良ワークを撮像した画像における各領域の画素値について考える。ワークごとに各領域の画素値はある範囲にわたってばらつきを有することが想定される。不良画像を目視する限りにおいては、各領域の相対的な明るさあるいは暗さはどのワークを撮像した撮像画像についても同等である。
【0038】
しかしデジタル画像として考えると、画素値の差異が問題となる。例えば異なる2つのワークの撮像画像を目視したとき、両者における同一の領域の目視結果がともに白であったとする。しかし、これら2つの撮像画像をデジタル画像として記録すると、一方の白の画素値は240で他方の白の画素値は220であるということがあり得る。同様に、両者における同一の領域の目視結果がともに濃いグレーであっても、デジタル画像における一方の濃いグレーの画素値は100で、他方の濃いグレーの画素値は80であるということがあり得る。このように、ワークごとに各領域の画素値はある程度のばらつきを有している。よって、上述のように
図33(a)の不良画像PD1を用いて、検査領域選別工程あるいは欠陥閾値設定工程において設定した各種閾値を用いれば、すべての不良画像について確実に検査対象領域の選別ができて、かつその領域内における欠陥の選別ができるという保証はない。このため、前記各種閾値が適切であることを確認する閾値確認工程を実行する必要がある。閾値確認工程の手順を以下に説明する。
【0039】
まず第1段階において、B個(Bは自然数)の不良ワークを撮像して得たB個の不良画像を用意する。これらの不良画像のそれぞれに対して、
図33(a)の不良画像PD1に基づいて設定した各種閾値を用いて、検査対象領域の選別および欠陥の選別を実行する。そして、すべての不良画像に対して同一の検査対象領域を選別することができ、かつ不良画像ごとに異なる欠陥をそれぞれ確実に選別することを確認する。もし検査対象領域あるいは欠陥を正しく選別することができない不良画像が発見された場合には、当該の不良画像と当初の閾値設定に使用した
図33(a)の不良画像PD1の各領域における画素値(
図33(b))を比較して、閾値を修正する。そして、修正した閾値を用いて再度B個の不良画像に対して検査対象領域および欠陥を選別する。この選別の確認と閾値の修正を、すべての不良画像に対して同一の検査対象領域を選別することができ、かつ欠陥を確実に選別することができるようになるまで繰り返す。
【0040】
それが終了したら、次に第2段階として、B個の不良画像を用いて確認することにより修正した各種閾値を良品画像に適用したときに、すべての良品画像に対して同一の検査対象領域を選別することができ、かつ欠陥が選別されないことを確認する。この場合はA個(Aは自然数)の良品画像を用意して、上述のB個の不良画像に対する確認と同様に行なう。もし検査対象領域が正しく選別されない良品画像あるいは欠陥が選別される良品画像が発見された場合には、やはり上述のB個の不良画像を用いた確認に対応する修正と同様に、閾値の修正を行う。すなわち、当該の良品画像と当初の閾値設定に使用した
図33(a)の不良画像PD1の各領域における画素値(
図33(b))を比較して、閾値を修正する。そして、A個の良品画像のすべてについて同一の検査対象領域を選別することができ、かつ欠陥が選別されなくなるまで確認と修正を繰り返す。ここにBおよびAの具体値は、例えば量産時において1日当りに欠陥検査の対象となるワークの個数やワークの製造偏差等を考慮して、統計学の手法を用いて決定すればよい。
【0041】
このようにして各種閾値が適切であることの確認が完了したら、閾値確認工程を終了する。そして、これらの適切な閾値を用いて被検査物としてのワークの撮像画像に対して欠陥検査を行う検査実行工程に移行する。検査実行工程は、被検査物の撮像画像に対して上述の検査領域選別工程を実行して、検査対象領域を選別する。次に、検査対象領域に対して欠陥閾値を用いて、欠陥の有無を検査する。欠陥がなければ良品と判断し、欠陥があれば不良と判断する。
【0042】
ここで、
図33(a)の不良画像PD1の場合と異なる撮像画像の画素値の例について、
図37(a)に示す不良画像PD11を用いて説明する。
図37(a)の不良画像PD11において各領域の色を目視により比較すると、以下のようになっている。背景B11は白く、ワークWD11は薄いグレーであり、印MD11は黒い。また、ワークWD11の欠陥D11は濃いグレーであり、印MD11上の欠陥D21は薄いグレーである。ただし、同じように薄いグレーであっても、欠陥D21はワークWD11に比べるとやや薄い。この不良画像PD11をデジタル画像として記録した場合に、上記各領域の画素値の大小関係は、
印MD11<欠陥D11<ワークWD11<欠陥D21<背景B11 (3)
となっている。この(3)に示す画素値の大小関係は、
図37(a)の不良画像PD11を目視した際に、ワークWD11の正常な部分に比べてその欠陥D11が暗く(黒色を帯びて)見えることを意味する。同様に、ワークWD11上の印MD11の正常な部分に比べてその欠陥D21が明るく(白色を帯びて)見えることを意味する。これらの画素値を
図37(b)に表として示す。
【0043】
図37(a)の不良画像PD11に対して上述の検査領域選別工程および欠陥閾値設定工程を実行する際の各種閾値および選別すべき領域の画素値と閾値の大小関係は、以下のようになる。
【0044】
まず、検査領域選別工程の第2段階においてワーク選別閾値TWD11を設定する。その目的は、ワークWD11の内部を背景B11から選別して、欠陥検査の対象領域となる第1の対象候補領域として選別するためである。ここに、
図37(b)よりワークWD11の画素値は130であり、背景B11の画素値は250である。これらの画素値を比較すると、ワーク選別閾値TWD11を例えば180に設定して、ワーク選別閾値TWD11以下の画素値を有する領域を選別すれば、第1の対象候補領域を選別することが可能であるとわかる。
【0045】
次に第5段階において、印選別閾値TM11を設定する。その目的は、ワーク上の印MD11の内部を第1の対象候補領域から除外すべき第1の除外領域として選別するためである。ここに、
図37(b)よりワークWD11の画素値は130であり、印MD11の画素値は40である。これらの画素値を比較すると、印選別閾値TM11を例えば90に設定して、印選別閾値TM11以下の画素値を有する領域を選別すれば、第1の除外領域を選別することが可能であるとわかる。
【0046】
同様に、欠陥閾値設定工程の第1段階において第1の欠陥閾値を設定する。その目的は、第1の検査対象領域における欠陥を選別するためである。ここに、
図37(b)よりワークWD11の画素値は130であり、欠陥D11の画素値は80である。これらの画素値を比較すると、第1の欠陥閾値TD11を例えば100に設定して、第1の欠陥閾値以下の画素値を有する領域を選別すれば、欠陥D11を選別することが可能であるとわかる。
【0047】
さらに、第2段階において第2の欠陥閾値を設定する。その目的は、第2の検査対象領域における欠陥を選別するためである。ここに、
図37(b)より印MD11の画素値は40であり、欠陥D21の画素値は170である。これらの画素値を比較すると、第2の欠陥閾値TD21を例えば100に設定して、第2の欠陥閾値以上の画素値を有する領域を選別すれば、欠陥D21を選別することが可能であるとわかる。
【0048】
以上のように、状来技術としての画像処理アルゴリズムにおける各種閾値の設定および選別すべき領域の画素値と閾値の大小関係は、撮像画像における2つの情報に基づいて決定される。1つ目の情報は、撮像画像をデジタル画像として記録したときの当該領域の画素値である。そして2つ目の情報は、作業者が撮像画像を目視して得られる各領域の明るさ(白色を帯びる度合い)と暗さ(黒色を帯びる度合い)の比較結果、すなわち各領域間の明るさ情報の比較結果である。2つ目の情報のうち、特に重要なものは、検査対象領域における正常部分と欠陥の明るさ情報の比較である。
【0049】
これまでの説明においては、不良画像および良品画像としての撮像画像はグレースケール画像であるとした。もし撮像画像がカラー画像である場合には、カラー画像の色をR(赤)、G(緑)、B(青)の三原色に分解し、それぞれの色についてグレースケール画像を生成する。そして、不良画像から生成した3種類のグレースケール画像を作業者が目視して、各領域間の明るさ情報を比較することにより、最も欠陥を明瞭に識別することできると判断した1つのグレースケール画像を選択する。この選択したグレースケール画像に対して、上記画像処理アルゴリズムを適用すればよい。
【0050】
(3)従来技術の画像処理アルゴリズムの問題点
以上のような従来技術としての画像処理アルゴリズムには、以下の問題点がある。それは、撮像画像に対する画像処理アルゴリズム適用時に、作業者による目視の作業が多くなることである。上述のように、検査領域選別工程において各種閾値を設定する際に、作業者は撮像画像を目視して各領域間の明るさ情報を比較する。そしてその比較結果に基づいて、選別すべき検査対象領域の内部に欠陥と識別されるべき正常な領域としての除外領域が存在するか否かを判断する。
【0051】
例えば上述の
図33(a)に示す不良画像PD1を用いた検査領域選別工程に関する説明においては、
図33(b)のようにワークWD1の画素値が100で、ワークWD1上の欠陥D1の画素値が200である。そしてワークWD1内の印MD1の画素値が250である。このため、ワークWD1上において欠陥D1を正しく選別するために、第1の対象候補領域であるワークWD1内から印MD1を第1の除外領域として除外することで、第1の検査対象領域を選別している。これらの作業において、作業者の目視が果たす役割は非常に大きく、作業者に対して熟練が要求される。例として上記説明に用いた
図33(a)に示す不良画像PD1の場合は、除外領域が1個で検査対象領域が2個であった。しかし、除外領域および検査対象領域の数はこれに限定されるものではない。
【0052】
ワーク表面を構成するパーツの数量、欠陥が発生するパーツとそれらの配置および各パーツおよびそれらに対応する欠陥の画素値等により、除外領域および検査対象領域の数はさらに増加することも考えられる。さらに、上述のように撮像画像がカラー画像である場合には、カラー画像の色をR(赤)、G(緑)、B(青)の三原色に分解し、それぞれの色についてグレースケール画像を生成してから、作業者がそれら3種類のグレースケール画像を目視して比較する作業が追加される。これらのように除外領域および検査対象領域が増加する場合、あるいはカラー撮像画像に対する処理が必要となる場合には、領域を選別するための閾値の数が増加するなど、さらに作業者の目視に要する時間が増加する。またそれとともに作業者の判断項目が増加し、作業者の負担が増加する。このような作業者の目視に要する時間の増加および負担の増加に起因して、検査速度および検査精度が低下する。
【発明を実施するための形態】
【0065】
以下、本発明の実施形態を、図面を参照して説明する。
【0066】
(1)本発明の画像処理アルゴリズム
本発明の基本となる画像処理アルゴリズムについて、
図1乃至
図6を用いて説明する。
図1(a)は
図33(a)の不良画像PD1に撮像されている不良ワークWD1を原画像すなわち画像処理の対象とするデジタル画像として、この原画像に本発明の画像処理アルゴリズムを適用するための説明図である。ここに、
図1(a)の不良ワークWD1は上記不良画像PD1の中からテンプレートマッチング法を用いて抽出したものである。不良ワークWD1の表面の各領域については既に
図33(a)を用いて説明したので、ここでは省略する。また
図1(b)に、
図1(a)に示す原画像における各領域の画素値を表形式で示す。これらの画素値は
図33(b)の対応する領域の画素値と同一である。すなわち
図1(a)の原画像もまた、
図33(a)と同じくグレースケール画像である。
【0067】
初めに
図1(a)において、ワークWD1および印MD1の領域に注目する。これらの領域にはそれぞれ欠陥D1およびD2が存在する。そして欠陥D1およびD2を除外した領域、すなわち
図32(a)の良品画像PG1内の良品ワークWG1と同一の領域を見ると、線対称性を有する領域であることがわかる。この良品ワークWG1と同一の領域は、不良ワークWD1とその表面にマーキングされている印MD1により構成されている。そして上述のように不良ワークWD1は長方形の外形を有し、印MD1は円形である。またワークWD1の対角線の交点と印MD1の中心位置はおおむね一致している。よって不良ワークWD1と印MD1からなる領域は、
図1(a)に示す2本の直線L1およびL2に関して線対称であることがわかる。具体的には基準直線としての第1直線L1を対称軸として上下対称であり、第1直線L1は原画像を上半分と下半分に等しい数の画素に分割する。同様に基準直線としての第2直線L2を対称軸として左右対称であり、第2直線L2は原画像を左半分と右半分に等しい数の画素に分割する。
【0068】
本発明の画像処理アルゴリズムは、このように1本以上の対称軸に関して線対称となる領域を有する画像について、欠陥検査を行うべき検査対象領域を容易に選出することができるものである。本発明の画像処理アルゴリズムの原理を説明する際には、簡単のために
図2に示すような縦4個、横4個の正方形状に配置された16個の画素を用いることにする。
図2において各画素は正方形の形状で、その中にそれぞれの画素の位置を示す固有のアドレスが記載されている。このアドレスは、各画素に対して
図2の横方向となるXおよび縦方向となるYを組み合わせた二次元表示で付与される。具体的なアドレスの付与方法を以下に説明する。
【0069】
まずX方向およびY方向のアドレス値の増加する方向を定めるために、X=0およびY=0となる原点を左上にとる。そして、二次元アドレス(X,Y)のXとYをそれぞれ
図2の矢印X方向およびY方向に増加させる。すなわち、左上角に位置する画素のアドレスは(0,0)となり、その右側に位置する画素のアドレスは(0,0)からXアドレスの値を1だけ増加させて(1,0)となる。同様に左上角の画素の下側に位置する画素のアドレスは(0,0)からYアドレスの値を1だけ増加させて(0,1)となる。このようにしてXアドレスとYアドレスの値を変化させて、原点から最も遠い右下角に位置する画素のアドレスは(0,0)からXアドレスの値を3だけ増加させるとともに、Yアドレスの値を3だけ増加させて(3,3)となる。以下の説明においては、画素のアドレスをこの方法によって表現する。
【0070】
図3乃至
図6は、本発明の画像処理アルゴリズムの原理を説明する図である。
図3(a)は、
図32(a)の良品画像PG1内の良品ワークWG1を、
図2に示すような縦4個、横4個の正方形状に配置された16個の画素で原画像としてモデル化したものである。各画素には
図32(b)の表に対応するような画素値を記載してある。なお、
図32(a)における良品ワークWG1の形状は長方形であるが、
図3(a)においては簡単のため正方形でモデル化している。また
図32(a)における印MG1は円形であるが、
図3(a)においては全16個からなる画素のうち中央部にあるアドレス(1,1)、(2,1)、(1,2)、(2,2)の4個の画素でモデル化している。この場合、これら中央部の4個の画素を取り囲む12個の画素が、
図32(a)における良品ワークWG1をモデル化したものとなる。
【0071】
ここに、
図32(b)における良品ワークWG1の画素値は100であり、印MG1の画素値は250である。しかし
図3(a)においては、良品ワークWG1の画素値として100近傍のいくつかのばらつかせた値を上記12個の画素のそれぞれに割り当てるとともに、印MG1の画素値として250近傍のいくつかのばらつかせた値を上記4個の画素のそれぞれに割り当てている。このような画素値のばらつきは実際の画像において、たとえばノイズにより生ずるものである。
【0072】
なお
図3(a)においては、16個の画素のそれぞれの画素値に対応して、当該画素の明るさ(白色を帯びる度合い)と暗さ(黒色を帯びる度合い)を視覚的かつ相対的に表現している。例えば、
図32(a)における印MG1に対応する
図3(a)の画素は、上述のように中央部のアドレス(1,1)、(2,1)、(1,2)、(2,2)の4個の画素である。これらの画素の画素値は250近傍であり、目視すると白色である。よって、上記中央部の4個の画素は地に模様のない白抜きの正方形になっている。一方、
図32(a)における良品ワークWG1に対応する
図3(a)の画素は、上述のように上記中央部の4個の画素を取り囲む12個の画素である。これらの画素の画素値は100近傍であり、目視すると濃いグレーである。よって、上記12個の画素は画素値を示す数字以外の地の部分に、多数のきわめて短い水平な線分からなる模様を配置した正方形となっている。これらの16個の画素を示す
図3(a)を目視すると、
図1(a)と同様に中央部分が白くかつその周囲が濃いグレーであることを、視覚的に理解することが可能となる。以後、本発明の画像処理アルゴリズムの説明においては、
図3(a)以外の16個の画素によるモデルについても同様の方法で、各画素の相対的な明るさや暗さを視覚的に表現する。
【0073】
なお、以下の説明においては文章の簡素化を目的として、アドレス(a,b)に配置される画素のことを(a,b)の画素と表記する。同様に、アドレス(a,b)に配置される画素の画素値のことを(a,b)の画素値と表記する。ここで、
図3(a)には
図1と同様に対称軸としての第1直線L1および第2直線L2を重ねて記載してある。この
図3(a)を用いて、以下に本発明の画像処理アルゴリズムについて順を追って説明する。
【0074】
本発明の画像処理アルゴリズムは、上述のように基準直線としての対称軸すなわち
図3(a)における第1直線L1あるいは第2直線L2に関して線対称となる領域を有する画像に適用される(一方の領域を第1領域と呼び、他方の領域を第2領域と呼ぶ)。ここに、
図3(a)において第1直線L1を対称軸とした場合について、各画素の画素値の対称性に着目する。例えば(0,0)に位置する画素値100の画素と(0,3)に位置する画素値103の画素は、対称位置に配置されている。同様に例えば(2,1)に位置する画素値255の画素と(2,2)に位置する画素値253の画素もまた、対称位置に配置されている。以後原画像を構成する画素を原画素と名付ける。
【0075】
このとき
図3(a)の16個の原画素の集合を正方形の折り紙と考えると、第1直線L1を折り目としてこの折り紙を折ることで、前記対称位置にある原画素どうしを互いに重ねることができる。この処理を上下折り返しと呼ぶ。本発明の画像処理アルゴリズムは、最初にこの上下折り返しによって重なった2個の原画素すなわち第1直線L1に関して線対称の位置に配置される2個の原画素の画素値について、差分となる差分画素値を全原画素について算出する。別言すると、上下折り返しによって重なった2個の原画素を1つのペアとし、全ペアの各々について差分画素値を算出する。この工程を差分算出工程と名付ける。差分算出工程のあとで、算出した差分画素値を有する差分画素を、その差分画素値の算出に用いた2個の原画素と同一の位置に配置して差分画像(第1差分画像)を生成する。例えば、第1領域内の第1位置の原画素と第2領域内の第2位置の原画素とのペアを用いて差分画素値を算出した場合には、この差分画素値を有する差分画素を、差分画像の第1位置と第2位置とに配置して差分画像を生成する。この工程を差分画像生成工程と名付ける。
【0076】
図3(a)の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第1差分画像を
図3(b)に示す。例えば
図3(a)の原画像において、上記(0,0)の原画素と(0,3)の原画素を用いて差分算出工程を実行すると、得られる差分画素値は103−100=3となる。よってこの差分画素値3を有する差分画素を用いて差分画像生成工程を実行すると、
図3(b)の第1差分画像において(0,0)および(0,3)の画素値は3となる。同様に原画像において上記(2,1)の原画素と(2,2)の原画素を用いて差分算出工程を実行すると、得られる差分画素値は255−253=2となる。よってこの差分画素値2を有する差分画素を用いて差分画像生成工程を実行すると、
図3(b)の第1差分画像において(2,1)および(2,2)の画素値は2となる。
【0077】
ここで、
図3(b)に示す第1差分画像において、16個の画素の画素値はすべて最小の画素値である0にきわめて近い小さい値である。このような小さい画素値が生成されるのは、上述のように
図3(a)において第1直線L1を対称軸として対称位置に配置される2個の原画素の差分画素を、これら2個の原画素と同一の位置に配置して
図3(b)を生成することに起因している。これら2個の原画素は対称位置に配置されているために、それぞれの画素値がきわめて近接している。よって、これら2個の画素の差分画素値は0にきわめて近い値になる。このような画素値を有する
図3(b)の16個の画素を目視すると黒色である。これに対応して
図3(b)における16個の画素はすべて、画素値を示す数字以外の地の部分に、多数の右上がりの斜線からなる模様を配置した正方形となっている。
【0078】
次に本発明の画像処理アルゴリズムは、
図3(a)において左右対称の対称軸である第2直線L2に注目する。この第2直線L2は原画像を左半分と右半分に等しい8個の画素に分割する。第2直線L2の左側に位置する8個の原画素と、第2直線L2の右側に位置する8個の原画素は互いに対称位置に配置されている。例えば(0,0)に位置する画素値100の原画素と(3,0)に位置する画素値110の原画素は、対称位置に配置されている。同様に例えば(1,1)に位置する画素値254の原画素と(2,1)に位置する画素値255の原画素もまた、対称位置に配置されている。
【0079】
このとき上述の第1直線L1に関する線対称の場合と同様に、
図3(a)の16個の原画素の集合を正方形の折り紙と考えると、第2直線L2を折り目としてこの折り紙を折ることで、前記対称位置にある原画素どうしを互いに重ねることができる。この処理を左右折り返しと呼ぶ。この左右折り返しによって重なった2個の原画素すなわち第2直線L2に関して線対称の位置に配置される2個の原画素の画素値について、差分となる差分画素値を全原画素について算出する差分算出工程を実行する。差分算出工程のあとで、算出した差分画素値を有する差分画素を、その差分画素値の算出に用いた2個の原画素と同一の位置に配置して差分画像(第2差分画像)を生成する差分画像生成工程を実行する。
【0080】
図3(a)の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第2差分画像を
図3(c)に示す。例えば
図3(a)の原画像において、上記(0,0)の原画素と(3,0)の原画素を用いて差分算出工程を実行すると、得られる差分画素値は110−100=10となる。よってこの差分画素値10を有する差分画素を用いて差分画像生成工程を実行すると、
図3(c)の第2差分画像において(0,0)および(3,0)の画素値は10となる。同様に原画像において上記(1,1)の原画素と(2,1)の原画素を用いて差分算出工程を実行すると、得られる差分画素値は255−254=1となる。よってこの差分画素値1を有する差分画素を用いて差分画像生成工程を実行すると、
図3(c)の第2差分画像において(1,1)および(2,1)の画素値は1となる。
【0081】
ここで、
図3(c)に示す第2差分画像において16個の画素の画素値はすべて最小の画素値である0にきわめて近い小さい値である。このような小さい画素値が生成されるのは上述の
図3(b)についての説明と同様に、
図3(a)において第2直線L2を対称軸として対称位置に配置される2個の原画素の差分画素を、これら2個の原画素と同一の位置に配置して
図3(c)を生成することに起因している。これら2個の原画素は対称位置に配置されているために、それぞれの画素値がきわめて近接している。よって、これら2個の画素の差分画素値は0にきわめて近い値になる。このような画素値を有する
図3(c)の16個の画素を目視すると黒色である。これに対応して
図3(c)においては
図3(b)と同様に16個の画素はすべて、画素値を示す数字以外の地の部分に多数の右上がりの斜線からなる模様を配置した正方形となっている。
【0082】
ここで、上記差分算出工程における上下折り返しおよび左右折り返しをソフトウェアで実行する具体的なアルゴリズムについて、説明を補足する。
図3(a)における16個の画素にはそれぞれ
図2のようにアドレスが付与されている。
【0083】
そこで上下折り返しを実行する際には、
図2に基づいて
図3(a)における第1直線L1の一端のアドレスおよび他端のアドレスを決定したのち、これらのアドレスを差分算出工程を実行するソフトウェア(以下差分算出ソフト)に入力として渡す。これによって差分算出ソフトは対称軸を認識して、その一端および他端のアドレスによって上下折り返しであることを判断することができる。
【0084】
同様に左右折り返しを実行する際には、
図2に基づいて
図3(a)における第2直線L2の一端のアドレスおよび他端のアドレスを決定したのち、これらのアドレスを差分算出ソフトに入力として渡す。これによって差分算出ソフトは対称軸を認識して、その一端および他端のアドレスによって左右折り返しであることを判断することができる。
【0085】
図3(a)における第1直線L1の一端のアドレスは、(0,1)と(0,2)の2個の画素に挟まれた位置に対応する。よって、そのアドレスは(0,1.5)となり、これは
図2において矢印Yで示す方向における(0,0)と(0,3)の画素のアドレスの中央値に他ならない。
【0086】
同様に
図3(a)における第1直線L1の他端のアドレスは、(3,1)と(3,2)の2個の画素に挟まれた位置に対応する。よって、そのアドレスは(3,1.5)となり、これは
図2において矢印Yで示す方向における(3,0)と(3,3)の画素のアドレスの中央値に他ならない。
【0087】
このようにして決定した(0,1.5)および(3,1.5)という2個のアドレスを差分算出ソフトに入力として渡すと、差分算出ソフトは
図2のアドレスをテーブルとして持つので、このテーブルを参照して対称軸としての第1直線L1を生成することができる。そして対称軸が水平であることから、差分算出ソフトは上下折り返しを実行すると判断して、例えば上記の
図3(a)における(0,0)の画素値と(0,3)の画素値について差分を算出し、同様に(2,1)の画素値と(2,2)の画素値について差分を算出する。
【0088】
図3(a)における第2直線L2についても同様に、一端のアドレスとして(0,0)と(3,0)の中央値である(1.5,0)を差分算出ソフトに入力として渡すとともに、他端のアドレスとして(0,3)と(3,3)の中央値である(1.5,3)を差分算出ソフトに入力として渡せばよい。これらのアドレスを受け取った差分算出ソフトは、上記第1直線L1の場合と同様に、
図2のアドレスのテーブルを参照して対称軸としての第2直線L2を生成することができる。そして対称軸が垂直であることから、差分算出ソフトは左右折り返しを実行すると判断して、例えば上記の
図3(a)における(0,0)の画素値と(3,0)の画素値について差分を算出し、同様に(1,1)の画素値と(2,1)の画素値について差分を算出する。
【0089】
以上の工程によって、
図3(a)の原画像から
図3(b)に示す第1差分画像および
図3(c)に示す第2差分画像を生成したら、次に各差分画像を構成する16個の画素の画素値に注目する。具体的には、これら16個の画素のうち、大多数の画素値に対して大きく離間した値となる画素値(以下離間画素値)を有する画素(以下離間画素)を選出する。その手順を
図3(d)乃至
図4(c)を用いて、以下に説明する。
【0090】
最初に
図3(b)に示す16個の差分画素の画素値を降順に並べる。その結果を
図3(b)の直下に
図3(d)として示す。
図3(d)は上下に配置される3つの段によって構成されている。各段には数値が記載され、その左端に当該段の数値の意味を標題として記している。各段の数値間には下向きの矢印が記載され、これにより矢印の上側の段の数値から矢印の下側の段の数値を生成する工程の説明を理解する一助としている。
【0091】
図3(d)の上段の標題は差分画素値降順で、上記
図3(b)に示す16個の差分画素の画素値を降順に並べた結果である。画素値は7、3、2、1の4種類であり、左端に最大値となる7を配置し、そこから右に順次小さい画素値を配置している。右端は最小値となる1が配置されている。
【0092】
次に上段において隣接する差分画素値間の差分を算出して中段に配列する。中段の標題は隣接差分画素値の差分値であり、上記差分値が記されている。左端の数値は4であり、この4という値は上段における左端の7とその右に隣接する3の差分である。これを表わすために、差分値4の算出に用いた上段の画素値7および3と中段の差分値4がそれぞれ下向きの矢印によって対応づけられている。中段におけるその他の数値についても同様である。
【0093】
以上の工程を終了したら、次に中段の数値における最大値を選出する。この選出は、上述の離間画素を選出するための工程である。
図3(d)の場合は中段における左端の数値4が最大値である。そして、この最大値となる差分値を生成した上段の2個の画素値は、左端の7とそれに隣接する3である。この7と3の区間は中段の差分値が最大となる区間であり、この区間において7と3の中央値を閾値として設定すれば、上記の離間画素を選出することができる。実際、
図3(d)の上段に記された4個の数値を見ると、左端の数値7に対して残りの3個の数値は3、2、1であり、これら3個の数値間の差分は比較的小さい。これに対して左端の7だけが大きく離間しており、離間画素と考えられる。
【0094】
このように中段の差分値が最大となる区間を選出したのち、当該区間の両端の差分画素値の中央値を算出して、離間画素を選出するための閾値とする。この閾値算出結果を
図3(d)の下段に示す。下段の標題は差分値の最大区間における閾値であり、中段の数値から選出された最大の差分値4を算出した上段の画素値である7と3の中央値としての5(小数点以下は切り上げ)を閾値として記載している。
【0095】
以上の工程を経て閾値を設定したら、上段の画素値の中からこの閾値より大きい値となる画素値を選出する。この選出された画素値が離間画素値であり、離間画素値を有する画素が離間画素である。選出される画素値が7であることは、上記の説明から明らかである。
【0096】
その結果、離間画素の画素値「7」は、他の画素値「3、2、1」から所定値以上に離間している。所定値の例は、最大の差分値4である。この場合、離間画素の画素値「7」は、画素値「3」からは4だけ離間し、画素値「2」からは5だけ離間し、画素値「1」からは6だけ離間しており、他の画素値から所定値以上に(すなわち4以上)離間している。
【0097】
以上の
図3(b)に示す第1差分画像に対する
図3(d)の工程と同様に、
図3(c)に示す第2差分画像に対しても
図3(e)の工程によって閾値を設定し、
図3(c)の画素の中から離間画素値10を選出する。
図3(c)と
図3(e)の関係は上述の
図3(b)と
図3(d)の関係と同一である。また
図3(e)の上段、中段、下段の数値と各段の間の矢印の意味も
図3(d)と同一である。よって、
図3(e)についての詳細な説明は省略する。
【0098】
以上の工程を経て選出された
図3(b)および
図3(c)における離間画素を、それぞれ
図4(a)および
図4(b)に画素値を二重枠で囲むことにより表示する。こうして2つの差分画像において離間画素を選出したのちに、次の工程として2つの差分画像における離間画素の共通部分を選出する。そして、この選出した共通部分が原画像において欠陥が存在する可能性がある領域、すなわち欠陥検査を行うべき検査対象領域となる。
【0099】
ここで、
図4(a)および
図4(b)には離間画素の共通部分が存在しない。その理由は、
図3(a)の原画像が
図32(a)に示す良品ワークWG1、すなわち欠陥を有していないワークをモデル化したものであり、2本の対称軸としての第1直線L1および第2直線L2に対して線対称となるためである。よって
図3(a)の原画像において欠陥検査を行うべき検査対象領域は存在しない。
【0100】
図3(a)の原画像において、
図4(a)および
図4(b)に画素値を二重枠で囲むことにより示す離間画素の共通部分と同一の位置に配置される原画素を、画素値を二重枠で囲むことにより示した画像を
図4(c)に示す。上述のように
図4(a)および
図4(b)に上記二重枠で示す2つの差分画像における離間画素は、共通部分を有していない。このため、
図4(c)には画素値を二重枠で囲まれる画素は存在せず、
図3(a)と同一の画像となる。
【0101】
以上のような
図3(a)のモデルを用いた説明から、
図32(a)の良品画像PG1に示すような線対称の領域を有する良品ワークWG1の原画像に対して本発明の画像処理アルゴリズムを適用した場合には、欠陥検査を行うべき検査対象領域は選出されないことがわかる。
【0102】
(2)本発明の画像処理アルゴリズムの適用例
次に、
図33(a)の不良画像PD1に示すような線対称の領域を有する不良ワークWD1の画像に対して本発明の画像処理アルゴリズムを適用した場合について説明する。
図5(a)は、
図33(a)の不良画像PD1内の不良ワークWD1を、上記の
図3(a)と同様に16個の画素を用いて原画像としてモデル化したものである。各画素には
図33(b)の表に対応するような画素値を記載してある。
【0103】
ここで
図5(a)と
図3(a)の相違点、すなわち
図5(a)における欠陥の表現について説明する。
図5(a)と
図3(a)の相違点は、アドレス(0,0)および(2,2)に配置される画素の画素値にある。
図3(a)におけるアドレス(0,0)の画素値は100であり、この画素値は
図32(b)に示す良品ワークWG1の画素値に対応している。これに対して
図5(a)におけるアドレス(0,0)の画素値は200であり、この画素値は
図33(b)に示す不良ワークWD1上の欠陥D1の画素値に対応している。同様に
図3(a)におけるアドレス(2,2)の画素値は100であり、この画素値は
図32(b)に示す印MG1の画素値に対応している。これに対して
図5(a)におけるアドレス(2,2)の画素値は180であり、この画素値は
図33(b)に示す印MD1上の欠陥D2の画素値に対応している。
【0104】
そして、
図5(a)においても
図3(a)と同様に、中央部にあるアドレス(1,1)、(2,1)、(1,2)、(2,2)の4個の画素を取り囲む12個の画素が不良ワークWD1となる。また
図5(a)における不良ワークWD1の画素値は、欠陥を表わす上記(0,0)を除いて
図3(a)と同一の値となっている。同様に印MD1の画素値は、欠陥を表わす上記(2,2)を除いて
図3(a)と同一の値となっている。なお、
図5に示す各画素の画素値と当該画素を表わす正方形の地の模様との関係は、
図3と同一である。
【0105】
ここに、上述のように
図5(a)の画素値と
図3(a)の画素値を比較すると、
図5(a)における(0,0)および(2,2)の画素値がそれぞれ
図3(a)と異なる200および180である。これらの画素値を目視すると、
図33(b)に示すようにいずれも薄いグレーである。この目視で薄いグレーに見える画素は良品画像である
図32(a)の各領域の対応を示す
図32(b)には存在せず、その結果として
図32(a)をモデル化した
図3(a)には存在しない。そこでこの薄いグレーに対応するために、
図5(a)における(0,0)および(2,2)の画素は画素値を示す数字以外の地の部分に、多数のドットからなる模様を配置した正方形となっている。
【0106】
図5(a)の原画像に対して上述の差分算出工程および差分画像生成工程を実行して生成した第1差分画像を
図5(b)に示す。また、同様の工程を実行して生成した第2差分画像を
図5(c)に示す。ここで
図5(b)および
図5(c)を、それぞれ
図3(b)および
図3(c)と比較する。まず
図5(b)と
図3(b)を比較すると、両者には差異があることがわかる。
図3(b)における16個の画素の画素値はすべて、上述のように0にきわめて近い。これに対して
図5(b)における16個の画素値のうち、(0,0)および(0,3)の画素値は97で、(2,2)および(2,1)の画素値は65である。これらは他の画素の画素値がきわめて0に近いのに対して、0に比べてかなり大きい画素値すなわち0から離間した画素値である。
【0107】
これら4個の画素の画素値が0から離間する理由を以下に説明する。
図5(a)の原画像において、欠陥に対応する(0,0)の画素値は200である。そして第1直線L1を対称軸として(0,0)の画素と対称位置に配置される画素は欠陥に対応しない(0,3)であり、その画素値は103である。これら2個の画素値の差分画素値を原画像の(0,0)および(0,3)の位置に配置したのが、
図5(b)の第1差分画像である。このため、原画像において欠陥に対応する(0,0)の画素値と欠陥に対応しない(0,3)の画素値の差分が大きいことに起因して、
図5(b)の(0,0)および(0,3)の画素値が大きくなり、0から離間する。また
図5(a)の原画像において、欠陥に対応する(2,2)の画素値は180である。そして第1直線L1を対称軸として(2,2)の画素と対称位置に配置される画素は欠陥に対応しない(2,1)であり、その画素値は255である。これら2個の画素値の差分画素値を原画像の(2,2)および(2,1)の位置に配置したのが、
図5(b)の第1差分画像である。このため、原画像において欠陥に対応する(2,2)の画素値と欠陥に対応しない(2,1)の画素値の差分が大きいことに起因して、
図5(b)の(2,2)および(2,1)の画素値が大きくなり、0から離間する。
【0108】
次に
図5(c)と
図3(c)を比較すると、やはり両者には差異があることがわかる。
図3(c)における16個の画素の画素値はすべて、上述のように0にきわめて近い。これに対して
図5(c)における16個の画素値のうち、(0,0)および(3,0)の画素値は90で、(1,2)および(2,2)の画素値は71である。これらは他の画素の画素値がきわめて0に近いのに対して、0に比べてかなり大きい画素値すなわち0から離間した画素値である。
【0109】
これら4個の画素の画素値が0から離間する理由を以下に説明する。
図5(a)の原画像において、欠陥に対応する(0,0)の画素値は200である。そして第2直線L2を対称軸として(0,0)の画素と対称位置に配置される画素は欠陥に対応しない(3,0)であり、その画素値は110である。これら2個の画素値の差分画素値を原画像の(0,0)および(3,0)の位置に配置したのが、
図5(c)の第2差分画像である。このため、原画像において欠陥に対応する(0,0)の画素値と欠陥に対応しない(3,0)の画素値の差分が大きいことに起因して、
図5(c)の(0,0)および(3,0)の画素値が大きくなり、0から離間する。また
図5(a)の原画像において、欠陥に対応する(2,2)の画素値は180である。そして第2直線L2を対称軸として(2,2)の画素と対称位置に配置される画素は欠陥に対応しない(1,2)であり、その画素値は251である。これら2個の画素値の差分画素値を原画像の(2,2)および(1,2)の位置に配置したのが、
図5(c)の第2差分画像である。このため、原画像において欠陥に対応する(2,2)の画素値と欠陥に対応しない(1,2)の画素値の差分が大きいことに起因して、
図5(c)の(2,2)および(1,2)の画素値が大きくなり、0から離間する。
【0110】
以上の事実により、差分算出工程および差分画像生成工程を実行すると、欠陥の存在する可能性がある領域の画素値から生成される差分画素値は、欠陥の存在しない領域の画素値から生成される差分画素値に対して大きく離間することがわかる。これを利用して、
図5(b)および
図5(c)の差分画像において離間画素値を有する離間画素を選出すれば、原画像において離間画素を生成した原画素が配置される位置には欠陥が存在する可能性があると判断することができる。この離間画素値を選出する工程が、上記の
図3(d)および
図3(e)を用いた説明における、隣接差分画素値の差分値が最大となる区間に閾値を設定する工程に相当する。
【0111】
ここで、
図5(b)および
図5(c)に対して
図3(d)および
図3(e)と同一の工程を実施した場合の結果を
図5(d)および
図5(e)に示す。
図5(d)および
図5(e)の記載方法は、それぞれ
図3(d)および
図3(e)と同一である。よって、
図5(d)および
図5(e)についての詳細な説明は省略する。
図5(d)の下段に記載の閾値を用いて
図5(b)の画素の中から離間画素値を選出すると、65および97となる。同様に
図5(e)の下段に記載の閾値を用いて
図5(c)の画素の中から離間画素値を選出すると、71および90となる。
【0112】
以上の工程を経て選出された
図5(b)および
図5(c)における離間画素を、それぞれ
図6(a)および
図6(b)に画素値を二重枠で囲むことにより表示する。このようにして2つの差分画像において離間画素が選出されたのちに、次の工程として2つの差分画像における離間画素の共通部分を選出する。
図6(a)および
図6(b)における離間画素の共通部分は(0,0)および(2,2)である。
【0113】
図5(a)の原画像においてこの共通部分と同一の位置に配置される原画素を、画素値を二重枠で囲むことにより示した画像を
図6(c)に示す。この二重枠の画素は、
図5(a)において欠陥に対応する画素と同一である。すなわち
図33(a)の不良画像PD1に示すような、欠陥D1およびD2以外の領域が線対称となる不良ワークWD1の原画像に対して本発明の画像処理アルゴリズムを適用した場合には、欠陥検査を行うべき検査対象領域を容易に選出することができることがわかる。この工程を上述の従来技術において検査対象領域を選別する工程と比較すると、工程数が大きく減少していることがわかる。また、作業者が原画像を目視して判断を行う工程が大幅に削減されていることがわかる。これは原画像が対称軸に関して線対称となる領域を有する場合に、本発明の画像処理アルゴリズムを用いることにより生じる効果である。
【0114】
以上の説明においては、原画像として
図3(a)のような、正方形の中心に一回り小さい正方形印を有する、上下対称かつ左右対称の形状を有するワークのモデルを例にとった。この場合には上述のように2本の対称軸を有しており、原画像から生成される差分画像は対称軸の数に対応した2個となる。しかし、本発明においては対称軸の数は2本に限定されるものではない。Cを自然数としたときに、対称軸の数がC本であれば、上記差分算出工程および差分画像生成工程を経て生成される差分画像の数はC個となる。その場合にはC個の差分画像について離間画素を選出して、それらの共通部分を原画像において欠陥検査を行うべき検査対象領域とする。
【0115】
(3)本発明のワーク搬送と画像処理:第1直線L1および第2直線L2を使用
ところで、多数のワークの撮像画像を得るためには、撮像装置がワークを撮像することが可能となる位置まで、搬送手段によってワークを次々に搬送することが必要である。このとき、ワークが上記対称軸を有している場合であっても、ワークの外形およびその面上におけるパーツの配置によっては、搬送手段におけるワークの搬送方法に起因して、複数の撮像画像におけるワークの対称軸の方向が一つに定まらないことがある。その一例について、
図7を用いて説明する。この説明においては簡単のために、対称軸が1個である良品ワークを例にとっている。
【0116】
図7(a)は良品ワークWG2(以下ワークWG2)を撮像したのち、上記のテンプレートマッチング法を用いてワークWG2を抽出することによって生成した原画像の形状および寸法を示す図である。ワークWG2は一辺がaの正方形であり、その一辺の中点P0において当該辺に接して円形の印MG2がマーキングされている。当該辺の一端となるワークWG2の角から中点P0までの長さa/2と印MG2の直径dの間にはd<a/2の関係がある。この原画像に重ねて、
図1(a)と同様に第1直線L1と第2直線L2を記載してある。
図7(a)において、原画像は明らかに第1直線L1に関して線対称ではなく、第2直線L2に関して線対称である。すなわち対称軸は第2直線L2である。
【0117】
ここで、ワークWG2を撮像手段による撮像が可能となる位置まで搬送する搬送手段について、
図7(b)を用いて説明する。
図7(b)は搬送手段T1により搬送されるワークWG2を搬送手段T1の上側から見た様子を示す。搬送手段T1は水平に設置され、ワークWG2を載置した状態で搬送する、両側に互いに略平行なエッジE1およびE2を有した細長い直線状のフィーダーF1を備えている。エッジE1およびE2には、載置したワークWG2がフィーダF1の外側に飛び出すことを防止する機構が付加される場合もある。ワークWG2は
図7(a)に示す面が上側になるように、かつ当該面の対向する2辺がエッジE1およびE2と略平行となるように、フィーダーF1の上面に載置される。そして図示されない駆動機構の作用により、
図7(b)に示す矢印X1の方向にフィーダーF1が移動することによって、ワークWG2は直線経路で搬送される。図示されない撮像手段は搬送手段T1の上側に設置され、ワークWG2がその直下位置まで搬送された時に、ワークWG2の上面を
図7(a)に示す撮像画像を得るように撮像可能である。
【0118】
なお
図7(b)においては、搬送手段T1に載置されたワークWG2をW1乃至W4の4通りの向きについて図示してある。上述のようにワークWG2は正方形である。そして搬送手段T1はワークWG2を載置する時に、上述のように
図7(a)に示す面が上側になるように、かつ当該面の対向する2辺がエッジE1およびE2と略平行となるように位置決めしている。すなわち、ワークWG2が搬送手段T1によって搬送される際に、印MG2は搬送方向(矢印X1)に対して4通りの位置関係を生じる。この4通りの位置関係を
図7(b)において、搬送される先頭のワークW1、先頭から2番目のワークW2、3番目のワークW3、最後尾のワークW4として示す。
【0119】
図7(b)においてはさらに、撮像画像における対称軸となり得る上記の第1直線L1および第2直線L2を各ワークW1乃至W4に重ねて表示してある。ワークW1乃至W4における第1直線L1および第2直線L2から明らかなように、W1とW3の撮像画像は第2直線L2が対称軸となり、W2とW4の撮像画像は第1直線L1が対称軸となる。すなわち、ワークWG2が搬送手段に載置される方向に依存して、撮像画像からワークを抽出して生成した原画像の対称軸の方向が一つに定まらない。
【0120】
このような場合に、作業者が原画像を個別に目視して、第1直線L1および第2直線L2のいずれが対称軸になるのかをその都度決定するのは、きわめて煩雑である。しかし本発明の画像処理アルゴリズムは、このように個々の原画像に対して2本の対称軸のいずれか1本を選択する必要があっても、上述の
図3および
図4あるいは
図5および
図6を用いた説明と同様に、2本の対称軸の両方について差分画像を生成することによって、正しく検査対象領域を選出することができる。その工程について、
図8乃至
図11を用いて検証しながら説明する。
【0121】
図8(a)は
図7(a)に示す良品ワークWG2を、
図3(a)と同様に16個の画素によりモデル化した原画像である。
図7(a)における印MG2は、
図8(a)において(1,0)および(2,0)の2個の画素でモデル化している。それらの画素値は
図3(a)において中央部に配置される(1,1)、(2,1)、(1,2)、(2,2)の4個の画素と類似する値である。また
図8(a)において(1,0)および(2,0)の2個の画素以外の14個の画素は、
図7(a)において印MG2を除外した良品ワークWG2をモデル化したものである。それらの画素値は、
図3(a)において中央部に配置される(1,1)、(2,1)、(1,2)、(2,2)を取り囲む12個の画素と類似する値である。また、
図8(a)には
図3(a)と同様に第1直線L1および第2直線L2を重ねて記載してある。
【0122】
なお、以下の説明で用いる
図8(b)、
図8(c)、
図9(a)乃至
図9(c)で各画素を表わす16個の正方形において、それぞれの画素値を示す数字以外の正方形内部の模様は
図3のそれと同一である。また、
図8(d)および
図8(e)の表記方法も
図3(d)および
図3(e)と同一である。よって、これらに関する詳細な説明は省略する。
【0123】
図8(a)の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第1差分画像を
図8(b)に示す。また、同様にして生成した第2差分画像を
図8(c)に示す。ここで、
図8(a)に示す原画像は第1直線L1について対称性を有していない。具体的には(1,0)および(2,0)の画素と第1直線L1に関して対称位置に配置される(1,3)および(2,3)の画素は、画素値が大きく異なる。これは
図8(a)が
図7(a)の良品ワークWG2をモデル化した画像であることから明らかである。
図8(a)における(1,0)および(2,0)の画素は
図7(a)における印MG2に対応している。これに対して
図8(a)における(1,3)および(2,3)の画素は
図7(a)における良品ワークWG2に対応している。
【0124】
図7(a)を目視すると、第1直線L1について対称性を有していないことは明らかである。このため、原画像に対して上下折り返しを実行して生成される
図8(b)の第1差分画像において、原画像が上記対称性を有していない位置に配置される(1,0)と(1,3)の画素値は145である。そして同じく原画像が上記対称性を有していない位置に配置される(2,0)と(2,3)の画素値は142である。これらの画素値は、他の12個の画素値に対して離間画素値となっている。ところで、これらの150近傍の画素値はこの
図8(b)において初めて出現した。これに視覚的に対応するために、これら4個の画素はすべて、画素値を示す数字以外の地の部分に多数の右下がりの斜線からなる模様を配置した正方形となっている。
【0125】
一方、
図8(a)の原画像は第2直線L2に関して対称性を有している。このため、原画像に対して左右折り返しを実行して生成される
図8(c)の第2差分画像は、すべての画素が0にきわめて近い画素値である。次に、
図8(b)および
図8(c)に対して上述の
図3(d)および
図3(e)と同一の工程を実施した場合の結果を
図8(d)および
図8(e)に示す。
図8(d)の下段に記載の閾値を用いて、
図8(b)の画素の中から離間画素値を選出すると、142および145となる。同様に
図8(e)の下段に記載の閾値を用いて、
図8(c)の画素の中から離間画素値を選出すると、9および10となる。
【0126】
以上の工程を経て選出された
図8(b)および
図8(c)における離間画素を、それぞれ
図9(a)および
図9(b)に画素値を二重枠で囲むことにより表示する。このようにして2つの差分画像において離間画素が選出されたのちに、次の工程として2つの差分画像における離間画素の共通部分を選出する。
図9(a)および
図9(b)における離間画素の共通部分は存在しない。その理由は、上述の
図4(a)と
図4(b)において離間画素に共通部分が存在しない理由と同一である。このため、
図8(a)の原画像においてこの共通部分と同一の位置に配置される原画素の画素値を、二重枠で囲むことにより示した画像を生成すると
図9(c)のようになり、二重枠で囲まれる画素値は存在しない。このように本発明の画像処理アルゴリズムは、2個の対称軸のいずれか1個に関してのみ対称性を有する良品ワークの原画像に対しても、2本の対称軸を有する原画像に対する場合と同様に適用することができる。
【0127】
次に、
図7(a)の良品ワークWG2に対して欠陥を付加した不良ワークを
図8(a)のようにモデル化して、
図8(b)乃至
図9(c)と同様の工程を実行する。
図10(a)は
図8(a)に示す原画像に2箇所の欠陥を付加した不良ワークWD2の原画像である。欠陥を示す画素は(0,1)および(2,3)である。
【0128】
ここで
図8(a)すなわち
図7(a)の良品ワークWG2に対応する原画像を見ると、次のことがわかる。
図8(a)において(1,0)および(2,0)の画素および第1直線L1に関してこれら2個の画素と対称位置に配置される(1,3)および(2,3)の画素を除去すると、原画像はアルファベットのHに類似した形状となる。そしてこのH形状の原画像を構成する12個の画素値から見て、H形状の原画素は第1直線L1および第2直線L2のいずれに関しても対称性を有している。そして、除去した4個の画素により構成される領域は、第2直線L2に対してのみ対称性を有している。
【0129】
そして
図10(a)で欠陥を有する画素として付加した(0,1)の画素は、上記のH形状の原画素すなわち第1直線L1および第2直線L2のいずれに関しても対称性を有する領域に属している。また、
図10(a)で欠陥を有する画素として付加した(2,3)の画素は、上記の除去した原画素すなわち第2直線L2に対してのみ対称性を有する領域に属している。このように欠陥を示す画素を、原画像において対称性の観点から異なる性質を有する2箇所に配置したモデルが
図10(a)である。なお上記(0,1)および(2,3)の画素はいずれも、
図7(a)に示す良品ワークWG2における印MG2以外のワーク上の欠陥に対応する位置に配置されている。そして、
図10(a)において(0,1)の画素値は22であり、印MG2以外のワーク上の画素値が100近傍であるのに対してかなり小さく、目視すると正常部分に比べて黒く見える欠陥である。また、
図10(a)において(2,3)の画素値は170であり、印MG2以外のワーク上の画素値が100近傍であるのに対してかなり大きく、目視すると正常部分に比べて白く見える欠陥である。
【0130】
この
図10(a)に示す不良ワークの原画像に対して上述の差分算出工程および差分画像生成工程を実行して生成した第1差分画像を
図10(b)に示す。また、同様の工程を実行して生成した第2差分画像を
図10(c)に示す。そして、
図10(b)および
図10(c)に対して
図8(d)および
図8(e)と同一の工程を実施した場合の結果を
図10(d)および
図10(e)に示す。
図10(d)の下段に記載の閾値を用いて、
図10(b)の画素の中から離間画素値を選出すると、73、83、142、145となる。同様に
図10(e)の下段に記載の閾値を用いて、
図10(c)の画素の中から離間画素値を選出すると、64および87となる。
【0131】
以上の工程を経て選出された
図10(b)および
図10(c)における離間画素を、それぞれ
図11(a)および
図11(b)に画素値を二重枠で囲むことにより表示する。このようにして2つの差分画像において離間画素が選出されたのちに、次の工程として2つの差分画像における離間画素の共通部分を選出する。
図11(a)および
図11(b)における離間画素の共通部分は(0,1)、(1,3)、(2,3)である。
図10(a)の原画像において
図11(a)および
図11(b)に示す離間画素の共通部分と同一の位置に配置される原画素の画素値を、二重枠で囲むことにより示した画像を
図11(c)に示す。
図11(c)における二重枠の画素は欠陥検査を行うべき検査対象領域であり、
図10(a)において欠陥に対応する画素を包含している。このように本発明の画像処理アルゴリズムは、2個の対称軸のいずれか1個に関してのみ対称性を有する不良ワークの原画像に対しても、2本の対称軸を有する原画像に対する場合と同様に適用することができ、容易に検査対象領域を選出することができる。
【0132】
(4)本発明のワーク搬送と画像処理:第3直線L3を使用
上記の
図3乃至
図6等を用いた本発明の画像処理アルゴリズムの説明においては、原画像の対称軸となる第1直線あるいは第2直線は、水平あるいは垂直であった。しかし、本発明のアルゴリズムにおける対称軸はこれらに限定されるものではない。他の対称軸の例として、傾斜した対称軸について
図12および
図13を用いて説明する。
【0133】
図12は良品ワークWG3(以下ワークWG3)を撮像したのち、上記のテンプレートマッチング法を用いてワークWG3を抽出することによって生成した原画像の形状および寸法を示す図である。ワークWG3は一辺がaの正方形であり、その一辺の一点P30および当該辺に隣接する辺の一点P31においてそれぞれの辺に接して直径dの円形の印MG31がマーキングされている。ここに、aおよびdの値は
図7(a)に示すワークWG2と同一である。ワークWG3には他に、円形の印MG31が接していない残りの二辺のそれぞれの一点P32およびP33において接するように、印MG31と同一の寸法を有する円形の印MG32がマーキングされている。各辺の一端となるワークWG3の角から中点P0までの長さa/2と印MG31およびMG32の直径dの間には、d<a/2の関係がある。
図12のワークWG3は、その左上の角と右下の角を結んだ右下がりとなる第3直線L3に関して線対称である。
【0134】
この
図12に示すワークWG3を
図8(a)と同様にモデル化した原画像を
図13(a)に示す。
図13(a)において、(2,0)(3,0)(3,1)の3個の画素は、
図12における印MG31に対応する。同様に
図13(a)において(0,2)(0,3)(1,3)の3個の画素は、
図12における印MG32に対応する。これら6個の画素値は
図8(a)における(1,0)および(2,0)の画素と類似する値である。そして
図13(a)における上記6個以外の10個の画素は、
図8(a)における(1,0)および(2,0)以外の14個の画素と類似する値である。ここで
図13(a)の画素の配置は、原画素の左上と右下を結ぶ右下がりとなる第3直線L3を対称軸とする線対称であることがわかる。すなわち、この場合の折り返しは
図3における上下折り返しあるいは左右折り返しと同様の表記をすると、右上左下折り返しとなる。
【0135】
この
図13(a)の原画素について
図3と同様に差分算出工程および差分画像生成工程を実行する際には、やはり上述のように対称軸となる第3直線L3の一端および他端のアドレスを差分算出ソフトに渡す。ところでこの第3直線L3の場合には、例えば
図3(a)における第1直線L1の場合と異なり、一端および他端のアドレスが原画素に配置される画素のアドレスと重複する。具体的には、
図13(a)における第3直線L3の一端のアドレスは(0,0)であり、他端のアドレスは(3,3)である。さらに
図13(a)から、第3直線L3は上記一端および他端のみならず、それ以外の通過経路においても(1,1)および(2,2)の画素と重複している。このように対称軸の通るアドレスと画素のアドレスが重複する場合の差分算出工程および差分画像生成工程について、以下に説明する。
【0136】
まず、
図13(a)において第3直線L3を対称軸とした時に、原画像が第3直線によってどのように右上と左下において等しい数の画素に分割されるのかについて考える。上述のように(0,0)、(1,1)、(2,2)、(3,3)の画素は第3直線L3上にある。このため、これら4個の画素は対称軸としての第3直線によって右上と左下に分割することができない。よって、これら4個の画素は差分算出工程において対象としないことにする。具体的なアルゴリズムにおいては、これら4個の画素の差分画素値を0とする。この差分画素値0の意味は、画素を差分算出の対象から除外するか、その画素自身との差分を算出するかのいずれかの結果であると考えればよい。
【0137】
図13(a)において、これら第3直線L3と重複する4個の画素以外の12個の画素については、第3直線の右上と左下に対称配置されている画素について画素値の差分を算出する。例えば(2,0)の画素値は(0,2)の画素値と差分を算出し、(2,1)の画素値は(1,2)の画素値と差分を算出すればよい。このようにして生成した差分画像を
図13(b)に示す。
図13(b)において、上述のように(0,0)、(1,1)、(2,2)、(3,3)の画素値はすべて0であり、その他の12個の画素値は第3直線L3に関して対称配置となっているため、画素値はきわめて0に近い値となっている。
【0138】
(5)本発明の欠陥検査方法
ここまでに説明した本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法について、
図14乃至
図31を用いて以下に説明する。
【0139】
図14は本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法の概略フローチャートである。この概略フローチャートは2つのモードにより構成される。
図14(a)は閾値設定モードであり、複数の不良ワークの原画像から本発明の画像処理アルゴリズムを用いて差分画像を生成し、生成した差分画像を用いてワークの検査対象領域を選出するための閾値を設定する工程である。また
図14(b)は検査実行モードであり、検査対象となるワークの原画像から閾値設定モードで設定した閾値を用いて検査対象領域を選出したのち、当該領域について欠陥検査を実行する工程である。閾値設定モードと検査実行モードは、
図14(a)の最下部および
図14(b)の最上部に示す番号101の結合子によって接続されている。
【0140】
図15乃至
図31は本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法の詳細フローチャートである。具体的には、
図14に示されるステップ番号S1乃至S14の定義済み処理の詳細なステップを記したものである。
図15乃至
図31はいずれも
図14に記載される定義済み処理の工程名およびステップ番号を最上部に記し、その下に当該の定義済み処理の入口を示すINと記された端子を配置している。次にこの端子に続いて当該定義済み処理の詳細なステップを示している。そして全ステップを終了すると、当該の定義済み処理から出て
図14に示す次の定義済み処理に進むための出口を示す、OUTと記された端子を最下部に配置している。
【0141】
なお、
図15乃至
図31におけるステップ番号は、
図14との対応を示すために
図14におけるステップ番号を上1桁あるいは上2桁に割り当てて、それに続く下2桁に当該詳細フローチャート内のステップ番号を01から昇順に割り当てている。
【0142】
また後述のように、本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法においては、
図14に示すいくつかの定義済み処理において実行される共通の処理をサブルーチン化している。サブルーチンはSub1およびSub2からなり、
図20にSub1の詳細フローチャートを示すとともに、
図23にSub2の詳細フローチャートを示す。これらの詳細フローチャートにおけるステップ番号は、
図20のSub1については上2桁を21とし、
図23のSub2については上2桁を22としている。ステップ番号の下2桁については、
図20と
図23で付与方法が異なる。
図20のSub1においては、下から2桁目を当該ステップと
図14(a)に示すステップS5およびS6の対応を示す数字としての5あるいは6としている。そして一番下の桁を上記ステップS5あるいはS6の内部におけるステップ番号として、1から昇順に数字を割り当てている。これに対して
図23のSub2においては、Sub2が
図14(a)に示すステップS7のみに対応するので、下から2桁目を数字0に固定している。そして、一番下の桁をステップS7の内部におけるステップ番号として、1から昇順に数字を割り当てている。
【0143】
なお、以後の
図15乃至
図31に示すステップおよび対応する説明において、レジスタに画像を格納するという表記がいくたびか使われる。この画像を格納するという表記は、
図2により定義される画素のXアドレスとYアドレスおよび当該画素の画素値を対応させて一つの配列(例えば3次元配列)にまとめて、画像を構成する画素数に一致する配列数からなる配列群を構成してレジスタに格納することを意味している。
【0144】
最初に
図14(a)および
図15乃至
図26を用いて、閾値設定モードについて説明する。
【0145】
(5.1)ステップS1
図14(a)において端子STARTに続くステップS1は既知ワーク撮像工程である。これは良品であること、あるいは不良であることが既知となっているワークをそれぞれ複数準備して、それらを撮像する工程である。既知ワーク撮像工程(S1)の詳細フローチャートを
図15に示す。
【0146】
図15のステップS101においてA個の良品ワークを撮像して良品画像を得る。このA個のワークは良品であることを既知としている。次にステップS102に進み、ステップS101において撮像した良品画像に1からAまでの番号を付与する。続いてステップS103においてB個の不良ワークを撮像して不良画像を得る。このB個のワークは不良であることを既知としている。次にステップS104に進み、ステップS103において撮像した不良画像に1からBまでの番号を付与する。以上のステップS101乃至S104によって、それぞれに固有の番号を付与したA個の良品画像およびB個の不良画像が得られたことになる。
【0147】
ステップS105以降は、B個の不良画像について
図14(a)のステップS1に続くステップS2乃至ステップS7を実行するための準備である。まずステップS105において、上記ステップS2乃至ステップS7で処理を実行中の不良画像の番号を記憶するレジスタJに0を格納して、レジスタJを初期化する。続いてステップS106において、Jの値に1を加算する。そしてステップS107において、1からBまでの番号を付与した不良画像の中からJの値で指定される番号の画像を取り出す。ここではJ=1であり、取り出した画像は不良画像1となる。そしてステップS1を終了して
図14(a)に示すステップS2に進む。
【0148】
(5.2)ステップS2
図14(a)においてステップS2は検査対象ワーク抽出工程である。これは上述のテンプレートマッチング法を用いて、撮像画像からワークを抽出する工程である。検査対象ワーク抽出工程(S2)の詳細フローチャートを
図16に示す。
【0149】
図16のステップS201においてテンプレートマッチング法を用いて、ワークの最外縁を探索して確定する。次に、ステップS202においてワークの最外縁内を検査対象ワークの画像とする。そしてステップS2を終了して
図14(a)に示すステップS3に進む。
【0150】
(5.3)ステップS3
図14(a)においてステップS3は単色画像生成工程であり、ステップS2で抽出した検査対象ワークについて単色画像を生成する工程である。単色画像生成工程(S3)の詳細フローチャートを
図17に示す。
【0151】
図17のステップS301において、検査対象ワークの画像がカラーか否かについて判断する。判断結果がYesの場合すなわちカラー画像の場合はステップS302に進む。ステップS302において、カラー画像である検査対象ワークの画像からK個の単色画像を生成する。ここにKは自然数である。例えば上述のようにカラー画像をR(赤)、G(緑)、B(青)の三原色に分解して3つの単色画像を生成すれば、K=3となる。また上述のようにNTSC信号を得る前段階で使用されるコンポーネント信号であるYIQ信号のY成分を生成すれば、K=1となる。ステップS302でカラー画像からK個の単色画像を生成したのち、次のステップS303に進む。
【0152】
ステップS303において、ステップS302で生成したK個の単色画像に、あらかじめ定めた基準に基づいて1からKまでの番号を付与する。ここに、あらかじめ定める基準の一例として、カラー画像をR(赤)、G(緑)、B(青)の三原色に分解して3つの単色画像を生成した場合について説明する。この場合にはR(赤)に基づいて生成した単色画像に1を付与し、G(緑)に基づいて生成した単色画像に2を付与し、B(青)に基づいて生成した単色画像に3を付与する基準が考えられる。ステップS303において単色画像に番号を付与したのち、ステップS304に進む。
【0153】
ステップS304以降は、不良画像1について
図14(a)のステップS3に続くステップS4乃至ステップS7を実行するための準備である。まずステップS304において、上記ステップS4乃至ステップS7で処理を実行中の単色画像の番号を記憶するレジスタNに0を格納して、レジスタNを初期化する。続いてステップS305において、Nの値に1を加算する。そしてステップS306において、1からKまでの番号を付与した単色画像の中からNの値で指定される番号の単色画像(この場合は第1の単色画像)を、原画像という名称のレジスタに格納する。そしてステップS3を終了して
図14(a)に示すステップS4に進む。
【0154】
ここまでのステップS302乃至ステップS306は、上記ステップS301において検査対象ワークの画像がカラー画像と判断された場合に実行される。もし検査対象ワークの画像がカラー画像ではなく、ステップS301における判断がNoの場合は、ステップS301に続いてステップS307へ進む。ここに、検査対象ワークの画像がカラー画像ではないとは単色画像であり、検査対象ワークから生成される単色画像は検査対象ワークの画像そのものである。これは、単色画像の数K=1であることに他ならない。そこでステップS307においては、検査対象ワークの画像を第1の単色画像とする。そしてステップ308において単色画像の数を示すレジスタKに1を格納して、ステップS309に進む。ステップS309に進むと、
図14(a)においてステップS3に続くステップS4乃至ステップS7で処理する単色画像の番号を記憶するレジスタNに1を格納する。そして、ステップS306に進み、第Nの単色画像すなわち第1の単色画像を、原画像という名称のレジスタに格納する。そしてステップS3を終了して
図14(a)に示すステップS4に進む。
【0155】
(5.4)ステップS4
図14(a)においてステップS4は対称性判断工程であり、ステップS3で生成した単色画像の対称性を判断する。対称性判断工程(S4)の詳細フローチャートを
図18に示す。
【0156】
図18のステップS401において、
図17に示す単色画像生成工程(S3)のステップS306において原画像という名称のレジスタに格納された第Nの単色画像を取り出して、対称軸を有するか判断する。もし対称軸を有していない場合には、判断はNoとなって端子ENDに進み、欠陥検査を終了する。原画像が対称軸を有していない場合に欠陥検査を終了する理由を、以下に説明する。
図14に概略フローチャートを示す欠陥検査方法は、
図1乃至
図6に示す本発明の画像処理アルゴリズムを用いている。そして本発明の画像処理アルゴリズムは上述のように、1本以上の対称軸に関して線対称となる領域を有する原画像を対象とするものである。このため、対称軸を有していない原画像に対しては、本発明の画像処理アルゴリズムを用いることができず、それゆえに欠陥検査はこの時点で終了することになる。
【0157】
一方、ステップS401において第Nの単色画像が対称軸を有している場合には、判断はYesとなってステップS402に進む。ステップS402においては、原画像が有する対称軸の数をレジスタCに格納する。
【0158】
ステップS403以降は、不良画像1について
図14(a)のステップS4に続くステップS5乃至ステップS7を実行するための準備である。まずステップS403において、上記ステップS5乃至ステップS7で処理を実行中の単色画像における対称軸の番号を記憶するレジスタMに0を格納して、レジスタMを初期化する。続いてステップS404において、Mの値に1を加算する。次にステップS405において、ONEMという名称のレジスタに第Mの対称軸の一端の座標を格納する。そしてステップS406において、OTEMという名称のレジスタに第Mの対称軸の他端の座標を格納する。このONEMおよびOTEMは
図3(a)、
図5(a)および
図13(a)を用いて説明した本発明の画像処理アルゴリズムにおける対称軸の一端および他端の座標を示す引数として、後述するステップS5においてサブルーチンSub1に渡される。ここまででステップS4を終了して
図14(a)に示すステップS5に進む。
【0159】
(5.5)ステップS5およびS6
図14(a)においてステップS5は差分算出工程である。そしてそれに続くステップS6は差分画像生成工程である。これらの工程には、
図3乃至
図6に示す本発明の画像処理アルゴリズムが用いられる。この画像処理アルゴリズムは後続の工程においてもたびたび用いられるので、詳細フローチャートにおいてはこれら2つの工程を一つにまとめたサブルーチンSub1によって定義している。
【0160】
図19に差分算出工程(S5)および差分画像生成工程(S6)を示す。上述のように、これら2つの工程はステップS21として定義されるサブルーチンSub1により構成される。ステップS21に示すように、サブルーチンSub1の引数は原画像、第Mの対象軸の一端の座標(ONEM)、第Mの対称軸の他端の座標(OTEM)である。
【0161】
1番目に示す引数としての原画像は、メインプログラムにおける
図14(a)のステップS3で、詳しくは
図17に示すステップS306で設定された原画像すなわち第Nの単色画像のことである。このステップS306で設定された原画像すなわち第Nの単色画像に対して、上述のように
図14(a)のステップS4で、詳しくは
図18に示すステップS401において対称性を判断する。判断がYesの場合には上述のようにステップS402乃至ステップS406を実行する。2番目に示す引数としてのONEMは上述のように、ステップS405において第Mの対称軸の一端の座標を格納したレジスタのことである。同様に3番目に示す引数としてのOTEMは上述のように、ステップS406において第Mの対称軸の他端の座標を格納したレジスタのことである。
【0162】
これら3つの引数としての原画像、ONEM、OTEMをメインプログラムから渡されたサブルーチンSub1は、上述のように
図14(a)におけるステップS5(差分算出工程)とそれに続くステップS6(差分画像生成工程)を実行する。
【0163】
サブルーチンSub1の詳細フローチャートを
図20に示す。
図20において端子Sub1(原画像、ONEM、OTEM)に続くステップS2151乃至ステップS2153は
図14(a)におけるステップS5(差分算出工程)である。
【0164】
まずステップS2151において、ONEMとOTEMを直線によって接続して対称軸を生成する。この工程により対称軸を生成することは、既に
図3(a)、
図5(a)および
図13(a)を用いた本発明の画像処理アルゴリズムの説明において、第1直線L1、第2直線L2、第3直線L3の一端および他端の座標を直線で接続する工程として説明している。
図20のステップS2151で対称軸を生成したのち、ステップS2152に進む。
【0165】
ステップS2152で原画像を対称軸の両側において等しい画素数に2分割する。この工程は、例えば
図5(a)に示す16個の原画素を、対称軸としての第1直線L1の上側に位置する8個の原画素と、下側に位置する8個の原画素に分割することに対応する。
図20のステップS2152において原画素を2分割したのち、ステップS2153に進む。
【0166】
ステップS2153で対称軸の両側において線対称の位置に配置される原画素PAとPBについて、それぞれの画素値BAとBBの差分となる差分画素値BABを算出する。この工程は、例えば
図5(a)において(0,0)に位置する原画素(画素値200)を原画素PAとし、(0,3)に位置する原画素(画素値103)を原画素PBとしたときに、それぞれの画素値200および103の差分を200−103=97のように算出して、その値97を差分画素値BABとすることに対応する。
図20のステップS2153において差分画素値を算出すると、ステップS5(差分算出工程)を終了し、サブルーチンSub1内で
図14(a)におけるステップS6(差分画像生成工程)に進む。差分画像生成工程は、
図20に示すようにステップS2161からなる。
【0167】
ステップS2161において、差分画素値BABを有する差分画素PABを原画像における原画素PAおよびPBの位置に配置して差分画像を生成する。この工程は、例えば
図5(a)において前記(0,0)に位置する原画素PAと、前記(0,3)に位置する原画素PBによって97という差分画素値BABが生成されると、
図5(b)の(0,0)および(0,3)の位置に97という画素値を有する差分画素を配置することに対応する。
図20においてステップS2161を終了すると、ステップS6(差分画像生成工程)を終了する。そして同時に、
図19におけるステップS21としてのサブルーチンSub1を終了してメインプログラムに戻る。その際に
図20のステップS2161において生成した差分画像を戻り値としてメインプログラムに渡す。
図20において、このことをステップS2161に続く端子内に、Return(差分画像)として示す。メインプログラムへの戻り先は、
図14(a)においてステップS7として記載される閾値範囲設定工程の入力である。
【0168】
(5.6)ステップS7
図14(a)においてステップS7は閾値範囲設定工程である。これはステップS6で生成した差分画像について、上述の本発明の画像処理アルゴリズムの説明に用いた
図3(d)(e)や
図5(d)(e)のような、差分画像における差分画素値を降順に並べて隣接差分画素どうしの差分値を算出し、差分値が最大となる区間を選出する工程である。
【0169】
閾値範囲設定工程(S7)の詳細フローチャートを
図21乃至
図23に示す。
図21における最初のステップS701において、
図20に示すサブルーチンSub1で生成した差分画像を差分画像NJという名称のレジスタに格納する。ここに、差分画像NJというレジスタ名称に用いられている2つの番号としてのJおよびNについて説明する。
【0170】
この名称におけるJは、
図15に示す既知ワーク撮像工程(S1)のステップS107において取り出した不良画像JのJに対応する番号である。そして上述のように、まず
図16に示す検査対象ワーク抽出工程(S2)において、不良画像Jからテンプレートマッチング法を用いて検査対象ワークの画像を抽出したのち、次に
図17に示す単色画像生成工程(S3)において、検査対象ワークの画像から1つ以上の単色画像を生成している。それらの単色画像に1からK(Kは1以上)までの番号を付与して(ステップS302およびS307)、ステップS306において、第Nの単色画像を原画像という名称のレジスタに格納している。ここで、Nは上述のように、
図14(a)に示すステップS4乃至ステップS7で処理を実行中の単色画像の番号を記憶するレジスタNの値である。そしてこのNは、差分画像NJというレジスタ名称におけるNに一致する。上記ステップS306において第Nの単色画像を格納した原画像は上述のように、
図18に示す対称性判断工程(S4)と
図19に示す差分算出工程(S5)および差分画像生成工程(S6)によって順次処理されて、差分画像が生成される。これらをまとめると、差分画像NJというレジスタには、不良画像Jをもとに生成した第Nの単色画像から生成した差分画像が格納されることになる。
【0171】
以上のようにステップS701で差分画像を差分画像NJに格納したのち、ステップS22に進む。ステップS22は上述のように、
図14に示すいくつかのステップにおいて実行される共通の処理であるため、サブルーチンSub2として定義されている。サブルーチンSub2は差分画像を引数としている。ここに、
図20に示すサブルーチンSub1において、ステップS2161で生成した差分画像をメインプログラムに戻り値として返している。サブルーチンSub2はその差分画像をメインプログラムから引数として受け取る。そして受け取った差分画像を用いて上述の本発明の画像処理アルゴリズムの説明に用いた
図5(d)(e)のような、差分画像における差分画素値を降順に並べて隣接差分画素どうしの差分値を算出し、差分値が最大となる区間を選出する工程を実行する。サブルーチンSub2の詳細フローチャートを
図23に示す。
【0172】
図23におけるステップS2201は、
図5(d)(e)において上段に標題として差分画素値降順と記されている工程に対応する。すなわち、ステップS2201において最初に差分画像を構成するX個の画素に番号1からXを付与する。次に各番号の画素の画素値PV(1)からPV(X)を、最大値から最小値まで降順にX個の配列AP(1)からAP(X)に格納する。このAP(1)からAP(X)までのX個の配列に格納したX個の画素値PV(1)からPV(X)を順に左から右に記したものが、
図5(d)(e)において上段に配置された数字である。ここに上述のように、
図5(d)の前記数字は
図5(a)において第1直線L1を対称軸として生成した差分画像である
図5(b)に対応し、
図5(e)の前記数字は
図5(a)において第2直線L2を対称軸として生成した差分画像である
図5(c)に対応している。こうしてステップS2201を実行したのち、ステップS2202に進む。
【0173】
ステップS2202において、後述のステップS2204において処理している画素の番号を格納するレジスタSに0を格納して、初期化する。続いてステップS2203においてレジスタSに格納されている数値に1を加算する。この段階でレジスタSの数値は1となり、上記S2201において1番を付与された画素を処理することを示す。レジスタSの値が確定したら、次にステップS2204に進む。
【0174】
ステップS2204は、
図5(d)(e)において中段に標題として隣接差分画素値の差分値と記されている工程に対応する。ステップS2204において、配列AP(1)に格納された最大の画素値から配列AP(X)に格納された最小の画素値までを用いて、2個の隣接配列に格納された画素値間の差分となる差分画素値NPを順次算出する。すなわち、上記ステップS2203において確定したレジスタSの値を用いて表現すれば、AP(S+1)−AP(S)を演算して、その結果をNP(S)という名称のレジスタに格納する。ここに、全画素数がXであるため、Sの値は1から(X−1)まで順次1ずつ加算されてステップS2204において処理される。上記差分の演算および格納の処理は、ステップS2204の中にソフトウェアの表記に従って、NP(S)←AP(S+1)−AP(S)と記載されている。ステップS2204においてレジスタNP(S)に格納された差分画素値を、
図5(d)(e)において上段に配置された数字と矢印により対応させて順次表示したものが、中段に配置された数字である。ステップS2204を終了すると、ステップS2205に進む。
【0175】
ステップS2205において、ステップS2204で処理した画素の番号Sが全画素数よりも1だけ小さい値である(X−1)に等しいか否かについて判断する。すなわち、差分画像を構成するX個の全画素に対してステップS2204の処理を完了したかについて判断する。判断結果がNoの場合はステップS2203に戻り、レジスタSの値に1を加算する。これにより、ステップS2204において処理する画素の番号が1だけ大きくなる。そして再びステップS2204においてこの番号が1だけ大きくなった画素について処理を実行する。これを繰り返してX個の全画素についてステップS2204における処理が完了すると、すなわちS=X−1になると、ステップS2205の判断結果がYesになる。その場合にはステップS2206に進む。
【0176】
ステップS2206は、
図5(d)(e)において下段に標題として差分値の最大区間における閾値と記されている工程のうち、最大区間を選出する工程に対応する。閾値の設定はサブルーチンSub2を終了したのち、戻り値として後述する高下限値および低上限値をメインプログラムに返してから、メインプログラムにおいて実行する。ステップS2206において、ステップS2204において生成したNP(1)からNP(X−1)までの(X−1)個の差分画素値の中から、最大差分値MXNPを選出する。これは
図5(b)において中段に記された隣接差分画素値の差分値の中から最大値58を選出すること、あるいは
図5(c)において中段に記された隣接差分画素値の差分値の中から最大値66を選出することに対応する。こうしてステップS2206において最大差分値MXNPを選出したら、ステップS2207に進む。
【0177】
ステップS2207は、
図5(d)(e)において下段に標題として差分値の最大区間における閾値と記されている工程のうち、閾値の設定をメインプログラムにおいて実行するための準備となる工程である。ステップS2207においては、ステップS2206において選出した最大差分値MXNPの算出に用いた2個の隣接する配列AP(MX+1)およびAP(MX)に格納された画素値PV(MX+1)およびPV(MX)を、それぞれ高下限値HBPおよび低上限値LTPとして定義する。具体的には、HBPという名称のレジスタにPV(MX+1)を格納し、同時にLTPという名称のレジスタにPV(MX)を格納する。この格納の処理は、ステップS2207の中にソフトウェアの表記に従って、HBP←PV(MX+1)およびLTP←PV(MX)と記載されている。
【0178】
ここで、
図5(d)(e)に示すようにただ1つの差分画像から生成した閾値をそのまま用いることによって生じる問題、およびこの問題を解決するための工程について説明する。
【0179】
上述のように、
図5(d)(e)において中段に隣接差分画素値の差分値が示されている。そして下段にこの差分値の最大区間において算出した閾値が示されている。この下段の閾値は上段に記載される差分画素値の中から離間画素値を選出するためのもので、前記最大区間の両端の差分画素値(上段)の中央値を算出して閾値としている。具体的には、
図5(d)の場合には中段において最大値を有する区間として58を選出しているので、下段において当該区間の両端の差分画素値である65と7の中央値を算出している。その中央値は36であり、それゆえに閾値は36となる。
図5(e)についても同様に、中段において最大値を有する区間である66を選出し、下段において当該区間の両端の差分画素値である71と5の中央値を算出している。その中央値は38であり、それゆえに閾値は38となる。
【0180】
ところで、この
図5(d)(e)は本発明の画像処理アルゴリズムの説明図であり、原画像は
図5(a)に示す1つだけである。しかし、
図23に示すサブルーチンSub2が処理する差分画像は、以下の工程を経て生成されているので複数存在する。差分画像を生成する工程において、最初に上述のようにB個の不良画像(
図15のステップS103)のうちの1つとしての不良画像Jをもとに(
図15のステップS107)1つ以上の単色画像を生成する(
図17のステップS302あるいはS307)。次にこれら1つ以上(K個)の単色画像の中から第Nの単色画像を原画像として(
図17のステップS306)、その原画像から差分画像を生成する(
図20のステップS2151乃至S2161)。
【0181】
こうして生成された差分画像が、
図23に示すサブルーチンSub2の詳細フローチャートの最上部に位置する端子Sub2に引数として記載されている。すなわちサブルーチンSub2は、同一の不良画像Jをもとに生成した単色画像が2つ以上である場合には、第1の単色画像から第Kの単色画像までの複数の単色画像のそれぞれから生成した差分画像をすべて処理する。そして、これらK個の単色画像を生成するための不良画像Jの個数は、1つではなく複数(B個)である。
【0182】
これらの点から明らかなように、サブルーチンSub2は複数の差分画像について次々と処理を実行してゆく。それらの複数の差分画像は上述のように、全部でB個の不良画像に基づいてそれぞれ生成されている。このため、B個の不良画像における画素値のバラツキに対応して、サブルーチンSub2が処理する差分画像の画素値もまたバラツキを生じる。すなわち
図5(d)(e)において、上段に示す差分画素値が差分画像ごとにバラツキを生じる。これに起因して、中段に示す隣接差分画素値の差分値もまた差分画像ごとにバラツキを生じる。従って、下段に示す閾値が差分画像ごとにバラツキを生じて、1つに定まらないという問題を生じる。これが「第1の問題」である。この第1の問題を解決するためには、前記差分画像ごとの差分値のバラツキを解消して、すべての(B個の)不良画像から生成した複数の差分画像に対してただ1つの閾値を設定することができるようにすることが必要となる。
【0183】
また上述のように、サブルーチンSub2が処理する差分画像は、1個の不良画像Jから複数(K個)生成された単色画像のそれぞれから生成されている。例えば上述のようにカラー画像である不良画像JをR(赤)、G(緑)、B(青)の三原色に分解して3個の単色画像を生成した場合には、全部で3個(K=3)の単色画像が生成される。そして、これら3個の単色画像は上述のように、カラー画像における前記三原色のそれぞれの成分比率に対応して、各成分の画素値をグレースケールで表現したものである。
【0184】
そして、それぞれの単色画像から生成した全3種類の差分画像をサブルーチンSub2で次々と処理することになる。その場合に、
図5(d)(e)の中段に示す隣接差分画素値の差分値の最大区間が、それぞれの差分画像に対応してすべて同一となる保証はない。その理由は、上述のように不良画像Jの各画素における上記R(赤)、G(緑)、B(青)の三原色の成分比率が、すべての画素について異なっているためである。
【0185】
これに起因して、K個の差分画像において同一の位置に配置される画素の画素値は、上記成分比率に依存してそれぞれ異なる。よって、同一の不良画像Jから生成したK個の差分画像のそれぞれについて、
図5(d)(e)の上段に示す差分画素値が異なってくる。それゆえに、中段に示す隣接差分画素値の差分値を算出した場合にもまた、その算出結果はK個の差分画像のそれぞれについて全く異なる値となりうる。すなわち、複数の単色画像のそれぞれから生成した差分画像に対応する隣接差分画素値の差分値の最大区間は、単色画像に対応して全く別の区間となりうる。その場合、差分値の最大区間を用いて閾値を設定する際に、閾値設定用の単色画像を選出する基準が必要になるという問題を生じる。これが「第2の問題」である。この第2の問題を解決するためには、前記選出する基準を明確化して、1個の不良画像をもとに生成した複数の単色画像の中から、閾値を設定するのに最適な単色画像を選出することが必要となる。
【0186】
図21乃至
図23に示す閾値範囲設定工程(S7)においては、これらの問題を解決するために以下の工程により、差分画像の処理を行う。まず、
図23に示すステップS2207において、上述のように画素値PV(MX+1)およびPV(MX)を、それぞれ高下限値HBPおよび低上限値LTPとして定義する。そして、
図23の最下部の端子Returnに記載のように、上記高下限値HBPおよび低上限値LTPを
図21に示す閾値範囲設定工程(S7)のメインプログラムに戻り値として渡す。
【0187】
図21において、メインプログラムはステップS22のサブルーチンSub2から前記戻り値を受け取り、後述のステップS702以降において処理を実行する。この方法により、すべての(B個の)不良画像から生成した複数の差分画像に対して、ただ1つの閾値を設定することができるようにする。そして、すべての(B個の)不良画像から生成されるすべての単色画像(不良画像ごとにK個ずつ)のそれぞれに対応するK個の差分画像の中から、基準に基づいて上記閾値を設定するのに最適な差分画像を選出する。この最適な差分画像の選出は、最適な単色画像の選出に他ならない。
【0188】
以下に
図21および
図22を用いて、すべての不良画像から生成した複数の差分画像に対して、ただ1つの閾値を設定することができるようにする工程と、すべての不良画像から生成されるすべての単色画像のそれぞれに対応する差分画像の中から、上記閾値を設定するのに最適な差分画像を選出する工程について説明する。
【0189】
図21に示す閾値範囲設定工程(S7)のステップS702において、ステップS22すなわち
図23に示すサブルーチンSub2から、戻り値としての高下限値HBPおよび低上限値LTP(
図23のステップS2207および最下部の端子Return)を受け取る。そしてこれらの戻り値のうち高下限値(HBP)を高下限値HBPMNJという名称のレジスタに格納する。同様に戻り値のうち低上限値(LTP)を低上限値LTPMNJという名称のレジスタに格納する。この格納の処理は、ステップS702の中にソフトウェアの表記に従って、高下限値HBPMNJ←高下限値および低上限値LTPMNJ←低上限値と記載されている。
【0190】
ここで、高下限値HBPMNJおよび低上限値LTPMNJというレジスタ名称に用いられている3つの番号としてのJ、NおよびMについて説明する。この名称における2番目および3番目の番号NおよびJは、ステップS701に記載の差分画像NJというレジスタ名称のNおよびJと同じである。これらNおよびJについては既に説明しているので、詳細な説明は省略する。結論のみを記載すれば、不良画像Jをもとに生成した第Nの単色画像から生成した差分画像の高下限値HBPおよび低上限値LTPという意味である。
【0191】
次に、このレジスタ名称における1番目の番号Mについて、以下に説明する。上述のように
図18に示す対称性判断工程(S4)におけるステップS401において、第Nの単色画像(原画像)が対称軸を有しているかについて判断する。その判断結果がYesの場合に、ステップS402において原画像が有する対称軸の数をレジスタCに格納する。そしてステップS403において、レジスタMに0を格納して初期化する。次にステップS404において、レジスタMに1を加算する。ここにレジスタMは、後工程となる
図14(a)のステップS5(差分算出工程)乃至ステップS7(閾値範囲設定工程)により処理する原画像が有する、上記対称軸の番号Cを記憶するレジスタである。そしてステップS405およびS406において、前記レジスタMに対応する第Mの対称軸の一端および他端の座標をレジスタONEMおよびOTEMに格納する。
【0192】
そして、
図14(a)に示すステップS7(閾値範囲設定工程)の詳細フローチャートとしての
図21乃至
図23から明らかなように、上記レジスタMは
図23に示すサブルーチンSub2が処理した対称軸の番号を示す。以上をまとめると、高下限値HBPMNJおよび低上限値LTPMNJはそれぞれ、不良画像Jをもとに生成した第Nの単色画像から、第Mの対称軸に基づいて生成した差分画像が有する高下限値HBPおよび低上限値LTPという意味である。
【0193】
以上のように
図21に示すステップS702において、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容を設定したのち、ステップS703に進む。ステップS703において、レジスタMに格納した対称軸の番号が対称軸の数であるCに到達したか否かについて判断する。レジスタMは
図18に示す対称性判断工程(S4)のステップS404において1ずつ加算される。この加算されたレジスタMの値に対応する原画像は、上述のように
図19乃至
図23によって処理される。そして
図21のステップS702において、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定される。
【0194】
図21のステップS703における判断は、第Nの単色画像が有するC個の対称軸のすべてに対応して、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がNoの場合は、すべての対称軸に対応するこれらのレジスタの内容が設定されていないので、飛び先番号204が記載される結合子を経由して
図18(対称性判断工程(S4))のステップS404にジャンプする。このステップS404においては、対称軸の数を格納するレジスタMの値に1を加算する。そして、今までの説明と同様に、Mの値が1だけ大きくなった状態で
図18のステップS405およびS406と
図19乃至
図23に記載の工程を再度実行する。Mの値に対する1の加算を繰り返すと、
図21(閾値範囲設定工程(S7))のステップS703の判断結果がYesとなる。その場合はステップS704に進む。
【0195】
ステップS704において、レジスタNに格納した単色画像の番号が単色画像の数であるKに到達したか否かについて判断する。レジスタNは
図17に示す単色画像生成工程(S3)のステップS305において1ずつ加算される。この加算されたレジスタNの値に対応する原画像は、上述のように
図18乃至
図23によって処理される。そして
図21のステップS702において、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定される。
図21のステップS704における判断は、J番目の不良画像をもとに生成された全部でK個の単色画像のすべてに対応して、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がNoの場合は、すべての単色画像に対応するこれらのレジスタの内容が設定されていないので、飛び先番号203が記載される結合子を経由して
図17(単色画像生成工程(S3))のステップS305にジャンプする。このステップS305においては、単色画像の数を格納するレジスタNの値に1を加算する。そして、今までの説明と同様にNの値が1だけ大きくなった状態で
図17のステップS306および
図18乃至
図23に記載の工程を再度実行する。Nの値に対する1の加算を繰り返すと、
図21(閾値範囲設定工程(S7))のステップS704の判断結果がYesとなる。その場合はステップS705に進む。
【0196】
ステップS705において、レジスタJに格納した不良画像の番号が不良画像の数であるBに到達したか否かについて判断する。レジスタJは
図15に示す既知ワーク撮像工程(S1)のステップS106において1ずつ加算される。この加算されたレジスタJの値に対応する不良画像は、上述のように
図16乃至
図23によって処理される。そして
図21のステップS702において、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定される。
図21のステップS705における判断は、B個の不良画像のすべてに対応して、高下限値HBPMNJおよび低上限値LTPMNJの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がNoの場合は、すべての不良画像に対応するこれらのレジスタの内容が設定されていないので、飛び先番号202が記載される結合子を経由して
図15(既知ワーク撮像工程(S1))のステップS106にジャンプする。このステップS106においては、不良画像の数を格納するレジスタJの値に1を加算する。そして、今までの説明と同様にJの値が1だけ大きくなった状態で
図15のステップS107および
図16乃至
図23に記載の工程を再度実行する。Jの値に対する1の加算を繰り返すと、
図21(閾値範囲設定工程(S7))のステップS705の判断結果がYesとなる。その場合はステップS706に進む。
【0197】
以上の説明から明らかなように、
図21におけるステップS703乃至S705の3種類の判断は、以下の3つの判断である。まずステップS703において、サブルーチンSub2からの戻り値としての高下限値HBPおよび低上限値LTPは単色画像が有するすべての対称軸について生成されているか否かを判断する。次にステップS704において、サブルーチンSub2からの前記戻り値は不良画像をもとに生成したすべての単色画像について生成されているか否かを判断する。そしてステップS705において、サブルーチンSub2からの前記戻り値はすべての不良画像について生成されているか否かを判断する。
【0198】
これら3つの判断の結果がすべてYesとなることにより、上記レジスタ高下限値HBPMNJおよび低上限値LTPMNJの名称に用いられている3つの番号としてのJ、NおよびMについて、すべての番号に係る処理を完了したことになる。すなわち、ここまでの工程によってレジスタ高下限値HBPMNJおよび低上限値LTPMNJには、不良画像をもとに生成されたすべての単色画像について、当該単色画像が有するすべての対称軸に係る差分画像の高下限値(HBP)および低上限値(LTP)が、全不良画像に対して生成されて格納されたことになる。
【0199】
続いて
図21のステップS706およびS707において、再び対称軸の番号を格納するレジスタMを初期化したのち、その値に1を加算する。そして飛び先番号206が記載される結合子を経由して
図22(閾値範囲設定工程(S7))のステップS708にジャンプする。
【0200】
図22に示す閾値範囲設定工程(S7)は、上記の
図21におけるステップS702においてレジスタ高下限値HBPMNJおよび低上限値LTPMNJに格納した複数の高下限値および低上限値に対する処理を実行する工程である。この工程は上述のように、2つの目的を有している。第1の目的は、すべての(B個の)不良画像から生成した複数の差分画像に対して、ただ1つの閾値を設定することができるようにすることである。第2の目的は、すべての(B個の)不良画像から生成されるすべての単色画像(不良画像ごとにK個ずつ)のそれぞれに対応するK個の差分画像の中から、上記閾値を設定するのに最適な差分画像を選出することである。
【0201】
図22における最初のステップS708において、不良画像1から不良画像Bまでの各不良画像に対応するK個の単色画像のそれぞれから、第Mの対称軸に基づいて生成した差分画像を用いて算出した(B×C)個の高下限値HBPMNJ(1≦N≦KとなるNのそれぞれについて1≦M≦C、1≦J≦B)の中から、最小値となる最小下限値MNBMNを選出する。
【0202】
次にステップS709に進み、不良画像1から不良画像Bまでの各不良画像に対応するK個の単色画像のそれぞれから、第Mの対称軸に基づいて生成した差分画像を用いて算出したB個の低上限値LTPMNJ(1≦N≦KとなるNのそれぞれについて1≦M≦C、1≦J≦B)の中から、最大値となる最大上限値MXTMNを選出する。
【0203】
このように、ステップS708において(B×C)個の高下限値HBPMNJ(1≦N≦KとなるNのそれぞれについて1≦M≦C、1≦J≦B)の中から最小値を選出し、ステップS709においてB個の低上限値LTPMNJ(1≦N≦KとなるNのそれぞれについて1≦M≦C、1≦J≦B)の中から最大値を選出することの意味を、以下に説明する。
【0204】
高下限値HBPは、
図23に示すサブルーチンSub2のステップS2206およびS2207において生成されている。そして上述のようにステップS2206は、
図5(d)(e)において下段に標題として差分値の最大区間における閾値と記されている工程のうち、最大区間を選出する工程に対応する。この最大区間は、例えば
図5(d)の場合は中段において最大差分値としての58が生成される区間、すなわち上段において差分画素値65および7を隣接差分画素値とする区間である。そして
図23におけるステップS2207において、最大差分値MXNPの算出に用いた2個の隣接する配列AP(MX+1)およびAP(MX)に格納された画素値PV(MX+1)およびPV(MX)を、それぞれ高下限値HBPおよび低上限値LTPとしている。このステップS2207の処理と
図5(d)を対応させると、
図5(d)の上段に記載の差分画素値のうち65が高下限値HBPであり、7が低上限値LTPである。
【0205】
ここで上述のように、B個の不良画像のそれぞれの画素値にはバラツキがある。このため各不良画像から生成するK個の単色画像の画素値にも不良画像に対応してバラツキが存在する。これに起因して、各単色画像から差分画像を生成すると、各差分画像のもとになっている不良画像が有する画素値のバラツキに対応して、差分画像の画素値にもバラツキが存在することになる。これらのバラツキを生じた複数の差分画像を
図23のサブルーチンSub2によって処理すると、各差分画像から生成される高下限値HBPおよび低上限値LTPはバラツキを生じる。すなわち、
図5(a)に示す原画像すなわち第Nの単色画像(
図17のステップS306)がB個の不良画像に対応して変化すると、
図5(d)(e)の各段の数値にバラツキを生じる。その結果、
図23のステップS2207において生成される高下限値HBPおよび低上限値LTPは、B個の不良画像の画素値のバラツキに対応してバラツキを生じる。
【0206】
このように差分画像ごとに高下限値HBPおよび低上限値LTPにバラツキを生じることに起因して、
図5(d)(e)の下段に記載されるように閾値を設定すると、その閾値は差分画像ごとにバラツキを生じる。
【0207】
そこで、全B個からなる不良画像のどれから生成した第Nの単色画像であっても、その第Nの単色画像から生成した差分画像に対して同一の閾値を設定することが可能となるようにするための工程が必要となる。その工程として、
図22におけるステップS708およびS709の工程を実施している。
【0208】
ステップS708の工程において処理される高下限値HBPMNJは、
図5(d)の中段に記載した隣接差分画素値の差分値の最大区間に対応する上段の差分画素値のうち、左側に位置する大きい画素値に対応する。以後この画素値を最大区間大画素値と名付ける。
【0209】
同様にステップS709の工程において処理される低上限値LTPMNJは、
図5(d)の中段に記載した隣接差分画素値の差分値の最大区間に対応する上段の差分画素値のうち、右側に位置する小さい画素値に対応する。以後この画素値を最大区間小画素値と名付ける。
【0210】
すなわちステップS708においては、最大区間大画素値の中から最小値となる最小下限値MNBMNを選出している。この最小下限値MNBMNは、B個の不良画像に対応するK個の単色画像のそれぞれから、第Mの対称軸に基づいて生成した差分画像を用いて算出した(B×C)個の最大区間大画素値の中で、対応する最大区間小画素値に最も近い値となる。
【0211】
併せてステップS709においては、最大区間小画素値の中から最大値となる最大上限値MXTMNを選出している。この最大上限値MXTMNは、B個の不良画像に対応するK個の単色画像のそれぞれから、第Mの対称軸に基づいて生成した差分画像を用いて算出した(B×C)個の最大区間小画素値の中で、対応する最大区間大画素値に最も近い値となる。
【0212】
すなわち最小下限値MNBMNおよび最大上限値MXTMNの組み合わせは、
図5(d)(e)において中段に示す隣接差分画素値の差分値の最大区間における差分値を、最小値にする組み合わせに他ならない。このように差分値が最小値になることの意味は、第Nの単色画像から生成されるすべての差分画像に対して、第Nの単色画像ごとに閾値を設定する範囲が共通となるように最小化されたということである。よって最小下限値MNBMNおよび最大上限値MXTMNの組み合わせにより構成される区間は、上記(B×C)個の差分画像のすべてに対して確実に閾値を設定することが可能となる区間である。こうして最小下限値MNBMNおよび最大上限値MXTMNを選出したのち、ステップS710に進む。
【0213】
ステップS710において、K個の単色画像それぞれに対応する最小下限値MNBMNおよび最大上限値MXTMNについて、差分となる範囲RN=最小下限値MNBMN−最大上限値MXTMNを算出する。この範囲RNは上述のように、B個の不良画像に対応するK個の単色画像のそれぞれから、第Mの対称軸に基づいて生成した差分画像を用いて算出した(B×C)個の差分画像のすべてについて、隣接差分画素値の差分値の最大区間(例えば
図5(d)の中段において差分値58を有する区間)に確実に閾値を設定することが可能となる区間の差分値である。ステップS710において範囲RNを算出すると、ステップS7を終了して
図14(a)に示すステップS8に進む。
【0214】
(5.7)ステップS8
図14(a)においてステップS8は閾値画像生成工程であり、検査対象領域を選出するための閾値を設定するのに最適な閾値画像を選出して閾値を設定する。閾値画像生成工程(S8)の詳細フローチャートを
図24に示す。
【0215】
図24のステップS801において、不良画像から生成した単色画像の数であるKが2以上であるか否かについて判断する。これは
図17(単色画像生成工程(S3))に示すステップS301において、検査対象ワークの画像はカラー画像か否かの判断をしていることと同一の内容である。すなわち
図24のステップS801において、検査対象ワークの画像がカラー画像であれば単色画像の数Kは2以上であり、検査対象ワークの画像がカラー画像でなければ単色画像の数Kは1であって、これは2未満となる。ステップS801の判断結果がYes、すなわち不良画像をもとに生成した単色画像の数が2以上の場合はステップS802に進む。
【0216】
ステップS802において、全単色画像から算出されたK個の範囲RN(1≦N≦K)の中から最大値を選出し、この最大値となる範囲RNを有する差分画像を第M閾値画像として選出する。この第M閾値画像の番号Mは上述のように、原画像すなわち第Nの単色画像が有する第Mの対称軸の番号Mのことである。すなわち、対称軸の番号に対応した閾値画像を選出したことになる。
【0217】
ここで、最大値となる範囲RNを有する差分画像を第M閾値画像として選出することの意味を説明する。範囲RNは上述のように、B個の不良画像をもとに生成した第Nの単色画像から生成した差分画像のすべて((B×C)個)に対して、確実に閾値を設定することが可能となる区間の差分値である。これが、上述の第1の問題すなわち閾値が差分画像ごとにバラツキを生じて、1つに定まらないという問題を解決するための手段に該当する。また、このように算出した範囲RNの中から最大値を選出することは、最小の差分値としての範囲RNを比較して、それらの中から最も閾値を容易に設定することが可能となる最大値を選出することに他ならない。この最大値となる範囲RNを有する差分画像の選出が、上述の第2の問題すなわち閾値設定用の単色画像を選出する基準が必要となる問題を解決するための、基準の設定に該当する。
【0218】
以上をまとめると、
図5(d)(e)の下段に示す閾値が差分画像ごとにバラツキを生じて、1つに定まらないという上述の第1の問題を解決するために、
図22のステップS710において範囲RNを算出している。これにより、前記差分画像ごとの差分値のバラツキを解消して、B個の不良画像をもとに生成した第Nの単色画像から生成した差分画像のすべて((B×C)個)に対してただ1つの閾値を設定することができるようになる。また、閾値設定用の単色画像を選出する基準が必要になるという上述の第2の問題を解決するために、
図24のステップS802において単色画像の数であるKに対応するK個の範囲RNの中から最大値を選出し、この最大値となる範囲RNを有する差分画像を第M閾値画像として選出している。これにより、前記選出する基準を明確化して、1個の不良画像をもとに生成した複数の単色画像の中から、閾値を設定するのに最適な単色画像を後続のステップS803において選出することができる。
【0219】
一方、ステップS801の判断結果がNo、すなわち不良画像をもとに生成した単色画像の数が1の場合はステップS804に進む。ステップS804においては、1つの単色画像から生成した差分画像を第M閾値画像とする。このように第M閾値画像を選出したのち、ステップS803に進む。
【0220】
ステップS803において、第M閾値画像を生成した単色画像を第M閾値用単色画像として選出する。この第M閾値用単色画像は、原画像が有する第Mの対称軸に対して
図5(d)(e)の下段に示す離間画素値選出用の閾値を算出するために用いる単色画像である。第M閾値用単色画像を選出したのち、ステップS805に進む。
【0221】
ステップS805で第M閾値画像において、範囲RNの中央値=(最小下限値MNBMN+最大上限値MXTMN)/2を算出し、その値を検査対象領域選出用閾値としての第M検査閾値とする。このステップS805において算出した第M検査閾値が、
図5(d)(e)の下段に示す差分値の最大区間における閾値に対応する。こうして第M検査閾値を設定したのち、ステップS806に進む。
【0222】
ステップS806において、レジスタMに格納した対称軸の番号が対称軸の数であるCに到達したか否かについて判断する。レジスタMは
図21に示す閾値範囲設定工程(S7)のステップS707において1ずつ加算される。この加算されたレジスタMの値に対応する原画像は、上述のように
図22および
図24によって処理される。そして
図24のステップS805において、第M検査閾値が設定される。
図24のステップS806における判断は、第Nの単色画像が有するC個の対称軸のすべてに対応して第M検査閾値が設定されたか否かの判断に他ならない。この判断結果がNoの場合は、すべての対称軸に対応する第M検査閾値が設定されていないので、飛び先番号205が記載される結合子を経由して
図21(閾値範囲設定工程(S7))のステップS707にジャンプする。このステップS707においては、対称軸の数を格納するレジスタMの値に1を加算する。そして、今までの説明と同様に、Mの値が1だけ大きくなった状態で
図22および
図24の処理を再度実行する。Mの値に対する1の加算を繰り返すと、
図24(閾値画像生成工程(S8))のステップS806の判断結果がYesとなる。その場合はステップS8を終了して
図14(a)に示すステップS9に進む。
【0223】
(5.8)ステップS9
図14(a)においてステップS9は閾値確認工程である。これは良品画像から生成した差分画像の全画素の画素値が上記第M検査閾値よりも小さいこと、すなわち良品画像に対して第M検査閾値を適用しても、
図6(c)に二重枠で示すような欠陥検査を行うべき検査対象領域を選出することができないことを確認する工程である。閾値確認工程(S9)の詳細フローチャートを
図25および
図26に示す。
【0224】
図25においてステップS901およびS902は、
図15に示す既知ワーク撮像工程(S1)に示すステップS101において得たA個の良品画像について、閾値確認工程を実行するための準備である。まずステップS901において、閾値確認工程で処理を実行中の良品画像の番号を記憶するレジスタIに0を格納して、レジスタIを初期化する。続いてステップS902において、Iの値に1を加算する。
【0225】
そしてステップS903において、1からAまでの番号を付与した良品画像の中からIの値で指定される番号の画像を取り出す。ここではI=1である。そしてステップS904に進む。
【0226】
ステップS904およびS905はそれぞれ、
図16に示す検査対象ワーク抽出工程(S2)のステップS201およびS202と同一である。すなわちステップS904およびS905において、良品画像1からテンプレートマッチング法を用いて検査対象ワークの画像を生成している。こうして検査対象ワークの画像を生成したのち、ステップS906に進む。
【0227】
ステップS906およびS907は、良品画像1をもとに生成した単色画像から生成した差分画像に対して、閾値確認工程における後続のステップを実行するための準備である。まずステップS906において、閾値確認工程における後続のステップで処理を実行中の単色画像における対称軸の番号を記憶するレジスタMに0を格納して、レジスタMを初期化する。続いてステップS907において、Mの値に1を加算する。
【0228】
次にステップS908に進み、検査対象ワークの画像がカラーか否かについて判断する。判断がYesの場合すなわちカラー画像の場合はステップS909に進む。ステップS909において、カラー画像である検査対象ワークの画像からK個の単色画像を生成する。このステップS909は
図17に示す単色画像生成工程(S3)におけるステップS302と同一である。K個の単色画像を生成したのち、ステップS910に進む。
【0229】
ステップS910において、生成した単色画像の中から、第M閾値画像を生成した単色画像に対応する単色画像を第M閾値用単色画像とする。ここで上述のように、第M閾値画像を生成した単色画像を第M閾値用単色画像として選出しているのは、
図24に示す閾値画像生成工程(S8)のステップS803である。すなわち、ステップS803において選出した第M閾値用単色画像と、ステップS910において選出する第M閾値用単色画像を対応させているということである。このように対応させる目的は、第M閾値用単色画像を用いて設定した第M検査閾値を良品画像に対して適用しても、上述のように
図6(c)に二重枠で示すような検査対象領域を選出することができないことを確認するためである。
【0230】
一方、ステップS908における判断がNoの場合すなわち検査対象ワークの画像が単色画像の場合は、ステップS911に進む。ステップ911において、前記単色画像すなわち検査対象ワークの画像を第M閾値用単色画像とする。こうして、ステップS910あるいはS911において第M閾値用画像を選出したら、飛び先番号209が記載される結合子を経由して
図26のステップS912にジャンプする。
【0231】
図26のステップS912において、第M閾値用単色画像を原画像という名称のレジスタに格納する。次にステップS913に進み、ONEMという名称のレジスタに第Mの対称軸の一端の座標を格納する。このステップS913は、
図18に示す対称性判断工程(S4)のステップS405と同一の工程である。次にステップS914に進み、OTEMという名称のレジスタに第Mの対称軸の他端の座標を格納する。このステップS914は、
図18に示す対称性判断工程(S4)のステップS406と同一の工程である。そして、ステップS21に進み、
図20に示すサブルーチンSub1を実行する。サブルーチンSub1については既に説明しているので、ここでは詳細な説明は省略する。
【0232】
この
図26においてステップS912乃至ステップS21(サブルーチンSub1)を実行することで、
図25のステップS910あるいはS911において選出した第M閾値用画像とその対称軸の一端および他端の座標をメインプログラムからサブルーチンSub1に引数として渡して、サブルーチンSub1がこの第M閾値用画像から生成した差分画像を、メインプログラムは戻り値として受け取る。
【0233】
ステップS21を実行したのち、戻り値としての差分画像に対してステップS915を実行する。ステップS915において、差分画像の全画素の画素値が第M検査閾値よりも小さいか否かを判断する。この判断結果がYesの場合は、この差分画像に対して上述のように、
図6(c)に二重枠で示すような検査対象領域を選出することができないことを確認したことになる。その場合は、ステップS916に進む。
【0234】
ステップS916において、レジスタMに格納した対称軸の番号が対称軸の数であるCに到達したか否かについて判断する。レジスタMは
図25のステップS907において1ずつ加算される。この加算されたレジスタMの値に対応する原画像は、上述のようにステップS912乃至ステップS21によって処理されて差分画像が生成される。そしてステップS915において、差分画像の全画素の画素値が第M検査閾値よりも小さいか否かを判断する。ステップS916における判断は、検査対象ワークの画像が有するC個の対称軸のすべてに対応して、上記ステップS915の判断が行われたか否かの判断に他ならない。このステップS916の判断結果がNoの場合は、すべての対称軸に対応する差分画像に対してステップS915の判断が行われていないので、飛び先番号208が記載される結合子を経由して
図25のステップS907にジャンプする。このステップS907においては、対称軸の数を格納するレジスタMの値に1を加算する。そして、今までの説明と同様に、Mの値が1だけ大きくなった状態で
図25のステップS908乃至
図26のステップS915を再度実行する。Mの値に対する1の加算を繰り返すと、ステップS916の判断結果がYesとなる。その場合はステップS917に進む。
【0235】
ステップS917において、レジスタIに格納した良品画像の番号が良品画像の数であるAに到達したか否かについて判断する。レジスタIは
図25のステップS902において1ずつ加算される。この加算されたレジスタIの値に対応する良品画像は、上述のように
図25のステップS903乃至
図26のステップS916によって処理される。そして当該の良品画像のすべての対称軸に対応する差分画像の全画素の画素値が、第M検査閾値よりも小さいか否かを判断している。ステップS917における判断は、A個の良品画像のすべてについて、すべての対称軸に対応する差分画像の全画素の画素値が第M検査閾値よりも小さいことを確認したか否かの判断に他ならない。このステップS917の判断結果がNoの場合は、A個の良品画像のすべてについて、すべての対称軸に対応する差分画像の全画素の画素値が第M検査閾値よりも小さいことを確認していない。このため、飛び先番号207が記載される結合子を経由して
図25のステップS902にジャンプする。このステップS902においては、良品画像の数を格納するレジスタIの値に1を加算する。
【0236】
そして、今までの説明と同様にIの値が1だけ大きくなった状態で、
図25のステップS903乃至
図26のステップS916の工程を再度実行する。Iの値に対する1の加算を繰り返すと、
図26のステップS917の判断結果がYesとなる。その場合はステップS9を終了して、
図14(a)の最下部に示す飛び先番号101が記載される結合子を経由して
図14(b)のステップS10にジャンプする。ところで上述のように
図14(a)は閾値設定モードであり、
図14(b)は検査実行モードである。よって、ステップS9を終了した段階で閾値設定モードを終了して、検査実行モードを開始することになる。
【0237】
一方、
図26においてステップS915の判断結果がNoの場合は、良品画像に対して第M検査閾値を適用すると、検査対象領域が選出されることを意味する。そこでステップS918に進み、検査対象領域が選出される原因を調査して当該原因を除去する対策を行う。対策を行ったのち、飛び先番号201が記載される結合子を経由して
図15の既知ワーク撮像工程(S1)のステップS103にジャンプする。そして再度
図14(a)に示す閾値設定モードを実行する。この再度の実行において、
図24の閾値画像生成工程(S8)におけるステップS802乃至S805で第M閾値画像、第M閾値用単色画像を選出して、第M検査閾値を設定する。そして再び
図26のステップS915において、差分画像の全画素の画素値が第M検査閾値よりも小さいか否かを判断する。この判断結果がYesになるまで、ステップS918の原因調査ならびに対策と、閾値設定モードの再度の実行を繰り返す。判断結果がYesになったら、上述のようにステップS916の判断およびステップS917の判断がともにYesになるまで、閾値確認工程(S9)を実行する。S917の判断結果がYesになると、上述のようにステップS9を終了して閾値設定モードを終了する。そして
図14(b)に示す検査実行モードのステップS10にジャンプする。
【0238】
続いて
図14(b)および
図27乃至
図31を用いて、検査実行モードについて説明する。
【0239】
(5.9)ステップS10
図14(b)においてステップS10は被検査ワーク撮像工程であり、被検査ワークを撮像する。被検査ワーク撮像工程(S10)の詳細フローチャートを
図27に示す。
【0240】
図27に示すステップS1001において、被検査ワークを撮像する。ステップS1001を終了するとステップS10を終了して、
図14(b)に示すステップS2に進む。
図14(b)においてステップS2は検査対象ワーク抽出工程であり、
図14(a)に示すステップS2と同一の工程である。すなわち、被検査ワークの画像からテンプレートマッチング法を用いてワークの最外縁を探索して確定し、検査対象ワークの画像を生成する。ステップS2を終了すると、
図14(b)に示すステップS11に進む。
【0241】
(5.10)ステップS11
図14(b)においてステップS11は被検査単色画像生成工程であり、ステップS2で生成した検査対象ワークの画像から単色画像を生成する。被検査単色画像生成工程(S11)の詳細フローチャートを
図28に示す。
【0242】
図28に示すステップS1101において、レジスタMに0を格納して、レジスタMを初期化する。ここにレジスタMは、後続のステップS1102以降の被検査単色画像生成工程および
図14(b)に示す後続のステップS12およびS13で処理を実行中の単色画像における対称軸の番号を記憶するレジスタである。この対称軸の番号は、例えば前工程である
図14(a)の閾値設定モードにおけるステップS4(対称性判断工程)において設定されている。具体的には、
図18に示す対称性判断工程(S4)のステップS402において、レジスタCに対称軸の数を格納している。このレジスタCの値は、このステップS402において設定されたあと、そのままの値である。
【0243】
次にステップS1102において、検査対象ワークの画像の全画素について、画素値を最大画素値に置換した画像を、前画像という名称のレジスタに格納する。このレジスタ前画像の作用について、以下に説明する。
【0244】
本発明の画像処理アルゴリズムについて、既に
図5を用いて説明している。その説明において、
図5(a)に示す2つの対称軸としての第1直線L1および第2直線L2を定義している。これらの対称軸に対応する差分画像が
図5(b)および
図5(c)である。そして、それぞれの差分画像である
図5(b)および
図5(c)の全画素の中から選出した離間画素を、
図6(a)および
図6(b)に画素値を二重枠で囲むことにより表示している。これらの離間画素を選出したのち、
図6(a)および
図6(b)に示す離間画素の共通部分を選出して、この共通部分を検査対象領域としている。この
図6における離間画素の共通部分の選出は、複数の対称軸に対応する差分画像を同時に生成して、各差分画像から離間画素を選出したのち、それぞれの離間画素の共通部分を選出する概念となっている。しかし、ソフトウェアを用いて複数の対称軸に対応する処理を同時に、すなわち並列に実行することは現実的ではない。その理由は、このような並列処理を行うためには、複数の差分画像の全画素値を記憶するための膨大な記憶領域を確保して、かつその記憶領域への画素値の書き込みおよび読み出しを行うステップが必要となるからである。このため本発明の画像処理アルゴリズムを用いた欠陥検査方法においては、
図5(b)乃至
図6(c)の工程をソフトウェアにより実行するために、以下の方法をとることにした。
【0245】
最初に
図20に示すサブルーチンSub1に、メインプログラムから引数として原画像(検査対象ワークの画像から生成した単色画像)と第1の対称軸の一端(ONEM)および他端(OTEM)の座標を渡す。サブルーチンSub1は原画像をもとに第1の対称軸に対応する差分画像を生成して、メインプログラムに戻り値として返す。メインプログラムは受け取った差分画像に対して、閾値設定モードで設定した第M検査閾値を用いて離間画素を選出する。この離間画素の配置される位置が、第1の対称軸に対応する検査対象領域となる。
【0246】
次に対称軸の番号を格納しているレジスタMに1を加算することによりM=2とする。これにより、次にサブルーチンSub1にメインプログラムから渡す引数は第2の対称軸に関するものとなる。そして同様にサブルーチンSub1において、原画像をもとに第2の対称軸に対応する差分画像の生成を行う。そして同様にメインプログラムにおいて、第2の対称軸に対応する検査対象領域の選出を行う。
【0247】
そして第2の対称軸に対応する検査対象領域と、先程選出した第1の対称軸に対応する検査対象領域の共通部分を新たな検査対象領域とする。すなわち、第(M+1)の対称軸および第Mの対称軸に対応する2つの検査対象領域の共通部分を新たな検査対象領域とする。このような工程を考えると、第(M+1)の対称軸に対応する検査対象領域を選出するまでの間に、第Mの対称軸に対応する検査対象領域をレジスタに格納しておく必要がある。このレジスタを前画像という名称であらかじめ確保して、そこに初期値として検査対象ワークの画像を格納しているのが、上述のステップS1102である。ここに、ステップS1102において検査対象ワークの画像の全画素について、画素値を最大画素値に置換した画像を格納している。その理由を以下に述べる。
【0248】
上述のように検査対象領域とは、検査対象ワークの画像において欠陥が存在する可能性のある領域すなわち欠陥検査を行うべき領域である。このため、検査対象ワークの画像に対して欠陥検査を行う際の参照用画像として、検査対象領域とそれ以外の領域を明確に識別することが可能な画像を生成する必要がある。そこで本発明においては、前記参照用画像として検査用画像を生成することにした。検査用画像は検査対象領域に最大画素値を有する画素を配置し、検査対象領域以外の領域に最小画素値を有する画素を配置した画像として生成する。これに対応するために、検査対象ワークの画像においてすべての領域が検査対象領域となる画像を、前画像の初期値(以下、初期前画像)として最初に生成しておく。これが
図28のステップS1102においてレジスタ前画像に格納される。そして上述のように、後続のステップにおいて検査対象ワークの画像が有する対称軸(C個)のうち第1の対称軸に対応する検査対象領域としての離間画素を選出する。
【0249】
次にこの第1の対称軸に対応する検査対象領域と初期前画像における検査対象領域の共通部分を選出する。そしてこの共通部分を検査対象領域として有する新たな前画像を生成する。以後、この新たな前画像の生成を前画像の更新と呼ぶ。ここで、第1の対称軸に対応する前画像の更新時には、第1の対称軸に対応する検査対象領域と初期前画像の検査対象領域について、必ず共通部分を選出することができなくてはならない。その条件は、初期前画像のすべての領域が検査対象領域となることである。このため、ステップS1102においてレジスタ前画像に格納する初期前画像は、すべての領域が検査対象領域となるように全画素値を最大画素値としている。そして第1の対称軸に対応して前画像を更新したのち、対称軸の番号を格納したレジスタMに1を加算して同様の工程を実行する。これをレジスタMが上記対称軸の数Cに到達するまで繰り返す。そしてCに到達した時点で、最後に更新した前画像を検査用画像とすればよい。
【0250】
こうして
図28のステップS1102でレジスタ前画像の初期化を行ったのち、ステップS1103に進む。ステップS1103において、対称軸の番号を格納したレジスタMの値に1を加算する。続いてステップS1104乃至S1108において、被検査単色画像を生成してレジスタ原画像に格納する。これらのステップのうちステップS1104乃至ステップS1107は、それぞれ
図25に示す閾値確認工程(S9)におけるステップS908乃至S911と同一である。よって、詳細な説明は省略する。ステップS1108において、被検査単色画像をレジスタ原画像に格納するとステップS11を終了して、
図14(b)に示すステップS5に進む。
【0251】
図14(b)においてステップS5は差分算出工程であり、それに続くステップS6は差分画像生成工程である。これらの工程は上述のように
図19および
図20のサブルーチンSub1を用いて、上記
図28のステップS1108で設定した原画像から差分画像を生成する。よって、詳細な説明は省略する。
図14(b)においてステップS5およびステップS6を終了すると、ステップS12に進む。
【0252】
(5.11)ステップS12
図14(b)においてステップS12は検査領域選出工程であり、ステップS6において生成した差分画像を用いて、検査対象領域の候補となる領域を有する領域候補画像を生成する。検査領域選出工程(S12)の詳細フローチャートを
図29に示す。
【0253】
図29のステップS1201において、差分画像の全画素の中で第M検査閾値より大きい画素値を有する画素を、検査領域画素として選出する。この工程は、差分画像の全画素の中から
図5(d)(e)に示す離間画素を選出することと同一の内容である。ただし、このステップS1201は検査対象領域を選出するための準備としての工程であるため、選出した画素の名称を検査領域画素としている。ステップS1201において検査領域画素を選出したのち、ステップS1202に進む。
【0254】
ステップS1202は、上述の検査対象領域とそれ以外の領域を明確に識別する画像、すなわち検査用画像を生成するための前工程である。まず、差分画像を検査領域画素と検査領域画素以外の画素に区分する。次に、検査領域画素の位置に最大画素値を有する領域指定画素を配置するとともに、検査領域画素以外の画素の位置に最小画素値を有する検査外画素を配置して、領域候補画像を生成する。この工程により生成された領域候補画像は、検査領域画素の画素値と検査外画素の画素値の対比によって、検査対象領域とそれ以外の領域を明確に識別することが可能となる。ステップS1202で領域候補画像を生成するとステップS12を終了して、
図15(b)に示すステップS13に進む。
【0255】
(5.12)ステップS13
ステップS13は検査用画像生成工程であり、ステップS12で生成した領域候補画像に基づいて検査用画像を生成する。検査用画像生成工程(S13)の詳細フローチャートを
図30に示す。
【0256】
図30のステップS1301で前画像と領域候補画像について、領域指定画素の共通部分となる共通指定画素を選出する。この工程は上述のように、対称軸に対応して検査対象領域を生成するごとに、この生成した検査対象領域と前画像の共通部分を選出して、前画像を更新するためのものである。このステップS1301において共通指定画素すなわち共通部分を選出したのち、ステップS1302に進む。
【0257】
ステップS1302においては共通指定画素の位置に最大画素値を有する共通指定画素を配置するとともに、共通指定画素以外の画素の画素値を最小画素値として、更新候補画像を生成する。このステップS1302では、前画像において最大画素値を有する画素が配置されていた位置に無関係に、ステップS1301で選出した共通指定画素以外の画素の画素値を最小画素値にする。すなわち、前画像において最大画素値を有する画素が配置されている位置であっても、ステップS1301で選出した共通指定画素が当該位置に配置されないときには、当該位置に配置される画素の画素値は最小画素値に更新される。こうして前画像の更新が完了し、更新後の画像は更新候補画像となる。ステップS1302において更新候補画像を生成したのち、ステップS1303に進む。
【0258】
ステップS1303において、更新候補画像をレジスタ前画像に格納する。次にステップS1304において、レジスタMに格納した対称軸の番号が対称軸の数であるCに到達したか否かについて判断する。レジスタMは
図28に示す被検査単色画像生成工程(S11)のステップS1103において1ずつ加算される。この加算されたレジスタMの値に対応する原画像は、上述のように
図28のステップS1104乃至ステップS1108と
図29および
図30のステップS1301乃至ステップS1303によって処理される。そして
図30のステップS1303おいて、前画像が更新される。ステップS1304における判断は、被検査単色画像が有するC個の対称軸のすべてに対応して、前画像の更新が行われたか否かの判断に他ならない。この判断結果がNoの場合は、すべての対称軸に対応する前画像の更新が行われていないので、飛び先番号210が記載される結合子を経由して
図28(被検査単色画像生成工程(S11))のステップS1103にジャンプする。
【0259】
このステップS1103においては、対称軸の数を格納するレジスタMの値に1を加算する。そして今までの説明と同様に、Mの値が1だけ大きくなった状態で
図28のステップS1104乃至ステップS1108と
図29および
図30のステップS1301乃至ステップS1303に記載の工程を再度実行する。Mの値に対する1の加算を繰り返すと、
図30(検査用画像生成工程(S13))のステップS1304の判断結果がYesとなる。その場合はステップS1305に進む。
【0260】
このステップS1305において、更新候補画像を検査用画像という名称のレジスタに格納する。これにより、検査用画像の生成が完了する。そしてステップS13を終了し、
図14(b)に示すステップS14に進む。
【0261】
(5.13)ステップS14
図14(b)においてステップS14は検査実行工程であり、ステップS13で生成した検査用画像に基づいて、検査対象ワークの画像に対する欠陥検査を実行する。検査実行工程(S14)の詳細フローチャートを
図31に示す。
【0262】
図31のステップS1401において、検査対象ワークの画像を取り出して、検査用画像の検査対象領域を参照しながら、当該領域に対して欠陥検査を行う。具体的には、検査用画像において最大画素値が配置されている領域を、検査対象ワークにおける検査対象領域とする。そして、この領域に対して欠陥検査を実行する。欠陥検査において適用する方法は、作業者にとって既知である任意の方法を用いてよい。
【0263】
上述の本発明における画像処理アルゴリズムを用いた欠陥検査方法は、従来技術による欠陥検査方法に比べて、以下の点ですぐれている。まず、作業者が撮像画像を目視して判断する項目がきわめて少なく、かつその判断基準が作業者の熟練を前提としていないことである。
【0264】
従来技術による欠陥検査方法において、作業者は欠陥検査の対象となるワークの画像を目視する。そして、画像において欠陥検査の対象となる検査対象領域と、欠陥検査の対象とならない除外領域を確認する。そして各領域の配置について相互関係を確認し、併せて各領域を構成する画素の画素値について大小関係を確認する。次に上記配置の相互関係および画素値の大小関係を考慮した上で、検査対象領域と除外領域を選別するための閾値を設定して検査対象領域を選別する。また、カラー画像から複数の単色画像を生成した場合には、作業者が各単色画像を目視する。そして上記各領域間の明るさを比較して、最も欠陥を明瞭に識別することができると判断した1つの単色画像を選択する。そしてこの選択した単色画像に対して、上記閾値の設定および検査対象領域の選別を行う。
【0265】
これに対して本発明の画像処理アルゴリズムおよびそれを用いた欠陥検査方法は、ワークの画像が特定の直線に関して線対称となる場合に用いるものである。まず対称軸に関して対象位置に配置される画素の画素値の差分をとり、差分画像を生成する。次に差分画像を構成する画素の画素値の中で、あらかじめ設定された閾値よりも大きい画素値を有する画素を選出して、当該画素が配置される箇所を検査対象領域として選出する。対称軸が複数の場合は、それぞれの対称軸に対応する検査対象領域の共通部分を最終的な検査対象領域とする。また、カラー画像から複数の単色画像を生成した場合には、各単色画像から生成した差分画像の画素について、あらかじめ決められた演算を画素値に対して実行する。そして各差分画像の演算結果を比較して、閾値を設定するのに最適な1つの単色画像を選出する。この単色画像を用いて、上記のあらかじめ設定された閾値を設定する。
【0266】
このアルゴリズムおよびそれを用いた欠陥検査方法は、作業者がワークの画像を目視して何らかの判断を行う工程がほとんど存在しない。このため、従来技術による欠陥検査方法のように作業者に対して熟練が要求されることがなく、作業者の負担が少なくなる。かつアルゴリズムをソフトウェアにより自動化して欠陥検査を実行することが容易であるため、従来技術による欠陥検査に比べて検査速度が格段に向上するとともに、作業者の熟練度の差異に影響されにくい。