【目标检测】YOLOv5推理加速实验:TensorRT加速

这篇具有很好参考价值的文章主要介绍了【目标检测】YOLOv5推理加速实验:TensorRT加速。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前两篇博文分别讨论了YOLOv5检测算法的两种加速思路:采用多进程或批量检测,不过效果均收效甚微。本问将讨论使用TensorRT加速以及半精度推理/模型量化等优化策略对检测加速的实际影响。

测试环境

测试图片分辨率:13400x9528
GPU:RTX4090
Cuda:11.7
YOLOv5版本:最新版(v7.0+)
检测策略:将整张图片直接设置img_size为(1280x1280)进行检测(忽略精度,只注重速度)

环境搭建

关于TensorRT的安装在之前博文【目标检测】使用TensorRT加速YOLOv5中已经写过,这里不作赘述。

Tensort模型转换

运行export.py即可将pt模型转换成Tensort(.engine)格式,主要需要改两个参数:

--imgsz : default=[1280, 1280]
--include :engine
--device : 0

实验结论

下面是选用两张13400x9528进行检测,下表是检测结果:

模型名称 检测时间(s)
yolov5n.pt 2.279
yolov5n.engine 2.199
yolov5s.pt 2.368
yolov5s.engine 2.232

可以发现,检测速度是有一定提升的,不过似乎并不明显。

YOLOv5最新版本可以将检测前后三个步骤(预处理、推理、非极大化抑制)分别统计时间,yolov5s.pt和yolov5s.engine的时间如下:

yolov5s.pt
Speed: 1.0ms pre-process, 19.5ms inference, 1.5ms NMS per image at shape (1, 3, 1280, 1280)
yolov5s.engine
Speed: 270.5ms pre-process, 3.0ms inference, 2.0ms NMS per image at shape (1, 3, 1280, 1280)

可以看到,转成TensorRT之后,推理(inference)时间确实如某些资料所述,加速了五倍以上,但预处理时间却慢了不少。这背后的原因有待探究。

在转TensorRT模型过程中,有一些其它参数可供选择,比如,可以使用半精度推理和模型量化策略。
半精度推理即FP32->FP16,模型量化策略(int8)较复杂,具体原理可参考部署系列——神经网络INT8量化教程第一讲!

在模型转换过程中,设置参数--half--int8为True,即可使用这两个策略,相应会增加转换的时间,yolov5n模型转换大概耗时312.8s。

使用该策略后,提升效果还是比较明显的,速度较之前又肉眼可见得变快了。

模型名称 检测时间(s)
yolov5n.engine 1.586
yolov5s.engine 1.607

总结

本实验结果汇总如下表:

模型名称 单帧检测时间 单秒检测帧数
yolov5n.pt 1.140 0.878
yolov5n.engine 1.100 0.910
yolov5n.engine(量化后) 0.793 1.261
yolov5s.pt 1.184 0.845
yolov5s.engine 1.116 0.896
yolov5s.engine(量化后) 0.804 1.245

To do

在实验过程中发现了一个奇怪的现象,按理论来说,模型量化之后,模型体积估计会小不少,然而使用本文方法导出的TensorRT模型体积反而更大,有相关博文指出,使用本方法导出的TensorRT模型和使用Cmake编译形成的TensorRT模型存在效果差异,之后有时间会进一步进行探索(先挖个坑)。

参考资料

常规方法转TensorrRT:https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5文章来源地址https://www.toymoban.com/news/detail-449490.html

到了这里,关于【目标检测】YOLOv5推理加速实验:TensorRT加速的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jetson nano部署Yolov5目标检测 + Tensor RT加速(超级详细版)

    在工作或学习中我们需要进行部署,下面这篇文章是我亲自部署jetson nano之后做出的总结,包括自己遇到一些报错和踩坑,希望对你们有所帮助 : ) 读卡器 SD卡  小螺丝刀 网线(更改语言需要网络) 烧录镜像就是要把SD卡里的东西给完全清除,好比我们电脑重装系统一样,

    2024年02月13日
    浏览(41)
  • 利用python版tensorRT进行推理【以yolov5为例】

    上一篇文章中已经详细叙述了如何用tensorRT将onnx转为engine【利用python版tensorRT导出engine【以yolov5为例】_爱吃肉的鹏的博客-CSDN博客】。 本篇文章将继续讲解trt的推理部分。 与之前一样,在讲解之前需要先介绍一些专业术语,让大家看看这些内置函数都有什么功能。 1.Binding含

    2024年02月12日
    浏览(44)
  • yolov5-6.0项目部署+自用Pytorch模型转换rknn模型并在RK3568 linux(Debian)平台上使用qt部署使用NPU推理加速摄像头目标识别详细新手教程

    1 我们打开yolov的官网,Tags选择6.0版本 2. 下载该压缩包并解压到工程目录下 3. 我们这里使用pycharm,专门针对python的IDE,用起来非常方便,下载方式就是官网直接下载,用的是社区版 4. 我们需要安装环境,这里我推荐安装Anaconda在电脑上,这是一个非常方便的包管理工具,可

    2024年02月05日
    浏览(68)
  • YOLOv5/YOLOv8改进实战实验:新型***亚像素卷积***优化上采样技术提升目标检测效果(即插即用)

      这是一个用于上采样的子像素卷积(SubPixel Convolution)模块,它是一种常见的图像超分辨率的技术,也可以应用于目标检测模型(如YOLO)的特征图上采样。下面我会分几个部分详细介绍这个模块的原理和在YOLO中的应用:   模块介绍:SubPixelConvolution_s是一个PyTorch模块,

    2024年02月15日
    浏览(50)
  • 【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    断断续续地前后花了一个多星期配置环境以及部署模型,期间也报了无数错误,参考了很多文档,求助了身边的朋友,因此尽可能详细的记录一下这个过程。 此处感谢Xnhyacinth在配置过程中对我的帮助哈哈哈꒰ঌ( ⌯’ \\\'⌯)໒꒱ 我主机上的环境是python3.9,cuda11.6 jetson nano环境

    2023年04月12日
    浏览(56)
  • jetson nx目标检测环境配置遇到的一万个坑,安装v1.12.0版本的pytorch和v0.13.0版本的vision torchvision,以及使用TensorRT部署YOLOv5.

    本文参考了许多官网和博客,肯定是存在抄袭的,请各位大哥不要喷我啊。 自己工作找到的是医学信号方向的算法工程师,所以以后和CV可能无缘了,将自己一个多星期的心血历程发表出来,希望大家接起我的CV火炬,接着前行,各位加油!(后面也学习了yolov5-6.0 yolov7的模型

    2024年02月05日
    浏览(50)
  • [CV学习笔记]tensorrt加速篇之yolov5seg 实例分割

    1. 前言 yolov5-7.0版本继续更新了实例分割的代码,其分割的精度与速度令人惊讶,本文将yolov5-seg进行tensorrt加速,并利用矩阵的方法对进行部分后处理. 实例分割原理:yolact yolov5seg-cpp实现代码:Yolov5-instance-seg-tensorrt cpp矩阵实现:algorithm-cpp 本文测试代码:https://github.com/Rex-LK/tenso

    2024年02月02日
    浏览(90)
  • 深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧

    大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧,TensorRT是NVIDIA公司提供的一个深度学习推理(inference)优化器和运行时库。它专门为生产环境下的高性能深度学习推理提供优化支持。TensorRT可以加速深度学习模型在

    2024年02月02日
    浏览(46)
  • 香橙派5使用NPU加速yolov5的实时视频推理(二)

            这一步就需要我们进入到Ubuntu20.04系统中了,我的Ubuntu系统中已经下载好了anaconda,使用anaconda的好处就是可以方便的安装一些库,而且还可以利用conda来配置虚拟环境,做到环境与环境之间相互独立。         对于我来说,使用了以下命令创建了一个名为rknn_cesh

    2024年02月02日
    浏览(53)
  • 香橙派5使用NPU加速yolov5的实时视频推理(一)

            寒假里,博主完成了树莓派4B搭载yolofastest-V2的ncnn加速,效果挺不错的,但总感觉还是稍微差点意思,于是就购买了一块香橙派5,想要用RK3588芯片自带的NPU来加速深度学习的部署,在2023年3月4日也是完成了香橙派5的NPU加速深度学习部分,其效果也确实非常可观,在画

    2024年02月02日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包