基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA),效果秒杀CBAM和SE等 | 中科院2023最新发表

news2024/11/24 19:45:18

   

目录

   

1.Yolov8介绍

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

 3.CPCA介绍

3.1 CPCA加入到yolov8

 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.CPCA介绍

论文:[2306.05196] Channel prior convolutional attention for medical image segmentation (arxiv.org)

摘要:本文提出了一种高效的通道先验卷积注意力(CPCA)方法,支持注意力权重在通道和空间维度上的动态分布。 通过采用多尺度深度卷积模块,可以有效地提取空间关系,同时保留通道先验。 CPCA具备聚焦信息渠道和重要区域的能力。 基于 CPCA 提出了一种用于医学图像分割的分割网络 CPCANet。 CPCANet 在两个公开可用的数据集上进行了验证。 通过与最先进的算法进行比较,CPCANet 提高了分割性能,同时需要更少的计算资源。 

现有研究问题点:

虽然 CBAM 整合了通道注意和空间注意,但它在其输出特征的所有通道上强制执行一致的空间注意分布。相反,SE(图 1(a))只整合了通道注意,这限制了它选择重要区域的能力。

本文创新:

  • 如图 1(c) 所示,作者提出了一种新的通道优先卷积注意力(Channel Prior Convolutional Attention,CPCA)方法,采用多尺度的深度可分离卷积模块构成空间注意力,可以在通道和空间维度上动态分配注意权重。

 图3:通道先验卷积注意力(CPCA)的整体结构包括通道注意力和空间注意力的顺序放置。特征图的空间信息是由通道注意力通过平均池化和最大池化等操作来聚合的。 随后,空间信息通过共享 MLP(多层感知器)进行处理并添加以生成通道注意力图。 通道先验是通过输入特征和通道注意力图的元素相乘获得的。 随后,通道先验被输入到深度卷积模块中以生成空间注意力图。 卷积模块接收空间注意力图以进行通道混合。 最终,通过通道混合结果与通道先验的逐元素相乘,获得细化的特征作为输出。 通道混合过程有助于增强特征的表示

3.1 CPCA加入到yolov8

核心代码:

######################  CPCAAttention   ####     start   by  AI&CV  ###############################

class CPCAChannelAttention(nn.Module):

    def __init__(self, input_channels, internal_neurons):
        super(CPCAChannelAttention, self).__init__()
        self.fc1 = nn.Conv2d(in_channels=input_channels, out_channels=internal_neurons, kernel_size=1, stride=1, bias=True)
        self.fc2 = nn.Conv2d(in_channels=internal_neurons, out_channels=input_channels, kernel_size=1, stride=1, bias=True)
        self.input_channels = input_channels

    def forward(self, inputs):
        x1 = F.adaptive_avg_pool2d(inputs, output_size=(1, 1))
        # print('x:', x.shape)
        x1 = self.fc1(x1)
        x1 = F.relu(x1, inplace=True)
        x1 = self.fc2(x1)
        x1 = torch.sigmoid(x1)
        x2 = F.adaptive_max_pool2d(inputs, output_size=(1, 1))
        # print('x:', x.shape)
        x2 = self.fc1(x2)
        x2 = F.relu(x2, inplace=True)
        x2 = self.fc2(x2)
        x2 = torch.sigmoid(x2)
        x = x1 + x2
        x = x.view(-1, self.input_channels, 1, 1)
        return x


######################  CPCAAttention   ####     end   by  AI&CV  ###############################

核心代码:YoloV8优化:通道优先卷积注意力,效果秒杀CBAM和SE等 | 即插即用系列_AI小怪兽的博客-CSDN博客

 4.训练结果分析

训练结果如下:

原始mAP@0.5 0.839提升至0.890

YOLOv8_CPCAChannelAttention summary (fused): 171 layers, 3137427 parameters, 0 gradients, 7.8 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95):  67%|██████▋   | 2/3 [00:22<00:11, 11.59s/it]WARNING  NMS time limit 1.500s exceeded
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 3/3 [00:28<00:00,  9.40s/it]
                   all        148        148       0.92      0.854       0.89      0.547

5.系列篇

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang反射相关知识总结

1. Golang反射概述 Go语言的反射&#xff08;reflection&#xff09;是指在运行时动态地获取类型信息和操作对象的能力。在Go语言中&#xff0c;每个值都是一个接口类型&#xff0c;这个接口类型包含了这个值的类型信息和值的数据&#xff0c;因此&#xff0c;通过反射&#x…

Freertos学习笔记

文章目录 Freertos移植TCB控制块中断管理 (内部异常和外部中断)同步互斥与通信消息队列:邮箱:信号量:互斥量:事件组:任务通知:Freertos移植 其核心文件为,tasks.c、timers.c、queue.c、event_groups.c、croutine.c、list.c。源码兼顾了很多平台,但是我们可以删除一些…

亚马逊攀岩安全带ASTM F1772测试办理

本政策适用于主要用于攀岩或登山活动的安全带。攀岩安全带是一种装备&#xff0c;可穿戴在攀岩者或登山者的腰部和大腿处。攀岩安全带为绳子提供了一个连接点&#xff0c;并提供一种手段&#xff0c;以便在攀登、休息、绕绳下降或跌落的过程中为攀登者身体提供支撑。本政策涵盖…

整理mongodb文档:副本集一

个人博客 整理mongodb文档:副本集一 本文讲解较为粗糙&#xff0c;对于没有后台开发经验的人员&#xff0c;建议配合官网了解下相关概念。个人博客&#xff0c;日常求关注 文章概叙 文章会先花费几分钟讲解下关于垂直缩放以及水平缩放的概念&#xff0c;以方便大家对副本集…

Qt5开发及实例V2.0-第五章Qt主窗体

Qt5开发及实例V2.0-第五章Qt主窗体 第5章 Qt 5主窗体5.1.1 基本元素5.1.2 【综合实例】&#xff1a;文本编辑器5.1.3 菜单与工具栏的实现 5.2 Qt 5文件操作功能5.2.1 新建文件5.2.2 打开文件5.2.3 打印文件 5.3 Qt 5图像坐标变换5.3.1 缩放功能5.3.2 旋转功能5.3.3 镜像功能 5.…

适用于 Linux 的 Windows 子系统获得新的“镜像”网络模式

Microsoft 发布了 Windows Subsystem for Linux (WSL) 2.0.0&#xff0c;其中包含一组新的可选实验功能&#xff0c;包括新的网络模式以及自动内存和磁盘大小清理。 首先&#xff0c;新添加的“自动内存回收”功能通过回收缓存内存来动态减少 WSL 虚拟机 (VM) 的内存占用。 此…

Git学习笔记8

Gitlab&#xff1a; Gitlab是利用Ruby on Rails 一个开源的版本管理系统&#xff0c;实现一个自托管的git项目仓库&#xff0c;可通过web界面进行访问公开或私有的项目。 Gitlab安装&#xff1a; 安装之前&#xff0c;将虚拟机的内存改成了4个G。内存如果太小&#xff0c;会有…

Zipping

Zipping 信息收集端口扫描目录扫描webbanner信息收集 漏洞利用空字节绕过---->失败sqlI-preg_match bypass反弹shell 稳定维持 提权-共享库漏洞 参考&#xff1a;https://rouvin.gitbook.io/ibreakstuff/writeups/htb-season-2/zipping#sudo-privileges-greater-than-stock-…

基于Python开发的图片批量处理器(源码+可执行程序+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的图片批量处理器&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;…

软考高级架构师下篇-16通信系统架构设计理论与实践

目录 1. 引言2. 通信系统网络架构3. 网络构建关键技术4. 网络构建5. 前文回顾1. 引言 此章节主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本节知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中…

SpringSecurity 权限管理的实现

文章目录 前言权限管理的实现权限校验的原理FilterSecurityInterceptorAccessDescisionManagerAffirmativeBasedConsensusBasedUnanimousBased AccessDecisionVoterWebExpressionVoterAuthenticatedVoterPreInvocationAuthorizationAdviceVoterRoleVoterRoleHierarchyVoter 前言…

HEXO 基本使用

1 新建、编辑并预览文章 1. 新建文章 hexo new [layout] title # 或 hexo n [layout] title创建文章前要先选定模板&#xff0c;在hexo中也叫做布局。hexo支持三种布局&#xff08;layout&#xff09;&#xff1a;post(默认)、draft、page。我们先介绍如何使用已有布局…

【Unity 实用工具篇】✨ | 编辑器扩展插件 Odin Inspector,进阶功能学习

前言【Unity 实用工具篇】✨ | 编辑器扩展插件 Odin,进阶功能学习一、Odin Attributes Overview 特性篇1.1 提示信息1.1.1 Title、InfoBox1.1.2 DetailedInfoBox1.2 各类限制1.2.1 限制数值范围1.2.2 限制只读1.2.3 限制属性搜索范围1.4 Required 限制必须赋值1.3 数值变化时触…

我们感知的内容是由大脑最支持的假设决定的吗?

某种意义上讲&#xff0c;我们从未直接体验到感觉信号本身&#xff0c;而是通过对这些信号的解读和处理来感知和理解外界。 感觉信号是由我们的感官系统接收到的来自外部世界的刺激所产生的物理信号。例如&#xff0c;视觉感觉信号由我们的眼睛接收光线并将其转化为神经脉冲&am…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容&#xff0c;本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴&#xff0c;或者直接f12获取需要的文件下载地址一个一个下载就行了&#xff0c;但是如下图十几个一级几十个二级一百多个疾病…

STM32-无人机-电机-定时器基础知识与PWM输出原理

电机控制基础——定时器基础知识与PWM输出原理 - 掘金单片机开发中&#xff0c;电机的控制与定时器有着密不可分的关系&#xff0c;无论是直流电机&#xff0c;步进电机还是舵机&#xff0c;都会用到定时器&#xff0c;比如最常用的有刷直流电机&#xff0c;会使用定时器产生PW…

「UG/NX」Block UI 指定方位SpecifyOrientation

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

怎么打开mysql题库练习系统

在正式考试的时候&#xff0c;大题上方会有一个启动的按钮&#xff0c;非常明显。 我在考试之前买了题库&#xff0c;但是一直没找到怎么进入mysql &#xff08;指的不是平时自己做项目的入口&#xff0c;是考试系统仿真&#xff09; 其实是要下载一个软件&#xff1a; 就在…

大数据与云计算实验一

检查是否开启 sudo service docker status 开启服务 sudo service docker start 运行服务 sudo docker run -itd -p 8080:80 nginx 查询ID docker ps -all 进入容器shell sudo docker exec -it <容器ID或容器名称> /bin/bash 找到/usr/share/nginx/html/index.…

【小沐学CAD】虚拟仿真开发工具:GL Studio

文章目录 1、简介2、软件功能3、应用行业3.1 航空3.2 汽车3.3 防御3.4 工业3.5 电力与能源3.6 医疗3.7 空间3.8 科技 结语 1、简介 https://disti.com/gl-studio/ https://ww2.mathworks.cn/products/connections/product_detail/gl-studio.html DiSTI 是 HMI 软件、虚拟驾驶舱…