基于改进SSD的架空线路关键部件实时检测

2021-03-23 09:39吴庭栋赵国伟张兴忠
计算机工程与设计 2021年3期
关键词:关键部件残差卷积

吴庭栋,杨 罡,赵国伟,张兴忠+

(1.太原理工大学 软件学院,山西 晋中 030600;2.国网山西省电力公司电力科学研究院,山西 太原 030001;3.国网山西省电力公司大同供电公司,山西 大同 037008)

0 引 言

目前,主流的目标检测技术主要分为两类。第一类是以R-CNN[1]、SPPNet[2]、Fast R-CNN[3]、Faster R-CNN[4]和Mask R-CNN[5]等为代表的专注于精度的算法,精度高但实时性差。第二类是以YOLO[6]、SSD[7]、YOLO-v2[8]和YOLOv3[9]等为代表的专注于精度与实时性权衡的算法。

目标检测技术在工业领域中的一个应用就是与无人机航拍巡检结合。王万国等[10]将Faster R-CNN算法用于无人机电力线巡检图像部件检测,证明了基于深度学习的识别方法实现电力小部件的识别是可行的;陈庆等[11]提出了一种针对绝缘子自爆故障的识别算法,取代人工分析,降低了由人为经验判断可能造成的误差;汤踊等[12]选取Faster-RCNN研究了不同网络模型在输电线路中对不同部件的识别准确率和识别时间;张骥等[13]提出了一种通过卷积神经网络训练获取深度模型的检测算法,以有效地识别出输电线路外破隐患。上述研究均将重点集中于检测精度上,并未对精度与速度的权衡进行研究,同时也并未考虑设备算力的大小,都是在算力强大的服务器端进行。在算力受限的嵌入式开发平台上进行实时检测的研究还处于起步阶段。

本文自建架空线路关键部件数据集,并提出了一种多尺度并行融合检测算法MSPF-DN,可以将此模型移植到NVIDIA Jetson AGX Xavier上,由航拍巡检无人机携带,来辅助巡检人员完成关键部件实时检测,有效提升航拍巡检的效率和智能化水平。

1 SSD算法

SSD算法是一种端到端的目标检测算法,可以从特征提取网络中直接回归出物体类别和位置。将VGG16[14]的最后两个全连接层替换为全卷积层并在其后增加4个额外的卷积层共同组成SSD算法的特征提取网络。SSD根据网络输入图像大小分为SSD300和SSD512版本,后者精度更高,但速度相较前者略低。以SSD300为例,其算法结构如图1所示。

图1 SSD算法结构

SSD算法分为两个阶段,网络训练阶段和预测阶段。在训练阶段,将候选框和真值标签进行匹配,以此来划分正负样本,并根据损失函数的值对得到的负样本进行排序,最终使正负样本的比例保持在1∶3。在预测阶段,首先得到候选框的偏移及相应目标类别的置信度,然后通过非极大值抑制算法去除多余的候选框,最后输出物体位置信息和相应类别的置信度。

SSD同时对目标类别的位置偏移量和置性度进行回归,故其损失函数由位置损失和分类损失两部分共同组成,如式(1)所示

(1)

式中:N是匹配的候选框数量,x为候选框与真实框的匹配结果;c为类别置信度;α为权重项;l为预测边框;g为真实边框。

SSD算法在检测精度和速度上都是表现非常优秀的卷积神经网络,因此,本文以SSD算法为基础,对其进行相应改进。

2 数据集

本文所使用的数据集为自建架空线路关键部件数据集。从国家电网提供的10 000张实际巡检图像中挑选出了包含绝缘子、悬垂线夹、防震锤3类关键部件的3822张图像,其中3类关键部件如图2所示。

图2 3类关键部件

3822张巡检图像的平均分辨率为4615×2936,其中每张图像包含3类部件数不等。首先,对这些图像中的部件类别进行编号表示,绝缘子类别以0000_1111表示,悬垂线夹类别以0102_1111表示,防震锤类别以0103_1111表示,然后按照VOC数据集的标注方式进行精准的标注工作,如图3所示。总计标注16 763个关键部件,其中绝缘子6262个,悬垂线夹4754个,防震锤5747个,每类部件都相对均匀。以此图片和标注作为本文的数据集。按 7∶2∶1 的比例将数据集划分为训练集、验证集和测试集。

图3 数据标注

与VOC数据集或COCO数据集进行比较,从部件占比来看,绝缘子较大,而悬垂线夹和防震锤较小,通过实际测量,绝缘子的宽高比范围在0.05-17之间,悬垂线夹的宽高比范围在0.57-3.44之间,防震锤的宽高比范围在0.63-7.41之间。其中,各部件之间的宽高比跨度较大,在一定程度上会影响最终的识别效果。从检测难易度来看,图像中非部件干扰较多,铁塔与部件相互遮挡、同类部件之间重叠、地面物体杂乱多样等,为关键部件的检测带来不小挑战。本文算法是针对此类架空线路关键部件数据集提出的,具有很强实用性及参考价值。

3 本文算法MSPF-DN

MSPF-DN算法在SSD算法的基础上进行改进,算法结构如图4所示。算法引入了全新激活函数h-swish[15],本算法为加快检测的速度,设计了一个轻量级的特征提取网络EPNets,由于本文数据集的特点,EPNets只提取到特征图大小为10的尺度,去掉了SSD原始算法中较小的尺度;为进一步提升检测效果,设计了一个轻量级并行结构PF-Module,并在EPNets的多个预测特征图上使用,然后将输出的多尺度特征图送入检测和分类器,最后通过非极大值抑制得到最终的检测结果。由于架空线路关键部件数据集所限,EPNets只在较大的特征图上应用PF-Module结构。

图4 MSPF-DN算法结构

3.1 h-swish激活函数

激活函数swish定义请参见文献[16],文中用swish激活函数替代神经网络中常用的ReLU激活函数,以此来提升网络的精度,如式(2)所示

(2)

虽然swish激活函数相较于ReLU提升了检测精度,但它所带来的精度提升与增加的计算量并不成正比,严重影响了速度。

为解决这种不均衡性,将swish激活函数修改为了h-swish激活函数,如式(3)

(3)

激活函数swish与h-swish的曲线如图5所示,其中,纵坐标o(x)代表相对应的激活函数值。从图5中可看出,h-swish和swish函数曲线基本吻合。但由式(3)可知,h-swish 比swish更易求解以及求梯度。因此可用h-swish替代swish,既提升了精度,又不过多增加计算负担而影响速度。

图5 swish与h-swish函数

3.2 特征提取网络EPNets

由于轻量化的要求,本文特征提取网络的设计所采用的基本卷积操作为深度可分离卷积,卷积模块结构为3×3、5×5的倒残差块和线性瓶颈与h-swish激活函数的组合。

3.2.1 深度可分离卷积

深度可分离卷积[17]是轻量级网络的主要结构,相较于标准卷积其大幅度缩减了网络参数,使卷积操作变得更快。假设输入特征图大小为DF×DF×M,卷积核大小为Dk×Dk×M×N,那么标准卷积T和深度可分离卷积K的参数量如式(4)、式(5)所示

T=Dk×Dk×M×N×DF×DF

(4)

K=Dk×Dk×M×DF×DF+M×N×DF×DF

(5)

其中,DF是输入特征图的长宽,M是输入特征图的通道数,Dk是卷积核的长宽,N是卷积核的个数。

由此,深度可分离卷积与标准卷积的参数量比例可由式(6)表示

(6)

由式(6)可知,深度可分离卷积与标准卷积相比,参数量大大减少。

标准卷积同时考虑了通道和区域,使用与输入数据通道相同的若干个卷积核,对其进行卷积运算。深度可分离卷积则将通道与区域分离,先只考虑区域,然后再考虑通道,首先对输入数据的每个通道使用单通道的卷积核进行卷积,然后将卷积后的结果作为输入数据,使用多个与其通道相同的1×1卷积核对输入数据进行组合,生成新的结果。深度可分离卷积如图6所示。

图6 深度可分离卷积

3.2.2 倒残差块和线性瓶颈

倒残差块[18]对ResNet[19]中的残差块进行了改进。ResNet中残差块的过程如图7所示,首先输入数据经过一个1×1卷积0.25倍降维操作,然后使用3×3的标准卷积对上一步的结果进行卷积操作,最后使用1×1卷积0.25倍升维,一降一升,保持了前后维度的统一。倒残差块的过程如图8所示,首先输入数据经过一个1×1卷积6倍升维操作,然后使用3×3的深度可分离卷积对上一步的结果进行卷积操作,相比使用标准卷积,此操作使参数量大大降低,最后使用1×1卷积6倍降维。

图7 标准残差块

图8 倒残差块

在特征提取中,虽然使用深度可分离卷积可减少参数量,但它的使用也会损失一部分特征,这就降低了网络对特征的提取能力。因此,通过在网络中使用先升维后降维的倒残差块,先将输入数据变换到高维度后再使用深度可分离卷积,以此来减少特征损失,进而提高网络的表达能力。

激活函数通常是非线性的,在高维空间使用可以有效增加非线性,而在低维空间使用则会破坏非线性。图8中,在深度可分离卷积后使用了1×1卷积用于降维,如果继续使用非线性激活函数会破坏非线性,因此,线性瓶颈[18]要求必须将其后的非线性激活函数改为线性激活函数,以此来保持非线性。

3.2.3 网络结构

本文网络EPNets参考MobilenetV2网络进行改进。网络在倒残差块的使用上采用以下组合:3×3的倒残差块与ReLU激活函数组合、5×5的倒残差块与h-swish激活函数组合。分别如图9和图10所示。网络中的标准卷积之后一律使用h-swish激活函数。

图9 3×3的倒残差块与ReLU激活函数组合

图10 5×5的倒残差块与h-swish激活函数组合

EPNets的网络结构见表1,其中Conv2d是标准卷积,Inverted Residual表示倒残差块(均采用6倍扩张系数),HS表示h-swish激活函数,RE表示ReLU激活函数。

表1 EPNets网络结构

3.3 轻量级并行结构PF-Module

特征提取网络EPNets对特征进行了初步的提取,为进一步充分提取特征,本文引入了轻量级并行结构PF-Mo-dule,如图11所示。PF-Module首先将输入特征图分别输入到两条支路中,其中一条支路采用3×3的深度可分离卷积与ReLU激活函数的组合;另一条路采用5×5的深度可分离卷积和h-swish激活函数的组合。将得到的结果进行相加融合,然后使用3×3的标准卷积与h-swish激活函数的组合,进行冗余信息过滤,形成一个新的特征图。其中,输入与输出的特征图大小相同。通过并行提取特征,增加了特征的多样性和鲁棒性,提高了网络的精度。

假设PF-Module结构输入特征图大小为N×N×C,则两条支路融合后的特征图大小N×N×2C,输出特征图大小为N×N×128。

图11 PF-Module结构

本文共选取5个特征图用于检测,分别是:在EPNets网络中layer7、layer14和layer18层的输出特征图上应用PF-Module结构后的3个输出特征图;layer18层的输出特征图在PF-Module结构中两条支路的输出特征图。

4 实验与分析

4.1 实验准备

实验操作系统为ubuntu 16.04 LTS,深度学习框架为TensorFlow,接口语言为Python,CPU为Intel®CoreTM i9-9900K 3.60 GHz×16,内存为16 G,GPU为GeForce RTX 2080 Ti。移动端嵌入式平台为NVIDIA®Jetson AGX XavierTM,内存为16 G。

本文所使用的数据集在第2节已有介绍,由于自建数据集的数据量不足,为得到更好的实验结果,需要在大型数据集COCO上进行预训练,COCO数据集包含91类目标,328 000图像和2 500 000个label。

4.2 评价标准

目标检测算法的评价标准有很多,本文选取检测精度、检测速度和模型大小来对MSPF-DN算法进行评估。AP(average precision)用于评估算法在各个类别上的精度,mAP(mean average precision)用于评估算法在所有类别的精度,是各类别AP的一个均值,FPS(frames per second)用于评估算法检测速度,代表每秒检测帧数,MB(MByte)用于评估模型的内存大小。通过权衡这几项性能指标,得到适用于嵌入式平台运行的轻量级模型。

4.3 算法训练

MSPF-DN算法的训练过程分为两阶段,第一阶段是使用COCO数据集预训练的过程,第二阶段是使用自建数据集进行适应性训练的过程。为解决样本失衡的问题,两阶段的训练过程中,使用的损失函数是Focal Loss[20]置性度损失和Smooth L1[4]位置损失相结合的总体目标损失函数,通过改变样本分布,有效提高了网络输入样本的质量。

在具体的训练方式上,第一阶段批处理大小为64,使用0.9的动量优化器,其中学习率的衰减方式为余弦衰减[21],采用warmup[22]预热学习率的方式,前2k次迭代使用0.013 333的小学习率进行初始化学习,接下来的迭代在0.04的大学习率初始化下进行衰减学习,总共迭代25k次,这样的方式有助于模型更快收敛,且效果更佳。

在第二阶段,加载第一阶段得到的预训练模型,训练过程与第一阶段相同,但迭代次数低于预训练的迭代次数,共迭代10k。其中前2k次迭代使用0.013 333的初始化学习率,剩余的8k次迭代使用0.04的初始化学习率。

4.4 实验结果与分析

(1)本节实验是在自建工业数据集上对MSPF-DN算法进行训练和评估,在主流SSD算法下,使用不同的基础网络进行实验,输入图像尺寸为300×300,以此作为评判基准。

实验结果见表2,表中“速度”是在移动端嵌入式平台测出的实时速度。对比基准实验,本文MSPF-DN算法可以有效提升检测精度,与基准实验对比,分别提高了6.31%和4.4%;该算法也加快了检测速度,比基准网络中最快的高2 FPS;同时该算法有效减少了网络模型的参数,与基准网络对比,分别减少7.6 MB和4.1 MB。

(2)本节实验通过不同尺度的网络输入对MSPF-DN算法进行训练,并对比了不同尺度下的AP、mAP、FPS和模型大小。

实验结果见表3,不同尺度的网络输入不会改变模型大小,但随着尺度的增加,输入图像中各个目标的尺寸会相应增大,使网络计算复杂度相应的增加,推理过程耗费的资源增多,因此,增大输入尺度虽然可以有效提高网络检测精度,但会带来检测速度下降,在实际的应用中还需要根据需求来进行权衡。

图12~图14分别展示出了不同尺度输入下分类损失、位置损失及学习率的变化曲线。

MSPF-DN640的检测精度是最优秀的,这里为了更精准的对比,在图15中列出了MSPF-DN300与MobileNetv2_SSD在相同图像上的检测结果。图中第一行是MSPF-DN300的检测结果,第二行是MobileNetv2_SSD的检测结果。观察发现,MSPF-DN300在复杂背景下和遮挡下的检测性能比MobileNetv2_SSD更优秀。

表2 不同基础网络和结构的实验结果

表3 不同输入尺度的MSPF-DN实验结果

图12 MSPF-DN300的损失及学习率变化曲线

图13 MSPF-DN512的损失及学习率变化曲线

图14 MSPF-DN640的损失及学习率变化曲线

图15 MSPF-DN300与MobileNetv2_SSD检测效果

5 结束语

本文针对航拍智能巡检场景,提出了一种多尺度并行融合实时检测算法MSPF-DN,该算法以SSD算法为基本框架,使用不同倒残差块与不同激活函数组合的结构,设计了更高效的特征提取网络EPNets。同时为进一步提高网络的精度,设计了轻量级并行结构PF-Module,并应用于特征提取网络EPNets的多个特征图上。最后,将PF-Module 结构输出的特征图共同用于检测。本算法针对架空线路关键部件,在嵌入式NVIDIA Jetson AGX Xavier设备上实现了实时且高精度的检测。下一步将增加关键部件类型及数据量,进一步改进网络,来提高该算法对大多数关键部件的检测能力。

猜你喜欢
关键部件残差卷积
基于双向GRU与残差拟合的车辆跟驰建模
基于FMECA的注射泵关键部件风险优先数评估
基于3D-Winograd的快速卷积算法设计及FPGA实现
多载荷共同作用对大型风力机关键部件受力影响分析
方坯连铸热送设备关键部件设计
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
全电机驱动摩擦焊机关键部件的结构设计和仿真