# Ubuntu环境下C++使用onnxruntime和Opencv进行YOLOv8模型部署 **Repository Path**: showlolx/Ubuntu-CPP-onnxruntime ## Basic Information - **Project Name**: Ubuntu环境下C++使用onnxruntime和Opencv进行YOLOv8模型部署 - **Description**: 在Ubuntu系统下,使用C++工具和onnxruntime、Opencv等库,对YOLOv8训练好的onnx模型进行推理,解析,部署,方便使用低配置机器进行深度学习的体验。 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5 - **Created**: 2024-06-12 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ubuntu系统下C++使用onnxruntime和Opencv进行YOLOv8模型部署 ### 介绍 在Ubuntu系统下,使用C++工具和onnxruntime、Opencv等库,对YOLOv8训练好的onnx模型进行推理,解析,部署,方便使用低配置机器进行深度学习的体验。 ### 使用说明 直接运行bin中的可执行程序即可,如果修改了代码,可进入build文件夹make一下,然后再进入bin文件夹运行可执行程序。 1. bin:存放可执行程序和识别结果 2. data:存放数据集 3. src:存放源程序 4. include:存放头文件 5. config.txt:配置文件,内容分别是模型相对路径、图片相对路径、缺陷标识文件相对路径、缺陷识别阈值、缺陷重叠阈值 6. type.names:缺陷标识文件,内容和模型识别的缺陷标识顺序需要一致 ### 文件说明 #### config.txt 分别是模型相对路径、图片相对路径、缺陷标识文件相对路径、缺陷识别阈值、缺陷重叠阈值 ``` ../models/best.onnx ../data/2.bmp ../type.names 0.4 0.4 ``` #### CMakeLists.txt 需要更改的地方已经在里面标注好了 ```cpp # 项目名称,随便写 PROJECT(image_onnx) # cmake版本,根据自己的写 cmake_minimum_required(VERSION 3.10) # 编译好的可执行文件放置的位置 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${image_onnx_SOURCE_DIR}/bin) # find required opencv find_package(OpenCV REQUIRED) # directory of opencv headers include_directories(${OpenCV_INCLUDE_DIRS}) # 根据自己的onnxruntime存放路径编写 set(ONNXRUNTIME_ROOT_PATH /home/ebaina/onnxruntime-linux-x64-1.12.1/) set(ONNXRUNTIME_INCLUDE_DIRS ${ONNXRUNTIME_ROOT_PATH}/include/) set(ONNXRUNTIME_LIB ${ONNXRUNTIME_ROOT_PATH}lib/libonnxruntime.so) # 需要编译的cpp文件所在路径,前面是编译好的可执行文件名 add_executable(image_onnx src/main_image.cpp src/change_image.cpp src/adjust_result.cpp) # directory of opencv library link_directories(${OpenCV_LIBRARY_DIRS}) # opencv libraries target_link_libraries(image_onnx ${OpenCV_LIBS}) include_directories(${ONNXRUNTIME_INCLUDE_DIRS}) target_link_libraries(image_onnx ${ONNXRUNTIME_LIB}) # include target_include_directories(image_onnx PRIVATE ${PROJECT_SOURCE_DIR}/include ) ``` #### type.names 缺陷标志文件,内容和模型识别的缺陷标识顺序需要一致,模型识别网站:[Netron](https://netron.app/)