はじめに
MVTec ADとは産業向けのビジョンソフトを手がけるMVTec Software社が提供する外観検査向けデータセットです。
CVPR2019でデータセット公開されて以降、画像異常検知のアルゴリズム開発は飛躍的に進み、その検出精度(Detection AUROC)は99%を超えるほどまでになりました。
本稿作成時のSoTAはMVTec AD全15品目の半数以上を100%精度で検出可能としています。
「難タスクと思われたMVTec ADもこれにて終結か!?」という状況でしたが、2021年度MVTec Software社は新たに2つの異常検知データセットを公開しました。
本稿ではこの中の"MVTec Logical Constraints Anomaly Detection Dataset"に関する論文を読み解き紹介します。
MVTec LOCO AD
論文:Beyond Dents and Scratches: Logical Constraints in Unsupervised Anomaly Detection and Localization
コンセプト
従来のMVTec ADで扱っていた欠陥のほとんどは"へこみ"、"引っ搔き傷"、"汚れ"といった構造的な不良を扱っています。しかし産業分野における検査ではこういった構造的不良の他に、以下のような論理的なルールに基づいた不良を取り扱う場合があります。
- 回路が誤って配線されている
- 瓶の充填レベルがシフトしている
- 一部の部品が欠落している
MVTec Logical Constraints Anomaly Detection(MVTec LOCO AD)はこの構造的異常と論理的異常をバランスよく含んだデータセットです。
データセットの内訳
MVTec LOCO ADは5つの品目で構成され、その内訳は下記表にまとめられています。
trainとtestとは別にvalidationデータがあらかじめ用意されている点、8~22種と多様な不良を扱う点が従来のMVTec ADと異なる要素になると思います。
各品目の欠陥例
本節で5つの品目の概要と欠陥例を簡単に説明します。
なお各欠陥種類については論文Appendix-Dに記載されています。
Breakfast Box
左側に2つのタンジェリン(みかん)と1つのネクタリン(桃)。右側にシリアルとバナナチップ+アーモンドが一定比率で充填されます。
Screw Bag
ワッシャー2つ、ナット2つ、長いネジ1つ、短いネジ1つで構成される部品セットが透明な袋に封入されています。
Pushpins
箱の各コンポーネントごとに1つ画鋲を配置されます。
Splicing Connectors
クランプ数とケーブルの色が1対1で対応。全体は鏡面対称の構造となり、ケーブルは両端で同じ相対位置に接続される必要があります。
Juice Bottle
3つの異なるジュースのいずれかが充填され、各ボトルで同じ充填量となることが必要。ボトルには2つのラベルが貼り付けられ、1つは中央に液体の種類を示すアイコン、もう1つは下部に「100% Juice」のラベルが貼られます。
アノテーションの方針
構造的な欠陥に対するアノテーションは簡単ですが、論理的な欠陥に対してアノテーションを行うのは難しいものとなります。画鋲がないコンポーネントを含んだ欠陥サンプルでその例を示します。
この場合、以下の2つの方法でマークすることが考えられます。
- コンポーネント全体を異常とマークする
- コンポーネント内に画鋲のサイズと形状で領域をマークする
これらはおそらくどちらの方法でも検知に成功したとみなすことができます。本データセットの評価にはこういった曖昧さを考慮する必要があります。
本データセットでは、異常の原因となる可能性のある画像のすべての領域が異常としてアノテーションされています。ただし、完全なスコアを達成するために、ground truthの領域全体を異常として予測する方法は必ずしも必要とはしていません。これを反映するため著者らは新しい評価指標を導入しています。
評価指標 sPRO
新たな評価指標として、PROを拡張したSaturated Per-Region Overlap (sPRO)を提案しています。PROとは欠陥検出の性能を欠陥領域ごとに評価する評価指標です。詳しくは下記記事を参照ください。
sPRO算出式を示します。各欠陥領域ごとにあらかじめsaturation thresholdを設けておくことで、先で挙げられた曖昧さを吸収して評価値を算出できるようにしています。
$$
\operatorname{sPRO}(P)=\frac{1}{m} \sum_{i=1}^{m} \min \left(\frac{\left|A_{i} \cap P\right|}{s_{i}}, 1\right)
$$
{${A_{1}, \ldots, A_{m}}$}: 全ground truthの欠陥領域のセット
{${s_{1}, \ldots, s_{m}}$}: 各欠陥領域に対応するsaturation thresholdのセット※
$P$: データセット内で異常と予測したピクセル数
※ 論文Appendix-Dに不良タイプごとのsaturation thresholdが記されています
以下の図は予測結果ごとにPROとsPROがどのように変化するかを示しています。
Ground Truthはコンポーネントの領域全体に対してアノテーションがされていますが、(2)のセグメンテーション結果で十分に異常領域をセグメンテーションできたとみなされsPROは1.0となります。
sPROの指標はPROと同様に誤検知の予測を考慮していません。そこで偽陽性率(FPR)の指標と合わせて評価をするsPRO曲線を使用します。2値化の閾値を変化させFPRとsPROの値をプロットすることで、一般的なROC曲線と同様に作成できます。この曲線下の面積(AUC)を求めることで、閾値に依存せずセグメンテーション性能を測ることができます。ただし高いFPRはセグメンテーションとしての意味をなさなくなるため、FPRの範囲を制限して正規化を行った上でスコアを取得することを推奨しています。
MVTec Software社はデータセットと合わせて評価用のコードを公開しています。本データセットを使用する場合はこちらのコードを参照し評価を行いましょう。
評価結果
以下にAU-sPRO(5%FPRで正規化)による評価結果を示します。
本論文で新たに提案した手法がもっとも高いスコアを示しましたが、スコア1.0には遠くおよびません。
また本論文ではAU-sPROの他に、画像単位の評価評価であるDetection AUROCでも評価を行っています。
MVTec ADでは0.99を超える精度がSoTAとなっていましたが、こちらは0.833と改善の余地を大きく残す結果となりました。
"MVTec LOCO AD"でフォーカスしている「構造的な不良」と「論理的な不良」の両方を検知するには、画像の視覚的な特徴に加えて意味的(セマンティック)な特徴も捉える必要があり、難易度が上がっています。
このように本データセットにおける異常検知は課題が残る状態といえます。
まとめ
以上、MVTec Software社から新たに公開されたデータセット"MVTec LOCO AD"を紹介しました。
本データセットは産業分野の実検査を想定したものであり、このタスクを解くことが異常検知アルゴリズムの適応シーン拡大につながっていきます。MVTec ADの登場が異常検知アルゴリズムの進展を加速させたように、こちらの領域でも進展を期待したいですね。
画像異常検知に興味ある方、MVTec ADが物足りなくなった方、我こそは!と思う方、ぜひ本論文やデータセットに触れてみてください。
Comments
Let's comment your feelings that are more than good