YOLOX: Exceeding YOLO Series in 2021论文阅读

paper:https://arxiv.org/pdf/2107.08430.pdf
code:https://github.com/Megvii-BaseDetection/YOLOX

YOLOv3 baseline

在DarkNet53+SPP的结构基础上(YOLOv3+SPP):

调整训练策略

  • EMA
  • 余弦退火
  • IoU loss
  • IoU-aware分支
  • cls和obj使用BCE loss

数据增强

  • RandomHorizontalFlip
  • ColorJitter
  • multi-scale

Improvement

Decouple Head

将检测头的分类与定位解耦,分开。
解耦结构对比图如图2所示。
在这里插入图片描述

  1. 提升收敛速度,如图3所示
    在这里插入图片描述

  2. 解耦对于end-to-end YOLO是有必要的,如表1所示
    在这里插入图片描述
    使用两个并行的3x3的conv分支,在V100上,batchsnze=1:
    解耦的检测头会带来1.1m解的额外推理耗时 (11.6 ms vs 10.5 ms)

在这里插入图片描述

Strong data augmentation

  • Mosaic
  • Mixup
    在训练的最后15个epoch关闭mosaic和mixup;
    且由于使用的更强的数据增强,所有模型都从头开始训练;

Anchor-free

  1. anchor-based方法的问题
    • anchor-based方法是domain-specific的,泛化性更差
    • anchor机制会增加检测头的计算量
  2. 添加anchor-free
    • 将每个location的预测从3减少到1,直接预测四个值(左上角-宽高)
    • 与FCOS一样,选择目标中心的一个范围的区域为正样本
    • 按照FPN尺度分类样本

这些改进减少了参数和GFLOPs,提高了检测器的速度,且拥有更高的精度,如表2所示

Multi positive

为了和YOLOv3保持标签分配的规则一致,上述的anchor-free改进,每个目标仅仅选择了一个正样本;

和FCOS的center sample一样,选取目标中心点的一个范围作为正样本,3x3的范围,实现了更好的精度,如表2

SimOTA

OTA

  1. loss/quality aware
  2. center prior
  3. 为每个GT选择动态数量的anchors(动态的top k)
  4. global view

OTA虽然效果很好,但是使用Sinkhorn-Knopp算法会带来25%额外的训练时间,所以作者提出SimOTA,SimOTA就是OTA的简化版,动态的选择top k策略,得到一个近似解;

SimOTA不仅减少了训练时间,而且避免了OTA中Sinkhorn-Knopp算法额外的超参数;
结果如表2所示

End-to-End YOLO

按照PSS的做法,添加了两个额外的卷积层,one-label-one 标签分配,stop gradient;
由于降低了模型的精度,所以End-to-End YOLO是作为一个可选择的选项;

Other Backbones

YOLOv5

采用了YOLOv5的backbone,激活函数,和neck,相同的模型缩放规则,得到了YOLOX-S,YOLOX-M,YOLOX-L,YOLOX-X模型
在这里插入图片描述

Tiny/Nano 检测器

YOLOX的模型size更小精度更高
在这里插入图片描述

Model size和data augmentation

  • 较小的模型使用更弱的数据增强
  • 较大的模型使用更强的数据增强

在这里插入图片描述

SOTA比较

在这里插入图片描述

版权声明:本文为CSDN博主「Laughing-q」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Q1u1NG/article/details/118939590

Laughing-q

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

实战深度学习目标检测:RCNN (1)

深度学习目标检测:RCNN 什么是目标检测?目标检测主要是明确从图中看到了什么物体?他们在什么位置。传统的目标检测方法一般分为三个阶段:首先在给定的图像上选择一些候选的区域&#xff0c

二维目标检测sota---TOOD任务对齐的一阶目标检测算法

代码链接 paper链接 个人博客 问题 本文首先提出了一个目前一阶目标检测器存在的普遍问题就是在head部分将分类和定位这两个任务并行的来做了。这样的话就存在两个任务之间不对齐的问题。因为两个任务是的目标不一样。分类任务更加关注目标的