本文主要是介绍惠普 暗影精灵 Win10 darknet Yolov3 vs2015 opencv 配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
寒假运行目标检测代码,同事推荐Yolo,只能网上查询如何配置环境,主要参考的是作者“我是马克思小清新”的Win10+darknet+vs2015 GPU和CPU版本的配置(原文链接在此),在此感谢,然后一些细节地方也再完善一下。
笔记本是惠普的暗影精灵,GPU是Nvidia的GTX 1070 with max-Q,当时也是为了跑深度学习买的,这次刚好用起来。
1、准备的安装包
(1)VS2015社区版,免费,微软官网一般可以找到资源,网上搜到的百度云链接:https://pan.baidu.com/s/1iTp9HW1vS7c8dVPg16Y9xg 密码:q3yz(原文链接在此,感谢“乘风.xs”);
(2)Opencv3.4.6,可以官网下载,但是比较慢,网上搜到的百度云链接:https://pan.baidu.com/s/1Th0XTriymMXF1cpJGMAHuw 提取码:3kpi (原文链接在此);
(3)CUDA10.1和cuDNN7.6.5,可以官网下载,但是网站进去就很慢,也是网上搜的百度云链接:(CUDA10.1)https://pan.baidu.com/s/1BKZ7Q1vtZumW6MWmwIvbwA 提取码:pwt2,(cuDNN)https://pan.baidu.com/s/1gu-SUmtAMGVNArUgIqJaKg 提取码:l583(原文链接在此,感谢“空眠”);
(4)darknet,这个可以下载大佬已经编译好的版本,省去自己操作一番的功夫。https://github.com/AlexeyAB/darknet;
(5)yolov3_weights,权重文件,网上搜到的百度云链接:https://pan.baidu.com/s/1hMeSwO_Td16q9fgWsNb2eg 提取码:f8g2 (原文链接在此,感谢“是否龙磊磊真的一无所有”)。
2、安装过程
(1)安装VS2015
此处引用“意疏”中的文字(原文链接在此),重点看黑色部分:“对于其安装过程https://blog.csdn.net/guxiaonuan/article/details/73775519?locationNum=2&fps=1这篇文章里已经做了详细的介绍,但是在自定义安装是至少应选择Visual C++和Visual Studio 2015 Update 3,其它就看心情,看喜好勾。我在VS2015的安装上没有遇到什么问题,所以也没有什么好说的。”
(备注:在安装的时候可能提示有javascript什么找不到安装源,这个可以直接跳过,不安装,目前来说没看到什么影响)。
(2)安装opencv3.4.6
将下载后opencv-3.4.6-vc14_vc15.exe文件双击解压到指定的目录,我的是d:\opencv目录,解压后的目录如下图所示。
解压缩完后,需要配置环境变量,将目录“D:\opencv\build\x64\vc14\bin”加入环境变量,不然之后VS2015配置opencv会找不到opencv_world346.dll文件。
(3)在VS2015中配置opencv3.4.6
首先在VS2015中创建一个新的空项目Opencv-test。切换属性管理器窗口,这个在视图-->其它窗口-->属性管理器中也有,但是可以直接在项目窗口的下方就有。接着打开Debug|X64下User的属性。
配置主要是三个部分:包含目录,库目录,附加依赖项
包含目录:build文件下的include,include/opencv,include /opencv2加入进来。
库目录:build->x64->vc14->lib加进来
附加依赖项:opencv_world346d.lib,大家就写debug版本的吧,因为我看到网上有人将两个lib加进来报错了,我这里没有报错,不知是什么原因。
点击应用确定,opencv在VS 2015中就配置好了,如果出现找不到opencv_world346d.dll的问题,可能是你没有配opencv 的环境变量。注意:出现这个问题,然后配环境变量之后,一定要重启vs2015才可以编译通过,不然就一直报错找不到dll文件。
现在建立一个main.cpp测试一下能不能用,尤其需要注意的是文件目录必须使用双斜杠,“D:\\123.jpg”。
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;int main() {//读取图片文件Mat src = imread("D:\\123.jpg");if (src.empty()) {printf("文件不存在。。。");getchar();return -1;}//创建一个窗口namedWindow("src", CV_WINDOW_AUTOSIZE);//在窗口中显示图片imshow("src", src);waitKey(0);printf("0000");return 0;
}
(4)安装CUDA和cuDNN
傻瓜式安装,这里安装的位置就是默认位置,没有自定义,最好不要自己定义文件位置吧,防止后面搭建darknet出现找不到cuda文件的错误,cuDNN 解压缩后,将bin,include,lib下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1各自对应的文件夹下,注意是各个目录的文件复制过去,不是文件夹。
这个也要配置环境变量
最后在命令提示符下看看是否安装成功
3、在VS2015中生成CPU版本的darknet_no_gpu.exe
这个比较简单,不需要修改什么文件,只需要将d:\opencv\build\x64\vc14\bin下的三个dll文件放到darknet\build\darknet\x64下,这样才能用opencv的库展示图片。
接着打开no_gpu版本的解决方案 “darknet_no_gpu.sln”,在vs2015的Release x64下重新生成该项目,生成成功之后在x64文件下就多了一个darknet_no_gpu.exe执行文件。
接着进入x64文件中找到darknet_yolo_v3.cmd,右键编辑文件,这里可以使用记事本或者NotePad++软件打开。
里面的exe文件默认的是darknet.exe,改成darknet_no_gpu.exe,保存文件。
darknet_no_gpu.exe detector test cfg/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg -ext_output
保存完毕后双击darknet_yolo_v3.cmd文件,会弹出命令框。
4、在VS2015中生成darknet.exe,也就是gpu版本的
在打开项目之前,将darknet.vcxproj中的cuda版本换成自己装好的版本,我的是10.1,右键用记事本打开darknet.vcxproj,查找有11.1的地方,好像有2个,都改成10.1保存即可。
这些做好之后再重新生成项目。然后在X64的文件下也多了darknet.exe文件。
接着在darknet_yolo_v3.cmd中将exe换成darknet.exe其他的不变。保存关闭执行。GPU这边会提示compute_capability和cudnn_half。
需要注意的是,在编译过程中,可能会提示出错:nvcc fatal : Unsupported gpu architecture 'compute_86',通过网上查找资料,找到了修改办法(原文链接在此,感谢“基益生”),解决方法:
右击项目–>属性–>CUDA C/C++ -->Device,看到Code Generation为:compute_35,sm_35,compute_86,sm_86,我是把带86的全部都删掉,就可以编译成功了。
这篇关于惠普 暗影精灵 Win10 darknet Yolov3 vs2015 opencv 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!