実務で使える異常検知 SOTA 手法PatchCore機械学習の社会実装勉強会第14回Henry2022/8/27
View Slide
自己紹介■ 東京大学理学部情報科学科■ 同大学大学院情報理工学系研究科コンピュター科学専攻■ 博士(情報理工学)取得● ICMLなどの国際・国内学会・ジャーナルに論文発表● 学振DC2● AIPチャレンジなどの競争的研究費取得● 中国の東北大学などを訪問■ 在学中に株式会社パンハウスを共同創業2
内容■ 画像異常検知■ PatchCore■ デモ3
画像異常検知■ 想定シーン● 自動車部品工場・サラダ工場など■ 問題設定● 正常データはたくさんある■ 正常部品が手元にある■ ある程度集められる● 異常データはほぼない■ すべての異常パターンを網羅的に用意することが難しい■ そもそも異常パターンがまれ■ AIにやってほしいこと● 正常データだけでモデル構築して、運用時に異常検知できる● 「Unsupervised Anomaly Detection」とも呼ぶ4
最近のアプローチImageNetで学習されたモデルを活用■ ImageNetは巨大なデータセットで、それを学習したモデルはだいたいのドメインの特徴量を取り出せる、と仮定■ 上記モデルと使って、画像の特徴量が簡単に出せる■ 特徴量間の距離を上手く使えば、学習なしで異常検知できちゃう?■ はい、実際高精度でできてしまう5
内容■ 画像異常検知■ PatchCore■ デモ6
PatchCoreとは■ Towards Total Recall in Industrial Anomaly Detection,CVPR 2022■ 工業異常検知用データセット MVTec AD において現状SOTA● https://paperswithcode.com/sota/anomaly-detection-on-mvtec-ad7
PatchCoreの中身8
PatchCoreの中身以下の3つの部分からなっている■ 特徴量作成● 手元にある正常画像に関する特徴量を作成■ 特徴量サンプリング● 上記ステップで作成される特徴量が膨大● 保存・距離測定時の探索のコストがかかるので、少なめにする■ 距離測定● 運用時に新しい画像が来るときに、正常の特徴量との距離を持って異常の度合いを決める9
(1/3) 特徴量作成■ 先行研究PaDiMの図示と大まかに同じことをやっている■ ある座標 (i, j) に対して● 周り window size p の特徴量を adaptive average pooling● 中間の2つの層だけを取り出す■ 上記PaDiMの図では3つを示してる■ 後ろよりすぎだと、特徴量がImageNet分類に特化しすぎ問題● 短い方を bilinearly rescale して長さ揃って concat する10
(2/3) 特徴量サンプリング■ ここで使う Coreset はもともと独立に研究された分野で、色んな手法が確立された■ 最近は、機械学習に影響しつつあり、回帰や能動学習などに使われ始めている■ ある目的の達成が維持されるような部分集合を探す● k-NN、回帰を行うときに見つかる関数が変わらない■ 今回は最大カバレージを求める11
(2/3) 特徴量サンプリング■ Toy データでの Coreset VS Random Sampling 効果12
(3/3) 距離測定■ 新しい画像に対する異常スコア s を coreset 内要素との最短距離で計算■ s は s* を coreset 内要素の分布を考慮してスケールした値になる13
実験結果(すごく良かったよ、何ならSOTA)14他にも ablation study 色々...
内容■ 画像異常検知■ PatchCore■ デモ● 公式実装https://github.com/amazon-research/patchcore-inspection15