作者:Juan R. Terven 、Diana M. Cordova-Esparaza
摘要:YOLO已经成为机器人、无人驾驶汽车和视频监控应用的核心实时物体检测系统。我们对YOLO的演变进行了全面的分析,研究了从最初的YOLO到YOLOv8每次迭代的创新和贡献。我们首先描述了标准指标和后处理;然后,我们讨论了每个模型的网络结构和训练技巧的主要变化。最后,我们总结了YOLO发展的基本经验,并提供了对其未来的看法,强调了提高实时物体检测系统的潜在研究方向。
实时物体检测已经成为众多应用中的一个重要组成部分,横跨自主车辆、机器人、视频监控和增强现实等各个领域。在各种物体检测算法中,YOLO(You Only Look Once)框架因其在速度和准确性方面的显著平衡而脱颖而出,能够快速、可靠地识别图像中的物体。自成立以来,YOLO系列已经经历了多次迭代,每次都是在以前的版本基础上解决局限性并提高性能(见图1)。本文旨在全面回顾YOLO框架的发展,从最初的YOLOv1到最新的YOLOv8,阐释每个版本的关键创新、差异和改进。
本文首先探讨了原始YOLO模型的基本概念和架构,这为YOLO系列的后续进展奠定了基础。随后,我们深入探讨了从YOLOv2到YOLOv8每个版本中引入的改进和提高。这些改进包括各个方面,如网络设计、损失函数的修改、锚框的调整和输入分辨率的扩展。通过研究这些发展,对YOLO框架的演变及其对物体检测的影响有一个整体的理解。
除了讨论每个YOLO版本的具体进展外,本文还强调了在整个框架的发展过程中出现的速度和准确性之间的权衡问题。这强调了在选择最合适的YOLO模型时,考虑具体应用的背景和要求的重要性。最后,我们设想了YOLO框架的未来方向,触及了进一步研究和发展的潜在途径,这将塑造实时物体检测系统的持续进展。
YOLO的实时物体检测能力在自主车辆系统中是非常宝贵的,能够快速识别和跟踪各种物体,如车辆、行人[1, 2]、自行车和其他障碍物[3, 4, 5, 6]。这些能力已被应用于许多领域,包括用于监控的视频序列中的动作识别[7][8]、体育分析[9]和人机交互[10]。
YOLO模型已被用于农业,以检测和分类作物[11, 12]、害虫和疾病[13],协助精准农业技术和自动化耕作过程。它们还被用于生物识别、安全和面部识别系统中的面部检测任务[14, 15]。
在医学领域,YOLO已被用于癌症检测[16, 17]、皮肤分割[18]和药片识别[19],从而提高诊断的准确性和更有效的治疗过程。在遥感领域,它已被用于卫星和航空图像中的物体检测和分类,有助于土地利用绘图、城市规划和环境监测[20, 21, 22, 23]。
安防系统已经将YOLO模型整合到视频资料的实时监控和分析中,允许快速检测可疑活动[24]、社会距离和脸部面具检测[25]。这些模型还被应用于表面检测,以检测缺陷和异常,加强制造和生产过程的质量控制[26, 27, 28]。
在交通应用中,YOLO模型已被用于车牌检测[29]和交通标志识别[30]等任务,促进了智能交通系统和交通管理解决方案的发展。它们已被用于野生动物检测和监测,以识别濒危物种,用于生物多样性保护和生态系统管理[31]。最后,YOLO已被广泛用于机器人应用[32, 33]和无人机的物体检测[34, 35]。
平均精度(AP),传统上称为平均精度(mAP),是评价物体检测模型性能的常用指标。它测量所有类别的平均精度,提供一个单一的数值来比较不同的模型。COCO数据集没有对AP和AP进行区分。在本文的其余部分,我们将把这个指标称为AP。
在YOLOv1和YOLOv2中,用于训练和基准测试的数据集是PASCAL VOC 2007和VOC 2012[36]。然而,从YOLOv3开始,使用的数据集是微软COCO(Common Objects in Context)[37]。对于这些数据集,AP的计算方法是不同的。以下各节将讨论AP背后的原理,并解释它是如何计算的。
AP指标是基于精度-召回指标,处理多个对象类别,并使用Intersection over Union(IoU)定义一个积极的预测。
Precision和Recall:精确率衡量的是模型正面预测的准确性,而召回率衡量的是模型正确识别的实际正面案例的比例。精确率和召回率之间通常有一个权衡;例如,增加检测到的对象的数量(更高的召回率)会导致更多的假阳性(更低的精确率)。为了考虑到这种权衡,AP指标包含了精度-召回曲线,该曲线将精度与不同置信度阈值的召回率作了对比。这个指标通过考虑精度-召回曲线下的面积,对精度和召回进行了平衡的评估。
处理多个物体类别:物体检测模型必须识别和定位图像中的多个物体类别。AP指标通过单独计算每个类别的平均精度(AP),然后取所有类别中这些AP的平均值来解决这个问题(这就是为什么它也被称为平均平均精度)。这种方法确保了对每个类别的模型性能进行单独评估,从而对模型的整体性能提供了更全面的评估。
IoU:物体检测的目的是通过预测边界框来准确定位图像中的物体。AP指标包含了 "联合体上的交集"(IoU)措施,以评估预测的边界盒的质量。IoU是预测界线盒和地面真实界线盒的交集面积与联合面积之比(见图2)。它衡量的是地面实况和预测边界盒之间的重叠程度。COCO基准考虑了多个IoU阈值,以评估模型在不同定位精度水平上的表现。
在VOC和COCO数据集中,AP的计算方法是不同的。在这一节中,我们将描述它是如何在每个数据集上计算的。
VOC数据集
这个数据集包括20个物体类别。为了计算VOC中的AP,我们遵循以下步骤:
COCO数据集
这个数据集包括80个对象类别,并使用更复杂的方法来计算AP。它没有使用11点插值,而是使用101点插值,也就是说,它计算了从0到1的101个召回阈值的精度,增量为0.01。另外,AP是通过对多个IoU值进行平均而不是只对一个IoU值进行平均得到的,除了一个常见的AP指标,即AP50 ,它是单个IoU阈值为0.5的AP。COCO中计算AP的步骤如下:
AP计算的差异使得我们很难直接比较两个数据集的物体检测模型的性能。目前的标准使用COCO AP,因为它对一个模型在不同的IoU阈值下的表现有更精细的评估。
非极大值抑制(NMS)是物体检测算法中使用的一种后处理技术,用于减少重叠边界盒的数量,提高整体检测质量。物体检测算法通常会在同一物体周围产生多个具有不同置信度分数的边界框。NMS过滤掉多余的和不相关的边界盒,只保留最准确的边界盒。算法1描述了该程序。图3显示了一个包含多个重叠边界框的物体检测模型的典型输出和NMS之后的输出。
Joseph Redmon等人的YOLO发表在CVPR 2016[38]。它首次提出了一种实时的端到端物体检测方法。YOLO这个名字代表了 "你只看一次",指的是它是与之前的方法相比,YOLO只需通过一次网络就能完成检测任务,而之前的方法要么使用滑动窗口,要么使用分类器,每个图像需要运行数百次或数千次,更先进的方法则将任务分为两步,第一步检测有物体或候选框的可能区域,第二步对候选框进行分类。另外,YOLO使用了一个更直接的输出,只基于回归来预测检测输出,而Fast R-CNN[39]则使用了两个单独的输出,一个是概率的分类,一个是方框坐标的回归。
YOLOv1通过同时检测所有的边界框,统一了物体检测步骤。为了实现这一目标,YOLO将输入图像划每个边界框的预测由五个值组成:Pc、bx、by、bh、bw ,其中Pc是bounding box的置信度分数,反映了模型对bbox包含物体的置信度以及bbox的精确程度。bx和by坐标是方框相对于网格单元的中心,bh和bw是方框相对于整个图像的高度和宽度。YOLO的输出是一个S×S×(B×5+C)的张量,可以选择用非最大抑制(NMS) 来去除重复的检测结果。
在最初的YOLO论文中,作者使用了PASCAL VOC数据集[36],该数据集包含20个(C = 20);一个7×7(S = 7)网格最多预测两个类(B = 2),输出7×7×30预测结果。
YOLOv1在PASCAL VOC2007数据集上取得了63.4的平均精度(AP)。
YOLOv1架构包括24个卷积层,然后是两个全连接层,用于预测bbox坐标和概率。除了最后一个层使用线性激活函数外,所有层都使用了漏整流线性单元激活[40]。受GoogLeNet[41]和Network in Network[42] 的启发,YOLO使用1×1卷积层来减少特征图的数量并保持相对较低的参数数量。作为激活层,表1描述了YOLOv1的架构。作者还介绍了一个更轻的模型,称为快速YOLO,由九个卷积层组成。
作者使用ImageNet数据集[43]在224x224的分辨率下对YOLO的前20层进行了预训练。然后,他们用随机初始化的权重增加了最后四层,并在448x448的分辨率下用PASCAL VOC 2007和VOC 2012数据集[36]对模型进行了微调,以增加细节,实现更准确的物体检测。对于增强,作者使用了最多为输入图像大小20%的随机缩放和平移,以及HSV色彩空间中上端系数为1.5的随机曝光和饱和度。
YOLOv1使用了一个由多个和平方误差组成的损失函数,如图5所示。在该损失函数中、 λcoord = 5是一个比例因子,赋予边界框预测更多的重要性,而λnoobj = 0.5是一个比例因子,降低不包含物体的框的重要性。λnoobj = 0.5是一个比例因子,它降低了不包含物体的bbox的重要性。
YOLO的简单结构,加上其新颖的全图像单次回归,使其比现有的物体检测器快得多,允许实时性能。然而,虽然YOLO的表现比任何物体检测器都快,但与最先进的方法如快速R-CNN[39]相比,定位误差更大。造成这种限制的主要原因有三个:
YOLOv2由Joseph Redmon和Ali Farhadi发表在CVPR 2017[44]。它包括了对原始YOLO的一些改进,使其更好,保持相同的速度,也更强大,能够检测9000个类别!这些改进有以下几点:
通过所有这些改进,YOLOv2在PASCAL VOC2007数据集上取得了78.6%的平均精度(AP),而YOLOv1则取得了63.4%。
YOLOv2使用的骨干架构被称为Darknet-19,包含19个卷积层和5个maxpooling层。与YOLOv1的架构类似,它受到Network in Network[42]的启发,在3×3之间使用1×1 3×3之间的卷积,以减少参数的数量。此外,如上所述,他们使用批量归一化来规范化并帮助收敛。
作者在同一篇论文中介绍了一种训练联合分类和检测的方法。它使用来自COCO[37]的检测标记数据来学习bounding box坐标,并使用来自ImageNet的分类数据来增加它能检测的类别数量。在训练过程中,他们将这两个数据集结合起来,这样当使用检测训练图像时,它反向传播检测网络,而当使用分类训练图像时,它反向传播架构的分类部分。结果是一个能够检测超过9000个类别的YOLO模型,因此被称为YOLO9000。
YOLOv3[46]于2018年由Joseph Redmon和Ali Farhadi发表在ArXiv。它包括重大的变化和更大的架构,以便在保持实时性能的同时与最先进的技术接轨。在下文中,我们描述了相对于YOLOv2的变化。
YOLOv3中提出的架构主干被称为Darknet-53。它用全连接层取代了所有的max-pooling层,并增加了Res残差连接。总的来说,它包含53个卷积层。图8显示了该架构的细节。
Darknet-53骨干网获得了与ResNet-152相当的Top-1和Top-5的准确率,但速度几乎为2倍。
除了更大的结构,YOLOv3的一个基本特征是多尺度预测,即在多个网格尺寸下的预测。这有助于获得更精细的方框,并大大改善了对小物体的预测,而这正是YOLO以前版本的主要弱点之一。
图9所示的多尺度检测架构的工作原理如下:第一个标记为y1的输出相当于YOLOv2的输出,其中一个13×13的网格定义了输出。第二个输出y2是由串联后的输出与(Res × 8)后的输出相连接。这些特征图有不同的尺寸,即13×13和26×26,所以在连接之前有一个上采样操作。最后,使用一个上采样操作,第三个输出y3将26×26的特征图与52×52的特征图连接起来。对于有80个类别的COCO数据集,每个尺度提供了一个形状为N×N×[3×(4+1+80)]的输出张量。其中N×N是特征图(或网格单元)的大小,3表示每个单元的方框,4+1包括四个坐标和置信度得分。4+1包括四个坐标和置信度得分。
6.3 YOLOv3结果
当YOLOv3发布时,物体检测的基准已经从PASCAL VOC变成了Microsoft COCO[37]。因此,从这里开始, 所有的YOLO都在MS COCO数据集中进行评估。YOLOv3-spp在20FPS的情况下,平均精度AP为36.2%, AP50 为60.6%,达到了当时的最先进水平,速度快了2倍。
这时,物体检测器的结构开始被描述为三个部分:Backbone, Neck和Head。图10显示了一个高层次的Backbone, Neck 和 Head图。
Backbone负责从输入图像中提取有用的特征。它通常是一个卷积神经网络(CNN),在大规模的图像分类任务中训练,如ImageNet。骨干网在不同的尺度上捕捉层次化的特征,在较早的层中提取低层次的特征(如边缘和纹理),在较深的层中提取高层次的特征(如物体部分和语义信息)。
Neck是连接Backbone和Head的一个中间部件。它聚集并细化骨干网提取的特征,通常侧重于加强不同尺度的空间和语义信息。颈部可能包括额外的卷积层、特征金字塔网络(FPN)[49],或其他机制,以提高特征的代表性。
Head是物体检测器的最后组成部分;它负责根据Backbone和Neck提供的特征进行预测。它通常由一个或多个特定任务的子网络组成,执行分类、定位,以及最近的实例分割和姿势估计。头部处理颈部提供的特征,为每个候选物体产生预测。最后,一个后处理步骤,如非极大值抑制(NMS),过滤掉重叠的预测,只保留置信度最高的检测。
在其余的YOLO模型中,我们将使用Backbone, Neck和Head来描述架构。
两年过去了,YOLO没有新版本。直到2020年4月,Alexey Bochkovskiy、Chien-Yao Wang和Hong-Yuan Mark Liao在ArXiv发布了YOLOv4[50]的论文。起初,不同的作者提出一个新的YOLO "官方 "版本让人感觉很奇怪;然而,YOLOv4保持了相同的YOLO理念——实时、开源、端到端和DarkNet框架——而且改进非常令人满意,社区迅速接受了这个版本作为官方的YOLOv4。
YOLOv4试图通过试验许多被归类为bag-of-freebies和bag-of-specials的变化来找到最佳平衡。bag-of-freebies是指只改变训练策略和增加训练成本但不增加推理时间的方法,最常见的是数据增强。另一方面,bag-of-specials是指稍微增加推理成本但显著提高准确率的方法。这些方法的例子有扩大感受野[48, 51, 52],结合特征[53, 49, 54, 55],以及后处理[56, 40, 57, 58]等等。
我们将YOLOv4的主要变化总结为以下几点:
表3列出了骨干网和检测器的最终选择的BoF和BoS。
在MS COCO数据集test-dev 2017上进行评估,YOLOv4在NVIDIA V100上实现了43.5%的AP和65.7%的AP50,速度超过了50 FPS。
YOLOv5[72]是在YOLOv4之后几个月于2020年由Glenn Jocher发布。在写这篇文章时,还没有关于YOLOv5的科学论文,但从代码中,我们知道它使用了YOLOv4部分描述的许多改进,主要区别是它是用Pytorch而不是Darknet开发的。YOLOv5是开源的,由Ultralytics积极维护,有250多个贡献者,并经常有新的改进。YOLOv5很容易使用、培训和部署。Ultralytics提供了一个iOS和Android的移动版本,以及许多用于标签、培训和部署的集成。
YOLOv5 提供了五个版本: YOLOv5n( 纳米级)、YOLOv5s( 小型)、YOLOv5m( 中型)、YOLOv5l(大型)和YOLOv5x(特大型)。
在撰写本文时,YOLOv5发布的版本是7.0版,包括能够进行分类和实例分割的YOLOv5版本。
在MS COCO数据集test-dev 2017上进行评估,YOLOv5x在图像大小为640像素的情况下实现了50.7%的AP。使用32 个批次的大小,它在NVIDIA V100 上可以达到200 FPS 的速度。使用更大的输入尺寸1536 像素, YOLOv5实现了55.8%的AP。
在YOLOv4 的一年后, 同一作者在CVPR 2021 上展示了Scaled-YOLOv4 [73] 。与YOLOv4 不同, Scaled YOLOv4是在Pytorch而不是Darknet中开发的。主要的创新之处在于引入了扩大和缩小的技术。扩大规模意味着以降低速度为代价来制作一个增加精度的模型;另一方面,缩小规模需要制作一个增加速度而牺牲精度的模型。此外,按比例缩小的模型需要更少的计算能力,可以在嵌入式系统上运行。
缩小的架构被称为YOLOv4-tiny;它是为低端GPU设计的,在Jetson TX2上能以46 FPS运行,在RTX2080Ti上能以440 FPS运行,在MS COCO上达到22%的AP。
扩大的模型架构被称为YOLOv4-large,其中包括三种不同尺寸的P5、P6和P7。这个架构是为云计算GPU设计的,取得了最先进的性能,超过了所有以前的模型[74, 75, 76],在MS COCO上的AP为56%。
YOLOR[77]由YOLOv4的同一研究小组于2021年5月发表在ArXiv。它代表着你只学习一个表征。在这篇论文中,作者采用了一种不同的方法;他们开发了一种多任务学习方法,旨在通过学习一般的表征和使用子网络来创建特定任务的表征,为各种任务(如分类、检测、姿势估计)创建一个单一的模型。洞察到传统的联合学习方法经常导致次优特征的产生,YOLOR旨在通过编码神经网络的隐性知识来克服这一问题,以应用于多个任务,类似于人类使用过去的经验来处理新问题。结果显示,将隐性知识引入神经网络有利于所有的任务。
在MS COCO数据集test-dev 2017上进行评估,YOLOR在NVIDIA V100上以30 FPS的速度取得了55.4%的AP和73.3%的AP50。
YOLOX[78]于2021年7月发表在ArXiv上,由Megvii Technology的研究团队开发。它以Pytorch为基础,以Ultralytics的YOLOV3为起点,有五个主要变化:无锚结构、多阳性、解耦头、高级标签分配和强增强。它取得了最先进的结果。
2021年,在Tesla V100上以50.1%的AP和68.9%的FPS实现了速度和准确性的最佳平衡。在下文中,我们描述了YOLOX相对于YOLOv3的五个主要变化:
YOLOv6[86]于2022年9月由美团视觉人工智能部发布在ArXiv。与YOLOv4和YOLOv5类似,它为工业应用提供了各种不同尺寸的模型。跟随基于锚点的方法[78, 81]的趋势,YOLOv6采用了无锚点的检测器。该模型的主要创新之处总结如下:
在MS COCO数据集test-dev 2017上进行评估,YOLOv6-L在NVIDIA Tesla T4上实现了52.5%的AP和70%的AP50 ,速度约为50 FPS。
YOLOv7[94]由YOLOv4和YOLOR的同一作者于2022年7月发表在ArXiv。当时,在5 FPS到160 FPS的范围内,它的速度和准确度超过了所有已知的物体检测器。与YOLOv4一样,它只使用MS COCO数据集进行训练,没有预训练的骨干。YOLOv7提出了一些架构上的变化和一系列的免费包,在不影响推理速度的情况下提高了准确率,只影响了训练时间。
YOLOv7的架构变化是:
YOLOv7中使用的bag-of-freebies包括:
在这一节中,我们强调了YOLOv7与同一作者以前开发的YOLO模型相比的改进之处。
与YOLOv4相比,YOLOv7实现了参数减少75%,计算量减少36%,同时平均精度(AP)提高了1.5%。与YOLOv4-tiny相比,YOLOv7-tiny设法将参数和计算量分别减少39%和49%,同时保持相同的AP。最后,与YOLOR相比,YOLOv7的参数数量和计算量分别减少了43%和15%,同时AP也略微增加了0.4%。
在MS COCO数据集test-dev 2017上评估,YOLOv7-E6在输入尺寸为1280像素的情况下,在NVIDIA V100上取得了55.9%的AP和73.5%的AP50 ,速度为50 FPS。
DAMO-YOLO[97]由阿里巴巴集团于2022年11月发表在ArXiv。受到当前技术的启发,DAMO-YOLO包括以下内容:
作者生成了名为DAMO-YOLO-Tiny/Small/Medium的比例模型,在NVIDIA V100上,最佳模型在233 FPS下的AP达到了50.0%。
YOLOv8[100]由开发YOLOv5的公司Ultralytics于2023年1月发布。由于在撰写本文时,还没有关于YOLOv8的论文,我们需要深入了解与其他YOLO版本相比的架构决策。按照目前的趋势,YOLOv8是无锚的,减少了箱体预测的数量,加快了非极大值抑制(NMS)的速度。此外,YOLOv8在训练过程中使用了马赛克增强功能;但是,由于已经发现如果在整个训练过程中使用这种增强功能可能是有害的,所以在最后10个epoch中禁用了这种功能。
YOLOv8可以从命令行界面(CLI)运行,也可以作为一个PIP包安装。此外,它还配备了多个用于贴标、培训和部署的集成。
YOLOv8 提供了五个版本: YOLOv8n( 纳米级)、YOLOv8s( 小型)、YOLOv8m( 中型)、YOLOv8l(大型)和YOLOv8x(特大型)。
在MS COCO数据集test-dev 2017上进行评估,YOLOv8x在图像大小为640像素的情况下实现了53.9%的AP( 相比之下,YOLOv5在相同的输入大小上为50.7%),在NVIDIA A100和TensorRT上的速度为280 FPS。
PP-YOLO模型一直在与我们描述的YOLO模型平行发展。然而,我们决定将它们归为一个部分,因为它们从YOLOv3开始,一直在逐步改进以前的PP-YOLO版本。尽管如此,这些模型在YOLO的发展过程中还是很有影响力的。与YOLOv4和YOLOv5相似的PP-YOLO[76]是基于YOLOv3的。它于2020年7月由百度公司的研究人员发表在ArXiv上。该作者使用了PaddlePaddle[101]深度学习平台,因此它的PP名称。遵循我们从YOLOv4开始看到的趋势,PP-YOLO增加了十个现有的技巧来提高检测器的准确性,保持速度不变。根据作者的说法,本文的目的不是要介绍一个新的物体检测器,而是要展示如何一步一步地建立一个更好的检测器。PP-YOLO使用的大部分技巧都与YOLOv4中使用的技巧不同,重合的技巧使用了不同的实现。PP-YOLO关于YOLOv3的变化是:
PP-YOLO使用了以下增强和预处理:
在MS COCO数据集test-dev 2017上进行评估,PP-YOLO在NVIDIA V100上取得了45.9%的AP和65.2%的AP50,73 FPS。
PP-YOLOv2[105]于2021年4月发表在ArXiv上,对PP-YOLO增加了四项改进,在NVIDIA V100上69FPS时,性能从45.9%AP提高到49.5%AP。PP-YOLOv2关于PP-YOLO的变化如下:
PP-YOLOE[106]于2022年3月在ArXiv发表。它在PP-YOLOv2的基础上增加了改进,在NVIDIA V100上实现了51.4%的AP,78.1 FPS的性能。PP-YOLOE关于PP-YOLOv2的主要变化是:
和以前的YOLO版本一样,作者通过改变背脊和颈部的宽度和深度,生成了多个比例的模型。这些模型被称为PP-YOLOE-s(小型)、PP-YOLOE-m(中型)、PP-YOLOE-l(大型)和PP-YOLOE-x(特大型)。
本文研究了15个YOLO版本,从最初的YOLO模型到最新的YOLOv8。表4提供了所讨论的YOLO版本的概况从这个表中,我们可以确定几个关键的模式:
YOLO系列的物体检测模型一直专注于平衡速度和精度,旨在提供实时性能而不牺牲检测结果的质量。随着YOLO框架在各种迭代中的发展,这种权衡一直是一个反复出现的主题,每个版本都试图以不同的方式优化这些相互竞争的目标。在最初的YOLO模型中,主要重点是实现高速物体检测。该模型利用单一的卷积神经网络(CNN)直接预测输入图像中的物体位置和类别,实现实时处理。然而,这种对速度的强调导致了准确性的妥协,主要是在处理小物体或具有重叠边界盒的物体时。
随后的YOLO版本在保持框架的实时性的同时,引入了完善和增强功能来解决这些限制。例如,YOLOv2( YOLO9000)引入了锚定框和穿透层,以改善物体的定位,从而提高精确度。此外,YOLOv3通过采用多尺度特征提取架构增强了模型的性能,允许在不同尺度上进行更好的物体检测。
随着YOLO框架的发展,速度和准确性之间的权衡变得更加微妙。YOLOv4和YOLOv5等模型引入了创新,如新的网络主干、改进的数据增强技术和优化的训练策略。这些发展导致了准确度的显著提高,但并没有大幅影响模型的实时性能。
从Scaled YOLOv4开始,所有官方的YOLO模型都对速度和精度之间的权衡进行了微调,提供不同的模型比例以适应特定的应用和硬件要求。例如,这些版本通常提供为边缘设备优化的轻量级模型,用精度换取降低的计算复杂性和更快的处理时间。
随着YOLO框架的不断发展,我们预计以下趋势和可能性将决定未来的发展:
纳入最新技术。研究人员和开发人员将继续利用深度学习、数据增强和训练技术的最先进方法来完善YOLO架构。这种持续的创新过程可能会提高模型的性能、稳健性和效率。
基准的演变。目前用于评估物体探测模型的基准,即COCO 2017,最终可能会被一个更先进、更具挑战性的基准所取代。这反映了前两个YOLO版本中使用的VOC 2007基准的转变,反映了随着模型越来越复杂和准确,需要更多的基准。
YOLO模型和应用的激增。随着YOLO框架的发展,我们预计每年发布的YOLO模型的数量会增加,同时应用也会相应地扩大。随着该框架变得更加通用和强大,它可能会被应用于更多不同的领域,从家用电器设备到自动驾驶汽车。
扩展到新的领域。YOLO模型有可能将其能力扩展到物体检测和分割之外,分支到视频中的物体跟踪和三维关键点估计等领域。随着这些模型的发展,它们可能成为解决更广泛的计算机视觉任务的新解决方案的基础。
对不同硬件的适应性。YOLO模型将进一步跨越硬件平台,从物联网设备到高性能计算集群。这种适应性将使YOLO模型能够在各种情况下部署,这取决于应用程序的要求和限制。此外,通过定制模型以适应不同的硬件规格,YOLO可以被更多的用户和行业所接受和使用。
Reference:
《A COMPREHENSIVE REVIEW OF YOLO: FROM YOLOV1 TO YOLOV8 AND BEYOND 》