论文阅读笔记 | 目标检测算法——YOLOX

简介: 论文阅读笔记 | 目标检测算法——YOLOX

paper:YOLOX: Exceeding YOLO Series in 2021

image.png

摘要:

作者将YOLO检测器切换为anchor_free方式,并且结合了一些先进的检测测量,比如一个解耦的检测器头部以及一个标签分配策略SimOTA。

ps:作者用一个YOLOX-L模型赢得了流感知挑战(2021年CVPR自动驾驶研讨会)的第一名


1. Introduction


YOLO系列始终追求实时应用的最佳速度和精度取舍,提取了当时可用的最先进的检测技术(例如,anchor用于YOLOv2,残差网络用于YOLOv3),并优化最佳实践的实现。

然而在过去的两年中,目标检测学术界的主要进展集中在anchor_free检测器,高级标签分配策略和端到端(NMS-free)检测器,这些研究成果还没有被集成在YOLO系列中,YOLOv4和YOLOv5目前还是使用了anchor_based及手动的指定训练分配规则(比如anchor相关的设置)。


作者还认为,YOLOv4和YOLOv5中对anchor有点过度的优化,所以重新将YOLOv3-SPP版本作为优化起点。原因是,YOLOv3由于计算资源有限,在各种实际应用中软件支持不足,仍然是行业中应用最广泛的探测器之一。


对于COCO数据集中640x640的分辨率大小达到了47.3%的mAP效果。而且,如果使用YOLOv5的backbone以及添加上一个PAN检测头,YOLOX-L达到了50%的mAP效果,如图所示:

image.png


2. YOLOX


在一开始时文章介绍了一些参数的设置,包括学习率,epochsize等等,这里跳过。作者将YOLOv3+Darknet53作为基准。


2.1 YOLOv3 baseline

采用Darknet53+SPP结构为基准,改变了一点学习的策略,增加EMA权重更新,余弦lr调度调整,IoU损失和IoU感知分支。对于分类与目标分支采用二值交叉熵损失,对于回归分支采用IoU损失。


在数据增强方面,作者只采用了RandomHorizontalFlip,ColorJitterand及多尺度,抛弃了RandomResizedCrop策略,因为作者举得这与Mosaic的数据增加有点重叠。

以上策略作为YOLOX的baseline,mAP为38.5%


2.2 Decoupled head

在目标检测中,分类任务与回归任务之间的冲突是一个的问题,因此用于分类和定位的检测头一般被解耦应用在于大多数探测器中。但是由于YOLO系列与FPN结构的不断进化,YOLO系列的检测头保持耦合。


实验证明,耦合的检测头会损害检测器性能:

1)将YOLO的头部替换为解耦的头部,极大地提高了收敛速度

2)解耦头对于YOLO的端到端版本至关重要

image.png

由图可见,收敛速度确实快很多。

因此,作者将YOLO检测头替换为的lite解耦头,如图2所示:

image.png

效果带来了提升,但是在推断过程中会有1.1ms的延迟。


2.3 Strong data augmentation

作者将Mosaic和MixUp添加到数据增强策略中,以提高YOLOX的性能,而且在最后的15个epoch中关闭这个训练策略。

在使用了以上的数据增强方式后,作者发现ImageNet的预训练没有带来收益,所以作者从头开始训练所有以下模型。


2.4 Anchor-free

基于anchor的方法hi带来许多问题:

1)为了达到最优的检测性能,需要在训练前进行聚类分析,确定一组最优的锚点。那些聚集的锚点是特定领域的,不太一般化。

2)锚框的机制增加了检测头的复杂性,以及每幅图像的预测数量。在设备之间移动如此大量的预测可能会成为整体延迟方面的潜在瓶颈。

而anchor_free的方法降低了设计量,需要启发式调整和许多技巧(比如Anchor Clustering,Grid Sensitive),简化了训练与编码阶段。

将YOLO系列转化为Anchor-free,思想就是对于特征图上的每个点直接预测4个值(网格左上角的两个偏移量,以及预测框的高度和宽度,根据这4个值确定回归框),将每个物体的中心位置指定为阳性样本,并预先定义一个刻度范围,为每个FPN层级进行指定。


2.5 Multi positives

对于对象中心点的3x3的范围定义为正样本,也就是说如果某个特征点预测的4个值所构成的边界框的中心点在这个3x3的范围中时,其会被确认为正样本。而对于多个正样本中只会选择其中的一个作为候选框。

而在优化这些高质量的预测框时有可能带来有益的梯度,这可能会缓解训练中正负样本的极端不平衡。


2.6 SimOTA

作者对标签分配总结出了4个关键点:

1)loss/quality aware

2)center prior

3)dynamic top-k:对于每个ground-truth的动态正锚框数量

4)global view:全局视图

SimOTA满足以上的所以要求

OTA从全局角度分析标签分配,并将分配过程表述为最优运输(Optimal Transport ,OT)问题。在实践中作者发现,通过Sinkhorn-Knopp算法解决OT问题会带来25%的额外训练时间,因此作者将其简化为dynamic top-k策略,命名为SimOTA,以得到近似解。

SimOTA首先计算成对匹配度,表示为每个预测gt对的成本或质量。在SimOTA中,ground-truth与预测框之间的成本计算为:

image.png

对于每个ground-truth,选择在固定中心区域内代价最小的topk预测作为正样本。最后,将这些正预测对应的栅格赋为正,其余栅格赋为负。


3. Result


  • 与YOLOv5的对比:

image.png

  • 轻量级版本(YOLOX-Tiny,YOLOX-Nano)与其他轻量级的对比:

image.png

  • 与SOTA的对比:

image.png

总结:

作者为YOLO系列结合了比较先进的检测技术,比如:解耦检测头、anchor_free(逐像素点预测思想)、先进的标签分配策略。YOLOX在速度和精度之间实现了比其他所有模型尺寸的对手更好的权衡。

目录
打赏
0
0
0
0
21
分享
相关文章
调研180多篇论文,这篇综述终于把大模型做算法设计理清了
《A Systematic Survey on Large Language Models for Algorithm Design》综述了过去三年大型语言模型(LLMs)在算法设计中的应用。LLMs通过自然语言处理技术,助力生成、优化和验证算法,在优化、机器学习、数学推理等领域展现出广泛应用前景。尽管存在资源需求高、结果不确定等挑战,LLMs仍为算法设计带来新机遇。论文地址:https://arxiv.org/abs/2410.14716。
133 14
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(下)
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(下)
87 0
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(上)
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(上)
62 0
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-21(下)
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-21(下)
65 0
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
基于GA遗传优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于遗传算法优化的时间卷积神经网络(TCN)用于时间序列预测的方法。算法运行于 Matlab2022a,完整程序无水印,附带核心代码、中文注释及操作视频。TCN通过因果卷积层与残差连接学习时间序列复杂特征,但其性能依赖超参数设置。遗传算法通过对种群迭代优化,确定最佳超参数组合,提升预测精度。此方法适用于金融、气象等领域,实现更准确可靠的未来趋势预测。
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
110 31
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。
基于GA遗传算法的拱桥静载试验车辆最优布载matlab仿真
本程序基于遗传算法(GA)实现拱桥静载试验车辆最优布载的MATLAB仿真,旨在自动化确定车辆位置以满足加载效率要求(0.95≤ηq≤1.05),目标是使ηq尽量接近1,同时减少车辆数量和布载耗时。程序在MATLAB 2022A版本下运行,展示了工况1至工况3的测试结果。通过优化模型,综合考虑车辆重量、位置、类型及车道占用等因素,确保桥梁关键部位承受最大荷载,从而有效评估桥梁性能。核心代码实现了迭代优化过程,并输出最优布载方案及相关参数。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等