YOLOX: 让YOLO重回Anchor-Free, 成为最强YOLO

2024-03-13 12:40

本文主要是介绍YOLOX: 让YOLO重回Anchor-Free, 成为最强YOLO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文地址:https://arxiv.org/abs/2107.08430

1. 动机

yolo系列一直以来都是目标检测领域最火的方法. 从yolo2开始, yolo系列就一直是Anchor-based的检测器, 而近年来Anchor-free类的方法发展迅猛, 已经可以达到甚至超越Anchor-based的方法了. 但是yolo4和yolo5依然沿用了Anchor-based架构. 于是, 作者将Anchor-free引入到yolo中, 并使用了各种最新技术(如: decoupled head, SimOTA等), 从而形成了一个全新的yolo检测--YOLOX.

2. 方法

2.1. Baseline and backbone

考虑到yolo4和yolo5可能会在anchor-based pipline上过拟合, 以及yolo3的通用性, 于是作者采用yolo3-SPP作为yolox的baseline.

backbone方面,作者采用了3套:

  • yolo3中的DarkNet53, 用于和yolo3进行对比;
  • yolo5中的CSPNet, 用于达到较高的性能;
  • Tiny 和 Nano, 用于轻量化检测;

2.2. Decoupled Head

在目标检测领域, 分类和回归之间的矛盾是一个众所周知的问题. 解耦头(Decoupled Head)是一个很好的解决方案, 但yolo还未将此方案纳入其中. 作者设计了两个实验,验证了Decoupled Head能够提升yolo的性能:

  • 1).  将yolo原有的head替换为Decoupled Head可以极大加速收敛;
  • 2). Decoupled Head对于end2end是十分必要的(可降低性能下降的幅度);

于是,作者设计了一个轻量级的解耦头, 结构如图2所示:

从图2可以看出: 对于FPN输出的feature maps, 先经过一个1*1卷积层进行通道降维; 然后经过两个并行的分支, 每个分支有两个3*3卷积层;最后,再经过1*1卷积, 得到三个分支(Cls, Rge, IoU)。

2.3. Strong Data Augmentation

作者使用Mosaic和Mixup作为yolox中的数据增强策略, 并在最后15个epochs关闭。使用了这种强数据增强策略后,作者发现Imageet预训练就不再起作用了,因此,yolox是train from scratch的。

2.4. Anchor Free

yolo4和yolo5都延续了yolo3的anchor-based pipline,然而,anchor机制有很多已知的问题:

  • 首先,为了达到最优性能,需要在训练前对数据集做聚类分析,来生成一组最优的anchors;这些anchors是特定于该数据集的,因此泛化性不佳;
  • 其次,anchor机制增加了检测头的复杂度,以及每个图像中的预测数量;这对一些边缘AI设备不友好;

而anchor-free近些年发展迅猛,已经能够达到anchor-based方法的性能,且其显著减少了手工设计的内容以及各种tricks,从而使得训练和解码阶段得以简化。

将yolo切换到anchor-free也相当简单:

将每个位置预测个数从3减少到1,并直接预测四个值(即:到网格的左上角的偏移量和box的高宽);同时,将中心点设为正样本,并预设了一个尺度范围为每个对象指定FPN级别。

如此一来,检测器的参数量和GFLOPS大大降低,速度更快,性能更好。

2.5. Multi Positives

上面的anchor-free版本为了和yolo3保持一致,只为每个对象分配一个正样本(中心点)。但其实其他高质量预测的位置同样又用,可以有利于梯度更新并缓解训练过程中正负样本不均衡的问题。这里采用了FCOS中的中心点采样方法,将中心点3*3邻域的位置都设为正样本。

2.6. SimOTA

先进的标签分配是近年来目标检测领域的另一个重大进展。基于旷视自家的OTA,作者总结了先进的标签分配的四个关键见解:1)损失/质量感知;2)中心点先验;3)每个ground-truth具有动态正anchor数量(dynamic top-k);4)全局视野。OTA满足上面四条规则,因此作者选其作为标签分配策略。

具体的,OTA从一个全局视角分析了标签分配,并将分配过程表示为最优运输(Optimal Transport,OT)问题,在现有的分配策略中产生SOTA性能。然而,作者发现在使用Sinkhorn-Knopp算法解决OT问题时会带来25%的训练时间,这对于300个epochs的训练过程来讲是非昂贵。因此,作者将其简化为了dynamic top-k策略,命名为SimOTA,从而能得到近似解。

这里简要介绍SimOTA:

  • 首先,对于每个“预测-GT”对,计算其成对匹配度,表示为代价或者质量:

c_{i j}=L_{i j}^{c l s}+\lambda L_{i j}^{r e g}   (1)

        其中,\lambda表示平衡系数,L_{i j}^{c l s}L_{i j}^{r e g}分别表示GT与预测之间的分类损失和回归损失。

  • 然后,对于每个GT,在其固定邻域内,选择top-k个代价最小的预测作为其正样本。
  • 最后,这些正预测所对应的网格就分配为正例,而其他的则为负例。

需要注意,top-k中的k值随着GT而变化,这是动态的。

SimOTA不仅减少了训练时间,而且避免了Sinkhorn-Knopp算法中的额外超参。

2.7. NMS-Free

作者尝试了end2end:增加了两个卷积层,一对一标签分配,以及梯度停止。这使得检测器可以端到端执行,但会轻微降低性能和推理速度。因此,最终模型并没有使用该策略。

2.8. 其他的backbone

除了DarkNet53,作者还在其他不同尺寸的backbone上进行了改进,且都能达到提升性能的效果。作者修改了yolo5的CSPNet,并设计了Tiny和Nano版的yolox,改进效果分别如表3表4所示:

 2.9. 模型尺寸和数据增强策略

作者发现,对于不同模型大小,调整不同的数据增强策略有助于提高性能,具体如表5所示:

3. 实验结果

这篇关于YOLOX: 让YOLO重回Anchor-Free, 成为最强YOLO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804913

相关文章

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

如何成为一个优秀的测试工程师

链接地址:http://blog.csdn.net/KerryZhu/article/details/5250504 我一直在想,如何将自己的测试团队打造成世界一流的团队?流程、测试自动化、创新、扁平式管理、国际标准制定、测试社区贡献、…… 但首先一点是明确的,就是要将每一个测试工程师打造成优秀的测试工程师,优秀的团队必须由优秀的成员构成。所以,先讨论“如何成为一个优秀的测试工程师”,

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注类别数:9 标注类别名称:["acalcerosis","fertilizer","flower","fruit","grey

Vue3+elementplus实现图片上传下载(最强实践)

图片上传子组件: 实现照片的上传,预览,以及转成以逗号隔开的图片地址,即时监听,并发送消息到父组件。 <!-- ImageUploader.vue --> <template><div><el-upload class="avatar-uploader" :http-request="customUpload" :before-upload="beforeUpload":show-fil

最强虚拟机,内置强大插件,绝!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 天给大家安利两款移动端的虚拟机软件,均支持超级权限、Xposed框架和谷歌服务,而其中一款可谓称得上最强虚拟机,不仅含有虚拟机的基本功能,还能多开分身、模拟器以及强大的插件社区,能实现的功能超乎你的想象,一起来看看吧! X8沙箱(安卓) 软件介绍 X8沙箱(手机版的安卓模拟器、虚拟机、多开分身、游戏双开多开挂机)是一款极简、

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

【YOLO 系列】基于YOLOV8的智能花卉分类检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 花朵作为自然界中的重要组成部分,不仅在生态学上具有重要意义,也在园艺、农业以及艺术领域中占有一席之地。随着图像识别技术的发展,自动化的花朵分类对于植物研究、生物多样性保护以及园艺爱好者来说变得越发重要。为了提高花朵分类的效率和准确性,我们启动了基于YOLO V8的花朵分类智能识别系统项目。该项目利用深度学习技术,通过分析花朵图像,自动识别并分类不同种类的花朵,为用户提供一个高效的花朵识别

水面垃圾检测数据集 3000张 水面垃圾 带标注 voc yolo

数据集概述 该数据集包含3000张图像,专注于水面垃圾的检测。数据集已经按照VOC(Visual Object Classes)和YOLO(You Only Look Once)两种格式进行了标注,适用于训练深度学习模型,特别是物体检测模型,用于识别水面上的各种垃圾。 数据集特点 多样性:包含3000张图像,涵盖了多种类型的水面垃圾,确保模型能够识别各种类型的垃圾。双标注格式:提供VO

超强台风摩羯逼近!或成大陆史上最强登陆台风,防御措施需到位

超强台风摩羯逼近!或成大陆史上最强登陆台风,防御措施需到位 摩羯即将登录,各位兄弟姐妹注意安全!#大型纪录片#摩羯#台风 推荐阅读: 一夜蒸发2万亿!英伟达市值遭遇滑铁卢 《火速围观!黑神话悟空IP山西空心月饼,又一波抢购热潮即将来袭》 直击心灵!佤写不来情歌,却意外火爆全网,你听了没? 警告!明年6至9月假期空窗期,你的旅行计划何去何从? 独家揭秘!雷军豪赠《黑神话:悟空》给王腾,