YOLOX: Exceeding YOLO Series in 2021 论文阅读笔记

这是一篇由旷视科技提出的2021超越YOLO系列的论文:YOLOX

出处:CVPR 2021

摘要

文章介绍了 YOLO 系列的一些经验改进,形成了一个新的高性能探测器——YOLOX:

  1. anchor-free(无anchor)
  2. decoupled head(解耦头)
  3. label assignment strategy SimOTA(标签分配策略,基于作者的另一篇论文:Zheng Ge, Songtao Liu, Zeming Li, Osamu Yoshie, and Jian Sun. Ota: Optimal transport assignment for object detection.In CVPR, 2021.)

速度、参数量和检测效果:

  1. YOLOX-Tiny和YOLOX-Nano(只有0.91M参数量和1.08G FLOPs)比对应的YOLOv4-Tiny和NanoDet3分别高出10% AP和1.8% AP;
  2. 将工业界常用的YOLOV3在COCO上的AP提升至 47.3%,表现优于将当前最佳,提高了 3.0% AP;
  3. YOLOX-L和YOLOv4-CSP、YOLOv5-L有差不多参数量的情况下,YOLOX-L在COCO上取得50.0%AP(比YOLOv5-L高出1.8%的AP),且YOLOX-L在单张Tesla V100上能达到68.9FPS。

一、介绍

随着目标检测的发展,YOLO系列方法一直在实时性应用中追求速度和准确性的平衡。例如将anchors应用到YOLOv2中,将Residual Net 应用到YOLOv3中,现在YOLOv5取得了最好的平衡性能,在COCO上以13.7 ms 达到了48.2% AP 。

近两年在目标检测领域的发展主要集中在:

  1. anchor-free detectors(如18年的Cornernet,19年的Fcos和Objects as points)
  2. label assignment strategies
  3. end-to-end(NMS-free) detectors

上述的这些方法并没有整合到YOLO家族中,较新的YOLOV4和V5仍然是基于anchor的检测器和手工分配的训练规则。 所以,作者有了这篇文章的想法,并以YOLOV3为baseline开展改进。

二、YOLOX

2.1 Implementation details

Epoch:300 epochs with 5 epochs warmup
数据集:COCO train2017
weight decay :0.0005
SGD momentum :0.9.SGD
learning rate = lr×BatchSize/64 ,initial lr =0.01,cosine lr schedule(余弦退火调整学习率

2.2 YOLOv3 baseline

DarkNet53 backbone + SPP layer
EMA weights updating (指数移动平均,对模型的参数做平均,以求提高测试指标并增加模型鲁棒性)
cosine lr schedule (余弦退火调整学习率)
IoU loss and IoU-aware branch
cls和obj使用BCE loss,位置回归使用IoU loss
数据增强:mosaic、RandomHorizontalFlip、ColorJitter和多尺度。(作者发现RandomResizedCrop和mosaic有冲突,所以丢弃了RandomResizedCrop)

2.3 Decoupled head

  1. 耦合检测头会损失性能
  2. 解耦头对于 YOLO 的端到端版本至关重要

2.4 Strong data augmentation

数据增强方面作者采用了:

  1. Mosaic
    (由ultralytics-YOLOv3提出https://github.com/ultralytics/yolov3)
  2. MixUp
    (出自:Bag of freebies for training object detection neural networks,这篇论文也很不错)

并在最后15个epoch结束这种增强,达到了42%的AP。同时,作者发现在使用了强数据增强后,使用ImageNet的预训练并没有更多的好处,所以训练所有的模型都是从头开始。

2.5 Anchor-free

YOLOV3~V5都是基于Anchor的,但是anchor机制存在一些显而易见的问题:

  1. 为了达到最优的检测性能,需要在训练前进行聚类分析,确定一组最优的锚点。那些聚集的锚点是特定领域的,不具一般性;
  2. anchor机制增加了检测头的复杂性,以及每幅图像的预测数量。

近年来,基于Anchor-free的检测器性能已经可以和anchor-based的检测器性能相当。将YOLO切换为Anchor-free的方式非常简单,将每个位置的预测从3个减少到1个,让它们直接预测4个值,即网格左上角的两个偏移量,以及预测框的高度和宽度,性能提升了0.9AP%。

2.6 Multi positives

为了与YOLOv3的赋值规则一致,上述的Anchor-free版本对每个对象只选择一个正样本(中心位置),同时忽略其他高质量的预测。然而,优化这些高质量的预测也可能带来有益的梯度,这可能会缓解训练中正/负样本的极端不平衡。文章简单地将中心点3×3区域指定为正样本,在FCOS中也称为“中心抽样”。该检测器的AP性能提高到45.0%,已经超过了目前的ultralytic - yolov3最佳(44.3% AP)。

2.7 SimOTA

高级标签分配是近年来目标检测的又一重要进展。基于作者自己的OTA研究,总结出了关于高级标签分配的四个关键:

  1. loss/quality aware
  2. center prior
  3. 每个ground-truth的positive anchors的动态数量
  4. 全局视图

OTA满足上述四个规则,因此我们选择它作为候选标签分配策略。具体来说,OTA从全局角度分析标签分配,并将分配过程表述为最优运输(OT)问题,在当前分配策略中达到了SOTA。但是在实践中发现,通过Sinkhorn-Knopp算法解决OT问题会带来25%的额外训练时间,对于训练300个epoch来说是相当昂贵的。因此将其简化为动态top-k策略,命名为SimOTA,以得到近似解。

什么是SimOTA?
SimOTA首先计算成对匹配度,表示为每个 prediction-gt对的成本或质量。例如,在SimOTA中,gt和prediction之间的成本计算如下:

其中λ为平衡系数,在gt和prediction之间存在分类损失和回归损失。对于gt,我们选择在固定中心区域内代价最小的top k预测作为正样本。最后,将这些正预测对应的栅格赋为正,其余栅格赋为负。

SimOTA算法不仅减少了训练时间,而且避免了SinkhornKnopp算法中额外的求解器超参数。同时,SimOTA将检测器AP从45.0%提高到47.3%,比SOTA ultralytic - yolov3提高了3.0% AP,显示了高级分配策略的威力。

2.8 End-to-end YOLO

添加两个额外的卷积层,一对一标签分配和停止梯度,这使得检测器能够以端到端方式执行,但略微降低了性能和推断速度。因此,将它作为一个可选模块,不涉及最终模型。

三、other backbone

3.1 Modified CSPNet in YOLOv5

3.2 Tiny and Nano detectors

3.3 data augmentation

对于大的模型,发现更强的数据增强更有帮助。受Copypaste的启发,在混合它们之前通过随机采样比例因子对两个图像进行抖动。为了理解Mixup与scale jittering的效果,我们将其与YOLOX-L上的Copypaste进行比较。注意,Copypaste需要额外的实例掩码注释,而MixUp则不需要。但如表5所示,这两种方法取得了相当的性能,这表明当没有实例掩码注释可用时,具有规模抖动的MixUp是copypastequalified的替代品。

四、Comparison with the SOTA

五、总结

整篇文章介绍了YOLO系列一些有经验性的更新,形成了一个高性能的检测器YOLOX,并配备了一些最新的先进检测技术,即解耦头无锚高级标签分配策略,YOLOX在速度和精度之间实现了比其他所有模型尺寸更好的权衡。

YOLOX: Exceeding YOLO Series in 2021 论文阅读笔记相关推荐

  1. 《YOLOX: Exceeding YOLO Series in 2021》阅读

    文章下载: YOLOX-Exceeding YOLO Series in 2021.pdf 摘要 本篇文章中,我们展示了在 YOLO 系列检测器上的改进,并获得了一个高性能的目标检测器 -- YOLO ...

  2. 【论文阅读】YOLO-X:Exceeding YOLO Series in 2021

    题目: YOLOX: Exceeding YOLO Series in 2021 作者: Zheng Ge Songtao Liu Feng Wang Zeming Li Jian Sun motiv ...

  3. YOLOX: Exceeding YOLO Series in 2021 --- Study Notes

    1 介绍 YOLOX是目前 Paper and Codes – Real-Time Detection Models排名第一的模型,boxAP = 51.2: 论文链接:YOLOX: Exceedin ...

  4. 【论文解读】​YOLOX: Exceeding YOLO Series in 2021

    导读 旷视团队对YOLO系列的再一次超越. 论文链接:https://arxiv.org/abs/2107.08430 1. YOLOX 1.1 YOLOX-DarkNet53 YOLOv3 base ...

  5. Anchor-Free系列之YOLOX:Exceeding YOLO Series in 2021

    Yolo系列目标检测算法知识点总结_程大海的博客-CSDN博客_yolo系列目标检测算法 Anchor-Free系列之CenterNet:Objects as Points_程大海的博客-CSDN博客 ...

  6. GRAIL Efficient Time Series Representation Learning论文阅读笔记(三)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  7. GRAIL Efficient Time Series Representation Learning论文阅读笔记(二)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  8. GRAIL Efficient Time Series Representation Learning论文阅读笔记(一)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  9. 论文阅读笔记 | 目标检测算法——YOLOX

    如有错误,恳请指出. 文章目录 1. Introduction 2. YOLOX 2.1 YOLOv3 baseline 2.2 Decoupled head 2.3 Strong data augm ...

  10. [论文阅读笔记53]2021深度神经方法的关系三元组抽取综述

    1. 题目 Deep Neural Approaches to Relation Triplets Extraction: A Comprehensive Survey Tapas Nayak†, N ...

最新文章

  1. SQL Server 存储过程的分页方案比拼
  2. java如何做到判断一个字符串是否是数字
  3. 7.泡妞与设计模式(八)模板模式
  4. Java中使用UUID给图片命名的文件上传方法
  5. .js——alert()语句
  6. java 对象 序列化 文件中_如何将一个java对象序列化到文件里
  7. PHP生成url的函数,U函数:URL地址生成
  8. 从尾到头打印链表(六)
  9. ORACLE start with… connect by prior 子句用法
  10. php怎么异步执行,php怎么实现异步
  11. 朴素贝叶斯算法优缺点
  12. Android天天数钱游戏源码
  13. 计算机无法识别出硬件,电脑检测不到硬盘,电脑硬件故障检测工具
  14. 草莓网购物软件测试,网上商城系统的测试用例集
  15. 海外SDK之----------苹果支付
  16. Unity创建和修改本地Word文档
  17. 网络工程计算机文科可以报考么,文科生可以报考网络工程专业吗
  18. 我的世界电脑正版怎么开服务器,我的世界手机版开服器怎么用 开服务器方法...
  19. 智慧企业的基础——知识中台
  20. 7-242 母牛问题

热门文章

  1. Java数组的复制、扩容、删除
  2. WeChatTweak-微信小助手 v1.2.2 详细安装教程
  3. postgresql 查找慢sql之二: pg_stat_statements
  4. SEO知识:百度谷歌搜狗谷歌必应搜索引擎蜘蛛的特点
  5. python机器人编程前景_机器人编程挑战python
  6. BeyondCompare密钥过期怎么办?不用再找新的密钥,一招帮你搞定!
  7. cmd 控制台 提示:请求的操作需要提升!
  8. 网络文件夹共享服务器,五个最佳网络文件共享服务
  9. Cocos2d+protobuf仿JJ斗地主源码,win32和Android编译通过
  10. 2021年危险化学品生产单位安全生产管理人员复审考试及危险化学品生产单位安全生产管理人员模拟考试题库