因为要做小物体检测,最近想尝试一下使用yolov3做一下,看看效果怎么样。
先说一下yolov3的配置吧,历时3天,坑还是挺多的,我的环境是CUDA10.0 + cudnn7.3 + vs2015 + OpenCV3.2.0。
1、yolov3下载地址:https://github.com/AlexeyAB/darknet
压缩包解压后打开 darknet-master\build\darknet 下的darknet.sln,调试设置成Release x64。
这一步其实挺坑的,博主本来用的是vs2017,想来修改一下工具集(v141->v140)就可以了,但是搞来搞去就是打不开这个项目。于是把vs2017卸个干净 安装了vs2015,直接就可以打开了(因为这个折腾了一下午,难受= =)
2、下载并配置OpenCV 3.2.0
这个可以直接去opencv的官网下载
配置:(注意要在Release x64模式下修改属性)
1、将opencv的路径加入环境变量(这里是我个人存放opencv的路径)
2、修改darknet项目中的属性:打开项目属性页 -> VC++目录 -> 包含目录 ,加入图上的这些路径
修改库目录
属性页->链接器->输入->附加依赖项中添加opencv_world320.lib 至此opencv配置完成。
3、安装CUDA10.0+cudnn7.3
这一步可以参考https://blog.csdn.net/u013165921/article/details/77891913的文章。
到了这一步其实就可以编译yolov3程序了。。。
但是事情并没有这么简单,运行后报了这些错误
然后上网百度,找到了解决方案,只需安装一下pthreads库即可 具体步骤https://blog.csdn.net/June_Xixi/article/details/83447954
再次运行,又是一顿报错。。 我的解决方案:在右键项目 -> 属性 -> 配置属性 -> VC++目录->库目录
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
在右键项目 -> 属性 -> 配置属性 ->链接器 -> 输入 -> 附加依赖项添加curand.lib
再次调试 成功编译
4、测试
在github上下载作者训练好的模型,网址:https://github.com/AlexeyAB/darknet/blob/master/README.md
下载后放在..\darknet-master\build\darknet\x64下,打开该目录,双击darknet_yolo_v3.cmd会出现以下结果,表明成功编译。
本人亲试,在github上下载的那个darknet.weight文件运行会报错,打不开那个文件。
这个bug本人已解决,是那个文件有问题,我已经将正确的版本放到我的网盘里,读者可以自行下载。
链接:https://pan.baidu.com/s/1IMJgKbgeax9JeMAQGFRYJA 密码:tibx
下载完后,和上面一样放入..\darknet-master\build\darknet\x64中,然后双击双击darknet_yolo_v3.cmd就能正确的出现以下结果
原文地址:https://www.cnblogs.com/jiabin521/p/10731734.html