EasyCV
是一个一体化计算机视觉工具箱,以方便使用各种SOTA
计算机视觉方法。最近,作者将YOLOX
的改进版YOLOX-PAI
添加到EasyCV
中。作者进行消融研究以调查某些检测方法对YOLOX
的影响。作者还为PAI-Blade
提供了一个简单的用法,用于加速基于BladeDISC
和TensorRT
的推理过程。最后,在单个 NVIDIA V100 GPU 上在 1.0 毫秒内收到
COCO
数据集上的 42.8 mAP,这比YOLOv6
快一点。EasyCV
中还设计了一个简单但高效的预测器 api 来进行端到端目标检测。
1、简介
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
进行端到端的目标检测任务。
2、本文方法
2.1、Backbone
最近,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
5、推荐阅读
全新高性能 FPN | ssFPN 教您如何修改 FPN 让大小目标在目标检测中都有提升!!!