APP下载

基于深度学习的航拍图片中绝缘子串轮廓提取方法

2021-03-07晋成龙沈云万鑫怡

电子技术与软件工程 2021年22期
关键词:绝缘子注意力语义

晋成龙 沈云 万鑫怡

(中水淮河规划设计研究有限公司 安徽省合肥市 230601)

1 引言

近年来随着深度学习在计算机视觉领域的不断突破,很多学者研究的一系列深度学习目标检测算法成果(如R-CNN(Region-Convolutional Neural Networks系 列)[5],SSD(SingleShotMultiBox Detector)系列[6]),YOLO(You Only Look Once)系列[7],广泛应用于汽车、医疗、船舶、电力等行业。基于深度学习的绝缘子目标检测,检测结果均是用矩形框标记绝缘子区域,存在诸如背景和绝缘子不能准确区分,并且密集分布的绝缘子难以分离的问题,较难进一步提高故障检测精度[1–4]。在此背景下,有相关学者提出特定领域的深度学习定向识别算法,以此研究一种高精度轮廓提取算法用于复杂背景下绝缘子串的检测具有重要意义。

像19岁时出行一样,住别具特色的青旅,同各国驴友交流,我请他们喝酒,他们会给我一支烟。和19岁不一样的是,不会再有太多的话要对陌生的人说,也不会喝醉。成长,终究让人学会自制。期间林全打电话给我,我不愿接,发短信给我问我去了哪里,我也不愿回复,直接删掉。

2 yolov5-segnet绝缘子串提取网络架构

本文在yolov5目标检测算法的基础上添加语义分割分支,提出一种基于深度特征融合的yolov5-segnet算法进行航拍绝缘子串轮廓提取。该算法如图1所示主要由目标检测部分和语义分割部分组成,目标检测部分选用yolov5算法来进行绝缘子串检测,语义分割部分通过融合区域特征,并且添加注意力模块,以生成绝缘子区域的语义分割图,最后使用OpenCV函数库中的轮廓提取函数绘出巡检图像中绝缘子串的轮廓。

图1:本文网络算法训练流程图

2.1 yolov5目标检测模块设计

本文yolov5目标检测模块,通过特征提取部分和多尺度预测部分完成绝缘子目标特征提取及初定位。在特征提取部分,首先将输入的绝缘子串图像尺寸统一为608×608;然后用Focus结构和CSPDarkNet-53作为骨干网络进行特征提取;最后,获得每个深度绝缘子串图像的特征张量,并将这些张量用于绝缘子串的检测。结合绝缘子串的目标检测过程,将基于yolov5的绝缘子检测架构进行可视化处理,另外,为了更加细化的提取图像特征,本文对yolov5算法中的Pooling层(池化层)进行改进。yolov5算法中原本使用max-pooling(最大池化),一定程度上起到了很好的降维作用,但同时也丢失了大量的细节特征,故本文用动态k-max pooling替代max pooling,动态k-max pooling则是抽取特征中最大的前k个值,并且保留了他们的顺序。同时,这里取k的个数是动态变化的,改进后可为后续步骤多保留一些特征信息。

具体动态函数公式如式(1):

其中l表示当前卷积层数,L代表模型中卷积层总数,ktop表示最顶层卷积层的pooling操作的k值。

2.2 语义分割模块设计

(1)设置1个feature map的中心点,每一个中心点对应1个聚类中心。

午夜前,悬崖上空的银河将会呈现出最美的状态,国际空间站会在凌晨1∶40从我们头顶掠过,出现的时间仅有两分钟。

上下层级的特征融合可有效提取语义特征,由于图像中绝缘子的尺寸都不相同,为了能让网络准确的分割出不同尺寸的绝缘子,充分利用不同尺寸特征图不同感受野的特性,相对大的感受野的特征图更关注绝缘子的语义信息,相对小的感受野更关注绝缘子的细节信息。yolov5目标检测阶段在三个尺度上进行定位后,依靠置信度对目标区域进行筛查,提取出置信度大于0.5的特征区域的边框坐标信息,将其还原到原图后与标签坐标进行非极大值抑制(NMS,Non-Maximum Suppression)保留最优的特征区域,然后通过语义分割分支提取出不同层的特征区域进行3×3的卷积操作后进行上采样,将不同大小的特征图处理为相同尺度进行concat,使融合的特征图包含充分的语义信息和细节信息。该操作有利于训练的稳定性,增加网路的泛化性。

2.2.1 注意力机制

本文对yolov5输出特征图进行目标特征提取之后引入通道注意力模块以精炼特征,强化贡献度大的目标特征图。基于通道之间的依赖关系,实现通道注意力建模。从语义级别学习特征之间的关联,优化特征,激活与目标更相关的通道特征,从而消除冗余特征并获得更加简洁精确的特征表达。将输入的特征图,分别经过基于宽度和高度的最大池化和平均池化操作,生成不同空间信息的特征表示,然后经过共享网络特征感知机(MPL)生成注意力特征图,最后通过逐像素相加操作融合两个输出特征生成最终的通道注意力特征图。空间注意力机制通过构建不同位置目标特征图的相互关系对通道注意力进行补充,将通道注意力模块输出的特征图进行concat操作之后作为本模块的输入特征图。

2.2.2 自适应上采样训练策略

实验的评估指标包括精确率(precision)、召回率(recall)、精确率与召回率的加权调和平均F1、重叠度IOU共四个评价指标。计算式分别为:

语义分割分支是首先通过提取目标检测阶段输出的目标区域特征,将其进行相应的卷积和上采样操作统一尺寸并且进行concat,其次添加不同的注意力机制,通道注意力机制(channel attention,CA)和空间注意力机制(spatial attention, SA)突出重要的特征信息表达,优化语义分割精度以实现绝缘子区域的语义分割。

(2)求出每一个样本与中心点之间的距离,距离公式如下所示:

孩子的年龄和心智有其年龄段的特点,不要过分强调一致性,不要和别的孩子硬性地比较,而要鼓励自己的孩子成为他希望成为的那种人——“虽然和高考状元不同,但妈妈认为你同样是可爱的”,这是在打好孩子的心理基础。

其中,b(xi)、b(yi)为第i个样本的横、纵坐标,c(xi)、c(yi)为第i个中心点的横、纵坐标。

(3)求出每个样本到中心点距离的均值,如式所示:

(4)迭代更新聚类中心,直到聚类中心不再发生变化。

3 网络损失函数设计及其优化

损失函数的选择是卷积神经网络训练过程中的重要的一部分,通过梯度下降算法将损失函数减小,使网络逐渐接近最优参数,从而使神经网络达到较好的性能,本文定义整个网络的训练损失函数lys由五个部分组成,如式(4):

微电子技术是建立在以集成电路为核心,在超大规模集成电路的背景下发展起来的新技术。该技术由电路设计、工艺设计、材料制备、器件物理等技术构成,其特点是体积小、重量轻、可靠性高、工作速度快。微电子技术对电子信息产生巨大影响。

目标检测阶段:目前主流网络模型在进行网络训练时普遍会选择Adam优化器,但仿真实验表明在迭代0-20次时,基于Adam优化器的检测过程,损失曲线有一个较大的波动,这个波动在数次调参后并没有改善;本文在后期的实验中选择了SGD优化器,损失曲线的波动基本消失。可见SGD算法可有效解决损失波动问题。

其中TP表示绝缘子预测正确的个数,FP表示背景被预测为绝缘子的个数,FN表示绝缘子被预测为背景的个数。A和B分别表示预测结果和标注真值。

则 Focal Loss 的反向传播过程如式(7):

3 拒绝蛋白质含量低于3%的饮料和辅食。 蛋白质在3%~15%是宝宝辅食适宜的蛋白质含量,低于3%的食品饮料,基本与白水无异,对摄入量本就有限的宝宝了来说,实属鸡肋,不选也罢。

4 实验结果与分析

4.1 实验描述

该文采集了1000张无人机拍摄的绝缘子图像作为实验数据集(本文图略),可以看出每幅图像的背景都很复杂,明暗程度各异。该文通过交叉验证的方式选择200张航拍图像作为独立的测试集,为增加样本多样性,减少过拟合等问题,通过翻转、旋转、变形等操作对剩下的800张航拍图像进行数据增强,增强后样本数量达到1600张,其中验证集占比20%(320张),训练集占比60%(1280张)。受限于计算资源,本文针对所有实验图像进行尺寸统一,将所有图像统一为640×480。并采用Labelling工具对其中的绝缘子串进行方框标记和mask掩膜标记。

通常语义分割需要对前景和背景同时进行分割,本文分割任务只需对绝缘子部分进行语义分割,但是训练时每一个批次经过数据增强后目标的尺寸分布呈非线性,如果将所有的批次统一到同一尺寸,会让一切极端目标损失像素的细节信息。为了解决这一问题,提出了一种自适应上采样训练策略,通过输入批次的数据标签获取到其中所有目标的尺寸,然后对所有目标的尺寸进行聚类后取得最佳mask尺寸,根据边框坐标标签将目标提取出来后统一到最佳mask尺寸。具体聚类过程如下:

这无疑是近半个世纪以来最为出色的一辆跑车,一辆让驾驶者感受不到自己存在的跑车。与其他测试车相比,这辆保时捷911的车厢布局正合我意,还拥有宽敞的头部空间,一切都堪称完美。

式中:L1为focal loss值;α,γ均为超参,本文取α=0.25;γ=2;pτ为sigmoid函数,定义如式(6):

本文实验均在Linux 系统、CPUs i7 8500 GPU 1070,速度为0.5秒/图片,程序基于pyTorch框架。

4.2 损失函数优化实验

式中:lwy、lc和lclass是计算中心点损失、置信度损失和类别损失的交叉熵函数;lwh是计算方框尺寸损失的均方差函数;lseg是语义分割网络损失函数。在语义分割领域中最常用的损失函数是交叉熵函数,但是本文在后期的实验中发现以交叉熵函数作为损失函数的损失曲线波动较大,且精度上升不明显,故本文利用focal loss函数替换语义分割常用的交叉熵损失函数,从而获得各像素点预测值和真实值的差。Focal loss函数如式(5):

下面先对2度点的色集合进行讨论,由染色算法,点u03,u05,…,u0(2n+1),um4,um6,…,um(2n),um1以及点us(2n+2), us1(s=2,4,…,m-2)的色集合均可相互区分且它们的色集合均由不超过k的颜色组成可设其中1

SGD (stochastic gradientdescent,随机梯度下降)算法训练网络,每次迭代时使用Δθτ+1进行参数更新,如式(12):

其中,Δθτ+1为本次迭代参数更新量;Δθτ为前一次参数更新量;γ为动量,通常设置γ=0.9;为网络梯度,l为学习率,设置初始学习率lbase=0.05,学习率进行多项式衰减,即

基于生成对抗网络的HDR图像风格迁移技术······························谢志峰 叶冠桦 闫淑萁 何绍荣 丁友东 (4,524)

其中, p=0.9;i为当前迭代次数,imax为最大迭代次数。

语义分割阶段:本文对比了分别利用交叉熵函数和focalloss函数作为损失函数时算法的准确率和损失。以交叉熵为损失函数获得的准确率和损失随迭代次数的变化曲线,存在精度上升曲线波动性较大且精度上升不明显的问题;而本文以Focal loss损失函数进行改进,改进后曲线波动性小,且在同样迭代100次的前提下,使用focal loss作为损失函数的检测准确率要高于交叉熵损失函数。

5 结论

文中提出的基于深度学习的结合检测与分割的yolov5-segnet检测算法可快速且高效的进行航拍绝缘子轮廓提取,在2000个样本的数据集上进行训练,在200个测试集上进行测试,测试准确率达到97.32%,测试时间为0.07s每张图片;文中在语义分割模块添加的通道注意力机制和空间注意力机制可有效提高语义分割模块的特征表达能力;文中使用focalloss损失函数替代交叉熵函数,SGD算法替代Adam算法进行损失优化,可在提高0.074算法准确率的同时有效解决损失曲线和准确率曲线波动的问题。实验分析表明,本文算法可有效且快速的进行绝缘子轮廓提取,为绝缘子缺陷检测排除干扰。

猜你喜欢

绝缘子注意力语义
让注意力“飞”回来
语言与语义
“扬眼”APP:让注意力“变现”
“上”与“下”语义的不对称性及其认知阐释
1000kV耐张绝缘子串单片绝缘子的带电更换技术
认知范畴模糊与语义模糊
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法
输电线路污闪及绝缘子选用探讨
语义分析与汉俄副名组合