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

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


作者:Maxim Ivanov

编译:ronghuaiyang

导读

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

YOLO系列的演进,从v1到v7(二)_第1张图片

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

性能比较

YOLO系列的演进,从v1到v7(二)_第2张图片

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

结构特点

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

Backbone

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

YOLO系列的演进,从v1到v7(二)_第3张图片

(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,但会提高准确性。

YOLO系列的演进,从v1到v7(二)_第4张图片

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

YOLO系列的演进,从v1到v7(二)_第5张图片

应用的不同类型的增强

YOLO系列的演进,从v1到v7(二)_第6张图片

修改版的SAM

YOLO系列的演进,从v1到v7(二)_第7张图片

修改版的PAN

Scaled YOLOv4

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

YOLO系列的演进,从v1到v7(二)_第8张图片

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

YOLO系列的演进,从v1到v7(二)_第9张图片

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

性能比较

YOLO系列的演进,从v1到v7(二)_第10张图片

结构特点

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

性能优于 v3,但比 v4 差。

YOLO系列的演进,从v1到v7(二)_第11张图片

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

性能对比

YOLO系列的演进,从v1到v7(二)_第12张图片

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

YOLO系列的演进,从v1到v7(二)_第13张图片

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

结构特点

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

该模型基于 YOLOv3-Darknet53。

创新:

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

YOLO系列的演进,从v1到v7(二)_第14张图片

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优化器。

YOLO系列的演进,从v1到v7(二)_第15张图片

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)框架上编写。

性能比较

YOLO系列的演进,从v1到v7(二)_第16张图片

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 。

YOLO系列的演进,从v1到v7(二)_第17张图片

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(空间金字塔池)卷积的通道数量

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

YOLO系列的演进,从v1到v7(二)_第18张图片

PP-YOLOv2

与PP-YOLO相比的变化:

  • FPN被PANet取代

  • Mish激活

  • 增加了输入图像的大小

  • 更改了IoU aware损失:

07f1766a35435ded5e9eb77dd1a0f304.png


YOLO系列的演进,从v1到v7(二)_第19张图片

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

YOLO系列的演进,从v1到v7(二)_第20张图片

PP-YOLOv2检测Neck的架构。

尝试过但没有工作:

  • 余弦学习率衰减

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

PP-YOLOE

改进:

  • 无anchor

  • CSPRepResNet骨干网络

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

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

f923f8e4d9af184809ff8d7fde87972a.png

YOLO系列的演进,从v1到v7(二)_第21张图片

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

YOLO系列的演进,从v1到v7(二)_第22张图片

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

YOLO系列的演进,从v1到v7(二)_第23张图片

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

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

你可能感兴趣的:(YOLO,深度学习,人工智能,计算机视觉,神经网络)