【论文阅读纪录】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection

前言:

{

    最近很久都没更新了。说实话,没时间都是借口,主要还是忘记了要时刻学习。

    这段时间我在了解segmentation网络,之前我搜到了一篇腾讯云社区上的文章[1],标题说其秒杀DeepLab。这确实激起了我的兴趣,因此我决定先读一读原论文[2]。

    值得一提的是,此论文的目标是缺陷检测(分割),我很好奇其能不能泛化到其他的segmentation领域。

}

 

正文:

{

    在论文的摘要Abstract)和导论Introduction)中,作者介绍了论文方法所解决的实际问题:

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

 

    主要段落Proposed approachSegmentation and decision network evaluation)中,作者首先给出了论文模型的结构,见图1。

    【论文阅读纪录】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection_第1张图片

    可以看出,模型有两个部分,分别是segmentation network和decision network。

    结构很清楚。segmentation network包括11个卷积层3个最大池化层,每个池化层会把输入的分辨率减半。每个卷积层后面都有一个batch normalization非线性ReLU层,输出为单通道特征图,其分辨率为输入的1/8。decision network的输入是segmentation network的倒数第二层和最后的输出的集联。其他细节如图所示。

    可以看出,作者并没有在卷积层减小特征图分辨率(即所有卷积层的stride=1),作者在论文中说这样可以确保重要细节被保留到下采样之后。

    之后是训练部分。作者分别使用了两个损失函数:逐像素均方差逐像素交叉熵。值得一提的是,segmentation部分和decision部分是被分开训练的,先训练segmentation部分,之后segmentation被冻结,再训练decision部分。作者说这种方式是应对标准化问题。这里我有点没搞明白,所以我又去找了模型源码,找到了非官方的实现[3]。在[3]中大概看了一下模型结构,明白了损失实际上包括两部分,分别是segmentation部分的损失和decision部分的损失。我对标准化问题的理解是,这两个损失可能需要均衡一下(标准化)才能加到一起,而比例却很难确定。

    优化器是没有momenum的随机梯度下降(SGD),batch大小为1,使用均方差损失时的学习率为0.005,使用交叉熵损失时的学习率为0.1,一共训练了100个epochs。值得注意的是,并不是每个epoch包括固定次数的迭代,而是一正常一缺陷地交替随机选择样本,33个缺陷样本都过了一遍后才算一个epoch。

    关于数据,作者使用的数据集是KolektorSDD,这是作者自己搜集的数据集。标签有5种,图片尺寸有两种。数据扩增包括90度旋转和标签膨胀(Dilate,详细信息见[4]),标签膨胀见图4。

【论文阅读纪录】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection_第2张图片

    实验结果如下图5。

【论文阅读纪录】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection_第3张图片

    可以看出,交叉熵损失的平均效果要高出均方差损失。

 

    模型对比Comparison with the state of the art)部分我就不再详述了,直接放图。不同模型在KolektorSDD数据集上的对比结果见图12。

【论文阅读纪录】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection_第4张图片

}

结语:

{

    值得注意的是,此模型输出的预测的分辨率只有输入图片的分辨率的1/8,这也遭致了一些争议[4]。不过我个人认为这个模型更贴近工业实际,因为它针对作者提到的3个问题。

    论文还有一些衍生实验,我就不再继续看了,之后我可能会实践一下这个模型,如果其在其他数据上的效果不好我应该会再来看看。

    能力有限,欢迎拍砖。

    参考资料:

    {

        [1] https://cloud.tencent.com/developer/article/1431009

        [2] https://arxiv.org/pdf/1903.08536v1.pdf

        [3] https://github.com/Wslsdx/Deep-Learning-Approach-for-Surface-Defect-Detection/blob/master/model.py

        [4] http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html

        [5] https://github.com/Wslsdx/Deep-Learning-Approach-for-Surface-Defect-Detection/issues/8

    }

}

你可能感兴趣的:(缺陷检测,深度学习,工业4.0,python,神经网络与机器学习,论文阅读记录)