赞
踩
提出时间:2021年
作者单位:旷视科技
旷视官方代码:https://github.com/Megvii-BaseDetection/YOLOX
论文下载地址:https://arxiv.org/abs/2107.08430
论文题目:《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 以 YOLOv3-SPP 为基础模型进行各种改进,其 backbone 是 DarkNet-53。
论文对于 baseline 的选择原因的解释为:
Considering YOLOv4 and YOLOv5 may be a little over-optimized for the anchor-based pipeline, we choose YOLOv3 as our start point (we set YOLOv3-SPP as the default YOLOv3).
翻译:考虑到YOLOv4和YOLOv5可能对anchor-based pipeline进行了过度优化,因此我们选择YOLOv3作为优化起点。
注:pipeline(流程)通常指的是算法的整体框架或流程
为什么说YOLOv4和YOLOv5可能对anchor-based pipeline进行了过度优化呢?
主要是因为YOLOv4和YOLOv5侧重于提升检测精度,而忽略了一些其他方面的问题。例如,YOLOV4和YOLOV5使用了大量的卷积层和网络结构调整,导致它们的计算复杂度很高,需要更多的计算资源来实现实时检测。此外,虽然YOLOV4和YOLOV5对大目标的检测效果有所改进,但在小目标的检测上依然不如YOLOv3。
如下图所示,在YOLOv3–YOLOv5中,检测头对候选框的分类和回归是耦合的(在一起进行,Couple),这样会影响模型检测的性能。
如 YOLOv3 对于输出的 13 × \times × 13 大小的特征图的预测结果是一个 13 × \times × 13 × \times × 255 的矩阵,其中 255 = 3 × \times × (4+1+80),表示每个分支预测3个框,每个框预测 5 元组(x,y,w,h,confidence)和 80 个类别的得分(COCO数据集有80个分类)。其对于 anchor 的类别预测和位置预测(准确说是位置回归)是耦合的。
YOLOX 对分类和回归进行了解耦(Decouple),即将二者分开,变成两个分支,并在回归分支中增加了IOU计算的模块。
在 Neck 结构中,Yolox-Darknet53 和 Yolov3 baseline 一样,都采用FPN的结构进行融合。
实验证明解耦的检测头(Decouple head)的检测精度更高(能带来4.2%AP提升),收敛速度更快。论文中的解释是:
以往Yolo系列使用的检测头,表达能力可能有所欠缺,Decoupled Head的表达能力更好。
推荐一篇写的很好的文章:深入浅出Yolo系列之Yolox核心基础完整讲解
YOLOX 的整体网络结构如下:
与 YOLOV3 使用了三个不同尺度的检测头类似,YOLOX 使用了三个不同尺度的解耦的检测头,这是通过不同次数的下采样实现多尺度的。
YOLOX 对一张图片共产生 8400 个预测框,三个检测头对应的预测框分布大小为:
YOLOX采用了 Mosaic 和 MixUp 两种数据增强方式。
Mosaic是在YOLOv4中提出的,对四张图片进行拼接,每一张图片都有其对应的框框,将四张图片拼接之后就获得一张新的图片,同时也获得这张图片对应的框框。具体可以参考 YoloV4当中的Mosaic数据增强方法
MixUp 采用配对的方式进行训练,通过混合两个甚至是多个样本的分布,同时加上对应的标签来训练。两张图以一定的比例对rgb值进行混合,同时需要模型预测出原本两张图中所有的目标。目前MixUp在各大竞赛、各类目标检测中属于稳定提点的策略。具体可以参考 全网最全:盘点那些图像数据增广方式Mosiac,MixUp,CutMix等.
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个值(候选框左上角的x,y坐标与w,h)。
将 YOLO 切换到 Anchor-free 的方式非常简单:将特征图中每个位置的预测从YOLOV3 的 3 个减少到 1 个,并直接预测四个值(x,y,w,h)
(1)问题一:什么是正负样本?
在目标检测中,正负样本是指用于模型训练和评估的样本数据。
首先明确两个概念:
(1)正样本并不是手动标注的GT框。正负样本都是针对于算法生成的预测框而言,而非原始的GT数据。
(2)正负样本是在训练过程中计算损失用的,而在预测过程和验证过程是没有这个概念的。
正样本(Positive Samples)通常是指包含目标物体的样本,这些样本被用来训练模型以学习如何准确地检测和定位目标物体。正样本通常会被标注出目标的类别和边界框位置信息。
负样本(Negative Samples)则是指不包含目标物体的样本,它们用于训练模型以学习如何区分目标物体与背景或其他干扰物体。负样本可以包括一般的背景图像或与目标物体类别不相符的图像。
正负样本在目标检测中起着重要的作用。通过使用大量的正样本和负样本进行训练,模型可以学习到目标物体的特征和背景的差异,进而实现目标的准确检测和定位。在模型评估过程中,正负样本也用于计算各种性能指标,例如精度、召回率和F1分数等,以评估模型的检测效果。
(2)问题二:训练的时候为什么需要进行正负样本筛选?
在目标检测中不能将所有的预测框都进入损失函数进行计算,主要原因是框太多,参数量太大,因此需要先将正负样本选择出来,再进行损失函数的计算。
对于正样本,分类和回归都进行训练
对于负样本,不进行回归,只进行分类(分类为背景)
(3)问题三:为什么要训练负样本?
训练负样本的目的是为了降低误检测率、误识别率,提高网络模型的泛化能力。通俗地讲就是告诉检测器,这些“不是你要检测的目标”。
(4)问题四:如何平衡正负样本的数量?
正负样本的比例最好为1:1到1:2左右,数量差距不能太悬殊,特别是正样本数量本来就不太多的情况下。
如果负样本远多于正样本,则负样本会淹没正样本的损失,从而降低网络收敛的效率与检测精度。这是目标检测中常见的正负样本不均衡问题,解决方案之一是增加正样本数。
YOLO系列中关于正负样本的定义可以参考 Yolov3-v5正负样本匹配机制
以往 anchor-free 的模型对每个对象只选择一个正样本,而忽略了其他高质量的预测。然而,优化那些高质量预测还可以带来有益的梯度,可以减轻训练期间正/负采样的极端不平衡。
YOLOX 借鉴 FCOS 中的 “center sampling” 策略,将中心 3 × \times × 3 区域设置为正样本。即对于某个GT框的,在其中心点周围 3 × \times × 3 的正方形,将所有中心点在该正方形范围内的预测框设置为GT框对应的正样本。所以一个GT框最多有 9 个正样本。
经过正样本选择后,预测的 8400 个bbox 中可能只有 1000 个是正样本。但这只是正样本初筛,而不是最终的正样本数,因为还要使用 SimOTA 操作进一步筛选正样本。
SimOTA 来源于旷视在 CVPR2021 中提出的 OTA,论文为 OTA: Optimal Transport Assignment for Object Detection
SimOTA 是 OTA 的简化版,它是一种标签分配方法,它将匹配正负样本的过程看作一个最优传输问题。采用 SimOTA 后 AP 提升了 2.3%
SimOTA 是 YOLOX 的一个重要 trick,其原理比较复杂,博客 YOLOX—SimOTA图文详解 详细且生动地介绍了 SimOTA 的计算流程和代码实现。
如果不采用DarkNet53作为backbone,而采用YOLOv5的backbone(包括SCPNet、SiLU activation、PAN head),可以得到不同版本YOLO5对应的YOLOX的版本:
可以发现,YOLOX比YOLOv5的相应版本性能更好。
Nano是纳米,YOLOX-Tiny和YOLOX-Nano是YOLOX的小模型,模型对比如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。