🔥🔥🔥专注于YOLOv8改进,NEW - YOLOv8 🚀 in PyTorch >, Support to improve Backbone, Neck, Head, Loss, IoU, LA, NMS and other modules🚀 Makes YOLOv8 improvements easy again
芒果出品
YOLOv8改进项目汇总-超全改进-ultralyticsPro项目
订阅了《芒果YOLOv8原创改进专栏》的读者免费赠送!!!
🚀该项目持续更新:内容包括:改进 新的标签分配策略、检测头Head、损失函数Loss、主干Backbone、Neck部分、分类损失函数、NMS改进、写作技巧、性能指标技巧
包括很多稀有改进
🌟 全新的YOLOv8改进项目ultralyticsPro来袭,最新改进点更新🚀2024
YOLOv8改进项目地址:https://github.com/iscyy/ultralyticsPro
bilibili视频教程链接:bilibili: https://space.bilibili.com/1532780812 (可 bilibili 私信)
改进YOLOv8项目
使用说明
该项目基于 官方的YOLOv8项目v8.1版本,使用稳定可靠,环境已配好,适合零基础小白以上的用户使用
- 🍈该《YOLOv8改进项目ultralyticsPro》基于官方ultralytics项目YOLOv8-最新稳定版本,兼容所有官方的更新
- 🍉订阅该《YOLOv8改进项目ultralyticsPro》即可获取本项目里面改进点对应的《核心代码模块文件》,加入《改进后的核心代码文件》就可以直接运行。保证本项目中已有的改进点都能正常运行实验
- 🥭目前该项目《ultralyticsPro》有部分改进为免费使用的,用户可以直接试用
- 🍊重点:支持该项目相关改进的答疑服务
- 🍌在此基础上新建了一个《芒果YOLOv8项目改进交流群》便于项目改进交流和答疑,并在群里同步更新新的内容, 之前在CSDN订阅过·YOLOv8深度改进专栏·和·剑指YOLOv8改进专栏·可以免费使用该项目
- 🌰新增以《视频教程》辅助来说明应该怎么改
- 🌟多任务改进篇:支持OBB旋转检测、姿态估计、图像分割任务、图像分类等各类改进
- 🎈该项目为YOLOv8改进项目, 目前为预售阶段,欢迎订阅,可以加芒果QQ:2434798737,或者点击链接 通过 👉bilibili哔哩哔哩 私信, 或者👉 CSDN: 博主 私信)进行订阅,订阅后,实时获取最新的已有的《改进的核心模块代码文件》
- 🏆已经订阅了的用户 可以进《ultralyticsPro改进YOLOv8交流群》 同时获取本项目剩下对应的《核心代码模块文件》
- 🏅️用户可以添加博主的联系方式 QQ:2434798737 ⭐⭐⭐(或者点击链接 通过 👉bilibili哔哩哔哩 私信, 或者👉 CSDN: 博主 私信)进行订阅
- 🚀该项目持续更新:内容包括:改进 新的标签分配策略、检测头Head、损失函数Loss、主干Backbone、Neck部分、分类损失函数、NMS改进、写作技巧、性能指标技巧
本项目持续维护,持续更新原创内容
项目相关链接
2.1 演示视频教程
- bilibili视频教程链接:bilibili: https://space.bilibili.com/1532780812 (可 bilibili 私信)
2.2 演示文档教程
- CSDN教程链接:CSDN: https://yoloair.blog.csdn.net/ (可 CSDN 私信)
- 博主 QQ 联系方式:2434798737(需要咨询/订阅该改进项目的用户可以添加)
订阅说明
目前为订阅制
,现在内测阶段:价格比较优惠 ⭐⭐⭐ !!!⭐⭐⭐, 后续恢复为原价
(需要订阅的联系QQ:2434798737)
YOLOv8改进 - 目录(2024.03最新版本)
主项目在 UltralyticsPro 项目中,点击链接即可
GitHub - iscyy/ultralyticsPro: 🔥🔥🔥专注于改进YOLOv8模型,NEW - YOLOv8 🚀 RT-DETR 🥇 in PyTorch >, Support to improve backbone, neck, head, loss, IoU, NMS and other modules🚀
4.1. IoU损失函数改进
项目内容链接👉:ultralyticsPro/YOLOv8-Loss
说明:
YOLOv8损失函数Loss改进(ultralyticsPro)
4.2 检测头Head改进
项目内容链接👉:ultralyticsPro/YOLOv8-Head
说明:
YOLOv8检测头Head改进(ultralyticsPro)
4.3 主干网络改进Backbone
项目内容链接👉:ultralyticsPro/YOLOv8-Backbone
说明:
YOLOv8主干Backbone改进(ultralyticsPro)
4.4 特征融合网络改进Neck
项目内容链接👉:ultralyticsPro/YOLOv8-Neck
说明:
YOLOv8特征融合Neck改进(ultralyticsPro)
4.5 金字塔结构改进Neck
这部分比较简单,直接更新到ultralyticsPro项目中
4.6 标签分配策略改进
包含超多种 **自研结构,**以下改进 博主在 **公开小目标数据集VisDrone **上进行了实验并取得了 不错的效果
YOLOv8改进 《标签分配策略》 | 标签分配策略 核心配置文件yaml👇 | |
---|---|---|
**SimOTA **动态标签分配策略 | YOLOv8-SimOTA.yaml | 全网首发,独家 |
**YOLOv7 **标签分配策略 | YOLOv8-v7LA.yaml | 全网首发,独家 |
**YOLOv5 **标签分配策略 | YOLOv8-v5LA.yaml | 全网首发,独家 |
ATSS 动态标签分配策略 | YOLOv8-ATSS.yaml | 23年原创 |
NanoDet 动态标签分配策略 | YOLOv8-NanoDet.yaml | 全网首发,独家,原创 |
WDLA 动态标签分配策略 | YOLOv8-WDLA.yaml | 全网首发,独家,二次原创 |
**ATSS+TAL协同训练机制 **标签分配策略 | YOLOv8-ATSS_TAL.yaml | 全网首发,独家,二次原创 |
RFLA 动态标签分配策略 | YOLOv8-RFLA.yaml | 进行二次原创 |
Generalized Focal Loss 标签分配策略 | YOLOv8-GFL.yaml | 全网首发,独家 |
RTMDet 动态标签分配策略 | YOLOv8-RTMLA.yaml | 全网首发,独家 |
AlignOTA 动态标签分配策略 | YOLOv8-AlignOTA.yaml | 全网首发,独家 |
DynamicATSS 动态标签分配策略 | YOLOv8-DynamicATSS.yaml | 全网首发,独家 |
DW 双加权 动态标签分配策略 | YOLOv8-DW.yaml | 全网首发,独家 |
MuSu相互监督 标签分配策略 | YOLOv8-MuSu.yaml | 全网首发,独家 |
持续更新最新原创 标签分配策略 结构 | 同步在该项目/文档中更新 |
更多 硬核 **标签分配策略 **改进 持续更新中…
说明:
可能有同学好奇,为什么是yaml的形式 来改进标签分配策略LA?
这是博主提出的一种比较新颖的改进方式,关于使用不同《标签分配策略》训练
现在集成了直接在yaml网络配置文件中修改不同**《标签分配策略》**进行训练,只需要将 **LA:SimOTA **字段 改为对应的 《标签分配策略》 名称, 即可 使用 ATSS动态标签分配策略 进行训练
比如 添加
LA:ATSS
或者
LA:SimOTA
即表示使用** SimOTA标签分配策略 **训练,非常方便,是目前第一个项目采用这种方式,很方便,且很容易记录实验情况。代码展示可展开,详情👇
# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8 object detection model. More improvement points for YOLOv8, please see https://github.com/iscyy/ultralyticsPro
# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
# [depth, width, max_channels]
n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs
s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs
m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs
loss: 'CIoU' # 举例,如果使用XIoU损失函数的话, 即修改对应的名称
newHead: 'LADH' # 举例,如果使用 检测头LADH 的话, 即修改对应的名称
LA:'SimOTA' # 举例,如果使用 SimOTA动态标签分配策略 的话, 即修改对应的名称
# YOLOv8.0n backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 3, C2f, [128, True]]
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
- [-1, 6, C2f, [256, True]]
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
- [-1, 6, C2f, [512, True]]
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
- [-1, 3, C2f, [1024, True]]
- [-1, 1, SPPF, [1024, 5]] # 9
# YOLOv8.0n head
head:
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
- [-1, 3, C2f, [512]] # 12
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
- [-1, 1, Conv, [256, 3, 2]]
- [[-1, 12], 1, Concat, [1]] # cat head P4
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
- [-1, 1, Conv, [512, 3, 2]]
- [[-1, 9], 1, Concat, [1]] # cat head P5
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) # 这里使用的是检测头LADH