惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
雷峰网
雷峰网
博客园 - 【当耐特】
V
V2EX
WordPress大学
WordPress大学
IT之家
IT之家
Last Week in AI
Last Week in AI
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
The Cloudflare Blog
Jina AI
Jina AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
异常检测 PatchSVDD
Yiwei Zhang · 2023-12-25 · via 又见苍岚

本文记录神经网络用于一分类异常检测的改进工作 —— PatchSVDD。

简介

改进 deep SVDD,提高异常检测能力与添加瑕疵定位能力,输出异常位置的热力图。

Patch 级中心

核心改动为将 Deep 的整图输入改为 Patch 输入,如果将图片划分为多个块,有的块是背景有的块是物体,那么将这些块映射到一个超球空间是不合理的,本文提出将空间相近的块给映射到一起。

但这样会引入一个新问题,那么空间相近的块就会倾向提取出相似的特征,本文利用自学习方法让编码器提出的特征具备位置可分特性。

本文提出的优化损失函数为:

$$ \mathcal{L}_{\mathrm{SVDD'}}=\sum_{i,i'}\|f_\theta(\mathbf{p}_i)-f_\theta(\mathbf{p}_{i'})\|_2 $$

$p_i$ 为轮训图片的一个 Patch,$p_{i’}$ 为 $p_i$ 的空间临近点。

该 Loss 强行拉近位置相近 patch 特征的距离,可能会损坏 patch 的信息,文章假设提取出的特征能够分辨出位置信息,那么可以认为该体特征依然保留了有用的特征信息。

参考Unsupervised visual representation learning by context prediction提出的前置任务

自监督学习

确定好patch的大小后,随机在图片中选择一个patch,作为中心位置,画一个9宫格,那么对应的位置分别1-8.$C_\phi$ 代表分类网络Classifier,$P_{1}$为中心点,$P_{2}$是8个位置的任意一点,分类器需要识别 $P_{2}$ 是哪一个位置。

自监督学习 Loss 定义:

$$ \mathcal{L}_{\mathrm{SSL}}= \mathrm{Cross- entropy}\left ( y, C_{\phi}\left ( f_{\theta}( \mathbf{p} _{1}) , f_{\theta}( \mathbf{p} _{2}) \right ) \right ) $$ 总的 Loss 定义为: $$ \mathcal{L}_{\mathrm{Patch~SVDD}}=\lambda\mathcal{L}_{\mathrm{SVDD}}+\mathcal{L}_{\mathrm{SSL}}. $$

该 SSL loss 会提升对象类的图像的异常检测性能,对于纹理类的图像性能收益不大。因为纹理中很难识别到位置信息,而且理论上纹理存在很多重复部分,提取的特征本来就具备相似性。

推断

训练好encoder 后,提取并保留所有训练数据中的 Patch 特征,给定一个查询图像 $x$,其中的每个 Patch 通过编码器提取特征,每个Patch 特征在训练特征中距离最新的特征距离为该 Patch 的异常得分。

$$ \mathcal{A}_\theta^{\mathrm{patch}}(\mathbf{p})\doteq\min_{\mathbf{P}_{\mathrm{normal}}}\left\|f_\theta(\mathbf{p})-f_\theta(\mathbf{p}_{\mathrm{normal}})\right\|_2 $$

该推断过程在 MVtec 数据集中需要 0.5s。

参考资料

文章链接:
https://www.zywvvd.com/notes/study/deep-learning/anomaly-detection/patchsvdd/patchsvdd/