YOLO算法改进Backbone系列之:CAT

news/2024/7/11 1:50:05 标签: YOLO, 算法, pytorch, 深度学习, 目标检测

Transformer广泛应用于NLP后,在CV领域也引起了广泛关注,但是将单词token替换为图像的patch使得Transformer计算量大幅增加。本文提出一种新的注意力机制Cross Attention,不再计算全局注意力而是将注意力的计算局限在patch内部来捕获局部信息,在单通道特征图之间的patch应用attention来捕获全局信息。这两种操作都比标准Self-Attention所需的计算量要小,替换为这两种操作后本文可以在降低计算成本的同时保持较好的性能,并且为解决视觉任务建立也一种称之为Ctrss Attention Transformer(CAT)的层次网络,在COCO数据集和ADE20K数据集上的实验结果证明了CAT可以作为一种通用的backbone。

Cross Attention Block (CAB) = Inner-Patch Self-Attention Block (IPSA) + Cross-Patch Self-Attention Block (CPSA)
IPSA:就是标准的基于patch的attention,即attention的输入为Bnphnpw, phpw, C大小的tensor,得到的是空间大小为phpw, phpw的attention矩阵。该模块建模了patch内部的全局关系。
CPSA:这里处理的方式和以往的改进不太一样。这里attention计算的输入为B
C, nphnpw, phpw。对应的attention矩阵大小为nphnpw, nphnpw,这里计算过程中是把每个patch内部单一通道上的空间维度作为了每个patch信息的表示,从而通过相似性计算将这一维度给吸收了。这一模块基于通道独立的操作设计,构建了全局patch之间轻量的信息交互形式。
在这里插入图片描述
在这里插入图片描述
CAT变体模型配置信息表:
在这里插入图片描述
YOLOv5项目中添加模型作为Backbone使用的教程:
(1)将YOLOv5项目的models/yolo.py修改parse_model函数以及BaseModel的_forward_once函数
在这里插入图片描述
在这里插入图片描述

(2)在models/backbone(新建)文件下新建Cat.py,添加如下的代码:
在这里插入图片描述

(3)在models/yolo.py导入模型并在parse_model函数中修改如下(先导入文件):
在这里插入图片描述

(4)在model下面新建配置文件:yolov5_cat.yaml
在这里插入图片描述

(5)运行验证:在models/yolo.py文件指定–cfg参数为新建的yolov5_cat.yaml
在这里插入图片描述


http://www.niftyadmin.cn/n/5447694.html

相关文章

GaussDB WDR分析之集群报告篇

AWR报告目前已经成为Oracle DBA分析问题,定位故障最为重要的报告,阅读与分析AWR报告的技能也是Oracle DBA必备的技能。国产数据库为了提高运维便捷性,都在做类似Oracle AWR报告的模仿,只不过由于指标体系不够完善,因此…

算法系列--链表刷题(二)

💕"轻舟已过万重山"💕 作者:Mylvzi 文章主要内容:算法系列–链表刷题(二) 今天为大家带来的是算法系列--链表刷题(二),带来了几道经典的有关链表的面试题(合并K个有序列表) 1.两数相加 https://leetcode.cn/problems/a…

Docker 容器中使用 RAM 角色实现云监控事件监控

准备工作 在开始之前,请确保您已经完成以下准备工作: 创建一个 RAM 角色,并为该角色授予 ​​AliyunCloudMonitorFullAccess​​ 权限。这将允许该角色执行云监控服务的所有操作,包括发送自定义事件。准备一个 Python 应用程序,用于发送自定义事件到云监控服务。您可以使用我们…

【PHP + 代码审计】数组函数

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

2024年数据隐私将成为定义科技问题的关键问题。

数据隐私:2024年科技领域的核心议题 引言 随着人工智能(AI)技术的飞速发展,如ChatGPT等AI驱动的聊天机器人正在重塑我们熟知的行业。然而,每一次技术的进步,都伴随着传统角色的消逝。2023年6月&#xff0…

ReactNative项目构建分析与思考之RN组件化

传统RN项目对比 ReactNative项目构建分析与思考之react-native-gradle-plugin ReactNative项目构建分析与思考之native_modules.gradle ReactNative项目构建分析与思考之 cli-config 在之前的文章中,已经对RN的默认项目有了一个详细的分析,下面我们来…

C++命名空间和内联函数

目录 命名空间 内联函数 概述 特性: 命名空间 在C/C中,变量,函数和和类这些名称都存在于全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,避免命名冲突或名字污染&…

[Java安全入门]六.CC3

一.前言 前几天学了一下cc1和cc6,对于我来说有点小困难,不过经过几天沉淀,现在也是如拨开云雾见青天,经过一上午的复习对cc1和cc6又有深入的了解。所以,今天想多学一下cc3。cc3执行命令的方式与cc1和cc6不一样&#x…