yolov5 VS yoloX VS yolov8

这篇具有很好参考价值的文章主要介绍了yolov5 VS yoloX VS yolov8。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YOLOv5-6.0版本的Backbone主要分为Conv模块CSPDarkNet53(C3)SPPF模块

一、yolov5

CSPNet被提出的主要目的是为了保证在模型检测和识别精度没有下降的情况下,减少计算量,提高推理速度。它的主要思想是通过分割梯度流,使梯度流通过不同的网络路径传播。通过拼接和过渡等操作,从而实现更丰富的梯度组合信息。

  1. CSP组件 (5.0版本)

yolov5 VS yoloX VS yolov8
  1. C3组件 (6.0版本)

yolov5 VS yoloX VS yolov8
  • 相对CSP,C3结构经过残差模组Resunit后少了一个卷积层, 直接连到了Concat,正好只有3个CBS,或者说只有3个卷积,可能才叫C3(CSP有4个),并且C3中的残差模组,有的地方也叫BottleNeck1(CSP中的残差模组也叫BottleNeck)

  • 通过C3替换CSP,可以起到精简网络结构,减少计算量,降低模型推理时间的作用。作者在项目的updated result里有说明,这样操作在YOLOV5X上模型参数量可以从89M下降到87.7M,推理时间从6.9ms下降到6.0ms,mAP从49.2提升到50.1。

  • C3模块不会改变通道数

class C3(nn.Module):
    # CSP Bottleneck with 3 convolutions
    def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5):  # ch_in, ch_out, number, shortcut, groups, expansion
        super().__init__()
        c_ = int(c2 * e)  # hidden channels
        self.cv1 = Conv(c1, c_, 1, 1)
        self.cv2 = Conv(c1, c_, 1, 1)
        self.cv3 = Conv(2 * c_, c2, 1)  # optional act=FReLU(c2)
        self.m = nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)))
 
    def forward(self, x):
        return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), 1))

二、yolox

yolov5 VS yoloX VS yolov8

就是C3

yolov5 VS yoloX VS yolov8

三、yolov8

“依旧是CSP的思想,不过C3模块被替换成了C2f模块,实现了进一步的轻量化”

这里的轻量化有歧义,模型参数确实变多了

选用梯度流更丰富的C2f结构替换了YOLOv5中的C3结构,为了轻量化也缩减了骨干网络中最大stage的blocks数,同时不同缩放因子N/S/M/L/X的模型不再是共用一套模型参数,M/L/X大模型还缩减了最后一个stage的输出通道数,进一步减少参数量和计算量。

详细看yolov8s.yaml

梯度流分支的概念:

可以是任何之前你学习过的模块,比如,美团提出的YOLOv6中就是用来重参模块RepVGGBlock来替换BottleNeck Block来作为主要的梯度流分支,而百度提出的PP-YOLOE则是使用了RepResNet-Block来替换BottleNeck Block来作为主要的梯度流分支。而YOLOv7则是使用了ELAN Block来替换BottleNeck Block来作为主要的梯度流分支。

yolov5 VS yoloX VS yolov8

C2f模块就是参考了C3模块以及ELAN的思想进行的设计,让YOLOv8可以在保证轻量化的同时获得更加丰富的梯度流信息


实验对比

主题: 1、测试c2f 2、以及GSconv和GhostConv 轻量化

统一配置 data是 helmet.yaml 数据集用的7581 cfg在下面每个子标题中都有

1、yolov5-6.1 (baseline) cfg:yolov5s_hat.yaml 在这个配置文件中学习了各个参数的使用

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

2

yolov5 VS yoloX VS yolov8

真相大白 迪菲赫尔曼是把yolov8s的backbone换了过来, 相比yolov5s的6.1 除了c2f 还有些微不同 即实验2.1

但是消融实验为了对比c3和c2f 要严格控制变量 即实验2.2

2.1 baseline+c2f 按照csdn的来 他改了c2f还有别的东西 cfg:yolov5s_hat_c2f.yaml

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

2.2 baseline+c2f (只改了c2f cfg:yolov5s_hat_c2f2.yaml 严格控制变量

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.1 ghost

在最新版本的YOLOv5-6.1源码中,作者已经加入了Ghost模块,并在models/hub/文件夹下,给出了yolov5s-ghost.yaml文件,因此直接使用即可。

cfg:yolov5s_hat_ghost.yaml

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.2 #backbone和原版一致 neck加入了GhostConv和c3Ghost

cfg:yolov5s_hat_ghost_slimneck.yaml

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.3 已删除 因为当初的VoVGSCSP有问题

3.4

cfg:slimneck-yolov5s_test2

yolov5 VS yoloX VS yolov8

exp9

3.5 cfg: yolov5s_hat_ghost_test2.yaml 和3.4参数居然一样

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.4和3.5是为了对比gsconv和ghostconv

3.6 cfg:lintest1.yaml c3但是gs cheap (是我自己尝试的cheap

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.7cfg: lintest2.yaml c3但是gs 详情去看common中的源码

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

和3.6对比 发现 对精度几乎不变

3.8 cfg:lintest3 GSConv VoVGSCSP 作者官方

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.9 cfg: lintest4 GSConv VoVGSCSPC 作者官方

yolov5 VS yoloX VS yolov8
yolov5 VS yoloX VS yolov8

3.10 cfg: lin-attention-test1.yaml 在3.9的基础上加入了3ca

yolov5 VS yoloX VS yolov8

没训练完 效果不咋地 下降了


参考:

YOLOv5-v6.0学习笔记 - 古月居 (guyuehome.com)

yolov5原理 (dgrt.cn)

如何看待YOLOv8,YOLOv5作者开源新作,它来了!? - 知乎 (zhihu.com)

(75条消息) YOLO v8详解_樱花的浪漫的博客-CSDN博客

(75条消息) YOLOv5/v7 引入 YOLOv8 的 C2f 模块_迪菲赫尔曼的博客-CSDN博客

(76条消息) 【YOLOV5-5.x 源码解读】yolov5s.yaml_满船清梦压星河HK的博客-CSDN博客_yolov5s.yaml

个人收藏夹 gsconv_slimneck文章来源地址https://www.toymoban.com/news/detail-415619.html

到了这里,关于yolov5 VS yoloX VS yolov8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [yolov5/yolov8修改]替换yolov5/yolov8中的主干网络为EfficientNetv2

    yolo系列的网络作为单阶段目标检测网络中的佼佼者,在目标检测方面发挥着很大的作用,而yolov5是其中较好的一代网络,yolov8是其中最新的一代网络。但是作为我们学习和使用来说,原始的yolov5或者yolov8网络并不一定就是最合适的,基于此,在yolov5的基础上,针对主干网络进

    2024年02月06日
    浏览(80)
  • 简述YOLOv8与YOLOv5的区别

    yolov7,yoloX相关论文还没细看,yolov8就出来了。太卷了! YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本。 GitHub地址 : github.com/ultralytics/ultralytics YOLOv8是在YOLOv5上的一次更新,故本篇文章主要对比两者区别: 1.Backbone CSP的思想(/梯度分流)的主要思想,

    2024年02月03日
    浏览(33)
  • 从YOLOv5到YOLOv8(0.52)

    每次代码更新版本都要费眼睛去适应,写个教程方便他人 这里是写给有YOLOv5基础的,因为v5的新手教程已经很多了,v8和v5的源码形式上差不多,只是调用的时候有点区别而已。 YOLOv8 github源码 v8的环境和v5没什么主要区别,待会儿跑一遍,缺什么补什么就好。 下载源文件,不

    2024年02月09日
    浏览(29)
  • 【yolov5&yolov7&yolov8火焰和烟雾检测】

    YOLOv5训练好的火焰检测模型,并包含2000张标注好的火焰和烟雾数据集,标签格式为xml和txt两种,类别名为fire, 有QT界面 采用pytrch框架,代码是python的 火灾检测数据集-1 YOLOv3火焰识别训练模型: https://download.csdn.net/download/zhiqingAI/85438269 yolov5火焰识别训练模型+数据集: https

    2024年04月28日
    浏览(42)
  • pytorch 训练、微调YOLOv5,YOLOv8 小技巧 合集

    yolo v5 坐标相关的判断与转换,评价指标,训练结果解析 YOLOv8 多目标跟踪与常见问题汇总 python + pytorch 多线程实现级联模型的业务逻辑 yolov5 奇奇怪怪的错误汇总:【版本兼容,模型训练,数据加载,模型加速】 基于 TensorRT 使用 python 进行推理优化, 以YOLOv5 为例 本文除了回

    2024年02月07日
    浏览(40)
  • YOLOv5、YOLOv8改进:S2注意力机制

    目录 1.简介 2.YOLOv5改进 2.1增加以下S2-MLPv2.yaml文件 2.2common.py配置 2.3yolo.py配置  S2-MLPv2注意力机制   最近,出现了基于 MLP 的视觉主干。与 CNN 和视觉Transformer相比,基于 MLP 的视觉架构具有较少的归纳偏差,在图像识别方面实现了有竞争力的性能。其中,spatial-shift MLP (S2-MLP),

    2024年02月12日
    浏览(40)
  • YOLOv8/YOLOv7/YOLOv5系列改进| 目录一览表

    💡魔改YOLO系列算法,助力涨点,助力科研。通过添加注意力机制 SE/CBAM/CoordAtt/ECA /SimAM/CrissCrossAttention/ SKAttention/GAMAttention/S2-MLPv2/NAM 等;网络轻量化方法通过更换主干特征提取网络为 MobileNetV3/ShuffleNetV2/EfficientNetv2/Ghostnet/深度可分离卷积/PP-LCNet/mobileone/Ghostnetv2/ELAN 等;优化原

    2023年04月20日
    浏览(44)
  • yolov5、YOLOv7、YOLOv8改进:注意力机制CA

    目录 1.背景介绍 论文题目:《Coordinate Attention for Efficient Mobile NetWork Design》论文地址:  https://arxiv.org/pdf/2103.02907.pdf 2.原理介绍 3.YOLOv5改进: 3.1common中加入下面代码 3.2在yolo.py中注册 3.3添加配置文件 4.yolov7改进 4.1 在common中加入以下代码 4.2在yolo.py中注册 4.3添加配置文件 本

    2024年02月13日
    浏览(51)
  • YOLOv8+tracking与YOLOv5+tracking performance score对比

    如果你想了解YOLOv8的模型细节和里面每个流程,可以阅读这篇博客 https://blog.csdn.net/Albert233333/article/details/130044349 如果这篇博客对你有帮助, 希望你 点赞、收藏、关注、评论 ,您的认可将是我创作下去最大的动力! MOT17——https://motchallenge.net/data/MOT17/ MOT15——https://motchall

    2024年02月04日
    浏览(36)
  • YOLOv5(v7.0)网络修改实践二:把单分支head改为YOLOX的双分支解耦合head(DecoupleHead)

    前面研究了一下YOLOX的网络结构,在YOLOv5(tag7.0)集成了yolox的骨干网络,现在继续下一步集成YOLOX的head模块。YOLOX的head模块是双分支解耦合网络,把目标置信度的预测和目标的位置预测分成两条支路,并验证双分支解耦合头性能要优于单分支耦合头。 主要是个人理解。这里的双

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包