【计算机视觉】CVPR 23 新论文

2023-11-10

一、导读

DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection

论文为:

在这里插入图片描述
论文地址:

https://arxiv.org/pdf/2211.11317

二、背景

工业异常检测旨在发现产品的异常区域,在工业质量检测中发挥着重要作用。在工业场景中,很容易获得大量的正常示例,但缺陷示例很少。

大多数现有的工业异常检测方法都是基于2D图像的。然而,在工业产品的质量检查中,人类检查员利用3D形状和颜色特征来确定它是否是缺陷产品,其中3D形状信息对于判断是重要和必要的。

无监督异常检测的核心思想是找出异常和正态表示之间的区别。目前2D工业异常检测方法可分为两类:

(1)基于重构的方法。图像重建任务被广泛用于异常检测方法中,以学习正常表示。基于重建的方法对于单模态输入(2D图像或3D点云)很容易实现。但对于多模态输入,很难找到重建目标。

(2)基于预训练特征提取器的方法。利用特征提取器的直观方法是将提取的特征映射到正态分布,并将分布外的特征作为异常。

2.1 主要贡献

  • 提出了一种去噪学生编码器-解码器,它经过训练,可以从具有异常输入的教师那里显式地生成不同的特征表示。
  • 使用分割网络来自适应地融合多级特征相似性,以取代经验推理方法。
  • 在基准数据集上进行了广泛的实验,以证明我们的方法对各种任务的有效性。

2.2 网络介绍:DeSTSeg

在训练期间生成并使用合成的异常图像。在第一步骤(a)中,训练具有合成输入的学生网络,以从干净的图像生成与教师网络类似的特征表示。在第二步(b)中,学生和教师网络的归一化输出的元素乘积被级联并用于训练分割网络。分割输出是预测的异常得分图。

在这里插入图片描述

三、方法

  • 所提出的 DeSTSeg 由三个主要组件组成:预先训练的教师网络、去噪的学生网络和分割网络。
  • 将合成异常引入到正常训练图像中,并分两步训练模型。
  • 在第一步中,模拟的异常图像被用作学生网络的输入,而原始的干净图像被用作教师网络的输入。教师网络的权重是固定的,但用于去噪的学生网络是可训练的。
  • 在第二步中,学生模型也是固定的。学生网络和教师网络都以合成的异常图像作为输入,以优化分割网络中的参数来定位异常区域。
  • 为了推断,以端到端模式生成像素级异常图,并且可以通过后处理来计算相应的图像级异常分数。

3.1 Synthetic Anomaly Generation 合成异常生成

我们模型的训练依赖于使用 [Draem] 中提出的相同算法生成的合成异常图像。生成随机二维Perlin噪声,并通过预设阈值进行二值化以获得异常掩模 M。通过用无异常图像和来自外部数据源A的任意图像的线性组合替换掩模区域来生成异常图像 ,其中不透明度因子β在[0.15,1]之间随机选择:

在这里插入图片描述
表示逐元素乘法运算。异常生成在训练期间在线执行。通过使用该算法,介绍了三个优点。

首先,与绘制矩形异常掩模相比,随机Perlin噪声生成的异常掩模更不规则,与实际异常形状相似。其次,用作异常内容A的图像可以在没有精心选择的情况下任意选择。第三,引入不透明度因子β可以被视为数据扩充,以有效增加训练集的多样性。

3.2 Denoising Student-Teacher Network 去噪教师学生网络

在以前的多层次知识蒸馏方法中,学生网络(正常图像)的输入与教师网络的输入相同,学生网络的架构也是如此。然而,提出的去噪学生网络和教师网络以成对的异常和正常图像作为输入,去噪学生网络具有不同的编码器-编码器架构。在接下来的两段中,我们将研究这种设计的动机。

首先,建立优化目标,以鼓励学生网络生成不同于教师的异常特定特征。我们进一步赋予学生网络一个更直接的目标:在教师网络监督的异常区域上建立正常特征表示。由于教师网络是在大型数据集上预先训练的,它可以在正常和异常区域生成判别特征表示。因此,在推理过程中,去噪学生网络将生成与教师网络不同的特征表示。其次,考虑到特征重建任务,得出结论,学生网络不应该复制教师网络的架构。考虑到重建早期层的特征的过程,众所周知,CNN的较低层捕获局部信息,如纹理和颜色。相反,CNN的上层表达全局语义信息。

我们采用它作为去噪学生网络的架构。有一种替代方法可以使用教师网络作为编码器,并将学生网络反向作为解码器;初步实验结果表明,完整的编码器-解码器学生网络性能更好。一种可能的解释是,预先训练的教师网络通常在ImageNet上进行分类任务训练;因此,最后一层中的编码特征缺乏足够的信息来重建所有级别的特征表示。

在这里插入图片描述

3.3 Segmentation Network 分割网络

在这里插入图片描述

四、实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机视觉】CVPR 23 新论文 的相关文章

随机推荐

  • 《疯狂Java讲义》读书笔记(四):Java基础类库

    第七章 Java基础类库 使用Scanner获取键盘输入 Scanner类提供了多个构造器 不同构造器可以接收文件 输入流 字符串作为数据源 主要提供了2个方法 hasNextXXX 是否还有下一个输入项 XXX可以表示Int Long等
  • 记录SQL Server数据库中如何指定用户查看指定的视图

    exec sp addrole seeview 创建了一个数据库角色 名称为 seeview 分配视图权限 GRANT SELECT ON veiw TO 角色 指定视图列表 指定seeview这个角色可以查看的视图表名称 也就是这个角色可
  • QuickCam Gev 2.0 开发

    安装 QuickCam Gev2 0 版本比较老了 是2012 年还没被Dalsa收购时候的产品 因为项目需要 开发了其驱动 安装QuickCam Gev2 0的时候Ebus卡住安装不上 但是不能cancel了 打开QuickCamGev
  • spyder_console窗口错误_An error ocurred while starting the kernel

    按照上面的要求安装spyder kernels 但是依然出错 通过观察右下角发现spyder选用的python版本是python3 9 16 而自己通过python版本查看发现默认的3 9 13 所以安装好的是base环境3 9 13 切换
  • java中JVM的原理

    看过JVM讲解最好的 一 Java虚拟机的生命周期 Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务 执行Java程序 程序开始执行时他才运行 程序结束时他就停止 你在同一台机器上运行三个程序 就会有三个运行中的Jav
  • erpadmin答疑为什么企业有很多“不上ERP等死,上了ERP找死”

    不上ERP等死 上了ERP找死 如何破除这个 魔咒 希望erpadmin总结的如何做好ERP系统实施工作的方法对你有所启发 ERP是建立在信息技术基础上 整合了企业管理理念 业务流程 基础数据 人力物力财力 计算机硬件和软件于一体的企业资源
  • 使用B站API:http://api.bilibili.com/x/space/upstat?mid=2026561407获取播放量、点赞量的返回报文中data数据缺失问题排查(已解决)

    背景 想要用ESP32获取一些b站上的数据粉丝量播放量等数据 获取粉丝数的API http api bilibili com x relation stat vmid 2026561407 获取播放量的API http api bilibi
  • script 标签 async 属性

    script 标签 async 属性 普通script 文档解析的过程中 如果遇到script脚本 就会停止页面的解析进行下载 但是Chrome会做一个优化 如果遇到script脚本 会快速的查看后边有没有需要下载其他资源的 如果有的话 会
  • python-django的JsonResponse返回中文数据编码问题

    JsonResponse res 方法1 直接加这一句即可 json dumps params ensure ascii False return JsonResponse user 王 password 123456 json dumps
  • 一文读懂卷积神经网络CNN(学习笔记)

    来源 机器学习算法与自然语言处理 作者 白雪峰 本文为图文结合 建议阅读10分钟 本文为大家解读如何简单明了的解释卷积 并且分享了学习中的一些方法案例 首先文章的提纲为 CNN栗子镇楼 What is CNN
  • 期货交易大神的分享,有用的策略

    1 每天只做一次 开盘后行情形成后开仓 2 在价格走势很慢的时候进入 开完仓价格朝着不利方向走 就无条件平仓 当天不再做第二次 3 开完仓价格朝着有利的一侧运行后 确认后在开仓价设好止损 通过条件单或闪电手自动止损功能 不再关注行情 收盘之
  • #pragma once用法总结,及与 #ifndef方式的区别

    1 pragmaonce这个宏有什么作用 为了避免同一个头文件被包含 include 多次 C C 中有两种宏实现方式 一种是 ifndef方式 另一种是 pragma once方式 在能够支持这两种方式的编译器上 二者并没有太大的区别 但
  • MATLAB 学习笔记(3)MATLAB 矩阵的进阶操作

    目录 MATLAB 矩阵标量操作 实际例子 MATLAB 矩阵的转置 实际例子 MATLAB 串联矩阵 实际例子 MATLAB 矩阵的行列式 MATLAB 逆矩阵 详细例子 MATLAB 矩阵标量操作 标量指的是只有大小没有方向的数 与之相
  • 大学数学竞赛常用不等式_第三届全国大学生数学竞赛初赛(专业组)

    系列传送门 陆艺 第一届全国大学生数学竞赛初赛 专业组 陆艺 第二届全国大学生数学竞赛初赛 专业组 陆艺 第三届全国大学生数学竞赛初赛 专业组 陆艺 第四届全国大学生数学竞赛初赛 专业组 陆艺 第五届全国大学生数学竞赛初赛 专业组 陆艺 第
  • SpringBoot+MyBatis:解决前端上传文件并将url保存到数据库

    前言 最近也是遇到了这个问题 最后成功解决 前期在网上搜索了很多内容 发现都很复杂而且都不尽相同 况且不同的开发软件 不同的配置都会增加我们参考时的麻烦 这里为大家放上了更加简便的方法 开发软件 SpringToolSuite4 个人认为比
  • Allegro如何取消网络高亮

    有时PCB里面不知道为什么有很多网络和焊盘高亮 看着很不协调 想要取消高亮的方法为先点击Dehilight 然后在Options的Dehighligh all里面选择all 如下图 高亮 取消高亮
  • 关于单片机头文件的使用方法

    在单片机的使用中 我们经常会在文件的开始部分进行头文件的定义 即使我们在编写十分简单的LED驱动程序时 往往也引用了头文件 include
  • AttributeError: module ‘time‘ has no attribute ‘clock‘

    报错 AttributeError module time has no attribute clock 原因是 Python3 8 不再支持time clock 但在调用时 非本工程文件CBTaggingDecoder依然包含该方法 修改
  • Spark中json字符串和DataFrame相互转换

    本文介绍基于Spark 2 0 的Json字符串和DataFrame相互转换 json字符串转DataFrame spark提供了将json字符串解析为DF的接口 如果不指定生成的DF的schema 默认spark会先扫码一遍给的json字
  • 【计算机视觉】CVPR 23 新论文

    文章目录 一 导读 二 背景 2 1 主要贡献 2 2 网络介绍 DeSTSeg 三 方法 3 1 Synthetic Anomaly Generation 合成异常生成 3 2 Denoising Student Teacher Netw