この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[実施の形態1]
(全体装置構成)
図1は、この発明の実施の形態1に従う欠陥検出装置を含む欠陥検出システム1の全体構成を示す概略図である。
図1を参照して、欠陥検出システム1は、代表的に生産ラインなどに組込まれ、欠陥検査の対象となるワーク(以下、対象ワークとも称す)における欠陥の有無および欠陥の発生位置を検出する。欠陥とは、代表的に対象ワークに生じるキズやゴミなどを意味する。
本実施の形態に従う欠陥検出システム1においては、対象ワーク2は、ベルトコンベヤなどの搬送機構6によって搬送され、搬送された対象ワーク2は、撮像部8において順次撮影される。撮像部8によって撮影された画像(以下、「検査画像」とも称す)は、本実施の形態に従う欠陥検出装置を実現する代表例であるコンピュータ100へ伝送される。
撮像部8は、一例として、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサなどの撮像素子およびレンズを備え、対象ワーク2または後述する基準ワーク4を撮影する。なお、撮像部8は、搬送機構6の搬送動作に応じてコンピュータ100が発生する撮影指令などに従って撮影を行なう。
この撮像部8で撮影される画像は、典型的には、画素単位で画像情報を有する。代替的に、複数の画素をまとめたブロック単位で画像情報を有するようにしてもよい。このような「画像情報」としては、撮像部8が3バンドのカラーカメラであれば、光の三原色に基づく「赤色」「緑色」「青色」の階調値(R成分値、G成分値、B成分値)で特定される情報が用いられる。代替的に、画像情報として、光の三原色の補色である「シアン」「マゼンダ」「黄色」の階調値(C成分値、M成分値、Y成分値)で特定される情報を用いてもよい。また、撮像部8がより多くのバンド数を有するカラーカメラであれば、そのバンド数に応じた数の階調値で特定される情報が用いられる。
あるいは、撮像部8がモノクロカメラであれば、濃淡を示す階調値(グレイスケール)で特定される情報を用いてもよい。この階調値を2段階とした場合には、「白」または「黒」の2値化画像を表わすことになる。
さらに、上述のような階調値に代えて、「色相(Hue)」「明度(Value)」「彩度(Chroma)」の各パラメータからなる色属性を画像情報」として用いてもよい。
特に本実施の形態に従う欠陥検出装置は、欠陥検査の基準にすべき基準ワーク4を予め撮影しておき、この撮影によって得られる画像(以下、「学習画像」とも称す)から学習結果を取得し、この学習結果に基づいて検査画像における欠陥を検出する(以下、本発明に係る欠陥検出装置による欠陥検出を「学習型ESDD」とも称す)。そのため、基準ワーク4としては、対象ワーク2と同一種類の製品を選択する必要がある。なお、基準ワーク4(すなわち、学習画像)は欠陥を含まないことが望ましい。ここで、「欠陥を含まない」とは、所定の判断基準下で欠陥と判断される部分を含まないことを意味する。
また、本明細書においては、学習結果の代表例として、互いにベクトルサイズの異なる複数の画像ベクトルと対応の固有空間との距離を要素として有する応答ベクトルを評価するための判別関数を用いる。この判別関数や応答ベクトルについては、後述する。
一方、対象ワーク2としては、電子部品やプラスチック部品などの連続的に生産される同一種類の製品が適している。なお、本発明に係る欠陥検出装置が欠陥検出の対象とする対象ワークの大きさや種類などは特に制限されない。さらに、工場の生産ラインで製造されるものに限られず、りんごなどの農作物の傷や映画フィルムにおけるスクラッチ傷などを検出することもできる。
欠陥検出システム1は、撮像部8の撮影範囲の付近を照明するための照明部10と、この照明部10を駆動する光源部12とをさらに含む。そして、この光源部12は、コンピュータ100からの照明指令に従って、照明部10から所定の光量の光を照射させる。照明部10から照射される光は、比較的波長スペクトルの広いものが望ましい。
また、コンピュータ100は、FD(Flexible Disk)駆動装置111およびCD−ROM(Compact Disk-Read Only Memory)駆動装置113を備えたコンピュータ本体101と、モニタ102と、キーボード103と、マウス104とを含む。そして、コンピュータ100は、予め格納されたプログラムを実行することで、本実施の形態に従う欠陥検出装置を実現する。
(ハードウェア構成)
図2は、コンピュータ100のハードウェア構成を示す概略構成図である。
図2を参照して、コンピュータ本体101は、図1に示すFD駆動装置111およびCD−ROM駆動装置113に加えて、相互にバスで接続された、演算装置であるCPU(Central Processing Unit)105と、メモリ106と、記憶装置である固定ディスク107と、インターフェイス109とを含む。
FD駆動装置111にはFD112が装着され、CD−ROM駆動装置113にはCD−ROM114が装着される。上述したように、本実施の形態に従う欠陥検出装置は、CPU105がメモリ106などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、FD112やCD−ROM114などの記録媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、FD駆動装置111やCD−ROM駆動装置113などにより記録媒体から読取られて、またはインターフェイス109にて受信されて、固定ディスク107に格納される。さらに、固定ディスク107からメモリ106に読出されて、CPU105により実行される。
モニタ102は、CPU105が出力する情報を表示するための表示部であって、一例としてLCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などから構成される。マウス104は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード103は、入力されるキーに応じたユーザからの指令を受付ける。CPU105は、プログラムされた命令を順次実行することで、各種の演算を実施する演算処理部である。メモリ106は、CPU105でのプログラム実行に応じて、各種の情報を記憶する。インターフェイス109は、コンピュータ100と撮像部8(図1)や照明部10(図1)との間の通信を確立するための装置であり、CPU105が出力した情報をたとえば電気信号に変換してこれらの装置へ送出するとともに、これらの装置から電気信号を受信してCPU105が利用できる情報に変換する。特に、撮像部8によって撮影された画像データは、インターフェイス109を介して、メモリ106または固定ディスク107へ格納される。固定ディスク107は、CPU105が実行するプログラムや画像データなどを記憶する不揮発性の記憶装置である。また、コンピュータ100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
(学習型ESDDによる欠陥検出処理)
図3は、学習型ESDDを用いて欠陥検出を行なう場合の処理を説明するための図である。図3(a)は、欠陥を含まない学習画像LNIMGの一例を示し、図3(b)は、欠陥DEFを含む検査画像IMGの一例を示し、図3(c)は、欠陥DEFを含まない部分領域BLK1の一例を示し、図3(d)は、欠陥DEFを含む部分領域BLK2の一例を示す。
図3(a)を参照して、まず、学習型ESDDによれば、基準ワーク4を撮影して得られた欠陥を含まない学習画像LNIMGから所定の大きさの部分領域BLKLNが順次抽出される。そして、この学習画像LNIMGの全体として現れる性質(特徴)が予め取得される(学習)。なお、図3(a)では、図面を簡素化するために、互いに重ならないように部分領域BLKLNを順次抽出する例を示すが、互いに重なるように部分領域BLKLNを設定してもよい。
図3(b)を参照して、続いて、学習型ESDDによれば、対象ワーク2を撮影して得られた検査画像IMGから所定の大きさの部分領域BLK1,BLK2などが抽出される。なお、検査画像IMGから抽出される部分領域BLK1,BLK2は、学習画像LNIMGから抽出した部分領域BLKLNの大きさといずれも同じである。
図3(c)に示すように、部分領域BLK1が欠陥DEFを含まない場合には、部分領域BLK1は、学習画像LNIMGの全体として現れる性質とほぼ同様の性質を有することになる。一方、図3(d)に示すように、部分領域BLK2に欠陥DEFが含まれる場合には、部分領域BLK2は、学習画像LNIMGの全体として現れる性質とは異なる特徴的な性質を有することになる。
このように、学習型ESDDによれば、基準ワーク4を撮影して得られる学習画像LNIMGの全体として現れる性質を予め取得(学習)しておき、この予め取得した学習画像LNIMGの全体として現れる性質と、検査画像IMGの対応する部分領域BLKに現れる性質とを比較することで、検査画像IMG中の欠陥DEFを検出する。
図4は、検査画像IMG内に発生する欠陥DEF1,DEF2の一例を示す図である。
図4を参照して、対象ワークによっては、発生する欠陥の大きさにバラツキが生じ得る。そのため、検査画像IMG中には、部分領域BLKに収まる欠陥DEF1が発生する場合もあれば、1つの部分領域BLKに収まりきらないような欠陥DEF2が発生する場合もある。
一方、発生する欠陥の大きさを予め予測することは困難である場合が多く、予め部分領域BLKLNおよびBLKの大きさを最適化することは難しい。また欠陥の大きさにバラツキが生じる場合などにも、部分領域BLKLNおよびBLKの大きさを最適化することは難しい。
そこで、本発明に係る欠陥検出装置は、非特許文献1に開示されているESDDとは異なり、部分領域BLKLNおよびBLKの大きさを固定することなく、互いに大きさの異なる複数の部分領域BLKLNおよびBLKを用いて画像を評価し、欠陥を検出する。なお、以下では、部分領域BLKLNおよびBLKの大きさのことを「ベクトルサイズ」とも称す。
(学習処理および欠陥検出処理)
図5は、この発明の実施の形態1に従う欠陥検出装置に設定される部分領域の大きさとその評価を概念的に説明するための図である。
図6は、この発明の実施の形態1に従う欠陥検出装置における学習処理および欠陥検出処理を概念的に説明するための図である。図6(a)は学習処理を概念的に示し、図6(b)は欠陥検出処理を概念的に示す。
図5を参照して、本実施の形態に従う欠陥検出装置は、学習画像LNIMGまたは検査画像IMG(以下、単に「画像」と総称する場合もある)から、大きさの異なる複数の部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)またはBLK(1),BLK(2),・・・,BLK(m)をそれぞれ抽出する。このとき、BLKEV(1),BLKEV(2),・・・,BLKEV(m)または部分領域BLK(1),BLK(2),・・・,BLK(m)のうち、最も小さい(狭い)部分領域がそれぞれの評価領域となる。そして、他の部分領域は、この評価領域に相当する最も小さい領域(図5においては、部分領域BLKEV(1)またはBLK(1))を包含するように設定される。以下、ある評価領域に対応する部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)またはBLK(1),BLK(2),・・・,BLK(m)を「部分領域セットSET」とも称す。
そして、抽出された部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)の各々の画像情報からそれぞれの画像ベクトルが算出され、さらに各画像ベクトルと対応する固有空間との間の距離Out1,Out2,・・・,Outmが算出される。このような過程によって、各評価領域に対応する部分領域セットSETについての応答ベクトルRV=[Out1,Out2,・・・,Outm]が算出できる。
このように、学習画像LNIMGに設定される部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)は、応答ベクトルRVの算出に用いられ、この応答ベクトルRVは、検査画像IMGに設定される各評価領域を評価するための判別関数の算出に用いられる。一方、後述する部分領域BLKLNは、主として、学習画像LNIMGにおける固有空間(固有ベクトル)の算出に用いられる。実際は、部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)の大きさ(ベクトルサイズ)別に、固有空間(固有ベクトル)を算出する必要があるので、両者は同じ領域となる場合もあるが、理解を容易にするために、符号を異ならせて記載する。
図6(a)を参照して、本実施の形態に従う欠陥検出装置は、学習処理において、学習画像LNIMGの各評価領域に対応して算出される応答ベクトルRVを特徴空間に写像する。この特徴空間は、応答ベクトルを構成する各成分に対応する次元をもつ超空間となる。すなわち、この特徴空間は、各ベクトルサイズにおける画像ベクトルと固有空間との距離を基底(座標)とする。
そして、本実施の形態に従う欠陥検出装置は、この特徴空間に写像された応答ベクトルの集合に対して、正常値とはずれ値とを区別する。このような区別は、データマイニング(Data mining)分野のはずれ値検出手法を用いることで実現される。より具体的には、本実施の形態に従う欠陥検出装置は、正常値とはずれ値とを区別するための判別関数を決定する。すなわち、判別関数は、応答ベクトルの集合内と同集合外との境界を規定する関数である。
このような判別関数を決定する手順としては、以下のようになる。まず、学習画像LNIMGから算出される複数の応答ベクトルRVをクラスタリングする。このクラスタリングされた結果に対して、その距離(distance)や密度分布(density)などに基づいて、1つ以上のクラス(欠陥ではない部分に対応)を定義する。すなわち、各クラスの相違の基準を決定する。このクラスの相違の基準を示す関数が判別関数に相当する。そして、この判別関数に基づいて、何らかの検査画像IMGから算出された応答ベクトルRVが、定義されたいずれのクラスにも属さない場合には、「リジェクトクラス」として分類され、はずれ値、すなわち欠陥と判断される。
本実施の形態に従う欠陥検出装置では、応答ベクトルRVが「正常値」および「はずれ値」のいずれであるかを判別するだけであるので、1つのクラスのみを定義する、いわゆる「1クラス問題」の手法を用いて決定することができる。このような1クラス問題の代表的な手法として、1−クラスSVM(One-Class Support Vector Machine)やSVDD(Support Vector Data Description)が知られている。なお、1−クラスSVMについては、たとえば、文献(Siwei Lyu and Hany Farid, Steganalysis Using Color Wavelet Statistics and One-Class Support Vector Machines, Department of Science, Dartmouth College, Hanover, NH 03755, USA)を参照されたい。
代替的に、このような判別関数の決定手法として、K−NN法、K−Means法、MCD(Minimum Covariance Determinant)法、GMM(Gaussian Mixture Model)法、GP(Gaussian Process)法などを用いることもできる。なお、上述した、はずれ値検出手法については、文献(Sanjay Chawla and Pei Sun, "Clustering and Outlier Detection in High Dimensional Data", School of Information Technologies, University of Sydney NSW, Australia, http://www.dbs.ifi.lmu.de/CODHDD09/[インターネット])を参照されたい。
以上のように、本実施の形態に従う欠陥検出装置は、学習処理において特徴空間上の判別関数(学習結果)を予め決定する。
図6(b)を参照して、欠陥検出処理において、本実施の形態に従う欠陥検出装置は、上記の処理と同様に、検査画像IMGの各評価領域に対応する部分領域セットSETについての応答ベクトルRV’を順次算出し、上記の特徴空間に写像する。そして、本実施の形態に従う欠陥検出装置は、予め決定した判別関数に基づいて、この写像した応答ベクトルRV’が正常値であるかはずれ値であるかを判断する。すなわち、この写像した応答ベクトルRV’が学習画像から算出される応答ベクトルの集合内に存在するか否かが判断される。そして、本実施の形態に従う欠陥検出装置は、応答ベクトルがはずれ値であれば、対応する評価領域において欠陥が存在すると検出する。
以上のように、本実施の形態に従う欠陥検出装置は、評価領域を包含する大きさの異なる複数の部分領域の各々についての評価結果を総合して、対象となる評価領域における欠陥の有無を判断する。そのため、欠陥の大きさと部分領域の大きさとの相対的なバラツキが存在する場合であっても、このバラツキによる欠陥検出の係る影響を抑制でき、欠陥の検出精度をより高めることができる。
(制御構造)
次に、上述のような処理を実現するための制御構造について説明する。
図7は、この発明の実施の形態1に従う欠陥検出装置の制御構造を示す機能ブロック図である。
図7を参照して、本実施の形態に従う欠陥検出装置は、その機能として、画像バッファ部202,222と、抽出部204,214,224と、ベクトル生成部206,216,226と、固有ベクトル算出部208と、固有空間決定部210と、距離算出部218,228と、分類部220と、判断部230と、欠陥検出部232と、学習結果格納部240とを含む。
画像バッファ部202は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される学習画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部202へ学習画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された学習画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
抽出部204と、ベクトル生成部206と、固有ベクトル算出部208と、固有空間決定部210とは、各画像ベクトルとの間の距離を算出するための基準となる固有空間を決定する。なお、固有空間は、部分領域セットSETに含まれる部分領域BLKEVの大きさ(ベクトルサイズ)別にそれぞれ決定される。すなわち、各部分領域セットSETが互いに異なるベクトルサイズをもつm種類の部分領域BLKEV(またはBLK)を含む場合には、m個の固有空間が決定される。
抽出部204は、部分領域セットSETに含まれる複数の部分領域BLKEVのそれぞれについて、画像バッファ部202に一時的に格納される学習画像から、対応するベクトルサイズをもつ部分領域BLKLNをそれぞれ抽出し、このそれぞれ抽出した部分領域BLKLNに対応する学習画像の画像情報をベクトル生成部206へ出力する。言い換えれば、抽出部204は、画像バッファ部202に一時的に格納される学習画像から、ベクトルサイズ別に、学習サンプル(局所領域)を順次切り出す。
ベクトル生成部206は、抽出部204によって順次抽出される学習画像の部分領域BLKLNの画像情報から、各ベクトルサイズjについての学習画像ベクトルx1 LN(j),x2 LN(j),・・・,xR(j) LN(j)を順次生成する(但し、R(j)は各ベクトルサイズjにおける学習サンプル総数である)。
図8は、この発明の実施の形態1に従う欠陥検出装置における画像ベクトルの生成処理を概念的に説明するための図である。
図9は、この発明の実施の形態1に従う欠陥検出装置における部分領域の画像情報を概念的に説明するための図である。
図8を参照して、抽出部204は、画像バッファ部202に格納されている学習画像LNIMGに対して、異なる複数のベクトルサイズ毎に部分領域を順次設定する。図8(a)は、学習画像LNIMGに対して、ベクトルサイズ1の部分領域BLKLN(1)が設定されている状態を示し、同様に、図8(b)および図8(c)は、それぞれ学習画像LNIMGに対して、ベクトルサイズ2の部分領域BLKLN(2)およびベクトルサイズmの部分領域BLKLN(m)が設定されている状態を示す。
図9を参照して、部分領域BLKLNがw画素×h画素の大きさ(ベクトルサイズ)であれば、抽出部204は、設定される部分領域BLKLN(j)の各々について、N(=w×h)個の画像情報ciをベクトル生成部206へ出力する。そして、ベクトル生成部206は、設定される部分領域BLKLNの各々について、以下のような学習画像ベクトルを生成する。
学習画像ベクトルxi LN(j)=[c1,c2,・・・,cN(j)]T
但し、N(j)=w×h,1≦j≦m
なお、各画素がR成分値、G成分値、B成分値からなる場合には、画像情報ciはこれらの成分値を含む3次元の配列となる。そのため、学習画像ベクトルxi LN(j)としては、以下のようになる。
xi LN(j)=[R1,G1,B1,R2,G2,B2,・・・,RN(j),GN(j),BN(j)]T
ベクトル生成部206が生成する各部分領域BLKLN(j)についての学習画像ベクトルxi LN(j)は、N次元ユークリッド空間上の点として定義できる。
再度、図7を参照して、固有ベクトル算出部208は、ベクトル生成部206が順次生成する学習画像ベクトルxi LN(j)の組から、ベクトルサイズ毎に固有ベクトルを算出する。より詳細には、固有ベクトル算出部208は、ベクトル生成部206で生成される学習画像ベクトルxi LN(j)の組(集合)として、ベクトルサイズ別に、以下のような集合ベクトルXLN(j)を算出する。
集合ベクトルXLN(j)=[x1 LN(j),x2 LN(j),・・・,xR(j) LN(j)]
但し、R(j)は、対応のベクトルサイズjにおいて、学習画像LNIMGに設定される部分領域BLKLNの総数(学習サンプル総数)である
そして、固有ベクトル算出部208は、集合ベクトルXLN(j)の分散行列Q(j)=XLN(j)・XLN(j)Tを対角化する固有ベクトルV(j)を算出する。すなわち、固有ベクトル算出部208は、以下の式が成立するように、固有ベクトルV(j)および固有値行列Δ(j)を算出する。
分散行列Q(j)=XLN(j)・XLN(j)T=V(j)・Δ(j)・V(j)T
固有ベクトルV(j)=[e1 (j),e2 (j),・・・,eR (j)]
ここで、基底ベクトルe1 (j),e2 (j),・・・,eR (j)は、以下の条件を満たす。
また、固有値行列Δ(j)は、以下のように固有値λ1 (j),λ2 (j),・・・,λR (j)の対角行列として表される。
なお、上記のような固有ベクトルおよび固有値の演算処理は、KL(Karhunen-Loeve)展開などの公知のアルゴリズムを用いて実現することができる。
ここで、固有ベクトルV(j)を構成する基底ベクトルe1 (j),e2 (j),・・・,eR (j)の各々は、学習画像LNIMGを対応のベクトルサイズでサンプリングした場合に、学習画像LNIMGの全体として現れる性質を代表するものであり、その固有値が大きいものほどその代表する度合いが大きくなる。ここで、固有値λ1 (j)≧λ2 (j)≧・・・≧λR (j)であるので、基底ベクトルe1 (j),e2 (j),・・・,eR (j)の順で学習画像LNIMGの全体として現れる性質を代表する度合いが大きいことを意味する。
そこで、本実施の形態に従う欠陥検出装置では、このような基底ベクトルe1 (j),e2 (j),・・・,eR (j)における物理的な意味を考慮して、その固有値が大きいものから順に所定数の基底ベクトルを用いて、各ベクトルサイズにおける固有空間を決定する。すなわち、固有空間は、固有ベクトル算出部208で生成される基底ベクトルe1 (j),e2 (j),・・・,eR (j)の一部を用いて算出される部分空間である。このように算出される固有空間は、学習画像LNIMGの全体として現れる性質を、基底ベクトルの次元(次数)に応じた程度で反映したものとなる。ここで、学習画像LNIMGにおけるフラクタル性や周期性が支配的であれば、相対的に小さい次元の基底ベクトルで規定される固有空間であっても、学習画像LNIMGの大部分の特性をほぼ近似し得る。
固有空間決定部210は、固有ベクトル算出部208が算出した固有ベクトルV(j)=[e1 (j),e2 (j),・・・,eR (j)]のうち、その固有値が大きいものから所定数の基底ベクトルe1 (j),e2 (j),・・・,edim(j) (j)(dim(j)≦R(j))を用いて、各ベクトルサイズにおける固有空間E(j)を決定する。この固有空間E(j)は、次元dim(j)の超平面となる。なお、次元dim(j)は、学習画像LNIMGに現れる性質に応じて任意に決定できるが、次元dim(j)が高くなるほど、後述する投影ベクトルなどに演算量が増大する。そのため、非特許文献1に開示されるような累積寄与度などに基づいて、適切な次元を決定することが望ましい。そして、固有空間決定部210は、この決定した固有空間E(j)を距離算出部218へ出力するとともに、学習結果格納部240へ格納する。
次に、抽出部214と、ベクトル生成部216と、距離算出部218と、分類部220とは、学習画像LNIMGに設定される各評価領域に対応する部分領域セットSETについての応答ベクトルを算出するとともに、この応答ベクトルの集合に対して、正常値とはずれ値とを区別するための判別関数を決定する。
抽出部214は、学習画像LNIMGに評価領域を順次設定するとともに、各評価領域に対応付けて、異なる複数のベクトルサイズをもつ部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)を順次抽出する。なお、部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)の大きさは、ベクトル生成部206によって生成される固有空間E(j)(但し、1≦j≦m)のそれぞれに対応する部分領域の大きさと一致する。
そして、抽出部214は、この順次抽出する部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)(部分領域セット)に対応する学習画像の画像情報を画像バッファ部202からそれぞれ読出し、これらの読出した画像情報をベクトル生成部216へ出力する。上述したように、部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)は、いずれも対応する評価領域を包含するように設定される。
ここで、部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)は、評価領域(最小の部分領域BLKに相当)を包含するものであればどのように設定してもよい。そのため、図5に示すように、評価領域(部分領域BLKEV(1)に相当)に対して紙面右下方向に順次拡大するように部分領域をそれぞれ設定してもよいし、評価領域を中心として周辺方向に順次拡大するように部分領域を設定してもよい。
図10は、複数の部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)の設定方法の一例を示す図である。図10においては、学習画像LNIMGに設定される評価領域(部分領域BLKEV(1)に相当)を中心として、その周辺方向に拡大するように、部分領域BLKEV(2)〜BLKEV(m)が設定される場合が示される。
また、評価領域は、学習画像LNIMG中の任意の場所に設定することが可能である。
図11は、評価領域に対応する部分領域セットSETの設定方法の一例を示す図である。図11(a)に示すように、抽出部214(図7)は、一例として、学習画像LNIMGに対して、部分領域セットSETを所定間隔だけずらして順次設定する。このとき、部分領域セットSET1と隣接する部分領域セットSET2との一部が互いに重複してもよい。さらに、図11(b)に示すように、部分領域セットSET1と、部分領域セットSET1から互いに所定間隔だけ隔離された部分領域セットSET2とを設定してもよい。さらに、部分領域セットSET1と部分領域セットSET2との間、および部分領域セットSET2と部分領域セットSET3との間のように、隣接する部分領域セットの間隔が一定でなくともよい。
なお、抽出部204および抽出部214(図7)が設定する部分領域セットに含まれる部分領域の大きさは、ユーザなどからの最小/最大ベクトルサイズ設定に従って、決定することができる。すなわち、部分領域セットSETに含まれる最小の部分領域の大きさを最小ベクトルサイズに設定し、同じく最大の部分領域の大きさを最大ベクトルサイズに設定する。さらに、最小ベクトルサイズから最大ベクトルサイズの間で、必要な数の部分領域が設定される。
図12は、部分領域セットに含まれ得る部分領域の上限ベクトルサイズおよび下限ベクトルサイズを示す図である。図12を参照して、部分領域として設定可能なベクトルサイズの下限値としては、学習画像LNIMGを構成する最小単位である1画素となる。一方、部分領域として設定可能なベクトルサイズの上限値としては、学習画像LNIMGの全体、すなわち学習画像LNIMGの画像サイズとなる。
また、部分領域セットの一部が学習画像LNIMGからはみ出る場合には、特定の処理を行なうようにしてもよい。
図13は、部分領域セットSETの一部が学習画像LNIMGからはみ出る場合の処理を説明するための図である。
部分領域セットSETの一部が学習画像LNIMGからはみ出る場合の処理例として、図13(a)に示すように、当該はみ出し部分の画像情報の出力を省略してもよい。図13(a)に示す例では、部分領域BLKEV(m)の一部の領域がはみ出し部分となるので、この部分についての画像情報は出力されない。このような場合には、後述するベクトル生成部216で生成される対応の画像ベクトルの大きさが小さくなるが、画像ベクトルと対応の固有空間との間の距離に基づいて欠陥の有無が評価されるので、この画像ベクトルの大きさの変動による影響はない。
代替的に、図13(b)に示すように、学習画像LNIMGからはみ出る部分について、当該部分に隣接する部分の画像情報に基づいて補間処理を行なってもよい。このような補間処理を行なうことで、その一部が学習画像LNIMGからはみ出る部分領域を含む部分領域セットであっても、すべての部分領域が学習画像LNIMG内に収まる部分領域セットと同様の画像ベクトルの組を生成できる。この補間処理は、はみ出した部分を隣接する部分と同様の性質を有するとして扱うものであるため、ESDDに基づく欠陥検出方法においては、この補間処理による検出精度の低下はほとんど無視できる。
再度、図7を参照して、ベクトル生成部216は、抽出部214によって順次抽出される部分領域セット(部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m))の画像情報から、評価領域画像ベクトルxk EV(1),xk EV(2),・・・,xk EV(m)を順次生成する。なお、kは、学習画像LNIMGに設定される部分領域セット(評価領域)を示すラベル番号である。
ベクトル生成部216における評価領域画像ベクトルの生成処理は、上述したベクトル生成部206における学習画像ベクトルの生成処理と同様であるので、詳細な説明は繰返さない。そして、ベクトル生成部216は、生成した評価領域画像ベクトルを距離算出部218へ出力する。
距離算出部218は、ベクトル生成部216から出力される評価領域画像ベクトルxk EV(1),xk EV(2),・・・,xk EV(m)の各々について、対応するベクトルサイズの固有空間E(j)との間の距離Out1(k),Out2(k),・・・,Outm(k)を順次算出する。
ここで、固有空間Eと画像ベクトルxとの距離の算出方法について一般化して説明する。
図14は、固有空間Eと画像ベクトルxとの距離Outを説明するための図である。
図14を参照して、固有空間Eと画像ベクトルxとの距離Outは、ユークリッド距離として定義され、このユークリッド距離は、画像ベクトルxの固有空間Eへの投影点x’を用いて、以下のような式で表すことができる。
|Out|2=|x−x’|2=(x−x’)T(x−x’)
また、画像ベクトルxの固有空間Eへの投影点x’は、以下のような式で表すことができる。
次に、図15を参照して、固有空間を1次元とした場合について、固有空間E(1)と画像ベクトルxとの間の距離について説明する。
図15は、1次元の固有空間E(1)と画像ベクトルxとの距離Outを説明するための図である。
図15を参照して、原点から投影点x’までの距離Pについて考える。1次元の固有空間E(1)は、基底ベクトルe1で定義されるので、ベクトル集合Pは、画像ベクトルxと基底ベクトルe1とを用いて以下のような式で表すことができる。
P=x・e1
これを、dim次元まで拡張すると、原点から投影点x’までの距離Pの集合は、以下のような式で表すことができる。
P=(P1,P2,・・・,Pdim)T
したがって、任意の成分における原点から投影点x’までの距離は、Pm=x・em(1≦m≦dim)となる。
図15に示すように固有空間(1)が1次元であれば、固有空間(1)(基底ベクトルe1平面)上の投影点x’は、基底ベクトルe1方向にP倍したものと考えられるので、x’=Pe1となる。但し、基底ベクトルe1を単位ベクトルとする。
これを、dim次元まで拡張すると、投影点x’は以下のような式で表すことができる。
再度、固有空間Eと画像ベクトルxとの距離Outについて考える。上述したように、
であるので、
|Out|2=|x−x’|2=(x−x’)T(x−x’)
=(x−EP)T(x−EP) (但し、P=ETx)
=xTx−xTEP−PTETx+PTETEP
ここで、以下の式が成立するので、
|Out|2=xTx−PTP−PTP+PTP
=xTx−PTP
以上のように、固有空間Eと画像ベクトルxとの距離Outは、画像ベクトルxとベクトル集合Pとを用いて、以下のような式で表すことができる。
|Out|2=xTx−PTP
ここで、ベクトル集合Pは、画像ベクトルxを投影点x’へ投影するための投影ベクトルに相当し、PTPは、この投影ベクトルの内積値に相当する。
再度、図7を参照して、距離算出部218は、ベクトル生成部216から出力される評価領域画像ベクトルxk EV(1),xk EV(2),・・・,xk EV(m)の各々について、固有空間決定部210から出力される固有空間E(j)のうち、同一のベクトルサイズをもつ固有空間との間の距離Out1(k),Out2(k),・・・,Outm(k)を順次算出する。
|Outj(k)|2=xk EV(j)T・xk EV(j)−Pk (j)T・Pk (j)
但し、Pk (j)=E(j)T・xk EV(j)
そして、距離算出部218は、このように順次算出する距離Out1(k),Out2(k),・・・,Outm(k)を分類部220へ出力する。
なお、部分領域が互いに重複して設定される領域の固有空間に対する距離は、重複して設定される各部分領域についての距離の和として算出してもよい。
図16は、部分領域が重複して設定される領域の固有空間に対する距離の算出方法を説明するための図である。図16(a)は、2つの部分領域BLKaおよびBLKbが重複する場合を示し、図16(b)は、4つの部分領域BLKa,BLKb,BLKc,BLKdが重複する場合を示す。
図16(a)を参照して、部分領域BLKaと部分領域BLKbとの重複部分についての固有空間に対する距離は、部分領域BLKaの固有空間に対する距離と、部分領域BLKbの固有空間に対する距離との和、もしくはその平均値として算出することができる。
また、図16(b)を参照して、部分領域BLKa,BLKb,BLKc,BLKdの重複部分についての固有空間に対する距離は、部分領域BLKa,BLKb,BLKc,BLKdの固有空間に対するそれぞれの距離の和、もしくはその平均値として算出することができる。
再度、図7を参照して、分類部220は、まず、距離算出部218で算出された各評価領域における距離Out1(k),Out2(k),・・・,Outm(k)を集合して応答ベクトルRV(k)=[Out1(k),Out2(k),・・・,Outm(k)]を順次生成する。そして、分類部220は、順次生成する応答ベクトルRV(k)をm次元の特徴空間に写像する。さらに、分類部220は、このm次元の特徴空間上において、写像されたk個の応答ベクトルRV(k)の集合に対して、正常値とはずれ値とを区別するための判別関数を決定する(図6(a)参照)。
上述したように、本実施の形態に従う分類部220は、はずれ値検出手法(典型的には、1−クラスSVM)の手法を用いて判別関数を決定する。そして、分類部220は、この決定した判別関数を学習結果格納部240へ格納する。
以上のように、学習結果格納部240には、学習結果として、分類部220により決定された判別関数が格納される。これにより、学習処理は完了する。
次に、画像バッファ部222と、抽出部224と、ベクトル生成部226と、距離算出部228と、判断部230と、欠陥検出部232とは、検査画像における欠陥の検出処理を行なう。
画像バッファ部222は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される検査画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部222へ検査画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された検査画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
抽出部224は、画像バッファ部222に一時的に格納される検査画像IMGに評価領域を順次設定するとともに、各評価領域に対応付けて、異なる複数のベクトルサイズをもつ部分領域BLK(1),BLK(2),・・・,BLK(m)を順次抽出する。なお、部分領域BLK(1),BLK(2),・・・,BLK(m)の大きさは、抽出部214によって学習画像LNIMGから順次抽出される部分領域BLK(1),BLK(2),・・・,BLK(m)の大きさと一致する。また、抽出部224が検査画像IMGに設定する評価領域は、抽出部214が学習画像LNIMGに設定する評価領域のいずれかに対応するものとする。
また、抽出部224は、検査画像IMGから順次抽出する評価領域の位置(ラベル情報)を判断部230へ出力する。
ベクトル生成部226は、抽出部224によって順次抽出される部分領域セット(部分領域BLK(1),BLK(2),・・・,BLK(m))の画像情報から、検査画像ベクトルxk (1),xk (2),・・・,xk (m)を生成する。なお、kは、検査画像ベクトルに設定された評価領域が、学習画像LNIMGに設定された部分領域セット(評価領域)のいずれに対応するかを示すラベル番号である。なお、ベクトル生成部226における検査画像ベクトルの生成処理は、上述したベクトル生成部206における学習画像ベクトルの生成処理と同様であるので、詳細な説明は繰返さない。そして、ベクトル生成部226は、生成した検査画像ベクトルを距離算出部228へ出力する。
距離算出部228は、ベクトル生成部226から出力される検査画像ベクトルxk (1),xk (2),・・・,xk (m)の各々について、対応するベクトルサイズの固有空間E(1),E(2),・・・,E(m)との間の距離Out’1(k),Out’2(k),・・・,Out’m(k)を順次算出する。より詳細には、距離算出部228は、ベクトル生成部226から出力される検査画像ベクトルxk (j)と、学習結果格納部240に格納される対応するベクトルサイズの固有空間E(D)とに基づいて、
|Out’j(k)|2=xk (j)T・xk (j)−Pk (j)T・Pk (j)
(但し、Pk (j)=E(D)Txk (j))
の関係式に従って、検査画像ベクトルxk (j)と対応する固有空間E(D)との間の距離Out’j(k)を算出する。この演算に際して、距離算出部228は、学習結果格納部240から対応の固有空間E(D)を読出す。
このように、距離算出部228は、学習結果格納部240に格納された固有空間E(D)を用いて、固有空間E(D)と検査画像ベクトルxk (j)との距離Out’j(k)を算出するので、学習画像LNIMGに基づいて固有空間E(D)が一旦算出された後は、その後に入力される検査画像IMGの各々に対して固有空間E(D)を再度算出する必要はない。そのため、従来に比較して処理時間を短縮することができる。また、基準となる固有空間E(D)が画像中に含まれる欠陥部分の情報を含むことがないので、欠陥検出の精度を高めることができる。
判断部230は、距離算出部228で算出された対象評価領域における距離Out’1(k),Out’2(k),・・・,Out’m(k)を集合して応答ベクトルRV’(k)=[Out’1(k),Out’2(k),・・・,Out’m(k)]を生成する。そして、判断部230は、生成した応答ベクトルRV’(k)をm次元の特徴空間に写像するとともに、学習結果格納部240から予め算出された判別関数を読出し、この写像した応答ベクトルRV’が正常値およびはずれ値のいずれの領域に存在しているかを判断する(図6(b)参照)。そして、判断部230は、応答ベクトルRV’がはずれ値の領域に存在していれば、対象となる評価領域に欠陥が存在すると判断する。一方、判断部230は、応答ベクトルRV’が正常値の領域に存在していれば、対象となる評価領域には欠陥が存在しないと判断する。さらに、欠陥が存在していると判断すると、判断部230は、欠陥位置を特定するための情報を欠陥検出部232へ通知する。
欠陥検出部232は、判断部230からの欠陥位置の特定情報に基づいて、画像バッファ部222に格納されている検査画像IMGを参照し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する。具体的には、欠陥検出部232は、検査画像IMGに対してエッジ検出などを実行する。そして、欠陥検出部232は、検出した欠陥の詳細情報などを欠陥検出結果として出力する。
以上のような機能構成によって、本実施の形態に従う欠陥検出装置は、欠陥を含まない学習画像LNIMGに基づいて検査画像IMGにおける欠陥を検出する。
(処理手順)
図17は、この発明の実施の形態1に従う欠陥検出システム1において対象ワーク2に発生し得る欠陥を検出するための処理手順を示すフローチャートである。
図1および図17を参照して、ユーザは、予め欠陥が発生していないことが分かっている基準ワーク4を搬送機構6上の撮像部8の撮影範囲に配置する(ステップS2)。そして、ユーザは、欠陥検出装置に所定の指令を与えて、この基準ワーク4を撮影した学習画像を取得させる(ステップS4)。この際、照明部10は、所定の光量の光を基準ワークに向けて照射する。なお、上述したように、撮像部8以外の装置によって予め撮影された学習画像を欠陥検出装置に与えるようにしてもよい。
学習画像の取得後、欠陥検出装置は学習処理を実行し(ステップS6)、その学習結果(判別関数や固有空間)を格納する(ステップS8)。なお、学習処理については、後述する。
この学習処理および学習結果の格納が終了すると、ユーザは、対象ワーク2が搬送機構6上の撮像部8の撮影範囲に順次搬送されるように、搬送機構6などを操作する(ステップS10)。撮像部8の撮影範囲に対象ワーク2が搬送されると、欠陥検出装置は、撮像部8によって対象ワーク2を撮影することで検査画像を取得する(ステップS12)。なお、欠陥検出装置は、搬送機構6上などに配置される位置センサ(図示しない)などによって、対象ワーク2の到着を検出する。
検査画像を取得すると、欠陥検出装置は、欠陥検出処理を実行し(ステップS14)、その欠陥検出結果を出力する(ステップS16)。なお、欠陥検出結果は、欠陥検出装置に格納されたり、モニタ102などに出力されたりする。
そして、欠陥検出装置は、終了指示が与えられたか否かを判断する(ステップS18)。この終了指示は、ユーザなどによって与えられ、もしくは欠陥検出対象の対象ワーク2が不存在であることの検知などに連動して与えられる。終了指示が与えられていなければ(ステップS18においてNO)、欠陥検出装置は、ステップS12以降の処理を再度実行する。終了指示が与えられていれば(ステップS18においてYES)、処理は終了する。
図18は、この発明の実施の形態1に従う学習処理の処理手順を示すフローチャートである。また、図19は、この発明の実施の形態1に従う欠陥検出処理の処理手順を示すフローチャートである。なお、図18および図19に示すフローチャートは、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより、図7に示すような機能を実現することで実行される。
(学習処理の処理手順)
図7および図18を参照して、抽出部204として機能するCPU105は、ユーザから、部分領域セットに含まれる部分領域の最小/最大ベクトルサイズおよび部分領域の数の設定を受付ける(ステップS100)。そして、抽出部204として機能するCPU105は、ステップS100におけるユーザからの設定情報に従って、部分領域セットを決定する(ステップS102)。
抽出部204として機能するCPU105は、部分領域セットに含まれる1つのベクトルサイズについて、学習画像LNIMGから部分領域を抽出する(ステップS104)。そして、ベクトル生成部206として機能するCPU105は、抽出された部分領域の画像情報から学習画像ベクトルxi LN(j)を生成する(ステップS106)。さらに、CPU105は、学習画像LNIMGから抽出すべき部分領域BLKLNが未だ残っているか否かを判断する(ステップS108)。学習画像LNIMGから抽出すべき部分領域BLKLNが残っている場合(ステップS108においてYESの場合)には、CPU105は、ステップS104以下の処理を繰返す。
これに対して、学習画像LNIMGから抽出すべき部分領域BLKが残っていない場合(ステップS108においてNOの場合)には、固有ベクトル算出部208として機能するCPU105は、学習画像ベクトルxi LN(j)からなるベクトルの組から固有ベクトルV(j)を算出する(ステップS110)。そして、固有空間決定部210として機能するCPU105は、算出した固有ベクトルV(j)のうち、その固有値が大きいものから順に所定数の固有ベクトルを用いて、当該ベクトルサイズにおける固有空間E(j)を決定する(ステップS112)。そして、CPU105は、決定した固有空間E(j)を学習結果格納部240へ格納する(ステップS114)。
さらに、CPU105は、部分領域セットに含まれるすべてのベクトルサイズの部分領域について固有空間E(j)の決定が完了したか否かを判断する(ステップS116)。部分領域セットに含まれるすべてのベクトルサイズの部分領域について固有空間E(j)の算出が完了していない場合(ステップS116においてNOの場合)には、抽出部204として機能するCPU105は、部分領域セットに含まれる残りのベクトルサイズについて、学習画像LNIMGから部分領域を抽出する(ステップS118)。そして、ステップS106以降の処理を再度実行する。
部分領域セットに含まれるすべてのベクトルサイズの部分領域について抽出を完了している場合(ステップS116においてYESの場合)には、抽出部214として機能するCPU105は、学習画像LNIMGに評価領域を設定(ステップS120)し、その評価領域について、異なる複数のベクトルサイズをもつ部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)を順次抽出する(ステップS122)。そして、ベクトル生成部216として機能するCPU105は、抽出された部分領域BLKEV(1),BLKEV(2),・・・,BLKEV(m)の画像情報から、評価領域画像ベクトルxk EV(1),xk EV(2),・・・,xk EV(m)を生成する(ステップS124)。
続いて、距離算出部218として機能するCPU105は、評価領域画像ベクトルxk EV(1),xk EV(2),・・・,xk EV(m)の各々について、対応するベクトルサイズの固有空間E(1),E(1),・・・,E(m)との間の距離Out1(k),Out2(k),・・・,Outm(k)を算出する(ステップS126)。そして、距離算出部218として機能するCPU105は、算出した距離Out1(k),Out2(k),・・・,Outm(k)を集合して応答ベクトルRV(k)=[Out1(k),Out2(k),・・・,Outm(k)]を生成する(ステップS128)。
さらに、CPU105は、学習画像LNIMGに評価領域を設定すべき領域が未だ残っているか否かを判断する(ステップS130)。学習画像LNIMGに評価領域を設定すべき領域が残っている場合(ステップS130においてYESの場合)には、CPU105は、ステップS120以下の処理を繰返す。
これに対して、学習画像LNIMGに評価領域を設定すべき領域が残っていない場合(ステップS130においてNOの場合)には、分類部220として機能するCPU105は、ステップS126において生成した応答ベクトルRV(k)の集合に対して、正常値とはずれ値とを区別するための判別関数を決定し(ステップS132)、この決定した判別関数を学習結果格納部240へ格納する(ステップS134)。そして、処理はステップS8へ戻る。
(欠陥検査処理の処理手順)
図7および図19を参照して、抽出部224として機能するCPU105は、検査画像IMGに評価領域を設定(ステップS200)し、その評価領域について、異なる複数のベクトルサイズをもつ部分領域BLK(1),BLK(2),・・・,BLK(m)を順次抽出する(ステップS202)。そして、ベクトル生成部226として機能するCPU105は、抽出された部分領域BLK(1),BLK(2),・・・,BLK(m)の画像情報から、検査画像ベクトルxk (1),xk (2),・・・,xk (m)を生成する(ステップS204)。
続いて、距離算出部228として機能するCPU105は、学習結果格納部240から、検査画像ベクトルxk (1),xk (2),・・・,xk (m)にそれぞれ対応する固有空間E(D)を読出す(ステップS206)。そして、距離算出部228として機能するCPU105は、検査画像ベクトルxk (1),xk (2),・・・,xk (m)と、これらの読出した内積値Pk (j)T・Pk (j)とに基づいて、対応するベクトルサイズの固有空間E(j)との距離Out’1(k),Out’2(k),・・・,Out’m(k)を算出する(ステップS208)。
続いて、判断部230として機能するCPU105は、算出した距離Out’1(k),Out’2(k),・・・,Out’m(k)を集合して応答ベクトルRV’(k)=[Out’1(k),Out’2(k),・・・,Out’m(k)]を生成する(ステップS210)。そして、判断部230として機能するCPU105は、学習結果格納部240から判別関数を読出し(ステップS212)、読出した判別関数に基づいて、算出した応答ベクトルRV’(k)が正常値およびはずれ値のいずれの領域に存在しているかを判断する(ステップS214)。そして、判断部230として機能するCPU105は、対象の評価領域のラベル情報に対応付けて、検査画像IMGにおける欠陥有無の状態をマッピングする(ステップS216)。すなわち、CPU105は、検査画像IMGにおける欠陥の位置を特定する。
その後、CPU105は、検査画像IMGに評価領域を設定すべき領域が未だ残っているか否かを判断する(ステップS218)。検査画像IMGに評価領域を設定すべき領域が残っている場合(ステップS218においてYESの場合)には、CPU105は、ステップS200以下の処理を繰返す。
これに対して、検査画像IMGに評価領域を設定すべき領域が残っていない場合(ステップS218においてNOの場合)には、判断部230として機能するCPU105は、検査画像IMGに対して欠陥の位置と特定された箇所に対して、エッジ検出などを実行し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する(ステップS220)。そして、処理はステップS16へ戻る。
(本実施の形態による作用効果)
この発明の実施の形態1によれば、検査画像の評価領域に対して互いに大きさの異なる複数の部分領域が設定されとともに、各部分領域について、その画像情報から生成される画像ベクトルと対応の固有空間との間の距離を算出する。さらに、各部分領域についての大きさ毎の距離を要素とする応答ベクトルを生成し、学習処理によって予め定められた判別関数を参照して、この応答ベクトルを評価することで、評価領域における欠陥の有無を判断する。このように、評価領域を互いに大きさの異なる複数の部分領域の単位におけるそれぞれの評価結果を総合した上で、欠陥の有無を判断するので、検査画像に発生し得る欠陥の大きさのバラツキによる影響を抑制し、欠陥の検出精度をより高めることができる。
また、この発明の実施の形態1によれば、予め欠陥を含まない学習画像に基づいて、画像ベクトルとの間の距離を算出するための基準となる固有空間が決定される。そのため、欠陥部分の影響を排除した固有空間を決定することができるので、検査画像に対する欠陥の検出精度をより高めることができる。
また、この発明の実施の形態1によれば、欠陥検出処理時における画像ベクトルと固有空間との間の距離は、学習処理時に算出された投影ベクトルの内積値を用いて算出される。そのため、欠陥検出処理における距離算出に伴う演算量を低減できるので、より高速な欠陥検出処理を実現できる。
[実施の形態2]
上述の実施の形態1に従う欠陥検出処理によれば、検査画像に発生し得る欠陥の大きさのバラツキによる影響を抑制し、欠陥の検出精度をより高めることができる。しかしながら、検査画像が周期的なテクスチャをもつ場合などには、誤差を生じやすい。
具体的には、検査画像から切り出すサンプルの位置が学習画像と全く同じ位置であっても、そこの表れている周期的なテクスチャが全く同一であるとは限らない。そのため、切り出した評価領域(部分領域セットSET)に表れる周期的な濃淡模様に空間的な位相差が生じ、その結果、欠陥がなくても固有空間に対する距離が増大し得る。そこで、本実施の形態では、周期的な濃淡模様を含む検査画像に対しても、正確に欠陥検出を行なうことができる構成および処理について例示する。
より具体的には、検査画像IMGに対する評価領域の配置パターンの開始位置を適切に決定するために、各検査画像IMGにおける基準位置を検索する。特に、学習画像LNIMGおよび検査画像IMGが周期的な濃淡模様をもつ場合には、この配置パターンをいずれの位置に配置するかによって、その欠陥の検出精度が大きく影響される。なお、周期的な濃淡模様をもつ画像とは、同一の模様(テクスチャ)が所定周期(周期一定)で連続的に表れるような画像を意味する。典型的には、後述する図21,図22,図24に示すような幾何学的模様などを含む画像を意味する。
ここで、学習画像LNIMGと検査画像IMGとに生じる周期的な濃淡模様の位置(空間的な位相)が全く同一であるとは限らず、また生産ラインの搬送状態などによっても、撮像部8によって撮影された画像に表れる周期的な濃淡模様にずれが生じる。このような場合には、当該配置パターンのある位置に存在する評価領域に対応するある部分領域BLKLNおよびBLKについて見れば、学習画像LNIMGおよび検査画像IMGからそれぞれ生成された画像ベクトルに表れる特徴量は互いに異なったものとなる。そこで、検査画像IMGに対する欠陥検出の実行前に、学習画像LNIMGの所定の検索方向に沿って、所定の大きさをもつ部分領域BLKSを順次設定していき、各位置における部分領域BLKSの画像情報から生成される画像ベクトルの固有空間に対する距離を順次算出する。そして、この固有空間に対する距離の検索方向についての変化に基づいて、検査画像IMGにおける対応する基準位置を決定する。そして、この決定した基準位置に基づく配置パターンに従って、検査画像IMGに対して評価領域(すなわち、対応するBLK(1),BLK(2),・・・,BLK(m))を設定し、欠陥の有無を検出する。
(制御構造)
図20は、この発明の実施の形態2に従う欠陥検出装置の制御構造を示す機能ブロック図である。
図20を参照して、本実施の形態に従う欠陥検出装置は、図7に示す実施の形態1に従う欠陥検出装置において、領域設定部244と、ベクトル生成部246と、距離算出部248と、基準位置決定部250と、検索領域受付部256とを加えたものに相当する。その他の部位については、図7を用いて説明したので、詳細な説明は繰返さない。
まず、対象ワーク2が周期的なテクスチャを有し、学習画像LNIMGおよび検査画像IMGに周期的な濃淡模様が表れている場合について考える。このような場合には、検査画像IMGに設定する評価領域(すなわち、対応するBLKEV(1),BLKEV(2),・・・,BLKEV(m)、または、BLK(1),BLK(2),・・・,BLK(m))の配置パターンを、検査画像IMGに表れる周期的な濃淡模様に応じて適切に設定する必要がある。
以下、このような周期的な濃淡模様が表れている学習画像LNIMGおよび検査画像IMGに対して、本実施の形態に従う欠陥検出方法を適用する場合に、誤差が発生する原因について説明する。
図21は、周期的なテクスチャを有する対象ワーク2の一例を示す図である。たとえば、図21(a)に示す対象ワーク2と、図21(b)に示す対象ワーク2とを比較すると、各対象ワーク2における周期的な濃淡模様の相対的な開始位置が異なっていることがわかる。具体的には、当該濃淡模様が全体的に紙面上下方向にずれていることがわかる。このように、同一の製造ラインで製造される対象ワークであっても、その表面に現れるテクスチャが全く同一の位置に現れるとは限らない。
図22は、検査画像IMGに表れる周期的な濃淡模様の位置がばらつく場合において、抽出される部分領域BLKの一例を示す図である。図22(a)は、検査画像IMG全体の一例を示し、図22(b)および図22(c)は、それぞれ抽出される部分領域BLKの一例を示す。
図22(a)に示すような、全体的に周期的な濃淡模様を有する検査画像IMGにおいて、周期的な濃淡模様の位置がばらついてしまうと、検査画像IMGにおける対応する座標位置を基準として評価領域を設定したとしても、抽出された部分領域BLK(1),BLK(2),・・・,BLK(m)に含まれる特徴は異なったものとなる。たとえば、検査画像IMGの左上の頂点を基準として評価領域を設定したとしても、当該検査画像IMGの周期的な濃淡模様の位置がばらついてしまうと、図22(b)および図22(c)に示すように、その評価領域に対応する同一サイズの部分領域BLKEV(m)とBLK(m)との間の特徴は互いに異なったものとなる。
図23は、検査画像IMGに設定された評価領域に対応する代表的な部分領域BLKについての固有空間に対する距離を視覚的に示した図の一例である。図23(a)は、検査画像IMGにおける基準位置がずれている場合を示し、図23(b)は、検査画像IMGにおける基準位置が学習画像LNIMGの基準位置と対応している場合を示す。なお、図23においては、濃度が高い(黒い)ほど、固有空間に対する距離が小さいことを示し、明るい(白い)ほど、固有空間に対する距離が大きいことを示す。
図23(a)を参照して、検査画像IMGの基準位置がずれている場合には、このずれによって周期的な誤差が発生していることがわかる。これに対して、図23(b)に示すように、検査画像IMGの基準位置が学習画像LNIMGの基準位置と対応している場合には、欠陥DEFを含む部分領域BLKを除いて、各部分領域BLKについての固有空間
に対する距離が小さく、かつ均一化していることがわかる。
そこで、本実施の形態に従う欠陥画像装置は、検査画像IMGに対して、学習画像LNIMGに設定される評価領域に対応する基準位置を検索し、この検索した基準位置を基準にして、欠陥検出の対象とする評価領域を設定する。すなわち、学習画像LNIMGおよび検査画像IMG内での相対的な位置を共通化するのではなく、学習画像LNIMGの基準点における周期的な濃淡模様の部分と対応付けて、検査画像IMG内の基準点を検索するものである。これにより、学習画像LNIMGに表れる周期的な濃淡模様と検査画像IMGに表れる濃淡模様との間にずれがあっても、正確な欠陥検出を実現できる。
再度、図20を参照して、このような基準位置の検索処理は、領域設定部244と、ベクトル生成部246と、距離算出部248と、基準位置決定部250と、検索領域受付部256とによって実現される。
図24は、検査画像IMGにおける基準位置の検索処理を説明するための図である。図24(a)は、学習画像LNIMGに設定される評価領域(但し、簡略化のため、最小サイズの部分領域BLKEV(1)として表現)を示し、図24(b)は、検査画像IMGにおける基準位置を検索するための部分領域BLKSを示す。
図24(a)を参照して、たとえば、学習画像LNIMGには、所定の基準位置(たとえば、左上頂点)を基準とする所定の配置パターンに従って、評価領域が規則的に複数設定される。この複数設定された評価領域に対応する部分領域BLK(1),BLK(2),・・・,BLK(m)の全部もしくは一部に基づいて、固有空間が算出される。
一方、図24(b)を参照して、検査画像IMGに対して設定される部分領域BLKSを所定の検索方向に沿って、順次走査するとともに、各部分領域BLKSに対応する画像ベクトル(以下、「検索画像ベクトル」とも称す)と固有空間との間の距離を順次算出する。なお、便宜上、検査画像IMGの紙面横方向をX方向と称し、同じく紙面縦方向をY方向と称す。さらに、この検索方向についての固有空間に対する距離の変化に基づいて、検査画像IMGにおける基準位置が決定される。
検査画像IMGにおける基準位置を検索するためには、検索方向に沿った部分領域BLKSの長さより短い間隔で部分領域BLKSを順次設定する必要があり、検査画像IMGを構成する画素(ピクセル)単位の間隔で部分領域BLKSを設定することがより好ましい。このように、部分領域BLKSを1画素単位で移動させることによって、より正確に検査画像IMGにおける基準位置を決定することができる。
また、部分領域BLKSを検査画像IMGの全体に亘って走査することで、検査画像IMGにおける基準位置を検索することができるが、そのために過剰な処理時間を要する場合も考えられる。そこで、予め定められた検索領域SRC内において、部分領域BLKSを走査することが好ましい。なお、X方向単独またはY方向単独、ないしX・Y方向同時のいずれの方法で部分領域BLKSの走査を行なってよい。
図25は、検査画像IMGにおける基準位置を検索するための検索領域SRCの決定方法を説明するための図である。図25(a)は、濃淡模様の周期が部分領域BLKSの大きさより短い場合を示し、図25(b)は、濃淡模様の周期が部分領域BLKSの大きさより長い場合を示す。図26は、濃淡模様の周期について説明するための図である。
図25(a)を参照して、濃淡模様の周期が部分領域BLKSの大きさより短い場合、
すなわち1つの部分領域BLKS内に1周期以上の濃淡模様が存在する場合には、検索領域SRCは、最大で部分領域BLKSの2×2の大きさとすればよい。これは、部分領域BLKSを濃淡模様の1周期分の距離に亘って走査することで、基準位置を決定することができるためである。
一方、図25(b)を参照して、濃淡模様の周期が部分領域BLKSの大きさより長い場合、すなわち1つの部分領域BLKSが1周期分の濃淡模様を含まない場合には、当該濃淡模様の周期に応じて、検索領域SRCを決定する必要がある。
図26を参照して、本明細書において、濃淡模様の周期とは、隣接する同一模様(テクスチャ)の間の距離を意味する。濃淡模様の周期としては、基本的に、X方向およびY方向のそれぞれについて規定することができる。そして、これらのX方向に1周期分以上およびY方向に1周期分以上の長さをもつ検索領域SRCを設定することが好ましい。
このような検索領域SRCは、欠陥を含まない学習画像LNIMGに基づいて固有空間を算出する際に、ユーザが、学習画像LNIMGに表れる周期的な濃淡模様を確認した上で、予め決定してもよい。このような場合には、検索領域受付部256(図20)がユーザから検索領域SRCの大きさを受付け、その値を学習結果格納部240へ格納する。あるいは、学習画像LNIMGに対して、公知のパターン抽出処理などを行なって、このような濃淡模様の周期を算出した上で、検索領域SRCを算出してもよい。このような場合には、検索領域受付部256(図20)が、ユーザに検索領域SRCとすべき領域の候補をガイドするようにしてもよい。
再度、図20を参照して、領域設定部244は、画像バッファ部222に一時的に格納される検査画像IMGに対して、検査画像IMGの所定の検索方向に従って、部分領域BLKSを順次設定する。領域設定部244は、図24(b)に示すように、学習結果格納部240に格納された検索領域SRCに従って、部分領域BLKSを順次設定する。
そして、領域設定部244は、この設定した各部分領域BLKSに対応する検査画像IMGの画像情報をベクトル生成部246へ出力する。言い換えれば、領域設定部244は、画像バッファ部222に一時的に格納される検査画像から所定の大きさの検索サンプル(局所領域)を順次切り出す。
ベクトル生成部246は、領域設定部244によって順次抽出される検査画像IMGの部分領域BLKSの画像情報から検索画像ベクトルxS iを順次生成する。なお、ベクトル生成部246における検索画像ベクトルxS iの生成処理は、ベクトル生成部206および216における学習画像ベクトルxLN iの生成処理、ならびにベクトル生成部226における検査画像ベクトルxiの生成処理と同様であるので、詳細な説明は繰返さない。
距離算出部248は、ベクトル生成部246から出力される検索画像ベクトルxS iと、学習結果格納部240に予め格納される固有空間E(D)とに基づいて、固有空間E(D)と検索画像ベクトルxS iとの距離ΔxS iを算出する。なお、この固有空間E(D)と検索画像ベクトルxS iとの距離ΔxS iを算出処理は、上述の距離算出部218における、固有空間E(D)と検査画像ベクトルxiとの距離Δxiを算出処理と同様であるので、詳細な説明は繰返さない。
基準位置決定部250は、距離算出部248において順次算出される距離ΔxS iの検索方向についての変化に基づいて、検査画像IMGにおいて、学習画像LNIMGの基準位置に対応する基準位置を決定する。
図27は、距離算出部248において順次算出される距離ΔxS iの一例を示す図である。図27(a)は、検査画像IMGをX方向に検索した場合の変化の一例を示し、図27(b)は、検査画像IMGをY方向に検索した場合の変化の一例を示す。
図27(a)および図27(b)を参照して、基準位置決定部250は、検査画像IMGに設定される部分領域BLKSの位置に応じて変化する距離ΔxS iに対して、極小点となる位置を基準位置の候補位置として抽出する。なお、基準位置の候補位置として抽出する際には、その距離ΔxS iが所定のしきい値Th以下であることを条件にすることが好ましい。このしきい値Thは、距離ΔxS iの全体平均値などに応じて決定することができる。
基準位置を検索する方法としては、検査画像IMGのX方向またはY方向の一方を固定した上で、他方の軸に沿って部分領域BLKSを順次設定する方法や、X方向およびY方向を独立に変化させて部分領域BLKSを順次設定する方法を採用することができる。
図28は、検査画像IMGに対して、抽出された候補点の一例を示す図である。
図28を参照して、上記のような方法によれば、X方向およびY方向における候補位置を取得することができるので、これらの候補位置に基づいて、検査画像IMGに対して複数の候補点が算出できる。ここで、候補点は、X方向の候補位置とY方向の候補位置とによって、一意に決定される座標である。
基準位置決定部250は、複数の候補点のうち、1つの候補点を検査画像IMGにおける基準位置として決定する。代表的に、基準位置決定部250は、学習画像LNIMGの基準位置に対応する原点からの距離Disが最も小さい候補点を基準位置として決定する。すなわち、候補点の座標を(x,y)とすると、原点からの距離Dis=(x2+y2)1/2が最小となる候補点を基準位置として決定する。
これは、一般的に、対象ワーク2に表れる周期的な濃淡模様のずれは周期単位で現れるため、学習画像LNIMGに現れる周期的な濃淡模様に対するずれが最小となる位置を選択することで、より適切な基準位置を決定できるからである。
このように基準位置決定部250で決定された基準位置は、抽出部224へ出力され、検査画像IMGに対する欠陥検出処理が実行される。
図29は、抽出部224によって検査画像IMGに対して設定される評価領域(但し、簡略化のため、最小サイズの部分領域BLK(1)として表現)を説明するための図である。
図29を参照して、抽出部224は、基準位置決定部250によって決定された基準位置に基づいて、当該基準位置を基準とする配置パターンに従って、検査画像IMGに対して評価領域を順次設定する。
図24(a)と図29とを比較すると、検査画像IMGの全体枠に対して、評価領域を設定するための配置パターンがはみ出して配置されていることがわかる。しかしながら、検査画像IMGに現れる濃淡模様に対するこの配置パターンの相対的な位置関係は、学習画像LNIMGに現れる濃淡模様に対する、評価領域を設定するための配置パターンの相対的な位置関係とほぼ一致していることがわかる。すなわち、たとえば、学習画像LNIMGの基準位置に隣接する評価領域に囲まれた濃淡模様は、検査画像IMGの基準位置に隣接する評価領域に囲まれた濃淡模様と同様であることがわかる。このように、学習画像LNIMGと検査画像IMGとの間において、対応する一対の評価領域に対応するそれぞれの部分領域に現れる濃淡模様を互いに一致させることで、精度の高い誤差検出を行なうことができる。
(バリエーション1)
上述の説明では、予め定められた検索領域SRCに対して、部分領域BLKSを所定の間隔(好ましくは、1画素単位)で順次設定する構成について説明したが、部分領域BLKSを設定する間隔を複数段階に分けてもよい。すなわち、相対的に大きな間隔で基準位置を大まかに検索した後、相対的に小さな間隔で基準位置をより細かく検索してもよい。
具体的には、検査画像IMGに対して、部分領域BLKSを相対的に大きな間隔(たとえば、8画素単位)で順次設定して、上記と同様の方法によって候補点を検索する。そして、この候補点の周辺に検索領域を限定した上で、当該検索画像に対して相対的に小さな間隔(たとえば、1画素単位)で部分領域BLKSを順次設定して、上記と同様の方法によって候補点をさらに緻密に検索する。
このような方法によれば、部分領域BLKSの設定および固有空間に対する距離の算出を効率化できるので、基準位置の検索処理を高速化できる。
なお、上記のような方法を採用する場合には、検索領域SRCを予め設定しなくともよい。
(バリエーション2)
上述の説明では、検査画像IMG内の周期的な濃淡模様に対して、部分領域BLKSを順次設定する構成について説明したが、部分領域BLKSを検査画像IMGからはみ出るように設定してもよい。
図30は、設定された部分領域BLKSの一部が検査画像IMGからはみ出る場合の処理を説明するための図である。
図30を参照して、検査画像IMGからはみ出る部分について、隣接する部分の画像情報に基づいて補間処理を行なってもよい。このような補間処理については、文献(天野敏之・佐藤幸男、「kBPLP法を用いた高次元非線形投影による画像補間」、電子情報通信学会論文誌 D−II Vol.J86−D−II No.4 pp.525−534、2003年4月)などを参照されたい。
このような補間処理を行なうことで、その一部が検査画像IMGからはみ出る部分領域BLKSが存在する場合であっても、基準位置を検索することができる。
(比較例)
従来から、検査画像から欠陥を検出する方法として、画像を構成する画素の輝度値で表される空間周波数に基づいて処理を行なう方法が知られている。しかしながら、このような方法では、本発明の対象とする周期的な濃淡模様をもつ検査画像から欠陥を検出することは難しい。
図31は、対象とする周期的な濃淡模様をもつ検査画像の一例を示す図である。
図32は、図31に示す検査画像に対して、従来の方法および本実施の形態に従う方法を適用した場合の結果を示す図である。
図31を参照して、従来の方法および本実施の形態に従う方法を、紙面横方向および紙面縦方向に沿って周期的な濃淡模様をもつ検査画像に適用する場合を考える。
図32(a)は、図31のサンプル領域におけるR成分値、G成分値、B成分値を、その位置に対応付けてプロットしたグラフを示す。このように、各画素の成分からなる空間周波数で評価した場合には、検査画像が周期的な濃淡模様をもっていても、各成分値における差分値や正・負の値には、ばらつきが生じる。そのため、基準にすべき色成分を決定したり、そのしきい値を決定したりすることは非常に困難である。
これに対して、図32(b)に示すように、学習画像LNIMGに基づいて固有空間を予め算出した上、各部分領域における当該固有空間からの距離を用いて評価することによって、変数を1次元化できるとともに、ノイズを除去した上で、欠陥検出を行なうことができる。そのため、本発明に係る方法は、検査画像に表れる周期的な濃淡模様の色成分などに影響されることなく、汎用的に適用することができる。
(処理手順)
図33は、この発明の実施の形態2に従う欠陥検出システム1において対象ワーク2に発生し得る欠陥を検出するための処理手順を示すフローチャートである。
図33に示すフローチャートは、図7に示すフローチャートにおいて、ステップS7およびS13を追加したものに相当する。同一の処理には、図7と同一のステップ番号を付しており、各ステップの処理については上述したので、詳細な説明は繰返さない。
図20および図33を参照して、学習処理(ステップS6)の実行後、欠陥検出装置はユーザから検索領域SRCを受付ける(ステップS7)。ユーザは、撮影された学習画像を確認しながら、キーボード103やマウス104を操作して、検索領域SRCを設定する。
撮像部8によって対象ワーク2を撮影することで検査画像を取得(ステップS12)した後、欠陥検出装置は、まず基準位置検索処理を実行する(ステップS13)。その上で、欠陥検出装置は、欠陥検出処理を実行する(ステップS14)。そして、欠陥検出装置は、その欠陥検出結果を出力する(ステップS16)。
図34は、この発明の実施の形態2に従う基準位置検索処理の処理手順を示すフローチャートである。なお、図34に示すフローチャートは、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより、図20に示すような機能を実現することで実行される。
図20および図34を参照して、領域設定部244として機能するCPU105は、学習値格納部212から検索領域SRCを読出す(ステップS300)。そして、領域設定部244として機能するCPU105は、検査画像IMGに対して、所定の検索方向に従って、検索領域SRC内に部分領域BLKSを順次設定する(ステップS302)。そして、ベクトル生成部246として機能するCPU105は、各部分領域BLKSの画像情報から検索画像ベクトルxS iを生成する(ステップS304)。距離算出部248として機能するCPU105は、学習値格納部212から、固有空間E(D)を読出す(ステップS306)。そして、CPU105は、検索画像ベクトルxS iと、読出した固有空間E(D)とに基づいて、固有空間E(D)から検索画像ベクトルxS iまでの距離ΔxS iを算出する(ステップS308)。さらに、CPU105は、検索領域SRC内に抽出すべき部分領域BLKSが残っているか否かを判断する(ステップS310)。検索領域SRC内に抽出すべき部分領域BLKSが残っている場合(ステップS310においてYESの場合)には、CPU105は、ステップS302以下の処理を繰返す。
検索領域SRC内に抽出すべき部分領域BLKSが残っていない場合(ステップS310においてNOの場合)には、基準位置決定部250として機能するCPU105は、距離ΔxS iの検索方向のそれぞれについて極小点となる位置を、候補位置として抽出する(ステップS312)とともに、抽出した極小点のうち、所定のしきい値Thを超えるものを除外する(ステップS314)。さらに、CPU105は、それぞれの検索方向における候補位置に基づいて、検査画像IMGにおける候補点を算出し(ステップS316)、これらの候補点のうち、学習画像LNIMGの基準位置に対応する原点からの距離が最も小さい候補点を基準位置として決定する(ステップS318)。
(本実施の形態による作用効果)
この発明の実施の形態2によれば、検査画像に評価領域を設定するに際して、所定の検索方向に沿って、固有空間に対する距離が極小値をとるような位置を検索する。そして、この検索した位置に基づいて、評価領域を設定するための配置パターンを位置決めする。これにより、学習画像および検査画像において周期的な濃淡模様を含む場合であっても、学習画像および検査画像において、周期的な濃淡模様に対する配置パターンの相対的な開始位置を互いに一致させることができる。よって、周期的な濃淡模様を含む検査画像
に対しても、欠陥検出の精度を高めることができる。
[実施の形態2の変形例]
上述の実施の形態2においては、学習画像LNIMGおよび検査画像IMGが周期的な濃淡模様をもつ場合に、評価領域の配置パターンを適切化する構成について例示した。ところで、実際の生産ラインなどにおいては、生産効率を高めるために、1つの基材から複数の製品を製造するようなプロセス、たとえば、液晶パネルや半導体基板などの製造プロセスが知られている。このようなプロセスでは、各製品は同一のサイズを有しているので、1つの基材上には、切り離し前の製品が周期的に配列されている。このような場合には、1つの製品の大きさに対応する部分領域セットを定めて、画像ベクトルおよび応答ベクトルを算出することが望ましい。そこで、本変形例においては、このようなアプリケーションに適用が容易に構成について、以下説明する。
図35は、この発明の実施の形態2の変形例に従う対象ワークを撮像して得られた画像SMPの一例を示す図である。図35には、典型例として、1つの基材上に複数の回路基板が形成されている状態を示す。
本変形例に従う欠陥検出装置は、図35(a)に示すような対象ワークに対して、画像ベクトルを生成するための部分領域のサイズおよび位置を自動的に決定することが可能である。より具体的には、対象ワークに含まれる1つの回路基板の少なくとも一部を表わすパターン(テンプレートパターン)MDLを予め登録しておき、画像SMP上でこの登録されたパターンMDLと一致する複数の位置を特定する。このパターンMDLに基づいて特定された位置の数は、検査対象物に含まれる製品の数と一致し、その位置周期は、検査対象物に含まれる製品の配置周期と一致する。したがって、図35(b)に示すように、登録されたパターンと一致する位置同士の間隔を計測することで、各製品に対して設定すべき部分領域BLKのサイズ(X方向長さLxおよびY方向長さLy)を決定することができる。以下、図36に示すフローチャートを用いて、より詳細な処理手順について説明する。
図36は、この発明の実施の形態2の変形例に従う欠陥検出システムにおいて周期性を有する対象ワークについての画像ベクトルを生成するための処理手順を示すフローチャートである。なお、図36に示すフローチャートは、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。
図36を参照して、CPU105は、ユーザが指定するテンプレートパターンを受付ける(ステップS400)。すなわち、ユーザは、対象ワークに周期的に現れる1つの製品などの一部の画像をモデル画像を示すパターンMDLとして登録する。このパターンMDLは、基準にすべきワークを撮影して得られた画像データから切り出してもよいし、あるいは、カタログなどの画像データを外部入力してもよい。さらに、CPU105は、ユーザが指定する対象ワークに周期的に現れる周期サイズ(X方向およびY方向の値)を受付ける(ステップS402)。すなわち、ユーザは、対象ワークに周期的に現れる1つの製品などのおおよそのサイズを入力する。このサイズは、後述するサーチ処理に要する時間を短縮するためのものである。
これらの入力が終了すると、CPU105は、対象ワークを撮像して得られた画像データに対して、先に登録されたパターンMDLと一致する位置を探すための粗検索処理を実行する(ステップS404)。この粗検索処理においては、パターンMDLと対象の領域との間の特徴量、典型的には、相関値が相対的に高い位置を検索する(正規化相関マッチング処理)。この結果、相関値が相対的に高い位置にパターンMDLが位置決めされる。
続いて、CPU105は、各位置決めされた部分を基準として、検索領域SRCをそれぞれ設定する(ステップS406)。なお、この検索領域SRCは、ステップS402において入力された周期サイズに応じた範囲で設定される。続いて、CPU105は、各検索領域SRCにおいて、パターンMDLと一致する位置をより詳細に探すための微検索処理を実行する(ステップS408)。
パターンMDLと一致する位置がそれぞれ特定されると、CPU105は、それぞれ特定されたパターンMDLと一致する位置の間の間隔(図35(a)に示すX方向長さLxおよびY方向長さLy)を計測する(ステップS410)。続いて、CPU105は、計測したX方向長さLxおよびY方向長さLyをもつ部分領域BLKを、ステップS408において特定されたパターンMDLと一致する位置に対応付けて、設定する(ステップS412)。さらに、CPU105は、対象ワーク上に設定した部分領域BLKの各々について、画像情報を抽出するとともに、抽出した画像情報に基づいて画像ベクトルを生成する(ステップS414)。この生成された画像ベクトルに基づいて、応答ベクトルなどが算出される。
上述のような処理手順は、学習画像LNIMGおよび検査画像IMGのそれぞれについての画像ベクトルおよび応答ベクトルの生成の手順の一部として組入れられる。
(本実施の形態の変形例による作用効果)
この発明の実施の形態2の変形例によれば、周期性をもつ構造物に対して、画像ベクトルおよび応答ベクトルをより迅速かつ確実に生成することができる。そのため、1つの基材から複数の製品を製造するようなプロセスにおいても、確実に欠陥検出を行なうことができる。
[実施の形態3]
上述の図1では、対象ワーク2として電子部品やプラスチック部品などの相対的に小型のものを検査対象とする構成について例示したが、本発明に係る欠陥検出装置は、相対的に大型のものを検査対象とすることもできる。
図37は、この発明の実施の形態3に従う欠陥検出装置を含む欠陥検出システム1#を示す概略図である。
図37を参照して、欠陥検出システム1#は、一例として液晶パネルなどの相対的に大型の板状の対象ワーク2に対して欠陥を検査対象とする場合の構成を示す。欠陥検出システム1#は、搬送架台20と、搬送架台20上を搬送方向にスライド可能な搬送台22と、撮像部14と、撮像部14を対象ワーク2の搬送方向と直交する方向に移動可能な撮像部駆動機構24とを備える。対象ワーク2は、搬送台22の上に配置されて搬送方向に沿って移動する。撮像部14は、搬送台22によって移動する対象ワーク2を搬送方向に所定間隔毎に撮影するとともに、撮像部駆動機構24によって移動されることにより、対象ワーク2を搬送方向と直交する方向にも所定間隔毎(但し、搬送方向の所定間隔とは異なる)に撮影する。
この撮像部14で撮影された画像は、インターフェイス16を介して、欠陥検出装置を実現する制御装置100#へ伝送される。なお、撮像部14には、照明部が一体的に組込まれていてもよく、この場合には、インターフェイス16からこの照明部を駆動するための電源などが供給される。
制御装置100#は、本体101#と、モニタ102#と、キーボード103#などをさらに含む。本体101#、モニタ102#、およびキーボード103#は、それぞれ図1に示すコンピュータ100の本体101、モニタ102、およびキーボード103と同様の機能を実現する。
特に、本実施の形態に従う欠陥検出システム1#では、撮像部14の撮影範囲内に対象ワーク2のすべてを収めることができないので、対象ワーク2の搬送方向の位置および撮像部14の搬送方向と直交する方向の位置と対応付けた処理によって、欠陥位置を特定する必要がある。
また、対象ワーク2と同様の大きさの基準ワークを用いる必要はなく、撮像部14の撮影範囲にその全体が収まるような大きさの基準ワークを用いれば十分である。
その他の構成および処理については、上述の本実施の形態に従う欠陥検出装置と同様であるので、詳細な説明は繰返さない。
[その他の形態]
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記録媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。