(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、図面を参照しながら、本開示の実施形態を説明する。
[1.構成]
図1に示す外観検査装置1は、入力部10と、演算部20と、記憶部30と、出力部40とを備える。
【0016】
入力部10は、検査対象物の外観を、同一の撮像条件で撮像した画像を入力する。検査対象物は、各種の工業製品または工業製品の部品等である。入力される画像には、検査対象画像と良品画像とが含まれる。検査対象画像は、良否判定の対象となる検査対象物を撮像した画像である。良品画像は、良品と判断された既知の検査対象物を撮像した画像である。
【0017】
演算部20は、CPU21と、RAM、ROM、フラッシュメモリ等の半導体メモリ(以下、メモリ22)と、を有するマイクロコンピュータを備える。演算部20の各種機能は、CPU21が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ22が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムが実行されることで、プログラムに対応する方法が実行される。なお、演算部は、1つのマイクロコンピュータを備えてもよいし、複数のマイクロコンピュータを備えてもよい。
【0018】
演算部20の機能を実現する処理には、外観検査処理と、変換データ生成処理とが含まれる。これらの処理の詳細については後述する。演算部20がこれらの処理を実現する手法はソフトウェアに限るものではなく、その一部又は全部の要素について、一つあるいは複数のハードウェアを用いて実現してもよい。例えば、上記機能がハードウェアである電子回路によって実現される場合、その電子回路は多数の論理回路を含むデジタル回路、又はアナログ回路、あるいはこれらの組合せによって実現してもよい。
【0019】
記憶部30は、読み出し、書き込みが可能な不揮発性メモリを備える。記憶部30は、例えば、HDD、フラッシュメモリ、コンピュータに対して着脱自在なUSBメモリ等であってもよい。記憶部30には、複数のデータベース(以下、DB)が構築される。具体的には、記憶部30は、良品画像DB31、学習画像DB32、変換データDB33を備える。良品画像DB31には、変換データの生成に使用する複数の良品画像が蓄積される。学習画像DB32には、変換データを調整する際の学習データとして使用される擬似欠陥画像が蓄積される。擬似欠陥画像は、変換データ生成処理によって生成される。変換データDB33には、検査対象画像から復元画像を生成する際に使用する変換データが記憶される。変換データは、擬似欠陥画像と同様に、変換データ生成処理によって生成される。
【0020】
出力部40は、少なくとも表示画面を有し、演算部20での外観検査処理による良否判定の判定結果や、判定の対象となった検査対象画像、処理の過程で得られる復元画像などを表示する。
【0021】
[2.処理]
[2−1.変換データ生成処理]
次に、演算部20が実行する変換データ生成処理について、
図2のフローチャートを用いて説明する。本処理は、良品画像DB31に複数の良品画像が格納されている状態で、入力部10を介して外部から生成指示が入力されると起動する。良品画像DB31に格納される良品画像は、例えば、入力部10を介して外部から取得してもよいし、外観検査処理により良品と判断された検査対象画像を用いてもよい。また、演算部20として機能するコンピュータに、良品画像が格納されたUSBメモリ等を良品画像DB31として接続してもよい。
【0022】
本処理が起動すると、演算部20は、S110では、良品画像DB31に蓄積された複数の良品画像を取得する。ここでは、例えば、数千個オーダーの良品画像を用いるものとする。
【0023】
S120では、取得した複数の良品画像の一部について、擬似欠陥画像を生成し、学習画像DB32に格納する。擬似欠陥画像は、検査対象物の表面についた疵などの欠陥を模擬した模擬画像を、良品画像に合成することによって生成する。具体的には、欠陥の形状を模擬した複数種類のテンプレート(即ち、欠陥の形状)を用意し、使用するテンプレートをランダムに選択すると共に、選択されたテンプレートによって表される欠陥の大きさ、色、傾き等をランダムに変化させた多種類の模擬画像を生成する。この模擬画像を、良品画像に示された検査対象物上で位置や数をランダムに変化させて良品画像に合成することで、擬似欠陥画像を生成する。
図3は、模擬画像の生成に使用するテンプレートの一部を示したものであり、白抜きされた部分が欠陥の形状を表す。模擬画像を良品画像に合成することで生成された擬似欠陥画像の例を、
図9に、テスト画像として示す。図中、黒く塗りつぶされた部位が模擬画像を合成した箇所であり、実際の色は黒に限定されるものではなく、ランダムに選択された色が付与される。また、図に示された3つの検査対象物には、汚れの付着および撮像時の条件(例えば、周囲の明るさ)等に基づく輝度むらが生じているが、これらは抽出すべき欠陥ではない。
【0024】
S130では、S110で取得した複数の良品画像およびS120で生成した擬似欠陥画像のそれぞれを、複数の領域に分割する。ここで使用する良品画像は、擬似欠陥画像の生成に使用した以外のものを用いる。但し、これに限定されるものではなく、擬似欠陥画像の生成に用いた良品画像が含まれていてもよい。以下では、分割された各領域の画像を部分画像という。本実施形態では、
図4に示すように、全ての部分画像がほぼ同じ形状となるように9個の領域に分割する。
【0025】
S140では、S130にて分割された画像の領域のうち、以下で説明するS150〜S200の処理が実施されていない領域の一つを選択領域として選択する。
S150では、擬似欠陥画像の生成に使用していないn個の良品画像のそれぞれについて、S140で選択された選択領域の部分画像から特徴ベクトル(以下、良品ベクトル)xを生成する。nは数百〜数千オーダーの正整数である。ここでは、良品ベクトルxとして、部分画像に属する全ての画素のRGBの輝度情報を並べることで生成されるd次元のベクトルを用いる。例えば、部分画像の画素数がmである場合、良品ベクトルxの次元は、d=3×mとなる。
【0026】
S160では、S150にて生成されたn個の良品ベクトルxを用いて、自己相関行列Rを生成する。具体的には、良品ベクトルxを(1)式で表すものとして、自己相関行列Rは(2)式により求められる。但し、Tは行列の転置を表す。
【0027】
【数1】
S170では、良品ベクトルxを表現するd次元のベクトル空間を全体空間とし、S150にて生成された良品ベクトルxの分布を最もよく近似するより次元の低い部分空間への写像を表す写像行列Uを生成する。ここでは、(3)式を用いて、S150で求めた相関関数RをKL展開することにより写像行列Uを生成する。KLは、Karhunen-Loeveの略である。但し、rは自己相関関数Rのランクであり、r<dとなる正整数である。写像行列Uは、(4)式に示すように、d次元の固有ベクトルu1〜urをr個並べたd行r列の固有ベクトル行列であり、Λは、(5)式に示すように、対角成分に固有値λを持つr行r列の固有値行列である。
【0028】
【数2】
S180では、S170で算出された写像行列Uの各要素を、DAEにより学習することによって調整する。DAEは、Denoising Auto Encoderの略である。オートエンコーダは、3層のニューラルネットを、入力層と出力層に同じデータを用いて教師あり学習させたものである。DAEは、オートエンコーダにおいて、入力層に加える学習データにノイズを加えて学習させたものをいう。
【0029】
写像行列Uは、(6)式に示すように、検査対象画像から抽出した特徴ベクトルyから、良品と判断される復元画像を表す特徴ベクトルy〜を生成するために使用される。以下では、U×U
Tによって表される行列、およびU、U
Tを調整した行列V,Wを用いたV×Wによって表される行列を変換行列Kという。
【0030】
【数3】
図5に示すように、変換行列Kのうち、転置した写像行列U
Tによる写像(以下、第1の写像)は、全体空間から良品画像の特徴を表現したより低次元の部分空間への写像、即ち、特徴ベクトルyを、より情報が圧縮された符号zへの符号化を表す。この符号化により、特徴ベクトルyに付与されている欠陥に関する情報が除去された符号zが生成される。変換行列Kのうち写像行列Uによる更なる写像(以下、第2の写像)は、部分空間から元の全体空間への写像、即ち、符号zから特徴ベクトルへの復号化を行っていることを表す。この復号化により、欠陥に関する情報が欠落した画像、即ち、良品と判断される復元画像を表す特徴ベクトルy〜が生成される。
【0031】
また、変換行列Kは、
図6に示すように、3層のニューラルネットワークの接続状態を表すものであると見なすことができる。つまり、変換行列Kのうち、転置した写像行列U
Tによる第1の写像が、3層のニューラルネットワークにおける入力層から中間層へ接続状態を表現する。また、写像行列Uによる第2の写像が、ニューラルネットワークにおける中間層から出力層への接続状態を表現する。これにより、変換行列Kの学習、ひいては写像行列Uの学習には、ニューラルネットワークにおいて公知の学習手法であるバックプロパゲーション等の適用が可能となる。また、DAEによる学習では、ノイズを加えた学習データとして、S130で領域毎に分割された擬似欠陥画像のうち、S140で選択された選択領域に関するものを使用する。
【0032】
S190では、部分画像の画素毎に、その画素が欠陥箇所であるか否かを判断するための判定閾値THを設定する。ここでは、LMedS推定を用いる。具体的には、S180で算出される変換行列Kを用いて、複数の良品画像の選択領域に関する部分画像のそれぞれについて復元画像を生成する。生成された複数の復元画像に基づき、部分画像に属する画素毎に、復元誤差の標準偏差σを算出する。標準偏差σを算出する際には、まず、算出対象の画素について復元誤差の2乗の中央値Mを求め、更にその中央値Mを用いて標準偏差σを推定する。そして、推定された標準偏差σに基づき、例えば、2.5σを判定閾値THとして設定する。以下では、各画素の判定閾値THを総称して判定閾値群という。但し、σに乗じる係数は、2.5に限定されるものではなく、実験結果から適切な係数を設定してもよい。
【0033】
S200では、S180にて算出された調整後の変換行列KおよびS190にて算出された判定閾値群を変換データとして、変換データDB33に格納する。なお、調整後の変換行列Kの代わりに調整後の写像行列V,Wを格納してもよい。
【0034】
S210では、分割された全ての領域について処理が終了しているか否かを判断する。未処理の領域があればS140に戻り、全ての領域について処理が終了していれば、本処理を終了する。
【0035】
本処理を実行することにより、変換データDB33には、分割される領域毎に算出された変換行列Kと、入力画像の画素毎に算出された判定閾値THとが格納される。
なお、本処理において、S130が分割部、S150が抽出部、S160〜S170が生成部、S180が調整部に相当する。
【0036】
[2−2.外観検査処理]
演算部20が実行する外観検査処理について、
図7のフローチャートを用いて説明する。本処理は、入力部10に検査対象画像が入力される毎に起動する。
【0037】
本処理が起動すると、演算部20は、まず、S310にて、入力部10を介して検査対象画像を取得する。
S320では、検査対象画像を、
図4に示すように、複数の領域に分割する。
【0038】
S330では、S320で分割された各領域の画像である部分画像の一つを選択画像に設定する。
S340では、選択画像から特徴ベクトルyを抽出する。特徴ベクトルyの抽出方法は、上述した良品画像から抽出する特徴ベクトルxの場合と同様である。以下では、この抽出された特徴ベクトルyを選択ベクトルという。
【0039】
S350では、S340で抽出された選択ベクトルyと、変換データDB33から取得した選択画像に対応する領域の変換データである変換行列Kとを用い、上述の(6)式に従って、復元画像の特徴ベクトルである復元ベクトルy〜を生成する。
【0040】
S360では、復元ベクトルy〜と、選択ベクトルyとの差分を表す誤差ベクトルeを生成する。つまり、誤差ベクトルeは、復元ベクトルy〜から生成される復元画像に示された良品と判断される検査対象物と検査対象画像に示された検査対象物との差分、即ち、欠陥箇所を示すものとなる。但し、誤差ベクトルeの各要素は、変換データDB33から取得した各要素に対応する画素の判定閾値THを用いて2値化される。即ち、誤差ベクトルeの要素が1である場合、その要素に対応した画素は、欠陥有りと判断されたことを意味し、誤差ベクトルeの要素が0である場合、その要素に対応した画素は、欠陥無しと判断されたことを意味する。
【0041】
なお、誤差ベクトルeを生成する際に、予め設定された基準画像に基づく基準ベクトルを用いるのではなく、選択ベクトルyから生成される復元ベクトルy〜を用いるのは、以下の理由による。つまり、検査対象画像に撮像された検査対象物は、いずれも同じ形状、同じ大きさのものであるが、撮像時の条件によって、検査対象画像毎に、検査対象物の位置が微妙にずれていたり、検査対象物がネジであれば、ねじ山の位相が異なっていたりする。従って、基準画像に撮像された検査対象物の状態は、必ずしも検査対象画像に撮像された検査対象物の状態と一致するとは限らず、そのずれによって誤検出が生じる可能性がある。このような検査対象物の状態の違いによる誤検出を抑制するために、選択ベクトルyから生成した復元ベクトルy〜(即ち、復元画像)を用いる必要がある。
【0042】
S370では、S320で分割した全ての領域について、上述のS330〜S360の処理を実行済みであるか否かを判断する。未処理の領域があればS330に戻り、全ての領域が処理済みであれば、S380に移行する。
【0043】
S380では、検査対象画像を分割した複数の部分画像のそれぞれについて生成された誤差ベクトルeの要素がいずれも0であれは、検査対象画像に撮像されている検査対象物は良品であると判断する。また、誤差ベクトルeの要素が一つでも1であれば、検査対象物は不良品であると判断する。そして、この判断結果を、検査対象画像および誤差ベクトルeから再現される誤差画像等と共に出力部40の表示画面に表示して、本処理を終了する。
【0044】
なお、本処理において、S310が取得部、S340〜S350が復元部、S360及びS380が判断部に相当する。
[3.評価]
本開示の手法および比較例1〜4のそれぞれについて変換行列Kおよびこれに相当する行列を生成し、擬似欠陥画像を検査対象画像(以下、テスト画像)として、性能を評価した結果について説明する。
【0045】
比較例1では、変換行列Kの初期値をランダムに設定し、この変換行列Kに対してDAEによる学習を行うことで変換行列Kの各要素を調整した。但し、中間層のユニット数を2000とした。以下、比較例1の手法をDAEと表記する。
【0046】
比較例2では、中間層のユニット数を8000に増加させ、比較例1と同じ手法で変換行列Kの生成および調整を行った。但し、テスト画像に対して2画素×2画素の平均プーリングを行うことによって、テスト画像の解像度を1/2とした。以下、比較例2の手法をSD_DAEと表記する。
【0047】
比較例3では、比較例2と同様の手法で解像度を1/2にした良品画像を用い、部分空間法(即ち、KL展開)により変換行列Kを生成した。なお、固有ベクトルの成分数はr=3750であった。以下、比較例3の手法をSD_EVと表記する。
【0048】
比較例4では、比較例3と同様の手法で生成した変換行列Kを初期値として、DAEによる学習を行うことで変換行列Kの各要素を調整した。以下、比較例4の手法をSD_EV_DAEと表記する。
【0049】
本開示は、画像を9つの領域に分割し、分割された部位毎に、比較例4と同様の手法を用いて変換行列Kの生成および調整を行った。以下、本開示の手法を局所DAEと表記する。
【0050】
このようにして生成および調整した変換行列Kを用いて、テスト画像について外観検査処理を実行し、正解数G、検出数T、誤検出数Fを求めた。正解数Gは、テスト画像中で欠陥が存在する画素の総数であり、使用するテスト画像によって決まる既知の値である。検出数Tは、外観検査処理の結果、欠陥であると正しく判定された画素の総数である。誤検出数Fは、外観検査処理の結果、実際には欠陥ではないにも関わらず欠陥であると誤判定された画素の総数(以下、誤検出数)である。また、判定閾値THは、最高の精度が得られるように適宜調整した。
【0051】
図8に示すグラフは、precision-recall曲線であり、(7)式で算出される適合率、即ちprecisionと、(8)式で算出される再現率、即ちrecallとの関係を示したものである。
【0052】
【数4】
図8からは、本開示および比較例4と比較例1〜3との比較から、部分空間法を用いて算出された変換行列Kを初期値として、DAEによる学習を行うことで変換行列Kの各要素を調整することが有効であることがわかる。更に、本開示と比較例4との比較から、画像全体を一括で処理するのではなく、複数に分割して処理を行う局所DAEが有効であることがわかる。
【0053】
図9は、3つのテスト画像について、擬似欠陥がある画素の位置を示す正解画像GT、本開示の局所DAEによる復元画像を用いて生成した誤差画像、比較例3のSD_EVによる復元画像を用いて生成した誤差画像、比較例4のSD_EV_DAEによる復元画像を用いて生成した誤差画像を並べて示したものである。
【0054】
図中において1行目のテスト画像には、検出対象物の白い部分に黒い擬似欠陥がある。このとき、正常なサンプルとの輝度値の差が大きいため、比較例3では、擬似欠陥の周辺に誤検出が多く現れている。比較例4および本開示の手法では、擬似欠陥の箇所を正しく検出していることがわかる。また、本開示の手法では、比較例4に比べて、擬似欠陥以外で欠陥ありと判定されて画素の数(即ち、誤検出数)が、大幅に減少していることがわかる。
【0055】
2行目および3行目のテスト画像には、検出対象物の白い部分以外の箇所に、緑色および紫色の擬似欠陥がある。これらの場合も、1行目のテスト画像と同様の傾向を読み取ることができる。
【0056】
[4.効果]
以上詳述した第1実施形態によれば、以下の効果を奏する。
(1)外観検査装置1では、特徴ベクトルy(即ち、検査対象画像)と、復元ベクトルy〜(即ち、復元画像)との差分である誤差ベクトルe(即ち、誤差画像)から、検査対象物の良否を判断する。このため、検査対象画像に撮像された検査対象物が、復元画像に示された良品と判断される復元された検査対象物と異なってさえいれば、未知の欠陥であっても検出することができ、検査対象物の外観の検査精度を向上させることができる。
【0057】
(2)外観検査装置1では、復元画像の生成に用いる変換データとして、良品画像から抽出された特徴ベクトルxに基づく相関関数RをKL展開すること、即ち、部分空間法を用いることで生成された変換行列をそのまま用いるのではなく、擬似欠陥画像を用いた学習であるDAEを施すことによって調整された変換行列Kを用いている。このため、変換データによって生成される復元画像の精度、ひいては、検査対象物の外観の検査精度をより向上させることができる。
【0058】
(3)外観検査装置1では、検査対象画像を複数の領域に分割し、分割された領域毎に、変換データの生成および変換データを用いた外観検査を実施する。このため、検査対象画像の一部の領域を原因として発生するノイズが、その領域以外に波及することを抑制することができ、より高品質な復元画像を生成することができ、ひいては検査対象物の外観の検査精度を更に向上させることができる。
【0059】
[5.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0060】
(a)上記実施形態では、検査対象画像や良品画像を複数の領域に分割して処理を行っているが、領域分割を行うことなく、検査対象画像や良品画像をそのまま一括して処理してもよい。
【0061】
(b)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【0062】
(c)上述した外観検査装置の他、外観検査装置ら外観検査処理の機能を除外した変換データ生成装置、当該外観検査装置または変換データ生成装置を構成要素とするシステム、外観検査装置または変換データ生成装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、外観検査方法、変換データ生成方法など、種々の形態で本開示を実現することもできる。