欠陥検出装置、欠陥検出方法および欠陥検出プログラム
【課題】より正確かつより高速に欠陥検出が可能な学習型の欠陥検出装置、欠陥検出方法および欠陥検出プログラムを提供する。
【解決手段】学習画像LNIMGのA−A線に沿って複数の部分領域BLKLNが設定された場合において、判断部は、このような部分領域BLKに対応する距離のうち、下限しきい値ThLと上限しきい値ThHとの間にあるもの(候補画像ベクトル)を学習対象と判断する。一方、距離が下限しきい値ThL以下のもの、および距離が上限しきい値ThH以上のものは、学習対象から除外される。
【解決手段】学習画像LNIMGのA−A線に沿って複数の部分領域BLKLNが設定された場合において、判断部は、このような部分領域BLKに対応する距離のうち、下限しきい値ThLと上限しきい値ThHとの間にあるもの(候補画像ベクトル)を学習対象と判断する。一方、距離が下限しきい値ThL以下のもの、および距離が上限しきい値ThH以上のものは、学習対象から除外される。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は検査画像から欠陥を検出する欠陥検出装置、欠陥検出方法および欠陥検出プログラムに関し、特に学習画像から取得された学習結果に基づいて欠陥を検出する技術に関するものである。
【背景技術】
【0002】
従来から、FA(Factory Automation)分野などにおいては、検査対象物(対象ワーク)に現れるキズやゴミなどの欠陥を検出する欠陥検査技術が開発されてきた。このような欠陥検査技術の代表的な方法として、検査対象物を撮影して得られる検査画像に対して画像処理を行なうことで欠陥を検出する、画像計測を用いた欠陥検査が実用化されている。
【0003】
このような画像計測を用いた欠陥検査の中でも、欠陥に相当するモデルを予め取得しておき、検査画像の各領域をこのモデルと比較することで、欠陥を検出する方法が一般的に採用されてきた。
【0004】
これに対して、画像の全体で成り立つ性質から画像中の全体と異なる部分を検出する方法が提案されている。たとえば、非特許文献1には、画像のフラクタル性や周期性によって得られる画像の局所領域間における相関性に着目した欠陥検出方法が開示されている。
【0005】
この欠陥検出方法によれば、検査画像からサンプルを複数切り出し、このサンプル毎に画像ベクトルを算出する。そして、これらの画像ベクトル列に対して固有ベクトル列を算出することによって固有空間を生成し、この固有空間とサンプル(画像ベクトル)との距離を用いて欠陥箇所を検出する。このような検出方法は、固有空間欠陥検出器(ESDD:Eigen Space Defect Detector)と称され、本明細書においても、固有空間と画像ベクトルとの距離に基づく欠陥の検出方法を「ESDD」とも総称する。
【0006】
このように、ESDDによれば、予め欠陥に相当するモデルを取得しておく必要がないので、検査対象物に生じ得る欠陥を予めモデル化することが困難な場合であっても、欠陥を検出できるという利点がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】天野敏之、「画像の相関性に基づく欠陥検出」、画像の認識・理解シンポジウム(MIRU2005)、2005年7月
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1に記載されたESDDでは、検査画像毎に同様の処理を行なって、検査画像についての固有空間と同一の検査画像から切り出されたサンプルの画像ベクトルとの距離を算出し、この算出した距離同士を比較する必要がある。このような検査画像について生成される固有空間は、欠陥部分の情報を多少なりとも含み得るため、欠陥検出の精度が低下する可能性があるという問題がある。
【0009】
また、非特許文献1に記載されたESDDでは、切り出したサンプルの多くが同様の性質を有している場合であっても、すべてのサンプルについて画像ベクトルを算出し、これらの画像ベクトル列に対して固有ベクトルを算出している。このような固有ベクトルおよび固有空間の算出には、分散行列の計算を伴うため計算時間を多く要するという問題もある。
【0010】
一方、同様の性質を有している画像ベクトル同士からは、近似した固有ベクトルが算出されるので、画像の全体で成り立つ性質を取得するという目的からは、同様の性質を有する複数の画像ベクトルの組に対して固有ベクトルを算出する必要性は低い。
【0011】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、より正確かつより高速に欠陥検出が可能な学習型の欠陥検出装置、欠陥検出方法および欠陥検出プログラムを提供することである。
【課題を解決するための手段】
【0012】
この発明のある局面に従えば、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出装置を提供する。欠陥検出装置は、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、算出される第1の固有ベクトルを用いて第1の固有空間を決定する手段と、学習画像から部分領域を順次抽出する手段と、部分領域の画像情報から候補画像ベクトルを生成する手段と、候補画像ベクトルと第1の固有空間との距離を算出する手段と、距離が所定条件を満たしているか否かを判断する手段と、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、算出される第2の固有ベクトルを用いて第2の固有空間を決定する手段と、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断する手段とを備える。
【0013】
この発明によれば、学習画像に基づく学習処理を行なう過程において、まず、学習画像に対して指定される基準領域の画像情報に基づいて、第1の固有ベクトルが算出される。そして、この第1の固有ベクトルと学習画像の部分領域の画像情報から生成される候補画像ベクトルとの距離に基づいて、第2の固有空間の決定に使用する候補画像ベクトルが選択される。さらに、学習画像から生成される基準画像ベクトルと選択された候補画像ベクトルとの組から第2の固有ベクトルを算出し、この第2の固有ベクトルから第2の固有空間が決定される。
【0014】
これにより、検査画像から欠陥を検出ために使用される第2の固有空間を決定するにあたり、所定条件を満たす画像ベクトルだけが用いられる。そのため、第2の固有空間をより正確かつより高速に決定できる。
【0015】
好ましくは、所定条件は、候補画像ベクトルと第1の固有空間との距離が第1のしきい値を超えていることを含み、第1のしきい値は、基準画像ベクトルと第1の固有空間との距離に基づいて決定される。
【0016】
さらに好ましくは、第1のしきい値は、基準画像ベクトルの組に含まれる基準画像ベクトルと第1の固有空間との距離の最大値である。
【0017】
好ましくは、所定条件は、候補画像ベクトルと第1の固有空間との距離が第2のしきい値を下回っていることを含み、第2のしきい値は、欠陥を含む部分領域の画像ベクトルと第1の固有空間との距離に基づいて決定される。
【0018】
好ましくは、基準画像ベクトルの組を生成する手段は、複数の学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する。
【0019】
この発明の別の局面に従えば、演算装置および記憶装置を含むコンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出方法を提供する。欠陥検出方法は、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成するステップと、演算装置が、記憶装置に格納された基準画像ベクトルの組から第1の固有ベクトルを算出するステップと、演算装置が、算出した第1の固有ベクトルを用いて第1の固有空間を決定するステップと、演算装置が、記憶装置に格納された学習画像から部分領域を順次抽出するステップと、演算装置が、部分領域の画像情報から候補画像ベクトルを生成するステップと、演算装置が、候補画像ベクトルと第1の固有空間との距離を算出するステップと、演算装置が、距離が所定条件を満たしているか否かを判断するステップと、演算装置が、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出するステップと、演算装置が、算出した第2の固有ベクトルを用いて第2の固有空間を決定するステップと、演算装置が、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断するステップとを含む。
【0020】
この発明のさらに別の局面に従えば、コンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出プログラムを提供する。欠陥検出プログラムは、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、算出される第1の固有ベクトルを用いて第1の固有空間を決定する手段と、学習画像から部分領域を順次抽出する手段と、部分領域の画像情報から候補画像ベクトルを生成する手段と、候補画像ベクトルと第1の固有空間との距離を算出する手段と、距離が所定条件を満たしているか否かを判断する手段と、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、算出される第2の固有ベクトルを用いて第2の固有空間を決定する手段と、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断する手段として、コンピュータを機能させる。
【発明の効果】
【0021】
この発明によれば、より正確かつより高速に欠陥検出が可能な学習型の欠陥検出装置、欠陥検出方法および欠陥検出プログラムを実現できる。
【図面の簡単な説明】
【0022】
【図1】この発明の実施の形態に従う欠陥検出装置を含む欠陥検出システムの全体構成を示す概略図である。
【図2】コンピュータのハードウェア構成を示す概略構成図である。
【図3】この発明の実施の形態に従う欠陥検出処理の概略を説明するための図である。
【図4】本実施の形態に従う欠陥検出装置における学習処理を概念的に説明するための図である。
【図5】この発明の実施の形態に従う欠陥検出装置の制御構造を示す機能ブロック図である。
【図6】本実施の形態に従う欠陥検出装置における画像ベクトルの生成処理を概念的に説明するための図である。
【図7】本実施の形態に従う欠陥検出装置における学習画像の部分領域の画像情報を概念的に説明するための図である。
【図8】この発明の実施の形態に従う欠陥検出装置において生成される基準画像ベクトルをN次元ユークリッド空間上に表現した一例である。
【図9】2次元ユークリッド空間上において基底ベクトルを説明するための図である。
【図10】2つの基底ベクトルで形成される固有空間を説明するための図である。
【図11】固有空間を一般的に表現した図である。
【図12】固有空間と画像ベクトルとの距離を説明するための図である。
【図13】1次元の固有空間と画像ベクトルとの距離を説明するための図である。
【図14】学習固有空間を決定するために対象となる部分領域を選別する処理を説明するための図である。
【図15】この発明に実施の形態に従う欠陥検出システムにおいて対象ワークに発生し得る欠陥を検出するための処理手順を示すフローチャートである。
【図16】この発明に実施の形態に従う学習処理の処理手順を示すフローチャートである。
【図17】この発明に実施の形態に従う欠陥検出処理の処理手順を示すフローチャートである。
【図18】この発明に実施の形態の変形例に従う欠陥検出装置を含む欠陥検出システムを示す概略図である。
【発明を実施するための形態】
【0023】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0024】
(全体装置構成)
図1は、この発明の実施の形態に従う欠陥検出装置を含む欠陥検出システム1の全体構成を示す概略図である。
【0025】
図1を参照して、欠陥検出システム1は、代表的に生産ラインなどに組込まれ、欠陥検査の対象となるワーク(以下、対象ワークとも称す)における欠陥の有無および欠陥の発生位置を検出する。欠陥とは、代表的に対象ワークに生じるキズやゴミなどを意味する。
【0026】
本実施の形態に従う欠陥検出システム1においては、対象ワーク2は、ベルトコンベヤなどの搬送機構6によって搬送され、搬送された対象ワーク2は、撮像部8において順次撮影される。撮像部8によって撮影された画像(以下、「検査画像」とも称す)は、本実施の形態に従う欠陥検出装置を実現する代表例であるコンピュータ100へ伝送される。
【0027】
撮像部8は、一例として、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサなどの撮像素子およびレンズを備え、対象ワーク2または後述する基準ワーク4を撮影する。なお、撮像部8は、搬送機構6の搬送動作に応じてコンピュータ100が発生する撮影指令などに従って撮影を行なう。
【0028】
この撮像部8で撮影される画像は、典型的には、画素単位で画像情報を有する。代替的に、複数の画素をまとめたブロック単位で画像情報を有するようにしてもよい。このような「画像情報」としては、撮像部8が3バンドのカラーカメラであれば、光の三原色に基づく「赤色」「緑色」「青色」の階調値(R成分値、G成分値、B成分値)で特定される情報が用いられる。代替的に、画像情報として、光の三原色の補色である「シアン」「マゼンダ」「黄色」の階調値(C成分値、M成分値、Y成分値)で特定される情報を用いてもよい。また、撮像部8がより多くのバンド数を有するカラーカメラであれば、そのバンド数に応じた数の階調値で特定される情報が用いられる。
【0029】
あるいは、撮像部8がモノクロカメラであれば、濃淡を示す階調値(グレイスケール)で特定される情報を用いてもよい。この階調値を2段階とした場合には、「白」または「黒」の2値化画像を表わすことになる。
【0030】
さらに、上述のような階調値に代えて、「色相(Hue)」「明度(Value)」「彩度(Chroma)」の各パラメータからなる色属性を画像情報」として用いてもよい。
【0031】
特に本実施の形態に従う欠陥検出装置は、欠陥検査の基準にすべき基準ワーク4を予め撮影しておき、この撮影によって得られる画像(以下、「学習画像」とも称す)から学習結果を取得し、この学習結果に基づいて検査画像における欠陥を検出する。そのため、基準ワーク4としては、対象ワーク2と同一種類の製品を選択する必要がある。なお、基準ワーク4は、予め欠陥が発生していないことが分かっている被写体であることが望ましい。ここで、「欠陥を含まない」とは、所定の判断基準下で欠陥と判断される部分を含まないことを意味する。
【0032】
また、本明細書においては、学習結果の代表例として、学習画像に基づいて算出される固有空間を用いる。この固有空間およびその算出手順については、後述する。
【0033】
一方、対象ワーク2としては、電子部品やプラスチック部品などの連続的に生産される同一種類の製品が適している。なお、本発明に係る欠陥検出装置が欠陥検出の対象とする対象ワークの大きさや種類などは特に制限されない。さらに、工場の生産ラインで製造されるものに限られず、りんごなどの農作物の傷や映画フィルムにおけるスクラッチ傷などを検出することもできる。
【0034】
さらに、欠陥検出システム1は、撮像部8の撮影範囲の付近を照明するための照明部10と、この照明部10を駆動する光源部12とを含む。そして、この光源部12は、コンピュータ100からの照明指令に従って、照明部10から所定の光量の光を照射させる。照明部10から照射される光は、比較的波長スペクトルの広いものが望ましい。
【0035】
また、コンピュータ100は、FD(Flexible Disk)駆動装置111およびCD−ROM(Compact Disk-Read Only Memory)駆動装置113を備えたコンピュータ本体101と、モニタ102と、キーボード103と、マウス104とを含む。そして、コンピュータ100は、予め格納されたプログラムを実行することで、本実施の形態に従う欠陥検出装置を実現する。
【0036】
(ハードウェア構成)
図2は、コンピュータ100のハードウェア構成を示す概略構成図である。
【0037】
図2を参照して、コンピュータ本体101は、図1に示すFD駆動装置111およびCD−ROM駆動装置113に加えて、相互にバスで接続された、演算装置であるCPU(Central Processing Unit)105と、メモリ106と、記憶装置である固定ディスク107と、インターフェイス109とを含む。
【0038】
FD駆動装置111にはFD112が装着され、CD−ROM駆動装置113にはCD−ROM114が装着される。上述したように、本実施の形態に従う欠陥検出装置は、CPU105がメモリ106などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、FD112やCD−ROM114などの記録媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、FD駆動装置111やCD−ROM駆動装置113などにより記録媒体から読取られて、またはインターフェイス109にて受信されて、固定ディスク107に格納される。さらに、固定ディスク107からメモリ106に読出されて、CPU105により実行される。
【0039】
モニタ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が実行するプログラムや画像データなどを記憶する不揮発性の記憶装置である。特に、本実施の形態に従う固定ディスク107には、後述するように、学習画像についての投影ベクトルの内積値が格納される。また、コンピュータ100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【0040】
(欠陥検出処理の概略)
図3は、この発明の実施の形態に従う欠陥検出処理の概略を説明するための図である。図3(a)は、欠陥を含まない学習画像LNIMGの一例を示し、図3(b)は、欠陥DEFを含む検査画像IMGの一例を示し、図3(c)は、欠陥DEFを含まない部分領域の一例を示し、図3(d)は、欠陥DEFを含む部分領域の一例を示す。
【0041】
図3(a)を参照して、まず、本実施の形態に従う画像検出装置は、基準ワーク4を撮
影して得られた、欠陥を含まない学習画像LNIMGから所定の大きさの部分領域BLKLNを順次抽出する。そして、本実施の形態に従う画像検出装置は、この学習画像LNIMGの全体として現れる性質(特徴)を予め取得する。なお、図3(a)では、図面を簡素化するために、互いに重ならないように部分領域BLKを順次抽出する例を示すが、互いに重なるように部分領域BLKLNを設定してもよい。本実施の形態に従う欠陥検出装置によれば、部分領域の各々について欠陥DEFの有無を判断するため、隣接する部分領域BLKの判断結果に影響を受けないからである。
【0042】
図3(b)を参照して、続いて、本実施の形態に従う画像検出装置は、対象ワーク2を撮影して得られた検査画像IMGから所定の大きさの部分領域BLK1,BLK2を抽出したものとする。なお、検査画像IMGから抽出する部分領域BLK1,BLK2は、学習画像LNIMGから抽出した部分画像BLKの大きさといずれも同じである。
【0043】
図3(c)を示すように、部分領域BLK1に欠陥DEFが含まない場合には、部分領域BLK1は、学習画像LNIMGの全体として現れる性質とほぼ同様の性質を有することになる。一方、図3(d)に示すように、部分領域BLK2に欠陥DEFが含まれる場合には、部分領域BLK2は、学習画像LNIMGの全体として現れる性質とは異なる特徴的な性質を有することになる。
【0044】
そこで、本実施の形態に従う欠陥検出装置は、基準ワーク4を撮影して得られる学習画像の全体として現れる性質を学習結果として予め取得しておき、検査画像IMGの各部分領域BLKに現れる性質を予め取得した学習画像の全体として現れる性質と比較することで、検査画像IMG中の欠陥DEFを検出する。
【0045】
本実施の形態では、この学習画像の全体として現れる性質として、後述するように、各部分領域BLKの画像情報を含む画像ベクトルの組から算出される固有ベクトルにより決定される固有空間を用いる。そして、この固有空間と画像ベクトルとの距離に基づいて、検査画像IMG中の欠陥DEFを検出する。すなわち、本実施の形態に従う欠陥検出装置は、検査画像IMGから算出される固有空間を学習結果として用いる。
【0046】
特に、本実施の形態に従う欠陥検出装置は、学習画像LNIMGから抽出される部分領域BLKLNのうち、近似した性質を有するものを除外した上で、固有ベクトルを算出する。すなわち、本実施の形態に従う欠陥検出装置は、学習画像LNIMGから抽出される部分領域BLKLNのうち冗長なものを除外する。これにより、より効率的かつ短時間に固有ベクトルおよび固有空間を算出できる。
【0047】
(学習処理)
まず、図4を参照して、この学習処理の概略について説明する。なお、本実施の形態における学習処理は、学習画像の部分領域の画像情報から生成される複数の画像ベクトルに基づいて固有ベクトルを算出する処理、およびこの算出された固有ベクトルを用いて固有空間を決定する処理を含む。
【0048】
図4は、本実施の形態に従う欠陥検出装置における学習処理を概念的に説明するための図である。図4(a)は、学習画像LNIMGに基準領域STDが設定されている状態を示し、図4(b)は、学習画像LNIMGの基準領域STD以外の領域から部分領域BLKLNが抽出される状態を示し、図4(c)は、学習画像LNIMGのうち固有ベクトル(固有空間)の算出対象となる学習対象領域TRGが決定された状態を示す。
【0049】
図4(a)を参照して、まず、ユーザは、キーボード103やマウス104(図1)などを操作して、学習画像LNIMGに対して基準領域STDを設定する。この基準領域STDは、ユーザが学習画像LNIMGのうち基準として適切だと判断する領域、すなわち欠陥を含まないと判断できる領域である。そして、欠陥検出装置は、この基準領域STDから所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する画像情報から画像ベクトル(以下、「基準画像ベクトル」とも称す)をそれぞれ生成する。さらに、欠陥検出装置は、これらの基準画像ベクトルから固有ベクトル(以下、「基準固有ベクトル」とも称す)を算出し、この基準固有ベクトルを用いて固有空間(以下、「基準固有空間」とも称す)を決定する。この基準画像ベクトルの生成、基準固有ベクトルの算出、基準固有空間の決定については後述する。なお、基準領域STDは、少なくとも部分領域BLKLNの大きさより大きければ、任意の大きさに設定できる。
【0050】
その後、欠陥検出装置は、図4(b)に示すように、学習画像LNIMGのうち基準領域STDを除いた領域から部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する画像情報から画像ベクトル(以下、「候補画像ベクトル」とも称す)をそれぞれ生成する。そして、欠陥検出装置は、候補画像ベクトルの各々と基準固有空間との距離を算出し、この算出した距離が所定条件を満たしている候補画像ベクトルを抽出する。この所定条件は、学習画像LNIMGから順次抽出される部分領域BLKLNのうち、基準領域STDと同様の性質を有するものを除外するように決定される。なお、候補画像ベクトルを抽出する領域をユーザがさらに設定するようにしてもよい。
【0051】
このような手順によって、欠陥検出装置は、学習画像LNIMGのうち、基準領域STDおよび学習対象領域TRGを決定する(図4(c)参照)。この学習対象領域TRGは、その画像ベクトルと基準固有空間との距離が所定条件を満たすものの集合に相当する。そして、欠陥検出装置は、基準領域STDから順次抽出される部分領域BLKLNに対応する複数の基準画像ベクトルと、学習対象領域TRGから順次抽出される部分領域BLKLNに対応する複数の候補画像ベクトルとを含むベクトルの組に対して、固有ベクトルを算出する。そして、欠陥検出装置は、この算出した固有ベクトルを用いて欠陥検出の基準となる固有空間(以下、「学習固有空間」とも称す)を決定する。
【0052】
本実施の形態に従う欠陥検出装置は、このような手順によって決定された学習固有空間に基づいて、検査画像における欠陥を検出する。
【0053】
(学習処理の変形例)
上述の説明では、主として1つの学習画像LNIMGに基づいて、学習固有空間を決定する構成について例示したが、複数の学習画像LNIMGに基づいて、学習固有空間を決定してもよい。なお、この学習固有空間の決定にあたり、1つの学習対象領域TRGを決定する必要があるので、以下のような処理を実行する。
【0054】
より具体的には、まず、同一の基準ワーク4もしくは類似した基準ワーク4(たとえば、同じ製造ロッドであるもの)に対して複数回の撮像を行なうことで、複数枚の学習画像LNIMGを取得する。次に、複数の学習画像LNIMGの各々に対して、図4(a)〜図4(c)に示す一連の処理を実行する。この結果、複数の学習画像LNIMGのそれぞれに対応する複数の学習対象領域TRGが抽出される。この抽出された複数の学習対象領域TRGを統合処理(典型的には、OR演算もしくはAND演算)することで、1つの学習対象領域TRGを決定する。
【0055】
別の処理手順として、上記と同様に複数の学習画像LNIMGを取得した上で、いずれか1つの学習画像LNIMGにおいて、図4(b)に示すような基準領域STDを設定するとともに、残りの学習画像LNIMGにおける部分領域BLKLNと比較することで、その結果をそれぞれの学習画像LNIMGについて取得する。さらに、この取得した複数の結果を上記と同様の統合処理することで、1つの学習対象領域TRGを決定する。
【0056】
(制御構造)
次に、上述のような処理を実現するための制御構造について説明する。
【0057】
図5は、この発明の実施の形態に従う欠陥検出装置の制御構造を示す機能ブロック図である。
【0058】
図5を参照して、本実施の形態に従う欠陥検出装置は、その機能として、画像バッファ部202,232と、抽出部204,214,234と、ベクトル生成部206,216,236と、固有ベクトル算出部208,222と、固有空間決定部210,224と、距離算出部212,238と、判断部218と、画像ベクトルバッファ部220と、学習結果格納部228と、欠陥位置特定部242と、欠陥検出部244とを含む。
【0059】
画像バッファ部202は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される学習画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部202へ学習画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された学習画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
【0060】
抽出部204は、ユーザからの基準領域指定に基づいて、学習画像LNIMGに対して設定された基準領域STDから所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する学習画像の画像情報を画像バッファ部202から読み出してベクトル生成部206へ出力する。言い換えれば、抽出部204は、学習画像LNIMGに設定される基準領域STDから所定の大きさの学習サンプル(局所領域)を順次切り出す。
【0061】
ベクトル生成部206は、抽出部204から順次抽出される学習画像LNIMGの基準領域STD中における部分領域BLKLNの画像情報から基準画像ベクトルx(STD)iを順次生成する。そして、ベクトル生成部206は、生成した基準画像ベクトルx(STD)iを固有ベクトル算出部208、距離算出部212、および画像ベクトルバッファ部220へそれぞれ出力する。
【0062】
図6は、本実施の形態に従う欠陥検出装置における画像ベクトルの生成処理を概念的に説明するための図である。
【0063】
図7は、本実施の形態に従う欠陥検出装置における学習画像の部分領域の画像情報を概念的に説明するための図である。
【0064】
図6および図7を参照して、一例として、基準領域STDがW画素×H画素で構成されるとする。この基準領域STDに対して、抽出部204(図5)は、所定の大きさ(一例として、w画素×h画素)の部分領域BLKLNを順次設定する。そして、ベクトル生成部206(図5)は、この抽出部204が設定する部分領域BLKLNに含まれる画素の画像情報をベクトル化し、基準画像ベクトルx(STD)iを順次生成する。
【0065】
なお、部分領域BLKLNは、基準領域STDの大きさより小さければいずれの大きさであってもよい。この部分領域BLKLNの大きさは予め定めておいてもよいし、設定される基準領域STDの大きさに応じて動的に決定されてもよい。
【0066】
図6および図7を参照して、部分領域BLKLNの各々はw×h個の画素を含み、各画素は画像情報yi(1≦i≦N=w×h)を有する。すなわち、抽出部204は、部分領域BLKLNの設定毎に、N個の画像情報yiをベクトル生成部206へ出力する。
【0067】
具体的には、ベクトル生成部206は、各部分領域BLKLNに対して、以下のような基準画像ベクトルx(STD)iを生成する。
【0068】
基準画像ベクトルx(STD)i=[y1,y2,・・・,yN]T
但し、N=w×h
なお、各画素がR成分値、G成分値、B成分値からなる場合には、画像情報yiはこれらの成分値(階調値)を含む3次元の配列となる。そのため、基準画像ベクトルx(STD)iとしては、以下のようになる。
【0069】
x(STD)i=[R1,G1,B1,R2,G2,B2,・・・,RN,GN,BN]T
図8は、この発明の実施の形態に従う欠陥検出装置において生成される基準画像ベクトルx(STD)iをN次元ユークリッド空間上に表現した一例である。
【0070】
図8を参照して、ベクトル生成部206が生成する各部分領域BLKLNについての基準画像ベクトルx(STD)iは、N次元ユークリッド空間上の点として定義できる。
【0071】
再度、図5を参照して、固有ベクトル算出部208は、ベクトル生成部206が順次生成する基準画像ベクトルx(STD)iの組から固有ベクトルE(STD)を算出する。この固有ベクトルE(STD)は、学習画像LNIMGの基準領域STDに現れる性質を表す。
【0072】
具体的には、固有ベクトル算出部208は、ベクトル生成部206で生成される基準画像ベクトルx(STD)iの組(集合)として、以下のような集合ベクトルXを算出する。
【0073】
集合ベクトルX=[x(STD)1,x(STD)2,・・・,x(STD)R]
但し、Rは学習画像LNIMGの基準領域STDに設定される部分領域BLKLNの総数(基準サンプル総数)である
たとえば、図6に示すようなW×H画素の基準領域STDに対して、互いに重なることなくw×h画素の部分領域BLKLNを順次設定する場合を考えると、基準サンプル総数Rは、R=(W/w)×(H/h)個となる。
【0074】
そして、固有ベクトル算出部208は、集合ベクトルXの分散行列Q=XXTを対角化する固有ベクトルE(STD)を算出する。すなわち、固有ベクトル算出部208は、以下の式が成立するように、固有ベクトルE(STD)および固有値行列Δを算出する。
【0075】
分散行列Q=XXT=E(STD)ΔE(STD)T
固有ベクトルE(STD)=[e(STD)1,e(STD)2,・・・,e(STD)R]
ここで、基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rは、以下の条件を満たす。
【0076】
【数1】
【0077】
また、固有値行列Δは、以下のように固有値λ(STD)1,λ(STD)2,・・・,λ(STD)Rの対角行列として表される。
【0078】
【数2】
【0079】
なお、上記のような固有ベクトルおよび固有値の演算処理は、KL(Karhunen-Loeve)展開などの公知のアルゴリズムを用いて実現することができる。
【0080】
固有空間決定部210は、固有ベクトル算出部208が算出した固有ベクトルE(STD)=[e(STD)1,e(STD)2,・・・,e(STD)R]のうち、その固有値が大きいものから所定数の基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)dim(dim≦R)を用いて基準固有空間E(STD)を決定する。この基準固有空間E(STD)は次元dimの超平面となる。なお、次元dimは、学習画像LNIMGの基準領域STDに現れる性質に応じて任意に決定できる。そして、固有空間決定部210は、決定した基準固有空間E(STD)を距離算出部212へ出力する。この基準固有空間E(STD)の決定方法について、以下より詳細に説明する。
【0081】
図9は、2次元ユークリッド空間上において基底ベクトルを説明するための図である。
図9を参照して、より理解を容易にするため、2次元の基準固有空間E(STD)=[e(STD)1,e(STD)2]として考える。なお、図9に示す2次元ユークリッド空間上のプロットは、基準画像ベクトルx(STD)iを示す。図9に示すように、基底ベクトルe(STD)1は、基準画像ベクトルx(STD)iの分布が最も広がっている方向(最も分散が大きい方法)に相当するベクトルであり、基底ベクトルe(STD)2は、基底ベクトルe(STD)1と直交するベクトルである。
【0082】
すなわち、固有ベクトルE(STD)を構成する基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの各々は、N次元ユークリッド空間上において、学習画像LNIMGの基準領域STDに現れる性質を代表するものであり、その固有値が大きいものほどその代表する度合いが大きくなる。ここで、固有値λ1≧λ2≧・・・≧λRであるので、それぞれ対応する基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの順で学習画像LNIMGの基準領域STDとして現れる性質を代表する度合いが大きいことを意味する。
【0083】
そこで、本実施の形態に従う欠陥検出装置では、このような基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rにおける物理的な意味を考慮して、その固有値が大きいものから順に所定数の基底ベクトルを用いて基準固有空間E(STD)を定義する。すなわち、基準固有空間E(STD)は、固有ベクトル算出部208で生成される基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの一部を用いて算出される部分空間である。このように算出される基準固有空間E(STD)は、学習画像LNIMGの基準領域STDに現れる性質のうち、基底ベクトルの次元(次数)に応じた程度で反映したものとなる。ここで、学習画像LNIMGの基準領域STDにおけるフラクタル性や周期性が支配的であれば、相対的に小さい次元の基底ベクトルで基底される基準固有空間E(STD)であっても、学習画像LNIMGの基準領域STDの特性をほぼ近似し得る。
【0084】
この基準固有空間E(STD)は、次元dimの超平面を示すことになる。なお、次元dimは、学習画像LNIMGの基準領域STDに現れる性質に応じて任意に決定できるが、次元dimが高くなるほど、後述する投影ベクトルなどに演算量が増大する。そのため、非特許文献1に開示されるような累積寄与度などに基づいて、適切な次元を決定することが望ましい。
【0085】
図10は、2つの基底ベクトルe(STD)1,e(STD)2で形成される固有空間を説明するための図である。図11は、固有空間を一般的に表現した図である。
【0086】
図10を参照して、一例として、2つの基底ベクトルe(STD)1,e(STD)2を用いた固有空間は、互いに直交する基底ベクトルe(STD)1と基底ベクトルe(STD)2とによって張られる超平面となる。また、図11を参照して、このような固有ベクトルは、N次元ユークリッド空間上に一般化して示される。
【0087】
再度、図5を参照して、抽出部214は、学習画像LNIMGの基準領域STD以外の領域から所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する学習画像の画像情報を画像バッファ部202から読み出してベクトル生成部216へ出力する。言い換えれば、抽出部214は、学習画像LNIMGに設定される基準領域STD以外の領域から所定の大きさの学習候補サンプル(局所領域)を順次切り出す。ここで、基準領域STDから切り出される部分領域BLKLNの大きさは、学習画像LNIMGの基準領域STD以外の領域から切り出される部分領域BLKLNの大きさと等しい。なお、抽出部214は、抽出部204と連係することで、学習画像LNIMGの基準領域STDとそれ以外の領域とを識別する。
【0088】
ベクトル生成部216は、抽出部214から順次抽出される部分領域BLKLNの画像情報から候補画像ベクトルx(CND)jを順次生成する。そして、ベクトル生成部216は、生成した候補画像ベクトルx(CND)jを距離算出部212および判断部218へそれぞれ出力する。なお、ベクトル生成部216における候補画像ベクトルx(CND)jの生成処理は、ベクトル生成部206における基準画像ベクトルx(STD)iの生成処理と同様であるので、詳細な説明は繰返さない。
【0089】
距離算出部212は、基準固有空間E(STD)と基準画像ベクトルx(STD)iの各々との距離を算出し、この算出結果に基づいて、判断部218での判断に使用される所定条件を決定する。また、距離算出部212は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jを順次算出し、この算出した距離Δx(CND)jを判断部218へ出力する。なお、距離算出部212が出力する所定条件は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jについての下限しきい値および上限しきい値を含む。
【0090】
ここで、固有空間Eと画像ベクトルxとの距離の算出方法について一般化して説明する。
【0091】
図12は、固有空間Eと画像ベクトルxとの距離Δxを説明するための図である。
図12を参照して、固有空間Eと画像ベクトルxとの距離Δxは、ユークリッド距離として定義され、このユークリッド距離は、画像ベクトルxの固有空間Eへの投影点x’を用いて、以下のような式で表すことができる。
【0092】
|Δx|2=|x−x’|2=(x−x’)T(x−x’)
また、画像ベクトルxの固有空間Eへの投影点x’は、以下のような式で表すことができる。
【0093】
【数3】
【0094】
次に、図13を参照して、固有空間を1次元とした場合について、固有空間E(1)と画像ベクトルxとの間の距離について説明する。
【0095】
図13は、1次元の固有空間E(1)と画像ベクトルxとの距離Δxを説明するための図である。
【0096】
図13を参照して、原点から投影点x’までの距離Pについて考える。1次元の固有空間E(1)は、基底ベクトルe1で定義されるので、ベクトル集合Pは、画像ベクトルxと基底ベクトルe1とを用いて以下のような式で表すことができる。
【0097】
P=x・e1
これを、D次元まで拡張すると、原点から投影点x’までの距離Pの集合は、以下のような式で表すことができる。
【0098】
P=(P1,P2,・・・,PD)T
したがって、任意の成分における原点から投影点x’までの距離は、Pm=x・em(1≦m≦D)となる。
【0099】
図13に示すように固有空間E(1)が1次元であれば、固有空間E(1)(基底ベクトルe1平面)上の投影点x’は、基底ベクトルe1方向にP倍したものと考えられるので、x’=Pe1となる。但し、基底ベクトルe1を単位ベクトルとする。
【0100】
これを、D次元まで拡張すると、投影点x’は以下のような式で表すことができる。
【0101】
【数4】
【0102】
再度、固有空間Eと画像ベクトルxとの距離Δxについて考える。上述したように、
【0103】
【数5】
【0104】
であるので、
|Δx|2=|x−x’|2=(x−x’)T(x−x’)
=(x−EP)T(x−EP) (但し、P=ETx)
=xTx−xTEP−PTETx+PTETEP
ここで、以下の式が成立するので、
【0105】
【数6】
【0106】
|Δx|2=xTx−PTP−PTP+PTP
=xTx−PTP
以上のように、固有空間Eと画像ベクトルxとの距離Δxは、画像ベクトルxとベクトル集合Pとを用いて、以下のような式で表すことができる。
【0107】
|Δx|2=xTx−PTP
ここで、ベクトル集合Pは、画像ベクトルxを投影点x’へ投影するための投影ベクトルに相当し、PTPは、この投影ベクトルの内積値に相当する。
【0108】
再度、図5を参照して、距離算出部212は、固有空間決定部210から出力される基準固有空間E(STD)と、ベクトル生成部206から出力される基準画像ベクトルx(STD)iの各々とを用いて、以下の演算式に従って距離Δx(STD)iを算出する。
【0109】
|Δx(STD)i|2=x(STD)iTx(STD)i−P(STD)iTP(STD)i
但し、P(STD)i=E(STD)Tx(STD)i
そして、距離算出部212は、このように順次算出される距離Δx(STD)iに基づいて、下限しきい値ThLおよび上限しきい値ThHを決定し、この決定したしきい値を判断部218へ出力する。
【0110】
同様に、距離算出部212は、固有空間決定部210から出力される基準固有空間E(STD)と、ベクトル生成部216から出力される候補画像ベクトルx(CND)jの各々とを用いて、以下の演算式に従って距離Δx(CND)jを算出する。
【0111】
|Δx(CND)j|2=x(CND)jTx(CND)j−P(CND)jTP(CND)j
但し、P(CND)j=E(STD)Tx(CND)j
判断部218は、ベクトル生成部216から順次出力される候補画像ベクトルx(CND)jの各々について、対応する距離Δx(CND)jが上述の下限しきい値ThLと上限しきい値ThHとの間に存在するか否かを判断する。そして、判断部218は、その距離Δx(CND)jが上述の下限しきい値ThLと上限しきい値ThHとの間に存在する学習候補画像ベクトルx(CND)k(0≦k≦j)を画像ベクトルバッファ部220へ出力する。
【0112】
ここで、下限しきい値ThLは、ベクトル生成部216から順次出力される候補画像ベクトルx(CND)jのうち、基準領域STDと近似した性質を有するものを除外するための条件である。すなわち、その距離Δx(CND)jが下限しきい値ThL以下である場合には、対応する部分領域BLKLNは基準領域STDと近似した性質を有することを意味し、後述する学習固有空間を決定するための対象からは除外される。一例として、距離算出部212は、算出される複数の距離Δx(STD)iの中での最大値を下限しきい値ThLに決定する。
【0113】
一方、上限しきい値ThLは、学習画像LNIMGに存在する欠陥を含む部分領域BLKLNを除外するための条件である。すなわち、学習画像LNIMGとしては、原則的に欠陥を含まない画像を用いるが、ユーザが気付かないうちに欠陥が含まれている場合や、欠陥を含む画像した取得できない場合には、このような欠陥を含む部分領域BLKLNから得られる画像ベクトルを、学習固有空間を決定するための対象から除外する。
【0114】
一例として、欠陥を含む部分領域が既知である場合には、この欠陥を含む部分領域から算出される画像ベクトルと基準固有空間E(STD)との距離に所定の比率(たとえば、80%)を乗じた値を上限しきい値ThHとして決定してもよい。また、欠陥を含む部分領域が既知でない場合には、距離算出部212において算出される複数の距離Δx(STD)iの分散値を求め、この分散値に所定の比率(たとえば、50%)を乗じた値を下限しきい値ThLに加えた値を、上限しきい値ThHとして決定してもよい。
【0115】
図14は、学習固有空間を決定するために対象となる部分領域を選別する処理を説明するための図である。図14(a)は、学習画像LNIMGに設定される部分領域BLKLNを概略的に示す図である。図14(b)は、図14(a)に示す部分領域BLKLNに対応した判断部218における判断処理結果の一例を示す図である。
【0116】
図14(a)を参照して、学習画像LNIMGのA−A線に沿って、複数の部分領域BLKLNが設定された場合を考える。図14(b)は、この部分領域BLKLNの各々に対応する距離Δx(CND)jの一例を示す。判断部218は、このような部分領域BLKLNに対応する距離Δx(CND)jのうち、下限しきい値ThLと上限しきい値ThHとの間にあるもの(候補画像ベクトルx(CND)j)を学習対象と判断する。一方、距離Δx(CND)jが下限しきい値ThL以下のもの、および距離Δx(CND)jが上限しきい値ThH以上のものは、学習対象から除外する。特に、距離Δx(CND)iが上限しきい値ThH以上のものは、欠陥を含む部分領域とみなされる。
【0117】
このように判断部218は、学習固有空間を決定するために有効な部分領域の画像ベクトルのみを、画像ベクトルバッファ部220へ選択的に出力する。
【0118】
再度、図5を参照して、画像ベクトルバッファ部220は、メモリ106(図1)の所定の領域に形成され、ベクトル生成部206から出力される基準画像ベクトルx(STD)iおよび判断部218から選択的に出力される学習対象画像ベクトルx(CND)kを格納する。
【0119】
固有ベクトル算出部222は、画像ベクトルバッファ部220に格納される基準画像ベクトルx(STD)iおよび学習対象画像ベクトルx(CND)kの組から固有ベクトルEを算出する。この固有ベクトルEは、学習画像LNIMGの全体に現れる性質を表す。
【0120】
具体的には、固有ベクトル算出部222は、画像ベクトルバッファ部220に格納される画像ベクトルの組(集合)として、以下のような集合ベクトルXを算出する。
【0121】
集合ベクトルX=[x(STD)1,x(STD)2,・・・,x(STD)R,x(CND)1,x(CND)2,・・・,x(CND)S]
但し、Rは学習画像LNIMGの基準領域STDに設定される部分領域BLKLNの総数であり、Sは所定条件を満足する学習対象画像ベクトルx(CND)kの総数である。
【0122】
固有ベクトル算出部222における固有ベクトルEの算出処理は、固有ベクトル算出部208における固有ベクトルE(STD)の算出処理と同様であるので、詳細な説明は繰返さない。
【0123】
固有空間決定部224は、固有ベクトル算出部222が算出した固有ベクトルE=[e1,e2,・・・,eR+S]のうち、その固有値が大きいものから所定数の基底ベクトルe1,e2,・・・,eD(D≦R+S)を用いて学習固有空間E(D)を算出する。なお、次元Dは、学習画像LNIMGに現れる性質に応じて任意に決定できるが、次元Dが高くなるほど、後述する投影ベクトルなどに演算量が増大する。そのため、非特許文献1に開示されるような累積寄与度などに基づいて、適切な次元を決定することが望ましい。
【0124】
なお、上述の説明においては、抽出部204が1つの学習画像に対して指定される基準領域STDの画像情報から基準画像ベクトルの組を生成する構成について例示したが、予め入力された複数の学習画像LNIMGに対してそれぞれ指定された基準領域STDの画像情報から基準画像ベクトルの組を生成してもよい。このような構成によれば、たとえば、複数の基準ワーク4を撮影し、この撮影した複数の学習画像LNIMGに基づいて基準固有空間を決定する場合などに有効である。
【0125】
再度、図5を参照して、画像バッファ部232は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される検査画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部232へ検査画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された検査画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
【0126】
抽出部234は、画像バッファ部232に一時的に格納される検査画像IMGから所定の大きさの部分領域BLKを順次抽出し、この順次抽出する部分領域BLKに対応する検査画像IMGの画像情報をベクトル生成部236へ出力する。言い換えれば、抽出部234は、画像バッファ部232に一時的に格納される検査画像IMGから所定の大きさの検査サンプル(局所領域)を順次切り出す。このとき、検査画像IMGから順次抽出される部分領域BLKは、学習画像LNIMGから予め抽出された部分領域BLKと対応するように扱われる。
【0127】
また、抽出部234は、検査画像IMGから順次抽出する部分領域BLKの位置(ラベル情報)を欠陥位置特定部242へ出力する。
【0128】
ベクトル生成部236は、抽出部234によって順次抽出される検査画像IMGの部分領域BLKの画像情報から検査画像ベクトルxiを順次生成する。なお、ベクトル生成部236における検査画像ベクトルの生成処理は、ベクトル生成部206やベクトル生成部216における画像ベクトルの生成処理と同様であるので、詳細な説明は繰返さない。
【0129】
距離算出部238は、ベクトル生成部236から出力される検査画像ベクトルxiと学習固有空間E(D)とに基づいて、
|Δxi|2=xiTxi−PiTPi (但し、Pi=E(D)Txi)
の関係式に従って、学習固有空間E(D)と検査画像ベクトルxiとの距離Δxiを算出する。距離算出部238は、学習結果格納部228から学習固有空間E(D)を読出す。
【0130】
したがって、学習画像LNIMGに基づいて学習固有空間E(D)が一旦算出された後は、その後に入力される検査画像IMGに基づいて学習固有空間E(D)の算出処理は必要ない。そのため、画像中に含まれる欠陥部分の情報が基準となる学習固有空間E(D)に混入することがないので、欠陥検出の精度を高いまま維持することができる。また、学習固有空間E(D)の算出に必要な演算処理などを省略できるので、処理時間を短縮することもできる。
【0131】
欠陥位置特定部242は、距離算出部238において算出された距離Δxiの大きさに基づいて、検査画像IMG中の対応する部分領域BLKにおける欠陥の有無を判断する。代表的に、欠陥位置特定部242は、距離Δxiを所定のしきい値と比較し、距離Δxiが所定のしきい値を超えていれば、欠陥が存在すると判断する。なお、このしきい値は、学習画像LNIMGの対応する部分領域BLKについて算出した距離Δxiに応じて決定してもよい。
【0132】
さらに、欠陥位置特定部242は、抽出部234から出力される、検査画像IMGから抽出された部分領域BLKの位置を示すラベル情報を受けて、このラベル情報に対応付けて欠陥の有無をマッピングする。これにより、欠陥位置特定部242は、検査画像IMGにおける欠陥の位置を特定する。そして、欠陥位置特定部242は、この欠陥位置の特定情報を欠陥検出部244へ出力する。
【0133】
欠陥検出部244は、欠陥位置特定部242からの欠陥位置の特定情報に基づいて、画像バッファ部232に格納されている検査画像IMGを参照し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する。具体的には、欠陥検出部244は、検査画像IMGに対してエッジ検出などを実行する。そして、欠陥検出部244は、検出した欠陥の詳細情報などを欠陥検出結果として出力する。
【0134】
以上のような機能構成によって、本実施の形態に従う欠陥検出装置は、欠陥を含まない学習画像LNIMGに基づいて検査画像IMGにおける欠陥を検出する。
【0135】
(処理手順)
図15は、この発明に実施の形態に従う欠陥検出システム1において対象ワーク2に発生し得る欠陥を検出するための処理手順を示すフローチャートである。
【0136】
図1および図15を参照して、ユーザは、予め欠陥が発生していないことが分かっている基準ワーク4を搬送機構6上の撮像部8の撮影範囲に配置する(ステップS2)。そして、ユーザは、欠陥検出装置に所定の指令を与えて、この基準ワーク4を撮影した学習画像を取得させる(ステップS4)。この際、照明部10は、所定の光量の光を基準ワークに向けて照射する。なお、上述したように、撮像部8以外の装置によって予め撮影された学習画像を欠陥検出装置に与えるようにしてもよい。
【0137】
学習画像の取得後、欠陥検出装置は学習処理を実行し(ステップS6)、その学習結果(学習固有空間への投影ベクトルの内積値や画像ベクトルの大きさ)を格納する(ステップS8)。なお、学習処理については、後述する。
【0138】
この学習処理および投影ベクトルの内積値の格納が終了すると、ユーザは、対象ワーク2が搬送機構6上の撮像部8の撮影範囲に順次搬送されるように、搬送機構6などを操作する(ステップS10)。撮像部8の撮影範囲に対象ワーク2が搬送されると、欠陥検出装置は、撮像部8によって対象ワーク2を撮影することで検査画像を取得する(ステップS12)。なお、欠陥検出装置は、搬送機構6上などに配置される位置センサ(図示しない)などによって、対象ワーク2の到着を検出する。
【0139】
検査画像を取得すると、欠陥検出装置は、欠陥検出処理を実行し(ステップS14)、その欠陥検出結果を出力する(ステップS16)。なお、欠陥検出結果は、欠陥検出装置に格納されたり、モニタ102などに出力されたりする。
【0140】
そして、欠陥検出装置は、終了指示が与えられたか否かを判断する(ステップS18)。この終了指示は、ユーザなどによって与えられ、もしくは欠陥検出対象の対象ワーク2が不存在であることの検知などに連動して与えられる。終了指示が与えられていなければ(ステップS18においてNO)、欠陥検出装置は、ステップS12以降の処理を再度実行する。終了指示が与えられていれば(ステップS18においてYES)、処理は終了する。
【0141】
図16は、この発明に実施の形態に従う学習処理の処理手順を示すフローチャートである。また、図17は、この発明に実施の形態に従う欠陥検出処理の処理手順を示すフローチャートである。なお、図16および図17に示すフローチャートは、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより、図5に示すような機能を実現することで実行される。
【0142】
(学習処理の処理手順)
図5および図16を参照して、抽出部204として機能するCPU105は、ユーザからの学習画像LNIMGに対する基準領域STDの設定を受付ける(ステップS100)。このとき、ユーザは、キーボード103やマウス104(図1)を操作して、学習画像LNIMGに対して基準領域STDを設定する。そして、抽出部204として機能するCPU105は、学習画像LNIMGの基準領域STDから所定の大きさの部分領域BLKLNを抽出する(ステップS102)。そして、ベクトル生成部206として機能するCPU105は、抽出した部分領域BLKLNの画像情報から基準画像ベクトルx(STD)iを生成する(ステップS104)。さらに、CPU105は、学習画像LNIMGの基準領域STDLNから抽出すべき部分領域BLKが残っているか否かを判断する(ステップS106)。学習画像LNIMGの基準領域STDから抽出すべき部分領域BLKLNが残っている場合(ステップS106においてYESの場合)には、CPU105は、ステップS100以下の処理を繰返す。
【0143】
これに対して、学習画像LNIMGの基準領域STDから抽出すべき部分領域BLKLNが残っていない場合(ステップS106においてNOの場合)には、固有ベクトル算出部208として機能するCPU105は、基準画像ベクトルx(STD)iの組から固有ベクトルE(STD)を算出する(ステップS108)。そして、固有空間決定部210として機能するCPU105は、算出した固有ベクトルE(STD)のうち、その固有値が大きいものから順に所定数の固有ベクトルを用いて基準固有空間E(STD)を決定する(ステップS110)。
【0144】
距離算出部212として機能するCPU105は、基準固有空間E(STD)と基準画像ベクトルx(STD)iの各々との距離を算出し、この算出結果に基づいて候補画像ベクトルx(CND)jを選別するための所定条件を決定する(ステップS112)。
【0145】
さらに、抽出部214として機能するCPU105は、学習画像LNIMGに設定される基準領域STD以外の領域から所定の大きさの部分領域BLKLNを抽出する(ステップS114)。そして、ベクトル生成部216として機能するCPU105は、抽出した部分領域BLKの画像情報から候補画像ベクトルx(CND)jを生成する(ステップS116)。
【0146】
続いて、距離算出部212として機能するCPU105は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jを算出する(ステップS118)。そして、判断部218として機能するCPU105は、算出した距離ΔxjがステップS112において決定した所定条件を満足しているか否かを判断する(ステップS120)。算出した距離Δx(CND)jがステップS112において決定した所定条件を満足している場合(ステップS120においてYESの場合)には、CPU105は、対応の候補画像ベクトルx(CND)jを学習固有空間E(D)を決定するための学習対象に決定する(ステップS122)。これに対して、算出した距離Δx(CND)jがステップS112において決定した所定条件を満足していない場合(ステップS120においてNOの場合)には、CPU105は、対応の候補画像ベクトルx(CND)jを学習固有空間E(D)を決定するための学習対象外に決定する(ステップS124)。
【0147】
さらに、CPU105は、学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKLNが残っているか否かを判断する(ステップS126)。学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKLNが残っている場合(ステップS126においてYESの場合)には、CPU105は、ステップS114以下の処理を繰返す。
【0148】
学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKが残っていない場合(ステップS126においてNOの場合)には、固有ベクトル算出部222として機能するCPU105は、基準画像ベクトルx(STD)iおよび学習固有空間E(D)を決定するための学習対象に決定された学習対象画像ベクトルx(CND)kの組から固有ベクトルEを算出する(ステップS128)。そして、固有空間決定部224として機能するCPU105は、算出した固有ベクトルEのうち、その固有値が大きいものから順に所定数の固有ベクトルを用いて学習固有空間E(D)を算出する(ステップS130)。そして、CPU105は、算出した学習固有空間E(D)を固定ディスク107へ格納する(ステップS132)。そして、処理はステップS8へ戻る。
【0149】
(欠陥検査処理の処理手順)
図5および図17を参照して、抽出部234として機能するCPU105は、検査画像IMGから所定の大きさの部分領域BLKを抽出する(ステップS200)。そして、ベクトル生成部236として機能するCPU105は、抽出した部分領域BLKの画像情報から検査画像ベクトルxiを生成する(ステップS202)。距離算出部238として機能するCPU105は、学習結果格納部228から、学習固有空間E(D)を読出す(ステップS204)。そして、CPU105は、検査画像ベクトルxiと、読出した学習固有空間E(D)とに基づいて、学習固有空間E(D)に対する検査画像ベクトルxiの距離Δxiを算出する(ステップS206)。欠陥位置特定部242として機能するCPU105は、距離Δxiの大きさに基づいて、検査画像IMGの対応する部分領域BLKにおける欠陥の有無を判断する(ステップS208)。そして、欠陥位置特定部242として機能するCPU105は、対象の部分領域BLKのラベル情報に対応付けて、検査画像IMGにおける欠陥有無の状態をマッピングする(ステップS210)。すなわち、CPU105は、検査画像IMGにおける欠陥の位置を特定する。
【0150】
その後、CPU105は、検査画像IMGから抽出すべき部分領域BLKが残っているか否かを判断する(ステップS212)。検査画像IMGから抽出すべき部分領域BLKが残っている場合(ステップS212においてYESの場合)には、CPU105は、ステップS200以下の処理を繰返す。
【0151】
これに対して、検査画像IMGから抽出すべき部分領域BLKが残っていない場合(ステップS212においてNOの場合)には、欠陥検出部244として機能するCPU105は、検査画像IMGに対して欠陥の位置と特定された箇所に対して、エッジ検出などを実行し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する(ステップS214)。そして、処理はステップS16へ戻る。
【0152】
(本実施の形態による作用効果)
この発明の実施の形態によれば、学習画像に対する学習処理(学習固有空間の決定および学習固有空間に対する投影ベクトルの内積値の算出)に際して、学習画像中に予め指定された基準領域と類似した性質を有する領域を学習対象から除外する。これにより、冗長な画像ベクトルを除外して、学習固有空間を決定するための固有ベクトルの算出に用いる画像ベクトルを最適化できるので、演算に要する時間を低減できる。したがって、学習処理に要する時間を短縮化できる。
【0153】
また、この発明の実施の形態によれば、ユーザが任意に設定する学習画像内の基準領域に基づいて学習対象領域が決定される。すなわち、基準領域は欠陥のない正常な領域として取り扱われるので、ユーザは、対象ワークの形状や色などに応じて、適切な領域を欠陥のない正常な領域に設定できる。そのため、対象ワークの変更などにも相対的に柔軟に対応することができる。
【0154】
また、この発明の実施の形態によれば、欠陥にみなされる部分領域についての画像ベクトルを学習対象画像ベクトルから除外することができるので、欠陥部分の影響を排除した学習固有空間を決定することができる。そのため、検査画像に対する欠陥の検出精度をより高めることができる。
【0155】
(変形例)
上述の図1では、対象ワーク2として電子部品やプラスチック部品などの相対的に小型のものを検査対象とする構成について例示したが、本発明に係る欠陥検出装置は、相対的に大型のものを検査対象とすることもできる。
【0156】
図18は、この発明に実施の形態の変形例に従う欠陥検出装置を含む欠陥検出システム1#を示す概略図である。
【0157】
図18を参照して、欠陥検出システム1#は、一例として液晶パネルなどの相対的に大型の板状の対象ワーク2に対して欠陥を検査対象とする場合の構成を示す。欠陥検出システム1#は、搬送架台20と、搬送架台20上を搬送方向にスライド可能な搬送台22と、撮像部14と、撮像部14を対象ワーク2の搬送方向と直交する方向に移動可能な撮像部駆動機構24とを備える。対象ワーク2は、搬送台22の上に配置されて搬送方向に沿って移動する。撮像部14は、搬送台22によって移動する対象ワーク2を搬送方向に所定間隔毎に撮影するとともに、撮像部駆動機構24によって移動されることにより、対象ワーク2を搬送方向と直交する方向にも所定間隔毎(但し、搬送方向の所定間隔とは異なる)に撮影する。
【0158】
この撮像部14で撮影された画像は、インターフェイス16を介して、欠陥検出装置を実現する制御装置100#へ伝送される。なお、撮像部14には、照明部が一体的に組込まれていてもよく、この場合には、インターフェイス16からこの照明部を駆動するための電源などが供給される。
【0159】
制御装置100#は、本体101#と、モニタ102#と、キーボード103#などをさらに含む。本体101#、モニタ102#、およびキーボード103#は、それぞれ図1に示すコンピュータ100の本体101、モニタ102、およびキーボード103と同様の機能を実現する。
【0160】
特に、本実施の形態の変形例に従う欠陥検出システム1#では、撮像部14の撮影範囲内に対象ワーク2のすべてを収めることができないので、対象ワーク2の搬送方向の位置および撮像部14の搬送方向と直交する方向の位置と対応付けた処理によって、欠陥位置を特定する必要がある。
【0161】
また、対象ワーク2と同様の大きさの基準ワークを用いる必要はなく、撮像部14の撮影範囲にその全体が収まるような大きさの基準ワークを用いれば十分である。
【0162】
その他の構成および処理については、上述の本実施の形態に従う欠陥検出装置と同様であるので、詳細な説明は繰返さない。
【0163】
(その他の形態)
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【0164】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【0165】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【0166】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【0167】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0168】
1,1# 欠陥検出システム、2 対象ワーク、4 基準ワーク、6 搬送機構、8,14 撮像部、10 照明部、12 光源部、16,109 インターフェイス、20 搬送架台、22 搬送台、24 撮像部駆動機構、100 コンピュータ、100# 制御装置、101 コンピュータ本体、101# 本体、102,102# モニタ、103,103# キーボード、104 マウス、106 メモリ、107 固定ディスク、111 FD駆動装置、113 CD−ROM駆動装置、202,232 画像バッファ部、204,214,234 抽出部、206,216,236 ベクトル生成部、208,222 固有ベクトル算出部、210,224 固有空間決定部、212,238 距離算出部、218 判断部、220 画像ベクトルバッファ部、226 内積値算出部、228 学習結果格納部、242 欠陥位置特定部、244 欠陥検出部。
【技術分野】
【0001】
この発明は検査画像から欠陥を検出する欠陥検出装置、欠陥検出方法および欠陥検出プログラムに関し、特に学習画像から取得された学習結果に基づいて欠陥を検出する技術に関するものである。
【背景技術】
【0002】
従来から、FA(Factory Automation)分野などにおいては、検査対象物(対象ワーク)に現れるキズやゴミなどの欠陥を検出する欠陥検査技術が開発されてきた。このような欠陥検査技術の代表的な方法として、検査対象物を撮影して得られる検査画像に対して画像処理を行なうことで欠陥を検出する、画像計測を用いた欠陥検査が実用化されている。
【0003】
このような画像計測を用いた欠陥検査の中でも、欠陥に相当するモデルを予め取得しておき、検査画像の各領域をこのモデルと比較することで、欠陥を検出する方法が一般的に採用されてきた。
【0004】
これに対して、画像の全体で成り立つ性質から画像中の全体と異なる部分を検出する方法が提案されている。たとえば、非特許文献1には、画像のフラクタル性や周期性によって得られる画像の局所領域間における相関性に着目した欠陥検出方法が開示されている。
【0005】
この欠陥検出方法によれば、検査画像からサンプルを複数切り出し、このサンプル毎に画像ベクトルを算出する。そして、これらの画像ベクトル列に対して固有ベクトル列を算出することによって固有空間を生成し、この固有空間とサンプル(画像ベクトル)との距離を用いて欠陥箇所を検出する。このような検出方法は、固有空間欠陥検出器(ESDD:Eigen Space Defect Detector)と称され、本明細書においても、固有空間と画像ベクトルとの距離に基づく欠陥の検出方法を「ESDD」とも総称する。
【0006】
このように、ESDDによれば、予め欠陥に相当するモデルを取得しておく必要がないので、検査対象物に生じ得る欠陥を予めモデル化することが困難な場合であっても、欠陥を検出できるという利点がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】天野敏之、「画像の相関性に基づく欠陥検出」、画像の認識・理解シンポジウム(MIRU2005)、2005年7月
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1に記載されたESDDでは、検査画像毎に同様の処理を行なって、検査画像についての固有空間と同一の検査画像から切り出されたサンプルの画像ベクトルとの距離を算出し、この算出した距離同士を比較する必要がある。このような検査画像について生成される固有空間は、欠陥部分の情報を多少なりとも含み得るため、欠陥検出の精度が低下する可能性があるという問題がある。
【0009】
また、非特許文献1に記載されたESDDでは、切り出したサンプルの多くが同様の性質を有している場合であっても、すべてのサンプルについて画像ベクトルを算出し、これらの画像ベクトル列に対して固有ベクトルを算出している。このような固有ベクトルおよび固有空間の算出には、分散行列の計算を伴うため計算時間を多く要するという問題もある。
【0010】
一方、同様の性質を有している画像ベクトル同士からは、近似した固有ベクトルが算出されるので、画像の全体で成り立つ性質を取得するという目的からは、同様の性質を有する複数の画像ベクトルの組に対して固有ベクトルを算出する必要性は低い。
【0011】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、より正確かつより高速に欠陥検出が可能な学習型の欠陥検出装置、欠陥検出方法および欠陥検出プログラムを提供することである。
【課題を解決するための手段】
【0012】
この発明のある局面に従えば、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出装置を提供する。欠陥検出装置は、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、算出される第1の固有ベクトルを用いて第1の固有空間を決定する手段と、学習画像から部分領域を順次抽出する手段と、部分領域の画像情報から候補画像ベクトルを生成する手段と、候補画像ベクトルと第1の固有空間との距離を算出する手段と、距離が所定条件を満たしているか否かを判断する手段と、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、算出される第2の固有ベクトルを用いて第2の固有空間を決定する手段と、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断する手段とを備える。
【0013】
この発明によれば、学習画像に基づく学習処理を行なう過程において、まず、学習画像に対して指定される基準領域の画像情報に基づいて、第1の固有ベクトルが算出される。そして、この第1の固有ベクトルと学習画像の部分領域の画像情報から生成される候補画像ベクトルとの距離に基づいて、第2の固有空間の決定に使用する候補画像ベクトルが選択される。さらに、学習画像から生成される基準画像ベクトルと選択された候補画像ベクトルとの組から第2の固有ベクトルを算出し、この第2の固有ベクトルから第2の固有空間が決定される。
【0014】
これにより、検査画像から欠陥を検出ために使用される第2の固有空間を決定するにあたり、所定条件を満たす画像ベクトルだけが用いられる。そのため、第2の固有空間をより正確かつより高速に決定できる。
【0015】
好ましくは、所定条件は、候補画像ベクトルと第1の固有空間との距離が第1のしきい値を超えていることを含み、第1のしきい値は、基準画像ベクトルと第1の固有空間との距離に基づいて決定される。
【0016】
さらに好ましくは、第1のしきい値は、基準画像ベクトルの組に含まれる基準画像ベクトルと第1の固有空間との距離の最大値である。
【0017】
好ましくは、所定条件は、候補画像ベクトルと第1の固有空間との距離が第2のしきい値を下回っていることを含み、第2のしきい値は、欠陥を含む部分領域の画像ベクトルと第1の固有空間との距離に基づいて決定される。
【0018】
好ましくは、基準画像ベクトルの組を生成する手段は、複数の学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する。
【0019】
この発明の別の局面に従えば、演算装置および記憶装置を含むコンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出方法を提供する。欠陥検出方法は、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成するステップと、演算装置が、記憶装置に格納された基準画像ベクトルの組から第1の固有ベクトルを算出するステップと、演算装置が、算出した第1の固有ベクトルを用いて第1の固有空間を決定するステップと、演算装置が、記憶装置に格納された学習画像から部分領域を順次抽出するステップと、演算装置が、部分領域の画像情報から候補画像ベクトルを生成するステップと、演算装置が、候補画像ベクトルと第1の固有空間との距離を算出するステップと、演算装置が、距離が所定条件を満たしているか否かを判断するステップと、演算装置が、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出するステップと、演算装置が、算出した第2の固有ベクトルを用いて第2の固有空間を決定するステップと、演算装置が、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断するステップとを含む。
【0020】
この発明のさらに別の局面に従えば、コンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出プログラムを提供する。欠陥検出プログラムは、学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、算出される第1の固有ベクトルを用いて第1の固有空間を決定する手段と、学習画像から部分領域を順次抽出する手段と、部分領域の画像情報から候補画像ベクトルを生成する手段と、候補画像ベクトルと第1の固有空間との距離を算出する手段と、距離が所定条件を満たしているか否かを判断する手段と、基準画像ベクトルと、順次抽出される部分領域に対応する候補画像ベクトルのうちその距離が所定条件を満たしている候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、算出される第2の固有ベクトルを用いて第2の固有空間を決定する手段と、検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと第2の固有空間との距離に基づいて欠陥の有無を判断する手段として、コンピュータを機能させる。
【発明の効果】
【0021】
この発明によれば、より正確かつより高速に欠陥検出が可能な学習型の欠陥検出装置、欠陥検出方法および欠陥検出プログラムを実現できる。
【図面の簡単な説明】
【0022】
【図1】この発明の実施の形態に従う欠陥検出装置を含む欠陥検出システムの全体構成を示す概略図である。
【図2】コンピュータのハードウェア構成を示す概略構成図である。
【図3】この発明の実施の形態に従う欠陥検出処理の概略を説明するための図である。
【図4】本実施の形態に従う欠陥検出装置における学習処理を概念的に説明するための図である。
【図5】この発明の実施の形態に従う欠陥検出装置の制御構造を示す機能ブロック図である。
【図6】本実施の形態に従う欠陥検出装置における画像ベクトルの生成処理を概念的に説明するための図である。
【図7】本実施の形態に従う欠陥検出装置における学習画像の部分領域の画像情報を概念的に説明するための図である。
【図8】この発明の実施の形態に従う欠陥検出装置において生成される基準画像ベクトルをN次元ユークリッド空間上に表現した一例である。
【図9】2次元ユークリッド空間上において基底ベクトルを説明するための図である。
【図10】2つの基底ベクトルで形成される固有空間を説明するための図である。
【図11】固有空間を一般的に表現した図である。
【図12】固有空間と画像ベクトルとの距離を説明するための図である。
【図13】1次元の固有空間と画像ベクトルとの距離を説明するための図である。
【図14】学習固有空間を決定するために対象となる部分領域を選別する処理を説明するための図である。
【図15】この発明に実施の形態に従う欠陥検出システムにおいて対象ワークに発生し得る欠陥を検出するための処理手順を示すフローチャートである。
【図16】この発明に実施の形態に従う学習処理の処理手順を示すフローチャートである。
【図17】この発明に実施の形態に従う欠陥検出処理の処理手順を示すフローチャートである。
【図18】この発明に実施の形態の変形例に従う欠陥検出装置を含む欠陥検出システムを示す概略図である。
【発明を実施するための形態】
【0023】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0024】
(全体装置構成)
図1は、この発明の実施の形態に従う欠陥検出装置を含む欠陥検出システム1の全体構成を示す概略図である。
【0025】
図1を参照して、欠陥検出システム1は、代表的に生産ラインなどに組込まれ、欠陥検査の対象となるワーク(以下、対象ワークとも称す)における欠陥の有無および欠陥の発生位置を検出する。欠陥とは、代表的に対象ワークに生じるキズやゴミなどを意味する。
【0026】
本実施の形態に従う欠陥検出システム1においては、対象ワーク2は、ベルトコンベヤなどの搬送機構6によって搬送され、搬送された対象ワーク2は、撮像部8において順次撮影される。撮像部8によって撮影された画像(以下、「検査画像」とも称す)は、本実施の形態に従う欠陥検出装置を実現する代表例であるコンピュータ100へ伝送される。
【0027】
撮像部8は、一例として、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサなどの撮像素子およびレンズを備え、対象ワーク2または後述する基準ワーク4を撮影する。なお、撮像部8は、搬送機構6の搬送動作に応じてコンピュータ100が発生する撮影指令などに従って撮影を行なう。
【0028】
この撮像部8で撮影される画像は、典型的には、画素単位で画像情報を有する。代替的に、複数の画素をまとめたブロック単位で画像情報を有するようにしてもよい。このような「画像情報」としては、撮像部8が3バンドのカラーカメラであれば、光の三原色に基づく「赤色」「緑色」「青色」の階調値(R成分値、G成分値、B成分値)で特定される情報が用いられる。代替的に、画像情報として、光の三原色の補色である「シアン」「マゼンダ」「黄色」の階調値(C成分値、M成分値、Y成分値)で特定される情報を用いてもよい。また、撮像部8がより多くのバンド数を有するカラーカメラであれば、そのバンド数に応じた数の階調値で特定される情報が用いられる。
【0029】
あるいは、撮像部8がモノクロカメラであれば、濃淡を示す階調値(グレイスケール)で特定される情報を用いてもよい。この階調値を2段階とした場合には、「白」または「黒」の2値化画像を表わすことになる。
【0030】
さらに、上述のような階調値に代えて、「色相(Hue)」「明度(Value)」「彩度(Chroma)」の各パラメータからなる色属性を画像情報」として用いてもよい。
【0031】
特に本実施の形態に従う欠陥検出装置は、欠陥検査の基準にすべき基準ワーク4を予め撮影しておき、この撮影によって得られる画像(以下、「学習画像」とも称す)から学習結果を取得し、この学習結果に基づいて検査画像における欠陥を検出する。そのため、基準ワーク4としては、対象ワーク2と同一種類の製品を選択する必要がある。なお、基準ワーク4は、予め欠陥が発生していないことが分かっている被写体であることが望ましい。ここで、「欠陥を含まない」とは、所定の判断基準下で欠陥と判断される部分を含まないことを意味する。
【0032】
また、本明細書においては、学習結果の代表例として、学習画像に基づいて算出される固有空間を用いる。この固有空間およびその算出手順については、後述する。
【0033】
一方、対象ワーク2としては、電子部品やプラスチック部品などの連続的に生産される同一種類の製品が適している。なお、本発明に係る欠陥検出装置が欠陥検出の対象とする対象ワークの大きさや種類などは特に制限されない。さらに、工場の生産ラインで製造されるものに限られず、りんごなどの農作物の傷や映画フィルムにおけるスクラッチ傷などを検出することもできる。
【0034】
さらに、欠陥検出システム1は、撮像部8の撮影範囲の付近を照明するための照明部10と、この照明部10を駆動する光源部12とを含む。そして、この光源部12は、コンピュータ100からの照明指令に従って、照明部10から所定の光量の光を照射させる。照明部10から照射される光は、比較的波長スペクトルの広いものが望ましい。
【0035】
また、コンピュータ100は、FD(Flexible Disk)駆動装置111およびCD−ROM(Compact Disk-Read Only Memory)駆動装置113を備えたコンピュータ本体101と、モニタ102と、キーボード103と、マウス104とを含む。そして、コンピュータ100は、予め格納されたプログラムを実行することで、本実施の形態に従う欠陥検出装置を実現する。
【0036】
(ハードウェア構成)
図2は、コンピュータ100のハードウェア構成を示す概略構成図である。
【0037】
図2を参照して、コンピュータ本体101は、図1に示すFD駆動装置111およびCD−ROM駆動装置113に加えて、相互にバスで接続された、演算装置であるCPU(Central Processing Unit)105と、メモリ106と、記憶装置である固定ディスク107と、インターフェイス109とを含む。
【0038】
FD駆動装置111にはFD112が装着され、CD−ROM駆動装置113にはCD−ROM114が装着される。上述したように、本実施の形態に従う欠陥検出装置は、CPU105がメモリ106などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、FD112やCD−ROM114などの記録媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、FD駆動装置111やCD−ROM駆動装置113などにより記録媒体から読取られて、またはインターフェイス109にて受信されて、固定ディスク107に格納される。さらに、固定ディスク107からメモリ106に読出されて、CPU105により実行される。
【0039】
モニタ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が実行するプログラムや画像データなどを記憶する不揮発性の記憶装置である。特に、本実施の形態に従う固定ディスク107には、後述するように、学習画像についての投影ベクトルの内積値が格納される。また、コンピュータ100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【0040】
(欠陥検出処理の概略)
図3は、この発明の実施の形態に従う欠陥検出処理の概略を説明するための図である。図3(a)は、欠陥を含まない学習画像LNIMGの一例を示し、図3(b)は、欠陥DEFを含む検査画像IMGの一例を示し、図3(c)は、欠陥DEFを含まない部分領域の一例を示し、図3(d)は、欠陥DEFを含む部分領域の一例を示す。
【0041】
図3(a)を参照して、まず、本実施の形態に従う画像検出装置は、基準ワーク4を撮
影して得られた、欠陥を含まない学習画像LNIMGから所定の大きさの部分領域BLKLNを順次抽出する。そして、本実施の形態に従う画像検出装置は、この学習画像LNIMGの全体として現れる性質(特徴)を予め取得する。なお、図3(a)では、図面を簡素化するために、互いに重ならないように部分領域BLKを順次抽出する例を示すが、互いに重なるように部分領域BLKLNを設定してもよい。本実施の形態に従う欠陥検出装置によれば、部分領域の各々について欠陥DEFの有無を判断するため、隣接する部分領域BLKの判断結果に影響を受けないからである。
【0042】
図3(b)を参照して、続いて、本実施の形態に従う画像検出装置は、対象ワーク2を撮影して得られた検査画像IMGから所定の大きさの部分領域BLK1,BLK2を抽出したものとする。なお、検査画像IMGから抽出する部分領域BLK1,BLK2は、学習画像LNIMGから抽出した部分画像BLKの大きさといずれも同じである。
【0043】
図3(c)を示すように、部分領域BLK1に欠陥DEFが含まない場合には、部分領域BLK1は、学習画像LNIMGの全体として現れる性質とほぼ同様の性質を有することになる。一方、図3(d)に示すように、部分領域BLK2に欠陥DEFが含まれる場合には、部分領域BLK2は、学習画像LNIMGの全体として現れる性質とは異なる特徴的な性質を有することになる。
【0044】
そこで、本実施の形態に従う欠陥検出装置は、基準ワーク4を撮影して得られる学習画像の全体として現れる性質を学習結果として予め取得しておき、検査画像IMGの各部分領域BLKに現れる性質を予め取得した学習画像の全体として現れる性質と比較することで、検査画像IMG中の欠陥DEFを検出する。
【0045】
本実施の形態では、この学習画像の全体として現れる性質として、後述するように、各部分領域BLKの画像情報を含む画像ベクトルの組から算出される固有ベクトルにより決定される固有空間を用いる。そして、この固有空間と画像ベクトルとの距離に基づいて、検査画像IMG中の欠陥DEFを検出する。すなわち、本実施の形態に従う欠陥検出装置は、検査画像IMGから算出される固有空間を学習結果として用いる。
【0046】
特に、本実施の形態に従う欠陥検出装置は、学習画像LNIMGから抽出される部分領域BLKLNのうち、近似した性質を有するものを除外した上で、固有ベクトルを算出する。すなわち、本実施の形態に従う欠陥検出装置は、学習画像LNIMGから抽出される部分領域BLKLNのうち冗長なものを除外する。これにより、より効率的かつ短時間に固有ベクトルおよび固有空間を算出できる。
【0047】
(学習処理)
まず、図4を参照して、この学習処理の概略について説明する。なお、本実施の形態における学習処理は、学習画像の部分領域の画像情報から生成される複数の画像ベクトルに基づいて固有ベクトルを算出する処理、およびこの算出された固有ベクトルを用いて固有空間を決定する処理を含む。
【0048】
図4は、本実施の形態に従う欠陥検出装置における学習処理を概念的に説明するための図である。図4(a)は、学習画像LNIMGに基準領域STDが設定されている状態を示し、図4(b)は、学習画像LNIMGの基準領域STD以外の領域から部分領域BLKLNが抽出される状態を示し、図4(c)は、学習画像LNIMGのうち固有ベクトル(固有空間)の算出対象となる学習対象領域TRGが決定された状態を示す。
【0049】
図4(a)を参照して、まず、ユーザは、キーボード103やマウス104(図1)などを操作して、学習画像LNIMGに対して基準領域STDを設定する。この基準領域STDは、ユーザが学習画像LNIMGのうち基準として適切だと判断する領域、すなわち欠陥を含まないと判断できる領域である。そして、欠陥検出装置は、この基準領域STDから所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する画像情報から画像ベクトル(以下、「基準画像ベクトル」とも称す)をそれぞれ生成する。さらに、欠陥検出装置は、これらの基準画像ベクトルから固有ベクトル(以下、「基準固有ベクトル」とも称す)を算出し、この基準固有ベクトルを用いて固有空間(以下、「基準固有空間」とも称す)を決定する。この基準画像ベクトルの生成、基準固有ベクトルの算出、基準固有空間の決定については後述する。なお、基準領域STDは、少なくとも部分領域BLKLNの大きさより大きければ、任意の大きさに設定できる。
【0050】
その後、欠陥検出装置は、図4(b)に示すように、学習画像LNIMGのうち基準領域STDを除いた領域から部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する画像情報から画像ベクトル(以下、「候補画像ベクトル」とも称す)をそれぞれ生成する。そして、欠陥検出装置は、候補画像ベクトルの各々と基準固有空間との距離を算出し、この算出した距離が所定条件を満たしている候補画像ベクトルを抽出する。この所定条件は、学習画像LNIMGから順次抽出される部分領域BLKLNのうち、基準領域STDと同様の性質を有するものを除外するように決定される。なお、候補画像ベクトルを抽出する領域をユーザがさらに設定するようにしてもよい。
【0051】
このような手順によって、欠陥検出装置は、学習画像LNIMGのうち、基準領域STDおよび学習対象領域TRGを決定する(図4(c)参照)。この学習対象領域TRGは、その画像ベクトルと基準固有空間との距離が所定条件を満たすものの集合に相当する。そして、欠陥検出装置は、基準領域STDから順次抽出される部分領域BLKLNに対応する複数の基準画像ベクトルと、学習対象領域TRGから順次抽出される部分領域BLKLNに対応する複数の候補画像ベクトルとを含むベクトルの組に対して、固有ベクトルを算出する。そして、欠陥検出装置は、この算出した固有ベクトルを用いて欠陥検出の基準となる固有空間(以下、「学習固有空間」とも称す)を決定する。
【0052】
本実施の形態に従う欠陥検出装置は、このような手順によって決定された学習固有空間に基づいて、検査画像における欠陥を検出する。
【0053】
(学習処理の変形例)
上述の説明では、主として1つの学習画像LNIMGに基づいて、学習固有空間を決定する構成について例示したが、複数の学習画像LNIMGに基づいて、学習固有空間を決定してもよい。なお、この学習固有空間の決定にあたり、1つの学習対象領域TRGを決定する必要があるので、以下のような処理を実行する。
【0054】
より具体的には、まず、同一の基準ワーク4もしくは類似した基準ワーク4(たとえば、同じ製造ロッドであるもの)に対して複数回の撮像を行なうことで、複数枚の学習画像LNIMGを取得する。次に、複数の学習画像LNIMGの各々に対して、図4(a)〜図4(c)に示す一連の処理を実行する。この結果、複数の学習画像LNIMGのそれぞれに対応する複数の学習対象領域TRGが抽出される。この抽出された複数の学習対象領域TRGを統合処理(典型的には、OR演算もしくはAND演算)することで、1つの学習対象領域TRGを決定する。
【0055】
別の処理手順として、上記と同様に複数の学習画像LNIMGを取得した上で、いずれか1つの学習画像LNIMGにおいて、図4(b)に示すような基準領域STDを設定するとともに、残りの学習画像LNIMGにおける部分領域BLKLNと比較することで、その結果をそれぞれの学習画像LNIMGについて取得する。さらに、この取得した複数の結果を上記と同様の統合処理することで、1つの学習対象領域TRGを決定する。
【0056】
(制御構造)
次に、上述のような処理を実現するための制御構造について説明する。
【0057】
図5は、この発明の実施の形態に従う欠陥検出装置の制御構造を示す機能ブロック図である。
【0058】
図5を参照して、本実施の形態に従う欠陥検出装置は、その機能として、画像バッファ部202,232と、抽出部204,214,234と、ベクトル生成部206,216,236と、固有ベクトル算出部208,222と、固有空間決定部210,224と、距離算出部212,238と、判断部218と、画像ベクトルバッファ部220と、学習結果格納部228と、欠陥位置特定部242と、欠陥検出部244とを含む。
【0059】
画像バッファ部202は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される学習画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部202へ学習画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された学習画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
【0060】
抽出部204は、ユーザからの基準領域指定に基づいて、学習画像LNIMGに対して設定された基準領域STDから所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する学習画像の画像情報を画像バッファ部202から読み出してベクトル生成部206へ出力する。言い換えれば、抽出部204は、学習画像LNIMGに設定される基準領域STDから所定の大きさの学習サンプル(局所領域)を順次切り出す。
【0061】
ベクトル生成部206は、抽出部204から順次抽出される学習画像LNIMGの基準領域STD中における部分領域BLKLNの画像情報から基準画像ベクトルx(STD)iを順次生成する。そして、ベクトル生成部206は、生成した基準画像ベクトルx(STD)iを固有ベクトル算出部208、距離算出部212、および画像ベクトルバッファ部220へそれぞれ出力する。
【0062】
図6は、本実施の形態に従う欠陥検出装置における画像ベクトルの生成処理を概念的に説明するための図である。
【0063】
図7は、本実施の形態に従う欠陥検出装置における学習画像の部分領域の画像情報を概念的に説明するための図である。
【0064】
図6および図7を参照して、一例として、基準領域STDがW画素×H画素で構成されるとする。この基準領域STDに対して、抽出部204(図5)は、所定の大きさ(一例として、w画素×h画素)の部分領域BLKLNを順次設定する。そして、ベクトル生成部206(図5)は、この抽出部204が設定する部分領域BLKLNに含まれる画素の画像情報をベクトル化し、基準画像ベクトルx(STD)iを順次生成する。
【0065】
なお、部分領域BLKLNは、基準領域STDの大きさより小さければいずれの大きさであってもよい。この部分領域BLKLNの大きさは予め定めておいてもよいし、設定される基準領域STDの大きさに応じて動的に決定されてもよい。
【0066】
図6および図7を参照して、部分領域BLKLNの各々はw×h個の画素を含み、各画素は画像情報yi(1≦i≦N=w×h)を有する。すなわち、抽出部204は、部分領域BLKLNの設定毎に、N個の画像情報yiをベクトル生成部206へ出力する。
【0067】
具体的には、ベクトル生成部206は、各部分領域BLKLNに対して、以下のような基準画像ベクトルx(STD)iを生成する。
【0068】
基準画像ベクトルx(STD)i=[y1,y2,・・・,yN]T
但し、N=w×h
なお、各画素がR成分値、G成分値、B成分値からなる場合には、画像情報yiはこれらの成分値(階調値)を含む3次元の配列となる。そのため、基準画像ベクトルx(STD)iとしては、以下のようになる。
【0069】
x(STD)i=[R1,G1,B1,R2,G2,B2,・・・,RN,GN,BN]T
図8は、この発明の実施の形態に従う欠陥検出装置において生成される基準画像ベクトルx(STD)iをN次元ユークリッド空間上に表現した一例である。
【0070】
図8を参照して、ベクトル生成部206が生成する各部分領域BLKLNについての基準画像ベクトルx(STD)iは、N次元ユークリッド空間上の点として定義できる。
【0071】
再度、図5を参照して、固有ベクトル算出部208は、ベクトル生成部206が順次生成する基準画像ベクトルx(STD)iの組から固有ベクトルE(STD)を算出する。この固有ベクトルE(STD)は、学習画像LNIMGの基準領域STDに現れる性質を表す。
【0072】
具体的には、固有ベクトル算出部208は、ベクトル生成部206で生成される基準画像ベクトルx(STD)iの組(集合)として、以下のような集合ベクトルXを算出する。
【0073】
集合ベクトルX=[x(STD)1,x(STD)2,・・・,x(STD)R]
但し、Rは学習画像LNIMGの基準領域STDに設定される部分領域BLKLNの総数(基準サンプル総数)である
たとえば、図6に示すようなW×H画素の基準領域STDに対して、互いに重なることなくw×h画素の部分領域BLKLNを順次設定する場合を考えると、基準サンプル総数Rは、R=(W/w)×(H/h)個となる。
【0074】
そして、固有ベクトル算出部208は、集合ベクトルXの分散行列Q=XXTを対角化する固有ベクトルE(STD)を算出する。すなわち、固有ベクトル算出部208は、以下の式が成立するように、固有ベクトルE(STD)および固有値行列Δを算出する。
【0075】
分散行列Q=XXT=E(STD)ΔE(STD)T
固有ベクトルE(STD)=[e(STD)1,e(STD)2,・・・,e(STD)R]
ここで、基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rは、以下の条件を満たす。
【0076】
【数1】
【0077】
また、固有値行列Δは、以下のように固有値λ(STD)1,λ(STD)2,・・・,λ(STD)Rの対角行列として表される。
【0078】
【数2】
【0079】
なお、上記のような固有ベクトルおよび固有値の演算処理は、KL(Karhunen-Loeve)展開などの公知のアルゴリズムを用いて実現することができる。
【0080】
固有空間決定部210は、固有ベクトル算出部208が算出した固有ベクトルE(STD)=[e(STD)1,e(STD)2,・・・,e(STD)R]のうち、その固有値が大きいものから所定数の基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)dim(dim≦R)を用いて基準固有空間E(STD)を決定する。この基準固有空間E(STD)は次元dimの超平面となる。なお、次元dimは、学習画像LNIMGの基準領域STDに現れる性質に応じて任意に決定できる。そして、固有空間決定部210は、決定した基準固有空間E(STD)を距離算出部212へ出力する。この基準固有空間E(STD)の決定方法について、以下より詳細に説明する。
【0081】
図9は、2次元ユークリッド空間上において基底ベクトルを説明するための図である。
図9を参照して、より理解を容易にするため、2次元の基準固有空間E(STD)=[e(STD)1,e(STD)2]として考える。なお、図9に示す2次元ユークリッド空間上のプロットは、基準画像ベクトルx(STD)iを示す。図9に示すように、基底ベクトルe(STD)1は、基準画像ベクトルx(STD)iの分布が最も広がっている方向(最も分散が大きい方法)に相当するベクトルであり、基底ベクトルe(STD)2は、基底ベクトルe(STD)1と直交するベクトルである。
【0082】
すなわち、固有ベクトルE(STD)を構成する基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの各々は、N次元ユークリッド空間上において、学習画像LNIMGの基準領域STDに現れる性質を代表するものであり、その固有値が大きいものほどその代表する度合いが大きくなる。ここで、固有値λ1≧λ2≧・・・≧λRであるので、それぞれ対応する基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの順で学習画像LNIMGの基準領域STDとして現れる性質を代表する度合いが大きいことを意味する。
【0083】
そこで、本実施の形態に従う欠陥検出装置では、このような基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rにおける物理的な意味を考慮して、その固有値が大きいものから順に所定数の基底ベクトルを用いて基準固有空間E(STD)を定義する。すなわち、基準固有空間E(STD)は、固有ベクトル算出部208で生成される基底ベクトルe(STD)1,e(STD)2,・・・,e(STD)Rの一部を用いて算出される部分空間である。このように算出される基準固有空間E(STD)は、学習画像LNIMGの基準領域STDに現れる性質のうち、基底ベクトルの次元(次数)に応じた程度で反映したものとなる。ここで、学習画像LNIMGの基準領域STDにおけるフラクタル性や周期性が支配的であれば、相対的に小さい次元の基底ベクトルで基底される基準固有空間E(STD)であっても、学習画像LNIMGの基準領域STDの特性をほぼ近似し得る。
【0084】
この基準固有空間E(STD)は、次元dimの超平面を示すことになる。なお、次元dimは、学習画像LNIMGの基準領域STDに現れる性質に応じて任意に決定できるが、次元dimが高くなるほど、後述する投影ベクトルなどに演算量が増大する。そのため、非特許文献1に開示されるような累積寄与度などに基づいて、適切な次元を決定することが望ましい。
【0085】
図10は、2つの基底ベクトルe(STD)1,e(STD)2で形成される固有空間を説明するための図である。図11は、固有空間を一般的に表現した図である。
【0086】
図10を参照して、一例として、2つの基底ベクトルe(STD)1,e(STD)2を用いた固有空間は、互いに直交する基底ベクトルe(STD)1と基底ベクトルe(STD)2とによって張られる超平面となる。また、図11を参照して、このような固有ベクトルは、N次元ユークリッド空間上に一般化して示される。
【0087】
再度、図5を参照して、抽出部214は、学習画像LNIMGの基準領域STD以外の領域から所定の大きさの部分領域BLKLNを順次抽出し、この順次抽出する部分領域BLKLNに対応する学習画像の画像情報を画像バッファ部202から読み出してベクトル生成部216へ出力する。言い換えれば、抽出部214は、学習画像LNIMGに設定される基準領域STD以外の領域から所定の大きさの学習候補サンプル(局所領域)を順次切り出す。ここで、基準領域STDから切り出される部分領域BLKLNの大きさは、学習画像LNIMGの基準領域STD以外の領域から切り出される部分領域BLKLNの大きさと等しい。なお、抽出部214は、抽出部204と連係することで、学習画像LNIMGの基準領域STDとそれ以外の領域とを識別する。
【0088】
ベクトル生成部216は、抽出部214から順次抽出される部分領域BLKLNの画像情報から候補画像ベクトルx(CND)jを順次生成する。そして、ベクトル生成部216は、生成した候補画像ベクトルx(CND)jを距離算出部212および判断部218へそれぞれ出力する。なお、ベクトル生成部216における候補画像ベクトルx(CND)jの生成処理は、ベクトル生成部206における基準画像ベクトルx(STD)iの生成処理と同様であるので、詳細な説明は繰返さない。
【0089】
距離算出部212は、基準固有空間E(STD)と基準画像ベクトルx(STD)iの各々との距離を算出し、この算出結果に基づいて、判断部218での判断に使用される所定条件を決定する。また、距離算出部212は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jを順次算出し、この算出した距離Δx(CND)jを判断部218へ出力する。なお、距離算出部212が出力する所定条件は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jについての下限しきい値および上限しきい値を含む。
【0090】
ここで、固有空間Eと画像ベクトルxとの距離の算出方法について一般化して説明する。
【0091】
図12は、固有空間Eと画像ベクトルxとの距離Δxを説明するための図である。
図12を参照して、固有空間Eと画像ベクトルxとの距離Δxは、ユークリッド距離として定義され、このユークリッド距離は、画像ベクトルxの固有空間Eへの投影点x’を用いて、以下のような式で表すことができる。
【0092】
|Δx|2=|x−x’|2=(x−x’)T(x−x’)
また、画像ベクトルxの固有空間Eへの投影点x’は、以下のような式で表すことができる。
【0093】
【数3】
【0094】
次に、図13を参照して、固有空間を1次元とした場合について、固有空間E(1)と画像ベクトルxとの間の距離について説明する。
【0095】
図13は、1次元の固有空間E(1)と画像ベクトルxとの距離Δxを説明するための図である。
【0096】
図13を参照して、原点から投影点x’までの距離Pについて考える。1次元の固有空間E(1)は、基底ベクトルe1で定義されるので、ベクトル集合Pは、画像ベクトルxと基底ベクトルe1とを用いて以下のような式で表すことができる。
【0097】
P=x・e1
これを、D次元まで拡張すると、原点から投影点x’までの距離Pの集合は、以下のような式で表すことができる。
【0098】
P=(P1,P2,・・・,PD)T
したがって、任意の成分における原点から投影点x’までの距離は、Pm=x・em(1≦m≦D)となる。
【0099】
図13に示すように固有空間E(1)が1次元であれば、固有空間E(1)(基底ベクトルe1平面)上の投影点x’は、基底ベクトルe1方向にP倍したものと考えられるので、x’=Pe1となる。但し、基底ベクトルe1を単位ベクトルとする。
【0100】
これを、D次元まで拡張すると、投影点x’は以下のような式で表すことができる。
【0101】
【数4】
【0102】
再度、固有空間Eと画像ベクトルxとの距離Δxについて考える。上述したように、
【0103】
【数5】
【0104】
であるので、
|Δx|2=|x−x’|2=(x−x’)T(x−x’)
=(x−EP)T(x−EP) (但し、P=ETx)
=xTx−xTEP−PTETx+PTETEP
ここで、以下の式が成立するので、
【0105】
【数6】
【0106】
|Δx|2=xTx−PTP−PTP+PTP
=xTx−PTP
以上のように、固有空間Eと画像ベクトルxとの距離Δxは、画像ベクトルxとベクトル集合Pとを用いて、以下のような式で表すことができる。
【0107】
|Δx|2=xTx−PTP
ここで、ベクトル集合Pは、画像ベクトルxを投影点x’へ投影するための投影ベクトルに相当し、PTPは、この投影ベクトルの内積値に相当する。
【0108】
再度、図5を参照して、距離算出部212は、固有空間決定部210から出力される基準固有空間E(STD)と、ベクトル生成部206から出力される基準画像ベクトルx(STD)iの各々とを用いて、以下の演算式に従って距離Δx(STD)iを算出する。
【0109】
|Δx(STD)i|2=x(STD)iTx(STD)i−P(STD)iTP(STD)i
但し、P(STD)i=E(STD)Tx(STD)i
そして、距離算出部212は、このように順次算出される距離Δx(STD)iに基づいて、下限しきい値ThLおよび上限しきい値ThHを決定し、この決定したしきい値を判断部218へ出力する。
【0110】
同様に、距離算出部212は、固有空間決定部210から出力される基準固有空間E(STD)と、ベクトル生成部216から出力される候補画像ベクトルx(CND)jの各々とを用いて、以下の演算式に従って距離Δx(CND)jを算出する。
【0111】
|Δx(CND)j|2=x(CND)jTx(CND)j−P(CND)jTP(CND)j
但し、P(CND)j=E(STD)Tx(CND)j
判断部218は、ベクトル生成部216から順次出力される候補画像ベクトルx(CND)jの各々について、対応する距離Δx(CND)jが上述の下限しきい値ThLと上限しきい値ThHとの間に存在するか否かを判断する。そして、判断部218は、その距離Δx(CND)jが上述の下限しきい値ThLと上限しきい値ThHとの間に存在する学習候補画像ベクトルx(CND)k(0≦k≦j)を画像ベクトルバッファ部220へ出力する。
【0112】
ここで、下限しきい値ThLは、ベクトル生成部216から順次出力される候補画像ベクトルx(CND)jのうち、基準領域STDと近似した性質を有するものを除外するための条件である。すなわち、その距離Δx(CND)jが下限しきい値ThL以下である場合には、対応する部分領域BLKLNは基準領域STDと近似した性質を有することを意味し、後述する学習固有空間を決定するための対象からは除外される。一例として、距離算出部212は、算出される複数の距離Δx(STD)iの中での最大値を下限しきい値ThLに決定する。
【0113】
一方、上限しきい値ThLは、学習画像LNIMGに存在する欠陥を含む部分領域BLKLNを除外するための条件である。すなわち、学習画像LNIMGとしては、原則的に欠陥を含まない画像を用いるが、ユーザが気付かないうちに欠陥が含まれている場合や、欠陥を含む画像した取得できない場合には、このような欠陥を含む部分領域BLKLNから得られる画像ベクトルを、学習固有空間を決定するための対象から除外する。
【0114】
一例として、欠陥を含む部分領域が既知である場合には、この欠陥を含む部分領域から算出される画像ベクトルと基準固有空間E(STD)との距離に所定の比率(たとえば、80%)を乗じた値を上限しきい値ThHとして決定してもよい。また、欠陥を含む部分領域が既知でない場合には、距離算出部212において算出される複数の距離Δx(STD)iの分散値を求め、この分散値に所定の比率(たとえば、50%)を乗じた値を下限しきい値ThLに加えた値を、上限しきい値ThHとして決定してもよい。
【0115】
図14は、学習固有空間を決定するために対象となる部分領域を選別する処理を説明するための図である。図14(a)は、学習画像LNIMGに設定される部分領域BLKLNを概略的に示す図である。図14(b)は、図14(a)に示す部分領域BLKLNに対応した判断部218における判断処理結果の一例を示す図である。
【0116】
図14(a)を参照して、学習画像LNIMGのA−A線に沿って、複数の部分領域BLKLNが設定された場合を考える。図14(b)は、この部分領域BLKLNの各々に対応する距離Δx(CND)jの一例を示す。判断部218は、このような部分領域BLKLNに対応する距離Δx(CND)jのうち、下限しきい値ThLと上限しきい値ThHとの間にあるもの(候補画像ベクトルx(CND)j)を学習対象と判断する。一方、距離Δx(CND)jが下限しきい値ThL以下のもの、および距離Δx(CND)jが上限しきい値ThH以上のものは、学習対象から除外する。特に、距離Δx(CND)iが上限しきい値ThH以上のものは、欠陥を含む部分領域とみなされる。
【0117】
このように判断部218は、学習固有空間を決定するために有効な部分領域の画像ベクトルのみを、画像ベクトルバッファ部220へ選択的に出力する。
【0118】
再度、図5を参照して、画像ベクトルバッファ部220は、メモリ106(図1)の所定の領域に形成され、ベクトル生成部206から出力される基準画像ベクトルx(STD)iおよび判断部218から選択的に出力される学習対象画像ベクトルx(CND)kを格納する。
【0119】
固有ベクトル算出部222は、画像ベクトルバッファ部220に格納される基準画像ベクトルx(STD)iおよび学習対象画像ベクトルx(CND)kの組から固有ベクトルEを算出する。この固有ベクトルEは、学習画像LNIMGの全体に現れる性質を表す。
【0120】
具体的には、固有ベクトル算出部222は、画像ベクトルバッファ部220に格納される画像ベクトルの組(集合)として、以下のような集合ベクトルXを算出する。
【0121】
集合ベクトルX=[x(STD)1,x(STD)2,・・・,x(STD)R,x(CND)1,x(CND)2,・・・,x(CND)S]
但し、Rは学習画像LNIMGの基準領域STDに設定される部分領域BLKLNの総数であり、Sは所定条件を満足する学習対象画像ベクトルx(CND)kの総数である。
【0122】
固有ベクトル算出部222における固有ベクトルEの算出処理は、固有ベクトル算出部208における固有ベクトルE(STD)の算出処理と同様であるので、詳細な説明は繰返さない。
【0123】
固有空間決定部224は、固有ベクトル算出部222が算出した固有ベクトルE=[e1,e2,・・・,eR+S]のうち、その固有値が大きいものから所定数の基底ベクトルe1,e2,・・・,eD(D≦R+S)を用いて学習固有空間E(D)を算出する。なお、次元Dは、学習画像LNIMGに現れる性質に応じて任意に決定できるが、次元Dが高くなるほど、後述する投影ベクトルなどに演算量が増大する。そのため、非特許文献1に開示されるような累積寄与度などに基づいて、適切な次元を決定することが望ましい。
【0124】
なお、上述の説明においては、抽出部204が1つの学習画像に対して指定される基準領域STDの画像情報から基準画像ベクトルの組を生成する構成について例示したが、予め入力された複数の学習画像LNIMGに対してそれぞれ指定された基準領域STDの画像情報から基準画像ベクトルの組を生成してもよい。このような構成によれば、たとえば、複数の基準ワーク4を撮影し、この撮影した複数の学習画像LNIMGに基づいて基準固有空間を決定する場合などに有効である。
【0125】
再度、図5を参照して、画像バッファ部232は、メモリ106(図1)の所定の領域に形成され、装置外部から入力される検査画像を一時的に格納する。なお、本実施の形態においては、撮像部8から画像バッファ部232へ検査画像が入力される構成について例示するが、撮像部8以外の装置によって撮影された検査画像が記録媒体やネットワークなどを介して、予め固定ディスク107(図2)に格納されていてもよい。
【0126】
抽出部234は、画像バッファ部232に一時的に格納される検査画像IMGから所定の大きさの部分領域BLKを順次抽出し、この順次抽出する部分領域BLKに対応する検査画像IMGの画像情報をベクトル生成部236へ出力する。言い換えれば、抽出部234は、画像バッファ部232に一時的に格納される検査画像IMGから所定の大きさの検査サンプル(局所領域)を順次切り出す。このとき、検査画像IMGから順次抽出される部分領域BLKは、学習画像LNIMGから予め抽出された部分領域BLKと対応するように扱われる。
【0127】
また、抽出部234は、検査画像IMGから順次抽出する部分領域BLKの位置(ラベル情報)を欠陥位置特定部242へ出力する。
【0128】
ベクトル生成部236は、抽出部234によって順次抽出される検査画像IMGの部分領域BLKの画像情報から検査画像ベクトルxiを順次生成する。なお、ベクトル生成部236における検査画像ベクトルの生成処理は、ベクトル生成部206やベクトル生成部216における画像ベクトルの生成処理と同様であるので、詳細な説明は繰返さない。
【0129】
距離算出部238は、ベクトル生成部236から出力される検査画像ベクトルxiと学習固有空間E(D)とに基づいて、
|Δxi|2=xiTxi−PiTPi (但し、Pi=E(D)Txi)
の関係式に従って、学習固有空間E(D)と検査画像ベクトルxiとの距離Δxiを算出する。距離算出部238は、学習結果格納部228から学習固有空間E(D)を読出す。
【0130】
したがって、学習画像LNIMGに基づいて学習固有空間E(D)が一旦算出された後は、その後に入力される検査画像IMGに基づいて学習固有空間E(D)の算出処理は必要ない。そのため、画像中に含まれる欠陥部分の情報が基準となる学習固有空間E(D)に混入することがないので、欠陥検出の精度を高いまま維持することができる。また、学習固有空間E(D)の算出に必要な演算処理などを省略できるので、処理時間を短縮することもできる。
【0131】
欠陥位置特定部242は、距離算出部238において算出された距離Δxiの大きさに基づいて、検査画像IMG中の対応する部分領域BLKにおける欠陥の有無を判断する。代表的に、欠陥位置特定部242は、距離Δxiを所定のしきい値と比較し、距離Δxiが所定のしきい値を超えていれば、欠陥が存在すると判断する。なお、このしきい値は、学習画像LNIMGの対応する部分領域BLKについて算出した距離Δxiに応じて決定してもよい。
【0132】
さらに、欠陥位置特定部242は、抽出部234から出力される、検査画像IMGから抽出された部分領域BLKの位置を示すラベル情報を受けて、このラベル情報に対応付けて欠陥の有無をマッピングする。これにより、欠陥位置特定部242は、検査画像IMGにおける欠陥の位置を特定する。そして、欠陥位置特定部242は、この欠陥位置の特定情報を欠陥検出部244へ出力する。
【0133】
欠陥検出部244は、欠陥位置特定部242からの欠陥位置の特定情報に基づいて、画像バッファ部232に格納されている検査画像IMGを参照し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する。具体的には、欠陥検出部244は、検査画像IMGに対してエッジ検出などを実行する。そして、欠陥検出部244は、検出した欠陥の詳細情報などを欠陥検出結果として出力する。
【0134】
以上のような機能構成によって、本実施の形態に従う欠陥検出装置は、欠陥を含まない学習画像LNIMGに基づいて検査画像IMGにおける欠陥を検出する。
【0135】
(処理手順)
図15は、この発明に実施の形態に従う欠陥検出システム1において対象ワーク2に発生し得る欠陥を検出するための処理手順を示すフローチャートである。
【0136】
図1および図15を参照して、ユーザは、予め欠陥が発生していないことが分かっている基準ワーク4を搬送機構6上の撮像部8の撮影範囲に配置する(ステップS2)。そして、ユーザは、欠陥検出装置に所定の指令を与えて、この基準ワーク4を撮影した学習画像を取得させる(ステップS4)。この際、照明部10は、所定の光量の光を基準ワークに向けて照射する。なお、上述したように、撮像部8以外の装置によって予め撮影された学習画像を欠陥検出装置に与えるようにしてもよい。
【0137】
学習画像の取得後、欠陥検出装置は学習処理を実行し(ステップS6)、その学習結果(学習固有空間への投影ベクトルの内積値や画像ベクトルの大きさ)を格納する(ステップS8)。なお、学習処理については、後述する。
【0138】
この学習処理および投影ベクトルの内積値の格納が終了すると、ユーザは、対象ワーク2が搬送機構6上の撮像部8の撮影範囲に順次搬送されるように、搬送機構6などを操作する(ステップS10)。撮像部8の撮影範囲に対象ワーク2が搬送されると、欠陥検出装置は、撮像部8によって対象ワーク2を撮影することで検査画像を取得する(ステップS12)。なお、欠陥検出装置は、搬送機構6上などに配置される位置センサ(図示しない)などによって、対象ワーク2の到着を検出する。
【0139】
検査画像を取得すると、欠陥検出装置は、欠陥検出処理を実行し(ステップS14)、その欠陥検出結果を出力する(ステップS16)。なお、欠陥検出結果は、欠陥検出装置に格納されたり、モニタ102などに出力されたりする。
【0140】
そして、欠陥検出装置は、終了指示が与えられたか否かを判断する(ステップS18)。この終了指示は、ユーザなどによって与えられ、もしくは欠陥検出対象の対象ワーク2が不存在であることの検知などに連動して与えられる。終了指示が与えられていなければ(ステップS18においてNO)、欠陥検出装置は、ステップS12以降の処理を再度実行する。終了指示が与えられていれば(ステップS18においてYES)、処理は終了する。
【0141】
図16は、この発明に実施の形態に従う学習処理の処理手順を示すフローチャートである。また、図17は、この発明に実施の形態に従う欠陥検出処理の処理手順を示すフローチャートである。なお、図16および図17に示すフローチャートは、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより、図5に示すような機能を実現することで実行される。
【0142】
(学習処理の処理手順)
図5および図16を参照して、抽出部204として機能するCPU105は、ユーザからの学習画像LNIMGに対する基準領域STDの設定を受付ける(ステップS100)。このとき、ユーザは、キーボード103やマウス104(図1)を操作して、学習画像LNIMGに対して基準領域STDを設定する。そして、抽出部204として機能するCPU105は、学習画像LNIMGの基準領域STDから所定の大きさの部分領域BLKLNを抽出する(ステップS102)。そして、ベクトル生成部206として機能するCPU105は、抽出した部分領域BLKLNの画像情報から基準画像ベクトルx(STD)iを生成する(ステップS104)。さらに、CPU105は、学習画像LNIMGの基準領域STDLNから抽出すべき部分領域BLKが残っているか否かを判断する(ステップS106)。学習画像LNIMGの基準領域STDから抽出すべき部分領域BLKLNが残っている場合(ステップS106においてYESの場合)には、CPU105は、ステップS100以下の処理を繰返す。
【0143】
これに対して、学習画像LNIMGの基準領域STDから抽出すべき部分領域BLKLNが残っていない場合(ステップS106においてNOの場合)には、固有ベクトル算出部208として機能するCPU105は、基準画像ベクトルx(STD)iの組から固有ベクトルE(STD)を算出する(ステップS108)。そして、固有空間決定部210として機能するCPU105は、算出した固有ベクトルE(STD)のうち、その固有値が大きいものから順に所定数の固有ベクトルを用いて基準固有空間E(STD)を決定する(ステップS110)。
【0144】
距離算出部212として機能するCPU105は、基準固有空間E(STD)と基準画像ベクトルx(STD)iの各々との距離を算出し、この算出結果に基づいて候補画像ベクトルx(CND)jを選別するための所定条件を決定する(ステップS112)。
【0145】
さらに、抽出部214として機能するCPU105は、学習画像LNIMGに設定される基準領域STD以外の領域から所定の大きさの部分領域BLKLNを抽出する(ステップS114)。そして、ベクトル生成部216として機能するCPU105は、抽出した部分領域BLKの画像情報から候補画像ベクトルx(CND)jを生成する(ステップS116)。
【0146】
続いて、距離算出部212として機能するCPU105は、基準固有空間E(STD)と候補画像ベクトルx(CND)jとの距離Δx(CND)jを算出する(ステップS118)。そして、判断部218として機能するCPU105は、算出した距離ΔxjがステップS112において決定した所定条件を満足しているか否かを判断する(ステップS120)。算出した距離Δx(CND)jがステップS112において決定した所定条件を満足している場合(ステップS120においてYESの場合)には、CPU105は、対応の候補画像ベクトルx(CND)jを学習固有空間E(D)を決定するための学習対象に決定する(ステップS122)。これに対して、算出した距離Δx(CND)jがステップS112において決定した所定条件を満足していない場合(ステップS120においてNOの場合)には、CPU105は、対応の候補画像ベクトルx(CND)jを学習固有空間E(D)を決定するための学習対象外に決定する(ステップS124)。
【0147】
さらに、CPU105は、学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKLNが残っているか否かを判断する(ステップS126)。学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKLNが残っている場合(ステップS126においてYESの場合)には、CPU105は、ステップS114以下の処理を繰返す。
【0148】
学習画像LNIMGに設定される基準領域STD以外の領域から抽出すべき部分領域BLKが残っていない場合(ステップS126においてNOの場合)には、固有ベクトル算出部222として機能するCPU105は、基準画像ベクトルx(STD)iおよび学習固有空間E(D)を決定するための学習対象に決定された学習対象画像ベクトルx(CND)kの組から固有ベクトルEを算出する(ステップS128)。そして、固有空間決定部224として機能するCPU105は、算出した固有ベクトルEのうち、その固有値が大きいものから順に所定数の固有ベクトルを用いて学習固有空間E(D)を算出する(ステップS130)。そして、CPU105は、算出した学習固有空間E(D)を固定ディスク107へ格納する(ステップS132)。そして、処理はステップS8へ戻る。
【0149】
(欠陥検査処理の処理手順)
図5および図17を参照して、抽出部234として機能するCPU105は、検査画像IMGから所定の大きさの部分領域BLKを抽出する(ステップS200)。そして、ベクトル生成部236として機能するCPU105は、抽出した部分領域BLKの画像情報から検査画像ベクトルxiを生成する(ステップS202)。距離算出部238として機能するCPU105は、学習結果格納部228から、学習固有空間E(D)を読出す(ステップS204)。そして、CPU105は、検査画像ベクトルxiと、読出した学習固有空間E(D)とに基づいて、学習固有空間E(D)に対する検査画像ベクトルxiの距離Δxiを算出する(ステップS206)。欠陥位置特定部242として機能するCPU105は、距離Δxiの大きさに基づいて、検査画像IMGの対応する部分領域BLKにおける欠陥の有無を判断する(ステップS208)。そして、欠陥位置特定部242として機能するCPU105は、対象の部分領域BLKのラベル情報に対応付けて、検査画像IMGにおける欠陥有無の状態をマッピングする(ステップS210)。すなわち、CPU105は、検査画像IMGにおける欠陥の位置を特定する。
【0150】
その後、CPU105は、検査画像IMGから抽出すべき部分領域BLKが残っているか否かを判断する(ステップS212)。検査画像IMGから抽出すべき部分領域BLKが残っている場合(ステップS212においてYESの場合)には、CPU105は、ステップS200以下の処理を繰返す。
【0151】
これに対して、検査画像IMGから抽出すべき部分領域BLKが残っていない場合(ステップS212においてNOの場合)には、欠陥検出部244として機能するCPU105は、検査画像IMGに対して欠陥の位置と特定された箇所に対して、エッジ検出などを実行し、欠陥の種類や大きさなどの欠陥についての詳細な情報を検出する(ステップS214)。そして、処理はステップS16へ戻る。
【0152】
(本実施の形態による作用効果)
この発明の実施の形態によれば、学習画像に対する学習処理(学習固有空間の決定および学習固有空間に対する投影ベクトルの内積値の算出)に際して、学習画像中に予め指定された基準領域と類似した性質を有する領域を学習対象から除外する。これにより、冗長な画像ベクトルを除外して、学習固有空間を決定するための固有ベクトルの算出に用いる画像ベクトルを最適化できるので、演算に要する時間を低減できる。したがって、学習処理に要する時間を短縮化できる。
【0153】
また、この発明の実施の形態によれば、ユーザが任意に設定する学習画像内の基準領域に基づいて学習対象領域が決定される。すなわち、基準領域は欠陥のない正常な領域として取り扱われるので、ユーザは、対象ワークの形状や色などに応じて、適切な領域を欠陥のない正常な領域に設定できる。そのため、対象ワークの変更などにも相対的に柔軟に対応することができる。
【0154】
また、この発明の実施の形態によれば、欠陥にみなされる部分領域についての画像ベクトルを学習対象画像ベクトルから除外することができるので、欠陥部分の影響を排除した学習固有空間を決定することができる。そのため、検査画像に対する欠陥の検出精度をより高めることができる。
【0155】
(変形例)
上述の図1では、対象ワーク2として電子部品やプラスチック部品などの相対的に小型のものを検査対象とする構成について例示したが、本発明に係る欠陥検出装置は、相対的に大型のものを検査対象とすることもできる。
【0156】
図18は、この発明に実施の形態の変形例に従う欠陥検出装置を含む欠陥検出システム1#を示す概略図である。
【0157】
図18を参照して、欠陥検出システム1#は、一例として液晶パネルなどの相対的に大型の板状の対象ワーク2に対して欠陥を検査対象とする場合の構成を示す。欠陥検出システム1#は、搬送架台20と、搬送架台20上を搬送方向にスライド可能な搬送台22と、撮像部14と、撮像部14を対象ワーク2の搬送方向と直交する方向に移動可能な撮像部駆動機構24とを備える。対象ワーク2は、搬送台22の上に配置されて搬送方向に沿って移動する。撮像部14は、搬送台22によって移動する対象ワーク2を搬送方向に所定間隔毎に撮影するとともに、撮像部駆動機構24によって移動されることにより、対象ワーク2を搬送方向と直交する方向にも所定間隔毎(但し、搬送方向の所定間隔とは異なる)に撮影する。
【0158】
この撮像部14で撮影された画像は、インターフェイス16を介して、欠陥検出装置を実現する制御装置100#へ伝送される。なお、撮像部14には、照明部が一体的に組込まれていてもよく、この場合には、インターフェイス16からこの照明部を駆動するための電源などが供給される。
【0159】
制御装置100#は、本体101#と、モニタ102#と、キーボード103#などをさらに含む。本体101#、モニタ102#、およびキーボード103#は、それぞれ図1に示すコンピュータ100の本体101、モニタ102、およびキーボード103と同様の機能を実現する。
【0160】
特に、本実施の形態の変形例に従う欠陥検出システム1#では、撮像部14の撮影範囲内に対象ワーク2のすべてを収めることができないので、対象ワーク2の搬送方向の位置および撮像部14の搬送方向と直交する方向の位置と対応付けた処理によって、欠陥位置を特定する必要がある。
【0161】
また、対象ワーク2と同様の大きさの基準ワークを用いる必要はなく、撮像部14の撮影範囲にその全体が収まるような大きさの基準ワークを用いれば十分である。
【0162】
その他の構成および処理については、上述の本実施の形態に従う欠陥検出装置と同様であるので、詳細な説明は繰返さない。
【0163】
(その他の形態)
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【0164】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【0165】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【0166】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【0167】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0168】
1,1# 欠陥検出システム、2 対象ワーク、4 基準ワーク、6 搬送機構、8,14 撮像部、10 照明部、12 光源部、16,109 インターフェイス、20 搬送架台、22 搬送台、24 撮像部駆動機構、100 コンピュータ、100# 制御装置、101 コンピュータ本体、101# 本体、102,102# モニタ、103,103# キーボード、104 マウス、106 メモリ、107 固定ディスク、111 FD駆動装置、113 CD−ROM駆動装置、202,232 画像バッファ部、204,214,234 抽出部、206,216,236 ベクトル生成部、208,222 固有ベクトル算出部、210,224 固有空間決定部、212,238 距離算出部、218 判断部、220 画像ベクトルバッファ部、226 内積値算出部、228 学習結果格納部、242 欠陥位置特定部、244 欠陥検出部。
【特許請求の範囲】
【請求項1】
学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出装置であって、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、
前記基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、
算出される前記第1の固有ベクトルを用いて第1の固有空間を決定する手段と、
前記学習画像から部分領域を順次抽出する手段と、
前記部分領域の画像情報から候補画像ベクトルを生成する手段と、
前記候補画像ベクトルと前記第1の固有空間との距離を算出する手段と、
前記距離が所定条件を満たしているか否かを判断する手段と、
前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、
算出される前記第2の固有ベクトルを用いて第2の固有空間を決定する手段と、
前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断する手段とを備える、欠陥検出装置。
【請求項2】
前記所定条件は、前記候補画像ベクトルと前記第1の固有空間との距離が第1のしきい値を超えていることを含み、
前記第1のしきい値は、前記基準画像ベクトルと前記第1の固有空間との距離に基づいて決定される、請求項1に記載の欠陥検出装置。
【請求項3】
前記第1のしきい値は、前記基準画像ベクトルの組に含まれる前記基準画像ベクトルと前記第1の固有空間との距離の最大値である、請求項2に記載の欠陥検出装置。
【請求項4】
前記所定条件は、前記候補画像ベクトルと前記第1の固有空間との距離が第2のしきい値を下回っていることを含み、
前記第2のしきい値は、欠陥を含む部分領域の画像ベクトルと前記第1の固有空間との距離に基づいて決定される、請求項1〜3のいずれか1項に記載の欠陥検出装置。
【請求項5】
前記基準画像ベクトルの組を生成する手段は、複数の前記学習画像に対して指定される前記基準領域の画像情報から前記基準画像ベクトルの組を生成する、請求項1〜4のいずれか1項に記載の欠陥検出装置。
【請求項6】
演算装置および記憶装置を含むコンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出方法であって、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成するステップと、
前記演算装置が、前記記憶装置に格納された前記基準画像ベクトルの組から第1の固有ベクトルを算出するステップと、
前記演算装置が、算出した前記第1の固有ベクトルを用いて第1の固有空間を決定するステップと、
前記演算装置が、前記記憶装置に格納された前記学習画像から部分領域を順次抽出するステップと、
前記演算装置が、前記部分領域の画像情報から候補画像ベクトルを生成するステップと、
前記演算装置が、前記候補画像ベクトルと前記第1の固有空間との距離を算出するステップと、
前記演算装置が、前記距離が所定条件を満たしているか否かを判断するステップと、
前記演算装置が、前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出するステップと、
前記演算装置が、算出した前記第2の固有ベクトルを用いて第2の固有空間を決定するステップと、
前記演算装置が、前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断するステップとを含む、欠陥検出方法。
【請求項7】
コンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出プログラムであって、コンピュータを、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、
前記基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、
算出される前記第1の固有ベクトルを用いて第1の固有空間を決定する手段と、
前記学習画像から部分領域を順次抽出する手段と、
前記部分領域の画像情報から候補画像ベクトルを生成する手段と、
前記候補画像ベクトルと前記第1の固有空間との距離を算出する手段と、
前記距離が所定条件を満たしているか否かを判断する手段と、
前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、
算出される前記第2の固有ベクトルを用いて第2の固有空間を決定する手段と、
前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断する手段として機能させる、欠陥検出プログラム。
【請求項1】
学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出装置であって、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、
前記基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、
算出される前記第1の固有ベクトルを用いて第1の固有空間を決定する手段と、
前記学習画像から部分領域を順次抽出する手段と、
前記部分領域の画像情報から候補画像ベクトルを生成する手段と、
前記候補画像ベクトルと前記第1の固有空間との距離を算出する手段と、
前記距離が所定条件を満たしているか否かを判断する手段と、
前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、
算出される前記第2の固有ベクトルを用いて第2の固有空間を決定する手段と、
前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断する手段とを備える、欠陥検出装置。
【請求項2】
前記所定条件は、前記候補画像ベクトルと前記第1の固有空間との距離が第1のしきい値を超えていることを含み、
前記第1のしきい値は、前記基準画像ベクトルと前記第1の固有空間との距離に基づいて決定される、請求項1に記載の欠陥検出装置。
【請求項3】
前記第1のしきい値は、前記基準画像ベクトルの組に含まれる前記基準画像ベクトルと前記第1の固有空間との距離の最大値である、請求項2に記載の欠陥検出装置。
【請求項4】
前記所定条件は、前記候補画像ベクトルと前記第1の固有空間との距離が第2のしきい値を下回っていることを含み、
前記第2のしきい値は、欠陥を含む部分領域の画像ベクトルと前記第1の固有空間との距離に基づいて決定される、請求項1〜3のいずれか1項に記載の欠陥検出装置。
【請求項5】
前記基準画像ベクトルの組を生成する手段は、複数の前記学習画像に対して指定される前記基準領域の画像情報から前記基準画像ベクトルの組を生成する、請求項1〜4のいずれか1項に記載の欠陥検出装置。
【請求項6】
演算装置および記憶装置を含むコンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出方法であって、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成するステップと、
前記演算装置が、前記記憶装置に格納された前記基準画像ベクトルの組から第1の固有ベクトルを算出するステップと、
前記演算装置が、算出した前記第1の固有ベクトルを用いて第1の固有空間を決定するステップと、
前記演算装置が、前記記憶装置に格納された前記学習画像から部分領域を順次抽出するステップと、
前記演算装置が、前記部分領域の画像情報から候補画像ベクトルを生成するステップと、
前記演算装置が、前記候補画像ベクトルと前記第1の固有空間との距離を算出するステップと、
前記演算装置が、前記距離が所定条件を満たしているか否かを判断するステップと、
前記演算装置が、前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出するステップと、
前記演算装置が、算出した前記第2の固有ベクトルを用いて第2の固有空間を決定するステップと、
前記演算装置が、前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断するステップとを含む、欠陥検出方法。
【請求項7】
コンピュータを用いて、学習画像から取得された学習結果に基づいて検査画像における欠陥を検出する欠陥検出プログラムであって、コンピュータを、
前記学習画像に対して指定される基準領域の画像情報から基準画像ベクトルの組を生成する手段と、
前記基準画像ベクトルの組から第1の固有ベクトルを算出する手段と、
算出される前記第1の固有ベクトルを用いて第1の固有空間を決定する手段と、
前記学習画像から部分領域を順次抽出する手段と、
前記部分領域の画像情報から候補画像ベクトルを生成する手段と、
前記候補画像ベクトルと前記第1の固有空間との距離を算出する手段と、
前記距離が所定条件を満たしているか否かを判断する手段と、
前記基準画像ベクトルと、順次抽出される前記部分領域に対応する前記候補画像ベクトルのうちその前記距離が所定条件を満たしている前記候補画像ベクトルと、を含むベクトルの組から第2の固有ベクトルを算出する手段と、
算出される前記第2の固有ベクトルを用いて第2の固有空間を決定する手段と、
前記検査画像の部分領域について、その画像情報から生成される検査画像ベクトルと前記第2の固有空間との距離に基づいて欠陥の有無を判断する手段として機能させる、欠陥検出プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−198476(P2010−198476A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願番号】特願2009−44499(P2009−44499)
【出願日】平成21年2月26日(2009.2.26)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願日】平成21年2月26日(2009.2.26)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
[ Back to top ]