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

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 现在的ai是否和当年的5g一样被夸大了
  • 大模型日报 2024-08-24
  • 初识数据库
  • PG_RMAN 部署与使用
  • GB28181协议设备为何越来越受青睐?
  • 五、Centos7-安装Jenkins
  • ECMAScript性能优化技巧于陷阱
  • 前端手写源码系列(一)—— 手写防抖和节流
  • vue前端实现登录页面的验证码(新手版)
  • 基于x86 平台opencv的图像采集和seetaface6的人脸跟踪功能
  • OpenAI推出新功能:GPT-4o正式上线微调功能,限时免费!
  • TinaSDKV2.0 自定义系统开发
  • C++动态规划(背包问题)
  • Kubernetes(k8s)中部署WordPress
  • 在 Java 中使用泛型时遇到的问题,,无法正确将响应数据映射为需要的数据
  • [deviceone开发]-do_Webview的基本示例
  • Apache的80端口被占用以及访问时报错403
  • Cookie 在前端中的实践
  • ES6简单总结(搭配简单的讲解和小案例)
  • ES6系列(二)变量的解构赋值
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Linux下的乱码问题
  • nodejs:开发并发布一个nodejs包
  • PAT A1050
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue 2.3、2.4 知识点小结
  • 包装类对象
  • 面试总结JavaScript篇
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用Swoole加速Laravel(正式环境中)
  • 阿里云服务器如何修改远程端口?
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 正则表达式-基础知识Review
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​业务双活的数据切换思路设计(下)
  • # centos7下FFmpeg环境部署记录
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (27)4.8 习题课
  • (ibm)Java 语言的 XPath API
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三)uboot源码分析
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)甲方乙方——赵民谈找工作
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法