专栏感知YOLO系列算法发展总结

YOLO系列算法发展总结

kotei左文亮2024-05-21
111
0

YOLO由Joseph Redmon等人于CVPR 2016年发表。它首次提出了一种实时端到端的目标检测方法。YOLO的名称代表"You Only Look Once",指的是它能够通过网络的一次传递完成检测任务,而不像先前的方法,它们要么使用滑动窗口后跟随分类器,需要在每个图像上运行数百或数千次,要么使用更先进的方法,将任务分为两个步骤,其中第一步检测具有对象的可能区域或区域提议,第二步在提议上运行分类器。此外,YOLO使用更直接的输出,仅基于回归来预测检测输出,而不像Fast R-CNN 那样使用两个单独的输出,一个用于概率的分类,另一个用于边界框坐标的回归。

1 、YOLOv1

YOLOv1通过同时检测所有边界框来统一目标检测步骤。为了实现这一点,YOLO将输入图像划分为S × S的网格,并为每个网格元素预测B个相同类别的边界框,以及C个不同类别的置信度。每个边界框预测包括五个值:P c、bx、by、bh、bw,其中P c是box盒子的置信度分数,反映了模型对盒子包含对象的信心以及盒子的准确性。bx和by坐标是相对于网格单元的盒子中心,bh和bw是相对于完整图像的盒子的高度和宽度。YOLO的输出是一个S × S × (B × 5 + C)的张量,可选择在之后进行非极大值抑制(NMS)以移除重复检测。

在原始YOLO论文中,作者使用了包含20个类别(C = 20)的PASCAL VOC数据集,一个7 × 7的网格(S = 7),每个网格元素最多有2个类别(B = 2),从而得到了一个7 × 7 × 30的输出预测。

下图显示了一个考虑了3 ×3网格、三个类别和每个网格一个类别的简化输出向量,共有八个值。在这种简化情况下,YOLO的输出将是3 × 3 × 8。

YOLOv1在PASCAL VOC2007数据集上实现了63.4的平均精度(AP)。

YOLOv1架构包括24个卷积层,后面跟着两个全连接层,用于预测边界框的坐标和概率。所有层都使用了leaky RELU,除了最后一层使用线性激活函数。受到GoogLeNet和Network in Network的启发,YOLO使用1 × 1卷积层来减少特征图的数量,并保持参数数量相对较。作者还引入了一个轻量级模型称为Fast YOLO,由九个卷积层组成。YOLO的简单架构,以及其新颖的全图一次回归使其比现有的目标检测器快得多,实现了实时性能。 然而,虽然YOLO比任何目标检测器都要快,但与Fast R-CNN等先进方法相比,其定位误差较大。这种局限性有三个主要原因:

  1. 它最多只能在网格单元中检测两个相同类别的对象,限制了其预测附近对象的能力。

  2. 它难以预测在训练数据中未见过的纵横比的对象。

  3. 由于下采样层,它从粗糙的对象特征中学习。


2、YOLOv2

YOLOv2由Joseph Redmon和Ali Farhadi于CVPR 2017年发表。它在原始YOLO的基础上进行了多项改进,以使其更好、保持相同的速度,并且更强大——能够检测9000个类别!其改进如下:

  1. 所有卷积层使用批归一化,提高了收敛性,并充当正则化器以减少过拟合。

  2. 高分辨率分类器。与YOLOv1一样,他们使用ImageNet在224 × 224上预训练了模型。然而,这一次,他们在ImageNet上使用了448 × 448的分辨率对模型进行了十个周期的微调,提高了网络对更高分辨率输入的性能。

  3. 完全卷积。他们移除了密集层,使用了完全卷积的架构。

  4. 使用锚框预测边界框。他们使用一组预定义形状的先验框或锚框,用于匹配对象的原型形状。为每个网格单元定义了多个锚框,系统为每个锚框预测坐标和类别。网络输出的大小与每个网格单元中的锚框数量成比例。

  5. 尺寸聚类。选择好的先验框有助于网络学习预测更准确的边界框。作者在训练边界框上运行了k均值聚类,以找到良好的先验。他们选择了五个提供在召回和模型复杂性之间取得良好平衡的先验框。

  6. 直接位置预测。与预测偏移的其他方法不同,YOLOv2网络为每个单元格预测五个边界框,每个边界框有五个值tx、ty、tw、th和to,其中to等同于YOLOv1中的P c。

  7. 更细粒度的特征。与YOLOv1相比,YOLOv2去掉了一个池化层,以获得416 × 416输入图像的13 × 13的输出特征图或网格。YOLOv2还使用了一个穿越层,将26 × 26 × 512的特征图重新组织,通过将相邻特征堆叠到不同的通道中,而不是通过空间下采样丢失它们。这生成了13 × 13 × 2048的特征图,与较低分辨率的13 × 13 × 1024的地图在通道维度上连接,以获得13 × 13 × 3072的特征图。

  8. 多尺度训练。由于YOLOv2不使用全连接层,输入可以是不同的大小。为了使YOLOv2对不同的输入尺寸具有鲁棒性,作者随机训练模型,每十个批次更改一次输入大小——从320 × 320到608 × 608。

通过所有这些改进,YOLOv2在PASCAL VOC2007数据集上的平均精度(AP)达到了78.6%,而YOLOv1的AP为63.4%。

YOLOv2使用的骨干架构被称为Darknet-19,包含19个卷积层和五个最大池化层。与YOLOv1的架构类似,它受到了Network in Network 的启发,使用1 × 1的卷积在3 × 3之间以减少参数数量。此外,如上所述,他们使用批归一化来正则化和帮助收敛。

YOLOv2预测五个边界框,每个边界框有五个值,并在使用PASCAL VOC数据集时有20个类别。目标分类头部使用一个带有1000个过滤器的单个卷积层替换了最后四个卷积层,然后是一个全局平均池化层和一个Softmax。

3、YOLOv3

YOLOv3 由 Joseph Redmon 和 Ali Farhadi 于2018年在 ArXiv 上发表。它包含了重大的变化和更大的架构,以与最先进的技术保持同步,同时保持实时性能。以下是与 YOLOv2 相比的变化。

  1. 边界框预测。与 YOLOv2 一样,网络为每个边界框预测四个坐标 tx、ty、tw 和 th;然而,这一次 YOLOv3 使用逻辑回归为每个边界框预测一个物体性分数。该分数对于与地面实况有最高重叠的锚框为1,对于其余锚框为0。与 Faster R-CNN 不同,YOLOv3 仅为每个地面实况对象分配一个锚框。此外,如果没有锚框分配给对象,则只会产生分类损失,而不是定位损失或置信度损失。

  2. 类别预测。不使用 softmax 进行分类,而是使用二元交叉熵来训练独立的逻辑分类器,并将问题形式化为多标签分类。这种变化允许为同一框分配多个标签,这在一些具有重叠标签的复杂数据集 上可能会发生。例如,同一个对象可以是“Person”和“Man”。

  3. 新的骨干网络。YOLOv3具有由53个卷积层组成的更大的特征提取器,带有残差连接。

  4. 空间金字塔池化(SPP)。虽然论文中没有提到,作者还向骨干网络添加了一个修改过的 SPP 块 ,它将多个最大池化输出连接在一起,而没有下采样(步幅=1),每个都有不同的核大小 k × k,其中 k = 1, 5, 9, 13,允许更大的感受野。这个版本被称为 YOLOv3-spp,并且是性能最好的版本,将 AP50 提高了2.7%。

  5. 多尺度预测。类似于特征金字塔网络 ,YOLOv3 在三个不同的尺度上预测三个框。

  6. 边界框先验。与 YOLOv2 一样,作者还使用 k-means 确定锚框的边界框先验。不同之处在于,在 YOLOv2 中,他们每个单元格使用了总共五个先验框,而在 YOLOv3 中,他们为三个不同尺度使用了三个先验框。

在 YOLOv3 中呈现的骨干架构被称为 Darknet-53。它用步幅卷积替换了所有最大池化层,并添加了残差连接。总共包含了53个卷积层。 Darknet-53 骨干网络获得的 Top-1 和 Top-5 准确性与 ResNet-152 相当,但速度几乎快2倍。YOLOv3的架构由53个卷积层组成,每个层都有批标准化和Leaky ReLU激活。此外,残差连接将整个网络的1×1卷积的输入与3×3卷积的输出连接在一起。此处显示的架构仅包括骨干网络;它不包括由多尺度预测组成的检测头。

除了更大的架构之外,YOLOv3 的一个重要特征是多尺度预测,即在多个网格大小上进行预测。这有助于获得更精细的详细框,并显著改进了对小物体的预测,这是先前版本的 YOLO 的主要弱点之一。 下图中显示的多尺度检测架构的工作原理如下:第一个标记为 y1 的输出等同于 YOLOv2 的输出,其中 13×13 网格定义了输出。第二个输出 y2 由 Darknet-53 的 (Res × 4) 输出和 (Res × 8) 输出拼接而成。由于特征图的大小不同,即 13×13 和 26×26,因此在拼接之前进行了上采样操作。最后,使用上采样操作,第三个输出 y3 将 26×26 特征图与 52×52 特征图拼接在一起。 对于包含 80 个类别的 COCO 数据集,每个尺度提供一个形状为 N×N×[3×(4+1+80)] 的输出张量,其中 N×N 是特征图(或网格单元)的大小,3 表示每个单元格的框,4+1 包括四个坐标和目标性分数。 当 YOLOv3 发布时,目标检测的基准已从 PASCAL VOC 转移到 Microsoft COCO 。因此,从这里开始,所有的 YOLO 都在 MS COCO 数据集中进行评估。YOLOv3-spp 在 20 FPS 下实现了36.2% 的平均精度 AP 和 60.6% 的 AP50,达到了当时的最新水平,并且速度提升了2倍。

上图:YOLOv3 多尺度检测架构。Darknet-53 主干的输出分为三个不同的输出,分别标记为 y1、y2 和 y3,每个输出具有更高的分辨率。最终的预测框使用非极大值抑制进行过滤。CBL块包含一个卷积层,具有批归一化和leaky RELU。Res 块包含一个 CBL,然后是两个带有残差连接的 CBL 结构。

此时,目标检测器的架构开始分为三个部分:主干网络、颈部和头部。展示了一个高级主干网络、颈部和头部的示意图。

主干网络负责从输入图像中提取有用的特征。通常,它是一个在大规模图像分类任务(如ImageNet)上训练的卷积神经网络(CNN)。主干网络在不同尺度上捕获层次化的特征,较低层次的特征(例如边缘和纹理)在较早的层次中提取,而较高层次的特征(例如物体部分和语义信息)在较深的层次中提取。

颈部是将主干网络连接到头部的中间组件。它汇聚和细化主干网络提取的特征,通常侧重于增强不同尺度上的空间和语义信息。颈部可能包括额外的卷积层、特征金字塔网络(FPN)或其他机制,以改善特征的表示。

头部是目标检测器的最终组件;它负责基于主干网络和颈部提供的特征进行预测。它通常由一个或多个任务特定的子网络组成,执行分类、定位,以及最近开始流行的实例分割和姿态估计。头部处理颈部提供的特征,为每个对象候选生成预测。最后,通过后处理步骤(例如非极大值抑制,NMS),过滤掉重叠的预测,保留仅具有最高置信度的检测结果。 在接下来的YOLO模型中,我们将使用主干网络、颈部和头部来描述这些架构。


4、YOLOv4

YOLOv4的主要变化如下:

  1. 增强的架构与“特殊午餐”(BoS)集成。作者尝试了多种主干网络的架构,如ResNeXt50 、EfficientNet-B3 和Darknet-53。性能最佳的架构是对Darknet-53进行了修改,添加了跨阶段部分连接(CSPNet)和Mish激活函数作为主干网络。对于颈部,他们使用了YOLOv3-spp中修改的空间金字塔池化(SPP)和多尺度预测,但使用了修改后的路径聚合网络(PANet)而不是FPN,以及修改后的空间注意模块(SAM)。最后,对于检测头,他们像YOLOv3一样使用锚点。因此,该模型被称为CSPDarknet53-PANet-SPP。CSP部分连接(CSP)的添加有助于降低模型的计算量,同时保持相同的准确性。SPP块,如YOLOv3-spp中的块,可以增加感受野而不影响推理速度。修改后的PANet将特征连接而不是像原始PANet论文中那样相加。

  2. 集成“免费午餐”以进行先进的训练方法。除了常规的增强手法,如随机亮度、对比度、缩放、裁剪、翻转和旋转外,作者还实施了马赛克增强,将四张图像合并成一张图像,允许检测对象超出其通常的上下文,同时减少了对大型小批量大小进行批标准化的需求。为了正则化,他们使用了DropBlock ,它作为对卷积神经网络的Dropout 的替代品,以及类标签平滑。对于检测器,他们添加了CIoU损失和交叉小批量标准化(CmBN),以从整个批次而不是从单个小批次中收集统计信息,正如常规批次标准化那样。

  3. 自对抗训练(SAT)。为了使模型更加鲁棒,对输入图像执行对抗性攻击,创建一种假象,即地面实况对象不在图像中,但保留原始标签以检测正确的对象。

  4. 用遗传算法进行超参数优化。为了找到用于训练的最佳超参数,他们在前10%的周期内使用遗传算法,并使用余弦退火调度器在训练过程中改变学习速率。它开始缓慢降低学习率,然后在训练过程中间迅速降低,最后轻微下降。

  5. 在MS COCO数据集的test-dev 2017上评估,YOLOv4在NVIDIA V100上以超过50 FPS的速度实现了43.5%的AP和65.7%的AP50。

YOLOv4目标检测架构。图中的模块包括CMB: 卷积 + 批量归一化 + Mish激活,CBL: 卷积 + 批量归一化 + Leaky ReLU,UP: 上采样,SPP: 空间金字塔池化,以及PANet: 路径聚合网络

5、YOLOv5

YOLOv5 于2020年在YOLOv4之后的几个月由Ultralytics的创始人兼首席执行官Glen Jocher发布。它采用了YOLOv4部分描述的许多改进,但是使用了PyTorch而不是Darknet进行开发。YOLOv5集成了一种名为AutoAnchor的Ultralytics算法。这个预训练工具检查并调整锚框,如果它们不适用于数据集和训练设置(如图像大小),就会进行调整。它首先对数据集标签应用k均值函数,以生成遗传演算法(GE)的初始条件。然后,GE算法在默认情况下通过1000代演变这些锚点,使用CIoU损失和最佳可能召回率作为其适应性函数。

骨干网络是修改后的CSPDarknet53,以Stem开头,即一个带有大窗口大小的步幅卷积层,以减少内存和计算成本;接着是从输入图像中提取相关特征的卷积层。SPPF(空间金字塔池化快速)层和随后的卷积层处理不同尺度上的特征,而上采样层增加特征图的分辨率。SPPF层的目标是通过将不同尺度的特征汇总到固定大小的特征图中,加速网络的计算。每个卷积后面都跟有批归一化(BN)和SiLU激活。颈部使用SPPF和修改后的CSP-PAN,而头部类似于YOLOv3。

YOLOv5使用多种增强技术,如Mosaic、copy paste 、随机仿射、MixUp 、HSV增强、随机水平翻转,以及来自albumentations包的其他增强技术。它还改进了对网格的敏感性,使其更稳定以避免梯度失控的情况。

YOLOv5提供了五个缩放版本:YOLOv5n(nano)、YOLOv5s(small)、YOLOv5m(medium)、YOLOv5l(large)和YOLOv5x(extra large),其中卷积模块的宽度和深度根据特定应用和硬件要求进行调整。例如,YOLOv5n和YOLOv5s是面向低资源设备的轻量级模型,而YOLOv5x则针对高性能进行了优化,尽管牺牲了速度。 截至撰写本文时,YOLOv5的发布版本是v7.0,包括能够进行分类和实例分割的YOLOv5版本。

YOLOv5是开源的,并由Ultralytics积极维护,拥有超过250名贡献者,定期推出新的改进。YOLOv5易于使用、训练和部署。Ultralytics为iOS和Android提供了一个移动版本,以及许多用于标注、训练和部署的集成。

在MS COCO数据集test-dev 2017上评估,YOLOv5x在640像素的图像大小下实现了43.5%的AP和65.7%的AP50,速度超过50 FPS,使用NVIDIA V100。使用批大小为32,它可以在NVIDIA V100上实现200 FPS的速度。使用更大的输入大小(1536像素)和测试时间增强(TTA),YOLOv5实现了55.8%的AP。


6、YOLOR

YOLOR 于2021年5月在ArXiv上由YOLOv4的同一研究团队发表。YOLOR代表You Only Learn One Representation。在这篇论文中,作者采用了一种不同的方法;他们开发了一种多任务学习方法,旨在通过学习通用表示并使用子网络创建任务特定表示,从而为各种任务(例如分类、检测、姿势估计)创建单个模型。凭借对传统联合学习方法通常导致次优特征生成的深刻理解,YOLOR旨在通过将神经网络的隐式知识编码到多任务应用中来克服这一问题,类似于人类如何利用过去的经验来解决新问题。结果表明,引入神经网络的隐式知识对所有任务都有益。 在MS COCO数据集test-dev 2017上评估,YOLOR在NVIDIA V100上以30 FPS实现了55.4%的AP和73.3%的AP50。


7、YOLOX

YOLOX 于2021年7月由Megvii Technology在ArXiv上发布。它是使用Pytorch开发的,并以Ultralytics的YOLOV3为起点,具有五个主要变化:无锚点架构、多正样本、解耦头部、先进的标签分配和强大的数据增强。它在2021年取得了最先进的结果,在速度和准确性之间实现了最佳平衡,在Tesla V100上实现了50.1%的AP,68.9%的FPS。以下是关于YOLOX相对于YOLOv3的五个主要变化的描述:

  1. 无锚点。自YOLOv2以来,所有后续的YOLO版本都是基于锚点的检测器。受到无锚点最先进的目标检测器(如CornerNet 、CenterNet 和FCOS )的启发,YOLOX返回到了无锚点架构,简化了训练和解码过程。无锚点架构相对于YOLOv3基线提高了0.9个AP点。

  2. 多正样本。为了补偿没有锚点产生的大量不平衡,作者使用中心采样 ,其中他们将中心3×3区域分配为正样本。这种方法将AP提高了2.1个点。

  3. 解耦头部。分类置信度和定位准确性之间可能存在不一致。因此,YOLOX将这两者分离为两个头部,一个用于分类任务,另一个用于回归任务,将AP提高了1.1个点,并加快了模型的收敛速度。

  4. 先进的标签分配。当多个对象的框重叠时,地面实况标签分配可能存在歧义,并将分配过程表述为最优输运(OT)问题。受到这项工作的启发,YOLOX提出了一个简化版本,称为simOTA。这个变化使AP提高了2.3个点。

  5. 强大的数据增强。YOLOX使用MixUP 和Mosaic增强。作者发现在使用了这些增强之后,ImageNet预训练不再有益。强大的数据增强使AP提高了2.4个点。


8、YOLOv6

YOLOv6 于2022年9月由美团点评视觉AI部门在ArXiv上发布。该网络设计包括一个高效的主干,采用RepVGG或CSPStackRep块,一个PAN拓扑颈部,以及一个高效的解耦头部,采用混合通道策略。此外,论文介绍了使用后训练量化和通道级蒸馏的增强量化技术,从而实现更快、更准确的检测器。总体而言,YOLOv6在准确性和速度等指标上表现优于以前的最先进模型,如YOLOv5、YOLOX和PP-YOLOE。 图14显示了YOLOv6的详细架构。 该模型的主要创新点如下:

  1. 一种基于RepVGG 的新主干,称为EfficientRep,比以前的YOLO主干具有更高的并行性。对于颈部,他们使用PAN ,通过RepBlocks 或CSPStackRep 块进行增强,对于较大的模型,则采用了YOLOX后的高效解耦头部。

  2. 使用TOOD 中引入的任务对齐学习方法进行标签分配。

  3. 新的分类和回归损失。他们使用了分类的VariFocal损失 和SIoU /GIoU 回归损失。

  4. 回归和分类任务的自蒸馏策略。

  5. 用于检测的量化方案,使用RepOptimizer 和通道级蒸馏 ,有助于实现更快的检测器。 作者提供了八个不同规模的模型,从YOLOv6-N到YOLOv6-L6。在MS COCO数据集test-dev 2017上评估时,最大的模型在NVIDIA Tesla T4上以约29 FPS的速度实现了57.2%的AP

9、YOLOv7

YOLOv7 于2022年7月在ArXiv上发布,由YOLOv4和YOLOR的同一团队的作者发布。当时,它在5 FPS到160 FPS的速度和准确性范围内超越了所有已知的目标检测器。与YOLOv4一样,它仅使用MS COCO数据集进行训练,没有使用预训练的主干网络。YOLOv7提出了一系列架构变化和一系列bag-of-freebies,提高了准确性,而不影响推断速度,只增加了训练时间。

YOLOv7的架构变化包括:

  1. 扩展的高效层聚合网络(E-ELAN):ELAN 是一种策略,允许深度模型通过控制最短的最长梯度路径更有效地学习和收敛。YOLOv7提出的E-ELAN适用于具有无限堆叠计算块的模型。E-ELAN通过混洗和合并基数来增强网络的学习,而不破坏原始梯度路径。

  2. 基于连接的模型的模型缩放:缩放通过调整一些模型属性生成不同大小的模型。YOLOv7的架构是一种基于连接的架构,在该架构中,标准的缩放技术(例如深度缩放)导致过渡层的输入通道和输出通道之间的比率变化,从而减少了模型的硬件使用。YOLOv7提出了一种新的基于连接的模型缩放策略,其中块的深度和宽度以相同的因子进行缩放,以保持模型的最佳结构。

YOLOv7使用的bag-of-freebies包括:

  1. 计划的重参数化卷积:与YOLOv6一样,YOLOv7的架构也受到了重参数化卷积(RepConv)的启发。然而,他们发现在RepConv中的恒等连接破坏了ResNet 中的残差和DenseNet 中的级联。因此,他们去掉了恒等连接,并称之为RepConvN。

  2. 辅助头部的粗标签分配和主头部的细标签分配,主头部负责最终输出,而辅助头部协助训练。

  3. 卷积-bn-激活中的批归一化,这将批归一化的均值和方差整合到推断阶段的卷积层的偏差和权重中。

  4. 受YOLOR 启发的隐式知识。

  5. 指数移动平均作为最终推断模型。

10、YOLOv8

YOLOv8 是由Ultralytics在2023年1月发布的,这是开发YOLOv5的公司。YOLOv8提供了五个不同规模的版本:YOLOv8n(nano)、YOLOv8s(small)、YOLOv8m(medium)、YOLOv8l(large)和YOLOv8x(extra large)。YOLOv8支持多个视觉任务,包括目标检测、分割、姿态估计、跟踪和分类。

YOLOv8的详细架构。YOLOv8使用了与YOLOv5相似的骨干网络,对CSPLayer进行了一些修改,现在称为C2f模块。C2f模块(带有两个卷积的跨阶段部分瓶颈)将高级特征与上下文信息相结合,以提高检测准确性。

YOLOv8采用了一种无锚模型,带有独立处理物体性质、分类和回归任务的解耦头。这种设计允许每个分支专注于其任务,提高了模型的整体准确性。在YOLOv8的输出层中,他们使用了Sigmoid函数作为物体性质得分的激活函数,表示边界框包含对象的概率。它使用Softmax函数进行类别概率的表示,表示对象属于每个可能类别的概率。

YOLOv8使用了CIoU 和DFL 损失函数来计算边界框损失,使用二元交叉熵损失来计算分类损失。这些损失在处理较小的对象时提高了目标检测性能。

YOLOv8还提供了一个名为YOLOv8-Seg的语义分割模型。其骨干网络是CSPDarknet53特征提取器,后面跟着一个C2f模块,而不是传统的YOLO颈部架构。C2f模块后面跟着两个分割头,它们学习为输入图像预测语义分割掩模。 YOLOv8的检测头与YOLOv8类似,包括五个检测模块和一个预测层。YOLOv8-Seg模型在各种目标检测和语义分割基准上取得了最先进的结果,同时保持了高速和高效。

YOLOv8可以从命令行界面(CLI)运行,也可以作为一个PIP包安装。此外,它配备了用于标注、训练和部署的多个集成工具。 在MS COCO数据集test-dev 2017上评估,YOLOv8x在640像素的图像大小下取得了53.9%的AP(而YOLOv5在相同输入大小下为50.7%),在NVIDIA A100和TensorRT上以280 FPS的速度运行。


11、总结与讨论

本文对多个YOLO版本进行了审查,从最初的YOLO模型到最新的YOLO-NAS,我们可以识别出一些关键模式:

  1. 锚点:最初的YOLO模型相对简单,没有使用锚点,而最先进的目标检测器则依赖于带有锚点的两阶段检测器。YOLOv2引入了锚点,提高了边界框预测的准确性。这一趋势持续了五年,直到YOLOX引入了一种无锚点的方法,取得了最先进的结果。此后,后续的YOLO版本都放弃了使用锚点。

  2. 框架:最初,YOLO是使用Darknet框架开发的,随后的版本也效仿而来。然而,当Ultralytics将YOLOv3移植到PyTorch时,其余的YOLO版本都是使用PyTorch开发的,导致了增强的潮流。另一个深度学习语言使用的是百度初始开发的开源框架PaddlePaddle。

  3. 主干网络:YOLO模型的主干网络架构随时间的推移发生了重大变化。从Darknet架构开始,其中包含简单的卷积和最大池化层,后来的模型在YOLOv4中引入了跨阶段局部连接(CSP),在YOLOv6和YOLOv7中引入了重新参数化,以及在DAMO-YOLO和YOLO-NAS中引入了神经架构搜索。

  4. 性能:虽然YOLO模型的性能随着时间的推移而提高,但值得注意的是,它们通常更注重速度和准确性的平衡,而不仅仅是准确性。这种权衡对于YOLO框架至关重要,使其能够在各种应用中实现实时目标检测。


感知
评论0
0/1000