(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024139648
(43)【公開日】2024-10-09
(54)【発明の名称】検査装置および学習装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20241002BHJP
G06N 3/09 20230101ALI20241002BHJP
G06N 20/00 20190101ALI20241002BHJP
G06N 3/0475 20230101ALN20241002BHJP
【FI】
G06T7/00 610B
G06N3/09
G06N20/00 130
G06T7/00 350B
G06N3/0475
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023107422
(22)【出願日】2023-06-29
(31)【優先権主張番号】P 2023050496
(32)【優先日】2023-03-27
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】301065892
【氏名又は名称】株式会社アドヴィックス
(71)【出願人】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】長谷川 博紀
(72)【発明者】
【氏名】中井 淳一
(72)【発明者】
【氏名】中永 和樹
(72)【発明者】
【氏名】▲高▼田 将典
(72)【発明者】
【氏名】浅野 憲司
(72)【発明者】
【氏名】若松 智之
(72)【発明者】
【氏名】武田 浩一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA03
5L096CA02
5L096DA02
5L096EA03
5L096EA16
5L096GA51
5L096HA08
5L096HA09
5L096HA11
5L096KA04
(57)【要約】
【課題】人工知能が異常と判断した根拠に関する情報の取得。
【解決手段】検査装置(1)は、検査対象(5)の検査用画像を取得する対象画像取得部(101)と、検査対象の画像から検査対象に含まれる異常を示すテキストを生成する機械学習を行った学習済モデルに、対象画像取得部により取得された検査用画像を入力し、異常を示すテキストを取得する異常推定部(103)と、を備えている。
【選択図】
図2
【特許請求の範囲】
【請求項1】
検査対象の画像である検査用画像を取得する対象画像取得部と、
前記検査対象の画像から前記検査対象に含まれる異常を示すテキストを生成する機械学習を行った学習済モデルに、前記対象画像取得部により取得された前記検査用画像を入力し、当該学習済モデルにより生成された前記異常を示すテキストを取得する異常推定部と、
を備えていることを特徴とする検査装置。
【請求項2】
前記異常推定部により取得された前記異常を示すテキストに対してテキストマイニングを行うことにより異常の発生傾向を取得する傾向取得部を備えていることを特徴とする請求項1に記載の検査装置。
【請求項3】
検査対象の画像と前記検査対象の異常を示すテキストとを含む教師データを取得するデータ取得部と、
学習対象の学習モデルに、前記データ取得部により取得された前記教師データに含まれる前記検査対象の画像を入力し、当該学習モデルから出力されたテキストを取得するテキスト取得部と、
前記データ取得部により取得された前記教師データに含まれるテキストと、前記テキスト取得部が当該教師データに含まれる前記検査対象の画像を前記学習モデルに入力して取得したテキストとの比較結果に基づいて、前記学習モデルのパラメータを更新するパラメータ更新部と、
を備えていることを特徴とする学習装置。
【請求項4】
前記データ取得部は、前記検査対象の第1画像および当該検査対象の異常を示す第1テキストの少なくとも一方の第1教師データごとに、前記第1画像と、前記第1テキストの表現を加工した第2テキストとを含む第2教師データをさらに取得する、ことを特徴とする請求項3に記載の学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検査装置および学習装置に関する。
【背景技術】
【0002】
特許文献1には、検査対象物を撮像した撮像画像を学習済みの人工知能に適用して、検査対象物の良否を判定する検査装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記した従来技術は、検査対象物が正常であるか異常であるかの判別は可能であるが、人工知能が異常と判断した根拠については出力されない。このため、ユーザが異常であることの根拠を把握できない。したがって、異常が発生した場合に、どのような対策を実施すればよいか明確でないため、異常の発生を低減させるための改善が容易ではない。
本開示の一態様は、人工知能が異常と判断した根拠に関する情報の取得を目的とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するために、本開示の一態様に係る検査装置は、検査対象の画像である検査用画像を取得する対象画像取得部と、前記検査対象の画像から前記検査対象に含まれる異常を示すテキストを生成する機械学習を行った学習済モデルに、前記対象画像取得部により取得された前記検査用画像を入力し、当該学習済モデルにより生成された前記異常を示すテキストを取得する異常推定部と、を備えている。
【0006】
また、本開示の別の一態様に係る学習装置は、検査対象の画像と前記検査対象の異常を示すテキストとを含む教師データを取得するデータ取得部と、学習済みの前記検査対象の画像と当該学習済みの前記検査対象の異常を示すテキストとの間の関係について機械学習を行った学習モデルに、前記データ取得部により取得された前記教師データに含まれる前記検査対象の画像を入力し、当該学習モデルから出力されたテキストを取得するテキスト取得部と、前記データ取得部により取得された前記教師データに含まれるテキストと、前記テキスト取得部が当該教師データに含まれる前記検査対象の画像を前記学習モデルに入力して取得したテキストとの比較結果に基づいて、前記学習モデルのパラメータを更新するパラメータ更新部と、を備えている。
【発明の効果】
【0007】
本開示の一態様によれば、人工知能が異常と判断した根拠に関する情報を取得することができる。
【図面の簡単な説明】
【0008】
【
図1】本開示の一実施の形態に係る検査装置および学習装置を含む検査システムの一構成例を示す図である。
【
図2】本開示の一実施の形態に係る検査装置の構成を示す図である。
【
図5】本開示の一実施形態に係る検査装置における処理の流れを示すフローチャートである。
【
図6】本開示の一実施形態に係る学習装置の構成を示す図である。
【
図7】本開示の一実施形態に係る学習装置における処理の流れを示すフローチャートである。
【
図8】Vision Transformerの説明に用いる図である。
【発明を実施するための形態】
【0009】
以下、本開示の一実施形態について、詳細に説明する。
図1は、本開示の一実施の形態に係る検査装置および学習装置を含む検査システム100の一構成例を示す図である。検査システム100は、検査対象5の外観検査を行うためのシステムであり、検査装置1と、学習装置2と、カメラ3と、照明4とを備えている。
【0010】
検査対象5は、例えば、ブレーキ部品である。以下の説明においては、検査対象5は、円筒形の金属部品であり、その側面に溝を有するものとする。検査対象5は、検査対象5の底面の中心が回転台6の回転軸上に位置するように、円形の底面を下にして回転台6の上に載置されている。不図示のモータ等の回転により、回転台6が所定方向Rに回転されると、回転台6と共に検査対象5が所定方向Rに回転される。
【0011】
カメラ3は、例えばラインスキャンカメラで構成される。カメラ3は、その撮像範囲に検査対象5の側面を含むように配置されている。照明4は、検査対象5の撮像時に、少なくともカメラ3の撮像範囲を照らすように配置されている。カメラ3は、検査対象5を撮像し、検査対象5の側面の撮像画像、好ましくは検査対象5の側面の正反射画像を出力する。カメラ3は、検査装置1および学習装置2と、有線または無線で接続されており、検査対象5の撮像画像を、検査装置1および学習装置2へ出力することができる。
【0012】
検査装置1は、学習済みの学習モデルを用いて、検査対象5の異常検知を行う装置である。検査対象5の異常とは、例えば、検査対象5の側面についた打痕、線傷、へこみ傷などである。検査対象5の側面に設けられた溝、および、検査対象5の側面の軽微な汚れは、検査対象5の異常には含まれない。
学習装置2は、検査装置1が用いる学習モデルを構築する装置である。
【0013】
(検査装置の構成)
図2は、本開示の一実施の形態に係る検査装置1の構成を示す図である。検査装置1は、例えばコンピュータであり、制御部10と、記憶部11と、入出力部12と、通信部13とを備えている。
【0014】
制御部10は、例えばCPU(Central Processing Unit)であり、プログラムを記憶部11から読み出して実行する。
記憶部11は、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)などである。記憶部11には、制御部10が実行するプログラムと、学習済みの学習モデルとが記憶されている。また、記憶部11は、制御部10がワークスペースとして使用するRAM(Random Access Memory)等を有している。当該RAM等には、検査対象5の外観検査中に、検査対象5の画像である検査対象画像、エッジ強調画像等の画像が記憶されている。
入出力部12には、例えばキーボード等の入力装置、ディスプレイ、スピーカ等の出力装置等が含まれる。
通信部13には、学習装置2またはカメラ3と、有線または無線で通信する通信インタフェースが含まれる。
【0015】
図3は、検査用画像の一例を示す図である。
図3に示す検査用画像50は、所定方向Rに回転した検査対象5の側面を模式的に示している。
図3の検査用画像50は、1周分の画像が5段のブロックに分割されている。
図3の検査用画像50には、検査対象5の側面に設けられている複数の溝51および穴52、検査対象5の側面に付いてしまった線傷53およびへこみ傷54が撮像されている。なお、検査対象5の側面には正常な範囲の汚れが含まれ得るが、
図3に示す模式図では正常な範囲の汚れについては図示を省略している。
【0016】
(学習モデルの構成と機能)
図4は、学習モデルの説明に用いる図である。
図4に示す学習モデルMは、検査対象5の画像である検査用画像50から、検査対象5に含まれる異常を示すテキストを生成する機械学習を行ったものである。
図4に示す学習モデルMは、第1ニューラルネットワークNN1と、第2ニューラルネットワークNN2と、第3ニューラルネットワークNN3と、第4ニューラルネットワークNN4とによって構成されている。
【0017】
第1ニューラルネットワークNN1は、検査対象5の画像である検査用画像50が入力されると、その検査対象5が正常であるか異常であるかを示す情報と、異常の種類に関する情報とを出力する機械学習を行ったものである。第1ニューラルネットワークNN1には、敵対的生成ネットワークの手法を用いて構築されたジェネレータおよびディスクリミネータ、ならびに分類用の畳み込みニューラルネットワークが含まれる。以下、第1ニューラルネットワークNN1に含まれるジェネレータのことを単にジェネレータと記載し、第1ニューラルネットワークNN1に含まれるディスクリミネータのことをディスクリミネータと記載する。
【0018】
ジェネレータは、例えば、U-netが用いられ、正常な検査対象5の検査用画像50と、その検査用画像50から生成されたエッジ強調画像を少なくとも含む入力画像との関係が予め学習されている。以下、検査対象5の検査用画像50から生成されたエッジ強調画像を少なくとも含む入力画像のことを、検査対象5の入力画像と記載する。検査対象5の入力画像には、検査対象5のエッジ強調画像の生成に用いられた検査対象5の検査用画像50を含めてもよい。
【0019】
ジェネレータは、エンコーダと、当該エンコーダの出力側に接続されたデコーダとを含んでいる。エンコーダおよびデコーダには、畳み込み層等のレイヤが複数含まれている。ジェネレータは、エンコーダに含まれる複数のレイヤの少なくともいずれかのレイヤを、そのレイヤに対応するレイヤであってデコーダに含まれるレイヤに接続するスキップ構造を少なくとも1つ有している。スキップ構造により接続されるエンコーダ側のレイヤと、デコーダ側のレイヤとは、各々が出力する特徴マップの解像度が一致する対応関係にある。デコーダ側のレイヤでは、そのレイヤの出力に対して、エンコーダ側のレイヤの出力が重畳される。
【0020】
ジェネレータには、検査対象5の入力画像が入力される。ジェネレータは、検査対象5の入力画像が入力されると、画像生成アルゴリズムの一種であるpix2pix等により、再現画像が出力される。再現画像は、正常な検査対象5の範疇の画像である。ジェネレータにはスキップ構造が含まれているため、複数のレイヤを経たとしも、検査対象5の溝51等が再現画像から消失することを抑制することができる。
【0021】
ディスクリミネータには、検査対象5の検査用画像50と、その検査対象5の入力画像に基づいてジェネレータが出力した再現画像とが入力される。ディスクリミネータは、検査対象5が正常であるか異常であるかを示す情報を出力する。例えば、ディスクリミネータは、検査対象5の再現画像と、検査対象5の検査用画像50とに基づいて、対応する画素位置における画素値の差分を示す差分画像を生成する。次に、ディスクリミネータは、その差分画像に対して離散的フーリエ変換を行い、その演算結果に対してNLM(Non-local means filter)およびハイパスフィルタを適用し、検査対象5の高域強調画像を取得する。ディスクリミネータは、その高域強調画像の画素値の二乗和を画素数で除算した値に基づいて、異常度を算出する。そして、ディスクリミネータは、その異常度が所定の閾値以上の場合にその検査対象5を異常と判定し、異常度が所定の閾値未満の場合にその検査対象5を正常と判定する。
【0022】
また、第1ニューラルネットワークNN1には、異常の分類に用いられる畳み込みニューラルネットワークが含まれている。この畳み込みニューラルネットワークは、検査対象5の入力画像から異常の種類を示す情報を生成する機械学習を行ったものである。畳み込みニューラルネットワークには、畳み込み層、プーリング層、全結合層およびソフトマックス層が含まれている。畳み込みニューラルネットワークには、検査対象5の入力画像が入力される。この畳み込みニューラルネットワークは、検査対象5に含まれる異常の分類を出力することができる。異常の種類には、例えば、打痕、線傷、へこみ傷、バリ、異常な範囲の汚れ、寸法が公差から外れていること、全体的に丸まっていること等が含まれる。
【0023】
第2ニューラルネットワークNN2は、検査対象5の入力画像から異常が含まれている特徴部分を抽出する機械学習を行ったエンコーダである。第2ニューラルネットワークNN2には、畳み込み層、プーリング層が含まれている。第2ニューラルネットワークNN2には、検査対象5の検査用画像50が入力される。第2ニューラルネットワークNN2は、検査対象5の検査用画像50において異常が含まれる特徴部分を抽出し、その特徴部分についての潜在変数(特徴ベクトル)を出力することができる。
【0024】
第3ニューラルネットワークNN3は、少なくとも第1ニューラルネットワークNN1および第2ニューラルネットワークNN2の出力情報から、検査対象5の異常を示すテキストを生成する機械学習を行ったものである。第3ニューラルネットワークNN3としては、例えば、再帰的ニューラルネットワークのデコーダが考えられる。第3ニューラルネットワークNN3には、アテンション機構が含まれる場合もある。第3ニューラルネットワークNN3が出力する検査対象5の異常を示すテキストとは、例えば、検査対象5に含まれる異常の種類等を含む説明文である。
【0025】
図3に示す検査用画像50が第1ニューラルネットワークNN1に入力された場合、第1ニューラルネットワークNN1は、例えば、「異常」という判定結果ならびに、「線傷」および「へこみ傷」という異常の分類に関する情報を出力する。
図3に示す検査用画像50が第2ニューラルネットワークNN2に入力された場合、第2ニューラルネットワークNN2は、例えば、線傷53およびへこみ傷54の有無、位置、傷の大きさ等を示す潜在変数を出力する。
第3ニューラルネットワークNN3は、これらの第1ニューラルネットワークNN1および第2ニューラルネットワークNN2の出力に基づいて、例えば、「この部品には線傷、へこみ傷がある。」等の検査対象5の異常を示すテキストを出力する。
【0026】
第4ニューラルネットワークNN4は、検査対象の生産に関連する関連情報から、異常が発生した生産状況に関するキーワードを出力する機械学習を行ったものである。第4ニューラルネットワークNN4としては、例えば、再帰的ニューラルネットワークのエンコーダが考えられる。関連情報としては、例えば、生産ラインの不具合報告情報が考えられる。異常が発生した生産状況に関するキーワードとしては、不具合が発生した生産ラインのライン番号、不具合が発生した生産ラインで生産されていた検査対象5のロット番号、不具合が発生したときに生産ラインで作業をしていた作業者、不具合が発生したときの生産ラインの周辺環境に関する情報等が考えられる。第4ニューラルネットワークNN4が出力するキーワードは、第3ニューラルネットワークNN3へ入力することにしてもよい。第3ニューラルネットワークNN3は、第4ニューラルネットワークNN4から入力されたキーワードにより言葉を補って、検査対象5の異常を示すテキストを出力することにしてもよい。
【0027】
(検査装置の機能)
図2に示すように、制御部10は、記憶部11に記憶されているプログラムを実行することにより、対象画像取得部101、関連情報取得部102、異常推定部103、特徴数値化部104、情報蓄積部105および傾向取得部106として機能する。
【0028】
対象画像取得部101は、カメラ3から検査対象5の撮像画像を取得し、その撮像画像に基づいて検査対象5の画像である検査用画像50を取得する。
【0029】
関連情報取得部102は、関連情報を取得する。例えば、関連情報取得部102は、記憶部11に予め保存された不具合報告書のテキストを読み出して、その不具合報告書のテキストから関連情報を取得する。関連情報取得部102は、入出力部12を介して関連情報の入力を受け付けもよく、通信部13を介して外部記憶装置から不具合報告書のテキストを取得することにしてもよい。
【0030】
異常推定部103は、
図4に示した学習モデルMに対して、対象画像取得部101により取得された検査用画像50と、関連情報取得部102により取得された関連情報とを入力する。異常推定部103は、学習モデルMの第1ニューラルネットワークNN1から出力された検査対象5が正常か異常かを示す情報および検査対象5に含まれる異常の種類に関する情報、ならびに、第3ニューラルネットワークNN3から出力された異常を示すテキストを取得する。
【0031】
特徴数値化部104は、第1ニューラルネットワークNN1が出力を行うまでの過程で注視した特徴を数値化する。換言すると、特徴数値化部104は、第1ニューラルネットワークNN1が入力された検査用画像に対してどのような根拠に基づいて出力を行ったかを数値化する。特徴数値化部104としては、LIME(Local interpretable model-agnostic explanations)やSHAP(Shapley additive explanations)などが考えられる。
【0032】
情報蓄積部105は、異常推定部103が取得した検査対象5に含まれる異常の種類に関する情報および異常を示すテキストを不具合分析データベースに記憶させる。不具合分析データベースは、検査装置1の記憶部11に記憶されていてもよいし、検査装置1の外部の記憶装置に記憶されていてもよい。情報蓄積部105は、不具合分析データベースに情報を記憶させる際、対象画像取得部101により取得された検査対象5の検査用画像50、関連情報取得部102により取得された関連情報、異常を示すテキストから抽出された異常特徴語等を関連付けることにしてもよい。
【0033】
異常特徴語とは、第3ニューラルネットワークNN3が出力した異常を示すテキストに含まれる単語のうち、第1ニューラルネットワークNN1が出力した異常の種類に関する情報に関連する単語である。第1ニューラルネットワークNN1が出力し得る異常の種類ごとに、異常特徴語の候補となる単語のデータベース(以下、異常用語辞書という)が記憶部11に記憶されている。情報蓄積部105は、異常を示すテキストを単語単位で分割し、それらの単語の中から異常用語辞書に含まれる単語を異常特徴語として抽出する。
【0034】
傾向取得部106は、情報蓄積部105により不具合分析データベースに蓄積された情報に対して、テキストマイニング等のデータマイニング技術を適用し、異常の発生傾向を示す情報を取得する。異常の発生傾向を示す情報としては、異常が発生した生産ラインの分布、異常が発生したロットの分布、異常が発生した日時の分布、異常の種類ごとの発生分布などである。
【0035】
(検査装置の制御)
図5は、検査装置1における処理の流れを示すフローチャートである。
図5に示す処理の前に、検査装置1のユーザは、学習モデルMに学習させていない未学習の検査対象5を回転台6に配置し、照明4から検査対象5を照明した状態で1回転以上させて、その検査対象5の側面をカメラ3に撮像させているものとする。
【0036】
S100において、制御部10は、対象画像取得部101として機能し、検査対象5の検査用画像50を取得する。
【0037】
検査用画像50を取得すると、制御部10は、異常推定部103として機能する。
S101において、制御部10は、検査対象5について差分画像を取得する。制御部10は、S100で取得した検査用画像50に対して、エッジを強調する画像処理を施し、エッジ強調画像を生成する。制御部10は、そのエッジ強調画像を第1ニューラルネットワークNN1に入力し、ジェネレータから再現画像を取得する。制御部10は、その再現画像と、S100で取得した検査用画像50とに基づいて、検査対象5の差分画像を取得する。
【0038】
続くS102において、制御部10は、S101で取得した差分画像に基づいて、検査対象5が正常か異常かの判定を行い、検査対象5に含まれる異常の種類を分類する。
制御部10は、S101で取得した差分画像に基づいて、検査対象の異常度を算出し、その異常度が所定の閾値以上の場合にその検査対象5を異常と判定し、異常度が所定の閾値未満の場合にその検査対象5を正常と判定する。
また、制御部10は、第1ニューラルネットワークNN1に含まれる畳み込みニューラルネットワークに検査対象5の入力画像を入力し、異常の種類を示す情報を取得する。
【0039】
S103において、制御部10は、S100で取得した検査用画像50を第2ニューラルネットワークNN2に入力し、潜在変数を取得する。S103の処理は、S101およびS102の処理の前に行ってもよい。
【0040】
S104において、制御部10は、関連情報取得部102として機能し、関連情報を取得する。S104の処理は、S101からS103までの処理の前に行ってもよい。
続くS105において、制御部10は、異常推定部103として機能し、S104で取得した関連情報を第4ニューラルネットワークNN4に入力し、異常が発生した生産状況に関するキーワードを取得する。
【0041】
S106において、制御部10は、異常推定部103として機能し、異常を示すテキストを生成する。より具体的には、制御部10は、S102で取得した検査対象5が正常か異常かを示す情報および検査対象5に含まれる異常の種類を示す情報、S103で取得した潜在変数、ならびにS105で取得したキーワードを第3ニューラルネットワークNN3に入力し、検査対象5の異常を示すテキストを生成する。
【0042】
S107において、制御部10は、情報蓄積部105として機能し、S106で生成された異常を示すテキストと、S104で取得された関連情報とを不具合分析データベースに記憶させる。
続くS108において、制御部10は、傾向取得部106として機能し、不具合分析データベースに蓄積された情報から、異常の発生傾向を示す情報を取得する。
続くS109において、制御部10は、S106で生成した検査対象5の異常を示すテキストと、S108で取得した異常の発生傾向を示す情報に基づいて、検査対象5に含まれる異常に関する情報を提供する。例えば、制御部10は、S106で生成した検査対象5の異常を示すテキスト、およびS108で取得した異常の発生傾向を示す情報を、入出力部12に含まれる出力装置、または通信部13を介して接続された出力装置から出力する。異常を示すテキストを表示することにより、検査対象5が異常と判断された根拠、すなわち検査対象5にどのような異常があるかをユーザに認識させることができる。検査対象5に異常が生じたときに、ユーザに対して速やかにその原因を提示することができるため、ユーザが早期に原因究明の調査を開始することができる。また、異常の発生傾向をユーザに認識させることができるため、ユーザが早期に原因を見極めることができる。異常の発生頻度が下がり、検査対象5の品質が向上し、異常の対応に掛けられる作業員の工数を低減することができる。
【0043】
制御部10は、S109の処理を実行した後、
図5に示す処理を終了する。外観検査する検査対象5が他にも残っている場合には、次の検査対象5について、
図5に示す一連の処理を実行する。
【0044】
(学習装置の構成)
図6は、本開示の一実施の形態に係る学習装置2の構成を示す図である。学習装置2は、例えばコンピュータであり、制御部20と、記憶部21と、入出力部22と、通信部23とを備えている。学習装置2の制御部20、記憶部21、入出力部22および通信部23は、検査装置1の制御部10、記憶部11、入出力部12および通信部13と同様の構成である。
【0045】
学習装置2の記憶部21には、学習装置2の制御部20が実行するプログラムと、構築中の学習モデルMとが記憶されている。また、記憶部21には、学習モデルMを構築する際に使用する教師データが記憶されている。教師データには、検査対象5の画像と、当該検査対象の異常を示すテキストとが含まれている。
【0046】
(学習装置の機能)
制御部20は、記憶部21に記憶されている各種プログラムを実行することにより、データ取得部201、テキスト取得部202、パラメータ更新部203として機能する。
【0047】
データ取得部201は、記憶部21から教師データを取得する。データ取得部201は、記憶部21から取得した教師データに対して水増し処理を行い、水増された教師データをさらに取得することができる。例えば、データ取得部201が記憶部21から取得した教師データを第1教師データとし、第1教師データに含まれる検査対象5の画像と、当該検査対象の異常を示すテキストとを、それぞれ第1画像および第1テキストとしたとき、データ取得部201は、水増し処理により、以下の教師データを更に取得する。
(1)第1画像を加工した第2画像と、第1テキストとを含む第2教師データ
(2)第1画像と、第1テキストを加工した第2テキストとを含む第3教師データ
(3)第2画像と、第2テキストとを含む第4教師データ
【0048】
教師データの水増し処理における、検査対象5の画像に対して行う加工としては、例えば、左右反転、上下反転、上下左右反転、90度回転等が考えられる。検査対象5の異常を示すテキストに対して行う加工としては、例えば、語順や文節の入れ替え、類義語への言い換え等が考えられる。例えば、第1テキストが「この部品には線傷がある。」の場合には、第2テキストとして「これは線傷がある部品です。」等が考えられる。
【0049】
テキスト取得部202は、データ取得部201により取得された教師データに含まれる検査対象5の画像を、構築中の学習モデルMに入力し、学習モデルMの第3ニューラルネットワークNN3から出力されるテキストを取得する。
【0050】
パラメータ更新部203は、データ取得部201により取得された教師データについて、当該教師データに含まれるテキストと、当該教師データに含まれる画像に基づいてテキスト取得部202により取得されたテキストとの比較結果に基づいて、学習モデルMのパラメータを更新する。パラメータ更新部203は、データ取得部201により取得された教師データに含まれるテキストと、当該教師データに含まれる画像に基づいてテキスト取得部202により取得されたテキストとをそれぞれ文節で区切る。パラメータ更新部203は、所定の誤差関数を用いて、2つのテキストの文節の内容同士の誤差を算出する。パラメータ更新部203は、誤差逆伝搬法等により、この誤差が最小となる学習モデルMのパラメータを算出し、学習モデルMのパラメータを更新する。学習モデルMのパラメータには、第1ニューラルネットワークNN1、第2ニューラルネットワークNN2、第3ニューラルネットワークNN3および第4ニューラルネットワークNN4の各パラメータ、ならびにエッジ強調画像を生成する画像処理等のパラメータが含まれる。
【0051】
(学習装置の制御)
図7は、学習装置2における処理の流れを示すフローチャートである。
S200において、学習装置2の制御部20は、データ取得部201として機能し、記憶部21から教師データを取得する。このとき、制御部20は、取得した教師データに対して適宜水増し処理を行い、水増しされた教師データについても取得する。
【0052】
S201において、制御部20は、テキスト取得部202として機能し、S200で取得した教師データについて、当該教師データに含まれる画像を構築中の学習モデルMに入力し、第3ニューラルネットワークNN3から出力される異常を示すテキストを取得する。
S202において、制御部20は、パラメータ更新部203として機能し、S200で取得された教師データに含まれるテキストと、S201で取得されたテキストとを比較する。例えば、制御部20は、S200で取得された教師データに含まれるテキストと、S201で取得されたテキストとの間の誤差を、所定の誤差関数を用いて算出する。
S203において、制御部20は、S202で算出された誤差に基づいて、誤差逆伝搬法等により学習モデルMのパラメータを更新する。
【0053】
制御部20は、S203の処理を実行した後に、
図7に示す処理を終了する。1つの教師データに対して、複数回学習を行うことになっている場合には、同一の教師データについて、
図7に示す一連の処理を実行することにしてもよい。
【0054】
(変形例)
上記実施形態では、検査システム100には、検査装置1と学習装置2とが別々に備わっていることとしたが、検査装置1が学習装置2の一部の機能を兼ねることにしてもよい。
上記実施形態では、検査システム100には、検査装置1とカメラ3とが別々に備わっていることとしたが、カメラ3は、検査装置1に内蔵されることにしてもよい。
上記実施形態では、検査システム100は、照明4を備えていることとしたが、必ずしも照明4を備える必要はない。
【0055】
上記実施形態では、検査装置1の制御部10が傾向取得部106として機能することとしたが、これに限定されない。例えば、学習装置2の制御部20が傾向取得部106として機能することにしてもよい。具体的には、学習装置2の制御部20が不具合分析データベースに蓄積された情報に対して、テキストマイニング等のデータマイニング技術を適用し、異常の発生傾向を示す情報を取得することにしてもよい。学習装置2の制御部20は、傾向取得部106により取得した異常の発生傾向を示す情報を、パラメータ更新部203による学習モデルMのパラメータの更新に反映させてもよい。
【0056】
上記実施形態では、検査システム100は、検査対象5の外観検査を行うこととしたが、本開示の適用範囲は外観検査だけに限られない。検査対象5を撮像した画像を用いる検査であれば外観検査以外の検査、例えば種々の非破壊検査にも適用することができる。非破壊検査としては、例えばX線画像やサーモグラフィによる画像を用いた検査が考えられる。
【0057】
上記実施形態では、データ取得部201において、学習装置2の制御部20は、記憶部21に記憶されている教師データを取得し、その教師データに対して水増し処理を行い、水増しされた教師データをさらに取得するものとした。しかし、学習装置2が教師データを取得する方法は、これらだけに限定されない。例えば、学習装置2の制御部20は、正常な検査対象5の検査用画像50(以下、正常画像)に、異常な検査対象5の差分画像を重畳させ、検査対象5の合成画像を取得し、その合成画像に基づいて、教師データを取得することにしてもよい。学習装置2の制御部20は、差分画像に含まれる異常な部位の大きさ、角度、縦横比等を変更した画像を、正常画像に重畳させた合成画像をさらに取得して、教師データをさらに水増しすることにしてもよい。学習装置2の制御部20は、合成画像を左右反転、上下反転、上下左右反転、90度回転等させた画像をさらに取得して、教師データをさらに水増しすることにしてもよい。このように教師データの水増しのために生成された合成画像等には、異常な検査対象5に発生している異常を示すテキストと組み合わせて教師データとすることが好ましい。このように検査対象5の合成画像を取得することにより、異常な検査対象5の検査用画像50を十分確保することができない検査対象5であっても、説明性確保のために十分な教師データを取得することができる。これにより、第3ニューラルネットワークNN3から出力されるテキストの精度を向上させることができる。
【0058】
上記実施形態では、第1ニューラルネットワークNN1に含まれるジェネレータには、U-netが用いられるものとした。そのジェネレータのエンコーダおよびデコーダには、畳み込み層等のレイヤを複数含み、スキップ構造を少なくとも1つ有しているものとした。しかし、第1ニューラルネットワークNN1に含まれるジェネレータは、これに限定されない。例えば、第1ニューラルネットワークNN1に含まれるジェネレータ(以下、ジェネレータ)は、そのエンコーダに、Vision Transformer(以下、Vit)を適用することにしてもよい。より具体的には、ジェネレータのエンコーダのうち、畳み込み層等で形成される畳み込みニューラルネットワークの出力を、Vitに入力することにしてもよい。Vitでは、入力画像を複数のパッチに分割し、各パッチに含まれる情報をベクトルに平坦化する。このベクトルには、その入力画像に対する各パッチの位置を示す情報が付与されている。
【0059】
図8は、Vitの説明に用いる図である。
図8では、ジェネレータのエンコーダに含まれる畳み込みニューラルネットワークの出力Xを、4個のパッチXpに分割している。4個のパッチXpに含まれる情報が平坦化されたベクトルをFpとする。なお、
図8では出力Xの分割数を4個としたが、これに限定されない。
【0060】
ベクトルFpには、付加情報Epが付与される。付加情報Epには、出力Xに対する各パッチXpの位置を示す情報が含まれている。例えば、
図8に示す4個のパッチXpのうち、左上のパッチXpに関するベクトルFpに対しては「0番」の位置情報が付与され、右上のパッチXpに関するベクトルFpに対しては「1番」の位置情報が付与されている。付加情報Epが付与されたベクトルFpは、Vitのエンコーダ70に入力される。
【0061】
Vitのエンコーダ70は、多層パーセプトロンと、自己マルチヘッドアテンションとを有している。エンコーダ70は、パッチXpの各々について、当該パッチXpの周辺のパッチXpとの関連度を機械学習している。Vitのエンコーダ70は、付加情報Epが付与されたベクトルFpが入力されると、各パッチXpについて、そのパッチXpの周辺にある関連度が高いパッチXpを推定し、関連度が高いパッチXpに関する周辺情報を取得する。Vitのエンコーダ70は、各パッチXpの位置情報、周辺情報、およびベクトルFpに基づいた出力を、ジェネレータのデコーダへ出力する。ジェネレータのデコーダは、この出力に基づいて再現画像を生成する。再現画像内において周囲との関連性が考慮されるため、再構成精度を向上させることができる。
【0062】
上記実施形態では、第1ニューラルネットワークNN1に含まれるジェネレータに、検査対象5の入力画像が入力されるものとした。この検査対象5の入力画像には、検査対象5の検査用画像50から生成されたエッジ強調画像が少なくとも含まれ、エッジ強調画像の生成に用いられた検査用画像50を含めてもよいものとした。エッジ強調画像は、検査用画像50の中における輝度の変化を強調した画像である。エッジ強調画像は、各画素の輝度を2値化した2値画像であってもよいし、各画素の輝度を3値以上の多階調で表すことにしてもよい。エッジ強調画像を中間色であるグレーを含めた多階調画像とすることで、検査対象5の各部位の濃淡について、ジェネレータが出力する再現画像の再構成精度を向上させることができる。また、エッジ強調画像には、検査対象5の検査用画像50から抽出した特徴領域を示す情報を付加してもよい。エッジ強調画像に特徴領域を示す情報を付加することによっても、ジェネレータが出力する再現画像の再構成精度を向上させることができる。
【0063】
〔まとめ〕
本開示の一態様に係る検査装置は、検査対象の画像である検査用画像を取得する対象画像取得部と、前JP査対象の画像から前記検査対象に含まれる異常を示すテキストを生成する機械学習を行った学習済モデルに、前記対象画像取得部により取得された前記検査用画像を入力し、当該学習済モデルにより生成された前記異常を示すテキストを取得する異常推定部と、を備えている。
本開示の一態様に係る検査装置は、検査対象に含まれる異常を示すテキストを生成する学習済みモデルを備えた異常推定部を有している。この異常推定部に検査用画像を入力すると、入力された検査用画像に対する異常に関するテキストを学習済モデルから取得することができる。
【0064】
本開示の一態様に係る検査装置は、前記異常推定部により取得された前記異常を示すテキストに対してテキストマイニングを行うことにより異常の発生傾向を取得する傾向取得部を備えている。
本開示の一態様に係る検査装置は、異常推定部により取得された異常を示すテキストを記憶部に記憶させ、その記憶部に記憶させた異常を示すテキストに対してテキストマイニングを行うことにより、異常の発生傾向を取得することができる。
【0065】
本開示の一態様に係る学習装置は、検査対象の画像と前記検査対象の異常を示すテキストとを含む教師データを取得するデータ取得部と、学習対象の学習モデルに、前記データ取得部により取得された前記教師データに含まれる前記検査対象の画像を入力し、当該学習モデルから出力されたテキストを取得するテキスト取得部と、前記データ取得部により取得された前記教師データに含まれるテキストと、前記テキスト取得部が当該教師データに含まれる前記検査対象の画像を前記学習モデルに入力して取得したテキストとの比較結果に基づいて、前記学習モデルのパラメータを更新するパラメータ更新部と、を備えている。
本開示の一態様に係る学習装置は、教師データに含まれる検査対象の画像を入力された学習モデルが出力する当該検査対象の異常を示すテキストと、当該教師データに含まれる当該検査対象の異常を示すテキストとの比較結果に基づいて学習モデルのパラメータを更新する。これにより、学習モデルから出力される検査対象の異常を示すテキストを適切なものとすることができる。
【0066】
本開示の一態様に係る学習装置では、前記データ取得部は、前記検査対象の第1画像および当該検査対象の異常を示す第1テキストの少なくとも一方の第1教師データごとに、前記第1画像と、前記第1テキストの表現を加工した第2テキストとを含む第2教師データをさらに取得する。
また、本開示の一態様に係る学習装置では、前記データ取得部は、前記第1教師データごとに、前記第1画像を加工した第2画像と、前記第1テキストとを含む第3教師データをさらに取得し、前記第2教師データごとに、前記第2画像と、前記第2テキストとを含む第4教師データをさらに取得する。
本開示の一態様に係る学習装置では、データ取得部は、教師データの画像またはテキストを加工することにより水増しを行う。これにより、元となる第1教師データが少ない場合であっても、学習モデルのパラメータを適切に更新することができる。
【0067】
本開示の一態様に係る検査装置では、前記学習済モデルは、前記検査対象の画像から異常の種類に関する情報を出力する機械学習を行った第1ニューラルネットワークと、前記検査対象の画像から異常部分を抽出した抽出画像を出力する機械学習を行った第2ニューラルネットワークと、前記第1ニューラルネットワークおよび前記第2ニューラルネットワークの出力情報に基づいて、前記検査対象に含まれる異常を示すテキストを生成する機械学習を行った第3ニューラルネットワークと、を有している。
本開示の一態様に係る検査装置では、上記構成の学習済みモデルを用いて、検査対象の画像から検査対象に含まれる異常を示すテキストを適正に生成することができる。
【0068】
本開示の一態様に係る検査装置は、前記検査対象の生産に関連する関連情報を取得する関連情報取得部を備え、前記学習済モデルは、前記関連情報取得部が取得した前記関連情報から異常が発生した生産状況に関するキーワードを出力する機械学習を行った第4ニューラルネットワークを有しており、前記第3ニューラルネットワークは、前記第1ニューラルネットワーク、前記第2ニューラルネットワークおよび前記第4ニューラルネットワークの出力情報に基づいて、前記検査対象に含まれる異常を示すテキストを生成する機械学習を行ったものである。
検査装置が検査対象に含まれる異常を示すテキストを生成する際、異常に関する説明文に用いる単語が不足することがある。本開示の一態様に係る検査装置では、関連情報からキーワードを得ることができるため、異常に関する説明文に用いる単語の不足を軽減することができる。
【0069】
本開示の一態様に係る検査装置では、前記学習済みモデルは、正常な前記検査対象の前記検査用画像についてエッジを強調したエッジ強調画像を少なくとも含む入力画像と、当該正常な前記検査対象の前記検査用画像である出力画像との関係を予め機械学習したジェネレータと、前記ジェネレータへ、未学習の前記検査対象について前記検査用画像のエッジを強調したエッジ強調画像を少なくとも入力し、前記ジェネレータから出力された画像である再現画像を取得し、当該検査対象に係る前記検査用画像および前記再現画像に基づいて、当該検査対象が正常か異常かを判定するディスクリミネータとを含む。
本開示一態様に係る検査装置では、前記エッジ強調画像の各画素の輝度は、3値以上の多階調で表されている。
本開示一態様に係る検査装置では、前記エッジ強調画像には、前記検査用画像から抽出した特徴領域を示す情報が付加されている。
上記のエッジ強調画像を用いることにより、ジェネレータが出力する再現画像の再構成精度を向上させることができる。
【0070】
本開示一態様に係る検査装置では、前記ジェネレータは、デコーダと、スキップ構造により前記デコーダに接続される第1エンコーダと、前記第1エンコーダから出力された第1出力に基づいた第2出力を前記デコーダへ出力する第2エンコーダと、を含み、前記第2エンコーダは、前記第1出力を分割した複数のパッチの各々について、周辺のパッチとの関連度を示す周辺情報を取得し、前記周辺情報に基づいた前記第2出力を前記デコーダへ出力する。
pix2pix等の技術を用いた工業部品の異常検知の分野においては、再現画像を生成する際に、検査対象5の各部位の濃淡が平均化されてしまい、十分な再構成精度が得られないことがある。第2エンコーダが周辺情報を取得し、その周辺情報に基づいた出力をデコーダへ出力することにより、再現画像内において周囲との関連性を反映させることができる。これによって、例えば、周囲の部位の濃淡を考慮した高精細な再現画像を取得することができる。
【0071】
本開示の一態様に係る学習装置では、前記データ取得部は、前記ディスクリミネータにより正常と判定された前記検査対象の前記検査用画像に、前記ディスクリミネータにより異常と判定された前記検査対象の前記検査用画像に基づいて生成された前記再現画像と、前記異常と判定された前記検査対象の前記検査用画像とに基づいて生成された差分画像を重畳させ合成画像を取得し、前記合成画像に基づいた教師データを取得することにしてもよい。
このように検査対象の合成画像を取得することにより、異常な検査対象の検査用画像を十分確保することができない検査対象であっても、説明性確保のために十分な教師データを取得することができる。
【0072】
本開示は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本開示の技術的範囲に含まれる。
【符号の説明】
【0073】
1 検査装置
2 学習装置
5 検査対象
101 対象画像取得部
102 関連情報取得部
103 異常推定部
104 特徴数値化部
105 情報蓄積部
106 傾向取得部
201 データ取得部
202 テキスト取得部
203 パラメータ更新部
M 学習モデル
NN1 第1ニューラルネットワーク
NN2 第2ニューラルネットワーク
NN3 第3ニューラルネットワーク
NN4 第4ニューラルネットワーク