如何用TensorRT部署YOLOv7

本文首发于微信公众号【DeepDriving】,欢迎关注。

前言

YOLOv7已经出来一段时间了,之前一直没有时间去看。最近抽空学习了一下,不禁感慨一下,现在的YOLO系列目标检测算法真是卷成麻花了,各种算法层出不穷,让人目不暇接。最重要的是,我感觉自己学不动了…

之前YOLOXYOLOv6出来后,我分别写了文章介绍如何使用TensorRTC++接口部署这两个模型,并且把代码放在了gitee上,感兴趣的可以参考下面的链接:

如何用TensorRT部署YOLOv6

如何用TensorRT部署YOLOX

本文将介绍如何用TensorRTC++接口部署YOLOv7

实现过程

1. 下载PyTorch模型

YOLOv7PyTorch模型可以从官方GitHub仓库Releases中下载,目前的版本号为v0.1。下面的操作是下载yolov7.pt模型:

wget -c https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt

2. 转换为ONNX模型

下载好PyTorch格式的模型文件后,可以用官方提供的脚本转换为ONNX模型:

python export.py --weights ./yolov7.pt --grid --simplify --img-size 640 640

官方的脚本还提供把NMS操作集成到ONNX模型中的功能,我个人不太想这么做,感兴趣的读者可以试一下。

上面的操作导出的ONNX模型已经把后处理操作集成到了模型中,下图红框中的操作就是把模型三个检测头输出的内容经过处理后再汇总到一起作为输出,这样做的好处是可以避免自己去写复杂的后处理代码。

3. 基于TensorRT部署ONNX模型

如何使用TensorRTC++接口部署ONNX模型可以参考我之前给【自动驾驶之心】公众号写的这篇文章:手把手教学!TensorRT部署实战:YOLOv5的ONNX模型部署

这篇文章以YOLOv5为例,通过大量的代码一步步讲解如何使用TensorRT框架部署ONNX模型,主要目的是希望读者能够通过这篇文章学习到TensorRT模型部署的基本流程,比如如何准备输入数据、如何调用API用模型做推理、如何解析模型的输出结果。相信看完这篇文章的读者
已经基本掌握使用TensorRT部署ONNX模型的基本方法,并且能做到举一反三自己部署其他模型了,比如YOLOXYOLOv6YOLOv7等等。

我就来说一下重点吧,重点就是这篇文章的代码可以直接拿来部署YOLOv7

既然这样,本文就不再重复叙述了。如果还没有看这篇文章的话,那就赶紧点击上面的链接查看吧。

结果

yolov7.onnx模型测试的几个结果如下:

下面是跑视频的结果:

基于TensorRT部署的YOLOv7模型,来看下效果怎么样

在我的GeForce GTX 1050 Ti显卡(只支持FP32)上测试各个模型的耗时如下表所示:

模型输入尺寸耗时
yolov7-tiny.onnx640x6408 ms
yolov7.onnx640x64066 ms
yolov7x.onnx640x640113 ms
yolov7-w6.onnx640x64056 ms
yolov7-e6.onnx640x64083 ms
yolov7-d6.onnx640x640108 ms
yolov7-e6e.onnx640x640126ms

换到装了GeForce RTX 3070显卡(支持FP32FP16)的服务器上去试一下:

模型输入尺寸模型精度耗时
yolov7-tiny.onnx640x640FP322 ms
yolov7.onnx640x640FP3213 ms
yolov7x.onnx640x640FP3220 ms
yolov7-w6.onnx640x640FP3212 ms
yolov7-e6.onnx640x640FP3217 ms
yolov7-d6.onnx640x640FP3221 ms
yolov7-e6e.onnx640x640FP3225ms
yolov7-tiny.onnx640x640FP161 ms
yolov7.onnx640x640FP166 ms
yolov7x.onnx640x640FP169 ms
yolov7-w6.onnx640x640FP166 ms
yolov7-e6.onnx640x640FP167 ms
yolov7-d6.onnx640x640FP169 ms
yolov7-e6e.onnx640x640FP1610ms

果然在高级显卡上就是跑得快呀,等我有钱了一定要去换个好点的显卡!

总结

没啥好总结的,对于这种优秀的开源工作,我只能用两个字来评价:真香!

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeepDriving

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值