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

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

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

<>
  • 特許-外観検査方法および外観検査システム 図1
  • 特許-外観検査方法および外観検査システム 図2
  • 特許-外観検査方法および外観検査システム 図3
  • 特許-外観検査方法および外観検査システム 図4
  • 特許-外観検査方法および外観検査システム 図5
  • 特許-外観検査方法および外観検査システム 図6
  • 特許-外観検査方法および外観検査システム 図7
  • 特許-外観検査方法および外観検査システム 図8
  • 特許-外観検査方法および外観検査システム 図9
  • 特許-外観検査方法および外観検査システム 図10
  • 特許-外観検査方法および外観検査システム 図11
  • 特許-外観検査方法および外観検査システム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-03
(45)【発行日】2024-09-11
(54)【発明の名称】外観検査方法および外観検査システム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240904BHJP
   G06F 18/214 20230101ALI20240904BHJP
   G06V 10/774 20220101ALI20240904BHJP
【FI】
G06N20/00 130
G06F18/214
G06V10/774
【請求項の数】 8
(21)【出願番号】P 2023509035
(86)(22)【出願日】2022-03-14
(86)【国際出願番号】 JP2022011438
(87)【国際公開番号】W WO2022202456
(87)【国際公開日】2022-09-29
【審査請求日】2023-06-01
(31)【優先権主張番号】P 2021047889
(32)【優先日】2021-03-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】宮本 敦
(72)【発明者】
【氏名】伊藤 晟
(72)【発明者】
【氏名】近藤 直明
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2015-176175(JP,A)
【文献】国際公開第2019/222734(WO,A1)
【文献】米国特許出願公開第2021/0056417(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
G06F 18/214
G06V 10/774
(57)【特許請求の範囲】
【請求項1】
(a)学習用の検査対象物を撮像した学習画像と該学習画像に対する正解評価値とのペアである学習サンプルの集合である学習データを記憶資源に格納し、
(b)前記学習データに含まれる学習サンプルの正解評価値を、変更可能な所定のばらつき分布に従って変化させ、変化後の値を正解評価値とする学習サンプルである拡張学習サンプルを生成し、
(c)前記拡張学習サンプルの集合である拡張学習データを生成し、
(d)前記拡張学習データを基に学習画像と評価値との関係を学習して評価エンジンの内部パラメータを決定し、
(e)検査対象物を撮像した検査画像を取得し、
(f)前記検査画像を前記評価エンジンに入力し、前記評価エンジンの出力から前記検査画像の評価値の推定値である推定評価値を取得し、
前記(b)において、前記学習データに含まれる前記学習サンプルのそれぞれから、正解評価値を前記ばらつき分布に従って乱数を用いて変化させることにより拡張学習サンプルを生成し、
前記(c)において、前記学習データの前記学習サンプルを当該学習サンプルから生成された拡張学習サンプルに差し替えることにより前記拡張学習データを生成し、
前記(d)において、前記拡張学習データを基に前記評価エンジンの内部パラメータを更新し、
前記(b)から前記(d)を1エポックとして、複数回のエポックを、エポック毎に前記(b)において前記正解評価値を再生成しつつ繰り返す
観検査方法。
【請求項2】
前記(a)において、更に、前記学習データを部分集合である複数のミニバッチに分割し、
前記(b)において、前記ミニバッチのそれぞれに含まれる前記学習サンプルのそれぞれから、正解評価値を前記ばらつき分布に従って乱数を用いて変化させることにより拡張学習サンプルを生成し、
前記(c)において、前記ミニバッチの単位で前記拡張学習サンプルの集合である複数の拡張ミニバッチを生成し、前記複数の拡張ミニバッチを部分集合とする前記拡張学習データを生成し、
前記(d)において、前記拡張学習データを前記拡張ミニバッチ毎に学習し、前記拡張ミニバッチを学習する毎に前記内部パラメータを更新する、
請求項に記載の外観検査方法。
【請求項3】
前記エポックを繰り返しにおける前記(d)において、学習中の前記評価エンジンに前記学習画像を入力し、前記評価エンジンから出力される推定評価値に基づいて、前記(b)に用いる前記ばらつき分布を変更する、
請求項に記載の外観検査方法。
【請求項4】
前記評価エンジンから出力される推定評価値に基づいて信頼度を算出し、前記信頼度に基づいて前記(b)に用いる前記ばらつき分布を変更する、
請求項に記載の外観検査方法。
【請求項5】
前記エポックを繰り返しにおける前記(d)において、前記拡張ミニバッチを学習する毎に、学習中の前記評価エンジンに前記学習画像を入力し、前記評価エンジンから出力される推定評価値に基づいて、前記(b)に用いる前記ばらつき分布を変更する、
請求項に記載の外観検査方法。
【請求項6】
前記評価エンジンから出力される推定評価値に基づいて信頼度を算出し、前記信頼度に基づいて前記(b)に用いる前記ばらつき分布を変更する、
請求項に記載の外観検査方法。
【請求項7】
プロセッサと記憶資源とを有する外観検査システムであって、
前記プロセッサは、
(a)学習用の検査対象物を撮像した学習画像と該学習画像に対する正解評価値とのペアである学習サンプルの集合である学習データを前記記憶資源に格納し、
(b)前記学習データに含まれる学習サンプルの正解評価値を、変更可能な所定のばらつき分布に従って変化させ、変化後の値を正解評価値とする学習サンプルである拡張学習サンプルを生成し、
(c)前記拡張学習サンプルの集合である拡張学習データを生成し、
(d)前記拡張学習データを基に学習画像と評価値との関係を学習して評価エンジンの内部パラメータを決定し、
(e)検査対象物を撮像した検査画像を取得し、
(f)前記検査画像を前記評価エンジンに入力し、前記評価エンジンの出力から前記検査画像の評価値の推定値である推定評価値を取得し、
前記(b)において、前記学習データに含まれる前記学習サンプルのそれぞれから、正解評価値を前記ばらつき分布に従って乱数を用いて変化させることにより拡張学習サンプルを生成し、
前記(c)において、前記学習データの前記学習サンプルを当該学習サンプルから生成された拡張学習サンプルに差し替えることにより前記拡張学習データを生成し、
前記(d)において、前記拡張学習データを基に前記評価エンジンの内部パラメータを更新し、
前記(b)から前記(d)を1エポックとして、複数回のエポックを、エポック毎に前記(b)において前記正解評価値を再生成しつつ繰り返す、
外観検査システム。
【請求項8】
(a)学習用の検査対象物を撮像した学習画像と該学習画像に対する正解評価値とのペアである学習サンプルの集合である学習データを記憶資源に格納し、
(b)前記学習データに含まれる学習サンプルの正解評価値を、変更可能な所定のばらつき分布に従って変化させ、変化後の値を正解評価値とする学習サンプルである拡張学習サンプルを生成し、
(c)前記拡張学習サンプルの集合である拡張学習データを生成し、
(d)前記拡張学習データを基に学習画像と評価値との関係を学習して評価エンジンの内部パラメータを決定し、
(e)検査対象物を撮像した検査画像を取得し、
(f)前記検査画像を前記評価エンジンに入力し、前記評価エンジンの出力から前記検査画像の評価値の推定値である推定評価値を取得し、
前記(b)において、前記学習データに含まれる前記学習サンプルのそれぞれから、正解評価値を前記ばらつき分布に従って乱数を用いて変化させることにより拡張学習サンプルを生成し、
前記(c)において、前記学習データの前記学習サンプルを当該学習サンプルから生成された拡張学習サンプルに差し替えることにより前記拡張学習データを生成し、
前記(d)において、前記拡張学習データを基に前記評価エンジンの内部パラメータを更新し、
前記(b)から前記(d)を1エポックとして、複数回のエポックを、エポック毎に前記(b)において前記正解評価値を再生成しつつ繰り返す、
ことをコンピュータに実行させるための外観検査プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は機械学習に基づく外観検査装置および外観検査方法に関する。より具体的には、予め学習用の検査対象物を撮像して取得した学習画像とその正解評価値との関係を学習した評価エンジンを用いて、実際の検査対象物の検査画像から評価値を高精度に推定し、検査対象物のできばえを自動で評価する装置と方法が開示される。
【背景技術】
【0002】
機械、金属、化学、食品、繊維等を含む多くの工業製品においては検査画像を基に、形状不良、組立不良、異物の付着、内部の欠損や致命度、表面の傷や斑、汚れ等、様々な出来栄えを評価する外観検査が広く行われている。従来、これらの外観検査の多くは検査員の目視判断により行われてきた。一方、大量生産や品質向上への要求増大に伴い、検査コストならびに検査員の負荷が増大している。また、人間の感覚に基づく官能検査では特に高い経験やスキルが求められる。検査員によって評価値が異なったり、検査の度に結果が異なるといった属人性や再現性も課題となる。このような検査のコスト、スキル、属人性等の課題に対し、検査の自動化が強く求められている。
【0003】
近年、Convolutional Neural Network(CNN)に代表される深層ネットワークモデルの提案により、機械学習の性能は飛躍的に向上した(例えば、非特許文献1)。機械学習に基づく評価エンジンを活用した外観検査方法は多く提案されており、例えば、WO2020/129617号公報(特許文献1)では、溶接個所の形状不良を機械学習を用いて判定する方法が開示されている。
【0004】
評価エンジンの学習においては、学習用の検査対象物の画像(学習画像)を入力として、評価エンジンから出力される推定評価値と検査員により教示された正解評価値との差分が小さくなるように評価エンジンの内部パラメータ(ネットワークの重みやバイアス等)を更新する。内部パラメータを更新するタイミングとしては、全ての学習サンプルをまとめて学習するのではなく、学習データをいくつかのミニバッチと呼ばれる集合に分割し、ミニバッチ毎に内部パラメータの更新を行うことが一般的である。これはミニバッチ学習と呼ばれ、全てのミニバッチが学習された時点で、全ての学習サンプルが学習に用いられたことになる。この全てのミニバッチを1回学習することを1エポックと呼ぶ。エポックを何回も繰り返すことで、内部パラメータを最適化していく。エポック毎にミニバッチに含まれる学習サンプルをシャッフルすることもある。
【0005】
機械学習においては、特定の学習サンプルに対して評価エンジンが過度に最適化され汎化性能が低下する、いわゆる「過学習」が課題となる。その要因の一つが少数の学習サンプルによる学習である。膨大な学習サンプルを用意することができれば、特定のサンプルに最適化されることなく、汎化性能の高い内部パラメータの最適化が期待できる。一方、学習サンプルの収集は検査員が手作業で行うことが多く、膨大な学習サンプルを用意することは困難な場合が多い。
【0006】
過学習を抑制する一般的な方法として、データ拡張(Data Augmentation)が知られている。これは、検査員が用意した学習画像に対して平行移動や回転等の処理を加えることで、人為的に学習画像を水増しする技術である。例えば、ある値の正解評価値をもつ検査対象物が、たまたま全ての学習画像の左上に映っていた場合、正解評価値と検査対象物の画像上の位置が無関係であったとしても、評価エンジンは位置が重要な判断基準であると誤って学習する恐れがある。データ拡張を用いて位置のバリエーションを増やすことにより、このような誤った学習を抑制することができる。WO2020/129617号公報(特許文献1)においても、形状不良箇所の位置を変更する等のデータ拡張が開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】国際公開WO2020/129617号明細書
【非特許文献】
【0008】
【文献】A. Krizhevsky, I. Sutskever, and G. E. Hinton,“Imagenet classification with deep convolutional neural networks,”Proc. of NIPS (2012).
【発明の概要】
【発明が解決しようとする課題】
【0009】
前述の通り、検査画像には一般に多くのバリエーションが存在することが好ましいが、画像収集や正解評価値の教示は検査員が手作業で行うことが多く、多くの学習サンプルを用意するには多くの労力を要する。また、検査員が教示した正解評価値には個人差による判断の揺らぎや誤教示が含まれる。場合によっては一つの学習サンプルに複数の正解評価値が存在することもありうる。このような状況下において過学習は特に発生しやすいと考えられる。一方、現実問題として学習サンプルの質の向上を検査員の努力だけで実現することは難しい。また、正解評価値のばらつきに対しては前述の検査画像の水増しだけでは十分な解決が図れない。そのため、たとえ学習サンプルの質が低下しても機械学習による評価値の推定性能を維持する仕組みが必要である。
【課題を解決するための手段】
【0010】
本開示のひとつの態様による外観検査方法および外観検査システムは、
(a)学習用の検査対象物を撮像した学習画像と該学習画像に対する正解評価値とのペアである学習サンプルの集合である学習データを記憶資源に格納し、
(b)前記学習データに含まれる学習サンプルの正解評価値を、変更可能な所定のばらつき分布に従って変化させ、変化後の値を正解評価値とする学習サンプルである拡張学習サンプルを生成し、
(c)前記拡張学習サンプルの集合である拡張学習データを生成し、
(d)前記拡張学習データを基に学習画像と評価値との関係を学習して評価エンジンの内部パラメータを決定し、
(e)検査対象物を撮像した検査画像を取得し、
(f)前記検査画像を前記評価エンジンに入力し、前記評価エンジンの出力から前記検査画像の評価値の推定値である推定評価値を取得する。
【発明の効果】
【0011】
本態様によれば、機械学習を活用した外観検査の自動化において、判断の揺らぎや誤教示、複数の正解評価値の存在等に起因する正解評価値のばらつきに対しても評価エンジンの過学習を抑制することができ、評価エンジンの精度の向上が期待できる。
【図面の簡単な説明】
【0012】
図1】自動外観検査システムおよび全体の処理シーケンスを示す図である。
図2】学習フェーズにおける学習データの拡張を示す図である。
図3】検査対象物の一例を示す図である。
図4】正解評価値のばらつき分布の一例を示す図である。
図5】検査対象物の一例を示す図である。
図6】正解評価値のばらつき分布の一例を示す図である。
図7】公知例の学習シーケンスの一例を示す図である。
図8】学習シーケンスの一例を示す図である。
図9】学習シーケンスの一例を示す図である。
図10】学習フェーズにおけるはらつき分布の更新を示す図である。
図11】正解評価値のばらつき分布の入力、表示を行うGUIを示す図である。
図12】自動外観検査システムのハードウェア構成を示す図である。
【発明を実施するための形態】
【0013】
本実施形態について図面を参照して説明する。本実施形態は以下の特徴を有する。ただし、本実施形態に含まれる特徴は以下に示すもののみに限定されない。
【0014】
(1)学習用の検査対象物を撮像して学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する学習画像取得ステップと、学習画像f_iと学習画像f_iに対しユーザが教示した正解評価値g_iとのペア(f_i,g_i)を学習サンプルとし、その集合{(f_i,g_i)}(i=1,…,Nf)を学習データとして入力する学習データ入力ステップと、正解評価値のばらつき分布d(g'_i;g_i)を入力するばらつき分布入力ステップと、ばらつき分布d(g'_i;g_i)を基に、学習データ(f_i,g_i)における正解評価値g_iの値を変化させて生成した複数の拡張学習サンプル(f_i,g'_ij)(j=1,…,NS_i, NS_i:拡張数)からなる拡張学習データを生成する拡張学習データ生成ステップと、拡張学習データを基に学習画像と評価値との関係を学習して、評価エンジンの内部パラメータを決定する学習ステップと、検査対象物を撮像して検査画像f''_i(i=1,…,Nf'', Nf'':画像枚数)を取得する検査画像取得ステップと、検査画像f''_iを学習済みの評価エンジンに入力し、推定評価値g''^_iを出力する評価ステップを含み、前記ばらつき分布入力ステップで与えたばらつき分布d(g'_i;g_i)は、正解評価値g_iをパラメータとして分布が変化することを特徴とする。
【0015】
本特徴について補足する。正解評価値のばらつきは本質的に存在するものであり、完全に除去することは困難である。そこで本実施形態では正解評価値の統計的なばらつき分布dに基づいたデータ拡張を行う。すなわち、検査員が与えた正解評価値g_iから、ばらつき分布dに従って複数の拡張正解評価値{g'_ij}(j=1,…,Ns_i, Ns_i:拡張数)を生成する。これらを拡張学習サンプル群{(f_i,g'_ij)}として学習する。正解評価値をばらつかせることにより、教示された正解値が多少不正確であったとしても、各学習サンプルに対する過度な最適化を抑制し、汎化性能の向上が期待できる。
【0016】
本処理の課題は、ばらつき分布dをどのように適切に与えるかである。万が一、誤ったばらつき分布を与えると偽の学習データを大量に生成してしまい、逆に評価値の推定性能が低下する恐れがある。本実施形態では正解評価値g_iの値に応じてばらつき分布dを切り替えることが特徴である。すなわち、ばらつき分布を拡張正解評価値g'_iを変数、正解評価値g_iをパラメータとする確率分布d(g'_i;g_i)として正解評価値毎に与えた。ばらつきd(g'_i;g_i)に基づきj番目に生成した拡張正解評価値g'_iがg'_ijである。
【0017】
(2)拡張学習データ生成ステップおよび学習ステップにおいて、s番目のミニバッチm_sに含まれるi番目の1つの学習サンプル(f_i,g_i)に対して、ばらつき分布dに基づき1つの拡張学習サンプル(f_i,g'_i)を生成して学習サンプル(f_i,g_i)と差し替えることによって、拡張ミニバッチm'_sを生成することを特徴とする。
【0018】
本特徴について補足する。一般的なデータ拡張の手法においては、1つの学習サンプルから複数の拡張学習サンプルを生成するため、学習時間が増加してしまう。すなわち、学習サンプル数の増加により、拡張前の1つのミニバッチに含まれる学習サンプル数、ミニバッチ数のいずれか、または両方がデータ拡張前に比べて増加することになる。本実施形態では、拡張前の各学習サンプル(f_i,g_i)を1つの拡張学習サンプル(f_i,g'_i)に差し替えるだけなので、学習サンプル数、ミニバッチ数は共に変化しない。ばらつき分布dを確率分布と考え、この確率分布に従う乱数で拡張評価正解値g'_iを生成する。生成回数が少ないときは、拡張学習サンプルに偏りが生じうるが、何度もエポックを繰り返して学習が進むにつれ、学習済みの拡張学習サンプルにおける拡張評価正解値の分布はばらつき分布dに近づくことが期待される。
【0019】
(3)拡張学習データ生成ステップおよび学習ステップにおいて、拡張学習データを生成しながら反復的に評価エンジンを学習する際、反復中にばらつき分布dを更新し、更新したばらつき分布を基に拡張学習データを生成することを特徴とする。その具体例として、拡張学習サンプルを学習中の評価エンジンに入力して出力される推定評価値g'^_iの信頼度R(g'^_i)を求め、信頼度R(g'^_i)をパラメータとして、ばらつき分布を反復中に更新することを特徴とする。
【0020】
本特徴について補足する。初めから精度の高いばらつき分布を与えることには限界がある。そこで、学習中にばらつき分布を変化させ、より適切な分布とすることを考える。ばらつき分布を変化させる方法として、評価エンジンの学習状態に応じて適応的に変化させることを考える。例えば、学習画像f_iを学習中の評価エンジンに入力して推定評価値g'^_iを出力し、g'^_iの信頼度R(g'^_i)を算出する。信頼度の算出方法の例としては、正解評価値g_iと推定評価値g'^_iの差分や、ばらつき分布d(g'_i;g_i)を確率分布と捉えて推定評価値g'^_iを代入した値d(g'^_i;g_i)(推定値がg'^_iになることがどの程度起こりうるかの指標)、分類問題であれば各分類クラスへの帰属度のばらつきに基づく方法が挙げられる。各分類クラスへの帰属度について、正解分類クラスへの帰属度が突出していれば信頼度は高いが、他の分類クラスへの帰属度もあれば、程度に応じて信頼度は低くなる。
【0021】
このような信頼度に応じてばらつき分布を学習中に変化させる。ばらつき分布と評価エンジンの更新を繰り返すことによって、学習前には想定できなかった適切なばらつき分布を推定し、このばらつき分布に基づくデータ拡張によって、より高性能な評価エンジンを得ることが可能になる。
なお、以下に説明する実施形態は本発明を限定するものではなく、また、実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0022】
1. 自動外観検査システムと全体の処理シーケンス
本発明における自動外観検査システムおよび全体の処理シーケンスを図1に示す。処理シーケンスは大きく学習フェーズ100と検査フェーズ101に分かれる。
【0023】
学習フェーズでは、学習用の検査対象物を撮像して学習画像{f_i}(i=1,…,Nf, Nf:画像枚数)を取得する(102)。学習画像は、CCDカメラ、光学顕微鏡、荷電粒子顕微鏡、超音波検査装置、X線検査装置、等の撮像装置で検査対象物の表面あるいは内部をデジタル映像として撮像することで取得する。なお、「取得」の他の例としては、ほかのシステムで撮像した画像を単に受信して、自動外観検査システムが有する記憶資源に格納するだけでもよい。
【0024】
次に、各学習画像f_iに対し正解評価値g_iを付与する(103)。評価値とは、検査対象物の形状不良、組立不良、異物の付着、対処物内部の欠損や致命度、表面の傷や斑、汚れ等、様々な出来栄えを評価する指標であって、様々な定義が可能である。例えば、不良の致命度や表面の状態を数値化して評価値としてもよいし(g_i=[g_min,g_max])、発生した不良の種類をクラス分けしたラベルを評価値としてもよい(g_i={class1,…,classN})。これらの評価基準に対し、検査者の目視判断や他の検査装置や方法で解析された数値等を基に正解評価値g_iを付与する。勿論、この正解評価値g_iは正確であることが望ましいが、検査者の判断の揺らぎや誤教示、複数の正解評価値の存在等に起因するばらつきが含まれる可能性がある。
【0025】
各学習画像f_iと正解評価値g_iとのペア(f_i,g_i)を学習サンプルと呼び、学習サンプルの集合{(f_i,g_i)}(i=1,…,Nf)を学習データと呼ぶ。この学習データを用いて評価エンジンを学習する(104)。評価エンジンとは検査画像f_iを入力として推定評価値g^_iを出力する機械学習に基づく推定器である。評価エンジンとしては既存の様々な機械学習のエンジンを用いることができるが、例えばConvolutional Neural Network(CNN)に代表される深層ニューラルネットワークや、Support Vector Machine(SVM)/Support Vector Regression(SVR)、k-nearest neighbor(k-NN)等が挙げられる。これらの評価エンジンは分類問題や回帰問題を扱うことができる。
【0026】
一般には、教示した正解評価値g_iに近い推定評価値g^_iが出力されるように、学習サンプルを用いて評価エンジンの内部パラメータを最適化する。本実施形態では、正解評価値g_iのばらつき分布dを入力する。このばらつき分布dを基に、学習データ(f_i,g_i)における正解評価値g_iの値を変化させて生成した複数の拡張学習サンプル(f_i,g'_ij)(j=1,…,NS_i, NS_i:拡張数)からなる拡張学習データを生成し(105)、拡張学習データを基に評価エンジンを学習し、内部パラメータ(106)を最適化する。
【0027】
検査フェーズでは、実際の検査対象物を撮像して検査画像f''_i(i=1,…,Nf'', Nf'':画像枚数)を取得する(102)。検査画像f''_iを学習済みの評価エンジンに入力し、推定評価値g''^_iを出力する(107)。推定評価値は必要に応じて検査者が確認し(108)、不良等があれば対策を製造プロセスにフィードバックする。
【0028】
前述の実施例では学習画像f_iと検査画像f''_iはそれぞれ1枚の画像であったが、例えば撮像方向や撮像装置を変えて複数枚の画像(画像群)を撮像し、画像群を評価エンジンの入力として評価値を推定してもよい。この場合、学習画像群、検査画像群がそれぞれf_i、f''_iとなる。同様に評価値も複数種類存在してもよい。両者を合わせると多入力で他出力の評価エンジンを用いてもよい。
【0029】
2. データ拡張
2.1 データ拡張の方法
本実施形態におけるデータ拡張の方法を図2に示す。前述の通り、学習画像f_iと検査員が教示した正解評価値g_iとのペア(f_i,g_i)を学習サンプルと呼び(図2では、例として3つの学習サンプル201、202、203を図示)、学習サンプルの集合{(f_i,g_i)}(i=1,…,Nf)を学習データ(200)と呼ぶ。学習データにおける正解評価値g_iには、検査者の判断の揺らぎや誤教示、複数の正解評価値の存在等に起因するばらつきが存在する。正解評価値のばらつきは本質的に存在するものであり、完全に除去することは困難である。そこで本実施形態では、この正解評価値のばらつきをばらつき分布d(211)として与える。このばらつき分布dに従って正解評価値g_i毎に、複数の拡張正解評価値{g'_ij}(j=1,…,Ns_i, Ns_i:拡張数)を生成する。拡張数Ns_iは学習サンプル毎に変更してもよい。ただし、拡張数が多い学習サンプルは拡張数が少ない学習サンプルよりも評価エンジンの学習に影響を与える可能性があるので、学習時は拡張サンプル群S_iに対して重みw_i(i=1,…,Nf)(212)をかけることができる(例えば、拡張数の逆数を重みにする)。学習画像f_iと拡張正解評価値g'_ijとのペア(f_i,g'_ij)を拡張学習サンプルと呼び(図2では、例として学習サンプル(f_1, g_1)から生成した3つの拡張学習サンプル208、209、210を図示)、i番目の学習サンプル(f_i,g_i)から生成した拡張学習サンプルの集合を拡張学習サンプル群S_i={(f_i, g'_ij)}と呼ぶ(図2では、例として3つの拡張学習サンプル群205、206、207を図示)。g'_ijは学習サンプル(f_i,g_i)から生成したj番目の拡張正解評価値g'_iである。更に全ての拡張学習サンプル群をまとめて拡張学習データ{(F_k,G_k)}(k=1,…,NF, NF=ΣNS_i)(204)と呼ぶ。すなわち、{(F_k, G_k)}={S_1,…,S_Nf}である。ばらつき分布dは正解評価値の間違えやすさの傾向、あるいは正解評価値の確率分布と捉えることができ、この分布に従って正解評価値をばらつかせることにより、教示された正解値が多少不正確であったとしても、各学習サンプルに対する過度な最適化を抑制し、汎化性能の向上が期待できる。
【0030】
本処理の課題は、ばらつき分布dをどのように適切に与えるかである。万が一、誤ったばらつき分布を与えると偽の学習データを大量に生成してしまい、逆に評価値の推定性能が低下する恐れがある。これに対し、学習サンプルf_i毎に複数人の検査員が正解評価値g_iを付与し、検査員の違いによる実際のばらつき度合いからばらつき分布dを求めてもよい。ただし、学習サンプルf_i毎に複数人の検査員が評価を行うことは、検査コストならびに検査員の負荷が大きく増大することになる。本実施形態では正解評価値g_iの値に応じてばらつき分布dを切り替えることが特徴である。すなわち、ばらつき分布を拡張正解評価値g'_iを変数、正解評価値g_iをパラメータとする確率分布d(g'_i;g_i)として正解評価値毎に与えた。ばらつきd(g'_i;g_i)に基づきj番目に生成した拡張正解評価値g'_iがg'_ijである。ばらつき分布d(g'_i;g_i)は、後述する図4のようにヒストグラムで与えてもよいし、後述する図6のように折れ線で与えてもよい。また、パラメトリックな関数(ガウス分布、等)の組み合わせで与えてもよいし、後述する図11のように自由曲線で与えてもよい。
【0031】
2.2 データ拡張の具体例1
外観検査の例として図3に示す欠陥分類を取り上げ、本例に対するばらつき分布の具体例を図4を用いて説明する。本検査は、検査対象物に付着した異物を4つの欠陥クラスD1~D4に分類する例である。図3(a)~(d)に欠陥クラスD1~D4に属する欠陥の模式図をそれぞれ2例ずつ示す。つまり、図4(a)~(d)には、欠陥クラスD1に属する欠陥300と欠陥301、欠陥クラスD2に属する欠陥302と欠陥303、欠陥クラスD3に属する欠陥304と欠陥305、欠陥クラスD4に属する欠陥306と欠陥307をそれぞれ表示している。正解評価値D1~D4に対するばらつき分布を図4(a)~(d)に示す。本例においてばらつき分布はヒストグラムで与えている。
【0032】
図4(a)に示すばらつき分布d(g'_i;g_i)(g_i="D1")を取り上げて詳細に説明する。d(g'_i;"D1")において横軸の拡張正解評価値D1における縦軸の度数が3と最も高い(400)。これは、D1として教示された学習サンプルは、実際の正解評価値もD1である可能性が最も高いことを示す。よって、学習サンプル(f_i, g_i)から拡張学習サンプル群S_i={(f_i, g'_ij)}を生成する際には、拡張正解評価値g'_iの値がD1である拡張学習サンプルを最も多く生成する。ヒストグラムの度数の割合に正確に基づけば、拡張学習サンプル群S_iの内、3/6=50%の拡張学習サンプルの拡張正解評価値はD1となる。また、D2の度数も2と比較的高い(401)。これは図3の(a)と(b)を比較して分かる通り、欠陥クラスD1とD2は共にギザギザした形状の欠陥であるという点において類似しており、教示において混同しやすいためである。よって、拡張学習サンプル群S_iの内、2/6≒33%の拡張学習サンプルの拡張正解評価値はD2となる。一方、D3の度数は0である(402)。これは図3の(a)と(c)を比較して分かる通り、ギザギザの欠陥と丸い欠陥を混同することはあり得ないためである。よって、拡張学習サンプル群S_iに拡張正解評価値がD3の拡張学習サンプルは含まれない。また、D4の度数は1と小さいながらも値はある(403)。これは図3の(a)と(c)を比較して分かる通り、欠陥クラスD1とD4はあまり類似していないが、共に凸凹がある欠陥であるという点において、混同する可能性が若干あるためである。よって、拡張学習サンプル群S_iの内、1/6≒17%の拡張学習サンプルの拡張正解評価値はD4となる。
【0033】
図4(b)~(d)のばらつき分布も同様に説明される。ちなみに、欠陥クラスD3は他の欠陥クラスと混同される可能性が殆どないことから、図4(c)に示すばらつき分布d(g'_i;"D3")は、D3にしか度数がない(404)。つまり、正解評価値がD3である学習サンプルは拡張する必要がないことになる。
【0034】
2.3 データ拡張の具体例2
外観検査の例として図5に示す表面粗さ評価を取り上げ、本例に対するばらつき分布の具体例を図6を用いて説明する。本検査は、検査対象物表面の粗さレベルを1.0~3.0で定量化して評価する例である。評価値は粗さレベルであり、値が小さいほど良い状態である。図5(a)~(e)にそれぞれ粗さレベルが1.0、1.5、2.0、2.5、3.0である表面画像の模式図(500~504)を示す。学習サンプルにおいて粗さレベルの正解評価値g_iは0.5刻みで与えたが、粗さレベルは連続値であり、その中間の粗さレベルをもつ検査対象物も存在する。そのため、推定エンジンは回帰問題を扱うことになる。正解評価値1.0~3.0に対するばらつき分布を図6(a)~(e)に示す。本例においてばらつき分布は折れ線で与えている。
【0035】
図6(a)に示すばらつき分布d(g'_i;g_i)(g_i=1.0)を取り上げて詳細に説明する。d(g'_i;1.0)の折れ線は正解評価値g_iが1.0である学習サンプルの実際の評価値が横軸の拡張正解評価値g'_iである確率分布を示す。よって、折れ線の値を生成確率として拡張正解評価値g'_iを生成することになる。拡張正解評価値1.0における折れ線の値が最も高いが(601)、拡張正解評価値が大きくなるにつれて折れ線の値は徐々に小さくなり、拡張正解評価値2.0においては0になっている(604)。粗さレベルの変化は連続的であり、正解評価値のばらつきも連続的に発生する可能性が高いと考えられる。よって、学習サンプル(f_i, g_i)から拡張学習サンプル群S_i={(f_i, g'_ij)}を生成する際には、粗さレベルの値が1.0である拡張学習サンプルを最も多く生成し(601)、粗さレベルの値が1.5である拡張学習サンプルも多少生成するが(603)、粗さレベルの値が2.0以上の拡張学習サンプルは生成しない(604~606)。また、学習データに含まれていた粗さレベル1.0、1.5(図6(a)で黒丸で示す)に限らず、その中間の粗さレベルを拡張正解評価値にもつ拡張学習サンプルを折れ線の頻度に従って生成してもよい(図6(a)で白丸で示す)。例えば粗さレベル1.25の拡張学習サンプルを粗さレベル1.0と1.5の生成頻度の中間の頻度で生成することができる(602)。
【0036】
図6(b)~(e)のばらつき分布も同様に説明される。大きな傾向としては、いずれのばらつき分布においても、正解評価値g_iを中心としてその周辺の評価値に確率分布が存在し、正解評価値g_iから離れるに従って確率分布の値は小さくなっている。ただし、本例では粗さレベル1.5、2.0の間に不連続な確率分布の変化が存在する。図5に示す通り、粗さレベル1.5以下は正常範囲内の粗さであり、製品として出荷可能である。一方、粗さレベル2.0以上は品質が悪く出荷不可能である。図5(b)(c)にそれぞれ示す粗さレベル1.5、2.0の検査画像にも不連続な見た目の変化があり、出荷の可否の判定ライン(505)がこの間に設定されていた。そのため、この判定ラインを跨ぐ判定ミスが起きにくい傾向があった。そこで、この傾向をばらつき分布に反映した。この傾向が分かり易く確認できるのが図6(b)(c)である。図6(b)では横軸の拡張正解値g'_iの値が1.5から2.0になるにつれ、折れ線の値が急激に減少している(607→608)。同様に図6(c)では横軸の拡張正解値g'_iの値が2.0から1.5になるにつれ、折れ線の値が急激に減少している(610→609)。このように正解評価値の間違えやすさの傾向をばらつき分布に容易に反映することができる。
【0037】
2.4 データ拡張の効果
図4図6はあくまでばらつき分布の例であり、検査対象物や評価項目に応じて他にも様々なばらつき分布が考えらえるが、これらの例に見られるように、正解評価値g_iとばらつき分布には高い依存性がある場合が多いと考えられる。そのため、正解評価値g_iの値に応じて分布を切り替えることが有効と考えた。学習データのばらつきは現場の経験から得られた間違えやすさの傾向であり、いわゆる「ドメイン知識」と考えることができる。本実施形態によれば、評価エンジンの学習においてこのようなドメイン知識を有効的かつ効率的に取り込むことが可能となる。すなわち、例えば学習サンプル毎にばらつき分布を定義すると膨大な作業コストを要するし、逆に全学習サンプルで一律なばらつき分布を定義すると正確性を損ね、誤った拡張学習サンプルを大量に生成してしまう恐れがある。これに対し、本実施形態によれば検査対象物の性質を比較的容易にばらつき分布に反映することができ、このことを前述の二つの具体例を用いて示した。たとえ誤教示等が含まれていたとしても検査員によって与えられた正解評価値g_iをパラメータとしてばらつき分布dを定義することにより、正確性と作業コストの両立が可能であることを見出した。
【0038】
3. 学習シーケンス(拡張学習データの生成タイミングと配分)
学習フェーズにおいて、本実施形態による拡張学習データを用いた評価エンジンの学習シーケンスにはいくつかの実施例が挙げられる。各実施例において、拡張学習データの拡張数や拡張処理を行うタイミング等が異なる。以下、代表的な実施例について具体的に説明する。
【0039】
3.1 学習シーケンス1
まず、学習データ{(f_i, g_i)}を用いた評価エンジンの一般的な学習シーケンスについて図7を用いて説明する。評価エンジンの学習においては、学習用の検査対象物の画像(学習画像f_i)を入力として、評価エンジンから出力される推定評価値g^_iと検査員により教示された正解評価値g_iとの差分が小さくなるように評価エンジンの内部パラメータ(ネットワークの重みやバイアス等)を更新する。内部パラメータを更新するタイミングとしては、全ての学習サンプルをまとめて学習するのではなく、学習データ(704)をいくつかのミニバッチ{m_s}(s=1,…,Nm, Nm:ミニバッチ数, m_s⊂{(f_i,g_i)}と呼ばれる集合に分割し(705)、ミニバッチ毎に内部パラメータの更新を行うことが一般的である。これはミニバッチ学習と呼ばれ、全てのミニバッチが学習された時点で、全ての学習サンプルが学習に用いられたことになる。この全てのミニバッチの1回学習することを1エポックと呼び、エポックを何回も繰り返すことで、内部パラメータを最適化していく。エポックを{e_t}(t=1,…,Ne, Ne:エポック数)と表記する。図7において一回目のエポックe_1(700)内にミニバッチ分割の様子を図示している。図示は省略しているが、2回目以降のエポックe_2~e_Ne(701~703)内においても同様のミニバッチ分割が行われている。また、エポック毎にミニバッチに含まれる学習サンプルをシャッフルすることもある。
【0040】
本実施形態における拡張学習データ{(f_i, g'_ij)}を用いた評価エンジンの学習シーケンスの実施例を図8を用いて説明する。800~803はエポック、805はミニバッチである。本実施例では図7における学習データ{(f_i, g_i)}(704)を拡張学習データ{(f_i, g'_ij)}に置き換えている(804)。この際、拡張学習データを分割した生成したミニバッチを拡張ミニバッチ{m'_s}(s=1,…,Nm', Nm':拡張ミニバッチ数, m'_s⊂{(f_i,g'_ij)}と呼ぶ。一般に拡張学習データにおける拡張学習サンプル数NFは、学習データにおける学習サンプル数Nfより大きいので(NF>Nf)、図7と比較して、図8の実施例では、ミニバッチ数Nm’、あるいは1つの拡張ミニバッチに含まれるサンプル数が増加する。そのため、エポック数が同じであれば、学習時間は増加することになる。
【0041】
3.2 学習シーケンス2
本実施形態における拡張学習データ{(f_i, g'_ij)}を用いた評価エンジンの学習シーケンスの実施例を図9を用いて説明する。本実施例では検査員によって与えらえた学習データ(904)を分割して得られるs番目のミニバッチm_sに含まれるi番目の1つの学習サンプル(f_i,g_i)に対して、ばらつき分布dに基づき1つの拡張学習サンプル(f_i,g'_i)を生成して学習サンプル(f_i,g_i)と差し替えることによって、拡張ミニバッチm'_sを生成することを特徴とする。例えば、1番目のミニバッチm_1(905)に含まれる1つの学習サンプル(f_1,g_1)(909)から1つの拡張学習サンプル(f_1,g'_1)(916)を生成する(911)。これを全てのミニバッチ(905~908等)に含まれる全ての学習サンプル(909、910等)に対して行い、拡張ミニバッチ(912~915等)、学習サンプル(916、917等)を生成する。
【0042】
本特徴について補足する。一般的なデータ拡張においては、1つの学習サンプルから複数の拡張学習サンプルを生成するため、学習時間が増加してしまう。すなわち、学習サンプル数の増加により、拡張前の1つのミニバッチに含まれる学習サンプル数、ミニバッチ数のいずれか、または両方がデータ拡張前に比べて増加することになる。本実施形態では、拡張前の1つの学習サンプル(f_i,g_i)を1つの拡張学習サンプル(f_i,g'_i)に差し替えるだけなので、学習サンプル数、ミニバッチ数は共に変化しない。ばらつき分布dを確率分布と考え、この確率分布に従う乱数で拡張評価正解値g'_iを生成する。この乱数による拡張評価正解値g'_iの生成は各エポックで実行する。そのため、同じ学習サンプルであってもエポックによって拡張評価正解値g'_iの値は変化しうる。生成回数が少ないときは、拡張学習サンプルに偏りが生じうるが、何度もエポックを繰り返して学習が進むにつれ、学習済みの拡張学習サンプルにおける拡張評価正解値の分布はばらつき分布dに近づくことが期待される。これにより、エポック数が同じであれば、学習データ{(f_i, g_i)}の学習と同じ時間で、ばらつき分布の情報が反映された拡張学習データの学習を行うことができる。これは、データ拡張によりサンプル数が増えた拡張学習データをエポック全体で学習するように配分することで、結果的に学習コストを増加させることなく、正解評価値のばらつき分布を考慮できたと捉えることもできる。
【0043】
4. 学習中のばらつき分布変更
4.1 基本的な処理
本実施形態では、拡張学習データを生成しながら反復的に評価エンジンを学習する際、反復中にばらつき分布dを更新し、更新したばらつき分布を基に拡張学習データを生成することを特徴とする。その具体例として、拡張学習サンプルを学習中の評価エンジンに入力して出力される推定評価値g'^_iの信頼度R(g'^_i)を求め、信頼度R(g'^_i)をパラメータとして、ばらつき分布を反復中に更新することを特徴とする。
【0044】
本特徴について補足する。初めから精度の高いばらつき分布を与えることには限界がある。そこで、学習中にばらつき分布を変化させ、より適切な分布とすることを考える。ばらつき分布を変化させる方法として、評価エンジンの学習状態に応じて適応的に変化させることを考える。
【0045】
学習中にばらつき分布を変化させる具体的な実施例の一つを図10を用いて説明する。図10は、図9で説明した学習シーケンスに対して、学習中にばらつき分布を変化させる仕組みを組み込んだものである。ただし、学習中にばらつき分布を変化させる仕組みを組み込むことができるのは図9で説明した学習シーケンスに限定されない。例えば、図8で説明した学習シーケンスや、その他の学習シーケンスに対しても学習中のばらつき分布の変更は適用可能である。図9におけるt番目のエポックe_tに対応するエポックを1000に示すが、他のエポックに関しても同様である。まず、学習データ(1001)を分割して得られるミニバッチ{m_s}(1002、1003)を生成し、ミニバッチに含まれる各学習サンプル(f_i,g_i)(1004~1006)に対して、ばらつき分布d(1017)に基づいて拡張学習サンプル(f_i,g'_i)(1010~1012)を生成し(1007)、学習サンプル(f_i,g_i)と差し替えることによって、拡張ミニバッチ{m'_s}(1008、1009)を生成する。そして拡張ミニバッチ{m'_s}を学習して評価エンジン(1013)の内部パラメータを更新する。ここまでの処理は、図9と同じである。次に、各学習画像f_iを学習中の評価エンジン(1013)に入力して推定評価値g'^_iを出力し、g'^_iの信頼度R(g'^_i) (1014~1016)を算出する。信頼度の算出方法の例としては、正解評価値g_iと推定評価値g'^_iの差分や、ばらつき分布d(g'_i;g_i)を確率分布と捉えて推定評価値g'^_iを代入した値d(g'^_i;g_i)(推定値がg'^_iになることがどの程度起こりうるかの指標)、分類問題であれば各分類クラスへの帰属度のばらつきに基づく方法が挙げられる。各分類クラスへの帰属度について、正解分類クラスへの帰属度が突出していれば信頼度は高いが、他の分類クラスへの帰属度もあれば、程度に応じて信頼度は低くなる。このような信頼度に応じてばらつき分布(1017)を学習中に変化させる。変化させるタイミングは、ミニバッチの学習毎でも、エポック毎でも構わない。次のミニバッチあるいはエポックでは変更したばらつき分布(1017)に基づいて、また拡張学習サンプル(f_i,g'_i)(1010~1012)を生成し(1007)、これを用いて評価エンジン(1013)を学習する。
【0046】
ばらつき分布と評価エンジンの更新を繰り返すことによって、学習前には想定できなかった適切なばらつき分布を推定し、このばらつき分布に基づくデータ拡張によって、より高性能な評価エンジンを得ることが可能になる。
【0047】
4.2 処理バリエーション
4.1で述べたばらつき分布変更の基本的な処理に対する処理バリエーションを説明する。4.1では拡張学習サンプルの推定評価値g'^_iの信頼度R(g'^_i)に基づいてばらつき分布を変化させた。信頼度が高ければ、その拡張学習サンプルを生成したばらつき分布が妥当であった可能性が高く、逆に信頼度が低い場合は、ばらつき分布を変化させる必要がある。ばらつき分布の変更は(A)正解評価値g_i毎に行ってもよいし、(B)学習サンプル(f_i,g_i)毎に行ってもよい。また、ばらつき分布を変更する手掛かりとして、信頼度R(g'^_i)以外に、(C)検証データの評価結果を用いてもよいし、(D)発見的方法を用いてもよい。
【0048】
まず、ばらつき分布を変更するパラメータのバリエーションについて詳細を述べる。前述の(A)においては、ばらつき分布は正解評価値g_iの値に応じて切り替えることになり、ばらつき分布はg_iをパラメータとしてd(g'_i;g_i)で与えられる。すなわち、正解評価値の値がg_iである拡張学習サンプルに対する推定評価値g'^_iの信頼度に基づいてばらつき分布を変化させる。
【0049】
前述の(B)においては、ばらつき分布は学習サンプル(f_i,g_i)毎に切り替えることになり、ばらつき分布は(f_i,g_i)をパラメータとしてd(g'_i;(f_i,g_i))で与えられる。信頼度は拡張学習サンプル(f_i,g'_ij)毎に算出可能であるため、その拡張学習サンプルの元になった学習サンプル(f_i,g_i)毎にばらつき分布の妥当性を評価することが可能である。そのため、学習サンプル(f_i,g_i)毎にばらつき分布を変更することが可能となる。手動で学習サンプル毎にばらつき分布を与えることは膨大な作業コストを要するし、また、適切なばらつき分布を与えることも困難である。学習サンプルの信頼度に基づいて、評価エンジンの性能が向上するようにばらつき分布を更新することにより、人手を介さず評価エンジンの内部パラメータの最適化と並行して学習サンプル毎にばらつき分布を最適化することが可能となる。
【0050】
次に、ばらつき分布を変更する手掛かりのバリエーションについて詳細を述べる。前述の(C)においては、検証データの評価結果に基づいてばらつき分布を変更する。評価エンジンの学習においては、未学習データに対して汎化性能の高い内部パラメータを得るため、学習に用いる訓練データ(本開示では学習データと呼んでいる)とは別に検証データと呼ばれるデータを用意することが一般的である。学習において内部パラメータは学習データに対する推定結果が改善するように逐次更新されるが、最終的にどの内部パラメータを採用するかは、学習に用いていない検証データ(未学習データ)の推定結果が良好となる内部パラメータを採用することがある。本実施形態においては、学習データではなく、検証データの推定評価値の信頼度に基づいてばらつき分布を選択してもよい。
【0051】
前述の(D)においては、ばらつき分布の最適化に発見的方法を用いてもよい。すなわち、学習前に与えたばらつき分布を初期値として、学習中にばらつき分布を微小変化させ、結果的に評価エンジンの性能(推定評価値の正解率や、信頼度)が向上したばらつき分布に更新していく。このような方法によって解析的なアプローチを用いることなく、発見的に適切なばらつき分布を獲得することができる。
【0052】
5. GUI
本実施形態において、ばらつき分布の指定や確認を検査員等のユーザが行うためのGraphical User Interface(GUI)の例を図11に示す(1100)。本GUIでは正解評価値毎にばらつき分布を表示することができる(1101内の1102~1104)。表示するばらつき分布はラジオボタン等により、最初にユーザが指定した分布や学習中に更新された分布を切り替えて表示することができる(1105)。後者ではエポックのIDを指定することにより(1106)、任意のエポックにおける更新中のばらつき分布を表示することができる。ばらつき分布は、ヒストグラム(例えば図4)、折れ線(例えば図6)、パラメトリックな関数の組み合わせ、自由曲線(例えば図11の1102や1103)等で与えることができ、与え方はラジオボタン等で選択することができる(1107)。
【0053】
ばらつき分布を与える判断材料あるいは処理結果の妥当性を判断する材料として、学習サンプル(f_i,g_i)の情報を表示することができる(1108)。いくつかの学習サンプルを並べて表示し、比較することができる(1109、1121、1133)。一つの学習サンプルの情報「表示1」(1109)を取り上げ表示内容の詳細を説明する。表示する学習サンプルは学習画像のIDで指定することができ(1110)、正解評価値g_iでフィルタリングすることもできる(1111)。検査画像f_i、学習サンプル(f_i,g_i)に対する推定評価値g^_i、信頼度R(g^_i)を表示することができる(1112、1113、1114)。本例の検査画像(1112)は超音波検査装置で撮像した半導体デバイス内部の欠陥画像である。また、学習サンプル(f_i,g_i)から生成した拡張学習サンプル{(f_i,g'_ij)}の情報も表示することができる(1115)。複数の拡張サンプルの情報を並べて表示することもできる(1116、1117)。表示内容には、拡張正解評価値g'_ij、拡張学習サンプル(f_i,g'_ij)に対する推定評価値g'^_ij、信頼度R(g'^_ij)を含む(1118、1119、1120)。他の学習サンプルの情報「表示2」(1121)も「表示1」と同様である。すなわち、1122~1132は1110~1120に相当する。また、本例では表示1109、1121に学習サンプルの情報を表示したが、同様に検査サンプルの情報(検査画像f''_iや推定評価値g''^_i等)を表示することも可能である。
【0054】
本実施例により、機械学習を活用した外観検査の自動化において、判断の揺らぎや誤教示、複数の正解評価値の存在等に起因する正解評価値のばらつきに対しても評価エンジンの過学習を抑制することができる。現実問題として学習サンプルの質の向上を検査員の努力だけで実現することは難しい。また、正解評価値のばらつきに対して、検査画像の水増しだけでは十分な解決が図れない。そのため本実施形態では、たとえ学習サンプルの質が低下しても機械学習による評価値の推定性能を維持する仕組みを提供した。これにより、検査対象物の検査画像から評価値を高精度に推定し、検査対象物のできばえを自動で評価することが可能となる。
【0055】
なお、本実施例では入力情報として二次元の画像データを扱ったが、超音波の受信波等の一次元信号や、レーザレンジファインダ等で取得した三次元のボリュームデータを入力情報とした場合も本実施形態の手法を適用することが可能である。また、入力画像が複数枚、推定評価値が複数種類の場合も本実施形態の手法を適用することが可能である(評価エンジンが多入力で多出力)。
【0056】
6.自動外観検査システムのハードウェア構成
以上の実施形態にて説明した外観検査方法を実現する自動外観検査システムを図12に示す。自動外観検査システムは、前述の撮像装置と、計算機により構成される。撮像装置の例はすでに説明した通りである。
【0057】
計算機は、本実施形態で説明した外観検査方法を処理する構成物であり、以下を有する。
*プロセッサ:プロセッサの例としてはCPU、GPU、FPGAが考えられるが、外観検査方法を処理できるのであれば、ほかの構成物であってもよい。
*記憶資源:記憶資源の例としてはRAM、ROM、HDD、不揮発メモリ(フラッシュメモリ等)が考えられる。なお、記憶資源には揮発メモリ(前述のRAMはその一例)を含んでもよい。当該記憶資源は、以上の実施形態にて説明した外観検査方法をプロセッサに実行させるプログラム(外観検査プログラムと呼ぶ)を格納してもよい。また、当該記憶資源は、外観検査プログラムが参照または生成するデータを格納してもよい。その記憶資源に格納するデータの一例は以下である:
**学習画像、正解評価値、学習データ
**拡張学習サンプル、拡張学習データ、
**評価エンジンの内部パラメータ、
**検査画像、
**推定評価値。
*GUI装置:GUI装置の例としては、ディスプレイやプロジェクタ等が考えられるが、GUIを表示ができるのであれば、ほかの装置でもよい。
*入力装置:入力装置の例としては、キーボード、マウス、タッチパネルが考えられるが、ユーザからの操作を受け付けられる構成物であれば他の装置でもよい。また、入力装置とGUI装置とは一体の装置であってもよい。
*通信インターフェース装置: 通信インターフェースの例としては、USB、Ethernet、Wi-Fiといった例が考えられる、撮像装置から画像を直接受信できたり、又はユーザが当該画像を計算機に送信できるインターフェースであれば、ほかのインターフェース装置であってもよい。また、当該通信インターフェースに、当該画像を格納した可搬不揮発記憶媒体(たとえばフラッシュメモリ、DVD、CD-ROM、ブルーレイディスク等の)を接続し、計算機に当該画像を格納してもよい。
以上が計算機のハードウェア構成である。なお、自動外観検査システムを構成する計算機は複数であってもよく、撮像装置が複数であってもよい。
【0058】
なお、前述の外観検査プログラムは、以下の経路で計算機に格納されてもよい:
*外観検査プログラムを可搬不揮発記憶媒体に格納し、当該媒体を通信インターフェースに接続することで、当該プログラムを計算機に配布する。
*プログラム配信サーバにより外観検査プログラムを計算機に配信する。なお、プログラム配信サーバーは、外観検査プログラムを格納した記憶資源と、外観検査プログラムを配信する配信処理を行うプロセッサと、計算機の通信インターフェース装置と通信可能である通信インターフェース装置、とを有する。
以上で実施形態の説明を終える。前述の通り、これまで説明した実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
本出願は、2021年3月22日に出願された日本出願特願2021-47889を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
【符号の説明】
【0059】
100…学習フェーズ 101…検査フェーズ 201、202、203…学習サンプル 205、206、207…拡張学習サンプル群 208、209、210…拡張学習サンプル


図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12