DA-CLIP:Controlling Vision-Language Models for Universal Image Restoration

news/2024/12/22 21:23:00 标签: 人工智能, 图像恢复, 深度学习, 计算机视觉

在这里插入图片描述

conference:2024 ICLR
paper:https://arxiv.org/pdf/2310.01018
code:https://github.com/Algolzw/daclip-uir

文章目录

  • 作者
  • 动机
    • 核心思想
    • 常见解决方案
    • 挑战
    • 本文解决方法
  • 贡献
  • 方法
    • 基本框架
    • Controller的优化与Loss函数
    • 数据对的生成
      • 基本框架
      • 数据展示
  • 实验
    • 实验细节
    • 实验效果
      • 本文的方法和其他方法在四个特定退化数据集上的定量比较
      • 可视化比较
      • 四种不同算法对十类退化的表现
      • 训练曲线证明DA-CLIP的有效性

作者

在这里插入图片描述

动机

尽管CLIP在high-level的视觉任务中有较好的性能,但当涉及到low-level的视觉任务(如图像恢复)时,由于输入图像的退化,它们的性能会急剧下降。因此本文方法的核心就是控制预训练的CLIP模型,能够从退化图像中输出高质量的图像特征,并且同时预测退化类型。

在这里插入图片描述

核心思想

使用单一模型在多个任务和数据集上进行恢复。

  • 对不同退化类型有更好的泛化能力。
  • 能高效地部署于实际应用中。

常见解决方案

针对退化分类训练单独的模块

  • AirNet [1] 使用对比学习训练一个额外的编码器来区分退化类型。
  • PromptIR [2] 采用视觉提示模块来指导不同任务的恢复。

局限性:它们受限于少量的退化类型和特定数据集!

挑战

  • 由于不同任务的数据集不平衡,导致预测不准确。
  • 没有合适的方法利用退化来进行图像恢复

本文解决方法

大规模预训练视觉 - 语言模型!!!

贡献

  • 提出了DA - CLIP(Degradation-Aware CLIP),利用视觉 - 语言模型进行通用图像恢复。关键组件是一个 image controller ,它可以预测退化情况,并调整固定的CLIP图像编码器,以便从损坏的输入中输出高质量的内容嵌入。
  • 使用交叉注意力将高质量的内容嵌入整合到不同的图像恢复网络中,以提高它们的性能。此外,引入了一个提示学习模块,以便更好地利用退化背景进行统一的图像恢复
  • 构建了一个包含十种不同退化类型的混合退化数据集,并配有高质量的合成标题。该数据集可用于训练DA - CLIP或统一图像恢复模型。
  • 通过将DA - CLIP应用于特定退化和统一图像恢复图像恢复模型,展示了DA - CLIP的有效性。我们的方法在所有十种退化类型上都取得了极具竞争力的性能。

方法

基本框架

在这里插入图片描述
在这里插入图片描述

Controller的优化与Loss函数

对于image controller的优化,首先冻结预训练的CLIP模型,只更新controller。这里使用的是一个对比损失,假设一个训练的batch中,共有N个样本,则Loss如下:
L con ( x , y ) = − 1 N ∑ i = 1 N log ⁡ ( exp ⁡ ( x i T y i / τ ) ∑ j = 1 N exp ⁡ ( x i T y j / τ ) )   \mathcal{L}_{\text{con}}(\mathbf{x}, \mathbf{y}) = - \frac{1}{N} \sum_{i = 1}^{N} \log \left( \frac{\exp (\mathbf{x}_i^T \mathbf{y}_i / \tau)}{\sum_{j = 1}^{N} \exp (\mathbf{x}_i^T \mathbf{y}_j / \tau)} \right) \ Lcon(x,y)=N1i=1Nlog(j=1Nexp(xiTyj/τ)exp(xiTyi/τ)) 
其中 ( x , y ) (x,y) (x,y) 为归一化后的 ( e c T , e c I ) (e^T_c, e^I_c) (ecT,ecI) ( e d T , e d I ) (e^T_d, e^I_d) (edT,edI) τ \tau τ是一个可学习的超参数,用于控制对比学习的力度。

数据对的生成

基本框架

使用BLIP,通过高质量的图像生成准确的、干净的文本,并与对应的退化图像、退化类型进行组合。
在这里插入图片描述

数据展示

在这里插入图片描述

实验

实验细节

在四个NVIDIA A100 GPU上训练DA-CLIP模型50个epoch加粗样式。对于恢复模型,使用16的批量大小,并随机将图像裁剪为256 × 256以进行数据增强。

实验效果

本文的方法和其他方法在四个特定退化数据集上的定量比较

在这里插入图片描述

可视化比较

在这里插入图片描述

四种不同算法对十类退化的表现

在这里插入图片描述

训练曲线证明DA-CLIP的有效性

在这里插入图片描述


http://www.niftyadmin.cn/n/5795899.html

相关文章

ChatGPT接口测试用例生成的流程

通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤。 收集接口信息 收集接口的相关文档和信息,如接口名称、请求方法、请求参数、返回结果等。这些是ChatGPT生成测试用例需要的输入信息。 这一步骤的重要性不可忽视,因为它为Chat…

基础电路的学习

1、戴维南定理 ①左边的图可简化为一个电阻+一个电压源。② ③电压源可相当于开路。将R2移到左边,R1和R2相当于并联。RR1//R2 Rx和Rt相等时,灵敏度最大,因此使Rt10K。 104电容是0.1uf。 三位数字的前两位数字为标称容量的有效数…

seed_everything 函数

没有固定随机种子时的情况 假设你要随机生成 5 个数字,并希望对这些数字进行某种处理。以下是没有固定随机种子的代码: import random# 每次运行都会生成不同的随机数 random_numbers [random.random() for _ in range(5)] print("随机生成的数字…

找数字:JAVA

题目描述 试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次? 例如,在1到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。 输入描述: 输入共1行&#xf…

如何彻底删除电脑数据以防止隐私泄露

在数字化时代,个人隐私和数据安全成为了人们日益关注的问题。当我们需要处理不再需要的电脑数据时,如何确保这些数据被彻底删除,以防止隐私泄露,成为了一个重要的课题。本文将详细介绍几种彻底删除电脑数据的方法,并给…

linux安装宝塔面板及git

宝塔面板安装教程:https://www.bt.cn/new/download.html?bt_lybaidu&sdclkidALfs15q615oG15As&bd_vid9358688624393223862 Centos/OpenCloud/Alibaba稳定版9.0.0 urlhttps://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -s…

长轮询DeferredResult原理

DeferredResult常用来实现客户端长轮询,可以将异步处理的结果在特定时间内(如果设置了超时时间)返回给客户端。 Slf4j RestController RequestMapping("/demo") public class DemoDeferredResult {GetMapping("/deferredResu…

2.4 网络概念(分层、TCP)

网络层与传输层概述 网络层: 抽象概念:网络层是基于 IP 的抽象概念,与数据链路层用 MAC 地址标记设备不同。MAC 地址是一种具体化的概念,绑定于所在的物理网络,而 IP 地址可以是固定的,也可以通过路由动态…