热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yolov4和yolov5对比分析

YOLO(YouOnlyLookOnce)算法原理前言:详细介绍了yolo系列目标检测算法的原理和发展过程。系列:【YOLO系列】YOLO.v1算法原理详解【YOLO系列】YOLO

YOLO(You Only Look Once)算法原理

前言 :详细介绍了yolo系列目标检测算法的原理和发展过程。

系列:
【YOLO系列】YOLO.v1算法原理详解
【YOLO系列】YOLO.v2算法原理详解
【YOLO系列】YOLO.v3算法原理详解
【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解



4. YOLO.v4 & YOLO.v5


4.1 基本概述

论文参考:YOLOv4: Optimal Speed and Accuracy of Object Detection

回顾 yolo 发展过程:



  • yolo v1 创新性提出了目标检测新框架,即 yolo 横空出世,那时候性能还很薄弱;

  • yolo v2 通过加入各种技巧,使得 yolo 性能有了跟其它主流目标检测网络较劲的底气;

  • yolo v3 基础网络的改变,大大提高了其性能,同时构建出了 yolo 的经典框架;至此,大厦已立。

从性能数据上看,yolo v3 已经是个很成熟很好用的网络了,具有较快检测速度和较高准确率;

事实上,也确会如此,现在 yolo v3 仍旧被诸多目标检测者广泛使用在诸多检测任务中。

AI 发展如此迅速,以至于各种网络训练、建构等小技巧层出不穷,研究者们一直在向着更快、更准的方向前进。

基于这样的背景,yolo v4 就是集技巧之大成者,调参之经典例。换句话说,就是将期间发展的各种深度学习 trick 加入到已立的大厦中。

yolo v5 似乎也有做了类似的事情。

如果简单概括地话,可以认为 yolo v4 是理论的集大成者, yolo v5 则是算法落地实现的实施者。

这也是为什么把两者放到了一个博客中。


4.2 从 YOLO v4


4.2.0 整体网络

整体网络如下所示:

 


4.2.1 框架建构

backbone:



  • CSPResNeXt50

  • CSPDarknet53(√)

  • EfficientNet-B3

 


感受野大小影响:



  • 达到目标大小:模型可以感受到整个目标对象

  • 达到网络大小:模型可以考虑到目标对象的临近对象

  • 超过网络大小:增加图像点之间联系和增加了最后的激活作用


neck:



  • SPP

  • PANet

head:



  • yolov3 head


4.2.2 技巧集成 (BoF, BoS)


本部分就是向框架里堆积各种先进技巧,这些技巧可以分为两类:



  • bag of freebies:不增加模型复杂度,不增加推理计算量的训练方法技巧,提升模型准确度

  • bag of specials:增加少许模型复杂度或计算量,显著增加模型准确度

以下 (√) 表示 yolo v4 采纳的技巧


data augmentation



  • photometric distortions: Brightness, Contrast, Hue, Saturation, Noise

  • geometric distortion: Scale, Crop, Flip, Rotate

  • random erase, CutOut

  • Blur

  • Hide-and-seek, grid mask

  • MixUp

  • CutMix(√)

  • Mosaic(√)

  • style transfer GAN

  • Class label smoothing 类标签平滑(√)

  • Self-Adversarial Training(SAT)自对抗训练(√)

activation function



  • ReLU (×)



  • LReLU (×)



  • PReLU (×)



  • ReLU6 (×)



  • SELU (×)



  • hard-Swish (×)



  • Leaky-ReLU (by default)



  • Swish



  • Mish(√)



bbox regression loss



  • MSE

  • IoU

  • GIoU

  • CIoU (√)

  • DIoU

enhance receptive field



  • SPP (√)

  • ASPP

  • RFB

  • BiFPN

regularization method



  • DropOut

  • DropPath

  • Spatial DropOut

  • DropBlock(√)

normalization



  • Batch Normalization(BN)

  • Cross-GPU Batch Normalization(CGBN or SyncBN) ×

  • Filter Response Normalization(FRN)

  • Cross-Iteration Batch Normalization(CBN)

  • Cross mini-Batch Noramlization(CmBN)(√)

Skip-connections



  • Residual connections

  • Weighted Residual connections

  • Multi-input Weighted Residual connections(MiWRC)(√)

  • Cross-Stage Partial connections(CSP)(√)

attention module



  • channel-wise: Squeeze-and-Excitation (SE)

  • point-wise: Spatial Attention Module (SAM) (√)

other methods



  • Eliminate grid sensitivity(√)

  • Cosine annealing scheduler(√)

  • optimal hyper-parameters by genetic algorithms(√)

  • modified PAN(√)

  • DIoU-NMS(√)

  • Dynamic mini-batch size(√)


4.3 到 YOLO v5


4.3.0 整体网络

整体网络如下所示(以yolov5n为例):

 


4.3.1 框架建构

Backbone


v4 & v5
CSPDarknet


Neck


v4 & v5
SPP/SPPF
PANET


Head


v3 & v4 & v5
(80个类别 + 置信度 + 4个坐标) * 3



4.3.2 技巧集成


注意:yolo v5 现在也在持续更新中,且更新频率很快,下面一些技巧可能是暂时的


Data Augmentation


v5
Scale
Hue
CutMix
Mosaic


Auto Learning BBox Anchors


v3
通过k-means 和 遗传算法 获得



v4
无自适应锚定框



v5
基于训练数据自动学习


Activation Function


v4
Mish



v5
中间层:Leaky ReLU
检测层:Sigmoid


Optimization Function


v4
SGD



v5
较小数据集:Adam
较大数据集:SGD


Cost Function


v4
bbox regression: CIoU loss



v5
class probability score: 二进制交叉熵
objectness score: Logits
bbox regression: GIoU loss



4.4 总结

理论上来说,yolo v4 和 yolo v5 本质上只是在yolo v3 框架基础上“调参”的改进。事实上,确实会有很多人这么认为。

但无论如何,yolo v4 也好,yolo v5也罢, 相较于其前的网络都有非常明显的进步。

from:https://blog.csdn.net/deepsprings/article/details/126347319

本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/16788325.html,如有侵权联系删除



推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 本文探讨了基于点集估算图像区域的Alpha形状算法在Python中的应用。通过改进传统的Delaunay三角剖分方法,该算法能够生成更加灵活和精确的形状轮廓,避免了单纯使用Delaunay三角剖分时可能出现的过大三角形问题。这种“模糊Delaunay三角剖分”技术不仅提高了形状的准确性,还增强了对复杂图像区域的适应能力。 ... [详细]
  • 利用 Python 中的 Altair 库实现数据抖动的水平剥离分析 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 利用 Python Socket 实现 ICMP 协议下的网络通信
    在计算机网络课程的2.1实验中,学生需要通过Python Socket编程实现一种基于ICMP协议的网络通信功能。与操作系统自带的Ping命令类似,该实验要求学生开发一个简化的、非标准的ICMP通信程序,以加深对ICMP协议及其在网络通信中的应用的理解。通过这一实验,学生将掌握如何使用Python Socket库来构建和解析ICMP数据包,并实现基本的网络探测功能。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
author-avatar
书友62908490
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有