YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标
本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用,如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而,这些方法存在一些局限性,例如需要大量可学习参数,或者在计算通道注意力时没有考虑跨维度交互等。Triplet Attention可以有效的解决这些问题,其强调在计算注意力权重时捕获跨维度交互的重要性,以提供丰富的特征表示。
1. 三重注意力机制Triplet Attention
这张图展示了一个名为 “Triplet Attention” 的神经网络模块的结构。该模块的输入是一个形状为CxHxW的张量,整个模块由三个并行的分支组成,每个分支都执行相似的操作:
- Z - Pool 操作:每个分支首先进行 Z - Pool 操作。Z - Pool 是一种池化操作,它将输入张量在通道维度上进行平均池化和最大池化,并将结果在通道维度上进行拼接。
- 卷积操作(Conv):接着进行卷积操作,卷积核的大小未在图中明确标出,但卷积操作后张量的形状仍然保持为 。
- Sigmoid 激活函数:卷积操作之后,应用 Sigmoid 激活函数,将输出值压缩到 0 到 1 之间。

2.Triplet Attention结构
1. 模块 (d) 首先对输入张量进行维度置换(Permute),改变张量的维度顺序。
2. 然后进行 Z - Pool 操作,提取通道维度的特征。 Z - Pool 操作是一种在神经网络中用于特征提取的池化操作。它结合了平均池化(Average Pooling)和最大池化(Maximum Pooling)的优点。 在 Z - Pool 操作中,对于输入张量的某一维度(通常是通道维度),会同时进行平均池化和最大池化操作,然后将这两个池化结果在该维度上进行拼。
3. 利用 7x7 卷积、批归一化(Batch Norm)和 Sigmoid 函数生成注意力权重 。
4. 再次进行维度置换后,通过 1x1 卷积将权重应用到原始输入张量,达到对输入特征重新加权的目的。
3. 接下来,我们将详细介绍如何将Triplet_Attention集成到 YOLOv8 模型中。
这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)
这是改进讲解:YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标、遮挡目标_哔哩哔哩_bilibili
3.1 如何添加
1. 首先,在我上传的代码中yolov8_improve中找到Triplet_Attention.py代码部分,它包含两个部分一个是Triplet_Attention.py的核心代码,一个是yolov8模型的配置文件。
2. 然后我们在ultralytics文件夹下面创建一个新的文件夹,名字叫做change_models, 然后再这个文件夹下面创建Triplet_Attention.py文件,然后将iRMB的核心代码放入其中
3. 在 task.py文件中导入Triplet_Attention
from ultralytics.change_models.triplet_attention import C2f_TripletAttention,TripletAttention
4. 然后将 Triplet_Attention添加到下面当中
第一个改进修改的地方
第二个改进修改的地方
5. 最后将配置文件复制到下面文件夹下
6. 运行代码跑通
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"D:\bilibili\model\YOLOV8_new\ultralytics-main\ultralytics\cfg\models\v8\yolov8_Triplet_Attention.yaml")\.load(r'D:\bilibili\model\YOLOV8_new\ultralytics-main\yolov8n.pt') # build from YAML and transfer weightsresults = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',epochs=100,imgsz=640,batch=8,cache = False,# single_cls = False, # 是否是单类别检测# workers = 0,# resume='',# amp = False)
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"D:\bilibili\model\YOLOV8_new\ultralytics-main\ultralytics\cfg\models\v8\yolov8_irmb.yaml")\.load(r'D:\bilibili\model\YOLOV8_new\ultralytics-main\yolov8n.pt') # build from YAML and transfer weightsresults = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',epochs=100, imgsz=640, batch=8)
相关文章:
YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标
本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用,如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而,这些方法存在一些局限性,例如需…...
Linux絮絮叨(三) Ubuntu桌面版添加中文拼音输入法
步骤很详细,直接上教程 一. 配置安装简体拼音输入法 #安装相应的平台支持包 sudo apt install ibus-gtk ibus-gtk3# 安装简体拼音输入法 sudo apt install ibus-pinyin安装完成如果下面的步骤找不到对应输入法可以重启一下,一般不需要 二. 添加简体拼音…...
Ungoogled Chromium127编译指南 Windows篇 - 安装Visual Studio 2022(六)
1. 引言 在编译Ungoogled Chromium之前,正确安装和配置Visual Studio 2022是至关重要的一步。作为主要的开发环境,Visual Studio不仅提供了必要的编译工具,还包含了大量构建过程中需要的组件和库。本文将详细介绍如何在Windows系统上安装和配…...
Kubernetes(K8s)
头条:参考资料 Kubernetes 入门指南:从基础到实践_kubernetes 从入门到实践-CSDN博客 Kubernetes(k8s)与docker的区别 Docker、Kubernetes之间的区别_docker和kubernetes区别-CSDN博客 Docker部署SpringBoot项目(镜…...
证明切平面过定点的曲面是锥面
目录 证明:切平面过定点的曲面是锥面. 证明:切平面过定点的曲面是锥面. 证明: 方法一: 设曲面 S : r r ( u , v ) S:\mathbf{r}\mathbf{r}(u,v) S:rr(u,v)的切平面过定点 P 0 P_0 P0,其位置向量为 p 0 . \mathbf{p}_0. p0…...
python中数组怎么转换为字符串
1、数组转字符串 #方法1 arr [a,b] str1 .join(arr)#方法2 arr [1,2,3] #str .join(str(i) for i in arr)#此处str命名与str函数冲突! str2 .join(str(i) for i in arr) 2、字符串转数组 #方法一 str_x avfg st_list list(str_x) #使用list()#方法二 list_s…...
Linux 查看运行了哪些服务
1、service --status-all service --status-all输出: ● fdfs_storaged.service - LSB: FastDFS storage serverLoaded: loaded (/etc/rc.d/init.d/fdfs_storaged; bad; vendor preset: disabled)Active: active (running) since Thu 2019-03-28 09:53:35 CST; 5 years 8 mon…...
WPS EXCEL 使用 WPS宏编辑器 写32位十六进制数据转换为浮点小数的公式。
新建EXCLE文件 另存为xlsm格式的文件 先打开WPS的开发工具中的宏编辑器 宏编辑器编译环境 在工作区添加函数并编译,如果有错误会有弹窗提示,如果没有错误则不会弹 函数名字 ”HEXTOFLOAT“ 可以自己修改。 function HEXTOFLOAT(hex) { // 将十六…...
SpringMVC ——(1)
1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…...
嵌入式中防linux的通用MCU系统
大家好,今天分享一个仿linux分层架构实现的mcu通用系统,该项目的创建方便芯片级切换以及多产品线开发。 《一个基于分层架构实现的MCU通用系统》 项目整体框图 项目亮点 分层架构,清晰高效:usal_mcu采用仿Linux的分层架构设计,将系统划分为驱动层、系统层和应用层, 每…...
Windows电脑伪关机(快速启动模式),怎么真关机
Windows电脑在关机的时候,进入到一个伪关机的状态,也就是并没有真正的关机,但是在一些系统更新、变更了一些设置,进行重启等操作也会进入到真关机状态 这种一般是开启快速启动模式,开启了快速启动模式功能会在关机的时…...
远程修改ESXi 6.7管理IP地址
1.启用安全Shell(也就是EXSi可以被SSH访问的功能) 2.使用SecureCRT SSH2连接ESXi主机,现在使用dcui并没有任何反应,在Session标签栏右键点击Disconnect。 The time and date of this login have been sent to the system logs.WA…...
DICOM医学影象应用篇——多平面重建(MPR)在DICOM医学影像中的应用详解
目录 MPR(多平面重建)概述 基本原理 具体实现 代码详解 总结 MPR(多平面重建)概述 多平面重建(MPR, Multi-Planar Reconstruction)是一项用于从三维医学影像数据集中生成不同平面的二维切片的技术。通常应用于CT或MRI数据集,MPR可以帮助医…...
chromedriver.exe编译
使用例子参考官网 ChromeDriver 使用入门 | Chrome for Developers Chrome for Testing availability 注意:chromedriver版本要与chromium版本号对应。 如何编译chromedriver chrome\test\chromedriver\BUILD.gn 1、ninja -C out/debug chromedriver_server…...
CVPR和其他2024顶会论文阅读(资源整理【1】)
CVPR 2024论文阅读(资源整理【1】) 一、3d 重建与建模论文1-Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction论文2- 4D Gaussian Splatting for Real-Time Dynamic Scene Rendering论文3-GaussianDreamer: Fast Generation from Text to …...
封闭式论文写作--全面掌握ChatGPT-4o的写作技能,掌握提示词使用技巧、文献检索与分析方法,帮助您选定研究方向,提炼学术论文题目
在当今学术研究中,科研人员在撰写论文时面临诸多挑战。首先是信息量的剧增,科研人员需要快速消化新知识,筛选相关信息并清晰表达。但论文写作不仅是信息的罗列,还需要条理清晰、逻辑严密、语言精准,特别是在竞争激烈的…...
ThinkPad X250在 FreeBSD xfce4下小红点不能用、触摸板不能用以及键盘上下左右变成其它键
某一天突然发现,键盘的上,变成了PrtSc键,每次按上,就调用一次抓屏....上下左右键盘都乱了。 找了很多方法,发现设置键盘,可以解决这个问题。但是在设置多次键盘后,发现ThinkPad X250的小红点不…...
PowerShell install 一键部署postgres17
postgres 前言 PostgreSQL 是一个功能强大的开源对象关系数据库系统,拥有超过 35 年的积极开发经验 这为其赢得了可靠性、功能稳健性和性能的良好声誉。 通过官方文档可以找到大量描述如何安装和使用 PostgreSQL 的信息。 开源社区提供了许多有用的地方来熟悉PostgreSQL, 了…...
k8s的数据库etcd报 etcdserver: mvcc: database space exceeded的处理办法
一.问题现象 公司的k8s集群的etcd配置是默认配置,其磁盘配置为2GB的配额,目前出现了数据写入失败的情况,报错Error: etcdserver: mvcc: database space exceeded。 二.处理思路 当etcd的磁盘使用达到2G后,可能会触发维护模式&am…...
MySQL——buffer poll
为什么要有buffer poll? 如果没有buffer poll,每次读取数据的时候都是从磁盘上读的,这样效率是很差的的。 所以有了提高效率的方式,就加上了一个缓存——buffer poll 所以,当我们读取数据的时候就有以下的方式 当读…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

