以下、本発明をその実施形態を示す図面に基づいて詳述する。
(実施形態1)
実施形態1は、検査対象物を含む画像に基づき、人工知能(AI:Artificial Intelligence)により外観検査を行って該検査対象物の異常を検出する形態に関する。検査対象物は、金属、食品、日用品、医療、電子デバイス等の業界の生産物、製品または部品である。検査対象物は、例えば、ベアリング、ネジ、商品容器、ガラス瓶、半導体パッケージ、プリント基板等である。外観検査は、検査対象物の傷、汚れ、異物等の外観上の欠陥を検出することである。例えば、ベアリングの欠けや異物、商品容器のラベル違い、電子デバイス部品の形状違いや微細な曲がり等の外観上の欠陥を外観検査により検出することができる。
図1は、外観検査システムの概要を示す説明図である。本実施形態のシステムは、情報処理装置1及び撮像装置2を含み、各装置はインターネット、イーサネット(登録商標)またはUSB(Universal Serial Bus)接続等のネットワークNを介して情報の送受信を行う。
情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において、情報処理装置1はパーソナルコンピュータであるものとし、以下では簡潔のためコンピュータ1と読み替える。
撮像装置2は、検査対象物を撮像して画像を生成する。本実施形態の撮像装置2は、無線通信部を含む。無線通信部は、通信に関する処理を行うための無線通信モジュールであり、ネットワークNを介して、コンピュータ1等と撮像画像の送受信を行う。なお、撮像装置2の代わりに、撮影可能なパーソナルコンピュータ、スマートフォン、または検査対象物を撮影可能な移動型の監視ロボット等であっても良い。
本実施形態に係るコンピュータ1は、学習モードの選択を受け付けた場合、検査対象物を含む学習用の画像を撮像装置2から取得する。コンピュータ1は、教師なし学習により生成する良品学習モデル(第1学習モデル)のハイパーパラメータの設定を受け付ける。コンピュータ1は、受け付けたハイパーパラメータに基づき、取得した学習用の画像を入力した場合に該画像に対応する再構成画像を出力する良品学習モデルを生成する。なお、良品学習モデルに関しては後述する。
コンピュータ1は、検査対象物を含む検査用の画像を撮像装置2から取得し、検査用の画像を検証するための異常度の閾値の設定を受け付ける。コンピュータ1は、取得した検査用の画像と、学習済みの良品学習モデルが出力した再構成画像との異常度を算出する。コンピュータ1は、算出した異常度と、受け付けた異常度の閾値とに基づき、検査対象物の異常を検出する。コンピュータ1は、検出した異常を示す異常画像を表示する。
コンピュータ1は、運用モードの選択を受け付けた場合、検査対象物を含む運用の画像を撮像装置2から取得する。コンピュータ1は、学習済みの良品学習モデルの選択を受け付ける。コンピュータ1は、取得した運用の画像と、良品学習モデルが出力した再構成画像との異常度を算出する。コンピュータ1は、算出した異常度に基づいて検査対象物の異常の有無を検出する。
図2は、コンピュータ1の構成例を示すブロック図である。コンピュータ1は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16及び大容量記憶部17を含む。各構成はバスBで接続されている。
制御部11はCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を含み、記憶部12に記憶された制御プログラム1Pを読み出して実行することにより、コンピュータ1に係る種々の情報処理、制御処理等を行う。なお、図2では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部13は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、撮像装置2等との間で情報の送受信を行う。
入力部14は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
読取部16は、CD(Compact Disc)−ROM又はDVD(Digital Versatile Disc)−ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部17に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部17に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
大容量記憶部17は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部17は、良品学習モデル171及び学習モデル管理DB(データベース:database)172を含む。良品学習モデル171は、深層生成モデルの一種であり、データの分布をモデリングしてそこから新しいデータを生成する学習済みモデルである。学習モデル管理DB172は、学習済みモデルのファイル等を記憶している。
なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17はコンピュータ1に接続された外部記憶装置であっても良い。
なお、本実施形態では、コンピュータ1は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
図3は、学習モデル管理DB172のレコードレイアウトの一例を示す説明図である。学習モデル管理DB172は、モデルID列、学習モデルファイル列、生成日時列、テンプレート画像列及び備考列を含む。モデルID列は、各学習済みモデルのファイルを識別するために、一意に特定される学習済みモデルのファイルのIDを記憶している。
学習モデルファイル列は、学習済みモデルのファイル、または学習済みモデルのファイルの保管場所を記憶している。生成日時列は、学習済みモデルのファイルを生成した日時情報を記憶している。テンプレート画像列は、検査対象物を含む画像を切り出す領域を示すための参照用の画像を記憶している。備考列は、学習済みモデルのファイルに対する説明情報を記憶している。
なお、本実施形態では、学習モデルを学習モデル管理DB172で管理した例を説明したが、これに限るものではない。例えば、学習モデルごとに学習モデルファイルそのものをコンピュータ1の記憶部12または大容量記憶部17に管理しても良い。この場合、一意に特定されるファイル名に基づいて学習モデルが特定される。また、学習モデルに対応するテンプレート画像が学習モデルファイルと同じ保管場所で保管されても良い。
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
図4は、外観検査システムの処理動作を示す機能ブロック図である。外観検査システムは、学習モード及び運用モードを含む。学習モードは、検査対象物を含む異常なしの良品画像に基づき、教師なし学習により良品学習モデル171を生成するモードである。運用モードは、検査対象物を含む運用の画像と、学習済みの良品学習モデル171が出力した再構成画像との異常度に基づいて異常を検出するモードである。
先に、学習モードで良品学習モデル171を生成する処理を説明する。コンピュータ1は学習モードの選択を受け付けた場合、コンピュータ1は、検査対象物を含む学習用の画像(正常画像)を撮像装置2から取得する。なお、学習用の画像が予め大容量記憶部17に記憶されても良く、または外部装置から転送されても良い。
コンピュータ1は、テンプレート画像に基づいて、学習モデルに学習させる画像を作成する。なお、テンプレート画像が未登録(未作成)である場合、コンピュータ1はテンプレート画像を登録(作成)する。具体的には、コンピュータ1は、検査対象物の領域の指定を受け付ける。例えばコンピュータ1は、マウスカーソルを使って長方形の選択範囲が表示されている画像の上に、ドラッグによる検査対象物の領域の選択を受け付ける。コンピュータ1は、選択された検査対象物の領域に基づいてテンプレート画像を登録する。
コンピュータ1は、登録済みのテンプレート画像の選択を受け付ける。コンピュータ1は、選択されたテンプレート画像に基づき、例えばテンプレートマッチング(Template Matching)手法を用いて、撮像装置2から取得された学習用の画像中の検査対象物を認識する。テンプレートマッチング手法は、入力画像中からテンプレート画像(部分画像)と最も類似する特定のパターンを探索する処理であり、例えばSSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)またはNCC(Normalized Cross Correlation)である。
コンピュータ1は、学習用の画像から検査対象物を認識した画像を切り出して所定の学習用画像フォルダに記憶する。学習用画像フォルダは、例えば予め決められた画像フォルダであっても良く、またはユーザ(オペレーター)が指定した画像フォルダであっても良い。
また、テンプレート画像に基づき、動画から学習モデルに学習させる画像を作成することができる。具体的には、コンピュータ1は、検査対象物を含む動画ファイルの選択を受け付ける。コンピュータ1は、テンプレート画像に基づき、例えばCNN(Convolution Neural Network)を用いた物体検出アルゴリズムを利用し、選択された動画中に含まれた検査対象物を認識する。コンピュータ1は、検査対象物を認識した複数の画像を動画から切り出して上述した所定の学習用画像フォルダに記憶する。
なお、物体検出アルゴリズムに関しては、CNNの代わりに、RCNN(Regions with Convolutional Neural Network)、テンプレートマッチング(例えば、SSD、SAD)等の物体検出アルゴリズムを使用しても良い。
コンピュータ1は、教師なし学習により生成する良品学習モデル171のハイパーパラメータの設定を受け付ける。ハイパーパラメータは、機械学習アルゴリズムの挙動を制御するパラメータであり、RGB(Red Green Blue)/白黒、Depth、Channel及びEpochを含む。RGB/白黒は、画像に対する色モードを設定するパラメータである。色モードは、RGBカラー及びグレースケール(モノクロ)を含む。
Depthは、学習モデルのエンコーダまたはデコーダの階層数を設定するパラメータである。Channelは、1階層あたりのニューロン数(フィルタ数)を設定するパラメータである。階層数またはChannel数を増やすと学習率が上がるが、学習に時間を要する。Epochは、一つの訓練データを何回繰り返して学習させるかの回数を設定するパラメータである。
コンピュータ1は、設定された良品学習モデル171のハイパーパラメータに基づき、所定の学習用画像フォルダに記憶された画像を用いて良品学習モデル171を生成する。
図5は、良品学習モデル171を生成する処理を説明する説明図である。良品学習モデル171は、ディープラーニングにより構築され、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。良品学習モデル171は、例えばオートエンコーダ(Auto Encoder)、VAE(変分オートエンコーダ:Variational Auto Encoder)、U-Net(Convolutional Networks for Biomedical Image Segmentation)、GAN(敵対的生成ネットワーク:Generative Adversarial Networks)等である。検査対象物の異常画像(不良品画像)が無い、または異常画像が少ない場合、教師なし学習により正常画像(良品画像)のみを学習することができる。
以下では、良品学習モデル171の例としてVAEを用いて説明する。良品学習モデル171は、正常な学習データ(検査対象物を含む正常画像)を学習した確立密度推定器であり、正常な初期学習データの確率密度の特徴を学習したモデルである。確率密度推定による異常検出は、正常なトラフィックを基に正常な通信パターンの発生確率を学習し、発生確率の低い通信を異常として検知する。このため、VAEによれば、すべての悪性状態を知らずとも異常検出が可能である。
VAEは、復元誤差(Reconstruction Error)をもとに、エンコーダ(符号化器:Encoder)とデコーダ(復号化器:Decoder)それぞれの重みを調整して、潜在変数z(凝縮された特徴)を求めている。具体的には、VAEは、潜在変数zを求めるのに確率分布を用いる。確率分布の推定と生成にそれぞれ用いるエンコーダとデコーダにニューラルネットワークを用い、確率的勾配降下法等の最適化手法によってパラメータを更新する。
VAEは、目的関数となる対数尤度関数の変分下限(ELBO:Evidence Lower Bound)を最大にするようなパラメータを求め、潜在空間上で多様体学習を行う。エンコーダの入力画像とデコーダの出力画像(再構成画像)が等しくなるように訓練することにより、良品学習モデル171が生成される。
VAEは、通常以下の式(1)で表される損失関数を用いて学習する。
ただし、DVAE(x)、AVAE(x)、MVAE(x)それぞれは、次の式(2)、(3)、(4)で表される。
VAEは、パラメータθで表現される生成モデルpθ(x)に対してモデルエビデンスの下限(ELBO)を最大化することで学習を行うモデルである。VAEは、入力xを潜在変数zに変換するエンコーダ及び潜在変数zから入力の再構成を行うデコーダから構成される。変分事後分布qφ(z|x)及び条件付き確率pθ(x|z)は、共に分散共分散行列が対角行列となっている多変量正規分布としてモデル化される。エンコーダは入力xを受け取った後、変分事後分布qφ(z|x)における平均ベクトルμzと標準偏差ベクトルσzの二つの要素の出力を行う。変分事後分布qφ(z|x)のモンテカルロサンプリングを行う代わりに潜在変数zの最大事後確率推定μzが異常検知において使用される。
iとjは、それぞれデータxと潜在変数zの要素の番号を示す。VAEは、損失関数LVAE(x) = DVAE(x) + AVAE(x) + MVAE(x)と3つの項から構成されている。1つ目のDVAE(x)は、与えられたデータの中から頻度の高い特徴を学習し、頻度の少ない特徴を無視する性質を持つ項である。2つ目のAVAE(x)は、与えられたデータの中の特徴の複雑さに応じて調整する性質を持つ項である。3つ目のMVAE(x)は、直接的に再現誤差を表す項である。
本実施形態でのVAEは、非正規化異常度を用いた異常検知アルゴリズムに基づいて構築される。非正規化異常度は、深層生成モデルにおける異常度、即ち負の対数数度から正規化項を取り除いたものである。非正規化異常度は、データが潜在的に含有する複雑さに対して堅牢であり、画像内における各部分の出現頻度に依存することなく評価を行える。
正規化項DVAE(x)及び正規化定数の対数AVAE(x)は、対象部位自体の出現パターン(クラスタ)の頻度及び複雑さを表す持つ項であるため、異常度の算出に使用されない。このように、DVAE(x)及びAVAE(x)を取り除き、MVAE(x)のみを使用して異常度を算出する。非正規化の損失関数は以下の式(5)で表される。
よって、VAEによる異常検知におけるピクセルごとの異常度式は、以下の式(6)で表される。
xは、入力画像を表す項である。xiは、画素値を表す項である。μは、xに対応する再構成画像を表す項である。μxiは、条件付き確率pθ(x|z)における平均ベクトルを表す項である。μzは、変分事後分布qφ(z|x)における平均ベクトルを表す項である。σは、xが属するグループの不確かさ及び複雑さを表す項である。σxiは、条件付き確率pθ(x|z)における標準偏差ベクトルを表す項である。式(6)のように、xとμの差分(絶対距離)ではなく、σで除すことで、画像が持つ本質的な不確かさ及び複雑さに対して堅牢な異常度が計算される。
コンピュータ1は、上記の非正規化異常度を用いた異常検知アルゴリズムに基づいて良品学習モデル171を生成する。コンピュータ1は、生成した良品学習モデル171を学習モデル管理DB172に記憶する。具体的には、コンピュータ1はモデルIDを割り振って、学習済みモデルのファイル、生成日時、テンプレート画像及び備考を一つのレコードとして学習モデル管理DB172に記憶する。
続いて、図4に戻り、学習モードで検査用の画像に基づいて検証処理を説明する。コンピュータ1は、検査対象物を含む検査用の画像を撮像装置2から取得する。なお、検査用の画像が予め大容量記憶部17に記憶されても良く、または外部装置から転送されても良い。コンピュータ1はテンプレート画像に基づき、検査用の画像を切り出して所定の検証画像フォルダに記憶する。
コンピュータ1は、検査用の画像を検証するための異常度の閾値の設定を受け付ける。異常度は、実際の画像(入力画像)と再構成画像(出力画像)とのずれの度合いである。異常度の閾値は、例えば「1〜100」または「1〜300」等の値に設定される。
コンピュータ1は、切り出した画像を学習済みの良品学習モデル171に入力し、該画像に対応する再構成画像を出力させる。良品学習モデル171に画像を入力した場合、DVAE(x)とAVAE(x)をLVAE(x)から消去することにより、良品学習モデル171は、「頻繁さ」と「複雑さ」を該画像から消去した再構成画像を出力する。これにより、再構成画像に対し、同じ閾値でピクセルごとの異常を検出することができる。
コンピュータ1は、切り出した画像と、該画像に対応する再構成画像との異常度に基づいて異常を検出する。先ず、コンピュータ1は切り出した画像と再構成画像との各ピクセルの異常度を式(6)で表される異常度式に従って算出する。具体的には、コンピュータ1は、再構成画像の画素値(μxi)と切り出した画像の画素値(xi)との差分を算出する。コンピュータ1は、算出した差分を標準偏差ベクトル(σxi)で除すことにより異常度を算出する。次に、コンピュータ1は、算出した各ピクセルの異常度が閾値(例えば、50)を超えたか否かを判定する。コンピュータ1は、各ピクセルの異常度のうち少なくとも1つが閾値を超えたと判定した場合、異常として検出する。
なお、上述したピクセルごとの異常度による異常判定処理に限るものではない。例えば、上記の閾値を超えた画像の領域のうち、コンピュータ1は該領域の面積が所定の面積閾値(第2異常度閾値)を超えたと判定した場合、異常として検出しても良い。例えばコンピュータ1は、異常度が第1異常度閾値(例えば、50)を超えたピクセル数を集計し、集計したピクセル数が第2異常度閾値(例えば、30ピクセル)を超えたか否かを判定する。コンピュータ1は、異常度が第1異常度閾値を超えたピクセル数が第2異常度閾値を超えたと判定した場合、異常として検出する。
また、異常と判断された検査対象物のどの部位(部分)に異常点があるかの情報を異常度マップ(ヒートマップ)として提示することができる。異常度マップは、異常箇所を可視化するヒートマップである。例えば、異常度は1〜100に正規化されており対数で色付けし、ヒートマップで色が濃い部分が異常と認識されている。コンピュータ1は、算出した各ピクセルの異常度に基づいて、画像の異常度マップを生成する。
コンピュータ1は、良品学習モデル171の名称、異常度の閾値、及び生成した画像の異常度マップを表示する。なお、画像の異常度マップの生成処理は必須ではない。例えば画像の異常度マップが生成されない場合、コンピュータ1は、良品学習モデル171の名称、異常度の閾値及び異常画像を表示しても良い。または、コンピュータ1は、異常を示すアラートアイコン等を用いて、異常箇所を異常画像上で明示しても良い。
なお、上述した異常検出処理に限るものではない。例えば、コンピュータ1はSSDを用いて、入力画像と該入力画像に対応する再構成画像との類似度を算出する。コンピュータ1は、算出した類似度が所定の類似度の閾値(例えば、80%)以下であると判定した場合、異常として検出しても良い。なお、画像の明度または輝度の差分により異常を検出しても良い。例えばコンピュータ1は、ピクセルごとに入力画像と該入力画像に対応する再構成画像との輝度の差分を算出する。コンピュータ1は、算出した輝度の差分が所定の差分閾値以上であると判定した場合、異常として検出する。
図6は、外観検査システムのメニューを示す説明図である。学習モードボタン10aは、学習モード画面に遷移するためのボタンである。運用モードボタン10bは、運用モード画面に遷移するためのボタンである。コンピュータ1は、学習モードボタン10aのタッチ(クリック)操作を受け付けた場合、コンピュータ1は学習モード画面(図7)に遷移する。コンピュータ1は、運用モードボタン10bのタッチ操作を受け付けた場合、コンピュータ1は運用モード画面(図12)に遷移する。
図7は、学習モードでの素材作成画面の一例を示す説明図である。素材作成画面は、素材作成タブ11a、学習タブ11b、検証タブ11c、切り出し画像選択ボタン11d、画像フォルダ選択ボタン11e、動画ファイル選択ボタン11f、精度しきい値入力欄11g、学習用画像フォルダ選択ボタン11h、作成ボタン11i及び画像一覧欄11jを含む。
素材作成タブ11aは、学習モードでの素材作成画面(本画面)を表示するタブである。学習タブ11bは、学習モードでの学習画面(図8)を表示するタブである。検証タブ11cは、学習モードでの検証画面(図9)を表示タブである。切り出し画像選択ボタン11dは、テンプレート画像を選択するボタンである。画像フォルダ選択ボタン11eは、検査対象物を含む画像を保存した画像フォルダを選択するボタンである。動画ファイル選択ボタン11fは、検査対象物を含む動画を選択するボタンである。
精度しきい値入力欄11gは、動画から検査対象物を認識する認識精度の閾値を入力するテキストフィールドである。学習用画像フォルダ選択ボタン11hは、テンプレート画像に基づいて切り出された学習用の画像を記憶するためのフォルダを選択するボタンである。作成ボタン11iは、良品学習モデル171を生成するボタンである。画像一覧欄11jは、学習用画像フォルダに出力された画像を表示する表示欄である。
コンピュータ1は、素材作成タブ11aのタッチ操作を受け付けた場合、素材作成画面を表示する。コンピュータ1は、学習タブ11bのタッチ操作を受け付けた場合、学習画面を表示する。コンピュータ1は、検証タブ11cのタッチ操作を受け付けた場合、検証画面を表示する。
コンピュータ1は、切り出し画像選択ボタン11dのタッチ操作を受け付けた場合、検査対象物を含むテンプレート画像の選択を受け付ける。コンピュータ1は、画像フォルダ選択ボタン11eのタッチ操作を受け付けた場合、検査対象物を含む画像を記憶したフォルダの選択を受け付ける。コンピュータ1は、動画ファイル選択ボタン11fのタッチ操作を受け付けた場合、対象物を含む動画ファイルの選択を受け付ける。コンピュータ1は、学習用画像フォルダ選択ボタン11hのタッチ操作を受け付けた場合、テンプレート画像に基づいて切り出された学習用の画像を記憶するためのフォルダの選択を受け付ける。
コンピュータ1は、作成ボタン11iのタッチ操作を受け付けた場合、切り出し画像選択ボタン11dにより選択されたテンプレート画像に基づき、画像フォルダ選択ボタン11eにより選択された画像フォルダに記憶された学習用の画像を切り出す。コンピュータ1は切り出した画像を、学習用画像フォルダ選択ボタン11hにより選択された学習用画像フォルダに記憶する。コンピュータ1は、学習用画像フォルダに記憶された画像を画像一覧欄11jに表示する。
動画ファイル選択ボタン11fにより動画ファイルが選択された場合、コンピュータ1は、テンプレート画像と、精度しきい値入力欄11gにより入力された閾値とに基づき、選択された動画ファイルから検査対象物を認識した複数の画像を切り出す。コンピュータ1は切り出した画像を、学習用画像フォルダ選択ボタン11hにより選択された学習用画像フォルダに記憶する。コンピュータ1は、学習用画像フォルダに記憶された画像を画像一覧欄11jに表示する。
図8は、学習モードでの学習画面の一例を示す説明図である。なお、素材作成タブ11a、学習タブ11b、検証タブ11cについては、図7と同様であるため、説明を省略する。学習画面は、学習画像フォルダ選択ボタン12a、色モード設定ラジオボタン12b、Depth入力欄12c、Channel選択ボタン12d、Epoch入力欄12e、AIモデル保存フォルダ選択ボタン12f、学習ボタン12g及び学習情報表示欄12hを含む。
学習画像フォルダ選択ボタン12aは、学習用の画像を記憶した画像フォルダを選択するボタンである。画像フォルダは、学習用の異常のない正常な検査対象物の画像が記憶されている。色モード設定ラジオボタン12bは、学習用の画像に対するRGBカラーモードかグレースケールモードかの設定を受け付けるボタンである。Depth入力欄12cは、学習モデルのエンコーダまたはデコーダの階層数を入力するテキストフィールドである。学習モデルの階層数は、例えば「1〜4」の数値に設定される。
Channel選択ボタン12dは、チャンネル数(1階層あたりのニューロン数)を選択するボタンである。Epoch入力欄12eは、学習させる回数を入力するテキストフィールドである。学習させる回数は、例えば「1〜100」の数値に設定される。なお、本実施形態では、ハイパーパラメータの例として、Depth、Channel及びEpochを挙げたが、これに限るものではない。例えば、学習係数、フィルタ数またはユニット数を設定できるようにしても良い。
AIモデル保存フォルダ選択ボタン12fは、学習を実行させて生成される学習済みモデルのファイルを記憶するためのフォルダを選択するボタンである。学習ボタン12gは、設定されたパラメータに基づいて学習モデルを生成するボタンである。学習情報表示欄12hは、画面操作の説明情報、学習モデルの学習(生成)進捗状況等の学習情報を表示する表示欄である。
コンピュータ1は、学習画像フォルダ選択ボタン12aのタッチ操作を受け付けた場合、学習用の画像を記憶した画像フォルダの選択を受け付ける。コンピュータ1は、AIモデル保存フォルダ選択ボタン12fのタッチ操作を受け付けた場合、AIモデル保存フォルダの選択を受け付ける。
コンピュータ1は、学習ボタン12gのタッチ操作を受け付けた場合、色モード設定ラジオボタン12bにより色モードの選択、Depth入力欄12cにより階層数の入力、Channel選択ボタン12dによりチャンネル数の選択、及びEpoch入力欄12eにより学習させる回数の入力を受け付ける。コンピュータ1は、受け付けた色モード、階層数、チャネル数及び学習させる回数に基づき、学習画像フォルダ選択ボタン12aにより選択された画像を用いて良品学習モデル171を生成する。
コンピュータ1は、生成した良品学習モデル171のファイルを、AIモデル保存フォルダ選択ボタン12fにより選択されたフォルダに記憶する。コンピュータ1は、生成した良品学習モデル171のファイルを学習モデル管理DB172に記憶する。また、学習の進捗状況等が学習情報表示欄12hに表示される。
図9は、学習モードでの検証画面の一例を示す説明図である。なお、素材作成タブ11a、学習タブ11b、検証タブ11cについては、図7と同様であるため、説明を省略する。検証画面は、AIモデルファイル選択ボタン13a、検証画像フォルダ選択ボタン13b、異常度しきい値入力欄13c、検証結果保存フォルダ選択ボタン13d、検証ボタン13e及び検証情報表示欄13fを含む。
AIモデルファイル選択ボタン13aは、学習済みの良品学習モデル171ファイルの選択を受け付けるボタンである。検証画像フォルダ選択ボタン13bは、検査対象物を含む検査用の画像を記憶した画像フォルダを選択するボタンである。異常度しきい値入力欄13cは、異常度の閾値を入力するテキストフィールドである。
検証結果保存フォルダ選択ボタン13dは、検証結果を保存するフォルダを選択するボタンである。検証ボタン13eは、検査用の画像を検証するボタンである。検証情報表示欄13fは、画面操作の説明情報、検証結果等の検証情報を表示する表示欄である。
コンピュータ1は、AIモデルファイル選択ボタン13aのタッチ操作を受け付けた場合、学習済みの良品学習モデル171のファイルを大容量記憶部17の学習モデル管理DB172から取得する。例えばコンピュータ1は、取得した学習済みの良品学習モデル171(複数可)をリストボックス(図示せず)に表示する。コンピュータ1は、ユーザによる良品学習モデル171の選択を受け付ける。
コンピュータ1は、検証画像フォルダ選択ボタン13bのタッチ操作を受け付けた場合、検査用の画像を記憶した画像フォルダの選択を受け付ける。コンピュータ1は、検証結果保存フォルダ選択ボタン13dのタッチ操作を受け付けた場合、検証結果を記憶するフォルダの選択を受け付ける。
コンピュータ1は、検証ボタン13eのタッチ操作を受け付けた場合、検証画像フォルダ選択ボタン13bにより選択された画像を、AIモデルファイル選択ボタン13aにより選択された良品学習モデル171に入力し、該画像に対応する再構成画像を出力させる。コンピュータ1は、選択された画像と、該画像に対応する再構成画像との異常度を算出する。コンピュータ1は、算出した異常度と、異常度しきい値入力欄13cにより入力された異常度の閾値とに基づいて異常を検出する。コンピュータ1は、検出した異常画像を、検証結果保存フォルダ選択ボタン13dにより選択されたフォルダに記憶し、検証情報表示欄13fに表示する。
図10は、良品学習モデル171を生成する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、学習モードの選択を入力部14により受け付ける(ステップS111)。制御部11は、通信部13を介して、検査対象物を含む学習用の画像(正常画像)を撮像装置2から取得する(ステップS112)。制御部11は、入力部14を介して、検査対象物を含むテンプレート画像の選択を受け付ける(ステップS113)。
制御部11は、取得したテンプレート画像に基づき、撮像装置2から取得された学習用の画像を切り出して所定の学習用画像フォルダに記憶する(ステップS114)。具体的には、制御部11は選択されたテンプレート画像に基づき、例えばSSDを用いて学習用の画像から検査対象物を認識する。制御部11は、検査対象物を認識した画像を学習用の画像から切り出して所定の学習用画像フォルダに記憶する。制御部11は入力部14を介して、RGB/白黒、Depth、Channel及びEpochを含む良品学習モデル171のハイパーパラメータの設定を受け付ける(ステップS115)。
制御部11は、設定されたハイパーパラメータに基づき、画像を入力した場合に該画像に対応する再構成画像を出力する良品学習モデル171を生成する(ステップS116)。制御部11はモデルIDを割り振って、生成した良品学習モデル171のファイル、生成日時、テンプレート画像及び備考を一つのレコードとして学習モデル管理DB172に記憶し(ステップS117)、処理を終了する。
図11は、検査用の画像に基づいて検証処理を実行する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、通信部13を介して、検査対象物を含む検査用の画像を撮像装置2から取得する(ステップS121)。制御部11は、入力部14を介して、学習済みの良品学習モデル171の選択を受け付ける(ステップS122)。具体的には、制御部11は、AIモデルファイル選択ボタンのタッチ操作を受け付けた場合、学習済みの良品学習モデル171のファイルを大容量記憶部17の学習モデル管理DB172から取得する。制御部11は、取得した学習済みの良品学習モデル171を表示する。制御部11は、ユーザによる良品学習モデル171の選択を受け付ける。
制御部11は、入力部14を介して、検査用の画像を検証するための異常度の閾値の設定を受け付ける(ステップS123)。制御部11は、選択された良品学習モデル171に対応するテンプレート画像に基づき、検査用の画像を切り出して所定の検証結果保存フォルダに記憶する(ステップS124)。制御部11は、切り出した画像を学習済みの良品学習モデル171のエンコーダに入力する(ステップS125)。制御部11は、良品学習モデル171のデコーダから該画像の再構成画像を出力させる(ステップS126)。
制御部11は、切り出した画像と、該画像に対応する再構成画像との各ピクセルの異常度を式(6)で表される異常度式に従って算出する(ステップS127)。制御部11は、算出した各ピクセルの異常度のうち少なくとも1つが閾値(例えば、50)を超えたか否かを判定する(ステップS128)。制御部11は、各ピクセルの異常度のうち少なくとも1つが閾値を超えたと判定した場合(ステップS128でYES)、算出した各ピクセルの異常度に基づいて、検査用の画像の異常度マップ(ヒートマップ)を生成する(ステップS129)。例えば、制御部11はヒートマップライブラリを利用し、異常と判断された検査対象物のどの部位(部分)に異常点があるかの情報を色の濃さで示すヒートマップを生成する。例えば、色が濃くなればなるほど、異常度が高いことを示す。
制御部11は、良品学習モデル171の名称、異常度の閾値及び生成した画像の異常度マップを含む検証結果を表示部15により表示し(ステップS130)、処理を終了する。なお、制御部11は、異常度マップ(ヒートマップ)と、該異常度マップ上で異常点を示す色の濃さに対応する異常度の数値とを同時に表示しても良い。制御部11は、すべてのピクセルの異常度が閾値を超えないと判定した場合(ステップS128でNO)、制御部11は異常なしの検証結果を表示部15により表示し(ステップS131)、処理を終了する。
続いて、図4に戻り、運用モードで異常を検出する処理を説明する。コンピュータ1は運用モードの選択を受け付けた場合、コンピュータ1は、検査対象物を含む運用の画像を撮像装置2から取得する。コンピュータ1は、学習済みの良品学習モデル171の選択を受け付け、選択された良品学習モデル171に対応するテンプレート画像に基づき、撮像装置2から取得された運用の画像を切り出して所定の運用画像フォルダに記憶する。
コンピュータ1は、切り出した画像を良品学習モデル171に入力し、該画像に対応する再構成画像を出力させる。コンピュータ1は、切り出した画像と該画像に対応する再構成画像との各ピクセルの異常度を算出する。なお、異常度の算出処理に関しては、上述した算出処理と同様であるため、説明を省略する。
コンピュータ1は、算出した各ピクセルの異常度のうち少なくとも1つが閾値を超えたか否かを判定する。コンピュータ1は、算出した各ピクセルの異常度のうち少なくとも1つが閾値を超えた判定した場合、異常を検出した検出結果を出力する。なお、コンピュータ1は、算出した各ピクセルの異常度に基づいて異常度マップを生成し、生成した異常度マップと、該異常度マップ上で異常を表す色に対応付けられた異常度とを同時に出力しても良い。コンピュータ1は、すべてのピクセルの異常度が閾値を超えないと判定した場合、異常なしの検出結果を出力する。
図12は、運用モード画面の一例を示す説明図である。運用モード画面は、AIモデルファイル選択ボタン14a、監視対象フォルダ選択ボタン14b、監視カメラ選択ボタン14c、ログファイル選択ボタン14d、運用ボタン14e及び運用情報表示欄14fを含む。
AIモデルファイル選択ボタン14aは、学習済みの良品学習モデル171のファイルを選択するボタンである。監視対象フォルダ選択ボタン14bは、運用の画像を記憶したフォルダを選択するボタンである。監視カメラ選択ボタン14cは、監視用の撮像装置2を選択するボタンである。ログファイル選択ボタン14dは、検査対象物の異常を検出したログデータを記憶するためのログファイルを選択するボタンである。運用ボタン14eは、検査対象物の異常の有無を検出するボタンである。運用情報表示欄14fは、異常の有無、異常画像等の運用情報を表示する表示欄である。
コンピュータ1は、AIモデルファイル選択ボタン14aのタッチ操作を受け付けた場合、学習済みの良品学習モデル171のファイルを大容量記憶部17の学習モデル管理D
B172から取得する。例えばコンピュータ1は、取得した学習済みの良品学習モデル171(複数可)をリストボックス(図示せず)に表示する。コンピュータ1は、ユーザによる良品学習モデル171の選択を受け付ける。
コンピュータ1は、監視対象フォルダ選択ボタン14bのタッチ操作を受け付けた場合、運用の画像を記憶したフォルダの選択を受け付ける。コンピュータ1は、監視カメラ選択ボタン14cのタッチ操作を受け付けた場合、監視用の撮像装置2の選択を受け付ける。コンピュータ1は、ログファイル選択ボタン14dのタッチ操作を受け付けた場合、ログファイルの選択を受け付ける。
コンピュータ1は、運用ボタン14eのタッチ操作を受け付けた場合、監視対象フォルダ選択ボタン14bにより選択された監視対象フォルダに記憶された運用の画像を、AIモデルファイル選択ボタン14aにより選択された良品学習モデル171に入力し、該運用の画像に対応する再構成画像を出力させる。コンピュータ1は、運用の画像と該運用画像に対応する再構成画像との異常度を算出する。
コンピュータ1は、算出した異常度に基づいて検査対象物の異常の有無を検出する。コンピュータ1は、検出した異常の有無を運用情報表示欄14fに表示する。コンピュータ1は、検査対象物の異常を検出したログデータを、ログファイル選択ボタン14dにより選択されたログファイルに出力する。
なお、上述した異常検出処理は、予め監視対象フォルダに記憶された運用の画像に基づいて異常を検出したが、これに限るものではない。例えば、撮像装置2によりリアルタイムで撮像した動画に基づいて異常を検出しても良い。
具体的には、コンピュータ1は、監視カメラ選択ボタン14cにより選択された撮像装置2から、検査対象物を含む動画をリアルタイムで取得する。コンピュータ1は、AIモデルファイル選択ボタン14aにより選択された良品学習モデル171に対応するテンプレート画像に基づき、例えばCNNを用いた物体検出アルゴリズムを利用し、選択された動画中に含まれた検査対象物を認識する。
コンピュータ1は、検査対象物を認識した複数の画像を動画から切り出して記憶部12または所定の画像フォルダに記憶する。コンピュータ1は、切り出した画像を良品学習モデル171に入力し、該画像に対応する再構成画像を出力させる。コンピュータ1は、切り出した画像と、該画像に対応する再構成画像との異常度に基づいて異常を検出する。その後、異常の表示及びログデータの出力処理に関しては、上述した処理と同様であるため、説明を省略する。
図13は、運用モードで異常を検出する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、運用モードの選択を入力部14により受け付ける(ステップS141)。制御部11は、入力部14を介して、学習済みの良品学習モデル171の選択を受け付ける(ステップS142)。制御部11は、監視用の撮像装置2の選択を入力部14により受け付ける(ステップS143)。制御部11は、通信部13を介して、検査対象物を含む運用の画像を選択された撮像装置2から取得する(ステップS144)。
制御部11は、選択された良品学習モデル171に対応するテンプレート画像に基づき、運用の画像を切り出して所定の運用画像保存フォルダに記憶する(ステップS145)。制御部11は、切り出した画像を学習済みの良品学習モデル171のエンコーダに入力する(ステップS146)。制御部11は、良品学習モデル171のデコーダから該画像に対応する再構成画像を出力させる(ステップS147)。
制御部11は、切り出した画像と該画像に対応する再構成画像との各ピクセルの異常度を式(6)で表される異常度式に従って算出する(ステップS148)。制御部11は、算出した各ピクセルの異常度のうち少なくとも1つが閾値(例えば、50)を超えたか否かを判定する(ステップS149)。
制御部11は、算出した各ピクセルの異常度のうち少なくとも1つが閾値を超えたと判定した場合(ステップS149でYES)、制御部11は、良品学習モデル171の名称、異常度の閾値及び異常画像を含む検出結果を表示部15により表示する(ステップS150)。制御部11は、検査対象物の異常を検出したログデータをログファイルに記憶(出力)し(ステップS151)、処理を終了する。制御部11は、すべてのピクセルの異常度が閾値を超えないと判定した場合(ステップS149でNO)、制御部11は異常なしの検出結果を表示部15により表示し(ステップS152)、処理を終了する。
本実施形態によると、検査対象物を含む画像に基づいて教師なし学習により生成した良品学習モデル171から、該画像に対応する再構成画像を出力することが可能となる。
本実施形態によると、検査対象物を含む画像と、良品学習モデル171が出力した該画像の再構成画像との異常度に基づいて異常の有無を検出することが可能となる。
本実施形態によると、少量の良品画像のみで学習が可能であるため、不良品の定義が不明確な場合に異常の有無を検出することが可能となる。
本実施形態によると、学習モードと運用モードとを提供することにより、学習及び運用が容易となる。
(実施形態2)
実施形態2は、検査対象物を含む画像を複数の小片画像に分割し、分割した複数の小片画像に基づいて検査対象物の異常を検出する形態に関する。なお、実施形態1と重複する内容については説明を省略する。
コンピュータ1は、検査対象物を含む画像を相互にオーバーラップする複数の小片画像(例えば、10×10ピクセル)に分割する。具体的には、コンピュータ1は、画像内で小片画像同士が一部重複するようにスライドさせながら小片画像を複数抽出する。例えば画像の中に所定座標(例えば、10,10)を小片画像の中心点とし、コンピュータ1は該小片画像を所定サイズ(例えば、10×10)で切り出す(トリミング)。コンピュータ1は、該中心点を横に所定のピクセル単位(例えば、20ピクセル)でスライドして第2中心点を取得する。コンピュータ1は、取得した第2中心点に基づき、上述した処理で切り出した小片画像と一部重複するよう小片画像を同様のサイズで切り出す。コンピュータ1は、横方向に沿って複数の小片画像を抽出した後に、最初の中心点に戻る。コンピュータ1は、該中心点を縦に同じのピクセル単位でスライドして次の中心点を取得する。コンピュータ1は取得した中心点に基づき、上述した処理と同様に横方向に沿って、小片画像同士が一部重複するよう小片画像を同様のサイズで切り出す。このようにして、画像を相互にオーバーラップする複数の小片画像に分割することができる。
コンピュータ1は、実施形態1で生成した学習済みの良品学習モデル171に、分割した複数の小片画像を良品学習モデル171のエンコーダに入力し、良品学習モデル171のデコーダからそれぞれの小片画像に対応する再構成画像を出力させる。コンピュータ1は、分割した複数の小片画像と、それぞれの小片画像に対応する再構成画像との各ピクセルの異常度を、小片画像ごとに実施形態1での式(6)で表される異常度式に従って算出する。
コンピュータ1は、各ピクセルの異常度を足し込み、異常度が足し込まれた回数を集計する。コンピュータ1は、画像全体で集計した回数で除し、ピクセルごとに平均異常度を算出する。その後、コンピュータ1は、算出した平均異常度と所定の異常度の閾値とを比較し、実施形態1と同様処理で検査対象物の異常の有無を検出する。
図14は、小片画像に基づいて異常を検出する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、検査対象物を含む画像を通信部13により撮像装置2から取得する(ステップS161)。制御部11は、取得した画像を相互にオーバーラップする複数の小片画像(例えば、10×10ピクセル)に分割する(ステップS162)。
コンピュータ1は、実施形態1で生成した学習済みの良品学習モデル171に、分割した複数の小片画像を良品学習モデル171のエンコーダに入力し(ステップS163)、良品学習モデル171のデコーダからそれぞれの小片画像に対応する再構成画像を出力させる(ステップS164)。制御部11は、分割した複数の小片画像と、それぞれの小片画像に対応する再構成画像との各ピクセルの異常度を、小片画像ごとに実施形態1での式(6)で表される異常度式に従って算出する(ステップS165)。
制御部11は、ピクセルごとに平均異常度を算出する(ステップS166)。具体的には、制御部11は各ピクセルの異常度を足し込み、異常度が足し込まれた回数を集計する。制御部11は画像全体で集計した回数で除し、ピクセルごとに平均異常度を算出する。制御部11は、算出した各ピクセルの平均異常度のうち少なくとも1つが異常度の閾値を超えたか否かを判定する(ステップS167)。
制御部11は、各ピクセルの平均異常度のうち少なくとも1つが閾値を超えたと判定した場合(ステップS167でYES)、制御部11は、異常画像を含む検出結果を表示部15により表示し(ステップS168)、処理を終了する。制御部11は、すべてのピクセルの平均異常度が閾値を超えないと判定した場合(ステップS167でNO)、制御部11は異常なしの検出結果を表示部15により表示し(ステップS169)、処理を終了する。
なお、上述した異常検出処理に限るものではない。コンピュータ1は、分割した複数の小片画像を良品学習モデル171のエンコーダに入力し、良品学習モデル171のデコーダからそれぞれの小片画像に対応する再構成画像を出力させる。コンピュータ1は、出力させた複数の再構成画像を結合して結合画像を生成する。なお、コンピュータ1は結合画像の生成処理を行った場合、小片画像の重なり部分の明度を、平均値を用いて算出しても良い。コンピュータ1は、生成した結合画像と分割元の画像との各ピクセルの異常度を実施形態1の式(6)で表される異常度式に従って算出する。その後、実施形態1と同様に、コンピュータ1は、算出した各ピクセルの異常度に基づいて検査対象物の異常を検出する。
本実施形態によると、検査対象物を含む画像を小片画像に分割することで計算収束性が良くなるため、複数の小片画像の再構成化の並列計算処理時間を短縮することが可能となる。
<実施形態2の変形例1>
実施形態2の変形例1は、異なる小片画像のサイズごとに、検査対象物を含む画像を複数の小片画像に分割し、分割した複数の小片画像に基づいて検査対象物の異常を検出する形態に関する。なお、既に説明した事項については重複する説明を省略する。
検査対象物の異常(欠陥)のサイズに応じて、小片画像のサイズを決める場合がある。異常のサイズに応じて画像を複数の小片画像に分割することにより、異常を検出することが容易になる。例えば検査対象物の画像に対し、予め10×10ピクセル、15×15ピクセル、20×20ピクセルである小片画像のサイズが決められても良い。
図15は、小片画像サイズごとに良品学習モデル171を生成する際の処理手順を示すフローチャートである。なお、図10と重複する内容については同一の符号を付して説明を省略する。コンピュータ1の制御部11は、ステップS21〜25(図10のステップS111〜S115)処理を実行する。制御部11は、小片画像のサイズを複数特定する(ステップS26)。例えば、制御部11は入力部14を介して、ユーザによる小片画像のサイズの入力を受け付けることにより、小片画像のサイズを複数特定する。
制御部11は、特定した小片画像の複数のサイズ中から、1つの小片画像のサイズを取得する(ステップS27)。制御部11は、取得した小片画像のサイズで、検査対象物を含む画像を相互にオーバーラップする複数の小片画像に分割する(ステップS28)。制御部11は、分割した小片画像に基づき、教師なし学習により良品学習モデル171を生成する(ステップS29)。なお、良品学習モデル171の生成処理に関しては、実施形態1と同様であるため、説明を省略する。制御部11は、生成した良品学習モデル171を大容量記憶部17の学習モデル管理DB172に記憶する(ステップS30)。
制御部11は、特定した小片画像の複数のサイズ中に、該小片画像のサイズが最後のサイズであるか否かを判定する(ステップS31)。制御部11は、該小片画像のサイズが最後のサイズでないと判定した場合(ステップS31でNO)、制御部11はステップS27処理に戻る。制御部11は、該小片画像のサイズが最後のサイズであると判定した場合(ステップS31でYES)、制御部11は処理を終了する。
続いて、運用モードで上記処理により生成した学習済みの良品学習モデル171を用いる例を説明する。コンピュータ1の制御部11は、検査対象物を含む運用の画像を撮像装置2から取得する。制御部11は、小片画像のサイズの入力を入力部14により受け付ける。制御部11は、受け付けた小片画像のサイズで、取得した運用の画像を相互にオーバーラップする複数の小片画像に分割する。制御部11は、分割した複数の小片画像を、該小片画像のサイズに対応する良品学習モデル171のエンコーダに入力し、該良品学習モデル171のデコーダからそれぞれの小片画像の再構成画像を出力させる。その後の異常検出処理に関しては、実施形態2と同様であるため、説明を省略する。
本変形例1によると、異なる小片画像のサイズごとに良品学習モデル171で学習させることにより、異常検出の精度を高めることが可能となる。
(実施形態3)
実施形態3は、収集された異常画像に基づいて第2学習モデルを生成し、生成した第2学習モデルを用いて検査対象物の異常を検出する形態に関する。なお、実施形態1〜2と重複する内容については説明を省略する。
図16は、実施形態3のコンピュータ1の構成例を示すブロック図である。なお、図2と重複する内容については同一の符号を付して説明を省略する。大容量記憶部17には、異常検出モデル173(第2学習モデル)が記憶されている。異常検出モデル173は、検査対象物を含む画像に基づいて異常の有無を検出する検出器であり、機械学習により生成された学習済みモデルである。
教師なし異常検出での実運用で、正常または異常を誤判定した画像が存在している。例えば、画像を異常画像として判定したが、実際に該画像が正常画像である場合がある。また、例えば画像を正常画像として判定したが、実際に該画像が異常画像である場合がある。これらの誤判定画像の特徴量に対して学習することにより、異常検出モデル173を構築することができる。コンピュータ1は、異常検出モデル173を用いて、検査対象物を含む画像を入力した場合に該画像に対応する異常情報を出力する。
図17は、異常検出モデル173を用いて異常の有無を検出した検出結果を出力する説明図である。異常検出モデル173は、ディープラーニングにより構築され、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。異常検出モデル173は、検査対象物を含む画像を入力とし、検査対象物に対する異常の有無を検出した検出結果を出力とするニューラルネットワークを構築(生成)済みの検出器である。
コンピュータ1は、異常検出モデル173として、画像内における検査対象物の特徴量を学習するディープラーニングを行うことで異常検出モデル173を構築(生成)する。例えば、異常検出モデル173はCNN(Convolution Neural Network)であり、検査対象物を含む画像の入力を受け付ける入力層と、異常の有無を検出した検出結果を出力する出力層と、バックプロパゲーションにより学習済の中間層とを有する。
入力層は、画像に含まれる各画素の画素値の入力を受け付ける複数のニューロンを有し、入力された画素値を中間層に受け渡す。中間層は、画像特徴量を抽出する複数のニューロンを有し、抽出した画像特徴量を出力層に受け渡す。中間層は、入力層から入力された各画素の画素値を畳み込むコンボリューション層と、コンボリューション層で畳み込んだ画素値をマッピングするプーリング層とが交互に連結された構成により、画像の画素情報を圧縮しながら最終的に画像の特徴量を抽出する。その後中間層は、バックプロパゲーションによりパラメータが学習された全結合層により、画像が検査対象物に対する異常の有無を予測する。予測結果は、複数のニューロンを有する出力層に出力される。
なお、検査対象物を含む画像は、交互に連結されたコンボリューション層とプーリング層とを通過して特徴量が抽出された後に、入力層に入力されても良い。なお、CNNの代わりに、RCNN、Fast RCNN、Faster RCNN、SSDまたはYOLO(You Only Look Once)等の、任意の物体検出アルゴリズムを使用しても良い。
コンピュータ1は、検査対象物を含む画像(例えば、正常画像、異常画像)と、各画像における異常の有無とが対応付けられた訓練データ(教師データ)の組み合わせを用いて学習を行う。訓練データは、検査対象物を含む画像に対し、異常の有無がラベル付けされたデータである。なお、訓練データの生成処理に関しては後述する。
コンピュータ1は、訓練データである画像を入力層に入力し、中間層での演算処理を経て、出力層から異常の有無を示す検出結果を取得する。なお、出力層から出力される検出結果は異常の有無を離散的に示す値(例えば「0」又は「1」の値)であっても良く、連続的な確率値(例えば「0」から「1」までの範囲の値)であっても良い。
制御部11は、出力層から出力された検出結果を、訓練データにおいて画像に対しラベル付けされた情報、すなわち正解値と比較し、出力層からの出力値が正解値に近づくように、中間層での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み(結合係数)、各ニューロンで用いられる活性化関数の係数等である。パラメータの最適化の方法は特に限定されないが、例えばコンピュータ1は、誤差逆伝播法を用いて各種パラメータの最適化を行う。
コンピュータ1は、訓練データに含まれる各画像について上記の処理を行い、異常検出モデル173を生成する。これにより、例えばコンピュータ1は当該訓練データを用いて異常検出モデル173の学習を行うことで、検査対象物に対する異常の有無を検出可能なモデルを構築することができる。
コンピュータ1は検査対象物を含む画像を取得した場合、取得した画像を異常検出モデル173に入力する。コンピュータ1は、異常検出モデル173の中間層にて画像の特徴量を抽出する演算処理を行い、抽出した特徴量を異常検出モデル173の出力層に入力して、検査対象物に対する異常の有無を示す検出結果を出力として取得する。
コンピュータ1は、異常検出モデル173の出力層から出力した検出結果に基づき、検査対象物に対する異常の有無を判断する。例えば、異常の確率値(例えば、0.95)が所定閾値(例えば、0.85)以上である場合、コンピュータ1は異常を検出したと判断しても良い。
図18は、誤判定画像の収集画面の一例を示す説明図である。図18Aは、誤判定の異常画像の収集画面の一例を示す説明図である。誤判定の異常画像の収集画面は、画像表示欄15a、OKボタン15b及びNGボタン15cを含む。画像表示欄15aは、実施形態1〜2でのAIにより判定された異常画像を表示する表示欄である。OKボタン15bは、AIにより判定された異常画像に対し、正しく異常と判断された判断結果をユーザ(オペレーター)から受け付けるボタンである。NGボタン15cは、AIにより判定された異常画像に対し、誤って異常と判断された判断結果をユーザから受け付けるボタンである。
図18Bは、誤判定の正常画像の収集画面の一例を示す説明図である。画像表示欄15aは、実施形態1〜2でのAIにより判定された正常画像を表示する表示欄である。OKボタン15bは、AIにより判定された正常画像に対し、正しく正常と判断された判断結果をユーザから受け付けるボタンである。NGボタン15cは、AIにより判定された正常画像に対し、誤って正常と判断された判断結果をユーザから受け付けるボタンである。
なお、OKボタン15b及びNGボタン15cのタッチ操作に応じる処理に関しては、図19で説明する。
図19は、異常検出モデル173の生成処理の処理手順の一例を示すフローチャートである。図19に基づき、機械学習によって異常検出モデル173を生成する処理の処理内容について説明する。
コンピュータ1の制御部11は、複数の異常画像を通信部13により撮像装置2または外部装置から取得する(ステップS181)。なお、異常画像が予め大容量記憶部17に記憶されても良い。制御部11は、複数の異常画像から一つの異常画像を取得し、取得した該異常画像に対し、ユーザによるNGボタン15cのタッチ操作(図18)を受け付けたか否かを判定する(ステップS182)。
制御部11は、NGボタン15cのタッチ操作を受け付けたと判定した場合(ステップS182でYES)、誤って異常と判断され、該異常画像に対して正常であることを示すデータを付与した第1訓練データを生成する(ステップS184)。制御部11は、後述するステップS186処理に遷移する。制御部11は、NGボタン15cのタッチ操作を受け付けていないと判定した場合(ステップS182でNO)、OKボタン15bのタッチ操作(図18)を受け付けたか否かを判定する(ステップS183)。
制御部11は、OKボタン15bのタッチ操作を受け付けたと判定した場合(ステップS183でYES)、正しく異常と判断され、該異常画像に対して異常であることを示すデータを付与した第3訓練データを生成する(ステップS185)。制御部11は、OKボタン15bのタッチ操作を受け付けていないと判定した場合(ステップS183でNO)、制御部11はステップS182処理に戻る。
制御部11は、該異常画像が複数の異常画像中の最後の異常画像であるか否かを判定する(ステップS186)。制御部11は、該異常画像が最後の異常画像でないと判定した場合(ステップS186でNO)、制御部11はステップS182処理に戻る。制御部11は、該異常画像が最後の異常画像であると判定した場合(ステップS186でYES)、複数の正常画像を通信部13により撮像装置2または外部装置から取得する(ステップS187)。
制御部11は、複数の正常画像から一つの正常画像を取得し、取得した該正常画像に対し、ユーザによるNGボタン15cのタッチ操作を受け付けたか否かを判定する(ステップS188)。制御部11は、NGボタン15cのタッチ操作を受け付けたと判定した場合(ステップS188でYES)、誤って正常と判断され、該正常画像に対して異常であることを示すデータを付与した第2訓練データを生成する(ステップS190)。制御部11は、後述するステップS192処理に遷移する。
制御部11は、NGボタン15cのタッチ操作を受け付けていないと判定した場合(ステップS188でNO)、OKボタン15bのタッチ操作を受け付けたか否かを判定する(ステップS189)。制御部11は、OKボタン15bのタッチ操作を受け付けたと判定した場合(ステップS189でYES)、正しく正常と判断され、該正常画像に対して正常であることを示すデータを付与した第4訓練データを生成する(ステップS191)。制御部11は、OKボタン15bのタッチ操作を受け付けていないと判定した場合(ステップS189でNO)、制御部11はステップS188処理に戻る。
制御部11は、該正常画像が複数の正常画像中の最後の正常画像であるか否かを判定する(ステップS192)。制御部11は、該正常画像が最後の正常画像でないと判定した場合(ステップS192でNO)、制御部11はステップS188処理に遷移する。制御部11は、該正常画像が最後の正常画像であると判定した場合(ステップS192でYES)、制御部11は生成した複数の第1訓練データ、第2訓練データ、第3訓練データ及び第4訓練データの組み合わせを用いて、画像を入力した場合に該画像に対する異常情報を検出(出力)する異常検出モデル173を生成する(ステップS193)。
具体的には、制御部11は、訓練データである画像をニューラルネットワークの入力層に入力し、該画像に対応する異常の有無を検出した検出結果を出力層から取得する。制御部11は、取得した検出結果を訓練データの正解値(画像に対してラベル付けられた情報)と比較し、出力層から出力される検出結果が正解値に近づくよう、中間層での演算処理に用いるパラメータ(重み等)を最適化する。制御部11は、生成した異常検出モデル173を大容量記憶部17の学習モデル管理DB172に記憶し(ステップS194)、一連の処理を終了する。
コンピュータ1は、実施形態1で構築された学習済みの良品学習モデル171(第1学習モデル)、または本実施形態で構築された異常検出モデル173(第2学習モデル)の少なくとも一方の選択を受け付ける。良品学習モデル171が選択された場合、コンピュータ1は、実施形態1または2での異常検出処理に基づいて検査対象物の異常を検出する。異常検出モデル173が選択された場合、コンピュータ1は、本実施形態での異常検出処理に基づいて検査対象物の異常を検出する。
本実施形態によると、収集された正常画像及び異常画像に基づいて異常検出モデル173を生成し、生成した異常検出モデル173を用いて検査対象物の異常を検出することが可能となる。
本実施形態によると、収集された正常画像及び異常画像に基づき、教師あり学習により異常検出モデル173を構築することが可能となる。
本実施形態によると、教師なし学習により構築された学習済みモデルと、教師あり学習により構築された学習済みモデルとを併用することで、異常の検出精度を高めることが可能となる。
(実施形態4)
実施形態4は、コンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ、または小片画像のサイズの少なくとも1つに応じて、良品学習モデル171に同時入力する小片画像の最大枚数を決定する形態に関する。なお、実施形態1〜3と重複する内容については説明を省略する。
コンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ、または小片画像のサイズによって、複数の小片画像に基づく異常検出処理の場合、良品学習モデル171に同時入力する枚数に応じて演算処理能力(例えば、処理速度等)の差が生じる。同時に処理する画像枚数が多いほど、メモリ使用率が高くなり、GPUの処理速度が低下する。コンピュータ1に処理能力を最大限に発揮させるために、良品学習モデル171に対する処理可能な小片画像の最大枚数を決定する必要がある。
ハードウェア構成は、GPU(プロセッサ)、メモリ、ハードディスク等のスペックである。なお、本実施形態では、GPUの例を説明したが、CPU、MPU等にも同様に適用される。良品学習モデル171のハイパーパラメータは、Depth(モデルの階層数)、Channel数(チャンネル数)、Epoch(学習させる回数)等を含む。
図20は、実施形態4のコンピュータ1の構成例を示すブロック図である。なお、図16と重複する内容については同一の符号を付して説明を省略する。大容量記憶部17には、画像枚数DB174が記憶されている。画像枚数DB174は、コンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ及び小片画像のサイズに基づいて、良品学習モデル171に同時入力する画像の最大枚数を記憶している。
なお、画像枚数DB174に記憶された小片画像の最大枚数については、例えばGPUの負荷テストを通じて決定されても良い。
図21は、画像枚数DB174のレコードレイアウトの一例を示す説明図である。画像枚数DB174は、GPU列、ハイパーパラメータ列、画像サイズ及び画像枚数列を含む。GPU列は、CUDA(Compute Unified Device Architecture)コア数列、コアブロック列、メモリ量列及びメモリブロック列を含む。CUDAコア数列は、GPUのCUDAコア数を記憶している。コアブロック列は、GPUのコアブロックを記憶している。メモリ量列は、GPUのメモリ容量を記憶している。メモリブロック列は、GPUのメモリブロックを記憶している。
ハイパーパラメータ列は、Depth列、Channel数列及びEpoch列を含む。Depth列は、学習モデルの階層数を記憶している。Channel数列は、学習モデルのチャンネル数を記憶している。Epoch列は、学習させる回数を記憶している。画像サイズ列は、小片画像のサイズ(例えば、50×50ピクセル)を記憶している。画像枚数列は、良品学習モデル171に同時入力する小片画像の最大枚数を記憶している。
図22は、小片画像の最大枚数を取得する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、システム情報取得API(Application Programming Interface)を利用してハードウェア構成を取得する(ステップS11)。例えばGPUのCUDAコア数、コアブロック、メモリ量、メモリブロック等が取得される。制御部11は、学習済みの良品学習モデル171のハイパーパラメータを取得する(ステップS12)。例えばDepth、Channel数、Epoch等が取得される。
制御部11は、小片画像のサイズの入力を入力部14により受け付ける(ステップS13)。制御部11は、取得したコンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ、及び受け付けた小片画像のサイズに基づき、大容量記憶部17の画像枚数DB174を照合して、小片画像の最大枚数を取得する(ステップS14)。制御部11は、検査対象物を含む画像を通信部13により撮像装置2から取得する(ステップS15)。制御部11は実施形態2での小片画像分割処理と同様に、取得した小片画像の最大枚数に基づき、取得した検査対象物の画像を相互にオーバーラップする複数の小片画像に分割する(ステップS16)。その後、実施形態2と同様に、制御部11は分割した複数の小片画像に基づいて検査対象物の異常を検出する。
なお、図22では、コンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ、及び小片画像のサイズに応じて、良品学習モデル171に同時入力する小片画像の最大枚数を決定する処理の例を説明したが、これに限るものではない。ハードウェア構成、ハイパーパラメータまたは小片画像のサイズの少なくとも1つに応じて、小片画像の最大枚数を決定しても良い。
なお、小片画像の最大枚数の決定処理に関しては、上述した処理に限るものではない。例えば、ハードウェア構成、ハイパーパラメータまたは小片画像のサイズに基づいて作成した数式(アルゴリズム)を用いて、小片画像の最大枚数を求めても良い。
本実施形態によると、コンピュータ1のハードウェア構成、良品学習モデル171のハイパーパラメータ、または小片画像のサイズの少なくとも1つに応じて、良品学習モデル171に同時入力する小片画像の最大枚数を決定することが可能となる。
本実施形態によると、小片画像の最大枚数に基づいて学習または運用処理を行った場合、コンピュータ1が処理能力を最大限に発揮することが可能となる。
(実施形態5)
実施形態5は、教師あり学習により生成する異常検出モデル173(第2学習モデル)を用いて検査対象物の異常の有無を検出する形態に関する。なお、実施形態1〜4と重複する内容については説明を省略する。
なお、本実施形態のコンピュータの構成に関しては、実施形態3のコンピュータの構成と同様であるため、説明を省略する。
本実施形態での異常検出モデル173は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。異常検出モデル173は、検査対象物を含む画像が入力された場合に、異常が写っていると推定する領域と、その領域に異常が写っている確信度(確率)とを示す情報を出力する学習モデルである。検査対象物の異常は、検査対象物の傷、汚れ、異物等の外観上の欠陥等であり、例えば「打痕」、「汚れ」または「傷」等である。
図23は、異常検出モデル173を用いて検査対象物の異常を検出する処理の概要を説明する説明図である。本実施の形態の異常検出モデル173は、RCNNを用いて推定を行う。異常検出モデル173は、領域候補抽出部73aと、分類部73bとを含む。異常検出モデル173に、検査対象物を含む画像が入力される。領域候補抽出部73aは、画像から様々なサイズの領域候補を抽出する。
分類部73bは、図示を省略するニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。分類部73bは、領域候補抽出部73aから抽出された各画素の画素値を畳み込むコンボリューション層と、コンボリューション層で畳み込んだ画素値をマッピングするプーリング層とが交互に連結された構成により、領域候補の画素情報を圧縮しながら最終的に領域候補の特徴量を抽出する。分類部73bは、バックプロパゲーションによりパラメータが学習された全結合層により、抽出した領域候補の特徴量に基づいて領域候補に映っている被写体が異常であるか否かを分類する。
異常検出モデル173は、領域候補の抽出と分類とを繰り返すことにより、検査対象物の異常の有無を示す情報を出力する。
コンピュータ1は、検査対象物を含む画像と、該画像に対応する検査対象物の異常の有無を示す情報とが対応付けられた訓練データの組み合わせを用いて学習を行う。訓練データは、画像に対し、該画像に対応する異常箇所を示す情報がラベル付けされたデータである。ラベルは、例えば「打痕」、「汚れ」または「傷」等である。
学習の際には、異常情報を格納するデータベースに存在する大量の過去の異常検出データを訓練データとして利用しても良く、または、実施形態1での異常検出結果により判断された見落とし画像を用いて作成された訓練データを利用しても良い。見落とし画像は、実施形態1の異常検出処理で良品学習モデル171に基づいて画像から検査対象物の異常が検出されていないが、検査員の検査(例えば、目視検査)により該検査対象物の異常を検出した画像である。コンピュータ1は、取得した見落とし画像と、検査員から入力された該見落とし画像に対応する検査対象物の異常有りを示す情報とを訓練データとして、異常検出モデル173の学習を行う。
具体的には、コンピュータ1は、良品学習モデル171に基づいて検査対象物の異常を検出していない見落とし画像を取得する。コンピュータ1は、取得した見落とし画像に対し、該見落とし画像に対応する検査対象物の異常有りを示す情報(例えば、「打痕」、「汚れ」または「傷」等の異常ラベル)を設定する設定入力を受け付ける。コンピュータ1は、取得した見落とし画像と、受け付けた該見落とし画像に対応する検査対象物の異常有りを示す情報とが対応付けられた訓練データを作成する。見落とし画像を訓練データとすることにより、本システムを継続するほど異常検出モデル173がアップデートされ、より正確な異常検出を行うことができるようになる。
コンピュータ1は、訓練データである画像を領域候補抽出部73aに入力し、分類部73bでの演算処理を経て、該画像に対応する検査対象物の異常の有無を示す情報を取得する。コンピュータ1は、分類部73bから出力された検査対象物の異常の有無を示す情報を、訓練データにおいて画像に対しラベル付けされた情報、すなわち正解値と比較し、分類部73bからの出力値が正解値に近づくように、分類部73b(コンボリューション層、プーリング層および全結合層)での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み(結合係数)、各ニューロンで用いられる活性化関数の係数などである。パラメータの最適化の方法は特に限定されないが、例えばコンピュータ1は誤差逆伝播法を用いて各種パラメータの最適化を行う。
コンピュータ1は、訓練データに含まれる各画像について上記の処理を行い、異常検出モデル173を生成する。コンピュータ1は、生成した異常検出モデル173を学習モデル管理DB172に記憶する。学習モデル管理DB172にこれにより、例えばコンピュータ1は当該訓練データを用いて異常検出モデル173の学習を行うことで、画像に対応する検査対象物の異常の有無を示す情報を出力可能なモデルを構築することができる。コンピュータ1は画像を取得した場合、異常検出モデル173を用いて該画像に対応する検査対象物の異常の有無を示す情報を出力する。
異常検出モデル173は、所定の閾値よりも高い確信度で異常が写っていると分類された領域候補について、領域の範囲、および、異常が写っている確信度を出力する。図23に示す例では、所定の打痕異常の閾値(例えば、0.80)よりも高い0.87の確信度で打痕異常が写っている領域と、所定の汚れ異常の閾値(例えば、0.85)よりも高い0.92の確信度で汚れ異常が写っている領域とが検出されている。
なお、RCNNの代わりに、CNN、Fast RCNN、Faster RCNNまたはSSD、YOLO等の、任意の物体検出アルゴリズムを使用しても良い。その他、U−Net等のセグメンテーションネットワークを用いても良い。
図24は、検証モードで検査対象物の異常を検出する画面の一例を示す説明図である。該画面は、AIモデル選択ボタン16a、検証画像フォルダ選択ボタン16b、ラベル名選択コンボボックス16c、確信度閾値入力欄16d、更新ボタン16e、確信度表示欄16f、保存フォルダ選択ボタン16g、検証ボタン16h、異常種類タブ16i及び検出結果表示欄16jを含む。
AIモデル選択ボタン16aは、学習済みの異常検出モデル173ファイルの選択を受け付けるボタンである。検証画像フォルダ選択ボタン16bは、検査対象物を含む画像を記憶した画像フォルダを選択するボタンである。ラベル名選択コンボボックス16cは、画像に対しラベル付けされたラベルの名称の選択を受け付けるコンボボックスである。確信度閾値入力欄16dは、各種の異常の確信度の閾値の入力を受け付けるテキストフィールドである。更新ボタン16eは、各種の異常の確信度の閾値を更新するボタンである。
確信度表示欄16fは、設定された各種の異常の確信度の閾値を表示する表示欄である。保存フォルダ選択ボタン16gは、検証結果を保存するフォルダを選択するボタンである。検証ボタン16hは、検査対象物を含む画像を検証するボタンである。異常種類タブ16iは、異常の種類(例えば、打痕、汚れまたは傷)または異常検出なしを切り替えるためのタブである。図示のように、異常種類タブ16iは、「打痕」タブ、「汚れ」タブ、「傷」タブ及び「検出なし」タブを含む。検出結果表示欄16jは、検査対象物の異常の有無を検出する検出結果を表示する表示欄である。
コンピュータ1は、AIモデル選択ボタン16aのタッチ操作を受け付けた場合、学習済みの異常検出モデル173のファイルを学習モデル管理DB172から取得する。例えばコンピュータ1は、取得した学習済みの異常検出モデル173(複数可)をリストボックス(図示せず)に表示する。コンピュータ1は、ユーザによる異常検出モデル173の選択を受け付ける。コンピュータ1は、検証画像フォルダ選択ボタン16bのタッチ操作を受け付けた場合、検証画像を記憶した画像フォルダの選択を受け付ける。
コンピュータ1は、ラベル名選択コンボボックス16cの選択操作を受け付けた場合、該当する異常のラベル名の選択を受け付ける。コンピュータ1は、確信度閾値入力欄16dの入力操作を受け付けた場合、ラベル名選択コンボボックス16cにより選択された異常のラベル名に対応する確信度の閾値の入力を受け付ける。コンピュータ1は、更新ボタン16eのタッチ操作を受け付けた場合、確信度閾値入力欄16dにより入力された異常の確信度の閾値を、ラベル名選択コンボボックス16cにより選択された異常のラベル名に対応付けて更新する。コンピュータ1は、更新した各種の異常の確信度の閾値を記憶部12または大容量記憶部17に記憶し、記憶した各種の異常の確信度の閾値を確信度表示欄16fに表示する。
コンピュータ1は、保存フォルダ選択ボタン16gのタッチ操作を受け付けた場合、検証結果を記憶するフォルダの選択を受け付ける。コンピュータ1は、検証ボタン16hのタッチ操作を受け付けた場合、各種の異常の確信度の閾値に基づいて検査対象物の異常の有無を検出する。具体的には、コンピュータ1は、検証画像フォルダ選択ボタン16bにより選択された画像を、AIモデル選択ボタン16aにより選択された異常検出モデル173に入力し、設定された各種の異常の確信度の閾値よりも高い確信度で異常が写っていると分類された領域候補について、領域の範囲、および、異常が写っている確信度を出力させる。
コンピュータ1は、検出した異常画像を、保存フォルダ選択ボタン16gにより選択されたフォルダに記憶する。コンピュータ1は、異常種類タブ16iに示されている分類情報(例えば、打痕、汚れ、傷及び検出なし)に基づき、単一または複数の画像に対して分類する。コンピュータ1は、分類した各画像の検出結果を、該当する異常種類タブ16iに対応する検出結果表示欄16jに表示する。
具体的には、コンピュータ1は、検査対象物の異常を検出した画像に対し、それぞれの画像と合わせて、異常が写っている領域の範囲(座標)、異常の種類及び確信度等を、異常種類に応じて該当する異常種類タブ16i(「打痕」タブ、「汚れ」タブまたは「傷」タブ)に対応する検出結果表示欄16jに表示する。コンピュータ1は、検査対象物の異常を検出していない画像に対し、「検出なし」タブである異常種類タブ16iに対応する検出結果表示欄16jに、それぞれの画像と合わせて、異常を検出していない検出結果を表示する。
図25は、運用モードで検査対象物の異常を検出する画面の一例を示す説明図である。なお、図24と重複する内容については同一の符号を付して説明を省略する。該画面は、監視方法選択ラジオボタン17a、監視フォルダ選択ボタン17b、カメラ選択コンボボックス17c、解像度選択コンボボックス17d、ログファイル選択ボタン17e及び運用ボタン17fを含む。
監視方法選択ラジオボタン17aは、「フォルダ監視」または「カメラ監視」を選択するラジオボタンである。監視フォルダ選択ボタン17bは、運用の画像を記憶したフォルダを選択するボタンである。コンピュータ1は、監視フォルダ選択ボタン17bのタッチ操作を受け付けた場合、運用の画像を記憶したフォルダの選択を受け付ける。
カメラ選択コンボボックス17cは、接続された監視用の撮像装置2を選択するコンボボックスである。解像度選択コンボボックス17dは、選択された監視用の撮像装置2の解像度度の選択を受け付けるコンボボックスである。コンピュータ1は、カメラ選択コンボボックス17cの選択操作を受け付けた場合、監視用の撮像装置2の選択を受け付ける。コンピュータ1は、解像度選択コンボボックス17dの選択操作を受け付けた場合、カメラ選択コンボボックス17cにより選択された監視用の撮像装置2に対応する解像度の選択を受け付ける。
ログファイル選択ボタン17eは、検査対象物の異常を検出したログデータを記憶するためのログファイルを選択するボタンである。コンピュータ1は、ログファイル選択ボタン17eのタッチ操作を受け付けた場合、ログファイルの選択を受け付ける。
運用ボタン17fは、検査対象物の異常の有無を検出するボタンである。コンピュータ1は、運用ボタン17fのタッチ操作を受け付けた場合、運用の画像を取得する。具体的には、コンピュータ1は、監視方法選択ラジオボタン17aにより選択された監視方法が「フォルダ監視」である場合、監視フォルダ選択ボタン17bにより選択された監視対象フォルダに記憶された運用の画像を取得する。コンピュータ1は、監視方法選択ラジオボタン17aにより選択された監視方法が「カメラ監視」である場合、カメラ選択コンボボックス17cにより選択された監視用の撮像装置2によりリアルタイムで撮像した動画を取得する。
コンピュータ1は、取得した運用の画像を、AIモデル選択ボタン16aにより選択された学習済みの異常検出モデル173に入力し、該運用の画像に対応する検査対象物の異常の有無を示す情報を出力させる。コンピュータ1は、運用の画像と合わせて、異常検出モデル173から出力された検査対象物の異常の有無を示す情報を検出結果表示欄16jに表示する。
図26は、異常検出モデル173を用いて検査対象物の異常を検出する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、検査対象物を含む画像を通信部13または入力部14により取得する(ステップS21)。制御部11は、各種の異常の確信度の閾値の設定を入力部14により受け付ける(ステップS22)。なお、予め設定された異常の確信度の閾値が記憶部12または大容量記憶部17に記憶されている場合、制御部11は、各種の異常の確信度の閾値を記憶部12または大容量記憶部17から取得する。
制御部11は、受け付けた各種の異常の確信度の閾値に基づき、取得した画像を異常検出モデル173に入力して該画像に対応する検査対象物の異常の有無を示す情報を検出結果として出力する(ステップS23)。制御部11は、該画像及び検出結果を表示部15により表示し(ステップS24)、処理を終了する。
本実施形態によると、教師あり学習により生成する異常検出モデル173を用いて検査対象物の異常を検出することが可能となる。
本実施形態によると、各種の異常の確信度の閾値を設定することにより、検査対象物に対して各種の異常の検出精度を調整することが可能となる。
(実施形態6)
実施形態6は、良品学習モデル171(第1学習モデル)と異常検出モデル173(第2学習モデル)とを併用して検査対象物の異常を検出する形態に関する。なお、実施形態1〜5と重複する内容については説明を省略する。
コンピュータ1は、検査対象物を含む画像を取得する。先ず、コンピュータ1は、良品学習モデル171に基づいて該画像に対応する検査対象物の異常の有無を示す第1検出結果を検出する。具体的には、コンピュータ1は、画像を検証するための異常度の閾値及び面積閾値の設定を受け付ける。コンピュータ1は、検査対象物の領域に基づいて作成されたテンプレート画像と、取得した画像との一致度の閾値の設定を受け付ける。
コンピュータ1は、例えばSSD、SADまたはNCC等のテンプレートマッチング手法を用いて、テンプレート画像と取得した画像との一致度を算出する。コンピュータ1は、算出した一致度が、受け付けた一致度の閾値を超えたか否かを判定する。コンピュータ1は、算出した一致度が一致度の閾値を超えたと判定した場合、後述する異常検出処理を実行する。なお、一致度の判定処理は必須ではない。コンピュータ1は、上述した一致度の判定処理を実行せず、取得したすべての画像に対して異常検出処理を実行しても良い。
コンピュータ1は、取得した画像を学習済みの良品学習モデル171に入力して該画像に対応する再構成画像を出力する。コンピュータ1は、取得した画像と、良品学習モデル171が出力した再構成画像との各ピクセルの異常度を算出する。なお、異常度の算出処理に関しては、実施形態1と同様であるため、説明を省略する。コンピュータ1は、算出した各ピクセルの異常度が、受け付けた異常度の閾値(例えば、50)を超えたか否かを判定する。
コンピュータ1は、算出した各ピクセルの異常度が閾値を超えた該画像の領域のうち、異常度が異常度の閾値を超えたピクセル数を集計する。コンピュータ1は、集計したピクセル数(領域の面積)が、受け付けた面積閾値(例えば、30ピクセル)を超えたか否かを判定する。コンピュータ1は、該領域の面積が面積閾値を超えたと判定した場合、異常として検出する。
コンピュータ1は、上述した処理を実行することにより、検査対象物の異常の有無を示す第1検出結果を検出する。第1検出結果には異常が写っている領域の範囲等が含まれる。
次に、コンピュータ1は、学習済みの異常検出モデル173を用いて検査対象物の異常の有無を示す第2検出結果を検出する。具体的には、コンピュータ1は、実施形態5で学習させた異常検出モデル173に、取得した画像を入力して該画像に対応する検査対象物の異常の有無を示す第2検出結果を検出する。第2検出結果には、異常が写っていると分類された領域候補の範囲、異常が写っている確信度及び種類等が含まれる。
コンピュータ1は、第1検出結果から異常を検出したと判定した場合、画像の各ピクセルの異常度に基づいて、該画像の異常度マップを生成する。コンピュータ1は、検出した第1検出結果及び第2検出結果を、生成した該画像の異常度マップと共に表示する。コンピュータ1は、第1検出結果から異常を検出していないと判定した場合、検出した第1検出結果及び第2検出結果を該画像と共に表示する。
図27は、良品学習モデル171と異常検出モデル173とを併用して検査対象物の異常を検出する検証モード画面の一例を示す説明図である。該検証モード画面は、良品学習モデル設定入力欄18a、異常検出モデル設定入力欄18b、良品フォルダ選択ボタン18c、不良品フォルダ選択ボタン18d、保存フォルダ選択ボタン18e、検証ボタン18f、分類タブ18g及び検証結果表示欄18hを含む。
良品学習モデル設定入力欄18aは、学習済みの良品学習モデル171ファイルの選択、異常度の閾値及び面積閾値の入力を受け付ける設定入力欄である。異常検出モデル設定入力欄18bは、学習済みの異常検出モデル173ファイルの選択、及び各種の異常の確信度の閾値の入力を受け付ける設定入力欄である。良品フォルダ選択ボタン18cは、検査対象物を含む良品画像を記憶したフォルダを選択するボタンである。不良品フォルダ選択ボタン18dは、検査対象物を含む不良品画像を記憶したフォルダを選択するボタンである。保存フォルダ選択ボタン18eは、検証結果を保存するフォルダを選択するボタンである。検証ボタン18fは、画像を検証するボタンである。
分類タブ18gは、第1検出結果と第2検出結果との対比関係からなる分類情報を切り替えるためのタブである。図示のように、分類情報は、「良品-良品判定」、「良品-不良品判定」、「不良品-良品判定」及び「不良品-不良品判定」を含む。「良品-良品判定」分類は、第1検出結果と第2検出結果の両方が良品(異常なし)である。「良品-不良品判定」分類は、第1検出結果が良品であり、且つ、第2検出結果が不良品(異常有り)である。「不良品-良品判定」分類は、第1検出結果が不良品であり、且つ、第2検出結果が良品である。「不良品-不良品判定」分類は、第1検出結果と第2検出結果の両方が不良品である。検証結果表示欄18hは、第1検出結果及び第2検出結果を表示する表示欄である。
コンピュータ1は、良品学習モデル設定入力欄18aの設定操作を受け付けた場合、学習済みの良品学習モデル171ファイルの選択、異常度の閾値及び面積閾値の入力を受け付ける。コンピュータ1は、異常検出モデル設定入力欄18bの設定操作を受け付けた場合、学習済みの異常検出モデル173ファイルの選択、及び各種の異常の確信度の閾値の入力を受け付ける。
コンピュータ1は、良品フォルダ選択ボタン18cのタッチ操作を受け付けた場合、良品と判断された良品画像を記憶したフォルダの選択を受け付ける。コンピュータ1は、不良品フォルダ選択ボタン18dのタッチ操作を受け付けた場合、不良品と判断された不良品画像を記憶したフォルダの選択を受け付ける。なお、良品画像及び不良品画像は、別々のフォルダに記憶されているが、これに限らず、同一のフォルダに記憶されても良い。コンピュータ1は、保存フォルダ選択ボタン18eのタッチ操作を受け付けた場合、検証結果を記憶するフォルダの選択を受け付ける。
コンピュータ1は、検証ボタン18fのタッチ操作を受け付けた場合、良品フォルダ選択ボタン18cにより選択されたフォルダに記憶された良品画像、及び不良品フォルダ選択ボタン18dにより選択されたフォルダに記憶された不良品画像を取得する。コンピュータ1は、良品学習モデル設定入力欄18aにより選択された学習済みの良品学習モデル171に、取得した良品画像及び不良品画像を含む検査用の画像を入力して各検査用の画像に対応する再構成画像を出力する。
コンピュータ1は、それぞれの検査用の画像と、良品学習モデル171が出力したそれぞれの検査用の画像に対応する再構成画像との異常度を算出する。コンピュータ1は、算出した異常度に基づき、それぞれの検査用の画像に対応する検査対象物の異常の有無を示す第1検出結果を検出する。
コンピュータ1は、異常検出モデル設定入力欄18bにより選択された異常検出モデル173に、それぞれの検査用の画像を入力してそれぞれの検査用の画像に対応する検査対象物の異常の有無を示す第2検出結果を検出する。コンピュータ1は、保存フォルダ選択ボタン18eにより選択されたフォルダに、検出した第1検出結果及び第2検出結果を記憶する。コンピュータ1は、「良品-良品判定」、「良品-不良品判定」、「不良品-良品判定」及び「不良品-不良品判定」を含む分類情報に基づき、第1検出結果及び第2検出結果に応じて複数の検査用の画像を分類する。
「良品-良品判定」に分類された検査用の画像に対し、コンピュータ1は、「良品-良品判定」である分類タブ18gに対応する検証結果表示欄18hに各検査用の画像を表示する。「不良品-良品判定」に分類された検査用の画像に対し、コンピュータ1は、それぞれの検査用の画像の各ピクセルの異常度に基づいて、それぞれの検査用の画像の異常度マップを生成する。コンピュータ1は、「不良品-良品判定」である分類タブ18gに対応する検証結果表示欄18hに、それぞれの検査用の画像の異常度マップと合わせて、それぞれの検査用の画像に対応する異常箇所を示す第1検出結果をアンカーボックスで表示する。
「良品-不良品判定」に分類された検査用の画像に対し、コンピュータ1は、「良品-不良品判定」である分類タブ18gに対応する検証結果表示欄18hに、それぞれの検査用の画像と合わせて、それぞれの検査用の画像に対応する異常箇所を示す第2検出結果を異常の種類に対応した色分けにより表示する。例えば、「打痕」異常が検出された場合、「打痕」の確信度等を含む第2検出結果を「打痕」の箇所に黄色のアンカーボックスで画像と重ねて表示しても良い。または、「汚れ」異常が検出された場合、「汚れ」の確信度等を含む第2検出結果を「汚れ」の箇所に青のアンカーボックスで画像と重ねて表示しても良い。
「不良品-不良品判定」に分類された検査用の画像に対し、コンピュータ1は、それぞれの検査用の画像の各ピクセルの異常度に基づいて、それぞれの検査用の画像の異常度マップを生成する。コンピュータ1は、「不良品-不良品判定」である分類タブ18gに対応する検証結果表示欄18hに、生成したそれぞれの検査用の画像の異常度マップと合わせて、それぞれの検査用の画像に対応する異常箇所を示す第1検出結果及び第2検出結果を異常の種類に対応した色分けにより表示する。例えばコンピュータ1は、検査用の画像に対応する異常箇所を示す第1検出結果(例えば、未知不良)を赤のアンカーボックスで異常度マップと重ねて表示しても良い。または、コンピュータ1は、検査用の画像に対応する異常箇所を示す第2検出結果(例えば、打痕異常の確信度)を黄色のアンカーボックスで異常度マップと重ねて表示しても良い。
図28は、良品学習モデル171と異常検出モデル173とを併用して検査対象物の異常を検出する運用モード画面の一例を示す説明図である。なお、図25及び図27と重複する内容については同一の符号を付して説明を省略する。該運用モード画面は、良品学習モデル設定入力欄19a及び運用ボタン19bを含む。
良品学習モデル設定入力欄19aは、学習済みの良品学習モデル171ファイルの選択、検査対象物の領域に基づいて作成されたテンプレート画像と運用の画像との一致度の閾値、異常度の閾値及び面積閾値の入力を受け付ける設定入力欄である。コンピュータ1は、良品学習モデル設定入力欄19aの設定操作を受け付けた場合、学習済みの良品学習モデル171ファイルの選択、一致度の閾値、異常度の閾値及び面積閾値の入力を受け付ける。
運用ボタン19bは、検査対象物の異常の有無を検出するボタンである。コンピュータ1は、運用ボタン19bのタッチ操作を受け付けた場合、検査対象物を含む運用の画像を取得する。具体的には、コンピュータ1は、監視方法選択ラジオボタン17aにより選択された監視方法が「フォルダ監視」である場合、監視フォルダ選択ボタン17bにより選択された監視対象フォルダに記憶された運用の画像を取得する。コンピュータ1は、監視方法選択ラジオボタン17aにより選択された監視方法が「カメラ監視」である場合、カメラ選択コンボボックス17cにより選択された監視用の撮像装置2によりリアルタイムで撮像した動画を取得する。
コンピュータ1は、良品学習モデル設定入力欄19aにより選択された学習済みの良品学習モデル171に、取得した運用の画像を入力して該運用の画像に対応する再構成画像を出力する。コンピュータ1は、取得した運用の画像と、良品学習モデル171が出力した該運用の画像に対応する再構成画像との異常度を算出する。コンピュータ1は、算出した異常度に基づいて検査対象物の異常の有無を示す第1検出結果を検出する。コンピュータ1は、異常検出モデル設定入力欄18bにより選択された異常検出モデル173に、取得した運用の画像を入力して該運用の画像に対応する検査対象物の異常の有無を示す第2検出結果を検出する。
コンピュータ1は、第1検出結果から検査対象物の異常を検出したと判定した場合、該運用の画像の各ピクセルの異常度に基づいて運用の画像の異常度マップを生成する。コンピュータ1は、生成した運用の画像の異常度マップと合わせて第1検出結果及び第2検出結果を検証結果表示欄18hに表示する。コンピュータ1は、第1検出結果から検査対象物の異常を検出していないと判定した場合、該運用の画像と合わせて第1検出結果及び第2検出結果を検証結果表示欄18hに表示する。
図29及び図30は、良品学習モデル171と異常検出モデル173とを併用して検査対象物の異常を検出する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、検査対象物を含む画像を取得する(ステップS31)。例えば、検査対象物を含む画像が記憶部12または大容量記憶部17に記憶されている場合、制御部11は記憶部12または大容量記憶部17から画像を取得する。
制御部11は、画像を検証するための異常度の閾値及び面積閾値の設定を入力部14により受け付ける(ステップS32)。制御部11は、各種の異常の確信度の閾値の設定を入力部14により受け付ける(ステップS33)。制御部11は、検査対象物の領域に基づいて作成されたテンプレート画像と、取得した画像との一致度の閾値の設定を入力部14により受け付ける(ステップS34)。
制御部11は、SSD等のテンプレートマッチング手法を用いて、テンプレート画像と取得した画像との一致度を算出する(ステップS35)。制御部11は、算出した一致度が、受け付けた一致度の閾値を超えたか否かを判定する(ステップS36)。制御部11は、算出した一致度が一致度の閾値を超えていないと判定した場合(ステップS36でNO)、ステップS31の処理に戻る。制御部11は、算出した一致度が一致度の閾値を超えたと判定した場合(ステップS36でYES)、取得した画像を学習済みの良品学習モデル171に入力して該画像に対応する再構成画像を出力する(ステップS37)。
制御部11は、取得した画像と、良品学習モデル171が出力した再構成画像との各ピクセルの異常度を算出する(ステップS38)。制御部11は、算出した各ピクセルの異常度が異常度の閾値(例えば、50)を超えた該画像の領域のうち、異常度が閾値を超えたピクセル数を集計する(ステップS39)。制御部11は、集計したピクセル数(領域の面積)が、受け付けた面積閾値(例えば、30ピクセル)を超えたか否かを判定する(ステップS40)。
制御部11は、該領域の面積が面積閾値を超えたと判定した場合(ステップS40でYES)、異常ありと判定し(ステップS41)、後述するステップS43の処理に遷移する。制御部11は、該領域の面積が面積の閾値を超えていないと判定した場合(ステップS40でNO)、異常なしと判定する(ステップS42)。制御部11は、異常の判定結果に基づいて第1検出結果を検出する(ステップS43)。第1検出結果には、異常が写っている領域の範囲等が含まれている。
制御部11は、ステップS31の処理で取得した画像を異常検出モデル173に入力する(ステップS44)。制御部11は、受け付けた各種の異常の確信度の閾値に基づき、学習済みの異常検出モデル173を用いて検査対象物の異常の有無を示す第2検出結果を検出する(ステップS45)。第2検出結果には、異常が写っていると分類された領域候補の範囲、および、異常が写っている確信度等が含まれている。
制御部11は、検出した第1検出結果から検査対象物の異常を検出したか否かを判定する(ステップS46)。制御部11は、第1検出結果から異常を検出したと判定した場合(ステップS46でYES)、画像の各ピクセルの異常度に基づいて該画像の異常度マップを生成する(ステップS47)。制御部11は、生成した画像の異常度マップと、検出した第1検出結果及び第2検出結果とを表示部15により表示し(ステップS48)、処理を終了する。制御部11は、第1検出結果から異常を検出していないと判定した場合(ステップS46でNO)、該画像と、検出した第1検出結果及び第2検出結果とを表示部15により表示し(ステップS49)、処理を終了する。なお、第1検出結果から異常が検出されていない場合、制御部11は、画像の異常度マップと、検出した第1検出結果及び第2検出結果とを表示しても良い。
図31は、検査対象物を含む画像を検証する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、検査対象物を含む複数の画像を記憶部12または大容量記憶部17から取得する(ステップS61)。制御部11は入力部14を介して、学習済みの良品学習モデル171の選択を受け付ける(ステップS62)。具体的には、制御部11は、AIモデルファイル選択ボタンのタッチ操作を受け付けた場合、学習済みの良品学習モデル171のファイルを大容量記憶部17の学習モデル管理DB172から取得する。制御部11は、取得した学習済みの良品学習モデル171を表示する。制御部11は、ユーザによる良品学習モデル171の選択を受け付ける。制御部11は入力部14を介して、異常検出モデル173の選択を受け付ける(ステップS63)。
制御部11は、選択された良品学習モデル171に基づき、取得したそれぞれの画像に対応する検査対象物の異常の有無を示す第1検出結果を検出する(ステップS64)。制御部11は、選択された異常検出モデル173に基づき、取得したそれぞれの画像に対応する検査対象物の異常の有無を示す第2検出結果を検出する(ステップS65)。なお、第1検出結果及び第2検出結果の検出処理に関しては、上述した処理と同様であるため、説明を省略する。
制御部11は、「良品-良品判定」、「良品-不良品判定」、「不良品-良品判定」及び「不良品-不良品判定」を含む分類情報に基づき、第1検出結果及び第2検出結果に応じて複数の画像を分類する(ステップS66)。制御部11は、分類情報に基づいて作成された分類タブ(例えば、「良品-良品判定」タブ、「良品-不良品判定」タブ、「不良品-良品判定」タブまたは「不良品-不良品判定」タブ)の選択を入力部14により受け付ける(ステップS67)。なお、ユーザによる分類タブの選択に限るものではない。例えば「良品-不良品判定」タブをディフォルトタブとして設定しても良い。
制御部11は、選択された分類タブに応じて、分類した画像から該当する単一または複数の画像を取得する(ステップS68)。制御部11は、選択された分類タブが「不良品−良品判定」または「不良品−不良品判定」であるか否かを判定する(ステップS69)。制御部11は、選択された分類タブが「不良品−良品判定」または「不良品−不良品判定」であると判定した場合(ステップS69でYES)、該分類に応じて取得したそれぞれの画像の各ピクセルの異常度に基づいて、それぞれの画像の異常度マップを生成する(ステップS70)。
制御部11は、選択された分類タブが「不良品−不良品判定」であるか否かを判定する(ステップS71)。制御部11は、分類タブが「不良品−不良品判定」であると判定した場合(ステップS71でYES)、「不良品-不良品判定」分類に対応するそれぞれの画像の異常度マップと、検出した第1検出結果及び第2検出結果とを表示部15により表示し(ステップS72)、処理を終了する。制御部11は、分類タブが「不良品−不良品判定」でないと判定した場合(ステップS71でNO)、「不良品-良品判定」分類に対応するそれぞれの画像の異常度マップと、検出した第1検出結果とを表示部15により表示し(ステップS73)、処理を終了する。
制御部11は、選択された分類タブが「不良品−良品判定」または「不良品−不良品判定」以外であると判定した場合(ステップS69でNO)、選択された分類タブが「良品−不良品判定」であるか否かを判定する(ステップS74)。制御部11は、選択された分類タブが「良品−不良品判定」であると判定した場合(ステップS74でYES)、「良品-不良品判定」分類に対応するそれぞれの画像と、検出した第2検出結果とを表示部15により表示し(ステップS75)、処理を終了する。制御部11は、選択された分類タブが「良品−不良品判定」でないと判定した場合(ステップS74でNO)、「良品-良品判定」分類に対応するそれぞれの画像を表示部15により表示し(ステップS76)、処理を終了する。
図32は、見落とし画像を用いて異常検出モデル173を学習させる際の処理手順を示すフローチャートである。見落とし画像は、良品学習モデル171に基づいて画像から検査対象物の異常が検出されていないが、検査員の検査(例えば、目視検査)により該検査対象物の異常を検出した画像である。
コンピュータ1の制御部11は、検証対象となる複数の画像を記憶部12または大容量記憶部17から取得する(ステップS81)。制御部11は、良品学習モデル171に基づいて、取得したそれぞれの画像に対応する検査対象物の異常の有無を示す第1検出結果を検出する(ステップS82)。制御部11は、検証対象となる複数の画像から一つの画像を取得する(ステップS83)。
制御部11は、取得した画像に対応する第1検出結果から異常を検出したか否かを判定する(ステップS84)。制御部11は、異常を検出したと判定した場合(ステップS84でYES)、ステップS83の処理に戻り、次の画像を取得する。制御部11は、異常を検出していないと判定した場合(ステップS84でNO)、検査員により該画像が見落とし画像であるか否かの判断結果の入力を入力部14により受け付ける(ステップS85)。なお、検査員が該画像に対して記憶部12または大容量記憶部17(フォルダ)に手動で振り分けても良い。
制御部11は、検査員から入力された判断結果に基づき、該画像が見落とし画像であるか否かを判定する(ステップS86)。制御部11は、該画像が見落とし画像でないと判定した場合(ステップS86でNO)、ステップS83の処理に戻る。制御部11は、該画像が見落とし画像であると判定した場合(ステップS86でYES)、検査員により該見落とし画像に対応する検査対象物の異常有りを示す情報の入力を入力部14により受け付ける(ステップS87)。異常有りを示す情報は、異常の種類(例えば、打痕、汚れまたは傷)、及び異常が写っている領域の範囲(座標)等を含む。
制御部11は、検証対象となる複数の画像中で該画像が最後であるか否かを判定する(ステップS88)。制御部11は、該画像が最後でないと判定した場合(ステップS88でNO)、ステップS83の処理に戻る。制御部11は、該画像が最後であると判定した場合(ステップS88でYES)、該画像と、受け付けた該画像に対応する検査対象物の異常有りを示す情報とが対応付けられた訓練データを作成する(ステップS89)。
制御部11は、作成した訓練データを用いて異常検出モデル173を学習(再学習)させる(ステップS90)。なお、異常検出モデル173の学習処理に関しては、実施形態5での異常検出モデル173の学習処理と同様であるため、説明を省略する。制御部11は、学習させた異常検出モデル173を用いて大容量記憶部17の学習モデル管理DB172を更新し(ステップS91)、処理を終了する。
なお、見落とし画像を用いて異常検出モデル173を学習させる処理のほか、過検出画像を用いて異常検出モデル173を学習させることができる。過検出画像は、実施形態1の異常検出処理で良品学習モデル171に基づいて画像から検査対象物の異常が検出されたが、検査員の検査(例えば、目視検査)により該検査対象物の異常を検出していない画像である。コンピュータ1は、取得した過検出画像と、検査員から入力された過検出画像に対応する検査対象物の正常を示す情報とを訓練データとして、異常検出モデル173の学習を行う。
具体的には、コンピュータ1は、良品学習モデル171に基づいて検査対象物の異常を検出した過検出画像を取得する。コンピュータ1は、取得した過検出画像に対し、該過検出画像に対応する検査対象物の正常を示す情報(例えば、「正常」または「異常なし」等のラベル)を設定する設定入力を受け付ける。コンピュータ1は、取得した過検出画像と、受け付けた該過検出画像に対応する検査対象物の正常を示す情報とが対応付けられた訓練データを作成する。過検出画像を訓練データとすることにより、本システムを継続するほど異常検出モデル173がアップデートされ、より正確な異常検出を行うことができるようになる。
また、上述した処理のほか、異常検出モデル173に基づいて検査対象物の異常を検出した過検出画像を用いて、良品学習モデル171を学習させることができる。具体的には、コンピュータ1は、異常検出モデル173に基づいて異常を検出した過検出画像を取得する。コンピュータ1は、例えばオートエンコーダまたはVAE等を用いて、取得した過検出画像を正常画像として良品学習モデル171を学習させる。なお、良品学習モデル171の学習処理に関しては、実施形態1と同様であるため、説明を省略する。このような学習処理を実行することにより、過検出となった異常箇所を正常とみなすようにして検出精度を高めることが可能となる。
更にまた、コンピュータ1は、異常検出モデル173に基づいて検査対象物の異常の検出処理を実行した後に、良品学習モデル171に基づいて異常の検出処理を実行しても良い。このような処理順序に従い、異常検出モデル173が検出していない異常を、正常画像に基づいて学習させた良品学習モデル171に基づいて検出することが可能となる。
本実施形態によると、良品学習モデル171と異常検出モデル173とを併用して検査対象物の異常の有無を検出することにより、画像検査重要所見の見落としを防ぐことが可能となる。
<変形例1>
図33は、変形例1の検査対象物の異常を検出する検証モード画面の一例を示す説明図である。なお、図27と重複する内容については同一の符号を付して説明を省略する。該検証モード画面は、分類タブ18g、グラフ表示欄18i及び良品・不良品チェックボックス18jを含む。
分類タブ18gは、第1検出結果と第2検出結果との対比関係からなる分類情報を切り替えるためのタブである。図示のように、分類情報は、良品-OK判定、不良品-NG判定、過検出及び未検出を含む。
良品-OK判定は、画像に対応する検査対象物に対し、実際に良品でありOK(正)と判断された分類である。第1検出結果がOKであり、且つ、第2検出結果がOKであると判断された場合、該画像が「良品-OK判定」に分類される。不良品-NG判定は、画像に対応する検査対象物に対し、実際に不良品でありNG(誤)と判断された分類である。第1検出結果または第2検出結果のいずれか一方あるいは両方ともにNGであると判断された場合、該画像が「不良品-NG」に分類される。
過検出は、画像に対応する検査対象物に対し、実際に良品であるがNGと判断された分類である。第1検出結果または第2検出結果のいずれか一方あるいは両方ともにNGであると判断されたが、検査員によりOKと判断された場合、該画像が「過検出」に分類される。未検出は、画像に対応する検査対象物に対し、実際に不良品であるが不良品として検出されていない分類である。第1検出結果と第2検出結果の両方から不良品として検出されていないが、検査員により不良品として判断された場合、該画像が「未検出」に分類される。
グラフ表示欄18iは、良品画像または不良品画像の分布を示すグラフを表示する表示欄である。良品・不良品チェックボックス18jは、集計対象となる良品画像または不良品画像の選択を受け付けるチェックボックスである。
コンピュータ1は、検証ボタン18fのタッチ操作を受け付けた場合、良品フォルダ選択ボタン18cにより選択されたフォルダに記憶された良品画像、及び不良品フォルダ選択ボタン18dにより選択されたフォルダに記憶された不良品画像を取得する。コンピュータ1は、取得した良品画像及び不良品画像を含む検査用の画像に対応する検査対象物の異常の有無を示す第1検出結果及び第2検出結果を検出する。なお、第1検出結果及び第2検出結果の検出処理に関しては、上述した処理と同様であるため、説明を省略する。
コンピュータ1は、良品-OK判定、不良品-NG判定、過検出及び未検出を含む分類情報に基づき、第1検出結果及び第2検出結果に応じて複数の検査用の画像を分類する。コンピュータ1は、それぞれの検査用の画像の各ピクセルの異常度に基づいて、それぞれの検査用の画像の異常度マップを生成する。コンピュータ1は、該当する分類タブ18gに対応する検証結果表示欄18hに、該分類に分類したそれぞれの検査用の画像の異常度マップと合わせて第1検出結果及び第2検出結果を表示する。なお、異常度マップに限定せず、検査用の画像と合わせて第1検出結果及び第2検出結果が表示されても良い。
具体的には、第1検出結果から異常が検出された場合、例えばコンピュータ1は、検査用の画像に対応する異常箇所を示す第1検出結果(例えば、未知不良)を赤のアンカーボックスで異常度マップと重ねて表示しても良い。または、コンピュータ1は、各ピクセルの異常度が閾値を超えた該画像の領域に対して任意の閉曲線(両端が一致している連続曲線)で表示しても良い。
第2検出結果から異常が検出された場合、コンピュータ1は、それぞれの検査用の画像の異常度マップと合わせて、それぞれの検査用の画像に対応する異常箇所を示す第2検出結果を異常の種類に対応した色分けにより表示する。例えば、「打痕」異常が検出された場合、「打痕」の確信度等を含む第2検出結果を「打痕」の箇所に黄色のアンカーボックスで画像と重ねて表示しても良い。または、「汚れ」異常が検出された場合、「汚れ」の確信度等を含む第2検出結果を「汚れ」の箇所に青のアンカーボックスで画像と重ねて表示しても良い。
また、第1検出結果と第2検出結果との対比を示す情報をテキスト形式で表示することができる。例えば、検出結果の正誤を示す「OK」または「NG」ラベルを画像と共に画面に表示しても良い。図示のように、コンピュータ1は、第1検出結果と第2検出結果の両方が誤である場合、第1検出結果を示す「NG」と第2検出結果を示す「NG」とを対比して表示する。コンピュータ1は、第1検出結果が正であり、且つ、第2検出結果が誤である場合、第1検出結果を示す「NG」と第2検出結果を示す「OK」とを対比して表示する。
コンピュータ1は、第1検出結果及び第2検出結果に基づいて良品画像または不良品画像の分布を示すフラフを生成する。グラフは、異常度の分布グラフ及び異常度を超えた面積の分布グラフを含む。異常度の分布グラフは、良品-OK判定、不良品-NG判定、過検出及び未検出を含む分類ごとに、異常度に基づいて良品画像または不良品画像の分布を示すグラフである。面積の分布グラフは、良品-OK判定、不良品-NG判定、過検出及び未検出を含む分類ごとに、異常度を超えた面積に基づいて良品画像または不良品画像の分布を示すグラフである。
図33では、異常度の分布グラフを例示している。コンピュータ1は、異常度の分布の集計対象となる良品画像または不良品画像の選択を良品・不良品チェックボックス18jにより受け付ける。コンピュータ1は、検出した第1検出結果及び第2検出結果に基づき、受け付けた良品画像または不良品画像に対して異常度の分布を示すヒストグラムを生成する。
図示のように、ヒストグラムの横軸は異常度の値(Anomaly Value)を示し、縦軸は画像の枚数(Count)を示す。コンピュータ1は、設定された異常度の閾値(Threshold)に応じて、良品・不良品チェックボックス18jにより受け付けた不良品画像に基づいて、良品-OK判定、不良品-NG判定、過検出及び未検出を含む分類情報に応じて各分類に分類すべき不良品画像の枚数を集計する。コンピュータ1は、分類ごとに集計した不良品画像の枚数に基づいてヒストグラムを生成する。コンピュータ1は、生成したヒストグラムをグラフ表示欄18iに表示する。図示のように、例えば第1検出結果がOKと判定され(異常度の閾値以下)、且つ、第2検出結果がNGと判定された場合、ヒストグラムには右上りのハッチングで示されている。例えば第1検出結果がOKまたはNGと判定され、且つ、第2検出結果がOKと判定された場合、ヒストグラムには右下りのハッチングで示されている。例えば第1検出結果と第2検出結果の両方がOKと判定された場合、ヒストグラムにはハッチングなしで示されている。
なお、図33では異常度の分布グラフを例示しているが、異常度を超えた面積に基づいて良品画像または不良品画像の分布グラフにも適用することができる。この場合、コンピュータ1は、異常度の閾値の代わりに、設定された面積閾値に基づいてヒストグラム生成しても良い。
なお、コンピュータ1は、第1検出結果及び第2検出結果に基づき、過検出率または未検出率を算出して画面に表示しても良い(図示なし)。具体的には、コンピュータ1は、良品画像枚数及び過検出画像枚数それぞれを集計し、集計した良品画像枚数と過検出画像枚数とに基づいて過検出率を算出する。コンピュータ1は、不良品画像枚数及び未検出画像枚数それぞれを集計し、集計した不良品画像枚数と未検出画像枚数とに基づいて未検出率を算出する。コンピュータ1は、算出した過検出率及び未検出率を画面に表示する。
本変形例によると、異なる分類情報(良品-OK判定、不良品-NG判定、過検出及び未検出)に応じて、第1検出結果及び第2検出結果を表示することが可能となる。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。