论文:YOLOX: Exceeding YOLO Series in 2021
代码:https://github.com/Megvii-BaseDetection/YOLOX
作者:旷世
时间:2021.08
贡献:
随着 YOLO 系列的发展,很大程度上推进了检测器在准确率和效率上的平衡,当时最优的应该是 YOLOv5,在 COCO 上 48.2% AP,耗时 13.7ms。
在近两年,目标检测的方法研究集中在 anchor-free(FCOS, CornerNet, CenterNet),advanced label assignment(Freeanchor, ATSS, Autoassign, Iqdet, Ota),end-to-end(NMS-free)( End-to-end object detection with transformers, End-to-end object detection with fully convolutional network, Object detection made simpler by eliminating heuristic nms)等方面,YOLO 系列还没有引入这些,YOLOv4 和 YOLOv5 都是 anchor-based,并且训练过程有手工选择的特征。
1、baseline:
YOLOX 是以 YOLOv3 作为基准框架的,以 Darknet53 作为backbone,YOLOv3+Darknet53+SPP 作为 baseline,如图 1 所示。
2、解耦头
检测任务中的分类和回归头的互相影响会给网络结果带来不好的硬,所以需要对两个头进行解耦。
3、数据增强
使用了 Mosaic 和 Mixup 增强
如何使用数据增强:在最后 15 个 epoch 的时候,关掉这两个增强
4、Anchor-free
YOLOv4 和 YOLOv5 都是基于 YOLOv3 的结构的,都是 anchor-based 模式。
使用 anchor 有两个问题:
如何将 YOLO 转换为 anchor-free 的:
5、多个正样本
为了和 YOLOv3 的分配策略一致,如果只给每个目标选择一个正样本(中心点处),忽略其他的高质量预测结果,而这些高质量的预测结果也会给梯度带来益处,缓解正负样本的严重不平衡问题,所以,YOLOX 选择中心的 3x3 位置的样本为正样本,提升到了 45%。
6、SimOTA
作者总结的 advanced label assignment 的 4 个关键点:
OTA (Ota: Optimal transport assignment for object detection, CVPR2021)满足上述四点,所以选择了该策略。
OTA 从全局的角度分析了 label assignment,并且将标签分配的过程建模成了一个 Optimal Transport (OT)问题。但作者发现直接使用基于 Sinkhorn-Knopp 的 OT 的话,会额外带来 25% 的训练时间,所以简化成了动态的 top-k 策略,称为 SimOTA。
SimOTA 通过如下方式计算真值和预测值的 cost: c i j = L i j c l s + λ L i j r e g c_{ij} = L_{ij}^{cls} + \lambda L_{ij}^{reg} cij=Lijcls+λLijreg
然后,对每个 gt,都根据一个确定的 center region 来最小化 cost,并选择前 top-k的预测结果作为其正样本。
SimOTA 减少了训练时间,避免了 Sinkhorn-Knopp 的超参数,从 47.3 提升到了 45。
7、End-to-end YOLO
添加了 2 个 conv layer,one-to-one label assignment,stop gradient
1、和其他 backbone 的对比