适用于移动端的输电线路鸟类检测算法研究
2020-04-02崔文超李渊博王敏鉴
崔文超,李渊博,王敏鉴
(华北电力大学控制与计算机工程学院,北京 102206)
0 引 言
随着社会现代化的不断发展,输电线路作为电力系统的重要组成部分,其长度和传输容量也在不断增加,此外由于输电线路分布广,且长期处于露天环境下运行,极易受外部环境的影响,因此对输电线路的安全要求也越来越高[1-4]。与此同时,随着人类逐渐关注并致力于环境及生态保护,生态环境得到了良好的改善,鸟类数量也得以大幅增加,然而频繁的鸟类活动却给电网运行造成了严重影响[5-7],因此对输电线路的鸟害采取必要措施,对电力系统的安全运行具有重要意义。
针对输电线路的鸟害问题,传统的驱鸟方式[8-11]如安装防鸟装置、设置人工鸟巢等逐渐显露出耗时耗力、无法做到实时驱鸟、驱鸟效果不好等弊端。随着深度学习的火热发展,基于深度学习的目标检测算法步入了研究人员的视野。文献[12]采用Faster R-CNN对设备故障进行检测,通过构建区域建议网络(Region Proposal Network, RPN)提取候选框,取代时间开销大的选择性搜索方法,提升了设备检测的速度;文献[13]使用YOLO模型检测电力杆塔的状态,在整合目标判定和识别的同时,也极大地提高了检测速度。
然而深度学习算法需运行在性能好的服务器上,同时由于输电线路的鸟害问题数据量庞大,考虑到图像传输到中央服务器过程中因网络问题带来的不可靠性和时延性,若直接采用上述的目标检测算法对输电线路的鸟类进行检测,则无法达到实时驱鸟的效果,因此输电线路的鸟类检测任务应采用轻量级神经网络模型在移动端来实现。文献[14]采用轻量级卷积神经网络SqueezeNet来进行机器人抓取检测研究,其核心模块Fire module可大大减少权值参数,在保持精度的同时提升了计算速度;文献[15]对视频人脸进行检测所使用的ShuffleNet,其利用group convolution和channel shuffle这2个操作来设计卷积神经网络模型,以减少模型使用的参数数量,从而提高计算速度;文献[16]利用深度可分离卷积模块构建的轻量化模型MobileNet构建了移动端的案件识别模型,极大地提升了案件分类与处理的速度。
Redmon等人[17]提出的YOLO v3目标检测模型不仅在准确度和速度上有良好的表现,同时能够在不同尺度上进行检测,加强了对小物体的识别能力,因此本文采用YOLO v3模型对输电线路的鸟类进行检测,为了使其可应用于移动端以实现鸟类检测的实时性,将YOLO v3模型的基础网络darknet-53替换成对小目标检测表现更加优异的MobileNet[18],来提高鸟类检测的准确性。经实验验证,采用这种方式改进的YOLO v3模型对输电线路鸟类进行检测,能够在精度损失较小的情况下极大地提升检测速度,从而能够实现实时驱鸟,具有良好的应用前景。
1 移动端输电线路鸟类检测模型
在输电线路鸟类检测场景中,如果将输电线路杆塔上监控设备采集到的现场图像通过通信线路传输到服务器进行鸟类检测,服务器再将检测结果反馈给杆塔上的驱鸟器,不仅给通信线路带来额外的负载压力,还会因为时延导致驱鸟器不能及时启停,从而并不能有效和实时地驱鸟。因此本文在YOLO v3目标检测算法的基础上进行轻量化处理,提出一种适用于移动端的鸟类检测算法,并将目标检测算法以嵌入式的方式部署在驱鸟器中并配合相应控制模块,从而实现输电线路鸟类的实时检测。
1.1 YOLO算法介绍
YOLO是You Only Look Once的缩写,该算法之所以一经提出就备受关注是因为它改变了传统目标检测算法2步走的方式,直接将图片作为输入来预测类别信息和位置信息,极大地提升了算法速率,几乎可以做到实时检测。目前YOLO系列算法已经有3个版本的迭代,在不断地优化和吸收其他算法优点后具备了较好的性能,在工程应用中有着很好的表现。
在YOLO v1[19]中,因为输出层为全连接层,所以训练好的模型只支持检测与训练集分辨率相同的图像。同时由于模型依赖于训练时的标注数据,因此对特殊规格的对象检测效果并不好且泛化能力弱。同时,对于小目标和多目标聚集的情况也很不友好,当一个格子包含多个目标时只能检测出其中一个,还会因为小的IOU误差同样对网络优化过程造成很大的影响,从而严重地影响目标定位的准确性。
在YOLO v2[20]中,作者对模型进行了一系列的分析和改进。引入BN(Batch Normalization)层,用归一化的手段加快了训练时模型的收敛速度和稳定性;借鉴了Faster R-CNN[21]的思想,引入anchor,去除了全连接层和最后的池化层,使得最后的卷积层有更高分辨率的特征,提升了召回率;采用K-means聚类的方式[22]找到合适的边界框(bounding box),不仅可以减少训练时间,还提升了模型准确率;采用多尺度的训练方法,使模型可以适应不同尺寸的输入图像;提出了联合训练算法,综合了不同的数据集;最后作者综合ImageNet数据集和COCO数据集训练YOLO9000,使之可以实时识别超过9000种物品。
在前2个版本的基础上,YOLO v3采用带有残差模块的特征提取网络darknet-53来加深网络;用Logistic[23]分类器代替SoftMax;以多尺度融合的方式进行预测,解决之前版本对小目标和多目标聚集检测准确率低的问题,同时在保持原有优势的基础上进一步提升了预测精度。综上所述,YOLO v3模型在准确度和速度上都有较好的效果,但是该模型无法运行在资源有限的移动端设备或嵌入式设备上,因此需要对该模型进行轻量化处理来满足移动端对目标检测任务的需求。
1.2 适用于移动端的改进YOLO v3
在YOLO v3算法中,主要的运算量来自于特征提取网络darknet-53,因此用轻量级网络MobileNet替换YOLO v3中的darknet-53,可以极大地消减特征提取网络中卷积部分的运算量和参数数量,从而缩减整个模型使之可以运行在嵌入式设备中。
深度可分离卷积(depthwise separable convolution)是MobileNet网络中的核心,将传统的卷积方式分成2步,先逐通道卷积后再用1×1的点卷积连接各通道信息,其卷积方式如图1所示。
图1 卷积方式示意图
假设输入和输出的长宽一致,用N个卷积核进行卷积,在传统的卷积方式中计算量为式(1)所示,采用深度可分离卷积时需要进行2步卷积,第一步计算量为式(2)所示,第二步计算量为式(3)所示,因为N>0且卷积核大小一般为3×3,因此由式(4)可知,采用深度可分离卷积的方式进行卷积可以有效地减少模型计算量。
H×W×F×F×M×N
(1)
H×W×F×F×1×M
(2)
H×W×1×1×M×N
(3)
(4)
1.3 基于改进的YOLO v3鸟类检测模型
基于以上分析,本文提出一种适用于移动端的输电线路鸟类检测模型,模型分为特征提取网络和多尺度检测网络,结构如图2所示,虚线以上部分为特征提取网络,以下为多尺度检测网络。对轻量级网络MobileNet进行相应调整,使其满足多尺度联结的条件,对输入图像进行初步的特征提取,为后续检测任务做准备,同时采用深度可分离卷积可以有效地提升检测速度。从采集到的数据集和现场实际情况看,图像中的鸟多为小目标且容易成群出现,因此采用多尺度融合检测网络针对不同尺度目标进行进一步特征提取,将深层语义信息和浅层特征进行融合,然后对3个不同尺度的目标分别进行预测,可以有效地提升小目标和多目标聚集检测效果。
图2 模型结构图
在输电线路鸟类检测场景中,输电线路上的监控设备采集到图像信息并作为检测模型的输入,然后对检测模型输出的结果进行统计分析,按照鸟类数目、目标距离和目标聚集程度3个指标作为判定驱鸟器是否启动的条件,同时针对不同地区情况设置合理的阈值。采用上述方式,将算法集成在驱鸟器嵌入式主板中,不仅避免了由于网络时延带来的影响,还最大程度地实现了实时驱鸟,从而更有效地减少鸟类活动对输电线路的破坏,保证输电线路安全稳定的运行。
2 实验与结果
2.1 实验环境与数据集
实验中涉及的硬件环境如表1所示,在Ubuntu18.04操作系统的基础上搭建软件环境有:CUDA、cuDNN、Python、Keras、OpenCV、LabelImg等。
表1 硬件配置表
硬件名称型号数目主板Intel Z3901CPUIntel酷睿i7-9700k1GPUGEFORCE GTX1080Ti1内存海盗船DDR4 8 GB2固态硬盘三星 250 GB1
实验中所使用的图像数据主要来自于江苏地区输电线路杆塔上的监控设备,在考虑季节、天气、时间和位置等变量的前提下,合理地提取图像数据。在实际提取过程中,发现含有鸟类的图像在上述变量中分布并不均匀,且正样本较少,所以加入部分网络中与场景类似的图像数据,共12000幅图像组成数据集,用LabelImg进行标注并按照VOC格式制作输电线路鸟类检测数据集,训练集和测试集以3:1的比例划分。
2.2 模型训练
基于以上所涉及的模型、数据集和实验环境进行模型训练,在训练之前应先确定预选框大小,用K-means算法对测试集进行聚类,可以分析出该场景下目标普遍尺寸,从而在后续的训练中起指导作用,使得模型有着更好的训练效果。由聚类结果得到平均重叠率87.53%的9组预选框:(18×15),(21×23),(31×24),(42×44),(55×61),(53×47),(132×113),(121×125),(143×157)。
图3 LOSS值变化图
在整个训练过程中,除了预选框外其余主要训练参数为:动量(momentum)为0.9,批次大小(batch size)为32,初始学习率为0.01,权重衰减(Decay)为0.0005。一共训练了120000代(Steps),LOSS值变化如图3所示,图中以每10代取一个LOSS值,同时在8000代和10000代时将学习率降为原来的10%,最终LOSS值稳定在2左右,模型达到稳定状态,于是接下来进行测试和验证。
2.3 实验结果及模型对比
在目标检测任务中,对模型的好坏应该从位置和分类2个角度进行综合评价,因此本文采用平均精度值(mAP)来评价移动端输电线路鸟类检测模型。采用交叉验证法进行模型评估,随机地按3:1划分数据集,并进行5次模型训练和验证,结果如表2所示,5次实验的平均精度值为83.57%。实验表明,模型具有较好的有效行和稳定性。
表2 交叉验证法结果
实验编号12345平均精度值/%84.1283.2684.3982.9683.11
因为在输电线路鸟类检测任务中,对实时性要求较高,所以还需要用速度指标来评价模型优劣,本文采用每秒帧率(fps)这一指标来评价模型。为了更好地评价模型性能,本文将改进后的模型与现有较为流行的目标检测算法进行纵向对比,结果如表3所示。
表3 算法性能对比表
算法名称平均精度值/%速度/fpsSSD[24]84.2341YOLO v385.4143Faster R-CNN90.125本文模型83.5761
从表3中可知,相对于目前较快的目标检测算法SSD、YOLO v3来说,改进后的模型提升了20左右的fps,给检测速度带来一定提升。同时,降低的平均精度也在合理范围内,依然满足大多数实时目标检测的要求,同时采用轻量级特征提取网络可减少计算量使模型适用于移动端,而其他模型因本身较大,所需计算性能较高,所以并不能运行在资源受限的嵌入式设备中。
图4 移动端检测效果图
为了进一步验证模型性能,将该模型部署在输电线路图像识别驱鸟器中进行测试,该驱鸟器采用聚合物锂离子电池供电,且支持太阳能充电;摄像头支持最大分辨率1920×1080,图像识别有效范围50 m;支持RS485有线通信方式;CPU为联发科MT6750CT 8核心ARM A53 1.5 GHz;内存为4 GB LPDDR3;图形处理单元为ARM Mali T860 MP2,支持Android 7.0操作系统,检测效果如图4所示,测试中精度并未发生较大变化,但由于运算资源有限,在没有GPU的情况下检测速率有所下降,但也可以满足输电线路鸟类检测任务的实时性要求。
3 结束语
本文提出一种适用于移动端的YOLO v3目标检测算法。采用轻量级网络MobileNet取代YOLO v3的特征提取网络DarkNet-53,缩减模型使之可以运行在移动端。在对比较流行的目标检测算法后,得出以下结论,虽然平均精度值并没有达到最好,但在保持可用性的前提下,改进后的模型速度有了显著提升,同时模型对运算硬件要求低,适用于移动端的实时目标检测。综上可知本文提出的目标检测算法可以很好地运用在输电线路鸟类检测任务中,避免了通信时延带来的检测误差,具有较好的准确性和实时性,结合驱鸟器可以有效地进行实时驱鸟,减少鸟类对输电线路的损害,从而保证输电线路的稳定运行。