APP下载

基于深度学习的小样本墙壁缺陷目标检测及分类

2022-11-23杨波梁宇倩孙小明

关键词:精度分类样本

杨波,梁宇倩,孙小明

(山西大学 数学科学学院,山西 太原 030006)

0 引言

室内墙壁表面缺陷在我们日常生活随处可见,轻微的墙壁缺陷会影响房屋美观,严重墙壁缺陷会对人类的生命财产造成损害,因此对墙壁表面缺陷的检测和定位是非常必要的,先前已有一些对于墙壁表面缺陷的研究[1-2]。传统的表面缺陷检测方法大多是人工目检法,但该方法存在劳动强度大、检测稳定性及一致性差、效率低,且依赖于人的经验等问题。随着深度学习和计算机视觉技术的发展,特别是卷积 神 经 网 络(Convolutional Neural Network,CNN)的发展[3-4],缺陷检测和分类的准确性和快速性得到很大的提升[5]。1962年Hubel和Wiesel提出CNN,如今它已成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,其已经成为计算机视觉任务中应用最为广泛且最为成功的网络之一。与传统检测方法相比,深度学习基于大量的样本获得深度特征,而这些特征对于数据集的表征具有鲁棒性和泛化性且更加有效和准确[6-7]。

目前,基于深度学习的目标检测是用来识别图像中的多个对象,并判断对象的类别和位置[8]。Li等[9]使用 Faster RCNN[10]来实现目标部件的检测,提出一种新的模型驱动的聚类算法解决细长目标的对象区域百分比(Object-Region-Percentages,ORPs)较低的问题,有效地抑制了错误检测提高检测精度。Hu等[11]基于Faster RCNN构建了一个带有特征金字塔网络的ResNet50作为特征提取的基础网络,更好地解决了印刷电路板上的微小缺陷的检测问题。He等[12]基于深度学习提出利用多层次特征融合网络并将多个层次特征组合为一个可以包含多个的缺陷位置细节特征的检测系统,通过他们建立的一个缺陷检测数据集NEU-DET来训练和评估该系统的有效性。Zhou等[13]利用最先进的YOLOv5进行了安全帽的检测。Yang等[14]将最新的YOLOv5应用在公共场所佩戴口罩的监督中。

在工业应用中通常难以获得大量的可用样本,大都是基于小样本进行检测。对于实际数据集小样本的问题,通常采用数据增强方法进行解决。因此,在训练测试样本数量极其有限的情况下,利用各种数据增强方法将数据集扩增到需要的数量,对于墙壁缺陷检测是非常重要的。数据增强,常用的传统方法有旋转、随机翻转和随机裁剪等,虽然这些方法可以扩展数据集,但很难改变图像中目标的视觉信息和内容,即数据集的多样性并没有太大改变[15]。随机擦除也是常用的数据增强方法,但其可能会导致信息丢失。图像拼接和图像融合[16]等新颖的数据增强方法可以很好的解决上述问题,这两种方法常用于陶瓷品、墙壁、钢材表面缺陷等,适用范围较广。Li等[17]采用剪切、转换、改变亮度、增加噪声等七种数据增强方法来增强热轧钢带的六种典型表面缺陷。在数据增强的过程中,可以平衡不同类别的缺陷数量。除了上述方法,Niu等[16]利用图像生成、图像拼接和图像融合等技术,达到增强的目的。采用这些方法后,网络的检测精度比之前有了大幅度提高。另外,基于深度学习模型的数据增强方法也得到了广泛的应用,包括特征空间增强、对抗性训练、神经风格转移和基于生成对抗网络(Generative Adversarial Nets,GAN)的数据增强[18]也得到了广泛应用。Niu 等[19]利用GAN生成缺陷图像样本,以提高网络的缺陷识别能力。

本文针对墙壁表面缺陷检测问题,首先采集并制作一个室内墙壁表面缺陷数据集WSDD,进而使用Faster RCNN和YOLOv5,将数据标注后的WSDD进行目标检测定位,检测结果良好,表明自制的WSDD可用;其次,对于WSDD数据小样本问题,使用数据增强方法进行WSDD扩增,并利用经典深度卷积神经网络(ResNet34/50[20]、DenseNet121[21]、VGG16[22])模型对增强前后的墙壁缺陷图像数据进行识别分类。最后,实验结果表明识别精度相比增强前均有提高。

1 WSSD和目标检测

1.1 WSSD数据集获取

1.1.1 图像数据获取

本文根据三种类型典型的墙壁表面缺陷:裂痕、墙皮脱落、污渍及正常墙壁进行图像采集。数据库包括2015张RGB图像。其中,裂痕图片505张、墙皮脱落图片450张、污渍图片555张、正常墙壁图片505张。四种典型墙壁表面图像如图1所示。从图1可知,同一类型的缺陷存在着较大的差异,不同类型的缺陷也有一定的相似性,如裂痕和污渍。由于受到光照影响,同一类型的缺陷图像的有一定的色彩变化。从图1可看出,所采集的图片中有的只包含一类缺陷,有的包含多类缺陷。因此需在进行墙壁缺陷分类定位前进行图片数据预处理。

图1 四种典型墙壁表面图像(a)裂痕;(b)墙皮脱裂;(c)沾污;(d)正常Fig.1 Images of four typical wall surface(a)crack;(b)hole;(c)dirt;(d)normal

1.1.2 图像数据预处理

将原始数据集中去除正常图像后对含缺陷图像进行XML数据标注,XML文件注释主要是标记了在图像中出现的每个缺陷的类和位置边界框。将XML标注后的每一张缺陷图像形成新的数据集,该数据集称为WSDD-DET,用于目标检测。

在针对本文的WSDD小样本的问题中,首先选取全部的图像数据增强,然后进行分类训练测试。将原始数据和数据增强后的数据集统称为WSDD-CLS,用于执行分类任务。在分类中将图像像素处理为256×256,以便后续的数据增强和分类网络。

1.2 目标检测

在目标检测中,数据集选用带有缺陷标注的WSDD-DET进行训练测试,检测模型选用Faster RCNN和YOLOv5,目标检测的过程大致如图2所示。选用广泛使用的AP(average precision)和 MAP(Mean Average Precision)作为主要的评估指标。其中AP和MAP计算公式参见下面式(1)和式(2):

图2 目标检测过程图Fig.2 Diagram of object detection process

其中∑Precision是(某一类别)每个样本的精确率求和,N为样本总数。∑AP是所有类别的AP值累加求和,Nclass为类别数。

2 数据增强和缺陷识别

2.1 数据增强

本文的数据集样本较少,需进行数据增强。数据增强是减少过拟合、提高机器学习模型泛化能力的一种常用方法,可以解决数据受限的问题。如图3,我们对WSDD使用了多种不同的传统数据增强方法:(1)尺度调整,本文将输入图像大小统一调整为 256×256 pixel;(2)旋转,将缺陷图像进行 90°、180°和 270°旋转,如图3(b)-(d)所示;(3)翻转,将图像沿水平、竖直方向以及沿对角方向进行翻转,如图3(e)-(g)所示。

图3 几种传统的数据增强方法(a)原图;(b)90°;(c)180°;(d)270°;(e)水平翻转;(f)竖直翻转;(g)对角翻转Fig.3 Several traditional methods for data augmentation(a)the original image;(b)90 °;(c)180 °;(d)270 °;(e)flip horizontally;(f)flip vertically;(g)flip diagonally

本文同时采用先进的图像拼接和图像融合的图像增强方法。

(1)图像拼接

图像拼接,即用几张原始图像组成一个新的图像。在分类模型中,通常需要将输入图像转换成一个固定的尺寸,本文我们已将图像预处理成256×256 pixel。避免了图像由于变形导致几何失真[23]。我们从WSDD中随机选取四幅图像,因为是进行数据分类故从同一类型的缺陷中挑选图像,四幅图像至少要包括一张正常和一张缺陷图像,拼接成一幅新的图像。这一步也有助于增加单张图像上缺陷的数量。同时采用中值糊法减少四幅图像的拼接边缘裂缝,再将生成图像的大小调整回256×256 pixel。此操作,一方面调整大小可以方便地处理具有相同大小的训练集,另一方面可以缩小生成图像的拼接裂缝。训练集中也会有更多的微小裂缝,可以明显提高对小裂缝[24]的检测精度。以裂痕为例原始图像如图4(a)所示,中值模糊后的拼接图像如图4(b)所示,像素调整后的结果如图4(c)所示。

图4 图像拼接(a)四张原始图像;(b)中值模糊后拼接结果;(c)像素调整后结果Fig.4 Image mosaic(a)four original images;(b)the image after median blurred mosaic;(c)the image after pixel adjustment

(2)图像融合

图像融合,即用任意同类缺陷的两张图像按照一定的融合比进行像素加权融和。张等提出的一种新的数据无关、简单的数据增强方法,称为Mixup[25]。它有助于对抗训练过程中的不稳定性。利用这种思想以一种简化的方法来融合两个不同的图像。每类中随机选取两个缺陷图像,然后按照一定的融合比将图像进行融合。由于样本图像的大小相同,因此直接进行两幅图像的融合,不需要其他的图像处理。这个融合加法可以参见下面式(3):

其中,If为融合之后的图像,I1为第一个缺陷图像,I2为第二个缺陷图像。融合比取决于参数m。本文中当m=0.5时,融合后的图像更接近真实的缺陷图像。以裂痕和墙皮脱落图像为例,原始图像如图 5(a)和 5(c),融合结果如图5(b)和 5(d)所示。

图5 图像融合(a)裂痕原始图像;(b)裂痕融合结果;(c)墙皮脱裂原始图像;(d)墙皮脱裂融合结果Fig.5 Image fusion(a)original image of the crack;(b)the image after crack fusion;(c)original image of the hole;(d)the image after hole fusion

原始的WSDD经过以上数据增强后数据集扩增到原始数据集的10倍,即由原来的2015张扩增到20 150张,其中我们将16 120张图像用于训练,4030张图像用于测试。各类缺陷图像数据集数据增强前后的分布情况如表1所示。

表1 缺陷数据分布情况Table 1 Distribution of defect data

2.2 缺陷分类

在墙壁缺陷分类中,选用上文提到的WSDD-CLS进行训练测试。分类模型选用四种基于深度卷积神经网络的分类模型包括ResNet34/50、DenseNet121、VGG16,图像的分类的大致过程如图6所示。这一部分我们将分类精度作为评估指标。

图6 图像分类过程图Fig.6 Diagram of image classification process

3 结果与分析

3.1 目标检测结果与分析

我们用1、2、3分别表示裂痕,墙皮脱裂和污渍3种缺陷类型,以便后续处理。

(1)基于Faster RCNN的目标检测结果及分析

Faster RCNN的模型训练中,backbone网络选择VGG16,学习率为0.001,批量大小24,权重衰减为0.000 5,优化器选用系数为0.9的冲量优化器,损失函数为交叉熵,迭代次数为12 000。图7是Faster RCNN上检测较好的结果图。图8是检测较差的结果图。由图8可知,较差的结果主要有两种情况:一类是检测框的范围不够精确,另一类是检测框会有重叠及重复的问题。其主要原因是:一是所使用的数据集难度很大,在人眼的情况下有时都难以辨别;二是墙壁缺陷的检测和识别和人或其他一些物体不同,墙壁缺陷局部跟整体的特征相近,因此会出现多个识别框的情况。这也是这类缺陷识别中需要攻克的一个难题。

图7 Faster RCNN检测较好的结果图Fig.7 Satisfactory results of Faster RCNN

图8 Faster RCNN的检测较差的结果图Fig.8 Unsatisfactory results of Faster RCNN

使用Faster RCNN网络的各个缺陷AP以及MAP值如下表2所示。

表2 各个缺陷的AP以及整体的MAPTable 2 AP for each defect and overall MAP

(2)基于YOLOv5的目标检测结果及分析

在YOLOv5的模型训练中,网络了选择YOLOv5s,学习率为0.01,批量大小为4,权重衰减为0.000 5,优化器选用冲量系数为0.999的Adam优化器,损失函数为计算损失,epoch次数为200。这部分,除采用AP和MAP作为评估指标外,还选用 GIoU 损失[26]和 Objectness损失[27]来评估模型。其中,GIoU是在IoU的基础上的升级,在目标检测领域的评价体系中,交并比(IoU)是经常被提到的一个概念,它表示的是预测结果与真值结果的重叠比率,IoU常用于比较任意两个区域C、G之间的相似度,具体如公式(4)所示,GIoU具体计算公式参见下面式(5),其损失值越小说明检测效果越好。

其中C为两个框的最小外接矩形,为ground truth,B为边界框,B∪Bgt表示两个边界框的并集,图9是YOLOv5训练中GIoU随训练次数的损失结果。

图9 GIoU的损失结果图(a)训练集GIoU损失;(b)验证集GIoU损失Fig.9 Loss result diagram of GIoU(a)loss of the GIoU of the training set;(b)loss of the GIoU of the validation set

Objectness本质上是物体存在于感兴趣区域内的概率的度量,值越高,意味着图像窗口更可能包含物体,这有助于快速地删除不包含任何物体的图像窗口。其损失越小,说明窗口包含目标的可能性越大。图10是Objectness随训练次数的损失结果。

图10 Objectness损失结果图(a)训练集Objectness损失;(b)验证集Objectness损失Fig.10 Loss result diagram of Objectness(a)Loss of the Objectness of the training set;(b)Loss of the GIoU of the validation set

图11是WSSD-DET在YOLOv5上每类缺陷的AP和整体的MAP值的结果。由图可知,裂痕的AP为0.599、墙皮脱裂为0.794、污渍为0.336,总体的MAP为0.579。图12是YOLOv5训练检测较差的结果图。出现不太好的结果的原因与Faster RCNN中的原因大致相同。图13为YOLOv5训练检测结果,且效果较好,甚至还可以正确检测到一些未标注到的缺陷。在YOLOv5的检测结果中出现少量的范围不精确的检测结果,出现重复框的情况较少,结果要比Faster RCNN要更加精确。

图11 每类缺陷的AP和整体的MAPFig.11 AP for each defect class and overall MAP

图12 YOLOv5检测较差的结果Fig.12 The unsatisfactory results of YOLOv5

图13 YOLOv5检测较好的结果Fig.13 Satisfactory results of YOLOv5

综上,Faster RCNN和YOLOv5两种目标检测算法对于我们难度较大的WSDD-DET检测效果良好。我们的数据集WSDD对于目标检测是具有意义的,可以用于其他算法的研究学习中。

3.2 数据增强前后分类结果与分析

选用前文提到的WSDD-CLS数据集,在ResNet34、ResNet50、DenseNet121以及 VGG16模型中使用扩增前后的数据集进行训练和测试。图14是测试精度结果图,可以看出经过数据增强后,每一类网络的识别精度都有一定程度的提高。其中DenseNet121提升精度最低,为0.2%,VGG16提升精度最高为6.24%。

图14 分类精度结果图Fig.14 Results of classification accuracy

在ResNet50上,原始数据集精度为95.85%,低于在ResNet34上训练时的97.59%,经分析造成这种情况是由于ResNet50的网络更加深,而原始数据集数据不足。经过数据增强之后ResNet50的精度明显提高。在VGG16上原始数据精度为83.91%,经分析造成这种情况的原因是VGG16网络主要靠增加网络深度实现精度的相对提升,网络深度加深带来的影响是数据量要求较多,但从图12可以看出在数据增强之后,VGG16的精度得到了极大的提升。

综上所述,本文使用了多种数据增强的方法,对于数据进行扩增,对于分类精度提升具有极大的推动作用。数据增强之后精度最低为90.15%,最高为99.47%,大部分精度都达到98.86%以上。结果表明所采用的数据增强的方法对于数据质量提升有明显的效果,可应用于其他工业现场的小样本数据增强中。

4 结论

本文提出了利用图像增强及深度学习的方法解决室内墙壁缺陷检测中存在的数据集样本较少的问题。通过采集墙壁缺陷的数据集制成数据集WSSD,并对各种缺陷进行检测。对于目标检测任务,使用Faster RCNN和YOLOv5对WSSD-DET进行了目标检测,两个检测模型的MAP分别为0.517和0.576,表明我们采集的WSSD具有实用价值。对于数据集小样本的问题,采用了多种数据增强方法,并将增强前后的数据集通过四种经典的卷积网络分类模型进行测试,测试结果表明数据增强后模型的分类精度有明显的提高,分别提升了1.27%、3.62%、0.2%和6.24%。该结果同时表明了本文采用的数据增强方法可以有效缓解数据集小样本的问题。然而,WSSD中的缺陷相对来说检测难度较大,目标检测结果还有待进一步提升,并且对于某些复杂的墙壁缺陷,所采用的数据增强方法不能对每一张图像都能产生期望的结果,这是未来需要我们进一步考虑和解决的问题。

猜你喜欢

精度分类样本
热连轧机组粗轧机精度控制
分类算一算
用样本估计总体复习点拨
超高精度计时器——原子钟
分析误差提精度
分类讨论求坐标
推动医改的“直销样本”
基于DSPIC33F微处理器的采集精度的提高
数据分析中的分类讨论
教你一招:数的分类