我报名参与金石方案1期挑战——分割10万奖池,这是我的第 1 篇文章,点击查看活动概况

欢迎关注我的大众号 [极智视界],获取我的更多笔记共享

  大家好,我是极智视界,本文解读一下 方针检测神器 YOLOX

  在文本中,作者介绍了 YOLO 系列的一些经历改善,形成了一个新的高功能检测器 – YOLOX。作者将 YOLO 检测器切换为 anchor-free 的方式,并结合其他先进的检测技术:一个解耦头 和 leading label分配战略 SimOTA,以完成 state-of-the-art 的成果:关于只要 0.91M 参数和 1.08G FLOPs 的 YOLO-Nano,在 COCO 上取得了 25.3% 的 AP,超过了 NanoDet 1.8% 的 AP;YOLOv3 是工业中运用最广泛的检测器之一,作者在 COCO 上将其精度进步到 47.3%,比目前的最佳实践高出 3.0%;关于与 YOLOv4-CSP、YOLOv5-L 参数大致相同的 YOLOX-L,作者在 Tesla V100 上以 FPS 68.9 的速度在 COCO 上完成了 50.0% 的 AP,这比 YOLOv5-L 高出 1.8%。此外作者运用一个 single YOLO-L 模型赢得了 Streaming Perception Challenge 竞赛的第一名 (CVPR 2021年自动驾驶研讨会)。作者期望论文可认为开发人员和研究人员在实践场景中供给有用的经历,一起作者也供给了支撑 ONNX、TensorRT、NCNN 和 Openvino 的布置版别。源码在:github.com/Megvii-Base…

1. 简介

  随着方针检测的发展,YOLO系列一直在追求实时运用中速度精度的最佳权衡,他们 (指 YOLO系列) 提取了当时最先进的检测技术 (YOLOv2 中的 anchors,YOLOv3 中的 残差网络),并优化完成以取得最佳实践。目前,YOLOv5 在 COCO 上以 AP 48.2% 和 13.7ms 的速度保持最佳折中功能。

  但是,在曩昔两年中,方针检测学术界的主要发展会集在 anchor-free 的检测器、高档标签分配战略 和 end-to-end (NMS-free) 的检测器。这些还没有被集成到 YOLO 宗族中,由于 YOLOv4 和 YOLOv5 仍然是基于手工制造练习分配规矩的 anchor-based 的检测器。

  这也是作者为什么写这篇报告的原因,作者想经过经历丰富的优化,将这些最新的发展交付给 YOLO 系列。考虑到 YOLOv4 和 YOLOv5 关于 anchor-based pipeline 或许有些过度优化,作者挑选 YOLOv3 作为起始点 (将 YOLOv3-SPP 看做默许 YOLOv3)。事实上,由于核算资源有限以及在各种实践运用中也没有足够的软件支撑,YOLOv3 仍然是业界运用最广泛的检测器之一。

  如下图,经过上述技术的经历更新,作者将在 COCO 上 640×640 分辨率时,将 YOLOv3 进步到了 AP 47.3%,大大超过了目前最好的 YOLOv3 完成 (44.3% AP)。别的,当切换到先进的 YOLOv5 架构,选用先进的 CSPNet backbone 和 额外的 PAN head,YOLOX-L 在 COCO 上以 640×640 的分辨率完成了 50.0% 的 AP,这比对应的 YOLOv5-L 高出 1.8%。作者也将他们的规划战略运用于愈加小尺寸的模型上。YOLOX-Tiny 和 YOLOX-Nano (只要0.91M参数 和 1.08G FLOPs) 别离比对应的 YOLOv4-Tiny 和 NanoDet 功能好 (AP值) 10% 和 1.8%。

极智Paper | 目标检测神器 YOLOX

2. 办法

2.1 YOLOX-DarkNet53

  作者挑选了 YOLOv3 和 Darknet53 作为 baseline。接下来将逐步介绍 YOLOX 的整个体系规划。

Implementation details 从 baseline 到终究的模型,作者的练习设置基本一致。在 COCO train2017 上对模型进行了一共 5个 epoch 的 warm-up 及 300 个 epoch,运用随机梯度下降 (SGD) 进行练习,运用 lr x batchsize/64 (线性缩放) 的学习率、initial lr 为 0.01 以及 cosine lr 调度。weight decay 为 0.0005、SGD momentum 为 0.9。关于 8-GPU 的设备,batch size 设置为 128,关于 单卡GPU,其他 batch size 依旧能够 work 地非常好。输入巨细以 32 的步长,均匀地从 448 改变到 832。论文里的 FPS 和 延时 均是在 FP16精度、batch=1 的状况下在 单卡 Tesla V100 上测得的。

YOLOv3 baseline 作者规划的 baseline 参阅了一些论文中的 YOLOv3-SPP,选用 Darknet53 backbone 和一个 SPP 层。与原始实践比较,作者略微改变了一些练习战略,添加了 EMA 权重更新、cosine lr 调度、IoU损失和 IoU感知分支。运用 BCE loss 来练习 cls 和 obj 分支,运用 IoU loss 来练习 reg 分支。此外,只进行 RandomHorizontalFlip、ColorJitter 和 多标准数据增强,而放弃 RandomResizedCrop 战略,由于 RandomResizedCrop 与 规划的mosaic数据增强 有一些堆叠。经过这些数据增强办法,baseline 在 COCO 验证集上到达了 38.5% 的 AP,如下表:

极智Paper | 目标检测神器 YOLOX

Decoupled head 在方针检测中,分类使命和回归使命之间的冲突是一个众所周知的问题。因此,用于分类和定位的解耦头被广泛运用于大多数 one-stage 和 two-stage 检测器中。但是,尽管 YOLO 系列的 backbone 和 特征金字塔 在不断演化,它们的检测头仍然是耦合的,如下图所示:

极智Paper | 目标检测神器 YOLOX

  作者的两个剖析试验表明,耦合的检测头或许会损害功能。(1) 如下图,将 YOLO 的头部替换为解耦头,能够大大进步收敛速度; (2) 解耦头关于端到端版别的 YOLO 至关重要,end-to-end YOLO 耦合头的 AP 降低了 4.2%,而 end-to-end YOLO 解耦头的 AP 只下降了 0.8%。作者将 YOLO 检测头替换为上图的简化解耦头。具体来说,它包含了一个 1×1 conv层以降低通道维度,其次是两个并行的分支,别离有两个 3×3 conv层。

极智Paper | 目标检测神器 YOLOX

Strong data augmentation 将 Mosaic 和 MixUp 加入到数据增强战略中,以进步 YOLOX 的功能。Mosaic 是 ultralytics-YOLOv3 提出的一种高效的数据增强战略,随后被广泛运用于 YOLOv4、YOLOv5 等检测器中。MixUp 开始用于图画分类使命,后来在 BoF 中进行了修正,用于方针检测练习。在 YOLOv7 中选用 MixUp 和 Mosaic 来完成,并在最终 15 个 epoch 封闭它,这样做完成了 42.0% 的 AP。在运用数据添加后,作者发现 ImageNet 的预练习并没有更多的好处,因此一切的模型都从零开始练习。

Anchor-free YOLOv4 和 YOLOv5 都遵从 YOLOv3 开始的 anchor-based pipeline。但是,anchor 机制存在许多已知的问题。首要,为了到达最优的检测功能,需求在练习前进行聚类剖析以确定一组最优的 anchors。这些聚类生成的 anchors 是特定于领域的,不太通用。其次,anchor 机制添加了检测头的复杂性,添加了每张图片的猜测次数。在一些边缘 AI 体系中,在设备之间传输如此大量的猜测 (如 从 NPU 到 CPU) 或许会成为整体推迟方面的潜在瓶颈。

  Anchor-free 检测器在曩昔两年中发展迅速,这些工作表明,anchor-free 检测器的功能能够与 anchor-based 的检测器相媲美。anchor-free 机制大大削减了需求启示式优化的规划参数的数量 和 许多涉及到良好功能的技巧,使检测器的练习和解码阶段大大简化。

  将 YOLO 转换为 anchor-free 的方式非常简略,只需求将每个方位的猜测从 3 削减到 1,直接猜测 4 个值,即 grid 左上角的两个偏移量 以及 猜测框的高度和宽度。作者将每个方针的中心方位指定为 正样本,并预先定义一个份额范围,以指定每个方针的 FPN 级别。这种修正削减了检测器的 参数 和 GFLOPs,速度愈加速,且取得了愈加好的功能:AP 42.9%。

Multi positives 为了与 YOLOv3 的赋值规矩保持一致,以上的 anchor-free 版别对每个方针只挑选一个正样本 (中心方位),一起疏忽了其他高质量的猜测。 但是,优化这些高质量的猜测也或许带来有益的梯度,这或许会缓解练习中 正/负抽样 极点不平衡的问题。作者简略地指定中心 3×3 区域为正样本,在 FCOS 中也称为 “中心抽样”。

SimOTA 高档标签分配是近年来方针检测的又一重要发展。基于作者自己的研究,总结了四个高档标签分配的关键见地:(1) loss / quality aware;(2) center prior;(3) 每个 ground-truth 的正 anchor 的动态数量 (缩写为 dynamic top-k);(4) global view。OTA 满足上述 4 条规矩,因此挑选它作为候选标签分配战略。

  具体来说,OTA 从全局的角度剖析标签分配,将分配进程制定为一个最优传输问题 (OT),产生了目前分配战略中的 SOTA 功能。但是,在实践中作者发现运用 Sinkhorn-Knopp 算法求解 OT 问题会添加 25% 的练习时刻,这关于 300 个 epoch 的练习来说是适当贵重的。因此,作者将其简化为动态 top-k 战略,命名为 SimOTA,以得到近似解。

  简略介绍一下 SimOTA,SimOTA 首要核算 成对匹配程度,用每个 prediction-gt对 的本钱或质量表示。例如,在 SimOTA 中,gt gi 与 猜测pj 之间的价值核算为:

极智Paper | 目标检测神器 YOLOX

  SimOTA 不只削减了 Sinkhorn-Knopp 算法的练习时刻,并且避免了额外的解算器超参数。运用 SimOTA 将检测器的 AP 从 45.0% 进步到 47.3%,比 SOTA ultralytics-YOLOv3 还进步了 3.0%,这显现了高档分配战略的威力。

End-to-end YOLO 作者遵从添加两个额外的 conv 层,1对1的标签分配,并停止梯度。这使得检测器能够履行 end-to-end 方式,但略微降低了功能和推理速度。

2.2 Other Backbones

  除了 DarkNet53 外,作者还在其他不同巨细的 backbone 上测试 YOLOX,其间 YOLOX 一切对应部分完成了一致的改善。

Modified CSPNet in YOLOv5 为了进行公正的比较,作者选用了原生的 YOLOv5 的 backbone,包含修正的 CSPNet、SiLU 激活 以及 PAN头,并遵从它的缩放规矩去生成 YOLOX-S、YOLOX-M、YOLOX-L 和 YOLOX-X 模型。与下表中的 YOLOv5 比较,本文的模型取得了 ~3.0% 到 ~1.0% AP 的进步,一起只添加一点点时刻 (来自 解耦头)。

极智Paper | 目标检测神器 YOLOX

Tiny and Nano detectors 作者进一步缩小模型为 YOLOX-Tiny,以便与 YOLOv4-Tiny 进行比较。关于移动设备,选用深度卷积的办法构建了一个只要 0.91M参数 和 1.08G FLOPs 的 YOLOX-Nano 模型。如下表所示,YOLOX 在模型尺寸更小的状况下也比同类模型表现愈加好。

极智Paper | 目标检测神器 YOLOX

Model size and data augmentation 在试验中,一切的模型都保持了简直相同的 学习调度战略 和 优化参数。但是,作者发现合适的增强战略 在不同规划的模型中有所不同。如下表所示,关于 YOLOX-L,运用 MixUp 能够进步 0.9% 的 AP,但关于 YOLOX-Nano 这样的小模型,数据增强的效果却是减弱的。这样的改善使 YOLOX-Nano 的 AP 从 24.0% 进步到 25.3%。

极智Paper | 目标检测神器 YOLOX

  关于大模型,作者还发现数据增强效果愈加有协助。事实上,作者的 MixUp 完成比原版的更重。受到 Copypaste 的启示,在混合它们之前,经过随机抽样的份额因子对两个图画进行颤动。为了了解 MixUp 和 缩放颤动的能力,作者将其与 YOLOX-L 上的 Copypaste 进行比较。需求留意的是,Copypaste 需求额外的实例掩码注释,而 MixUp 则不需求。如上表,这两种办法的功能不相上下,这表明当没有 实例掩码注释 可用时,带缩放颤动的 MixUp 是对 Copypaste 的合格替代。

3. 试验

  在 COCO 2017 测试集上对不同方针检测器的速度和精度进行了比较:

极智Paper | 目标检测神器 YOLOX

4. 参阅

  [1] YOLOX: Exceeding YOLO Series in 2021.


  好了,以上解读了 方针检测神器 YOLOX。期望我的共享能对你的学习有一点协助。


 【大众号传送】

《极智Paper | 方针检测神器 YOLOX》


极智Paper | 目标检测神器 YOLOX