当前位置:   article > 正文

【完全免费分享】yolov8改进方法,包含多种改进(注意力机制、transformer等)

yolov8改进


我有众多的搭配方案在我的GitHub里
https://github.com/ssrzero123/STF-YOLO

如果对大家有用的话希望得到一个星星star收藏(拜托啦)

一、改进的操作方法

1.注册模块(以SPPFCSPC为例)

在nn/modules/block.py里注册要使用的新模块
有的在block里,有的在conv里,比如深度卷积等等需要在conv里
在这里插入图片描述
插入下面的代码:
在这里插入图片描述

2.各种引用都加上该模块

  1. 翻到block.py最上面,加上模块名
    在这里插入图片描述
  2. 打开nn/modules/init.py
    需要注意的是,加入两个地方:
    ①之前模块注册在哪个py文件,就加入到哪里
    ②__all__的地方添加
    在这里插入图片描述
  3. 打开nn/tasks.py
    在这里插入图片描述
    在ultralytics.nn.modules里import新添加的模块
    在这里插入图片描述
    之后翻到下面649行左右,像图中这样添加
    在这里插入图片描述
    注意: 简单的模块这样添加就注册完成了,但是如果是注意力机制,有的需要在nn/tasks.py再添加一些东西,比如下面这两个注意力机制ECAAttention 和 ShuffleAttention
    在这里插入图片描述

3.在yaml文件里使用

打开cfg/models/v8,创建一个新的yaml
在你选择好的s、m或x的基础上进行修改,如下:
在这里插入图片描述

二、注意事项

  1. 固定的模块只能由某些模块替换,不能随意替换

如:SPPF应替换为SPPCSPC、SPPCSPC_group、SPP等
格式如下:

  - [-1, 1, SPPCSPC_group, [1024]]  # 11
  
  - [-1, 1, SPPCSPC, [1024]]  # 11
  • 1
  • 2
  • 3

如:Conv由DWConv、GhostConv等conv替换,conv.py里有很多模块

因为有些模块有特定的格式,随意替换,不改其他,容易报错,最好还是看我的yaml文件里是如何改的

  1. DWConv、GhostConv可以减小模型复杂度,提高速度,精度可能会下降
  2. 模块可以自由替换几个,可以替换所有可以替换的,也可以只替换某几个
    比如下面这样
## Ultralytics YOLO 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/352029
推荐阅读
相关标签