深度学习及应用 课件 第九章 YOLO网络_第1页
深度学习及应用 课件 第九章 YOLO网络_第2页
深度学习及应用 课件 第九章 YOLO网络_第3页
深度学习及应用 课件 第九章 YOLO网络_第4页
深度学习及应用 课件 第九章 YOLO网络_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章:YOLO网络在计算机视觉领域,目标检测一直是一个重要且具有挑战性的任务。传统的目标检测方法通常依赖于手工设计的特征和复杂的机器学习算法,不仅计算量大,而且准确率和速度往往难以满足实际应用的需求。近年来,随着深度学习技术的飞速发展,出现了许多优秀的目标检测算法,其中YOLO(YouOnlyLookOnce)系列算法以其高效、快速和准确的特点,受到了广泛的关注和应用。本章将首先简单描述目标检测的概念,然后重点介绍YOLOv1、YOLOv5和YOLOv12的结构、原理和训练,最后介绍了这些版本在各个领域的应用。通过对YOLO的学习,使读者对目标检测的研究与应用领域有更好的了解。引言第九章YOLO网络第九章YOLO网络9.1目标检测9.2初级版本YOLOv19.3经典版本YOLOv59.4进阶版本YOLOv129.5YOLO网络的应用9.1目标检测9.1.1目标检测的概念9.1.2目标检测的思想9.1.3目标检测的算法9.1.4目标检测的框架9.1.5YOLO发展史9.1.1目标检测的概念目标检测是一种计算机视觉技术,利用神经网络识别图像或视频帧中出现的所有感兴趣目标的位置和类别。简而言之,目标检测不仅需要判断图像中存在哪些类型的目标,还要精确地标记出每个目标的具体位置,通常通过在目标周围绘制一个边界框(BoundingBox)来实现。这项技术结合了图像分类和对象定位,是自动驾驶、视频监控、医学影像分析等多种应用的基础。9.1.1目标检测的概念为了方便理解目标检测,将其与类似任务进行比较:图像分类(ImageClassification):此任务仅确定图像中是否存在某个目标。比如,如图9.1所示左边图像中有狗吗?目标检测(ObjectDetection):用于确定目标的类别并使用边界框在图像中定位该目标。比如,图9.1中间图像中狗在哪里,它是什么类型的狗?图像分割(ImageSegmentation):图像分割提供像素级的准确性,具体在第10章中详细阐述。它不仅像目标检测那样在目标周围画一个框,而且还通过将每个像素分配给特定的目标类别来定义精确的形状。比如,图9.1右边图像中,哪些像素属于狗,狗的确切形状是什么?图9.1图像分类vs.目标检测vs.图像分割9.1目标检测9.1.1目标检测的概念9.1.2目标检测的思想9.1.3目标检测的算法9.1.4目标检测的框架9.1.5YOLO发展史9.1.2目标检测的思想目标检测理论框架可解构为两个相互关联的基础任务:目标定位(ObjectLocalization)和目标识别(ObjectRecognition)。这两个任务共同构成了现代目标检测系统的理论基础。(1)

目标定位目标定位是指对图像中特定目标的空间位置进行精确标定的过程。在实现方法上,通常采用边界框表示形式,即用一个矩形区域来界定目标的空间范围。定位不仅要求框出目标,还期望这个框尽可能紧贴目标边缘,减少多余的背景信息,提高检测精度。(2)

目标识别目标识别在本质上属于多类别分类问题,其任务是将定位后的图像区域映射到预定义的语义类别空间,比如人、车、猫等。从深度学习的角度来看,这一过程需要解决特征提取和分类决策两个关键问题,特别是基于CNN的架构,通过其层次化的特征提取机制,能够自动学习从低级视觉特征到高级语义特征的映射关系,并得到各个类别的概率分布。9.1.2目标检测的思想结合上面所述两个任务,目标检测不仅告诉你图像中有哪些感兴趣的目标,还能精确指出它们在哪里。这一过程往往包括以下几个关键步骤:第一步特征提取,利用深度学习模型从图像中提取有助于识别和定位的特征;第二步候选区域生成,生成可能包含目标的候选区域,显著降低搜索空间的维度;第三步分类与回归,对候选区域进行类别预测,并微调边界框位置使其更准确地匹配目标;

第四步非极大值抑制(Non-MaximumSuppression,NMS),去除重叠的边界框,确保每个目标只被检测一次。在目标检测任务中,算法可能会预测出多个重叠或相似的边界框,这些边界框可能指向同一个目标。非极大值抑制通过筛选局部极大值,找到最优的边界框,并抑制其他冗余的边界框。9.1目标检测9.1.1目标检测的概念9.1.2目标检测的思想9.1.3目标检测的算法9.1.4目标检测的框架9.1.5YOLO发展史9.1.3目标检测的算法常规的目标检测算法分传统的目标检测算法和基于深度学习的目标检测算法,接下来进行分类讨论:(1)

传统的目标检测算法传统的目标检测框架,主要包括以下三个步骤:1.利用滑动窗口框定候选区域在传统目标检测算法中,首先会使用不同尺寸的滑动窗口在图像上滑动,以框住图像中的部分区域作为目标检测的候选区域。这就像你在寻宝游戏中,用放大镜扫过藏宝图,希望抓住可能隐藏宝藏的线索。现实中,一张图像中的目标可能因远近不同而呈现多种尺寸。为了能检测到不同大小的目标,一般采用多个尺度的滑动窗口去遍历整个图像。但这样会导致计算量巨大,因为需要对每个窗口进行特征提取和分类。这就好比穷举了藏宝图上所有可能的位置,效率并不高。9.1.3目标检测的算法2.

提取候选区域目标特征得到候选区域后,需要提取这些区域的特征。在传统目标检测算法中,常用的特征描述算子包括哈尔特征和方向梯度直方图(HistogramofOrientedGradient,

HOG)特征。前者常用于人脸检测,后者则广泛用于行人和其他目标检测。这些特征描述算子能够有效表示图像中的特定属性,比如边缘、纹理等信息,帮助算法识别目标。但这种特征提取方法有其局限性:虽然手工设计的特征描述算子在某些任务中表现不错,但它们的泛化能力有限,对于多样性变化大的数据集,性能就会下降。这就像不同类型的锁需要不同的钥匙,一种特征描述算子并不能适用于所有情况。9.1.3目标检测的算法3.

利用分类器进行识别提取了特征之后,就会用分类器对这些特征进行识别。在传统目标检测算法中,支持向量机(SVM)是一个非常流行的选择。SVM试图在多维空间中找到最优的决策边界,将不同类别的目标分开。特别地,在目标检测中,不仅要判断候选区域是背景还是某个特定的目标,还可能要识别多个目标类别。这就需要训练多个二分类器,或者使用多类SVM进行分类。这如同你不仅需要区分哪些是石头,哪些是宝石,还需要进一步鉴定宝石的种类。9.1.3目标检测的算法(2)

基于深度学习的目标检测算法基于深度学习的目标检测算法可以根据其处理流程大致分为两阶段目标检测算法和单阶段目标检测算法两大类。1.两阶段目标检测算法两阶段目标检测算法是目标检测领域的重要范式,其核心特征是将检测过程明确分为两个顺序阶段:需先进行候选框的筛选,然后判断候选框是否框中了待检测目标,并对目标的位置进行修正。这种算法的优点是准确度高,因为候选区域的生成和后续的精细处理进行分离,能够达到更高的检测精度,因此特别适合小目标和重叠目标的检测。然而,两阶段算法的计算复杂度较高,因为对每个候选框进行分类和位置修正,这使得它们的实时性较差。两阶段目标检测算法适合对精度要求较高的应用,如医疗影像分析、自动驾驶等。9.1.3目标检测的算法典型的两阶段目标检测算法包括R-CNN系列:R-CNN算法:R-CNN算法是目标检测领域的里程碑式算法。2014年,Girshick等人提出了R-CNN算法,该算法在VOC2007数据集上相比之前的检测算法,在性能有了显著的提升,是检测算法的一个重大突破。FastR-CNN算法:2015年,Girshick等人又提出了FastR-CNN算法,其本质是在R-CNN和SPP-Net的基础上进行了进一步改进。FastR-CNN通过共享卷积层的方式,提高了计算效率,同时也解决了R-CNN中候选框选择的问题。FasterR-CNN算法:2015年,Ren等人提出了FasterR-CNN算法。FasterR-CNN是第一个端到端算法,也是第一个接近实时深度学习的目标检测算法。它通过引入区域提议网络来生成候选框,进一步提高了计算效率。9.1.3目标检测的算法2.单阶段目标检测算法单阶段目标检测算法是指没有筛选候选框的过程,而是直接回归目标框的位置坐标和目标的分类概率。这种算法的优点是响应速度快,将目标检测视为一个单一的回归问题,直接在输入图像上预测边界框和类别,无须生成候选区域。同时计算复杂度低,因为检测过程不需要进行候选框的筛选和位置修正,这使得它们的实时性较好。因此,单阶段目标检测算法特别适合需要实时处理的场景,如视频监控、无人机导航等。然而,单阶段目标检测算法的准确率相对较低,因为它们没有经过两阶段的处理过程。典型的单阶段目标检测算法包括YOLO系列,这将是本章重点介绍的内容。在具体选择使用哪种算法时,需要根据实际应用的需求进行权衡。如果对准确率的要求较高,可以选择两阶段算法;如果对实时性的要求较高,可以选择一阶段算法。9.1目标检测9.1.1目标检测的概念9.1.2目标检测的思想9.1.3目标检测的算法9.1.4目标检测的框架9.1.5YOLO发展史9.1.4目标检测的框架基于深度学习的目标检测网络框架往往可以包含三部分:主干网络,颈部网络和检测头网络,如图9.2所示:图9.2目标检测框架9.1.4目标检测的框架(1)主干网络主干网络(BackboneNetwork)是目标检测网络最为核心的部分,也是目标检测网络的主体结构。大多数时候,主干网络选择的好坏,对检测性能影响是巨大的。通常,为了实现从图像中检测目标的位置和类别,先从图像中提取出一些必要的特征信息,比如HOG特征,然后利用这些特征去实现定位和分类,这一任务在深度学习中就需要主干网络来完成。深度学习的强大之处就在于其特征提取的能力,在很多任务上都超越了人工提取特征。当然,主干网络提取什么样的特征,大家是无从得知的,但从某种意义上来说,如何设计好的主干网络,更好地从图像中提取信息,是至关重要的,因为特征提取不好,自然会影响到后续的定位检测。在深度学习中,主干网络通常使用VGG、ResNet、DarkNet等性能良好的成熟网络,这是因为这些网络已经在图像分类任务中有着十分出色表现和巨大的潜力。9.1.4目标检测的框架(2)颈部网络颈部网络(NeckNetwork)的主要作用就是将主干网络输出的特征进行整合,或者说是更好地利用网络所提取的特征信息,这是因为主干网络毕竟是从图像分类任务迁移过来的,其提取特征的模式可能与之后的检测头环节不匹配。因此,在最终从这些特征中得到图像中若干目标的类别信息和位置信息之前,有必要对它们做一些处理。由于该部分在主干网络之后,检测头之前,因此被称为“颈部”。相比较主干网络多样性而言,颈部网络比较单一,其作用就是将主干网络的信息好好地整合一下,最为常见的就是FPN(FeaturePyramidNetwork)结构,会在后续章节中进行介绍。9.1.4目标检测的框架(3)检测头网络检测头网络(DetectionHeadNetwork)的作用就是通过若干卷积层进行预测和定位,有部分文献将检测头又称为解码器,这种称呼不无道理,检测头就是在由前面网络输出的特征上去进行预测,约等于是从这些信息里解耦出图像中目标的类别和位置信息,如图9.3所示,展示了基于深度学习的目标检测过程。图9.3基于深度学习的目标检测过程9.1目标检测9.1.1目标检测的概念9.1.2目标检测的思想9.1.3目标检测的算法9.1.4目标检测的框架9.1.5YOLO发展史9.1.5YOLO发展史YOLO是经典的单阶段目标检测算法,其核心思想是将目标检测任务视为一个回归问题,通过单个神经网络直接预测图像中的目标类别和边界框,实现了端到端的目标检测。在讲解YOLO的算法原理之前,先简要介绍YOLO系列的发展史。YOLO最初于2016年由华盛顿大学的博士研究生Redmon提出,其在IEEE国际计算机视觉与模式识别会议(CVPR,IEEEConferenceonComputerVisionandPatternRecognition)上发表了论文“YouOnlyLookOnce:Unified,Real-TimeObjectDetection”,获得了CVPR2016的最佳人气奖。自此,Redmon开始不断推出YOLO的新版本,YOLO也在不断地迭代中越来越强。2017年,Redmon与导师

Farhadi

合著发表了论文“YOLO9000:Better,Faster,Stronger”,这篇论文也标志着YOLOv2的诞生。该论文获得了CVPR2017最佳论文荣誉提名奖。YOLOv2能够检测9000种不同的对象,因此也被称为YOLO9000。9.1.5YOLO发展史2018年,Redmon又提出了YOLO的新版本YOLOv3,这一版本的YOLO在保持原有算法速度优势的同时,提升了模型的精度,补齐了小目标检测以及重叠遮挡目标识别的短板。2020年,Redmon出于个人对职业伦理恪守的原因终止了CV研究,但之后便出现新的YOLO维护者继续接手YOLO的进一步研发项目。Bochkovskiy等人在论文“YOLOv4:OptimalSpeedandAccuracyofObjectDetection”中提出YOLOv4,这一版本的YOLO通过整合众多SOTA技术,如

Mosaic数据增强、CSPNet等,进一步提升了YOLO的检测精度与速度。同年,由Ultralytics团队在GitHub上开源YOLOv5,由于命名的原因,YOLOv5曾引发社区争议,但目前这个名字已经确定了,这里就按照约定俗成来处理。注意,YOLOv5未发布论文,只是发布了源代码。YOLOv5采用了轻量级网络结构,实现了更快的速度和更高的精度。9.1.5YOLO发展史2022年,国内科技公司美团在论文“YOLOv6:ASingle-StageObjectDetectionFrameworkforIndustrialApplications”中提出了YOLOv6,其更专注于工业场景的实际需求,在速度和精度之间达到了较好的权衡,支持自定义部署,适合资源设定的环境,改进了损失函数设计,提升了检测效果。同年,YOLOv4团队在论文“YOLOv7:TrainableBag-of-FreebiesSetsNewState-of-The-ArtforReal-TimeObjectDetectors”中提出了YOLOv7,该版本实现了轻量化网络结构的设计,提出了动态标签分配机制,优化了目标框匹配,在速度和精度上都超过所有(此版本以前)已知的目标检测器。2023年Ultralytics公司发布在复杂场景下表现优异的YOLOv8版本,其引入新的注意力机制和数据增强策略,支持全方位的视觉AI任务,使得用户可以在各个应用和领域中利用YOLOv8的功能。9.1.5YOLO发展史2024年,中国台湾AcademiaSinica、台北科技大学等机构联合开发YOLOv9,该版本的改进是基于YOLOv7,其增强了自动化和模型自适应能力,使用AutoML技术实现模型结构和超参数的自动搜索,两者结合设计在深度模型的参数数量、计算量等方面都比YOLOv8有所减少。同年,清华大学在论文“YOLOv10:Real-TimeEnd-to-EndObjectDetection”中开源了YOLOv10,该版本针对超大规模模型进行了优化,提出非极大值抑制训练的一致双分配,实现了高效的端到端检测。随后,Ultralytics推出新一代计算机视觉模型YOLOv11,其在YOLOv8基础上进行了改进,使同等精度下参数量降低20%,在速度和准确性方面具有无与伦比的性能。另外,YOLOv11能适用于各种应用,并可轻松适应从边缘设备到云API等不同硬件平台,使其成为各种目标检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。9.1.5YOLO发展史2025年,YOLOv12问世,其是目标检测模型的最新版本,代表了目标检测领域的最新进展,相比前一代YOLOv11,它在性能和效率方面都有更大的提升,既实现了高检测精度,又具备实时推理速度,为工业应用、自动驾驶、安防等众多领域带来了革命性的提升。如图9.4所示,展示了整个YOLO系列的发展历程。图9.4YOLO系列的发展历程第九章YOLO网络9.1目标检测9.2初级版本YOLOv19.3经典版本YOLOv59.4进阶版本YOLOv129.5YOLO网络的应用9.2初级版本YOLOv19.2.1YOLOv1的检测原理9.2.2YOLOv1的整体架构9.2.3YOLOv1的损失函数9.2.4YOLOv1的特点9.2初级版本YOLOv1YOLOv1是目标检测领域的里程碑式模型,其核心思想是将目标检测任务转化为单一的回归问题,通过一次前向传播即可预测图像中所有目标的位置和类别,实现速度与精度的平衡。简单来说,只看一次就知道图像中目标的位置和类别。9.2.1YOLOv1的检测原理

图9.5目标框位置属性9.2.1YOLOv1的检测原理

9.2.1YOLOv1的检测原理

图9.6预测目标框与网格的关系9.2.1YOLOv1的检测原理

图9.7交并比(IoU)的计算9.2.1YOLOv1的检测原理

图9.8

YOLOv1网络的输出表示9.2初级版本YOLOv19.2.1YOLOv1的检测原理9.2.2YOLOv1的整体架构9.2.3YOLOv1的损失函数9.2.4YOLOv1的特点9.2.2YOLOv1的整体架构9.2.1节给出了YOLOv1的基本检测原理,接下来了解下YOLOv1的网络架构。YOLOv1借鉴了GoogLeNet结构,主要使用24个卷积层和2个全连接层,如图9.9所示,包括:图9.9YOLOv1网络的整体架构9.2.2YOLOv1的整体架构

9.2初级版本YOLOv19.2.1YOLOv1的检测原理9.2.2YOLOv1的整体架构9.2.3YOLOv1的损失函数9.2.4YOLOv1的特点9.2.3YOLOv1的损失函数由前面YOLOv1的检测原理和网络架构可知,其最后输出的检测结果为向量形式,其中30个值分别包括:2个预测目标框的位置,有无包含某一目标的置信度,以及网格中包含20个目标类别的概率,那么YOLOv1的损失就包括三部分:位置损失,置信度损失和分类损失。注意损失即计算网络输出值(或预测值)与真实值差异的程度,其形式如图9.10所示。图9.10YOLOv1网络的损失表示9.2.3YOLOv1的损失函数在YOLOv1中,三个损失函数都使用了均方误差,计算公式如下所示:

9.2.3YOLOv1的损失函数

9.2.3YOLOv1的损失函数

9.2.3YOLOv1的损失函数

9.2.3YOLOv1的损失函数图9.11显示了YOLOv1中三个损失函数的组成关系。图9.11YOLOv1网络三个损失函数的组成关系9.2初级版本YOLOv19.2.1YOLOv1的检测原理9.2.2YOLOv1的整体架构9.2.3YOLOv1的损失函数9.2.4YOLOv1的特点9.2.4YOLOv1的特点根据前面介绍的YOLOv1检测原理、网络架构以及损失函数,可以看到YOLOv1存在如下优点:1.实时检测能力突出:标准版本处理速度达45FPS,极速版本可达150FPS,完全满足视频流实时检测需求。2.假阳性率低:在区分前景和背景区域方面表现较好,检测错误的情况较少,即能有效避免将背景误判为目标。3.泛化能力强:能够提取到目标通用的特征,迁移能力强,可以运用到其他新的领域。9.2.4YOLOv1的特点YOLOv1的缺点在于:1.密集小目标检测缺陷:对于小目标或者靠得特别近的目标,因每个网格仅预测2个边界框且限定单类别,出现多个目标中心重叠时,精度会下降很快。2.尺寸敏感性问题:损失函数未做尺寸加权处理,大目标与小目标的位置损失权重是一样的,导致同等比例的位置误差,大目标的损失会比小目标大。3.几何适应性不足:由于没有类似于锚的先验框,对于新出现的目标或宽高比例不常见的目标,模型的检测效果不佳。第九章YOLO网络9.1目标检测9.2初级版本YOLOv19.3经典版本YOLOv59.4进阶版本YOLOv129.5YOLO网络的应用9.3经典版本YOLOv5YOLOv5是YOLO系列经典又实用的版本之一。YOLOv5网络架构符合标准目标检测框架,分为输入端、主干网络、颈部网络和检测头网络,如图9.12所示,本节将详细介绍YOLOv5的这些核心组件。图9.12YOLOv5的网络架构9.3经典版本YOLOv59.3.1YOLOv5的输入端9.3.2YOLOv5的主干网络9.3.3YOLOv5的颈部网络9.3.4YOLOv5的检测头网络9.3.5YOLOv5的特点9.3.1YOLOv5的输入端(1)数据增强YOLOv5在输入端采用了Mosaic数据增强方法,其是将4张图像通过随机缩放、随机裁剪、随机排布的方式拼接成1张图像,使模型在更小的范围内识别目标,如图9.13所示。该方法的目的在于:一方面丰富了数据集,随机使用多张图像,增加很多小目标并增加了数据多样性;另一方面增强了网络鲁棒性,具有不同语义信息图像的混合,可以让网络检测超出常规语境的目标。简单地说,使得YOLO网络在训练过程中可以更好地学习到不同场景、不同尺度和不同位置的目标特征。图9.13数据增强表示9.3.1YOLOv5的输入端(2)自适应锚框在目标检测方法中,锚框是指在输入图像上定义的一些预先设定好的矩形框,用于检测不同尺度和宽高比的目标。在YOLO部分版本中,针对不同的数据集,都会有初始设定长宽的锚框。在训练过程中,网络在初始锚框的基础上输出预测目标框,进而和真实目标框进行比对,计算两者差距,再反向更新,迭代网络参数,因此初始锚框是比较重要的一部分。在YOLOv3、YOLOv4中,训练不同的数据集时,初始锚框的值是提前预设的。YOLOv5则使用了自适应锚框计算方法,通过学习的方式自动计算出最适合输入图像的锚框参数,并不需要手动设置,其核心思想是根据样本与锚框的匹配度即交并比,自适应地选择样本,从而有效地降低了不同样本的影响,提高了检测精度。9.3.1YOLOv5的输入端(3)自适应图片缩放

在常用的目标检测方法包括早期的YOLO版本中,不同的图像长宽都不相同,因此常用的方式是将原始图像统一缩放到一个标准尺寸,再送入检测网络中。而YOLOv5对此进行了改进,使用了自适应图像缩放。简单地说,YOLOv5中的自适应图像缩放是一种基于目标尺度的图像缩放方式,它可以自适应地缩放输入图像的尺寸,以适应不同尺度目标的检测。这种方法可以有效地解决目标检测中存在的尺度不一致问题,提高检测精度和鲁棒性。9.3经典版本YOLOv59.3.1YOLOv5的输入端9.3.2YOLOv5的主干网络9.3.3YOLOv5的颈部网络9.3.4YOLOv5的检测头网络9.3.5YOLOv5的特点9.3.2YOLOv5的主干网络YOLOv5使用CSPDarknet53作为主干网络,其具有较强的特征提取能力和计算效率。CSPDarknet53包括Darknet53网络和CSP结构,前者是YOLO系列常用的卷积神经网络模型,是一种ResNet的改进版,使用了残差单元,但不包含池化层,在实际应用中也可以用第4章提到的VGG等经典网络架构替代,另外数字53表示由53层卷积层组成。这种架构保证了特征提取的高效性,为后续的多尺度检测提供了高质量的特征。CSP结构则借鉴了CSPNet网络的设计思路,引入了跨阶段局部网络,主要用于解决主干网络信息重复问题,从而优化大型神经网络的梯度计算,以及降低模型参数。CSP结构将特征图分为两部分,一部分直接传递,另一部分通过多个卷积层处理后再合并,减少了冗余计算,提升了模型效率。9.3.2YOLOv5的主干网络

图9.14Focus模块的切片操作9.3.2YOLOv5的主干网络接下去介绍CSP结构,作为YOLOv5中的一个重要组成部分,用于构建主干网络。CSP结构的核心思想前面也已经提到,是将输入特征图分成两部分,一部分经过一个小的卷积网络(称为子网络)进行处理,另一部分则直接进行下一层的处理。然后将两部分特征图拼接起来,作为下一层的输入。这个过程类似于团队任务分配,一部分是复杂任务(也就是需要深度处理的特征)让一部分人去负责,另一部分则是简单任务(也就是需要保留原始特征)再安排一拨人负责,这样两组人独立完成工作,最终汇报任务成果也就是最后卷积层的融合特征。9.3.2YOLOv5的主干网络具体来说,CSP包括以下几个步骤:首先,将输入特征图分成两部分,第一部分在子网络中,使用一系列卷积操作将输入特征图进行压缩,然后再使用一个卷积层进行扩张,这样可以提取出相对较深的高层次特征。第二部分直接进入下一层处理,将经过子网络处理的特征图与直接进入的特征图进行拼接,最后再进行一系列卷积操作,这样可以将低层次的细节特征和高层次的抽象特征结合起来,提高特征提取的多样性。

CSP结构在YOLOv5中被广泛应用,除了骨干网络外,也使用在颈部网络,前者命名为CSP1_X而后者命名为CSP2_X,两者基本相似,内部结构略有不同,这里不展开阐述。它们的作用都是减少网络的参数和计算量,同时提高特征提取的效率,从而加快模型的训练和推理速度。9.3经典版本YOLOv59.3.1YOLOv5的输入端9.3.2YOLOv5的主干网络9.3.3YOLOv5的颈部网络9.3.4YOLOv5的检测头网络9.3.5YOLOv5的特点9.3.3YOLOv5的颈部网络YOLOv5中的颈部网络是指在骨干网络的基础上加入的中间特征提取网络,主要用于增强模型的特征表达能力,进一步提升模型的检测性能。YOLOv5采用两种不同的颈部网络结构:特征金字塔网络FPN(FeaturePyramidNetworks)和路径聚合网络PAN(PathAggregationNetwork)。FPN结构通常由多个不同大小的卷积层和池化层组成,用于生成不同尺度的特征图。不同尺度的特征图可以提供不同粒度的目标信息,同时也可以克服特征图上的位置偏差。FPN结构的核心思想是在不同尺度(每个尺度被定义为一个金字塔层级)下对目标进行检测和识别,即采用自上而下(Top-Down)和横向连接的方式,从最深层开始,逐步上采样分辨率低但语义较强的特征,并逐元素加法合并自下而上和自上而下的特征,最后将不同尺度下的特征图进行输出,避免了传统目标检测方法中输入图像经过一系列卷积操作后输出的特征图尺寸逐渐减小,导致高分辨率的特征信息丢失的问题。9.3.3YOLOv5的颈部网络为什么YOLOv5需要这样的FPN结构?这是因为一方面随着卷积层的深入,空间分辨率降低,而语义层次提高。例如在典型的ResNet中,早期层(如Conv1)具有1/2分辨率,捕捉边缘、纹理等基本特征,中间层(如Conv3)具有1/8分辨率,捕捉部件、模式等中级特征,深层(如Conv5)具有1/32分辨率,捕捉目标、场景等高级特征。另一方面,自然图像中的目标以不同的尺度出现,例如在自动驾驶中,附近的行人可能占据像素,远处的车辆可能仅占据像素,交通标志可能以任何大小出现。也就是说,如果仅用传统的卷积方式,就会陷入了两难选择:要么获得良好的细节但理解力差,要么获得良好的理解力但细节差,这就像在放大镜(能看清细节但无法识别目标)和模糊眼镜(能识别目标但看不清细节)之间做出选择。这种“看清”与“理解”之间的权衡正是FPN结构提出的原因。PAN结构则与FPN结构相反,步骤类似,区别在于使用了自下而上(Down-Top)的特征聚合方式,即从下往上通过特征融合模块逐层融合特征,从而形成更为强大的特征表示。PAN结构旨在通过多层级的特征融合,提升模型对不同尺度目标的感知能力。9.3.3YOLOv5的颈部网络FPN结构和PAN结构如图9.15所示,FPN结构自上向下传达抽象的强语义特征(强语义是经过特征提取后得到的特征信息,有利于目标的分类,但会丢失细节信息,不利于精确分割),而PAN则自下向上传达强定位特征,两两联手,从不同的主干层对不同的检测层进行参数聚合。图9.15

YOLOv5的FPN结构和PAN结构9.3经典版本YOLOv59.3.1YOLOv5的输入端9.3.2YOLOv5的主干网络9.3.3YOLOv5的颈部网络9.3.4YOLOv5的检测头网络9.3.5YOLOv5的特点9.3.4YOLOv5的检测头网络检测头网络是任务特定的组件,使用经过优化的特征进行最终预测。不同任务(检测、分割、分类)需要不同的头部架构,但它们都受益于颈部网络提供的经过良好处理的特征。YOLOv5的检测头主要用于预测,输出预测框参数,与其他YOLO系列一样,主要由以下信息组成:边界框位置、置信度和类别概率,分别用于表示目标的位置和大小,框内是否存在目标的概率和框内目标属于各个类别的概率。它们各自对应自己的损失函数,包括回归损失、置信度损失以及分类损失,其中回归损失使用CIoU(Complete-IoU)函数,置信度损失和分类损失使用二元交叉熵BCE(BinaryCrossEntropy)函数。9.3.4YOLOv5的检测头网络这个小节将重点介绍回归损失中的CIoU函数。YOLOv1中的回归损失由常规的IoU确定,其计算方式如前面图9.7所示,这里有两个问题:一是如果两个目标不重叠,则IoU值将为零,这样不会反映两个形状彼此之间的距离;且将IoU用作损失,则其梯度将为零并且无法进行优化。二是IoU无法区分两个目标之间不同的重叠方式,如图9.16所示,这里三种重叠方式不同,但是其IoU值一样。图9.16

目标的不同重叠方式9.3.4YOLOv5的检测头网络为此,在YOLOv5中,CIoU在常规IoU基础上,考虑了以下这些因素:预测目标框和真实目标框的重叠度、预测目标框和真实目标框的中心点距离、预测目标框和真实目标框各自的长宽比一致性,新的CIoU计算公式为其中:

图9.17CIoU函数中的参数9.3经典版本YOLOv59.3.1YOLOv5的输入端9.3.2YOLOv5的主干网络9.3.3YOLOv5的颈部网络9.3.4YOLOv5的检测头网络9.3.5YOLOv5的特点9.3.5YOLOv5的特点YOLOv5的优点:1.速度快:YOLOv5设计得非常高效,通常能够在实时或接近实时的速度下运行,这使得它在视频监控、自动驾驶和实时交互应用中非常有用。2.

精度高:相比于其前面的版本,YOLOv5在保持速度的同时,显著提高了检测精度,这得益于更先进的网络架构和训练技巧。3.易于使用:YOLOv5提供了易于使用的命令行工具和库,使得模型的训练、评估和部署变得简单快捷。4.可扩展性:YOLOv5支持多种模型大小和配置,从较小的模型适用于边缘设备到较大的模型以获得更高的精度。9.3.5YOLOv5的特点YOLOv5的缺点在于:1.内存和计算资源需求:虽然YOLOv5设计高效,但在某些情况下(尤其是使用大模型时),它可能需要相对较高的内存和计算资源。对于资源受限的设备,可能需要额外的优化或使用更小的模型版本。2.定制性:对于需要高度定制化需求的用户来说,YOLOv5的灵活性和定制性可能不够高。比如,对于特定领域的特定需求,可能需要从头开始构建或修改网络结构。3.小目标检测:在某些情况下,尤其是在高分辨率图像中,YOLOv5可能在小目标检测方面表现不佳,这可以通过增加更多的细节或使用更精细的分割技术来解决。综上所述,YOLOv5在实时目标检测领域提供了强大的性能和灵活性,但用户在选择使用时应考虑其特定的应用场景和资源限制。对于大多数需要高速且相对高精度的目标检测任务,YOLOv5是一个非常优秀的选择。第九章YOLO网络9.1目标检测9.2初级版本YOLOv19.3经典版本YOLOv59.4进阶版本YOLOv129.5YOLO网络的应用9.4进阶版本YOLOv129.4.1YOLOv12的架构9.4.2YOLOv12的特点9.4进阶版本YOLOv12本节将介绍YOLO系列的最新成员YOLOv12,这是YOLO系列唯一一款以注意力机制为核心的目标检测方法。YOLOv12的贡献有两个方面:一是建立了一个以注意力机制为核心、简单而高效的YOLO架构,打破了CNN模型在YOLO系列中的主导地位;二是YOLOv12在没有依赖如预训练等额外技术的情况下,达到了最先进的结果,且推理速度快、检测精度高,展示了其潜力。9.4.1YOLOv12的架构YOLOv12与早期的YOLO系列相比,在三个方面做出了改进:首先,提出了一种简单而高效的区域注意力模块,该模块通过非常简单的方式保持较大的感受野,同时降低了注意力计算的复杂度,从而提高了速度。其次,引入了残差高效层聚合网络R-ELAN(ResidualEfficientLayerAggregationNetworks),以解决注意力引入的优化挑战。第三,对传统的注意力架构进行了改进,以适应YOLO网络。接下去将对这三方面的改进分析说明。(1)区域注意力模块YOLOv12的最大优势在于实时性,然而传统注意力机制的计算成本非常高,因此在设计之初,主要考虑如何减少注意力机制的计算成本,最简单的办法就是采用线性注意力机制,将传统注意力的复杂度从二次降至线性。然而,线性注意力在减少全局依赖性、稳定性和分布敏感性方面存在问题。9.4.1YOLOv12的架构另一种有效减少复杂度的方法是局部注意力机制,如十字交叉注意力机制(如图9.18a所示)、窗注意力机制(如图9.18b所示)和轴向注意力机制(如图9.18c所示),它们将全局注意力转换为局部注意力,从而降低计算成本。然而,特征图的窗口划分可能引入额外开销或减少感受野,影响速度和精度。鉴于此,YOLOv12使用了一种简单而高效的区域注意力机制,如图9.18d所示,分辨率为的特征图被划分为个大小为或的片段。该方法消除了显式的窗口划分,仅需进行简单的重塑操作,从而提高了速度,满足YOLO网络的实时要求。图9.18局部注意力机制和区域注意力机制,其中(a)表示十字交叉注意力机制,(b)表示窗注意力机制,(c)表示轴向注意力机制,(d)表示区域注意力机制9.4.1YOLOv12的架构(2)模块残差高效层聚合网络R-ELAN是早期ELAN架构(如图9.19a所示)的演进版本,它通过引入块级残差连接和缩放技术,解决了ELAN训练过程中的不稳定性问题。R-ELAN重新设计特征聚合方法,使用一个过渡层来调整通道维度,并生成一个单一的特征图。然后,该特征图通过后续块进行处理,接着进行连接,形成一个瓶颈结构,整个构架如图9.19b所示,图中A2表示区域注意力模块。这种新的特征聚合方法使得网络在处理大规模模型时能够更加稳定和高效,还降低了计算成本和参数/内存使用量。9.4.1YOLOv12的架构(3)架构优化YOLOv12通过多项改进来进一步完善模型架构。首先,引入快速注意力(FlashAttention)来解决注意力机制的内存访问问题,减少内存读写延迟,提高了计算效率。其次,调整多层感知机(MLP)比率,以便更好地平衡注意力层和前馈层之间的计算量。此外,引入大卷积核(7×7卷积),来增强网络对位置的感知能力,同时保持计算效率。9.4进阶版本YOLOv129.4.1YOLOv12的架构9.4.2YOLOv12的特点9.4.2YOLOv12的特点

通过前面多方面的改进,YOLOv12具有以下特点:1.性能提升:YOLOv12在不依赖预训练等额外技术的情况下,实现了更快的推理速度和更高的检测精度。2.推动注意力机制在实时检测中的应用:YOLOv12通过技术创新,成功将注意力机制应用于实时目标检测系统中,挑战了CNN在YOLO网络中的主导地位,为未来的实时检测系统开辟了新的方向。3.跨任务多功能性:YOLOv12的功能超出了传统目标检测的范围,涵盖了广泛的计算机视觉任务,包括图像分割、图像分类、姿势估计和定向边界框检测,这些广泛的功能使YOLOv12成为解决各个领域无数挑战的强大解决方案。第九章YOLO网络9.1目标检测9.2初级版本YOLOv19.3经典版本YOLOv59.4进阶版本YOLOv129.5YOLO网络的应用9.5YOLO网络的应用9.5.1自动驾驶9.5.2安防监控9.5.3工业检测9.5.4医疗影像9.5.1自动驾驶

9.5.1自动驾驶在具体功能实现上,YOLO网络为自动驾驶提供了全方位的感知能力支持。如图9.20所示,展示了YOLO网络在白天环境下的检测结果,可以看到,YOLO网络能够准确地检测到远距离的小目标,即使存在部分遮挡的情况下,也能轻松获得准确的检测结果。图9.20YOLO网络在白天环境下的检测结果9.5.1自动驾驶如图9.21所示展示了在夜晚环境下的检测性能,结果表明,即使在光照条件不理想的情况下,YOLO网络仍然能够保持较高的检测精度。图9.21YOLO网络在夜晚环境下的检测结果图9.22展示了在不同天气条件下的检测结果,虽然在雨雾天气下检测性能略有下降,但总体上网络表现出了良好的鲁棒性。图9.22YOLO网络在不同天气条件下的检测结果9.5YOLO网络的应用9.5.1自动驾驶9.5.2安防监控9.5.3工业检测9.5.4医疗影像9.5.2安防监控在现代安防监控领域,实时视频分析技术正发挥着越来越重要的作用。YOLO网络凭借其出色的实时性能和较高的检测准确率,已成为智能安防系统中的核心技术。传统的监控系统主要依赖人工查看和简单的移动侦测,难以应对海量视频数据的分析需求,而基于YOLO网络的智能分析系统可以实时处理多路视频流,自动识别各类安全隐患。这种实时处理能力使YOLO网络特别适合应用于银行、机场、地铁站等对安全要求极高的场所,大大提升了安防系统的响应速度和预警能力。9.5.2安防监控比如,在人员监控方面,YOLO网络展现出卓越的性能。系统可以实时检测和追踪画面中的行人,准确识别异常行为如徘徊、聚集、快速奔跑等,如图9.23所示。通过深度学习训练,YOLO网络能够区分正常行为和潜在威胁行为,在复杂场景下的人员检测准确率可达92%以上。某大型商场部署的安防系统显示,采用YOLO网络后,可疑行为识别率提升了40%,误报率降低至5%以下。图9.23YOLO网络实时检测和追踪结果9.5.2安防监控危险物品检测是安防监控的另一重要应用场景,如图9.24所示。基于YOLO网络的检测系统可以准确识别刀具、枪支、易燃物品等危险物品,在机场安检、地铁入口等关键位置发挥重要作用。最新研究表明,经过大量数据训练的YOLO网络对常见危险物品的检测准确率达到89%,处理每帧图像仅需15ms。在实际应用中,这类系统通常会与X光机、毫米波成像设备等配合使用,形成多层次的安全防护网。比如,在某国际机场的试点项目中,YOLO网络辅助检测系统帮助安检人员发现了多起携带违禁品的事件,将人工检查效率提高了30%,同时减少了安检人员的工作压力。图9.24YOLO网络危险物品检测结果9.5YOLO网络的应用9.5.1自动驾驶9.5.2安防监控9.5.3工业检测9.5.4医疗影像9.5.3工业检测工业检测是智能制造中的关键环节,直接影响产品质量和生产效率。传统的检测方法依赖人工目检或简单的机器视觉算法,存在效率低、漏检率高、适应性差等问题。YOLO网络凭借其高速、高精度的目标检测能力,正逐渐成为工业自动化检测的核心技术。9.5.3工业检测在产品质量检测方面,YOLO网络展现出强大的适应性和准确性。以汽车制造为例,YOLO网络可用于检测车身焊接缺陷、漆面划痕、装配错误等多种质量问题,如图9.25所示。通过训练包含数万张工业缺陷图像的数据集,YOLO网络能够识别小至0.1mm的细微缺陷,检测准确率达到95%以上。图9.25YOLO网络车身缺陷检测结果9.5.3工业检测在精密制造领域,YOLO网络的高精度特性使其成为关键工具。比如,在半导体晶圆检测中,YOLO网络能够识别微米级的线路断裂、污染颗粒等缺陷,精度远超传统机器视觉算法,如图9.26所示。通过结合高分辨率工业相机和显微镜成像系统,优化后的YOLO网络在芯片封装检测中的定位误差可控制在0.01mm以内,满足高端制造的严苛要求。图9.26YOLO网络半导体晶圆检测结果9.5.3工业检测工业检测不仅关注静态缺陷,还需要对动态过程进行实时监控。YOLO网络通过与视频分析技术的结合,能够实现对高速运动目标的连续检测。比如,在图9.27所示的无人机快速飞行中,YOLO网络可以实时追踪飞行中的无人机,检测运行状况、飞行条件等问题。针对运动模糊问题,YOLO网络通过时序信息融合和动态去模糊方法,在高速场景下仍能保持85%以上的跟踪准确率。图9.27YOLO网络运动目标检测结果9.5.3工业检测随着工业4.0的推进,YOLO网络在工业检测中的应用场景不断扩展。比如,在预测性维护领域,YOLO网络可以通过分析设备运行状态的视觉数据(如传动部件的磨损、润滑情况),提前发现潜在故障,减少非计划停机时间。比如,基于YOLO网络的叶片裂纹检测系统能够提前30天预警故障风险,维护成本降低60%。在物流仓储领域,YOLO网络可用于自动分拣、货架盘点等任务,通过识别货物形状和标签,实现无人化操作。另外,YOLO网络还能与机器人控制系统集成,引导机械臂完成精密装配或缺陷修复,形成“检测-执行”闭环。9.5YOLO网络的应用9.5.1自动驾驶9.5.2安防监控9.5.3工业检测9.5.4医疗影像9.5.4医疗影像医学影像是现代医疗诊断的核心工具,其精准分析对疾病筛查和治疗规划至关重要。传统医学影像分析依赖放射科医师的经验判断,存在效率低、主观性强等局限性。YOLO网络凭借其高效的实时检测能力,正逐步改变医学影像分析的范式。与自然图像不同,医学影像(如CT、MRI、X光)具有高噪声、低对比度等特点,这对目标检测方法提出了更高要求。9.5.4医疗影像(1)肿瘤检测与分析在肿瘤检测与分析方面,YOLO网络展现出显著优势。针对乳腺疾病筛查,为减少不必要活检,尽量降低筛查对患者的伤害,首选风险更小的医学成像技术,包括乳腺X线成像、乳腺超声成像和乳腺磁共振成像等作为筛查手段。为降低影像科医生工作量,提高筛查效率,减少主观因素造成的漏诊误诊,以深度学习为基础的计算机技术成为影像科医生重要的辅助诊断手段。目标检测技术因其可对乳腺影像中的病患区域进行定位并进行初步分类,辅助专业医师进行查阅和诊断而备受关注。YOLO网络作为目标检测的最好工具,能够同时检测微钙化和肿块两类典型征象,在数字乳腺断层摄影图像中达到89%的敏感度,乳腺疾病检测结果如图9.28所示。图9.28YOLO网络乳腺疾病检测结果,其中(a)表示专业医师标注肿块位置;(b)表示YOLO检测到的肿块位置;(c)左边表示钙化点,右边表示肿块9.5.4医疗影像肺结节是一种在肺部增生的圆形或不规则形状的病变。在肺部CT图像中,通常表现为致密的阴影,边界清晰或不清。经验丰富的放射科医生必须仔细扫描CT图像,一层一层地寻找肺结节,这需要大量的时间和精力,有时患者可能需要数百张肺部CT图像才能获得准确诊断。这种方法不仅检测效率低,而且给医生造成疲劳,影响判断,可能导致误检或漏检。近年来,基于YOLO网络的计算机辅助肺结节检测系统发展迅速,为肺结节的诊断提供了高效、准确、实时的检测结果,已经成为医

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论