メルマガ登録
3次元データを活用した異常検知モデルであるBTFについて検証を進める連載記事です。本連載のメインテーマであるBTFモデルの検証結果については、次のリンクで紹介しています。【3D異常検知・本編】3次元データを活用した異常検知方法の検証 – Platinum Data Blog by BrainPad
本稿では、BTFモデルの精度検証のために利用されたMVTec 3D-ADデータセットを紹介します。
こんにちは。アナリティクスサービス部の尾村です。
本稿では、3次元データを使った教師なし異常検知を目的として、MVTec Software GmbH社により作成されたMVTec 3D-ADデータセットについて、紹介します。
近年では3Dセンサーの精度と可用性の向上により3次元データを取得しやすくなっており、様々な分野で3次元データによる位置合わせや物体検出、セマンティックセグメンテーションの手法が提案されています[MVTec 3D-AD]。
しかし、異常検知に関しては2次元画像を用いた手法が主に研究され、3次元データによる異常検知の手法はあまり提案されていませんでした。
その理由として、3次元データによる異常検知に適したデータセットが存在しなかったことが一つの原因と考えられますが、MVTec 3D-ADデータセットが公開されたことで、3次元データを用いた異常検知手法の研究が進むことが期待されています。
本稿では、MVTec 3D-ADデータセットに含まれるデータ種類や形式、さらには異常検知性能を評価するためにMVTec 3D-ADデータセットで推奨されている評価指標について紹介します。
MVTec Software GmbH社が公開している教師なし異常検知を目的に作成された3Dデータセットです[MVTec 3D-AD]。
産業用の3Dセンサー((Medium Zivid One Plus 3D camera))により取得された、10種類のカテゴリーについて、良品データと不良品データが用意されています。
さらに、不良個所のセグメンテーションも用意されており、画像内の不良個所の位置を特定するタスクに取り組む場合にも役立つように、不良品検出の性能検証のために作成されたデータセットです。
データセットは大きく分けて3種類あり、訓練用(training)、検証用(validation)、テスト用(test)です。
このうち、訓練用と検証用のデータセットには、教師なし異常検知を目的にしているため、良品データのみが含まれています。
次のようにカテゴリーは10種類あります。
データセット内での表記 | 意味 | ||
bagle | ベーグル | ||
cable_gland | ケーブルグランド | ||
carrot | 人参 | ||
cookie | クッキー | ||
dowel | ダボ | ||
foam | ウレタンフォーム | ||
peach | 桃 | ||
potato | じゃがいも | ||
rope | ロープ | ||
tire | タイヤ |
物体の種類と性質から次のように3分類に分けることもできます。
名前だけだとイメージしづらいモノもあると思いますので、MVTec 3D-ADデータセットに含まれる良品と不良品の例を全カテゴリについて、次の図に示しています。
不良品ラベルは細分化されており、正常を含む異常タイプは次の表に示すように、10種類あります。
データセット内での表記 | 意味 | ||
good | 正常 | ||
bent | 折れ曲がった | ||
color | 変色 | ||
contamination | 外的要因による変形等 | ||
crack | 砕けている | ||
cut | 切断されている | ||
hole | 穴が開いている | ||
open | ほどけている | ||
thread | ねじ山の潰れ | ||
combined | 複数の異常タイプが複合している |
各カテゴリに含まれる3Dスキャンデータ数や不良品数は、論文中で説明されている次の表を参考にしてください。
MVTec 3D-ADデータセットに含まれるデータは全て3次元データですが、3次元点群の保存形式のうち、Organized Point Cloudと呼ばれる形式で保存されています。
点群データの保存形式は、Unorganized Point Cloud、Organized Point Cloudの2種類に分類できます。
Unorganized Point Cloudは2次元画像やボクセルと異なり、各点が空間上にまばらに秩序なく配置されています。言い換えると、点間の隣接関係を保持していません。
一方、Organized Point Cloudは、この隣接関係を保持したデータ構造となります((What are Organized and Unorganized Point Clouds? – MATLAB & Simulink))。
このデータセットに含まれるOrganized Point Cloudは、3次元座標(X, Y, Z)と色(R, G, B)で構成された2種類の画像と、異常部分をセグメンテーションした画像で構成されており、それぞれをXYZ画像、RGB画像、GT画像と呼ぶことにします。
なお、GT画像((GTは、Ground Truthの略称で、正解データを意味します。))は、異常が含まれているテスト用データセットにのみ存在します。
XYZ画像、RGB画像、GT画像の画像サイズは同じであり、各画像のピクセル位置が対応しているため、対応する3次元座標点に色を付けたり異常部分であるかどうかのラベル付与ができます。
例として、次の図にMVTec 3D-ADに含まれるベーグルのOrganized Point Cloudデータを示しています。
MVTec 3D-ADに含まれるベーグルのOrganized Point Cloudデータの例。
上部が、XYZ画像を各チャネルに分けてグレースケールで可視化したもの。
下部が、左からRGB画像とGT画像を可視化したもの。
なお、XYZ画像については3次元データが取得できなかったピクセルを黒く塗り潰して表示している。
3次元データが取得できないピクセルが発生する理由として、カメラの死角や照明等による反射、センサーの誤検出などがあると説明されています。
Organized Point Cloudの形式で保存する利点としては、3次元の点群データを2次元画像として扱うことができるため、3次元データであっても、画像を入力とするResNetのような深層学習モデルを使うことができます。
MVTec 3D-AD論文では、このデータセットにおけるモデル性能評価のために評価指標が提案されています。
ここでは、2つの評価指標であるAU ROCとAU PROについて説明します。
AU ROCは、次の図のようにROC曲線(Receiver Operating Characteristic curve)と偽陽性率を表すX軸で囲まれる面積として定義されます。
なお、ROC曲線は、画像ピクセル毎に予測された異常度について、異常であるかどうかを判定するための閾値を変更することで、変化する真陽性率と偽陽性率の関係を可視化したものです。
AU ROCの計算方法は、粒度の違いにより、ピクセルレベルと画像レベルの2種類に分けられます。
ピクセルレベルは、全画像に対するピクセル毎の異常度から、画像を区別せずに、AU ROCを計算します。
画像レベルは、各画像についてピクセル毎の異常度を集約した1つの代表値から、AU ROCを計算します。
異常度の集約方法について、最もナイーブな方法としては異常度の最大値を取る方法がありますが、ノイズの影響を受けやすいため、どのような方法を採用するのかは注意が必要です。
ピクセルレベルのAU ROCには、高いほどモデル性能が高いとは言い難い、構造上の問題があります。
例えば、画像中に写る物体が占める割合が少ない場合、異常が存在しない背景部分の評価が支配的になり、見かけ上AU ROCは高くなります。
これは、AU ROCが高いからといって、正しく物体上の異常を判別できているとは言えない可能性を示しています。
AU PROは、この問題に関してロバストな指標であり、AU PROが高いと物体上の異常を判別できていると解釈できます。
AU PROは、PRO曲線(Per-Region Overlap curve)と偽陽性率で囲まれる面積として定義されます。
なお、PRO曲線は、画像ピクセル毎に予測された異常度に関する閾値を変更することで、変化するPROと偽陽性率の関係を可視化したものです。
PROは、以下の式で定義されます[MVTec AD]。
$$
\begin{equation}
\mathrm{PRO} = \frac{1}{K} \sum_{k=1}^{K} \frac{|P \cap C_k|}{|C_k|}
\end{equation}
$$
\(C_k\)は、真値の異常部分について、k番目の連続的に繋がったピクセルの集合を表します。
\(P\)は、異常であると予測したピクセルの集合を表します。
\(K\)は、真値の連続的に繋がった異常部分の個数を表します。
真陽性率と同様に、真値ではないところを誤って異常であると予測したときにPROは変化しません。
AU PROは、次の図のようにPRO曲線と偽陽性率を表すX軸で囲まれる面積として定義されますが、偽陽性率が0.3以下の領域で積分することが推奨されています。
これは、次の理由に起因していると考えられます:
PROの計算方法は、偽陽性率の大きさが値に影響しないため、異常部分を大きく予測すると良い評価値を示してしまう特徴があります。
しかし、MVTec 3D-ADデータセットでは、異常部分が全体の画像面積に対して少ないため、偽陽性率が十分に大きくなると予測が意味をなさなくなり、予測の信頼性が低下します。
この記事では、3次元データによる異常検知を目的として作成されたMVTec 3D-ADデータセットについて紹介しました。
このデータセットに含まれるカテゴリ種類やデータ形式について説明し、異常検知性能を適切に評価できるように考案されたAU PRO指標についても解説しました。
本稿で説明したMVTec 3D-ADデータセットを実際に使い検証した、3次元データを扱う異常検知モデルは、以下のリンクで解説しています。
なお、本稿で紹介するMVTec 3D-ADデータセット以前にMVTec Software GmbH社から公開されていた2次元画像であるMVTec ADデータセットは、プラチナブログですでに公開済みなので興味があれば参考にしてください。
<連載記事>
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説