标题:YOLOX-PAI: An Improved YOLOX Version by PAI
论文:https://arxiv.org/abs/2208.13040
代码:https://github.com/alibaba/EasyCV
1、简介EasyCV 是一个一体化计算机视觉工具箱,以方便使用各种 SOTA 计算机视觉方法。最近,作者将 YOLOX 的改进版 YOLOX-PAI 添加到 EasyCV 中。作者进行消融研究以调查某些检测方法对 YOLOX 的影响。作者还为 PAI-Blade 提供了一个简单的用法,用于加速基于 BladeDISC 和 TensorRT 的推理过程。
最后,在单个 NVIDIA V100 GPU 上在 1.0 毫秒内收到 COCO 数据集上的 42.8 mAP,这比 YOLOv6 快一点。 EasyCV 中还设计了一个简单但高效的预测器 api 来进行端到端目标检测。
YOLOX 是最著名的单阶段物体检测方法之一,已广泛应用于自动驾驶、缺陷检测等各个领域。它在 YOLO 系列中引入了解耦头和 Anchor-free 方式,并在 40 mAP 到 50 mAP 之间获得最先进的结果。
考虑到它的灵活性和效率,作者打算将 YOLOX 集成到 EasyCV 中,这是一种一体化的计算机视觉方法,即使是初学者也能轻松使用计算机视觉算法。此外,通过使用检测 Backbone 、 Neck 和 Head 的不同增强来研究对 YOLOX 的改进。用户可以根据自己的需求简单地设置不同的配置来获得合适的目标检测模型。
此外,基于 PAI-Blade (PAI 的推理优化框架),进一步加快了推理过程,并提供了一个简单的 api 来在 EasyCV 中使用 PAI-Blade 。最后,设计了一个高效的预测器 api ,以端到端的方式使用 YOLOX-PAI ,大大加速了原始 YOLOX 。 YOLOX-PAI 与最先进的目标检测方法之间的比较如图 1 所示。
简而言之,本文的主要贡献如下:
在 EasyCV 中发布 YOLOX-PAI 作为一个简单而高效的目标检测工具(包含 docker 图像、模型训练、模型评估和模型部署的过程)。希望即使是初学者也可以使用 YOLOX-PAI 来完成他的目标检测任务。
对现有的基于 YOLOX 的目标检测方法进行了消融研究,其中仅使用一个配置文件来构建自行设计的 YOLOX 模型。随着架构的改进和 PAI-Blade 的效率,在单个 NVIDIA Tesla V100 GPU 上在 1ms 内获得了 40 mAP 和 50 mAP 中最先进的目标检测结果,用于模型推理。
在 EasyCV 中提供了一个灵活的预测器 API ,分别加速了预处理、推理和后处理过程。这样,用户可以更好地使用 YOLOX-PAI 进行端到端的目标检测任务。
最近, YOLOv6 和 PP-YOLOE 已经将 CSPNet 的 Backbone 替换为 RepVGG 。在 RepVGG 中,在推理过程中使用 3×3 的卷积块来代替多分支结构,有利于节省推理时间和提高目标检测结果。在 YOLOv6 之后,还在 YOLOX-PAI 中使用基于 RepVGG 的 Backbone 作为选择。
2.2、Neck
作者使用两种方法来提升 YOLOX 在 YOLOX-PAI 的 Neck 的性能,即:
用于特征增强的自适应空间特征融合( ASFF )及其变体(记为 ASFF_Sim );
GSConv,一个轻量级的卷积块,以降低计算成本。
原始的 ASFF 方法使用几个 vanilla 卷积块来首先统一不同特征图的维度。受 YOLOv5 中 Focus 层的启发,作者通过使用非参数切片操作和均值操作来替换卷积块以获得统一的特征图(表示为 ASFF_Sim )。具体来说, YOLOX 输出的每个特征图的操作在图 2 中定义。
作者还使用2种基于 GSConv 的 Neck 来优化 YOLOX 。使用的 Neck 架构如图3和图4所示。两种架构的区别在于是否将所有块替换为 GSConv 。正如作者所证明的那样, GSconv 是专门为通道达到最大和尺寸达到最小的 Neck 设计的。
2.3、Head
作者通过注意力机制增强了 YOLOX-Head ,以协调目标检测和分类的任务(表示为 TOOD-Head )。架构如图 5 所示。首先使用一个 Stem 层来减少通道,然后是一组间卷积层以获得间特征图。最后,根据不同的任务计算自适应权重。分别测试了在 TOOD-Head 中使用 vanilla 卷积或基于 repvgg 的卷积的结果。
2.4、PAI-Blade
PAI-Blade 是一个用于模型加速的简单且强大的推理优化框架。它基于许多优化技术,如 Blade Graph Optimizer 、 TensorRT 、 PAI-TAO ( Tensor Accelerator and Optimizer )等。 PAI-Blade 将自动搜索优化输入模型的最佳方法。因此,没有模型部署专业知识的人也可以使用 PAI-Blade 来优化推理过程。作者在 EasyCV 中集成了 PAI-Blade 的使用,让用户只需更改导出配置即可获得高效的模型。
2.5、EasyCV Predictor
除了模型推断,预处理功能和后处理功能在端到端目标检测任务中也很重要,而现有的目标检测工具箱往往会忽略这些功能。在 EasyCV 中,作者允许用户灵活选择是否使用预处理/后处理程序导出模型。然后,提供了一个预测器 api 来执行高效的端到端目标检测任务,整个过程只需几行代码。
3、实验3.1、SOTA对比
3.2、消融实验 1、Backbone的影响
2、Neck的影响
3、Head的影响
4、Blade的影响
4、参考
[1].YOLOX-PAI: An Improved YOLOX Version by PAI 返回搜狐,查看更多
责任编辑: