yolov5论文_进击的后浪yolov5深度可视化解析

AI编辑:深度眸

0 摘要

论文:暂无
github: https://github.com/ultralytics/yolov5
我注释版本:

https://github.com/hhaAndroid/yolov5-comment

4ded44ff4712d3073e573088782549d5.png

    关于yolov5是否应该赋予这个名称,网上众说纷纭,[如何评价YOLOv5?]讨论非常热烈,在最近的[小麦检测比赛]上也有讨论。作为技术人员,我对此不进行评论,但是由于其在各个数据集上体现出收敛速度快,模型可定制性强的特点,故还是非常有必要深入研究下源码    本文从可视化角度结合源码进行分析,需要特别注意的是:yolov5还在快速迭代中,可能后续改动非常大,所以我仅仅以当前最新版本也就是2020.08.07时候clone的版本为例进行分析。我增加了很多注释,如果需要我新增注释以及可视化部分代码的人,可以点击注释版本github。    yolov5和前yolo系列在网络设计方面差别不大,如果要说差别的话,那就是在loss设计上面和前yolo系列存在较大差别,后面会细说。简单概述来说整个yolov5就是:通过应用类似EfficientNet的channel和layer控制因子来灵活配置不同复杂度的模型,并且在正负样本定义阶段采用了跨邻域网格的匹配策略,从而得到更多的正样本anchor,加速收敛。    网上也出现了一些yolov5的解析,但是我觉得要么写的太简单,要么没有分析到真正核心地方,故才有了这篇文章。通过对代码详细分析,并配合可视化gt和anchor分析,方便理解算法核心思想。由于本人水平有限,可能有理解错误的地方,烦请指正,谢谢。

1 整体设计

1.1 模型设计

    yolov5的整体模型和yolov4差别很小,主要特点是灵活度比yolov4更高。yolov4典型结构是cspdarknet53+panet+spp+yolov3 head

  • YOLOv4

    • The model in YOLOv4 paper.

    • Backbone - CSPDarknet53 with Mish activation

    • Neck - PANet with Leaky activation

    • Plugin Modules - SPP

    如果对yolov4网络结构不太清楚的,可以参考知乎文章[https://zhuanlan.zhihu.com/p/143747206](这位作者也出了yolov5的结构解析),为了方便分析,从里面截一张图,如有侵权,请联系我删除:

0699d9384c534ad922b45cb5ad60fa3b.png

整个yolov4网络结构其实是非常清晰的,而yolov5基本没有啥变化,具体差别后面会写,先简单分析下yolov4结构:

    (1) CSPDarknet53,CSP就是CSPNet论文里面跨阶段局部融合网络,仿照的是Densenet密集跨层跳层连接思想,但是考虑到内存消耗过大,故修改为部分局部跨层融合做法,图示如上所示

    (2) neck模块采用的是PANet和增强模块SPP。SPP结构非常容易理解,就是不同kernel size的pool操作进行融合,在yolov3的改进版中也有应用,对整个运行速度影响很小,但是效果提升明显。而PANet是FPN结构的改进版本,目的是加快信息之间的流通,具体细节可以参考想读懂YOLOV4,你需要先了解下列技术(二)

    (3) head部分没有任何改动,和yolov3和yolov4完全相同,也是三个输出头,stride分别是8,16,32,大输出特征图检测小物体,小输出特征图检测大物体

    yolov5的模型构建仿照了darknet中采用的cfg模式,即通过配置文件来构建网络,但是考虑到da

  • 13
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值