码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于Yolov8的野外烟雾检测(2):多维协作注意模块MCA,效果秒杀ECA、SRM、CBAM等 | 2023.9最新发布


     

    目录

     

    1.Yolov8介绍

    2.野外火灾烟雾数据集介绍

    3.MCA介绍

     4.训练结果分析

    5.系列篇


    1.Yolov8介绍

             Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,从CPU到GPU。

    具体改进如下:

    1. Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;

    2. PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;

    3. Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;

    4. Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;

    5. 损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;

    6. 样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式

    框架图提供见链接:Brief summary of YOLOv8 model structure · Issue #189 · ultralytics/ultralytics · GitHub

    2.野外火灾烟雾数据集介绍

    数据集大小737张,train:val:test 随机分配为7:2:1,类别:smoke

    3.MCA介绍

     

    图 1:所提出的多维协作注意模块 (d) 与 ECA 模块 (a)、SRM (b) 和 CBAM (c) 的示意图比较。

     图 2:所提出的具有三个分支的 MCA 模块的总体架构。

    顶部分支用于捕获空间维度 W 中特征之间的交互。类似地,中间分支用于捕获空间维度 H 中特征之间的交互。底部分支负责捕获通道之间的交互。 在前两个分支中,我们采用置换操作来捕获通道维度与任一空间维度之间的远程依赖性。 最后,在积分阶段通过简单平均来聚合所有三个分支的输出。

     图 3:原始残差块的架构(左)、MCA 集成到基本残差块(中)以及 MCA 集成到瓶颈残差块(右)。

    3.1MCA加入到yolov8

    核心代码:

    1. class MCALayer(nn.Module):
    2. def __init__(self, inp, no_spatial=True):
    3. """Constructs a MCA module.
    4. Args:
    5. inp: Number of channels of the input feature maps
    6. no_spatial: whether to build channel dimension interactions
    7. """
    8. super(MCALayer, self).__init__()
    9. lambd = 1.5
    10. gamma = 1
    11. temp = round(abs((math.log2(inp) - gamma) / lambd))
    12. kernel = temp if temp % 2 else temp - 1
    13. self.h_cw = MCAGate(3)
    14. self.w_hc = MCAGate(3)
    15. self.no_spatial = no_spatial
    16. if not no_spatial:
    17. self.c_hw = MCAGate(kernel)
    18. def forward(self, x):
    19. x_h = x.permute(0, 2, 1, 3).contiguous()
    20. x_h = self.h_cw(x_h)
    21. x_h = x_h.permute(0, 2, 1, 3).contiguous()
    22. x_w = x.permute(0, 3, 2, 1).contiguous()
    23. x_w = self.w_hc(x_w)
    24. x_w = x_w.permute(0, 3, 2, 1).contiguous()
    25. if not self.no_spatial:
    26. x_c = self.c_hw(x)
    27. x_out = 1 / 3 * (x_c + x_h + x_w)
    28. else:
    29. x_out = 1 / 2 * (x_h + x_w)
    30. return x_out

    详见:YoloV8改进:原创独家首发 | 多维协作注意模块MCA,暴力涨点,效果秒杀ECA、SRM、CBAM等 | 即插即用系列_AI小怪兽的博客-CSDN博客

     4.训练结果分析

    训练结果如下:

    原始mAP@0.5 0.839提升至0.87

    1. YOLOv8n_MCALayer summary (fused): 209 layers, 2545659 parameters, 0 gradients, 7.2 GFLOPs
    2. Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 4/4 [00:05<00:00, 1.46s/it]
    3. all 199 177 0.817 0.853 0.87 0.504

    5.系列篇

    1)基于Yolov8的野外烟雾检测

    2)基于Yolov8的野外烟雾检测(2):多维协作注意模块MCA| 2023.9最新发布

    3)基于Yolov8的野外烟雾检测(3):动态蛇形卷积,实现暴力涨点 | ICCV2023

    4)基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA) | 中科院2023最新发表 

    5)  基于Yolov8的野外烟雾检测(5):Gold-YOLO,遥遥领先,超越所有YOLO

  • 相关阅读:
    基于Python web信息旅游管理系统
    编译[Bug]——too few arguments for template template parameter “Tuple“ detected
    HTML5 介绍
    第十四届蓝桥杯校内模拟赛(第二期)题解分享
    React Context源码是怎么实现的呢
    Day13:数据结构之(B-树)2-3树
    Python Asyncio 之网络编程方法详解
    HTML5网页设计成品:汽车介绍特斯拉 (dreamweaver作业静态HTML网页设计模板)
    java开发之个人微信的二次开发
    浏览器发访问请求,访问前端OR后端
  • 原文地址:https://blog.csdn.net/m0_63774211/article/details/133043188
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号