f-AnoGan阅读笔记
声明
本人是做织物瑕疵检测的,处理的小数据量,想从这篇文章找灵感,记下自己的阅读笔记。然后是接触深度学习的小萌新,也是第一次写博客,若有错误,请指证不胜感激。
补充一些内容
在此之前先了解下它的前身AnoGAN,不理解它的原理不太好理解f-AnoGAN。
论文链接:Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery
这是第一篇GAN用于anomaly or novelty detection的文章。对于这篇文章的个人理解就是利用GAN网络的图像重建能力去修复异常图像,将重建图与原图做残差来定位异常。关于GAN网络的理解推荐看这一篇博客GAN的理解总结(建议先了解GAN的基本原理再看)。
我在异常检测论文解读—AnoGAN中看到这么一句话:仅利用正常样本在DCGAN上无监督地学习正常样本的一个在隐空间中的流形分布。GAN的模型结构如图1,隐空间就是图中的latent space,在代码里就是我们用的随机噪声z。关于流形分布,它有个定律:自然界中同一类别的高维数据,往往集中在某个低维流形附近。个人认为也是因为这个定律使得用GAN异常检测的实现成为可能。
图1 GAN模型结构
隐空间这个概念比较抽象,我是这么理解的:我们都知道神经网络的本质就是一个特征提取器,我们对图像进行特征提取,从数据量角度来看图像数据得到压缩,从特征角度看是提取后得到的核心特征得到保留;换句话说就是我把图像的信息压缩成了n个点,这些点所在的空间就是隐空间,我能通过这n个点还原出原图像,这个和自编码器是一个道理。所以GAN网络的生成器,本质上是对隐空间中的点采样,然后解码回到图像空间,显然在隐空间两个相近的点经过生成器后在图像空间来看是相近的。
AnoGAN训练原理
它分两个阶段,训练阶段就是拿DCGAN去训练,得到生成正常图像的生成器,没啥特别的。主要是它的测试阶段,提供了一张异常图,我们想通过生成器生成它所对应的正常图,就需要知道它在隐空间的点集,来保证它的核心特征。这里就要提到流形分布定律了,异常图和需要生成的正常图在图像空间来看无疑是很类似的,所以它们会集中在低维流形附近,也就是说它们对应的隐空间向量是近似的。所以测试阶段要保持模型参数不变,反向迭代训练得到向量,就有。这么看来这样的测试阶段无疑是不美丽的、繁琐费时的,而这也是f-AnoGAN主要的改进地方。
f-AnoGAN训练原理
论文链接:f-AnoGAN: Fast unsupervised anomaly detection with generative adversarial networks
图2 F-AnoGAN训练原理
和AnoGAN的差别可以从图二就可以看出来了,多训练了一个模型使得从图像到隐空间向量的映射。吃透了AnoGAN的原理后,f-AnoGAN的原理就显而易见了,第一阶段的训练依旧是GAN的训练(论文中变成了WGAN)。第二阶段则是编码器的模型训练,它与Generator构成自编码器结构,训练方式有三种,可以参考博客深度学习论文笔记(异常检测)——f-AnoGAN: Fast unsupervised anomaly detection with generative adversarial networks
实验复现
尝试用f-anogan的方式来做织物瑕疵检测,图3是效果图。很明显不是我想要的结果,效果很差,而且该模型对比较细小的瑕疵检测效果特别差,基本上检测不出来。造成这种情况的原因主要有两个:1、GAN网络重建效果不太好,细节丢失严重;2、GAN网络只对输入64*64px的效果好,大了效果很差,所以只能采取分割的方式,导致重建后从总体来看数据分布的效果会比较差。
图3 原图(左) 重构图(中) 残差图(右)
总结
作为一个萌新,对代码不是很熟悉,直接github拉下来的代码,只是做了简单的调参,看论文的感觉他们做医学图像的异常检测效果很好,大概是模型对织物不太适用。接下来还是要深入对GAN网络的学习,希望能找到输入高分辨率且用重建效果较好的生成模型。同时个人认为关于直接做残差可能并不是很好的选择,毕竟GAN的重建效果并不理想。
f-AnoGan阅读笔记相关推荐
- 基于深度学习的表面缺陷检测方法综述-论文阅读笔记
//2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...
- [python Cookbook]阅读笔记
@toc] 前记:为了补充一下python语法知识,感谢网友的推荐阅读了pythonCookbook,这本书确实不错,以问题为导向,引导解决思路. 这个博文是从阅读笔记typora中直接复制过来的没有 ...
- Traffic Flow Forecasting: Comparison of Modeling Approaches文献阅读笔记(一)
今天开始陆续更新之前文章的阅读笔记,有一些文章是辅助实验简单读的,有一些文章是精读的.这里也不做分类了,只是每次在开头提一下相关信息. 文章链接:戳我 主要工作:描述了历史 平均值.时间序列.神经网络 ...
- sed 手册阅读笔记转
原文链接sed 手册阅读笔记摘要sed 手册本身不太适合初学者,我在看的过程中加了一些 自己的注释和一些例子,帮助理解,如有偏差或错误,请指出,多谢.目录1. sed的工作原理 2. sed中如何选择 ...
- Learning Multiview 3D point Cloud Registration论文阅读笔记
Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...
- FCGF论文阅读笔记
FCGF论文阅读笔记 0. Abstract 从三维点云或者扫描帧中提取出几何特征是许多任务例如配准,场景重建等的第一步.现有的领先的方法都是将low-level的特征作为输入,或者在有限的感受野上提 ...
- PointConv论文阅读笔记
PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...
- DCP(Deep Closest Point)论文阅读笔记以及详析
DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...
- 【Flink】Flink 源码阅读笔记(15)- Flink SQL 整体执行框架
1.概述 转载:Flink 源码阅读笔记(15)- Flink SQL 整体执行框架 在数据处理领域,无论是实时数据处理还是离线数据处理,使用 SQL 简化开发将会是未来的整体发展趋势.尽管 SQL ...
- 构建之法阅读笔记之三
构建之法阅读笔记之三 本章为团队和流程,主要介绍了典型的软件团队模式和开发流程以及它们的优缺点.TSP.MVP.MBP.RUP 团队:并不是几个人凑到一起就叫团队,称之为团队 1.应该有一致的集体目标 ...
最新文章
- 什么命令看服务器系统,查看linux系统版本可以使用什么命令_网站服务器运行维护...
- jQuery 事件方法大全
- 解决方案:无源(PON)光网络在弱电工程中的应用
- Logstash 安装及简单实用(同步MySql数据到Elasticsearch)
- 从Cell的视图推出一个新的界面
- Istio流量管理实践之(5): 使用cert-manager部署Istio自定义入口网关及进行证书管理...
- ElasticSearch模糊查询(中文检索)
- RocketMQ如何保证消息不丢失(消息可靠性)
- thinkphp验证码点击更换js实现
- python workflow_用 Python 写 Alfred3 workflow 插件,一个最小示例
- 数据仓库需求分析指南
- 小恐龙游戏python_自动玩Chrome浏览器的小恐龙游戏
- 《我想进大厂》之分布式锁夺命连环9问 | 大理版人在囧途
- Python--快速爬取千张高清壁纸
- rm: cannot remove `xxx’: Operation not permitted的解决方法
- 用好这28个工具,开发效率爆涨
- andriod手机信号显示G、E、H、T是什么意思?
- mysql数据库管理维护_深入浅出MySQL 数据库开发 优化与管理维护 第3版
- PhpSpreadsheet读取excel
- MacBook安装Golang Oracle数据库驱动程序