YOLOv4从配置环境到跑通代码的小白教程

2023-05-16

一直以来都只是看论文和网上的一些纯文字的讲解,但从来没有实操过,非常想自己跑一下代码,看一下算法的整个实现过程,于是就有了这次尝试。

系统环境介绍

windows 10
NVIDIA  GeForce GTX  3060
VIsual Studio 2017社区版
CUDA 11.3
Cudnn 8.2.0
Python 3.9.7
OpenCV 

1 配置环境

1.1 安装VS

下载网站:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)

安装教程可参考这一篇:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)我安装的是vs 2017社区版,如果你安装的是其他版本应该也不会有什么问题。

1.2-1.4步直接参考这篇文章(懒得写)

(74条消息) YOLOv4手把手教程!从配置环境,带你跑通代码!_Veritaswhs的博客-CSDN博客_yolov4环境搭建

版权声明:本文为CSDN博主「Veritaswhs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43398590/article/details/106100842

有些小伙伴可能从来没有配置过环境变量,所以这里详细解释一下。

在【此电脑】或【计算机】处右键,【属性】->【高级系统属性】->右下角的【环境变量】

首先在【用户变量】处【新建】,添加数据。文章中提到的,像这种:

在这里插入图片描述

就是添加到用户变量里面。

像这种:在这里插入图片描述 

 就是在【系统变量】的【Path】里【编辑】->【新建】,添加数据

2 下载代码

下载链接: GitHub - pjreddie/darknet: Convolutional Neural Networks

将下载的darknet解压缩,我的是在d盘根目录下。

在系统变量Path中加入你下载的darknet的位置

  2.1 修改Makefile文件

在D:\代码\YOLOv4\darknet-master下找到Makefile文件,用记事本打开并修改Makefile,记得保存。

 

2.2 修改darknet.vcxproj

进入D:\代码\YOLOv4\darknet-master\build\darknet目录下,双击darknet.vcxproj,使用Pycharm打开。

 此处给没有安装Pycharm的小伙伴们一个参考:

Pycharm及python安装详细教程_陌上行走的博客-CSDN博客_python详细安装教程

PyCharm2021安装教程_学习H的博客-CSDN博客_pycharm2021

pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细!_川川菜鸟的博客-CSDN博客

因为我的Pycharm安装了很久了,当初也是参考这些文章安装好的,所以这里就不详细写安装过程了。

Pycharm打开darknet.vcxproj后,大概在第55行和第300行左右的位置,找到这样的代码段

将这两处的cuda版本号改为对应的自己已安装的cuda版本号后,保存并关闭 。

 2.3 编译darknet.sln

进入D:\代码\YOLOv4\darknet-master\build\darknet目录下,双击darknet.sln,使用vs 2017打开。

在这里插入图片描述

将上面改为Release  x64,然后点击【生成】->【生成darknet】 

 

若下方显示生成成功,且在D:\代码\YOLOv4\darknet-master\build\darknet\x64下生成了darknet.exe,则编译成功。

 3.darknet使用

 3.1 下载权重文件

权值文件yolov4.weights,下载后放在D:\代码\YOLOv4\darknet-master\cfg目录下。

3.2 运行代码

在网上随便照一张包含人和车的交通路口的照片,放到D:\代码\YOLOv4\darknet-master\data目录下。

然后win+R打开cmd命令提示符。

使用摄像头:

 

随便找一张图片进行测试

在这里插入图片描述 注意:此处的cfg\yolov4.cfg yolov4.weights data\urban.jpg是一个相对路径,最好是改成绝对路径才不容易出错。比如,我把此处改为了:D:\代码\YOLOv4\darknet-master\cfg\yolov4.cfg  D:\代码\YOLOv4\darknet-master\cfg\yolov4.weights  D:\代码\YOLOv4\darknet-master\data\urban.jpg

测试视频:(视频可以去B站下载:车辆检测和交通流量测试视频_哔哩哔哩_bilibili)

darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights .\data\xxx.mp4

最好都改为绝对路径。
 

3.3 测试结果在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YOLOv4从配置环境到跑通代码的小白教程 的相关文章

随机推荐

  • C++STL剖析(九)—— unordered_map和unordered_multimap的概念和使用

    文章目录 1 unordered map的介绍和使用 x1f351 unordered map的构造 x1f351 unordered map的使用 x1f345 insert x1f345 operator x1f345 find x1f
  • C++STL剖析(十)—— 位图(bitset)

    文章目录 1 位图的介绍2 位图的概念3 位图的实现 x1f351 构造函数 x1f351 设置指定位 x1f351 清除指定位 x1f351 获取指定位的状态 x1f351 打印函数 4 总结 1 位图的介绍 在介绍位图之前先来看一道面试
  • C/C++数据结构(十二)—— 红黑树

    文章目录 1 红黑树的概念2 红黑树的性质3 红黑树节点的定义4 红黑树的旋转5 红黑树的插入 x1f351 情况一 x1f351 情况二 x1f351 情况三 x1f345 叔叔结点存在且为红色 x1f345 叔叔结点存在且为黑色 x1f
  • 机器学习数学基础

    文章目录 一 学习任务二 学习内容1 梯度下降法的一般求解步骤2 梯度下降法手工求解极值2 1 计算过程 3 Excel中利用梯度下降求解近似根4 线性回归问题求解4 1 最小二乘法4 2 梯度下降法 三 参考资料 一 学习任务 解释微分
  • 一篇文章吃透算法时间复杂度

    文章目录 前言1 什么是好的算法2 算法的效率度量3 时间复杂度4 大 O 时间复杂度表示法5 算法时间复杂度计算规则 x1f351 规则 1 xff1a 只关注循环中的代码段 x1f351 规则 2 xff1a 加法规则 x1f351 规
  • 2023 年最佳 C++ IDE

    文章目录 前言1 Visual Studio2 Code Blocks3 CLion4 Eclipse CDT xff08 C C 43 43 开发工具 xff09 5 CodeLite6 Apache NetBeans7 Qt Creat
  • 掌握顺序表,成为数据结构和算法的高手

    文章目录 1 线性结构与线性表2 线性表的顺序存储3 顺序表的基础操作 x1f351 顺序表接口总览 x1f351 初始化顺序表 x1f351 销毁链表 x1f351 插入操作 x1f351 删除操作 x1f351 获取元素操作 x1f34
  • 数据结构中常见的哈希表,到底是什么?

    文章目录 1 哈希概念 x1f351 举例说明 2 哈希冲突3 哈希函数 x1f351 常见哈希函数 4 哈希冲突解决 x1f351 闭散列 xff08 开放定址法 xff09 x1f345 线性探测 x1f345 二次探测 x1f351
  • 探索数据结构之精髓:单链表解密

    文章目录 1 前言2 单链表的特点3 单链表的基础操作 x1f351 接口总览 x1f351 初始化操作 x1f351 插入操作 x1f345 优化操作 x1f351 删除操作 x1f345 优化操作 x1f351 获取元素 x1f345
  • 引用与指针:在C++中如何做出正确的选择?

    文章目录 前言1 引用入门2 引用作为函数传参3 引用作为函数返回值4 引用和指针5 其他区别 前言 引用是 C 43 43 的新增内容 xff0c 在实际开发中会经常使用 xff0c 它就如同C语言的指针一样重要 xff0c 但它比指针更
  • C++引用进阶篇:让你的程序更加高效、安全、简洁

    文章目录 前言1 引用和临时数据 x1f351 什么样的临时数据会放到寄存器中 x1f351 关于常量表达式 x1f351 引用也不能指代临时数据 x1f351 引用作为函数参数 2 为const引用创建临时变量3 const引用与转换类型
  • 二叉树基础概念详解

    文章目录 前言1 树的基本概念2 二叉树的基本概念3 特殊二叉树 x1f351 满二叉树 x1f351 完全二叉树 x1f351 斜树 4 二叉树的性质 x1f351 性质一 x1f351 性质二 x1f351 性质三 x1f351 性质四
  • 链队列知识总结及代码实现

    目录 链队的存储方式 链队的优点 链队功能函数 代码实现 链队的存储方式 可以通过 单链表 的方式来实现 xff0c 使用链式队的优点在于它能够克服用数组实现的顺序队空间利用率不高的特点 xff0c 但是需要为每个队元素分配额外的指针空间用
  • 【C语言】全面解析结构体,结构体知识点整理

    文章目录 结构体的概念结构体类型的声明结构体变量的创建typedef关键字结构体的嵌套结构体变量的初始化结构体成员的访问结构体的传参总结 结构体的概念 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 组成结构型数据的每个数据称为
  • 逻辑回归案例 练习

    文章目录 一 学习任务二 学习内容1 常用评价指标2 实验分析 三 参考资料 一 学习任务 学习理解逻辑回归的基本概念 xff0c 练习python代码的实现 xff0c 在notebook中写入自己的理解注释 准确理解机器学习算法的常用评
  • APM飞控学习笔记——自动模式下一分钟自动降落

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 自动模式简介二 添加自动降落功能 1 飞控主循环调用逻辑2 功能添加总结 前言 APM是一款功能齐全的开源多轴飞行器无人
  • Linux基础入门之常用命令

    1 命令的基本格式 1 1 命令的提示符 root 64 localhost xff1a 这是提示符的分隔符号 xff0c 没有特殊含义 root xff1a 显示的是当前的登录用户 xff0c 目前使用的是root用户登录 64 xff1
  • windows10安装python详细过程

    1 下载与安装Python 首先访问网址 https www python org xff0c 进入Downloads 页面 xff0c 即可下载Python 如下图 这里直接下载的是最新版的Python 如果需要下载其他版本的Python
  • 深度学习笔记(二)

    计算机视觉 xff1a 人类肉眼识别的错误率大概在5 到2016年的时候 xff0c 计算机视觉中 xff0c 用深度学习网络达到的错误率已经远低于人类 卷积神经网络 xff08 CNN xff09 1 应用领域 神经网络和卷积神经网络都是
  • YOLOv4从配置环境到跑通代码的小白教程

    一直以来都只是看论文和网上的一些纯文字的讲解 xff0c 但从来没有实操过 xff0c 非常想自己跑一下代码 xff0c 看一下算法的整个实现过程 xff0c 于是就有了这次尝试 系统环境介绍 windows 10 NVIDIA GeFor