yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet

yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet

本文地址:https://blog.csdn.net/shanglianlm/article/details/80322718


github  https://github.com/AlexeyAB/darknet
要求:
  1. vs2015+opencv3
  2. Windows 和 Linux都可以
  3. CUDA >= 7.5 (cuDNN v5-v7)
预训练模型:
 1 yolov3.cfg  https://pjreddie.com/media/files/yolov3.weights
 2 yolov3-tiny.cfg   https://pjreddie.com/media/files/yolov3-tiny.weights

  

下载 darknet https://github.com/AlexeyAB/darknet

H:\darknet\darknet-master\build\darknet目录下选择相应的 darknet_no_gpu.sln或者 darknet.sln用vs2015打开

先上我的环境配置图吧

下面三张图是我的配置
包含目录
yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet_第1张图片
库目录
yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet_第2张图片
附加依赖项
yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet_第3张图片
预处理器定义
yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet_第4张图片


1 配置opencv

包含目录
D:\opencv330\build\include
D:\opencv330\build\include\opencv
D:\opencv330\build\include\opencv2
库目录
D:\opencv330\build\x64\vc14\lib
链接器->输入
opencv_world330.lib

2 配置第三方包 pthreadVC2

包含目录
H:\darknet\darknet-master\3rdparty\include
库目录
H:\darknet\darknet-master\3rdparty\lib\x64
链接器->输入

pthreadVC2.lib

3 cuda9.1配置

包含目录
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include
库目录
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\x64
链接器->输入

cublas.lib;curand.lib;cudart.lib;cudnn.lib;

4 预处理器定义

C/C++ -> 预处理器 -> 预处理器定义

OPENCV;CUDNN;_TIMESPEC_DEFINED;_CRT_SECURE_NO_WARNINGS;_CRT_RAND_S;WIN32;NDEBUG;_CONSOLE;_LIB;

测试

到 H:\darknet\darknet-master\build\darknet\x64 目录下
如果是CPU运行,把darknet_no_gpu.exe重命名成为darknet.exe

这是测试图片文件的
darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg  
这是测试视频文件的
darknet.exe detector demo data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 test.mp4  

运行结果

yolo v3环境配置:vs2015+cudn9.1+cudnn7+darknet_第5张图片


编译过程报错处理

1 error LNK2001: 无法解析的外部符号 __imp_pthread_join
1>captcha.obj : error LNK2001: 无法解析的外部符号 __imp_pthread_join
1>data.obj : error LNK2001: 无法解析的外部符号 __imp_pthread_mutex_unlock
1>data.obj : error LNK2001: 无法解析的外部符号 __imp_pthread_create
1>data.obj : error LNK2001: 无法解析的外部符号 __imp_pthread_mutex_lock

解决方法:没有配置pthreadVC2,参考上面。

2 error LNK2001: 无法解析的外部符号 cudaPeekAtLastError
1>crop_layer_kernels.cu.obj : error LNK2001: 无法解析的外部符号 cudaPeekAtLastError
1>dropout_layer_kernels.cu.obj : error LNK2001: 无法解析的外部符号 cudaPeekAtLastError
1>maxpool_layer_kernels.cu.obj : error LNK2001: 无法解析的外部符号 cudaPeekAtLastError
解决方法:附加依赖性要加 curand.lib;cudart.lib;

3 无法启动此程序,因为计算机中丢失opencv_world320.dll
解决方法:把 D:\opencv330\build\x64\vc14\bin 目录下的 opencv_world320.dll复制到C:\Windows\System32

参考资料
1 [YOLO v3在Windows下的配置(无GPU)+opencv3.2.0+VS2015](https://blog.csdn.net/baidu_36669549/article/details/79798587)
2 [darknet github](https://github.com/AlexeyAB/darknet)

你可能感兴趣的:(Code)