IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

<>
  • 特開-異常判定用計算機及び異常判定方法 図1
  • 特開-異常判定用計算機及び異常判定方法 図2
  • 特開-異常判定用計算機及び異常判定方法 図3
  • 特開-異常判定用計算機及び異常判定方法 図4
  • 特開-異常判定用計算機及び異常判定方法 図5
  • 特開-異常判定用計算機及び異常判定方法 図6
  • 特開-異常判定用計算機及び異常判定方法 図7
  • 特開-異常判定用計算機及び異常判定方法 図8
  • 特開-異常判定用計算機及び異常判定方法 図9
  • 特開-異常判定用計算機及び異常判定方法 図10
  • 特開-異常判定用計算機及び異常判定方法 図11
  • 特開-異常判定用計算機及び異常判定方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022191966
(43)【公開日】2022-12-28
(54)【発明の名称】異常判定用計算機及び異常判定方法
(51)【国際特許分類】
   G06N 3/08 20060101AFI20221221BHJP
   G06T 7/00 20170101ALI20221221BHJP
【FI】
G06N3/08
G06T7/00 350C
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021100513
(22)【出願日】2021-06-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】宮本 敦
(72)【発明者】
【氏名】西浦 裕美
(72)【発明者】
【氏名】近藤 直明
(72)【発明者】
【氏名】伊藤 晟
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA03
5L096DA01
5L096GA08
5L096KA04
5L096KA15
(57)【要約】
【課題】オートエンコーダを利用した異常判定において、良品画像のみを用いた学習であっても、未知の異常画像に対して精度の高い異常判定を行うことを可能とする。
【解決手段】良品の検査対象物を撮像した良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップにおいて、良品学習画像{f_i}の異常判定正解率Rcを評価値として異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、オートエンコーダのコード層の次元圧縮率Rdを最大化する、あるいは、コード層への入力信号量またはコード層からの出力信号量を減少させる。
【選択図】図3
【特許請求の範囲】
【請求項1】
検査対象物の異常を判別する異常判定用計算機であって、
前記異常判定用計算機はプロセッサを有し、前記プロセッサは、
良品の前記検査対象物を撮像した良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、
前記良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、
前記検査対象物を撮像した検査画像f''を取得する検査画像取得ステップと、
前記検査画像f''を前記オートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、
前記検査画像f''と前記推定良品画像h''とから比較検査エンジンにより異常判定を行う判定ステップと
を実行し、
前記学習ステップでは、前記良品学習画像{f_i}の異常判定正解率Rcを評価値として前記異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、前記オートエンコーダのコード層の次元圧縮率Rdを最大化する、あるいは、前記コード層への入力信号量または前記コード層からの出力信号量を減少させる
ことを特徴とする異常判定用計算機。
【請求項2】
請求項1に記載の異常判定用計算機において、
前記学習ステップにおける前記コード層の前記次元圧縮率Rdの最大化は、前記コード層の各チャネルに含まれるノード数あるいはチャネル数を削減することによって行う
ことを特徴とする異常判定用計算機。
【請求項3】
請求項1に記載の異常判定用計算機において、
前記学習ステップにおける前記コード層への前記入力信号量の減少は、前記コード層のi番目のノードへのj番目の入力信号{x_ij}(i=1,…,Nn、Nn:コード層のノード数、j=1,…,Nx_i、Nx_i:コード層のi番目のノードへの力信号数)の重みw_ijの内、少なくとも一つ以上の前記ノードに対する重み{w_ij | (i,j)∈Φ}(Φ:値を零にする重みw_ijの番号(i,j)の集合)の値を零または零に近い値に設定にすることによって行い、
前記集合Φは、前記良品学習画像{f_i}を前記オートエンコーダに入力した際、前記入力信号{x_ij}が一定値x_min以下となる番号(i,j)の集合({Φ={(i,j)} | x_ij≦x_min})である
ことを特徴とする異常判定用計算機。
【請求項4】
請求項1に記載の異常判定用計算機において、
前記比較検査エンジンは、
前記検査画像f''と前記推定良品画像h''との差分画像を求める差分画像生成エンジンと、
前記差分画像を基に前記検査画像f''が良品か異常かを判定する差分画像評価エンジンと
を有し、
前記学習ステップでは、前記異常判定正解率Rcを基に前記差分画像生成エンジンあるいは前記差分画像評価エンジンの処理パラメータを学習する
ことを特徴とする異常判定用計算機。
【請求項5】
請求項4に記載の異常判定用計算機において、
前記差分画像生成エンジンは局所摂動差分法を用いて前記差分画像を求め、
前記差分画像生成エンジンの処理パラメータは少なくとも摂動幅を含む
ことを特徴とする異常判定用計算機。
【請求項6】
請求項1に記載の異常判定用計算機において、
異常学習画像{f'_i}(i=1,…,Nf, Nf:画像枚数)を取得する異常学習画像取得ステップを有し、
前記学習ステップでは、前記良品学習画像{f_i}と前記異常学習画像{f'_i}を用いて前記オートエンコーダのパラメータを学習し、
さらに、前記学習ステップでは、前記良品学習画像{f_i}と前記異常学習画像{f'_i}の前記異常判定正解率Rcを評価値として、前記異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、エンコードされた前記コード層の前記次元圧縮率Rdを最大化する、あるいは前記コード層への前記入力信号量または前記コード層からの前記出力信号量を減少させる
ことを特徴とする異常判定用計算機。
【請求項7】
請求項6に記載の異常判定用計算機において、
前記異常学習画像取得ステップは疑似異常画像生成エンジンを有し、
前記疑似異常画像生成エンジンは、前記良品学習画像{f_i}に画像処理を施すことによって疑似異常画像である前記異常学習画像{f'_i}を生成する
ことを特徴とする異常判定用計算機。
【請求項8】
請求項7に記載の異常判定用計算機において、
前記学習ステップでは、前記異常判定正解率Rcを基に前記疑似異常画像生成エンジンの処理パラメータを学習する
ことを特徴とする異常判定用計算機。
【請求項9】
請求項6に記載の異常判定用計算機において、
前記比較検査エンジンは、
前記検査画像f''と前記推定良品画像h''との差分画像を求める差分画像生成エンジンと、
前記差分画像を基に前記検査画像f''が良品か異常かを判定する差分画像評価エンジンと
を有し、
前記学習ステップでは、前記異常判定正解率を基に前記差分画像生成エンジンあるいは前記差分画像評価エンジンの処理パラメータを学習する
ことを特徴とする異常判定用計算機。
【請求項10】
検査対象物の異常を判別する異常判定用計算機により実行される異常判定方法であって、
良品の前記検査対象物を撮像した良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、
前記良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、
前記検査対象物を撮像した検査画像f''を取得する検査画像取得ステップと、
前記検査画像f''を前記オートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、
前記検査画像f''と前記推定良品画像h''とから比較検査エンジンにより異常判定を行う判定ステップと
を実行し、
前記学習ステップでは、前記良品学習画像{f_i}の異常判定正解率Rcを評価値として前記異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、前記オートエンコーダのコード層の次元圧縮率Rdを最大化する、あるいは、前記コード層への入力信号量または前記コード層からの出力信号量を減少させる
ことを特徴とする異常判定方法。
【請求項11】
請求項10に記載の異常判定方法において、
前記学習ステップにおける前記コード層の前記次元圧縮率Rdの最大化は、前記コード層の各チャネルに含まれるノード数あるいはチャネル数を削減することによって行う
ことを特徴とする異常判定方法。
【請求項12】
請求項10に記載の異常判定方法において、
前記学習ステップにおける前記コード層への前記入力信号量の減少は、前記コード層のi番目のノードへのj番目の入力信号{x_ij}(i=1,…,Nn、Nn:コード層のノード数、j=1,…,Nx_i、Nx_i:コード層のi番目のノードへの力信号数)の重みw_ijの内、少なくとも一つ以上の前記ノードに対する重み{w_ij | (i,j)∈Φ}(Φ:値を零にする重みw_ijの番号(i,j)の集合)の値を零または零に近い値に設定にすることによって行い、
前記集合Φは、前記良品学習画像{f_i}を前記オートエンコーダに入力した際、前記入力信号{x_ij}が一定値x_min以下となる番号(i,j)の集合({Φ={(i,j)} | x_ij≦x_min})である
ことを特徴とする異常判定方法。
【請求項13】
請求項10に記載の異常判定方法において、
前記比較検査エンジンは、
前記検査画像f''と前記推定良品画像h''との差分画像を求める差分画像生成エンジンと、
前記差分画像を基に前記検査画像f''が良品か異常かを判定する差分画像評価エンジンと
を有し、
前記学習ステップでは、前記異常判定正解率Rcを基に前記差分画像生成エンジンあるいは前記差分画像評価エンジンの処理パラメータを学習する
ことを特徴とする異常判定方法。
【請求項14】
請求項13に記載の異常判定方法において、
前記差分画像生成エンジンは局所摂動差分法を用いて前記差分画像を求め、
前記差分画像生成エンジンの処理パラメータは少なくとも摂動幅を含む
ことを特徴とする異常判定方法。
【請求項15】
請求項10に記載の異常判定方法において、
異常学習画像{f'_i}(i=1,…,Nf, Nf:画像枚数)を取得する異常学習画像取得ステップを有し、
前記学習ステップでは、前記良品学習画像{f_i}と前記異常学習画像{f'_i}を用いて前記オートエンコーダのパラメータを学習し、
さらに、前記学習ステップでは、前記良品学習画像{f_i}と前記異常学習画像{f'_i}の前記異常判定正解率Rcを評価値として、前記異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、エンコードされた前記コード層の前記次元圧縮率Rdを最大化する、あるいは前記コード層への前記入力信号量または前記コード層からの前記出力信号量を減少させる
ことを特徴とする異常判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常判定用計算機及び異常判定方法に関する。
【背景技術】
【0002】
本発明は、好ましくは、機械学習に基づく異常判定用計算機及び異常判定方法に関する。検査対象物を撮像して取得した検査画像をオートエンコーダ(Autoencoder)に入力して前記検査画像に対応する良品画像を推定し、検査画像と推定した良品画像との比較により検査対象物が良品か異常かを自動で判定する計算機と方法とを提供する。
【0003】
機械、金属、化学、食品、繊維等を含む多くの工業製品においては検査画像を基に、形状不良、組立不良、異物の付着、内部の欠損や致命度、表面の傷や斑、汚れ等、様々な出来栄えを評価する外観検査が広く行われている。一般的に、これらの外観検査の多くは検査員の目視判断により行われてきた。
【0004】
一方、大量生産や品質向上への要求増大に伴い、検査コストならびに検査員の負荷が増大している。また、人間の感覚に基づく官能検査では特に高い経験やスキルが求められる。検査員によって評価値が異なったり、検査の度に結果が異なるといった属人性や再現性も課題となる。このような検査のコスト、スキル、属人性等の課題に対し、検査の自動化が強く求められている。
【0005】
近年、Convolutional Neural Network(CNN)に代表される深層ネットワークモデルの提案により、機械学習の性能は飛躍的に向上し、機械学習に基づく外観検査方法も多く提案されている。
【0006】
機械学習に基づいて検査対象物が良品か異常かを判定する異常判定においては、事前に検査対象物の良品画像と異常画像とを大量に収集し、判定エンジンを学習することが理想である。
【0007】
しかしながら、工業製品の製造ラインにおいて、一般に異常は稀に発生するものであり、また異常パターンも多様である。そのため、事前に多くの異常画像を網羅的に収集し、学習に用いることは大変困難である。そのため、オートエンコーダと呼ばれるニューラルネットワークを用いて良品画像のみを用いて学習を行い(良品学習と呼ばれる)、検査対象物の異常判定を行う方法が開示されている(例えば、特許文献1)。
【0008】
オートエンコーダとは、入力画像をエンコーダで縮小(次元圧縮)した後、それをデコーダで元の大きさの画像に復元するネットワークである。良品画像を入力して同じ良品画像を出力するようにオートエンコーダを学習することで、欠陥等の異常を有する異常画像を入力した場合、異常の無い良品画像(推定良品画像)が出力されることが期待される。検査画像と推定良品画像との差分をとることにより、異常部を検出することができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2020-160616号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述した特許文献1に代表される、オートエンコーダを利用した異常判定において、適切な推定良品画像が推定できない場合がある。それは、オートエンコーダの学習は、良品画像から同じ良品画像を推定するように学習されており、学習に用いていない未知の異常画像を入力した際に良好な推定良品画像、すなわち入力した異常画像から異常部を除去した推定良品画像が出力されるとは限らないからである。実際の製造ライン等で発生する異常パターンのバリエーションは多様であり、事前に全てを学習することは現実問題として困難である。そのため、良品画像のみを用いた学習により、未知の異常画像に対しても精度の高い異常判定を行う仕組みが必要である。
【0011】
本発明は上記の課題に鑑みてなされたもので、オートエンコーダを利用した異常判定において、良品画像のみを用いた学習であっても、未知の異常画像に対して精度の高い異常判定を行うことが可能な異常判定用計算機及び異常判定方法を提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決すべく、本発明の一つの観点に従う異常判定用計算機は、検査対象物の異常を判別する異常判定用計算機であって、異常判定用計算機はプロセッサを有し、プロセッサは、良品の検査対象物を撮像した良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、検査対象物を撮像した検査画像f''を取得する検査画像取得ステップと、検査画像f''をオートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、検査画像f''と推定良品画像h''とから比較検査エンジンにより異常判定を行う判定ステップとを実行し、学習ステップでは、良品学習画像{f_i}の異常判定正解率Rcを評価値として異常判定正解率Rcが最大あるいは所定のしきい値th以上になるように、オートエンコーダのコード層の次元圧縮率Rdを最大化する、あるいは、コード層への入力信号量またはコード層からの出力信号量を減少させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、オートエンコーダを利用した異常判定において、良品画像のみを用いた学習であっても、未知の異常画像に対して精度の高い異常判定を行うことが可能な異常判定用計算機及び異常判定方法を実現することができる。
【図面の簡単な説明】
【0014】
図1】実施例1に係る自動異常判定システムおよび全体の処理シーケンスを示す図である。
図2】オートエンコーダにおける良品学習および異常判定を示す図である。
図3】実施例1に係る自動異常判定システムにおけるオートエンコーダならびに比較検査エンジンの学習方法を示す図である。
図4】実施例1に係る自動異常判定システムにおけるオートエンコーダの学習方法の一例を示す図である。
図5】オートエンコーダの学習方法の一例を示す図である。
図6】実施例1に係る自動異常判定システムにおけるオートエンコーダの学習方法の一例を示す図である。
図7】実施例1に係る自動異常判定システムにおけるニューラルネットワークにおけるノードの入出力を示す図である。
図8】実施例2に係る自動異常判定システムにおける異常画像を用いたオートエンコーダの学習方法を示す図である。
図9】実施例2に係る自動異常判定システムにおける疑似的に生成した異常画像のバリエーションを示す図である。
図10】一般的な手法における異常判定の結果を示す図である。
図11】実施形態に係る自動異常判定システムにおける異常判定の結果を示す図である。
図12】実施形態に係る自動異常判定システムのハードウェア構成を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0016】
なお、実施例を説明する図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。
【0017】
また、以下の説明では、情報の一例として「xxxデータ」といった表現を用いる場合があるが、情報のデータ構造はどのようなものでもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxデータ」を「xxxテーブル」と言うことができる。さらに、「xxxデータ」を単に「xxx」と言うこともある。そして、以下の説明において、各情報の構成は一例であり、情報を分割して保持したり、結合して保持したりしても良い。
【0018】
なお、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばポート)を用いながら行うため、処理の主語がプログラムとされても良い。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機が行う処理としても良い。
【0019】
本実施形態の異常判定用計算機及び異常判定方法は、一例として以下のような構成を有する。
【0020】
(1)良品の検査対象物を撮像して良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、検査対象物を撮像して検査画像f''を取得する検査画像取得ステップと、検査画像f''をオートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、検査画像f''と推定良品画像h''から比較検査エンジンにより異常判定を行う判定ステップを含み、前記学習ステップでは、良品学習画像{f_i}の異常判定正解率Rcを評価値として前記Rcが最大あるいは所定のしきい値th以上になるように、エンコードされたコード層の次元圧縮率Rdを最大化する、あるいはコード層への入力信号量またはコード層からの出力信号量を減少させることを特徴とする。
【0021】
本特徴について補足する。異常判定エンジンは、検査画像をオートエンコーダに入力して推定良品画像を得る「良品画像推定エンジン」と、検査画像と推定良品画像を比較して異常判定を行う「比較検査エンジン」からなる。
【0022】
比較検査エンジンはルールベースの判定アルゴリズムであってもよいし、ニューラルネットワーク等の機械学習ベースの判定アルゴリズムでもよい。
【0023】
良品画像から良品画像を推定するように学習されたオートエンコーダに、未学習の異常パターンを含む検査画像を入力した際にどのような推定良品画像が出力されるかは不明である。また、その検査画像と推定良品画像との比較検査を基に、検査画像の異常判定が正しく行えるかも不明である。
【0024】
推定良品画像の出力に失敗する例として、オートエンコーダが入力した異常画像を復元できてしまうケースが挙げられる。すなわち、入力画像が異常画像であったとしても、出力画像も入力画像と類似した異常画像であれば、入力画像と出力画像の差分が小さいため良品と誤判定されてしまう。そのため、オートエンコーダは良品画像のみを復元でき、それ以外の画像は復元できないように学習されるべきである。
【0025】
オートエンコーダが学習した良品学習画像以外の画像も復元できる要因の一つとして、オートエンコーダの表現力が高過ぎることが挙げられる。そこで、本実施形態では、コード層の次元圧縮率Rdをなるべく高くするようにネットワーク構造を最適化し、オートエンコーダの表現力を低下させることを特徴とする。
【0026】
次元圧縮率Rdが高いということは、コード層において入力画像を少ないノード(特徴量)で表現することになるため、オートエンコーダが学習した良品学習画像以外の画像を表現できる可能性を低下させることができる。
【0027】
その際、異常判定正解率Rcを評価値として次元圧縮率Rdを最大化することを特徴とする。通常、オートエンコーダは良品学習画像がより高精度に復元されるように学習されるが、異常判定においては必ずしも高精度な推定良品画像が得られる必要はない。すなわち、良品画像を復元した推定良品画像が劣化したとしても、比較検査エンジンにおいて正しい異常判定が行えればよいからである。また、オートエンコーダの表現力を決定する際の評価値として異常判定正解率Rcを用いるが、前述のとおり、異常判定正解率Rcを最大にするように決定してもよいし、異常判定正解率Rcが所定のしきい値th以上になるように決定してもよい。
【0028】
(2)学習ステップにおいてコード層の次元圧縮率の最大化は、コード層の各チャネルに含まれるノード数あるいはチャネル数を削減することによって行うことを特徴とする。
【0029】
本特徴について補足する。前述の通り、本実施形態では、異常判定正解率Rcを評価値として、オートエンコーダの表現力を低下させることによって良品画像以外の画像を復元できないようにする。
【0030】
オートエンコーダの表現力を低下させる方法として、コード層の次元圧縮率Rdを最大化する方法が挙げられる。具体的には、コード層の各チャネルに含まれるノード数あるいはチャネル数を削減する。コード層におけるノードの総数はエンコーダによる次元圧縮後の特徴量数と捉えることができるので、ノード総数の削減は次元圧縮率Rdを高めることになる。
【0031】
(3)学習ステップにおいて、コード層への入力信号量の減少は、コード層のi番目のノードへのj番目の入力信号{x_ij}(i=1,…,Nn、Nn:コード層のノード数、j=1,…,Nx_i、Nx_i:コード層のi番目のノードへの力信号数)の重みw_ijの内、少なくとも一つ以上のノードに対する重み{w_ij | (i,j)∈Φ}(Φ:値を零にする重みw_ijの番号(i,j)の集合)の値を零または零に近い値に設定にすることによって行い、集合Φは良品学習画像{f_i}をオートエンコーダに入力した際、入力信号{x_ij}が一定値x_min以下となる番号(i,j)の集合({Φ={(i,j)} | x_ij≦x_min})であることを特徴とする。
【0032】
本特徴について補足する。異常判定正解率Rcを評価値としてオートエンコーダの表現力を低下させる方法として、コード層に含まれるノードへのいくつかの入力信号の値を減少させるという方法でもよい。すなわち、オートエンコーダの表現力を低下させるには、前述のようにノード数を削減するという直接的な方法でもよいが、あるノードを残すか削除するかの二択ではなく、あるノードへの入力信号の値を減少させることにより、復元におけるそのノードの影響力を低下させ、オートエンコーダの表現力を連続的に減少させることが可能である。
【0033】
(4)比較検査エンジンは、検査画像f''と前記検査画像f''をオートエンコーダに入力して出力された推定良品画像h''との差分画像を求める差分画像生成エンジンと、前記差分画像を基に前記検査画像f''が良品か異常かを判定する差分画像評価エンジンからなり、学習ステップにおいて異常判定正解率を基に前記差分画像生成エンジンあるいは前記差分画像評価エンジンの処理パラメータを学習することを特徴とする。
【0034】
本特徴について補足する。検査画像f''と推定良品画像h''との差分画像を求めるにはいくつか方法が考えられる。単純に両画像の各画素値の差分をとってもよいが、異常ではない画像間のわずかな不一致も差分となるため、差分画像評価エンジンの異常判定において誤判定の要因になる危険がある。
【0035】
そのため、例えば局所摂動差分法(松山幸雄, 岩田尚史, 窪田仁志, 中川泰夫,"局所摂動パターンマッチング法によるLSIウェーハパターンの精密外観検査,"電子情報通信学会論文誌D, J72-D2 (12), pp.2041-2050 (1989).などを参照)を用いて差分画像を求めることが考えられる。局所摂動差分法とは一方の画像を他方の画像に対して局所領域ごとにXY平面内および明度方向に摂動して合わせ込み、合わせきれない部分を差分とする方法である。画像間のわずかな不一致を消去することができる。摂動幅は比較検査の処理パラメータの一つであり、その値によって消去される不一致量の大きさが変化する。
【0036】
また、差分画像を基に検査画像f''が良品か異常かを判定する差分画像評価エンジンにもいくつかの方法が考えられる。例えば、差分のある画素領域の明度値の分布をもとに判定を行うことが考えられるが、異常と判定する分布の大きさや明度値の大きさも比較検査の処理パラメータの一つである。
【0037】
ここでは、差分画像生成エンジンや差分画像評価エンジンとして、いわゆるルールベースのアルゴリズムを例に挙げたが、機械学習ベースのアルゴリズムであってもよい。機械学習ベースのアルゴリズムであっても学習のための処理パラメータが存在する。
【0038】
本実施形態では、異常判定正解率を評価値として、これらの処理パラメータを最適化することを特徴とする。項目(1)~(3)で述べた通り、オートエンコーダが良品以外の画像をなるべく復元できないようにするためにオートエンコーダの表現力を低下させる処理を行うが、異常判定正解率を維持したまま表現力を低下させることには限界がある。表現力を低下させると、入力画像が良品であってもオートエンコーダによる推定良品画像は劣化し、入力画像と推定良品画像には差分が発生してしまう。この多少の差分を異常と誤判定されないように、比較検査エンジンの処理パラメータの調整することにより、オートエンコーダでは、更に表現力を下げて、良品しか復元できない良品画像推定エンジンを生成し易くなる。このようなオートエンコーダの表現力を低下させるハイパーパラメータと比較検査エンジンの処理パラメータとの同時最適化により、両者の性能を補完し合って、より高精度な異常判定が可能になる。
【0039】
(5)良品の検査対象物を撮像して良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、異常学習画像{f'_i}(i=1,…,Nf, Nf:画像枚数)を取得する異常学習画像取得ステップと、良品学習画像{f_i}と異常学習画像{f'_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、検査対象物を撮像して検査画像f''を取得する検査画像取得ステップと、検査画像f''をオートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、検査画像f''と推定良品画像h''から比較検査エンジンにより異常判定を行う判定ステップを含み、前記学習ステップでは、良品学習画像{f_i}と異常学習画像{f'_i}の異常判定正解率Rcを評価値として前記Rcが最大あるいは所定のしきい値th以上になるように、エンコードされたコード層の次元圧縮率Rdを最大化する、あるいはコード層への入力信号量またはコード層からの出力信号量を減少させることを特徴とする。
【0040】
本特徴について補足する。異常パターンは多様であり、事前に多くの異常画像を網羅的に収集することは一般に困難である。しかし、一部であっても、いくつかの異常画像が入手できれば、異常学習画像{f'_i}として学習することで、オートエンコーダのパラメータをより適切に学習することが可能である。
【0041】
本実施形態では、異常判定正解率Rcを評価値としてオートエンコーダを学習することを特徴とするが、良品学習画像{f_i}と異常学習画像{f'_i}の両方を用いることで、異常判定正解率Rcをより正確に推定することが可能となる。
【0042】
(6)異常学習画像{f'_i}は疑似異常画像生成エンジンによって生成した疑似異常画像であり、前記疑似異常画像生成エンジンは良品学習画像{f_i}に画像処理を施すことによって画像を生成することを特徴とする。
【0043】
本特徴について補足する。前述の通り異常画像の収集は一般に困難であり、項目(5)において異常学習画像{f'_i}を事前に用意できない、あるいは何枚か用意できたとしても、多くの異常パターンを網羅的に収集できない場合がある。
【0044】
そこで、良品学習画像{f_i}に画像処理を施すことによって、様々な異常画像を疑似的に生成し、学習に用いることを特徴とする。疑似異常画像生成エンジンにおける画像処理は実際の検査対象において発生しうる異常を模擬したものであり、良品学習画像に対して、異物の付着、欠け等の欠損、傷、表面の斑や汚れ、形状変形、等を施すバリエーションが挙げられる。
【実施例0045】
1. 自動異常判定システムと全体の処理シーケンス
本実施形態における自動異常判定システムおよび全体の処理シーケンスを図1に示す。
【0046】
本実施形態の自動異常判定システムにおける処理シーケンスは、大きく学習フェーズ(100)と検査フェーズ(101)に分かれる。
【0047】
学習フェーズ(100)では、学習用に良品の検査対象物(102)を撮像して良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する(103)。画像は、CCDカメラ、光学顕微鏡、荷電粒子顕微鏡、超音波検査装置、X線検査装置、等の撮像装置で検査対象物の表面あるいは内部をデジタル映像として撮像することで取得する。
【0048】
なお、「取得」の他の例としては、ほかのシステムで撮像した画像を単に受信して、自動異常判定システムが有する記憶資源に格納するだけでもよい。
【0049】
次に、良品学習画像{f_i}を用いてオートエンコーダを活用した良品画像推定エンジンを学習する(104)。すなわち、入力画像を入力として良品画像が出力されるようにオートエンコーダのネットワークパラメータを学習により決定する。
【0050】
良品である良品学習画像を用いて学習する際には、基本的には良品学習画像を入力して、同じ良品学習画像が出力されるようにネットワークパラメータを決定する。
【0051】
ネットワークパラメータには、ネットワーク構造等の「ハイパーパラメータ」と、ネットワークのノード間の重み(結合係数)やバイアス等の「モデルパラメータ」が含まれ、それぞれを決定する(105、106)。ハイパーパラメータには、ネットワークの層数や層内のノード数、活性化関数、学習率や学習の終了条件等が含まれる。
【0052】
また、良品画像推定エンジンの入力画像と出力画像を比較して、入力画像が良品か異常かを判定する比較検査エンジンのパラメータを学習する(107)。
【0053】
検査フェーズ(101)では、実際の検査対象物(102)を撮像して(103)、検査画像f''を取得して、異常判定を行う(111)。
【0054】
具体的には、検査画像f''を学習フェーズ(100)において決定したハイパーパラメータ(108)およびモデルパラメータ(109)に基づくオートエンコーダに入力して、推定良品画像h''を推定する(112)。また、検査画像f''と推定良品画像h''とを、学習フェーズ(100)において決定した比較検査処理パラメータ(110)に基づく比較検査エンジンに入力して検査画像f''が良品か異常かを判定する(113)。必要に応じて、この判定結果を検査員が確認する(114)。
【0055】
2. オートエンコーダによる良品画像推定
オートエンコーダによる良品画像推定の詳細について図2を用いて説明する。
【0056】
オートエンコーダ(Geoffrey E. Hinton and R. R. Salakhutdinov,"Reducing the Dimensionality of Data with Neural Networks,"Science, 313 (5786), pp.504-507 (2006).などを参照)はいわゆる次元圧縮型のネットワークで、入力画像を入力層(207)に入力しエンコーダ(205)で一度圧縮して、入力層よりも少ないノードで構成されるコード層(209)に変換する。
【0057】
このコード層におけるノード{g_i}(i=1,…,Ng, Ng:コード層のノード数)の各値は入力画像を次元圧縮した特徴量と捉えることもできる。このコード層をデコーダ(206)で復元処理し、再度、入力画像の次元数をもつ出力層(211)に戻す。
【0058】
学習フェーズ(良品学習)の処理シーケンス200に示すように、学習時に入力画像f_iを良品画像(202)として、良品画像(202)から同じ良品画像が出力画像h_i(212)として復元されるように学習すると、オートエンコーダは良品だけが復元できる良品画像推定エンジンになると期待される。
【0059】
このように学習されたオートエンコーダを用いることによって、検査フェーズ(異常判定)における処理シーケンス201では実際の検査対象物に対して異常判定を行うことができる。
【0060】
すなわち、入力した検査画像f''_iが良品だった場合、オートエンコーダは検査画像f''_iと同様の画像を推定良品画像:h''_iとして出力するため、検査画像f''_iと推定良品画像:h''_iの差分はなく、検査画像f''_iは良品と判定される。一方、入力した検査画像f''_i(203)に例えば異物付着等の異常(204)が含まれる場合、オートエンコーダは異常部を正確に復元できず、異常のない推定良品画像:h''_i(213)が出力される。そのため、異常部において検査画像f''_iと推定良品画像:h''_iの差分が発生し、検査画像f''_iは異常と判定される。
【0061】
しかし、ここで説明した図2の検査フェーズ201における正しい異常判定結果が常に得られるとは限らない。なぜなら、学習フェーズにおいて異常画像を明示的に学習したわけではなく、未知の異常画像に対する復元結果がどうなるかは不明だからである。つまり、学習フェーズ200では良品画像から良品画像を復元するように学習したので、検査フェーズ201においても良品画像から良品画像が復元されることが期待されるが、異常画像が復元されるか否かは異常パターンの種類に依存する。実際の実験においても、オートエンコーダで異常画像が復元できてしまい、正しい異常判定が行えないケースが確認されている。本実施例はこの課題を解決する。
【0062】
3. オートエンコーダの最適化
3.1 基本的な処理
前述の課題を解決するため、本実施例は、良品の検査対象物を撮像して良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、良品学習画像{f_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、検査対象物を撮像して検査画像f''を取得する検査画像取得ステップと、検査画像f''をオートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、検査画像f''と推定良品画像h''から比較検査エンジンにより異常判定を行う判定ステップを含み、前記学習ステップでは、良品学習画像{f_i}の異常判定正解率Rcを評価値として前記Rcが最大あるいは所定のしきい値th以上になるように、エンコードされたコード層の次元圧縮率Rdを最大化する、あるいはコード層への入力信号量またはコード層からの出力信号量を減少させることを特徴とする。
【0063】
本特徴について図3を用いて説明する。異常判定エンジンは、検査画像をオートエンコーダに入力して推定良品画像を得る「良品画像推定エンジン(301)」と、検査画像(学習時は良品学習画像)と推定良品画像を比較して異常判定を行う「比較検査エンジン(311)」からなる。
【0064】
比較検査エンジンはルールベースの判定アルゴリズムであってもよいし、ニューラルネットワーク等の機械学習ベースの判定アルゴリズムでもよい。
【0065】
前述のように、良品画像から良品画像を推定するように学習されたオートエンコーダに、未学習の異常パターンを含む検査画像を入力した際にどのような推定良品画像が出力されるかは不明である。また、その検査画像と推定良品画像との比較検査を基に、検査画像の異常判定が正しく行えるかも不明である。
【0066】
推定良品画像の出力に失敗する例として、オートエンコーダが入力した異常画像を復元できてしまうケースが挙げられる。すなわち、入力画像が異常画像であったとしても、出力画像も入力画像と類似した異常画像であれば、入力画像と出力画像の差分が小さいため良品と誤判定されてしまう。そのため、オートエンコーダは良品画像のみを復元でき、それ以外の画像は復元できないように学習されるべきである。
【0067】
オートエンコーダが学習した良品学習画像以外の画像も復元できる要因の一つとして、オートエンコーダの表現力が高過ぎることが挙げられる。そこで、本実施例では、コード層(306)の次元圧縮率Rdをなるべく高くするように、ネットワーク構造を最適化しオートエンコーダの表現力を低下させることを特徴とする。
【0068】
次元圧縮率Rdが高いということは、コード層(306)において入力画像を少ないノード(特徴量)で表現することになるため、オートエンコーダが学習した良品学習画像以外の画像を表現できる可能性を低下させることができる。
【0069】
その際、比較検査エンジン(311)の判定結果から得られる異常判定正解率Rc(処理315で算出)を評価値として次元圧縮率Rdを最大化することを特徴とする。すなわち、ハイパーパラメータ309の一つであるコード層のノード数を最小化する。
【0070】
通常、オートエンコーダは良品学習画像がより高精度に復元されるように学習されるが、異常判定においては必ずしも高精度な推定良品画像が得られる必要はない。すなわち、良品画像(300)を復元した推定良品画像(310)が劣化したとしても、比較検査エンジン(311)において正しい異常判定が行えればよいからである。
【0071】
また、オートエンコーダの表現力を決定する際の評価値として異常判定正解率Rcを用いるが、異常判定正解率Rcが改善するように表現力を決定することを特徴とし、その具体的な方法としては前述のとおり、異常判定正解率Rcを最大にするように決定してもよいし、異常判定正解率Rcが所定のしきい値th以上になるように決定してもよい(315)。
【0072】
3.2 コード層の最適化の具体例
コード層の最適化について大きく2種類の方法について説明する。
【0073】
一つ目は、学習ステップにおいてコード層の次元圧縮率の最大化は、コード層の各チャネルに含まれるノード数あるいはチャネル数を削減することによって行うことを特徴とする。
【0074】
本特徴について補足する。前述の通り、本発明では異常判定正解率Rcを評価値としてオートエンコーダの表現力を低下させることによって、良品画像以外の画像を復元できないようにする。オートエンコーダの表現力を低下させる方法として、コード層の次元圧縮率Rdを最大化する方法が挙げられる。具体的には、コード層の各チャネルに含まれるノード数あるいはチャネル数を削減する。コード層におけるノードの総数はエンコーダによる次元圧縮後の特徴量数と捉えることができるので、ノード総数の削減は次元圧縮率Rdを高めることになる。
【0075】
図4に各層が1次元で表現されたネットワーク構造の模式図を例示し、具体的なコード層のノード数の削減方法について説明する。
【0076】
図4(a)は比較的コード層におけるノード数が多く、オートエンコーダの表現力が高いネットワーク構造の例である。入力層(402)のノード数は10としている。ただし、これは模式的な図であり、検査画像をそのまま入力する場合、入力層のノード数は検査画像の画素数と等しくなる。
【0077】
この入力層(402)のノード数をエンコーダ(400)によりコード層(404)のノード数6に次元圧縮している。すなわち、次元圧縮率Rdは(10-6)/10×100=40%である。
【0078】
これに対し、図4(b)のネットワーク構造におけるコード層(411)のノード数は4となっている。次元圧縮率Rdは(10-4)/10×100=60%であり、圧縮率が高くなっている。そのため、図4(a)より図4(b)の方が異常判定正解率Rcが改善する場合、あるいは図4(b)においても異常判定正解率Rcが所定のしきい値th以上である場合、図4(b)のネットワーク構造を採用して、より良品学習画像以外の画像が表現できる可能性を低下させ、未知の異常画像に対する異常判定正解率を向上させるべきである。
【0079】
図4(c)ではコード層(418)のノード数は2となっている。次元圧縮率Rdは(10-2)/10×100=80%であり、圧縮率は更に高くなっている。もし図4(b)より図4(c)の方が更に異常判定正解率Rcが改善する場合、あるいは図4(b)においても異常判定正解率Rcが所定のしきい値th以上である場合、図4(c)のネットワーク構造を採用するべきであるし、更に圧縮率の高いネットワーク構造も評価するべきである。しかし、もしそのような性能が確認できなかった場合は、ネットワークの表現力を下げ過ぎたために、良品画像が正確に復元できなくなってしまった可能性があるため、図4(c)は採用できない。
【0080】
なお、図4においてはエンコーダ(400、407、414)もデコーダ(401、408、415)も2層のネットワーク(例えばエンコーダ400では入力層402から中間層403、コード層404へと続くネットワーク)としたが、2層以上のネットワークとすることも可能ある。
【0081】
また、コード層(404、411、418)のノード数も6、4、2と離散的な値を例示したが、実際の最適化においては任意の値を検証し、選択することができる。更にコード層のノード数の最適化に伴って、エンコーダやデコーダにおけるネットワーク構造(層数、ノード数、チャネル数、エッジが接続するノードの組み合せ、等)を変更することができる。
【0082】
図5に各層が2次元で表現されたネットワーク構造の模式図を例示し、具体的なコード層のノード数の削減方法について説明する。
【0083】
図4では検査画像の画素値を一列に繋ぎ合わせて1次元配列として入力するイメージを示したが、図5に示すように横のピクセル数がNx1、縦のピクセル数がNy1の検査画像をNx1×Ny1の2次元ノード配列から成る入力層(L1)にそのまま入力してもよい。
【0084】
入力層(L1)に対して畳み込みとプーリングを行うことによって中間層(L2)を得るのが一般的である。プーリングにより中間層の画像サイズNx2×Ny2はNx1×Ny1より小さくなる。
【0085】
この際、畳み込みのフィルタを複数設けることにより複数枚の画像を生成する。この画像枚数のことをチャネル数と呼び、中間層(L2)ではチャネル数はNc2である。
【0086】
同様に中間層(L2)からコード層(L3)を生成し、コード層(L3)は画像サイズNx3×Ny3、チャネル数Nc3となっている。ここまでがエンコーダである。コード層(L3)から中間層(L4)を経て元の画像サイズ(Nx1=Nx5、Ny1=Ny5)である出力層(L5)を得るネットワークがデコーダである。
【0087】
本実施例では異常判定正解率Rcを評価値としてオートエンコーダの表現力を低下させるが、その方法としては、コード層の各チャネルに含まれるノード数(Nx3×Ny3)あるいはチャネル数(Nc3)を削減する手法がある。
【0088】
二つ目は、学習ステップにおいてコード層への入力信号量の減少は、コード層のi番目のノードへのj番目の入力信号{x_ij}(i=1,…,Nn、Nn:コード層のノード数、j=1,…,Nx_i、Nx_i:コード層のi番目のノードへの力信号数)の重みw_ijの内、少なくとも一つ以上のノードに対する重み{w_ij | (i,j)∈Φ}(Φ:値を零にする重みw_ijの番号(i,j)の集合)の値を零または零に近い値に設定にすることによって行い、集合Φは良品学習画像{f_i}をオートエンコーダに入力した際、入力信号{x_ij}が一定値x_min以下となる番号(i,j)の集合({Φ={(i,j)} | x_ij≦x_min})であることを特徴とする。
【0089】
本特徴について補足する。異常判定正解率Rcを評価値としてオートエンコーダの表現力を低下させる方法として、コード層に含まれるノードへのいくつかの入力信号の値を減少させるという方法でもよい。すなわち、オートエンコーダの表現力を低下させるには、前述のようにノード数を削減するという直接的な方法でもよいが、あるノードを残すか削除するかの二択ではなく、あるノードへの入力信号の値を減少させることにより、復元におけるそのノードの影響力を低下させ、オートエンコーダの表現力を連続的に減少させることが可能である。
【0090】
図6図7を用いて具体的に説明する。
【0091】
図6は、本実施例において良品画像の推定を行うオートエンコーダの一例である。L1~L5の5層からなり、L3はコード層(604)である。
【0092】
コード層における1番目(i=1)のノード(610)および、コード層における1番目のノード(610)とエッジにより繋がっている中間層(L2)における3つのノード(607、608、609)をピックアップして図7に示す。
【0093】
ノード(610)から出力される信号量uは、3つのノード(607、608、609)から出力される信号量{x_1j}(j=1,2,3)から、次式により計算される。
u = A(t) ・・・(式1)
t = w_11*x_11+w_12*x_12+w_13*x_13+b_1 ・・・(式2)
ここで、A()は活性化関数であり、様々な非線形関数が提案されているが、最近ではReLU(ランプ関数)が広く用いられている。また、{w_1j}は中間層(L2)におけるj番目のノードとコード層(L3)における1番目のノードを繋ぐエッジの重み、b_1はバイアス量であり、共に学習により最適化されるモデルパラメータ(109)である。
【0094】
本実施例では、重みの一部を意図的に零または零に近い値に設定にすることでオートエンコーダの表現力を低下させる。重みを小さく設定する基準の一つとして、信号量の大きさを用いることができる。良品画像を入力層(602)に入力した際、信号量の小さいエッジは、良品画像を表現することに大きく寄与していないと考えることができる。例えば、図7において信号量x_12が小さければ、エッジ701の重みw_12の値を学習により設定された値に対して小さく補正する。
【0095】
ここでは、中間層(L2)からコード層(L3)への重みを例に、値を小さく設定することを説明したが、任意の層間の重みについて同様に値を小さく設定することができる。値を小さく設定し、零に近い値になる程、その重みのかかったエッジはより無効化される。その結果、オートエンコーダの表現力は低下し、ノード総数を削減しなくても次元圧縮率Rdを高めることと同等の効果が得られる。
【0096】
4. 比較検査エンジンの処理パラメータ調整
比較検査エンジンは、検査画像f''と前記検査画像f''をオートエンコーダに入力して出力された推定良品画像h''との差分画像を求める差分画像生成エンジンと、前記差分画像を基に前記検査画像f''が良品か異常かを判定する差分画像評価エンジンからなり、学習ステップにおいて異常判定正解率を基に前記差分画像生成エンジンあるいは前記差分画像評価エンジンの処理パラメータを学習することを特徴とする。
【0097】
本特徴について図3を用いて説明する。本実施例では、検査画像f''_iを良品画像推定エンジン(オートエンコーダ)に入力して推定良品画像h''_iを出力する。検査画像f''_iと推定良品画像h''_iを比較検査エンジン(311)で比較することにより検査画像f''_iが良品か異常かを判定する。
【0098】
比較には様々なアルゴリズムを用いることができるが、その一例として、差分画像生成エンジン(312)と差分画像評価エンジン(313)から成る比較検査エンジンを考える。
【0099】
差分画像生成エンジン(312)において、検査画像f''と推定良品画像h''との差分画像を求めるにはいくつか方法が考えられる。単純に両画像の各画素値の差分をとってもよいが、異常ではない画像間のわずかな不一致も差分となるため、差分画像評価エンジンの異常判定において誤判定の要因になる危険がある。そのため、例えば局所摂動差分法(松山幸雄, 岩田尚史, 窪田仁志, 中川泰夫,"局所摂動パターンマッチング法によるLSIウェーハパターンの精密外観検査,"電子情報通信学会論文誌D, J72-D2 (12), pp.2041-2050 (1989).などを参照)を用いて差分画像を求めることが考えられる。
【0100】
局所摂動差分法とは、一方の画像を他方の画像に対して局所領域ごとにXY平面内および明度方向に摂動して合わせ込み、合わせきれない部分を差分とする方法である。画像間のわずかな不一致を消去することができる。摂動幅は比較検査の処理パラメータ(314)の一つであり、その値によって消去される不一致量の大きさが変化する。
【0101】
また、差分画像を基に検査画像f''が良品か異常かを判定する差分画像評価エンジン(313)にもいくつかの方法が考えられる。例えば、差分のある画素領域の明度値の分布をもとに判定を行うことが考えられるが、異常と判定する分布の大きさや明度値の大きさも比較検査の処理パラメータ(314)の一つである。
【0102】
ここでは、差分画像生成エンジン(312)や差分画像評価エンジン(313)として、いわゆるルールベースのアルゴリズムを例に挙げたが、機械学習ベースのアルゴリズムであってもよい。機械学習ベースのアルゴリズムであっても学習のための処理パラメータ(314)が存在する。
【0103】
本実施例では、異常判定正解率を評価値として、これらの処理パラメータを最適化することを特徴とする。前述の通り、オートエンコーダが良品以外の画像をなるべく復元できないようにするためにオートエンコーダの表現力を低下させる処理を行うが、異常判定正解率を維持したまま表現力を低下させることには限界がある。表現力を低下させると、入力画像が良品であってもオートエンコーダによる推定良品画像は劣化し、入力画像と推定良品画像には差分が発生してしまう。
【0104】
この多少の差分を異常と誤判定されないように、比較検査エンジンの処理パラメータを調整することにより、オートエンコーダでは、更に表現力を下げて、良品しか復元できない良品画像推定エンジンを生成し易くなる。このようなオートエンコーダの表現力を低下させるハイパーパラメータ(309)と比較検査エンジンの処理パラメータ(314)との同時最適化を処理315において行うことにより、両者の性能を補完し合って、より高精度な異常判定が可能になる。
【0105】
局所摂動差分法のように、検査画像f''と推定良品画像h''との比較において、わずかな不一致を差分として検出しない手法を差分画像生成エンジンに用いることは、本実施例における特徴の一つである。なぜなら、図11を用いて後述するように、本実施例では推定良品画像の復元精度を多少犠牲にしてもオートエンコーダの表現力を低下させて、異常パターンを確実に検出することで異常判定正解率Rcを向上させるためである。そのためには、良品において発生する多少の差分に対しては感度が低い手法を用いることが必須である。
【0106】
よって、本実施例によれば、オートエンコーダを利用した異常判定において、良品画像のみを用いた学習であっても、未知の異常画像に対して精度の高い異常判定を行うことが可能な異常判定用計算機及び異常判定方法を実現することができる。
【実施例0107】
5.疑似異常画像を用いた異常判定方法の最適化
良品の検査対象物を撮像して良品学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する良品学習画像取得ステップと、異常学習画像{f'_i}(i=1,…,Nf, Nf:画像枚数)を取得する異常学習画像取得ステップと、良品学習画像{f_i}と異常学習画像{f'_i}を用いてオートエンコーダのパラメータを学習する学習ステップと、検査対象物を撮像して検査画像f''を取得する検査画像取得ステップと、検査画像f''をオートエンコーダに入力して推定良品画像h''を推定する良品画像推定ステップと、検査画像f''と推定良品画像h''から比較検査エンジンにより異常判定を行う判定ステップを含み、前記学習ステップでは、良品学習画像{f_i}と異常学習画像{f'_i}の異常判定正解率Rcを評価値として前記Rcが最大あるいは所定のしきい値th以上になるように、エンコードされたコード層の次元圧縮率Rdを最大化する、あるいはコード層への入力信号量またはコード層からの出力信号量を減少させることを特徴とする。
【0108】
本特徴について図8を用いて説明する。異常パターンは多様であり、事前に多くの異常画像を網羅的に収集することは一般に困難である。しかし、一部であっても、いくつかの異常画像が入手できれば、異常学習画像{f'_i}として学習することで、オートエンコーダのパラメータをより適切に学習することが可能である。
【0109】
すなわち、良品学習画像f_i(800)と推定良品画像h_i(812)がなるべく類似し、また、異常学習画像f'_i(802)と推定良品画像h'_i(813)が異常部分においてなるべく乖離すると、異常判定正解率Rcは改善する傾向にある。
【0110】
本実施例では、異常判定正解率Rcを評価値としてオートエンコーダを学習することを特徴とするが、良品学習画像{f_i}(800)と異常学習画像{f'_i}(802)の両方を用いることで、異常判定正解率Rcをより正確に推定することが可能となる。
【0111】
異常学習画像{f'_i}は疑似異常画像生成エンジンによって生成した疑似異常画像であり、前記疑似異常画像生成エンジンは良品学習画像{f_i}に画像処理を施すことによって画像を生成することを特徴とする。
【0112】
本特徴について図8を用いて説明する。前述の通り異常画像の収集は一般に困難であり、異常学習画像{f'_i}(802)を事前に用意できない、あるいは何枚か用意できたとしても、多くの異常パターンを網羅的に収集できない場合がある。そこで、良品学習画像{f_i}(800)に画像処理を施すことによって、様々な異常画像を疑似的に生成し、学習に用いることを特徴とする。
【0113】
その場合、異常学習画像f'_iを疑似的に生成する際に元になった良品学習画像(800)が存在するため、学習においては、推定良品画像h'_i(813)と対応する良品学習画像(800)がなるべく類似すると、異常判定正解率Rcは改善する傾向にある。
【0114】
疑似異常画像生成エンジン(801)における画像処理は実際の検査対象において発生しうる異常を模擬したものであり、図9に示す通り、良品学習画像(図9(a))に対して、異物の付着(図9(b))、欠け等の欠損(図9(c))、傷(図9(d))、表面の斑や汚れ(図9(e))、形状変形(図9(f))、等を施すバリエーションが挙げられる。
【0115】
また、図8に示した疑似異常画像を用いた異常判定においても、疑似異常画像を用いなかった図3と同様に、学習ステップにおいて異常判定正解率Rcを基にハイパーパラメータ(811)(コード層のノード数、等)および、比較検査処理パラメータ(817)(例えば、差分画像生成エンジン(815)あるいは前記差分画像評価エンジン(816)の処理パラメータ、等)を学習することを特徴とする。加えて、異常判定正解率Rcを基に疑似異常画像生成エンジン(801)における画像処理の処理パラメータ(疑似異常画像の生成方法や生成枚数、等)を学習することを特徴とする。
【0116】
ハイパーパラメータ(811)と比較検査処理パラメータ(817)と疑似異常画像生成エンジン(801)の処理パラメータの同時最適化を処理818において行うことができる。
【0117】
現実問題として異常パターンのバリエーションを網羅的に収集することが困難であるため、良品教示によって異常判定の性能を出すことが求められる。一方、未知の異常パターンに対して性能を出すことは本質的に困難な課題である。よって、良品画像の情報だけで努力できることは、良品のみを復元するオートエンコーダを生成することである。そのためには、比較検査エンジンの処理パラメータや疑似異常画像生成エンジンの処理パラメータ等、全ての処理パラメータの調整を駆使して、異常判定正解率Rcを維持したまま、コード層の表現力を下げられるところまで下げることが重要となる。
【0118】
よって、本実施例によっても、オートエンコーダを利用した異常判定において、良品画像のみを用いた学習であっても、未知の異常画像に対して精度の高い異常判定を行うことが可能な異常判定用計算機及び異常判定方法を実現することができる。
【0119】
6.処理結果例
処理結果例を用いて本実施形態の効果を示す。
【0120】
図10は一般的なオートエンコーダによる異常判定の処理結果である。
【0121】
図10上段に示す学習フェーズでは、良品学習画像f(図10(a1))をオートエンコーダに入力して推定良品画像h(図10(a2))を出力し、良品学習画像fと推定良品画像hが類似するようにオートエンコーダのモデルパラメータを学習する。その結果、良品学習画像fと推定良品画像hとの単純差分(図10(a3))はほぼ無くなり、良品画像は良品と正しく判定されることになる。
【0122】
検査フェーズでは、このように学習されたオートエンコーダを用いて検査画像f''の異常判定を行う。異常パターンの種類によっては図10中段に示すように正しい異常判定が行える場合もある。すなわち、異常部として異物(1000)を含む検査画像f''(図10(b1))をオートエンコーダに入力して出力される推定良品画像h''(図10(b2))において異常部が復元できない場合である。このとき、異常部が検査画像f''と推定良品画像h''との差分(図10(b3))として抽出されるため、検査画像f''は異常と正しく判定されることになる。
【0123】
一方、図10下段に示すように、正しい異常判定が行えない場合がある。すなわち、異常部として欠損(1001)を含む検査画像f''(図10(c1))をオートエンコーダに入力して出力される推定良品画像h''(図10(c2))において異常部が復元できてしまう場合である。このとき、異常部が検査画像f''と推定良品画像h''との差分(図10(c3))として抽出されないため、検査画像f''は良品と誤って判定されることになる。
【0124】
オートエンコーダの学習は、良品画像から同じ良品画像を推定するように学習されており、学習に用いていない未知の異常画像を入力した際に良好な推定良品画像、すなわち入力した異常画像から異常部を除去した推定良品画像が出力されるとは限らないためである。
【0125】
これに対し、本実施形態では、異常判定正解率Rcを評価値としてオートエンコーダの表現力を低下させることによって、良品画像以外の画像を復元できないようにすることを特徴とする。
【0126】
図11は本実施形態のオートエンコーダによる異常判定の処理結果である。
【0127】
図11上段に示す学習フェーズでは、良品学習画像f(図11(a1))をオートエンコーダに入力して推定良品画像h(図11(a2))を出力し、異常判定正解率Rcを評価値として、なるべくオートエンコーダの表現力が低下するようにハイパーパラメータを決定する。
【0128】
表現力を低下させた結果、推定良品画像h(図11(a2))の復元精度も低下し(例えば良品学習画像に対して多少形状が歪む等)、入力画像が良品であったとしても良品学習画像fと推定良品画像hとの差分(図11(a3))が発生する可能性がある。しかし、本実施形態では良品学習における復元精度が直接的な評価値ではなく、異常判定正解率Rcが評価値であるため、Rcの値が高ければ問題はない。すなわち、入力画像が良品か異常かは単に良品学習画像fと推定良品画像hの単純な差分の有無で決まるのではなく、比較検査エンジンによって決まるため、多少の差分が発生しても正しい異常判定が行えるように比較検査エンジンの処理パラメータを調整できればよい。
【0129】
異常判定正解率Rcを維持した上で復元精度を多少犠牲にしてもオートエンコーダの表現力を低下させることにより、未知の異常画像を復元できなくなる可能性が増す。その結果、図11中段に示すように、推定良品画像h''(図11(b2))において従来も復元できなかった異物(1100)を含む検査画像f''(図11(b1))を異常と正しく判定できることは勿論、図11下段に示すように、従来は復元できてしまった欠損(1101)が推定良品画像h''(図11(c2))において復元できなくなり、検査画像f''(図11(c1))を異常と正しく判定できるようになる。
【0130】
7.自動異常判定システムのハードウェア構成
以上の実施形態にて説明した異常判定方法を実現する異常判定システムを図12に示す。
【0131】
異常判定システムは、前述の撮像装置と、計算機(異常判定用計算機)により構成される。撮像装置の例はすでに説明した通りである。
【0132】
計算機は、本実施形態で説明した異常判定方法を処理する構成物であり、以下を有する。
*プロセッサ:プロセッサの例としてはCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)が考えられるが、異常判定方法を処理できるのであれば、ほかの構成物であってもよい。
*記憶資源:記憶資源の例としてはRAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、不揮発メモリ(フラッシュメモリ等)が考えられる。当該記憶資源は、以上の実施形態にて説明した異常判定方法をプロセッサに実行させるプログラム(異常判定プログラムと呼ぶ)を格納してもよい。
*GUI装置:GUI(Graphical User Interface)装置の例としては、ディスプレイやプロジェクタ等が考えられるが、GUIを表示ができるのであれば、ほかの装置でもよい。
*入力装置:入力装置の例としては、キーボード、マウス、タッチパネルが考えられるが、ユーザからの操作を受け付けられる構成物であれば他の装置でもよい。また、入力装置とGUI装置とは一体の装置であってもよい。
*通信インターフェース装置: 通信インターフェースの例としては、USB(Universal Serial Bus)、イーサネット(Ethernet:登録商標)、Wi-Fi(登録商標)といった例が考えられるが、撮像装置から画像を直接受信できたり、又はユーザが当該画像を計算機に送信できるインターフェースであれば、ほかのインターフェース装置であってもよい。また、当該通信インターフェースに、当該画像を格納した可搬不揮発記憶媒体(たとえばフラッシュメモリ、DVD(Digital Versatile Disk)、CD-ROM、ブルーレイディスク等の)を接続し、計算機に当該画像を格納してもよい。
以上が計算機のハードウェア構成である。なお、異常判定システムを構成する計算機は複数であってもよく、撮像装置が複数であってもよい。
【0133】
なお、前述の異常判定プログラムは、以下の経路で計算機に格納されてもよい:
*異常判定プログラムを可搬不揮発記憶媒体に格納し、当該媒体を通信インターフェースに接続することで、当該プログラムを計算機に配布する。
*プログラム配信サーバにより異常判定プログラムを計算機に配信する。なお、プログラム配信サーバは、異常判定プログラムを格納した記憶資源と、異常判定プログラムを配信する配信処理を行うプロセッサと、計算機の通信インターフェース装置と通信可能である通信インターフェース装置、とを有する。
【0134】
8.その他
以上で実施形態の説明を終える。前述の通り、これまで説明した実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0135】
一例として、本実施形態では入力情報として二次元の画像データを扱ったが、超音波の受信波等の一次元信号や、レーザレンジファインダ等で取得した三次元のボリュームデータを入力情報とした場合も本発明を適用することが可能である。また、入力画像が複数枚、推定評価値が複数種類の場合も本実施形態を適用することが可能である(評価エンジンが多入力・多出力)。
【0136】
また、実施形態では検査画像が良品か異常かの2択の異常判定を扱ったが、例えば異常の大きさや致命度に応じた異常の度合いを定量化した「異常度」を連続量として推定してもよい。異常度が零あるいは小さな値であれば良品とみなせるが、大きな値は異常と判断される。更に異常度が大きくなるにつれ、深刻な異常が発生していると判断することができる。
【0137】
推定方法として、比較検査エンジンにおいて検査画像と推定良品画像の差分の度合いに応じて異常度を算出することが考えられる。また、学習フェーズにおいてユーザが学習画像の異常度も教示し、前記学習画像が教示された異常度になるようにハイパーパラメータ(309、811)および比較検査処理パラメータ(314、817)を学習することが考えられる。
【0138】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0139】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)、Python等の広範囲のプログラムまたはスクリプト言語で実装できる。
【0140】
さらに、各実施例の機能を実現するソフトウェアのプログラムコードのすべてまたは一部は、予め計算機の記憶資源に格納されていてもよいし、必要に応じて、ネットワークに接続された他の装置の非一時的記憶装置から、または計算機が備える図略の外部I/Fを介して、非一時的な記憶媒体から、計算機の記憶資源に格納されてもよい。
【0141】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0142】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0143】
102…検査対象物 300、800…良品学習画像 301、803…良品画像推定エンジン 306、404、411、418、604…コード層 310、812、813…推定良品画像 311…比較検査エンジン 312、815…差分画像生成エンジン 313、813…差分画像評価エンジン 801…疑似異常画像生成エンジン 802…異常学習画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12