YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制

news2024/11/22 23:55:58

YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制

  • 前言
  • 前提条件
  • 相关介绍
  • 注意力机制
    • SE
      • 添加SE注意力机制到YOLOv5
    • CBAM
      • 添加CBAM注意力机制到YOLOv5
    • CoordAtt
      • 添加CoordAtt注意力机制到YOLOv5
    • ECA
      • 添加ECA注意力机制到YOLOv5
  • 参考

前言

  • 记录在YOLOv5添加注意力机制,方便自己查阅。
  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
    https://blog.csdn.net/FriendshipTang/article/details/129969044
  • YOLOv7训练自己的数据集(口罩检测)
    https://blog.csdn.net/FriendshipTang/article/details/126513426
  • YOLOv8训练自己的数据集(足球检测)
    https://blog.csdn.net/FriendshipTang/article/details/129035180

前提条件

  • 熟悉Python

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • PyTorch 是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了。它分为 CPU 和 GPU 版本,其他框架还有 TensorFlow、Caffe 等。PyTorch 是由 Facebook 人工智能研究院(FAIR)基于 Torch 推出的,它是一个基于 Python 的可续计算包,提供两个高级功能:1、具有强大的 GPU 加速的张量计算(如 NumPy);2、构建深度神经网络时的自动微分机制。
  • YOLOv5是一种单阶段目标检测算法,该算法在YOLOv4的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。它是一个在COCO数据集上预训练的物体检测架构和模型系列,代表了Ultralytics对未来视觉AI方法的开源研究,其中包含了经过数千小时的研究和开发而形成的经验教训和最佳实践。
  • 注意力机制是一种通过网络自主学习出的一组权重系数,并以“动态加权”的方式来强调我们所感兴趣的区域同时抑制不相关背景区域的机制。在计算机视觉领域中,注意力机制可以大致分为两大类:强注意力和软注意力。强注意力是指在给定的输入下,只有一个区域被强调,其他区域被抑制。而软注意力则是对所有区域进行加权,每个区域都有一个权重,但权重不是0或1,而是一个介于0和1之间的实数。

注意力机制

SE

  • SE注意力机制是一种通道注意力机制,它是在SENet中提出的。SE模块是在channel维度上做attention或者gating操作,这种注意力机制让模型可以更加关注信息量最大的channel特征,而抑制那些不重要的channel特征。
  • SE注意力机制的优点是可以让模型可以更加关注信息量最大的channel特征,而抑制那些不重要的channel特征,从而提升准确率。同时,SE注意力机制的计算量较小,可以在不增加太多计算量的情况下提升模型的性能。
  • SE注意力机制的缺点是在一些特定场景下可能会出现过拟合的情况。
  • 论文地址:https://arxiv.org/abs/1709.01507

在这里插入图片描述
在这里插入图片描述

添加SE注意力机制到YOLOv5

  • 免费获取完整代码:
    https://download.csdn.net/download/FriendshipTang/87733773

CBAM

  • CBAM(Convolutional Block Attention Module)是一种结合了空间和通道的注意力机制模块,可以让模型更加关注信息量最大的channel特征,同时抑制那些不重要的channel特征,从而提升准确率。CBAM模块包含两个子模块:通道注意力模块和空间注意力模块。通道注意力模块用于对每个channel进行加权,而空间注意力模块则用于对每个空间位置进行加权。相比于SE注意力机制,CBAM可以在空间和通道两个维度上进行Attention,因此可以取得更好的效果。
  • CBAM注意力机制的优点是可以在空间和通道两个维度上进行Attention,因此可以取得更好的效果。CBAM模块包含两个子模块:通道注意力模块和空间注意力模块。通道注意力模块用于对每个channel进行加权,而空间注意力模块则用于对每个空间位置进行加权。相比于SE注意力机制,CBAM可以在空间和通道两个维度上进行Attention,因此可以取得更好的效果。
  • CBAM注意力机制的缺点是由于其需要计算通道和空间两个维度上的Attention,因此计算量较大,会增加模型的复杂度和训练时间。
  • 论文地址:https://arxiv.org/abs/1807.06521

在这里插入图片描述

添加CBAM注意力机制到YOLOv5

  • 免费获取完整代码:
    https://download.csdn.net/download/FriendshipTang/87733822

CoordAtt

  • CoordAtt注意力机制是一种新的注意力机制,它是在通道注意力机制的基础上,将位置信息嵌入到通道注意力中提出的1。与通过2维全局池化将特征张量转换为单个特征向量的通道注意力不同,Coordinate Attention将通道注意力分解为两个1维特征编码过程,其中一个编码位置信息,另一个编码通道信息。
  • Coordinate Attention的优点是它捕获了不仅跨通道的信息,还包含了direction-aware和position-sensitive的信息,这使得模型更准确地定位到并识别目标区域。
  • 论文地址:https://arxiv.org/abs/2103.02907

在这里插入图片描述

添加CoordAtt注意力机制到YOLOv5

  • 免费获取完整代码:
    https://download.csdn.net/download/FriendshipTang/87733827

ECA

  • ECA注意力模块是一种通道注意力模块,常常被应用于视觉模型中。它能对输入特征图进行通道特征加强,而且最终ECA模块输出,不改变输入特征图的大小。
  • ECA注意力模块的优点是它能够提取通道间的依赖关系,提高CNN性能。
  • 论文地址:https://arxiv.org/abs/1910.03151

在这里插入图片描述

添加ECA注意力机制到YOLOv5

  • 免费获取完整代码:
    https://download.csdn.net/download/FriendshipTang/87733835

参考

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

【注意力机制】通道上的注意力:SENet论文笔记 - 知乎 (zhihu.com)

[1709.01507] Squeeze-and-Excitation Networks (arxiv.org)

GitHub - moskomule/senet.pytorch: PyTorch implementation of SENet

【注意力机制】CBAM详解(文末附代码)_姚路遥遥的博客-CSDN博客

[1807.06521] CBAM: Convolutional Block Attention Module (arxiv.org)

CVPR2021|| Coordinate Attention注意力机制_注意力机制加在什么位置_Fly-Pluche的博客-CSDN博客

[2103.02907] Coordinate Attention for Efficient Mobile Network Design (arxiv.org)

GitHub - houqb/CoordAttention: Code for our CVPR2021 paper coordinate attention

ECA(Efficient Channel Attention) 注意力机制 - 知乎 (zhihu.com)

[1910.03151] ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks (arxiv.org)

YOLO算法改进系列_人工智能算法研究院的博客-CSDN博客

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
    https://blog.csdn.net/FriendshipTang/article/details/129969044
  • YOLOv7训练自己的数据集(口罩检测)
    https://blog.csdn.net/FriendshipTang/article/details/126513426
  • YOLOv8训练自己的数据集(足球检测)
    https://blog.csdn.net/FriendshipTang/article/details/129035180

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

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

相关文章

原神3.2真端完整版架设教程

想必在座的各位都玩过这款游戏吧、开放世界的玩法、折磨人的剧情、做不完的任务、话多且烦人的派蒙、没眼看的伤害、贵到爆的抽卡、打不动的深渊、树脂刷空也刷不到想要的圣遗物、打不动的BOSS、这怎么受得了呀!反正我是受不了。废话不多说、教程开始。 准备工具: 一台16H 3…

【经典面试题】请使用C语言编程实现对IPV4地址的合法性判断

C语言编程实现对IPV4地址的合法性判断 有了解过我的朋友,可能有点印象,我在N年前的博客中,就写了这个主题,当时确实是工作中遇到了这个问题。本想着等工作搞完之后,就把这个问题的解决代码补上,结果一鸽&am…

MATLAB实现工业PCB电路板缺陷识别和检测

PCB(PrintedCircuitBoard印刷电路板)是电子产品中众多电子元器件的承载体,它为各电子元器件的秩序连接提供了可能,PCB已成为现代电子产品的核心部分。随着现代电子工业迅猛发展,电子技术不断革新,PCB密集度…

K8S常见异常事件与解决方案

集群相关 Coredns容器或local-dns容器重启 集群中的coredns组件发生重启(重新创建),一般是由于coredns组件压力较大导致oom,请检查业务是否异常,是否存在应用容器无法解析域名的异常。 如果是local-dns重启,说明local-dns的性能…

fastai2 实现SSD

https://github.com/search?qfastaissd 有几个值得参考的代码,好好学习。 GitHub - Samjoel3101/SSD-Object-Detection: I am working on a SSD Object Detector using fastai and pytorch fastai2实现的SSD,终于找到了code。https://github.com/sidrav…

等保定级怎么做

Q25:现在还没做等保还来得及吗?有什么影响? 答:来得及。种一棵树,最好的时间是十年前,其次是现在。可先根据定级备案要求和流程,先向公安递交定级备案文件,测评与整改预算提上日程,在经费未落实前,可以先进行系统定级、差距分析、整改计划制订等工作。 根据《等保工…

LVGL移植——stm32f4

LVGL移植说明 移植LVGL版本:8.3.6 主控:STM32F407ZGT6 github链接:https://github.com/lvgl/lvgl.git 文章目录 LVGL移植说明STM32移植LVGL①需要的依赖文件②移植显示驱动文件③将文件加入工程当中④配置心跳④修改栈堆的空间⑤编译链接 STM…

02-权限提升-Win溢出漏洞及ATSCPS提权

权限提升-Win溢出漏洞及AT&SC&PS提权 思维导图 明确权限提升基础知识:权限划分 明确权限提升环境问题:web及本地 web提权:已有网站权限(可以操作网站内容,但无法操作服务器),想要获得…

【软考中级】2022下半年软件设计师综合知识真题与答案

1、以下关于R1SC(精简指令集计算机)特点的叙述中,错误的是()。 A.对存储器操作进行限制,使控制简单化 B.指令种类多,指令功能强 C.设置大量通用寄存器 D.选取使用频率较高的一些指令,提高执行速度 参考答案:B 2、…

Qt6之KDE框架

25年来,KDE社区一直在使用Qt开发各种自由软件产品。其中包括Plasma桌面环境,像Krita和Kdenlive这样的创意工具,像GCompris这样的教育应用程序,像Kontact这样的群件套件以及无数其他应用程序,实用程序和小部件。 Qt以其…

Shell+VCS学习3---VCS命令

1 VCS介绍 VCS的功能可以大致分为两个大类:编译和仿真。 VCS编译的过程,就是经过一系列的操作,将verilog代码转换为可执行文件(.svim),接下来就是用dve进行仿真过程生成.vpd波形文件。 VCS是编译型verilo…

C++---树形DP---树的最长路径(每日一道算法2023.5.4)

注意事项: 本题为"树与图的DFS深度优先遍历—树的重心"的近似题,同时涉及到 单链表模拟邻接表存储图 的操作,建议先理解那篇文章。 题目: 给定一棵树,树中包含 n 个结点(编号1~n)和 …

JavaScript:栈和对列

文章目录 栈和对列Js 有栈与队列吗20. 有效的括号 - 力扣(LeetCode)思路 1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)思路代码分析array.join() 操作打印const s of str 操作遍历 150. 逆波兰表达式求值 - 力扣&#xf…

(1)QT基础铺垫

目录 1.Qt特性 2. 新建项目 3. 工作目录与构建目录 4. 工作目录 4.1 .pro 项目配置文件 4.2 dialog.h 4.3 dialog.cpp 4.4 main.cpp 5. 帮助文档 6. 调试信息 1.Qt特性 Qt经常被当作是一个基于c语言的gui开发框架,但是这并不是qt的全部,除了开…

助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】

文章目录 知识点13:ODS层构建:申明分区代码及测试知识点14:ODS层与DWD层区别知识点15:DWD层构建:需求分析知识点16:DWD层构建:建库实现测试知识点17:DWD层构建:建表实现测…

Packet Tracer – 研究 VLAN 实施

Packet Tracer – 研究 VLAN 实施 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 S1 VLAN 99 172.17.99.31 255.255.255.0 不适用 S2 VLAN 99 172.17.99.32 255.255.255.0 不适用 S3 VLAN 99 172.17.99.33 255.255.255.0 不适用 PC1 NIC 172.17.10.2…

Linux部署Gitlab/上传项目

一、提前准备 1.1安装依赖工具 yum install -y curl policycoreutils-python openssh-serversystemctl start sshd systemctl enable sshd 1.2安装Postfix邮件服务器 #安装 postfix yum install -y postfix#启动 postfix 并设置为开机启动 systemctl enable postfix systemctl …

HashCode与String大家庭

当金钱站起来说话时,所有的真理都保持了沉默;金钱一旦作响,坏话随之戛然而止。 Hashcode的作用 java的集合有两类,一类是List,还有一类是Set 前者有序可重复,后者无序不重复。当我们在set中插入的时候怎…

Vue传参${id}变成$%7Bid%7D

发生缘由 外卖项目在Linux服务器上面运行发送请求乱码 运行环境 电脑系统:win10jdk版本:jdk-8SpringBoot版本:v2.4.5MP版本:3.4.2Vue版本:Vue.js v2.6.12Linux版本:Centos7 报错信息 // 修改页面反查详…

MES系统中的BOM为何如此重要?先进的BOM体系怎么构建?

其实不管有没有数字化,BOM都是制造企业的灵魂纽带,对于产品繁多、流程冗长的工业企业来说,如果BOM管理不规范,必然对生产效率和产品质量带来巨大的隐患,因此在工业企业的数字化转型之路中,建立科学规范的BO…