超越全系列YOLO、Anchor-free+技巧组合,旷视开源更强的YOLOX( 二 )


YOLOv3基线模型
基线采用了DarkNet53骨干和SPP层的架构(在一些论文中被称作YOLOv3-SPP) 。 与初始实现相比 , 研究者稍微改变了一些训练策略 , 添加了EMA权重更新、余弦学习机制、IoU损失和IoU感知分支 。 他们使用BCE损失训练cls和obj分支 , 使用IoU损失训练reg分支 。 这些通用的训练技巧对于YOLOX的关键改进呈正交 , 因此将它们应用于基线上 。 此外 , 研究者还添加了RandomHorizontalFlip、ColorJitter和多尺度数据增强 , 移除了RandomResizedCrop策略 。
通过这些增强技巧 , YOLOv3基线模型在COCOval数据集上实现了38.5%的AP , 具体如下表2所示:
超越全系列YOLO、Anchor-free+技巧组合,旷视开源更强的YOLOX
文章图片
解耦头
在目标检测中 , 分类与回归任务之间的冲突是一个众所周知的难题 , 因此用于分类和定位的解耦头被广泛用于大多数单阶段和双阶段检测器中 。 但是 , 随着YOLO系列模型骨干和特征金字塔(如FPN和PAN)持续进化 , 它们的检测头依然处于耦合状态 , YOLOv3头与本文提出的解耦头之间的架构差异如下图2所示:
超越全系列YOLO、Anchor-free+技巧组合,旷视开源更强的YOLOX
文章图片
下图3为使用YOLOv3头和解耦头时的检测器训练曲线:
超越全系列YOLO、Anchor-free+技巧组合,旷视开源更强的YOLOX
文章图片
从下表1可以看到 , 使用耦合头时端到端性能降低了4.2%的AP , 而使用解耦头时仅仅降低了0.8%AP 。 因此 , 研究者将YOLO检测头替换为一个轻量(lite)解耦头 , 由此极大地提升了收敛速度 。
超越全系列YOLO、Anchor-free+技巧组合,旷视开源更强的YOLOX
文章图片
具体地 , 这个轻量解耦头包含一个1×1卷积层以减少通道维度 , 之后紧接着两个3×3卷积层的并行分支 , 具体架构参见上图2 。
研究者给出了在单个TeslaV100上 , 使用batch=1时的推理时间 。 如上表2所示 , 轻量解耦头可以带来1.1ms的推理延时 。
强(strong)数据增强策略
研究者在增强策略中加入了Mosaic和MixUp以提升YOLOX的性能 , 他们在模型中采用MixUp和Mosaic实现 , 并在最后15个epoch的训练中关闭 。 如上表2所示 , 基线模型实现了42.0%的AP 。 在使用强数据增强策略之后 , 研究者发现ImageNet预训练不再具有更多增益 , 因此所有模型都从头开始训练 。
无锚点(anchor-free)
YOLOv4和YOLOv5都遵循YOLOv3的基于锚的初始pipeline , 然而锚机制存在许多已知的问题 。 过去两年 , 无锚检测器发展迅速 。 相关研究表明 , 无锚检测器的性能可以媲美基于锚的检测器 。 无锚点机制显著减少了实现良好性能所需的启发式调整和技巧(如AnchorClustering、GridSensitive)的设计参数数量 , 从而使得检测器变得更简单 , 尤其是在训练和解码阶段 。
将YOLO转变为无锚点模式也非常简单 。 研究者将每个位置的预测从3降至1 , 并使它们直接预测四个值 , 即两个offset以及预测框的高宽值 。 他们将每个目标的中心位置指令为正样本 , 并预定义一个尺度范围 , 以确定每个目标的FPN水平 。 这种改进减少了检测器的参数量和GFLOP , 并使其速度更快 , 与此同时获得了更好的性能 , 即42.9%AP(具体如上表2所示) 。
多个正样本
为了确保与YOLOv3的分配规则一致 , 上述无锚点版本仅为每个目标分配一个正样本(中心位置) , 同时忽略了其他高质量的预测 。 研究者将中心3×3区域分配为正样本 , 并命名为「中心采样」 。 如上表2示 , 检测器的性能提升至45.0%AP , 已经超越了当前SOTAultralytics/yolov3版本的44.3%AP 。
SimOTA
先进标签分配(Advancedlabelassignment)是近年来目标检测领域中另一个重要进展 。 该研究将其作为候选标签分配策略 。