1
はじめに
近年,深層学習技術の登場により画像認識の性能が大きく向上し応用先も広がっており,期待される応用先の一つとして外観検査が挙げられる。
外観検査とは,工業部品・製品の品質を保証するためにおこなう検査工程の一つである。外観検査の代表的な例として,対象物の表面にある傷やバリ,欠けやヘコミ等,外観に現れる欠陥を確認し品質の良し悪しを判断することが挙げられる。
従来から簡単な外観検査は自動化が成されてきたが,検査基準の定式化が困難な検査等については,未だ熟練の検査員による目視がおこなわれているのが実情である。しかし認識技術の性能向上といった要因だけでなく,近年の人手不足や熟練者の育成が難しいといった社会課題の顕在化に伴って従来は自動化が難しかった検査についても自動化を望む声が高まっている。更に近年では発生した欠陥の種類や頻度等から生産時のどの工程に問題があるか推定するための判断材料として用いる等データ解析への応用も期待されており,効率的に多量のデータを取得するためにも自動化が求められている。我々はこうした状況に対応するため,深層学習技術を用いた外観検査の自動化について取り組んだ。
本稿ではその事例として,3章で半教師あり学習による異常検知について,4章で教師あり学習による欠陥分類について,それぞれ報告する。
2
深層学習の外観検査への適用における課題
深層学習は Neural Network を用いた機械学習の一種であり,近年目覚ましい成果を挙げている。例えばコロナ禍におけるマスク装着の自動判定や人流解析等にも深層学習は使われており,実社会での使用に耐えうるアプリケーションを提供出来るまでになっている1)2)。
深層学習は非常に強力な手法であるが,高い性能を得るためには大量の学習用データが必要であることも知られている。
また,解析の精度を上げるためには入出力データに対する適切な前後処理の設計も重要であるが,外観検査では撮影条件や被写体のバリエーションが大きく,事前に最適なパラメーターを設計しておくことは難しい。これらのことが深層学習を外観検査に適用する上で大きな課題となっている。
例えば欠陥の検出では,欠陥は“正常ではないもの”であるため,未知の欠陥であっても正常ではないと判断できる場合には検出出来ることが求められる。すなわち欠陥に関する事前知識が乏しい中でも検出が出来る必要がある。
さらに欠陥の種類分類をおこなう場合,発生しうる欠陥全てについて多量の学習用データを取得することが求められる。しかし一般に欠陥の発生頻度は良品に比べれば稀であり,更に欠陥の中にも発生頻度が非常に少ないものも存在する。そのため,十分な量の学習データを揃えることが困難である。
我々はこれらの課題に対応可能な深層学習手法を開発した。以降ではその具体的な事例について紹介する。
3
事例紹介:半教師あり学習による異常検知
3. 1 概要
製造業における製品の外観検査では,検査対象から不良品を高精度かつロバストに検知する必要がある。目視による検査では,検査員によって不良品の判別基準にばらつきがある,新規検査員への教育コストが高い,等の課題がある。これらの課題を解決すべく,検査対象を撮影した画像を用いて自動検査する技術の開発がおこなわれている。自動検査では,予め定めた判別基準に基づいて外観検査を実施するため,目視検査における基準のばらつきや教育コストなどの問題を解決することが期待できる。
ここでは,外観検査における不良品の自動検知を,深層学習で実現するための取り組み事例を紹介する。
3. 2 実現に向けた課題
3. 2. 1 不良品データの不足
画像を用いて不良品を自動検知するという課題は,検査対象を良品クラスと不良品クラスの2クラスに分類するもの,と考えることができる。大量の学習データがあれば,深層学習の教師ありクラス分類によって,人間と同等以上の分類性能が期待できる。
しかし,製造現場で得られるのはほとんどが良品データであり,不良品データを大量に収集することは現実的ではない。また,不良品のバリエーションは多種多様であるため,学習用に収集した不良データによって,今後発生しうる全ての不良品をカバーすることも難しい。
3. 2. 2 新規検査立ち上げ時における判定指標の選定
不良品の見逃し防止と良品の過検知抑制を両立するためには,検査するデータの異常度(以下,異常スコア)をどのように設計するかが重要になる。例えば,わずかな色の違いを異常として検知したい検査対象と,表面の色ムラは良品の範囲内として扱いたい検査対象とでは,色特徴に対する異常検知への重要度は大きく異なる。
多様な検査対象に対してロバスト性を担保して高精度に異常検知するためには,検査対象に応じて最適な異常スコアの計算方法を自動選択できることが望ましい。例えば良品不良品の特性を考慮した色空間の選択や,細かい再構成誤差を無視するためのノイズ除去,不良箇所を捉えるためのフィルタ計算などがある。これらは実際に扱う画像データの特性をよく観察した上で,設計者がその都度検討する必要がある。このため,検査装置の立ち上げ工数が大きくなってしまう課題がある。
3. 3 課題への対応
ここでは上記で挙げた課題に対応するために,今回検討した主な工夫について述べる。まず良品画像のみを学習データとして,良品画像を再構成する深層学習モデルを学習する。次に少数の不良品画像を用いて,良品画像ではスコアが低く,不良品画像ではスコアが高くなるような異常スコア計算パラメーターを自動選択する。以下で手法の詳細を述べる。
3. 3. 1 良品画像を再構成する深層学習モデル
機械学習による異常検知において,不良品データが不足する状況に対応するため,比較的データ収集が容易な良品データだけを学習に用いる場合がある。具体的には,学習に用いる良品データから良品の分布を定義し,その分布から外れたものを全て異常とする,というアプローチである。
今回我々は,良品データのみを用いた深層学習手法として,オートエンコーダーを用いた画像再構成型の異常検知を採用した。オートエンコーダーの構成は,良品画像の特徴量を抽出するエンコーダーと,抽出した特徴量を用いて元の良品画像を再構成するデコーダーを持つ。オートエンコーダーによる異常検知の流れをFig. 1 に示す。
Step 1では画像再構成モデルの学習をおこなう。入力した良品画像と,出力された再構成画像の差分が小さくなるように,エンコーダーとデコーダーを学習する。ここで良品画像のみを学習に用いるために,エンコーダーは良品画像の特徴のみを抽出できるよう過学習し,デコーダーは良品画像のみを再構成できるよう過学習することが期待できる。
Step 2では学習済のオートエンコーダーを用いて推論をおこなう。まず検査対象画像をオートエンコーダーで再構成する。次に検査対象画像と再構成画像との差分に基づいて異常スコアを計算する。そして異常スコアが予め定めた閾値と比較することで正常か異常かを判定する。これは,不良品が検査画像として入力された場合には,異常箇所がうまく再構成されず,結果として異常スコアが大きくなるはずである,という考え方に基づく手法である。
3. 3. 2 少量の不良品を用いたパラメーター設定自動化
前項で述べたオートエンコーダーによる異常検知では,検査対象画像と再構成画像との差分に基づいて異常スコアを計算する。ここで前述のとおり,注目すべき差分とそうでない差分が検査対象によって異なるため,差分すなわち異常スコアを計算するための画像処理パラメーターの選択が,異常検知性能の良し悪しに大きく影響する。
我々は,異常スコア計算時の画像処理パラメーター設定を,少量の不良品データを用いて自動選択する仕組みを構築した。提案手法によるパラメーター選択の流れをFig. 2 に示す。
まず,良品または不良品のラベルが付けられた複数の入力画像から,予め学習したオートエンコーダーを用いて再構成画像を生成する。ここで再構成画像は前述のとおり,良品画像は入力画像と同等に再構成でき,不良品画像はうまく再構成できないことが期待される。
次に異常スコア計算部にて,入力画像と入力画像に対応する再構成画像のペアに対し,N種類の画像処理パラメーター群を用いて異常スコアを計算する。画像処理パラメーターには,入力画像と再構成画像の差分を計算する色空間や,画像への各種フィルタリング処理の組み合わせなどが含まれる。
そしてN種類の異常スコア群から異常検知性能を比較し,最も成績の良かった異常スコア計算方法を,推論時に用いる画像処理パラメーターとして決定する。
推論時には,上記で自動選択されたパラメーターを用いて,検査画像の異常スコアを計算する。
3. 4 評価
提案手法の効果を確認するため,社内で収集した画像データを用いて評価実験をおこなった。収集した画像データのうち,回路基板画像は良品不良品ともに撮影し,金属平板画像は良品データを撮影後に一部画像データを加工して不良品とした。
評価に用いた回路基板画像は良品10枚不良品10枚,金属平板画像は良品15枚不良品15枚とした。画像再構成には,50枚程度の良品画像で学習したオートエンコーダーを用いた。
異常検知性能の評価指標にはarea under the ROC curve(AUC)を用いた。手法の有効性を確認するため,以下3パターンで比較した。
・Case 1. RGB色空間の差を用いる
・Case 2. HSV色空間の差を用いる
・Case 3. 学習データを用いて色空間を選択する
Case 3では画像データを用いて色空間を選択する必要があるため,評価には5分割の交差検証法を用いた。結果をTable 1 に示す。
Table 1 Experimental results using AUC in %.
Table 1 からCase 1とCase 2では,使用する色空間によって2つのデータセットで異常検知性能にトレードオフの関係があることがわかる。一方,提案手法を用いることで,適切な色空間を学習データから選択できるため,トレードオフを解消できた。結果画像例をFig. 3 に示す。
Fig. 3(c)のCase 1を見ると,上段の回路基板画像では欠陥部分のみで異常スコアマップが強く反応しているが,下段の金属平板画像では欠陥部分の反応が微弱であった。Fig. 3(d)のCase 2を見ると,上段の回路基板画像では欠陥以外の部分での誤反応が多く,良品の誤検知が増加する傾向がみられた。一方で下段の金属平板画像では,欠陥部分で異常スコアマップが強く反応しており,良好な結果であった。提案法であるFig. 3(e)のCase 3では,どちらの画像でも良好な異常スコアマップを確認できた。
今回の実験により,事前設定した一様な特徴量を使用した場合には異常検知性能にトレードオフが発生するケースにおいて,少量の不良品データを利用することで,性能改善することを確認できた。本技術はコニカミノルタの外観検査事業での活用を検討している。今後は外観検査の適用範囲拡大に向け,更なるロバスト性の向上を目指した技術開発を進める予定である。
4
事例紹介:教師あり学習による欠陥分類
4. 1 概要・システム構成
検査において欠陥種の分類は,修繕工程の自動化や前工程の改善等,生産工程DXにつながるため期待が大きい。画像を用いて欠陥分類をおこなうタスクは,古くから数多くの手法が検討・実用化されてきた。近年は深層学習ベースの分類手法も多く提案されている。
我々は工場でのライン検査を想定し,実用に耐えうるインライン欠陥分類機能を開発している。検査装置の全体構成例をFig. 4 に示す。
装置は被写体の搬送をおこなうベルト,固定照明,およびカメラで構成されている。カメラでは常に動画像を撮影している。まず,動画像に対し欠陥疑いの被写体が出現した画像フレームを抽出する。次に,抽出した画像フレームに対して欠陥種を分類する。
ここでは,欠陥種の分類機能を深層学習で実現するための取り組み事例について紹介する。
4. 2 実現に向けた課題
4. 2. 1 誤検知の混入
単純なクラス分類問題では,入力データは分類クラスのいずれかに属するよう前処理されていることが多い。例えば数字認識の公開データセットMNIST3)では,入力画像は0–9のいずれかの正解ラベルが付与されることを前提として作られている。
しかし実際の工場では,欠陥候補画像の中に欠陥ではない誤検知が多数混入している。誤検知の対策として単純には,欠陥種分類の中に誤検知に相当するクラスを設けるアプローチが考えられる。しかし,本来欠陥であるものを誤検知と見なすのは欠陥品の見逃しとなるため極力避ける必要がある一方,後の修繕工程の負担を下げるため誤検知は適切に除外する必要がある。このため,欠陥日/欠陥判定には欠陥種分類を上回る非常に高いレベルの精度が求められる。そのため,実際の工程での使用を想定する場合,欠陥の分類と言っても実際には,欠陥/非欠陥判定と欠陥種分類という,要求レベルの異なる2つのタスクを同時に解く必要がある。
4. 2. 2 データ数の不足
分類問題で高い性能を発揮する方法として,近年深層学習が注目されている。ただし,深層学習には多量のデータが必要とされている。例えば深層学習に最も多く使われるデータセットImageNet 4)では,1400万枚以上の画像を提供している。しかし一般的な生産ラインで生産されるのはほとんどが良品で欠陥のデータ数は非常に少なく,その中でもレアな欠陥の画像はほとんどデータが存在しないため,深層学習の適用は困難であった。
こうした課題に対応するため,別のドメインからの特徴の転用をおこなうTransfer Learning 5)や極少数のラベル付き画像を用いて学習をおこなうFew-Shot Learning 6)等が提案されている。しかし,外観検査画像の場合,一般画像は検査画像とのドメイン差が大きすぎるため,Transfer Learningの適用が難しい。また,別の外観検査画像や学習済モデルを用いる場合,それらは通常非公開であり更に見た目や注目点は検査毎に大きく異なるため,こちらも適用が難しい。Few-Shot Learningについてもその多くが事前知識として類似の画像やそこから求めた特徴量を用いて情報を補うものであり,外観検査画像という特殊なドメインへの適用は難しいと考えられる。そのため,実際の工程での使用を想定した場合,データ数は依然大きな問題であるといえる。
4. 2. 3 検査に寄与しないFrameの存在
ライン検査の場合,被写体がカメラ前を通過する間の時系列画像が得られるが,カメラや照明との位置関係により欠陥が見えるFrameは限定されている。そのため単純に時系列画像として処理した場合,大半のFrameがノイズとなり十分な精度が得られない懸念がある。
こうした問題への対応策として,注目Frameを検出してその周辺のみを解析に用いる方法が考えられる。注目Frameの検出は人行動の異常検知等の分野において多くおこなわれており,画像内の注目箇所を可視化するSaliencyやAttention7)等の手法が多く使われている。しかし,これらの手法では多量の学習データや多くの計算リソースを前提としていることが多く,データ数が限られ更に検査時間にも制限がある工場では適用が難しく,別の解決策が必要であった。
4. 3 課題への対応
ここでは上記で挙げた課題に対応するため今回検討した主な工夫について述べる。工夫はデータを解くための前処理に当たる部分と深層学習の性能を上げる部分に分けられる。全体の概要図をFig. 5 に示す。
4. 3. 1 前処理の工夫:注目Frameの自動選択/部分画像切り出し
人間が目視で欠陥を見る場合,無意識に被写体と光源との位置関係を変えながら,欠陥を認識しやすい位置を探している。一例として,傷の部分に影が出やすい様な照明位置を探す場合などが挙げられる。我々はこの点に着目した。具体的には,時系列画像の中で見た目の変動が大きい画像を注目Frameとして自動判定し,その周囲の部分時系列画像のみを抽出する処理を実装した。
学習用データのサンプリング方法にも工夫をおこなった。まず,時系列画像から注目Frame周辺を自動判定する際の条件を複数パターン用意することにより,1つの時系列画像から注目Frameが異なる複数の部分時系列画像を抽出した。次に,抽出した時系列画像に対してフレーム間引きすることにより,1つの時系列画像から疑似的にフレームレートが異なる複数の時系列画像を生成した。
これらの工夫により,解析対象を検査にとって重要な注目Frame周辺に限定しつつ,学習に十分なデータ数を確保することが出来た。
4. 3. 2 深層学習の工夫:マルチタスクネットワーク構造の活用
前述の通り,本システムでは欠陥/非欠陥判定と欠陥種分類の二つのタスクを解く必要がある。もっとも単純にはそれぞれのタスクを別々に解く方法が考えられるが,2タスクを別々に解く場合,処理時間の増加が懸念される。そのため我々はマルチタスクネットワーク構造を作成し処理時間の増加を抑えることを目指した。
4. 4 評価
今回は実際の工場で撮影された金属表面欠陥データで評価をおこなった。対象画像は白黒の時系列画像であり,欠陥の種類は傷や内包物の形状等に基づいた8種類と誤検知の計9種類で構成されている。
学習には計10,000枚程度の欠陥時系列画像を用い,その内最小クラスは300枚程度であった。実際の画像の例をFig. 6 に示す。
評価指標としては欠陥/非欠陥判定は誤検知除去率および欠陥検出率,欠陥種分類は各クラスの正答率の平均を評価値として用い,手法の有効性を確認するため,以下の3つのパターンで欠陥/非欠陥判定および欠陥種分類をおこない,比較をおこなった。
Table 2 Experimental results on real factory data.
・Case 1. 時系列画像をそのまま用い欠陥/非欠陥判定および欠陥種分類をそれぞれSingle taskとして解いた場合
・Case 2. 注目Frameの抽出をおこない欠陥/非欠陥判定および欠陥種分類をそれぞれSingle taskとして解いた場合
・Case 3. 注目Frameの抽出をおこない欠陥/非欠陥判定および欠陥種分類をMulti taskとして解いた場合
結果をTable 2 に示す。結果を見ると前処理により適切なFrameを抽出することで全体的に性能が大きく向上していることが分かる。またマルチタスクネットワーク構造とすることで性能を落とすことなく高速化を可能としている。
今回の検討により,深層学習による高性能な欠陥/非欠陥判定および欠陥種分類を実現することが出来た。現在,本技術を実際の工程へ適用するための検討を進めている。今後は更なる性能向上や適用範囲の拡大に取り組む予定である。
5
まとめ
少量の異常データで学習できるAI外観検査技術について,自社の取り組み事例を紹介した。開発した技術はコニカミノルタの外観検査事業およびセンシング事業の各領域で活用・検討が進んでいる。今後も製造業のDX推進に貢献するべく,画像IoT技術の開発を強化していく。