0
点赞
收藏
分享

微信扫一扫

YOLO V5

Ichjns 2022-04-21 阅读 101
算法

摘要:输电线路安全是电网安全稳定运行的前提,但是鸟类对输电线路造成的危害直接威胁到输电线路的安全运行。针对传统驱鸟器启停策略的不足,提出了一种基于YOLO V5算法的输电线路鸟类检测模型。图像数据由输电线路监测装置获取,残差模块用于提取图像的深层特征,采用多尺度目标检测策略保证鸟类检测效果。实验结果表明,该模型能够实时准确地检测出输电线路周围的鸟类数量,在雨、雾天具有较强的鲁棒性,能够保证输电线路的安全稳定运行。

关键字:YOLO V5 鸟类检测 实时检测

Abstract: The safety of transmission lines is the prerequisite for the safe and stable operation of the power grid, but the harm caused by birds to transmission lines directly threatens the safe operation of transmission lines. In order to solve the disadvantages of the traditional bird repellent start-stop strategy, a bird detection model of transmission line based on YOLO V5 algorithm is proposed. The image data is obtained through the transmission line monitoring device, the deep characteristics of the image are extracted from the residual module, and a multi-scale target detection strategy is adopted to ensure the detection effect of birds. Experimental results show that the number of birds around the transmission line can be accurately detected in real time, and the model trembles on rainy and foggy days. In this condition, it has strong robustness, which can ensure the safe and stable operation of transmission lines.

Keywords: YOLO V5 bird detection, real-time detectio

目录

一、 选题背景 

二、 YOLO算法 

2.1confidence 置信度 

2.2预测工作流程 

2.3代价函数 

三、 YOLO V5 

1、 简介 

2、 缺点 

3、 与其他检测相比 

四、 目标检测 

4.1统一的实时的目标检测 

4.2目标检测的性能 

4.3目标检测数据集 

4.4目前国内主流的目标检测技术: 

五、 实验结果与分析 

1.总体图表 

2.鸟类检测示意图 

六、 结语 

七、 致谢 

八、 附录 

一、选题背景

在当前社会现代化发展的背景下,社会对于店里的供应,传输的安全性以及可靠性的要求提出越来越高,电力系统的可靠性和安全性发挥着重要的作用,同时,随着环境保护理念的加强,以及有关鸟类保护的相关法律法规的建立并完善,鸟类的数量以及活动场所已扩展到前所未有的规模,为输电线路的安全运行造成了危害。

目前,针对输电线路,鸟危害电网公司往往采用传统的驱鸟方式,比如在塔轴上安装鸟刺和绝缘板防止鸟粪在绝缘板下端安装风车,采用上述物理方法并不能有效解决施工难度大、成本高、多风条件下鸟害大等问题。目前最有效的方法是安装超声波驱鸟器,但驱鸟器工作时间长,不仅浪费资源,还可能对周围环境造成影响。规律的、断断续续的工作会让鸟类养成习惯,从而无法击退鸟类。

本文将采集到的现场环境的监测数据进行相应的数据处理,制成输电线路鸟类监测数据集基于YOLO V5模型为主体,检测出枢纽电路附近的鸟类数目,但有一定数目的鸟类活动在输电线路周围其实启动,驱鸟器载驱鸟的前提下,最大程度的节约能耗与环境保护。

二、YOLO算法

“YOLO”是对象检测算法的名称。YOLO将物体检测重新定义为一个回归问题。它将单个卷积神经网络(CNN)应用于整个图像,将图像划分为网格,并预测每个网格的类概率和包围盒。

从个人学习来看:优秀的计算机视觉工程师,目标检测的学习避免不了,而目标检测的核心就是YOLO。YOLO系列也一直在发展,对于它的学习迫在眉睫。从职业发展来看:YOLO一直是应用很广的主流算法之一,也是月薪30K以上的工程师标配技能,更是技术和求职风向标。

YOLO相比传统检测算法,有以下几个优点:

YOLO 非常快。

YOLO 根据整张图片做出预测。不像sliding window 和 region proposal-based 技术,YOLO 训练和测试时将整张图片作为输入,这使得它可以对语境信息进行处理。Fast R-CNN 将背景误判为object,因为它不能感知图片的语境。YOLO对于背景误判的数量比Fast R-CNN少一半。YOLO 学习 object 的泛化的表示。YOLO 的性能比DPM、R_CNN高许多。因为 YOLO 的泛化性能很好,所以在应用于新的数据集时,性能不会有太大的下降。YOLO 仍然落后于当前的 state of art 检测算法。虽然它能快速的识别图片中的 object,但是它很难精确定位一些 object,尤其是一些小物体。YOLO 的训练和测试代码是开源的。并且作者开源了很多预训练好的模型。

YOLO v1在2016年被提出。该算法的核心思想就是利用整张图作为网络的输入,将目标检测看作一个回归问题来解决,直接在输出层回归预选框的位置和类别。

YOLO神经网络结构如图2.1所示。首先输入一个480*480的图片,通过一定数量的卷积层和池化层,最后再经过两个全连接层,生成7*7*30的输出。

具体分析:YOLO将一幅480*480的原图分割成了7*7=49个网格,每个网格要预测两个预选框(bounding box)的坐标(x,y,w,h),其中x和y表示box中心点与该格子边界的相对值,w和h表示预测框的宽度和高度相对于整幅图像的宽度和高度的比例。所以,这四个值的大小都会被限制在0-1之间。同时,每个网格还会预测框内是否包含物体的置信度(confidence),每个预选框都有一个置信度,以及物体属于每一类类别的概率(YOLO的训练数据为VOC2012,是一个20分类的数据集),也就意味着每个网格预测20个类别的概率。所以我们可以得出,4*2+2+20=30,也即是一个网格有30个值,对应一个30维的向量。

2.1confidence 置信度

置信度的计算包括两个方面,一个是目标在这个包围盒中存在的可能性,另一个是这个包围盒的位置精度。前者称为Pr(object),表示是否有人工标记的物体落入网格。如果帧中没有对象,Pr(object)的值为0,如果有对象,Pr(object)=1。如何来判断边界框位置的准确程度,我们使用IOU(交并比)来预测,代表着所选预测框与真实框相交的面积和预测的框与真实框合并的面积的比例,该值越大则候选框越接近真实的位置。置信度就定义为以上这两项相乘。

2.2预测工作流程

1.将图片放到网络中进行处理。

2.分割成49个网格后,每一个格子可以得到两个bounding boxes。

3.每个网格预测的类别信息乘以包围盒预测的置信度信息,并且获得每个候选盒预测特定对象的概率和重叠位置的概率PrIOU。

4. 对于每个类别,对PrIOU进行排序,移除小于阈值的PrIOU,然后进行非最大值抑制。这里所说的非最大抑制是指选择置信度最高的候选框,如果某个候选框与得分最高的候选框的重叠面积IOU大于某个阈值,则将其删除。

2.3代价函数

YOLO以均方误差作为损失函数来优化模型参数,即网络输出的多维向量与真实图像对应的多维向量的均方误差。损失函数包括三部分:位置误差、置信度误差和分类误差。

(这部分还不是很理解,借鉴了网上的部分内容)

1.坐标预测

在压痕检测算法的实际应用中,一般都有这样的经验:对于不同大小的包围盒,相对于大盒尺寸的预测,小盒尺寸的偏差肯定更不能容忍。所以在损耗上同等对待不同尺寸的盒子是不合理的。为了解决这个问题,作者使用了一个比较棘手的方法,就是通过求W和h的平方根进行回归,从后续效果来看,这是非常有效的,但是并没有完全解决问题。

2.置信度预测

由于大部分缩进网格不含目标,导致大部分盒子的置信度=0,所以在设计置信度误差时,对含目标和无目标的盒子一视同仁是不合理的,否则模型会不稳定。

3.分类预测

缩进即每个box属于什么类别,需要注意一个网格只预测一次类别,即默认每个网格中的所有bounding boxes都是同一类。

需要注意的是:不同任务的重要程度不同,应给予不同的loss weight(权重)。每个网格两个预测框坐标比较重要,给这些损失前面赋予更大的损失权重,一般为5。而对于没有object的预选框的confidence loss,赋予小的loss weight,一般为0.5。在有object的预选框的confidence loss和类别的loss,权重正常取1。

三、YOLO V5

1、简介

YOLOv5(You Only Look Once)是由 UitralyticsLLC公司发布的一种单阶段目标检测算法,YOLOv5 相比YOLOv4 而言,在检测平均精度降低不多的基础上,具有均值权重文件更小,训练时间和推理速度更短的特点。YOLOv5 的网络结构分为输入端、BackboneNeck、Head 四个部分

输入端主要包括三个部分:镶嵌数据增强、图像大小处理和自适应锚盒计算。马赛克数据增强将四张图片组合在一起,丰富图片背景;图像尺寸处理自适应地在不同长度和宽度的原始图像上添加最少的黑边,并统一缩放到标准尺寸;在初始锚帧的基础上,自适应锚盒计算将输出的预测帧与真实帧进行比较,计算差值,然后反向更新,反复迭代参数,获得最合适的锚帧值。

Backbone 主要包含了 BottleneckCSP和 Focus 模块。BottleneckCSP 模块在增强整个卷积神经网络学习性能的同时大幅减少了计算量;Focus 模块对图片进行切片操作,将输入通道扩充为原来的 4 倍,并经过一次卷积得到下采样特征图,在实现下采样的同时减少了计算量并提升了速度,具体操作如图3.1 所示。

Neck 中采用了 FPN 与 PAN 结合的结构,将常规的 FPN 层与自底向上的特征金字塔进行结合,将所提取的语义特征与位置特征进行融合,同时将主干层与检测层进行特征融合,使模型获取更加丰富的特征信息。

Head输出一个向量,该向量具有目标对象的类别概率、对象分数和对象的包围盒的位置。检测网络由三个检测层组成,不同大小的特征图用于检测不同大小的目标物体。每个检测层输出相应的向量,最终生成目标在原始图像中的预测边界框和类别并标记。

YOLO将探测的定位和识别过程合二为一。YOLO基于整个画面的特征来预测每个bbox。它可以同时预测所有类的bbox。这意味着YOLO的预测是基于整个画面和画面中的所有目标。同时,单步检测使得YOLO检测速度非常快。

YOLO将输入图像分成 S × S S \times S S×S 个网格,如果对象的中心落在网格单元内,则网络单元负责检测该对象。每一个网格单元预测 B B B 个 bbox 以及这些 bbox 的概率。每一个 bbox 包含5个预测: x , y , w , h x, y, w, h x,y,w,h 和 confidence。 ( x , y ) (x,y) (x,y) 为 bbox 的中心网格单元。 w w w 和 h h h 表示相对于整个网络的宽度和高度。最后,confidence 表示预测的 box 和 ground truth box 的 IoU。

每个网络单元还预测 C C C 条件概率。 Pr ( Class i ∣ Object ) \text{Pr}(\text{Class}_{i}|\text{Object}) Pr(Classi​∣Object)。计算网格单元包含一个 object 的情况下各类的条件概率。无论boxes B B B 的数量有多少,每一个网格单元只进行一次分类概率计算。

在 VOC 数据集上,每张图片产生 98 个bbox和相应的类别概率。与 classifier-based方法不同,YOLO 测试时,同时预测位置和类别。网格式的设计保证了预测的 bbox 的多样性。通常object位于哪个网格单元是很清楚的,对于每一个 object 只能预测一个 bbox。但是,一些大的object 或 靠近多个单元的边缘的object 能够用多个单元来很好的定位。NMS 被用来去除掉多余的预测。虽然 NMS 不是核心,但是和 R-CNN 或 DPM 类似,NMS 能够将 mAP 提高 2-3%。

2、缺点

YOLO 对 bbox 预测施加了很强的空间限制:每一个网格单元只能预测两个 box,每个网格单元只能有一个类别。这个限制导致 YOLO 能够检测的临近物体的数量很有限。YOLO 对于成群的小目标的检测有点困难,比如:成群的鸟。因为YOLO直接从图像中学习怎么去预测 bbox,所以它很难泛化到新的或不常见的宽高比的 object。因为 YOLO 架构中使用了多个池化层,这导致 YOLO 最后的bbox 是基于相对粗糙的特征产生的。

最后,YOLO使用的损失函数给予大bbox和小bbox相同的权重。大bbox上有小误差是良性的,小bbox上的偏差对IoU影响很大。YOLO的主要错误是定位错误。

3、与其他检测相比

目标检测算法一般首先从图像中提取一系列鲁棒的特征,然后使用分类器[ 36,21,13,10] 或 定位器 [1,32] 在特征空间识别目标。这些分类器和定位器对 sliding window 或 图像的某一块区域[35,15,39] 进行判别。我们将 YOLO 和大量的顶尖的检测算法做了对比,并强调了相同和不同。

Deformable parts models 对比

Deformable parts model 又称 DPM。【非常值得研读】DPM 使用 sliding window 方法来检测目标 。DPM算法采用改进的HOG特征、SVM分类器和滑动窗口检测思想,对目标的多视图问题采用多组件策略,对目标本身的变形问题采用基于图形结构的组件模型策略。此外,样本所属的模型类别、组件模型的位置等。作为潜在变量,采用多示例学习自动确定。

R-CNN 对比

R-CNN 和它的变种使用 region proposals 来寻找图像中的对象。Selective Search [35] 产生很多潜在的 bbox(就是可能有目标的位置),然后一个卷积网络提取特征,一个 SVM 根据卷积提取的特征对 region proposal 进行分类(scores the boxes),一个线性模型调整 bbox,NMS 消除重复的检测。该检测方法的每一个阶段都需要独立地精调,这导致模型很复杂,也很慢,测试时每张图片耗时40秒(注意这里使用的Titan X 显卡,不是渣渣 CPU 时间)。

YOLO 与 R-CNN 有一些相似之处。基于卷积特征,每一个网格单元给出潜在的 bbox 并 对 scores 这些 bbox。但是,YOLO 限制了每一个网格单元上给出的潜在的bbox 的数量,有助于减轻物体的重复检测。YOLO 预测的bbox也更少,Selective Search 每张图片生成2000个proposal,而YOLO一张图片只有98个proposal。最后,YOLO是一个单步检测系统。

Other Fast Detectors

Fast Fast R-CNN的主要重点是通过共享计算和使用神经网络提出区域来加速R-CNN检测框架。他们把R-CNN的检测速度加快了不少,但还是无法实现实时检测。许多研究致力于加速DPM。他们使用cascade和GPU来加快HOG的计算速度。然而,DPM实时检测只实现了30帧。

Deep MultiBox 对比

Szegedy 等人 [8] 使用卷积神经网络去预测 RoI,而不再采用 Selective Search。MultiBox 也能够进行单类别目标检测,只需要用一个 single class 预测代替confidence 预测。但是,MultiBox 不能够进行通用目标检测。如果MultiBox要进行通用目标检测,仍需要进一步的 image patch 分类。YOLO 和 MultiBox 都使用了卷积网络去预测 bbox,但是 YOLO 是一个完整的检测系统。

OverFeat 对比

Sermanet 等人 [32] 训练一个卷积神经网络去进行定位,并且采用定位器去进行检测。OverFeat 高效地进行 sliding window 检测,但是它仍然是一个多阶段系统。OverFeat 优化了定位过程,而不是检测性能。类似于 DPM,定位器只观察局部的信息,因此需要牛掰的后处理程序去处理相干涉的检测。

MultiGrasp 对比

YOLO 的设计和 Redmon 等人设计的抓取(grasp)检测算法相似。YOLO 基于网格预测 bbox 的想法来自于 MultiGrasp。但是,抓取检测是一个比目标检测简单的多的任务。MultiGrasp只需要去对包含一个目标的图像预测一个抓取的区域。它不需要去估计尺寸、位置、边界、类别,只需要找出适合抓取的一个区域。YOLO 既预测bbox,又预测类别。

四、目标检测

⽬标检测(Object Detection)的任务是找出图像中所有感兴趣的⽬标(物体),确定它们的类别和位置,是计算机视觉领域的核⼼问题之⼀。由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的⼲扰,⽬标检测⼀直是计算机视觉领域最具有挑战性的问题。

目标检测,也称为目标提取,是基于目标的几何和统计特征的图像分割。它集目标的分割和识别于一体,其准确性和实时性是整个系统的重要性能。在目标检测中,不仅要用算法判断图片中物品的类别,还要标记出它们在图片中的位置,并用边框或红色方块圈出物品。这就是目标检测的问题。

目标检测从2001年开始,在2012年成为分水岭,因为这一年基于深度学习的目标检测方法,逐渐使目标检测进入到快速发展的阶段,比较流行的算法可以分为两类,一类是基于Region Proposal的R-CNN系算法(RCNN、SPPNet、FasterRCNN、Pyramid NetWorks等),它们是two-stage的,需要先算法产生目标候选框,也就是目标位置,然后再对候选框做分类与回归。另一种是Yolo、SSD等一阶段算法,只用一个卷积神经网络CNN直接预测不同目标的类别和位置。第一种方法精度较高但速度较慢,第二种方法速度较快但精度较低。

4.1统一的实时的目标检测

yolo将特征图划分为SXS的格子,每个格子负责对落入其中的目标进行检测,一次性预测所有格子所含目标不的边界框、定位置信度以及所有类别概率向量。

yolo算法的基本思想

(1)预测特征图

(2)多尺度整合

(3)锚框机制(Anchor)

通过特征提取网络对输入的图像进行特征提取,得到一定大小的特征图

预测得到的输出特征图有两个维度是摄取到的特征维度。

(1)非极大值抑制(NMS--Non-Maximum Suppression)

(2)损失函数(Loss Function)

包括:分类损失、定位损失、置信度损失

总的损失函数=分类损失+定位损失+置信度损失

4.2目标检测的性能

检测精度

检测速度

Precision,Recall,F1 Score

前传耗时

IoU(交并比)

FPS(每秒帧数)

P-R curve

浮点运算量(Flops)

AP(Average Precision)

mAP(mean Average Precision)

(一)精度

1、什么是混淆矩阵

精度:Precision=TP/(TP+FP)

召回率:Recall=TP/(TP+FN)

F1 score=2*Precision*Recall/(Precision+Recall)

2、IoU(交并比)

3、AP与mAP

AP衡量的是学习出来的模型在每个类别上的好坏。

mAP衡量的是学出来的模型在所有类别上的好坏,是所有类别AP的平均值。

(二)检测速度

1、前传耗时(ms):从输入的一张图像到输出最终检测结果所消耗的时间。

2、每秒帧数(FPS):每秒钟能处理的图像数量。

3、浮点运算量(FLOPS):处理的每一张图像所需要的浮点运算数量。

4.3目标检测数据集

1、Pascal Voc

Pacvoc挑战赛于2005年至2012年发起。有两个数据集Pascal VOC 2007(9963张图片,24640条注释)和Pascal VOC2012(11530张图片,27450条注释)。这个数据集有20个分类。

2、MS COCO

源于2014年微软投稿的微软COCO数据集,与ImageNet竞赛一样,被视为计算机视觉领域最受关注、最权威的竞赛之一。COCO数据集包含20万幅图像,其中训练集图像11.5万幅,验证集图像5000幅,测试集图像2万多幅。80个类别中有超过500,000个目标标签。

COCO大赛已经成为目标识别与探测领域最权威、最重要的标杆,也是该领域唯一能够汇聚谷歌、微软、脸书、众多国内外顶尖高校和优秀企业的国际大赛。4.4目前国内主流的目标检测技术:

1、YOLOX:由中国的旷视科技研发,是目前国际上运行速度最快的一种深度学习模型。

2、YOLOV1-V5:Yolov1-yolov3由Joseph Redmon研发,yolov4-yolov5则是由yolo团队内部成员完成的。

3、Transformer:原来是做为语音识别的一个模型,现在用在图像的目标识别上面也有不俗的表现

4、ViT:当考虑预训练模型的计算成本时,ViT的性能非常好,以较低的预训练成本在大多数识别基准上达到了最先进的水平。

本文采用的是YOLO V5技术来检测鸟类的运动规律。

五、实验结果与分析

六、结语

提出了一种输电线路鸟类实时监测方法,延续了深度神经网络的YOLO V5算法。利用输电线路上的监控装置采集的图像训练模型,可以检测到输电线路附近的鸟类,从而控制驱鸟器的启停时间,节能环保,节省人力物力,达到保护输电线路,保障电网安全运行的效果。但对于姿态多变的鸟类图像存在漏检现象,需要对数据进行完善和算法优化,尽可能避免漏检,以提高输电线路鸟类检测的准确性。

七、致谢

历经两个月的沉淀也终于将这篇论文写完,对于这篇论文,首先要感谢我的导师李林锋老师对我的支持,在论文的开题、收集资料和写作的过程中,李林锋导师给予了我很大的指导和支持,对论文的不足之处一一指点。同时感谢各位专业老师的教导,开阔了我的视野,学习到了专业的知识。

我的读书时光也将结束,流去的往事如烟,留下的是万般眷恋。从头细看,首先是愧对父母的期望,走了那么远的路,仿佛从来没有让父母真正安心过,感谢爸妈一路的支持,从咿呀学语到我长大成人,都离不开你们,很多时候爸妈对我从来都不是很严格,但也会时常的告诫我,努力读书好好学习,但很可惜的是我也从来算不上寒窗苦读的好学生,感谢的是父母从来不曾失望过,只有一路的鼓励。很多时候爸妈的嘱咐是我人生的指路标,能让我沿着正确的人生方向往下走,希望年过半载的爸妈,长安康,笑常在。

几年一瞬,聚散有时

感谢我的大学舍友们,几年的朝夕相处对我友善和包容,感谢同窗的同学们,能与我一起度过的学习生活,感谢我所遇到的挚友们,在孤单寂寞时与我一起度过。很幸运承蒙你们给予的善意,陪我度过整个青春,感谢感谢。希望你们毕业之后前途似锦,去找到你们最爱的人,走你们最想走的路,做你们最想成为的那种人。

只言片语,落笔至此,思绪繁绕。再次衷心感谢过去时光中所有给我人生带来感动和启迪的师长、同学、朋友和亲人们,我也将继续前进,奔赴人生的下一站,希望自己对得起这一路的真诚,希望自己对得起所学和所遇。

最后,引用一句莎士比亚的名言共勉。

凡是过往,皆为序章

八、附录

表1.1

参考文献:

[1] Redmon, Joseph, et al. “You only look once: Unified, real-time object detection.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[2] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[J]. arXiv preprint, 2017.

[3] Redmon, Joseph, and Ali Farhadi. “Yolov3: An incremental improvement.” arXiv preprint arXiv:1804.02767 (2018).

[4] AlexeyAB. YOLOv4: Optimal Speed and Accuracy of Object Detection. arxiv:https://arxiv.org/abs/2004.

举报

相关推荐

0 条评论