YOLOv4
@
YOLOv4是最近开源的一个又快又准确的目标检测器。
首先看一下Github上的版本要求及下载地址:
系统:Windows or Linux
CMake >= 3.12: https://cmake.org/download/
CUDA 10.0: https://developer.nvidia.com/cuda-toolkit-archive
OpenCV >= 2.4: 直接从Opencv官网下载就好
cuDNN >= 7.0 for CUDA 10.0: https://developer.nvidia.com/rdp/cudnn-archive
Visual Studio 2015/2017/2019: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community
YOLO v4源码
YOLOv4仓库github地址: https://github.com/AlexeyAB/darknet.
为了防止下载压缩包解压后会丢失一些文件,建议在码云上clone下来。
CMake安装
进入官网下载最新的版本即可,图中红色标注的位置,下载后一路默认安装点下来就好。(PS:如果下载网络较慢,这里有百度云链接,提取码:ev94)

CUDA安装
CUDA是我当初安装tensorflow2.0时安的
主要是从官网上下载安装文件,
解压缩,如图:

同意并继续,选择精简,进入安装,大概要几分钟的时间。

安装完成后检查是否安装成功。
win+R 进入运行界面,输入cmd进入命令行界面,输入nvcc --version 查看是否安装成功

cuDNN安装
在官网下载前需要注册NVIDIA DEVELPOER 的账号,选择与CUDA10.0对应的版本cuDNN7.6.4,点击library for win10文件,大概有240M左右。如下图所示:

官网的安装教程:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows
其实就是将解压后将下面几个文件复制到CUDA的对应路径下。
- Copy ...\cuda\bin\cudnn64_7.6.5.32.dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin.
- Copy ...\cuda\ include\cudnn.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include.
- Copy ...\cuda\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64.
简便快捷的方法就是把下载好的CUDNN文件 全部复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2中
OpenCV安装
从官网下载,版本要大于2.4
下载好直接解压就可以,并将installpath\opencv\build\路径添加到系统的环境变量中,
CMake编译的时候会自动找到这个文件夹
添加环境变量如下图所示,在此电脑右击属性,弹出下图界面,点击高级系统设置。
点击环境变量,新建环境变量,

新建环境变量,变量名为OpenCV_DIR,变量地址为C:\Program Files\opencv\build

Cmake编译
如果你想用GPU加快检测速度,需要将Makefile文件用记事本打开,更改GPU=1 CUDNN=1 CUDNN_HALF=1 OPENCV=1。如下图所示:

选择Browse Source 为源码所在文件夹,Browse Build 可以选择同一文件夹,点击Configure,弹出如下界面:

第一项选择你所安装的VS版本,第二项平台选择x64 ,点击Finish,点击Configure,没有错误后点击生成。

成功后点击Open Project 打开项目文件。
VS编译
注意:选择release版本,x64,直接生成解决方案。

将D:\github\darknet\Release文件夹下的darknet.exe文件复制

打开到D:\github\darknet\build\darknet\x64文件夹内进行粘贴,如下图所示

将opencv ...\opencv\build\x64\vc14\bin 下的两个opencv_world330.dll和 opencv_ffmpeg330_64.dll dll文件复制到上述文件夹内。如下图所示:

将cuDNN中的cudnn64_7.dll复制到上述文件夹。

图像测试
为了验证是否配置成功,下载推荐的yolov4.weights文件,文件大概有245M,百度云.密码:wg0r
将下载后的文件放在D:\github\darknet\build\darknet\x64文件夹下。
打开cmd命令行,转到上述的文件夹内,如下图所示:
按照GitHub,测试图像和视频复制对应的命令:
Yolo v4 COCO - image: darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
Output coordinates of objects: darknet.exe detector test cfg/coco.data yolov4.cfg yolov4.weights -ext_output dog.jpg
Yolo v4 COCO - video: darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4

测试结果
自带的dog图像

羊群

YOLOv4的更多相关文章
- 【论文笔记】YOLOv4: Optimal Speed and Accuracy of Object Detection
论文地址:https://arxiv.org/abs/2004.10934v1 github地址:https://github.com/AlexeyAB/darknet 摘要: 有很多特征可以提高卷积 ...
- YOLOV4在linux下训练自己数据集(亲测成功)
最近推出了yolo-v4我也准备试着跑跑实验看看效果,看看大神的最新操作 这里不做打标签工作和配置cuda工作,需要的可以分别百度搜索 VOC格式数据集制作,cuda和cudnn配置 我们直接利用 ...
- YOLOV4源码详解
一. 整体架构 整体架构和YOLO-V3相同(感谢知乎大神@江大白),创新点如下: 输入端 --> Mosaic数据增强.cmBN.SAT自对抗训练: BackBone --> CSPDa ...
- YoloV4当中的Mosaic数据增强方法(附代码详细讲解)码农的后花园
上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix. 前言 Yolov4的mosaic数据增强参考了CutM ...
- YOLOv4: Darknet 如何于 Docker 编译,及训练 COCO 子集
YOLO 算法是非常著名的目标检测算法.从其全称 You Only Look Once: Unified, Real-Time Object Detection ,可以看出它的特性: Look Onc ...
- C#封装YOLOv4算法进行目标检测
C#封装YOLOv4算法进行目标检测 概述 官网:https://pjreddie.com/darknet/ Darknet:[Github] C#封装代码:[Github] YOLO: 是实现实时物 ...
- YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口
本文将介绍 YOLOv4 官方 Darknet 实现,如何于 Ubuntu 18.04 编译,及使用 Python 接口. 主要内容有: 准备基础环境: Nvidia Driver, CUDA, cu ...
- 深度剖析目标检测算法YOLOV4
深度剖析目标检测算法YOLOV4 目录 简述 yolo 的发展历程 介绍 yolov3 算法原理 介绍 yolov4 算法原理(相比于 yolov3,有哪些改进点) YOLOV4 源代码日志解读 yo ...
- YOLOv4全文阅读(全文中文翻译)
YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...
随机推荐
- 使用轮询&长轮询实现网页聊天室
前言 如果有一个需求,让你构建一个网络的聊天室,你会怎么解决? 首先,对于HTTP请求来说,Server端总是处于被动的一方,即只能由Browser发送请求,Server才能够被动回应. 也就是说,如 ...
- 简单谈谈contextlib的使用
简单谈谈contextlib的使用 写在前面 做这件事的原因: 在看书的时候,我发现了有大佬们用contextlib管理上下文,真的很牛皮,但是百度了以下,每个大佬都写了很多很全很深刻,讲道理五花八门 ...
- Liunx运维(七)-用户管理及用户信息查询命令
文档目录: 一.useradd:创建用户 二.usermod:修改用户信息 三.userdel:删除用户 四.groupadd:创建新的用户组 五.groupdel:删除用户组 六.passwd:修改 ...
- 什么是ResultSet
概述: 在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表. ResultSet对象维护了一个游标,指向当前的数据行.开始的时候这个游标指向的是第一行. 注意: 如果调用了Re ...
- [标签] Java学习日报7.28
package minG;import java.util.*;public class MinG { public static void main(String[] args) { // TODO ...
- Hbase集群模式搭建
1.官网下载hbase安装包 这里不做赘述. 2.解压---直接tar -zxvf xxxx 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-si ...
- JVM个人总结一
看了深入理解JAVA虚拟机已经有一段时间了 发现很多东西如果不总结 脑子里总是没有一条线贯穿起来,也比较模糊混乱,所以还是有必要利用逻辑思维图总结下. JVM看了下 大致比较重要的分内存区域划分 ...
- 美团关于分布式ID实践方案细节
摘自https://tech.meituan.com/2019/03/07/open-source-project-leaf.html Leaf是美团基础研发平台推出的一个分布式ID生成服务,名字取自 ...
- 聊一聊这个总下载量3603w的xss库,是如何工作的?
上篇文章这一次,彻底理解XSS攻击讲解了XSS攻击的类型和预防方式,本篇文章我们来看这个36039K的XSS-NPM库(你没有看错就是3603W次, 36039K次,36,039,651次,数据来自h ...
- CVE-2021-3019 漏洞细节纰漏
CVE编号 CVE-2021-3019 lanproxy任意文件读取 该漏洞是2021年比较新的漏洞 是否需要认证:否 是否执行远程代码:否 是否执行远程命令:否 数据读取是否内网:否 漏洞软件介绍 ...