IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 实战教程:win10环境下用TensorRT推理YOLOv5 -> 正文阅读

[人工智能]实战教程:win10环境下用TensorRT推理YOLOv5

本文章记录在win10环境下用TensorRT推理YOLOv5.
例子来源于大佬的项目:https://github.com/wang-xinyu/tensorrtx,但此工程是在ubuntu上开发,在win10部署上不友好,故特作此贴。此贴致敬清华大佬王鑫宇,向王鑫宇学习!

1. 项目工程环境

本文所用的环境如下:

WIN 10
CUDA 10.2
CuDnn 7.6.5
TensorRT 7.2.3.4
OpenCV 4.3.0
VS 2019

2. VS的环境配置

本文不使用cmake建立VS工程,而是自己手动建立VS工程。
因此在配置VS环境之前,需要自己建立一个新的VS工程,并将yolov5下的头文件和源文件添加到VS中,如下图所示。
注意:cu文件时用cuda
在这里插入图片描述

2.1 配置头文件
将TensorRT的头文件、OpenCV的头文件、CUDA的头文件分别配置到VS的包含目录中,如下图所示。
在这里插入图片描述
2.2 配置库目录
将TensorRT的库目录、OpenCV的库目录、CUDA的库目录分别配置到VS的库目录中,如下图所示。
在这里插入图片描述
2.3配置链接库
将TensorRT的链接库、OpenCV的链接库、CUDA的链接库分别配置到VS的附加依赖项中,如下图所示。
在这里插入图片描述
CUDA的链接库如下:

cublas.lib
cublasLt.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cudnn.lib
cudnn64_8.lib
cudnn_adv_infer.lib
cudnn_adv_infer64_8.lib
cudnn_adv_train.lib
cudnn_adv_train64_8.lib
cudnn_cnn_infer.lib
cudnn_cnn_infer64_8.lib
cudnn_cnn_train.lib
cudnn_cnn_train64_8.lib
cudnn_ops_infer.lib
cudnn_ops_infer64_8.lib
cudnn_ops_train.lib
cudnn_ops_train64_8.lib
cufft.lib
cufftw.lib
curand.lib
cusolver.lib
cusolverMg.lib
cusparse.lib
nppc.lib
nppial.lib
nppicc.lib
nppicom.lib
nppidei.lib
nppif.lib
nppig.lib
nppim.lib
nppist.lib
nppisu.lib
nppitc.lib
npps.lib
nvblas.lib
nvgraph.lib
nvjpeg.lib
nvml.lib
nvrtc.lib
OpenCL.lib

TensorRT的链接库如下:

nvparsers.lib
nvonnxparser.lib
nvinfer_plugin.lib
nvinfer.lib

OpenCV的链接库如下:

opencv_world430.lib

3. YOLOV5工程编译问题

3.1 dirent.h的问题
项目工程依赖头文件“dirent.h”,但dirent.h是ubuntu系统中的系统文件,windows系统没有。直接编译会出现如下错误:“dirent.h”: No such file or directory

没关系,只需要将 https://gitcode.net/mirrors/tronkko/dirent/-/tree/master/include下载下本地,将dirent.h直接放在工程目录下即可。同时将utils.h中的#include <dirent.h>改为#include “dirent.h”即可,如下图所示。
在这里插入图片描述

3.2 std::max和std::min的问题
在预处理定义中添加:NOMINMAX

同时,可能会有错误C4996 ‘localtime’: This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
别担心,在预处理定义中添加:_CRT_SECURE_NO_WARNINGS

在这里插入图片描述

3.3 cu文件的处理
wang-xinyu的yolov5工程中有cu文件,需要单独用CUDA编译,具体操作为:
右键项目 → 生成依赖项 → 生成自定义 → 勾选“CUDA 10.2”,如下图所示:
如果你在“生成自定义”中找不到CUDA,可以看本博客的第五部分。
在这里插入图片描述

对yololayer.cu和preprocess.cu文件单独执行如下操作:右键点击cu文件,选择属性,再选择CUDA C/C++
在这里插入图片描述
3.4 xxx
此时你去编译项目,会出现“YoloPluginCreator::mFC" may not be initialized”的报错,笔者在网上寻找答案,找到的答案是在cmakefiles.txt 增加add_definitions(-DAPI_EXPORTS),但是本文不依赖cmkake,因此只需要在macros.h文件中添加#define API_EXPORTS即可,如下图所示。
在这里插入图片描述

4.模型转换与推理

TensorRT理论上可以直接推理ONNX和engine模型。
在使用TensorRT推理模型之前,一般都有模型转换的过程。

yolov5的模型转换:首先将.pt 转.wts ,再将.wts转.engine。

注意:转换yolov5模型时依赖yolov5的原工程 https://github.com/ultralytics/yolov5
,需要将yolov5的原工程下载到本地。

https://github.com/wang-xinyu/tensorrtx 的yolov5工程下有脚本文件gen_wts.py,将gen_wts.py放到yolov5的原工程下,如下图所示:
在这里插入图片描述

在yolov5的原工程下,执行如下脚本,得到yolov5s.wts模型文件。

python gen_wts.py -w yolov5s.pt

把下载的yolov5.wts放在编译生成的release目录,运行下面的命令产生yolov5s.engine文件。

yolov5_tensorrt.exe -s yolov5s.wts yolov5s.engine s

模型推理:

yolov5_tensorrt.exe -d yolov5s.engine ./image_dir

GPU为英伟达GTX 1060,CPU为Intel i7八代,推理时间如下图。
在这里插入图片描述
推理效果图如下:
在这里插入图片描述

备注:本文借鉴了博客一博客二

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:11:00  更:2022-05-07 11:12:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:42:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码