惠普 暗影精灵 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的全部都删掉,就可以编译成功了。
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值