简介:
- darknet是用C语言写的一个开源的深度学习框架,支持CPU、GPU。它不像tensorflow那么庞大,对于使用C/C++开发的工程也很容易嵌入进去。
- 本篇文章配置的环境是win10,vs2017,cuda10.1,opencv3.4.1,其中vs其他版本vs2015、vs2019的配置也是一样的,opencv只要高于2.4就可以,cuda其他版本的话本文中的2.5条那里的compute_75,sm_75需要改一下,现在我不知道cuda版本和它的对应关系,原项目是cuda11.1的,对应compute_86,sm_86.(如果有人知道了还请赐教)
- 用darknet yolov4训练自己的数据集的参考链接
github:Yolo v4, v3 and v2 for Windows and Linux
1. 下载
image.png用git下载或者手动下载都一样,下载下来是这样
image.png
2.配置
-
打开build,用vs2017(或者其他版本的vs,原来的项目是用vs2015的)打开darknet.sln
image.png
2.1修改windowsSDk和平台工具集
-
原设置
常规.png -
修改后
常规2.png
2.2配置opencv和cuda附加包含目录
-
原属性页的C/C++ 附加包含目录
附加包含目录.png -
修改后
附加包含目录2.png
2.3修改cuda版本
注:在属性页上面没有看到cuda的配置选项,则需要手动添加:属性--生成依赖项--生成自定义。修改后可以与2.4中的“cuda-common.png“图上的属性页对比,可以看到属性页上多了CUDA C/C++和CUDA Linker选项
添加cuda.png
-
原设置
cuda10.1勾选.png -
修改后
cuda10.1勾选2.png
2.4CUDA路径配置
cuda-common.png2.5 编译出现MSB372错误
参考链接中的第4点
- 解决方法:打开darknet.vcxproj(就在darknet.sln同级目录下)修改
<CudaCompile>
<TargetMachinePlatform>64</TargetMachinePlatform>
<CodeGeneration>compute_35,sm_35;compute_86,sm_86</CodeGeneration>
</CudaCompile>
改为
<CudaCompile>
<TargetMachinePlatform>64</TargetMachinePlatform>
<CodeGeneration>compute_35,sm_35;compute_75,sm_75</CodeGeneration>
</CudaCompile>
2.6编译出现无法打开“opencv_world341.lib”
image.png-
这是opencv库目录配置的问题,解决方法:属性---vc++目录---库目录,添加opencv的lib文件夹路径。
image.png
连接器---输入---附加依赖项 添加“opencv_world341.lib”
image.png
3. 编译
注意配置的模式和生成模式要对应,如:属性页配置的是release x64的,生成时也要是release x64模式。 image.png4.使用
4.1下载预训练模型
地址
以yolov4.weight为例
yolov4.weight下载后放到编译生成的darknet.exe同级目录下,一般是build\darknet\x64下
image.png
4.2命令行下运行
win+r打开cmd命令行模式,用cd进入到darknet.exe的目录
输入以下命令
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
image.png
image.png
输入图片路径data/person.jpg
image.png
4.3更多命令行用法
附其他检测结果
不为别的只是想体验一下
image.png
image.png
image.png
image.png
image.png
网友评论