YOLOX-PAI:加速YOLOX,比YOLOV6更快更强

访客2年前AI生活158
YOLOX-PAI:加速YOLOX,比YOLOV6更快更强

近日,阿里云机器学习平台团队PAI通过自研的PAI-EasyCV框架复现YOLOX算法,并结合了PAI自研的PAI-Blade推理加速框架优化模型性能,使得加速过后的YOLOX-PAI在速度和精度上都比现阶段的轻量级目标检测的SOTA算法YOLOV6 提速约20%,同时,PAI-EasyCV提供高效简洁的模型部署和端到端推理接口,供社区快速体验使用YOLOX-PAI的功能。

目前,EasyCV和Blade项目已在GitHub上开源:

https://github.com/alibaba/EasyCV

https://github.com/alibaba/BladeDISC

999.jpg

实现方案:

1. 提供了一套Apache License 训练/优化/推理的代码库以及镜像,可以实现当前社区40+mAP 量级最快(相比 YOLOV6 mAP提升0.4/加速13~20%)的目标检测模型。

2. 调研了YOLOX相关的改进技术和消融实验,总结了其中一些相对有帮助的改进,并以配置的方式提供出来。

3. 对目标检测的端到端推理进行灵活封装及速度优化,在V100上的端到端推理为3.9ms,相对原版YOLOX的9.8ms,加速250%,供用户快速完成目标检测推理任务。

本文,我们将重点介绍如何基于PAI-EasyCV使用PAI-Blade优化模型推理过程,及如何使用PAI-EasyCV进行模型训练、验证、部署和端到端推理。欢迎大家关注和使用PAI-EasyCV和PAI-Blade,进行简单高效的视觉算法开发及部署任务。

YOLOX-PAI 精益求精的算法改进

YOLOX-PAI是阿里云机器学习平台PAI 的开源计算机视觉代码库EasyCV中集成的 YOLOX 算法。通过对YOLOX 算法的分析,结合检测技术的调研,从以下4个方向对原版的YOLOX进行优化,

1. Backbone : repvgg[1] backbone

2. Neck : gsconv [2] / asff [3]

3. Head : toods[4] / rtoods

4. Loss : siou [5] / giou

在算法改进的基础上,利用PAI-Blade对改进后的的模型进行推理优化,开发了如下的PAI-YOLOX模型。具体改进的消融实验可以参考我们的[arxiv],筛选有效改进与现有主流算法的对比结果如下:

( -ASFF 代表使用了 NeckASFF, -TOODN代表使用N个中间层的TOODHead取代原有的YOLOXHead)

888(1)_看图王.jpg

从结果中可以看到,相比目前同水平(1ms以内)SOTA的YOLOV6模型,融合上述改进的YOLOX-PAI在同等精度/速度的条件下有一定的速度/精度优势。(PS:上表精度测量和速度测量上与YOLOV6对齐,不包含NMS和后处理,测试精度也分图片大小等于672/640两种。)

YOLOX-PAI 简单的端到端预测

777.jpg

针对使用PAI-EasyCV训练的YoloX-PAI 模型,用户可以使用PAI-EasyCV自带的导出功能得到优化后的模型,并使用 EasyCV 提供的TorchYoloXPredictor 进行端到端的推理。 该导出功能对检测模型进行了如下优化:

使用PAI-Blade优化模型推理速度,简化对模型的推理加速(TensorRT/编译优化)开发流程。

支持EasyCV配置TorchScript/PAI-Blade对图像前处理、模型推理、图像后处理分别优化,供用户灵活使用。

支持python环境下的Predictor结构端到端的模型推理优化,简化图片预测过程。

也可以参考[EasyCV detector.py] 自行组织相应的图像前处理/后处理过程,或直接使用我们导出好的模型和接口,这里提供一个已经导出好的检测模型,用户下载三个模型文件到本地 [preprocess, model, meta]

用户可以直接使用PAI-EasyCV提供的Predictor接口,通过如下简单的API调用,高效的进行图像的检测任务:

YOLOX-PAI 极致性能的推理优化

下图,我们展示了YOLOX-PAI在集成PAI-Blade/torchscript优化后和原版YOLOX的不同尺寸(s/m/l/x)模型的推理耗时对比, 在开启预处理优化和模型的PAI-Blade优化后:

666(1).jpg

333.jpg 

可以看到PAI-EasyCV导出的模型,极大程度的优化了原模型的端到端推理速度,达到了接近250%。

PAI-Blade 推理优化

PAI-Blade是由阿里云机器学习平台PAI开发的深度学习模型优化工具,可以针对不同的设备不同模型进行推理加速优化。PAI-Blade遵循易用性,鲁棒性和高性能为原则,将模型的部署优化进行高度封装,设计了统一简单的API,在完成Blade环境安装后,用户可以在不了解ONNX、TensorRT、编译优化等技术细节的条件下,通过简单的代码调用方便的实现对模型的高性能部署。更多PAI-Blade相关技术介绍可以参考 [PAI-Blade介绍]。

PAI-EasyCV中对PAI-Blade进行了支持,用户可以通过PAI-EasyCV的训练config 中配置相关的导出(export)参数,调用PAI-Blade用于优化导出模型,结合EasyCV Predictor完成图片的端到端的图像检测任务。

写在最后

YOLOX-PAI 是PAI-EasyCV团队基于旷视YOLOX 复现并优化的在V100BS32的1000fps量级下的SOTA检测模型。整体工作上集成和对比了很多社区已有的工作:替换基于RepVGG的高性能Backbone, 在Neck中添加基于特征图融合的ASFF/GSConv增强,在检测头中加入了任务相关的注意力机制TOOD结构。结合PAI-Blade编译优化技术,同等精度下比YOLOV6 加速13~20%。EasyCV提供配套了一系列算法/训练/推理优化代码和环境,目前,YOLOX-PAI已广泛的应用在阿里集团内外的互联网,智能零售,自动驾驶等客户场景中。

PAI-EasyCV(https://github.com/alibaba/EasyCV)是阿里云机器学习平台PAI研发的计算机视觉算法框架,已在集团内外多个业务场景取得相关业务落地成果,未来将聚焦在自监督学习/VisionTransformer等前沿视觉领域,并结合PAI-Blade等自研技术不断优化。欢迎大家参与进来一同进步。

本站部分文章来自互联网,文章版权归原作者所有。如有疑问请联系QQ:362580117!

相关文章

即刻开启零信任网络之旅,绎云推出永久免费的轻量级零信任网络产品

即刻开启零信任网络之旅,绎云推出永久免费的轻量级零信任网络产品

绎云推出永久免费的轻量级零信任网络产品——信域安全云网Lite(以下称信域Lite),帮助企业在碎片化的物理网络之上构建一张点对点虚拟网络,用...

商汤绝影蒋沁宏:智能驾驶算法平台化加速NOA量产落地| GAIR Live

商汤绝影蒋沁宏:智能驾驶算法平台化加速NOA量产落地| GAIR Live

近年来智能驾驶成为汽车行业的焦点,随着软硬件性能的提高,厂商们也开始了向更高级别的自动驾驶迈进的研发之路。 从简单的控制汽车横纵向移动到点对...

黄仁勋承认显卡制造过多、正降价销售;微信支付宝测试信用卡取现

英伟达CEO黄仁勋承认制造过多的显卡,目前在降价销售 8月25日消息,英伟达本季度个人电脑销售下滑,英伟达和英特尔一样,突然陷入困境。英伟达首...

传闻吉利汽车收购魅族?雷军造车,李书福造手机,殊途同归!

传闻吉利汽车收购魅族?雷军造车,李书福造手机,殊途同归!

传了近4个月的吉利汽车将收购魅族的传闻,恐怕就要尘埃落定了。 近日又有媒体报道,魅族已被吉利收购,目前正在完成交割阶段。对此,吉利表示“对市场...

李彦宏、张一鸣身边的「技术天花板」:廖若雪卷入自动驾驶创业大潮

又一互联网技术“大神”投身自动驾驶行业。 小编独家消息,原百度公司技术委员会主席、高德副总裁、美菜CTO廖若雪,加盟自动驾驶公司千挂科技,成为...

Nuance ACI技术 推出一年时间,就在临床中证明了自己的价值!

Nuance ACI技术 推出一年时间,就在临床中证明了自己的价值!

近日,加拿大哈利法克斯医学中心首席信息官表示,该中心正在利用人工智能文档识别技术审查临床病案(CDI),相比之前审查效率提高了20%...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。