在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

作者:C君莫笑 时间:2023-05-12 10:50:46 

前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了windows下YOLO的环境搭建流程。

一、相关知识储备

1. YOLO是什么?

  • YOLO是一种实时目标检测算法,它是第一个平衡所提供检测的质量和速度的算法。通常,这类最强大的模型,都是建立在卷积神经网络的基础上,这次也不例外。所谓「目标检测模型」,我们的意思是,我们不仅可以用它来找出给定照片中存在的对象,还可以用它来指示它们的位置和数量。除其他外,这种模型在机器人和汽车工业中都有应用,因此检测速度至关重要。自2015年以来,该算法已经进行了三次迭代,还有为

TinyYOLO 等移动设备设计的变体。移动版本的精度有限,但计算要求也较低,运行速度更快。

2.CPU&GPU

  • CPU(Central Processing

Unit)是指中央处理器,决定着手机的运行速度。一般来说芯片数字越大代表着型号越新,因此我们在选择CPU的时候应该选择名称中所带数字较大的。

  • GPU(Graphics Processing

Unit)是指图像处理器,在手机上用于游戏画面的渲染,通常GPU的型号越新,频率越高,意味着游戏的画面展示速度越快。

  • CPU和GPU二者对于用户来说是缺一不可,前者负责计算数据,后者负责显示内容,构造后端运算,前端显示的前后搭配。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

3.什么是CUDA

  • CUDA(Compute Unified Device Architecture),显卡厂商NVidia推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。

  • 通过CUDA架构,视频播放软件可以充分挖掘NVIDIA系列显卡的GPU并行计算能力,轻松进行高清影片的播放,与软件高清解码相比,CPU占用可以下降一半以上。当然,CUDA的应用领域绝不仅仅是视频、图形、游戏,包括各种3D和建模,医疗、能源、科学研究等,到处都可见到这种技术架构的应用

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

4.什么是cuDNN

  • NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA

cuDNN可以集成到更高级别的机器学习框架中,如加州大学伯克利分校的流行caffe软件。简单的,插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。

5.什么是OpenCV

  • OpenCV是一个基于Apache2.0许可发行的跨平台计算机视觉和机器学习软件库,可以在Linux、Windows、Android和Mac

OS操作系统上运行。它轻量级而且高效——由一系列 C 函数和少量 C++
类函数构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了很多图像处理和计算机视觉方面的通用算法。

二、系统与环境要求

1.硬件环境

  • Windows10系统+GPU显卡

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

2.软件环境

  • CUDA,cuDNN,VS2019,OpenCV

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

三、相关环境下载

1.NVIDIA下载驱动

https://developer.nvidia.com/cuda-10.1-download-archive-update2

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

打开NVIDIA官网驱动程序下载页面,选择适合你显卡的驱动,下载并安装。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

2.CUDNN下载

点击:https://developer.nvidia.com/rdp/cudnn-download 注册个账户,然后下载对应版本加速库

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

3.VS2019下载

https://visualstudio.microsoft.com/zh-hans/downloads/

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

4.opencv下载

https://opencv.org/opencv-4-5-0/

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

四、安装与配置

1.显卡驱动安装

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

选择自定义安装:

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

全部勾选,点击下一步:

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

使用默认的安装路径:

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

2.配置CUDA环境变量

右键“我的电脑”选择属性,点击“高级系统设置”->“环境变量”。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

可以看到CUDA默认写入了2条环境变量信息,但这些还不够,点击新建,添加以下环境变量:

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

 

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

根据你CUDA的实际安装路径配置变量值,但我建议你安装CUDA时使用默认的路径,避免出现各种奇葩问题。
然后在系统变量中找到Path,双击打开并加入以下变量值:

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

然后打开控制台,输入:nvcc -V
如果输出CUDA版本等相关信息,说明CUDA安装成功。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

3.CUDNN安装

将解压后的文件,覆盖到CUDA的安装目录下

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

4.OpenCV安装

下载完成后双击打开,该exe是个自解压程序,选择一个解压目录,解压完成后,将解压出来的opencv文件夹复制到c盘根目录下。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

五、YOLO下载和编译

1.YOLO下载

点击 https://github.com/AlexeyAB/darknet

下载YOLO。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

下载到本地后,解压,将darknet-master重命名为darknet

2.复制编译依赖文件

将c:/opencv/build/x64/vc15/bin目录下的opencv_ffmpeg340_64.dll、opencv_world340.dll复制到D:\darknet\build\darknet\x64目录下

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

3.修改darknet.vcxproj文件

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

打开文件找到两处有CUDA版本号的地方(一般55 & 307行附近)将这里的10.1改为自己的版本号,然后保存

4.YOLO编译

用vs2019打开 darkne\build\darknet\darknet.sln 确定弹出的升级窗口,设置为Release,x64编译 生成可执行文件

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

5.YOLO+VS环境配置

右键darknet工程,选择属性。
然后点击VC++目录,编辑包含目录,将以下路径添加到包含目录中

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

 

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

点击库目录,把以下内容添加到库目录中。
点击链接器->输入,在附加依赖项中添加

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

 

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

编译过程可能会出现很多警告,但只要最终提示生成:成功1个,失败0个,则表示编译成功。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

六、YOLO环境测试

windows+r,输入cmd,进入自己对应的build/darknet/x64下
执行

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

如果出现CUDA版本信息,说明YOLO可以通过GPU来进行目标识别了。

在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

来源:https://blog.csdn.net/qq_34623621/article/details/127475863

标签:Opencv,GPU,YOLOv4
0
投稿

猜你喜欢

  • Python迭代器的实现原理

    2022-12-13 09:26:22
  • python爬虫开发之PyQuery模块详细使用方法与实例全解

    2021-05-28 20:54:29
  • Python实现我的世界小游戏源代码

    2023-07-26 02:09:08
  • MySQL 1130异常,无法远程登录解决方案详解

    2024-01-28 11:51:21
  • python爬虫学习笔记之Beautifulsoup模块用法详解

    2022-06-27 12:30:03
  • Mysql 查询JSON结果的相关函数汇总

    2024-01-23 22:30:16
  • js显示动态时间的方法详解

    2024-05-05 09:12:35
  • Python time库的时间时钟处理

    2022-12-18 23:04:23
  • ASP开发中可能遇到的错误信息中文说明大全(整理收集)第1/2页

    2010-07-02 09:50:31
  • 加速 PyTorch 模型训练的 9 个技巧(收藏)

    2023-12-17 10:35:58
  • python+adb+monkey实现Rom稳定性测试详解

    2023-02-06 07:46:00
  • Django中使用Celery的教程详解

    2023-07-12 05:08:35
  • Python嵌套循环的使用

    2022-11-12 17:19:23
  • 详解tensorflow实现迁移学习实例

    2022-02-06 01:43:22
  • 使用tensorflow实现矩阵分解方式

    2022-04-17 17:01:17
  • js,jquery滚动/跳转页面到指定位置的实现思路

    2024-04-10 16:19:54
  • phpmyadmin 数据导入导出问题

    2007-08-06 15:23:00
  • WebStorm 遇到的问题总结

    2023-08-31 23:30:00
  • tensorflow实现简单的卷积神经网络

    2021-07-15 21:13:02
  • 详解Python中的array数组模块相关使用

    2021-03-05 04:04:19
  • asp之家 网络编程 m.aspxhome.com