缺陷检测之两阶段深度卷积网络论文学习


前言

本文对Jakob Božič, Domen Tabernik, Danijel Skočaj 2020 年的论文 End-to-end training of a two-stage neural network for defect detection 进行了研究和学习.。原文探讨了对于表面缺陷检测的深度学习方法,以电子换向器表面数据集(KolektorSDD) 为研究对象,选择了以语义分割网络和图像二分类网络组成的两阶段深度卷积网络,对数据集图像进行像素级的语义分割后分类,达到了较高的缺陷检测精度。


一、算法分析

将表面缺陷检测问题视为一个二元分类问题,首先通过一个语义分割全卷积网络将输入图像每个像素作为样本训练,在最后进行反卷积得到像素级的预测结果;接着在第二阶段结合分割输出和分割网络的特征进行分类,得到最后的分类输出结果。

1.分割网络

该网络由11个卷积层和3个最大值池化层组成,每个池化层将分辨率降低为原来的一半,每个卷积层之后是一个特征归一化层和一个非线性激活函数(RELU)层,以提高收敛速度。前9个卷积层使用5×5的卷积核,后两个卷积层分别使用1024个15×15和1个1×1的卷积核,得到单通道、被缩放8倍的的特征图。

在这里插入图片描述

2.分类网络

得到语义分割输出后,将在分割网络中通过15×15卷积后得到的1024通道特征图和通过1×1卷积后的单通道特征图进行组合,得到1025通道的特征图作为分类网络
的第一个输入,将单通道特征图作为第二个输入。将第一个输入分别通过8、16、32个5×5卷积核的三层卷积层,接着使输出通过全局最大值池化和全局平均值池化得到64个输出神经元;将第二个输入直接通过全局最大值池化和全局平均值池化的到2个输出神经元。
在这里插入图片描述
最后将输出合并得到66个输出神经元,进行最后的二分类输出,有效解决了过拟合和全卷积特征参数的问题。
在这里插入图片描述

3.分阶段训练设计

两个网络使用交叉熵作为损失函数,由于损失函数的应用范围不同,分割网络为像素级,分类网络为图像级,我们需要消除网络转换过程中的梯度流,来符合端对端的需求,故选择分两阶段训练。
在训练后进行推理。由于一阶段采用分割网络的分割网络类似于全卷积网络,对图像进行像素级的推理,故可以使用不同的分辨率。在推理后得到两个输出,一个为图像分割后得到的掩码,一个为分类网络得到的存在异常的概率。最后通过概率判断表面是否有缺陷,

二、实验及结果

本实验中,数据集中训练集:验证集按照9:1进行切分。实验环境为python3.6、Cuda9.0、Cudnn7.1.4、Tensorflow1.12.0。采用6G显存的GTX1060 for laptop进行训练加速。

1.数据集

训练数据集为KolektorSDD电子换向器数据集。该数据集包括50个电子换向器的表面图像集合,每一个中包含8个表面,总共399张图片。其中52张有可见缺陷的图像,347张没有任何缺陷。原始图片尺寸为宽度500 px,高度1240到1270像素,训练时调整为1280×512的分辨率。此外,需要对数据标签进行处理,得到统一的标签。

在这里插入图片描述
输入数据后,选择训练50轮,学习率为0.001,选择批次大小为2,先对分割网络进行训练,再对分类网络进行训练

2.结果分析

分割网络训练50轮后得到loss变化曲线如下:
在这里插入图片描述
分类网络训练50轮后得到Loss变化曲线如下:
在这里插入图片描述
分割网络经过训练后的预测结果示例如下:
在这里插入图片描述
精度:

指标数值
accuracy0.9800
precision0.8696
recall1.0000

总结

成功实现了对电子换向器表面缺陷的检测,在较少的样本下分阶段训练的网络仍有较好的性能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NathanWu7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值