YOLO系列的演进,从v1到v7(二)

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Maxim Ivanov

编译:ronghuaiyang

导读

在上一部分中,我们研究了最古老的三种架构:YOLO,YOLOv2,YOLOv3。今天,我们将处理接下来的六种结构。

c14e8a551118496a92a28b94e0864043.png

YOLOv4, Scaled YOLOv4

作者

Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao

Joseph Redmon 出于道德原因退出了YOLO的进一步发展。

主要论文

“YOLOv4: Optimal Speed and Accuracy of Object Detection”, https://arxiv.org/pdf/2004.10934.pdf, publication date 2020/04

“Scaled-YOLOv4: Scaling Cross Stage Partial Network”, https://arxiv.org/pdf/2011.08036.pdf, publication date 2020/11

代码仓库

  1. https://github.com/AlexeyAB/darknet, 20.4k/19.6k, all-permissive license

  2. https://github.com/Tianxiaomo/pytorch-YOLOv4, 1.4k/4.1k, Apache-2.0 license

  3. https://github.com/WongKinYiu/ScaledYOLOv4, 549/1.9k, GPL-3.0 license

性能比较

77364e7cf53483f45d787ceef5416547.png

YOLOv4和其他最先进的物体检测器的比较。YOLOv4 的运行速度比 EfficientDet 快两倍,性能相当。将 YOLOv3 的 AP 和 FPS 分别提高 10% 和 12%。

结构特点

让我们仔细看看构成 v4 的部分。

Backbone

在 v4 中,比 v3 更强大的 CSPDarknet53 网络作为骨干。CSP意味着跨阶段部分连接的存在 :网络非相邻层之间的一种连接。同时,层数保持不变。SPP 模块已添加到其中。

760ad763d800c7a1fcf3cb209f273b43.png

(a)CSPDarknet53和(b)CSPDarknet53-tiny 的结构

Neck

由一个 PANet 模块组成。代替 FPN,它用于路径聚合,即用于连接(而不是求和)来自不同尺度的激活。

Heads

在这里,概念保持不变,带有锚框。

除了体系结构更改之外,还对学习过程进行了许多改进。

应用SAT( (Self-Adversarial Training))——一种由两个阶段组成的增强方法。在第一阶段,目的是修改图片的状态,当网络认为所需目标不在图上时,将图片修改为这样的状态,而不是去更新参数的权重。在第二阶段,网络用第一阶段更改的图片中的目标进行训练。

增加感受野并使用注意力机制。

许多其他类型的增强和类别平衡。

Backbone改进:

  • 用于训练:CutMix + Mosaic 增强、DropBlock 正则化、类标签平滑

  • 用于推理:Mish激活、跨级部分连接 (CSP)、多输入加权残差连接 (MiWRC)

检测器改进:

  • 用于训练:CIoU-loss,CmNN,DropBlock,Mosaic,SAT,消除网格灵敏度,单个GT的多个锚框,余弦退火学习率策略,最佳超参数,训练期间的随机形状。

  • 用于推理:Mish,SPP块(空间金字塔池),SAM块(空间注意力模块),PAN,DIoU-NMS。

对网络的训练的更新,不会影响 FPS,但会提高准确性。

76515633cc7b5a7096da26e33988e6f5.png

Mosaic代表一种新的数据增强方法

9207afa3fb9ae07b26f34d084fecc9a6.png

应用的不同类型的增强

2db24bdd6278443e232ffffa9bd65977.png

修改版的SAM

41c299e783541b45837c38fa2c84b84f.png

修改版的PAN

Scaled YOLOv4

在 v4 上的第一篇文章发表六个月后,作者发布了另一篇文章,其中他们发布了扩展网络架构的机制。该机制不仅包括缩放输入分辨率、网络宽度和深度,还包括缩放网络结构本身。

c6cad630836edab8c7cd977cb6d9140a.png

YOLOv4和其他最先进的物体检测器的比较。虚线仅表示模型推理的延迟,而实线表示模型推理和后处理。

652bef99766bc6446861e3929517055d.png

YOLOv4-large 的体系结构,包括 YOLOv4-P5、YOLOv4-P6 和 YOLOv4-P7。虚线箭头表示将相应的 CSPUp 块替换为 CSPSPP 块。

优点

  • v4不仅比竞争对手更快,更准确,而且还可以在相对较弱的设备(例如1080Ti)上进行训练。相比之下,EfficientDet 需要在 v3–32 TPU 类型 (v3):32 个 TPU v3 内核,512 GiB 总 TPU 内存上进行训练,以达到可接受的精度。

  • v4内置于OpenCV中,因此可以直接调用而无需darknet。

  • 许可证允许任意使用不受限制。

YOLOv5

作者

Glenn Jocher

由于作者没有参与以前版本的 YOLO 架构的开发,而只是参与实施,因此从道德角度来看,使用名称“YOLOv5”的合法性似乎值得怀疑。互联网上对此进行了不少讨论,但目前这个名字已经确定。

主要论文

在arxiv.org上没有官方的论文。

代码仓库

  1. https://github.com/ultralytics/yolov5, 10.7k/29.8k, GPL-3.0 license

性能比较

41e393831166eb5bc0434010a9c52180.png

结构特点

它是在 v3(不是 v4)上的发展,在 v4 发布近 2 个月后发布。

性能优于 v3,但比 v4 差。

c46bce2c2ea29be22a4c93128db600fa.png

Yolov5的网络架构。它由三部分组成:(1)Backbone:CSPDarknet,(2)Neck:PANet,(3)Head:Yolo层。数据首先输入到CSPDarknet进行特征提取,然后馈送到PANet进行特征融合。最后,Yolo 图层输出检测结果(类、分数、位置、大小)。

增强:缩放、色彩空间调整、马赛克。

在 v5 中,与在 v4 中一样,实现了:

  • CSP bottleneck来进行特征提取

  • PANet用于特征聚合

优点

  • 精心设计的代码库,能够部署到移动和低功耗设备。

  • 训练速度快

缺点

  • 在某些测试上比v4差

  • GPL-3.0 许可证有义务公开源代码

YOLOX

作者

Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun

Megvii Technology, Ltd., China

主要论文

“YOLOX: Exceeding YOLO Series in 2021”, https://arxiv.org/pdf/2107.08430.pdf, publication date 2021/07

代码仓库

https://github.com/Megvii-BaseDetection/YOLOX, 1.7k/7.2k, Apache-2.0 license

性能对比

21339d280b5a2a496112aeadd78893cf.png

精确模型的速度-精度权衡,(左)移动设备上精简模型的尺寸-精度曲线,(右)和其他最先进的物体检测器的比较。

e21d5f8b1d6d1e160aa67ad918e9ecce.png

COCO 2017测试中不同的检测器的速度和精度比较。所有模型都在 300 个 epoch 上进行训练,以便进行公平比较。

结构特点

就像 v5 一样,它不是架构的官方开发。

该模型基于 YOLOv3-Darknet53。

创新:

  • 解耦头:通过拆分分支解决分类和回归问题之间的冲突

e6595e27b70cb2abf1e424d5c754e3e5.png

YOLOv3 head与提出的解耦head之间的区别图示。对于每一级别的FPN特征,我们首先采用1x1的conv层将特征通道减少到256个,然后添加两个平行分支,每个分支有两个3x3的conv层,分别用于分类和回归任务。将IoU 分支添加到回归分支中。
  • 增强:马赛克,混合,随机水平翻转,颜色抖动。

  • 事实证明,ImageNet 上的预训练没有任何优势,因此所有模型都是从头开始训练的。

  • 无anchor检测器。Anchor有自己的问题,例如,需要进行初步聚类分析以确定最佳anchor。Ancor还增加了检测头的复杂性和每个图像的预测数量。摆脱anchor降低了GFLOP并增加了mAP。

  • 多正样本。在没有anchor的情况下,只应从整个图片中选择一个正样本,这可能会导致忽略其他高质量的预测。但是,使用此类预测可以产生有用的梯度,从而减少训练期间正采样和负采样的不平衡。因此,YOLOX 在中心有一个 3x3 区域用于正采样,这也提高了网络的精度。

  • SimOTA,高级标签分配(为每个GT定义正样本和负采样)。用于特殊算法选择样本可加快学习速度。

  • 其他特点:用于更新权重的指数移动平均,余弦学习率策略,回归分支的IoU损失,类分支的BCE损失,SGD优化器。

43faf155376dae480b5b4422ca90dc79.png

YOLOX-Darknet53在COCO验证集上的指标。所有模型均在 640x640 分辨率下进行了测试,在 Tesla V100 上,用FP16 精度和 batch=1 。此表中的延迟和 FPS 是在未进行后处理的情况下测量的。

优点

  • 发布时的检测精度高于竞争对手

  • 发布时的检测率高于竞争对手

  • Apache-2.0开放许可证

PP-YOLOv1/v2/E

作者

来自百度。

主要论文

  1. “PP-YOLO: An Effective and Efficient Implementation of Object Detector”, https://arxiv.org/pdf/2007.12099.pdf, publication date 2020/07

  2. “PP-YOLOv2: A Practical Object Detector”, https://arxiv.org/pdf/2104.10419.pdf, publication date 2021/04

  3. “PP-YOLOE: An evolved version of YOLO”, https://arxiv.org/pdf/2203.16250.pdf, publication date 2022/03

代码仓库

https://github.com/PaddlePaddle/PaddleDetection, 2.1k/8.3k, Apache-2.0 license

该模型是中国公司百度的非官方开发,在其并行分布式深度学习(PADDLE)框架上编写。

性能比较

9109e3a3adb94f59e881bacb8b5bf8fa.png

PP-YOLOE与其他先进型号的比较。PP-YOLOE在COCO测试集中实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,与PP-YOLOv2相比,获得了1.9 AP和9.2 FPS的改进。

结构特点

PP-YOLO

作者没有寻找合适的骨干,也没有进行各种增强,也没有通过NAS优化超参数。

他们没有使用Darknet-53,而是将通常的ResNet50-vd作为骨干,并用可变形的卷积层替换了一些卷积层。对于数据增强,使用了基本的MixUp 。

622d7931bba8be6652a08960253330f2.png

YOLOv3 的网络架构。为简洁起见,省略了激活层。

技巧:

  • 批次从 64 增加到 192,相应地更正了 LR;

  • 网络权重的指数移动平均 (EMA):lambda = 0.9998。

e4035575472482fb61fc860c88317591.png

  • DropBlock 是一种 dropout 变体,其中特征图区域被放在一起丢弃。仅适用于 FPN,因为用于主干会导致性能下降。

  • IoU 损失 — 在 YOLOv3 中有 L1,但这不是 bbox 最有效的损失。作者使用了基本的IoU损失。

  • IoU Aware — 在 YOLOv3 中,对于置信度值,类概率乘以置信度值,这并没有提高定位精度。为了解决这个问题,增加了一个 IoU 预测分支来测量定位精度。当训练 IoU 感知时,损失参与 IoU 预测分支的训练。通过推理,预测的 IoU 乘以类概率和客观性,从而提供更好的定位精度。在这种情况下,计算复杂度实际上不会增加。

  • Grid sensitive

  • Matrix NMS

  • CoordConv — 增加SPP(空间金字塔池)卷积的通道数量

  • 图像网络预训练蒸馏模型

bd1693d876cf7615d6ddf34e8ef455a9.png

PP-YOLOv2

与PP-YOLO相比的变化:

  • FPN被PANet取代

  • Mish激活

  • 增加了输入图像的大小

  • 更改了IoU aware损失:

07f1766a35435ded5e9eb77dd1a0f304.png


0c5011d798958e2a13ab51a027533db7.png

MS-COCO的消融研究。“+”表示结果包括边界框解码时间(1–2ms)

0a1f5977c3c0748d7620ad790757ceee.png

PP-YOLOv2检测Neck的架构。

尝试过但没有工作:

  • 余弦学习率衰减

  • 在再训练期间冻结Backbone权重会降低 mAP

PP-YOLOE

改进:

  • 无anchor

  • CSPRepResNet骨干网络

  • 任务分配学习:一种用于高效选择批次样本的算法

  • 高效的任务对齐头部(ET-head),一种解耦head损失的替代方案。VFL = vari focal loss,DFL = distribution focal loss

f923f8e4d9af184809ff8d7fde87972a.png

f5503de3a8bc4829c1845db4e6e15ed1.png

PP-YOLOE在COCO val上的消融研究.作者使用640x640分辨率作为FP32精度的输入,并在Tesla V100上进行了测试,没有需后处理。

4d2bc5d715b87f60583ab1a8cae96bc7.png

PP-YOLOE的模型架构。骨干是CSPRepResNet,Neck是路径聚合网络(PAN),Head是高效任务对齐头(ET-head)。

优点

  • 在TensorRT上部署的能力

  • 性能好

  • Apache-2.0开放许可证

缺点

  • 非标准框架

  • 需要大量的显卡(PP-YOLO:8x V100 GPU)

在下一部分中,我们将考虑 YOLOR、YOLOv6,最后是 YOLOv7。

74cbc4f9ae47908bb135f673ea7a51d7.png

—END—

英文原文:https://medium.com/deelvin-machine-learning/the-evolution-of-the-yolo-neural-networks-family-from-v1-to-v7-96d0687b4dce

e92f6f2363e134db60e4372cdf5c935d.jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实际上,目前为止还没有YOLOv7版本,因此我将从v1介绍到当前较新的版本v5和v7,列出YOLO系列的优缺点: YOLOv1: 优点: 1.速度快,可以实现实时目标检测。 2.单阶段检测,避免了复杂的区域建议过程,使得算法更加简单和高效。 3.较好的检测结果,尤其在大物体检测方面表现优秀。 缺点: 1.对小目标检测不够好,容易造成误检或漏检。 2.对物体形状变化和旋转不够敏感。 3.对密集目标检测不太好,容易造成重叠检测或遗漏检测。 YOLOv2: 优点: 1.速度更快,比YOLOv1快了2倍以上。 2.检测效果更好,尤其在小物体检测方面表现优秀。 3.引入Batch Normalization和Anchor Boxes等机制,提高了算法的稳定性和精度。 缺点: 1.对密集目标检测不太好,容易造成重叠检测或遗漏检测。 2.对物体形状变化和旋转不够敏感。 3.不支持多尺度输入,不能适应不同大小的物体检测。 YOLOv3: 优点: 1.速度更快,比YOLOv2快了3倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入FPN和Feature Pyramid Pooling等机制,提高了算法的多尺度检测能力和检测精度。 4.支持多尺度输入,适应不同大小的物体检测。 缺点: 1.对物体形状变化和旋转不够敏感。 2.对小目标检测表现一般。 YOLOv4: 优点: 1.速度更快,比YOLOv3快了2倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入CSP Bottleneck和SPP等机制,提高了算法的特征提取和多尺度检测能力。 4.支持多尺度训练和测试,适应不同大小的物体检测。 缺点: 1.需要更高的硬件配置和更长的训练时间。 2.对物体形状变化和旋转不够敏感。 3.对小目标检测表现一般。 YOLOv5: 优点: 1.速度更快,比YOLOv4快了2倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入PANet和CSPNet等机制,提高了算法的多尺度检测能力和检测精度。 4.支持多尺度训练和测试,适应不同大小的物体检测。 5.引入了自适应BN和精度模式等机制,提高了算法的稳定性和可靠性。 缺点: 1.需要更高的硬件配置和更长的训练时间。 2.对物体形状变化和旋转不够敏感。 3.对小目标检测表现一般。 YOLOv7: 优点: 1.在YOLOv5的基础上进一步提高了检测精度和速度。 2.引入了更多的机制和算法,如Attention机制和SAM模块等。 3.新的训练策略和数据增强方法,提高了算法的稳定性和泛化能力。 缺点: 1.目前还没有公开发布,具体优缺点还需要等待后续的研究和实验结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值