AI学习者 · 2022年08月31日 · 广东

阿里巴巴提出YOLOX-PAI,1ms内精度无敌,超越YOLOv6、PP-YOLOE

image.png

EasyCV 是一个一体化计算机视觉工具箱,以方便使用各种 SOTA 计算机视觉方法。最近,作者将 YOLOX 的改进版 YOLOX-PAI 添加到 EasyCV 中。作者进行消融研究以调查某些检测方法对 YOLOX 的影响。作者还为 PAI-Blade 提供了一个简单的用法,用于加速基于 BladeDISCTensorRT 的推理过程。

最后,在单个 NVIDIA V100 GPU 上在 1.0 毫秒内收到 COCO 数据集上的 42.8 mAP,这比 YOLOv6 快一点。EasyCV 中还设计了一个简单但高效的预测器 api 来进行端到端目标检测。

1、简介

YOLOX 是最著名的单阶段物体检测方法之一,已广泛应用于自动驾驶、缺陷检测等各个领域。它在 YOLO 系列中引入了解耦头和Anchor-free方式,并在 40 mAP 到 50 mAP 之间获得最先进的结果。

考虑到它的灵活性和效率,作者打算将 YOLOX 集成到 EasyCV 中,这是一种一体化的计算机视觉方法,即使是初学者也能轻松使用计算机视觉算法。此外,通过使用检测BackboneNeckHead的不同增强来研究对 YOLOX 的改进。用户可以根据自己的需求简单地设置不同的配置来获得合适的目标检测模型。

image.png

此外,基于 PAI-Blade(PAI 的推理优化框架),进一步加快了推理过程,并提供了一个简单的 api 来在 EasyCV 中使用 PAI-Blade。最后,设计了一个高效的预测器 api,以端到端的方式使用 YOLOX-PAI,大大加速了原始 YOLOXYOLOX-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

最近,YOLOv6PP-YOLOE 已经将 CSPNetBackbone 替换为 RepVGG。在 RepVGG 中,在推理过程中使用 3×3 的卷积块来代替多分支结构,有利于节省推理时间和提高目标检测结果。在 YOLOv6 之后,还在 YOLOX-PAI 中使用基于 RepVGGBackbone 作为选择。

2.2、Neck

作者使用两种方法来提升 YOLOXYOLOX-PAINeck的性能,即:

  1. 用于特征增强的自适应空间特征融合(ASFF)及其变体(记为ASFF_Sim);
  2. GSConv,一个轻量级的卷积块,以降低计算成本。

原始的 ASFF 方法使用几个 vanilla 卷积块来首先统一不同特征图的维度。受 YOLOv5Focus 层的启发,作者通过使用非参数切片操作和均值操作来替换卷积块以获得统一的特征图(表示为 ASFF_Sim)。具体来说,YOLOX 输出的每个特征图的操作在图 2 中定义。

image.png

作者还使用2种基于 GSConvNeck 来优化 YOLOX。使用的 Neck 架构如图3和图4所示。两种架构的区别在于是否将所有块替换为 GSConv。正如作者所证明的那样,GSconv 是专门为通道达到最大和尺寸达到最小的 Neck 设计的。

image.png

image.png

2.3、Head

作者通过注意力机制增强了 YOLOX-Head,以协调目标检测和分类的任务(表示为 TOOD-Head)。架构如图 5 所示。首先使用一个 Stem 层来减少通道,然后是一组间卷积层以获得间特征图。最后,根据不同的任务计算自适应权重。分别测试了在 TOOD-Head 中使用 vanilla 卷积或基于 repvgg 的卷积的结果。

image.png

2.4、PAI-Blade

PAI-Blade 是一个用于模型加速的简单且强大的推理优化框架。它基于许多优化技术,如 Blade Graph OptimizerTensorRTPAI-TAOTensor Accelerator and Optimizer)等。PAI-Blade 将自动搜索优化输入模型的最佳方法。因此,没有模型部署专业知识的人也可以使用 PAI-Blade 来优化推理过程。作者在 EasyCV 中集成了 PAI-Blade 的使用,让用户只需更改导出配置即可获得高效的模型。

2.5、EasyCV Predictor

除了模型推断,预处理功能和后处理功能在端到端目标检测任务中也很重要,而现有的目标检测工具箱往往会忽略这些功能。在 EasyCV 中,作者允许用户灵活选择是否使用预处理/后处理程序导出模型。然后,提供了一个预测器 api 来执行高效的端到端目标检测任务,整个过程只需几行代码。

3、实验

3.1、SOTA对比

image.png

3.2、消融实验

1、Backbone的影响

image.png

2、Neck的影响

image.png

3、Head的影响

image.png

4、Blade的影响

image.png

4、参考

[1].YOLOX-PAI: An Improved YOLOX Version by PAI

作者:ChaucerG
文章来源:集智书童

推荐阅读

更多人工智能干货请关注 嵌入式AI 专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
16356
内容数
1226
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息