写在前面:
版本对应很重要!
版本对应很重要!
版本对应很重要!
我的:
Win10 + VS 2015 + cuda 10.0 + cudnn-v7.6.4 + opencv 3.4.0 + yolo3
主要参考教程:Win10+YOLOv3完整安装过程
1.核对系统条件
- 查看Windows ---- 设备管理器----“显示适配器”
发现我的有:
Intel® UHD Graphics 620
NVIDIA GeForce MX150
- 查看http://developer.nvidia.com/cuda-gpus发现并没有。。。我去这个型号的官网看过说支持,并且我在ubuntu系统下也装过使用过了,所以我不管了,继续~
2.安装cuda
下载cuda_10.0.130_411.31_win10.exe 运行安装+添加系统路径即可
3.安装cudnn
下载cudnn-10.0-windows10-x64-v7.6.4.38.zip 解压,将解压后文件夹内容复制粘贴到CUDA安装目录下
4.安装opencv
下载opencv-3.4.0-vc14_vc15.exe,运行安装,添加系统路径+VS2015内进行配置
配置具体方法 :
(1)添加系统路径
【我的电脑】-【属性】-【高级系统设置】-【环境变量】,在系统变量窗口选择【Path】点击编辑,添加opencv bin路径:
E:\Program Files\opencv\build\x64\vc14\bin
(2)VS2015内进行配置:
- 打开一个项目-【视图】-【属性管理器】- 打开下拉菜单,找到【Microslft.Cpp.x64.user】双击打开属性设置界面
- VC++目录下 - 【包含目录】添加:
E:\Program Files\opencv\build\include
E:\Program Files\opencv\build\include\opencv
E:\Program Files\opencv\build\include\opencv2
- VC++目录下 - 【库目录】添加:
E:\Program Files\opencv\build\x64\vc14\lib
- 链接器目录下 - 输入-【附加依赖项】添加:
E:\Program Files\opencv\build\x64\vc14\lib\opencv_world340.lib
以防万一,或者如果有问题的话,可以针对要用的项目再配置一下,配置时一定一定一定要注意的是:
配置属性窗口的平台要与最终生成/运行平台一致!
配置属性窗口的平台要与最终生成/运行平台一致!
配置属性窗口的平台要与最终生成/运行平台一致!
我开始不成功,就是因为我属性窗口页是debug-x64,而生成/运行窗口是release-x64,它就会一直报错说找不到opencv_world340.lib.
补充:opencv_worldxxx.lib用于release,opencv_worldxxxd.lib用于debug
4.安装YOLO3
-
下载darknet.zip 解压后置于你想放的目录下
-
将你装好的 opencv\build\x64\vc14\bin目录下的opencv_ffmpeg340_64.dll、opencv_world340.dll复制到D:\darknet\build\darknet\x64目录下
-
双击darknet\build\darknet目录下的darknet.sln(在VS 2015里打开),发现打不开,解决方法如下:
darknet\build\darknet目录下的darknet.vcxproj用记事本打开,查找修改CUDA9.1为自己所装版本CUDA10.0,保存后再次尝试则可以成功加载darknet.sln
-
以防万一再配置一遍opencv的路径(注意是3.4.0版本的,再高的就不行了)
-
项目—右键—生成—有报错
报错1:‘cudaThreadSynchronize’: 被声明为已否决
解决方法:查找知道 cudaThreadSynchronize()在cuda10.0以后被弃用,则用 cudaDeviceSynchronize() 来代替
报错2:cvRectangle(img, pt1, pt2, CV_RGB(255, 255, 255), 1, 8, 0);“函数”: 无法从“int”转换为“CvScalar”
解决方法:将CV_RGB(224, 224, 224)改为cvScalar(224, 224, 224,0)
- 再次生成 - 成功(会在darknet\build\darknet\x64目录下生成darknet.exe
5.下载yolov3.weight
下载后置于darknet\build\darknet\x64目录下
注意:官网ubuntu教程下下载的yolov3.weight在windows下不可用,我偷懒用过,发现运行后图片无任何识别和标注…因此下载时注意进行选择。
6.测试
控制台进入D:\darknet\build\darknet\x64目录:
-
win + R 打开 【运行】 窗口
-
输入 cmd 回车,打开windows 控制台
-
进入所需目录(可参考我的命令如下:
C:\Users\18496> E: E:\>cd Program Files\darknet\build\darknet\x64 (忘记的话可以用 dir 查看该文件夹下的目录
输入命令:
darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
问题1 报错 :
OpenCV(3.4.1) Error: Assertion failed ((flags & FIXED_TYPE) != 0)in cv::_InputArray::type, file C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\matrix_wrap.cpp, line 800
解决方法:安装配置低版本opencv(我产生这个报错是因为我装了3.4.0版本的opencv,但配置忘记改了,还是3.4.6版本)
解决参考:https://blog.csdn.net/omodao1/article/details/80833385
问题2 弹出测试图但没有识别到物品并框选:
解决方法:下载正确yolov3.weights替换原文件 (产生这个报错原因就是我之前偷懒,用了曾经ubuntu系统下使用过的yolov3.weights
运行,成功!
附录:
1.TensorFlow — cuda — cudnn 版本对应关系表
2.主要参考教程:Win10+YOLOv3完整安装过程
3.CUDA10+CUDNN + opencv 3.4.0 + yolo3 + yolov3.weights 网盘下载资源
链接:https://pan.baidu.com/s/1yvLWgLU_sDC6_bBUzSG03A
提取码:e08c