【YOLO v5 v7 v8 v9小目标改进】HTA:自注意力 + 通道注意力 + 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度

news2024/11/25 2:34:20

HTA:自注意力 + 通道注意力 + 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度

    • 提出背景
    • 框架
      • 浅层特征提取
      • 深层特征提取
      • 图像重建
      • 混合注意力块(HAB)
      • 重叠交叉注意力块(OCAB)
      • 同任务预训练
      • 效果
    • 小目标涨点
      • YOLO v5 魔改
      • YOLO v7 魔改
      • YOLO v8 魔改
      • YOLO v9 魔改

 


提出背景

论文:https://arxiv.org/pdf/2205.04437.pdf

代码:https://github.com/XPixelGroup/HAT

问题: 传统的基于CNN的图像SR方法虽然比早期技术有显著改进,但在处理图像时仍存在限制,特别是在表示能力和处理长距离依赖关系方面。

  • 问题: CNN的方法虽然有所改进,但在捕捉图片细节方面还不够好。

  • 解决方法:

    1. 改进网络设计:通过添加特殊的“块”(残差块和密集块),让网络更好地学习图片的特征,从而生成更清晰的图片。
    2. 尝试新框架:除了改进传统的CNN,还探索了新的网络设计,比如Transformer,为提升图片清晰度提供了新思路。
    3. 引入对抗学习:通过这种方式让网络生成的图片看起来更自然。

Transformer,最初是为了处理语言问题而设计的,但现在也被用来处理图片,特别是在提高图片清晰度方面。

  • 问题: 尽管Transformer在处理图片时非常有潜力,但如何最大化其性能,尤其是在提升图片清晰度方面,还存在挑战。

  • 解决方法:
    3. 激活更多输入像素:尝试让Transformer注意到更多的图片细节,以生成更高质量的图片。

 
研究者发现,虽然最新的一种叫做Swin Transformer的技术在把模糊图片变清晰(即图像超分辨率)方面做得很好,但是它具体是怎么做到的,特别是它为什么比之前的技术(比如CNN)更好,还不是很清楚。

他们使用了一种工具(LAM)来分析,结果发现这种新技术并没有像预期的那样使用更多的图片信息。

因此,研究者想要设计一个新的网络,能够更好地利用图片信息,同时避免之前技术中存在的一些问题,比如在图片的一些部分出现不自然的效果。

他们提出了一种新的设计(叫做HAT),这个设计包含几个关键部分:

  1. 基本结构:他们的网络设计包括三大部分:提取图片的基本特征、进一步深入提取特征、最后根据这些特征重建高清图片。

    之所以用这个子解法,是因为这种分层的架构设计在先前的工作中已被广泛使用,有效提取和利用图像特征。

  2. 注意力机制:俩种注意力机制

    之所以用这个混合注意力块(HAB) ,是因为通过将通道注意力集成到标准Transformer块中,可以提高网络对全局信息的感知能力和表示能力。

    之所以用这个残差混合注意力组(RHAG),是因为它结合了混合注意力块和重叠交叉注意力块,以及卷积层,以增强网络对图像特征的学习和表示能力。

  3. 改进连接方式:为了让网络更好地理解图片的整体信息,他们引入了一种新的方法(重叠交叉注意力块OCAB)来改进不同部分之间的连接。

    之所以用这个重叠交叉注意力块(OCAB),是为了直接建立窗口间的连接,增强窗口自注意力的表示能力,利用更多有用的信息进行查询。

最后,为了让这个网络在处理图片时更加高效,他们还采用了一种特别的训练方法:在一个很大的图片集上先进行预训练,然后再在特定的任务上进行微调。

这种方法可以让网络更好地学习如何提高图片清晰度。

通过这些创新的设计和训练策略,产生的新网络(HAT),让网络能够更好地利用图片中的信息,从而生成更清晰、更自然的图片。

在这里插入图片描述
这幅图比较了不同网络的局部属性图(LAM)结果,其中包括高分辨率(HR)图像,低分辨率(LR)图像,以及EDSR、RCAN、SwinIR和HAT(我们的方法)网络的LAM结果。

LAM结果显示每个像素在输入低分辨率图像中的重要性,尤其是在重建被盒子标记的区域时。扩散指数(DI)反映了参与的像素范围。一个更高的DI值表示使用了更广泛的像素范围。

结果表明,与RCAN相比,SwinIR利用的信息更少,而HAT使用了最多的像素进行重建。

 

假设你有一张模糊的旧照片,想要让它变得清晰,以便更好地欣赏其中的细节,比如人物的表情、背景的景物等。

你决定使用新的图像超分辨率技术(HAT)来处理这张照片。

下面是这项技术如何运用上述三个方法来实现这一目标的:

  1. 结合自注意力和通道注意力机制

    • 当HAT开始工作时,它首先使用自注意力机制来分析照片中的每个像素,并理解这些像素之间的关系。
    • 例如,它会注意到人物脸部的不同区域之间的联系,从而更好地重建面部特征。
    • 同时,通道注意力机制帮助算法识别出照片中哪些颜色(红、绿、蓝)对重建图像尤为重要。这样,如果背景是蓝天,算法就会确保天空的蓝色看起来既自然又鲜明。
  2. 引入重叠交叉注意力模块

    • 接下来,HAT通过重叠交叉注意力模块处理照片,这一步骤让算法能够更好地连接图片中紧密相邻的部分。
    • 比如,在重建一座桥的图像时,这项技术能够确保桥的每一部分都与相邻的水面和背景自然地融为一体,避免出现不自然的分界线。
  3. 采用大规模数据同任务预训练策略

    • 在处理你的照片之前,HAT已经在成千上万的相似照片上进行了训练,这些照片涵盖了各种各样的场景、颜色和细节。
    • 这种大规模的预训练让HAT学会了如何准确地从低分辨率图像中恢复出高分辨率的细节。
    • 当它开始工作在你的旧照片上时,算法能够利用之前学到的知识,更准确地预测每个像素的正确位置和颜色,即使在原始照片中这些细节几乎不可见。

最终,当HAT完成对你的模糊旧照片的处理后,你会得到一张清晰、自然、细节丰富的高分辨率照片。

通过这种方式,人物的面部表情、背景的景物,甚至是衣物的纹理都会变得清晰可见,就像是用高质量相机拍摄的新照片一样。

总结:

  • 问题:在图像超分辨率中,现有的 Transformer 网络只能利用输入信息的有限空间范围,未能发挥自身全部潜力

  • 通道注意力用于全局信息

    解决 CNN 在处理图像时仍存在限制,特别是在表示能力和处理长距离依赖关系方面。

  • 窗口自注意力,增强窗口间的信息交互,减少中间特征中的阻塞伪影。

在这里插入图片描述
这幅图展示了在不同层级(Layer 1、Layer 2、Layer 3)的中间特征中出现的阻塞伪影。

顶部的图像显示了SwinIR在Urban100数据集中的三个图像中的中间特征,而底部的图像则展示了我们的HAT网络在相同图像中的中间特征。

注意到在SwinIR的特征图中,一些层出现了明显的块状伪影,而在HAT的特征图中伪影较少。

  • 重叠交叉注意力改善相邻窗口间的信息交互

    Swin Transformer 中的窗口划分机制导致中间特征出现明显的阻塞伪影,表明基于窗口的自注意力方法中的移动窗口机制在构建跨窗口连接时效率不高。

    通过增强窗口间的信息交互,可以显著减少中间特征中的阻塞伪影,从而改善图像的重建质量。

  • 通过整合不同注意力机制,激活了更多的输入像素

    不同的注意力机制可能会关注输入数据的不同方面。

    例如,有的注意力机制可能侧重于空间维度,识别图像中哪些区域最重要;而有的则可能侧重于通道维度,确定哪些特征通道最为关键。

    通过整合这些不同的注意力机制,一个模型就能同时从多个角度识别和利用输入数据中的关键信息,从而“激活了更多的输入像素”

框架

在这里插入图片描述
这幅图详细展示了HAT网络的整体架构,包括浅层特征提取、深层特征提取(RHAG和HAB)和图像重建。

每个RHAG包含几个混合注意力块(HAB)、一个重叠交叉注意力块(OCAB)和一个具有残差连接的3x3卷积层。

图中也展示了OCAB和CAB的内部结构。

浅层特征提取

  • 子特征: 利用一个卷积层从低分辨率输入图像中提取浅层特征。
  • 原因: 之所以使用这个子解法,是因为初步提取的浅层特征可以为后续的深层特征提取提供基础信息。

深层特征提取

  • 子特征1: 使用一系列的残差混合注意力组(RHAG)进行深层特征的提取。
  • 原因1: 之所以使用残差混合注意力组,是因为注意力机制能够使网络更加聚焦于重要的特征信息,而残差连接有助于信息的传递和学习的稳定性。
  • 子特征2: 在RHAG后使用一个3x3卷积层进一步处理特征。
  • 原因2: 之所以使用3x3卷积层,是因为卷积操作可以在保持空间信息的同时进行特征融合和强化。

图像重建

  • 子特征: 将浅层特征和深层特征通过全局残差连接融合后,通过重建模块来输出高分辨率图像。
  • 原因: 之所以使用这个子解法,是因为融合浅层和深层特征可以充分利用从不同层次提取的信息,而重建模块(如像素洗牌)则负责将这些特征转换为高分辨率图像。

混合注意力块(HAB)

  • 子特征: 在标准Swin Transformer块中集成一个基于通道注意力的卷积块,以增强网络的表征能力。
  • 原因: 之所以使用混合注意力块,是因为通道注意力能够强调全局信息对通道权重的影响,而结合卷积操作能够帮助Transformer更好地进行视觉表征和优化。

重叠交叉注意力块(OCAB)

  • 子特征: 通过OCAB建立跨窗口的连接,增强窗口自注意力的表征能力。
  • 原因: 之所以使用重叠交叉注意力块,是因为通过不同窗口大小的分区可以提取更加丰富和具有代表性的特征信息,从而增强模型处理不同空间区域信息的能力。

在这里插入图片描述
这幅图解释了重叠交叉注意力(Overlapping Cross-Attention, OCA)层中重叠窗口分区的概念。

展示了标准窗口分区和重叠窗口分区的差异,其中标准窗口分区用于计算查询(Q),而重叠窗口分区用于计算键(K)和值(V)。

同任务预训练

  • 子特征: 在大规模数据集(如ImageNet)上进行同任务(如超分辨率)的预训练,然后在特定数据集上进行微调。
  • 原因: 之所以采用同任务预训练策略,是因为预训练能够让模型学习到更广泛和通用的知识,而大规模和多样性的数据集能够显著提高预训练的有效性,进一步通过微调适应特定任务的需求。

效果

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

小目标涨点

更新中…

YOLO v5 魔改

YOLO v7 魔改

YOLO v8 魔改

YOLO v9 魔改

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

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

相关文章

06 - 镜像管理

1 了解镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 但注意, 镜像不包含任何动态数据&#…

sql多表运用 12.3

肖SIR__数据库之多表运用__12.3 数据库之多表运用 CREATE table dept(dept1 VARCHAR(6),dept_name VARCHAR(20)) default charsetutf8; INSERT into dept VALUES (101,财务); INSERT into dept VALUES (102,销售); INSERT into dept VALUES (103,IT技术); INSERT into dep…

【已解决】conda环境下ROS2 colcon build编译选择特定python解释器

目录 1 问题背景2 问题探索3 问题解决4 告别Bug 1 问题背景 环境: ROS2 HumbleUbuntu22.04 现象:运行colcon build后由cpp编译生成的python导出库(如自定义消息、服务等),其版本与由python setup.py安装的python库版本不一致,导致…

App自动化测试笔记(四):UIAutomatorViewer与元素定位API

UIAutomatorViewer 1、应用场景 定位元素的时候必须根据元素的相关特征来进行定位,而 UIAutomatorViewer 就是用来获取元素特征的。 如何使用UIAutomatorViewer 1、保证想要查看的元素在当前的频幕上 2、打开UIAutomatorViewer工具 3、点击左上角左数第二个按钮…

IDEA切换JDK版本超详细步骤

😀 IDEA切换JDK版本详细教程,全网步骤最详细,实测可用。 文章目录 第一步、选择SDKs切换SDK版本:第二步、选择Modules切换Sources和Dependencies版本:第三步、选择Project切换SDK和Language Level版本:第四…

VR科学知识互动展示介绍|游戏体验馆加盟|VR展示厅

VR科学知识互动展示是一种利用虚拟现实技术来呈现科学知识并与观众进行互动的展示方式。通过VR设备,参观者可以沉浸在各种科学主题的虚拟环境中,以全新的视角和体验来探索科学领域的知识。 这样的展示通常结合了视觉、听觉和触觉等感官体验,使…

网络信息安全:11个常见漏洞类型汇总

一、SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。 在设计程序,忽略了对输入字符串中夹带的SQL指令的检查&…

恒峰便携式森林消防灭火泵:轻巧易携,灭火无忧

在自然环境中,森林火灾是一种常见的自然灾害。为了保护森林资源和人民生命财产安全,我们需要一款轻便、高效的消防灭火设备。本田发动机单缸四冲手拉式启动的便携式森林消防灭火泵应运而生,它以其出色的性能和便捷的使用方式,成为…

工作中常用的6种设计模式

背景 谈起设计模式,你一定会问?这玩意到底有啥用?我好像没用过也不影响做一个码农。也可能项目中实际用了,但是你不自知。虽然Java设计模式有23种,但是工作中常用的可能并没有那麽多。就像新华字典有多少字&#xff0c…

SpringBoot使用MongoTemplate详解

1.pom.xml引入Jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.MongoDbHelper封装 /*** MongoDB Operation class* author HyoJung* date …

群晖 NAS 安装 Ghost Blog

通过群晖的 docker 容器下载 ghost 映像&#xff0c;并配置后启动。 一、下载映像文件 由于网络环境&#xff0c;无法直接连接 docker 的映像服务器&#xff0c;因此使用境内代理&#xff0c;通过 url 方式下载。 打开 docker 控制台&#xff0c;点击左边导航栏的 “映像”&…

2024大厂Android面试真题集锦,算法真题解析:美团+Tencent+字节跳动+阿里+360+拼多多

前言 IT行业薪水高&#xff0c;这是众所周知的&#xff0c;所以很多人大学都选择IT相关专业&#xff0c;即使非该专业的人&#xff0c;毕业了也想去一个培训机构镀镀金&#xff0c;进入这一行业。 但是有关这个行业35岁就退休的说法&#xff0c;也一直盛传。 加上这几年不断…

苹果曝出两个 iOS 系统 0-Day 漏洞

最近&#xff0c;苹果公司发布了紧急安全更新&#xff0c;解决了两个 iOS 零日漏洞。这些漏洞存在于 iOS 内核&#xff08;CVE-2024-23225&#xff09;和 RTKit&#xff08;CVE-2024-23296&#xff09;中&#xff0c;威胁攻击者可利用其绕过内核内存保护&#xff0c;这就给了具…

MySQL 表锁问题

MySQL 表锁解决 查看哪些表被锁&#xff0c;字段 In_use 表示有多少线程在使用这张表&#xff0c;字段 name_locked 表示表格是否被锁&#xff0c;0 代表锁定状态 mysql> show OPEN TABLES where In_use > 0; -------------------------------------------------------…

音视频学习笔记——ffmpeg解码流程

✊✊&#x1f308;大家好&#xff01;本篇文章主要记录自己在进行音视频学习中&#xff0c;整理的部分ffmpeg解码相关的内容重点&#x1f607;。 首先重新梳理了ffmpeg解码流程&#xff0c;重点学习avcodec_send_packet()、avcodec_receive_frame()在解码中的应用&#xff0c;以…

【QT】重载的信号槽/槽函数做lambda表达式

重载的信号槽 函数指针&#xff1a; int fun(int a,long b) int (*funp)(int, long) fun; 实现回调函数就需要函数指针 信号重载 派生类槽函数发送两个信号 派生类给父类发两个信号 void (SubWidget::*mysigsub)() &SubWidget::sigSub;connect(&subw,mysigsub,t…

网络编程:select、poll

.1、select完成TCP并发服务器 程序代码&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.234" //服务端IP #define SER_PORT 8888 //服务端端口号int main(int argc, const char *argv[]) {//1.创建用于连接的套接字int sfds…

1-安装rabbitmq

rabbitmq官网&#xff1a; https://www.rabbitmq.com/docs/download 本机环境&#xff1a;mac&#xff0c;使用orbstack提供的docker 使用docker部署rabbitmq docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management 然后报错&#xf…

bun 单元测试

bun test Bun 附带了一个快速、内置、兼容 Jest 的测试运行程序。测试使用 Bun 运行时执行&#xff0c;并支持以下功能。 TypeScript 和 JSX生命周期 hooks快照测试UI 和 DOM 测试使用 --watch 的监视模式使用 --preload 预加载脚本 Bun 旨在与 Jest 兼容&#xff0c;但并非所…

SD-WAN: 灵活部署,助力云服务

随着Office 365、Salesforce、Webex和SAP等云托管应用程序的迅速发展&#xff0c;企业正加速将业务关键应用程序迁移到云端。这种转变需要为遍布各地的员工提供安全可靠的云服务网络连接。本文将介绍SD-WAN如何助力企业的云服务访问。 传统的网络架构&#xff0c;特别是基于MPL…