MambaCSR: 使用SSM的双交错扫描压缩图像超分辨率

2024-08-23 06:44

本文主要是介绍MambaCSR: 使用SSM的双交错扫描压缩图像超分辨率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MambaCSR: Dual-Interleaved Scanning for Compressed Image Super-Resolution With SSMs

2408.11758 (arxiv.org)

GitHub - renyulin-f/MambaCSR: The code source of MambaCSR

摘要

本文提出了MambaCSR,这是一个基于Mamba的简单但有效的框架,用于解决具有挑战性的压缩图像超分辨率(CSR)任务。

尽管Mamba依赖于对所有标记的选择性状态空间建模,但其扫描策略在恢复过程中的有效上下文知识建模方面至关重要。

本文为CSR提出了一种高效的双交错扫描范式(DIS),该范式由两种扫描策略组成:

(i)层次交错扫描,旨在通过同时利用基于局部窗口和顺序扫描的方法,全面捕获和利用图像中最潜在的上下文信息;

(ii)水平到垂直交错扫描,旨在通过减少不同方向扫描之间的冗余来降低计算成本。

为了克服非均匀压缩伪影,还提出了位置对齐的跨尺度扫描来建模多尺度上下文信息。

在多个基准测试上的实验结果表明,MambaCSR在压缩图像超分辨率任务中表现出色。

研究概述

压缩图像超分辨率(CSR)在工业应用和人类生活中逐渐成为一种高级任务,旨在同时去除由压缩和低分辨率造成的严重混合失真。与现有的单图像超分辨率(SISR)相比,CSR表现出更加不均匀和多样化的退化,包括块伪影、振铃效应、颜色漂移等,同时还伴随着关键信息的丢失。CSR的这些特点对现有超分辨率模型的上下文信息建模能力提出了重大挑战。

为了通过框架设计提高上下文建模能力,已经探索了一系列工作。常用的框架通常基于三种典型的网络,包括卷积神经网络(CNN)、Transformer和多层感知机(MLP)。特别是,CNN擅长捕获局部上下文信息,但需要通过增加网络深度来聚合全局上下文信息。相比之下,基于Transformer的工作利用自注意力机制为图像中的标记建立长距离上下文依赖关系,但这需要较大的计算成本。与上述工作不同,类似MLP的工作[25]放弃了复杂的注意力机制,并通过为标记混合器设计良好的策略来成功建模长距离上下文信息,从而显著降低了计算成本。尽管如此,基于Transformer的工作仍然是CSR任务的主流,并提供了最佳性能。这引发了一个关键问题:“是否存在一种新的框架能在CSR任务中超越Transformer的性能?

Mamba,该框架利用选择性状态空间模型(SSM),通过动态决定在扫描轨迹中为每个标记保留多少学习到的知识,从而在建模长距离上下文信息方面表现出色。随后,许多工作成功地将这一创新框架应用于各种视觉领域。得益于SSM的结构,Mamba的计算成本在理论上低于Transformer(O(n log(n)) vs O(n^2)),这缓解了Transformer在低级视觉中的基于窗口的表示学习所受到的限制。凭借上述优势,一些开创性工作已经探索了将Mamba框架应用于低级视觉任务。

然而,上述工作的扫描策略仍然遵循早期的VMamba[30],并依赖于如图1(a)所示的两个水平和垂直扫描轨迹来进行长距离依赖关系的建模,这往往忽略了局部依赖关系的探索。然而,在CSR任务的背景下,多样化和统一化的混合退化对挖掘同一图像内所有标记之间最具信息量的上下文信息提出了很高的要求。因此,对于CSR任务来说,局部依赖关系和长距离上下文信息都至关重要,这促使我们研究如何设计一种扫描策略,以实现Mamba中最全面的上下文建模。

本文提出了MambaCSR,这是第一个基于Mamba的CSR框架,旨在通过我们提出的双交错扫描(DIS)策略来激活Mamba的全面上下文建模能力。通常,如图1(b)所示的基于窗口的扫描已被证明对于Mamba捕获局部依赖关系是有效的。因此,DIS的分层交错扫描被设计为迭代地为MambaCSR应用基于窗口的扫描和基于序列的扫描,旨在同时挖掘局部和长距离的上下文信息。从另一个角度来看,原始的VMamba利用四种扫描轨迹(即两种水平和垂直扫描策略)进行上下文建模。然而,在每个操作的每个标记中,并非所有扫描轨迹都是必要或重要的,因此存在冗余。

为了降低计算成本,本文提出将四种扫描轨迹解耦,并在相邻层中迭代利用两种水平和垂直扫描轨迹,从而实现DIS的水平到垂直交错扫描。通过我们提出的双交错扫描范式,MambaCSR在CSR任务中展现出了出色的上下文建模能力和效率。

为了进一步克服CSR中的非均匀退化问题,为CSR引入了一种位置对齐的跨尺度扫描策略,旨在融合多尺度上下文信息,从而提高非均匀表示能力。值得注意的是,一种简单的方法是扫描降采样图像及其对应原始图像的特征。然而,这种方法忽略了不同尺度间的大多数相关上下文信息通常分布在同一区域。这促使本文首先跨尺度扫描相同位置的标记,然后一起移动两个尺度的扫描窗口。上述扫描策略进一步提高了MambaCSR对CSR中复杂退化的恢复能力。

贡献

1 提出了MambaCSR,这是第一个基于Mamba的CSR任务框架,它引入了双交错扫描(DIS)范式,旨在为MambaCSR激活更全面且高效的上下文信息建模。

2 为了实现DIS范式,提出了(i)分层交错扫描,以融合局部和长距离的上下文信息;(ii)水平到垂直的扫描,以减少不同标记上下文建模的计算冗余。

3 提出了位置对齐的跨尺度扫描策略,以融合多尺度上下文信息,从而消除CSR中的非均匀退化。

4 在各种压缩基准测试上的实验结果表明提出的MambaCSR具有有效性和高效性。

结果

这篇关于MambaCSR: 使用SSM的双交错扫描压缩图像超分辨率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098648

相关文章

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景