论文阅读笔记《Anomaly Detection in Nanofibrous Materials by CNN-Based Self-Similarity》-程序员宅基地

技术标签: # 缺陷检测  论文阅读笔记  缺陷检测  

核心思想

  本文提出一种基于自相似度的异常检测方法,核心思想在于正常样本图像之间的相似性更大,而缺陷样本和正常样本之间的相似性更小,如果某个样本与正常样本之间的最小距离都超过一个阈值时,就判定为异常样本。首先利用一个在ImageNet数据集上预训练好的特征提取网络对正常样本进行特征提取,然后对特征向量进行PCA降维,降维后再进行K-means聚类,每个类别中距离聚类中心最近的样本就作为这个类别的代表,所有类别代表构成一个正常样本字典。然后测试时用测试样本分别计算与字典中所有类别代表之间的欧氏距离,并计算其中距离最小的m个距离的平均值,如果这个平均值大于阈值就认为该样本属于缺陷样本,距离值的大小也就表示了它“不正常的程度”。
  首先,对图像样本按照固定尺寸和步长进行分割,得到大小相同的图块。这种情况下许多像素点可能同时属于多个图块,对于每个像素点的“不正常程度”可以通过计算他所属的多个图块的“不正常的程度”的平均值得到。
在这里插入图片描述
  然后,使用一个在ImageNet数据集上预训练得到的ResNet-18网络作为特征提取网络,用于特征提取,每个图块 P t P_t Pt输出 N N N个特征向量 f t f_t ft。经过主成分分析PCA降低维度到 M M M个特征向量,并对这M个特征向量进行规范化处理
在这里插入图片描述
  将整个数据集的特征向量进行K-means聚类,得到 k k k个类别和对应的类别中心,每个类别选择与类别中心距离最近的那个样本的特征向量作为类别代表,添加到正常样本字典中,因此字典中包含 k k k个类别样本对应的特征向量。整个字典构建过程如下图所示
在这里插入图片描述
  接下来是阈值的设定,与先前将阈值作为一个超参数进行人为设定的方式不同,本文利用验证集(均是正常样本,但与训练集不重叠)来计算阈值。对验证集图像进行相同的处理:图块分割,特征提取,规范化。然后计算其与字典中各个类别特征向量之间的欧氏距离,并选择其中距离最近的 m m m个样本,计算平均距离 d d d。最后计算整个验证集 V T V_T VT距离 d d d的均值 μ d \mu _d μd和方差 σ d \sigma _d σd,并按照以下方式计算阈值 t h th th
在这里插入图片描述
其中 α \alpha α作为一个调整参数,用于调节阈值的边界范围, α \alpha α越小,表示该系统更倾向于提高召回率。测试时,计算测试样本与字典中正常样本之间的欧式距离,同样取最近的 m m m个样本计算平均值 d t e s t d_{test} dtest表示该图块的“不正常程度”,当该值大于阈值时即判定为异常样本。

实现过程

网络结构

  采用ResNet-18网络,只需要利用特征提取部分,输出conv5_x或average_pool的结果作为特征向量。
在这里插入图片描述

创新点

  • 提出一种基于自相似度的异常检测算法,通过构建正常样本字典,然后比对测试样本与正常样本之间的距离,来计算测试样本的不正常程度
  • 通过计算验证集与字典中样本之间的距离分布来设定阈值

算法评价

  本文的方法还是一种基于正向样本的检测方法,但这里不存在一个训练的过程,其实只是利用卷积神经网络作为一个特征描述器,而且正向样本其实并不存在明确的类别关系,而只是依靠特征向量的相似程度进行聚类,最后通过比对样本特征向量之间的欧氏距离来判断该样本是否属于异常样本。该方法本质上应该是属于传统方法的范畴,在特征提取网络可靠的前提下,我觉的该方法还是有一定的实际价值的,但还有一个重要的问题就是这个方法的计算速度实在是比较慢,一张图片要处理数十秒中,在一些实时性要求高的领域中就无法应用了,感觉优化解决这个问题也是一个不错的点。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36104364/article/details/109307116

智能推荐

WordPress有没有好的主题推荐?27个Ultra WordPress企业主题分享:不再有选择 困难症了_德语wordpress主题-程序员宅基地

文章浏览阅读1.4k次。如果你想为自己公司选一款简单好用的WordPress主题,那么可以看一下Ultra这款国外著名的多功能WordPress主题!_德语wordpress主题

解决Java整合minio错误:S3 API Request made to Console port. S3 Requests should be sent to API port-程序员宅基地

文章浏览阅读3k次,点赞8次,收藏4次。解决Java整合minio错误:S3 API Request made to Console port. S3 Requests should be sent to API port_s3 api request made to console port. s3 requests should be sent to api port.

VIP年卡低至7折,限时加赠618次下载,我不允许任何人不心动!_csdn优惠活动-程序员宅基地

文章浏览阅读8.7k次,点赞4次,收藏6次。618狂欢,年中特惠福利拉满!即刻起购买VIP年卡,买1年我们送1年!_csdn优惠活动

【编译原理】语法分析_编译器常用的语法分析方法有哪两种-程序员宅基地

文章浏览阅读1.5k次。编译器常用的语法分析方法有自上而下和自下而上两种。正如它们的名字所示,自上而下分析器按从根结点到叶结点的次序来建立分析树,而自下而上分析器恰好相反。它们的共同点是从左向右地扫描输入,每次一个符号。最有效的自上而下和自下而上的分析法都只能处理上下文无关文法的子类。这些子类足以描述编程语言的大多数构造和它们的语法特征,其中L文法的分析器通常用手工实现,而LR文法的分析器通常利用自动工具构造。终结符: 即记号名。非终结符: 非终结符用来帮助定义由文法决定的语言,一个非终结符定义终结符串的一个集合。非终结符还在语言_编译器常用的语法分析方法有哪两种

数列分块入门(套题)(loj6277,loj6278,loj6279,loj6280,loj6281,loj6282,loj6283,loj6284,loj6285)_loj79-程序员宅基地

文章浏览阅读230次。前言zjoi考差了,码一些分块题缓解一下心情壹数列分块入门 1[loj6277]题目大意:区间加,单点查直接分块,区间加时完全覆盖的块打tag,边界块暴力重构块大小设为n\sqrt nn​,复杂度O(nn)\mathcal O(n\sqrt n)O(nn​)code#include<cstdio>#include<cctype>#include<c..._loj79

杂说CSS_ifc可以向下兼容吗-程序员宅基地

文章浏览阅读89次。1、CSS初始化为什么初始化CSS呢?因为浏览器的兼容问题,不同浏览器对标签的默认值是不同的,如果没有初始化CSS,往往会导致页面在不同浏览器页面在不同浏览器之间出现差异并且,多数浏览器会默认给初始页面添加上外边距简单的初始化页面* { padding: 0; margin: 0; box-sizing: border-box;}2、display 都有哪些值?block、inline、inline-block、list-item、table 、 inherit 和 nonebl_ifc可以向下兼容吗

随便推点

pom转Javabean_pom.xml解析为java bean-程序员宅基地

文章浏览阅读201次。让我这个菜鸟淡淡的忧伤一会1:项目中需要把pom文件转换成Java Bean,用于查看各个依赖的版本号。这里记录一下简单的demo。首先引入 <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version&..._pom.xml解析为java bean

Flutter学习笔记&学习资料推荐_pan.flutter实战第二版-程序员宅基地

文章浏览阅读3.2k次,点赞10次,收藏39次。对Flutter的学习已经有一段时间了,这里做一下总结记录吧,可能主要是学习资料的总结,还有一些杂七杂八的学习笔记。 Flutter 初体验 先说说对Flutter的感受吧,总的来说上手还是比较容易的,因为他的思想理念跟React十分相似,都是通过状态管理控制UI界面的更新,甚至连setState的方法名都是一样的,如果你是学习过类似React的框架的话,将很容易理解,基本可以直接开撸。但是它有好的地方,也有不好的地方。 好的地方:一个是它的reload热加载到手机,这样写代码调试的时候不用每次运行._pan.flutter实战第二版

安卓开发学习——第四天_安卓开发学习csdn-程序员宅基地

文章浏览阅读864次。3. 常用的UI布局1). LinearLayout: 线性布局 用来控制其子View以水平或垂直方式展开显示 2). RelativeLayout: 相对布局 用来控制其子View以相对定位的方式进行布局显示 3). FrameLayout: 帧布局 每一个子View都代表一个画面, 后面出现的会覆盖前面的画面 通过子View的androi_安卓开发学习csdn

linux 6下面用udev配置asm磁盘的注意事项_ls: cannot access /dev/asm*: no such file or direc-程序员宅基地

文章浏览阅读2k次。实验环境:虚拟机:virtualbox 5.0.24 r108355操作系统:rhel-server-6.5-x86_64看了刘相兵大大的:在Linux 6上使用UDEV解决RAC ASM存储设备名问题自己操作了一把,先前在linux5 的时候我是用asmlib来绑定ASM的,参考三思笔记,我在创建虚拟硬盘的时候用的SCSI格式的硬盘,在linux 5的时候_ls: cannot access /dev/asm*: no such file or directory

linux下Qt打包_如何在linux系统下把qt打包视频-程序员宅基地

文章浏览阅读1.1k次。1.新建Demo文件件,并将二进制可执行文件MiMouse放置在目录内2.在Demo文件夹下新建copy.sh文件touch copy.shcopy.sh文件内容如下#!/bin/bashLibDir=$PWD"/lib" #获取lib目录路径Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))$(mkdir $LibDir) #创建lib目录for Variab_如何在linux系统下把qt打包视频

计算机网络的组成及通信子网和资源子网的划分_计算机网络可以分为通信子网和资源子网-程序员宅基地

文章浏览阅读1k次。网络操作系统:是网络软件的重要组成部分,是进行网络系统管理和通信控制的所有软件的集合,负责整个网络软件,硬件资源的管理以及网络通信和任务的调度,并提供用户与网络之间的接口,常用的网络操作系统有:Windows,Linux,Unix,netwear等。网络接口卡:简称网卡,又称为网络适配器,主要负责主机与网络之间的信息传输控制,功能是线路传输控制,如堵塞,冲突等,差错检测与恢复,代码转换以及数据帧的装配与拆装等。传输介质:用于将网络中各种设备连接起来,是数据传输的物理通道,有有线传输介质和无线传输介质之分。_计算机网络可以分为通信子网和资源子网

推荐文章

热门文章

相关标签