win10+VS2019+Opencv4.5 编译darknet

Darknet深度学习框架是一个基于C语言编写的开源神经网络框架,同时支持CPU与GPU。

1、环境准备

a、检查已安装的VS2019版本是否安装了C++桌面安装这一项在这里插入图片描述
同时注意查看是否勾选了MSVC v140-VS 2015 C++生成工具这一项,若未安装,则需补充安装一下。
在这里插入图片描述

2、darknet编译

a、下载darknethttps://github.com/AlexeyAB/darknet
b、以文本形式打开darknet.vcxproj
在这里插入图片描述
找到对应下面两句,将其修改为已经安装的cuda版本。

<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 10.2.props" />
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 10.2.targets" />

c、打开darknet.sln
在这里插入图片描述
在这里插入图片描述
d、设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外,按下图这里需要修改,否则会出现错误 MSB8036 The Windows SDK version 10.0 was not found. Install the require。的错误。
在这里插入图片描述
e、右键项目,点击生成。
在这里插入图片描述
出现:

错误 MSB4019 找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\ BuildCustomizations\CUDA 10.2.targets”。请确认 Import 声明 “C:\Program Files %28x86%29\MSBuild\ Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.2.targets”中的表达式正确,且文件位于磁盘上。

找到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations,确实在此路径下没有CUDA 10.2.targets,退出到上一级路径,发现此文件,见下图。
在这里插入图片描述
因此,打开darknet.vcxproj,并对应修改以下两行。

<Import Project="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 10.2.props" />
<Import Project="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 10.2.targets" />

再运行,此问题解决,出现下面的问题。
在这里插入图片描述
出现这个原因可能是显卡版本、cuda版本的问题,参考以下网址https://github.com/AlexeyAB/darknet/issues/2433
在这里插入图片描述
参考darnet原作者https://github.com/AlexeyAB/darknet/blob/master/README.md
在这里插入图片描述
因此,找到darknet.vcxproj中的以下两句:

<CodeGeneration>compute_30,sm_30;compute_75,sm_75</CodeGeneration> 
<CodeGeneration>compute_35,sm_35;compute_86,sm_86</CodeGeneration>

将这两句删掉,或者改为以下形式

<CodeGeneration>compute_30,sm_30</CodeGeneration> 
<CodeGeneration>compute_35,sm_35</CodeGeneration>

或者参考https://blog.csdn.net/weixin_40662331/article/details/102640686将这两句改为:

<CodeGeneration>compute_30,sm_30;compute_52,sm_52</CodeGeneration> 
<CodeGeneration>compute_35,sm_35;compute_52,sm_52</CodeGeneration>

也尝试过这么修改,也成功了。
除了在darknet.vcxproj修改,也可以在属性配置中修改:
在这里插入图片描述

这是我第一次安装过程遇到的问题,当时是win10+cuda10.2,显卡是3080Ti,想着最新版本的cuda可能会在后期出现不兼容的问题就安装了10.2版本。然而,在编译和使用其他相关比如darknet之类的框架时候,总会出现莫名其妙的问题。后来想想是不是根本的问题在于cuda版本和硬件不匹配。然后就以上面的流程重新安装了cuda11.1,之后的 整个安装编译过程反而异常顺利,也没有出现上面提到的问题。
综上所得,cuda尽量还是安装与硬件匹配的最新版本吧。

3、测试

a、下载yolov3.weights文件放在…\darknet-master\build\darknet\x64文件夹下,与darknet.exe同路径下。
b、cmd定位到darknet.exe路径下,输入darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg,然后!就出现下面的结果了!!
在这里插入图片描述
很开心啊啊啊!第一次在cuda10.2的环境下,输入命令行之后卡死出结果也不标框,原来一切的锅都在这!!还是让硬件物尽其用不要浪费的好啊!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值