| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> YOLO系列目标检测算法——YOLOX -> 正文阅读 |
|
[人工智能]YOLO系列目标检测算法——YOLOX |
本文总结:
专栏链接: 1. 简介??本文中,介绍了对YOLO系列一些有经验的改进方法,提出了一个高性能的检测器——YOLOX。YOLOX采用anchor-free方式,加上其他先进的检测技术,例如decoupled head和标签分配策略SimOTA,取得了非常优异的效果。在轻量级模型方面,YOLOX-Nano仅仅0.91M的参数量,取得了25.3%AP,比NanoDet高1.8%。YOLOX-L和YOLOv4-CSP、YOLOv5-L差不多同样的参数量,取得50.0%AP,高出1.8%AP。 ??在过去这两年里,目标检测学术界的主要进展主要集中在anchor-free检测器、标签分配策略、end-to-end(NMS-free)检测器上。这些还没有融入到YOLO系列中,YOLOv4和YOLOv5仍然是anchor-based的目标检测器,而且需要手工设计训练规则。这也是为什么提出YOLOX的原因,要把这些进展融入到YOLO系列中。 ??考虑到YOLOv4和YOLOv5在anchor-based上有点过优化,所以本文采用YOLOv3作为起点(这里默认为YOLOv3-SPP)。 2. YOLOX2.1 YOLOX-DarkNet53??本文选择YOLOv3的DarkNet53作为的baseline。在本节中,将逐步介绍YOLOX中的整个系统的设计。 实施细节 YOLOv3 baseline
Decoupled head ??在目标检测任务中,分类和检测分支的冲突问题众所周知,因此decoupled head(解耦头)提出后就被广泛应用。但是,YOLO系列的backbone和特征金字塔(例如,FPN/PAN),在不断演化时,它们的检测头仍保持耦合,如图2所示。 ??本文通过两个分析实验表明,耦合检测头可能会损害其性能:
??可以从表1中看出,耦合头的端到端性能降低了4.2% AP,而解耦头的端到端性能降低到0.8% AP。因此,本文将YOLO检测头替换为一个精简的解耦头,如图2所示。具体地说,它包含一个1×1 conv层来减少通道维度,然后是两个平行分支和两个3×3 conv层。 数据增强 anchor-free
??anchor-free机制显著减少了需要启发式调优和涉及的许多技巧(如anchor聚类、Grid Sensitive)的设计参数的数量。为了获得良好的性能,使检测器,特别是其训练和解码阶段,相当简单。 ??将YOLO切换到anchor-free的方式非常简单。将每个位置的预测从3减少到1,并使它们直接预测四个值,即网格左上角的两个偏移量,以及预测框的高度和宽度。将每个目标的中心位置指定为正样本,并预先定义比例范围,以指定每个对象的FPN级别。这种修改降低了检测器的参数和GFLOPs,使其速度更快,但获得了更好的性能42.9%的AP,如表2所示。 Multi positives SimOTA
??具体来说,OTA从全局的角度分析标签分配,并将分配过程制定为一个最优传输Optomal Transport(OT)问题,在当前的分配策略中产生SOTA性能。但是,在实践中,发现通过Sinkhorn-Knopp算法解决OT问题会带来25%的额外训练时间,这对于训练300个epoch来说是相当昂贵的。因此,本文将其简化为动态top-k策略,称为SimOTA,以得到一个近似解。 ??在这里简要介绍SimOTA,SimOTA首先计算成对匹配度,用每个prediction-gt对的cost或quality表示。例如,在SimOTA中,gt
g
i
g_i
gi?和prediction
p
j
p_j
pj?之间的cost计算公式为: ??SimOTA不仅减少了训练时间,而且避免了该算法中额外的求解器超参数。如表2所示,SimOTA将检测器从45.0% AP提高到47.3% AP,比SOTA YOLOv3高出3.0% AP,显示了高级分配策略的能力。 End-to-end YOLO 2.2 其他backbone??除了DarkNet53之外,还在其他backbone上用不同输入尺寸测试了YOLOX,其中YOLOX与所有相应的算法相比,都一致的有所提升。 YOLOv5中修改的CSPNet ??为了得到一个公平的比较,采用了YOLOv5的主干,包括改进的CSPNet、SiLU激活和PAN头。还遵循模型的缩放规则得到YOLOX-S、YOLOX-M、YOLOX-L和YOLOX-X。与表3中的YOLOv5进行了比较,本文的模型得到了~3.0%的~1.0%的AP,只有延迟增加(原因来自解耦头)。 ??进一步缩小了模型为YOLOX-Tiny,以与YOLOv4-Tiny进行比较。对于移动设备,采用深度卷积来构建一个YOLOX-Nano模型,该模型只有0.91M的参数和1.08G的FLOPs,如表4所示YOLOX在更小的模型尺寸下表现得很好。 ??在本文的实验中,所有的模型都保持了几乎相同的学习时间表和优化参数。然而,使用发现合适的增强策略因不同的模型大小而不同。如表5所示,在YOLOX-L中应用MixUp可以提高0.9%,而对于小模型像YOLOX-Nano,削弱这种增强效果更好。具体来说,当训练小模型,即YOLOX-S、YOLOX-Tiny和YOLOX-Nano时,消除了mixuo增强和削弱了mosaic增强(将尺度范围从[0.1,2.0]缩小到[0.5,1.5])。这种修改将YOLOX-Nano的AP从24.0%提高到25.3%。 ??对于大型模型,实验还发现更强的增强更有帮助。受Copypaste的启发,本文在混合两幅图像之前通过随机采样的比例因子进行抖动。为了理解带有比例抖动的MixUp的能力,将其与YOLOX-L上的Copypaste进行了比较,注意:Copypaste需要额外的实例掩码标注,而MixUp则不需要。结果如表5所示,这两种方法实现了具有竞争力的性能,表明当没有实例掩码标注时,具有比例抖动的MixUp是Copypaste的合格替代品。 3. 与SOTA对比??与SOTA的比较结果如表6所示,但是,这个表中模型的推理速度通常是不受控制的,因为速度随着软件和硬件的不同而变化。因此,对图1中所有YOLO系列使用相同的硬件和代码库,绘制了受控制的速度/精度曲线。 4. 结论??本文介绍了YOLO系列的一些有效的更新,得到了一个名为YOLOX的高性能anchor-free目标检测器。YOLOX配备了一些最新的先进的检测技术,即解耦头,anchor-free,和先进的标签分配策略,YOLOX在所有模型大小的速度和准确性与其他算法之间实现了更好的权衡。值得注意的是,本文将YOLOv3架构在COCO上的准确率提高到了47.3%,比目前的最佳实践高出3.0%。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 16:19:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |