APP下载

基于YOLOv5 的电力巡检鸟窝智能检测系统

2022-07-08游康谢冠鸿黄荣蓝如师

电子技术与软件工程 2022年8期
关键词:鸟窝数据库模块

游康 谢冠鸿 黄荣 蓝如师*

(1.桂林电子科技大学 广西壮族自治区桂林市 541000)(2.广西景航无人机有限公司 广西壮族自治区南宁市 530000)

1 引言

随着电力系统规模的日益发展,目前对电力线路的安全运行和供电可靠性的要求越来越高。电力线路一旦出现故障,则有可能影响到成片区域的供电安全,严重的甚至造成不可估量的损失,所以必须要对电力线路进行维护。电力线路上存在鸟窝,可能会导致电力线路出现故障,这是电力巡检中常见的问题之一。传统的巡检办法是通过人工肉眼识别图片中电力线路上是否存在鸟窝,这种方法不仅耗费时间,而且当数据量过大时,容易出错。

利用智能自动化检测鸟窝是目前电力巡检的主流发展趋势。鸟窝的智能检测历经了几个发展阶段,之前采用巡线机器人技术、直升飞机巡线技术、远程图像视频监控技术检测鸟窝,但因它们耗费人力物力较大,如今电力企业中大多都是利用无人机拍摄图片以后,再使用检测软件去智能识别鸟窝图片。智能鸟窝检测方法现在已经属于目标检测领域当中的问题,如何进行目标图像检测,这就需要用到目标检测算法进行解决了。比较流行的算法可以分为两类,一类是基于Region Proposal 的R-CNN 系算法(R-CNN,Fast R-CNN,Faster R-CNN),它们是two-stage 的,需要先使用启发式方法(selective search)或者CNN 网络(RPN)产生Region Proposal,然后再在Region Proposal 上做分类与回归。而另一类是Yolo,SSD 这类one-stage 算法,其仅仅使用一个CNN 网络直接预测不同目标的类别与位置。第一类方法是准确度高一些,但是速度慢,但是第二类算法是速度快,但是准确性要低一些。

本系统使用的是Yolo 算法,其全称是You Only Look Once: Unified, Real-Time Object Detection,其中,You Only Look Once 说的是只需要一次CNN 运算,Unified 指的是这是一个统一的框架,提供end-to-end 的预测,而Real-Time体现是Yolo 算法速度快。Yolo 系列算法中Yolov5 算法是目前实时性、检测精度都较高的检测算法。借助深度学习技术的发展和YOLOv5 算法的改进,我们训练出检测鸟窝的神经网络,基于这个网络我们设计出了一款能够自动检测鸟窝的软件。

2 检测模型

YOLOv5 模型是 Ultralytics 公司于 2020 年 6 月 9 日公开发布的。YOLOv5 模型是基于 YOLOv3 模型基础上改进而来的,有 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个模型。YOLOv5 模型由骨干网络、颈部和头部组成。YOLOv5 模型由骨干网络、颈部和头部组成。

2.1 模型网络介绍

YOLOv5 模型的骨干网络主要由 Focus、BottleneckCSP和 SSP 网络构成,其中主要包括 Focus、Conv 卷积块、BottleneckCSP 和 SSP 等 模 块。YOLOv5 的 颈 部 采 用BottleneckCSP1 和 BottleneckCSP2 ,能在保证准确的同时,提高网络速度。YOLOv5m 的头部采用多尺度特征图用于检测,用大图像检测小目标,小图像检测大目标。

YOLOv5 模型网络由三个主要组件组成:Backbone:在不同图像细粒度上聚合并形成图像特征的卷积神经网络。Neck:一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。output:对图像特征进行预测,生成边界框和并预测类别。对于YOLOV5,无论是V5s,V5m,V5l 还是V5x 其Backbone,Neck 和output 一致。唯一的区别在与模型的深度和宽度设置。

2.2 YOLOv5结构解析

与Yolov3 对比,Yolov5 主要进行了下面4 方面的改进。第一,输入端:使用Mosaic 数据增强,自适应锚框计算,自适应图片缩放。第二,在图片进入主干前使用Focus模块对图片进行切片操作,并且使用C3 模块从输入图像中提取丰富的信息特征;第三,在Neck 层中采用新版的FPN结构和PAN 结构;第四,损失函数,使用CIOU Loss 作为bounding box 回归的损失。

(1)Yolov5 在输入中使用的Mosaic 是参考CutMix 数据的一种增强方法。与使用两张图片拼接的CutMix 方法相比,Mosaic 数据增强使用4 张图片进行拼接,并使用随机缩放、随机裁剪随机排列增强拼接效果。在整个数据集中,小、中、大目标的比例并不均衡。尤其是在Coco 数据集中小物体比例比较大的情况下,Moscaic 数据增强方法有几个优点:1、丰富数据集:随机使用4 张图片,随机缩放,然后随机分布拼接,极大丰富了检测数据集,尤其是随机缩放,增加了很多小物体,使得网络更加健壮。2.可以减少GPU:可能有人会说普通的数据增强也可以用随机缩放来做,当只存在一GPU 时,使用Mosaic 增强训练可以直接计算4 张图片的数据,使得Mini-batch 大小并不需要很大,一个GPU 便可以达到满意的效果。Yolov5 在训练时能自适应的计算不同训练集中的最佳锚框值,并且但Yolov5 代码中对自适应图片缩放进行了改进,大大提升了Yolov5 推理速度。

(2)在Yolov5 中使用Focus 模块,在图像进入主干之前对图像进行切片。具体操作是对一张图片中每隔一个像素取一个值,类似相邻下采样,这样得到四张图片,四张图片互补,长度相近,但不丢失任何信息。这样W 和H 信息集中在通道空间,输入通道扩大了4 倍,也就是拼接后的图像相比原来的RGB 三通道模式变成了12 通道。最后对得到的新图像进行卷积操作,最终得到没有信息丢失的二倍采样特征图。这和yolov2 中的ReOrg+Conv 操作一样,是亚像素卷积的逆向操作版本。简单来说就是把数据分成4 个部分,每个数据相当于2次下采样,然后对channel的维度进行拼接,最后进行卷积操作,这样可以执行下采样操作并且做到最小化信息丢失。

Yolov5 使用CSPDarknet 作为Backbone 从输入图像中提取丰富的信息特征。 CSPNet 的全称是Cross Stage Partial Networks,是一个跨阶段的局部网络。CSPNet 解决了其他大规模卷积神经网络框架Backbone 中网络优化的梯度信息重复问题,将梯度变化自始至终融入到特征图中,从而减少了模型的参数量和FLOPS 值,不仅保证了推理的速度和准确性,减小了模型的大小。 CSPNet 其实是基于Densnet 的思想,拷贝base 层的feature map,通过dense block 将拷贝送到下一个stage,从而分离base 层的feature map。这样可以有效缓解梯度消失问题(通过非常深的网络很难逆转丢失的信号),支持特征传播,鼓励网络重用特征,从而减少网络参数的数量。

在全新的Yolov5 结构中,Focus 模块以后会调用一个CONV 模块。Conv 实现了将输入特征经过卷积层,激活函数,归一化层,得到输出层这几个操作。在新版本的yolov5中, BottleneckCSP(bottleneck layer)模块被改造为C3 模块。其结构功能与CSP架构基本相同,只是校正单元的选择不同,并且它包括3 个标准卷积层和多个Bottleneck 模块。

(3)在目标检测领域,为了更好的提取融合特征,通常在Backbone 层和输出层,会插入一些层,这部分称为Neck, 这相当于目标检测网络的颈部,是关键的一部分。Yolov5 现在的Neck 和Yolov4 中一样,都采用FPN+PAN 的结构,在Yolov5 的Neck 结构中,采用借鉴CSPnet 设计的CSP2 结构,加强网络特征融合的能力。

(4)YOLOv5 损 失 函 数 包 括:classification loss、localization loss、confidence loss 这三类。yolov1 到yolov5 的组成部分都是这三类,但具体损失的计算方法在不断改进。YOLOv5 使用二元交叉熵损失函数计算类别概率和目标置信度得分的损失;使用CIOU Loss 作为bounding box 回归的损失。

3 系统设计

基于YOLOv5 的电力巡检鸟窝智能检测系统主要包括系统的登录注册模块设计、检测功能模块设计、系统数据库设计。系统的功能设计图如图1 所示。

图1: 系统的功能设计图

3.1 登录注册功能模块

登录注册模块提供登录、注册功能,用户进行注册以后,输入账号密码可以进行登录操作。图2 为登录注册流程图。

图2: 登录注册流程图

3.2 鸟窝检测功能模块设计

鸟窝检测功能模块包括待检测图片选择功能、开始检测功能、实时检测功能、结果图片输出功能。用户首先点击选择图片功能按钮,选择待检测图片文件夹,然后点击输出图片功能按钮,选择输出图片路径。最后点击开始检测功能按钮,可以实现批量图片检测。系统对图片进行扫描检测,检测进度可以在进度条上实时显示出来,如果检测到图片上有鸟窝,则将其相应路径记录下来存储到数据库中,测完以后自动将有鸟窝的图片放到指定文件夹中。鸟窝检测功能模块流程图如图3 所示。

图3: 鸟窝检测功能模块流程图

3.3 系统数据库设计

数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除操作和数据库的用户管理、权限管理等。

为了使数据可存储化,方便对历史数据进行操作,本系统使用Mysql 技术进行数据的增删查改操作。本系统设计了鸟窝信息表、管理员信息表来表示数据。数据库无需存储待检测的图片的信息,只需要存储输出结果,即若经过软件检测以后注明存在有鸟窝的图片,此时会将该图片的相关信息存储到数据库中,极大减轻了数据库存储负担。

4 系统实现

4.1 系统总体实现

系统总体采用python 编程实现,界面采用PyQt 技术实现可视化编程,数据存储则采用MySQL 技术,结合Pytorch框架、YOLOv5 算法实现图片检测,通过代码完成对后端接口的调用以及数据的提交。系统架构图如图4 所示。

图4: 系统总体架构

4.2 登录注册功能

打开软件后,如果首次登录,并且没有账号密码,可以先进行注册操作。注册成功以后,回到登录界面输入正确的用户名和密码即可快速登录。登录完成以后自动跳转到鸟窝检测系统的主界面。

4.3 待检测图片管理功能

待检测图片管理功能提供了选择图片的功能按钮。点击相应功能,选择待检测的图片文件夹,点击确定,会将指定路径显示在按钮旁边。利用选定文件夹的功能可以一次性指定多张待检测的图片,极大简化了繁琐的流程,加快检测速度。

4.4 输出图片管理功能.

输出图片管理功能提供了对检测结果图片的管理存储操作。用户点击输出图片文件夹按钮,选择目的文件夹,会将指定路径显示在按钮旁边。进行检测以后系统会自动将有鸟窝的图片复制到指定文件夹中,并且将相应图片中的鸟窝位置标注出来,然后将相应数据上传至数据库。

4.5 检测管理模块

检测管理模块包括了开始检测和检测进度管理功能。当用户选定好待检测图片文件夹路径以及检测结果图片存放的文件路径后,点击开始检测按钮即可开始检测。在检测过程中,我们还可以根据系统提供的检测进度条实现对检测进度的实时监控管理。

5 实验

实 验 环 境:Pytorch1.8、cuda10.2、python3.6、linux 操作系统、显卡:NVIDIA Tesla P100 16G。

数据集共计1420 张,其中1000 余张用于模型训练,200 余张用于模型测试,剩余用于模型验证。最终检测结果显示模型的精确识别率达96.5%,查全率达97.2%。

6 测试

通过对“基于yolov5 的电力巡检鸟窝智能检测系统”的各个功能进行测试,我们得到了如表1 所示的测试结果。

表1: 测试结果

使用软件对图片进行智能检测鸟窝,可以准确的将图片中鸟窝所在位置标注出来。如果系统在图片中检测到鸟窝,会将图片中的鸟窝用紫色矩形框框起来,矩形框左上角会显示该处是鸟窝的概率。系统对图5 进行检测,检测效果如图6 所示,图6 紫框处是鸟窝的概率为0.84,符合实验预期效果。

图5: 待检测图片

图6: 检测后有鸟窝存在的图片

7 结论

本系统实现了高精度、高效率的电力巡检鸟窝检测,经测试,系统功能都能正常运行。随着电力系统规模的发展,目前对电力系统的维护需求越来越高,相比于传统的电力巡检方式,本系统更加智能并且效率更高,可以说有着光明的发展前景。

本系统完成了智能鸟窝图片检测、鸟窝图片存储、鸟窝图片信息提交数据库等一套完整的开发,以后将根据更具体的需求不断添加以及改进新的功能,努力使系统更加贴合实际使用。

猜你喜欢

鸟窝数据库模块
挂在墙壁上的鸟窝
28通道收发处理模块设计
“选修3—3”模块的复习备考
鸟窝
《鸟窝》
鸟窝
集成水空中冷器的进气模块