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

推荐订阅源

WordPress大学
WordPress大学
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
博客园 - 司徒正美
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
D
Docker
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
腾讯CDC
T
The Blog of Author Tim Ferriss
小众软件
小众软件
U
Unit 42
T
Tailwind CSS Blog

又见苍岚

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 安装下载与黑屏问题解决方案 全局路径规划算法记录
异常检测 MemSeg
Yiwei Zhang · 2023-12-25 · via 又见苍岚

本文记录一篇生成异常数据用于自监督学习的异常检测工作 —— MemSeg。

基本信息

项目 内容 备注
方法名称 MemSeg
论文题目 MemSeg: A semi-supervised method for image surface defect detection using differences and commonalities
论文连接 https://arxiv.org/pdf/2205.00908v1.pdf
开源代码 https://github.com/TooTouch/MemSeg
发表时间 2022
方法类别 深度学习 -> 基于特征 -> 自监督学习
Detection AU-ROC 99.56%
Segmentation AU-ROC 98.84%
Segmentation AU-PRO -
FPS 31.3
核心思想 人工生成异常图像,用于训练自监督的分割网络,为限制网络泛化能力加入了记忆模块,利用注意力机制降低特征冗余,再利用U-Net跳跃连接做二轮的特征融合。一系列的操作将不同尺度信息充分融合又不冗余,实现检测及定位。

论文框架

上图为 MemSeg 整体架构,主要由 异常模拟、记忆模块和空间注意力组成。

异常模拟

监督学习分割网络关键在于生成异常数据,使用惯用套路,生成 mask,将其他图像叠加在 Mask 上,按照透明度融合在一起:
$$
I_n’=\delta\left(M\odot I_n\right)+\left(1-\delta\right)\left(M\odot I\right)
$$

生成的异常样本在特征空间中的表现:

记忆模块

输入为批大小为N的记忆样本(由正常图像随机选取所得),输入预训练好的编码器后得到三种尺寸不同的输出特征,分别为:N×64×64×64、N×128×32×32和N×256×16×16。由记忆样本得到的输出特征记作MI。

冻结ResNet的 block1/2/3 的参数保证高维特征与记忆信息统一,其余部分仍可训练。训练及推理阶段,通过原文公式(下式),比较距离。

$$ DI=\bigcup_{i=1}^N\|MI_i-II\|_2 $$

取距离最小的特征作为 $x$ 图像的特征:

$$ DI^{*}=\operatorname*{arg}_{DI_{i}\in DI}\sum_{x\in DI_{i}} $$

N个存储信息中,每个包括块1/2/3生成的三张特征图,将输入的三张特征图与N中所有的三个特征图比较找出距离最小的N中的三张特征图。将输入的三张特征图与和其距离最小的三张特征图连接形成CI。后经多尺度特征融合块,经U-Net跳跃连接(这里可以将一些模拟的可分性不强的异常特征去除,保证模拟的真实性。)进入解码器。

为什么不直接使用CI输入到空间注意模块进行计算呢?
作者解释道: 由于串联后不经过任何操作,输入到空间注意模块不可避免的会有特征冗余的问题,同时导致计算效率低下,一种合适的特征融合手段可以有效解决这些问题。

空间注意力

计算特征空间注意力权重:

$$ \begin{gathered} M_{3}=\frac{1}{C_{3}}\sum_{i=1}^{C_{3}}DI_{3i}^{*} \\ M_{2}=\frac{1}{C_{2}}\Big(\sum_{i=1}^{C_{2}}DI_{2i}^{*}\Big)\odot M_{3}^{U} \\ M_{1} =\frac{1}{C_{1}}\Big(\sum_{i=1}^{C_{1}}DI_{1i}^{*}\Big)\odot M_{2}^{U} \end{gathered} $$

训练

L1 损失和 focal 损失。L1 比 L2 保留更多边缘信息。focal 缓解样本不平衡问题,使模型专注于分割本身而不是样本的情况。

推断

直接端到端从输入图像到异常得分结果前向传播即可。

原始论文

参考资料

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