(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】学習装置、検出装置、学習方法、及び学習プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231219BHJP
G06T 1/40 20060101ALI20231219BHJP
G06N 20/00 20190101ALI20231219BHJP
【FI】
G06T7/00 350C
G06T7/00 610Z
G06T1/40
G06N20/00
(21)【出願番号】P 2019214618
(22)【出願日】2019-11-27
【審査請求日】2022-09-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】枦山 博幸
(72)【発明者】
【氏名】池田 泰之
(72)【発明者】
【氏名】松田 健利
(72)【発明者】
【氏名】藤枝 紫朗
(72)【発明者】
【氏名】栗田 真嗣
【審査官】笠田 和宏
(56)【参考文献】
【文献】特開2017-219529(JP,A)
【文献】特開2017-224184(JP,A)
【文献】特開2018-205163(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 1/40
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
所定の特徴の写る1つ以上の第1学習画像を取得する第1取得部と、
前記1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施する学習部であって、
生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像それぞれが与えられると、与えられた前記1つ以上の第1学習画像それぞれに適合する復元画像を生成するように前記生成モデルを訓練する、
学習部と、
前記所定の特徴の写る複数の追加用画像を取得する第2取得部と、
前記複数の追加用画像それぞれを前記生成モデルに与えることで、前記複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成する生成部と、
前記各追加用画像及び前記各復元追加用画像の間の差分に応じて、前記各追加用画像の評価値であって、前記各復元追加用画像における前記各追加用画像の復元の程度に対する評価値を算出する評価部と、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を前記複数の追加用画像から抽出する抽出部と、
機械学習により、抽出された前記1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた前記1つ以上の第2学習画像それぞれに適合する復元画像を生成するように前記生成モデルを更に訓練する追加学習部と、
前記所定の特徴及び前記所定の特徴以外の他の特徴の写る複数の評価画像を取得する第3取得部とを備え、
前記複数の追加用画像には前記他の特徴が写っておらず、
前記生成部は、取得された前記複数の評価画像それぞれを訓練された前記生成モデルに与えることで、前記複数の評価画像それぞれを復元した複数の復元評価画像それぞれを更に生成し、
前記評価部は、更に、
前記各追加用画像と生成された前記各復元追加用画像との差分の程度に基づいて、前記他の特徴が前記各追加用画像に写っているか否かを判定し、及び
前記各評価画像と生成された前記各復元評価画像との差分の程度に基づいて、前記他の特徴が前記各評価画像に写っているか否かを判定し、
前記評価部は、前記複数の追加用画像のうち、前記他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は、前記複数の評価画像のうち、前記他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像について、前記評価値を算出し、
前記抽出部は、算出された前記評価値に基づいて、前記他の特徴が写っていると判定された前記1又は複数の追加用画像のうち、復元の程度が低いと評価される画像を前記1つ以上の追加用画像として抽出する、
学習装置。
【請求項2】
前記差分に応じて前記評価値を算出することは、
前記複数の追加用画像それぞれと前記複数の復元追加用画像それぞれとの間の差分を示す複数の差分画像それぞれを生成し、
前記各差分画像において、各画素の画素値が大きいほど前記評価値が高くなり、かつ、基準画素値以上の画素の前記評価値に与える寄与度が前記基準画素値未満の画素の前記評価値に与える寄与度よりも大きくなるように、前記評価値を算出すること、
により構成される、
請求項1に記載の学習装置。
【請求項3】
抽出された前記1つ以上の追加用画像それぞれを表示装置に表示させる表示制御部を更に備える、
請求項1又は2に記載の学習装置。
【請求項4】
前記表示装置に表示された前記1つ以上の追加用画像それぞれについて、当該1つ以上の追加用画像それぞれを機械学習に使用するか否かの選択を受け付ける選択受付部を更に備え、
追加学習部は、前記機械学習に使用すると選択された追加用画像を前記1つ以上の第2学習画像として決定する、
請求項3に記載の学習装置。
【請求項5】
前記他の特徴が前記各追加用画像に写っているか否か、及び前記他の特徴が前記各評価画像に写っているか否かを判定するための複数のパラメータ候補が与えられ、
前記評価部は、
前記複数のパラメータ候補それぞれを利用して、前記他の特徴が前記各追加用画像に写っているか否かの判定、及び前記他の特徴が前記各評価画像に写っているか否かの判定を実行し、
前記各判定の結果に基づいて、前記他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行し、及び
最適化されたパラメータを利用した前記各判定の結果において、前記他の特徴が写っていると判定された追加用画像の数又は割合が前記第1の閾値以上である、又は前記他の特徴が写っていないと判定された評価画像の数又は割合が前記第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像について、前記評価値を算出する、
請求項
1から4のいずれか1項に記載の学習装置。
【請求項6】
複数の第1評価画像と複数の第2評価画像とを取得する第3取得部を更に備え、
前記複数の第1評価画像には、前記所定の特徴及び前記所定の特徴以外の他の特徴が写り、
前記複数の第2評価画像には、前記所定の特徴が写り、前記他の特徴が写っておらず、
前記評価部は、
前記他の特徴が画像に写っているか否かを判定するための複数のパラメータ候補が与えられ、
前記複数のパラメータ候補それぞれを利用して、前記他の特徴が前記各第1評価画像に写っているか否かの判定、及び前記他の特徴が前記各第2評価画像に写っているか否かの判定を実行し、
前記各判定の結果に基づいて、前記他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行し、
前記選択受付部は、前記表示装置に表示された前記1つ以上の追加用画像それぞれについて、前記他の特徴が写っているか否かの選択を更に受け付け、
前記第3取得部は、
前記他の特徴が写っていると選択された各追加用画像を前記複数の第1評価画像の1つとして取得し、
前記他の特徴が写っていないと選択された各追加用画像を前記複数の第2評価画像の1つとして取得する、
請求項4に記載の学習装置。
【請求項7】
前記第2取得部は、検出装置と通信し、
前記検出装置は、
前記所定の特徴を観測することで得られた観測画像を取得し、
前記生成モデルに前記観測画像を入力することで、前記観測画像に対応する復元観測画像を生成し、
生成された前記復元観測画像及び前記観測画像の間の差分に基づいて、前記所定の特徴以外の他の特徴が前記観測画像に写っているか否かを検出し、
前記第2取得部は、前記検出装置によって取得された前記観測画像を前記複数の追加用画像の1つとして取得する、
請求項4又は
6に記載の学習装置。
【請求項8】
前記複数の追加用画像のうち、前記抽出部によって抽出された前記1つ以上の追加用画像を記憶部に保存する保存処理部を更に備える、
請求項1から
7のいずれか1項に記載の学習装置。
【請求項9】
前記各第1学習画像及び前記各追加用画像はそれぞれ、複数のパッチ画像に分割され、
前記生成モデルは、前記パッチ画像毎に与えられ、
前記学習部は、前記パッチ画像毎に、機械学習により、前記1つ以上の第1学習画像それぞれが与えられると、与えられた前記1つ以上の第1学習画像それぞれに適合する復元画像を生成するように前記生成モデルを訓練し、
前記生成部は、前記パッチ画像毎に、前記各追加用画像に対応する前記各復元追加用画像を生成し、
前記評価部は、前記パッチ画像毎に、前記各追加用画像の前記評価値を算出し、
前記抽出部は、前記パッチ画像毎に、算出された前記評価値に基づいて、前記1つ以上の追加用画像を前記複数の追加用画像から抽出し、
前記追加学習部は、前記パッチ画像毎に、機械学習により、前記1つ以上の第2学習画像それぞれが与えられると、与えられた前記1つ以上の第2学習画像それぞれに適合する復元画像を生成するように前記生成モデルを更に訓練する、
請求項1から
5のいずれか1項に記載の学習装置。
【請求項10】
前記生成モデルは、ニューラルネットワークにより構成される、
請求項1から
9のいずれか1項に記載の学習装置。
【請求項11】
前記機械学習は、主成分分析を含み、
前記生成モデルは、前記主成分分析により導出された固有ベクトルにより構成される、請求項1から
9のいずれか1項に記載の学習装置。
【請求項12】
前記所定の特徴は、製造ラインで搬送される製品であって、欠陥を含まない製品である、
請求項1から
11のいずれか1項に記載の学習装置。
【請求項13】
前記所定の特徴を観測することで得られた観測画像を取得する取得部と、
請求項1から
12のいずれか1項に記載の学習装置により訓練された前記生成モデルに前記観測画像を入力することで、前記観測画像に対応する復元観測画像を生成する生成部と、
生成された前記復元観測画像及び前記観測画像の間の差分に基づいて、前記所定の特徴以外の他の特徴が前記観測画像に写っているか否かを検出する検出部と、
を備える、
検出装置。
【請求項14】
所定の特徴の写る1つ以上の第1学習画像を使用した機械学習により訓練された生成モデルを取得するモデル取得部であって、
生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記生成モデルは、前記1つ以上の第1学習画像それぞれが与えられると、与えられた前記1つ以上の第1学習画像それぞれに適合する復元画像を生成するように訓練されている、
モデル取得部と、
前記所定の特徴の写る複数の追加用画像を取得する
第1画像取得部と、
前記複数の追加用画像それぞれを前記生成モデルに与えることで、前記複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成する生成部と、
前記各追加用画像及び前記各復元追加用画像の間の差分に応じて、前記各追加用画像の評価値であって、前記各復元追加用画像における前記各追加用画像の復元の程度に対する評価値を算出する評価部と、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を前記複数の追加用画像から抽出する抽出部と、
機械学習により、抽出された前記1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた前記1つ以上の第2学習画像それぞれに適合する復元画像を生成するように前記生成モデルを更に訓練する追加学習部と、
前記所定の特徴及び前記所定の特徴以外の他の特徴の写る複数の評価画像を取得する第2画像取得部とを備え、
前記複数の追加用画像には前記他の特徴が写っておらず、
前記生成部は、取得された前記複数の評価画像それぞれを訓練された前記生成モデルに与えることで、前記複数の評価画像それぞれを復元した複数の復元評価画像それぞれを更に生成し、
前記評価部は、更に、
前記各追加用画像と生成された前記各復元追加用画像との差分の程度に基づいて、前記他の特徴が前記各追加用画像に写っているか否かを判定し、及び
前記各評価画像と生成された前記各復元評価画像との差分の程度に基づいて、前記他の特徴が前記各評価画像に写っているか否かを判定し、
前記評価部は、前記複数の追加用画像のうち、前記他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は、前記複数の評価画像のうち、前記他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像について、前記評価値を算出し、
前記抽出部は、算出された前記評価値に基づいて、前記他の特徴が写っていると判定された前記1又は複数の追加用画像のうち、復元の程度が低いと評価される画像を前記1つ以上の追加用画像として抽出する、
学習装置。
【請求項15】
コンピュータが、
所定の特徴の写る1つ以上の第1学習画像を取得するステップと、
前記1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施するステップであって、
生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像それぞれが与えられると、与えられた前記1つ以上の第1学習画像それぞれに適合する復元画像を生成するように前記生成モデルを訓練する、
ステップと、
前記所定の特徴の写る複数の追加用画像を取得するステップと、
前記複数の追加用画像それぞれを前記生成モデルに与えることで、前記複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成するステップと、
前記各追加用画像及び前記各復元追加用画像の間の差分に応じて、前記各追加用画像の評価値であって、前記各復元追加用画像における前記各追加用画像の復元の程度に対する評価値を算出するステップと、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を前記複数の追加用画像から抽出するステップと、
機械学習により、抽出された前記1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた前記1つ以上の第2学習画像それぞれに適合する復元画像を生成するように前記生成モデルを更に訓練するステップと、
前記所定の特徴及び前記所定の特徴以外の他の特徴の写る複数の評価画像を取得するステップと、
を実行
し、
前記複数の追加用画像には前記他の特徴が写っておらず、
前記生成するステップは、取得された前記複数の評価画像それぞれを訓練された前記生成モデルに与えることで、前記複数の評価画像それぞれを復元した複数の復元評価画像それぞれを更に生成するステップを含み、
前記算出するステップは、
前記各追加用画像と生成された前記各復元追加用画像との差分の程度に基づいて、前記他の特徴が前記各追加用画像に写っているか否かを判定するステップと、
前記各評価画像と生成された前記各復元評価画像との差分の程度に基づいて、前記他の特徴が前記各評価画像に写っているか否かを判定するステップと、
前記複数の追加用画像のうち、前記他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は、前記複数の評価画像のうち、前記他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像について、前記評価値を算出するステップとを含み、
前記抽出するステップは、算出された前記評価値に基づいて、前記他の特徴が写っていると判定された前記1又は複数の追加用画像のうち、復元の程度が低いと評価される画像を前記1つ以上の追加用画像として抽出するステップを含む、
学習方法。
【請求項16】
コンピュータに、
所定の特徴の写る1つ以上の第1学習画像を取得するステップと、
前記1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施するステップであって、
生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像それぞれが与えられると、与えられた前記1つ以上の第1学習画像それぞれに適合する復元画像を生成するように前記生成モデルを訓練する、
ステップと、
前記所定の特徴の写る複数の追加用画像を取得するステップと、
前記複数の追加用画像それぞれを前記生成モデルに与えることで、前記複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成するステップと、
前記各追加用画像及び前記各復元追加用画像の間の差分に応じて、前記各追加用画像の評価値であって、前記各復元追加用画像における前記各追加用画像の復元の程度に対する評価値を算出するステップと、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を前記複数の追加用画像から抽出するステップと、
機械学習により、抽出された前記1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた前記1つ以上の第2学習画像それぞれに適合する復元画像を生成するように前記生成モデルを更に訓練するステップと、
前記所定の特徴及び前記所定の特徴以外の他の特徴の写る複数の評価画像を取得するステップと、
を実行させるための
学習プログラムであって、
前記複数の追加用画像には前記他の特徴が写っておらず、
前記生成するステップは、取得された前記複数の評価画像それぞれを訓練された前記生成モデルに与えることで、前記複数の評価画像それぞれを復元した複数の復元評価画像それぞれを更に生成するステップを含み、
前記算出するステップは、
前記各追加用画像と生成された前記各復元追加用画像との差分の程度に基づいて、前記他の特徴が前記各追加用画像に写っているか否かを判定するステップと、
前記各評価画像と生成された前記各復元評価画像との差分の程度に基づいて、前記他の特徴が前記各評価画像に写っているか否かを判定するステップと、
前記複数の追加用画像のうち、前記他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は、前記複数の評価画像のうち、前記他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像について、前記評価値を算出するステップとを含み、
前記抽出するステップは、算出された前記評価値に基づいて、前記他の特徴が写っていると判定された前記1又は複数の追加用画像のうち、復元の程度が低いと評価される画像を前記1つ以上の追加用画像として抽出するステップを含む、
学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習装置、検出装置、学習方法、及び学習プログラムに関する。
【背景技術】
【0002】
近年、製造ライン等の製品を製造する場面では、製造される製品を撮影装置により撮影し、得られた観測画像に基づいて製品の良否を自動的に検査する技術の開発が進んでいる。良品および不良品の両方のサンプルが複数存在する場合、良品の写る画像(以下、良品画像と記載する。)および不良品の写る画像(以下、不良品画像と記載する。)を用いた機械学習を行なうことにより得られた識別器によって、製品の良否を判定できる。しかしながら、通常、良品に比べ不良品を多く集めることが困難である。そのため、複数の良品画像を用いた機械学習により得られた生成モデルによって良否を判定する技術が開発されている(非特許文献1~3)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Bergmann、他4名、“Improving Unsupervised Defect Segmentation by Applying Structural Similarity To Autoencoders”、arXiv:1807.02011v3、2019年2月1日
【文献】Schlegl、他4名、“Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery”、arXiv:1703.05921v1、2017年3月17日
【文献】豊田健太、堀田一弘、「部分空間法とロバスト統計を用いた不良箇所の自動特定」、SSII2016、IS3-22、2016年6月10日
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1~3の検出方法では、与えられた画像を特徴量に変換し、変換により得られた特徴量から与えられた画像を復元した画像を生成する生成モデルが利用される。この生成モデルには、ニューラルネットワーク、主成分分析により導出される固有ベクトル等の機械学習モデルを用いることができる。生成モデルは、機械学習により、学習画像が与えられると、与えられた学習画像に適合する復元画像を生成するように訓練される。この訓練の結果として、生成モデルは、学習画像に写る特徴については再現性が高く、学習画像に写る可能性の低い(例えば、可能性のない)他の特徴については再現性の低い復元画像を生成する能力を獲得する。
【0005】
そのため、欠陥のない製品の写る良品画像を学習画像として使用して、上記のとおりに生成モデルを訓練することで、生成モデルは、欠陥の有無を問わず、製品の写る画像が与えられると、与えられた画像に写る製品の欠陥のない状態を再現した(又は、欠陥については再現性の低い)復元画像を生成する能力を獲得することができる。この能力を獲得した結果、観測画像に写る製品に欠陥が含まれている場合に、訓練された生成モデルにより生成された復元画像と観測画像との間において、その欠陥の存在する領域に差異が生じる。よって、訓練された生成モデルにより生成された復元画像と観測画像との間の差分に基づいて、欠陥の有無を検出することができる。
【0006】
本件発明者らは、このような従来の検出方法では、次のような問題点があることを見出した。すなわち、生成モデルの機械学習に使用する学習画像の数が少ないと、生成モデルの獲得する、与えられた画像に写る製品を再現した(又は、欠陥については再現性の低い)復元画像を生成する能力が不十分になってしまう可能性がある。当該能力の不十分な生成モデルに欠陥のない製品の写る観測画像が与えられると、当該生成モデルにより生成された復元画像において、当該観測画像に写る製品の状態が正しく再現されない領域が生じ得る。そのため、観測画像と復元画像との間において、この製品の状態が正しく再現されていない領域に差異が生じてしまい、観測画像に写る製品に欠陥が存在しないにも関わらず、当該製品に欠陥が存在すると誤検出してしまう可能性がある。また、欠陥のある製品の写る観測画像が与えられた場合でも、観測画像と復元画像との間において、その欠陥の写る領域(真の不良箇所)以外の領域に差異が生じてしまい、不良箇所を誤検出してしまう可能性がある。
【0007】
一方で、生成モデルの機械学習に使用する学習画像の数が過剰であると、当該機械学習の処理時間及び機械学習に使用されるマシン資源(例えば、CPU、メモリ)が膨大になってしまう。そのため、機械学習の処理コストが増大してしまうという問題点が生じる。加えて、生成モデルの獲得する、与えられた画像に写る製品の状態を再現する能力が過剰になってしまう、すなわち、生成モデルにより生成される復元画像において、欠陥(不良箇所)の再現性が高くなってしまう。例えば、ランダムなパターンの写る大量の学習画像を生成モデルの機械学習に使用した場面を想定する。この場合、生成モデルは、ランダムなパターンの復元を学習することで、どのようなパターンが与えられても、そのパターンを忠実に再現する能力を獲得してしまう。このように与えられた画像に写る製品の状態を再現する能力が過剰になってしまうと、観測画像に写る製品に欠陥が存在する場合に、生成モデルにより生成される復元画像にその欠陥の不良箇所が高精度に再現されてしまう。その結果、観測画像と復元画像との間に差異が生じなくなってしまい(すなわち、不良箇所が打ち消しあってしまい)、当該不良箇所を検出するのが困難になってしまうという問題点が生じる。
【0008】
したがって、観測画像と復元画像との差分に基づいて不良箇所を検出する精度を高めるためには、与えられた画像に写る製品を再現した(又は、欠陥については再現性の低い)復元画像を生成する能力を生成モデルが獲得するように、学習に用いる画像を適切に選択することが望まれる。しかしながら、従来の方法では、この学習に用いる画像は、人手による試行錯誤の結果に基づいて決定されている。そのため、欠陥の検出に利用する生成モデルの機械学習に使用する学習画像の選択にコストがかかるという問題点がある。なお、この問題点は、製品の欠陥を検出する場面にだけではなく、対象の画像から何らかの特徴を検出するあらゆる場面で生じ得る。例えば、所定の対象物が観測画像に写っているか否かを検出する場面において、上記生成モデルを利用する場合に、人手による試行錯誤では、所定の対象物を適切に検出可能なように、生成モデルの機械学習に使用する画像の選択にコストがかかるという問題点が生じ得る。
【0009】
本開示は、このような実情を鑑みてなされたものであり、その目的は、学習に用いる画像を適切に選択することで生成モデルの性能を高める技術を提供することである。
【課題を解決するための手段】
【0010】
本開示の一例によれば、学習装置は、第1取得部と、学習部と、第2取得部と、生成部と、評価部と、抽出部と、追加学習部とを備える。第1取得部は、所定の特徴の写る1つ以上の第1学習画像を取得する。学習部は、1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施する。生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、特徴量から与えられた画像を復元した画像を生成するように構成される。学習部は、機械学習により、1つ以上の第1学習画像それぞれが与えられると、与えられた1つ以上の第1学習画像それぞれに適合する復元画像を生成するように生成モデルを訓練する。第2取得部は、所定の特徴の写る複数の追加用画像を取得する。生成部は、複数の追加用画像それぞれを生成モデルに与えることで、複数の画像それぞれを復元した複数の復元画像それぞれを生成する。評価部は、各追加用画像及び生成された各復元追加用画像の間の差分に応じて、各追加用画像の評価値であって、各復元追加用画像における各追加用画像の復元の程度に対する評価値を算出する。抽出部は、算出された評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を複数の追加用画像から抽出する。追加学習部は、機械学習により、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練する。
【0011】
まず、学習装置は、所定の特徴の写る1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施する。第1学習画像の件数は、例えば、1件~数件等のように、機械学習の処理コストが膨大にならない(すなわち、過剰ではない)程度に適宜選択されてよい。これにより、生成モデルは、第1学習画像を特徴量に変換し、変換により得られた特徴量から第1学習画像に適合する復元画像を生成するように訓練される。つまり、所定の特徴の写る入力画像が与えられたときに、学習画像に写る可能性の低い又は写っていない所定の特徴以外の他の特徴が入力画像に写っているか否かに関わらず、与えられた入力画像に対して所定の特徴の写る復元画像を生成する能力を獲得した学習済みの学習モデルが暫定的に構築される。
【0012】
次に、学習装置は、それぞれ所定の特徴の写る複数の追加用画像を取得する。取得された各追加用画像は、生成モデルの更なる機械学習(追加学習)に使用される学習画像の候補である。学習済みの生成モデルの有する、所定の特徴の写る画像を再現する能力が十分であれば、追加用画像が与えられたときに、学習済みの生成モデルは、与えられた追加用画像に適合する復元画像を生成するはずである。一方で、所定の特徴の写る画像を再現する能力が不十分であれば、学習済みの生成モデルは、与えられた追加用画像に不適合な(すなわち、不一致な)復元画像を生成するはずである。
【0013】
そこで、学習装置は、取得された各追加用画像を生成モデルに与えることで、各追加用画像を復元した各復元追加用画像を生成する。そして、学習装置は、各追加用画像と各復元追加用画像との間の差分に応じて、各復元追加用画像における各追加用画像の復元の程度に対する評価値を各追加用画像について算出する。
【0014】
追加用画像と復元追加用画像との差分が大きいほど、復元追加用画像における追加用画像の復元の程度が低い、すなわち、このような追加用画像に対する生成モデルの機械学習が不十分であることを示す。そのため、復元追加用画像との差分が大きい、換言すると、復元の程度の低い追加用画像は、所定の特徴の写る画像を再現する生成モデルの能力の適切な向上に貢献する可能性が高い。
【0015】
一方で、追加用画像と復元追加用画像との差分が小さいほど、復元追加用画像における追加用画像の復元の程度が高い、すなわち、当該追加用画像に対する生成モデルの機械学習は十分であることを示す。そのため、復元追加用画像との差分が小さい、換言すると、復元の程度の高い追加用画像は、生成モデルの能力の適切な向上に貢献する可能性が低い。つまり、このような復元の程度の高い追加用画像では、所定の特徴の写る画像を復元する能力の向上に寄与する程度が低い。そのため、復元の程度の高い追加用画像に含まれる1つ以上の第2学習画像を機械学習に使用する学習画像に追加することで、生成モデルの能力の向上を図ると、第2学習画像の過剰な追加により、機械学習に使用する学習画像の件数の膨大化を招き、当該機械学習の処理コストを増大させてしまう可能性がある。更には、所定の特徴以外の部分についてのパターンを復元させる能力を向上させてしまうことで、あらゆるパターンを忠実に再現する能力を生成モデルに獲得させてしまう可能性がある。この場合には、学習済みの生成モデルにより、所定の特徴以外の他の特徴を検出することができなくなってしまう。
【0016】
これらの点を考慮して、学習装置は、算出された評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を複数の追加用画像から抽出する。復元の程度が低いと評価する方法は、実施の形態に応じて適宜選択されてよい。例えば、学習装置は、最も評価の低い追加用画像を抽出してもよい。また、例えば、学習装置は、評価の低い方から順に所定数の追加用画像を抽出してもよい。抽出する追加用画像の数は、適宜決定されてよい。また、例えば、当該構成に係る学習装置は、閾値より評価の低い追加用画像を抽出してもよい。判定の基準となる閾値は適宜決定されてよい。そして、学習装置は、機械学習により、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練する。学習済みの生成モデルは、学習画像に写る可能性の低い又は写っていない他の特徴が入力画像に写っているか否かに関わらず、与えられた入力画像に対して所定の特徴の写る復元画像を生成する能力を習得する。そのため、学習済みの生成モデルは、当該他の特徴の検出に利用することができる。
【0017】
したがって、上記の開示によれば、暫定的に構築された学習済みの生成モデルが各候補に対して能力を発揮した結果に基づいて、機械学習に使用する学習画像の候補から、能力の適切な向上に貢献する可能性の高い1つ以上の候補を自動的に抽出することができる。よって、機械学習に使用する画像(学習画像)を適切に選択できる。加えて、適切に選択された学習画像を用いて構築された学習済みの生成モデルによれば、所定の特徴以外の他の特徴が入力画像(観測画像)に写っているか否かを精度よく検出することができる。すなわち、生成モデルの性能を高めることができる。
【0018】
なお、生成モデルは、入力画像を特徴量に変換し、変換により得られた特徴量から入力画像を復元した画像を生成する演算処理に使用される演算パラメータを備えるモジュールにより構成される。生成モデルは、画像を変換可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、生成モデルは、ニューラルネットワークにより構成されてよい。この場合、ニューラルネットワークを構成する各ニューロン(ノード)に関するパラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)が演算パラメータの一例である。また、例えば、生成モデルは、主成分分析により導出された固有ベクトル(正規直交ベクトル)行列により構成されてよい。この場合、固有ベクトル行列の各成分(項)が演算パラメータの一例である。以下、「固有ベクトル行列」を単に「固有ベクトル」とも記載する。なお、「特徴量」は、「特徴ベクトル」と称してもよい。特徴量は、基本的には、入力画像よりも低次元である。この特徴量のデータ形式及び特徴量により示される情報はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。
【0019】
所定の特徴は、画像に写り得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。所定の特徴は、それ自身が抽出の対象となり得るもの、抽出の対象とならない背景、及びこれらの組み合わせであってよい。同様に、他の特徴も、画像に写り得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。所定の特徴は、他の特徴を含む状態及び他の特徴を含まない状態の2つの状態を取り得るものであってもよい。所定の特徴と他の特徴とがこのような関係にある場合、各状態の取り得る確率が偏っているのが望ましい。各状態の取り得る確率が偏っているとは、いずれかの状態の取り得る確率が、他の状態の取り得る確率に比べて、生成モデルの再現性に影響を与える程度に高いことである。加えて、所定の特徴の発生確率の高い状態に含まれておらず、発生確率の低い状態に含まれている特徴が当該他の特徴に選択されるのが望ましい。更には、機械学習に使用される各学習画像に写る所定の特徴には、当該他の特徴が含まれていないのが望ましい。これにより、他の特徴を含まない所定の特徴が写る学習画像を生成モデルの機械学習に使用することで、生成モデルは、入力画像に写る所定の特徴に他の特徴が含まれるか否かに関わらず、当該他の特徴を含まない所定の特徴の写る復元画像を生成するように訓練される。そのため、生成モデルにより生成される復元画像と入力画像との差分に基づいて、入力画像に写る所定の特徴に他の特徴が含まれるか否かを検出することができる。一例として、所定の特徴は、製品であってよく、他の特徴は、当該製品の欠陥であってよい。すなわち、各学習画像には、欠陥を含む状態及び欠陥の含まない状態の2つの状態を取り得る製品が写っていてよい。画像の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。画像は、例えば、白黒画像等の二値画像、RGB画像、深度画像、赤外線画像等であってよい。
【0020】
製品の外観検査を実施する場合、所定の特徴は、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品は、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。これに応じて、所定の特徴以外の他の特徴は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等の欠陥であってよい。その他、所定の特徴は、例えば、人物、車両(例えば、自動車)等の移動し得る物体であってよい。所定の特徴以外の他の特徴は、例えば、当該移動により変化し得る物体の三次元形状、オプティカルフロー(移動方向)等であってよい。なお、「所定の特徴」を「所定の被写体」又は「背景特徴」と読み替え、「他の特徴」を「所定の特徴」又は「前景特徴」と読み替えてもよい。また、「学習装置」は、「訓練装置」又は「モデル生成装置」と読み替えられてもよい。
【0021】
上述の開示において、差分に応じて評価値を算出することは、複数の追加用画像それぞれと複数の復元追加用画像それぞれとの間の差分を示す複数の差分画像それぞれを生成し、各差分画像において、各画素の画素値が大きいほど評価値が高くなり、かつ、基準画素値以上の画素の前記評価値に与える寄与度が基準画素値未満の画素の評価値に与える寄与度よりも大きくなるように、評価値を算出すること、により構成されてよい。各追加用画像と各復元追加用画像との間で差分の大きい画素ほど、各差分画像における当該画素の画素値は大きい。そのため、当該構成によれば、追加用画像の復元の程度に応じた評価値を適切に算出することができる。具体的には、得られる評価値が大きいほど、対応する追加用画像の復元の程度が低いことを示す。そのため、抽出部の処理では、所定の基準に従って、評価値の高いと判定される追加用画像が抽出される。
【0022】
上述の開示において、学習装置は、抽出された1つ以上の追加用画像それぞれを表示装置に表示させる表示制御部を更に備えてもよい。例えば、所定の特徴以外に、生成モデルに再現させることを所望しない他の特徴の写る画像が追加用画像として取得される場合がある。上記の評価では、当該所定の特徴以外に当該他の特徴が追加用画像に写る場合にも、追加用画像の復元の程度が低くなり得る。当該構成によれば、機械学習(追加学習)に使用する学習画像として学習装置により自動的に抽出された追加用画像が表示装置に表示される。この表示に基づいて、オペレータは、生成モデルに再現させることを所望しない他の特徴が当該追加用画像に写っているか否かを目視により確認することができる。
【0023】
上述の開示において、学習装置は、表示装置に表示された1つ以上の追加用画像それぞれについて、当該1つ以上の追加用画像それぞれを機械学習に使用するか否かの選択を受け付ける選択受付部を更に備えてもよい。そして、追加学習部は、機械学習に使用すると選択された追加用画像を1つ以上の第2学習画像として決定してもよい。当該構成によれば、オペレータによる目視の結果を反映することで、上記のような他の特徴の写る追加用画像を生成モデルの機械学習の対象から除外することができる。これにより、他の特徴については再現性が低く、所定の特徴については再現性の高い復元画像を入力画像に対して生成する能力を獲得した学習済みの生成モデルを適切に構築することができる。よって、構築された学習済みの生成モデルによれば、所定の特徴以外の他の特徴が入力画像(観測画像)に写っているか否かを精度よく検出することができる。
【0024】
上述の開示において、学習装置は、所定の特徴及び所定の特徴以外の他の特徴の写る複数の評価画像を取得する第3取得部を更に備えてもよい。複数の追加用画像には他の特徴が写っていない。生成部は、取得された複数の評価画像それぞれを訓練された生成モデルに与えることで、複数の評価画像それぞれを復元した複数の復元評価画像それぞれを更に生成してもよい。評価部は、更に、各追加用画像と生成された各復元追加用画像との差分の程度に基づいて、他の特徴が各追加用画像に写っているか否かを判定してもよく、及び各評価画像と生成された各復元評価画像との差分の程度に基づいて、他の特徴が各評価画像に写っているか否かを判定してもよい。評価部は、他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、他の特徴が写っていると判定された1又は複数の追加用画像について、評価値を算出してもよい。抽出部は、算出された評価値に基づいて、他の特徴が写っていると判定された1又は複数の追加用画像のうち、復元の程度が低いと評価される画像を1つ以上の追加用画像を抽出してもよい。
【0025】
当該構成において、他の特徴は、学習済みの生成モデルにより生成される復元画像を利用した検出処理の対象となるものであり、基本的には、訓練に使用される学習画像には写っていない特徴である。各追加用画像に写る所定の特徴には、他の特徴は含まれていない。上記外観検査の例では、所定の特徴は、製品であり、他の特徴は、製品に生じ得る欠陥である。よって、当該構成において、他の特徴が写っていると判定された追加用画像の数又は割合は、他の特徴が写っていないにも関わらず、他の特徴が写っていると誤判定された画像の数又は割合に相当する。また、他の特徴が写っていないと判定された評価画像の数又は割合は、他の特徴が写っているにも関わらず、他の特徴が写っていないと誤判定された画像の数又は割合に相当する。
【0026】
したがって、学習装置は、他の特徴が写っていると判定された追加用画像の数又は割合、及び他の特徴が写っていないと判定された評価画像の数又は割合に基づいて、学習済みの生成モデルにより生成される復元画像を利用した検出処理の性能を評価する。そして、検出処理の性能が低い場合に、当該構成に係る学習装置は、判定を誤った追加用画像のうちから、復元の程度が低いと評価される画像を1つ以上の追加用画像を抽出し、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像を使用して、生成モデルの機械学習(追加学習)を実施する。これにより、当該構成によれば、生成モデルを利用した検出処理の性能を評価すると共に、所定の特徴の写る画像を復元する生成モデルの能力の向上を図ることで、他の特徴の検出処理に適した学習済みの生成モデルを構築することができる。なお、第1の閾値及び第2の閾値は、同じ値であってもよいし、互いに異なる値であってもよい。また、第1の閾値及び第2の閾値は、オペレータの入力により指定されてもよいし、プログラムにより指定された固定の値であってもよい。
【0027】
上述の開示において、学習装置には、他の特徴が各追加用画像に写っているか否か、及び他の特徴が各評価画像に写っているか否かを判定するための複数のパラメータ候補が与えられてよい。評価部は、複数のパラメータ候補それぞれを利用して、他の特徴が各追加用画像に写っているか否かの判定、及び他の特徴が各評価画像に写っているか否かの判定を実行してもよく、各判定の結果に基づいて、他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行する。例えば、評価部は、複数のパラメータ候補のうち、他の特徴が写っていると判定される追加用画像及び他の特徴が写っていないと判定される評価画像の数の最も少ない1つのパラメータ候補を特定する。評価部は、最適化されたパラメータを利用した各判定の結果において、他の特徴が写っていると判定された追加用画像の数又は割合が第1の閾値以上である、又は他の特徴が写っていないと判定された評価画像の数又は割合が第2の閾値以上である場合に、他の特徴が写っていると判定された1又は複数の追加用画像について、評価値を算出してもよい。
【0028】
入力画像と復元画像との間に生じた差分に基づいて他の特徴が入力画像に写っているか否かを検出する場合、どのような差分が生じていれば、入力画像に他の特徴が写っていることと認定するかを規定する基準が設けられることになる。この基準が、上記検出のためのパラメータ(以下、検出パラメータとも記載する)である。他の特徴を検出するのに最適な検出パラメータは、生成モデルの復元能力に応じて変動し得る。検出パラメータの値を人手により調整すると、生成モデルの機械学習を実施する度に、検出パラメータを調整するための人的コストが生じてしまう。更には、検出パラメータの値の人手による調整は、人的要因によるミスが生じる原因と成り得る。これに対して、当該構成によれば、生成モデルの復元能力に応じて検出パラメータを自動的に最適化して、生成モデルを利用した検出処理の性能を評価することができる。そのため、人的要因による問題点の発生を招くことなく、他の特徴の検出処理に更に適した学習済みの生成モデルを構築することができる。
【0029】
上述の開示において、学習装置は、複数の第1評価画像と複数の第2評価画像とを取得する第3取得部を更に備える。複数の第1評価画像には、所定の特徴及び所定の特徴以外の他の特徴が写る。複数の第2評価画像には、所定の特徴が写り、他の特徴が写っていない。評価部には、他の特徴が画像に写っているか否かを判定するための複数のパラメータ候補が与えられる。評価部は、複数のパラメータ候補それぞれを利用して、他の特徴が各第1評価画像に写っているか否かの判定、及び他の特徴が各第2評価画像に写っているか否かの判定を実行する。評価部は、各判定の結果に基づいて、他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行する。選択受付部は、表示装置に表示された1つ以上の追加用画像それぞれについて、他の特徴が写っているか否かの選択を更に受け付ける。第3取得部は、他の特徴が写っていると選択された各追加用画像を複数の第1評価画像の1つとして取得し、他の特徴が写っていないと選択された各追加用画像を複数の第2評価画像の1つとして取得する。
【0030】
上記構成によれば、オペレータは、第1評価画像および第2評価画像を準備する手間を省略できる。
【0031】
上述の開示において、第2取得部は、検出装置と通信する。検出装置は、所定の特徴を観測することで得られた観測画像を取得し、生成モデルに観測画像を入力することで、観測画像に対応する復元観測画像を生成する。検出装置は、生成された復元観測画像及び観測画像の間の差分に基づいて、所定の特徴以外の他の特徴が観測画像に写っているか否かを検出する。第2取得部は、検出装置によって取得された観測画像を複数の追加用画像の1つとして取得する。
【0032】
上記構成によれば、観測画像が追加用画像として取得される。そのため、オペレータは、追加用画像を準備する手間を省略できる。
【0033】
上述の開示において、学習装置は、複数の追加用画像のうち、抽出部によって抽出された1つ以上の追加用画像を記憶部に保存する保存処理部を更に備える。
【0034】
一般に、検出装置によって取得される観測画像の数は、短時間で膨大となる。しかしながら、上記構成によれば、観測画像が追加用画像として取得されるものの、評価値に基づいて抽出された1つ以上の追加用画像のみが記憶部に保存される。そのため、記憶部における空き領域が不足する事態を避けることができる。
【0035】
上述の開示において、第1学習画像及び追加用画像はそれぞれ、複数のパッチ画像に分割されてよい。生成モデルは、パッチ画像毎に与えられてよい。学習部は、パッチ画像毎に、機械学習により、1つ以上の第1学習画像それぞれが与えられると、与えられた1つ以上の第1学習画像それぞれに適合する復元画像を生成するように生成モデルを訓練してもよい。生成部は、パッチ画像毎に、各追加用画像に対応する各復元追加用画像を生成してもよい。評価部は、パッチ画像毎に、各追加用画像の評価値を算出してもよい。抽出部は、パッチ画像毎に、算出された評価値に基づいて、1つ以上の追加用画像を複数の追加用画像から抽出してもよい。追加学習部は、パッチ画像毎に、機械学習により、1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練してもよい。
【0036】
複数のパッチ画像に各学習画像が分割され、パッチ画像毎に生成モデルを用意する場合、所定の特徴以外の他の特徴の検出に利用する生成モデルの機械学習に使用する学習画像の選択にかかるコストは更に増大する。当該構成によれば、生成モデルの機械学習に適切な学習画像の選択を少なくとも部分的に自動化することができるため、機械学習に使用する学習画像の選択にかかるコストを大幅に低減することができる。また、当該構成によれば、生成モデルの能力をパッチ画像毎に最適化することができるため、所定の特徴以外の他の特徴を検出する精度を高めることができる。
【0037】
上述の開示において、生成モデルは、ニューラルネットワークにより構成されてよい。当該構成によれば、学習済みの生成モデルを容易に構築することができる。あるいは、上述の開示において、機械学習は、主成分分析を含んでもよく、生成モデルは、主成分分析により導出された固有ベクトルにより構成されてよい。
【0038】
上述の開示において、所定の特徴は、製造ラインで搬送される製品であって、欠陥を含まない製品であってよい。当該構成によれば、製品の外観検査に利用可能な生成モデルの機械学習に使用する画像を適切に選択でき、生成モデルの性能を高めることができる。
【0039】
上述の開示において、学習部が、第1学習画像を使用した機械学習により、暫定的な学習済みの生成モデルを構築している。しかしながら、本発明の学習装置の形態は、このような例に限定されなくてもよい。上記一側面に係る学習装置において、この学習部の処理は、省略されてよい。この場合、学習装置は、他のコンピュータにより構築された暫定的な学習済みの生成モデルを取得してもよい。
【0040】
例えば、本開示の一例によれば、学習装置は、モデル取得部と、生成部と、評価部と、抽出部と、追加学習部とを備える。モデル取得部は、所定の特徴の写る1つ以上の第1学習画像を使用した機械学習により訓練された生成モデルを取得する。生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、特徴量から与えられた画像を復元した画像を生成するように構成される。機械学習により、生成モデルは、1つ以上の第1学習画像それぞれが与えられると、与えられた1つ以上の第1学習画像それぞれに適合する復元画像を生成するように訓練されている。画像取得部は、所定の特徴の写る複数の追加用画像を取得する。生成部は、複数の追加用画像それぞれを生成モデルに与えることで、複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成する。評価部は、各追加用画像及び生成された各復元追加用画像の間の差分に応じて、各追加用画像の評価値であって、各復元追加用画像における各追加用画像の復元の程度に対する評価値を算出する。抽出部は、評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を複数の追加用画像から抽出する。追加学習部は、機械学習により、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練する。
【0041】
本開示の形態は、学習装置に限られなくてもよい。本開示の一例によれば、検出装置は、所定の特徴を観測することで得られた観測画像を取得する取得部と、上記いずれかの形態に係る学習装置により訓練された生成モデルに観測画像を入力することで、観測画像に対応する復元観測画像を生成する生成部と、生成された復元観測画像及び観測画像の間の差分に基づいて、所定の特徴以外の他の特徴が観測画像に写っているか否かを検出する検出部と、を備える。当該構成によれば、所定の特徴以外の他の特徴が観測画像に写っているか否かを精度よく検出することができる。
【0042】
上記各形態に係る学習装置及び検出装置それぞれの別の態様として、本開示の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本開示の一側面に係る検出システムは、上記いずれかの形態に係る学習装置及び検出装置により構成されてよい。
【0043】
例えば、本開示の一側面に係る学習方法は、コンピュータが、所定の特徴の写る1つ以上の第1学習画像を取得するステップと、1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施するステップであって、生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、特徴量から与えられた画像を復元した画像を生成するように構成され、機械学習により、1つ以上の第1学習画像それぞれが与えられると、与えられた1つ以上の第1学習画像それぞれに適合する復元画像を生成するように生成モデルを訓練する、ステップと、所定の特徴の写る複数の追加用画像を取得するステップと、複数の追加用画像それぞれを生成モデルに与えることで、複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成するステップと、各追加用画像及び生成された各復元追加用画像の間の差分に応じて、各追加用画像の評価値であって、各復元追加用画像における各追加用画像の復元の程度に対する評価値を算出するステップと、評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を複数の追加用画像から抽出するステップと、機械学習により、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練するステップと、を実行する、情報処理方法である。
【0044】
また、例えば、本開示の一側面に係る学習プログラムは、コンピュータに、所定の特徴の写る1つ以上の第1学習画像を取得するステップと、1つ以上の第1学習画像を使用して、生成モデルの機械学習を実施するステップであって、生成モデルは、画像が与えられると、与えられた画像を特徴量に変換し、特徴量から与えられた画像を復元した画像を生成するように構成され、機械学習により、1つ以上の第1学習画像それぞれが与えられると、与えられた1つ以上の第1学習画像それぞれに適合する復元画像を生成するように生成モデルを訓練する、ステップと、所定の特徴の写る複数の追加用画像を取得するステップと、複数の追加用画像それぞれを生成モデルに与えることで、複数の追加用画像それぞれを復元した複数の復元追加用画像それぞれを生成するステップと、各追加用画像及び生成された各復元追加用画像の間の差分に応じて、各追加用画像の評価値であって、各復元追加用画像における各追加用画像の復元の程度に対する評価値を算出するステップと、評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像を複数の追加用画像から抽出するステップと、機械学習により、抽出された1つ以上の追加用画像に含まれる1つ以上の第2学習画像それぞれが与えられると、与えられた1つ以上の第2学習画像それぞれに適合する復元画像を生成するように生成モデルを更に訓練するステップと、を実行させるための、プログラムである。
【発明の効果】
【0045】
本開示によれば、学習に用いる画像を適切に選択することで生成モデルの性能を高めることができる。
【図面の簡単な説明】
【0046】
【
図1】実施形態に係る検出システムの適用画面の一例を模式的に例示する図である。
【
図2】本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する図である。
【
図3】本実施形態に係る検出装置2のハードウェア構成の一例を模式的に例示する図である。
【
図4】本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する図である。
【
図5】本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する図である。
【
図6】本実施形態に係る検出装置2のソフトウェア構成の一例を模式的に例示する図である。
【
図7】本実施形態に係る学習装置1の処理手順の一例を示すフローチャートである。
【
図8】本実施形態に係る学習装置1の処理手順の一例を示すフローチャートである。
【
図9】ニューラルネットワークにより構成される生成モデル5の一例を模式的に例示する図である。
【
図10】欠陥Lを検出する処理過程の一例を模式的に例示する図である。
【
図11】ステップS107及びS108の仮想的な判定結果の一例を示す図である。
【
図12】評価値125を算出する処理過程の一例を模式的に例示する図である。
【
図13】本実施形態に係る表示画面の一例を模式的に例示する図である。
【
図14】本実施形態に係る表示画面の一例を模式的に例示する図である。
【
図15】本実施形態に係る検出装置2の処理手順の一例を示すフローチャートである。
【
図16】当該実験例により機械学習の処理を繰り返す過程で構築された学習済みの生成モデルの性能を評価した結果を示す。
【
図17】変形例5に係る学習装置1Bのソフトウェア構成の一例を模式的に例示する図である。
【
図18】変形例8に係る学習装置のソフトウェア構成の一例を模式的に例示する図である。
【
図19】変形例9に係る学習装置における追加用画像の抽出処理の手順の一例を示すフローチャートである。
【
図20】変形例9に係る学習装置における追加用画像の抽出処理の手順の一例を示すフローチャートである。
【
図21】変形例9に係る学習装置における追加学習処理の手順の一例を示すフローチャートである。
【
図22】変形例9に係る学習装置における追加学習処理の手順の一例を示すフローチャートである。
【
図23】ステップS502において表示される表示画面の一例を示す図である。
【発明を実施するための形態】
【0047】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0048】
§1 適用例
まず、
図1を用いて、本発明が適用される場面の一例について説明する。
図1は、実施形態に係る検出システムの適用画面の一例を模式的に例示する図である。
図1の例では、所定の特徴の写る画像に所定の特徴以外の他の特徴が写っているか否かを検出する場面の一例として、製品Rの写る画像を利用して、製品Rに欠陥が存在するか否かを検出する場面を想定する。良品である製品Rが所定の特徴の一例であり、欠陥が他の特徴の一例である。ただし、所定の特徴及び他の特徴の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。本開示は、画像に写る何らかの特徴を検出するあらゆる場面に適用可能である。
【0049】
図1に示されるとおり、本実施形態に係る検出システム100は、学習装置1及び検出装置2を備えている。学習装置1は、機械学習により、学習済みの生成モデル5を構築するように構成されたコンピュータである。検出装置2は、学習済みの生成モデル5を利用して、所定の特徴以外の他の特徴(本実施形態では、欠陥)を検出するように構成されたコンピュータである。本実施形態では、学習装置1及び検出装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【0050】
ただし、学習装置1及び検出装置2の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、学習装置1及び検出装置2の間では、記憶媒体を利用して、データがやりとりされてよい。また、本実施形態では、学習装置1及び検出装置2は互いに別個のコンピュータである。しかしながら、検出システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習装置1及び検出装置2は一体のコンピュータであってもよい。また、例えば、学習装置1及び検出装置2の少なくとも一方は、複数台のコンピュータにより構成されてよい。
【0051】
本実施形態に係る学習装置1は、所定の特徴の一例として良品である製品Rの写る1つ以上の第1学習画像121を取得する。製品Rは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品Rは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。
【0052】
学習装置1は、取得された1つ以上の第1学習画像121を使用して、生成モデル5の機械学習を実施する。生成モデル5は、入力画像が与えられると、与えられた入力画像を特徴量に変換し、変換により得られた特徴量から与えられた入力画像を復元した画像を生成するように構成されている。学習装置1は、機械学習により、1つ以上の第1学習画像121それぞれが与えられると、与えられた1つ以上の第1学習画像121それぞれに適合する復元画像を生成するように生成モデル5を訓練する。これにより、生成モデル5は、第1学習画像121に表れる範囲において、良品である製品Rの写る画像を復元する能力を獲得する。
【0053】
ただし、製品Rは、常に同じ様子で画像に写るとは限らない。例えば、製品Rには、個体差が生じ得る。また、例えば、撮影のタイミング等の撮影条件が変動し得る(一例として、製品Rの位置がずれたり、傾いたりすることがある)。これらの要因により、得られる画像内に表れる製品Rの様子は異なり得る。第1学習画像121を使用した機械学習が完了した段階では、学習済みの生成モデル5が、第1学習画像121に表れる範囲以外の範囲について、良品である製品Rの写る画像を復元する能力を獲得しているか否かは不明である。
【0054】
そこで、学習装置1は、それぞれ製品Rの写る複数の追加用画像123を取得する。学習装置1は、取得された複数の追加用画像123それぞれを訓練された生成モデル5に与えることで、複数の追加用画像123それぞれを復元した複数の復元追加用画像124それぞれを生成する。そして、学習装置1は、各追加用画像123及び生成された各復元追加用画像124の間の差分に応じて、各追加用画像123の評価値125であって、各復元追加用画像124における各追加用画像123の復元の程度に対する評価値125を算出する。
【0055】
追加用画像123と復元追加用画像124との間の差分が大きいほど、復元追加用画像124における追加用画像123の復元の程度が低い、すなわち、この追加用画像123に表れる製品Rの様子を再現する生成モデル5の能力が不十分であることを示す。そのため、復元追加用画像124との差分が大きい、換言すると、復元の程度の低い追加用画像123は、製品Rの写る画像を再現する生成モデル5の能力の適切な向上に貢献する可能性が高い。
【0056】
反対に、復元の程度が高い追加用画像123は、生成モデル5の能力の適切な向上に貢献する可能性が低い。加えて、復元の程度が高い追加用画像123を機械学習に使用する学習画像に追加することで、生成モデル5の能力の向上を図ると、追加用画像123の過剰な追加により、機械学習に使用する学習画像の件数の膨大化を招き、当該機械学習の処理コストを増大させてしまう可能性がある。更には、製品R以外のパターンを復元する能力を向上させてしまうことで、あらゆるパターンを忠実に再現する能力を生成モデル5に獲得させてしまう可能性がある。
【0057】
これらの点を考慮して、学習装置1は、算出された評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像126を複数の追加用画像123から抽出する。復元の程度が低いと評価するための所定の基準は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、学習装置1は、最も評価の低い追加用画像123を追加用画像126として抽出してもよい。また、例えば、学習装置1は、評価の低い方から順に所定数の追加用画像123を追加用画像126として抽出してもよい。抽出する追加用画像126の数は、オペレータの入力、設定値等により適宜決定されてよい。また、例えば、学習装置1は、閾値よりも評価の低い追加用画像123を追加用画像126として抽出してもよい。判定の基準となる閾値は、オペレータの入力、設定値等により適宜決定されてよい。そして、学習装置1は、抽出された1つ以上の追加用画像126に含まれる1つ以上の画像を第2学習画像126Aとして選択する。学習装置1は、1つ以上の追加用画像126の全てを第2学習画像126Aとして決定してもよい。あるいは、学習装置1は、1つ以上の追加用画像126のうちの一部を第2学習画像126Aとして決定してもよい。学習装置1は、機械学習により、1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように生成モデル5を更に訓練する。
【0058】
本実施形態に係る検出装置2は、製品Rを観測することで得られた観測画像221を取得する。本実施形態では、検出装置2は、製品Rを観測するように配置されたカメラCAに接続されている。検出装置2は、カメラCAから観測画像221を取得する。なお、各画像(121、123、221)の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各画像(121、123、221)は、例えば、白黒画像等の二値画像、RGB画像、深度画像、赤外線画像等であってよい。これに応じて、カメラCAは、例えば、一般的なデジタルカメラ、深度カメラ、赤外線カメラ等であってよい。
【0059】
次に、検出装置2は、学習装置1により訓練された生成モデル5に観測画像221を入力することで、観測画像221に対応する復元観測画像223を生成する。そして、検出装置2は、生成された復元観測画像223及び観測画像221の間の差分に基づいて、所定の特徴以外の他の特徴の一例として欠陥が観測画像221に写っているか否か、換言すると、製品Rに欠陥が含まれるか否かを検出する。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。これにより、検出装置2は、学習済みの生成モデル5を利用して、製品Rの外観検査を実施する(すなわち、製品Rの良否を判定する)。
【0060】
以上のとおり、本実施形態では、第1学習画像121を使用した機械学習により、学習済みの生成モデル5が暫定的に構築される。上記学習装置1の一連の処理では、この暫定的に構築された学習済みの生成モデル5が各追加用画像123に対して復元能力を発揮した結果に基づいて、複数の追加用画像123から、当該復元能力の適切な向上に貢献する可能性の高い1つ以上の追加用画像126を自動的に抽出することができる。したがって、機械学習に使用する画像(学習画像)を適切に選択できる。加えて、適切に選択された学習画像を用いて構築された学習済みの生成モデル5によれば、観測画像221に欠陥が写っているか否か、すなわち、製品Rに欠陥が存在するか否かを精度よく検出することができる。
【0061】
§2 具体例
[ハードウェア構成]
<学習装置>
次に、
図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。
図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する図である。
【0062】
図2に示されるとおり、本実施形態に係る学習装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、表示装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、
図2では、通信インタフェースを「通信I/F」と記載している。
【0063】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、学習プログラム120、1つ以上の第1学習画像121、複数の追加用画像123、複数の評価画像127、学習結果データ129等の各種情報を記憶する。
【0064】
学習プログラム120は、学習済みの生成モデル5を構築するための後述の機械学習の処理(
図7及び
図8)を学習装置1に実行させるためのプログラムである。学習プログラム120は、当該情報処理の一連の命令を含む。1つ以上の第1学習画像121は、生成モデル5の機械学習に使用される。各追加用画像123は、第1学習画像121以外で生成モデル5の機械学習に使用される学習画像の候補である。各評価画像127には、製品R及び欠陥が写る。各評価画像127は、生成モデル5により生成される復元画像を利用した欠陥の検出処理の性能を評価するのに使用される。学習結果データ129は、機械学習により構築された学習済みの生成モデル5に関する情報を示す。学習結果データ129は、学習プログラム120の実行結果として得られる。詳細は後述する。
【0065】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、検出装置2)と行うことができる。学習装置1は、通信インタフェース13を介して、複数の追加用画像123を取得してもよい。
【0066】
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、表示装置15は、出力装置の一例であり、例えば、ディスプレイである。オペレータは、入力装置14及び表示装置15を介して、学習装置1を操作することができる。なお、表示装置15は、タッチパネルディスプレイであってもよい。この場合、入力装置14は省略されてもよい。
【0067】
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム120、1つ以上の第1学習画像121、複数の追加用画像123、及び複数の評価画像127の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
【0068】
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体91から、上記学習プログラム120、1つ以上の第1学習画像121、複数の追加用画像123、及び複数の評価画像127の少なくともいずれかを取得してもよい。
【0069】
ここで、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【0070】
なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、表示装置15及びドライブ16の少なくともいずれかは省略されてもよい。学習装置1は、例えば、スピーカ等の表示装置15以外の出力装置を備えてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)等であってもよい。
【0071】
<検出装置>
次に、
図3を用いて、本実施形態に係る検出装置2のハードウェア構成の一例について説明する。
図3は、本実施形態に係る検出装置2のハードウェア構成の一例を模式的に例示する図である。
【0072】
図3に示されるとおり、本実施形態に係る検出装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、表示装置25、ドライブ26、及び外部インタフェース27が電気的に接続されたコンピュータである。なお、
図3では、外部インタフェースを「外部I/F」と記載している。検出装置2の制御部21~ドライブ26はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
【0073】
すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、検出プログラム220、学習結果データ129等の各種情報を記憶する。
【0074】
検出プログラム220は、学習装置1により訓練された学習済みの生成モデル5を利用して、観測画像221に写る製品Rの良否を判定する後述の情報処理(
図15)を検出装置2に実行させるためのプログラムである。検出プログラム220は、当該情報処理の一連の命令を含む。詳細は後述する。
【0075】
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検出装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
【0076】
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。表示装置25は、出力装置の一例であり、例えば、ディスプレイである。オペレータは、入力装置24及び表示装置25を介して、検出装置2を操作することができる。入力装置24及び表示装置25はタッチパネルディスプレイに置き換えられてもよい。
【0077】
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記検出プログラム220及び学習結果データ129のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、検出装置2は、記憶媒体92から、上記検出プログラム220及び学習結果データ129のうちの少なくともいずれかを取得してもよい。記憶媒体92の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
【0078】
外部インタフェース27は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース27の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、検出装置2は、外部インタフェース27を介して、カメラCAに接続される。
【0079】
カメラCAは、外観検査の対象となる製品Rを写した観測画像221を取得するのに利用される。カメラCAの種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラCAには、例えば、一般的なデジタルカメラ、深度カメラ、赤外線カメラ等が用いられてよい。また、カメラCAは、製造ラインにより搬送される製品Rを観測可能なように適宜配置されてよい。カメラCAは、例えば、製品Rを搬送する製造ラインの近傍に配置されてよい。なお、カメラCAが通信インタフェースを備える場合、検出装置2は、外部インタフェース27ではなく、通信インタフェース23を介して、カメラCAに接続されてもよい。
【0080】
なお、検出装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、表示装置25、ドライブ26及び外部インタフェース27の少なくともいずれかは省略されてもよい。検出装置2は、例えば、スピーカ等の表示装置25以外の出力装置を備えてもよい。検出装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検出装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
【0081】
[ソフトウェア構成]
<学習装置>
次に、
図4及び
図5を用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。
図4及び
図5は、本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する図である。
【0082】
学習装置1の制御部11は、記憶部12に記憶された学習プログラム120をRAMに展開する。そして、制御部11は、RAMに展開された学習プログラム120に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、
図4及び
図5に示されるとおり、本実施形態に係る学習装置1は、第1取得部110、学習部111、第2取得部112、生成部113、評価部114、抽出部115、追加学習部116、第3取得部117、表示制御部118、選択受付部119及び保存処理部1110をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0083】
図4に示されるとおり、第1取得部110は、製品Rの写る1つ以上の第1学習画像121を取得する。学習部111は、取得された1つ以上の第1学習画像121を使用して、生成モデル5の機械学習を実施する。生成モデル5は、入力画像が与えられると、与えられた入力画像を特徴量に変換し、変換により得られた特徴量から与えられた入力画像を復元した画像を生成するように構成される。学習部111は、機械学習により、1つ以上の第1学習画像121それぞれが与えられると、与えられた1つ以上の第1学習画像121それぞれに適合する復元画像を生成するように生成モデル5を訓練する。
【0084】
詳細には、生成モデル5は、入力画像を特徴量に変換し、変換により得られた特徴量から入力画像を復元した画像を生成する演算処理に使用される演算パラメータMを備えるモジュール(学習モデル)により構成される。この生成モデル5の構成は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、生成モデル5には、ニューラルネットワーク(例えば、オートエンコーダ等)、主成分分析により導出される固有ベクトル等の公知の学習モデルを用いることができる。機械学習では、第1学習画像121が与えられると、与えられた第1学習画像121に適合する復元画像を生成するように、この演算パラメータMの値が調整される。本実施形態では、生成モデル5は、オートエンコーダ等のニューラルネットワークにより構成される。
【0085】
第2取得部112は、製品Rの写る複数の追加用画像123を取得する。本実施の形態では、各追加用画像123には、欠陥の含まれていない製品R(すなわち、良品)が写っている。すなわち、各追加用画像123には欠陥が写っていない。生成部113は、取得された複数の追加用画像123それぞれを訓練された生成モデル5に与えることで、複数の追加用画像123それぞれを復元した複数の復元追加用画像124それぞれを生成する。評価部114は、各追加用画像123及び生成された各復元追加用画像124の間の差分に応じて、各追加用画像123の評価値125であって、各復元追加用画像124における各追加用画像123の復元の程度に対する評価値125を算出する。
【0086】
本実施形態では、評価部114は、各追加用画像123と各復元追加用画像124との差分を算出する。これにより、評価部114は、複数の追加用画像123それぞれと複数の復元追加用画像124それぞれとの間の差分を示す複数の差分画像182それぞれを生成する。追加用画像123と復元追加用画像124との間で差異が生じている画素ほど、差分画像182においてその画素値が大きい。つまり、差分画像182内で画素値の大きい画素が多いほど、復元追加用画像124における追加用画像123の復元の程度が低いことを示す。反対に、差分画像182内で画素値の大きい画素が少ないほど、復元追加用画像124における追加用画像123の復元の程度が高いことを示す。この観点に基づいて、評価部114は、生成された各差分画像182を利用して、各追加用画像123の復元の程度に対する各評価値125を算出する。
【0087】
抽出部115は、算出された各評価値125に基づいて、復元の程度が低いと評価される1つ以上の追加用画像126を複数の追加用画像123から抽出する。復元の程度が低いと評価するための基準は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【0088】
本実施形態に係る学習装置1は、抽出された1つ以上の追加用画像126が追加学習に用いる画像として適切か否かをチェックするための処理を実行するように構成される。具体的には、表示制御部118は、抽出された1つ以上の追加用画像126それぞれを表示装置15に表示させる。選択受付部119は、表示装置15に表示された1つ以上の追加用画像126それぞれについて、当該1つ以上の追加用画像126それぞれを機械学習に使用するか否かの選択を受け付ける。
【0089】
追加学習部116は、選択受付部119が受け付けた選択結果に応じて、抽出された1つ以上の追加用画像126に含まれる1つ以上の画像を第2学習画像126Aとして決定する。すなわち、追加学習部116は、機械学習に使用すると選択された追加用画像126を上記訓練の対象となる第2学習画像126Aとして決定する。追加学習部116は、機械学習に使用しないと選択された追加用画像126を上記訓練の対象から除外する。
【0090】
追加学習部116は、機械学習により、決定された1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように生成モデル5を更に訓練する。
【0091】
更に、本実施形態では、
図5に示されるとおり、学習装置1は、追加用画像126の抽出を実行する前に、構築された生成モデル5により生成される復元画像を利用した欠陥の検出処理の性能を評価するように構成される。具体的に、第3取得部117は、製品R及び欠陥Lがそれぞれ写る複数の評価画像127を取得する。すなわち、各評価画像127には、欠陥Lを含む製品R(すなわち、不良品)が写っている。生成部113は、取得された複数の評価画像127それぞれを訓練された生成モデル5に与えることで、複数の評価画像127それぞれを復元した複数の復元評価画像128それぞれを更に生成する。
【0092】
評価部114は、更に、各追加用画像123と各復元追加用画像124との差分の程度に基づいて、各追加用画像123に欠陥Lが写っているか否か(すなわち、各追加用画像123に写る製品Rに欠陥Lが存在するか否か)を判定する。また、評価部114は、各評価画像127と各復元評価画像128との差分の程度に基づいて、各評価画像127に欠陥Lが写っているか否か(すなわち、各評価画像127に写る製品Rに欠陥Lが存在するか否か)を判定する。
【0093】
本実施形態では、評価部114は、各差分画像182を利用して、各追加用画像123に欠陥Lが写っているか否かを判定する。同様に、評価部114は、各評価画像127と各復元評価画像128との差分を算出することで、複数の評価画像127それぞれと複数の復元評価画像128それぞれとの間の差分を示す複数の差分画像183それぞれを生成する。評価部114は、各差分画像183を利用して、各評価画像127に欠陥Lが写っているか否かを判定する。
【0094】
各画像(123、127)に欠陥Lが写っているか否かを判定するための検出パラメータは適宜与えられてよい。例えば、検出パラメータの値は、オペレータの入力により指定されてもよいし、プログラム内の設定値として与えられてよい。本実施形態では、複数の検出パラメータ候補60が与えられる。検出パラメータ候補60は、本発明の「パラメータ候補」の一例である。各検出パラメータ候補60は、検出パラメータの候補の値を示す。各検出パラメータ候補60の値は適宜与えられてよい。
【0095】
評価部114は、各検出パラメータ候補60を利用して、各追加用画像123に欠陥Lが写っているか否かの判定、及び各評価画像127に欠陥Lが写っているか否かの判定を実行する。評価部114は、各判定の結果に基づいて、複数の検出パラメータ候補60のうち、欠陥Lが写っていると判定される追加用画像123及び欠陥Lが写っていないと判定される評価画像127の数が最も少ない1つの検出パラメータ候補61を特定する。これにより、評価部114は、欠陥Lの検出に利用する検出パラメータを自動的に最適化する。
【0096】
そして、評価部114は、特定された1つの検出パラメータ候補61を利用した判定において、欠陥Lが写っていると判定された追加用画像123の数(以下、誤判定の追加用画像123の数とも記載する)が第1の閾値以上であるか否かを判定する。また、評価部114は、特定された1つの検出パラメータ候補61を利用した判定において、欠陥Lが写っていないと判定された評価画像127の数(以下、誤判定の評価画像127の数とも記載する)が第2の閾値以上であるか否かを判定する。第1の閾値及び第2の閾値はそれぞれ、適宜決定されてよい。
【0097】
あるいは、評価部114は、特定された1つの検出パラメータ候補61を利用した判定において、複数の追加用画像123のうち欠陥Lが写っていると判定された追加用画像123の割合(以下、誤判定の追加用画像123の割合とも記載する)が第1の閾値以上であるか否かを判定してもよい。また、評価部114は、特定された1つの検出パラメータ候補61を利用した判定において、複数の評価画像127のうち欠陥Lが写っていないと判定された評価画像127の割合(以下、誤判定の評価画像127の割合とも記載する)が第2の閾値以上であるか否かを判定してもよい。
【0098】
学習装置1は、誤判定の追加用画像123の数又は割合が第1の閾値以上である、又は誤判定の評価画像127の数又は割合が第2の閾値以上である場合に、追加用画像126による追加学習に関する上記一連の処理を実行する。すなわち、評価部114は、特定された1つの検出パラメータ候補61を利用した各判定の結果において、誤判定の追加用画像123の数又は割合が第1の閾値以上である、又は誤判定の評価画像127の数又は割合が第2の閾値以上である場合に、誤判定された1又は複数の追加用画像123について、評価値125を算出する。
【0099】
抽出部115は、算出された評価値125に基づいて、欠陥Lが写っていると判定された1又は複数の追加用画像123のうち、復元の程度が低いと評価される1つ以上の追加用画像126を抽出する。追加学習部116は、選択受付部119の受け付けた選択結果に応じて、抽出された1つ以上の追加用画像126に含まれる1つ以上の画像を第2学習画像126Aとして決定する。追加学習部116は、機械学習により、決定された1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように生成モデル5を更に訓練する。
【0100】
更に、本実施形態では、
図4及び
図5に示されるとおり、各画像(121、123)は、複数のパッチ画像(P1、P2)に分割される。生成モデル5は、パッチ画像(P1、P2)毎に与えられる。学習部111は、パッチ画像P1毎に、機械学習により、1つ以上の第1学習画像121それぞれが与えられると、与えられた1つ以上の第1学習画像121それぞれに適合する復元画像を生成するように各生成モデル5を訓練する。
【0101】
生成部113は、パッチ画像P2毎に、対応する生成モデル5を利用して、各追加用画像123に対応する各復元追加用画像124を生成する。同様に、各評価画像127も、複数のパッチ画像P3に分割される。生成部113は、パッチ画像P3毎に、対応する生成モデル5を利用して、各評価画像127に対応する各復元評価画像128を生成する。
【0102】
評価部114は、パッチ画像P2毎に、各差分画像182を利用して、各追加用画像123に欠陥Lが写っているか否かを判定する。同様に、評価部114は、パッチ画像P3毎に、各差分画像183を利用して、各評価画像127に欠陥Lが写っているか否かを判定する。更に、評価部114は、パッチ画像P2毎に、各追加用画像123の評価値125を算出する。本実施形態では、評価部114は、誤判定の追加用画像123の数又は割合が第1の閾値以上である、又は誤判定の評価画像127の数又は割合が第2の閾値以上であるパッチ画像P2に関して、各追加用画像123の評価値125を算出する。
【0103】
抽出部115は、パッチ画像P2毎に、算出された評価値125に基づいて、1つ以上の追加用画像126を複数の追加用画像123から抽出する。パッチ画像P2毎に、抽出される追加用画像126の件数は異なっていてもよい。追加学習部116は、抽出された1つ以上の追加用画像126に含まれる1つ以上の画像を第2学習画像126Aとして決定する。追加学習部116は、パッチ画像P2毎に、機械学習により、決定された1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように各生成モデル5を更に訓練する。
【0104】
なお、
図4及び
図5では、各画像(121、123、127)は、16個のパッチ画像(P1、P2、P3)に等分に分割されている。このように、各画像(121、123、127)を等分に分割することで、寸法の統一された複数のパッチ画像(P1、P2、P3)が生成されてよい。ただし、画像を分割する方法は、各画像(121、123、127)の間で統一されていれば、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。複数のパッチ画像(P1、P2、P3)のうちの少なくとも一部の寸法が他の寸法と異なっていてもよい。また、1つの画像(121、123、127)におけるパッチ画像(P1、P2、P3)の数は、16個に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【0105】
保存処理部1110は、記憶部12へのデータの保存処理を行なう。本実施の形態では、保存処理部1110は、最終的に構築された学習済みの生成モデル5に関する情報を学習結果データ129として生成する。そして、保存処理部1110は、生成された学習結果データ129を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。
【0106】
<検出装置>
次に、
図6を用いて、本実施形態に係る検出装置2のソフトウェア構成の一例について説明する。
図6は、本実施形態に係る検出装置2のソフトウェア構成の一例を模式的に例示する図である。
【0107】
検出装置2の制御部21は、記憶部22に記憶された検出プログラム220をRAMに展開する。そして、制御部21は、RAMに展開された検出プログラム220に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、
図6に示されるとおり、本実施形態に係る検出装置2は、取得部211、生成部212、検出部213及び出力部214をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、検出装置2の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部21(CPU)により実現される。
【0108】
取得部211は、製品Rを観測することで得られた観測画像221を取得する。生成部212は、学習結果データ129を保持することで、学習済みの生成モデル5を備えている。生成部212は、学習結果データ129を参照して、学習済みの生成モデル5の設定を行う。そして、生成部212は、取得された観測画像221を学習済みの生成モデル5に入力することで、観測画像221を復元した復元観測画像223を生成する。
【0109】
検出部213は、生成された復元観測画像223及び観測画像221の間の差分に基づいて、製品Rと共に欠陥が観測画像221に写っているか否か(すなわち、観測画像221に写る製品Rに欠陥が存在するか否か)を検出する。本実施形態では、検出部213は、上記学習装置1と同様に、観測画像221と復元観測画像223との差分を算出することで、観測画像221と復元観測画像223との間の差分を示す差分画像225を生成する。検出部213は、差分画像225を利用して、観測画像221に写る製品Rに欠陥が存在するか否かを判定する。
【0110】
本実施形態では、観測画像221は、各画像(121、123)の分割に応じて、複数のパッチ画像P4に分割される。生成部212は、パッチ画像P4毎に生成モデル5を設定する。そして、生成部212は、観測画像221の各パッチ画像P4を対応する生成モデルに入力することで、観測画像221を復元した復元観測画像223をパッチ画像P4毎に生成する。検出部213は、パッチ画像P4毎に、観測画像221及び復元観測画像223の間の差分に基づいて、観測画像221に写る製品Rに欠陥Lが存在するか否かを判定する。出力部214は、当該検出の結果、すなわち、製品Rの良否を判定した結果に関する情報を出力する。
【0111】
<その他>
学習装置1及び検出装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1及び検出装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1及び検出装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0112】
§3 動作例
[学習装置]
次に、
図7及び
図8を用いて、学習装置1の動作例について説明する。
図7及び
図8は、本実施形態に係る学習装置1の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0113】
(ステップS101)
ステップS101では、制御部11は、第1取得部110として動作し、製品Rの写る1つ以上の第1学習画像121を取得する。
【0114】
本実施形態では、基本的には、製品Rが写る一方で欠陥の写っていない画像、換言すると、欠陥の存在しない製品R(良品)の写る画像が第1学習画像121として利用される。ただし、欠陥の検出に利用可能な復元画像を生成する学習済みの生成モデル5を構築可能であれば、第1学習画像121の一部に、欠陥を含む製品Rの写る画像が利用されてよい。
【0115】
第1学習画像121を生成する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラCAと同種のカメラ及び欠陥のない製品Rを用意し、製品Rの検査を行う環境に応じた様々な条件で、用意したカメラにより製品Rを撮影する。これにより、製品Rの写る第1学習画像121を生成することができる。
【0116】
第1学習画像121は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、第1学習画像121の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。第1学習画像121を学習装置1が生成する場合、制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記一連の処理を実行することで、1つ以上の第1学習画像121を取得する。一方、第1学習画像121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された1つ以上の第1学習画像121を取得する。複数の第1学習画像121を取得する場合、そのうちの一部が学習装置1により生成され、残りが他のコンピュータにより生成されてもよい。
【0117】
取得する第1学習画像121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、取得する第1学習画像121の件数は、暫定的な学習済みの生成モデル5を構築可能な程度に決定されてよい。1つ以上の第1学習画像121を取得すると、制御部11は、次のステップS102に処理を進める。
【0118】
(ステップS102)
ステップS102では、制御部11は、学習部111として動作し、取得された1つ以上の第1学習画像121を使用して、生成モデル5の機械学習を実施する。この機械学習の処理では、制御部11は、1つ以上の第1学習画像121それぞれが与えられると、与えられた1つ以上の第1学習画像121それぞれに適合する復元画像を生成するように生成モデル5を訓練する。
【0119】
生成モデル5は、入力画像を特徴量に変換し、変換により得られた特徴量から入力画像を復元した画像を生成する演算処理に使用される演算パラメータMを備える学習モデルにより構成される。機械学習の方法は、生成モデル5として利用する学習モデルの種類に応じて、適宜選択されてよい。本実施形態では、ニューラルネットワークにより構成される生成モデル5を生成するための機械学習の方法が採用される。機械学習の一例として、制御部11は、以下の処理手順により、学習済みの生成モデル5を構築する。
【0120】
図9は、ニューラルネットワークにより構成される生成モデル5の一例を模式的に例示する図である。ニューラルネットワークの代表例としてオートエンコーダが挙げられる。オートエンコーダは、次元圧縮を目的としたニューラルネットワークである。
【0121】
図9に例示される生成モデル5を備えるニューラルネットワークは、入力層51、中間(隠れ)層52、出力層53を備えている。ただし、ニューラルネットワークの構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、中間層の数は、1つに限定されなくてもよく、2つ以上であってもよい。
【0122】
入力層51に含まれるニューロン(ノード)の数は入力画像の画素数に対応する。中間層52に含まれるニューロンの数は特徴量の次元数に対応する。出力層53に含まれるニューロンの数は復元画像の画素数に対応する。中間層52に含まれるニューロンの数は、入力層51及び出力層53それぞれに含まれるニューロンの数よりも少なく設定されてよい。次元圧縮を目的としたオートエンコーダの場合、中間層52に含まれるニューロンの数は、入力層51及び出力層53それぞれに含まれるニューロンの数よりも少なく設定される。これに応じて、特徴量の次元数が、入力画像及び復元画像の次元数よりも小さく設定される。
【0123】
ニューラルネットワークでは、隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定される。
図9に例示される生成モデル5では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層51~53に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、生成モデルの演算パラメータMの一例である。
【0124】
制御部11は、生成モデル5を構成するニューラルネットワークを用意する。ニューラルネットワークの構造(例えば、層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、パラメータの初期値(例えば、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値)は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。
【0125】
次に、制御部11は、各学習画像を訓練データ及び教師データとして利用し、各ニューラルネットワークの学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。例えば、第1のステップでは、制御部11は、各ニューラルネットワークの入力層51に各学習画像を入力し、各ニューラルネットワークの演算処理を実行する。すなわち、制御部11は、各ニューラルネットワークの入力層51に各学習画像を入力し、入力側から順に各層51~53に含まれる各ニューロンの発火判定を行う。この演算処理により、制御部11は、各学習画像を特徴量に変換し、変換により得られた特徴量から各学習画像を復元した画像を生成した結果に対応する出力値を出力層53から取得する。この演算処理の過程で、中間層52から得られる出力は、入力画像を特徴量に変換した結果に対応する。
【0126】
第2のステップでは、制御部11は、出力層53から得られた出力値と各学習画像との誤差を損失関数に基づいて算出する。損失関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。損失関数には、公知のものが採用されてよい。第3のステップでは、制御部11は、誤差逆伝播(Back propagation)法により、算出された出力値の誤差を用いて、各ニューラルネットワークの演算パラメータM、すなわち、各層51~53における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、各層51~53における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値を更新する。
【0127】
制御部11は、上記第1~第4のステップを繰り返すことで、出力層53から出力される出力値(復元画像)と各学習画像との誤差の和が小さくなるように、演算パラメータMの値を調整する。例えば、制御部11は、出力層53から出力される出力値と各学習画像との誤差の和が閾値以下になるまで、上記第1~第4のステップによる演算パラメータMの調整を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。
【0128】
これにより、制御部11は、各学習画像を入力層51に入力すると、各学習画像に適合する復元画像を出力層53から出力するように訓練されたニューラルネットワークを学習済みの生成モデル5として構築することができる。ニューラルネットワークでは、入力された各学習画像は、入力層51から中間層52までの演算の過程で特徴量に変換される。そして、中間層52から出力層53までの演算の過程により、得られた特徴量から復元画像が生成される。学習済みの生成モデル5を構築すると、制御部11は、次のステップS103に処理を進める。
【0129】
なお、本実施形態では、制御部11は、ステップS102を実行する前に、取得された1つ以上の第1学習画像121それぞれを複数のパッチ画像P1に分割する。分割方法及びパッチ画像P1の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、制御部11は、縦方向及び横方向それぞれに指定された数で等分に第1学習画像121を分割してもよい。これにより、第1学習画像121は、複数のパッチ画像P1にグリッド状に分割されてよい。分割数は、オペレータの入力により指定されてもよいし、プログラム内で予め与えられてもよい。また、グリッド状に分割する場合、複数のパッチ画像P1の一部の寸法がその他の寸法と相違してもよい。なお、第1学習画像121が既にパッチ画像P1に分割されている場合には、本分割処理は省略されてよい。
【0130】
そして、ステップS102において、制御部11は、上記機械学習の処理により、パッチ画像P1毎に学習済みの生成モデル5を構築する。すなわち、本実施形態では、制御部11は、第1学習画像121の対応するパッチ画像P1を与えると、与えられたパッチ画像P1を特徴量に変換し、変換により得られた特徴量から対応するパッチ画像P1に適合する画像を復元するように訓練された生成モデル5をパッチ画像P1毎に構築する。これにより、学習済みの生成モデル5が、パッチ画像P1毎に与えられる。
【0131】
ただし、複数のパッチ画像に各画像が分割される場合に、ニューラルネットワークが必ずしもパッチ画像毎に用意されなければならない訳ではない。例えば、パッチ画像のクラスを入力するニューロンをニューラルネットワークの入力層に加えることで、異なるパッチ画像に対応する画像を復元するニューラルネットワークを構成することができる。そのため、複数のパッチ画像のうちの少なくとも2つ以上のパッチ画像で、共通のニューラルネットワークが生成モデルとして利用されてよい。
【0132】
生成モデル5を構成するニューラルネットワークの種類は、このような多層構造の全結合型ニューラルネットワークに限定されなくてもよい。生成モデル5には、畳み込み層及びプーリング層を備える畳み込みニューラルネットワークが用いられてもよい。また、生成モデル5には、自己符号化器又はこれに類似する構造を有するニューラルネットワークが用いられてよい。
【0133】
(ステップS103)
ステップS103では、制御部11は、第2取得部112として動作し、それぞれ製品Rの写る複数の追加用画像123を取得する。
【0134】
本実施の形態において、各追加用画像123には、上記第1学習画像121と同様に、基本的には、欠陥の存在しない製品R(良品)の写る画像が利用される。各追加用画像123は、上記第1学習画像121と同様に生成されてよい。また、上記処理により生成された画像であって、欠陥の存在しない製品Rの写る画像の一部が上記第1学習画像121として利用されてよく、その他が追加用画像123として利用されてよい。例えば、制御部11は、欠陥の存在しない製品Rの写る複数の画像を取得してもよい。そして、上記ステップS101では、取得された複数の画像の一部を第1学習画像121として取得し、本ステップS103では、取得された複数の画像の残りを追加用画像123として取得してもよい。
【0135】
また、第1学習画像121と同様に、追加用画像123の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記一連の処理を実行することで、複数の追加用画像123を取得してもよい。或いは、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の追加用画像123を取得してもよい。複数の追加用画像123のうちの一部が学習装置1により生成され、残りが他のコンピュータにより生成されてもよい。
【0136】
取得する追加用画像123の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。複数の追加用画像123を取得すると、制御部11は、次のステップS104に処理を進める。
【0137】
(ステップS104)
ステップS104では、制御部11は、第3取得部117として動作し、欠陥Lを含む製品Rがそれぞれ写る複数の評価画像127を取得する。
【0138】
各評価画像127を生成する方法は、欠陥Lを含む製品Rを用意する点を除き、上記各画像(121、123)を生成する方法であってよい。すなわち、カメラCAと同種のカメラ及び欠陥Lを含む製品Rを用意し、製品Rの検査を行う環境に応じた様々な条件で、用意したカメラにより製品Rを撮影する。これにより、欠陥Lを含む製品Rの写る各評価画像127を生成することができる。或いは、欠陥Lは画像処理により追加されてもよい。すなわち、欠陥のない製品Rの写る画像に画像処理により欠陥Lを追加することで、各評価画像127を生成してもよい。この場合、欠陥のない製品Rの写る画像は、各画像(121、123)から選択されてもよい。
【0139】
各評価画像127は、各画像(121、123)と同様に、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各評価画像127の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記一連の処理を実行することで、複数の評価画像127を取得してもよい。或いは、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の評価画像127を取得してもよい。複数の評価画像127のうちの一部が学習装置1により生成され、残りが他のコンピュータにより生成されてもよい。
【0140】
取得する評価画像127の件数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。複数の評価画像127を取得すると、制御部11は、次のステップS105に処理を進める。
【0141】
(ステップS105及びステップS106)
ステップS105では、制御部11は、生成部113として動作し、取得された複数の追加用画像123それぞれを、ステップS102により訓練された生成モデル5に与えることで、複数の追加用画像123それぞれを復元した複数の復元追加用画像124それぞれを生成する。ステップS106では、制御部11は、生成部113として動作し、取得された複数の評価画像127それぞれを、ステップS102により訓練された生成モデル5に与えることで、複数の評価画像127それぞれを復元した複数の復元評価画像128それぞれを生成する。
【0142】
具体的には、制御部11は、ステップS102の機械学習の結果を参照し、学習済みの生成モデル5を用意する。ステップS105では、制御部11は、各追加用画像123を学習済みの生成モデル5に入力する。これにより、制御部11は、各追加用画像123を復元した各復元追加用画像124を生成する。同様に、ステップS106では、制御部11は、各評価画像127を学習済みの生成モデル5に入力する。これにより、制御部11は、各評価画像127を復元した各復元評価画像128を生成する。
【0143】
なお、本実施形態では、生成モデル5は、パッチ画像毎に用意される。これに応じて、本実施形態では、制御部11は、各追加用画像123を複数のパッチ画像P2に分割する。また、制御部11は、各評価画像127を複数のパッチ画像P3に分割する。画像の分割方法は、第1学習画像121と同様である。各画像(123、127)が既にパッチ画像(P2、P3)に分割されている場合、これらの分割処理は省略されてよい。
【0144】
ステップS105では、制御部11は、パッチ画像P2毎に、対応する生成モデル5を利用して、各追加用画像123に対応する各復元追加用画像124を生成する。すなわち、制御部11は、各追加用画像123の各パッチ画像P2を対応する生成モデル5に与えることで、各復元追加用画像124の各パッチ画像を生成する。同様に、ステップS106では、制御部11は、パッチ画像P3毎に、対応する生成モデル5を利用して、各評価画像127に対応する各復元評価画像128を生成する。すなわち、制御部11は、各評価画像127の各パッチ画像P3を対応する生成モデル5に与えることで、各復元評価画像128の各パッチ画像を生成する。各復元追加用画像124及び各復元評価画像128を生成すると、制御部11は、次のステップS107に処理を進める。
【0145】
(ステップS107及びステップS108)
ステップS107では、制御部11は、評価部114として動作し、各追加用画像123と各復元追加用画像124との差分の程度に基づいて、各追加用画像123に欠陥Lが写っているか否かを判定する。ステップS108では、制御部11は、評価部114として動作し、各評価画像127と各復元評価画像128との差分の程度に基づいて、各評価画像127に欠陥Lが写っているか否かを判定する。
【0146】
差分の程度に応じて欠陥Lの有無を検出する方法は、実施の形態に応じて適宜設定されてよい。本実施形態では、ステップS107において、制御部11は、各追加用画像123と各復元追加用画像124との差分を算出することで、各差分画像182を生成する。制御部11は、各差分画像182を利用して、各追加用画像123に欠陥Lが写っているか否かを判定する。同様に、制御部11は、各評価画像127と各復元評価画像128との差分を算出することで、各差分画像183を生成する。制御部11は、各差分画像183を利用して、各評価画像127に欠陥Lが写っているか否かを判定する。
【0147】
更に、本実施形態では、各画像(123、127)に欠陥Lが写っているか否かを判定するための複数の検出パラメータ候補60が与えられる。各検出パラメータ候補60は、検出パラメータの候補の値を示す。各検出パラメータ候補60の値は適宜与えられてよい。例えば、各検出パラメータ候補60の値は、オペレータの入力により取得されてよい。また、例えば、各検出パラメータ候補60の値は、プログラム内で予め与えられてもよい。検出パラメータは、各差分画像(182、183)から欠陥Lの有無を検出するアルゴリズムに応じて適宜設定されてよい。
【0148】
ここで、
図10を更に用いて、欠陥Lを検出する処理の一例と共に、検出パラメータの一例を説明する。
図10は、欠陥Lを検出する処理過程の一例を模式的に例示する図である。まず、第1のステップでは、制御部11は、製品Rの写る画像I10を生成モデル5に与えて、復元画像I11を生成する。画像I10は、上記各画像(123、127)に対応し、復元画像I11は、上記各復元画像(124、128)に対応する。詳細には、画像I10は、各画像(123、127)の各パッチ画像(P2、P3)に対応し、復元画像I11は、上記各復元画像(124、128)の各パッチ画像に相当する。当該生成処理は、上記ステップS105及びS106それぞれの処理に対応する。
【0149】
次に、第2のステップでは、制御部11は、画像I10と復元画像I11との差分を算出することで、差分画像I12を生成する。差分画像I12は、上記各差分画像(182、183)に対応する。詳細には、差分画像I12は、上記各差分画像(182、183)の各パッチ画像に対応する。画像I10と復元画像I11との間で差異が生じている画素ほど差分画像I12においてその画素値が大きくなる。一方、画像I10と復元画像I11との間で差異のない画素ほど差分画像I12における画素値は小さくなる。本実施形態では、説明の便宜のため、画像I10と復元画像I11との間の差異が大きい画素ほど差分画像I12内の対応画素の実際の画素値も大きくなり、差異が小さい画素ほど差分画像I12内の対応画素の実際の画素値も小さくなると仮定する。ただし、この「画素値が大きい」及び「画素値が小さい」はそれぞれ、画像I10と復元画像I11との間の差異との関係を示しており、差分画像I12内の画素の実際の画素値と対応していなくてもよい。例えば、差分画像I12は、差異の大きい画素ほど対応する画素の実際の画素値が小さくなり、差異の小さい画素ほど対応する画素の実際の画素値が大きくなるように算出されてよい。
【0150】
図10の例では、画像I10と復元画像I11との間で差異が生じている画素ほど差分画像I12において白色になっており、そうではない画素ほど黒色になっている。例えば、各画素の値が256階調で表現される場合、差分画像I12の画素の画素値の最大値が「255」であってよく、最小値が「0」であってよい。この場合、差分画像I12の画素の画素値が大きいほど、画像I10と復元画像I11との間で差異が生じていることを示し、差分画像I12の画素の画素値が小さいほど、画像I10と復元画像I11との間で差異が生じていないことを示す。ただし、画像I10と復元画像I11との間で生じる差異と差分画像I12の画素値との間の関係は、このような例に限定されなくてよい。例えば、画像I10及び復元画像I11の間の差異の程度と差分画像I12の画素値との関係は、この反対であってもよい。
【0151】
生成モデル5の機械学習に使用された学習画像に写っていない又は写る可能性の低い特徴(本実施形態では、欠陥L)が画像I10に写っている場合、復元画像I11においてその特徴の再現性が低いため、画像I10と復元画像I11との間で比較的に大きな差異が生じ得る。ただし、画像I10と復元画像I11との間に生じる差異の原因は、このような欠陥Lが画像I10に写っていることに限られない。画像I10と復元画像I11との間で比較的に大きな差異を生じさせるその他の原因として、例えば、与えられた入力画像に写る所定の特徴(本実施形態では、製品R)の様子が、機械学習に使用した学習画像に写る所定の特徴の様子と異なっていることが挙げられる。この場合、画像I10に写る製品Rの様子が復元画像I11では完全には再現されず、画像I10と復元画像I11との間で比較的に大きな差異を生じさせる可能性がある。
【0152】
また、例えば、生成モデル5は、入力画像を低次元の特徴量に圧縮する。このときに、入力画像の情報が部分的に損失し得る。そのため、入力画像と復元画像との間で多少の誤差が生じ得る。この復元のノイズが、画像I10と復元画像I11との間に生じる差異の原因の一例となり得る。したがって、差分画像I12には、欠陥Lに起因する差異以外に、複数の要因に基づく差異が現れ得る。しかしながら、このノイズに起因する差異は、上記2つの要因に基づく差異よりも程度が低い。そのため、差分画像I12の画素値に基づいて、これらの差異を区別することができる。
【0153】
そこで、第3のステップでは、制御部11は、閾値65を利用して、差分画像I12の各画素を二値化する。例えば、制御部11は、画素値が閾値65以上である画素の画素値を「255」に変換し、画素値が閾値65未満である画素の画素値を「0」に変換する。「以上」は、「超える」に置き換えられ、「未満」は、「以下」に置き換えられてよい。以下の説明においても同様である。これにより、制御部11は、二値化画像I13を生成することができる。閾値65を適切に設定することで、上記ノイズに起因する差異等の比較的に程度の低い差異が元の差分画像I12から除外された二値化画像I13を得ることができる。
【0154】
二値化画像I13には、主に、欠陥Lに起因する差異、及び学習不足に起因する差異が現れ得る。これらの差異を生じさせる原因のうち、欠陥Lは、面積、幅、高さ、周囲の長さ、縦横比、円形度等の形状に関する属性を有し得る。つまり、画像I10に写る製品Rに欠陥Lが存在する場合、二値化画像I13の対応する位置に、白色「255」の画素(以下、白色画素とも記載する)の集まった領域であって、欠陥Lと同等の形状に関する属性を有する領域が現れる。そこで、形状に関する属性に対して閾値66を設定することで、二値化画像I13内に欠陥Lが写っているか否かを判定することができる。
【0155】
処理の一例として、第4のステップでは、制御部11は、二値化画像I13内の連続する白色画素の領域を一つの領域と認定し、白色画素の各領域が閾値66を満たしているか否かを判定する。そして、制御部11は、閾値66を満たしている領域をそのままにし、閾値66を満たしていない領域内の画素の画素値を「0」に変換する。例えば、閾値66が面積に対して設定される場合、制御部11は、白色画素の各領域の面積が閾値66以上であるか否かを判定する。そして、制御部11は、面積が閾値66未満である領域内の画素の画素値を「0」に変換する。これにより、制御部11は、検出画像I14を生成することができる。閾値66を適切に設定することで、欠陥Lの属性を満たさない白色領域が二値化画像I13から除外された検出画像I14を得ることができる。
【0156】
第5のステップでは、制御部11は、検出画像I14に白色画素の領域が存在するか否かに応じて、画像I10に欠陥Lが写っているか否かを判定する。具体的に、検出画像I14において白色画素の領域が存在する場合、制御部11は、画像I10の対応する領域に欠陥Lが写っていると判定する。一方、検出画像I14において白色画素の領域が存在しない場合、制御部11は、画像I10に欠陥Lが写っていないと判定する。これにより、制御部11は、欠陥Lの検出に関する処理を終了する。
【0157】
以上の欠陥Lの検出に関する処理手順において、各閾値(65、66)が、検出パラメータの一例である。すなわち、本実施形態では、各検出パラメータ候補60は、各閾値(65、66)の組み合わせにより構成される。ただし、欠陥Lを検出する方法及び検出パラメータはそれぞれ、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ステップS107では、制御部11は、各検出パラメータ候補60を利用して、欠陥Lの検出に関する上記第1~第5のステップの処理を実行することで、各追加用画像123に欠陥Lが写っているか否かを判定する。同様に、ステップS108では、制御部11は、各検出パラメータ候補60を利用して、欠陥Lの検出に関する上記第1~第5のステップの処理を実行することで、各評価画像127に欠陥Lが写っているか否かを判定する。
【0158】
なお、本実施形態では、各画像(123、127)は、複数のパッチ画像(P2、P3)に分割されている。これに応じて、本実施形態に係るステップS107では、制御部11は、パッチ画像P2毎に、各追加用画像123と各復元追加用画像124との差分の程度に基づいて、各追加用画像123に欠陥Lが写っているか否かを判定する。同様に、本実施形態に係るステップS108では、制御部11は、パッチ画像P3毎に、各評価画像127と各復元評価画像128との差分の程度に基づいて、各評価画像127に欠陥Lが写っているか否かを判定する。各判定の処理が完了すると、制御部11は、次のステップS109に処理を進める。
【0159】
(ステップS109)
ステップS109では、制御部11は、評価部114として動作する。制御部11は、各ステップ(S107、S108)の判定結果に基づいて、欠陥Lが画像に写っているか否かを判定するための検出パラメータの最適化を実行する。具体的には、制御部11は、各ステップ(S107、S108)の判定結果に基づいて、複数の検出パラメータ候補60のうち、欠陥Lが写っていると判定された追加用画像123及び欠陥Lが写っていないと判定された評価画像127の数が最も少ない1つの検出パラメータ候補61を特定する。
【0160】
欠陥Lが写っていると判定された追加用画像123の数は、欠陥Lを含まない製品Rが写っているにも関わらず、欠陥Lを含む製品Rが写っていると誤判定された画像の数に相当する。欠陥Lが写っていないと判定された評価画像127の数は、欠陥Lを含む製品Rが写っているにも関わらず、欠陥Lを含まない製品Rが写っていると誤判定された画像の数に相当する。上記欠陥Lの検出に関する処理において、各閾値(65、66)の値を変更すると、検出画像I14に現れる白色画像の領域が変化し得る。つまり、検出パラメータの値を変更すると、誤判定される各画像(123、127)の数が変化し得る。本ステップS109により、誤判定の最も少ない1つの検出パラメータ候補61を特定することは、欠陥Lの検出に利用する検出パラメータを最適化することに相当する。
【0161】
ここで、
図11を更に用いて、最適な検出パラメータ候補61を特定する処理の一例について説明する。
図11は、ステップS107及びS108の仮想的な判定結果の一例を示す図である。
図11の例では、判定結果はテーブル形式で表現され、テーブル内の1つのレコードは、1つの検出パラメータ候補60による判定結果に対応している。ただし、判定結果のデータ形式は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
【0162】
図11に例示される各レコードは、検出パラメータ及び判定結果それぞれに関するフィールドを有する。「番号」は、各検出パラメータ候補60の識別子を示す。「2値化閾値」は、二値化の基準となる閾値65の値を示す。「面積閾値」は、欠陥Lの有無を判定する基準となる閾値66の一例の値を示す。「評価画像誤り件数」は、ステップS108において欠陥Lが写っていないと判定された評価画像127の件数を示す。「追加用画像誤り件数」は、ステップS107において欠陥Lが写っていると判定された追加用画像123の件数を示す。「各追加用画像の判定結果」は、各追加用画像123の個別の判定結果を示す。「NG」は、欠陥Lが写っていると判定されたことを示す。「OK」は、欠陥Lが写っていないと判定されたことを示す。「各追加用画像の評価値」は、後述するステップS112で算出される各追加用画像123の評価値125を示す。評価値125の算出については後述する。
【0163】
制御部11は、各検出パラメータ候補60による判定結果に基づいて、最適な検出パラメータ候補61を特定する。
図11に例示されるとおり、番号「0」及び「1」の2つの検出パラメータ候補60が与えられ、各レコードに示される判定結果が得られた場合、制御部11は、誤り件数の最も少ない番号「1」の検出パラメータ候補60を最適な検出パラメータ候補61として特定する。
【0164】
なお、本実施形態では、各画像(123、127)は、複数のパッチ画像(P2、P3)に分割されている。また、評価画像127の各パッチ画像P3は、追加用画像123のパッチ画像P2に対応している。これに応じて、本実施形態に係るステップS109では、制御部11は、パッチ画像P2(対応するパッチ画像P3)毎に、各判定結果に基づいて、複数の検出パラメータ候補60から最適な検出パラメータ候補61を特定する。最適な検出パラメータ候補61を特定すると、制御部11は、次のステップS110に進める。
【0165】
(ステップS110及びステップS111)
ステップS110では、制御部11は、評価部114として動作し、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の追加用画像123の数が第1の閾値以上であるか否かを判定する。さらに、制御部11は、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の評価画像127の数が第2の閾値以上であるか否かを判定する。
【0166】
第1の閾値及び第2の閾値はそれぞれ、適宜決定されてよい。例えば、第1の閾値及び第2の閾値はそれぞれ、オペレータの入力により指定されてもよい。また、例えば、第1の閾値及び第2の閾値はそれぞれ、プログラム内の設定値として与えられてもよい。第1の閾値及び第2の閾値は、別々に異なる値に設定されてもよいし、同じ値に設定されてもよい。
【0167】
なお、ステップS110では、制御部11は、特定された1つの検出パラメータ候補61を利用した判定の結果において、複数の追加用画像123のうち誤判定の追加用画像123の割合が第1の閾値以上であるか否かを判定してもよい。同様に、制御部11は、特定された1つの検出パラメータ候補61を利用した判定の結果において、複数の評価画像127のうち誤判定の評価画像127の割合が第2の閾値以上であるか否かを判定してもよい。
【0168】
ステップS111では、制御部11は、ステップS110の判定結果に基づいて、処理の分岐先を決定する。本実施形態では、誤判定の追加用画像123の数又は割合が第1の閾値以上である、又は誤判定の評価画像127の数又は割合が第2の閾値以上である場合に、制御部11は、ステップS112に処理を進める。他方、そうではない場合に、制御部11は、ステップS117に処理を進める。ただし、分岐の基準は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、誤判定の追加用画像123の数又は割合が第1の閾値以上であること、及び誤判定の評価画像127の数又は割合が第2の閾値以上であることの少なくとも一方を満たす場合に、制御部11は、ステップS112に処理を進めてもよい。そうではない場合に、制御部11は、ステップS117に処理を進めてもよい。また、例えば、誤判定の追加用画像123の数又は割合が第1の閾値以上であるか否かの判定、及び誤判定の評価画像127の数又は割合が第2の閾値以上であるか否かの判定のうちのいずれか一方が省略されてもよい。
【0169】
なお、本実施形態では、各画像(123、127)は、複数のパッチ画像(P2、P3)に分割されている。これに応じて、本実施形態では、誤判定の追加用画像123の数又は割合が第1の閾値以上であるパッチ画像P2が存在する、又は誤判定の評価画像127の数又は割合が第2の閾値以上である対応のパッチ画像P3が存在する場合に、制御部11は、ステップS112に処理を進める。他方、そのような各パッチ画像(P2、P3)が存在しない場合に、制御部11は、ステップS117に処理を進める。
【0170】
(ステップS112)
ステップS112では、制御部11は、各追加用画像123及び生成された各復元追加用画像124の間の差分に応じて、各追加用画像123の評価値125であって、各復元追加用画像124における各追加用画像123の復元の程度に対する評価値125を算出する。本実施形態では、制御部11は、各差分画像182を利用して、各追加用画像123の評価値125を算出する。
【0171】
ここで、
図12を更に利用して、各追加用画像123の評価値125を算出する方法の一例について説明する。
図12は、評価値125を算出する処理過程の一例を模式的に例示する図である。本実施形態では、制御部11は、上記ステップS107において、各差分画像182を生成している。各差分画像182内の画素値の大きい画素は、各追加用画像123と各復元追加用画像124との間で差異の大きい画素に対応する。各差分画像182内の画素値の小さい画素は、各追加用画像123と各復元追加用画像124との間で差異の小さい画素に対応する。制御部11は、各画素の画素値に表れる当該差異の程度に基づいて、復元の程度に対する評価を示す評価値125を算出する。
【0172】
本実施形態では、この観点に基づく算出方法の一例として、制御部11は、各画素の画素値が大きいほど評価値125が高くなり、かつ、基準画素値以上の画素の評価値125に与える寄与度が基準画素値未満の画素の評価値125に与える寄与度よりも大きくなるように、評価値125を算出する。具体的には、制御部11は、
図12に示されるように、差分画像182を構成する画像について、画素値に関する度数分布(濃度ヒストグラム)を作成する。
図12の例では、各差分画像182の画素値は256階調で表現されていると仮定している。
図12に例示される濃度ヒストグラムの「度数」は、同一の画素値の画素数を示す。続いて、制御部11は、作成した濃度ヒストグラムにおいて、上位所定割合を占める画素値の最小値を基準画素値として決定する。そして、制御部11は、各差分画像182内の画素から、基準画素値以上の画素(つまり、上位所定割合の画素)を抽出する。所定割合は、オペレータの入力、プログラム内の設定値等により指定されてよい。そして、制御部11は、抽出された画素の画素値の平均値又は合計値を評価値125として算出する。なお、制御部11は、濃度ヒストグラムにおける基準画素値以上の頻度を用いて、当該平均値又は合計値を算出してもよい。これにより、本実施形態では、算出された評価値125が大きいほど、追加用画像123と復元追加用画像124との間の差分が大きい、換言すると、復元追加用画像124における追加用画像123の復元の程度が低いことを示す。
【0173】
ただし、評価値125を算出する方法は、このような例に限定されなくてもよい。各追加用画像123及び各復元追加用画像124の差分と評価値125との間の関係は、評価値125が、当該差分が大きいことに応じて復元の程度が低いことを示し、かつ当該差分が小さいことに応じて復元の程度が高いことを示すように、適宜決定されてよい。例えば、上記算出方法とは反対に、評価値125は、復元の程度が低いほど小さく、復元の程度が高いほど大きくなるように算出されてよい。当該算出方法の一例として、制御部11は、上記の処理により抽出された画素の画素値の平均値又は合計値の逆数を評価値125として算出してもよい。
【0174】
なお、本実施形態では、制御部11は、ステップS107において、各追加用画像123と各復元追加用画像124との差分に基づいて、各追加用画像123に欠陥Lが写っているか否かを判定している。欠陥Lが写っていると判定されることは、追加用画像123と復元追加用画像124との間の差分が大きい、換言すると、復元追加用画像124における追加用画像123の復元の程度が低いことを示す。反対に、欠陥Lが写っていないと判定されることは、追加用画像123と復元追加用画像124との間の差分が小さい、換言すると、復元追加用画像124における追加用画像123の復元の程度が高いことを示す。
【0175】
そこで、本実施形態では、制御部11は、複数の追加用画像123のうち、欠陥Lが写っていると判定された少なくとも1又は複数の追加用画像123について、評価値125を算出する。これに対して、欠陥Lが写っていないと判定された追加用画像123の評価値125の算出は任意であってよい。すなわち、
図11に示されるとおり、制御部11は、欠陥Lが写っていないと判定された追加用画像123についても、評価値125を算出してもよい。或いは、制御部11は、欠陥Lが写っていないと判定された追加用画像123についての評価値125の算出を省略してもよい。欠陥Lが写っているか否かに問わず、各追加用画像123の評価値125を算出する場合、制御部11は、上記ステップS107の処理よりも前に、本ステップS112の処理を実行してもよい。本ステップS112の処理は、ステップS105の処理を実行した後の任意のタイミングで実行されてよい。
【0176】
また、本実施形態では、各追加用画像123は、複数のパッチ画像P2に分割されている。これに応じて、本実施形態では、制御部11は、誤判定の追加用画像123の数又は割合が第1の閾値以上である、又は誤判定の評価画像127の数又は割合が第2の閾値以上であるパッチ画像P2毎に、各追加用画像123の評価値125を算出する。各追加用画像123の評価値125を算出すると、制御部11は、次のステップS113に処理を進める。
【0177】
(ステップS113)
ステップS113では、制御部11は、抽出部115として動作し、算出された評価値125に基づいて、復元の程度が低いと評価される1つ以上の追加用画像126を複数の追加用画像123から抽出する。
【0178】
復元の程度が低いと評価するための基準は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。本実施形態では、ステップS112により算出された評価値125が大きいほど、復元追加用画像124における追加用画像123の復元の程度が低いことを示す。そこで、例えば、制御部11は、最も評価値125の大きい(すなわち、復元の程度に対する評価の最も低い)追加用画像123を追加用画像126として抽出してもよい。また、例えば、制御部11は、評価値125の高い方(すなわち、評価の低い方)から順に所定数の追加用画像123を追加用画像126として抽出してもよい。所定数は、オペレータの入力、プログラム内の設定値等により適宜決定されてよい。また、例えば、評価値125が閾値よりも大きい(すなわち、閾値よりも評価の低い)追加用画像123を追加用画像126として抽出してもよい。判定の基準となる閾値は、オペレータの入力、プログラム内の設定値等により適宜決定されてよい。
【0179】
なお、本実施形態では、制御部11は、ステップS107において、各追加用画像123と各復元追加用画像124との差分に基づいて、各追加用画像123に欠陥Lが写っているか否かを判定している。これに応じて、本実施形態では、制御部11は、本ステップS113において、算出された評価値125に基づいて、欠陥Lが写っていると判定された1又は複数の追加用画像123から、復元の程度が低いと評価される1つ以上の追加用画像126を抽出する。
【0180】
また、本実施形態では、各追加用画像123は、複数のパッチ画像P2に分割されている。これに応じて、本実施形態では、制御部11は、パッチ画像P2毎に、算出された評価値125に基づいて、1つ以上の追加用画像126を複数の追加用画像123から抽出する。1つ以上の追加用画像126を抽出すると、制御部11は、次のステップS114に処理を進める。
【0181】
(ステップS114及びステップS115)
ステップS114では、制御部11は、表示制御部118として動作し、抽出された1つ以上の追加用画像126それぞれを表示装置15に表示させる。表示装置15は、本発明の「表示装置」の一例である。ステップS115では、制御部11は、選択受付部119として動作し、表示装置15に表示された1つ以上の追加用画像126それぞれについて、当該1つ以上の追加用画像126それぞれを、後述するステップS116の機械学習に使用するか否かの選択を受け付ける。
【0182】
ここで、
図13及び
図14を更に用いて、抽出された追加用画像126の表示画面の一例について説明する。
図13及び
図14は、本実施形態に係る表示画面の一例を模式的に例示する図である。本実施形態に係る表示画面の一例は、3つの領域400~402を有している。領域400には、抽出された追加用画像126を含む各追加用画像123が表示される。領域401には、抽出された追加用画像126を含む複数の追加用画像123及び各追加用画像123の評価値125がリスト表示される。領域402には、後述するステップS116の機械学習に使用される学習画像がリスト表示される。ステップS115の処理による選択を受け付ける前には、領域402のリストには、ステップS102で使用された第1学習画像121の他、抽出された追加用画像126が含まれている。
【0183】
本実施形態では、生成モデル5は、機械学習により、欠陥Lの有無に関わらず、欠陥Lを含まない製品Rの画像を復元する能力を獲得する。これにより、学習済みの生成モデル5は、欠陥Lの検出に利用される。そのため、機械学習の使用に追加される追加用画像123には、欠陥Lが写っていないのが好ましい。しかしながら、例えば、人為的なミス等により、ステップS103では、生成モデル5に再現させることを所望しない欠陥Lの写る画像が追加用画像123として取得される可能性がある。追加用画像123に表れる欠陥Lのない製品Rの様子を再現する生成モデル5の能力が不十分である場合と同様に、追加用画像123に欠陥Lが写っている場合にも、評価値125により示される復元の程度に対する評価が低くなり得る。そのため、欠陥Lの写る画像が追加用画像123として取得された場合に、当該欠陥Lの写る追加用画像123がステップS113の処理により追加用画像126として抽出される可能性がある。
【0184】
この点に関して、本実施形態では、制御部11は、ステップS114において、抽出された追加用画像126を領域400に表示する。これにより、オペレータは、領域400に表示される追加用画像126に写る製品Rの様子を目視により確認することができる。そして、オペレータは、欠陥Lが写っている等の理由により、機械学習に使用しないことを所望する追加用画像126を領域402のリストから削除することで、対象の追加用画像126について機械学習に使用しないことを選択することができる。すなわち、本実施形態では、制御部11は、ステップS115において、領域402のリスト表示を介して、抽出された1つ以上の追加用画像126それぞれについて、当該1つ以上の追加用画像126それぞれを機械学習に使用するか否かの選択を受け付ける。
【0185】
また、本実施形態に係る表示画面の一例は、2つの操作ボタン(405、406)を有している。操作ボタン405は、領域401に表示される追加用画像123のリストから、領域402に表示される使用する学習画像のリストに追加する追加用画像123を追加するために利用される。オペレータは、領域401に表示されるリストから所望の追加用画像123を選択し、操作ボタン405を操作することで、所望の追加用画像123を領域402のリストに追加することができる。操作ボタン406は、領域402のリストに表示される画像を使用して、生成モデル5の機械学習を実施するために利用される。制御部11は、操作ボタン406の操作に応じて、ステップS116に処理を進める。ただし、抽出された追加用画像126を表示し、かつ抽出された追加用画像126を機械学習に使用するか否かの選択を受け付けるための表示画面は、このような例に限定されなくてもよく、実施の形態に応じて適宜設計されてよい。
【0186】
なお、本実施形態では、各追加用画像126(123)は、複数のパッチ画像P2に分割されている。これに応じて、本実施形態では、
図13に示されるとおり、制御部11は、領域400に表示される追加用画像126(123)において、各パッチ画像P2の境界にグリッド線G1を更に表示させてもよい。これにより、各追加用画像126(123)におけるパッチ分割の視認性を高めることができる。加えて、
図14に示されるとおり、制御部11は、評価値125に基づいて追加用画像126として抽出された対応のパッチ画像P2を示す印G5を更に表示させてもよい。これにより、復元の程度の低いと評価されたパッチ画像P2の視認性を高めることができる。
【0187】
(ステップS116)
ステップS116では、制御部11は、追加学習部116として動作する。制御部11は、抽出された1つ以上の追加用画像126のうち、機械学習に使用すると選択された画像を第2学習画像126Aとして決定する。制御部11は、機械学習により、決定された1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように生成モデル5を更に訓練する。
【0188】
本実施形態では、制御部11は、第1学習画像121及び第2学習画像126Aを使用して、上記ステップS102と同様に、ニューラルネットワークの演算パラメータMを導出する。これにより、制御部11は、第1学習画像121及び第2学習画像126Aそれぞれが与えられると、与えられた第1学習画像121及び第2学習画像126Aそれぞれに適合する復元画像を生成するように訓練された学習済みの生成モデル5を構築することができる。
【0189】
なお、本実施形態では、追加用画像126(123)は、第1学習画像121のパッチ分割に対応して、複数のパッチ画像P2に分割されている。これに応じて、本実施形態では、制御部11は、パッチ画像P2毎に、機械学習により、決定された1つ以上の第2学習画像126Aそれぞれが与えられると、与えられた1つ以上の第2学習画像126Aそれぞれに適合する復元画像を生成するように生成モデル5を更に訓練する。すなわち、第1学習画像121のパッチ画像P1毎に構築された学習済みの生成モデル5は、第2学習画像126Aの対応するパッチ画像P2が与えられると、与えられたパッチ画像P2に適合する復元画像を生成するように更に訓練される。これにより、制御部11は、各画像(121、123、126)の対応するパッチ画像(P1、P2)毎に、学習済みの生成モデル5を構築する。
【0190】
上述したように、本実施形態では、制御部11は、
図13及び
図14に例示される表示画面の一例における領域402のリスト表示を介して、抽出された1つ以上の追加用画像126それぞれについて、当該1つ以上の追加用画像126それぞれを機械学習に使用するか否かの選択を受け付ける。これに応じて、本実施形態では、制御部11は、機械学習に使用しないと選択された追加用画像126を本ステップS116による訓練の対象から除外する。より詳細には、本実施形態では、制御部11は、操作ボタン406が操作された時点において、領域402のリストに含まれる画像を使用して、生成モデル5の機械学習を実施する。
【0191】
生成モデル5の更なる訓練が完了すると、制御部11は、ステップS116により得られた訓練済みの生成モデル5を利用して、ステップS105から処理を繰り返す。ステップS105~ステップS116の処理を繰り返すことで、製品Rの写る画像を再現する生成モデル5の能力の適切な向上に貢献する可能性の高い追加用画像126を複数の追加用画像123から抽出することができる。そして、抽出された追加用画像126に含まれる1つ以上の第2学習画像126Aを生成モデル5の更なる機械学習に使用して、製品Rの写る画像を再現する生成モデル5の能力の適切な向上を図ることができる。
【0192】
なお、ステップS105~ステップS116の処理を複数回繰り返す場合、ステップS110の処理を繰り返す度に、第1の閾値及び第2の閾値の値は適宜変更されてもよい。また、ステップS112~ステップS116の処理を実行する前後の生成モデル5の性能を比較した場合に、これらの処理を実行した後に、ステップS107及びステップS108において誤判定される各画像(123、127)の数が増加したと想定する。この場合、制御部11は、誤判定される各画像(123、127)の数の増加に関連したステップS112~ステップS116の処理結果を破棄し、ステップS117に処理を進めてもよい。これにより、制御部11は、直前に構築された学習済みの生成モデル5を最終的な学習結果として採用してもよい。
【0193】
(ステップS117)
ステップS117では、制御部11は、保存処理部1110として動作し、最終的に構築された学習済みの生成モデル5に関する情報を学習結果データ129として生成する。本実施形態では、最終的な機械学習に使用される学習画像は、ステップS111の条件分岐、ステップS113の処理、及びステップS115の処理それぞれの結果に応じて、第1学習画像121及び追加用画像123(126)から決定される。なお、本実施形態では、学習画像のパッチ画像毎に学習済みの生成モデル5が構築される。そのため、制御部11は、学習画像のパッチ画像毎に構築された学習済みの生成モデル5に関する情報を学習結果データ129として生成する。
【0194】
学習結果データ129には、生成モデル5を構成する演算パラメータMの値を再現可能な情報が含まれる。本実施形態では、生成モデル5は、ニューラルネットワークにより構成される。そのため、例えば、学習結果データ129には、最終的に構築された学習済みのニューラルネットワーク(生成モデル5)の演算パラメータMの値を再現可能な情報が含まれる。また、例えば、学習結果データ129には、学習画像のパッチ画像毎に導出された演算パラメータMが含まれてもよい。制御部11は、生成された学習結果データ129を所定の記憶領域に保存する。
【0195】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ129を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。学習結果データ129を保存すると、制御部11は、本動作例に係る一連の処理を終了する。
【0196】
なお、学習装置1により生成された学習結果データ129は、任意のタイミングで検出装置2に提供されてよい。例えば、制御部11は、上記ステップS117の処理として又は上記ステップS117とは別に、学習結果データ129を検出装置2に転送してもよい。検出装置2は、この転送を受け付けることで、学習結果データ129を取得してもよい。また、例えば、検出装置2は、通信インタフェース23を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ129を取得してもよい。また、例えば、検出装置2は、記憶媒体92を介して、学習結果データ129を取得してもよい。また、例えば、学習結果データ129は、検出装置2に予め組み込まれてもよい。
【0197】
[検出装置]
次に、
図15を用いて、検出装置2の動作例について説明する。
図15は、本実施形態に係る検出装置2の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、検出方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。検出方法には、上記学習方法及びモデル選択方法が含まれてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0198】
(ステップS301)
ステップS301では、制御部21は、取得部211として動作し、製品Rを観測することで得られた観測画像221を取得する。本実施形態では、検出装置2には、外部インタフェース27を介してカメラCAが接続されている。そのため、制御部21は、カメラCAから観測画像221を取得する。この観測画像221は、動画像であってもよいし、静止画像であってもよい。
【0199】
なお、観測画像221を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラCAは、検出装置2とは異なる他の情報処理装置に接続されていてもよい。この場合、制御部21は、他の情報処理装置を介して観測画像221を取得してもよい。観測画像221を取得すると、制御部21は、次のステップS302に処理を進める。
【0200】
(ステップS302)
ステップS302では、制御部21は、生成部212として動作し、学習結果データ129を参照して、学習済みの生成モデル5の設定を行う。そして、制御部21は、取得された観測画像221を学習済みの生成モデル5に入力し、学習済みの生成モデル5の演算処理を実行することで、観測画像221を復元した復元観測画像223を生成する。復元観測画像223は、学習済みの生成モデル5の出力、すなわち、学習済みの生成モデル5の演算結果として取得される。
【0201】
本ステップS302は、上記ステップS105及びステップS106と同様に処理されてよい。すなわち、本実施形態では、制御部21は、学習結果データ129を参照し、学習済みの生成モデル5を用意する。制御部21は、観測画像221を生成モデル5に入力する。これにより、制御部21は、復元観測画像223を生成する。
【0202】
なお、本実施形態では、学習画像のパッチ画像毎に学習済みの生成モデル5が構築される。これに応じて、本実施形態では、制御部21は、各学習画像(121、123)のパッチ分割と同様に、取得された観測画像221を複数のパッチ画像P4に分割してもよい。或いは、上記ステップS301において、制御部21は、複数のパッチ画像P4に分割された観測画像221を取得してもよい。本ステップS302では、制御部21は、学習結果データ129を参照することで、パッチ画像P4毎に、生成モデル5を設定する。そして、制御部21は、観測画像221の各パッチ画像P4を対応する生成モデル5に入力し、各生成モデル5の演算処理を実行する。これにより、制御部21は、観測画像221を復元した復元観測画像223をパッチ画像P4毎に生成する。換言すると、制御部21は、観測画像221の各パッチ画像P4に対応する復元観測画像223の各パッチ画像を生成する。復元観測画像223を生成すると、制御部21は、次のステップS303に処理を進める。
【0203】
(ステップS303)
ステップS303では、制御部21は、検出部213として動作し、生成された復元観測画像223及び観測画像221の間の差分に基づいて、製品Rと共に欠陥が観測画像221に写っているか否か(すなわち、観測画像221に写る製品Rに欠陥が存在するか否か)を検出する。
【0204】
本ステップS303は、上記ステップS107及びステップS108と同様に処理されてよい。すなわち、第1のステップでは、制御部21は、観測画像221と復元観測画像223との差分を算出することで、差分画像225を生成する。第2のステップでは、制御部21は、二値化の閾値を利用して、差分画像225の各画素を二値化する。第3のステップでは、制御部21は、得られた二値化画像内の連続する白色画素の領域を一つの領域と認定し、白色画素の各領域の形状に関する属性(例えば、面積、幅、高さ、周囲の長さ、縦横比、円形度等)が閾値を満たしているか否かを判定する。制御部21は、閾値を満たす領域をそのままにし、閾値を満たさない領域内の画素の画素値を「0」に変換する。これにより、制御部21は、欠陥の検出画像を生成することができる。第4のステップでは、制御部21は、検出画像に白色画素の領域が存在するか否かに応じて、観測画像221に写る製品Rに欠陥が存在するか否かを判定する。本実施形態では、これらの一連の処理により、制御部21は、観測画像221と復元観測画像223との間の差分に基づいて、観測画像221に写る製品Rに欠陥が存在するか否かを検出することができる。
【0205】
当該検出処理における各閾値の値は、実施の形態に応じて適宜決定されてよい。例えば、各閾値の値は、オペレータの入力により指定されてよい。また、例えば、各閾値の値は、プログラム内の設定値として与えられてもよい。また、例えば、各閾値には、上記ステップS109により特定された検出パラメータ候補61が利用されてよい。この場合、検出パラメータ候補61は、学習結果データ129と共に又は学習結果データ129とは異なるタイミングで、検出装置2に提供されてよい。検出パラメータ候補61を検出装置2に適用する方法は、学習結果データ129と同様であってよい。
【0206】
なお、本実施形態では、観測画像221は、複数のパッチ画像P4に分割される。これに応じて、本実施形態では、制御部21は、観測画像221のパッチ画像P4毎に、観測画像221の対象のパッチ画像P4と復元観測画像223の対応するパッチ画像との差分に基づいて、当該対象のパッチ画像P4に写る製品Rに欠陥が存在するか否かを検出してもよい。観測画像221に写る製品Rに欠陥が存在するか否かを検出すると、制御部21は、次のステップS304に処理を進める。
【0207】
(ステップS304)
ステップS304では、制御部21は、出力部214として動作し、欠陥の検出の結果、すなわち、製品Rの良否を判定した結果に関する情報を出力する。
【0208】
製品Rの良否を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部21は、製品Rの良否を判定した結果をそのまま表示装置25に出力してもよい。更に、ステップS303において、欠陥の存在が検出された場合、制御部21は、欠陥を発見したことを知らせるための警告を本ステップS304の出力処理として行ってもよい。このとき、制御部21は、欠陥を発見したことと共に、この欠陥の位置を通知してもよい。
【0209】
また、制御部21は、本ステップS304の出力処理として、製品Rの良否を判定した結果に応じた所定の制御処理を実行してもよい。具体例として、検出装置2は、製品Rの搬送を行う製造ラインに接続されていてもよい。この場合に、制御部21は、欠陥が存在すると判定された製品Rを、欠陥が存在しないと判定された製品Rとは異なる経路で搬送する指令を製造ラインに送信する処理を本ステップS304の出力処理として行ってもよい。
【0210】
製品Rの良否を判定した結果の出力処理が完了すると、制御部21は、本動作例に係る処理を終了する。なお、制御部21は、製造ライン上で搬送される製品RがカメラCAの撮影範囲に入る度に、上記ステップS301~S304の一連の処理を実行してもよい。これにより、検出装置2は、製造ライン上で搬送される製品Rの外観検査を継続的に行なうことができる。
【0211】
[特徴]
以上のとおり、本実施形態では、ステップS102において、第1学習画像121を使用した機械学習により、学習済みの生成モデル5が暫定的に構築される。そして、ステップS112及びステップS113の処理により、暫定的に構築された学習済みの生成モデル5が各追加用画像123に対して復元能力を発揮した結果に基づいて、当該復元能力の適切な向上に貢献する可能性の高い1つ以上の追加用画像126を複数の追加用画像123から自動的に抽出することができる。したがって、本実施形態によれば、学習画像を適切に選択できる。これに応じて、検出装置2では、上記一連の処理において、このように適切に選択された学習画像を用いて構築された学習済みの生成モデル5を利用することで、製品Rに欠陥が存在するか否かを精度よく検出することができる。その結果、製品Rの欠陥検出にかかるコストを低減することができる。
【0212】
また、パッチ画像毎に生成モデルを用意する場合、生成モデルの機械学習に使用する学習画像を適切に選択することが更に困難となる。これに対して、本実施形態によれば、パッチ画像毎に用意される生成モデル5の機械学習に使用する学習画像の選択処理の少なくとも一部を自動化することができる。そのため、当該選択に係るコストを大幅に削減することができる。更に、検出装置2では、パッチ画像単位で最適化された生成モデル5を利用することで、欠陥の検出する精度を高めることができる。
【0213】
また、本実施形態では、ステップS105~ステップS111の処理により、構築された学習済みの生成モデル5を利用した欠陥検出の性能を評価し、欠陥検出の性能が低いと評価される場合に、生成モデル5の更なる機械学習により当該性能の向上を図ることができる。更に、生成モデル5を利用した欠陥検出の性能を評価する際に、ステップS107~ステップS109の処理において、生成モデル5の復元能力に応じて欠陥の検出に使用する検出パラメータを自動的に最適化することができる。これらにより、機械学習に使用する学習画像は、欠陥の検出する処理に適するように最適化される。これに応じて、検出装置2では、このように適切に選択された学習画像を用いて構築された学習済みの生成モデル5を利用することで、欠陥の検出する精度を高めることができる。
【0214】
また、本実施形態では、ステップS114及びステップS115の処理により、機械学習に使用する学習画像の選択にオペレータの目視の結果を反映させることができる。これにより、欠陥の写る追加用画像126を機械学習の対象から除外することができる。これにより、機械学習の使用する学習画像が、欠陥の検出する処理に適するように選択されることを期待することができる。これに応じて、検出装置2では、このように使用する学習画像が最適化された機械学習により構築された学習済みの生成モデル5を利用することで、欠陥の検出する精度を高めることができる。
【0215】
§4 実験例
次に、本発明の実験例について説明する。汎用のコンピュータを利用して、以下の実験条件に従って、学習済みの生成モデルを構築する実験を行った。
【0216】
<実験条件>
・第1学習画像の数:10件
・追加用画像の数:3435件
・各第1学習画像および各追加用画像:欠陥のない製品の写る画像
・評価画像の数:42件
・評価画像:欠陥を含む製品の写る画像
・所定の特徴:製品(LED:発光ダイオード)
・他の特徴:欠陥(異物混入)
・各画像のサイズ:350×350
・各画像の画素値:256階調
・差分画像の画素値の範囲:0~255
・二値化の閾値(閾値65)の値:10~70
・面積に対する閾値(閾値66)の値(画素数):10~1000。
【0217】
パッチ画像に分割されていないことを除き、上記実施形態と同様に、ステップS101~ステップS109及びステップS112~ステップS116の処理を実行した。学習済みの生成モデルは、ニューラルネットワークにより構成した。ステップS112では、画素値の上位10%の画素を抽出し、抽出された画素の画素値の平均値を評価値として算出した。また、ステップS113では、評価値の最も高い(すなわち、復元の程度の最も低い)追加用画像を抽出した。抽出した追加用画像を第2学習画像として決定した。ステップS105~ステップS109及びステップS112~ステップS116の一連の処理を繰り返し、ステップS107及びステップS108において、誤判定される各画像の数を算出した。これにより、機械学習の一連の処理を繰り返す過程で構築された学習済みの生成モデルの性能の評価を行った。
【0218】
図16は、当該実験例により機械学習の処理を繰り返す過程で構築された学習済みの生成モデルの性能を評価した結果を示す。「新たに学習した学習画像の評価値」のフィールドは、機械学習の対象に追加した第2学習画像の評価値を示す。「成績」のフィールドは、ステップS107及びステップS108において誤判定された各画像の数を示す。「検出パラメータ」のフィールドは、ステップS109により特定された各閾値の最適な値を示す。
【0219】
図16に示されるとおり、第1回目から第5回目までは、ステップS105~ステップS109及びステップS112~ステップS116の一連の処理を繰り返すことで、生成モデルの復元能力を適切に向上させることができた。これにより、ステップS107及びステップS108において、誤判定される各画像の数を低減することができた。この結果から、本発明によれば、復元能力の適切な向上に貢献する可能性の高い追加用画像を抽出することができることが分かった。
【0220】
また、第6回目の処理により構築された学習済みの生成モデルでは、ステップS107における誤判定される追加用画像の件数が増加した。これにより、学習画像の件数が過剰になると、学習済みの生成モデルを利用した欠陥検出の性能の低下を招く可能性があることが分かった。本実験例のケースでは、第5回目の処理が完了した時点で、学習画像の件数を「14」件に最適化することができ、全画像3487件のうち3439件の画像について、欠陥の有無を正しく検出する性能に対応する製品の復元能力を有する生成モデルを構築することができた。これにより、14件の学習画像により構築された学習済みの生成モデルにより、製品の欠陥検出を高精度に実施することができ、当該検出にかかるコストを大幅に削減することができることが分かった。
【0221】
§5 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0222】
<5.1 変形例1>
上記実施形態では、製品Rの写る画像を利用して、製品Rに欠陥が存在するか否かを検出する場面に本発明を適用した例を示している。製品R(特に、製造ラインで搬送される製品であって、欠陥を含まない製品)が、所定の特徴の一例である。製品Rに発生し得る欠陥が、他の特徴の一例である。しかしながら、本発明の適用範囲は、このような外観検査の例に限られる訳ではない。本発明は、例えば、所定の物体が画像に写っているか否かを検出する場面等、被写体の写る画像から何らかの特徴を検出するあらゆる場面に適用可能である。
【0223】
所定の特徴は、画像に写り得るものであれば、上記製品R以外であってもよい。所定の特徴は、それ自身が抽出の対象となり得るもの、抽出の対象とならない背景、及びこれらの組み合わせであってよい。同様に、他の特徴も、画像に写り得るものであれば、上記欠陥以外であってもよい。上記実施形態以外の一例として、所定の特徴は、例えば、人物、車両(例えば、自動車)等の移動し得る物体であってよい。これに応じて、他の特徴は、例えば、当該移動により変化し得る物体の三次元形状、オプティカルフロー(移動方向)等であってよい。深度カメラ等により観測画像の各画素の画素値に奥行方向の距離が含まれている場合に、観測画像と復元画像との各画素の差分により、対象物体の三次元形状を推定することができる。また、復元画像において移動前の状態を復元した場合に、観測画像と復元画像との差分により、対象物体のオプティカルフローを推定することができる。
【0224】
また、所定の特徴は、他の特徴を含む状態及び他の特徴を含まない状態の2つの状態を取り得るものであってもよい。所定の特徴と他の特徴とがこのような関係にある場合、各状態の取り得る確率が偏っているのが望ましい。各状態の取り得る確率が偏っているとは、いずれかの状態の取り得る確率が、他の状態の取り得る確率に比べて、生成モデルの再現性に影響を与える程度に高いことである。加えて、所定の特徴の発生確率の高い状態に含まれておらず、発生確率の低い状態に含まれている特徴が当該他の特徴に選択されるのが望ましい。更には、機械学習に使用される各学習画像に写る所定の特徴には、当該他の特徴が含まれていないのが望ましい。これにより、他の特徴を含まない所定の特徴が写る学習画像を生成モデルの機械学習に使用することで、生成モデルは、入力画像に写る所定の特徴に他の特徴が含まれるか否かに関わらず、当該他の特徴を含まない所定の特徴の写る復元画像を生成するように訓練される。そのため、生成モデルにより生成される復元画像と入力画像との差分に基づいて、入力画像に写る所定の特徴に他の特徴が含まれるか否かを検出することができる。
【0225】
<5.2 変形例2>
上記実施形態では、生成モデル5は、ニューラルネットワークにより構成されている。しかしながら、生成モデル5の構成は、このような例に限定されなくてもよい。生成モデル5は、画像を変換可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、生成モデル5は、例えば非特許文献3のように、主成分分析(KL展開)により導出された固有ベクトル行列により構成されてもよい。
【0226】
上記ステップS105及びステップS106において復元画像(124、128)を生成する処理が、ニューラルネットワークの演算処理から固有ベクトル行列の演算処理からに置き換わる。また、上記ステップS117では、制御部11は、主成分分析(KL展開)により導出された固有ベクトル行列を再現可能な情報を学習結果データ129として生成し、生成された学習結果データ129を所定の記憶領域に保存する。これらの点を除き、上記実施形態に係る学習装置1は、上記実施形態と同様の処理手順により、機械学習に使用する学習画像を適切に選択できる。なお、上記実施形態と同様に、生成された学習結果データ129は、任意のタイミングで検出装置2に提供されてよい。
【0227】
上記実施形態に係る検出装置2についても同様である。すなわち、上記ステップS302において復元観測画像223を生成する処理が、ニューラルネットワークの演算処理から固有ベクトル行列の演算処理に置き換わる。この点を除き、上記実施形態に係る検出装置2は、上記実施形態と同様の処理手順により、観測画像221に写る製品Rに欠陥が存在するか否かを検出することができる。
【0228】
<5.3 変形例3>
上記実施形態では、制御部11は、抽出された追加用画像126等の情報を表示装置15に出力している。しかしながら、情報の出力先は、このような例に限られなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、抽出された追加用画像126等の情報を、表示装置15とは別の表示装置に出力してもよいし、表示装置以外の出力先(例えば、メモリ、表示装置以外の出力装置)に出力してもよい。
【0229】
<5.4 変形例4>
上記実施形態では、各画像(121、123、127、221)は、パッチ画像(P1、P2、P3、P4)に分割されている。しかしながら、画像の形態は、このような例に限定されなくてもよい。各画像(121、123、127、221)は、パッチ画像に分割されなくてもよい。この場合、上記実施形態の各処理は、画像全体に適用されてよい。
【0230】
<5.5 変形例5>
上記実施形態では、学習装置1は、上記ステップS102及びステップS116において、生成モデル5の機械学習を実施している。しかしながら、機械学習の処理は、必ずしも学習装置1により実行されなければならない訳ではない。ステップS102及びステップS116の少なくとも一方の機械学習の処理は、他のコンピュータにより実行されてよい。例えば、ステップS102の機械学習の処理は、他のコンピュータにより実行されてよい。ステップS102及びステップS116の処理が他のコンピュータにより実行される場合、学習装置1は、例えば、学習画像選択装置等と称されてもよい。
【0231】
図17は、変形例5に係る学習装置1Bのソフトウェア構成の一例を模式的に例示する図である。第1取得部110及び学習部111がモデル取得部111Bに置き換わる点を除き、本変形例に係る学習装置1Bのソフトウェア構成は、上記実施形態に係る学習装置1と同様である。モデル取得部111Bは、1つ以上の第1学習画像121を使用した機械学習により訓練された生成モデル5を取得する。また、本変形例に係る学習装置1Bのハードウェア構成は、上記実施形態に係る学習装置1と同様である。すなわち、学習装置1Bは、制御部11、記憶部12、通信インタフェース13、入力装置14、表示装置15、及びドライブ16が電気的に接続されたコンピュータである(図示は省略)。
【0232】
本変形例では、学習装置1Bの制御部11は、上記ステップS101及びステップS102の処理を省略し、モデル取得部111Bとして動作する。すなわち、制御部11は、1つ以上の第1学習画像121を使用した機械学習により訓練された生成モデル5を取得する。上記実施形態と同様に、生成モデル5は、入力画像が与えられると、与えられた入力画像を特徴量に変換し、変換により得られた特徴量から与えられた入力画像を復元した画像を生成するように構成される。機械学習により、生成モデル5は、1つ以上の第1学習画像121それぞれが与えられると、与えられた1つ以上の第1学習画像121それぞれに適合する復元画像を生成するように訓練されている。この機械学習の処理は、他のコンピュータにより実行されてよい。
【0233】
上記実施形態の学習結果データ129と同様に、機械学習により訓練された生成モデル5に関する情報は、学習結果データとして学習装置1Bに提供されてよい。また、上記実施形態における学習装置1により生成された学習結果データ129を検出装置2に提供する方法と同様の方法で、他のコンピュータにより生成された学習結果データが学習装置1Bに提供されてよい。1つ以上の第1学習画像121を使用した機械学習により訓練された生成モデル5を取得した後、学習装置1Bは、上記実施形態におけるステップS103~ステップS117の処理を実行してもよい。これにより、本変形例に係る学習装置1Bは、上記実施形態と同様に、機械学習に使用する学習画像を適切に選択できる。なお、この変形例において、第2取得部112は、画像取得部の一例である。
【0234】
上記変形例のとおり、機械学習の処理が他のコンピュータにより実行される場合、上記処理手順における機械学習の処理は、当該他のコンピュータから機械学習の処理結果を取得することに置き換わる。また、ステップS116の機械学習の処理を他のコンピュータが実行する場合、学習装置1は、ステップS113の抽出結果を当該他のコンピュータに通知する。抽出結果を通知することは、抽出された追加用画像126の識別子を通知することであってもよいし、抽出された追加用画像126そのものを送信することであってもよい。
【0235】
<5.6 変形例6>
上記実施形態では、学習装置1は、ステップS115により、表示装置15に表示された1つ以上の追加用画像126それぞれについて、当該1つ以上の追加用画像126それぞれを、機械学習に使用するか否かの選択を受け付けている。この選択を受け付ける処理は、省略されてよい。この場合、上記実施形態に係る学習装置1の処理手順からステップS115の処理は省略され、1つ以上の追加用画像126の各々が第2学習画像126Aとして自動的に決定されてもよい。上記実施形態に係る学習装置1のソフトウェア構成から選択受付部119は省略されてよい。加えて、ステップS115を省略する場合、追加用画像126を出力するステップS114の処理が更に省略されてよい。この場合、上記実施形態に係る学習装置1のソフトウェア構成から表示制御部118が更に省略されてよい。
【0236】
また、上記実施形態では、ステップS105~ステップS111の処理により、構築された学習済みの生成モデル5を利用した欠陥検出の性能を評価している。この欠陥検出の性能を評価する処理は省略されてよい。この場合、上記実施形態に係る学習装置1の処理手順からステップS106~ステップS111の処理は省略されてよい。上記実施形態に係る学習装置1のソフトウェア構成から第3取得部117は省略されてよい。
【0237】
また、上記実施形態において、各ステップの処理順序は適宜変更されてよい。例えば、ステップS103及びステップS104の処理順序は入れ替わってもよい。ステップS103の処理は、ステップS105の処理を実行する前のいずれのタイミングに実行されてよい。ステップS104の処理は、ステップS106の処理を実行する前のいずれのタイミングに実行されてよい。また、例えば、ステップS105及びステップS106の処理順序は入れ替わってもよい。ステップS105の処理は、ステップS107の処理を実行する前のいずれのタイミングに実行されてよい。ステップS106の処理は、ステップS108の処理を実行する前のいずれのタイミングに実行されてよい。また、例えば、ステップS107及びステップS108の処理順序は入れ替わってもよい。ステップS107及びステップS108の各処理は、ステップS109の処理を実行する前のいずれのタイミングに実行されてよい。ステップS107及びステップS108の一方の判定結果をステップS109の処理で利用しない場合、その判定処理は、ステップS110を実行する前のいずれのタイミングに実行されてよい。
【0238】
<5.7 変形例7>
上記実施形態では、複数の検出パラメータ候補60が与えられている。制御部11は、ステップS109により、誤判定の最も少ない1つの検出パラメータ候補61を複数の検出パラメータ候補60から特定している。しかしながら、検出パラメータの与え方は、このような例に限定されなくてもよい。
【0239】
例えば、制御部11は、誤判定される各画像(123,127)の数又は割合が予め定められた閾値以下となる1以上の検出パラメータ候補を複数の検出パラメータ候補60から抽出してもよい。あるいは、制御部11は、誤判定される各画像(123,127)の数又は割合の少ない上位所定数(例えば5個)の検出パラメータ候補を複数の検出パラメータ候補60から抽出してもよい。
【0240】
製造ラインにおいて、不良品が良品として出荷されることは、できるだけ回避されるべきである。そのため、制御部11は、複数の評価画像127のうち、誤判定される評価画像127の割合が予め定められた閾値(以下、「許容見逃し率」と記載する。)以下となる少なくとも1つの検出パラメータ候補60を抽出する。許容見逃し率は、オペレータの入力、プログラム内の設定値等により与えられてよい。誤判定される評価画像127の割合が許容見逃し率以下となる2以上の検出パラメータ候補60が存在する場合、制御部11は、当該2以上の検出パラメータ候補60を抽出する。あるいは、制御部11は、誤判定される評価画像127の数又は割合の少ない上位所定数(例えば5個)の検出パラメータ候補60を抽出してもよい。
【0241】
制御部11は、抽出された1以上又は所定数の検出パラメータ候補60の各々と、当該各検出パラメータ候補を用いたときの、誤判定される各画像(123,127)の数又は割合を表示装置15に表示する。そして、制御部11は、入力装置14に入力された選択指示に従って、表示された1以上又は所定数の検出パラメータ候補60の中から1つの検出パラメータ候補61を選択してもよい。誤判定される評価画像127の数又は割合は、不良品が良品として判定される数又は割合である。誤判定される評価画像127の数又は割合が小さいほど、不良品の流出を抑制できる。一方、誤判定される追加用画像123の数又は割合は、良品が不良品として判定される数又は割合である。誤判定される追加用画像123の数又は割合が小さいほど、歩留まりが良い。オペレータは、製造ラインに要求される不良品の流出割合および歩留まりを考慮しながら、検出パラメータ候補61を選択すればよい。
【0242】
あるいは、検出パラメータの値は、予め決定されていてもよい。検出パラメータの値は、オペレータの入力、プログラム内の設定値等により与えられてよい。この場合、上記実施形態に係る学習装置1の処理手順からステップS109の処理が省略されてよい。また、制御部11は、決定された検出パラメータを利用して、ステップS107及びステップS108それぞれの処理を実行してもよい。更に、ステップS110では、制御部11は、決定された検出パラメータを利用した判定の結果において、誤判定の追加用画像123の数又は割合が第1の閾値以上であるか否かを判定してもよい。また、制御部11は、決定された検出パラメータを利用した判定の結果において、誤判定の評価画像127の数又は割合が第2の閾値以上であるか否かを判定してもよい。
【0243】
<5.8 変形例8>
上記実施形態では、制御部11(第3取得部117)は、所定の特徴である製品R及び他の特徴である欠陥Lがそれぞれ写る複数の評価画像127を取得している。しかしながら、制御部11は、製品R及び欠陥Lがそれぞれ写る複数の第1評価画像と、製品Rが写り、欠陥Lが写っていない複数の第2評価画像とを取得してもよい。すなわち、第1評価画像には良品である製品Rが写り、第2評価画像には不良品である製品Rが写る。
【0244】
図18は、変形例8に係る学習装置のソフトウェア構成の一例を模式的に例示する図である。
図18に例示される学習装置1Cは、
図5に例示される学習装置1と比較して、第3取得部117の代わりに第3取得部117Cを備える点で相違する。
【0245】
第3取得部117Cは、製品R及び欠陥Lがそれぞれ写る複数の第1評価画像127Aと、製品Rが写り、欠陥Lが写っていない複数の第2評価画像127Bとを取得する。
【0246】
複数の第1評価画像127Aは、上記評価画像127と同様に生成されてもよい。すなわち、各第1評価画像127Aは、各画像(121、123)と同様に、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第1評価画像127Aの生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記一連の処理を実行することで、複数の第1評価画像127Aを取得してもよい。或いは、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第1評価画像127Aを取得してもよい。複数の第1評価画像127Aのうちの一部が学習装置1により生成され、残りが他のコンピュータにより生成されてもよい。取得する第1評価画像127Aの件数は、特に限定されなくてもよく、適宜決定されてよい。
【0247】
複数の第2評価画像127Bは、上記画像(121、123)と同様に生成されてもよい。各第2評価画像127Bの生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記一連の処理を実行することで、複数の第2評価画像127Bを取得してもよい。或いは、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第2評価画像を取得してもよい。複数の第2評価画像127Bのうちの一部が学習装置1により生成され、残りが他のコンピュータにより生成されてもよい。取得する第2評価画像の件数は、特に限定されなくてもよく、適宜決定されてよい。
【0248】
本変形例では、制御部11(生成部113)は、上記ステップS105において、取得された複数の第2評価画像127Bそれぞれを生成モデル5に与えることで、複数の第2評価画像127Bそれぞれを復元した複数の第2復元評価画像128Bそれぞれを生成する。また、制御部11は、上記ステップS106において、取得された複数の第1評価画像127Aそれぞれを生成モデル5に与えることで、複数の第1評価画像127Aそれぞれを復元した複数の第1復元評価画像128Aそれぞれを生成する。
【0249】
上記ステップS107では、制御部11(評価部114)は、各第2評価画像127Bと各第2復元評価画像128Bとの差分の程度に基づいて、各第2評価画像に欠陥Lが写っているか否かを判定する。すなわち、制御部11(評価部114)は、複数の第2評価画像127Bそれぞれと複数の第2復元評価画像128Bそれぞれとの間の差分を示す複数の差分画像183Bそれぞれを生成する。制御部11(評価部114)は、各差分画像183Bを利用して、各第2評価画像127Bに欠陥Lが写っているか否かを判定する。
【0250】
上記ステップS108では、制御部11(評価部114)は、各第1評価画像127Aと各第1復元評価画像128Aとの差分の程度に基づいて、各第1評価画像127Aに欠陥Lが写っているか否かを判定する。すなわち、制御部11(評価部114)は、複数の第1評価画像127Aそれぞれと複数の第1復元評価画像128Aそれぞれとの間の差分を示す複数の差分画像183Aそれぞれを生成する。制御部11(評価部114)は、各差分画像183Aを利用して、各第1評価画像127Aに欠陥Lが写っているか否かを判定する。
【0251】
上記ステップS109では、制御部11は、各ステップ(S107、S108)の判定結果に基づいて、欠陥Lが画像に写っているか否かを判定するための検出パラメータの最適化を実行する。具体的には、制御部11は、欠陥Lが写っていると判定された第2評価画像127Bの数(以下、誤判定の第2評価画像の数とも記載する)をカウントする。制御部11は、欠陥Lが写っていないと判定された第1評価画像127Aの数(以下、誤判定の第1評価画像の数と記載する)の数をカウントする。制御部11は、誤判定の第1評価画像の数及び誤判定の第2評価画像の数が最も少ない1つの検出パラメータ候補61を特定する。
【0252】
あるいは、制御部11は、上記変形例7と同様に、複数の第1評価画像127Aのうち、欠陥Lが写っていないと判定された第1評価画像127Aの割合が許容見逃し率以下となる少なくとも1つの検出パラメータ候補60を抽出してもよい。以下、複数の第1評価画像127Aのうち欠陥Lが写っていると判定された第1評価画像127Aの割合を、誤判定の第1評価画像の割合とも記載する。制御部11は、抽出された1以上の検出パラメータ候補60の各々と、当該各検出パラメータ候補を用いたときの、複数の第2評価画像127Bのうち欠陥Lが写っていると判定された第2評価画像127Bの割合とを表示装置15に表示する。以下、複数の第2評価画像127Bのうち欠陥Lが写っていると判定された第2評価画像127Bの割合を、誤判定の第2評価画像の割合とも記載する。そして、制御部11は、入力装置14に入力された選択指示に従って、抽出された1以上の検出パラメータ候補60の中から1つの検出パラメータ候補61を選択してもよい。
【0253】
上記のステップS110では、制御部11は、評価部114として動作し、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の第2評価画像の数又は割合が第1の閾値以上であるか否かを判定する。さらに、制御部11は、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の第1評価画像の数又は割合が第2の閾値以上であるか否かを判定する。
【0254】
上記のステップS112では、制御部11は、生成部113として動作し、取得された複数の追加用画像123それぞれを生成モデル5に与えることで、複数の追加用画像123それぞれを復元した複数の復元追加用画像124それぞれを生成する。そして、制御部11は、各追加用画像123及び生成された各復元追加用画像124の間の差分に応じて、各追加用画像123の評価値125であって、各復元追加用画像124における各追加用画像123の復元の程度に対する評価値125を算出すればよい。
【0255】
<5.9 変形例9>
上述したように、製品Rの個体差および撮像条件の変動等の要因により、観測画像221内に写る製品Rの様子も変動し得る。観測画像221内に写る製品Rの様子の変動幅が大きいほど、機械学習に必要な学習画像の数も増大する。1つ以上の第2学習画像126Aは、観測画像221内に写る製品Rの様子の変動幅に応じて選択されることが好ましい。そのため、本変形例では、制御部11(第2取得部112)は、検出装置2によって取得された観測画像221を複数の追加用画像123の1つとして取得する。
【0256】
制御部11は、通信インタフェース13を介して、観測画像221を検出装置2から取得すればよい。あるいは、検出装置2は、カメラCAから取得した観測画像221を記憶媒体92に格納してもよい。そして、制御部11は、ドライブ16を介して、記憶媒体92から観測画像221を読み込んでもよい。
【0257】
検出装置2は、製造ラインにおいて搬送される各製品Rについて観測画像221を取得する。一般に、検出装置2によって取得される観測画像221の数は、短時間で膨大となる。学習装置における記憶部12の容量には限界があるため、記憶部12は、検出装置2から取得した全ての観測画像221を記憶できない。そのため、変形例9に係る学習装置では、制御部11(抽出部115)は、検出装置2から取得した複数の観測画像221(追加用画像123)のうち、評価値125の高い方から順に所定数の観測画像221(追加用画像123)を追加用画像126として抽出する。所定数は、1以上の整数である。そして、制御部11(保存処理部1110)は、複数の追加用画像123のうち抽出した追加用画像126のみを記憶部12に保存する。
【0258】
観測画像221には、良品である製品Rが写るとは限らない。すなわち、制御部11は、不良品である製品Rが写る観測画像221を追加用画像123として取得し得る。そのため、制御部11(表示制御部118)は、複数の追加用画像123(観測画像221)の中から抽出された所定数の追加用画像126それぞれを表示装置15に表示させる。そして、制御部11(選択受付部119)は、所定数の追加用画像126それぞれについて、機械学習に使用するか否かの選択を受け付ける。具体的には、制御部11(選択受付部119)は、所定数の追加用画像126それぞれについて、欠陥Lが写っているか否かの選択を受け付ける。制御部11(追加学習部116)は、欠陥Lが写っていないと選択された追加用画像126を第2学習画像126Aとして決定する。
【0259】
変形例9は、上記変形例8と組み合わせてもよい。すなわち、制御部11(第3取得部117C)は、製品R及び欠陥Lがそれぞれ写る複数の第1評価画像127Aと、製品Rが写り、欠陥Lが写っていない複数の第2評価画像127Bとを取得する。制御部11は、欠陥Lが写っていると選択された各追加用画像126を複数の第1評価画像127Aの1つとして取得してもよい。さらに、制御部11は、欠陥Lが写っていないと選択された各追加用画像126を複数の第2評価画像127Bの1つとして取得してもよい。
【0260】
図19~
図22を参照して、変形例9に係る学習装置の動作例について説明する。
図19及び
図20は、変形例9に係る学習装置における追加用画像の抽出処理の手順の一例を示すフローチャートである。なお、以下の処理手順は、第1学習画像121を使用した機械学習により訓練された生成モデル5を取得した後に実施される。第1学習画像121を使用した機械学習により訓練された生成モデル5は、上記ステップS101及びステップS102の処理によって取得されてもよい。あるいは、第1学習画像121を使用した機械学習により訓練された生成モデル5は、変形例5と同様の方法により取得されてもよい。
【0261】
(ステップS401)
ステップS401では、制御部11は、第2取得部112として動作し、検出装置2によって取得された観測画像221を追加用画像123として取得する。追加用画像123を取得すると、制御部11は、ステップS402に処理を進める。
【0262】
(ステップS402)
ステップS402では、制御部11は、生成部113として動作し、取得された追加用画像123を生成モデル5に与えることで、追加用画像123を復元した復元追加用画像124を生成する。ステップS4023は、上記ステップS105と同様である。そのため、ステップS402の詳細な説明を省略する。復元追加用画像124を生成すると、制御部11は、ステップS403に処理を進める。
【0263】
(ステップS403)
ステップS403では、制御部11は、追加用画像123及び生成された復元追加用画像124の間の差分に応じて、追加用画像123の評価値125であって、復元追加用画像124における追加用画像123の復元の程度に対する評価値125を算出する。ステップS403は、上記ステップS112と同様である。そのため、ステップS403の詳細な説明を省略する。評価値125を生成すると、制御部11は、ステップS404に処理を進める。
【0264】
(ステップS404)
ステップS404では、制御部11は、記憶部12に保存する追加用画像126に対する評価値125の下限値LLが設定されているか否かを判定する。下限値LLは、必要に応じて、オペレータの入力、プログラム内の設定値等により適宜設定される。ステップS404でYESの場合、制御部11は、ステップS405に処理を進める。ステップS404でNOの場合、制御部11は、ステップS407に処理を進める。
【0265】
(ステップS405)
ステップS405では、制御部11は、ステップS403の処理によって算出された評価値125と下限値LLとを比較する。評価値125が下限値LL以下である場合(ステップS405でNO)、制御部11は、ステップS406に処理を進める。評価値125が下限値LLを超える場合(ステップS405でYES)、制御部11は、ステップS407に処理を進める。
【0266】
(ステップS406)
ステップS406では、制御部11は、ステップS401の処理によって取得した観測画像221(追加用画像123)を破棄する。追加用画像123が破棄されると、制御部11は、追加用画像126の抽出処理を終了する。
【0267】
(ステップS407)
ステップS407では、制御部11は、記憶部12に保存する追加用画像126の数の上限値HLが設定されているか否かを判定する。上限値HLは、必要に応じて、オペレータの入力、プログラム内の設定値等により適宜設定される。ステップS407でNOの場合、制御部11は、ステップS412に処理を進める。ステップS407でYESの場合、制御部11は、ステップS408に処理を進める。
【0268】
(ステップS408)
ステップS408では、制御部11は、記憶部12に保存されている追加用画像126の数が上限値HLに到達しているか否かを判定する。ステップS408でNOの場合、制御部11は、ステップS412に処理を進める。ステップS408でYESの場合、制御部11は、ステップS409に処理を進める。
【0269】
(ステップS409)
ステップS409では、制御部11は、記憶部12に保存されている所定数(上限値HLと同数)の追加用画像126に対する評価値125のうちの最小値を特定する。ステップS412において後述するように、記憶部12には追加用画像126と評価値125とが対応付けて保存される。制御部11は、追加用画像126に対応付けられた評価値125を確認することにより、最小値を特定する。最小値を特定すると、制御部11は、ステップS410に処理を進める。
【0270】
(ステップS410)
ステップS410では、制御部11は、ステップS403の処理によって算出された評価値125がステップS409の処理によって特定された最小値を超えるか否かを判定する。ステップS410でYESの場合、制御部11は、ステップS411に処理を進める。ステップS410でNOの場合、制御部11は、ステップS406に処理を進め、ステップS401の処理によって取得した観測画像221(追加用画像123)を破棄する。
【0271】
(ステップS411)
ステップS411では、制御部11は、記憶部12に保存されている複数(上限値HLと同数)の追加用画像126のうち、評価値125が最も小さい1つの追加用画像126を記憶部12から削除する。評価値125が最も小さい1つの追加用画像126を記憶部12から削除すると、制御部11は、ステップS412に処理を進める。
【0272】
(ステップS412)
ステップS412では、制御部11は、ステップS401の処理によって取得した観測画像221(追加用画像123)を新たな追加用画像126として記憶部12に保存する。このとき、制御部11は、ステップS403の処理によって算出した評価値125を新たな追加用画像126と対応付けて記憶部12に保存する。新たな追加用画像126を記憶部12に保存した後、制御部11は、追加用画像126の抽出処理を終了する。
【0273】
図19及び
図20に示されるステップS401~ステップS412の一連の処理は、検出装置2から観測画像221を取得するたびに実施される。これにより、上限値HLが設定されている場合、学習装置1の記憶部12には、過去に取得した複数の観測画像221(追加用画像123)のうち、評価値125の高い方から順に所定数(=上限値HL)の観測画像221が追加用画像126として記憶部12に保存される。
【0274】
図21及び
図22は、変形例9に係る学習装置における追加学習処理の手順の一例を示すフローチャートである。
図21及び
図22に示される追加学習処理は、上記の追加用画像126の抽出処理が実行された後に実施される。なお、以下では、記憶部12に所定数(=上限値HL)の追加用画像126が保存されている場合の例について説明する。
【0275】
(ステップS501)
ステップS501では、制御部11は、記憶部12に保存されている所定数の追加用画像126を復元の程度に応じてソートする。具体的には、制御部11は、所定数の追加用画像126を評価値125の高い順に並び替える。ソートが完了すると、制御部11は、ステップS502に処理を進める。
【0276】
(ステップS502)
ステップS502では、制御部11は、表示制御部118として動作し、所定数の追加用画像126を含む表示画面を表示装置15に表示させる。
【0277】
図23は、ステップS502において表示される表示画面の一例を示す図である。
図23に例示される表示画面70は、チェックボックス71,73と、入力欄72,74とを含む。チェックボックス71は、記憶部12に保存する追加用画像126に対する評価値125の下限値LLの設定を有効にするためのオブジェクトである。チェックボックス71がチェックされている場合、下限値LLの設定が有効となる。入力欄72には、下限値LLが入力される。チェックボックス73は、記憶部12に保存する追加用画像126の数の上限値HLの設定を有効にするためのオブジェクトである。チェックボックス73がチェックされている場合、上限値HLの設定が有効となる。入力欄74には、上限値HLが入力される。
【0278】
表示画面70は、領域75,78を含む。領域75には、記憶部12に保存されている所定数の追加用画像126の一覧が表示される。具体的には、領域75には、所定数の追加用画像126にそれぞれ対応する所定数のサムネイル画像76が表示される。所定数のサムネイル画像76は、ステップS501の処理によってソートされた順に並べられる。さらに、領域75には、各追加用画像126に対応する評価値125も表示される。領域75には、所定数のサムネイル画像76のうちの1つを選択するためのカーソル77が表示される。カーソル77は、入力装置14への入力に応じて移動する。領域78には、カーソル77によって選択されたサムネイル画像76に対応する追加用画像126が表示される。
【0279】
表示画面70は、さらに領域79~81とボタン82~89とを含む。領域79には、不良品画像として分類された追加用画像126のリスト(以下、不良品画像リストとも記載する)が表示される。領域80には、良品画像として分類された追加用画像126のリスト(以下、良品画像リストとも記載する)が表示される。領域81には、第2学習画像126Aとして選択された追加用画像126のリスト(以下、「学習画像リスト」とも記載する)が表示される。不良品画像リスト、良品画像リストおよび学習画像リストは、画像のファイル名の一覧である。ボタン82~85は、追加用画像126を不良品画像および良品画像のいずれかに分類するためのボタンである。ボタン86は、第2学習画像126Aを決定するためのボタンである。ボタン87は、追加学習を実行させるためのボタンである。ボタン88は、検出パラメータの最適化を実行させるためのボタンである。ボタン89は、表示画面70を閉じるためのボタンである。
【0280】
表示画面70は、各種の情報が表示される領域90を含む。領域90において、「前回最低スコア」は、前回の追加学習の前に抽出された所定数の追加用画像126にそれぞれ対応する所定数の評価値125のうちの最小値を示す。「前回平均スコア」は、前回の追加学習の前に抽出された所定数の追加用画像126にそれぞれ対応する所定数の評価値125の平均値を示す。「最低スコア」は、今回の追加学習の前に抽出された所定数の追加用画像126にそれぞれ対応する所定数の評価値125のうちの最小値を示す。「平均スコア」は、今回の追加学習の前に抽出された所定数の追加用画像126にそれぞれ対応する所定数の評価値125の平均値を示す。「残ストレージ容量」は、記憶部12における空き容量を示す。「保存可能枚数」は、記憶部12に保存可能な追加用画像126の最大数を示す。
【0281】
図23に例示される表示画面70の表示が完了すると、制御部11は、ステップS503に処理を進める。
【0282】
(ステップS503)
ステップS503では、制御部11は、選択受付部119として動作し、良品画像および不良品画像への分類の操作を受け付けたか否かを判定する。制御部11は、表示画面70に含まれるボタン82~85が操作されたことに応じて、良品画像および不良品画像への分類の操作を受け付けたと判定する。ボタン82~85が操作されていない場合(ステップS503でNO)、制御部11は、ステップS505に処理を進める。ボタン82~85が操作された場合(ステップS503でYES)、制御部11は、ステップS504に処理を進める。
【0283】
(ステップS504)
ステップS504では、制御部11は、選択受付部119として動作し、ボタン82~85への操作に応じて、選択された追加用画像126を不良品画像および良品画像のいずれかに分類する。
【0284】
制御部11は、ボタン82が操作されると、領域78に表示されている追加用画像126を良品画像に分類する。制御部11は、良品画像に分類された追加用画像126に対応するサムネイル画像76を領域75から削除する。制御部11は、良品画像に分類された追加用画像126を新たな第2評価画像127Bとして記憶部12に保存する。制御部11は、領域80に表示される良品画像リストに当該新たな第2評価画像127Bを追加する。
【0285】
制御部11は、ボタン83が操作されると、領域78に表示されている追加用画像126を不良品画像に分類する。制御部11は、不良品画像に分類された追加用画像126に対応するサムネイル画像76を領域75から削除する。制御部11は、不良品画像に分類された追加用画像126を新たな第1評価画像127Aとして記憶部12に保存する。制御部11は、領域79に表示される不良品画像リストに当該新たな第1評価画像127Aを追加する。
【0286】
オペレータは、ボタン82,83を誤って操作し得る。例えば、オペレータは、ボタン82を操作すべきところボタン83を誤って操作し得る。この場合、良品画像として分類すべき追加用画像126が不良品画像として分類され、領域79に表示される不良品画像リストに追加される。このような誤操作が行なわれた場合であっても修復できるように、表示画面70にはボタン84,85が用意されている。ボタン84は、不良品画像リストから選択された画像を良品画像リストに移動させるためのボタンである。ボタン85は、良品画像リストから選択された画像を不良品画像リストに移動させるためのボタンである。
【0287】
制御部11は、不良品画像リストおよび良品画像リストのいずれかに含まれる1つの画像の選択を受け付ける。不良品画像リストおよび良品画像リストのいずれかに含まれる1つの画像が選択されると、制御部11は、選択された画像を領域78に表示させる。これにより、オペレータは、領域78に表示される画像を確認することにより、ボタン82,83の誤操作の有無を確認できる。
【0288】
不良品画像リストの中の1つの第1評価画像127Aが選択された状態でボタン84の操作を受け付けると、制御部11は、選択された第1評価画像127Aを良品画像に分類し直す。制御部11は、良品画像に分類された第1評価画像127Aを新たな第2評価画像127Bとして記憶部12に保存し直す。制御部11は、領域80に表示される良品画像リストに当該新たな第2評価画像127Bを追加する。
【0289】
良品画像リストの中の1つの第2評価画像127Bが選択された状態でボタン85の操作を受け付けると、制御部11は、選択された第2評価画像127Bを不良品画像に分類し直す。制御部11は、不良品画像に分類された第2評価画像127Bを新たな第1評価画像127Aとして記憶部12に保存し直す。制御部11は、領域79に表示される不良品画像リストに当該新たな第1評価画像127Aを追加する。
【0290】
操作されたボタンに応じた処理が完了すると、制御部11は、ステップS505に処理を進める。
【0291】
(ステップS505)
ステップS505では、制御部11は、良品画像として分類された追加用画像126のうちの1つ以上の画像を第2学習画像126Aとして選択する旨の指示を受け付けたか否かを判定する。制御部11は、良品画像リストの中の1つ以上の第2評価画像127Bが選択された状態でボタン86が操作されたことに応じて、第2学習画像126Aの選択指示を受け付けたと判定する。ボタン86が操作された場合(ステップS504でYES)、制御部11は、ステップS506に処理を進める。ボタン86が操作されていない場合(ステップS505でNO)、制御部11は、ステップS507に処理を進める。
【0292】
(ステップS506)
ステップS506では、制御部11は、ボタン86の操作に応じて、選択された第2評価画像127Bを第2学習画像126Aとして決定する。制御部11は、決定された第2学習画像126Aを領域81に表示される学習画像リストに追加する。なお、第2学習画像126Aとして決定された第2評価画像127Bは、良品画像リストにも残される。ステップS506の処理が完了した後、制御部11は、ステップS507に処理を進める。
【0293】
(ステップS507)
ステップS507では、制御部11は、追加学習の実行指示を受け付けたか否かを判定する。制御部11は、表示画面70に含まれるボタン87が操作されたことに応じて、追加学習の実行指示を受け付けたと判定する。ボタン87が操作された場合(ステップS506でYES)、制御部11は、ステップS508に処理を進める。ボタン87が操作されていない場合(ステップS507でNO)、制御部11は、ステップS510に処理を進める。
【0294】
(ステップS508)
ステップS508では、制御部11は、追加学習部116として動作し、機械学習により、学習画像リストに含まれる各第2学習画像126Aそれぞれが与えられると、与えられた各第2学習画像126Aに適合する復元画像を生成するように生成モデル5を更に訓練する。ステップS508は、上記ステップS116と同様である。そのため、ステップS508の詳細な説明を省略する。生成モデル5の訓練が完了すると、制御部11は、ステップS509に処理を進める。
【0295】
(ステップS509)
ステップS509では、制御部11は、保存処理部1110として動作し、構築された学習済みの生成モデル5に関する情報を学習結果データ129として生成する。制御部11は、生成された学習結果データ129を所定の記憶領域に保存する。なお、生成された学習結果データ129は、任意のタイミングで検出装置2に提供されてよい。ステップS509の処理は、上記ステップS117と同様の処理である。学習結果データ129を保存すると、制御部11は、ステップS510に処理を進める。
【0296】
(ステップS510)
ステップS510では、制御部11は、検出パラメータの最適化の実行指示を受け付けたか否かを判定する。制御部11は、表示画面70に含まれるボタン88が操作されたことに応じて、検出パラメータの最適化の実行指示を受け付けたと判定する。ボタン88が操作された場合(ステップS510でYES)、制御部11は、ステップS511に処理を進める。ボタン88が操作されていない場合(ステップS510でNO)、制御部11は、ステップS514に処理を進める。
【0297】
(ステップS511)
ステップS511では、制御部11は、生成部113及び評価部114として動作し、検出パラメータの最適化を実施する。具体的には、制御部11は、複数の検出パラメータ候補60の中から最適な検出パラメータ候補61を特定する。ステップS511の処理は、上記ステップS105~ステップS109と同様の処理である。ただし、制御部11は、変形例8と同様に、複数の評価画像127および1つ以上の第2学習画像126Aの代わりに、複数の第1評価画像127Aおよび複数の第2評価画像127Bを用いて、検出パラメータの最適化を実施する。なお、制御部11は、複数の第2評価画像127Bの中から第2学習画像126Aとして決定された画像を除外してもよいし、第2学習画像126Aを複数の第2評価画像127Bに含めてもよい。ステップS511の処理が完了した後、制御部11は、ステップS512に処理を進める。
【0298】
(ステップS512)
ステップS512では、制御部11は、評価部114として動作し、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の第2評価画像127Bの数又は割合が第1の閾値以上であるか否かを判定する。さらに、制御部11は、特定された1つの検出パラメータ候補61を利用した判定の結果において、誤判定の第1評価画像127Aの数又は割合が第2の閾値以上であるか否かを判定する。ステップS512でYESの場合、制御部11は、ステップS513に処理を進める。ステップS512でNOの場合、制御部11は、ステップS514に処理を進める。
【0299】
(ステップS513)
ステップS513では、制御部11は、複数の第2評価画像127B(第2学習画像126Aとして選択済みの画像を除く)のうちの復元の程度の低い1つ以上の第2評価画像127Bを第2学習画像126Aとして決定する。ステップS513の処理が完了した後、制御部11は、ステップS508に処理を戻す。これにより、複数の第2評価画像127Bのうちの復元の程度の低い1つ以上の第2評価画像127Bを第2学習画像126Aとして用いた機械学習が繰り返される。
【0300】
(ステップS514)
ステップS514では、制御部11は、表示画面70を閉じる旨の指示を受け付けたか否かを判定する。制御部11は、表示画面70に含まれるボタン89が操作されたことに応じて、表示画面70を閉じる旨の指示を受け付けたと判定する。ボタン89が操作されていない場合(ステップS514でNO)、制御部11は、ステップS503に処理を戻す。ボタン89が操作された場合(ステップS514でYES)、制御部11は、追加学習に関する一連の処理を終了する。
【0301】
以上のように、変形例9に係る学習装置では、制御部11(第2取得部112)は、検出装置2によって取得された観測画像221を複数の追加用画像123の1つとして取得する。これにより、オペレータは、追加用画像123を準備する手間を省略できる。
【0302】
制御部11(抽出部115)は、評価値125に基づいて、復元の程度が低いと評価される所定数の追加用画像126を複数の追加用画像123から抽出する。そして、制御部11(選択受付部119)は、表示装置15に表示された所定数の追加用画像126それぞれについて、当該所定数の追加用画像126それぞれを機械学習に使用するか否かの選択を受け付ける。具体的には、制御部11(選択受付部119)は、所定数の追加用画像126それぞれについて、欠陥Lが写っているか否かの選択を受け付ける。制御部11(追加学習部116)は、機械学習に使用すると選択された追加用画像126(すなわち、欠陥Lが写っていないと選択された追加用画像126)を第2学習画像126Aとして決定する。
【0303】
学習装置は、不良品の製品Rが写っている観測画像221を追加用画像123として取得し得る。しかしながら、上記の構成によれば、オペレータの選択に応じて、欠陥Lの写っていない追加用画像126が第2学習画像126Aとして決定される。これにより、欠陥Lの写っている画像を用いた機械学習による生成モデル5の性能の低下を防止できる。
【0304】
制御部11(第3取得部117C)は、製品R及び欠陥Lが写る複数の第1評価画像127Aと、製品Rが写り、欠陥Lが写っていない複数の第2評価画像127Bとを取得する。制御部11(評価部114)には、欠陥Lが画像に写っているか否かを判定するための複数の検出パラメータ候補60が与えられる。制御部11(評価部114)は、複数の検出パラメータ候補60それぞれを利用して、欠陥Lが各第1評価画像127Aに写っているか否かの判定、及び欠陥Lが各第2評価画像127Bに写っているか否かの判定を実行する。制御部11(評価部114)は、各判定の結果に基づいて、欠陥Lが画像に写っているか否かを判定するための検出パラメータの最適化を実行する。制御部11(選択受付部119)は、表示装置15に表示された所定数の追加用画像126それぞれについて、欠陥Lが写っているか否かの選択を受け付ける。制御部11(第3取得部117)は、欠陥Lが写っていると選択された各追加用画像126を複数の第1評価画像127Aの1つとして取得する。制御部11(第3取得部117)は、欠陥Lが写っていないと選択された各追加用画像126を複数の第2評価画像127Bの1つとして取得する。これにより、オペレータは、第1評価画像127Aおよび第2評価画像127Bを準備する手間を省略できる。
【0305】
制御部11(保存処理部1110)、複数の追加用画像123のうち、抽出された所定数の追加用画像126を記憶部12に保存する。一般に、検出装置2によって取得される観測画像221の数は、短時間で膨大となる。しかしながら、上記の構成によれば、観測画像221が追加用画像123として取得されるものの、評価値125の高い方から順に所定数の観測画像221(追加用画像123)が追加用画像126として抽出され、抽出された所定数の追加用画像126のみが記憶部12に保存される。そのため、記憶部12における空き領域が不足する事態を避けることができる。
【0306】
§6 付記
以上のように、本実施の形態は以下のような開示を含む。
【0307】
(構成1)
所定の特徴の写る1つ以上の第1学習画像(121)を取得する第1取得部(11,110)と、
前記1つ以上の第1学習画像(121)を使用して、生成モデル(5)の機械学習を実施する学習部(11,111)であって、
生成モデル(5)は、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像(121)それぞれが与えられると、与えられた前記1つ以上の第1学習画像(121)それぞれに適合する復元画像を生成するように前記生成モデル(5)を訓練する、
学習部(11,111)と、
前記所定の特徴の写る複数の追加用画像(123)を取得する第2取得部(11,112)と、
前記複数の追加用画像(123)それぞれを前記生成モデル(5)に与えることで、前記複数の追加用画像(123)それぞれを復元した複数の復元追加用画像(124)それぞれを生成する生成部(11,113)と、
前記各追加用画像(123)及び前記各復元追加用画像(124)の間の差分に応じて、前記各追加用画像(124)の評価値であって、前記各復元追加用画像(124)における前記各追加用画像(124)の復元の程度に対する評価値を算出する評価部(11,114)と、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像(126)を前記複数の追加用画像(123)から抽出する抽出部(11,115)と、
機械学習により、抽出された前記1つ以上の追加用画像(126)に含まれる1つ以上の第2学習画像(126A)それぞれが与えられると、与えられた前記1つ以上の第2学習画像(126A)それぞれに適合する復元画像を生成するように前記生成モデル(5)を更に訓練する追加学習部(11,116)と、
を備える、
学習装置(1,1C)。
【0308】
(構成2)
前記差分に応じて前記評価値を算出することは、
前記複数の追加用画像(123)それぞれと前記複数の復元追加用画像(124)それぞれとの間の差分を示す複数の差分画像(182)それぞれを生成し、
前記各差分画像(182)において、各画素の画素値が大きいほど前記評価値が高くなり、かつ、基準画素値以上の画素の前記評価値に与える寄与度が前記基準画素値未満の画素の前記評価値に与える寄与度よりも大きくなるように、前記評価値を算出すること、
により構成される、
構成1に記載の学習装置(1,1C)。
【0309】
(構成3)
抽出された前記1つ以上の追加用画像(126)それぞれを表示装置(15)に表示させる表示制御部(11,118)を更に備える、
構成1又は2に記載の学習装置(1,1C)。
【0310】
(構成4)
前記表示装置(15)に表示された前記1つ以上の追加用画像(126)それぞれについて、当該1つ以上の追加用画像(126)それぞれを機械学習に使用するか否かの選択を受け付ける選択受付部(11,119)を更に備え、
追加学習部(11,116)は、前記機械学習に使用すると選択された追加用画像(126)を前記1つ以上の第2学習画像(126A)として決定する 、
構成3に記載の学習装置(1,1C)。
【0311】
(構成5)
前記所定の特徴及び前記所定の特徴以外の他の特徴の写る複数の評価画像(127)を取得する第3取得部(11,117)を更に備え、
前記複数の追加用画像(123)には前記他の特徴が写っておらず、
前記生成部(11,113)は、取得された前記複数の評価画像(127)それぞれを訓練された前記生成モデル(5)に与えることで、前記複数の評価画像(127)それぞれを復元した複数の復元評価画像(128)それぞれを更に生成し、
前記評価部(11,114)は、更に、
前記各追加用画像(123)と生成された前記各復元追加用画像(124)との差分の程度に基づいて、前記他の特徴が前記各追加用画像(123)に写っているか否かを判定し、及び
前記各評価画像(127)と生成された前記各復元評価画像(128)との差分の程度に基づいて、前記他の特徴が前記各評価画像(127)に写っているか否かを判定し、
前記評価部(11,114)は、前記複数の追加用画像(123)のうち、前記他の特徴が写っていると判定された追加用画像(123)の数又は割合が第1の閾値以上である、又は、前記複数の評価画像(127)のうち、前記他の特徴が写っていないと判定された評価画像(127)の数又は割合が第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像(123)について、前記評価値を算出し、
前記抽出部(11,115)は、算出された前記評価値に基づいて、前記他の特徴が写っていると判定された前記1又は複数の追加用画像(123)のうち、復元の程度が低いと評価される画像を前記1つ以上の追加用画像(126)として抽出する、
構成1から4のいずれかに記載の学習装置(1)。
【0312】
(構成6)
前記他の特徴が前記各追加用画像(123)に写っているか否か、及び前記他の特徴が前記各評価画像(127)に写っているか否かを判定するための複数のパラメータ候補が与えられ、
前記評価部(11,114)は、
前記複数のパラメータ候補それぞれを利用して、前記他の特徴が前記各追加用画像(123)に写っているか否かの判定、及び前記他の特徴が前記各評価画像(127)に写っているか否かの判定を実行し、
前記各判定の結果に基づいて、前記他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行し、及び
最適化されたパラメータを利用した前記各判定の結果において、前記他の特徴が写っていると判定された追加用画像(123)の数又は割合が前記第1の閾値以上である、又は前記他の特徴が写っていないと判定された評価画像(127)の数又は割合が前記第2の閾値以上である場合に、前記他の特徴が写っていると判定された1又は複数の追加用画像(123)について、前記評価値を算出する、
構成5に記載の学習装置(1)。
【0313】
(構成7)
複数の第1評価画像(127A)と複数の第2評価画像(127B)とを取得する第3取得部(11,117C)を更に備え、
前記複数の第1評価画像(127A)には、前記所定の特徴及び前記所定の特徴以外の他の特徴が写り、
前記複数の第2評価画像(127B)には、前記所定の特徴が写り、前記他の特徴が写っておらず、
前記評価部(11,114)は、
前記他の特徴が画像に写っているか否かを判定するための複数のパラメータ候補が与えられ、
前記複数のパラメータ候補それぞれを利用して、前記他の特徴が前記各第1評価画像(127A)に写っているか否かの判定、及び前記他の特徴が前記各第2評価画像(127B)に写っているか否かの判定を実行し、
前記各判定の結果に基づいて、前記他の特徴が画像に写っているか否かを判定するためのパラメータの最適化を実行し、
前記選択受付部(11,119)は、前記表示装置(15)に表示された前記1つ以上の追加用画像(126)それぞれについて、前記他の特徴が写っているか否かの選択を更に受け付け、
前記第3取得部(11,117C)は、
前記他の特徴が写っていると選択された各追加用画像(126)を前記複数の第1評価画像(127A)の1つとして取得し、
前記他の特徴が写っていないと選択された各追加用画像(126)を前記複数の第2評価画像(127B)の1つとして取得する、
構成4に記載の学習装置(1C)。
【0314】
(構成8)
前記第2取得部(11,112)は、検出装置(2)と通信し、
前記検出装置(2)は、
前記所定の特徴を観測することで得られた観測画像を取得し、
前記生成モデル(5)に前記観測画像(221)を入力することで、前記観測画像(221)に対応する復元観測画像(223)を生成し、
生成された前記復元観測画像(223)及び前記観測画像(221)の間の差分に基づいて、前記所定の特徴以外の他の特徴が前記観測画像(221)に写っているか否かを検出し、
前記第2取得部(11,112)は、前記検出装置(2)によって取得された前記観測画像(221)を前記複数の追加用画像の1つとして取得する、
構成4又は7に記載の学習装置(1,1C)。
【0315】
(構成9)
前記複数の追加用画像(123)のうち、前記抽出部(11,115)によって抽出された前記1つ以上の追加用画像(126)を記憶部(12)に保存する保存処理部(11,1110)を更に備える、
構成1から8のいずれかに記載の学習装置(1,1C)。
【0316】
(構成10)
前記各第1学習画像(121)及び前記各追加用画像(123)はそれぞれ、複数のパッチ画像に分割され、
前記生成モデル(5)は、前記パッチ画像毎に与えられ、
前記学習部(11,111)は、前記パッチ画像毎に、機械学習により、前記1つ以上の第1学習画像(121)それぞれが与えられると、与えられた前記1つ以上の第1学習画像(121)それぞれに適合する復元画像を生成するように前記生成モデル(5)を訓練し、
前記生成部(11,113)は、前記パッチ画像毎に、前記各追加用画像(123)に対応する前記各復元追加用画像(124)を生成し、
前記評価部(11,114)は、前記パッチ画像毎に、前記各追加用画像(123)の前記評価値を算出し、
前記抽出部(11,115)は、前記パッチ画像毎に、算出された前記評価値に基づいて、前記1つ以上の追加用画像(126)を前記複数の追加用画像(123)から抽出し、
前記追加学習部(11,116)は、前記パッチ画像毎に、機械学習により、前記1つ以上の第2学習画像(126A)それぞれが与えられると、与えられた前記1つ以上の第2学習画像(126A)それぞれに適合する復元画像を生成するように前記生成モデル(5)を更に訓練する、
構成1から6のいずれかに記載の学習装置(1,1C)。
【0317】
(構成11)
前記生成モデル(5)は、ニューラルネットワークにより構成される、
構成1から10のいずれかに記載の学習装置。
【0318】
(構成12)
前記機械学習は、主成分分析を含み、
前記生成モデル(5)は、前記主成分分析により導出された固有ベクトルにより構成される、
構成1から10のいずれかに記載の学習装置(1,1C)。
【0319】
(構成13)
前記所定の特徴は、製造ラインで搬送される製品であって、欠陥を含まない製品である、
構成1から12のいずれかに記載の学習装置(1,1C)。
【0320】
(構成14)
前記所定の特徴を観測することで得られた観測画像(221)を取得する取得部(21)と、
構成1から13のいずれかに記載の学習装置(1,1C)により訓練された前記生成モデル(5)に前記観測画像(221)を入力することで、前記観測画像(221)に対応する復元観測画像(223)を生成する生成部(22)と、
生成された前記復元観測画像(223)及び前記観測画像(221)の間の差分に基づいて、前記所定の特徴以外の他の特徴が前記観測画像(221)に写っているか否かを検出する検出部(23)と、
を備える、
検出装置(2)。
【0321】
(構成15)
所定の特徴の写る1つ以上の第1学習画像(121)を使用した機械学習により訓練された生成モデル(5)を取得するモデル取得部(11,111B)であって、
生成モデル(5)は、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記生成モデル(5)は、前記1つ以上の第1学習画像(121)それぞれが与えられると、与えられた前記1つ以上の第1学習画像(121)それぞれに適合する復元画像を生成するように訓練されている、
モデル取得部(11,111B)と、
前記所定の特徴の写る複数の追加用画像(123)を取得する画像取得部(11,112)と、
前記複数の追加用画像(123)それぞれを前記生成モデル(5)に与えることで、前記複数の追加用画像(123)それぞれを復元した複数の復元追加用画像(124)それぞれを生成する生成部(11,113)と、
前記各追加用画像(123)及び前記各復元追加用画像(124)の間の差分に応じて、前記各追加用画像(124)の評価値であって、前記各復元追加用画像(124)における前記各追加用画像(124)の復元の程度に対する評価値を算出する評価部(11,114)と、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像(126)を前記複数の追加用画像(123)から抽出する抽出部(11,115)と、
機械学習により、抽出された前記1つ以上の追加用画像(126)に含まれる1つ以上の第2学習画像(126A)それぞれが与えられると、与えられた前記1つ以上の第2学習画像(126A)それぞれに適合する復元画像を生成するように前記生成モデル(5)を更に訓練する追加学習部(11,116)と、
を備える、
学習装置(11B)。
【0322】
(構成16)
コンピュータが、
所定の特徴の写る1つ以上の第1学習画像(121)を取得するステップと、
前記1つ以上の第1学習画像(121)を使用して、生成モデル(5)の機械学習を実施するステップであって、
生成モデル(5)は、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像(121)それぞれが与えられると、与えられた前記1つ以上の第1学習画像(121)それぞれに適合する復元画像を生成するように前記生成モデル(5)を訓練する、
ステップと、
前記所定の特徴の写る複数の追加用画像(123)を取得するステップと、
前記複数の追加用画像(123)それぞれを前記生成モデル(5)に与えることで、前記複数の追加用画像(123)それぞれを復元した複数の復元追加用画像(124)それぞれを生成するステップと、
前記各追加用画像(123)及び前記各復元追加用画像(124)の間の差分に応じて、前記各追加用画像(123)の評価値であって、前記各復元追加用画像(124)における前記各追加用画像(123)の復元の程度に対する評価値を算出するステップと、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像(126)を前記複数の追加用画像(123)から抽出するステップと、
機械学習により、抽出された前記1つ以上の追加用画像(126)に含まれる1つ以上の第2学習画像(126A)それぞれが与えられると、与えられた前記1つ以上の第2学習画像(126A)それぞれに適合する復元画像を生成するように前記生成モデル(5)を更に訓練するステップと、
を実行する、
学習方法。
【0323】
(構成17)
コンピュータに、
所定の特徴の写る1つ以上の第1学習画像(121)を取得するステップと、
前記1つ以上の第1学習画像(121)を使用して、生成モデル(5)の機械学習を実施するステップであって、
生成モデル(5)は、画像が与えられると、与えられた画像を特徴量に変換し、前記特徴量から与えられた前記画像を復元した画像を生成するように構成され、
前記機械学習により、前記1つ以上の第1学習画像(121)それぞれが与えられると、与えられた前記1つ以上の第1学習画像(121)それぞれに適合する復元画像を生成するように前記生成モデル(5)を訓練する、
ステップと、
前記所定の特徴の写る複数の追加用画像(123)を取得するステップと、
前記複数の追加用画像(123)それぞれを前記生成モデル(5)に与えることで、前記複数の追加用画像(123)それぞれを復元した複数の復元追加用画像(124)それぞれを生成するステップと、
前記各追加用画像(123)及び前記各復元追加用画像(124)の間の差分に応じて、前記各追加用画像(123)の評価値であって、前記各復元追加用画像(124)における前記各追加用画像(123)の復元の程度に対する評価値を算出するステップと、
前記評価値に基づいて、復元の程度が低いと評価される1つ以上の追加用画像(126)を前記複数の追加用画像(123)から抽出するステップと、
機械学習により、抽出された前記1つ以上の追加用画像(126)に含まれる1つ以上の第2学習画像(126A)それぞれが与えられると、与えられた前記1つ以上の第2学習画像(126A)それぞれに適合する復元画像を生成するように前記生成モデル(5)を更に訓練するステップと、
を実行させるための、
学習プログラム。
【0324】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0325】
1,1B,1C 学習装置、2 検出装置、5 生成モデル、11,21 制御部、12,22 記憶部、13,23 通信インタフェース、14,24 入力装置、15,25 表示装置、16,26 ドライブ、27 外部インタフェース、51 入力層、52 中間層、53 出力層、60,61 検出パラメータ候補、65 (2値化の)閾値,66 (判定の)閾値、70 表示画面、71,73 ラジオボタン、72,74 入力欄、75,78~81,90,400~402 領域、76 サムネイル画像、77 カーソル、82~89 ボタン、91,92 記憶媒体、100 検出システム、110 第1取得部、111 学習部、111B モデル取得部、112 第2取得部、113 生成部、114 評価部、115 抽出部、116 追加学習部、117,117C 第3取得部、118 表示制御部、119 選択受付部、120 学習プログラム、121 第1学習画像、123 追加用画像、124 復元追加用画像、125 評価値、126 (抽出された)追加用画像、126A 第2学習画像、127 評価画像、127A 第1評価画像、127B 第2評価画像、128 復元評価画像、128A 第1復元評価画像、128B 第2復元評価画像、129 学習結果データ、182,183,183A,183B,225 差分画像、211 取得部、212 生成部、213 検出部、214 出力部、220 検出プログラム、221 観測画像、223 復元観測画像、405,406 操作ボタン、1110 保存処理部、CA カメラ、I10 画像、I11 復元画像、I12 差分画像、I13 二値化画像、I14 検出画像、L 欠陥、M 演算パラメータ、P1,P2,P3,P4 パッチ画像、R 製品。