根据前文CenterNet、YOLOv4等可以看出学界和工业界都在积极探索使用各种tricks(anchor-free、各种组件、数据增强技术等等)来改进One Stage网络的表现,2021年旷视科技结合先进的改进技巧,产出了多种改进模型,在多种情况下达到速度和精度的SOTA。
值得一提的是,YOLOx使得YOLO系列回归到了anchor-free(YOLOv1是anchor-free的),后续YOLOv6、YOLOv7、YOLOv8均为anchor-free算法
提示:以下是本篇文章正文内容,下面内容可供参考
YOLOx给出了以下版本:
(1)标准网络结构:Yolox-Darknet53
、Yolox-s
、Yolox-m
、Yolox-l
、Yolox-x
。
(2)轻量级网络结构:Yolox-Nano
、Yolox-Tiny
ps:
- 选择Yolov3_spp的改进版作为Yolov3 baseline,在此基础上添加各种trick,比如Decoupled Head、SimOTA等,得到了Yolox-Darknet53版本
- 以Yolov5的四个版本作为baseline,采用有效的trick,逐一进行改进,得到Yolox-s、Yolox-m、Yolox-l、Yolox-x四个版本
- 设计了Yolox-Nano、Yolox-Tiny轻量级网络,并测试了一些trick的适用性
基于上述训练技巧,基线模型在COCO val上取得了38.5%AP指标
ps:和CenterNet不同的是,Yolox分为cls、reg以及obj分支,其中
- cls代表分类任务,主要负责预测图像中物体的类别,使用BCE损失
- reg代表回归任务,主要负责预测物体的位置和尺寸信息,使用IoU损失
- obj代表目标存在性任务(IoU感知分支),即模型需要判断边框中是否存在目标物体(置信度),使用BCE损失
Yolox-Darknet53在YOLOv3 baseline基础上再次采用了以下五种tricks:
Decoupled head
:检测头由Head修改为Decoupled Head,提升了收敛速度和精度,但同时会增加复杂度Strong data augmentation
:使用了Mosaic和MixUp,同时在使用强大的数据增强后,发现ImageNet预训练不再有益,因此从头开始训练所有模型Anchor-free
:类似CenterNet的思想Multi positives
:类似CenterNet的anchor-free仅为每个对象选择一个正样本(中心位置),同时忽略其他高质量预测,然而,优化这些高质量的预测也可以带来有益的梯度,缓解训练期间正/负采样的极端不平衡,因此YOLOx将中心3×3区域都分配为正样本SimOTA
:一种标签匹配方法,标签分配是近年来目标检测领域的另一个重要进展。所谓标签匹配实质上就是将预测框和真实(gt)框进行匹配,简单做法是基于阈值,如IoU,但这种做法比较粗糙。将精度推至47.3 AP
ps:YOLOv3-ultralytics是YOLOv3的最佳实践,采用了数据增强等tricks,具体改进看源码
SimOTA详解
ps:OTA来源于旷世科技另一篇文章《Ota: Optimal transport assignment for object detection》,SimOTA是OTA的简化,求近似解
SimOTA将标签匹配转换为运输问题,自动的去匹配输出和标记之间的关联,流程如下:
得到每个目标框应该分配的预选框数量后,具体的选择规则是根据cost矩阵,选择cost值最低的一些候选框
以下是Yolox-Darknet53的网络结构,可以看出:
在对Yolov3 baseline进行不断优化,获得不错效果的基础上。作者又对Yolov5系列的Yolov5s、Yolov5m、Yolov5l、Yolov5x四个网络结构,也使用上述5个trick进行改进。
(1)输入端:在Mosa数据增强的基础上,增加了Mixup数据增强效果;
(2)Backbone:激活函数采用SiLU函数;
(3)Neck:激活函数采用SiLU函数;
(4)输出端:检测头改为Decoupled Head、采用anchor free、multi positives、SimOTA的方式。
以下是Yolox-s的网络结构图
针对边缘设备部署需求,构建了两个轻量级网络:
YOLOx是继YOLOv4之后新的tricks集大成者,在工业上具有重大意义