YOLO系列文章阅读--yolox

Introduction

大概讲了一下,YOLO系列发展。提取当时可用的最先进的检测技术(例如,针对YOLOv2的锚anchor,针对YOLOv3的Residual-NET)进行优化,来达到一个好的效果。在过去两年中,目标检测学术界的主要进展集中在无锚检测器、高级标签分配策略和端到端(无nms)检测器。
但是哈,yolo最新系列目前都是anchor-based,所以这里考虑使用一下anchor-free,考虑到YOLOv4和YOLOv5对于基于锚的pipeline可能有点过度优化,我们选择YOLOv3作为我们的起点(我们将YOLOv3- spp设置为默认YOLOv3)。
看一下部分使用,当切换到先进的YOLOv5架构(采用先进的CSPNet骨干和并且带上PAN头)时,YOLOX-L在640 × 640分辨率的COCO上获得了50.0%的AP,比对应的YOLOv5- l高出1.8%的AP。

YOLOX-DarkNet53

YOLOX选择YOLOv3和Darknet53作为基础。

Decoupled head

YOLO系列文章阅读--yolox_第1张图片
在目标检测中,分类和回归任务之间的冲突是一个众所周知的问题。因此,用于分类和定位的解耦头在一级和二级探测器中得到了广泛的应用。然而,作为YOLO系列的主干和特征金字塔(如FPN [13],PAN[20].)不断演化,其探测头仍然保持耦合。
我们的两个分析实验表明,耦合探测头可能会降低性能。1)取代YOLO原来的head,采用解耦的YOLO头大大提高了收敛速度。如下图。
YOLO系列文章阅读--yolox_第2张图片
2).解耦头是端到端YOLO版本的关键。从下表可以看出,端到端特性在耦合头下降低4.2% AP,而在解耦头下下降到0.8% AP。因此,我们将YOLO探测头替换为上上图所示的轻解耦头。(具体来说,它包含一个1 × 1的卷积层,以降低信道的尺寸,然后是两个并行分支,分别有两个3 × 3的卷积层。)
YOLO系列文章阅读--yolox_第3张图片

Anchor-free

YOLOv4和YOLOv5都是遵循YOLOv3的原有的anchor-base方式。然而anchor机制存在许多已知的问题。

  • 首先,为了达到最优的检测性能,需要在训练前进行聚类分析,确定一组最优的锚点。(因此这样聚类分析出来的anchor是特定的,不够一般化)
  • 其次,锚定机制增加了检测头的复杂性,增加了每幅图像的预测次数。(在一些边缘AI系统上,在设备之间进行如此大量的预测(例如,从NPU到CPU)可能会成为整体延迟的潜在瓶颈。)

无锚探测器[29,40,14]在过去两年中发展迅速。这些工作表明,无锚探测器的性能可以与基于锚的探测器相当。无锚机制显著减少了需要启发式调优(就是预先处理之类的)的设计参数的数量和涉及到的许多技巧(如锚聚类),以获得良好的性能,使检测器,特别是训练和解码阶段大大简化。

YOLO无锚化

我们将每个位置的预测从3个减少到1个,使其直接预测4个值,即网格左上角的两个偏移量,预测框的高度和宽度。 指定每个物体的中心坐标作为正样本,并且预先定义一个缩放范围,像文章【19】(好好看看这个论文)做的那样,为每个对象指定FPN级别。这样的修改降低了检测器的参数和GFLOPs,使其速度更快,但获得了更好的性能- -42.9%的AP,如下表。
YOLO系列文章阅读--yolox_第4张图片

Multi positives

为了和YOLOv3的分配规则一致,上述anchor-free版本只为每个对象选择一个正样本,同时忽略了其他高质量的预测。 ps:(所以这就有提高的地方),然而,优化这些高质量的预测也可能带来有益的梯度,这可能缓解训练过程中正/负采样的极端不平衡。我们简单地将中心3×3区域指定为正样本,在FCOS[29]中也称为“中心采样”。检测器的性能提高到45.0% AP,如上表所示,已经超过了目前的最佳实验ultralytics- yolov3 (44.3% AP)

你可能感兴趣的:(目标检测,深度学习,计算机视觉)