适应CLIP作为图像去雾的聚合指导

news2024/9/23 13:21:39

Adapt CLIP as Aggregation Instructor for Image Dehazing

2408.12317 (arxiv.org)

大多数去雾方法都存在感受野有限的问题,并且没有探索视觉-语言模型中蕴含的丰富语义先验,这些模型已在下游任务中被证明是有效的。

本文介绍了CLIPHaze,这是一个开创性的混合框架,它通过结合Mamba的高效全局建模能力与CLIP的先验知识和零样本能力,同时解决了这两个问题。

采用并行状态空间模型和基于窗口的自注意力机制,分别获得全局上下文依赖和局部细粒度感知。为了无缝地融合来自两条路径的信息,我们引入了CLIP指导的聚合模块(CAM)。

对于非均匀雾和均匀雾,CAM利用零样本估计的雾密度图和高质量图像嵌入(无退化信息)来显式和隐式地确定每个像素的最佳神经操作范围,从而自适应地融合具有不同感受野的两条路径。在

各种基准测试上的广泛实验表明,CLIPHaze达到了最先进的(SOTA)性能,特别是在非均匀雾的处理上。代码将在接受后公开。

Introduction

现有的基于学习的方法面临两个主要限制:(i)单层固有的有限感受野;(ii)未利用来自视觉-语言模型的丰富先验。

一些方法试图通过堆叠层来解决问题(i)。然而,通过堆叠层来获得大感受野可能不如预期那样有效。关于问题(ii),尽管对比语言-图像预训练框架(CLIP)[15]在诸如目标检测[16]和语义分割[17]等各种视觉任务中取得了显著成功,但CLIP中的语义先验知识在图像去雾任务中的应用尚未得到探索。

在本研究中,介绍了CLIPHaze,它同时解决了上述两个问题。CLIPHaze的基本单元是提出的Transformer-Mamba双聚合(TrambaDA)块,它采用双路径设计。在一条路径中,它利用基于窗口的自注意力[18]来获得每个像素相对于其最近邻特征的细粒度感知。在另一条路径中,目标是在单层内以较低的计算开销来补充全局感受野。得益于最近关于结构化状态空间序列模型(SSMs)的研究,与Transformer相比,它们在保持全局依赖建模能力的同时,随序列长度线性扩展。因此,使用选择性扫描空间状态序列模型(S6)块[19]作为该路径的核心,并采用VMamba[21]中提出的四向扫描策略来解决由视觉数据的非因果性质引起的“方向敏感”问题。直接的全局建模可以更好地恢复浓雾区域。相反,仅在浓雾斑块内执行局部运算符会导致恢复精度下降,因为无法提取有价值的恢复信息。

接下来的关键问题是如何在TrambaDA块中合理地聚合Transformer路径和Mamba路径。提出了CLIP指导的聚合模块(CAM),它利用CLIP强大的零样本能力和丰富的语义知识来进行无缝信息聚合。CAM的设计取决于雾的类型。虽然本文重点关注非均匀雾的去除,因为它与实际情况更为接近,但仍然为均匀雾的去除设计了一个专用架构,考虑到RESIDE[24]是最具影响力的基准测试,并为了进一步探索CLIP在图像去雾中的应用。

具体来说,对于非均匀雾的去除,先前的工作PMNet[25]已经证明,将雾密度图纳入其中是有益的。受此启发,本文认为使用雾密度来指导两条路径特征的聚合是有效的。

本文的关键见解是,不同雾密度的斑块需要不同的感受野。对于浓雾区域,来自Mamba路径的全局信息更为重要,而对于薄雾区域,来自Transformer路径的局部感知应占主导地位【本人注解:这个解释有点站不住,全文并没有给出合理的原理解释或实验证明】。然而,像PMNet那样使用网络中的中间特征作为雾密度图缺乏可解释性,并可能导致次优估计。因此,本文探索了CLIP强大的零样本能力来进行逐块的雾密度估计。

如图1所示,CLIP可以在一定程度上作为区分雾和清晰图像的指标。因此,我们将CLIP的雾提示特征与逐块图像特征之间的相似性视为雾密度。然而,如图1所示,几乎不可能找到最准确的手动提示来描述精确的雾况。此外,提示工程既费力又耗时。因此,本文将可学习的雾/清晰提示与雾和清晰图像一起编码到潜在空间中,然后在潜在空间内缩小图像和文本之间的距离。最后,使用可学习提示估计的密度图来生成两条路径的聚合权重。与显式特征聚合相比,本文为均匀雾采用了一种隐式聚合策略。

我们的主要见解是,不同类别或尺度的区域对感受野有不同的要求。将关于场景内容的语义信息融入网络有助于实现区域感知的自适应聚合。因此,我们对TrambaDA块的输入特征和来自修改后CLIP(不含退化信息)的图像嵌入进行双向交叉注意力操作,以获得语义嵌入表示。基于此,生成聚合权重。

贡献:

• 引入了一个开创性的框架,名为CLIPHaze。广泛的实验表明,我们的CLIPHaze在各种基准测试中优于最先进的方法,特别是在非均匀图像去雾方面。
• 提出的Transformer-Mamba双聚合(TrambaDA)块在同一层内同时实现了局部细粒度感知和直接全局建模,进一步探索了Mamba架构在低级视觉任务中的应用。
• 将CLIP引入图像去雾任务,利用CLIP强大的零样本能力和丰富的语义知识,为非均匀和均匀图像去雾设计了CLIP指导的聚合模块。

Method

Overall architecture

整体架构部分,CLIPHaze 基于一个分层的编码器-解码器框架。

给定一个雾霾图像 I_haze​∈R^{H×W×3},我们首先使用一个 3×3 卷积层来提取浅层特征 Fs​∈R^{H×W×C}。

然后,将浅层特征 Fs​ 输入到一个两级对称的编码器-解码器网络中。每个编码器/解码器阶段包含多个 Transformer-Mamba Dual Aggregation(TrambaDA)块以及下采样/上采样操作。

使用步长卷积和 PixelShuffle 来实现下采样和上采样,并在每个级别中添加编码器和解码器之间的跳跃连接。

最后,使用最后一个解码器阶段的输出以及输入的雾霾图像来生成无雾图像。

Transformer-Mamba Dual Aggregation Block

TrambaDA 块的目标是在单个层中同时实现局部细粒度感知和直接全局建模。因此,我们采用了一个并行的双路径设计,每条路径执行其各自的角色。TrambaDA 块的内部结构如图 2(b) 所示。

  • Transformer Path:使用窗口基自注意力来捕获局部纹理和细节。将输入特征 Fin​ 分成非重叠的窗口,然后在每个窗口内执行自注意力操作。
  • Mamba Path:使用状态空间模型(SSM)来构建,能够捕获非局部信息,对于去除雾霾至关重要。采用修改后的 S6 块来构建这一路径,并通过四向扫描策略来解决视觉数据的“方向敏感”问题。

TrambaDA 块是 CLIPHaze 框架中的核心组件,通过并行处理的两条路径(Transformer Path 和 Mamba Path)来分别实现局部和全局的特征提取。这种设计使得模型能够在单个层内同时捕捉图像的局部细节和全局上下文信息,从而更有效地去除雾霾。

Density-aware Aggregation Module (DAM)

DAM的核心是从CLIP中获取零样本估计的雾气密度图,该图指导网络为不同密度的区域确定最优的神经操作范围,从而实现改进的聚合结果。

雾气密度图估计
受图1的启发,我们相信CLIP有潜力生成雾气密度图。在实践中,给定一张雾气图像 I_haze​∈R^{H×W×3} 和一个描述雾气和清晰条件的提示对 T∈R^2(例如,['hazy image', 'clear image']),它们通过预训练的CLIP被编码到潜在空间中:

其中,Φ_text​ 和 Φ_image​ 分别表示CLIP的文本编码器和图像编码器。然后,使用余弦相似度来测量图像特征和文本特征之间的相似度,并基于相似度分数来估计雾气密度图 M。

聚合权重生成
利用估计的雾气密度图 M 来生成聚合权重 Wa​ 和 Wm​,用于将Transformer路径和Mamba路径的输出进行聚合。首先,通过插值操作调整 M 的大小以匹配 Fout_a​ 和 Fout_m​ 的尺寸,然后应用线性投影和通道分割来生成权重:

最终,通过以下方程执行聚合:

Semantic-aware Aggregation Module (SAM)

在引言部分已经提到,场景内容的语义信息可以隐式地指导双路径的聚合。考虑到CLIP的预训练图像编码器是通过一个分类预训练任务得到的,特征图在池化之前的每个位置都捕获了区域性的语义信息[35]。我们利用CLIP来构建SAM。然而,直接将雾图输入到CLIP中会导致包含退化信息的低质量图像嵌入。幸运的是,最近的研究DA-CLIP[38]能够直接从退化的输入图像中获得高质量、无退化信息的图像嵌入,因此使用DA-CLIP的图像编码器而不是原始的CLIP。

SAM采用了一种基于深度学习和注意力机制的方法,从输入的雾图中提取语义信息,并基于这些信息生成聚合权重。具体来说,我们设计了一个双交叉注意力机制,包括F_input -> F_image交叉注意力和F_image -> F_input交叉注意力。前者计算过程如下:

其中,F_input是TrambaDA块的输入特征,F_image是经过DA-CLIP图像编码器处理的图像嵌入,W_QW_KW_V是注意力机制中的可学习参数。后者(F_image -> F_input交叉注意力)以类似的方式计算。

这两个交叉注意力的输出被拼接起来,并通过两层深度卷积进行细化,生成语义嵌入表示M。基于M,我们按照等式(8)生成聚合权重,最终按照等式(4)进行聚合。

Result

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

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

相关文章

如何使用ssm实现汽车养护管理系统

TOC ssm038汽车养护管理系统jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。…

NAND闪存制造商Kioxia申请IPO,预计市值达103亿美元

据《日本经济新闻》报道,全球第三大NAND闪存制造商Kioxia已向东京证券交易所提交了首次公开募股(IPO)申请,计划于10月上市。根据《金融时报》的消息,Kioxia希望通过此次IPO筹集至少5亿美元的资金,并可能获得…

Circuitjs web 在线电路模拟器应用简介

Circuitjs 是一款 web 在线电路模拟器, 可以在浏览器上方便地模拟各种模拟或数字的电路, 用户无需安装各种软件, 生成的电路也支持在线分享给其它用户. 访问地址 下述地址我部署的一个版本: https://cc.xiaogd.net/ 此版本的特色是界面翻译成中文时尽量保留了英文, 因此在某…

VBA语言専攻T3学员领取资料通知0823

T3学员领取资料通知0823 各位学员∶本周MF系列VBA技术资料增加706-725讲,T3学员看到通知后请免费领取,领取时间8月23日晚上19:00-8月24日上午11:00。本次增加内容: MF706:在同一页面上打印多个范围 MF707:通过合并行打印多个范围 MF708:将多表中的多…

mathtype7永久激活码密钥及2024最新序列号附安装教程

MathType7是一款强大的数学公式编辑器,它可以在各种文档中插入复杂的数学公式和符号。它的特点包括: MathType最新mac官方版本下载如下: https://wm.makeding.com/iclk/?zoneid61764 MathType最新win官方版本下载如下: https://wm.makeding.com/icl…

代谢组数据分析(十八):随机森林构建代谢组诊断模型

本文参考Metabolomic machine learning predictor for diagnosis and prognosis of gastric cancer撰写。 使用随机森林算法和LASSO特征选择构建了一种胃癌(GC)诊断预测模型。参与者(队列1,n=426)通过随机分层抽样分为发现数据集(n=284)和测试集(n=142)。接下来,在发…

社区流浪动物救助系统-计算机毕设Java|springboot实战项目

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

Linux下进程间的通信--信号

信号的概念: 在Linux操作系统中,信号是一种软件中断机制,用于通知进程某个事件已经发生。信号是Linux进程间通信(IPC)的一种简单且快速的方式,它可以用来处理各种异步事件,如用户输入、硬件事件…

DAG计算框架:实现业务编排

文章目录 DAG如何实现DAG计算框架Node的实现Engine的实现Graph的实现具体某个节点如何使用 在工作几年之后,大部分人如果还在继续做着 CRUD的简单重复工作,即使领导不提出对你更高的期望,自身也会感到焦虑吧。学如逆水行舟不进则退&#xff…

解锁Spring Boot、Prometheus与Grafana三合一:打造你的专属自定义指标炫酷大屏!

1. 集成Prometheus到Spring Boot 需要在Spring Boot应用中集成Prometheus。可以通过micrometer库来实现。micrometer是一个应用程序监控库,它支持多种监控系统,包括Prometheus。 一招制胜!Spring Boot、Prometheus和Grafana三剑合璧&#x…

数仓工具使用Docker部署DolphinScheduler 3.2.0 (分布式任务调度系统)-单机模式

Apache DolphinScheduler——开源大数据调度器神器 Apache DolphinScheduler(海豚调度),国人之光,是许多国人雷锋开源在Apache的顶级项目,主要功能就是负责任务的调度处理,Apache DolphinScheduler是一个分布式去中心化,易扩展的可…

C++--map和set

目录 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 3.1 set 3.2 map 3.3 multiset 3.4 multimap 4.底层结构 4.3红黑树与AVL树的比较 1. 关联式容器 前面我们已经接触过 STL 中的部分容器,比如: vector 、 list 、 deque、 forward_list(…

自建CDN/WAF解决方案--GoEdge

目录 概述 核心功能 典型应用场景 优点 适用对象 安装 使用 域名准备 DNSPOD的API秘钥申请 添加DNS厂商账号 添加集群 添加节点 添加网站 工作原理 概述 GoEdge 是一款高性能的、支持多种功能的反向代理服务器,通常用于流量管理、负载均衡、安全防护等…

layui2.9 树组件默认无法修改节点图标,修改过程记录下

官方文档树组件 data 参数值&#xff0c;未提供icon属性配置 需要修改源码 layui.js, 搜索图片中标记部分 查找到之后&#xff0c;修改为 <i class“‘(i.icon || “layui-icon layui-icon-file”)’”> 如图&#xff1a; 修改完成后&#xff0c;即可在data中添加icon…

Mysql双主双从

双主双从 1.安装Mysql1.1 查看linux版本1.2 下载Mysql安装包1.3 上传并解压1.4 安装Mysql1.5 编辑端口号1.6 Mysql启动命令1.7 更新密码 2.搭建Mysql主从复制2.1 搭建Master主服务器2.1.1 修改mysql配置文件2.1.2 重启Mysql服务2.1.3 创建Slave用户, 并授权2.1.4 查看主服务器当…

RTOS实战项目之实现多任务系统

文章目录 一、RTOS引入二、任务的引入2.1 任务的定义2.2 理解C函数的内部机制2.3 ARM架构2.4 汇编指令2.5 怎么保存函数的现场①要保存什么②保存现场的几种场景 三、FreeRTOS中怎么创建任务四、通过链表深入理解调度机制4.1 优先级与状态4.2 调度方法 五、创建任务—伪造现场5…

Python青少年简明教程:赋值语句

Python青少年简明教程&#xff1a;赋值语句 变量赋值是指将一个值分配给变量的过程。Python 支持多种形式的赋值&#xff08;assignment&#xff09;&#xff0c;包括基本赋值、多重赋值、链式赋值和解包赋值等。 为了深入理解Python赋值语句机制&#xff0c;先了解一下id()函数…

[Meachines] [Easy] Legacy nmap 漏洞扫描脚本深度发现+MS08-067

信息收集 IP AddressOpening Ports10.10.10.4TCP:135,139,445 $ nmap -p- 10.10.10.4 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows n…

战略合作篇白皮书:深度革新,赋能企业跃迁

01背景 企业数字化转型已经成为当今商业环境中不可避免的趋势&#xff0c;主要有以下几个原因&#xff1a; 技术发展&#xff1a;随着信息技术的迅猛发展和普及&#xff0c;企业面临着数字化转型的迫切需求。云计算、大数据、人工智能等技术正在改变商业模式和运营方式&#xf…

【C++第十四章】进阶模板

【C第十四章】进阶模板 非类型模板参数&#x1f9d0; 我们创建一个类&#xff0c;可以用模板开一个大小的为N的数组&#xff0c;这样优于用宏来定义N&#xff0c;因为可以在创建对象时可以根据需求更改数组大小。我们称在模板定义中使用的不依赖于模板类型的参数为非类型模板参…