(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077059
(43)【公開日】2023-06-05
(54)【発明の名称】外観検査装置及び外観検査方法
(51)【国際特許分類】
G06N 3/045 20230101AFI20230529BHJP
G01N 21/88 20060101ALI20230529BHJP
【FI】
G06N3/04 154
G01N21/88 J
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021190180
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】趙 新亮
【テーマコード(参考)】
2G051
【Fターム(参考)】
2G051AB02
2G051CA04
2G051EA14
2G051EB10
(57)【要約】
【課題】高速学習が可能で、使いやすく、しかも幅広い大きさの異常検出性能が高く、ロバスト性も高い外観検査装置や外観検査方法を提供する。
【解決手段】プロセッサは、良品画像を畳み込みニューラルネットワークに入力し、畳み込みニューラルネットワークの各階層から、良品画像の特徴を有する特徴マップを出力させ、その特徴マップに基づいて、各階層別に異常を検出するための複数のモデルを生成する。プロセッサは、検査対象画像を畳み込みニューラルネットワークに入力し、畳み込みニューラルネットワークの各階層から、検査対象画像の特徴を有する特徴マップを出力させ、その特徴マップを学習済みのモデルに適用し、各階層ごとに異常度を示す異常度マップを出力し、出力された複数の異常度マップに基づいて、検査対象画像の異常の有無を判定する検査処理を実行する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
畳み込み層を有する畳み込みニューラルネットワークと、当該ニューラルネットワークから出力された特徴マップに基づいて異常を検出するためのモデルを生成するモデリング手段とを構築するプロセッサ及びメモリを備え、前記畳み込みニューラルネットワーク及び前記モデリング手段を用いて、検査対象画像に含まれる異常を検出する外観検査装置であって、
前記プロセッサは、
良品に対応する良品画像を学習用画像として前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記良品画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップに基づいて、前記各階層別に異常を検出するための複数のモデルを前記モデリング手段により生成する学習処理と、
前記検査対象画像を前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記検査対象画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップを前記学習処理により生成された前記モデルに適用し、前記各階層ごとに、異常度を示す異常度マップを出力し、出力された複数の前記異常度マップに基づいて、前記検査対象画像に含まれる異常を検出する検査処理と、を実行する外観検査装置。
【請求項2】
請求項1に記載の外観検査装置において、
前記モデリング手段は、自己符号器により構成されるとともに、前記特徴マップを圧縮するエンコード層と、圧縮された前記特徴マップを復元するデコード層と有する外観検査装置。
【請求項3】
請求項1また2に記載の外観検査装置において、
前記畳み込みニューラルネットワークは、下位階層から上位階層に進むにつれて、前記特徴マップの局所位置における多次元ベクトルの次元数が増加するものである外観検査装置。
【請求項4】
請求項1から3のいずれか1つに記載の外観検査装置において、
前記モデリング手段により生成された前記モデルによる異常の検出性能を検証するための検証用画像を記憶する記憶部と、
表示部を制御する表示制御部と、を更に備え、
前記プロセッサは、前記記憶部から読み出した前記検証用画像に基づいて、複数の前記モデルにより各階層ごとに前記検証用画像に対応する異常度マップを出力し、出力された複数の前記異常度マップ又は複数の異常度マップを合成した合成異常度マップに基づいて、各階層における前記検証用画像の良否画像と不良品画像の分離度を算出する外観検査装置。
【請求項5】
請求項4に記載の外観検査装置において、
前記表示制御部は、前記プロセッサにより算出された各階層における分離度と、各階層における異常度マップを表示可能なユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させる外観検査装置。
【請求項6】
請求項4または5に記載の外観検査装置において、
前記プロセッサは、算出した前記分離度が最も大きな階層のモデルから出力された前記異常度マップ又は合成異常度マップを選択するように構成されている外観検査装置。
【請求項7】
請求項4から6のいずれか1つに記載の外観検査装置において、
前記検証用画像の異常度の程度を示すスコアと比較して、良品又は不良品であることを判定するための閾値のユーザによる調整を受け付ける調整受付部を更に備える外観検査装置。
【請求項8】
請求項7に記載の外観検査装置において、
前記プロセッサは、各モデルから出力された複数の前記異常度マップに基づいて、検査対象画像に含まれる異常を検出し、検出された異常に基づいて、前記検証用画像が良品画像であるか、不良品画像であるかを判定するように構成され、
前記表示制御部は、前記検証用画像が良品画像であると判定された度数と、前記検証用画像が不良品画像であると判定された度数とに基づく累積ヒストグラムを生成して前記表示部に表示させ、
前記調整受付部は、前記ユーザインターフェース画面に表示されている累積ヒストグラム上で、前記閾値の調整を受け付け可能に構成されている外観検査装置。
【請求項9】
請求項4から8のいずれか1つに記載の外観検査装置において、
前記プロセッサは、複数の前記異常度マップを合成した合成異常度マップを生成し、生成した合成異常度マップ又は各階層のモデルから出力された異常度マップに基づいて、前記検証用画像の分離度を算出し、前記合成異常度マップに基づいて算出した前記分離度が所定以上の場合に当該合成異常度マップを選択し、
前記表示制御部は、前記プロセッサにより選択された前記合成異常度マップを表示可能なユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させる外観検査装置。
【請求項10】
請求項4から9のいずれか1つに記載の外観検査装置において、
学習調整モードを開始するか否かのユーザによる入力を受け付ける入力部を更に備え、
前記プロセッサは、学習調整モードの開始を前記入力部が受け付けた場合、各階層の前記検証用画像に対応する異常度マップ又は前記合成異常度マップをそれぞれ選択し、
前記表示制御部は、前記プロセッサにより選択された各階層の前記検証用画像に対応する異常度マップを一覧形式で表示可能な一覧表示領域を有するユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させる外観検査装置。
【請求項11】
請求項10に記載の外観検査装置において、
前記入力部は、前記ユーザインターフェース画面に表示されている複数の異常度マップの中から任意の異常度マップのユーザによる選択を受け付け可能に構成され、
前記表示制御部は、ユーザにより選択された異常度マップに基づく分離度を、前記ユーザインターフェース画面における前記一覧表示領域とは別の表示領域に、累積ヒストグラムで表示させる外観検査装置。
【請求項12】
畳み込み層を有する畳み込みニューラルネットワークと、当該畳み込みニューラルネットワークから出力された特徴マップに基づいて異常を検出するためのモデルを生成するモデリング手段とを用いて、検査対象画像に含まれる異常を検出する外観検査方法であって、
良品に対応する良品画像を学習用画像として前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記良品画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップに基づいて、前記各階層別に異常を検出するための複数のモデルを前記モデリング手段により生成する学習ステップと、
前記検査対象画像を前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記検査対象画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップを前記学習ステップで生成された前記モデルに適用し、前記各階層ごとに、異常度を示す異常度マップを出力し、出力された複数の前記異常度マップに基づいて、検査対象画像に含まれる異常を検出する検査ステップと、を備える外観検査方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークの外観を検査する外観検査装置及び外観検査方法に関する。
【背景技術】
【0002】
例えば特許文献1には、コンピュータによる機械学習を用いて、ワークが良品であるか不良品であるかの判定を行う処理装置が開示されている。特許文献1の処理装置は、良品データを対象とした教師ありの機械学習を行って良品学習モデルを生成するとともに、不良品データを対象とした教師ありの機械学習を行って不良品学習モデルを生成した後、判定対象となるワークのデータを入力し、良品学習モデル及び不良品学習モデルによってワークが良品であるか不良品であるかの判定が行えるように構成されており、このような装置はワークの外観検査装置とも呼ばれている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ワークの生産現場では不良品が殆ど発生しないので、良品データを多く収集するのは簡単である一方、不良品データを収集するのは難しいという事情がある。そこで、良品データを対象とした良品学習が解決手段として想定されるが、良品データのみで学習した機械学習ネットワークの場合、以下に述べるような課題があった。
【0005】
すなわち、良品学習の手法としては次の3つが挙げられる。一つ目の手法として、TEXEMS(Texture Exemplars for Defect Detection on Random Textured Surfaces)という手法がある。この手法では、学習時に良品画像を複数のパッチに分割し、GMM(ガウス混合モデル)でパッチに対してモデリングを行う。推論時には、入力画像をパッチに分割し、学習によって生成されたGMMを用いて、入力画像の各パッチの異常度を計算し、異常度マップを生成する。この手法では、モデリング対象がパッチ(生画素)なので、抽象度が十分ではなく、検出性能とロバスト性が低くなってしまう。
【0006】
二つ目の手法として、DHM(Deep Hybrid Models)という手法がある。この手法では、学習時に学習画像をニューラルネットワークに入力し、特徴抽出を行い、抽出された特徴に対して、OC-SVM(One Class Support Vector Machine)やSVDD(support vector data description)などの異常検知手法にてモデリングを行う。推論時には、入力画像をニューラルネットワークに入力して特徴抽出を行い、抽出された特徴に対して、学習によって生成されたOC-SVMやSVDDなどの異常検知手法を用いて判別を行うことができる。この手法では、ニューラルネットワークによって抽出された抽象度の高い特徴を使用することで、検出性能とロバスト性は一つ目の手法に比べて向上するが、入力画像全体を表す特徴に対する異常検知しかできないので、外観検査のような局所的な細かい異常を含めて、幅広い大きさの異常検知が難しい。
【0007】
三つ目の手法として、自己符号器(Auto Encoder)、DAE(Denoising Auto Encoder)を利用する手法がある。この手法では、学習時にノイズ付与された良品画像を元画像に復元できるように学習する。推論時には、入力画像から、ディープニューラルネットワーク(DNN)により復元画像を生成し、入力画像と復元画像との差分を示す異常度マップ(画素値が該当箇所の異常度を表す画像)を生成する。この手法では、ニューラルネットワークの学習に時間がかかるとともに、パラメータの調整に手間がかかる。また、良品画像であっても、照明変動が大きい箇所、金属模様、エッジ付近などのようにばらつきの大きい箇所には差分が大きく生じるので、過検出となってしまうおそれがある。また、オートエンコーダ及びDAEは汎化能力が高いので、異常部分も復元されてしまう場合があり、検出漏れを起こすおそれもある。
【0008】
本開示は、かかる点に鑑みたものであり、その目的とするところは、高速学習が可能で、使いやすく、しかも幅広い大きさの異常検出性能が高く、ロバスト性も高い外観検査装置及び外観検査方法を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本開示の一態様では、畳み込み層を有する畳み込みニューラルネットワークと、当該ニューラルネットワークから出力された特徴マップに基づいて異常を検出するためのモデルを生成するモデリング手段とを構築するプロセッサ及びメモリを備え、前記畳み込みニューラルネットワーク及び前記モデリング手段を用いて、検査対象画像に含まれる異常を検出する外観検査装置を前提とすることができる。前記プロセッサは、良品に対応する良品画像を学習用画像として前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記良品画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップに基づいて、前記各階層別に異常を検出するための複数のモデルを前記モデリング手段により生成する学習処理を実行する。さらに、前記プロセッサは、前記検査対象画像を前記畳み込みニューラルネットワークに入力し、当該畳み込みニューラルネットワークの各階層から、前記検査対象画像の特徴を有する特徴マップを出力させ、前記各階層から出力された前記特徴マップを前記学習処理により生成された前記モデルに適用し、前記各階層ごとに、異常度を示す異常度マップを出力し、出力された複数の前記異常度マップに基づいて、前記検査対象画像に含まれる異常を検出する検査処理を実行する。
【0010】
すなわち、学習処理時に畳み込みニューラルネットワークの各階層から出力された特徴マップは、上位の階層から出力されたものほど抽象度が高くて広域的な異常が表現される一方、下位の階層から出力されたものほど抽象度が低くて局所的な異常を表現する。これら複数の特性が異なる特徴マップに基づいてモデルを生成するので、幅広い大きさの異常検出性能が高くなるとともに、過検出や検出漏れが起こりにくく、しかも、ロバスト性も高いモデルとなる。また、上述した三つ目の手法のようにディープニューラルネットワークにより復元画像を生成する手法に比べて、学習時間が短縮されるとともに、パラメータ調整のような手間がかからないのでユーザにとって使いやすい。
【0011】
他の態様に係るモデリング手段は、自己符号器により構成されるとともに、前記特徴マップを圧縮するエンコード層と、圧縮された前記特徴マップを復元するデコード層と有する。
【0012】
この構成によれば、自己符号器を利用することで、高速でかつ高い検出性能を得ることができる。
【0013】
他の態様に係る畳み込みニューラルネットワークは、下位階層から上位階層に進むにつれて、前記特徴マップの局所位置における多次元ベクトルの次元数が増加するものである。
【0014】
この構成によれば、特徴マップの局所位置で特徴を表現可能な良品画像上のカバー範囲を拡大できる。
【0015】
他の態様に係る外観検査装置は、前記モデリング手段により生成された前記モデルによる異常の検出性能を検証するための検証用画像を記憶する記憶部と、表示部を制御する表示制御部と、を更に備えていてもよい。前記プロセッサは、前記記憶部から読み出した前記検証用画像に基づいて、複数の前記モデルにより各階層ごとに前記検証用画像に対応する異常度マップを出力し、出力された複数の前記異常度マップ又は複数の異常度マップを合成した合成異常度マップに基づいて、各階層における前記検証用画像の良否画像と不良品画像の分離度を算出する。
【0016】
また、前記表示制御部は、前記プロセッサにより算出された各階層における分離度と、各階層における異常度マップを表示可能なユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させることができる。
【0017】
この構成によれば、予めアノテーションが行われている検証用画像を畳み込みニューラルネットワークに入力することで、検証用画像に基づいて各モデルにより各階層ごとに異常度マップが出力される。この異常度マップを用いることで各階層における検証用画像の分離度を算出できる。分離度が所定以上の階層のモデルから出力された異常度マップをユーザインターフェース画面に組み込んで表示することで、ユーザに提示できる。ユーザは、分離度が所定以上の階層の異常度マップを確認することで、運用へ移行可能な学習状態であるか否かを容易に判断できる。
【0018】
他の態様に係るプロセッサは、算出した前記分離度が最も大きな階層のモデルから出力された前記異常度マップ又は合成異常度マップを選択するように構成されている。
【0019】
この構成によれば、分離度が最も大きな階層の異常度マップ又は合成異常度マップを確認することで、運用に移行可能な学習状態であるか否かを的確に判断できる。
【0020】
他の態様では、前記閾値のユーザによる調整を受け付ける調整受付部を更に備えているので、例えば分離度が高くても過検出が起こっている階層もあり、このような階層の確認をユーザが行えるようになる。
【0021】
他の態様に係るプロセッサは、各モデルから出力された複数の前記異常度マップに基づいて、検査対象画像に含まれる異常を検出し、検出された異常に基づいて、前記検証用画像が良品画像であるか、不良品画像であるかを判定するように構成されている。前記表示制御部は、前記検証用画像が良品画像であると判定された度数と、前記検証用画像が不良品画像であると判定された度数とに基づく累積ヒストグラムを生成して前記表示部に表示させることができる。前記調整受付部は、前記ユーザインターフェース画面に表示されている累積ヒストグラム上で、前記閾値の調整を受け付け可能に構成されている。
【0022】
この構成によれば、各階層の異常度マップを一度に確認できるとともに、異常度マップ間の比較が容易に行える。
【0023】
他の態様に係るプロセッサは、複数の前記異常度マップを合成した合成異常度マップを生成し、生成した合成異常度マップ又は各階層のモデルから出力された異常度マップに基づいて、前記検証用画像の分離度を算出し、前記合成異常度マップに基づいて算出した前記分離度が所定以上の場合に当該合成異常度マップを選択する。前記表示制御部は、前記プロセッサにより選択された前記合成異常度マップを表示可能なユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させることができる。
【0024】
この構成によれば、異常度マップに基づく分離度を、累積ヒストグラムの形態でわかり易く表示できる。
【0025】
他の態様では、学習調整モードを開始するか否かのユーザによる入力を受け付ける入力部を更に備えている。前記プロセッサは、学習調整モードの開始を前記入力部が受け付けた場合、各階層の前記検証用画像に対応する異常度マップ又は前記合成異常度マップをそれぞれ選択することができる。前記表示制御部は、前記プロセッサにより選択された各階層の前記検証用画像に対応する異常度マップを一覧形式で表示可能な一覧表示領域を有するユーザインターフェース画面を生成し、生成したユーザインターフェース画面を前記表示部に表示させるものである。
【0026】
この構成によれば、閾値の調整を反映させることで、適切な階層の異常度マップを選択できる。
【発明の効果】
【0027】
以上説明したように、良品画像を学習用画像として畳み込みニューラルネットワークに入力し、各階層から特徴マップを出力させ、出力された特徴マップに基づいて各階層別に異常を検出するための複数のモデルを生成することができる。これにより、高速学習が可能で、使いやすくすることができ、しかも幅広い大きさの異常検出性能を高めることができるとともに、ロバスト性も高めることができる。
【図面の簡単な説明】
【0028】
【
図1】本発明の実施形態に係る外観検査装置の構成を示す模式図である。
【
図2】前記外観検査装置のハードウエア構成を示すブロック図である。
【
図3】学習処理の手順の一例を示すフローチャートである。
【
図4】表示装置に表示されるユーザインターフェース画面の例を示す図である。
【
図5】複数のモデルを生成する方法を説明する図である。
【
図6】学習後に異常度マップを生成する方法を説明する図である。
【
図7】違和感のない異常度マップが表示されたユーザインターフェース画面の例を示す図である。
【
図8】過検出等によって違和感が生じている異常度マップが表示されたユーザインターフェース画面の例を示す図である。
【
図9】各階層の異常度マップと分離度グラフが表示されたユーザインターフェース画面の例を示す図である。
【
図10】ユーザにより特定の異常度マップが選択された状態のユーザインターフェース画面の例を示す図である。
【
図11】チューニング後に表示されるユーザインターフェース画面の例を示す図である。
【
図12】全ての階層で過検出が発生している場合の
図9相当図である。
【
図13】全ての階層で過検出が発生している場合の
図10相当図である。
【
図14】全ての階層で過検出が発生している場合の
図11相当図である。
【
図15】外観検査装置の運用時の手順の一例を示すフローチャートである。
【
図16】学習時のモデリング例を説明する図である。
【
図17】運用時のモデリング例を説明する図である。
【
図18】処理を高速化する場合の例を説明する図である。
【発明を実施するための形態】
【0029】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0030】
図1は、本発明の実施形態に係る外観検査装置1の構成を示す模式図である。外観検査装置1は、例えば各種部品や製品等のような検査対象であるワークを撮像して取得されたワーク画像(検査対象画像ともいう)の良否判定を行うための装置であり、工場等の生産現場等で使用することができる。具体的には、外観検査装置1の内部には畳み込み層を有する畳み込みニューラルネットワークと、当該ニューラルネットワークから出力された特徴マップに基づいて異常を検出するためのモデリング手段とが構築されている。外観検査装置1は、畳み込みニューラルネットワーク及びモデリング手段を用いて、検査対象画像に含まれる異常を検出可能に構成されている。
【0031】
ワークは、それ全体が検査対象であってもよいし、ワークの一部のみが検査対象であってもよい。また、1つのワークに複数の検査対象が含まれていてもよい。また、ワーク画像には、複数のワークが含まれていてもよい。
【0032】
外観検査装置1は、装置本体となる制御ユニット2と、撮像ユニット3と、表示装置(表示部)4と、パーソナルコンピュータ5とを備えている。パーソナルコンピュータ5は、必須なものではなく、省略することもできる。表示装置4の代わりにパーソナルコンピュータ5を使用して各種情報や画像を表示させることもできるし、パーソナルコンピュータ5の機能を制御ユニット2に組み込むことや、表示装置4に組み込むことができる。
【0033】
図1では、外観検査装置1の構成例の一例として、制御ユニット2、撮像ユニット3、表示装置4及びパーソナルコンピュータ5を記載しているが、これらのうち、任意の複数を組み合わせて一体化することもできる。例えば、制御ユニット2と撮像ユニット3を一体化することや、制御ユニット2と表示装置4を一体化することもできる。また、制御ユニット2を複数のユニットに分割して一部を撮像ユニット3や表示装置4に組み込むことや、撮像ユニット3を複数のユニットに分割して一部を他のユニットに組み込むこともできる。
【0034】
(撮像ユニット3の構成)
図2に示すように、撮像ユニット3は、カメラモジュール(撮像部)14と、照明モジュール(照明部)15とを備えており、ワーク画像の取得を実行するユニットである。カメラモジュール14は、撮像光学系を駆動するAF用モータ141と、撮像基板142とを備えている。AF用モータ141は、撮像光学系のレンズを駆動することにより、自動でピント調整を実行する部分であり、従来から周知のコントラストオートフォーカス等の手法によってピント調整を行うことができる。撮像基板142は、撮像光学系から入射した光を受光する受光素子としてCMOSセンサ143を備えている。CMOSセンサ143は、カラー画像を取得することができるように構成された撮像センサである。CMOSセンサ143の代わりに、例えばCCDセンサ等の受光素子を用いることもできる。
【0035】
照明モジュール15は、ワークを含む撮像領域を照明する発光体としてのLED(発光ダイオード)151と、LED151を制御するLEDドライバ152とを備えている。LED151による発光タイミング、発光時間、発光量は、LEDドライバ152によって任意に制御することができる。LED151は、撮像ユニット3に一体に設けてもよいし、撮像ユニット3とは別体として外部照明ユニットとして設けてもよい。
【0036】
(表示装置4の構成)
表示装置4は、例えば液晶パネルや有機ELパネル等からなる表示パネルを有している。制御ユニット2から出力されたワーク画像やユーザインターフェース画像等は表示装置4に表示される。また、パーソナルコンピュータ5が表示パネルを有している場合、パーソナルコンピュータ5の表示パネルを表示装置4の代わりとして利用することができる。
【0037】
(操作機器)
外観検査装置1をユーザが操作するための操作機器としては、例えば、パーソナルコンピュータ5が有するキーボード51やマウス52等を挙げることができるが、これらに限られるものではなく、ユーザによる各種操作を受付可能に構成された機器であればよい。例えば、表示装置4が有するタッチパネル41のようなポインティングデバイスも操作機器に含まれる。
【0038】
キーボード51やマウス52のユーザによる操作は制御ユニット2で検出可能になっている。また、タッチパネル41は、例えば感圧センサを搭載した従来から周知のタッチ式操作パネルであり、ユーザのタッチ操作は制御ユニット2で検出可能になっている。他のポインティングデバイスを用いた場合も同様である。
【0039】
(制御ユニット2の構成)
制御ユニット2は、メイン基板13と、コネクタ基板16と、通信基板17と、電源基板18とを備えている。メイン基板13には、プロセッサ13aが設けられている。プロセッサ13aは、接続されている各基板及びモジュールの動作を制御する。例えば、プロセッサ13aは、照明モジュール15のLEDドライバ152に対してLED151の点灯/消灯を制御する照明制御信号を出力する。LEDドライバ152は、プロセッサ13aからの照明制御信号に応じて、LED151の点灯/消灯の切替及び点灯時間の調整を行うとともに、LED151の光量等を調整する。
【0040】
また、プロセッサ13aは、カメラモジュール14の撮像基板142に、CMOSセンサ143を制御する撮像制御信号を出力する。CMOSセンサ143は、プロセッサ13aからの撮像制御信号に応じて、撮像を開始するとともに、露光時間を任意の時間に調整して撮像を行う。すなわち、撮像ユニット3は、プロセッサ13aから出力される撮像制御信号に応じてCMOSセンサ143の視野範囲内を撮像し、視野範囲内にワークがあれば、ワークを撮像することになるが、ワーク以外の物が視野範囲内にあれば、それも撮像することができる。例えば、外観検査装置1は、畳み込みニューラルネットワークの学習用の画像として、撮像ユニット3により、良品に対応する良品画像を撮像することができる。学習用の画像は、撮像ユニット3で撮像された画像でなくてもよく、他のカメラ等で撮像された画像であってもよい。
【0041】
一方、外観検査装置1の運用時には、撮像ユニット3により、ワークを撮像することができる。また、CMOSセンサ143は、ライブ画像、即ち現在の撮像された画像を短いフレームレートで随時出力することができるように構成されている。
【0042】
CMOSセンサ143による撮像が終わると、撮像ユニット3から出力された画像信号は、メイン基板13のプロセッサ13aに入力されて処理されるとともに、メイン基板13のメモリ13bに記憶されるようになっている。メイン基板13のプロセッサ13aによる具体的な処理内容の詳細については後述する。尚、メイン基板13には、FPGAやDSP等の処理装置が設けられていてもよい。FPGAやDSP等の処理装置が統合されたプロセッサ13aであってもよい。
【0043】
コネクタ基板16は、電源インターフェース161に設けてある電源コネクタ(図示せず)を介して外部から電力の供給を受ける部分である。電源基板18は、コネクタ基板16で受けた電力を各基板及びモジュール等に分配する部分であり、具体的には、照明モジュール15、カメラモジュール14、メイン基板13、及び通信基板17に電力を分配する。電源基板18は、AF用モータドライバ181を備えている。AF用モータドライバ181は、カメラモジュール14のAF用モータ141に駆動電力を供給し、オートフォーカスを実現している。AF用モータドライバ181は、メイン基板13のプロセッサ13aからのAF制御信号に応じて、AF用モータ141に供給する電力を調整する。
【0044】
通信基板17は、メイン基板13と表示装置4及びパーソナルコンピュータ5との通信、メイン基板13と外部制御機器(図示せず)との通信等を実行する部分である。外部制御機器は、例えばプログラマブルロジックコントローラ等を挙げることができる。通信は、有線であってもよいし、無線であってもよく、いずれの通信形態も、従来から周知の通信モジュールによって実現することができる。
【0045】
制御ユニット2には、例えばソリッドステートドライブ、ハードディスクドライブ等からなる記憶装置(記憶部)19が設けられている。記憶装置19には、後述する各制御及び処理を上記ハードウエアによって実行可能にするためのプログラムファイル80や設定ファイル等(ソフトウエア)が記憶されている。プログラムファイル80や設定ファイルは、例えば光ディスク等の記憶媒体90に格納しておき、この記憶媒体90に格納されたプログラムファイル80や設定ファイルを制御ユニット2にインストールすることができる。プログラムファイル80は、外部サーバから通信回線を利用してダウンロードされるものであってもよい。また、記憶装置19には、例えば、上記画像データや、外観検査装置1の畳み込みニューラルネットワークを構築するためのパラメータや、モデリング手段及び当該モデリング手段によるモデルを構築するためのパラメータ等を記憶させておくこともできる。
【0046】
すなわち、外観検査装置1のプロセッサ13a及びメモリ13bは、例えば記憶装置19等に記憶されたパラメータ等を読み出して畳み込みニューラルネットワーク及びモデリング手段によるモデルを構築する。構築した畳み込みニューラルネットワークに検査対象のワークを撮影したワーク画像を入力し、当該畳み込みニューラルネットワークの各階層から、ワーク画像の特徴を有する特徴マップを出力させる。各階層から出力された特徴マップを学習済みのモデルに適用し、各階層ごとに、異常度を示す異常度マップを出力する。出力された複数の異常度マップに基づいて、ワーク画像に含まれる異常を検出するように構成されている。この外観検査装置1を使用することで、ワーク画像に基づいてワークの良否判定を行う外観検査方法を実行できる。
【0047】
また、
図2に示すように、プロセッサ13aには、入力部13d及び調整受付部13eが設けられている。入力部13d及び調整受付部13eは、ハードウエアで構成された部分であってもよいし、ソフトウエアを実行することによって構成される部分であってもよい。また、入力部13d及び調整受付部13eは、必ずしもメイン基板13に設けられていなくてもよく、これらの一部または全部がメイン基板13以外の基板に設けられていてもよい。
【0048】
以下、学習処理について、
図3に示すフローチャート等に基づいて具体的に説明する。この処理は、外観検査装置1の運用開始前に行われる処理であることから、立ち上げ処理と呼ぶこともできる。このフローチャートは、例えば立ち上げ処理の開始と同時にスタートさせることができる。スタートの前に、上記良品画像を学習用画像として記憶装置19に記憶させておく。また、記憶装置19には、モデリング手段により生成されたモデルによる異常の検出性能を検証するための検証用画像も記憶させておく。検証用画像は、不良品画像のみであってもよいし、良品画像のみであってもよいし、不良品画像と良品画像の両方であってもよい。検証用画像は、学習処理の前に取得した画像であってもよいし、学習処理のために新たに取得した画像であってもよいし、外観検査装置1の運用時に取得された画像であってもよい。検証用画像が不良品画像である場合、当該不良品画像にはアノテーションを実行しておく。すなわち、不良品画像に、不良品画像であることを明示する処理、不良品画像の不良箇所を指定する処理等をユーザが事前に行っておく。尚、不良箇所の指定は必ずしも必要ではない。アノテーションによって付与された情報は、該当する不良品画像と関連付けられた状態で記憶装置19に記憶されている。
【0049】
スタート後のステップSA1では、ユーザによる学習操作を受け付ける。すなわち、ユーザによる学習操作を受け付けることで、以下の処理が順に実行され、学習操作を受け付けるまでは処理を実行せずに待機する。学習処理時には、まず、
図4に示すようなユーザインターフェース画面200を表示制御部13cが生成し、表示装置4に表示させる。ユーザインターフェース画面200には、学習用画像表示領域201、検証用画像表示領域202、異常度マップ表示領域203、分離度表示領域204、及び操作ボタン表示領域205が設けられている。学習用画像表示領域201には、記憶装置19から読み込んだ学習用画像300が表示される。学習用画像300は、記憶装置19に記憶されている良品画像の中からユーザが任意に選択した画像とすることができる。例えば、ユーザが記憶装置19に記憶されている良品画像を確認した後、マウス52等を操作して選択した良品画像をプロセッサ13aが検出し、プロセッサ13aが検出した良品画像を表示制御部13cが学習用画像表示領域201に組み込んで表示させることができる。
【0050】
検証用画像表示領域202には、記憶装置19から読み込んだ検証用画像301、302が表示される。検証用画像301は良品画像であり、検証用画像302は不良品画像である。検証用画像302における黒い点はワークWの不良箇所Waである。検証用画像301、302も学習用画像300と同様に、記憶装置19に記憶されている検証用画像の中からユーザが任意に選択した画像とすることができる。
【0051】
操作ボタン表示領域205には、学習ボタン205aと、推論ボタン205bと、デバッグボタン205cとが設けられている。これらボタン205a、205b、205cは、ユーザによって操作可能であり、ボタン205a、205b、205cの操作は入力部13dにより受け付けられる。
【0052】
学習ボタン205aが操作されたことを入力部13dが検出すると、ステップSA1からステップSA2に進む。ステップSA2は学習用画像を用いてモデル学習を実行するステップであり、このステップが学習ステップに相当する。ステップSA2で行う処理について、
図5に基づいて説明する。まず、事前学習済みの畳み込みニューラルネットワーク70を用意する。例えば自然イメージから強力で情報量の多い特徴を抽出するように既に学習させてあるイメージ分類ネットワークを、上記事前学習済みの畳み込みニューラルネットワーク70として、プロセッサ13a及びメモリ13bにより構築する。
【0053】
プロセッサ13aは、畳み込みニューラルネットワーク70に学習用画像を入力する。畳み込みニューラルネットワーク70を用いることで、特徴を階層的に畳み込んで、特徴ピラミッドを構成できる。各レベル(以下、階層ともいう)の特徴マップにおける各位置の対応局所特徴は、その位置の対応Channel(次元数)方向ベクトルである。Channel方向は、
図5の左右方向に対応しており、このChannel方向ベクトルに集約された情報はベクトルの空間方向位置を中心とした元画像上の受容野(Receptive Field)に対応する。特徴の対応受容野は、畳み込みニューラルネットワーク70の階層が高くなるほど大きくなる。
【0054】
このとき、畳み込みニューラルネットワーク70が有する各階層の最終Conv Blockの出力特徴マップに対して、各(畳み込み)オートエンコーダ71、72でモデリングを行う。各オートエンコーダ71、72の出力が、入力された特徴マップと一致するように学習を行う。学習対象はオートエンコーダ71、72のみである。各階層に対して、それぞれオートエンコーダ71、72を構築してモデリングを行う。このときに使用されるモデリング手段は、自己符号器により構成されている。自己符号器は、特徴マップのChannel1次元数を圧縮するエンコード層と、圧縮された特徴マップを復元するデコード層と有している。各階層の特徴マップに対して、直接畳み込みオートエンコーダでモデリングを行うことで、画像1枚の中の特徴間のバランスを取ることができ、これにより、学習安定性と検出のロバスト性の向上につながる。また、一定サイズのカーネルサイズを持つ畳み込みオートエンコーダを用いる場合、特徴マップ上の空間方向の隣接位置の特徴ベクトルの関連性が活用され、検出性能とロバスト性向上につながる。
【0055】
図5では、2つの階層の特徴マップのモデリングを例にしており、階層5(レベル5)と階層3(レベル3)のオートエンコーダ71、72を示しており、実際には、他の階層のオートエンコーダも存在している。この図に示すように、畳み込みニューラルネットワーク70は、下位階層から上位階層に進むにつれて、特徴マップの局所位置における多次元ベクトルの次元数が増加するものである。具体的には、階層3では256次元であるが、階層5では512次元である。このように、学習用画像を畳み込みニューラルネットワーク70に入力すると、畳み込みニューラルネットワーク70の各階層から、学習用画像の特徴を有する特徴マップを出力させることができる。畳み込みニューラルネットワーク70の各階層から出力された特徴マップに基づいて、各階層別に異常を検出するための複数のモデルをモデリング手段により生成できる。
【0056】
例えば階層5の場合、画像1枚の対応特徴マップ(空間サイズ:14×14、Channel次元数:512)を生成し、オートエンコーダ71の入力とする。これにより、学習の高速化と性能向上につながる。
【0057】
Loss関数は以下のように定義できる。まず、学習用画像に対して、畳み込みニューラルネットワーク(Pre-Trained NN)で特徴抽出を行う。畳み込みニューラルネットワークは各階層の特徴マップを含むタプル(Tuple)を出力とする。
【0058】
【0059】
各階層の出力特徴に対して、それぞれオートエンコーダを構築する必要がある。1つの特徴マップに対して、オートエンコーダのLoss定義は以下のようになる。Lossの定義方式の一例としてMSE(Mean Squared Error)を用いる。
【0060】
【0061】
x,yは、それぞれ特徴マップのSpatia空間の横、縦座標である。
【0062】
cは、特徴マップのChannel方向位置である。
【0063】
nは、特徴マップの要素数である。
【0064】
モデル学習後、ステップSA3に進み、プロセッサ13aが検証用画像を畳み込みニューラルネットワーク70に入力する。畳み込みニューラルネットワーク70の各階層から検証用画像の特徴を有する特徴マップが出力される。各階層から出力された特徴マップをステップSA2で生成されたモデルに適用し、各階層ごとに、異常度を示す異常度マップを出力する。このステップSA4では、各階層ごと出力された異常度マップを合成して合成異常度マップも生成する。
【0065】
その一例を
図6に示している。この図では階層5(512次元)について示しており、まず、学習時に使用された事前学習済みニューラルネットワーク70によって、各階層の特徴抽出を行い、特徴マップを出力する。出力された特徴マップを対応する階層の学習されたオートエンコーダ71に入力し、推論処理を行う。オートエンコーダ71の入出力の特徴マップにおける各位置の対応局所特徴の差分のノルムの二乗を計算し、得られた値を対応位置の異常度として異常度マップを生成する。このとき、各階層の異常度マップが得られた後、入力画像サイズにアップサンプリングし、合成処理を行う。合成処理は隣接する階層の異常度マップに画素単位でAND処理を適用し、得られた結果を用いて画素単位で平均をとる。
【0066】
プロセッサ13aが各階層ごとの異常度マップと、合成異常度マップとを生成した後、ステップSA5に進む。ステップSA5では、プロセッサ13aが、各階層ごとの異常度マップに基づいて、各階層における検証用画像の分離度を算出する。異常度マップSn(合成異常度マップ含む)に基づく、各階層における検証用画像との分離度Cnの計算方法は以下に示す方法を挙げることができる。
【0067】
1.画像Iの各階層nにおける画像異常スコアISnは対応異常度マップSnの抽出異常値平均とする(画素値平均)。
【0068】
【0069】
ここで、nは異常度マップSの画素数、x、yは異常度マップSの画素座標値である。
【0070】
一例として異常度マップの画素値平均を採用しているが、異常度マップSn上の最大異常などを対応する階層の画像異常スコアISnとしてもよい。
2.各階層nにおいて、対応画像異常スコアISnベースで、分離度Cnを計算する。分離度Cnの計算方法は様々あるが、例としてAUC-ROC(数値が大きければ、分離度が大きい)などを採用することができる。AUC-ROCベースの分離度が同じ場合、対応階層nのテスト画像全体の異常抽出強度を考慮して、異常抽出強度差分(異常画像の異常スコア平均-正常画像の異常スコア平均)などでさらに分離度を微調整してもよい。
【0071】
また、異常抽出強度差分の小さいほうの対応分離度Cnを小さくしてもよい。階層nの異常抽出強度差分SDnは下記の数式にて計算できる。
【0072】
【0073】
ここで、mは異常画像数、lは正常画像数である。
【0074】
尚、合成異常度マップベースの検証用画像の分離度も同じ計算方法を採用できる。
【0075】
以上のようにして、各階層における検証用画像の分離度及び合成異常度マップベースの分離度を算出した後、ステップSA6に進む。ステップSA6では、ステップSA5で算出した各階層における検証用画像を良否画像または不良品画像として判定するための閾値に基づいて、各階層のモデルから出力された異常度マップをプロセッサ13aが選択する。具体的には、プロセッサ13aは、算出した分離度が最も大きな階層のモデルから出力された異常度マップを選択するように構成されている。また、同様に、プロセッサ13aは合成異常度マップに基づいて算出した分離度と閾値とを比較し、分離度が大きな階層のモデルから出力された合成異常度マップを選択可能に構成されている。
【0076】
プロセッサ13aが異常度マップを選択した後、ステップSA7に進む。ステップSA7では、表示制御部13cが、プロセッサ13aにより選択された異常度マップを表示可能なユーザインターフェース画面200(
図7に示す)を生成し、生成したユーザインターフェース画面200を表示装置4に表示させる。ユーザインターフェース画面200の検証用画像表示領域202に表示されている検証用画像301、302のうち、ユーザがマウス52等を操作して一方または両方を選択すると、選択された画像を囲む形状の選択枠301a、302aがユーザインターフェース画面200に表示される。
【0077】
選択された検証用画像301に対応する異常度マップのうち、分離度が最も大きな階層のモデルから出力された異常度マップ311または合成異常度マップをプロセッサ13aが選択する。そして、表示制御部13cが、プロセッサ13aにより選択された異常度マップ311を異常度マップ表示領域203に表示する。不良品画像からなる検証用画像302が選択された場合には、その検証用画像302に対応する異常度マップのうち、分離度が最も大きな階層のモデルから出力された異常度マップ312が異常度マップ表示領域203に表示される。
【0078】
表示制御部13cは、ユーザインターフェース画面200の分離度表示領域204に分離度を表示させる。本例では、分離度表示領域204に累積ヒストグラムを表示させている。すなわち、プロセッサ13aは、各モデルから出力された複数の異常度マップに基づいて、入力画像(検証時には検証用画像、運用時には検査対象画像)に含まれる異常を検出し、検出された異常に基づいて、入力画像が良品画像であるか、不良品画像であるかを判定するように構成されている。表示制御部13cは、検証用画像が良品画像であると判定された度数と、検証用画像が不良品画像であると判定された度数とに基づく累積ヒストグラム320を生成し、生成した累積ヒストグラム320を分離度表示領域204に組み込んで表示装置4に表示させる。
【0079】
その後、ステップSA8に進み、デバッグモード(学習調整モード)に移行するか否かをユーザが判定する。デバッグモードは、ステップSA7で表示された異常度マップ311、312に違和感がある場合に移行するモードである。
図7に示す例は、過検出等がなく、違和感がないとユーザが判定する例である。つまり、良品画像からなる検証用画像301に対応する異常度マップ311には反応がなく、不良品画像からなる検証用画像302に対応する異常度マップ312には不良箇所Waのみに反応として白い点が見られ、過検出等がない。
【0080】
図7に示すように異常度マップ311、312に違和感がないとユーザが判定した場合には、ステップSA8においてユーザが推論ボタン205bを操作する。入力部13dは、推論ボタン205bが操作されたことを検出する。推論ボタン205bが操作されたことは、デバッグモードを開始しないということであり、ユーザによるデバッグモードを開始しないという入力を入力部13dが受け付ける。プロセッサ13cは、入力部13dがデバッグモードを開始しないという入力を受け付けたことを検出すると、ステップSA8でNOと判定されたとして、学習処理を終了する。
【0081】
一方、
図8に示す例は、違和感があるとユーザが判定する例であり、良品画像からなる検証用画像301に対応する異常度マップ311に反応がない点では
図7に示す例と同じであるが、不良品画像からなる検証用画像302に対応する異常度マップ312には不良箇所Wa以外にも反応がある。
図8に示す異常度マップ312では、不良箇所Waに対応した白い点の他にも、複数の小さな白い点、ワークWの外形状に対応した白い枠も表示されている。複数の小さな白い点及び白い枠は、不良箇所ではないのに反応した部分であり、例えば、背景のばらつきにより、不良箇所Waだけでなく、ワークWの模様や輪郭部分に過検出が発生している。よって、現状のモデルの調整が必要であることを示している。
【0082】
図8に示すように異常度マップ311、312に違和感があるとユーザが判定した場合には、ステップSA8においてユーザがデバッグボタン205cを操作する。入力部13dは、デバッグボタン205cが操作されたことを検出すると、デバッグモードを開始するというユーザによる入力を受け付ける。つまり、入力部13dは、デバッグモードを開始するか否かのユーザによる入力を受け付ける部分である。
【0083】
プロセッサ13aは、デバッグモードの開始を入力部13dが受け付けた場合、ステップSA8でYESと判定されたとして、ステップSA9に進む。ステップSA9に進むと、各階層の異常度マップを表示装置4に表示させる。
図9はデバッグモードに移行した場合に表示制御部13cが表示装置4に表示させるユーザインターフェース画面200を示している。ユーザインターフェース画面200の異常度マップ表示領域203は、複数の異常度マップ311、312を一覧形式で表示可能な一覧表示領域である。異常度マップ311、312の表示形態は、図示した形態に限られるものではなく、例えば縦に並んでいてもよい。
【0084】
具体的には、まず、プロセッサ13aが、各階層の検証用画像に対応する異常度マップをそれぞれ選択する。
図9に示す例では、階層4、階層3及び階層2のそれぞれについて、選択された検証用画像に対応する異常度マップ311、312が選択され、横並びで表示されている。また、表示制御部13cは、プロセッサ13aにより選択された合成異常度マップ313、314を異常度マップ表示領域203に表示させる。上の合成異常度マップ313は良品画像からなる検証用画像301に対応しており、また、下の合成異常度マップ314は不良品画像からなる検証用画像302に対応している。
【0085】
図9に示すユーザインターフェース画面200では、各階層ごとに分離度が数値で表示される数値表示領域341が設けられている。これにより、ユーザは各階層の分離度を容易に把握できる。また、
図9に示すユーザインターフェース画面200では、各階層ごとに累積ヒストグラムが表示されるヒストグラム表示領域342も設けられている。
【0086】
図9に示す階層4、階層3及び階層2の異常度マップ312において、階層2が、過検出も含めて分離度は一番高いことが分かる。しかし、過検出しているという点で実際の運用時における検出性能は他の階層4、階層3(過検出していない階層)に比べて劣っている。プロセッサ13aは、分離度が一番高い階層を自動的に選択するので、実際の検出性能が他の階層4、階層3に比べて劣っていたとしても、
図8に示すように階層2の異常度マップ312をユーザに提示する。
【0087】
図8に示すユーザインターフェース画面200から
図9に示すユーザインターフェース画面200に移行することで、ユーザは、実際の検出要求に応じて、異常度マップ311、312を見ながら適切な階層を選択できる。
図9に示す例においては、検出性能が一番安定しそうな合成結果(合成異常度マップ)を選択する。尚、合成結果と各階層の結果とが同じである場合、暫定的に安定性の高い合成結果を選択してもよい。
【0088】
異常度マップの選択操作はユーザによって行われる。すなわち、入力部13dは、ユーザインターフェース画面200に表示されている複数の異常度マップ311~314の中から任意の異常度マップのユーザによる選択を受け付け可能に構成されている。例えばマウス52等の操作を入力部13dが検出して「合成結果(合成異常度マップ313、314)」が選択されたことを検出すると、表示制御部13cは、
図10に示すように、「合成結果」を囲む選択枠340をユーザインターフェース画面200に表示させる。
【0089】
表示制御部13cは、ユーザにより選択された異常度マップに基づく分離度を、ユーザインターフェース画面200における異常度マップ表示領域203とは別の分離度表示領域204に、累積ヒストグラム320で表示させる。分離度表示領域204上の累積ヒストグラム320には、閾値を調整するための閾値調整バー321、322が設けられている。すなわち、
図2に示す調整受付部13eは、閾値のユーザによる調整を受け付ける部分であり、累積ヒストグラム320に、左右方向に操作可能な閾値調整バー321、322を重畳表示させる。ユーザは、閾値調整バー321、322の一方または両方をマウス52等で左右に移動させることで、閾値が変更される。この閾値の変更が調整受付部13eで受け付けられる。
【0090】
以上がステップSA9における調整処理である。調整処理が終了すると、
図11に示すように、調整後の異常度マップ311、312が異常度マップ表示領域203に表示される。ステップSA10において、
図11に示す調整後の異常度マップ311、312に違和感がある場合には、YESと判定されてステップSA1に進み、学習用画像の追加操作、モデルの再学習等を行う。一方、ステップSA10において、
図11に示す調整後の異常度マップ311、312に違和感がない場合には、学習処理を終了する。
【0091】
ステップSA8の判定によりデバッグモードに移行した時、
図12に示すようなユーザインターフェース画面200を表示制御部13cが表示装置4に表示させた場合について説明する。
図12に示す異常度マップ表示領域203において、不良品画像からなる検証用画像302に対応する異常度マップ312に注目すると、階層4、階層3及び階層2の全ての階層で不良箇所Waだけでなく、ワークWの模様や輪郭部分に過検出が発生している。
【0092】
ステップSA8からステップSA9に進むと、上述したような調整処理を実行する(
図13参照)。ただし、全ての階層で過検出が発生しているので、調整後において選択された異常度マップ312にも過検出が発生してしまう(
図14参照)。よって、ステップSA10では違和感ありと判定されてステップSA1に進み、学習用画像の追加操作、モデルの再学習等を行う。
【0093】
(検査処理)
次に、外観検査装置1の運用時について、
図15に示すフローチャートに基づいて説明する。スタート後のステップSC1では、プロセッサ13aが記憶装置19に記憶されているパラメータ等を読み込み、プロセッサ13a及びメモリ13bに学習済みのニューラルネットワーク及び学習済みのモデルを構築する。ステップSC2では、検査対象のワークを撮像ユニット3で撮像してワーク画像を取得する。その後、ステップSC3に進み、ステップSC2で取得したワーク画像を畳み込みニューラルネットワークに入力する。
【0094】
次いで、ステップSC4では、畳み込みニューラルネットワークの各階層から、ワーク画像の特徴を有する特徴マップを出力させる。そして、各階層から出力された特徴マップをステップSC1で構築したモデルに適用する。これが推論処理である。
【0095】
その後、ステップSC5では、モデルが、各階層ごとに、異常度を示す異常度マップを出力する。しかる後、ステップSC6では、出力された複数の異常度マップに基づいて、ワーク画像に含まれる異常を検出する検査処理を実行する。ステップSC2~SC6は、ワークが変わる都度、実行することができる。このフローチャートに示す処理は、プロセッサ13aが実行する検査ステップに相当する。
【0096】
(実施形態の作用効果)
以上説明したように、学習処理時には、学習用画像を畳み込みニューラルネットワークに入力すると、当該畳み込みニューラルネットワークの各階層から、学習用画像の特徴を有する特徴マップが出力される。畳み込みニューラルネットワークの各階層から出力された特徴マップは、上位の階層から出力されたものほど抽象度が高くて広域的な異常が表現される一方、下位の階層から出力されたものほど抽象度が低くて局所的な異常を表現する。これら複数の特性が異なる特徴マップに基づいてモデリング手段がモデルを生成する。
【0097】
したがって、画素単位ベースのモデリングではなく、畳み込みニューラルネットワークから出力された特徴マップを直にモデリングするので、汎用性能による検出漏れを解消できる。また、シングルスケールにて各サイズの不良箇所の検出が可能になり、幅広い大きさの異常検出性能が高くなる。
【0098】
また、複数スケールにおける処理が不要になり、最も小さなスケールにて処理を行うので、学習処理と推論処理のスピードが高まる。また、変動に強く、過検出が少なく、しかも、ばらつきの大きい背景のトレンド異常の検出能力が高く、ロバスト性が高い。また、カラー対応による処理量の増加が僅かで、学習処理と推論処理への影響がほとんどない。さらに、画像分割が不要で、単一画素の特徴ベクトルにて受容野内の特徴を集約することができ、よって、ロバスト性をより一層高めることができる。
【0099】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【0100】
例えば
図16に示すように、一般的なオートエンコーダとは逆に、レイヤーのChannel数を先に圧縮し、その後拡大してもよい。オートエンコーダの出力は入力された特徴マップと一致するように学習を行う。この例では、特徴間の関連性を活用するために、カーネルサイズ=3×3の畳み込み層を各階層に採用しており、空間の縮小を行わず、Channel方向の圧縮と拡大のみ行っている。尚、性能と速度との兼ね合いで空間を縮小してもよい。
【0101】
図17は、運用時の例を示しており、抽出された特徴マップを対応する階層の学習済みのオートエンコーダに入力し、推論処理を行う。具体的には、入出力の特徴マップにおける各位置の対応局所特徴の差分のノルムの二乗を計算し、得られた値を対応位置の異常度として異常度マップを生成する。
【0102】
図18は、処理を高速化する場合を示している。すなわち、推論時は、学習済みのCAE(枠線500で示す部分)をそのまま学習済みのニューラルネットワークと一体化する。これにより、CAEの計算量が低く、ニューラルネットワークの畳み込み層における並列処理をそのまま流用することができる。
【産業上の利用可能性】
【0103】
以上説明したように、本発明は、ワークの外観を検査する場合に利用できる。
【符号の説明】
【0104】
1 外観検査装置
4 表示装置(表示部)
13a プロセッサ
13b メモリ
13c 表示制御部
13d 入力部
13e 調整受付部