您现在的位置是:首页 >技术杂谈 >Windows 10 YOLOV8 TensorRT C++如何部署?网站首页技术杂谈
Windows 10 YOLOV8 TensorRT C++如何部署?
简介Windows 10 YOLOV8 TensorRT C++如何部署?
一、模型转换准备
1.将pt模型转换为wts
在YoloV8的训练环境下,将pt模型转换为wts模型:运行gen_wts.py可生成yolov8s.wts.
2.tensorrt工程下载
可从csdn上免费下载,网址为:
二、环境配置
1、VS配置
注意:首先先安装VS2019后再安装CUDA,可有效避免在VS2019环境中看不到CUDA Runtime模板。
2、CMake配置
安装CMake并在安装时选中“Add CMake to the system PATH ”保证添加环境变量。
注意:验证CMake安装是否成功CMD指令:cmake -version
3、配置opencv、tensorrt、cudnn环境变量
如:d:Opencv4.8uildx64vc16in
d:TensorRT-8.6.1.6lib
d:cudnnin
注意:cuda环境变量不需要专门配置是因为安装时会自动创建。
三、编译
在yolov8_tensorrt_main项目中创建文件夹build,然后用CMake进行编译。
注意:TensorRT项目中的CMakelist.txt分别配置自己的OpenCV结合tensorRT的地址。
配置内容如下所示,注意cmake的最低版本要满足要求。
cmake_minimum_required(VERSION 3.10)
project(yolov8)
# Modify to your path
set(OpenCV_DIR "E:/opencv/opencv/build")
set(TRT_DIR "E:/TensorRT-8.6.1.6")
add_definitions(-std=c++11)
add_definitions(-DAPI_EXPORTS)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)
# setup CUDA
find_package(CUDA REQUIRED)
message(STATUS "libraries: ${CUDA_LIBRARIES}")
message(STATUS "include path: ${CUDA_INCLUDE_DIRS}")
include_directories(${CUDA_INCLUDE_DIRS})
enable_language(CUDA)
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/plugin)
# TensorRT
set(TENSORRT_ROOT "E:/TensorRT-8.6.1.6")
include_directories("${TENSORRT_ROOT}/include")
link_directories("${TENSORRT_ROOT}/lib")
# OpenCV
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
add_library(myplugins SHARED ${PROJECT_SOURCE_DIR}/plugin/yololayer.cu)
target_link_libraries(myplugins nvinfer cudart)
file(GLOB_RECURSE SRCS ${PROJECT_SOURCE_DIR}/src/*.cpp ${PROJECT_SOURCE_DIR}/src/*.cu)
add_executable(yolov8 ${PROJECT_SOURCE_DIR}/src/main.cpp ${SRCS})
target_link_libraries(yolov8 nvinfer)
target_link_libraries(yolov8 cudart)
target_link_libraries(yolov8 myplugins)
target_link_libraries(yolov8 ${OpenCV_LIBS})
打开CMake软件,完成TensorRT项目的源码位置及生成VS2019项目的位置,如下图所示。
点击配置,根据提示消除配置项目的问题,如常见问题为:
找不到CUDA、CUDNN,出现警告可以不用管它。
生成VS2019后可以关闭Cmake,手动在build文件夹下打开yolov8.sln项目文件。可选择编译Yolov8项目,可以生成tensorRT的文件.engine,并可进行推流。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。