YOLOX系列文章(一):先来看看论文


注:个人水平有限,如有错误(以下内容加入自己的理解),敬请批评指正。

YOLOX论文

论文:https://arxiv.org/pdf/2107.08430.pdf
github地址:https://github.com/Megvii-BaseDetection/YOLOX

摘要

YOLOX在YOLO系列中加入了一些技巧,如
1.将YOLO检测器和anchor-free结合
2.加入了decoupled head
3.加入了SimOTA

和其他方法的比较:

  • YOLO-Nano参数仅有0.91M和1.08GFLOPS,在COCO数据集上有25.3%AP,相比NanoDet,提高了1.8%
  • 在COCO上将工业上常用的YOLOv3提高到了47.3%
  • YOLOX-L的参数量和YOLOv5-L的参数量大致相同,YOLOX-L在V100(我:V100是多少显存的?估计应该是32GB的吧)上速度为68.9FPS,AP超过YOLOv5-L大约1.8%
    请添加图片描述

在CVPR2021的Streaming Perception Challenge中,使用YOLOX-L模型获得第一名。

为了让模型更好落地,论文提供了ONNX,TensorRT,NCNN和Openvino的部署版本的github地址
(我:后面我会试试部署版本)

1.介绍

虽然YOLO系列在精度和速度方面都蛮好的。
但是,最近几年目标检测领域的“骚操作”,如anchor-free检测器、更优秀的label assignment技巧、端到端检测器(NMS-free)都没有被集成到YOLO系列中。这篇文章就是做这个的,YOLOv4和YOLOv5太优秀了(手动狗头.jpg),先从YOLOv3“虐”起吧。看看下面这幅图吧,一图胜千言:
请添加图片描述

2.YOLOX

2.1 YOLOX-DarkNet53

训练细节
去论文里看吧,略过

YOLOv3 baseline
baseline使用darknet53作为主干特征提取网络,并加入了SPP层。
相比原始的YOLOv3,本论文的YOLOv3 baseline对训练策略做了如下改动:
1.加入EMA权重更新
2.加入cosine lr schedule
3.加入IoU loss
4.加入IoU-aware branch
YOLOv3 baseline结果如下:在这里插入图片描述
Decoupled head
YOLO系列的主干特征网络和特征金字塔不断进化,他们的detection head耦合在一起,detection head耦合在一起会降低性能。
对性能的影响程度?给你两张图片,自己品,你细品
在这里插入图片描述
在这里插入图片描述
数据增强
使用Mosaic和MixUp增强图像数据集,借此提高YOLOX性能。
使用数据增强后,抛弃了ImageNet的预训练模型,从头开始训练模型。

Achor-free
YOLOv4和YOLOv5都是anchor-based,但是anchor-based有如下缺点:
1.训练之前,需要进行聚类分析决定最优的anchors,这些anchors泛化性能弱
2.anchors增加了检测的复杂性

Multi positives
positives的处理类似FCOS

SimOTA
SimOTA应该是Simplified Optimal Transport Assignment
优秀的label assignment应该具备的特征:
1.loss/quality aware
2.center prior
3.dynamic top-k
4.global view
OTA满足上面4个条件,但是考虑到训练时间问题,使用SimOTA

端到端的YOLO
实现方法:
1.加入两层额外卷积层
2.加入一一映射的label assignment
3.加入stop gradient

2.2 其他backbone

  • YOLOX v.s. YOLOv5
    在这里插入图片描述

  • YOLOX-Tiny&Nano v.s. other-Tiny&Nano在这里插入图片描述

  • 不同模型大小适用不同的数据增强策略
    在这里插入图片描述

3.与其他方法的比较

“是骡子是马,拉出来溜溜”
下表是不同模型在COCO2017 test-dev上的比较,公平起见,都是300 epoch
在这里插入图片描述

4.SPC比赛中第一名

Streaming Perception Challenge第一名,有兴趣的话去看看。

5.总结

本文提出了YOLOX,它集成了如下技巧改进YOLO系列:
1.decoupled head
2.anchor-free
3.优秀的label assigning策略

文章下期预告

YOLOX的部署

文章下下期预告

YOLOX的自定义部署

不说了,我先打麻将去了(模仿FJYB)

版权声明:本文为CSDN博主「机器视觉全栈er」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42322191/article/details/118936680

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

暂无评论

发表评论

相关推荐

YOLOv5的输出端(Head)详解|CSDN创作打卡

深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 注:因为有些朋友喜欢的是逐句逐句的看代码解析,所以我整理了

目标检测指标计算

一、指标 True Positive,TP :预测为正样本(Positive),实际为正样本,则True,预测正确。 True Negative,TN &#x

Deep Learning 目标检测

对检测到的结果进行解析  #----------------------------目标检测*解析字典result------------------------------------------- from numpy import arr

YOLOV3预选框验证

对于一个输入图像,比如416*416*3,相应的会输出 13*13*3 26*26*3 52*52*3 10647 个预测框。我们希望这些预测框的信息能够尽量准确的反应出哪些位置存在对象,是哪种对