基于改进Deeplabv3+的瓷砖表面缺陷检测
2024-01-13娄树理
汪 颖,娄树理
(烟台大学物理与电子信息学院,山东 烟台 264005)
瓷砖作为建筑中一种重要的材料,其质量检测一直是人们关注的重点。目前在瓷砖生产的检测方面仍依赖于人工,人工检测不仅耗时长、效率低,而且容易受个人主观因素的影响,因此利用机器视觉技术对瓷砖表面缺陷进行快速高效的检测,对于推动瓷砖生产的自动化具有重要的意义。
在机器视觉领域,有关瓷砖表面缺陷检测一直是研究热点。在传统研究检测方法中,SAMARAWICKRAMA等[1]提出了基于图像处理技术的瓷砖行业自动检测系统,该系统可以高精度和高效率地检测瓷砖表面的颜色变化和缺陷;SHIRE等[2]提出了一种自动缺陷检测和分类技术,能够在很短的时间内检测瓷砖缺陷;李庆利等[3]提出了一种基于灰色关联分析的瓷砖特征提取算法,并完成了瓷砖表面缺陷检测软件设计;段春梅等[4]提出了基于机器视觉的瓷砖表面缺陷无损检测算法,对瓷砖素坯图像预处理、图像分割后,利用圆形度特征描述实现缺陷判别;吴冰等[5]提出了一种基于BP神经网络与区域生长法相结合的瓷砖表面缺陷图像分割技术;刘利等[6]提出了一种对彩色带花纹的瓷砖色差检测算法,对采集到的瓷砖图像依次进行色彩空间转换、中值滤波、二值化和灰度直方图分割。以上传统检测方法一定程度上缓解了人工检测的压力,但特征提取主要依赖人工设计的提取器,存在计算冗余量大、复杂度高的缺陷,且难以适应复杂场景,算法鲁棒性差。
近年来,随着深度学习模型的不断探究,语义分割以其优秀的缺陷检测能力为缺陷检测带来新的研究方向,常见的分割网络有U-Net[7]、PSPNet[8]、Deeplab[9-12]系列。文献[13]针对传统芯片缺陷检测方法难以实现缺陷特征精确提取且泛化性较差的问题,提出了改进U-Net芯片焊缝气泡缺陷的检测方法(DSSMob-U-Net)。U-Net网络方法提高了图像检测精度,但该网络的结构复杂,对物体边界的检测效果不理想。文献[14]针对移动端平台难以应用计算复杂度高的语义分割网络对隧道衬砌裂缝实时检测的问题,提出一种基于改进PSPNet的实时分割网络模型Mobile-PSPNet,以减少模型对计算资源的需求。PSPNet网络通过直接使用不同的池化操作来控制感受野,一定程度上提高了检测速度,但是采用方形核卷积进行池化操作,并不能充分利用场景,精度受到影响。
Deeplabv3+算法通过多尺度特征里不同参数的设置,使卷积层和池化层提取不同的特征,这些特征的融合提升了网络的性能,但Deeplabv3+网络依然存在网络参数量大,以及边缘细节特征被忽略的问题,这会导致算法运行速度变慢以及整体精度下降。针对Deeplabv3+网络普遍存在的网络参数量大、边缘细节分割不准确等问题,本研究在DeepLabv3+的基础上进行改进,首先采用轻量级的主干网络MobileNetv2[15]替代DeepLabv3+的主干网络Xception,MobileNetv2网络减少了计算成本和参数量,提高了检测速度。同时在空间金字塔提取多尺度信息之后加入CBAM注意力机制,增强网络对边缘位置和小尺度缺陷特征的感知能力,解决边缘缺陷和小尺度缺陷导致的漏检、错检等问题,细化了分割结果。
1 Deeplabv3+ 模型概述
Deeplabv3+模型[13]如图1,采用编码器-解码器结构实现对缺陷的分割。编码器模块首先通过Xception神经网络对输入的缺陷图像提取图像特征,提取到的特征输入到空间金字塔池化模块(Atrous Spatial Pyramid Pooling,ASPP),获取多个尺度的高层语义信息之后,将各特征信息进行通道维拼接并通过1×1卷积降低通道数,然后将高层次特征图输入到解码器进行处理。
图1 改进前的Deeplabv3+网络结构
解码器模块将经过4倍上采样处理的多尺度高级特征与主干网络Xception提取出的低级特征进行融合,再利用3×3卷积和4倍上采样,恢复图像原尺寸,完成瓷砖表面缺陷目标的分割。相比于仅有编码器结构,编码器-解码器结构能很好地融合图像的低层次信息和高层次信息,有效避免上采样操作带来的目标像素丢失问题。
2 Deeplabv3+ 模型改进
利用Deeplabv3+网络虽然能较好地检测缺陷区域,但由于实际生产的瓷砖边缘区域和微小缺陷相较于中间区域更容易被遗漏,导致分割精度下降。为提高网络分割精度,对Deeplabv3+网络进行改进,改进后的网络结构如图2。首先将主干网络中的Xception替换为MobileNetv2,利用轻量化MobileNetv2模型能有效减少模型复杂度和计算量。Deeplabv3+模型能够通过ASPP获得多尺度信息,但是仅通过各维度进行简单拼接,无法获取丰富的上下文信息,对于瓷砖边缘缺陷、小目标缺陷信息提取不足,因此利用注意力机制CBAM来增强网络对边缘缺陷位置的感知能力,提高整体的分割精度。
图2 改进后的Deeplabv3+网络结构
改进后的Deeplabv3+网络中,输入图像首先进入编码器中的MobileNetv2提取特征,由于该网络体积小、参数量少,可以更快速、精准地从大量瓷砖表面缺陷图像信息中提取缺陷部位。经提取的特征进入ASPP,该结构对输出的多尺度空间信息进行特征拼接。为减少拼接后的无关特征对识别精度的影响,先通过CBAM注意力机制提高卷积神经网络的注意力,再使用1×1大小的卷积增加编码结构的非线性。1×1卷积后的多尺度高级特征经4倍上采样处理后与Mobilenetv2网络提取的低级特征进行拼接,拼接后再利用3×3卷积和4倍上采样,恢复图像原图的分辨率。
2.1 基于MobileNetv2的主干模型改进
改进前的Deeplabv3+主干网络采用的是Xception,虽然对多种类的图像提取特征有较好的分割精度,但其网络复杂度高,对于复杂多样、信息量大的瓷砖表面缺陷图像,随着模型训练的进行,网络参数量会逐渐加大,速度大量降低,为提升特征提取的速度,本研究使用MobileNetv2代替Xception作为主干网络,MobileNetv2网络中的倒残差结构和线性瓶颈层共同构成线性倒残差结构,如图3所示,其中倒残差结构里采用逐点卷积和深度卷积,卷积时先通过1×1逐点卷积进行升维,随后进行3×3的深度卷积对各个通道进行一个单独的卷积,最后再进行1×1的逐点卷积降维。为避免降维后Relu函数损失瓷砖缺陷处的特征信息,在倒残差结构的最后一个1×1逐点卷积上,将线性瓶颈层替换之前的Relu激活函数进行降维,极大地减少了低维特征信息的大量损失,增加了信息维度,对提高分割精确度具有重要意义。
图3 MobileNetv2网络中的倒残差结构
2.2 引入注意力机制模块CBAM
Deeplabv3+模型能够通过ASPP获得多尺度信息,但是仅通过对各维度进行简单拼接,无法获取丰富的上下文信息,对于瓷砖表面缺陷这种小目标提取是不足的,因此在编码器结构中加入CBAM注意力机制以提高上下文的联系能力,增强信息提取。
CBAM注意力机制(图4)是由通道注意力模块(Channel Attention Module,CAM)和空间注意力模块(Spatial Attention Module,SAM)两个独立的部分组成的。该模块会对输入进来的缺陷瓷砖的特征层分别进行CAM和SAM的点乘处理,以提高检测精度,最后再输出特征图,公式可以表示为
图4 CBAM注意力机制
F′=MC(F).*F,
(1)
F″=MS(F).*F′,
(2)
式中:MC(F)为通道注意力机制;F为输入特征图;F′ 为与通道注意力点乘后产生的特征图;MS(F)为空间注意力机制;F″为与空间注意力机制点乘后产生的特征图。
缺陷特征图在CAM模块中分别经过一个最大池化和平均池化之后,分别进入多层感知器进行处理,最后用函数sigmoid进行激活生成通道注意力特征,CAM模块可以表示为
MC(F)=σ{MLP[AvgPool(F)]+
MLP[MaxPool(F)]},
(3)
式中:σ为Sigmoid激活函数;MLP为多层感知器;AvgPool、MaxPool分别表示平均池化和最大值池化。
SAM模块主要反映输入值在空间维度上的重要程度,其输入的特征值由CAM模块输出得到,再分别进行最大池化和平均池化,分别处理好之后将输出的特征值进行拼接,并利用7×7的卷积产生一个二维的特征图。SAM模块可以表示为
MC(F′)=σ{f[AvgPool(F′);
Max[MaxPool(F′)]]},
(4)
式中:MC(F′)为空间注意力模块;f为卷积层运算。
3 实验过程与结果分析
3.1 实验条件
采用的软件编程语言为Python 3.7,操作系统为Ubuntu18.04,GPU资源类型为TeslaT4,大小为 16 GB显存。模型基于Pytorch深度学习框架,主干网络为MobileNetv2,迭代次数为60次。
数据来自公开的数据集(Mvtec)[16],该图像集是Mvtec公司提出的无监督的异常检测数据集,为图像集缺陷部分提供了精确的像素级标注。图像集里缺陷的类别为crack、glue-strip、gray-stroke、oil、rough五类,本实验将该数据集分为裂痕瓷砖表面缺陷和磨损瓷砖表面缺陷两类进行训练。在训练之前先用软件labelme将数据集中瓷砖的缺陷部分进行框选标注,生成所需的json格式的文件。
3.2 数据集增强
选取Mvtec图像集里含瓷砖表面缺陷的图片进行训练。为了提高图像的质量和可辨识度,使图像更有利于观察或者进一步分析,使用亮度增强的预处理方法对图像进行数据增强操作[17],如图5,图像增强后的轮廓及边缘信息等比增强前更加清晰。
图5 亮度增强前后图像
使用Mvtec瓷砖数据集进行实验时需要大量的数据,而直接使用Mvtec数据集里的图像训练,容易出现模型过拟合的问题,因此,通过镜像、旋转等图像几何变换对数据集进行扩充。扩充后的瓷砖数据集数量达到700张,并按照9∶1的比例分成训练集和测试集,数据集如图6。
图6 扩充后的图像
扩充后的瓷砖表面缺陷数据集使网络模型的泛化能力得到提高,降低了网络模型对相关属性的敏感程度,加速了收敛的过程,避免模型过拟合等问题。
3.3 评价指标
为了验证模型的性能,需选取合适的性能评价指标,本研究选取语义分割常用的4个指标对分割的效果进行综合评价,分别为:平均交并比(Mean Interisection over Union,MIou)、平均像素准确率(Mean Pixcal Accuracy,MPA)、帧数(FPS)、正确率(Accuracy)。其中,MIou、MPA、Accuracy评价指标计算公式分别为
(5)
(6)
(7)
式中:假设一共有k个类别(不包含背景在内),本实验将图像分为两类,因此k=2;Pii表示真实值为i,预测值为i的像素数量;Pij表示真实值为i,预测值为j的像素数量;Pji表示真实值为j,预测值为i的像素数量;TP表示被正确地划分为正例P的个数;TN表示被正确地划分为负例N的个数,P表示正例的个数,即真实值与预测值一样的个数;N表示负例的个数,即真实值与预测值不一样的个数;MIou表示瓷砖数据集真实值与预测值这两个集合的交集和并集之比;MPA表示每个瓷砖缺陷类内被正确分类像素数的比例。FPS是模型每秒能处理图片的数量,其值越高,代表模型的速度越快;Accuracy表示被分对的样本数除以所有的样本数的概率,其值越高,代表分类器越好。
3.4 实验结果
为了验证改进模型的效果,分别与Unet、PSPNet、改进前Deeplabv3+三个网络进行了对比,在保证训练次数与训练数据集都相同的情况下,对比结果如表1所示。
表1 与其他分割网络对比
对比可知,改进后的Deeplabv3+算法效果提升明显。与Unet算法、PSPNet算法、改进前的Deeplabv3+相比,MIou分别提升1.34%、12.38%、4.03%,MPA分别提升4.37%、6.36%、5.06%,FPS分别提升26.66、39.76、5.45,Accuracy分别提升1.45%、8.01%、1.09%,说明改进后的算法在分割精度和检测速度上有了明显提升。Deeplabv3+模型改进前后的分割效果对比如图7所示。
图7 改进前后的分割效果对比
本模型结构主要有两个部分改进,分别是MobileNetv2和注意力机制,为了验证改进的有效性,对两种改进进行了消融实验,结果如表2。由表2可知,原始的以Xception为主干网络的Deeplabv3+模型在瓷砖数据集上进行检测,MIou值较低。将主干网络Xception替换为MobileNetv2后,MIou提高2.86%,MPA提高6.97%,FPS提高5.59,Accuarcy提高2.67%,说明MobileNetv2网络提取细节信息能力更强,检测速度更快。在此基础上,继续增加注意力机制模块CBAM,MIou提高3.47%,MPA提高0.79%,FPS下降0.14,Accuracy提高1.89%,说明添加注意力机制后,检测速度有轻微下降,但是可以抑制部分干扰信息的影响,提升了检测缺陷的能力。
表2 不同模块的性能效果
4 结 论
针对瓷砖表面缺陷检测速度慢、精度低的问题,基于Deeplabv3+模型,用轻量级网络MobileNetv2替代Xception作为主干网络,降低了模型复杂度,减少计算量,提升了检测速度;其次引入注意力机制CBAM,提高算法对边缘缺陷和小尺度缺陷的注意力,更加关注重点信息,提升了分割精度。实验结果表明,改进后的Deeplabv3+算法MIou提升6.33%,MPA提升7.76%,FPS提升5.45,Accuracy提高4.56%,对瓷砖缺陷具有较好的分割性能。