Press "Enter" to skip to content

【目标检测】YOLOX ,YOLO系列的集大成者

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 

一、YOLOX简介

 

提出时间:2021年 作者单位:旷视科技 旷视官方代码: github.com/Megvii-Base… 论文下载地址: arxiv.org/abs/2107.08… 论文题目:《YOLOX: Exceeding YOLO Series in 2021》

 

《YOLOX: Exceeding YOLO Series in 2021》的意思是YOLOX在2021年超越了所有YOLO系列,标题很狂妄呀。

 

从2015年的YOLOv1,2016年YOLOv2,2018年的YOLOv3,再到2020年的YOLOv4和YOLOv5,2021年的YOLOX,YOLO系列在不断的进化发展。

 

YOLOX的速度和精度图如下,横坐标为推理速度,纵坐标为MAP精度。

 

 

YOLOX不同版本的参数量(模型大小)和MAP精度图:

 

 

可以发现在YOLOX不同版本中,YOLOX-Nano模型最小,速度最快。

 

模型大小往往与速度成正比,很难做到小模型实现高精度。

 

二、YOLOX模型结构(Decouple head)

 

YOLOX以YOLOv3-SPP为基础模型进行改进,其backbone是DarkNet-53。

 

如下图所示,在YOLOv3–YOLOv5中,检测头对候选框的分类和回归是耦合的(在一起进行,Couple),这样会影响模型检测的性能。YOLOX 对分类和回归进行了解耦(Decouple),即将二者分开,变成两个分支,并增加了IOU计算的分支。

 

 

下图是训练过程,显然解耦的检测头(Decouple head)的检测精度更高(解耦能带来4.2%AP提升),收敛速度更快。

 

 

三、YOLOX的改进之处

 

3.1 数据增强(data augmentation)

 

YOLOX采用了 Mosaic 和 MixUp 两种数据增强方式。

 

Mosaic是在YOLOv4中提出的,对四张图片进行拼接,每一张图片都有其对应的框框,将四张图片拼接之后就获得一张新的图片,同时也获得这张图片对应的框框。具体可以参考 YoloV4当中的Mosaic数据增强方法

 

MixUp 采用配对的方式进行训练,通过混合两个甚至是多个样本的分布,同时加上对应的标签来训练。两张图以一定的比例对rgb值进行混合,同时需要模型预测出原本两张图中所有的目标。目前MixUp在各大竞赛、各类目标检测中属于稳定提点的策略。具体可以参考 全网最全:盘点那些图像数据增广方式Mosiac,MixUp,CutMix等.

 

3.2 Anchor-free(不使用anchor)

 

YOLOv2–YOLOv5都是基于anchor的算法( anchor-based),这种方式有一些问题:

 

(1)为了达到最优的检测性能,需要在训练前对训练集进行聚类分析,确定一组最优的anchor。这些聚类获得的anchor是对于特点数据集适用的,不具有普遍性。

 

(2)anchor机制增加了检测头的复杂度,以及对每幅图像的预测数量。在一些边缘AI系统中,在设备之间移动如此大量的预测(例如从NPU到CPU)可能会成为整体延迟的潜在瓶颈。

 

Anchor-free算法可以减少模型参数,具有代表性的Anchor-free算法是在论文《FCOS:Fullu Convolutional One-Stage Object Detection》,该方法借鉴了语义分割的方法,根据主像素点预测边界框。

 

YOLOX中,特征图中的一个点只预测一个候选框(而不是多个anchor),直接预测4个值(候选框左上角的xy坐标与w,h)。

 

3.3 Multi positives(多个正样本)

 

YOLO系列中关于正负样本的定义可以参考 YOLOv3/v4/v4/x中正负样本的定义

 

3.4 SimOTA

 

SimOTA是一种标签分配方法,

 

四、YOLOX的不同版本

 

4.1 YOLOX-S、YOLOX-M、YOLOX-L、YOLOX-X

 

如果不采用DarkNet53作为backbone,而采用YOLOv5的backbone(包括SCPNet、SiLU activation、PAN head),可以得到不同版本YOLO5对应的YOLOX的版本:

 

 

可以发现,YOLOX比YOLOv5的相应版本性能更好。

 

4.2 YOLOX-Tiny、YOLOX-Nano

 

Nano是纳米,YOLOX-Tiny和YOLOX-Nano是YOLOX的小模型,模型对比如下:

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注