(57)【要約】【課題】推定モデルによる外観検査の精度の向上を図る。【解決手段】本発明の一側面に係る検査装置は、第１推定モデルを使用して、対象画像から注目領域を抽出し、注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行し、かつ第２推定モデルの演算結果に基づいて、対象製品に欠陥があるか否かを判定する。第１推定モデルは、対象環境における欠陥のない製品の写る複数の第１学習画像に基づいて生成されたものであり、第２推定モデルは、欠陥の写る複数の第２学習画像に基づいて生成されたものである。第２推定モデルの演算処理は、それぞれ低次元の空間に射影することで、次元の異なる複数の特徴マップを生成することを含み、注目領域の抽出結果は、第２推定モデルの演算処理の過程において、複数の特徴マップのうちの少なくともいずれか１つに統合される。【選択図】図１
2022003495.tif 000002
【特許請求の範囲】
【請求項１】
検査を実施する対象製品の写る対象画像を取得するデータ取得部と、
第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出する領域抽出部であって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、領域抽出部と、
前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するモデル演算部であって、
前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、
モデル演算部と、
前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定する判定部と、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力する出力部と、
を備える、
検査装置。
【請求項２】
前記第２推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器であって、復号化された前記画像は欠陥の尤度を画素毎に示す、復号器を備え、
前記符号器は、入力側から順に直列に接続される複数の符号ユニットを含み、
前記各符号ユニットは、入力データよりも次元の低い特徴マップに入力データを変換するように構成され、
前記複数回の射影処理を前記対象画像に対して実行することは、入力側から順に前記各符号ユニットの演算処理を実行することにより構成され、
前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の符号ユニットのうちの少なくとも１つにより生成される特徴マップに統合される、
請求項１に記載の検査装置。
【請求項３】
前記複数の符号ユニットの中から少なくとも１つ以上の対象符号ユニットを選択する選択部を更に備え、
前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、選択された前記少なくとも１つ以上の対象符号ユニットにより生成される特徴マップに統合される、
請求項２に記載の検査装置。
【請求項４】
前記選択部は、
所定の欠陥を含む評価用製品の写る評価画像を取得し、
前記第１推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、
前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第２推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、かつ
前記試行の結果に基づいて、最適な符号ユニットを前記対象符号ユニットとして選択する、
請求項３に記載の検査装置。
【請求項５】
前記選択部は、
所定の欠陥を含む評価用製品の写る評価画像を取得し、
前記第１推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、
前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第２推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、
前記試行の結果をオペレータに対して出力し、かつ
前記オペレータの指定による、前記複数の符号ユニットの中からの前記少なくとも１つの対象符号ユニットの選択を受け付ける、
請求項３に記載の検査装置。
【請求項６】
前記符号器は、畳み込みニューラルネットワークにより構成され、
前記各符号ユニットは、１又は複数の畳み込み層及びプーリング層により構成される、
請求項２から５のいずれか１項に記載の検査装置。
【請求項７】
前記欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する設定部を更に備え、
前記領域抽出部は、設定された前記パラメータの値に応じて、前記注目領域を抽出する、
請求項１から６のいずれか１項に記載の検査装置。
【請求項８】
前記第１推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器を備え、
前記領域抽出部は、
前記第１推定モデルの前記符号器及び前記復号器を使用して、前記対象画像に対して対象復号化画像を生成し、かつ
生成された前記対象復号化画像及び前記対象画像の間の差分領域を算出し、
前記パラメータは、前記差分領域を拡げる程度を規定する拡大パラメータを含み、
前記領域抽出部は、設定された前記拡大パラメータの値に応じて、算出された前記差分領域を拡げることで、前記注目領域の抽出結果を取得する、
請求項７に記載の検査装置。
【請求項９】
前記注目領域の抽出結果は、アテンションマップにより構成される、
請求項１から８のいずれか１項に記載の検査装置。
【請求項１０】
前記第１推定モデルは、前記第１学習データを使用した機械学習により、前記欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように訓練されることで生成されたものである、
請求項１から９のいずれか１項に記載の検査装置。
【請求項１１】
前記第２推定モデルは、前記第２学習データを使用した機械学習により、欠陥の尤度を判定する能力を獲得するように訓練されることで生成されたものである、
請求項１から１０のいずれか１項に記載の検査装置。
【請求項１２】
コンピュータが、
検査を実施する対象製品の写る対象画像を取得するステップと、
第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、
前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するステップであって、
前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、
ステップと、
前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、
を実行する、
検査方法。
【請求項１３】
コンピュータに、
検査を実施する対象製品の写る対象画像を取得するステップと、
第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、
前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するステップであって、
前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、
前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、
前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、
ステップと、
前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、
前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、
を実行させるための、
検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置、ユニット選択装置、検査方法、及び検査プログラムに関する。
【背景技術】
【０００２】
従来、製造ライン等の製品を製造する場面において、製造される製品を画像センサにより観測し、得られた撮影画像により製品に欠陥があるか否かを検査する技術が利用されている。例えば、特許文献１では、学習済みの第１のニューラルネットワークに基づいて画像に写る検査対象物が正常であるか異常であるかを判定し、検査対象物が異常であると判定した場合に、学習済みの第２のニューラルネットワークに基づいて当該異常の種類を分類する検査装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０２６９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ニューラルネットワーク等の機械学習モデルを利用すれば、学習データを使用した機械学習を実施することで、所望の推定タスクを遂行する能力を獲得した推定モデルを生成することができる。そのため、欠陥の有無が特定された製品の画像を学習データとして使用して機械学習を実施することで、製品の外観検査に利用可能な推定モデルを生成することができる（例えば、上記特許文献１）。なお、このような推定モデルは、機械学習を用いる方法に限られず、例えば、人手による方法等の他の方法でも生成することができる。しかしながら、本件発明者らは、この学習データに基づいて生成される推定モデルを用いた検査方法には、次のような問題点があることを見出した。
【０００５】
推定モデルの性能（すなわち、外観検査の精度）に影響を与える要因の一つに、推定モデルの生成に使用される学習データの質が挙げられる。基本的には、収集される学習データが多岐にわたるほど（換言すると、学習データに表れる欠陥の状況が多様であるほど）、生成される推定モデルの性能の向上を図ることができる。しかしながら、欠陥の種類、及び製品の外観を含む背景の種別が多くなればなるほど、欠陥の種別及び背景の種別の組み合わせが増加し、学習データとして収集されることが所望されるサンプルの件数及び種類も増加する。そのため、検査を実施する対象環境において、あらゆる状況を想定した上で学習データを事前に収集するのにはコストがかかり、現実的ではないという問題点があった。
【０００６】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、学習データを収集するコストを抑えながら、推定モデルによる外観検査の精度の向上を図る技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
すなわち、本発明の一側面に係る検査装置は、検査を実施する対象製品の写る対象画像を取得するデータ取得部と、第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出する領域抽出部であって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、領域抽出部と、前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するモデル演算部であって、前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、モデル演算部と、前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定する判定部と、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力する出力部と、を備える。
【０００９】
当該構成では、欠陥の尤度を判定する能力を獲得した第２推定モデルの他に、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて生成された第１推定モデルを外観検査に使用する。この対象環境に特化型の第１推定モデルの使用により、対象環境における外観検査の精度の向上を見込むことができる。加えて、当該構成では、第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含む。第１推定モデルによる注目領域の抽出結果は、第２推定モデルの演算処理の過程において、複数の特徴マップのうちの少なくともいずれか１つに統合される。第１推定モデルによる注目領域の抽出結果をどの特徴マップに統合するかは、対象製品に欠陥があるか否かについての判定精度がなるべく高くなるように決定することができる。したがって、当該構成によれば、多様な外観を有し得る製品に対して、推定モデルによる外観検査の精度の向上を期待することができる。
【００１０】
上記一側面に係る検査装置において、前記第２推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器であって、復号化された前記画像は欠陥の尤度を画素毎に示す、復号器を備えてよい。前記符号器は、入力側から順に直列に接続される複数の符号ユニットを含んでよい。前記各符号ユニットは、入力データよりも次元の低い特徴マップに入力データを変換するように構成されてよい。前記複数回の射影処理を前記対象画像に対して実行することは、入力側から順に前記各符号ユニットの演算処理を実行することにより構成されてよい。そして、前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の符号ユニットのうちの少なくとも１つにより生成される特徴マップに統合されてよい。当該構成によれば、第１推定モデルによる注目領域の抽出結果を統合する次元を容易に変更することができ、これにより、推定モデルによる外観検査の精度の向上を容易に操作することができる。
【００１１】
上記一側面に係る検査装置は、前記複数の符号ユニットの中から少なくとも１つ以上の対象符号ユニットを選択する選択部を更に備えてもよい。そして、前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、選択された前記少なくとも１つ以上の対象符号ユニットにより生成される特徴マップに統合されてよい。当該構成によれば、対象符号ユニットの選択により、推定モデルによる外観検査の精度を最適化することができる。
【００１２】
上記一側面に係る検査装置において、前記選択部は、所定の欠陥を含む評価用製品の写る評価画像を取得し、前記第１推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第２推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、かつ前記試行の結果に基づいて、最適な符号ユニットを前記対象符号ユニットとして選択してもよい。当該構成によれば、推定モデルによる外観検査の精度を自動的に最適化することができる。
【００１３】
上記一側面に係る検査装置において、前記選択部は、所定の欠陥を含む評価用製品の写る評価画像を取得し、前記第１推定モデルを使用して、取得された前記評価画像から注目領域を抽出し、前記対象符号ユニットとして選択されたと仮定する符号ユニットを変更しながら、前記評価画像に対する前記注目領域の抽出結果を使用して、前記第２推定モデルの演算処理を繰り返すことにより、前記各符号ユニットを前記対象符号ユニットとして選択したと仮定したときの前記評価画像に対する前記評価用製品に欠陥があるか否かの判定を符号ユニット毎に試行し、前記試行の結果をオペレータに対して出力し、かつ前記オペレータの指定による、前記複数の符号ユニットの中からの前記少なくとも１つの対象符号ユニットの選択を受け付けてもよい。当該構成によれば、推定モデルによる外観検査の精度をオペレーションにより最適化することができる。
【００１４】
上記一側面に係る検査装置において、前記符号器は、畳み込みニューラルネットワークにより構成されてよく、前記各符号ユニットは、１又は複数の畳み込み層及びプーリング層により構成されてよい。当該構成によれば、第２推定モデルを容易に実装することができる。
【００１５】
上記一側面に係る検査装置は、前記欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する設定部を更に備えてよい。そして、前記領域抽出部は、設定された前記パラメータの値に応じて、前記注目領域を抽出してもよい。当該構成によれば、第１推定モデルの推定結果を反映する程度を調整することができ、これにより、対象環境における推定モデルによる外観検査の精度を最適化することができる。
【００１６】
上記一側面に係る検査装置において、前記第１推定モデルは、画像を特徴量に変換する符号器、及び前記特徴量から前記画像を復号化する復号器を備えてよい。前記領域抽出部は、前記第１推定モデルの前記符号器及び前記復号器を使用して、前記対象画像に対して対象復号化画像を生成し、かつ生成された前記対象復号化画像及び前記対象画像の間の差分領域を算出してもよい。前記パラメータは、前記差分領域を拡げる程度を規定する拡大パラメータを含んでもよい。そして、前記領域抽出部は、設定された前記拡大パラメータの値に応じて、算出された前記差分領域を拡げることで、前記注目領域の抽出結果を取得してもよい。当該構成によれば、第１推定モデルの推定結果を反映する程度を容易に調整することができる。
【００１７】
上記一側面に係る検査装置において、前記注目領域の抽出結果は、アテンションマップにより構成されてよい。当該構成によれば、特徴マップ及びアテンションマップは共に画像データであるため、抽出結果の統合処理を容易に実装することができる。
【００１８】
上記一側面に係る検査装置において、前記第１推定モデルは、前記第１学習データを使用した機械学習により、前記欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように訓練されることで生成されたものであってよい。当該構成によれば、第１推定モデルを容易に実装することができる。
【００１９】
上記一側面に係る検査装置において、前記第２推定モデルは、前記第２学習データを使用した機械学習により、欠陥の尤度を判定する能力を獲得するように訓練されることで生成されたものであってよい。当該構成によれば、第２推定モデルを容易に実装することができる。
【００２０】
上記各形態に係る検査装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２１】
例えば、本発明の一側面に係る検査方法は、コンピュータが、検査を実施する対象製品の写る対象画像を取得するステップと、第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するステップであって、前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、ステップと、前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、を実行する、情報処理方法である。
【００２２】
また、例えば、本発明の一側面に係る検査プログラムは、コンピュータに、検査を実施する対象製品の写る対象画像を取得するステップと、第１推定モデルを使用して、取得された前記対象画像から注目領域を抽出するステップであって、前記第１推定モデルは、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データに基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成されたものである、ステップと、前記第１推定モデルによる前記対象画像に対する前記注目領域の抽出結果を使用して、第２推定モデルの演算処理を実行するステップであって、前記第２推定モデルは、欠陥の写る複数の第２学習画像を含む第２学習データに基づいて、欠陥の尤度を判定する能力を獲得するように生成されたものであり、前記第２推定モデルの演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を前記対象画像に対して実行することで、次元の異なる複数の特徴マップを生成することを含み、前記注目領域の抽出結果は、前記第２推定モデルの演算処理の過程において、前記複数の特徴マップのうちの少なくともいずれか１つに統合される、ステップと、前記第２推定モデルの演算結果に基づいて、前記対象製品に欠陥があるか否かを判定するステップと、前記対象製品に欠陥があるか否かを判定した結果を示す情報を出力するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２３】
本発明によれば、推定モデルによる外観検査の精度の向上を図ることができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る検査装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る検査装置のソフトウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係るモデル生成装置による第１推定モデルの生成に関する処理手順の一例を示すフローチャートである。
【図７】図７は、実施の形態に係るモデル生成装置による第２推定モデルの生成に関する処理手順の一例を示すフローチャートである。
【図８】図８は、実施の形態に係る検査装置による対象符号ユニットの選択に関する処理手順の一例を示すフローチャートである。
【図９】図９は、実施の形態に係る検査装置による外観検査に関する処理手順の一例を示すフローチャートである。
【図１０】図１０は、他の形態に係る第２推定モデルの一例を模式的に例示する。
【図１１】図１１は、他の形態に係るユニット選択装置のハードウェア構成の一例を模式的に例示する。
【図１２】図１２は、他の形態に係るユニット選択装置のソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【００２５】
本発明の一側面では、対象環境において得られる欠陥のない製品の外観の知見に基づいて、欠陥の蓋然性の高い領域を抽出するように構成された第１推定モデル、及び対象環境に関係なく、欠陥の有無を判定するように構成された第２推定モデルの２つの推定モデルを外観検査に使用する。第２推定モデルによれば、対象製品に欠陥があるか否かを判定することができる。ただし、対象環境において表れる製品の状況に影響を受けて、第２推定モデルのみを使用した判定では誤りが生じる可能性がある。例えば、製品の外観模様が欠陥パターンに類似していることで、当該製品の外観模様を欠陥と誤る可能性がある。
【００２６】
そこで、第１推定モデルを外観検査に更に使用する。第１推定モデルによれば、対象環境において欠陥のない製品には表れない画像領域、すなわち、対象環境において欠陥の生じている蓋然性の高い領域を優先的に抽出することができる。そのため、２つの推定モデルの推定結果を融合する（すなわち、第１推定モデルにより欠陥を検出する範囲を絞り込み、第２推定モデルによりその範囲に欠陥が存在するか否かを判定する）ことで、外観検査の精度の最適化を図ることができる。つまり、学習データを収集するコストを抑えたことで、少なくともいずれか一方の推定モデルの推定精度が多少低くても、対象環境における外観検査の精度の向上を見込むことができる。
【００２７】
しかしながら、製品の外観は多様である。例えば、パターン化された外観（木目調等）を製品が有する場合、判定する範囲を絞るよりも、より広い範囲を参照した方が、製品の正常な外観か欠陥かを判別しやすいことがある。一方で、例えば、部分的にデザインの施された単純な外観を製品が有する場合、判定する範囲を絞った方が、製品の正常な外観か欠陥かを判別しやすいことがある。したがって、製品の外観を考慮せず、２つの推定モデルの推定結果を単純に融合した場合には、製品の輪郭、模様等の正常な外観を欠陥と誤って判別してしまい、外観検査の精度がかえって低下してしまう可能性があると想定された。そこで、本発明の一側面では、第２推定モデルの演算処理の過程において第１推定モデルによる注目領域の抽出結果を第２推定モデルが生成する複数の特徴マップのうちの少なくとも１つに統合することにした。
【００２８】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２９】
§１  適用例
図１は、本発明を適用した場面の一例を模式的に例示する。図１に示されるとおり、本実施形態に係る外観検査システム１００は、モデル生成装置１及び検査装置２を備えている。
【００３０】
本実施形態に係るモデル生成装置１は、外観検査に利用可能な第１推定モデル５及び第２推定モデル６を生成するように構成されたコンピュータである。第１推定モデル５は、検査を実施する対象環境において得られた欠陥のない製品の写る複数の第１学習画像を含む第１学習データ３０に基づいて、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように生成される。第２推定モデル６は、欠陥の写る複数の第２学習画像を含む第２学習データ３５に基づいて、欠陥の尤度を判定する能力を獲得するように生成される。各学習データ（３０、３５）に基づいて、各能力を獲得可能に各推定モデル（５、６）が生成されるのであれば、各推定モデル（５、６）の生成方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、各推定モデル（５、６）は、各学習データ（３０、３５）に基づいて、手作業により生成されてもよい。本実施形態では、各推定モデル（５、６）の生成方法に機械学習を採用する。これにより、各推定モデル（５、６）を容易に実装することができる。
【００３１】
具体的に、モデル生成装置１は、検査を実施する対象環境において得られた欠陥のない製品の写る複数の良品画像３１を含む第１学習データ３０を取得する。良品画像３１は、第１学習画像の一例である。モデル生成装置１は、第１学習データ３０を使用した機械学習により、与えられた画像から、欠陥の写っている蓋然性を有する領域（すなわち、欠陥に由来する特徴を含む領域）を注目領域として抽出する能力を獲得するように第１推定モデル５を訓練する。これにより、第１学習データ３０に基づいて、当該能力を獲得した学習済みの第１推定モデル５が生成される。
【００３２】
また、モデル生成装置１は、欠陥の写る複数の欠陥画像３７１を含む第２学習データ３５を取得する。欠陥画像３７１は、第２学習画像の一例である。モデル生成装置１は、第２学習データ３５を使用した機械学習により、与えられた画像（例えば、製品の写る画像）に対して欠陥の尤度を判定する能力を獲得するように第２推定モデル６を訓練する。これにより、第２学習データ３５に基づいて、当該能力を獲得した学習済みの第２推定モデル６が生成される。
【００３３】
一方、検査装置２は、生成された２つの推定モデル（５、６）を使用して、製品の外観検査を実施するように構成されたコンピュータである。具体的に、検査装置２は、検査を実施する対象製品Ｒの写る対象画像２２１を取得する。本実施形態では、カメラＳが、対象製品Ｒを撮像可能な位置に適宜配置されており、検査装置２は、このカメラＳに接続されている。検査装置２は、このカメラＳから対象画像２２１を取得する。
【００３４】
検査装置２は、第１推定モデル５を使用して、取得された対象画像２２１から注目領域を抽出する。次に、検査装置２は、第１推定モデル５による対象画像２２１に対する注目領域の抽出結果を使用して、第２推定モデル６の演算処理を実行する。この第２推定モデル６の演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像２２１に対して実行することで、次元の異なる複数の特徴マップ６３を生成することを含むように構成される。各射影処理は、入力データよりも低次元の空間に入力データを射影するように構成される。
【００３５】
複数回の射影処理により、次元の異なる複数の特徴マップ６３を生成する構成は、実施の形態に応じて適宜決定されてよい。例えば、第２推定モデル６の演算処理は、直列的に順次実行されるＮ（Ｎは２以上の整数）回の射影処理を含んでもよい。すなわち、第１番目の射影処理は、対象画像２２１を低次元の空間に射影するように構成されてよい。そして、第２番目以降の射影処理（第ｋ番目の射影処理）は、前の射影処理（第ｋ−１番目の射影処理）の結果を更に低次元の空間に射影するように構成されてよい。
【００３６】
第１推定モデル５による注目領域の抽出結果は、この第２推定モデル６の演算処理の過程において、複数の特徴マップ６３のうちの少なくともいずれか１つに統合される。検査装置２は、第２推定モデル６の演算結果に基づいて、対象製品Ｒに欠陥があるか否かを判定する。そして、検査装置２は、対象製品Ｒに欠陥があるか否かを判定した結果を示す情報を出力する。これにより、本実施形態に係る検査装置２は、各推定モデル（５、６）を使用して、製品の外観検査を実施する。
【００３７】
以上のとおり、本実施形態では、対象製品Ｒの外観検査に、欠陥の尤度を判定する能力を獲得した第２推定モデル６の他に、検査を実施する対象環境において得られた複数の良品画像３１に基づいて生成された第１推定モデル５が使用される。この対象環境に特化型の第１推定モデル５の使用により、対象製品Ｒに対する外観検査の精度の向上を見込むことができる。加えて、本実施形態では、第１推定モデル５による注目領域の抽出結果は、第２推定モデル６の演算過程において、次元の異なる複数の特徴マップ６３のうちの少なくともいずれか１つに統合される。第１推定モデル５による注目領域の抽出結果をどの特徴マップに統合するかは、対象製品に欠陥があるか否かについての判定精度がなるべく高くなるように決定される。どの特徴マップに統合するかは、対象製品のある程度多様な外観に対応できるように検査装置２の製造者において予め実験を重ねて決定されていてもよいし、特定の外観を有する対象製品に対応して精度の高い欠陥判定結果が得られるように検査装置２が使用される対象環境における実験を経て決定されてもよい。第２推定モデル６の演算処理は、第１推定モデル５による注目領域の抽出結果を統合する次元を変更可能に構成されてもよい。この場合には、欠陥の尤度を判定する範囲を次元レベルで調整することができ、その結果、対象製品Ｒの有する外観に適切な統合処理の実施を期待することができる。したがって、本実施形態によれば、多様な外観を有し得る対象製品Ｒに対して、２つの推定モデル（５、６）による外観検査の精度の向上を期待することができる。
【００３８】
なお、図１の例では、モデル生成装置１及び検査装置２は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置１及び検査装置２の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置１及び検査装置２の間では、記憶媒体を利用して、データがやりとりされてよい。
【００３９】
また、図１の例では、モデル生成装置１及び検査装置２は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る外観検査システム１００の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置１及び検査装置２は一体のコンピュータであってもよい。また、例えば、モデル生成装置１及び検査装置２のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
【００４０】
対象製品Ｒは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。対象製品Ｒは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。
【００４１】
§２  構成例
［ハードウェア構成］
＜モデル生成装置＞
図２は、本実施形態に係るモデル生成装置１のハードウェア構成の一例を模式的に例示する。図２に示されるとおり、本実施形態に係るモデル生成装置１は、制御部１１、記憶部１２、通信インタフェース１３、外部インタフェース１４、入力装置１５、出力装置１６、及びドライブ１７が電気的に接続されたコンピュータである。なお、図２では、通信インタフェース及び外部インタフェースを「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。
【００４２】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、モデル生成プログラム８１、第１学習データ３０、第２学習データ３５、第１学習結果データ１２１、第２学習結果データ１２５等の各種情報を記憶する。
【００４３】
モデル生成プログラム８１は、各推定モデル（５、６）を生成する後述の情報処理（図６及び図７）をモデル生成装置１に実行させるためのプログラムである。モデル生成プログラム８１は、当該情報処理の一連の命令を含む。第１学習データ３０は、第１推定モデル５の生成に利用される。第２学習データ３５は、第２推定モデル６の生成に利用される。第１学習結果データ１２１は、生成された第１推定モデル５に関する情報を示す。第２学習結果データ１２５は、生成された第２推定モデル６に関する情報を示す。本実施形態では、各学習結果データ（１２１、１２５）は、モデル生成プログラム８１を実行した結果として生成される。詳細は後述する。
【００４４】
通信インタフェース１３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置１は、通信インタフェース１３を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース１４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース１４の種類及び数は任意に選択されてよい。モデル生成装置１は、通信インタフェース１３及び外部インタフェース１４の少なくとも一方を介して、学習画像を得るためのカメラに接続されてよい。
【００４５】
入力装置１５は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１６は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置１５及び出力装置１６を利用することで、モデル生成装置１を操作することができる。
【００４６】
ドライブ１７は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体９１は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム８１、第１学習データ３０、及び第２学習データ３５の少なくともいずれかは、記憶媒体９１に記憶されていてもよい。モデル生成装置１は、この記憶媒体９１から、上記モデル生成プログラム８１、第１学習データ３０、及び第２学習データ３５の少なくともいずれかを取得してもよい。なお、図２では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ１７の種類は、記憶媒体９１の種類に応じて任意に選択されてよい。
【００４７】
なお、モデル生成装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＤＳＰ（digital signal processor）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース１３、外部インタフェース１４、入力装置１５、出力装置１６及びドライブ１７の少なくともいずれかは省略されてもよい。モデル生成装置１は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置１は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ（Personal Computer）等であってもよい。
【００４８】
＜検査装置＞
図３は、本実施形態に係る検査装置２のハードウェア構成の一例を模式的に例示する。図３に示されるとおり、本実施形態に係る検査装置２は、制御部２１、記憶部２２、通信インタフェース２３、外部インタフェース２４、入力装置２５、出力装置２６、及びドライブ２７が電気的に接続されたコンピュータである。
【００４９】
検査装置２の制御部２１〜ドライブ２７及び記憶媒体９２はそれぞれ、上記モデル生成装置１の制御部１１〜ドライブ１７及び記憶媒体９１それぞれと同様に構成されてよい。制御部２１は、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部２２は、検査プログラム８２、第１学習結果データ１２１、第２学習結果データ１２５等の各種情報を記憶する。
【００５０】
検査プログラム８２は、対象製品Ｒの外観検査に関する後述の情報処理（図８及び図９）を検査装置２に実行させるためのプログラムである。検査プログラム８２は、当該情報処理の一連の命令を含む。検査プログラム８２、第１学習結果データ１２１、及び第２学習結果データ１２５のうちの少なくともいずれかは、記憶媒体９２に記憶されていてもよい。また、検査装置２は、検査プログラム８２、第１学習結果データ１２１、及び第２学習結果データ１２５のうちの少なくともいずれかを記憶媒体９２から取得してもよい。
【００５１】
また、図３の例では、検査装置２は、外部インタフェース２４を介して、カメラＳ（撮像装置）に接続されている。これにより、検査装置２は、カメラＳから対象画像２２１を取得可能に構成される。ただし、カメラＳとの接続方法は、このような例に限定されなくてもよい。例えば、カメラＳが通信インタフェースを備える場合、検査装置２は、通信インタフェース２３を介して、カメラＳに接続されてもよい。カメラＳの種類は、実施の形態に応じて適宜選択されてよい。カメラＳは、例えば、一般的なＲＧＢカメラ、深度カメラ、赤外線カメラ等であってよい。
【００５２】
なお、検査装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部２２は、制御部２１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース２３、外部インタフェース２４、入力装置２５、出力装置２６、及びドライブ２７の少なくともいずれかは省略されてもよい。検査装置２は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のＰＣ、ＰＬＣ（programmable logic controller）等であってもよい。また、検査装置２及びカメラＳは、画像センサとして一体的に構成されてもよい。
【００５３】
［ソフトウェア構成］
＜モデル生成装置＞
図４は、本実施形態に係るモデル生成装置１のソフトウェア構成の一例を模式的に例示する。モデル生成装置１の制御部１１は、記憶部１２に記憶されたモデル生成プログラム８１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開されたモデル生成プログラム８１に含まれる命令をＣＰＵにより解釈及び実行して、各構成要素を制御する。これにより、図４に示されるとおり、本実施形態に係るモデル生成装置１は、第１取得部１１１、第１学習部１１２、第２取得部１１３、第２学習部１１４、及び保存処理部１１５をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置１の各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００５４】
第１取得部１１１は、複数の良品画像３１を含む第１学習データ３０を取得する。第１学習部１１２は、第１学習データ３０を使用して、第１推定モデル５の機械学習を実施する。第２取得部１１３は、複数の欠陥画像３７１を含む第２学習データ３５を取得する。第２学習部１１４は、第２学習データ３５を使用して、第２推定モデル６の機械学習を実施する。保存処理部１１５は、機械学習により生成された学習済みの第１推定モデル５に関する情報を第１学習結果データ１２１として生成する。同様に、保存処理部１１５は、機械学習により生成された学習済みの第２推定モデル６に関する情報を第２学習結果データ１２５として生成する。そして、保存処理部１１５は、生成された各学習結果データ（１２１、１２５）を所定の記憶領域に保存する。
【００５５】
（各モデルの構成及び機械学習の方法の一例）
上記演算処理を実装可能であれば、各推定モデル（５、６）の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。第１推定モデル５は、欠陥の写っている蓋然性を有する領域を注目領域として抽出可能に適宜構成されてよい。第２推定モデル６は、複数回の射影処理により次元の異なる複数の特徴マップ６３を演算過程で生成した上で、欠陥の尤度を判定可能に適宜構成されてよい。
【００５６】
図４に示されるとおり、本実施形態では、第１推定モデル５は、与えられた画像（入力画像）を特徴量に変換する符号器５１、及び特徴量から画像を復号化する復号器５３を備えるように構成される。第２推定モデル６は、与えられた画像（入力画像）を特徴量に変換する符号器６１、及び特徴量から画像を復号化する復号器６５を備えるように構成される。復号器６５により復号化される画像は、欠陥の尤度を画素毎に示すように構成される。すなわち、復号化された画像の各画素は、各画素に写る対象が欠陥であるか否かの程度に関する情報を示すように構成される。符号器６１は、入力側から順に直列に接続される複数の符号ユニット６２を含み、各符号ユニット６２は、入力データよりも次元の低い特徴マップ６３に入力データを変換するように構成される。
【００５７】
加えて、本実施形態では、上記各能力を獲得した各推定モデル（５、６）は、機械学習により生成される。そのため、各推定モデル（５、６）には、機械学習により調整可能な演算パラメータを有する機械学習モデルが用いられる。機械学習モデルの構成及び種類はそれぞれ、実施の形態に応じて適宜選択されてよい。本実施形態では、各推定モデル（５、６）には、ニューラルネットワークが用いられる。具体的には、第１推定モデル５の符号器５１及び復号器５３はそれぞれ、全結合型ニューラルネットワークにより構成される。第２推定モデル６の符号器６１は畳み込みニューラルネットワークにより構成される。当該構成によれば、各推定モデル（５、６）を容易に実装することができる。
【００５８】
（１）第１推定モデル
第１推定モデル５の符号器５１及び復号器５３はそれぞれ、入力層（５１１、５３１）、中間（隠れ）層（５１２、５３２）、及び出力層（５１３、５３３）を備えている。図４の例では、符号器５１及び復号器５３は３層で構成されているが、符号器５１及び復号器５３の層の数はそれぞれ任意に選択されてよい。例えば、符号器５１及び復号器５３の少なくとも一方は、２層以上の中間層を備えてもよい。
【００５９】
本実施形態では、符号器５１の入力層５１１には、対象画像２２１等の画像が入力され、入力画像から算出された特徴量が出力層５１３から出力される。また、復号器５３の入力層５３１には、符号器５１により算出された特徴量が入力され、入力された特徴量から復号化された画像（復号化画像）が出力層５３３から出力される。しかしながら、上記推定処理を実行可能であれば、符号器５１及び復号器５３の入出力の形式は、このような例に限定されなくてよい。例えば、各入力層（５１１、５３１）は、上記以外の他の情報が更に入力されるように構成されてよい。また、各出力層（５１３、５３３）は、上記以外の他の情報を更に出力するように構成されてよい。
【００６０】
各層（５１１、５１２、５１３、５３１、５３２、５３３）は、１又は複数のニューロン（ノード）を備える。各層（５１１、５１２、５１３、５３１、５３２、５３３）に含まれるニューロンの数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。入力層（５１１、５３１）は、例えば、入力画像、特徴量等の入力されるデータ及びその形式に応じて適宜決定されてよい。出力層（５１３、５３３）は、例えば、特徴量、推定結果（例えば、復号化画像）等の出力するデータ及びその形式に応じて適宜決定されてよい。図４の例では、各層（５１１、５１２、５１３、５３１、５３２、５３３）に含まれるに含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。ただし、各ニューロンの結合関係は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。
【００６１】
各層（５１１、５１２、５１３、５３１、５３２、５３３）の各結合には、重み（結合荷重）が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてもよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層（５１１、５１２、５１３、５３１、５３２、５３３）に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、符号器５１及び復号器５３それぞれの演算処理に利用される演算パラメータの一例である。
【００６２】
上記第１推定モデル５の機械学習では、第１学習部１１２は、各良品画像３１を訓練データ及び正解データとして使用する。すなわち、第１学習部１１２は、良品画像３１を符号器５１の入力層５１１に入力し、符号器５１及び復号器５３の順伝播の演算処理を実行する。この演算処理の結果、第１学習部１１２は、生成された復号化画像を復号器５３の出力層５３３から取得する。第１学習部１１２は、取得された復号化画像及び入力した良品画像３１の間の誤差（再構成誤差）を算出する。第１学習部１１２は、各良品画像３１について、算出される誤差が小さくなるように符号器５１及び復号器５３の各演算パラメータの値の調整を繰り返す。これにより、学習済みの第１推定モデル５を生成することができる。
【００６３】
本実施形態に係る学習済みの第１推定モデル５によれば、機械学習に使用された良品画像３１及びこれに類似する画像、すなわち、検査を実施する対象環境で得られる欠陥のない製品（良品）の外観の写る画像は、精度よく再構成することができる。これに対して、それ以外の画像、例えば、欠陥の写る画像については再構成の精度が下がる。つまり、再構成誤差の大きい領域は、欠陥の写る蓋然性の高い領域である。したがって、本実施形態に係る第１推定モデル５は、上記機械学習により、再構成誤差に基づいて、欠陥の写っている蓋然性の有する領域を抽出する能力を獲得することができる。
【００６４】
保存処理部１１５は、上記機械学習により生成された学習済みの第１推定モデル５を再生するための第１学習結果データ１２１を生成する。学習済みの第１推定モデル５を再生可能であれば、第１学習結果データ１２１の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、第１学習結果データ１２１は、上記機械学習の調整により得られた第１推定モデル５の各演算パラメータの値を示す情報を含んでもよい。場合によって、第１学習結果データ１２１は、第１推定モデル５（符号器５１及び復号器５３）の構造を示す情報を更に含んでもよい。構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部１１５は、生成された第１学習結果データ１２１を所定の記憶領域に保存する。
【００６５】
（２）第２推定モデル
第２推定モデル６の符号器６１は、複数の符号ユニット６２を含む。各符号ユニット６２は、１又は複数の畳み込み層６２１及びプーリング層６２３により構成される。
【００６６】
畳み込み層６２１は、与えられたデータに対する畳み込み演算を行うように構成される。畳み込み演算とは、与えられたデータと所定のフィルタとの相関を算出する処理に相当する。例えば、画像の畳み込みを行うことで、フィルタの濃淡パターンと類似する濃淡パターンを入力される画像から検出することができる。プーリング層６２３は、プーリング処理を行うように構成される。プーリング処理は、与えられたデータのフィルタに対する応答の強かった位置の情報を一部捨て、当該データ内に現れる特徴の微小な位置変化に対する応答の不変性を実現する。例えば、プーリング処理では、フィルタ内の最も大きな値が抽出され、それ以外の値が削除されてよい。本実施形態に係る各符号ユニット６２は、このような畳み込み層６２１及びプーリング層６２３により、入力されたデータをより次元の低い特徴マップ６３に変換するように構成される。
【００６７】
各符号ユニット６２に含まれる畳み込み層６２１及びプーリング層６２３の数は、任意に決定されてよい。図４の例では、符号器６１は、符号ユニット６２以外の構成要素を含んでおらず、各符号ユニット６２は、直列的に接続されている。各符号ユニット６２では、畳み込み層６２１が、プーリング層６２３よりも入力側に配置されている。最も入力側に配置された符号ユニット６２の畳み込み層６２１が符号器６１の入力層を構成しており、最も出力側に配置された符号ユニット６２のプーリング層６２３が符号器６１の出力層を構成している。
【００６８】
ただし、符号器６１及び各符号ユニット６２の構造は、このような例に限定されなくてもよい。畳み込み層６２１及びプーリング層６２３の配置及び接続関係は、実施の形態に応じて適宜決定されてよい。例えば、各符号ユニット６２が、複数の畳み込み層６２１及び複数のプーリング層６２３を備える場合、畳み込み層６２１及びプーリング層６２３は口語に配置されてよい。或いは、複数の畳み込み層６２１が連続して配置されたのちに、１又は複数のプーリング層６２３が配置されてもよい。符号器６１は、符号ユニット６２以外の構成要素を含んでもよい。符号器６１は、例えば、正規化層、ドロップアウト層、全結合層等の他の種類の層を含んでもよい。他の種類の層は、符号ユニット６２内に配置されてもよい。
【００６９】
一方、復号器６５は、アンプーリング層６５１及び逆畳み込み層６５３を備える。アンプーリング層６５１は、上記プーリング処理の逆演算を実行するように構成され、逆畳み込み層６５３は、上記畳み込み処理の逆演算を実行するように構成される。復号器６５に含まれるアンプーリング層６５１及び逆畳み込み層６５３の数は、任意に決定されてよい。図４の例では、アンプーリング層６５１及び逆畳み込み層６５３は交互に配置されている。最も入力側に配置されるアンプーリング層６５１が復号器６５の入力層を構成しており、最も出力側に配置される逆畳み込み層６５３が復号器６５の出力層を構成している。ただし、復号器６５の構造は、上記符号器６１と同様に、このような例に限定されなくてよい。アンプーリング層６５１及び逆畳み込み層６５３の配置及び接続関係は、実施の形態に応じて適宜決定されてよい。復号器６５は、アンプーリング層６５１及び逆畳み込み層６５３以外の他の種類の層を含んでもよい。
【００７０】
本実施形態では、符号器６１の入力層には、対象画像２２１等の画像が入力され、入力画像から算出された特徴量（特徴マップ）が出力層から出力される。また、復号器６５の入力層には、符号器６１により算出された特徴量が入力され、入力された特徴量から復号化された、欠陥の尤度の推定結果を画素毎に示す画像（判定画像）が出力層から出力される。しかしながら、上記推定処理を実行可能であれば、符号器６１及び復号器６５の入出力の形式は、このような例に限定されなくてよい。例えば、各入力層は、上記以外の他の情報が更に入力されるように構成されてもよい。各出力層は、上記以外の他の情報を更に出力するように構成されてよい。
【００７１】
畳み込み層６２１は、畳み込み演算に対応するニューロン（ノード）であって、入力又は自分の層よりも前（入力側）に配置された層の出力の一部の領域に結合するニューロン（ノード）を備えている。逆畳み込み層６５３も、同様に、逆畳み込み演算に対応するニューロンを備えている。各層（６２１、６５３）に含まれるニューロンの数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。また、畳み込み層６２１の各ニューロンは、例えば、Ｕ−ｎｅｔ等のように、隣接する層以外の層（例えば、復号器６５の対応する逆畳み込み層６５３）のニューロンと更に接続されてもよい。
【００７２】
畳み込み層６２１及び逆畳み込み層６５３の各結合には、上記第１推定モデル５の各層と同様に、重み（結合荷重）が設定される。各ニューロンには、閾値が設定される。閾値は、活性化関数により表現されてもよい。畳み込み層６２１及び逆畳み込み層６５３に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、符号器６１及び復号器６５の演算処理に利用される演算パラメータの一例である。
【００７３】
本実施形態では、第２取得部１１３は、このような構造を有する第２推定モデル６の機械学習に使用可能な第２学習データ３５を取得する。一例として、第２学習データ３５は、複数の学習データセット３６により構成される。各学習データセット３６は、学習画像３７及び正解画像３８の組み合わせにより構成される。機械学習において、学習画像３７は訓練データとして使用され、正解画像３８は正解データとして使用される。少なくとも一部の学習画像３７には、欠陥画像３７１が用いられる。学習画像３７の他の一部には、欠陥の写っていない画像が用いられてもよい。学習画像３７に欠陥が写る場合に、対応する正解画像３８は、その欠陥の範囲を示すように構成される。
【００７４】
本実施形態では、第２学習部１１４は、このような第２学習データ３５を使用して、第２推定モデル６の機械学習を実施する。具体的に、第２学習部１１４は、各学習データセット３６の学習画像３７を符号器６１の入力層に入力し、符号器６１及び復号器６５の順伝播の演算処理を実行する。この演算処理の結果、第２学習部１１４は、生成された判定画像を復号器６５の出力層から取得する。第２学習部１１４は、取得された判定画像及び対応する正解画像３８の間の誤差を算出する。第２学習部１１４は、各学習データセット３６について、算出される誤差が小さくなるように符号器６１及び復号器６５の各演算パラメータの値の調整を繰り返す。これにより、学習済みの第２推定モデル６を生成することができる。なお、正解データの構成は、第２推定モデル６の出力形式に応じて適宜選択されてよい。例えば、第２推定モデル６が欠陥の種別を識別した結果を出力するように構成される場合、正解データは、正解画像３８の他に又は正解画像３８に代えて、欠陥の種別を示す情報を含んでもよい。
【００７５】
保存処理部１１５は、上記機械学習により生成された学習済みの第２推定モデル６を再生するための第２学習結果データ１２５を生成する。学習済みの第２推定モデル６を再生可能であれば、第２学習結果データ１２５の構成は、第１学習結果データ１２１と同様に、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、第２学習結果データ１２５は、上記機械学習の調整により得られた第２推定モデル６の各演算パラメータの値を示す情報を含んでもよい。場合によって、第２学習結果データ１２５は、第２推定モデル６（符号器６１及び復号器６５）の構造を示す情報を更に含んでもよい。保存処理部１１５は、生成された第２学習結果データ１２５を所定の記憶領域に保存する。
【００７６】
＜検査装置＞
図５は、本実施形態に係る検査装置２のソフトウェア構成の一例を模式的に例示する。検査装置２の制御部２１は、記憶部２２に記憶された検査プログラム８２をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された検査プログラム８２に含まれる命令をＣＰＵにより解釈及び実行して、各構成要素を制御する。これにより、図５に示されるとおり、本実施形態に係る検査装置２は、データ取得部２１１、領域抽出部２１２、モデル演算部２１３、判定部２１４、出力部２１５、選択部２１６、及び設定部２１７をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、検査装置２の各ソフトウェアモジュールも、モデル生成装置１と同様に、制御部２１（ＣＰＵ）により実現される。
【００７７】
データ取得部２１１は、検査を実施する対象製品Ｒの写る対象画像２２１を取得する。領域抽出部２１２は、第１学習結果データ１２１を保持していることで、第１推定モデル５を備えている。領域抽出部２１２は、第１推定モデル５を使用して、対象画像２２１から注目領域を抽出する。本実施形態では、領域抽出部２１２は、対象画像２２１を符号器５１に入力し、符号器５１及び復号器５３の順伝播の演算処理を実行する。これにより、領域抽出部２１２は、符号器５１及び復号器５３を使用して、対象画像２２１に対して対象復号化画像２２３を生成する。領域抽出部２１２は、生成された対象復号化画像２２３及び対象画像２２１の間の差分領域を算出し、差分領域の算出結果に基づいて抽出画像２２５を生成する。抽出画像２２５は、注目領域の抽出結果の一例である。本実施形態では、抽出画像２２５は、欠陥である蓋然性の度合いを画素毎に示すアテンションマップにより構成されてよい。特徴マップ６３及びアテンションマップは共に画像データである。そのため、注目領域の抽出結果をアテンションマップにより構成することで、当該抽出結果の統合処理を容易に実装することができる。
【００７８】
モデル演算部２１３は、第２学習結果データ１２５を保持していることで、第２推定モデル６を備えている。モデル演算部２１３は、注目領域の抽出結果（すなわち、対象画像２２１から抽出された注目領域）を使用して、第２推定モデル６の演算処理を実行する。第２推定モデル６の演算処理は、それぞれ低次元の空間に射影する複数回の射影処理を対象画像２２１に対して実行することで、次元の異なる複数の特徴マップ６３を生成することを含む。注目領域の抽出結果は、第２推定モデル６の演算処理の過程において、複数の特徴マップ６３のうちの少なくともいずれか１つに統合される。
【００７９】
本実施形態では、モデル演算部２１３は、対象画像２２１を符号器６１に入力し、符号器６１及び復号器６５の順伝播の演算処理を実行する。この演算処理の過程において、複数回の射影処理を対象画像２２１に対して実行することは、入力側から順に各符号ユニット６２の演算処理を実行することにより構成される。注目領域の抽出結果は、第２推定モデル６の演算処理の過程において、複数の符号ユニット６２のうちの少なくとも１つにより生成される特徴マップ６３に統合される。統合方法の一例として、モデル演算部２１３は、統合対象の特徴マップ６３のサイズに合うように抽出画像２２５を適宜リサイズしてもよい。そして、モデル演算部２１３は、リサイズされた抽出画像２２５を対象の特徴マップ６３に掛け合わせることで、注目領域の抽出結果を対象の特徴マップ６３に統合してもよい。不要であれば、リサイズの処理は省略されてよい。
【００８０】
判定部２１４は、第２推定モデル６の演算結果に基づいて、対象製品Ｒに欠陥があるか否かを判定する。出力部２１５は、対象製品Ｒに欠陥があるか否かを判定した結果を示す情報を出力する。
【００８１】
選択部２１６は、複数の符号ユニット６２の中から少なくとも１つ以上の対象符号ユニットを選択する。注目領域の抽出結果は、第２推定モデル６の演算処理の過程において、選択された少なくとも１つ以上の対象符号ユニットにより生成される特徴マップ６３に統合されてよい。対象符号ユニットの選択により、２つの推定モデル（５、６）による外観検査の精度を最適化することができる。なお、対象符号ユニットの選択には、評価画像２２８及び正解情報２２９の組み合わせにより構成される評価用データセット２２７が利用されてよい。
【００８２】
設定部２１７は、欠陥の写る領域を注目領域として抽出する程度を規定するパラメータの値を設定する。領域抽出部２１２は、設定されたパラメータの値に応じて、注目領域を抽出してよい。当該構成によれば、第１推定モデル５の推定結果を反映する程度を調整することができ、これにより、対象環境における２つの推定モデル（５、６）による外観検査の精度を最適化することができる。本実施形態では、注目領域を抽出するために、対象画像２２１及び対象復号化画像２２３の間の差分領域が算出される。そのため、当該パラメータは、この差分領域を拡げる程度を規定する拡大パラメータを含んでよい。領域抽出部２１２は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、注目領域の抽出結果（本実施形態では、抽出画像２２５）を取得してもよい。
【００８３】
＜その他＞
モデル生成装置１及び検査装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置１及び検査装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。すなわち、上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置１及び検査装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００８４】
§３  動作例
［モデル生成装置］
（１）第１推定モデルの生成
図６は、本実施形態に係るモデル生成装置１による第１推定モデル５の生成（機械学習）に関する処理手順の一例を示すフローチャートである。ただし、以下の第１推定モデル５の生成に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の第１推定モデル５の生成に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００８５】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、第１取得部１１１として動作し、複数の良品画像３１を含む第１学習データ３０を取得する。
【００８６】
第１学習データ３０を構成する各良品画像３１は適宜生成されてよい。例えば、カメラＳ又はこれと同種のカメラを用意する。また、検査を実施する対象環境において、対象製品Ｒと同種の製品であって、欠陥のない製品を用意する。そして、用意した製品をカメラにより撮像する。これにより、各良品画像３１を生成することができる。良品画像３１は、カメラにより得られたそのままの画像であってもよい。或いは、良品画像３１は、カメラにより得られた画像に対して何らかの画像処理を適用することにより生成されてもよい。
【００８７】
第１学習データ３０は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、第１学習データ３０の生成は、モデル生成装置１により行われてもよいし、モデル生成装置１以外の他のコンピュータにより行われてもよい。第１学習データ３０をモデル生成装置１が生成する場合、制御部１１は、自動的に又は入力装置１５を介したオペレータの操作により手動的に上記生成処理を実行することで、第１学習データ３０を取得する。一方、第１学習データ３０を他のコンピュータが生成する場合、制御部１１は、例えば、ネットワーク、記憶媒体９１等を介して、他のコンピュータにより生成された第１学習データ３０を取得する。第１学習データ３０の一部の良品画像３１がモデル生成装置１により生成され、その他の良品画像３１が１又は複数の他のコンピュータにより生成されてもよい。
【００８８】
第１学習データ３０を構成する良品画像３１の件数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。なお、第１学習データ３０は、良品画像３１のみで構成されるのが好ましいが、第１学習データ３０の一部には、欠陥のある製品の画像が学習画像として含まれてもよい。第１学習データ３０を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００８９】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、第１学習部１１２として動作し、取得された第１学習データ３０を使用して、第１推定モデル５の機械学習を実施する。この機械学習により、制御部１１は、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得するように第１推定モデル５を訓練する。なお、必ずしも取得された全ての良品画像３１が第１推定モデル５の機械学習に使用されなければならない訳ではない。機械学習に使用される良品画像３１は適宜選択されてよい。
【００９０】
機械学習の処理の一例として、まず、制御部１１は、機械学習の処理対象となる第１推定モデル５の符号器５１及び復号器５３を構成するニューラルネットワークを用意する。各ニューラルネットワークの構造（例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等）、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部１１は、過去の機械学習により得られた学習結果データに基づいて、符号器５１及び復号器５３を用意してもよい。
【００９１】
次に、制御部１１は、第１学習データ３０の各良品画像３１を訓練データ（入力データ）及び正解データ（教師信号、ラベル）として使用し、符号器５１及び復号器５３の訓練処理を実行する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【００９２】
訓練処理の一例として、制御部１１は、各良品画像３１を符号器５１に入力し、符号器５１及び復号器５３の順伝播の演算処理を実行する。すなわち、制御部１１は、各良品画像３１を符号器５１の入力層５１１に入力し、入力側から順に各層に含まれるニューロンの発火判定等の演算処理を実行する。この演算処理の結果、制御部１１は、各良品画像３１に対応して生成された復号化画像を復号器５３の出力層５３３から取得する。制御部１１は、得られた復号化画像と対応する良品画像３１との間の誤差を算出する。誤差（損失）の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。
【００９３】
次に、制御部１１は、算出された誤差の勾配を算出する。制御部１１は、誤差逆伝播（Back propagation）法により、算出された誤差の勾配を用いて、符号器５１及び復号器５３の各演算パラメータ（各ニューロン間の結合の重み、各ニューロンの閾値等）の値の誤差を出力側から順に算出する。制御部１１は、算出された各誤差に基づいて、符号器５１及び復号器５３の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
【００９４】
制御部１１は、上記一連の更新処理により、各良品画像３１について、算出される誤差の和が小さくなるように、符号器５１及び復号器５３の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部１１は、上記一連の更新処理による符号器５１及び復号器５３の各演算パラメータの値の調整を繰り返してもよい。
【００９５】
この機械学習の結果、制御部１１は、欠陥の写っている蓋然性を有する領域を注目領域として抽出する能力を獲得した訓練済みの第１推定モデル５を生成することができる。詳細には、本実施形態では、対象環境で出現する欠陥のない製品の外観を再構成する能力が高く、それ以外を再構成する能力の低い訓練済みの第１推定モデル５が生成される。第１推定モデル５の機械学習が完了すると、制御部１１は、次のステップＳ１０３に処理を進める。
【００９６】
（ステップＳ１０３）
ステップＳ１０３では、制御部１１は、保存処理部１１５として動作し、機械学習により生成された訓練済みの第１推定モデル５（符号器５１及び復号器５３）に関する情報を第１学習結果データ１２１として生成する。そして、制御部１１は、生成された第１学習結果データ１２１を所定の記憶領域に保存する。
【００９７】
所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、ＣＤ、ＤＶＤ等であってよく、制御部１１は、ドライブ１７を介して記憶メディアに第１学習結果データ１２１を格納してもよい。外部記憶装置は、例えば、ＮＡＳ（Network Attached Storage）等のデータサーバであってよい。この場合、制御部１１は、通信インタフェース１３を利用して、ネットワークを介してデータサーバに第１学習結果データ１２１を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース１４を介してモデル生成装置１に接続された外付けの記憶装置であってもよい。
【００９８】
第１学習結果データ１２１の保存が完了すると、制御部１１は、本動作例に係る第１推定モデル５の生成に関する処理手順を終了する。
【００９９】
なお、生成された第１学習結果データ１２１は、任意のタイミングで検査装置２に提供されてよい。例えば、制御部１１は、ステップＳ１０３の処理として又はステップＳ１０３の処理とは別に、第１学習結果データ１２１を検査装置２に転送してもよい。検査装置２は、この転送を受信することで、第１学習結果データ１２１を取得してもよい。また、例えば、検査装置２は、通信インタフェース２３を利用して、モデル生成装置１又はデータサーバにネットワークを介してアクセスすることで、第１学習結果データ１２１を取得してもよい。また、例えば、検査装置２は、記憶媒体９２を介して、第１学習結果データ１２１を取得してもよい。また、例えば、第１学習結果データ１２１は、検査装置２に予め組み込まれてもよい。
【０１００】
更に、制御部１１は、上記ステップＳ１０１〜ステップＳ１０３の処理を定期又は不定期に繰り返すことで、第１学習結果データ１２１を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する第１学習データ３０の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部１１は、更新した又は新たに生成した第１学習結果データ１２１を任意の方法で検査装置２に提供することで、検査装置２の保持する第１学習結果データ１２１を更新してもよい。
【０１０１】
（２）第２推定モデルの生成
図７は、本実施形態に係るモデル生成装置１による第２推定モデル６の生成（機械学習）に関する処理手順の一例を示すフローチャートである。ただし、以下の第２推定モデル６の生成に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の第２推定モデル６の生成に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１０２】
（ステップＳ１５１）
ステップＳ１５１では、制御部１１は、第２取得部１１３として動作し、複数の欠陥画像３７１を含む第２学習データ３５を取得する。本実施形態では、第２学習データ３５は、複数の学習データセット３６により構成される。各学習データセット３６は、学習画像３７及び正解画像３８の組み合わせにより構成される。少なくとも一部の学習画像３７には、欠陥画像３７１が用いられる。
【０１０３】
第２学習データ３５を構成する各学習データセット３６は適宜生成されてよい。上記第１学習データ３０と同様に、例えば、カメラＳ又はこれと同種のカメラを用意する。また、欠陥を有する製品を用意する。そして、用意した製品をカメラにより撮像する。これにより、学習画像３７として使用可能な欠陥画像３７１を生成することができる。画像処理により、得られた画像において欠陥の部分のみを抽出してもよい。つまり、欠陥のみ写る画像を欠陥画像３７１として生成してもよい。欠陥画像３７１には、製品の外観が写っていてもよいし、写っていなくてもよい。また、欠陥の写っていない画像を学習画像３７として生成してもよい。この学習画像３７は、任意の画像処理により適宜生成されてもよい。その他、欠陥のない製品をカメラにより撮像することで、欠陥の写っていない学習画像３７を生成してもよい。学習画像３７は、カメラにより得られたそのままの画像であってもよいし、或いは、カメラにより得られた画像に対して何らかの画像処理を適用することで生成されてもよい。更に、生成された学習画像３７に対して、欠陥の範囲を示す正解画像３８を関連付ける。正解画像３８は、判定画像の形式に合わせて、学習画像３７から生成されてもよい。その他、正解画像３８は、オペレータの手作業により生成されてよい。これらの処理により、各学習データセット３６を生成することができる。
【０１０４】
第２学習データ３５は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、第２学習データ３５の生成は、モデル生成装置１により行われてもよいし、モデル生成装置１以外の他のコンピュータにより行われてもよい。第２学習データ３５をモデル生成装置１が生成する場合、制御部１１は、自動的に又は入力装置１５を介したオペレータの操作により手動的に上記生成処理を実行することで、第２学習データ３５を取得する。一方、第２学習データ３５を他のコンピュータが生成する場合、制御部１１は、例えば、ネットワーク、記憶媒体９１等を介して、他のコンピュータにより生成された第２学習データ３５を取得する。第２学習データ３５の一部の学習データセット３６がモデル生成装置１により生成され、その他の学習データセット３６が１又は複数の他のコンピュータにより生成されてもよい。
【０１０５】
第２学習データ３５を構成する学習データセット３６の件数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。第２学習データ３５を取得すると、制御部１１は、次のステップＳ１５２に処理を進める。
【０１０６】
（ステップＳ１５２）
ステップＳ１５２では、制御部１１は、第２学習部１１４として動作し、取得された第２学習データ３５を使用して、第２推定モデル６の機械学習を実施する。この機械学習により、制御部１１は、与えられた画像に対して欠陥の尤度を判定する能力を獲得するように第２推定モデル６を訓練する。なお、必ずしも取得された全ての学習データセット３６が第２推定モデル６の機械学習に使用されなければならない訳ではない。機械学習に使用される学習データセット３６は適宜選択されてよい。
【０１０７】
機械学習の処理の一例として、まず、制御部１１は、機械学習の処理対象となる第２推定モデル６の符号器６１及び復号器６５を構成するニューラルネットワークを用意する。各ニューラルネットワークの構造、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部１１は、過去の機械学習により得られた学習結果データに基づいて、符号器６１及び復号器６５を用意してもよい。
【０１０８】
次に、制御部１１は、各学習データセット３６の学習画像３７を訓練データとして使用し、正解画像３８を正解データとして使用して、符号器６１及び復号器６５の訓練処理を実行する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【０１０９】
訓練処理の一例として、制御部１１は、各学習データセット３６の学習画像３７を符号器６１に入力し、符号器６１及び復号器６５の順伝播の演算処理を実行する。すなわち、制御部１１は、制御部１１は、各学習画像３７を符号器６１の入力層に入力し、入力側から順に各層に含まれるニューロンの発火判定等の演算処理を実行する。この演算処理の結果、制御部１１は、各学習画像３７に対応して生成された判定画像を復号器６５の出力層から取得する。制御部１１は、各学習データセット３６について、得られた判定画像及び対応する正解画像３８の間の誤差を算出する。誤差（損失）の算出には、任意の損失関数が用いられてよい。例えば、判定画像及び正解画像３８の間の誤差は、ＩｏＵ（Intersection over Union）により算出されてよい。
【０１１０】
次に、制御部１１は、算出された誤差の勾配を算出する。制御部１１は、誤差逆伝播法により、算出された誤差の勾配を用いて、符号器６１及び復号器６５の各演算パラメータの値の誤差を出力側から順に算出する。制御部１１は、算出された各誤差に基づいて、符号器６１及び復号器６５の各演算パラメータの値を更新する。上記第１推定モデル５と同様に、各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【０１１１】
制御部１１は、上記一連の更新処理により、各学習データセット３６について、算出される誤差の和が小さくなるように、符号器６１及び復号器６５の各演算パラメータの値を調整する。上記第１推定モデル５と同様に、所定の条件を満たすまで、制御部１１は、上記一連の更新処理による符号器６１及び復号器６５の各演算パラメータの値の調整を繰り返してもよい。
【０１１２】
この機械学習の結果、制御部１１は、与えられた画像に対して欠陥の尤度を判定する能力を獲得した訓練済みの第２推定モデル６を生成することができる。第２推定モデル６の機械学習が完了すると、制御部１１は、次のステップＳ１５３に処理を進める。
【０１１３】
（ステップＳ１５３）
ステップＳ１５３では、制御部１１は、保存処理部１１５として動作し、機械学習により生成された訓練済みの第２推定モデル６（符号器６１及び復号器６５）に関する情報を第２学習結果データ１２５として生成する。そして、制御部１１は、生成された第２学習結果データ１２５を所定の記憶領域に保存する。上記ステップＳ１０３と同様に、所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。第２学習結果データ１２５の保存先は、第１学習結果データ１２１と同じであってもよいし、異なっていてもよい。
【０１１４】
第２学習結果データ１２５の保存が完了すると、制御部１１は、本動作例に係る第２推定モデル６の生成に関する処理手順を終了する。なお、上記第１学習結果データ１２１と同様に、第２学習結果データ１２５は、任意のタイミングで検査装置２に提供されてよい。また、上記ステップＳ１５１〜ステップＳ１５３の処理は、定期又は不定期に繰り返されてよい。この繰り返しの際に、第２学習データ３５の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、当該繰り返しにより更新又は新たに生成された第２学習結果データ１２５が任意の方法で検査装置２に提供されることで、検査装置２の保持する第２学習結果データ１２５が更新されてもよい。
【０１１５】
［検査装置］
（１）対象符号ユニットの選択
図８は、本実施形態に係る検査装置２による対象符号ユニットの選択に関する処理手順の一例を示すフローチャートである。制御部２１は、選択部２１６として動作し、以下のステップＳ２０１〜ステップＳ２１０の処理を実行する。ただし、以下の対象符号ユニットの選択に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の対象符号ユニットの選択に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１１６】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、所定の欠陥を含む評価用製品の写る評価画像２２８を取得する。本実施形態では、制御部２１は、評価画像２２８及び正解情報２２９の組み合わせにより構成される評価用データセット２２７を取得する。評価画像２２８は、良品画像３１、学習画像３７等と同様に、所定の欠陥を有する評価用製品をカメラにより撮像することで生成されてよい。或いは、評価画像２２８は、任意の画像処理により生成されてもよい。正解情報２２９は、所定の欠陥の写る範囲を示すように適宜構成される。例えば、正解情報２２９は、上記正解画像３８と同様に構成されてよい。取得する評価用データセット２２７の件数は任意に決定されてよい。評価用データセット２２７を取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０１１７】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、第１推定モデル５を使用して、取得された評価画像２２８から注目領域を抽出する。本実施形態では、制御部２１は、第１学習結果データ１２１を参照して、訓練済みの第１推定モデル５の設定を行う。次に、制御部２１は、第１推定モデル５の符号器５１の入力層５１１に評価画像２２８を入力し、符号器５１及び復号器５３の順伝播の演算処理を実行する。この演算処理の結果、制御部２１は、評価画像２２８に対応して生成された復号化画像を復号器５３の出力層５３３から取得する。
【０１１８】
制御部２１は、生成された復号化画像及び評価画像２２８の間の差分領域を算出する。制御部２１は、差分領域の算出結果をそのまま抽出画像（注目領域の抽出結果）として取得してよい。拡大パラメータが設定されている場合、制御部２１は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、抽出画像を取得してもよい。差分領域の拡大処理は、例えば、ぼかし処理（すなわち、フィルタによる平滑化）、膨張処理等により構成されてよい。一例として、拡大パラメータは、ガウシアン等のフィルタを指定するように構成されてよい。この場合、制御部２１は、拡大パラメータの値により指定されたフィルタにより差分領域を平滑化することで、抽出画像を取得してもよい。評価画像２２８内の注目領域を抽出すると、制御部２１は、次のステップＳ２０３に処理を進める。
【０１１９】
（ステップＳ２０３〜ステップＳ２０９）
ステップＳ２０３では、制御部２１は、変数ｎに１を設定する。変数ｎは、対象符号ユニットとして選択されたと仮定する符号ユニット６２の指定に使用される。
【０１２０】
ステップＳ２０４では、制御部２１は、第２学習結果データ１２５を参照して、訓練済みの第２推定モデル６の設定を行う。この第２推定モデル６の設定は、ステップＳ２０３の処理よりも前に実行されてよい。制御部２１は、第２推定モデル６の符号器６１の入力層に評価画像２２８を入力し、ｎ番目の符号ユニット６２までの順伝播の演算処理を実行する。これにより、制御部２１は、ｎ番目の符号ユニット６２から特徴マップ６３を取得する。
【０１２１】
ステップＳ２０５では、制御部２１は、ｎ番目の符号ユニット６２により生成された特徴マップ６３に、ステップＳ２０２の処理により取得された抽出画像を統合する。第２推定モデル６による欠陥の尤度の判定に第１推定モデル５による注目領域の抽出結果を反映可能であれば、注目領域の抽出結果を統合する方法は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。単純な統合方法の一例として、制御部２１は、統合対象の特徴マップ６３のサイズに合うように抽出画像を適宜リサイズし、リサイズされた抽出画像を対象の特徴マップ６３に掛け合わせてもよい。これらの一連の処理により、制御部２１は、注目領域の抽出結果を対象の特徴マップ６３に統合することができる。この統合方法を採用する場合、制御部２１は、上記統合結果を次の層に入力する。
【０１２２】
ステップＳ２０６では、制御部２１は、第２推定モデル６の残りの部分（すなわち、ｎ番目の符号ユニット６２以降の構成要素）の順伝播の演算処理を実行する。これにより、制御部２１は、第２推定モデル６の演算結果として、評価画像２２８に対する判定画像を復号器６５の出力層から取得する。制御部２１は、この判定画像（第２推定モデル６の演算結果）に基づいて、評価用製品に欠陥があるか否かを判定する。ステップＳ２０４〜ステップＳ２０６までの処理により、制御部２１は、ｎ番目の符号ユニットを対象符号ユニットとして選択したと仮定したときの評価画像２２８に対する評価用製品に欠陥があるか否かの判定の試行結果を得ることができる。
【０１２３】
ステップＳ２０７では、制御部２１は、正解情報２２９を使用して、ステップＳ２０６までの処理により得た試行結果を評価する。制御部２１は、判定精度（すなわち、欠陥の検出精度）が高いほど、当該試行処理において対象符号ユニットであると仮定した符号ユニット６２を高く評価する。このように評価可能であれば、評価方法及び尺度は、任意に設定されてよい。一例として、制御部２１は、正解範囲及び検出範囲の間の重複度を評価値としてスコア化してもよい。正解範囲は、正解情報２２９により示される所定の欠陥の写る範囲である。また、検出範囲は、判定画像に基づいて欠陥が写っている（或いはその尤度が高い）と判定される範囲である。
【０１２４】
ステップＳ２０８では、制御部２１は、変数ｎの値に応じて、処理の分岐先を決定する。変数ｎの値がＮ（２以上）ではない場合、制御部２１は、ステップＳ２０９に処理を進める。Ｎは、符号器６１に含まれる符号ユニット６２の数を示す。ステップＳ２０９では、制御部２１は、変数ｎの値を１だけインクリメントする。そして、制御部２１は、新たな変数ｎの値に基づいて、ステップＳ２０４からの処理を再度実行する。一方、変数ｎの値がＮである場合、制御部２１は、ステップＳ２１０に処理を進める。
【０１２５】
本実施形態では、制御部２１は、上記ループ処理により、変数ｎの値を変更しながら、ステップＳ２０４〜ステップＳ２０６の処理を繰り返す。この一連の処理により、制御部２１は、対象符号ユニットとして選択されたと仮定する符号ユニット６２を変更しながら、評価画像２２８に対する注目領域の抽出結果を使用して、第２推定モデル６の演算処理を繰り返すことができる。そして、この繰り返し処理の結果、制御部２１は、各符号ユニット６２を対象符号ユニットとして選択したと仮定したときの評価画像２２８に対する評価用製品に欠陥があるか否かの判定（欠陥検出）を符号ユニット６２毎に試行することができる。
【０１２６】
なお、当該試行方法は一例である。評価用製品に対する欠陥検出の試行方法は、このような例に限定されなくてよく、実施の形態に応じて適宜変更されてよい。また、上記の例では、各試行において、いずれか１つの符号ユニット６２のみが対象符号ユニットであると仮定されている。しかしながら、各試行において、対象符号ユニットであると仮定する符号ユニット６２の数はこのような例に限定されなくてよく、２つ以上の符号ユニット６２がそれぞれ対象符号ユニットであると仮定されてもよい。
【０１２７】
（ステップＳ２１０）
ステップＳ２１０では、制御部２１は、試行の結果に基づいて、最適な符号ユニット６２を対象符号ユニットとして選択する。本実施形態では、制御部２１は、ステップＳ２０７により得られた評価の最も高い（すなわち、最も精度の高い判定の試行結果を与える）符号ユニット６２を対象符号ユニットとして選択する。対象符号ユニットの選択が完了すると、制御部２１は、本動作例に係る対象符号ユニットの選択に関する処理を終了する。当該処理によれば、２つの推定モデル（５、６）による外観検査の精度を自動的に最適化することができる。
【０１２８】
（２）外観検査
図９は、本実施形態に係る検査装置２による外観検査に関する処理手順の一例を示すフローチャートである。以下の外観検査に関する処理手順は、検査方法の一例である。ただし、以下の外観検査に関する処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の外観検査に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１２９】
（ステップＳ３０１）
ステップＳ３０１では、制御部２１は、データ取得部２１１は、検査を実施する対象製品Ｒの写る対象画像２２１を取得する。本実施形態では、制御部２１は、外部インタフェース２４を介して、カメラＳから対象画像２２１を直接的に取得する。対象画像２２１は、動画像であってもよいし、静止画像であってもよい。なお、対象画像２２１を取得する経路は、このような例に限定されなくてよい。他の経路の一例として、カメラＳは、他のコンピュータに接続されてよい。この場合、制御部２１は、他のコンピュータを介してカメラＳから間接的に対象画像２２１を取得してもよい。対象画像２２１を取得すると、制御部２１は、次のステップＳ３０２に処理を進める。
【０１３０】
（ステップＳ３０２）
ステップＳ３０２では、制御部２１は、領域抽出部２１２として動作し、第１推定モデル５を使用して、対象画像２２１から注目領域を抽出する。
【０１３１】
本実施形態では、制御部２１は、上記ステップＳ２０２と同様に、第１学習結果データ１２１を参照し、訓練済みの第１推定モデル５の設定を行う。次に、制御部２１は、第１推定モデル５の符号器５１の入力層５１１に対象画像２２１を入力し、符号器５１及び復号器５３の順伝播の演算処理を実行する。この演算処理の結果、制御部２１は、対象画像２２１に対応して生成された対象復号化画像２２３を復号器５３の出力層５３３から取得する。制御部２１は、生成された対象復号化画像２２３及び対象画像２２１の間の差分領域を算出し、差分領域の算出結果に基づいて抽出画像２２５を生成する。抽出画像２２５は、欠陥である蓋然性の度合いを画素毎に示すアテンションマップとして構成されてよい。
【０１３２】
上記ステップＳ２０２と同様に、制御部２１は、差分領域の算出結果をそのまま抽出画像２２５として取得してもよい。或いは、拡大パラメータが設定されている場合、制御部２１は、設定された拡大パラメータの値に応じて、算出された差分領域を拡げることで、抽出画像２２５を取得してもよい。この拡大パラメータを利用する形態によれば、第１推定モデル５の推定結果を外観検査に反映する程度を容易に調節することができる。なお、拡大パラメータは、欠陥の写る領域を抽出領域として抽出する程度を規定するパラメータ（以下、抽出パラメータとも記載する）の一例である。パラメータの値を設定するタイミングは任意でよい。例えば、本動作例に係る外観検査に関する処理の実行前又は実行の際に、制御部２１は、入力装置２５を介してパラメータの値の指定を受け付けてもよい。抽出画像２２５（注目領域の抽出結果）を取得すると、制御部２１は、次のステップＳ３０３に処理を進める。
【０１３３】
（ステップＳ３０３）
ステップＳ３０３では、制御部２１は、モデル演算部２１３として動作し、第１推定モデル５による対象画像２２１に対する注目領域の抽出結果（抽出画像２２５）を使用して、第２推定モデル６の演算処理を実行する。
【０１３４】
本実施形態では、制御部２１は、第２学習結果データ１２５を参照し、訓練済みの第２推定モデル６の設定を行う。制御部２１は、第２推定モデル６の符号器６１の入力層に対象画像２２１を入力し、対象符号ユニットとして選択された符号ユニット６２までの順伝播の演算処理を実行する。この演算処理の結果、制御部２１は、選択された符号ユニット６２から特徴マップ６３を取得する。次に、制御部２１は、選択された符号ユニット６２により生成された特徴マップ６３に抽出画像２２５を統合する。統合方法は、上記ステップＳ２０５と同様であってよい。複数の符号ユニット６２が対象符号ユニットに選択されている場合、制御部２１は、選択された符号ユニット６２までの順伝播の演算処理及び統合処理を入力側から順に実行する。そして、制御部２１は、第２推定モデル６の残りの部分の順伝播の演算処理を実行する。これにより、制御部２１は、第２推定モデル６の演算結果として、対象画像２２１に対する判定画像を復号器６５の出力層から取得する。
【０１３５】
本実施形態では、当該第２推定モデル６の演算処理の過程において、制御部２１は、符号器６１の各符号ユニット６２の演算処理を入力側から順に実行する。当該各符号ユニット６２の演算処理により、複数回の射影処理が対象画像２２１に対して実行され、その結果、次元の異なる複数の特徴マップ６３が生成される。抽出画像２２５は、当該第２推定モデル６の演算処理の過程において、選択された少なくとも１つ以上の対象符号ユニットにより生成される特徴マップ６３に統合される。第２推定モデル６の演算処理が完了すると、制御部２１は、次のステップＳ３０４に処理を進める。
【０１３６】
（ステップＳ３０４）
ステップＳ３０４では、制御部２１は、判定部２１４として動作し、第２推定モデル６の演算結果に基づいて、対象製品Ｒに欠陥があるか否かを判定する。
【０１３７】
欠陥があるか否かを判定することは、第２推定モデル６の出力（演算結果）を参照して、欠陥検出の認定を行うことである。判定の形式は、第２推定モデル６の出力形式等に応じて適宜決定されてよい。一例として、欠陥があるか否かを判定することは、欠陥の有無を判別すること、欠陥の種別を識別すること、欠陥の存在する（又はその蓋然性の有する）領域を抽出すること、欠陥である尤度を推定すること、又はこれらの組み合わせにより構成されてよい。制御部２１は、判定画像をそのまま判定結果として取得してもよいし、或いは、判定画像に対して何らかの情報処理（例えば、閾値判定）を実行することで、判定結果を取得してもよい。対象製品Ｒに欠陥があるか否かの判定が完了すると、制御部２１は、次のステップＳ３０５に処理を進める。
【０１３８】
（ステップＳ３０５）
ステップＳ３０５では、制御部２１は、対象製品Ｒに欠陥があるか否かを判定した結果を示す情報を出力する。
【０１３９】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。
出力先は、例えば、制御部２１内のＲＡＭ、出力装置２６、他のコンピュータ等であってよい。判定結果を示す情報には、判定の結果に基づいて何らかの情報処理を実行することで得られた情報（例えば、特定のメッセージ、制御対象装置に対する制御指令等）が含まれてもよい。一例として、制御部２１は、対象製品Ｒに欠陥があるか否かを判定した結果をそのまま出力装置２６又は他のコンピュータに出力してもよい。その他の一例として、対象製品Ｒに欠陥が存在すると判定した場合、制御部２１は、そのことを知らせるための警告を出力装置２６又は他のコンピュータに出力してもよい。更にその他の一例として、対象製品Ｒを搬送するコンベア装置に検査装置２が接続される場合、制御部２１は、判定の結果に基づいて、欠陥のある対象製品Ｒと欠陥のない対象製品Ｒとを別のラインで搬送されるようにコンベア装置を制御してもよい。
【０１４０】
判定結果を示す情報の出力が完了すると、制御部２１は、本動作例に係る外観検査に関する処理手順を終了する。なお、制御部２１は、ステップＳ３０１〜ステップＳ３０５の一連の情報処理を継続的に繰り返し実行してもよい。繰り返すタイミングは任意であってよい。繰り返す間、対象製品Ｒは、コンベア装置等により順次入れ替わってよい。これにより、検査装置２は、対象製品Ｒに対する外観検査を継続的に実施することができる。
【０１４１】
［特徴］
以上のとおり、本実施形態では、ステップＳ３０１〜ステップＳ３０５による対象製品Ｒの外観検査に、欠陥の尤度を判定する能力を獲得した第２推定モデル６の他に、対象環境に特化型の第１推定モデル５が使用される。この第１推定モデル５の使用により、対象製品Ｒに対する外観検査の精度の向上を見込むことができる。加えて、本実施形態では、ステップＳ３０３の処理により、第１推定モデル５による注目領域の抽出結果（抽出画像２２５）は、第２推定モデル６の演算過程において、次元の異なる複数の特徴マップ６３のうちの少なくともいずれか１つに統合される。すなわち、第２推定モデル６の演算処理は、第１推定モデル５による注目領域の抽出結果を統合する次元を変更可能に構成される。これにより、欠陥の尤度を判定する範囲を次元レベルで調整することができ、その結果、対象製品Ｒの有する外観に適切な統合処理の実施を期待することができる。例えば、パターン化された外観を有する製品に対して、比較的に広い範囲を参照するようにしたり、単純な外観を有する製品に対して、参照する範囲を比較的に絞ったりするようにすることができる。したがって、本実施形態によれば、多様な外観を有し得る対象製品Ｒに対して、２つの推定モデル（５、６）による外観検査の精度の向上を期待することができる。
【０１４２】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１４３】
＜４．１＞
上記実施形態では、第１推定モデル５の符号器５１及び復号器５３には、全結合型ニューラルネットワークが用いられている。また、第２推定モデル６の符号器６１には、畳み込みニューラルネットワークが用いられている。しかしながら、各推定モデル（５、６）に用いられるニューラルネットワークの種類は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、第１推定モデル５の符号器５１には、畳み込みニューラルネットワークが用いられてよい。
【０１４４】
また、上記実施形態では、各推定モデル（５、６）には、機械学習モデルとしてニューラルネットワークが用いられている。しかしながら、各推定モデル（５、６）に用いられる機械学習モデルの種類は、ニューラルネットワークに限られなくてよく、実施の形態に応じて適宜選択されてよい。機械学習の方法は、機械学習モデルの種類に応じて適宜選択されてよい。例えば、第１推定モデル５の符号器５１及び復号器５３は、主成分分析により導出された固有ベクトルを用いた直交射影行列により構成されてよい。この場合、第１推定モデル５の機械学習は、主成分分析を行うことを含んでよい。
【０１４５】
また、上記実施形態では、各推定モデル（５、６）は、機械学習により生成されている。しかしながら、各推定モデル（５、６）の生成方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、各推定モデル（５、６）は、ルールベースにより手作業で生成されてよい。この場合、各推定モデル（５、６）は、特徴抽出等の公知の画像処理により構成されてよい。各符号ユニット６２は、プーリング処理、縮小処理等の次元を落とす射影処理を適宜含むように構成されてよい。第１推定モデル５は、例えば、特開２０１０−２０３８４５号公報等の方法により、再構成誤差に基づく方法以外の方法で、欠陥の蓋然性の高い注目領域を抽出するように構成されてよい。また、上記実施形態では、第２推定モデル６の符号器６１において、各符号ユニット６２は直列的に接続されている。しかしながら、符号ユニット６２の配置は、このような例に限定されなくてよい。次元の異なる複数の特徴マップ６３を生成可能であれば、少なくとも一部の符号ユニット６２は並列に配置されてよい。極端には、全ての符号ユニット６２が並列に配置されてもよい。
【０１４６】
図１０は、本変形例に係る第２推定モデル６Ａの一例を模式的に例示する。本変形例に係る第２推定モデル６Ａは、並列に配置された３つの検出ユニットを備えることで、複数回の射影処理の少なくとも一部を並列に実行するように構成されている。具体的に、第１検出ユニットは、入力側から順に、第１縮小部６６１、１つ以上の特徴抽出部６７１、及び検出部６８１を備える。第２検出ユニットは、入力側から順に、第２縮小部６６２、１つ以上の特徴抽出部６７２、及び検出部６８２を備える。第３検出ユニットは、入力側から順に、１つ以上の特徴抽出部６７３及び検出部６８３を備える。
【０１４７】
第１縮小部６６１及び第２縮小部６６２は、入力画像のサイズを縮小する（すなわち、入力画像の次元を低くする）ように構成される。入力画像のサイズを縮小する方法には、例えば、画像内の画素を間引く（例えば、プーリング処理）、平均画素法等の方法が採用されてよい。各縮小部（６６１、６６２）の演算処理は、低次元の空間に射影する射影処理の一例である。第１縮小部６６１及び第２縮小部６６２の間では、異なるサイズの画像を生成するように構成される。一例として、第１縮小部６６１は、入力画像のサイズを１／２にするように構成されてよく、第２縮小部６６２は、入力画像のサイズを１／４にするように構成されてよい。
【０１４８】
各特徴抽出部６７１〜６７３は、画像の特徴を抽出するように構成される。画像の特徴を抽出する処理は、例えば、ソーベルフィルタ、ラプラシアンフィルタ等の公知のフィルタリングにより構成されてよい。各特徴抽出部６７１〜６７３の数は、実施の形態に応じて適宜決定されてよい。一例として、各１つ以上の特徴抽出部６７１〜６７３は、欠陥の特徴を抽出し、それ以外の特徴を除外する（すなわち、欠陥の候補領域を抽出する）ように構成されてよい。
【０１４９】
各検出部６８１〜６８３は、各特徴抽出部６７１〜６７３により得られた画像の特徴に基づいて、欠陥領域を検出するように構成される。一例として、各特徴抽出部６７１〜６７３が欠陥の候補領域を抽出するように構成される場合、各検出部６８１〜６８３は、抽出された候補領域のうち、サイズが閾値を超える候補領域を欠陥領域として検出するように構成されてよい。
【０１５０】
各検出ユニットによれば、次元の異なる複数の画像から欠陥検出の結果を得ることができる。なお、本変形例では、各縮小部（６６１、６６２）により生成される縮小画像、及び各特徴抽出部６７１〜６７３から出力される画像は、特徴マップの一例である。図１０の点線の矢印で示されるとおり、第１推定モデル５により得られる抽出画像２２５は、少なくともいずれかの画像（特徴マップ）に統合されてよい。縮小部を備えていない第３検出ユニットでは、対象画像２２１に抽出画像２２５を統合した上で、特徴抽出部６７３の演算処理を実行してもよい。また、図１０に示されるとおり、統合処理は、画像の積算処理により構成されてよい。検査装置２の上記選択部２１６は、候補となる各画像に対する統合処理の有効又は無効を設定するように構成されてよい。
【０１５１】
本変形例に係る第２推定モデル６Ａは、３つの検出ユニットによる欠陥の検出結果を統合し、その結果によって欠陥の有無を判定するように構成された統合判定部６９を更に備える。一例として、統合判定部６９は、各検出部６８１〜６８３により検出された欠陥領域を画像のサイズを合わせるように調整した後に重ね合わせ、重ね合わせの結果に基づいて最終的な欠陥の有無及び位置を判定するように構成されてよい。欠陥領域の重ね合わせは、例えば、ＡＮＤ演算（重なり部分のみ抽出）、ＯＲ演算（領域を足し合わせる）等により構成されてよい。
【０１５２】
本変形例に係る第２推定モデル６Ａは、最終的に得られた欠陥の判定結果を出力するように構成される。一例として、第２推定モデル６Ａは、統合判定部６９の判定結果をそのまま出力するように構成されてよい。その他の一例として、第２推定モデル６Ａは、欠陥が存在すると統合判定部６９が判定した場合に、その欠陥の部分を強調するように対象画像２２１を加工するよう構成された欠陥強調部（不図示）を更に備えてもよい。強調方法は、適宜決定されてよい。一例として、欠陥強調部は、検出された欠陥の周辺領域のコントラストが高くなり、欠陥の周辺以外の領域のコントラストが低くなるように対象画像２２１の各画素の輝度値を調整してもよい。この場合、第２推定モデル６Ａは、欠陥強調部により得られる欠陥を強調した画像を出力するように構成されてよい。
【０１５３】
なお、本変形例に係る第２推定モデル６Ａにおいて、並列に配置される検出ユニットの数は、３つに限定されなくてよく、２つであってもよいし、或いは４つ以上であってもよい。また、各検出ユニットでは、画像のサイズを縮小する処理が複数回実行されてもよい。すなわち、検出ユニットは、複数の縮小部を備えてもよい。
【０１５４】
また、上記実施形態において、例えば、次元の削減を伴わない処理（例えば、単純なフィルタリング処理）を実行する、並列的に特徴マップを生成する場合に次元を削減する数が一致する等の理由により、第２推定モデル６において生成される複数の特徴マップ６３の一部の次元が一致してもよい。この場合、第１推定モデル５による注目領域の抽出結果を統合する対象の特徴マップ６３は、次元が同じである別の特徴マップ６３に変更されてもよい。これにより、第１推定モデル５による注目領域の抽出結果を統合する特徴量を変更することができる。
【０１５５】
また、上記実施形態において、各推定モデル（５、６）の出力形式は、実施の形態に応じて適宜決定されてよい。例えば、第２推定モデル６は、復号器６５に代えて、判定器を備えてもよい。判定器は、符号器６１により得られる特徴量から欠陥があるか否かを判定するように構成されてよい。この場合、機械学習に使用される第２学習データ３５の各学習データセット３６は、正解画像３８に代えて、欠陥があるか否かを示す正解情報を含むように構成されてよい。モデル生成装置１は、上記ステップＳ１５２において、このような第２学習データ３５を使用することで、当該第２推定モデル６を適切に訓練することができる。また、上記実施形態において、各推定モデル（５、６）は、別々のコンピュータで生成されてよい。第１推定モデル５は、一現場で得られる第１学習データ３０に基づいて生成されてよい。これに対して、第２推定モデル６は、複数の現場それぞれから収集さ
れた第２学習データ３５に基づいて生成されてよい。
【０１５６】
＜４．２＞
上記実施形態において、抽出パラメータは、拡大パラメータに限られなくてよい。一例として、検査装置２は、対象復号化画像２２３及び対象画像２２１の間の差分を算出することにより差分画像を生成してもよい。続いて、検査装置２は、閾値（２値化閾値）に基づいて、差分画像の各画素を２値化してもよい。そして、検査装置２は、２値化により欠陥が存在すると示す画素のまとまりのうち、面積が閾値（面積閾値）以下のまとまりを削除してもよい。この一連の処理により、検査装置２は、対象復号化画像２２３及び対象画像２２１の間の差分領域を算出してもよい。この場合、抽出パラメータは、２値化閾値及び面積閾値のうちの少なくとも一方を含んでよい。なお、上記実施形態において、当該パラメータの値を設定する処理は省略されてよい。この場合、検査装置２のソフトウェア構成から設定部２１７が省略されてよい。
【０１５７】
＜４．３＞
上記実施形態では、ステップＳ２０１〜ステップＳ２１０の処理により、対象環境に最適な対象符号ユニットを自動的に選択することができる。しかしながら、対象符号ユニットの選択方法は、このような例に限定されなくてよい。制御部２１は、任意の方法により、複数の符号ユニット６２の中から少なくとも１つ以上の対象符号ユニットを選択してもよい。他の方法の一例として、制御部２１は、ステップＳ２０１〜ステップＳ２１０の処理のうち、ステップＳ２０７の処理を省略してよい。更に、制御部２１は、ステップＳ２１０の処理の代わりに、ステップＳ２０６による試行の結果をオペレータに対して出力してもよい。出力先は、任意に選択されてよい。そして、制御部２１は、オペレータの指定による、複数の符号ユニット６２の中から少なくとも１つの対象符号ユニットの選択を受け付けてもよい。例えば、制御部２１は、各試行により得られた判定画像の一覧を出力装置２６に出力してもよい。制御部２１は、オペレータによる入力装置２５を介した適切な判定画像の指定によって、複数の符号ユニット６２の中から少なくとも１つの対象符号ユニットの選択を受け付けてもよい。ステップＳ２０１〜ステップＳ２０６、ステップＳ２０８及びステップＳ２０９の処理は、上記実施形態と同様に実行されてよい。当該処理によれば、２つの推定モデル（５、６）による外観検査の精度をオペレーションにより最適化することができる。更にその他の方法の一例として、制御部２１は、ステップＳ２０１〜ステップＳ２１０の一連の処理を省略し、オペレータの指定により対象符号ユニットの選択を単純に受け付けてもよい。なお、上記実施形態において、対象符号ユニットを選択する一連の処理は省略されてよい。この場合、検査装置２のソフトウェア構成から選択部２１６が省略されてよい。
【０１５８】
＜４．４＞
上記実施形態では、対象の特徴マップ６３に抽出画像を掛け合わせることで、注目領域の抽出結果を対象の特徴マップ６３に統合することができる。ただし、統合方法は、このような例に限定されなくてよい。その他の一例として、対象の特徴マップ６３及び抽出画像が、当該対象の特徴マップ６３を得た層の次の層における別のノードにそれぞれ入力されてよい。この場合、当該次の層の演算処理により、注目領域の抽出結果を対象の特徴マップ６３に統合することができる。なお、この場合、ステップＳ１５２の機械学習の処理において、制御部１１は、訓練済みの第１推定モデル５により学習画像３７に対して得られる抽出画像を対象の層に入力するようにしてもよい。
【０１５９】
＜４．５＞
上記実施形態又は変形例において、対象符号ユニットを選択する処理は、検査装置２以外の他のコンピュータで実行されてよい。
【０１６０】
図１１は、本変形例に係るユニット選択装置７のハードウェア構成の一例を模式的に例示する。図１１に示されるとおり、本変形例に係るユニット選択装置７は、制御部７１、記憶部７２、通信インタフェース７３、外部インタフェース７４、入力装置７５、出力装置７６、及びドライブ７７が電気的に接続されたコンピュータである。制御部７１〜ドライブ７７及び記憶媒体９７はそれぞれ、上記検査装置２の制御部２１〜ドライブ２７及び記憶媒体９２それぞれと同様に構成されてよい。
【０１６１】
本変形例では、記憶部７２は、選択プログラム８７、第１学習結果データ１２１、第２学習結果データ１２５等の各種情報を記憶する。選択プログラム８７は、上記対象符号ユニットの選択処理に関する情報処理をユニット選択装置７に実行させるためのプログラムである。選択プログラム８７は、当該情報処理の一連の命令を含む。選択プログラム８７、第１学習結果データ１２１、及び第２学習結果データ１２５のうちの少なくともいずれかは、記憶媒体９７に記憶されていてもよい。また、ユニット選択装置７は、選択プログラム８７、第１学習結果データ１２１、及び第２学習結果データ１２５のうちの少なくともいずれかを記憶媒体９２から取得してもよい。
【０１６２】
なお、検査装置２等と同様に、ユニット選択装置７のハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。ユニット選択装置７は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、ユニット選択装置７は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のＰＣ、ＰＬＣ等であってもよい。
【０１６３】
図１２は、本変形例に係るユニット選択装置７のソフトウェア構成の一例を模式的に例示する。上記検査装置２等と同様に、ユニット選択装置７のソフトウェア構成は、制御部７１による選択プログラム８７の実行により実現される。選択プログラム８７の実行により、本変形例に係るユニット選択装置７は、モデル取得部２１９及び選択部２１６をソフトウェアモジュールとして備えるコンピュータとして動作する。なお、当該ソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。すなわち、上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、ユニット選択装置７のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【０１６４】
制御部７１は、モデル取得部２１９として動作し、任意の方法により、各学習結果データ（１２１、１２５）を取得する。これにより、制御部７１は、対象符号ユニットを選択する処理の対象となる各推定モデル（５、６）を取得する。次に、制御部７１は、選択部２１６として動作し、複数の符号ユニット６２の中から少なくとも１つ以上の対象符号ユニットを選択する。対象符号ユニットを選択する方法には、上記いずれかの方法が採用されてよい。
【０１６５】
対象符号ユニットを選択した結果は、対象環境における対象製品Ｒの外観検査を実施する検査装置に対して任意の方法で反映されてよい。一例として、制御部７１は、出力部として動作し、ネットワーク等を介して、対象符号ユニットの選択結果を検査装置に通知してもよい。検査装置では、この通知の受信に応じて、対象符号ユニットを選択した結果が反映されてよい。その他の一例として、制御部７１は、対象符号ユニットの選択結果を出力装置７６又は他のコンピュータの出力装置に出力してもよい。オペレータは、この出力を参照し、検査装置を操作することで、対象符号ユニットを選択した結果を検査装置に反映してもよい。当該変形例によれば、検査装置の負荷を低減することができる。
【符号の説明】
【０１６６】
１…モデル生成装置、
１１…制御部、１２…記憶部、１３…通信インタフェース、
１４…外部インタフェース、
１５…入力装置、１６…出力装置、１７…ドライブ、
８１…モデル生成プログラム、９１…記憶媒体、
１１１…第１取得部、１１２…第１学習部、
１１３…第２取得部、１１４…第２学習部、
１１５…保存処理部、
１２１…第１学習結果データ、１２５…第２学習結果データ、
２…検査装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…外部インタフェース、
２５…入力装置、２６…出力装置、２７…ドライブ、
８２…検査プログラム、９２…記憶媒体、
２１１…データ取得部、２１２…領域抽出部、
２１３…モデル演算部、２１４…判定部、
２１５…出力部、２１６…選択部、２１７…設定部、
２２１…対象画像、２２３…対象復号化画像、
２２５…抽出画像、
２２７…評価用データセット、
２２８…評価画像、２２９…正解情報、
３０…第１学習データ、３１…良品画像、
３５…第２学習データ、３６…学習データセット、
３７…学習画像、３７１…欠陥画像、
３８…正解画像、
５…第１推定モデル、
５１…符号器、５３…復号器、
６…第２推定モデル、
６１…符号器、６２…符号ユニット、
６２１…畳み込み層、６２３…プーリング層、
６５…復号器、
６５１…アンプーリング層、６５３…逆畳み込み層
【図１】
2022003495.tif 000003
【図２】
2022003495.tif 000004
【図３】
2022003495.tif 000005
【図４】
2022003495.tif 000006
【図５】
2022003495.tif 000007
【図６】
2022003495.tif 000008
【図７】
2022003495.tif 000009
【図８】
2022003495.tif 000010
【図９】
2022003495.tif 000011
【図１０】
2022003495.tif 000012
【図１１】
2022003495.tif 000013
【図１２】
2022003495.tif 000014