tensorrtx-yolov5-v6.0部署在windows系统

前言:最近几天一直在搞这个东西,现在跑通了,为了以后自己看和帮助他人,就记录一下。虽然是跑通了但是觉得怪怪的,感觉不是自己想要的效果,另外这个只能检测图片,不能摄像头实时监测(我暂时没找到方法)。另外我部署的这个可能是c++版本的。你可以先看一下整体的,在决定用不用我的方法。



第一,下载项目,我这里使用yolov5的第六个版本,你根据自己所需下载自己的。

GitHub - wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition APIImplementation of popular deep learning networks with TensorRT network definition API - wang-xinyu/tensorrtxicon-default.png?t=N7T8https://github.com/wang-xinyu/tensorrtx

这里基本都是用的终端操作,需要进入虚拟环境中,建立build文件(以下为操作命令)

cd {tensorrtx}/yolov5/
mkdir build
cd build

第二,更改下面文件内容。

 用以下内容替换。

cmake_minimum_required(VERSION 2.6)project(yolov5)#change to your own path
##################################################
set(OpenCV_DIR "D:\\ruanjian1\\opencv\\opencv\\build")
set(TRT_DIR "D:\\ruanjian1\\tensorrt\\TensorRT-8.5.3.1")
set(Dirent_INCLUDE_DIRS "D:\\ruanjian1\\tensorrt\\TensorRT-8.5.3.1\\include")
##################################################add_definitions(-std=c++11)
add_definitions(-DAPI_EXPORTS)
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads)# setup CUDA
find_package(CUDA REQUIRED)
message(STATUS "    libraries: ${CUDA_LIBRARIES}")
message(STATUS "    include path: ${CUDA_INCLUDE_DIRS}")
include_directories(${CUDA_INCLUDE_DIRS})
include_directories(${Dirent_INCLUDE_DIRS})#change to your GPU own compute_XX
###########################################################################################
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-std=c++11;-g;-G;-gencode;arch=compute_60;code=sm_60)
###############################################################################################
enable_language(CUDA)  # add this line, then no need to setup cuda path in vs
####
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${TRT_DIR}\\include)# -D_MWAITXINTRIN_H_INCLUDED for solving error: identifier "__builtin_ia32_mwaitx" is undefined
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Ofast -D_MWAITXINTRIN_H_INCLUDED")# setup opencv
find_package(OpenCV QUIETNO_MODULENO_DEFAULT_PATHNO_CMAKE_PATHNO_CMAKE_ENVIRONMENT_PATHNO_SYSTEM_ENVIRONMENT_PATHNO_CMAKE_PACKAGE_REGISTRYNO_CMAKE_BUILDS_PATHNO_CMAKE_SYSTEM_PATHNO_CMAKE_SYSTEM_PACKAGE_REGISTRY
)message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${TRT_DIR}\\lib)add_executable(yolov5 ${PROJECT_SOURCE_DIR}/yolov5.cpp ${PROJECT_SOURCE_DIR}/yololayer.cu ${PROJECT_SOURCE_DIR}/yololayer.h ${PROJECT_SOURCE_DIR}/preprocess.cu)target_link_libraries(yolov5 "nvinfer" "nvinfer_plugin")
target_link_libraries(yolov5 ${OpenCV_LIBS})
target_link_libraries(yolov5 ${CUDA_LIBRARIES})
target_link_libraries(yolov5 Threads::Threads)

替换完成后需要更改opencv、tensorrt的安装路径,与上面对照着改以下的内容。

 第三,运行cmake ..命令,我这个没有报错。(这个cmake命令可能提示未安装,你可以在虚拟环境中安装 pip install cmake也可以安装软件跟下面的博主一样操作)

 windows下 使用VS2019部署yolov5使用TensorRT加速模型推理_vs2019 +tensorrt配置加载模型-CSDN博客文章浏览阅读1.3k次,点赞10次,收藏16次。yolov5s通过tensort,导出为dll文件,python、c++调用dll文件。1.项目环境软件安装,及其环境变量配置请参考上述人员的博客,必须基于yolov5(6.0版本),cuda和cudnn和TensorRT版本必须匹配,如有报错请考虑软件版本、环境变量是否匹配。下载地址下载地址下载地址下载地址下载地址下载地址下载地址下载地址。_vs2019 +tensorrt配置加载模型https://blog.csdn.net/liyucong1/article/details/130412991

 其实,按照这位博主的步骤基本能把yolov5自带的yolov5s.pt跑通,

第四,我补充以下使用自己的模型部署时的操作,CLASS_NUM的个数就是自己要识别的数量。

修改完成后重新生成下,应该就可以了。

 第五,目前进行摄像头实时监测未完成,希望有人完成,在评论区留下方法吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706045.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python批量生成25位数字字母混合序列号(SN码)

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 SN码,即Serial Number的缩写,有时也被称为Serial No,是产品序列号的意思。它是一个独特的标识符,用于区分同一种类

python常用基础知识

目录 (1)print函数 (2)注释 (3)input函数 (4)同时赋值和连续赋值 (5)type函数和id函数 (6)python赋值是地址赋值 (…

公共字段填充(AOP的使用)

Thread是线程池,ThreadLocal是线程变量,每个线程变量是封闭的,与其它线程变量分隔开来,在sky-common下的com.sky.context包下有一个Basecontext类 public class BaseContext {//每一个上下文创建了一个线程变量,用来存储long类型的id//创建三个方法,用来设置,取用,删除idpubli…

Learn Next.js(浅全栈)

Learn Next.js 中文教程

springboot005学生心理咨询评估系统

springboot005学生心理咨询评估系统 亲测完美运行带论文:获取源码,私信评论或者v:niliuapp 运行视频 包含的文件列表(含论文) 数据库脚本:db.sql其他文件:ppt.ppt论文:开题.doc论文&#xf…

git上传项目到github

有用git进行版本控制和github存储东西的需求 之前会的操作忘了,在此总结一套流程化方案 github上创建仓库绑定用户:打开git-bash,填写用户名和邮箱作为标识 $ git config --global user.name "" $ git config --global user.emai…

Milvus的系统架构

简介 Milvus的构建在许多知名的向量搜索库比如Faiss, HNSW, DiskANN, SCANN等之上的,它针对稠密向量数据集的相似搜索而设计,能支持百万、十亿甚至万亿级别的向量搜索。 Milvus支持数据分片,流式数据插入,动态schema&#xff0c…

美团小程序mtgsig1.2逆向

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

cypress的安装使用

cypress npm install -g cnpm --registryhttps://registry.npm.taobao.org cypress的启动打开 npx cypress open js函数的回调 function print(string,callback){console.log(string)callback() } print("a",function(){print("b",function(){console.l…

LeetCode题练习与总结:交错字符串--97

一、题目描述 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: 示例 1: 输入:s1 "aa…

Ubuntu 安装 eclipse 的详细过程及工程创建和编译配置

目录 一、安装环境二、下载依赖 java jdk三、下载 eclipse四、安装4.1 java 环境4.2 eclipse 安装4.3 打开 eclipse 五、配置 eclipse5.1 新建 C 工程5.2 工具链 配置5.3 头文件路径5.4 链接库5.5 编译 一、安装环境 Ubuntu 版本:22.04.3 位数:64-bit 二…

SAP BSEG VS ACDOCA 差异

温习一下 ACDOCA VS BSEG matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了_sap acdoca-CSDN博客