ubuntu20.04下在VSCode中使用c++ onnxruntime部署yolov8模型

1、下载onnxruntime-gpu
https://github.com/microsoft/onnxruntime/releases/tag/v1.13.1我这里下载的是1.13版本,然后将下载的压缩包解压,解压的文件夹中可以得到include 和lib两个文件夹,分别保存着onnxruntime的头文件和编译好的动态链接库文件。
2、在vscode中添加自己写好的yolov8_onnx.h,yolov8_utils.h,yolov8_onnx.cpp,yolov8_utils.cpp文件,这四个文件可以用来对模型进行解析
头文件绝对路径为:/home/dxc/picking_apple_ws/src/img_process/include/img_process/
源文件绝对路径为:/home/dxc/picking_apple_ws/src/img_process/src
3、这两个文件用到了onnxruntime的库,因此需要再CmakeLists文件中进行相应的配置

set(ONNXRUNTIME_INCLUDE_DIRS /home/dxc/onnxruntime-linux-x64-gpu-1.13.1/include())
set(ONNXRUNTIME_LIBS /home/dxc/onnxruntime-linux-x64-gpu-1.13.1/lib/libonnxruntime.so
/home/dxc/onnxruntime-linux-x64-gpu-1.13.1/lib/libonnxruntime_providers_cuda.so
/home/dxc/onnxruntime-linux-x64-gpu-1.13.1/lib/libonnxruntime_providers_shared.so
/home/dxc/onnxruntime-linux-x64-gpu-1.13.1/lib/libonnxruntime_providers_tensorrt.so)

这两段是将onnxruntime 的头文件和库文件的原路径分别设置为变量ONNXRUNTIME_INCLUDE_DIRS和ONNXRUNTIME_LIBS,方便后续的配置

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
  ${ZED_INCLUDE_DIRS}
  ${CUDA_INCLUDE_DIRS}
  ${ONNXRUNTIME_INCLUDE_DIRS}
)

通过在 include_directories 命令中列出这些目录,你告诉编译器在编译源代码时要查找这些目录中的头文件。这样,编译器就能够正确地找到和包含项目所需的头文件。

add_library(yolov8
  include/img_process/yolov8_onnx.h
  include/img_process/yolov8_utils.h
  src/yolov8_onnx.cpp
  src/yolov8_utils.cpp
)

这里将自己写的yolov8模型解析代码编译到yolov8库中,方便后续可执行文件的使用

add_dependencies(yolov8 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

设置一下yolov8库的依赖项,指出在其构建之前需要确保先构建 ${PROJECT_NAME}_EXPORTED_TARGETS 和 catkin_EXPORTED_TARGETS 目标

target_link_libraries(yolov8
  ${catkin_LIBRARIES}
  ${OpenCV_LIBRARIES}
  ${ONNXRUNTIME_LIBS} 
)

将 {catkin_LIBRARIES}、{OpenCV_LIBRARIES} 和 ${ONNXRUNTIME_LIBS} 这些需要的库文件链接到 yolov8 目标中

这样就配置完成了,可以在后续的可执行文件中直接创建yolov8这个类对模型进行推理。

你可能感兴趣的:(vscode,c++,YOLO)