当前位置: 首页 > news >正文

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 这种方法只适合简单的显示视频功能&#xff…...

视频截取中的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私钥 执行下面的命令&…...

如何有效应对突发技术故障:以网易云音乐为例

引言 在互联网行业,任何一个在线服务都可能遭遇突发的技术故障。这些故障不仅影响用户体验,还可能对公司的品牌形象造成损害。因此,如何快速响应并高效解决这些问题成为了每一个开发团队的重要课题。本文将以网易云音乐在2024年8月19日下午遭…...

上传文件到github仓库

REF: https://blog.csdn.net/litianxiang_kaola/article/details/74075151 已有repository,往仓库里更新内容 点击gitlab里的clone 在git bash中使用git clone,这个时候会将网上的仓库下载到本地,你可以把想要更新的内容直接拖到仓库里 …...

clip-path实现图片边角的裁剪

img {clip-path: polygon(0 7px,7px 0,calc(100% - 20px) 0,100% 20px,100% 100%,16px 100%,0 calc(100% - 16px));}每一个逗号隔开的就是路径坐标 左上角的两个点 0 7px ,7px 0 右上角 calc(100% - 20px) 0,100% 20px 相当于通过这些点练成的线的圈起来的部分就是剩…...

【C++ Primer Plus习题】2.7

问题: 解答: #include <iostream> using namespace std;void print(int hour, int minute) {cout << "Time:" << hour << ":" << minute << endl; }int main() {int hour0;int minute 0;cout << "请输入…...

uboot中 fastboot udp 协议分析

注&#xff1a; 1. 本文所分析的fastboot源码不是android下的源码&#xff0c;而是恩智浦芯片厂商在IMX6UL芯片的uboot源码中自己实现的源码&#xff0c;二者不同&#xff0c;请读者注意区分。一些图片是网上找到的&#xff0c;出处不好注明&#xff0c;请见谅。 2. 分析fastbo…...

redis hash类型的命令

1.hset 格式&#xff1a; hset key field value [field value ...]&#xff08;value是字符串&#xff09; 返回值&#xff1a;设置成功的键值对的个数 2.hget&#xff1a;获取键值对 格式:hget key field 3.hexists&#xff1a;判断hash中是否存在指定 格式&#xff1a;…...

【OpenCV】 中使用 Lucas-Kanade 光流进行对象跟踪和路径映射

文章目录 一、说明二、什么是Lucas-Kanade 方法三、Lucas-Kanade 原理四、代码实现4.1 第 1 步&#xff1a;用户在第一帧绘制一个矩形4.2 第 2 步&#xff1a;从图像中提取关键点4.3 第 3 步&#xff1a;跟踪每一帧的关键点 一、说明 本文针对基于光流法的目标追踪进行叙述&am…...

ES 支持乐观锁吗?如何实现的?

本篇主要介绍一下Elasticsearch的并发控制和乐观锁的实现原理&#xff0c;列举常见的电商场景&#xff0c;关系型数据库的并发控制、ES的并发控制实践。 并发场景 不论是关系型数据库的应用&#xff0c;还是使用Elasticsearch做搜索加速的场景&#xff0c;只要有数据更新&…...

前端宝典十一:前端工程化稳定性方案

一、工程化体系介绍 1、什么是前端工程化 前端工程化 前端 软件工程&#xff1b;前端工程化 将工程方法系统化地应用到前端开发中&#xff1b;前端工程化 系统、严谨、可量化的方法开发、运营和维护前端应用程序&#xff1b;前端工程化 基于业务诉求&#xff0c;梳理出最…...

yum 数据源的切换

本来准备安装一个ntp 服务器时间进行同步&#xff0c;但是使用yum install ntp -y 但是却失败了 原因是yum自带的镜像源不能用了&#xff0c;所以要想使用yum 多功能只能切换yum 对应的镜像源了 如果你的服务商是可以使用wget命令的&#xff1a; wget -O /etc/yum.repos.d/Ce…...