# ONNX_YOLOv8_OpenCV **Repository Path**: Coder_Zr/ONNX_YOLOv8_OpenCV ## Basic Information - **Project Name**: ONNX_YOLOv8_OpenCV - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-19 - **Last Updated**: 2024-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ONNX_YOLOv8_OpenCV ## 环境搭建 CUDA:cuda_11.8.0_522.06_windows.exe cudnn:cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip OpenCV:4.8.0 参考链接: CUDA:https://developer.nvidia.com/cuda-11-8-0-download-archive cudnn:https://developer.nvidia.com/rdp/cudnn-archive onnx:https://github.com/microsoft/onnxruntime/releases https://github.com/microsoft/onnxruntime/releases/download/v1.17.0/onnxruntime-win-x64-gpu-1.17.0.zip ## 使用指南 使用CMake管理项目,在CMakeLists.txt中: 需要使用C++17: ```cmake set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) ``` 声明使用CUDA: ```cmake project(Test0 LANGUAGES CXX CUDA) ``` 加入OpenCV: ```cmake # 使用 OpenCV find_package(OpenCV REQUIRED) ``` 加入CUDA: ```cmake # CUDA find_package(CUDAToolkit REQUIRED) add_definitions(-DUSE_CUDA) ``` 加入ONNX: ```cmake # 设置 ONNXRUNTIME_VERSION 版本号 set(ONNXRUNTIME_VERSION 1.17.0) set(ONNXRUNTIME_ROOT "D:/CodeSofts/DeepLearning/ONNX/onnxruntime-win-x64-gpu-${ONNXRUNTIME_VERSION}") include_directories(${PROJECT_NAME} ${ONNXRUNTIME_ROOT}/include) link_directories(${ONNXRUNTIME_ROOT}/lib) ``` 将上述库加入链接: ```cmake target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCV_LIBS} CUDA::cudart onnxruntime ) ``` 将onnx的dll文件复制到目标目录: ```cmake # 将onnx的dll文件复制到目标目录 if (WIN32) file(GLOB ONNX_DLLS "${ONNXRUNTIME_ROOT}/lib/*.dll") add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ONNX_DLLS} $) endif () ``` 完整的CMakeLists.txt如下: ```cmake cmake_minimum_required(VERSION 3.14) project(Test0 LANGUAGES CXX CUDA) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 使用 OpenCV find_package(OpenCV REQUIRED) # CUDA find_package(CUDAToolkit REQUIRED) add_definitions(-DUSE_CUDA) # 设置 ONNXRUNTIME_VERSION 版本号 set(ONNXRUNTIME_VERSION 1.17.0) set(ONNXRUNTIME_ROOT "D:/CodeSofts/DeepLearning/ONNX/onnxruntime-win-x64-gpu-${ONNXRUNTIME_VERSION}") include_directories(${PROJECT_NAME} ${ONNXRUNTIME_ROOT}/include) link_directories(${ONNXRUNTIME_ROOT}/lib) file(GLOB SourceFiles ${SourceFileTypes}) add_executable(${PROJECT_NAME} ${SourceFiles} ) INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib ) target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCV_LIBS} CUDA::cudart onnxruntime ) # 将onnx的dll文件复制到目标目录 if (WIN32) file(GLOB ONNX_DLLS "${ONNXRUNTIME_ROOT}/lib/*.dll") add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ONNX_DLLS} $) endif () ```