随着AlexAB大神将YOLO继续发扬光大到V4之后,一大波yolo粉狂欢了一阵,但是对于初学者想用却遇到了麻烦,因为环境配置永远是头疼的。
- 准备工作
VS2017
OpenCV3.4
CUDA10.1(+cudnn)其他版本亦可,取决于你显卡的配置,我的是Titan Xp
darknet 源码(https://github.com/AlexeyAB/darknet) - 配置环境
2.1 创建VS2017工程
选择NVIDIA
2.2 配置文件
将下载解压后的源码中的以下几个文件夹拷贝到新建工程下:3rdparty、cfg、data、include、src。model为自己建立的,放权重文件yolo-v4.weights。
在工程下建立三个文件夹c、h、cu,从src中分别添加c文件、h文件、cu文件
2.3 配置属性
选择x64-Release
包含目录中添加:
\3rdparty\pthreads\include;
\3rdparty\stb\include
\include
\opencv\build\include;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
库目录中添加:
\3rdparty\pthreads\lib
\opencv\build\x64\vc15\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
C/C++ 预处理定义中添加:
WIN32;WIN64;NDEBUG;_CONSOLE;_LIB;OPENCV;CUDNN_HALF;CUDNN;_TIMESPEC_DEFINED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_RAND_S;GPU
CUDA device中修改算力:根据显卡配置
compute_30,sm_30;compute_75,sm_75
之后链接器中添加上相应的LIB文件。 - 编译
基本上按上面的步骤,编译应该可以成功生成。 - 测试
- CPU配置
除了不用添加cu文件外,其余步骤一样。
CPU速度7s,GPU执行 30ms,这就是差距!
如果编译过程遇到问题,欢迎私信。