ubuntu18.04 TensorRT 部署 yolov5-7.0推理

news/2024/7/11 1:36:00 标签: YOLO

文章目录

  • 1、环境配置
  • 2、推理部分
    • 2.1、检测
    • 2.2、分类
    • 2.3、分割
    • 2.4、INT8 量化

1、环境配置

链接: TensorRT cuda环境安装

2、推理部分

下载yolov5对应版本的包

https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5
在这里插入图片描述

2.1、检测

1、源码模型下载
git clone -b v7.0 https://github.com/ultralytics/yolov5.git
git clone -b yolov5-v7.0 https://github.com/wang-xinyu/tensorrtx.git
cd yolov5/
wget https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt

2、pt模型转换
# 将tensorrx文件夹下yolov5下的gen_wts.py拷贝到yolov5目录下
cp [PATH-TO-TENSORRTX]/yolov5/gen_wts.py .
python gen_wts.py -w yolov5s.pt -o yolov5s.wts

3、构建tensorrtx/yolov5并运行
cd tensorrx目录下
mkdir build
cd build
cp [PATH-TO-ultralytics-yolov5]/yolov5s.wts . 
cmake ..
make

# 转换成engin
./yolov5_det -s yolov5s.wts yolov5s.engine s

# 执行推理
./yolov5_det -d yolov5s.engine ../images

# 自定义 model with depth_multiple=0.17, width_multiple=0.25 in yolov5.yaml
./yolov5_det -s yolov5_custom.wts yolov5.engine c 0.17 0.25
./yolov5_det -d yolov5.engine ../images

4、在python中运行
# 安装python-tensorrt, pycuda等。
# 确保yolov5s.engin和libmyplugins已经构建好
python yolov5_det_trt.py

# 另一个版本的python脚本,它使用CUDA python而不是pycuda
python yolov5_det_cuda_python.py

不拷贝到yolov5目录下直接在tensorrx目录下执行就会报错
在这里插入图片描述
推理结果
在这里插入图片描述
在这里插入图片描述

2.2、分类

# Download ImageNet labels
wget https://github.com/joannzhang00/ImageNet-dataset-classes-labels/blob/main/imagenet_classes.txt

# Build and serialize TensorRT engine
./yolov5_cls -s yolov5s-cls.wts yolov5s-cls.engine s

# Run inference
./yolov5_cls -d yolov5s-cls.engine ../images

2.3、分割

# Build and serialize TensorRT engine
./yolov5_seg -s yolov5s-seg.wts yolov5s-seg.engine s

# Download the labels file
wget -O coco.txt https://raw.githubusercontent.com/amikelive/coco-labels/master/coco-labels-2014_2017.txt

# Run inference with labels file
./yolov5_seg -d yolov5s-seg.engine ../images coco.txt

在这里插入图片描述

2.4、INT8 量化

1、准备校准图像,您可以从训练集中随机选择 1000 张图像。coco_calib对于coco,你也可以从百度盘下载我的校准图像pwd:链接: [a9wh](https://pan.baidu.com/share/init?surl=GOm_-JobpyLMAqZWCDUhKg)

2、将其解压到 yolov5/build 中

3、在 src/config.h 中设置宏USE_INT8并 make

4、序列化模型并进行测试

说明:推理流程来源官方文档:https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5


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

相关文章

SpringIOC之support模块GenericGroovyApplicationContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

【优选算法】专题四:前缀和(一)

文章目录 DP34 【模板】前缀和DP35 【模板】二维前缀和724.寻找数组的中心下标238.除自身以外数组的乘积 DP34 【模板】前缀和 DP34 【模板】前缀和 此方法的时间复杂度是O(Q)O(N); import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public cl…

《C++大学教程》4.13汽油哩数

题目: 每位司机都关心自己车辆的行车里程数。有位司机通过记录每次出行所行驶的英里数和用油的加仑数来跟踪他多次出车的情况。请开发一个C程序,它使用一条while语句输入每次出车的行驶英里数和加油量。该程序应计算和显示每次出车所得到的每加仑行驶英里数&#x…

C++入门【29-C++ 把引用作为返回值】

通过使用引用来替代指针,会使 C 程序更容易阅读和维护。C 函数可以返回一个引用,方式与返回一个指针类似。 当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面…

华为路由器及交换机基础配置命令大全

01. 系统名设置 [课件入口-华为VRP系统课件](./DataCom_PPT/IA_PPT/03 华为VRP系统.pptx) Ctrl鼠标左键打开(Typora) system-view sysname [设备名]02. VLAN 配置和接口配置 [笔记入口-VLAN理论基础笔记](./Summary of Datacom Notes/02-vlan通讯.tx…

网络地图服务(WMS)详解

文章目录 1.概述2.GetCapabilities3.GetMap4.GetFeatureInfo 阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。 1.概述 经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非…

【机器学习】循环神经网络(二)-LSTM示例(keras)国际航空乘客问题的回归问题...

使用 Keras 在 Python 中使用 LSTM 循环神经网络进行时间序列预测 国际航空乘客问题的回归问题 这个文件是一个CSV格式的数据集,它包含了从1949年1月到1960年12月的每个月的国际航空乘客的总数(以千为单位)。第一行是列名,分别是&…

水产冷链物流行业零下25℃库架一体 海格里斯HEGERLS四向穿梭式冷藏冷库智能密集仓

随着国内外仓储物流整体规模和低温产品消费需求的稳步增长,冷链市场应用潜力不断释放。在传统“货架叉车”的方式下,货物、人员及机械设备不断进出,容易造成温度波动,导致冷量流失。立体冷库则以更高密度、更具成本效益的方式&…