目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记
目录
- 1 前言
- 2 致谢
- 3 YOLO模型列表
- 4 模型结构
- 2.1 Backbone
- Focus——网格下采样
- CSPDarknet53
- 2.3 Neck —— SPP & PAN
- SPP:特征融合
- PAN:自顶向下的特征融合
- 5 后处理算法
- 2.1 NMS Screening——DIoU-NMS
- 6 调试笔记
- 3.1 测试ScaledYOLOv4是否配置成功
- 3.1.1 PyCharm连接Docker出现“cannot connect to the docker daemon at Unix…”
- 3.2 YOLOv5的调试笔记
1 前言
现在最强的YOLO系列算法是YOLOv5x6-TTA, boxAP: 55.0;
2 致谢
感谢DarrenZhang的分享——《Yolov4/v5的创新点汇总!》
3 YOLO模型列表
yolov5x – yolov5x.yaml
YOLOv5中参数量最多的模型,在图像张量输入主干网络之前使用了Focus模块;
4 模型结构
2.1 Backbone
Focus——网格下采样
关于Focus模块的解析请参考《yolov5中的Focus模块的理解》
备注:
- 在实际使用中发现会增大显存消耗,根据作者说明“Focus() module is designed for FLOPS reduction and speed increase, not mAP increase.”,对最终结果似乎没有提升,所以暂时没有使用;
- 之前是想用来增大batch-size,发现会增大显存消耗,然后就暂时停用了;
CSPDarknet53
首先,我们来看看CSPDarknet53网络的整体结构图,
2.3 Neck —— SPP & PAN
SPP:特征融合
我们先来看看Scaled-YOLOv4对SPP的结构设置:
其中,pool_rates=[5, 9, 13];
这里我们可以看看感受野的比例,已知pool_rate=5:9:13pool\_rate = 5:9:13pool_rate=5:9:13,则pool_area=25:81:169pool\_area = 25:81:169pool_area=25:81:169;
则有
pool_area[1:2]=25:81=1:3.24pool\_area[1:2] = 25:81=1:3.24pool_area[1:2]=25:81=1:3.24
pool_area[2:3]=81:169≈1:2.09pool\_area[2:3] = 81:169\approx1:2.09pool_area[2:3]=81:169≈1:2.09
基本上扩大的比例都在2以上;
PAN:自顶向下的特征融合
PAN在YOLOv4的论文中首次提出,也被用于YOLOv5中(YOLOv5x6-TTA, boxAP: 55.0);
首先,我们来直观的感受以下PAN的结构如图所示
可以看到是在使用了FPN之后的一种上采样操作;
5 后处理算法
- Scaled-YOLOv4论文中没有具体给出NMS设置的描述,于是我们参考了YOLOv4中的设置,使用了DIoU-NMS;
- 还可以看看Scaled-YOLOv4的代码来确认一下
2.1 NMS Screening——DIoU-NMS
YOLOv4使用了DIoU-NMS作为后处理的方法;
6 调试笔记
Scaled-YOLOv4的repo代码实际上是基于U版YOLO的框架来实现的,也是基于PyTorch函数库;
3.1 测试ScaledYOLOv4是否配置成功
这里我们可以一个我们依据U版YOLO生成的测试数据集coco128
:
百度网盘链接:https://pan.baidu.com/s/1tHFUASikGDLQnzhLEFAKxA
提取码:sbal
# download yolov4-csp.weights and put it in /yolo/weights/ folder.
python test.py --img 640 --conf 0.001 --batch 8 --device 0 --data coco.yaml --cfg models/yolov4-csp.cfg --weights weights/yolov4-csp.weights
3.1.1 PyCharm连接Docker出现“cannot connect to the docker daemon at Unix…”
这里在使用PyCharm连接Docker时出现错误“cannot connect to the docker daemon at Unix…”,其主要原因是在运行docker
命令时需要root权限,所以这里我们还需要根据Docker官方文档进行“Post-installation steps for Linux”的操作,其
主要目的就是:当前登录Ubuntu用户在使用docker
命令是前面不需要加上sudo
命令;
具体的设置方式请参考Docker官方文档《Manage Docker as a non-root user》;
3.2 YOLOv5的调试笔记
请参考博文《目标检测——YOLOv5的学习笔记》;
目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记相关推荐
- 目标检测 YOLO系列算法
文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...
- 目标检测YOLO系列算法的进化史
本文中将简单总结YOLO的发展历史,YOLO是计算机视觉领域中著名的模型之一,与其他的分类方法,例如R-CNN不同,R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding ...
- 目标检测YOLO系列------YOLO简介
目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗 YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...
- 目标检测——YOLO系列(一网打尽)
YOLO系列算法 1. 基本概念 2. 目标检测算法分类及流程 2.1 算法分类 2.2 基本流程 2.3 Two-stage与One-stage基本流程比较 3. YOLO系列目标检测模型 3.1 ...
- 目标检测 | YOLO系列超全讲解v1,v2,v3
前言 一.YOLOv1 1. 网络结构 2. 实现方法 3. 损失函数 4. 缺点 二.YOLOv2 1. 网络结构 2. 改进方法 3. YOLO9000 4. 网络训练细节 三.YOLOv3 1. ...
- 目标检测yolo系列
出自科技猛兽知乎专栏,地址:科技猛兽目标检测专栏 前言 本文目的是用尽量浅显易懂的语言让零基础小白能够理解什么是YOLO系列模型,以及他们的设计思想和改进思路分别是什么.我不会把YOLO的论文给你用软 ...
- 目标检测 YOLO 系列模型
前言 YOLO (You Only Look Once) 系列模型追求实时目标检测,因此会在一定程度上牺牲精度,以实现更高的检测速度. 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊 ...
- 目标检测YOLO系列总结
目标检测 目标检测 一.YOLO系列 YOLOv1: YOLOV2 Darknet-19 Batch Normalization Anchor Dimension Clusters Direct lo ...
- 目标检测—SSD系列算法原理介绍
一.SSD系列算法原理介绍 1.1 SSD算法介绍: ➢Single Shot MultiBox Detector (one-stage方法) ●Wei Liu在EC ...
最新文章
- 开源websocket
- java里面什么时候环境变量_Java的环境变量什么时候需要设置?
- Java 8最新消息
- 函数setjump和longjmp
- 前端学习(1843):前端面试题之vue管理状态
- 2019长安大学ACM校赛网络同步赛 L XOR
- easyui启用行号错位解决方案
- Nacos配置文件覆盖问题
- mysql索引0affected_mysql 创建索引和删除索引
- 理解 Hook 规则
- 跟着 Microsoft 跑!
- Jvm虚拟机下载和安装教程
- HDU 6184 Counting Stars(分块)
- 英文原始文本的读取与处理
- 基于Matlab的IMM雷达多目标跟踪
- 比如像我这种人,就不适合恋爱
- 读《浪潮之巅(上)》有感
- 计算机组成原理笔记|03存储系统
- 学习pandas,应该选择哪本书进行学习?
- 去掉数组中重复出现元素的算法
热门文章
- [LeetCode] 118. Pascal's Triangle Java
- 数据泵导出/导入数据
- EntityFramework中的DbContext使用疑点说明
- inputtextarea表单提示文字
- python环境配置(三)——notepad ++配置python开发环境
- python进阶22再识单例模式
- jq使用教程07_ JQData HTTP 接口正式上线
- 数据可视化必备的高逼格图表特效,学会只需要五分钟
- 论各类BI工具的“大数据”特性!
- 小白学习使用gitee问题产生汇总(持续更新)