• 前言:这篇文章提出了一种基于分割的深度学习体系结构,该体系和结构旨在检测和分割表面异常
    由于对图像存在的异常进行分类比对缺陷进行精确定位更为重要,所以这篇文章将表面异常检测进一步归为二进制图像分类问题。为了克服在深度学习中出现的少量样本的问题,文章采用了两阶段的设计

  • 这篇文章主要优势为:只需要25-30个有缺陷的样本就可完成分类,所用样本极少。它提出了一个two-stage的模型,具有精度高、所需标注样本少、计算量小的特性。并且其提供了表面缺陷的开源数据集KolektorSDD。
    399个图像,52个有缺陷的样本,347个无缺陷样本。 分辨率1408*512。

文章地址:https://arxiv.org/abs/1903.08536v3
代码地址:https://github.com/Wslsdx/Deep-Learning-Approach-for-Surface-Defect-Detection

主体框架包含两个部分,左边的分割网络和右边的决策网络。分割网络对标么缺陷进行逐像素定位,决策网络主要进行二进制图像分类。

本文所解决的实际问题:
1.一般工业实际中也只能提供少量的缺陷样本;
2.缺陷检测需要100%的detection rate;
3.算力(时间)受限。

1. Segmentation network 分割网络

segmentation network包括11个卷积层和3个最大池化层:

 9个5*5卷积层;    ---每个卷积层后面都有一个batch normalization和非线性ReLU层1个15*15卷积层;    特征归一化将每个通道归一化为具有单位方差的零均值分布,有助于提高收敛速度1个1*1卷积层;      --- 源码中1*1卷积没有使用ReLU激活函数,使用的是sigmoid激活函数,用于生成二值掩码。3个最大池化层;     --- 用于降采样, 其步长为2。卷积层使用的都是same卷积,即卷积层不进行降采样的操作,仅通过池化层进行降采样的操作。 最终生成单通道图。整个过程中使用了3个最大池化层,最终得到8倍缩小于原图的输出。

分割网络专注于在高分辨率的图像表面上查找小的缺陷,网络需要满足两个需求:

  • 具有较大的感受野; —下采样层使用小的卷积核(5×5),且具有较小的层数。高层使用15×15大的卷积核,局域较高的层数。
  • 能够捕捉到较小的特征细节。 —使用最大池化而不是大幅度卷积实现下采样。使用最大池化层代替具有步长的卷积层,能够保证小但重要的细节在降采样过程中得以保存。

2. Decision network 决策网络


附加网络(下半部分):使用的是分割网络的输出和分割网络的特征通道数量为1024+1 = 1025层:

  1. 3个5*5卷积层; 通道数量为 8 、 16、 32 。 —通道数量随着特征分辨率的降低而增加,导致每一层所需的计算需求相同。
  2. 3个最大池化层; — 降采样 8倍缩小于输入。

附加网络之后,包含一个全局池化层。分别对segmentation output 和 附加网络输出 进行全局最大和全局平均池化。最终将会组合生成 32+32+1+1 = 66 通道数量的输出。由于是做的全局池化,所以每一个输出都是一个值,即消除了segmentation output 和附加网络输出维度不匹配的问题。
  最后,通过一个全连接层,生成最终分类的输出。 [0, 1]表示缺陷出现的可能性。

决策网络设计遵循两个重要原则
1.使用多层卷积核下采样来确保适合大型复杂形状的容量,使网络不仅可以捕获局部,还可以捕获跨越图像较大区域的全局形状。
2.决策网络不仅使用了分割网络中1*1内核缩减前的输出特征量,还是用了之后的输出。这引入了一种捷径,网络可以避免使用大量的特征图,减少对大量参数的过度拟合。
很多人并不直接在卷积中使用分段输出映射,仅通过全局最大平均池化,这限制了决策网络的复杂性,阻止了它捕获大型全局形状。

实验结果:
对网络进行了四个配置组的评估:

五种注释类型
两种损失函数
两种输入图像的尺寸
旋转或不旋转90度


最佳的结果:

  1. dilate=5
  2. cross-entropy loss function
  3. full image resolution
  4. No rotation
def DecisionNet(feature,mask, scope, is_training,num_classes=2, reuse=None):with tf.variable_scope(scope, reuse=reuse):with slim.arg_scope([slim.conv2d],padding='SAME',activation_fn=tf.nn.relu,normalizer_fn=slim.batch_norm):# 附加网络net=tf.concat([feature,mask],axis=3)    # 1024的特征是和mask进行合并net = slim.max_pool2d(net, [2, 2], [2, 2], scope='pool1')net = slim.conv2d(net, 8, [5, 5], scope='conv1')net = slim.max_pool2d(net, [2, 2], [2, 2], scope='pool2')net = slim.conv2d(net, 16, [5, 5], scope='conv2')net = slim.max_pool2d(net, [2, 2], [2, 2], scope='pool3')net = slim.conv2d(net, 32, [5, 5], scope='conv3')vector1=math_ops.reduce_mean(net, [1,2], name='pool4', keepdims=True)  # 全局平均vector2=math_ops.reduce_max(net, [1,2], name='pool5', keepdims=True)   # 全局最大# segmentation network 输出的处理vector3=math_ops.reduce_mean(mask, [1, 2], name='pool6', keepdims=True)vector4=math_ops.reduce_max(mask, [1, 2], name='pool7', keepdims=True)   # 全局池化操作就是reduce_max_mean# 拼接vector=tf.concat([vector1, vector2, vector3, vector4], axis=3)    # 将全局内容合并vector=tf.squeeze(vector, axis=[1, 2])    #  # 删除张量shape中维度为1的, 可以指定维度logits = slim.fully_connected(vector, num_classes,activation_fn=None)output=tf.argmax(logits, axis=1)  # 找logits中最大的那个变量return  logits,output            

Segmentation-baseddeep-learningapproachforsurface-defect detection相关推荐

  1. Deep learning based multi-scale channel compression feature surface defect detection system

    基于深度学习的多尺度通道压缩特征表面缺陷检测系统 Deep learning based multi-scale channel compression feature surface defect ...

  2. 【医学+深度论文:F21】2017 CVPR Optic Disc and Cup Segmentation Methods for Glaucoma Detection

    21 2017 CVPR Optic Disc and Cup Segmentation Methods for Glaucoma Detection with Modification of U-N ...

  3. 论文阅读DefectNet: Toward Fast and Effective Defect Detection缺陷网:走向快速有效的缺陷检测

    DefectNet: Toward Fast and Effective Defect Detection缺陷网:走向快速有效的缺陷检测 期刊:IEEE Transactions on Instrum ...

  4. Multi-scale multi-intensity defect detection in ray image of weld bead

    Multi-scale multi-intensity defect detection in ray image of weld bead 焊道射线图像中的多尺度多强度缺陷检测 Abstract T ...

  5. Kaggle数据竞赛记录 - Steel Defect Detection

    钢材缺陷分类检测及标记 这个是去年的比赛,过了很久了才来记录一下. 附上IEEE-CIS Fraud Detection的总结 赛题理解 kaggle链接 竞赛主要目的是钢材图片进行缺陷检测分类及标记 ...

  6. Severstal: Steel Defect Detection比赛的discussion调研

    特征匹配 https://zhuanlan.zhihu.com/p/52140541 https://www.kaggle.com/c/severstal-steel-defect-detection ...

  7. 以YOLOv5为基准实现布匹缺陷检测(Fabric Defect Detection)

    一.YOLOv5 安装 使用以下命令安装最新版的YOLOv5 # 下载代码 git clone https://github.com/ultralytics/yolov5 # clone cd yol ...

  8. An End-to-End Steel Surface Defect Detection Approach via Fusing Multiple Hierarchical Features

    网络结构 建立了一个端到端的ADI系统,即缺陷检测网络(DDN).使用ResNet在每个阶段生成特征图,然后所提出的多级特征融合网络(MFN)将ResNet的所有阶段的特征合并到一个特征中,该特征可以 ...

  9. [织物瑕疵检测]D4Net: De-deformation defect detection network for non-rigidproducts with large patterns

    该论文发自Information Sciences,属于ccf b的文献,主要贡献是针对自己收集的LELP数据集利用DNN网络进行训练,达到了接近0.97的准确度. 文章概括 D4Net的优点在于提出 ...

  10. 论文笔记《MemSeg: A semi-supervised method for image surface defect detection using differences and comm》

    论文地址:https://arxiv.org/ftp/arxiv/papers/2205/2205.00908.pdf 效果:2022.5.4 目前霸榜第一,99.56%,一秒31.34张图片,很快 ...

最新文章

  1. MongoDB记录操作日志的Base类实现
  2. 电脑word在哪_新的电脑应该安装哪些软件?只需这9个足够你用一生!
  3. GVA gin vue从后端接口获取多选下拉框数据
  4. 百米路由器2登陆地址_女孩子也要会的无线路由器连接技巧,再也不求男生了...
  5. 进制问题:m进制转n进制,m进制转十进制,十进制转n进制
  6. [ ArcGIS for Server 10.1 系列 ] - 重新创建Site
  7. Linux_基础_软件包管理
  8. 文件上传学习:(结合upload-labs 01-12):part01
  9. PAPI性能测试工具的安装、使用及实例
  10. 树状数组--前n项和;
  11. 圈圈usb cannot convert from 'BOOL (__thiscall CMyUsbHidTestAppDlg::* )(UINT,DWORD)' to 'LRESULT (__
  12. php 判断是否是拼音,php汉字转拼音的示例
  13. python机器学习之特征选择(过滤法、嵌入法、包装法案例详解)
  14. VSCode格式化JS自动添加或去掉分号
  15. 多声道在系统和软件里的设置与应用(普通声卡和dante声卡)
  16. html页面如何嵌套if标签,IF嵌套10个以上
  17. 播放全景视频【一】:用unity Video Player视频播放器来播放360全景视频
  18. 修复Windows 10远程桌面复制粘贴不了的5种方法
  19. 【屏幕模块 - 笔记】深圳市晶联讯电子 液晶模块 JLX19296G-915-BN
  20. 怎么快速学习英语的诀窍

热门文章

  1. 人工智能----A*(星)算法之八数码问题
  2. 本次操作由于这台计算机的限制而被取消 win8,Win8打开CMD时弹出“本次操作由于这台计算机的限制而被取消quot;如何解决...
  3. 领峰:黄金k线走势图重要吗,如何利用其分析市场
  4. 修改Virtualbox的默认安装路径
  5. Ruoyi洛伊部署过程
  6. 使用ELK分析Windows事件日志
  7. 刷openwrt使用usb键盘时卡在NET: Registered protocol family 24
  8. Python中list的最大容量限制?最多支持多少?
  9. 【Python基础】Python数据容器(集合)
  10. tightvnc viewer 传文件_tightvnc viewer 传文件_TightVNC viewer下载