(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】検査装置、ユニット選択装置、検査方法、及び検査プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240214BHJP
G01N 21/88 20060101ALI20240214BHJP
【FI】
G06T7/00 350C
G01N21/88 J
(21)【出願番号】P 2020108201
(22)【出願日】2020-06-23
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100124039
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100179213
【氏名又は名称】山下 未知子
(74)【代理人】
【識別番号】100170542
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】栗田 真嗣
(72)【発明者】
【氏名】山元 左近
(72)【発明者】
【氏名】長谷川 友紀
(72)【発明者】
【氏名】半澤 雄希
(72)【発明者】
【氏名】長江 成典
(72)【発明者】
【氏名】加藤 豊
【審査官】小太刀 慶明
(56)【参考文献】
【文献】特開2020-085705(JP,A)
【文献】特開2016-148747(JP,A)
【文献】国際公開第2020/002704(WO,A1)
【文献】国際公開第2019/176407(WO,A1)
【文献】米国特許出願公開第2020/0097771(US,A1)
【文献】中国特許出願公開第109741346(CN,A)
【文献】中国特許出願公開第109490316(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06T 1/00 - 1/60
G01N 21/84 - 21/958
G06N 20/00 - 20/20
(57)【特許請求の範囲】
【請求項1】
検査を実施する対象製品の写る対象画像を取得するデータ取得部と、
第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出する領域抽出部であって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、領域抽出部と、
前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するモデル演算部であって、
前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、
モデル演算部と、
前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定する判定部と、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力する出力部と、
を備える、
検査装置。
【請求項2】
前記第2推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器であって、復号化された前記画像は欠陥の尤度を画素毎に示す、復号器を備え、
前記符号器は、入力側から順に直列に接続される複数の符号ユニットを含み、
前記各符号ユニットは、入力データよりも次元の低い特徴マップに入力データを変換するように構成され、
前記複数回の射影処理を前記対象画像に対して実行することは、入力側から順に前記各符号ユニットの演算処理を実行することにより構成され、
前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の符号ユニットのうちの少なくとも1つにより生成される特徴マップに統合される、
請求項1に記載の検査装置。
【請求項3】
前記複数の符号ユニットの中から少なくとも1つ以上の対象符号ユニットを選択する選択部を更に備え、
前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、選択された前記少なくとも1つ以上の対象符号ユニットにより生成される特徴マップに統合される、
請求項2に記載の検査装置。
【請求項4】
前記選択部は、
所定の欠陥を含む評価用製品の写る評価画像を取得し、
前記第1推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、
前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第2推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、かつ
前記試行の結果に基づいて、最適な符号ユニットを前記対象符号ユニットとして選択する、
請求項3に記載の検査装置。
【請求項5】
前記選択部は、
所定の欠陥を含む評価用製品の写る評価画像を取得し、
前記第1推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、
前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第2推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、
前記試行の結果をオペレータに対して出力し、かつ
前記オペレータの指定による、前記複数の符号ユニットの中からの前記少なくとも1つの対象符号ユニットの選択を受け付ける、
請求項3に記載の検査装置。
【請求項6】
前記符号器は、畳み込みニューラルネットワークにより構成され、
前記各符号ユニットは、1又は複数の畳み込み層及びプーリング層により構成される、
請求項2から5のいずれか1項に記載の検査装置。
【請求項7】
前記欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する設定部を更に備え、
前記領域抽出部は、設定された前記パラメータの値に応じて、前記注目領域を抽出する、
請求項1から6のいずれか1項に記載の検査装置。
【請求項8】
前記第1推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器を備え、
前記領域抽出部は、
前記第1推定モデルの前記符号器及び前記復号器を使用して、前記対象画像に対して対象復号化画像を生成し、かつ
生成された前記対象復号化画像及び前記対象画像の間の差分領域を算出し、
前記パラメータは、前記差分領域を拡げる程度を規定する拡大パラメータを含み、
前記領域抽出部は、設定された前記拡大パラメータの値に応じて、算出された前記差分領域を拡げることで、前記注目領域の抽出結果を取得する、
請求項7に記載の検査装置。
【請求項9】
前記注目領域の抽出結果は、アテンションマップにより構成される、
請求項1から8のいずれか1項に記載の検査装置。
【請求項10】
前記第1推定モデルは、前記第1学習データを使用した機械学習により、前記欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように訓練されることで生成されたものである、
請求項1から9のいずれか1項に記載の検査装置。
【請求項11】
前記第2推定モデルは、前記第2学習データを使用した機械学習により、欠陥の尤度を判定する能力を獲得するように訓練されることで生成されたものである、
請求項1から10のいずれか1項に記載の検査装置。
【請求項12】
コンピュータが、
検査を実施する対象製品の写る対象画像を取得するステップと、
第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、
前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するステップであって、
前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、
ステップと、
前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、
を実行する、
検査方法。
【請求項13】
コンピュータに、
検査を実施する対象製品の写る対象画像を取得するステップと、
第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、
前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するステップであって、
前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、
ステップと、
前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、
を実行させるための、
検査プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検査装置、ユニット選択装置、検査方法、及び検査プログラムに関する。
【背景技術】
【0002】
従来、製造ライン等の製品を製造する場面において、製造される製品を画像センサにより観測し、得られた撮影画像により製品に欠陥があるか否かを検査する技術が利用されている。例えば、特許文献1では、学習済みの第1のニューラルネットワークに基づいて画像に写る検査対象物が正常であるか異常であるかを判定し、検査対象物が異常であると判定した場合に、学習済みの第2のニューラルネットワークに基づいて当該異常の種類を分類する検査装置が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワーク等の機械学習モデルを利用すれば、学習データを使用した機械学習を実施することで、所望の推定タスクを遂行する能力を獲得した推定モデルを生成することができる。そのため、欠陥の有無が特定された製品の画像を学習データとして使用して機械学習を実施することで、製品の外観検査に利用可能な推定モデルを生成することができる(例えば、上記特許文献1)。なお、このような推定モデルは、機械学習を用いる方法に限られず、例えば、人手による方法等の他の方法でも生成することができる。しかしながら、本件発明者らは、この学習データに基づいて生成される推定モデルを用いた検査方法には、次のような問題点があることを見出した。
【0005】
推定モデルの性能(すなわち、外観検査の精度)に影響を与える要因の一つに、推定モデルの生成に使用される学習データの質が挙げられる。基本的には、収集される学習データが多岐にわたるほど(換言すると、学習データに表れる欠陥の状況が多様であるほど)、生成される推定モデルの性能の向上を図ることができる。しかしながら、欠陥の種類、及び製品の外観を含む背景の種別が多くなればなるほど、欠陥の種別及び背景の種別の組み合わせが増加し、学習データとして収集されることが所望されるサンプルの件数及び種類も増加する。そのため、検査を実施する対象環境において、あらゆる状況を想定した上で学習データを事前に収集するのにはコストがかかり、現実的ではないという問題点があった。
【0006】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、学習データを収集するコストを抑えながら、推定モデルによる外観検査の精度の向上を図る技術を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0008】
すなわち、本発明の一側面に係る検査装置は、検査を実施する対象製品の写る対象画像を取得するデータ取得部と、第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出する領域抽出部であって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、領域抽出部と、前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するモデル演算部であって、前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、モデル演算部と、前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定する判定部と、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力する出力部と、を備える。
【0009】
当該構成では、欠陥の尤度を判定する能力を獲得した第2推定モデルの他に、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて生成された第1推定モデルを外観検査に使用する。この対象環境に特化型の第1推定モデルの使用により、対象環境における外観検査の精度の向上を見込むことができる。加えて、当該構成では、第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含む。第1推定モデルによる注目領域の抽出結果は、第2推定モデルの演算処理の過程において、複数の特徴マップのうちの少なくともいずれか1つに統合される。第1推定モデルによる注目領域の抽出結果をどの特徴マップに統合するかは、対象製品に欠陥があるか否かについての判定精度がなるべく高くなるように決定することができる。したがって、当該構成によれば、多様な外観を有し得る製品に対して、推定モデルによる外観検査の精度の向上を期待することができる。
【0010】
上記一側面に係る検査装置において、前記第2推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器であって、復号化された前記画像は欠陥の尤度を画素毎に示す、復号器を備えてよい。前記符号器は、入力側から順に直列に接続される複数の符号ユニットを含んでよい。前記各符号ユニットは、入力データよりも次元の低い特徴マップに入力データを変換するように構成されてよい。前記複数回の射影処理を前記対象画像に対して実行することは、入力側から順に前記各符号ユニットの演算処理を実行することにより構成されてよい。そして、前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の符号ユニットのうちの少なくとも1つにより生成される特徴マップに統合されてよい。当該構成によれば、第1推定モデルによる注目領域の抽出結果を統合する次元を容易に変更することができ、これにより、推定モデルによる外観検査の精度の向上を容易に操作することができる。
【0011】
上記一側面に係る検査装置は、前記複数の符号ユニットの中から少なくとも1つ以上の対象符号ユニットを選択する選択部を更に備えてもよい。そして、前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、選択された前記少なくとも1つ以上の対象符号ユニットにより生成される特徴マップに統合されてよい。当該構成によれば、対象符号ユニットの選択により、推定モデルによる外観検査の精度を最適化することができる。
【0012】
上記一側面に係る検査装置において、前記選択部は、所定の欠陥を含む評価用製品の写る評価画像を取得し、前記第1推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第2推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、かつ前記試行の結果に基づいて、最適な符号ユニットを前記対象符号ユニットとして選択してもよい。当該構成によれば、推定モデルによる外観検査の精度を自動的に最適化することができる。
【0013】
上記一側面に係る検査装置において、前記選択部は、所定の欠陥を含む評価用製品の写る評価画像を取得し、前記第1推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第2推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、前記試行の結果をオペレータに対して出力し、かつ前記オペレータの指定による、前記複数の符号ユニットの中からの前記少なくとも1つの対象符号ユニットの選択を受け付けてもよい。当該構成によれば、推定モデルによる外観検査の精度をオペレーションにより最適化することができる。
【0014】
上記一側面に係る検査装置において、前記符号器は、畳み込みニューラルネットワークにより構成されてよく、前記各符号ユニットは、1又は複数の畳み込み層及びプーリング層により構成されてよい。当該構成によれば、第2推定モデルを容易に実装することができる。
【0015】
上記一側面に係る検査装置は、前記欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する設定部を更に備えてよい。そして、前記領域抽出部は、設定された前記パラメータの値に応じて、前記注目領域を抽出してもよい。当該構成によれば、第1推定モデルの推定結果を反映する程度を調整することができ、これにより、対象環境における推定モデルによる外観検査の精度を最適化することができる。
【0016】
上記一側面に係る検査装置において、前記第1推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器を備えてよい。前記領域抽出部は、前記第1推定モデルの前記符号器及び前記復号器を使用して、前記対象画像に対して対象復号化画像を生成し、かつ生成された前記対象復号化画像及び前記対象画像の間の差分領域を算出してもよい。前記パラメータは、前記差分領域を拡げる程度を規定する拡大パラメータを含んでもよい。そして、前記領域抽出部は、設定された前記拡大パラメータの値に応じて、算出された前記差分領域を拡げることで、前記注目領域の抽出結果を取得してもよい。当該構成によれば、第1推定モデルの推定結果を反映する程度を容易に調整することができる。
【0017】
上記一側面に係る検査装置において、前記注目領域の抽出結果は、アテンションマップにより構成されてよい。当該構成によれば、特徴マップ及びアテンションマップは共に画像データであるため、抽出結果の統合処理を容易に実装することができる。
【0018】
上記一側面に係る検査装置において、前記第1推定モデルは、前記第1学習データを使用した機械学習により、前記欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように訓練されることで生成されたものであってよい。当該構成によれば、第1推定モデルを容易に実装することができる。
【0019】
上記一側面に係る検査装置において、前記第2推定モデルは、前記第2学習データを使用した機械学習により、欠陥の尤度を判定する能力を獲得するように訓練されることで生成されたものであってよい。当該構成によれば、第2推定モデルを容易に実装することができる。
【0020】
上記各形態に係る検査装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0021】
例えば、本発明の一側面に係る検査方法は、コンピュータが、検査を実施する対象製品の写る対象画像を取得するステップと、第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するステップであって、前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、ステップと、前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、を実行する、情報処理方法である。
【0022】
また、例えば、本発明の一側面に係る検査プログラムは、コンピュータに、検査を実施する対象製品の写る対象画像を取得するステップと、第1推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第1推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、前記第1推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第2推定モデルの演算処理を実行するステップであって、前記第2推定モデルは、欠陥の写る複数の第2学習画像を含む第2学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第2推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第2推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか1つに統合される、ステップと、前記第2推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、を実行させるための、プログラムである。
【発明の効果】
【0023】
本発明によれば、推定モデルによる外観検査の精度の向上を図ることができる。
【図面の簡単な説明】
【0024】
【
図1】
図1は、本発明が適用される場面の一例を模式的に例示する。
【
図2】
図2は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。
【
図3】
図3は、実施の形態に係る検査装置のハードウェア構成の一例を模式的に例示する。
【
図4】
図4は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。
【
図5】
図5は、実施の形態に係る検査装置のソフトウェア構成の一例を模式的に例示する。
【
図6】
図6は、実施の形態に係るモデル生成装置による第1推定モデルの生成に関する処理手順の一例を示すフローチャートである。
【
図7】
図7は、実施の形態に係るモデル生成装置による第2推定モデルの生成に関する処理手順の一例を示すフローチャートである。
【
図8】
図8は、実施の形態に係る検査装置による対象符号ユニットの選択に関する処理手順の一例を示すフローチャートである。
【
図9】
図9は、実施の形態に係る検査装置による外観検査に関する処理手順の一例を示すフローチャートである。
【
図10】
図10は、他の形態に係る第2推定モデルの一例を模式的に例示する。
【
図11】
図11は、他の形態に係るユニット選択装置のハードウェア構成の一例を模式的に例示する。
【
図12】
図12は、他の形態に係るユニット選択装置のソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【0025】
本発明の一側面では、対象環境において得られる欠陥のない製品の外観の知見に基づいて、欠陥の蓋然性の高い領域を抽出するように構成された第1推定モデル、及び対象環境に関係なく、欠陥の有無を判定するように構成された第2推定モデルの2つの推定モデルを外観検査に使用する。第2推定モデルによれば、対象製品に欠陥があるか否かを判定することができる。ただし、対象環境において表れる製品の状況に影響を受けて、第2推定モデルのみを使用した判定では誤りが生じる可能性がある。例えば、製品の外観模様が欠陥パターンに類似していることで、当該製品の外観模様を欠陥と誤る可能性がある。
【0026】
そこで、第1推定モデルを外観検査に更に使用する。第1推定モデルによれば、対象環境において欠陥のない製品には表れない画像領域、すなわち、対象環境において欠陥の生じている蓋然性の高い領域を優先的に抽出することができる。そのため、2つの推定モデルの推定結果を融合する(すなわち、第1推定モデルにより欠陥を検出する範囲を絞り込み、第2推定モデルによりその範囲に欠陥が存在するか否かを判定する)ことで、外観検査の精度の最適化を図ることができる。つまり、学習データを収集するコストを抑えたことで、少なくともいずれか一方の推定モデルの推定精度が多少低くても、対象環境における外観検査の精度の向上を見込むことができる。
【0027】
しかしながら、製品の外観は多様である。例えば、パターン化された外観(木目調等)を製品が有する場合、判定する範囲を絞るよりも、より広い範囲を参照した方が、製品の正常な外観か欠陥かを判別しやすいことがある。一方で、例えば、部分的にデザインの施された単純な外観を製品が有する場合、判定する範囲を絞った方が、製品の正常な外観か欠陥かを判別しやすいことがある。したがって、製品の外観を考慮せず、2つの推定モデルの推定結果を単純に融合した場合には、製品の輪郭、模様等の正常な外観を欠陥と誤って判別してしまい、外観検査の精度がかえって低下してしまう可能性があると想定された。そこで、本発明の一側面では、第2推定モデルの演算処理の過程において第1推定モデルによる注目領域の抽出結果を第2推定モデルが生成する複数の特徴マップのうちの少なくとも1つに統合することにした。
【0028】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0029】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。
図1に示されるとおり、本実施形態に係る外観検査システム100は、モデル生成装置1及び検査装置2を備えている。
【0030】
本実施形態に係るモデル生成装置1は、外観検査に利用可能な第1推定モデル5及び第2推定モデル6を生成するように構成されたコンピュータである。第1推定モデル5は、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第1学習画像を含む第1学習データ30に基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成される。第2推定モデル6は、欠陥の写る複数の第2学習画像を含む第2学習データ35に基づいて、欠陥の尤度を判定する能力を獲得するように生成される。各学習データ(30、35)に基づいて、各能力を獲得可能に各推定モデル(5、6)が生成されるのであれば、各推定モデル(5、6)の生成方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、各推定モデル(5、6)は、各学習データ(30、35)に基づいて、手作業により生成されてもよい。本実施形態では、各推定モデル(5、6)の生成方法に機械学習を採用する。これにより、各推定モデル(5、6)を容易に実装することができる。
【0031】
具体的に、モデル生成装置1は、検査を実施する対象環境において得られた欠陥のない製品の写る複数の良品画像31を含む第1学習データ30を取得する。良品画像31は、第1学習画像の一例である。モデル生成装置1は、第1学習データ30を使用した機械学習により、与えられた画像から、欠陥の写っている蓋然性を有する領域(すなわち、欠陥に由来する特徴を含む領域)を注目領域として抽出する能力を獲得するように第1推定モデル5を訓練する。これにより、第1学習データ30に基づいて、当該能力を獲得した学習済みの第1推定モデル5が生成される。
【0032】
また、モデル生成装置1は、欠陥の写る複数の欠陥画像371を含む第2学習データ35を取得する。欠陥画像371は、第2学習画像の一例である。モデル生成装置1は、第2学習データ35を使用した機械学習により、与えられた画像(例えば、製品の写る画像)に対して欠陥の尤度を判定する能力を獲得するように第2推定モデル6を訓練する。これにより、第2学習データ35に基づいて、当該能力を獲得した学習済みの第2推定モデル6が生成される。
【0033】
一方、検査装置2は、生成された2つの推定モデル(5、6)を使用して、製品の外観検査を実施するように構成されたコンピュータである。具体的に、検査装置2は、検査を実施する対象製品Rの写る対象画像221を取得する。本実施形態では、カメラSが、対象製品Rを撮像可能な位置に適宜配置されており、検査装置2は、このカメラSに接続されている。検査装置2は、このカメラSから対象画像221を取得する。
【0034】
検査装置2は、第1推定モデル5を使用して、取得された対象画像221から注目領域を抽出する。次に、検査装置2は、第1推定モデル5による対象画像221に対する注目領域の抽出結果を使用して、第2推定モデル6の演算処理を実行する。この第2推定モデル6の演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像221に対して実行することで、次元の異なる複数の特徴マップ63を生成することを含むように構成される。各射影処理は、入力データよりも低次元の空間に入力データを射影するように構成される。
【0035】
複数回の射影処理により、次元の異なる複数の特徴マップ63を生成する構成は、実施の形態に応じて適宜決定されてよい。例えば、第2推定モデル6の演算処理は、直列的に順次実行されるN(Nは2以上の整数)回の射影処理を含んでもよい。すなわち、第1番目の射影処理は、対象画像221を低次元の空間に射影するように構成されてよい。そして、第2番目以降の射影処理(第k番目の射影処理)は、前の射影処理(第k-1番目の射影処理)の結果を更に低次元の空間に射影するように構成されてよい。
【0036】
第1推定モデル5による注目領域の抽出結果は、この第2推定モデル6の演算処理の過程において、複数の特徴マップ63のうちの少なくともいずれか1つに統合される。検査装置2は、第2推定モデル6の演算結果に基づいて、対象製品Rに欠陥があるか否かを判定する。そして、検査装置2は、対象製品Rに欠陥があるか否かを判定した結果を示す情報を出力する。これにより、本実施形態に係る検査装置2は、各推定モデル(5、6)を使用して、製品の外観検査を実施する。
【0037】
以上のとおり、本実施形態では、対象製品Rの外観検査に、欠陥の尤度を判定する能力を獲得した第2推定モデル6の他に、検査を実施する対象環境において得られた複数の良品画像31に基づいて生成された第1推定モデル5が使用される。この対象環境に特化型の第1推定モデル5の使用により、対象製品Rに対する外観検査の精度の向上を見込むことができる。加えて、本実施形態では、第1推定モデル5による注目領域の抽出結果は、第2推定モデル6の演算過程において、次元の異なる複数の特徴マップ63のうちの少なくともいずれか1つに統合される。第1推定モデル5による注目領域の抽出結果をどの特徴マップに統合するかは、対象製品に欠陥があるか否かについての判定精度がなるべく高くなるように決定される。どの特徴マップに統合するかは、対象製品のある程度多様な外観に対応できるように検査装置2の製造者において予め実験を重ねて決定されていてもよいし、特定の外観を有する対象製品に対応して精度の高い欠陥判定結果が得られるように検査装置2が使用される対象環境における実験を経て決定されてもよい。第2推定モデル6の演算処理は、第1推定モデル5による注目領域の抽出結果を統合する次元を変更可能に構成されてもよい。この場合には、欠陥の尤度を判定する範囲を次元レベルで調整することができ、その結果、対象製品Rの有する外観に適切な統合処理の実施を期待することができる。したがって、本実施形態によれば、多様な外観を有し得る対象製品Rに対して、2つの推定モデル(5、6)による外観検査の精度の向上を期待することができる。
【0038】
なお、
図1の例では、モデル生成装置1及び検査装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び検査装置2の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び検査装置2の間では、記憶媒体を利用して、データがやりとりされてよい。
【0039】
また、
図1の例では、モデル生成装置1及び検査装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る外観検査システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置1及び検査装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び検査装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
【0040】
対象製品Rは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。対象製品Rは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。
【0041】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図2は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、
図2では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
【0042】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、第1学習データ30、第2学習データ35、第1学習結果データ121、第2学習結果データ125等の各種情報を記憶する。
【0043】
モデル生成プログラム81は、各推定モデル(5、6)を生成する後述の情報処理(
図6及び
図7)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。第1学習データ30は、第1推定モデル5の生成に利用される。第2学習データ35は、第2推定モデル6の生成に利用される。第1学習結果データ121は、生成された第1推定モデル5に関する情報を示す。第2学習結果データ125は、生成された第2推定モデル6に関する情報を示す。本実施形態では、各学習結果データ(121、125)は、モデル生成プログラム81を実行した結果として生成される。詳細は後述する。
【0044】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は任意に選択されてよい。モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、学習画像を得るためのカメラに接続されてよい。
【0045】
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
【0046】
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81、第1学習データ30、及び第2学習データ35の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81、第1学習データ30、及び第2学習データ35の少なくともいずれかを取得してもよい。なお、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0047】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
【0048】
<検査装置>
図3は、本実施形態に係る検査装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る検査装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0049】
検査装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、検査プログラム82、第1学習結果データ121、第2学習結果データ125等の各種情報を記憶する。
【0050】
検査プログラム82は、対象製品Rの外観検査に関する後述の情報処理(
図8及び
図9)を検査装置2に実行させるためのプログラムである。検査プログラム82は、当該情報処理の一連の命令を含む。検査プログラム82、第1学習結果データ121、及び第2学習結果データ125のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、検査装置2は、検査プログラム82、第1学習結果データ121、及び第2学習結果データ125のうちの少なくともいずれかを記憶媒体92から取得してもよい。
【0051】
また、
図3の例では、検査装置2は、外部インタフェース24を介して、カメラS(撮像装置)に接続されている。これにより、検査装置2は、カメラSから対象画像221を取得可能に構成される。ただし、カメラSとの接続方法は、このような例に限定されなくてもよい。例えば、カメラSが通信インタフェースを備える場合、検査装置2は、通信インタフェース23を介して、カメラSに接続されてもよい。カメラSの種類は、実施の形態に応じて適宜選択されてよい。カメラSは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。
【0052】
なお、検査装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。検査装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。また、検査装置2及びカメラSは、画像センサとして一体的に構成されてもよい。
【0053】
[ソフトウェア構成]
<モデル生成装置>
図4は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、
図4に示されるとおり、本実施形態に係るモデル生成装置1は、第1取得部111、第1学習部112、第2取得部113、第2学習部114、及び保存処理部115をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0054】
第1取得部111は、複数の良品画像31を含む第1学習データ30を取得する。第1学習部112は、第1学習データ30を使用して、第1推定モデル5の機械学習を実施する。第2取得部113は、複数の欠陥画像371を含む第2学習データ35を取得する。第2学習部114は、第2学習データ35を使用して、第2推定モデル6の機械学習を実施する。保存処理部115は、機械学習により生成された学習済みの第1推定モデル5に関する情報を第1学習結果データ121として生成する。同様に、保存処理部115は、機械学習により生成された学習済みの第2推定モデル6に関する情報を第2学習結果データ125として生成する。そして、保存処理部115は、生成された各学習結果データ(121、125)を所定の記憶領域に保存する。
【0055】
(各モデルの構成及び機械学習の方法の一例)
上記演算処理を実装可能であれば、各推定モデル(5、6)の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。第1推定モデル5は、欠陥の写っている蓋然性を有する領域を注目領域として抽出可能に適宜構成されてよい。第2推定モデル6は、複数回の射影処理により次元の異なる複数の特徴マップ63を演算過程で生成した上で、欠陥の尤度を判定可能に適宜構成されてよい。
【0056】
図4に示されるとおり、本実施形態では、第1推定モデル5は、与えられた画像(入力画像)を特徴量に変換する符号器51、及び特徴量から画像を復号化する復号器53を備えるように構成される。第2推定モデル6は、与えられた画像(入力画像)を特徴量に変換する符号器61、及び特徴量から画像を復号化する復号器65を備えるように構成される。復号器65により復号化される画像は、欠陥の尤度を画素毎に示すように構成される。すなわち、復号化された画像の各画素は、各画素に写る対象が欠陥であるか否かの程度に関する情報を示すように構成される。符号器61は、入力側から順に直列に接続される複数の符号ユニット62を含み、各符号ユニット62は、入力データよりも次元の低い特徴マップ63に入力データを変換するように構成される。
【0057】
加えて、本実施形態では、上記各能力を獲得した各推定モデル(5、6)は、機械学習により生成される。そのため、各推定モデル(5、6)には、機械学習により調整可能な演算パラメータを有する機械学習モデルが用いられる。機械学習モデルの構成及び種類はそれぞれ、実施の形態に応じて適宜選択されてよい。本実施形態では、各推定モデル(5、6)には、ニューラルネットワークが用いられる。具体的には、第1推定モデル5の符号器51及び復号器53はそれぞれ、全結合型ニューラルネットワークにより構成される。第2推定モデル6の符号器61は畳み込みニューラルネットワークにより構成される。当該構成によれば、各推定モデル(5、6)を容易に実装することができる。
【0058】
(1)第1推定モデル
第1推定モデル5の符号器51及び復号器53はそれぞれ、入力層(511、531)、中間(隠れ)層(512、532)、及び出力層(513、533)を備えている。
図4の例では、符号器51及び復号器53は3層で構成されているが、符号器51及び復号器53の層の数はそれぞれ任意に選択されてよい。例えば、符号器51及び復号器53の少なくとも一方は、2層以上の中間層を備えてもよい。
【0059】
本実施形態では、符号器51の入力層511には、対象画像221等の画像が入力され、入力画像から算出された特徴量が出力層513から出力される。また、復号器53の入力層531には、符号器51により算出された特徴量が入力され、入力された特徴量から復号化された画像(復号化画像)が出力層533から出力される。しかしながら、上記推定処理を実行可能であれば、符号器51及び復号器53の入出力の形式は、このような例に限定されなくてよい。例えば、各入力層(511、531)は、上記以外の他の情報が更に入力されるように構成されてよい。また、各出力層(513、533)は、上記以外の他の情報を更に出力するように構成されてよい。
【0060】
各層(511、512、513、531、532、533)は、1又は複数のニューロン(ノード)を備える。各層(511、512、513、531、532、533)に含まれるニューロンの数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。入力層(511、531)は、例えば、入力画像、特徴量等の入力されるデータ及びその形式に応じて適宜決定されてよい。出力層(513、533)は、例えば、特徴量、推定結果(例えば、復号化画像)等の出力するデータ及びその形式に応じて適宜決定されてよい。
図4の例では、各層(511、512、513、531、532、533)に含まれるに含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。ただし、各ニューロンの結合関係は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。
【0061】
各層(511、512、513、531、532、533)の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてもよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層(511、512、513、531、532、533)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、符号器51及び復号器53それぞれの演算処理に利用される演算パラメータの一例である。
【0062】
上記第1推定モデル5の機械学習では、第1学習部112は、各良品画像31を訓練データ及び正解データとして使用する。すなわち、第1学習部112は、良品画像31を符号器51の入力層511に入力し、符号器51及び復号器53の順伝播の演算処理を実行する。この演算処理の結果、第1学習部112は、生成された復号化画像を復号器53の出力層533から取得する。第1学習部112は、取得された復号化画像及び入力した良品画像31の間の誤差(再構成誤差)を算出する。第1学習部112は、各良品画像31について、算出される誤差が小さくなるように符号器51及び復号器53の各演算パラメータの値の調整を繰り返す。これにより、学習済みの第1推定モデル5を生成することができる。
【0063】
本実施形態に係る学習済みの第1推定モデル5によれば、機械学習に使用された良品画像31及びこれに類似する画像、すなわち、検査を実施する対象環境で得られる欠陥のない製品(良品)の外観の写る画像は、精度よく再構成することができる。これに対して、それ以外の画像、例えば、欠陥の写る画像については再構成の精度が下がる。つまり、再構成誤差の大きい領域は、欠陥の写る蓋然性の高い領域である。したがって、本実施形態に係る第1推定モデル5は、上記機械学習により、再構成誤差に基づいて、欠陥の写っている蓋然性の有する領域を抽出する能力を獲得することができる。
【0064】
保存処理部115は、上記機械学習により生成された学習済みの第1推定モデル5を再生するための第1学習結果データ121を生成する。学習済みの第1推定モデル5を再生可能であれば、第1学習結果データ121の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、第1学習結果データ121は、上記機械学習の調整により得られた第1推定モデル5の各演算パラメータの値を示す情報を含んでもよい。場合によって、第1学習結果データ121は、第1推定モデル5(符号器51及び復号器53)の構造を示す情報を更に含んでもよい。構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部115は、生成された第1学習結果データ121を所定の記憶領域に保存する。
【0065】
(2)第2推定モデル
第2推定モデル6の符号器61は、複数の符号ユニット62を含む。各符号ユニット62は、1又は複数の畳み込み層621及びプーリング層623により構成される。
【0066】
畳み込み層621は、与えられたデータに対する畳み込み演算を行うように構成される。畳み込み演算とは、与えられたデータと所定のフィルタとの相関を算出する処理に相当する。例えば、画像の畳み込みを行うことで、フィルタの濃淡パターンと類似する濃淡パターンを入力される画像から検出することができる。プーリング層623は、プーリング処理を行うように構成される。プーリング処理は、与えられたデータのフィルタに対する応答の強かった位置の情報を一部捨て、当該データ内に現れる特徴の微小な位置変化に対する応答の不変性を実現する。例えば、プーリング処理では、フィルタ内の最も大きな値が抽出され、それ以外の値が削除されてよい。本実施形態に係る各符号ユニット62は、このような畳み込み層621及びプーリング層623により、入力されたデータをより次元の低い特徴マップ63に変換するように構成される。
【0067】
各符号ユニット62に含まれる畳み込み層621及びプーリング層623の数は、任意に決定されてよい。
図4の例では、符号器61は、符号ユニット62以外の構成要素を含んでおらず、各符号ユニット62は、直列的に接続されている。各符号ユニット62では、畳み込み層621が、プーリング層623よりも入力側に配置されている。最も入力側に配置された符号ユニット62の畳み込み層621が符号器61の入力層を構成しており、最も出力側に配置された符号ユニット62のプーリング層623が符号器61の出力層を構成している。
【0068】
ただし、符号器61及び各符号ユニット62の構造は、このような例に限定されなくてもよい。畳み込み層621及びプーリング層623の配置及び接続関係は、実施の形態に応じて適宜決定されてよい。例えば、各符号ユニット62が、複数の畳み込み層621及び複数のプーリング層623を備える場合、畳み込み層621及びプーリング層623は口語に配置されてよい。或いは、複数の畳み込み層621が連続して配置されたのちに、1又は複数のプーリング層623が配置されてもよい。符号器61は、符号ユニット62以外の構成要素を含んでもよい。符号器61は、例えば、正規化層、ドロップアウト層、全結合層等の他の種類の層を含んでもよい。他の種類の層は、符号ユニット62内に配置されてもよい。
【0069】
一方、復号器65は、アンプーリング層651及び逆畳み込み層653を備える。アンプーリング層651は、上記プーリング処理の逆演算を実行するように構成され、逆畳み込み層653は、上記畳み込み処理の逆演算を実行するように構成される。復号器65に含まれるアンプーリング層651及び逆畳み込み層653の数は、任意に決定されてよい。
図4の例では、アンプーリング層651及び逆畳み込み層653は交互に配置されている。最も入力側に配置されるアンプーリング層651が復号器65の入力層を構成しており、最も出力側に配置される逆畳み込み層653が復号器65の出力層を構成している。ただし、復号器65の構造は、上記符号器61と同様に、このような例に限定されなくてよい。アンプーリング層651及び逆畳み込み層653の配置及び接続関係は、実施の形態に応じて適宜決定されてよい。復号器65は、アンプーリング層651及び逆畳み込み層653以外の他の種類の層を含んでもよい。
【0070】
本実施形態では、符号器61の入力層には、対象画像221等の画像が入力され、入力画像から算出された特徴量(特徴マップ)が出力層から出力される。また、復号器65の入力層には、符号器61により算出された特徴量が入力され、入力された特徴量から復号化された、欠陥の尤度の推定結果を画素毎に示す画像(判定画像)が出力層から出力される。しかしながら、上記推定処理を実行可能であれば、符号器61及び復号器65の入出力の形式は、このような例に限定されなくてよい。例えば、各入力層は、上記以外の他の情報が更に入力されるように構成されてもよい。各出力層は、上記以外の他の情報を更に出力するように構成されてよい。
【0071】
畳み込み層621は、畳み込み演算に対応するニューロン(ノード)であって、入力又は自分の層よりも前(入力側)に配置された層の出力の一部の領域に結合するニューロン(ノード)を備えている。逆畳み込み層653も、同様に、逆畳み込み演算に対応するニューロンを備えている。各層(621、653)に含まれるニューロンの数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。また、畳み込み層621の各ニューロンは、例えば、U-net等のように、隣接する層以外の層(例えば、復号器65の対応する逆畳み込み層653)のニューロンと更に接続されてもよい。
【0072】
畳み込み層621及び逆畳み込み層653の各結合には、上記第1推定モデル5の各層と同様に、重み(結合荷重)が設定される。各ニューロンには、閾値が設定される。閾値は、活性化関数により表現されてもよい。畳み込み層621及び逆畳み込み層653に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、符号器61及び復号器65の演算処理に利用される演算パラメータの一例である。
【0073】
本実施形態では、第2取得部113は、このような構造を有する第2推定モデル6の機械学習に使用可能な第2学習データ35を取得する。一例として、第2学習データ35は、複数の学習データセット36により構成される。各学習データセット36は、学習画像37及び正解画像38の組み合わせにより構成される。機械学習において、学習画像37は訓練データとして使用され、正解画像38は正解データとして使用される。少なくとも一部の学習画像37には、欠陥画像371が用いられる。学習画像37の他の一部には、欠陥の写っていない画像が用いられてもよい。学習画像37に欠陥が写る場合に、対応する正解画像38は、その欠陥の範囲を示すように構成される。
【0074】
本実施形態では、第2学習部114は、このような第2学習データ35を使用して、第2推定モデル6の機械学習を実施する。具体的に、第2学習部114は、各学習データセット36の学習画像37を符号器61の入力層に入力し、符号器61及び復号器65の順伝播の演算処理を実行する。この演算処理の結果、第2学習部114は、生成された判定画像を復号器65の出力層から取得する。第2学習部114は、取得された判定画像及び対応する正解画像38の間の誤差を算出する。第2学習部114は、各学習データセット36について、算出される誤差が小さくなるように符号器61及び復号器65の各演算パラメータの値の調整を繰り返す。これにより、学習済みの第2推定モデル6を生成することができる。なお、正解データの構成は、第2推定モデル6の出力形式に応じて適宜選択されてよい。例えば、第2推定モデル6が欠陥の種別を識別した結果を出力するように構成される場合、正解データは、正解画像38の他に又は正解画像38に代えて、欠陥の種別を示す情報を含んでもよい。
【0075】
保存処理部115は、上記機械学習により生成された学習済みの第2推定モデル6を再生するための第2学習結果データ125を生成する。学習済みの第2推定モデル6を再生可能であれば、第2学習結果データ125の構成は、第1学習結果データ121と同様に、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、第2学習結果データ125は、上記機械学習の調整により得られた第2推定モデル6の各演算パラメータの値を示す情報を含んでもよい。場合によって、第2学習結果データ125は、第2推定モデル6(符号器61及び復号器65)の構造を示す情報を更に含んでもよい。保存処理部115は、生成された第2学習結果データ125を所定の記憶領域に保存する。
【0076】
<検査装置>
図5は、本実施形態に係る検査装置2のソフトウェア構成の一例を模式的に例示する。検査装置2の制御部21は、記憶部22に記憶された検査プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された検査プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、
図5に示されるとおり、本実施形態に係る検査装置2は、データ取得部211、領域抽出部212、モデル演算部213、判定部214、出力部215、選択部216、及び設定部217をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、検査装置2の各ソフトウェアモジュールも、モデル生成装置1と同様に、制御部21(CPU)により実現される。
【0077】
データ取得部211は、検査を実施する対象製品Rの写る対象画像221を取得する。領域抽出部212は、第1学習結果データ121を保持していることで、第1推定モデル5を備えている。領域抽出部212は、第1推定モデル5を使用して、対象画像221から注目領域を抽出する。本実施形態では、領域抽出部212は、対象画像221を符号器51に入力し、符号器51及び復号器53の順伝播の演算処理を実行する。これにより、領域抽出部212は、符号器51及び復号器53を使用して、対象画像221に対して対象復号化画像223を生成する。領域抽出部212は、生成された対象復号化画像223及び対象画像221の間の差分領域を算出し、差分領域の算出結果に基づいて抽出画像225を生成する。抽出画像225は、注目領域の抽出結果の一例である。本実施形態では、抽出画像225は、欠陥である蓋然性の度合いを画素毎に示すアテンションマップにより構成されてよい。特徴マップ63及びアテンションマップは共に画像データである。そのため、注目領域の抽出結果をアテンションマップにより構成することで、当該抽出結果の統合処理を容易に実装することができる。
【0078】
モデル演算部213は、第2学習結果データ125を保持していることで、第2推定モデル6を備えている。モデル演算部213は、注目領域の抽出結果(すなわち、対象画像221から抽出された注目領域)を使用して、第2推定モデル6の演算処理を実行する。第2推定モデル6の演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像221に対して実行することで、次元の異なる複数の特徴マップ63を生成することを含む。注目領域の抽出結果は、第2推定モデル6の演算処理の過程において、複数の特徴マップ63のうちの少なくともいずれか1つに統合される。
【0079】
本実施形態では、モデル演算部213は、対象画像221を符号器61に入力し、符号器61及び復号器65の順伝播の演算処理を実行する。この演算処理の過程において、複数回の射影処理を対象画像221に対して実行することは、入力側から順に各符号ユニット62の演算処理を実行することにより構成される。注目領域の抽出結果は、第2推定モデル6の演算処理の過程において、複数の符号ユニット62のうちの少なくとも1つにより生成される特徴マップ63に統合される。統合方法の一例として、モデル演算部213は、統合対象の特徴マップ63のサイズに合うように抽出画像225を適宜リサイズしてもよい。そして、モデル演算部213は、リサイズされた抽出画像225を対象の特徴マップ63に掛け合わせることで、注目領域の抽出結果を対象の特徴マップ63に統合してもよい。不要であれば、リサイズの処理は省略されてよい。
【0080】
判定部214は、第2推定モデル6の演算結果に基づいて、対象製品Rに欠陥があるか否かを判定する。出力部215は、対象製品Rに欠陥があるか否かを判定した結果を示す情報を出力する。
【0081】
選択部216は、複数の符号ユニット62の中から少なくとも1つ以上の対象符号ユニットを選択する。注目領域の抽出結果は、第2推定モデル6の演算処理の過程において、選択された少なくとも1つ以上の対象符号ユニットにより生成される特徴マップ63に統合されてよい。対象符号ユニットの選択により、2つの推定モデル(5、6)による外観検査の精度を最適化することができる。なお、対象符号ユニットの選択には、評価画像228及び正解情報229の組み合わせにより構成される評価用データセット227が利用されてよい。
【0082】
設定部217は、欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する。領域抽出部212は、設定されたパラメータの値に応じて、注目領域を抽出してよい。当該構成によれば、第1推定モデル5の推定結果を反映する程度を調整することができ、これにより、対象環境における2つの推定モデル(5、6)による外観検査の精度を最適化することができる。本実施形態では、注目領域を抽出するために、対象画像221及び対象復号化画像223の間の差分領域が算出される。そのため、当該パラメータは、この差分領域を拡げる程度を規定する拡大パラメータを含んでよい。領域抽出部212は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、注目領域の抽出結果(本実施形態では、抽出画像225)を取得してもよい。
【0083】
<その他>
モデル生成装置1及び検査装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び検査装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。すなわち、上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び検査装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0084】
§3 動作例
[モデル生成装置]
(1)第1推定モデルの生成
図6は、本実施形態に係るモデル生成装置1による第1推定モデル5の生成(機械学習)に関する処理手順の一例を示すフローチャートである。ただし、以下の第1推定モデル5の生成に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の第1推定モデル5の生成に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0085】
(ステップS101)
ステップS101では、制御部11は、第1取得部111として動作し、複数の良品画像31を含む第1学習データ30を取得する。
【0086】
第1学習データ30を構成する各良品画像31は適宜生成されてよい。例えば、カメラS又はこれと同種のカメラを用意する。また、検査を実施する対象環境において、対象製品Rと同種の製品であって、欠陥のない製品を用意する。そして、用意した製品をカメラにより撮像する。これにより、各良品画像31を生成することができる。良品画像31は、カメラにより得られたそのままの画像であってもよい。或いは、良品画像31は、カメラにより得られた画像に対して何らかの画像処理を適用することにより生成されてもよい。
【0087】
第1学習データ30は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、第1学習データ30の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。第1学習データ30をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記生成処理を実行することで、第1学習データ30を取得する。一方、第1学習データ30を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された第1学習データ30を取得する。第1学習データ30の一部の良品画像31がモデル生成装置1により生成され、その他の良品画像31が1又は複数の他のコンピュータにより生成されてもよい。
【0088】
第1学習データ30を構成する良品画像31の件数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。なお、第1学習データ30は、良品画像31のみで構成されるのが好ましいが、第1学習データ30の一部には、欠陥のある製品の画像が学習画像として含まれてもよい。第1学習データ30を取得すると、制御部11は、次のステップS102に処理を進める。
【0089】
(ステップS102)
ステップS102では、制御部11は、第1学習部112として動作し、取得された第1学習データ30を使用して、第1推定モデル5の機械学習を実施する。この機械学習により、制御部11は、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように第1推定モデル5を訓練する。なお、必ずしも取得された全ての良品画像31が第1推定モデル5の機械学習に使用されなければならない訳ではない。機械学習に使用される良品画像31は適宜選択されてよい。
【0090】
機械学習の処理の一例として、まず、制御部11は、機械学習の処理対象となる第1推定モデル5の符号器51及び復号器53を構成するニューラルネットワークを用意する。各ニューラルネットワークの構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習により得られた学習結果データに基づいて、符号器51及び復号器53を用意してもよい。
【0091】
次に、制御部11は、第1学習データ30の各良品画像31を訓練データ(入力データ)及び正解データ(教師信号、ラベル)として使用し、符号器51及び復号器53の訓練処理を実行する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【0092】
訓練処理の一例として、制御部11は、各良品画像31を符号器51に入力し、符号器51及び復号器53の順伝播の演算処理を実行する。すなわち、制御部11は、各良品画像31を符号器51の入力層511に入力し、入力側から順に各層に含まれるニューロンの発火判定等の演算処理を実行する。この演算処理の結果、制御部11は、各良品画像31に対応して生成された復号化画像を復号器53の出力層533から取得する。制御部11は、得られた復号化画像と対応する良品画像31との間の誤差を算出する。誤差(損失)の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。
【0093】
次に、制御部11は、算出された誤差の勾配を算出する。制御部11は、誤差逆伝播(Back propagation)法により、算出された誤差の勾配を用いて、符号器51及び復号器53の各演算パラメータ(各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を出力側から順に算出する。制御部11は、算出された各誤差に基づいて、符号器51及び復号器53の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
【0094】
制御部11は、上記一連の更新処理により、各良品画像31について、算出される誤差の和が小さくなるように、符号器51及び復号器53の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の更新処理による符号器51及び復号器53の各演算パラメータの値の調整を繰り返してもよい。
【0095】
この機械学習の結果、制御部11は、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得した訓練済みの第1推定モデル5を生成することができる。詳細には、本実施形態では、対象環境で出現する欠陥のない製品の外観を再構成する能力が高く、それ以外を再構成する能力の低い訓練済みの第1推定モデル5が生成される。第1推定モデル5の機械学習が完了すると、制御部11は、次のステップS103に処理を進める。
【0096】
(ステップS103)
ステップS103では、制御部11は、保存処理部115として動作し、機械学習により生成された訓練済みの第1推定モデル5(符号器51及び復号器53)に関する情報を第1学習結果データ121として生成する。そして、制御部11は、生成された第1学習結果データ121を所定の記憶領域に保存する。
【0097】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに第1学習結果データ121を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに第1学習結果データ121を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース14を介してモデル生成装置1に接続された外付けの記憶装置であってもよい。
【0098】
第1学習結果データ121の保存が完了すると、制御部11は、本動作例に係る第1推定モデル5の生成に関する処理手順を終了する。
【0099】
なお、生成された第1学習結果データ121は、任意のタイミングで検査装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、第1学習結果データ121を検査装置2に転送してもよい。検査装置2は、この転送を受信することで、第1学習結果データ121を取得してもよい。また、例えば、検査装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、第1学習結果データ121を取得してもよい。また、例えば、検査装置2は、記憶媒体92を介して、第1学習結果データ121を取得してもよい。また、例えば、第1学習結果データ121は、検査装置2に予め組み込まれてもよい。
【0100】
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、第1学習結果データ121を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する第1学習データ30の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した第1学習結果データ121を任意の方法で検査装置2に提供することで、検査装置2の保持する第1学習結果データ121を更新してもよい。
【0101】
(2)第2推定モデルの生成
図7は、本実施形態に係るモデル生成装置1による第2推定モデル6の生成(機械学習)に関する処理手順の一例を示すフローチャートである。ただし、以下の第2推定モデル6の生成に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の第2推定モデル6の生成に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0102】
(ステップS151)
ステップS151では、制御部11は、第2取得部113として動作し、複数の欠陥画像371を含む第2学習データ35を取得する。本実施形態では、第2学習データ35は、複数の学習データセット36により構成される。各学習データセット36は、学習画像37及び正解画像38の組み合わせにより構成される。少なくとも一部の学習画像37には、欠陥画像371が用いられる。
【0103】
第2学習データ35を構成する各学習データセット36は適宜生成されてよい。上記第1学習データ30と同様に、例えば、カメラS又はこれと同種のカメラを用意する。また、欠陥を有する製品を用意する。そして、用意した製品をカメラにより撮像する。これにより、学習画像37として使用可能な欠陥画像371を生成することができる。画像処理により、得られた画像において欠陥の部分のみを抽出してもよい。つまり、欠陥のみ写る画像を欠陥画像371として生成してもよい。欠陥画像371には、製品の外観が写っていてもよいし、写っていなくてもよい。また、欠陥の写っていない画像を学習画像37として生成してもよい。この学習画像37は、任意の画像処理により適宜生成されてもよい。その他、欠陥のない製品をカメラにより撮像することで、欠陥の写っていない学習画像37を生成してもよい。学習画像37は、カメラにより得られたそのままの画像であってもよいし、或いは、カメラにより得られた画像に対して何らかの画像処理を適用することで生成されてもよい。更に、生成された学習画像37に対して、欠陥の範囲を示す正解画像38を関連付ける。正解画像38は、判定画像の形式に合わせて、学習画像37から生成されてもよい。その他、正解画像38は、オペレータの手作業により生成されてよい。これらの処理により、各学習データセット36を生成することができる。
【0104】
第2学習データ35は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、第2学習データ35の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。第2学習データ35をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記生成処理を実行することで、第2学習データ35を取得する。一方、第2学習データ35を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された第2学習データ35を取得する。第2学習データ35の一部の学習データセット36がモデル生成装置1により生成され、その他の学習データセット36が1又は複数の他のコンピュータにより生成されてもよい。
【0105】
第2学習データ35を構成する学習データセット36の件数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。第2学習データ35を取得すると、制御部11は、次のステップS152に処理を進める。
【0106】
(ステップS152)
ステップS152では、制御部11は、第2学習部114として動作し、取得された第2学習データ35を使用して、第2推定モデル6の機械学習を実施する。この機械学習により、制御部11は、与えられた画像に対して欠陥の尤度を判定する能力を獲得するように第2推定モデル6を訓練する。なお、必ずしも取得された全ての学習データセット36が第2推定モデル6の機械学習に使用されなければならない訳ではない。機械学習に使用される学習データセット36は適宜選択されてよい。
【0107】
機械学習の処理の一例として、まず、制御部11は、機械学習の処理対象となる第2推定モデル6の符号器61及び復号器65を構成するニューラルネットワークを用意する。各ニューラルネットワークの構造、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習により得られた学習結果データに基づいて、符号器61及び復号器65を用意してもよい。
【0108】
次に、制御部11は、各学習データセット36の学習画像37を訓練データとして使用し、正解画像38を正解データとして使用して、符号器61及び復号器65の訓練処理を実行する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【0109】
訓練処理の一例として、制御部11は、各学習データセット36の学習画像37を符号器61に入力し、符号器61及び復号器65の順伝播の演算処理を実行する。すなわち、制御部11は、制御部11は、各学習画像37を符号器61の入力層に入力し、入力側から順に各層に含まれるニューロンの発火判定等の演算処理を実行する。この演算処理の結果、制御部11は、各学習画像37に対応して生成された判定画像を復号器65の出力層から取得する。制御部11は、各学習データセット36について、得られた判定画像及び対応する正解画像38の間の誤差を算出する。誤差(損失)の算出には、任意の損失関数が用いられてよい。例えば、判定画像及び正解画像38の間の誤差は、IoU(Intersection over Union)により算出されてよい。
【0110】
次に、制御部11は、算出された誤差の勾配を算出する。制御部11は、誤差逆伝播法により、算出された誤差の勾配を用いて、符号器61及び復号器65の各演算パラメータの値の誤差を出力側から順に算出する。制御部11は、算出された各誤差に基づいて、符号器61及び復号器65の各演算パラメータの値を更新する。上記第1推定モデル5と同様に、各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0111】
制御部11は、上記一連の更新処理により、各学習データセット36について、算出される誤差の和が小さくなるように、符号器61及び復号器65の各演算パラメータの値を調整する。上記第1推定モデル5と同様に、所定の条件を満たすまで、制御部11は、上記一連の更新処理による符号器61及び復号器65の各演算パラメータの値の調整を繰り返してもよい。
【0112】
この機械学習の結果、制御部11は、与えられた画像に対して欠陥の尤度を判定する能力を獲得した訓練済みの第2推定モデル6を生成することができる。第2推定モデル6の機械学習が完了すると、制御部11は、次のステップS153に処理を進める。
【0113】
(ステップS153)
ステップS153では、制御部11は、保存処理部115として動作し、機械学習により生成された訓練済みの第2推定モデル6(符号器61及び復号器65)に関する情報を第2学習結果データ125として生成する。そして、制御部11は、生成された第2学習結果データ125を所定の記憶領域に保存する。上記ステップS103と同様に、所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。第2学習結果データ125の保存先は、第1学習結果データ121と同じであってもよいし、異なっていてもよい。
【0114】
第2学習結果データ125の保存が完了すると、制御部11は、本動作例に係る第2推定モデル6の生成に関する処理手順を終了する。なお、上記第1学習結果データ121と同様に、第2学習結果データ125は、任意のタイミングで検査装置2に提供されてよい。また、上記ステップS151~ステップS153の処理は、定期又は不定期に繰り返されてよい。この繰り返しの際に、第2学習データ35の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、当該繰り返しにより更新又は新たに生成された第2学習結果データ125が任意の方法で検査装置2に提供されることで、検査装置2の保持する第2学習結果データ125が更新されてもよい。
【0115】
[検査装置]
(1)対象符号ユニットの選択
図8は、本実施形態に係る検査装置2による対象符号ユニットの選択に関する処理手順の一例を示すフローチャートである。制御部21は、選択部216として動作し、以下のステップS201~ステップS210の処理を実行する。ただし、以下の対象符号ユニットの選択に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の対象符号ユニットの選択に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0116】
(ステップS201)
ステップS201では、制御部21は、所定の欠陥を含む評価用製品の写る評価画像228を取得する。本実施形態では、制御部21は、評価画像228及び正解情報229の組み合わせにより構成される評価用データセット227を取得する。評価画像228は、良品画像31、学習画像37等と同様に、所定の欠陥を有する評価用製品をカメラにより撮像することで生成されてよい。或いは、評価画像228は、任意の画像処理により生成されてもよい。正解情報229は、所定の欠陥の写る範囲を示すように適宜構成される。例えば、正解情報229は、上記正解画像38と同様に構成されてよい。取得する評価用データセット227の件数は任意に決定されてよい。評価用データセット227を取得すると、制御部21は、次のステップS202に処理を進める。
【0117】
(ステップS202)
ステップS202では、制御部21は、第1推定モデル5を使用して、取得された評価画像228から注目領域を抽出する。本実施形態では、制御部21は、第1学習結果データ121を参照して、訓練済みの第1推定モデル5の設定を行う。次に、制御部21は、第1推定モデル5の符号器51の入力層511に評価画像228を入力し、符号器51及び復号器53の順伝播の演算処理を実行する。この演算処理の結果、制御部21は、評価画像228に対応して生成された復号化画像を復号器53の出力層533から取得する。
【0118】
制御部21は、生成された復号化画像及び評価画像228の間の差分領域を算出する。制御部21は、差分領域の算出結果をそのまま抽出画像(注目領域の抽出結果)として取得してよい。拡大パラメータが設定されている場合、制御部21は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、抽出画像を取得してもよい。差分領域の拡大処理は、例えば、ぼかし処理(すなわち、フィルタによる平滑化)、膨張処理等により構成されてよい。一例として、拡大パラメータは、ガウシアン等のフィルタを指定するように構成されてよい。この場合、制御部21は、拡大パラメータの値により指定されたフィルタにより差分領域を平滑化することで、抽出画像を取得してもよい。評価画像228内の注目領域を抽出すると、制御部21は、次のステップS203に処理を進める。
【0119】
(ステップS203~ステップS209)
ステップS203では、制御部21は、変数nに1を設定する。変数nは、対象符号ユニットとして選択されたと仮定する符号ユニット62の指定に使用される。
【0120】
ステップS204では、制御部21は、第2学習結果データ125を参照して、訓練済みの第2推定モデル6の設定を行う。この第2推定モデル6の設定は、ステップS203の処理よりも前に実行されてよい。制御部21は、第2推定モデル6の符号器61の入力層に評価画像228を入力し、n番目の符号ユニット62までの順伝播の演算処理を実行する。これにより、制御部21は、n番目の符号ユニット62から特徴マップ63を取得する。
【0121】
ステップS205では、制御部21は、n番目の符号ユニット62により生成された特徴マップ63に、ステップS202の処理により取得された抽出画像を統合する。第2推定モデル6による欠陥の尤度の判定に第1推定モデル5による注目領域の抽出結果を反映可能であれば、注目領域の抽出結果を統合する方法は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。単純な統合方法の一例として、制御部21は、統合対象の特徴マップ63のサイズに合うように抽出画像を適宜リサイズし、リサイズされた抽出画像を対象の特徴マップ63に掛け合わせてもよい。これらの一連の処理により、制御部21は、注目領域の抽出結果を対象の特徴マップ63に統合することができる。この統合方法を採用する場合、制御部21は、上記統合結果を次の層に入力する。
【0122】
ステップS206では、制御部21は、第2推定モデル6の残りの部分(すなわち、n番目の符号ユニット62以降の構成要素)の順伝播の演算処理を実行する。これにより、制御部21は、第2推定モデル6の演算結果として、評価画像228に対する判定画像を復号器65の出力層から取得する。制御部21は、この判定画像(第2推定モデル6の演算結果)に基づいて、評価用製品に欠陥があるか否かを判定する。ステップS204~ステップS206までの処理により、制御部21は、n番目の符号ユニットを対象符号ユニットとして選択したと仮定したときの評価画像228に対する評価用製品に欠陥があるか否かの判定の試行結果を得ることができる。
【0123】
ステップS207では、制御部21は、正解情報229を使用して、ステップS206までの処理により得た試行結果を評価する。制御部21は、判定精度(すなわち、欠陥の検出精度)が高いほど、当該試行処理において対象符号ユニットであると仮定した符号ユニット62を高く評価する。このように評価可能であれば、評価方法及び尺度は、任意に設定されてよい。一例として、制御部21は、正解範囲及び検出範囲の間の重複度を評価値としてスコア化してもよい。正解範囲は、正解情報229により示される所定の欠陥の写る範囲である。また、検出範囲は、判定画像に基づいて欠陥が写っている(或いはその尤度が高い)と判定される範囲である。
【0124】
ステップS208では、制御部21は、変数nの値に応じて、処理の分岐先を決定する。変数nの値がN(2以上)ではない場合、制御部21は、ステップS209に処理を進める。Nは、符号器61に含まれる符号ユニット62の数を示す。ステップS209では、制御部21は、変数nの値を1だけインクリメントする。そして、制御部21は、新たな変数nの値に基づいて、ステップS204からの処理を再度実行する。一方、変数nの値がNである場合、制御部21は、ステップS210に処理を進める。
【0125】
本実施形態では、制御部21は、上記ループ処理により、変数nの値を変更しながら、ステップS204~ステップS206の処理を繰り返す。この一連の処理により、制御部21は、対象符号ユニットとして選択されたと仮定する符号ユニット62を変更しながら、評価画像228に対する注目領域の抽出結果を使用して、第2推定モデル6の演算処理を繰り返すことができる。そして、この繰り返し処理の結果、制御部21は、各符号ユニット62を対象符号ユニットとして選択したと仮定したときの評価画像228に対する評価用製品に欠陥があるか否かの判定(欠陥検出)を符号ユニット62毎に試行することができる。
【0126】
なお、当該試行方法は一例である。評価用製品に対する欠陥検出の試行方法は、このような例に限定されなくてよく、実施の形態に応じて適宜変更されてよい。また、上記の例では、各試行において、いずれか1つの符号ユニット62のみが対象符号ユニットであると仮定されている。しかしながら、各試行において、対象符号ユニットであると仮定する符号ユニット62の数はこのような例に限定されなくてよく、2つ以上の符号ユニット62がそれぞれ対象符号ユニットであると仮定されてもよい。
【0127】
(ステップS210)
ステップS210では、制御部21は、試行の結果に基づいて、最適な符号ユニット62を対象符号ユニットとして選択する。本実施形態では、制御部21は、ステップS207により得られた評価の最も高い(すなわち、最も精度の高い判定の試行結果を与える)符号ユニット62を対象符号ユニットとして選択する。対象符号ユニットの選択が完了すると、制御部21は、本動作例に係る対象符号ユニットの選択に関する処理を終了する。当該処理によれば、2つの推定モデル(5、6)による外観検査の精度を自動的に最適化することができる。
【0128】
(2)外観検査
図9は、本実施形態に係る検査装置2による外観検査に関する処理手順の一例を示すフローチャートである。以下の外観検査に関する処理手順は、検査方法の一例である。ただし、以下の外観検査に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の外観検査に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0129】
(ステップS301)
ステップS301では、制御部21は、データ取得部211は、検査を実施する対象製品Rの写る対象画像221を取得する。本実施形態では、制御部21は、外部インタフェース24を介して、カメラSから対象画像221を直接的に取得する。対象画像221は、動画像であってもよいし、静止画像であってもよい。なお、対象画像221を取得する経路は、このような例に限定されなくてよい。他の経路の一例として、カメラSは、他のコンピュータに接続されてよい。この場合、制御部21は、他のコンピュータを介してカメラSから間接的に対象画像221を取得してもよい。対象画像221を取得すると、制御部21は、次のステップS302に処理を進める。
【0130】
(ステップS302)
ステップS302では、制御部21は、領域抽出部212として動作し、第1推定モデル5を使用して、対象画像221から注目領域を抽出する。
【0131】
本実施形態では、制御部21は、上記ステップS202と同様に、第1学習結果データ121を参照し、訓練済みの第1推定モデル5の設定を行う。次に、制御部21は、第1推定モデル5の符号器51の入力層511に対象画像221を入力し、符号器51及び復号器53の順伝播の演算処理を実行する。この演算処理の結果、制御部21は、対象画像221に対応して生成された対象復号化画像223を復号器53の出力層533から取得する。制御部21は、生成された対象復号化画像223及び対象画像221の間の差分領域を算出し、差分領域の算出結果に基づいて抽出画像225を生成する。抽出画像225は、欠陥である蓋然性の度合いを画素毎に示すアテンションマップとして構成されてよい。
【0132】
上記ステップS202と同様に、制御部21は、差分領域の算出結果をそのまま抽出画像225として取得してもよい。或いは、拡大パラメータが設定されている場合、制御部21は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、抽出画像225を取得してもよい。この拡大パラメータを利用する形態によれば、第1推定モデル5の推定結果を外観検査に反映する程度を容易に調節することができる。なお、拡大パラメータは、欠陥の写る領域を抽出領域として抽出する程度を規定するパラメータ(以下、抽出パラメータとも記載する)の一例である。パラメータの値を設定するタイミングは任意でよい。例えば、本動作例に係る外観検査に関する処理の実行前又は実行の際に、制御部21は、入力装置25を介してパラメータの値の指定を受け付けてもよい。抽出画像225(注目領域の抽出結果)を取得すると、制御部21は、次のステップS303に処理を進める。
【0133】
(ステップS303)
ステップS303では、制御部21は、モデル演算部213として動作し、第1推定モデル5による対象画像221に対する注目領域の抽出結果(抽出画像225)を使用して、第2推定モデル6の演算処理を実行する。
【0134】
本実施形態では、制御部21は、第2学習結果データ125を参照し、訓練済みの第2推定モデル6の設定を行う。制御部21は、第2推定モデル6の符号器61の入力層に対象画像221を入力し、対象符号ユニットとして選択された符号ユニット62までの順伝播の演算処理を実行する。この演算処理の結果、制御部21は、選択された符号ユニット62から特徴マップ63を取得する。次に、制御部21は、選択された符号ユニット62により生成された特徴マップ63に抽出画像225を統合する。統合方法は、上記ステップS205と同様であってよい。複数の符号ユニット62が対象符号ユニットに選択されている場合、制御部21は、選択された符号ユニット62までの順伝播の演算処理及び統合処理を入力側から順に実行する。そして、制御部21は、第2推定モデル6の残りの部分の順伝播の演算処理を実行する。これにより、制御部21は、第2推定モデル6の演算結果として、対象画像221に対する判定画像を復号器65の出力層から取得する。
【0135】
本実施形態では、当該第2推定モデル6の演算処理の過程において、制御部21は、符号器61の各符号ユニット62の演算処理を入力側から順に実行する。当該各符号ユニット62の演算処理により、複数回の射影処理が対象画像221に対して実行され、その結果、次元の異なる複数の特徴マップ63が生成される。抽出画像225は、当該第2推定モデル6の演算処理の過程において、選択された少なくとも1つ以上の対象符号ユニットにより生成される特徴マップ63に統合される。第2推定モデル6の演算処理が完了すると、制御部21は、次のステップS304に処理を進める。
【0136】
(ステップS304)
ステップS304では、制御部21は、判定部214として動作し、第2推定モデル6の演算結果に基づいて、対象製品Rに欠陥があるか否かを判定する。
【0137】
欠陥があるか否かを判定することは、第2推定モデル6の出力(演算結果)を参照して、欠陥検出の認定を行うことである。判定の形式は、第2推定モデル6の出力形式等に応じて適宜決定されてよい。一例として、欠陥があるか否かを判定することは、欠陥の有無を判別すること、欠陥の種別を識別すること、欠陥の存在する(又はその蓋然性の有する)領域を抽出すること、欠陥である尤度を推定すること、又はこれらの組み合わせにより構成されてよい。制御部21は、判定画像をそのまま判定結果として取得してもよいし、或いは、判定画像に対して何らかの情報処理(例えば、閾値判定)を実行することで、判定結果を取得してもよい。対象製品Rに欠陥があるか否かの判定が完了すると、制御部21は、次のステップS305に処理を進める。
【0138】
(ステップS305)
ステップS305では、制御部21は、対象製品Rに欠陥があるか否かを判定した結果を示す情報を出力する。
【0139】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。
出力先は、例えば、制御部21内のRAM、出力装置26、他のコンピュータ等であってよい。判定結果を示す情報には、判定の結果に基づいて何らかの情報処理を実行することで得られた情報(例えば、特定のメッセージ、制御対象装置に対する制御指令等)が含まれてもよい。一例として、制御部21は、対象製品Rに欠陥があるか否かを判定した結果をそのまま出力装置26又は他のコンピュータに出力してもよい。その他の一例として、対象製品Rに欠陥が存在すると判定した場合、制御部21は、そのことを知らせるための警告を出力装置26又は他のコンピュータに出力してもよい。更にその他の一例として、対象製品Rを搬送するコンベア装置に検査装置2が接続される場合、制御部21は、判定の結果に基づいて、欠陥のある対象製品Rと欠陥のない対象製品Rとを別のラインで搬送されるようにコンベア装置を制御してもよい。
【0140】
判定結果を示す情報の出力が完了すると、制御部21は、本動作例に係る外観検査に関する処理手順を終了する。なお、制御部21は、ステップS301~ステップS305の一連の情報処理を継続的に繰り返し実行してもよい。繰り返すタイミングは任意であってよい。繰り返す間、対象製品Rは、コンベア装置等により順次入れ替わってよい。これにより、検査装置2は、対象製品Rに対する外観検査を継続的に実施することができる。
【0141】
[特徴]
以上のとおり、本実施形態では、ステップS301~ステップS305による対象製品Rの外観検査に、欠陥の尤度を判定する能力を獲得した第2推定モデル6の他に、対象環境に特化型の第1推定モデル5が使用される。この第1推定モデル5の使用により、対象製品Rに対する外観検査の精度の向上を見込むことができる。加えて、本実施形態では、ステップS303の処理により、第1推定モデル5による注目領域の抽出結果(抽出画像225)は、第2推定モデル6の演算過程において、次元の異なる複数の特徴マップ63のうちの少なくともいずれか1つに統合される。すなわち、第2推定モデル6の演算処理は、第1推定モデル5による注目領域の抽出結果を統合する次元を変更可能に構成される。これにより、欠陥の尤度を判定する範囲を次元レベルで調整することができ、その結果、対象製品Rの有する外観に適切な統合処理の実施を期待することができる。例えば、パターン化された外観を有する製品に対して、比較的に広い範囲を参照するようにしたり、単純な外観を有する製品に対して、参照する範囲を比較的に絞ったりするようにすることができる。したがって、本実施形態によれば、多様な外観を有し得る対象製品Rに対して、2つの推定モデル(5、6)による外観検査の精度の向上を期待することができる。
【0142】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0143】
<4.1>
上記実施形態では、第1推定モデル5の符号器51及び復号器53には、全結合型ニューラルネットワークが用いられている。また、第2推定モデル6の符号器61には、畳み込みニューラルネットワークが用いられている。しかしながら、各推定モデル(5、6)に用いられるニューラルネットワークの種類は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、第1推定モデル5の符号器51には、畳み込みニューラルネットワークが用いられてよい。
【0144】
また、上記実施形態では、各推定モデル(5、6)には、機械学習モデルとしてニューラルネットワークが用いられている。しかしながら、各推定モデル(5、6)に用いられる機械学習モデルの種類は、ニューラルネットワークに限られなくてよく、実施の形態に応じて適宜選択されてよい。機械学習の方法は、機械学習モデルの種類に応じて適宜選択されてよい。例えば、第1推定モデル5の符号器51及び復号器53は、主成分分析により導出された固有ベクトルを用いた直交射影行列により構成されてよい。この場合、第1推定モデル5の機械学習は、主成分分析を行うことを含んでよい。
【0145】
また、上記実施形態では、各推定モデル(5、6)は、機械学習により生成されている。しかしながら、各推定モデル(5、6)の生成方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、各推定モデル(5、6)は、ルールベースにより手作業で生成されてよい。この場合、各推定モデル(5、6)は、特徴抽出等の公知の画像処理により構成されてよい。各符号ユニット62は、プーリング処理、縮小処理等の次元を落とす射影処理を適宜含むように構成されてよい。第1推定モデル5は、例えば、特開2010-203845号公報等の方法により、再構成誤差に基づく方法以外の方法で、欠陥の蓋然性の高い注目領域を抽出するように構成されてよい。また、上記実施形態では、第2推定モデル6の符号器61において、各符号ユニット62は直列的に接続されている。しかしながら、符号ユニット62の配置は、このような例に限定されなくてよい。次元の異なる複数の特徴マップ63を生成可能であれば、少なくとも一部の符号ユニット62は並列に配置されてよい。極端には、全ての符号ユニット62が並列に配置されてもよい。
【0146】
図10は、本変形例に係る第2推定モデル6Aの一例を模式的に例示する。本変形例に係る第2推定モデル6Aは、並列に配置された3つの検出ユニットを備えることで、複数回の射影処理の少なくとも一部を並列に実行するように構成されている。具体的に、第1検出ユニットは、入力側から順に、第1縮小部661、1つ以上の特徴抽出部671、及び検出部681を備える。第2検出ユニットは、入力側から順に、第2縮小部662、1つ以上の特徴抽出部672、及び検出部682を備える。第3検出ユニットは、入力側から順に、1つ以上の特徴抽出部673及び検出部683を備える。
【0147】
第1縮小部661及び第2縮小部662は、入力画像のサイズを縮小する(すなわち、入力画像の次元を低くする)ように構成される。入力画像のサイズを縮小する方法には、例えば、画像内の画素を間引く(例えば、プーリング処理)、平均画素法等の方法が採用されてよい。各縮小部(661、662)の演算処理は、低次元の空間に射影する射影処理の一例である。第1縮小部661及び第2縮小部662の間では、異なるサイズの画像を生成するように構成される。一例として、第1縮小部661は、入力画像のサイズを1/2にするように構成されてよく、第2縮小部662は、入力画像のサイズを1/4にするように構成されてよい。
【0148】
各特徴抽出部671~673は、画像の特徴を抽出するように構成される。画像の特徴を抽出する処理は、例えば、ソーベルフィルタ、ラプラシアンフィルタ等の公知のフィルタリングにより構成されてよい。各特徴抽出部671~673の数は、実施の形態に応じて適宜決定されてよい。一例として、各1つ以上の特徴抽出部671~673は、欠陥の特徴を抽出し、それ以外の特徴を除外する(すなわち、欠陥の候補領域を抽出する)ように構成されてよい。
【0149】
各検出部681~683は、各特徴抽出部671~673により得られた画像の特徴に基づいて、欠陥領域を検出するように構成される。一例として、各特徴抽出部671~673が欠陥の候補領域を抽出するように構成される場合、各検出部681~683は、抽出された候補領域のうち、サイズが閾値を超える候補領域を欠陥領域として検出するように構成されてよい。
【0150】
各検出ユニットによれば、次元の異なる複数の画像から欠陥検出の結果を得ることができる。なお、本変形例では、各縮小部(661、662)により生成される縮小画像、及び各特徴抽出部671~673から出力される画像は、特徴マップの一例である。
図10の点線の矢印で示されるとおり、第1推定モデル5により得られる抽出画像225は、少なくともいずれかの画像(特徴マップ)に統合されてよい。縮小部を備えていない第3検出ユニットでは、対象画像221に抽出画像225を統合した上で、特徴抽出部673の演算処理を実行してもよい。また、
図10に示されるとおり、統合処理は、画像の積算処理により構成されてよい。検査装置2の上記選択部216は、候補となる各画像に対する統合処理の有効又は無効を設定するように構成されてよい。
【0151】
本変形例に係る第2推定モデル6Aは、3つの検出ユニットによる欠陥の検出結果を統合し、その結果によって欠陥の有無を判定するように構成された統合判定部69を更に備える。一例として、統合判定部69は、各検出部681~683により検出された欠陥領域を画像のサイズを合わせるように調整した後に重ね合わせ、重ね合わせの結果に基づいて最終的な欠陥の有無及び位置を判定するように構成されてよい。欠陥領域の重ね合わせは、例えば、AND演算(重なり部分のみ抽出)、OR演算(領域を足し合わせる)等により構成されてよい。
【0152】
本変形例に係る第2推定モデル6Aは、最終的に得られた欠陥の判定結果を出力するように構成される。一例として、第2推定モデル6Aは、統合判定部69の判定結果をそのまま出力するように構成されてよい。その他の一例として、第2推定モデル6Aは、欠陥が存在すると統合判定部69が判定した場合に、その欠陥の部分を強調するように対象画像221を加工するよう構成された欠陥強調部(不図示)を更に備えてもよい。強調方法は、適宜決定されてよい。一例として、欠陥強調部は、検出された欠陥の周辺領域のコントラストが高くなり、欠陥の周辺以外の領域のコントラストが低くなるように対象画像221の各画素の輝度値を調整してもよい。この場合、第2推定モデル6Aは、欠陥強調部により得られる欠陥を強調した画像を出力するように構成されてよい。
【0153】
なお、本変形例に係る第2推定モデル6Aにおいて、並列に配置される検出ユニットの数は、3つに限定されなくてよく、2つであってもよいし、或いは4つ以上であってもよい。また、各検出ユニットでは、画像のサイズを縮小する処理が複数回実行されてもよい。すなわち、検出ユニットは、複数の縮小部を備えてもよい。
【0154】
また、上記実施形態において、例えば、次元の削減を伴わない処理(例えば、単純なフィルタリング処理)を実行する、並列的に特徴マップを生成する場合に次元を削減する数が一致する等の理由により、第2推定モデル6において生成される複数の特徴マップ63の一部の次元が一致してもよい。この場合、第1推定モデル5による注目領域の抽出結果を統合する対象の特徴マップ63は、次元が同じである別の特徴マップ63に変更されてもよい。これにより、第1推定モデル5による注目領域の抽出結果を統合する特徴量を変更することができる。
【0155】
また、上記実施形態において、各推定モデル(5、6)の出力形式は、実施の形態に応じて適宜決定されてよい。例えば、第2推定モデル6は、復号器65に代えて、判定器を備えてもよい。判定器は、符号器61により得られる特徴量から欠陥があるか否かを判定するように構成されてよい。この場合、機械学習に使用される第2学習データ35の各学習データセット36は、正解画像38に代えて、欠陥があるか否かを示す正解情報を含むように構成されてよい。モデル生成装置1は、上記ステップS152において、このような第2学習データ35を使用することで、当該第2推定モデル6を適切に訓練することができる。また、上記実施形態において、各推定モデル(5、6)は、別々のコンピュータで生成されてよい。第1推定モデル5は、一現場で得られる第1学習データ30に基づいて生成されてよい。これに対して、第2推定モデル6は、複数の現場それぞれから収集さ
れた第2学習データ35に基づいて生成されてよい。
【0156】
<4.2>
上記実施形態において、抽出パラメータは、拡大パラメータに限られなくてよい。一例として、検査装置2は、対象復号化画像223及び対象画像221の間の差分を算出することにより差分画像を生成してもよい。続いて、検査装置2は、閾値(2値化閾値)に基づいて、差分画像の各画素を2値化してもよい。そして、検査装置2は、2値化により欠陥が存在すると示す画素のまとまりのうち、面積が閾値(面積閾値)以下のまとまりを削除してもよい。この一連の処理により、検査装置2は、対象復号化画像223及び対象画像221の間の差分領域を算出してもよい。この場合、抽出パラメータは、2値化閾値及び面積閾値のうちの少なくとも一方を含んでよい。なお、上記実施形態において、当該パラメータの値を設定する処理は省略されてよい。この場合、検査装置2のソフトウェア構成から設定部217が省略されてよい。
【0157】
<4.3>
上記実施形態では、ステップS201~ステップS210の処理により、対象環境に最適な対象符号ユニットを自動的に選択することができる。しかしながら、対象符号ユニットの選択方法は、このような例に限定されなくてよい。制御部21は、任意の方法により、複数の符号ユニット62の中から少なくとも1つ以上の対象符号ユニットを選択してもよい。他の方法の一例として、制御部21は、ステップS201~ステップS210の処理のうち、ステップS207の処理を省略してよい。更に、制御部21は、ステップS210の処理の代わりに、ステップS206による試行の結果をオペレータに対して出力してもよい。出力先は、任意に選択されてよい。そして、制御部21は、オペレータの指定による、複数の符号ユニット62の中から少なくとも1つの対象符号ユニットの選択を受け付けてもよい。例えば、制御部21は、各試行により得られた判定画像の一覧を出力装置26に出力してもよい。制御部21は、オペレータによる入力装置25を介した適切な判定画像の指定によって、複数の符号ユニット62の中から少なくとも1つの対象符号ユニットの選択を受け付けてもよい。ステップS201~ステップS206、ステップS208及びステップS209の処理は、上記実施形態と同様に実行されてよい。当該処理によれば、2つの推定モデル(5、6)による外観検査の精度をオペレーションにより最適化することができる。更にその他の方法の一例として、制御部21は、ステップS201~ステップS210の一連の処理を省略し、オペレータの指定により対象符号ユニットの選択を単純に受け付けてもよい。なお、上記実施形態において、対象符号ユニットを選択する一連の処理は省略されてよい。この場合、検査装置2のソフトウェア構成から選択部216が省略されてよい。
【0158】
<4.4>
上記実施形態では、対象の特徴マップ63に抽出画像を掛け合わせることで、注目領域の抽出結果を対象の特徴マップ63に統合することができる。ただし、統合方法は、このような例に限定されなくてよい。その他の一例として、対象の特徴マップ63及び抽出画像が、当該対象の特徴マップ63を得た層の次の層における別のノードにそれぞれ入力されてよい。この場合、当該次の層の演算処理により、注目領域の抽出結果を対象の特徴マップ63に統合することができる。なお、この場合、ステップS152の機械学習の処理において、制御部11は、訓練済みの第1推定モデル5により学習画像37に対して得られる抽出画像を対象の層に入力するようにしてもよい。
【0159】
<4.5>
上記実施形態又は変形例において、対象符号ユニットを選択する処理は、検査装置2以外の他のコンピュータで実行されてよい。
【0160】
図11は、本変形例に係るユニット選択装置7のハードウェア構成の一例を模式的に例示する。
図11に示されるとおり、本変形例に係るユニット選択装置7は、制御部71、記憶部72、通信インタフェース73、外部インタフェース74、入力装置75、出力装置76、及びドライブ77が電気的に接続されたコンピュータである。制御部71~ドライブ77及び記憶媒体97はそれぞれ、上記検査装置2の制御部21~ドライブ27及び記憶媒体92それぞれと同様に構成されてよい。
【0161】
本変形例では、記憶部72は、選択プログラム87、第1学習結果データ121、第2学習結果データ125等の各種情報を記憶する。選択プログラム87は、上記対象符号ユニットの選択処理に関する情報処理をユニット選択装置7に実行させるためのプログラムである。選択プログラム87は、当該情報処理の一連の命令を含む。選択プログラム87、第1学習結果データ121、及び第2学習結果データ125のうちの少なくともいずれかは、記憶媒体97に記憶されていてもよい。また、ユニット選択装置7は、選択プログラム87、第1学習結果データ121、及び第2学習結果データ125のうちの少なくともいずれかを記憶媒体92から取得してもよい。
【0162】
なお、検査装置2等と同様に、ユニット選択装置7のハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。ユニット選択装置7は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、ユニット選択装置7は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC等であってもよい。
【0163】
図12は、本変形例に係るユニット選択装置7のソフトウェア構成の一例を模式的に例示する。上記検査装置2等と同様に、ユニット選択装置7のソフトウェア構成は、制御部71による選択プログラム87の実行により実現される。選択プログラム87の実行により、本変形例に係るユニット選択装置7は、モデル取得部219及び選択部216をソフトウェアモジュールとして備えるコンピュータとして動作する。なお、当該ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。すなわち、上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、ユニット選択装置7のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0164】
制御部71は、モデル取得部219として動作し、任意の方法により、各学習結果データ(121、125)を取得する。これにより、制御部71は、対象符号ユニットを選択する処理の対象となる各推定モデル(5、6)を取得する。次に、制御部71は、選択部216として動作し、複数の符号ユニット62の中から少なくとも1つ以上の対象符号ユニットを選択する。対象符号ユニットを選択する方法には、上記いずれかの方法が採用されてよい。
【0165】
対象符号ユニットを選択した結果は、対象環境における対象製品Rの外観検査を実施する検査装置に対して任意の方法で反映されてよい。一例として、制御部71は、出力部として動作し、ネットワーク等を介して、対象符号ユニットの選択結果を検査装置に通知してもよい。検査装置では、この通知の受信に応じて、対象符号ユニットを選択した結果が反映されてよい。その他の一例として、制御部71は、対象符号ユニットの選択結果を出力装置76又は他のコンピュータの出力装置に出力してもよい。オペレータは、この出力を参照し、検査装置を操作することで、対象符号ユニットを選択した結果を検査装置に反映してもよい。当該変形例によれば、検査装置の負荷を低減することができる。
【符号の説明】
【0166】
1…モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…第1取得部、112…第1学習部、
113…第2取得部、114…第2学習部、
115…保存処理部、
121…第1学習結果データ、125…第2学習結果データ、
2…検査装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…検査プログラム、92…記憶媒体、
211…データ取得部、212…領域抽出部、
213…モデル演算部、214…判定部、
215…出力部、216…選択部、217…設定部、
221…対象画像、223…対象復号化画像、
225…抽出画像、
227…評価用データセット、
228…評価画像、229…正解情報、
30…第1学習データ、31…良品画像、
35…第2学習データ、36…学習データセット、
37…学習画像、371…欠陥画像、
38…正解画像、
5…第1推定モデル、
51…符号器、53…復号器、
6…第2推定モデル、
61…符号器、62…符号ユニット、
621…畳み込み層、623…プーリング層、
65…復号器、
651…アンプーリング層、653…逆畳み込み層