darknet安装记录 Win10+vs2017+darknet

本人学生党一枚,由于项目需要自学darknet,看了网上许多教程,走了许多弯路,终于把darknet编译好了。现记录安装过程。

1、配置环境

(1)win10系统,cuda10.1

(2)opencv3.4

(3)vs2017

(4)源代码:https://github.com/AlexeyAB/darknet

2、安装cuda

(1)查看自己电脑的cuda版本

桌面单击右键,选择NVIDIA控制面板

点击左下角的系统信息

点击组件,就可以看到cuda版本,我自己的是cuda10.1版本

去官网下载对应版本的cuda:https://developer.nvidia.com/cuda-toolkit-archive

下载完成后直接按照流程安装就好了。

安装完成后,配置环境变量

右键此电脑图标,点击属性,高级系统设置,环境变量,

系统变量path,有3个路径需要添加(可直接复制,注意更改版本号)

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include

检查有无一下系统变量,如果没有就添加(可直接复制,注意更改版本号)

CUDA_BIN_PATH         ;%CUDA_PATH%\bin

CUDA_LIB_PATH          ;%CUDA_PATH%\lib\x64

CUDA_PATH                 ;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

CUDA_PATH_V10_1     ;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

CUDA_SDK_BIN_PATH;%CUDA_SDK_PATH%\bin\win64

CUDA_SDK_LIB_PATH ;%CUDA_SDK_PATH%\common\lib\x64

CUDA_SDK_PATH         ;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1

cmd打开命令行,输入set cuda 检查是否配置成功,如果没有请检查或者重启

(2)安装cudnn:https://developer.nvidia.com/rdp/cudnn-archive

要登录才能下载,如果没有账号,要先注册然后填一堆问卷。

登录好后,选择对应的版本下载。

下载完成后,解压,看到有3个文件夹,分别打开bin,include,lib文件夹,把里面的文件拷贝到cuda的里对应的文件夹下面

检查是系统变量是否存在以下路径

CUDNN      ;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64

3.opencv3.4:  点击下载

记住安装路径即可

4.安装VS2017(建议用2017,理论上2015及以上都可以,但是2015安装时容易缺失某个安装包)

VS2017下载

下载免费的community版本

安装时要勾选 适用于桌面开发的2015(140)工具集 和C++附带安装

建议更改安装路径,不要装到C盘

如果仅用于编译darknet,不用勾选太多,不然会很大。

安装时间较长,请耐心等待。

5.编译darknet

(1)按照之前安装opencv3.4的路径,打开以下文件夹找到这两个dll文件

将以上两个文件拷贝到darknet-master中的以下位置

(2)确认C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations文件夹下面是否有下面这几个文件(10.1就是我的CUDA版本号)

然后将以上四个文件拷贝到VS2017的安装路径中

(3)打开build文件夹下的darknet文件夹,并用编辑器打开darknet.vcxproj,用搜索功能查找CUDA (这里就是CUDA的版本号了),并修改为自己CUDA的版本号,共有两处需要修改

(4)用vs2017打开darknet.sln文件

弹出以下窗口,平台工具集选择无升级

  • 设置为release  x64;

  • 点击项目,属性

修改包含目录和库目录

包含目录需添加:(注意自己的opencv所在的路径)

D:\program\opencv3.4.0\opencv\build\include
D:\program\opencv3.4.0\opencv\build\include\opencv
D:\program\opencv3.4.0\opencv\build\include\opencv2

库目录需添加:

D:\program\opencv3.4.0\opencv\build\x64\vc15\lib

修改附加依赖项

  • 检查显卡的算力是否在范围内

如果Code Generation设置太高,编译时会报错

那么如何查看自己的显卡算力大小呢?

点击这里就可以查看啦

最后点击生成,重新生成darknet就可以啦

最后打开build下的darknet下的x64会有一个darknet.exe文件

到这里,darknet的gpu版本编译就已经完成了,耶

(5)测试

下载yolov3.weights并放到同darknet.exe的目录下

下载地址

cmd打开命令行,切换至darknet.exe所在目录,

我的地址是在D:\darknet-master\build\darknet\x64

输入指令darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

检测成功!

附上darknet的常用指令:

1.直接从头开始训练:darknet.exe detector train .\cfg\projectname.data .\cfg\yolov3_projectname.cfg

训练的过程中backup目录里面每到一定迭代次数,会有模型参数文件保存下来(比如yolov3_projectname_1000.weights)。

2.基于前面训练的模型继续训:darknet.exe detector train .\cfg\projectname.data .\cfg\yolov3_projectname.cfg backup\yolov3_projectname_1000.weights

3.用生成的模型测试图片:darknet.exe detector test .\cfg\projectname.data .\cfg\yolov3_projectname.cfg backup\yolov3_projectname_1000.weights

4.用生成的模型测试视频:darknet.exe detector demo .\cfg\projectname.data .\cfg\yolov3_projectname.cfg backup\yolov3_projectname_1000.weights -i 0 -thresh 0.25 projectname.mp4

———————————————————————————————————————————

还没有结束,如果想要在python上运行怎么办?不要慌

darknet提供了python接口——即darknet.py,与darknet.exe在同一目录下

不要急,在运行之前,首先要编译动态链接库,即dll文件

先修改yolo_cpp_dll.vcxproj文件中的cuda版本号,然后再用vs2017打开yolo_cpp_dll.sln,操作同上面编译darknet.sln。编译完成之后,可以看到darknet.exe同目录下生成了yolo_cpp_dll.dll文件

——————————————————————————————————————————

本次记录过程到此为止,正式结束。

由于这篇文章是我编译完成之后过了几周才写的,如果有疏漏之处请指正。

这个文章是我看了网上很多教程、踩了很多坑、吸取教训之后写的,所以上面有一些设置可能对其他人来说不是必须的(因为每台电脑都可能会出现不同的问题)。我尽量把我编译过程中做的更改写了下来,希望能帮到大家

参考资料:yolov3在win10 下用vs2017配置GPU版_dz4543的博客-CSDN博客

                  windows下darknet之yolo(gpu版本)安装 - 知乎 (zhihu.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值