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的双交错扫描压缩图像超分辨率
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的简单但有效的框架,用于解决…...
【C++】深入解析C/C++内存管理:new与delete的使用及原理
C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类 本章将分享C为何放弃malloc/free系列,选择新系列new/delete去管理内存。深度探索new/delete的使用及其原理,m…...
递归--数据结构--黑马
递归 总结一句话,上手直接多刷Leetcode,比看这个更有用。 定义 递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集。 例如,单链表递归遍历的例子: void f(Node node) {if (node null) {retu…...
【3.1】贪心算法-解分发饼干
一、题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是, 每个孩子最多只能给一块饼干 。 对每个孩子i,都有一个 胃口值 g[i] ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个…...
解决 Error running ‘Application‘: Command line is too long.
一、项目场景: 运行刚拉取下来的项目代码,出现下面问题描述的错误提示。 二、问题描述 Error running Application: Command line is too long. Shorten command line for Application or also for Spring Boot default configuration? 翻译翻译&…...
衡量与归因将是Netflix程序化广告业务的首要任务
作者:刀客doc 8月20日,Netflix宣布今年上半年,品牌的招商收入同比增长了150%,广告主来自旅游、汽车、零售商、快餐和大众快消等行业。这一消息提振了资本市场对Netflix广告业务的信心,8月20日收盘创下每股 698.54 美元…...
关于如何在已有qt项目中添加该项目的单元测试工程
关于如何在已有qt项目中添加该项目的单元测试工程 新建一个子目录工程,把已有项目作为子工程添加进去,然后新建单元测试工程也作为子工程添加进去。单元测试项目要独立于实际项目工程,确保去掉测试项目后,实际项目仍可以正常运行…...
深度剖析数字媒体产业链的无限潜力与创新生态
在当今信息爆炸的时代,数字媒体产业链正以势不可挡的姿态展现出其令人瞩目的无限潜力与创新生态。 数字媒体的发展潜力简直无可限量。从在线视频的爆发式增长,到虚拟现实和增强现实技术带来的沉浸式体验,再到社交媒体平台上丰富多彩的内容创…...
集团数字化转型方案(十二)
集团数字化转型方案致力于通过构建一个集成化的数字平台,全面应用大数据分析、人工智能、云计算和物联网等前沿技术,推动业务流程、管理模式和决策机制的全面升级。该方案将从业务流程的数字化改造开始,优化资源配置,提升运营效率…...
Andrid异步更新UI:Handler(二)深入了解:Message你真的会创建?它是如何子线程和主线程通知?
目录 为什么会有HandlerHandler的原理,以及对象讲解主线程的loop在哪里,为什么主线程loop没有阻塞呢?Looper如何保证唯一Handler为什么会引发内存泄漏呢?Message应该如何创建它? 一、为什么会有Handler 线程分为主线…...
2025计算机毕设50条小众好做的Java题目【计算机毕设选题推荐】
随着2025年的到来,计算机专业的学生们又迎来了毕业设计的关键时刻。对于大多数学生来说,选择一个合适的毕业设计题目往往是一项艰巨的任务。本文旨在为那些正在为毕业设计题目烦恼的同学们提供一些灵感和建议,特别是针对使用Java技术栈的同学…...
day06_算法训练
一. Stream流 1.1 Stream流概述 概念: jdk1.8以后提供的新的API, 主要用于批量操作数据(集合的另外一种操作方式),代码非常简洁 流式处理思想: 2.2 Stream对象获取 1.单列集合的Stream流对象获取 2.双列集合的Stream流对象获取 3.数组的Stream流对象获取 4.散装数据的St…...
@SpringBootTest单元测试中报错:无法自动装配,找不到 ‘XXX‘ 类型的 Bean
一开始照着网上教程讲Springboot原理中的代码来copy写的↓ import com.google.gson.Gson; import com.itheima.pojo.Result; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.cont…...
nodemon学习(一)简介、安装、配置、使用
nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。以前,我们开发一个node后端服务时,每次更改文件,均需重启一下,服务才能生效。这使我们的开发效率降低了很多。nodemon的出现,可以…...
【Qt从摄像头视频中获取数据】
有时候需要在视频上画图,所以需要能获取到每一帧视频数据。 以前从视频文件或视频流中得到帧,一般都是使用qt ffmpeg或qt vlc。 qt对显示处理视频大体有以下方法: QMediaPlayer QVideoWidget 这种方法只适合简单的显示视频功能ÿ…...
视频截取中的UI小组件
引言 视频截取在社交类 APP 中十分常见。有了上传视频的功能,就不可避免地需要提供截取和编辑的选项。如果我们过度依赖第三方库,项目的代码可能会变得异常臃肿,因为这些库往往包含许多我们用不到的功能,而且它们的 UI 样式和功能…...
java设计模式--结构型模式
结构性模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 适配器模式 适配器模式(Adapter Pattern) 充当两个不兼容接口之间的桥梁,属于结构型设计模式。目的是将一个类的接口转换为另一个接口&am…...
消息中间件:Kafka消息丢失与堆积问题分析与解决方案
消息中间件:Kafka消息丢失与堆积问题分析与解决方案 Kafka作为分布式消息系统,广泛应用于实时数据流处理、大数据分析等领域。然而,在实际应用中,Kafka可能会面临消息丢失和消息堆积的问题,这些问题如果得不到有效处理…...
mac终端代理配置指南
终端代理配置指南 在 macOS 中,你可以通过几种不同的方法来配置终端代理。这里介绍两种常见的设置方式:使用 alias 和 shell 函数。 方法 1:使用 Alias 配置代理 打开终端配置文件 默认情况下,macOS 终端使用的是 zsh。如果你的系…...
mbedTLS生成客户端,服务端密钥及CA证书
1. mbedTLS源码:https://github.com/Mbed-TLS/mbedtls.git 2. 生成步骤: 2.1 编译上述源码 2.2 生成CA私钥和自签名证书: 进入编译的build目录,比如:/mbedtls-development/build# 2.2.1生成CA私钥 执行下面的命令&…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
