結論:不良が集まらない工程は良品学習、種類分けが要るなら不良学習

良品学習(教師なし異常検知、one-class異常検知とも呼ぶ)は、良品画像だけを学習し、良品の分布から外れたものを「異常」とします。不良学習(教師あり学習)は、不良画像に「傷」「打痕」「異物」などのラベルを付けて学習し、欠陥を種類ごとに見分けます。

製造現場で実際によくある状況は、不良率が低くて不良サンプルが集まらない、しかも過去に見たことのない欠陥が時々出る、というものです。この条件では良品学習が先に立ち上がります。一方、検査結果を工程にフィードバックして「この傷は搬送工程、この打痕はプレス工程」と原因工程まで切り分けたい場合は、欠陥の種類を出せる不良学習が要ります。量産ラインでは両者を組み合わせる構成が現実解になります。

PatchCoreとPaDiMは「良品の特徴の地図」と比べる

代表的な良品学習手法の2つは、どちらもImageNetで事前学習済みのCNNを特徴抽出器として使い、ネットワーク自体は再学習しません。違いは良品の特徴をどう持つかです。

PatchCoreは、CNN(ResNet系)の中間層から画像の小領域(パッチ)ごとの特徴を取り出し、良品の特徴を「メモリバンク」に貯めます。検査時は、入力画像の各パッチがメモリバンク内の最も近い良品パッチからどれだけ離れているか(最近傍距離)を異常度とします。メモリバンクはcoresetサブサンプリングで25%・10%・1%まで圧縮でき、1%なら100分の1の容量になります(Roth et al., CVPR 2022)。

PaDiMは、画像の位置ごとに良品の特徴を多変量ガウス分布(平均と共分散)で表します。検査時は、その位置の分布からのマハラノビス距離を異常度にします。位置ごとに分布を持つため、ワークの位置決めが安定していることが前提になります(Defard et al., arXiv 2011.08785)。

良品学習と不良学習のパイプライン比較 良品学習(PatchCore・PaDiM) 良品画像のみ 事前学習CNNでパッチ特徴を抽出 良品の分布を保持メモリバンク/ガウス分布 距離=異常度異常か否かのみ 不良学習(分類・検出・セグメンテーション) 良品+不良画像欠陥ラベル付き モデルを学習 欠陥クラスを推定傷・打痕・異物… 種類と位置未知の欠陥は苦手
良品学習(上)と不良学習(下)の処理の違い。良品学習は「良品との距離」、不良学習は「学習した欠陥クラスへの当てはまり」を出す。

公開ベンチマークMVTec ADでの精度は、PatchCoreが画像レベルAUROC最大99.6%、PaDiMが97.9%(EfficientNet-B5)と報告されています。ただし、OSSライブラリanomalibで再現したベンチマークでは、PaDiMの画像AUROCは0.891にとどまり、論文値より低くなりました(anomalib論文、arXiv 2202.08341)。手法名だけで精度を見積もらず、自社データで比べる必要があります。

PatchCore 画像AUROC(論文値)
99.6%
Roth et al.(CVPR 2022)、MVTec AD
PatchCore 画像AUROC(anomalib再現)
0.981
anomalib論文(arXiv 2202.08341)、MVTec平均
PaDiM 画像AUROC(anomalib再現)
0.891
同上。論文値97.9%より低い

使い分けの判断基準5つ

工程ごとに方式を決めるときは、次の5つを順に確認します。

#判断基準良品学習が向く不良学習が向く
1不良サンプルの集まり方年に数件、種類ごとに数枚しかない種類ごとに数十枚以上集まる
2未知の欠陥の出現新しい欠陥が時々出る欠陥の種類がほぼ固定
3結果の使い道合否判定と人の再判定で足りる欠陥種類を工程改善・原因工程に返す
4良品の見た目のばらつき小さい(色・模様が安定)大きい(自然なムラ・刻印違い)
5異常の性質傷・汚れなど局所的な見た目の違い欠品・配置違いなど論理的な異常も含む

4と5は見落とされがちです。良品の色ムラや刻印の違いが大きい製品では、良品学習がそのばらつきを異常と判定して過検出が増えます。また、部品の欠落や配置違いのような論理的な異常はパッチ単位の手法が苦手で、論理異常を含むMVTec LOCOを加えた3データセット平均ではPatchCoreは91.1まで下がります(EfficientAD論文)。

量産では2段構成で併用する

量産ラインで多い構成は、1段目に良品学習で「いつもと違う」ものを広く拾い、2段目で不良学習モデルが欠陥の種類を判定するものです。1段目で異常とされたが2段目のどのクラスにも当てはまらない画像は、人が判定して新しい欠陥クラスの候補として貯めます。

この構成の利点は、立ち上げ時は良品学習だけで動かし、不良画像が貯まるにつれて2段目を育てられることです。貯まる画像をロット・品番・設備と紐付けて保存しておけば、どの工程条件のときにどの欠陥が増えたかを後から分析できます。判定結果の記録方法は外観検査AIの判定結果をMESに戻す設計を参照してください。

よくある質問

PatchCoreとPaDiMのどちらから試すべきですか?

公開ベンチマークではPatchCoreのほうが高い精度を示しており、ワークの位置決めが多少揺れても扱いやすいため、最初の比較対象に入れることが多い手法です。ただし推論速度はRTX A6000で約32msと、EfficientADの約2msより遅いため、タクトの短いラインでは速度も合わせて比べてください。

不良学習には不良画像が何枚必要ですか?

欠陥の種類ごとに十分な枚数が必要で、まれな不良は集まらないことが多いのが実情です。集まらない欠陥クラスは良品学習側で拾い、人の判定を経て画像を貯める運用にすると、無理に枚数を揃える必要がなくなります。

良品学習の結果から欠陥の場所はわかりますか?

PatchCoreやPaDiMはパッチ単位で異常度を出すため、異常度の高い領域をヒートマップとして表示できます。欠陥の「種類」は出せませんが「場所」は示せるので、人の再判定を速くする材料になります。

この記事に出てくる用語

用語集(日・英・中)をすべて見る

この特集について

外観検査AIの選び方

良品学習か不良学習か、撮像系を誰が持つか。精度の数字だけで選ばないための比較軸 全51本

  1. 外観検査AIとは?2つの学習方式と導入5ステップを製造現場の目線で解説
  2. 製造業のAI活用10領域:外観検査・予知保全から設計・技能伝承まで一覧
  3. 外観検査AI製品の比較軸10項目:学習方式・撮像系の範囲・エッジ対応・再学習の手間
  4. 自動車メーカーのAI活用:溶接・塗装検査から生産計画・フィジカルAIまで10用途
特集の記事をすべて見る →

この記事を書いた人

株式会社サオス

株式会社サオス 製造DX部

DELMIA Apriso を中核とした MES / 製造DX の導入・運用・人材育成と、製造業向けAIの調査・開発・教育を手がけるITコンサルティング企業。ISO 9001:2015 / ISO 27001:2022 認証取得。 日本・中国・米国で製造業のMES・データ基盤・AI導入を手がけた実務者が、欧米・中国の一次情報にあたって書いています。