基于改进Deeplabv3 +网络的线缆表面缺陷检测研究①

2021-11-05 03:38杨贤昭刘惠康
高技术通讯 2021年9期
关键词:线缆空洞卷积

陈 亮 杨贤昭 刘惠康

(武汉科技大学冶金自动化与检测技术教育部工程研究中心 武汉430081)

0 引言

近年来,我国智能机器人、通讯、智能家居等行业迅速发展,电缆作为一种传输电(磁)能、信息和实现电磁能转换的重要线材产品,是这些行业发展的必需品。线缆的发展成为这些行业的铺垫,其使用频率逐渐增加,这需要严格把关线缆质量。由于线缆外表主要起绝缘、防水、防潮等作用,所以线缆外表检测尤为重要,同时线缆外表也是线缆质量的一个重要指标。它的缺陷主要由于生产设备、生产方式、安装方式、人为因素等原因产生,这些缺陷会造成产品质量得不到保障、施工人员人身安全受到影响、商业经济受到损失等危害。线缆表面缺陷相比墙面和沥青地面产生的裂纹缝隙更小,采用同样方式采集的图像信息更少,得到的分割结果相对较差,这将需要获取更多的图像信息。线缆表面后期检测一般情况下处于高空中,相比于布匹、轨道缺陷的检测,线缆表面的图像信息不易获取。

目前线缆表面缺陷的主要检测方式为人工检测,但这样的方式误检率太高,不能满足一些特殊行业的要求。而且如果针对处于高空中的线缆,采用人工检测将会存在安全隐患,因此,为了降低检测目标的误检率和保证安全性,利用机器视觉对图像进行判断是十分重要的。

国内外已有部分学者基于机器视觉对线缆缺陷进行研究,其中乔湘洋等人[1]利用改进的灰度均值和改进的双边滤波与原缺陷图像进行差分,实现图像分割,使其在复杂环境也能被很好地处理。王海芳等人[2]通过改进高斯滤波算法来建立自适应模板,比较原图和模板的Pearson 相关系数来判断缺陷。张俊[3]运用线缆图像的灰度均值垂直投影曲线与其二次拟合曲线方差均值来对图像进行判断。Gao 等人[4]利用数学几何和线性插值法将电缆转换为平面,再根据图中针孔灰度特征用灰度阈值和梯度幅度来进行判断。同时也有学者使用深度学习的方式来处理裂纹,其中Song 等人[5]用YOLO 算法来检测具体的缺陷位置,后期对具体位置做出量化,但这是针对混凝土裂纹来进行处理。以上处理方式一部分是基于非学习型图像算法,其检测速度上较好,但在某些复杂情况下其准确性相对较低;另一部分是基于深度学习算法处理混凝土裂纹,混凝土裂纹相较于本文线缆表面缺陷更容易被识别,有更显著的裂纹缺陷。基于这种情况本文考虑采用改进Deeplabv3 +网络对线缆表面缺陷进行识别,目前有很多学者对Deeplabv3 +进行研究,Deeplap3 +的原型是Deeplabv1。Deeplabv1 是采用深度卷积神经网络(deep convolutional neural networks,DCNNs)实现对图像的分割。Chen 等人[6]在Deeplabv1 的基础上进行多尺度的采样,形成了空间金字塔结构(atrous spatial pyramid pooling,ASPP),产生了Deeplabv2。薛飞等人[7]指出,相比于Deeplabv2,Deeplabv3 改进了串联结构,形成更深结构的空洞卷积,从而进一步提升平均交并比(mean intersection over union,MIOU)的值。Zhang 等人[8]在Deeplabv3 的编码基础上添加了一个解码过程,形成Deeplabv3+,使更多的图像信息被利用。其中有一些学者对Deeplabv3 +进行了改进,Bhakti 等人[9]改变空间金字塔结构降低膨胀率,采用MoblieNetV2 轻量化架构,使处理图像的速度加快。王亚刚等人[10]在解码器部分采用3 层可分离卷积,结合对数据集做预处理,使其结果较好。刘致驿等人[11]将空间金字塔结构中除空洞率为1 外的其他3 个空洞卷积两两连接,取得了较好的效果。

1 基于改进Deeplabv3 +网络的线缆缺陷分割算法

1.1 Deeplabv3 +算法

Deeplabv3 +是图像分割的一种算法,它能对图像进行像素级分割,这使得它在图像分类上效果较好,它比Deeplabv3、Deeplabv2、Deeplabv1 增加了解码器结构,形成了编码器-解码器结构,这样能收集更多的像素信息,使分割出来的图像准确率更高。图1 所示是Deeplabv3 +网络对图片识别的过程。

图1 Deeplabv3 +网络结构图

图中首先经过编码器部分,这部分先经过主干网络Xception,其中主干网包括65 层,引用残差网络结构,将可分离卷积进行串联,形成深度可分离卷积,输出信号进入空间金字塔结构。具体的网络层分布如图2 所示。

图2 Xception 网络结构图

从图1 中可以看出,这里是4 个空洞卷积,膨胀率分别是1、6、12、18,与池化层一起组合成空间金字塔结构(ASPP)。假设表示卷积操作,其中下标k表示卷积核大小,上标r表示空洞率的大小,用G(x) 表示池化操作,那么ASPP 的输出信息如式(1)所示。

ASPP输出信息Y经过1 ×1 的卷积核将通道变成一个,这是Deeplabv3 +的编码部分。

解码器部分从主干网络Xception 里面提取低信息的图片,这样处理使分割出来的图片边缘效果更加清晰。在编码器中出来的图像信息进行4 倍双线性插值上采样来提高图片的分辨率,然后将Xception 里面提取的信息和上采样的图像信息进行组合,输出信号经过3 ×3 的卷积核,最后将信息通过4 倍双线性插值上采样得出分割的图像。

由于本文的数据集是线缆表面缺陷,有些线缆表面缺陷是小裂纹,原始Deeplabv3 +的ASPP 的空洞率间隔大会导致图像分割断层,且双线性插值上采样会造成信息量少,使图像信息获取不完整。

1.2 改进Deeplabv3 +算法

针对上一节提出的问题,本文在Deeplabv3 +的基础上进行两方面的改进。

首先,原始空洞卷积的卷积率间隔较大,使输出的图像变得很稀疏,导致一些局部信息丢失,为了解决这个问题本算法提高了ASPP 里面空洞卷积的卷积率密度,具体改进如图3 所示。

图3 本文算法结构图

从图3 中可以看出,将ASPP 中的空洞卷积增加到8 个来获取更多图像信息,这样能尽量减少信息的丢失,确保识别图片的相对准确性。相比于Deeplabv3 +,ASPP 输出信息如式(2)所示。

比较改进前和改进后ASPP 输出的信号Y和Y1,不难看出Y1能获取更多的图像信息。一维情况下空洞卷积的具体操作如式(3)所示。

我们知道在无人机中有一个摄像机是搭载高清摄像机,若把其使用在飞行控制系统与地面控制系统之中的话,能够取得较好的效果,其一,基于使用此种摄像机,能够灵活转动摄像头完成拍摄工作,使拍摄数据图片成像更加清晰,以及清楚看到地形的层次分面与色彩层级。基于此,促进土地整治项目工作顺利完成。

其中,y[i] 是输出信号,x[i] 是输入信号,w[p] 是卷积核,r是空洞率,p是位置,P表示卷积核的大小。空洞率为r时,则像素为第一个位置、第r +1个位置以及依次加r的位置与对应的卷积核相乘后累加,相当于在卷积核中插入r -1 个零元素,当卷积核为k时,其感受野大小如式(4)所示。

当空洞率为2 且卷积核为3 ×3 时,则其感受野为5。此处的感受野扩张和Deeplabv3+是相同的运算。

在ASPP 中本实验采用平均池化,取周围像素点的均值,这样可以表达所有像素点的信息。同时在卷积后面加1 ×1 的卷积是为了增加整个系统处理非线性对象的能力,使整个系统在面临较复杂的环境时仍然有较高的准确率。具体计算卷积输出的形状大小如式(5)和式(6)所示。

其中H、W是输入信号的大小,FH、FW是滤波器的大小,OH、OW为输出信号的大小,P是填充,S是步幅,依据以上公式,当有输入信号的大小、滤波器大小、填充和步幅时就能知道输出信号大小。

其次,在Deeplabv3 +网络中采用两次双线性插值上采样,双线性插值的具体矩阵如式(7)所示,以(0,0)、(1,0)、(0,1)、(1,1)为例,在这个正方形里面进行x轴和y轴方向上的插值。

假设x,y分别是目标点的x轴坐标和y轴坐标,当在(0,0)、(1,0)、(0,1)、(1,1)中间进行插值为(x,y) 时,这个点与(0,0)之间的关系为f(0,0)×(1-x)×(1-y),与(1,0)的关系为f(1,0)× x ×(1-y),与(0,1)的关系为f(0,1)×(1-x)×y,与(1,1)的关系为f(1,1)× x × y。

从公式中可以得出,目标点的灰度值是由周围4 个像素灰度值取平均得到的,这种方式考虑了周围像素值大小,但是没有考虑相邻点变化率影响,会使放大后部分细节信息丢失。针对这一问题,本文采用图2所示的方式,串联两个3 ×3 的卷积和一个1 ×1 的卷积然后并联一个同样的结构,这样能减少信息丢失。

图4 分割结果图

依据分割结果可以看出,Deeplabv3 +能分辨出大致的缺陷,但相对较浅的地方并没有本文改进的算法好。再将两种方法的精确度和MIOU 进行对比,具体的实验数据如表1 所示。

表1 网络结构数据对比

从上述的结果可以看出,改进的Deeplabv3 +相比原始Deeplabv3 +网络有更好的准确性和MIOU,更符合工业的需求,在线缆安全方面也有了更高的保障。

1.3 本文算法流程

图5 所示是本文算法流程图。

图5 本文算法流程图

从图中可以看出,先将线缆图片用Labelme 软件制作成VOC 的格式标签,里面包含了训练集、测试集和验证集,这样做是为了使Deeplabv3 +网络能通过这些标签来识别图片信息。在读取信息后,需要做训练前的准备,调节具体的参数,用训练集训练出网络模型,之后用验证集通过MIOU 和精确度P的数据找到此时相对最优模型。如果验证出MIOU和精确度P相对原始Deeplabv3 +相差较大,则需要返回,继续调节参数,当达到理论标准值后保存此时的最优模型,最后运用最优的模型对测试集进行测试并获得结果。其中具体的MIOU 和精确度P公式如式(8)和式(9)所示。

式中TP是被正确分割的线缆缺陷像素数目,FP是被错误分割为缺陷背景的像素数目,FN是错误标记为背景的像素数目。MIOU 可以用图6 表示,真实值与预测值的交集比上真实值预测值的并集减去交集累加求平均,精确度P就是预测正确的占整个预测样本的值。

图6 真实值与预测值图示

2 实验分析

本实验共采集实际线缆表面缺陷图300 张,通过Labelme 将数据制作成可识别的标签,数据的类别分为凹槽、鼓包、裂缝和背景4 类。本文实验图片由智能机采集,经过程序处理后图片大小为513 ×513 像素,本文改进Deeplabv3 +网络算法程序是在Windows10 系统、显卡8 GB 下使用Pytorch 框架实现的。

实验利用本文提出的改进Deeplabv3 +算法模型来识别线缆表面缺陷图,并将其与Canny 算子、Sobel 算子、OTSU 阈值割、最大熵阈值分割算法分析结果进行对比,5 种算法分析结果如图7 所示。

图7(b)表明使用传统的Canny 算子[12]分割能够识别简单的缺陷,如单个凹槽、鼓包等,但线缆表面缺陷较浅时很难正确地识别。对比图7(b)和(c)可以看出,虽然Sobel 算子[13]效果比Canny 算子要清晰,但对于线缆上比较浅的缺陷依然无法清晰识别。图7(d)中OTSU[14]阈值分割的结果信息量很少,只有鼓包这种状态能被清晰识别,其状态的缺陷都不能被有效地识别。从图7(e)中可以看出,最大熵阈值分割[15]效果得到的信息量也很少,只能识别鼓包。图7 (f)是本文算法分析结果,相比其他方法,凹槽、鼓包、裂缝和复合的环境都能被清晰有效地识别出来。从以上对比实验可以看出,改进算法面对各种缺陷情况都能准确地识别目标,相对于其他算法有更好的准确性。

图7 算法对比

3 结论

本文针对线缆缺陷检测精度问题提出了改进的Deeplabv3 +算法,数据处理部分采用Labelme 进行数据集的标注。在网络结构部分将ASPP 中的空洞卷积数量翻倍并在其后增加一个1 ×1 的卷积处理环节解决了输出图像可能断层问题和增加系统处理非线性对象的能力。在解码过程中引入并联多层3×3 的卷积解决了上采样部分信息丢失问题。实验结果表明,改进算法在精确度、平均交并比方面比原始Deeplabv3 +效果更好。相较于其他传统算法,改进Deeplabv3 +算法虽然在检测精度上表现更好,但是仍然有很多问题需要解决,如本实验相机像素相对较低会影响识别的结果,同时本文算法相对复杂且运算量大,在图片反光或者恶劣环境时分割效果不是很突出。未来的研究将关注如何优化数据以及算法来进一步提高线缆缺陷的检测效果。

猜你喜欢
线缆空洞卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
上海福尔欣线缆有限公司
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
空洞的眼神
弹上线缆布设技术研究
华通线缆:“通”向未来的品牌梦
用事实说话胜过空洞的说教——以教育类报道为例
一种基于卷积神经网络的性别识别方法
臭氧层空洞也是帮凶