#添加一个**yolov8\_。onx **和/或**yolov5\_。Onnx **模型(s)到ultralytics文件夹。 #编辑**main.cpp**来改变**projectBasePath**来匹配你的用户。#请注意,默认情况下,CMake文件将尝试导入CUDA库以与opencv dnn (cuDNN) GPU推理一起使用。 #如果你的OpenCV构建不使用CUDA/cuDNN,你可以删除该导入调用并在CPU上运行示例。
cd examples/YOLOv8-CPP-Inference
mkdir build
cd build
cmake ..
make
./Yolov8CPPInference
如果环境完整的话,整个过程是很简单的,但是一般环境都不完整,下面讲一下踩的坑。
1. 卡在cmake
1.1 没有cmake包
这个很简单,一般是没有装cmake包
直接在环境中pip install cmake
1.2 找不到OpenCV
报错:
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
解决方法:
先下载并安装c++版本的OpenCV:
Get Started - OpenCV
然后在CMakeLists.txt里面添加OpenCV指定路径,注意路径不要用'\',要用'/'或'\\'
set(OpenCV_DIR "C:/Users/xxx/Desktop/yolo/examples/YOLOv8-CPP-Inference/opencv/build/x64/vc16/lib")
没有cuda的话注释掉cuda相关的:
# CUDA
# set(CUDA_TOOLKIT_ROOT_DIR "/usr/local/cuda")
# find_package(CUDA 11 REQUIRED)# set(CMAKE_CUDA_STANDARD 11)
# set(CMAKE_CUDA_STANDARD_REQUIRED ON)
# !CUDA
1.3 直接cmake造成make报错
直接cmake ..也会出问题,后面make会报错:
make: *** No targets specified and no makefile found. Stop.
要用:
cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -G "Unix Makefiles"
或者
cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -G "MinGW Makefiles"
原因:咱们是windows系统,默认不是生成makefile文件,而是MSVC的工程文件,想要makefile要指定编译器和编译选项为Unix Makefiles
2. 卡在make
2.1 无法识别make命令
make : 无法将“make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称make : 无法将“make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
安装以下两个软件其中之一:
https://www.msys2.org/
或
https://sourceforge.net/projects/mingw/files/latest/download?source=files
MinGW安装步骤比较简单,下面只介绍MinGW的安装方法:
1.下载好后安装,出现让你选择packages的界面,啥都不选直接退出。
此时查看D:\MinGW\bin文件夹,应该只有一个文件:
2.添加环境变量D:\MinGW\bin
3.从cmd输入命令下载,可以只装mingw32-make
mingw-get install mingw32-make gcc g++
为了方便,可以把mingw32-make.exe复制一份改名为make.exe,以后直接使用make命令就行。
现在就可以正常make了