YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)

YOLOv3/YOLOv4+Win10+VS2019+GPU的配置(从0开始 )

文章目录

  • 1. 前言
  • 2. 软件/组件的下载及安装
    • 2.1 CUDA的安装
    • 2.2 cuDNN的安装
    • 2.3 VS2019的安装
    • 2.4 OpenCV
      • 2.4.1 OpenCV的安装
      • 2.4.2 OpenCV环境变量的配置
    • 2.5 darknet的下载
  • 3. VS2019的配置
  • 4. 效果测试
    • 4.1 下载权重文件yolov3.weights/yolov4.weights
    • 4.2 正式测试
  • 5. 结尾

1. 前言

本教程主要分为了两个板块:YOLOv3的配置YOLOv3用自己的数据集训练 (Yolov4配置过程是完全相同的,本博客依然适用,只是训练以及识别采用的命令有所不同,Yolov4的作者已经在他的GitHub中详细描述了,本文主要是讲述如何配置Yolo)

第二篇博客:Win10+Yolov3用yolo_mark标记数据集 训练自己的模型 也已经发布了~~

这几天以来,我也看了很多这方面的博客,依然是踩了很多的坑才过来的。因此我写了这两篇博客,希望能够帮助一些人。

为此我还专门借了一台电脑,没有安装过任何编程相关的软件,以求做到真正的从0开始,且是我亲自配置确定无误的。

btw:文章中涉及到需要下载的东西,都最好先挂,不然下载速度会比较慢。

2. 软件/组件的下载及安装

在配置之前自然要先安装相关的软件或组件(废话)

2.1 CUDA的安装

首先要注意的是,CUDA的安装需要在VS2019的安装之前!如果你已经安装过VS2019,再安装CUDA,可能会导致安装失败。但是也不用担心,也有解决方法。解决方法我等会会给出,这里先按照步骤继续。

先进入CUDA11.0下载地址,依次选择Windowsx86_64,10,最后选择network (选择 local也可以的,只是在线和本地的区别而已,不是重点)

如果你想要选择其他版本的CUDA当然也是可以的。但是需要注意的是,由于最近Yolov4的作者更新了darknet,所以你安装的CUDA版本必须 CUDA >= 10.1,否则会编译失败!

此外似乎CUDA == 11.2的时候会报错,推荐还是使用11.0版本

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第1张图片

CUDA安装勾选

下载之后安装,安装也十分简单。先选择你习惯的路径,安装选项选择精简即可。

如图所示:

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第2张图片

选择路径

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第3张图片

选择精简

安装结束之后重启计算机就好了 (可以不用现在重启,因为之后安装VS2019之后也需要重启计算机)

打开cmd后,输入:

nvcc -V

就可以检测是否已经安装成功。如果安装成功,则可以看见
YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第4张图片

安装成功

回到最开始所说的,假如已经安装了VS2019,导致安装失败了的解决方案。

安装失败之后,可以看到哪些组件未安装,或者安装失败。安装失败大概率是因为Visual Studio Integration这个组件。所以你在重新安装的时候,不要选择精简,而是选择自定义。在自定义安装的过程中,记得去掉安装Visual Studio Integration这个选项再安装。

如果这样依旧安装失败,那就再把安装失败的组件给记录下来,再次自定义安装的时候,额外去掉刚刚记录下来的安装失败的组件,多次重复直到安装成功。

2.2 cuDNN的安装

cuDNN的下载要相对其他几个稍微麻烦一点,因为还需要注册一个账号。首先进入cuDNN下载的地址。之后点击Join now,进入一个登录界面,选择下面的Create An Acount开始注册账号。

注册之后重新打开最初的页面,需要填一个调查问卷,填好之后就可以开始安装了

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第5张图片

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第6张图片

cuDNN下载

注:如果在本教程前已经安装了CUDA且非11.0版本,则选择和自己相对应的cuDNN版本即可。

下载之后得到的是一个zip文件,打开后有一个cuda文件夹。进入这个文件夹,可以看见3个文件夹分别为binincludelib\x64,分别与上一步安装的CUDA中的三个文件夹相对应。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第7张图片

cuDNN的3个文件夹

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第8张图片

CUDA的3个文件夹

需要注意的就是,CUDA的文件目录是在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0

之后再把cuDNN的3个文件夹中的全部文件分别拷贝到CUDA对应的3个文件夹

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第9张图片

文件拷贝,其余2个同理

2.3 VS2019的安装

VS2019的下载比较简单。点击下载地址即可到官网下载VS2019,选择Community版即可。

安装的时候需要注意勾选以下几个就可以了。注意要选择勾选v140

我的因为最开始安装的时候是安装了其他东西的,所以看起来会反而卸载一些东西。注意左下方可以更换安装的位置。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第10张图片

VS2019安装勾选

2.4 OpenCV

2.4.1 OpenCV的安装

首先依旧是先进入官网下载。

点击此处进入下载地址,需要选择3.4.0版本

根据YOLOv3作者的话,采用更高版本的OpenCV可能存在bug (如3.4.1)。目前在更高版本似乎是被修复了的 (毕竟经过一两年了),但是为了保险起见我还是选择了3.4.0版本。

下载之后运行exe文件开始安装,选择你熟悉的路径。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第11张图片

选择路径

2.4.2 OpenCV环境变量的配置

修改环境变量的步骤如下(文字教程下面有图片教程)

  1. 打开资源管理器
  2. 右键此电脑,点击属性
  3. 选择左边的高级系统设置
  4. 选择上方的高级,再点击环境变量
  5. 在用户变量处点击新建
  6. 复制 …\opencv\build\include\opencv…\opencv\build\include\opencv2 分别新建两个变量即可。 为你opencv前面的路径
  7. 点击最下方的确定保存!

图片教程:

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第12张图片


YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第13张图片


YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第14张图片


YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第15张图片


在这里插入图片描述

找到你opencv安装的目录下的两个文件夹并添加

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第16张图片

不要忘记最后的保存

2.5 darknet的下载

首先进入darknet的下载地址下载darknet并解压到自己熟悉的位置。

进入到文件夹的,找到darknet.vcxproj (位置为…\darknet-master\build\darknet\darknet.vcxproj) 选择用记事本打开。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第17张图片

选择用记事本打开darknet.vcxproj

打开之后,ctrl + h打开搜索框。

输入CUDA 10.0开始搜索CUDA的版本 (默认为10.0版本),如图所示。

注意!由于最新一版本的Yolov4的CUDA版本改成了CUDA 11.1,所以这里搜索的时候改成CUDA 11.1 进行搜索。之后可能仍然存在会更新CUDA版本的可能,如果你在搜素CUDA 11.1的时候依然没有找到,则改为直接搜索CUDA,然后修改 CUDA 1X.X版本为你现在安装的CUDA的版本

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第18张图片

查找CUDA版本

将所有的CUDA 10.0更改为自己的版本(目前最新版的Yolo为CUDA 11.1),即CUDA 11.0 (如果你的CUDA版本不是11.0则改成你自己的版本)

3. VS2019的配置

  1. 首先进入到文件夹找到darknet.sln (位置为…\darknet-master\build\darknet\darknet.sln) 用VS2019打开。

btw:我在第一次打开项目的时候莫名失败了,不过关闭vs2019再重新打开又可以打开了

  1. 之后右键文件,选择最下面的属性。YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第19张图片

  1. 调整一下上面的配置
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第20张图片

  1. 配置属性 --> VC++目录 --> 包含目录 --> 编辑
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第21张图片

  1. 添加包含目录
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第22张图片

  1. 选择你opencv的目录 …\opencv\build\include\opencv
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第23张图片

  1. 之后再添加 …\opencv\build\include\opencv2…\opencv\build\include
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第24张图片

  1. 再在下面的库目录添加 …\opencv\build\x64\libYOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第25张图片

  1. 再在下面的链接器添加 opencv_world340.lib

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第26张图片

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第27张图片


  1. 一定要点最后的确定,然后再更改项目
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第28张图片

  1. …\opencv\build\x64\vc14\bin下的opencv_world340.dll…\opencv\build\bin\opencv_ffmpeg340_64.dll
    复制到 …\darknet-master\build\darknet\x64 目录下
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第29张图片
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第30张图片

  1. 打开vs2019,右键并选择重新生成
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第31张图片

  1. 之后显示如下报错
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第32张图片
    报错信息

根据错误信息,我们进入到CUDA的的文件夹

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\visual_studio_integration\MSBuildExtensions 以及错误信息中的文件夹 …\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations

我们将CUDA的这四个文件全部拷贝过去。同时也拷贝到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations中 (因为之后依然会报错显示这个地方缺少文件,为了节省大家时间所以直接让大家把文件也复制到这个地方了)

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第33张图片

拷贝文件后


  1. 点击上方的项目,选择第一个重定目标解决方案,修改成如图的选项并确定。
    YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第34张图片
    重定目标解决方案

  1. 重新生成之后又报错了…这才想起我有个地方还没有配置

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第35张图片

新的报错

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第36张图片

(心态小蹦,不过还好是能解决的问题)

  1. 依旧是右键darknet项目然后选择属性,之后点击 配置属性 → CUDA C/C++ → Device → Code Generation。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第37张图片


先删去第二行,再修改第一行。

将两个变量修改成与继承的值相同 (即均为52)

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第38张图片

修改值并保存


  1. 再次重新生成,就可以看见我们想要的生成成功了!

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第39张图片

成功!芜湖起飞!

4. 效果测试

配置完之后当然要先测试一下效果的~~。

4.1 下载权重文件yolov3.weights/yolov4.weights

首先需要下载权重文件yolov3.weights。点击这里直接开始下载。如果需要下载yolov4.weights,点击这里

4.2 正式测试

首先先打开darknet的文件夹,进入x64文件夹,地址为 …\darknet-master\build\darknet\x64。新建一个文件夹weights,并把刚刚下载好的yolov3.weights(或yolov4.weights)权重文件放入到该文件夹中。

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第40张图片

新建文件夹并移动文件!

最后返回到x64文件夹处,在空白处Shift + 右键,选择在此处打开Powershell窗口 (打开cmd并到该文件夹目录也可,就是稍微麻烦一点点)

输入以下命令并回车运行:

./darknet.exe detect yolov3.cfg weights\yolov3.weights data\dog.jpg

得到检测结果:


检测结果


成功!

除此之外,data文件夹下还有很多其他的图片,如eagle.jpg,horses.jpg等。可以将dog.jpg切换成其他图片检验学习效果。

除了通过data文件夹下的图片检验以外,还可以通过笔记本电脑自带的相机进行实时检测。

依旧是是x64文件夹下打开powershell,输入以下代码并运行:

./darknet.exe detector demo data\coco.data yolov3.cfg weights\yolov3.weights

如果想要使用yolov4版本的,则把上述的命令中的yolov3改为yolov4即可。

此外,还有相当多的其他命令可以使用,可以实现其他不同的识别功能,如:识别视频文件,打开摄像头实时识别,连续输入图片等,这些都可以在yolov4作者的Github中的README.md中找到。也可以看看我写的这篇博客,翻译其中的一部分内容。当然还是建议可以阅读一下英文原本内容。

5. 结尾

YOLOv3/YOLOv4 + CUDA + cuDNN + VS2019 + Win10从0开始的配置全部结束了~

之后会再写一篇关于如何用自己的数据集训练出自己的模型的博客,也是从0开始的~~ 谢谢观看,觉得不错就点个赞吧!

YOLOv3/YOLOv4(GPU)+Win10+VS2019的配置(从0开始)_第41张图片

(更新:第二篇博客Win10+Yolov3用yolo_mark标记数据集 训练自己的模型 也已经写好了~ 可以点进去看看的)

你可能感兴趣的:(教程,yolov3,yolov4,机器学习,windows,visual,studio,cuda)