WIN10 yolo_v3环境搭建 2020-7-17

WIN10 yolo_v3环境搭建

VS2019 & CUDA 11.0 & opencv 4.3.0 & darknet

前言

  最近需要用yolo,得搭建yolo_v3环境,所以找了很多资料,有关于yolo的讲解,有关于搭建的教程,大部分人用的是darknet,然而有些教程可能时间比较久了,不一定有用,我安装中也碰到了很多新的问题。所以在本文中对我的搭建过程进行一次回顾,整理一下碰到的问题,作为经验分享,提供给近期需要安装yolov3的同学。参考的博文会在相应处给出。
  首先简单理一下知识点:

  • 什么是yolo:
    yolo_v3是一种检测算法,顾名思义,还有v1,v2,原作者在一篇论文中详细介绍了v3。
  • yolo的用处:
    简单说,输入图像,输出物体位置,类别,置信概率。
  • 什么是darknet:
    yolo作者写的深度学习框架,也随着yolo不断升级,yolo_v3中的是darknet-53,另外也还有个替换:tiny-darknet。

刚开始接触,一知半解,更多关于的yolo的知识点可参考:

  1. yolo详解
  2. yolo_v3深度解析

下面进正题,开始环境搭建:

1 VS2019安装

  darknet是原作者是在Linux下用C写的,所以想在Windows上使用需下载darknet源码然后利用MSVC编译,有几种方法,包括VS,cygwin等方式。用cygwin编译makefile的话,需要修改一些路径,很多教程都在linux上进行,关于VS的教程比较多,相对也省事。大多教程都是用的VS2015,其实19也行,装的时候勾选2015的部分就行。


  下载打开VS2019社区版安装包,进入下面的界面后,勾选使用C++的桌面开发,然后在右边选择最后一个MSVC v140 工具集,其他选项按需求勾选,然后安装。

VS2019安装

2 安装CUDA

cuda、cudnn之间的版本是需要对应的,可以先安装CUDA,然后去下载对应的cudnn。
CUDA下载地址

  按需求下载对应版本就行了,我直接下了最新版11.0,然后进入以下界面,这里就是本地安装和在线安装的区别,刚开始我尝试在线安装,结果老提示无法连接到nvidia,索性就下载了本地安装包,用个下载工具一会儿就下完了,然后的安装界面一路点 确定/下一步 就行了。
CUDA选择  然后CUDA的安装过程中环境变量自动安装了,不放心的话可以自行确认一下。
  最后打开命令行(win+R—cmd),输nvcc -V,如果有版本信息(如下),则安装成功。
版本信息

3 下载cudnn

进入cudnn下载页面,这边需要成为nvidia开发者计划成员,其实就是注册一下就行了,填一些信息,几分钟搞定。
然后进入下载界面,根据安装的CUDA版本找到对应的cudnn下载,当中包含以下文件:
cudnn内容
把这些文件拷贝后放到CUDA安装目录下面的v11.0(具体看你版本)文件夹下替换:
拷贝目录

4 安装opencv

进入官网,选择Windows版本下载安装,就不多说了,我装的是最新的4.3.0。

安装完后要配置环境变量:
OPENCV环境变量

5 darknet

先附上我最终使用的darknet项目地址,这个已经基于VS2015配置好了,接下来介绍搭建过程中还是会顺便扯一下我碰到的问题。

5.1 修改darknet.vcxproj文件

进入darknet —> build —> darknet 文件夹,打开darknet.vcxproj文件,搜索cuda 10,替换成你安装的版本,如果你装的一样就不用改。
CUDA版本修改

5.2 使用VS打开项目

刚开始使用的是从某教程中找到的darknet项目,进入上一步的目录,用VS打开darknet.sln(没有GPU的打开darknet_no_gpu.sln,有GPU的打开darknet.sln),直接提示打开失败,关闭VS再开一遍,莫名其妙又可以了。打开时会有两个选项,其中第二个 平台工具集 一定要选 无升级
无升级
这两个地方要修改一下:
在这里插入图片描述

5.3 配置opencv

右键项目,属性,先修改这两个地方:
配置1


C/C++ ~ 常规 ~ 附加包含目录 ~ 编辑,把opencv的build\include目录设置成自己的(在第二行):
配置2


然后是链接器 ~ 常规 ~ 附加包含目录,同样的操作,不过这里设置的是build\x64\vc14\lib,图略。

5.4 生成项目


右键项目,重新生成


这里可能会报错,提示你在C盘的某某目录下缺失CUDA的targets等文件,也就是我们刚刚修改版本的那两个文件,可以按照报错提示的位置把对应文件放过去。


搞定后我又碰到了其它问题,提示我darknet下的某C文件存在 变量未申明,语法错误等等等等,解决不了我就换成了上面给出的这个配置好的darknet项目,按照流程又走一遍,一次成功。


项目重新生成成功后会在build\darknet\x64目录下发现darknet.exe文件,下载yolov3.weights文件放到该目录下(官网地址 或者 网盘 提取码: jdkt)。

  • 收尾工作
    • 进入 opencv\build\x64\vc14\bin文件夹
      配置4把这两个文件拷贝到darknet.exe同一目录下。

    • 进入CUDA的 v11.0\bin文件夹下,把cudnn64_8.dll也拷贝到darknet.exe同一目录。
      配置5

5.5 测试

在darknet.exe目录下打开cmd,用图片进行测试,我这边使用了自己找的图:
darknet.exe detect yolov3.cfg yolov3.weights 325.jpg
测试结果
搞定 !



正在播放---热河

猜你喜欢

转载自blog.csdn.net/piaoyikang3268/article/details/107139683