1、 DeepCrack: Learning Hierarchical Convolutional Features for Crack Detection(一篇针对于crack的检测方法,SegNet的基础上加上多尺度融合)
2、 FFCNN: A Deep Neural Network for Surface Defect Detection of Magnetic Tile (FFCNN,基于ResNet50,特征融合和引入了注意力机制)
3、 Magnetic Tile实验,在原来代码的基础上,用SegNet、Unet、FCN8s、FCN16s、FCNs,进行实验
用于crack检测的分层卷积特征网络。来自 IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 28, NO. 3, MARCH 2019
我们提出了DeepCrack,一种基于端到端的深度卷积神经网络,通过学习crack表现出的高水平的特征来进行检测;我们在SegNet的编码器-解码器架构上构建了deepcrack网,并以相同的规模成对地融合了在编码器网络和解码器网络中生成的卷积特征。
Crack在视觉上是一个裂缝,可以看出一种线性或曲线的形状。这种缺陷有两方面特点:从全局的角度来看,它看起来像图像中一个像素宽的边缘,因为它很薄,通常保持对背景的跳跃强度。从局部的角度来看,它是一个具有一定宽度的线对象。然而,在实践中,裂纹可能会不断遭受背景噪声的影响,导致连续性差和对比度低,所以传统的边缘检测方法不再适用。
当使用深度学习进行图像分割时,例如SegNet,解码器网络中的卷积特征有助于提高语义图像分割的性能,而池化位置的索引可以进一步提高边界定位的精度。在DeepCrack中,我们首先对各尺度的编码器网络和解码器网络的卷积特征进行配对融合,生成单尺度融合特征图,然后将各尺度的融合特征图组合成多尺度融合图进行裂纹检测。
我们的工作主要有以下三个方面:
在过去的几十年里,边缘和轮廓检测的研究经历了三个主要阶段:
基于机器学习的方法也被研究用于裂纹检测。利用深度卷积神经网络将图像斑块分为裂纹块和非裂纹块。利用改进的主动轮廓模型和基于贪婪搜索的支持向量机研究了桥裂纹的检测。我们研究了全卷积神经网络,利用多视图图像来推断核电站的裂缝。对于裂纹检测,还提出了许多其他的方法,如显著性检测方法、使用最小生成树和随机结构森林的结构分析方法。一般来说,基于深度学习的方法比传统方法能产生更好的结果。然而,对于鲁棒裂缝检测的端到端可训练CNN模型的研究仍然缺乏。
SegNet是一种为像素级语义分割设计的深度卷积编码-解码器结构,它包含一个编码器网络和一个相应的解码器网络。编码器网络的灵感来自于VGG16网络中的卷积层,该网络由13个卷积层和5个下采样池化层组成。该解码器网络还具有13个卷积层,并且每个解码器层在该编码器网络中具有相应的层。因此,编码器网络与解码器网络几乎是对称的,其中唯一的区别是,第一编码器层,即第一卷积运算,产生多通道特征图,对应的最后一个解码器层,即最后卷积运算,产生c通道特征图,c是图像分割任务中的类数。
为了避免缺少细节表示,在执行子采样时,使用最大池化层来捕获并记录编码器特征图中的边界信息。然后,在解码器网络中,相应的解码器层使用最大池化索引进行非线性上采样。这个向上采样的步骤将产生稀疏的特征映射。然而,与连续和密集的特征图相比,稀疏特征图获得了更精确的区域边界位置。
在这项工作中,我们考虑了由池化操作和上采样操作引起的尺度变化,并在SegNet的编码-解码器架构上构建了深度破解。在SegNet中,存在5个不同的尺度,它们对应于5个下采样池化层。为了在每个尺度上同时利用稀疏和连续的特征图,DeepCrack进行了一个跳过层融合来连接编码器网络和解码器网络。如图2所示,编码器网络中每个尺度的池化层之前的卷积层连接到th的最后一个卷积层。
下图详细说明了跳跃层的融合。首先,将编码器网络和解码器网络的特征映射连接起来,然后是1×1conv层,将多通道特征映射减少到1通道。然后,为了计算每个尺度上的像素级预测损失,在特征图上添加一个解采样层,并使用一个裁剪层将上采样结果裁剪成输入图像的大小。经过这些操作,我们可以得到与地面真实裂纹图相同大小的每个尺度的预测图。将五种不同尺度下生成的预测图进一步连接起来,并将其连接起来。
与PascalVOC的语义分割不同,裂纹检测只有两类,可以看作是一个二元分类问题。我们采用交叉熵损失来测量预测误差。一般情况下,ground-truth真值裂纹像素在裂纹图像中是少数类,这使得它成为一种不平衡的分类或分割。一些工作通过给少数类增加更大的权重来处理这个问题。然而,在裂纹检测中,我们发现裂纹的权重越大,会导致更多的误报。因此,我们将像素级预测损失定义为:
Fi是网络在像素i中的输出特征图,W是网络层中的标准参数集,P(F)是标准s型函数,它将特征图转换为裂纹概率图.
Total Loss 可表示为 :
在DeepCrack中,采用跳转层融合来连接编码器网络和解码器网络。其次,原始的SegNet被设计用于语义分割,它建立了一个软最大损失层来测量每个对象通道中的预测误差。而在Deepcrack网络中,输出的是一个1通道的预测图,它通过使用交叉熵损失来指示每个像素属于裂缝的概率。DeepCrack与U-Net也有很大的不同。U-Net通过在早期阶段复制卷积层作为主网络中相应的后期阶段的一部分来执行跳过层融合,从而导致唯一的损失。DeepCrack在每个阶段独立执行跳层融合,并分配损失,导致多个损失,并在每个尺度上有效地捕获小物体样本的信息。
对于每幅图像,精度和召回率可以通过比较检测到的裂纹与手工标注的ground-truth来计算。然后F1
作为性能评估的整体度量。
我们比较了DeepCrack的性能与当前最先进的方法。在这些方法中,CrackTree是一种传统的基于低级特征的方法,而其他的方法则是基于深度学习的方法。结果如下:
在这些深度模型中,RCF、HED和SRN产生厚裂纹图,而深度裂纹、SegNet和U-net产生薄裂纹图,一个可能的原因是,DeepCrack、SegNet和U-Net的骨骼网络包含一个与编码器网络对应的几乎对称的解码器网络。解码器网络逐级地对特征映射进行向上采样,得到输入大小相同的输出,这可以帮助恢复地面真实施加的薄裂纹结构。RCF、HED和SRN的骨网络不包含解码器网络,因此产生薄裂缝的能力较差。
由于Deepcrack在不同尺度的卷积阶段融合了低级和高级的特征,可以进一步提高裂纹提取的精度和背景伪影抑制的鲁棒性。U-net也采用了跳过层,但在最终的预测中采用了一个单一的损失,这使得它难以收敛,容易得到不完全的预测。
在这项工作中,提出了一种新的端到端可训练的卷积网络,用于裂纹检测。在DeepCrack中,每个尺度的卷积特征被成对融合,所有尺度的融合特征图被进一步融合成多尺度特征融合图进行裂纹检测。为了进行性能评估,我们构建了4个裂纹数据集。在相同的评估方案下,使用一个数据集进行训练,其余三个数据集进行测试。实验结果表明,所提出的DeepCrack在测试数据集上的平均达到超过0.87ODSf测度值,优于没有解码器网络的竞争方法。结果表明,编码器网络和解码器网络中的卷积特征都适用于裂纹检测。实验结果还表明,深裂纹对噪声裂纹标记不敏感,能很好地处理明亮的裂纹。
FFCNN:一种用于磁砖表面缺陷检测的深度神经网络。来自 IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 68, NO. 4, APRIL 2021
本文将深度学习技术嵌入到我们的系统中进行缺陷自动识别中。然而,传统的卷积神经网络(CNN)并不适合用于这种分类任务,因为它输入的是一个样本,而不是单个图像。为了克服这一问题,提出了一种端到端CNN体系结构,称为融合特征CNN(FFCNN)。FFCNN由特征提取模块、特征融合模块和决策模块三个模块组成。该特征提取模块被设计用于从不同的图像中提取特征。特征融合模块是将特征提取模块提取的特征进行融合。决策模块是通过融合的特征来预测标签。此外,还引入了一种注意机制来关注更有代表性的部分,而抑制不那么重要的信息。实验结果表明,该系统对磁性瓷砖表面缺陷检测是有效的。
在我们的任务中,直接应用传统的CNN结构来识别磁性瓦上的表面缺陷是困难的。首先,磁性瓷砖表面具有研磨纹理,总是隐藏着缺陷特征。第二,磁性瓷砖的材料是金属的,颜色是暗的,这使得图像很容易受到光线的照射。第三,缺陷的面积总是很小的。为了克服这些问题,有经验丰富的工人总是从不同的方向观察磁性瓷砖,以确保是否存在缺陷。因此,传统的CNN不能直接从多个图像中捕捉到这些固有的关节特征。为了克服这一缺点,本文提出了FFCNN。FFCNN建立在传统CNN的基础上,但它结合了空间融合的思想,可以有效地从多幅图像中提取特征。所设计的FFCNN可分为特征提取模块、特征融合模块和决策模块三个模块。为了更好地理解这些特征,提高兴趣的表征,在FFCNN中引入了注意机制。为了同时考虑渠道和特别关注,Woo等人提出了卷积块注意模块(CBAM)。本文在FFCNN中引入了CBAM模块,使每个分支都可以学习最重要的特性,并抑制不必要的特性。本文的主要贡献可以总结如下:
我们提出的架构由几个流组成,每个流都是一个传统的CNN。实际上,如何构建网络结构也存在一些问题。幸运的是,已经证明了迁移学习[35]是一种克服上述问题的有效技术。迁移学习可以分两步实现。首先使用大数据集(ImageNet是常见的选择)训练网络,然后采用迁移学习将学习到的特征转移到目标空间。为了方便起见,FFCNN的结构是基于知名结构设计的,它们在图像分类任务上表现出了惊人的性能。在目前的研究中,我们调查了三个著名的网络来完成这项任务,包括AlexNet、VGG-16和Resnet-50。我们在表I中列出了基于Resnet-50的模型的一个流的体系结构。
如表一所示,该特征提取模块流主要由6个块组成,即1个输入层和5个卷积块。每个流的图像输入大小为224×224×1。这五个卷积块包括一个最大池化层和49个卷积层。这个唯一的最大池化层遵循第一个卷积块,将相邻位置的输出替换为相邻域的总体特征,并完成降采样操作。本文采用Relu激活函数来处理非线性问题。请注意,除了输入图像不同之外,每个卷积层都共享共同的结构。因此,ith流可以分层提取特征,这些特征可以表示如下:
Γi表示学习的特征图,Sij表示特征图像Ii的第j个特征,N表示学习的通道的数量,Λ表示特征提取操作,θi表示应该学习的参数,和W,H,N表示宽度、高度和数量学习通道的特性地图。
对于样本X,特征提取模块从每个图像Ii中学习特征,并得到相应的特征映射Γi。特征融合函数可以表示如下:
其中,F为特征融合模块的输出,Θ(·)表示特征融合函数。本文研究了三种融合算子,包括均值算子、极大算子和连接算子。
对于平均融合,它计算了在相同的空间位置a、b和特征通道j上的特征图的平均值,它们可以表示如下:
对于最大融合,它计算在相同空间位置a、b和特征通道j上的特征映射的最大值,可以表示为:
对于串联算子,学习到的特征映射沿通道方向堆叠,可以表示为
尽管连接操作符不做任何计算,但下一层可以学习适当的过滤器来加权这些特性映射。
注意机制的概念来自于人类的感知。对于人类的视觉系统,它更倾向于关注最显著的信息,而不是一次性处理整个场景。因此,有必要将注意机制引入CNN。为了关注更有代表性的部分,抑制不那么重要的信息,我们在我们设计的FFCNN中引入了CBAM。如图所示,CBAM由两个块组成:通道注意块和空间注意块。
在信道注意块中,在中间特征映射Ft的特殊轴上应用两种池化算子,即平均和max,生成两个向量:Vavg和Vmax。然后将这两个向量转发到具有一层的多层感知(MLP)中,从而产生注意向量Aavg和Amax。然后用元素级求和法对注意向量进行合并。最后,将输出的特征向量输入s型激活函数,得到信道注意向量Vc。Vc可以通过以下函数来计算
在空间注在空间注意块中,首先沿着信道注意输出特征图的信道轴应用平均和最大池化操作,生成注意矩阵:Mavg和Mmax。然后,将注意矩阵Mavg和Mmax连接成一个特征矩阵。为了编码强调或抑制的地方,应用了卷积层。简而言之,空间注意矩阵Ms可以计算如下:
由于示例包含四个图像,所以FFCNN由四个流组成。如算法1所示,为了训练FFCNN,首先将每个流作为传统的CNN分别进行训练。将预训练网络的权值作为初始值。在每个流收敛后,将每个流的学习权值视为FFCNN的初始值。然后,FFCNN被联合训练,直到收敛。本阶段在指定位置添加特征融合模型,完成特征融合。
本文比较了AlexNet、VGG-16和Resnet-50三种著名网络。这三个模型都是由ImageNet预先训练过的。为简单起见,特征融合模块只在最后一个卷积层添加。为了公平起见,使用相同的融合算子,即连接算子来融合特征。实验结果见表三。如表3所示,使用Resnet-50架构构建FFCNN的准确率比使用AlexNet和VGG-16要好得多。在该缺陷检测任务中,基于Resnet-50体系结构的FFCNN的准确率可达到98.0%,而基于AlexNet和VGG-16体系结构的FFCNN的准确率分别为92.67%和94.00%。
在第二个实验中,比较了在特征融合模块中使用不同特征算子的结果。由于Resnet-50体系结构的性能最好,因此在接下来的实验中被选为FFCNN的主要体系结构。此外,为了简单起见,特征融合模块只是在最后一个被添加到卷积层。实验结果见表四。如表四所示,使用串联算符进行特征融合的效果最好,准确率达到98.00%。最大算子比平均算子要好得多,其准确率分别为96.33%和94.33%。这是因为连接算子可以对从每张图像中学习到的特征映射进行合适的组合,而最大算子只能帮助网络提取出最显著的特征。在这三个运算符中,平均运算符表现最差。这是因为平均运算符模糊了这些特征。
由于页面限制,只有训练和验证准确率以及基于连接操作符的训练和验证损失分别如图6(a)和(b)所示。如图6所示,可以看出,在验证集上的准确率为98.00%,我们提出的算法经过1000次迭代后收敛。
在第三个实验中,比较了不同层特征融合的结果。连接操作符用于融合特性。由于Resnet-50是由多个卷积块构建的,并且同一卷积块中的特征映射具有相同的大小,所以在每个构建块的最后一个卷积层添加特征融合模块。不同层融合的实验结果比较见下表。
这是因为随着网络层的加深,网络提取出更抽象、更高级的特征。为了探讨多层融合是否能提高网络的性能,我们进行了多次融合实验。实验结果如表V(后三行)所示。如表V所示,Cov4_X+Cov5_X的融合特征效果最好,为98.67%。一个有趣的现象可以发现,在多层上融合特征会导致较低的性能。这可能是因为与缺陷特征相关的特征主要嵌入在高级特征中,而低层次特征同时模糊了高级特征。请注意,尽管在构建Cov4_X+Cov5_X时融合特性的性能略高于仅在Cov5_X时融合特性,但前者的参数是后者的两倍。
本文集成了基于传统图像处理方法的算法和基于深度学习的算法,开发了一种基于智能机器视觉的磁性砖表面缺陷检测系统。因此,该系统可以自动检测出在不同表面上出现的缺陷。为了建立一个合适的网络,我们探索并比较了三种最先进的架构,包括AlexNet、VGG-16和Resnet-50。为了融合从多幅图像中提取的特征,引入了一种特征融合模块。在特征融合模块中,使用了三种运算符来融合特征,即均值、最大值和连接运算符。实验结果表明,其中连接算子的性能最好。这是因为连接操作符可以对从每个图像中学习到的特征映射进行合适的组合。为了关注更有代表性的部分,抑制不那么重要的信息,采用CBAM来帮助提出的模型学习“什么”和“在哪里”参加。