YOLOv5:TensorRT加速YOLOv5模型推理

news/2024/7/11 0:39:53 标签: YOLO, 深度学习, python

YOLOv5:TensorRT加速YOLOv5模型推理

  • 前言
  • 前提条件
  • 相关介绍
  • TensorRT加速YOLOv5模型推理
    • YOLOv5项目官方源地址
    • 将训练好的YOLOv5模型权重转换成TensorRT引擎
    • YOLOv5 best.pt推理测试
    • TensorRT Engine推理测试
    • 小结
  • 参考

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测

前提条件

  • 熟悉Python

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • PyTorch 是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了。它分为 CPU 和 GPU 版本,其他框架还有 TensorFlow、Caffe 等。PyTorch 是由 Facebook 人工智能研究院(FAIR)基于 Torch 推出的,它是一个基于 Python 的可续计算包,提供两个高级功能:1、具有强大的 GPU 加速的张量计算(如 NumPy);2、构建深度神经网络时的自动微分机制。
  • YOLOv5是一种单阶段目标检测算法,该算法在YOLOv4的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。它是一个在COCO数据集上预训练的物体检测架构和模型系列,代表了Ultralytics对未来视觉AI方法的开源研究,其中包含了经过数千小时的研究和开发而形成的经验教训和最佳实践。

YOLOv5_21">TensorRT加速YOLOv5模型推理

YOLOv5_22">YOLOv5项目官方源地址

git clone https://github.com/ultralytics/yolov5.git

YOLOv5TensorRT_27">将训练好的YOLOv5模型权重转换成TensorRT引擎

在这里插入图片描述

python export.py --imgsz 1024 --weights ./runs/train/exp/weights/best.pt --include engine --device 0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

YOLOv5_bestpt_37">YOLOv5 best.pt推理测试

python3 detect.py --imgsz 1024 --data data/my.yaml --source ./imgs --weights runs/train/exp/weights/best.pt 

在这里插入图片描述

TensorRT Engine推理测试

python3 detect.py --imgsz 1024 --data data/my.yaml --source ./imgs --weights runs/train/exp/weights/best.engine

在这里插入图片描述

小结

  • 可能是因为RTX 3070性能比较高,所以速度差别不大。
  • 从结果上看,所需时间,从0.009s(0.008s)提升到了0.006s(0.006s)。

参考

[1] https://github.com/ultralytics/yolov5

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测

http://www.niftyadmin.cn/n/392464.html

相关文章

深度学习实战34-基于paddle关键信息抽取模型训练的全流程

大家好,我是微学AI,今天我给大家介绍一下深度学习实战34-基于paddle关键信息抽取模型训练的全流程,我们在文档应用场景中,存在抽取关键信息的任务,比如身份证里的姓名和地址,快递单里的姓名和联系方式等等。传统的方法需要设计模板,但是这太繁琐了,也不够强健。因此,我…

C++11/C++14中constexpr的使用

常量表达式(const expression)是指值不会改变并且在编译过程中就能得到计算结果的表达式。字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 只要有可能使用constexpr,就使用它。 C11中constexpr的使用: constexpr是C11中…

Vim - Unix及类Unix系统文本编辑器

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者&…

C++算法:了解算法的复杂度

文章目录 前言一、算法是什么?二、算法复杂度是什么总结原创文章,未经许可,严禁转载 前言 有计算机科学家说过 “程序数据结构算法”,前面学习了基本的数据结构和树形、图结构,那么就可以开始算法学习了。算法是一个程…

Linux内核模块开发 第 6 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客(WaterCutter) 6 字符设备驱动 include/linux/fs.h 中定义了结构体 file_operations ,这个结构体包含指…

1计算机系统概述_1.2计算机系统层次结构

1.2 计算机系统层次结构 计算机系统(CO 自命名) 1、CO的组成 硬件系统和软件系统共同构成了一个完整的计算机系统 ——硬件:有形的物理设备,是CO中实际物理装置的总称 ——软件:在硬件上运行的程序和相关的数据及文…

苹果iPhone14如何批量删除联系人?iPhone 14批量删除联系人方法

苹果iPhone 14如何批量删除联系人?手动一个个删实在太麻烦了! 苹果iPhone 14手机的通讯录本身不支持批量删除联系人,但是如果通讯录在iCloud中开启过备份,就可以对联系人进行批量操作。 需要注意的是,iPhone 14手机端…

MMPose关键点检测实战

安装教程 https://github.com/TommyZihao/MMPose_Tutorials/blob/main/2023/0524/%E3%80%90A1%E3%80%91%E5%AE%89%E8%A3%85MMPose.ipynb git clone https://github.com/open-mmlab/mmpose.git -b tutorial2023 -b代表切换到某个分支,保证分支和作者的教程一致 ra…