skip-GANomaly复现总结

2023-05-16

文章目录

  • skip-GANomaly复现总结
    • 附MvTec数据集
    • 介绍
    • 实验结果
    • 总结
      • 谈谈我对于skip-GANomaly的看法
      • 最后的感想
    • 代码

skip-GANomaly复现总结

附MvTec数据集

链接:https://pan.baidu.com/s/17giC2Rf5FL5XjNM0AaXrlA
提取码:slv2

介绍

skip-GANomaly结合了UNet和GANomaly这两种模型,使用了skip-connection的网络结构。如下图所示
在这里插入图片描述在这里插入图片描述

  • skip-GANomaly由一个自编码器和判别器组成。也可以把自编码器的部分看作是一个生成器。编码器与解码器之间有skip-connection连接。
  • 生成器通过三个损失函数按照一定的权重相加得到的总损失函数进行优化。这三个损失函数分别为:原图像和生成图像的重构误差;生成器生成的图像经过判别器判别得到的交叉熵(也可以称作对抗损失);生成图像与真实图像经过判别器隐含层的输出的均方误差。
  • 判别器通过真实图像与生成图像的交叉熵进行优化(经典的GAN的优化方法)

实验结果

  • 数据集:MvTec-grid;将训练数据缩小至128*128并进行随机分割,分割大小为64*64小图片;扩增后的训练数据一共有13200个
  • 参数设置:Adam;lr=0.002;opech=50,batchSize=132;其他参数见代码
  • 结果
    左(原始图像);中(重构图像);右(残差)
    在这里插入图片描述
    残差真值
    在这里插入图片描述
    残差热力图
    在这里插入图片描述
    左(原始图像);中(重构图像);右(残差)
    在这里插入图片描述
    残差真值
    在这里插入图片描述
    残差热力图
    在这里插入图片描述

在这里插入图片描述

  • ac: 0.9423558897243107
  • best_accuracy: 0.9358974358974359
  • best_thre: 0.18796310469498784
  • best_F1_score: 0.9661016949152543
  • 从测试结果来看,对于铁丝网扭曲的这种类型的缺陷,检测效果不是很好;但是对于有异物出现在网格上的这种缺陷,检测效果还是比较好的。

总结

谈谈我对于skip-GANomaly的看法

  • 优点:
  1. 加入了skip-connections确实提高了重构效果。
  2. skip-GANomaly的生成器是image-to-image的,生成器中全部使用的是卷积层或者反卷积层,没有用到全连接层。这样带来一点好处就是生成器的输入不受图像大小的约束。
  • 缺点:
  1. 我在仿真的时候按照论文中的设置,给自编码器的每一层都加上了skip-connection,结果导致在测试样本上的重构效果太好,以至于连缺陷都重构出来。skip-connection太多会导致模型过拟合,输入和输出直接划等号。经过调参,最终保留最下边一层的skip-connection。即使是这样,仍然会把缺陷部分轻微地重构出来。
  2. 我一直觉得skip-GANomaly和GANomaly都已经不能再称之为GAN。因为模型中作出主要贡献的实际上是自编码器。自编码器使用精确的一对一的均方误差来衡量生成图像与原始图像的差距;而GAN使用我们神经网络以一种我们也不清楚的方式来衡量生成图像与原始图像的差距。skip-GANomaly和GANomaly将两种衡量方式以很直观的方式结合到一起,这就会导致说不清楚这两种方式究竟谁在起主导作用。不过论文中的实验参数以及我自己的调参结果说明:是自编码器在起主导作用

最后的感想

数据集很理想,尽管有旋转,有位移,有光照变换,但是想要真正实际情况中让模型起到作用还有很长一段路要走。

代码

https://github.com/qqsuhao/skip-GANomaly-MvTec-grid

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

skip-GANomaly复现总结 的相关文章

随机推荐

  • Activiti学习笔记六 流程实例 任务 执行对象控制流程执行

    上一篇我们看了流程定义 xff0c 我们接下来看一下流程实例 xff0c 任务 xff0c 和执行对象 流程实例 任务的执行 1 流程图 2 部署流程定义 private final ProcessEngine processEngine
  • datetimepicker 控件验证问题

    34 baseStudents activistTime 34 trigger 39 blur 39 validators notEmpty message 39 确定积极分子时间不能为空 39 span class hljs tag lt
  • eclipse中SVN分支合并到主干

    在项目开发中 xff0c 需要添加一些新的功能 xff0c 但是又不想影响到其他开发人员的项目进度 xff0c 所以决定使用SVN分支进行开发 xff0c 分支开发完毕后再合并到主干 本文介绍如何在eclipse中合并分支到主干 要想将分支
  • 阿里云服务器

    一年多之前 xff0c 也就11年5月份的样子 xff0c 阿里云云服务器产品线终于上线了 但那时候 xff0c 国内完全没有能称得上云服务器的 xff0c 很多小公司就是搞个VPS就叫云服务器了 以至于阿里云云服务器刚出来的时候 xff0
  • mac 下 使用 iterm2 配置及快键键使用

    mac 下 使用 iterm2 配置及快键键使用 标签 xff08 空格分隔 xff09 xff1a mac 之前介绍过一篇关于mac 下使用和配置 iterm2的blog 今天这篇稍微详细一点介绍 并且搭配 zsh zsh 会单独开一篇博
  • Java实现快速排序

    一 原理 快速排序算法通过多次比较和交换来实现排序 xff0c 其排序流程如下 xff1a 1 首先设定一个分界值 xff0c 通过该分界值将数组分成左右两部分 2 将大于或等于分界值的数据集中到数组右边 xff0c 小于分界值的数据集中到
  • C#,生信软件实践(03)——DNA数据库GenBank格式详解及转为FASTA序列格式的源代码

    1 GenBank 1 1 NCBI 美国国家生物技术信息中心 xff08 美国国立生物技术信息中心 xff09 NCBI xff08 美国国立生物技术信息中心 xff09 是在NIH的国立医学图书馆 xff08 NLM xff09 的一个
  • 【坑】zsh和oh-my-zsh卸载后导致无法登陆

    apt get remove zsh 然后断开终端 xff0c 就再也连不上了 xff0c 崩溃啊 xff01 以下登陆为www用户登陆 各种找 xff0c 到这里 https www cnblogs com EasonJim p 7863
  • 获取最近使用应用列表

    获取最近使用的应用列表需要使用到UsageStatsManager类 xff0c 还需要申请允许防御应用使用情况的权限 private void getPackagesInfo UsageStatsManager manager 61 Us
  • 使用MediaProjectionManager进行截屏

    最近项目中有用到远程截屏并上传截屏文件的需求 一开始使用的是以下方法进行截屏 xff1a private void screenshot 获取屏幕 View dView 61 getWindow getDecorView dView set
  • 安卓TV开发遇到的那些坑

    最近公司需要开发一个TV的luancher xff0c 就是那种纯物理按键的遥控 xff0c 没有触摸屏 xff0c 现在说说我踩得那些坑 xff08 其实布局和代码逻辑和正常的安卓应用差不多 xff09 1 焦点 焦点 焦点 xff0c
  • 安卓TV列表刷新时焦点自动变成第一个

    最近在开发安卓TV项目 xff0c 列表调用notifyDataSetChanged xff08 xff09 方法刷新数据时 xff0c 焦点自动就变成第一个子item去了 xff0c 查了半天发现用notifyItemRangeChang
  • 安卓蓝牙BLE设备通讯发送和接受超过20个字节的问题

    最近做的项目是手机端和BLE设备通讯 xff0c 而BLE设备又做了限制一次包只能传递20个字节的数据 xff0c 多了就得分包发送 xff0c 在这里记录一下如何解决这个问题 xff08 PS xff1a 之前链接什么的回调什么的 就不过
  • 获取最近运行应用方法和杀进程的方法

    最近公司的项目有个需求就是获取最近手机正在运行的进程 xff0c 以及杀掉进程 就是类似于安卓手机中的长按home键的效果 先说说获取最近手机正在运行的进程方法 xff1a 直接上代码 xff0c 代码中有注释 xff1a appbeans
  • 把自己的应用程序push至system/app下,把自己的app改成系统级别的app

    想把一个应用程序放入到系统文件夹下的话 xff0c 手机必须的root的情况下才能push进去 下面我就说说步骤吧 xff1a 1 先把手机用USB和电脑连接 2 如果电脑配置了adb的环境的话直接cmd xff0c 未配置环境的话找到sd
  • ConcurrentModificationException异常出现原因以及解决方法

    今天在开发过程中遇到一个异常叫ConcurrentModificationException xff0c 这个异常用我的白话翻译是叫同时修改异常 这个异常是怎么出现的呢 xff0c 先看看已下的代码 xff1a span class hlj
  • retrofit中使用body标签传RequestBody

    现在的Android开发者基本上都用过retrofit这个第三方网络请求库吧 xff01 xff01 xff01 网络请求中有get post delete和put等等请求方式 现在我们需要用到post请求 xff1a span class
  • SpringBoot配置拦截器拦截器使用

    拦截器介绍 Java中的拦截器是动态拦截 action 调用的对象 xff0c 然后提供了可以在 action 执行前后增加一些操作 xff0c 也可以在 action执行前停止操作 xff0c 功能与过滤器类似 xff0c 但是标准和实现
  • 百度地图上根据经纬度集合绘制行车轨迹

    以下是素材 最近项目中用到了根据一段线路的经纬度集合来在地图上播放该车辆的行驶轨迹的需求 下面我就讲一下我实现步骤 效果图如下 因为制作gif图为了控制大小去掉了很多帧 不必在意这些细节 嘿嘿 1 首先在界面上展示百度地图 这不是废话么 如
  • skip-GANomaly复现总结

    文章目录 skip GANomaly复现总结附MvTec数据集介绍实验结果总结谈谈我对于skip GANomaly的看法最后的感想 代码 skip GANomaly复现总结 附MvTec数据集 链接 xff1a https pan baid