首页 > 其他分享 >yolov7 tensorrt模型加速部署【实战】

yolov7 tensorrt模型加速部署【实战】

时间:2023-01-25 10:00:25浏览次数:61  
标签:yolov7 实战 .. -- onnx tensorrt images

0. linux环境配置

基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,在2023年已经更新模型:YOLOv8, YOLOv7, YOLOv6, YOLOv5, YOLOv4, YOLOv3, YOLOX, YOLOR,pphumanseg,u2net,EfficientDet。
Windows10教程正在制作,可以关注仓库:https://github.com/FeiYull/TensorRT-Alpha

参考我这篇保姆教程《yolov8 tensorrt模型加速部署【实战】》第二章Ubuntu18.04环境配置

路测视频:yolov7 tensorrt + cuda路测

1. 导出onnx

直接在网盘下载onnx[weiyun]:weiyun or google driver 或者手动导出onnx:

git clone https://github.com/WongKinYiu/yolov7
git checkout  072f76c72c641c7a1ee482e39f604f6f8ef7ee92
# 640
python export.py --weights yolov7-tiny.pt  --dynamic  --grid
python export.py --weights yolov7.pt  --dynamic  --grid
python export.py --weights yolov7x.pt  --dynamic  --grid
# 1280
python export.py --weights yolov7-w6.pt  --dynamic  --grid --img-size 1280

2.编译 onnx

使用tensorrt官方工具编译onnx文件。

# 把你的onnx文件放到这个路径:tensorrt-alpha/data/yolov7
cd tensorrt-alpha/data/yolov7
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-8.4.2.4/lib
# 640
../../../../TensorRT-8.4.2.4/bin/trtexec    --onnx=yolov7-tiny.onnx  --saveEngine=yolov7-tiny.trt  --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
../../../../TensorRT-8.4.2.4/bin/trtexec    --onnx=yolov7.onnx   	--saveEngine=yolov7.trt       --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
../../../../TensorRT-8.4.2.4/bin/trtexec    --onnx=yolov7x.onnx   	--saveEngine=yolov7x.trt      --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640
# 1280
../../../../TensorRT-8.4.2.4/bin/trtexec    --onnx=yolov7-w6.onnx    --saveEngine=yolov7-w6.trt    --buildOnly --minShapes=images:1x3x1280x1280 --optShapes=images:4x3x1280x1280 --maxShapes=images:8x3x1280x1280

# note:if report an error(Error Code 1: Cuda Runtime (an illegal memory access was encountered "bool context = m_context->executeV2((void**)bindings)" returns false) 
when running the model(yolov7-w6), just lower the batch_size.

4.运行

git clone https://github.com/FeiYull/tensorrt-alpha
cd tensorrt-alpha/yolov7
mkdir build
cd build
cmake ..
make -j10
# note: the dstImage will be saved in tensorrt-alpha/yolov7/build by default

## 640
# infer image
./app_yolov7  --model=../../data/yolov7/yolov7-tiny.trt --size=640  --batch_size=1  --img=../../data/6406401.jpg  --show --savePath
./app_yolov7  --model=../../data/yolov7/yolov7-w6.trt   --size=1280 --batch_size=1  --img=../../data/6406401.jpg  --show --savePath

# infer video
./app_yolov7  --model=../../data/yolov7/yolov7-tiny.trt     --size=640 --batch_size=8  --video=../../data/people.mp4  --show --savePath=../

# infer camera
./app_yolov7  --model=../../data/yolov7/yolov7-tiny.trt     --size=640 --batch_size=4  --cam_id=0  --show

下面右图是运行效果,左边是yolov7官方效果。这里给一个视频测试:
在这里插入图片描述

yolov7-tiny : Offical( left ) vs Ours( right )

TensorRT-Alpha

标签:yolov7,实战,..,--,onnx,tensorrt,images
From: https://www.cnblogs.com/feiyull/p/17066685.html

相关文章

  • Web安全入门与靶场实战(16)- 越权访问漏洞
    我们接着上篇博文来继续研究靶机中的网站。首先网站中有个login登录页面,这里就可能会存在SQL注入漏洞。但是作为一个零基础入门课程,这里不准备展开介绍SQL注入,这个可以放在......
  • PyTorch图像分类全流程实战--迁移学习训练图像分类模型03
    教程同济子豪兄:https://space.bilibili.com/1900783斯坦福CS231N【迁移学习】中文精讲:https://www.bilibili.com/video/BV1K7411W7So斯坦福CS231N【迁移学习】官方笔记:h......
  • 【实战】yolov8 tensorrt模型加速部署
    【实战】yolov8tensorrt模型加速部署TensorRT-Alpha基于tensorrt+cudac++实现模型end2end的gpu加速,支持win10、linux,在2023年已经更新模型:YOLOv8,YOLOv7,YOLOv6,YOLO......
  • DVWA靶场实战(十)——XSS(DOM)
     DVWA靶场实战(十) 五、XSS(DOM):1.漏洞原理:XSS全称为CrossSiteScripting,由于和层叠样式表(CascadingStyleSheets,CSS)重名,所以为了区别别叫做XSS。主要基于Java......
  • Web安全入门与靶场实战(15)- 修改HTTP请求头
    在HTTP请求报文中,请求头是我们需要重点了解的部分。请求头主要用于向网站发送客户端的一些信息,请求头中的字段非常多,并且都遵循着固定格式。不过并不是在每个请求报文中都要......
  • 《RPC实战与核心原理》学习笔记Day7
    08|服务发现:到底是要CP还是AP?我们为什么需要“服务发现”?从高可用的角度出发,在生产环境中,服务提供方通常会以集群的方式对外提供服务,集群中的IP地址随时可能发生变化,......
  • 《RPC实战与核心原理》学习笔记Day6
    07|架构设计:设计一个灵活的RPC框架RPC就是把拦截到的方法参数,转成可以在网络中传输的二进制,并保证在服务提供方能正确地还原出语义,最终实现像调用本地一样地调用远程的......
  • dubbo实战篇:dubbo超时设置
    在springboot项目中,dubbo消费者在设置dubbo超时时间时,可以在application.yml里设置属性dubbo.consumer.timeout。这是服务级。也可以在@Reference注解上......
  • 《Rasa实战》读书笔记(一)
    安装Rasa需要的Python版本在3.7<=python<=3.10如果python版本太低或太高,pip安装都将会失败,我用的是3.10版本。window下python默认会有多版本管理工具,pythonLaunche......
  • DVWA靶场实战(九)——Weak Session IDS
    DVWA靶场实战(九)九、WeakSessionIDS:1.漏洞原理:WeakSessionIDS也叫做弱会话,当用户登录后,在服务器就会创造一个会话(session),叫做会话控制,接着访问页面的时候就不用......